Skip to content

Instantly share code, notes, and snippets.

@RainWarrior
Last active August 29, 2015 14:00
Show Gist options
  • Save RainWarrior/6c09741a9cf741b8fc28 to your computer and use it in GitHub Desktop.
Save RainWarrior/6c09741a9cf741b8fc28 to your computer and use it in GitHub Desktop.
#!/bin/bash
killall alsa_out
killall alsa_in
#screen -A -m -d -S alsa_in_1 chrt 5 zita-a2j -L -d hw:8,1,0 -j loop_in -c 2 -r 44100 -p 1024 -n 3
screen -A -m -d -S alsa_in_1 chrt 5 alsa_in -d aloop1_out -j loop_in -c 2 -r 44100 -p 512 -n 3
#screen -A -m -d -S alsa_out_1 zita-j2a -L -d hw:8,1,1 -j loop_out -c 2 -r 44100 -p 1024 -n 3
#screen -A -m -d -S alsa_in_2 chrt 5 zita-a2j -L -d hw:8,1,1 -j pulse_in -c 2 -r 44100 -p 1024 -n 3
screen -A -m -d -S alsa_in_2 chrt 5 alsa_in -d aloop2_out -j pulse_in -c 2 -r 44100 -p 512 -n 3
#screen -A -m -d -S alsa_out_2 chrt 5 zita-j2a -L -d hw:8,1,1 -j pulse_out -c 2 -r 44100 -p 1024 -n 3
screen -A -m -d -S alsa_out_2 chrt 5 alsa_out -d aloop2_out -j pulse_out -c 2 -r 44100 -p 512 -n 3
screen -A -m -d -S alsa_in_3 chrt 5 alsa_in -d aloop3_out -j loop3_in -c 2 -r 44100 -p 512 -n 3
sleep 1
jack_connect 'loop_in:capture_1' 'Non-Mixer/aloop:in-1'
jack_connect 'loop_in:capture_2' 'Non-Mixer/aloop:in-2'
jack_connect 'pulse_in:capture_1' 'Non-Mixer/pulse:in-1'
jack_connect 'pulse_in:capture_2' 'Non-Mixer/pulse:in-2'
jack_connect 'Non-Mixer/mic_filter:out-1' 'pulse_out:playback_1'
jack_connect 'Non-Mixer/mic_filter:out-1' 'pulse_out:playback_2'
jack_connect 'loop3_in:capture_1' 'Non-Mixer/wine:in-1'
jack_connect 'loop3_in:capture_2' 'Non-Mixer/wine:in-2'
defaults.pcm.rate_converter "speexrate_best"
pcm.jackplug {
type plug
slave {
pcm "jack"
# format S32_LE
# channels 2
# rate 44100
}
}
pcm.jack {
type jack
playback_ports {
0 Non-Mixer/system_out:in-1 #system:playback_1
1 Non-Mixer/system_out:in-2 #system:playback_2
}
capture_ports {
0 Non-Mixer/mic_filter:out-1 #system:capture_1
# 1 Non-Mixer/system_in:out-2 #system:capture_2
}
}
pcm.jackstreamplug {
type plug
slave {
pcm "jackstream"
}
}
pcm.jackstream {
type jack
capture_ports {
0 Non-Mixer/stream_main:out-1
1 Non-Mixer/stream_main:out-2
}
}
pcm.jackskypeplug {
type plug
slave {
pcm "jackskype"
}
}
pcm.jackskype {
type jack
playback_ports {
0 Non-Mixer/Skype:in-1
1 Non-Mixer/Skype:in-2
}
}
pcm.jackpandoraplug {
type plug
slave {
pcm "jackpandora"
}
}
pcm.jackpandora {
type jack
playback_ports {
0 Non-Mixer/Pandora:in-1
1 Non-Mixer/Pandora:in-2
}
}
pcm.jackpulseplug {
type plug
slave {
pcm "jackpulse"
}
}
pcm.jackpulse {
type jack
playback_ports {
0 Non-Mixer/pulse:in-1
1 Non-Mixer/pulse:in-2
}
capture_ports {
0 Non-Mixer/mic_filter:out-1
}
}
# ------------------------------------------------------
# default device
pcm.pulse {
type pulse
}
ctl.pulse {
type pulse
}
pcm.!default {
type pulse
# type rate
# slave {
# pcm jackplug
# format S32_LE
# rate 44100
# }
}
ctl.!default {
type pulse
# type hw
# card 0
}
pcm.aloop1 {
type hw
card 8
device 0
subdevice 0
format S16_LE
channels 2
rate 44100
}
ctl.aloop1 {
type hw
card 8
device 0
subdevice 0
}
pcm.aloop2 {
type hw
card 8
device 0
subdevice 1
format S16_LE
channels 2
rate 44100
}
ctl.aloop2 {
type hw
card 8
device 0
subdevice 1
}
pcm.aloop3 {
type hw
card 8
device 0
subdevice 2
format S16_LE
channels 2
rate 44100
}
ctl.aloop3 {
type hw
card 8
device 0
subdevice 2
}
pcm.aloop1_out {
type hw
card 8
device 1
subdevice 0
format S16_LE
channels 2
rate 44100
}
ctl.aloop1_out {
type hw
card 8
device 1
subdevice 0
}
pcm.aloop2_out {
type hw
card 8
device 1
subdevice 1
format S16_LE
channels 2
rate 44100
}
ctl.aloop2_out {
type hw
card 8
device 1
subdevice 1
}
pcm.aloop3_out {
type hw
card 8
device 1
subdevice 2
format S16_LE
channels 2
rate 44100
}
ctl.aloop3_out {
type hw
card 8
device 1
subdevice 2
}
load-module module-alsa-sink format=s16le rate=44100 channels=2 channel_map=left,right device=aloop2
load-module module-alsa-source format=s16le rate=44100 channels=2 channel_map=left,right device=aloop2
<?xml version="1.0"?>
<!--
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.
-->
<!-- Sat May 3 04:12:03 2014 -->
<jack>
<engine>
<option name="driver">alsa</option>
<option name="realtime-priority">80</option>
<option name="verbose">false</option>
<option name="client-timeout">4500</option>
</engine>
<drivers>
<driver name="alsa">
<option name="device">hw:K6</option>
<option name="rate">44100</option>
<option name="period">128</option>
<option name="nperiods">2</option>
<option name="input-latency">116</option>
<option name="output-latency">116</option>
</driver>
<driver name="loopback">
</driver>
<driver name="alsarawmidi">
</driver>
<driver name="dummy">
<option name="capture">6</option>
<option name="playback">6</option>
<option name="rate">44100</option>
<option name="period">128</option>
</driver>
<driver name="netone">
</driver>
<driver name="net">
</driver>
</drivers>
<internals>
<internal name="netmanager">
</internal>
<internal name="profiler">
</internal>
<internal name="audioadapter">
<option name="device">hw:Loopback</option>
<option name="rate">44100</option>
<option name="periodsize">128</option>
<option name="nperiods">2</option>
</internal>
<internal name="netadapter">
</internal>
</internals>
</jack>
#!/bin/bash
jack_connect 'system:capture_1' 'Non-Mixer/system_in:in-1'
jack_connect 'system:capture_2' 'Non-Mixer/system_in:in-2'
jack_connect 'system:capture_3' 'Non-Mixer/system_in_3/4:in-1'
jack_connect 'system:capture_4' 'Non-Mixer/system_in_3/4:in-2'
jack_connect 'Non-Mixer/system_out:out-1' 'system:playback_1'
jack_connect 'Non-Mixer/system_out:out-2' 'system:playback_2'
jack_connect 'loop_in:capture_1' 'Non-Mixer/aloop:in-1'
jack_connect 'loop_in:capture_2' 'Non-Mixer/aloop:in-2'
jack_connect 'pulse_in:capture_1' 'Non-Mixer/pulse:in-1'
jack_connect 'pulse_in:capture_2' 'Non-Mixer/pulse:in-2'
jack_connect 'Non-Mixer/mic_filter:out-1' 'pulse_out:playback_1'
jack_connect 'Non-Mixer/mic_filter:out-1' 'pulse_out:playback_2'
jack_connect 'loop3_in:capture_1' 'Non-Mixer/wine:in-1'
jack_connect 'loop3_in:capture_2' 'Non-Mixer/wine:in-2'
jack_connect 'Non-Mixer/system_in:out-1' 'Non-Mixer/mic_filter:in-1'
jack_connect 'Non-Mixer/system_in:out-2' 'Non-Mixer/guitar:in-1'
jack_connect 'Non-Mixer/mpd:out-1' 'Non-Mixer/system_out:in-1'
jack_connect 'Non-Mixer/mpd:out-2' 'Non-Mixer/system_out:in-2'
jack_connect 'Non-Mixer/openal:out-1' 'Non-Mixer/system_out:in-1'
jack_connect 'Non-Mixer/openal:out-2' 'Non-Mixer/system_out:in-2'
jack_connect 'Non-Mixer/aloop:out-1' 'Non-Mixer/system_out:in-1'
jack_connect 'Non-Mixer/aloop:out-2' 'Non-Mixer/system_out:in-2'
jack_connect 'Non-Mixer/Pandora:out-1' 'Non-Mixer/system_out:in-1'
jack_connect 'Non-Mixer/Pandora:out-2' 'Non-Mixer/system_out:in-2'
jack_connect 'Non-Mixer/Skype:out-1' 'Non-Mixer/system_out:in-1'
jack_connect 'Non-Mixer/Skype:out-2' 'Non-Mixer/system_out:in-2'
jack_connect 'Non-Mixer/pulse:out-1' 'Non-Mixer/system_out:in-1'
jack_connect 'Non-Mixer/pulse:out-2' 'Non-Mixer/system_out:in-2'
jack_connect 'Non-Mixer/wine:out-1' 'Non-Mixer/system_out:in-1'
jack_connect 'Non-Mixer/wine:out-2' 'Non-Mixer/system_out:in-2'
jack_connect 'Non-Mixer/mic_filter:out-1' 'Non-Mixer/stream_main:in-1'
jack_connect 'Non-Mixer/mic_filter:out-1' 'Non-Mixer/stream_main:in-2'
jack_connect 'Non-Mixer/openal:out-1' 'Non-Mixer/stream_main:in-1'
jack_connect 'Non-Mixer/openal:out-2' 'Non-Mixer/stream_main:in-2'
jack_connect 'Non-Mixer/aloop:out-1' 'Non-Mixer/stream_main:in-1'
jack_connect 'Non-Mixer/aloop:out-2' 'Non-Mixer/stream_main:in-2'
jack_connect 'Non-Mixer/Skype:out-1' 'Non-Mixer/stream_main:in-1'
jack_connect 'Non-Mixer/Skype:out-2' 'Non-Mixer/stream_main:in-2'
jack_connect 'Non-Mixer/pulse:out-1' 'Non-Mixer/stream_main:in-1'
jack_connect 'Non-Mixer/pulse:out-2' 'Non-Mixer/stream_main:in-2'
jack_connect 'Non-Mixer/wine:out-1' 'Non-Mixer/stream_main:in-1'
jack_connect 'Non-Mixer/wine:out-2' 'Non-Mixer/stream_main:in-2'
#!/bin/bash
stuff () {
$1 'loop_in:capture_1' 'Non-Mixer/aloop:in-1'
$1 'loop_in:capture_2' 'Non-Mixer/aloop:in-2'
$1 'pulse_in:capture_1' 'Non-Mixer/pulse:in-1'
$1 'pulse_in:capture_2' 'Non-Mixer/pulse:in-2'
$1 'Non-Mixer/mic_filter:out-1' 'pulse_out:playback_1'
$1 'Non-Mixer/mic_filter:out-1' 'pulse_out:playback_2'
$1 'system:capture_1' 'Non-Mixer/system_in:in-1'
$1 'system:capture_2' 'Non-Mixer/system_in:in-2'
$1 'system:capture_3' 'Non-Mixer/system_in_3/4:in-1'
$1 'system:capture_4' 'Non-Mixer/system_in_3/4:in-2'
$1 'system:playback_1' 'Non-Mixer/system_out:out-1'
$1 'system:playback_2' 'Non-Mixer/system_out:out-2'
}
if [ "dummy" == "$1" ]; then
stuff jack_disconnect
fi
jack_control ds $1 &&\
jack_control sm
sleep 3
if [ "dummy" != "$1" ]; then
stuff jack_connect
fi
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment