diff --git a/.github/workflows/build-validation.yml b/.github/workflows/build-validation.yml
new file mode 100644
index 0000000..4ded9df
--- /dev/null
+++ b/.github/workflows/build-validation.yml
@@ -0,0 +1,37 @@
+name: build-validation
+
+on:
+ push:
+ pull_request:
+ branches: [ main ]
+ paths:
+ - '**.cs'
+ - '**.csproj'
+
+
+env:
+ DOTNET_VERSION: '6.x'
+
+jobs:
+ build:
+ name: build-windows
+ runs-on: [ windows-latest ]
+
+ steps:
+ - uses: actions/checkout@v2
+ - name: Setup .NET Core
+ uses: actions/setup-dotnet@v1
+ with:
+ dotnet-version: ${{ env.DOTNET_VERSION }}
+
+ - name: Install dependencies
+ run: dotnet restore
+
+ - name: Build
+ run: dotnet build --configuration Release --no-restore
+
+ - name: Publish artifacts
+ uses: actions/upload-artifact@v1
+ with:
+ name: build
+ path: BAKKA-Sharp\bin\Release\net6.0-windows\
\ No newline at end of file
diff --git a/BAKKA-Editor/App.config b/BAKKA-Editor/App.config
deleted file mode 100644
index 56efbc7..0000000
--- a/BAKKA-Editor/App.config
+++ /dev/null
@@ -1,6 +0,0 @@
-
-
-
-
-
-
\ No newline at end of file
diff --git a/BAKKA-Editor/BAKKA-Editor.csproj b/BAKKA-Editor/BAKKA-Editor.csproj
index 1ecb082..4aa962a 100644
--- a/BAKKA-Editor/BAKKA-Editor.csproj
+++ b/BAKKA-Editor/BAKKA-Editor.csproj
@@ -1,80 +1,45 @@
-
-
-
+
+
- Debug
- AnyCPU
- {76336598-B2BE-4F67-B3D6-821F6A0E302F}
WinExe
+ net6.0-windows
BAKKA_Editor
- BAKKA-Editor
- v4.7.2
- 512
+ enable
+ true
+ enable
+ $(VersionPrefix)1.0.0-rc8
+ 1.0.0.0
+ 1.0.0-rc8
+ Goatgarien
+ 2022
+ BAKKA_Editor.Program
+
true
- true
-
-
- AnyCPU
- true
- full
- false
- bin\Debug\
- DEBUG;TRACE
- prompt
- 4
-
-
- AnyCPU
- pdbonly
- true
- bin\Release\
- TRACE
- prompt
- 4
+
-
-
-
-
-
-
-
-
-
-
-
+
+
-
- Form
-
-
- Form1.cs
-
-
-
-
- ResXFileCodeGenerator
- Resources.Designer.cs
- Designer
-
-
+
+ ..\lib\irrKlang.NET4.dll
+
+
+
+
+
+ True
True
Resources.resx
-
- SettingsSingleFileGenerator
- Settings.Designer.cs
-
-
- True
- Settings.settings
- True
-
+
-
+
+ ResXFileCodeGenerator
+ Resources.Designer.cs
+
-
+
\ No newline at end of file
diff --git a/BAKKA-Editor/Chart.cs b/BAKKA-Editor/Chart.cs
new file mode 100644
index 0000000..22870e1
--- /dev/null
+++ b/BAKKA-Editor/Chart.cs
@@ -0,0 +1,293 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace BAKKA_Editor
+{
+ internal class Chart
+ {
+ public List Notes { get; set; }
+ public List Gimmicks { get; set; }
+ ///
+ /// Offset in seconds.
+ ///
+ public double Offset { get; set; }
+ ///
+ /// Movie offset in seconds
+ ///
+ public double MovieOffset { get; set; }
+ String SongFileName { get; set; }
+ List TimeEvents { get; set; }
+ public bool HasInitEvents
+ {
+ get
+ {
+ return TimeEvents != null &&
+ TimeEvents.Count > 0 &&
+ Gimmicks.Count(x => x.Measure == 0 && x.GimmickType == GimmickType.BpmChange) >= 1 &&
+ Gimmicks.Count(x => x.Measure == 0 && x.GimmickType == GimmickType.TimeSignatureChange) >= 1;
+ }
+ }
+ public bool IsSaved { get; set; }
+
+ public Chart()
+ {
+ Notes = new();
+ Gimmicks = new();
+ Offset = 0;
+ MovieOffset = 0;
+ SongFileName = "";
+ IsSaved = true;
+ }
+
+ public bool ParseFile(string filename)
+ {
+ var file = File.ReadAllLines(filename);
+
+ int index = 0;
+
+ do
+ {
+ var line = file[index];
+
+ var path = Utils.GetTag(line, "#MUSIC_FILE_PATH ");
+ if (path != null)
+ SongFileName = path;
+
+ var offset = Utils.GetTag(line, "#OFFSET");
+ if (offset != null)
+ Offset = Convert.ToDouble(offset);
+
+ offset = Utils.GetTag(line, "#MOVIEOFFSET");
+ if (offset != null)
+ MovieOffset = Convert.ToDouble(offset);
+
+
+ if (line.Contains("#BODY"))
+ {
+ index++;
+ break;
+ }
+
+ } while(++index < file.Length);
+
+ int lineNum;
+ Gimmick gimmickTemp;
+ Note noteTemp;
+ Dictionary notesByLine = new();
+ Dictionary refByLine = new();
+ for (int i = index; i < file.Length; i++)
+ {
+ var parsed = file[i].Split(new string[] {" "}, StringSplitOptions.RemoveEmptyEntries | StringSplitOptions.TrimEntries);
+ NoteBase temp = new();
+ temp.BeatInfo = new BeatInfo(Convert.ToInt32(parsed[0]), Convert.ToInt32(parsed[1]));
+ temp.GimmickType = (GimmickType)Convert.ToInt32(parsed[2]);
+
+ switch (temp.GimmickType)
+ {
+ case GimmickType.NoGimmick:
+ noteTemp = new Note(temp.BeatInfo);
+ noteTemp.NoteType = (NoteType)Convert.ToInt32(parsed[3]);
+ lineNum = Convert.ToInt32(parsed[4]);
+ noteTemp.Position = Convert.ToInt32(parsed[5]);
+ noteTemp.Size = Convert.ToInt32(parsed[6]);
+ noteTemp.HoldChange = Convert.ToBoolean(Convert.ToInt32(parsed[7]));
+ if (noteTemp.NoteType == NoteType.MaskAdd || noteTemp.NoteType == NoteType.MaskRemove)
+ {
+ noteTemp.MaskFill = (MaskType)Convert.ToInt32(parsed[8]);
+ }
+ else if (noteTemp.NoteType == NoteType.HoldStartNoBonus ||
+ noteTemp.NoteType == NoteType.HoldJoint ||
+ noteTemp.NoteType == NoteType.HoldStartBonusFlair)
+ {
+ refByLine[lineNum] = Convert.ToInt32(parsed[8]);
+ }
+ Notes.Add(noteTemp);
+ notesByLine[lineNum] = Notes.Last();
+ break;
+ case GimmickType.BpmChange:
+ gimmickTemp = new Gimmick(temp.BeatInfo, temp.GimmickType);
+ gimmickTemp.BPM = Convert.ToDouble(parsed[3]);
+ Gimmicks.Add(gimmickTemp);
+ break;
+ case GimmickType.TimeSignatureChange:
+ gimmickTemp = new Gimmick(temp.BeatInfo, temp.GimmickType);
+ gimmickTemp.TimeSig = new TimeSignature() { Upper = Convert.ToInt32(parsed[3]), Lower = Convert.ToInt32(parsed[4]) };
+ Gimmicks.Add(gimmickTemp);
+ break;
+ case GimmickType.HiSpeedChange:
+ gimmickTemp = new Gimmick(temp.BeatInfo, temp.GimmickType);
+ gimmickTemp.HiSpeed = Convert.ToDouble(parsed[3]);
+ Gimmicks.Add(gimmickTemp);
+ break;
+ case GimmickType.ReverseStart:
+ case GimmickType.ReverseMiddle:
+ case GimmickType.ReverseEnd:
+ case GimmickType.StopStart:
+ case GimmickType.StopEnd:
+ default:
+ Gimmicks.Add(new Gimmick(temp.BeatInfo, temp.GimmickType));
+ break;
+ }
+
+ }
+
+ // Generate hold references
+ for (int i = 0; i < Notes.Count; i++)
+ {
+ if (refByLine.ContainsKey(i))
+ {
+ Notes[i].NextNote = notesByLine[refByLine[i]];
+ Notes[i].NextNote.PrevNote = Notes[i];
+ }
+ }
+
+ RecalcTime();
+
+ IsSaved = true;
+ return true;
+ }
+
+ public bool WriteFile(string filename, bool setSave = true)
+ {
+ using (StreamWriter sw = new StreamWriter(new FileStream(filename, FileMode.Create), new UTF8Encoding(false)))
+ {
+ // LF line ending
+ sw.NewLine = "\n";
+
+ sw.WriteLine("#MUSIC_SCORE_ID 0");
+ sw.WriteLine("#MUSIC_SCORE_VERSION 0");
+ sw.WriteLine("#GAME_VERSION ");
+ sw.WriteLine($"#MUSIC_FILE_PATH {SongFileName}");
+ sw.WriteLine($"#OFFSET {Offset:F6}");
+ sw.WriteLine($"#MOVIEOFFSET {MovieOffset:F6}");
+ sw.WriteLine("#BODY");
+
+ foreach (var gimmick in Gimmicks)
+ {
+ sw.Write($"{gimmick.BeatInfo.Measure,4:F0}{gimmick.BeatInfo.Beat,5:F0}{((int)gimmick.GimmickType),5:F0}");
+ switch (gimmick.GimmickType)
+ {
+ case GimmickType.BpmChange:
+ sw.WriteLine($" {gimmick.BPM:F6}");
+ break;
+ case GimmickType.TimeSignatureChange:
+ sw.WriteLine($"{gimmick.TimeSig.Upper,5:F0}{gimmick.TimeSig.Lower,5:F0}");
+ break;
+ case GimmickType.HiSpeedChange:
+ sw.WriteLine($" {gimmick.HiSpeed:F6}");
+ break;
+ default:
+ sw.WriteLine("");
+ break;
+ }
+ }
+
+ foreach (var note in Notes)
+ {
+ sw.Write($"{note.BeatInfo.Measure,4:F0}{note.BeatInfo.Beat,5:F0}{((int)note.GimmickType),5:F0}{(int)note.NoteType,5:F0}");
+ sw.Write($"{Notes.IndexOf(note),5:F0}{note.Position,5:F0}{note.Size,5:F0}{Convert.ToInt32(note.HoldChange),5:F0}");
+ if (note.IsMask)
+ sw.Write($"{(int)note.MaskFill,5:F0}");
+ if (note.NextNote != null)
+ sw.Write($"{Notes.IndexOf(note.NextNote),5:F0}");
+ sw.WriteLine("");
+ }
+ }
+
+ IsSaved = setSave;
+ return true;
+ }
+
+ public void RecalcTime()
+ {
+ Gimmicks = Gimmicks.OrderBy(x => x.Measure).ToList();
+ var timeSig = Gimmicks.FirstOrDefault(x => x.GimmickType == GimmickType.TimeSignatureChange && x.Measure == 0.0f);
+ var bpm = Gimmicks.FirstOrDefault(x => x.GimmickType == GimmickType.BpmChange && x.Measure == 0.0f);
+ if (timeSig == null || bpm == null)
+ return; // Cannot calculate times without either starting value
+
+ TimeEvents = new();
+ for (int i = 0; i < Gimmicks.Count; i++)
+ {
+ var evt = TimeEvents.FirstOrDefault(x => x.BeatInfo.MeasureDecimal == Gimmicks[i].BeatInfo.MeasureDecimal);
+
+ if (Gimmicks[i].GimmickType == GimmickType.BpmChange)
+ {
+ if (evt == null)
+ {
+ TimeEvents.Add(new Gimmick()
+ {
+ BeatInfo = new BeatInfo(Gimmicks[i].BeatInfo),
+ BPM = Gimmicks[i].BPM,
+ TimeSig = new TimeSignature(timeSig.TimeSig)
+ });
+ }
+ else
+ {
+ evt.BPM = Gimmicks[i].BPM;
+ }
+ bpm = Gimmicks[i];
+ }
+ if (Gimmicks[i].GimmickType == GimmickType.TimeSignatureChange)
+ {
+ if (evt == null)
+ {
+ TimeEvents.Add(new Gimmick()
+ {
+ BeatInfo = new BeatInfo(Gimmicks[i].BeatInfo),
+ BPM = bpm.BPM,
+ TimeSig = new TimeSignature(Gimmicks[i].TimeSig)
+ });
+ }
+ else
+ {
+ evt.TimeSig = new TimeSignature(Gimmicks[i].TimeSig);
+ }
+ timeSig = Gimmicks[i];
+ }
+ }
+
+ // Run through all time events and generate valid start times
+ TimeEvents[0].StartTime = Offset * 1000.0;
+ for (int i = 1; i < TimeEvents.Count; i++)
+ {
+ TimeEvents[i].StartTime = ((TimeEvents[i].Measure - TimeEvents[i - 1].Measure) * 4 * TimeEvents[i - 1].TimeSig.Ratio * 60000.0 / TimeEvents[i].BPM) + TimeEvents[i - 1].StartTime;
+ }
+ }
+
+ ///
+ /// Translate clock time to beats
+ ///
+ /// Current timestamp in ms
+ ///
+ public BeatInfo GetBeat(float time)
+ {
+ if (TimeEvents == null || TimeEvents.Count == 0)
+ return new BeatInfo(-1, 0);
+
+ var evt = TimeEvents.Where(x => time >= x.StartTime).LastOrDefault();
+ if (evt == null)
+ evt = TimeEvents[0];
+ return new BeatInfo((float)(evt.BPM * (time - evt.StartTime) / (60000.0f * evt.TimeSig.Ratio * 4)) + evt.Measure);
+ }
+
+ ///
+ /// Translate measures into clock time
+ ///
+ ///
+ ///
+ public int GetTime(BeatInfo beat)
+ {
+ if (TimeEvents == null || TimeEvents.Count == 0)
+ return 0;
+
+ var evt = TimeEvents.Where(x => beat.MeasureDecimal >= x.Measure).LastOrDefault();
+ if (evt == null)
+ evt = TimeEvents[0];
+ return (int)((60000.0 * 4.0 * evt.TimeSig.Ratio / evt.BPM) * (beat.MeasureDecimal - evt.Measure) + evt.StartTime);
+ }
+ }
+}
diff --git a/BAKKA-Editor/CircleView.cs b/BAKKA-Editor/CircleView.cs
new file mode 100644
index 0000000..22c8e7b
--- /dev/null
+++ b/BAKKA-Editor/CircleView.cs
@@ -0,0 +1,110 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace BAKKA_Editor
+{
+ internal class CircleView
+ {
+ public SizeF PanelSize { get; private set; }
+ public RectangleF DrawRect { get; private set; }
+ public PointF TopCorner { get; private set; }
+ public PointF CenterPoint { get; private set; }
+ public float Radius { get; private set; }
+ public float CurrentMeasure { get; set; }
+ ///
+ /// Number of measures in the future that are visible
+ ///
+ public float TotalMeasureShowNotes { get; set; } = 0.5f;
+
+ // Pens and Brushes
+ public Pen BasePen { get; set; }
+ public Pen BeatPen { get; set; }
+ public Pen TickMinorPen { get; set; }
+ public Pen TickMediumPen { get; set; }
+ public Pen TickMajorPen { get; set; }
+ public SolidBrush HoldBrush { get; set; } = new SolidBrush(Color.FromArgb(170, Color.Yellow));
+ public SolidBrush MaskBrush { get; set; } = new SolidBrush(Color.DimGray);
+ public Pen HighlightPen { get; set; }
+ public Pen FlairPen { get; set; }
+ private int CursorTransparency = 110;
+ private int SelectTransparency = 110;
+ private int FlairTransparency = 75;
+
+ public CircleView(SizeF size)
+ {
+ Update(size);
+ }
+
+ public void Update(SizeF size)
+ {
+ PanelSize = size;
+ float basePenWidth = PanelSize.Width * 4.0f / 600.0f;
+ TopCorner = new PointF(basePenWidth * 4, basePenWidth * 4);
+ DrawRect = new RectangleF(
+ TopCorner.X,
+ TopCorner.Y,
+ PanelSize.Width - basePenWidth * 8,
+ PanelSize.Height - basePenWidth * 8);
+ Radius = DrawRect.Width / 2.0f;
+ CenterPoint = new PointF(TopCorner.X + Radius, TopCorner.Y + Radius);
+
+ // Pens
+ BasePen = new Pen(Color.Black, basePenWidth);
+ BeatPen = new Pen(Color.White, PanelSize.Width * 1.0f / 600.0f);
+ TickMinorPen = new Pen(Color.Black, PanelSize.Width * 2.0f / 600.0f);
+ TickMediumPen = new Pen(Color.Black, PanelSize.Width * 4.0f / 600.0f);
+ TickMajorPen = new Pen(Color.Black, PanelSize.Width * 7.0f / 600.0f);
+ HighlightPen = new Pen(Color.FromArgb(SelectTransparency, Color.LightPink), PanelSize.Width * 8.0f / 600.0f);
+ FlairPen = new Pen(Color.FromArgb(FlairTransparency, Color.Yellow), PanelSize.Width * 8.0f / 600.0f);
+ }
+
+ public ArcInfo GetScaledRect(float objectTime)
+ {
+ ArcInfo info = new();
+ float notescaleInit = 1 - ((objectTime - CurrentMeasure) * (1 / TotalMeasureShowNotes)); // Scale from 0-1
+ info.NoteScale = (float)Math.Pow(10.0f, notescaleInit) / 10.0f;
+ float scaledRectSize = DrawRect.Width * info.NoteScale;
+ float scaledRadius = scaledRectSize / 2.0f;
+ info.Rect = new RectangleF(
+ new PointF(
+ CenterPoint.X - scaledRadius,
+ CenterPoint.Y - scaledRadius),
+ new SizeF(scaledRectSize, scaledRectSize));
+ return info;
+ }
+
+ public ArcInfo GetArcInfo(Note note)
+ {
+ ArcInfo info = GetScaledRect(note.Measure);
+ info.StartAngle = -note.Position * 6;
+ info.ArcLength = -note.Size * 6;
+ if(info.ArcLength != -360)
+ {
+ info.StartAngle -= 2;
+ info.ArcLength += 4;
+ }
+ return info;
+ }
+
+ public Pen GetPen(Note note, float noteScale = 1.0f)
+ {
+ return new Pen(note.Color, PanelSize.Width * 8.0f * noteScale / 600.0f);
+ }
+
+ public Pen GetPen(NoteType noteType)
+ {
+ return new Pen(Color.FromArgb(CursorTransparency, Utils.NoteTypeToColor(noteType)), PanelSize.Width * 24.0f / 600.0f);
+ }
+ }
+
+ internal struct ArcInfo
+ {
+ public float StartAngle;
+ public float ArcLength;
+ public RectangleF Rect;
+ public float NoteScale;
+ }
+}
diff --git a/BAKKA-Editor/Enums.cs b/BAKKA-Editor/Enums.cs
new file mode 100644
index 0000000..c0be685
--- /dev/null
+++ b/BAKKA-Editor/Enums.cs
@@ -0,0 +1,66 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace BAKKA_Editor
+{
+ internal enum NoteType
+ {
+ TouchNoBonus = 1,
+ TouchBonus = 2,
+ SnapRedNoBonus = 3,
+ SnapBlueNoBonus = 4,
+ SlideOrangeNoBonus = 5,
+ SlideOrangeBonus = 6,
+ SlideGreenNoBonus = 7,
+ SlideGreenBonus = 8,
+ HoldStartNoBonus = 9,
+ HoldJoint = 10,
+ HoldEnd = 11,
+ MaskAdd = 12,
+ MaskRemove = 13,
+ EndOfChart = 14,
+ // MaskSameTime = 15,
+ Chain = 16,
+ // MaskLane = 17,
+ // TutorialTag = 18,
+ // BarLine = 19,
+ TouchBonusFlair = 20,
+ SnapRedBonusFlair = 21,
+ SnapBlueBonusFlair = 22,
+ SlideOrangeBonusFlair = 23,
+ SlideGreenBonusFlair = 24,
+ HoldStartBonusFlair = 25,
+ ChainBonusFlair = 26,
+ }
+
+ internal enum GimmickType
+ {
+ NoGimmick = 1,
+ BpmChange = 2,
+ TimeSignatureChange = 3,
+ // Stop = 4,
+ HiSpeedChange = 5,
+ ReverseStart = 6,
+ ReverseMiddle = 7,
+ ReverseEnd = 8,
+ StopStart = 9,
+ StopEnd = 10,
+ };
+
+ internal enum MaskType
+ {
+ Clockwise = 0,
+ CounterClockwise = 1,
+ Center = 2
+ }
+
+ internal enum BonusType
+ {
+ NoBonus = 0,
+ Bonus = 1,
+ Flair = 2
+ }
+}
diff --git a/BAKKA-Editor/Form1.Designer.cs b/BAKKA-Editor/Form1.Designer.cs
deleted file mode 100644
index 1d3612b..0000000
--- a/BAKKA-Editor/Form1.Designer.cs
+++ /dev/null
@@ -1,40 +0,0 @@
-namespace BAKKA_Editor
-{
- partial class Form1
- {
- ///
- /// Required designer variable.
- ///
- private System.ComponentModel.IContainer components = null;
-
- ///
- /// Clean up any resources being used.
- ///
- /// true if managed resources should be disposed; otherwise, false.
- protected override void Dispose(bool disposing)
- {
- if (disposing && (components != null))
- {
- components.Dispose();
- }
- base.Dispose(disposing);
- }
-
- #region Windows Form Designer generated code
-
- ///
- /// Required method for Designer support - do not modify
- /// the contents of this method with the code editor.
- ///
- private void InitializeComponent()
- {
- this.components = new System.ComponentModel.Container();
- this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
- this.ClientSize = new System.Drawing.Size(800, 450);
- this.Text = "Form1";
- }
-
- #endregion
- }
-}
-
diff --git a/BAKKA-Editor/GimmickForm.Designer.cs b/BAKKA-Editor/GimmickForm.Designer.cs
new file mode 100644
index 0000000..f53d488
--- /dev/null
+++ b/BAKKA-Editor/GimmickForm.Designer.cs
@@ -0,0 +1,585 @@
+namespace BAKKA_Editor
+{
+ partial class GimmickForm
+ {
+ ///
+ /// Required designer variable.
+ ///
+ private System.ComponentModel.IContainer components = null;
+
+ ///
+ /// Clean up any resources being used.
+ ///
+ /// true if managed resources should be disposed; otherwise, false.
+ protected override void Dispose(bool disposing)
+ {
+ if (disposing && (components != null))
+ {
+ components.Dispose();
+ }
+ base.Dispose(disposing);
+ }
+
+ #region Windows Form Designer generated code
+
+ ///
+ /// Required method for Designer support - do not modify
+ /// the contents of this method with the code editor.
+ ///
+ private void InitializeComponent()
+ {
+ this.revEnd2Beat2Numeric = new System.Windows.Forms.NumericUpDown();
+ this.label18 = new System.Windows.Forms.Label();
+ this.revEnd2Beat1Numeric = new System.Windows.Forms.NumericUpDown();
+ this.revEnd2MeasureNumeric = new System.Windows.Forms.NumericUpDown();
+ this.label19 = new System.Windows.Forms.Label();
+ this.revEnd1Beat2Numeric = new System.Windows.Forms.NumericUpDown();
+ this.label16 = new System.Windows.Forms.Label();
+ this.revEnd1Beat1Numeric = new System.Windows.Forms.NumericUpDown();
+ this.revEnd1MeasureNumeric = new System.Windows.Forms.NumericUpDown();
+ this.label17 = new System.Windows.Forms.Label();
+ this.stopEndBeat2Numeric = new System.Windows.Forms.NumericUpDown();
+ this.label10 = new System.Windows.Forms.Label();
+ this.stopEndBeat1Numeric = new System.Windows.Forms.NumericUpDown();
+ this.stopEndMeasureNumeric = new System.Windows.Forms.NumericUpDown();
+ this.label11 = new System.Windows.Forms.Label();
+ this.hiSpeedNumeric = new System.Windows.Forms.NumericUpDown();
+ this.label12 = new System.Windows.Forms.Label();
+ this.label13 = new System.Windows.Forms.Label();
+ this.label14 = new System.Windows.Forms.Label();
+ this.timeSig2Numeric = new System.Windows.Forms.NumericUpDown();
+ this.timeSig1Numeric = new System.Windows.Forms.NumericUpDown();
+ this.gimmickBpmNumeric = new System.Windows.Forms.NumericUpDown();
+ this.label15 = new System.Windows.Forms.Label();
+ this.insertGimmickButton = new System.Windows.Forms.Button();
+ this.startBeat2Numeric = new System.Windows.Forms.NumericUpDown();
+ this.label1 = new System.Windows.Forms.Label();
+ this.startBeat1Numeric = new System.Windows.Forms.NumericUpDown();
+ this.startMeasureNumeric = new System.Windows.Forms.NumericUpDown();
+ this.label2 = new System.Windows.Forms.Label();
+ ((System.ComponentModel.ISupportInitialize)(this.revEnd2Beat2Numeric)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.revEnd2Beat1Numeric)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.revEnd2MeasureNumeric)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.revEnd1Beat2Numeric)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.revEnd1Beat1Numeric)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.revEnd1MeasureNumeric)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.stopEndBeat2Numeric)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.stopEndBeat1Numeric)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.stopEndMeasureNumeric)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.hiSpeedNumeric)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.timeSig2Numeric)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.timeSig1Numeric)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.gimmickBpmNumeric)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.startBeat2Numeric)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.startBeat1Numeric)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.startMeasureNumeric)).BeginInit();
+ this.SuspendLayout();
+ //
+ // revEnd2Beat2Numeric
+ //
+ this.revEnd2Beat2Numeric.Location = new System.Drawing.Point(219, 206);
+ this.revEnd2Beat2Numeric.Maximum = new decimal(new int[] {
+ 1920,
+ 0,
+ 0,
+ 0});
+ this.revEnd2Beat2Numeric.Minimum = new decimal(new int[] {
+ 1,
+ 0,
+ 0,
+ 0});
+ this.revEnd2Beat2Numeric.Name = "revEnd2Beat2Numeric";
+ this.revEnd2Beat2Numeric.Size = new System.Drawing.Size(42, 23);
+ this.revEnd2Beat2Numeric.TabIndex = 38;
+ this.revEnd2Beat2Numeric.Value = new decimal(new int[] {
+ 16,
+ 0,
+ 0,
+ 0});
+ //
+ // label18
+ //
+ this.label18.AutoSize = true;
+ this.label18.Location = new System.Drawing.Point(8, 208);
+ this.label18.Name = "label18";
+ this.label18.Size = new System.Drawing.Size(61, 15);
+ this.label18.TabIndex = 40;
+ this.label18.Text = "Rev End 2:";
+ //
+ // revEnd2Beat1Numeric
+ //
+ this.revEnd2Beat1Numeric.Location = new System.Drawing.Point(168, 206);
+ this.revEnd2Beat1Numeric.Maximum = new decimal(new int[] {
+ 1920,
+ 0,
+ 0,
+ 0});
+ this.revEnd2Beat1Numeric.Minimum = new decimal(new int[] {
+ 1,
+ 0,
+ 0,
+ -2147483648});
+ this.revEnd2Beat1Numeric.Name = "revEnd2Beat1Numeric";
+ this.revEnd2Beat1Numeric.Size = new System.Drawing.Size(38, 23);
+ this.revEnd2Beat1Numeric.TabIndex = 37;
+ this.revEnd2Beat1Numeric.ValueChanged += new System.EventHandler(this.revEnd2Beat1Numeric_ValueChanged);
+ //
+ // revEnd2MeasureNumeric
+ //
+ this.revEnd2MeasureNumeric.Location = new System.Drawing.Point(75, 206);
+ this.revEnd2MeasureNumeric.Maximum = new decimal(new int[] {
+ 9999,
+ 0,
+ 0,
+ 0});
+ this.revEnd2MeasureNumeric.Name = "revEnd2MeasureNumeric";
+ this.revEnd2MeasureNumeric.Size = new System.Drawing.Size(87, 23);
+ this.revEnd2MeasureNumeric.TabIndex = 36;
+ this.revEnd2MeasureNumeric.ValueChanged += new System.EventHandler(this.revEnd2MeasureNumeric_ValueChanged);
+ //
+ // label19
+ //
+ this.label19.AutoSize = true;
+ this.label19.Location = new System.Drawing.Point(207, 208);
+ this.label19.Name = "label19";
+ this.label19.Size = new System.Drawing.Size(12, 15);
+ this.label19.TabIndex = 39;
+ this.label19.Text = "/";
+ //
+ // revEnd1Beat2Numeric
+ //
+ this.revEnd1Beat2Numeric.Location = new System.Drawing.Point(219, 177);
+ this.revEnd1Beat2Numeric.Maximum = new decimal(new int[] {
+ 1920,
+ 0,
+ 0,
+ 0});
+ this.revEnd1Beat2Numeric.Minimum = new decimal(new int[] {
+ 1,
+ 0,
+ 0,
+ 0});
+ this.revEnd1Beat2Numeric.Name = "revEnd1Beat2Numeric";
+ this.revEnd1Beat2Numeric.Size = new System.Drawing.Size(42, 23);
+ this.revEnd1Beat2Numeric.TabIndex = 33;
+ this.revEnd1Beat2Numeric.Value = new decimal(new int[] {
+ 16,
+ 0,
+ 0,
+ 0});
+ //
+ // label16
+ //
+ this.label16.AutoSize = true;
+ this.label16.Location = new System.Drawing.Point(8, 179);
+ this.label16.Name = "label16";
+ this.label16.Size = new System.Drawing.Size(61, 15);
+ this.label16.TabIndex = 35;
+ this.label16.Text = "Rev End 1:";
+ //
+ // revEnd1Beat1Numeric
+ //
+ this.revEnd1Beat1Numeric.Location = new System.Drawing.Point(168, 177);
+ this.revEnd1Beat1Numeric.Maximum = new decimal(new int[] {
+ 1920,
+ 0,
+ 0,
+ 0});
+ this.revEnd1Beat1Numeric.Minimum = new decimal(new int[] {
+ 1,
+ 0,
+ 0,
+ -2147483648});
+ this.revEnd1Beat1Numeric.Name = "revEnd1Beat1Numeric";
+ this.revEnd1Beat1Numeric.Size = new System.Drawing.Size(38, 23);
+ this.revEnd1Beat1Numeric.TabIndex = 32;
+ this.revEnd1Beat1Numeric.ValueChanged += new System.EventHandler(this.revEnd1Beat1Numeric_ValueChanged);
+ //
+ // revEnd1MeasureNumeric
+ //
+ this.revEnd1MeasureNumeric.Location = new System.Drawing.Point(75, 177);
+ this.revEnd1MeasureNumeric.Maximum = new decimal(new int[] {
+ 9999,
+ 0,
+ 0,
+ 0});
+ this.revEnd1MeasureNumeric.Name = "revEnd1MeasureNumeric";
+ this.revEnd1MeasureNumeric.Size = new System.Drawing.Size(87, 23);
+ this.revEnd1MeasureNumeric.TabIndex = 31;
+ this.revEnd1MeasureNumeric.ValueChanged += new System.EventHandler(this.revEnd1MeasureNumeric_ValueChanged);
+ //
+ // label17
+ //
+ this.label17.AutoSize = true;
+ this.label17.Location = new System.Drawing.Point(207, 179);
+ this.label17.Name = "label17";
+ this.label17.Size = new System.Drawing.Size(12, 15);
+ this.label17.TabIndex = 34;
+ this.label17.Text = "/";
+ //
+ // stopEndBeat2Numeric
+ //
+ this.stopEndBeat2Numeric.Location = new System.Drawing.Point(219, 148);
+ this.stopEndBeat2Numeric.Maximum = new decimal(new int[] {
+ 1920,
+ 0,
+ 0,
+ 0});
+ this.stopEndBeat2Numeric.Minimum = new decimal(new int[] {
+ 1,
+ 0,
+ 0,
+ 0});
+ this.stopEndBeat2Numeric.Name = "stopEndBeat2Numeric";
+ this.stopEndBeat2Numeric.Size = new System.Drawing.Size(42, 23);
+ this.stopEndBeat2Numeric.TabIndex = 13;
+ this.stopEndBeat2Numeric.Value = new decimal(new int[] {
+ 16,
+ 0,
+ 0,
+ 0});
+ //
+ // label10
+ //
+ this.label10.AutoSize = true;
+ this.label10.Location = new System.Drawing.Point(12, 150);
+ this.label10.Name = "label10";
+ this.label10.Size = new System.Drawing.Size(57, 15);
+ this.label10.TabIndex = 29;
+ this.label10.Text = "Stop End:";
+ //
+ // stopEndBeat1Numeric
+ //
+ this.stopEndBeat1Numeric.Location = new System.Drawing.Point(168, 148);
+ this.stopEndBeat1Numeric.Maximum = new decimal(new int[] {
+ 1920,
+ 0,
+ 0,
+ 0});
+ this.stopEndBeat1Numeric.Minimum = new decimal(new int[] {
+ 1,
+ 0,
+ 0,
+ -2147483648});
+ this.stopEndBeat1Numeric.Name = "stopEndBeat1Numeric";
+ this.stopEndBeat1Numeric.Size = new System.Drawing.Size(38, 23);
+ this.stopEndBeat1Numeric.TabIndex = 12;
+ this.stopEndBeat1Numeric.ValueChanged += new System.EventHandler(this.stopEndBeat1Numeric_ValueChanged);
+ //
+ // stopEndMeasureNumeric
+ //
+ this.stopEndMeasureNumeric.Location = new System.Drawing.Point(75, 148);
+ this.stopEndMeasureNumeric.Maximum = new decimal(new int[] {
+ 9999,
+ 0,
+ 0,
+ 0});
+ this.stopEndMeasureNumeric.Name = "stopEndMeasureNumeric";
+ this.stopEndMeasureNumeric.Size = new System.Drawing.Size(87, 23);
+ this.stopEndMeasureNumeric.TabIndex = 11;
+ this.stopEndMeasureNumeric.ValueChanged += new System.EventHandler(this.stopEndMeasureNumeric_ValueChanged);
+ //
+ // label11
+ //
+ this.label11.AutoSize = true;
+ this.label11.Location = new System.Drawing.Point(10, 121);
+ this.label11.Name = "label11";
+ this.label11.Size = new System.Drawing.Size(59, 15);
+ this.label11.TabIndex = 27;
+ this.label11.Text = "Hi-Speed:";
+ //
+ // hiSpeedNumeric
+ //
+ this.hiSpeedNumeric.DecimalPlaces = 6;
+ this.hiSpeedNumeric.Location = new System.Drawing.Point(75, 119);
+ this.hiSpeedNumeric.Minimum = new decimal(new int[] {
+ 100,
+ 0,
+ 0,
+ -2147483648});
+ this.hiSpeedNumeric.Name = "hiSpeedNumeric";
+ this.hiSpeedNumeric.Size = new System.Drawing.Size(186, 23);
+ this.hiSpeedNumeric.TabIndex = 26;
+ this.hiSpeedNumeric.Value = new decimal(new int[] {
+ 1,
+ 0,
+ 0,
+ 0});
+ //
+ // label12
+ //
+ this.label12.AutoSize = true;
+ this.label12.Location = new System.Drawing.Point(14, 92);
+ this.label12.Name = "label12";
+ this.label12.Size = new System.Drawing.Size(55, 15);
+ this.label12.TabIndex = 25;
+ this.label12.Text = "Time Sig:";
+ //
+ // label13
+ //
+ this.label13.AutoSize = true;
+ this.label13.Location = new System.Drawing.Point(140, 92);
+ this.label13.Name = "label13";
+ this.label13.Size = new System.Drawing.Size(12, 15);
+ this.label13.TabIndex = 13;
+ this.label13.Text = "/";
+ //
+ // label14
+ //
+ this.label14.AutoSize = true;
+ this.label14.Location = new System.Drawing.Point(34, 63);
+ this.label14.Name = "label14";
+ this.label14.Size = new System.Drawing.Size(35, 15);
+ this.label14.TabIndex = 24;
+ this.label14.Text = "BPM:";
+ //
+ // timeSig2Numeric
+ //
+ this.timeSig2Numeric.Location = new System.Drawing.Point(158, 90);
+ this.timeSig2Numeric.Maximum = new decimal(new int[] {
+ 1920,
+ 0,
+ 0,
+ 0});
+ this.timeSig2Numeric.Minimum = new decimal(new int[] {
+ 1,
+ 0,
+ 0,
+ 0});
+ this.timeSig2Numeric.Name = "timeSig2Numeric";
+ this.timeSig2Numeric.Size = new System.Drawing.Size(103, 23);
+ this.timeSig2Numeric.TabIndex = 12;
+ this.timeSig2Numeric.Value = new decimal(new int[] {
+ 4,
+ 0,
+ 0,
+ 0});
+ //
+ // timeSig1Numeric
+ //
+ this.timeSig1Numeric.Location = new System.Drawing.Point(75, 90);
+ this.timeSig1Numeric.Maximum = new decimal(new int[] {
+ 191,
+ 0,
+ 0,
+ 0});
+ this.timeSig1Numeric.Minimum = new decimal(new int[] {
+ 1,
+ 0,
+ 0,
+ 0});
+ this.timeSig1Numeric.Name = "timeSig1Numeric";
+ this.timeSig1Numeric.Size = new System.Drawing.Size(59, 23);
+ this.timeSig1Numeric.TabIndex = 11;
+ this.timeSig1Numeric.Value = new decimal(new int[] {
+ 4,
+ 0,
+ 0,
+ 0});
+ //
+ // gimmickBpmNumeric
+ //
+ this.gimmickBpmNumeric.DecimalPlaces = 6;
+ this.gimmickBpmNumeric.Location = new System.Drawing.Point(75, 61);
+ this.gimmickBpmNumeric.Maximum = new decimal(new int[] {
+ 9999,
+ 0,
+ 0,
+ 0});
+ this.gimmickBpmNumeric.Minimum = new decimal(new int[] {
+ 1,
+ 0,
+ 0,
+ 0});
+ this.gimmickBpmNumeric.Name = "gimmickBpmNumeric";
+ this.gimmickBpmNumeric.Size = new System.Drawing.Size(186, 23);
+ this.gimmickBpmNumeric.TabIndex = 23;
+ this.gimmickBpmNumeric.Value = new decimal(new int[] {
+ 120,
+ 0,
+ 0,
+ 0});
+ //
+ // label15
+ //
+ this.label15.AutoSize = true;
+ this.label15.Location = new System.Drawing.Point(207, 150);
+ this.label15.Name = "label15";
+ this.label15.Size = new System.Drawing.Size(12, 15);
+ this.label15.TabIndex = 14;
+ this.label15.Text = "/";
+ //
+ // insertGimmickButton
+ //
+ this.insertGimmickButton.Font = new System.Drawing.Font("Segoe UI", 11F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point);
+ this.insertGimmickButton.Location = new System.Drawing.Point(12, 248);
+ this.insertGimmickButton.Name = "insertGimmickButton";
+ this.insertGimmickButton.Size = new System.Drawing.Size(253, 40);
+ this.insertGimmickButton.TabIndex = 33;
+ this.insertGimmickButton.Text = "Insert Gimmick";
+ this.insertGimmickButton.UseVisualStyleBackColor = true;
+ this.insertGimmickButton.Click += new System.EventHandler(this.insertGimmickButton_Click);
+ //
+ // startBeat2Numeric
+ //
+ this.startBeat2Numeric.Location = new System.Drawing.Point(219, 12);
+ this.startBeat2Numeric.Maximum = new decimal(new int[] {
+ 1920,
+ 0,
+ 0,
+ 0});
+ this.startBeat2Numeric.Minimum = new decimal(new int[] {
+ 1,
+ 0,
+ 0,
+ 0});
+ this.startBeat2Numeric.Name = "startBeat2Numeric";
+ this.startBeat2Numeric.Size = new System.Drawing.Size(42, 23);
+ this.startBeat2Numeric.TabIndex = 43;
+ this.startBeat2Numeric.Value = new decimal(new int[] {
+ 16,
+ 0,
+ 0,
+ 0});
+ //
+ // label1
+ //
+ this.label1.AutoSize = true;
+ this.label1.Location = new System.Drawing.Point(34, 14);
+ this.label1.Name = "label1";
+ this.label1.Size = new System.Drawing.Size(34, 15);
+ this.label1.TabIndex = 45;
+ this.label1.Text = "Start:";
+ //
+ // startBeat1Numeric
+ //
+ this.startBeat1Numeric.Location = new System.Drawing.Point(168, 12);
+ this.startBeat1Numeric.Maximum = new decimal(new int[] {
+ 1920,
+ 0,
+ 0,
+ 0});
+ this.startBeat1Numeric.Minimum = new decimal(new int[] {
+ 1,
+ 0,
+ 0,
+ -2147483648});
+ this.startBeat1Numeric.Name = "startBeat1Numeric";
+ this.startBeat1Numeric.Size = new System.Drawing.Size(38, 23);
+ this.startBeat1Numeric.TabIndex = 42;
+ this.startBeat1Numeric.ValueChanged += new System.EventHandler(this.startBeat1Numeric_ValueChanged);
+ //
+ // startMeasureNumeric
+ //
+ this.startMeasureNumeric.Location = new System.Drawing.Point(75, 12);
+ this.startMeasureNumeric.Maximum = new decimal(new int[] {
+ 9999,
+ 0,
+ 0,
+ 0});
+ this.startMeasureNumeric.Name = "startMeasureNumeric";
+ this.startMeasureNumeric.Size = new System.Drawing.Size(87, 23);
+ this.startMeasureNumeric.TabIndex = 41;
+ this.startMeasureNumeric.ValueChanged += new System.EventHandler(this.startMeasureNumeric_ValueChanged);
+ //
+ // label2
+ //
+ this.label2.AutoSize = true;
+ this.label2.Location = new System.Drawing.Point(207, 14);
+ this.label2.Name = "label2";
+ this.label2.Size = new System.Drawing.Size(12, 15);
+ this.label2.TabIndex = 44;
+ this.label2.Text = "/";
+ //
+ // GimmickForm
+ //
+ this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 15F);
+ this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+ this.ClientSize = new System.Drawing.Size(281, 303);
+ this.Controls.Add(this.startBeat2Numeric);
+ this.Controls.Add(this.label1);
+ this.Controls.Add(this.startBeat1Numeric);
+ this.Controls.Add(this.startMeasureNumeric);
+ this.Controls.Add(this.label2);
+ this.Controls.Add(this.revEnd2Beat2Numeric);
+ this.Controls.Add(this.insertGimmickButton);
+ this.Controls.Add(this.label18);
+ this.Controls.Add(this.revEnd2Beat1Numeric);
+ this.Controls.Add(this.gimmickBpmNumeric);
+ this.Controls.Add(this.revEnd2MeasureNumeric);
+ this.Controls.Add(this.label15);
+ this.Controls.Add(this.label19);
+ this.Controls.Add(this.timeSig1Numeric);
+ this.Controls.Add(this.revEnd1Beat2Numeric);
+ this.Controls.Add(this.timeSig2Numeric);
+ this.Controls.Add(this.label16);
+ this.Controls.Add(this.label14);
+ this.Controls.Add(this.revEnd1Beat1Numeric);
+ this.Controls.Add(this.label13);
+ this.Controls.Add(this.revEnd1MeasureNumeric);
+ this.Controls.Add(this.label12);
+ this.Controls.Add(this.label17);
+ this.Controls.Add(this.hiSpeedNumeric);
+ this.Controls.Add(this.stopEndBeat2Numeric);
+ this.Controls.Add(this.label11);
+ this.Controls.Add(this.label10);
+ this.Controls.Add(this.stopEndMeasureNumeric);
+ this.Controls.Add(this.stopEndBeat1Numeric);
+ this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedToolWindow;
+ this.Name = "GimmickForm";
+ this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent;
+ this.Text = "Gimmick Settings";
+ this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.GimmickForm_FormClosing);
+ ((System.ComponentModel.ISupportInitialize)(this.revEnd2Beat2Numeric)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.revEnd2Beat1Numeric)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.revEnd2MeasureNumeric)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.revEnd1Beat2Numeric)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.revEnd1Beat1Numeric)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.revEnd1MeasureNumeric)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.stopEndBeat2Numeric)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.stopEndBeat1Numeric)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.stopEndMeasureNumeric)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.hiSpeedNumeric)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.timeSig2Numeric)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.timeSig1Numeric)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.gimmickBpmNumeric)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.startBeat2Numeric)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.startBeat1Numeric)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.startMeasureNumeric)).EndInit();
+ this.ResumeLayout(false);
+ this.PerformLayout();
+
+ }
+
+ #endregion
+ private NumericUpDown revEnd2Beat2Numeric;
+ private Label label18;
+ private NumericUpDown revEnd2Beat1Numeric;
+ private NumericUpDown revEnd2MeasureNumeric;
+ private Label label19;
+ private NumericUpDown revEnd1Beat2Numeric;
+ private Label label16;
+ private NumericUpDown revEnd1Beat1Numeric;
+ private NumericUpDown revEnd1MeasureNumeric;
+ private Label label17;
+ private NumericUpDown stopEndBeat2Numeric;
+ private Label label10;
+ private NumericUpDown stopEndBeat1Numeric;
+ private NumericUpDown stopEndMeasureNumeric;
+ private Label label11;
+ private NumericUpDown hiSpeedNumeric;
+ private Label label12;
+ private Label label13;
+ private Label label14;
+ private NumericUpDown timeSig2Numeric;
+ private NumericUpDown timeSig1Numeric;
+ private NumericUpDown gimmickBpmNumeric;
+ private Label label15;
+ private Button insertGimmickButton;
+ private NumericUpDown startBeat2Numeric;
+ private Label label1;
+ private NumericUpDown startBeat1Numeric;
+ private NumericUpDown startMeasureNumeric;
+ private Label label2;
+ }
+}
\ No newline at end of file
diff --git a/BAKKA-Editor/GimmickForm.cs b/BAKKA-Editor/GimmickForm.cs
new file mode 100644
index 0000000..c3dc871
--- /dev/null
+++ b/BAKKA-Editor/GimmickForm.cs
@@ -0,0 +1,20 @@
+using System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Data;
+using System.Drawing;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.Windows.Forms;
+
+namespace BAKKA_Editor
+{
+ public partial class GimmickForm : Form
+ {
+ public GimmickForm()
+ {
+ InitializeComponent();
+ }
+ }
+}
diff --git a/BAKKA-Editor/GimmickForm.resx b/BAKKA-Editor/GimmickForm.resx
new file mode 100644
index 0000000..e8ae276
--- /dev/null
+++ b/BAKKA-Editor/GimmickForm.resx
@@ -0,0 +1,61 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
\ No newline at end of file
diff --git a/BAKKA-Editor/InitChartSettingsForm.Designer.cs b/BAKKA-Editor/InitChartSettingsForm.Designer.cs
new file mode 100644
index 0000000..9da4bba
--- /dev/null
+++ b/BAKKA-Editor/InitChartSettingsForm.Designer.cs
@@ -0,0 +1,241 @@
+namespace BAKKA_Editor
+{
+ partial class InitChartSettingsForm
+ {
+ ///
+ /// Required designer variable.
+ ///
+ private System.ComponentModel.IContainer components = null;
+
+ ///
+ /// Clean up any resources being used.
+ ///
+ /// true if managed resources should be disposed; otherwise, false.
+ protected override void Dispose(bool disposing)
+ {
+ if (disposing && (components != null))
+ {
+ components.Dispose();
+ }
+ base.Dispose(disposing);
+ }
+
+ #region Windows Form Designer generated code
+
+ ///
+ /// Required method for Designer support - do not modify
+ /// the contents of this method with the code editor.
+ ///
+ private void InitializeComponent()
+ {
+ this.initSaveSettingsButton = new System.Windows.Forms.Button();
+ this.label9 = new System.Windows.Forms.Label();
+ this.initMovieOffsetNumeric = new System.Windows.Forms.NumericUpDown();
+ this.label8 = new System.Windows.Forms.Label();
+ this.initOffsetNumeric = new System.Windows.Forms.NumericUpDown();
+ this.label7 = new System.Windows.Forms.Label();
+ this.label6 = new System.Windows.Forms.Label();
+ this.label5 = new System.Windows.Forms.Label();
+ this.initTimeSig2Numeric = new System.Windows.Forms.NumericUpDown();
+ this.initTimeSig1Numeric = new System.Windows.Forms.NumericUpDown();
+ this.initBpmNumeric = new System.Windows.Forms.NumericUpDown();
+ ((System.ComponentModel.ISupportInitialize)(this.initMovieOffsetNumeric)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.initOffsetNumeric)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.initTimeSig2Numeric)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.initTimeSig1Numeric)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.initBpmNumeric)).BeginInit();
+ this.SuspendLayout();
+ //
+ // initSaveSettingsButton
+ //
+ this.initSaveSettingsButton.Location = new System.Drawing.Point(12, 128);
+ this.initSaveSettingsButton.Name = "initSaveSettingsButton";
+ this.initSaveSettingsButton.Size = new System.Drawing.Size(218, 23);
+ this.initSaveSettingsButton.TabIndex = 30;
+ this.initSaveSettingsButton.Text = "Save Settings";
+ this.initSaveSettingsButton.UseVisualStyleBackColor = true;
+ this.initSaveSettingsButton.Click += new System.EventHandler(this.initSaveSettingsButton_Click);
+ //
+ // label9
+ //
+ this.label9.AutoSize = true;
+ this.label9.Location = new System.Drawing.Point(46, 101);
+ this.label9.Name = "label9";
+ this.label9.Size = new System.Drawing.Size(78, 15);
+ this.label9.TabIndex = 29;
+ this.label9.Text = "Movie Offset:";
+ //
+ // initMovieOffsetNumeric
+ //
+ this.initMovieOffsetNumeric.DecimalPlaces = 6;
+ this.initMovieOffsetNumeric.Location = new System.Drawing.Point(130, 99);
+ this.initMovieOffsetNumeric.Maximum = new decimal(new int[] {
+ 9999,
+ 0,
+ 0,
+ 0});
+ this.initMovieOffsetNumeric.Name = "initMovieOffsetNumeric";
+ this.initMovieOffsetNumeric.Size = new System.Drawing.Size(100, 23);
+ this.initMovieOffsetNumeric.TabIndex = 28;
+ //
+ // label8
+ //
+ this.label8.AutoSize = true;
+ this.label8.Location = new System.Drawing.Point(82, 74);
+ this.label8.Name = "label8";
+ this.label8.Size = new System.Drawing.Size(42, 15);
+ this.label8.TabIndex = 27;
+ this.label8.Text = "Offset:";
+ //
+ // initOffsetNumeric
+ //
+ this.initOffsetNumeric.DecimalPlaces = 6;
+ this.initOffsetNumeric.Location = new System.Drawing.Point(130, 70);
+ this.initOffsetNumeric.Maximum = new decimal(new int[] {
+ 9999,
+ 0,
+ 0,
+ 0});
+ this.initOffsetNumeric.Name = "initOffsetNumeric";
+ this.initOffsetNumeric.Size = new System.Drawing.Size(100, 23);
+ this.initOffsetNumeric.TabIndex = 26;
+ //
+ // label7
+ //
+ this.label7.AutoSize = true;
+ this.label7.Location = new System.Drawing.Point(35, 43);
+ this.label7.Name = "label7";
+ this.label7.Size = new System.Drawing.Size(89, 15);
+ this.label7.TabIndex = 25;
+ this.label7.Text = "Time Signature:";
+ //
+ // label6
+ //
+ this.label6.AutoSize = true;
+ this.label6.Location = new System.Drawing.Point(174, 43);
+ this.label6.Name = "label6";
+ this.label6.Size = new System.Drawing.Size(12, 15);
+ this.label6.TabIndex = 13;
+ this.label6.Text = "/";
+ //
+ // label5
+ //
+ this.label5.AutoSize = true;
+ this.label5.Location = new System.Drawing.Point(89, 14);
+ this.label5.Name = "label5";
+ this.label5.Size = new System.Drawing.Size(35, 15);
+ this.label5.TabIndex = 24;
+ this.label5.Text = "BPM:";
+ //
+ // initTimeSig2Numeric
+ //
+ this.initTimeSig2Numeric.Location = new System.Drawing.Point(192, 41);
+ this.initTimeSig2Numeric.Maximum = new decimal(new int[] {
+ 1920,
+ 0,
+ 0,
+ 0});
+ this.initTimeSig2Numeric.Minimum = new decimal(new int[] {
+ 1,
+ 0,
+ 0,
+ 0});
+ this.initTimeSig2Numeric.Name = "initTimeSig2Numeric";
+ this.initTimeSig2Numeric.Size = new System.Drawing.Size(38, 23);
+ this.initTimeSig2Numeric.TabIndex = 12;
+ this.initTimeSig2Numeric.Value = new decimal(new int[] {
+ 4,
+ 0,
+ 0,
+ 0});
+ //
+ // initTimeSig1Numeric
+ //
+ this.initTimeSig1Numeric.Location = new System.Drawing.Point(130, 41);
+ this.initTimeSig1Numeric.Maximum = new decimal(new int[] {
+ 191,
+ 0,
+ 0,
+ 0});
+ this.initTimeSig1Numeric.Minimum = new decimal(new int[] {
+ 1,
+ 0,
+ 0,
+ 0});
+ this.initTimeSig1Numeric.Name = "initTimeSig1Numeric";
+ this.initTimeSig1Numeric.Size = new System.Drawing.Size(38, 23);
+ this.initTimeSig1Numeric.TabIndex = 11;
+ this.initTimeSig1Numeric.Value = new decimal(new int[] {
+ 4,
+ 0,
+ 0,
+ 0});
+ //
+ // initBpmNumeric
+ //
+ this.initBpmNumeric.DecimalPlaces = 6;
+ this.initBpmNumeric.Location = new System.Drawing.Point(130, 12);
+ this.initBpmNumeric.Maximum = new decimal(new int[] {
+ 9999,
+ 0,
+ 0,
+ 0});
+ this.initBpmNumeric.Minimum = new decimal(new int[] {
+ 1,
+ 0,
+ 0,
+ 0});
+ this.initBpmNumeric.Name = "initBpmNumeric";
+ this.initBpmNumeric.Size = new System.Drawing.Size(100, 23);
+ this.initBpmNumeric.TabIndex = 23;
+ this.initBpmNumeric.Value = new decimal(new int[] {
+ 120,
+ 0,
+ 0,
+ 0});
+ //
+ // InitChartSettingsForm
+ //
+ this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 15F);
+ this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+ this.ClientSize = new System.Drawing.Size(242, 164);
+ this.Controls.Add(this.initSaveSettingsButton);
+ this.Controls.Add(this.label9);
+ this.Controls.Add(this.initBpmNumeric);
+ this.Controls.Add(this.initMovieOffsetNumeric);
+ this.Controls.Add(this.initTimeSig1Numeric);
+ this.Controls.Add(this.label8);
+ this.Controls.Add(this.initTimeSig2Numeric);
+ this.Controls.Add(this.initOffsetNumeric);
+ this.Controls.Add(this.label5);
+ this.Controls.Add(this.label7);
+ this.Controls.Add(this.label6);
+ this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedToolWindow;
+ this.Name = "InitChartSettingsForm";
+ this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent;
+ this.Text = "Initial Chart Settings";
+ ((System.ComponentModel.ISupportInitialize)(this.initMovieOffsetNumeric)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.initOffsetNumeric)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.initTimeSig2Numeric)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.initTimeSig1Numeric)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.initBpmNumeric)).EndInit();
+ this.ResumeLayout(false);
+ this.PerformLayout();
+
+ }
+
+ #endregion
+
+ private Button initSaveSettingsButton;
+ private Label label9;
+ private NumericUpDown initMovieOffsetNumeric;
+ private Label label8;
+ private NumericUpDown initOffsetNumeric;
+ private Label label7;
+ private Label label6;
+ private Label label5;
+ private NumericUpDown initTimeSig2Numeric;
+ private NumericUpDown initTimeSig1Numeric;
+ private NumericUpDown initBpmNumeric;
+ }
+}
\ No newline at end of file
diff --git a/BAKKA-Editor/InitChartSettingsForm.cs b/BAKKA-Editor/InitChartSettingsForm.cs
new file mode 100644
index 0000000..0315982
--- /dev/null
+++ b/BAKKA-Editor/InitChartSettingsForm.cs
@@ -0,0 +1,20 @@
+using System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Data;
+using System.Drawing;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.Windows.Forms;
+
+namespace BAKKA_Editor
+{
+ public partial class InitChartSettingsForm : Form
+ {
+ public InitChartSettingsForm()
+ {
+ InitializeComponent();
+ }
+ }
+}
diff --git a/BAKKA-Editor/InitChartSettingsForm.resx b/BAKKA-Editor/InitChartSettingsForm.resx
new file mode 100644
index 0000000..1af7de1
--- /dev/null
+++ b/BAKKA-Editor/InitChartSettingsForm.resx
@@ -0,0 +1,120 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
\ No newline at end of file
diff --git a/BAKKA-Editor/MainForm.Designer.cs b/BAKKA-Editor/MainForm.Designer.cs
new file mode 100644
index 0000000..e67feee
--- /dev/null
+++ b/BAKKA-Editor/MainForm.Designer.cs
@@ -0,0 +1,1479 @@
+namespace BAKKA_Editor
+{
+ partial class MainForm
+ {
+ ///
+ /// Required designer variable.
+ ///
+ private System.ComponentModel.IContainer components = null;
+
+ ///
+ /// Clean up any resources being used.
+ ///
+ /// true if managed resources should be disposed; otherwise, false.
+ protected override void Dispose(bool disposing)
+ {
+ if (disposing && (components != null))
+ {
+ components.Dispose();
+ }
+ base.Dispose(disposing);
+ }
+
+ #region Windows Form Designer generated code
+
+ ///
+ /// Required method for Designer support - do not modify
+ /// the contents of this method with the code editor.
+ ///
+ private void InitializeComponent()
+ {
+ this.components = new System.ComponentModel.Container();
+ this.openFileDialog = new System.Windows.Forms.OpenFileDialog();
+ this.saveFileDialog = new System.Windows.Forms.SaveFileDialog();
+ this.circlePanel = new System.Windows.Forms.Panel();
+ this.groupBox1 = new System.Windows.Forms.GroupBox();
+ this.label4 = new System.Windows.Forms.Label();
+ this.beat2Numeric = new System.Windows.Forms.NumericUpDown();
+ this.beat1Numeric = new System.Windows.Forms.NumericUpDown();
+ this.measureNumeric = new System.Windows.Forms.NumericUpDown();
+ this.label3 = new System.Windows.Forms.Label();
+ this.sizeTrackBar = new System.Windows.Forms.TrackBar();
+ this.sizeNumeric = new System.Windows.Forms.NumericUpDown();
+ this.label2 = new System.Windows.Forms.Label();
+ this.positionTrackBar = new System.Windows.Forms.TrackBar();
+ this.positionNumeric = new System.Windows.Forms.NumericUpDown();
+ this.label1 = new System.Windows.Forms.Label();
+ this.groupBox2 = new System.Windows.Forms.GroupBox();
+ this.flairRadio = new System.Windows.Forms.RadioButton();
+ this.bonusRadio = new System.Windows.Forms.RadioButton();
+ this.noBonusRadio = new System.Windows.Forms.RadioButton();
+ this.endHoldCheck = new System.Windows.Forms.CheckBox();
+ this.endChartButton = new System.Windows.Forms.Button();
+ this.holdButton = new System.Windows.Forms.Button();
+ this.chainButton = new System.Windows.Forms.Button();
+ this.blueButton = new System.Windows.Forms.Button();
+ this.redButton = new System.Windows.Forms.Button();
+ this.greenButton = new System.Windows.Forms.Button();
+ this.orangeButton = new System.Windows.Forms.Button();
+ this.tapButton = new System.Windows.Forms.Button();
+ this.gimmickTypeGroupBox = new System.Windows.Forms.GroupBox();
+ this.removeMaskRadio = new System.Windows.Forms.RadioButton();
+ this.reverseButton = new System.Windows.Forms.Button();
+ this.addMaskRadio = new System.Windows.Forms.RadioButton();
+ this.stopButton = new System.Windows.Forms.Button();
+ this.hiSpeedButton = new System.Windows.Forms.Button();
+ this.timeSigButton = new System.Windows.Forms.Button();
+ this.bpmChangeButton = new System.Windows.Forms.Button();
+ this.maskButton = new System.Windows.Forms.Button();
+ this.groupBox4 = new System.Windows.Forms.GroupBox();
+ this.centerMaskRadio = new System.Windows.Forms.RadioButton();
+ this.clockwiseMaskRadio = new System.Windows.Forms.RadioButton();
+ this.cClockwiseMaskRadio = new System.Windows.Forms.RadioButton();
+ this.groupBox5 = new System.Windows.Forms.GroupBox();
+ this.currentSelectionLabel = new System.Windows.Forms.Label();
+ this.playbackGroupBox = new System.Windows.Forms.GroupBox();
+ this.songFileLabel = new System.Windows.Forms.Label();
+ this.label20 = new System.Windows.Forms.Label();
+ this.songTrackBar = new System.Windows.Forms.TrackBar();
+ this.selectSongButton = new System.Windows.Forms.Button();
+ this.playButton = new System.Windows.Forms.Button();
+ this.openSongDialog = new System.Windows.Forms.OpenFileDialog();
+ this.updateTimer = new System.Windows.Forms.Timer(this.components);
+ this.groupBox9 = new System.Windows.Forms.GroupBox();
+ this.label21 = new System.Windows.Forms.Label();
+ this.visualHispeedNumeric = new System.Windows.Forms.NumericUpDown();
+ this.insertButton = new System.Windows.Forms.Button();
+ this.fileToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
+ this.newToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
+ this.openToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
+ this.saveToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
+ this.saveAsToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
+ this.exitToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
+ this.viewToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
+ this.showCursorToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
+ this.showCursorDuringPlaybackToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
+ this.highlightViewedNoteToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
+ this.chartToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
+ this.initialChartSettingsToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
+ this.aboutToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
+ this.menuStrip = new System.Windows.Forms.MenuStrip();
+ this.editToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
+ this.undoToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
+ this.redoToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
+ this.groupBox6 = new System.Windows.Forms.GroupBox();
+ this.gimmickDeleteButton = new System.Windows.Forms.Button();
+ this.gimmickEditButton = new System.Windows.Forms.Button();
+ this.gimmickBeatLabel = new System.Windows.Forms.Label();
+ this.gimmickValueLabel = new System.Windows.Forms.Label();
+ this.gimmickTypeLabel = new System.Windows.Forms.Label();
+ this.gimmickMeasureLabel = new System.Windows.Forms.Label();
+ this.label8 = new System.Windows.Forms.Label();
+ this.label7 = new System.Windows.Forms.Label();
+ this.label6 = new System.Windows.Forms.Label();
+ this.label5 = new System.Windows.Forms.Label();
+ this.gimmickNextButton = new System.Windows.Forms.Button();
+ this.gimmickPrevButton = new System.Windows.Forms.Button();
+ this.noteViewGroupBox = new System.Windows.Forms.GroupBox();
+ this.noteMaskLabel = new System.Windows.Forms.Label();
+ this.label9 = new System.Windows.Forms.Label();
+ this.noteSizeLabel = new System.Windows.Forms.Label();
+ this.label17 = new System.Windows.Forms.Label();
+ this.noteNextMeasureButton = new System.Windows.Forms.Button();
+ this.notePrevMeasureButton = new System.Windows.Forms.Button();
+ this.noteDeleteSelectedButton = new System.Windows.Forms.Button();
+ this.noteEditSelectedButton = new System.Windows.Forms.Button();
+ this.noteBeatLabel = new System.Windows.Forms.Label();
+ this.notePositionLabel = new System.Windows.Forms.Label();
+ this.noteTypeLabel = new System.Windows.Forms.Label();
+ this.noteMeasureLabel = new System.Windows.Forms.Label();
+ this.label13 = new System.Windows.Forms.Label();
+ this.label14 = new System.Windows.Forms.Label();
+ this.label15 = new System.Windows.Forms.Label();
+ this.label16 = new System.Windows.Forms.Label();
+ this.noteNextButton = new System.Windows.Forms.Button();
+ this.notePrevButton = new System.Windows.Forms.Button();
+ this.autoSaveTimer = new System.Windows.Forms.Timer(this.components);
+ this.groupBox1.SuspendLayout();
+ ((System.ComponentModel.ISupportInitialize)(this.beat2Numeric)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.beat1Numeric)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.measureNumeric)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.sizeTrackBar)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.sizeNumeric)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.positionTrackBar)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.positionNumeric)).BeginInit();
+ this.groupBox2.SuspendLayout();
+ this.gimmickTypeGroupBox.SuspendLayout();
+ this.groupBox4.SuspendLayout();
+ this.groupBox5.SuspendLayout();
+ this.playbackGroupBox.SuspendLayout();
+ ((System.ComponentModel.ISupportInitialize)(this.songTrackBar)).BeginInit();
+ this.groupBox9.SuspendLayout();
+ ((System.ComponentModel.ISupportInitialize)(this.visualHispeedNumeric)).BeginInit();
+ this.menuStrip.SuspendLayout();
+ this.groupBox6.SuspendLayout();
+ this.noteViewGroupBox.SuspendLayout();
+ this.SuspendLayout();
+ //
+ // openFileDialog
+ //
+ this.openFileDialog.FileName = "openFileDialog";
+ this.openFileDialog.Filter = "MER files|*.mer";
+ this.openFileDialog.Title = "Select Chart File to Open";
+ //
+ // saveFileDialog
+ //
+ this.saveFileDialog.DefaultExt = "*.mer";
+ this.saveFileDialog.Filter = "MER files|*.mer";
+ //
+ // circlePanel
+ //
+ this.circlePanel.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
+ | System.Windows.Forms.AnchorStyles.Left)));
+ this.circlePanel.Location = new System.Drawing.Point(257, 40);
+ this.circlePanel.Name = "circlePanel";
+ this.circlePanel.Size = new System.Drawing.Size(611, 611);
+ this.circlePanel.TabIndex = 2;
+ this.circlePanel.Paint += new System.Windows.Forms.PaintEventHandler(this.circlePanel_Paint);
+ this.circlePanel.MouseDown += new System.Windows.Forms.MouseEventHandler(this.circlePanel_MouseDown);
+ this.circlePanel.MouseMove += new System.Windows.Forms.MouseEventHandler(this.circlePanel_MouseMove);
+ this.circlePanel.MouseUp += new System.Windows.Forms.MouseEventHandler(this.circlePanel_MouseUp);
+ //
+ // groupBox1
+ //
+ this.groupBox1.Controls.Add(this.label4);
+ this.groupBox1.Controls.Add(this.beat2Numeric);
+ this.groupBox1.Controls.Add(this.beat1Numeric);
+ this.groupBox1.Controls.Add(this.measureNumeric);
+ this.groupBox1.Controls.Add(this.label3);
+ this.groupBox1.Controls.Add(this.sizeTrackBar);
+ this.groupBox1.Controls.Add(this.sizeNumeric);
+ this.groupBox1.Controls.Add(this.label2);
+ this.groupBox1.Controls.Add(this.positionTrackBar);
+ this.groupBox1.Controls.Add(this.positionNumeric);
+ this.groupBox1.Controls.Add(this.label1);
+ this.groupBox1.Location = new System.Drawing.Point(12, 446);
+ this.groupBox1.Name = "groupBox1";
+ this.groupBox1.Size = new System.Drawing.Size(239, 160);
+ this.groupBox1.TabIndex = 3;
+ this.groupBox1.TabStop = false;
+ this.groupBox1.Text = "Current Note Settings";
+ //
+ // label4
+ //
+ this.label4.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
+ this.label4.AutoSize = true;
+ this.label4.Location = new System.Drawing.Point(175, 131);
+ this.label4.Name = "label4";
+ this.label4.Size = new System.Drawing.Size(12, 15);
+ this.label4.TabIndex = 10;
+ this.label4.Text = "/";
+ //
+ // beat2Numeric
+ //
+ this.beat2Numeric.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
+ this.beat2Numeric.Location = new System.Drawing.Point(193, 129);
+ this.beat2Numeric.Maximum = new decimal(new int[] {
+ 1920,
+ 0,
+ 0,
+ 0});
+ this.beat2Numeric.Minimum = new decimal(new int[] {
+ 1,
+ 0,
+ 0,
+ 0});
+ this.beat2Numeric.Name = "beat2Numeric";
+ this.beat2Numeric.Size = new System.Drawing.Size(38, 23);
+ this.beat2Numeric.TabIndex = 9;
+ this.beat2Numeric.Value = new decimal(new int[] {
+ 16,
+ 0,
+ 0,
+ 0});
+ this.beat2Numeric.ValueChanged += new System.EventHandler(this.beat2Numeric_ValueChanged);
+ //
+ // beat1Numeric
+ //
+ this.beat1Numeric.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
+ this.beat1Numeric.Location = new System.Drawing.Point(131, 129);
+ this.beat1Numeric.Maximum = new decimal(new int[] {
+ 1920,
+ 0,
+ 0,
+ 0});
+ this.beat1Numeric.Minimum = new decimal(new int[] {
+ 1,
+ 0,
+ 0,
+ -2147483648});
+ this.beat1Numeric.Name = "beat1Numeric";
+ this.beat1Numeric.Size = new System.Drawing.Size(38, 23);
+ this.beat1Numeric.TabIndex = 8;
+ this.beat1Numeric.ValueChanged += new System.EventHandler(this.beat1Numeric_ValueChanged);
+ //
+ // measureNumeric
+ //
+ this.measureNumeric.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
+ | System.Windows.Forms.AnchorStyles.Right)));
+ this.measureNumeric.Location = new System.Drawing.Point(6, 129);
+ this.measureNumeric.Maximum = new decimal(new int[] {
+ 9999,
+ 0,
+ 0,
+ 0});
+ this.measureNumeric.Name = "measureNumeric";
+ this.measureNumeric.Size = new System.Drawing.Size(119, 23);
+ this.measureNumeric.TabIndex = 7;
+ this.measureNumeric.ValueChanged += new System.EventHandler(this.measureNumeric_ValueChanged);
+ //
+ // label3
+ //
+ this.label3.AutoSize = true;
+ this.label3.Location = new System.Drawing.Point(6, 111);
+ this.label3.Name = "label3";
+ this.label3.Size = new System.Drawing.Size(55, 15);
+ this.label3.TabIndex = 6;
+ this.label3.Text = "Measure:";
+ //
+ // sizeTrackBar
+ //
+ this.sizeTrackBar.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
+ | System.Windows.Forms.AnchorStyles.Right)));
+ this.sizeTrackBar.Location = new System.Drawing.Point(50, 81);
+ this.sizeTrackBar.Maximum = 60;
+ this.sizeTrackBar.Minimum = 1;
+ this.sizeTrackBar.Name = "sizeTrackBar";
+ this.sizeTrackBar.Size = new System.Drawing.Size(183, 45);
+ this.sizeTrackBar.TabIndex = 5;
+ this.sizeTrackBar.TickStyle = System.Windows.Forms.TickStyle.None;
+ this.sizeTrackBar.Value = 1;
+ this.sizeTrackBar.ValueChanged += new System.EventHandler(this.sizeTrackBar_ValueChanged);
+ //
+ // sizeNumeric
+ //
+ this.sizeNumeric.Location = new System.Drawing.Point(6, 81);
+ this.sizeNumeric.Maximum = new decimal(new int[] {
+ 60,
+ 0,
+ 0,
+ 0});
+ this.sizeNumeric.Minimum = new decimal(new int[] {
+ 1,
+ 0,
+ 0,
+ 0});
+ this.sizeNumeric.Name = "sizeNumeric";
+ this.sizeNumeric.Size = new System.Drawing.Size(38, 23);
+ this.sizeNumeric.TabIndex = 4;
+ this.sizeNumeric.Value = new decimal(new int[] {
+ 1,
+ 0,
+ 0,
+ 0});
+ //
+ // label2
+ //
+ this.label2.AutoSize = true;
+ this.label2.Location = new System.Drawing.Point(6, 63);
+ this.label2.Name = "label2";
+ this.label2.Size = new System.Drawing.Size(30, 15);
+ this.label2.TabIndex = 3;
+ this.label2.Text = "Size:";
+ //
+ // positionTrackBar
+ //
+ this.positionTrackBar.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
+ | System.Windows.Forms.AnchorStyles.Right)));
+ this.positionTrackBar.Location = new System.Drawing.Point(50, 37);
+ this.positionTrackBar.Maximum = 59;
+ this.positionTrackBar.Name = "positionTrackBar";
+ this.positionTrackBar.Size = new System.Drawing.Size(183, 45);
+ this.positionTrackBar.TabIndex = 2;
+ this.positionTrackBar.TickStyle = System.Windows.Forms.TickStyle.None;
+ this.positionTrackBar.ValueChanged += new System.EventHandler(this.positionTrackBar_ValueChanged);
+ //
+ // positionNumeric
+ //
+ this.positionNumeric.Location = new System.Drawing.Point(6, 37);
+ this.positionNumeric.Maximum = new decimal(new int[] {
+ 59,
+ 0,
+ 0,
+ 0});
+ this.positionNumeric.Name = "positionNumeric";
+ this.positionNumeric.Size = new System.Drawing.Size(38, 23);
+ this.positionNumeric.TabIndex = 1;
+ //
+ // label1
+ //
+ this.label1.AutoSize = true;
+ this.label1.Location = new System.Drawing.Point(6, 19);
+ this.label1.Name = "label1";
+ this.label1.Size = new System.Drawing.Size(53, 15);
+ this.label1.TabIndex = 0;
+ this.label1.Text = "Position:";
+ //
+ // groupBox2
+ //
+ this.groupBox2.Controls.Add(this.flairRadio);
+ this.groupBox2.Controls.Add(this.bonusRadio);
+ this.groupBox2.Controls.Add(this.noBonusRadio);
+ this.groupBox2.Controls.Add(this.endHoldCheck);
+ this.groupBox2.Controls.Add(this.endChartButton);
+ this.groupBox2.Controls.Add(this.holdButton);
+ this.groupBox2.Controls.Add(this.chainButton);
+ this.groupBox2.Controls.Add(this.blueButton);
+ this.groupBox2.Controls.Add(this.redButton);
+ this.groupBox2.Controls.Add(this.greenButton);
+ this.groupBox2.Controls.Add(this.orangeButton);
+ this.groupBox2.Controls.Add(this.tapButton);
+ this.groupBox2.Location = new System.Drawing.Point(12, 27);
+ this.groupBox2.Name = "groupBox2";
+ this.groupBox2.Size = new System.Drawing.Size(109, 358);
+ this.groupBox2.TabIndex = 4;
+ this.groupBox2.TabStop = false;
+ this.groupBox2.Text = "Note Types";
+ //
+ // flairRadio
+ //
+ this.flairRadio.AutoSize = true;
+ this.flairRadio.Location = new System.Drawing.Point(6, 329);
+ this.flairRadio.Name = "flairRadio";
+ this.flairRadio.Size = new System.Drawing.Size(94, 19);
+ this.flairRadio.TabIndex = 16;
+ this.flairRadio.Text = "R Note (Flair)";
+ this.flairRadio.UseVisualStyleBackColor = true;
+ this.flairRadio.CheckedChanged += new System.EventHandler(this.BonusRadioCheck);
+ //
+ // bonusRadio
+ //
+ this.bonusRadio.AutoSize = true;
+ this.bonusRadio.Location = new System.Drawing.Point(6, 304);
+ this.bonusRadio.Name = "bonusRadio";
+ this.bonusRadio.Size = new System.Drawing.Size(79, 19);
+ this.bonusRadio.TabIndex = 15;
+ this.bonusRadio.Text = "Bonus Get";
+ this.bonusRadio.UseVisualStyleBackColor = true;
+ this.bonusRadio.CheckedChanged += new System.EventHandler(this.BonusRadioCheck);
+ //
+ // noBonusRadio
+ //
+ this.noBonusRadio.AutoSize = true;
+ this.noBonusRadio.Checked = true;
+ this.noBonusRadio.Location = new System.Drawing.Point(6, 279);
+ this.noBonusRadio.Name = "noBonusRadio";
+ this.noBonusRadio.Size = new System.Drawing.Size(77, 19);
+ this.noBonusRadio.TabIndex = 14;
+ this.noBonusRadio.TabStop = true;
+ this.noBonusRadio.Text = "No Bonus";
+ this.noBonusRadio.UseVisualStyleBackColor = true;
+ this.noBonusRadio.CheckedChanged += new System.EventHandler(this.BonusRadioCheck);
+ //
+ // endHoldCheck
+ //
+ this.endHoldCheck.AutoSize = true;
+ this.endHoldCheck.Location = new System.Drawing.Point(6, 254);
+ this.endHoldCheck.Name = "endHoldCheck";
+ this.endHoldCheck.Size = new System.Drawing.Size(75, 19);
+ this.endHoldCheck.TabIndex = 13;
+ this.endHoldCheck.Text = "End Hold";
+ this.endHoldCheck.UseVisualStyleBackColor = true;
+ this.endHoldCheck.CheckedChanged += new System.EventHandler(this.endHoldCheck_CheckedChanged);
+ //
+ // endChartButton
+ //
+ this.endChartButton.Location = new System.Drawing.Point(6, 225);
+ this.endChartButton.Name = "endChartButton";
+ this.endChartButton.Size = new System.Drawing.Size(86, 23);
+ this.endChartButton.TabIndex = 12;
+ this.endChartButton.Text = "End of Chart";
+ this.endChartButton.UseVisualStyleBackColor = true;
+ this.endChartButton.Click += new System.EventHandler(this.endChartButton_Click);
+ //
+ // holdButton
+ //
+ this.holdButton.BackColor = System.Drawing.Color.Yellow;
+ this.holdButton.Location = new System.Drawing.Point(6, 196);
+ this.holdButton.Name = "holdButton";
+ this.holdButton.Size = new System.Drawing.Size(86, 23);
+ this.holdButton.TabIndex = 11;
+ this.holdButton.Text = "Hold (H)";
+ this.holdButton.UseVisualStyleBackColor = false;
+ this.holdButton.Click += new System.EventHandler(this.holdButton_Click);
+ //
+ // chainButton
+ //
+ this.chainButton.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(204)))), ((int)(((byte)(190)))), ((int)(((byte)(45)))));
+ this.chainButton.Location = new System.Drawing.Point(6, 167);
+ this.chainButton.Name = "chainButton";
+ this.chainButton.Size = new System.Drawing.Size(86, 23);
+ this.chainButton.TabIndex = 10;
+ this.chainButton.Text = "Chain (Y)";
+ this.chainButton.UseVisualStyleBackColor = false;
+ this.chainButton.Click += new System.EventHandler(this.chainButton_Click);
+ //
+ // blueButton
+ //
+ this.blueButton.BackColor = System.Drawing.Color.Cyan;
+ this.blueButton.ForeColor = System.Drawing.SystemColors.ControlText;
+ this.blueButton.Location = new System.Drawing.Point(6, 138);
+ this.blueButton.Name = "blueButton";
+ this.blueButton.Size = new System.Drawing.Size(86, 23);
+ this.blueButton.TabIndex = 9;
+ this.blueButton.Text = "↓ Snap (B)";
+ this.blueButton.UseVisualStyleBackColor = false;
+ this.blueButton.Click += new System.EventHandler(this.blueButton_Click);
+ //
+ // redButton
+ //
+ this.redButton.BackColor = System.Drawing.Color.Red;
+ this.redButton.ForeColor = System.Drawing.Color.White;
+ this.redButton.Location = new System.Drawing.Point(6, 109);
+ this.redButton.Name = "redButton";
+ this.redButton.Size = new System.Drawing.Size(86, 23);
+ this.redButton.TabIndex = 8;
+ this.redButton.Text = "↑ Snap (R)";
+ this.redButton.UseVisualStyleBackColor = false;
+ this.redButton.Click += new System.EventHandler(this.redButton_Click);
+ //
+ // greenButton
+ //
+ this.greenButton.BackColor = System.Drawing.Color.Lime;
+ this.greenButton.Location = new System.Drawing.Point(6, 80);
+ this.greenButton.Name = "greenButton";
+ this.greenButton.Size = new System.Drawing.Size(86, 23);
+ this.greenButton.TabIndex = 7;
+ this.greenButton.Text = "→ Slide (G)";
+ this.greenButton.UseVisualStyleBackColor = false;
+ this.greenButton.Click += new System.EventHandler(this.greenButton_Click);
+ //
+ // orangeButton
+ //
+ this.orangeButton.BackColor = System.Drawing.Color.Orange;
+ this.orangeButton.Location = new System.Drawing.Point(6, 51);
+ this.orangeButton.Name = "orangeButton";
+ this.orangeButton.Size = new System.Drawing.Size(86, 23);
+ this.orangeButton.TabIndex = 6;
+ this.orangeButton.Text = "← Slide (O)";
+ this.orangeButton.UseVisualStyleBackColor = false;
+ this.orangeButton.Click += new System.EventHandler(this.orangeButton_Click);
+ //
+ // tapButton
+ //
+ this.tapButton.BackColor = System.Drawing.Color.Fuchsia;
+ this.tapButton.Location = new System.Drawing.Point(6, 22);
+ this.tapButton.Name = "tapButton";
+ this.tapButton.Size = new System.Drawing.Size(86, 23);
+ this.tapButton.TabIndex = 5;
+ this.tapButton.Text = "Touch (T)";
+ this.tapButton.UseVisualStyleBackColor = false;
+ this.tapButton.Click += new System.EventHandler(this.tapButton_Click);
+ //
+ // gimmickTypeGroupBox
+ //
+ this.gimmickTypeGroupBox.Controls.Add(this.removeMaskRadio);
+ this.gimmickTypeGroupBox.Controls.Add(this.reverseButton);
+ this.gimmickTypeGroupBox.Controls.Add(this.addMaskRadio);
+ this.gimmickTypeGroupBox.Controls.Add(this.stopButton);
+ this.gimmickTypeGroupBox.Controls.Add(this.hiSpeedButton);
+ this.gimmickTypeGroupBox.Controls.Add(this.timeSigButton);
+ this.gimmickTypeGroupBox.Controls.Add(this.bpmChangeButton);
+ this.gimmickTypeGroupBox.Controls.Add(this.maskButton);
+ this.gimmickTypeGroupBox.Location = new System.Drawing.Point(127, 30);
+ this.gimmickTypeGroupBox.Name = "gimmickTypeGroupBox";
+ this.gimmickTypeGroupBox.Size = new System.Drawing.Size(124, 249);
+ this.gimmickTypeGroupBox.TabIndex = 5;
+ this.gimmickTypeGroupBox.TabStop = false;
+ this.gimmickTypeGroupBox.Text = "Gimmick Types";
+ //
+ // removeMaskRadio
+ //
+ this.removeMaskRadio.AutoSize = true;
+ this.removeMaskRadio.Location = new System.Drawing.Point(6, 222);
+ this.removeMaskRadio.Name = "removeMaskRadio";
+ this.removeMaskRadio.Size = new System.Drawing.Size(99, 19);
+ this.removeMaskRadio.TabIndex = 18;
+ this.removeMaskRadio.Text = "Remove Mask";
+ this.removeMaskRadio.UseVisualStyleBackColor = true;
+ this.removeMaskRadio.CheckedChanged += new System.EventHandler(this.maskRatio_CheckChanged);
+ //
+ // reverseButton
+ //
+ this.reverseButton.Location = new System.Drawing.Point(6, 167);
+ this.reverseButton.Name = "reverseButton";
+ this.reverseButton.Size = new System.Drawing.Size(112, 23);
+ this.reverseButton.TabIndex = 5;
+ this.reverseButton.Text = "Reverse";
+ this.reverseButton.UseVisualStyleBackColor = true;
+ this.reverseButton.Click += new System.EventHandler(this.reverseButton_Click);
+ //
+ // addMaskRadio
+ //
+ this.addMaskRadio.AutoSize = true;
+ this.addMaskRadio.Checked = true;
+ this.addMaskRadio.Location = new System.Drawing.Point(6, 197);
+ this.addMaskRadio.Name = "addMaskRadio";
+ this.addMaskRadio.Size = new System.Drawing.Size(78, 19);
+ this.addMaskRadio.TabIndex = 17;
+ this.addMaskRadio.TabStop = true;
+ this.addMaskRadio.Text = "Add Mask";
+ this.addMaskRadio.UseVisualStyleBackColor = true;
+ this.addMaskRadio.CheckedChanged += new System.EventHandler(this.maskRatio_CheckChanged);
+ //
+ // stopButton
+ //
+ this.stopButton.Location = new System.Drawing.Point(6, 138);
+ this.stopButton.Name = "stopButton";
+ this.stopButton.Size = new System.Drawing.Size(112, 23);
+ this.stopButton.TabIndex = 4;
+ this.stopButton.Text = "Stop";
+ this.stopButton.UseVisualStyleBackColor = true;
+ this.stopButton.Click += new System.EventHandler(this.stopButton_Click);
+ //
+ // hiSpeedButton
+ //
+ this.hiSpeedButton.Location = new System.Drawing.Point(6, 109);
+ this.hiSpeedButton.Name = "hiSpeedButton";
+ this.hiSpeedButton.Size = new System.Drawing.Size(112, 23);
+ this.hiSpeedButton.TabIndex = 3;
+ this.hiSpeedButton.Text = "Hi-Speed";
+ this.hiSpeedButton.UseVisualStyleBackColor = true;
+ this.hiSpeedButton.Click += new System.EventHandler(this.hiSpeedButton_Click);
+ //
+ // timeSigButton
+ //
+ this.timeSigButton.Location = new System.Drawing.Point(6, 80);
+ this.timeSigButton.Name = "timeSigButton";
+ this.timeSigButton.Size = new System.Drawing.Size(112, 23);
+ this.timeSigButton.TabIndex = 2;
+ this.timeSigButton.Text = "Time Signature";
+ this.timeSigButton.UseVisualStyleBackColor = true;
+ this.timeSigButton.Click += new System.EventHandler(this.timeSigButton_Click);
+ //
+ // bpmChangeButton
+ //
+ this.bpmChangeButton.Location = new System.Drawing.Point(6, 51);
+ this.bpmChangeButton.Name = "bpmChangeButton";
+ this.bpmChangeButton.Size = new System.Drawing.Size(112, 23);
+ this.bpmChangeButton.TabIndex = 1;
+ this.bpmChangeButton.Text = "BPM Change";
+ this.bpmChangeButton.UseVisualStyleBackColor = true;
+ this.bpmChangeButton.Click += new System.EventHandler(this.bpmChangeButton_Click);
+ //
+ // maskButton
+ //
+ this.maskButton.Location = new System.Drawing.Point(6, 22);
+ this.maskButton.Name = "maskButton";
+ this.maskButton.Size = new System.Drawing.Size(112, 23);
+ this.maskButton.TabIndex = 0;
+ this.maskButton.Text = "Mask";
+ this.maskButton.UseVisualStyleBackColor = true;
+ this.maskButton.Click += new System.EventHandler(this.maskButton_Click);
+ //
+ // groupBox4
+ //
+ this.groupBox4.Controls.Add(this.centerMaskRadio);
+ this.groupBox4.Controls.Add(this.clockwiseMaskRadio);
+ this.groupBox4.Controls.Add(this.cClockwiseMaskRadio);
+ this.groupBox4.Location = new System.Drawing.Point(127, 285);
+ this.groupBox4.Name = "groupBox4";
+ this.groupBox4.Size = new System.Drawing.Size(124, 100);
+ this.groupBox4.TabIndex = 19;
+ this.groupBox4.TabStop = false;
+ this.groupBox4.Text = "Mask Setting";
+ //
+ // centerMaskRadio
+ //
+ this.centerMaskRadio.AutoSize = true;
+ this.centerMaskRadio.Location = new System.Drawing.Point(6, 72);
+ this.centerMaskRadio.Name = "centerMaskRadio";
+ this.centerMaskRadio.Size = new System.Drawing.Size(91, 19);
+ this.centerMaskRadio.TabIndex = 19;
+ this.centerMaskRadio.Text = "From Center";
+ this.centerMaskRadio.UseVisualStyleBackColor = true;
+ this.centerMaskRadio.CheckedChanged += new System.EventHandler(this.maskRatio_CheckChanged);
+ //
+ // clockwiseMaskRadio
+ //
+ this.clockwiseMaskRadio.AutoSize = true;
+ this.clockwiseMaskRadio.Checked = true;
+ this.clockwiseMaskRadio.Location = new System.Drawing.Point(6, 22);
+ this.clockwiseMaskRadio.Name = "clockwiseMaskRadio";
+ this.clockwiseMaskRadio.Size = new System.Drawing.Size(78, 19);
+ this.clockwiseMaskRadio.TabIndex = 17;
+ this.clockwiseMaskRadio.TabStop = true;
+ this.clockwiseMaskRadio.Text = "Clockwise";
+ this.clockwiseMaskRadio.UseVisualStyleBackColor = true;
+ this.clockwiseMaskRadio.CheckedChanged += new System.EventHandler(this.maskRatio_CheckChanged);
+ //
+ // cClockwiseMaskRadio
+ //
+ this.cClockwiseMaskRadio.AutoSize = true;
+ this.cClockwiseMaskRadio.Location = new System.Drawing.Point(6, 47);
+ this.cClockwiseMaskRadio.Name = "cClockwiseMaskRadio";
+ this.cClockwiseMaskRadio.Size = new System.Drawing.Size(91, 19);
+ this.cClockwiseMaskRadio.TabIndex = 18;
+ this.cClockwiseMaskRadio.Text = "C-Clockwise";
+ this.cClockwiseMaskRadio.UseVisualStyleBackColor = true;
+ this.cClockwiseMaskRadio.CheckedChanged += new System.EventHandler(this.maskRatio_CheckChanged);
+ //
+ // groupBox5
+ //
+ this.groupBox5.Controls.Add(this.currentSelectionLabel);
+ this.groupBox5.Location = new System.Drawing.Point(12, 392);
+ this.groupBox5.Name = "groupBox5";
+ this.groupBox5.Size = new System.Drawing.Size(239, 48);
+ this.groupBox5.TabIndex = 20;
+ this.groupBox5.TabStop = false;
+ this.groupBox5.Text = "Current Selection";
+ //
+ // currentSelectionLabel
+ //
+ this.currentSelectionLabel.AutoSize = true;
+ this.currentSelectionLabel.Font = new System.Drawing.Font("Segoe UI", 11F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point);
+ this.currentSelectionLabel.Location = new System.Drawing.Point(6, 19);
+ this.currentSelectionLabel.Name = "currentSelectionLabel";
+ this.currentSelectionLabel.Size = new System.Drawing.Size(48, 20);
+ this.currentSelectionLabel.TabIndex = 21;
+ this.currentSelectionLabel.Text = "Touch";
+ //
+ // playbackGroupBox
+ //
+ this.playbackGroupBox.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)
+ | System.Windows.Forms.AnchorStyles.Right)));
+ this.playbackGroupBox.Controls.Add(this.songFileLabel);
+ this.playbackGroupBox.Controls.Add(this.label20);
+ this.playbackGroupBox.Controls.Add(this.songTrackBar);
+ this.playbackGroupBox.Controls.Add(this.selectSongButton);
+ this.playbackGroupBox.Controls.Add(this.playButton);
+ this.playbackGroupBox.Location = new System.Drawing.Point(12, 657);
+ this.playbackGroupBox.Name = "playbackGroupBox";
+ this.playbackGroupBox.Size = new System.Drawing.Size(736, 118);
+ this.playbackGroupBox.TabIndex = 32;
+ this.playbackGroupBox.TabStop = false;
+ this.playbackGroupBox.Text = "Playback";
+ //
+ // songFileLabel
+ //
+ this.songFileLabel.AutoSize = true;
+ this.songFileLabel.Location = new System.Drawing.Point(98, 81);
+ this.songFileLabel.Name = "songFileLabel";
+ this.songFileLabel.Size = new System.Drawing.Size(99, 15);
+ this.songFileLabel.TabIndex = 33;
+ this.songFileLabel.Text = "Select File (*.ogg)";
+ //
+ // label20
+ //
+ this.label20.AutoSize = true;
+ this.label20.Font = new System.Drawing.Font("Segoe UI", 11F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point);
+ this.label20.Location = new System.Drawing.Point(6, 77);
+ this.label20.Name = "label20";
+ this.label20.Size = new System.Drawing.Size(73, 20);
+ this.label20.TabIndex = 33;
+ this.label20.Text = "Song File:";
+ //
+ // songTrackBar
+ //
+ this.songTrackBar.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
+ | System.Windows.Forms.AnchorStyles.Right)));
+ this.songTrackBar.Location = new System.Drawing.Point(98, 22);
+ this.songTrackBar.Name = "songTrackBar";
+ this.songTrackBar.Size = new System.Drawing.Size(632, 45);
+ this.songTrackBar.TabIndex = 2;
+ this.songTrackBar.ValueChanged += new System.EventHandler(this.songTrackBar_ValueChanged);
+ //
+ // selectSongButton
+ //
+ this.selectSongButton.Location = new System.Drawing.Point(6, 51);
+ this.selectSongButton.Name = "selectSongButton";
+ this.selectSongButton.Size = new System.Drawing.Size(86, 23);
+ this.selectSongButton.TabIndex = 1;
+ this.selectSongButton.Text = "Select Song";
+ this.selectSongButton.UseVisualStyleBackColor = true;
+ this.selectSongButton.Click += new System.EventHandler(this.selectSongButton_Click);
+ //
+ // playButton
+ //
+ this.playButton.Location = new System.Drawing.Point(6, 22);
+ this.playButton.Name = "playButton";
+ this.playButton.Size = new System.Drawing.Size(86, 23);
+ this.playButton.TabIndex = 0;
+ this.playButton.Text = "Play (P)";
+ this.playButton.UseVisualStyleBackColor = true;
+ this.playButton.Click += new System.EventHandler(this.playButton_Click);
+ //
+ // openSongDialog
+ //
+ this.openSongDialog.Filter = "Audio Files (*.ogg;*.mod;*.it;*.xm;*.it;*.s3d)|*.ogg;*.mod;*.it;*.xm;*.it;*.s3d";
+ //
+ // updateTimer
+ //
+ this.updateTimer.Interval = 20;
+ this.updateTimer.Tick += new System.EventHandler(this.updateTimer_Tick);
+ //
+ // groupBox9
+ //
+ this.groupBox9.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
+ this.groupBox9.Controls.Add(this.label21);
+ this.groupBox9.Controls.Add(this.visualHispeedNumeric);
+ this.groupBox9.Location = new System.Drawing.Point(754, 657);
+ this.groupBox9.Name = "groupBox9";
+ this.groupBox9.Size = new System.Drawing.Size(114, 118);
+ this.groupBox9.TabIndex = 0;
+ this.groupBox9.TabStop = false;
+ this.groupBox9.Text = "Visual Settings";
+ //
+ // label21
+ //
+ this.label21.AutoSize = true;
+ this.label21.Location = new System.Drawing.Point(6, 19);
+ this.label21.Name = "label21";
+ this.label21.Size = new System.Drawing.Size(59, 15);
+ this.label21.TabIndex = 11;
+ this.label21.Text = "Hi-Speed:";
+ //
+ // visualHispeedNumeric
+ //
+ this.visualHispeedNumeric.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
+ | System.Windows.Forms.AnchorStyles.Right)));
+ this.visualHispeedNumeric.DecimalPlaces = 2;
+ this.visualHispeedNumeric.Increment = new decimal(new int[] {
+ 5,
+ 0,
+ 0,
+ 65536});
+ this.visualHispeedNumeric.Location = new System.Drawing.Point(6, 37);
+ this.visualHispeedNumeric.Maximum = new decimal(new int[] {
+ 500,
+ 0,
+ 0,
+ 0});
+ this.visualHispeedNumeric.Minimum = new decimal(new int[] {
+ 1,
+ 0,
+ 0,
+ 196608});
+ this.visualHispeedNumeric.Name = "visualHispeedNumeric";
+ this.visualHispeedNumeric.Size = new System.Drawing.Size(102, 23);
+ this.visualHispeedNumeric.TabIndex = 11;
+ this.visualHispeedNumeric.Value = new decimal(new int[] {
+ 5,
+ 0,
+ 0,
+ 65536});
+ this.visualHispeedNumeric.ValueChanged += new System.EventHandler(this.visualHispeedNumeric_ValueChanged);
+ //
+ // insertButton
+ //
+ this.insertButton.Font = new System.Drawing.Font("Segoe UI", 11F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point);
+ this.insertButton.Location = new System.Drawing.Point(12, 612);
+ this.insertButton.Name = "insertButton";
+ this.insertButton.Size = new System.Drawing.Size(239, 39);
+ this.insertButton.TabIndex = 12;
+ this.insertButton.Text = "Insert Object (I)";
+ this.insertButton.UseVisualStyleBackColor = true;
+ this.insertButton.Click += new System.EventHandler(this.insertButton_Click);
+ //
+ // fileToolStripMenuItem
+ //
+ this.fileToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
+ this.newToolStripMenuItem,
+ this.openToolStripMenuItem,
+ this.saveToolStripMenuItem,
+ this.saveAsToolStripMenuItem,
+ this.exitToolStripMenuItem});
+ this.fileToolStripMenuItem.Name = "fileToolStripMenuItem";
+ this.fileToolStripMenuItem.Size = new System.Drawing.Size(37, 20);
+ this.fileToolStripMenuItem.Text = "File";
+ //
+ // newToolStripMenuItem
+ //
+ this.newToolStripMenuItem.Name = "newToolStripMenuItem";
+ this.newToolStripMenuItem.ShortcutKeys = ((System.Windows.Forms.Keys)((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.N)));
+ this.newToolStripMenuItem.Size = new System.Drawing.Size(186, 22);
+ this.newToolStripMenuItem.Text = "New";
+ this.newToolStripMenuItem.Click += new System.EventHandler(this.newToolStripMenuItem_Click);
+ //
+ // openToolStripMenuItem
+ //
+ this.openToolStripMenuItem.Name = "openToolStripMenuItem";
+ this.openToolStripMenuItem.ShortcutKeys = ((System.Windows.Forms.Keys)((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.O)));
+ this.openToolStripMenuItem.Size = new System.Drawing.Size(186, 22);
+ this.openToolStripMenuItem.Text = "Open";
+ this.openToolStripMenuItem.Click += new System.EventHandler(this.openToolStripMenuItem_Click);
+ //
+ // saveToolStripMenuItem
+ //
+ this.saveToolStripMenuItem.Name = "saveToolStripMenuItem";
+ this.saveToolStripMenuItem.ShortcutKeys = ((System.Windows.Forms.Keys)((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.S)));
+ this.saveToolStripMenuItem.Size = new System.Drawing.Size(186, 22);
+ this.saveToolStripMenuItem.Text = "Save";
+ this.saveToolStripMenuItem.Click += new System.EventHandler(this.saveToolStripMenuItem_Click);
+ //
+ // saveAsToolStripMenuItem
+ //
+ this.saveAsToolStripMenuItem.Name = "saveAsToolStripMenuItem";
+ this.saveAsToolStripMenuItem.ShortcutKeys = ((System.Windows.Forms.Keys)(((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.Shift)
+ | System.Windows.Forms.Keys.S)));
+ this.saveAsToolStripMenuItem.Size = new System.Drawing.Size(186, 22);
+ this.saveAsToolStripMenuItem.Text = "Save As";
+ this.saveAsToolStripMenuItem.Click += new System.EventHandler(this.saveAsToolStripMenuItem_Click);
+ //
+ // exitToolStripMenuItem
+ //
+ this.exitToolStripMenuItem.Name = "exitToolStripMenuItem";
+ this.exitToolStripMenuItem.Size = new System.Drawing.Size(186, 22);
+ this.exitToolStripMenuItem.Text = "Exit";
+ this.exitToolStripMenuItem.Click += new System.EventHandler(this.exitToolStripMenuItem_Click);
+ //
+ // viewToolStripMenuItem
+ //
+ this.viewToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
+ this.showCursorToolStripMenuItem,
+ this.showCursorDuringPlaybackToolStripMenuItem,
+ this.highlightViewedNoteToolStripMenuItem});
+ this.viewToolStripMenuItem.Name = "viewToolStripMenuItem";
+ this.viewToolStripMenuItem.Size = new System.Drawing.Size(44, 20);
+ this.viewToolStripMenuItem.Text = "View";
+ //
+ // showCursorToolStripMenuItem
+ //
+ this.showCursorToolStripMenuItem.Checked = true;
+ this.showCursorToolStripMenuItem.CheckOnClick = true;
+ this.showCursorToolStripMenuItem.CheckState = System.Windows.Forms.CheckState.Checked;
+ this.showCursorToolStripMenuItem.Name = "showCursorToolStripMenuItem";
+ this.showCursorToolStripMenuItem.Size = new System.Drawing.Size(230, 22);
+ this.showCursorToolStripMenuItem.Text = "Show Cursor";
+ this.showCursorToolStripMenuItem.Click += new System.EventHandler(this.showCursorToolStripMenuItem_Click);
+ //
+ // showCursorDuringPlaybackToolStripMenuItem
+ //
+ this.showCursorDuringPlaybackToolStripMenuItem.Name = "showCursorDuringPlaybackToolStripMenuItem";
+ this.showCursorDuringPlaybackToolStripMenuItem.Size = new System.Drawing.Size(230, 22);
+ this.showCursorDuringPlaybackToolStripMenuItem.Text = "Show Cursor During Playback";
+ //
+ // highlightViewedNoteToolStripMenuItem
+ //
+ this.highlightViewedNoteToolStripMenuItem.Checked = true;
+ this.highlightViewedNoteToolStripMenuItem.CheckOnClick = true;
+ this.highlightViewedNoteToolStripMenuItem.CheckState = System.Windows.Forms.CheckState.Checked;
+ this.highlightViewedNoteToolStripMenuItem.Name = "highlightViewedNoteToolStripMenuItem";
+ this.highlightViewedNoteToolStripMenuItem.Size = new System.Drawing.Size(230, 22);
+ this.highlightViewedNoteToolStripMenuItem.Text = "Highlight Viewed Note";
+ //
+ // chartToolStripMenuItem
+ //
+ this.chartToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
+ this.initialChartSettingsToolStripMenuItem});
+ this.chartToolStripMenuItem.Name = "chartToolStripMenuItem";
+ this.chartToolStripMenuItem.Size = new System.Drawing.Size(48, 20);
+ this.chartToolStripMenuItem.Text = "Chart";
+ //
+ // initialChartSettingsToolStripMenuItem
+ //
+ this.initialChartSettingsToolStripMenuItem.Name = "initialChartSettingsToolStripMenuItem";
+ this.initialChartSettingsToolStripMenuItem.Size = new System.Drawing.Size(180, 22);
+ this.initialChartSettingsToolStripMenuItem.Text = "Initial Chart Settings";
+ this.initialChartSettingsToolStripMenuItem.Click += new System.EventHandler(this.initialChartSettingsToolStripMenuItem_Click);
+ //
+ // aboutToolStripMenuItem
+ //
+ this.aboutToolStripMenuItem.Name = "aboutToolStripMenuItem";
+ this.aboutToolStripMenuItem.Size = new System.Drawing.Size(52, 20);
+ this.aboutToolStripMenuItem.Text = "About";
+ this.aboutToolStripMenuItem.Click += new System.EventHandler(this.aboutToolStripMenuItem_Click);
+ //
+ // menuStrip
+ //
+ this.menuStrip.BackColor = System.Drawing.SystemColors.ControlDark;
+ this.menuStrip.Font = new System.Drawing.Font("Segoe UI", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point);
+ this.menuStrip.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
+ this.fileToolStripMenuItem,
+ this.editToolStripMenuItem,
+ this.viewToolStripMenuItem,
+ this.chartToolStripMenuItem,
+ this.aboutToolStripMenuItem});
+ this.menuStrip.Location = new System.Drawing.Point(0, 0);
+ this.menuStrip.Name = "menuStrip";
+ this.menuStrip.Size = new System.Drawing.Size(1142, 24);
+ this.menuStrip.TabIndex = 0;
+ this.menuStrip.Text = "menuStrip1";
+ //
+ // editToolStripMenuItem
+ //
+ this.editToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
+ this.undoToolStripMenuItem,
+ this.redoToolStripMenuItem});
+ this.editToolStripMenuItem.Name = "editToolStripMenuItem";
+ this.editToolStripMenuItem.Size = new System.Drawing.Size(39, 20);
+ this.editToolStripMenuItem.Text = "Edit";
+ //
+ // undoToolStripMenuItem
+ //
+ this.undoToolStripMenuItem.Name = "undoToolStripMenuItem";
+ this.undoToolStripMenuItem.ShortcutKeys = ((System.Windows.Forms.Keys)((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.Z)));
+ this.undoToolStripMenuItem.Size = new System.Drawing.Size(144, 22);
+ this.undoToolStripMenuItem.Text = "Undo";
+ this.undoToolStripMenuItem.Click += new System.EventHandler(this.undoToolStripMenuItem_Click);
+ //
+ // redoToolStripMenuItem
+ //
+ this.redoToolStripMenuItem.Name = "redoToolStripMenuItem";
+ this.redoToolStripMenuItem.ShortcutKeys = ((System.Windows.Forms.Keys)((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.Y)));
+ this.redoToolStripMenuItem.Size = new System.Drawing.Size(144, 22);
+ this.redoToolStripMenuItem.Text = "Redo";
+ this.redoToolStripMenuItem.Click += new System.EventHandler(this.redoToolStripMenuItem_Click);
+ //
+ // groupBox6
+ //
+ this.groupBox6.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
+ this.groupBox6.Controls.Add(this.gimmickDeleteButton);
+ this.groupBox6.Controls.Add(this.gimmickEditButton);
+ this.groupBox6.Controls.Add(this.gimmickBeatLabel);
+ this.groupBox6.Controls.Add(this.gimmickValueLabel);
+ this.groupBox6.Controls.Add(this.gimmickTypeLabel);
+ this.groupBox6.Controls.Add(this.gimmickMeasureLabel);
+ this.groupBox6.Controls.Add(this.label8);
+ this.groupBox6.Controls.Add(this.label7);
+ this.groupBox6.Controls.Add(this.label6);
+ this.groupBox6.Controls.Add(this.label5);
+ this.groupBox6.Controls.Add(this.gimmickNextButton);
+ this.groupBox6.Controls.Add(this.gimmickPrevButton);
+ this.groupBox6.Location = new System.Drawing.Point(874, 633);
+ this.groupBox6.Name = "groupBox6";
+ this.groupBox6.Size = new System.Drawing.Size(256, 142);
+ this.groupBox6.TabIndex = 33;
+ this.groupBox6.TabStop = false;
+ this.groupBox6.Text = "Gimmick View";
+ //
+ // gimmickDeleteButton
+ //
+ this.gimmickDeleteButton.ForeColor = System.Drawing.Color.Red;
+ this.gimmickDeleteButton.Location = new System.Drawing.Point(134, 109);
+ this.gimmickDeleteButton.Name = "gimmickDeleteButton";
+ this.gimmickDeleteButton.Size = new System.Drawing.Size(113, 23);
+ this.gimmickDeleteButton.TabIndex = 11;
+ this.gimmickDeleteButton.Text = "Delete Gimmick";
+ this.gimmickDeleteButton.UseVisualStyleBackColor = true;
+ this.gimmickDeleteButton.Click += new System.EventHandler(this.gimmickDeleteButton_Click);
+ //
+ // gimmickEditButton
+ //
+ this.gimmickEditButton.Location = new System.Drawing.Point(6, 109);
+ this.gimmickEditButton.Name = "gimmickEditButton";
+ this.gimmickEditButton.Size = new System.Drawing.Size(113, 23);
+ this.gimmickEditButton.TabIndex = 10;
+ this.gimmickEditButton.Text = "Edit Gimmick";
+ this.gimmickEditButton.UseVisualStyleBackColor = true;
+ this.gimmickEditButton.Click += new System.EventHandler(this.gimmickEditButton_Click);
+ //
+ // gimmickBeatLabel
+ //
+ this.gimmickBeatLabel.AutoSize = true;
+ this.gimmickBeatLabel.Location = new System.Drawing.Point(173, 47);
+ this.gimmickBeatLabel.Name = "gimmickBeatLabel";
+ this.gimmickBeatLabel.Size = new System.Drawing.Size(36, 15);
+ this.gimmickBeatLabel.TabIndex = 9;
+ this.gimmickBeatLabel.Text = "None";
+ //
+ // gimmickValueLabel
+ //
+ this.gimmickValueLabel.AutoSize = true;
+ this.gimmickValueLabel.Location = new System.Drawing.Point(76, 89);
+ this.gimmickValueLabel.Name = "gimmickValueLabel";
+ this.gimmickValueLabel.Size = new System.Drawing.Size(36, 15);
+ this.gimmickValueLabel.TabIndex = 8;
+ this.gimmickValueLabel.Text = "None";
+ //
+ // gimmickTypeLabel
+ //
+ this.gimmickTypeLabel.AutoSize = true;
+ this.gimmickTypeLabel.Location = new System.Drawing.Point(76, 68);
+ this.gimmickTypeLabel.Name = "gimmickTypeLabel";
+ this.gimmickTypeLabel.Size = new System.Drawing.Size(36, 15);
+ this.gimmickTypeLabel.TabIndex = 7;
+ this.gimmickTypeLabel.Text = "None";
+ //
+ // gimmickMeasureLabel
+ //
+ this.gimmickMeasureLabel.AutoSize = true;
+ this.gimmickMeasureLabel.Location = new System.Drawing.Point(76, 47);
+ this.gimmickMeasureLabel.Name = "gimmickMeasureLabel";
+ this.gimmickMeasureLabel.Size = new System.Drawing.Size(36, 15);
+ this.gimmickMeasureLabel.TabIndex = 6;
+ this.gimmickMeasureLabel.Text = "None";
+ //
+ // label8
+ //
+ this.label8.AutoSize = true;
+ this.label8.Font = new System.Drawing.Font("Segoe UI", 9.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point);
+ this.label8.Location = new System.Drawing.Point(128, 45);
+ this.label8.Name = "label8";
+ this.label8.Size = new System.Drawing.Size(39, 17);
+ this.label8.TabIndex = 5;
+ this.label8.Text = "Beat:";
+ //
+ // label7
+ //
+ this.label7.AutoSize = true;
+ this.label7.Font = new System.Drawing.Font("Segoe UI", 9.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point);
+ this.label7.Location = new System.Drawing.Point(24, 87);
+ this.label7.Name = "label7";
+ this.label7.Size = new System.Drawing.Size(46, 17);
+ this.label7.TabIndex = 4;
+ this.label7.Text = "Value:";
+ //
+ // label6
+ //
+ this.label6.AutoSize = true;
+ this.label6.Font = new System.Drawing.Font("Segoe UI", 9.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point);
+ this.label6.Location = new System.Drawing.Point(29, 66);
+ this.label6.Name = "label6";
+ this.label6.Size = new System.Drawing.Size(41, 17);
+ this.label6.TabIndex = 3;
+ this.label6.Text = "Type:";
+ //
+ // label5
+ //
+ this.label5.AutoSize = true;
+ this.label5.Font = new System.Drawing.Font("Segoe UI", 9.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point);
+ this.label5.Location = new System.Drawing.Point(6, 45);
+ this.label5.Name = "label5";
+ this.label5.Size = new System.Drawing.Size(64, 17);
+ this.label5.TabIndex = 2;
+ this.label5.Text = "Measure:";
+ //
+ // gimmickNextButton
+ //
+ this.gimmickNextButton.Location = new System.Drawing.Point(134, 19);
+ this.gimmickNextButton.Name = "gimmickNextButton";
+ this.gimmickNextButton.Size = new System.Drawing.Size(116, 23);
+ this.gimmickNextButton.TabIndex = 1;
+ this.gimmickNextButton.Text = "Next Gimmick";
+ this.gimmickNextButton.UseVisualStyleBackColor = true;
+ this.gimmickNextButton.Click += new System.EventHandler(this.gimmickNextButton_Click);
+ //
+ // gimmickPrevButton
+ //
+ this.gimmickPrevButton.Location = new System.Drawing.Point(6, 19);
+ this.gimmickPrevButton.Name = "gimmickPrevButton";
+ this.gimmickPrevButton.Size = new System.Drawing.Size(116, 23);
+ this.gimmickPrevButton.TabIndex = 0;
+ this.gimmickPrevButton.Text = "Previous Gimmick";
+ this.gimmickPrevButton.UseVisualStyleBackColor = true;
+ this.gimmickPrevButton.Click += new System.EventHandler(this.gimmickPrevButton_Click);
+ //
+ // noteViewGroupBox
+ //
+ this.noteViewGroupBox.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
+ this.noteViewGroupBox.Controls.Add(this.noteMaskLabel);
+ this.noteViewGroupBox.Controls.Add(this.label9);
+ this.noteViewGroupBox.Controls.Add(this.noteSizeLabel);
+ this.noteViewGroupBox.Controls.Add(this.label17);
+ this.noteViewGroupBox.Controls.Add(this.noteNextMeasureButton);
+ this.noteViewGroupBox.Controls.Add(this.notePrevMeasureButton);
+ this.noteViewGroupBox.Controls.Add(this.noteDeleteSelectedButton);
+ this.noteViewGroupBox.Controls.Add(this.noteEditSelectedButton);
+ this.noteViewGroupBox.Controls.Add(this.noteBeatLabel);
+ this.noteViewGroupBox.Controls.Add(this.notePositionLabel);
+ this.noteViewGroupBox.Controls.Add(this.noteTypeLabel);
+ this.noteViewGroupBox.Controls.Add(this.noteMeasureLabel);
+ this.noteViewGroupBox.Controls.Add(this.label13);
+ this.noteViewGroupBox.Controls.Add(this.label14);
+ this.noteViewGroupBox.Controls.Add(this.label15);
+ this.noteViewGroupBox.Controls.Add(this.label16);
+ this.noteViewGroupBox.Controls.Add(this.noteNextButton);
+ this.noteViewGroupBox.Controls.Add(this.notePrevButton);
+ this.noteViewGroupBox.Location = new System.Drawing.Point(874, 420);
+ this.noteViewGroupBox.Name = "noteViewGroupBox";
+ this.noteViewGroupBox.Size = new System.Drawing.Size(256, 207);
+ this.noteViewGroupBox.TabIndex = 34;
+ this.noteViewGroupBox.TabStop = false;
+ this.noteViewGroupBox.Text = "Note View";
+ //
+ // noteMaskLabel
+ //
+ this.noteMaskLabel.AutoSize = true;
+ this.noteMaskLabel.Location = new System.Drawing.Point(173, 139);
+ this.noteMaskLabel.Name = "noteMaskLabel";
+ this.noteMaskLabel.Size = new System.Drawing.Size(29, 15);
+ this.noteMaskLabel.TabIndex = 17;
+ this.noteMaskLabel.Text = "N/A";
+ //
+ // label9
+ //
+ this.label9.AutoSize = true;
+ this.label9.Font = new System.Drawing.Font("Segoe UI", 9.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point);
+ this.label9.Location = new System.Drawing.Point(85, 137);
+ this.label9.Name = "label9";
+ this.label9.Size = new System.Drawing.Size(82, 17);
+ this.label9.TabIndex = 16;
+ this.label9.Text = "Mask Value:";
+ //
+ // noteSizeLabel
+ //
+ this.noteSizeLabel.AutoSize = true;
+ this.noteSizeLabel.Location = new System.Drawing.Point(173, 118);
+ this.noteSizeLabel.Name = "noteSizeLabel";
+ this.noteSizeLabel.Size = new System.Drawing.Size(36, 15);
+ this.noteSizeLabel.TabIndex = 15;
+ this.noteSizeLabel.Text = "None";
+ //
+ // label17
+ //
+ this.label17.AutoSize = true;
+ this.label17.Font = new System.Drawing.Font("Segoe UI", 9.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point);
+ this.label17.Location = new System.Drawing.Point(131, 116);
+ this.label17.Name = "label17";
+ this.label17.Size = new System.Drawing.Size(36, 17);
+ this.label17.TabIndex = 14;
+ this.label17.Text = "Size:";
+ //
+ // noteNextMeasureButton
+ //
+ this.noteNextMeasureButton.Location = new System.Drawing.Point(134, 48);
+ this.noteNextMeasureButton.Name = "noteNextMeasureButton";
+ this.noteNextMeasureButton.Size = new System.Drawing.Size(116, 23);
+ this.noteNextMeasureButton.TabIndex = 13;
+ this.noteNextMeasureButton.Text = "Next Measure >>";
+ this.noteNextMeasureButton.UseVisualStyleBackColor = true;
+ this.noteNextMeasureButton.Click += new System.EventHandler(this.noteNextMeasureButton_Click);
+ //
+ // notePrevMeasureButton
+ //
+ this.notePrevMeasureButton.Location = new System.Drawing.Point(6, 48);
+ this.notePrevMeasureButton.Name = "notePrevMeasureButton";
+ this.notePrevMeasureButton.Size = new System.Drawing.Size(116, 23);
+ this.notePrevMeasureButton.TabIndex = 12;
+ this.notePrevMeasureButton.Text = "<< Prev Measure";
+ this.notePrevMeasureButton.UseVisualStyleBackColor = true;
+ this.notePrevMeasureButton.Click += new System.EventHandler(this.notePrevMeasureButton_Click);
+ //
+ // noteDeleteSelectedButton
+ //
+ this.noteDeleteSelectedButton.ForeColor = System.Drawing.Color.Red;
+ this.noteDeleteSelectedButton.Location = new System.Drawing.Point(134, 157);
+ this.noteDeleteSelectedButton.Name = "noteDeleteSelectedButton";
+ this.noteDeleteSelectedButton.Size = new System.Drawing.Size(113, 43);
+ this.noteDeleteSelectedButton.TabIndex = 11;
+ this.noteDeleteSelectedButton.Text = "Delete Selected Note";
+ this.noteDeleteSelectedButton.UseVisualStyleBackColor = true;
+ this.noteDeleteSelectedButton.Click += new System.EventHandler(this.noteDeleteSelectedButton_Click);
+ //
+ // noteEditSelectedButton
+ //
+ this.noteEditSelectedButton.Location = new System.Drawing.Point(6, 157);
+ this.noteEditSelectedButton.Name = "noteEditSelectedButton";
+ this.noteEditSelectedButton.Size = new System.Drawing.Size(113, 43);
+ this.noteEditSelectedButton.TabIndex = 10;
+ this.noteEditSelectedButton.Text = "Edit Selected Note";
+ this.noteEditSelectedButton.UseVisualStyleBackColor = true;
+ this.noteEditSelectedButton.Click += new System.EventHandler(this.noteEditSelectedButton_Click);
+ //
+ // noteBeatLabel
+ //
+ this.noteBeatLabel.AutoSize = true;
+ this.noteBeatLabel.Location = new System.Drawing.Point(173, 76);
+ this.noteBeatLabel.Name = "noteBeatLabel";
+ this.noteBeatLabel.Size = new System.Drawing.Size(36, 15);
+ this.noteBeatLabel.TabIndex = 9;
+ this.noteBeatLabel.Text = "None";
+ //
+ // notePositionLabel
+ //
+ this.notePositionLabel.AutoSize = true;
+ this.notePositionLabel.Location = new System.Drawing.Point(76, 118);
+ this.notePositionLabel.Name = "notePositionLabel";
+ this.notePositionLabel.Size = new System.Drawing.Size(36, 15);
+ this.notePositionLabel.TabIndex = 8;
+ this.notePositionLabel.Text = "None";
+ //
+ // noteTypeLabel
+ //
+ this.noteTypeLabel.AutoSize = true;
+ this.noteTypeLabel.Location = new System.Drawing.Point(76, 97);
+ this.noteTypeLabel.Name = "noteTypeLabel";
+ this.noteTypeLabel.Size = new System.Drawing.Size(36, 15);
+ this.noteTypeLabel.TabIndex = 7;
+ this.noteTypeLabel.Text = "None";
+ //
+ // noteMeasureLabel
+ //
+ this.noteMeasureLabel.AutoSize = true;
+ this.noteMeasureLabel.Location = new System.Drawing.Point(76, 76);
+ this.noteMeasureLabel.Name = "noteMeasureLabel";
+ this.noteMeasureLabel.Size = new System.Drawing.Size(36, 15);
+ this.noteMeasureLabel.TabIndex = 6;
+ this.noteMeasureLabel.Text = "None";
+ //
+ // label13
+ //
+ this.label13.AutoSize = true;
+ this.label13.Font = new System.Drawing.Font("Segoe UI", 9.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point);
+ this.label13.Location = new System.Drawing.Point(128, 74);
+ this.label13.Name = "label13";
+ this.label13.Size = new System.Drawing.Size(39, 17);
+ this.label13.TabIndex = 5;
+ this.label13.Text = "Beat:";
+ //
+ // label14
+ //
+ this.label14.AutoSize = true;
+ this.label14.Font = new System.Drawing.Font("Segoe UI", 9.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point);
+ this.label14.Location = new System.Drawing.Point(7, 116);
+ this.label14.Name = "label14";
+ this.label14.Size = new System.Drawing.Size(63, 17);
+ this.label14.TabIndex = 4;
+ this.label14.Text = "Position:";
+ //
+ // label15
+ //
+ this.label15.AutoSize = true;
+ this.label15.Font = new System.Drawing.Font("Segoe UI", 9.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point);
+ this.label15.Location = new System.Drawing.Point(29, 95);
+ this.label15.Name = "label15";
+ this.label15.Size = new System.Drawing.Size(41, 17);
+ this.label15.TabIndex = 3;
+ this.label15.Text = "Type:";
+ //
+ // label16
+ //
+ this.label16.AutoSize = true;
+ this.label16.Font = new System.Drawing.Font("Segoe UI", 9.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point);
+ this.label16.Location = new System.Drawing.Point(6, 74);
+ this.label16.Name = "label16";
+ this.label16.Size = new System.Drawing.Size(64, 17);
+ this.label16.TabIndex = 2;
+ this.label16.Text = "Measure:";
+ //
+ // noteNextButton
+ //
+ this.noteNextButton.Location = new System.Drawing.Point(134, 19);
+ this.noteNextButton.Name = "noteNextButton";
+ this.noteNextButton.Size = new System.Drawing.Size(116, 23);
+ this.noteNextButton.TabIndex = 1;
+ this.noteNextButton.Text = "Next Note >";
+ this.noteNextButton.UseVisualStyleBackColor = true;
+ this.noteNextButton.Click += new System.EventHandler(this.noteNextButton_Click);
+ //
+ // notePrevButton
+ //
+ this.notePrevButton.Location = new System.Drawing.Point(6, 19);
+ this.notePrevButton.Name = "notePrevButton";
+ this.notePrevButton.Size = new System.Drawing.Size(116, 23);
+ this.notePrevButton.TabIndex = 0;
+ this.notePrevButton.Text = "< Previous Note";
+ this.notePrevButton.UseVisualStyleBackColor = true;
+ this.notePrevButton.Click += new System.EventHandler(this.notePrevButton_Click);
+ //
+ // autoSaveTimer
+ //
+ this.autoSaveTimer.Tick += new System.EventHandler(this.autoSaveTimer_Tick);
+ //
+ // MainForm
+ //
+ this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 15F);
+ this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+ this.BackColor = System.Drawing.SystemColors.ControlDark;
+ this.ClientSize = new System.Drawing.Size(1142, 787);
+ this.Controls.Add(this.noteViewGroupBox);
+ this.Controls.Add(this.groupBox6);
+ this.Controls.Add(this.insertButton);
+ this.Controls.Add(this.groupBox9);
+ this.Controls.Add(this.playbackGroupBox);
+ this.Controls.Add(this.groupBox5);
+ this.Controls.Add(this.groupBox4);
+ this.Controls.Add(this.gimmickTypeGroupBox);
+ this.Controls.Add(this.groupBox2);
+ this.Controls.Add(this.groupBox1);
+ this.Controls.Add(this.circlePanel);
+ this.Controls.Add(this.menuStrip);
+ this.MainMenuStrip = this.menuStrip;
+ this.MinimumSize = new System.Drawing.Size(1158, 826);
+ this.Name = "MainForm";
+ this.Text = "BAKKA Sharp - [New File]";
+ this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.MainForm_FormClosing);
+ this.Resize += new System.EventHandler(this.MainForm_Resize);
+ this.groupBox1.ResumeLayout(false);
+ this.groupBox1.PerformLayout();
+ ((System.ComponentModel.ISupportInitialize)(this.beat2Numeric)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.beat1Numeric)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.measureNumeric)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.sizeTrackBar)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.sizeNumeric)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.positionTrackBar)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.positionNumeric)).EndInit();
+ this.groupBox2.ResumeLayout(false);
+ this.groupBox2.PerformLayout();
+ this.gimmickTypeGroupBox.ResumeLayout(false);
+ this.gimmickTypeGroupBox.PerformLayout();
+ this.groupBox4.ResumeLayout(false);
+ this.groupBox4.PerformLayout();
+ this.groupBox5.ResumeLayout(false);
+ this.groupBox5.PerformLayout();
+ this.playbackGroupBox.ResumeLayout(false);
+ this.playbackGroupBox.PerformLayout();
+ ((System.ComponentModel.ISupportInitialize)(this.songTrackBar)).EndInit();
+ this.groupBox9.ResumeLayout(false);
+ this.groupBox9.PerformLayout();
+ ((System.ComponentModel.ISupportInitialize)(this.visualHispeedNumeric)).EndInit();
+ this.menuStrip.ResumeLayout(false);
+ this.menuStrip.PerformLayout();
+ this.groupBox6.ResumeLayout(false);
+ this.groupBox6.PerformLayout();
+ this.noteViewGroupBox.ResumeLayout(false);
+ this.noteViewGroupBox.PerformLayout();
+ this.ResumeLayout(false);
+ this.PerformLayout();
+
+ }
+
+ #endregion
+ private OpenFileDialog openFileDialog;
+ private SaveFileDialog saveFileDialog;
+ private Panel circlePanel;
+ private GroupBox groupBox1;
+ private Label label4;
+ private NumericUpDown beat2Numeric;
+ private NumericUpDown beat1Numeric;
+ private NumericUpDown measureNumeric;
+ private Label label3;
+ private TrackBar sizeTrackBar;
+ private NumericUpDown sizeNumeric;
+ private Label label2;
+ private TrackBar positionTrackBar;
+ private NumericUpDown positionNumeric;
+ private Label label1;
+ private GroupBox groupBox2;
+ private RadioButton flairRadio;
+ private RadioButton bonusRadio;
+ private RadioButton noBonusRadio;
+ private CheckBox endHoldCheck;
+ private Button endChartButton;
+ private Button holdButton;
+ private Button chainButton;
+ private Button blueButton;
+ private Button redButton;
+ private Button greenButton;
+ private Button orangeButton;
+ private Button tapButton;
+ private GroupBox gimmickTypeGroupBox;
+ private RadioButton removeMaskRadio;
+ private Button reverseButton;
+ private RadioButton addMaskRadio;
+ private Button stopButton;
+ private Button hiSpeedButton;
+ private Button timeSigButton;
+ private Button bpmChangeButton;
+ private Button maskButton;
+ private GroupBox groupBox4;
+ private RadioButton centerMaskRadio;
+ private RadioButton clockwiseMaskRadio;
+ private RadioButton cClockwiseMaskRadio;
+ private GroupBox groupBox5;
+ private Label currentSelectionLabel;
+ private GroupBox playbackGroupBox;
+ private Label songFileLabel;
+ private Label label20;
+ private TrackBar songTrackBar;
+ private Button selectSongButton;
+ private Button playButton;
+ private OpenFileDialog openSongDialog;
+ private System.Windows.Forms.Timer updateTimer;
+ private GroupBox groupBox9;
+ private Label label21;
+ private NumericUpDown visualHispeedNumeric;
+ private Button insertButton;
+ private ToolStripMenuItem fileToolStripMenuItem;
+ private ToolStripMenuItem newToolStripMenuItem;
+ private ToolStripMenuItem openToolStripMenuItem;
+ private ToolStripMenuItem saveToolStripMenuItem;
+ private ToolStripMenuItem saveAsToolStripMenuItem;
+ private ToolStripMenuItem exitToolStripMenuItem;
+ private ToolStripMenuItem viewToolStripMenuItem;
+ private ToolStripMenuItem showCursorToolStripMenuItem;
+ private ToolStripMenuItem showCursorDuringPlaybackToolStripMenuItem;
+ private ToolStripMenuItem highlightViewedNoteToolStripMenuItem;
+ private ToolStripMenuItem chartToolStripMenuItem;
+ private ToolStripMenuItem initialChartSettingsToolStripMenuItem;
+ private ToolStripMenuItem aboutToolStripMenuItem;
+ private MenuStrip menuStrip;
+ private GroupBox groupBox6;
+ private Button gimmickDeleteButton;
+ private Button gimmickEditButton;
+ private Label gimmickBeatLabel;
+ private Label gimmickValueLabel;
+ private Label gimmickTypeLabel;
+ private Label gimmickMeasureLabel;
+ private Label label8;
+ private Label label7;
+ private Label label6;
+ private Label label5;
+ private Button gimmickNextButton;
+ private Button gimmickPrevButton;
+ private GroupBox noteViewGroupBox;
+ private Label noteMaskLabel;
+ private Label label9;
+ private Label noteSizeLabel;
+ private Label label17;
+ private Button noteNextMeasureButton;
+ private Button notePrevMeasureButton;
+ private Button noteDeleteSelectedButton;
+ private Button noteEditSelectedButton;
+ private Label noteBeatLabel;
+ private Label notePositionLabel;
+ private Label noteTypeLabel;
+ private Label noteMeasureLabel;
+ private Label label13;
+ private Label label14;
+ private Label label15;
+ private Label label16;
+ private Button noteNextButton;
+ private Button notePrevButton;
+ private ToolStripMenuItem editToolStripMenuItem;
+ private ToolStripMenuItem undoToolStripMenuItem;
+ private ToolStripMenuItem redoToolStripMenuItem;
+ private System.Windows.Forms.Timer autoSaveTimer;
+ }
+}
\ No newline at end of file
diff --git a/BAKKA-Editor/Form1.cs b/BAKKA-Editor/MainForm.cs
similarity index 82%
rename from BAKKA-Editor/Form1.cs
rename to BAKKA-Editor/MainForm.cs
index ee9c799..4fdf15f 100644
--- a/BAKKA-Editor/Form1.cs
+++ b/BAKKA-Editor/MainForm.cs
@@ -10,9 +10,9 @@ using System.Windows.Forms;
namespace BAKKA_Editor
{
- public partial class Form1 : Form
+ public partial class MainForm : Form
{
- public Form1()
+ public MainForm()
{
InitializeComponent();
}
diff --git a/BAKKA-Editor/MainForm.resx b/BAKKA-Editor/MainForm.resx
new file mode 100644
index 0000000..1af7de1
--- /dev/null
+++ b/BAKKA-Editor/MainForm.resx
@@ -0,0 +1,120 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
\ No newline at end of file
diff --git a/BAKKA-Editor/Note.cs b/BAKKA-Editor/Note.cs
new file mode 100644
index 0000000..a789dde
--- /dev/null
+++ b/BAKKA-Editor/Note.cs
@@ -0,0 +1,229 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace BAKKA_Editor
+{
+ internal class BeatInfo
+ {
+ public int Measure;
+ public int Beat;
+
+ public BeatInfo(int measure, int beat)
+ {
+ Measure = measure;
+ Beat = beat;
+ }
+
+ public BeatInfo(float measure)
+ {
+ Measure = (int)Math.Floor(measure);
+ Beat = (int)((measure - (float)Measure) * 1920.0f);
+ }
+
+ public BeatInfo(BeatInfo info)
+ {
+ Measure = info.Measure;
+ Beat = info.Beat;
+ }
+
+ public float MeasureDecimal { get { return (float)Measure + (float)Beat / 1920.0f; } }
+ }
+
+ internal class TimeSignature
+ {
+ public int Upper;
+ public int Lower;
+
+ public double Ratio { get { return (double)Upper / (double)Lower; } }
+
+ public TimeSignature()
+ {
+ Upper = 4;
+ Lower = 4;
+ }
+
+ public TimeSignature(TimeSignature sig)
+ {
+ Upper = sig.Upper;
+ Lower = sig.Lower;
+ }
+ }
+
+ internal class NoteBase
+ {
+ public BeatInfo BeatInfo { get; set; } = new BeatInfo(-1, 0);
+ public GimmickType GimmickType { get; set; } = GimmickType.NoGimmick;
+
+ public float Measure { get { return BeatInfo.MeasureDecimal; } }
+ }
+
+ internal class Note : NoteBase
+ {
+ public NoteType NoteType { get; set; } = NoteType.TouchNoBonus;
+ public int Position { get; set; }
+ public int Size { get; set; }
+ [System.ComponentModel.Browsable(false)]
+ public bool HoldChange { get; set; }
+ [System.ComponentModel.Browsable(false)]
+ public MaskType MaskFill { get; set; }
+ [System.ComponentModel.Browsable(false)]
+ public Note NextNote { get; set; }
+ [System.ComponentModel.Browsable(false)]
+ public Note PrevNote { get; set; }
+
+ [System.ComponentModel.Browsable(false)]
+ public bool IsHold
+ {
+ get
+ {
+ switch (NoteType)
+ {
+ case NoteType.HoldStartNoBonus:
+ case NoteType.HoldJoint:
+ case NoteType.HoldEnd:
+ case NoteType.HoldStartBonusFlair:
+ return true;
+ default:
+ return false;
+ }
+ }
+ }
+ [System.ComponentModel.Browsable(false)]
+ public bool IsMask
+ {
+ get
+ {
+ switch (NoteType)
+ {
+ case NoteType.MaskAdd:
+ case NoteType.MaskRemove:
+ return true;
+ default:
+ return false;
+ }
+ }
+ }
+ [System.ComponentModel.Browsable(false)]
+ public bool IsBonus
+ {
+ get
+ {
+ switch (NoteType)
+ {
+ case NoteType.TouchBonus:
+ case NoteType.SlideOrangeBonus:
+ case NoteType.SlideGreenBonus:
+ return true;
+ default:
+ return false; ;
+ }
+ }
+ }
+ [System.ComponentModel.Browsable(false)]
+ public bool IsFlair
+ {
+ get
+ {
+ switch (NoteType)
+ {
+ case NoteType.TouchBonusFlair:
+ case NoteType.SnapRedBonusFlair:
+ case NoteType.SnapBlueBonusFlair:
+ case NoteType.SlideOrangeBonusFlair:
+ case NoteType.SlideGreenBonusFlair:
+ case NoteType.HoldStartBonusFlair:
+ case NoteType.ChainBonusFlair:
+ return true;
+ default:
+ return false;
+ }
+ }
+ }
+ [System.ComponentModel.Browsable(false)]
+ public Color Color
+ {
+ get
+ {
+ return Utils.NoteTypeToColor(NoteType);
+ }
+ }
+
+ public Note() { }
+ public Note(BeatInfo info)
+ {
+ BeatInfo = info;
+ GimmickType = GimmickType.NoGimmick;
+ }
+
+ public Note(Note baseNote) : this(baseNote.BeatInfo)
+ {
+ Position = baseNote.Position;
+ Size = baseNote.Size;
+ NoteType = baseNote.NoteType;
+ }
+ }
+
+ internal class Gimmick : NoteBase
+ {
+ public double BPM { get; set; }
+ public TimeSignature TimeSig { get; set; } = new();
+ public double HiSpeed { get; set; }
+ public double StartTime { get; set; }
+
+ public bool IsReverse
+ {
+ get
+ {
+ switch (GimmickType)
+ {
+ case GimmickType.ReverseStart:
+ case GimmickType.ReverseMiddle:
+ case GimmickType.ReverseEnd:
+ return true;
+ default:
+ return false;
+ }
+ }
+ }
+
+ public bool IsStop
+ {
+ get
+ {
+ switch (GimmickType)
+ {
+ case GimmickType.StopStart:
+ case GimmickType.StopEnd:
+ return true;
+ default:
+ return false;
+ }
+ }
+ }
+
+ public Gimmick() { }
+ public Gimmick(BeatInfo info, GimmickType type)
+ {
+ BeatInfo = info;
+ GimmickType = type;
+ }
+ public Gimmick(Gimmick baseGimmick) : this(baseGimmick.BeatInfo, baseGimmick.GimmickType)
+ {
+ switch (GimmickType)
+ {
+ case GimmickType.BpmChange:
+ HiSpeed = baseGimmick.HiSpeed;
+ break;
+ case GimmickType.TimeSignatureChange:
+ TimeSig = new TimeSignature(baseGimmick.TimeSig);
+ break;
+ case GimmickType.HiSpeedChange:
+ HiSpeed = baseGimmick.HiSpeed;
+ break;
+ }
+ }
+ }
+}
diff --git a/BAKKA-Editor/Operations/CompositeOperation.cs b/BAKKA-Editor/Operations/CompositeOperation.cs
new file mode 100644
index 0000000..8f4a89a
--- /dev/null
+++ b/BAKKA-Editor/Operations/CompositeOperation.cs
@@ -0,0 +1,37 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace BAKKA_Editor.Operations
+{
+ internal class CompositeOperation : IOperation
+ {
+ public string Description { get; }
+
+ protected IEnumerable Operations { get; }
+
+ public CompositeOperation(string description, IEnumerable operations)
+ {
+ Description = description;
+ Operations = operations;
+ }
+
+ public void Redo()
+ {
+ foreach (var op in Operations)
+ {
+ op.Redo();
+ }
+ }
+
+ public void Undo()
+ {
+ foreach (var op in Operations)
+ {
+ op.Undo();
+ }
+ }
+ }
+}
diff --git a/BAKKA-Editor/Operations/GimmickOperation.cs b/BAKKA-Editor/Operations/GimmickOperation.cs
new file mode 100644
index 0000000..45ae9cf
--- /dev/null
+++ b/BAKKA-Editor/Operations/GimmickOperation.cs
@@ -0,0 +1,111 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace BAKKA_Editor.Operations
+{
+ internal abstract class GimmickOperation : IOperation
+ {
+ protected Gimmick Gimmick { get; }
+ protected Chart Chart { get; }
+ public abstract string Description { get; }
+
+ public GimmickOperation(Chart chart, Gimmick item)
+ {
+ Chart = chart;
+ Gimmick = item;
+ }
+
+ public abstract void Redo();
+
+ public abstract void Undo();
+ }
+
+ internal class InsertGimmick : GimmickOperation
+ {
+ public override string Description => "Insert gimmick";
+
+ public InsertGimmick(Chart chart, Gimmick item) : base(chart, item)
+ { }
+
+ public override void Redo()
+ {
+ Chart.Gimmicks.Add(Gimmick);
+ }
+
+ public override void Undo()
+ {
+ Chart.Gimmicks.Remove(Gimmick);
+ }
+ }
+
+ internal class RemoveGimmick : GimmickOperation
+ {
+ public override string Description => "Remove gimmick";
+
+ public RemoveGimmick(Chart chart, Gimmick item) : base(chart, item)
+ { }
+
+ public override void Redo()
+ {
+ Chart.Gimmicks.Remove(Gimmick);
+ }
+
+ public override void Undo()
+ {
+ Chart.Gimmicks.Add(Gimmick);
+ }
+ }
+
+ internal class EditGimmick : IOperation
+ {
+ public string Description => "Edit gimmick";
+
+ protected Gimmick Base { get; }
+ protected Gimmick OldGimmick { get; }
+ protected Gimmick NewGimmick { get; }
+
+ public EditGimmick(Gimmick baseGimmick, Gimmick newGimmick)
+ {
+ Base = baseGimmick;
+ OldGimmick = new Gimmick(baseGimmick);
+ NewGimmick = new Gimmick(newGimmick);
+ }
+
+ public void Redo()
+ {
+ Base.BeatInfo = new BeatInfo(NewGimmick.BeatInfo);
+ switch (Base.GimmickType)
+ {
+ case GimmickType.BpmChange:
+ Base.BPM = NewGimmick.BPM;
+ break;
+ case GimmickType.TimeSignatureChange:
+ Base.TimeSig = new TimeSignature(NewGimmick.TimeSig);
+ break;
+ case GimmickType.HiSpeedChange:
+ Base.HiSpeed = NewGimmick.HiSpeed;
+ break;
+ }
+ }
+
+ public void Undo()
+ {
+ Base.BeatInfo = new BeatInfo(OldGimmick.BeatInfo);
+ switch (Base.GimmickType)
+ {
+ case GimmickType.BpmChange:
+ Base.BPM = OldGimmick.BPM;
+ break;
+ case GimmickType.TimeSignatureChange:
+ Base.TimeSig = new TimeSignature(OldGimmick.TimeSig);
+ break;
+ case GimmickType.HiSpeedChange:
+ Base.HiSpeed = OldGimmick.HiSpeed;
+ break;
+ }
+ }
+ }
+}
diff --git a/BAKKA-Editor/Operations/IOperation.cs b/BAKKA-Editor/Operations/IOperation.cs
new file mode 100644
index 0000000..6090d5e
--- /dev/null
+++ b/BAKKA-Editor/Operations/IOperation.cs
@@ -0,0 +1,17 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace BAKKA_Editor.Operations
+{
+ internal interface IOperation
+ {
+ string Description { get; }
+
+ void Undo();
+
+ void Redo();
+ }
+}
diff --git a/BAKKA-Editor/Operations/NoteOperation.cs b/BAKKA-Editor/Operations/NoteOperation.cs
new file mode 100644
index 0000000..521364a
--- /dev/null
+++ b/BAKKA-Editor/Operations/NoteOperation.cs
@@ -0,0 +1,91 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace BAKKA_Editor.Operations
+{
+ internal abstract class NoteOperation : IOperation
+ {
+ protected Note Note { get; }
+ protected Chart Chart { get; }
+ public abstract string Description { get; }
+
+ public NoteOperation(Chart chart, Note item)
+ {
+ Chart = chart;
+ Note = item;
+ }
+
+ public abstract void Redo();
+
+ public abstract void Undo();
+ }
+
+ internal class InsertNote : NoteOperation
+ {
+ public override string Description => "Insert note";
+
+ public InsertNote(Chart chart, Note item) : base(chart, item)
+ { }
+
+ public override void Redo()
+ {
+ Chart.Notes.Add(Note);
+ }
+
+ public override void Undo()
+ {
+ Chart.Notes.Remove(Note);
+ }
+ }
+
+ internal class RemoveNote : NoteOperation
+ {
+ public override string Description => "Remove note";
+
+ public RemoveNote(Chart chart, Note item) : base(chart, item)
+ { }
+
+ public override void Redo()
+ {
+ Chart.Notes.Remove(Note);
+ }
+
+ public override void Undo()
+ {
+ Chart.Notes.Add(Note);
+ }
+ }
+
+ internal class EditNote : IOperation
+ {
+ public string Description => "Edit note";
+
+ protected Note Base { get; }
+ protected Note OldNote { get; }
+ protected Note NewNote { get; }
+
+ public EditNote(Note baseNote, Note newNote)
+ {
+ Base = baseNote;
+ OldNote = new Note(baseNote);
+ NewNote = new Note(newNote);
+ }
+
+ public void Redo()
+ {
+ Base.BeatInfo = new BeatInfo(NewNote.BeatInfo);
+ Base.Position = NewNote.Position;
+ Base.Size = NewNote.Size;
+ }
+
+ public void Undo()
+ {
+ Base.BeatInfo = new BeatInfo(OldNote.BeatInfo);
+ Base.Position = OldNote.Position;
+ Base.Size = OldNote.Size;
+ }
+ }
+}
diff --git a/BAKKA-Editor/Operations/OperationManager.cs b/BAKKA-Editor/Operations/OperationManager.cs
new file mode 100644
index 0000000..8be8e14
--- /dev/null
+++ b/BAKKA-Editor/Operations/OperationManager.cs
@@ -0,0 +1,70 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace BAKKA_Editor.Operations
+{
+ internal class OperationManager
+ {
+ public event EventHandler? OperationHistoryChanged;
+ public event EventHandler? ChangesCommitted;
+
+ protected Stack UndoStack { get; } = new Stack();
+ protected Stack RedoStack { get; } = new Stack();
+
+ private IOperation? LastCommittedOperation { get; set; } = null;
+
+ public IEnumerable UndoOperationsDescription
+ {
+ get { return UndoStack.Select(p => p.Description); }
+ }
+
+ public IEnumerable RedoOperationsDescription
+ {
+ get { return RedoStack.Select(p => p.Description); }
+ }
+
+ public bool CanUndo { get { return UndoStack.Count > 0; } }
+
+ public bool CanRedo { get { return RedoStack.Count > 0; } }
+
+ public void Push(IOperation op)
+ {
+ UndoStack.Push(op);
+ RedoStack.Clear();
+ OperationHistoryChanged?.Invoke(this, EventArgs.Empty);
+ }
+
+ public void InvokeAndPush(IOperation op)
+ {
+ op.Redo();
+ Push(op);
+ }
+
+ public void Undo()
+ {
+ IOperation op = UndoStack.Pop();
+ op.Undo();
+ RedoStack.Push(op);
+ OperationHistoryChanged?.Invoke(this, EventArgs.Empty);
+ }
+
+ public void Redo()
+ {
+ IOperation op = RedoStack.Pop();
+ op.Redo();
+ UndoStack.Push(op);
+ OperationHistoryChanged?.Invoke(this, EventArgs.Empty);
+ }
+
+ public void Clear()
+ {
+ UndoStack.Clear();
+ RedoStack.Clear();
+ LastCommittedOperation = null;
+ OperationHistoryChanged?.Invoke(this, EventArgs.Empty);
+ }
+ }
+}
diff --git a/BAKKA-Editor/Program.cs b/BAKKA-Editor/Program.cs
index c6a3636..d6e9205 100644
--- a/BAKKA-Editor/Program.cs
+++ b/BAKKA-Editor/Program.cs
@@ -1,22 +1,17 @@
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Threading.Tasks;
-using System.Windows.Forms;
-
namespace BAKKA_Editor
{
internal static class Program
{
///
- /// The main entry point for the application.
+ /// The main entry point for the application.
///
[STAThread]
static void Main()
{
- Application.EnableVisualStyles();
- Application.SetCompatibleTextRenderingDefault(false);
- Application.Run(new Form1());
+ // To customize application configuration such as set high DPI settings or default font,
+ // see https://aka.ms/applicationconfiguration.
+ ApplicationConfiguration.Initialize();
+ Application.Run(new MainForm());
}
}
-}
+}
\ No newline at end of file
diff --git a/BAKKA-Editor/Properties/AssemblyInfo.cs b/BAKKA-Editor/Properties/AssemblyInfo.cs
deleted file mode 100644
index 9adeecb..0000000
--- a/BAKKA-Editor/Properties/AssemblyInfo.cs
+++ /dev/null
@@ -1,36 +0,0 @@
-using System.Reflection;
-using System.Runtime.CompilerServices;
-using System.Runtime.InteropServices;
-
-// General Information about an assembly is controlled through the following
-// set of attributes. Change these attribute values to modify the information
-// associated with an assembly.
-[assembly: AssemblyTitle("BAKKA-Editor")]
-[assembly: AssemblyDescription("")]
-[assembly: AssemblyConfiguration("")]
-[assembly: AssemblyCompany("")]
-[assembly: AssemblyProduct("BAKKA-Editor")]
-[assembly: AssemblyCopyright("Copyright © 2022")]
-[assembly: AssemblyTrademark("")]
-[assembly: AssemblyCulture("")]
-
-// Setting ComVisible to false makes the types in this assembly not visible
-// to COM components. If you need to access a type in this assembly from
-// COM, set the ComVisible attribute to true on that type.
-[assembly: ComVisible(false)]
-
-// The following GUID is for the ID of the typelib if this project is exposed to COM
-[assembly: Guid("76336598-b2be-4f67-b3d6-821f6a0e302f")]
-
-// Version information for an assembly consists of the following four values:
-//
-// Major Version
-// Minor Version
-// Build Number
-// Revision
-//
-// You can specify all the values or you can default the Build and Revision Numbers
-// by using the '*' as shown below:
-// [assembly: AssemblyVersion("1.0.*")]
-[assembly: AssemblyVersion("1.0.0.0")]
-[assembly: AssemblyFileVersion("1.0.0.0")]
diff --git a/BAKKA-Editor/Properties/Resources.Designer.cs b/BAKKA-Editor/Properties/Resources.Designer.cs
index 0761e9b..e3fba47 100644
--- a/BAKKA-Editor/Properties/Resources.Designer.cs
+++ b/BAKKA-Editor/Properties/Resources.Designer.cs
@@ -8,10 +8,10 @@
//
//------------------------------------------------------------------------------
-namespace BAKKA_Editor.Properties
-{
-
-
+namespace BAKKA_Editor.Properties {
+ using System;
+
+
///
/// A strongly-typed resource class, for looking up localized strings, etc.
///
@@ -19,51 +19,43 @@ namespace BAKKA_Editor.Properties
// class via a tool like ResGen or Visual Studio.
// To add or remove a member, edit your .ResX file then rerun ResGen
// with the /str option, or rebuild your VS project.
- [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")]
+ [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "17.0.0.0")]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
- internal class Resources
- {
-
+ internal class Resources {
+
private static global::System.Resources.ResourceManager resourceMan;
-
+
private static global::System.Globalization.CultureInfo resourceCulture;
-
+
[global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
- internal Resources()
- {
+ internal Resources() {
}
-
+
///
/// Returns the cached ResourceManager instance used by this class.
///
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
- internal static global::System.Resources.ResourceManager ResourceManager
- {
- get
- {
- if ((resourceMan == null))
- {
+ internal static global::System.Resources.ResourceManager ResourceManager {
+ get {
+ if (object.ReferenceEquals(resourceMan, null)) {
global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("BAKKA_Editor.Properties.Resources", typeof(Resources).Assembly);
resourceMan = temp;
}
return resourceMan;
}
}
-
+
///
/// Overrides the current thread's CurrentUICulture property for all
/// resource lookups using this strongly typed resource class.
///
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
- internal static global::System.Globalization.CultureInfo Culture
- {
- get
- {
+ internal static global::System.Globalization.CultureInfo Culture {
+ get {
return resourceCulture;
}
- set
- {
+ set {
resourceCulture = value;
}
}
diff --git a/BAKKA-Editor/Properties/Resources.resx b/BAKKA-Editor/Properties/Resources.resx
index af7dbeb..1af7de1 100644
--- a/BAKKA-Editor/Properties/Resources.resx
+++ b/BAKKA-Editor/Properties/Resources.resx
@@ -46,7 +46,7 @@
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
- : System.Serialization.Formatters.Binary.BinaryFormatter
+ : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
@@ -60,6 +60,7 @@
: and then encoded with base64 encoding.
-->
+
@@ -68,9 +69,10 @@
-
+
+
@@ -85,9 +87,10 @@
-
+
+
@@ -109,9 +112,9 @@
2.0
- System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
- System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
\ No newline at end of file
diff --git a/BAKKA-Editor/Properties/Settings.Designer.cs b/BAKKA-Editor/Properties/Settings.Designer.cs
deleted file mode 100644
index 7667584..0000000
--- a/BAKKA-Editor/Properties/Settings.Designer.cs
+++ /dev/null
@@ -1,30 +0,0 @@
-//------------------------------------------------------------------------------
-//
-// This code was generated by a tool.
-// Runtime Version:4.0.30319.42000
-//
-// Changes to this file may cause incorrect behavior and will be lost if
-// the code is regenerated.
-//
-//------------------------------------------------------------------------------
-
-namespace BAKKA_Editor.Properties
-{
-
-
- [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
- [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "11.0.0.0")]
- internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase
- {
-
- private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings())));
-
- public static Settings Default
- {
- get
- {
- return defaultInstance;
- }
- }
- }
-}
diff --git a/BAKKA-Editor/Properties/Settings.settings b/BAKKA-Editor/Properties/Settings.settings
deleted file mode 100644
index 3964565..0000000
--- a/BAKKA-Editor/Properties/Settings.settings
+++ /dev/null
@@ -1,7 +0,0 @@
-
-
-
-
-
-
-
diff --git a/BAKKA-Editor/Properties/launchSettings.json b/BAKKA-Editor/Properties/launchSettings.json
new file mode 100644
index 0000000..a4a6877
--- /dev/null
+++ b/BAKKA-Editor/Properties/launchSettings.json
@@ -0,0 +1,7 @@
+{
+ "profiles": {
+ "BAKKA-Editor": {
+ "commandName": "Project"
+ }
+ }
+}
\ No newline at end of file
diff --git a/BAKKA-Editor/UserSettings.cs b/BAKKA-Editor/UserSettings.cs
new file mode 100644
index 0000000..ab8c009
--- /dev/null
+++ b/BAKKA-Editor/UserSettings.cs
@@ -0,0 +1,29 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace BAKKA_Editor
+{
+ internal class UserSettings
+ {
+ public ViewSettings ViewSettings { get; set; } = new();
+ public SaveSettings SaveSettings { get; set; } = new();
+ }
+
+ internal class ViewSettings
+ {
+ public bool ShowCursor { get; set; } = true;
+ public bool ShowCursorDuringPlayback { get; set; } = false;
+ public bool HighlightViewedNote { get; set; } = true;
+ }
+
+ internal class SaveSettings
+ {
+ ///
+ /// How frequently autosave occurs (in minutes)
+ ///
+ public int AutoSaveInterval { get; set; } = 1;
+ }
+}
diff --git a/BAKKA-Editor/Utils.cs b/BAKKA-Editor/Utils.cs
new file mode 100644
index 0000000..d09c022
--- /dev/null
+++ b/BAKKA-Editor/Utils.cs
@@ -0,0 +1,182 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace BAKKA_Editor
+{
+ internal static class Utils
+ {
+ internal static string? GetTag(string input, string tag)
+ {
+ if(input.Contains(tag))
+ {
+ return input.Substring(input.IndexOf(tag) + tag.Length);
+ }
+
+ return null;
+ }
+
+ internal static double DegToRad(double deg)
+ {
+ return deg * Math.PI / 180.0f;
+ }
+
+ internal static Color NoteTypeToColor(NoteType type)
+ {
+ switch (type)
+ {
+ case NoteType.TouchNoBonus:
+ case NoteType.TouchBonus:
+ case NoteType.TouchBonusFlair:
+ return Color.Fuchsia;
+ case NoteType.SnapRedNoBonus:
+ case NoteType.SnapRedBonusFlair:
+ return Color.Red;
+ case NoteType.SnapBlueNoBonus:
+ case NoteType.SnapBlueBonusFlair:
+ return Color.Aqua;
+ case NoteType.SlideOrangeNoBonus:
+ case NoteType.SlideOrangeBonus:
+ case NoteType.SlideOrangeBonusFlair:
+ return Color.FromArgb(255, 128, 0);
+ case NoteType.SlideGreenNoBonus:
+ case NoteType.SlideGreenBonus:
+ case NoteType.SlideGreenBonusFlair:
+ return Color.LimeGreen;
+ case NoteType.HoldStartNoBonus:
+ case NoteType.HoldJoint:
+ case NoteType.HoldEnd:
+ case NoteType.HoldStartBonusFlair:
+ return Color.Yellow;
+ case NoteType.Chain:
+ case NoteType.ChainBonusFlair:
+ return Color.FromArgb(204, 190, 45);
+ default:
+ return Color.Transparent;
+ }
+ }
+
+ internal static void InvokeIfRequired(this Control control, MethodInvoker action)
+ {
+ if (control.InvokeRequired)
+ {
+ control.Invoke(action);
+ }
+ else
+ {
+ action();
+ }
+ }
+
+ internal static Rectangle ToInt(this RectangleF rect)
+ {
+ return new Rectangle((int)rect.X, (int)rect.Y, (int)rect.Width, (int)rect.Height);
+ }
+
+ internal static int FindGCD(int a, int b)
+ {
+ if (b == 0)
+ return a;
+ return FindGCD(b, a & b);
+ }
+
+ internal static string ToLabel(this NoteType type)
+ {
+ switch (type)
+ {
+ case NoteType.TouchNoBonus:
+ return "Touch";
+ case NoteType.TouchBonus:
+ return "Touch [Bonus]";
+ case NoteType.SnapRedNoBonus:
+ return "Snap (R)";
+ case NoteType.SnapBlueNoBonus:
+ return "Snap (B)";
+ case NoteType.SlideOrangeNoBonus:
+ return "Slide (O)";
+ case NoteType.SlideOrangeBonus:
+ return "Slide (O) [Bonus]";
+ case NoteType.SlideGreenNoBonus:
+ return "Slide (G)";
+ case NoteType.SlideGreenBonus:
+ return "Slide (G) [Bonus]";
+ case NoteType.HoldStartNoBonus:
+ return "Hold Start";
+ case NoteType.HoldJoint:
+ return "Hold Joint";
+ case NoteType.HoldEnd:
+ return "Hold End";
+ case NoteType.MaskAdd:
+ return "Mask Add";
+ case NoteType.MaskRemove:
+ return "Mask Remove";
+ case NoteType.EndOfChart:
+ return "End of Chart";
+ case NoteType.Chain:
+ return "Chain";
+ case NoteType.TouchBonusFlair:
+ return "Touch [R Note]";
+ case NoteType.SnapRedBonusFlair:
+ return "Snap (R) [R Note]";
+ case NoteType.SnapBlueBonusFlair:
+ return "Snap (B) [R Note]";
+ case NoteType.SlideOrangeBonusFlair:
+ return "Slide (O) [R Note]";
+ case NoteType.SlideGreenBonusFlair:
+ return "Slide (G) [R Note]";
+ case NoteType.HoldStartBonusFlair:
+ return "Hold Start [R Note]";
+ case NoteType.ChainBonusFlair:
+ return "Chain [R Note]";
+ default:
+ return "Undefined Note Type";
+ }
+ }
+
+ internal static string ToLabel(this GimmickType type)
+ {
+ switch (type)
+ {
+ case GimmickType.BpmChange:
+ return "BPM Change";
+ case GimmickType.TimeSignatureChange:
+ return "Time Signature Change";
+ case GimmickType.HiSpeedChange:
+ return "Hi-Speed Change";
+ case GimmickType.ReverseStart:
+ return "Reverse Start";
+ case GimmickType.ReverseMiddle:
+ return "Reverse Middle";
+ case GimmickType.ReverseEnd:
+ return "Reverse Stop";
+ case GimmickType.StopStart:
+ return "Stop Start";
+ case GimmickType.StopEnd:
+ return "Stop End";
+ default:
+ return "Undefined Gimmick";
+ }
+ }
+
+ internal static bool HasDecimal(double num)
+ {
+ return Math.Ceiling(num) == Math.Floor(num);
+ }
+
+ internal static Tuple GetQuantization(int val, int min)
+ {
+ while (!HasDecimal((double)(val * min) / 1920.0))
+ {
+ min *= 2;
+ }
+ return new Tuple((int)(val * min / 1920.0), min);
+ }
+
+ internal static float GetDist(Point a, Point b)
+ {
+ return (float)Math.Sqrt(Math.Pow(a.X - b.X, 2) + Math.Pow(a.Y - b.Y, 2));
+ }
+ }
+}
diff --git a/lib/ikpFlac.dll b/lib/ikpFlac.dll
new file mode 100644
index 0000000..2271a3f
Binary files /dev/null and b/lib/ikpFlac.dll differ
diff --git a/lib/ikpMP3.dll b/lib/ikpMP3.dll
new file mode 100644
index 0000000..b913400
Binary files /dev/null and b/lib/ikpMP3.dll differ
diff --git a/lib/irrKlang.NET4.dll b/lib/irrKlang.NET4.dll
new file mode 100644
index 0000000..ef53ee5
Binary files /dev/null and b/lib/irrKlang.NET4.dll differ