Example #1
0
        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();
            }
        }
Example #2
0
 public Parser(MidiLoader loader)
 {
     this.Notes        = loader.Notes;
     this.BaseInterval = loader.SmallestInterval;
 }