Auto full-combo Koibumi2000 in Taiko no Tatsujin CS5

Dependencies:   fll mbed-rtos mbed

main.cpp

Committer:
amutake
Date:
2015-02-16
Revision:
16:253d933a7633
Parent:
15:ed0c2da735c2
Child:
18:c5d3a4d6e8e5

File content as of revision 16:253d933a7633:

#include "mbed.h"
#include "rtos.h"
#include "fll.h"
#include "fll_producers.h"
#include "taiko.h"

int main(void)
{
    fll_init();
    
    /*
    button_t array0[] = {R1, 0};
    button_t array1[] = {CIRCLE, 0};

    Producer* source0 = new RepeaterSource(array0, sizeof(array0)/sizeof(button_t));
    Producer* source1 = new RepeaterSource(array1, sizeof(array1)/sizeof(button_t));
    Producer* ss[] = {source0, source1};
    Producer* source = new MergeFlow(ss, 2);
    */
    

    note don1 = { Don, 1 };
    note don075 = { Don, 0.75 };
    note don05 = { Don, 0.5 };
    note don025 = { Don, 0.25 };
    note un1 = { Un, 1 };
    note un05 = { Un, 0.5 };
    note ka1 = { Ka, 1 };
    note ka05 = { Ka, 0.5 };
    note ka025 = { Ka, 0.25 };
    note renda3 = { Renda, 3 };
    note renda2 = { Renda, 2 };
    note dondai05 = { DonDai, 0.5 };
    note dondai1 = { DonDai, 1 };
    note kadai05 = { KaDai, 0.5 };
    note kadai1 = { KaDai, 1 };
    
    /*
    // Radetzkymarsch perfect score
    note* note_seq[] = { 
        &don025, &don025, &don05, &don025, &don025, &don05, &don05, &don05, &don1,  
        &don025, &don025, &don025, &don025, &don05, &don05, &don1, &un05, &don025, &don025,
         
        &don05, &don025, &don025, &don05, &don025, &don025, &don05, &don05, &don05, &don025, &don025,
        &don05, &don025, &don025, &don05, &don025, &don025, &don05, &don05, &don05, &un05,
        
        &don05, &ka05, &ka05, &un05, &don05, &ka05, &ka05, &un05, 
        &don05, &ka05, &don05, &ka05, &don1, &un1,
        
        &don05, &don025, &don025, &don05, &don025, &don025, &don05, &don05, &don05, &don025, &don025,
        &don05, &don025, &don025, &don05, &don025, &don025, &don05, &don05, &don05, &un05,
        
        &don05, &ka05, &ka05, &un05, &don05, &ka05, &ka05, &un05, 
        &don075, &don025, &don025, &don025, &don025, &don025, &don05, &don05, &don1,
        
        &renda3, &un1,
        &renda3, &un1,
        
        &don1, &don075, &don025, &don1, &don1,
        &ka05, &ka025, &ka025, &ka05, &don05, &ka05, &ka025, &ka025, &ka1,
        
        &don1, &don075, &don025, &don1, &don1,
        &ka05, &ka025, &ka025, &ka05, &don05, &ka05, &ka025, &ka025, &ka05, &don05,
        
        &ka05, &ka025, &ka025, &ka05, &ka025, &ka025, &ka05, &ka025, &ka025, &ka05, &ka025, &ka025, 
        &ka1, &un1, &un1, &un05, &don025, &don025,
        
        &don05, &don025, &don025, &don05, &don025, &don025, &don05, &don05, &don05, &don025, &don025,
        &don05, &don025, &don025, &don05, &don025, &don025, &don05, &don05, &don05, &un05,
        
        &don05, &ka05, &ka05, &un05, &don05, &ka05, &ka05, &un05, 
        &don05, &ka05, &don05, &ka05, &don1, &un1,
        
        &don05, &don025, &don025, &don05, &don025, &don025, &don05, &don05, &don05, &don025, &don025,
        &don05, &don025, &don025, &don05, &don025, &don025, &don05, &don05, &don05, &un05,
        
        &don05, &ka05, &ka05, &un05, &don05, &ka05, &ka05, &un05, 
        &don075, &don025, &don025, &don025, &don025, &don025, &don05, &don05, &don1,
        
        // changing tempo?
        &don1, &un05, &don05, &don05, &don05, &don05, &don05, 
        &don05, &ka025, &ka025, &ka05, &ka05, &ka1, &un1,
        
        //
        &don1, &ka1, &don05, &don05, &ka1,
        &don1, &ka05, &ka05, &don1, &un1,
        
        &don1, &ka05, &ka05, &don025, &don025, &don05, &ka1,
        &don1, &ka05, &ka05, &don1, &un1,
        
        &don1, &ka1, &don05, &don05, &ka1,
        &don1, &ka05, &ka05, &don1, &un1,
        
        &don1, &ka05, &ka05, &don025, &don025, &don05, &ka1,
        &don025, &don025, &don05, &don025, &don025, &don05, &don1, &un1,
        
        //
        &don05, &don025, &don025, &don1, &ka05, &ka05, &ka05, &ka05,
        &don05, &don025, &don025, &don1, &ka05, &ka05, &ka1,
        
        &don05, &don025, &don025, &don1, &ka05, &ka05, &ka05, &ka05,
        &don1, &un05, &don025, &don025, &don1, &un1,
        
        &don1, &ka1, &don05, &don05, &ka1,
        &don1, &ka05, &ka05, &don1, &un1,
        
        &don1, &ka05, &ka05, &don025, &don025, &don05, &ka1,
        &don025, &don025, &don05, &don025, &don025, &don05, &don1, &un1,
        
        &don05, &don025, &don025, &don1, &ka05, &ka05, &ka05, &ka05,
        &don05, &don025, &don025, &don1, &ka05, &ka05, &ka1,
        
        &don05, &don025, &don025, &don1, &ka05, &ka05, &ka05, &ka05,
        &don1, &un05, &don025, &don025, &don1, &un1,
        
        &don025, &don025, &don025, &don025, &don05, &ka05, &don025, &don025, &don025, &don025, &don05, &ka05,
        &don025, &don025, &don025, &don025, &don05, &ka05, &ka1, &un1,
         
        &don025, &don025, &don025, &don025, &don1, &don025, &don025, &don025, &don025, &don1,
        &don025, &don025, &don05, &don025, &don025, &don05, &don05, &don05, &don1,
        
        //
        &don025, &don025, &don05, &don025, &don025, &don05, &don05, &don05, &don1,
        &don025, &don025, &don025, &don025, &don05, &don05, &don1, &un05, &don025, &don025,
        
        &don05, &don025, &don025, &don05, &don025, &don025, &don05, &don05, &don05, &don025, &don025,
        &don05, &don025, &don025, &don05, &don025, &don025, &don05, &don05, &don05, &un05,
        
        &don05, &ka05, &ka05, &un05, &don05, &ka05, &ka05, &un05, 
        &don05, &ka05, &don05, &ka05, &don1, &un1,
        
        &don05, &don025, &don025, &don05, &don025, &don025, &don05, &don05, &don05, &don025, &don025,
        &don05, &don025, &don025, &don05, &don025, &don025, &don05, &don05, &don05, &un05,
        
        &don05, &ka05, &ka05, &un05, &don05, &ka05, &ka05, &un05,
        &don075, &don025, &don025, &don025, &don025, &don025, &don05, &don05, &don1
    };
    
    Producer* source = new TaikoSource(note_seq, sizeof(note_seq)/sizeof(note*), 119.9);

    */
    
    // Koibumi2000
    note* note_seq[] = {
        // &un1, &un1, &un1, &un1,
        // &un1, &un1, &un05, 
        &dondai05, &un1,
        
        &don05, &don05, &un1, &un1, &un1,
        &un1, &un1, &un1, &un1,
        
        &don05, &don05, &un1, &un1, &un1,
        &dondai1, &un1, &dondai1, &un1,
        
        //
        &don05, &ka05, &don05, &ka05, &don05, &ka05, &don1,
        &don05, &ka05, &don05, &ka05, &don05, &ka05, &don1,
        
        &don05, &ka05, &don05, &ka05, &don05, &ka05, &don1,
        &don05, &don05, &ka05, &ka05, &don05, &don05, &ka1,
        
        &don05, &ka05, &don05, &ka05, &don05, &ka05, &don1,
        &don05, &ka05, &don05, &ka05, &don05, &ka05, &don1,
        
        &don05, &ka05, &don05, &ka05, &don05, &ka05, &don1,
        &don05, &don05, &ka05, &ka05, &don05, &don05, &ka1,
        
        //
        &dondai1, &un1, &don025, &don025, &don025, &don025, &don1, //
        
        //
        &don05, &ka05, &don05, &ka05, &don05, &ka05, &don05, &ka05,
        &don05, &ka05, &don05, &ka05, &don05, &ka05, &don05, &ka05,
         
        &don05, &ka05, &don05, &ka05, &don05, &ka05, &don05, &ka05,
        &don05, &don05, &ka05, &ka05, &don05, &don05, &ka1,
        
        &don05, &ka05, &don05, &ka05, &don05, &ka05, &don05, &ka05,
        &don05, &ka05, &don05, &ka05, &don05, &ka05, &don05, &ka05,
         
        &don05, &ka05, &don05, &ka05, &don05, &ka05, &don05, &ka05,
        &don05, &ka05, &don05, &ka05, &don05, &kadai05, &un1,
        
        //
        &don05, &ka05, &don05, &ka05, &don05, &ka05, &don05, &ka05,
        &don05, &ka05, &don05, &ka05, &don05, &ka05, &don05, &ka05,
         
        &don05, &ka05, &don05, &ka05, &don05, &ka05, &don05, &ka05,
        &don05, &ka05, &don05, &ka05, &don05, &kadai05, &kadai05, &kadai05,
        
        &don05, &ka05, &don05, &ka05, &don05, &ka05, &don05, &ka05,
        &don05, &ka05, &don05, &ka05, &don05, &ka05, &don05, &ka05,
         
        &don05, &ka05, &don05, &ka05, &don05, &ka05, &don05, &ka05,
        &don05, &ka05, &don05, &ka05, &don025, &don025, &don025, &don025, &don1,
        
        //
        &don025, &don025, &don05, &un05, &don025, &don025, &don05, &un05, &dondai1,
        &don025, &don025, &don05, &un05, &don025, &don025, &don05, &un05, &dondai1,
        
        &don025, &don025, &don05, &un05, &don025, &don025, &don05, &un05, &kadai1,
        &don025, &don025, &don05, &un05, &don025, &don025, &don05, &un05, &kadai1,
        
        &don025, &don025, &don05, &un05, &ka025, &ka025, &ka05, &un05, &dondai1,
        &don025, &don025, &don05, &un05, &ka025, &ka025, &ka05, &un05, &dondai1,
        
        &don025, &don025, &don05, &un05, &don025, &don025, &don05, &un05, &kadai1,
        &don025, &don025, &don05, &un05, &don025, &don025, &don05, &un05, &kadai1,
        
        //
        &don05, &don05, &don1, &don05, &don025, &don025, &don05, &don05,
        &don05, &don05, &don1, &don05, &don025, &don025, &don05, &don05,
        
        &don05, &don05, &don1, &don05, &don025, &don025, &don05, &don05,
        &don05, &don025, &don025, &don05, &don05, &don05, &don025, &don025, &don05, &don05,
        
        &don05, &ka05, &don05, &ka05, &don05, &don025, &don025, &don05, &don05,
        &don05, &ka05, &don05, &ka05, &don05, &don025, &don025, &don05, &don05,
        
        &don05, &ka05, &don05, &ka05, &don05, &don025, &don025, &don05, &ka05,
        &don05, &don025, &don025, &don05, &ka05, &don05, &ka025, &ka025, &ka05, &ka05,
        
        //
        &don025, &don025, &don05, &don025, &don025, &don05, &don05, &don05, &don05, &don05,
        &don025, &don025, &don05, &don025, &don025, &don05, &don05, &don05, &don05, &don05,
        
        &don025, &don025, &don05, &don025, &don025, &don05, &don05, &don05, &don05, &don05,
        &don05, &don025, &don025, &don025, &don025, &don05, &don05, &don025, &don025, &don025, &don025,&don05,
        
        &don025, &don025, &don05, &ka05, &ka05, &don025, &don025, &don05, &ka05, &ka05, 
        &don025, &don025, &don05, &ka05, &ka05, &don025, &don025, &don05, &ka05, &ka05, 
        
        &don025, &don025, &don05, &ka05, &ka05, &don025, &don025, &don05, &ka05, &ka05, 
        &don025, &don025, &don05, &ka025, &ka025, &ka05, &don025, &don025, &don05, &dondai1,
        
        // irregular time
        &don05, &don1, &don1, &don1, &don05, &un05, &don05, &don05, &don05, &don1, &don05, &don05,
        &un05, &don1, &don1, &don1, &don05, &don05, &don05, &don1, // ?
        
        &don05, &don1, &don1, &don05, &don05, &don05, &un05, &ka025, &ka025, &ka05, &ka025, &ka025, &ka1, &don05, &don05, 
        &un05, &don1, &don05, &don05, &don05, &un05, &ka025, &ka025, &ka05, &ka025, &ka025, &ka05, &un05,
        
        &don05, &don025, &don025, &don05, &don1, &don1, &ka025, &ka025, &ka05, &ka025, &ka025, &ka05, &don025, &don025, &don1, &don05, &don1, &don1, &don1, &ka025, &ka025, &ka05, &ka025, &ka025, &ka05, &don05, &don05, &don05,
        
        // normal time
        &don1, &ka1, &don1, &ka1, &don05, &don05, &ka05, &ka05, &don05, &don05, &ka1, 
        &don025, &don025, &don05, &ka025, &ka025, &ka05, &don025, &don025, &don05, &ka025, &ka025, &ka05, &don1, &un1, &un05, &don025, &don025, &don05, &don05,
        
        &don1, &ka1, &don1, &ka1, &don05, &don05, &ka05, &ka05, &don05, &don05, &ka1, 
        &don025, &don025, &don025, &don025, &ka025, &ka025, &ka05, &don025, &don025, &don025, &don025, &ka025, &ka025, &ka05, &don025, &don025, &don025, &don025, &ka025, &ka025, &ka05, &don05, &don05, &don05, &don05, 
        
        &don1, &ka1, &don1, &ka1, &dondai1, &kadai1, &dondai1, &kadai1, 
        &don025, &don025, &don025, &don025, &ka025, &ka025, &ka025, &ka025, 
        &don025, &don025, &don025, &don025, &ka025, &ka025, &ka025, &ka025,
        &don025, &don025, &don025, &don025, &ka025, &ka025, &ka025, &ka025,
        &don025, &don025, &don025, &don025, &ka025, &ka025, &ka05, 
        
        &renda2, &un05, &don025, &don025, &don1,
        
        // switch (tatsujin)
        &don05, &ka05, &don05, &ka05, &don05, &ka05, &don05, &ka05, 
        &don05, &ka05, &don05, &ka05, &don05, &ka05, &don05, &ka05, 

        &don05, &ka05, &don05, &ka05, &don05, &ka05, &don05, &ka05, 
        &don05, &ka05, &don05, &ka05, &don05, &kadai05, &un05, &kadai05, 
        
        //
        &don025, &don025, &don05, &don025, &don025, &don05, &don05, &don05, &don05, &don05,
        &don025, &don025, &don05, &don025, &don025, &don05, &don05, &don05, &don05, &don05,
        
        &don025, &don025, &don05, &don025, &don025, &don05, &don05, &don05, &don05, &don05,
        &don05, &don05, &don05, &don05, &don05, &don025, &don025, &don025, &don025, &don05, 
        //
        &don025, &don025, &don05, &ka025, &ka025, &ka05, &don025, &don025, &don05, &ka025, &ka025, &ka05, 
        &don025, &don025, &don05, &ka025, &ka025, &ka05, &don025, &don025, &don05, &ka025, &ka025, &ka05, 
        
        &don025, &don025, &don025, &don025, &ka025, &ka025, &ka025, &ka025, &don025, &don025, &don025, &don025, &ka025, &ka025, &ka025, &ka025, 
        &don025, &don025, &don05, &ka05, &ka05, &don025, &don025, &don025, &don025, &don05, &ka05,
        //
        &don025, &don025, &don025, &don025, &ka025, &ka025, &ka05, &don025, &don025, &don025, &don025, &ka025, &ka025, &ka05,
        &don025, &don025, &don025, &don025, &ka025, &ka025, &ka05, &don025, &don025, &don025, &don025, &ka025, &ka025, &ka05,
        
        &don025, &don025, &ka025, &ka025, &don025, &don025, &ka025, &ka025, &don025, &don025, &ka025, &ka025, &don025, &don025, &ka025, &ka025, 
        &don05, &don05, &don05, &don05, &don025, &don025, &don025, &don025, &don025, &don025, &don05,
        
        // irregular time
        &don05, &don05, &un05, &don05, &un05, &don05, &un05, &don05, &un05, &don05, &don05, &don05, &don1,
        &don05, &don05, &un05, &don05, &un05, &don05, &un05, &don05, &un05, &don05, &don05, &don05, &don1,
        
        // last
        &dondai05, &dondai05
    };
    
    Producer* source = new TaikoSource(note_seq, sizeof(note_seq)/sizeof(note*), 200);
    
    fll_run(source);
}