RndNote fix

This commit is contained in:
Jack Andersen 2016-05-16 14:41:44 -10:00
parent a7df18f8d3
commit 91344aa917
2 changed files with 8 additions and 3 deletions

View File

@ -572,7 +572,11 @@ bool SoundMacroState::advance(Voice& vox, double dt)
noteLo *= 100; noteLo *= 100;
noteHi *= 100; noteHi *= 100;
m_curPitch = vox.getEngine().nextRandom() % ((noteHi - noteLo) + noteLo); if (noteHi == noteLo)
m_curPitch = noteHi;
else
m_curPitch = (vox.getEngine().nextRandom() % (noteHi - noteLo)) + noteLo;
if (!free) if (!free)
m_curPitch = m_curPitch / 100 * 100 + detune; m_curPitch = m_curPitch / 100 * 100 + detune;

View File

@ -221,7 +221,7 @@ bool Voice::_advanceSample(int16_t& samp, int32_t& newPitch)
} }
/* Factor in ADSR envelope state */ /* Factor in ADSR envelope state */
float totalVol = m_userVol * m_curVol * m_volAdsr.nextSample(m_sampleRate) /* (m_state.m_curVel / 127.f)*/; float totalVol = m_userVol * m_curVol * m_volAdsr.nextSample(m_sampleRate) * (m_state.m_curVel / 127.f);
/* Apply tremolo */ /* Apply tremolo */
if (m_state.m_tremoloSel && (m_tremoloScale || m_tremoloModScale)) if (m_state.m_tremoloSel && (m_tremoloScale || m_tremoloModScale))
@ -326,10 +326,11 @@ size_t Voice::supplyAudio(size_t samples, int16_t* data)
return samples; return samples;
} }
} }
else
dead = m_state.advance(*this, samples / m_sampleRate);
if (m_curSample) if (m_curSample)
{ {
dead = m_state.advance(*this, samples / m_sampleRate);
uint32_t block = m_curSamplePos / 14; uint32_t block = m_curSamplePos / 14;
uint32_t rem = m_curSamplePos % 14; uint32_t rem = m_curSamplePos % 14;