(use 'overtone.live)
would fail with the error:
*** ERROR: dlsym load err '/home/richard/dev/overtone/target/native/linux/x86_64/libscsynth.so: undefined symbol: load'
The problem was that JACK server was not starting correctly. To test this, typing
$> jackd -R -d alsa
would give the following error.
The netbook had multiple sound devices, and the default that was being chosen by JACK was at position 0. Listing the devices by typing
$> aplay -l
gave the following output:
**** List of PLAYBACK Hardware Devices ****
card 0: Generic [HD-Audio Generic], device 3: HDMI 0 [HDMI 0]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 1: SB [HDA ATI SB], device 0: STAC92xx Analog [STAC92xx Analog]
Subdevices: 1/1
Subdevice #0: subdevice #0
JACK started correctly when using the soundcard at position 1:
$> jackd -R -d alsa -d hw:1
Thus, I needed to reorder the soundcards so that the working one was loaded into position 0. This required knowing which modules the soundcards used. To do this I entered the following into the terminal:
$> sudo lshw -c multimedia
The output indicated that each soundcard was using the same module. In particular, each multimedia device had the line:
configuration: driver=snd_hda_intel latency=0
This means the module being used is 'snd-hda-intel'. So in order to distinguish between the soundcards, I needed to know IDs for each of them. To get these I typed the following at the terminal:
$> cat /proc/asound/card0/id
$> cat /proc/asound/card1/id
The output for each command was a single line giving the ID of the device. card0 had ID="Generic" and card1 had ID="SB".
Finally, I had all the information I needed. To change the ordering of the cards on loadup, I edited the file '/etc/modprobe.d/alsa-base.conf' to append the following two lines:
options snd-hda-intel id=SB index=0
options snd-hda-intel id=Generic index=1
This instructs the system to place the card with ID="SB" that uses the module snd-hda-intel at position 0. Similarly, the card with ID="Generic" using snd-hda-intel should be placed at position 1.
A system reboot is required to force the changes to take effect.
Now, rerunning the command
$> aplay -l
gives the following output:
**** List of PLAYBACK Hardware Devices ****
card 0: SB [HDA ATI SB], device 0: STAC92xx Analog [STAC92xx Analog]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 1: Generic [HD-Audio Generic], device 3: HDMI 0 [HDMI 0]
Subdevices: 1/1
Subdevice #0: subdevice #0
Which gives the required effect of reversing the order with which the soundcards were loaded.
The command
$> jackd -R -d alsa
now ran without any problems and so did Overtone!