Skip to content

Commit 3668c42

Browse files
committed
Send note duration in ms to tone function
1 parent c77a146 commit 3668c42

File tree

1 file changed

+50
-49
lines changed

1 file changed

+50
-49
lines changed

tone/christmas_melody/christmas_melody.c

Lines changed: 50 additions & 49 deletions
Original file line numberDiff line numberDiff line change
@@ -41,106 +41,107 @@
4141
#define NOTE_E5 659
4242
#define NOTE_F5 698
4343

44-
#define SPEED 400U // Speed of each note in ms
45-
#define SILENCE 10U // 10 ms of silence after each note
44+
#define NOTE_DURATION 400U // Speed of each note in ms
4645

47-
uint slice_num; // Variable to save the PWM slice number
46+
uint32_t get_note_duration_in_ms(float note_duration) {
47+
return (uint32_t)(note_duration * NOTE_DURATION);
48+
}
4849

4950
int main() {
5051
// Configure tone generation on BUZZER_PIN
5152
tone_init(BUZZER_PIN);
5253
while (1) {
5354
// 1
54-
tone(BUZZER_PIN, NOTE_G4, 1.5f);
55-
tone(BUZZER_PIN, NOTE_A4, .5f);
56-
tone(BUZZER_PIN, NOTE_G4, 1.f);
55+
tone(BUZZER_PIN, NOTE_G4, get_note_duration_in_ms(1.5f));
56+
tone(BUZZER_PIN, NOTE_A4, get_note_duration_in_ms(.5f));
57+
tone(BUZZER_PIN, NOTE_G4, get_note_duration_in_ms(1.f));
5758

5859
// 2
59-
tone(BUZZER_PIN, NOTE_E4, 3.f);
60+
tone(BUZZER_PIN, NOTE_E4, get_note_duration_in_ms(3.f));
6061

6162
// 3
62-
tone(BUZZER_PIN, NOTE_G4, 1.5f);
63-
tone(BUZZER_PIN, NOTE_A4, .5f);
64-
tone(BUZZER_PIN, NOTE_G4, 1.f);
63+
tone(BUZZER_PIN, NOTE_G4, get_note_duration_in_ms(1.5f));
64+
tone(BUZZER_PIN, NOTE_A4, get_note_duration_in_ms(.5f));
65+
tone(BUZZER_PIN, NOTE_G4, get_note_duration_in_ms(1.f));
6566

6667
// 4
67-
tone(BUZZER_PIN, NOTE_E4, 3.f);
68+
tone(BUZZER_PIN, NOTE_E4, get_note_duration_in_ms(3.f));
6869

6970
// 5
70-
tone(BUZZER_PIN, NOTE_D5, 2.f);
71-
tone(BUZZER_PIN, NOTE_D5, 1.f);
71+
tone(BUZZER_PIN, NOTE_D5, get_note_duration_in_ms(2.f));
72+
tone(BUZZER_PIN, NOTE_D5, get_note_duration_in_ms(1.f));
7273

7374
// 6
74-
tone(BUZZER_PIN, NOTE_B4, 3.f);
75+
tone(BUZZER_PIN, NOTE_B4, get_note_duration_in_ms(3.f));
7576

7677
// 7
77-
tone(BUZZER_PIN, NOTE_C5, 2.f);
78-
tone(BUZZER_PIN, NOTE_C5, 1.f);
78+
tone(BUZZER_PIN, NOTE_C5, get_note_duration_in_ms(2.f));
79+
tone(BUZZER_PIN, NOTE_C5, get_note_duration_in_ms(1.f));
7980

8081
// 8
81-
tone(BUZZER_PIN, NOTE_G4, 3.f);
82+
tone(BUZZER_PIN, NOTE_G4, get_note_duration_in_ms(3.f));
8283

8384
// 9
84-
tone(BUZZER_PIN, NOTE_A4, 2.f);
85-
tone(BUZZER_PIN, NOTE_A4, 1.f);
85+
tone(BUZZER_PIN, NOTE_A4, get_note_duration_in_ms(2.f));
86+
tone(BUZZER_PIN, NOTE_A4, get_note_duration_in_ms(1.f));
8687

8788
// 10
88-
tone(BUZZER_PIN, NOTE_C5, 1.5f);
89-
tone(BUZZER_PIN, NOTE_B4, .5f);
90-
tone(BUZZER_PIN, NOTE_A4, 1.f);
89+
tone(BUZZER_PIN, NOTE_C5, get_note_duration_in_ms(1.5f));
90+
tone(BUZZER_PIN, NOTE_B4, get_note_duration_in_ms(.5f));
91+
tone(BUZZER_PIN, NOTE_A4, get_note_duration_in_ms(1.f));
9192

9293
// 11
93-
tone(BUZZER_PIN, NOTE_G4, 1.5f);
94-
tone(BUZZER_PIN, NOTE_A4, .5f);
95-
tone(BUZZER_PIN, NOTE_G4, 1.f);
94+
tone(BUZZER_PIN, NOTE_G4, get_note_duration_in_ms(1.5f));
95+
tone(BUZZER_PIN, NOTE_A4, get_note_duration_in_ms(.5f));
96+
tone(BUZZER_PIN, NOTE_G4, get_note_duration_in_ms(1.f));
9697

9798
// 12
98-
tone(BUZZER_PIN, NOTE_E4, 3.f);
99+
tone(BUZZER_PIN, NOTE_E4, get_note_duration_in_ms(3.f));
99100

100101
// 13
101-
tone(BUZZER_PIN, NOTE_A4, 2.f);
102-
tone(BUZZER_PIN, NOTE_A4, 1.f);
102+
tone(BUZZER_PIN, NOTE_A4, get_note_duration_in_ms(2.f));
103+
tone(BUZZER_PIN, NOTE_A4, get_note_duration_in_ms(1.f));
103104

104105
// 14
105-
tone(BUZZER_PIN, NOTE_C5, 1.5f);
106-
tone(BUZZER_PIN, NOTE_B4, .5f);
107-
tone(BUZZER_PIN, NOTE_A4, 1.f);
106+
tone(BUZZER_PIN, NOTE_C5, get_note_duration_in_ms(1.5f));
107+
tone(BUZZER_PIN, NOTE_B4, get_note_duration_in_ms(.5f));
108+
tone(BUZZER_PIN, NOTE_A4, get_note_duration_in_ms(1.f));
108109

109110
// 15
110-
tone(BUZZER_PIN, NOTE_G4, 1.5f);
111-
tone(BUZZER_PIN, NOTE_A4, .5f);
112-
tone(BUZZER_PIN, NOTE_G4, 1.f);
111+
tone(BUZZER_PIN, NOTE_G4, get_note_duration_in_ms(1.5f));
112+
tone(BUZZER_PIN, NOTE_A4, get_note_duration_in_ms(.5f));
113+
tone(BUZZER_PIN, NOTE_G4, get_note_duration_in_ms(1.f));
113114

114115
// 16
115-
tone(BUZZER_PIN, NOTE_E4, 3.f);
116+
tone(BUZZER_PIN, NOTE_E4, get_note_duration_in_ms(3.f));
116117

117118
// 17
118-
tone(BUZZER_PIN, NOTE_D5, 2.f);
119-
tone(BUZZER_PIN, NOTE_D5, 1.f);
119+
tone(BUZZER_PIN, NOTE_D5, get_note_duration_in_ms(2.f));
120+
tone(BUZZER_PIN, NOTE_D5, get_note_duration_in_ms(1.f));
120121

121122
// 18
122-
tone(BUZZER_PIN, NOTE_F5, 1.5f);
123-
tone(BUZZER_PIN, NOTE_D5, .5f);
124-
tone(BUZZER_PIN, NOTE_B4, 1.f);
123+
tone(BUZZER_PIN, NOTE_F5, get_note_duration_in_ms(1.5f));
124+
tone(BUZZER_PIN, NOTE_D5, get_note_duration_in_ms(.5f));
125+
tone(BUZZER_PIN, NOTE_B4, get_note_duration_in_ms(1.f));
125126

126127
// 19
127-
tone(BUZZER_PIN, NOTE_C5, 3.f);
128+
tone(BUZZER_PIN, NOTE_C5, get_note_duration_in_ms(3.f));
128129

129130
// 20
130-
tone(BUZZER_PIN, NOTE_E5, 3.f);
131+
tone(BUZZER_PIN, NOTE_E5, get_note_duration_in_ms(3.f));
131132

132133
// 21
133-
tone(BUZZER_PIN, NOTE_C5, 1.5f);
134-
tone(BUZZER_PIN, NOTE_G4, .5f);
135-
tone(BUZZER_PIN, NOTE_E4, 1.f);
134+
tone(BUZZER_PIN, NOTE_C5, get_note_duration_in_ms(1.5f));
135+
tone(BUZZER_PIN, NOTE_G4, get_note_duration_in_ms(.5f));
136+
tone(BUZZER_PIN, NOTE_E4, get_note_duration_in_ms(1.f));
136137

137138
// 22
138-
tone(BUZZER_PIN, NOTE_G4, 1.5f);
139-
tone(BUZZER_PIN, NOTE_F4, .5f);
140-
tone(BUZZER_PIN, NOTE_D4, 1.f);
139+
tone(BUZZER_PIN, NOTE_G4, get_note_duration_in_ms(1.5f));
140+
tone(BUZZER_PIN, NOTE_F4, get_note_duration_in_ms(.5f));
141+
tone(BUZZER_PIN, NOTE_D4, get_note_duration_in_ms(1.f));
141142

142143
// 23 & 24
143-
tone(BUZZER_PIN, NOTE_C4, 5.f);
144+
tone(BUZZER_PIN, NOTE_C4, get_note_duration_in_ms(5.f));
144145
// tone(BUZZER_PIN, <Silencio>, 2.f);
145146
// Fin
146147
}

0 commit comments

Comments
 (0)