Skip to content

tgmeow/guitar-hero-visualization

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

18 Commits
 
 
 
 
 
 

Repository files navigation

guitar-hero-visualization

Visualizes the Guitar Hero Project from Vanderbilt's Data Structures class. Although this project uses a similar object model, it is in a different language and uses different data structures for better flexibility.

image

Summary

This application (currently) lets the user pluck strings, view the data in those strings live, and listen to the result of the plucks. The strings may be paused at any time to let the user see the state of the strings. The strings can also be ticed for one cycle to help understand the results of the Karplus-Strong algorithm on the ring buffer.

Current keyboard shortcuts

Key Action
qwertyuiop[]\ Pluck strings [0...12]
a Pluck ALL strings
z Play a simple chord
SPACE Pause tics and events
ESC Exit program

Current Limitations

Potential Optimizations

  • Only draw the points of the string for X seconds/frames after they are plucked, otherwise just draw a horizontal line Implemented in v1.1.0 in 0b99e1f
  • Use higher frequencies since high frequencies have shorter ring buffers [Optional now, since we have enough fps]
  • Make audio output asynchronous and not frame dependent (??)
    Implemented with threading fac7d2e

Future Features

  • Play music from text files
    Implemented in v1.0.0 fdc6e96
  • Customize keybindings
  • Customize number of strings, frequencies, spacing, which strings to visualize
  • Toast text to help the user know what is going on
  • Automated tutorial for people trying to understand how the Guitar Hero project works

Releases

  • v1.1.1 Reduced idle cpu usage by reducing frame rate
  • v1.1.0 Reduced idle string performance, improved threading
  • v1.0.0 Big fps and audio improvements. Added read song from file. Load song with the button in the menu.
  • v0.1.0 Core string pluck functionality via keyboard shortcuts