2026 Migration to Pipewire + BitWig.
This commit is contained in:
@@ -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
|
||||
@@ -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
|
||||
@@ -1,2 +0,0 @@
|
||||
#!/bin/bash
|
||||
jack_capture --channels 3 --port system:capture_3 --port system:capture_4 --port system:capture_1 "$@"
|
||||
@@ -1,2 +0,0 @@
|
||||
#!/bin/bash
|
||||
jack_capture -jt --channels 1 --port system:capture_3 sermon.wavex
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -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"
|
||||
|
||||
Executable
+82
@@ -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
|
||||
@@ -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 &
|
||||
@@ -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 &
|
||||
@@ -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 &
|
||||
@@ -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 &
|
||||
Reference in New Issue
Block a user