-
tasteforreality
Hi,
I had a thought the other night as I was working on a large patch. I've recently been trying to improve my general programming skills, specifically PHP which I write a lot of at work, and part of that has been reading up on some of the standard Design Patterns that are in use.
It got me thinking, are there some useful, standard design patterns that can be applied to PD to help with large projects. Obviously PD is totally Object Oriented but in a different manner to most usual programming languages. dynamic creation of objects is possible but requires some amount of meta programming which can be tricky/clunky IMHO and it's not just a simple matter of passing references to objects around.
I'm planning to start writing up some blog posts with more of my thoughts, ideas and examples but i figured that it might be worth asking on here as to what people think. Are design patterns useful in PD? Is it worth trying to use existing design patterns in PD or is it just too different? Should I stop trying to involve the boring world of software engineering in the fun world of experimental music? tell me what you think
-
tasteforreality
Hi all,
I've spent the last couple of weeks putting together a Pure Data based streaming radio station and it's finally at the point where I'm happy to let people know about it.
The system is a python script controlling PD and is able to load and fade between patches, the output of which is then streamed over the net. The whole thing is running off a cheap VPS server but it seems to be holding up well.
You can listen to it currently by going to http://radio.rumblesan.com and there are more details available on the technical stuff at my blog, rumblesan.com
One of the things I'm hoping is that I can get some other people involved in this. I have lots of ideas and things I'd like to add in future, but the first thing that really needs doing is making more patches. Lots more patches!
Over the weekend I'm going to write up how the control and interface stuff works and all the info needed for people to create patches. All the code and the patches made so far are up on GitHub if people want to have a look, links are in the blog post.
-
tasteforreality
Hopefully the title isn't too unclear, wasn't sure of the best way to describe this in a line.
Basically what I want to know is if there is a way to give PD start up arguments or messages and have these used as abstraction arguments.
I'm specifically wanting to use this so I can have a net receive with a variable for the port and then control what port it is listening on by giving PD a different value as it starts up.
This is so I can start up multiple copies of PD and then control them independently.
Any help would be appreciated.
-
tasteforreality
Hi again
I've written up my patch on using the Tinker Bell chaotic map to make drones and thought I'd share it here.
The blurb is here, http://www.rumblesan.com/?p=151 but I'm attaching the patch here for those who just want to play.
It's fairly rough and a bit simple but there's alot of scope for exploring i reckon.
have fun
edit: i'm havng a few issues attaching the zip file, so here's a direct link
http://www.rumblesan.com/?p=151 -
tasteforreality
Hi all,
bit of selfless promotion here but some people may find this interesting. I'm currently doing a patch-a-day month on my blog where each day I'm creating or extending a patch and then writing it up.
Some of them are pretty basic, some are pretty interesting, I'm only on day 12 currently so there's a fair bit more to go.
http://www.rumblesan.com if you're interested.
cheers
-
tasteforreality
Hi all,
I feel that this is now at the point where i can start showing it to people and possibly getting some feedback. This is based off a Midi sequencer i wrote for the NDS but is now aimed at my touchscreen tablet which has a much bigger area to play with.
everything can be downloaded from my github repository
http://github.com/notesandvolts/Touch-Sequencer
The sequencer has two parts :-
Pure Data sequencer does all of the data stuff, midi sequencing, value storing.
The Python GUI just makes everything easier to use and a bit prettier than stock PD. It uses pygame for all the graphical stuff so you will need this to be installed as well.
The two communicate over OSC and my eventual plan is to have the tablet communicate with a rackmounted server over a wireless netwwork.Features
2 channel types, Grid and Curve. Grid features 8 grid based patterns either 8 * 16 or 16 * 32 sized grids. The patterns themselves are sequencable and there is a follow mode that shows the patterns being played on a channel so you can more easily edit it on the fly.
The curve channel features 8 wavetable LFOs with user drawable waveforms, variable lengths and independant midi channel capabilities. They currently only do standard Midi CCs and no pitch bend but thats something I want to change soon.The sequencer sends out Midi clock start/stop/clock information so it can be used as a master clock for a bunch of gear. It currently doesn't sync to a midi clock but again i'd like to do that eventually.
I've tested the whole thing a bit and it works however i'm sure there are going to be more issues. Any feedback is welcome, even if its people just giving advice on how to do something better. The user interface is currently ugly but then i'm an engineer not a graphical designer
I hope people find this useful or informative or hopefully both.
Thanks for taking a look
Guy
-
tasteforreality
Hi all,
I feel this is probablly the place to put this, Mod please move if not.
I've been continuing to try and make my Pure Data based sequencer and after finding that things were a bit cluggish and ugly when it came to making a user interface i decided to have a scout around for other ways of doing it.
The final result is that I've been using Python for making GUIs that can communicate using OSC and things are going rather well. It's all a bit of a learning curve but its getting to the point where i felt it may well be useful to start sharing it. To this end I've started hosting things on GitHub so people can use/fork/edit as they may wish.
Currently it's just the python scripts but this evening i'll put up the beginnings of some PD and MaxMSP patches that i'm building to use with this.
http://github.com/notesandvolts
is the link to my repositories on github. Hopefully some people might find this useful.
Guy
-
tasteforreality
OK, further to my previous questions I'm having issues using arrays
It seems to be really hit and miss which is probablly what annoys me the most
I create a struct object with an array of floats, defined as
struct test-struct-template array a float
this is in a patcher called test-struct-template
i have a data window called array-struct-test-window
Im using setsize and getsize, passing them pointers and then sending or recieving floats. If i copy/paste the example in the help file then i can get it working, but if i try to build it from scratch then i get empty pointer errors. I just cant seem to get to the bottom of it.
any help would be much appreciated, i've attached a test patch to show what im trying to do. i'm guessing its just something very simple and obvious.... at least i hope it is heh
-
tasteforreality
Hi all,
I'm currently having a bit of trouble wrapping my head around the data structure stuff in PD.
I'm currently building a drum sequencer with multiple patterns and a pattern sequencer. It's currently using an 8 by 16 grid of toggles and some radio buttons but my plan is to build the "back end" in PD and then use something like pyGame to make a nicer looking interface and communicate via tcp sockets.
Incidently, this is all for running on one of these,
http://alwaysinnovating.com/home/index.htm
It took a bit of persuasion but it seems to run fine.Anyway, the crux of the problem im having is basically just understanding how i can deal with multiple structs. I have a patch that has a struct and a data window, there are 8 toggle rows which each correspond to a float in the struct and i have a system that can store and recall 8 patterns. The pattern sequencer works and i have everything working so that i can step through sequenced patterns nicely and get the toggle button states coming out. All good so far.
My only real issue is that this is just one track and i'd like multiple tracks, but i dont really get how i could go about making an abstraction that contains a struct and a data window i can write to but without having things interfere with each other. I realise that data windows need to be unique, but what about templates and the structs themselves?
any help on this would be much appreciated, I'll try to post up my patch when i get a chance later this evening
-
tasteforreality
hey ahs,
a better bet is to download the entire repo of patches from github as a zip file here
https://github.com/notesandvolts/Radio-Patches/downloads
when you want to play a patch as a stand alone version, copy the patchComs.pd abstraction into the patch folder, then start the patch as usual. patchComs mimics the patch startup as if it were played on the radio and handles the audio output