Monday, November 23, 2009

Squares



Lately I've been devoting some spare time (if only I had more of it!) to working with MIDI input in Processing (see this post). Inspired by the work of Ryoji Ikeda and Carsten Nicolai, I've started building some minimal rhythmic compositions which feed MIDI data to processing. Above is a still of my current patch-- each midi note causes an iteration in the various families of blocks (and each different sound in the piece is assigned to a different block family in the visuals). My idea here is that the creation of the visuals is closely tied in with the creation of the song. We'll see how it goes- I expect to perform a few of these compositions sometime in the next six months or so.

Monday, November 16, 2009

Various Pictures from Japan


I'll take a quick break from what I've been up to (doing some DSP on an AVR, making some midi-linked visuals in Processing, and designing a touch-sensor based music interface) to point you toward my little photoblog highlighting my recent trip to Japan. Can't wait to go back there.

Monday, November 9, 2009

Blender Time


Here's another quick rendering that I did in Blender. Again, the purpose of this rendering was to experiment with using the node editor parameters to create a depth of field effect.

Saturday, November 7, 2009

Processing, MIDI, and OS X

Over the past couple of days, I've been creating a Processing sketch that receives MIDI from an external program. Since there's not really a good step-by-step how-to guide around (and because there are a few funny tricks that could trip up a novice like me), I figured I'd put up a guide on getting external MIDI to work with Processing under Mac OS X (I'm using 10.5.8, but these steps should apply to other versions).

Step 1: Get the software. You'll need Processing, of course, and some external source for generating MIDI information. For the sake of this article, we'll be generating MIDI in Ableton Live and sending it to Processing. You'll also need a MIDI library for Processing. This tutorial uses the RWMidi class.

Step 2: Install the Java extension. This is the one step that really tripped me up. Apparently, OS X doesn't have native support for MIDI in Java. Weird, eh? Anyway, you can get the software here and install it in your Macintosh HDD => Library => Java => Extensions folder. The two files libmmj.jnilib and mmj.jar should be put in the extensions folder.

Step 3: Activate the IAC Driver in OS X. [This step is if you want to send audio from an internal program to Processing]. More on the IAC Driver here. Go to the Audio MIDI setup application under Applications => Utilities. Once open, double-click the IAC Driver icon. Click the "+" button to add a port. This will create a new IAC port. Apply the changes. You can now restart your DAW to enable the changes. At this point, you should be able to send MIDI out through the new IAC Port that you created.

Step 4: Install the RWMidi class and run the example app. Starting in Processing 1.0, libraries are installed in a central folder located in the same directory as saves sketches. You might need to restart Processing before it becomes aware of the new class. Run the example application and get busy coding your new custom MIDI app.

EDIT-- Users of Mac OS 10.6 should be sure to download the new version of the Java extension.

Back from Japan


I've been back in the US for about five days now. Japan was an amazing place, and I learned a ton and was inspired greatly by the folks at the ISMIR conference. Some of the research that I saw presented there will definitely prove to be a groundwork for my projects for years to come (especially in the field of generative music creation).

Also, I was lucky enough to see Carsten Nicolai and Ryoji Ikeda perform at LiquidRoom in Tokyo on Oct. 31st (thanks to my friend Jeff and his sister Olivia for showing us around Tokyo-- which is now my favorite place on earth). The combination of audio and visual elements created an experience that was much greater than the sum of its parts. I really love their aesthetic and can't wait to see them perform again. Opening for them was Ametsub -- I hadn't heard of him before seeing him, but I was really impressed by his music and visuals. Check him out.

Also, check out this visual patch by my friend Dimitri. Very impressive.

Wednesday, October 28, 2009

Japan photos

I'm in Kobe, attending the 2009 Ismir Conference and have been logging my trip to Japan here. For more information about what we're presenting, check out my friends' (and coauthors') blog.

Japan is a beautiful country-- I'm lucky to get a chance to be here, and am deeply impressed by the culture, the people, and the landscapes and cityscapes (not to mention the public transit systems).

Thursday, October 22, 2009

Quick updates

It's been nice and busy for the last few weeks-- thankfully, that business comes in large part from cool DSP and music work. Next week, I'll be in Japan at the ISMIR conference helping to present a paper that I co-authored (about feature extraction of electronic dance music genres).

In other news, I've been doing a lot of work with DSP on the AVR microprocessor. It's great-- and very good practice in terms of writing clean code.

Finally, I've continued work on my generative Reaktor patches. They're more cluttered with control than ever, but I've gotta say: it's pretty good to be able to program a song's behavior and just have it generate music when you press play.

Until next time!

Monday, October 12, 2009

Reaktor Time


I've been kind of obsessing over generative patches in Reaktor. Note that I'm all for minimalism in UI design if others will be using the interface. For my personal use, I tend to like to have a knob for ever parameter, hence the craziness. Anyway, here's a screen shot of my latest patch (probably around 50% done right now).

Saturday, September 19, 2009

Renderings



Here are a couple of renderings of simple objects-- the purpose of these pics is to experiment with depth of field rendering techniques in Blender. For the top picture, I followed this tutorial. It's okay, but the technique is finicky and requires some fine tuning. The lower picture involved me wiring up a node called "defocus," feeding the z data from the picture into the node, setting the camera's depth of field in its object edit stack, and rendering.

As a side note, I've noticed a couple of strange render problems on the second image (such as abruptly-starting lines and whatnot), which is part of the reason why I'm putting this picture online. If you've got any tips about getting clean renders when using Bezier curves, reflections, and DoF, let me know!

Sunday, September 6, 2009

Speakers and more

It's been a crazy summer. As a part-time job (which has become more than full-time in the past several weeks), I'm doing music tech for a big show that will be at REDCAT pretty soon. For the show, I had to do a bunch of work in Processing and some web design work. Also... I had to work with my friend Meason Wiley (who took the above photo) to build ten six-channel speaker arrays. Not really my cup of tea (I'm more of a "pump a lot of sound out of big speakers" kind of guy), but the project has been very educational: I had to learn how to solder surface mount components with 100% reliability (agh!), solder against a deadline (I soldered up each amplifier in the speakers-- there are two per speaker), and (thanks to Meason's help) learn how to take an Ikea bowl and transform it into a speaker array. I'll tell you what: installing ten copies of Reaktor onto computers used by Reaktor neophytes, troubleshooting a total of 60 channels of audio driven by boards soldered up by yours truly, and keeping a smile on my face for much of the time has been a strain. Hearing those 60 channels pump out ambient music, though, makes a fellow proud.

I've also been busy building a multi-touch table (using the design of my friends' BricK Table) out of 80/20 extruded aluminum. The table will be a lobby display at the show, and the video generated by the table/computer will be projected in the theater onto the floor via four chained projectors.

I haven't even touched on my friend's new online record label whose website I designed, or the funny reggae night that I had to do lights for (it puts bread on the table), or the charmingly-retro innards of an early-80's/late-70's-era Morley wah pedal that I fixed, or the Klee sequencer that I've been working on. Yep-- busy times.