public void Seek(int milliseconds)
{
var targetSampleTime = (int)(Synth.SampleRate * (milliseconds / 1000.0));
if (targetSampleTime > CurrentTime)
{//process forward
SilentProcess(targetSampleTime - CurrentTime);
}
else if (targetSampleTime < CurrentTime)
{//we have to restart the midi to make sure we get the right state: instruments, volume, pan, etc
CurrentTime = 0;
_eventIndex = 0;
Synth.NoteOffAll(true);
Synth.ResetPrograms();
Synth.ResetSynthControls();
SilentProcess(targetSampleTime);
}
}