Live data from Hacker News

Pure Data as a plugin, with a new GUI

github.com

41–50 of 60 posts

Re: Pure Data as a plugin, with a new GUI

#41

PureData is an interesting tool, but it is very low-level. You have to reimplement from scratch things that are present in most DAWs or synths, for example: there is no GUI-controlled equaliser, no reverb. No oscilloscopes and FFT displays. If I am not mistaken, there is even no primitive for modulating frequency of one oscillator with another. The filters are very primitive and limited. The user is expected to learn…

You can find many [abstractions] doing the job you request. The key is to learn how to build them from scratch.

You can read Miller's book: The Theory and Technique of Electronic Music

It's free online.

Also these two tutorials are very helpful: https://archive.flossmanuals.net/pure-data/ http://www.pd-tutorial.com/

Re: Pure Data as a plugin, with a new GUI

#43

For those who are interested in music programming, I would like to invite you to have a look on the project I am working on and any feedback would be appreciated. https://glicol.org You can also live coding Glicol code as scripts inside a VST plugin: https://youtu.be/tmmBhBmIEW0 Pd is one of the most famous MPL and I have been referring to and reflecting on its design from the first day I design Glicol. I have been t…

Also check this project:

https://github.com/enzienaudio/hvcc

The heavy hvcc compiler for Pure Data patches. Very useful for working with embedded devices, which is also my current focus.

Re: Pure Data as a plugin, with a new GUI

#44

Earlier quoted context omitted.

> The other advantage is because these things were implemented in the 80s Pd was developed in the mid 90s > they are very computationally efficient Not as efficient as it could be, though. For example, instead of proper SIMD instructions, the DSP perform routines only use manual loop unrolling, praying that the compiler will auto-vectorize it. Finally, everything is single-threaded, leaving lots of performance on the…

Do you think rewriting pd in Rust can be a good solution?Async in Rust is one of its selling points: https://rust-lang.github.io/async-book/ There are some good gui tools in Rust as well: https://www.egui.rs/ https://github.com/setzer22/egui_node_graph

No, I don't think that Rust would buy us anything in this regard.

"Async" in languages like Rust are meant for an entire different problem domain (mostly networking).

In my post above I'm talking about dispatching commands from the audio thread to a helper thread (pool) - and back. This has to be done in a realtime safe manner, so a general async framework won't be appropriate.

> There are some good gui tools in Rust as well:

I don't think GUI programming is exactly one of Rust's strengths :-)

Re: Pure Data as a plugin, with a new GUI

#45

Earlier quoted context omitted.

The advantage of this PureData plugin and Max4Live over VCVRack is that you can edit the patch on the fly right in the DAW (in addition to the fact that visual programming is way more accessible than a compiled language).

Just FYI: you can do that too with a VST fork of VCVRack called Cardinal: https://github.com/DISTRHO/Cardinal

Yes. There os also a commercial initiative by the author of VCV to have it as a VST im the DAW. The difference between the two are that Cardinal only accepts open source modules and is packaged with all of them, while the VCV official VST lets you download modules on the fly.

Re: Pure Data as a plugin, with a new GUI

#46
post #34

From tcl/tk to juce - there is a lot to be said about that. Taking in all the FUDI commands from pdsend, and then translating it into a Juce GUI is pretty, and pretty neat. Especially if you can organize the patch cords. You may start a fight, with that in mind.

This is more or less what purr-data does (but then it's tcl to JS), but PlugData works differently. Basically, it assumes that patches only change through user interaction. Since all user interaction goes through PlugData's GUI, it can check and synchronise the patch content with Pd whenever the user does something. I do intercept messages to UI objects, to detect when their state has changed.

The big advantage of that is that we can change the way the UI looks without modifying any Pd source code. PlugData actually works on top of an unmodified pd-vanilla, which saves me a lot of maintenance work.

The only limitation with this is that dynamic patching (using messages to pd to modify the patch, like a meta-patch) doesn't work yet.

Re: Pure Data as a plugin, with a new GUI

#47
post #36

PureData has a very outdated looking GUI. Actually, it even looks as if the elements are rendered wrong. This has always driven me away from using it. This new thing has a much more pleasant looking GUI. Promising.

My issue with the PureData UI was that it was a RSI factory. Constantly having to precisely mouse-drag connections between the teeny-tiny ports on the objects: https://puredata.info/docs/wiki_doc_Images/StartHere/oscMult...

This is also really bad from an accessibility standpoint, and one of the reasons (though there are a few more) I started working on this project.

Re: Pure Data as a plugin, with a new GUI

#48

Earlier quoted context omitted.

> The other advantage is because these things were implemented in the 80s Pd was developed in the mid 90s > they are very computationally efficient Not as efficient as it could be, though. For example, instead of proper SIMD instructions, the DSP perform routines only use manual loop unrolling, praying that the compiler will auto-vectorize it. Finally, everything is single-threaded, leaving lots of performance on the…

Do you think rewriting pd in Rust can be a good solution?Async in Rust is one of its selling points: https://rust-lang.github.io/async-book/ There are some good gui tools in Rust as well: https://www.egui.rs/ https://github.com/setzer22/egui_node_graph

(BTW, I did not downvote your comment. I know that you have actually written audio code in Rust and therefore assumed it was an honest question from your side :-)

Re: Pure Data as a plugin, with a new GUI

#49

For those who are interested in music programming, I would like to invite you to have a look on the project I am working on and any feedback would be appreciated. https://glicol.org You can also live coding Glicol code as scripts inside a VST plugin: https://youtu.be/tmmBhBmIEW0 Pd is one of the most famous MPL and I have been referring to and reflecting on its design from the first day I design Glicol. I have been t…

I would love to get into this, but its syntax is so hard to read

I get that you went for a compact syntax that is fast to write (maybe like a shell scripting for music programming), but it's also too hard to read / too sigil heavy IMO

In special, the use of ` is very confusing and could probably be replaced by braces { }

Re: Pure Data as a plugin, with a new GUI

#50

I am only on mobile right now and travelling so can’t actually test this. But boy is it exciting to see a potential OSS alternative to max4live. I think Max and m4l are well worth the price if it’s something you do all the time, but as a more casual user something with a lower cost of entry would be highly welcomed.

If you're interested in something closer to M4L (having patches in a timeline / more classical DAW), I invite you to check the software I'm developing, https://ossia.io :) also wrote about Pd integration recently: https://periodicos.unespar.edu.br/index.php/vortex/article/v...
Post reply on HN