Слияние кода завершено, страница обновится автоматически
#include "Voice.h"
double Voice::nextSample() {
if (!isActive) return 0.0;
double oscillator1Output = mOscillatorMix == 1 ? 0.0 : mOscillator1.nextSample();
double oscillator2Output = mOscillatorMix == 0 ? 0.0 : mOscillator2.nextSample();
double oscillatorSum = ((1 - mOscillatorMix) * oscillator1Output) + (mOscillatorMix * oscillator2Output);
double ampEnvelopeValue = mAmpEnvelope.nextSample();
double filterEnvelopeValue = mFilterEnvelope.nextSample();
oscillatorSum *= mAmpEnvelopeAmount * 0.01;
mFilter.setCutoffMod(filterEnvelopeValue * mFilterEnvelopeAmount); // ignore LFO now.
return mFilter.process(oscillatorSum * ampEnvelopeValue * mVelocity / 127.0);
}
void Voice::setFree() {
isActive = false;
}
// Do reset after every noteoff
void Voice::reset() {
mNoteNumber = -1;
mVelocity = 0;
pbendamount = 0;
//mOscillatorMix = 0;
mOscillator1.reset();
mOscillator2.reset();
mAmpEnvelope.reset();
mFilterEnvelope.reset();
mFilter.reset();
}
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Опубликовать ( 0 )