Archive for the ‘ Uncategorized ’ Category
Probably breaking some rules here, but… http://en.wikipedia.org/wiki/Greg_Surges
Just posted a video from a concert I did last year w/ Chris Burns. It’s live-coding (an improvised performance practice, in which performers program their instruments in concert), using Pure Data. This is the first set, using Vanilla PD. There’s a second set, using the NRCI networking library – don’t know if that one still exists…
Christopher Burns and Greg Surges Live Coding – 12.11.2008 from Greg Surges on Vimeo.
So, the first thing you’ll want to do is create a folder for your project. In the folder, you’ll want a copy of the files in this .zip archive. m_pd.h is a header file which you will use in every external you write. It allows your external to use the functions defined for use by PD. The makefile will automate the compilation process. You’ll want to edit it (using a text editor) to make sure the path to your PD.app is correct.
The .zip also contains a file called randomwalk.c that I’ll be using as the example file for these tutorials. Open it in your text editor. Skipping over the comment at the top, you’ll notice that I’m #include-ing m_pd.h. You’ll have to do that for every external, assuming you want it to compile.
Skip down a bit to this chunk of code:
static tclass *randomwalkclass; // declares a pointer to the object
typedef struct randomwalk
{
tobject xobj; // the required tobject
tfloat current; // the current value
tfloat step; // step width
tfloat lower, upper; // bounds
toutlet *f_out; // outlet pointer
} t_randomwalk;
The first line declares a pointer to your object, which will allow PD to reference it. We’ll define it below.
This defines the variables that your object will have access to. Every object needs to have the tobject xobj; line, this allows the object to store PD-specific information, which we don’t have to worry about right now. You’ll notice that the next three variables are all of tfloat type. This is essentially the same as a float variable, but PD defines it’s own atomic types, which are used to facilitate portability cross-platform. Here, I’ve defined three variables for the random-walk procedure. Finally, the toutlet *f_out; is a pointer to an outlet. The name f_out is just a convention so that we remember that this outlet is going to output float's.
In the next segment, I’ll talk about our setup function, found in the
void randomwalk_setup() function below.
This document will (hopefully) serve as an easy to read and understand introduction to the process of writing an external for Pure Data. Pure Data, or PD, is a visual programming environment designed for real-time computer music applications. PD is open-source software, under the BSD license, and expansion of the software in the form of externals is strongly encouraged.
PD and its externals are written in the C programming language. When PD is running an external, it makes no distinction between the ‘core’ functionality and the external code. There are hundreds of user-written externals freely available for use and study. As you learn to write externals yourself, I strongly encourage studying other people’s code. For example, I learned about timing issues from studying the “pipe” object.
To get started coding an external, you’ll need a text editor. I use Textwrangler, but there are a few good, free editors out there. Get one with syntax highlighting. You’ll also need to install GCC, the Gnu C Compiler, and Make. If you’re on OS X, you can just install Apple’s XCode Developer Tools, and you’ll have both of these programs installed. I’m going to assume some knowledge of using the command line here, so I won’t explain how to use GCC or run Make. (Hint: type “make”.) You’ll also need an installation of PD, so that you can link and run your externals.
In the next post, I’ll talk about the basic concepts and chunks of code that you’ll need to write your external.
The Duke Music Library has linked to my recent .mp3 releases.
And also:
Aki szereti a kortárs elektroakusztikus zenét, ajánlom figyelmébe Greg Surges amerikai zeneszerzőt, aki Solid State c. albumát ingyenesen letölthetővé tette a Petcord netlabel oldalán: itt és itt.
Link is here.
Every time I tell someone I’ve got a show with MiLO coming up, I seem to get questions:
“What’s a laptop orchestra?”
“Laptop? So… what do you actually play?”
“What does it sound like?”
(First, here’s a recording of MiLO from 12.07.2007.)
I’ve also been in touch with people from other laptop groups around the world, and the ensemble continues to become more popular. I’m not sure which was first, but PLOrk (Princeton Laptop Orchestra) and SLOrk (Stanford Laptop Orchestra) are certainly the most visible. These groups seem are getting generous funding and support from somewhere, and in return are offering the laptop orchestra as a pedagogical tool. Students at Princeton can take “PLOrk Seminar“, which seems to be a performance-based laptop orchestra course. You’ll notice that participating students must be using a Macbook, and must use a specific configuration, including MIDI interface and spherical speaker(?). Their professor/leader often serves as conductor, and there seems to be a definite professor – student relationship in the group.
In contrast, MiLO is described as:
…a new improvisation collective that fuses live electronic sound, instrumental performance, and video projection into a rich multimedia experience. The group embraces a wide variety of electronic practices: circuit-bending, software synthesis, repurposed effects pedals and portable game devices, live processing of instrumental sound, VJing, and procedural animation all find their way into the mix. Expect a rich, immersive tapestry of sound and image, all created live and in the moment.We’re far more unstructured than other groups, receiving no funding and having no official academic presence. The group originally came out of some informal electronic jam sessions at the Kenilworth studios in Milwaukee, and much of that informality has remained. Although we do some pre-composed works now, improvisation is still a major part of what we do. Most of the people who play in the group are also instrument-builders/coders of some sort, and everyone has their own approach. There isn’t a standard MiLO piece of software or hardware, and I think that makes it interesting. I’d like to see more of this kind of openness and experimentation in laptop groups, and less classroominess – the ensemble has a lot of potential that needs to be explored, and I think that the rock band method will work the best. I’d be curious to hear from other laptop orchestra members, and learn their take on the best way to organize a group like this.
A recap of the Unruly Music festival, presented Sept. 8 – 10 at Vogel Hall in Milwaukee:
On the first night, Susan Bender presented Georges Aperghis’ Recitations along with Cage’s Aria/Fontana Mix. Unfortunately, I wasn’t able to attend, but heard it was great.
On the second night, I performed with the rest of the Milwaukee Laptop Orchestra. Along with a few small group improvisations, we played Steve Nelson-Raney’s Sextet 1998 and Kevin Schlei’s Languid Flow of Imaginary Vapors. Most of the pieces were accompanied by some sort of live visuals by Chris Burns, Brent Coughenour, or Kevin Schlei. The evening closed with an improvised soundtrack to Underwater Noise of Rain, a film by Lane Hall and Lisa Moline.
On the final night C-Squared, the flute/cello duo of Lisa Cella and Franklin Cox, performed a concert of contemporary music, mostly by “new complexity” composers. I was also able to work with them a bit on my current project, which they will premier during the second Unruly festival, in April, 2010. They’re both intelligent, helpful, friendly people, and the work session was fruitful – I’ve got a bunch of new ideas for the piece, both sonically and formally.
You know, since making the switch to Max/MSP from Pure Data, I’ve been quite pleased with what Max has to offer. One area that I think is generally overlooked by Max users is the ability to use Max as an algorithmic composition language for acoustic composition.
I’ve stumbled upon these abilities after playing around with a few different languages/environments that function as compositional tools. PWGL and Common Music are both nice, I’ve even taken a course in Common Music, but they’re both Lisp-based (which for me makes them awkward – C is my first language, and I still think in terms of nested loops and function calls).
PD doesn’t really have any built-in tools for anything, which is good and bad – it forces you to really think through a problem, thus ending up with a totally unique and personal solution, but it also takes forever to accomplish complex tasks.
I tried using straight C/C++ to build my own tools, but that was ridiculous. I am not interested in spending more time than I have to for coding.
Max has the [zl] object, which provides a bunch of list-processing functions, many similar to some of the methods found in SuperCollider. There are sorting and comparing functions, along with iteration and scrambling capabilities. I mean, try using PD to make a random tone row generator which assembles a random list containing no repeated elements. In Max, it’s literally like two objects. Simple.
Now, not to sound like a Cycling ‘74 ad, because proprietary software still kinda sucks and makes a lot of things more difficult for us, and because the help browsing in Max 5 is broken in Snow Leopard, but I think this is a fruitful area to explore.
You might want to check this out, too: Karlheinz Essl’s: RTC-lib
Composer of electroacoustic and chamber music from Milwaukee, Wisconsin - Currently a pursuing a Masters in Composition at the University of Wisconsin, Milwaukee.

Search engine optimization by SEO Design Solutions