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:

http://apps.linuxaudio.org/wiki/jack_latency_tests

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@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@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-somehow-tp97402.html
Sent from the linux-audio-user mailing list archive at Nabble.com.
_______________________________________________
Linux-audio-user mailing list
Linux-audio-user@lists.linuxaudio.org
http://lists.linuxaudio.org/listinfo/linux-audio-user