Beispiel #1
0
        public Note CreateNote(string noteString)
        {
            StaccatoParserContext parserContext = new StaccatoParserContext(new StaccatoParser());
            NoteContext           noteContext   = new NoteContext();

            ParseNoteElement(noteString, 0, noteContext, parserContext);
            return(noteContext.CreateNote(parserContext));
        }
Beispiel #2
0
        private int ParseNoteElement(string music, int index, StaccatoParserContext parserContext)
        {
            bool repeat      = false;
            var  noteContext = new NoteContext();

            do
            {
                index = ParseNoteElement(music, index, noteContext, parserContext);
                if (noteContext.IsChord)
                {
                    var chord = noteContext.CreateChord(parserContext);
                    parserContext.Parser.OnChordParsed(chord);
                }
                else
                {
                    var note = noteContext.CreateNote(parserContext);
                    parserContext.Parser.OnNoteParsed(note);
                }
                repeat      = noteContext.IsThereAnother;
                noteContext = noteContext.CreateNextNoteContext();
            } while (repeat);
            return(index);
        }