public override void StartScheduled(double dspTime) { if (reference != IntPtr.Zero) { syncTime = dspTime; const float lookaheadTime = 0.5f; double waitTime = dspTime - AudioSettings.dspTime; Native.SyncSequencerStart(reference, waitTime); float waitToEnable = (float)(waitTime - lookaheadTime); Invoke("EnableComponent", waitToEnable); } }
void Awake() { InitNoteRows(); CreateNativeSequencer(); Native.ChangeSequencerChannel(reference, channel); Native.ChangeSequencerLength(reference, length); for (int i = 0; i < allNotes.Length; ++i) { foreach (Note note in allNotes[i].notes) { note.TryCreate(); } } AllNotesOff(); Native.SyncSequencerStart(reference, 0.0); syncTime = AudioSettings.dspTime; }