tetris/sound-driver/melody.c

99 lines
3.4 KiB
C
Raw Normal View History

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[] = {
{ .octave = e_O_2, .note = e_G, .length = e_L_1_2 },
{ .octave = e_O_2, .note = e_D, .length = e_L_1_4 },
{ .octave = e_O_2, .note = e_Dis, .length = e_L_1_4 },
{ .octave = e_O_2, .note = e_F, .length = e_L_1_2 },
{ .octave = e_O_2, .note = e_Dis, .length = e_L_1_4 },
{ .octave = e_O_2, .note = e_D, .length = e_L_1_4},
{ .octave = e_O_2, .note = e_C, .length = e_L_1_2},
{ .octave = e_O_2, .note = e_C, .length = e_L_1_4},
{ .octave = e_O_2, .note = e_Dis, .length = e_L_1_4},
{ .octave = e_O_2, .note = e_G, .length = e_L_1_2},
{ .octave = e_O_2, .note = e_F, .length = e_L_1_4},
{ .octave = e_O_2, .note = e_Dis, .length = e_L_1_4},
{ .octave = e_O_2, .note = e_D, .length = e_L_1_2},
{ .octave = e_O_2, .note = e_D, .length = e_L_1_4},
{ .octave = e_O_2, .note = e_Dis, .length = e_L_1_4},
{ .octave = e_O_2, .note = e_F, .length = e_L_1_2},
{ .octave = e_O_2, .note = e_G, .length = e_L_1_2},
2024-03-26 16:47:42 +01:00
2024-03-26 16:56:46 +01:00
{ .octave = e_O_2, .note = e_Dis, .length = e_L_1_2},
{ .octave = e_O_2, .note = e_C, .length = e_L_1_2},
2024-03-26 16:47:42 +01:00
2024-03-26 16:56:46 +01:00
{ .octave = e_O_2, .note = e_C, .length = e_L_1_2},
2024-03-26 16:47:42 +01:00
2024-03-26 16:56:46 +01:00
{ .octave = e_O_2, .note = e_F, .length = e_L_1_4},
{ .octave = e_O_2, .note = e_F, .length = e_L_1_4},
{ .octave = e_O_2, .note = e_Gis, .length = e_L_1_4},
2024-03-26 16:47:42 +01:00
2024-03-26 16:56:46 +01:00
{ .octave = e_O_3, .note = e_C, .length = e_L_1_2},
{ .octave = e_O_2, .note = e_Ais, .length = e_L_1_4},
{ .octave = e_O_2, .note = e_Gis, .length = e_L_1_4},
2024-03-26 16:47:42 +01:00
2024-03-26 16:56:46 +01:00
{ .octave = e_O_2, .note = e_G, .length = e_L_1_2},
{ .octave = e_O_2, .note = e_G, .length = e_L_1_4},
{ .octave = e_O_2, .note = e_Dis, .length = e_L_1_4},
2024-03-26 16:47:42 +01:00
2024-03-26 16:56:46 +01:00
{ .octave = e_O_2, .note = e_G, .length = e_L_1_2},
{ .octave = e_O_2, .note = e_F, .length = e_L_1_4},
{ .octave = e_O_2, .note = e_Dis, .length = e_L_1_4},
2024-03-26 16:47:42 +01:00
2024-03-26 16:56:46 +01:00
{ .octave = e_O_2, .note = e_D, .length = e_L_1_2},
{ .octave = e_O_2, .note = e_D, .length = e_L_1_4},
{ .octave = e_O_2, .note = e_Dis, .length = e_L_1_4},
{ .octave = e_O_2, .note = e_F, .length = e_L_1_2},
{ .octave = e_O_2, .note = e_G, .length = e_L_1_2},
{ .octave = e_O_2, .note = e_Dis, .length = e_L_1_2},
{ .octave = e_O_2, .note = e_C, .length = e_L_1_2},
{ .octave = e_O_2, .note = e_C, .length = e_L_1_2},
{ .octave = e_O_2, .note = e_C, .length = e_L_EndMark },
2024-03-26 16:47:42 +01:00
};
2024-03-26 16:56:46 +01:00
/*
2024-03-26 16:47:42 +01:00
const t_tone ladder[16] = {
{ .octave = e_O_2, .note = e_C, .length = e_L_1_4 },
{ .octave = e_O_2, .note = e_D, .length = e_L_1_4 },
{ .octave = e_O_2, .note = e_E, .length = e_L_1_4 },
{ .octave = e_O_2, .note = e_F, .length = e_L_1_4 },
{ .octave = e_O_2, .note = e_G, .length = e_L_1_4 },
{ .octave = e_O_2, .note = e_A, .length = e_L_1_4 },
{ .octave = e_O_2, .note = e_H, .length = e_L_1_4 },
{ .octave = e_O_3, .note = e_C, .length = e_L_1_4 },
{ .octave = e_O_2, .note = e_H, .length = e_L_1_4 },
{ .octave = e_O_2, .note = e_A, .length = e_L_1_4 },
{ .octave = e_O_2, .note = e_G, .length = e_L_1_4 },
{ .octave = e_O_2, .note = e_F, .length = e_L_1_4 },
{ .octave = e_O_2, .note = e_E, .length = e_L_1_4 },
{ .octave = e_O_2, .note = e_D, .length = e_L_1_4 },
{ .octave = e_O_2, .note = e_H, .length = e_L_EndMark },
};
2024-03-26 16:56:46 +01:00
*/
2024-03-26 16:47:42 +01:00
2024-03-26 16:56:46 +01:00
t_melody melody= {
2024-03-26 16:47:42 +01:00
.idx = 0,
.lengthCnt = 0,
2024-03-26 16:56:46 +01:00
.tones = notes
2024-03-26 16:47:42 +01:00
};
void melodyInit() {
psgWrite(07, 0b11111110);
psgWrite(010, 03);
2024-03-26 16:56:46 +01:00
sequencerPlayMelody(&melody);
2024-03-26 16:47:42 +01:00
}