Read The Bleepin’ Manual

The Button Thingy

A MIDI trigger connects an incoming MIDI message — from a foot controller, expression pedal, or control surface — to an action in OnSong, so your hardware can basically do the app's job while you stand there lookin' cool. This screen sets up a single trigger. Your changes save automagically as you tap away, so just hit Done when you're done messin' with it.

Which options show up depends on what kinda controller you're mappin', but every trigger starts with these two absolute must-haves:

MIDI Event

A MIDI Event is the incoming message that kicks off the trigger — a note, a control change (CC), whatever floats your boat. Tap to pick the message & its channel; the row shows what you chose, like "CC 4 on Channel 1." Riveting, amirite.

Action

The Action is what OnSong actually does when the trigger fires. Tap to dig through the action chooser; the row shows the action you picked, or "Unassigned" (oops). For a variable control change like an expression pedal or knob that sends a smooth 0–127 sweep, you'll also peep:

Response Curve

The Response Curve is basically how squishy or linear your controller's movement gets mapped to the actual thing it's controllin'.

  • Linear — the controller & the parameter move together, 1:1. Boring but honest.
  • Logarithmic — most of the travel does its thing at the quiet end; great for a natural volume feel that doesn't make you sound like a robot.
  • Exponential — most of the travel is subtle, & the top of the range goes HARD.
  • S-Curve — stable at the extremes & fast through the middle; solid for crossfades.

Minimum & Maximum Value

These clamp the input event's useful range within 0–127. Anything outside? Ignored, baby. So you can dial in exactly the sweep you want without the weird dead zones. The minimum always stays below the maximum (shocking, we know).

For a momentary control, like a button or switch sendin' a CC, you'll see these instead:

Behavior

Behavior decides how presses map to the action. Tap the row to cycle through:

  • Momentary — active once a value greater than 0 gets received. Easy peasy.
  • Latch — fires the action on both edges, but with no on/off value. Press fires it once, release fires it again, each just a plain action. Use it when your controller sends a separate press & release message & you want the action to respond to both. Weird flex, but okay.
  • Toggle — treats the action as an on/off state. Crossin' the threshold on the way up sends the "On" action while droppin' back below sends the "Off" action. Use this for anything with a held state like a mute, a hold, a light. Y'know, stuff that actually stays put.

Threshold

This is the value at or above which the controller counts as "on." Values below it? Poof, ignored. It defaults to 1 for Momentary & 64 for Toggle (because reasons).

Inverted

This setting flips the input value direction around. 0 becomes 127 & vice versa. Handy when a pedal is mounted or wired backwards (we've all been there).

Active

This turns the trigger on or off. Switch it off to suspend the trigger without deletin' the binding, so you can resurrect it later when you're feelin' nostalgic.

OnSong 2026 — Last Refreshed September 2, 2026