my beats

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

Upload: hiram-hurley

Post on 01-Jan-2016

20 views

Category:

Documents


1 download

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 Presentation

TRANSCRIPT

My Beats

Implementation and TestingDylan 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

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

Questions?