Comments and renaming
This commit is contained in:
parent
025e87a0d1
commit
6750fb93a2
2 changed files with 88 additions and 4 deletions
|
|
@ -911,7 +911,7 @@ void sfz::Synth::startVoice(Region* region, int delay, const TriggerEvent& trigg
|
|||
polyphonyGroups[region->group].registerVoice(selectedVoice);
|
||||
}
|
||||
|
||||
bool sfz::Synth::matchAttackRegion(const Region* releaseRegion) noexcept
|
||||
bool sfz::Synth::playingAttackVoice(const Region* releaseRegion) noexcept
|
||||
{
|
||||
const auto compatibleVoice = [releaseRegion](const Voice* v) -> bool {
|
||||
const sfz::TriggerEvent& event = v->getTriggerEvent();
|
||||
|
|
@ -937,7 +937,7 @@ void sfz::Synth::noteOffDispatch(int delay, int noteNumber, float velocity) noex
|
|||
|
||||
for (auto& region : noteActivationLists[noteNumber]) {
|
||||
if (region->registerNoteOff(noteNumber, velocity, randValue)) {
|
||||
if (region->trigger == SfzTrigger::release && !region->rtDead && !matchAttackRegion(region))
|
||||
if (region->trigger == SfzTrigger::release && !region->rtDead && !playingAttackVoice(region))
|
||||
continue;
|
||||
|
||||
startVoice(region, delay, triggerEvent, ring);
|
||||
|
|
@ -1058,7 +1058,7 @@ void sfz::Synth::noteOnDispatch(int delay, int noteNumber, float velocity) noexc
|
|||
|
||||
void sfz::Synth::startDelayedReleaseVoices(Region* region, int delay, SisterVoiceRingBuilder& ring) noexcept
|
||||
{
|
||||
if (!region->rtDead && !matchAttackRegion(region)) {
|
||||
if (!region->rtDead && !playingAttackVoice(region)) {
|
||||
region->delayedReleases.clear();
|
||||
return;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -725,8 +725,31 @@ private:
|
|||
|
||||
fs::file_time_type checkModificationTime();
|
||||
|
||||
/**
|
||||
* @brief Check all regions and start voices for note on events
|
||||
*
|
||||
* @param delay
|
||||
* @param noteNumber
|
||||
* @param velocity
|
||||
*/
|
||||
void noteOnDispatch(int delay, int noteNumber, float velocity) noexcept;
|
||||
|
||||
/**
|
||||
* @brief Check all regions and start voices for note off events
|
||||
*
|
||||
* @param delay
|
||||
* @param noteNumber
|
||||
* @param velocity
|
||||
*/
|
||||
void noteOffDispatch(int delay, int noteNumber, float velocity) noexcept;
|
||||
|
||||
/**
|
||||
* @brief Check all regions and start voices for cc events
|
||||
*
|
||||
* @param delay
|
||||
* @param ccNumber
|
||||
* @param value
|
||||
*/
|
||||
void ccDispatch(int delay, int ccNumber, float value) noexcept;
|
||||
|
||||
template<class T>
|
||||
|
|
@ -781,14 +804,75 @@ private:
|
|||
VoiceViewVector voiceViewArray;
|
||||
VoiceStealing stealer;
|
||||
|
||||
/**
|
||||
* @brief Check the region polyphony, releasing voices if necessary
|
||||
*
|
||||
* @param region
|
||||
* @param delay
|
||||
*/
|
||||
void checkRegionPolyphony(const Region* region, int delay) noexcept;
|
||||
|
||||
/**
|
||||
* @brief Check the note polyphony, releasing voices if necessary
|
||||
*
|
||||
* @param region
|
||||
* @param delay
|
||||
* @param triggerEvent
|
||||
*/
|
||||
void checkNotePolyphony(const Region* region, int delay, const TriggerEvent& triggerEvent) noexcept;
|
||||
|
||||
/**
|
||||
* @brief Check the group polyphony, releasing voices if necessary
|
||||
*
|
||||
* @param region
|
||||
* @param delay
|
||||
*/
|
||||
void checkGroupPolyphony(const Region* region, int delay) noexcept;
|
||||
|
||||
/**
|
||||
* @brief Check the region set polyphony at all levels, releasing voices if necessary
|
||||
*
|
||||
* @param region
|
||||
* @param delay
|
||||
*/
|
||||
void checkSetPolyphony(const Region* region, int delay) noexcept;
|
||||
|
||||
/**
|
||||
* @brief Start a voice for a specific region.
|
||||
* This will do the needed polyphony checks and voice stealing.
|
||||
*
|
||||
* @param region
|
||||
* @param delay
|
||||
* @param triggerEvent
|
||||
* @param ring
|
||||
*/
|
||||
void startVoice(Region* region, int delay, const TriggerEvent& triggerEvent, SisterVoiceRingBuilder& ring) noexcept;
|
||||
|
||||
/**
|
||||
* @brief Check the off groups of all playing voices, releasing if necessary
|
||||
*
|
||||
* @param region
|
||||
* @param delay
|
||||
*/
|
||||
void checkOffGroups(Region* region, int delay) noexcept;
|
||||
|
||||
/**
|
||||
* @brief Start all delayed release voices of the region if necessary
|
||||
*
|
||||
* @param region
|
||||
* @param delay
|
||||
* @param ring
|
||||
*/
|
||||
void startDelayedReleaseVoices(Region* region, int delay, SisterVoiceRingBuilder& ring) noexcept;
|
||||
bool matchAttackRegion(const Region* region) noexcept;
|
||||
|
||||
/**
|
||||
* @brief Check if a playing voice matches the release region
|
||||
*
|
||||
* @param releaseRegion
|
||||
* @return true
|
||||
* @return false
|
||||
*/
|
||||
bool playingAttackVoice(const Region* releaseRegion) noexcept;
|
||||
|
||||
std::array<RegionViewVector, 128> noteActivationLists;
|
||||
std::array<RegionViewVector, config::numCCs> ccActivationLists;
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue