private void StopSongPreview() { StopAllCoroutines(); songAudioPlayer.PauseAudio(); isFadeInStarted = false; songVideoPlayer.gameObject.SetActive(false); }
private void OnBack(InputAction.CallbackContext context) { if (songEditorSceneControl.IsAnyDialogOpen) { songEditorSceneControl.CloseAllOpenDialogs(); } else if (songEditorSideBarControl.IsAnySideBarContainerVisible) { songEditorSideBarControl.HideSideBarContainers(); } else if (songAudioPlayer.IsPlaying) { songAudioPlayer.PauseAudio(); } else if (selectionControl.HasSelectedNotes()) { selectionControl.ClearSelection(); } else if (AnyInputFieldHasFocus()) { // Deselect TextArea eventSystem.SetSelectedGameObject(null); } else if (!inputFieldHasFocusOld) { // Special case: the back-Action in an InputField removes its focus. // Thus also check that in the previous frame no InputField was focused. songEditorSceneControl.ReturnToLastScene(); } }
public void StopSongPreview() { StopAllCoroutines(); songAudioPlayer.PauseAudio(); isFadeInStarted = false; songRouletteControl.SongEntryControls.ForEach(it => it.SongPreviewVideoImage.HideByDisplay()); songRouletteControl.SongEntryControls.ForEach(it => it.SongPreviewBackgroundImage.HideByDisplay()); }
public void TogglePlayPause() { if (songAudioPlayer.IsPlaying) { songAudioPlayer.PauseAudio(); } else { songAudioPlayer.PlayAudio(); } }
public void TogglePlayPause() { if (songAudioPlayer.IsPlaying) { pauseOverlay.SetActive(true); songAudioPlayer.PauseAudio(); } else { pauseOverlay.SetActive(false); songAudioPlayer.PlayAudio(); } }
private void OnBack(InputAction.CallbackContext context) { if (songAudioPlayer.IsPlaying) { songAudioPlayer.PauseAudio(); } else if (!inputFieldHasFocusOld) { // Special case: the back-Action in an InputField removes its focus. // Thus also check that in the previous frame no InputField was focused. songEditorSceneController.ReturnToLastScene(); } }
void Update() { // Automatically stop playback after a given threshold (e.g. only play the selected notes) if (songAudioPlayer.IsPlaying && StopPlaybackAfterPositionInSongInMillis > 0 && songAudioPlayer.PositionInSongInMillis > StopPlaybackAfterPositionInSongInMillis) { songAudioPlayer.PauseAudio(); StopPlaybackAfterPositionInSongInMillis = 0; } // Create the audio waveform image if not done yet. if (!audioWaveFormInitialized && songAudioPlayer.HasAudioClip && songAudioPlayer.AudioClip.samples > 0) { using (new DisposableStopwatch($"Created audio waveform in <millis> ms")) { // For drawing the waveform, the AudioClip must not be streamed. All data must have been fully loaded. AudioClip audioClip = AudioManager.Instance.LoadAudioClip(SongMetaUtils.GetAbsoluteSongAudioPath(SongMeta), false); audioWaveFormInitialized = true; audioWaveFormVisualizer.DrawWaveFormMinAndMaxValues(audioClip); } } }
void Update() { // Jump to last position in song when playback stops if (songAudioPlayer.IsPlaying) { if (!lastIsPlaying) { positionInSongInMillisWhenPlaybackStarted = songAudioPlayer.PositionInSongInMillis; } } else { if (lastIsPlaying) { songAudioPlayer.PositionInSongInMillis = positionInSongInMillisWhenPlaybackStarted; } } lastIsPlaying = songAudioPlayer.IsPlaying; // Automatically stop playback after a given threshold (e.g. only play the selected notes) if (songAudioPlayer.IsPlaying && StopPlaybackAfterPositionInSongInMillis > 0 && songAudioPlayer.PositionInSongInMillis > StopPlaybackAfterPositionInSongInMillis) { songAudioPlayer.PauseAudio(); StopPlaybackAfterPositionInSongInMillis = 0; } // Create the audio waveform image if not done yet. if (!audioWaveFormInitialized && songAudioPlayer.HasAudioClip && songAudioPlayer.AudioClip.samples > 0) { using (new DisposableStopwatch($"Created audio waveform in <millis> ms")) { audioWaveFormInitialized = true; audioWaveFormVisualizer.DrawWaveFormMinAndMaxValues(songAudioPlayer.AudioClip); } } }
public void Update() { // Detect isAnyKeyUp isAnyKeyUp = false; if (Input.anyKey) { isAnyKey = true; } else if (isAnyKey) { isAnyKey = false; isAnyKeyUp = true; } bool inputFieldHasFocus = GameObjectUtils.InputFieldHasFocus(eventSystem); if (inputFieldHasFocus) { inputFieldHasFocusOld = true; return; } EKeyboardModifier modifier = InputUtils.GetCurrentKeyboardModifier(); // Jump to start / end of song, via Home (Pos1 on German keyboard) / End if (Input.GetKeyUp(KeyCode.Home)) { songAudioPlayer.PositionInSongInMillis = 0; } if (Input.GetKeyUp(KeyCode.End)) { songAudioPlayer.PositionInSongInMillis = songAudioPlayer.DurationOfSongInMillis - 1; } // Play / pause via Space or P bool isPlayPauseButtonUp = Input.GetKeyUp(KeyCode.Space) || Input.GetKeyUp(KeyCode.P); if (isPlayPauseButtonUp && modifier == EKeyboardModifier.None) { ToggleAudioPlayPause(); } // Play only the selected notes via Ctrl+Space or Ctrl+P if (isPlayPauseButtonUp && modifier == EKeyboardModifier.Ctrl) { List <Note> selectedNotes = selectionController.GetSelectedNotes(); PlayAudioInRangeOfNotes(selectedNotes); } // Stop playback or return to SingScene via Escape if (Input.GetKeyDown(KeyCode.Escape)) { if (songAudioPlayer.IsPlaying) { songAudioPlayer.PauseAudio(); } else if (!inputFieldHasFocusOld) { // Special case: the Escape key in an InputField removes its focus on key down. // Thus also check that in the previous frame no InputField was focused. songEditorSceneController.ContinueToSingScene(); } } // Select all notes via Ctrl+A if (Input.GetKeyUp(KeyCode.A) && modifier == EKeyboardModifier.Ctrl) { selectionController.SelectAll(); } // Delete notes if (Input.GetKeyUp(KeyCode.Delete)) { List <Note> selectedNotes = selectionController.GetSelectedNotes(); deleteNotesAction.ExecuteAndNotify(selectedNotes); } // Undo via Ctrl+Z if (Input.GetKeyUp(KeyCode.Z) && modifier == EKeyboardModifier.Ctrl) { historyManager.Undo(); } // Redo via Ctrl+Y if (Input.GetKeyUp(KeyCode.Y) && modifier == EKeyboardModifier.Ctrl) { historyManager.Redo(); } // Save via Ctrl+S if (Input.GetKeyUp(KeyCode.S) && modifier == EKeyboardModifier.Ctrl) { songEditorSceneController.SaveSong(); } // Tab to select next note, Shift+Tab to select previous note if (Input.GetKeyUp(KeyCode.Tab)) { if (modifier == EKeyboardModifier.None) { selectionController.SelectNextNote(); } else if (modifier == EKeyboardModifier.Shift) { selectionController.SelectPreviousNote(); } } // Start editing of lyrics with F2 if (Input.GetKeyUp(KeyCode.F2)) { List <Note> selectedNotes = selectionController.GetSelectedNotes(); if (selectedNotes.Count == 1) { Note selectedNote = selectedNotes.FirstOrDefault(); EditorUiNote uiNote = editorNoteDisplayer.GetUiNoteForNote(selectedNote); if (uiNote != null) { uiNote.StartEditingNoteText(); } } } // Change position in song with Ctrl+ArrowKey if (!songAudioPlayer.IsPlaying) { if (Input.GetKey(KeyCode.LeftArrow) && modifier == EKeyboardModifier.Ctrl) { songAudioPlayer.PositionInSongInMillis -= 1; } if (Input.GetKey(KeyCode.RightArrow) && modifier == EKeyboardModifier.Ctrl) { songAudioPlayer.PositionInSongInMillis += 1; } } // Make golden / freestyle / normal UpdateInputToChangeNoteType(modifier); // Move and stretch notes UpdateInputToMoveAndStretchNotes(modifier); // Scroll and zoom in NoteArea UpdateInputToScrollAndZoom(modifier); // Use the shortcuts that are also used in the YASS song editor. UpdateInputForYassShortcuts(modifier); inputFieldHasFocusOld = inputFieldHasFocus; }
public void Update() { EKeyboardModifier modifier = InputUtils.GetCurrentKeyboardModifier(); // Play / pause via Space if (Input.GetKeyUp(KeyCode.Space) && !InputFieldHasFocus()) { ToggleAudioPlayPause(); } // Stop via Escape if (Input.GetKeyUp(KeyCode.Escape)) { songAudioPlayer.PauseAudio(); } // Delete notes if (Input.GetKeyUp(KeyCode.Delete)) { List <Note> selectedNotes = selectionController.GetSelectedNotes(); deleteNotesAction.ExecuteAndNotify(selectedNotes); } // Undo via Ctrl+Z if (Input.GetKeyUp(KeyCode.Z) && modifier == EKeyboardModifier.Ctrl) { historyManager.Undo(); } // Redo via Ctrl+Y if (Input.GetKeyUp(KeyCode.Y) && modifier == EKeyboardModifier.Ctrl) { historyManager.Redo(); } // Save via Ctrl+S if (Input.GetKeyUp(KeyCode.S) && modifier == EKeyboardModifier.Ctrl) { songEditorSceneController.SaveSong(); } // Tab to select next note, Shift+Tab to select previous note if (Input.GetKeyUp(KeyCode.Tab)) { if (modifier == EKeyboardModifier.None) { selectionController.SelectNextNote(); } else if (modifier == EKeyboardModifier.Shift) { selectionController.SelectPreviousNote(); } } // Start editing of lyrics with F2 if (Input.GetKeyUp(KeyCode.F2)) { List <Note> selectedNotes = selectionController.GetSelectedNotes(); if (selectedNotes.Count == 1) { Note selectedNote = selectedNotes.FirstOrDefault(); EditorUiNote uiNote = editorNoteDisplayer.GetUiNoteForNote(selectedNote); if (uiNote != null) { uiNote.StartEditingNoteText(); } } } // Change position in song with Ctrl+ArrowKey if (!songAudioPlayer.IsPlaying) { if (Input.GetKey(KeyCode.LeftArrow) && modifier == EKeyboardModifier.Ctrl && !InputFieldHasFocus()) { songAudioPlayer.PositionInSongInMillis -= 1; } if (Input.GetKey(KeyCode.RightArrow) && modifier == EKeyboardModifier.Ctrl && !InputFieldHasFocus()) { songAudioPlayer.PositionInSongInMillis += 1; } } // Move and stretch notes UpdateInputToMoveAndStretchNotes(modifier); // Scroll and zoom in NoteArea UpdateInputToScrollAndZoom(modifier); }
public void Update() { // Detect isAnyKeyUp isAnyKeyUp = false; if (Input.anyKey) { isAnyKey = true; } else if (isAnyKey) { isAnyKey = false; isAnyKeyUp = true; } if (GameObjectUtils.InputFieldHasFocus(eventSystem)) { return; } EKeyboardModifier modifier = InputUtils.GetCurrentKeyboardModifier(); // Play / pause via Space or P bool isPlayPauseButtonUp = Input.GetKeyUp(KeyCode.Space) || Input.GetKeyUp(KeyCode.P); if (isPlayPauseButtonUp && modifier == EKeyboardModifier.None) { ToggleAudioPlayPause(); } // Play only the selected notes via Ctrl+Space or Ctrl+P if (isPlayPauseButtonUp && modifier == EKeyboardModifier.Ctrl) { List <Note> selectedNotes = selectionController.GetSelectedNotes(); PlayAudioInRangeOfNotes(selectedNotes); } // Stop via Escape if (Input.GetKeyUp(KeyCode.Escape)) { songAudioPlayer.PauseAudio(); } // Select all notes via Ctrl+A if (Input.GetKeyUp(KeyCode.A) && modifier == EKeyboardModifier.Ctrl) { selectionController.SelectAll(); } // Delete notes if (Input.GetKeyUp(KeyCode.Delete)) { List <Note> selectedNotes = selectionController.GetSelectedNotes(); deleteNotesAction.ExecuteAndNotify(selectedNotes); } // Undo via Ctrl+Z if (Input.GetKeyUp(KeyCode.Z) && modifier == EKeyboardModifier.Ctrl) { historyManager.Undo(); } // Redo via Ctrl+Y if (Input.GetKeyUp(KeyCode.Y) && modifier == EKeyboardModifier.Ctrl) { historyManager.Redo(); } // Save via Ctrl+S if (Input.GetKeyUp(KeyCode.S) && modifier == EKeyboardModifier.Ctrl) { songEditorSceneController.SaveSong(); } // Tab to select next note, Shift+Tab to select previous note if (Input.GetKeyUp(KeyCode.Tab)) { if (modifier == EKeyboardModifier.None) { selectionController.SelectNextNote(); } else if (modifier == EKeyboardModifier.Shift) { selectionController.SelectPreviousNote(); } } // Start editing of lyrics with F2 if (Input.GetKeyUp(KeyCode.F2)) { List <Note> selectedNotes = selectionController.GetSelectedNotes(); if (selectedNotes.Count == 1) { Note selectedNote = selectedNotes.FirstOrDefault(); EditorUiNote uiNote = editorNoteDisplayer.GetUiNoteForNote(selectedNote); if (uiNote != null) { uiNote.StartEditingNoteText(); } } } // Change position in song with Ctrl+ArrowKey if (!songAudioPlayer.IsPlaying) { if (Input.GetKey(KeyCode.LeftArrow) && modifier == EKeyboardModifier.Ctrl) { songAudioPlayer.PositionInSongInMillis -= 1; } if (Input.GetKey(KeyCode.RightArrow) && modifier == EKeyboardModifier.Ctrl) { songAudioPlayer.PositionInSongInMillis += 1; } } // Move and stretch notes UpdateInputToMoveAndStretchNotes(modifier); // Scroll and zoom in NoteArea UpdateInputToScrollAndZoom(modifier); // Use the shortcuts that are also used in the YASS song editor. UpdateInputForYassShortcuts(modifier); }