* M-Audio Audiophile USB, native little endian (S16_LE) ?
@ 2007-07-08 13:36 Hakan Lennestal
2007-07-09 8:12 ` RE : " Thibault Le Meur
0 siblings, 1 reply; 21+ messages in thread
From: Hakan Lennestal @ 2007-07-08 13:36 UTC (permalink / raw)
To: alsa-devel; +Cc: tiwai
Hi all !
I don't know if this is already known (?), but the M-Audio Audiophile USB
seem to be possible to run in native S16_LE mode if initialized with
device_setup=0x01 (possibly with 0x11 also, have not tested that).
This is at least the case with my rather new box (bought a couple of
weeks ago).
Patch for usb/usbaudio.c (alsa-driver-1.0.14):
static int is_big_endian_format(struct snd_usb_audio *chip, struct
audioformat *fp)
{
switch (chip->usb_id) {
case USB_ID(0x0763, 0x2001): /* M-Audio Quattro: captured data only */
if (fp->endpoint & USB_DIR_IN)
return 1;
break;
case USB_ID(0x0763, 0x2003): /* M-Audio Audiophile USB */
+ // Is small endian if setup with 0x01 !
+ if (device_setup[chip->index] != 0x01)
return 1;
break;
}
return 0;
}
/Håkan
^ permalink raw reply [flat|nested] 21+ messages in thread
* RE : M-Audio Audiophile USB, native little endian (S16_LE) ?
2007-07-08 13:36 M-Audio Audiophile USB, native little endian (S16_LE) ? Hakan Lennestal
@ 2007-07-09 8:12 ` Thibault Le Meur
2007-07-09 8:41 ` Takashi Iwai
2007-07-09 10:39 ` Hakan Lennestal
0 siblings, 2 replies; 21+ messages in thread
From: Thibault Le Meur @ 2007-07-09 8:12 UTC (permalink / raw)
To: 'Hakan Lennestal', alsa-devel; +Cc: tiwai
> -----Message d'origine-----
> De : alsa-devel-bounces@alsa-project.org
> [mailto:alsa-devel-bounces@alsa-project.org] De la part de
> Hakan Lennestal
> Envoyé : dimanche 8 juillet 2007 15:36
> À : alsa-devel@alsa-project.org
> Cc : tiwai@suse.de
> Objet : [alsa-devel] M-Audio Audiophile USB, native little
> endian (S16_LE) ?
>
>
>
> Hi all !
>
> I don't know if this is already known (?), but the M-Audio
> Audiophile USB seem to be possible to run in native S16_LE
> mode if initialized with device_setup=0x01 (possibly with
> 0x11 also, have not tested that).
No I wasn't aware of this !
How did you figure this out ?
When you say 'it is possible' to run it in S16_LE do you mean it both
recognizes S16_BE and S16_LE or only S16_LE ?
Mine works with S16_BE but I must admit I haven't tested with S16_LE.
Regards,
Thibault
^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: RE : M-Audio Audiophile USB, native little endian (S16_LE) ?
2007-07-09 8:12 ` RE : " Thibault Le Meur
@ 2007-07-09 8:41 ` Takashi Iwai
2007-07-09 10:39 ` Hakan Lennestal
1 sibling, 0 replies; 21+ messages in thread
From: Takashi Iwai @ 2007-07-09 8:41 UTC (permalink / raw)
To: Thibault Le Meur; +Cc: alsa-devel, 'Hakan Lennestal'
At Mon, 9 Jul 2007 10:12:38 +0200,
Thibault Le Meur wrote:
>
>
>
> > -----Message d'origine-----
> > De : alsa-devel-bounces@alsa-project.org
> > [mailto:alsa-devel-bounces@alsa-project.org] De la part de
> > Hakan Lennestal
> > Envoyé : dimanche 8 juillet 2007 15:36
> > À : alsa-devel@alsa-project.org
> > Cc : tiwai@suse.de
> > Objet : [alsa-devel] M-Audio Audiophile USB, native little
> > endian (S16_LE) ?
> >
> >
> >
> > Hi all !
> >
> > I don't know if this is already known (?), but the M-Audio
> > Audiophile USB seem to be possible to run in native S16_LE
> > mode if initialized with device_setup=0x01 (possibly with
> > 0x11 also, have not tested that).
>
> No I wasn't aware of this !
> How did you figure this out ?
>
> When you say 'it is possible' to run it in S16_LE do you mean it both
> recognizes S16_BE and S16_LE or only S16_LE ?
>
> Mine works with S16_BE but I must admit I haven't tested with S16_LE.
S16_LE support would be great if it really works stably.
Could you both confirm whether the patch works fine? If it's OK, I'm
willing to put it into the next upstream kernel (2.6.23).
Takashi
^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: RE : M-Audio Audiophile USB, native little endian (S16_LE) ?
2007-07-09 8:12 ` RE : " Thibault Le Meur
2007-07-09 8:41 ` Takashi Iwai
@ 2007-07-09 10:39 ` Hakan Lennestal
2007-07-10 21:22 ` Thibault Le Meur
1 sibling, 1 reply; 21+ messages in thread
From: Hakan Lennestal @ 2007-07-09 10:39 UTC (permalink / raw)
To: Thibault Le Meur; +Cc: tiwai, alsa-devel
> > I don't know if this is already known (?), but the M-Audio
> > Audiophile USB seem to be possible to run in native S16_LE
> > mode if initialized with device_setup=0x01 (possibly with
> > 0x11 also, have not tested that).
>
> No I wasn't aware of this !
> How did you figure this out ?
When initialized with device_setup=0x01 my box only produces noise.
With 0x00 (or omitted) it works ok, except for spdif out sometimes
not being setup correctly (no signal detect by the amp it is connected to).
0x09 seem to work without problems. Have not tested any other combinations.
Using a setup with 0x01 and preparing a raw S16_LE file (with "mpg123 -s")
and then playing with "aplay -D hw:2 -f S16_BE -r 44100 -c 2" produced good
quality sound.
This made me suspect that the device really is operating in native S16_LE.
> When you say 'it is possible' to run it in S16_LE do you mean it both
> recognizes S16_BE and S16_LE or only S16_LE ?
Sorry, a bit unclear. Only S16_LE.
> Mine works with S16_BE but I must admit I haven't tested with S16_LE.
Ok, this then seem to be something that has changed over time in the firmware
(or hw) ?
The fw version of my box is 1.01.
Regards.
/Håkan
^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: RE : M-Audio Audiophile USB, native little endian (S16_LE) ?
2007-07-09 10:39 ` Hakan Lennestal
@ 2007-07-10 21:22 ` Thibault Le Meur
2007-07-11 8:41 ` Takashi Iwai
` (2 more replies)
0 siblings, 3 replies; 21+ messages in thread
From: Thibault Le Meur @ 2007-07-10 21:22 UTC (permalink / raw)
To: Hakan Lennestal; +Cc: tiwai, alsa-devel, 'Pavel Polischouk'
[-- Attachment #1: Type: text/plain, Size: 1258 bytes --]
>
>> > I don't know if this is already known (?), but the M-Audio
>> > Audiophile USB seem to be possible to run in native S16_LE
>> > mode if initialized with device_setup=0x01 (possibly with
>> > 0x11 also, have not tested that).
Hakan,
Seems that you're right. After some more tests, I was able to play a
raw file supposed to be S16_BE (recorded from my audiophile usb) to a
Little endian only device.
I think we should fix this then, however I think that we should prefer
a fix that do not use device_setup too much because it is something
that could disapear in the future (see the old thread "[PATCH 1/2]
M-Audio USB").
You'll find attached an equivalent fix that checks alt-settings
instead of device_setup param: Can you try it Hakan ?
Moreover, it adds an extra reset-to-altset0 call at module
initialization time which proves to be useful to switch sample depth
modes without having to turn off the device. It is taken from Pavel
Polischouk's patch which wasn't really finalized (at least until now).
(Pavel are you still reading to this list?)
Takashi, let me know if you want to apply one of the proposed fixes,
cause I'll have to update the Documentation as well.
Regards,
Thibault
[-- Attachment #2: ma-audiophile-patch.diff --]
[-- Type: text/x-patch, Size: 783 bytes --]
--- orig/alsa-kernel/usb/usbaudio.c 2007-07-10 21:16:07.000000000 +0200
+++ alsa-kernel/usb/usbaudio.c 2007-07-10 21:32:16.000000000 +0200
@@ -2350,7 +2350,9 @@
return 1;
break;
case USB_ID(0x0763, 0x2003): /* M-Audio Audiophile USB */
- return 1;
+ if (fp->altsetting==1 || fp->altsetting==2 ||
+ fp->altsetting==3)
+ return 1;
}
return 0;
}
@@ -3251,6 +3253,10 @@
static int audiophile_skip_setting_quirk(struct snd_usb_audio *chip,
int iface, int altno)
{
+ /* Reset ALL ifaces to 0 altsetting.
+ Call it for every possible altsetting of every interface. */
+ usb_set_interface(chip->dev, iface, 0);
+
if (device_setup[chip->index] & AUDIOPHILE_SET) {
if ((device_setup[chip->index] & AUDIOPHILE_SET_DTS)
&& altno != 6)
[-- Attachment #3: Type: text/plain, Size: 160 bytes --]
_______________________________________________
Alsa-devel mailing list
Alsa-devel@alsa-project.org
http://mailman.alsa-project.org/mailman/listinfo/alsa-devel
^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: RE : M-Audio Audiophile USB, native little endian (S16_LE) ?
2007-07-10 21:22 ` Thibault Le Meur
@ 2007-07-11 8:41 ` Takashi Iwai
2007-07-11 10:38 ` RE : " Thibault Le Meur
2007-07-11 10:34 ` RE : M-Audio Audiophile USB, native little endian (S16_LE) ? Hakan Lennestal
2007-09-04 22:18 ` Pavel Polischouk
2 siblings, 1 reply; 21+ messages in thread
From: Takashi Iwai @ 2007-07-11 8:41 UTC (permalink / raw)
To: Thibault Le Meur; +Cc: alsa-devel, 'Pavel Polischouk', Hakan Lennestal
At Tue, 10 Jul 2007 23:22:03 +0200,
Thibault Le Meur wrote:
>
> Takashi, let me know if you want to apply one of the proposed fixes,
> cause I'll have to update the Documentation as well.
Your patch looks fine to me. If it works for you all, I'm willing to
apply it.
Takashi
^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: RE : M-Audio Audiophile USB, native little endian (S16_LE) ?
2007-07-10 21:22 ` Thibault Le Meur
2007-07-11 8:41 ` Takashi Iwai
@ 2007-07-11 10:34 ` Hakan Lennestal
2007-09-04 22:18 ` Pavel Polischouk
2 siblings, 0 replies; 21+ messages in thread
From: Hakan Lennestal @ 2007-07-11 10:34 UTC (permalink / raw)
To: Thibault Le Meur; +Cc: tiwai, alsa-devel, 'Pavel Polischouk'
> You'll find attached an equivalent fix that checks alt-settings
> instead of device_setup param: Can you try it Hakan ?
Ok, patch tested now. Seem to work.
/Håkan
^ permalink raw reply [flat|nested] 21+ messages in thread
* RE : RE : M-Audio Audiophile USB, native little endian (S16_LE) ?
2007-07-11 8:41 ` Takashi Iwai
@ 2007-07-11 10:38 ` Thibault Le Meur
2007-07-11 10:44 ` RE : " Thibault Le Meur
0 siblings, 1 reply; 21+ messages in thread
From: Thibault Le Meur @ 2007-07-11 10:38 UTC (permalink / raw)
To: 'Takashi Iwai'
Cc: alsa-devel, 'Pavel Polischouk', 'Hakan Lennestal'
>
> At Tue, 10 Jul 2007 23:22:03 +0200,
> Thibault Le Meur wrote:
> >
> > Takashi, let me know if you want to apply one of the proposed fixes,
> > cause I'll have to update the Documentation as well.
>
> Your patch looks fine to me. If it works for you all, I'm
> willing to apply it.
>
> Takashi
Ok, since Hakan reported a success for this patch, I'll prepare a new diff
including Documentation update.
Thibault
^ permalink raw reply [flat|nested] 21+ messages in thread
* RE : RE : RE : M-Audio Audiophile USB, native little endian (S16_LE) ?
2007-07-11 10:38 ` RE : " Thibault Le Meur
@ 2007-07-11 10:44 ` Thibault Le Meur
2007-07-11 10:47 ` Takashi Iwai
0 siblings, 1 reply; 21+ messages in thread
From: Thibault Le Meur @ 2007-07-11 10:44 UTC (permalink / raw)
To: 'Thibault Le Meur', 'Takashi Iwai'
Cc: alsa-devel, 'Hakan Lennestal'
>
> Ok, since Hakan reported a success for this patch, I'll
> prepare a new diff including Documentation update.
Takashi,
What is the deadline and what will be the alsa-release/kernel-version
including this patch (info needed for doc update) ?
Regards,
Thibault
^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: RE : RE : RE : M-Audio Audiophile USB, native little endian (S16_LE) ?
2007-07-11 10:44 ` RE : " Thibault Le Meur
@ 2007-07-11 10:47 ` Takashi Iwai
2007-07-11 11:39 ` RE : " Thibault Le Meur
2007-07-11 21:48 ` Thibault Le Meur
0 siblings, 2 replies; 21+ messages in thread
From: Takashi Iwai @ 2007-07-11 10:47 UTC (permalink / raw)
To: Thibault Le Meur; +Cc: alsa-devel, 'Hakan Lennestal'
At Wed, 11 Jul 2007 12:44:27 +0200,
Thibault Le Meur wrote:
>
>
> >
> > Ok, since Hakan reported a success for this patch, I'll
> > prepare a new diff including Documentation update.
>
> Takashi,
>
> What is the deadline and what will be the alsa-release/kernel-version
> including this patch (info needed for doc update) ?
We need it ASAP because of the merge window for 2.6.23 kernel.
The patch should be prepared against the latest HG tree.
I guess the patch to 1.0.14 should be applicable to the current
version without hitches, though.
Takashi
^ permalink raw reply [flat|nested] 21+ messages in thread
* RE : RE : RE : RE : M-Audio Audiophile USB, native little endian (S16_LE) ?
2007-07-11 10:47 ` Takashi Iwai
@ 2007-07-11 11:39 ` Thibault Le Meur
2007-07-11 21:48 ` Thibault Le Meur
1 sibling, 0 replies; 21+ messages in thread
From: Thibault Le Meur @ 2007-07-11 11:39 UTC (permalink / raw)
To: 'Takashi Iwai'; +Cc: alsa-devel, 'Hakan Lennestal'
> -----Message d'origine-----
> De : Takashi Iwai [mailto:tiwai@suse.de]
> Envoyé : mercredi 11 juillet 2007 12:47
> À : Thibault Le Meur
> Cc : alsa-devel@alsa-project.org; 'Hakan Lennestal'
> Objet : Re: RE : [alsa-devel] RE : RE : M-Audio Audiophile
> USB,native little endian (S16_LE) ?
>
>
> At Wed, 11 Jul 2007 12:44:27 +0200,
> Thibault Le Meur wrote:
> >
> >
> > >
> > > Ok, since Hakan reported a success for this patch, I'll
> > > prepare a new diff including Documentation update.
> >
> > Takashi,
> >
> > What is the deadline and what will be the
> alsa-release/kernel-version
> > including this patch (info needed for doc update) ?
>
> We need it ASAP because of the merge window for 2.6.23
> kernel.
I'll work on this tonight then.
> The patch should be prepared against the latest HG
> tree. I guess the patch to 1.0.14 should be applicable to the
> current version without hitches, though.
I'll generate it against hg-tree as was my last patch.
Thanks,
Thibault.
^ permalink raw reply [flat|nested] 21+ messages in thread
* RE : RE : M-Audio Audiophile USB, native little endian (S16_LE) ?
2007-07-11 10:47 ` Takashi Iwai
2007-07-11 11:39 ` RE : " Thibault Le Meur
@ 2007-07-11 21:48 ` Thibault Le Meur
2007-07-12 9:28 ` Takashi Iwai
1 sibling, 1 reply; 21+ messages in thread
From: Thibault Le Meur @ 2007-07-11 21:48 UTC (permalink / raw)
To: Takashi Iwai; +Cc: alsa-devel, 'Hakan Lennestal'
[-- Attachment #1: Type: text/plain, Size: 562 bytes --]
>> > Ok, since Hakan reported a success for this patch, I'll
>> > prepare a new diff including Documentation update.
Here is a slightly modified fix which takes into account a special
case: when no device_setup is used, all interfaces are Big-endians
even if used in 16bits modes.
So I had to add a check for device_setup beeing 0x00 or not.
Summary: Audiophile-usb fix (corrects little-endianness in 16bit
modes, resets interfaces at device initialization, and updates the
documentation)
Signed-Of-By: Thibault Le Meur <Thibault.LeMeur@supelec.fr>
[-- Attachment #2: ma-audiophile_S16_LE.diff --]
[-- Type: text/x-patch, Size: 18333 bytes --]
--- orig/alsa-kernel/Documentation/Audiophile-Usb.txt 2007-07-10 21:16:06.000000000 +0200
+++ alsa-kernel/Documentation/Audiophile-Usb.txt 2007-07-11 23:22:16.000000000 +0200
@@ -1,4 +1,4 @@
- Guide to using M-Audio Audiophile USB with ALSA and Jack v1.3
+ Guide to using M-Audio Audiophile USB with ALSA and Jack v1.4
========================================================
Thibault Le Meur <Thibault.LeMeur@supelec.fr>
@@ -6,8 +6,17 @@
This document is a guide to using the M-Audio Audiophile USB (tm) device with
ALSA and JACK.
+History
+=======
+* v1.4 - Thibault Le Meur (2007-07-11)
+ - Added Low Endianness nature of 16bits-modes
+ found by Hakan Lennestal <Hakan.Lennestal@brfsodrahamn.se>
+ - Modifying document structure
+
+
1 - Audiophile USB Specs and correct usage
==========================================
+
This part is a reminder of important facts about the functions and limitations
of the device.
@@ -25,18 +34,18 @@
The internal DAC/ADC has the following characteristics:
* sample depth of 16 or 24 bits
* sample rate from 8kHz to 96kHz
-* Two ports can't use different sample depths at the same time. Moreover, the
-Audiophile USB documentation gives the following Warning: "Please exit any
-audio application running before switching between bit depths"
+* Two interfaces can't use different sample depths at the same time.
+Moreover, the Audiophile USB documentation gives the following Warning:
+"Please exit any audio application running before switching between bit depths"
Due to the USB 1.1 bandwidth limitation, a limited number of interfaces can be
activated at the same time depending on the audio mode selected:
- * 16-bit/48kHz ==> 4 channels in/4 channels out
+ * 16-bit/48kHz ==> 4 channels in + 4 channels out
- Ai+Ao+Di+Do
- * 24-bit/48kHz ==> 4 channels in/2 channels out,
- or 2 channels in/4 channels out
+ * 24-bit/48kHz ==> 4 channels in + 2 channels out,
+ or 2 channels in + 4 channels out
- Ai+Ao+Do or Ai+Di+Ao or Ai+Di+Do or Di+Ao+Do
- * 24-bit/96kHz ==> 2 channels in, or 2 channels out (half duplex only)
+ * 24-bit/96kHz ==> 2 channels in _or_ 2 channels out (half duplex only)
- Ai or Ao or Di or Do
Important facts about the Digital interface:
@@ -52,44 +61,53 @@
synchronization error (for instance sound played at an odd sample rate)
-2 - Audiophile USB support in ALSA
-==================================
+2 - Audiophile USB MIDI support in ALSA
+=======================================
-2.1 - MIDI ports
-----------------
-The Audiophile USB MIDI ports will be automatically supported once the
+The Audiophile USB MIDI ports will be automatically supported once the
following modules have been loaded:
* snd-usb-audio
* snd-seq-midi
No additional setting is required.
-2.2 - Audio ports
------------------
+
+3 - Audiophile USB Audio support in ALSA
+========================================
Audio functions of the Audiophile USB device are handled by the snd-usb-audio
module. This module can work in a default mode (without any device-specific
parameter), or in an "advanced" mode with the device-specific parameter called
"device_setup".
-2.2.1 - Default Alsa driver mode
-
-The default behavior of the snd-usb-audio driver is to parse the device
-capabilities at startup and enable all functions inside the device (including
-all ports at any supported sample rates and sample depths). This approach
-has the advantage to let the driver easily switch from sample rates/depths
-automatically according to the need of the application claiming the device.
+3.1 - Default Alsa driver mode
+------------------------------
-In this case the Audiophile ports are mapped to alsa pcm devices in the
-following way (I suppose the device's index is 1):
+The default behavior of the snd-usb-audio driver is to list the device
+capabilities at startup and activate the required mode when required
+by the applications: for instance if the user is recording in a
+24bit-depth-mode and immediately after wants to switch to a 16bit-depth mode,
+the snd-usb-audio module will reconfigure the device on the fly.
+
+This approach has the advantage to let the driver automatically switch from sample
+rates/depths automatically according to the user's needs. However, those who
+are using the device under windows know that this is not how the device is meant to
+work: under windows applications must be closed before using the m-audio control
+panel to switch the device working mode. Thus as we'll see in next section, this
+Default Alsa driver mode can lead to device misconfigurations.
+
+Let's get back to the Default Alsa driver mode for now. In this case the
+Audiophile interfaces are mapped to alsa pcm devices in the following
+way (I suppose the device's index is 1):
* hw:1,0 is Ao in playback and Di in capture
* hw:1,1 is Do in playback and Ai in capture
* hw:1,2 is Do in AC3/DTS passthrough mode
-You must note as well that the device uses Big Endian byte encoding so that
-supported audio format are S16_BE for 16-bit depth modes and S24_3BE for
-24-bits depth mode. One exception is the hw:1,2 port which is Little Endian
-compliant and thus uses S16_LE.
+In this mode, the device uses Big Endian byte-encoding so that
+supported audio format are S16_BE for 16-bit depth modes and S24_3BE for
+24-bits depth mode. One exception is the hw:1,2 port which is reported
+to be Little Endian compliant (supposedly supporting S16_LE) but processes
+in fact only S16_BE streams.
Examples:
* playing a S24_3BE encoded raw file to the Ao port
@@ -99,21 +117,23 @@
* playing a S16_BE encoded raw file to the Do port
% aplay -D hw:1,1 -c2 -t raw -r48000 -fS16_BE test.raw
-If you're happy with the default Alsa driver setup and don't experience any
+If you're happy with the default Alsa driver mode and don't experience any
issue with this mode, then you can skip the following chapter.
-2.2.2 - Advanced module setup
+3.2 - Advanced module setup
+---------------------------
Due to the hardware constraints described above, the device initialization made
by the Alsa driver in default mode may result in a corrupted state of the
device. For instance, a particularly annoying issue is that the sound captured
-from the Ai port sounds distorted (as if boosted with an excessive high volume
-gain).
+from the Ai interface sounds distorted (as if boosted with an excessive high
+volume gain).
For people having this problem, the snd-usb-audio module has a new module
-parameter called "device_setup".
+parameter called "device_setup" (this parameter was introduced in kernel
+release 2.6.17)
-2.2.2.1 - Initializing the working mode of the Audiophile USB
+3.2.1 - Initializing the working mode of the Audiophile USB
As far as the Audiophile USB device is concerned, this value let the user
specify:
@@ -121,33 +141,57 @@
* the sample rate
* whether the Di port is used or not
-Here is a list of supported device_setup values for this device:
- * device_setup=0x00 (or omitted)
- - Alsa driver default mode
- - maintains backward compatibility with setups that do not use this
- parameter by not introducing any change
- - results sometimes in corrupted sound as described earlier
+When initialized with "device_setup=0x00", the snd-usb-audio module has
+the same behaviour as when the parameter is omitted (see paragraph "Default
+Alsa driver mode" above)
+
+Others modes are described in the following subsections.
+
+3.2.1.1 - 16-bit modes
+
+The two supported modes are:
+
* device_setup=0x01
- 16bits 48kHz mode with Di disabled
- Ai,Ao,Do can be used at the same time
- hw:1,0 is not available in capture mode
- hw:1,2 is not available
+
* device_setup=0x11
- 16bits 48kHz mode with Di enabled
- Ai,Ao,Di,Do can be used at the same time
- hw:1,0 is available in capture mode
- hw:1,2 is not available
+
+In this modes the device operates only at 16bits-modes. Before kernel 2.6.23,
+the devices where reported to be Big-Endian when in fact they were Little-Endian
+so that playing a file was a matter of using:
+ % aplay -D hw:1,1 -c2 -t raw -r48000 -fS16_BE test_S16_LE.raw
+where "test_S16_LE.raw" was in fact a little-endian sample file.
+
+Thanks to Hakan Lennestal (who discovered the Little-Endiannes of the device in
+these modes) a fix has been committed (expected in kernel 2.6.23) and
+Alsa now reports Little-Endian interfaces. Thus playing a file now is as simple as
+using:
+ % aplay -D hw:1,1 -c2 -t raw -r48000 -fS16_LE test_S16_LE.raw
+
+3.2.1.2 - 24-bit modes
+
+The three supported modes are:
+
* device_setup=0x09
- 24bits 48kHz mode with Di disabled
- Ai,Ao,Do can be used at the same time
- hw:1,0 is not available in capture mode
- hw:1,2 is not available
+
* device_setup=0x19
- 24bits 48kHz mode with Di enabled
- 3 ports from {Ai,Ao,Di,Do} can be used at the same time
- hw:1,0 is available in capture mode and an active digital source must be
connected to Di
- hw:1,2 is not available
+
* device_setup=0x0D or 0x10
- 24bits 96kHz mode
- Di is enabled by default for this mode but does not need to be connected
@@ -155,34 +199,61 @@
- Only 1 port from {Ai,Ao,Di,Do} can be used at the same time
- hw:1,0 is available in captured mode
- hw:1,2 is not available
+
+In these modes the device is only Big-Endian compliant (see "Default Alsa driver
+mode" above for an aplay command example)
+
+3.2.1.3 - AC3 w/ DTS passthru mode
+
+This mode is untested, I have no AC3 compliant device to test it. I uses:
+
* device_setup=0x03
- 16bits 48kHz mode with only the Do port enabled
- AC3 with DTS passthru (not tested)
- Caution with this setup the Do port is mapped to the pcm device hw:1,0
-2.2.2.2 - Setting and switching configurations with the device_setup parameter
+3.2.2 - How to use the device_setup parameter
+----------------------------------------------
The parameter can be given:
+
* By manually probing the device (as root):
# modprobe -r snd-usb-audio
# modprobe snd-usb-audio index=1 device_setup=0x09
+
* Or while configuring the modules options in your modules configuration file
- For Fedora distributions, edit the /etc/modprobe.conf file:
alias snd-card-1 snd-usb-audio
options snd-usb-audio index=1 device_setup=0x09
-IMPORTANT NOTE WHEN SWITCHING CONFIGURATION:
--------------------------------------------
- * You may need to _first_ initialize the module with the correct device_setup
- parameter and _only_after_ turn on the Audiophile USB device
- * This is especially true when switching the sample depth:
+CAUTION when initializaing the device
+-------------------------------------
+
+ * Correct initialization on the device requires that device_setup is given to
+ the module BEFORE the device is turned on. So, if you use the "manual probing"
+ method described above, take care to power-on the device AFTER this initialization.
+
+ * Failing to respect this will lead in a misconfiguration of the device. In this case
+ turn off the device, unproble the snd-usb-audio module, then probe it again with
+ correct device_setup parameter and then (and only then) turn on the device again.
+
+ * If you've correctly initialized the device in a valid mode and then want to switch
+ to another mode (possibly with another sample-depth), please use also the following
+ procedure:
- first turn off the device
- de-register the snd-usb-audio module (modprobe -r)
- change the device_setup parameter by changing the device_setup
option in /etc/modprobe.conf
- turn on the device
+ * A workaround for this last issue has been applied to kernel 2.6.23, but it may not
+ be enough to ensure the 'stability' of the device initialization.
-2.2.2.3 - Audiophile USB's device_setup structure
+3.2.3 - Technical details for hackers
+-------------------------------------
+This section is for hackers, wanting to understand details about the device
+internals and how Alsa supports it.
+
+3.2.3.1 - Audiophile USB's device_setup structure
If you want to understand the device_setup magic numbers for the Audiophile
USB, you need some very basic understanding of binary computation. However,
@@ -228,12 +299,12 @@
- choosing b2 will prepare all interfaces for 24bits/96kHz but you'll
only be able to use one at the same time
-2.2.3 - USB implementation details for this device
+3.2.3.2 - USB implementation details for this device
You may safely skip this section if you're not interested in driver
-development.
+hacking.
-This section describes some internal aspects of the device and summarize the
+This section describes some internal aspects of the device and summarizes the
data I got by usb-snooping the windows and Linux drivers.
The M-Audio Audiophile USB has 7 USB Interfaces:
@@ -293,43 +364,45 @@
"audiophile_skip_setting_quirk" in order to prevent AltSettings not
corresponding to device_setup from being registered in the driver.
-3 - Audiophile USB and Jack support
+4 - Audiophile USB and Jack support
===================================
This section deals with support of the Audiophile USB device in Jack.
-The main issue regarding this support is that the device is Big Endian
-compliant.
-3.1 - Using the plug alsa plugin
---------------------------------
+There are 2 main potential issues when using Jackd with the device:
+* support for Big-Endian devices in 24-bit modes
+* support for 4-in / 4-out channels
+
+4.1 - Direct support in Jackd
+-----------------------------
+
+Jack supports big endian devices only in recent versions (thanks to
+Andreas Steinmetz for his first big-endian patch). I can't remember
+extacly when this support was released into jackd, let's just say that
+with jackd version 0.103.0 it's almost ok (just a small bug is affecting
+16bits Big-Endian devices, but since you've read carefully the above
+paragraphs, you're now using kernel >= 2.6.23 and your 16bits devices
+are now Little Endians ;-) ).
+
+You can run jackd with the following command for playback with Ao and
+record with Ai:
+ % jackd -R -dalsa -Phw:1,0 -r48000 -p128 -n2 -D -Chw:1,1
-Jack doesn't directly support big endian devices. Thus, one way to have support
-for this device with Alsa is to use the Alsa "plug" converter.
+4.2 - Using Alsa plughw
+-----------------------
+If you don't have a recent Jackd installed, you can downgrade to using
+the Alsa "plug" converter.
For instance here is one way to run Jack with 2 playback channels on Ao and 2
capture channels from Ai:
% jackd -R -dalsa -dplughw:1 -r48000 -p256 -n2 -D -Cplughw:1,1
-
However you may see the following warning message:
"You appear to be using the ALSA software "plug" layer, probably a result of
using the "default" ALSA device. This is less efficient than it could be.
Consider using a hardware device instead rather than using the plug layer."
-3.2 - Patching alsa to use direct pcm device
---------------------------------------------
-A patch for Jack by Andreas Steinmetz adds support for Big Endian devices.
-However it has not been included in the CVS tree.
-
-You can find it at the following URL:
-http://sourceforge.net/tracker/index.php?func=detail&aid=1289682&group_id=39687&
-atid=425939
-
-After having applied the patch you can run jackd with the following command
-line:
- % jackd -R -dalsa -Phw:1,0 -r48000 -p128 -n2 -D -Chw:1,1
-
-3.2 - Getting 2 input and/or output interfaces in Jack
+4.3 - Getting 2 input and/or output interfaces in Jack
------------------------------------------------------
As you can see, starting the Jack server this way will only enable 1 stereo
@@ -339,6 +412,7 @@
* Jack can only open one capture device and one playback device at a time
* The Audiophile USB is seen as 2 (or three) Alsa devices: hw:1,0, hw:1,1
(and optionally hw:1,2)
+
If you want to get Ai+Di and/or Ao+Do support with Jack, you would need to
combine the Alsa devices into one logical "complex" device.
@@ -348,13 +422,11 @@
the Audiophile USB.
Enabling multiple Audiophile USB interfaces for Jackd will certainly require:
-* patching Jack with the previously mentioned "Big Endian" patch
-* patching Jackd with the MMAP_COMPLEX patch (see the ice1712 page)
-* patching the alsa-lib/src/pcm/pcm_multi.c file (see the ice1712 page)
+* Making sure your Jackd version has the MMAP_COMPLEX patch (see the ice1712 page)
+* (maybe) patching the alsa-lib/src/pcm/pcm_multi.c file (see the ice1712 page)
* define a multi device (combination of hw:1,0 and hw:1,1) in your .asoundrc
file
* start jackd with this device
-I had no success in testing this for now, but this may be due to my OS
-configuration. If you have any success with this kind of setup, please
-drop me an email.
+I had no success in testing this for now, if you have any success with this kind
+of setup, please drop me an email.
--- orig/alsa-kernel/usb/usbaudio.c 2007-07-10 21:16:07.000000000 +0200
+++ alsa-kernel/usb/usbaudio.c 2007-07-11 20:53:28.000000000 +0200
@@ -2350,7 +2350,9 @@
return 1;
break;
case USB_ID(0x0763, 0x2003): /* M-Audio Audiophile USB */
- return 1;
+ if (device_setup[chip->index] == 0x00 ||
+ fp->altsetting==1 || fp->altsetting==2 || fp->altsetting==3)
+ return 1;
}
return 0;
}
@@ -3251,6 +3253,10 @@
static int audiophile_skip_setting_quirk(struct snd_usb_audio *chip,
int iface, int altno)
{
+ /* Reset ALL ifaces to 0 altsetting.
+ Call it for every possible altsetting of every interface. */
+ usb_set_interface(chip->dev, iface, 0);
+
if (device_setup[chip->index] & AUDIOPHILE_SET) {
if ((device_setup[chip->index] & AUDIOPHILE_SET_DTS)
&& altno != 6)
[-- Attachment #3: Type: text/plain, Size: 160 bytes --]
_______________________________________________
Alsa-devel mailing list
Alsa-devel@alsa-project.org
http://mailman.alsa-project.org/mailman/listinfo/alsa-devel
^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: RE : RE : M-Audio Audiophile USB, native little endian (S16_LE) ?
2007-07-11 21:48 ` Thibault Le Meur
@ 2007-07-12 9:28 ` Takashi Iwai
2007-07-12 21:21 ` Thibault Le Meur
0 siblings, 1 reply; 21+ messages in thread
From: Takashi Iwai @ 2007-07-12 9:28 UTC (permalink / raw)
To: Thibault Le Meur; +Cc: alsa-devel, 'Hakan Lennestal'
At Wed, 11 Jul 2007 23:48:03 +0200,
Thibault Le Meur wrote:
>
> >> > Ok, since Hakan reported a success for this patch, I'll
> >> > prepare a new diff including Documentation update.
>
> Here is a slightly modified fix which takes into account a special
> case: when no device_setup is used, all interfaces are Big-endians
> even if used in 16bits modes.
> So I had to add a check for device_setup beeing 0x00 or not.
>
> Summary: Audiophile-usb fix (corrects little-endianness in 16bit
> modes, resets interfaces at device initialization, and updates the
> documentation)
>
> Signed-Of-By: Thibault Le Meur <Thibault.LeMeur@supelec.fr>
Thanks, applied now.
Takashi
^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: RE : RE : M-Audio Audiophile USB, native little endian (S16_LE) ?
2007-07-12 9:28 ` Takashi Iwai
@ 2007-07-12 21:21 ` Thibault Le Meur
2007-07-12 22:41 ` Hakan Lennestal
2007-07-13 9:57 ` Takashi Iwai
0 siblings, 2 replies; 21+ messages in thread
From: Thibault Le Meur @ 2007-07-12 21:21 UTC (permalink / raw)
To: alsa-devel; +Cc: Takashi Iwai, 'Hakan Lennestal'
[-- Attachment #1: Type: text/plain, Size: 941 bytes --]
-
>> Summary: Audiophile-usb fix (corrects little-endianness in 16bit
>> modes, resets interfaces at device initialization, and updates the
>> documentation)
>>
>> Signed-Of-By: Thibault Le Meur <Thibault.LeMeur@supelec.fr>
>
> Thanks, applied now.
>
>
> Takashi
Hi,
Hakan reported to me (off-list) that the AC3 function works correctly
with the device except in device_setup=0x00 mode because the interface
is reported to be little endian whereas it is in fact big-endian (in
this mode only).
With the help of Hakan I made a fix and updated the doc accordingly.
Hakan could you test this fix (to be applied after my last one) and
report if it is ok for you ?
Takashi, in case everything is ok and you want to apply the patch:
Summary: Fixed AC3 interface in device_setup=0x00 mode thanks to Hakan
Lennestal and updated documentation
Signed-Of-By: Thibault Le Meur <Thibault.LeMeur@supelec.fr>
Thanks in advance,
Thibault
[-- Attachment #2: ma-audiophile-ac3fix.diff --]
[-- Type: text/x-patch, Size: 3386 bytes --]
--- alsa-kernel/Documentation/Audiophile-Usb.txt 2007-07-12 23:15:04.000000000 +0200
+++ new/alsa-kernel/Documentation/Audiophile-Usb.txt 2007-07-12 23:00:04.000000000 +0200
@@ -1,4 +1,4 @@
- Guide to using M-Audio Audiophile USB with ALSA and Jack v1.4
+ Guide to using M-Audio Audiophile USB with ALSA and Jack v1.5
========================================================
Thibault Le Meur <Thibault.LeMeur@supelec.fr>
@@ -12,6 +12,8 @@
- Added Low Endianness nature of 16bits-modes
found by Hakan Lennestal <Hakan.Lennestal@brfsodrahamn.se>
- Modifying document structure
+* v1.5 - Thibault Le Meur (2007-07-12)
+ - Added AC3/DTS passthru info
1 - Audiophile USB Specs and correct usage
@@ -105,9 +107,12 @@
In this mode, the device uses Big Endian byte-encoding so that
supported audio format are S16_BE for 16-bit depth modes and S24_3BE for
-24-bits depth mode. One exception is the hw:1,2 port which is reported
-to be Little Endian compliant (supposedly supporting S16_LE) but processes
-in fact only S16_BE streams.
+24-bits depth mode.
+
+One exception is the hw:1,2 port which was reported to be Little Endian
+compliant (supposedly supporting S16_LE) but processes in fact only S16_BE streams.
+This has been fixed in kernel 2.6.23 and above and now the hw:1,2 interface
+is reported to be big endian in this default driver mode.
Examples:
* playing a S24_3BE encoded raw file to the Ao port
@@ -116,6 +121,8 @@
% arecord -D hw:1,1 -c2 -t raw -r48000 -fS24_3BE test.raw
* playing a S16_BE encoded raw file to the Do port
% aplay -D hw:1,1 -c2 -t raw -r48000 -fS16_BE test.raw
+ * playing an ac3 sample file to the Do port
+ % aplay -D hw:1,2 --channels=6 ac3_S16_BE_encoded_file.raw
If you're happy with the default Alsa driver mode and don't experience any
issue with this mode, then you can skip the following chapter.
@@ -205,13 +212,16 @@
3.2.1.3 - AC3 w/ DTS passthru mode
-This mode is untested, I have no AC3 compliant device to test it. I uses:
+Thanks to Hakan Lennestal, I now have a report saying that this mode works.
* device_setup=0x03
- 16bits 48kHz mode with only the Do port enabled
- - AC3 with DTS passthru (not tested)
+ - AC3 with DTS passthru
- Caution with this setup the Do port is mapped to the pcm device hw:1,0
+The command line used to playback the AC3/DTS encoded .wav-files in this mode:
+ % aplay -D hw:1,0 --channels=6 ac3_S16_LE_encoded_file.raw
+
3.2.2 - How to use the device_setup parameter
----------------------------------------------
--- alsa-kernel/usb/usbaudio.c 2007-07-12 23:15:05.000000000 +0200
+++ new/alsa-kernel/usb/usbaudio.c 2007-07-12 22:33:32.000000000 +0200
@@ -2532,7 +2532,18 @@
* but we give normal PCM format to get the existing
* apps working...
*/
- pcm_format = SNDRV_PCM_FORMAT_S16_LE;
+ switch (chip->usb_id) {
+
+ case USB_ID(0x0763, 0x2003): /* M-Audio Audiophile USB */
+ if (device_setup[chip->index] == 0x00 &&
+ fp->altsetting == 6)
+ pcm_format = SNDRV_PCM_FORMAT_S16_BE;
+ else
+ pcm_format = SNDRV_PCM_FORMAT_S16_LE;
+ break;
+ default:
+ pcm_format = SNDRV_PCM_FORMAT_S16_LE;
+ }
} else {
pcm_format = parse_audio_format_i_type(chip, fp, format, fmt);
if (pcm_format < 0)
[-- Attachment #3: Type: text/plain, Size: 160 bytes --]
_______________________________________________
Alsa-devel mailing list
Alsa-devel@alsa-project.org
http://mailman.alsa-project.org/mailman/listinfo/alsa-devel
^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: RE : RE : M-Audio Audiophile USB, native little endian (S16_LE) ?
2007-07-12 21:21 ` Thibault Le Meur
@ 2007-07-12 22:41 ` Hakan Lennestal
2007-07-13 9:57 ` Takashi Iwai
1 sibling, 0 replies; 21+ messages in thread
From: Hakan Lennestal @ 2007-07-12 22:41 UTC (permalink / raw)
To: Thibault Le Meur; +Cc: Takashi Iwai, alsa-devel
> With the help of Hakan I made a fix and updated the doc accordingly.
> Hakan could you test this fix (to be applied after my last one) and
> report if it is ok for you ?
Yes, seem to work quite nicely now with AC3/DTS also in device_setup=0x00 mode.
/Håkan
^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: RE : RE : M-Audio Audiophile USB, native little endian (S16_LE) ?
2007-07-12 21:21 ` Thibault Le Meur
2007-07-12 22:41 ` Hakan Lennestal
@ 2007-07-13 9:57 ` Takashi Iwai
2007-07-13 14:51 ` M-Audio Audiophile USB - Remaining issues Thibault Le Meur
1 sibling, 1 reply; 21+ messages in thread
From: Takashi Iwai @ 2007-07-13 9:57 UTC (permalink / raw)
To: Thibault Le Meur; +Cc: alsa-devel, 'Hakan Lennestal'
At Thu, 12 Jul 2007 23:21:19 +0200,
Thibault Le Meur wrote:
>
> -
> >> Summary: Audiophile-usb fix (corrects little-endianness in 16bit
> >> modes, resets interfaces at device initialization, and updates the
> >> documentation)
> >>
> >> Signed-Of-By: Thibault Le Meur <Thibault.LeMeur@supelec.fr>
> >
> > Thanks, applied now.
> >
> >
> > Takashi
>
> Hi,
>
> Hakan reported to me (off-list) that the AC3 function works correctly
> with the device except in device_setup=0x00 mode because the interface
> is reported to be little endian whereas it is in fact big-endian (in
> this mode only).
>
> With the help of Hakan I made a fix and updated the doc accordingly.
> Hakan could you test this fix (to be applied after my last one) and
> report if it is ok for you ?
>
> Takashi, in case everything is ok and you want to apply the patch:
>
> Summary: Fixed AC3 interface in device_setup=0x00 mode thanks to Hakan
> Lennestal and updated documentation
> Signed-Of-By: Thibault Le Meur <Thibault.LeMeur@supelec.fr>
Thanks, now applied to HG tree.
Takashi
^ permalink raw reply [flat|nested] 21+ messages in thread
* M-Audio Audiophile USB - Remaining issues
2007-07-13 9:57 ` Takashi Iwai
@ 2007-07-13 14:51 ` Thibault Le Meur
2007-07-13 15:05 ` Takashi Iwai
0 siblings, 1 reply; 21+ messages in thread
From: Thibault Le Meur @ 2007-07-13 14:51 UTC (permalink / raw)
To: alsa-devel
Hi,
For the M-Audio Audiophile USB device I still see 3 tasks that could be done
to improve support under Alsa:
1- Remap the Alsa 'hardware pcm devices'
Currently:
* hw:1,0 is bound to the Analog interface in playback mode but to the
Digital interface in capture mode
* hw:1,1 is bound to the Analog interface in capture mode but to the Digital
interface in playback mode
It would be great if the one pcm device+subdevice was always linked to the
same interface (Analog or Digital)
Can anyone could point me to the piece of code that chooses the mapping
between the device physiscal interface and Alsa's pcm interface? I'll try to
see if I can fix this.
2- Have the device able to act as a 4 channels-in + 4 channels-out combined
device under Jackd
I had no success in defining a multi pcm device and have it work under Jackd
(but this might be a Jackd issue).
Just a question about this: in the "Multiple ICE1712 Sound Cards" tutorial,
it is said that :
"A change was made in alsa-lib-1.0.9rc1 which had the unintended effect of
preventing the pcm_multi plugin from working with jackd (or jackdmp) in
duplex mode" "To make it work it's necessary to remove the linking code
which was added in pcm_multi.c rev 1.89. It isn't needed here anyway. Here's
a patch(http://www.sound-man.co.uk/linuxaudio/pcm_multi-patch) that removes
it from alsa-lib versions 1.0.10 to 1.0.13."
Is it still true with current versions of alsa-lib?
3- Have a user interface to switch device_setup modes
This may be the hardest to do and I don't think I've got the required skills
to do this. Anyway, I would realy appreciate any information (or existing
piece of code) about the following:
* how to write a user interface which interacts with the kernel module
* forcing a reinitialization of the snd-usb-audio module without
unprobing/reprobing the kernel module
Thanks in advance,
Thibault
^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: M-Audio Audiophile USB - Remaining issues
2007-07-13 14:51 ` M-Audio Audiophile USB - Remaining issues Thibault Le Meur
@ 2007-07-13 15:05 ` Takashi Iwai
2007-07-13 18:01 ` Thibault Le Meur
0 siblings, 1 reply; 21+ messages in thread
From: Takashi Iwai @ 2007-07-13 15:05 UTC (permalink / raw)
To: Thibault Le Meur; +Cc: alsa-devel
At Fri, 13 Jul 2007 16:51:31 +0200,
Thibault Le Meur wrote:
>
> Hi,
>
> For the M-Audio Audiophile USB device I still see 3 tasks that could be done
> to improve support under Alsa:
>
> 1- Remap the Alsa 'hardware pcm devices'
>
> Currently:
> * hw:1,0 is bound to the Analog interface in playback mode but to the
> Digital interface in capture mode
> * hw:1,1 is bound to the Analog interface in capture mode but to the Digital
> interface in playback mode
>
> It would be great if the one pcm device+subdevice was always linked to the
> same interface (Analog or Digital)
> Can anyone could point me to the piece of code that chooses the mapping
> between the device physiscal interface and Alsa's pcm interface? I'll try to
> see if I can fix this.
In the case of usb-audio, it's a bit complicated. The streams are
assigned automatically per USB descriptions. I think the easiest
would be to mangle the PCM device number in alsa-lib USB-Audio.conf
file. Maybe Clemens can give a better hint.
> 2- Have the device able to act as a 4 channels-in + 4 channels-out combined
> device under Jackd
> I had no success in defining a multi pcm device and have it work under Jackd
> (but this might be a Jackd issue).
>
> Just a question about this: in the "Multiple ICE1712 Sound Cards" tutorial,
> it is said that :
> "A change was made in alsa-lib-1.0.9rc1 which had the unintended effect of
> preventing the pcm_multi plugin from working with jackd (or jackdmp) in
> duplex mode" "To make it work it's necessary to remove the linking code
> which was added in pcm_multi.c rev 1.89. It isn't needed here anyway. Here's
> a patch(http://www.sound-man.co.uk/linuxaudio/pcm_multi-patch) that removes
> it from alsa-lib versions 1.0.10 to 1.0.13."
>
> Is it still true with current versions of alsa-lib?
The problem with multi plugin and JACK was fixed on 1.0.14.
> 3- Have a user interface to switch device_setup modes
> This may be the hardest to do and I don't think I've got the required skills
> to do this. Anyway, I would realy appreciate any information (or existing
> piece of code) about the following:
> * how to write a user interface which interacts with the kernel module
> * forcing a reinitialization of the snd-usb-audio module without
> unprobing/reprobing the kernel module
Well, the best would be to allow the driver to change the running mode
on the fly without device_setup option. But this seems requring
fairly big change because of the current framework of the usb-audio
driver.
Takashi
^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: M-Audio Audiophile USB - Remaining issues
2007-07-13 15:05 ` Takashi Iwai
@ 2007-07-13 18:01 ` Thibault Le Meur
0 siblings, 0 replies; 21+ messages in thread
From: Thibault Le Meur @ 2007-07-13 18:01 UTC (permalink / raw)
To: Takashi Iwai; +Cc: alsa-devel
>> It would be great if the one pcm device+subdevice was always linked to the
>> same interface (Analog or Digital)
>> Can anyone could point me to the piece of code that chooses the mapping
>> between the device physiscal interface and Alsa's pcm interface? I'll try to
>> see if I can fix this.
>
> In the case of usb-audio, it's a bit complicated. The streams are
> assigned automatically per USB descriptions. I think the easiest
> would be to mangle the PCM device number in alsa-lib USB-Audio.conf
> file. Maybe Clemens can give a better hint.
Thanks for the tip... let me see have a look at this file....
Humm... at least there is something to change now :
----------------
USB-Audio.pcm.use_dmix {
"AudioPhile" no # uses big-endian 24-bit samples
}
----------------
==> This is not true anymore since if the device is used with
device_setup=0x01 or 0x11, it supports S16_LE and thus dmix can be
applied !
For the rest of the file, I definitely need Clemens' enlightenment ;-)
> The problem with multi plugin and JACK was fixed on 1.0.14.
Thanks.
>> 3- Have a user interface to switch device_setup modes
>> This may be the hardest to do and I don't think I've got the required skills
>> to do this. Anyway, I would realy appreciate any information (or existing
>> piece of code) about the following:
>> * how to write a user interface which interacts with the kernel module
>> * forcing a reinitialization of the snd-usb-audio module without
>> unprobing/reprobing the kernel module
>
> Well, the best would be to allow the driver to change the running mode
> on the fly without device_setup option. But this seems requring
> fairly big change because of the current framework of the usb-audio
> driver.
I'm afraid this is beyond my skills :-(
Let's let this for the moment... Fixing point 1 seems more important.
Thibault
^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: M-Audio Audiophile USB, native little endian (S16_LE) ?
2007-07-10 21:22 ` Thibault Le Meur
2007-07-11 8:41 ` Takashi Iwai
2007-07-11 10:34 ` RE : M-Audio Audiophile USB, native little endian (S16_LE) ? Hakan Lennestal
@ 2007-09-04 22:18 ` Pavel Polischouk
2007-09-05 12:59 ` Takashi Iwai
2 siblings, 1 reply; 21+ messages in thread
From: Pavel Polischouk @ 2007-09-04 22:18 UTC (permalink / raw)
To: Thibault Le Meur; +Cc: alsa-devel
Thibault Le Meur wrote:
>
> It is taken from Pavel Polischouk's patch which wasn't really
> finalized (at least until now). (Pavel are you still reading to this
> list?)
I had no time to play around or fix my old patches, or even to read this
list, for quite some time. Feel free to incorporate any part of my patch
into the tree, I won't be able to participate in the development in any
way for at least several months.
Regards,
Pavel
^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: M-Audio Audiophile USB, native little endian (S16_LE) ?
2007-09-04 22:18 ` Pavel Polischouk
@ 2007-09-05 12:59 ` Takashi Iwai
0 siblings, 0 replies; 21+ messages in thread
From: Takashi Iwai @ 2007-09-05 12:59 UTC (permalink / raw)
To: Thibault Le Meur; +Cc: Pavel Polischouk, alsa-devel
At Tue, 04 Sep 2007 18:18:45 -0400,
Pavel Polischouk wrote:
>
> Thibault Le Meur wrote:
> >
> > It is taken from Pavel Polischouk's patch which wasn't really
> > finalized (at least until now). (Pavel are you still reading to this
> > list?)
> I had no time to play around or fix my old patches, or even to read this
> list, for quite some time. Feel free to incorporate any part of my patch
> into the tree, I won't be able to participate in the development in any
> way for at least several months.
OK, Thilbault, could you post the latest version for merge?
Thanks,
Takashi
^ permalink raw reply [flat|nested] 21+ messages in thread
end of thread, other threads:[~2007-09-05 12:59 UTC | newest]
Thread overview: 21+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2007-07-08 13:36 M-Audio Audiophile USB, native little endian (S16_LE) ? Hakan Lennestal
2007-07-09 8:12 ` RE : " Thibault Le Meur
2007-07-09 8:41 ` Takashi Iwai
2007-07-09 10:39 ` Hakan Lennestal
2007-07-10 21:22 ` Thibault Le Meur
2007-07-11 8:41 ` Takashi Iwai
2007-07-11 10:38 ` RE : " Thibault Le Meur
2007-07-11 10:44 ` RE : " Thibault Le Meur
2007-07-11 10:47 ` Takashi Iwai
2007-07-11 11:39 ` RE : " Thibault Le Meur
2007-07-11 21:48 ` Thibault Le Meur
2007-07-12 9:28 ` Takashi Iwai
2007-07-12 21:21 ` Thibault Le Meur
2007-07-12 22:41 ` Hakan Lennestal
2007-07-13 9:57 ` Takashi Iwai
2007-07-13 14:51 ` M-Audio Audiophile USB - Remaining issues Thibault Le Meur
2007-07-13 15:05 ` Takashi Iwai
2007-07-13 18:01 ` Thibault Le Meur
2007-07-11 10:34 ` RE : M-Audio Audiophile USB, native little endian (S16_LE) ? Hakan Lennestal
2007-09-04 22:18 ` Pavel Polischouk
2007-09-05 12:59 ` Takashi Iwai
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.