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.
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