musical_note_frequency.nbt 473 B

123456789101112
  1. # Musical note frequencies in the 12 equal temperament system
  2. let frequency_A4: Frequency = 440 Hz # the A above middle C, A4
  3. fn note_frequency(n: Scalar) -> Frequency = frequency_A4 * 2^(n / 12)
  4. print(note_frequency(12)) # one octave higher up (A5), 880 Hz
  5. print(note_frequency(7)) # E4
  6. print(note_frequency(-3)) # C4
  7. assert_eq(note_frequency(12), 2 * frequency_A4)
  8. assert_eq(note_frequency(7), 659.255 Hz, 1 mHz)
  9. assert_eq(note_frequency(-3), 369.994 Hz, 1 mHz)