my beats
DESCRIPTION
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 - PowerPoint PPT PresentationTRANSCRIPT
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
Project Structure
Broken down into 6 modules: MyBeats (Main module) AnalyzeInteraction TrackGenerator MidiGenerator OggGenerator DataStructures
Project Structure
MyBeats
AnalyzeInteraction TrackGenerator MidiGenerator
OggGenerator
DataStructures
Mp3
Ogg
Midi
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
MyBeats
AnalyzeInteraction TrackGenerator MidiGenerator
OggGenerator
DataStructures
The AnalyzeInteraction Module
Uploads mp3 file to analyze server Queries analyze server for XML file Stores information from XML into Segment data
structure
MyBeats
AnalyzeInteraction TrackGenerator MidiGenerator
OggGenerator
DataStructures
The TrackGenerator Module
Largest part of project Map Segments to Notes Map Notes to Buttons Constantly adjusting heuristics Decide difficulty levels
MyBeats
AnalyzeInteraction TrackGenerator MidiGenerator
OggGenerator
DataStructures
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
60 61 62 63 64
72 73 74 75 76
84 85 86 87 88
96 97 98 99 100
MyBeats
AnalyzeInteraction TrackGenerator MidiGenerator
OggGenerator
DataStructures
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
MyBeats
AnalyzeInteraction TrackGenerator MidiGenerator
OggGenerator
DataStructures
The DataStructures Module
Contains data structures used by all other modules
SongInfo class Segment class Note class Button class
MyBeats
AnalyzeInteraction TrackGenerator MidiGenerator
OggGenerator
DataStructures
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