summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJake Zerrer <him@jakezerrer.com>2025-11-26 15:10:20 -0500
committerJake Zerrer <him@jakezerrer.com>2025-12-02 13:27:22 -0500
commit2d421d7354d2be61c4a474896e163d48b4640d63 (patch)
treed0669b7a52503cbf710c5f7a71fbd7d757e1383c
parent6f58e667587937948055194018e44338b2c38323 (diff)
Add unheard.midi.notes namespace
-rw-r--r--src/unheard/midi/notes.clj160
1 files changed, 160 insertions, 0 deletions
diff --git a/src/unheard/midi/notes.clj b/src/unheard/midi/notes.clj
new file mode 100644
index 0000000..0c47805
--- /dev/null
+++ b/src/unheard/midi/notes.clj
@@ -0,0 +1,160 @@
+(ns unheard.midi.notes
+ "MIDI note number definitions for all notes from C-1 to G9.
+
+ Each note is defined as (m/ap {0 }<midi-number>) for use with missionary.
+
+ Note naming convention:
+ - Middle C (MIDI 60) is c4
+ - Sharps use 's' suffix (e.g., cs4 for C#4)
+ - Range: C-1 (MIDI 0) to G9 (MIDI 127)"
+ (:require [missionary.core :as m]))
+
+;; Octave -1
+(def c-1 (m/ap {0 {0 :on}}))
+(def cs-1 (m/ap {0 {1 :on}}))
+(def d-1 (m/ap {0 {2 :on}}))
+(def ds-1 (m/ap {0 {3 :on}}))
+(def e-1 (m/ap {0 {4 :on}}))
+(def f-1 (m/ap {0 {5 :on}}))
+(def fs-1 (m/ap {0 {6 :on}}))
+(def g-1 (m/ap {0 {7 :on}}))
+(def gs-1 (m/ap {0 {8 :on}}))
+(def a-1 (m/ap {0 {9 :on}}))
+(def as-1 (m/ap {0 {10 :on}}))
+(def b-1 (m/ap {0 {11 :on}}))
+
+;; Octave 0
+(def c0 (m/ap {0 {12 :on}}))
+(def cs0 (m/ap {0 {13 :on}}))
+(def d0 (m/ap {0 {14 :on}}))
+(def ds0 (m/ap {0 {15 :on}}))
+(def e0 (m/ap {0 {16 :on}}))
+(def f0 (m/ap {0 {17 :on}}))
+(def fs0 (m/ap {0 {18 :on}}))
+(def g0 (m/ap {0 {19 :on}}))
+(def gs0 (m/ap {0 {20 :on}}))
+(def a0 (m/ap {0 {21 :on}}))
+(def as0 (m/ap {0 {22 :on}}))
+(def b0 (m/ap {0 {23 :on}}))
+
+;; Octave 1
+(def c1 (m/ap {0 {24 :on}}))
+(def cs1 (m/ap {0 {25 :on}}))
+(def d1 (m/ap {0 {26 :on}}))
+(def ds1 (m/ap {0 {27 :on}}))
+(def e1 (m/ap {0 {28 :on}}))
+(def f1 (m/ap {0 {29 :on}}))
+(def fs1 (m/ap {0 {30 :on}}))
+(def g1 (m/ap {0 {31 :on}}))
+(def gs1 (m/ap {0 {32 :on}}))
+(def a1 (m/ap {0 {33 :on}}))
+(def as1 (m/ap {0 {34 :on}}))
+(def b1 (m/ap {0 {35 :on}}))
+
+;; Octave 2
+(def c2 (m/ap {0 {36 :on}}))
+(def cs2 (m/ap {0 {37 :on}}))
+(def d2 (m/ap {0 {38 :on}}))
+(def ds2 (m/ap {0 {39 :on}}))
+(def e2 (m/ap {0 {40 :on}}))
+(def f2 (m/ap {0 {41 :on}}))
+(def fs2 (m/ap {0 {42 :on}}))
+(def g2 (m/ap {0 {43 :on}}))
+(def gs2 (m/ap {0 {44 :on}}))
+(def a2 (m/ap {0 {45 :on}}))
+(def as2 (m/ap {0 {46 :on}}))
+(def b2 (m/ap {0 {47 :on}}))
+
+;; Octave 3
+(def c3 (m/ap {0 {48 :on}}))
+(def cs3 (m/ap {0 {49 :on}}))
+(def d3 (m/ap {0 {50 :on}}))
+(def ds3 (m/ap {0 {51 :on}}))
+(def e3 (m/ap {0 {52 :on}}))
+(def f3 (m/ap {0 {53 :on}}))
+(def fs3 (m/ap {0 {54 :on}}))
+(def g3 (m/ap {0 {55 :on}}))
+(def gs3 (m/ap {0 {56 :on}}))
+(def a3 (m/ap {0 {57 :on}}))
+(def as3 (m/ap {0 {58 :on}}))
+(def b3 (m/ap {0 {59 :on}}))
+
+;; Octave 4 (Middle C octave)
+(def c4 (m/ap {0 {60 :on}}))
+(def cs4 (m/ap {0 {61 :on}}))
+(def d4 (m/ap {0 {62 :on}}))
+(def ds4 (m/ap {0 {63 :on}}))
+(def e4 (m/ap {0 {64 :on}}))
+(def f4 (m/ap {0 {65 :on}}))
+(def fs4 (m/ap {0 {66 :on}}))
+(def g4 (m/ap {0 {67 :on}}))
+(def gs4 (m/ap {0 {68 :on}}))
+(def a4 (m/ap {0 {69 :on}}))
+(def as4 (m/ap {0 {70 :on}}))
+(def b4 (m/ap {0 {71 :on}}))
+
+;; Octave 5
+(def c5 (m/ap {0 {72 :on}}))
+(def cs5 (m/ap {0 {73 :on}}))
+(def d5 (m/ap {0 {74 :on}}))
+(def ds5 (m/ap {0 {75 :on}}))
+(def e5 (m/ap {0 {76 :on}}))
+(def f5 (m/ap {0 {77 :on}}))
+(def fs5 (m/ap {0 {78 :on}}))
+(def g5 (m/ap {0 {79 :on}}))
+(def gs5 (m/ap {0 {80 :on}}))
+(def a5 (m/ap {0 {81 :on}}))
+(def as5 (m/ap {0 {82 :on}}))
+(def b5 (m/ap {0 {83 :on}}))
+
+;; Octave 6
+(def c6 (m/ap {0 {84 :on}}))
+(def cs6 (m/ap {0 {85 :on}}))
+(def d6 (m/ap {0 {86 :on}}))
+(def ds6 (m/ap {0 {87 :on}}))
+(def e6 (m/ap {0 {88 :on}}))
+(def f6 (m/ap {0 {89 :on}}))
+(def fs6 (m/ap {0 {90 :on}}))
+(def g6 (m/ap {0 {91 :on}}))
+(def gs6 (m/ap {0 {92 :on}}))
+(def a6 (m/ap {0 {93 :on}}))
+(def as6 (m/ap {0 {94 :on}}))
+(def b6 (m/ap {0 {95 :on}}))
+
+;; Octave 7
+(def c7 (m/ap {0 {96 :on}}))
+(def cs7 (m/ap {0 {97 :on}}))
+(def d7 (m/ap {0 {98 :on}}))
+(def ds7 (m/ap {0 {99 :on}}))
+(def e7 (m/ap {0 {100 :on}}))
+(def f7 (m/ap {0 {101 :on}}))
+(def fs7 (m/ap {0 {102 :on}}))
+(def g7 (m/ap {0 {103 :on}}))
+(def gs7 (m/ap {0 {104 :on}}))
+(def a7 (m/ap {0 {105 :on}}))
+(def as7 (m/ap {0 {106 :on}}))
+(def b7 (m/ap {0 {107 :on}}))
+
+;; Octave 8
+(def c8 (m/ap {0 {108 :on}}))
+(def cs8 (m/ap {0 {109 :on}}))
+(def d8 (m/ap {0 {110 :on}}))
+(def ds8 (m/ap {0 {111 :on}}))
+(def e8 (m/ap {0 {112 :on}}))
+(def f8 (m/ap {0 {113 :on}}))
+(def fs8 (m/ap {0 {114 :on}}))
+(def g8 (m/ap {0 {115 :on}}))
+(def gs8 (m/ap {0 {116 :on}}))
+(def a8 (m/ap {0 {117 :on}}))
+(def as8 (m/ap {0 {118 :on}}))
+(def b8 (m/ap {0 {119 :on}}))
+
+;; Octave 9
+(def c9 (m/ap {0 {120 :on}}))
+(def cs9 (m/ap {0 {121 :on}}))
+(def d9 (m/ap {0 {122 :on}}))
+(def ds9 (m/ap {0 {123 :on}}))
+(def e9 (m/ap {0 {124 :on}}))
+(def f9 (m/ap {0 {125 :on}}))
+(def fs9 (m/ap {0 {126 :on}}))
+(def g9 (m/ap {0 {127 :on}}))