private static MelodyExpression PareseNote(char current, Queue <char> rest)
        {
            Tone   note;
            string text = current.ToString(CultureInfo.InvariantCulture);

            if (!Enum.TryParse(text, out note))
            {
                throw CreateException(rest);
            }

            MelodyExpression modifier  = ParseModifierOptional(rest);
            MelodyExpression length    = ParseLengthOptional(rest);
            MelodyExpression shortener = ParseShortenerOptional(rest);

            return(new Note(note, modifier, length, shortener));
        }
        private static MelodyExpression ParsePause(Queue <char> rest)
        {
            MelodyExpression length = ParseLengthOptional(rest);

            return(new Pause(length));
        }