From CSWiki
Revision as of 21:03, 11 May 2009 by Alderis (talk | contribs)

Jump to: navigation, search

Justin's Final Project


This instrument plays 4 voices which are set to play in either Minor or Major harmony. Each note then, is a chord, and even if you're playing in, say, G Minor, you can play each chord in Major harmony, yielding an optimistic gloom. Or Minor harmony in C Major, for pessimistic cheer.

I built this instrument in pursuit of my very eclectic tastes in music. My favorite music is usually composed of Organs, Choirs, and MIDI. And sometimes a rock band mixed in with that. I've never really written anything with an emphasis on harmony, but I thought I'd give it a shot and try and put some of that Rural Public High School sorry-we-don't-offer-AP Music Theory to work. So I started out with VoicForm trying to build a choir, and mapped it to a keyboard like an organ.

To play the Choirgan, just load it up in the miniaudicle and plug it into the Virtual Machine. You can probably play it from the terminal as well, but I recommend the miniaudicle so you can reconfigure it to suit your needs. I've uploaded the program in the same configuration I used to play the song in my video, which comes in the Key of G Minor (with an F# programmed in for my convenience). To change the key, just add or remove sharps (+1) and flats (-1) as needed from the large section at the beginning where I map notes to MIDI numbers. You may also wish to change/unhook some of the instruments if you're seeking a different sound.

  • The letter and number keys are mapped by octaves. 1,2,3,4,5,6,7 is A,B,C,D,E,F,G respectively. Likewise, 7,u,j,m all play G, but at different octaves. Naturally, higher rows on the keyboard play higher notes.
  • The space bar shifts between two sets of notes. The default setting allows you to play higher notes. The second setting shifts all notes an octave down (or really, a row up), so that the bottom row has bass notes not previously accessible. Shift back to play the highest notes on the top row.
  • Hold down the right shift key to play a note sharp. Hold down the left shift key to play a note flat.
  • Use the Delete Key to decrease volume, and the Tab Key to increase volume.
  • Use the + and - keys to increase/decrease reverb.
  • Hit alt to change the chord harmony between Major and Minor.
    • Note: The default harmony is in minor, as per my preferences. You can change this in the miniaudicle if you like.

Prototype Bass

This variant from the Choirgan similarly plays chords in Major or Minor harmony. However, instead of being mapped to a keyboard, this is used for playing written music. To write music, open up miniaudicle and fill out the arrays for notes, gain, and duration. This developed as a prototype for what would later become the choirgan, and I later turned it into a bassist, hence the name. But of course it doesn't have to be a bass for you at all!

  • Hit alt to change the chord harmony between Major and Minor.
  • This comes equipped with a volume slider, so you can fade in and out.
  • It's also configured to broadcast OSC events and send out the volume slider data, so you can fade out other things too if you like.
  • Just like the choirgan, use the miniaudicle to alter key signature and instruments to suit your purpose.
  • Unlike the choirgan, I kept reverb fixed this time. I just didn't want my bass reverbing along with the main melody.

"The March of Nephilim"

The name is a vague reference to the source from which I got the song I played in my video. This was my nickname for the drum part of the song. Unrelated to the choirgan, this is just an easy-to-set-up and annoying-to-write-music-for drum machine I developed in my free time during spring break. If you want to write music for it, just play the function at the bottom by choosing a which drum in the drum set to play (an integer 0-5) and fill out the arrays for frequency, gain, and duration.

  • This particular code is configured to listen for an OSC broadcast from the Bass so it will synchronize with it.
  • Likewise, it listens for the volume slider data so it can follow the bass. Since I didn't want to break down the arrays any further, it only updates its volume every 1.5 seconds.

This is another subsection

with a link off the wiki

and a link on the wiki

What to include on your project page

  • A description of your project
  • Your code
    • If it's short, you can make a new page for it like this one
    • 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. Going lo-fi and using built-in webcam from another laptop (e.g. PLOrk machine in studio B) is fine. But for audio, if you're using chuck, best to use for writing chuck's output directly to a file.
    • See directions above on putting it on your network drive and linking to it