From c68df4bcdf374f22f638c25daf35f36b3dacfcb2 Mon Sep 17 00:00:00 2001 From: Milkii Brewster Date: Fri, 18 Dec 2020 08:52:52 +0000 Subject: [PATCH] add a lot, rearrange --- Home.md | 479 +++++++++++++++++++++++++++++--------------------------- 1 file changed, 249 insertions(+), 230 deletions(-) diff --git a/Home.md b/Home.md index 73a2e34..acbaee4 100644 --- a/Home.md +++ b/Home.md @@ -70,6 +70,7 @@ Other suggestions can be found at: https://wiki.linuxaudio.org/wiki/session_mana * [jack-plumbing](http://rohandrape.net/?t=rju&e=md/jack-plumbing.md) - implicitly bounded regex rules with sub-expression pattern supportto manage connections as clients register ports with JACK. * https://github.com/resinbeard/autocable - eats your text files and routes JACK connections for you * [Beginning a GNU/Linux/JACK headless performance system](https://llllllll.co/t/beginning-a-gnu-linux-jack-headless-performance-system/1119) +* [ALSA Patch Bay](http://pkl.net/~node/software/alsa-patch-bay) - graphical patch bay for ALSA and JACK that can use FLTK or GTKmm ### Terminal * [njconnect](https://sourceforge.net/projects/njconnect) @@ -90,237 +91,7 @@ Other suggestions can be found at: https://wiki.linuxaudio.org/wiki/session_mana * [PulseAudio and Jack](http://0pointer.de/blog/projects/when-pa-and-when-not.html) * [How to replace Pulseaudio with Jack, Jack and PulseAudio Together as Friend](https://forum.manjaro.org/t/how-to-replace-pulseaudio-with-jack-jack-and-pulseaudio-together-as-friend/2086) - Manjaro Linux Forum -# JACK Transport / JACK Timebase -* [[JACK Transport support]] and [[JACK Transport limitations]] - -``` -jack_transport> ? - activate Call jack_activate(). - exit Exit transport program. - deactivate Call jack_deactivate(). - help Display help text []. - locate Locate to frame . - master Become timebase master []. - play Start transport rolling. - quit Synonym for 'exit'. - release Release timebase. - stop Stop transport. - tempo Set beat tempo . - timeout Set sync timeout in . - ? Synonym for `help'. - -echo play | jack_transport - # pass a command to execute. tempo change doesn't work via this method. -``` - -* [gjacktransport](http://gjacktransport.sourceforge.net/) - app for controlling the JACK transport mechanism -* [transporter.py](https://github.com/SpotlightKid/jack-audio-tools/blob/master/transport/transporter.py) / [timebase_master.py](https://github.com/SpotlightKid/jack-audio-tools/blob/master/transport/timebase_master.py) - query and manipulate JACK transport state and provide timebase information using jackclient-python. -* [jacktransportloop](http://danmbox.github.io/jack-file/) - forces the Jack transport to loop between two time-points. -* https://github.com/ycollet/qtmiditrans - translates midi events into jack transport -* [jack-trans2midi](https://sourceforge.net/projects/jack-trans2midi/) - converts jack transport into midi clock messages. -* [JackCtlMMC/QJackMMC](http://jackctlmmc.sourceforge.net/) - allow MIDI Machine Control (MMC) to drive JACK transport. -* https://github.com/rncbc/jack_link - a JACK transport timebase prototype bridge to [Ableton Link](https://www.ableton.com/en/link/). - -## Metronome -* https://github.com/jmage619/jmetro - dumb JACK based metronome with a Qt based UI. -* https://github.com/TGrif/jack-metronome - gtkmm, sndfile -* https://gitlab.com/tmatth/polygnome - A polyrhythmic metronome - -# CV -* [JACK/LV2 CV - LinuxMusicians](https://linuxmusicians.com/viewtopic.php?f=1&t=20701) - -# MIDI -* [JACK-AUDIO-CONNECTION-KIT API: Reading and writing MIDI data](https://jackaudio.org/api/group__MIDIAPI.html) -* [JACK-AUDIO-CONNECTION-KIT API: midiport.h File Reference](https://jackaudio.org/api/midiport_8h.html) -* https://github.com/harryhaaren/JACK-MIDI-Examples -* https://github.com/jerash/jpmidi - command line midi player synced with JACK transport -* [jack-smf-player / jack-smf-recorder](https://sourceforge.net/projects/jack-smf-utils/) - play and record MIDI streams from/to Standard MIDI Files, uses libsmf as a backend. -* https://github.com/x42/jack-midi-cmd - commandline tool to generate JACK MIDI events -* https://github.com/paulguy/crustymidi - JACK MIDI event scripting triggerable on events -* https://github.com/noedigcode/oldnotes - replaces velocities of specified notes with that ofthe previously received non-specified notes -* https://github.com/jmage619/velociraptor - A Jack midi velocity compressor with Qt based UI. -* https://github.com/x42/jack_midi_clock - utility to send MIDI Beat Clock pulses that follow the JACK Transport -* https://github.com/chronopoulos/jack-midi-timestamp - simple timing log for JACK MIDI events -* https://github.com/xitiomet/jack-rtp-midi-bridge - bridge JACK MIDI and RTP MIDI -* https://sourceforge.net/projects/arpage - MIDI Arpeggiator w/ JACK Tempo Sync -* https://github.com/falkTX/nooice - joysticks as JACK-MIDI devices -* https://github.com/moddevices/mod-midi-merger - small JACK-internal client to merge MIDI events from several inputs to one output -* https://github.com/falkTX/JackAss - a VST plugin that provides JACK-MIDI support for VST hosts - -### Keyboard -* https://github.com/brummer10/Mamba - virtual MIDI Keyboard and MIDI file player/recorder/looper for Jack Audio Connection Kit -* [jack-keyboard](http://jack-keyboard.sourceforge.net/) - virtual keyboard for JACK MIDI -* https://github.com/metachronica/audio-midihaskey - virtual MIDI keyboard for microtonal music -* https://github.com/noedigcode/keytarboard - translates keyboard key presses into JACK MIDI notes -* https://github.com/ovenwerks/midikb - keyboard to Jack MIDI program -* https://github.com/Krasjet/kb - Customizable virtual MIDI keyboard daemon for JACK. - -### Sequencing -* https://github.com/chronopoulos/libsequoia - an API for generative musical sequencing - -### Looping -* https://github.com/ahlstromcj/sequencer64 - major reboot of Seq24, with new features -* https://github.com/ahlstromcj/seq66 - lean and mean version of Sequencer64 using modern C++ and Qt 5. - -### DJing -* https://mixxx.org - Free and open source DJ software for Windows, macOS, and Linux - -## Bridge -* https://github.com/linuxaudio/a2jmidid - ALSA sequencer to JACK MIDI bridging (for jack2) -* https://github.com/free-creations/a_j_midi - Connect ALSA with JACK MIDI -* https://github.com/williamweston/jamrouter - Near-Sample-Accurate JACK <-> Raw MIDI router -* https://github.com/hselasky/jack_umidi - Raw MIDI to JACK daemon - -# OSC -* https://github.com/ventosus/jack_osc - Open Sound Control (OSC) via Jack -* [jack-data](http://rohandrape.net/?t=rju&e=md/jack-data.md)- JACK audio data onto OSC -* https://github.com/x42/jackmidi2osc - tool to generate OSC triggered by JACK MIDI events. -* https://github.com/ssj71/OSC2MIDI - configurable OSC to jack MIDI (and back) bridge -* https://github.com/piegamesde/jackmidiosc - Midi to OSC bridge using JACK audio, written in Rust - -# Networked -* [NetJACK 1](wiki/WalkThrough_User_NetJack) - connect JACK 1 servers via network -* [NetJACK 2](wiki/WalkThrough_User_NetJack2) - connect JACK 2 servers via network -* [Zita-njbridge](https://kokkinizita.linuxaudio.org/linuxaudio/) - transmit full quality multichannel audio over a local IP network, with adaptive resampling by the receiver(s). - * https://github.com/rhetr/ipaudio - use jackd, zita-njbridge and systemd for network ip audio - * https://github.com/nettings/medianet - Raspbian overlay to create a JACK-based embedded system for audio processing and streaming - * https://github.com/gisogrimm/ov-client - headless clients to share/receive spatial realtime audio using JACK, zita-njbridge and TASCAR -* [JackTrip](https://ccrma.stanford.edu/software/jacktrip) - * https://github.com/jcacerec/jacktrip - * https://github.com/noahbailey/jacktrip-docker - Container for JackTrip network audio server - * https://github.com/noiseorchestra/jacktrip_pypatcher - Python scripts to autopatch a JackTrip hubserver - * https://github.com/noiseorchestra/autonomous-noise-unit - Python scripts for running JackTrip on an RPi with OLED screen and rotary switch interface. - -# Radio -* https://github.com/mildsunrise/jackpifm - program that runs on your Raspberry Pi, reads live audio from JACK and broadcasts it over FM through the GPIO pin 7 (GPIO #4). - -# Hardware -* https://github.com/nettings/gpioctl - Control the ALSA mixer or generate JACK MIDI or OSC messages from rotary encoders and switches connected to GPIOs. - -# Install and packaging -* [[Installation filesystem layout]] -* [[Suggested packaging approach]] -* [JACK D-Bus packaging](wiki/JACK-DBus-packaging) - -# Developer resources -* [JACK API reference (doxygen)](https://jackaudio.github.io/api) -* [[jack2 source code guide]] -* [[jack1 source code guide]] -* [[JACK API differences]] - changes between jack1 and jack2 -* [[Repository layout]] -* [[WalkThrough_Dev_LatencyBufferProcess]] -* [[WalkThrough_Dev_SimpleAudioClient]] -* [[WalkThrough_Dev_SimpleMidiClient]] -* [[WalkThrough_Dev_Tools]] -* [[WalkThrough_Dev_Cpp]] -* [[WalkThrough_Dev_AlsaIoTools]] -* [[WalkThrough_Dev_NetOne]] -* https://github.com/jackaudio/headers -* [x42/weakjack](https://github.com/x42/weakjack) - small library that abstracts the JACK Application Binary Interface. - -## Bindings -* https://github.com/spatialaudio/jackclient-python - JACK Audio Connection Kit (JACK) Client for Python snake -* [PyJack](https://sourceforge.net/projects/py-jack/) - JACK client module for Python -* https://github.com/fphammerle/jacker - Python bindings for the JACK Audio Connection Kit C API -* https://github.com/falkTX/Cadence/blob/master/src/jacklib.py -* https://github.com/jaudiolibs/jnajack - Java bindings to JACK Audio Connection Kit [[*](http://lac.linuxaudio.org/2007/presentations/lac07_slides_gulden1.pdf)] -* https://github.com/free-creations/jackAudio4Java - thin JNI wrapper around the JACK Audio Connection Kit -* https://github.com/umjammer/jjack - Jack-to-Java Audio Driver and Bridge API -* https://github.com/residuum/JackSharp - C# bindings for jackd -* https://github.com/xthexder/go-jack - Go bindings for Jack Audio Connection Kit -* https://github.com/stetre/luajack - requires Lua (>=5.3) and JACK (API >= v0.124.1) -* https://github.com/unclechu/node-jack-connector - Bindings JACK-Audio-Connection-Kit for Node.JS - -## Metadata -* [JACK Metadata](https://jackaudio.org/metadata) - * [order](https://jackaudio.org/metadata/order) - * port-group - for stereo pair/ambisonics/etc - * [pretty-name](https://jackaudio.org/metadata/pretty-name) - * [signal-type](https://jackaudio.org/metadata/signal-type) - * [event-types](https://jackaudio.org/metadata/event-types) - * [connected](https://jackaudio.org/metadata/connected) - * [hardware](https://jackaudio.org/metadata/hardware) - * [icon-large](https://jackaudio.org/metadata/icon-large) - * [icon-small](https://jackaudio.org/metadata/icon-large) - * [icon-name](https://jackaudio.org/metadata/icon-large) -* [jack2/JackMetadata.cpp at develop · jackaudio/jack2](https://github.com/jackaudio/jack2/blob/develop/common/JackMetadata.cpp#L30) -* https://github.com/drobilla/jackey - simple define-only header that serves as an ad-hoc standard for Jack Metadata property keys - -`jack_property` - list, set and delete any metadata associated with the ports and clients of a JACK server - -* [jack-property-listener.py](https://gist.github.com/SpotlightKid/dc70dac006337c99bf65bcdc98e43ddc) - Listen to and print JACK client/port metadata changes - -## Testing -* https://github.com/falkTX/jack_interposer - Library to check at run-time whether an application makes non-RT-safe calls inside the process() callback -* https://github.com/falkTX/jack-midi-timing - Sender and receiver tool to test the timing accuracy and jitter of MIDI devices - -# JACK Clients -* [JACK-AUDIO-CONNECTION-KIT: Creating & manipulating clients](https://jackaudio.org/api/group__ClientFunctions.html) - API -* [On JACK client threads](wiki/WalkThrough_User_ClientThreads) -* https://github.com/jackaudio/example-clients - * https://github.com/jackaudio/example-clients/blob/master/inprocess.c - internal client, runs as part of jackd -* https://github.com/resinbeard/jacksandbox - simple JACK client for learning and testing audio code - -## Playback -* [jplay2](https://gareus.org/oss/jplay2/start) - a command-line audio player that plays a single file, gluing JACK, libsamplerate, liblo (OSC control) -* https://github.com/eeeeeta/mfl-gramophone - A simple Rust application to play audio, using JACK, when it receives commands via OSC. - -## Recording -* https://github.com/kmatheussen/jack_capture - program for recording soundfiles with JACK - * [jrec2](http://gareus.org/oss/jrec/jrec2) - patch to jack_capture that implements silence detection and splitting of output files - * [RecJack](http://mein-neues-blog.de/2015/02/07/mein-neues-blog-deb-repository/#recjack) - a front end for jack_capture -* https://github.com/HoerTech-gGmbH/jack_playrec - provides an interface for synchronous recording/playback via JACK -* [qjackrcd](https://orouits.github.io/qjackrcd/) - stereo recorder with automatic silence pause, file splitting and background file post-processing -* https://github.com/UoC-Radio/audio-coffin - A simple audio recorder/logger on top of Jack, libsndfile and libsoxr -* https://github.com/swh/timemachine - JACK application that can retrospectively record audio - -## Tuners -* https://github.com/brummer10/XTuner - simple tuner for JACK including NSM support -* https://github.com/jessecrossen/jackstrobe - simple strobe tuner using JACK and Qt 5 - -## Visualisation -* [JACK Meter](https://www.aelius.com/njh/jackmeter/) - a basic console based DPM (Digital Peak Meter) for JACK -* https://github.com/madskjeldgaard/jack_meter_simple - fork of JACK Meter for status bar commands -* https://github.com/gethiox/jack-peak-meter - terminal-based peak-meter for JACK audio system writen in Go -* https://github.com/xkr47/vu-meter - Audio VU meter for JACK with any number of channels written in Rust -* [jack_oscrolloscope](http://das.nasophon.de/jack_oscrolloscope/) - a simple waveform viewer for JACK -* https://github.com/alxdb/jack-analyser - an osciloscope for the JACK Audio API -* [JACK Meterbridge](http://plugin.org.uk/meterbridge/) - supports a number of different types of meter, rendered using the SDL library and user-editable pixmaps -* [Japa](http://kokkinizita.linuxaudio.org/linuxaudio/japa-pict.html) -* http://sed.free.fr/spectrojack - little spectrogram/audiogram/sonogram/whatever that, using GTK2 and FFTW3. -* http://spectrum3d.sourceforge.net - displays a 3D audio spectrogram in real time or not, made using Gstreamer, SDL (or Gtkglext), OpenGl, GTK2/3 and uTouch-Geis free libraries -* [JACK Live Spectrum](http://consciousness.mywebcommunity.org/programming/jack-live-spectrum/) - a small C program for Linux that displays a flowing frequency spectrum of live audio -* https://github.com/jcarrano/rtfi - Resonator Time-Frequency Image - -## Mixer -* https://github.com/MaurizioB/jack_switch - simple insert switcher for jack clients -* https://github.com/jack-mixer/jack_mixer - a GTK+ JACK audio mixer app with look similar to its hardwarecounterpart. It has lot of useful features, apart from being able to mixmultiple JACK audio streams. -* [Non Mixer](http://non.tuxfamily.org/wiki/index.php?page=Non%20Mixer) - a powerful, reliable and fast modular Digital Audio Mixer ([LV2 fork](https://github.com/falktx/non)) -* https://github.com/kampfschlaefer/jackmix - Matrix-Mixer for the Jack-Audio-connection-Kit -* https://github.com/jacob3141/mx2482 - JACK Mixer written with Qt, based on QJackAudio -* [Jackmaster](http://69b.org/cms/software/jackmaster) - "Master Console" for the jack-audio-connection-kit -* [JackMiniMix](https://www.aelius.com/njh/jackminimix/) - simple mixer with an OSC based control interface - -## Samples -* https://github.com/resinbeard/candor - enables a monome 256 user to capture and playback audio from up to 8 channels simultaneously, managing a maximum of 48 remembered wav soundfiles without a computer display. -* https://github.com/jmage619/jmage-sampler - -## Looping -* https://github.com/monocasual/giada - minimalistic and hardcore music production tool - -## Synthesis -* https://github.com/Ho-Ro/connie - Electronic organ (Vox Continental like) with JACK interface - -## Video -* [XJADEO - The X Jack Video Monitor](http://xjadeo.sourceforge.net/) - a software video player that displays a video-clip in sync with an external time source (MTC, LTC, JACK-transport). Xjadeo is useful in soundtrack composition, video monitoring or any task that requires to synchronizing movie frames with external events. - ## Tools -* http://devel.tlrmx.org/audio/bitmeter - a diagnosis tool for JACK audio software on Linux -* [Zita MU1](http://kokkinizita.linuxaudio.org/linuxaudio/zita-mu1-doc/quickguide.html) - used to organise stereo monitoring -* [SilentJack](https://www.aelius.com/njh/silentjack) - silence/dead air detector for the Jack Audio Connection Kit -* [Rotter](https://www.aelius.com/njh/rotter/) - a Recording of Transmission / Audio Logger for JACK -* https://github.com/jackaudio/tools - JACK2 package commands: ``` jack_alias @@ -381,6 +152,254 @@ jack_zombie * https://github.com/x42/robtk/blob/master/jackwrap.c - x42 jack wrapper / minimal LV2 host * https://github.com/ponderworthy/MultiJACK - fully operational demo of a framework to increase available audio DSP power available to JACK within a single multicore motherboard, using multiple JACK processes in concert, connected via IP transport. +# JACK Transport / JACK Timebase +* [[JACK Transport support]] and [[JACK Transport limitations]] + +``` +jack_transport> ? + activate Call jack_activate(). + exit Exit transport program. + deactivate Call jack_deactivate(). + help Display help text []. + locate Locate to frame . + master Become timebase master []. + play Start transport rolling. + quit Synonym for 'exit'. + release Release timebase. + stop Stop transport. + tempo Set beat tempo . + timeout Set sync timeout in . + ? Synonym for `help'. + +echo play | jack_transport + # pass a command to execute. tempo change doesn't work via this method. +``` + +# JACK Clients +* [JACK-AUDIO-CONNECTION-KIT: Creating & manipulating clients](https://jackaudio.org/api/group__ClientFunctions.html) - API +* [On JACK client threads](wiki/WalkThrough_User_ClientThreads) +* https://github.com/jackaudio/example-clients + * https://github.com/jackaudio/example-clients/blob/master/inprocess.c - internal client, runs as part of jackd +* https://github.com/resinbeard/jacksandbox - simple JACK client for learning and testing audio code + +## Playback +* [jplay2](https://gareus.org/oss/jplay2/start) - a command-line audio player that plays a single file, gluing JACK, libsamplerate, liblo (OSC control) +* https://github.com/eeeeeta/mfl-gramophone - A simple Rust application to play audio, using JACK, when it receives commands via OSC. + +## Recording +* https://github.com/kmatheussen/jack_capture - program for recording soundfiles with JACK + * [jrec2](http://gareus.org/oss/jrec/jrec2) - patch to jack_capture that implements silence detection and splitting of output files + * [RecJack](http://mein-neues-blog.de/2015/02/07/mein-neues-blog-deb-repository/#recjack) - a front end for jack_capture +* https://github.com/HoerTech-gGmbH/jack_playrec - provides an interface for synchronous recording/playback via JACK +* [qjackrcd](https://orouits.github.io/qjackrcd/) - stereo recorder with automatic silence pause, file splitting and background file post-processing +* https://github.com/UoC-Radio/audio-coffin - A simple audio recorder/logger on top of Jack, libsndfile and libsoxr +* https://github.com/swh/timemachine - JACK application that can retrospectively record audio + +## Editing / DAW +* [Audacity](https://www.audacityteam.org/) - multi-track recording and editing +* [Ardour](https://ardour.org/) - the digital audio workstation +* [Zrythm](https://www.zrythm.org) - highly automated and intuitive digital audio workstation +* [GNUsound](https://www.gnu.org/software/gnusound/) - multitrack sound editor for GNOME 1 and 2 +* [Marlin](http://marlin.sourceforge.net) - sample editor for Gnome 2, uses GStreamer +* [ReZound](http://rezound.sourceforge.net/) - graphical audio file editor +* [Snd](https://ccrma.stanford.edu/software/snd/) - a sound editor + +## Mixer +* https://github.com/MaurizioB/jack_switch - simple insert switcher for jack clients +* https://github.com/jack-mixer/jack_mixer - a GTK+ JACK audio mixer app with look similar to its hardwarecounterpart. It has lot of useful features, apart from being able to mixmultiple JACK audio streams. +* [Non Mixer](http://non.tuxfamily.org/wiki/index.php?page=Non%20Mixer) - a powerful, reliable and fast modular Digital Audio Mixer ([LV2 fork](https://github.com/falktx/non)) +* https://github.com/kampfschlaefer/jackmix - Matrix-Mixer for the Jack-Audio-connection-Kit +* https://github.com/jacob3141/mx2482 - JACK Mixer written with Qt, based on QJackAudio +* [Jackmaster](http://69b.org/cms/software/jackmaster) - "Master Console" for the jack-audio-connection-kit +* [JackMiniMix](https://www.aelius.com/njh/jackminimix/) - simple mixer with an OSC based control interface + +* [gjacktransport](http://gjacktransport.sourceforge.net/) - app for controlling the JACK transport mechanism +* [transporter.py](https://github.com/SpotlightKid/jack-audio-tools/blob/master/transport/transporter.py) / [timebase_master.py](https://github.com/SpotlightKid/jack-audio-tools/blob/master/transport/timebase_master.py) - query and manipulate JACK transport state and provide timebase information using jackclient-python. +* [jacktransportloop](http://danmbox.github.io/jack-file/) - forces the Jack transport to loop between two time-points. +* https://github.com/ycollet/qtmiditrans - translates midi events into jack transport +* [jack-trans2midi](https://sourceforge.net/projects/jack-trans2midi/) - converts jack transport into midi clock messages. +* [JackCtlMMC/QJackMMC](http://jackctlmmc.sourceforge.net/) - allow MIDI Machine Control (MMC) to drive JACK transport. +* https://github.com/rncbc/jack_link - a JACK transport timebase prototype bridge to [Ableton Link](https://www.ableton.com/en/link/). + +## Host / FX +* [Carla](https://kx.studio/Applications:Carla) - fully-featured modular audio plugin host +* [Ingen](https://gitlab.com/drobilla/ingen/) - realtime modular audio system based on LV2 +* [JACK Rack](http://jack-rack.sourceforge.net) - an effects "rack" for the JACK + +## Samples +* https://github.com/resinbeard/candor - enables a monome 256 user to capture and playback audio from up to 8 channels simultaneously, managing a maximum of 48 remembered wav soundfiles without a computer display. +* https://github.com/jmage619/jmage-sampler +* [Swami](http://www.swamiproject.org/) - for editing, managing and playing musical instruments for MIDI music composition + +## Looping +* https://github.com/monocasual/giada - minimalistic and hardcore music production tool + +## Synthesis +* https://github.com/Ho-Ro/connie - Electronic organ (Vox Continental like) with JACK interface + +## DJing +* https://mixxx.org - Free and open source DJ software for Windows, macOS, and Linux + +## Metronome +* https://github.com/jmage619/jmetro - dumb JACK based metronome with a Qt based UI. +* https://github.com/TGrif/jack-metronome - gtkmm, sndfile +* https://gitlab.com/tmatth/polygnome - A polyrhythmic metronome + +## Tuners +* https://github.com/brummer10/XTuner - simple tuner for JACK including NSM support +* https://github.com/jessecrossen/jackstrobe - simple strobe tuner using JACK and Qt 5 + +## Visualisation +* [JACK Meter](https://www.aelius.com/njh/jackmeter/) - a basic console based DPM (Digital Peak Meter) for JACK +* https://github.com/madskjeldgaard/jack_meter_simple - fork of JACK Meter for status bar commands +* https://github.com/gethiox/jack-peak-meter - terminal-based peak-meter for JACK audio system writen in Go +* https://github.com/xkr47/vu-meter - Audio VU meter for JACK with any number of channels written in Rust +* [jack_oscrolloscope](http://das.nasophon.de/jack_oscrolloscope/) - a simple waveform viewer for JACK +* https://github.com/alxdb/jack-analyser - an osciloscope for the JACK Audio API +* [JACK Meterbridge](http://plugin.org.uk/meterbridge/) - supports a number of different types of meter, rendered using the SDL library and user-editable pixmaps +* [Japa](http://kokkinizita.linuxaudio.org/linuxaudio/japa-pict.html) +* http://sed.free.fr/spectrojack - little spectrogram/audiogram/sonogram/whatever that, using GTK2 and FFTW3. +* http://spectrum3d.sourceforge.net - displays a 3D audio spectrogram in real time or not, made using Gstreamer, SDL (or Gtkglext), OpenGl, GTK2/3 and uTouch-Geis free libraries +* [JACK Live Spectrum](http://consciousness.mywebcommunity.org/programming/jack-live-spectrum/) - a small C program for Linux that displays a flowing frequency spectrum of live audio +* https://github.com/jcarrano/rtfi - Resonator Time-Frequency Image +# CV +* [JACK/LV2 CV - LinuxMusicians](https://linuxmusicians.com/viewtopic.php?f=1&t=20701) + +# MIDI +* [JACK-AUDIO-CONNECTION-KIT API: Reading and writing MIDI data](https://jackaudio.org/api/group__MIDIAPI.html) +* [JACK-AUDIO-CONNECTION-KIT API: midiport.h File Reference](https://jackaudio.org/api/midiport_8h.html) +* https://github.com/harryhaaren/JACK-MIDI-Examples +* https://github.com/jerash/jpmidi - command line midi player synced with JACK transport +* [jack-smf-player / jack-smf-recorder](https://sourceforge.net/projects/jack-smf-utils/) - play and record MIDI streams from/to Standard MIDI Files, uses libsmf as a backend. +* https://github.com/x42/jack-midi-cmd - commandline tool to generate JACK MIDI events +* https://github.com/paulguy/crustymidi - JACK MIDI event scripting triggerable on events +* https://github.com/noedigcode/oldnotes - replaces velocities of specified notes with that ofthe previously received non-specified notes +* https://github.com/jmage619/velociraptor - A Jack midi velocity compressor with Qt based UI. +* https://github.com/x42/jack_midi_clock - utility to send MIDI Beat Clock pulses that follow the JACK Transport +* https://github.com/chronopoulos/jack-midi-timestamp - simple timing log for JACK MIDI events +* https://github.com/xitiomet/jack-rtp-midi-bridge - bridge JACK MIDI and RTP MIDI +* https://sourceforge.net/projects/arpage - MIDI Arpeggiator w/ JACK Tempo Sync +* https://github.com/falkTX/nooice - joysticks as JACK-MIDI devices +* https://github.com/moddevices/mod-midi-merger - small JACK-internal client to merge MIDI events from several inputs to one output +* https://github.com/falkTX/JackAss - a VST plugin that provides JACK-MIDI support for VST hosts + +## Keyboard +* https://github.com/brummer10/Mamba - virtual MIDI Keyboard and MIDI file player/recorder/looper for Jack Audio Connection Kit +* [jack-keyboard](http://jack-keyboard.sourceforge.net/) - virtual keyboard for JACK MIDI +* https://github.com/metachronica/audio-midihaskey - virtual MIDI keyboard for microtonal music +* https://github.com/noedigcode/keytarboard - translates keyboard key presses into JACK MIDI notes +* https://github.com/ovenwerks/midikb - keyboard to Jack MIDI program +* https://github.com/Krasjet/kb - Customizable virtual MIDI keyboard daemon for JACK. + +## Sequencing +* https://github.com/chronopoulos/libsequoia - an API for generative musical sequencing + +## Looping +* https://github.com/ahlstromcj/sequencer64 - major reboot of Seq24, with new features +* https://github.com/ahlstromcj/seq66 - lean and mean version of Sequencer64 using modern C++ and Qt 5. + +## Synth +* https://github.com/kmtaylor/gi_editor - A software editor for the Roland JunoGi synthesizer + +## Bridge +* https://github.com/linuxaudio/a2jmidid - ALSA sequencer to JACK MIDI bridging (for jack2) +* https://github.com/free-creations/a_j_midi - Connect ALSA with JACK MIDI +* https://github.com/williamweston/jamrouter - Near-Sample-Accurate JACK <-> Raw MIDI router +* https://github.com/hselasky/jack_umidi - Raw MIDI to JACK daemon + +# OSC +* https://github.com/ventosus/jack_osc - Open Sound Control (OSC) via Jack +* [jack-data](http://rohandrape.net/?t=rju&e=md/jack-data.md)- JACK audio data onto OSC +* https://github.com/x42/jackmidi2osc - tool to generate OSC triggered by JACK MIDI events. +* https://github.com/ssj71/OSC2MIDI - configurable OSC to jack MIDI (and back) bridge +* https://github.com/piegamesde/jackmidiosc - Midi to OSC bridge using JACK audio, written in Rust + +# Networked +* [NetJACK 1](wiki/WalkThrough_User_NetJack) - connect JACK 1 servers via network +* [NetJACK 2](wiki/WalkThrough_User_NetJack2) - connect JACK 2 servers via network +* [Zita-njbridge](https://kokkinizita.linuxaudio.org/linuxaudio/) - transmit full quality multichannel audio over a local IP network, with adaptive resampling by the receiver(s). + * https://github.com/rhetr/ipaudio - use jackd, zita-njbridge and systemd for network ip audio + * https://github.com/nettings/medianet - Raspbian overlay to create a JACK-based embedded system for audio processing and streaming + * https://github.com/gisogrimm/ov-client - headless clients to share/receive spatial realtime audio using JACK, zita-njbridge and TASCAR +* [JackTrip](https://ccrma.stanford.edu/software/jacktrip) + * https://github.com/jcacerec/jacktrip + * https://github.com/noahbailey/jacktrip-docker - Container for JackTrip network audio server + * https://github.com/noiseorchestra/jacktrip_pypatcher - Python scripts to autopatch a JackTrip hubserver + * https://github.com/noiseorchestra/autonomous-noise-unit - Python scripts for running JackTrip on an RPi with OLED screen and rotary switch interface. + +# Radio +* https://github.com/mildsunrise/jackpifm - program that runs on your Raspberry Pi, reads live audio from JACK and broadcasts it over FM through the GPIO pin 7 (GPIO #4). + +# Hardware +* https://github.com/nettings/gpioctl - Control the ALSA mixer or generate JACK MIDI or OSC messages from rotary encoders and switches connected to GPIOs. + + + +# Installation and packaging +* [[Installation filesystem layout]] +* [[Suggested packaging approach]] +* [JACK D-Bus packaging](wiki/JACK-DBus-packaging) + +# Developer resources +* [JACK API reference (doxygen)](https://jackaudio.github.io/api) +* [[jack2 source code guide]] +* [[jack1 source code guide]] +* [[JACK API differences]] - changes between jack1 and jack2 +* [[Repository layout]] +* [[WalkThrough_Dev_LatencyBufferProcess]] +* [[WalkThrough_Dev_SimpleAudioClient]] +* [[WalkThrough_Dev_SimpleMidiClient]] +* [[WalkThrough_Dev_Tools]] +* [[WalkThrough_Dev_Cpp]] +* [[WalkThrough_Dev_AlsaIoTools]] +* [[WalkThrough_Dev_NetOne]] +* https://github.com/jackaudio/headers +* [x42/weakjack](https://github.com/x42/weakjack) - small library that abstracts the JACK Application Binary Interface. + +## Bindings +* https://github.com/spatialaudio/jackclient-python - JACK Audio Connection Kit (JACK) Client for Python snake +* [PyJack](https://sourceforge.net/projects/py-jack/) - JACK client module for Python +* https://github.com/fphammerle/jacker - Python bindings for the JACK Audio Connection Kit C API +* https://github.com/falkTX/Cadence/blob/master/src/jacklib.py +* https://github.com/jaudiolibs/jnajack - Java bindings to JACK Audio Connection Kit [[*](http://lac.linuxaudio.org/2007/presentations/lac07_slides_gulden1.pdf)] +* https://github.com/free-creations/jackAudio4Java - thin JNI wrapper around the JACK Audio Connection Kit +* https://github.com/umjammer/jjack - Jack-to-Java Audio Driver and Bridge API +* https://github.com/residuum/JackSharp - C# bindings for jackd +* https://github.com/xthexder/go-jack - Go bindings for Jack Audio Connection Kit +* https://github.com/stetre/luajack - requires Lua (>=5.3) and JACK (API >= v0.124.1) +* https://github.com/unclechu/node-jack-connector - Bindings JACK-Audio-Connection-Kit for Node.JS + +## Metadata +* [JACK Metadata](https://jackaudio.org/metadata) + * [order](https://jackaudio.org/metadata/order) + * port-group - for stereo pair/ambisonics/etc + * [pretty-name](https://jackaudio.org/metadata/pretty-name) + * [signal-type](https://jackaudio.org/metadata/signal-type) + * [event-types](https://jackaudio.org/metadata/event-types) + * [connected](https://jackaudio.org/metadata/connected) + * [hardware](https://jackaudio.org/metadata/hardware) + * [icon-large](https://jackaudio.org/metadata/icon-large) + * [icon-small](https://jackaudio.org/metadata/icon-large) + * [icon-name](https://jackaudio.org/metadata/icon-large) +* [jack2/JackMetadata.cpp at develop · jackaudio/jack2](https://github.com/jackaudio/jack2/blob/develop/common/JackMetadata.cpp#L30) +* https://github.com/drobilla/jackey - simple define-only header that serves as an ad-hoc standard for Jack Metadata property keys + +`jack_property` - list, set and delete any metadata associated with the ports and clients of a JACK server + +* [jack-property-listener.py](https://gist.github.com/SpotlightKid/dc70dac006337c99bf65bcdc98e43ddc) - Listen to and print JACK client/port metadata changes + +# Testing +* https://github.com/falkTX/jack_interposer - Library to check at run-time whether an application makes non-RT-safe calls inside the process() callback +* https://github.com/falkTX/jack-midi-timing - Sender and receiver tool to test the timing accuracy and jitter of MIDI devices +* http://devel.tlrmx.org/audio/bitmeter - a diagnosis tool for JACK audio software on Linux +* [Zita MU1](http://kokkinizita.linuxaudio.org/linuxaudio/zita-mu1-doc/quickguide.html) - used to organise stereo monitoring +* [SilentJack](https://www.aelius.com/njh/silentjack) - silence/dead air detector for the Jack Audio Connection Kit +* [Rotter](https://www.aelius.com/njh/rotter/) - a Recording of Transmission / Audio Logger for JACK +* https://github.com/jackaudio/tools + +# Video +* [XJADEO - The X Jack Video Monitor](http://xjadeo.sourceforge.net/) - a software video player that displays a video-clip in sync with an external time source (MTC, LTC, JACK-transport). Xjadeo is useful in soundtrack composition, video monitoring or any task that requires to synchronizing movie frames with external events. + # WINE * https://github.com/wineasio/wineasio - provides an ASIO to JACK driver for WINE