Big Mouth Billy Bass automation library
config_sample.hpp@5:869b3711bdb3, 2013-06-19 (annotated)
- Committer:
- bikeNomad
- Date:
- Wed Jun 19 16:12:11 2013 +0000
- Revision:
- 5:869b3711bdb3
- Child:
- 8:ad0c038ebfc1
added second bass; moved config
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
bikeNomad | 5:869b3711bdb3 | 1 | // COPY THIS FILE AS config.hpp and edit as needed |
bikeNomad | 5:869b3711bdb3 | 2 | #ifndef __included_config_hpp |
bikeNomad | 5:869b3711bdb3 | 3 | #define __included_config_hpp |
bikeNomad | 5:869b3711bdb3 | 4 | |
bikeNomad | 5:869b3711bdb3 | 5 | // configuration for Billy Bass |
bikeNomad | 5:869b3711bdb3 | 6 | #define MAX_FISH 2 |
bikeNomad | 5:869b3711bdb3 | 7 | |
bikeNomad | 5:869b3711bdb3 | 8 | // SD card layout: all files in BASS_DIRECTORY ("/sd/SD_Files/") |
bikeNomad | 5:869b3711bdb3 | 9 | // |
bikeNomad | 5:869b3711bdb3 | 10 | // Each pair of files in that directory are named like: |
bikeNomad | 5:869b3711bdb3 | 11 | // "<seqnum>_<fishnum>_filename.raw" (16-bit mono raw little-endian samples, sample rate=SAMPLE_RATE_HZ) |
bikeNomad | 5:869b3711bdb3 | 12 | // and |
bikeNomad | 5:869b3711bdb3 | 13 | // "<seqnum>_<fishnum>_filename.txt" (tab-separated text file with starttime,endtime,<mouth|head|body|tail> |
bikeNomad | 5:869b3711bdb3 | 14 | // text files are as exported from Audacity's label tracks |
bikeNomad | 5:869b3711bdb3 | 15 | // |
bikeNomad | 5:869b3711bdb3 | 16 | #define SD_NAME "sd" |
bikeNomad | 5:869b3711bdb3 | 17 | #define SD_ROOT "/" SD_NAME |
bikeNomad | 5:869b3711bdb3 | 18 | #define BASS_DIRECTORY SD_ROOT "/SD_Files" |
bikeNomad | 5:869b3711bdb3 | 19 | // length of BASS_DIRECTORY without NUL |
bikeNomad | 5:869b3711bdb3 | 20 | #define BASS_DIRECTORY_LENGTH 12 |
bikeNomad | 5:869b3711bdb3 | 21 | #define MAX_BASENAME_LENGTH 30 |
bikeNomad | 5:869b3711bdb3 | 22 | #define MAX_PATH_LEN \ |
bikeNomad | 5:869b3711bdb3 | 23 | BASS_DIRECTORY_LENGTH + 1 \ |
bikeNomad | 5:869b3711bdb3 | 24 | + MAX_BASENAME_LENGTH + 1 |
bikeNomad | 5:869b3711bdb3 | 25 | |
bikeNomad | 5:869b3711bdb3 | 26 | // limits of .txt files |
bikeNomad | 5:869b3711bdb3 | 27 | #define MAX_ACTIONS_LINES_PER_SONG 60 |
bikeNomad | 5:869b3711bdb3 | 28 | #define MAX_ACTIONS_PER_SONG MAX_ACTIONS_LINES_PER_SONG*2 |
bikeNomad | 5:869b3711bdb3 | 29 | #define MAX_TEXT_FILE_LENGTH 2048 |
bikeNomad | 5:869b3711bdb3 | 30 | |
bikeNomad | 5:869b3711bdb3 | 31 | // Sample configuration |
bikeNomad | 5:869b3711bdb3 | 32 | typedef int16_t Sample_t; // 16-bit raw, LE samples |
bikeNomad | 5:869b3711bdb3 | 33 | const float SAMPLE_RATE_HZ = 8000.0; |
bikeNomad | 5:869b3711bdb3 | 34 | const unsigned SAMPLE_PERIOD_USEC = (unsigned)(1.0e6/SAMPLE_RATE_HZ); |
bikeNomad | 5:869b3711bdb3 | 35 | |
bikeNomad | 5:869b3711bdb3 | 36 | // Player configuration |
bikeNomad | 5:869b3711bdb3 | 37 | const size_t BUFFER_SIZE = 512; |
bikeNomad | 5:869b3711bdb3 | 38 | const size_t SAMPLES_PER_BUFFER = BUFFER_SIZE / sizeof(Sample_t); |
bikeNomad | 5:869b3711bdb3 | 39 | const float SECONDS_PER_CHUNK = SAMPLES_PER_BUFFER / SAMPLE_RATE_HZ; |
bikeNomad | 5:869b3711bdb3 | 40 | |
bikeNomad | 5:869b3711bdb3 | 41 | #define SERIAL_BAUD 115200 |
bikeNomad | 5:869b3711bdb3 | 42 | #define ANALOG_OUTPUT_BIAS 0x8000 |
bikeNomad | 5:869b3711bdb3 | 43 | |
bikeNomad | 5:869b3711bdb3 | 44 | |
bikeNomad | 5:869b3711bdb3 | 45 | // Power: |
bikeNomad | 5:869b3711bdb3 | 46 | // Power GND J9/14 |
bikeNomad | 5:869b3711bdb3 | 47 | // Vin (6V) J9/16 |
bikeNomad | 5:869b3711bdb3 | 48 | |
bikeNomad | 5:869b3711bdb3 | 49 | // I/O configuration |
bikeNomad | 5:869b3711bdb3 | 50 | #define BASS1_TAIL PTB0 /* J10/2 */ |
bikeNomad | 5:869b3711bdb3 | 51 | #define BASS1_MOUTH PTB1 /* J10/4 */ |
bikeNomad | 5:869b3711bdb3 | 52 | #define BASS1_BODY PTB2 /* J10/6 */ |
bikeNomad | 5:869b3711bdb3 | 53 | #define BASS1_BUTTON PTD5 /* J2/4 */ |
bikeNomad | 5:869b3711bdb3 | 54 | |
bikeNomad | 5:869b3711bdb3 | 55 | #define BASS2_TAIL PTB3 /* J10/8 */ |
bikeNomad | 5:869b3711bdb3 | 56 | #define BASS2_MOUTH PTC2 /* J10/10 */ |
bikeNomad | 5:869b3711bdb3 | 57 | #define BASS2_BODY PTC1 /* J10/12 */ |
bikeNomad | 5:869b3711bdb3 | 58 | #define BASS2_BUTTON PTA13 /* J3/2 */ |
bikeNomad | 5:869b3711bdb3 | 59 | |
bikeNomad | 5:869b3711bdb3 | 60 | // SD Card (3.3V) |
bikeNomad | 5:869b3711bdb3 | 61 | // PTD0 J2/6 D10 - Used for CS of SPI |
bikeNomad | 5:869b3711bdb3 | 62 | // PTD2 J2/8 D11 - Used for MOSI of SPI |
bikeNomad | 5:869b3711bdb3 | 63 | // PTD3 J2/10 D12 - Used for MISO of SPI |
bikeNomad | 5:869b3711bdb3 | 64 | // PTC5 J1/9 Used for SCLK of SPI (must solder if using shield) |
bikeNomad | 5:869b3711bdb3 | 65 | #define SD_MOSI PTD2 |
bikeNomad | 5:869b3711bdb3 | 66 | #define SD_MISO PTD3 |
bikeNomad | 5:869b3711bdb3 | 67 | #define SD_SCLK PTC5 |
bikeNomad | 5:869b3711bdb3 | 68 | #define SD_CS PTD0 |
bikeNomad | 5:869b3711bdb3 | 69 | |
bikeNomad | 5:869b3711bdb3 | 70 | #endif |