Adam Fox's Final Project: Guitar Hero Interface
For my final project, I used ChucK to build an two different instruments that can be played with a Guitar Hero controller.
Rhythm Guitar Hero
The first instrument uses the Karplus Strong algorithm to simulate a six-string acoustic guitar that strums chords. The chords are preprogrammed, such that each voicing is consistent with that of a real acoustic guitar. Some of the methods implemented for the class RhythmGuitarHero are:
- .capo(int, READ/WRITE) ... tunes the guitar up by half-steps, simulating a capo
- .setStrumSpeed(float, READ/WRITE) ... sets the strum speed (0 is instantaneous, 1 is a slow arpeggio)
- .startPlaying() ... puts the guitar in interactive mode, allowing live performance
How to Play the Rhythm Guitar
Once the .startPlaying method is accessed, the interactive mode is turned on.
- One can perform a "strum" with button 8. It is possible to strum in either direction, up or down.
- Holding down buttons 1-4 correspond to six different chords in one key; the default key is C. The guitar does not support diminished triads or diminished 7th chords.
- Simultaneously holding the A button will alter the chord. (The "most common alteration" is used)
- Button 6 shifts the key up one half step. Button 7 shifts the key down one half step.
Chord Fingerings and Alterations
- I Chord: Button 1. Alteration: Dominant 7th
- ii Chord: Buttons 1, 2. Alteration: Major 3rd
- iii Chord: Buttons 1, 2, 3. Alteration: Major 3rd
- IV Chord: Buttons 1, 2, 3, 4. Alteration: Minor 3rd
- V Chord: Buttons 2, 3, 4. Alteration: Dominant 7th
- vi Chord: Buttons 3, 4. Alteration: Major 3rd
The rhythm guitar does not support the diminished vii chord.
- Your code
- If it's short, you can make a new page for it like RhythmGuitarHero
- Or, if there's a lot of it, put it in a .zip file so that people can upload it.
- We suggest: put it in your public_html directory on your network drive, then make a link, e.g. to http://www.princeton.edu/~yourname/yourfile.zip. Let us know if you need any help!
- Instructions on how to run your code
- A sound (or video!) recording of your piece, if possible
- See directions above on putting it on your network drive and linking to it