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

NoteEffects() private method

private NoteEffects ( Note note ) : void
note AlphaTab.Model.Note
return void
        private void NoteEffects(Note note)
        {
            bool hasEffectOpen = false;

            if (note.HasBend)
            {
                hasEffectOpen = EffectOpen(hasEffectOpen);
                _builder.Append("be (");

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

            switch (note.HarmonicType)
            {
                case HarmonicType.Natural:
                    hasEffectOpen = EffectOpen(hasEffectOpen);
                    _builder.Append("nh ");
                    break;
                case HarmonicType.Artificial:
                    hasEffectOpen = EffectOpen(hasEffectOpen);
                    _builder.Append("ah ");
                    break;
                case HarmonicType.Tap:
                    hasEffectOpen = EffectOpen(hasEffectOpen);
                    _builder.Append("th ");
                    break;
                case HarmonicType.Pinch:
                    hasEffectOpen = EffectOpen(hasEffectOpen);
                    _builder.Append("ph ");
                    break;
                case HarmonicType.Semi:
                    hasEffectOpen = EffectOpen(hasEffectOpen);
                    _builder.Append("sh ");
                    break;
            }

            if (note.IsTrill)
            {
                hasEffectOpen = EffectOpen(hasEffectOpen);
                _builder.Append("tr ");
                _builder.Append(note.TrillFret);
                _builder.Append(" ");
                switch (note.TrillSpeed)
                {
                    case Duration.Sixteenth:
                        _builder.Append("16 ");
                        break;
                    case Duration.ThirtySecond:
                        _builder.Append("32 ");
                        break;
                    case Duration.SixtyFourth:
                        _builder.Append("64 ");
                        break;
                }
            }

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

            if (note.SlideType == SlideType.Legato)
            {
                hasEffectOpen = EffectOpen(hasEffectOpen);
                _builder.Append("sl ");
            }

            if (note.SlideType == SlideType.Shift)
            {
                hasEffectOpen = EffectOpen(hasEffectOpen);
                _builder.Append("ss ");
            }

            if (note.IsHammerPullOrigin)
            {
                hasEffectOpen = EffectOpen(hasEffectOpen);
                _builder.Append("h ");
            }

            if (note.IsGhost)
            {
                hasEffectOpen = EffectOpen(hasEffectOpen);
                _builder.Append("g ");
            }

            if (note.Accentuated == AccentuationType.Normal)
            {
                hasEffectOpen = EffectOpen(hasEffectOpen);
                _builder.Append("ac ");
            }
            else if (note.Accentuated == AccentuationType.Heavy)
            {
                hasEffectOpen = EffectOpen(hasEffectOpen);
                _builder.Append("hac ");
            }

            if (note.IsPalmMute)
            {
                hasEffectOpen = EffectOpen(hasEffectOpen);
                _builder.Append("pm ");
            }

            if (note.IsStaccato)
            {
                hasEffectOpen = EffectOpen(hasEffectOpen);
                _builder.Append("st ");
            }

            if (note.IsLetRing)
            {
                hasEffectOpen = EffectOpen(hasEffectOpen);
                _builder.Append("lr ");
            }

            switch (note.LeftHandFinger)
            {
                case Fingers.Thumb:
                    hasEffectOpen = EffectOpen(hasEffectOpen);
                    _builder.Append("1 ");
                    break;
                case Fingers.IndexFinger:
                    hasEffectOpen = EffectOpen(hasEffectOpen);
                    _builder.Append("2 ");
                    break;
                case Fingers.MiddleFinger:
                    hasEffectOpen = EffectOpen(hasEffectOpen);
                    _builder.Append("3 ");
                    break;
                case Fingers.AnnularFinger:
                    hasEffectOpen = EffectOpen(hasEffectOpen);
                    _builder.Append("4 ");
                    break;
                case Fingers.LittleFinger:
                    hasEffectOpen = EffectOpen(hasEffectOpen);
                    _builder.Append("5 ");
                    break;
            }

            switch (note.RightHandFinger)
            {
                case Fingers.Thumb:
                    hasEffectOpen = EffectOpen(hasEffectOpen);
                    _builder.Append("1 ");
                    break;
                case Fingers.IndexFinger:
                    hasEffectOpen = EffectOpen(hasEffectOpen);
                    _builder.Append("2 ");
                    break;
                case Fingers.MiddleFinger:
                    hasEffectOpen = EffectOpen(hasEffectOpen);
                    _builder.Append("3 ");
                    break;
                case Fingers.AnnularFinger:
                    hasEffectOpen = EffectOpen(hasEffectOpen);
                    _builder.Append("4 ");
                    break;
                case Fingers.LittleFinger:
                    hasEffectOpen = EffectOpen(hasEffectOpen);
                    _builder.Append("5 ");
                    break;
            }

            EffectClose(hasEffectOpen);
        }