|
|
@@ -2,90 +2,178 @@
|
|
|
#include "zero_tracker.h"
|
|
|
#include "tracker_engine/tracker.h"
|
|
|
|
|
|
+// Channel p_0_channels[] = {
|
|
|
+// {
|
|
|
+// .rows =
|
|
|
+// {
|
|
|
+// // 1/4
|
|
|
+// ROW_MAKE(NOTE_C3, EffectArpeggio, EFFECT_DATA_2(4, 7)),
|
|
|
+// ROW_MAKE(0, EffectArpeggio, EFFECT_DATA_2(4, 7)),
|
|
|
+// ROW_MAKE(NOTE_C4, EffectSlideToNote, 0x20),
|
|
|
+// ROW_MAKE(0, EffectSlideToNote, 0x20),
|
|
|
+// //
|
|
|
+// ROW_MAKE(0, EffectSlideToNote, 0x20),
|
|
|
+// ROW_MAKE(0, EffectSlideToNote, 0x20),
|
|
|
+// ROW_MAKE(0, EffectSlideToNote, 0x20),
|
|
|
+// ROW_MAKE(0, EffectSlideToNote, 0x20),
|
|
|
+// //
|
|
|
+// ROW_MAKE(0, EffectVibrato, EFFECT_DATA_2(1, 1)),
|
|
|
+// ROW_MAKE(0, EffectVibrato, EFFECT_DATA_2(1, 1)),
|
|
|
+// ROW_MAKE(0, EffectVibrato, EFFECT_DATA_2(1, 1)),
|
|
|
+// ROW_MAKE(0, EffectVibrato, EFFECT_DATA_2(1, 1)),
|
|
|
+// //
|
|
|
+// ROW_MAKE(0, EffectVibrato, EFFECT_DATA_2(2, 2)),
|
|
|
+// ROW_MAKE(0, EffectVibrato, EFFECT_DATA_2(2, 2)),
|
|
|
+// ROW_MAKE(0, EffectVibrato, EFFECT_DATA_2(2, 2)),
|
|
|
+// ROW_MAKE(0, EffectVibrato, EFFECT_DATA_2(2, 2)),
|
|
|
+// // 2/4
|
|
|
+// ROW_MAKE(NOTE_C3, EffectSlideDown, 0x20),
|
|
|
+// ROW_MAKE(0, EffectSlideDown, 0x20),
|
|
|
+// ROW_MAKE(NOTE_C4, EffectVibrato, EFFECT_DATA_2(3, 3)),
|
|
|
+// ROW_MAKE(0, EffectVibrato, EFFECT_DATA_2(3, 3)),
|
|
|
+// //
|
|
|
+// ROW_MAKE(0, EffectVibrato, EFFECT_DATA_2(3, 3)),
|
|
|
+// ROW_MAKE(0, EffectVibrato, EFFECT_DATA_2(3, 3)),
|
|
|
+// ROW_MAKE(0, EffectVibrato, EFFECT_DATA_2(3, 3)),
|
|
|
+// ROW_MAKE(0, EffectVibrato, EFFECT_DATA_2(3, 3)),
|
|
|
+// //
|
|
|
+// ROW_MAKE(0, EffectVibrato, EFFECT_DATA_2(3, 3)),
|
|
|
+// ROW_MAKE(0, EffectVibrato, EFFECT_DATA_2(3, 3)),
|
|
|
+// ROW_MAKE(0, EffectVibrato, EFFECT_DATA_2(3, 3)),
|
|
|
+// ROW_MAKE(0, EffectVibrato, EFFECT_DATA_2(3, 3)),
|
|
|
+// //
|
|
|
+// ROW_MAKE(0, EffectVibrato, EFFECT_DATA_2(3, 3)),
|
|
|
+// ROW_MAKE(0, EffectVibrato, EFFECT_DATA_2(3, 3)),
|
|
|
+// ROW_MAKE(0, EffectVibrato, EFFECT_DATA_2(3, 3)),
|
|
|
+// ROW_MAKE(NOTE_OFF, EffectVibrato, EFFECT_DATA_2(3, 3)),
|
|
|
+// // 3/4
|
|
|
+// ROW_MAKE(NOTE_C3, EffectArpeggio, EFFECT_DATA_2(4, 7)),
|
|
|
+// ROW_MAKE(0, EffectArpeggio, EFFECT_DATA_2(4, 7)),
|
|
|
+// ROW_MAKE(NOTE_OFF, 0, 0),
|
|
|
+// ROW_MAKE(0, 0, 0),
|
|
|
+// //
|
|
|
+// ROW_MAKE(0, 0, 0),
|
|
|
+// ROW_MAKE(0, 0, 0),
|
|
|
+// ROW_MAKE(0, 0, 0),
|
|
|
+// ROW_MAKE(0, 0, 0),
|
|
|
+// //
|
|
|
+// ROW_MAKE(NOTE_C2, EffectPWM, 60),
|
|
|
+// ROW_MAKE(0, EffectPWM, 32),
|
|
|
+// ROW_MAKE(0, EffectPWM, 12),
|
|
|
+// ROW_MAKE(NOTE_OFF, 0, 0),
|
|
|
+// //
|
|
|
+// ROW_MAKE(0, 0, 0),
|
|
|
+// ROW_MAKE(0, 0, 0),
|
|
|
+// ROW_MAKE(0, 0, 0),
|
|
|
+// ROW_MAKE(0, 0, 0),
|
|
|
+// // 4/4
|
|
|
+// ROW_MAKE(NOTE_C3, EffectSlideDown, 0x20),
|
|
|
+// ROW_MAKE(0, EffectSlideDown, 0x20),
|
|
|
+// ROW_MAKE(0, EffectSlideDown, 0x20),
|
|
|
+// ROW_MAKE(NOTE_OFF, 0, 0),
|
|
|
+// //
|
|
|
+// ROW_MAKE(0, 0, 0),
|
|
|
+// ROW_MAKE(0, 0, 0),
|
|
|
+// ROW_MAKE(0, 0, 0),
|
|
|
+// ROW_MAKE(0, 0, 0),
|
|
|
+// //
|
|
|
+// ROW_MAKE(NOTE_C2, EffectPWM, 60),
|
|
|
+// ROW_MAKE(0, EffectPWM, 32),
|
|
|
+// ROW_MAKE(0, EffectPWM, 12),
|
|
|
+// ROW_MAKE(NOTE_OFF, 0, 0),
|
|
|
+// //
|
|
|
+// ROW_MAKE(0, 0, 0),
|
|
|
+// ROW_MAKE(0, 0, 0),
|
|
|
+// ROW_MAKE(0, 0, 0),
|
|
|
+// ROW_MAKE(0, 0, 0),
|
|
|
+// },
|
|
|
+// },
|
|
|
+// };
|
|
|
+
|
|
|
Channel p_0_channels[] = {
|
|
|
{
|
|
|
.rows =
|
|
|
{
|
|
|
- // 1/4
|
|
|
- ROW_MAKE(NOTE_C3, EffectArpeggio, EFFECT_DATA_2(4, 7)),
|
|
|
- ROW_MAKE(0, EffectArpeggio, EFFECT_DATA_2(4, 7)),
|
|
|
- ROW_MAKE(NOTE_C4, EffectSlideToNote, 0x20),
|
|
|
- ROW_MAKE(0, EffectSlideToNote, 0x20),
|
|
|
//
|
|
|
- ROW_MAKE(0, EffectSlideToNote, 0x20),
|
|
|
- ROW_MAKE(0, EffectSlideToNote, 0x20),
|
|
|
- ROW_MAKE(0, EffectSlideToNote, 0x20),
|
|
|
- ROW_MAKE(0, EffectSlideToNote, 0x20),
|
|
|
+ ROW_MAKE(NOTE_A4, EffectArpeggio, EFFECT_DATA_2(4, 7)),
|
|
|
+ ROW_MAKE(NOTE_C3, 0, 0),
|
|
|
+ ROW_MAKE(NOTE_F2, 0, 0),
|
|
|
+ ROW_MAKE(NOTE_C3, 0, 0),
|
|
|
//
|
|
|
- ROW_MAKE(0, EffectVibrato, EFFECT_DATA_2(1, 1)),
|
|
|
- ROW_MAKE(0, EffectVibrato, EFFECT_DATA_2(1, 1)),
|
|
|
- ROW_MAKE(0, EffectVibrato, EFFECT_DATA_2(1, 1)),
|
|
|
+ ROW_MAKE(NOTE_E4, 0, 0),
|
|
|
+ ROW_MAKE(NOTE_C3, 0, 0),
|
|
|
+ ROW_MAKE(NOTE_E4, EffectPWM, 50),
|
|
|
+ ROW_MAKE(NOTE_OFF, 0, 0),
|
|
|
+ //
|
|
|
+ ROW_MAKE(NOTE_A4, 0, 0),
|
|
|
+ ROW_MAKE(0, EffectPWM, 55),
|
|
|
+ ROW_MAKE(0, EffectPWM, 45),
|
|
|
+ ROW_MAKE(NOTE_OFF, 0, 0),
|
|
|
+ //
|
|
|
+ ROW_MAKE(NOTE_E5, 0, 0),
|
|
|
+ ROW_MAKE(0, EffectPWM, 55),
|
|
|
+ ROW_MAKE(0, EffectPWM, 45),
|
|
|
+ ROW_MAKE(NOTE_OFF, 0, 0),
|
|
|
+ //
|
|
|
+ ROW_MAKE(NOTE_D5, 0, 0),
|
|
|
+ ROW_MAKE(NOTE_C3, EffectSlideDown, 0x30),
|
|
|
+ ROW_MAKE(NOTE_F2, 0, 0),
|
|
|
+ ROW_MAKE(NOTE_C3, 0, 0),
|
|
|
+ //
|
|
|
+ ROW_MAKE(NOTE_C5, 0, 0),
|
|
|
+ ROW_MAKE(NOTE_C3, 0, 0),
|
|
|
+ ROW_MAKE(NOTE_C5, 0, 0),
|
|
|
+ ROW_MAKE(NOTE_OFF, 0, 0),
|
|
|
+ //
|
|
|
+ ROW_MAKE(NOTE_A4, 0, 0),
|
|
|
+ ROW_MAKE(0, 0, 0),
|
|
|
+ ROW_MAKE(0, 0, 0),
|
|
|
ROW_MAKE(0, EffectVibrato, EFFECT_DATA_2(1, 1)),
|
|
|
//
|
|
|
+ ROW_MAKE(0, EffectVibrato, EFFECT_DATA_2(1, 1)),
|
|
|
ROW_MAKE(0, EffectVibrato, EFFECT_DATA_2(2, 2)),
|
|
|
ROW_MAKE(0, EffectVibrato, EFFECT_DATA_2(2, 2)),
|
|
|
- ROW_MAKE(0, EffectVibrato, EFFECT_DATA_2(2, 2)),
|
|
|
- ROW_MAKE(0, EffectVibrato, EFFECT_DATA_2(2, 2)),
|
|
|
- // 2/4
|
|
|
- ROW_MAKE(NOTE_C3, EffectSlideDown, 0x20),
|
|
|
- ROW_MAKE(0, EffectSlideDown, 0x20),
|
|
|
- ROW_MAKE(NOTE_C4, EffectVibrato, EFFECT_DATA_2(3, 3)),
|
|
|
- ROW_MAKE(0, EffectVibrato, EFFECT_DATA_2(3, 3)),
|
|
|
- //
|
|
|
- ROW_MAKE(0, EffectVibrato, EFFECT_DATA_2(3, 3)),
|
|
|
- ROW_MAKE(0, EffectVibrato, EFFECT_DATA_2(3, 3)),
|
|
|
- ROW_MAKE(0, EffectVibrato, EFFECT_DATA_2(3, 3)),
|
|
|
- ROW_MAKE(0, EffectVibrato, EFFECT_DATA_2(3, 3)),
|
|
|
- //
|
|
|
- ROW_MAKE(0, EffectVibrato, EFFECT_DATA_2(3, 3)),
|
|
|
- ROW_MAKE(0, EffectVibrato, EFFECT_DATA_2(3, 3)),
|
|
|
- ROW_MAKE(0, EffectVibrato, EFFECT_DATA_2(3, 3)),
|
|
|
- ROW_MAKE(0, EffectVibrato, EFFECT_DATA_2(3, 3)),
|
|
|
- //
|
|
|
- ROW_MAKE(0, EffectVibrato, EFFECT_DATA_2(3, 3)),
|
|
|
- ROW_MAKE(0, EffectVibrato, EFFECT_DATA_2(3, 3)),
|
|
|
- ROW_MAKE(0, EffectVibrato, EFFECT_DATA_2(3, 3)),
|
|
|
- ROW_MAKE(NOTE_OFF, EffectVibrato, EFFECT_DATA_2(3, 3)),
|
|
|
- // 3/4
|
|
|
- ROW_MAKE(NOTE_C3, EffectArpeggio, EFFECT_DATA_2(4, 7)),
|
|
|
- ROW_MAKE(0, EffectArpeggio, EFFECT_DATA_2(4, 7)),
|
|
|
ROW_MAKE(NOTE_OFF, 0, 0),
|
|
|
- ROW_MAKE(0, 0, 0),
|
|
|
//
|
|
|
- ROW_MAKE(0, 0, 0),
|
|
|
- ROW_MAKE(0, 0, 0),
|
|
|
- ROW_MAKE(0, 0, 0),
|
|
|
- ROW_MAKE(0, 0, 0),
|
|
|
+ ROW_MAKE(NOTE_B4, EffectArpeggio, EFFECT_DATA_2(4, 7)),
|
|
|
+ ROW_MAKE(NOTE_D3, 0, 0),
|
|
|
+ ROW_MAKE(NOTE_G2, 0, 0),
|
|
|
+ ROW_MAKE(NOTE_D3, 0, 0),
|
|
|
//
|
|
|
- ROW_MAKE(NOTE_C2, EffectPWM, 60),
|
|
|
- ROW_MAKE(0, EffectPWM, 32),
|
|
|
- ROW_MAKE(0, EffectPWM, 12),
|
|
|
+ ROW_MAKE(NOTE_E4, 0, 0),
|
|
|
+ ROW_MAKE(NOTE_D3, 0, 0),
|
|
|
+ ROW_MAKE(NOTE_E4, EffectPWM, 50),
|
|
|
ROW_MAKE(NOTE_OFF, 0, 0),
|
|
|
//
|
|
|
- ROW_MAKE(0, 0, 0),
|
|
|
- ROW_MAKE(0, 0, 0),
|
|
|
- ROW_MAKE(0, 0, 0),
|
|
|
- ROW_MAKE(0, 0, 0),
|
|
|
- // 4/4
|
|
|
- ROW_MAKE(NOTE_C3, EffectSlideDown, 0x20),
|
|
|
- ROW_MAKE(0, EffectSlideDown, 0x20),
|
|
|
- ROW_MAKE(0, EffectSlideDown, 0x20),
|
|
|
+ ROW_MAKE(NOTE_A4, 0, 0),
|
|
|
+ ROW_MAKE(0, EffectPWM, 55),
|
|
|
+ ROW_MAKE(0, EffectPWM, 45),
|
|
|
ROW_MAKE(NOTE_OFF, 0, 0),
|
|
|
//
|
|
|
- ROW_MAKE(0, 0, 0),
|
|
|
- ROW_MAKE(0, 0, 0),
|
|
|
- ROW_MAKE(0, 0, 0),
|
|
|
- ROW_MAKE(0, 0, 0),
|
|
|
+ ROW_MAKE(NOTE_E5, 0, 0),
|
|
|
+ ROW_MAKE(0, EffectPWM, 55),
|
|
|
+ ROW_MAKE(0, EffectPWM, 45),
|
|
|
+ ROW_MAKE(NOTE_OFF, 0, 0),
|
|
|
//
|
|
|
- ROW_MAKE(NOTE_C2, EffectPWM, 60),
|
|
|
- ROW_MAKE(0, EffectPWM, 32),
|
|
|
- ROW_MAKE(0, EffectPWM, 12),
|
|
|
+ ROW_MAKE(NOTE_D5, 0, 0),
|
|
|
+ ROW_MAKE(NOTE_D3, EffectSlideDown, 0x3F),
|
|
|
+ ROW_MAKE(NOTE_G2, 0, 0),
|
|
|
+ ROW_MAKE(NOTE_D3, 0, 0),
|
|
|
+ //
|
|
|
+ ROW_MAKE(NOTE_C5, 0, 0),
|
|
|
+ ROW_MAKE(NOTE_D3, 0, 0),
|
|
|
+ ROW_MAKE(NOTE_C5, 0, 0),
|
|
|
ROW_MAKE(NOTE_OFF, 0, 0),
|
|
|
//
|
|
|
+ ROW_MAKE(NOTE_A4, 0, 0),
|
|
|
ROW_MAKE(0, 0, 0),
|
|
|
ROW_MAKE(0, 0, 0),
|
|
|
- ROW_MAKE(0, 0, 0),
|
|
|
- ROW_MAKE(0, 0, 0),
|
|
|
+ ROW_MAKE(0, EffectVibrato, EFFECT_DATA_2(1, 1)),
|
|
|
+ //
|
|
|
+ ROW_MAKE(0, EffectVibrato, EFFECT_DATA_2(1, 1)),
|
|
|
+ ROW_MAKE(0, EffectVibrato, EFFECT_DATA_2(2, 2)),
|
|
|
+ ROW_MAKE(0, EffectVibrato, EFFECT_DATA_2(2, 2)),
|
|
|
+ ROW_MAKE(NOTE_OFF, 0, 0),
|
|
|
},
|
|
|
},
|
|
|
};
|
|
|
@@ -95,111 +183,288 @@ Channel p_1_channels[] = {
|
|
|
.rows =
|
|
|
{
|
|
|
//
|
|
|
- ROW_MAKE(NOTE_A4, 0, 0),
|
|
|
- ROW_MAKE(NOTE_C3, 0, 0),
|
|
|
- ROW_MAKE(NOTE_F2, 0, 0),
|
|
|
- ROW_MAKE(NOTE_C3, 0, 0),
|
|
|
+ ROW_MAKE(NOTE_C5, EffectArpeggio, EFFECT_DATA_2(4, 7)),
|
|
|
+ ROW_MAKE(NOTE_E3, 0, 0),
|
|
|
+ ROW_MAKE(NOTE_A2, 0, 0),
|
|
|
+ ROW_MAKE(NOTE_E3, 0, 0),
|
|
|
//
|
|
|
- ROW_MAKE(NOTE_E4, 0, 0),
|
|
|
- ROW_MAKE(NOTE_C3, 0, 0),
|
|
|
- ROW_MAKE(NOTE_E4, 0, 0),
|
|
|
+ ROW_MAKE(NOTE_B4, 0, 0),
|
|
|
+ ROW_MAKE(NOTE_E3, 0, 0),
|
|
|
+ ROW_MAKE(NOTE_B4, EffectPWM, 50),
|
|
|
ROW_MAKE(NOTE_OFF, 0, 0),
|
|
|
//
|
|
|
- ROW_MAKE(NOTE_A4, 0, 0),
|
|
|
- ROW_MAKE(NOTE_A4, 0, 0),
|
|
|
- ROW_MAKE(NOTE_A4, 0, 0),
|
|
|
+ ROW_MAKE(NOTE_G4, 0, 0),
|
|
|
+ ROW_MAKE(0, EffectPWM, 55),
|
|
|
+ ROW_MAKE(0, EffectPWM, 45),
|
|
|
ROW_MAKE(NOTE_OFF, 0, 0),
|
|
|
//
|
|
|
- ROW_MAKE(NOTE_E5, 0, 0),
|
|
|
- ROW_MAKE(NOTE_E5, 0, 0),
|
|
|
- ROW_MAKE(NOTE_E5, 0, 0),
|
|
|
+ ROW_MAKE(NOTE_C5, 0, 0),
|
|
|
+ ROW_MAKE(0, EffectPWM, 55),
|
|
|
+ ROW_MAKE(0, EffectPWM, 45),
|
|
|
ROW_MAKE(NOTE_OFF, 0, 0),
|
|
|
//
|
|
|
- ROW_MAKE(NOTE_D5, 0, 0),
|
|
|
- ROW_MAKE(NOTE_C3, 0, 0),
|
|
|
- ROW_MAKE(NOTE_F2, 0, 0),
|
|
|
- ROW_MAKE(NOTE_C3, 0, 0),
|
|
|
+ ROW_MAKE(NOTE_C6, 0, 0),
|
|
|
+ ROW_MAKE(NOTE_E3, EffectSlideDown, 0x30),
|
|
|
+ ROW_MAKE(NOTE_A2, 0, 0),
|
|
|
+ ROW_MAKE(NOTE_E3, 0, 0),
|
|
|
//
|
|
|
- ROW_MAKE(NOTE_C5, 0, 0),
|
|
|
- ROW_MAKE(NOTE_C3, 0, 0),
|
|
|
- ROW_MAKE(NOTE_C5, 0, 0),
|
|
|
+ ROW_MAKE(NOTE_B4, 0, 0),
|
|
|
+ ROW_MAKE(NOTE_E3, 0, 0),
|
|
|
+ ROW_MAKE(NOTE_B4, EffectPWM, 50),
|
|
|
ROW_MAKE(NOTE_OFF, 0, 0),
|
|
|
//
|
|
|
- ROW_MAKE(NOTE_A4, 0, 0),
|
|
|
- ROW_MAKE(0, 0, 0),
|
|
|
+ ROW_MAKE(NOTE_G4, 0, 0),
|
|
|
ROW_MAKE(0, 0, 0),
|
|
|
ROW_MAKE(0, 0, 0),
|
|
|
+ ROW_MAKE(0, EffectVibrato, EFFECT_DATA_2(1, 1)),
|
|
|
//
|
|
|
- ROW_MAKE(NOTE_A4, 0, 0),
|
|
|
- ROW_MAKE(NOTE_A4, 0, 0),
|
|
|
- ROW_MAKE(NOTE_A4, 0, 0),
|
|
|
+ ROW_MAKE(0, EffectVibrato, EFFECT_DATA_2(1, 1)),
|
|
|
+ ROW_MAKE(0, EffectVibrato, EFFECT_DATA_2(2, 2)),
|
|
|
+ ROW_MAKE(0, EffectVibrato, EFFECT_DATA_2(2, 2)),
|
|
|
ROW_MAKE(NOTE_OFF, 0, 0),
|
|
|
//
|
|
|
+ ROW_MAKE(NOTE_C5, EffectArpeggio, EFFECT_DATA_2(4, 7)),
|
|
|
+ ROW_MAKE(NOTE_E3, 0, 0),
|
|
|
+ ROW_MAKE(NOTE_A2, 0, 0),
|
|
|
+ ROW_MAKE(NOTE_E3, 0, 0),
|
|
|
+ //
|
|
|
ROW_MAKE(NOTE_B4, 0, 0),
|
|
|
- ROW_MAKE(NOTE_D3, 0, 0),
|
|
|
- ROW_MAKE(NOTE_G2, 0, 0),
|
|
|
- ROW_MAKE(NOTE_D3, 0, 0),
|
|
|
+ ROW_MAKE(NOTE_E3, 0, 0),
|
|
|
+ ROW_MAKE(NOTE_B4, EffectPWM, 50),
|
|
|
+ ROW_MAKE(NOTE_OFF, 0, 0),
|
|
|
//
|
|
|
- ROW_MAKE(NOTE_E4, 0, 0),
|
|
|
- ROW_MAKE(NOTE_D3, 0, 0),
|
|
|
- ROW_MAKE(NOTE_E4, 0, 0),
|
|
|
+ ROW_MAKE(NOTE_G4, 0, 0),
|
|
|
+ ROW_MAKE(0, EffectPWM, 55),
|
|
|
+ ROW_MAKE(0, EffectPWM, 45),
|
|
|
ROW_MAKE(NOTE_OFF, 0, 0),
|
|
|
//
|
|
|
+ ROW_MAKE(NOTE_D5, 0, 0),
|
|
|
+ ROW_MAKE(0, EffectPWM, 55),
|
|
|
+ ROW_MAKE(0, EffectPWM, 45),
|
|
|
+ ROW_MAKE(NOTE_OFF, 0, 0),
|
|
|
+ //
|
|
|
+ ROW_MAKE(NOTE_C6, 0, 0),
|
|
|
+ ROW_MAKE(NOTE_E3, EffectSlideDown, 0x30),
|
|
|
+ ROW_MAKE(NOTE_A2, 0, 0),
|
|
|
+ ROW_MAKE(NOTE_E3, 0, 0),
|
|
|
+ //
|
|
|
+ ROW_MAKE(NOTE_B4, 0, 0),
|
|
|
+ ROW_MAKE(NOTE_E3, 0, 0),
|
|
|
+ ROW_MAKE(NOTE_B4, EffectPWM, 50),
|
|
|
+ ROW_MAKE(NOTE_OFF, 0, 0),
|
|
|
+ //
|
|
|
+ ROW_MAKE(NOTE_G4, 0, 0),
|
|
|
+ ROW_MAKE(0, 0, 0),
|
|
|
+ ROW_MAKE(0, 0, 0),
|
|
|
+ ROW_MAKE(0, EffectVibrato, EFFECT_DATA_2(1, 1)),
|
|
|
+ //
|
|
|
+ ROW_MAKE(0, EffectVibrato, EFFECT_DATA_2(1, 1)),
|
|
|
+ ROW_MAKE(0, EffectVibrato, EFFECT_DATA_2(2, 2)),
|
|
|
+ ROW_MAKE(0, EffectVibrato, EFFECT_DATA_2(2, 2)),
|
|
|
+ ROW_MAKE(NOTE_OFF, 0, 0),
|
|
|
+ },
|
|
|
+ },
|
|
|
+};
|
|
|
+
|
|
|
+Channel p_2_channels[] = {
|
|
|
+ {
|
|
|
+ .rows =
|
|
|
+ {
|
|
|
+ //
|
|
|
+ ROW_MAKE(NOTE_C5, EffectArpeggio, EFFECT_DATA_2(4, 7)),
|
|
|
+ ROW_MAKE(NOTE_E3, 0, 0),
|
|
|
+ ROW_MAKE(NOTE_A2, 0, 0),
|
|
|
+ ROW_MAKE(NOTE_E3, 0, 0),
|
|
|
+ //
|
|
|
+ ROW_MAKE(NOTE_C5, 0, 0),
|
|
|
ROW_MAKE(NOTE_A4, 0, 0),
|
|
|
+ ROW_MAKE(NOTE_C5, 0, 0),
|
|
|
ROW_MAKE(NOTE_A4, 0, 0),
|
|
|
+ //
|
|
|
+ ROW_MAKE(NOTE_C5, EffectPWM, 55),
|
|
|
+ ROW_MAKE(NOTE_A4, EffectPWM, 45),
|
|
|
+ ROW_MAKE(NOTE_C5, EffectPWM, 35),
|
|
|
+ ROW_MAKE(NOTE_OFF, 0, 0),
|
|
|
+ //
|
|
|
+ ROW_MAKE(NOTE_C5, 0, 0),
|
|
|
ROW_MAKE(NOTE_A4, 0, 0),
|
|
|
+ ROW_MAKE(NOTE_C5, EffectPWM, 55),
|
|
|
+ ROW_MAKE(NOTE_OFF, 0, 0),
|
|
|
+ //
|
|
|
+ ROW_MAKE(NOTE_D5, 0, 0),
|
|
|
+ ROW_MAKE(NOTE_E3, EffectSlideDown, 0x30),
|
|
|
+ ROW_MAKE(NOTE_A2, 0, 0),
|
|
|
+ ROW_MAKE(NOTE_E3, 0, 0),
|
|
|
+ //
|
|
|
+ ROW_MAKE(NOTE_OFF, 0, 0),
|
|
|
+ ROW_MAKE(NOTE_E3, 0, 0),
|
|
|
+ ROW_MAKE(NOTE_B4, EffectPWM, 55),
|
|
|
ROW_MAKE(NOTE_OFF, 0, 0),
|
|
|
//
|
|
|
+ ROW_MAKE(NOTE_D5, 0, 0),
|
|
|
+ ROW_MAKE(NOTE_B4, 0, 0),
|
|
|
+ ROW_MAKE(NOTE_D5, EffectPWM, 55),
|
|
|
+ ROW_MAKE(NOTE_B4, EffectPWM, 55),
|
|
|
+ //
|
|
|
+ ROW_MAKE(NOTE_D5, EffectPWM, 45),
|
|
|
+ ROW_MAKE(NOTE_B4, EffectPWM, 45),
|
|
|
+ ROW_MAKE(NOTE_D5, EffectPWM, 35),
|
|
|
+ ROW_MAKE(NOTE_OFF, 0, 0),
|
|
|
+ //
|
|
|
+ ROW_MAKE(NOTE_D5, EffectArpeggio, EFFECT_DATA_2(4, 7)),
|
|
|
+ ROW_MAKE(NOTE_E3, 0, 0),
|
|
|
+ ROW_MAKE(NOTE_A2, 0, 0),
|
|
|
+ ROW_MAKE(NOTE_E3, 0, 0),
|
|
|
+ //
|
|
|
ROW_MAKE(NOTE_E5, 0, 0),
|
|
|
+ ROW_MAKE(NOTE_C5, 0, 0),
|
|
|
ROW_MAKE(NOTE_E5, 0, 0),
|
|
|
+ ROW_MAKE(NOTE_C5, 0, 0),
|
|
|
+ //
|
|
|
+ ROW_MAKE(NOTE_E5, EffectPWM, 55),
|
|
|
+ ROW_MAKE(NOTE_C5, EffectPWM, 45),
|
|
|
+ ROW_MAKE(NOTE_E5, EffectPWM, 35),
|
|
|
+ ROW_MAKE(NOTE_OFF, 0, 0),
|
|
|
+ //
|
|
|
ROW_MAKE(NOTE_E5, 0, 0),
|
|
|
+ ROW_MAKE(NOTE_C5, 0, 0),
|
|
|
+ ROW_MAKE(NOTE_E5, EffectPWM, 55),
|
|
|
ROW_MAKE(NOTE_OFF, 0, 0),
|
|
|
//
|
|
|
ROW_MAKE(NOTE_D5, 0, 0),
|
|
|
- ROW_MAKE(NOTE_D3, 0, 0),
|
|
|
- ROW_MAKE(NOTE_G2, 0, 0),
|
|
|
- ROW_MAKE(NOTE_D3, 0, 0),
|
|
|
+ ROW_MAKE(NOTE_E3, EffectSlideDown, 0x30),
|
|
|
+ ROW_MAKE(NOTE_A2, 0, 0),
|
|
|
+ ROW_MAKE(NOTE_E3, 0, 0),
|
|
|
//
|
|
|
+ ROW_MAKE(NOTE_OFF, 0, 0),
|
|
|
+ ROW_MAKE(NOTE_E3, 0, 0),
|
|
|
+ ROW_MAKE(NOTE_B4, EffectPWM, 55),
|
|
|
+ ROW_MAKE(NOTE_OFF, 0, 0),
|
|
|
+ //
|
|
|
+ ROW_MAKE(NOTE_D5, 0, 0),
|
|
|
+ ROW_MAKE(NOTE_B4, 0, 0),
|
|
|
+ ROW_MAKE(NOTE_D5, EffectPWM, 55),
|
|
|
+ ROW_MAKE(NOTE_B4, EffectPWM, 55),
|
|
|
+ //
|
|
|
+ ROW_MAKE(NOTE_D5, EffectPWM, 45),
|
|
|
+ ROW_MAKE(NOTE_B4, EffectPWM, 45),
|
|
|
+ ROW_MAKE(NOTE_D5, EffectPWM, 35),
|
|
|
+ ROW_MAKE(NOTE_OFF, 0, 0),
|
|
|
+ },
|
|
|
+ },
|
|
|
+};
|
|
|
+
|
|
|
+Channel p_3_channels[] = {
|
|
|
+ {
|
|
|
+ .rows =
|
|
|
+ {
|
|
|
+ //
|
|
|
+ ROW_MAKE(NOTE_Ds5, EffectArpeggio, EFFECT_DATA_2(4, 6)),
|
|
|
ROW_MAKE(NOTE_C5, 0, 0),
|
|
|
- ROW_MAKE(NOTE_D3, 0, 0),
|
|
|
- ROW_MAKE(NOTE_C5, 0, 0),
|
|
|
+ ROW_MAKE(NOTE_Ds5, 0, 0),
|
|
|
+ ROW_MAKE(NOTE_C5, EffectPWM, 55),
|
|
|
+ //
|
|
|
+ ROW_MAKE(NOTE_Ds5, EffectPWM, 45),
|
|
|
+ ROW_MAKE(NOTE_C5, EffectPWM, 35),
|
|
|
+ ROW_MAKE(NOTE_Ds5, EffectPWM, 30),
|
|
|
ROW_MAKE(NOTE_OFF, 0, 0),
|
|
|
//
|
|
|
- ROW_MAKE(NOTE_A4, 0, 0),
|
|
|
- ROW_MAKE(0, 0, 0),
|
|
|
- ROW_MAKE(0, 0, 0),
|
|
|
- ROW_MAKE(0, 0, 0),
|
|
|
+ ROW_MAKE(NOTE_D5, 0, 0),
|
|
|
+ ROW_MAKE(NOTE_B4, 0, 0),
|
|
|
+ ROW_MAKE(NOTE_D5, 0, 0),
|
|
|
+ ROW_MAKE(NOTE_B4, EffectPWM, 55),
|
|
|
//
|
|
|
+ ROW_MAKE(NOTE_D5, EffectPWM, 45),
|
|
|
+ ROW_MAKE(NOTE_B4, EffectPWM, 35),
|
|
|
+ ROW_MAKE(NOTE_D5, EffectPWM, 30),
|
|
|
+ ROW_MAKE(NOTE_OFF, 0, 0),
|
|
|
+ //
|
|
|
+ ROW_MAKE(NOTE_Cs5, EffectArpeggio, EFFECT_DATA_2(4, 6)),
|
|
|
+ ROW_MAKE(NOTE_As4, 0, 0),
|
|
|
+ ROW_MAKE(NOTE_Cs5, 0, 0),
|
|
|
+ ROW_MAKE(NOTE_As4, EffectPWM, 55),
|
|
|
+ //
|
|
|
+ ROW_MAKE(NOTE_Cs5, EffectPWM, 45),
|
|
|
+ ROW_MAKE(NOTE_As4, EffectPWM, 35),
|
|
|
+ ROW_MAKE(NOTE_Cs5, EffectPWM, 30),
|
|
|
+ ROW_MAKE(NOTE_OFF, 0, 0),
|
|
|
+ //
|
|
|
+ ROW_MAKE(NOTE_C5, 0, 0),
|
|
|
ROW_MAKE(NOTE_A4, 0, 0),
|
|
|
+ ROW_MAKE(NOTE_C5, 0, 0),
|
|
|
+ ROW_MAKE(NOTE_A4, EffectPWM, 55),
|
|
|
+ //
|
|
|
+ ROW_MAKE(NOTE_C5, EffectPWM, 45),
|
|
|
+ ROW_MAKE(NOTE_A4, EffectPWM, 35),
|
|
|
+ ROW_MAKE(NOTE_C5, EffectPWM, 30),
|
|
|
+ ROW_MAKE(NOTE_OFF, 0, 0),
|
|
|
+ //
|
|
|
+ ROW_MAKE(NOTE_B4, EffectArpeggio, EFFECT_DATA_2(4, 6)),
|
|
|
+ ROW_MAKE(NOTE_Gs4, 0, 0),
|
|
|
+ ROW_MAKE(NOTE_B4, 0, 0),
|
|
|
+ ROW_MAKE(NOTE_Gs4, EffectPWM, 55),
|
|
|
+ //
|
|
|
+ ROW_MAKE(NOTE_B4, EffectPWM, 45),
|
|
|
+ ROW_MAKE(NOTE_Gs4, EffectPWM, 35),
|
|
|
+ ROW_MAKE(NOTE_B4, EffectPWM, 30),
|
|
|
+ ROW_MAKE(NOTE_OFF, 0, 0),
|
|
|
+ //
|
|
|
+ ROW_MAKE(NOTE_C5, 0, 0),
|
|
|
ROW_MAKE(NOTE_A4, 0, 0),
|
|
|
- ROW_MAKE(NOTE_A4, 0, 0),
|
|
|
+ ROW_MAKE(NOTE_C5, 0, 0),
|
|
|
+ ROW_MAKE(NOTE_A4, EffectPWM, 55),
|
|
|
+ //
|
|
|
+ ROW_MAKE(NOTE_C5, EffectPWM, 45),
|
|
|
+ ROW_MAKE(NOTE_A4, EffectPWM, 35),
|
|
|
+ ROW_MAKE(NOTE_C5, EffectPWM, 30),
|
|
|
+ ROW_MAKE(NOTE_OFF, 0, 0),
|
|
|
+ //
|
|
|
+ ROW_MAKE(NOTE_Cs5, EffectArpeggio, EFFECT_DATA_2(4, 6)),
|
|
|
+ ROW_MAKE(NOTE_As4, 0, 0),
|
|
|
+ ROW_MAKE(NOTE_Cs5, 0, 0),
|
|
|
+ ROW_MAKE(NOTE_As4, EffectPWM, 55),
|
|
|
+ //
|
|
|
+ ROW_MAKE(NOTE_Cs5, EffectPWM, 45),
|
|
|
+ ROW_MAKE(NOTE_As4, EffectPWM, 35),
|
|
|
+ ROW_MAKE(NOTE_Cs5, EffectPWM, 30),
|
|
|
+ ROW_MAKE(NOTE_OFF, 0, 0),
|
|
|
+ //
|
|
|
+ ROW_MAKE(NOTE_D5, 0, 0),
|
|
|
+ ROW_MAKE(NOTE_B4, 0, 0),
|
|
|
+ ROW_MAKE(NOTE_D5, 0, 0),
|
|
|
+ ROW_MAKE(NOTE_B4, EffectPWM, 55),
|
|
|
+ //
|
|
|
+ ROW_MAKE(NOTE_D5, EffectPWM, 45),
|
|
|
+ ROW_MAKE(NOTE_B4, EffectPWM, 35),
|
|
|
+ ROW_MAKE(NOTE_D5, EffectPWM, 30),
|
|
|
ROW_MAKE(NOTE_OFF, 0, 0),
|
|
|
},
|
|
|
},
|
|
|
};
|
|
|
-
|
|
|
Pattern patterns[] = {
|
|
|
- {
|
|
|
- .channels = p_0_channels,
|
|
|
- },
|
|
|
- {
|
|
|
- .channels = p_1_channels,
|
|
|
- },
|
|
|
+ {.channels = p_0_channels},
|
|
|
+ {.channels = p_1_channels},
|
|
|
+ {.channels = p_2_channels},
|
|
|
+ {.channels = p_3_channels},
|
|
|
};
|
|
|
|
|
|
uint8_t order_list[] = {
|
|
|
0,
|
|
|
+ 1,
|
|
|
+ 0,
|
|
|
+ 2,
|
|
|
0,
|
|
|
1,
|
|
|
0,
|
|
|
+ 3,
|
|
|
};
|
|
|
|
|
|
Song song = {
|
|
|
.channels_count = 1,
|
|
|
- .patterns_count = 2,
|
|
|
+ .patterns_count = sizeof(patterns) / sizeof(patterns[0]),
|
|
|
.patterns = patterns,
|
|
|
|
|
|
- .order_list_size = 4,
|
|
|
+ .order_list_size = sizeof(order_list) / sizeof(order_list[0]),
|
|
|
.order_list = order_list,
|
|
|
|
|
|
.ticks_per_second = 60,
|