AlphaTab.Exporter.AlphaTexExporter.BeatEffects C# (CSharp) Method

BeatEffects() private method

private BeatEffects ( Beat beat ) : void
beat AlphaTab.Model.Beat
return void
        private void BeatEffects(Beat beat)
        {
            bool hasEffectOpen = false;

            if (beat.FadeIn)
            {
                hasEffectOpen = EffectOpen(hasEffectOpen);
                _builder.Append("f ");
            }

            switch (beat.GraceType)
            {
                case GraceType.OnBeat:
                    _builder.Append("gr ob ");
                    break;
                case GraceType.BeforeBeat:
                    _builder.Append("gr ");
                    break;
            }

            if (beat.Vibrato != VibratoType.None)
            {
                hasEffectOpen = EffectOpen(hasEffectOpen);
                _builder.Append("v ");
            }

            if (beat.Slap)
            {
                hasEffectOpen = EffectOpen(hasEffectOpen);
                _builder.Append("s ");
            }

            if (beat.Pop)
            {
                hasEffectOpen = EffectOpen(hasEffectOpen);
                _builder.Append("p ");
            }

            if (beat.Dots == 2)
            {
                hasEffectOpen = EffectOpen(hasEffectOpen);
                _builder.Append("dd ");
            }
            else if (beat.Dots == 1)
            {
                hasEffectOpen = EffectOpen(hasEffectOpen);
                _builder.Append("d ");
            }

            if (beat.PickStroke == PickStrokeType.Up)
            {
                hasEffectOpen = EffectOpen(hasEffectOpen);
                _builder.Append("su ");
            }
            else if (beat.PickStroke == PickStrokeType.Down)
            {
                hasEffectOpen = EffectOpen(hasEffectOpen);
                _builder.Append("sd ");
            }

            if (beat.HasTuplet)
            {
                int tupletValue = 0;
                if (beat.TupletDenominator == 3 && beat.TupletNumerator == 2)
                {
                    tupletValue = 3;
                }
                else if (beat.TupletDenominator == 5 && beat.TupletNumerator == 4)
                {
                    tupletValue = 5;
                }
                else if (beat.TupletDenominator == 6 && beat.TupletNumerator == 4)
                {
                    tupletValue = 6;
                }
                else if (beat.TupletDenominator == 7 && beat.TupletNumerator == 4)
                {
                    tupletValue = 7;
                }
                else if (beat.TupletDenominator == 9 && beat.TupletNumerator == 8)
                {
                    tupletValue = 9;
                }
                else if (beat.TupletDenominator == 10 && beat.TupletNumerator == 8)
                {
                    tupletValue = 10;
                }
                else if (beat.TupletDenominator == 11 && beat.TupletNumerator == 8)
                {
                    tupletValue = 11;
                }
                else if (beat.TupletDenominator == 12 && beat.TupletNumerator == 8)
                {
                    tupletValue = 12;
                }

                if (tupletValue != 0)
                {
                    hasEffectOpen = EffectOpen(hasEffectOpen);
                    _builder.Append("tu ");
                    _builder.Append(tupletValue);
                    _builder.Append(" ");
                }
            }

            if (beat.HasWhammyBar)
            {
                hasEffectOpen = EffectOpen(hasEffectOpen);
                _builder.Append("tbe (");

                for (int i = 0; i < beat.WhammyBarPoints.Count; i++)
                {
                    _builder.Append(beat.WhammyBarPoints[i].Offset);
                    _builder.Append(" ");
                    _builder.Append(beat.WhammyBarPoints[i].Value);
                    _builder.Append(" ");
                }
                _builder.Append(")");
            }

            if (beat.IsTremolo)
            {
                hasEffectOpen = EffectOpen(hasEffectOpen);
                _builder.Append("tp ");
                if (beat.TremoloSpeed == Duration.Eighth)
                {
                    _builder.Append("8 ");
                }
                else if (beat.TremoloSpeed == Duration.Sixteenth)
                {
                    _builder.Append("16 ");
                }
                else if (beat.TremoloSpeed == Duration.ThirtySecond)
                {
                    _builder.Append("32 ");
                }
                else
                {
                    _builder.Append("8 ");
                }
            }

            EffectClose(hasEffectOpen);
        }