mirror of
https://github.com/yokemura/Magical8bitPlug2.git
synced 2025-07-17 11:04:16 -04:00
arpeggio
This commit is contained in:
@ -38,6 +38,7 @@ void TonalVoice::startNote (int midiNoteNumber, float velocity, SynthesiserSound
|
||||
arpeggioFrameTimer = 0;
|
||||
arpeggioFrameLength = 0;
|
||||
currentNumNoteBuffer = 0;
|
||||
for (int i=0; i<10; i++) { noteBuffer[i] = 0; }
|
||||
}
|
||||
|
||||
void TonalVoice::advanceControlFrame()
|
||||
@ -69,7 +70,7 @@ void TonalVoice::calculateAngleDelta()
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
double byWheel = settingRefs->vibratoIgnoresWheel() ? 1.0 : currentModWheelValue;
|
||||
double vibratoAmount = * (settingRefs->vibratoDepth) * sin (getVibratoPhase()) * byWheel;
|
||||
double noteNoInDouble = noteNumber
|
||||
@ -262,4 +263,23 @@ void TonalVoice::onFrameAdvanced()
|
||||
autoBendDelta = 0;
|
||||
}
|
||||
}
|
||||
|
||||
if (arpeggioFrameLength > 0) {
|
||||
arpeggioFrameTimer += 1.0 / getSampleRate();
|
||||
|
||||
if (arpeggioFrameTimer >= arpeggioFrameLength)
|
||||
{
|
||||
currentArpeggioFrame++;
|
||||
|
||||
if (currentArpeggioFrame >= currentNumNoteBuffer) {
|
||||
currentArpeggioFrame = 0;
|
||||
}
|
||||
noteNumber = noteBuffer[currentArpeggioFrame];
|
||||
|
||||
while (arpeggioFrameTimer >= arpeggioFrameLength)
|
||||
{
|
||||
arpeggioFrameTimer -= arpeggioFrameLength;
|
||||
}
|
||||
}
|
||||
}
|
||||
};
|
||||
|
Reference in New Issue
Block a user