MusicBrainopen hardware · est. NL

Component

Tape strip

v0.5.108

InstrumentsPolyphonicSample basedStereo

The mechanics of a Mellotron: an eight-second tape per key, with wow, flutter and wear.

Software v0.5.108

Board overview

Overview

The mechanics of a Mellotron: an eight-second tape per key, with wow, flutter and wear.

The mechanics of a Mellotron around an ordinary sample bank. The clean recording comes from the bank (the same .mmbs bank and Bank knob as the Sampler); the imperfection comes from this module. Each key has its own strip of tape, up to eight seconds long: after Length the sound stops abruptly, no matter how long you hold the key.

Let go and the strip rewinds on its spring. Press the key again while it is still rewinding and it plays from wherever the tape is, so quick repeats sound different from the first note. The module has eight voice cells; play it polyphonically with Poly ▾ → Tape strip ×8. The standard set has a Mellotron flute and strings built on it.

Controls

ControlRangeDefaultWhat it does
Bank0 … 150Which sample bank is on the tapes (flute, strings …).
Length1 … 8 s8Length of each tape strip, 1–8 s: the note stops abruptly when it runs out.
Return0.1 … 4 s1How long a full strip takes to rewind after you let go.
Contact0 … 10.5The pressure pad against the head: the rise and the little pitch dip when you press.
Level0 … 10.8Output level.
Motor0 … 10.4How much the motor slows when you hold many keys.
Wow0 … 10.3Slow wobble in pitch.
Flutter0 … 10.3Fast flutter in pitch.
Wear0 … 10.3Wear: tape hiss, less treble, some saturation.

Ports

PortDirectionSignalWhat it carries
PressincvPressure on the pad (0 to 1), for example channel pressure: slows the tape slightly.
BendincvPitch bend in V/Oct, added to all eight cells.
TapeoutcvPosition of the last struck tape strip, 0 to 1 of Length.
LoadoutcvMotor load, 0 to 1, with inertia.
LoutaudioAudio output, left.
RoutaudioAudio output, right.
voct_1incvPitch for voice 1, in V/Oct.
voct_2incvPitch for voice 2, in V/Oct.
voct_3incvPitch for voice 3, in V/Oct.
voct_4incvPitch for voice 4, in V/Oct.
voct_5incvPitch for voice 5, in V/Oct.
voct_6incvPitch for voice 6, in V/Oct.
voct_7incvPitch for voice 7, in V/Oct.
voct_8incvPitch for voice 8, in V/Oct.
gate_1ingateGate for voice 1: high = key down, low = the tape rewinds.
gate_2ingateGate for voice 2: high = key down, low = the tape rewinds.
gate_3ingateGate for voice 3: high = key down, low = the tape rewinds.
gate_4ingateGate for voice 4: high = key down, low = the tape rewinds.
gate_5ingateGate for voice 5: high = key down, low = the tape rewinds.
gate_6ingateGate for voice 6: high = key down, low = the tape rewinds.
gate_7ingateGate for voice 7: high = key down, low = the tape rewinds.
gate_8ingateGate for voice 8: high = key down, low = the tape rewinds.
vel_1incvVelocity for voice 1: picks the velocity layer in the bank.
vel_2incvVelocity for voice 2: picks the velocity layer in the bank.
vel_3incvVelocity for voice 3: picks the velocity layer in the bank.
vel_4incvVelocity for voice 4: picks the velocity layer in the bank.
vel_5incvVelocity for voice 5: picks the velocity layer in the bank.
vel_6incvVelocity for voice 6: picks the velocity layer in the bank.
vel_7incvVelocity for voice 7: picks the velocity layer in the bank.
vel_8incvVelocity for voice 8: picks the velocity layer in the bank.

How it works

The kernel keeps a tape position per key. A held key moves forward at the current tape speed; a released key rewinds, a full strip taking Return seconds. A looped sample keeps sounding until the tape runs out. When you press, the pad pushes the tape against the head (Contact): the note rises in 8 to 58 ms, starts dull (from 700 Hz up to full bandwidth) and dips up to 60 cents in pitch.

The capstan motor slows under load: the more keys held, the slower, up to −40 cents, with about 150 ms of inertia; channel pressure on Press slows it by up to 40 cents more. Wow is a 0.55 Hz sine plus a random drift (up to 25 cents), flutter two faster sines at 6.3 and 11.1 Hz (up to 6 cents). Wear adds tape hiss while a tape runs, lowers the bandwidth from 12 kHz to 3 kHz and adds soft saturation.

Runs on

  • Teensy 4.1 (the MusicBrain Brain): about 6 % CPU per instance (one note, default settings), measured on firmware 0.5.108.
  • The browser: the editor's simulator runs the same C++ code as WebAssembly, so what you hear while patching is what the Brain plays.

Try it

Patches to play (open them in the editor from their page): Aged and a bit tired Mellotron.

In the editor's example set: 📼 Tape strip ×8 (Mellotron), 🎞 Mellotron flute ×8, 🎻 Mellotron strings ×8.

Editor: https://editor.musicbrain.nl

Sources & licences

  • Modelled on the tape mechanism of the Mellotron; no third-party code.
  • Own kernel mmb_dsp/tape_strip.h on the shared sampler kernel, MIT licence.
  • The flute, recorder, strings and choir banks come from GeneralUser GS 2.0.3 by S. Christian Collins, whose licence allows derived banks with credit.

Versions

  • 0.5.95: first numbered firmware with the module (built 2 October 2026), with the gu-flute, gu-recorder and gu-strings banks.