LinuxQuestions.org

LinuxQuestions.org (/questions/)
-   Slackware (http://www.linuxquestions.org/questions/slackware-14/)
-   -   Slack 12.2 midi keyboard, at a loss (http://www.linuxquestions.org/questions/slackware-14/slack-12-2-midi-keyboard-at-a-loss-708472/)

Ramurd 03-01-2009 07:22 PM

(SOLVED) Slack 12.2 midi keyboard, at a loss
 
Hello to all,

I'm a bit at a loss, and it shames me deeply ;-) Somewhere I'm forgetting something and I just can't put my finger on it.

I have this keyboard (a proteus xboard 61) which I connect with USB. I installed jack and qjackctl, timidity++ and rosegarden on top of what Slack ships with. I don't think I compiled my kernel yet, so it's still the default 2.6.27.7-smp.

I start timidity by default, for which I created a /etc/rc.d/rc.timidity which starts timidity like this: /usr/bin/timidity -iA -B2,8 &
I can play a midifile with timidity and can even open a midifile with rosegarden and play it. (just as a test if the output is configured correctly).

When I plug in the keyboard it doesn't show up in lsusb; however, I see the thing in qjackctl and also in rosegarden.

That's about as far as I get: when I try to record with the thing the events do not seem to "arrive". I could be wrong in my timidity.cfg (doubt that: for one I get sound, for two it simply refers to freepats.cfg which just imports the default pats that come with timidity) or in the jack configuration (very possible), or rosegarden (also possible, but tried too many options to make it logical) or I can be missing something yet... afaik the keyboard sends signals which are picked up by jack which passes it on to timidity to turn stuff into sounds.

I had it working in the past, so I should be possible to redo what I did back then; but unfortunately I can't find what... Hopefully here are some wise people that can slap me on my wrist and tell me what I'm doing wrong yet...

Worth noticing is that I have had rosegarden receiving input from the keyboard, but then nothing was audible. I think that was the point that I started messing up and in a bright moment realized I needed a softsynth, for which I chose TiMidiTy.

Drakeo 03-01-2009 08:02 PM

if you here sound that is good. open a terminal and type alsa mixer and make sure the input device is enabled. all the programs run off the alsa. Now I will tell you if you deep into music I am a slack where Nut but I built a planet ccrma from fc9. For one of the profeeors here on campus. so check this out. this is very simple use there kernel and it will suport everything this is the place where all your programs were written.

Ramurd 03-02-2009 01:45 AM

Thanks for the reply, checking out alsa mixer is a good one, I did it rightaway and to my amazement alsamixer could not find any mixer elements. That was logical when I checked the asound.names by hand and noticed that the xboard is device hw:0 and the soundcard hw:1; Then checking the mixer elements on hw:1 the inputs seemed OK.

That there are no mixer elements for the xboard is something worth investigating, along with ccrma: I'll have to make some time to see if that's something I'll need.

Ramurd 03-02-2009 01:56 AM

sorry for the double ;-) But I checked ccrma and followed the link to www.audioslack.com... Now I'm deep enough into music to know a few things, but my Greek is way off, at least the letters look greek to me, but could be anything else instead as well.

wigry 03-02-2009 02:14 AM

Its russian

Here's the google translated page:
http://translate.google.com/translat...istory_state0=

Ramurd 03-02-2009 05:32 PM

ok, thanks and please ignore my ignorance... still seems to lead to nowhere; at least regarding this subject. I'll let that rest for now, until I create some time for literature :-D

Back to the original question, while thinking a bit I came to the conclusion that some (part) of a program does not "see" the keyboard, or probably better said: not correctly. The question arises which application should see the keyboard from (a) hardware or (b) another program. It seems to me that jack should see the keyboard on a hardware level, which it seems to do, then should timidity see the keyboard on a hardware level or a software level (from jack) and is there something wrong with the way I started either timidity or jack, which at the moment is started like this: /usr/bin/jackd -v -R -m -dalsa -r44100 -p1024 -n2 -D -Chw:0 -Phw:1,1 -Xraw -H -M

wjaguar 03-03-2009 12:43 PM

Quote:

Originally Posted by Ramurd (Post 3462904)
still seems to lead to nowhere; at least regarding this subject.

Domain squatters got the site back in 2005. WebArchive still has its previous contents (as of February 11, 2005), but it is useless these days anyway, for all the stuff there is for Slackware 10 and 2.4 kernels.

beiller 03-03-2009 09:11 PM

do you have Qt jack control? Go into connect and check the midi tab. Maybe you can connect it there to rosegarden or whatever is running? I want to get a MIDI controller soon let me know how it goes.

Drakeo 03-03-2009 10:29 PM

open a terminal as root type lsmod and post it and type dmesg and post it make sure the device is plugged in. If it is a usb type lsusb post it.

Ramurd 03-04-2009 12:21 PM

dmesg:
Code:

dmesg | tail
eth2: no IPv6 routers present
hda-intel: Invalid position buffer, using LPIB read method instead.
usb 6-2: new full speed USB device using ohci_hcd and address 2
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

lsusb:
Code:

lsusb
Bus 007 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 003 Device 002: ID 046d:c311 Logitech, Inc.
Bus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 006 Device 002: ID 041e:3f06 Creative Technology, Ltd
Bus 006 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 005 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 004 Device 002: ID 046d:c404 Logitech, Inc. TrackMan Wheel
Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub

lsmod:
Code:

lsmod
Module                  Size  Used by
snd_seq_midi          10144  0
snd_usb_audio          82272  3
snd_usb_lib            19200  1 snd_usb_audio
snd_rawmidi            24608  4 snd_seq_midi,snd_usb_lib
snd_seq_dummy          6788  1
snd_seq_oss            33536  0
snd_seq_midi_event    11136  2 snd_seq_midi,snd_seq_oss
snd_seq                52592  11 snd_seq_midi,snd_seq_dummy,snd_seq_oss,snd_seq_midi_event
snd_seq_device        11148  5 snd_seq_midi,snd_rawmidi,snd_seq_dummy,snd_seq_oss,snd_seq
snd_pcm_oss            40608  0
snd_mixer_oss          18304  1 snd_pcm_oss
ipv6                  253476  16
pcmcia                38316  0
pcmcia_core            39060  1 pcmcia
lp                    13572  0
fuse                  54684  3
nvidia              6904596  36
snd_hda_intel        368268  8
thermal                19612  0
i2c_piix4              11920  0
processor              37416  1 thermal
thermal_sys            15912  2 thermal,processor
ppdev                  11396  0
snd_pcm                76676  6 snd_usb_audio,snd_pcm_oss,snd_hda_intel
psmouse                40720  0
parport_pc            28708  1
r8169                  31364  0
parport                38252  3 lp,ppdev,parport_pc
mii                    9216  1 r8169
sg                    30516  0
snd_timer              24584  4 snd_seq,snd_pcm
agpgart                37064  1 nvidia
serio_raw              9348  0
snd_page_alloc        12168  2 snd_hda_intel,snd_pcm
hwmon                  6684  1 thermal_sys
snd_hwdep              11012  2 snd_usb_audio,snd_hda_intel
snd                    57380  28 snd_usb_audio,snd_rawmidi,snd_seq_oss,snd_seq,snd_seq_device,snd_pcm_oss,snd_mixer_oss,snd_hda_intel,snd_pcm,snd_timer,snd_hwdep
evdev                  13344  4
button                10128  0
wmi                    10408  0
soundcore              11232  1 snd

more info on the device:
Code:

root@slacker:/proc# cd asound
root@slacker:/proc/asound# ls
SB@  Xboard61@  card0/  card1/  cards  devices  hwdep  modules  oss/  pcm  seq/  timers  version
root@slacker:/proc/asound# ls -l Xboard61
lrwxrwxrwx 1 root root 5 2009-03-04 19:09 Xboard61 -> card1/
root@slacker:/proc/asound# ls -l card1/
total 0
-r--r--r-- 1 root root 0 2009-03-04 19:09 id
-r--r--r-- 1 root root 0 2009-03-04 19:09 midi0
-rw-r--r-- 1 root root 0 2009-03-04 19:09 oss_mixer
-r--r--r-- 1 root root 0 2009-03-04 19:09 usbbus
-r--r--r-- 1 root root 0 2009-03-04 19:09 usbid
root@slacker:/proc/asound# cat card1/usbid
041e:3f06

Good point trying to connect the keyboard to the rosegarden in qjackctl; Unfortunately it does not seem to be allowed. For further debugging purposes I'll post my /etc/asound.names and /etc/asound.conf

Code:

root@slacker:/proc/asound# cat /etc/asound.names
ctl {
        alsactl1 {
                name hw:0
                comment 'Physical Device - E-MU Systems, Inc. E-MU Xboard61 at usb-0000:00:13.1-2, full speed'
        }
        alsactl2 {
                name hw:1
                comment 'Physical Device - HDA ATI SB at 0xfe024000 irq 16'
        }
}
pcm {
        alsactl1 {
                name default:1
                comment 'Abstract Device - Default Device (Duplex)'
        }
        alsactl2 {
                name plug:default:1
                comment 'Abstract Device With Conversions - Default Device (Duplex)'
        }
        alsactl3 {
                name front:1
                comment 'Abstract Device - Front Speakers (Duplex)'
        }
        alsactl4 {
                name plug:front:1
                comment 'Abstract Device With Conversions - Front Speakers (Duplex)'
        }
        alsactl5 {
                name 'hw:1,0'
                comment 'Physical Device - ALC885 Analog (Duplex)'
        }
        alsactl6 {
                name 'plughw:1,0'
                comment 'Physical Device With Conversions - ALC885 Analog (Duplex)'
        }
        alsactl7 {
                name 'hw:1,1'
                comment 'Physical Device - ALC885 Digital (Duplex)'
        }
        alsactl8 {
                name 'plughw:1,1'
                comment 'Physical Device With Conversions - ALC885 Digital (Duplex)'
        }
        alsactl9 {
                name 'hw:1,2'
                comment 'Physical Device - ALC885 Analog (Capture)'
        }
        alsactl10 {
                name 'plughw:1,2'
                comment 'Physical Device With Conversions - ALC885 Analog (Capture)'
        }
        alsactl11 {
                name surround40:1
                comment 'Abstract Device - Front and Rear Speakers (Duplex)'
        }
        alsactl12 {
                name plug:surround40:1
                comment 'Abstract Device With Conversions - Front and Rear Speakers (Duplex)'
        }
        alsactl13 {
                name surround51:1
                comment 'Abstract Device - Front, Rear, Center and Woofer (Duplex)'
        }
        alsactl14 {
                name plug:surround51:1
                comment 'Abstract Device With Conversions - Front, Rear, Center and Woofer (Duplex)'
        }
        alsactl15 {
                name surround71:1
                comment 'Abstract Device - Front, Rear, Side, Center and Woofer (Duplex)'
        }
        alsactl16 {
                name plug:surround71:1
                comment 'Abstract Device With Conversions - Front, Rear, Side, Center and Woofer (Duplex)'
        }
        alsactl17 {
                name spdif:1
                comment 'Abstract Device - S/PDIF (IEC958) Optical or Coaxial Wire (Duplex)'
        }
        alsactl18 {
                name plug:spdif:1
                comment 'Abstract Device With Conversions - S/PDIF (IEC958) Optical or Coaxial Wire (Duplex)'
        }
}
rawmidi {
        alsactl1 {
                name default
                comment 'Abstract Device - Default Device (Duplex)'
        }
        alsactl2 {
                name 'hw:0,0,0'
                comment 'Physical Device - E-MU Xboard61 MIDI 1 (Duplex)'
        }
        alsactl3 {
                name virtual
                comment 'Virtual Device - Sequencer (Duplex)'
        }
        alsactl4 {
                name 'virtual:MERGE=0'
                comment 'Virtual Device - Sequencer (No Merge) (Duplex)'
        }
}
timer {
        alsactl1 {
                name 'hw:CLASS=1,SCLASS=0,CARD=-1,DEV=0,SUBDEV=0'
                comment 'Physical Device - system timer'
        }
}
seq {
        alsactl1 {
                name default
                comment 'Default Device - Sequencer (Duplex)'
        }
        alsactl2 {
                name hw
                comment 'Physical Device - Sequencer (Duplex)'
        }
}

Code:

root@slacker:/proc/asound# cat /etc/asound.conf
pcm.headset {
        type bluetooth
}

ctl.headset {
        type bluetooth
}

pcm.jackplug {
        type plug
        slave { pcm "jack" }
}

pcm.jack {
        type jack
        playback_ports {
                0 alsa_pcm:playback_1
                1 alsa_pcm:playback_2
        }
        capture_ports {
                0 alsa_pcm:capture_1
                1 alsa_pcm:capture_2
        }
}

While at it, why not post the patchbay.xml I have atm:
Code:

root@slacker:/home/midi# cat patchbay.xml
<!DOCTYPE patchbay>
<patchbay version="0.3.4" name="patchbay" >
 <output-sockets>
  <socket exclusive="off" client="Midi Through" type="midi" name="Output Socket 1" >
  <plug>Midi Through Port-0</plug>
  </socket>
  <socket exclusive="off" client="system" type="audio" name="Output Socket 5" >
  <plug>capture_1</plug>
  <plug>capture_2</plug>
  </socket>
  <socket exclusive="off" client="system" type="jack-midi" name="Output Socket 6" >
  <plug>midi_capture_1</plug>
  </socket>
  <socket exclusive="off" client="rosegarden" type="midi" name="Output Socket 7" >
  <plug>sync out</plug>
  <plug>external controller</plug>
  <plug>out 1 - General MIDI Device</plug>
  <plug>out 2 - MIDI software device 2</plug>
  <plug>out 3 - MIDI software device 3</plug>
  <plug>out 4 - MIDI software device 4</plug>
  <plug>out 5 - MIDI external device</plug>
  <plug>out 6 - MIDI output system device</plug>
  </socket>
  <socket exclusive="off" client="system" type="jack-midi" name="Output Socket 2" >
  <plug>midi_capture_1</plug>
  </socket>
  <socket exclusive="off" client="system" type="jack-midi" name="Output Socket 3" >
  <plug>midi_capture_1</plug>
  </socket>
  <socket exclusive="off" client="E-MU Xboard61" type="midi" name="Output Socket 4" >
  <plug>E-MU Xboard61 MIDI 1</plug>
  </socket>
 </output-sockets>
 <input-sockets>
  <socket exclusive="off" client="system" type="jack-midi" name="Input Socket 7" >
  <plug>midi_playback_1</plug>
  </socket>
  <socket exclusive="off" client="rosegarden" type="midi" name="Input Socket 8" >
  <plug>record in</plug>
  <plug>external controller</plug>
  </socket>
  <socket exclusive="off" client="system" type="audio" name="Input Socket 1" >
  <plug>playback_1</plug>
  <plug>playback_2</plug>
  </socket>
  <socket exclusive="off" client="TiMidity" type="midi" name="Input Socket 2" >
  <plug>TiMidity port 0</plug>
  <plug>TiMidity port 1</plug>
  <plug>TiMidity port 2</plug>
  <plug>TiMidity port 3</plug>
  </socket>
  <socket exclusive="off" client="system" type="jack-midi" name="Input Socket 3" >
  <plug>midi_playback_1</plug>
  </socket>
  <socket exclusive="off" client="system" type="jack-midi" name="Input Socket 4" >
  <plug>midi_playback_1</plug>
  </socket>
  <socket exclusive="off" client="system" type="jack-midi" name="Input Socket 5" >
  <plug>midi_playback_1</plug>
  </socket>
  <socket exclusive="off" client="E-MU Xboard61" type="midi" name="Input Socket 6" >
  <plug>E-MU Xboard61 MIDI 1</plug>
  </socket>
 </input-sockets>
 <slots/>
 <cables>
  <cable output="Output Socket 1" input="Input Socket 2" />
  <cable output="Output Socket 2" input="Input Socket 3" />
 </cables>
</patchbay>

Hope this helps :-)

Ramurd 03-04-2009 12:30 PM

Apologies for the double post, but it suddenly occurred to me that I had it running in the past with KDE 3.5; Due my disliking the aRTS daemon I made the early switch to KDE 4.2. Since this is very sound related, it may just be the thing and reason I'm having trouble. I realized this, since the keyboard is showing up in qjackctl in the Alsa tab, instead of the Midi tab.

DavidHindman 03-04-2009 01:28 PM

In console mode there is a utility called aseqdump which might help with a diagnosis. aseqdump --port nn:n will print midi inputs on the console as they are received from the keyboard. aseqdump -l will list all the available midi ports.

Ramurd 03-04-2009 05:32 PM

nice one, I handn't seen that one yet:
Code:

aseqdump -l
 Port    Client name                      Port name
  0:0    System                          Timer
  0:1    System                          Announce
 14:0    Midi Through                    Midi Through Port-0
 20:0    E-MU Xboard61                    E-MU Xboard61 MIDI 1

A brief test with aseqdump -p 20:0, and pushing some random notes on the keyboard shows this:
Code:

aseqdump -p 20:0
Waiting for data. Press Ctrl+C to end.
Source  Event                  Ch  Data
 20:0  Note on                2, note 75, velocity 108
 20:0  Note on                2, note 80, velocity 67
 20:0  Note on                2, note 72, velocity 84
 20:0  Channel aftertouch      2, value 60
 20:0  Note on                2, note 74, velocity 34
 20:0  Note off                2, note 75
 20:0  Note off                2, note 74
 20:0  Channel aftertouch      2, value 76
 20:0  Note off                2, note 80
 20:0  Channel aftertouch      2, value 78
 20:0  Channel aftertouch      2, value 83
 20:0  Channel aftertouch      2, value 78
 20:0  Channel aftertouch      2, value 51
 20:0  Channel aftertouch      2, value 28
 20:0  Channel aftertouch      2, value 11
 20:0  Channel aftertouch      2, value 0
 20:0  Note on                2, note 79, velocity 20
 20:0  Note off                2, note 72
 20:0  Note off                2, note 79

The events arrive at Alsa, that's what I make from it. It also makes me believe that the chain looks something like this:
keyboard input -> alsa -> jack -> timidity -> back to alsa for outputs

The point here I see is that in jack I somehow only can do stuff with the midi through port, but not with the midi board... I fear that part is putting me at a loss. I could try dumping from the midi-through port, but I think I get nothing... (tested: indeed, no result)

And really thanks all for the constructive help, I going to believe I can get this thing working. If I do, I'll try to write out something nice to help ppl get their midi setup working. Promise :-D

Drakeo 03-05-2009 06:59 AM

what I see is two sound cards and the sound server not knowing which card to use as a capture device. and when you had arts setup it was set for both devices. This could well be this simple as to have your sound server set up devices for certain inputs. in a terminal type alsaconf. as root. make sure the cards are recognized and configured. then with your sound server configure it for that device input and which device output. I wonder if this is a hal issue will it work as root.

Ramurd 03-05-2009 06:04 PM

Yes, that was my thought at 1st too when I saw 2 sound cards showing up, at least it seems that way... however, physically there's only one and I do get sound otherwise; except from the keyboard. From what I could gather is that the midi events are not getting passed on to timidity... I'll try to see why there's 2 sound cards and how / if I can make 1 that also works ;-)

With hal I setup sound for audio (or it was that way already); the user is member of the audio group; which should not cause any trouble. I'll try to debug a bit further, thanks for the input!


All times are GMT -5. The time now is 08:31 PM.