#include #include #include "player.h" #include "accelerometer.h" #include #define PIN 0 //Realer pin 11 int setupSoftTone(void) { int returncode = 0; returncode += wiringPiSetup(); //Braucht root Rechte returncode += softToneCreate(PIN); setupAccelerometer(); return returncode; // >0 --> error } void play(int *notes, int *durations, int songlength) { int nDuration, pauseBetweenNotes, thisNote; for (thisNote = 0; thisNote < songlength; thisNote++) { /** * Um die Zeit der Note zu berechnen muss eine Sekunde durch * die Laenge der Note geteilt werden. */ nDuration = 1000 / *(durations + thisNote); softToneWrite(PIN, *(notes + thisNote)); delay(nDuration); softToneWrite(PIN, 0); /** * Um die Noten voneinander zu unterscheiden, * sollte eine Pause dazwischen sein. * Diese wird später mit dem Beschleunigungssensor * gesteuert. Vorerst sind es aber 30% */ //pauseBetweenNotes = nDuration * 1.30; pauseBetweenNotes = nDuration * 1.30 - (getAccelData() * 38.0); delay(pauseBetweenNotes); // Sicherheitshalber Ton ausschalten softToneWrite(PIN, 0); } }