private DynamicValue GetDynamicValue(Note note)
{
var dynamicValue = note.Dynamic;
// more silent on hammer destination
if (!note.Beat.Voice.Bar.Staff.Track.IsPercussion && note.HammerPullOrigin != null)
{
dynamicValue--;
}
// more silent on ghost notes
if (note.IsGhost)
{
dynamicValue--;
}
// louder on accent
switch (note.Accentuated)
{
case AccentuationType.Normal:
dynamicValue++;
break;
case AccentuationType.Heavy:
dynamicValue += 2;
break;
}
return dynamicValue;
}