Edition draft-56 · Draft · Source-reviewed instructions · Native coverage incomplete

Chapter 24

Controllers and sync

Draft: source-reviewed; native walkthrough not yet verified.

Draw MIDI controller automation #

Open the MIDI controller lane panel and add a common CC lane or choose Custom CC Number. The lane name identifies the controller number. Per-note Velocity, Pan and Expression use their own lane modes.

Use Pen to draw automation or drag empty lane space to create an automation clip. Pointer selects and moves curve points; Eraser removes points. A lane menu offers Clear All Points and Remove Lane. These commands affect different amounts of material.

Make Automation Clip from Time Selection creates a clip from the current range. Automation clips can be duplicated, renamed, looped, dissolved or deleted. Set from Time Selection sets a custom loop region; Reset to Whole Clip restores the whole-clip region. Keep CC curves distinct from note pitch-bend curves.

Add controller lanes #

The controller lane panel supports multiple visible rows. Quick-add chips below the rows depend on the track, existing data and lanes already visible. Click the plus to open the full add-lane menu.

BPM is offered on the master track. Vocal-expression choices depend on a DiffSinger or UTAU track. The choices therefore differ between tracks.

Keep a lane layout #

Expanding, collapsing or closing a row changes stored panel state and marks the project as changed. Save normally to write the project file. These gestures do not save immediately to disk.

The main and second piano-roll panels retain separate layout snapshots. Visible CC lane membership belongs to the track, so showing the same track in both panels shares that membership.

Project save and reopen have not yet been verified in a native walkthrough for this draft.

Install and approve a controller package #

Open Settings > Controllers. Choose Install folder... to install a controller package, then Refresh packages if needed. Select Installed controller package and read Manifest and requested permissions before Enable....

Enable... asks for local approval of the package and its listed permissions. Approval applies to the exact manifest and code you reviewed. Changed package bytes need review again. Reload... reloads the package through the approval workflow.

Choose a Named MIDI role, choose a live MIDI device offered for that role, then Assign device. Physical device assignments require MIDI input or output support in the current runtime. The standalone app supplies physical-device access; a hosted plug-in does not automatically have those device assignments. Output roles and feedback require available controller MIDI output. A disconnected or stale device cannot be treated as an active assignment. Read Current MIDI assignments and Controller status to confirm the result.

Disable stops the controller. Revoke permission removes its approval; enabling it again requires local approval. Recent controller logs and the action result help diagnose rejected assignments or package errors.

Map buttons, encoders and feedback #

The package declares the controls and MIDI roles it supports. Button mappings can use Note or CC messages. Available actions include Play, Stop, and selected-track mute or solo when the package permissions allow them.

Encoder mappings support Two's complement, Binary offset and Sign magnitude relative formats. Destinations can include Lua only, Selected track volume, Selected track pan and Selected track instrument gain.

A supported absolute control can use 7-bit CC input or a 14-bit CC pair. For the pair, MSB controllers are 0 to 31, the LSB is 32 higher, and both halves must arrive on the same channel within 50 ms. Feedback can use 7-bit CC or the declared 14-bit pair on channel 1.

Choose the declared output role for feedback only when controller MIDI output is available in the current runtime. Forward notes from the declared input to output enables note-through routing when supported. Save mappings accepts the edited mapping values. Do not assume assigning a device enables every action or output permission.

Tempo and host sync #

Settings > MIDI contains BPM, Learn, time signature and Sync to DAW. Use the host tempo mode when DonutStudio runs in a DAW and should follow its tempo. The standalone app has its own audio and MIDI device selectors; a plug-in uses the host device configuration.

Tempo synchronization, controller input and tuning output are separate routes. Test playback and one controller gesture after changing them before relying on a full setup.

Experimental DAW exchange #

The Bitwig connection controls are in System as part of the built-in DAW Sync & Interop workflow. Connect and the receive/send port fields configure the connection. Send (WIP), Import (WIP), Sync Mode (experimental) and Send Tuning (WIP) remain explicitly unfinished or experimental.

Standalone tries to connect to Bitwig when the app opens. A plug-in instance tries when its editor opens in Bitwig; other hosts skip that attempt. An attempt does not guarantee a connection.

Use project or MIDI exchange for a documented file workflow. This draft does not promise reliable live round-trip editing, shared transport ownership or tuning delivery through the WIP controls.