Skip to content
/ Lifter Public

A JUCE audio plugin to showcase the behaviour of the lifter model in my module: punk_dsp

License

Notifications You must be signed in to change notification settings

gmoican/Lifter

Repository files navigation

Lifter

A JUCE audio plugin to showcase the behaviour of the lifter model in my module: punk_dsp

Lifter

DemoImage

Introduction

This is a VST3/AU compressor plugin made with JUCE. The sole purpose of this plugin is to showcase and test the performance of my Lifter class in punk_dsp.

Features

The Lifter class uses the following logic for applying dynamic processing:

  1. Identify sidechain - feed-back or feed-forward topology determine how this is done.
  2. Measure sidechain.
  3. Compute gain addition.
  4. Apply gain addition.

All classes have methods for updating the following parameters:

  • Ratio.
  • Threshold (in decibels).
  • Knee (in decibels).
  • Attack and release times (in miliseconds).
  • Make-up gain (in decibels).
  • Mix (in percentage).
  • Feed-back / feed-forward topology.

Furthermore, there is a getGainAddition method meant to be used in the GUI for displaying the current gain addition.

Usage examples

// --- PluginProcessor.h ---
#include "punk_dsp/punk_dsp.h"

class PluginProcessor : public juce::AudioProcessor
{
public:
    /* Your processor public stuff
     * ...
     */
private:
    /* Your processor private stuff
     * ...
     */
    punk_dsp::Lifter lifter;
};

// --- PluginProcessor.cpp ---
void PluginProcessor::prepareToPlay(double sampleRate, int samplesPerBlock)
{
    juce::dsp::ProcessSpec spec;
    spec.maximumBlockSize = samplesPerBlock;
    spec.numChannels = getTotalNumOutputChannels();
    spec.sampleRate = sampleRate;

    lifter.prepare( spec );

    // Your code...
}

void PluginProcessor::updateParameters()
{
    // Examples
    lifter.updateThres(-30.f);
    lifter.updateRatio(6.f);
    lifter.updateMix(90.f);

    // Your code...
}

void PunkOTTProcessor::processBlock (juce::AudioBuffer<float>& buffer)
{
    lifter.process(buffer);
}

Plugins that make use of this compressor

About

A JUCE audio plugin to showcase the behaviour of the lifter model in my module: punk_dsp

Resources

License

Stars

Watchers

Forks

Releases

No releases published