Devry Senior Project

Team Members:

Name Email 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)

Project Requirements

  • Convert an analog audio input into digital sound data
  • Process the digital data for the following:
    • Pitch manipulation
    • Frequency band filtering
    • Noise filtering based on fixed frequencies and applitudes
    • Frequency spectrum analysis
  • Convert digital sound data to analog output
  • Update an LCD display on system status and current settings
  • Allow user input to control the following:
    • Controlling volume
    • Selecting the desired preset audio mangling
    • Turning the device on an off

Project Description:

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.

Picture of the Archos PlayerPicture of the Archos Player

Project Objective:

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.

Final Files

Meeting Agenda

Future meeting dates:

  • 5/15/06 Mon. 6:00pm at DeVry (confirmed)
  • 5/19/06 Fri. 6:00pm at DeVry (tentative - Travis out of town)
  • 5/22/06 Mon. 6:00pm at DeVry (tentative)
  • 5/26/06 Fri. 6:00pm at DeVry (tentative)
  • 6/2/06 Fri. 6:00pm at DeVry (tentative)
  • 6/5/06 Mon. 6:00pm at DeVry (tentative)
  • 6/9/06 Fri. 6:00pm at DeVry (tentative)
  • 6/12/06 Mon. 6:00pm at DeVry (at Travis' house - see top of page for directions)
  • 6/16/06 Fri. 10am - 4pm at DeVry (Senior Project presentation)

Project Status

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

Resources

Documents

Development Resources

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

Final Source Code

Archived Data

1) The dns will be cable.ilive4code.net when I get that fixed later next week
2) I tried to add the file to this wiki, but it's too big
 
/var/www/sites/dokuwiki/data/pages/projects/devry/main.txt · Last modified: 2009/04/11 22:23 (external edit)
 
Except where otherwise noted, content on this wiki is licensed under the following license:CC Attribution-Noncommercial-Share Alike 3.0 Unported
Recent changes RSS feed Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki