Compare commits

..

2 Commits

41 changed files with 507 additions and 1236 deletions
+367
View File
@@ -0,0 +1,367 @@
# 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/bitwig-studio-yabridge-9.21.sh` - launcher for native Bitwig Studio
that forces yabridge to use the local Wine Staging 9.21 wrapper.
- `scripts/set-pipewire-latency.sh` - helper for checking, forcing, and clearing
PipeWire graph quantum/rate metadata.
- `scripts/wine-staging-9.21.sh` - isolated Wine Staging 9.21 wrapper for
yabridge and VST maintenance without replacing the system Wine package.
- `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:
```sh
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.
## Windows VSTs With Wine And yabridge
Windows VST plugins should be installed into a dedicated Wine prefix and then
exposed to Bitwig Studio through yabridge. The prefix itself should live on
Linux-native storage, while large sample libraries can live on the larger NTFS
music-production drive.
Use the native Bitwig Studio package for this workflow. The launcher below
execs `/usr/bin/bitwig-studio`; Flatpak Bitwig installations should be avoided
for yabridge-hosted plugins because they do not run in the same host filesystem
and library environment.
### Paths
Use these paths as the standard layout:
```sh
export VST_WINEPREFIX="$HOME/.local/share/wineprefixes/music-production-vst"
export VST_SAMPLE_LIBRARIES="/mnt/e/music-production/sample-libraries"
```
- `VST_WINEPREFIX` stores the Windows plugin installations, Wine registry, user
profile, authorization tools, and plugin binaries.
- `VST_SAMPLE_LIBRARIES` stores large mostly-read-only sample content, such as
the Keyscape/Spectrasonics libraries.
- yabridge-managed Linux plugin wrappers are created outside the prefix under
the normal Linux plugin locations, such as `~/.vst/yabridge` and
`~/.vst3/yabridge`.
Make sure `/mnt/e` is mounted and writable before installing or using plugins
that depend on sample libraries from that drive.
Keep installers and downloads outside the prefix. A useful convention is:
```sh
mkdir -p "$HOME/Music/Production/Installers"
mkdir -p "$HOME/Music/Production/Backups"
```
### Isolated Wine 9.21
This repo uses a local Wine Staging 9.21 wrapper for yabridge instead of
replacing the system Wine package. The wrapper expects Wine to be extracted at:
```sh
$HOME/.local/opt/wine-staging-9.21
```
Verify the wrapper before using it:
```sh
scripts/wine-staging-9.21.sh --version
```
Expected output:
```text
wine-9.21 (Staging)
```
The system Wine package remains independent:
```sh
/usr/bin/wine --version
```
The wrapper defaults to `wine64`, which matches the current 64-bit yabridge
setup. Override paths only when testing or moving the local Wine install:
```sh
WINE_STAGING_921_ROOT="$HOME/.local/opt/wine-staging-9.21" \
scripts/wine-staging-9.21.sh --version
WINE_STAGING_921_LOADER=wine64 \
scripts/wine-staging-9.21.sh --version
```
### First-Time Prefix Setup
Create the prefix and sample-library directory:
```sh
export VST_WINEPREFIX="$HOME/.local/share/wineprefixes/music-production-vst"
export VST_SAMPLE_LIBRARIES="/mnt/e/music-production/sample-libraries"
mkdir -p "$HOME/.local/share/wineprefixes"
mkdir -p "$VST_SAMPLE_LIBRARIES"
WINEPREFIX="$VST_WINEPREFIX" WINEARCH=win64 \
scripts/wine-staging-9.21.sh wineboot -u
```
Open Wine configuration once to finish initialization and review settings:
```sh
WINEPREFIX="$VST_WINEPREFIX" scripts/wine-staging-9.21.sh winecfg
```
If an installer asks for a sample-library location, point it at the NTFS sample
library path through Wine's `Z:` drive:
```text
Z:\mnt\e\music-production\sample-libraries
```
For vendor-specific libraries, prefer a subdirectory:
```text
Z:\mnt\e\music-production\sample-libraries\Spectrasonics
```
If an installer insists on putting a large library inside `C:\`, install the
plugin first, then move the library to `VST_SAMPLE_LIBRARIES` and replace the
original location with a symlink from the prefix to the real library path. Do
not move Wine registry files, authorization tools, or plugin binaries this way.
### Initializing A Maintenance Shell
For plugin installation and maintenance, start a shell with the dedicated prefix
variables set:
```sh
export VST_WINEPREFIX="$HOME/.local/share/wineprefixes/music-production-vst"
export VST_SAMPLE_LIBRARIES="/mnt/e/music-production/sample-libraries"
export WINEPREFIX="$VST_WINEPREFIX"
```
Then run installers from that shell:
```sh
scripts/wine-staging-9.21.sh "$HOME/Music/Production/Installers/Plugin Installer.exe"
```
Common maintenance commands should also go through the wrapper:
```sh
scripts/wine-staging-9.21.sh winecfg
scripts/wine-staging-9.21.sh regedit
scripts/wine-staging-9.21.sh winepath 'C:\Program Files\Common Files\VST3'
```
After installing, removing, or updating plugins, sync yabridge:
```sh
yabridgectl add "$VST_WINEPREFIX/drive_c/Program Files/Common Files/VST3"
yabridgectl add "$VST_WINEPREFIX/drive_c/Program Files/Steinberg/VstPlugins"
WINELOADER="$PWD/scripts/wine-staging-9.21.sh" yabridgectl sync
yabridgectl status
```
Only the `add` commands need to be repeated when a new plugin directory should
be managed by yabridge. For normal plugin updates, run the installer in the
maintenance shell and then run:
```sh
WINELOADER="$PWD/scripts/wine-staging-9.21.sh" yabridgectl sync
yabridgectl status
```
### Launching Bitwig With yabridge
Launch Bitwig through the repo wrapper when using bridged Windows plugins:
```sh
scripts/bitwig-studio-yabridge-9.21.sh
```
That script sets:
```sh
WINELOADER=/absolute/path/to/this/repo/scripts/wine-staging-9.21.sh
```
and then execs the native Bitwig launcher at `/usr/bin/bitwig-studio`. It also
unsets `WINEPREFIX` before launching Bitwig so the DAW itself does not impose a
global Wine prefix on plugin scanning. yabridge should use the prefix implied by
the managed plugin paths.
Override the launcher paths only for testing:
```sh
BITWIG_STUDIO=/usr/bin/bitwig-studio \
YABRIDGE_WINELOADER="$PWD/scripts/wine-staging-9.21.sh" \
scripts/bitwig-studio-yabridge-9.21.sh
```
Close Bitwig before installing, removing, updating, or syncing bridged plugins.
After syncing, reopen Bitwig and rescan plugins if it does not pick up the
changes automatically.
## 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:
```text
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:
```sh
git show ee169b0e013496b177195a6719295b40f9c932dd:<path>
```
### Files Staged For Deletion
```text
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.xml` routed a FastTrack practice setup with bass through
Jack Rack, Hydrogen, QSynth, PulseAudio JACK sink/source, and meters.
- `K6-Bass+System.xml` routed a Komplete Audio 6 setup with Jack Rack,
PulseAudio JACK, zita-at1, bridge meters, and MIDI control.
- `maudio-fasttrack.xml` routed FastTrack bass/headphones/QSynth practice use,
including zita-at1, meters, and a JACK-to-ALSA MIDI bridge.
- `keyboard-qsynth.xml` connected Oxygen 61 and jack-keyboard MIDI into
QSynth, with system and PulseAudio JACK audio routing.
- `onboard.xml` connected QSynth, MDA ePiano, jack-keyboard, Alesis Recital,
LPK25, a2j/ALSA MIDI, PulseAudio JACK, and headphone routing.
- `studio.xml` routed 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`, and
`church-eq-bass-with-synth.xml` described 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-session` started QJackCtl profile `Onboard48K`, loaded home bass
and headphone Jack Rack presets, and started `j2amidi_bridge`.
- `start-onboard-session` started QJackCtl profile `Onboard48K` and loaded
onboard Yamaha TRB and headphone Jack Rack presets.
- `start-church-session` started QJackCtl profile `Church48K`, loaded New Life
bass, M48 mix, drums, and headphone Jack Rack presets, started `meterbridge`,
and ran `devilspie`.
- `start-church-session-bass-with-synth` extended the church session with
`yoshimi`, `a2jmidid`, and separate bass/M48 meter bridges.
- `start-church-session-two-bassists` extended the church session with second
bass and second headphone Jack Rack chains plus separate meters.
- `nl-rec` recorded three JACK capture ports with `jack_capture`.
- `nl-rec-1` recorded the sermon channel from `system:capture_3`.
- `nl-rec-service` recorded worship, sermon, and altar files from the church
capture ports.
- `nl-rec-service-synth` recorded the same service files while also capturing
Yoshimi left/right outputs.
- `nl-split-rec` split one `.wavex` file into M48, drums, and bass WAV files.
- `nl-prepare-raw-files.sh` split `worship.wavex` and `altar.wavex` into M48,
drums, and bass WAV files with `ffmpeg`.
- `nl-prepare-raw-files-synth.sh` did 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.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -1,76 +0,0 @@
<!DOCTYPE patchbay>
<patchbay version="0.3.13" name="FastTrack-Practice">
<output-sockets>
<socket exclusive="off" client="system" type="jack-audio" name="FastTrack XLR">
<plug>capture_1</plug>
</socket>
<socket exclusive="off" client="system" type="jack-audio" name="FastTrack 1/4in">
<plug>capture_2</plug>
</socket>
<socket exclusive="off" client="jack_rack_bass" type="jack-audio" name="Bass FX Out">
<plug>out_1</plug>
</socket>
<socket exclusive="off" client="Hydrogen" type="jack-audio" name="Hydrogen L">
<plug>out_L</plug>
</socket>
<socket exclusive="off" client="Hydrogen" type="jack-audio" name="Hydrogen R">
<plug>out_R</plug>
</socket>
<socket exclusive="off" client="qsynth" type="jack-audio" name="QSynth 1 L">
<plug>l_00</plug>
</socket>
<socket exclusive="off" client="qsynth" type="jack-audio" name="QSynth 1 R">
<plug>r_00</plug>
</socket>
<socket exclusive="off" client="Midi Through" type="alsa-midi" name="Midi Through">
<plug>Midi Through Port-0</plug>
</socket>
<socket exclusive="off" client="PulseAudio JACK Sink" type="jack-audio" name="PulseAudio Sink L">
<plug>front-left</plug>
</socket>
<socket exclusive="off" client="PulseAudio JACK Sink" type="jack-audio" name="PulseAudio Sink R">
<plug>front-right</plug>
</socket>
</output-sockets>
<input-sockets>
<socket exclusive="off" client="system" type="jack-audio" name="FastTrack L">
<plug>playback_1</plug>
</socket>
<socket exclusive="off" client="system" type="jack-audio" name="FastTrack R">
<plug>playback_2</plug>
</socket>
<socket exclusive="off" client="jack_rack_bass" type="jack-audio" name="Bass FX In">
<plug>in_1</plug>
</socket>
<socket exclusive="off" client="Midi Through" type="alsa-midi" name="Midi Through">
<plug>Midi Through Port-0</plug>
</socket>
<socket exclusive="off" client="meter" type="jack-audio" name="Meter (Bass Raw)">
<plug>meter_1</plug>
</socket>
<socket exclusive="off" client="meter" type="jack-audio" name="Meter (Bass FX)">
<plug>meter_2</plug>
</socket>
<socket exclusive="off" client="PulseAudio JACK Source" type="jack-audio" name="PulseAudio Source L">
<plug>front-left</plug>
</socket>
<socket exclusive="off" client="PulseAudio JACK Source" type="jack-audio" name="PulseAudio Source R">
<plug>front-right</plug>
</socket>
</input-sockets>
<slots/>
<cables>
<cable output="FastTrack 1/4in" input="Bass FX In" type="jack-audio"/>
<cable output="FastTrack 1/4in" input="Meter (Bass Raw)" type="jack-audio"/>
<cable output="QSynth 1 L" input="FastTrack L" type="jack-audio"/>
<cable output="QSynth 1 R" input="FastTrack R" type="jack-audio"/>
<cable output="PulseAudio Sink L" input="FastTrack L" type="jack-audio"/>
<cable output="PulseAudio Sink R" input="FastTrack R" type="jack-audio"/>
<cable output="Bass FX Out" input="FastTrack L" type="jack-audio"/>
<cable output="Bass FX Out" input="FastTrack R" type="jack-audio"/>
<cable output="Bass FX Out" input="Meter (Bass FX)" type="jack-audio"/>
<cable output="Hydrogen L" input="FastTrack L" type="jack-audio"/>
<cable output="Hydrogen R" input="FastTrack R" type="jack-audio"/>
</cables>
</patchbay>
@@ -1,95 +0,0 @@
<!DOCTYPE patchbay>
<patchbay version="0.3.11" name="K6-Bass+System">
<output-sockets>
<socket exclusive="off" client="system" type="jack-audio" name="system">
<plug>capture_1</plug>
<plug>capture_2</plug>
<plug>capture_3</plug>
<plug>capture_4</plug>
<plug>capture_5</plug>
<plug>capture_6</plug>
</socket>
<socket exclusive="off" client="PulseAudio JACK Sink" type="jack-audio" name="PulseAudio JACK Sink">
<plug>front-left</plug>
<plug>front-right</plug>
</socket>
<socket exclusive="off" client="jack_rack" type="jack-audio" name="jack_rack">
<plug>out_1</plug>
<plug>out_2</plug>
</socket>
<socket exclusive="off" client="jack_rack-01" type="jack-audio" name="jack_rack-01">
<plug>out_1</plug>
<plug>out_2</plug>
</socket>
<socket exclusive="off" client="bridge-[0-9]+" type="jack-audio" name="bridge-2688">
<plug>monitor_1</plug>
<plug>monitor_2</plug>
</socket>
<socket exclusive="off" client="zita-at1" type="jack-audio" name="zita-at1">
<plug>out</plug>
</socket>
<socket exclusive="off" client="jack_rack" type="jack-audio" name="jack_rack 2">
<plug>out_1</plug>
<plug>out_1</plug>
</socket>
<socket exclusive="off" client="Midi Through" type="alsa-midi" name="Midi Through">
<plug>Midi Through Port-0</plug>
</socket>
<socket exclusive="off" client="Komplete Audio 6" type="alsa-midi" name="Komplete Audio 6">
<plug>Komplete Audio 6 MIDI 1</plug>
</socket>
<socket exclusive="off" client="JACK Rack" type="alsa-midi" name="JACK Rack">
<plug>Control</plug>
<plug>Control</plug>
</socket>
</output-sockets>
<input-sockets>
<socket exclusive="off" client="system" type="jack-audio" name="system">
<plug>playback_1</plug>
<plug>playback_2</plug>
<plug>playback_3</plug>
<plug>playback_4</plug>
<plug>playback_5</plug>
<plug>playback_6</plug>
</socket>
<socket exclusive="off" client="PulseAudio JACK Source" type="jack-audio" name="PulseAudio JACK Source">
<plug>front-left</plug>
<plug>front-right</plug>
</socket>
<socket exclusive="off" client="jack_rack" type="jack-audio" name="jack_rack">
<plug>in_1</plug>
<plug>in_2</plug>
</socket>
<socket exclusive="off" client="jack_rack-01" type="jack-audio" name="jack_rack-01">
<plug>in_1</plug>
<plug>in_2</plug>
</socket>
<socket exclusive="off" client="bridge-[0-9]+" type="jack-audio" name="bridge-2688">
<plug>meter_1</plug>
<plug>meter_2</plug>
</socket>
<socket exclusive="off" client="zita-at1" type="jack-audio" name="zita-at1">
<plug>in</plug>
</socket>
<socket exclusive="off" client="zita-at1" type="jack-midi" name="zita-at1">
<plug>pitch</plug>
</socket>
<socket exclusive="off" client="Midi Through" type="alsa-midi" name="Midi Through">
<plug>Midi Through Port-0</plug>
</socket>
<socket exclusive="off" client="Komplete Audio 6" type="alsa-midi" name="Komplete Audio 6">
<plug>Komplete Audio 6 MIDI 1</plug>
</socket>
<socket exclusive="off" client="JACK Rack" type="alsa-midi" name="JACK Rack">
<plug>Control</plug>
<plug>Control</plug>
</socket>
</input-sockets>
<slots/>
<cables>
<cable output="system" input="jack_rack" type="jack-audio"/>
<cable output="PulseAudio JACK Sink" input="system" type="jack-audio"/>
<cable output="jack_rack 2" input="system" type="jack-audio"/>
</cables>
</patchbay>
@@ -1,135 +0,0 @@
<!DOCTYPE patchbay>
<patchbay version="0.4.1" name="church-eq-bass-with-synth">
<output-sockets>
<socket exclusive="off" client="system" type="jack-audio" name="Raw Bass Capture">
<plug>capture_1</plug>
</socket>
<socket exclusive="off" client="jack_rack_bass" type="jack-audio" name="Bass FX OUT">
<plug>out_1</plug>
</socket>
<socket exclusive="off" client="jack_rack_headphones" type="jack-audio" name="Headphones FX OUT L">
<plug>out_1</plug>
</socket>
<socket exclusive="off" client="jack_rack_headphones" type="jack-audio" name="Headphones FX OUT R">
<plug>out_2</plug>
</socket>
<socket exclusive="off" client="system" type="jack-audio" name="Raw M48 L Capture">
<plug>capture_3</plug>
</socket>
<socket exclusive="off" client="system" type="jack-audio" name="Raw M48 R Capture">
<plug>capture_4</plug>
</socket>
<socket exclusive="off" client="jack_rack_mix" type="jack-audio" name="M48 Mix FX OUT">
<plug>out_1</plug>
</socket>
<socket exclusive="off" client="jack_rack_mixdrums" type="jack-audio" name="M48 Drums FX OUT">
<plug>out_1</plug>
</socket>
<socket exclusive="off" client="yoshimi" type="jack-audio" name="yoshimi OUT L">
<plug>left</plug>
</socket>
<socket exclusive="off" client="yoshimi" type="jack-audio" name="yoshimi OUT R">
<plug>right</plug>
</socket>
<socket exclusive="off" client="MDA ePiano" type="jack-audio" name="MDA ePiano OUT L">
<plug>left_out</plug>
</socket>
<socket exclusive="off" client="MDA ePiano" type="jack-audio" name="MDA ePiano OUT R">
<plug>right_out</plug>
</socket>
<socket exclusive="off" client="LPK25" type="alsa-midi" name="Akai LPK25">
<plug>LPK25 MIDI 1</plug>
</socket>
<socket exclusive="off" client="a2j" type="jack-midi" name="A2J MIDI OUT">
<plug>Midi Through \[14\] \(capture\): Midi Through Port-0</plug>
</socket>
</output-sockets>
<input-sockets>
<socket exclusive="off" client="jack_rack_bass" type="jack-audio" name="Bass FX IN">
<plug>in_1</plug>
</socket>
<socket exclusive="off" client="system" type="jack-audio" name="SEND">
<plug>playback_3</plug>
</socket>
<socket exclusive="off" client="meter_bass" type="jack-audio" name="Meter: Bass Raw">
<plug>meter_1</plug>
</socket>
<socket exclusive="off" client="meter_bass" type="jack-audio" name="Meter: Bass FX">
<plug>meter_2</plug>
</socket>
<socket exclusive="off" client="meter_bass" type="jack-audio" name="Meter: Synth">
<plug>meter_3</plug>
</socket>
<socket exclusive="off" client="jack_rack_headphones" type="jack-audio" name="Headphones FX IN L">
<plug>in_1</plug>
</socket>
<socket exclusive="off" client="jack_rack_headphones" type="jack-audio" name="Headphones FX IN R">
<plug>in_2</plug>
</socket>
<socket exclusive="off" client="system" type="jack-audio" name="Monitor L">
<plug>playback_1</plug>
</socket>
<socket exclusive="off" client="system" type="jack-audio" name="Monitor R">
<plug>playback_2</plug>
</socket>
<socket exclusive="off" client="meter_bass" type="jack-audio" name="Meter: Headphones">
<plug>meter_4</plug>
</socket>
<socket exclusive="off" client="jack_rack_mix" type="jack-audio" name="M48 Mix FX IN">
<plug>in_1</plug>
</socket>
<socket exclusive="off" client="jack_rack_mixdrums" type="jack-audio" name="M48 Drums FX IN">
<plug>in_1</plug>
</socket>
<socket exclusive="off" client="meter_m48" type="jack-audio" name="Meter: M48 Mix">
<plug>meter_1</plug>
</socket>
<socket exclusive="off" client="meter_m48" type="jack-audio" name="Meter: M48 Drums">
<plug>meter_2</plug>
</socket>
<socket exclusive="off" client="zita-at1" type="jack-audio" name="AT1 (tuner)">
<plug>in</plug>
</socket>
<socket exclusive="off" client="Midi Through" type="alsa-midi" name="A2J MIDI IN">
<plug>Midi Through Port-0</plug>
</socket>
<socket exclusive="off" client="yoshimi-01" type="jack-midi" name="yoshimi MIDI IN">
<plug>midi in</plug>
</socket>
<socket exclusive="off" client="MDA ePiano" type="jack-midi" name="MDA ePiano IN">
<plug>event_in</plug>
</socket>
</input-sockets>
<slots/>
<cables>
<cable output="Raw Bass Capture" input="Bass FX IN" type="jack-audio"/>
<cable output="Raw Bass Capture" input="AT1 (tuner)" type="jack-audio"/>
<cable output="Raw Bass Capture" input="Meter: Bass Raw" type="jack-audio"/>
<cable output="Raw Bass Capture" input="SEND" type="jack-audio"/>
<cable output="Bass FX OUT" input="Headphones FX IN L" type="jack-audio"/>
<cable output="Bass FX OUT" input="Headphones FX IN R" type="jack-audio"/>
<cable output="Bass FX OUT" input="Meter: Bass FX" type="jack-audio"/>
<cable output="Headphones FX OUT L" input="Monitor L" type="jack-audio"/>
<cable output="Headphones FX OUT L" input="Meter: Headphones" type="jack-audio"/>
<cable output="Headphones FX OUT R" input="Monitor R" type="jack-audio"/>
<cable output="Raw M48 L Capture" input="M48 Mix FX IN" type="jack-audio"/>
<cable output="Raw M48 L Capture" input="Meter: M48 Mix" type="jack-audio"/>
<cable output="Raw M48 R Capture" input="Meter: M48 Drums" type="jack-audio"/>
<cable output="Raw M48 R Capture" input="M48 Drums FX IN" type="jack-audio"/>
<cable output="M48 Mix FX OUT" input="Headphones FX IN L" type="jack-audio"/>
<cable output="M48 Mix FX OUT" input="Headphones FX IN R" type="jack-audio"/>
<cable output="M48 Drums FX OUT" input="Headphones FX IN R" type="jack-audio"/>
<cable output="M48 Drums FX OUT" input="Headphones FX IN L" type="jack-audio"/>
<cable output="yoshimi OUT L" input="Headphones FX IN L" type="jack-audio"/>
<cable output="yoshimi OUT L" input="SEND" type="jack-audio"/>
<cable output="yoshimi OUT L" input="Meter: Synth" type="jack-audio"/>
<cable output="yoshimi OUT R" input="Headphones FX IN R" type="jack-audio"/>
<cable output="Akai LPK25" input="A2J MIDI IN" type="alsa-midi"/>
<cable output="A2J MIDI OUT" input="yoshimi MIDI IN" type="jack-midi"/>
<cable output="A2J MIDI OUT" input="MDA ePiano IN" type="jack-midi"/>
<cable output="MDA ePiano OUT L" input="Headphones FX IN L" type="jack-audio"/>
<cable output="MDA ePiano OUT L" input="Meter: Synth" type="jack-audio"/>
<cable output="MDA ePiano OUT R" input="Headphones FX IN R" type="jack-audio"/>
</cables>
</patchbay>
@@ -1,65 +0,0 @@
<!DOCTYPE patchbay>
<patchbay version="0.3.11" name="church-eq-mix-ears-only">
<output-sockets>
<socket exclusive="off" client="system" type="jack-audio" name="Bass Out">
<plug>capture_1</plug>
</socket>
<socket exclusive="off" client="system" type="jack-audio" name="Mix L">
<plug>capture_3</plug>
</socket>
<socket exclusive="off" client="system" type="jack-audio" name="Mix R">
<plug>capture_4</plug>
</socket>
<socket exclusive="off" client="jack_rack_bass" type="jack-audio" name="Bass FX Out L">
<plug>out_1</plug>
</socket>
<socket exclusive="off" client="jack_rack_bass" type="jack-audio" name="Bass FX Out R">
<plug>out_1</plug>
</socket>
<socket exclusive="off" client="jack_rack_mix" type="jack-audio" name="Mix FX Out L">
<plug>out_1</plug>
</socket>
<socket exclusive="off" client="jack_rack_mix" type="jack-audio" name="Mix FX Out R">
<plug>out_2</plug>
</socket>
</output-sockets>
<input-sockets>
<socket exclusive="off" client="bridge-[0-9]+" type="jack-audio" name="Bass OUT VU">
<plug>meter_1</plug>
</socket>
<socket exclusive="off" client="bridge-[0-9]+" type="jack-audio" name="Bass Mix VU">
<plug>meter_2</plug>
</socket>
<socket exclusive="off" client="system" type="jack-audio" name="Bass Send">
<plug>playback_3</plug>
</socket>
<socket exclusive="off" client="jack_rack_bass" type="jack-audio" name="Bass FX">
<plug>in_1</plug>
</socket>
<socket exclusive="off" client="jack_rack_mix" type="jack-audio" name="Mix FX L">
<plug>in_1</plug>
</socket>
<socket exclusive="off" client="jack_rack_mix" type="jack-audio" name="Mix FX R">
<plug>in_2</plug>
</socket>
<socket exclusive="off" client="system" type="jack-audio" name="Monitor L">
<plug>playback_1</plug>
</socket>
<socket exclusive="off" client="system" type="jack-audio" name="Monitor R">
<plug>playback_2</plug>
</socket>
</input-sockets>
<slots/>
<cables>
<cable output="Bass Out" input="Bass FX" type="jack-audio"/>
<cable output="Bass Out" input="Bass OUT VU" type="jack-audio"/>
<cable output="Mix L" input="Mix FX L" type="jack-audio"/>
<cable output="Mix R" input="Mix FX R" type="jack-audio"/>
<cable output="Bass FX Out L" input="Monitor L" type="jack-audio"/>
<cable output="Bass FX Out L" input="Bass Mix VU" type="jack-audio"/>
<cable output="Bass FX Out R" input="Monitor R" type="jack-audio"/>
<cable output="Mix FX Out L" input="Monitor L" type="jack-audio"/>
<cable output="Mix FX Out R" input="Monitor R" type="jack-audio"/>
</cables>
</patchbay>
@@ -1,131 +0,0 @@
<!DOCTYPE patchbay>
<patchbay version="0.4.2" name="church-eq-mix-splitchannel-with-headphone-mix">
<output-sockets>
<socket name="Headphone Mix L" type="jack-audio" client="jack_rack_headphones" exclusive="off">
<plug>out_1</plug>
</socket>
<socket name="Headphone Mix R" type="jack-audio" client="jack_rack_headphones" exclusive="off">
<plug>out_2</plug>
</socket>
<socket name="Bass Out" type="jack-audio" client="system" exclusive="off">
<plug>capture_1</plug>
</socket>
<socket name="Bass2 Out" type="jack-audio" client="system" exclusive="off">
<plug>capture_2</plug>
</socket>
<socket name="Mix Drums L" type="jack-audio" client="jack_rack_mixdrums" exclusive="off">
<plug>out_1</plug>
</socket>
<socket name="Mix Drums R" type="jack-audio" client="jack_rack_mixdrums" exclusive="off">
<plug>out_2</plug>
</socket>
<socket name="Bass FX Out L" type="jack-audio" client="jack_rack_bass" exclusive="off">
<plug>out_1</plug>
</socket>
<socket name="Bass FX Out R" type="jack-audio" client="jack_rack_bass" exclusive="off">
<plug>out_1</plug>
</socket>
<socket name="Bass2 FX Out L" type="jack-audio" client="jack_rack_bass2" exclusive="off">
<plug>out_1</plug>
</socket>
<socket name="Bass2 FX Out R" type="jack-audio" client="jack_rack_bass2" exclusive="off">
<plug>out_2</plug>
</socket>
<socket name="Mix L" type="jack-audio" client="system" exclusive="off">
<plug>capture_3</plug>
</socket>
<socket name="Mix R" type="jack-audio" client="system" exclusive="off">
<plug>capture_4</plug>
</socket>
<socket name="Mix FX Out L" type="jack-audio" client="jack_rack_mix" exclusive="off">
<plug>out_1</plug>
</socket>
<socket name="Mix FX Out R" type="jack-audio" client="jack_rack_mix" exclusive="off">
<plug>out_2</plug>
</socket>
</output-sockets>
<input-sockets>
<socket name="Headphone Mix L" type="jack-audio" client="jack_rack_headphones" exclusive="off">
<plug>in_1</plug>
</socket>
<socket name="Headphone Mix R" type="jack-audio" client="jack_rack_headphones" exclusive="off">
<plug>in_2</plug>
</socket>
<socket name="Headphones2 Mix L" type="jack-audio" client="jack_rack_headphones2" exclusive="off">
<plug>in_1</plug>
</socket>
<socket name="Headphones2 MixR" type="jack-audio" client="jack_rack_headphones2" exclusive="off">
<plug>in_2</plug>
</socket>
<socket name="Meter: Headphones" type="jack-audio" client="meter" exclusive="off">
<plug>meter_5</plug>
</socket>
<socket name="AT1 (Tuner)" type="jack-audio" client="zita-at1" exclusive="off">
<plug>in</plug>
</socket>
<socket name="Bass Send" type="jack-audio" client="system" exclusive="off">
<plug>playback_3</plug>
</socket>
<socket name="Bass FX" type="jack-audio" client="jack_rack_bass" exclusive="off">
<plug>in_1</plug>
</socket>
<socket name="Bass2 FX" type="jack-audio" client="jack_rack_bass2" exclusive="off">
<plug>in_1</plug>
</socket>
<socket name="Meter: Bass Raw" type="jack-audio" client="meter" exclusive="off">
<plug>meter_1</plug>
</socket>
<socket name="Meter: Bass Post FX" type="jack-audio" client="meter" exclusive="off">
<plug>meter_2</plug>
</socket>
<socket name="Monitor L" type="jack-audio" client="system" exclusive="off">
<plug>playback_1</plug>
</socket>
<socket name="Monitor R" type="jack-audio" client="system" exclusive="off">
<plug>playback_2</plug>
</socket>
<socket name="Mix FX L" type="jack-audio" client="jack_rack_mix" exclusive="off">
<plug>in_1</plug>
</socket>
<socket name="Mix FX R" type="jack-audio" client="jack_rack_mix" exclusive="off">
<plug>in_2</plug>
</socket>
<socket name="Mix Drums L" type="jack-audio" client="jack_rack_mixdrums" exclusive="off">
<plug>in_1</plug>
</socket>
<socket name="Mix Drums R" type="jack-audio" client="jack_rack_mixdrums" exclusive="off">
<plug>in_2</plug>
</socket>
<socket name="Meter: Mix L" type="jack-audio" client="meter" exclusive="off">
<plug>meter_3</plug>
</socket>
<socket name="Meter: Mix R" type="jack-audio" client="meter" exclusive="off">
<plug>meter_4</plug>
</socket>
</input-sockets>
<slots/>
<cables>
<cable input="Monitor L" output="Headphone Mix L" type="jack-audio"/>
<cable input="Meter: Headphones" output="Headphone Mix L" type="jack-audio"/>
<cable input="Monitor R" output="Headphone Mix R" type="jack-audio"/>
<cable input="Bass FX" output="Bass Out" type="jack-audio"/>
<cable input="AT1 (Tuner)" output="Bass Out" type="jack-audio"/>
<cable input="Meter: Bass Raw" output="Bass Out" type="jack-audio"/>
<cable input="Bass2 FX" output="Bass2 Out" type="jack-audio"/>
<cable input="AT1 (Tuner)" output="Bass2 Out" type="jack-audio"/>
<cable input="Headphone Mix L" output="Mix Drums L" type="jack-audio"/>
<cable input="Headphone Mix R" output="Mix Drums R" type="jack-audio"/>
<cable input="Meter: Bass Post FX" output="Bass FX Out L" type="jack-audio"/>
<cable input="Headphone Mix L" output="Bass FX Out L" type="jack-audio"/>
<cable input="Headphone Mix R" output="Bass FX Out R" type="jack-audio"/>
<cable input="Mix FX L" output="Mix L" type="jack-audio"/>
<cable input="Meter: Mix L" output="Mix L" type="jack-audio"/>
<cable input="Mix FX R" output="Mix L" type="jack-audio"/>
<cable input="Meter: Mix R" output="Mix R" type="jack-audio"/>
<cable input="Mix Drums L" output="Mix R" type="jack-audio"/>
<cable input="Mix Drums R" output="Mix R" type="jack-audio"/>
<cable input="Headphone Mix L" output="Mix FX Out L" type="jack-audio"/>
<cable input="Headphone Mix R" output="Mix FX Out R" type="jack-audio"/>
</cables>
</patchbay>
@@ -1,94 +0,0 @@
<!DOCTYPE patchbay>
<patchbay version="0.3.11" name="church-eq-mix-splitchannel">
<output-sockets>
<socket exclusive="off" client="system" type="jack-audio" name="Bass Out">
<plug>capture_1</plug>
</socket>
<socket exclusive="off" client="jack_rack_mixdrums" type="jack-audio" name="Mix Drums L">
<plug>out_1</plug>
</socket>
<socket exclusive="off" client="jack_rack_mixdrums" type="jack-audio" name="Mix Drums R">
<plug>out_2</plug>
</socket>
<socket exclusive="off" client="jack_rack_bass" type="jack-audio" name="Bass FX Out L">
<plug>out_1</plug>
</socket>
<socket exclusive="off" client="jack_rack_bass" type="jack-audio" name="Bass FX Out R">
<plug>out_1</plug>
</socket>
<socket exclusive="off" client="system" type="jack-audio" name="Mix L">
<plug>capture_3</plug>
</socket>
<socket exclusive="off" client="system" type="jack-audio" name="Mix R">
<plug>capture_4</plug>
</socket>
<socket exclusive="off" client="jack_rack_mix" type="jack-audio" name="Mix FX Out L">
<plug>out_1</plug>
</socket>
<socket exclusive="off" client="jack_rack_mix" type="jack-audio" name="Mix FX Out R">
<plug>out_2</plug>
</socket>
</output-sockets>
<input-sockets>
<socket exclusive="off" client="zita-at1" type="jack-audio" name="AT1 (Tuner)">
<plug>in</plug>
</socket>
<socket exclusive="off" client="system" type="jack-audio" name="Bass Send">
<plug>playback_3</plug>
</socket>
<socket exclusive="off" client="jack_rack_bass" type="jack-audio" name="Bass FX">
<plug>in_1</plug>
</socket>
<socket exclusive="off" client="meter" type="jack-audio" name="Meter: Bass Raw">
<plug>meter_1</plug>
</socket>
<socket exclusive="off" client="meter" type="jack-audio" name="Meter: Bass Post FX">
<plug>meter_2</plug>
</socket>
<socket exclusive="off" client="system" type="jack-audio" name="Monitor L">
<plug>playback_1</plug>
</socket>
<socket exclusive="off" client="system" type="jack-audio" name="Monitor R">
<plug>playback_2</plug>
</socket>
<socket exclusive="off" client="jack_rack_mix" type="jack-audio" name="Mix FX L">
<plug>in_1</plug>
</socket>
<socket exclusive="off" client="jack_rack_mix" type="jack-audio" name="Mix FX R">
<plug>in_2</plug>
</socket>
<socket exclusive="off" client="jack_rack_mixdrums" type="jack-audio" name="Mix Drums L">
<plug>in_1</plug>
</socket>
<socket exclusive="off" client="jack_rack_mixdrums" type="jack-audio" name="Mix Drums R">
<plug>in_2</plug>
</socket>
<socket exclusive="off" client="meter" type="jack-audio" name="Meter: Mix L">
<plug>meter_3</plug>
</socket>
<socket exclusive="off" client="meter" type="jack-audio" name="Meter: Mix R">
<plug>meter_4</plug>
</socket>
</input-sockets>
<slots/>
<cables>
<cable output="Bass Out" input="Bass FX" type="jack-audio"/>
<cable output="Bass Out" input="Bass Send" type="jack-audio"/>
<cable output="Bass Out" input="AT1 (Tuner)" type="jack-audio"/>
<cable output="Bass Out" input="Meter: Bass Raw" type="jack-audio"/>
<cable output="Bass FX Out L" input="Monitor L" type="jack-audio"/>
<cable output="Bass FX Out L" input="Meter: Bass Post FX" type="jack-audio"/>
<cable output="Bass FX Out R" input="Monitor R" type="jack-audio"/>
<cable output="Mix L" input="Mix FX L" type="jack-audio"/>
<cable output="Mix L" input="Meter: Mix L" type="jack-audio"/>
<cable output="Mix L" input="Mix FX R" type="jack-audio"/>
<cable output="Mix R" input="Meter: Mix R" type="jack-audio"/>
<cable output="Mix R" input="Mix Drums L" type="jack-audio"/>
<cable output="Mix R" input="Mix Drums R" type="jack-audio"/>
<cable output="Mix FX Out L" input="Monitor L" type="jack-audio"/>
<cable output="Mix FX Out R" input="Monitor R" type="jack-audio"/>
<cable output="Mix Drums L" input="Monitor L" type="jack-audio"/>
<cable output="Mix Drums R" input="Monitor R" type="jack-audio"/>
</cables>
</patchbay>
@@ -1,78 +0,0 @@
<!DOCTYPE patchbay>
<patchbay version="0.3.11" name="church-eq-mix">
<output-sockets>
<socket exclusive="off" client="system" type="jack-audio" name="Bass Out">
<plug>capture_1</plug>
</socket>
<socket exclusive="off" client="jack_rack_bass" type="jack-audio" name="Bass FX Out L">
<plug>out_1</plug>
</socket>
<socket exclusive="off" client="jack_rack_bass" type="jack-audio" name="Bass FX Out R">
<plug>out_1</plug>
</socket>
<socket exclusive="off" client="system" type="jack-audio" name="Mix L">
<plug>capture_3</plug>
</socket>
<socket exclusive="off" client="system" type="jack-audio" name="Mix R">
<plug>capture_4</plug>
</socket>
<socket exclusive="off" client="jack_rack_mix" type="jack-audio" name="Mix FX Out L">
<plug>out_1</plug>
</socket>
<socket exclusive="off" client="jack_rack_mix" type="jack-audio" name="Mix FX Out R">
<plug>out_2</plug>
</socket>
</output-sockets>
<input-sockets>
<socket exclusive="off" client="zita-at1" type="jack-audio" name="AT1 (Tuner)">
<plug>in</plug>
</socket>
<socket exclusive="off" client="system" type="jack-audio" name="Bass Send">
<plug>playback_3</plug>
</socket>
<socket exclusive="off" client="jack_rack_bass" type="jack-audio" name="Bass FX">
<plug>in_1</plug>
</socket>
<socket exclusive="off" client="meter" type="jack-audio" name="Meter: Bass Raw">
<plug>meter_1</plug>
</socket>
<socket exclusive="off" client="meter" type="jack-audio" name="Meter: Bass Post FX">
<plug>meter_2</plug>
</socket>
<socket exclusive="off" client="system" type="jack-audio" name="Monitor L">
<plug>playback_1</plug>
</socket>
<socket exclusive="off" client="system" type="jack-audio" name="Monitor R">
<plug>playback_2</plug>
</socket>
<socket exclusive="off" client="jack_rack_mix" type="jack-audio" name="Mix FX L">
<plug>in_1</plug>
</socket>
<socket exclusive="off" client="jack_rack_mix" type="jack-audio" name="Mix FX R">
<plug>in_2</plug>
</socket>
<socket exclusive="off" client="meter" type="jack-audio" name="Meter: Mix L">
<plug>meter_3</plug>
</socket>
<socket exclusive="off" client="meter" type="jack-audio" name="Meter: Mix R">
<plug>meter_4</plug>
</socket>
</input-sockets>
<slots/>
<cables>
<cable output="Bass Out" input="Bass FX" type="jack-audio"/>
<cable output="Bass Out" input="Bass Send" type="jack-audio"/>
<cable output="Bass Out" input="AT1 (Tuner)" type="jack-audio"/>
<cable output="Bass Out" input="Meter: Bass Raw" type="jack-audio"/>
<cable output="Mix L" input="Mix FX L" type="jack-audio"/>
<cable output="Mix L" input="Meter: Mix L" type="jack-audio"/>
<cable output="Mix R" input="Mix FX R" type="jack-audio"/>
<cable output="Mix R" input="Meter: Mix R" type="jack-audio"/>
<cable output="Bass FX Out L" input="Monitor L" type="jack-audio"/>
<cable output="Bass FX Out L" input="Meter: Bass Post FX" type="jack-audio"/>
<cable output="Bass FX Out R" input="Monitor R" type="jack-audio"/>
<cable output="Mix FX Out L" input="Monitor L" type="jack-audio"/>
<cable output="Mix FX Out R" input="Monitor R" type="jack-audio"/>
</cables>
</patchbay>
@@ -1,140 +0,0 @@
<!DOCTYPE patchbay>
<patchbay version="0.4.2" name="church-eq-two-bass-setup">
<output-sockets>
<socket name="Raw Bass Capture" type="jack-audio" client="system" exclusive="off">
<plug>capture_1</plug>
</socket>
<socket name="Bass FX OUT" type="jack-audio" client="jack_rack_bass" exclusive="off">
<plug>out_1</plug>
</socket>
<socket name="Headphones FX OUT L" type="jack-audio" client="jack_rack_headphones" exclusive="off">
<plug>out_1</plug>
</socket>
<socket name="Headphones FX OUT R" type="jack-audio" client="jack_rack_headphones" exclusive="off">
<plug>out_2</plug>
</socket>
<socket name="Raw Bass 2 Capture" type="jack-audio" client="system" exclusive="off">
<plug>capture_2</plug>
</socket>
<socket name="Bass 2 FX OUT 2" type="jack-audio" client="jack_rack_bass2" exclusive="off">
<plug>out_1</plug>
</socket>
<socket name="Headphones 2 FX OUT L" type="jack-audio" client="jack_rack_headphones2" exclusive="off">
<plug>out_1</plug>
</socket>
<socket name="Headphones 2 FX OUT R" type="jack-audio" client="jack_rack_headphones2" exclusive="off">
<plug>out_2</plug>
</socket>
<socket name="Raw M48 L Capture" type="jack-audio" client="system" exclusive="off">
<plug>capture_3</plug>
</socket>
<socket name="Raw M48 R Capture" type="jack-audio" client="system" exclusive="off">
<plug>capture_4</plug>
</socket>
<socket name="M48 Mix FX OUT" type="jack-audio" client="jack_rack_mix" exclusive="off">
<plug>out_1</plug>
</socket>
<socket name="M48 Drums FX OUT" type="jack-audio" client="jack_rack_mixdrums" exclusive="off">
<plug>out_1</plug>
</socket>
</output-sockets>
<input-sockets>
<socket name="Bass FX IN" type="jack-audio" client="jack_rack_bass" exclusive="off">
<plug>in_1</plug>
</socket>
<socket name="Meter: Bass Raw" type="jack-audio" client="meter_bass" exclusive="off">
<plug>meter_1</plug>
</socket>
<socket name="Meter: Bass FX" type="jack-audio" client="meter_bass" exclusive="off">
<plug>meter_2</plug>
</socket>
<socket name="Headphones FX IN L" type="jack-audio" client="jack_rack_headphones" exclusive="off">
<plug>in_1</plug>
</socket>
<socket name="Headphones FX IN R" type="jack-audio" client="jack_rack_headphones" exclusive="off">
<plug>in_2</plug>
</socket>
<socket name="Monitor L" type="jack-audio" client="system" exclusive="off">
<plug>playback_1</plug>
</socket>
<socket name="Monitor R" type="jack-audio" client="system" exclusive="off">
<plug>playback_2</plug>
</socket>
<socket name="Meter: Headphones" type="jack-audio" client="meter_bass" exclusive="off">
<plug>meter_3</plug>
</socket>
<socket name="Bass 2 FX IN" type="jack-audio" client="jack_rack_bass2" exclusive="off">
<plug>in_1</plug>
</socket>
<socket name="Meter: Bass 2 Raw" type="jack-audio" client="meter_bass2" exclusive="off">
<plug>meter_1</plug>
</socket>
<socket name="Meter: Bass 2 FX" type="jack-audio" client="meter_bass2" exclusive="off">
<plug>meter_2</plug>
</socket>
<socket name="Headphones 2 FX IN L" type="jack-audio" client="jack_rack_headphones2" exclusive="off">
<plug>in_1</plug>
</socket>
<socket name="Headphones 2 FX IN R" type="jack-audio" client="jack_rack_headphones2" exclusive="off">
<plug>in_2</plug>
</socket>
<socket name="Monitor 2 L" type="jack-audio" client="system" exclusive="off">
<plug>playback_3</plug>
</socket>
<socket name="Monitor 2 R" type="jack-audio" client="system" exclusive="off">
<plug>playback_4</plug>
</socket>
<socket name="Meter: Headphones 2" type="jack-audio" client="meter_bass2" exclusive="off">
<plug>meter_3</plug>
</socket>
<socket name="M48 Mix FX IN" type="jack-audio" client="jack_rack_mix" exclusive="off">
<plug>in_1</plug>
</socket>
<socket name="M48 Drums FX IN 2" type="jack-audio" client="jack_rack_mixdrums" exclusive="off">
<plug>in_1</plug>
</socket>
<socket name="Meter: M48 Mix" type="jack-audio" client="meter_m48" exclusive="off">
<plug>meter_1</plug>
</socket>
<socket name="Meter: M48 Drums" type="jack-audio" client="meter_m48" exclusive="off">
<plug>meter_2</plug>
</socket>
<socket name="AT1 (tuner)" type="jack-audio" client="zita-at1" exclusive="off">
<plug>in</plug>
</socket>
</input-sockets>
<slots/>
<cables>
<cable input="Bass FX IN" output="Raw Bass Capture" type="jack-audio"/>
<cable input="AT1 (tuner)" output="Raw Bass Capture" type="jack-audio"/>
<cable input="Meter: Bass Raw" output="Raw Bass Capture" type="jack-audio"/>
<cable input="Bass 2 FX IN" output="Raw Bass 2 Capture" type="jack-audio"/>
<cable input="AT1 (tuner)" output="Raw Bass 2 Capture" type="jack-audio"/>
<cable input="Meter: Bass 2 Raw" output="Raw Bass 2 Capture" type="jack-audio"/>
<cable input="M48 Mix FX IN" output="Raw M48 L Capture" type="jack-audio"/>
<cable input="Meter: M48 Mix" output="Raw M48 L Capture" type="jack-audio"/>
<cable input="M48 Drums FX IN 2" output="Raw M48 R Capture" type="jack-audio"/>
<cable input="Meter: M48 Drums" output="Raw M48 R Capture" type="jack-audio"/>
<cable input="Headphones FX IN L" output="Bass FX OUT" type="jack-audio"/>
<cable input="Headphones FX IN R" output="Bass FX OUT" type="jack-audio"/>
<cable input="Meter: Bass FX" output="Bass FX OUT" type="jack-audio"/>
<cable input="Meter: Bass 2 FX" output="Bass 2 FX OUT 2" type="jack-audio"/>
<cable input="Headphones 2 FX IN L" output="Bass 2 FX OUT 2" type="jack-audio"/>
<cable input="Headphones 2 FX IN R" output="Bass 2 FX OUT 2" type="jack-audio"/>
<cable input="Headphones FX IN L" output="M48 Mix FX OUT" type="jack-audio"/>
<cable input="Headphones FX IN R" output="M48 Mix FX OUT" type="jack-audio"/>
<cable input="Headphones 2 FX IN L" output="M48 Mix FX OUT" type="jack-audio"/>
<cable input="Headphones 2 FX IN R" output="M48 Mix FX OUT" type="jack-audio"/>
<cable input="Headphones FX IN R" output="M48 Drums FX OUT" type="jack-audio"/>
<cable input="Headphones FX IN L" output="M48 Drums FX OUT" type="jack-audio"/>
<cable input="Headphones 2 FX IN R" output="M48 Drums FX OUT" type="jack-audio"/>
<cable input="Headphones 2 FX IN L" output="M48 Drums FX OUT" type="jack-audio"/>
<cable input="Monitor L" output="Headphones FX OUT L" type="jack-audio"/>
<cable input="Meter: Headphones" output="Headphones FX OUT L" type="jack-audio"/>
<cable input="Monitor R" output="Headphones FX OUT R" type="jack-audio"/>
<cable input="Monitor 2 L" output="Headphones 2 FX OUT L" type="jack-audio"/>
<cable input="Meter: Headphones 2" output="Headphones 2 FX OUT L" type="jack-audio"/>
<cable input="Monitor 2 R" output="Headphones 2 FX OUT R" type="jack-audio"/>
</cables>
</patchbay>
@@ -1,59 +0,0 @@
<!DOCTYPE patchbay>
<patchbay version="0.4.2" name="keyboard-qsynth">
<output-sockets>
<socket client="Oxygen 61" name="Oxygen61 IN" type="alsa-midi" exclusive="off">
<plug>Oxygen 61 MIDI 1</plug>
</socket>
<socket client="system" name="system" type="jack-audio" exclusive="off">
<plug>capture_1</plug>
<plug>capture_2</plug>
</socket>
<socket client="PulseAudio JACK Sink" name="PulseAudio JACK Sink" type="jack-audio" exclusive="off">
<plug>front-left</plug>
<plug>front-right</plug>
</socket>
<socket client="qsynth" name="qsynth" type="jack-audio" exclusive="off">
<plug>l_00</plug>
<plug>r_00</plug>
</socket>
<socket client="jack-keyboard" name="jack-keyboard" type="jack-midi" exclusive="off">
<plug>midi_out</plug>
</socket>
<socket client="Midi Through" name="Midi Through" type="alsa-midi" exclusive="off">
<plug>Midi Through Port-0</plug>
</socket>
</output-sockets>
<input-sockets>
<socket client="system" name="system" type="jack-audio" exclusive="off">
<plug>playback_1</plug>
<plug>playback_2</plug>
<plug>playback_3</plug>
<plug>playback_4</plug>
</socket>
<socket client="PulseAudio JACK Source" name="PulseAudio JACK Source" type="jack-audio" exclusive="off">
<plug>front-left</plug>
<plug>front-right</plug>
</socket>
<socket client="jack-keyboard" name="jack-keyboard" type="jack-midi" exclusive="off">
<plug>midi_in</plug>
</socket>
<socket client="qsynth" name="qsynth" type="jack-midi" exclusive="off">
<plug>midi</plug>
</socket>
<socket client="FLUID Synth \([0-9]+\)" name="qsynth ALSA Midi" type="alsa-midi" exclusive="off">
<plug>Synth input port \([0-9]+:0\)</plug>
</socket>
<socket client="Midi Through" name="Midi Through" type="alsa-midi" exclusive="off">
<plug>Midi Through Port-0</plug>
</socket>
</input-sockets>
<slots/>
<cables>
<cable type="jack-audio" input="PulseAudio JACK Source" output="system"/>
<cable type="jack-audio" input="system" output="PulseAudio JACK Sink"/>
<cable type="jack-audio" input="system" output="qsynth"/>
<cable type="jack-midi" input="qsynth" output="jack-keyboard"/>
<cable type="alsa-midi" input="qsynth ALSA Midi" output="Oxygen61 IN"/>
</cables>
</patchbay>
@@ -1,85 +0,0 @@
<!DOCTYPE patchbay>
<patchbay name="maudio-fasttrack" version="0.4.2">
<output-sockets>
<socket type="jack-audio" exclusive="off" name="Bass IN" client="system">
<plug>capture_2</plug>
</socket>
<socket type="jack-audio" exclusive="off" name="Bass FX OUT" client="jack_rack_bass">
<plug>out_1</plug>
</socket>
<socket type="jack-audio" exclusive="off" name="Headphones OUT L" client="jack_rack_headphones">
<plug>out_1</plug>
</socket>
<socket type="jack-audio" exclusive="off" name="Headphones OUT R" client="jack_rack_headphones">
<plug>out_2</plug>
</socket>
<socket type="jack-audio" exclusive="off" name="Qsynth OUT L" client="qsynth">
<plug>l_00</plug>
</socket>
<socket type="jack-audio" exclusive="off" name="Qsynth OUT R" client="qsynth">
<plug>r_00</plug>
</socket>
<socket type="jack-midi" exclusive="off" name="jack-keyboard SEND" client="jack-keyboard">
<plug>midi_out</plug>
</socket>
<socket type="alsa-midi" exclusive="off" name="j2a_bridge OUT" client="j2a_bridge">
<plug>capture</plug>
</socket>
</output-sockets>
<input-sockets>
<socket type="jack-audio" exclusive="off" name="Headphones IN L" client="jack_rack_headphones">
<plug>in_1</plug>
</socket>
<socket type="jack-audio" exclusive="off" name="Headphones IN R" client="jack_rack_headphones">
<plug>in_2</plug>
</socket>
<socket type="jack-audio" exclusive="off" name="Bass FX IN" client="jack_rack_bass">
<plug>in_1</plug>
</socket>
<socket type="jack-audio" exclusive="off" name="Meter: Bass" client="meter">
<plug>meter_1</plug>
</socket>
<socket type="jack-audio" exclusive="off" name="Meter: Bass (post FX)" client="meter">
<plug>meter_2</plug>
</socket>
<socket type="jack-audio" exclusive="off" name="Meter: Headphones L" client="meter">
<plug>meter_3</plug>
</socket>
<socket type="jack-audio" exclusive="off" name="Meter: Headphones R" client="meter">
<plug>meter_4</plug>
</socket>
<socket type="jack-audio" exclusive="off" name="System OUT L" client="system">
<plug>playback_1</plug>
</socket>
<socket type="jack-audio" exclusive="off" name="System OUT R" client="system">
<plug>playback_2</plug>
</socket>
<socket type="jack-audio" exclusive="off" name="Autotune IN" client="zita-at1">
<plug>in</plug>
</socket>
<socket type="jack-midi" exclusive="off" name="j2a_bridge IN" client="j2a_bridge">
<plug>playback</plug>
</socket>
<socket type="alsa-midi" exclusive="off" name="FLUID Synth IN" client="FLUID Synth \([0-9]+\)">
<plug>Synth input port \([0-9]+:0\)</plug>
</socket>
</input-sockets>
<slots/>
<cables>
<cable type="jack-audio" output="Bass IN" input="Bass FX IN"/>
<cable type="jack-audio" output="Bass IN" input="Meter: Bass"/>
<cable type="jack-audio" output="Bass IN" input="Autotune IN"/>
<cable type="jack-audio" output="Bass FX OUT" input="Meter: Bass (post FX)"/>
<cable type="jack-audio" output="Bass FX OUT" input="Headphones IN L"/>
<cable type="jack-audio" output="Bass FX OUT" input="Headphones IN R"/>
<cable type="jack-audio" output="Headphones OUT L" input="Meter: Headphones L"/>
<cable type="jack-audio" output="Headphones OUT L" input="System OUT L"/>
<cable type="jack-audio" output="Headphones OUT R" input="Meter: Headphones R"/>
<cable type="jack-audio" output="Headphones OUT R" input="System OUT R"/>
<cable type="jack-audio" output="Qsynth OUT L" input="Headphones IN L"/>
<cable type="jack-audio" output="Qsynth OUT R" input="Headphones IN R"/>
<cable type="jack-midi" output="jack-keyboard SEND" input="j2a_bridge IN"/>
<cable type="alsa-midi" output="j2a_bridge OUT" input="FLUID Synth IN"/>
</cables>
</patchbay>
-92
View File
@@ -1,92 +0,0 @@
<!DOCTYPE patchbay>
<patchbay version="0.4.5" name="onboard">
<output-sockets>
<socket exclusive="off" name="Headphones OUT L" client="jack_rack_headphones" type="jack-audio">
<plug>out_1</plug>
</socket>
<socket exclusive="off" name="Headphones OUT R" client="jack_rack_headphones" type="jack-audio">
<plug>out_2</plug>
</socket>
<socket exclusive="off" name="Qsynth OUT L" client="qsynth" type="jack-audio">
<plug>l_00</plug>
</socket>
<socket exclusive="off" name="Qsynth OUT R" client="qsynth" type="jack-audio">
<plug>r_00</plug>
</socket>
<socket exclusive="off" name="MDA EPiano OUT L" client="MDA ePiano" type="jack-audio">
<plug>left_out</plug>
</socket>
<socket exclusive="off" name="MDA EPiano OUT R" client="MDA ePiano" type="jack-audio">
<plug>right_out</plug>
</socket>
<socket exclusive="off" name="jack-keyboard SEND" client="jack-keyboard" type="jack-midi">
<plug>midi_out</plug>
</socket>
<socket exclusive="off" name="a2j ALSA OUT" client="Midi Through" type="alsa-midi">
<plug>Midi Through Port-0</plug>
</socket>
<socket exclusive="off" name="a2j MIDI OUT" client="a2j" type="jack-midi">
<plug>Midi Through \[14\] \(capture\): Midi Through Port-0</plug>
</socket>
<socket exclusive="off" name="AKAI LPK25 Keyboard" client="LPK25" type="alsa-midi">
<plug>LPK25 MIDI 1</plug>
</socket>
<socket exclusive="off" name="Alesis Recital Keyboard" client="Alesis Recital" type="alsa-midi">
<plug>Alesis Recital MIDI 1</plug>
</socket>
<socket exclusive="off" name="PulseAudio Sink L" client="PulseAudio JACK Sink" type="jack-audio">
<plug>front-left</plug>
</socket>
<socket exclusive="off" name="PulseAudio Sink R" client="PulseAudio JACK Sink" type="jack-audio">
<plug>front-right</plug>
</socket>
</output-sockets>
<input-sockets>
<socket exclusive="off" name="Headphones IN L" client="jack_rack_headphones" type="jack-audio">
<plug>in_1</plug>
</socket>
<socket exclusive="off" name="Headphones IN R" client="jack_rack_headphones" type="jack-audio">
<plug>in_2</plug>
</socket>
<socket exclusive="off" name="Bass FX IN" client="jack_rack_bass" type="jack-audio">
<plug>in_1</plug>
</socket>
<socket exclusive="off" name="System OUT L" client="system" type="jack-audio">
<plug>playback_1</plug>
</socket>
<socket exclusive="off" name="System OUT R" client="system" type="jack-audio">
<plug>playback_2</plug>
</socket>
<socket exclusive="off" name="a2j ALSA IN" client="Midi Through" type="alsa-midi">
<plug>Midi Through Port-0</plug>
</socket>
<socket exclusive="off" name="a2j MIDI IN" client="a2j" type="jack-midi">
<plug>Midi Through \[14\] \(playback\): Midi Through Port-0</plug>
</socket>
<socket exclusive="off" name="FLUID Synth IN" client="FLUID Synth \([0-9]+\)" type="alsa-midi">
<plug>Synth input port \([0-9]+:0\)</plug>
</socket>
<socket exclusive="off" name="MDA EPiano IN" client="MDA ePiano" type="jack-midi">
<plug>event_in</plug>
</socket>
</input-sockets>
<slots/>
<cables>
<cable input="System OUT L" output="Headphones OUT L" type="jack-audio"/>
<cable input="System OUT R" output="Headphones OUT R" type="jack-audio"/>
<cable input="Headphones IN L" output="Qsynth OUT L" type="jack-audio"/>
<cable input="Headphones IN R" output="Qsynth OUT R" type="jack-audio"/>
<cable input="Headphones IN L" output="MDA EPiano OUT L" type="jack-audio"/>
<cable input="Headphones IN R" output="MDA EPiano OUT R" type="jack-audio"/>
<cable input="MDA EPiano IN" output="jack-keyboard SEND" type="jack-midi"/>
<cable input="a2j MIDI IN" output="jack-keyboard SEND" type="jack-midi"/>
<cable input="FLUID Synth IN" output="a2j ALSA OUT" type="alsa-midi"/>
<cable input="MDA EPiano IN" output="a2j MIDI OUT" type="jack-midi"/>
<cable input="FLUID Synth IN" output="AKAI LPK25 Keyboard" type="alsa-midi"/>
<cable input="a2j ALSA IN" output="AKAI LPK25 Keyboard" type="alsa-midi"/>
<cable input="Headphones IN L" output="PulseAudio Sink L" type="jack-audio"/>
<cable input="Headphones IN R" output="PulseAudio Sink R" type="jack-audio"/>
<cable input="a2j ALSA IN" output="Alesis Recital Keyboard" type="alsa-midi"/>
</cables>
</patchbay>
-70
View File
@@ -1,70 +0,0 @@
<!DOCTYPE patchbay>
<patchbay version="0.4.5" name="studio">
<output-sockets>
<socket type="jack-audio" exclusive="off" client="system" name="Bass">
<plug>capture_2</plug>
</socket>
<socket type="jack-audio" exclusive="off" client="jack_rack_bass" name="Bass FX OUT">
<plug>out_1</plug>
</socket>
<socket type="jack-audio" exclusive="off" client="system" name="Mic">
<plug>capture_1</plug>
</socket>
<socket type="jack-audio" exclusive="off" client="MDA ePiano" name="MDA EPiano Audio L">
<plug>left_out</plug>
</socket>
<socket type="jack-audio" exclusive="off" client="MDA ePiano" name="MDA EPiano Audio R">
<plug>right_out</plug>
</socket>
<socket type="alsa-midi" exclusive="off" client="Alesis Recital" name="Alesis Recital Keyboard">
<plug>Alesis Recital MIDI 1</plug>
</socket>
<socket type="alsa-midi" exclusive="off" client="LPK25" name="AKAI LPK25 Keyboard">
<plug>LPK25 MIDI 1</plug>
</socket>
<socket type="jack-midi" exclusive="off" client="a2j" name="MIDI Through">
<plug>Midi Through \[14\] \(capture\): Midi Through Port-0</plug>
</socket>
</output-sockets>
<input-sockets>
<socket type="jack-audio" exclusive="off" client="jack_rack_bass" name="Bass FX IN">
<plug>in_1</plug>
</socket>
<socket type="jack-audio" exclusive="off" client="meter" name="Meter: Bass Raw IN">
<plug>meter_1</plug>
</socket>
<socket type="jack-audio" exclusive="off" client="meter" name="Meter: Bass FX IN">
<plug>meter_2</plug>
</socket>
<socket type="jack-audio" exclusive="off" client="meter" name="Meter: EPiano">
<plug>meter_3</plug>
</socket>
<socket type="jack-audio" exclusive="off" client="system" name="OUT L">
<plug>playback_1</plug>
</socket>
<socket type="jack-audio" exclusive="off" client="system" name="OUT R">
<plug>playback_2</plug>
</socket>
<socket type="alsa-midi" exclusive="off" client="Midi Through" name="MIDI Through">
<plug>Midi Through Port-0</plug>
</socket>
<socket type="jack-midi" exclusive="off" client="MDA ePiano" name="MDA EPiano MIDI IN">
<plug>event_in</plug>
</socket>
</input-sockets>
<slots/>
<cables>
<cable input="Meter: Bass Raw IN" type="jack-audio" output="Bass"/>
<cable input="Bass FX IN" type="jack-audio" output="Bass"/>
<cable input="Meter: Bass FX IN" type="jack-audio" output="Bass FX OUT"/>
<cable input="OUT R" type="jack-audio" output="Bass FX OUT"/>
<cable input="OUT L" type="jack-audio" output="Bass FX OUT"/>
<cable input="MIDI Through" type="alsa-midi" output="Alesis Recital Keyboard"/>
<cable input="MIDI Through" type="alsa-midi" output="AKAI LPK25 Keyboard"/>
<cable input="MDA EPiano MIDI IN" type="jack-midi" output="MIDI Through"/>
<cable input="OUT L" type="jack-audio" output="MDA EPiano Audio L"/>
<cable input="Meter: EPiano" type="jack-audio" output="MDA EPiano Audio L"/>
<cable input="OUT R" type="jack-audio" output="MDA EPiano Audio R"/>
</cables>
</patchbay>
+21
View File
@@ -0,0 +1,21 @@
#!/usr/bin/env bash
set -euo pipefail
script_dir="$(cd -- "$(dirname -- "${BASH_SOURCE[0]}")" && pwd)"
wine_loader="${YABRIDGE_WINELOADER:-$script_dir/wine-staging-9.21.sh}"
bitwig="${BITWIG_STUDIO:-/usr/bin/bitwig-studio}"
if [[ ! -x "$wine_loader" ]]; then
printf 'Wine loader is not executable: %s\n' "$wine_loader" >&2
exit 127
fi
if [[ ! -x "$bitwig" ]]; then
printf 'Bitwig Studio launcher is not executable: %s\n' "$bitwig" >&2
exit 127
fi
export WINELOADER="$wine_loader"
unset WINEPREFIX
exec "$bitwig" "$@"
-11
View File
@@ -1,11 +0,0 @@
#!/bin/bash
for filename in worship.wavex altar.wavex; do
name=${filename%.wavex}
ffmpeg -i "$filename" -filter_complex 'channelsplit=channel_layout=4.1[L][R][B][X][Y]' \
-map '[L]' "${name}-m48.wav" \
-map '[R]' "${name}-drums.wav" \
-map '[X]' "${name}-synth-L.wav" \
-map '[Y]' "${name}-synth-R.wav" \
-map '[B]' "${name}-bass.wav"
done
-9
View File
@@ -1,9 +0,0 @@
#!/bin/bash
for filename in worship.wavex altar.wavex; do
name=${filename%.wavex}
ffmpeg -i "$filename" -filter_complex 'channelsplit=channel_layout=2.1[L][R][B]' \
-map '[L]' "${name}-m48.wav" \
-map '[R]' "${name}-drums.wav" \
-map '[B]' "${name}-bass.wav"
done
-2
View File
@@ -1,2 +0,0 @@
#!/bin/bash
jack_capture --channels 3 --port system:capture_3 --port system:capture_4 --port system:capture_1 "$@"
-2
View File
@@ -1,2 +0,0 @@
#!/bin/bash
jack_capture -jt --channels 1 --port system:capture_3 sermon.wavex
-18
View File
@@ -1,18 +0,0 @@
#!/bin/bash
# Worship
jack_capture --channels 3 \
--port system:capture_3 \
--port system:capture_4 \
--port system:capture_1 \
worship.wavex
# sermon
jack_capture --channels 1 --port system:capture_3 sermon.wavex
# altar
jack_capture --channels 3 \
--port system:capture_3 \
--port system:capture_4 \
--port system:capture_1 \
altar.wavex
-10
View File
@@ -1,10 +0,0 @@
#!/bin/bash
# Worship
jack_capture --channels 5 --port system:capture_3 --port system:capture_4 --port system:capture_1 --port yoshimi:left --port yoshimi:right worship.wavex
# sermon
jack_capture --channels 1 --port system:capture_3 sermon.wavex
# altar
jack_capture --channels 5 --port system:capture_3 --port system:capture_4 --port system:capture_1 --port yoshimi:left --port yoshimi:right altar.wavex
-4
View File
@@ -1,4 +0,0 @@
#!/bin/bash
name=${1%.wavex}
avconv -i "$1" -filter_complex 'channelsplit=channel_layout=2.1[L][R][B]' -map '[L]' "${name}-m48.wav" -map '[R]' "${name}-drums.wav" -map '[B]' "${name}-bass.wav"
+82
View File
@@ -0,0 +1,82 @@
#!/usr/bin/env bash
set -euo pipefail
usage() {
cat <<'USAGE'
Usage: ./set-pipewire-latency.sh COMMAND [QUANTUM] [RATE]
Commands:
status Show current PipeWire clock/quantum settings.
on [Q] [RATE] Force a low-latency graph quantum. Defaults: Q=128 RATE=48000.
off Clear forced quantum/rate and return to normal PipeWire behavior.
Useful quantum values at 48 kHz:
256 about 5.3 ms per block, safer
128 about 2.7 ms per block, good stage starting point
64 about 1.3 ms per block, lower latency but higher dropout risk
USAGE
}
metadata() {
pw-metadata -n settings "$@"
}
status() {
local output
output="$(pw-metadata -n settings)"
printf '%s\n' "$output" | grep -E "clock\\.(rate|quantum|min-quantum|max-quantum|force-quantum|force-rate)" || true
local rate quantum forced_quantum
rate="$(printf '%s\n' "$output" | awk -F"'" '/clock.rate/ { print $4; exit }')"
quantum="$(printf '%s\n' "$output" | awk -F"'" '/clock.quantum/ { print $4; exit }')"
forced_quantum="$(printf '%s\n' "$output" | awk -F"'" '/clock.force-quantum/ { print $4; exit }')"
if [[ -n "$rate" && -n "$quantum" ]]; then
awk -v q="$quantum" -v r="$rate" 'BEGIN { printf "\nCurrent block latency: %.2f ms at %s Hz\n", (q / r) * 1000, r }'
fi
if [[ "${forced_quantum:-0}" != "0" ]]; then
printf 'Low-latency override: ON\n'
else
printf 'Low-latency override: OFF\n'
fi
}
set_low_latency() {
local quantum="${1:-128}"
local rate="${2:-48000}"
if ! [[ "$quantum" =~ ^[0-9]+$ && "$rate" =~ ^[0-9]+$ ]]; then
printf 'Quantum and rate must be numeric.\n' >&2
exit 2
fi
metadata 0 clock.force-rate "$rate" >/dev/null
metadata 0 clock.force-quantum "$quantum" >/dev/null
awk -v q="$quantum" -v r="$rate" 'BEGIN { printf "Forced PipeWire quantum %s at %s Hz, about %.2f ms per block\n", q, r, (q / r) * 1000 }'
}
clear_low_latency() {
metadata 0 clock.force-quantum 0 >/dev/null
metadata 0 clock.force-rate 0 >/dev/null
printf 'Cleared PipeWire forced quantum/rate.\n'
}
case "${1:-}" in
status)
status
;;
on)
set_low_latency "${2:-128}" "${3:-48000}"
;;
off)
clear_low_latency
;;
-h|--help|help|'')
usage
;;
*)
usage >&2
exit 2
;;
esac
-12
View File
@@ -1,12 +0,0 @@
#!/bin/bash
qjackctl -s -p Church48K &
echo "Waiting 4sec to let JACK start."
sleep 4.0s
jack-rack -s bass /home/music/projects/music-production/jack-rack-presets/newlife/yamaha-trb &
jack-rack -s mix /home/music/projects/music-production/jack-rack-presets/newlife/m48-mix &
jack-rack -s mix_drums /home/music/projects/music-production/jack-rack-presets/newlife/drums &
jack-rack -s headphones /home/music/projects/music-production/jack-rack-presets/newlife/headphones &
meterbridge -n meter -t dpm x x x x x &
echo "Waiting 2 sec to let all the apps start."
sleep 2.0s
devilspie &
@@ -1,15 +0,0 @@
#!/bin/bash
qjackctl -s -p Church48K &
echo "Waiting 4sec to let JACK start."
sleep 4.0s
jack-rack -s bass /home/music/projects/music-production/jack-rack-presets/newlife/yamaha-trb &
jack-rack -s mix /home/music/projects/music-production/jack-rack-presets/newlife/m48-mix &
jack-rack -s mix_drums /home/music/projects/music-production/jack-rack-presets/newlife/drums &
jack-rack -s headphones /home/music/projects/music-production/jack-rack-presets/newlife/headphones &
meterbridge -n meter_bass -t dpm x x x x &
meterbridge -n meter_m48 -t dpm x x &
yoshimi -c &
a2jmidid &
echo "Waiting 2 sec to let all the apps start."
sleep 2.0s
devilspie &
-16
View File
@@ -1,16 +0,0 @@
#!/bin/bash
qjackctl -s -p Church48K &
echo "Waiting 4sec to let JACK start."
sleep 4.0s
jack-rack -s bass /home/music/projects/music-production/jack-rack-presets/newlife/yamaha-trb &
jack-rack -s bass2 /home/music/projects/music-production/jack-rack-presets/newlife/bass2 &
jack-rack -s mix /home/music/projects/music-production/jack-rack-presets/newlife/m48-mix &
jack-rack -s mix_drums /home/music/projects/music-production/jack-rack-presets/newlife/drums &
jack-rack -s headphones /home/music/projects/music-production/jack-rack-presets/newlife/headphones &
jack-rack -s headphones2 /home/music/projects/music-production/jack-rack-presets/newlife/headphones2 &
meterbridge -n meter_bass -t dpm x x x &
meterbridge -n meter_bass2 -t dpm x x x &
meterbridge -n meter_m48 -t dpm x x &
echo "Waiting 2 sec to let all the apps start."
sleep 2.0s
devilspie &
-9
View File
@@ -1,9 +0,0 @@
#!/bin/bash
qjackctl -s -p Onboard48K &
echo "Waiting 4sec to let JACK start."
sleep 4.0s
jack-rack -s bass /home/music/projects/music-production/jack-rack-presets/home/yamaha-trb &
#jack-rack -s mix /home/music/projects/music-production/jack-rack-presets/M48-Mix &
#jack-rack -s mix_drums /home/music/projects/music-production/jack-rack-presets/M48-Mix-Drums &
jack-rack -s headphones /home/music/projects/music-production/jack-rack-presets/home/headphones &
j2amidi_bridge &
-8
View File
@@ -1,8 +0,0 @@
#!/bin/bash
qjackctl -s -p Onboard48K &
echo "Waiting 4sec to let JACK start."
sleep 4.0s
jack-rack -s bass /home/music/projects/music-production/jack-rack-presets/onboard/yamaha-trb &
#jack-rack -s mix /home/music/projects/music-production/jack-rack-presets/M48-Mix &
#jack-rack -s mix_drums /home/music/projects/music-production/jack-rack-presets/M48-Mix-Drums &
jack-rack -s headphones /home/music/projects/music-production/jack-rack-presets/onboard/headphones &
+37
View File
@@ -0,0 +1,37 @@
#!/usr/bin/env bash
set -euo pipefail
wine_root="${WINE_STAGING_921_ROOT:-${WINE921_ROOT:-$HOME/.local/opt/wine-staging-9.21}}"
wine_loader="${WINE_STAGING_921_LOADER:-wine64}"
if [[ ! -x "$wine_root/usr/bin/$wine_loader" || ! -x "$wine_root/usr/bin/wineserver" ]]; then
cat >&2 <<EOF
Wine 9.21 was not found under:
$wine_root
Install it by extracting the Arch Linux Archive package there, for example:
mkdir -p "$wine_root"
curl -L -o /tmp/wine-staging-9.21-1-x86_64.pkg.tar.zst \\
"https://archive.archlinux.org/packages/w/wine-staging/wine-staging-9.21-1-x86_64.pkg.tar.zst"
bsdtar -C "$wine_root" -xf /tmp/wine-staging-9.21-1-x86_64.pkg.tar.zst
EOF
exit 127
fi
export PATH="$wine_root/usr/bin:$PATH"
if [[ -n "${WINEDLLPATH:-}" ]]; then
export WINEDLLPATH="$wine_root/usr/lib:$WINEDLLPATH"
else
export WINEDLLPATH="$wine_root/usr/lib"
fi
export WINESERVER="$wine_root/usr/bin/wineserver"
case "${1:-}" in
wine|wine64|wineboot|winecfg|wineconsole|winedbg|winefile|winepath|wineserver|regedit|msiexec)
command="$1"
shift
exec "$wine_root/usr/bin/$command" "$@"
;;
esac
exec "$wine_root/usr/bin/$wine_loader" "$@"