currentMusicalValue property
double
get
currentMusicalValue
Calcula o valor total atual das figuras musicais no compasso.
Implementation
double get currentMusicalValue {
double total = 0.0;
for (final element in elements) {
if (element is Note) {
total += element.duration.realValue;
} else if (element is Rest) {
total += element.duration.realValue;
} else if (element.runtimeType.toString() == 'Chord') {
// Usar reflexão para evitar import circular
final dynamic chord = element;
if (chord.duration != null) {
total += chord.duration.realValue;
}
} else if (element.runtimeType.toString() == 'Tuplet') {
// Calcular valor da quiáltera baseado na razão
final dynamic tuplet = element;
double tupletValue = 0.0;
// Somar duração de todas as notas da quiáltera
for (final tupletElement in tuplet.elements) {
if (tupletElement is Note) {
tupletValue += tupletElement.duration.realValue;
} else if (tupletElement.runtimeType.toString() == 'Chord') {
final dynamic chord = tupletElement;
if (chord.duration != null) {
tupletValue += chord.duration.realValue;
}
}
}
// Aplicar a razão da quiáltera (normalNotes / actualNotes)
if (tuplet.actualNotes > 0) {
tupletValue = tupletValue * (tuplet.normalNotes / tuplet.actualNotes);
}
total += tupletValue;
}
}
return total;
}