private void PrepareFirstMusicCue(MusicTreeAsset musicTree) { nextCueNode = musicTreeRuntime.SelectNextPatch(); double initTime = musicController.Init(nextCueNode.clip); counter.UpdateClipVariables(initTime, musicTree.defaultBPM, musicController.Frequency); }
void OnGUI() { EditorGUI.BeginChangeCheck(); treeFieldValue = EditorGUILayout.ObjectField(treeFieldValue, typeof(MusicTreeAsset), false) as MusicTreeAsset; if (EditorGUI.EndChangeCheck()) { MusicTreeEditorManager.Instance.OnSelectedTreeChanged(treeFieldValue); } if (drawer == null) { return; } EditorGUILayout.BeginHorizontal(); DrawSidebar(); using (var scrollview = new EditorGUILayout.ScrollViewScope(scrollPos)) { drawer.Update(); scrollPos = scrollview.scrollPosition; } EditorGUILayout.EndHorizontal(); }
public static float DurationInBeats(CueMusicTreeNode node, MusicTreeAsset tree) { int bpm = BPMFor(node, tree); float result = node.clip.length / 60 * bpm; result = RoundBeat(result); return(result); }
public void OnSelectedTreeChanged(MusicTreeAsset a) { TreeAsset = a; if (SelectedTreeAssetChanged != null) { SelectedTreeAssetChanged(TreeAsset); } OnChangesToTreeHierarchy(); }
public static float DurationInBeats(CueMusicTreeNode node, MusicTreeAsset tree) { int bpm = BPMFor(node, tree); float result = node.clip == null ? 0 : node.clip.length / 60 * bpm; float f = result % .25f; result -= f; if (f > .125) { result += .25f; } return(result); }
public AmusiEngine(MusicTreeAsset musicTree, AudioSource[] audioSources) { this.musicTree = musicTree; Instance = this; if (InstanceChanged != null) { InstanceChanged(); } InitializeMusicController(audioSources); counter = new BeatCounter(); musicTreeRuntime = CachedMusicTree.CreateFrom(musicTree); checker = new NoteEventChecker(musicTreeRuntime); PrepareFirstMusicCue(musicTree); }
public static int BPMFor(CueMusicTreeNode node, MusicTreeAsset tree) { return(node.useCustomBPM ? node.customBPM : tree.defaultBPM); }
public static void CreateEmptyTree() { MusicTreeAsset.CreateEmpty(); }