Dynamically Generated Music Tracks A New Approach to the Modern Guitar Hero.

Post on 17-Dec-2015

215 views 0 download

Tags:

Transcript of Dynamically Generated Music Tracks A New Approach to the Modern Guitar Hero.

Dynamically Generated Music

TracksA New Approach to the Modern Guitar Hero

Our Team

•Michael Smith (myself)

•Dylan Barrett

•Karen Tipping

Currently

•Current play along music games allow:

•Instrumental controllers (guitar, drums)

•Different difficulty levels

•Variety of pre-made songs

Examples

•“Guitar Hero” - Activision

•“Rock Band” - Harmonix

•“Frets of Fire” - Open Source Project

Watch

QuickTime™ and a decompressor

are needed to see this picture.

Music Tracks

•All the current games function the same.

•Tracks pre-coded by hand.

•Can only play songs that have been composed.

•Composed tracks are ‘perfect’.

Downside

•Limited song selection

•Song ownership

Alternative

•Dynamically create music tracks

•For song of players choice

Imagine A New Game

•When a user plays the game:

•Can play any song they own

•At a desired difficulty level

•Can play any instrument in song

•If they have the add-on for it

Instrument Add-On•Each instrument fundamentally

different from others.

•Different handlers for different functionality.

•Similar to device drivers.

•Ex: Guitar add-on lets user play any guitar track found in any song

So....•User will choose a song

•User will choose a difficulty setting

•User will choose an instrument

•Game will generate a track for that song

•For that instrument

•At that difficulty setting

Project Scope•Described game very complex

•Only have a single semester

•Narrow down the focus to create an effective Proof of Concept demonstration

•Take advantage of tools already available to save time

Existing Framework

•Open Source “Frets of Fire”

•Designed for guitar

•Playable track stored as MIDI file

•MIDI file basically a musical XML

Our Goal

•Create a tool that:

•Takes a Guitar only song

•Analyzes the song

•Outputs a playable track

•In Frets of Fire format

•At a selected difficulty setting

Data Gathering

•Need location and values of musical notes

•Similar to creating a music visualization

•Tool called Analyze from The Echo Nest

•Returns XML file with comprehensive data about a submitted song

•the.echonest.com/analyze/

Analyze Demo•Music visualizer created by Anita Lillie

of MIT using this tool shows its power.

QuickTime™ and a decompressor

are needed to see this picture.

Data Recording•Parse the XML to:

•locate notes

•find song structure (solo’s, chorus, etc...)

•Create a Musical Data Structure to record the information

•Linked List

•Node contains Note and Timing

Track Generation•Range of notes need to be

compressed

•Need to fit range of controller

•Ex: Current Guitar games have 5 notes

•Not all notes should be put into track

•Ex: Hendrix vs Average Player

•Variations between difficulty levels

Difficulty Levels•Easy (least note density, more repetitive)

•Find common repeated note structures

•Fewest notes needed for that structure

•Medium

•Greater density, less repetitive notes

•Hard

•Solo’s, high note density, least predictable

•For harder levels, add in more of

How to Decide•Structural analysis on the song

•A Suffix Tree can find common sub-sequences/patterns of notes

•Use a set of Heuristics to make decisions

•Evaluate note density, timing, etc...

•Heuristic values can be adjusted

•Player response = better gameplay

First Stage Tasks•Timeline: 2 - 3 weeks

•Reverse Engineer FoF MIDI file format

•Use javax.sound.midi to create MIDI files

•Simple music clips to understand Analyze

•Create java functions to extract the data

Second Stage Tasks

•Timeline: 3 - 4 weeks

•Define Musical Structure

•Create a set of plausible Heuristics

•Consult with School of Music

Third Stage Tasks

•Timeline: 1 - 2 weeks

•Generate FoF formatted songs

•using all previously created tools

Fourth Stage Tasks

•Timeline: remaining time

•Test code for errors

•Run game to tweak heuristics for better play

Questions?