const int crotchet = 100 ; 
const int minim = 2*crotchet ; 
const int semiBreve = 4 * crotchet ;
const int quaver = crotchet / 2 ; 
const int semiQuaver = crotchet / 4 ; 
const int demiSemiQuaver = crotchet / 8 ; 
const int crotchetWithPoint = crotchet+quaver ; 
const int minimWithPoint = minim+ crotchet ; 
const int crotchetSilence = crotchet ; 
const int minimSilence = minim ; 
const int semiBreveSilence = semiBreve;
const int quaverSilence = quaver;
const int semiQuaverSilence = semiQuaver ; 
const long DO = 523.25 ; 
const long RE = 587.33 ; 
const long MI = 659.26 ;
const long FA = 698.46 ; 
const long SOL = 391.995 ; 
const long LA = 440.00 ; 
const long SI = 493.88 ; 
const long PAU = 30000 ; 
const long speakerOut = 8 ; 
const long nextNote = 200 ; 
const int nextBlock = 300 ; 
const int elements = 34 ; 

void setup() { 
  pinMode(speakerOut, OUTPUT) ; }
void loop() {
  int melody[] = {SI,SI,DO,RE,RE,DO,SI,LA,SOL,SOL,LA,SI,SI,LA,LA,SI,SI,DO,RE,RE,DO,SI,LA,SOL,SOL,LA,SI,LA,SOL,SOL } ; 
  int duration[] = { crotchetWithPoint, nextNote, quaver, crotchet, nextNote, crotchet, nextBlock, crotchet } ; 
for (int note = 0 ; note < elements  ; note++) { 
  tone(speakerOut, melody[note] ) ; 
  delay(duration[note] ) ; 
  noTone(speakerOut) ; }}