PatchWerk-Radio-old icon indicating copy to clipboard operation
PatchWerk-Radio-old copied to clipboard

An internet radio station that plays generative music from PD patches

PatchWerks, A PureData based generative music internet radio station

Stream: http://radio.rumblesan.com/ Website: http://www.rumblesan.com/

About

PatchWerks is an internet radio station that streams audio which is synthesised in realtime with PureData.

For questions you can check out the blog or email me at [email protected]

I also hang around in IRC, #doomcentral on irc.freenode.net

Intro

The core of the whole project is a Python script that starts up an instance of PD then gets it to dynamically load up patches chosen at random from a given folder. The patch will run for about ten minutes, at which point the audio will fade over to a newly chosen patch.

All audio is generated and modified in realtime on the server and the idea is for the patches to be generative in nature so that repeated listenings of the patches will always sound similar but different.

The whole lot is then streamed out in Ogg format straight from PD and can be setup to connect to any Icecast2 server.

Setup

To set everything up, just pull down the PatchWerks and the Radio-Patches repositories. Modify the config.cfg file to point to the Icecast server you wish to connect to and set the paths to point to the directories for the master and Radio-Patches. Start the PatchWerks script with a -c flag and the config file and everything should just work.

To run everything as a daemon on *nix I've been using daemontools. I still need to tweak the exact setup for this but I'll put it all in here once I've got it working satisfactorily.

Dependencies

Python 2.6 or greater is recommended, might run with older versions Pd-Extended

Still to do

So much, mostly just making a heap of patches but I'll put some of the current Todos as well as some of the nebulous "Future Features" here.

  • Stream Meta Data
  • Organising which PD Libraries get loaded at startup
  • Error handling and warning system
  • Database integration for keeping track of patch play number
  • Simple API for getting info on patches or current info
  • Dynamically loaded effects patches

Useful things

http://puredata.hurleur.com/

The Pure Data forum Full of people who know what they're talking about and are very willing to help.

#dataflow on irc.freenode.net Also full of helpful, friendly and clever people.

Thanks

The base PD Python class is based on the code written by Chris McCormick. His website can be found at http://mccormick.cx/chrism and is worth checking out because he's a bit of a PureData wizard.

Thanks also to rdz on #dataflow for bringing the dynamic patch loading in PD to my attention.