But I don’t think this is going to be easy on a beginner ;-)
Problem is; if you work with a static amount of tracks its relatively easy. You basically setup a construction where you monitor the status of the arm property for each track and as soon as its state changes you can then search the track for an external instrument and then turn it on, or off if the track is disarmed.
But things become a little bit harder as soon as you want to keep the track amount variable. Because at this moment its not possible to programmatically add or remove objects from a patcher in M4l. Which is basically what you’d need here; the moment a new track is added to the live set you’d need a new so called ‘observer’ to monitor the state of its arm property.
No idea if Max 6 (‘M4l 6′) has made any changes here, could be but I somewhat doubt that.
In the case of static tracks all you’d basically need is pointing a bunch of live.observers to the tracks which arm property you want to monitor. Then its merely checking if the property has been set to true and if so find and enable any external instruments. As said; that part is relatively simple.
I’ll see if I can find some time tomorrow to cough up a rough test case.
If you’re only using Ableton’s instruments (not sure about 3rd party), Live is pretty good at optimizing the CPU load. If a device isn’t receiving MIDI (like when the track isn’t armed), then just having a device loaded and turned on shouldn’t be taxing the CPU at all.