ChromaticTuning.java (4115B)
1 package com.github.cythara.tuning; 2 3 import com.github.cythara.Note; 4 import com.github.cythara.NoteName; 5 import com.github.cythara.Tuning; 6 7 import static com.github.cythara.NoteName.*; 8 9 public class ChromaticTuning implements Tuning { 10 11 @Override 12 public Note[] getNotes() { 13 return Pitch.values(); 14 } 15 16 @Override 17 public Note findNote(String name) { 18 return Pitch.valueOf(name); 19 } 20 21 private enum Pitch implements Note { 22 23 C_MINUS_1(C, -1), 24 C_MINUS_1_SHARP(C, -1, "#"), 25 D_MINUS_1(D, -1), 26 D_MINUS_1_SHARP(D, -1, "#"), 27 E_MINUS_1(E, -1), 28 F_MINUS_1(F, -1), 29 F_MINUS_1_SHARP(F, -1, "#"), 30 G_MINUS_1(G, -1), 31 G_MINUS_1_SHARP(G, -1, "#"), 32 A_MINUS_1(A, -1), 33 A_MINUS_1_SHARP(A, -1, "#"), 34 B_MINUS_1(B, -1), 35 36 C0(C, 0), 37 C0_SHARP(C, 0, "#"), 38 D0(D, 0), 39 D0_SHARP(D, 0, "#"), 40 E0(E, 0), 41 F0(F, 0), 42 F0_SHARP(F, 0, "#"), 43 G0(G, 0), 44 G0_SHARP(G, 0, "#"), 45 A0(A, 0), 46 A0_SHARP(A, 0, "#"), 47 B0(B, 0), 48 49 C1(C, 1), 50 C1_SHARP(C, 1, "#"), 51 D1(D, 1), 52 D1_SHARP(D, 1, "#"), 53 E1(E, 1), 54 F1(F, 1), 55 F1_SHARP(F, 1, "#"), 56 G1(G, 1), 57 G1_SHARP(G, 1, "#"), 58 A1(A, 1), 59 A1_SHARP(A, 1, "#"), 60 B1(B, 1), 61 62 C2(C, 2), 63 C2_SHARP(C, 2, "#"), 64 D2(D, 2), 65 D2_SHARP(D, 2, "#"), 66 E2(E, 2), 67 F2(F, 2), 68 F2_SHARP(F, 2, "#"), 69 G2(G, 2), 70 G2_SHARP(G, 2, "#"), 71 A2(A, 2), 72 A2_SHARP(A, 2, "#"), 73 B2(B, 2), 74 75 C3(C, 3), 76 C3_SHARP(C, 3, "#"), 77 D3(D, 3), 78 D3_SHARP(D, 3, "#"), 79 E3(E, 3), 80 F3(F, 3), 81 F3_SHARP(F, 3, "#"), 82 G3(G, 3), 83 G3_SHARP(G, 3, "#"), 84 A3(A, 3), 85 A3_SHARP(A, 3, "#"), 86 B3(B, 3), 87 88 C4(C, 4), 89 C4_SHARP(C, 4, "#"), 90 D4(D, 4), 91 D4_SHARP(D, 4, "#"), 92 E4(E, 4), 93 F4(F, 4), 94 F4_SHARP(F, 4, "#"), 95 G4(G, 4), 96 G4_SHARP(G, 4, "#"), 97 A4(A, 4), 98 A4_SHARP(A, 4, "#"), 99 B4(B, 4), 100 101 C5(C, 5), 102 C5_SHARP(C, 5, "#"), 103 D5(D, 5), 104 D5_SHARP(D, 5, "#"), 105 E5(E, 5), 106 F5(F, 5), 107 F5_SHARP(F, 5, "#"), 108 G5(G, 5), 109 G5_SHARP(G, 5, "#"), 110 A5(A, 5), 111 A5_SHARP(A, 5, "#"), 112 B5(B, 5), 113 114 C6(C, 6), 115 C6_SHARP(C, 6, "#"), 116 D6(D, 6), 117 D6_SHARP(D, 6, "#"), 118 E6(E, 6), 119 F6(F, 6), 120 F6_SHARP(F, 6, "#"), 121 G6(G, 6), 122 G6_SHARP(G, 6, "#"), 123 A6(A, 6), 124 A6_SHARP(A, 6, "#"), 125 B6(B, 6), 126 127 C7(C, 7), 128 C7_SHARP(C, 7, "#"), 129 D7(D, 7), 130 D7_SHARP(D, 7, "#"), 131 E7(E, 7), 132 F7(F, 7), 133 F7_SHARP(F, 7, "#"), 134 G7(G, 7), 135 G7_SHARP(G, 7, "#"), 136 A7(A, 7), 137 A7_SHARP(A, 7, "#"), 138 B7(B, 7), 139 140 C8(C, 8), 141 C8_SHARP(C, 8, "#"), 142 D8(D, 8), 143 D8_SHARP(D, 8, "#"), 144 E8(E, 8), 145 F8(F, 8), 146 F8_SHARP(F, 8, "#"), 147 G8(G, 8), 148 G8_SHARP(G, 8, "#"), 149 A8(A, 8), 150 A8_SHARP(A, 8, "#"), 151 B8(B, 8), 152 153 C9(C, 9), 154 C9_SHARP(C, 9, "#"), 155 D9(D, 9), 156 D9_SHARP(D, 9, "#"), 157 E9(E, 9), 158 F9(F, 9), 159 F9_SHARP(F, 9, "#"), 160 G9(G, 9); 161 162 private final String sign; 163 private final int octave; 164 private NoteName name; 165 166 Pitch(NoteName name, int octave, String sign) { 167 this.name = name; 168 this.octave = octave; 169 this.sign = sign; 170 } 171 172 Pitch(NoteName name, int octave) { 173 this.name = name; 174 this.octave = octave; 175 this.sign = ""; 176 } 177 178 public NoteName getName() { 179 return name; 180 } 181 182 @Override 183 public int getOctave() { 184 return octave; 185 } 186 187 @Override 188 public String getSign() { 189 return sign; 190 } 191 } 192 }