[PlanetCCRMA] Experiences with FC2, Audigy2ZS, and Keystation Pro 88 (advice welcome!)

David O'Toole dto@irrationalgames.com
Mon Dec 13 22:51:01 2004


Thanks Fernando, 

this was very helpful. The keystation 88 pro now seems to be working
properly, with the raw midi recognized. So far every little knob and
fader and button and sensor works great with Pd!

I added "planetedge" to my sources.list, and upgraded to a newer
kernel:

$ uname -a 

Linux home 2.6.8.1-1.520.1vP9.ll.rhfc2.ccrma #1 Tue Aug 24 12:03:26 PDT 2004 i686 i686 i386 GNU/Linux

(There's also a kernel that has "1vP0" instead of "1vP9" but I haven't
tried it yet.) 

This has definitely done the trick. 


some snippets of the scripts I've been using... these will have to be
modified but I hope it will help others to see them. . 

---------------------------------------------

#!/bin/bash
#
# This script should be run (as root) after you turn on the Keystation
# Pro 88 and it shows up in /proc/asound/devices as device #1.
#
# I should eventually edit the ALSA config file.  
#
# The following command line is useful for troubleshooting and setup
# in case you can't get that to work.
#
# watch "cat /proc/asound/cards /proc/asound/devices; aconnect -lio"
#

# First create a virtual midi device; this is a workaround for PD but
# could be useful.

/sbin/modprobe snd-virmidi snd_index=2

# Now connect the K88 to the Virtual MIDI input (will these numbers
# always be right?)

aconnect 72:0 80:0

----------------------------------------------------------------------

#!/bin/bash
#
# This script starts up Pure Data (hopefully) in low-latency mode. 
#
#

# set HDD settings and start Jack

/sbin/hdparm -d1 -u1 -m16 -c3 /dev/hda;
jackd --realtime -d alsa -r 44100 &

# start Pure Data 

pd -jack -mididev 13 &





Fernando Lopez-Lezcano <nando@ccrma.Stanford.EDU> writes:

> On Tue, 2004-12-07 at 18:29, David O'Toole wrote:
>> Sometimes I can do the following:
>> 
>> 1. Boot up with the keyboard connected via USB, but not powered on
>> 2. Start watching /proc/asound/cards and /proc/asound/devices
>> 3. Turn on the keyboard's power switch
>> 4. Watch "Keystation Pro 88" pop up instantly as Alsa Card 1 in /proc/asound/cards
>> 5. Watch the Keystation's "ctl" and "raw midi" recognized in /proc/asound/devices
>> 6. Create a snd-virmidi device for Pd to read from
>> 7. Use aconnect to route the keyboard's MIDI to virmidi
>> 8. Open Pd and use the keyboard to control Pd
>
> Wow, very nice...
>
>> It's quite exciting. All the knobs work, and you can tie them into any
>> control onscreen! Here is the output of my watch command, while the
>> keyboard is working with Pd:
>> 
>> -----------------------------------------------------------------------------------------
>> Every 2s: cat /proc/asound/cards /proc/asound/devices; aconnect -lio 
>>  
>> 0 [Audigy2        ]: Audigy2 - Sound Blaster Audigy2
>>                      Sound Blaster Audigy2 (rev.4) at 0xc000, irq 5
>> 1 [K88            ]: USB-Audio - Keystation Pro 88
>>                      Evolution Electronics Ltd. Keystation Pro 88 at usb-0000:00:1d.2-1, full
>>  speed
>> 2 [VirMIDI        ]: VirMIDI - VirMIDI
>>                      Virtual MIDI Card 1
>>   0: [0- 0]: ctl
>>   4: [0- 0]: hardware dependent
>>   9: [0- 1]: raw midi
>>   8: [0- 0]: raw midi
>>  19: [0- 3]: digital audio playback
>>  26: [0- 2]: digital audio capture
>>  25: [0- 1]: digital audio capture
>>  16: [0- 0]: digital audio playback
>>  24: [0- 0]: digital audio capture
>>   1:       : sequencer
>>   6: [0- 2]: hardware dependent
>>  10: [0- 2]: raw midi
>>  11: [0- 3]: raw midi
>>  33:       : timer
>>  32: [1- 0]: ctl
>>  40: [1- 0]: raw midi
>>  64: [2- 0]: ctl
>>  75: [2- 3]: raw midi
>>  74: [2- 2]: raw midi
>>  73: [2- 1]: raw midi
>>  72: [2- 0]: raw midi
>> client 0: 'System' [type=kernel]
>>     0 'Timer           '
>>     1 'Announce        '
>>         Connecting To: 63:0
>> client 64: 'Audigy MPU-401 (UART) - Rawmidi 0' [type=kernel]
>>     0 'Audigy MPU-401 (UART)'
>>    32 'Audigy MPU-401 #2'
>> client 65: 'Emu10k1 WaveTable' [type=kernel]
>>     0 'Emu10k1 Port 0  '
>>     1 'Emu10k1 Port 1  '
>>     2 'Emu10k1 Port 2  '
>>     3 'Emu10k1 Port 3  '
>> client 72: 'Keystation Pro 88 - Rawmidi 1' [type=kernel]
>>     0 'Keystation Pro 88 MIDI 1'
>>         Connecting To: 80:0
>>     1 'Keystation Pro 88 MIDI 2'
>> client 80: 'Virtual Raw MIDI 2-0' [type=kernel]
>>     0 'VirMIDI 2-0     '
>>         Connected From: 72:0
>> client 81: 'Virtual Raw MIDI 2-1' [type=kernel]
>>     0 'VirMIDI 2-1     '
>> client 82: 'Virtual Raw MIDI 2-2' [type=kernel]
>>     0 'VirMIDI 2-2     '
>> client 83: 'Virtual Raw MIDI 2-3' [type=kernel]
>>  
>> -----------------------------------------------------------------------------------------
>> 
>> But it doesn't always work; sometimes the keyboard is recognized, but
>> /proc/asound/devices only lists the "ctl" port and not the "raw
>> midi". That stops the whole thing from working, but no amount of
>> fiddling (rmmod/modprobe, turning the keyboard off and then on again)
>> will get the keyboard to be recognized again until you reboot. 
>> 
>> Furthermore, any process that touches USB after that will hang, and
>> you can't kill -9 them even as root! Their status in the process
>> listing is "D" which means "uninterruptible I/O".
>
> Sounds like you are hitting a kernel oops (an internal error that is
> detected and stops anything else from using that subsystem - and
> sometimes the whole computer). 
>
> Scan your /var/log/messages file for "Ooops" and a big register dump and
> a trace of where the problem happened. Not that we can do much about it.
> You could try to use one of the more experimental low latency kernels in
> the PlanetEdge repository. 
>
> If an Ooops is what is happening, then at that point the only thing that
> can fix it is a reboot. 
>
> -- Fernando
>
>
>

-- 
David O'Toole
Irrational Games
617.269.0424 x335
dto@irrationalgames.com