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.
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.
Key | Action |
---|---|
qwertyuiop[]\ | Pluck strings [0...12] |
a | Pluck ALL strings |
z | Play a simple chord |
SPACE | Pause tics and events |
ESC | Exit program |
The visualization gets laggy if there are too many strings (currently 13 for 1 whole octave)
Fixed by switching to P2D fac7d2eThe sound output is frame rate dependent since the call to audio and tic is called each draw cycle
Fixed with threading fac7d2e
Only draw the points of the string for X seconds/frames after they are plucked, otherwise just draw a horizontal lineImplemented 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
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