getNoteFromFrequency function
Implementation
String getNoteFromFrequency(double frequency) {
if (frequency <= 0) return "--";
// Fórmula: n = 12 * log2(f / 440) + 69
// 69 es el número MIDI de A4 (440Hz)
final n = 12 * (math.log(frequency / 440) / math.log(2)) + 69;
final midiNumber = n.round();
final notes = ['C', 'C#', 'D', 'D#', 'E', 'F', 'F#', 'G', 'G#', 'A', 'A#', 'B'];
final octave = (midiNumber ~/ 12) - 1;
final noteIndex = midiNumber % 12;
if (midiNumber < 0 || noteIndex < 0) return "?";
return "${notes[noteIndex]}$octave";
}