Removed debug messages in the hot path

This commit is contained in:
Paul Ferrand 2019-12-08 17:10:46 +01:00
parent 6d53619d71
commit eb0b84a7a6
3 changed files with 10 additions and 33 deletions

View file

@ -88,31 +88,31 @@ int process(jack_nframes_t numFrames, void* arg [[maybe_unused]])
switch (midi::status(event.buffer[0])) {
case midi::noteOff:
DBG("[MIDI] Note " << +event.buffer[1] << " OFF at time " << event.time);
// DBG("[MIDI] Note " << +event.buffer[1] << " OFF at time " << event.time);
synth->noteOff(event.time, midi::channel(event.buffer[0]) + 1, event.buffer[1], event.buffer[2]);
break;
case midi::noteOn:
DBG("[MIDI] Note " << +event.buffer[1] << " ON at time " << event.time);
// DBG("[MIDI] Note " << +event.buffer[1] << " ON at time " << event.time);
synth->noteOn(event.time, midi::channel(event.buffer[0]) + 1, event.buffer[1], event.buffer[2]);
break;
case midi::polyphonicPressure:
DBG("[MIDI] Polyphonic pressure on at time " << event.time);
// DBG("[MIDI] Polyphonic pressure on at time " << event.time);
break;
case midi::controlChange:
DBG("[MIDI] CC " << +event.buffer[1] << " at time " << event.time);
// DBG("[MIDI] CC " << +event.buffer[1] << " at time " << event.time);
synth->cc(event.time, midi::channel(event.buffer[0]) + 1, event.buffer[1], event.buffer[2]);
break;
case midi::programChange:
DBG("[MIDI] Program change at time " << event.time);
// DBG("[MIDI] Program change at time " << event.time);
break;
case midi::channelPressure:
DBG("[MIDI] Channel pressure at time " << event.time);
// DBG("[MIDI] Channel pressure at time " << event.time);
break;
case midi::pitchBend:
DBG("[MIDI] Pitch bend at time " << event.time);
// DBG("[MIDI] Pitch bend at time " << event.time);
break;
case midi::systemMessage:
DBG("[MIDI] System message at time " << event.time);
// DBG("[MIDI] System message at time " << event.time);
break;
}
}
@ -130,7 +130,7 @@ int sampleBlockChanged(jack_nframes_t nframes, void* arg [[maybe_unused]])
return 0;
auto synth = reinterpret_cast<sfz::Synth*>(arg);
DBG("Sample per block changed to " << nframes);
// DBG("Sample per block changed to " << nframes);
synth->setSamplesPerBlock(nframes);
return 0;
}
@ -141,7 +141,7 @@ int sampleRateChanged(jack_nframes_t nframes, void* arg [[maybe_unused]])
return 0;
auto synth = reinterpret_cast<sfz::Synth*>(arg);
DBG("Sample rate changed to " << nframes);
// DBG("Sample rate changed to " << nframes);
synth->setSampleRate(nframes);
return 0;
}

View file

@ -287,7 +287,6 @@ sfz::Voice* sfz::Synth::findFreeVoice() noexcept
return freeVoice->get();
// Find voices that can be stolen
DBG("No free voice, trying to steal");
voiceViewArray.clear();
for (auto& voice : voices)
if (voice->canBeStolen())
@ -295,15 +294,12 @@ sfz::Voice* sfz::Synth::findFreeVoice() noexcept
absl::c_sort(voices, [](const auto& lhs, const auto& rhs) { return lhs->getSourcePosition() > rhs->getSourcePosition(); });
for (auto* voice : voiceViewArray) {
DBG("Average voice power: " << voice->getMeanSquaredAverage());
if (voice->getMeanSquaredAverage() < config::voiceStealingThreshold) {
DBG("Stealing voice...");
voice->reset();
return voice;
}
}
DBG("Voices are overloaded, can't start a new note");
return {};
}
@ -372,7 +368,6 @@ void sfz::Synth::noteOn(int delay, int channel, int noteNumber, uint8_t velocity
{
ASSERT(noteNumber < 128);
ASSERT(noteNumber >= 0);
// DBG("Received note " << noteNumber << "/" << +velocity << " ON at time " << delay);
midiState.noteOn(noteNumber, velocity);
@ -402,7 +397,6 @@ void sfz::Synth::noteOff(int delay, int channel, int noteNumber, uint8_t velocit
{
ASSERT(noteNumber < 128);
ASSERT(noteNumber >= 0);
// DBG("Received note " << noteNumber << "/" << +velocity << " OFF at time " << delay);
AtomicGuard callbackGuard { inCallback };
if (!canEnterCallback)

View file

@ -50,21 +50,15 @@ void sfz::Voice::startVoice(Region* region, int delay, int channel, int number,
if (delay < 0)
delay = 0;
// DBG("Starting voice with " << region->sample);
if (!region->isGenerator()) {
currentPromise = resources.filePool.getFilePromise(region->sample);
if (currentPromise == nullptr) {
DBG("[Voice] Could not fetch the file promise for sample " << region->sample);
reset();
return;
}
speedRatio = static_cast<float>(currentPromise->sampleRate / this->sampleRate);
DBG("[Voice] Sample rate for " << region->sample << " is " << currentPromise->sampleRate);
DBG("[Voice] Speed ratio set to " << speedRatio);
}
pitchRatio = region->getBasePitchVariation(number, value);
DBG("[Voice] Pitch ratio set to " << pitchRatio);
baseVolumedB = region->getBaseVolumedB(number);
@ -72,7 +66,6 @@ void sfz::Voice::startVoice(Region* region, int delay, int channel, int number,
if (region->volumeCC)
volumedB += normalizeCC(midiState.cc[region->volumeCC->first]) * region->volumeCC->second;
volumeEnvelope.reset(db2mag(volumedB));
// DBG("Base volume: " << baseVolumedB << " dB - with modifier: " << volumedB << " dB");
baseGain = region->getBaseGain();
baseGain *= region->getCrossfadeGain(midiState.cc);
@ -83,31 +76,26 @@ void sfz::Voice::startVoice(Region* region, int delay, int channel, int number,
if (region->amplitudeCC)
gain *= normalizeCC(midiState.cc[region->amplitudeCC->first]) * normalizePercents(region->amplitudeCC->second);
amplitudeEnvelope.reset(gain);
// DBG("Base gain: " << baseGain << " - with modifier: " << gain);
basePan = normalizeNegativePercents(region->pan);
auto pan { basePan };
if (region->panCC)
pan += normalizeCC(midiState.cc[region->panCC->first]) * normalizeNegativePercents(region->panCC->second);
panEnvelope.reset(pan);
// DBG("Base pan: " << basePan << " - with modifier: " << pan);
basePosition = normalizeNegativePercents(region->position);
auto position { basePosition };
if (region->positionCC)
position += normalizeCC(midiState.cc[region->positionCC->first]) * normalizeNegativePercents(region->positionCC->second);
positionEnvelope.reset(position);
// DBG("Base position: " << basePosition << " - with modifier: " << position);
baseWidth = normalizeNegativePercents(region->width);
auto width { baseWidth };
if (region->widthCC)
width += normalizeCC(midiState.cc[region->widthCC->first]) * normalizeNegativePercents(region->widthCC->second);
widthEnvelope.reset(width);
// DBG("Base width: " << baseWidth << " - with modifier: " << width);
sourcePosition = region->getOffset();
DBG("Offset: " << sourcePosition);
initialDelay = delay + static_cast<uint32_t>(region->getDelay() * sampleRate);
baseFrequency = midiNoteFrequency(number) * pitchRatio;
prepareEGEnvelope(initialDelay, value);
@ -430,7 +418,6 @@ void sfz::Voice::fillWithData(AudioSpan<float> buffer) noexcept
floatPositionOffset = rightCoeffs.back();
if (state != State::release && !region->shouldLoop() && sourcePosition == sampleEnd) {
DBG("Releasing " << region->sample);
auto last = std::distance(indices.begin(), absl::c_find(indices, sampleEnd));
release(last);
buffer.subspan(last).fill(0.0f);
@ -459,7 +446,6 @@ void sfz::Voice::fillWithGenerator(AudioSpan<float> buffer) noexcept
bool sfz::Voice::checkOffGroup(int delay, uint32_t group) noexcept
{
if (region != nullptr && triggerType == TriggerType::NoteOn && region->offBy && *region->offBy == group) {
DBG("Off group of sample " << region->sample);
release(delay);
return true;
}
@ -490,9 +476,6 @@ sfz::Voice::TriggerType sfz::Voice::getTriggerType() const noexcept
void sfz::Voice::reset() noexcept
{
state = State::idle;
if (region != nullptr) {
DBG("Reset voice with sample " << region->sample);
}
region = nullptr;
currentPromise.reset();
sourcePosition = 0;