complete the tune
This commit is contained in:
parent
951eef918a
commit
876e8eb503
|
@ -1,22 +1,21 @@
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
|
#include <avr/io.h>
|
||||||
|
#include <avr/pgmspace.h>
|
||||||
#include <pentabug/hal.h>
|
#include <pentabug/hal.h>
|
||||||
#include <pentabug/helper.h>
|
#include <pentabug/helper.h>
|
||||||
#include <pentabug/app.h>
|
#include <pentabug/app.h>
|
||||||
#include <pentabug/timer.h>
|
#include <pentabug/timer.h>
|
||||||
|
|
||||||
#include <avr/io.h>
|
|
||||||
#include <avr/pgmspace.h>
|
|
||||||
|
|
||||||
|
|
||||||
static uint16_t osc[3];
|
static uint16_t osc[3];
|
||||||
static uint16_t sample;
|
static uint16_t sample;
|
||||||
static uint8_t note;
|
static uint8_t note;
|
||||||
static uint8_t row;
|
static uint8_t row;
|
||||||
|
|
||||||
|
|
||||||
enum {
|
enum {
|
||||||
NOTE_LENGTH = 600,
|
NOTE_LENGTH = 600,
|
||||||
DUTY = 0xf000,
|
DUTY = 0xf000,
|
||||||
|
|
||||||
xxx = 0,
|
xxx = 0,
|
||||||
g_0, gs0, a_0, as0, b_0,
|
g_0, gs0, a_0, as0, b_0,
|
||||||
c_1, cs1, d_1, ds1, e_1, f_1, fs1, g_1, gs1, a_1, as1, b_1,
|
c_1, cs1, d_1, ds1, e_1, f_1, fs1, g_1, gs1, a_1, as1, b_1,
|
||||||
|
@ -25,36 +24,56 @@ enum {
|
||||||
c_4,
|
c_4,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
const int patterns[][3][48] PROGMEM = {
|
const int patterns[][3][48] PROGMEM = {
|
||||||
{
|
{
|
||||||
{e_3,e_3,xxx,e_3,e_3,xxx,xxx,xxx,xxx,e_3,e_3,xxx,xxx,xxx,xxx,c_3,c_3,xxx,e_3,e_3,xxx,xxx,xxx,xxx,g_3,g_3,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,},
|
{e_3,e_3,xxx,e_3,e_3,xxx,xxx,xxx,xxx,e_3,e_3,xxx,xxx,xxx,xxx,c_3,c_3,xxx,e_3,e_3,xxx,xxx,xxx,xxx,g_3,g_3,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx},
|
||||||
{fs2,fs2,xxx,fs2,fs2,xxx,xxx,xxx,xxx,fs2,fs2,xxx,xxx,xxx,xxx,fs2,fs2,xxx,fs2,fs2,xxx,xxx,xxx,xxx,b_2,b_2,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,g_2,g_2,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,},
|
{fs2,fs2,xxx,fs2,fs2,xxx,xxx,xxx,xxx,fs2,fs2,xxx,xxx,xxx,xxx,fs2,fs2,xxx,fs2,fs2,xxx,xxx,xxx,xxx,b_2,b_2,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,g_2,g_2,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx},
|
||||||
{d_1,d_1,xxx,d_1,d_1,xxx,xxx,xxx,xxx,d_1,d_1,xxx,xxx,xxx,xxx,d_1,d_1,xxx,d_1,d_1,xxx,xxx,xxx,xxx,g_2,g_2,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,g_1,g_1,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,},
|
{d_1,d_1,xxx,d_1,d_1,xxx,xxx,xxx,xxx,d_1,d_1,xxx,xxx,xxx,xxx,d_1,d_1,xxx,d_1,d_1,xxx,xxx,xxx,xxx,g_2,g_2,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,g_1,g_1,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx},
|
||||||
},{
|
},{
|
||||||
{c_3,c_3,xxx,xxx,xxx,xxx,xxx,xxx,xxx,g_2,g_2,xxx,xxx,xxx,xxx,xxx,xxx,xxx,e_2,e_2,xxx,xxx,xxx,xxx,xxx,xxx,xxx,a_2,a_2,xxx,xxx,xxx,xxx,b_2,b_2,xxx,xxx,xxx,xxx,as2,as2,xxx,a_2,a_2,xxx,xxx,xxx,xxx,},
|
{c_3,c_3,xxx,xxx,xxx,xxx,xxx,xxx,xxx,g_2,g_2,xxx,xxx,xxx,xxx,xxx,xxx,xxx,e_2,e_2,xxx,xxx,xxx,xxx,xxx,xxx,xxx,a_2,a_2,xxx,xxx,xxx,xxx,b_2,b_2,xxx,xxx,xxx,xxx,as2,as2,xxx,a_2,a_2,xxx,xxx,xxx,xxx},
|
||||||
{e_2,e_2,xxx,xxx,xxx,xxx,xxx,xxx,xxx,c_2,c_2,xxx,xxx,xxx,xxx,xxx,xxx,xxx,g_1,g_1,xxx,xxx,xxx,xxx,xxx,xxx,xxx,c_2,c_2,xxx,xxx,xxx,xxx,d_2,d_2,xxx,xxx,xxx,xxx,cs2,cs2,xxx,c_2,c_2,xxx,xxx,xxx,xxx,},
|
{e_2,e_2,xxx,xxx,xxx,xxx,xxx,xxx,xxx,c_2,c_2,xxx,xxx,xxx,xxx,xxx,xxx,xxx,g_1,g_1,xxx,xxx,xxx,xxx,xxx,xxx,xxx,c_2,c_2,xxx,xxx,xxx,xxx,d_2,d_2,xxx,xxx,xxx,xxx,cs2,cs2,xxx,c_2,c_2,xxx,xxx,xxx,xxx},
|
||||||
{g_1,g_1,xxx,xxx,xxx,xxx,xxx,xxx,xxx,e_1,e_1,xxx,xxx,xxx,xxx,xxx,xxx,xxx,c_1,c_1,xxx,xxx,xxx,xxx,xxx,xxx,xxx,f_1,f_1,xxx,xxx,xxx,xxx,g_1,g_1,xxx,xxx,xxx,xxx,fs1,fs1,xxx,f_1,f_1,xxx,xxx,xxx,xxx,},
|
{g_1,g_1,xxx,xxx,xxx,xxx,xxx,xxx,xxx,e_1,e_1,xxx,xxx,xxx,xxx,xxx,xxx,xxx,c_1,c_1,xxx,xxx,xxx,xxx,xxx,xxx,xxx,f_1,f_1,xxx,xxx,xxx,xxx,g_1,g_1,xxx,xxx,xxx,xxx,fs1,fs1,xxx,f_1,f_1,xxx,xxx,xxx,xxx},
|
||||||
},{
|
},{
|
||||||
{g_2,g_2,g_2,xxx,e_3,e_3,e_3,xxx,g_3,g_3,g_3,xxx,a_3,a_3,xxx,xxx,xxx,xxx,f_3,f_3,xxx,g_3,g_3,xxx,xxx,xxx,xxx,e_3,e_3,xxx,xxx,xxx,xxx,c_3,c_3,xxx,d_3,d_3,xxx,b_2,b_2,xxx,xxx,xxx,xxx,xxx,xxx,xxx,},
|
{g_2,g_2,g_2,xxx,e_3,e_3,e_3,xxx,g_3,g_3,g_3,xxx,a_3,a_3,xxx,xxx,xxx,xxx,f_3,f_3,xxx,g_3,g_3,xxx,xxx,xxx,xxx,e_3,e_3,xxx,xxx,xxx,xxx,c_3,c_3,xxx,d_3,d_3,xxx,b_2,b_2,xxx,xxx,xxx,xxx,xxx,xxx,xxx},
|
||||||
{c_2,c_2,c_2,xxx,g_2,g_2,g_2,xxx,b_2,b_2,b_2,xxx,c_3,c_3,xxx,xxx,xxx,xxx,a_2,a_2,xxx,b_2,b_2,xxx,xxx,xxx,xxx,a_2,a_2,xxx,xxx,xxx,xxx,e_2,e_2,xxx,f_2,f_2,xxx,d_2,d_2,xxx,xxx,xxx,xxx,xxx,xxx,xxx,},
|
{c_2,c_2,c_2,xxx,g_2,g_2,g_2,xxx,b_2,b_2,b_2,xxx,c_3,c_3,xxx,xxx,xxx,xxx,a_2,a_2,xxx,b_2,b_2,xxx,xxx,xxx,xxx,a_2,a_2,xxx,xxx,xxx,xxx,e_2,e_2,xxx,f_2,f_2,xxx,d_2,d_2,xxx,xxx,xxx,xxx,xxx,xxx,xxx},
|
||||||
{e_1,e_1,e_1,xxx,c_2,c_2,c_2,xxx,e_2,e_2,e_2,xxx,f_2,f_2,xxx,xxx,xxx,xxx,d_2,d_2,xxx,e_2,e_2,xxx,xxx,xxx,xxx,c_2,c_2,xxx,xxx,xxx,xxx,a_1,a_1,xxx,b_1,b_1,xxx,g_1,g_1,xxx,xxx,xxx,xxx,xxx,xxx,xxx,},
|
{e_1,e_1,e_1,xxx,c_2,c_2,c_2,xxx,e_2,e_2,e_2,xxx,f_2,f_2,xxx,xxx,xxx,xxx,d_2,d_2,xxx,e_2,e_2,xxx,xxx,xxx,xxx,c_2,c_2,xxx,xxx,xxx,xxx,a_1,a_1,xxx,b_1,b_1,xxx,g_1,g_1,xxx,xxx,xxx,xxx,xxx,xxx,xxx},
|
||||||
},{
|
},{
|
||||||
{xxx,xxx,xxx,xxx,xxx,xxx,g_3,g_3,xxx,fs3,fs3,xxx,f_3,f_3,xxx,ds3,ds3,xxx,xxx,xxx,xxx,e_3,e_3,xxx,xxx,xxx,xxx,gs2,gs2,xxx,a_2,a_2,xxx,c_3,c_3,xxx,xxx,xxx,xxx,a_2,a_2,xxx,c_3,c_3,xxx,d_3,d_3,xxx,},
|
{xxx,xxx,xxx,xxx,xxx,xxx,g_3,g_3,xxx,fs3,fs3,xxx,f_3,f_3,xxx,ds3,ds3,xxx,xxx,xxx,xxx,e_3,e_3,xxx,xxx,xxx,xxx,gs2,gs2,xxx,a_2,a_2,xxx,c_3,c_3,xxx,xxx,xxx,xxx,a_2,a_2,xxx,c_3,c_3,xxx,d_3,d_3,xxx},
|
||||||
{xxx,xxx,xxx,xxx,xxx,xxx,e_3,e_3,xxx,ds3,ds3,xxx,d_3,d_3,xxx,b_2,b_2,xxx,xxx,xxx,xxx,c_3,c_3,xxx,xxx,xxx,xxx,e_2,e_2,xxx,f_2,f_2,xxx,g_2,g_2,xxx,xxx,xxx,xxx,c_2,c_2,xxx,e_2,e_2,xxx,f_2,f_2,xxx,},
|
{xxx,xxx,xxx,xxx,xxx,xxx,e_3,e_3,xxx,ds3,ds3,xxx,d_3,d_3,xxx,b_2,b_2,xxx,xxx,xxx,xxx,c_3,c_3,xxx,xxx,xxx,xxx,e_2,e_2,xxx,f_2,f_2,xxx,g_2,g_2,xxx,xxx,xxx,xxx,c_2,c_2,xxx,e_2,e_2,xxx,f_2,f_2,xxx},
|
||||||
{c_1,c_1,xxx,xxx,xxx,xxx,xxx,xxx,xxx,g_1,g_1,xxx,xxx,xxx,xxx,xxx,xxx,xxx,c_2,c_2,xxx,xxx,xxx,xxx,f_1,f_1,xxx,xxx,xxx,xxx,xxx,xxx,xxx,c_2,c_2,xxx,c_2,c_2,xxx,xxx,xxx,xxx,f_1,f_1,xxx,xxx,xxx,xxx,},
|
{c_1,c_1,xxx,xxx,xxx,xxx,xxx,xxx,xxx,g_1,g_1,xxx,xxx,xxx,xxx,xxx,xxx,xxx,c_2,c_2,xxx,xxx,xxx,xxx,f_1,f_1,xxx,xxx,xxx,xxx,xxx,xxx,xxx,c_2,c_2,xxx,c_2,c_2,xxx,xxx,xxx,xxx,f_1,f_1,xxx,xxx,xxx,xxx},
|
||||||
},{
|
},{
|
||||||
{xxx,xxx,xxx,xxx,xxx,xxx,g_3,g_3,xxx,fs3,fs3,xxx,f_3,f_3,xxx,ds3,ds3,xxx,xxx,xxx,xxx,e_3,e_3,xxx,xxx,xxx,xxx,c_4,c_4,xxx,xxx,xxx,xxx,c_4,c_4,xxx,c_4,c_4,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,},
|
{xxx,xxx,xxx,xxx,xxx,xxx,g_3,g_3,xxx,fs3,fs3,xxx,f_3,f_3,xxx,ds3,ds3,xxx,xxx,xxx,xxx,e_3,e_3,xxx,xxx,xxx,xxx,c_4,c_4,xxx,xxx,xxx,xxx,c_4,c_4,xxx,c_4,c_4,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx},
|
||||||
{xxx,xxx,xxx,xxx,xxx,xxx,e_3,e_3,xxx,ds3,ds3,xxx,d_3,d_3,xxx,b_2,b_2,xxx,xxx,xxx,xxx,c_3,c_3,xxx,xxx,xxx,xxx,g_3,g_3,xxx,xxx,xxx,xxx,g_3,g_3,xxx,g_3,g_3,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,},
|
{xxx,xxx,xxx,xxx,xxx,xxx,e_3,e_3,xxx,ds3,ds3,xxx,d_3,d_3,xxx,b_2,b_2,xxx,xxx,xxx,xxx,c_3,c_3,xxx,xxx,xxx,xxx,g_3,g_3,xxx,xxx,xxx,xxx,g_3,g_3,xxx,g_3,g_3,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx},
|
||||||
{c_1,c_1,xxx,xxx,xxx,xxx,xxx,xxx,xxx,e_1,e_1,xxx,xxx,xxx,xxx,xxx,xxx,xxx,g_1,g_1,xxx,c_2,c_2,xxx,xxx,xxx,xxx,f_3,f_3,xxx,xxx,xxx,xxx,f_3,f_3,xxx,f_3,f_3,xxx,xxx,xxx,xxx,g_1,g_1,xxx,xxx,xxx,xxx,},
|
{c_1,c_1,xxx,xxx,xxx,xxx,xxx,xxx,xxx,e_1,e_1,xxx,xxx,xxx,xxx,xxx,xxx,xxx,g_1,g_1,xxx,c_2,c_2,xxx,xxx,xxx,xxx,f_3,f_3,xxx,xxx,xxx,xxx,f_3,f_3,xxx,f_3,f_3,xxx,xxx,xxx,xxx,g_1,g_1,xxx,xxx,xxx,xxx},
|
||||||
},{
|
},{
|
||||||
{xxx,xxx,xxx,xxx,xxx,xxx,ds3,ds3,xxx,xxx,xxx,xxx,xxx,xxx,xxx,d_3,d_3,xxx,xxx,xxx,xxx,xxx,xxx,xxx,c_3,c_3,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,},
|
{xxx,xxx,xxx,xxx,xxx,xxx,ds3,ds3,xxx,xxx,xxx,xxx,xxx,xxx,xxx,d_3,d_3,xxx,xxx,xxx,xxx,xxx,xxx,xxx,c_3,c_3,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx},
|
||||||
{xxx,xxx,xxx,xxx,xxx,xxx,gs2,gs2,xxx,xxx,xxx,xxx,xxx,xxx,xxx,f_2,f_2,xxx,xxx,xxx,xxx,xxx,xxx,xxx,e_2,e_2,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,},
|
{xxx,xxx,xxx,xxx,xxx,xxx,gs2,gs2,xxx,xxx,xxx,xxx,xxx,xxx,xxx,f_2,f_2,xxx,xxx,xxx,xxx,xxx,xxx,xxx,e_2,e_2,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx},
|
||||||
{c_1,c_1,xxx,xxx,xxx,xxx,gs1,gs1,xxx,xxx,xxx,xxx,xxx,xxx,xxx,as1,as1,xxx,xxx,xxx,xxx,xxx,xxx,xxx,c_2,c_2,xxx,xxx,xxx,xxx,xxx,xxx,xxx,g_1,g_1,xxx,g_1,g_1,xxx,xxx,xxx,xxx,c_1,c_1,xxx,xxx,xxx,xxx,},
|
{c_1,c_1,xxx,xxx,xxx,xxx,gs1,gs1,xxx,xxx,xxx,xxx,xxx,xxx,xxx,as1,as1,xxx,xxx,xxx,xxx,xxx,xxx,xxx,c_2,c_2,xxx,xxx,xxx,xxx,xxx,xxx,xxx,g_1,g_1,xxx,g_1,g_1,xxx,xxx,xxx,xxx,c_1,c_1,xxx,xxx,xxx,xxx},
|
||||||
},
|
},{
|
||||||
|
{c_3,c_3,xxx,c_3,c_3,xxx,xxx,xxx,xxx,c_3,c_3,xxx,xxx,xxx,xxx,c_3,c_3,xxx,d_3,d_3,xxx,xxx,xxx,xxx,e_3,e_3,xxx,c_3,c_3,xxx,xxx,xxx,xxx,a_2,a_2,xxx,g_2,g_2,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx},
|
||||||
|
{gs2,gs2,xxx,gs2,gs2,xxx,xxx,xxx,xxx,gs2,gs2,xxx,xxx,xxx,xxx,gs2,gs2,xxx,as2,as2,xxx,xxx,xxx,xxx,g_2,g_2,xxx,e_2,e_2,xxx,xxx,xxx,xxx,e_2,e_2,xxx,c_2,c_2,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx},
|
||||||
|
{gs0,gs0,xxx,xxx,xxx,xxx,xxx,xxx,xxx,ds1,ds1,xxx,xxx,xxx,xxx,xxx,xxx,xxx,gs1,gs1,xxx,xxx,xxx,xxx,g_1,g_1,xxx,xxx,xxx,xxx,xxx,xxx,xxx,c_1,c_1,xxx,xxx,xxx,xxx,xxx,xxx,xxx,g_0,g_0,xxx,xxx,xxx,xxx},
|
||||||
|
},{
|
||||||
|
{c_3,c_3,xxx,c_3,c_3,xxx,xxx,xxx,xxx,c_3,c_3,xxx,xxx,xxx,xxx,c_3,c_3,xxx,d_3,d_3,xxx,e_3,e_3,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx},
|
||||||
|
{gs2,gs2,xxx,gs2,gs2,xxx,xxx,xxx,xxx,gs2,gs2,xxx,xxx,xxx,xxx,gs2,gs2,xxx,as2,as2,xxx,g_2,g_2,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx},
|
||||||
|
{gs0,gs0,xxx,xxx,xxx,xxx,xxx,xxx,xxx,ds1,ds1,xxx,xxx,xxx,xxx,xxx,xxx,xxx,gs1,gs1,xxx,xxx,xxx,xxx,g_1,g_1,xxx,xxx,xxx,xxx,xxx,xxx,xxx,c_1,c_1,xxx,xxx,xxx,xxx,xxx,xxx,xxx,g_0,g_0,xxx,xxx,xxx,xxx},
|
||||||
|
},{
|
||||||
|
{e_3,e_3,xxx,c_3,c_3,xxx,xxx,xxx,xxx,g_2,g_2,xxx,xxx,xxx,xxx,xxx,xxx,xxx,gs2,gs2,xxx,xxx,xxx,xxx,a_2,a_2,xxx,f_3,f_3,xxx,xxx,xxx,xxx,f_3,f_3,xxx,a_2,a_2,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx},
|
||||||
|
{c_3,c_3,xxx,a_2,a_2,xxx,xxx,xxx,xxx,e_2,e_2,xxx,xxx,xxx,xxx,xxx,xxx,xxx,e_2,e_2,xxx,xxx,xxx,xxx,f_2,f_2,xxx,c_3,c_3,xxx,xxx,xxx,xxx,c_3,c_3,xxx,f_2,f_2,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx},
|
||||||
|
{c_1,c_1,xxx,xxx,xxx,xxx,xxx,xxx,xxx,fs1,fs1,xxx,g_1,g_1,xxx,xxx,xxx,xxx,c_2,c_2,xxx,xxx,xxx,xxx,f_1,f_1,xxx,xxx,xxx,xxx,f_1,f_1,xxx,xxx,xxx,xxx,c_2,c_2,xxx,c_2,c_2,xxx,f_1,f_1,xxx,xxx,xxx,xxx},
|
||||||
|
},{
|
||||||
|
{b_2,b_2,b_2,xxx,a_3,a_3,a_3,xxx,a_3,a_3,a_3,xxx,a_3,a_3,a_3,xxx,g_3,g_3,g_3,xxx,f_3,f_3,f_3,xxx,e_3,e_3,xxx,c_3,c_3,xxx,xxx,xxx,xxx,a_2,a_2,xxx,g_2,g_2,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx},
|
||||||
|
{g_2,g_2,g_2,xxx,f_3,f_3,f_3,xxx,f_3,f_3,f_3,xxx,f_3,f_3,f_3,xxx,e_3,e_3,e_3,xxx,d_3,d_3,d_3,xxx,c_3,c_3,xxx,a_2,a_2,xxx,xxx,xxx,xxx,f_2,f_2,xxx,e_2,e_2,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx},
|
||||||
|
{d_1,d_1,xxx,xxx,xxx,xxx,xxx,xxx,xxx,f_1,f_1,xxx,g_1,g_1,xxx,xxx,xxx,xxx,b_1,b_1,xxx,xxx,xxx,xxx,g_1,g_1,xxx,xxx,xxx,xxx,g_1,g_1,xxx,xxx,xxx,xxx,c_2,c_2,xxx,c_2,c_2,xxx,g_1,g_1,xxx,xxx,xxx,xxx},
|
||||||
|
},{
|
||||||
|
{b_2,b_2,xxx,f_3,f_3,xxx,xxx,xxx,xxx,f_3,f_3,xxx,f_3,f_3,f_3,xxx,e_3,e_3,e_3,xxx,d_3,d_3,d_3,xxx,c_3,c_3,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx},
|
||||||
|
{g_2,g_2,xxx,d_3,d_3,xxx,xxx,xxx,xxx,d_3,d_3,xxx,d_3,d_3,d_3,xxx,c_3,c_3,c_3,xxx,b_2,b_2,b_2,xxx,g_2,g_2,xxx,e_2,e_2,xxx,xxx,xxx,xxx,e_2,e_2,xxx,c_2,c_2,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx},
|
||||||
|
{g_1,g_1,xxx,xxx,xxx,xxx,xxx,xxx,xxx,g_1,g_1,xxx,g_1,g_1,g_1,xxx,a_1,a_1,a_1,xxx,b_1,b_1,b_1,xxx,g_2,g_2,xxx,xxx,xxx,xxx,g_1,g_1,xxx,xxx,xxx,xxx,c_1,c_1,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx,xxx},
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
const uint16_t freq[] PROGMEM = {
|
const uint16_t freq[] PROGMEM = {
|
||||||
0,
|
0,
|
||||||
412, 436, 462, 489, 518, 549, 582, 617, 653, 692, 733, 777,
|
412, 436, 462, 489, 518, 549, 582, 617, 653, 692, 733, 777,
|
||||||
|
@ -69,9 +88,14 @@ const uint8_t order[] = {
|
||||||
1, 2, 1, 2,
|
1, 2, 1, 2,
|
||||||
3, 4, 3, 5,
|
3, 4, 3, 5,
|
||||||
3, 4, 3, 5,
|
3, 4, 3, 5,
|
||||||
|
6, 7, 6, 0,
|
||||||
|
1, 2, 1, 2,
|
||||||
|
8, 9, 8, 10,
|
||||||
|
8, 9, 8, 10,
|
||||||
|
6, 7, 6, 0,
|
||||||
|
8, 9, 8, 10
|
||||||
};
|
};
|
||||||
|
|
||||||
static uint8_t prev_amp = 0;
|
|
||||||
|
|
||||||
static void mix_mario(void) {
|
static void mix_mario(void) {
|
||||||
|
|
||||||
|
@ -83,7 +107,6 @@ static void mix_mario(void) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
uint8_t p = order[row];
|
uint8_t p = order[row];
|
||||||
uint8_t n;
|
uint8_t n;
|
||||||
|
|
||||||
|
@ -101,6 +124,7 @@ static void mix_mario(void) {
|
||||||
|
|
||||||
uint8_t amp = (osc[0] > DUTY) | (osc[1] > DUTY) | (osc[2] > DUTY);
|
uint8_t amp = (osc[0] > DUTY) | (osc[1] > DUTY) | (osc[2] > DUTY);
|
||||||
|
|
||||||
|
static uint8_t prev_amp = 0;
|
||||||
if (amp != prev_amp) {
|
if (amp != prev_amp) {
|
||||||
buzzer_inv();
|
buzzer_inv();
|
||||||
prev_amp = amp;
|
prev_amp = amp;
|
||||||
|
|
Loading…
Reference in New Issue
Block a user