[LAD] Jacktools

Fons Adriaensen fons at linuxaudio.org
Fri Jun 19 00:04:17 CEST 2020

On Thu, Jun 18, 2020 at 10:36:17PM +0200, vince wrote:

> are there some more examples how to use jacktools?
> I'm mostly interested ind JackPlayer and JackGainctl.

There isn't much to tell about JackGainctl - you create
one, connect it, and from then there are only two controls:
set_gain() and set_mute(). It's mostly used as just one
small part of something bigger.

JackPlayer is a bit more complex, the main thing to 
understand is the different states it can be in - e.g.
you need to be in the SILENCE state (not just STOPPED)
in order to load a file to play. Apart from that the
controls are really just what you would expect from a
general purpose audio player.

All the modules are meant to be as general as possible,
and to provide no-compromise quality audio processing.
They are not designed for one specific use case, but
to be flexible as a component in a bigger setup.

Combining just the two you mention plus some Python
code for a GUI and to interface to a database, you 
could easily create e.g. an automated or manually
operated radio station. 

Most of the power of Jacktools comes from the ability
to combine the modules and to add specific Python code
to control them. 

I'm using them all the time at work to quickly create
demos, listening tests, etc. That involves interfacing
with motion sensors, control surfaces, commands that
arrive via the network from other tools, etc. etc.
It's for this sort of thing that Python is really
the universal 'swiss army knife'.

For example the JackMatrix GUI was used with around 40
inputs from players and some real-time processors, and
24 outputs to speakers, to set up a system to compare
surround sound rendering algorithms. The presets from
the GUI were interfaced to a Novation Launchcontrol,
which also controlled the players. So all the users 
need to do was to push some buttons on the Novation.
This was just a demo, but if it had been a listening
test then the Python code would also keep the score
and generate the report.

I've lots of other quite complex examples, but almost
all of them include things that I can't publish, so
as examples they are not really useful because some
parts are missing and you can't run them.

The only one that is a bit special and more complicated
is JackSignal, it's really meant for technical things.
I use it for example (combined with some special hardware)
to automate speaker measuremants, and also to test almost
any algorithm I've programmed. The peak limiter and
equaliser tests in the JackSignal examples show this
sort of use.

So, it all depends on your imagination and creativity !
Regarding HOW TO, the Python docstrings should provide
all the info you need. If not, just ask here.



More information about the Linux-audio-dev mailing list