[LAU] like "qjackctl", but trimmed of all fat

Philipp Überbacher hollunder at lavabit.com
Wed May 26 12:29:03 UTC 2010


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



More information about the Linux-audio-user mailing list