intervalName property

String get intervalName

Musical interval name between the two resonances.

Implementation

String get intervalName {
  final ratio = resonanceA > 0 && resonanceB > 0
      ? (math.max(resonanceA, resonanceB) /
          math.min(resonanceA, resonanceB))
      : 1.0;
  if ((ratio - 1.0).abs() < 0.05) return 'UnĂ­sono';
  if ((ratio - 2.0).abs() < 0.1) return 'Octava';
  if ((ratio - 1.5).abs() < 0.08) return 'Quinta Justa';
  if ((ratio - 1.333).abs() < 0.08) return 'Cuarta Justa';
  if ((ratio - 1.25).abs() < 0.06) return 'Tercera Mayor';
  if ((ratio - 1.2).abs() < 0.06) return 'Tercera Menor';
  if ((ratio - 1.667).abs() < 0.08) return 'Sexta Mayor';
  return 'Intervalo Libre';
}