Open-source project
trummerschlunk/master_me avatar
trummerschlunk/master_me

master_me, a mastering plugin built for the live stream

automatic mastering plugin for live streaming, podcasts and internet radio.

757 stars29 forksC++GPL-3.0

At a glance

What is it?
trummerschlunk/master_me is a free and open source audio plugin that masters a live signal in real time, combining a leveler with a chain of dynamics processors modelled on a Berlin mastering studio. It is aimed at streamers and internet radio, and the author is explicit that it is not a tool for mastering finished music.
Who is it for?
Adopt master_me when you broadcast live and need a sound that stays consistent and loud without an engineer on the master channel, and when you want a plugin you can read the source of. Do not adopt it to master recorded tracks, since the project says so itself and the leveler alone will not give you an album-ready result.
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?
Activity is slowing. The repository last received commits 6 months 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 25, 2026, and from our analysis. They are not legal advice.

Editorial analysis

A live signal processor, not an album finishing tool

The description is short: an automatic mastering plugin for live streaming, podcasts and internet radio. Everything else follows from that framing.

The origin story in the README is unusually specific and it explains the design. With the first Covid-19 related lockdowns in 2020, many real-life concerts, conferences and festivals were forced into the digital domain and sounded pretty crappy. Having worked for almost 20 years in audio mastering, Berlin based engineer Klaus Scheuermann started to develop master_me, a word fusion of automatic mastering and mini-me, in order to make open source streaming sound better. After a few weeks it was first used at the Quarantine Sessions, a weekly distributed electro-acoustic improvised concert hosted at Stanford's CCRMA Institute.

So this is a tool for a signal that is happening now, with no second pass and no human listening to it. That is the entire engineering constraint, and it is why the plugin introduces no latency and why the leveler is the most important part of it.

The scope statement is just as important, and it is honest. The README says it is tempting but NOT intended to automatically master your recorded music, and adds that your art deserves closer, offline attention. It then concedes that certain modules of master_me can be a valuable tool as part of your music mastering chain. A plugin that tells you what it is not for is a plugin you can trust about what it is.

The audience is stated plainly: master_me is for all live streamers and internet radio stations.

Five plugin formats, and no AAX yet

The installers live on the GitHub releases page, and the compatibility list is unusually broad for an audio plugin.

Supported operating systems are Linux, macOS and Windows. Plugin formats are CLAP, VST, VST3, AU and LV2, and there is a standalone Jack application for some systems. So whatever your host speaks, and whatever your platform, there is a build.

The exception is AAX, which is not supported yet. The README is upfront about the workaround: master_me can be used in PROTOOLS via a VST-AAX wrapper, like Blue Cat's Patchwork. If your Pro Tools session depends on AAX-native plugins in the signal chain, the master chain itself still needs a wrapper, which is a small but real piece of friction in a live setup.

The system requirements section adds a technical nuance: master_me is available in LV2, VST2, VST3 and CLAP formats for Linux, macOS and Windows, plus JACK Standalone for some systems, and due to faust and its open architecture it can possibly be compiled to a vast variety of target platforms not mentioned above. The word possibly is doing work there, and the rest of the project explains why.

Two auxiliary notes on the naming. The project calls itself multi platform, free and open source, and it is licensed under GPL3 with the details in the LICENSE file. And the audio chain it applies is described as closely modeled after the audio chain of Klaus Scheuermann's mastering studio in Berlin, which is the honest way to describe a chain derived from one engineer's practice rather than a rule set.

The leveler and the chain that follows it

The main concept is stated as the combination of a leveler and a chain of dynamics processors, and the two halves do different jobs.

The leveler can be seen as a big volume knob that you would grab when the sound is too low or too high for your taste, except that it is automatic. It listens to the incoming signal and adjusts its volume to meet the target loudness, and the README says a complex algorithm was designed so that this happens as smoothly and naturally as possible. The leveler is described as the most critical part of master_me.

The chain after it is designed to produce a natural, balanced and consistent sound if it is hit at the right level, which is the leveler's output. It takes care of peaks in the audio, like short loud noises, and balances the frequency spectrum. There are also some additional modules before the leveler, for convenience.

The signal flow, as the README lays it out, is:

code
 - Pre-processing
 - Gate
 - EQ
 - Leveler
 - Knee Compressor
 - Multiband Mid-Side Compressor
 - Limiter
 - Brickwall

Two design choices stand out. The gate, the EQ and the leveler sit before the dynamics processors, which means the leveler is working on audio that has already been cleaned up of noise and balanced. And the chain ends with a limiter and then a brickwall, so the final output is bounded twice, which is what you want when the destination is a streaming platform that will apply its own normalisation on top of yours.

The pre-processing module is the only place with unusual controls: a gain slider for the incoming signal, a mono switch, phase switches for both left and right channels, and a stereo-correct switch, which the README points to as a custom designed process. After that comes a simple noise gate with threshold, attack and release.

Target loudness in LUFS, and the silence brake

The leveler has a set of parameters, and the one that matters is the target loudness, expressed in lufs. The slider is also available in easy mode next to the input meters on the left.

The README gives reference values that make this immediately actionable: typical target loudness values are -18lufs for video streaming, -14lufs for podcasting, and -23lufs for EBU broadcast standard. Those are the numbers to set for the three common cases, and they are a good reason to read the README rather than guess.

The second parameter worth understanding is the brake threshold. It is used by the leveler to detect silence, and when silence is detected the leveler freezes and waits for incoming audio before it continues.

That behaviour is the answer to a specific live-streaming problem. A leveler that keeps pulling up the gain during a gap in speech will amplify the room noise, and when the host comes back the noise is suddenly loud. The brake holds the gain steady across the gap, so the return is at the level the leveler had already established. The tradeoff is that the leveler is not tracking during silence, so a long pause followed by a much quieter passage will briefly read low. For a spoken-word stream that is the right trade, and for a music stream it is less obviously so.

The remaining leveler parameters are described in the README's module documentation, which continues past the visible section of the page. The concept sections also explain that the chain handles short loud noises and balances the frequency spectrum, which is the short version of what a knee compressor, a multiband mid-side compressor, a limiter and a brickwall are doing in sequence.

Faust for the DSP, DPF for the shell

The technical stack is stated in two lines: master_me's DSP is written in Faust, and the GUI and plugin are based on DPF, the DISTRHO Plugin Framework.

That combination explains most of the project's characteristics. Faust is a functional DSP language, and writing the audio processing in it means the algorithm is expressed as a signal graph rather than as hand-written C++ loops, which is why the same source can be compiled for many targets and why the project can be built for platforms the release page does not list. The repository layout follows from it: master_me.dsp is the main graph, lufs_meter.dsp is the loudness measurement, expanders.lib holds shared definitions, and pregen/ holds pregenerated output.

DPF supplies the plugin formats, the host integration and the user interface, and the tree has plugin/, dpf/ and dpf-widgets/ directories for the wrapper and the widgets. The dpf-widgets path suggests an OpenGL-based interface, and the Makefile's clean target removes compiled OpenGL objects from dpf-widgets/opengl, which is a small but real signal that the GUI is not just a set of native host controls.

The people behind the pieces are listed in the README, and the division is instructive. Concept and idea: Klaus Scheuermann. DSP: Scheuermann, Bart Brouns, Robin Gareus and Jakob Dübel. GUI and plugin: Filipe Coelho. Logo and artwork: Peter Schlossnikel. With more contributions from Julius Smith, Dario Sanfilippo, Stéphane Letz, Romain Michon, Yann Orlarey and the Faust community.

That is a project with a fair amount of professional audio engineering behind it, which is relevant when you are trusting a plugin to make decisions about your output level while you are busy with everything else.

Building from source: faustpp and the bench targets

There is no compile-and-run command in the README, because the intended path is downloading an installer. The Makefile is there for anyone who wants to build it, and it is worth reading because it shows how the toolchain is arranged.

The build includes the DPF base makefile definitions and a VERSION.mk file, and the version is assembled from three components:

code
VERSION = $(VERSION_MAJOR).$(VERSION_MINOR).$(VERSION_MICRO)

The default target is simply master_me. The Makefile also handles the Faust compiler as a dependency rather than a prerequisite: if faustpp is already on the system it is used directly, and otherwise it is built into the build directory and invoked from there.

The bench target is the more interesting part for an adopter, because it is a way to measure the DSP rather than trust it. It compiles bench/faustbench.cpp against the master_me.dsp with faustbench and a set of compiler flags, and it produces a set of differently compiled variants:

code
BENCH_TARGETS = all normal prefetch tree-vec unroll prefetch+tree prefetch+unroll tree+unroll

In other words, the project carries its own benchmarking harness for the Faust graph, with the compiler flags for each variant hardcoded in the Makefile, and it is set up so the flags used in the bench match the build flags. That is how a DSP project checks that a change to the graph has not cost it performance, and it is a much better signal than a marketing claim.

The tree also has a docs/ directory, a template/ directory, an artwork/ directory and a bench/ directory at the top level, and the Makefile includes a clean target that removes the bin and build directories, the DPF build output and the compiled OpenGL widget objects.

Easy mode, expert mode, and who funded it

The interface is split into two, and the split is aimed at two different people.

The Easy mode is described as a very reduced GUI to make master_me an easy-to-use tool for all content creators. Only two choices can be made there: choose a preset and set the desired target loudness. That is a deliberate two-knob product for a streamer who should not have to think about audio.

The Expert mode exposes the full chain. The parameter handling is worth knowing: click and drag any parameter vertically or horizontally, except the target slider which only has vertical movement, shift plus click to reset to default, ctrl plus drag to go slower, and double-click a slider for manual text input.

The funding and history sections give the project a stability story. In 2022 it was funded by the Prototype Fund, an open source software funding initiative by the german ministry of education and research, and the same body is listed as the sponsor. A stable release has been available since September 2022, and the listed releases are 1.3.1 on 2025-07-02, 1.3.0 on 2025-06-29 and 1.2.0 on 2023-04-15. The last push to the repository was on 2026-04-22, and the repository is not archived.

Two things to weigh before you install. The first is the licensing, GPL3, which matters if you intend to redistribute the plugin inside a product rather than run it on your own stream. The second is the quickstart, which is four steps and assumes you already know how to load a plugin on a master channel: load the plugin on the master channel of your streaming software or DAW, choose a preset, and adjust a target loudness, which is optional. There is no onboarding, which is fine for an engineer and slightly hostile to a first-time streamer, and the Easy mode exists mainly to compensate for that.

Editorial conclusion

Adopt master_me when you broadcast live and need a sound that stays consistent and loud without an engineer on the master channel, and when you want a plugin you can read the source of. Do not adopt it to master recorded tracks, since the project says so itself and the leveler alone will not give you an album-ready result. Verify first which plugin format your host accepts, since AAX is not supported yet and Pro Tools needs a VST-AAX wrapper, and check the release notes for the version you install, since the current line is 1.3.x with a stable release available since September 2022.

Frequently asked questions

What is master_me and what is it for?

It is a free and open source audio plugin that optimizes sound in live streaming situations, with no latency, taking care of master levels and polishing the sound with a chain of effects. The README states it is for all live streamers and internet radio stations, and that it is NOT intended to automatically master recorded music.

Which plugin formats and operating systems does master_me support?

Supported operating systems are Linux, macOS and Windows, and the plugin formats are CLAP, VST, VST3, AU and LV2, plus a standalone Jack application for some systems. AAX is not supported yet, and the README says Pro Tools can use master_me through a VST-AAX wrapper such as Blue Cat's Patchwork.

What target loudness should I set in master_me?

The README gives typical target loudness values of -18lufs for video streaming, -14lufs for podcasting and -23lufs for the EBU broadcast standard. The target is set in lufs and is adjustable in both easy mode and expert mode.

How do I use master_me after installing it?

Load the plugin on the master channel of your streaming software or DAW, choose a preset, and adjust a target loudness, which is optional. The DSP is written in Faust and the GUI and plugin are based on DPF, and the README notes that due to faust and its open architecture the project can possibly be compiled to a vast variety of target platforms.

Official sources

  1. Issues
  2. License: GPL-3.0
  3. README
  4. Releases
  5. trummerschlunk/master_me 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/trummerschlunk-master-me.svg)](https://hysenlabs.com/projects/trummerschlunk-master-me)

Was this useful?