• 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

    posted in technical issues read more
  • 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.

    posted in news read more
  • 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.

    posted in technical issues read more
  • 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

    posted in patch~ read more
  • 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

    posted in patch~ read more
  • 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 :P

    I hope people find this useful or informative or hopefully both.

    Thanks for taking a look

    Guy

    posted in patch~ read more
  • 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

    posted in news read more
  • 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

    http://www.pdpatchrepo.info/hurleur/arraystructwut.pd

    posted in technical issues read more
  • 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

    posted in technical issues read more
  • 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

    posted in news read more
  • tasteforreality

    hah, i spent ages coming up with a version in PD that worked by interleaving lists and this just blows it away. I tried to work out a simple/elegant way of doing it using the basic maths but couldn;t get my head around it, well done for doing it

    posted in technical issues read more
  • tasteforreality

    Hey Tango,

    glad to hear you like it. the project has fallen on the back burner a little bit but I still try to work on it semi regularly.

    if you want to help out then have a go at writing a patch for it. there's not much to it and the guidelines for how to do it are back up on the site at http://radio.rumblesan.com

    cheers for taking an interest

    posted in news read more
  • tasteforreality

    hey, indeed the now playing part hasn't been re added to the site yet, needs to be fixed.

    and yeah, the python script crashed but PD kept going so the same patch has been playing for... quite a while now, someone else pointed it out to me tonight.

    I've restarted the stream but I need to improve the logging and error handling.

    would be awesome to have you contribute, just drop me a linbe, i have a couple of patches to go on, i'm just being rubbish about getting to it. Might have a code push again over xmas

    posted in news read more
  • tasteforreality

    Quick question, is it ok for us to link to external sites with tutorials or should we put everything on the forum here?

    I've written up a bunch of basic lessons on my blog that some people may find useful but I'll copy them over to here if that's preferred.

    posted in tutorials read more
  • tasteforreality

    check out the [change] object. should do exactly what you're after

    posted in technical issues read more
  • tasteforreality

    Hey, I'm afraid the output from the patches must be audio. changing that would be quite a lot of work currently.

    I don't actually have any experience using SoundFonts with PD either. I'm guessing there's an external needed, is it in one of the existing PD libraries or would i need to add it separately? No problem if I do, I'm happy to try and accommodate peoples patches if i'm able.

    if you can give me some more info then i;m sure we can work something out

    posted in news read more
  • tasteforreality

    0ms will be impossible I suspect just due to the way that digital audio works.

    Start by assuming that everything is dealing with 64 sample blocks of audio. This is a big assumption as I'm not sure how audio hardware is going to do what it does but it should be fine for some rough calculations.
    We'll also just be dealing with one channel here.

    Audio hardware needs to capture that 64 samples of data from one channel. It won't send that data down the USB/Firewire/PCI bus until it has the full 64 samples which means that there is already delay there, the first sample won't be sent until the last is captured.

    (1 second / 44100 samples) * 64 = 0.00145 or about 1 and a half milliseconds

    Even with the best audio hardware this limitation is still there.

    On top of this you need to add on the time to process the audio, there will probably be some time wasted scheduling everything etc etc. ultimately you're always going to have a couple of milliseconds latency between audio coming into the computer and then going back out.

    that said, how much of an issue would 5ms latency be? generally people can't notice anything less than 20ms of latency and I understand that Yamaha engineers aim for about 4 or 5 ms of latency with all their electronic midi controllers/instruments as that's the point that it sounds instantaneous to people.

    Someone with more experience here please feel free to correct me if I'm wrong though

    posted in technical issues read more
  • tasteforreality

    oh sweet, i just got a galaxy s2 the other day and i'll try this out asap

    posted in news read more
  • tasteforreality

    using abstraction arguments as part of the name for other abstractions is a pretty nifty idea. it's things like that that I want to document.

    other things that I've been playing with are how to use dummy and "pass through" inlets and outlets to make routing messages to a subset of objects easier.

    posted in technical issues read more
  • tasteforreality

    hey, thanks for the heads up, looks useful. I need to read more of pd-tutorial.

    i'd actually forgotten about this post, i put together the sequencer i was planning to build but it wasn't as good as i was hoping, partly due to less than stellar hardware.

    I know i somewhat got the hang of data structures but can't remember much of them now. I should probably have a look at them again. I might actually try and write up a couple of useful tutorials on them since the info that really explains them still seems to be spread about a bit.

    posted in technical issues read more
Internal error.

Oops! Looks like something went wrong!