Hi Daniel,
thanks a lot for your reply.
> Sorry for catching up so late. Is this issue solved already?
>
> On 28.02.2012 00:43, Joachim Gahl wrote:
> > I would like to ask for some help with an USB audio class 2 device.
>
> [...]
>
> > I am running openSUSE 11.4, 64bit (Kernel 2.6.37-0.11 desktop). ALSA
> > version is 1.0.24 according to YAST but alsamixer reports driver
> > version 1.0.23.
> >
> > When I connect the Axe-Fx II to my systems the MIDI interface appears
> > and works. Problem is the audio interface. /var/log/messages reports
> >
> > ALSA format.c:287: parse_audio_format_rates_v2(): unable to retrieve
> > number of sample rates (clock 40) ALSA format.c:287:
> > parse_audio_format_rates_v2(): unable to retrieve number of sample
> > rates (clock 5)
> >
> > and no capture or playback device can be found.
> >
> > I emailed the manufacturer and they told me that the Axe-Fx II does
> > not respond to GetSampleFrequencyRange requests. So I suspect this
> > might be the reason for the error messages.
>
> Which violates the spec IIRC. How should the driver know about
> configurable sample rates then?
>
> I can send you a patch that adds a quirk to hard-code the sample rates
> for this card, but I would need to known which ones are valid.
>
>
> Daniel
Unfortunately I don't know how to appropiately mail a follow-up to your
posting. So this post might not show up as a direct reply. Apologies for
that.
But to answer your questions:
My issue is not solved. In the meantime I switched to openSUSE 12.1
(kernel 3.1.9-1.4 desktop, 64bit). ALSA version reported by alsamixer is
1.0.24.
I also tried to write a quirk, put the following lines into
quirk-table.h and recompiled.
/*
* Fractal Audio Systems devices
*/
{
USB_DEVICE(0x2466, 0x8003),
.driver_info = (unsigned long) & (const struct
snd_usb_audio_quirk) {
.vendor_name = "Fractal Audio Systems",
.product_name = "AXE-FX II",
.ifnum = QUIRK_ANY_INTERFACE,
.type = QUIRK_COMPOSITE,
.data = & (const struct snd_usb_audio_quirk[]) {
{
.ifnum = 0,
.type = QUIRK_AUDIO_STANDARD_MIXER
},
{
.ifnum = 1,
.type = QUIRK_AUDIO_FIXED_ENDPOINT,
.data = & (const struct audioformat) {
.formats = SNDRV_PCM_FMTBIT_S24_3LE,
.channels = 2,
.iface = 1,
.altsetting = 1,
.altset_idx = 1,
.attributes = 0,
.endpoint = 0x02,
.ep_attr = 0x05,
.maxpacksize = 0x002a,
.rates = SNDRV_PCM_RATE_CONTINUOUS,
.rate_min = 48000,
.rate_max = 48000
}
},
{
.ifnum = 2,
.type = QUIRK_AUDIO_FIXED_ENDPOINT,
.data = & (const struct audioformat) {
.formats = SNDRV_PCM_FMTBIT_S24_3LE,
.channels = 4,
.iface = 2,
.altsetting = 1,
.altset_idx = 1,
.attributes = 0,
.endpoint = 0x86,
.ep_attr = 0x05,
.maxpacksize = 0x0054,
.rates = SNDRV_PCM_RATE_CONTINUOUS,
.rate_min = 48000,
.rate_max = 48000
}
},
{
.ifnum = 3,
.type = QUIRK_MIDI_STANDARD_INTERFACE
},
{
.ifnum = -1
}
}
}
},
As soon as the device is connected in /var/log/messages now appears:
... kernel: [ 6183.427373] ALSA pcm.c:343 cannot set format: format
= 0x20, rate = 48000, channels = 2
... pulseaudio[2803]: [pulseaudio] module-alsa-card.c: Failed to
find a working profile.
... pulseaudio[2803]: [pulseaudio] module.c: Failed to load module
"module-alsa-card" (argument: "device_id="3"
name="usb-Fractal_Audio_Systems_AXE-FX_II-00-II"
card_name="alsa_card.usb-Fractal_Audio_Systems_AXE-FX_II-00-II"
namereg_fail=false tsched=yes ignore_dB=no deferred_volume=yes
card_properties="module-udev-detect.discovered=1""): initialization
failed.
... pulseaudio[2803]: [pulseaudio] module-udev-detect.c: Tried to
configure
/devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.1/2-1.1:1.0/sound/card3
(alsa_card.usb-Fractal_Audio_Systems_AXE-FX_II-00-II)
more often than 5 times in 10s
... pulseaudio[2803]: [pulseaudio] module.c: Failed to load module
"module-alsa-card" (argument: "device_id="3"
name="usb-Fractal_Audio_Systems_AXE-FX_II-00-II"
card_name="alsa_card.usb-Fractal_Audio_Systems_AXE-FX_II-00-II"
namereg_fail=false tsched=yes ignore_dB=no deferred_volume=yes
card_properties="module-udev-detect.discovered=1""): initialization
failed.
And when I try to record with arecord I get the following:
arecord -c4 -f S24_3LE -r 48000 -d 10 -D plughw:3,0 test.wav
Aufnahme: WAVE 'test.wav' : Signed 24 bit Little Endian in 3bytes,
Rate: 48000 Hz, 4 Kanäle
arecord: set_params:1137: Fehler beim Setzen der Hardware-Parameter:
ACCESS: RW_INTERLEAVED
FORMAT: S24_3LE
SUBFORMAT: STD
SAMPLE_BITS: 24
FRAME_BITS: 96
CHANNELS: 4
RATE: 48000
PERIOD_TIME: 125000
PERIOD_SIZE: 6000
PERIOD_BYTES: 72000
PERIODS: 4
BUFFER_TIME: 500000
BUFFER_SIZE: 24000
BUFFER_BYTES: 288000
TICK_TIME: 0
I would be very glad, if you could have a look at my quirk. Any help is
highly appreciated.
Joachim
P.S. The only sample valid rate for the Axe-FX II is 48000 Hz at 24bit.
------------------------------------------------------------------------------
For Developers, A Lot Can Happen In A Second.
Boundary is the first to Know...and Tell You.
Monitor Your Applications in Ultra-Fine Resolution. Try it FREE!
http://p.sf.net/sfu/Boundary-d2dvs2
_______________________________________________
Alsa-user mailing list
Alsa-user@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/alsa-user