Exemplo n.º 1
0
        public Token Convert(LilypondTokenEnumerator enumerator)
        {
            enumerator.Next();
            ClefBuilder builder = new ClefBuilder();
            ClefTone    tone    = ClefTone.G;

            if (enumerator.Current != null)
            {
                Enum.TryParse(enumerator.Current.TokenText, true, out tone);
            }
            builder.WithTone(tone);
            return(builder.Build());
        }
Exemplo n.º 2
0
        private void AddToComposition(LilypondTokenEnumerator enumerator)
        {
            var input = enumerator.Current;

            if (_tokenConverters.ContainsKey(input.Kind))
            {
                var converter = _tokenConverters[input.Kind];
                var token     = converter.Convert(enumerator);
                if (token != null)
                {
                    composition.Tokens.Add(token);
                }
            }
            enumerator.Next();
        }
Exemplo n.º 3
0
        public Token Convert(LilypondTokenEnumerator enumerator)
        {
            enumerator.Next();
            var signature = enumerator.Current;

            string[] parts   = signature.TokenText.Split('/');
            var      builder = new TimeSignatureBuilder();

            if (int.TryParse(parts[0], out int count) && int.TryParse(parts[1], out int denominator))
            {
                builder.WithCount(count);
                builder.WithDenominator(denominator);
            }
            return(builder.Build());
        }
        public Token Convert(LilypondTokenEnumerator enumerator)
        {
            enumerator.Next();
            var builder = new TempoBuilder();
            int bpm     = 120;

            if (enumerator.Current != null)
            {
                var match = Regex.Match(enumerator.Current.TokenText, @"\d+=(\d+)");
                if (match.Success)
                {
                    int.TryParse(match.Groups[1].Value, out bpm);
                }
            }
            bpm = Math.Max(1, bpm); // make sure no <= 0 bpm is set
            builder.WithBPM(bpm);
            return(builder.Build());
        }
 public Token Convert(LilypondTokenEnumerator enumerator)
 {
     enumerator.Next(); // skips next token as it is a parameter for relative
     return(null);
 }