Model or dataset
tiagolr/ripplerx avatar
tiagolr/ripplerx

RipplerX is a nine model physically modeled synth with open source in the credits

A physically modeled synth

653 stars26 forksC++GPL-3.0

At a glance

What is it?
RipplerX is a GPL-3.0 JUCE synth that models struck resonators physically, with dual coupled resonators, nine acoustic models and up to 64 partials each, distributed as VST3, LV2 and AU. It suits producers who want modal synthesis without a commercial price tag, and its macOS builds are unsigned.
Who is it for?
Adopt RipplerX if you want modal synthesis you can read the source of, if nine resonator models and dual coupling cover the sounds you need, and if you are comfortable with a plugin that targets JUCE and ships as VST3, LV2 and AU rather than every format under the sun. Skip it if you need a signed macOS install, since the macOS builds are untested and unsigned, or if you rely on a DAW-specific sidechain route for audio input that your host does not implement.
Can I use it commercially?
Yes, with conditions. GPL-3.0 is a copyleft licence: if you distribute software that includes it, you must release that software's source code under the same licence. Running it internally without distributing it does not trigger that obligation.
Is it still maintained?
Yes. The repository last received commits 71 days ago.
What is it written in?
Mainly C++, according to GitHub's language statistics.

Answers come from the project's GitHub data, last synced on October 22, 2026, and from our analysis. They are not legal advice.

Editorial analysis

Nine resonator models, one physical modelling engine

RipplerX is a physically modeled synth, and the model list is where the character comes from. Nine acoustic resonator models are provided: String, Beam, Squared, Membrane, Drumhead, Plate, Marimba, Open tube and Closed tube. Each resonator can carry up to 64 partials, which is the number of modal components the synthesis engine has to solve for rather than the number of oscillators it runs. Four global shaping sliders, Inharmonicity, Tone, Ratio and Material, change how those partials relate to each other and to the excitation. The design intent is stated plainly: the project positions itself as an open source alternative to commercial instruments of that family, and it also serves as an entry point for developers and researchers into modal synthesis.

Dual resonators with serial and parallel coupling

The synth is not a single resonator with a filter. It has dual resonators, and the feature list names both serial and parallel coupling as options. That is the structural difference between striking one plate and striking two plates that either share energy in series or drive one another in parallel, which is where much of the metallic, ringing quality of a modal instrument comes from. Coupling is also where implementations differ: the project notes that the commercial instrument it takes inspiration from has physics-based serial coupling, and that RipplerX's controls and models are close to a one-to-one match with it while Chromaphone is the more complete instrument. The coupling model is therefore the part of the design most worth reading in the source.

Excitation is split into noise and mallet generators

A physical model needs something to strike the resonator, and RipplerX provides noise and mallet generators for that. The mallet side is the interesting one, because what the mallet is made of is not the same as what the resonator is made of. That is what the Material slider refers to, and it is why a marimba and a wooden beam are two different model choices rather than one model with a different filter setting. The README is candid about where the open source version falls short here: the commercial Chromaphone has a more sophisticated mallet generator, and the author recommends checking it out. A noise generator is also available for percussive, less defined attacks, and the combination of the two covers most of what a drum machine role needs.

Audio In excites the resonators, but only where the host allows it

Since version 1.4.0 the synth supports audio input, meaning an audio signal can feed the resonators and excite them when keys are pressed. The feature is host dependent, and the README lists what works. In Reaper you play an audio clip on the same track as the synth and the sound passes through only while keys are held. In Ableton Live you add a clip and send it to the plugin from the mixer. In Bitwig you enable the plug-in sidechain in the device window and select the clip track. In Cubase this is done by track sidechaining, and in Logic track sidechaining should work with the AU version. Because not all hosts support it, and FL Studio is called out by name, an FX version may be added later. For now, sidechaining into the synth is the documented route.

Microtuning runs through MTS-ESP rather than inside the plugin

There is no built-in tuning editor. Microtuning is supported via MTS-ESP, which means you install a separate player such as MTS-ESP MINI and run it alongside RipplerX, and the two communicate so RipplerX tunes itself to the config file the player has loaded. Scale files can be found at the Huygens-Fokker site, and the Surge tuning guide documents the MTS-ESP approach and links a list of players. For a synth with 64 partials per resonator, tunings that are not multiples of the fundamental change the whole partial structure, so this matters more here than on a subtractive instrument. It is also a shared decision: whatever tuning is active in the MTS-ESP player applies to RipplerX.

Builds cover VST3 and LV2 everywhere, AU on macOS, Clap later

The download section is precise about formats. Current builds include VST3 and LV2 for Windows, Linux and macOS, plus AU for macOS. Clap is planned when there is official JUCE support, which is why it is not there yet: the project is built with JUCE and the format support follows the framework. The manual is not in the repository, it lives in the project wiki pages. The source build uses CMake with submodules, and the Linux dependency list is explicit.

bash
git clone --recurse-submodules https://github.com/tiagolr/ripplerx.git

# linux
sudo apt update
sudo apt-get install libx11-dev libfreetype-dev libfontconfig1-dev libasound2-dev libxrandr-dev libxinerama-dev libxcursor-dev
cmake -G "Unix Makefiles" -DCMAKE_BUILD_TYPE=Release -S . -B ./build
cmake --build ./build --config Release

The submodules flag matters, since the repository has a .gitmodules entry and the libraries are expected to arrive with it.

macOS builds are unsigned, and the fix is three xattr commands

The macOS section is the clearest statement of a real limitation anywhere in this README. macOS builds are untested and unsigned, the author says outright not to expect a prompt fix because they do not have access to that OS, and asks for issues to be filed as tickets. Because the binaries are unsigned, Gatekeeper quarantines them and the documented workaround strips the quarantine attribute.

bash
sudo xattr -dr com.apple.quarantine /path/to/your/plugins/RipplerX.component
sudo xattr -dr com.apple.quarantine /path/to/your/plugins/RipplerX.vst3
sudo xattr -dr com.apple.quarantine /path/to/your/plugins/RipplerX.lv3

The three lines cover the component, the VST3 and the LV2 bundles, and the removal is recursive. This is a normal thing to do for an unsigned plugin, but it is also a decision you are making about trust in an unsigned binary from a project with a single maintainer.

The lineage runs from Rippler2 and Saike's Partials to a commercial sibling

RipplerX is a port of Rippler2 for the Reaper DAW, which itself started as a research project into physically modeled drums. The first version was based on Saike's Partials, an open source modal synth, and the main reference then became Chromaphone and Collision, with the controls and models described as almost a one-to-one match. The acknowledgements name Saike for Partials, AAS for the Chromaphone synth and manual that the models and parameters were drawn from, Nathan Ho and others for articles on modal synthesis, and DSP coders including Tale and Scott Stillwell. The commercial sibling Rippler from reFX is built on the same core models with a drag-and-drop modulation system, bi-directional resonator coupling, a dual-layer architecture and 400 plus presets, and the author recommends it to anyone who likes this one.

Editorial conclusion

Adopt RipplerX if you want modal synthesis you can read the source of, if nine resonator models and dual coupling cover the sounds you need, and if you are comfortable with a plugin that targets JUCE and ships as VST3, LV2 and AU rather than every format under the sun. Skip it if you need a signed macOS install, since the macOS builds are untested and unsigned, or if you rely on a DAW-specific sidechain route for audio input that your host does not implement. Verify first which formats your DAW reads, since Clap is only planned and depends on official JUCE support, and check whether MTS-ESP microtuning is what you want, because that is the only tuning path the project documents.

Frequently asked questions

What synthesis model does RipplerX use?

It is a physically modeled synth built on modal synthesis, with nine acoustic resonator models including String, Beam, Membrane, Plate, Marimba and open and closed tubes, and up to 64 partials per resonator.

Which plugin formats does RipplerX provide?

Current builds include VST3 and LV2 for Windows, Linux and macOS, plus AU for macOS. Clap is planned when there is official JUCE support.

How do I use audio input with RipplerX?

Since version 1.4.0 you can feed an audio signal into the resonators. The README lists working setups for Reaper, Ableton Live, Bitwig, Cubase and Logic, but notes that not all DAWs support it and that an FX version may be added later.

Does RipplerX support microtuning?

Yes, through MTS-ESP. You run a player such as MTS-ESP MINI alongside RipplerX and the plugins communicate so RipplerX tunes to the loaded config file.

Official sources

  1. Issues
  2. License: GPL-3.0
  3. README
  4. Releases
  5. tiagolr/ripplerx on GitHub
Add this badge to your README

If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.

Add this badge to your README

markdown
[![Hysen Labs](https://hysenlabs.com/badge/tiagolr-ripplerx.svg)](https://hysenlabs.com/projects/tiagolr-ripplerx)

Was this useful?