Hi Julien, Hey Aaron,
read 'jack_lsp --help'.
'-t' does not take any arguments; it just makes jack_lsp print the type.
the filter-string only acts on the port-name (BTW, not only the
beginning of the port-name; but it's case-sensitive: strstr() )
Anyway I can reproduce the problem, some jack-midi ports show up in the
audio-tab of jackctl20100528b.py.
jackctl20100528b checks for lowercase 'midi' in the port-name instead of
looking up the port-type. So a2jmidi for example with an upper-case M
"Midi.." ends up in the audio-panel.
Your suggestion to parse the output of 'jack_lsp -t -c' is spot on.
the (currently 2) possible return values are (indented by tab):
#define JACK_DEFAULT_AUDIO_TYPE "32 bit float mono audio"
#define JACK_DEFAULT_MIDI_TYPE "8 bit raw midi"
..or as you suggest using the python-module for JACK may also simplify
things and make jackctl easier to maintain.
Cheers!
robin
PS. Oh, and which of qjackctl's features makes it 'fat'? it's not
bloated in any way. I'd rather put it the other way 'round and say that
jackctl is 'slim'. Sorry could not resist.
On 05/29/2010 12:23 PM, Julien Claassen wrote:
Hello Aaron and Jack-Team!
There seems to be a bug in my jack_lsp. I just started a2jmidid and
j2amidi_bridge. when I do a jack_lsp I get all the ports.
When I do: jack_lsp -t midi I only get one port from jack_midi_clock,
but none of the other ones.
When I type: jack_lsp -t, I can't see a difference between the
jack_midi_clock port and the others:
jack_lsp -t
[...]
a2j:Virtual Raw MIDI 0-0 [16] (capture): VirMIDI 0-0
8 bit raw midi
a2j:Virtual Raw MIDI 0-0 [16] (playback): VirMIDI 0-0
8 bit raw midi
a2j:Virtual Raw MIDI 0-1 [17] (capture): VirMIDI 0-1
8 bit raw midi
a2j:Virtual Raw MIDI 0-1 [17] (playback): VirMIDI 0-1
8 bit raw midi
a2j:Virtual Raw MIDI 0-2 [18] (capture): VirMIDI 0-2
8 bit raw midi
a2j:Virtual Raw MIDI 0-2 [18] (playback): VirMIDI 0-2
8 bit raw midi
a2j:Virtual Raw MIDI 0-3 [19] (capture): VirMIDI 0-3
8 bit raw midi
a2j:Virtual Raw MIDI 0-3 [19] (playback): VirMIDI 0-3
8 bit raw midi
a2j:M Audio Delta 1010LT [20] (capture): M Audio Delta 1010LT MIDI
8 bit raw midi
a2j:M Audio Delta 1010LT [20] (playback): M Audio Delta 1010LT MIDI
8 bit raw midi
j2a_bridge:playback
8 bit raw midi
a2j:j2a_bridge [129] (capture): capture
8 bit raw midi
Jack MIDI Clock:midi_out
8 bit raw midi
Or is the argument "midi" only seen as the start of a port_name?
If so, Aaron, you must rewrite this part of jackctl (I guess you do
what I described, because I get exactly your output). You should rewrite
it using:
jack_lsp -t
And then parse the type info underneath each name. I think a simple
grabbing for "audio" or "midi" will do. But I guess, that in the
long
run, using the python module for jack, will be more efficient and easy
to use.
Kindly yours
Julien