Version 0 of Manipulating Jack/Ladspa Audio processing graphs from Bwise

Updated 2013-03-20 23:08:26 by theover

The objective here is to automatically create a usable tcl script like this:

 cat prodphase3a.tcl

 exec bash -c export LADSPA_PATH=/usr/lib64/ladspa/

 set cc 0

 catch {
  exec jack-rack -c 2 -s innoi innoi -x [incr cc 20] -y $cc -w 584 -l 1170 &
  exec jack-rack -c 2 -s 4cdplay 4cdplay_pro -x [incr cc 20] -y $cc -w 584 -l 1170 &
  exec jack-rack -c 2 -s lowmidspea lowmidspea14 -x [incr cc 20] -y $cc -w 584 -l 1170 &
  exec jack-rack -c 2 -s compdrive compdrive -x [incr cc 20] -y $cc -w 584 -l 1170 &
  exec jack-rack -c 2 -s dellex dellex -x [incr cc 20] -y $cc -w 584 -l 1170 &
   after 500
  exec meterbridge -t dpm -r 0 -c 2 1 2  -n in &
 }
   after 500
   catch "exec jack_connect system:capture_1 jack_rack_innoi:in_1"
   catch "exec jack_connect system:capture_2 jack_rack_innoi:in_2"
   catch "exec jack_connect system:capture_1 in:meter_1"
   catch "exec jack_connect system:capture_2 in:meter_2"
   catch "exec jack_connect jack_rack_innoi:out_1 jack_rack_4cdplay:in_1"
   catch "exec jack_connect jack_rack_innoi:out_2 jack_rack_4cdplay:in_2"

   catch "exec jack_connect jack_rack_dellex:out_1 system:playback_1"
   catch "exec jack_connect jack_rack_dellex:out_2 system:playback_2"

 set u ./b

 catch { 
 after 1000
 exec jack-rack -s del2 -c 2 del2 -x [incr cc 20] -y $cc -w 584 -l 1170 &
 exec jack-rack -s del3 -c 2 del3 -x [incr cc 20] -y $cc -w 584 -l 1170 &
 }
 #gets stdin
 catch { 
 exec meterbridge -t dpm -n bridge -r 0  6 7 8 9 10 11 12 13 &
 exec meterbridge -t dpm -r 0 -c 2 1 2 -n om &
 exec meterbridge -t dpm -r 0 -c 2 1 2 -n om2 &
 exec meterbridge -t dpm -r 0 -c 2 1 2 -n out &

 }

   after 1500
   catch "exec jack_connect jack_rack_innoi:out_1 jack_rack_4cdplay:in_1 "
   catch "exec jack_connect jack_rack_innoi:out_2 jack_rack_4cdplay:in_2 "
   catch "exec jack_connect jack_rack_4cdplay:out_1 jack_rack_del2:in_1"
   catch "exec jack_connect jack_rack_4cdplay:out_2 jack_rack_del2:in_2"

   after 500
   catch "exec jack_connect jack_rack_del2:out_1 jack_rack_del3:in_1"
   catch "exec jack_connect jack_rack_del2:out_2 jack_rack_del3:in_2"

 catch { 
 exec jack-rack -c 2 -s aaa aaa_lim  -x [incr cc 20] -y $cc -w 584 -l 1170 &
 }

 catch { 
 exec jack-rack -c 2 -s par par_tube  -x [incr cc 20] -y $cc -w 584 -l 1170 &
 }
   after 1500


 for {set i 6} {$i<=13} {incr i} {
   append o [exec jack-rack -c 2 -s $i Autom/b$i -x [incr cc 20] -y $cc -w 584 -l 1170 &] " "
   after 500
   catch "exec jack_connect jack_rack_aaa:out_1 jack_rack_$i:in_1"
   catch "exec jack_connect jack_rack_aaa:out_2 jack_rack_$i:in_2"
   after 500
   catch "exec jack_connect jack_rack_$i:out_1 jack_rack_par:in_1"
   catch "exec jack_connect jack_rack_$i:out_2 jack_rack_par:in_2"
 }
   after 500

 for {set i 6} {$i<=13} {incr i} {
   append o [exec jack-rack -c 2 -s df$i df$i -x [incr cc 20] -y $cc -w 584 -l 1170 &] " "
   after 500
   catch "exec jack_connect jack_rack_compdrive:out_1 jack_rack_df$i:in_1"
   catch "exec jack_connect jack_rack_compdrive:out_2 jack_rack_df$i:in_2"
   after 500
   catch "exec jack_connect jack_rack_df$i:out_1 jack_rack_$i:in_1"
   catch "exec jack_connect jack_rack_df$i:out_2 jack_rack_$i:in_2"
 }

   after 500
 for {set i 6} {$i<=14} {incr i} {
   after 400
   catch "exec jack_connect jack_rack_$i:out_1 bridge:meter_[expr $i-5]"
   catch "exec jack_connect jack_rack_$i:out_2 bridge:meter_[expr $i-5]"
 }

   after 500
   catch "exec jack_connect jack_rack_del3:out_1 out:meter_1"
   catch "exec jack_connect jack_rack_del3:out_2 out:meter_2"
   catch "exec jack_connect jack_rack_par:out_1 om:meter_1"
   catch "exec jack_connect jack_rack_par:out_2 om:meter_2"
   catch "exec jack_connect jack_rack_par:out_1 out:meter_1"
   catch "exec jack_connect jack_rack_par:out_2 out:meter_2"

   after 500
   catch "exec jack_connect jack_rack_dellex:out_1 om2:meter_1"
   catch "exec jack_connect jack_rack_dellex:out_2 om2:meter_2"


 catch { 
 exec jamin -p -n jam -f ./harmo4.jam &
 }
   after 500
   after 500

   catch "exec jack_connect jam:out_L jack_rack_aaa:in_1"
   catch "exec jack_connect jam:out_R jack_rack_aaa:in_2"

   after 500
 set u ./b

 catch { 
 after 800
 exec jack-rack -c 2 -s higpas higpasslow -x [incr cc 20] -y $cc -w 584 -l 1170 &
 exec jack-rack -c 2 -s higcom higexp -x [incr cc 20] -y $cc -w 584 -l 1170 &
 }
 catch { 
 exec meterbridge -t dpm -r 0 -c 2 1 2 -n hico1 &

 }

   after 500
   catch "exec jack_connect jack_rack_4cdplay:out_1 jack_rack_lowmidspea:in_1 "
   catch "exec jack_connect jack_rack_4cdplay:out_2 jack_rack_lowmidspea:in_2 "
   catch "exec jack_connect jack_rack_lowmidspea:out_1 jack_rack_compdrive:in_1 "
   catch "exec jack_connect jack_rack_lowmidspea:out_2 jack_rack_compdrive:in_2 "
   catch "exec jack_connect jack_rack_4cdplay:out_1 jack_rack_higcom:in_1 "
   catch "exec jack_connect jack_rack_4cdplay:out_2 jack_rack_higcom:in_2 "
   catch "exec jack_connect jack_rack_higpas:out_1 out:meter_1 "
   catch "exec jack_connect jack_rack_higpas:out_2 out:meter_2 "
   catch "exec jack_connect jack_rack_higpas:out_1 hico1:meter_1 "
   catch "exec jack_connect jack_rack_higpas:out_2 hico1:meter_2 "

   append o [catch "exec jack_connect jack_rack_higcom:out_1 jam:in_L "]
   append o [catch "exec jack_connect jack_rack_higcom:out_2 jam:in_R "]
   append o [catch "exec jack_connect jack_rack_lowmidspea:out_1 jam:in_L "]
   append o [catch "exec jack_connect jack_rack_lowmidspea:out_2 jam:in_R "]
   append o [catch "exec jack_connect jam:out_L jack_rack_higpas:in_1 "]
   append o [catch "exec jack_connect jam:out_R jack_rack_higpas:in_2 "]

   append o [catch "exec jack_connect out:monitor_1 jack_rack_dellex:in_1 "]
   append o [catch "exec jack_connect out:monitor_2 jack_rack_dellex:in_2 "]
   after 501

 puts $o


   after 1500


 puts $o

from a BWise graph, so as to rearange audio signal paths for Linux machines (maybe Windows "Jack" and Mac Jack can work too), composed of multiple interconnected "jack-rack" processing blocks, with associated DSP definition files.

For me these tcl scripts (I'll make a shorter, explained version soon) make it possible to run a great audio processing chain to correct CD files and postproduce for instance "HDtracks" high quality tracks, without having to start up all the jack-rack programs+interface by hand. These scripts gets my I7 machine running these heavy graphs reliably in a few tens of seconds, bu now want to take parts of various types of processing, and make new graphs, so I adapt BWise a bit.