{"id":13517372,"url":"https://github.com/trummerschlunk/master_me","last_synced_at":"2025-03-31T08:31:37.648Z","repository":{"id":55838932,"uuid":"522573921","full_name":"trummerschlunk/master_me","owner":"trummerschlunk","description":"automatic mastering plugin for live streaming, podcasts and internet radio.","archived":false,"fork":false,"pushed_at":"2024-05-06T10:38:35.000Z","size":4716,"stargazers_count":494,"open_issues_count":19,"forks_count":20,"subscribers_count":15,"default_branch":"master","last_synced_at":"2024-05-21T12:44:37.634Z","etag":null,"topics":["audio","lv2","mastering","plugin","podcast","radio","sound","streaming","vst","vst3"],"latest_commit_sha":null,"homepage":"","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/trummerschlunk.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-08-08T14:04:44.000Z","updated_at":"2024-05-27T16:14:01.063Z","dependencies_parsed_at":"2023-02-01T02:45:29.648Z","dependency_job_id":"8dc928ca-6a5b-478e-92a3-52d44905288b","html_url":"https://github.com/trummerschlunk/master_me","commit_stats":null,"previous_names":[],"tags_count":3,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/trummerschlunk%2Fmaster_me","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/trummerschlunk%2Fmaster_me/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/trummerschlunk%2Fmaster_me/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/trummerschlunk%2Fmaster_me/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/trummerschlunk","download_url":"https://codeload.github.com/trummerschlunk/master_me/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246441563,"owners_count":20778051,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["audio","lv2","mastering","plugin","podcast","radio","sound","streaming","vst","vst3"],"created_at":"2024-08-01T05:01:33.082Z","updated_at":"2025-03-31T08:31:37.639Z","avatar_url":"https://github.com/trummerschlunk.png","language":"C++","funding_links":[],"categories":[":headphones: Audio Production","Audio Post-Processing Tools","Mixing and Mastering","C++"],"sub_categories":[":electric_plug: Audio Plugins","Other effects"],"readme":"\u003cimg src=\"./img/logo/logo_master_me_greyK01.png\"\u003e\n\n# Installers \u0026 Compatibility\n\nhere are the latest installers:  \n[https://github.com/trummerschlunk/master_me/releases](https://github.com/trummerschlunk/master_me/releases)\n\nSupported OS: Linux, macOS, Windows.\n\nPlugin Formats: CLAP, VST, VST3, AU, LV2.\n\nStandalone: Jack.\n\nAAX is not supported (yet). master_me can be used in PROTOOLS via a VST-AAX wrapper (like Blue Cat's Patchwork).\n\n# master_me\n\nAutomatic audio mastering plugin for live-streaming and internet radio stations.\n\n# Introduction\n\nWith the first Covid-19 related lock-downs in 2020, many real-life concerts, conferences and festivals were forced into the digital domain - and sounded pretty crappy.\nHaving 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.\nAfter a few weeks of learning and development, master_me was first used at the 'Quarantine Sessions' - a weekly distributed electro-acoustic improvised concert, hosted at Stanford's CCRMA Institute.\nmaster_me was developed further to be an easy-to-use tool for all live streaming applications.\nIn 2022 it was funded by the Prototype Fund, an open source software funding initiative by the german ministry of education and research.\nA stable release is available since September 2022.\n\n# Who is master_me for?\n\nmaster_me is for all live streamers and internet radio stations.\n\n# What is mastering\n\nThe term 'mastering' usually refers to the last step of sound manipulation in the audio production process.\nHistorically the vinyl master was used to duplicate records.\nNowadays a digital master is the file which is being duplicated and distributed to streaming or download platforms.\n\n# What is master_me\n\nmaster_me is a multi platform, free and open source audio plug-in which optimizes sound in live streaming situations.\nIntroducing no latency, it takes care of master levels and ‘polishes’ the sound with a chain of effects, closely modeled after the audio chain of Klaus Scheuermann’s mastering studio in Berlin, Germany.\n\nAlthough tempting, it is NOT intended to automatically master your recorded music.\nYour art deserves closer, offline attention.\n\nNevertheless, certain modules of master_me can be a valuable tool as part of your music mastering chain.\n\n# Open Source and licensing\n\nmaster_me is licensed under GPL3, see the [LICENSE](LICENSE) file for more details.\n\n# System requirements and compatibility\n\nmaster_me is available in LV2, VST2, VST3 and CLAP formats for Linux, macOS and Windows, plus JACK Standalone for some systems.\n\nDue to faust and its open architecture, it can possibly be compiled to a vast variety of target platforms not mentioned above.\n\n# Contributors\n\nConcept and idea: Klaus Scheuermann  \nDSP: Klaus Scheuermann (trummerschlunk), Bart Brouns (magnetophon), Robin Gareus (x42), Jakob Dübel (jkbd)  \nGUI, Plugin: Filipe Coelho (falkTX)  \nLogo, Artwork: Peter Schlossnikel\n\nMore contributions from: Julius Smith, Dario Sanfilippo, Stéphane Letz, Romain Michon, Yann Orlarey, the Faust community.\n\nmaster_me's DSP is written in Faust.  \nGUI and Plugin based on DPF (DISTRHO Plugin Framework).\n\n# Thanks to\n\nThe Faust community and everyone who supported the project.\n\n# Sponsor\n\nmaster_me is sponsored by the Prototype Fund, an open source software funding initiative by the German Federal Ministry of Education and Research.\n\n# Quickstart\n\nAfter Installation, load the plugin on the master channel of your streaming software or DAW.\n\nChoose a preset.\n\nAdjust a target-loudness (optional).\n\n# Interface\n\n## Handling\n\n- Click and drag any parameter vertically or horizontally (except the target slider which only has vertical movement)\n- Shift + click to reset to default\n- Ctrl + drag to go slower\n- Double-click a slider for manual text input\n\n## Easy Mode\n\nThe 'Easy' mode is a very reduced GUI to make master_me an easy-to-use tool for all content creators.\n\nOnly two choices can be made: choose a preset and set the desired target loudness\n\n![screenshot](./img/screenshot-easy.png \"master_me screenshot\")\n\n# Expert Mode\n\n![screenshot](./img/screenshot-expert.png \"master_me screenshot\")\n\n### Concept\n\nThe main concept of master_me is the combination of a leveler and a chain of dynamics processors.\n\nThe leveler can be seen as a big volume knob which you would grab, when the sound is too low or too high for your taste.\n\nThe following chain is designed to result in a natural, balanced and consistent sound if it is hit at the right level (-\u003eleveler).\nIt will take care of peaks in the audio, like short loud noises and balance the frequency spectrum.\n\nThere are some additional modules before the leveler for your convenience.\n\n### Signal Flow\n\n - Pre-processing\n - Gate\n - EQ\n - Leveler\n - Knee Compressor\n - Multiband Mid-Side Compressor\n - Limiter\n - Brickwall\n\n[![DSP signal flow][image]][hyperlink]\n\n[hyperlink]: https://raw.githubusercontent.com/trummerschlunk/master_me/master/img/soundsgood-svg/process.svg\n[image]:\nhttps://raw.githubusercontent.com/trummerschlunk/master_me/master/img/soundsgood-svg/bp2-0x60015018a640.svg\n(Click on the image to open, click on the blocks to enter and on the whitespace to exit the blocks)\n\n### Modules\n\n#### Module: pre-processing\n\nThe ‘pre-processing’ module contains:\n\n - a gain-slider to apply gain to the incoming signal before it hits master_me.\n - a ‘mono’ switch\n - phase switches for both left and right channels\n - ‘stereo-correct’ switch (custom designed process, see 'stereo-correct')\n\n#### Module: gate\n\nA simple noise gate with the following parameters:\n\n - threshold\n - attack\n - release\n\n#### Module: EQ\n\nThe EQ offers some simple tools for frequency spectrum manipulation. The parameters are:\n\n - highpass frequency: the cutoff frequency of a soft highpass filter\n - tilt-gain: gain of a 'tilt' equalizer, which will bend the frequency spectrum either to the higher frequencies or the lower frequencies.\n - side-eq gain: gain parameter of the 'side-eq' which boosts a certain frequency range in the side signal in order to make the sound 'wider'.\n - side-eq frequency: center frequency of the side-eq\n - side-eq bandwidth: width of the side-eq\n\n#### Module: leveler\n\nThe leveler is the most critical part of master_me. It will listen to the incoming signal and adjust it's volume to meet the target loudness.\nIn order to make this as smooth and natural as possible, a complex algorithm was designed. The following parameters can be set:\n\n - target loudness: in lufs, a slider also available in 'easy' mode, next to the input meters on the left).\n   Typical target loudness values are -18lufs for video streaming, -14lufs for podcasting, -23lufs for EBU broadcast standard.\n - brake threshold: this parameter is used by the leveler to detect silence.\n   When silence is detected, the leveler 'freezes' and waits for incoming audio before it continues to adjust the loudness.\n - max +: determines the maximum amount of positive gain the leveler can apply to the incoming signal\n - max -: determines the maximum amount of negative gain the leveler can apply to the incoming signal\n - the brake-meter shows silence detection.\n\n#### Module: knee compressor\n\nThe knee compressor is a slow and soft mid-side compression module. It functions as a subtile, swinging compressor.\nTypical equivalents in the analog domain would be a Manley Stereo VARIABLE MU® compressor or a Vertigo VSC-2.\nThe following parameters can be set:\n\n - strength: correlating to the ratio of compression. 0% equals a ratio of 1:1, 100% equals a ratio of 1:infinity\n - tar-thresh: offsets the compressors threshold, dependent on the target loudness.\n - attack: compressor's attack time in milliseconds\n - release: compressor's release time in milliseconds\n - knee: compressor's knee in dB\n - link: amount of gain reduction linking between mid and side channels\n - ff-fb: feedforward-feedback determines, where the compressor receives it's side-chain signal from.\n   feedforward is the input of the compressor, feedback is the output of the 'brickwall' module.\n - make-up: simple gain makeup after compression\n - dry-wet: fades between the input signal and the compressed signal\n - the meters show the amount of compression on each channels\n\n#### Module: multiband mid/side compressor\n\nBeing perhaps the most complicated module of master_me, this module works like this:\n\nThe audio is first converted from stereo to mid-side and then split into 8 frequency bands.\nThe parameters apply to the lowest band (low) and the highest band (high).\nFor the 6 bands in between, the parameters are interpolated between 'low' and 'high'.\n\nThe parameters for the lowest and highest band are:\n - strength: correlating to the ratio of compression. 0% equals a ratio of 1:1, 100% equals a ratio of 1:infinity\n - tar-thresh: offsets the band's threshold, dependent on the target loudness.\n - attack: band's attack time in milliseconds\n - release: band's release time in milliseconds\n - knee: band's knee in dB\n - link: amount of gain reduction linking between mid and side channels\n - crossover: the lowest and highest crossover frequencies can be set here. All crossovers in between will be interpolated.\n - the upper row of meters shows the gain reduction for all eight mid channels\n - the lower row of meters shows the gain reduction for all eight side channels\n\n#### Module: limiter\n\nThe 'limiter' it is rather a sound-shaping limiter than a clip-protection limiter.\nIt's equivalents in the analog domain would typically be a Chandler TG-1 or a UREI 1178.\nAlthough the limiter can apply high compression ratios, it will not prevent from digital overshoots higher than threshold (which the brickwall module will take care of).\nThe parameters are:\n\n - strength: correlating to the ratio of compression. 0% equals a ratio of 1:1, 100% equals a ratio of 1:infinity\n - tar-thresh: offsets the limiter's threshold, dependent on the target loudness.\n - attack: limiter's attack time in milliseconds\n - release: limiter's release time in milliseconds\n - knee: limiter's knee in dB\n - ff-fb: feedforward-feedback determines, where the limiter receives it's side-chain signal from.\n   feedforward is the input of the limiter, feedback is the output of the limiter.\n - make-up: simple gain makeup after limiting.\n - gain reduction meter: shows gain reduction applied to the signal.\n\n#### Module: brickwall\n\nThe 'brickwall' module is the last process in master_me's chain of modules.\nIt is a fast brickwall limiter which will not allow any peaks above the desired 'ceiling'.\nThe 'brickwall' process is a protection limiter and will not sound nice, if it needs to work a lot.\n\n#### custom module: stereo correct\nthis process was custom developed for the Chaos Computer Club's VOC (video operation center). It constantly checks the phase of an incoming signal.\n\nIf phase == 1, all audio is made mono.\nIf phase == -1, one channel is phase switched and the audio is monofied.\n\nThis helps detect and fix broken audio signals and unwanted panning.\n\n# Building\n\nBuild requirements: gcc or clang as compiler, python and gnu make\n\nOn Linux the following extra development libraries are needed:\n - OpenGL\n - X11\n - Xext\n - Xrandr\n\nRuntime requirements: OpenGL2 capable graphics card (or software rendering via MESA on Linux)\n\nOnce requirements are in place, simply run:\n\n```\ngit submodule update --init --recursive\nmake\n```\n\n## Build \"legacy\" generic faust UI for JACK\n\n```\nfaust2jack soundsgood.dsp\n# then run as ./soundsgood\n```\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftrummerschlunk%2Fmaster_me","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftrummerschlunk%2Fmaster_me","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftrummerschlunk%2Fmaster_me/lists"}