A simple library for playing notes

Dependents:   DCGame el14m2l_Dungeon_Crawler_Game

Committer:
Martyrtle
Date:
Thu May 05 14:27:18 2016 +0000
Revision:
0:446604264b9e
Done

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Martyrtle 0:446604264b9e 1 /**
Martyrtle 0:446604264b9e 2 @file music.cpp
Martyrtle 0:446604264b9e 3
Martyrtle 0:446604264b9e 4 @brief Member functions implementations
Martyrtle 0:446604264b9e 5
Martyrtle 0:446604264b9e 6 */
Martyrtle 0:446604264b9e 7
Martyrtle 0:446604264b9e 8 #include "music.h"
Martyrtle 0:446604264b9e 9
Martyrtle 0:446604264b9e 10 void speaker::tone(float frequency,float duration)
Martyrtle 0:446604264b9e 11 {
Martyrtle 0:446604264b9e 12 if (frequency > 0) {
Martyrtle 0:446604264b9e 13 float dt = 1.0f/(frequency*n) - (1.34e-6 + 1e-6);
Martyrtle 0:446604264b9e 14 note_timer.start();
Martyrtle 0:446604264b9e 15 while(note_timer.read() < duration) {
Martyrtle 0:446604264b9e 16 for (int i = 0; i < n ; i++) {
Martyrtle 0:446604264b9e 17 *Speaker = y[i];
Martyrtle 0:446604264b9e 18 wait(dt);
Martyrtle 0:446604264b9e 19 }
Martyrtle 0:446604264b9e 20 }
Martyrtle 0:446604264b9e 21 *Speaker = 0.0f;
Martyrtle 0:446604264b9e 22 note_timer.stop();
Martyrtle 0:446604264b9e 23 note_timer.reset();
Martyrtle 0:446604264b9e 24 } else {
Martyrtle 0:446604264b9e 25 wait(duration);
Martyrtle 0:446604264b9e 26 }
Martyrtle 0:446604264b9e 27 wait(duration);
Martyrtle 0:446604264b9e 28 }