Hi,<div><br></div><div>Robin and &quot;S. Massy&quot; :)....thanks for your feedback and interest, and I&#39;m glad you both have gotten good use out of jackctl.py; and are interested in the next generation: clijack! (FYI, I pronounce it to rhyme with &quot;hijack&quot; :) )</div>
<div><br></div><div>I&#39;ll take the feature requests to heart, they seem like they would make it more powerful. In the meantime, some questions/comments:</div><div><br></div><div>Robin, the reason you are seeing output similar to &quot;jack_lsp&quot; is because clijack is using Python to grab the output of &quot;jack_lsp&quot; in a subprocess! However, your suggestion to have input and output columns may be an option in the future (I rather like the current output format, with the repeats, so don&#39;t mind). One thing I might implement is &#39;grepping&#39; for &quot;input&quot; or &quot;output&quot; in the result of the &quot;jack_lsp -c -p&quot; command, as you suggest, and formatting things similar to how it&#39;s done in &quot;aconnect&quot; with separate blocks for &quot;READABLE PORTS&quot; and WRITEABLE PORTS&quot;...would that help?</div>
<div><br></div><div>At some point, it might be easier and more fruitful to use Python to directly access the jack server via a wrapper around libjack.so, but at this point, using the subprocess module seemed the most expedient!</div>
<div><br></div><div>The idea of sessions (like LASH?) is interesting, but I don&#39;t use LASH at all....I&#39;m sure I could get flooded with requests for a LASH-aware CLIJACK, but that would be a far-off goal unless I could figure out Python/LASH integration...lord knows, there&#39;s probably a wrapper library out there for it somewhere.</div>
<div><br></div><div>I&#39;m also intrigued by the idea of regex connecting and disconnecting. That would be a whole huge layer of logic in the simple parsing engine, which uses letters and numbers, so it might be a ways off, given the time I can devote to this right now. But I&#39;ve written very sophisticated parsing engine using the Python regex library before (microcsound), so it wouldn&#39;t be new to me. Which reminds me:</div>
<div><br></div><div>I&#39;ve opened up a <a href="http://sourceforge.com">sourceforge.com</a> project page for CLIJACK: ( <a href="http://sourceforge.com/projects/clijack">http://sourceforge.com/projects/clijack</a>); so if any of you Python developers</div>
<div>want to jump aboard and help implement these features (and more), let me know!</div><div><br></div><div>Best,</div><div>AKJ<br><div class="gmail_quote">On Thu, Feb 23, 2012 at 2:15 PM, Robin Gareus <span dir="ltr">&lt;<a href="mailto:robin@gareus.org">robin@gareus.org</a>&gt;</span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div class="HOEnZb"><div class="h5">On 02/23/2012 08:25 PM, Aaron Krister Johnson wrote:<br>
&gt; Greetings fellow Linux audio folk,<br>
&gt;<br>
&gt; Some unknown handful of you (Julien Classen for sure at one point) may have<br>
&gt; used &#39;jackctl.py&#39; for CLI starting of a JACK server and making JACK<br>
&gt; connections.<br>
&gt;<br>
&gt; I&#39;ve now renamed the project &#39;CLIJACK&#39; because it appears there&#39;s an<br>
&gt; unrelated script called &#39;jackctl.py&#39; in the sources for JACK itself, and I<br>
&gt; wanted to avoid any confusion. CLIJACK is a little Python app that serves<br>
&gt; as a user-friendly command-line frontend to jackd, jack_connect, and<br>
&gt; aconnect. It allows one to quickly and efficiently connect jack ports, alsa<br>
&gt; midi ports, jack midi ports, etc. in the manner of QjackCtl, but without<br>
&gt; the GUI, and the possible bloat of the packages required by the same. Good<br>
&gt; for lean &#39;n mean systems, etc.<br>
&gt;<br>
&gt; So, CLIJACK is now being released, new title, a bit of new code...I did<br>
&gt; some code cleanup today, the biggest changes being:<br>
&gt;<br>
&gt; * From CLIJACK, the jackd server itself can be launched via an environment<br>
&gt; variable, CLIJACK_COMMAND. Using this, one can start or stop the server<br>
&gt; from within CLIJACK via the &#39;s&#39; command. This of course was the same in<br>
&gt; &#39;jackctl.py&#39;, however, one had to edit the &#39;jackctl.py&#39; script itself to<br>
&gt; change the jackd command; now, it&#39;s modular and removed into the user&#39;s<br>
&gt; environment.<br>
&gt;<br>
&gt; * Non-critical alerts from jackd do not interrupt the interface of CLIJACK<br>
&gt; anymore (example: missing libffado, etc.)<br>
&gt;<br>
&gt; * More sensible killing of the jack server from within CLIJACK, including<br>
&gt; sending a killall message....<br>
&gt;<br>
&gt; * More use of newlines to make multi-lined messages prettier and cleaner.<br>
&gt;<br>
&gt; I will eventually get the project correctly packaged onto the Python apps<br>
&gt; listings, and sourceforge, etc., but for now, you can download the script<br>
&gt; directly from my site if you&#39;re interested:<br>
&gt;<br>
&gt; <a href="http://www.akjmusic.com/software/clijack-20120223.py" target="_blank">http://www.akjmusic.com/software/clijack-20120223.py</a><br>
&gt;<br>
&gt; I&#39;d love feedback!<br>
<br>
</div></div>Hi Aaron,<br>
<br>
Thanks for keeping it up. I&#39;m one of the unknown handful and excited<br>
about clijack. Copy/pasting jack_lsp; jack_connect is no fun. An<br>
efficient and ergonomic terminal jack-connection manager is near the top<br>
of my LA wishlist.<br>
<br>
running clijack on debian fails with<br>
<br>
/usr/bin/python2: bad interpreter: No such file or directory<br>
<br>
<a href="http://www.debian.org/doc/packaging-manuals/python-policy/ch-programs.html" target="_blank">http://www.debian.org/doc/packaging-manuals/python-policy/ch-programs.html</a><br>
-&gt; &quot;#!/usr/bin/pythonX.Y&quot; (I settled on python2.6)<br>
Others may also have it in /usr/local/ or somewhere. I dunno what the<br>
most practical way is for x-distribution compatibility is.<br>
<br>
Otherwise clijack-20120223.py works as advertised.<br>
<br>
What nags me however is that connections show up twice (similar to<br>
&#39;jack_lsp -c&#39;) It is not obvious which of them is the input and which<br>
the output client (&#39;jack_lsp -c -p&#39;). It&#39;s be great if clijack could<br>
group the ports or make in/out ports obvious.<br>
<br>
excerpt:<br>
CLIJACK(audio)--&gt; l<br>
0) system:capture_1<br>
   4) ploop:playback_1<br>
[..]<br>
4) ploop:playback_1<br>
   0) system:capture_1<br>
[..]<br>
<br>
That&#39;s jackdmp 1.9.8; but I don&#39;t think that matters.<br>
<br>
<br>
Some brainstorm, feature request: group connect (stereo or more) and<br>
port-name completion.<br>
<br>
&quot;c mpl sys&quot; would connect<br>
 mplayer [*]:out_1 -&gt;  system:playback_1<br>
 mplayer [*]:out_2 -&gt;  system:playback_2<br>
<br>
&quot;d ard:aud sys&quot; would disconnect all ardour auditioner ports from any<br>
system port.<br>
<br>
best,<br>
robin<br>
</blockquote></div><br><br clear="all"><div><br></div>-- <br>Aaron Krister Johnson<br><a href="http://www.akjmusic.com" target="_blank">http://www.akjmusic.com</a><br><a href="http://www.untwelve.org" target="_blank">http://www.untwelve.org</a><br>
<br>
</div>