From CSWiki
Revision as of 13:30, 12 May 2009 by Abourque (talk | contribs) (Additional Notes)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search


I'm ChucKBass.


I created ChucKBass to play bass along with a performer. After taking the fast Fourier transform of the audio input, a feature (the peak of the spectrum) is extracted and determines the pitch that ChucKBass plays. ChucKBass plays with a regular rhythm, but the note duration can be changed (you can think of them as whole notes, half notes, quarter notes, eighth notes). I decided to keep all the pitches within a pleasant and audible two octave range. For a little extra color and texture I added an upper voice that arpeggiates chords determined by the bass note and randomly stacked minor and major thirds.

How To Play

Once the program is running, you press [ + ] to fade in the bass and [ - ] to fade out. The default note duration for each bass note is 2 seconds, but you can make the bass play once per second by pressing [2], twice per second [3], four times per second [4], and you can go back to the default with [1]. The bass notes are determined by the sounds you make (and whatever other sounds your mic picks up in the room). You fade in the upper voice in with [ } ], and fade out with [ { ]. You can hear the arpeggios a little after two thirds into my demonstration linked below.

In Action

You can hear me playing saxophone with ChucKBass here


You can find the code here. I encourage you to play around with ChucKBass while playing your own instrument.

Additional Notes

I opted to allow the performer to change the note durations instantly but otherwise keep the rhythm regular. If you'd prefer ChucKBass to play some specific rhythms or maintain three or four beat phrasing or a certain pattern you could create arrays of note values, add a for loop in the bassline function, and switch between rhythms by pressing keys on the keyboard. Also, I use the peak bin number as a midi note, but you could change how the peak determines the bass note.

~ This project represents my own work in accordance with University regulations. ~