Team Members:
| Name | Role | |
|---|---|---|
| Jeremy Adams | cavemanf16@gmail.com | Project Lead |
| Travis Sidelinger | travis@ilive4code.net | Lead Programmer |
| Christian Mengue | jczomo@yahoo.com | Lover Boy |
| David Blosser | db44550@devrycols.edu | The Highwayman |
Group Email: devry_project@ilive4code.net
Title: DEVMS (Darth Elvis Voice Mangling System)
The project will result in creating a modified MP3 player that will be capable of taking voice audio input and produce a modified audio output. A cheap commodity MP3 player will provide the basic hardware for which the project will be built upon. The MP3 provides the perfect platform as it includes both the digital to audio converter (DAC) and the audio to digital converter (ADC) required for this project. MP3 players also include a full microprocessor, flash memory, and RAM for which can be used to run our sound processing software. On the MP3 player we will develop customer a software application implemented with Octave. This software will allow for the manipulation of digital audio. The user will be able to perform high, low, and bandpass filtering of the audio signal's characteristics through the manipulation of an equalizer created in software. These manipulations will occur in real-time.
The objective of this project is to modify existing computer hardware and software components into a functional audio manipulation device that operates in a real-time, or near real-time mode. This document will serve as the guide for both functional and technical requirements of this project, and will be used by the project team members to develop the software and hardware needed to complete this project.
The Scope of this project is to take an inexpensive commodity mp3 player and covert is into a custom voice mangling device. The propriety firmware on the mp3 player will be replaced with an open source operating system. The operating system will be stripped of unneeded components and replaced with our own custom software. The device will take an analog audio signal as input, convert it into digital data, mathematically process the sound in real time to create the desired modification, and then convert the digital data to an analog signal for output. The device will update an LCD with status information and allow the user to control the device through several buttons.
The software components for this system can be broken down into ADC/DAC device drivers, user interface, sound processing, configuration management, and some miscellaneous glue code. At the driver level we will need to produce an audio cancellation so that the input audio is cancelled before it can be heard. The user interface components will entail displaying elements on an LCD screen and responding to button presses. The sound processing will entail writing C functions using Octave to process digitized audio data. The configuration components will entail writing functions to get and set internal configuration information while the system is running. Last, some miscellaneous code will be needed to bring all the components together.
The performance of the entire system must be such that the sound input and output appears to be occurring in real-time. It is possible that this will require some additional hardware and software modifications to phase shift the input analog sound and then output the phase shifted analog input as “white noise” in order to mask the user's voice. While this is occurring, the device can spend a minimal amount of time processing the input audio, make the necessary manipulations to the input sound, and then output the final manipulated audio.
Future meeting dates:
| Task | Status | Milestone | Details |
|---|---|---|---|
| Setup repository | Done | ||
| Build rockrox | Done | The code builds under cygwin | |
| Build simulator | Done | Built, need to figure out how to use it. | |
| Rockbox architecture | Done | I | Dissect Rockbox Removed unneded plugins Figued out how to add new menu items Create a new recording app |
| Octave program | Skipping | II | Write c code to perform desired auto manipulations |
| Octave under rockbox | Not feaseable | III | Strip un-needed code compile for sh1 get running under rockbox |
| Basic I/O | Skipping | IV | Rockbox uses the hardwares DSP to perform most of the work. We figured out how to control some of the hardware |
| Graphics and controls | Done | V | Write basic program to operate rockbox controls and change graphics |
| Design architecture | Done | VI | Once we have a good idea on how everything works, then we need to design the layout of our program (functions, shared variables, shared configuration, data flow, event flow) |
| Write final code | Done | VII | |
| Debug and test final code | Done | VIII | Test: waveforms, interface, exit and restart, performance, sound input/output |
| Development Server | https://65.25.157.250:11443/devry 1) |
|---|---|
| Version Control Tools | vervsioncontrol |
| Cygwin Installation files | 2) Files - cygwin_custom-1.1.zip ~188MB |
| Trac - Project Tracking System | https://65.25.157.250:11443/trac/cgi-bin/trac.cgi |
| Development Notes: | Development Notes |
| Repository File Structure: | See devel notes |
| Simulator Notes: | simulator |
| PCM (Wav file) Structure Notes: | PCM Structure |
| Test Plan | DEVMS_Test_Plan |