Archive for the ‘ Uncategorized ’ Category

Disquiet Feature

Marc Weidenbaum, over at Disquiet.com, has posted a nice writeup of my recent Soundcloud sketches.

Notes on current collaboration

More tabulaRasa kits on the way.

More tabulaRasa PCB/Chip kits will be available in the next week. Contact me if interested.

 

Tips for a Successful Open-source Hardware Project – Shipping

There are two parts of the final step in an open-source project: manufacturing and shipping. The only real trick in finishing your project is to do both of these things as quickly and carefully as possible.

If you can, get someone to help you assemble the project. You can do it assembly-line style, and probably knock it out in an afternoon or two, depending on the numbers. It’s best to start on it as quickly as you can. Sometimes the task of assembly can seem too daunting to start, but it becomes much more manageable once you’ve started.

For shipping, I don’t recommend anything fancier than USPS first-class mail. I’ve shipped out dozens of PCBs, Kits, Components, etc, and have only had one package delayed or lost (we still haven’t determined that it’s actually lost), and that package was sent from the US to Germany. You’ll have to fill out a customs form for each package sent internationally, but other than that, the process is as simple as dropping addressed packages / envelopes off at the post office.


Image

Working on Colleen Ludwig's "Shiver" Installation, 2010 - Photo by Colleen Ludwig

Working on Colleen Ludwig's "Shiver" Installation, 2010

Modular Synth Patch – Work in Progress

Screen shot 2010-03-22 at 10.10.34 AM

Wikipedia Entry

Probably breaking some rules here, but… http://en.wikipedia.org/wiki/Greg_Surges

Live Coding w/ Chris Burns 12.11.2008 – Video Now Online

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.

Write your own Pure Data External! (Part 2)

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 t_class *randomwalk_class; // declares a pointer to the object

typedef struct _randomwalk
{
t_object x_obj; // the required t_object
t_float current; // the current value
t_float step; // step width
t_float lower, upper; // bounds
t_outlet *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 t_object x_obj; 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 t_float 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 t_outlet *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.

Write your own Pure Data external! (Part 1)

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.