Presentation on theme: "My Beats Implementation and Testing Dylan Barrett Karen Tipping, Mike Smith."— Presentation transcript:
My Beats Implementation and Testing Dylan Barrett Karen Tipping, Mike Smith
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
Tools We will be using: Java SE 6 analyze Frets on Fire JUnit eclipse
Project Structure Broken down into 6 modules: MyBeats (Main module) AnalyzeInteraction TrackGenerator MidiGenerator OggGenerator DataStructures
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
The AnalyzeInteraction Module Uploads mp3 file to analyze server Queries analyze server for XML file Stores information from XML into Segment data structure
The TrackGenerator Module Largest part of project Map Segments to Notes Map Notes to Buttons Constantly adjusting heuristics Decide difficulty levels
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 SuperEasy Easy Medium Hard 6061626364 7273747576 8485868788 96 979899 100
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
The DataStructures Module Contains data structures used by all other modules SongInfo class Segment class Note class Button class
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!
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
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
Looking Forward Complete individual modules Write unit tests for each module Prepare for integration
Your consent to our cookies if you continue to use this website.