Integration With Pure Data

It would be cool to have some integration in Renoise with something like Pure Data (Like Ableton Live has Max integrated).

Maybe the Lua scripting is something just like this. But I like visual programming, and also be able to do DSP and Video :)

Seconded, although I have no idea how this would work.

Would be cool indeed.

I guess we can already input/output from/to PD (I used PD in the past, but not yet with renoise, mainly because I feel it’s a little too cumbercome as is), but some kind of session handling that saves and loads whatever was done with PD would make it more practical.

Is this mainly a concept thread about graphical scripting in Renoise or is there something specific one wants to do with a Renoise & PD pairing?
Right now one can use OSC from/to Renoise to control PD from/to Renoise’s LUA scripting, and in windows it is even easier using OSCGlue. OSCGlue can act as both an instrument and an effect in Renoise with a switch in OSCGlue’s configuration ini.

I’m not sure which, but I like graphical scripting. :P

One thing could be to enable people to program their own externals and use them in Renoise as controls… without switching between applications.

Hmmm. Maybe I should actually get started with using renoise and PD together ASAP. Found only a few pages mentioning what first steps to take, are there any central collection of resources regarding Renoise/PD?

There is no such resource. It’s a relatively new concept. Keep your eye on the L2Ork, maybe? They have added Renoise to their predominantly PD environment. Should be interesting to see what’s next.

Well, rather than start a new thread I thought I’d bump this one back up.

I see that pure data integration has been previously proposed (see above).

However, what appears to be new is libpd, which is an abstracted version of puredata suitable for embedding into/wrapping within other software. From the PD users point of view it wraps ‘adc~’, ‘dac~’, ‘midiin’ - which are audio in, audio out and midi in respectively and strips out the tk/tcl based GUI. It’s BSD licensed so I don’t see any issues in that area. Programming interface overview available here.

How I would envision this to work within Renoise would be an instrument could be assigned as a ‘PD instrument plugin’ (in a similar way that instruments can be ‘vst’, ‘dssi’ etc.).

There could also be a ‘PD’ dsp effect which would work in a similar way.

The GUI integration would be simple, just a ‘load patch’ button and status indiciating which patch is loaded (error messages would be shown on loading a broken patch).

As adc~, dac~ and midiin are wrapped in the libpd version, patches do not need to be converted or modified for use (i.e. edit and refine the patch independantly in pure data, save and then use in libpd in Renoise).

I think this would add yet another layer of customisability to Renoise (create your own cross platform instruments and effects) with less work than creating something from scratch. It would also allow instrument/effect designers to utilise all the experience, knowledge and tutorials available for Pure Data.

I don’t expect this to appear in any forthcoming version soon, but it is something which I feel could be incorporated into a longer term plan.


PD for noise

oh yes, this is absolutely fantastic idea!

That does look nice mxb. I hope the Devs give it some serious consideration some time in the not-too-distant future! :)

interesting idea, gets my vote, although I am still not too much versed into pd programming

Open Object

well, gave a look at libpd some months ago, but i have to say, it’s pretty badly written and only supports a single instance as all the objects in there are static (only a single instance of libpd can run simultaneously):

so it will require a lot of work and a complete rewrite from the ground up to allow it to run multiple instances as plugins inside our engine.

I’m not sure focusing on just pd or any other environment is the best idea…

I think really good jack integration and a more thourough and flexible set of OSC commands is whats needed. That way we could control Renoise from any language we liked and route audio to it from wherever we fancy.

also some sort of OSC sending instrument/dsp device wouldn’t go amiss.

if you haven’t yet looked in to integrating stuff with renoise this way I’d highly recommend it. I’ve had much fun using SuperCollider with renoise in this fashion.

I’m not disagreeing with this (as you’ve obviously looked into it more than myself), but I don’t quite follow it.

If an instrument were assigned to libpd, why would you need more than one instance? Is that because of assigning multiple instruments to ‘PD’ type? Can you not create a new instance of the library per instrument or is there something shared across all instances? :huh:

I understand OSC connectivitiy is really good (I’ve not use it much myself), but it would be nice to have everything self-contained :)

You only have libpd_init and libpd_openfile, then all your generation goes into a single audio callback. That is ok when instantiating a single instrument, but when you add the second and call libpd_openfile then bam! You are overriding the first file loaded first, then calling twice your callback will produce static noise, cause you are calling two times in a buffer a callback that should be called only once. Not mentioning thousands other problem of shared static variables used all among the library.

A good way to write a library, is to provide creation of handles, that can be saved in different plugin/instrument instances and that behave each on its address space without even knowing the existence of the others !

+1 for noisecollider too! Supercollider is really powerful and not that hard to learn, they can already comunicate via OSC but it can be more that great if you can code directly from renoise without having to launch n connect everything separatly. Great way to get people who doesn’t know SC into it too. We can imagine a simple customizable GUI with buttons n knobs that interact with SC. And a new page on the renoise website to share several dsp/instruments :)

Thank you for the detailed explaination.