diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/adlmidi_midiplay.cpp | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/src/adlmidi_midiplay.cpp b/src/adlmidi_midiplay.cpp index 31be12c..ad9ccde 100644 --- a/src/adlmidi_midiplay.cpp +++ b/src/adlmidi_midiplay.cpp @@ -1586,26 +1586,28 @@ void MIDIplay::noteUpdate(size_t midCh, if(vibrato && (d.is_end() || d->value.vibdelay_us >= chan.vibdelay_us)) bend += static_cast<double>(vibrato) * chan.vibdepth * std::sin(chan.vibpos); + bend += phase; + // Use different frequency formulas in depend on a volume model switch(synth.m_volumeScale) { case Synth::VOLUME_DMX: case Synth::VOLUME_DMX_FIXED: - finalFreq = s_dmxFreq(currentTone, bend + phase); + finalFreq = s_dmxFreq(currentTone, bend); break; case Synth::VOLUME_APOGEE: case Synth::VOLUME_APOGEE_FIXED: - finalFreq = s_apogeeFreq(currentTone, bend + phase); + finalFreq = s_apogeeFreq(currentTone, bend); break; case Synth::VOLUME_9X: case Synth::VOLUME_9X_GENERIC_FM: - finalFreq = s_9xFreq(currentTone, bend + phase); + finalFreq = s_9xFreq(currentTone, bend); break; default: - finalFreq = s_commonFreq(currentTone, bend + phase); + finalFreq = s_commonFreq(currentTone, bend); } synth.noteOn(c, c_slave, finalFreq); |