CF-III Sound System
For my Droid sound, I use a CF-III sound system from ACS. The unit includes a FlashCard sound player, a good audio amplifier, and fully featured BASIC programming environment. The updated CF-IV version is shown below. It is quite expensive but was the best option at the time. I now recommend the much less expensive MP3 Trigger system. The CF-III advantage is that it can be run with a 12 channel remote without any need for a microcontroller system, and has an integrated amplifier.
I added an optional 8 contact sensing board so I could remote control it from a simple 12-channel remote. I later programmed the unit so I could also control it from the RS232 input via my iPhone App and MarcDuino boards. It makes the contact board unnecessary, but it's a nice addition and I kept the simple 12 channel remote functionality in place, just in case.
I arranged the sound files in categories or "banks" of sound, following an idea I first saw presented by Chris James (see his video here). This makes it very easy to put some order in my large sound collection and call the right sound for the right mood. Then I added the CFSOUND.BAS program file below to make it respond to both the contact boards and my R2 Touch iPhone App commands. You will need this program or another sound device that is programmed to respond to the same commands to use my iPhone App as is. Alternately, you could customize R2 Touch app to send other messages that your system will understand.
Flash Card Image
I provide a pre-made flash card image that contains both the program and default sounds. It will work with R2 Touch out of the box. Just download the file and copy to your memory card, you should be good to go
Details and Customization
Sound files organization
The sound files on the memory card are organized in 9 banks, using a simple file naming convention. Note that a sound is accessed programmatically by its bank number and its number, not directly by its file name. You don't need to program anything if you are using the R2 Touch application and the MarcDuino boards, they send all the serial commands for you.
Customizing your sound files
A complete Memory Card image for the CF-III is available for download here. Instructions to create your own customized version are also provided below.
Follow these steps to create a custom CF memory card image:
1- make sure all your sounds are in .wav format (stereo or mono), 44 kHz sampling rate, and equalized in volume
2- rename the sounds files according to the naming convention above (e.g. chat-1.wav, chat-2.wav...), and copy them to the card.
3- add a startup sound as start.wav
4- download the CFSOUND.BAS basic program.
5- Before you copy it on your CF memory card, change the values of the variables Nx (lines 110 to 540) to match the numbers of sounds you have in each banks.
For example, if you have only 5 generic sounds, change line 130 to read:
6- Copy your modified CFSOUND.BAS file on the card
7- Insert the card in the sound system, the startup sound should come up, you are good to go.
8- You can play the sounds either via the contact inputs or by sending commands through serial interface as described below.
Controlling sound via the switch sensing inputs
It is straightforward to control the sound via a 12-channel remote using the provided program.
Switch inputs 1-9 will play the next sound in their respective banks.
Switch input 10 will start a random sequence of sounds (use switches 1 to 9 to stop the random sequence)
I wired outputs 11 and 12 of the 12-channel remote to the volume control inputs.
Sound Command format
The program respond to commands sent via the RS232 port at 9600 bauds. Commands must start with $ and finish with a Carriage Return character:
A description of the commands is provided below. This command set is used by my R2Touch App and the MarcDuino boards. Any sound system that implements the same command will work too.
Sound Commands Reference
If x is between 1 and 4:
Play next sound from bank x
If x is between 5 and 9:
Play first sound from bank x. Bank 9 not implemented on MP3Trigger platforms.
Play sound y or yy from bank x (x from 1 to 9, y from 1 to 9, yy from 10 to 99). MP3Trigger platform implements sounds only up to yy=25.
Start playing sounds randomly chosen from banks 1 to 5, at random intervals
(no sounds from banks 6-9 will be played in random mode)
(capital letter O) Random Off
Stop any current playing sound, and cancel random mode.
Some particular sounds have been given their own command for convenience, they point to specific files in the default image provided below, you can change their assignment by editing the code:
Scream (bank 6 sound 1)
Faint/short circuit (bank 6 sound 3)
Leia message (bank 7 sound 1)
Short Cantina music (bank 8 sound 1)
Star Wars (bank 8 sound 2)
Imperial March (bank 8 sound 3)
Long Cantina music (bank 8 sound 5)
Disco Star Wars music (bank 8 sound 6)
Nov 2013 update: backwards compatibility with the new R2 Touch v1.2
Version 1.2 and above of R2 Touch support the MP3Trigger sound system. In order to support both CF-III and the MP3Trigger with the same app, a few changes have been made on the CF-III program and the sound organization.
If you update to R2 Touch v1.2, you also need to update your .bas file to the new version 1.9 provided at the bottom of this page, and your MarcDuino firmware to version 1.6.
The music sounds have been moved from Bank 9 to Bank 8. You do not need to change the naming of the music files, but you need to edit the number of files in bank 8 to reflect the number of music files instead of the number of the sing files.
The sing file category is no more, and replaced with the user file category. The "user" bank is not accessible via R2 Touch, but is accessible via the CF-III switches. I have moved my own sing- files to mus- files. If you want to use the user bank, name the files user-xxx.wav.
You'll need to go to the wrench menu and click "Reset to Defaults" for the music sounds to work properly. If you had made custom changes to the sound settings in R2 Touch, you will have to re-enter them.