Beispiel #1
0
        private void ProcessFile(string fileName)
        {
            string[] lines = new ProcessScore(fileName).Score.ToArray();

            MidiFile.Folder = Path.GetDirectoryName(fileName);

            string value = "";

            var note = new Note();

            foreach (string s in lines)
            {
                if (s.StartsWith("@skip"))
                {
                    throw new SkipFileException("Skip Instruction");
                }

                if (s.StartsWith("@real"))
                {
                    note.RealPitch = true;
                    continue;
                }

                if (s.StartsWith("@swing"))
                {
                    note.Swing = !note.Swing;
                    continue;
                }

                if (s.StartsWith("@soprano"))
                {
                    note.SetSoprano();
                    continue;
                }

                if (s.StartsWith("@alto"))
                {
                    note.SetAlto();
                    continue;
                }

                if (s.StartsWith("@transpose"))
                {
                    note.Transpose = true;
                    continue;
                }

                if (s.StartsWith("t="))
                {
                    value = s.Replace("t=", "");
                    Sequence.AddTempo(uint.Parse(value));
                    continue;
                }

                if (s.StartsWith("f="))
                {
                    value           = s.Replace("f=", "");
                    MidiFile.Folder = value;
                    continue;
                }

                string[] notes = TokeniseBar(s);

                foreach (var n in notes)
                {
                    note.NextNote(n);
                    Sequence.AddMidiNote(note);
                }
            }

            MidiFile.AllocateTracks(new TrackBuilder(Sequence, Debug));
        }