tetris/sound-driver/melody.c

93 lines
4.5 KiB
C
Raw Normal View History

2024-03-26 21:05:48 +01:00
#include <stdbool.h>
2024-03-26 16:47:42 +01:00
#include "psg.h"
#include "sequencer.h"
2024-03-26 16:56:46 +01:00
const t_tone notes[] = {
2024-03-26 21:05:48 +01:00
{ .octave = e_O_3, .note = e_G, .length = e_L_1_4, .legato = false },
{ .octave = e_O_3, .note = e_D, .length = e_L_1_8, .legato = false },
2024-03-26 22:12:46 +01:00
{ .octave = e_O_3, .note = e_Es, .length = e_L_1_8, .legato = false },
2024-03-26 16:56:46 +01:00
2024-03-26 21:05:48 +01:00
{ .octave = e_O_3, .note = e_F, .length = e_L_1_4, .legato = false },
2024-03-26 22:12:46 +01:00
{ .octave = e_O_3, .note = e_Es, .length = e_L_1_8, .legato = false },
2024-03-26 21:05:48 +01:00
{ .octave = e_O_3, .note = e_D, .length = e_L_1_8, .legato = false },
2024-03-26 16:56:46 +01:00
2024-03-26 21:05:48 +01:00
{ .octave = e_O_3, .note = e_C, .length = e_L_1_4, .legato = false },
{ .octave = e_O_3, .note = e_C, .length = e_L_1_8, .legato = false },
2024-03-26 22:12:46 +01:00
{ .octave = e_O_3, .note = e_Es, .length = e_L_1_8, .legato = false },
2024-03-26 16:56:46 +01:00
2024-03-26 21:05:48 +01:00
{ .octave = e_O_3, .note = e_G, .length = e_L_1_4, .legato = false },
{ .octave = e_O_3, .note = e_F, .length = e_L_1_8, .legato = false },
2024-03-26 22:12:46 +01:00
{ .octave = e_O_3, .note = e_Es, .length = e_L_1_8, .legato = false },
2024-03-26 16:56:46 +01:00
2024-03-26 21:05:48 +01:00
{ .octave = e_O_3, .note = e_D, .length = e_L_1_4, .legato = true },
{ .octave = e_O_3, .note = e_D, .length = e_L_1_8, .legato = false },
2024-03-26 22:12:46 +01:00
{ .octave = e_O_3, .note = e_Es, .length = e_L_1_8, .legato = false },
2024-03-26 16:56:46 +01:00
2024-03-26 21:05:48 +01:00
{ .octave = e_O_3, .note = e_F, .length = e_L_1_4, .legato = false },
{ .octave = e_O_3, .note = e_G, .length = e_L_1_4, .legato = false },
2024-03-26 16:47:42 +01:00
2024-03-26 22:12:46 +01:00
// Staccato
{ .octave = e_O_3, .note = e_Es, .length = e_L_1_8, .legato = true },
{ .octave = e_O_3, .note = e_Es, .length = e_L_1_16, .legato = false },
2024-03-26 21:05:48 +01:00
{ .octave = e_O_Null, .note = e_Pause, .length = e_L_1_16, .legato = false },
{ .octave = e_O_3, .note = e_C, .length = e_L_1_8, .legato = true },
{ .octave = e_O_3, .note = e_C, .length = e_L_1_16, .legato = false },
{ .octave = e_O_Null, .note = e_Pause, .length = e_L_1_16, .legato = false },
2024-03-26 16:47:42 +01:00
2024-03-26 21:05:48 +01:00
{ .octave = e_O_3, .note = e_C, .length = e_L_1_4, .legato = false },
{ .octave = e_O_Null, .note = e_Pause, .length = e_L_1_4, .legato = false },
2024-03-26 16:47:42 +01:00
2024-03-26 21:05:48 +01:00
{ .octave = e_O_Null, .note = e_Pause, .length = e_L_1_8, .legato = false },
{ .octave = e_O_3, .note = e_F, .length = e_L_1_8, .legato = true },
{ .octave = e_O_3, .note = e_F, .length = e_L_1_8, .legato = false },
2024-03-26 22:12:46 +01:00
{ .octave = e_O_3, .note = e_As, .length = e_L_1_8, .legato = false },
2024-03-26 16:47:42 +01:00
2024-03-26 21:05:48 +01:00
{ .octave = e_O_4, .note = e_C, .length = e_L_1_4, .legato = false },
2024-03-26 22:12:46 +01:00
{ .octave = e_O_3, .note = e_B, .length = e_L_1_8, .legato = false },
{ .octave = e_O_3, .note = e_As, .length = e_L_1_8, .legato = false },
2024-03-26 16:47:42 +01:00
2024-03-26 21:05:48 +01:00
{ .octave = e_O_3, .note = e_G, .length = e_L_1_4, .legato = true },
{ .octave = e_O_3, .note = e_G, .length = e_L_1_8, .legato = false },
2024-03-26 22:12:46 +01:00
{ .octave = e_O_3, .note = e_Es, .length = e_L_1_8, .legato = false },
2024-03-26 16:47:42 +01:00
2024-03-26 21:05:48 +01:00
{ .octave = e_O_3, .note = e_G, .length = e_L_1_4, .legato = false },
{ .octave = e_O_3, .note = e_F, .length = e_L_1_8, .legato = false },
2024-03-26 22:12:46 +01:00
{ .octave = e_O_3, .note = e_Es, .length = e_L_1_8, .legato = false },
2024-03-26 16:56:46 +01:00
2024-03-26 21:05:48 +01:00
{ .octave = e_O_3, .note = e_D, .length = e_L_1_4, .legato = false },
{ .octave = e_O_3, .note = e_D, .length = e_L_1_8, .legato = false },
2024-03-26 22:12:46 +01:00
{ .octave = e_O_3, .note = e_Es, .length = e_L_1_8, .legato = false },
2024-03-26 16:56:46 +01:00
2024-03-26 21:05:48 +01:00
{ .octave = e_O_3, .note = e_F, .length = e_L_1_4, .legato = false },
{ .octave = e_O_3, .note = e_G, .length = e_L_1_4, .legato = false },
2024-03-26 16:56:46 +01:00
2024-03-26 22:12:46 +01:00
// Staccato
{ .octave = e_O_3, .note = e_Es, .length = e_L_1_8, .legato = true },
{ .octave = e_O_3, .note = e_Es, .length = e_L_1_16, .legato = false },
2024-03-26 21:05:48 +01:00
{ .octave = e_O_Null, .note = e_Pause, .length = e_L_1_16, .legato = false },
{ .octave = e_O_3, .note = e_C, .length = e_L_1_8, .legato = true },
{ .octave = e_O_3, .note = e_C, .length = e_L_1_16, .legato = false },
{ .octave = e_O_Null, .note = e_Pause, .length = e_L_1_16, .legato = false },
2024-03-26 16:56:46 +01:00
2024-03-26 21:05:48 +01:00
{ .octave = e_O_3, .note = e_C, .length = e_L_1_4, .legato = false },
{ .octave = e_O_Null, .note = e_Pause, .length = e_L_1_4, .legato = false },
{ .octave = e_O_Null, .note = e_Null, .length = e_L_EndMark, .legato = false },
2024-03-26 16:47:42 +01:00
};
2024-03-26 16:56:46 +01:00
t_melody melody= {
2024-03-26 22:12:46 +01:00
.channel = 0,
2024-03-26 16:56:46 +01:00
.tones = notes
2024-03-26 16:47:42 +01:00
};
void melodyInit() {
2024-03-26 22:12:46 +01:00
psgAmplitude(melody.channel, 3);
2024-03-26 16:56:46 +01:00
sequencerPlayMelody(&melody);
2024-03-26 16:47:42 +01:00
}