MusicBrainopen hardware · est. NL

Component

Rings resonator

v0.5.108, v0.5.110

Oscillators & voicesMutable InstrumentsPhysical modelStereo

A resonator (Mutable Instruments Rings): strings, bells and bars you strike.

Software v0.5.110

Board overview

Overview

A resonator (Mutable Instruments Rings): strings, bells and bars you strike.

A port of Mutable Instruments Rings: a resonator that you strike rather than an oscillator that you hold. Each rising edge on Strum plucks it at the pitch on V/Oct, and the sound rings out on its own: a bell or marimba in Modal, a set of strings that ring along in Sympathetic, a plucked string in String, plus the three extra models of the original (FM, quantized sympathetic strings, and string with reverb).

Structure, Bright, Damping and Position shape the sound; each has a CV input (S+, B+, D+, P+) that adds to that knob; ±1 sweeps the whole range. With Poly on 2 or 4, successive strums go to different internal voices so notes can ring on together; the voices alternate between the Odd and Even outputs, which makes a natural stereo pair.

Controls

ControlRangeDefaultWhat it does
Structure0 … 10.4How pure or inharmonic the overtones are, or how the strings are coupled.
Bright0 … 10.6Brightness.
Damping0 … 10.6How quickly it dies away.
Position0 … 10.3Where you strike it: middle = hollow, edge = bright.
ModelModal / Sympath / String / FM / Quant / Str+RevModalThe kind of resonator: modal (bell, marimba), sympathetic strings, string …
Poly1 / 2 / 42Voices: 1, 2 or 4; each strum goes to the next voice.
Coarse-36 … 36 semi0Tuning in semitones.
Fine-100 … 100 ct0Fine tuning in cents.
Level0 … 10.8Output level.

Ports

PortDirectionSignalWhat it carries
V/OctincvPitch, 1 V per octave; 0 V is C4.
StrumingateStrum: each rising edge plucks the resonator.
OddoutaudioOdd voices.
EvenoutaudioEven voices.
S+incvAdds to the Structure knob; ±1 sweeps its whole range.
B+incvAdds to the Brightness knob; ±1 sweeps its whole range.
D+incvAdds to the Damping knob; ±1 sweeps its whole range.
P+incvAdds to the Position knob; ±1 sweeps its whole range.

How it works

The module runs Émilie Gillet's Rings DSP as it is: the strummer and the Part with its resonator models, excited by the internal exciter (this version has no audio input to excite it with). Rings renders at 48 kHz in blocks of 24 samples; the wrapper resamples that linearly to the Teensy's 44.1 kHz.

To make the original code run on the Teensy, the module zeroes its memory before use (the code expects zeroed statics), the delay lines get a heap fallback, and a guard catches invalid samples. The browser simulator compiles the same vendored code to WebAssembly.

Runs on

  • Teensy 4.1 (the MusicBrain Brain): about 16.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

In the editor's example set: 🔔 Rings + FREQ SHIFT, 💍 Rings (resonator), 🎚️ Rings + Opto comp, 🎚️ Rings + Console EQ, 💍 Rings + Ring mod, 🏛️ Rings + Plate reverb, ✨ Rings + Shimmer.

Editor: https://editor.musicbrain.nl

Sources & licences

  • Based on Mutable Instruments Rings by Émilie Gillet, open source under the MIT licence (vendored in firmware/lib/mi-rings).
  • The MusicBrain wrapper is MIT licensed as well. This is a software port, not the Mutable Instruments hardware.

Versions

  • 0.5.110: the CV inputs add to their knob instead of replacing it.
  • Simulator (September 2026): the browser runs the same Rings code as WebAssembly.
  • 0.5.29: first version (July 2026), with all six models and 1, 2 or 4 voices.
Earlier versions (1)v0.5.108

Software v0.5.108

Board overview

Overview

A resonator (Mutable Instruments Rings): strings, bells and bars you strike.

A port of Mutable Instruments Rings: a resonator that you strike rather than an oscillator that you hold. Each rising edge on Strum plucks it at the pitch on V/Oct, and the sound rings out on its own: a bell or marimba in Modal, a set of strings that ring along in Sympathetic, a plucked string in String, plus the three extra models of the original (FM, quantized sympathetic strings, and string with reverb).

Structure, Bright, Damping and Position shape the sound; each has a CV input (S+, B+, D+, P+) that takes over that knob while it is patched, from 0 to 1. With Poly on 2 or 4, successive strums go to different internal voices so notes can ring on together; the voices alternate between the Odd and Even outputs, which makes a natural stereo pair.

Controls

ControlRangeDefaultWhat it does
Structure0 … 10.4How pure or inharmonic the overtones are, or how the strings are coupled.
Bright0 … 10.6Brightness.
Damping0 … 10.6How quickly it dies away.
Position0 … 10.3Where you strike it: middle = hollow, edge = bright.
ModelModal / Sympath / String / FM / Quant / Str+RevModalThe kind of resonator: modal (bell, marimba), sympathetic strings, string …
Poly1 / 2 / 42Voices: 1, 2 or 4; each strum goes to the next voice.
Coarse-36 … 36 semi0Tuning in semitones.
Fine-100 … 100 ct0Fine tuning in cents.
Level0 … 10.8Output level.

Ports

PortDirectionSignalWhat it carries
V/OctincvPitch, 1 V per octave; 0 V is C4.
StrumingateStrum: each rising edge plucks the resonator.
OddoutaudioOdd voices.
EvenoutaudioEven voices.
S+incvSets Structure (0 to 1) while patched.
B+incvSets Brightness (0 to 1) while patched.
D+incvSets Damping (0 to 1) while patched.
P+incvSets Position (0 to 1) while patched.

How it works

The module runs Émilie Gillet's Rings DSP as it is: the strummer and the Part with its resonator models, excited by the internal exciter (this version has no audio input to excite it with). Rings renders at 48 kHz in blocks of 24 samples; the wrapper resamples that linearly to the Teensy's 44.1 kHz.

To make the original code run on the Teensy, the module zeroes its memory before use (the code expects zeroed statics), the delay lines get a heap fallback, and a guard catches invalid samples. The browser simulator compiles the same vendored code to WebAssembly.

Runs on

  • Teensy 4.1 (the MusicBrain Brain): about 16.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

In the editor's example set: 🔔 Rings + FREQ SHIFT, 💍 Rings (resonator), 🎚️ Rings + Opto comp, 🎚️ Rings + Console EQ, 💍 Rings + Ring mod, 🏛️ Rings + Plate reverb, ✨ Rings + Shimmer.

Editor: https://editor.musicbrain.nl

Sources & licences

  • Based on Mutable Instruments Rings by Émilie Gillet, open source under the MIT licence (vendored in firmware/lib/mi-rings).
  • The MusicBrain wrapper is MIT licensed as well. This is a software port, not the Mutable Instruments hardware.

Versions

  • Simulator (September 2026): the browser runs the same Rings code as WebAssembly.
  • 0.5.29: first version (July 2026), with all six models and 1, 2 or 4 voices.