Zeitsteuerung zeitsteueurung;
Rasterplayer rasterplayer;


/**
* Spielfeld, in dem die gelegten Chips gespeichert werden.
* Wichtigstes datenelement, das von verschiedenen Stellen her sichtbar sein sollte.
*/
int[][] raster;

int GEGRIFFEN = 0;

    //Pentatonische Frequenzen:
    //degah
    //a  h  d  e  g  a  h  d
    // 2  3  2  3   2  2  3

public String[] tonnamen = {
     //a           h            d             e             g              a             h            d
    "vib69_h.wav","vib71_h.wav","vib74_h.wav","vib76_h.wav","vib79_h.wav","vib81_h.wav","vib83_h.wav","vib86_h.wav",    
//    "xyl69_h.wav","xyl71_h.wav","xyl74_h.wav","xyl76_h.wav","xyl79_h.wav","xyl81_h.wav","xyl83_h.wav","xyl86_h.wav",
    "cem57_h.wav","cem59_h.wav","cem62_h.wav","cem64_h.wav","cem67_h.wav","cem69_h.wav","cem71_h.wav","cem74_h.wav",
    "akk57_h.wav","akk59_h.wav","akk62_h.wav","akk64_h.wav","akk67_h.wav","akk69_h.wav","akk71_h.wav","akk74_h.wav" 
//    "vib69_h.wav","vib71_h.wav","vib74_h.wav","vib76_h.wav","vib79_h.wav","vib81_h.wav","vib83_h.wav","vib86_h.wav",    
    
};

public double[][][] ton;

Label label;

void setup()
{
  
  
    initialisieren();
    
    //Initialisierungen für Rasterplayer
    raster = new int[ZEILEN][SPALTEN];
            
    rasterplayer = new Rasterplayer(raster, BPM); //aus raster wird breite und Höhe extrahiert.
    
    //ton = ladeWav("xyl69_h.wav",rasterplayer.benoetigteSampleanzahl()); //Es wird nur ein Abschnitt geladen, wie maximal gebraucht wird. Bis eine Sekunde steht zur Verfügung.
    
    ton = new double[tonnamen.length][][];
    for(int i=0;i<tonnamen.length;i++)    
        ton[i] = ladeWav(tonnamen[i],rasterplayer.benoetigteSampleanzahl());
    
    
    zeitsteueurung = new Zeitsteuerung(rasterplayer); //Rasterplayer wird bei der Zeitsteuerung registriert!
    
    //public Label(PApplet pap, int ZEILEN, int SPALTEN, int XOFF, int YOFF,
    //             int PANEL_BREITE, int PANEL_HOEHE, int TEXT_MAXLAENGE)
    
    label =     new Label(this,ZEILEN*2,SPALTEN/4, QX+RASTERB*2, QY-RASTERH/3,
                 QB, QH, 17);
    //add(String bezeichnung, String beschriftung, int zeile, int spalte)                 
    label.add("gk","KIBA by G.Kramann",ZEILEN,SPALTEN/8-1);             

    
    frameRate(24);
}

void draw()
{
    zeichneHintergrund();
    zeichneBedienelemente();
    zeichneRastermarker();
    label.draw();
    zeichneRaster();
    zeichneZaehlzeit();
    zeichneGegriffenenChip();
}
