mirror of
https://codeberg.org/armin/wavetable.git
synced 2026-09-01 05:50:46 +02:00
Add wavetables. Switch to using json for component layout
This commit is contained in:
parent
28402bfa0e
commit
f1829adfcf
110 changed files with 326 additions and 165 deletions
60
plugin/Source/Editor.h
Normal file
60
plugin/Source/Editor.h
Normal file
|
|
@ -0,0 +1,60 @@
|
|||
#pragma once
|
||||
|
||||
#include <JuceHeader.h>
|
||||
#include "PluginProcessor.h"
|
||||
#include "Panels.h"
|
||||
|
||||
//==============================================================================
|
||||
class Editor : public juce::Component
|
||||
{
|
||||
public:
|
||||
Editor (WavetableAudioProcessor& proc_);
|
||||
|
||||
void setupCallbacks();
|
||||
void resized() override;
|
||||
|
||||
private:
|
||||
|
||||
WavetableAudioProcessor& proc;
|
||||
|
||||
OscillatorBox oscillators[Cfg::numOSCs] { { "oscillator 1", proc, 0 }, { "oscillator 2", proc, 1 } };
|
||||
|
||||
FilterBox filter { "filter 1", proc };
|
||||
|
||||
FilterADSRArea fltADSR { proc };
|
||||
|
||||
LFOBox lfos[Cfg::numLFOs] { { "LFO 1", proc, 0 }, { "LFO 2", proc, 1 }, { "LFO 3", proc, 2 } };
|
||||
LFOArea lfoGraphs[Cfg::numLFOs] { { proc, 0 }, { proc, 1 }, { proc, 2 } };
|
||||
|
||||
gin::HeaderItem modItems[8] { { "LFO 1", proc.lfoParams[0].enable, proc.modMatrix, proc.modSrcMonoLFO[0], proc.modSrcLFO[0] },
|
||||
{ "LFO 2", proc.lfoParams[1].enable, proc.modMatrix, proc.modSrcMonoLFO[1], proc.modSrcLFO[1] },
|
||||
{ "LFO 3", proc.lfoParams[2].enable, proc.modMatrix, proc.modSrcMonoLFO[2], proc.modSrcLFO[2] },
|
||||
{ "ENV 1", proc.envParams[0].enable, proc.modMatrix, {}, proc.modSrcEnv[0] },
|
||||
{ "ENV 2", proc.envParams[1].enable, proc.modMatrix, {}, proc.modSrcEnv[1] },
|
||||
{ "ENV 3", proc.envParams[2].enable, proc.modMatrix, {}, proc.modSrcEnv[2] },
|
||||
{ "STEP", proc.stepLfoParams.enable, proc.modMatrix, proc.modSrcMonoStep, proc.modSrcStep },
|
||||
{ "MIDI", nullptr } };
|
||||
gin::HeaderRow modHeader;
|
||||
|
||||
gin::HeaderItem fxItems[5] { { "GATE", proc.gateParams.enable },
|
||||
{ "CHORUS", proc.chorusParams.enable },
|
||||
{ "DISTORT", proc.distortionParams.enable },
|
||||
{ "DELAY", proc.delayParams.enable },
|
||||
{ "REVERB", proc.reverbParams.enable } };
|
||||
|
||||
gin::HeaderRow fxHeader;
|
||||
|
||||
|
||||
GateBox gate { proc };
|
||||
GateArea pattern { proc };
|
||||
ChorusBox chorus { proc };
|
||||
DistortBox distort { proc };
|
||||
DelayBox delay { proc };
|
||||
ReverbBox reverb { proc };
|
||||
ScopeArea scope { proc };
|
||||
|
||||
gin::BoxArea lfoBox;
|
||||
gin::BoxArea effects;
|
||||
|
||||
gin::Layout layout { *this };
|
||||
};
|
||||
Loading…
Add table
Add a link
Reference in a new issue