8 namespace swift::sound::sample_provider
14 this->setObjectName(
"CSimpleCompressorEffect");
15 m_timer =
new QTimer(
this);
16 m_timer->setObjectName(this->objectName() +
":m_timer");
29 int samplesRead = m_sourceStream->
readSamples(samples, count);
33 for (
int sample = 0; sample < samplesRead; sample += m_channels)
35 double in1 = samples.at(sample);
36 double in2 = (m_channels == 1) ? 0 : samples.at(sample + 1);
37 m_simpleCompressor.
process(in1, in2);
38 samples[sample] =
static_cast<float>(in1);
39 if (m_channels > 1) { samples[sample + 1] =
static_cast<float>(in2); }
51 if (channels < 1) { channels = 1; }
52 else if (channels > 2) { channels = 2; }
53 m_channels = channels;
virtual void setAttack(double ms)
Attack time constant.
virtual void setSampleRate(double sampleRate)
Sample rate dependencies.
virtual void setRelease(double ms)
Release time constant.
virtual void setThresh(double dB)
set parameters
void setMakeUpGain(double gain)
set parameters
virtual void setRatio(double dB)
set parameters
void process(double &in1, double &in2)
compressor runtime process
void setChannels(int channels)
Set channels 1 or 2.
void setEnabled(bool enabled)
Enable.
CSimpleCompressorEffect(ISampleProvider *source, QObject *parent=nullptr)
Ctor.
void setMakeUpGain(double gain)
Set gain.
virtual int readSamples(QVector< float > &samples, qint64 count)
Read samples.
Sample provider interface.
virtual int readSamples(QVector< float > &samples, qint64 count)=0
Read samples.