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);
}