All of lore.kernel.org
 help / color / mirror / Atom feed
* using all channels of RME Babyface Pro in class compliant mode
@ 2015-12-10  6:30 Be
  2015-12-10  8:21 ` Be
  2015-12-10  8:45 ` Clemens Ladisch
  0 siblings, 2 replies; 3+ messages in thread
From: Be @ 2015-12-10  6:30 UTC (permalink / raw)
  To: alsa-devel

Hello, I just got an RME Babyface Pro USB sound card. It can operate 
either as a USB audio class compliant device (with mixing controlled by 
the device's physical controls) or make use of a proprietary driver on 
Windows and Mac OS X. The proprietary driver allows for control of the 
mixing capabilities of the device and using onboard DSP EQ. It would be 
great if someone wrote a Linux driver to make use of these. I'd be happy 
to send debugging info or whatever about the device and test kernel 
patches. I could set up a Windows VM to intercept USB communication.

In the meantime, I am trying to use its class compliant mode to use with 
Mixxx for DJing. However, I cannot figure out how to use channels 3-4 
for my headphones. The device has 4 analog channels out and in plus 8 
digital out and in (via ADAT). Its manual says, regarding class 
compliant mode, "in Mac OS X, either the first two or all channels will 
work, depending on the choice in the Audio MIDI Setup." I believe the 
two channel operation exists so when the Babyface Pro is plugged into an 
iPad, the iPad sends stereo output from iTunes and other programs to the 
Babyface Pro's main output. However, I do not know how to select between 
this 2 channel mode and the 12 channel mode with Linux. PulseAudio only 
shows it as a stereo device. Mixxx, which uses the PortAudio library, 
displays all 12 channels as available but doesn't work when any channels 
other than 1-2 are selected. Here is debugging output of Mixxx:

Debug [Main]: SoundManager::setupDevices()
Debug [Main]: SoundDevicePortAudio::open() "2, Babyface Pro (70785713): 
USB Audio (hw:1,0)"
Debug [Main]: framesPerBuffer: 256
Debug [Main]: Requested sample rate:  44100 Hz, latency: 5.80499 ms
Debug [Main]: Output channels: 4 | Input channels: 0
Debug [Main]: Opening stream with id 2
Expression 'alsa_snd_pcm_hw_params_set_channels( pcm, hwParams, 
self->numHostChannels )' failed in 'src/hostapi/alsa/pa_linux_alsa.c', 
line: 2051
Expression 'PaAlsaStreamComponent_InitialConfigure( &self->playback, 
outParams, self->primeBuffers, hwParamsPlayback, &realSr )' failed in 
'src/hostapi/alsa/pa_linux_alsa.c', line: 2717
Expression 'PaAlsaStream_Configure( stream, inputParameters, 
outputParameters, sampleRate, framesPerBuffer, &inputLatency, 
&outputLatency, &hostBufferSizeMode )' failed in 
'src/hostapi/alsa/pa_linux_alsa.c', line: 2838
Warning [Main]: Error opening stream: Invalid number of channels

aplay -l output:
**** List of PLAYBACK Hardware Devices ****
card 0: PCH [HDA Intel PCH], device 0: ALC272 Analog [ALC272 Analog]
   Subdevices: 1/1
   Subdevice #0: subdevice #0
card 0: PCH [HDA Intel PCH], device 3: HDMI 0 [HDMI 0]
   Subdevices: 1/1
   Subdevice #0: subdevice #0
card 1: Pro70785713 [Babyface Pro (70785713)], device 0: USB Audio [USB 
Audio]
   Subdevices: 1/1
   Subdevice #0: subdevice #0

aplay -L output:
null
     Discard all samples (playback) or generate zero samples (capture)
pulse
     PulseAudio Sound Server
default
     Default ALSA Output (currently PulseAudio Sound Server)
sysdefault:CARD=PCH
     HDA Intel PCH, ALC272 Analog
     Default Audio Device
front:CARD=PCH,DEV=0
     HDA Intel PCH, ALC272 Analog
     Front speakers
surround21:CARD=PCH,DEV=0
     HDA Intel PCH, ALC272 Analog
     2.1 Surround output to Front and Subwoofer speakers
surround40:CARD=PCH,DEV=0
     HDA Intel PCH, ALC272 Analog
     4.0 Surround output to Front and Rear speakers
surround41:CARD=PCH,DEV=0
     HDA Intel PCH, ALC272 Analog
     4.1 Surround output to Front, Rear and Subwoofer speakers
surround50:CARD=PCH,DEV=0
     HDA Intel PCH, ALC272 Analog
     5.0 Surround output to Front, Center and Rear speakers
surround51:CARD=PCH,DEV=0
     HDA Intel PCH, ALC272 Analog
     5.1 Surround output to Front, Center, Rear and Subwoofer speakers
surround71:CARD=PCH,DEV=0
     HDA Intel PCH, ALC272 Analog
     7.1 Surround output to Front, Center, Side, Rear and Woofer speakers
hdmi:CARD=PCH,DEV=0
     HDA Intel PCH, HDMI 0
     HDMI Audio Output
sysdefault:CARD=Pro70785713
     Babyface Pro (70785713), USB Audio
     Default Audio Device
front:CARD=Pro70785713,DEV=0
     Babyface Pro (70785713), USB Audio
     Front speakers
surround21:CARD=Pro70785713,DEV=0
     Babyface Pro (70785713), USB Audio
     2.1 Surround output to Front and Subwoofer speakers
surround40:CARD=Pro70785713,DEV=0
     Babyface Pro (70785713), USB Audio
     4.0 Surround output to Front and Rear speakers
surround41:CARD=Pro70785713,DEV=0
     Babyface Pro (70785713), USB Audio
     4.1 Surround output to Front, Rear and Subwoofer speakers
surround50:CARD=Pro70785713,DEV=0
     Babyface Pro (70785713), USB Audio
     5.0 Surround output to Front, Center and Rear speakers
surround51:CARD=Pro70785713,DEV=0
     Babyface Pro (70785713), USB Audio
     5.1 Surround output to Front, Center, Rear and Subwoofer speakers
surround71:CARD=Pro70785713,DEV=0
     Babyface Pro (70785713), USB Audio
     7.1 Surround output to Front, Center, Side, Rear and Woofer speakers
iec958:CARD=Pro70785713,DEV=0
     Babyface Pro (70785713), USB Audio
     IEC958 (S/PDIF) Digital Audio Output

/proc/asound/card1/stream0 when playing to channels 1-2 with PulseAudio:
RME Babyface Pro (70785713) at usb-0000:00:1d.0-1.2, high speed : USB Audio

Playback:
   Status: Running
     Interface = 1
     Altset = 1
     Packet Size = 47
     Momentary freq = 44118 Hz (0x5.83c9)
     Feedback Format = 16.16
   Interface 1
     Altset 1
     Format: S24_3LE
     Channels: 2
     Endpoint: 3 OUT (ASYNC)
     Rates: 44100, 48000, 88200, 96000, 176400, 192000
     Data packet interval: 125 us
   Interface 1
     Altset 2
     Format: S24_3LE
     Channels: 12
     Endpoint: 3 OUT (ASYNC)
     Rates: 44100, 48000, 88200, 96000, 176400, 192000
     Data packet interval: 125 us

Capture:
   Status: Stop
   Interface 2
     Altset 1
     Format: S24_3LE
     Channels: 12
     Endpoint: 4 IN (ASYNC)
     Rates: 44100, 48000, 88200, 96000, 176400, 192000
     Data packet interval: 125 us
   Interface 2
     Altset 2
     Format: S24_3LE
     Channels: 2
     Endpoint: 4 IN (ASYNC)
     Rates: 44100, 48000, 88200, 96000, 176400, 192000
     Data packet interval: 125 us

So I guess the question is how to get PortAudio to use the "Altset 2" 
option. Could this be accomplished with some asoundrc sorcery? Does 
something need to change in snd-usb-audio? Is the issue with PortAudio 
and PulseAudio? How can I test channels 3-4 with aplay or another program?

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: using all channels of RME Babyface Pro in class compliant mode
  2015-12-10  6:30 using all channels of RME Babyface Pro in class compliant mode Be
@ 2015-12-10  8:21 ` Be
  2015-12-10  8:45 ` Clemens Ladisch
  1 sibling, 0 replies; 3+ messages in thread
From: Be @ 2015-12-10  8:21 UTC (permalink / raw)
  To: alsa-devel

I tested it with JACK and channels 3-4 work, but with a catch. JACK 
works with hw:Pro70785713,0 but not hw:Pro70785713. So the issue either 
with Mixxx or PortAudio not listing hw:Pro70785713,0 as an option with 
the ALSA backend.

As a quick hack, can someone suggest an ~/.asoundrc to work around this? 
I have tried various versions of the snippet below with no luck.

pcm.BabyfacePro {
     type hw
     card 1
     device 0
}

On 12/10/2015 12:30 AM, Be wrote:
> Hello, I just got an RME Babyface Pro USB sound card. It can operate
> either as a USB audio class compliant device (with mixing controlled by
> the device's physical controls) or make use of a proprietary driver on
> Windows and Mac OS X. The proprietary driver allows for control of the
> mixing capabilities of the device and using onboard DSP EQ. It would be
> great if someone wrote a Linux driver to make use of these. I'd be happy
> to send debugging info or whatever about the device and test kernel
> patches. I could set up a Windows VM to intercept USB communication.
>
> In the meantime, I am trying to use its class compliant mode to use with
> Mixxx for DJing. However, I cannot figure out how to use channels 3-4
> for my headphones. The device has 4 analog channels out and in plus 8
> digital out and in (via ADAT). Its manual says, regarding class
> compliant mode, "in Mac OS X, either the first two or all channels will
> work, depending on the choice in the Audio MIDI Setup." I believe the
> two channel operation exists so when the Babyface Pro is plugged into an
> iPad, the iPad sends stereo output from iTunes and other programs to the
> Babyface Pro's main output. However, I do not know how to select between
> this 2 channel mode and the 12 channel mode with Linux. PulseAudio only
> shows it as a stereo device. Mixxx, which uses the PortAudio library,
> displays all 12 channels as available but doesn't work when any channels
> other than 1-2 are selected. Here is debugging output of Mixxx:
>
> Debug [Main]: SoundManager::setupDevices()
> Debug [Main]: SoundDevicePortAudio::open() "2, Babyface Pro (70785713):
> USB Audio (hw:1,0)"
> Debug [Main]: framesPerBuffer: 256
> Debug [Main]: Requested sample rate:  44100 Hz, latency: 5.80499 ms
> Debug [Main]: Output channels: 4 | Input channels: 0
> Debug [Main]: Opening stream with id 2
> Expression 'alsa_snd_pcm_hw_params_set_channels( pcm, hwParams,
> self->numHostChannels )' failed in 'src/hostapi/alsa/pa_linux_alsa.c',
> line: 2051
> Expression 'PaAlsaStreamComponent_InitialConfigure( &self->playback,
> outParams, self->primeBuffers, hwParamsPlayback, &realSr )' failed in
> 'src/hostapi/alsa/pa_linux_alsa.c', line: 2717
> Expression 'PaAlsaStream_Configure( stream, inputParameters,
> outputParameters, sampleRate, framesPerBuffer, &inputLatency,
> &outputLatency, &hostBufferSizeMode )' failed in
> 'src/hostapi/alsa/pa_linux_alsa.c', line: 2838
> Warning [Main]: Error opening stream: Invalid number of channels
>
> aplay -l output:
> **** List of PLAYBACK Hardware Devices ****
> card 0: PCH [HDA Intel PCH], device 0: ALC272 Analog [ALC272 Analog]
>    Subdevices: 1/1
>    Subdevice #0: subdevice #0
> card 0: PCH [HDA Intel PCH], device 3: HDMI 0 [HDMI 0]
>    Subdevices: 1/1
>    Subdevice #0: subdevice #0
> card 1: Pro70785713 [Babyface Pro (70785713)], device 0: USB Audio [USB
> Audio]
>    Subdevices: 1/1
>    Subdevice #0: subdevice #0
>
> aplay -L output:
> null
>      Discard all samples (playback) or generate zero samples (capture)
> pulse
>      PulseAudio Sound Server
> default
>      Default ALSA Output (currently PulseAudio Sound Server)
> sysdefault:CARD=PCH
>      HDA Intel PCH, ALC272 Analog
>      Default Audio Device
> front:CARD=PCH,DEV=0
>      HDA Intel PCH, ALC272 Analog
>      Front speakers
> surround21:CARD=PCH,DEV=0
>      HDA Intel PCH, ALC272 Analog
>      2.1 Surround output to Front and Subwoofer speakers
> surround40:CARD=PCH,DEV=0
>      HDA Intel PCH, ALC272 Analog
>      4.0 Surround output to Front and Rear speakers
> surround41:CARD=PCH,DEV=0
>      HDA Intel PCH, ALC272 Analog
>      4.1 Surround output to Front, Rear and Subwoofer speakers
> surround50:CARD=PCH,DEV=0
>      HDA Intel PCH, ALC272 Analog
>      5.0 Surround output to Front, Center and Rear speakers
> surround51:CARD=PCH,DEV=0
>      HDA Intel PCH, ALC272 Analog
>      5.1 Surround output to Front, Center, Rear and Subwoofer speakers
> surround71:CARD=PCH,DEV=0
>      HDA Intel PCH, ALC272 Analog
>      7.1 Surround output to Front, Center, Side, Rear and Woofer speakers
> hdmi:CARD=PCH,DEV=0
>      HDA Intel PCH, HDMI 0
>      HDMI Audio Output
> sysdefault:CARD=Pro70785713
>      Babyface Pro (70785713), USB Audio
>      Default Audio Device
> front:CARD=Pro70785713,DEV=0
>      Babyface Pro (70785713), USB Audio
>      Front speakers
> surround21:CARD=Pro70785713,DEV=0
>      Babyface Pro (70785713), USB Audio
>      2.1 Surround output to Front and Subwoofer speakers
> surround40:CARD=Pro70785713,DEV=0
>      Babyface Pro (70785713), USB Audio
>      4.0 Surround output to Front and Rear speakers
> surround41:CARD=Pro70785713,DEV=0
>      Babyface Pro (70785713), USB Audio
>      4.1 Surround output to Front, Rear and Subwoofer speakers
> surround50:CARD=Pro70785713,DEV=0
>      Babyface Pro (70785713), USB Audio
>      5.0 Surround output to Front, Center and Rear speakers
> surround51:CARD=Pro70785713,DEV=0
>      Babyface Pro (70785713), USB Audio
>      5.1 Surround output to Front, Center, Rear and Subwoofer speakers
> surround71:CARD=Pro70785713,DEV=0
>      Babyface Pro (70785713), USB Audio
>      7.1 Surround output to Front, Center, Side, Rear and Woofer speakers
> iec958:CARD=Pro70785713,DEV=0
>      Babyface Pro (70785713), USB Audio
>      IEC958 (S/PDIF) Digital Audio Output
>
> /proc/asound/card1/stream0 when playing to channels 1-2 with PulseAudio:
> RME Babyface Pro (70785713) at usb-0000:00:1d.0-1.2, high speed : USB Audio
>
> Playback:
>    Status: Running
>      Interface = 1
>      Altset = 1
>      Packet Size = 47
>      Momentary freq = 44118 Hz (0x5.83c9)
>      Feedback Format = 16.16
>    Interface 1
>      Altset 1
>      Format: S24_3LE
>      Channels: 2
>      Endpoint: 3 OUT (ASYNC)
>      Rates: 44100, 48000, 88200, 96000, 176400, 192000
>      Data packet interval: 125 us
>    Interface 1
>      Altset 2
>      Format: S24_3LE
>      Channels: 12
>      Endpoint: 3 OUT (ASYNC)
>      Rates: 44100, 48000, 88200, 96000, 176400, 192000
>      Data packet interval: 125 us
>
> Capture:
>    Status: Stop
>    Interface 2
>      Altset 1
>      Format: S24_3LE
>      Channels: 12
>      Endpoint: 4 IN (ASYNC)
>      Rates: 44100, 48000, 88200, 96000, 176400, 192000
>      Data packet interval: 125 us
>    Interface 2
>      Altset 2
>      Format: S24_3LE
>      Channels: 2
>      Endpoint: 4 IN (ASYNC)
>      Rates: 44100, 48000, 88200, 96000, 176400, 192000
>      Data packet interval: 125 us
>
> So I guess the question is how to get PortAudio to use the "Altset 2"
> option. Could this be accomplished with some asoundrc sorcery? Does
> something need to change in snd-usb-audio? Is the issue with PortAudio
> and PulseAudio? How can I test channels 3-4 with aplay or another program?
> _______________________________________________
> Alsa-devel mailing list
> Alsa-devel@alsa-project.org
> http://mailman.alsa-project.org/mailman/listinfo/alsa-devel

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: using all channels of RME Babyface Pro in class compliant mode
  2015-12-10  6:30 using all channels of RME Babyface Pro in class compliant mode Be
  2015-12-10  8:21 ` Be
@ 2015-12-10  8:45 ` Clemens Ladisch
  1 sibling, 0 replies; 3+ messages in thread
From: Clemens Ladisch @ 2015-12-10  8:45 UTC (permalink / raw)
  To: Be, alsa-devel

Be wrote:
> /proc/asound/card1/stream0
> Playback:
>     Channels: 2
>     Rates: 44100, 48000, 88200, 96000, 176400, 192000
>     Channels: 12
>     Rates: 44100, 48000, 88200, 96000, 176400, 192000
> Capture:
>     Channels: 12
>     Rates: 44100, 48000, 88200, 96000, 176400, 192000
>     Channels: 2
>     Rates: 44100, 48000, 88200, 96000, 176400, 192000

This device supports either two or twelve channels.
Tell your program to use twelve, not four, channels.


Regards,
Clemens

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2015-12-10  8:45 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2015-12-10  6:30 using all channels of RME Babyface Pro in class compliant mode Be
2015-12-10  8:21 ` Be
2015-12-10  8:45 ` Clemens Ladisch

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.