CCCPaste

nyantones

//Sacrifices were made
#include "sp.h" ///same as pitches.h
#include   
// notes in the melody:
int melody[] = {

 //NOTE_DS6, NOTE_E6,  NOTE_FS6, NOTE_B6,  NOTE_DS6,   NOTE_E6,  NOTE_FS6, NOTE_B6,  NOTE_CS7, NOTE_DS7,   NOTE_CS7, NOTE_AS6, NOTE_B6,  NOTE_FS6, NOTE_DS6,   NOTE_E6,  NOTE_FS6, NOTE_B6,  NOTE_CS7, NOTE_AS6,   NOTE_B6,  NOTE_CS7, NOTE_E7,  NOTE_DS7, NOTE_E7,   NOTE_CS7, NOTE_FS6, NOTE_GS6, NOTE_DS6, NOTE_DS6,0,NOTE_B0,   NOTE_D6,  NOTE_CS6, NOTE_B0,0,NOTE_B7,  NOTE_CS7, NOTE_D6,   NOTE_D6,  NOTE_CS6, NOTE_B0,  NOTE_CS6, NOTE_DS6,   NOTE_FS6, NOTE_GS6, NOTE_DS6, NOTE_FS6, NOTE_CS6,   NOTE_DS6, NOTE_B0,  NOTE_CS6, NOTE_B0,  NOTE_DS6, NOTE_FS6,   NOTE_GS6, NOTE_DS6, NOTE_FS6, NOTE_CS6, NOTE_DS6, NOTE_B0,   NOTE_D6,  NOTE_DS6, NOTE_D6,  NOTE_CS6, NOTE_B0,   NOTE_CS6, NOTE_D6,  NOTE_B0,  NOTE_CS6, NOTE_DS6, NOTE_FS6,   NOTE_CS6, NOTE_DS6, NOTE_CS6, NOTE_B0,  NOTE_CS7, NOTE_B7,   NOTE_CS7, NOTE_FS6, NOTE_GS6, NOTE_DS6, NOTE_DS6,0,NOTE_B0,   NOTE_D6,  NOTE_CS6, NOTE_B0,0,NOTE_B7,  NOTE_CS7, NOTE_D6,   NOTE_D6,  NOTE_CS6, NOTE_B0,  NOTE_CS6, NOTE_DS6,   NOTE_FS6, NOTE_GS6, NOTE_DS6, NOTE_FS6, NOTE_CS6,   NOTE_DS6, NOTE_B0,  NOTE_CS6, NOTE_B0,  NOTE_DS6, NOTE_FS6,   NOTE_GS6, NOTE_DS6, NOTE_FS6, NOTE_CS6, NOTE_DS6, NOTE_B0,   NOTE_D6,  NOTE_DS6, NOTE_D6,  NOTE_CS6, NOTE_B0,   NOTE_CS6, NOTE_D6,  NOTE_B0,  NOTE_CS6, NOTE_DS6,   NOTE_FS6, NOTE_CS6, NOTE_DS6, NOTE_CS6, NOTE_B0,   NOTE_CS7, NOTE_B7,  NOTE_CS7, NOTE_B7,  NOTE_FS1,   NOTE_GS1, NOTE_B7,  NOTE_FS1, NOTE_GS1, NOTE_B0,   NOTE_CS6, NOTE_DS6, NOTE_B0,  NOTE_E6,  NOTE_DS6, NOTE_E6,   NOTE_FS6, NOTE_B7,  NOTE_B7,  NOTE_FS1, NOTE_GS1, NOTE_B0, NOTE_FS1,   NOTE_E6,  NOTE_DS6, NOTE_CS6, NOTE_B0,  NOTE_FS1,   NOTE_DS1, NOTE_E0,  NOTE_FS1, NOTE_B7,  NOTE_FS1, NOTE_GS1, NOTE_B7,   NOTE_FS1, NOTE_GS1, NOTE_B0,  NOTE_B0,  NOTE_CS6, NOTE_DS6, NOTE_B0,   NOTE_FS1, NOTE_GS1, NOTE_FS1, NOTE_B7,  NOTE_B0,  NOTE_AS1, NOTE_B0,   NOTE_FS1, NOTE_GS1, NOTE_B0,  NOTE_E6,  NOTE_DS6, NOTE_E6,   NOTE_FS6, NOTE_B7,  NOTE_AS1, NOTE_B7,  NOTE_FS1, NOTE_GS1, NOTE_B7,   NOTE_FS1, NOTE_GS1, NOTE_B0,  NOTE_CS6, NOTE_DS6, NOTE_B0,   NOTE_E6,  NOTE_DS6, NOTE_E6,  NOTE_FS6, NOTE_B7,  NOTE_B7,   NOTE_FS1, NOTE_GS1, NOTE_B0,  NOTE_FS1, NOTE_E6,  NOTE_DS6,   NOTE_CS6, NOTE_B0,  NOTE_FS1, NOTE_DS1, NOTE_E0,  NOTE_FS1, NOTE_B7,   NOTE_FS1, NOTE_GS1, NOTE_B7,  NOTE_FS1, NOTE_GS1, NOTE_B0, NOTE_B0,   NOTE_CS6, NOTE_DS6, NOTE_B0,  NOTE_FS1, NOTE_GS1,   NOTE_FS1, NOTE_B7,  NOTE_B0,  NOTE_AS1, NOTE_B0,  NOTE_FS1,   NOTE_GS1, NOTE_B0,  NOTE_E6,  NOTE_DS6, NOTE_E6,   NOTE_FS6, NOTE_B7,  NOTE_CS7,  NOTE_DS3, NOTE_E3
 NOTE_DS6, NOTE_E6,  NOTE_FS6, NOTE_B6,  NOTE_DS6,   NOTE_E6,  NOTE_FS6, NOTE_B6,  NOTE_CS7, NOTE_DS7,   NOTE_CS7, NOTE_AS6, NOTE_B6,  NOTE_FS6, NOTE_DS6,   NOTE_E6,  NOTE_FS6, NOTE_B6,  NOTE_CS7, NOTE_AS6,   NOTE_B6,  NOTE_CS7, NOTE_E7,  NOTE_DS7, NOTE_E7,   NOTE_CS7, NOTE_FS6, NOTE_GS6, NOTE_DS6, NOTE_DS6,0,NOTE_B0,   NOTE_D6,  NOTE_CS6, NOTE_B0,0,NOTE_B7,  NOTE_CS7, NOTE_D6,   NOTE_D6,  NOTE_CS6, NOTE_B0,  NOTE_CS6, NOTE_DS6,   NOTE_FS6, NOTE_GS6, NOTE_DS6, NOTE_FS6, NOTE_CS6,   NOTE_DS6, NOTE_B0,  NOTE_CS6, NOTE_B0,  NOTE_DS6, NOTE_FS6,   NOTE_GS6, NOTE_DS6, NOTE_FS6, NOTE_CS6, NOTE_DS6, NOTE_B0,   NOTE_D6,  NOTE_DS6, NOTE_D6,  NOTE_CS6, NOTE_B0,   NOTE_CS6, NOTE_D6,  NOTE_B0,  NOTE_CS6, NOTE_DS6, NOTE_FS6,   NOTE_CS6, NOTE_DS6, NOTE_CS6, NOTE_B0,  NOTE_CS7, NOTE_B7,   NOTE_CS7, NOTE_FS6, NOTE_GS6, NOTE_DS6, NOTE_DS6,0,NOTE_B0,   NOTE_D6,  NOTE_CS6, NOTE_B0,0,NOTE_B7,  NOTE_CS7, NOTE_D6,   NOTE_D6,  NOTE_CS6, NOTE_B0//,  NOTE_CS6, NOTE_DS6,   NOTE_FS6, NOTE_GS6, NOTE_DS6, NOTE_FS6, NOTE_CS6,   NOTE_DS6, NOTE_B0,  NOTE_CS6, NOTE_B0,  NOTE_DS6, NOTE_FS6,   NOTE_GS6, NOTE_DS6, NOTE_FS6, NOTE_CS6, NOTE_DS6, NOTE_B0,   NOTE_D6,  NOTE_DS6, NOTE_D6,  NOTE_CS6, NOTE_B0,   NOTE_CS6, NOTE_D6,  NOTE_B0,  NOTE_CS6, NOTE_DS6,   NOTE_FS6, NOTE_CS6, NOTE_DS6, NOTE_CS6, NOTE_B0,   NOTE_CS7, NOTE_B7,  NOTE_CS7, NOTE_B7,  NOTE_FS1,   NOTE_GS1, NOTE_B7,  NOTE_FS1, NOTE_GS1, NOTE_B0,   NOTE_CS6, NOTE_DS6, NOTE_B0,  NOTE_E6,  NOTE_DS6, NOTE_E6,   NOTE_FS6, NOTE_B7,  NOTE_B7,  NOTE_FS1, NOTE_GS1, NOTE_B0, NOTE_FS1,   NOTE_E6,  NOTE_DS6, NOTE_CS6, NOTE_B0,  NOTE_FS1,   NOTE_DS1, NOTE_E0,  NOTE_FS1, NOTE_B7,  NOTE_FS1, NOTE_GS1, NOTE_B7,   NOTE_FS1, NOTE_GS1, NOTE_B0,  NOTE_B0,  NOTE_CS6, NOTE_DS6, NOTE_B0,   NOTE_FS1, NOTE_GS1, NOTE_FS1, NOTE_B7,  NOTE_B0,  NOTE_AS1, NOTE_B0,   NOTE_FS1, NOTE_GS1, NOTE_B0,  NOTE_E6,  NOTE_DS6, NOTE_E6,   NOTE_FS6, NOTE_B7,  NOTE_AS1, NOTE_B7,  NOTE_FS1, NOTE_GS1, NOTE_B7,   NOTE_FS1, NOTE_GS1, NOTE_B0,  NOTE_CS6, NOTE_DS6, NOTE_B0,   NOTE_E6,  NOTE_DS6, NOTE_E6,  NOTE_FS6, NOTE_B7,  NOTE_B7,   NOTE_FS1, NOTE_GS1, NOTE_B0,  NOTE_FS1, NOTE_E6,  NOTE_DS6,   NOTE_CS6, NOTE_B0,  NOTE_FS1, NOTE_DS1, NOTE_E0,  NOTE_FS1, NOTE_B7,   NOTE_FS1, NOTE_GS1, NOTE_B7,  NOTE_FS1, NOTE_GS1, NOTE_B0, NOTE_B0,   NOTE_CS6, NOTE_DS6, NOTE_B0,  NOTE_FS1, NOTE_GS1,   NOTE_FS1, NOTE_B7,  NOTE_B0,  NOTE_AS1, NOTE_B0,  NOTE_FS1,   NOTE_GS1, NOTE_B0,  NOTE_E6,  NOTE_DS6, NOTE_E6,   NOTE_FS6, NOTE_B7,  NOTE_CS7,  NOTE_DS3, NOTE_E3
 //NOTE_DS6, NOTE_E6,  NOTE_FS6, NOTE_B6,  NOTE_DS6,   NOTE_E6,  NOTE_FS6, NOTE_B6,  NOTE_CS7, NOTE_DS7,   NOTE_CS7, NOTE_AS6, NOTE_B6,  NOTE_FS6, NOTE_DS6,   NOTE_E6,  NOTE_FS6, NOTE_B6,  NOTE_CS7, NOTE_AS6,   NOTE_B6,  NOTE_CS7, NOTE_E7,  NOTE_DS7, NOTE_E7,   NOTE_CS7, NOTE_FS6, NOTE_GS6, NOTE_DS6, NOTE_DS6,0,NOTE_B0,   NOTE_D6,  NOTE_CS6, NOTE_B0,0,NOTE_B7,  NOTE_CS7, NOTE_D6,   NOTE_D6,  NOTE_CS6, NOTE_B0,  NOTE_CS6, NOTE_DS6,   NOTE_FS6, NOTE_GS6, NOTE_DS6, NOTE_FS6, NOTE_CS6,   NOTE_DS6, NOTE_B0,  NOTE_CS6, NOTE_B0,  NOTE_DS6, NOTE_FS6,   NOTE_GS6, NOTE_DS6, NOTE_FS6, NOTE_CS6, NOTE_DS6, NOTE_B0,   NOTE_D6,  NOTE_DS6, NOTE_D6,  NOTE_CS6, NOTE_B0,   NOTE_CS6, NOTE_D6,  NOTE_B0,  NOTE_CS6, NOTE_DS6, NOTE_FS6,   NOTE_CS6, NOTE_DS6, NOTE_CS6, NOTE_B0,  NOTE_CS7, NOTE_B7,   NOTE_CS7, NOTE_FS6, NOTE_GS6, NOTE_DS6, NOTE_DS6,0,NOTE_B0,   NOTE_D6,  NOTE_CS6, NOTE_B0,0,NOTE_B7,  NOTE_CS7, NOTE_D6,   NOTE_D6,  NOTE_CS6, NOTE_B0//,  NOTE_CS6, NOTE_DS6,   NOTE_FS6, NOTE_GS6, NOTE_DS6, NOTE_FS6, NOTE_CS6,   NOTE_DS6, NOTE_B0,  NOTE_CS6, NOTE_B0,  NOTE_DS6, NOTE_FS6,   NOTE_GS6, NOTE_DS6, NOTE_FS6, NOTE_CS6, NOTE_DS6, NOTE_B0,   NOTE_D6,  NOTE_DS6, NOTE_D6,  NOTE_CS6, NOTE_B0,   NOTE_CS6, NOTE_D6,  NOTE_B0,  NOTE_CS6, NOTE_DS6,   NOTE_FS6, NOTE_CS6, NOTE_DS6, NOTE_CS6, NOTE_B0,   NOTE_CS7, NOTE_B7,  NOTE_CS7, NOTE_B7,  NOTE_FS1,   NOTE_GS1, NOTE_B7,  NOTE_FS1, NOTE_GS1, NOTE_B0,   NOTE_CS6, NOTE_DS6, NOTE_B0,  NOTE_E6,  NOTE_DS6, NOTE_E6,   NOTE_FS6, NOTE_B7,  NOTE_B7,  NOTE_FS1, NOTE_GS1, NOTE_B0, NOTE_FS1,   NOTE_E6,  NOTE_DS6, NOTE_CS6, NOTE_B0,  NOTE_FS1,   NOTE_DS1, NOTE_E0,  NOTE_FS1, NOTE_B7,  NOTE_FS1, NOTE_GS1, NOTE_B7,   NOTE_FS1, NOTE_GS1, NOTE_B0,  NOTE_B0,  NOTE_CS6, NOTE_DS6, NOTE_B0,   NOTE_FS1, NOTE_GS1, NOTE_FS1, NOTE_B7,  NOTE_B0,  NOTE_AS1, NOTE_B0,   NOTE_FS1, NOTE_GS1, NOTE_B0,  NOTE_E6,  NOTE_DS6, NOTE_E6,   NOTE_FS6, NOTE_B7,  NOTE_AS1, NOTE_B7,  NOTE_FS1, NOTE_GS1, NOTE_B7,   NOTE_FS1, NOTE_GS1, NOTE_B0,  NOTE_CS6, NOTE_DS6, NOTE_B0,   NOTE_E6,  NOTE_DS6, NOTE_E6,  NOTE_FS6, NOTE_B7,  NOTE_B7,   NOTE_FS1, NOTE_GS1, NOTE_B0,  NOTE_FS1, NOTE_E6,  NOTE_DS6,   NOTE_CS6, NOTE_B0,  NOTE_FS1, NOTE_DS1, NOTE_E0,  NOTE_FS1, NOTE_B7,   NOTE_FS1, NOTE_GS1, NOTE_B7,  NOTE_FS1, NOTE_GS1, NOTE_B0, NOTE_B0,   NOTE_CS6, NOTE_DS6, NOTE_B0,  NOTE_FS1, NOTE_GS1,   NOTE_FS1, NOTE_B7,  NOTE_B0,  NOTE_AS1, NOTE_B0,  NOTE_FS1,   NOTE_GS1, NOTE_B0,  NOTE_E6,  NOTE_DS6, NOTE_E6,   NOTE_FS6, NOTE_B7,  NOTE_CS7,  NOTE_DS3, NOTE_E3

};
void comments(){
  Serial.println("Comments in code lol");
  //sharp frq formula: NS=N+(i*2)+(i-1)+1  (i=itteration starting at 1) its close, but not quiet right.
//58=55+(1*2)+(1-1)+1  == 58 //cool it works lol 
//117=110+(2*2)+(2-1)+1 ==116 !=117 hmmm
//233=220+(3*2)+(3-1)+1 ==229 !=233 

//durration Note (itteration?)  Number pause (looks like)
//ok I typoed  transcribing set NOTE_Note0==NOTE_Note1 where not otherwise defined
//now to underp the array see line abouve
  
//  char _NYANLIB_RTTTL_SONG_NYAN[] ="nyan cat:d=4,o=4,b=120:
//  NOTE_DS6, NOTE_E6,  NOTE_FS6, NOTE_B6,  NOTE_DS6, 
//  NOTE_E6,  NOTE_FS6, NOTE_B6,  NOTE_CS7, NOTE_DS7, 
//  NOTE_CS7, NOTE_AS6, NOTE_B6,  NOTE_FS6, NOTE_DS6, 
//  NOTE_E6,  NOTE_FS6, NOTE_B6,  NOTE_CS7, NOTE_AS6, 
//  NOTE_B6,  NOTE_CS7, NOTE_E7,  NOTE_DS7, NOTE_E7, 
//  NOTE_CS7, NOTE_FS6, NOTE_GS6, NOTE_DS6, NOTE_DS6,0,NOTE_B0, 
//  NOTE_D6,  NOTE_CS6, NOTE_B0,0,NOTE_B7,  NOTE_CS7, NOTE_D6, 
//  NOTE_D6,  NOTE_CS6, NOTE_B0,  NOTE_CS6, NOTE_DS6, 
//  NOTE_FS6, NOTE_GS6, NOTE_DS6, NOTE_FS6, NOTE_CS6, 
//  NOTE_DS6, NOTE_B0,  NOTE_CS6, NOTE_B0,  NOTE_DS6, NOTE_FS6, 
//  NOTE_GS6, NOTE_DS6, NOTE_FS6, NOTE_CS6, NOTE_DS6, NOTE_B0, 
//  NOTE_D6,  NOTE_DS6, NOTE_D6,  NOTE_CS6, NOTE_B0, 
//  NOTE_CS6, NOTE_D6,  NOTE_B0,  NOTE_CS6, NOTE_DS6, NOTE_FS6, 
//  NOTE_CS6, NOTE_DS6, NOTE_CS6, NOTE_B0,  NOTE_CS7, NOTE_B7, 

//  NOTE_CS7, NOTE_FS6, NOTE_GS6, NOTE_DS6, NOTE_DS6,0,NOTE_B0, 
//  NOTE_D6,  NOTE_CS6, NOTE_B0,0,NOTE_B7,  NOTE_CS7, NOTE_D6, 
//  NOTE_D6,  NOTE_CS6, NOTE_B0,  NOTE_CS6, NOTE_DS6, 
//  NOTE_FS6, NOTE_GS6, NOTE_DS6, NOTE_FS6, NOTE_CS6, 
//  NOTE_DS6, NOTE_B0,  NOTE_CS6, NOTE_B0,  NOTE_DS6, NOTE_FS6, 
//  NOTE_GS6, NOTE_DS6, NOTE_FS6, NOTE_CS6, NOTE_DS6, NOTE_B0, 
//  NOTE_D6,  NOTE_DS6, NOTE_D6,  NOTE_CS6, NOTE_B0, 
//  NOTE_CS6, NOTE_D6,  NOTE_B0,  NOTE_CS6, NOTE_DS6, 
//  NOTE_FS6, NOTE_CS6, NOTE_DS6, NOTE_CS6, NOTE_B0, 

//  NOTE_CS7, NOTE_B7,  NOTE_CS7, NOTE_B7,  NOTE_FS1, 
//  NOTE_GS1, NOTE_B7,  NOTE_FS1, NOTE_GS1, NOTE_B0, 
//  NOTE_CS6, NOTE_DS6, NOTE_B0,  NOTE_E6,  NOTE_DS6, NOTE_E6, 
//  NOTE_FS6, NOTE_B7,  NOTE_B7,  NOTE_FS1, NOTE_GS1, NOTE_B0, NOTE_FS1, 
//  NOTE_E6,  NOTE_DS6, NOTE_CS6, NOTE_B0,  NOTE_FS1, 
//  NOTE_DS1, NOTE_E0,  NOTE_FS1, NOTE_B7,  NOTE_FS1, NOTE_GS1, NOTE_B7, 
//  NOTE_FS1, NOTE_GS1, NOTE_B0,  NOTE_B0,  NOTE_CS6, NOTE_DS6, NOTE_B0, 
//  NOTE_FS1, NOTE_GS1, NOTE_FS1, NOTE_B7,  NOTE_B0,  NOTE_AS1, NOTE_B0, 
//  NOTE_FS1, NOTE_GS1, NOTE_B0,  NOTE_E6,  NOTE_DS6, NOTE_E6, 
//  NOTE_FS6, NOTE_B7,  NOTE_AS1, NOTE_B7,  NOTE_FS1, NOTE_GS1, NOTE_B7, 
//  NOTE_FS1, NOTE_GS1, NOTE_B0,  NOTE_CS6, NOTE_DS6, NOTE_B0, 
//  NOTE_E6,  NOTE_DS6, NOTE_E6,  NOTE_FS6, NOTE_B7,  NOTE_B7, 
//  NOTE_FS1, NOTE_GS1, NOTE_B0,  NOTE_FS1, NOTE_E6,  NOTE_DS6, 
//  NOTE_CS6, NOTE_B0,  NOTE_FS1, NOTE_DS1, NOTE_E0,  NOTE_FS1, NOTE_B7, 
//  NOTE_FS1, NOTE_GS1, NOTE_B7,  NOTE_FS1, NOTE_GS1, NOTE_B0, NOTE_B0, 
//  NOTE_CS6, NOTE_DS6, NOTE_B0,  NOTE_FS1, NOTE_GS1, 
//  NOTE_FS1, NOTE_B7,  NOTE_B0,  NOTE_AS1, NOTE_B0,  NOTE_FS1, 
//  NOTE_GS1, NOTE_B0,  NOTE_E6,  NOTE_DS6, NOTE_E6, 
//  NOTE_FS6, NOTE_B7,  NOTE_CS7, NOTE_DS3, NOTE_E3
}


// note durations: 4 = quarter note, 8 = eighth note, etc.:
int noteDurations[] = {
//needs work
  4, 8, 8, 4, 4, 4, 4, 4
  // 2, 10, 10, 5, 3, 5, 3, 7
};


void nyanclear(){
     Serial.write(12); //ascii form feed a line breaking character doesnt do what I want it to in the arduino terminal, but it may in the linux term
 }
 
void nyan(){
  for (int thisNote = 0; thisNote < 8; thisNote++) {

    // to calculate the note duration, take one second divided by the note type.
    //e.g. quarter note = 1000 / 4, eighth note = 1000/8, etc.

    int noteDuration = 1000*.6 / noteDurations[thisNote];
    tone(8, melody[thisNote], noteDuration);

    // to distinguish the notes, set a minimum time between them.
    // the note's duration + 30% seems to work well:

    int pauseBetweenNotes = noteDuration * 1.40;
    delay(pauseBetweenNotes);

    // stop the tone playing:
    noTone(8);

  }
 
  
  }



void setup() {
Serial.begin(9600);
 // nyanyan(); // :( exceeds memory... 3 frames and all the notes FFS
 //maybe put the lines in an array
 String nyanString= "   o    *              o        +";
      nyanString += "+             o     +       *     \n";
      nyanString += "       +                          \n";
      nyanString += "o  +           +        +         \n";
      nyanString += "     o     o       *        O     \n";
      nyanString += ".~~~.___.~~~ ,-------.   o        \n";
      nyanString += "~~.___.~~~.__|    /\\_/\\           \n";
      nyanString += ".~~~.___.~~~ |___( ^ .^) +     +  \n";
      nyanString += "~~.___.~~~.___/ /  / /`           o\n";
      nyanString += "   o         o   +       o        \n";
      nyanString += "+         *                       \n";
      nyanString += "     o         o      o     +     \n";
      nyanString += "o           +                     \n";
      nyanString += "   +      0        o      *       o\n";
Serial.println(nyanString);

}

void loop() {

  nyan();

  
}