Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 23 Jan 2013 10:47:09 +0100
From:      "Ralf Mardorf" <ralf.mardorf@rocketmail.com>
To:        "Ian Smith" <smithi@nimnet.asn.au>
Cc:        freebsd-multimedia@freebsd.org, freebsd-questions@freebsd.org
Subject:   ADAT does work, but often is interrupted by noise - Was: FreeBSD and snd_hdspe last-ditch attempt
Message-ID:  <op.wrcysv2guwjkcr@freebsd>
In-Reply-To: <20130123144008.A62930@sola.nimnet.asn.au>
References:  <op.wrbx0pfiuwjkcr@freebsd> <20130123144008.A62930@sola.nimnet.asn.au>

next in thread | previous in thread | raw e-mail | index | archive | help
Thank you Ian :)

On Wed, 23 Jan 2013 05:25:59 +0100, Ian Smith <smithi@nimnet.asn.au> wrote:
> 'cat /dev/sndstat'

I already posted it ;). However, I set sysctl hw.snd.verbose=2, here it's  
again [1].
It's a cheap professional audio device, IOW it's not a consumer or  
semi-professional device, so cheap doesn't mean low quality. Professional  
and semi-professional devices usually don't support surround sound, but at  
least the professional devices provide special interfaces, such as AES/EBU  
and ADAT. The card I'm using comes with two analog IOs, AES/EBU, ADAT and  
it supports consumer's SPDIF.

$ ls -l /dev/dsp*
crw-rw-rw-  1 root  wheel    0, 205 Jan 23 09:41 /dev/dsp0.0
crw-rw-rw-  1 root  wheel    0, 204 Jan 23 09:41 /dev/dsp1.0
crw-rw-rw-  1 root  wheel    0, 203 Jan 23 09:41 /dev/dsp2.0
crw-rw-rw-  1 root  wheel    0, 202 Jan 23 09:41 /dev/dsp3.0
crw-rw-rw-  1 root  wheel    0, 201 Jan 23 09:41 /dev/dsp4.0
crw-rw-rw-  1 root  wheel    0, 200 Jan 23 09:41 /dev/dsp5.0
crw-rw-rw-  1 root  wheel    0, 199 Jan 23 09:41 /dev/dsp6.0
crw-rw-rw-  1 root  wheel    0, 198 Jan 23 09:41 /dev/dsp7.0

> have to assume you've already
> discussed your issues with its author, Ruslan Bukin <br@bsdpad.com>

Yes, Ruslan does or at least did follow the thread.

I set jackd to use OSS with /dev/dsp4.0, I connected synaddsubfx

$ zynaddsubfx

ZynAddSubFX - Copyright (c) 2002-2009 Nasca Octavian Paul and others
Compiled: Jan 20 2013 03:10:05
This program is free software (GNU GPL v.2 or later) and
it comes with ABSOLUTELY NO WARRANTY.

Try 'zynaddsubfx --help' for command-line options.
Sound Buffer Size = 	256 samples
Internal latency = 	5.3 ms
ADsynth Oscil.Size = 	1024 samples
Internal SampleRate   = 48000
Jack Output SampleRate= 48000
ALSA lib seq_hw.c:457:(snd_seq_hw_open) open /dev/snd/seq failed: No such  
file or directory

Now there sometimes is audio output and sometimes dangerous noise, that  
could damage the speakers. Jack is running without real-time,  
Frames/Period 1024, Periods/Buffer 2, Samplerae 48000, Word Length 16.

Regards,
Ralf

[1]
$ cat /dev/sndstat
FreeBSD Audio Driver (newpcm: 64bit 2009061500/amd64)
Installed devices:
pcm0: <HDSPe AIO [line]> at io 0xfdff0000 irq 18 kld snd_hdspe  
(1p:1v/1r:1v) default
	snddev flags=0x2e6<AUTOVCHAN,SOFTPCMVOL,BUSY,MPSAFE,REGISTERED,VPC>
	[pcm0:play:dsp0.p0]: spd 48000, fmt 0x00200010/0x00201000, flags  
0x00002100, 0x00000006
	interrupts 0, underruns 0, feed 0, ready 0  
[b:131072/4096/32|bs:65536/2048/32]
	channel flags=0x2100<BUSY,HAS_VCHAN>
	{userland} -> feeder_mixer(0x00200010) -> feeder_format(0x00200010 ->  
0x00201000) -> {hardware}
	pcm0:play:dsp0.p0[pcm0:virtual:dsp0.vp0]: spd 8000, fmt 0x00100008, flags  
0x10000000, 0x00000000
	interrupts 0, underruns 0, feed 0, ready 0 [b:0/0/0|bs:0/0/0]
	channel flags=0x10000000<VIRTUAL>
	{userland} -> feeder_root(0x00000000) -> {hardware}
	[pcm0:record:dsp0.r0]: spd 48000, fmt 0x00200010/0x00201000, flags  
0x00002100, 0x00000007
	interrupts 0, overruns 0, feed 0, hfree 131072, sfree 65536  
[b:131072/4096/32|bs:65536/2048/32]
	channel flags=0x2100<BUSY,HAS_VCHAN>
	{hardware} -> feeder_root(0x00201000) -> feeder_format(0x00201000 ->  
0x00200010) -> feeder_mixer(0x00200010) -> {userland}
	pcm0:record:dsp0.r0[pcm0:virtual:dsp0.vr0]: spd 8000, fmt 0x00100008,  
flags 0x10000000, 0x00000000
	interrupts 0, overruns 0, feed 0, hfree 0, sfree 0 [b:0/0/0|bs:0/0/0]
	channel flags=0x10000000<VIRTUAL>
	{hardware} -> feeder_root(0x00000000) -> {userland}
pcm1: <HDSPe AIO [phone]> at io 0xfdff0000 irq 18 kld snd_hdspe  
(1p:1v/0r:0v)
	snddev  
flags=0x2e7<SIMPLEX,AUTOVCHAN,SOFTPCMVOL,BUSY,MPSAFE,REGISTERED,VPC>
	[pcm1:play:dsp1.p0]: spd 48000, fmt 0x00200010/0x00201000, flags  
0x00002100, 0x00000006
	interrupts 0, underruns 0, feed 0, ready 0  
[b:131072/4096/32|bs:65536/2048/32]
	channel flags=0x2100<BUSY,HAS_VCHAN>
	{userland} -> feeder_mixer(0x00200010) -> feeder_format(0x00200010 ->  
0x00201000) -> {hardware}
	pcm1:play:dsp1.p0[pcm1:virtual:dsp1.vp0]: spd 8000, fmt 0x00100008, flags  
0x10000000, 0x00000000
	interrupts 0, underruns 0, feed 0, ready 0 [b:0/0/0|bs:0/0/0]
	channel flags=0x10000000<VIRTUAL>
	{userland} -> feeder_root(0x00000000) -> {hardware}
pcm2: <HDSPe AIO [aes]> at io 0xfdff0000 irq 18 kld snd_hdspe (1p:1v/1r:1v)
	snddev flags=0x2e6<AUTOVCHAN,SOFTPCMVOL,BUSY,MPSAFE,REGISTERED,VPC>
	[pcm2:play:dsp2.p0]: spd 48000, fmt 0x00200010/0x00201000, flags  
0x00002100, 0x00000006
	interrupts 0, underruns 0, feed 0, ready 0  
[b:131072/4096/32|bs:65536/2048/32]
	channel flags=0x2100<BUSY,HAS_VCHAN>
	{userland} -> feeder_mixer(0x00200010) -> feeder_format(0x00200010 ->  
0x00201000) -> {hardware}
	pcm2:play:dsp2.p0[pcm2:virtual:dsp2.vp0]: spd 8000, fmt 0x00100008, flags  
0x10000000, 0x00000000
	interrupts 0, underruns 0, feed 0, ready 0 [b:0/0/0|bs:0/0/0]
	channel flags=0x10000000<VIRTUAL>
	{userland} -> feeder_root(0x00000000) -> {hardware}
	[pcm2:record:dsp2.r0]: spd 48000, fmt 0x00200010/0x00201000, flags  
0x00002100, 0x00000007
	interrupts 0, overruns 0, feed 0, hfree 131072, sfree 65536  
[b:131072/4096/32|bs:65536/2048/32]
	channel flags=0x2100<BUSY,HAS_VCHAN>
	{hardware} -> feeder_root(0x00201000) -> feeder_format(0x00201000 ->  
0x00200010) -> feeder_mixer(0x00200010) -> {userland}
	pcm2:record:dsp2.r0[pcm2:virtual:dsp2.vr0]: spd 8000, fmt 0x00100008,  
flags 0x10000000, 0x00000000
	interrupts 0, overruns 0, feed 0, hfree 0, sfree 0 [b:0/0/0|bs:0/0/0]
	channel flags=0x10000000<VIRTUAL>
	{hardware} -> feeder_root(0x00000000) -> {userland}
pcm3: <HDSPe AIO [s/pdif]> at io 0xfdff0000 irq 18 kld snd_hdspe  
(1p:1v/1r:1v)
	snddev flags=0x2e6<AUTOVCHAN,SOFTPCMVOL,BUSY,MPSAFE,REGISTERED,VPC>
	[pcm3:play:dsp3.p0]: spd 48000, fmt 0x00200010/0x00201000, flags  
0x00002100, 0x00000006
	interrupts 0, underruns 0, feed 0, ready 0  
[b:131072/4096/32|bs:65536/2048/32]
	channel flags=0x2100<BUSY,HAS_VCHAN>
	{userland} -> feeder_mixer(0x00200010) -> feeder_format(0x00200010 ->  
0x00201000) -> {hardware}
	pcm3:play:dsp3.p0[pcm3:virtual:dsp3.vp0]: spd 8000, fmt 0x00100008, flags  
0x10000000, 0x00000000
	interrupts 0, underruns 0, feed 0, ready 0 [b:0/0/0|bs:0/0/0]
	channel flags=0x10000000<VIRTUAL>
	{userland} -> feeder_root(0x00000000) -> {hardware}
	[pcm3:record:dsp3.r0]: spd 48000, fmt 0x00200010/0x00201000, flags  
0x00002100, 0x00000007
	interrupts 0, overruns 0, feed 0, hfree 131072, sfree 65536  
[b:131072/4096/32|bs:65536/2048/32]
	channel flags=0x2100<BUSY,HAS_VCHAN>
	{hardware} -> feeder_root(0x00201000) -> feeder_format(0x00201000 ->  
0x00200010) -> feeder_mixer(0x00200010) -> {userland}
	pcm3:record:dsp3.r0[pcm3:virtual:dsp3.vr0]: spd 8000, fmt 0x00100008,  
flags 0x10000000, 0x00000000
	interrupts 0, overruns 0, feed 0, hfree 0, sfree 0 [b:0/0/0|bs:0/0/0]
	channel flags=0x10000000<VIRTUAL>
	{hardware} -> feeder_root(0x00000000) -> {userland}
pcm4: <HDSPe AIO [adat]> at io 0xfdff0000 irq 18 kld snd_hdspe  
(1p:1v/1r:1v)
	snddev flags=0x2e6<AUTOVCHAN,SOFTPCMVOL,BUSY,MPSAFE,REGISTERED,VPC>
	[pcm4:play:dsp4.p0]: spd 48000, fmt 0x00200010/0x00201000, flags  
0x00002100, 0x00000006
	interrupts 0, underruns 0, feed 0, ready 0  
[b:131072/4096/32|bs:65536/2048/32]
	channel flags=0x2100<BUSY,HAS_VCHAN>
	{userland} -> feeder_mixer(0x00200010) -> feeder_format(0x00200010 ->  
0x00201000) -> {hardware}
	pcm4:play:dsp4.p0[pcm4:virtual:dsp4.vp0]: spd 8000, fmt 0x00100008, flags  
0x10000000, 0x00000000
	interrupts 0, underruns 0, feed 0, ready 0 [b:0/0/0|bs:0/0/0]
	channel flags=0x10000000<VIRTUAL>
	{userland} -> feeder_root(0x00000000) -> {hardware}
	[pcm4:record:dsp4.r0]: spd 48000, fmt 0x00200010/0x00201000, flags  
0x00002100, 0x00000007
	interrupts 0, overruns 0, feed 0, hfree 131072, sfree 65536  
[b:131072/4096/32|bs:65536/2048/32]
	channel flags=0x2100<BUSY,HAS_VCHAN>
	{hardware} -> feeder_root(0x00201000) -> feeder_format(0x00201000 ->  
0x00200010) -> feeder_mixer(0x00200010) -> {userland}
	pcm4:record:dsp4.r0[pcm4:virtual:dsp4.vr0]: spd 8000, fmt 0x00100008,  
flags 0x10000000, 0x00000000
	interrupts 0, overruns 0, feed 0, hfree 0, sfree 0 [b:0/0/0|bs:0/0/0]
	channel flags=0x10000000<VIRTUAL>
	{hardware} -> feeder_root(0x00000000) -> {userland}
pcm5: <HDSPe AIO [adat]> at io 0xfdff0000 irq 18 kld snd_hdspe  
(1p:1v/1r:1v)
	snddev flags=0x2e6<AUTOVCHAN,SOFTPCMVOL,BUSY,MPSAFE,REGISTERED,VPC>
	[pcm5:play:dsp5.p0]: spd 48000, fmt 0x00200010/0x00201000, flags  
0x00002100, 0x00000006
	interrupts 0, underruns 0, feed 0, ready 0  
[b:131072/4096/32|bs:65536/2048/32]
	channel flags=0x2100<BUSY,HAS_VCHAN>
	{userland} -> feeder_mixer(0x00200010) -> feeder_format(0x00200010 ->  
0x00201000) -> {hardware}
	pcm5:play:dsp5.p0[pcm5:virtual:dsp5.vp0]: spd 8000, fmt 0x00100008, flags  
0x10000000, 0x00000000
	interrupts 0, underruns 0, feed 0, ready 0 [b:0/0/0|bs:0/0/0]
	channel flags=0x10000000<VIRTUAL>
	{userland} -> feeder_root(0x00000000) -> {hardware}
	[pcm5:record:dsp5.r0]: spd 48000, fmt 0x00200010/0x00201000, flags  
0x00002100, 0x00000007
	interrupts 0, overruns 0, feed 0, hfree 131072, sfree 65536  
[b:131072/4096/32|bs:65536/2048/32]
	channel flags=0x2100<BUSY,HAS_VCHAN>
	{hardware} -> feeder_root(0x00201000) -> feeder_format(0x00201000 ->  
0x00200010) -> feeder_mixer(0x00200010) -> {userland}
	pcm5:record:dsp5.r0[pcm5:virtual:dsp5.vr0]: spd 8000, fmt 0x00100008,  
flags 0x10000000, 0x00000000
	interrupts 0, overruns 0, feed 0, hfree 0, sfree 0 [b:0/0/0|bs:0/0/0]
	channel flags=0x10000000<VIRTUAL>
	{hardware} -> feeder_root(0x00000000) -> {userland}
pcm6: <HDSPe AIO [adat]> at io 0xfdff0000 irq 18 kld snd_hdspe  
(1p:1v/1r:1v)
	snddev flags=0x2e6<AUTOVCHAN,SOFTPCMVOL,BUSY,MPSAFE,REGISTERED,VPC>
	[pcm6:play:dsp6.p0]: spd 48000, fmt 0x00200010/0x00201000, flags  
0x00002100, 0x00000006
	interrupts 0, underruns 0, feed 0, ready 0  
[b:131072/4096/32|bs:65536/2048/32]
	channel flags=0x2100<BUSY,HAS_VCHAN>
	{userland} -> feeder_mixer(0x00200010) -> feeder_format(0x00200010 ->  
0x00201000) -> {hardware}
	pcm6:play:dsp6.p0[pcm6:virtual:dsp6.vp0]: spd 8000, fmt 0x00100008, flags  
0x10000000, 0x00000000
	interrupts 0, underruns 0, feed 0, ready 0 [b:0/0/0|bs:0/0/0]
	channel flags=0x10000000<VIRTUAL>
	{userland} -> feeder_root(0x00000000) -> {hardware}
	[pcm6:record:dsp6.r0]: spd 48000, fmt 0x00200010/0x00201000, flags  
0x00002100, 0x00000007
	interrupts 0, overruns 0, feed 0, hfree 131072, sfree 65536  
[b:131072/4096/32|bs:65536/2048/32]
	channel flags=0x2100<BUSY,HAS_VCHAN>
	{hardware} -> feeder_root(0x00201000) -> feeder_format(0x00201000 ->  
0x00200010) -> feeder_mixer(0x00200010) -> {userland}
	pcm6:record:dsp6.r0[pcm6:virtual:dsp6.vr0]: spd 8000, fmt 0x00100008,  
flags 0x10000000, 0x00000000
	interrupts 0, overruns 0, feed 0, hfree 0, sfree 0 [b:0/0/0|bs:0/0/0]
	channel flags=0x10000000<VIRTUAL>
	{hardware} -> feeder_root(0x00000000) -> {userland}
pcm7: <HDSPe AIO [adat]> at io 0xfdff0000 irq 18 kld snd_hdspe  
(1p:1v/1r:1v)
	snddev flags=0x2e6<AUTOVCHAN,SOFTPCMVOL,BUSY,MPSAFE,REGISTERED,VPC>
	[pcm7:play:dsp7.p0]: spd 48000, fmt 0x00200010/0x00201000, flags  
0x00002100, 0x00000006
	interrupts 0, underruns 0, feed 0, ready 0  
[b:131072/4096/32|bs:65536/2048/32]
	channel flags=0x2100<BUSY,HAS_VCHAN>
	{userland} -> feeder_mixer(0x00200010) -> feeder_format(0x00200010 ->  
0x00201000) -> {hardware}
	pcm7:play:dsp7.p0[pcm7:virtual:dsp7.vp0]: spd 8000, fmt 0x00100008, flags  
0x10000000, 0x00000000
	interrupts 0, underruns 0, feed 0, ready 0 [b:0/0/0|bs:0/0/0]
	channel flags=0x10000000<VIRTUAL>
	{userland} -> feeder_root(0x00000000) -> {hardware}
	[pcm7:record:dsp7.r0]: spd 48000, fmt 0x00200010/0x00201000, flags  
0x00002100, 0x00000007
	interrupts 0, overruns 0, feed 0, hfree 131072, sfree 65536  
[b:131072/4096/32|bs:65536/2048/32]
	channel flags=0x2100<BUSY,HAS_VCHAN>
	{hardware} -> feeder_root(0x00201000) -> feeder_format(0x00201000 ->  
0x00200010) -> feeder_mixer(0x00200010) -> {userland}
	pcm7:record:dsp7.r0[pcm7:virtual:dsp7.vr0]: spd 8000, fmt 0x00100008,  
flags 0x10000000, 0x00000000
	interrupts 0, overruns 0, feed 0, hfree 0, sfree 0 [b:0/0/0|bs:0/0/0]
	channel flags=0x10000000<VIRTUAL>
	{hardware} -> feeder_root(0x00000000) -> {userland}



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?op.wrcysv2guwjkcr>