Skip to content

Action Reference

Jeremy Bernstein edited this page May 5, 2024 · 8 revisions

Targets

  • Position [$position]

    • Add [+]

      Parameter 1: time to add
      
    • Subtract [-]

      Parameter 1: time to subtract
      
    • Multiply (rel.) [*]

      Parameter 1: value by which to multiply the current position (final position is relative to item start)
      Parameter 2: relative-mode (menu enum), one of:
      
      • Item-Relative [$itemrel]: operation is relative to the beginning of the containing item.
      • First-Event-Relative [$firstrel]: operation is relative to the beginning of the first event.
    • Divide By (rel.) [/]

      Parameter 1: value by which to divide the current position (final position is relative to item start)
      Parameter 2: relative mode (menu enum), one of:
      
      • Item-Relative [$itemrel]: operation is relative to the beginning of the containing item.
      • First-Event-Relative [$firstrel]: operation is relative to the beginning of the first event.
    • Round By [:round]

      Parameter 1: time to which to quantize current position; a time of 0.1.00 would round positions to the nearest beat, for example.
      
    • Quantize to Musical Value [:roundmusical]

      Parameter 1: musical time to which to quantize current position (menu)
      
    • Set to Fixed Value [=]

      Parameter 1: position
      
    • Random Values Between [:random]

      Generate random position values within a range of two points in time.

      Parameter 1: minimum position
      Parameter 2: maximum position
      
    • Relative Random Values Between [:relrandom]

      Generate a random positional offset within a range of two time values.

      Parameter 1: minimum offset position
      Parameter 2: maximum offset position
      
    • Move to Cursor [:tocursor]

      Move events to current edit cursor position. Selected events are handled as a group, the first event in the group is moved to the edit cursor position, following events retain their position relative to the first event.

      no parameters
      
    • Add Length [:addlength] NOTES ONLY

      Add the note event's current length to the event's position; that is, move the event by its duration.

      no parameters
      
    • Scale + Offset (rel.) [:scaleoffset]

      Scale (multiply) and offset (add) to the current position. Convenience method combining the two operations. As with the Multiply and Divide operators, you get a choice between item-relative (default) and first-selected-event-related scaling.

      Parameter 1: scale factor / offset time [param3]
      Parameter 2: relative mode (menu enum), one of:
      
      • Item-Relative [$itemrel]: operation is relative to the beginning of the containing item.
      • First-Event-Relative [$firstrel]: operation is relative to the beginning of the first event.
  • Length [$length] N.B.: NOTES ONLY

    • Add [+]

      Parameter 1: time to add
      
    • Subtract [-]

      Parameter 1: time to subtract
      
    • Multiply [*]

      Parameter 1: value by which to multiply the current length
      
    • Divide By [/]

      Parameter 1: value by which to divide the current length
      
    • Round By [:round]

      Parameter 1: time to which to quantize the current length. For instance, a value of 0.1.00 would round the length of selected events to the nearest beat.
      
    • Quantize Length to Musical Value [:roundlenmusical]

      Parameter 1: musical time to which to quantize the current length (menu)
      
    • Quantize Note-Off to Musical Value [:roundendmusical]

      Parameter 1: musical time to which to quantize the current note-off position (menu). For instance, choosing 1/8 would move the note-off of selected events to the nearest 1/8th note grid division.
      
    • Set to Fixed Value [=]

      Parameter 1: an absolute length to apply to selected note events
      
    • Set to Musical Length [:quantmusical]

      Parameter 1: a musical length to apply to selected note events (menu)
      
    • Random Values Between [:random]

      Generate random length values within a range of two time values.

      Parameter 1: minimum length
      Parameter 2: maximum length
      
    • Relative Random Values Between [:relrandom]

      Generate a random offset to apply to the current length of selected events.

      Parameter 1: minimum offset length
      Parameter 2: maximum offset length
      
    • Move To Cursor [:tocursor]

      Move the note-off of selected events to the edit cursor position.

      no parameters
      
    • Scale + Offset [:scaleoffset]

      Scale (multiply) and offset (add) to the current length. Convenience method combining the two operations.

      Parameter 1: scale factor
      Parameter 2: offset length
      
  • Channel [$channel]

    • Add [+]

      Parameter 1: value to add (-15 - 15)
      
    • Subtract [-]

      Parameter 1: time to subtract (-15 - 15)
      
    • Set to Fixed Value [=]

      Parameter 1: a channel to assign to selected note events
      
    • Random Values Between [:random]

      Generate random channel values within a range of two time values.

      Parameter 1: minimum channel
      Parameter 2: maximum channel
      
    • Relative Random Values Between [:relrandom]

      Generate a random offset to apply to the current channel of selected events.

      Parameter 1: minimum offset channel distance
      Parameter 2: maximum offset channel distance
      
    • Ramp in Selection Range [:line]

      Given the time domain of the selected events, generate a line between the minimum and maximum channel values and distribute it across all selected events. Or, if you prefer, the first event is set to the minimum, the last event is set to the maximum, and the events in-between are interpolated between those extremes based on their position.

      Parameter 1: lower bound of channel range
      Parameter 2: upper bound of channel range
      Parameter 3: curve (menu enum), one of:
      
      • Linear [$lin]
      • Exponential [$exp]
      • Logarithmic [$log]
      • S-Curve [$scurve]
      Parameter 4: curve modifier: floating-point value
      

      Non-linear curves support an additional value which sets (for exponential and logarithmic curves) the exponent for the operation (for $exp, it's the direct exponent used to calculate the curve; for $log, it's eexp used as the logarithm base) -- with a default of 2 and a minimum of 0. For the S-Curve, it adjusts the curvature -- with a default 0.5 and a range of -1 - 1.

    • Relative Ramp in Selection Range [:relline]

      Give the time domain of the selected events, generate a line between the minimum and maximum values and apply it as an offset to the channel value of all selected events.

      Parameter 1: lower bound of relative channel range
      Parameter 2: upper bound of relative channel range
      Parameter 3: curve (menu enum), one of:
      
      • Linear [$lin]
      • Exponential [$exp]
      • Logarithmic [$log]
      • S-Curve [$scurve]
      Parameter 4: curve modifier: floating-point value
      

      Non-linear curves support an additional value which sets (for exponential and logarithmic curves) the exponent for the operation (for $exp, it's the direct exponent used to calculate the curve; for $log, it's eexp used as the logarithm base) -- with a default of 2 and a minimum of 0. For the S-Curve, it adjusts the curvature -- with a default 0.5 and a range of -1 - 1.

  • Type [$type]

    • Set to Fixed Value [=]

      Set the event type. All other event information (channel, data bytes, etc.) remains unchanged, so this may have unexpected results.

      Parameter 1: event type (menu enum), one of:
      
      • Note (0x90) [$note]
      • Poly Pressure (0xA0) [$polyat]
      • Controller (0xB0) (continuous controller) [$cc]
      • Program Change (0xC0) [$pc]
      • Aftertouch (channel pressure, 0xD0) [$at]
      • Pitch Bend (0xE0) [$pb]
  • Property [$property]

    • Set to Fixed Value [=]

      Set the event flags.

      Parameter 1: event flags (menu enum), one of:
      
      • Clear [0]: unselected, unmuted
      • Selected [1]: selected, unmuted
      • Muted [2]: unselected, muted
      • Selected + Muted [3]: selected, muted
    • Add Property [:addprop]

      Add a single event flag.

      Parameter 1: event flags (menu enum), one of:
      
      • Selected [1]: selected, unmuted
      • Muted [2]: unselected, muted
      • Selected + Muted [3]: selected, muted
    • Remove Property [:removeprop]

      Remove a single event flag.

      Parameter 1: event flags (menu enum), one of:
      
      • Selected [1]: selected, unmuted
      • Muted [2]: unselected, muted
      • Selected + Muted [3]: selected, muted
    • CC Set Curve [:ccsetcurve]

      Parameter 1: curve type (menu enum), one of:
      
      • Square [$square]
      • Linear [$linear]
      • Slow Start/End [$slowstartend]
      • Fast Start [$faststart]
      • Fast End [$fastend]
      • Bezier [$bezier]
      Parameter 2: bezier extension data (floating-point number, -1 - 1), 
                   only valid for bezier curve type
      
  • Value 1 [$value1]

    • Add [+]

      Parameter 1: value to add
      
    • Subtract [-]

      Parameter 1: value to subtract
      
    • Multiply [*]

      Parameter 1: value by which to multiply the current value
      
    • Divide By [/]

      Parameter 1: value by which to divide the current value
      
    • Round By [:round]

      Parameter 1: value to which to quantize the current value. For instance, a value of 5 would round the current value to a multiple of 5.
      
    • Set to Fixed Value [=]

      Parameter 1: value
      
    • Clamp Between [:clamp]

      Parameter 1: lower range of clamp
      Parameter 2: upper range of clamp
      
    • Random Values Between [:random]

      Generate random values within a range of two values.

      Parameter 1: minimum value
      Parameter 2: maximum value
      
    • Relative Random Values Between [:relrandom]

      Generate a random offset to apply to the current value of selected events.

      Parameter 1: minimum offset value distance
      Parameter 2: maximum offset value distance
      
    • Use Value 2 [:getvalue2]

      Replace the current value with the Value 2 value (for instance, set the note# to the velocity)

      no parameters
      
    • Mirror [:mirror]

      Mirror/invert the current value around a reference value.

      Parameter 1: mirror reference value
      
    • Ramp in Selection Range [:line]

      Given the time domain of the selected events, generate a line between the minimum and maximum values and distribute it across all selected events. Or, if you prefer, the first event is set to the minimum, the last event is set to the maximum, and the events in-between are interpolated between those extremes based on their position.

      Parameter 1: lower bound of value range
      Parameter 2: upper bound of value range
      Parameter 3: curve (menu enum), one of:
      
      • Linear [$lin]
      • Exponential [$exp]
      • Logarithmic [$log]
      • S-Curve [$scurve]
      Parameter 4: curve modifier: floating-point value
      

      Non-linear curves support an additional value which sets (for exponential and logarithmic curves) the exponent for the operation (for $exp, it's the direct exponent used to calculate the curve; for $log, it's eexp used as the logarithm base) -- with a default of 2 and a minimum of 0. For the S-Curve, it adjusts the curvature -- with a default 0.5 and a range of -1 - 1.

    • Relative Ramp in Selection Range [:relline]

      Give the time domain of the selected events, generate a line between the minimum and maximum values and apply it as an offset to the value of all selected events.

      Parameter 1: lower bound of relative value range
      Parameter 2: upper bound of relative value range
      Parameter 3: curve (menu enum), one of:
      
      • Linear [$lin]
      • Exponential [$exp]
      • Logarithmic [$log]
      • S-Curve [$scurve]
      Parameter 4: curve modifier: floating-point value
      

      Non-linear curves support an additional value which sets (for exponential and logarithmic curves) the exponent for the operation (for $exp, it's the direct exponent used to calculate the curve; for $log, it's eexp used as the logarithm base) -- with a default of 2 and a minimum of 0. For the S-Curve, it adjusts the curvature -- with a default 0.5 and a range of -1 - 1.

    • Scale + Offset [:scaleoffset]

      Scale (multiply) and offset (add) to the current value. Convenience method combining the two operations.

      Parameter 1: scale factor
      Parameter 2: offset value
      
  • Value 2 [$value2]

    • Add [+]

      Parameter 1: value to add
      
    • Subtract [-]

      Parameter 1: value to subtract
      
    • Multiply [*]

      Parameter 1: value by which to multiply the current value
      
    • Divide By [/]

      Parameter 1: value by which to divide the current value
      
    • Round By [:round]

      Parameter 1: value to which to quantize the current value. For instance, a value of 5 would round the current value to a multiple of 5.
      
    • Set to Fixed Value [=]

      Parameter 1: value
      
    • Clamp Between [:clamp]

      Parameter 1: lower range of clamp
      Parameter 2: upper range of clamp
      
    • Random Values Between [:random]

      Generate random values within a range of two values.

      Parameter 1: minimum value
      Parameter 2: maximum value
      
    • Relative Random Values Between [:relrandom]

      Generate a random offset to apply to the current value of selected events.

      Parameter 1: minimum offset value distance
      Parameter 2: maximum offset value distance
      
    • Use Value 1 [:getvalue1]

      Replace the current value with the Value 1 value (for instance, set the velocity to the note#)

      no parameters
      
    • Mirror [:mirror]

      Mirror/invert the current value around a reference value.

      Parameter 1: mirror reference value
      
    • Ramp in Selection Range [:line]

      Given the time domain of the selected events, generate a line between the minimum and maximum values and distribute it across all selected events. Or, if you prefer, the first event is set to the minimum, the last event is set to the maximum, and the events in-between are interpolated between those extremes based on their position.

      Parameter 1: lower bound of value range
      Parameter 2: upper bound of value range
      Parameter 3: curve (menu enum), one of:
      
      • Linear [$lin]
      • Exponential [$exp]
      • Logarithmic [$log]
      • S-Curve [$scurve]
      Parameter 4: curve modifier: floating-point value
      

      Non-linear curves support an additional value which sets (for exponential and logarithmic curves) the exponent for the operation (for $exp, it's the direct exponent used to calculate the curve; for $log, it's eexp used as the logarithm base) -- with a default of 2 and a minimum of 0. For the S-Curve, it adjusts the curvature -- with a default 0.5 and a range of -1 - 1.

    • Relative Ramp in Selection Range [:relline]

      Give the time domain of the selected events, generate a line between the minimum and maximum values and apply it as an offset to the value of all selected events.

      Parameter 1: lower bound of relative value range
      Parameter 2: upper bound of relative value range
      Parameter 3: curve (menu enum), one of:
      
      • Linear [$lin]
      • Exponential [$exp]
      • Logarithmic [$log]
      • S-Curve [$scurve]
      Parameter 4: curve modifier: floating-point value
      

      Non-linear curves support an additional value which sets (for exponential and logarithmic curves) the exponent for the operation (for $exp, it's the direct exponent used to calculate the curve; for $log, it's eexp used as the logarithm base) -- with a default of 2 and a minimum of 0. For the S-Curve, it adjusts the curvature -- with a default 0.5 and a range of -1 - 1.

    • Scale + Offset [:scaleoffset]

      Scale (multiply) and offset (add) to the current value. Convenience method combining the two operations.

      Parameter 1: scale factor
      Parameter 2: offset value
      
  • Velocity [$velocity] N.B.: NOTES ONLY

    Velocity is synonymous with Value 2 for note events only. The only real difference vis a vis Value 2 is that Velocity actions offer a range from 1-127 (rather than 0-127).

    • Add [+]

      Parameter 1: velocity to add
      
    • Subtract [-]

      Parameter 1: velocity to subtract
      
    • Multiply [*]

      Parameter 1: value by which to multiply the current velocity
      
    • Divide By [/]

      Parameter 1: value by which to divide the current velocity
      
    • Round By [:round]

      Parameter 1: value to which to quantize the current velocity. For instance, a value of 5 would round the current velocity to a multiple of 5.
      
    • Set to Fixed Value [=]

      Parameter 1: velocity
      
    • Clamp Between [:clamp]

      Parameter 1: lower range of clamp
      Parameter 2: upper range of clamp
      
    • Random Values Between [:random]

      Generate random values within a range of two values.

      Parameter 1: minimum value
      Parameter 2: maximum value
      
    • Relative Random Values Between [:relrandom]

      Generate a random offset to apply to the current value of selected events.

      Parameter 1: minimum offset velocity distance
      Parameter 2: maximum offset velocity distance
      
    • Use Value 1 [:getvalue1]

      Replace the current value with the Value 1 value (for instance, set the velocity to the note#)

      no parameters
      
    • Mirror [:mirror]

      Mirror/invert the current value around a reference value.

      Parameter 1: mirror reference velocity
      
    • Ramp in Selection Range [:line]

      Given the time domain of the selected events, generate a line between the minimum and maximum values and distribute it across all selected events. Or, if you prefer, the first event is set to the minimum, the last event is set to the maximum, and the events in-between are interpolated between those extremes based on their position.

      Parameter 1: lower bound of value range
      Parameter 2: upper bound of value range
      Parameter 3: curve (menu enum), one of:
      
      • Linear [$lin]
      • Exponential [$exp]
      • Logarithmic [$log]
      • S-Curve [$scurve]
      Parameter 4: curve modifier: floating-point value
      

      Non-linear curves support an additional value which sets (for exponential and logarithmic curves) the exponent for the operation (for $exp, it's the direct exponent used to calculate the curve; for $log, it's eexp used as the logarithm base) -- with a default of 2 and a minimum of 0. For the S-Curve, it adjusts the curvature -- with a default 0.5 and a range of -1 - 1.

    • Relative Ramp in Selection Range [:relline]

      Give the time domain of the selected events, generate a line between the minimum and maximum values and apply it as an offset to the value of all selected events.

      Parameter 1: lower bound of relative value range
      Parameter 2: upper bound of relative value range
      Parameter 3: curve (menu enum), one of:
      
      • Linear [$lin]
      • Exponential [$exp]
      • Logarithmic [$log]
      • S-Curve [$scurve]
      Parameter 4: curve modifier: floating-point value
      

      Non-linear curves support an additional value which sets (for exponential and logarithmic curves) the exponent for the operation (for $exp, it's the direct exponent used to calculate the curve; for $log, it's eexp used as the logarithm base) -- with a default of 2 and a minimum of 0. For the S-Curve, it adjusts the curvature -- with a default 0.5 and a range of -1 - 1.

    • Scale + Offset [:scaleoffset]

      Scale (multiply) and offset (add) to the current value. Convenience method combining the two operations.

      Parameter 1: scale factor
      Parameter 2: offset velocity
      
  • Release Velocity [$relvel] N.B.: NOTES ONLY

    Release velocity (note-off velocity) is unimplemented in many, if not most MIDI instruments. But for those times where it is implemented, it's nice to have.

    • Add [+]

      Parameter 1: release velocity to add
      
    • Subtract [-]

      Parameter 1: release velocity to subtract
      
    • Multiply [*]

      Parameter 1: value by which to multiply the current release velocity
      
    • Divide By [/]

      Parameter 1: value by which to divide the current release velocity
      
    • Round By [:round]

      Parameter 1: value to which to quantize the current release velocity. For instance, a value of 5 would round the current release velocity to a multiple of 5.
      
    • Set to Fixed Value [=]

      Parameter 1: release velocity
      
    • Clamp Between [:clamp]

      Parameter 1: lower range of clamp
      Parameter 2: upper range of clamp
      
    • Random Values Between [:random]

      Generate random release velocities within a range of two release velocities.

      Parameter 1: minimum release velocity
      Parameter 2: maximum release velocity
      
    • Relative Random Values Between [:relrandom]

      Generate a random offset to apply to the current release velocity of selected events.

      Parameter 1: minimum offset release velocity distance
      Parameter 2: maximum offset release velocity distance
      
    • Use Value 1 [:getvalue1]

      Replace the current release velocity with the Value 1 value (for instance, set the velocity to the note#)

      no parameters
      
    • Mirror [:mirror]

      Mirror/invert the current release velocity around a reference value.

      Parameter 1: mirror reference value
      
    • Ramp in Selection Range [:line]

      Given the time domain of the selected events, generate a line between the minimum and maximum values and distribute it across all selected events. Or, if you prefer, the first event is set to the minimum, the last event is set to the maximum, and the events in-between are interpolated between those extremes based on their position.

      Parameter 1: lower bound of value range
      Parameter 2: upper bound of value range
      Parameter 3: curve (menu enum), one of:
      
      • Linear [$lin]
      • Exponential [$exp]
      • Logarithmic [$log]
      • S-Curve [$scurve]
      Parameter 4: curve modifier: floating-point value
      

      Non-linear curves support an additional value which sets (for exponential and logarithmic curves) the exponent for the operation (for $exp, it's the direct exponent used to calculate the curve; for $log, it's eexp used as the logarithm base) -- with a default of 2 and a minimum of 0. For the S-Curve, it adjusts the curvature -- with a default 0.5 and a range of -1 - 1.

    • Relative Ramp in Selection Range [:relline]

      Give the time domain of the selected events, generate a line between the minimum and maximum values and apply it as an offset to the value of all selected events.

      Parameter 1: lower bound of relative value range
      Parameter 2: upper bound of relative value range
      Parameter 3: curve (menu enum), one of:
      
      • Linear [$lin]
      • Exponential [$exp]
      • Logarithmic [$log]
      • S-Curve [$scurve]
      Parameter 4: curve modifier: floating-point value
      

      Non-linear curves support an additional value which sets (for exponential and logarithmic curves) the exponent for the operation (for $exp, it's the direct exponent used to calculate the curve; for $log, it's eexp used as the logarithm base) -- with a default of 2 and a minimum of 0. For the S-Curve, it adjusts the curvature -- with a default 0.5 and a range of -1 - 1.

    • Scale + Offset [:scaleoffset]

      Scale (multiply) and offset (add) to the current release velocity. Convenience method combining the two operations.

      Parameter 1: scale factor
      Parameter 2: offset release velocity
      
  • New Event [$newevent]

    • Create New Event [:newmidievent]

      Generate a new MIDI event

      Parameter 1: event properties (menu)
      Parameter 2: position for new event, one of
      
      • At Edit Cursor [$atcursor]

      • Item Start [$itemstart]

      • Item End [$itemend]

      • At Position [$atposition]: an absolute time value in the project

        With the exception of At Position, all position modes offer a Relative option, allowing an event to be create at the desired position +- some relative time. So for instance, At Edit Cursor - 0.1.00 to place an event 1 beat before the edit cursor positon.

Clone this wiki locally