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