![](/media/cache/profiles/655ea4bd3b5736d88afc30c9212ccddf.50x50_q85.jpg)
Big Mouth Billy Bass player that takes raw wavefiles and decision list text files from an SD card
Dependencies: SDFileSystem mbed BillyBass
Revision 16:82a1bdc3320f, committed 2013-06-20
- Comitter:
- bikeNomad
- Date:
- Thu Jun 20 15:03:54 2013 +0000
- Parent:
- 15:03105423bc3b
- Commit message:
- Made main loop repeat forever; eliminated time shifting
Changed in this revision
diff -r 03105423bc3b -r 82a1bdc3320f BillyBass.lib --- a/BillyBass.lib Thu Jun 20 04:10:34 2013 +0000 +++ b/BillyBass.lib Thu Jun 20 15:03:54 2013 +0000 @@ -1,1 +1,1 @@ -http://mbed.org/users/bikeNomad/code/BillyBass/#dba9221acf48 +http://mbed.org/users/bikeNomad/code/BillyBass/#ad0c038ebfc1
diff -r 03105423bc3b -r 82a1bdc3320f config.hpp --- a/config.hpp Thu Jun 20 04:10:34 2013 +0000 +++ b/config.hpp Thu Jun 20 15:03:54 2013 +0000 @@ -27,6 +27,10 @@ #define MAX_ACTIONS_PER_SONG MAX_ACTIONS_LINES_PER_SONG*2 #define MAX_TEXT_FILE_LENGTH 2048 +// define this to 1 to make start times earlier and +// enforce minimum on times +#define FIX_TIMES 0 + // Sample configuration typedef int16_t Sample_t; // 16-bit raw, LE samples const float SAMPLE_RATE_HZ = 8000.0; @@ -42,8 +46,10 @@ #define BODY_ON_DELAY 0.65 #define BODY_OFF_DELAY 0.65 + #define TAIL_ON_DELAY 0.40 #define TAIL_OFF_DELAY 0.40 + #define MOUTH_ON_DELAY 0.10 #define MOUTH_OFF_DELAY 0.10 #define MOUTH_MIN_ON_TIME 0.05
diff -r 03105423bc3b -r 82a1bdc3320f main.cpp --- a/main.cpp Thu Jun 20 04:10:34 2013 +0000 +++ b/main.cpp Thu Jun 20 15:03:54 2013 +0000 @@ -68,26 +68,28 @@ fprintf(stderr, "*** REBOOT ***\r\n"); - // read the directory - DIR *bassDir = 0; - while (!bassDir) { - if ((bassDir = opendir(BASS_DIRECTORY)) != 0) - break; - pc.printf("Error opening " BASS_DIRECTORY "\r\n"); - wait(1.0); - } + for (;;) { + // read the directory + DIR *bassDir = 0; + while (!bassDir) { + if ((bassDir = opendir(BASS_DIRECTORY)) != 0) + break; + pc.printf("Error opening " BASS_DIRECTORY "\r\n"); + wait(1.0); + } - while (dirent *d = readdir(bassDir)) { - Song *song = Song::newSong(d->d_name); - if (song) { - fprintf(stderr, "Waiting to play %s\r\n", song->getSampleFileName()); - while (!(!button1 || !button2)) - wait(0.1); - player.playEntireSong(song); - fprintf(stderr, "total length: %f done: %u\r\n", player.timeInSong, player.actionsDone); + while (dirent *d = readdir(bassDir)) { + Song *song = Song::newSong(d->d_name); + if (song) { + fprintf(stderr, "Waiting to play %s\r\n", song->getSampleFileName()); + while (!(!button1 || !button2)) + wait(0.1); + player.playEntireSong(song); + fprintf(stderr, "total length: %f done: %u\r\n", player.timeInSong, player.actionsDone); + } } + closedir(bassDir); + fprintf(stderr, "Done.\r\n"); } - closedir(bassDir); - fprintf(stderr, "Done.\r\n"); }