Hey Paul;
Ah, so you're a maintainer of jack! Cool.
This is what leads me to believe I have latency going on:
*** ERROR: open directory failed
'/home/bananapi/.local/share/SuperCollider/synthdefs'
JackDriver: client name is 'SuperCollider'
SC_AudioDriver: sample rate = 44100.000000, driver's block size = 1024
SuperCollider 3 server ready.
Zeroconf: failed to create client: Daemon not running
*JackDriver: max output latency 23.2 ms**
*FAILURE IN SERVER /g_freeAll Group 1 not found
According to the article linked below, there is some kind of problem
with usb devices, which is what I have, adding an extra period or 24ms,
whichever is smaller. Looks familiar. Period is 1024/44100, or 23.2
ms, which is what scsynth is reporting in jack mode, like so:
As to whether that is real or not I don't know, but I know there is
latency in my system. Jack still beats portaudio though, since
portaudio has to use hw:0,0 with its 70ms latency.
Ben
On 10/04/2015 04:47 PM, Paul Davis wrote:
Oh, one other thing. Using PortAudio will *not* reduce
latency. JACK
does not add any latency.
On Sun, Oct 4, 2015 at 6:46 PM, Paul Davis <paul(a)linuxaudiosystems.com> wrote:
> This can be hard to do. Why can't you tell software to use hw:1 ?
>
> Most system BIOS setup utilities can be used to disable onboard sound.
> Getting Linux to reorder them is also possible but can be complex
> depending on the types of devices (PCI, USB etc)
>
> On Sun, Oct 4, 2015 at 2:57 PM, ansible <bburdette(a)gmail.com> wrote:
>> I compiled supercollider to play through portaudio rather than jack, as it
>> usually does, in an attempt to reduce latency and hassle. It works for
>> audio device hw:0,0, but it doesn't work for hw:1,0. My problem is that on
>> my device hw:0,0 has horrible latency - 70ms - while hw:1,0 has 9ms latency,
>> much better.
>>
>> So what I'd like to do is reorder the audio devices, or disable the onboard
>> audio, and have my current hw:1,0 be the hw:0,0 device. Hopefully then
>> supercollider will work with it and I'll have those coveted low latency
>> numbers. This is on arch linux on a bananapi armv7 computer.
>>
>> So here's the output from aplay -l:
>>
>> ```
>> [bananapi@lemaker ~]$ aplay -l
>> **** List of PLAYBACK Hardware Devices ****
>> card 0: sunxicodec [sunxi-CODEC], device 0: M1 PCM [sunxi PCM]
>> Subdevices: 1/1
>> Subdevice #0: subdevice #0
>> card 1: Pro [Sound Blaster X-Fi Go! Pro], device 0: USB Audio [USB Audio]
>> Subdevices: 1/1
>> Subdevice #0: subdevice #0
>> [bananapi@lemaker ~]$
>> ```
>>
>> According to the [alsa wiki][1], I should be able to reorder the devices
>> using a .conf file. See 'set the default sound card'. It gives the
example
>> of this:
>>
>> ```
>> /etc/modprobe.d/alsa-base.conf
>>
>> options snd_mia index=0
>> options snd_hda_intel index=1
>> ```
>>
>> Ok so I made a file like that, but I only know the name of the usb driver,
>> not the onboard sound driver. lsmod reveals the following:
>>
>> ```
>> [bananapi@lemaker ~]$ lsmod
>> Module Size Used by
>> snd_usb_audio 96225 0
>> snd_hwdep 5757 1 snd_usb_audio
>> snd_usbmidi_lib 18033 1 snd_usb_audio
>> cdc_acm 20518 0
>> spidev 6217 0
>> spi_sun7i 17802 0
>> sunxi_cedar_mod 9808 0
>> mali_drm 2608 0
>> drm 209226 1 mali_drm
>> mali 111427 0
>> disp_ump 861 0
>> ump 52415 2 mali,disp_ump
>> ap6210 584133 0
>> ip_tables 12937 0
>> x_tables 17443 1 ip_tables
>> ```
>>
>> If I do "modprobe -r snd_usb_audio", then snd_hwdep and snd_usbmidi_lib
both
>> disappear too, so they are all for the same device I think. That leaves
>> nothing for the driver name for the onboard audio.
>>
>> The alsa wiki says that the driver names should be in "cat
>> /proc/asound/modules" but I don't have that directory on my system.
>>
>> So anyway I made an alsa-base.conf file as directed, which looks like this:
>>
>> ```
>> [bananapi@lemaker ~]$ cat /etc/modprobe.d/alsa-base.conf
>> options snd_usb_audio index=0
>> options sunxicodec index=1
>> [bananapi@lemaker ~]$
>> ```
>>
>> After creating that file and rebooting aplay just returns this.
>>
>> ```
>> [bananapi@lemaker ~]$ aplay -l
>> **** List of PLAYBACK Hardware Devices ****
>> card 0: sunxicodec [sunxi-CODEC], device 0: M1 PCM [sunxi PCM]
>> Subdevices: 1/1
>> Subdevice #0: subdevice #0
>> [bananapi@lemaker ~]$
>> ```
>>
>> So this alsa-base.conf has the effect of making only the onboard audio
>> available instead of reordering. I most likely have the 'sunxicodec'
name
>> wrong for the onboard audio, I'm just guessing at that, and have no idea
>> what the driver name for that is, if there even is one. I'm kind of
>> suspecting the audio device is part of a monolithic driver for the whole
>> system-on-chip, is that possible?
>>
>> [1]:
>>
https://wiki.archlinux.org/index.php/Advanced_Linux_Sound_Architecture
>>
>>
>>
>> --
>> View this message in context:
http://linux-audio.4202.n7.nabble.com/make-alsa-device-hw-1-0-be-hw-0-0-som…
>> Sent from the linux-audio-user mailing list archive at
Nabble.com.
>> _______________________________________________
>> Linux-audio-user mailing list
>> Linux-audio-user(a)lists.linuxaudio.org
>>
http://lists.linuxaudio.org/listinfo/linux-audio-user