-
Notifications
You must be signed in to change notification settings - Fork 0
/
Orca1.h
82 lines (71 loc) · 1.61 KB
/
Orca1.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
#pragma once
#include "config.h"
#include "IPlug_include_in_plug_hdr.h"
#include "IControls.h"
#include "OrcaDSP.h"
const int kNumPresets = 1;
enum EParams
{
kParamTune = 0,
kParamVolume,
kParamPortamento,
kParamPortamentoType, // auto, off, on
kParamLfoRate,
kParamLfoWaveform, // tri, square, step random, warble
kParamLfoLinked,
kParamPitchMod,
kParamRange, // 16,8,4,2
kParamPitchBend,
kParamPoly, // mono/poly
kParamPulseWidthManual,
kParamPulseSource, // lfo, manual, env
kParamPulseMix,
kParamSawMix,
kParamSubMix,
kParamSubType, // 1 oct down square, 2 oct down square, 2 oct down pulse
kParamNoiseMix,
kParamFilterFrequency,
kParamFilterResonance,
kParamFilterEnv,
kParamFilterLfo,
kParamFilterKey,
kParamFilterBend,
kParamAmpType, // env/gate
kParamAttack,
kParamDecay,
kParamSustain,
kParamRelease,
kNumParams
};
#if IPLUG_DSP
// will use EParams in Orca1_DSP.h
#endif
enum EControlTags
{
kCtrlTagMeter = 0,
kCtrlTagLFOVis,
kCtrlTagScope,
kCtrlTagRTText,
kCtrlTagKeyboard,
kCtrlTagBender,
kNumCtrlTags
};
using namespace iplug;
using namespace igraphics;
class Orca1 final : public Plugin
{
public:
Orca1(const InstanceInfo& info);
#if IPLUG_DSP // http://bit.ly/2S64BDd
public:
void ProcessBlock(sample** inputs, sample** outputs, int nFrames) override;
void ProcessMidiMsg(const IMidiMsg& msg) override;
void OnReset() override;
void OnParamChange(int paramIdx) override;
void OnIdle() override;
bool OnMessage(int msgTag, int ctrlTag, int dataSize, const void* pData) override;
private:
OrcaDSP* dsp;
OrcaConfig config;
#endif
};