MCPcopy Create free account
hub / github.com/BespokeSynth/BespokeSynth / GetSyncedStep

Method GetSyncedStep

Source/Transport.cpp:519–544  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

517}
518
519int Transport::GetSyncedStep(double time, ITimeListener* listener, const TransportListenerInfo* listenerInfo, int length)
520{
521 double offsetMs;
522 if (listenerInfo->mOffsetInfo.mOffsetIsInMs)
523 offsetMs = listenerInfo->mOffsetInfo.mOffset;
524 else
525 offsetMs = listenerInfo->mOffsetInfo.mOffset * MsPerBar();
526
527 int step;
528 if (GetMeasureFraction(listenerInfo->mInterval) < 1)
529 {
530 int stepsPerMeasure = GetStepsPerMeasure(listener);
531 int measure = GetMeasure(time + offsetMs);
532 step = GetQuantized(time, listenerInfo) + measure * stepsPerMeasure; //GetQuantized() handles offset internally
533 }
534 else
535 {
536 int measure = GetMeasure(time + offsetMs);
537 step = int(measure / GetMeasureFraction(listenerInfo->mInterval));
538 }
539
540 if (length > 0)
541 step %= length;
542
543 return step;
544}
545
546double Transport::GetDuration(NoteInterval interval)
547{

Callers 10

GetStepMethod · 0.80
OnStepMethod · 0.80
OnTimeEventMethod · 0.80
StepMethod · 0.80
StepMethod · 0.80
StepByMethod · 0.80
GetArpIndexMethod · 0.80
StepMethod · 0.80
StepMethod · 0.80
StepMethod · 0.80

Calls

no outgoing calls

Tested by 1

StepMethod · 0.64