private IEnumerator CreateNextInputWindow(AudioClip audioClip, double intervalUntilScheduledTime) { yield return(new WaitForSecondsRealtime((float)intervalUntilScheduledTime)); int clipID = soundLibrary.GetIDFromClip(audioClip); KeyCode keyCode = AudioKeyCodeConstants.GetKeyCodeFromID(clipID); if (activeInputWindow != null) { activeInputWindow.OnWindowShutEvent -= OnWindowShut; activeInputWindow.OnButtonPressedEvent -= OnButtonPressed; activeInputWindow.Deactivate(); } if (clipID >= soundLibrary.IndexOfFirstCue) { beatVisualizer.WindowOpened(); Debug.Log("Creating Input Window"); activeInputWindow = new InputWindow(audioClip, keyCode, AudioSettings.dspTime + audioClip.length, inputSystem, updateCallback); activeInputWindow.OnWindowShutEvent += OnWindowShut; activeInputWindow.OnButtonPressedEvent += OnButtonPressed; } else { activeInputWindow = null; } }