In CW that done in the "TTSseq.ini" file that is only scanned (applied) at CW start-up
https://www.cakewalk.com/Documentation?product=SONAR&language=3&help=Playback.36.htmlso you can remove that line and manually set local control (on/off) on HW synth or construct either a .syx file or better yet a .CAL script to send the specific Local Control On (or off) to your synths and send it before shutting down CW or when ever
The controller number for local on/off is 122
I have an old CAL script here that sends controller data if you want I can email it to you PM me - or if you have the old cal scripts from the old CAL contest winner set - it was called "c-ntrolr.cal" it's only 6KB
Larry
EDIT UPDATE
Here is the SCRIPT (start from first semi-colon'ed line down to where it says "NIL"
save the text in a file call it "whatever you want.CAL"
then run it as a Process in CW before shutting down
====================================================
;;; Robert C. Prince, III Cakewalk Pro SN: 406176-CP-4.0A
;;; P. O. Box 8043
;;; Athens, GA 30603-8043
;;; (404) 725-1014
;;;
;;; CONTROLR.CAL
;;;
;;; This is a CAL program that allows the user to change data for any
;;; controller using addition or subtaction of a fixed amount, a high
;;; and low boundary, or a percentage.
;;;
;;; NOTE: This program automatically deletes any consecutive duplicate
;;; controller values that are on the same MIDI channel.
;;;
;;; *********************************************************************
;;; Prolog
(do
; set variables
(int wtd 1) ; what user wants to do, fixed change default
(int ctrlr 7) ; which controller to affect, volume (7) is default
(int Fixed 1) ; if wtd=1 user wants fixed add/subtract
(int HiLo 2) ; if wtd=2 user wants hi low boundaries
(int Pct 3) ; if wtd=3 user wants percentage
(int c 0) ; counter to let user know something's happening
(int TEP 0) ; total events processed
(int TCVS 0) ; Temporary Controller Value Saver
(int TCCS 18) ; Temporary Controller Channel Saver
(int d 0) ; # dupes eliminated
; get which controller user wants to affect
(getInt ctrlr "Controller Number: " 1 127)
; get what user wants to do with the controller data
(getInt wtd "Fixed=1 Hi/Low=2 Percentage=3:" 1 3)
; now set the variables according to the task to complete
(switch wtd
;if user chose Fixed, do the following
Fixed (do
(int amt 10)
(getInt amt "Amount to add?" -127 127)
)
; if user chose Hi/Low, do the following
HiLo (do
(int H 127) ; the highest data allowed
(int L 0) ; the lowest data allowed
(getInt H "Highest amount:" 0 127 ) ; get Hi
(getInt L "Lowest amount:" 0 127 ) ; get the Low
)
; if user chose Percentage, do the following
Pct (do
(int percent 100)
(getInt percent "Percentage?" 1 1000)
)
;close off the switch parens
)
;close off the do parens
)
;;; *********************************************************************
;;; Body
;;;
(do
; let user know something's being done
(message "Controller " ctrlr
"Events: " c
" Total Events: " TEP
" Duplicates Deleted: " d
)
; bump up total events processed
(++ TEP)
; if the kind of event is a controller do something
(if (== Event.Kind CONTROL)
; yes it is a controller event, so see if it matches user's choice
(if (== Control.Num ctrlr)
; yes it matches user's choice
(do
(switch wtd
; if user chose Fixed, do the following
Fixed (+= Control.Val amt)
; if user chose Hi/Low, do the following
HiLo (do
; is the data less than L?
(if (< Control.Val L)
; YES, so make it equal L
(= Control.Val L)
; NO -- move on to next question
NIL
; close off the if paren
)
; is the data greater than H?
(if (> Control.Val H)
; YES, so make it equal H
(= Control.Val H)
; NO -- move on to next event
NIL
; close off the if paren
)
;close off the do paren
)
; if user chose Percentage, do the following
Pct
(do
; multiply data by percent
(*= Control.Val percent)
; divide result by 100
(/= Control.Val 100)
;close off do paren
)
;close off switch paren
)
; bump counter up
(++ c)
; delete any duplicates
(if (&& (== Control.Val TCVS) (== Event.Chan TCCS))
; yes it is a duplicate on the same MIDI channel
(do
(delete)
(++ d) ;; bump the # deletes counter up
)
; no it is not a dupe, so store it's value and Chan #
(do
(= TCVS Control.Val)
(= TCCS Event.Chan)
)
)
; close the yes event matches user's choice do paren
)
; no, it does not match user's choice, so do nothing
NIL
; close of if controller number matches user's choice paren
)
; no it is not a controller event, so do nothing
NIL
; close off if event is controller paren
)
; close off body/do paren
)
;;; *********************************************************************
;;; Epilog
;;;
NIL