Gain and Ramp
A gain stage built with the juce::dsp module.
- dsp::Gain<float>
- ProcessSpec and prepare
- Hosting a DSP processor in a demo
Source: examples/DSP/GainDemo.h on GitHub.
cpp
/*******************************************************************************
The block below describes the properties of this PIP. A PIP is a short snippet
of code that can be read by the Projucer and used to generate a JUCE project.
BEGIN_JUCE_PIP_METADATA
name: GainDemo
version: 1.0.0
vendor: JUCE
website: http://juce.com
description: Gain demo using the DSP module.
dependencies: juce_audio_basics, juce_audio_devices, juce_audio_formats,
juce_audio_processors, juce_audio_utils, juce_core,
juce_data_structures, juce_dsp, juce_events, juce_graphics,
juce_gui_basics, juce_gui_extra, juce_audio_processors_headless
exporters: xcode_mac, vs2022, vs2026, linux_make
moduleFlags: JUCE_STRICT_REFCOUNTEDPOINTER=1
type: Component
mainClass: GainDemo
useLocalCopy: 1
END_JUCE_PIP_METADATA
*******************************************************************************/
#pragma once
#include "../Assets/DemoUtilities.h"
#include "../Assets/DSPDemos_Common.h"
using namespace dsp;
//==============================================================================
struct GainDemoDSP
{
void prepare (const ProcessSpec&)
{
gain.setGainDecibels (-6.0f);
}
void process (const ProcessContextReplacing<float>& context)
{
gain.process (context);
}
void reset()
{
gain.reset();
}
void updateParameters()
{
gain.setGainDecibels (static_cast<float> (gainParam.getCurrentValue()));
}
//==============================================================================
Gain<float> gain;
SliderParameter gainParam { { -100.0, 20.0 }, 3.0, -6.0, "Gain", "dB" };
std::vector<DSPDemoParameterBase*> parameters { &gainParam };
};
struct GainDemo final : public Component
{
GainDemo()
{
addAndMakeVisible (fileReaderComponent);
setSize (750, 500);
}
void resized() override
{
fileReaderComponent.setBounds (getLocalBounds());
}
AudioFileReaderComponent<GainDemoDSP> fileReaderComponent;
};