Exemplo n.º 1
0
 public override int Parse(PlaineAndEasieParser parser, string s)
 {
     if (s[0] == '{')
     {
         parser.IsBeamingEnabled = true;
     }
     else
     {
         parser.IsBeamingEnabled = false;
         parser.RebeamGroup();
     }
     return(1);
 }
        public override int Parse(PlaineAndEasieParser parser, string s)
        {
            if (parser.GroupSize == 1)
            {
                parser.AddFermata();
            }
            else
            {
                parser.MakeTuple();
            }

            parser.IsGroupingEnabled = false;
            parser.GroupSize         = 0;

            return(1);
        }
Exemplo n.º 3
0
        public override int Parse(PlaineAndEasieParser parser, string s)
        {
            if (string.IsNullOrWhiteSpace(s) || s.Length < 3)
            {
                parser.AddClef('G', 2, false);
                return(s?.Length ?? 0);
            }

            var clefData   = s.Substring(0, 3);
            var isMensural = clefData[1] == '+';

            if (!int.TryParse(clefData[2].ToString(), out int lineNumber))
            {
                lineNumber = 2;
            }

            parser.AddClef(clefData[0], lineNumber, isMensural);
            return(3);
        }
Exemplo n.º 4
0
        public override int Parse(PlaineAndEasieParser parser, string s)
        {
            var length = s.IndexOf("/");

            if (length < 0)
            {
                return(0);
            }

            var numberOfMeasures = 0;

            if (length > 0)
            {
                int.TryParse(s.Substring(0, length), out numberOfMeasures);
            }

            parser.AddWholeMeasureRests(numberOfMeasures);

            return(length);
        }
Exemplo n.º 5
0
        public override bool IsRelevant(string s) => int.TryParse(s[0].ToString(), out _) && !s.StartsWith("7.");   //7. is neumatic notation

        public override int Parse(PlaineAndEasieParser parser, string s)
        {
            var dots = 0;

            for (var i = 1; i < s.Length; i++)
            {
                if (s[i] == '.')
                {
                    dots++;
                }
                else
                {
                    break;
                }
            }
            parser.CurrentNumberOfDots = dots;
            var rismRhythmicValue = int.Parse(s[0].ToString());

            parser.CurrentRhythmicLogValue = DetermineRhythmicLogValue(rismRhythmicValue);

            return(1 + dots);
        }
Exemplo n.º 6
0
        public override int Parse(PlaineAndEasieParser parser, string s)
        {
            if (string.IsNullOrWhiteSpace(s) || s.Length <= 1)
            {
                parser.AddKey(0);
                return(s?.Length ?? 0);
            }

            var modifier = s.StartsWith("b") ? -1 : 1;
            var fifths   = 0;

            for (var i = 1; i < 7 && i < s.Length; i++)
            {
                if (s[i] != (modifier == 1 ? Sharps : Flats)[i - 1])
                {
                    break;
                }
                fifths++;
            }

            parser.AddKey(fifths * modifier);

            return(fifths + 1);
        }
Exemplo n.º 7
0
 public abstract int Parse(PlaineAndEasieParser parser, string s);
Exemplo n.º 8
0
 public override int Parse(PlaineAndEasieParser parser, string s)
 {
     parser.IsGroupingEnabled = true;
     return(1);
 }
 public override int Parse(PlaineAndEasieParser parser, string s)
 {
     parser.AddRest();
     return(1);
 }