Big Mouth Billy Bass automation library
Diff: config_sample.hpp
- Revision:
- 5:869b3711bdb3
- Child:
- 8:ad0c038ebfc1
--- /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