diff --git a/Assets/Scenes/Editor.unity b/Assets/Scenes/Editor.unity index 046c0aec..0668d4e2 100644 --- a/Assets/Scenes/Editor.unity +++ b/Assets/Scenes/Editor.unity @@ -1121,22 +1121,6 @@ MonoBehaviour: m_StringArgument: m_BoolArgument: 0 m_CallState: 2 - - eventID: 3 - callback: - m_PersistentCalls: - m_Calls: - - m_Target: {fileID: 798021450} - m_TargetAssemblyTypeName: RhythmHeavenMania.Editor.TimelineEventObj, Assembly-CSharp - m_MethodName: OnRightUp - m_Mode: 1 - m_Arguments: - m_ObjectArgument: {fileID: 0} - m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine - m_IntArgument: 0 - m_FloatArgument: 0 - m_StringArgument: - m_BoolArgument: 0 - m_CallState: 2 - eventID: 0 callback: m_PersistentCalls: @@ -1946,7 +1930,7 @@ GameObject: m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 - m_IsActive: 1 + m_IsActive: 0 --- !u!224 &321288860 RectTransform: m_ObjectHideFlags: 0 @@ -3712,7 +3696,19 @@ MonoBehaviour: m_TargetGraphic: {fileID: 678553527} m_OnClick: m_PersistentCalls: - m_Calls: [] + m_Calls: + - m_Target: {fileID: 1423699437} + m_TargetAssemblyTypeName: RhythmHeavenMania.Editor.Editor, Assembly-CSharp + m_MethodName: DebugSave + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 --- !u!114 &678553527 MonoBehaviour: m_ObjectHideFlags: 0 @@ -4363,7 +4359,7 @@ GameObject: m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 - m_IsActive: 0 + m_IsActive: 1 --- !u!224 &798021449 RectTransform: m_ObjectHideFlags: 0 @@ -4409,6 +4405,8 @@ MonoBehaviour: selectedImage: {fileID: 2127582758} outline: {fileID: 1231936949} resizeGraphic: {fileID: 880758902} + leftDrag: {fileID: 2046851080} + rightDrag: {fileID: 184364176} length: 0 selected: 0 mouseHovering: 0 @@ -5251,7 +5249,7 @@ GameObject: m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 - m_IsActive: 1 + m_IsActive: 0 --- !u!224 &1031646381 RectTransform: m_ObjectHideFlags: 0 @@ -7410,7 +7408,7 @@ GameObject: m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 - m_IsActive: 1 + m_IsActive: 0 --- !u!224 &1474986788 RectTransform: m_ObjectHideFlags: 0 @@ -9486,7 +9484,7 @@ GameObject: m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 - m_IsActive: 1 + m_IsActive: 0 --- !u!224 &1921041735 RectTransform: m_ObjectHideFlags: 0 @@ -10118,22 +10116,6 @@ MonoBehaviour: m_StringArgument: m_BoolArgument: 0 m_CallState: 2 - - eventID: 3 - callback: - m_PersistentCalls: - m_Calls: - - m_Target: {fileID: 798021450} - m_TargetAssemblyTypeName: RhythmHeavenMania.Editor.TimelineEventObj, Assembly-CSharp - m_MethodName: OnLeftUp - m_Mode: 1 - m_Arguments: - m_ObjectArgument: {fileID: 0} - m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine - m_IntArgument: 0 - m_FloatArgument: 0 - m_StringArgument: - m_BoolArgument: 0 - m_CallState: 2 - eventID: 0 callback: m_PersistentCalls: diff --git a/Assets/Scripts/LevelEditor/BoxSelection.cs b/Assets/Scripts/LevelEditor/BoxSelection.cs index 23e57508..29093915 100644 --- a/Assets/Scripts/LevelEditor/BoxSelection.cs +++ b/Assets/Scripts/LevelEditor/BoxSelection.cs @@ -128,7 +128,7 @@ namespace RhythmHeavenMania.Editor { int selected = 0; - if (!Input.GetKeyDown(KeyCode.LeftShift)) Selections.instance.DeselectAll(); + // if (!Input.GetKeyDown(KeyCode.LeftShift)) Selections.instance.DeselectAll(); for (int i = 0; i < GameManager.instance.Beatmap.entities.Count; i++) { TimelineEventObj e = GameManager.instance.Beatmap.entities[i].eventObj; diff --git a/Assets/Scripts/LevelEditor/Editor.cs b/Assets/Scripts/LevelEditor/Editor.cs index 4fd7a48f..3f89301f 100644 --- a/Assets/Scripts/LevelEditor/Editor.cs +++ b/Assets/Scripts/LevelEditor/Editor.cs @@ -92,6 +92,15 @@ namespace RhythmHeavenMania.Editor Debug.Log(json); } + public void DebugSave() + { + // temp + string path = UnityEditor.AssetDatabase.GetAssetPath(GameManager.instance.txt); + path = Application.dataPath.Remove(Application.dataPath.Length - 6, 6) + path; + System.IO.File.WriteAllText(path, JsonConvert.SerializeObject(GameManager.instance.Beatmap)); + Debug.Log("Saved to " + path); + } + public void SetGameEventTitle(string txt) { GameEventSelectorTitle.text = txt; diff --git a/Assets/Scripts/LevelEditor/TimelineEventObj.cs b/Assets/Scripts/LevelEditor/TimelineEventObj.cs index 0bae0697..a656cf05 100644 --- a/Assets/Scripts/LevelEditor/TimelineEventObj.cs +++ b/Assets/Scripts/LevelEditor/TimelineEventObj.cs @@ -23,6 +23,8 @@ namespace RhythmHeavenMania.Editor [SerializeField] private Image selectedImage; [SerializeField] private RectTransform outline; [SerializeField] private RectTransform resizeGraphic; + [SerializeField] private RectTransform leftDrag; + [SerializeField] private RectTransform rightDrag; [Header("Properties")] private Beatmap.Entity entity; @@ -34,6 +36,9 @@ namespace RhythmHeavenMania.Editor public bool resizable; public bool resizing; public bool moving; + private bool resizingLeft; + private bool resizingRight; + private bool inResizeRegion; [Header("Colors")] public Color NormalCol; @@ -106,7 +111,7 @@ namespace RhythmHeavenMania.Editor { if (Input.GetMouseButtonUp(0) && Timeline.instance.CheckIfMouseInTimeline()) { - if (!mouseHovering && !moving && !BoxSelection.instance.selecting) + if (Timeline.instance.eventObjs.FindAll(c => c.mouseHovering).Count == 0 && Timeline.instance.eventObjs.FindAll(c => c.moving).Count == 0 && !BoxSelection.instance.selecting && Timeline.instance.eventObjs.FindAll(c => c.resizing).Count == 0) { if (!Input.GetKey(KeyCode.LeftShift)) { @@ -116,7 +121,8 @@ namespace RhythmHeavenMania.Editor OnUp(); } - if (moving && selected) + + if (Timeline.instance.eventObjs.FindAll(c => c.moving).Count > 0 && selected) { Vector3 mousePos = Camera.main.ScreenToWorldPoint(Input.mousePosition); @@ -129,7 +135,51 @@ namespace RhythmHeavenMania.Editor lastPos = this.transform.localPosition; } } + else if (resizingLeft) + { + SetPivot(new Vector2(1, rectTransform.pivot.y)); + Vector2 sizeDelta = rectTransform.sizeDelta; + Vector2 mousePos; + RectTransformUtility.ScreenPointToLocalPointInRectangle(rectTransform, Input.mousePosition, Camera.main, out mousePos); + + sizeDelta = new Vector2(-mousePos.x + 0.15f, sizeDelta.y); + sizeDelta = new Vector2(Mathf.Clamp(sizeDelta.x, 0.25f, rectTransform.localPosition.x), sizeDelta.y); + + rectTransform.sizeDelta = new Vector2(Mathp.Round2Nearest(sizeDelta.x, 0.25f), sizeDelta.y); + SetPivot(new Vector2(0, rectTransform.pivot.y)); + OnComplete(); + } + else if (resizingRight) + { + Vector2 sizeDelta = rectTransform.sizeDelta; + + Vector2 mousePos; + RectTransformUtility.ScreenPointToLocalPointInRectangle(rectTransform, Input.mousePosition, Camera.main, out mousePos); + + sizeDelta = new Vector2(mousePos.x + 0.15f, sizeDelta.y); + sizeDelta = new Vector2(Mathf.Clamp(sizeDelta.x, 0.25f, Mathf.Infinity), sizeDelta.y); + + rectTransform.sizeDelta = new Vector2(Mathp.Round2Nearest(sizeDelta.x, 0.25f), sizeDelta.y); + SetPivot(new Vector2(0, rectTransform.pivot.y)); + OnComplete(); + } + + if (Input.GetMouseButtonUp(0)) + { + OnLeftUp(); + OnRightUp(); + } + + if (resizing && selected || inResizeRegion && selected) + { + if (resizable) + Cursor.SetCursor(Resources.Load("Cursors/horizontal_resize"), new Vector2(8, 8), CursorMode.Auto); + } + else if (Timeline.instance.eventObjs.FindAll(c => c.inResizeRegion).Count == 0 && Timeline.instance.eventObjs.FindAll(c => c.resizing).Count == 0) + { + Cursor.SetCursor(null, Vector2.zero, CursorMode.Auto); + } } #region ClickEvents @@ -142,21 +192,28 @@ namespace RhythmHeavenMania.Editor } else { - Selections.instance.ClickSelect(this); + if (!selected) + { + Selections.instance.ClickSelect(this); + } } } public void OnDown() { - if (!selected) return; + if (selected) + { + for (int i = 0; i < Timeline.instance.eventObjs.Count; i++) + { + Vector3 mousePos = Camera.main.ScreenToWorldPoint(Input.mousePosition); + Timeline.instance.eventObjs[i].startPosX = mousePos.x - Timeline.instance.eventObjs[i].transform.position.x; + Timeline.instance.eventObjs[i].startPosY = mousePos.y - Timeline.instance.eventObjs[i].transform.position.y; + } - Vector3 mousePos = Camera.main.ScreenToWorldPoint(Input.mousePosition); - startPosX = mousePos.x - this.transform.position.x; - startPosY = mousePos.y - this.transform.position.y; + moving = true; - moving = true; - - OnComplete(); + OnComplete(); + } } public void OnUp() @@ -185,68 +242,55 @@ namespace RhythmHeavenMania.Editor public void DragEnter() { - Cursor.SetCursor(Resources.Load("Cursors/horizontal_resize"), new Vector2(8, 8), CursorMode.Auto); + inResizeRegion = true; } public void DragExit() { - Cursor.SetCursor(null, Vector2.zero, CursorMode.Auto); + inResizeRegion = false; } public void OnLeftDown() { - SetPivot(new Vector2(1, rectTransform.pivot.y)); - resizing = true; - } - - public void DragLeft() - { - if (!resizing) return; - - Vector2 sizeDelta = rectTransform.sizeDelta; - - Vector2 mousePos; - RectTransformUtility.ScreenPointToLocalPointInRectangle(rectTransform, Input.mousePosition, Camera.main, out mousePos); - - sizeDelta = new Vector2(-mousePos.x + 0.1f, sizeDelta.y); - sizeDelta = new Vector2(Mathf.Clamp(sizeDelta.x, 0.25f, rectTransform.localPosition.x), sizeDelta.y); - - rectTransform.sizeDelta = new Vector2(Mathp.Round2Nearest(sizeDelta.x, 0.25f), sizeDelta.y); - - OnComplete(); + if (resizable && selected) + { + ResetResize(); + resizing = true; + resizingLeft = true; + } } public void OnLeftUp() { - SetPivot(new Vector2(0, rectTransform.pivot.y)); - resizing = false; + if (resizable && selected) + { + ResetResize(); + } } + public void OnRightDown() { - SetPivot(new Vector2(0, rectTransform.pivot.y)); - resizing = true; - } - - public void DragRight() - { - if (!resizing) return; - - Vector2 sizeDelta = rectTransform.sizeDelta; - - Vector2 mousePos; - RectTransformUtility.ScreenPointToLocalPointInRectangle(rectTransform, Input.mousePosition, Camera.main, out mousePos); - - sizeDelta = new Vector2(mousePos.x, sizeDelta.y); - sizeDelta = new Vector2(Mathf.Clamp(sizeDelta.x, 0.25f, Mathf.Infinity), sizeDelta.y); - - rectTransform.sizeDelta = new Vector2(Mathp.Round2Nearest(sizeDelta.x, 0.25f), sizeDelta.y); - - OnComplete(); + if (resizable && selected) + { + ResetResize(); + resizing = true; + resizingRight = true; + } } public void OnRightUp() { + if (resizable && selected) + { + ResetResize(); + } + } + + private void ResetResize() + { + resizingLeft = false; + resizingRight = false; resizing = false; } diff --git a/Assets/karatekacombos.json b/Assets/karatekacombos.json index 527a42af..cf58a0ef 100644 --- a/Assets/karatekacombos.json +++ b/Assets/karatekacombos.json @@ -1 +1 @@ -{"bpm":180.0,"entities":[{"beat":2.0,"track":2,"length":26.0,"datamodel":"karateman/bop"},{"beat":8.0,"track":2,"length":1.0,"datamodel":"karateman/prepare"},{"beat":8.0,"track":3,"length":2.0,"datamodel":"karateman/pot"},{"beat":16.0,"track":3,"length":2.0,"datamodel":"karateman/pot"},{"beat":16.0,"track":2,"length":1.0,"datamodel":"karateman/prepare"},{"beat":24.0,"track":3,"length":1.0,"datamodel":"karateman/prepare"},{"beat":24.0,"track":3,"length":2.0,"datamodel":"karateman/pot"},{"beat":28.0,"track":2,"length":1.0,"datamodel":"karateman/prepare"},{"beat":28.0,"track":1,"length":2.0,"datamodel":"karateman/pot"},{"beat":28.5,"track":1,"length":1.0,"datamodel":"karateman/hit3"},{"beat":30.0,"track":0,"length":2.0,"datamodel":"karateman/pot"},{"beat":30.0,"track":1,"length":1.0,"datamodel":"karateman/prepare"},{"beat":31.0,"track":0,"length":2.0,"datamodel":"karateman/pot"},{"beat":32.0,"track":0,"length":2.0,"datamodel":"karateman/rock"},{"beat":34.0,"track":2,"length":12.0,"datamodel":"karateman/bop"},{"beat":34.0,"track":0,"length":2.0,"datamodel":"karateman/pot"},{"beat":36.0,"track":3,"length":2.0,"datamodel":"karateman/pot"},{"beat":38.0,"track":3,"length":2.0,"datamodel":"karateman/pot"},{"beat":40.0,"track":0,"length":2.0,"datamodel":"karateman/pot"},{"beat":42.0,"track":3,"length":2.0,"datamodel":"karateman/pot"},{"beat":44.0,"track":0,"length":2.0,"datamodel":"karateman/pot"},{"beat":44.5,"track":0,"length":1.0,"datamodel":"karateman/hit3"},{"beat":46.0,"track":3,"length":2.0,"datamodel":"karateman/pot"},{"beat":46.0,"track":1,"length":1.0,"datamodel":"karateman/prepare"},{"beat":47.0,"track":3,"length":2.0,"datamodel":"karateman/pot"},{"beat":48.0,"track":2,"length":2.0,"datamodel":"karateman/rock"},{"beat":50.0,"track":2,"length":48.0,"datamodel":"karateman/bop"},{"beat":50.0,"track":1,"length":2.0,"datamodel":"karateman/pot"},{"beat":52.0,"track":0,"length":2.0,"datamodel":"karateman/pot"},{"beat":54.0,"track":3,"length":2.0,"datamodel":"karateman/pot"},{"beat":56.0,"track":1,"length":2.0,"datamodel":"karateman/pot"},{"beat":58.0,"track":2,"length":2.0,"datamodel":"karateman/pot"},{"beat":60.0,"track":3,"length":2.0,"datamodel":"karateman/pot"},{"beat":62.0,"track":3,"length":2.0,"datamodel":"karateman/pot"},{"beat":64.0,"track":0,"length":2.0,"datamodel":"karateman/pot"},{"beat":66.0,"track":2,"length":2.0,"datamodel":"karateman/pot"},{"beat":68.0,"track":3,"length":2.0,"datamodel":"karateman/pot"},{"beat":70.0,"track":2,"length":2.0,"datamodel":"karateman/pot"},{"beat":72.0,"track":3,"length":2.0,"datamodel":"karateman/pot"},{"beat":74.0,"track":1,"length":2.0,"datamodel":"karateman/pot"},{"beat":76.0,"track":2,"length":2.0,"datamodel":"karateman/pot"},{"beat":78.0,"track":3,"length":2.0,"datamodel":"karateman/pot"},{"beat":80.0,"track":3,"length":2.0,"datamodel":"karateman/pot"},{"beat":82.0,"track":0,"length":2.0,"datamodel":"karateman/pot"},{"beat":84.0,"track":3,"length":2.0,"datamodel":"karateman/pot"},{"beat":86.0,"track":1,"length":2.0,"datamodel":"karateman/pot"},{"beat":88.0,"track":2,"length":2.0,"datamodel":"karateman/pot"},{"beat":90.0,"track":1,"length":2.0,"datamodel":"karateman/pot"},{"beat":92.0,"track":3,"length":2.0,"datamodel":"karateman/bulb"},{"beat":94.0,"track":2,"length":4.0,"datamodel":"karateman/combo"},{"beat":98.0,"track":0,"length":2.0,"datamodel":"karateman/pot"},{"beat":98.0,"track":2,"length":0.5,"datamodel":"karateman/bop"},{"beat":99.5,"track":1,"length":0.5,"datamodel":"karateman/bop"},{"beat":99.5,"track":3,"length":2.0,"datamodel":"karateman/pot"},{"beat":102.0,"track":2,"length":2.0,"datamodel":"karateman/pot"},{"beat":102.0,"track":1,"length":0.5,"datamodel":"karateman/bop"},{"beat":103.5,"track":2,"length":2.0,"datamodel":"karateman/pot"},{"beat":103.5,"track":1,"length":0.5,"datamodel":"karateman/bop"},{"beat":106.0,"track":3,"length":5.0,"datamodel":"karateman/bop"},{"beat":106.0,"track":0,"length":2.0,"datamodel":"karateman/pot"},{"beat":108.0,"track":0,"length":2.0,"datamodel":"karateman/pot"},{"beat":110.0,"track":0,"length":2.0,"datamodel":"karateman/pot"},{"beat":111.5,"track":1,"length":2.0,"datamodel":"karateman/pot"},{"beat":114.0,"track":2,"length":2.0,"datamodel":"karateman/pot"},{"beat":114.0,"track":3,"length":0.5,"datamodel":"karateman/bop"},{"beat":115.5,"track":2,"length":2.0,"datamodel":"karateman/pot"},{"beat":115.5,"track":1,"length":0.5,"datamodel":"karateman/bop"},{"beat":118.0,"track":1,"length":2.0,"datamodel":"karateman/pot"},{"beat":118.5,"track":2,"length":0.5,"datamodel":"karateman/bop"},{"beat":119.5,"track":0,"length":0.5,"datamodel":"karateman/bop"},{"beat":119.5,"track":0,"length":2.0,"datamodel":"karateman/pot"},{"beat":122.0,"track":0,"length":5.5,"datamodel":"karateman/bop"},{"beat":122.0,"track":1,"length":2.0,"datamodel":"karateman/pot"},{"beat":124.0,"track":2,"length":2.0,"datamodel":"karateman/pot"},{"beat":126.0,"track":1,"length":2.0,"datamodel":"karateman/pot"},{"beat":127.5,"track":2,"length":2.0,"datamodel":"karateman/pot"},{"beat":130.0,"track":2,"length":88.0,"datamodel":"karateman/bop"},{"beat":130.0,"track":3,"length":2.0,"datamodel":"karateman/pot"},{"beat":132.0,"track":0,"length":2.0,"datamodel":"karateman/pot"},{"beat":134.0,"track":0,"length":2.0,"datamodel":"karateman/pot"},{"beat":136.0,"track":3,"length":2.0,"datamodel":"karateman/pot"},{"beat":138.0,"track":0,"length":2.0,"datamodel":"karateman/pot"},{"beat":140.0,"track":2,"length":2.0,"datamodel":"karateman/pot"},{"beat":140.5,"track":1,"length":1.0,"datamodel":"karateman/hit3"},{"beat":142.0,"track":2,"length":2.0,"datamodel":"karateman/pot"},{"beat":143.0,"track":1,"length":2.0,"datamodel":"karateman/pot"},{"beat":144.0,"track":2,"length":2.0,"datamodel":"karateman/rock"},{"beat":146.0,"track":2,"length":2.0,"datamodel":"karateman/pot"},{"beat":148.0,"track":2,"length":2.0,"datamodel":"karateman/pot"},{"beat":150.0,"track":0,"length":2.0,"datamodel":"karateman/pot"},{"beat":152.0,"track":3,"length":2.0,"datamodel":"karateman/pot"},{"beat":154.0,"track":2,"length":2.0,"datamodel":"karateman/pot"},{"beat":156.0,"track":2,"length":2.0,"datamodel":"karateman/bulb"},{"beat":158.0,"track":0,"length":4.0,"datamodel":"karateman/combo"},{"beat":162.0,"track":2,"length":2.0,"datamodel":"karateman/pot"},{"beat":164.0,"track":1,"length":2.0,"datamodel":"karateman/pot"},{"beat":166.0,"track":0,"length":2.0,"datamodel":"karateman/pot"},{"beat":168.0,"track":3,"length":2.0,"datamodel":"karateman/pot"},{"beat":170.0,"track":0,"length":2.0,"datamodel":"karateman/pot"},{"beat":172.0,"track":2,"length":2.0,"datamodel":"karateman/bulb"},{"beat":174.0,"track":2,"length":4.0,"datamodel":"karateman/combo"},{"beat":178.0,"track":1,"length":2.0,"datamodel":"karateman/pot"},{"beat":180.0,"track":2,"length":2.0,"datamodel":"karateman/pot"},{"beat":182.0,"track":2,"length":2.0,"datamodel":"karateman/pot"},{"beat":184.0,"track":0,"length":2.0,"datamodel":"karateman/pot"},{"beat":186.0,"track":2,"length":2.0,"datamodel":"karateman/pot"},{"beat":188.0,"track":1,"length":2.0,"datamodel":"karateman/bulb"},{"beat":190.0,"track":0,"length":4.0,"datamodel":"karateman/combo"},{"beat":194.0,"track":0,"length":2.0,"datamodel":"karateman/pot"},{"beat":196.0,"track":2,"length":2.0,"datamodel":"karateman/pot"},{"beat":198.0,"track":3,"length":2.0,"datamodel":"karateman/pot"},{"beat":200.0,"track":2,"length":2.0,"datamodel":"karateman/pot"},{"beat":202.0,"track":2,"length":2.0,"datamodel":"karateman/pot"},{"beat":204.0,"track":1,"length":2.0,"datamodel":"karateman/pot"},{"beat":206.0,"track":1,"length":2.0,"datamodel":"karateman/pot"},{"beat":208.0,"track":2,"length":2.0,"datamodel":"karateman/pot"},{"beat":210.0,"track":2,"length":2.0,"datamodel":"karateman/pot"},{"beat":212.0,"track":0,"length":2.0,"datamodel":"karateman/pot"},{"beat":214.0,"track":2,"length":2.0,"datamodel":"karateman/pot"},{"beat":216.0,"track":3,"length":2.0,"datamodel":"karateman/pot"},{"beat":218.0,"track":2,"length":2.0,"datamodel":"karateman/prepare"},{"beat":219.0,"track":3,"length":2.0,"datamodel":"karateman/pot"},{"beat":219.5,"track":1,"length":1.0,"datamodel":"karateman/hit3"},{"beat":221.0,"track":2,"length":2.0,"datamodel":"karateman/pot"},{"beat":222.0,"track":2,"length":2.0,"datamodel":"karateman/pot"},{"beat":223.0,"track":0,"length":2.0,"datamodel":"karateman/rock"},{"beat":225.0,"track":1,"length":34.5,"datamodel":"karateman/bop"},{"beat":226.0,"track":3,"length":2.0,"datamodel":"karateman/pot"},{"beat":228.0,"track":1,"length":2.0,"datamodel":"karateman/pot"},{"beat":230.0,"track":1,"length":2.0,"datamodel":"karateman/pot"},{"beat":232.0,"track":3,"length":2.0,"datamodel":"karateman/pot"},{"beat":234.0,"track":0,"length":2.0,"datamodel":"karateman/pot"},{"beat":236.0,"track":0,"length":2.0,"datamodel":"karateman/bulb"},{"beat":238.0,"track":3,"length":4.0,"datamodel":"karateman/combo"},{"beat":242.0,"track":3,"length":2.0,"datamodel":"karateman/pot"},{"beat":244.0,"track":3,"length":2.0,"datamodel":"karateman/pot"},{"beat":246.0,"track":1,"length":2.0,"datamodel":"karateman/pot"},{"beat":248.0,"track":3,"length":2.0,"datamodel":"karateman/pot"},{"beat":248.5,"track":1,"length":1.0,"datamodel":"karateman/hit3"},{"beat":250.0,"track":3,"length":2.0,"datamodel":"karateman/pot"},{"beat":251.0,"track":3,"length":2.0,"datamodel":"karateman/pot"},{"beat":252.0,"track":0,"length":2.0,"datamodel":"karateman/rock"},{"beat":252.5,"track":1,"length":1.0,"datamodel":"karateman/hit3"},{"beat":254.0,"track":0,"length":2.0,"datamodel":"karateman/pot"},{"beat":255.0,"track":2,"length":2.0,"datamodel":"karateman/pot"},{"beat":256.0,"track":2,"length":2.0,"datamodel":"karateman/ball"},{"beat":258.0,"track":1,"length":2.0,"datamodel":"karateman/pot"},{"beat":259.5,"track":3,"length":2.0,"datamodel":"karateman/pot"},{"beat":262.0,"track":0,"length":2.0,"datamodel":"karateman/pot"},{"beat":262.0,"track":1,"length":0.5,"datamodel":"karateman/bop"},{"beat":263.5,"track":1,"length":0.5,"datamodel":"karateman/bop"},{"beat":263.5,"track":3,"length":2.0,"datamodel":"karateman/pot"},{"beat":266.0,"track":2,"length":5.5,"datamodel":"karateman/bop"},{"beat":266.0,"track":3,"length":2.0,"datamodel":"karateman/pot"},{"beat":268.0,"track":3,"length":2.0,"datamodel":"karateman/pot"},{"beat":270.0,"track":0,"length":2.0,"datamodel":"karateman/pot"},{"beat":271.5,"track":0,"length":2.0,"datamodel":"karateman/pot"},{"beat":274.0,"track":1,"length":0.5,"datamodel":"karateman/bop"},{"beat":274.0,"track":2,"length":2.0,"datamodel":"karateman/pot"},{"beat":275.5,"track":2,"length":2.0,"datamodel":"karateman/pot"},{"beat":278.0,"track":1,"length":0.5,"datamodel":"karateman/bop"},{"beat":278.0,"track":2,"length":2.0,"datamodel":"karateman/pot"},{"beat":279.5,"track":0,"length":2.0,"datamodel":"karateman/pot"},{"beat":282.0,"track":2,"length":5.0,"datamodel":"karateman/bop"},{"beat":282.0,"track":1,"length":2.0,"datamodel":"karateman/pot"},{"beat":284.0,"track":3,"length":2.0,"datamodel":"karateman/pot"},{"beat":286.0,"track":0,"length":2.0,"datamodel":"karateman/pot"},{"beat":287.5,"track":0,"length":2.0,"datamodel":"karateman/pot"},{"beat":290.0,"track":3,"length":33.0,"datamodel":"karateman/bop"},{"beat":290.0,"track":2,"length":2.0,"datamodel":"karateman/pot"},{"beat":292.0,"track":2,"length":2.0,"datamodel":"karateman/pot"},{"beat":294.0,"track":2,"length":2.0,"datamodel":"karateman/pot"},{"beat":296.0,"track":0,"length":2.0,"datamodel":"karateman/pot"},{"beat":298.0,"track":0,"length":2.0,"datamodel":"karateman/pot"},{"beat":300.0,"track":2,"length":2.0,"datamodel":"karateman/pot"},{"beat":302.0,"track":3,"length":2.0,"datamodel":"karateman/pot"},{"beat":304.0,"track":0,"length":2.0,"datamodel":"karateman/pot"},{"beat":306.0,"track":1,"length":2.0,"datamodel":"karateman/pot"},{"beat":308.0,"track":2,"length":2.0,"datamodel":"karateman/pot"},{"beat":310.0,"track":3,"length":2.0,"datamodel":"karateman/pot"},{"beat":312.0,"track":0,"length":2.0,"datamodel":"karateman/pot"},{"beat":312.5,"track":1,"length":1.0,"datamodel":"karateman/hit3"},{"beat":314.0,"track":1,"length":2.0,"datamodel":"karateman/pot"},{"beat":315.0,"track":2,"length":2.0,"datamodel":"karateman/pot"},{"beat":316.0,"track":2,"length":2.0,"datamodel":"karateman/rock"},{"beat":316.5,"track":1,"length":1.0,"datamodel":"karateman/hit3"},{"beat":318.0,"track":0,"length":2.0,"datamodel":"karateman/pot"},{"beat":319.0,"track":0,"length":2.0,"datamodel":"karateman/pot"},{"beat":320.0,"track":0,"length":2.0,"datamodel":"karateman/rock"},{"beat":322.0,"track":2,"length":1.0,"datamodel":"karateman/prepare"},{"beat":323.0,"track":3,"length":2.0,"datamodel":"karateman/pot"},{"beat":326.0,"track":2,"length":1.0,"datamodel":"karateman/prepare"},{"beat":327.0,"track":1,"length":2.0,"datamodel":"karateman/pot"},{"beat":330.0,"track":2,"length":1.0,"datamodel":"karateman/prepare"},{"beat":331.0,"track":3,"length":2.0,"datamodel":"karateman/pot"},{"beat":334.0,"track":3,"length":1.0,"datamodel":"karateman/prepare"},{"beat":335.0,"track":2,"length":2.0,"datamodel":"karateman/pot"},{"beat":338.0,"track":2,"length":1.0,"datamodel":"karateman/prepare"},{"beat":339.0,"track":2,"length":2.0,"datamodel":"karateman/pot"},{"beat":342.0,"track":0,"length":1.0,"datamodel":"karateman/prepare"},{"beat":343.0,"track":3,"length":2.0,"datamodel":"karateman/pot"},{"beat":346.0,"track":2,"length":1.0,"datamodel":"karateman/prepare"},{"beat":347.0,"track":2,"length":2.0,"datamodel":"karateman/pot"},{"beat":350.0,"track":2,"length":1.0,"datamodel":"karateman/prepare"},{"beat":351.0,"track":2,"length":2.0,"datamodel":"karateman/pot"},{"beat":353.0,"track":3,"length":30.0,"datamodel":"karateman/bop"},{"beat":354.0,"track":0,"length":2.0,"datamodel":"karateman/pot"},{"beat":356.0,"track":1,"length":2.0,"datamodel":"karateman/pot"},{"beat":358.0,"track":3,"length":2.0,"datamodel":"karateman/pot"},{"beat":360.0,"track":3,"length":2.0,"datamodel":"karateman/pot"},{"beat":362.0,"track":0,"length":2.0,"datamodel":"karateman/pot"},{"beat":364.0,"track":0,"length":2.0,"datamodel":"karateman/pot"},{"beat":364.5,"track":1,"length":1.0,"datamodel":"karateman/hit3"},{"beat":366.0,"track":2,"length":2.0,"datamodel":"karateman/pot"},{"beat":367.0,"track":1,"length":2.0,"datamodel":"karateman/pot"},{"beat":368.0,"track":2,"length":2.0,"datamodel":"karateman/rock"},{"beat":370.0,"track":1,"length":2.0,"datamodel":"karateman/pot"},{"beat":372.0,"track":1,"length":2.0,"datamodel":"karateman/pot"},{"beat":372.5,"track":2,"length":1.0,"datamodel":"karateman/hit3"},{"beat":374.0,"track":3,"length":2.0,"datamodel":"karateman/pot"},{"beat":375.0,"track":0,"length":2.0,"datamodel":"karateman/pot"},{"beat":376.0,"track":0,"length":2.0,"datamodel":"karateman/rock"},{"beat":378.0,"track":1,"length":2.0,"datamodel":"karateman/pot"},{"beat":380.0,"track":2,"length":2.0,"datamodel":"karateman/bulb"},{"beat":382.0,"track":2,"length":4.0,"datamodel":"karateman/combo"}]} \ No newline at end of file +{"bpm":180.0,"entities":[{"beat":2.0,"track":1,"length":26.0,"datamodel":"karateman/bop"},{"beat":8.0,"track":3,"length":2.0,"datamodel":"karateman/pot"},{"beat":8.0,"track":2,"length":1.0,"datamodel":"karateman/prepare"},{"beat":16.0,"track":2,"length":1.0,"datamodel":"karateman/prepare"},{"beat":16.0,"track":3,"length":2.0,"datamodel":"karateman/pot"},{"beat":24.0,"track":3,"length":2.0,"datamodel":"karateman/pot"},{"beat":24.0,"track":3,"length":1.0,"datamodel":"karateman/prepare"},{"beat":28.0,"track":1,"length":2.0,"datamodel":"karateman/pot"},{"beat":28.0,"track":2,"length":1.0,"datamodel":"karateman/prepare"},{"beat":28.5,"track":1,"length":1.0,"datamodel":"karateman/hit3"},{"beat":30.0,"track":0,"length":2.0,"datamodel":"karateman/pot"},{"beat":30.0,"track":1,"length":1.0,"datamodel":"karateman/prepare"},{"beat":31.0,"track":0,"length":2.0,"datamodel":"karateman/pot"},{"beat":32.0,"track":0,"length":2.0,"datamodel":"karateman/rock"},{"beat":34.0,"track":2,"length":12.0,"datamodel":"karateman/bop"},{"beat":34.0,"track":0,"length":2.0,"datamodel":"karateman/pot"},{"beat":36.0,"track":3,"length":2.0,"datamodel":"karateman/pot"},{"beat":38.0,"track":3,"length":2.0,"datamodel":"karateman/pot"},{"beat":40.0,"track":0,"length":2.0,"datamodel":"karateman/pot"},{"beat":42.0,"track":3,"length":2.0,"datamodel":"karateman/pot"},{"beat":44.0,"track":0,"length":2.0,"datamodel":"karateman/pot"},{"beat":44.5,"track":0,"length":1.0,"datamodel":"karateman/hit3"},{"beat":46.0,"track":3,"length":2.0,"datamodel":"karateman/pot"},{"beat":46.0,"track":1,"length":1.0,"datamodel":"karateman/prepare"},{"beat":47.0,"track":3,"length":2.0,"datamodel":"karateman/pot"},{"beat":48.0,"track":2,"length":2.0,"datamodel":"karateman/rock"},{"beat":50.0,"track":2,"length":48.0,"datamodel":"karateman/bop"},{"beat":50.0,"track":1,"length":2.0,"datamodel":"karateman/pot"},{"beat":52.0,"track":0,"length":2.0,"datamodel":"karateman/pot"},{"beat":54.0,"track":3,"length":2.0,"datamodel":"karateman/pot"},{"beat":56.0,"track":1,"length":2.0,"datamodel":"karateman/pot"},{"beat":58.0,"track":2,"length":2.0,"datamodel":"karateman/pot"},{"beat":60.0,"track":3,"length":2.0,"datamodel":"karateman/pot"},{"beat":62.0,"track":3,"length":2.0,"datamodel":"karateman/pot"},{"beat":64.0,"track":0,"length":2.0,"datamodel":"karateman/pot"},{"beat":66.0,"track":2,"length":2.0,"datamodel":"karateman/pot"},{"beat":68.0,"track":3,"length":2.0,"datamodel":"karateman/pot"},{"beat":70.0,"track":2,"length":2.0,"datamodel":"karateman/pot"},{"beat":72.0,"track":3,"length":2.0,"datamodel":"karateman/pot"},{"beat":74.0,"track":1,"length":2.0,"datamodel":"karateman/pot"},{"beat":76.0,"track":2,"length":2.0,"datamodel":"karateman/pot"},{"beat":78.0,"track":3,"length":2.0,"datamodel":"karateman/pot"},{"beat":80.0,"track":3,"length":2.0,"datamodel":"karateman/pot"},{"beat":82.0,"track":0,"length":2.0,"datamodel":"karateman/pot"},{"beat":84.0,"track":3,"length":2.0,"datamodel":"karateman/pot"},{"beat":86.0,"track":1,"length":2.0,"datamodel":"karateman/pot"},{"beat":88.0,"track":2,"length":2.0,"datamodel":"karateman/pot"},{"beat":90.0,"track":1,"length":2.0,"datamodel":"karateman/pot"},{"beat":92.0,"track":3,"length":2.0,"datamodel":"karateman/bulb"},{"beat":94.0,"track":2,"length":4.0,"datamodel":"karateman/combo"},{"beat":98.0,"track":0,"length":2.0,"datamodel":"karateman/pot"},{"beat":98.0,"track":2,"length":0.5,"datamodel":"karateman/bop"},{"beat":99.5,"track":3,"length":2.0,"datamodel":"karateman/pot"},{"beat":99.5,"track":1,"length":0.5,"datamodel":"karateman/bop"},{"beat":102.0,"track":1,"length":0.5,"datamodel":"karateman/bop"},{"beat":102.0,"track":2,"length":2.0,"datamodel":"karateman/pot"},{"beat":103.5,"track":1,"length":0.5,"datamodel":"karateman/bop"},{"beat":103.5,"track":2,"length":2.0,"datamodel":"karateman/pot"},{"beat":106.0,"track":3,"length":5.0,"datamodel":"karateman/bop"},{"beat":106.0,"track":0,"length":2.0,"datamodel":"karateman/pot"},{"beat":108.0,"track":0,"length":2.0,"datamodel":"karateman/pot"},{"beat":110.0,"track":0,"length":2.0,"datamodel":"karateman/pot"},{"beat":111.5,"track":1,"length":2.0,"datamodel":"karateman/pot"},{"beat":114.0,"track":2,"length":2.0,"datamodel":"karateman/pot"},{"beat":114.0,"track":3,"length":0.5,"datamodel":"karateman/bop"},{"beat":115.5,"track":2,"length":2.0,"datamodel":"karateman/pot"},{"beat":115.5,"track":1,"length":0.5,"datamodel":"karateman/bop"},{"beat":118.0,"track":2,"length":0.5,"datamodel":"karateman/bop"},{"beat":118.0,"track":1,"length":2.0,"datamodel":"karateman/pot"},{"beat":119.5,"track":0,"length":0.5,"datamodel":"karateman/bop"},{"beat":119.5,"track":0,"length":2.0,"datamodel":"karateman/pot"},{"beat":122.0,"track":1,"length":2.0,"datamodel":"karateman/pot"},{"beat":122.0,"track":0,"length":5.5,"datamodel":"karateman/bop"},{"beat":124.0,"track":2,"length":2.0,"datamodel":"karateman/pot"},{"beat":126.0,"track":1,"length":2.0,"datamodel":"karateman/pot"},{"beat":127.5,"track":2,"length":2.0,"datamodel":"karateman/pot"},{"beat":130.0,"track":2,"length":88.0,"datamodel":"karateman/bop"},{"beat":130.0,"track":3,"length":2.0,"datamodel":"karateman/pot"},{"beat":132.0,"track":0,"length":2.0,"datamodel":"karateman/pot"},{"beat":134.0,"track":0,"length":2.0,"datamodel":"karateman/pot"},{"beat":136.0,"track":3,"length":2.0,"datamodel":"karateman/pot"},{"beat":138.0,"track":0,"length":2.0,"datamodel":"karateman/pot"},{"beat":140.0,"track":2,"length":2.0,"datamodel":"karateman/pot"},{"beat":140.5,"track":1,"length":1.0,"datamodel":"karateman/hit3"},{"beat":142.0,"track":2,"length":2.0,"datamodel":"karateman/pot"},{"beat":143.0,"track":1,"length":2.0,"datamodel":"karateman/pot"},{"beat":144.0,"track":2,"length":2.0,"datamodel":"karateman/rock"},{"beat":146.0,"track":2,"length":2.0,"datamodel":"karateman/pot"},{"beat":148.0,"track":2,"length":2.0,"datamodel":"karateman/pot"},{"beat":150.0,"track":0,"length":2.0,"datamodel":"karateman/pot"},{"beat":152.0,"track":3,"length":2.0,"datamodel":"karateman/pot"},{"beat":154.0,"track":2,"length":2.0,"datamodel":"karateman/pot"},{"beat":156.0,"track":2,"length":2.0,"datamodel":"karateman/bulb"},{"beat":158.0,"track":0,"length":4.0,"datamodel":"karateman/combo"},{"beat":162.0,"track":2,"length":2.0,"datamodel":"karateman/pot"},{"beat":164.0,"track":1,"length":2.0,"datamodel":"karateman/pot"},{"beat":166.0,"track":0,"length":2.0,"datamodel":"karateman/pot"},{"beat":168.0,"track":3,"length":2.0,"datamodel":"karateman/pot"},{"beat":170.0,"track":0,"length":2.0,"datamodel":"karateman/pot"},{"beat":172.0,"track":2,"length":2.0,"datamodel":"karateman/bulb"},{"beat":174.0,"track":2,"length":4.0,"datamodel":"karateman/combo"},{"beat":178.0,"track":1,"length":2.0,"datamodel":"karateman/pot"},{"beat":180.0,"track":2,"length":2.0,"datamodel":"karateman/pot"},{"beat":182.0,"track":2,"length":2.0,"datamodel":"karateman/pot"},{"beat":184.0,"track":0,"length":2.0,"datamodel":"karateman/pot"},{"beat":186.0,"track":2,"length":2.0,"datamodel":"karateman/pot"},{"beat":188.0,"track":1,"length":2.0,"datamodel":"karateman/bulb"},{"beat":190.0,"track":0,"length":4.0,"datamodel":"karateman/combo"},{"beat":194.0,"track":0,"length":2.0,"datamodel":"karateman/pot"},{"beat":196.0,"track":2,"length":2.0,"datamodel":"karateman/pot"},{"beat":198.0,"track":3,"length":2.0,"datamodel":"karateman/pot"},{"beat":200.0,"track":2,"length":2.0,"datamodel":"karateman/pot"},{"beat":202.0,"track":2,"length":2.0,"datamodel":"karateman/pot"},{"beat":204.0,"track":1,"length":2.0,"datamodel":"karateman/pot"},{"beat":206.0,"track":1,"length":2.0,"datamodel":"karateman/pot"},{"beat":208.0,"track":2,"length":2.0,"datamodel":"karateman/pot"},{"beat":210.0,"track":2,"length":2.0,"datamodel":"karateman/pot"},{"beat":212.0,"track":0,"length":2.0,"datamodel":"karateman/pot"},{"beat":214.0,"track":2,"length":2.0,"datamodel":"karateman/pot"},{"beat":216.0,"track":3,"length":2.0,"datamodel":"karateman/pot"},{"beat":218.0,"track":2,"length":2.0,"datamodel":"karateman/prepare"},{"beat":219.0,"track":3,"length":2.0,"datamodel":"karateman/pot"},{"beat":219.5,"track":1,"length":1.0,"datamodel":"karateman/hit3"},{"beat":221.0,"track":2,"length":2.0,"datamodel":"karateman/pot"},{"beat":222.0,"track":2,"length":2.0,"datamodel":"karateman/pot"},{"beat":223.0,"track":0,"length":2.0,"datamodel":"karateman/rock"},{"beat":225.0,"track":1,"length":34.5,"datamodel":"karateman/bop"},{"beat":226.0,"track":3,"length":2.0,"datamodel":"karateman/pot"},{"beat":228.0,"track":1,"length":2.0,"datamodel":"karateman/pot"},{"beat":230.0,"track":1,"length":2.0,"datamodel":"karateman/pot"},{"beat":232.0,"track":3,"length":2.0,"datamodel":"karateman/pot"},{"beat":234.0,"track":0,"length":2.0,"datamodel":"karateman/pot"},{"beat":236.0,"track":0,"length":2.0,"datamodel":"karateman/bulb"},{"beat":238.0,"track":3,"length":4.0,"datamodel":"karateman/combo"},{"beat":242.0,"track":3,"length":2.0,"datamodel":"karateman/pot"},{"beat":244.0,"track":3,"length":2.0,"datamodel":"karateman/pot"},{"beat":246.0,"track":1,"length":2.0,"datamodel":"karateman/pot"},{"beat":248.0,"track":3,"length":2.0,"datamodel":"karateman/pot"},{"beat":248.5,"track":1,"length":1.0,"datamodel":"karateman/hit3"},{"beat":250.0,"track":3,"length":2.0,"datamodel":"karateman/pot"},{"beat":251.0,"track":3,"length":2.0,"datamodel":"karateman/pot"},{"beat":252.0,"track":0,"length":2.0,"datamodel":"karateman/rock"},{"beat":252.5,"track":1,"length":1.0,"datamodel":"karateman/hit3"},{"beat":254.0,"track":0,"length":2.0,"datamodel":"karateman/pot"},{"beat":255.0,"track":2,"length":2.0,"datamodel":"karateman/pot"},{"beat":256.0,"track":2,"length":2.0,"datamodel":"karateman/ball"},{"beat":258.0,"track":1,"length":2.0,"datamodel":"karateman/pot"},{"beat":259.5,"track":3,"length":2.0,"datamodel":"karateman/pot"},{"beat":262.0,"track":0,"length":2.0,"datamodel":"karateman/pot"},{"beat":262.0,"track":1,"length":0.5,"datamodel":"karateman/bop"},{"beat":263.5,"track":1,"length":0.5,"datamodel":"karateman/bop"},{"beat":263.5,"track":3,"length":2.0,"datamodel":"karateman/pot"},{"beat":266.0,"track":2,"length":5.5,"datamodel":"karateman/bop"},{"beat":266.0,"track":3,"length":2.0,"datamodel":"karateman/pot"},{"beat":268.0,"track":3,"length":2.0,"datamodel":"karateman/pot"},{"beat":270.0,"track":0,"length":2.0,"datamodel":"karateman/pot"},{"beat":271.5,"track":0,"length":2.0,"datamodel":"karateman/pot"},{"beat":274.0,"track":2,"length":2.0,"datamodel":"karateman/pot"},{"beat":274.0,"track":1,"length":0.5,"datamodel":"karateman/bop"},{"beat":275.5,"track":2,"length":2.0,"datamodel":"karateman/pot"},{"beat":278.0,"track":1,"length":0.5,"datamodel":"karateman/bop"},{"beat":278.0,"track":2,"length":2.0,"datamodel":"karateman/pot"},{"beat":279.5,"track":0,"length":2.0,"datamodel":"karateman/pot"},{"beat":282.0,"track":2,"length":5.0,"datamodel":"karateman/bop"},{"beat":282.0,"track":1,"length":2.0,"datamodel":"karateman/pot"},{"beat":284.0,"track":3,"length":2.0,"datamodel":"karateman/pot"},{"beat":286.0,"track":0,"length":2.0,"datamodel":"karateman/pot"},{"beat":287.5,"track":0,"length":2.0,"datamodel":"karateman/pot"},{"beat":290.0,"track":2,"length":2.0,"datamodel":"karateman/pot"},{"beat":290.0,"track":3,"length":33.0,"datamodel":"karateman/bop"},{"beat":292.0,"track":2,"length":2.0,"datamodel":"karateman/pot"},{"beat":294.0,"track":2,"length":2.0,"datamodel":"karateman/pot"},{"beat":296.0,"track":0,"length":2.0,"datamodel":"karateman/pot"},{"beat":298.0,"track":0,"length":2.0,"datamodel":"karateman/pot"},{"beat":300.0,"track":2,"length":2.0,"datamodel":"karateman/pot"},{"beat":302.0,"track":3,"length":2.0,"datamodel":"karateman/pot"},{"beat":304.0,"track":0,"length":2.0,"datamodel":"karateman/pot"},{"beat":306.0,"track":1,"length":2.0,"datamodel":"karateman/pot"},{"beat":308.0,"track":2,"length":2.0,"datamodel":"karateman/pot"},{"beat":310.0,"track":3,"length":2.0,"datamodel":"karateman/pot"},{"beat":312.0,"track":0,"length":2.0,"datamodel":"karateman/pot"},{"beat":312.5,"track":1,"length":1.0,"datamodel":"karateman/hit3"},{"beat":314.0,"track":1,"length":2.0,"datamodel":"karateman/pot"},{"beat":315.0,"track":2,"length":2.0,"datamodel":"karateman/pot"},{"beat":316.0,"track":2,"length":2.0,"datamodel":"karateman/rock"},{"beat":316.5,"track":1,"length":1.0,"datamodel":"karateman/hit3"},{"beat":318.0,"track":0,"length":2.0,"datamodel":"karateman/pot"},{"beat":319.0,"track":0,"length":2.0,"datamodel":"karateman/pot"},{"beat":320.0,"track":0,"length":2.0,"datamodel":"karateman/rock"},{"beat":322.0,"track":2,"length":1.0,"datamodel":"karateman/prepare"},{"beat":323.0,"track":3,"length":2.0,"datamodel":"karateman/pot"},{"beat":326.0,"track":2,"length":1.0,"datamodel":"karateman/prepare"},{"beat":327.0,"track":1,"length":2.0,"datamodel":"karateman/pot"},{"beat":330.0,"track":2,"length":1.0,"datamodel":"karateman/prepare"},{"beat":331.0,"track":3,"length":2.0,"datamodel":"karateman/pot"},{"beat":334.0,"track":3,"length":1.0,"datamodel":"karateman/prepare"},{"beat":335.0,"track":2,"length":2.0,"datamodel":"karateman/pot"},{"beat":338.0,"track":2,"length":1.0,"datamodel":"karateman/prepare"},{"beat":339.0,"track":2,"length":2.0,"datamodel":"karateman/pot"},{"beat":342.0,"track":0,"length":1.0,"datamodel":"karateman/prepare"},{"beat":343.0,"track":3,"length":2.0,"datamodel":"karateman/pot"},{"beat":346.0,"track":2,"length":1.0,"datamodel":"karateman/prepare"},{"beat":347.0,"track":2,"length":2.0,"datamodel":"karateman/pot"},{"beat":350.0,"track":2,"length":1.0,"datamodel":"karateman/prepare"},{"beat":351.0,"track":2,"length":2.0,"datamodel":"karateman/pot"},{"beat":353.0,"track":3,"length":30.0,"datamodel":"karateman/bop"},{"beat":354.0,"track":0,"length":2.0,"datamodel":"karateman/pot"},{"beat":356.0,"track":1,"length":2.0,"datamodel":"karateman/pot"},{"beat":358.0,"track":3,"length":2.0,"datamodel":"karateman/pot"},{"beat":360.0,"track":3,"length":2.0,"datamodel":"karateman/pot"},{"beat":362.0,"track":0,"length":2.0,"datamodel":"karateman/pot"},{"beat":364.0,"track":0,"length":2.0,"datamodel":"karateman/pot"},{"beat":364.5,"track":1,"length":1.0,"datamodel":"karateman/hit3"},{"beat":366.0,"track":2,"length":2.0,"datamodel":"karateman/pot"},{"beat":367.0,"track":1,"length":2.0,"datamodel":"karateman/pot"},{"beat":368.0,"track":2,"length":2.0,"datamodel":"karateman/rock"},{"beat":370.0,"track":1,"length":2.0,"datamodel":"karateman/pot"},{"beat":372.0,"track":1,"length":2.0,"datamodel":"karateman/pot"},{"beat":372.5,"track":2,"length":1.0,"datamodel":"karateman/hit3"},{"beat":374.0,"track":3,"length":2.0,"datamodel":"karateman/pot"},{"beat":375.0,"track":0,"length":2.0,"datamodel":"karateman/pot"},{"beat":376.0,"track":0,"length":2.0,"datamodel":"karateman/rock"},{"beat":378.0,"track":1,"length":2.0,"datamodel":"karateman/pot"},{"beat":380.0,"track":2,"length":2.0,"datamodel":"karateman/bulb"},{"beat":382.0,"track":2,"length":4.0,"datamodel":"karateman/combo"}]} \ No newline at end of file