7.2 KiB
Music Production Setup
This repository holds scripts, patch banks, sound resources, and notes for a Linux-based music production setup.
The current direction is a PipeWire-based system centered around Bitwig Studio. Older QJackCtl patchbay files, Jack Rack presets, and JACK startup/recording scripts are being removed from the working tree, but the migration is recorded below so the old setup can still be recovered from Git history.
Current Contents
scripts/set-pipewire-latency.sh- helper for checking, forcing, and clearing PipeWire graph quantum/rate metadata.sounds.txt- notes about useful electric piano, piano, brass, pad, organ, string, mallet, and synth sounds.soundfounts/- archived SoundFont resources.yoshimi-patches/- archived Yoshimi banks and patch collections.
PipeWire And Bitwig Studio
The new setup should prefer PipeWire as the shared audio graph instead of manually starting JACK through QJackCtl profiles and wiring sessions with QJackCtl patchbays.
For standalone low-latency work outside the DAW, use:
scripts/set-pipewire-latency.sh status
scripts/set-pipewire-latency.sh on 128 48000
scripts/set-pipewire-latency.sh off
The script writes PipeWire settings metadata with pw-metadata -n settings.
on defaults to a quantum of 128 at 48000 Hz, which is about 2.7 ms per
block. off clears clock.force-quantum and clock.force-rate so PipeWire
can return to normal behavior.
This override is not expected to be necessary when working in Bitwig Studio. Bitwig is the DAW for the new workflow, so latency should normally be handled inside that DAW/session rather than forced globally through this helper.
Legacy JACK Migration Notes
The mainline branch in this checkout is named main. At the time these
legacy files were staged for deletion, the current main / origin/main
commit was:
ee169b0e013496b177195a6719295b40f9c932dd
That commit is the last mainline commit where the old QJackCtl, Jack Rack, and script-based JACK workflow is available. To inspect one of the removed files:
git show ee169b0e013496b177195a6719295b40f9c932dd:<path>
Files Staged For Deletion
jack-rack-presets/home/fender-jazz
jack-rack-presets/home/headphones
jack-rack-presets/home/sr505zw
jack-rack-presets/newlife/bass2
jack-rack-presets/newlife/drums
jack-rack-presets/newlife/headphones
jack-rack-presets/newlife/headphones2
jack-rack-presets/newlife/m48-mix
jack-rack-presets/newlife/yamaha-trb
jack-rack-presets/onboard/headphones
jack-rack-presets/onboard/sg200
jack-rack-presets/onboard/sr505zw
jack-rack-presets/onboard/yamaha-trb
qjackctl-routing-settings/FastTrack-Practice.xml
qjackctl-routing-settings/K6-Bass+System.xml
qjackctl-routing-settings/church-eq-bass-with-synth.xml
qjackctl-routing-settings/church-eq-mix-ears-only.xml
qjackctl-routing-settings/church-eq-mix-splitchannel-with-headphone-mix.xml
qjackctl-routing-settings/church-eq-mix-splitchannel.xml
qjackctl-routing-settings/church-eq-mix.xml
qjackctl-routing-settings/church-eq-two-bass-setup.xml
qjackctl-routing-settings/keyboard-qsynth.xml
qjackctl-routing-settings/maudio-fasttrack.xml
qjackctl-routing-settings/onboard.xml
qjackctl-routing-settings/studio.xml
scripts/nl-prepare-raw-files-synth.sh
scripts/nl-prepare-raw-files.sh
scripts/nl-rec
scripts/nl-rec-1
scripts/nl-rec-service
scripts/nl-rec-service-synth
scripts/nl-split-rec
scripts/start-church-session
scripts/start-church-session-bass-with-synth
scripts/start-church-session-two-bassists
scripts/start-home-session
scripts/start-onboard-session
Jack Rack Presets
The jack-rack-presets/ files were gzip-compressed Jack Rack XML presets at
48 kHz. They store LADSPA plugin IDs, enabled/disabled state, wet/dry settings,
and raw control values.
home/contained home practice chains for Fender Jazz bass, SR505ZW bass, and headphones.onboard/contained onboard audio chains for headphones, SG200, SR505ZW, and Yamaha TRB bass.newlife/contained New Life church chains for Yamaha TRB bass, a second bass, M48 mix, drums, and one or two headphone mixes.
The bass presets were mono chains for instrument tone/level processing. The headphone, M48, and drum presets were stereo or monitor-oriented chains used by the old patchbay and session launcher scripts.
QJackCtl Patchbays
The qjackctl-routing-settings/ XML files were QJackCtl patchbay definitions.
They described JACK and MIDI clients, expected ports, and cables to restore
session routing.
FastTrack-Practice.xmlrouted a FastTrack practice setup with bass through Jack Rack, Hydrogen, QSynth, PulseAudio JACK sink/source, and meters.K6-Bass+System.xmlrouted a Komplete Audio 6 setup with Jack Rack, PulseAudio JACK, zita-at1, bridge meters, and MIDI control.maudio-fasttrack.xmlrouted FastTrack bass/headphones/QSynth practice use, including zita-at1, meters, and a JACK-to-ALSA MIDI bridge.keyboard-qsynth.xmlconnected Oxygen 61 and jack-keyboard MIDI into QSynth, with system and PulseAudio JACK audio routing.onboard.xmlconnected QSynth, MDA ePiano, jack-keyboard, Alesis Recital, LPK25, a2j/ALSA MIDI, PulseAudio JACK, and headphone routing.studio.xmlrouted a studio setup with bass, mic, MDA ePiano, Alesis Recital, LPK25, meter ports, and system outputs.church-eq-mix.xml,church-eq-mix-ears-only.xml,church-eq-mix-splitchannel.xml,church-eq-mix-splitchannel-with-headphone-mix.xml,church-eq-two-bass-setup.xml, andchurch-eq-bass-with-synth.xmldescribed New Life church routings for bass, M48 mix/drum feeds, monitors, meters, tuner input, second-bass variants, and synth/MDA ePiano variants.
Legacy Scripts
The removed scripts were tightly coupled to JACK client names, QJackCtl profiles, Jack Rack session names, and specific capture/playback ports.
start-home-sessionstarted QJackCtl profileOnboard48K, loaded home bass and headphone Jack Rack presets, and startedj2amidi_bridge.start-onboard-sessionstarted QJackCtl profileOnboard48Kand loaded onboard Yamaha TRB and headphone Jack Rack presets.start-church-sessionstarted QJackCtl profileChurch48K, loaded New Life bass, M48 mix, drums, and headphone Jack Rack presets, startedmeterbridge, and randevilspie.start-church-session-bass-with-synthextended the church session withyoshimi,a2jmidid, and separate bass/M48 meter bridges.start-church-session-two-bassistsextended the church session with second bass and second headphone Jack Rack chains plus separate meters.nl-recrecorded three JACK capture ports withjack_capture.nl-rec-1recorded the sermon channel fromsystem:capture_3.nl-rec-servicerecorded worship, sermon, and altar files from the church capture ports.nl-rec-service-synthrecorded the same service files while also capturing Yoshimi left/right outputs.nl-split-recsplit one.wavexfile into M48, drums, and bass WAV files.nl-prepare-raw-files.shsplitworship.wavexandaltar.wavexinto M48, drums, and bass WAV files withffmpeg.nl-prepare-raw-files-synth.shdid the same split while also extracting synth left/right WAV files.
These files document the old JACK-era workflow but are no longer the active direction for this repository.