altering the jack connection graph from lua is totally doable.
os.execute("jack_connect blablabla")
what do you want blablabla to accomplish? my guess is that it likely has something to do with the functions of crone mixer client, and can either be accomplished within the mixer API, or can’t. but i don’t know.
jack client ports in norns:
system:capture_1
system:capture_2
system:playback_1
system:playback_2
crone:input_1
crone:input_2
crone:input_3
crone:input_4
crone:input_5
crone:input_6
crone:output_1
crone:output_2
crone:output_3
crone:output_4
crone:output_5
crone:output_6
softcut:input_1
softcut:input_2
softcut:output_1
softcut:output_2
SuperCollider:in_1
SuperCollider:in_2
SuperCollider:out_1
mixer API assumes following mapping for crone I/O pairs:
1, 2 -> ADC/DAC
3, 4 -> softcut
5, 6 -> supercollider
but if you want to “monoize” everything, or whatever, just go for it
-- helpers
connect = function(src, dst)
os.execute("jack_connect " .. src .. " " .. dst)
end
disconnect = function(src, dst)
os.execute("jack_disconnect ".. src .. " " .. dst)
end
monoize = function()
disconnect("system:capture_1", "crone:input_1")
disconnect("crone:output_1", "system:playback_1")
connect("crone:output_1", "system:playback_2")
end
that will make all of norns processing mono, ignoring input 1 and summing any stereo processing (from supercollider etc) to output 2. input 1 and output 1 will do nothing unless you launch some other process that connects to them.
but again - it’s quite possible that existing mixer API and routing structure will handle your needs. i often use norns in an effect loop, monitor in stereo mode with dry passthrough from 2->2 for example.