Simplify the notation for opcode spec

This commit is contained in:
Jean Pierre Cimalando 2021-03-12 15:55:11 +01:00
parent 399127e303
commit 7d1bf23b00
2 changed files with 194 additions and 182 deletions

View file

@ -4,172 +4,184 @@ namespace sfz {
namespace Default { namespace Default {
constexpr auto uint32_t_max = std::numeric_limits<uint32_t>::max(); constexpr auto uint32_t_max = std::numeric_limits<uint32_t>::max();
constexpr auto float_max = std::numeric_limits<float>::max();
extern const OpcodeSpec<float> delay { 0.0f, Range<float>(0.0f, 100.0f), 0 }; using FloatSpec = const OpcodeSpec<float>;
extern const OpcodeSpec<float> delayRandom { 0.0f, Range<float>(0.0f, 100.0f), 0 }; using Int8Spec = const OpcodeSpec<int8_t>;
extern const OpcodeSpec<float> delayMod { 0.0f, Range<float>(0.0f, 100.0f), 0 }; using Int16Spec = const OpcodeSpec<int16_t>;
extern const OpcodeSpec<int64_t> offset { 0, Range<int64_t>(0, uint32_t_max), 0 }; using Int32Spec = const OpcodeSpec<int32_t>;
extern const OpcodeSpec<int64_t> offsetMod { 0, Range<int64_t>(0, uint32_t_max), 0 }; using Int64Spec = const OpcodeSpec<int64_t>;
extern const OpcodeSpec<int64_t> offsetRandom { 0, Range<int64_t>(0, uint32_t_max), 0 }; using UInt8Spec = const OpcodeSpec<uint8_t>;
extern const OpcodeSpec<uint32_t> sampleEnd { uint32_t_max, Range<uint32_t>(0, uint32_t_max), kEnforceLowerBound }; using UInt16Spec = const OpcodeSpec<uint16_t>;
extern const OpcodeSpec<uint32_t> sampleCount { 0, Range<uint32_t>(0, uint32_t_max), 0 }; using UInt32Spec = const OpcodeSpec<uint32_t>;
extern const OpcodeSpec<uint32_t> loopStart { 0, Range<uint32_t>(0, uint32_t_max), 0 }; using BoolSpec = const OpcodeSpec<bool>;
extern const OpcodeSpec<uint32_t> loopEnd { uint32_t_max, Range<uint32_t>(0, uint32_t_max), 0 }; template <class Enum> using ESpec = const OpcodeSpec<Enum>;
extern const OpcodeSpec<uint32_t> loopCount { 0, Range<uint32_t>(0, uint32_t_max), 0 };
extern const OpcodeSpec<float> loopCrossfade { 1e-3, Range<float>(1e-3, 1.0f), 0 }; FloatSpec delay { 0.0f, {0.0f, 100.0f}, 0 };
extern const OpcodeSpec<OscillatorEnabled> oscillator { OscillatorEnabled::Auto, Range<OscillatorEnabled>(OscillatorEnabled::Auto, OscillatorEnabled::On), 0 }; FloatSpec delayRandom { 0.0f, {0.0f, 100.0f}, 0 };
extern const OpcodeSpec<float> oscillatorPhase { 0.0f, Range<float>(-1000.0f, 1000.0f), 0 }; FloatSpec delayMod { 0.0f, {0.0f, 100.0f}, 0 };
extern const OpcodeSpec<int> oscillatorMode { 0, Range<int>(0, 2), 0 }; Int64Spec offset { 0, {0, uint32_t_max}, 0 };
extern const OpcodeSpec<int> oscillatorMulti { 1, Range<int>(1, config::oscillatorsPerVoice), 0 }; Int64Spec offsetMod { 0, {0, uint32_t_max}, 0 };
extern const OpcodeSpec<float> oscillatorDetune { 0.0f, Range<float>(-12000.0f, 12000.0f), 0 }; Int64Spec offsetRandom { 0, {0, uint32_t_max}, 0 };
extern const OpcodeSpec<float> oscillatorDetuneMod { 0.0f, Range<float>(-12000.0f, 12000.0f), 0 }; UInt32Spec sampleEnd { uint32_t_max, {0, uint32_t_max}, kEnforceLowerBound };
extern const OpcodeSpec<float> oscillatorModDepth { 0.0f, Range<float>(0.0f, 10000.0f), kNormalizePercent }; UInt32Spec sampleCount { 0, {0, uint32_t_max}, 0 };
extern const OpcodeSpec<float> oscillatorModDepthMod { 0.0f, Range<float>(0.0f, 10000.0f), kNormalizePercent }; UInt32Spec loopStart { 0, {0, uint32_t_max}, 0 };
extern const OpcodeSpec<int> oscillatorQuality { 1, Range<int>(0, 3), 0 }; UInt32Spec loopEnd { uint32_t_max, {0, uint32_t_max}, 0 };
extern const OpcodeSpec<uint32_t> group { 0, Range<uint32_t>(0, uint32_t_max), 0 }; UInt32Spec loopCount { 0, {0, uint32_t_max}, 0 };
extern const OpcodeSpec<float> offTime { 6e-3f, Range<float>(0.0f, 100.0f), 0 }; FloatSpec loopCrossfade { 1e-3, {1e-3, 1.0f}, 0 };
extern const OpcodeSpec<uint32_t> polyphony { config::maxVoices, Range<uint32_t>(0, config::maxVoices), 0 }; ESpec<OscillatorEnabled> oscillator { OscillatorEnabled::Auto, {OscillatorEnabled::Auto, OscillatorEnabled::On}, 0 };
extern const OpcodeSpec<uint32_t> notePolyphony { config::maxVoices, Range<uint32_t>(0, config::maxVoices), 0 }; FloatSpec oscillatorPhase { 0.0f, {-1000.0f, 1000.0f}, 0 };
extern const OpcodeSpec<uint8_t> key { 60, Range<uint8_t>(0, 127), kCanBeNote }; Int32Spec oscillatorMode { 0, {0, 2}, 0 };
extern const OpcodeSpec<uint8_t> loKey { 0, Range<uint8_t>(0, 127), kCanBeNote }; Int32Spec oscillatorMulti { 1, {1, config::oscillatorsPerVoice}, 0 };
extern const OpcodeSpec<uint8_t> hiKey { 127, Range<uint8_t>(0, 127), kCanBeNote }; FloatSpec oscillatorDetune { 0.0f, {-12000.0f, 12000.0f}, 0 };
extern const OpcodeSpec<float> loCC { 0, Range<float>(0.0f, 127.0f), kNormalizeMidi }; FloatSpec oscillatorDetuneMod { 0.0f, {-12000.0f, 12000.0f}, 0 };
extern const OpcodeSpec<float> hiCC { 127, Range<float>(0.0f, 127.0f), kNormalizeMidi }; FloatSpec oscillatorModDepth { 0.0f, {0.0f, 10000.0f}, kNormalizePercent };
extern const OpcodeSpec<float> loVel { 0, Range<float>(0.0f, 127.0f), kNormalizeMidi }; FloatSpec oscillatorModDepthMod { 0.0f, {0.0f, 10000.0f}, kNormalizePercent };
extern const OpcodeSpec<float> hiVel { 127, Range<float>(0.0f, 127.0f), kNormalizeMidi }; Int32Spec oscillatorQuality { 1, {0, 3}, 0 };
extern const OpcodeSpec<uint8_t> loChannelAftertouch { 0, Range<uint8_t>(0, 127), 0 }; UInt32Spec group { 0, {0, uint32_t_max}, 0 };
extern const OpcodeSpec<uint8_t> hiChannelAftertouch { 127, Range<uint8_t>(0, 127), 0 }; FloatSpec offTime { 6e-3f, {0.0f, 100.0f}, 0 };
extern const OpcodeSpec<float> loBend { -8192, Range<float>(-8192.0f, 8192.0f), kNormalizeBend }; UInt32Spec polyphony { config::maxVoices, {0, config::maxVoices}, 0 };
extern const OpcodeSpec<float> hiBend { 8192, Range<float>(-8192.0f, 8192.0f), kNormalizeBend }; UInt32Spec notePolyphony { config::maxVoices, {0, config::maxVoices}, 0 };
extern const OpcodeSpec<float> loNormalized { 0.0f, Range<float>(0.0f, 1.0f), 0 }; UInt8Spec key { 60, {0, 127}, kCanBeNote };
extern const OpcodeSpec<float> hiNormalized { 1.0f, Range<float>(0.0f, 1.0f), 0 }; UInt8Spec loKey { 0, {0, 127}, kCanBeNote };
extern const OpcodeSpec<float> loBipolar { -1.0f, Range<float>(-1.0f, 1.0f), 0 }; UInt8Spec hiKey { 127, {0, 127}, kCanBeNote };
extern const OpcodeSpec<float> hiBipolar { 1.0f, Range<float>(-1.0f, 1.0f), 0 }; FloatSpec loCC { 0, {0.0f, 127.0f}, kNormalizeMidi };
extern const OpcodeSpec<uint16_t> ccNumber { 0, Range<uint16_t>(0, config::numCCs), 0 }; FloatSpec hiCC { 127, {0.0f, 127.0f}, kNormalizeMidi };
extern const OpcodeSpec<uint8_t> smoothCC { 0, Range<uint8_t>(0, 100), 0 }; FloatSpec loVel { 0, {0.0f, 127.0f}, kNormalizeMidi };
extern const OpcodeSpec<uint8_t> curveCC { 0, Range<uint8_t>(0, 255), 0 }; FloatSpec hiVel { 127, {0.0f, 127.0f}, kNormalizeMidi };
extern const OpcodeSpec<uint8_t> sustainCC { 64, Range<uint8_t>(0, 127), 0 }; UInt8Spec loChannelAftertouch { 0, {0, 127}, 0 };
extern const OpcodeSpec<float> sustainThreshold { 1.0f, Range<float>(0.0f, 127.0f), kNormalizeMidi }; UInt8Spec hiChannelAftertouch { 127, {0, 127}, 0 };
extern const OpcodeSpec<bool> checkSustain { true, Range<bool>(0, 1), 0 }; FloatSpec loBend { -8192, {-8192.0f, 8192.0f}, kNormalizeBend };
extern const OpcodeSpec<bool> checkSostenuto { true, Range<bool>(0, 1), 0 }; FloatSpec hiBend { 8192, {-8192.0f, 8192.0f}, kNormalizeBend };
extern const OpcodeSpec<float> loBPM { 0.0f, Range<float>(0.0f, 500.0f), 0 }; FloatSpec loNormalized { 0.0f, {0.0f, 1.0f}, 0 };
extern const OpcodeSpec<float> hiBPM { 500.0f, Range<float>(0.0f, 500.0f), 0 }; FloatSpec hiNormalized { 1.0f, {0.0f, 1.0f}, 0 };
extern const OpcodeSpec<uint8_t> sequence { 1, Range<uint8_t>(1, 100), 0 }; FloatSpec loBipolar { -1.0f, {-1.0f, 1.0f}, 0 };
extern const OpcodeSpec<float> volume { 0.0f, Range<float>(-144.0f, 48.0f), 0 }; FloatSpec hiBipolar { 1.0f, {-1.0f, 1.0f}, 0 };
extern const OpcodeSpec<float> volumeMod { 0.0f, Range<float>(-144.0f, 48.0f), 0 }; UInt16Spec ccNumber { 0, {0, config::numCCs}, 0 };
extern const OpcodeSpec<float> amplitude { 100.0f, Range<float>(0.0f, 10000.0f), kNormalizePercent }; UInt8Spec smoothCC { 0, {0, 100}, 0 };
extern const OpcodeSpec<float> amplitudeMod { 0.0f, Range<float>(0.0f, 10000.0f), 0 }; UInt8Spec curveCC { 0, {0, 255}, 0 };
extern const OpcodeSpec<float> pan { 0.0f, Range<float>(-100.0f, 100.0f), kNormalizePercent }; UInt8Spec sustainCC { 64, {0, 127}, 0 };
extern const OpcodeSpec<float> panMod { 0.0f, Range<float>(-200.0f, 200.0f), 0 }; FloatSpec sustainThreshold { 1.0f, {0.0f, 127.0f}, kNormalizeMidi };
extern const OpcodeSpec<float> position { 0.0f, Range<float>(-100.0f, 100.0f), kNormalizePercent }; BoolSpec checkSustain { true, {0, 1}, 0 };
extern const OpcodeSpec<float> positionMod { 0.0f, Range<float>(-200.0f, 200.0f), 0 }; BoolSpec checkSostenuto { true, {0, 1}, 0 };
extern const OpcodeSpec<float> width { 100.0f, Range<float>(-100.0f, 100.0f), kNormalizePercent }; FloatSpec loBPM { 0.0f, {0.0f, 500.0f}, 0 };
extern const OpcodeSpec<float> widthMod { 0.0f, Range<float>(-200.0f, 200.0f), 0 }; FloatSpec hiBPM { 500.0f, {0.0f, 500.0f}, 0 };
extern const OpcodeSpec<float> crossfadeIn { 0.0f, Range<float>(0.0f, 127.0f), kNormalizeMidi }; UInt8Spec sequence { 1, {1, 100}, 0 };
extern const OpcodeSpec<float> crossfadeInNorm { 0.0f, Range<float>(0.0f, 1.0f), 0 }; FloatSpec volume { 0.0f, {-144.0f, 48.0f}, 0 };
extern const OpcodeSpec<float> crossfadeOut { 127.0f, Range<float>(0.0f, 127.0f), kNormalizeMidi }; FloatSpec volumeMod { 0.0f, {-144.0f, 48.0f}, 0 };
extern const OpcodeSpec<float> crossfadeOutNorm { 1.0f, Range<float>(0.0f, 1.0f), 0 }; FloatSpec amplitude { 100.0f, {0.0f, 10000.0f}, kNormalizePercent };
extern const OpcodeSpec<float> ampKeytrack { 0.0f, Range<float>(-96.0f, 12.0f), 0 }; FloatSpec amplitudeMod { 0.0f, {0.0f, 10000.0f}, 0 };
extern const OpcodeSpec<float> ampVeltrack { 100.0f, Range<float>(-100.0f, 100.0f), kNormalizePercent }; FloatSpec pan { 0.0f, {-100.0f, 100.0f}, kNormalizePercent };
extern const OpcodeSpec<float> ampVelcurve { 0.0f, Range<float>(0.0f, 1.0f), 0 }; FloatSpec panMod { 0.0f, {-200.0f, 200.0f}, 0 };
extern const OpcodeSpec<float> ampRandom { 0.0f, Range<float>(0.0f, 24.0f), 0 }; FloatSpec position { 0.0f, {-100.0f, 100.0f}, kNormalizePercent };
extern const OpcodeSpec<bool> rtDead { false, Range<bool>(0, 1), 0 }; FloatSpec positionMod { 0.0f, {-200.0f, 200.0f}, 0 };
extern const OpcodeSpec<float> rtDecay { 0.0f, Range<float>(0.0f, 200.0f), 0 }; FloatSpec width { 100.0f, {-100.0f, 100.0f}, kNormalizePercent };
extern const OpcodeSpec<float> filterCutoff { 0.0f, Range<float>(0.0f, 20000.0f), kEnforceUpperBound }; FloatSpec widthMod { 0.0f, {-200.0f, 200.0f}, 0 };
extern const OpcodeSpec<float> filterCutoffMod { 0.0f, Range<float>(-12000.0f, 12000.0f), 0 }; FloatSpec crossfadeIn { 0.0f, {0.0f, 127.0f}, kNormalizeMidi };
extern const OpcodeSpec<float> filterResonance { 0.0f, Range<float>(0.0f, 96.0f), 0 }; FloatSpec crossfadeInNorm { 0.0f, {0.0f, 1.0f}, 0 };
extern const OpcodeSpec<float> filterResonanceMod { 0.0f, Range<float>(0.0f, 96.0f), 0 }; FloatSpec crossfadeOut { 127.0f, {0.0f, 127.0f}, kNormalizeMidi };
extern const OpcodeSpec<float> filterGain { 0.0f, Range<float>(-96.0f, 96.0f), 0 }; FloatSpec crossfadeOutNorm { 1.0f, {0.0f, 1.0f}, 0 };
extern const OpcodeSpec<float> filterGainMod { 0.0f, Range<float>(-96.0f, 96.0f), 0 }; FloatSpec ampKeytrack { 0.0f, {-96.0f, 12.0f}, 0 };
extern const OpcodeSpec<float> filterRandom { 0.0f, Range<float>(0.0f, 12000.0f), 0 }; FloatSpec ampVeltrack { 100.0f, {-100.0f, 100.0f}, kNormalizePercent };
extern const OpcodeSpec<int> filterKeytrack { 0, Range<int>(0, 1200), 0 }; FloatSpec ampVelcurve { 0.0f, {0.0f, 1.0f}, 0 };
extern const OpcodeSpec<int> filterVeltrack { 0, Range<int>(-12000, 12000), 0 }; FloatSpec ampRandom { 0.0f, {0.0f, 24.0f}, 0 };
extern const OpcodeSpec<float> eqBandwidth { 1.0f, Range<float>(0.001f, 4.0f), 0 }; BoolSpec rtDead { false, {false, true}, 0 };
extern const OpcodeSpec<float> eqBandwidthMod { 0.0f, Range<float>(-4.0f, 4.0f), 0 }; FloatSpec rtDecay { 0.0f, {0.0f, 200.0f}, 0 };
extern const OpcodeSpec<float> eqFrequency { 0.0f, Range<float>(0.0f, 20000.0f), kEnforceUpperBound }; FloatSpec filterCutoff { 0.0f, {0.0f, 20000.0f}, kEnforceUpperBound };
extern const OpcodeSpec<float> eqFrequencyMod { 0.0f, Range<float>(-20000.0f, 20000.0f), 0 }; FloatSpec filterCutoffMod { 0.0f, {-12000.0f, 12000.0f}, 0 };
extern const OpcodeSpec<float> eqGain { 0.0f, Range<float>(-96.0f, 96.0f), 0 }; FloatSpec filterResonance { 0.0f, {0.0f, 96.0f}, 0 };
extern const OpcodeSpec<float> eqGainMod { 0.0f, Range<float>(-96.0f, 96.0f), 0 }; FloatSpec filterResonanceMod { 0.0f, {0.0f, 96.0f}, 0 };
extern const OpcodeSpec<float> eqVel2Frequency { 0.0f, Range<float>(-30000.0f, 30000.0f), 0 }; FloatSpec filterGain { 0.0f, {-96.0f, 96.0f}, 0 };
extern const OpcodeSpec<float> eqVel2Gain { 0.0f, Range<float>(-96.0f, 96.0f), 0 }; FloatSpec filterGainMod { 0.0f, {-96.0f, 96.0f}, 0 };
extern const OpcodeSpec<int> pitchKeytrack { 100, Range<int>(-1200, 1200), 0 }; FloatSpec filterRandom { 0.0f, {0.0f, 12000.0f}, 0 };
extern const OpcodeSpec<float> pitchRandom { 0.0f, Range<float>(0.0f, 12000.0f), 0 }; Int32Spec filterKeytrack { 0, {0, 1200}, 0 };
extern const OpcodeSpec<int> pitchVeltrack { 0, Range<int>(-12000, 12000), 0 }; Int32Spec filterVeltrack { 0, {-12000, 12000}, 0 };
extern const OpcodeSpec<int> transpose { 0, Range<int>(-127, 127), 0 }; FloatSpec eqBandwidth { 1.0f, {0.001f, 4.0f}, 0 };
extern const OpcodeSpec<float> pitch { 0.0f, Range<float>(-2400.0f, 2400.0f), 0 }; FloatSpec eqBandwidthMod { 0.0f, {-4.0f, 4.0f}, 0 };
extern const OpcodeSpec<float> pitchMod { 0.0f, Range<float>(-2400.0f, 2400.0f), 0 }; FloatSpec eqFrequency { 0.0f, {0.0f, 20000.0f}, kEnforceUpperBound };
extern const OpcodeSpec<float> bendUp { 200.0f, Range<float>(-12000.0f, 12000.0f), 0 }; FloatSpec eqFrequencyMod { 0.0f, {-20000.0f, 20000.0f}, 0 };
extern const OpcodeSpec<float> bendDown { -200.0f, Range<float>(-12000.0f, 12000.0f), 0 }; FloatSpec eqGain { 0.0f, {-96.0f, 96.0f}, 0 };
extern const OpcodeSpec<float> bendStep { 1.0f, Range<float>(1.0f, 1200.0f), 0 }; FloatSpec eqGainMod { 0.0f, {-96.0f, 96.0f}, 0 };
extern const OpcodeSpec<float> ampLFODepth { 0.0f, Range<float>(-10.0f, 10.0f), 0 }; FloatSpec eqVel2Frequency { 0.0f, {-30000.0f, 30000.0f}, 0 };
extern const OpcodeSpec<float> pitchLFODepth { 0.0f, Range<float>(-1200.0f, 1200.0f), 0 }; FloatSpec eqVel2Gain { 0.0f, {-96.0f, 96.0f}, 0 };
extern const OpcodeSpec<float> filLFODepth { 0.0f, Range<float>(-1200.0f, 1200.0f), 0 }; Int32Spec pitchKeytrack { 100, {-1200, 1200}, 0 };
extern const OpcodeSpec<float> lfoFreq { 0.0f, Range<float>(0.0f, 100.0f), 0 }; FloatSpec pitchRandom { 0.0f, {0.0f, 12000.0f}, 0 };
extern const OpcodeSpec<float> lfoFreqMod { 0.0f, Range<float>(-100.0f, 100.0f), 0 }; Int32Spec pitchVeltrack { 0, {-12000, 12000}, 0 };
extern const OpcodeSpec<float> lfoBeats { 0.0f, Range<float>(0.0f, 1000.0f), 0 }; Int32Spec transpose { 0, {-127, 127}, 0 };
extern const OpcodeSpec<float> lfoBeatsMod { 0.0f, Range<float>(-1000.0f, 1000.0f), 0 }; FloatSpec pitch { 0.0f, {-2400.0f, 2400.0f}, 0 };
extern const OpcodeSpec<float> lfoPhase { 0.0f, Range<float>(0.0f, 1.0f), kWrapPhase }; FloatSpec pitchMod { 0.0f, {-2400.0f, 2400.0f}, 0 };
extern const OpcodeSpec<float> lfoDelay { 0.0f, Range<float>(0.0f, 30.0f), 0 }; FloatSpec bendUp { 200.0f, {-12000.0f, 12000.0f}, 0 };
extern const OpcodeSpec<float> lfoFade { 0.0f, Range<float>(0.0f, 30.0f), 0 }; FloatSpec bendDown { -200.0f, {-12000.0f, 12000.0f}, 0 };
extern const OpcodeSpec<unsigned> lfoCount { 0, Range<unsigned>(0, 1000), 0 }; FloatSpec bendStep { 1.0f, {1.0f, 1200.0f}, 0 };
extern const OpcodeSpec<unsigned> lfoSteps { 0, Range<unsigned>(0, static_cast<unsigned>(config::maxLFOSteps)), 0 }; FloatSpec ampLFODepth { 0.0f, {-10.0f, 10.0f}, 0 };
extern const OpcodeSpec<float> lfoStepX { 0.0f, Range<float>(-100.0f, 100.0f), kNormalizePercent }; FloatSpec pitchLFODepth { 0.0f, {-1200.0f, 1200.0f}, 0 };
extern const OpcodeSpec<LFOWave> lfoWave { LFOWave::Triangle, Range<LFOWave>(LFOWave::Triangle, LFOWave::RandomSH), 0 }; FloatSpec filLFODepth { 0.0f, {-1200.0f, 1200.0f}, 0 };
extern const OpcodeSpec<float> lfoOffset { 0.0f, Range<float>(-1.0f, 1.0f), 0 }; FloatSpec lfoFreq { 0.0f, {0.0f, 100.0f}, 0 };
extern const OpcodeSpec<float> lfoRatio { 1.0f, Range<float>(0.0f, 100.0f), 0 }; FloatSpec lfoFreqMod { 0.0f, {-100.0f, 100.0f}, 0 };
extern const OpcodeSpec<float> lfoScale { 1.0f, Range<float>(0.0f, 1.0f), 0 }; FloatSpec lfoBeats { 0.0f, {0.0f, 1000.0f}, 0 };
extern const OpcodeSpec<float> egTime { 0.0f, Range<float>(0.0f, 100.0f), 0 }; FloatSpec lfoBeatsMod { 0.0f, {-1000.0f, 1000.0f}, 0 };
extern const OpcodeSpec<float> egRelease { 0.001f, Range<float>(0.0f, 100.0f), 0 }; FloatSpec lfoPhase { 0.0f, {0.0f, 1.0f}, kWrapPhase };
extern const OpcodeSpec<float> egTimeMod { 0.0f, Range<float>(-100.0f, 100.0f), 0 }; FloatSpec lfoDelay { 0.0f, {0.0f, 30.0f}, 0 };
extern const OpcodeSpec<float> egPercent { 0.0f, Range<float>(0.0f, 100.0f), 0 }; FloatSpec lfoFade { 0.0f, {0.0f, 30.0f}, 0 };
extern const OpcodeSpec<float> egPercentMod { 0.0f, Range<float>(-100.0f, 100.0f), 0 }; UInt32Spec lfoCount { 0, {0, 1000}, 0 };
extern const OpcodeSpec<float> egDepth { 0.0f, Range<float>(-12000.0f, 12000.0f), 0 }; UInt32Spec lfoSteps { 0, {0, static_cast<unsigned>(config::maxLFOSteps)}, 0 };
extern const OpcodeSpec<float> egVel2Depth { 0.0f, Range<float>(-12000.0f, 12000.0f), 0 }; FloatSpec lfoStepX { 0.0f, {-100.0f, 100.0f}, kNormalizePercent };
extern const OpcodeSpec<bool> flexEGAmpeg { false, Range<bool>(0, 1), 0 }; ESpec<LFOWave> lfoWave { LFOWave::Triangle, {LFOWave::Triangle, LFOWave::RandomSH}, 0 };
extern const OpcodeSpec<int> flexEGDynamic { 0, Range<int>(0, 1), 0 }; FloatSpec lfoOffset { 0.0f, {-1.0f, 1.0f}, 0 };
extern const OpcodeSpec<int> flexEGSustain { 0, Range<int>(0, 100), 0 }; FloatSpec lfoRatio { 1.0f, {0.0f, 100.0f}, 0 };
extern const OpcodeSpec<float> flexEGPointTime { 0.0f, Range<float>(0.0f, 100.0f), 0 }; FloatSpec lfoScale { 1.0f, {0.0f, 1.0f}, 0 };
extern const OpcodeSpec<float> flexEGPointLevel { 0.0f, Range<float>(-1.0f, 1.0f), 0 }; FloatSpec egTime { 0.0f, {0.0f, 100.0f}, 0 };
extern const OpcodeSpec<float> flexEGPointShape { 0.0f, Range<float>(-100.0f, 100.0f), 0 }; FloatSpec egRelease { 0.001f, {0.0f, 100.0f}, 0 };
extern const OpcodeSpec<int> sampleQuality { 1, Range<int>(1, 10), 0 }; FloatSpec egTimeMod { 0.0f, {-100.0f, 100.0f}, 0 };
extern const OpcodeSpec<int> octaveOffset { 0, Range<int>(-10, 10), 0 }; FloatSpec egPercent { 0.0f, {0.0f, 100.0f}, 0 };
extern const OpcodeSpec<int> noteOffset { 0, Range<int>(-127, 127), 0 }; FloatSpec egPercentMod { 0.0f, {-100.0f, 100.0f}, 0 };
extern const OpcodeSpec<float> effect { 0.0f, Range<float>(0.0f, 100.0f), kNormalizePercent }; FloatSpec egDepth { 0.0f, {-12000.0f, 12000.0f}, 0 };
extern const OpcodeSpec<float> effectPercent { 0.0f, Range<float>(0.0f, 100.0f), 0 }; FloatSpec egVel2Depth { 0.0f, {-12000.0f, 12000.0f}, 0 };
extern const OpcodeSpec<LFOWave> apanWaveform { LFOWave::Triangle, Range<LFOWave>(LFOWave::Triangle, LFOWave::Saw), 0 }; BoolSpec flexEGAmpeg { false, {0, 1}, 0 };
extern const OpcodeSpec<float> apanFrequency { 0.0f, Range<float>(0.0f, std::numeric_limits<float>::max()), 0 }; Int32Spec flexEGDynamic { 0, {0, 1}, 0 };
extern const OpcodeSpec<float> apanPhase { 0.5f, Range<float>(0.0f, 1.0f), kWrapPhase }; Int32Spec flexEGSustain { 0, {0, 100}, 0 };
extern const OpcodeSpec<float> apanLevel { 0.0f, Range<float>(0.0f, 100.0f), kNormalizePercent }; FloatSpec flexEGPointTime { 0.0f, {0.0f, 100.0f}, 0 };
extern const OpcodeSpec<float> distoTone { 100.0f, Range<float>(0.0f, 100.0f), 0 }; FloatSpec flexEGPointLevel { 0.0f, {-1.0f, 1.0f}, 0 };
extern const OpcodeSpec<float> distoDepth { 0.0f, Range<float>(0.0f, 100.0f), 0 }; FloatSpec flexEGPointShape { 0.0f, {-100.0f, 100.0f}, 0 };
extern const OpcodeSpec<unsigned> distoStages { 1, Range<unsigned>(1, maxDistoStages), 0 }; Int32Spec sampleQuality { 1, {1, 10}, 0 };
extern const OpcodeSpec<float> compAttack { 0.005f, Range<float>(0.0f, 10.0f), 0 }; Int32Spec octaveOffset { 0, {-10, 10}, 0 };
extern const OpcodeSpec<float> compRelease { 0.05f, Range<float>(0.0f, 10.0f), 0 }; Int32Spec noteOffset { 0, {-127, 127}, 0 };
extern const OpcodeSpec<bool> compSTLink { false, Range<bool>(0, 1), 0 }; FloatSpec effect { 0.0f, {0.0f, 100.0f}, kNormalizePercent };
extern const OpcodeSpec<float> compThreshold { 0.0f, Range<float>(-100.0f, 0.0f), 0 }; FloatSpec effectPercent { 0.0f, {0.0f, 100.0f}, 0 };
extern const OpcodeSpec<float> compRatio { 1.0f, Range<float>(1.0f, 50.0f), 0 }; ESpec<LFOWave> apanWaveform { LFOWave::Triangle, {LFOWave::Triangle, LFOWave::Saw}, 0 };
extern const OpcodeSpec<float> compGain { 0.0f, Range<float>(-100.0f, 100.0f), kDb2Mag }; FloatSpec apanFrequency { 0.0f, {0.0f, float_max}, 0 };
extern const OpcodeSpec<float> fverbSize { 0.0f, Range<float>(0.0f, 100.0f), 0 }; FloatSpec apanPhase { 0.5f, {0.0f, 1.0f}, kWrapPhase };
extern const OpcodeSpec<float> fverbPredelay { 0.0f, Range<float>(0.0f, 10.0f), 0 }; FloatSpec apanLevel { 0.0f, {0.0f, 100.0f}, kNormalizePercent };
extern const OpcodeSpec<float> fverbTone { 100.0f, Range<float>(0.0f, 100.0f), 0 }; FloatSpec distoTone { 100.0f, {0.0f, 100.0f}, 0 };
extern const OpcodeSpec<float> fverbDamp { 0.0f, Range<float>(0.0f, 100.0f), 0 }; FloatSpec distoDepth { 0.0f, {0.0f, 100.0f}, 0 };
extern const OpcodeSpec<bool> gateSTLink { false, Range<bool>(0, 1), 0 }; UInt32Spec distoStages { 1, {1, maxDistoStages}, 0 };
extern const OpcodeSpec<float> gateAttack { 0.005f, Range<float>(0.0f, 10.0f), 0 }; FloatSpec compAttack { 0.005f, {0.0f, 10.0f}, 0 };
extern const OpcodeSpec<float> gateRelease { 0.05f, Range<float>(0.0f, 10.0f), 0 }; FloatSpec compRelease { 0.05f, {0.0f, 10.0f}, 0 };
extern const OpcodeSpec<float> gateHold { 0.0f, Range<float>(0.0f, 10.0f), 0 }; BoolSpec compSTLink { false, {0, 1}, 0 };
extern const OpcodeSpec<float> gateThreshold { 0.0f, Range<float>(-100.0f, 0.0f), 0 }; FloatSpec compThreshold { 0.0f, {-100.0f, 0.0f}, 0 };
extern const OpcodeSpec<float> lofiBitred { 0.0f, Range<float>(0.0f, 100.0f), 0 }; FloatSpec compRatio { 1.0f, {1.0f, 50.0f}, 0 };
extern const OpcodeSpec<float> lofiDecim { 0.0f, Range<float>(0.0f, 100.0f), 0 }; FloatSpec compGain { 0.0f, {-100.0f, 100.0f}, kDb2Mag };
extern const OpcodeSpec<float> rectify { 0.0f, Range<float>(0.0f, 100.0f), 0 }; FloatSpec fverbSize { 0.0f, {0.0f, 100.0f}, 0 };
extern const OpcodeSpec<unsigned> stringsNumber { maxStrings, Range<unsigned>(0, maxStrings), 0 }; FloatSpec fverbPredelay { 0.0f, {0.0f, 10.0f}, 0 };
extern const OpcodeSpec<Trigger> trigger { Trigger::attack, Range<Trigger>(Trigger::attack, Trigger::release_key), 0}; FloatSpec fverbTone { 100.0f, {0.0f, 100.0f}, 0 };
extern const OpcodeSpec<CrossfadeCurve> crossfadeCurve { CrossfadeCurve::power, Range<CrossfadeCurve>(CrossfadeCurve::gain, CrossfadeCurve::power), 0}; FloatSpec fverbDamp { 0.0f, {0.0f, 100.0f}, 0 };
extern const OpcodeSpec<OffMode> offMode { OffMode::fast, Range<OffMode>(OffMode::fast, OffMode::time), 0}; BoolSpec gateSTLink { false, {0, 1}, 0 };
extern const OpcodeSpec<LoopMode> loopMode { LoopMode::no_loop, Range<LoopMode>(LoopMode::no_loop, LoopMode::loop_sustain), 0}; FloatSpec gateAttack { 0.005f, {0.0f, 10.0f}, 0 };
extern const OpcodeSpec<VelocityOverride> velocityOverride { VelocityOverride::current, Range<VelocityOverride>(VelocityOverride::current, VelocityOverride::previous), 0}; FloatSpec gateRelease { 0.05f, {0.0f, 10.0f}, 0 };
extern const OpcodeSpec<SelfMask> selfMask { SelfMask::mask, Range<SelfMask>(SelfMask::mask, SelfMask::dontMask), 0}; FloatSpec gateHold { 0.0f, {0.0f, 10.0f}, 0 };
extern const OpcodeSpec<FilterType> filter { FilterType::kFilterNone, Range<FilterType>(FilterType::kFilterNone, FilterType::kFilterPeq), 0}; FloatSpec gateThreshold { 0.0f, {-100.0f, 0.0f}, 0 };
extern const OpcodeSpec<EqType> eq { EqType::kEqNone, Range<EqType>(EqType::kEqNone, EqType::kEqHighShelf), 0}; FloatSpec lofiBitred { 0.0f, {0.0f, 100.0f}, 0 };
FloatSpec lofiDecim { 0.0f, {0.0f, 100.0f}, 0 };
FloatSpec rectify { 0.0f, {0.0f, 100.0f}, 0 };
UInt32Spec stringsNumber { maxStrings, {0, maxStrings}, 0 };
ESpec<Trigger> trigger { Trigger::attack, {Trigger::attack, Trigger::release_key}, 0};
ESpec<CrossfadeCurve> crossfadeCurve { CrossfadeCurve::power, {CrossfadeCurve::gain, CrossfadeCurve::power}, 0};
ESpec<OffMode> offMode { OffMode::fast, {OffMode::fast, OffMode::time}, 0};
ESpec<LoopMode> loopMode { LoopMode::no_loop, {LoopMode::no_loop, LoopMode::loop_sustain}, 0};
ESpec<VelocityOverride> velocityOverride { VelocityOverride::current, {VelocityOverride::current, VelocityOverride::previous}, 0};
ESpec<SelfMask> selfMask { SelfMask::mask, {SelfMask::mask, SelfMask::dontMask}, 0};
ESpec<FilterType> filter { FilterType::kFilterNone, {FilterType::kFilterNone, FilterType::kFilterPeq}, 0};
ESpec<EqType> eq { EqType::kEqNone, {EqType::kEqNone, EqType::kEqHighShelf}, 0};
} // namespace Default } // namespace Default
} // namespace sfz } // namespace sfz

View file

@ -127,13 +127,13 @@ namespace Default
extern const OpcodeSpec<float> loopCrossfade; extern const OpcodeSpec<float> loopCrossfade;
extern const OpcodeSpec<float> oscillatorPhase; extern const OpcodeSpec<float> oscillatorPhase;
extern const OpcodeSpec<OscillatorEnabled> oscillator; extern const OpcodeSpec<OscillatorEnabled> oscillator;
extern const OpcodeSpec<int> oscillatorMode; extern const OpcodeSpec<int32_t> oscillatorMode;
extern const OpcodeSpec<int> oscillatorMulti; extern const OpcodeSpec<int32_t> oscillatorMulti;
extern const OpcodeSpec<float> oscillatorDetune; extern const OpcodeSpec<float> oscillatorDetune;
extern const OpcodeSpec<float> oscillatorDetuneMod; extern const OpcodeSpec<float> oscillatorDetuneMod;
extern const OpcodeSpec<float> oscillatorModDepth; extern const OpcodeSpec<float> oscillatorModDepth;
extern const OpcodeSpec<float> oscillatorModDepthMod; extern const OpcodeSpec<float> oscillatorModDepthMod;
extern const OpcodeSpec<int> oscillatorQuality; extern const OpcodeSpec<int32_t> oscillatorQuality;
extern const OpcodeSpec<uint32_t> group; extern const OpcodeSpec<uint32_t> group;
extern const OpcodeSpec<float> offTime; extern const OpcodeSpec<float> offTime;
extern const OpcodeSpec<uint32_t> polyphony; extern const OpcodeSpec<uint32_t> polyphony;
@ -190,8 +190,8 @@ namespace Default
extern const OpcodeSpec<float> filterGain; extern const OpcodeSpec<float> filterGain;
extern const OpcodeSpec<float> filterGainMod; extern const OpcodeSpec<float> filterGainMod;
extern const OpcodeSpec<float> filterRandom; extern const OpcodeSpec<float> filterRandom;
extern const OpcodeSpec<int> filterKeytrack; extern const OpcodeSpec<int32_t> filterKeytrack;
extern const OpcodeSpec<int> filterVeltrack; extern const OpcodeSpec<int32_t> filterVeltrack;
extern const OpcodeSpec<float> eqBandwidth; extern const OpcodeSpec<float> eqBandwidth;
extern const OpcodeSpec<float> eqBandwidthMod; extern const OpcodeSpec<float> eqBandwidthMod;
extern const OpcodeSpec<float> eqFrequency; extern const OpcodeSpec<float> eqFrequency;
@ -200,10 +200,10 @@ namespace Default
extern const OpcodeSpec<float> eqGainMod; extern const OpcodeSpec<float> eqGainMod;
extern const OpcodeSpec<float> eqVel2Frequency; extern const OpcodeSpec<float> eqVel2Frequency;
extern const OpcodeSpec<float> eqVel2Gain; extern const OpcodeSpec<float> eqVel2Gain;
extern const OpcodeSpec<int> pitchKeytrack; extern const OpcodeSpec<int32_t> pitchKeytrack;
extern const OpcodeSpec<float> pitchRandom; extern const OpcodeSpec<float> pitchRandom;
extern const OpcodeSpec<int> pitchVeltrack; extern const OpcodeSpec<int32_t> pitchVeltrack;
extern const OpcodeSpec<int> transpose; extern const OpcodeSpec<int32_t> transpose;
extern const OpcodeSpec<float> pitch; extern const OpcodeSpec<float> pitch;
extern const OpcodeSpec<float> pitchMod; extern const OpcodeSpec<float> pitchMod;
extern const OpcodeSpec<float> bendUp; extern const OpcodeSpec<float> bendUp;
@ -219,8 +219,8 @@ namespace Default
extern const OpcodeSpec<float> lfoPhase; extern const OpcodeSpec<float> lfoPhase;
extern const OpcodeSpec<float> lfoDelay; extern const OpcodeSpec<float> lfoDelay;
extern const OpcodeSpec<float> lfoFade; extern const OpcodeSpec<float> lfoFade;
extern const OpcodeSpec<unsigned> lfoCount; extern const OpcodeSpec<uint32_t> lfoCount;
extern const OpcodeSpec<unsigned> lfoSteps; extern const OpcodeSpec<uint32_t> lfoSteps;
extern const OpcodeSpec<float> lfoStepX; extern const OpcodeSpec<float> lfoStepX;
extern const OpcodeSpec<LFOWave> lfoWave; extern const OpcodeSpec<LFOWave> lfoWave;
extern const OpcodeSpec<float> lfoOffset; extern const OpcodeSpec<float> lfoOffset;
@ -234,14 +234,14 @@ namespace Default
extern const OpcodeSpec<float> egDepth; extern const OpcodeSpec<float> egDepth;
extern const OpcodeSpec<float> egVel2Depth; extern const OpcodeSpec<float> egVel2Depth;
extern const OpcodeSpec<bool> flexEGAmpeg; extern const OpcodeSpec<bool> flexEGAmpeg;
extern const OpcodeSpec<int> flexEGDynamic; extern const OpcodeSpec<int32_t> flexEGDynamic;
extern const OpcodeSpec<int> flexEGSustain; extern const OpcodeSpec<int32_t> flexEGSustain;
extern const OpcodeSpec<float> flexEGPointTime; extern const OpcodeSpec<float> flexEGPointTime;
extern const OpcodeSpec<float> flexEGPointLevel; extern const OpcodeSpec<float> flexEGPointLevel;
extern const OpcodeSpec<float> flexEGPointShape; extern const OpcodeSpec<float> flexEGPointShape;
extern const OpcodeSpec<int> sampleQuality; extern const OpcodeSpec<int32_t> sampleQuality;
extern const OpcodeSpec<int> octaveOffset; extern const OpcodeSpec<int32_t> octaveOffset;
extern const OpcodeSpec<int> noteOffset; extern const OpcodeSpec<int32_t> noteOffset;
extern const OpcodeSpec<float> effect; extern const OpcodeSpec<float> effect;
extern const OpcodeSpec<float> effectPercent; extern const OpcodeSpec<float> effectPercent;
extern const OpcodeSpec<LFOWave> apanWaveform; extern const OpcodeSpec<LFOWave> apanWaveform;
@ -250,7 +250,7 @@ namespace Default
extern const OpcodeSpec<float> apanLevel; extern const OpcodeSpec<float> apanLevel;
extern const OpcodeSpec<float> distoTone; extern const OpcodeSpec<float> distoTone;
extern const OpcodeSpec<float> distoDepth; extern const OpcodeSpec<float> distoDepth;
extern const OpcodeSpec<unsigned> distoStages; extern const OpcodeSpec<uint32_t> distoStages;
extern const OpcodeSpec<float> compAttack; extern const OpcodeSpec<float> compAttack;
extern const OpcodeSpec<float> compRelease; extern const OpcodeSpec<float> compRelease;
extern const OpcodeSpec<float> compThreshold; extern const OpcodeSpec<float> compThreshold;
@ -269,7 +269,7 @@ namespace Default
extern const OpcodeSpec<float> lofiBitred; extern const OpcodeSpec<float> lofiBitred;
extern const OpcodeSpec<float> lofiDecim; extern const OpcodeSpec<float> lofiDecim;
extern const OpcodeSpec<float> rectify; extern const OpcodeSpec<float> rectify;
extern const OpcodeSpec<unsigned> stringsNumber; extern const OpcodeSpec<uint32_t> stringsNumber;
extern const OpcodeSpec<Trigger> trigger; extern const OpcodeSpec<Trigger> trigger;
extern const OpcodeSpec<OffMode> offMode; extern const OpcodeSpec<OffMode> offMode;
extern const OpcodeSpec<LoopMode> loopMode; extern const OpcodeSpec<LoopMode> loopMode;