Problem Statement/Specification:
GOAL: The goal of this project is to produce a digital music player in which playback speed is controlled by the user via a record player’s turntable, allowing them to “scratch” the music file much like one would with a vinyl record.
COMPONENTS: The project will be constructed from a small set of components, including a microcontroller, and SPI programmable flash memory, a Digital-Analog converter, and a turntable interface along with its associated sensor.
INPUTS: Inputs for the project include a digital audio file, most likely an uncompressed .WAV sample and the observed linear speed and direction determined from the record’s rotation which will be used to control the playback of the sound file. The formula for the speed, assuming a turntable speed of 33 1/3 RPM and x equally spaced sensors, should look something as follows:
The 1.8 second interval is one rotation of the record
OUTPUTS: The ultimate output for the project is the actual sound produced by the system with its speed controlled by the turntable.
USER SCENARIO: A user will first load a digital sample onto the device, initiate playback, and then during playback will manipulate the turntable so as to adjust the speed of the sample’s playback
EVALUATION CRITERIA: The finished project should reliably play a sound file, and should have no noticeable delay between the user’s manipulation of the turntable and the resultant speed-modified playback of the file.
Standards:
Standards Used (tentative):
· Microsoft .WAV format, uncompressed, ideally with variable sound file properties (Bit rate, stereo/mono, etc.). Using an uncompressed sound file will prevent the device from having to perform any decompression. This is done in favor of simplicity, although a similar commercial product would most likely be required to handle compressed digital music files (.mp3, .m4a, .wma, etc.)
· SPI (Serial Programmable Interface) for file transfer, this is supported directly by our chosen microcontroller, the AVR Butterfly (with ATMEGA169P processor), and was chosen to avoid any other complications with programming a flash memory
· C programming, used in AVR studio, is the only object-oriented programming language supported by the studio program, and is familiar to both group members.
· Turntable speed will most likely be standardized at 33 1/3 RPM, the standard speed for a 12 inch vinyl LP.
- Compressed sound files, such as .mp3 were considered as they require a much smaller amount of memory, but the additional cost of either utilizing an external MP3 decoder or programming one was deemed to be outside of the scope of this project
- SD cards for flash memory have also been considered, but interfacing these with the microcontroller may prove difficult. The obvious advantage to using an SD card would be the large amount of memory they provide at a relatively low cost.