Pink noise

This commit is contained in:
Roland Rabien 2023-08-31 19:19:28 -07:00
commit 95aac485c7
6 changed files with 20 additions and 5 deletions

View file

@ -4,13 +4,14 @@
{ "id": "osc[1..2]", "x": "0,prevR()+1", "y": 0, "w": "parW()/2", "h": 163 },
{ "id": "noise", "x": "0", "y": "prevB()+1", "w": 120, "h": 163, "children":
[
{ "id": "Level", "x": 0, "y": "23 + 35", "w": 56, "h": 70 },
{ "id": "Type", "x": "56/2", "y": 23, "w": 56, "h": 70 },
{ "id": "Level", "x": 0, "y": "prevB()", "w": 56, "h": 70 },
{ "id": "Pan", "x": "prevR()", "y": "prevY()", "w": 56, "h": 70 }
]
},
{ "id": "sub", "x": "prevR()+1", "y": "prevY()", "w": 112, "h": 163, "children":
[
{ "id": "Wave", "x": 0, "y": 23, "w": 56, "h": 70 },
{ "id": "Wave", "x": "56", "y": 23, "w": 56, "h": 70 },
{ "id": "Tune", "x": "prevR()", "y": 23, "w": 56, "h": 70 },
{ "id": "Level", "x": 0, "y": "prevB()", "w": 56, "h": 70 },
{ "id": "Pan", "x": "prevR()", "y": "prevY()", "w": 56, "h": 70 }

View file

@ -182,6 +182,7 @@ public:
addEnable (noise.enable);
addControl (new gin::Select (noise.type), 0, 0);
addControl (new gin::Knob (noise.level, true), 0, 0);
addControl (new gin::Knob (noise.pan, true), 0, 1);
}

View file

@ -16,6 +16,18 @@ static juce::String subTextFunction (const gin::Parameter&, float v)
}
}
static juce::String noiseTextFunction (const gin::Parameter&, float v)
{
switch (int (v))
{
case 0: return "White";
case 1: return "Pink";
default:
jassertfalse;
return {};
}
}
static juce::String lfoTextFunction (const gin::Parameter&, float v)
{
switch ((gin::LFO::WaveShape)int (v))
@ -138,6 +150,7 @@ void WavetableAudioProcessor::NoiseParams::setup (WavetableAudioProcessor& p)
juce::String nm = "Noise ";
enable = p.addIntParam (id + "enable", nm + "Enable", "Enable", "", { 0.0, 1.0, 1.0, 1.0 }, 0.0f, 0.0f);
type = p.addIntParam (id + "type", nm + "Type", "Type", "", { 0.0, 1.0, 1.0, 1.0 }, 0.0, 0.0f, noiseTextFunction);
level = p.addExtParam (id + "level", nm + "Level", "Level", "db", { -100.0, 0.0, 1.0, 4.0 }, 0.0, 0.0f);
pan = p.addExtParam (id + "pan", nm + "Pan", "Pan", "", { -1.0, 1.0, 0.0, 1.0 }, 0.0, 0.0f);

View file

@ -70,7 +70,7 @@ public:
{
NoiseParams() = default;
gin::Parameter::Ptr enable, level, pan;
gin::Parameter::Ptr enable, type, level, pan;
void setup (WavetableAudioProcessor& p);

View file

@ -243,7 +243,7 @@ void WavetableVoice::updateParams (int blockSize)
if (proc.noiseParams.enable->isOn())
{
noiseParams.wave = gin::Wave::noise;
noiseParams.wave = gin::Wave::whiteNoise;
noiseParams.leftGain = getValue (proc.noiseParams.level) * (1.0f - getValue (proc.noiseParams.pan));
noiseParams.rightGain = getValue (proc.noiseParams.level) * (1.0f + getValue (proc.noiseParams.pan));