Getting multichannel output on LynxTwo

OSS specific Linux discussion (x86/amd64)

Moderators: cesium, dev, kodachi, hannu

Getting multichannel output on LynxTwo

Postby davemar » Mon Jul 04, 2011 2:04 pm

I'm trying to get my LynxTwo card to play out multichannel audio (5.1) using portaudio based programs. Portaudio lists the available devices as /dev/dsp, /dev/dsp1, /dev/dsp2, ... and so on, with either 2 outputs or 0 outputs. I was under the impression /dev/dsp8 should be a multichannel (8) output, but it is just listed as 0 outputs. Is there anyway I can either get /dev/dsp8 to actually show up a 8 channel output, or do something clever with vmixctl?

Thanks,
Dave.
davemar
New Member
 
Posts: 4
Joined: Mon Jul 04, 2011 1:59 pm

Re: Getting multichannel output on LynxTwo

Postby igorzwx » Mon Jul 04, 2011 2:46 pm

davemar wrote:I'm trying to get my LynxTwo card to play out multichannel audio (5.1) using portaudio based programs. Portaudio lists the available devices as /dev/dsp, /dev/dsp1, /dev/dsp2, ... and so on, with either 2 outputs or 0 outputs. I was under the impression /dev/dsp8 should be a multichannel (8) output, but it is just listed as 0 outputs. Is there anyway I can either get /dev/dsp8 to actually show up a 8 channel output, or do something clever with vmixctl?

Thanks,
Dave.


You may try DeadBeef player http://deadbeef.sourceforge.net/
They told that they need OSS4 testers.

deadbeef-git
http://aur.archlinux.org/packages.php?ID=29502

Code: Select all
$ yaourt deadbeef-git
1 aur/deadbeef-git 20101022-1 (78)
    mp3/ogg/flac/ape/sid/mod/nsf/m4a/mpc/shn music player based on GTK2 with translations
==> Enter n° of packages to be installed (ex: 1 2 3 or 1-3)
==> -------------------------------------------------------
==>


Code: Select all
./autogen.sh
  ./configure --prefix=/usr --disable-alsa --disable-pulse
  make
  make DESTDIR=$pkgdir install
igorzwx
Known Member
 
Posts: 1000
Joined: Sun Jun 28, 2009 9:31 pm

Re: Getting multichannel output on LynxTwo

Postby cesium » Mon Jul 04, 2011 2:58 pm

Can you paste 'ossinfo -v3' output?
cesium
Developer
 
Posts: 902
Joined: Sun Aug 12, 2007 12:51 am

Re: Getting multichannel output on LynxTwo

Postby davemar » Tue Jul 05, 2011 12:46 pm

It's a bit of a monster. Here goes:

Code: Select all
Version info: OSS 4.2 (b 2004/201101052230) (0x00040100) TRIAL
Platform: Linux/x86_64 2.6.32-32-generic #62-Ubuntu SMP Wed Apr 20 21:52:38 UTC 2011 (rd00055)

Number of audio devices:   27
Number of audio engines:   31
Number of MIDI devices:      0
Number of mixer devices:   4


Device objects
0: osscore0 OSS core services
1: lynxtwo0 LynxTWO-B interrupts=2502 (6504)
    Firmware revision: 13 PCB Revision 1
2: oss_hdaudio0 Intel HD Audio interrupts=1600 (14504)
    HD Audio controller Intel HD Audio
    Vendor ID    0x80863a3e
    Subvendor ID 0x17aa1022
     Codec  2: AD1988A (0x11d41988/0x17aa1022)
3: oss_usb0 USB audio core services

MIDI devices (/dev/midi*)

Mixer devices
0: LynxTWO-B Adapter (Mixer 0 of device object 1)
    Device file /dev/oss/lynxtwo0/mix0, Legacy device /dev/mixer0
    Priority: -2
    Caps:
    Device handle: PCI00211621-0000:06:0d.0-mx01
    Device priority: -2

1: LynxTWO-B Record/Play (Mixer 1 of device object 1)
    Device file /dev/oss/lynxtwo0/mix1, Legacy device /dev/mixer1
    Priority: -2
    Caps: LAYOUT_B NARROW
    Device handle: PCI00211621-0000:06:0d.0-mx02
    Device priority: -2

2: LynxTWO-B Outputs (Mixer 2 of device object 1)
    Device file /dev/oss/lynxtwo0/mix2, Legacy device /dev/mixer2
    Priority: -2
    Caps: LAYOUT_B NARROW
    Device handle: PCI00211621-0000:06:0d.0-mx03
    Device priority: -2

3: High Definition Audio AD1988A (Mixer 0 of device object 2)
    Device file /dev/oss/oss_hdaudio0/mix0, Legacy device /dev/mixer3
    Priority: 10
    Caps:
    Device handle: PCI102217aa-0000:00:1b.0-mx01
    Device priority: 10


Audio devices
LynxTWO-B Play 1                  /dev/oss/lynxtwo0/pcm0  (device index 0)
    Legacy device /dev/dsp0
    Caps: TRIGGER MMAP
    Modes: OUTPUT
      Out engine  1: 0/LynxTWO-B Play 1
                     Available for use
    Input formats (0x00001050):
      AFMT_S16_LE   - 16 bit signed little endian
      AFMT_S8      - 8 bit signed
      AFMT_S32_LE   - 32 bit signed little endian
    Output formats (0x00001050):
      AFMT_S16_LE   - 16 bit signed little endian
      AFMT_S8      - 8 bit signed
      AFMT_S32_LE   - 32 bit signed little endian
    Device handle: PCI00211621-0000:06:0d.0-au01
    Related mixer dev: -1
    Sample rate source: 0
    Preferred channel configuration: Not indicated
    Supported number of channels (min - max): 1 - 2
    Native sample rates (min - max): 8000 - 200000 (8000,11025,16000,22050,32000,44100,48000,64000,88200,96000,128000,176400,192000,200000)
    HW Type: Not indicated.
    Minimum latency: Not indicated

LynxTWO-B Play 2                  /dev/oss/lynxtwo0/pcm1  (device index 1)
    Legacy device /dev/dsp1
    Caps: TRIGGER MMAP
    Modes: OUTPUT
      Out engine  1: 1/LynxTWO-B Play 2
                     Available for use
    Input formats (0x00001050):
      AFMT_S16_LE   - 16 bit signed little endian
      AFMT_S8      - 8 bit signed
      AFMT_S32_LE   - 32 bit signed little endian
    Output formats (0x00001050):
      AFMT_S16_LE   - 16 bit signed little endian
      AFMT_S8      - 8 bit signed
      AFMT_S32_LE   - 32 bit signed little endian
    Device handle: PCI00211621-0000:06:0d.0-au02
    Related mixer dev: -1
    Sample rate source: 0
    Preferred channel configuration: Not indicated
    Supported number of channels (min - max): 1 - 2
    Native sample rates (min - max): 8000 - 200000 (8000,11025,16000,22050,32000,44100,48000,64000,88200,96000,128000,176400,192000,200000)
    HW Type: Not indicated.
    Minimum latency: Not indicated

LynxTWO-B Play 3                  /dev/oss/lynxtwo0/pcm2  (device index 2)
    Legacy device /dev/dsp2
    Caps: TRIGGER MMAP
    Modes: OUTPUT
      Out engine  1: 2/LynxTWO-B Play 3
                     Available for use
    Input formats (0x00001050):
      AFMT_S16_LE   - 16 bit signed little endian
      AFMT_S8      - 8 bit signed
      AFMT_S32_LE   - 32 bit signed little endian
    Output formats (0x00001050):
      AFMT_S16_LE   - 16 bit signed little endian
      AFMT_S8      - 8 bit signed
      AFMT_S32_LE   - 32 bit signed little endian
    Device handle: PCI00211621-0000:06:0d.0-au03
    Related mixer dev: -1
    Sample rate source: 0
    Preferred channel configuration: Not indicated
    Supported number of channels (min - max): 1 - 2
    Native sample rates (min - max): 8000 - 200000 (8000,11025,16000,22050,32000,44100,48000,64000,88200,96000,128000,176400,192000,200000)
    HW Type: Not indicated.
    Minimum latency: Not indicated

LynxTWO-B Play 4                  /dev/oss/lynxtwo0/pcm3  (device index 3)
    Legacy device /dev/dsp3
    Caps: TRIGGER MMAP
    Modes: OUTPUT
      Out engine  1: 3/LynxTWO-B Play 4
                     Available for use
    Input formats (0x00001050):
      AFMT_S16_LE   - 16 bit signed little endian
      AFMT_S8      - 8 bit signed
      AFMT_S32_LE   - 32 bit signed little endian
    Output formats (0x00001050):
      AFMT_S16_LE   - 16 bit signed little endian
      AFMT_S8      - 8 bit signed
      AFMT_S32_LE   - 32 bit signed little endian
    Device handle: PCI00211621-0000:06:0d.0-au04
    Related mixer dev: -1
    Sample rate source: 0
    Preferred channel configuration: Not indicated
    Supported number of channels (min - max): 1 - 2
    Native sample rates (min - max): 8000 - 200000 (8000,11025,16000,22050,32000,44100,48000,64000,88200,96000,128000,176400,192000,200000)
    HW Type: Not indicated.
    Minimum latency: Not indicated

LynxTWO-B Play 5                  /dev/oss/lynxtwo0/pcm4  (device index 4)
    Legacy device /dev/dsp4
    Caps: TRIGGER MMAP
    Modes: OUTPUT
      Out engine  1: 4/LynxTWO-B Play 5
                     Available for use
    Input formats (0x00001050):
      AFMT_S16_LE   - 16 bit signed little endian
      AFMT_S8      - 8 bit signed
      AFMT_S32_LE   - 32 bit signed little endian
    Output formats (0x00001050):
      AFMT_S16_LE   - 16 bit signed little endian
      AFMT_S8      - 8 bit signed
      AFMT_S32_LE   - 32 bit signed little endian
    Device handle: PCI00211621-0000:06:0d.0-au05
    Related mixer dev: -1
    Sample rate source: 0
    Preferred channel configuration: Not indicated
    Supported number of channels (min - max): 1 - 2
    Native sample rates (min - max): 8000 - 200000 (8000,11025,16000,22050,32000,44100,48000,64000,88200,96000,128000,176400,192000,200000)
    HW Type: Not indicated.
    Minimum latency: Not indicated

LynxTWO-B Play 6                  /dev/oss/lynxtwo0/pcm5  (device index 5)
    Legacy device /dev/dsp5
    Caps: TRIGGER MMAP
    Modes: OUTPUT
      Out engine  1: 5/LynxTWO-B Play 6
                     Available for use
    Input formats (0x00001050):
      AFMT_S16_LE   - 16 bit signed little endian
      AFMT_S8      - 8 bit signed
      AFMT_S32_LE   - 32 bit signed little endian
    Output formats (0x00001050):
      AFMT_S16_LE   - 16 bit signed little endian
      AFMT_S8      - 8 bit signed
      AFMT_S32_LE   - 32 bit signed little endian
    Device handle: PCI00211621-0000:06:0d.0-au06
    Related mixer dev: -1
    Sample rate source: 0
    Preferred channel configuration: Not indicated
    Supported number of channels (min - max): 1 - 2
    Native sample rates (min - max): 8000 - 200000 (8000,11025,16000,22050,32000,44100,48000,64000,88200,96000,128000,176400,192000,200000)
    HW Type: Not indicated.
    Minimum latency: Not indicated

LynxTWO-B Play 7                  /dev/oss/lynxtwo0/pcm6  (device index 6)
    Legacy device /dev/dsp6
    Caps: TRIGGER MMAP
    Modes: OUTPUT
      Out engine  1: 6/LynxTWO-B Play 7
                     Available for use
    Input formats (0x00001050):
      AFMT_S16_LE   - 16 bit signed little endian
      AFMT_S8      - 8 bit signed
      AFMT_S32_LE   - 32 bit signed little endian
    Output formats (0x00001050):
      AFMT_S16_LE   - 16 bit signed little endian
      AFMT_S8      - 8 bit signed
      AFMT_S32_LE   - 32 bit signed little endian
    Device handle: PCI00211621-0000:06:0d.0-au07
    Related mixer dev: -1
    Sample rate source: 0
    Preferred channel configuration: Not indicated
    Supported number of channels (min - max): 1 - 2
    Native sample rates (min - max): 8000 - 200000 (8000,11025,16000,22050,32000,44100,48000,64000,88200,96000,128000,176400,192000,200000)
    HW Type: Not indicated.
    Minimum latency: Not indicated

LynxTWO-B Play 8                  /dev/oss/lynxtwo0/pcm7  (device index 7)
    Legacy device /dev/dsp7
    Caps: TRIGGER MMAP
    Modes: OUTPUT
      Out engine  1: 7/LynxTWO-B Play 8
                     Available for use
    Input formats (0x00001050):
      AFMT_S16_LE   - 16 bit signed little endian
      AFMT_S8      - 8 bit signed
      AFMT_S32_LE   - 32 bit signed little endian
    Output formats (0x00001050):
      AFMT_S16_LE   - 16 bit signed little endian
      AFMT_S8      - 8 bit signed
      AFMT_S32_LE   - 32 bit signed little endian
    Device handle: PCI00211621-0000:06:0d.0-au08
    Related mixer dev: -1
    Sample rate source: 0
    Preferred channel configuration: Not indicated
    Supported number of channels (min - max): 1 - 2
    Native sample rates (min - max): 8000 - 200000 (8000,11025,16000,22050,32000,44100,48000,64000,88200,96000,128000,176400,192000,200000)
    HW Type: Not indicated.
    Minimum latency: Not indicated

LynxTWO-B Record 1                /dev/oss/lynxtwo0/pcmin0  (device index 8)
    Legacy device /dev/dsp8
    Caps: TRIGGER MMAP
    Modes: INPUT 
      In engine   1: 8/LynxTWO-B Record 1
                     Available for use
    Input formats (0x00001050):
      AFMT_S16_LE   - 16 bit signed little endian
      AFMT_S8      - 8 bit signed
      AFMT_S32_LE   - 32 bit signed little endian
    Output formats (0x00001050):
      AFMT_S16_LE   - 16 bit signed little endian
      AFMT_S8      - 8 bit signed
      AFMT_S32_LE   - 32 bit signed little endian
    Device handle: PCI00211621-0000:06:0d.0-au09
    Related mixer dev: -1
    Sample rate source: 0
    Preferred channel configuration: Not indicated
    Supported number of channels (min - max): 1 - 2
    Native sample rates (min - max): 8000 - 200000 (8000,11025,16000,22050,32000,44100,48000,64000,88200,96000,128000,176400,192000,200000)
    HW Type: Not indicated.
    Minimum latency: Not indicated

LynxTWO-B Record 2                /dev/oss/lynxtwo0/pcmin1  (device index 9)
    Legacy device /dev/dsp9
    Caps: TRIGGER MMAP
    Modes: INPUT 
      In engine   1: 9/LynxTWO-B Record 2
                     Available for use
    Input formats (0x00001050):
      AFMT_S16_LE   - 16 bit signed little endian
      AFMT_S8      - 8 bit signed
      AFMT_S32_LE   - 32 bit signed little endian
    Output formats (0x00001050):
      AFMT_S16_LE   - 16 bit signed little endian
      AFMT_S8      - 8 bit signed
      AFMT_S32_LE   - 32 bit signed little endian
    Device handle: PCI00211621-0000:06:0d.0-au10
    Related mixer dev: -1
    Sample rate source: 0
    Preferred channel configuration: Not indicated
    Supported number of channels (min - max): 1 - 2
    Native sample rates (min - max): 8000 - 200000 (8000,11025,16000,22050,32000,44100,48000,64000,88200,96000,128000,176400,192000,200000)
    HW Type: Not indicated.
    Minimum latency: Not indicated

LynxTWO-B Record 3                /dev/oss/lynxtwo0/pcmin2  (device index 10)
    Legacy device /dev/dsp10
    Caps: TRIGGER MMAP
    Modes: INPUT 
      In engine   1: 10/LynxTWO-B Record 3
                     Available for use
    Input formats (0x00001050):
      AFMT_S16_LE   - 16 bit signed little endian
      AFMT_S8      - 8 bit signed
      AFMT_S32_LE   - 32 bit signed little endian
    Output formats (0x00001050):
      AFMT_S16_LE   - 16 bit signed little endian
      AFMT_S8      - 8 bit signed
      AFMT_S32_LE   - 32 bit signed little endian
    Device handle: PCI00211621-0000:06:0d.0-au11
    Related mixer dev: -1
    Sample rate source: 0
    Preferred channel configuration: Not indicated
    Supported number of channels (min - max): 1 - 2
    Native sample rates (min - max): 8000 - 200000 (8000,11025,16000,22050,32000,44100,48000,64000,88200,96000,128000,176400,192000,200000)
    HW Type: Not indicated.
    Minimum latency: Not indicated

LynxTWO-B Record 4                /dev/oss/lynxtwo0/pcmin3  (device index 11)
    Legacy device /dev/dsp11
    Caps: TRIGGER MMAP
    Modes: INPUT 
      In engine   1: 11/LynxTWO-B Record 4
                     Available for use
    Input formats (0x00001050):
      AFMT_S16_LE   - 16 bit signed little endian
      AFMT_S8      - 8 bit signed
      AFMT_S32_LE   - 32 bit signed little endian
    Output formats (0x00001050):
      AFMT_S16_LE   - 16 bit signed little endian
      AFMT_S8      - 8 bit signed
      AFMT_S32_LE   - 32 bit signed little endian
    Device handle: PCI00211621-0000:06:0d.0-au12
    Related mixer dev: -1
    Sample rate source: 0
    Preferred channel configuration: Not indicated
    Supported number of channels (min - max): 1 - 2
    Native sample rates (min - max): 8000 - 200000 (8000,11025,16000,22050,32000,44100,48000,64000,88200,96000,128000,176400,192000,200000)
    HW Type: Not indicated.
    Minimum latency: Not indicated

LynxTWO-B Record 5                /dev/oss/lynxtwo0/pcmin4  (device index 12)
    Legacy device /dev/dsp12
    Caps: TRIGGER MMAP
    Modes: INPUT 
      In engine   1: 12/LynxTWO-B Record 5
                     Available for use
    Input formats (0x00001050):
      AFMT_S16_LE   - 16 bit signed little endian
      AFMT_S8      - 8 bit signed
      AFMT_S32_LE   - 32 bit signed little endian
    Output formats (0x00001050):
      AFMT_S16_LE   - 16 bit signed little endian
      AFMT_S8      - 8 bit signed
      AFMT_S32_LE   - 32 bit signed little endian
    Device handle: PCI00211621-0000:06:0d.0-au13
    Related mixer dev: -1
    Sample rate source: 0
    Preferred channel configuration: Not indicated
    Supported number of channels (min - max): 1 - 2
    Native sample rates (min - max): 8000 - 200000 (8000,11025,16000,22050,32000,44100,48000,64000,88200,96000,128000,176400,192000,200000)
    HW Type: Not indicated.
    Minimum latency: Not indicated

LynxTWO-B Record 6                /dev/oss/lynxtwo0/pcmin5  (device index 13)
    Legacy device /dev/dsp13
    Caps: TRIGGER MMAP
    Modes: INPUT 
      In engine   1: 13/LynxTWO-B Record 6
                     Available for use
    Input formats (0x00001050):
      AFMT_S16_LE   - 16 bit signed little endian
      AFMT_S8      - 8 bit signed
      AFMT_S32_LE   - 32 bit signed little endian
    Output formats (0x00001050):
      AFMT_S16_LE   - 16 bit signed little endian
      AFMT_S8      - 8 bit signed
      AFMT_S32_LE   - 32 bit signed little endian
    Device handle: PCI00211621-0000:06:0d.0-au14
    Related mixer dev: -1
    Sample rate source: 0
    Preferred channel configuration: Not indicated
    Supported number of channels (min - max): 1 - 2
    Native sample rates (min - max): 8000 - 200000 (8000,11025,16000,22050,32000,44100,48000,64000,88200,96000,128000,176400,192000,200000)
    HW Type: Not indicated.
    Minimum latency: Not indicated

LynxTWO-B Record 7                /dev/oss/lynxtwo0/pcmin6  (device index 14)
    Legacy device /dev/dsp14
    Caps: TRIGGER MMAP
    Modes: INPUT 
      In engine   1: 14/LynxTWO-B Record 7
                     Available for use
    Input formats (0x00001050):
      AFMT_S16_LE   - 16 bit signed little endian
      AFMT_S8      - 8 bit signed
      AFMT_S32_LE   - 32 bit signed little endian
    Output formats (0x00001050):
      AFMT_S16_LE   - 16 bit signed little endian
      AFMT_S8      - 8 bit signed
      AFMT_S32_LE   - 32 bit signed little endian
    Device handle: PCI00211621-0000:06:0d.0-au15
    Related mixer dev: -1
    Sample rate source: 0
    Preferred channel configuration: Not indicated
    Supported number of channels (min - max): 1 - 2
    Native sample rates (min - max): 8000 - 200000 (8000,11025,16000,22050,32000,44100,48000,64000,88200,96000,128000,176400,192000,200000)
    HW Type: Not indicated.
    Minimum latency: Not indicated

LynxTWO-B Record 8                /dev/oss/lynxtwo0/pcmin7  (device index 15)
    Legacy device /dev/dsp15
    Caps: TRIGGER MMAP
    Modes: INPUT 
      In engine   1: 15/LynxTWO-B Record 8
                     Available for use
    Input formats (0x00001050):
      AFMT_S16_LE   - 16 bit signed little endian
      AFMT_S8      - 8 bit signed
      AFMT_S32_LE   - 32 bit signed little endian
    Output formats (0x00001050):
      AFMT_S16_LE   - 16 bit signed little endian
      AFMT_S8      - 8 bit signed
      AFMT_S32_LE   - 32 bit signed little endian
    Device handle: PCI00211621-0000:06:0d.0-au16
    Related mixer dev: -1
    Sample rate source: 0
    Preferred channel configuration: Not indicated
    Supported number of channels (min - max): 1 - 2
    Native sample rates (min - max): 8000 - 200000 (8000,11025,16000,22050,32000,44100,48000,64000,88200,96000,128000,176400,192000,200000)
    HW Type: Not indicated.
    Minimum latency: Not indicated

LynxTWO-B 7.1 output              /dev/oss/lynxtwo0/pcm8  (device index 16)
    Legacy device /dev/dsp16
    Caps: TRIGGER MMAP
    Modes: OUTPUT
      Out engine  1: 16/LynxTWO-B 7.1 output
                     Available for use
    Input formats (0x00000010):
      AFMT_S16_LE   - 16 bit signed little endian
    Output formats (0x00000010):
      AFMT_S16_LE   - 16 bit signed little endian
    Device handle: PCI00211621-0000:06:0d.0-au17
    Related mixer dev: -1
    Sample rate source: 0
    Preferred channel configuration: MULTICH
    Supported number of channels (min - max): 2 - 8
    Native sample rates (min - max): 8000 - 200000
    HW Type: Not indicated.
    Minimum latency: Not indicated

HD Audio play front               /dev/oss/oss_hdaudio0/pcm0  (device index 17)
    Legacy device /dev/dsp17
    Caps: DUPLEX TRIGGER MMAP
    Modes: IN/OUT
      Out engine  1: 17/HD Audio play front
                     Available for use
      Engine      2: 27/HD Audio play front (vmix)
                     Available for use
      Engine      3: 28/HD Audio play front (vmix)
                     Available for use
      Engine      4: 29/HD Audio play front (vmix)
                     Available for use
      Engine      5: 30/HD Audio play front (vmix)
                     Available for use
    Input formats (0x00001010):
      AFMT_S16_LE   - 16 bit signed little endian
      AFMT_S32_LE   - 32 bit signed little endian
    Output formats (0x00001010):
      AFMT_S16_LE   - 16 bit signed little endian
      AFMT_S32_LE   - 32 bit signed little endian
    Device handle: PCI102217aa-0000:00:1b.0-au01
    Related mixer dev: 3
    Sample rate source: 17
    Preferred channel configuration: Not indicated
    Supported number of channels (min - max): 2 - 8
    Native sample rates (min - max): 8000 - 192000 (8000,11025,16000,22050,32000,44100,48000,88200,96000,176400,192000)
    HW Type: Not indicated.
    Minimum latency: Not indicated

HD Audio play center/LFE          /dev/oss/oss_hdaudio0/pcm1  (device index 18)
    Legacy device /dev/dsp18
    Caps: TRIGGER MMAP
    Modes: OUTPUT
      Out engine  1: 18/HD Audio play center/LFE
                     Available for use
    Input formats (0x00001010):
      AFMT_S16_LE   - 16 bit signed little endian
      AFMT_S32_LE   - 32 bit signed little endian
    Output formats (0x00001010):
      AFMT_S16_LE   - 16 bit signed little endian
      AFMT_S32_LE   - 32 bit signed little endian
    Device handle: PCI102217aa-0000:00:1b.0-au02
    Related mixer dev: 3
    Sample rate source: 17
    Preferred channel configuration: Not indicated
    Supported number of channels (min - max): 2 - 2
    Native sample rates (min - max): 8000 - 192000 (8000,11025,16000,22050,32000,44100,48000,88200,96000,176400,192000)
    HW Type: Not indicated.
    Minimum latency: Not indicated

HD Audio play rear                /dev/oss/oss_hdaudio0/pcm2  (device index 19)
    Legacy device /dev/dsp19
    Caps: TRIGGER MMAP
    Modes: OUTPUT
      Out engine  1: 19/HD Audio play rear
                     Available for use
    Input formats (0x00001010):
      AFMT_S16_LE   - 16 bit signed little endian
      AFMT_S32_LE   - 32 bit signed little endian
    Output formats (0x00001010):
      AFMT_S16_LE   - 16 bit signed little endian
      AFMT_S32_LE   - 32 bit signed little endian
    Device handle: PCI102217aa-0000:00:1b.0-au03
    Related mixer dev: 3
    Sample rate source: 17
    Preferred channel configuration: Not indicated
    Supported number of channels (min - max): 2 - 2
    Native sample rates (min - max): 8000 - 192000 (8000,11025,16000,22050,32000,44100,48000,88200,96000,176400,192000)
    HW Type: Not indicated.
    Minimum latency: Not indicated

HD Audio play side                /dev/oss/oss_hdaudio0/pcm3  (device index 20)
    Legacy device /dev/dsp20
    Caps: TRIGGER MMAP
    Modes: OUTPUT
      Out engine  1: 20/HD Audio play side
                     Available for use
    Input formats (0x00001010):
      AFMT_S16_LE   - 16 bit signed little endian
      AFMT_S32_LE   - 32 bit signed little endian
    Output formats (0x00001010):
      AFMT_S16_LE   - 16 bit signed little endian
      AFMT_S32_LE   - 32 bit signed little endian
    Device handle: PCI102217aa-0000:00:1b.0-au04
    Related mixer dev: 3
    Sample rate source: 17
    Preferred channel configuration: Not indicated
    Supported number of channels (min - max): 2 - 2
    Native sample rates (min - max): 8000 - 192000 (8000,11025,16000,22050,32000,44100,48000,88200,96000,176400,192000)
    HW Type: Not indicated.
    Minimum latency: Not indicated

HD Audio play headphone           /dev/oss/oss_hdaudio0/pcm4  (device index 21)
    Legacy device /dev/dsp21
    Caps: TRIGGER MMAP
    Modes: OUTPUT
      Out engine  1: 21/HD Audio play headphone
                     Available for use
    Input formats (0x00001010):
      AFMT_S16_LE   - 16 bit signed little endian
      AFMT_S32_LE   - 32 bit signed little endian
    Output formats (0x00001010):
      AFMT_S16_LE   - 16 bit signed little endian
      AFMT_S32_LE   - 32 bit signed little endian
    Device handle: PCI102217aa-0000:00:1b.0-au05
    Related mixer dev: 3
    Sample rate source: 17
    Preferred channel configuration: Not indicated
    Supported number of channels (min - max): 2 - 2
    Native sample rates (min - max): 8000 - 192000 (8000,11025,16000,22050,32000,44100,48000,88200,96000,176400,192000)
    HW Type: Not indicated.
    Minimum latency: Not indicated

HD Audio play spdifout-mix        /dev/oss/oss_hdaudio0/spdout0  (device index 22)
    Legacy device /dev/dsp22
    Caps: TRIGGER MMAP
    Modes: OUTPUT
      Out engine  1: 22/HD Audio play spdifout-mix
                     Available for use
    Input formats (0x00001410):
      AFMT_S16_LE   - 16 bit signed little endian
      AFMT_AC3      - AC3 (Dolby Digital) encoded audio
      AFMT_S32_LE   - 32 bit signed little endian
    Output formats (0x00001410):
      AFMT_S16_LE   - 16 bit signed little endian
      AFMT_AC3      - AC3 (Dolby Digital) encoded audio
      AFMT_S32_LE   - 32 bit signed little endian
    Device handle: PCI102217aa-0000:00:1b.0-au06
    Related mixer dev: 3
    Sample rate source: 17
    Preferred channel configuration: Not indicated
    Supported number of channels (min - max): 2 - 2
    Native sample rates (min - max): 44100 - 192000 (44100,48000,88200,96000,176400,192000)
    HW Type: Not indicated.
    Minimum latency: Not indicated

HD Audio rec rec1-src             /dev/oss/oss_hdaudio0/pcmin0  (device index 23)
    Legacy device /dev/dsp23
    Caps: DUPLEX TRIGGER MMAP
    Modes: IN/OUT
      In engine   1: 23/HD Audio rec rec1-src
                     Available for use
      Engine      2: 27/HD Audio play front (vmix)
                     Available for use
      Engine      3: 28/HD Audio play front (vmix)
                     Available for use
      Engine      4: 29/HD Audio play front (vmix)
                     Available for use
      Engine      5: 30/HD Audio play front (vmix)
                     Available for use
    Input formats (0x00001010):
      AFMT_S16_LE   - 16 bit signed little endian
      AFMT_S32_LE   - 32 bit signed little endian
    Output formats (0x00001010):
      AFMT_S16_LE   - 16 bit signed little endian
      AFMT_S32_LE   - 32 bit signed little endian
    Device handle: PCI102217aa-0000:00:1b.0-au07
    Related mixer dev: 3
    Sample rate source: 17
    Preferred channel configuration: Not indicated
    Supported number of channels (min - max): 2 - 2
    Native sample rates (min - max): 8000 - 192000 (8000,11025,16000,22050,32000,44100,48000,88200,96000,176400,192000)
    HW Type: Not indicated.
    Minimum latency: Not indicated

HD Audio rec rec2-src             /dev/oss/oss_hdaudio0/pcmin1  (device index 24)
    Legacy device /dev/dsp24
    Caps: TRIGGER MMAP
    Modes: INPUT 
      In engine   1: 24/HD Audio rec rec2-src
                     Available for use
    Input formats (0x00001010):
      AFMT_S16_LE   - 16 bit signed little endian
      AFMT_S32_LE   - 32 bit signed little endian
    Output formats (0x00001010):
      AFMT_S16_LE   - 16 bit signed little endian
      AFMT_S32_LE   - 32 bit signed little endian
    Device handle: PCI102217aa-0000:00:1b.0-au08
    Related mixer dev: 3
    Sample rate source: 17
    Preferred channel configuration: Not indicated
    Supported number of channels (min - max): 2 - 2
    Native sample rates (min - max): 8000 - 192000 (8000,11025,16000,22050,32000,44100,48000,88200,96000,176400,192000)
    HW Type: Not indicated.
    Minimum latency: Not indicated

HD Audio rec rec3-src             /dev/oss/oss_hdaudio0/pcmin2  (device index 25)
    Legacy device /dev/dsp25
    Caps: TRIGGER MMAP
    Modes: INPUT 
      In engine   1: 25/HD Audio rec rec3-src
                     Available for use
    Input formats (0x00001010):
      AFMT_S16_LE   - 16 bit signed little endian
      AFMT_S32_LE   - 32 bit signed little endian
    Output formats (0x00001010):
      AFMT_S16_LE   - 16 bit signed little endian
      AFMT_S32_LE   - 32 bit signed little endian
    Device handle: PCI102217aa-0000:00:1b.0-au09
    Related mixer dev: 3
    Sample rate source: 17
    Preferred channel configuration: Not indicated
    Supported number of channels (min - max): 2 - 2
    Native sample rates (min - max): 8000 - 192000 (8000,11025,16000,22050,32000,44100,48000,88200,96000,176400,192000)
    HW Type: Not indicated.
    Minimum latency: Not indicated

HD Audio rec spdif-in             /dev/oss/oss_hdaudio0/spdin0  (device index 26)
    Legacy device /dev/dsp26
    Caps: TRIGGER MMAP
    Modes: INPUT 
      In engine   1: 26/HD Audio rec spdif-in
                     Available for use
    Input formats (0x00001410):
      AFMT_S16_LE   - 16 bit signed little endian
      AFMT_AC3      - AC3 (Dolby Digital) encoded audio
      AFMT_S32_LE   - 32 bit signed little endian
    Output formats (0x00001410):
      AFMT_S16_LE   - 16 bit signed little endian
      AFMT_AC3      - AC3 (Dolby Digital) encoded audio
      AFMT_S32_LE   - 32 bit signed little endian
    Device handle: PCI102217aa-0000:00:1b.0-au10
    Related mixer dev: 3
    Sample rate source: 17
    Preferred channel configuration: Not indicated
    Supported number of channels (min - max): 2 - 2
    Native sample rates (min - max): 44100 - 192000 (44100,48000,88200,96000,176400,192000)
    HW Type: Not indicated.
    Minimum latency: Not indicated


Nodes
  /dev/dsp -> /dev/oss/oss_hdaudio0/pcm0
  /dev/dsp_in -> /dev/oss/lynxtwo0/pcmin0
  /dev/dsp_out -> /dev/oss/lynxtwo0/pcm0
  /dev/dsp_ac3 -> /dev/oss/oss_hdaudio0/spdout0
  /dev/dsp_mmap -> /dev/oss/lynxtwo0/pcm0
  /dev/dsp_multich -> /dev/oss/lynxtwo0/pcm8
davemar
New Member
 
Posts: 4
Joined: Mon Jul 04, 2011 1:59 pm

Re: Getting multichannel output on LynxTwo

Postby davemar » Tue Jul 05, 2011 2:18 pm

My portaudio program also lists all the devices it can find and the number of channels of each one:
Code: Select all
0)   default       32
1)   /dev/dsp      2
2)   /dev/dsp1     2
3)   /dev/dsp2     2
4)   /dev/dsp3     2
5)   /dev/dsp4     2
6)   /dev/dsp5     2
7)   /dev/dsp6     2
8)   /dev/dsp7     2
9)   /dev/dsp8     0
10)   /dev/dsp9     0
11)   /dev/dsp10    0
12)   /dev/dsp11    0
13)   /dev/dsp12    0
14)   /dev/dsp13    0
15)   /dev/dsp14    0
16)   /dev/dsp15    0
17)   /dev/dsp16    2
18)   /dev/dsp17    2
19)   /dev/dsp18    2
20)   /dev/dsp19    2
21)   /dev/dsp20    2
22)   /dev/dsp21    2
23)   /dev/dsp22    2
24)   /dev/dsp23    2
25)   /dev/dsp24    2
26)   /dev/dsp25    2
27)   /dev/dsp26    2


The two faults are that /dev/dsp0 (output channels 1 & 2) is missing, and that /dev/dsp16 is listed as only 2 channels when it should be 8 (it is supposed to be the multichannel device).

I can get stereo sound out of /dev/dsp1, /dev/dsp2 and /dev/dsp3, but when I try anything with /dev/dsp16 (even a 2 channel file) I get this error:
Code: Select all
Expression 'tempDevHandle = open( deviceInfo->name, flags )' failed in 'src/hostapi/oss/pa_unix_oss.c', line: 687
Pa_IsFormatSupported reports device will not support number of channels.


However, doing:
Code: Select all
ossplay -d/dev/dsp16 my_surround_file.wav

does work.
davemar
New Member
 
Posts: 4
Joined: Mon Jul 04, 2011 1:59 pm

Re: Getting multichannel output on LynxTwo

Postby cesium » Tue Jul 05, 2011 3:43 pm

Sounds like a bug in portaudio... You can try to strace the program (strace -e trace=ioctl ...) to see what portaudio does with the card. This patched version of strace is better since it shows the original ioctl argument and the returned result.
cesium
Developer
 
Posts: 902
Joined: Sun Aug 12, 2007 12:51 am

Re: Getting multichannel output on LynxTwo

Postby davemar » Thu Jul 07, 2011 10:23 am

Here's the output of strace:
Code: Select all
syscall_293(0x7fff78458ce0, 0x80000, 0x7f8fa5ec6e7b, 0x11, 0x7f8fa83df720, 0x7f8fa5ec6025, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0) = 0
--- SIGCHLD (Child exited) @ 0 (0) ---
syscall_293(0x7fff78458ce0, 0x80000, 0x7f8fa5ec6e7b, 0x7f8fa6ead0f8, 0x7f8fa83df720, 0x7f8fa5ec6025, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0) = 0
--- SIGCHLD (Child exited) @ 0 (0) ---
syscall_293(0x7fff78458f90, 0x80000, 0x7f8fa5ec6e7b, 0x7f8fa6eacfe8, 0x7f8fa83df720, 0x7f8fa5ec6025, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0) = 0
--- SIGCHLD (Child exited) @ 0 (0) ---
syscall_293(0x7fff78458f90, 0x80000, 0x7f8fa5ec6e7b, 0x7f8fa6eacfc8, 0x7f8fa83df720, 0x7f8fa5ec6025, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0) = 0
--- SIGCHLD (Child exited) @ 0 (0) ---
ioctl(3, SNDCTL_DSP_CHANNELS or SOUND_PCM_READ_CHANNELS, 1 => 1) = 0
ioctl(3, SNDCTL_DSP_CHANNELS or SOUND_PCM_READ_CHANNELS, 2 => 2) = 0
ioctl(3, SNDCTL_DSP_CHANNELS or SOUND_PCM_READ_CHANNELS, 3 => 2) = 0
ioctl(3, SNDCTL_DSP_CHANNELS or SOUND_PCM_READ_CHANNELS, 2 => 2) = 0
ioctl(3, SNDCTL_DSP_SPEED or SOUND_PCM_READ_RATE, 44100 => 44100) = 0
ioctl(3, SNDCTL_DSP_CHANNELS or SOUND_PCM_READ_CHANNELS, 1 => 1) = 0
ioctl(3, SNDCTL_DSP_CHANNELS or SOUND_PCM_READ_CHANNELS, 2 => 2) = 0
ioctl(3, SNDCTL_DSP_CHANNELS or SOUND_PCM_READ_CHANNELS, 3 => 2) = 0
ioctl(3, SNDCTL_DSP_CHANNELS or SOUND_PCM_READ_CHANNELS, 2 => 2) = 0
ioctl(3, SNDCTL_DSP_CHANNELS or SOUND_PCM_READ_CHANNELS, 1 => 1) = 0
ioctl(3, SNDCTL_DSP_CHANNELS or SOUND_PCM_READ_CHANNELS, 2 => 2) = 0
ioctl(3, SNDCTL_DSP_CHANNELS or SOUND_PCM_READ_CHANNELS, 3 => 2) = 0
ioctl(3, SNDCTL_DSP_CHANNELS or SOUND_PCM_READ_CHANNELS, 2 => 2) = 0
ioctl(3, SNDCTL_DSP_SPEED or SOUND_PCM_READ_RATE, 44100 => 44100) = 0
ioctl(3, SNDCTL_DSP_CHANNELS or SOUND_PCM_READ_CHANNELS, 1 => 1) = 0
ioctl(3, SNDCTL_DSP_CHANNELS or SOUND_PCM_READ_CHANNELS, 2 => 2) = 0
ioctl(3, SNDCTL_DSP_CHANNELS or SOUND_PCM_READ_CHANNELS, 3 => 2) = 0
ioctl(3, SNDCTL_DSP_CHANNELS or SOUND_PCM_READ_CHANNELS, 2 => 2) = 0
ioctl(3, SNDCTL_DSP_SPEED or SOUND_PCM_READ_RATE, 44100 => 44100) = 0
ioctl(3, SNDCTL_DSP_CHANNELS or SOUND_PCM_READ_CHANNELS, 1 => 1) = 0
ioctl(3, SNDCTL_DSP_CHANNELS or SOUND_PCM_READ_CHANNELS, 2 => 2) = 0
ioctl(3, SNDCTL_DSP_CHANNELS or SOUND_PCM_READ_CHANNELS, 3 => 2) = 0
ioctl(3, SNDCTL_DSP_CHANNELS or SOUND_PCM_READ_CHANNELS, 2 => 2) = 0
ioctl(3, SNDCTL_DSP_SPEED or SOUND_PCM_READ_RATE, 44100 => 44100) = 0
ioctl(3, SNDCTL_DSP_CHANNELS or SOUND_PCM_READ_CHANNELS, 1 => 1) = 0
ioctl(3, SNDCTL_DSP_CHANNELS or SOUND_PCM_READ_CHANNELS, 2 => 2) = 0
ioctl(3, SNDCTL_DSP_CHANNELS or SOUND_PCM_READ_CHANNELS, 3 => 2) = 0
ioctl(3, SNDCTL_DSP_CHANNELS or SOUND_PCM_READ_CHANNELS, 2 => 2) = 0
ioctl(3, SNDCTL_DSP_SPEED or SOUND_PCM_READ_RATE, 44100 => 44100) = 0
ioctl(3, SNDCTL_DSP_CHANNELS or SOUND_PCM_READ_CHANNELS, 1 => 1) = 0
ioctl(3, SNDCTL_DSP_CHANNELS or SOUND_PCM_READ_CHANNELS, 2 => 2) = 0
ioctl(3, SNDCTL_DSP_CHANNELS or SOUND_PCM_READ_CHANNELS, 3 => 2) = 0
ioctl(3, SNDCTL_DSP_CHANNELS or SOUND_PCM_READ_CHANNELS, 2 => 2) = 0
ioctl(3, SNDCTL_DSP_SPEED or SOUND_PCM_READ_RATE, 44100 => 44100) = 0
ioctl(3, SNDCTL_DSP_CHANNELS or SOUND_PCM_READ_CHANNELS, 1 => 1) = 0
ioctl(3, SNDCTL_DSP_CHANNELS or SOUND_PCM_READ_CHANNELS, 2 => 2) = 0
ioctl(3, SNDCTL_DSP_CHANNELS or SOUND_PCM_READ_CHANNELS, 3 => 2) = 0
ioctl(3, SNDCTL_DSP_CHANNELS or SOUND_PCM_READ_CHANNELS, 2 => 2) = 0
ioctl(3, SNDCTL_DSP_SPEED or SOUND_PCM_READ_RATE, 44100 => 44100) = 0
ioctl(3, SNDCTL_DSP_CHANNELS or SOUND_PCM_READ_CHANNELS, 1 => 1) = 0
ioctl(3, SNDCTL_DSP_CHANNELS or SOUND_PCM_READ_CHANNELS, 2 => 2) = 0
ioctl(3, SNDCTL_DSP_CHANNELS or SOUND_PCM_READ_CHANNELS, 3 => 2) = 0
ioctl(3, SNDCTL_DSP_CHANNELS or SOUND_PCM_READ_CHANNELS, 2 => 2) = 0
ioctl(3, SNDCTL_DSP_SPEED or SOUND_PCM_READ_RATE, 44100 => 44100) = 0
ioctl(3, SNDCTL_DSP_CHANNELS or SOUND_PCM_READ_CHANNELS, 1 => 1) = 0
ioctl(3, SNDCTL_DSP_CHANNELS or SOUND_PCM_READ_CHANNELS, 2 => 2) = 0
ioctl(3, SNDCTL_DSP_CHANNELS or SOUND_PCM_READ_CHANNELS, 3 => 2) = 0
ioctl(3, SNDCTL_DSP_CHANNELS or SOUND_PCM_READ_CHANNELS, 2 => 2) = 0
ioctl(3, SNDCTL_DSP_SPEED or SOUND_PCM_READ_RATE, 44100 => 44100) = 0
ioctl(3, SNDCTL_DSP_CHANNELS or SOUND_PCM_READ_CHANNELS, 1 => 1) = 0
ioctl(3, SNDCTL_DSP_CHANNELS or SOUND_PCM_READ_CHANNELS, 2 => 2) = 0
ioctl(3, SNDCTL_DSP_CHANNELS or SOUND_PCM_READ_CHANNELS, 3 => 2) = 0
ioctl(3, SNDCTL_DSP_CHANNELS or SOUND_PCM_READ_CHANNELS, 2 => 2) = 0
ioctl(3, SNDCTL_DSP_SPEED or SOUND_PCM_READ_RATE, 44100 => 44100) = 0
ioctl(3, SNDCTL_DSP_CHANNELS or SOUND_PCM_READ_CHANNELS, 1 => 1) = 0
ioctl(3, SNDCTL_DSP_CHANNELS or SOUND_PCM_READ_CHANNELS, 2 => 2) = 0
ioctl(3, SNDCTL_DSP_CHANNELS or SOUND_PCM_READ_CHANNELS, 3 => 2) = 0
ioctl(3, SNDCTL_DSP_CHANNELS or SOUND_PCM_READ_CHANNELS, 2 => 2) = 0
ioctl(3, SNDCTL_DSP_SPEED or SOUND_PCM_READ_RATE, 44100 => 44100) = 0
ioctl(3, SNDCTL_DSP_CHANNELS or SOUND_PCM_READ_CHANNELS, 1 => 1) = 0
ioctl(3, SNDCTL_DSP_CHANNELS or SOUND_PCM_READ_CHANNELS, 2 => 2) = 0
ioctl(3, SNDCTL_DSP_CHANNELS or SOUND_PCM_READ_CHANNELS, 3 => 2) = 0
ioctl(3, SNDCTL_DSP_CHANNELS or SOUND_PCM_READ_CHANNELS, 2 => 2) = 0
ioctl(3, SNDCTL_DSP_SPEED or SOUND_PCM_READ_RATE, 44100 => 44100) = 0
ioctl(3, SNDCTL_DSP_CHANNELS or SOUND_PCM_READ_CHANNELS, 1 => 1) = 0
ioctl(3, SNDCTL_DSP_CHANNELS or SOUND_PCM_READ_CHANNELS, 2 => 2) = 0
ioctl(3, SNDCTL_DSP_CHANNELS or SOUND_PCM_READ_CHANNELS, 3 => 2) = 0
ioctl(3, SNDCTL_DSP_CHANNELS or SOUND_PCM_READ_CHANNELS, 2 => 2) = 0
ioctl(3, SNDCTL_DSP_SPEED or SOUND_PCM_READ_RATE, 44100 => 44100) = 0
ioctl(3, SNDCTL_DSP_CHANNELS or SOUND_PCM_READ_CHANNELS, 1 => 1) = 0
ioctl(3, SNDCTL_DSP_CHANNELS or SOUND_PCM_READ_CHANNELS, 2 => 2) = 0
ioctl(3, SNDCTL_DSP_CHANNELS or SOUND_PCM_READ_CHANNELS, 3 => 2) = 0
ioctl(3, SNDCTL_DSP_CHANNELS or SOUND_PCM_READ_CHANNELS, 2 => 2) = 0
ioctl(3, SNDCTL_DSP_SPEED or SOUND_PCM_READ_RATE, 44100 => 44100) = 0
ioctl(3, SNDCTL_DSP_CHANNELS or SOUND_PCM_READ_CHANNELS, 1 => 1) = 0
ioctl(3, SNDCTL_DSP_CHANNELS or SOUND_PCM_READ_CHANNELS, 2 => 2) = 0
ioctl(3, SNDCTL_DSP_CHANNELS or SOUND_PCM_READ_CHANNELS, 3 => 2) = 0
ioctl(3, SNDCTL_DSP_CHANNELS or SOUND_PCM_READ_CHANNELS, 2 => 2) = 0
ioctl(3, SNDCTL_DSP_SPEED or SOUND_PCM_READ_RATE, 44100 => 44100) = 0
ioctl(3, SNDCTL_DSP_CHANNELS or SOUND_PCM_READ_CHANNELS, 1 => 1) = 0
ioctl(3, SNDCTL_DSP_CHANNELS or SOUND_PCM_READ_CHANNELS, 2 => 2) = 0
ioctl(3, SNDCTL_DSP_CHANNELS or SOUND_PCM_READ_CHANNELS, 3 => 2) = 0
ioctl(3, SNDCTL_DSP_CHANNELS or SOUND_PCM_READ_CHANNELS, 2 => 2) = 0
ioctl(3, SNDCTL_DSP_SPEED or SOUND_PCM_READ_RATE, 44100 => 44100) = 0
ioctl(3, SNDCTL_DSP_CHANNELS or SOUND_PCM_READ_CHANNELS, 1 => 2) = 0
ioctl(3, SNDCTL_DSP_CHANNELS or SOUND_PCM_READ_CHANNELS, 2 => 2) = 0
ioctl(3, SNDCTL_DSP_CHANNELS or SOUND_PCM_READ_CHANNELS, 3 => 2) = 0
ioctl(3, SNDCTL_DSP_CHANNELS or SOUND_PCM_READ_CHANNELS, 2 => 2) = 0
ioctl(3, SNDCTL_DSP_SPEED or SOUND_PCM_READ_RATE, 44100 => 44100) = 0
ioctl(3, SNDCTL_DSP_CHANNELS or SOUND_PCM_READ_CHANNELS, 1 => 2) = 0
ioctl(3, SNDCTL_DSP_CHANNELS or SOUND_PCM_READ_CHANNELS, 2 => 2) = 0
ioctl(3, SNDCTL_DSP_CHANNELS or SOUND_PCM_READ_CHANNELS, 3 => 2) = 0
ioctl(3, SNDCTL_DSP_CHANNELS or SOUND_PCM_READ_CHANNELS, 2 => 2) = 0
ioctl(3, SNDCTL_DSP_CHANNELS or SOUND_PCM_READ_CHANNELS, 1 => 1) = 0
ioctl(3, SNDCTL_DSP_CHANNELS or SOUND_PCM_READ_CHANNELS, 2 => 2) = 0
ioctl(3, SNDCTL_DSP_CHANNELS or SOUND_PCM_READ_CHANNELS, 3 => 2) = 0
ioctl(3, SNDCTL_DSP_CHANNELS or SOUND_PCM_READ_CHANNELS, 2 => 2) = 0
ioctl(3, SNDCTL_DSP_SPEED or SOUND_PCM_READ_RATE, 44100 => 44100) = 0
ioctl(3, SNDCTL_DSP_CHANNELS or SOUND_PCM_READ_CHANNELS, 1 => 1) = 0
ioctl(3, SNDCTL_DSP_CHANNELS or SOUND_PCM_READ_CHANNELS, 2 => 2) = 0
ioctl(3, SNDCTL_DSP_CHANNELS or SOUND_PCM_READ_CHANNELS, 3 => 2) = 0
ioctl(3, SNDCTL_DSP_CHANNELS or SOUND_PCM_READ_CHANNELS, 2 => 2) = 0
ioctl(3, SNDCTL_DSP_CHANNELS or SOUND_PCM_READ_CHANNELS, 1 => 1) = 0
ioctl(3, SNDCTL_DSP_CHANNELS or SOUND_PCM_READ_CHANNELS, 2 => 2) = 0
ioctl(3, SNDCTL_DSP_CHANNELS or SOUND_PCM_READ_CHANNELS, 3 => 2) = 0
ioctl(3, SNDCTL_DSP_CHANNELS or SOUND_PCM_READ_CHANNELS, 2 => 2) = 0
ioctl(3, SNDCTL_DSP_SPEED or SOUND_PCM_READ_RATE, 44100 => 44100) = 0
ioctl(3, SNDCTL_DSP_CHANNELS or SOUND_PCM_READ_CHANNELS, 1 => 1) = 0
ioctl(3, SNDCTL_DSP_CHANNELS or SOUND_PCM_READ_CHANNELS, 2 => 2) = 0
ioctl(3, SNDCTL_DSP_CHANNELS or SOUND_PCM_READ_CHANNELS, 3 => 2) = 0
ioctl(3, SNDCTL_DSP_CHANNELS or SOUND_PCM_READ_CHANNELS, 2 => 2) = 0
ioctl(3, SNDCTL_DSP_CHANNELS or SOUND_PCM_READ_CHANNELS, 1 => 1) = 0
ioctl(3, SNDCTL_DSP_CHANNELS or SOUND_PCM_READ_CHANNELS, 2 => 2) = 0
ioctl(3, SNDCTL_DSP_CHANNELS or SOUND_PCM_READ_CHANNELS, 3 => 2) = 0
ioctl(3, SNDCTL_DSP_CHANNELS or SOUND_PCM_READ_CHANNELS, 2 => 2) = 0
ioctl(3, SNDCTL_DSP_SPEED or SOUND_PCM_READ_RATE, 44100 => 44100) = 0
ioctl(3, SNDCTL_DSP_CHANNELS or SOUND_PCM_READ_CHANNELS, 1 => 1) = 0
ioctl(3, SNDCTL_DSP_CHANNELS or SOUND_PCM_READ_CHANNELS, 2 => 2) = 0
ioctl(3, SNDCTL_DSP_CHANNELS or SOUND_PCM_READ_CHANNELS, 3 => 2) = 0
ioctl(3, SNDCTL_DSP_CHANNELS or SOUND_PCM_READ_CHANNELS, 2 => 2) = 0
ioctl(3, SNDCTL_DSP_CHANNELS or SOUND_PCM_READ_CHANNELS, 1 => 1) = 0
ioctl(3, SNDCTL_DSP_CHANNELS or SOUND_PCM_READ_CHANNELS, 2 => 2) = 0
ioctl(3, SNDCTL_DSP_CHANNELS or SOUND_PCM_READ_CHANNELS, 3 => 2) = 0
ioctl(3, SNDCTL_DSP_CHANNELS or SOUND_PCM_READ_CHANNELS, 2 => 2) = 0
ioctl(3, SNDCTL_DSP_SPEED or SOUND_PCM_READ_RATE, 44100 => 44100) = 0
ioctl(3, SNDCTL_DSP_CHANNELS or SOUND_PCM_READ_CHANNELS, 1 => 1) = 0
ioctl(3, SNDCTL_DSP_CHANNELS or SOUND_PCM_READ_CHANNELS, 2 => 2) = 0
ioctl(3, SNDCTL_DSP_CHANNELS or SOUND_PCM_READ_CHANNELS, 3 => 2) = 0
ioctl(3, SNDCTL_DSP_CHANNELS or SOUND_PCM_READ_CHANNELS, 2 => 2) = 0
ioctl(3, SNDCTL_DSP_CHANNELS or SOUND_PCM_READ_CHANNELS, 1 => 1) = 0
ioctl(3, SNDCTL_DSP_CHANNELS or SOUND_PCM_READ_CHANNELS, 2 => 2) = 0
ioctl(3, SNDCTL_DSP_CHANNELS or SOUND_PCM_READ_CHANNELS, 3 => 2) = 0
ioctl(3, SNDCTL_DSP_CHANNELS or SOUND_PCM_READ_CHANNELS, 2 => 2) = 0
ioctl(3, SNDCTL_DSP_SPEED or SOUND_PCM_READ_RATE, 44100 => 44100) = 0
ioctl(3, SNDCTL_DSP_CHANNELS or SOUND_PCM_READ_CHANNELS, 1 => 1) = 0
ioctl(3, SNDCTL_DSP_CHANNELS or SOUND_PCM_READ_CHANNELS, 2 => 2) = 0
ioctl(3, SNDCTL_DSP_CHANNELS or SOUND_PCM_READ_CHANNELS, 3 => 2) = 0
ioctl(3, SNDCTL_DSP_CHANNELS or SOUND_PCM_READ_CHANNELS, 2 => 2) = 0
ioctl(3, SNDCTL_DSP_CHANNELS or SOUND_PCM_READ_CHANNELS, 1 => 1) = 0
ioctl(3, SNDCTL_DSP_CHANNELS or SOUND_PCM_READ_CHANNELS, 2 => 2) = 0
ioctl(3, SNDCTL_DSP_CHANNELS or SOUND_PCM_READ_CHANNELS, 3 => 2) = 0
ioctl(3, SNDCTL_DSP_CHANNELS or SOUND_PCM_READ_CHANNELS, 2 => 2) = 0
ioctl(3, SNDCTL_DSP_SPEED or SOUND_PCM_READ_RATE, 44100 => 44100) = 0
ioctl(3, SNDCTL_DSP_CHANNELS or SOUND_PCM_READ_CHANNELS, 1 => 1) = 0
ioctl(3, SNDCTL_DSP_CHANNELS or SOUND_PCM_READ_CHANNELS, 2 => 2) = 0
ioctl(3, SNDCTL_DSP_CHANNELS or SOUND_PCM_READ_CHANNELS, 3 => 2) = 0
ioctl(3, SNDCTL_DSP_CHANNELS or SOUND_PCM_READ_CHANNELS, 2 => 2) = 0
ioctl(3, SNDCTL_DSP_CHANNELS or SOUND_PCM_READ_CHANNELS, 1 => 1) = 0
ioctl(3, SNDCTL_DSP_CHANNELS or SOUND_PCM_READ_CHANNELS, 2 => 2) = 0
ioctl(3, SNDCTL_DSP_CHANNELS or SOUND_PCM_READ_CHANNELS, 3 => 2) = 0
ioctl(3, SNDCTL_DSP_CHANNELS or SOUND_PCM_READ_CHANNELS, 2 => 2) = 0
ioctl(3, SNDCTL_DSP_SPEED or SOUND_PCM_READ_RATE, 44100 => 44100) = 0
ioctl(3, SNDCTL_DSP_CHANNELS or SOUND_PCM_READ_CHANNELS, 1 => 1) = 0
ioctl(3, SNDCTL_DSP_CHANNELS or SOUND_PCM_READ_CHANNELS, 2 => 2) = 0
ioctl(3, SNDCTL_DSP_CHANNELS or SOUND_PCM_READ_CHANNELS, 3 => 2) = 0
ioctl(3, SNDCTL_DSP_CHANNELS or SOUND_PCM_READ_CHANNELS, 2 => 2) = 0
ioctl(3, SNDCTL_DSP_CHANNELS or SOUND_PCM_READ_CHANNELS, 1 => 1) = 0
ioctl(3, SNDCTL_DSP_CHANNELS or SOUND_PCM_READ_CHANNELS, 2 => 2) = 0
ioctl(3, SNDCTL_DSP_CHANNELS or SOUND_PCM_READ_CHANNELS, 3 => 2) = 0
ioctl(3, SNDCTL_DSP_CHANNELS or SOUND_PCM_READ_CHANNELS, 2 => 2) = 0
ioctl(3, SNDCTL_DSP_SPEED or SOUND_PCM_READ_RATE, 44100 => 44100) = 0
ioctl(3, SNDCTL_DSP_CHANNELS or SOUND_PCM_READ_CHANNELS, 1 => 1) = 0
ioctl(3, SNDCTL_DSP_CHANNELS or SOUND_PCM_READ_CHANNELS, 2 => 2) = 0
ioctl(3, SNDCTL_DSP_CHANNELS or SOUND_PCM_READ_CHANNELS, 3 => 2) = 0
ioctl(3, SNDCTL_DSP_CHANNELS or SOUND_PCM_READ_CHANNELS, 2 => 2) = 0
ioctl(3, SNDCTL_DSP_CHANNELS or SOUND_PCM_READ_CHANNELS, 1 => 1) = 0
ioctl(3, SNDCTL_DSP_CHANNELS or SOUND_PCM_READ_CHANNELS, 2 => 2) = 0
ioctl(3, SNDCTL_DSP_CHANNELS or SOUND_PCM_READ_CHANNELS, 3 => 2) = 0
ioctl(3, SNDCTL_DSP_CHANNELS or SOUND_PCM_READ_CHANNELS, 2 => 2) = 0
ioctl(3, SNDCTL_DSP_SPEED or SOUND_PCM_READ_RATE, 44100 => 44100) = 0
ioctl(3, SNDCTL_DSP_CHANNELS or SOUND_PCM_READ_CHANNELS, 1 => 1) = 0
ioctl(3, SNDCTL_DSP_CHANNELS or SOUND_PCM_READ_CHANNELS, 2 => 2) = 0
ioctl(3, SNDCTL_DSP_CHANNELS or SOUND_PCM_READ_CHANNELS, 3 => 2) = 0
ioctl(3, SNDCTL_DSP_CHANNELS or SOUND_PCM_READ_CHANNELS, 2 => 2) = 0
ioctl(3, SNDCTL_DSP_CHANNELS or SOUND_PCM_READ_CHANNELS, 1 => 1) = 0
ioctl(3, SNDCTL_DSP_CHANNELS or SOUND_PCM_READ_CHANNELS, 2 => 2) = 0
ioctl(3, SNDCTL_DSP_CHANNELS or SOUND_PCM_READ_CHANNELS, 3 => 2) = 0
ioctl(3, SNDCTL_DSP_CHANNELS or SOUND_PCM_READ_CHANNELS, 2 => 2) = 0
ioctl(3, SNDCTL_DSP_SPEED or SOUND_PCM_READ_RATE, 44100 => 44100) = 0
ioctl(3, SNDCTL_DSP_CHANNELS or SOUND_PCM_READ_CHANNELS, 1 => 1) = 0
ioctl(3, SNDCTL_DSP_CHANNELS or SOUND_PCM_READ_CHANNELS, 2 => 2) = 0
ioctl(3, SNDCTL_DSP_CHANNELS or SOUND_PCM_READ_CHANNELS, 3 => 2) = 0
ioctl(3, SNDCTL_DSP_CHANNELS or SOUND_PCM_READ_CHANNELS, 2 => 2) = 0
syscall_293(0x7fff784595c0, 0x80000, 0x7f8fa5ec6e7b, 0x11, 0x7f8fa83df720, 0x7f8fa5ec6025, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0) = 0
--- SIGCHLD (Child exited) @ 0 (0) ---

I can't really work out much from this to be honest.

Also, I'm finding the ossplay program doesn't always playback the correct channel order. It is usually correct, but a lot of the time it randomises the order.

So it looks like there's two separate faults to deal with now:
1) OSS drivers channel order stability.
2) Portaudio device identification.
davemar
New Member
 
Posts: 4
Joined: Mon Jul 04, 2011 1:59 pm

Re: Getting multichannel output on LynxTwo

Postby igorzwx » Thu Jul 07, 2011 10:58 am

davemar wrote: I'm finding the ossplay program doesn't always playback the correct channel order. It is usually correct, but a lot of the time it randomises the order.

So it looks like there's two separate faults to deal with now:
1) OSS drivers channel order stability.
2) Portaudio device identification.


Portaudio has always been problematic with OSS4. But ossplay?
Code: Select all
$ man ossplay
       -R     Disable  redirection  to  virtual  mixer  engines   and   sample
              rate/format  conversions.  Should  not be used unless absolutely
              necessary.

In a word, ALSA can randomise soundcards through the help of UDev. This can be prevented by preloading drivers viewtopic.php?f=3&t=4372#p17360
Perhaps, a kind of "advanced innovation" in OSS4.

You see, "ossplay -R" plays a wave "as is". If it plays a mono wave though a stereo device, you may hear "strange effects".
The notion that "ossplay -R" "should not be used unless absolutely necessary" may surely help to keep the OSS4 users "stupid and ignorant".

Notice that vmixctl is an "Open Sound System utility to control the vmix subsystem". The channels are somehow mapped through the help of vmix
Code: Select all
$ man vmixctl
CHANGING THE VMIX CHANNEL MAP
       The  vmix  subsystem  can  remap channels, so that all output sent to a
       channel via vmix will end up being played on a different  channel.  The
       syntax  uses  a  list  of  channels, where typically 0=default, 1=left,
       2=right, 3=center, 4=lfe, 5=left  surround,  6=right  surround,  7=left
       rear  and 8=right rear.  Note that vmix-channels should be set first to
       Multich if vmix is to recognize the extra channels.

   EXAMPLES
       o      vmixctl remap /dev/dsp 2 1 #switch left and right

       o      vmixctl remap /dev/dsp 0 0 0 0 6 5 #switch left and  right  sur‐
              round

All these seem to be a kind of "dirty hack", perhaps, an attempt to imitate PulseAudio.
The reason is simple. If some Linux drivers do not support "multi-channel", or "hardware mixing", or "hardware resampling", you can simply create a kind of PulseAudio or "vmix" to imitate "technological progress and innovations". The alternative is to fix drivers - this means a great deal of hard work.
Does ultimate perfection exist?... Today we are testing the Lynx Two sound card from the American company of Lynx Studio Technology. The distinguishing features of this solution are the reference quality of sound and an a high price ($1000 to $1200 depending on the modification). http://ixbtlabs.com/articles2/lynxtwo/

Is it capable of "hardware mixing"? Or it should be powered with a kind of PulseAudio?
igorzwx
Known Member
 
Posts: 1000
Joined: Sun Jun 28, 2009 9:31 pm


Return to Linux

Who is online

Users browsing this forum: No registered users and 1 guest