BPM & Sync
Modulaser has a global tempo clock that drives beat-synced nodes like the Phasor and Sequencer. You can set the tempo manually, tap it in, receive it from MIDI clock, or sync across the network with Ableton Link.
The BPM panel sits in the bottom bar. It shows the current tempo, a beat grid animation, and controls for each sync source.
Tempo Sources
A segmented control in the BPM panel lets you pick the active tempo source:
- Internal: Set the BPM directly or tap it in
- MIDI: An external device sends clock messages
- Link: Network sync with other Link-enabled apps
You choose one source at a time. The selection is saved with the project.
Internal Tempo
Drag the BPM value in the panel to set it directly. Range is 20–300 BPM, default 120.
Tap sets the tempo by feel: Modulaser averages the intervals between your last four taps and syncs the beat phase to the final one. The history resets after 2 seconds of inactivity. Tap is only available when the source is set to Internal.
Sync resets the beat phase to now without changing the tempo. Useful for aligning the downbeat to a drop or cue point. Sync works regardless of which source is active.
MIDI Clock
If you have a drum machine, DAW, or other device sending MIDI clock, Modulaser can follow it.
Enable the clock port for the sending device in Settings (the gear icon), under the Devices tab. The clock port is configured separately from the regular MIDI input: a device can be enabled for input, clock, or both.
MIDI clock sends 24 pulses per quarter note. Modulaser averages them over one beat and filters out small fluctuations: the displayed BPM only updates when the change exceeds 0.5 BPM. The BPM value is read-only while MIDI is the active source, since the incoming clock is authoritative.
If you select MIDI but no clock signal arrives, the BPM freezes at the last known value and the beat grid keeps ticking at that rate. The panel shows a warning: "Waiting for MIDI clock…" if clock ports are configured, or "No MIDI clock ports configured" if none are set up. The latter is clickable and opens Settings directly.
Ableton Link
Ableton Link syncs tempo and beat phase over the network with other Link-enabled applications: Ableton Live, Traktor, Resolume, and others.
Select Link in the source selector to join a session. The segment shows the peer count when active (e.g. "Link (2)").
Link is a collaborative protocol, not master/slave. Any peer can change the session tempo. When Link is the active source, the BPM value stays editable: dragging it proposes a new tempo to all connected peers. Beat phase is aligned on a 4-beat grid (one bar in 4/4), so downbeats land together even if apps joined at different moments.
Beat Grid
The BPM panel shows a 4-quadrant beat grid that visualizes the current beat and bar position. Each quadrant lights up on its beat, with the first beat of a phrase highlighted.
Speed Multiplier
Separate from BPM, the speed multiplier scales global playback speed. Use it to halve or double the rate of all beat-synced effects without changing the underlying tempo.
Timeline BPM Grid
The timeline has a Use BPM grid toggle (the metronome button in the top bar) that switches it to beat-oriented mode:
- Ruler: Timecode ticks are replaced with beat, bar, and phrase grid lines and bar number labels
- Snapping: Only beat grid positions are used as snap targets
- Default clip duration: Clips without an inherent duration default to 4 bars instead of the configured seconds-based default
- Clip nudge:
Alt + ←/→nudges selected clips by 1 beat;Alt + Shift + ←/→nudges by 1 bar - Bar snapping:
CmdCtrlCmd/Ctrl + dragforces bar-level snapping (minimum 4-beat grid)
The grid adapts to zoom level: at high zoom individual beats are visible; zoomed out, only bar or phrase boundaries appear.
What Uses BPM
The global tempo drives any node or feature with a beat sync option:
- Phasor: Lock the ramp to beat divisions (1 bar, 1/2, 1/4, etc.)
- Sequencer: Step through keyframe values in sync with the beat
- Cues: Auto-advance timing based on beat durations
MIDI and OSC Control
All BPM controls support MIDI and OSC mapping:
| Control | OSC Address |
|---|---|
| BPM value | /bpm/value |
| Tap tempo | /bpm/tap |
| Resync | /bpm/resync |
Map a knob to BPM, a pad to tap tempo, or a button to resync: whatever fits your controller layout.