CC / Pitch Bend / Aftertouch automation
The channel-message lanes under the piano roll let you edit CC, Pitch Bend, and Channel Aftertouch visually. You can edit per-clip — or define Track-bound lanes that apply across every clip on the track.
Lane types
Section titled “Lane types”| Type | Badge | Range | Use |
|---|---|---|---|
| CC (Control Change) | CC | 0–127 | Modulation, volume, filter, etc. (CC# 0–127) |
| Pitch Bend | PB | 0–16383 (center = 8192) | 14-bit pitch bend |
| Channel Aftertouch | CA | 0–127 | Channel-wide aftertouch |
PB and CA carry no controller number — only one of each is allowed per clip on a given channel (a second one would silently overwrite). CC supports unlimited lanes (different numbers).
Add a lane
Section titled “Add a lane”The + Add Lane ▾ button at the bottom-right of the piano roll opens a menu:
+ CC— new CC lane (auto-picks the next free CC number)+ Pitch Bend— disabled if a PB lane already exists on this clip+ Channel Aftertouch— same, disabled when one already exists
Lane Settings modal
Section titled “Lane Settings modal”Click the ⚙ gear in any lane header (or right-click) to open the Lane Settings modal, a table view of all lanes in this clip:
| Column | What it does |
|---|---|
| Visible | Toggle lane visibility — hidden lanes still play and export |
| Type badge | CC / PB / CA, with T· prefix for Track-bound |
| CC# | CC lanes only (PB/CA show —) |
| Label | Free text — defaults to the CC name (e.g. “Modulation”) |
| Events | Number of points in the lane |
| ⚙ | Expand the row to edit type / CC# / label inline |
| × | Remove (disabled for Track-bound; manage from Track Settings) |
Add and edit events
Section titled “Add and edit events”Click empty space in a lane to add a new event at that time and value.
| Action | Result |
|---|---|
| Drag a dot | Change time and value at once |
| Click a dot | Select |
| Delete / Backspace with a selection | Remove |
| Right-click a dot | Context menu (delete + change curve) |
Horizontal axis = time (beats), vertical = value (top is max). The value shows as a tooltip while dragging.
Curve types (segment shape)
Section titled “Curve types (segment shape)”The segment between two dots is shaped by the right-side dot’s curve type — i.e. how value approaches that point.
| Type | Shape | Accel |
|---|---|---|
| Linear | Straight line (default) | L |
| Hold | Stair-step (hold previous value, jump on arrival) | H |
| Exp | Slow → fast (Bitwig “Exp” feel) | E |
| ExpInv | Fast → slow | O |
| Scurve | Smoothstep — both ends flat | S |
Right-click the dot, or hover and press L/H/E/O/S. The dot shape encodes the curve type so it’s recognizable at a glance.
Track-bound lanes (shared across clips)
Section titled “Track-bound lanes (shared across clips)”The Track Settings modal (gear in the track header) has a “Shared lanes” section where you define lanes at the track level.
- These lanes appear in every clip on this track automatically
- All three types (CC / Pitch Bend / Channel Aftertouch) supported
- Events stay per-clip (only the lane “scaffold” is shared)
- Renaming or renumbering a Track lane propagates to every clip’s mirror
- If clips already have events on the lane, you’ll see a confirm dialog (affected clips + event count) before applying
This is great when you want CC1 or Pitch Bend on every clip of a track without re-creating the lane each time.
Live MIDI input recording
Section titled “Live MIDI input recording”When a track is armed and you press Play, your mod wheel / pitch wheel / aftertouch are recorded into matching lanes (created if they don’t exist).
- Lanes auto-materialize on first event
- Repeated identical values are thinned automatically so a 30+ events/sec mod wheel doesn’t bloat the clip
- See Recording from MIDI input for the full picture
Generate from code
Section titled “Generate from code”In the piano roll’s Code tab, use setCc / setPitchBend / setChannelAftertouch to write automation in JavaScript.
// LFO modulation on CC1onBeat((b) => { const v = Math.round(64 + 60 * Math.sin(b * Math.PI)); setCc(1, b, v); // (ccNumber, beat, value)});
// Pitch Bend that eases back to center over a beatonInit(() => { setPitchBend(0, 16000); setPitchBend(1.0, 8192, { curve: "exp" });});
// Channel Aftertouch as a bell curvesetChannelAftertouch(0, 0);setChannelAftertouch(0.5, 100);setChannelAftertouch(1.0, 0);See Coding Note Effect overview and Host API.
Common CC numbers
Section titled “Common CC numbers”| CC | Name | Typical use |
|---|---|---|
| 1 | Modulation | Vibrato / filter wobble |
| 7 | Volume | Channel volume |
| 10 | Pan | Stereo position |
| 11 | Expression | Volume changes within a phrase |
| 64 | Sustain | Sustain pedal (0=OFF, 127=ON) |
| 71 | Resonance | Filter resonance |
| 74 | Brightness | Filter cutoff |
Actual behavior depends on each synth’s MIDI implementation.
Related
Section titled “Related”- Recording from MIDI input — perform + record knobs/wheels live
- Coding Note Effect overview — generate CC from code
- Host API reference —
setCc/setPitchBend/setChannelAftertouch - Piano roll — note editing in the same view