snd_uaudio monitor recording

Marcel Bonnet marcelbonnet at gmail.com
Fri Jul 28 13:55:05 UTC 2017


On 26 July 2017 at 13:37, Hans Petter Selasky <hps at selasky.org> wrote:
> On 07/26/17 18:18, Marcel Bonnet wrote:
>>
>> On 25 July 2017 at 14:18, Hans Petter Selasky <hps at selasky.org> wrote:
>>>
>>>
>>> On 07/25/17 17:00, Marcel Bonnet wrote:
>>>>
>>>>
>>>> Hi.
>>>>
>>>> I'd like to record to a file whatever the sound card is actually
>>>> playing,
>>>> essentially when I am not using jackd server.
>>>> I don't know if I just did not figure how to do it, or if depends on a
>>>> new
>>>> driver functionality ?
>>>> Thanks in advance,
>>>>
>>>
>>> You'd need to use virtual_oss to do that.
>>
>> Thanks. But, I didn't understand how to use it. Can you help me, please?
>>
>> I tried an example from the man page (I changed the sample rate,
>> because my USB Fast Track Pro is set to 44100 Hz):
>>
>> [@machine tmp]$  virtual_oss -C 2 -c 2 -r 44100 -b 16 -s 1024 -f
>> /dev/dsp3.0 -w dsp.wav -d dsp
>>                           hw.snd.basename_clone: 1
>> sysctl: hw.snd.basename_clone=0: Operation not permitted
>> virtual_oss: Could not create CUSE DSP device
>>
>> So, I tried with sudo:
>>
>> [@machine tmp]$  sudo  virtual_oss -C 2 -c 2 -r 44100 -b 16 -s 1024 -f
>> /dev/dsp3.0 -w dsp.wav -d dsp
>> hw.snd.basename_clone: 1 -> 0
>> virtual_oss: Could not open DSP device '/dev/dsp3.0': Device busy
>> virtual_oss: Could not open DSP device '/dev/dsp3.0': Device busy
>> virtual_oss: Could not open DSP device '/dev/dsp3.0': Device busy
>> virtual_oss: Could not open DSP device '/dev/dsp3.0': Device busy
>> virtual_oss: Could not open DSP device '/dev/dsp3.0': Device busy
>> virtual_oss: Could not open DSP device '/dev/dsp3.0': Device busy
>> virtual_oss: Could not open DSP device '/dev/dsp3.0': Device busy
>> virtual_oss: Could not open DSP device '/dev/dsp3.0': Device busy
>> virtual_oss: Could not open DSP device '/dev/dsp3.0': Device busy
>> virtual_oss: Could not open DSP device '/dev/dsp3.0': Device busy
>> virtual_oss: Could not open DSP device '/dev/dsp3.0': Device busy
>> virtual_oss: Could not open DSP device '/dev/dsp3.0': Device busy
>> virtual_oss: Could not open DSP device '/dev/dsp3.0': Device busy
>> virtual_oss: Could not open DSP device '/dev/dsp3.0': Device busy
>>
>> I never know why I have so much /dev/dsp3.x units. When using jack
>> server, I always attach to the first one (3.0) and it is ok. I tried
>> the other 3.x units, with no success.
>>
>> Thanks in advance.
>>
>> My environment:
>>
>> [@machine tmp]$  ls /dev/dsp* ; cat /dev/sndstat ; sysctl
>> hw.snd.default_unit
>>
>> /dev/dsp0.1  /dev/dsp1.1  /dev/dsp2.1  /dev/dsp3.0  /dev/dsp3.1
>> /dev/dsp3.2  /dev/dsp3.3
>>
>> FreeBSD Audio Driver (64bit 2009061500/amd64)
>> Installed devices:
>> pcm0: <Realtek ALC269 (Analog)> on hdaa0  (1p:2v/1r:1v)
>> pcm1: <Realtek ALC269 (Analog)> on hdaa0  (1p:1v/1r:1v)
>> pcm2: <Intel Panther Point (HDMI/DP 8ch)> on hdaa1  (1p:1v/0r:0v)
>> pcm3: <USB audio> at ? kld snd_uaudio (1p:2v/1r:1v) default
>> No devices installed from userspace.
>>
>> hw.snd.default_unit: 3
>>
>> [@machine tmp]$  sysctl dev.pcm.3
>> dev.pcm.3.feedback_rate: 0
>> dev.pcm.3.bitperfect: 0
>> dev.pcm.3.buffersize: 0
>> dev.pcm.3.rec.vchanformat: s16le:2.0
>> dev.pcm.3.rec.vchanrate: 44100
>> dev.pcm.3.rec.vchanmode: fixed
>> dev.pcm.3.rec.vchans: 1
>> dev.pcm.3.play.vchanformat: s16le:2.0
>> dev.pcm.3.play.vchanrate: 44100
>> dev.pcm.3.play.vchanmode: fixed
>> dev.pcm.3.play.vchans: 2
>> dev.pcm.3.hwvol_mixer: vol
>> dev.pcm.3.hwvol_step: 5
>> dev.pcm.3.%parent: uaudio0
>> dev.pcm.3.%pnpinfo:
>> dev.pcm.3.%location:
>> dev.pcm.3.%driver: pcm
>> dev.pcm.3.%desc: USB audio
>>>
>>>
>>> --HPS
>>
>>
>
> Hi,
>
> Try this:
>
> sudo virtual_oss -S -C 2 -c 2 -r 44100 -b 16 -s 1024 \
>   -f /dev/dsp3 -d dsp -w dsp.rec.wav -l dsp.rec
>
>
> Then either:
>
> dd if=/dev/dsp.rec.wav of=myfile.wav bs=1024
>
> Or use a program like audacity (not sox, due to reading one and one sample)
> to record from /dev/dsp.rec .
>
> --HPS
>

Thanks, Hans!
I ran virtual_oss as above:

1. when I'm playing with mplayer, it was possible to capture the
sound. The same works if I connect jack server to the new device. Very
cool!
2. Browsers:
2.1 But, when I started YouTube (chromium browser), virtual_oss
stopped with a message: Floating point exception . After crash, I had
no sound anymore. I had to re run virtual_oss to get system sound
again.
2.2 No crashes with Firefox, except that no sound was captured,
although I was hearing what I was playing (1. youtube ; 2. a mp3 file
from local system played with the browser).

Can virtual_oss capture the sound from thoses browsers ? They were
compiled with ALSA lib, is that the cause of a crash for Chromium and
no sound captured when playing youtube from Firefox?

chromium-57.0.2987.133
Options        :
        ALSA           : on
        CODECS         : on
        DEBUG          : off
        DRIVER         : on
        GCONF          : on
        KERBEROS       : on
        PULSEAUDIO     : off
        TEST           : off

firefox-52.0.2,1
Options        :
        ALSA           : on
        BUNDLED_CAIRO  : on
        CANBERRA       : off
        DBUS           : on
        DEBUG          : off
        DTRACE         : on
        FFMPEG         : on
        GCONF          : off
        GNOMEUI        : off
        GTK2           : off
        GTK3           : on
        INTEGER_SAMPLES: off
        LIBPROXY       : off
        OPTIMIZED_CFLAGS: on
        PGO            : off
        PROFILE        : off
        PULSEAUDIO     : on
        RUST           : on
        SNDIO          : off
        TEST           : off

Thanks, again!
-- 
Marcel Bonnet


More information about the freebsd-multimedia mailing list