Slide 1Slide 2Slide 3Slide 4Slide 5Slide 6Slide 7Slide 8Slide 9Slide 10Slide 11Slide 12Slide 13Slide 14Slide 15Slide 16My BeatsImplementation and TestingDylan BarrettKaren Tipping, Mike SmithProject OverviewGoal: Dynamically create tracks from mp3 file for Guitar Hero like gameDevelop a set of heuristics to create the best possible tracks for the songsOutput files that are playable on Frets on Fire, an existing Guitar Hero cloneToolsWe will be using:Java SE 6analyzeFrets on FireJUniteclipseProject StructureBroken down into 6 modules:MyBeats (Main module)AnalyzeInteractionTrackGeneratorMidiGeneratorOggGeneratorDataStructuresProject StructureMyBeatsAnalyzeInteraction TrackGenerator MidiGeneratorOggGeneratorDataStructuresMp3OggMidiThe MyBeats ModuleEntry point of applicationParse command line arguments and optionsjava MyBeats -t “My Song” -a “Artist” song.mp3GetOptCoordinates flow among other modulesException handlingMyBeatsAnalyzeInteraction TrackGenerator MidiGeneratorOggGeneratorDataStructuresThe AnalyzeInteraction ModuleUploads mp3 file to analyze serverQueries analyze server for XML fileStores information from XML into Segment data structureMyBeatsAnalyzeInteraction TrackGenerator MidiGeneratorOggGeneratorDataStructuresThe TrackGenerator ModuleLargest part of projectMap Segments to NotesMap Notes to ButtonsConstantly adjusting heuristicsDecide difficulty levelsMyBeatsAnalyzeInteraction TrackGenerator MidiGeneratorOggGeneratorDataStructuresThe MidiGenerator ModuleTakes list of buttons for the song as inputCreates a Midi file formatted to work with Frets on FireThe track for each difficulty level can be included in a single Midi fileSuperEasyEasyMediumHard60 61 62 63 6472 73 74 75 7684 85 86 87 889697 98 99100MyBeatsAnalyzeInteraction TrackGenerator MidiGeneratorOggGeneratorDataStructuresThe OggGenerator ModuleFrets on Fire uses the Ogg file format, rather than mp3, for the background musicNeed to convert the mp3 file to OggCross Platform solution?Separate downloads for each major OSSingle download which adapts to OSMyBeatsAnalyzeInteraction TrackGenerator MidiGeneratorOggGeneratorDataStructuresThe DataStructures ModuleContains data structures used by all other modulesSongInfo classSegment classNote classButton classMyBeatsAnalyzeInteraction TrackGenerator MidiGeneratorOggGeneratorDataStructuresExisting Librariesjavax.sound.midiContains classes that can be used to input, output, and work with midi filesjavax.xmlUseful for parsing xml files obtained from analyzeGetOptMakes parsing options from the command line easy!Unit TestingNeed to test each moduleEach group member will test the other members' codeTry to break the programExample: Command line input in the MyBeats moduleTest each function of each module using JUnitWho Does WhatMyBeats (Main module) --> Dylan and KarenAnalyzeInteraction --> MikeTrackGenerator --> Mike, Dylan, KarenMidiGenerator --> DylanOggGenerator --> KarenDataStructures --> Mike, Dylan, KarenUnit Testing --> Mike, Dylan, KarenLooking ForwardComplete individual modulesWrite unit tests for each modulePrepare for
View Full Document