Music 220b - Final Project

Well, we're calling this 220b's project, but it's incorporating things from lots of places.

This is the "project page". What I'm doing right now is keeping this page sort of constantly updating (yes, like a blog) as I make progress, so that I don't have to try and remember it all in a couple months. I'll keep project notes and show in progress things like melody lines, but no audio will be posted before mixed down properly, unless it's snips like examples of granular synthesis stuff or something.

The project is the beginning (I doubt all) of my Four Hard Edges Of War project, which is intended to be a full album length "techno/poetry symphony", based on the (short) book length poem The Four Hard Edges Of War (coincidence?) by Houston poet Andre De Corvin, who is a Franco-Russian emigre in his 70's, and a friend. He read the whole entire piece including the book's forward for me a few years back at Rock Romano's Red Shack studio in Houston, and I've got all of it with me. The project was an idea of mine and Tamara Nicholl's. Tamara was the other half of the techno/classical/poetry fusion duo Third Option and this was to be our next project, after we finished Cult Of Nice sometime around 2002. I/we are just now getting to it. :)

Here are the mixes I have available for you, faithful reader, to listen to thus far:

1 - The View From From Lighter Years Away
2 - The Far View
3 - Two Trains
4 - Trains Interlude

05/09/06 Decided for sure that this whole project will be available in three formats: Stereo, 8 Channel Surround, and 5.1 Surround.

Have done a lot of looking into 5.1, authoring DVDs, setting up kluged 5.1 systems in CCRMA's 8 channel listening room, etc. Finally got to listen to DVD-Audio discs of Crystal Method's "Legion Of Boom" and BT's "Monster" soundtrack in 5.1. Lots of inspiration there.

Here is a new project page, for Music 220c, which will be more about the surround mixing aspect of the project. I'll keep updating here with stereo mixes and composition notes.


Spent the last few days translating mixes one and two into 8 channel surround mixes. Wow I love that. I used Ardour, and what I did to preserve the stereo mixes' general balance and eq and reverb settings, was I went back into the stereo mix room and set up the mix exactly as it was. Then I dubbed the main stereo output back to Ardour once for EVERY single track, onto a new track. Simple, just solo that track in Ardour and any eq or outboard processing, plus the relative level of that track, is preserved in the stereo output (or one side, say left, if it's really just a mono track), gets preserved onto the new track. At the end of the process, I've got a new multitrack session, which should sound just like the stereo mix if I were to have all the tracks at zero with no eq and no plugins and no effects. Then I moved the sessions into the 8 channel listening room at CCRMA and spent a little time assigning the tracks to new outputs to place them in the wider field, and did some moving too, either through pan automation (rarely, since Ardour can only automate panning in two channels), or using strategic bussing and automating the gains of the busses, or through creating extra tracks, each assigned to different channels, and cutting and pasting. That was the easiest way to do something like, take a beat that was part of the whole rhythm track, but I would like it to move around. I would make, for example, four stereo tracks, assign the first to channels 1 and 2, the second to channels 3 and 4, and so on. Then using the snap to beats feature, I could easily cut the drum track up so each measure it moves to a new pair.

I'll be doing this to all of these, and then the task will be to translate into Dolby 5.1 and burn DVDS that I could take to, say, some bloke's house that has a 5.1 setup.

I'll talk about mix 3 later. I'm tired of blogging now.


Man a month goes by fast round here.

Much has been done. First of all, the first piece, the one with the violin track, is probably cut. That makes what I was calling the second track the first. Second, there's been two more tracks done, and the fourth is in the works.

Here is the pre-master stereo mix of track one - called "The View From Lighter Years Away":

1 - The View From Lighter Years Away

On to the second track. I wrote the theme at the piano, here is the basic tune:

I recorded that piano part in the studio, locked to the 120bpm beat, of course. Then I used markov analysis in common lisp music to generate other themes, very similar, based on that score(which I had converted to a MIDI file), and played them back using portmidi and qsynth, recording into Ardour. The basic thing I created using that method was this "electric piano" line.

I made some variations using slightly different patches in qsynth, slightly different markov results, and/or plugins in Ardour, like the vinyl plugin (which makes something sound like a vinyl record - it's cool because you can pick the YEAR of the record - they get noisier as they get older *grin*), and a distortion plugin, and such, to create:

Some hiss noise for the intro
Other noise
Vinyl'd EP (different riff)
Cleaner EP (same riff as vinyl'd)
Distorted EP (same riff as vinyl'd but half time)

Also, used another plugin to mess with Andre's voice a bit at the beginning: Radioblig

Here's some of the code I used:

;; Aaron Trumm
;; Music 220b winter 2006
;; Assignment 2

;; first we get MIDI running
(portmidi-open :output(pm:GetDefaultOutputDeviceID) :input (pm:GetDefaultInputDeviceID))
(define *tempo* 120)

;; Then we import this little MIDI diddy

(defparameter fourhard2 (import-events "fourhardpartII.mid" :tracks 1))

;; then we put the notes in a list

(defparameter 4hardnotes
      (loop for e in (subobjects fourhard2)
                 (if (member 'keynum (object-parameters e))
                     (sv e :keynum))))

;; then we remove the nils so markov-analyze doesn't complain

(setf 4hardnotes (remove nil 4hardnotes))

;; now make a play function

(defun playit (len tune order &key (chan 0) (amp .5) (temp 120))
  (let ((note (markov-analyze tune :print? false :order order)))
        (process repeat len
                 for k = (next note)
                 output (new midi :time (now)
                                  :keynum k
                                  :channel chan
                                  :amplitude amp)
         wait (rhythm 'e temp))))

(events (list (playit 40 4hardnotes 35 :chan 5)
              (playit 32 4hardnotes 1 :chan 4)
              (playit 16 4hardnotes 6 :chan 6)
              (playit 8 4hardnotes 12 :chan 7)
              (playit 32 4hardnotes 1 :chan 4)
              (playit 8 4hardnotes 12 :chan 7)
              (playit 40 4hardnotes 35 :chan 5)
              (playit 8 4hardnotes 12 :chan 7)
              (playit 8 4hardnotes 12 :chan 7)
              (playit 8 4hardnotes 12 :chan 7)
              (playit 8 4hardnotes 12 :chan 7)
              (playit 8 4hardnotes 12 :chan 7)
              (playit 32 4hardnotes 4 :chan 4))
         "" '(0 2 4 6 10 12 14 16 24 32 40 44 44) :timesig '(4 4))

And here is the stereo mix:

2 - The Far View


Ok tonight we (I)'ve been working on this thing, and some on other days previous :)

Been working on what I think is the 2nd track. We've added got a drum track in 6/8 that I did in Hydrogen, another kind of conga track based on the same pattern, modified a bit, in Hydrogen, with a different drum kit. I exported this pattern (or was it the original pattern?) to a MIDI file, and fired up Qsynth and Rosegarden, using the Orchestra kit from this soundfont (given to the class by Nando), and having Rosegarden play back the file, routing the audio output from Qsynth through Jack into Ardour. Oh yes, and I used one of those Hydrogen patterns again in Hydrogen with yet another kit, this one being heavy on the toms. Also I took the original pattern, took out everything but the snare, picked yet another kit, added like every snare sound in the kit at the same time, panned the five or so snares around to create a stereoish snare, then used a distortion and an amplifier plugin in Ardour to kind of crunch it up a little. I added this extra snare in at times when I was trying to get some build goin.

That was one session. Then I tried to sleep and didn't. Came in at six AM and in CCRMA's Studio C, did some messing. Took the last part of Andre's poem audio, the part which I hadn't used when I laid out a rough first track with just piano and him and laid in in here. I took the word "tired" and placed it on each beat for a few measures right when he comes in, alternating between right and left, and "telephoned" using LADSPA Plugin "MultiBand EQ". That is the Phonedre track. :)

I've been using plugins, but then to save CPU bandwidth (which becomes an issue when working over the network like this), I ping pong the resulting thing into another track, so that eventually, when I'm in mixdown, I'm not running any, or at least very few, plugins.

Next I decided to do something to his "main vocal" track, which I'm still not even sure I want to use in its entirity. One of the major problems with it, I think, is that at times I wanna get cookin, but Andre's not cookin. We'll see. It creates a cool contrast sometimes. This time, I used LADSPA Plugin "2x ladder filter swept by a Lorenz fractal" (sounds like something Julius Smith would invent), making Andre sort of warbly and then putting that on the right side and his original on the left *shrug*. That is the Screwydre track.

Next I needed bass. GOD I needed a bassline. So I fired up Qsynth again, this time using this fingered bass soundfont that I got from I used Virtual Keyboard again to sort of write a simple part, and then instead of even TRYING to perform it well or try to record or lay it out in Rosegarden, I went straight to Noteedit, wrote the part, and exported it to midi. Then I used Rosegarden to play it into Ardour like before. This kind of thing is pretty crucial sometimes with this kind of music. You really need to have very tight parts, especially on the low end. I'm not afraid of quantisation.

This bass patch wasn't the cheesiest, but it wasn't the best either. I decided to do something to it. So I pulled up this simple delay patch for PD which I had laying around, probably stolen from Travis Soandso, via 220a last quarter. It does require this patch as well. I recorded the bassline first and edited it to where I wanted it, at least in the first section. Then I ran Ardour's bass track output to PD and matched the delay to the rhythm, with a good bit of feedback. Took PD's left output to one track, recorded, then went back, varied the delay slightly and recorded the right channel to another track. I like varying passes of an eventual stereo track. Interesting probably only to me, this bassline is much in the Third Option style, what with that delay, and especially reminded me of Frosted Mini Wheats (the first Third Option album). I used both of those tracks panned left-right as well as the original bass in the middle, and ping-ponged them to a stereo track. Then I copied and pasted that some more into other spots. This made the Bass track (creative name eh?).

Here is said bassline:

Phoo. Ok. Almost there. I still wanted some building in spots. So, at the end, I took a section of the piano, the section shown here, as a matter of fact...

...and pasted that a few times at the end, and then I ran the left side through LADSPA Plugin "Decimator", which allows you to change sample rate and bit depth to create a horrid sound. I left the sample rate and took the bit depth to 1 and that created a superdistortion, which I recorded to a track. Then of course, in Aaron style, I did the same with the right channel, but slightly varied, and created a stereo distorted piano sound. Ooh baby. That would be the Dissed Piano track.

And I think that's it for this session. That distortion thing masks the piano melody at the end and I can feel that piano melody wanting to come out so I think my last step on this mix might be to record SOMETHING to bring that melody out. Violin? Distorted guitar? Me? Or fix in mix? Dunno, we'll see.


What I've done so far is this:

  • Recorded Andre (mentioned above). Here's his voice.
  • Composed the first movement's main theme at the piano and recorded a take of that.
  • Using Common Music and Common Lisp Music, I took pieces of the audio from that recording, and using granular synthesis methods, created a few chunks of sound that doesn't sound like piano. We call that the Piano Waves track.
  • Used the same methods on a bit of Andre's vocal. Andre Waves.
  • Used the same methods on some drums in track 2, actually also using a bell sound from Nando's examples. That's the Fucked Drum track.
  • Using Ardour, begun to arrange the first section of movement one around the piano and Andre's reading, using Ardour as a sound canvas to be able to slide in pieces of the granulated audio in spots where I wanted it.
  • Composed a violin line for the first section of movement 1. First I hummed it to myself while listening to the Ardour project, then I opened up ZynAddSubfx, a softsynth for Linux, and its virtual keyboard. Using the virtual keyboard I found the right notes, and performed it a few times using the computer keyboard. Then I knew what to write down, and I jotted the line in my trusty Moleskin staff paper notebook. Then I laid the rather simple line out in Noteedit, and exported that to several formats for later use, one being MIDI, one being MusicXML, and one being Lilypond, which I used to generate this:

  • Begun piecing together the second section of movement 1, using some of the same granular synthesized chunks and some Hydrogen drums. I'll have to rerecord sections of piano synced to the beat in order to bring that theme back in when the piece moves into a tempo driven dance type thing...although this portion is in 6/8, which isn't a dancy type of thing. Then again, it's not "dance" as much as "techno" or "electronica" we're looking for. Actually I'm not looking for anything but a fusion of two energies, really, you can give them any dumb name you want.

Other notes:

I've been playing with MIDI and algorhythmic composition in Common Music, trying to see if I can generate things that I wouldn't otherwise write, based on the general theme. So far I haven't come up with anything of use. I'm going to try bringing the MIDI files of the themes into CM next and see what happens.

Common Music is easy to make randomize things and do funky stuff, and relatively easy to sort of tell to only use a certain set of notes, which is all that a key signature is. What's trickier (for me, since I don't know much about it yet) is tempos and mapping. To create an album length piece that is part dance album, there is going to have to be some predictability and locking in to "conventional" rhythms. I'm not worrying too much about arrangement as much as knowing that I'm locking to a tempo I want, so I can take chunks of audio that are eventually generated and use Ardour to edit and sound canvas around. So far it's been easy with these chunks of floating audio that have no beat to them, where I can just put them anywhere, but next I want to get Common Music generating things that I know are of a certain tempo/time signature that I can lock in in Ardour. The whole point of this project is fusion, and what I'm discovering is that even though we were thinking only three aspects would be fused (classical music, dance/techno, and spoken word), there are further dichotomies within the aspects. Like the "traditional" computer/dance/techno methods and the "avant-garde" computer music methods. Of course that crosses over, because the "traditional" dance methods are "traditional" because they come from classical music. On and on and on.

Also, there is still a collaborative aspect to this project. And I think that's become my preferred mode of being. On my last few projects, I've started to do things like bring musicians into the studio and let them write their parts, but it turns out, I feel like I've composed those parts too. It becomes a macroscopic composing, which is on the other end of the scale from things like microscopic composition inside a note, say when using Common Lisp Music. I know not only what, say, a drummer, is likely to create, but also I know certain people's styles, and I can envision wanting a certain person in a section, and even though I have no idea what notes they'll come up with and am usually surprised, I do know exactly how it will work. At that point I have no need to manage the composition on a note-to-note level.

So collaboration has really become the next step, and as I've written a few times, to me it's often a more fascinating aspect of new technologies than other things. To this end, I've given Tamara, who is in Houston, an mp3 snippet of the first section so far, to get her input. It's amazing what her input, even though she's a poet and not a musician, did for Cult Of Nice. She truly did compose without composing. Next I gave the audio from Andre's reading and the same snippet to Larry Lines (also in Houston), who I collaborated with on an album of his.

It was incredibly easy to do this sharing using CCRMA's linux systems. All I did was create a symlink in my public HTML directory to one of the directories in my project directory and give them hyperlinks in their email, or over instant messenger in Larry's case. To create the snippet, I just exported a wave file of Ardour's internal mix and then used the lame command line tool to compress it to mp3 format. This gave Larry a snapshot of what I was working on right then, within 2 minutes of asking me for it.

So there ya go. Man this is going to turn into a blog.