Hi Philipp,

What version of jack and jack_lsp are you using? I see that you are getting what look like verbose messages, which is not how my version behaves. Did you enable them by default in some kind of config file? I don't understand why that's happening except that some newer or older version than what I have is enabling verbose behavior by default.

My script depends on a clean output to predictably be summoned by a simple call to 'jack_lsp -c'....what is the output of this command on your system? On mine, I just get a list of ports and any connections, no extra messages. I'm using jack 0.118.0. What's your version.

I *can* make a robust way of mining this output, but I would need to know what different jack_lsp versions do!!! ARGH!

AKJ

On Wed, May 26, 2010 at 7:29 AM, Philipp Überbacher <hollunder@lavabit.com> wrote:
Excerpts from alexander's message of 2010-05-26 14:08:18 +0200:
> On 05/26/2010 02:23 PM, Aaron Krister Johnson wrote:
> > Hi linux-audio peoples,
> >
> > I want to announce my new and fun and useful python script -- I call
> > it 'jackctl' -- it basically is a frontend to the jack tools
> > 'jack_lsp' and 'jack_connect'. It's like 'qjackctl' , but since it's
> > command line, no 'q' !!!
> >
> > get it here:
> > http://www.akjmusic.com/software/jackctl20100526.py
> >
> > Why would I embark on writing such a script? Who would want to use this?
> >
> > You'll want to try this if one or any of the the following apply:
> >
> > 1) You don't want to have to install the entire QT toolkit for a
> > single program.
> > 2) If you like the command line, use a console, but still use jack
> > often enough
> > 3) You've used jack and 'jack_connect' through the command line
> > before, but hated having to type the full name of the jack ports.
> > 4) You've noticed that 'qjackctl' introduces CPU overhead and xruns
> > you don't have when you use command-line jack, i.e. you are obsessed
> > with the lowest possible latency
> > 5) You want a fast, simple interface to connect jack ports that is
> > even faster than a GUI---no need to point the mouse, just type two
> > numbers and go!
> >
> > It's very simple. All you need is Python (and who doesn't have that on
> > their machine). You put the script in your PATH, or link it/rename it,
> > making sure it's exectuable. When you run it, you'll see a list of
> > current numbered jack ports, and you can connect them by typing two
> > numbers separated by a space. You can disconnect them by typing 'd'
> > then the two numbers separated by a space. No hassles, and a nice
> > feature is that it will protect you from making ear-blasting feedback
> > connections. It's even quicker than qjackctl, b/c it takes more time
> > to point your mouse at the ports in the GUI and then click 'connect'
> > than it does to type two single-digit numbers and then hit return, yes?
> >
> > Let me know how you like it...I'm interested in reasonable feature
> > requests. One potential TODO would be to make this script have a
> > user-friendly way to start the jack daemon, but for now, I do that
> > manually....
> >
> > Enjoy, comments welcome!
> >
> Quite cool, seems simple enough. However, my usb keyboard doesn't show
> up, or anything else that normally shows up under the "alsa" tab in qjackctl
>
I like the idea, but here it crashed immediately.
jack2 1.9.5 built with --profile
python 2.6.5

$ ./jackctl20100526.py

Welcome to jackctl.py! Enter the two numbers you want to connect,
separated by a space, then hit return. To see the list again, type 'l'.
To disconnect clients type 'd' and then the two clients separated by a space
Control-D will end the program

here's what's connected to jack so far:
  0) Jack: JackClient::SetupDriverSync driver sem in flush mode
  1) Jack: JackFifo::ConnectAux name = /dev/shm/jack_fifo.1000_default_lsp
  2) Jack: Already connected name = lsp
  3) Jack: Clock source : system clock via clock_gettime
  4) Jack: JackLibClient::Open name = lsp refnum = 4
5) system:capture_1
6) system:capture_2
7) system:playback_1
  9) aqualung:out_L
8) system:playback_2
  10) aqualung:out_R
9) aqualung:out_L
  7) system:playback_1
10) aqualung:out_R
  8) system:playback_2
  11) Jack: jack_client_close
  12) Jack: JackClient::Close ref = 4
  13) Jack: JackClient::Deactivate
  14) Jack: JackSocketClientChannel::Stop
  15) Jack: JackPosixThread::Kill
  16) Jack: JackClientSocket::Close
  16) Jack: JackClientSocket::Close
  18) Jack: JackFifo::Disconnect /dev/shm/jack_fifo.1000_default_lsp
  19) Jack: JackLibClient::~JackLibClient
  20) Jack: JackShmReadWritePtr1::~JackShmReadWritePtr1 4
  21) Jack: Succeeded in unlocking 120 byte memory area
Traceback (most recent call last):
 File "./jackctl20100526.py", line 27, in <module>
   get_list()
 File "./jackctl20100526.py", line 22, in get_list
   print "   %s) %s" % (listp.index(i.lstrip()), i.lstrip())
ValueError: list.index(x): x not in list
--

Regards,
Philipp

-----
"Wir stehen selbst enttäuscht und sehn betroffen / Den Vorhang zu und alle Fragen offen." Bertolt Brecht, Der gute Mensch von Sezuan

_______________________________________________
Linux-audio-user mailing list
Linux-audio-user@lists.linuxaudio.org
http://lists.linuxaudio.org/listinfo/linux-audio-user



--

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