Read The Bleepin’ Manual

The Clicky Clicky Magic Box

ZOMG!!1! MIDI Triggers (AKA: Make Your Foot Pedal Do Stuff)

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 drive the app hands-free. (Translation: your feet do the work so your hands can hold a coffee.) This screen sets up a single trigger. Your changes save as you make them, so just tap Done when you're finished & stop second-guessin' yourself.

Which options appear depends on the kind of controller you're mappin', but every trigger starts with these two absolute must-haves:

MIDI Event (aka "The Incoming Screamo")

A MIDI Event is the incoming message that fires the trigger — a note, a control change (CC), & all that good stuff. Tap to choose the message & its channel; the row shows your choice, like "CC 4 on Channel 1." (We promise it makes sense to someone.)

Action (aka "What OnSong Does Because You Pressed a Button")

The Action is what OnSong does when the trigger fires. Tap to pick from the action chooser; the row shows the assigned action, or "Unassigned." (Oops, you forgot to set it up, didn't you?) For a variable control change like an expression pedal or knob that sends a smooth 0–127 sweep, you'll also see:

Response Curve (aka "How Squiggly Your Line Is")

The Response Curve shapes how the controller's travel maps to the action. It's basically math that makes you feel less bad about yourself.

  • Linear — the controller & the parameter move together, 1:1. Boring. Predictable. Like you.
  • Logarithmic — most of the travel works at the quiet end; great for a natural volume feel. Our ears are weird, yo.
  • Exponential — most of the travel is subtle, & the top of the range pushes hard. Kinda like how nobody notices you until you mess up.
  • S-Curve — stable at the extremes & fast through the middle; good for crossfades. It's the Goldilocks of curves.

Minimum & Maximum Value (aka "Keep It in Your Lane")

These clamp the input event useful range within 0–127. Anything outside the range is ignored, so you can dial in exactly the sweep you want without the app havin' a meltdown. The minimum always stays below the maximum. (Math!)

For a momentary control, like a button or switch sendin' a CC, you'll see these instead (sorry, pedal people):

Behavior (aka "What Happens When You Poke It")

Behavior decides how presses map to the action. Tap the row to cycle through & find your vibe:

  • Momentary — active once a value greater than 0 is received. Press & forget about it. Simple livin'.
  • 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. (Fancy!)
  • 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. It's literally a switch.

Threshold (aka "The Tipping Point")

This is the value at or above which the controller counts as on. Values below it are ignored. It defaults to 1 for Momentary & 64 for Toggle. (Don't ask why. Even we don't know.)

Inverted (aka "Oops, I Wired It Backwards")

This setting reverses the input value direction. 0 becomes 127 & vice versa. Handy when a pedal is mounted or wired backwards, because let's be real — you prolly did that.

Active (aka "Is This Thing On?")

This turns the trigger on or off. Switch it off to suspend the trigger without deletin' the binding, so you can bring it back later when you remember how to use it.

2026.3 — Last Refreshed September 2, 2026