Hey all,
 Yes, grepping for the port type which appears underneath with a 'jack_lsp
 -t' will be more consistent and dependable. Or, using a python-jack lib
 function and not depending on any system shell calls. The problem then
 becomes, is the jack lib for python well documented? If so, I think that's
 the real future of jackctl.py
 PS Qjackctl may be lightweight, but installing the entire QT toolkit just to
 use it is not!
 AKJ
 Sent from my Verizon Wireless BlackBerry
 -----Original Message-----
 From: Robin Gareus <robin(a)gareus.org>
 Date: Sat, 29 May 2010 14:00:52
 To: Julien Claassen<julien(a)c-lab.de>
 Cc: Aaron Krister Johnson<aaron(a)akjmusic.com>om>;
 <linux-audio-user(a)lists.linuxaudio.org>rg>;
 <linux-audio-dev(a)lists.linuxaudio.org>
 Subject: Re: [LAD] [LAU] like "qjackctl", but trimmed of all fat
 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