Difference between revisions of "AdamFoxFinalProject"

From CSWiki
Jump to: navigation, search
(Adam Fox's Final Project: Guitar Hero Interface)
(Chord Fingerings and Alterations)
Line 34: Line 34:
  
 
* Your code
 
* Your code
** If it's short, you can make a new page for it like [http://wiki.cs.princeton.edu/index.php/Poly_demo.ck this one]
+
** If it's short, you can make a new page for it like [http://wiki.cs.princeton.edu/index.php/RhythmGuitarHero.ck RhythmGuitarHero]
 
** Or, if there's a lot of it, put it in a .zip file so that people can upload it.
 
** 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!
 
*** 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!

Revision as of 15:59, 13 May 2008

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.

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