VL Pure Data

I recently decided to check the possibility of integration PureData to VL and was surprised that @tonfilm had already tried C# integration in 2012. Since I do not really understand all these libraries and dlls, after several attempts to put them in all possible folders, I decided to ask a question here - do you have any ideas how to start this? Also there is a newer integration developed for Unity, but I think it’s can be integrated in VL also. This could be an interesting starting point for integrating PD as a sound engine.

Upd: I did start it. But how to get sound from this?)

Since the VL.Audio is based on NAudio, the wrapper should be implemented, right?

There is a playlist with PD to Unity integration tutorials:

mindsync… i just had a look at this last night and luckily we’ll not have to rely on a weird unity integration but there is actually a proper .NET nuget: LibPDBinding.

haven’t tried this yet, but i’d hope that we’ll be able to integrate this beautifully with a factory that generates a VL node for each .pd file it finds in a directory. ideally complete with input and output pins that magically talk to PD senders and receivers under the hood…

with the mentioned nuget i’d first start a proof of concept by trying to build this example in VL.

Actually I have some results. But need to figure out how to sync buffers.
In example from github used interface IWaveProvider and CircularBuffer for samples
Looks like I manage it in wrong way

libpdtest.vl (49.7 KB) (333 Bytes)

It’s working! Proof of concept (11.4 KB)


Thanks @yar and @joreg. This is pretty exciting.
So far the PDobject returned is null and when I tried to force it Gamma crashes.

There is briefly an pink error outline around the CreatePD node, but Gamma falls over before I can check to see what it says. Checked on two computers with the same result

Would this mean I have to compile LibPD first or that it needs to be accessible to gamma?

@Hadasi look at nuget folder. There is a folder with dlls


put these dlls into the lib folder near LibPDBindings.dll and restart


like this


this move explained on github

Also, my proof of concept obviously works wrong — it slows down the time
I hope guys will suggest right way to manage a buffer exchanging

PureData may be a part of VL.Audio at some point

Thanks, works (I actually put them in the gamma exe folder but the right result all the same.