WaveHC is a library for the Adafruit Wave Shield. For the AtMega168 be sure to reduce the serial buffer size by setting RX_BUFFER_SIZE to 32 or less in hardware/cores/arduino/HardwareSerial.cpp. I use 16. To use this library place the uncompressed WaveHC folder into the libraries subfolder in your main sketches folder. You may need to create the libraries folder. Restart the Arduino IDE if it was open. Be sure to read Ladyada's excellent tutorial for WaveHC: http://www.ladyada.net/make/waveshield/libraryhc.html Developers and advanced Arduino users may wish to read the html documentation starting with html/index.html. Please read the changes.txt file. Try daphc.pde in the examples folder. If you have problems run the SdReadTest.pde sketch to get more information. WAVE SHIELD V1.0 You may have SD I/O errors with Wave Shield V1.0. Most SD cards work with V1.0 but some brands/types fail. Often reducing the SPI bus speed to 4 Mhz helps. You can do this by changing the 'card.init()' statement in a sketch to 'card.init(true)'. 'true' means initialize the card at a slower speed. The default speed for card.init can be changed to 4 Mhz by changing the following line in the WaveHC file SdReader.h from #define SD_INIT_DEFAULT false to #define SD_INIT_DEFAULT true PREPARING SD CARDS WaveHC supports FAT16/FAT32 formats on SD/SDHC cards. WaveHC only supports short 8.3 DOS style file names. WaveHC is optimized to play contiguous files. It will play 16-bit 44.1 K files if they are contiguous. All files copied to a newly formatted card will be contiguous. It is only possible to create a fragmented file if you delete a file from an SD and copy a another file to the SD. You should use a freshly formatted SD card for best performance. FAT file systems become slower if many files have been created and deleted. As files become fragmented reads are slower because the overhead to read the file allocation table increases. Also the time to open a file increases. This is because the directory entry for a deleted file is marked as deleted, but is not deleted. When a file is opened, these entries must be scanned to find the file to be opened, a flaw in the FAT design. The best way to format an SD card is to use SDFormatter which can be downloaded from: http://www.sdcard.org/consumers/formatter/ SDFormatter aligns flash boundaries with file system structures which reduces latency and file system overhead. SDFormatter does not have an option for FAT type so it may format small cards as FAT12. EXAMPLES I have included several updates examples for WaveHC in the examples folder. More examples can be downloaded from the Adafruit website: http://www.ladyada.net/make/waveshield/examples.html The updated examples are: daphc.pde - plays all .WAV files on an SD. PiSpeaker.pde - A text-to-voice sketch that reads pi. You need to put the files from the piwav folder in example files on an SD. SampleRateHC.pde - A modified version of the Adafruit example that sets player sample rate by reading analog pin zero. SoftVolume.pde - A modified version of the Adafruit example for software volume control. openByIndex.pde - Shows how to reduce latency between files for applications that must not have a large latency between files. CUSTOM SETTINGS Advanced users may wish to change WaveHC settings. Most setting are defines in these files: WaveHC.h - Buffer size, contiguous file optimization, enable software volume, and error control. WavePinDefs.h - Change default pin definitions. Save pin 5. SdReader.h - Change default SPI bus speed.