Modulaser
DocsBlogPricing
Documentation
Getting StartedLaser Safety
Guides
MIDIOSCDMXAudio ReactiveBPM & SyncImage ModeEffectsBuy a LaserImprove Laser OutputProjection MappingMultiple LasersPen PlotterVideo to LaserShare Your CreationsRaspberry PiCuesTimelineLibraryMacrosKeyboard Shortcuts
Node Graph
Generators
OscillatorPhasorNoiseEnvelopeSequencerAudio InputDMX InputOSC InputLaser IndexTimecodeBPM
Frame
CircleSquarePolygonStarWaveRoseRosetteSpirographSpiralWaveform TunnelParametric CurveFileVideo InputTextCamera ProjectionDuplicatorDotterColorizeLaser ChaseBrightnessMergeOutput
Math
ArithmeticMultiply AddMixFrom PolarTo PolarColorTo Channels (RGB)
Outputs
LaserCubeEther DreamHelios DACIDNLaserworld / ShowNETAVBNDI, Syphon, and Spout Output
FAQ
Getting StartedLaser Safety
Guides
MIDIOSCDMXAudio ReactiveBPM & SyncImage ModeEffectsBuy a LaserImprove Laser OutputProjection MappingMultiple LasersPen PlotterVideo to LaserShare Your CreationsRaspberry PiCuesTimelineLibraryMacrosKeyboard Shortcuts
Node Graph
Generators
OscillatorPhasorNoiseEnvelopeSequencerAudio InputDMX InputOSC InputLaser IndexTimecodeBPM
Frame
CircleSquarePolygonStarWaveRoseRosetteSpirographSpiralWaveform TunnelParametric CurveFileVideo InputTextCamera ProjectionDuplicatorDotterColorizeLaser ChaseBrightnessMergeOutput
Math
ArithmeticMultiply AddMixFrom PolarTo PolarColorTo Channels (RGB)
Outputs
LaserCubeEther DreamHelios DACIDNLaserworld / ShowNETAVBNDI, Syphon, and Spout Output
FAQ
Loading…

Documentation

  • Getting Started
  • Guides
  • Outputs
  • FAQ

Product

  • Laser Safety
  • Changelog
  • Blog
  • Manage Subscription
  • Download Classic

Connect

  • info@modulaser.app
  • GitHub
  • Instagram

© 2026 RS Product Studio B.V.

Terms of ServicePrivacy Policy
  1. Documentation
  2. /Guides
  3. /MIDI

MIDI

Modulaser works fine with a mouse, but a MIDI controller gives you physical knobs and faders for real-time control. This makes a big difference during live shows, where reaching for a mouse isn't practical.

Any class-compliant MIDI controller works. Modulaser ships with built-in default mappings for two controllers:

  • Akai APC40 mkII
  • DJ TechTools MIDI Fighter Twister

Both work out of the box. Plug in, enable the device, and the default mapping loads automatically.

Setting Up Your Controller

Connect your MIDI controller and open Settings. Click the Devices tab. You'll see a grid of all detected MIDI devices, each with three checkboxes:

  • In: enables the device as a MIDI input for controlling parameters
  • Out: enables feedback output so Modulaser can update your controller's LEDs, motorized faders, and pad colors
  • Clock: enables the device as a MIDI clock source for tempo sync

Each checkbox shows a connection indicator: a green dot when connected, a gray dot when the device is enabled but not plugged in.

Modulaser remembers your settings and reconnects automatically when the device reappears.

For the APC40 mkII or MIDI Fighter Twister, you get a working layout immediately. The Use default map button (next to the device row) restores the built-in mapping if you've changed it. Default mappings update automatically across releases, as long as you haven't customized them. Once you edit a default mapping, your version is preserved.

MIDI Learn

To create your own mappings, open MIDI learn mode:

  • macOS: menu bar > Shortcuts > Edit MIDI...
  • Windows / Linux: Edit > MIDI Learn

All learnable controls show a blue overlay with the current assignment. To map a control:

  1. Click a parameter in Modulaser to select it as the target (the border highlights).
  2. Move a knob, fader, or press a pad on your MIDI controller.
  3. The mapping is saved automatically.

The assignment label shows the MIDI channel and control number, for example 1/CC48 for CC 48 on channel 1, or 2/C#4 for note C#4 on channel 2.

The MIDI Learn popover in Modulaser with Scope set to Selected Layer and Target showing Shape Scale X
The Learn popover shows the target, scope, and is waiting for the next MIDI control you move.

To remove a mapping, right-click the blue overlay and select Clear.

Press Escape to exit learn mode. Only one learn mode (MIDI or OSC) can be active at a time.

The Learn Window

While in learn mode, a floating window shows details about the selected mapping:

  • Target: the parameter you're mapping to
  • Source: the assigned MIDI control
  • Range: min and max values (default 0.0 to 1.0). Narrow the range to limit a fader to a useful subset, or invert it by setting min higher than max.
  • Mode: choose between Absolute (standard 0 to 127 faders and knobs) and Relative (endless encoders that send increment/decrement values)
  • Scope: for output group parameters, toggle between This Group (fixed index) and Selected Group (follows your current selection). For layer-scoped clip parameters, toggle between This Layer (fixed index) and Selected Layer (follows the selected layer).

The window also has a dropdown listing all existing mappings for the active port, so you can jump to any mapping to review or edit it.

When remapping a target that already has a mapping, the existing range and relative settings are preserved. Only the source is updated.

What You Can Control

MIDI can reach almost everything in Modulaser:

Clip parameters: oscillator frequency, speed, and level; color hue, saturation, and lightness; transform position, scale, and rotation; duplicator settings; camera position and angle; and all modulator parameters (LFO, audio reactivity, envelope, sequencer). These target the currently selected clip.

Layers: select a layer by index, control layer opacity, or toggle layer visibility. You can target a fixed layer index or follow the selected layer using the scope toggle.

Output groups: select, send, and clear clips per group. Control group opacity with a fader. Select a clip for editing within a group.

Effects: map scalar controls, switches, and enabled states for output-group effects.

Global output: color override (hue, saturation, lightness, level), speed multiplier, and blackout.

Macros: each clip has 6 macro slots. Map a MIDI knob to a macro, and it controls whatever parameter the macro is linked to. Macros are great for building a consistent control surface across different clips.

Tempo: set BPM directly, tap tempo, or resync the beat phase.

Cues: play/pause, stop, next, previous, loop toggle, and jump to a specific cue by index.

Timeline: play/pause, stop, seek, and skip forward/backward.

Clip selection: map pads to clip grid positions for quick clip triggering.

Bank shifting: scroll the visible clip grid up, down, left, or right to access more clips than your controller has pads. Button-based shifting moves one step at a time; encoder-based shifting works with relative encoders for smooth scrolling.

MIDI Clock

If your MIDI controller or another device sends MIDI clock, Modulaser can sync its tempo to it. Enable the Clock checkbox for the device in the Devices panel.

MIDI clock runs at 24 pulses per quarter note. Modulaser calculates BPM from the incoming clock signal and updates its tempo automatically.

Transport messages are supported: Start and Continue trigger a phase resync, Stop pauses clock tracking. If no clock tick arrives for 500ms, Modulaser considers the clock inactive and falls back to its local tempo. Ableton Link, if active, takes priority over MIDI clock.

MIDI Time Code

Modulaser can follow MIDI Time Code (MTC) as a timeline source, locking playback to a DAW or other timecode master. MTC arrives over any port already enabled for input or clock, so no extra setup is needed beyond enabling the device. Select it as the timeline source and the timeline tracks the incoming position, including locate jumps when the master repositions. The detected frame rate appears in the Timecode settings panel.

Feedback

Enable Out for a controller and Modulaser sends current values back to it: motorized faders move, knob rings update, and pad LEDs reflect state. The full state is sent on startup, so the controller stays in sync even when you change things with the mouse.

Tips

  • If you need network-based control instead of USB MIDI, check out the OSC guide for similar parameter control over a network connection.
  • Enable Out for your controller to get visual feedback. Motorized faders sync to parameter values, pad LEDs reflect clip state, and knob rings update when values change in Modulaser.
  • Mappings use positional indexes, not names. "Output Group 2 Opacity" always means the second group, regardless of what the project calls it. This keeps your mappings portable across projects.
  • You can map the same MIDI control to different targets in different contexts by using the scope toggle in the learn window.
  • If your controller has endless encoders, set the mode to Relative in the learn window. This avoids value jumps when the physical position doesn't match the parameter.
Previous
Guides
Next
OSC