A simple insert switcher for jack clients
If you need to easily switch outputs of your jack program (e.g. testing equalization or compression against raw output, different output device or reverb type, ...), then jack_switch might be helpful.
jack_switch can be used for both stereo and mono audio interfaces, has a tray
icon enabled by default (that can be disabled via command line) and supports a
simple global keyboard shortcut interface.
Once activated it shows the available outputs, that can be also enabled or disabled using numbers on your keyboard. Use "x" to toggle the exclusive mode.
If the keyboard shortcut interface is enabled (by using -k switch) the default behaviour uses <Win>channel, where <Win> is the "Windows" key and channel is the channel number, starting from 1. You can use alternate keyboard modifiers (<Ctrl>, <Alt>, ...) combinations using the --modifiers switch, just be careful for already assigned shortcuts - an alert on the terminal will alert you.
Keep in mind that this is a simple tool, still in development; it is intended for simple "on the go" tests, and cannot be used for high-end projects. I will try to add a buffer support to avoid sync problems, anyway.
jack_switch is distributed WITHOUT ANY WARRANTY, it's just a script I made up because I needed it, and I thought it might be useful to other users like you. For any issues you can contact me at maurizio.berti on gmail, just keep in mind that I'm no programmer, I just code for fun. Enjoy!
PS: I know that this small program might have too many options and support for what it actually does, I just took the chance to improve my programming skills by exploring all possible options.
- keybinding (for global shortcut support, optional)
Without any argument, jack_switch will start with 2 stereo inputs and 2 pairs
of stereo outputs.
Just connect the input port[s] with your jack client output and output ports with your plugins, system outputs... Then toggle the outputs using the GUI or keyboard shortcuts. You can use number keys (or F-keys enabling -f switch), eventually associated with keyboard modifiers (see -k) for global keybindings when the application is not focused.
Show usage help
-o n, --outputs n (default and minimum: 2)
Number of outputs (output pairs for stereo); maximum is 10 for stereo, 20 for mono
Set mono inputs and outputs, if not specified jack_switch will create stereo input and outputs
-I client:port, --input client:port
jack port[s] to try to auto connect to its inputs on startup (accepts regex)
-O client:port, --output client:port
jack port[s] to try to auto connect to its outputs on startup (accepts regex)
Disable exclusive mode on startup, can be overrided from the GUI
Enable global keyboard shortcut support (default uses modifier+n, where modifier is the 'Win' key and n is the output number, starting from 1)
Keyboard modifiers (<Super> - aka Windows key, <Ctrl>, <Alt>, ...), remember to use quotes; implies -k
Use F keys instead of numbers for global keyboard shortcut support. Implies -k
Start hidden to system tray
Disable tray support (mutually exclusive with -t)
Disable close (or quit, if tray is disabled) on Escape key
Always close on Escape key (mutually exclusive with --noesc
Disable sync errors status bar
Don't show sync errors in terminal