LMMS
Loading...
Searching...
No Matches
lmms::CompressorEffect Class Reference

#include <Compressor.h>

Inheritance diagram for lmms::CompressorEffect:
lmms::Effect lmms::Plugin lmms::Model lmms::JournallingObject lmms::SerializingObject

Public Member Functions

 CompressorEffect (Model *parent, const Descriptor::SubPluginFeatures::Key *key)
 ~CompressorEffect () override=default
ProcessStatus processImpl (SampleFrame *buf, const f_cnt_t frames) override
void processBypassedImpl () override
EffectControlscontrols () override
Public Member Functions inherited from lmms::Effect
 Effect (const Plugin::Descriptor *_desc, Model *_parent, const Descriptor::SubPluginFeatures::Key *_key)
void saveSettings (QDomDocument &_doc, QDomElement &_parent) override
void loadSettings (const QDomElement &_this) override
QString nodeName () const override
bool processAudioBuffer (AudioBuffer &inOut)
 Returns true if audio was processed and should continue being processed.
bool isOkay () const
void setOkay (bool _state)
bool isAwake () const
 "Awake" means the effect has not been put to sleep by auto-quit
bool isEnabled () const
f_cnt_t timeout () const
float wetLevel () const
float dryLevel () const
bool dontRun () const
void setDontRun (bool _state)
bool isProcessingAudio () const
TempoSyncKnobModelautoQuitModel ()
bool autoQuitEnabled () const
EffectChaineffectChain () const
Public Member Functions inherited from lmms::Plugin
 Plugin (const Descriptor *descriptor, Model *parent, const Descriptor::SubPluginFeatures::Key *key=nullptr)
 ~Plugin () override=default
QString displayName () const override
 Return display-name out of sub plugin or descriptor.
const PixmapLoaderlogo () const
 Return logo out of sub plugin or descriptor.
Type type () const
 Return plugin type.
const Descriptordescriptor () const
 Return plugin Descriptor.
const Descriptor::SubPluginFeatures::Keykey () const
virtual void loadFile (const QString &file)
virtual AutomatableModelchildModel (const QString &modelName)
gui::PluginViewcreateView (QWidget *parent)
 Create a view for the model.
Public Member Functions inherited from lmms::Model
 Model (Model *parent, QString displayName=QString(), bool defaultConstructed=false)
 ~Model () override=default
bool isDefaultConstructed () const
ModelparentModel () const
virtual void setDisplayName (const QString &displayName)
virtual QString fullDisplayName () const
Public Member Functions inherited from lmms::JournallingObject
 JournallingObject ()
 ~JournallingObject () override
jo_id_t id () const
void saveJournallingState (const bool newState)
void restoreJournallingState ()
void addJournalCheckPoint ()
QDomElement saveState (QDomDocument &_doc, QDomElement &_parent) override
void restoreState (const QDomElement &_this) override
bool isJournalling () const
void setJournalling (const bool _sr)
bool testAndSetJournalling (const bool newState)
bool isJournallingStateStackEmpty () const
Public Member Functions inherited from lmms::SerializingObject
 SerializingObject ()
virtual ~SerializingObject ()
void setHook (SerializingObjectHook *_hook)
SerializingObjectHookhook ()

Private Types

enum class  StereoLinkMode {
  Unlinked , Maximum , Average , Minimum ,
  Blend
}

Private Slots

void calcAutoMakeup ()
void calcAttack ()
void calcRelease ()
void calcAutoAttack ()
void calcAutoRelease ()
void calcHold ()
void calcOutGain ()
void calcRatio ()
void calcRange ()
void resizeRMS ()
void calcLookaheadLength ()
void calcThreshold ()
void calcKnee ()
void calcInGain ()
void calcTiltCoeffs ()
void calcMix ()
void changeSampleRate ()
void redrawKnee ()

Private Member Functions

float msToCoeff (float ms)
void calcTiltFilter (sample_t inputSample, sample_t &outputSample, int filtNum)

Private Attributes

CompressorControls m_compressorControls
std::array< std::vector< float >, 2 > m_inLookBuf
std::array< std::vector< float >, 2 > m_scLookBuf
int m_lookWrite
int m_lookBufLength
float m_attCoeff
float m_relCoeff
float m_autoAttVal
float m_autoRelVal
int m_holdLength = 0
int m_holdTimer [2] = {0, 0}
int m_lookaheadLength
float m_thresholdAmpVal
float m_autoMakeupVal
float m_outGainVal
float m_inGainVal
float m_rangeVal
float m_tiltVal
float m_mixVal
float m_coeffPrecalc
SampleFrame m_maxLookaheadVal
int m_maxLookaheadTimer [2] = {1, 1}
float m_rmsTimeConst
float m_rmsVal [2] = {0, 0}
float m_crestPeakVal [2] = {0, 0}
float m_crestRmsVal [2] = {0, 0}
float m_crestFactorVal [2] = {0, 0}
float m_crestTimeConst
float m_tiltOut [2] = {0}
bool m_cleanedBuffers = false
float m_sampleRate
float m_lgain
float m_hgain
float m_a0
float m_b1
float m_prevOut [2] = {0}
float m_yL [2]
float m_gainResult [2]
float m_displayPeak [2]
float m_displayGain [2]
float m_kneeVal
float m_thresholdVal
float m_ratioVal
bool m_redrawKnee = true
bool m_redrawThreshold = true

Friends

class CompressorControls
class gui::CompressorControlDialog

Additional Inherited Members

Public Types inherited from lmms::Plugin
enum class  Type {
  Instrument , Effect , ImportFilter , ExportFilter ,
  Tool , Library , Other , Undefined = 255
}
using DescriptorList = QList<Descriptor*>
Signals inherited from lmms::Model
void dataChanged ()
void dataUnchanged ()
void propertiesChanged ()
Static Public Member Functions inherited from lmms::Effect
static Effectinstantiate (const QString &_plugin_name, Model *_parent, Descriptor::SubPluginFeatures::Key *_key)
Static Public Member Functions inherited from lmms::Plugin
static PlugininstantiateWithKey (const QString &pluginName, Model *parent, const Descriptor::SubPluginFeatures::Key *key, bool keyFromDnd=false)
static Plugininstantiate (const QString &pluginName, Model *parent, void *data)
Protected Types inherited from lmms::Effect
enum class  ProcessStatus { Continue , ContinueIfNotQuiet , Sleep }
Protected Member Functions inherited from lmms::Effect
gui::PluginViewinstantiateView (QWidget *) override
 Create a view for the model.
void goToSleep ()
void wakeUp ()
virtual void onEnabledChanged ()
Protected Member Functions inherited from lmms::Plugin
void collectErrorForUI (QString errMsg)
Protected Member Functions inherited from lmms::JournallingObject
void changeID (jo_id_t _id)

Member Enumeration Documentation

◆ StereoLinkMode

enum class lmms::CompressorEffect::StereoLinkMode
strongprivate
Enumerator
Unlinked 
Maximum 
Average 
Minimum 
Blend 

Constructor & Destructor Documentation

◆ CompressorEffect()

lmms::CompressorEffect::CompressorEffect ( Model * parent,
const Descriptor::SubPluginFeatures::Key * key )

◆ ~CompressorEffect()

lmms::CompressorEffect::~CompressorEffect ( )
overridedefault

Member Function Documentation

◆ calcAttack

void lmms::CompressorEffect::calcAttack ( )
privateslot

◆ calcAutoAttack

void lmms::CompressorEffect::calcAutoAttack ( )
privateslot

◆ calcAutoMakeup

void lmms::CompressorEffect::calcAutoMakeup ( )
privateslot

◆ calcAutoRelease

void lmms::CompressorEffect::calcAutoRelease ( )
privateslot

◆ calcHold

void lmms::CompressorEffect::calcHold ( )
privateslot

◆ calcInGain

void lmms::CompressorEffect::calcInGain ( )
privateslot

◆ calcKnee

void lmms::CompressorEffect::calcKnee ( )
privateslot

◆ calcLookaheadLength

void lmms::CompressorEffect::calcLookaheadLength ( )
privateslot

◆ calcMix

void lmms::CompressorEffect::calcMix ( )
privateslot

◆ calcOutGain

void lmms::CompressorEffect::calcOutGain ( )
privateslot

◆ calcRange

void lmms::CompressorEffect::calcRange ( )
privateslot

◆ calcRatio

void lmms::CompressorEffect::calcRatio ( )
privateslot

◆ calcRelease

void lmms::CompressorEffect::calcRelease ( )
privateslot

◆ calcThreshold

void lmms::CompressorEffect::calcThreshold ( )
privateslot

◆ calcTiltCoeffs

void lmms::CompressorEffect::calcTiltCoeffs ( )
privateslot

◆ calcTiltFilter()

void lmms::CompressorEffect::calcTiltFilter ( sample_t inputSample,
sample_t & outputSample,
int filtNum )
inlineprivate

◆ changeSampleRate

void lmms::CompressorEffect::changeSampleRate ( )
privateslot

◆ controls()

EffectControls * lmms::CompressorEffect::controls ( )
inlineoverridevirtual

Implements lmms::Effect.

◆ msToCoeff()

float lmms::CompressorEffect::msToCoeff ( float ms)
private

◆ processBypassedImpl()

void lmms::CompressorEffect::processBypassedImpl ( )
overridevirtual

Optional method that runs instead of processImpl when an effect is awake but not running.

Reimplemented from lmms::Effect.

◆ processImpl()

Effect::ProcessStatus lmms::CompressorEffect::processImpl ( SampleFrame * buf,
const f_cnt_t frames )
overridevirtual

The main audio processing method that runs when plugin is awake and running

Implements lmms::Effect.

◆ redrawKnee

void lmms::CompressorEffect::redrawKnee ( )
privateslot

◆ resizeRMS

void lmms::CompressorEffect::resizeRMS ( )
privateslot

◆ CompressorControls

friend class CompressorControls
friend

◆ gui::CompressorControlDialog

friend class gui::CompressorControlDialog
friend

Member Data Documentation

◆ m_a0

float lmms::CompressorEffect::m_a0
private

◆ m_attCoeff

float lmms::CompressorEffect::m_attCoeff
private

◆ m_autoAttVal

float lmms::CompressorEffect::m_autoAttVal
private

◆ m_autoMakeupVal

float lmms::CompressorEffect::m_autoMakeupVal
private

◆ m_autoRelVal

float lmms::CompressorEffect::m_autoRelVal
private

◆ m_b1

float lmms::CompressorEffect::m_b1
private

◆ m_cleanedBuffers

bool lmms::CompressorEffect::m_cleanedBuffers = false
private

◆ m_coeffPrecalc

float lmms::CompressorEffect::m_coeffPrecalc
private

◆ m_compressorControls

CompressorControls lmms::CompressorEffect::m_compressorControls
private

◆ m_crestFactorVal

float lmms::CompressorEffect::m_crestFactorVal[2] = {0, 0}
private

◆ m_crestPeakVal

float lmms::CompressorEffect::m_crestPeakVal[2] = {0, 0}
private

◆ m_crestRmsVal

float lmms::CompressorEffect::m_crestRmsVal[2] = {0, 0}
private

◆ m_crestTimeConst

float lmms::CompressorEffect::m_crestTimeConst
private

◆ m_displayGain

float lmms::CompressorEffect::m_displayGain[2]
private

◆ m_displayPeak

float lmms::CompressorEffect::m_displayPeak[2]
private

◆ m_gainResult

float lmms::CompressorEffect::m_gainResult[2]
private

◆ m_hgain

float lmms::CompressorEffect::m_hgain
private

◆ m_holdLength

int lmms::CompressorEffect::m_holdLength = 0
private

◆ m_holdTimer

int lmms::CompressorEffect::m_holdTimer[2] = {0, 0}
private

◆ m_inGainVal

float lmms::CompressorEffect::m_inGainVal
private

◆ m_inLookBuf

std::array<std::vector<float>, 2> lmms::CompressorEffect::m_inLookBuf
private

◆ m_kneeVal

float lmms::CompressorEffect::m_kneeVal
private

◆ m_lgain

float lmms::CompressorEffect::m_lgain
private

◆ m_lookaheadLength

int lmms::CompressorEffect::m_lookaheadLength
private

◆ m_lookBufLength

int lmms::CompressorEffect::m_lookBufLength
private

◆ m_lookWrite

int lmms::CompressorEffect::m_lookWrite
private

◆ m_maxLookaheadTimer

int lmms::CompressorEffect::m_maxLookaheadTimer[2] = {1, 1}
private

◆ m_maxLookaheadVal

SampleFrame lmms::CompressorEffect::m_maxLookaheadVal
private

◆ m_mixVal

float lmms::CompressorEffect::m_mixVal
private

◆ m_outGainVal

float lmms::CompressorEffect::m_outGainVal
private

◆ m_prevOut

float lmms::CompressorEffect::m_prevOut[2] = {0}
private

◆ m_rangeVal

float lmms::CompressorEffect::m_rangeVal
private

◆ m_ratioVal

float lmms::CompressorEffect::m_ratioVal
private

◆ m_redrawKnee

bool lmms::CompressorEffect::m_redrawKnee = true
private

◆ m_redrawThreshold

bool lmms::CompressorEffect::m_redrawThreshold = true
private

◆ m_relCoeff

float lmms::CompressorEffect::m_relCoeff
private

◆ m_rmsTimeConst

float lmms::CompressorEffect::m_rmsTimeConst
private

◆ m_rmsVal

float lmms::CompressorEffect::m_rmsVal[2] = {0, 0}
private

◆ m_sampleRate

float lmms::CompressorEffect::m_sampleRate
private

◆ m_scLookBuf

std::array<std::vector<float>, 2> lmms::CompressorEffect::m_scLookBuf
private

◆ m_thresholdAmpVal

float lmms::CompressorEffect::m_thresholdAmpVal
private

◆ m_thresholdVal

float lmms::CompressorEffect::m_thresholdVal
private

◆ m_tiltOut

float lmms::CompressorEffect::m_tiltOut[2] = {0}
private

◆ m_tiltVal

float lmms::CompressorEffect::m_tiltVal
private

◆ m_yL

float lmms::CompressorEffect::m_yL[2]
private

The documentation for this class was generated from the following files: