Sneak Peak - Transport Triggers


#1

A little something I’ve been working on…


Triggers at transport position
Trigger status change with Transport
New Feature - Binding Groups (available now)
#2

@Brad you make our dreams come true :musical_keyboard::ok_hand:


#3

Haha… oh dear… everytime when I think “Cantabile is absolutely awesome” you come along with another great idea :slight_smile:


#4

I’m so excited for this I can’t even think of what to write! @Brad does it again ladies and gentlemen!


#5

6 posts were split to a new topic: Issues with Forum Videos in Opera


#6

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.

Binding Types

Currently there are six types of transport position bindings:

  • Position - fires when transport crosses a specified position, or is stopped at the specified position.
  • Cross Position - similar to above but only fires when transport is playing.
  • Section - fires when transpost position is greater than the specified position, but before the next section binding.
  • Is After Position - evaluates to true if the transport position is after the specified position, false otherwise.
  • Is Before Position - opposite of the above.
  • Is In Range - evaluates to true if the transport position is within a specified start/end range

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.

Caveat #1: The “Is XXX” Bindings

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.

Caveat #2: These Aren’t “Realtime”

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.

Caveat #3: Master Transport Only

These bindings are only available on the master transport. You can’t create bindings to non-master media players.


#8

Big smile! Now your on a roll Brad! Super! Love this.
Terry


#12

Want it, want it, want it!!!

Great work Brad!


#14

Fantastic!! Great @brad!


#15

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


#16

Yep - it’ll be fine for that.


#17

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.


#18

Transport Triggers are available now in build 3547.

Brad


#19

Big time love on this one!!!:smile:


#20

I usually wait for stable releases, but this is the exception - Brad, you’ve made my year!!


#21

Understood similiar behavour, thanks! So fantastic job!