Hi all,

Let me know how this newer version works out for you. I've hopefully made the audio/MIDI distinction cleaner and bug-free, b/c now the script uses 'jack_lsp -t' to list the type. One can toggle between alsa-midi and jack-midi with the 'm' key.

Not being a user of a2jackmidi bridge or whatever that program is, I cannot vouch for how this works with it...does anyone want to try it out and let me know?

http://www.akjmusic.com/software/jackctl20100604.py

Best,
AKJ

On Sat, May 29, 2010 at 11:42 AM, Aaron Krister Johnson <aaron@akjmusic.com> wrote:
> 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@gareus.org>
> Date: Sat, 29 May 2010 14:00:52
> To: Julien Claassen<julien@c-lab.de>
> Cc: Aaron Krister Johnson<aaron@akjmusic.com>;
> <linux-audio-user@lists.linuxaudio.org>;
> <linux-audio-dev@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
>>
>





--
Best,

Aaron Krister Johnson
http://www.akjmusic.com
http://www.untwelve.org