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