Puredata compositions

Here's a some pieces of music as puredata. There's only a few because I have been working on Gnomadic tracks in Pd for a year and like to keep some of those back to play live and keep a little surprise. But I think these are useful for discussion of Pd as a composition tool. They represent a slice into the way I work and think about Pd music, at least on one level. I've never studied composition at school beyond O level music so I have to be honest and say I make up all my techniques as I go along, depending how I want to think about the data landscape and the emotive movements within it. That's a very hand waving and wooly way to put it, but as a scientist-brained person that's the best I can do, I rather struggle to find words to explain artistic things. Sometimes, I'm not even sure how I get there and have to go back and study my own code to figure out the intuitive moves, it's not all planned in a grand scheme. I guess that's the real beauty of Pd, nothing I used before like Logic or Cubase ever gave me the "orthoganal" capabilities available now. In a way, Pd is (can be) only just an inch above writing out the music as equations. Unlike Csound I can see so much more of the big picture in a single glance. I think that's the enabling feature that makes it possible to "see" both the orchestra and the composition and work on it. Both these first two pieces are "stochastic", so instead of writing in every note there's a density and spread that determine the likelyhood of a note at a certain point, that's all. I spent a lot of time in 2005 working on programs to write music, trying out all kinds of things like Markov and expert systems to navigate through a score. These examples are much more manual though, the original 3 x 10 matrix for Pokesdown was made by listening carefully to the tension between rows and diagonals, then trying to impose temporal order along threads that sound nice together. If I were you I wouldn't use these as templates, but develop my own style and maybe use them as something to dip into to study any devices you like.

Moon over Pokesdown station

This patch is a curiosity, it's my first Pd music. I sat down one evening in 2005 after playing with Pd for a few weeks and boshed this together as a composition. It contains many technical mistakes, it is terribly ugly visually, but I rather liked the result. I suppose it's an example of "real working Pd code", the way one throws things together in the studio without bothering about making it neat (but not as wild as livecoding). I remember starting at the bottom, writing each instrument, then the control structure, and then going back to the middle and "parameterising" the sequences and tweaking the instruments to work best in the mix. Comments and layout are a practical aide to keep it easy on the brain, because it was actualy very rushed. I think from start to finish about 4 or 5 hours. I have made a much neater version of this with a GUI that I use to play live, but I leave the original here. Unlike my first Csound compositions back in 1998/9 which were very hard work and took weeks, this one gave me the very warm feeling of not only building the entire sound myself from nothing, without samples or midi, but the feeling that I could do it again, that composing directly in Pd was not just possible, but pleasurable. puredata file

Christchurch Priory

I decided to revisit Pokesdown on the aniversary of writing it, so this is a development of the previous work. I didn't want to do a Jean Michelle Jarre and have a whole bunch of things called Nitrogen 12, Nitrogen 13 and all the isotopes, so although this piece started life as Pokesdown 2 I decided to move to the next station along, which happens to be Christchurch. You can see the old priory from the riverside where the tracks cross, its one of the oldest Christian churches. Anyway, this is a stochastic composition. Structually it's well defined, each instrument comes in and out at fixed times, but the microstructure of what each part plays changes quite a bit. It should never play exactly the same twice, but of course I kept a balance that means it always sounds very similar. Take it apart and study the ways of generating notes. Some parts just wander, others follow patterns derived from modulo arithmetic and trigonometric functions, some are completely random. I've added a slightly bigger pallete of sounds to this piece too, the oboe is new and there are some more interesting percussion parts. I think I decided the strong sound in Pokesdown was the pizzy plucks, so those still feature, they carry the "resolving" parts of the chord matrix so an uplifting feeling comes across when they fall in. You will also see how much tidier this is than the original Pokesdown patch, and that it has the score properly separated from the synthesis layer. The reason for using local scoped dollar variables is mainly so I can load this patch against others when playing live. Although this is neater it hasn't been tarted up much, it represents the improvement I've made in style since writing Pokesdown a year ago. So this is pretty much the way I lay out musical puredata as I work now, although in this case many of the instruments were cut and pasted from the first piece and cleaned up. To answer a question I've been asked about mastering, how do I get a good take when the process has random elements? The answer is, for the Gnomadic stuff, I just record a load and choose some nice bits to stitch together in an editor;) The cool thing about music as Pd instead of a recording is that it might do different things for you! Maybe better than the parts I pick for a "definitive" version. puredata file

Chinatown 2

Not really much of a composition, very gamesy. You could put this code in a Chinese temple or something for background music instead of a loop. This was up on the site ages ago in a less polished and less portable version. (Been getting a lot of hits from China recently and I'm sure they would tell me how dreadfully fake and not chinese it is, if we had the language, oh well :)) There's 4 parts, an additive bell, a phasor-fm based gong, a hand-drum made from filtered noise, and a plucked string thing. The composition switches between a handfull of different control message sources, each moving in different patterns around the scale. puredata file

Resonance Cascade Scenario

This is a completely different style of composition and music. It's a very different way of programing too. There are 11 main objects in this phase synchronous arrangement. Everything derives as a function of one prime mover, a single phasor which scans every bar. There is a sample loop player, and some sample loops are used here too so you need to unzip the sounds directory. The other synths are FM bass and effects, a little drum machine, and an acid synth using table scanning, all of which are synchronous with the master phasor. Inserted into the phasor signal are some timeline warping effect to show how you can make grooves and turntable effects by manipulating the timeline directly. You could modify this architecture to make a nice application like Tractor or TerminatorX for turntable control. You could do all sorts of crazier things than the perfect backspin in this example, try hooking up some symmetrical sigmoid curves to get scratching, if you integrate the time you can get a value which is the difference between the elapsed time and the warped time so you can adjust for a jump to the exact location to drop any DJ-fx right back in on the beat :), sorry about the cheesy samples - they are mandatory for this kind of music. zip archive of puredata file and samples