Scope the enums in sfz and remove the prefix

This commit is contained in:
Paul Fd 2021-01-03 23:29:33 +01:00 committed by Paul Ferrand
parent 60b5783753
commit e9941b4337
14 changed files with 113 additions and 113 deletions

View file

@ -53,7 +53,7 @@ void ADSREnvelope::reset(const EGDescription& desc, const Region& region, const
shouldRelease = false;
freeRunning = (
(this->sustain == Float(0.0))
|| (region.loopMode == SfzLoopMode::one_shot && region.isOscillator())
|| (region.loopMode == LoopMode::one_shot && region.isOscillator())
);
currentValue = this->start;
currentState = State::Delay;

View file

@ -145,11 +145,11 @@ extern const OpcodeSpec<float> lofiBitred { 0.0f, Range<float>(0.0f, 100.0f), kI
extern const OpcodeSpec<float> lofiDecim { 0.0f, Range<float>(0.0f, 100.0f), kIgnoreOOB };
extern const OpcodeSpec<float> rectify { 0.0f, Range<float>(0.0f, 100.0f), kIgnoreOOB };
extern const OpcodeSpec<unsigned> stringsNumber { maxStrings, Range<unsigned>(0, maxStrings), kEnforceLowerBound };
extern const OpcodeSpec<SfzTrigger> trigger { SfzTrigger::attack, Range<SfzTrigger>(SfzTrigger::attack, SfzTrigger::release_key), 0};
extern const OpcodeSpec<SfzCrossfadeCurve> crossfadeCurve { SfzCrossfadeCurve::power, Range<SfzCrossfadeCurve>(SfzCrossfadeCurve::gain, SfzCrossfadeCurve::power), 0};
extern const OpcodeSpec<SfzOffMode> offMode { SfzOffMode::fast, Range<SfzOffMode>(SfzOffMode::fast, SfzOffMode::time), 0};
extern const OpcodeSpec<SfzVelocityOverride> velocityOverride { SfzVelocityOverride::current, Range<SfzVelocityOverride>(SfzVelocityOverride::current, SfzVelocityOverride::previous), 0};
extern const OpcodeSpec<SfzSelfMask> selfMask { SfzSelfMask::mask, Range<SfzSelfMask>(SfzSelfMask::mask, SfzSelfMask::dontMask), 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<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};
} // namespace Default

View file

@ -30,16 +30,16 @@
#include <limits>
#include <cstdint>
enum class SfzTrigger { attack = 0, release, release_key, first, legato };
enum class SfzLoopMode { no_loop = 0, one_shot, loop_continuous, loop_sustain };
enum class SfzOffMode { fast = 0, normal, time };
enum class SfzVelocityOverride { current = 0, previous };
enum class SfzCrossfadeCurve { gain = 0, power };
enum class SfzSelfMask { mask = 0, dontMask };
namespace sfz
{
enum class Trigger { attack = 0, release, release_key, first, legato };
enum class LoopMode { no_loop = 0, one_shot, loop_continuous, loop_sustain };
enum class OffMode { fast = 0, normal, time };
enum class VelocityOverride { current = 0, previous };
enum class CrossfadeCurve { gain = 0, power };
enum class SelfMask { mask = 0, dontMask };
enum class OscillatorEnabled { Auto = -1, Off = 0, On = 1 };
enum OpcodeFlags : int {
@ -199,11 +199,11 @@ namespace Default
extern const OpcodeSpec<float> lofiDecim;
extern const OpcodeSpec<float> rectify;
extern const OpcodeSpec<unsigned> stringsNumber;
extern const OpcodeSpec<SfzTrigger> trigger;
extern const OpcodeSpec<SfzOffMode> offMode;
extern const OpcodeSpec<SfzCrossfadeCurve> crossfadeCurve;
extern const OpcodeSpec<SfzVelocityOverride> velocityOverride;
extern const OpcodeSpec<SfzSelfMask> selfMask;
extern const OpcodeSpec<Trigger> trigger;
extern const OpcodeSpec<OffMode> offMode;
extern const OpcodeSpec<CrossfadeCurve> crossfadeCurve;
extern const OpcodeSpec<VelocityOverride> velocityOverride;
extern const OpcodeSpec<SelfMask> selfMask;
extern const OpcodeSpec<FilterType> filter;
extern const OpcodeSpec<EqType> eq;

View file

@ -28,7 +28,7 @@ struct RiffChunkInfo {
/**
@brief Loop mode, like SF_LOOP_*
*/
enum LoopMode {
enum FileLoopMode {
LoopNone,
LoopForward,
LoopBackward,
@ -52,7 +52,7 @@ struct InstrumentInfo {
} loops[16];
};
#else
enum LoopMode {
enum FileLoopMode {
LoopNone = SF_LOOP_NONE,
LoopForward = SF_LOOP_FORWARD,
LoopBackward = SF_LOOP_BACKWARD,

View file

@ -16,7 +16,7 @@ namespace sfz {
* @brief Compute a crossfade in value with respect to a crossfade range (note, velocity, cc, ...)
*/
template <class T, class U>
float crossfadeIn(const sfz::Range<T>& crossfadeRange, U value, SfzCrossfadeCurve curve)
float crossfadeIn(const sfz::Range<T>& crossfadeRange, U value, CrossfadeCurve curve)
{
if (value < crossfadeRange.getStart())
return 0.0f;
@ -27,9 +27,9 @@ float crossfadeIn(const sfz::Range<T>& crossfadeRange, U value, SfzCrossfadeCurv
else if (value < crossfadeRange.getEnd()) {
const auto crossfadePosition = static_cast<float>(value - crossfadeRange.getStart()) / length;
if (curve == SfzCrossfadeCurve::power)
if (curve == CrossfadeCurve::power)
return sqrt(crossfadePosition);
if (curve == SfzCrossfadeCurve::gain)
if (curve == CrossfadeCurve::gain)
return crossfadePosition;
}
@ -40,7 +40,7 @@ float crossfadeIn(const sfz::Range<T>& crossfadeRange, U value, SfzCrossfadeCurv
* @brief Compute a crossfade out value with respect to a crossfade range (note, velocity, cc, ...)
*/
template <class T, class U>
float crossfadeOut(const sfz::Range<T>& crossfadeRange, U value, SfzCrossfadeCurve curve)
float crossfadeOut(const sfz::Range<T>& crossfadeRange, U value, CrossfadeCurve curve)
{
if (value > crossfadeRange.getEnd())
return 0.0f;
@ -51,9 +51,9 @@ float crossfadeOut(const sfz::Range<T>& crossfadeRange, U value, SfzCrossfadeCur
else if (value > crossfadeRange.getStart()) {
const auto crossfadePosition = static_cast<float>(value - crossfadeRange.getStart()) / length;
if (curve == SfzCrossfadeCurve::power)
if (curve == CrossfadeCurve::power)
return std::sqrt(1 - crossfadePosition);
if (curve == SfzCrossfadeCurve::gain)
if (curve == CrossfadeCurve::gain)
return 1 - crossfadePosition;
}

View file

@ -305,14 +305,14 @@ absl::optional<OscillatorEnabled> Opcode::read(OpcodeSpec<OscillatorEnabled>) co
}
template <>
absl::optional<SfzTrigger> Opcode::read(OpcodeSpec<SfzTrigger>) const
absl::optional<Trigger> Opcode::read(OpcodeSpec<Trigger>) const
{
switch (hash(value)) {
case hash("attack"): return SfzTrigger::attack;
case hash("first"): return SfzTrigger::first;
case hash("legato"): return SfzTrigger::legato;
case hash("release"): return SfzTrigger::release;
case hash("release_key"): return SfzTrigger::release_key;
case hash("attack"): return Trigger::attack;
case hash("first"): return Trigger::first;
case hash("legato"): return Trigger::legato;
case hash("release"): return Trigger::release;
case hash("release_key"): return Trigger::release_key;
}
DBG("Unknown trigger value: " << value);
@ -320,11 +320,11 @@ absl::optional<SfzTrigger> Opcode::read(OpcodeSpec<SfzTrigger>) const
}
template <>
absl::optional<SfzCrossfadeCurve> Opcode::read(OpcodeSpec<SfzCrossfadeCurve>) const
absl::optional<CrossfadeCurve> Opcode::read(OpcodeSpec<CrossfadeCurve>) const
{
switch (hash(value)) {
case hash("power"): return SfzCrossfadeCurve::power;
case hash("gain"): return SfzCrossfadeCurve::gain;
case hash("power"): return CrossfadeCurve::power;
case hash("gain"): return CrossfadeCurve::gain;
}
DBG("Unknown crossfade power curve: " << value);
@ -332,12 +332,12 @@ absl::optional<SfzCrossfadeCurve> Opcode::read(OpcodeSpec<SfzCrossfadeCurve>) co
}
template <>
absl::optional<SfzOffMode> Opcode::read(OpcodeSpec<SfzOffMode>) const
absl::optional<OffMode> Opcode::read(OpcodeSpec<OffMode>) const
{
switch (hash(value)) {
case hash("fast"): return SfzOffMode::fast;
case hash("normal"): return SfzOffMode::normal;
case hash("time"): return SfzOffMode::time;
case hash("fast"): return OffMode::fast;
case hash("normal"): return OffMode::normal;
case hash("time"): return OffMode::time;
}
DBG("Unknown off mode: " << value);
@ -391,11 +391,11 @@ absl::optional<EqType> Opcode::read(OpcodeSpec<EqType>) const
}
template <>
absl::optional<SfzVelocityOverride> Opcode::read(OpcodeSpec<SfzVelocityOverride>) const
absl::optional<VelocityOverride> Opcode::read(OpcodeSpec<VelocityOverride>) const
{
switch (hash(value)) {
case hash("current"): return SfzVelocityOverride::current;
case hash("previous"): return SfzVelocityOverride::previous;
case hash("current"): return VelocityOverride::current;
case hash("previous"): return VelocityOverride::previous;
}
DBG("Unknown velocity override: " << value);
@ -403,12 +403,12 @@ absl::optional<SfzVelocityOverride> Opcode::read(OpcodeSpec<SfzVelocityOverride>
}
template <>
absl::optional<SfzSelfMask> Opcode::read(OpcodeSpec<SfzSelfMask>) const
absl::optional<SelfMask> Opcode::read(OpcodeSpec<SelfMask>) const
{
switch (hash(value)) {
case hash("on"):
case hash("mask"): return SfzSelfMask::mask;
case hash("off"): return SfzSelfMask::dontMask;
case hash("mask"): return SelfMask::mask;
case hash("off"): return SelfMask::dontMask;
}
DBG("Unknown velocity override: " << value);

View file

@ -130,16 +130,16 @@ bool sfz::Region::parseOpcode(const Opcode& rawOpcode)
case hash("loop_mode"): // also loopmode
switch (hash(opcode.value)) {
case hash("no_loop"):
loopMode = SfzLoopMode::no_loop;
loopMode = LoopMode::no_loop;
break;
case hash("one_shot"):
loopMode = SfzLoopMode::one_shot;
loopMode = LoopMode::one_shot;
break;
case hash("loop_continuous"):
loopMode = SfzLoopMode::loop_continuous;
loopMode = LoopMode::loop_continuous;
break;
case hash("loop_sustain"):
loopMode = SfzLoopMode::loop_sustain;
loopMode = LoopMode::loop_sustain;
break;
default:
DBG("Unkown loop mode:" << opcode.value);
@ -207,7 +207,7 @@ bool sfz::Region::parseOpcode(const Opcode& rawOpcode)
offMode = opcode.read(Default::offMode).value_or(offMode);
break;
case hash("off_time"):
offMode = SfzOffMode::time;
offMode = OffMode::time;
offTime = opcode.read(Default::offTime).value_or(offTime);
break;
case hash("polyphony"):
@ -220,10 +220,10 @@ bool sfz::Region::parseOpcode(const Opcode& rawOpcode)
case hash("note_selfmask"):
switch (hash(opcode.value)) {
case hash("on"):
selfMask = SfzSelfMask::mask;
selfMask = SelfMask::mask;
break;
case hash("off"):
selfMask = SfzSelfMask::dontMask;
selfMask = SelfMask::dontMask;
break;
default:
DBG("Unkown self mask value:" << opcode.value);
@ -1608,9 +1608,9 @@ bool sfz::Region::registerNoteOn(int noteNumber, float velocity, float randValue
const bool velOk = velocityRange.containsWithEnd(velocity);
const bool randOk = randRange.contains(randValue) || (randValue == 1.0f && randRange.getEnd() == 1.0f);
const bool firstLegatoNote = (trigger == SfzTrigger::first && midiState.getActiveNotes() == 1);
const bool attackTrigger = (trigger == SfzTrigger::attack);
const bool notFirstLegatoNote = (trigger == SfzTrigger::legato && midiState.getActiveNotes() > 1);
const bool firstLegatoNote = (trigger == Trigger::first && midiState.getActiveNotes() == 1);
const bool attackTrigger = (trigger == Trigger::attack);
const bool notFirstLegatoNote = (trigger == Trigger::legato && midiState.getActiveNotes() > 1);
return keyOk && velOk && randOk && (attackTrigger || firstLegatoNote || notFirstLegatoNote);
}
@ -1636,10 +1636,10 @@ bool sfz::Region::registerNoteOff(int noteNumber, float velocity, float randValu
// Release logic
if (trigger == SfzTrigger::release_key)
if (trigger == Trigger::release_key)
return true;
if (trigger == SfzTrigger::release) {
if (trigger == Trigger::release) {
if (midiState.getCCValue(sustainCC) < sustainThreshold)
return true;
@ -1717,7 +1717,7 @@ float sfz::Region::getBaseVolumedB(int noteNumber) const noexcept
baseVolumedB += globalVolume;
baseVolumedB += masterVolume;
baseVolumedB += groupVolume;
if (trigger == SfzTrigger::release || trigger == SfzTrigger::release_key)
if (trigger == Trigger::release || trigger == Trigger::release_key)
baseVolumedB -= rtDecay * midiState.getNoteDuration(noteNumber);
return baseVolumedB;
}

View file

@ -61,7 +61,7 @@ struct Region {
* @return true
* @return false
*/
bool isRelease() const noexcept { return trigger == SfzTrigger::release || trigger == SfzTrigger::release_key; }
bool isRelease() const noexcept { return trigger == Trigger::release || trigger == Trigger::release_key; }
/**
* @brief Is a generator (*sine or *silence mostly)?
*
@ -97,7 +97,7 @@ struct Region {
* @return true
* @return false
*/
bool shouldLoop() const noexcept { return (loopMode == SfzLoopMode::loop_continuous || loopMode == SfzLoopMode::loop_sustain); }
bool shouldLoop() const noexcept { return (loopMode == LoopMode::loop_continuous || loopMode == LoopMode::loop_sustain); }
/**
* @brief Given the current midi state, is the region switched on?
*
@ -326,7 +326,7 @@ struct Region {
CCMap<int64_t> offsetCC { Default::offsetMod.value };
uint32_t sampleEnd { Default::sampleEnd.value }; // end
absl::optional<uint32_t> sampleCount {}; // count
absl::optional<SfzLoopMode> loopMode {}; // loopmode
absl::optional<LoopMode> loopMode {}; // loopmode
Range<uint32_t> loopRange { Default::loopRange.bounds }; //loopstart and loopend
float loopCrossfade { Default::loopCrossfade.value }; // loop_crossfade
@ -343,11 +343,11 @@ struct Region {
// Instrument settings: voice lifecycle
uint32_t group { Default::group.value }; // group
absl::optional<uint32_t> offBy {}; // off_by
SfzOffMode offMode { Default::offMode.value }; // off_mode
OffMode offMode { Default::offMode.value }; // off_mode
float offTime { Default::offTime.value }; // off_mode
absl::optional<uint32_t> notePolyphony {}; // note_polyphony
uint32_t polyphony { config::maxVoices }; // polyphony
SfzSelfMask selfMask { Default::selfMask.value };
SelfMask selfMask { Default::selfMask.value };
bool rtDead { Default::rtDead.value };
// Region logic: key mapping
@ -364,7 +364,7 @@ struct Region {
absl::optional<uint8_t> downKeyswitch {}; // sw_down
absl::optional<uint8_t> previousKeyswitch {}; // sw_previous
absl::optional<uint8_t> defaultSwitch {};
SfzVelocityOverride velocityOverride { Default::velocityOverride.value }; // sw_vel
VelocityOverride velocityOverride { Default::velocityOverride.value }; // sw_vel
bool checkSustain { Default::checkSustain.value }; // sustain_sw
bool checkSostenuto { Default::checkSostenuto.value }; // sostenuto_sw
uint16_t sustainCC { Default::sustainCC.value }; // sustain_cc
@ -378,7 +378,7 @@ struct Region {
uint8_t sequencePosition { Default::sequence.value }; // seq_position
// Region logic: triggers
SfzTrigger trigger { Default::trigger.value }; // trigger
Trigger trigger { Default::trigger.value }; // trigger
CCMap<Range<float>> ccTriggers { Default::normalized.bounds }; // on_loccN on_hiccN
// Performance parameters: amplifier
@ -397,9 +397,9 @@ struct Region {
Range<uint8_t> crossfadeKeyOutRange { Default::crossfadeKeyOutRange };
Range<float> crossfadeVelInRange { Default::crossfadeVelInRange };
Range<float> crossfadeVelOutRange { Default::crossfadeVelOutRange };
SfzCrossfadeCurve crossfadeKeyCurve { Default::crossfadeCurve.value };
SfzCrossfadeCurve crossfadeVelCurve { Default::crossfadeCurve.value };
SfzCrossfadeCurve crossfadeCCCurve { Default::crossfadeCurve.value };
CrossfadeCurve crossfadeKeyCurve { Default::crossfadeCurve.value };
CrossfadeCurve crossfadeVelCurve { Default::crossfadeCurve.value };
CrossfadeCurve crossfadeCCCurve { Default::crossfadeCurve.value };
CCMap<Range<float>> crossfadeCCInRange { Default::crossfadeCCInRange }; // xfin_loccN xfin_hiccN
CCMap<Range<float>> crossfadeCCOutRange { Default::crossfadeCCOutRange }; // xfout_loccN xfout_hiccN
float rtDecay { Default::rtDecay.value }; // rt_decay

View file

@ -596,11 +596,11 @@ void Synth::Impl::finalizeSfzLoad()
region->loopRange.setEnd(fileInformation->loopEnd);
if (!region->loopMode)
region->loopMode = SfzLoopMode::loop_continuous;
region->loopMode = LoopMode::loop_continuous;
}
if (region->isRelease() && !region->loopMode)
region->loopMode = SfzLoopMode::one_shot;
region->loopMode = LoopMode::one_shot;
if (region->loopRange.getEnd() == Default::loopRange.bounds.getEnd())
region->loopRange.setEnd(region->sampleEnd);
@ -656,7 +656,7 @@ void Synth::Impl::finalizeSfzLoad()
for (int cc = 0; cc < config::numCCs; cc++) {
if (region->ccTriggers.contains(cc)
|| region->ccConditions.contains(cc)
|| (cc == region->sustainCC && region->trigger == SfzTrigger::release))
|| (cc == region->sustainCC && region->trigger == Trigger::release))
ccActivationLists_[cc].push_back(region);
}
@ -1052,7 +1052,7 @@ void Synth::Impl::noteOffDispatch(int delay, int noteNumber, float velocity) noe
for (auto& region : noteActivationLists_[noteNumber]) {
if (region->registerNoteOff(noteNumber, velocity, randValue)) {
if (region->trigger == SfzTrigger::release && !region->rtDead && !voiceManager_.playingAttackVoice(region))
if (region->trigger == Trigger::release && !region->rtDead && !voiceManager_.playingAttackVoice(region))
continue;
startVoice(region, delay, triggerEvent, ring);

View file

@ -167,16 +167,16 @@ void sfz::Synth::dispatchMessage(Client& client, int delay, const char* path, co
}
switch (*region.loopMode) {
case SfzLoopMode::no_loop:
case LoopMode::no_loop:
client.receive<'s'>(delay, path, "no_loop");
break;
case SfzLoopMode::loop_continuous:
case LoopMode::loop_continuous:
client.receive<'s'>(delay, path, "loop_continuous");
break;
case SfzLoopMode::loop_sustain:
case LoopMode::loop_sustain:
client.receive<'s'>(delay, path, "loop_sustain");
break;
case SfzLoopMode::one_shot:
case LoopMode::one_shot:
client.receive<'s'>(delay, path, "one_shot");
break;
}
@ -204,13 +204,13 @@ void sfz::Synth::dispatchMessage(Client& client, int delay, const char* path, co
MATCH("/region&/off_mode", "") {
GET_REGION_OR_BREAK(indices[0])
switch (region.offMode) {
case SfzOffMode::time:
case OffMode::time:
client.receive<'s'>(delay, path, "time");
break;
case SfzOffMode::normal:
case OffMode::normal:
client.receive<'s'>(delay, path, "normal");
break;
case SfzOffMode::fast:
case OffMode::fast:
client.receive<'s'>(delay, path, "fast");
break;
}
@ -313,10 +313,10 @@ void sfz::Synth::dispatchMessage(Client& client, int delay, const char* path, co
MATCH("/region&/sw_vel", "") {
GET_REGION_OR_BREAK(indices[0])
switch (region.velocityOverride) {
case SfzVelocityOverride::current:
case VelocityOverride::current:
client.receive<'s'>(delay, path, "current");
break;
case SfzVelocityOverride::previous:
case VelocityOverride::previous:
client.receive<'s'>(delay, path, "previous");
break;
}
@ -359,19 +359,19 @@ void sfz::Synth::dispatchMessage(Client& client, int delay, const char* path, co
MATCH("/region&/trigger", "") {
GET_REGION_OR_BREAK(indices[0])
switch (region.trigger) {
case SfzTrigger::attack:
case Trigger::attack:
client.receive<'s'>(delay, path, "attack");
break;
case SfzTrigger::first:
case Trigger::first:
client.receive<'s'>(delay, path, "first");
break;
case SfzTrigger::release:
case Trigger::release:
client.receive<'s'>(delay, path, "release");
break;
case SfzTrigger::release_key:
case Trigger::release_key:
client.receive<'s'>(delay, path, "release_key");
break;
case SfzTrigger::legato:
case Trigger::legato:
client.receive<'s'>(delay, path, "legato");
break;
}
@ -696,10 +696,10 @@ void sfz::Synth::dispatchMessage(Client& client, int delay, const char* path, co
MATCH("/region&/xf_keycurve", "") {
GET_REGION_OR_BREAK(indices[0])
switch (region.crossfadeKeyCurve) {
case SfzCrossfadeCurve::gain:
case CrossfadeCurve::gain:
client.receive<'s'>(delay, path, "gain");
break;
case SfzCrossfadeCurve::power:
case CrossfadeCurve::power:
client.receive<'s'>(delay, path, "power");
break;
}
@ -708,10 +708,10 @@ void sfz::Synth::dispatchMessage(Client& client, int delay, const char* path, co
MATCH("/region&/xf_velcurve", "") {
GET_REGION_OR_BREAK(indices[0])
switch (region.crossfadeVelCurve) {
case SfzCrossfadeCurve::gain:
case CrossfadeCurve::gain:
client.receive<'s'>(delay, path, "gain");
break;
case SfzCrossfadeCurve::power:
case CrossfadeCurve::power:
client.receive<'s'>(delay, path, "power");
break;
}
@ -720,10 +720,10 @@ void sfz::Synth::dispatchMessage(Client& client, int delay, const char* path, co
MATCH("/region&/xf_cccurve", "") {
GET_REGION_OR_BREAK(indices[0])
switch (region.crossfadeCCCurve) {
case SfzCrossfadeCurve::gain:
case CrossfadeCurve::gain:
client.receive<'s'>(delay, path, "gain");
break;
case SfzCrossfadeCurve::power:
case CrossfadeCurve::power:
client.receive<'s'>(delay, path, "power");
break;
}
@ -945,10 +945,10 @@ void sfz::Synth::dispatchMessage(Client& client, int delay, const char* path, co
MATCH("/region&/note_selfmask", "") {
GET_REGION_OR_BREAK(indices[0])
switch(region.selfMask) {
case SfzSelfMask::mask:
case SelfMask::mask:
client.receive(delay, path, "T", nullptr);
break;
case SfzSelfMask::dontMask:
case SelfMask::dontMask:
client.receive(delay, path, "F", nullptr);
break;
}

View file

@ -464,9 +464,9 @@ void Voice::off(int delay, bool fast) noexcept
{
Impl& impl = *impl_;
if (!impl.region_->flexAmpEG) {
if (impl.region_->offMode == SfzOffMode::fast || fast) {
if (impl.region_->offMode == OffMode::fast || fast) {
impl.egAmplitude_.setReleaseTime(Default::offTime.value);
} else if (impl.region_->offMode == SfzOffMode::time) {
} else if (impl.region_->offMode == OffMode::time) {
impl.egAmplitude_.setReleaseTime(impl.region_->offTime);
}
}
@ -492,7 +492,7 @@ void Voice::registerNoteOff(int delay, int noteNumber, float velocity) noexcept
if (impl.triggerEvent_.number == noteNumber && impl.triggerEvent_.type == TriggerEventType::NoteOn) {
impl.noteIsOff_ = true;
if (impl.region_->loopMode == SfzLoopMode::one_shot)
if (impl.region_->loopMode == LoopMode::one_shot)
return;
if (!impl.region_->checkSustain

View file

@ -198,7 +198,7 @@ void VoiceManager::checkNotePolyphony(const Region* region, int delay, const Tri
&& voiceTriggerEvent.type == triggerEvent.type) {
notePolyphonyCounter += 1;
switch (region->selfMask) {
case SfzSelfMask::mask:
case SelfMask::mask:
if (voiceTriggerEvent.value <= triggerEvent.value) {
if (!selfMaskCandidate
|| selfMaskCandidate->getTriggerEvent().value > voiceTriggerEvent.value) {
@ -206,7 +206,7 @@ void VoiceManager::checkNotePolyphony(const Region* region, int delay, const Tri
}
}
break;
case SfzSelfMask::dontMask:
case SelfMask::dontMask:
if (!selfMaskCandidate || selfMaskCandidate->getAge() < voice->getAge())
selfMaskCandidate = voice;
break;

View file

@ -38,7 +38,7 @@ void FlexEnvelopeSource::init(const ModKey& sourceKey, NumericId<Voice> voiceId,
FlexEnvelope* eg = voice->getFlexEG(egIndex);
eg->configure(&region->flexEGs[egIndex]);
bool freeRunning = (
(region->loopMode == SfzLoopMode::one_shot && region->isOscillator())
(region->loopMode == LoopMode::one_shot && region->isOscillator())
);
if (freeRunning && region->flexAmpEG && egIndex == *region->flexAmpEG)
eg->setFreeRunning(true);

View file

@ -51,7 +51,7 @@ TEST_CASE("[Files] Underscore opcodes (underscore_opcodes.sfz)")
Synth synth;
synth.loadSfzFile(fs::current_path() / "tests/TestFiles/Regions/underscore_opcodes.sfz");
REQUIRE(synth.getNumRegions() == 1);
REQUIRE(synth.getRegionView(0)->loopMode == SfzLoopMode::loop_sustain);
REQUIRE(synth.getRegionView(0)->loopMode == LoopMode::loop_sustain);
}
TEST_CASE("[Files] (regions_bad.sfz)")
@ -505,11 +505,11 @@ TEST_CASE("[Files] Off modes")
synth.noteOn(0, 64, 63);
REQUIRE( synth.getNumActiveVoices() == 2 );
const auto* fastVoice =
synth.getVoiceView(0)->getRegion()->offMode == SfzOffMode::fast ?
synth.getVoiceView(0)->getRegion()->offMode == OffMode::fast ?
synth.getVoiceView(0) :
synth.getVoiceView(1) ;
const auto* normalVoice =
synth.getVoiceView(0)->getRegion()->offMode == SfzOffMode::fast ?
synth.getVoiceView(0)->getRegion()->offMode == OffMode::fast ?
synth.getVoiceView(1) :
synth.getVoiceView(0) ;
synth.noteOn(100, 63, 63);
@ -530,9 +530,9 @@ TEST_CASE("[Files] Looped regions taken from files and possibly overriden")
synth.setSampleRate(44100);
synth.loadSfzFile(fs::current_path() / "tests/TestFiles/looped_regions.sfz");
REQUIRE( synth.getNumRegions() == 3 );
REQUIRE( synth.getRegionView(0)->loopMode == SfzLoopMode::loop_continuous );
REQUIRE( synth.getRegionView(1)->loopMode == SfzLoopMode::no_loop );
REQUIRE( synth.getRegionView(2)->loopMode == SfzLoopMode::loop_continuous );
REQUIRE( synth.getRegionView(0)->loopMode == LoopMode::loop_continuous );
REQUIRE( synth.getRegionView(1)->loopMode == LoopMode::no_loop );
REQUIRE( synth.getRegionView(2)->loopMode == LoopMode::loop_continuous );
REQUIRE(synth.getRegionView(0)->loopRange == Range<uint32_t> { 77554, 186581 });
REQUIRE(synth.getRegionView(1)->loopRange == Range<uint32_t> { 77554, 186581 });
@ -546,7 +546,7 @@ TEST_CASE("[Files] Looped regions can start at 0")
<region> sample=wavetable_with_loop_at_endings.wav
)");
REQUIRE( synth.getNumRegions() == 1 );
REQUIRE( synth.getRegionView(0)->loopMode == SfzLoopMode::loop_continuous );
REQUIRE( synth.getRegionView(0)->loopMode == LoopMode::loop_continuous );
REQUIRE( synth.getRegionView(0)->loopRange == Range<uint32_t> { 0, synth.getRegionView(0)->sampleEnd } );
}
@ -563,13 +563,13 @@ TEST_CASE("[Synth] Release triggers automatically sets the loop mode")
<region> sample=kick.wav pitch_keycenter=69 trigger=release
)");
REQUIRE( synth.getNumRegions() == 7 );
REQUIRE( synth.getRegionView(0)->loopMode == SfzLoopMode::loop_sustain );
REQUIRE( synth.getRegionView(1)->loopMode == SfzLoopMode::loop_sustain );
REQUIRE( synth.getRegionView(2)->loopMode == SfzLoopMode::loop_sustain );
REQUIRE( synth.getRegionView(3)->loopMode == SfzLoopMode::loop_sustain );
REQUIRE( synth.getRegionView(4)->loopMode == SfzLoopMode::loop_continuous );
REQUIRE( synth.getRegionView(5)->loopMode == SfzLoopMode::one_shot );
REQUIRE( synth.getRegionView(6)->loopMode == SfzLoopMode::one_shot );
REQUIRE( synth.getRegionView(0)->loopMode == LoopMode::loop_sustain );
REQUIRE( synth.getRegionView(1)->loopMode == LoopMode::loop_sustain );
REQUIRE( synth.getRegionView(2)->loopMode == LoopMode::loop_sustain );
REQUIRE( synth.getRegionView(3)->loopMode == LoopMode::loop_sustain );
REQUIRE( synth.getRegionView(4)->loopMode == LoopMode::loop_continuous );
REQUIRE( synth.getRegionView(5)->loopMode == LoopMode::one_shot );
REQUIRE( synth.getRegionView(6)->loopMode == LoopMode::one_shot );
}
TEST_CASE("[Files] Case sentitiveness")