Skip to content

Commit 45850ed

Browse files
committed
add rtttl parser files
1 parent 1e0c574 commit 45850ed

File tree

3 files changed

+743
-0
lines changed

3 files changed

+743
-0
lines changed

rtttl_parser.h

+111
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,111 @@
1+
/*
2+
* Code for converting RTTTL format to frequency/duration
3+
* Developed as a helper library for Lab 4 (Clocks, Timers, and Watchdogs)
4+
* in CSCI 1600 (Real-time and embedded software) at Brown University
5+
* (https://cs.brown.edu/courses/info/csci1600/)
6+
* Author: Milda Zizyte
7+
*
8+
* Pitch definitions borrowed from Brett Hagman (github.com/bhagman/Tone)
9+
*/
10+
11+
#define NOTE_B0 31
12+
#define NOTE_C1 33
13+
#define NOTE_CS1 35
14+
#define NOTE_D1 37
15+
#define NOTE_DS1 39
16+
#define NOTE_E1 41
17+
#define NOTE_F1 44
18+
#define NOTE_FS1 46
19+
#define NOTE_G1 49
20+
#define NOTE_GS1 52
21+
#define NOTE_A1 55
22+
#define NOTE_AS1 58
23+
#define NOTE_B1 62
24+
#define NOTE_C2 65
25+
#define NOTE_CS2 69
26+
#define NOTE_D2 73
27+
#define NOTE_DS2 78
28+
#define NOTE_E2 82
29+
#define NOTE_F2 87
30+
#define NOTE_FS2 93
31+
#define NOTE_G2 98
32+
#define NOTE_GS2 104
33+
#define NOTE_A2 110
34+
#define NOTE_AS2 117
35+
#define NOTE_B2 123
36+
#define NOTE_C3 131
37+
#define NOTE_CS3 139
38+
#define NOTE_D3 147
39+
#define NOTE_DS3 156
40+
#define NOTE_E3 165
41+
#define NOTE_F3 175
42+
#define NOTE_FS3 185
43+
#define NOTE_G3 196
44+
#define NOTE_GS3 208
45+
#define NOTE_A3 220
46+
#define NOTE_AS3 233
47+
#define NOTE_B3 247
48+
#define NOTE_C4 262
49+
#define NOTE_CS4 277
50+
#define NOTE_D4 294
51+
#define NOTE_DS4 311
52+
#define NOTE_E4 330
53+
#define NOTE_F4 349
54+
#define NOTE_FS4 370
55+
#define NOTE_G4 392
56+
#define NOTE_GS4 415
57+
#define NOTE_A4 440
58+
#define NOTE_AS4 466
59+
#define NOTE_B4 494
60+
#define NOTE_C5 523
61+
#define NOTE_CS5 554
62+
#define NOTE_D5 587
63+
#define NOTE_DS5 622
64+
#define NOTE_E5 659
65+
#define NOTE_F5 698
66+
#define NOTE_FS5 740
67+
#define NOTE_G5 784
68+
#define NOTE_GS5 831
69+
#define NOTE_A5 880
70+
#define NOTE_AS5 932
71+
#define NOTE_B5 988
72+
#define NOTE_C6 1047
73+
#define NOTE_CS6 1109
74+
#define NOTE_D6 1175
75+
#define NOTE_DS6 1245
76+
#define NOTE_E6 1319
77+
#define NOTE_F6 1397
78+
#define NOTE_FS6 1480
79+
#define NOTE_G6 1568
80+
#define NOTE_GS6 1661
81+
#define NOTE_A6 1760
82+
#define NOTE_AS6 1865
83+
#define NOTE_B6 1976
84+
#define NOTE_C7 2093
85+
#define NOTE_CS7 2217
86+
#define NOTE_D7 2349
87+
#define NOTE_DS7 2489
88+
#define NOTE_E7 2637
89+
#define NOTE_F7 2794
90+
#define NOTE_FS7 2960
91+
#define NOTE_G7 3136
92+
#define NOTE_GS7 3322
93+
#define NOTE_A7 3520
94+
#define NOTE_AS7 3729
95+
#define NOTE_B7 3951
96+
#define NOTE_C8 4186
97+
#define NOTE_CS8 4435
98+
#define NOTE_D8 4699
99+
#define NOTE_DS8 4978
100+
101+
const int all_notes[89] = {NOTE_B0,NOTE_C1,NOTE_CS1,NOTE_D1,NOTE_DS1,NOTE_E1,NOTE_F1,
102+
NOTE_FS1,NOTE_G1,NOTE_GS1,NOTE_A1,NOTE_AS1,NOTE_B1,NOTE_C2,NOTE_CS2,NOTE_D2,NOTE_DS2,
103+
NOTE_E2,NOTE_F2,NOTE_FS2,NOTE_G2,NOTE_GS2,NOTE_A2,NOTE_AS2,NOTE_B2,NOTE_C3,NOTE_CS3,
104+
NOTE_D3,NOTE_DS3,NOTE_E3,NOTE_F3,NOTE_FS3,NOTE_G3,NOTE_GS3,NOTE_A3,NOTE_AS3,NOTE_B3,
105+
NOTE_C4,NOTE_CS4,NOTE_D4,NOTE_DS4,NOTE_E4,NOTE_F4,NOTE_FS4,NOTE_G4,NOTE_GS4,NOTE_A4,
106+
NOTE_AS4,NOTE_B4,NOTE_C5,NOTE_CS5,NOTE_D5,NOTE_DS5,NOTE_E5,NOTE_F5,NOTE_FS5,NOTE_G5,
107+
NOTE_GS5,NOTE_A5,NOTE_AS5,NOTE_B5,NOTE_C6,NOTE_CS6,NOTE_D6,NOTE_DS6,NOTE_E6,NOTE_F6,
108+
NOTE_FS6,NOTE_G6,NOTE_GS6,NOTE_A6,NOTE_AS6,NOTE_B6,NOTE_C7,NOTE_CS7,NOTE_D7,NOTE_DS7,
109+
NOTE_E7,NOTE_F7,NOTE_FS7,NOTE_G7,NOTE_GS7,NOTE_A7,NOTE_AS7,NOTE_B7,NOTE_C8,NOTE_CS8,NOTE_D8,NOTE_DS8};
110+
111+
int rtttl_to_buffers(String midi, int notes[], int durs[]);

0 commit comments

Comments
 (0)