Big Mouth Billy Bass automation library

Dependents:   BillyBass_with_SD

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?

UserRevisionLine numberNew 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