improve music
This commit is contained in:
parent
5b81a6daf7
commit
6242df8ffb
|
@ -5,19 +5,17 @@
|
|||
#include <pentabug/helper.h>
|
||||
#include <pentabug/app.h>
|
||||
|
||||
#define NOTE_BREAK MLDY_LENGTH, 16, NOTE_PAUSE
|
||||
|
||||
static uint16_t notes[] = {
|
||||
NOTE_C, NOTE_D, NOTE_E, NOTE_F, MLDY_LENGTH, 2, NOTE_G, MLDY_LENGTH, 2, NOTE_G, NOTE_BREAK,
|
||||
NOTE_A, NOTE_A, NOTE_A, NOTE_A, MLDY_LENGTH, 2, NOTE_G, NOTE_BREAK,
|
||||
NOTE_A, NOTE_A, NOTE_A, NOTE_A, MLDY_LENGTH, 2, NOTE_G, NOTE_BREAK,
|
||||
NOTE_F, NOTE_F, NOTE_F, NOTE_F, MLDY_LENGTH, 2, NOTE_E, MLDY_LENGTH, 2, NOTE_E, NOTE_BREAK,
|
||||
NOTE_D, NOTE_D, NOTE_D, NOTE_D, MLDY_LENGTH, 1, NOTE_C, NOTE_BREAK,
|
||||
NOTE_PAUSE, NOTE_PAUSE, NOTE_PAUSE,
|
||||
NOTE_C, NOTE_D, NOTE_E, NOTE_F, MLDY_LENGTH, 2, NOTE_G, MLDY_LENGTH, 2, NOTE_G,
|
||||
NOTE_A, NOTE_A, NOTE_A, NOTE_A, MLDY_LENGTH, 3, NOTE_G, NOTE_PAUSE,
|
||||
NOTE_A, NOTE_A, NOTE_A, NOTE_A, MLDY_LENGTH, 3, NOTE_G, NOTE_PAUSE,
|
||||
NOTE_F, NOTE_F, NOTE_F, NOTE_F, MLDY_LENGTH, 2, NOTE_E, MLDY_LENGTH, 2, NOTE_E,
|
||||
NOTE_G, NOTE_G, NOTE_G, NOTE_G, MLDY_LENGTH, 3, NOTE_C, NOTE_PAUSE,
|
||||
};
|
||||
|
||||
static void music(void) {
|
||||
play_melody(notes, ARRAY_SIZE(notes), 4, 500);
|
||||
play_melody(notes, ARRAY_SIZE(notes), 4, 300);
|
||||
}
|
||||
|
||||
REG(music);
|
||||
|
|
|
@ -30,8 +30,8 @@ void stop_note(void) {
|
|||
}
|
||||
|
||||
void play_melody(uint16_t notes[], size_t len, uint8_t octave, int speed) {
|
||||
int pause = speed / 20;
|
||||
uint8_t length = 4;
|
||||
uint8_t length = 1;
|
||||
uint8_t pause = speed / 20;
|
||||
|
||||
size_t i;
|
||||
|
||||
|
@ -39,7 +39,7 @@ void play_melody(uint16_t notes[], size_t len, uint8_t octave, int speed) {
|
|||
if(notes[i] == MLDY_PAUSE) {
|
||||
// user defined pause
|
||||
++i;
|
||||
wait_ms(notes[i]);
|
||||
wait_ms(speed * notes[i]);
|
||||
} else if(notes[i] == MLDY_LENGTH) {
|
||||
// sets length for next tone
|
||||
++i;
|
||||
|
@ -48,15 +48,15 @@ void play_melody(uint16_t notes[], size_t len, uint8_t octave, int speed) {
|
|||
// play note
|
||||
set_note(notes[i], octave);
|
||||
test_stop_app();
|
||||
wait_ms(speed * 4 / length);
|
||||
wait_ms(speed * length - pause);
|
||||
|
||||
// pause after note
|
||||
// pause
|
||||
stop_note();
|
||||
test_stop_app();
|
||||
wait_ms(pause);
|
||||
|
||||
// reset length for next note
|
||||
length = 4;
|
||||
length = 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue
Block a user