Firewire (IEEE1394) Audio Device and Linux (2)

== snd-firewire-lib, snd-bebob, snd-fireworks, snd-dice, snd-oxfw and snd-digi00x ==

They are device drivers utilize Advanced Linux Sound Architecture (ALSA) and Linux
Firewire Subsystem (so called "juju").
 - snd-bebob: for devices based on BridgeCo's chipset and BeBoB firmware
 - snd-fireworks: for devices based on Echo Audio's Fireworks module
 - snd-dice: for devices based on TC Applied Technologies DICE chipset family
 - snd-oxfw: for devices based on Oxford Semiconductor OXFW970/971 chipset
 - snd-digi00x: for Digidesign 002/003 family
 - snd-firewire-lib: for helper functions of AMDTP/CMP/FCP and AV/C commands

https://github.com/takaswie/snd-firewire-improve

Let’s try if this works.

Install:
1. $ git clone https://github.com/takaswie/snd-firewire-improve.git
2. $ ln -s $(pwd)/snd-firewire-improve/ /usr/src/alsa-firewire-3.11
(superuser)
3. $ dkms install alsa-firewire/3.11 (superuser)
% modprobe snd-bebob
 % ls -l /proc/asound
dr-xr-xr-x 6 root root 0 Apr 22 09:03 card0
dr-xr-xr-x 3 root root 0 Apr 22 09:03 card1
dr-xr-xr-x 5 root root 0 Apr 22 09:03 card2
lrwxrwxrwx 1 root root 5 Apr 22 09:03 MID -> card0
lrwxrwxrwx 1 root root 5 Apr 22 09:03 HDMI -> card1
lrwxrwxrwx 1 root root 5 Apr 22 09:03 Orpheus -> card2

% aplay -l
**** List of PLAYBACK Hardware Devices ****
card 0: MID [HDA Intel MID], device 0: ALC889 Analog [ALC889 Analog]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 0: MID [HDA Intel MID], device 3: ALC889 Digital [ALC889 Digital]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 1: HDMI [HDA ATI HDMI], device 3: HDMI 0 [HDMI 0]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 2: Orpheus [Orpheus], device 0: BeBoB [Orpheus PCM]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
user1@UNIX [09:03:37] [~] 

% aplay -L
null
    Discard all samples (playback) or generate zero samples (capture)
pulse
    PulseAudio Sound Server
rawjack
jack
    JACK Audio Connection Kit
default
    Playback/recording through the PulseAudio sound server
sysdefault:CARD=MID
    HDA Intel MID, ALC889 Analog
    Default Audio Device
front:CARD=MID,DEV=0
    HDA Intel MID, ALC889 Analog
    Front speakers
surround40:CARD=MID,DEV=0
    HDA Intel MID, ALC889 Analog
    4.0 Surround output to Front and Rear speakers
surround41:CARD=MID,DEV=0
    HDA Intel MID, ALC889 Analog
    4.1 Surround output to Front, Rear and Subwoofer speakers
surround50:CARD=MID,DEV=0
    HDA Intel MID, ALC889 Analog
    5.0 Surround output to Front, Center and Rear speakers
surround51:CARD=MID,DEV=0
    HDA Intel MID, ALC889 Analog
    5.1 Surround output to Front, Center, Rear and Subwoofer speakers
surround71:CARD=MID,DEV=0
    HDA Intel MID, ALC889 Analog
    7.1 Surround output to Front, Center, Side, Rear and Woofer speakers
hdmi:CARD=MID,DEV=0
    HDA Intel MID, ALC889 Digital
    HDMI Audio Output
dmix:CARD=MID,DEV=0
    HDA Intel MID, ALC889 Analog
    Direct sample mixing device
dmix:CARD=MID,DEV=3
    HDA Intel MID, ALC889 Digital
    Direct sample mixing device
dsnoop:CARD=MID,DEV=0
    HDA Intel MID, ALC889 Analog
    Direct sample snooping device
dsnoop:CARD=MID,DEV=3
    HDA Intel MID, ALC889 Digital
    Direct sample snooping device
hw:CARD=MID,DEV=0
    HDA Intel MID, ALC889 Analog
    Direct hardware device without any conversions
hw:CARD=MID,DEV=3
    HDA Intel MID, ALC889 Digital
    Direct hardware device without any conversions
plughw:CARD=MID,DEV=0
    HDA Intel MID, ALC889 Analog
    Hardware device with all software conversions
plughw:CARD=MID,DEV=3
    HDA Intel MID, ALC889 Digital
    Hardware device with all software conversions
hdmi:CARD=HDMI,DEV=0
    HDA ATI HDMI, HDMI 0
    HDMI Audio Output
dmix:CARD=HDMI,DEV=3
    HDA ATI HDMI, HDMI 0
    Direct sample mixing device
dsnoop:CARD=HDMI,DEV=3
    HDA ATI HDMI, HDMI 0
    Direct sample snooping device
hw:CARD=HDMI,DEV=3
    HDA ATI HDMI, HDMI 0
    Direct hardware device without any conversions
plughw:CARD=HDMI,DEV=3
    HDA ATI HDMI, HDMI 0
    Hardware device with all software conversions
sysdefault:CARD=Orpheus
    Orpheus, Orpheus PCM
    Default Audio Device
dmix:CARD=Orpheus,DEV=0
    Orpheus, Orpheus PCM
    Direct sample mixing device
dsnoop:CARD=Orpheus,DEV=0
    Orpheus, Orpheus PCM
    Direct sample snooping device
hw:CARD=Orpheus,DEV=0
    Orpheus, Orpheus PCM
    Direct hardware device without any conversions
plughw:CARD=Orpheus,DEV=0
    Orpheus, Orpheus PCM
    Hardware device with all software conversions

bebob

Looks nice, but …

% aplay -D hw:2,0 Music/01-Taking_Chances.wav
Playing WAVE 'Music/01-Taking_Chances.wav' : Signed 16 bit Little Endian, Rate 44100 Hz, Stereo
aplay: set_params:1239: Channels count non available

% aplay -D hw:2,0 --channels=2 Music/01-Taking_Chances.wav
Playing WAVE 'Music/01-Taking_Chances.wav' : Signed 16 bit Little Endian, Rate 44100 Hz, Stereo
aplay: set_params:1239: Channels count non available

Let’s look into aplay.c to see what is happening.

1237   err = snd_pcm_hw_params_set_channels(handle, params, hwparams.channels);
1238   if (err < 0) {
1239     error(_("Channels count non available"));
1240     prg_exit(EXIT_FAILURE);
1241   }

Leave a Reply

Your email address will not be published. Required fields are marked *