1 / 16

My Beats

Implementation and Testing Dylan Barrett Karen Tipping, Mike Smith. My Beats. Project Overview. Goal: Dynamically create tracks from mp3 file for Guitar Hero like game Develop a set of heuristics to create the best possible tracks for the songs

Download Presentation

My Beats

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Implementation and Testing Dylan Barrett Karen Tipping, Mike Smith My Beats

  2. Project Overview • Goal: Dynamically create tracks from mp3 file for Guitar Hero like game • Develop a set of heuristics to create the best possible tracks for the songs • Output files that are playable on Frets on Fire, an existing Guitar Hero clone

  3. Tools • We will be using: • Java SE 6 • analyze • Frets on Fire • JUnit • eclipse

  4. Project Structure • Broken down into 6 modules: • MyBeats (Main module)‏ • AnalyzeInteraction • TrackGenerator • MidiGenerator • OggGenerator • DataStructures

  5. Project Structure Midi Mp3 Ogg

  6. The MyBeats Module • Entry point of application • Parse command line arguments and options • java MyBeats -t “My Song” -a “Artist” song.mp3 • GetOpt • Coordinates flow among other modules • Exception handling

  7. The AnalyzeInteraction Module • Uploads mp3 file to analyze server • Queries analyze server for XML file • Stores information from XML into Segment data structure

  8. The TrackGenerator Module • Largest part of project • Map Segments to Notes • Map Notes to Buttons • Constantly adjusting heuristics • Decide difficulty levels

  9. The MidiGenerator Module • Takes list of buttons for the song as input • Creates a Midi file formatted to work with Frets on Fire • The track for each difficulty level can be included in a single Midi file 60 61 62 63 64 SuperEasy Easy Medium Hard 72 73 74 75 76 84 85 86 87 88 96 100 97 98 99

  10. The OggGenerator Module • Frets on Fire uses the Ogg file format, rather than mp3, for the background music • Need to convert the mp3 file to Ogg • Cross Platform solution? • Separate downloads for each major OS • Single download which adapts to OS

  11. The DataStructures Module • Contains data structures used by all other modules • SongInfo class • Segment class • Note class • Button class

  12. Existing Libraries • javax.sound.midi • Contains classes that can be used to input, output, and work with midi files • javax.xml • Useful for parsing xml files obtained from analyze • GetOpt • Makes parsing options from the command line easy!

  13. Unit Testing • Need to test each module • Each group member will test the other members' code • Try to break the program • Example: Command line input in the MyBeats module • Test each function of each module using JUnit

  14. Who Does What • MyBeats (Main module) --> Dylan and Karen • AnalyzeInteraction --> Mike • TrackGenerator --> Mike, Dylan, Karen • MidiGenerator --> Dylan • OggGenerator --> Karen • DataStructures --> Mike, Dylan, Karen • Unit Testing --> Mike, Dylan, Karen

  15. Looking Forward • Complete individual modules • Write unit tests for each module • Prepare for integration

  16. Questions?

More Related