static void Main(string[] args) { MidiLoader loader = new MidiLoader(); GetPathAndOptions(args); FileInfo codeFile = new FileInfo(Path); string programName = codeFile.Name; loader.Load(Path); foreach (Note note in loader.Notes) { Console.WriteLine(note.Name + "\t" + note.Number.ToString()); Console.WriteLine(Math.Round(note.PitchCorrection * loader.SmallestInterval) + "/" + loader.SmallestInterval.ToString()); } Console.WriteLine("smallest tone: 1/" + loader.SmallestInterval.ToString()); Parser parser = new Parser(loader.Notes, loader.SmallestInterval); List <CommandToken> tokens = parser.Parse(); CodeGenerator codeGenerator = new CodeGenerator(tokens, programName); if (ToJavascript) { FileInfo jsFile = new FileInfo(programName + ".js"); using (StreamWriter writer = jsFile.CreateText()) { writer.Write(codeGenerator.GenerateJavaScript()); writer.Flush(); } } if (ToCSharp) { FileInfo csFile = new FileInfo(programName + ".cs"); using (StreamWriter writer = csFile.CreateText()) { writer.Write(codeGenerator.GenerateCSharp()); writer.Flush(); } } if (Compile) { codeGenerator.GenerateFile(); } }
public Parser(MidiLoader loader) { this.Notes = loader.Notes; this.BaseInterval = loader.SmallestInterval; }