From CSWiki
Revision as of 04:38, 12 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!

  • 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 and harmony fixed this time. I didn't want it changing with the main melody, but if you want it to change, just go into miniaudicle and remove the // next to the sporked KeyShift function.

"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, open miniaudicle, use the function at the bottom by choosing which drum/hihat in the drum set to play (an integer 0-5) and fill out the arrays for frequency, gain, and duration. To play it, you'll need to sound buffs, which can be found in the downloads section.

  • You'll need to set your miniaudicle preferences to point to the directory where you put the data folder to get the sound buffs.
  • 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.
  • If you want to play without the OSC event, or want to just fix the gain, comment code in miniaudicle marks where to // out.

Project Diva

Though it has its limitations, this little experiment turned our to be successful. This version still plays each note in 4 part chords, but it tries to match them to your voice instead of any direct input. In fact, it will match the volume of your voice as well. It tends to work better with female voices and falsetto I find. There are a few things to keep in mind however:

  • WATCH OUT FOR FEEDBACK. Use a hemi/speaker/headset mic/ something other than your computer speakers. Things get bad quick otherwise. And for this reason you have to watch your gain carefully. The gain in the program is based off of your voice, and I haven't been able to sing loud enough to cause any feedback, but do man the nobs and buttons on your speakers and computer carefully.
  • For best results, don't sing directly into low quality mics. I'm not sure how well other mics will fare, but singing into the built in mic on a laptop leads to weird bubbly noises. Sing at a distance, or turn your head at an angle to the mic.
  • The same buttons from choirgan still work to control harmony and reverb. That's alt for harmony and +/- for reverb, if you forgot.
  • Unlike the other instruments, I wouldn't recommend tweaking with this one too much. Obviously there's no need for setting key signatures, and to my experience changing the instruments is a bad idea. Something about VoicForm and SinOsc make it the only viable combination. If you don't know your MIDI tones, I left the note map in the code as well as a feedback string to tell you what MIDI pitch you're singing so you can tell if you're on key.
  • This instrument works by analyzing spectra. While it will track your pitch, it's also analyzing the "shape" of the sound you're making- so if you change vowels or use consonants, that will register as a pitch change even if you think you're singing it at the same tone. So it's best to stick with one vowel sound and sing with it.

The Video

Has not yet been made. The song is called, "Inner Space" from Xenosaga Ep.1 Der Wille zur Macht. You can hear the original here. I also drew inspiration from this remix.

The girlfriend is Mengsi, and she sings better than I do.

with a link off the wiki

and a link on the wiki

  • 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

The Code

I'm working on uploading it, but it's finished. Apparently I don't have a website to go to...

    • There's a lot of it. Put it in a .zip file so that people can upload it.