A little something I’ve been working on…
A little something I’ve been working on…
Haha… oh dear… everytime when I think “Cantabile is absolutely awesome” you come along with another great idea
I’m so excited for this I can’t even think of what to write! @Brad does it again ladies and gentlemen!
A little more information about this…
I originally intended to integrate this more with the timeline window, but since there’s such demand for it I decided to build something that works with the current binding system. So it’s not as polished as I would normally like, but it does get the job done.
Transport positions are entered, using a popup window. You can enter positions as musical measure and beat or as realtime hrs:mins:seconds. Realtime values won’t work when synced to external MIDI clock (because there’s no way to convert between musical time and realtime). For all other transports either format should work (but note that changing the tempo of the metronome causes real-time to stretch/shrink and weird things might happen. Same thing happens if you change the speed setting on a media player.
Currently there are six types of transport position bindings:
To clarify the difference between Position and Cross Position… if the transport is stopped at the bound position, the first kind will trigger immediately where as the second one will only fire once the transport has started playing from that position.
The last three “Is XXX” bindings I’m not sure about and might get dropped. They’re handy, but they can only really be used once per target because if you bind two or more to the same target they conflict with each other.
eg: suppose you created bindings like this:
Is Before bar 2 => Enable Metronome Sounds
Is After bar 10 => Enable Metronome Sounds
You now have two bindings both trying to set the same target setting.
It’s important to note that besides the actual detection of transport position these bindings all work externally to the audio engine. This means that by the time the binding is triggered, the thing that triggered it is in the past (not by much, but definitely in the past).
That’s why in the above video, the binding to enable/disable the metronome sounds is configured to turn off the sounds at bar 2 - but you can still hear the metronome sound for the first beat in that bar. That’s because the sound was generated and the trigger invoked at the same time but the binding handling the trigger didn’t execute until shortly afterwards (outside the engine).
In other words, these bindings are useful for user-interface automation type control events, but perhaps not for real-time MIDI generation.
These bindings are only available on the master transport. You can’t create bindings to non-master media players.
Big smile! Now your on a roll Brad! Super! Love this.
Terry
Want it, want it, want it!!!
Great work Brad!
thanks @brad. to caveat 2, timing would be fine for triggering midi for light scene chamges, right ? (i.e. still enabling midi even though triggering a keyboard wouldn’t be great)
thanks again
jim
Yep - it’ll be fine for that.
Hi Brad - this is quite nice. In one of my bands we use a click track - this is an elegant way to change states by using the click track. Caveat 2 might affect me in doing this - I won’t know until I actually experiment with this new feature.
Transport Triggers are available now in build 3547.
Brad
Big time love on this one!!!
I usually wait for stable releases, but this is the exception - Brad, you’ve made my year!!
Understood similiar behavour, thanks! So fantastic job!