Sfoglia il codice sorgente

Add musical note frequency example

David Peter 2 anni fa
parent
commit
7e9bc5e66d
1 ha cambiato i file con 9 aggiunte e 0 eliminazioni
  1. 9 0
      examples/musical_note_frequency.nbt

+ 9 - 0
examples/musical_note_frequency.nbt

@@ -0,0 +1,9 @@
+# Musical note frequencies in the 12 equal temperament system
+
+let frequency_A4: Frequency = 440 Hz  # the A above middle C, A4
+
+fn note_frequency(n: Scalar) -> Frequency = frequency_A4 * 2^(n / 12)
+
+assert_eq(note_frequency(12), 2 * frequency_A4)  # one octave higher up (A5), double the frequency
+assert_eq(note_frequency(7),  659.255 Hz, 1 mHz)  # E4
+assert_eq(note_frequency(-3), 369.994 Hz, 1 mHz)  # C4