Automate Firefox JACK mapping

Previously was doing 'by hand' (with LADISH), and each new connexion was associated to a special track in Non-Mixer. This was limiting, e.g. one tab = one channel in Non-Mixer, created manually. Now with jack-matchmaker, a regexp tells that all Firefox output goes into one channel in Non-Mixer. No need to mix each tab because usually, players have an individual volume control.
master
Quentin Duchemin 2018-06-21 20:11:15 +02:00
parent 8a7b7845f9
commit e02a02e499
5 changed files with 23 additions and 24 deletions

View File

@ -186,7 +186,7 @@
<Window name="PM-87-" visible="0" x-off="-1" y-off="-1" x-size="-1" y-size="-1"/>
<Window name="P-801-833" visible="0" x-off="-1" y-off="-1" x-size="-1" y-size="-1" custom-ui="1"/>
<Window name="P-801-831" visible="0" x-off="-1" y-off="-1" x-size="-1" y-size="-1" custom-ui="1"/>
<Window name="P-801-868" visible="1" x-off="729" y-off="312" x-size="884" y-size="652" custom-ui="1"/>
<Window name="P-801-868" visible="0" x-off="731" y-off="312" x-size="884" y-size="652" custom-ui="1"/>
<Window name="P-801-834" visible="0" x-off="-1" y-off="-1" x-size="-1" y-size="-1" custom-ui="1"/>
<Window name="PM-833-" visible="0" x-off="-1" y-off="-1" x-size="-1" y-size="-1"/>
<Window name="PM-831-" visible="0" x-off="-1" y-off="-1" x-size="-1" y-size="-1"/>
@ -196,7 +196,7 @@
</UI>
<AudioMIDISetup>
<EngineStates>
<State backend="JACK" driver="" device="" input-device="" output-device="" sample-rate="48000" buffer-size="1024" n-periods="1082" input-latency="0" output-latency="0" input-channels="0" output-channels="0" active="1" use-buffered-io="0" midi-option="" lru="1529530766">
<State backend="JACK" driver="" device="" input-device="" output-device="" sample-rate="48000" buffer-size="1024" n-periods="1082" input-latency="0" output-latency="0" input-channels="0" output-channels="0" active="1" use-buffered-io="0" midi-option="" lru="1529541541">
<MIDIDevices/>
</State>
</EngineStates>

View File

@ -186,14 +186,16 @@ exec --no-startup-id redshift-gtk
# Set ALSA initial volume
exec-always --no-startup-id
# Start JACK server and session manager :
#- Cadence starts JACK, A2J and load Home LADISH studio
#- Claudia starts GUI
for_window [class="Claudia"] move container to workspace 3
for_window [class="Claudia"] move container to workspace 4
for_window [class="Cadence"] floating enable; move container to workspace 3
for_window [class="Non-Mixer"] move container to workspace 3
for_window [class="Non-Mixer"] move container to workspace 4
for_window [class="Ardour"] move container to workspace 3
for_window [title="Pianoteq*"] move container to workspace 3
exec --no-startup-id "sh -c 'cadence-session-start --start; sleep 3; Ardour5 /mnt/data/Documents/Ardour/Petrus;"
# Cadence will take care of all we need :
# - Config tells Cadence to start LADISH, export MIDI hw and start A2J ;
# - LADISH implies JACK starts, then it will starts needed apps (e.g. Non-Mixer)
exec --no-startup-id cadence-session-start --start
# Automate port mapping for applications
exec --no-startup-id jack-matchmaker -p ~/.config/jack-matchmaker/patterns

View File

@ -1,7 +1,16 @@
# VLC Left
vlc.*?1$
.*:VLC/.*?1
.*:VLC/in-1
# VLC Right
vlc.*?2$
.*:VLC/in.*?2
.*:VLC/in-2
# == Firefox, all tabs mixed in one : volume per tab is managed through players directly ==
# FF Left
.*?:AudioStream.*?0$
.*:Firefox/in-1
# FF Right
.*?:AudioStream.*?1$
.*:Firefox/in-2

View File

@ -4,7 +4,7 @@ JACK settings, as persisted by D-Bus object.
You probably don't want to edit this because
it will be overwritten next time jackdbus saves.
-->
<!-- Tue Jun 19 19:55:44 2018 -->
<!-- Thu Jun 21 19:58:08 2018 -->
<jack>
<engine>
<option name="driver">alsa</option>

View File

@ -1,24 +1,12 @@
{
Spatialization_Console 0x14 create :range 1.000000 :projection 1 :shown 0
Group 0xD create :name "Home"
Mixer_Strip 0x1 create :name "Firefox 1" :width "narrow" :tab "fader" :color 424238335 :gain_mode 0 :mute_mode 0 :group 0xD :auto_input "" :manual_connection 0
Mixer_Strip 0x1 create :name "Firefox" :width "narrow" :tab "fader" :color 424238335 :gain_mode 0 :mute_mode 0 :group 0xD :auto_input "" :manual_connection 0
Chain 0x2 create :strip 0x1 :tab "controls"
JACK_Module 0x3 create :parameter_values "0.000000:2.000000" :is_default 1 :chain 0x2 :active 1
Gain_Module 0x4 create :parameter_values "1.250000:0.000000" :is_default 1 :chain 0x2 :active 1
Meter_Module 0x5 create :is_default 1 :chain 0x2 :active 1
JACK_Module 0x6 create :parameter_values "2.000000:0.000000" :is_default 1 :chain 0x2 :active 1
Mixer_Strip 0xE create :name "Firefox 2" :width "narrow" :tab "fader" :color 596516649 :gain_mode 0 :mute_mode 0 :group 0xD :auto_input "" :manual_connection 0
Chain 0xF create :strip 0xE :tab "chain"
JACK_Module 0x10 create :parameter_values "0.000000:2.000000" :is_default 1 :chain 0xF :active 1
Gain_Module 0x11 create :parameter_values "1.250000:0.000000" :is_default 1 :chain 0xF :active 1
Meter_Module 0x12 create :is_default 1 :chain 0xF :active 1
JACK_Module 0x13 create :parameter_values "2.000000:0.000000" :is_default 1 :chain 0xF :active 1
Mixer_Strip 0x15 create :name "Firefox 3" :width "narrow" :tab "fader" :color 1025202362 :gain_mode 0 :mute_mode 0 :group 0xD :auto_input "" :manual_connection 0
Chain 0x16 create :strip 0x15 :tab "chain"
JACK_Module 0x17 create :parameter_values "0.000000:2.000000" :is_default 1 :chain 0x16 :active 1
Gain_Module 0x18 create :parameter_values "0.000000:0.000000" :is_default 1 :chain 0x16 :active 1
Meter_Module 0x19 create :is_default 1 :chain 0x16 :active 1
JACK_Module 0x1A create :parameter_values "2.000000:0.000000" :is_default 1 :chain 0x16 :active 1
Mixer_Strip 0x1B create :name "PianoTeq" :width "narrow" :tab "fader" :color 1350490027 :gain_mode 0 :mute_mode 0 :group 0xD :auto_input "" :manual_connection 0
Chain 0x1C create :strip 0x1B :tab "chain"
JACK_Module 0x1D create :parameter_values "0.000000:2.000000" :is_default 1 :chain 0x1C :active 1