Big Mouth Billy Bass automation library
Revision 5:869b3711bdb3, committed 2013-06-19
- Comitter:
- bikeNomad
- Date:
- Wed Jun 19 16:12:11 2013 +0000
- Parent:
- 4:f009306756b3
- Child:
- 6:ea8136eb6976
- Commit message:
- added second bass; moved config
Changed in this revision
--- a/config.hpp Tue Jun 18 14:10:34 2013 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,41 +0,0 @@ -#ifndef __included_config_hpp -#define __included_config_hpp - -// configuration for Billy Bass -#define MAX_FISH 2 - -// SD card layout: all files in BASS_DIRECTORY ("/sd/SD_Files/") -// -// Each pair of files in that directory are named like: -// "<seqnum>_<fishnum>_filename.raw" (16-bit mono raw little-endian samples, sample rate=SAMPLE_RATE_HZ) -// and -// "<seqnum>_<fishnum>_filename.txt" (tab-separated text file with starttime,endtime,<mouth|head|body|tail> -// text files are as exported from Audacity's label tracks -// -#define SD_NAME "sd" -#define SD_ROOT "/" SD_NAME -#define BASS_DIRECTORY SD_ROOT "/SD_Files" -// length of BASS_DIRECTORY without NUL -#define BASS_DIRECTORY_LENGTH 12 -#define MAX_BASENAME_LENGTH 30 -#define MAX_PATH_LEN \ - BASS_DIRECTORY_LENGTH + 1 \ - + MAX_BASENAME_LENGTH + 1 - -#define MAX_ACTIONS_LINES_PER_SONG 60 -#define MAX_ACTIONS_PER_SONG MAX_ACTIONS_LINES_PER_SONG*2 - -// Sample configuration -typedef int16_t Sample_t; // 16-bit raw, LE samples -const float SAMPLE_RATE_HZ = 8000.0; -const unsigned SAMPLE_PERIOD_USEC = (unsigned)(1.0e6/SAMPLE_RATE_HZ); - -// Player configuration -const size_t BUFFER_SIZE = 512; -const size_t SAMPLES_PER_BUFFER = BUFFER_SIZE / sizeof(Sample_t); -const float SECONDS_PER_CHUNK = SAMPLES_PER_BUFFER / SAMPLE_RATE_HZ; - -#define SERIAL_BAUD 115200 -#define ANALOG_OUTPUT_BIAS 0x8000 - -#endif
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/config_sample.hpp Wed Jun 19 16:12:11 2013 +0000 @@ -0,0 +1,70 @@ +// COPY THIS FILE AS config.hpp and edit as needed +#ifndef __included_config_hpp +#define __included_config_hpp + +// configuration for Billy Bass +#define MAX_FISH 2 + +// SD card layout: all files in BASS_DIRECTORY ("/sd/SD_Files/") +// +// Each pair of files in that directory are named like: +// "<seqnum>_<fishnum>_filename.raw" (16-bit mono raw little-endian samples, sample rate=SAMPLE_RATE_HZ) +// and +// "<seqnum>_<fishnum>_filename.txt" (tab-separated text file with starttime,endtime,<mouth|head|body|tail> +// text files are as exported from Audacity's label tracks +// +#define SD_NAME "sd" +#define SD_ROOT "/" SD_NAME +#define BASS_DIRECTORY SD_ROOT "/SD_Files" +// length of BASS_DIRECTORY without NUL +#define BASS_DIRECTORY_LENGTH 12 +#define MAX_BASENAME_LENGTH 30 +#define MAX_PATH_LEN \ + BASS_DIRECTORY_LENGTH + 1 \ + + MAX_BASENAME_LENGTH + 1 + +// limits of .txt files +#define MAX_ACTIONS_LINES_PER_SONG 60 +#define MAX_ACTIONS_PER_SONG MAX_ACTIONS_LINES_PER_SONG*2 +#define MAX_TEXT_FILE_LENGTH 2048 + +// Sample configuration +typedef int16_t Sample_t; // 16-bit raw, LE samples +const float SAMPLE_RATE_HZ = 8000.0; +const unsigned SAMPLE_PERIOD_USEC = (unsigned)(1.0e6/SAMPLE_RATE_HZ); + +// Player configuration +const size_t BUFFER_SIZE = 512; +const size_t SAMPLES_PER_BUFFER = BUFFER_SIZE / sizeof(Sample_t); +const float SECONDS_PER_CHUNK = SAMPLES_PER_BUFFER / SAMPLE_RATE_HZ; + +#define SERIAL_BAUD 115200 +#define ANALOG_OUTPUT_BIAS 0x8000 + + +// Power: +// Power GND J9/14 +// Vin (6V) J9/16 + +// I/O configuration +#define BASS1_TAIL PTB0 /* J10/2 */ +#define BASS1_MOUTH PTB1 /* J10/4 */ +#define BASS1_BODY PTB2 /* J10/6 */ +#define BASS1_BUTTON PTD5 /* J2/4 */ + +#define BASS2_TAIL PTB3 /* J10/8 */ +#define BASS2_MOUTH PTC2 /* J10/10 */ +#define BASS2_BODY PTC1 /* J10/12 */ +#define BASS2_BUTTON PTA13 /* J3/2 */ + +// SD Card (3.3V) +// PTD0 J2/6 D10 - Used for CS of SPI +// PTD2 J2/8 D11 - Used for MOSI of SPI +// PTD3 J2/10 D12 - Used for MISO of SPI +// PTC5 J1/9 Used for SCLK of SPI (must solder if using shield) +#define SD_MOSI PTD2 +#define SD_MISO PTD3 +#define SD_SCLK PTC5 +#define SD_CS PTD0 + +#endif
--- a/song.cpp Tue Jun 18 14:10:34 2013 +0000 +++ b/song.cpp Wed Jun 19 16:12:11 2013 +0000 @@ -100,7 +100,7 @@ } // read actions from file - static char textFileBuffer[ 2048 ]; + static char textFileBuffer[ MAX_TEXT_FILE_LENGTH ]; memset(textFileBuffer, 0, sizeof(textFileBuffer)); int nread = fread(textFileBuffer, 1, sizeof(textFileBuffer), txtfile); // fprintf(stderr, "Read %d bytes\r\n", nread);