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 is Chord) {
      // Type-safe checking - sem reflexão
      total += element.duration.realValue;
    } else if (element is Tuplet) {
      // Calcular valor da quiáltera baseado na razão
      final 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 is Chord) {
          tupletValue += tupletElement.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;
}