again, this would be a new set of ops that would not affect any of the existing ops or scripts at all. if you prefer to use the old ops you can still do so.
the main idea is future proofing teletype and not bloating the language with many device specific ops for things that have exact same meaning for any of the devices that would support it.
imagine at some point in the future we are able to connect faderfox, livig ohm and midi twister to teletype. we need an op to read a knob value. would you rather have: FF.CC, LO.CC and MT.CC or just CC?
now imagine you have a script that reads from a faderfox knob: X FF.CC 1. now you want to use a midi twister instead. with a generic op you simply swap controllers, no script changes are necessary (in this case we donât even need to map anything). with device specific ops you have to find and replace all FF.CC with MT.CC. whatâs easier? whatâs more intuitive?
no. for something like setting CVs it would work exactly like using TO.CV. and if your script is using features available on TXo only, you donât need the generic ops anyway.
you would specify which TXo you are targeting when you map. so you could map outputs 11-14 to TXo #1, outputs 15-18 to TXo #2 etc. the documentation would specify the device id for each specific device (or if we use i2c addresses for mapping there will be a list of addresses provided for each device).
no, thatâs what mapping is for. your script could simply use whatever outputs you want. say, 11-18. then you map them to the actual device. letâs say we use device id for mapping, where we have the following ids:
0 - teletype itself
1-4 - ansible 1-4
5 - er-301
your script generates 8 CVs using CV 11 ⌠CV 18. you want to use your script with teletype. you do something like this:
CV.MAP 11-14 0 (map outputs 11-14 to teletype)
now you add ansible in tt expander mode so you can use CVs 15-18. you simply execute:
CV.MAP 15-18 1
now 11-14 will send to teletype and 15-18 will send to ansible. now letâs say you decided to use your script with er-301 instead:
CV.MAP 11-18 5
thatâs it! we could also add an op to reset mappings to the default state (so if we use CV op for generic CV it would reset it to outputs 1-4 mapped to teletype and 5-8 mapped to ansible).
not only itâs simple, it would allow things like sending same CVs to multiple outputs, muting CVs (just unmap), using various devices in the same loop (right now you canât use a loop to send CVs to teletype AND TXo, for instance, since they use different ops). this is also what would make scripts more shareable and reusable, since you donât tie them to specific devices.
again, existing ops will not be affected. you can still use SC.
leader/follower configuration does not apply here as these are teletype ops. teletype only works as a leader.
for the reasons outlined in my post: it removes device specific stuff from scripts that donât use it. this makes sharing and reusing such scripts easier for different devices. it reduces the need to add device specific ops for common operations. it future proofs teletype.