Forum

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:
https://www.youtube.com/watch?v=a4FBL6sARNI&list=PLXGA7pVjV1jdfe2FaEs2EzuZ-16HLH1_0

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)
test.zip (333 Bytes)

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

4 Likes

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

Update:
image
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.