Everything you wanted to know about Transform

Note On & Off

There is no MIDI message called Note On & Off

“Note On & Off” is useful when converting Notes to another message type:

If you used Note On…

…you would need a second Transform for the Note Off messages

So Note On & Off saves time and pipes!

NB. Into set to Note On & Off does not create two events at the same time!


Prioritize Real-Time?

MIDI system real-time messages are messages that are not specific to a MIDI channel but prompt all devices on the MIDI system to respond and to do so in real time.

as suggested by the MIDI 1.0 specification:

To help ensure accurate timing, System Real Time messages are given priority over other messages, and these single-byte messages may occur anywhere in the data stream (a Real Time message may appear between the status byte and data byte of some other MIDI message).

So normally, the Real Time MIDI messages get pushed right at the front of the MIDI message queue, so they get in front of the remaining non-realtime data, such as Note On, CC, etc… Disabling Prioritize Real-Time will actually place the produced real-time messages not at the front, but the back of the queue, so whatever Transformation you’re working on, stays in that order.
An example where this was needed was discussed here

One of those things to bear in mind when the order of events like Transport controls might be critical


Channel Number conversions

Transform has always been able to take an “id” and create a “value” from it

for example,

  • Note On #64 (say, velocity 37) → CC#3 value = 64

    or vice versa

  • CC#3 value = 64 → Note On #64 (say, velocity 127)

Now (from version 1.15), Transform can use an “id” or “value” to also set Channel data…

...but it's not just a straight swap!

Channel Number → Id/Value

Transform has to allocate all 128 "id"s or values to just 16 channels, so it does the same as when a controller knob is mapped to a channel property
(eg. the In|Out Low|High properties of Channel Remap) …

so, for example…

  • values 0-7 → Channel 1
  • values 32-39 → Channel 5
  • values 120-127 → Channel 16

Animation 7 shows an example for this :link:

Id/Value → Channel Number

Transform can also use Channel data to set an “id” or “value”

to set an id/value from the channel, Transform simply chooses the first value from its corresponding set…

…eg:

  • Channel 1 → value 0
  • Channel 5 → value 32
  • Channel 16 → value 120

This type of conversion is shown in Animation 6

1 Like