2.11.08

The Largest PD Patch I've Ever Made

Thought I'd take some time to show you the PureData patch that I created for this piece (Apologies for a long post length). The piece was performed this past Thursday and the performance went great, despite me not having tried it out on the studio's new MacBook Pro until the day of the concert.

In the top left corner is the top of the patch hierarchy, which shows the master sound level of the piece. (Click on an image to enlarge it.) To the right is the "pd engine" where I keep all of the patch's internal logic. And below is what I call the dacbox. Any audio that is thrown to "dac_left" "dac_right" or "dac_out" is caught, added together, and multiplied by the master_vol before sending it to the digital to analog converter (i.e. the speakers).

Under chroma you have the innerworkings of the following idea: The patch listens to the gameboy for discreet pitches (this is what "fiddle~" does in the picture) and then will play those pitches, at random, until it is told to stop. the subpatch "chroma_memory" pictured here takes care of the first problem--listening to the gameboy. Once fiddle~ finds the midi value of the note played, we mod that value by 12 (since there are 12 tones in a chromatic scale), and OR a bitwise representation of that number to the current representation of previous notes heard. (In hindsight, storing those values in a pd table would have been clearer to understand, but this approach does appeal to the bit-twiddling geek in me.) Chroma_memory can also listen to a chord progression instead using the "receive chroma_chord" object.

Chroma_selector on the right determines which note will be played at what time. Loadbang starts the metro once the patch is loaded, and the metro's tempo is being constantly changed by the random 1000 object (where the 1000 is in milliseconds). At these random time intervals, random 12 is asked to generate a note between 0 and 11 which corresponds to one of the pitches in the chromatic scale.
Chroma_validation makes sure that the note chroma_selector has chosen to play (left inlet) is a part of the subset of notes that chroma_memory has said are OK to play (right inlet). If the selection is valid, the appropriate sound file is loaded, panned (via chroma_panner not pictured here), and thrown to dac_left and dac_right.


The fft subpatch takes whitenoise (aka "noise~"), and convolves it with the signal coming from fft_timbre (in this case, vocal harmony). The twist is that conv_lvl determines how much like the fft_timbre the whitenoise actually sounds. A similar crossfade relationship is happening between chords and strings. I'm not showing the fft-analysis subpatch here because it's identical to the timbre-stamp help example in pd.


These are my midi controls, using my Axiom25. Most of the ctlin objects are assigned to faders except for the stuff at the bottom which is assigned to buttons. Button 20 determines whether chroma listens to the gameboy, or to the chords. Button 22 starts all chord progressions, while 23 stops them all. Button 24 starts the chords without counterpoint.wav, while 25 starts only counterpoint.wav. When I say chord progressions, I mean there is a soundfile for gameboy harmony, a soundfile for string harmony, a soundfile for vocal harmony, and of course the chords sent to chroma_memory. Counterpoint.wav sounds like this:




This last subpatch is just triggering the three wav files at the bottom using various techniques. The graphical bang labeled "introduction" plays the files one time through, whereas there is also a random loop (complete with killswitch), and "end loop" which is a different loop for the end of the piece.

Even seeing every part of the patch, the final product is hard to conceptualize without hearing it. All the patch really does is set up ways for me to perform, there is no actual score here. I'm hoping to record a studio performance of the piece so I can share it here, but in the meantime let me know if this patch explanation made any sense at all :)

18.10.08

Little Sound DJ

My childhood gameboy, an lsdj cartiridge, and a pair of new headphones later, I've started composing my piece for an October 30th Midday Music concert. The inspiration for the piece comes from chiptune music, which I stumbled upon a couple months ago.

(Gameboy compliments of my mom, headphones compliments of Phil)

Little Sound DJ (LSDJ) is a cartridge for gameboy that allows a musician to create and sequence those low bit sounds that my generation has come to know and love. The actual cartridge has been out of print for a while now, you can either flash the rom to a blank cartridge like I did (via nonfinite) or search on ebay.

As far as hardware is concerned, people seem so prefer the original Gameboy sound even though LSDJ is also compatible with Gameboy Color and Gameboy Pocket. Lots of people also modify their gameboy by adding an 1/8" jack to reduce ground noise, or adding a backlight to the screen.


In LSDJ, you can choose Square Wave, Drum Kit, Speech Synth, or Noise as your instrument of choice; then use filters, envelopes, and transpositions to alter the sound any way you like. Once that's done, there's a four voice sequencer that you can use to your hearts desire. You can do some neat things like vibrato, slides, and panning which I'm excited to play with. Other things, like the drum kit and speech synth, are not as interesting to me (probably because better alternatives have appeared since ~2000 when the software was made).

I should have sound samples for you shortly, along with a big description of the PD patch I'm writing. Basically with gameboy samples and live input from lsdj, I'm hoping to make a composition which demonstrates that lowbit square waves can be used for more than just cheesy video game music. Not that I don't love cheesy video game music :)

8.10.08

The B Word

I wanted to take a second to point out some peculiarities of my day today, before I go on vacation.

There was a big accident in the middle of college ave. today, causing traffic delays for cars and pedestrians alike. It looked like some people were severely injured, so I hope they're ok.

The Stealthcat Productions blog was marked as spam by Blogger. There wasn't anything particularly spammy about the blog, so I'm really curious what they're algorithm for spam detection is.

I'm listening to This American Life on the current economic crisis, trying to get a better understanding of this massive BAILOUT. What's peculiar about this is I've been getting emails like this from the engineering department:

We in Engineering Career Services have sensed a general anxiety among students about the economy and the availability of jobs.

We are not fortune-tellers, but from what we see at this time, it does not appear that the problems plaguing the financial and housing market sectors are having a major impact on the continuing need for engineers in traditional industries.

We in Career Services and our employer partners are perplexed to note a significant downturn in student applications (resume submissions) this year over last -- in some cases, resumes submitted to specific employers have been down by 80% or more -- both for large companies and smaller firms. We are hearing from employer after employer that they anticipate hundreds of engineering jobs to be filled this year, and they hope to fill many of those openings with cornell engineers.

It appears at this time that traditional engineering jobs will still be plentiful at the entry level, even if the total need slips by a few percentage points. In addition to energy (you can expect this sector to boom, regardless of who becomes our next president!), and defense, the need for engineers in most traditional industries is not likely to diminish much -- unlike the recession in the early 2000s, today's problems do not stem from the technical sector -- however, students seeking careers in the financial or related sectors may see some greater retraction as those industries reorganize. It is uncertain at this time how much of that downturn might spread to consulting and other business application industries, but recruiting by those industries has been fairly comparable to previous years.

As for on-campus recruiting, for many employers, not enough resumes are being submitted to even fill an interview schedule, and employers are cancelling schedules, not because they don't have jobs, but because they don't have enough applicants to warrant a trip to Ithaca.

As of this writing, the employers visiting campus DO have plenty of jobs they would like to fill with Cornell graduates. They learned lessons from the previous downturn to not overhire, and to not raise expectations by recruiting on campus when there are few jobs to fill.

They even emboldened the important points the letter in case you'd rather not read the whole thing. Offhand I find this letter quite amusing. The fact that our career services center staff "are not fortune tellers", the idea students have that this is just like the dot com boom, and the career center trying to allay our fears.

I think the most interesting part is that we have all these fears and no facts. And that maybe if we did have the facts, there wouldn't be as much fear. I wonder if this low recruitment rate is happening in other colleges.

5.10.08

Score11



Score11 is a note event preprocessor that is used in conjunction with Csound. I'm so glad I won't have to use this archaic language after this semester. Much of the language is arbitrary... it might as well be programmed in assembly since it makes about as much sense. Thankfully we've just started a new section on PD.

26.9.08

Stealth Cat Productions


First the good news: the game is finished!

Now for the bad news: my lizard friend isn't a part of it. He's not even close to the art style needed for this game... you see what I mean.

So what did I contribute to the game? Well besides design and moral support... not much. Sure I'm only taking it for 1 credit but I'd still like to be able to get some solid experience out of it. So I offered to be Content Lead for our next project. Content Lead is in charge of making sure UI assets are itemized and delivered in a timely fashion. Here's to hoping this next round works out better.

Since I can't host the file on my school webspace forever, there will also be a link to the game on our brand new design blog: Stealth Cat Productions. You'll also (eventually) find a more indepth look at our design process from different points of view within the team... not just mine.

For now, go ahead and download the game here, and let me know what you think in the comments. Honestly I can't get past level 3 without the cheat codes >_>

21.9.08

24x24 pixels is a very small canvas


When Jess asked me if I wanted to work on a game this semester, of course I said yes. But, in the spirit of taking less than 20 credits, I'm only taking the class for 1 credit. I'm stuck as the artist because the group needs artists.

Programming is being done in GameMaker, music in FruityLoops (uhhh. hmm. Better than garage band I guess.), and art in... well... we're all using different programs. It was my job to make the avatar, so there he is, in all his pixel art glory.

I won't say too much about the game itself, mostly because I'll be posting the .exe here in a week so you can play it.

14.9.08

ElectroAcoustic Techniques

Since I'm not sure whether or not my research is continuing this semester (Spencer, where ARE you?), I took it upon myself to find more credits, and I found them as a graduate seminar in the digital music center. Our first assignment was a 30 second tape piece using Audacity and Cubase. I wish I had the pieces of the 5 other people taking the class so I could let you listen to them; we're a really diverse group and their pieces were amazing. Unfortunately all I have is my submission, but here it is


The assignment was to do something with language, so everything you hear is a manipulation of my own voice (except for the tts voice I found from AT&T). The 0's and 1's in the middle of the piece are actually reciting parts of the text in binary.

comments, questions, concerns? We're learning Csound next.