:-) You're welcome :-)
As promised I would do a writeup of what you need to get your keyboard working in Slack 12.2, KDE4 (there is a significant difference, since KDE 3.x use aRts, which was my primary reason to get rid of KDE 3.5)
What you need (apart from the obvious):
- patience, chances are things won't work for you right out of the box
- I'll assume you have a working soundcard and get sounds otherwise out of Alsa (mp3, games, movies etc)
- An external keyboard. Myself I use an E-MU Xboard 61, which connects via USB.
- I'll assume the stock 2.6.27-smp kernel that comes with Slack 12.2
- Proper privileges (the user must be member of audio and plugdev groups)
- A Soft Synth; Myself I use TiMidity++; Get a nice soundfont as well (I got the big one from
www.personalcopy.com, it sounds good to me)
- Jack
- A recording program like Rosegarden is nice, but not really mandatory.
You just bought this nice keyboard and you plug it in, turn it on and press some keys... and omg... no sound! The horror! What is wrong?
Here's where our experience begins, and some kind of experience it will be!
Let's see if you have TiMidity running:
Code:
$ ps -ef | grep timidity
I have created a script in /etc/rc.d/ called rc.timidity in which I start it like this:
Code:
/usr/bin/timidity -iA -B2,8 -Os --volume=200
-iA means I use Alsa, -Os tells Timidity to output to the Alsa PCM device, and the --volume is to make things a bit more audible (without this sounds are really soft. If you boost that number much farther you'll notice bad sound performance eventually, tweak till you're satisfied)
Ok, so timidity is running but we still hear nothing!
Let's see if your device is actually seen when you plug it in (I noticed that if I plugged it in at boot time both the sound and the keyboard woudn't work. It appears that having the keyboard plugged in at boot time confuses alsa so it cannot determine which device is the default output device...)
something like this should come out:
Code:
usb 6-2: new full speed USB device using ohci_hcd and address 3
usb 6-2: configuration #1 chosen from 1 choice
usb 6-2: New USB device found, idVendor=041e, idProduct=3f06
usb 6-2: New USB device strings: Mfr=1, Product=2, SerialNumber=3
usb 6-2: Product: E-MU Xboard61
usb 6-2: Manufacturer: E-MU Systems, Inc.
usb 6-2: SerialNumber: E-MU-1E-3F00-07D60505-909F1-98
usbcore: registered new interface driver snd-usb-audio
At my system I see the device appearing at usb 6-2; You should see something similar, depending on your keyboard. Also notice the part I made
bold.
Ok, so now we know the device is seen by Linux, and Timidity is running... let's press some keys and listen to da music... Still no sound! Now what the heck?!?
The reason is not as bad as you may have feared... The device is "there" but your system probably just doesn't know what to do with the midi events that are sent. So we have to get those events to Timidity. Here's how we can do that:
Code:
$ aconnect -lo
client 14: 'Midi Through' [type=kernel]
0 'Midi Through Port-0'
client 20: 'E-MU Xboard61' [type=kernel]
0 'E-MU Xboard61 MIDI 1'
client 128: 'TiMidity' [type=user]
0 'TiMidity port 0 '
1 'TiMidity port 1 '
2 'TiMidity port 2 '
3 'TiMidity port 3 '
Here you see that the keyboard is client 20 and Timidity is using port 128. Splendid! Now we only have to connect the two together:
Code:
$ aconnect 20:0 128:0
It's that simple, really. Here's what you get:
Code:
aconnect -lo
client 14: 'Midi Through' [type=kernel]
0 'Midi Through Port-0'
client 20: 'E-MU Xboard61' [type=kernel]
0 'E-MU Xboard61 MIDI 1'
Connecting To: 128:0
client 128: 'TiMidity' [type=user]
0 'TiMidity port 0 '
Connected From: 20:0
1 'TiMidity port 1 '
2 'TiMidity port 2 '
3 'TiMidity port 3 '
You see that the keyboard is now connected to Timidity.
When you press keys on your keyboard you will probably hear music! But why stop there? You want your playings recorded so you can listen back and maybe even produce nice sheets of your musings. For this I use Rosegarden. For Rosegarden jack is required, and a handy tool to control jack with is qjackctl. What jack exactly does is a tad unclear to me, but since you'll need it, we'll use it.
Eventually that was about all that was needed; Hope you'll enjoy!
Feedback welcome!