Last active
November 22, 2017 17:30
-
-
Save moduscreate/f3c16a41b448bda1b32ec0f8979c22ce to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#ifndef SONG_H | |
#define SONG_H | |
#define Song const uint8_t PROGMEM | |
Song music[] = { | |
0x14, // Number of tracks | |
0x00, 0x00, // Address of track 0 | |
0x27, 0x00, // Address of track 1 | |
0x42, 0x00, // Address of track 2 | |
0x43, 0x00, // Address of track 3 | |
0x50, 0x00, // Address of track 4 | |
0x56, 0x00, // Address of track 5 | |
0x5d, 0x00, // Address of track 6 | |
0x6e, 0x00, // Address of track 7 | |
0x77, 0x00, // Address of track 8 | |
0x80, 0x00, // Address of track 9 | |
0x93, 0x00, // Address of track 10 | |
0x9c, 0x00, // Address of track 11 | |
0xa5, 0x00, // Address of track 12 | |
0xb2, 0x00, // Address of track 13 | |
0xbf, 0x00, // Address of track 14 | |
0xd0, 0x00, // Address of track 15 | |
0xe1, 0x00, // Address of track 16 | |
0xf0, 0x00, // Address of track 17 | |
0x12, 0x01, // Address of track 18 | |
0x1f, 0x01, // Address of track 19 | |
0x00, // Channel 0 entry track | |
0x01, // Channel 1 entry track | |
0x02, // Channel 2 entry track | |
0x03, // Channel 3 entry track | |
//"Track channel 0" | |
0x40, 64, // FX: SET VOLUME: volume = 64 | |
0x9D, 22, // FX: SET TEMPO: tempo = 22 | |
0xFD, 2, 6, // REPEAT: count = 2 + 1 / track = 6 | |
0xFC, 7, // GOTO track 7 | |
0xFD, 2, 6, // REPEAT: count = 2 + 1 / track = 6 | |
0xFC, 8, // GOTO track 8 | |
0xFC, 10, // GOTO track 10 | |
0xFC, 11, // GOTO track 11 | |
0xFC, 10, // GOTO track 10 | |
0xFC, 11, // GOTO track 11 | |
0xFC, 10, // GOTO track 10 | |
0xFC, 12, // GOTO track 12 | |
0xFC, 10, // GOTO track 10 | |
0xFC, 11, // GOTO track 11 | |
0xFC, 10, // GOTO track 10 | |
0xFC, 11, // GOTO track 11 | |
0xFC, 10, // GOTO track 10 | |
0xFC, 13, // GOTO track 13 | |
0x9F, // FX: STOP CURRENT CHANNEL | |
//"Track channel 1" | |
0x40, 50, // FX: SET VOLUME: volume = 50 | |
0xFD, 11, 14, // REPEAT: count = 11 + 1 / track = 14 | |
0xFD, 3, 15, // REPEAT: count = 3 + 1 / track = 15 | |
0xFD, 11, 14, // REPEAT: count = 11 + 1 / track = 14 | |
0xFD, 3, 16, // REPEAT: count = 3 + 1 / track = 16 | |
0xFD, 9, 14, // REPEAT: count = 9 + 1 / track = 14 | |
0xFD, 1, 15, // REPEAT: count = 1 + 1 / track = 15 | |
0xFD, 9, 14, // REPEAT: count = 9 + 1 / track = 14 | |
0xFD, 1, 16, // REPEAT: count = 1 + 1 / track = 16 | |
0x9F, // FX: STOP CURRENT CHANNEL | |
//"Track channel 2" | |
0x9F, // FX: STOP CURRENT CHANNEL | |
//"Track channel 3" | |
0x40, 64, // FX: SET VOLUME: volume = 64 | |
0xFD, 6, 9, // REPEAT: count = 6 + 1 / track = 9 | |
0xFC, 17, // GOTO track 17 | |
0xFD, 10, 18, // REPEAT: count = 10 + 1 / track = 18 | |
0xFC, 19, // GOTO track 19 | |
0x9F, // FX: STOP CURRENT CHANNEL | |
//"Track tick" | |
0x40, 32, // FX: SET VOLUME: volume = 32 | |
0x9F + 1, // DELAY: ticks = 1 | |
0x40, 0, // FX: SET VOLUME: volume = 0 | |
0xFE, // RETURN | |
//"Track snare" | |
0x40, 32, // FX: SET VOLUME: volume = 32 | |
0x41, -16, // FX: VOLUME SLIDE ON: steps = -16 | |
0x9F + 2, // DELAY: ticks = 2 | |
0x43, // FX: VOLUME SLIDE OFF | |
0xFE, // RETURN | |
//"Track ld 1" | |
0x00 + 25, // NOTE ON: note = 25 | |
0x9F + 5, // DELAY: ticks = 5 | |
0x00 + 0, // NOTE ON: note = 0 | |
0x9F + 4, // DELAY: ticks = 4 | |
0x00 + 25, // NOTE ON: note = 25 | |
0x9F + 3, // DELAY: ticks = 3 | |
0x00 + 0, // NOTE ON: note = 0 | |
0x9F + 1, // DELAY: ticks = 1 | |
0x00 + 27, // NOTE ON: note = 27 | |
0x9F + 4, // DELAY: ticks = 4 | |
0x00 + 0, // NOTE ON: note = 0 | |
0x9F + 4, // DELAY: ticks = 4 | |
0x00 + 28, // NOTE ON: note = 28 | |
0x9F + 7, // DELAY: ticks = 7 | |
0x00 + 0, // NOTE ON: note = 0 | |
0x9F + 4, // DELAY: ticks = 4 | |
0xFE, // RETURN | |
//"Track ld 2" | |
0x00 + 30, // NOTE ON: note = 30 | |
0x9F + 8, // DELAY: ticks = 8 | |
0x00 + 0, // NOTE ON: note = 0 | |
0x9F + 4, // DELAY: ticks = 4 | |
0x00 + 32, // NOTE ON: note = 32 | |
0x9F + 8, // DELAY: ticks = 8 | |
0x00 + 0, // NOTE ON: note = 0 | |
0x9F + 12, // DELAY: ticks = 12 | |
0xFE, // RETURN | |
//"Track ld 3" | |
0x00 + 35, // NOTE ON: note = 35 | |
0x9F + 8, // DELAY: ticks = 8 | |
0x00 + 0, // NOTE ON: note = 0 | |
0x9F + 5, // DELAY: ticks = 5 | |
0x00 + 32, // NOTE ON: note = 32 | |
0x9F + 11, // DELAY: ticks = 11 | |
0x00 + 0, // NOTE ON: note = 0 | |
0x9F + 8, // DELAY: ticks = 8 | |
0xFE, // RETURN | |
//"Track perc" | |
0xFC, 4, // GOTO track 4 | |
0x9F + 7, // DELAY: ticks = 7 | |
0xFC, 4, // GOTO track 4 | |
0x9F + 7, // DELAY: ticks = 7 | |
0xFC, 4, // GOTO track 4 | |
0x9F + 7, // DELAY: ticks = 7 | |
0xFC, 4, // GOTO track 4 | |
0x9F + 3, // DELAY: ticks = 3 | |
0xFC, 4, // GOTO track 4 | |
0x9F + 1, // DELAY: ticks = 1 | |
0xFC, 4, // GOTO track 4 | |
0x9F + 1, // DELAY: ticks = 1 | |
0xFE, // RETURN | |
//"Track ld 4" | |
0x00 + 25, // NOTE ON: note = 25 | |
0x9F + 6, // DELAY: ticks = 6 | |
0x00 + 0, // NOTE ON: note = 0 | |
0x9F + 2, // DELAY: ticks = 2 | |
0x00 + 35, // NOTE ON: note = 35 | |
0x9F + 7, // DELAY: ticks = 7 | |
0x00 + 0, // NOTE ON: note = 0 | |
0x9F + 1, // DELAY: ticks = 1 | |
0xFE, // RETURN | |
//"Track LD 5" | |
0x00 + 25, // NOTE ON: note = 25 | |
0x9F + 7, // DELAY: ticks = 7 | |
0x00 + 0, // NOTE ON: note = 0 | |
0x9F + 1, // DELAY: ticks = 1 | |
0x00 + 37, // NOTE ON: note = 37 | |
0x9F + 7, // DELAY: ticks = 7 | |
0x00 + 0, // NOTE ON: note = 0 | |
0x9F + 1, // DELAY: ticks = 1 | |
0xFE, // RETURN | |
//"Track ld 6" | |
0x00 + 23, // NOTE ON: note = 23 | |
0x9F + 3, // DELAY: ticks = 3 | |
0x00 + 0, // NOTE ON: note = 0 | |
0x9F + 2, // DELAY: ticks = 2 | |
0x00 + 28, // NOTE ON: note = 28 | |
0x9F + 6, // DELAY: ticks = 6 | |
0x00 + 0, // NOTE ON: note = 0 | |
0x9F + 2, // DELAY: ticks = 2 | |
0x00 + 27, // NOTE ON: note = 27 | |
0x9F + 2, // DELAY: ticks = 2 | |
0x00 + 0, // NOTE ON: note = 0 | |
0x9F + 1, // DELAY: ticks = 1 | |
0xFE, // RETURN | |
//"Track LD 8" | |
0x00 + 23, // NOTE ON: note = 23 | |
0x9F + 3, // DELAY: ticks = 3 | |
0x00 + 0, // NOTE ON: note = 0 | |
0x9F + 2, // DELAY: ticks = 2 | |
0x00 + 40, // NOTE ON: note = 40 | |
0x9F + 5, // DELAY: ticks = 5 | |
0x00 + 0, // NOTE ON: note = 0 | |
0x9F + 2, // DELAY: ticks = 2 | |
0x00 + 39, // NOTE ON: note = 39 | |
0x9F + 2, // DELAY: ticks = 2 | |
0x00 + 0, // NOTE ON: note = 0 | |
0x9F + 2, // DELAY: ticks = 2 | |
0xFE, // RETURN | |
//"Track Bass C" | |
0x00 + 13, // NOTE ON: note = 13 | |
0x9F + 1, // DELAY: ticks = 1 | |
0x00 + 0, // NOTE ON: note = 0 | |
0x9F + 1, // DELAY: ticks = 1 | |
0x00 + 25, // NOTE ON: note = 25 | |
0x9F + 1, // DELAY: ticks = 1 | |
0x00 + 0, // NOTE ON: note = 0 | |
0x9F + 1, // DELAY: ticks = 1 | |
0x00 + 13, // NOTE ON: note = 13 | |
0x9F + 1, // DELAY: ticks = 1 | |
0x00 + 0, // NOTE ON: note = 0 | |
0x9F + 1, // DELAY: ticks = 1 | |
0x00 + 25, // NOTE ON: note = 25 | |
0x9F + 1, // DELAY: ticks = 1 | |
0x00 + 0, // NOTE ON: note = 0 | |
0x9F + 1, // DELAY: ticks = 1 | |
0xFE, // RETURN | |
//"Track BASS A#" | |
0x00 + 11, // NOTE ON: note = 11 | |
0x9F + 1, // DELAY: ticks = 1 | |
0x00 + 0, // NOTE ON: note = 0 | |
0x9F + 1, // DELAY: ticks = 1 | |
0x00 + 23, // NOTE ON: note = 23 | |
0x9F + 1, // DELAY: ticks = 1 | |
0x00 + 0, // NOTE ON: note = 0 | |
0x9F + 1, // DELAY: ticks = 1 | |
0x00 + 11, // NOTE ON: note = 11 | |
0x9F + 1, // DELAY: ticks = 1 | |
0x00 + 0, // NOTE ON: note = 0 | |
0x9F + 1, // DELAY: ticks = 1 | |
0x00 + 23, // NOTE ON: note = 23 | |
0x9F + 1, // DELAY: ticks = 1 | |
0x00 + 0, // NOTE ON: note = 0 | |
0x9F + 1, // DELAY: ticks = 1 | |
0xFE, // RETURN | |
//"Track BASS D" | |
0x00 + 15, // NOTE ON: note = 15 | |
0x9F + 1, // DELAY: ticks = 1 | |
0x00 + 27, // NOTE ON: note = 27 | |
0x9F + 1, // DELAY: ticks = 1 | |
0x00 + 0, // NOTE ON: note = 0 | |
0x9F + 2, // DELAY: ticks = 2 | |
0x00 + 15, // NOTE ON: note = 15 | |
0x9F + 1, // DELAY: ticks = 1 | |
0x00 + 0, // NOTE ON: note = 0 | |
0x9F + 1, // DELAY: ticks = 1 | |
0x00 + 27, // NOTE ON: note = 27 | |
0x9F + 1, // DELAY: ticks = 1 | |
0x00 + 0, // NOTE ON: note = 0 | |
0x9F + 1, // DELAY: ticks = 1 | |
0xFE, // RETURN | |
//"Track PERC2" | |
0xFC, 4, // GOTO track 4 | |
0x9F + 3, // DELAY: ticks = 3 | |
0xFC, 4, // GOTO track 4 | |
0x9F + 1, // DELAY: ticks = 1 | |
0xFC, 4, // GOTO track 4 | |
0x9F + 1, // DELAY: ticks = 1 | |
0xFC, 4, // GOTO track 4 | |
0x9F + 3, // DELAY: ticks = 3 | |
0xFC, 4, // GOTO track 4 | |
0x9F + 3, // DELAY: ticks = 3 | |
0xFC, 4, // GOTO track 4 | |
0x9F + 3, // DELAY: ticks = 3 | |
0xFC, 4, // GOTO track 4 | |
0x9F + 3, // DELAY: ticks = 3 | |
0xFC, 4, // GOTO track 4 | |
0x9F + 1, // DELAY: ticks = 1 | |
0xFC, 4, // GOTO track 4 | |
0x9F + 1, // DELAY: ticks = 1 | |
0xFC, 4, // GOTO track 4 | |
0x9F + 1, // DELAY: ticks = 1 | |
0xFC, 4, // GOTO track 4 | |
0x9F + 1, // DELAY: ticks = 1 | |
0xFE, // RETURN | |
//"Track PERC3" | |
0xFC, 5, // GOTO track 5 | |
0x9F + 2, // DELAY: ticks = 2 | |
0xFC, 4, // GOTO track 4 | |
0x9F + 3, // DELAY: ticks = 3 | |
0xFC, 5, // GOTO track 5 | |
0x9F + 2, // DELAY: ticks = 2 | |
0xFC, 4, // GOTO track 4 | |
0x9F + 3, // DELAY: ticks = 3 | |
0xFE, // RETURN | |
//"Track PERC 4" | |
0xFC, 5, // GOTO track 5 | |
0x9F + 2, // DELAY: ticks = 2 | |
0xFC, 5, // GOTO track 5 | |
0xFC, 4, // GOTO track 4 | |
0x9F + 1, // DELAY: ticks = 1 | |
0xFC, 5, // GOTO track 5 | |
0xFC, 4, // GOTO track 4 | |
0x9F + 1, // DELAY: ticks = 1 | |
0xFC, 5, // GOTO track 5 | |
0xFC, 4, // GOTO track 4 | |
0xFC, 4, // GOTO track 4 | |
0xFE, // RETURN | |
}; | |
#endif |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment