Fons Adriaensen <fons(a)kokkinizita.net> writes:
I received a private reply to my request regarding
a jack-midi equivalent to pmidi. This may be of
interest to others as well.
Jpmidi
<http://www.geocities.com/kellinwood/jpmidi/index.html>
does the job nicely.
Unlike pmidi, jpmidi is a 'resident' program - it
creates it own command prompt, allowing e.g. to
connect it and start / stop playing (it controls
and follows jack's transport).
Given this it's odd that it doesn't have a 'load'
command. To switch to another midi file you have
to quit and restart.
It installed private headers into <prefix>/include (evil)
It segfaulted:
# jpmidi ~/audio-projects/angel.mid
jack server not running?
[Mon Feb 11 12:18:25] nedko@usbix ~
# jpmidi ~/audio-projects/angel.mid
loaded /home/nedko/audio-projects/angel.mid
jpmidi> ?
?: No such command. There is `help'.
jpmidi> help
connect Connect to port [port num]. List if no arg is given.
disconnect Disconnect from port [port num].
status Display status.
channels Display channel info.
sysex Enable or disable sending of sysex messages <0|1>.
solo Solo channel <0 | 1-16>. 0 disables solo.
mute Mute channel <1-16>.
unmute Unmute channel <1-16>.
play Start transport rolling.
stop Stop transport.
locate Locate to frame <position>.
dump Dump event info [tick count] [start tick].
exit Exit jpmidi.
quit Quit jpmidi.
help Display help text [<command>].
jpmidi> connect
Destination ports:
1) system:midi_playback_1
2) MIDI monitor (4419):midi_in
jpmidi> connect 2
Successfully connected to MIDI monitor (4419):midi_in
jpmidi> play
jpmidi> Segmentation fault (core dumped)
[Mon Feb 11 12:18:56] nedko@usbix ~
# gdb jpmidi core.4414
GNU gdb 6.7.1
Copyright (C) 2007 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law. Type "show copying"
and "show warranty" for details.
This GDB was configured as "i686-pc-linux-gnu"...
Using host libthread_db library "/lib/libthread_db.so.1".
warning: Can't read pathname for load map: Input/output error.
Reading symbols from /usr/lib/libgmodule-2.0.so.0...done.
Loaded symbols for /usr/lib/libgmodule-2.0.so.0
Reading symbols from /lib/libdl.so.2...done.
Loaded symbols for /lib/libdl.so.2
Reading symbols from /usr/lib/libglib-2.0.so.0...done.
Loaded symbols for /usr/lib/libglib-2.0.so.0
Reading symbols from /usr/lib/libjack.so.0...done.
Loaded symbols for /usr/lib/libjack.so.0
Reading symbols from /lib/libreadline.so.5...done.
Loaded symbols for /lib/libreadline.so.5
Reading symbols from /lib/libc.so.6...done.
Loaded symbols for /lib/libc.so.6
Reading symbols from /lib/ld-linux.so.2...done.
Loaded symbols for /lib/ld-linux.so.2
Reading symbols from /lib/librt.so.1...done.
Loaded symbols for /lib/librt.so.1
Reading symbols from /usr/lib/libdbus-1.so.3...done.
Loaded symbols for /usr/lib/libdbus-1.so.3
Reading symbols from /lib/libpthread.so.0...done.
Loaded symbols for /lib/libpthread.so.0
Reading symbols from /lib/libm.so.6...done.
Loaded symbols for /lib/libm.so.6
Reading symbols from /lib/libncursesw.so.5...done.
Loaded symbols for /lib/libncursesw.so.5
Core was generated by `jpmidi /home/nedko/audio-projects/angel.mid'.
Program terminated with signal 11, Segmentation fault.
#0 0x0804dda6 in process (nframes=128, arg=0x0) at jackclient.c:205
205 buffer[j] = data[j];
(gdb) bt
#0 0x0804dda6 in process (nframes=128, arg=0x0) at jackclient.c:205
#1 0xb7e3dff3 in jack_client_thread (arg=0x8053500) at client.c:1688
#2 0xb7e42ce6 in jack_thread_proxy (varg=0x81b09e0) at thread.c:110
#3 0xb7c8a120 in start_thread (arg=0xb7b95b90) at pthread_create.c:297
#4 0xb7d993fe in clone () from /lib/libc.so.6
(gdb) quit
--
Nedko Arnaudov <GnuPG KeyID: DE1716B0>