The works and ongoing projects of Jonathan Ferran

jonferran@yahoo.com

Saturday, February 6, 2010

Field - An algorithmic music performance engine

While learning this programming language processing I have been struggling over what ultimately should become of all this labor. Originally I started about a year ago with Max/MSP making components for electronic music production. Instruments such as synthesizers, granular processors, also sequencers and loop editors. My intent was to make a kit of home-built instruments and tools to be able to execute a very expressive live electronic music performance. The functionality part of the whole project was no problem for me, however, the challenge lied in the user interface side of things. I have some hardware midi controllers and these work okay, but I found it difficult to efficiently tie the computer and interfaces together.

It was through working with these controllers that I first came up with the idea of using multitouch for this music performance project. My ultimate intention is to make the interface and the program into one. I didn't think I would start working on it this soon, but I came across a concept that I thought would be very unique and expressive and also slightly generative for a music performance. I have started on a project that will either be really awesome or a big waste of time. We'll see!

Field is a musical instrument where objects slide across a plane and by encountering certain things in the world such as walls, cursors, fields, or other objects, sounds are generated.

Objects are created in the world through a multitouch interface. One finger sets an object bouncing around the world. Objects can have multiple parameters for playing sounds. An object can do something different depending on what it encounters. For example you can assign a different drum sample to each wall it bounces off of, and a note value to play when it passes across a field. Each object in the world can have a different value of each. You can create multiple objects at once and send them all in different directions creating complex random rhythms. An object's speed can be quantized in either or both the X and Y direction enabling creation of regular timed rhythms. Objects can be modified by cursors and fields.

Fields are static in the world and make sound when an object moves across them. Objects can be assigned a note value to play when moving across a field, or the field can choose the notes based on various parameters. Sounds in fields can be triggered from multiple parameters, such as object entering top, bottom, left, right, x position, y position, and speed.

Cursors appear when a certain gesture finger combination (such as 2 fingers) is presented. They perform various actions on the objects that move across them. The most common cursor will be the erase cursor. To remove objects from bouncing around the screen simply use 2 fingers to create a line between your fingers that will erase all objects that move across it. Other cursors include pitch modification and speed modification.

You will be able to select between different worlds, and move objects between worlds. This will create almost a loop selection structure to the instrument. There is virtually no limit to the amount of objects that can be bouncing around a world. Extremely complex compositions can be created if you use slow enough moving objects.

Here's a sneak preview of the super alpha alpha version, no sound yet even lol. Thats a cursor tho, hard at work erasing those balls.


























If anyone wants to contribute to this, let me know. Right now it is on hold until I can program my way out of it being a cacophonous noisy mess.

No comments:

Post a Comment