[PD-dev] SVG Knob idea based on VCV Rack knob implementation

Jakob Skouborg syntaxerror60 at hotmail.com
Fri Oct 30 19:05:29 CET 2020

Hey guys!

Had a really long week, so didn’t have too much time to look into the mailing list.

Yes, it was basically just to have a knob, but a more customisable knob. I did take part in the knob talk, both in Facebook group and on GitHub. 

This idea was just the next step(in my head at least) :) 

I just thought it would be a bit more “open” to have a knob that can change the way it looks, by loading an SVG on to it. It would really open up a huge world for making nicer UI’s in PD :) 

I will look into the tcl/tk stuff, thanks :) 

Oh, so it’s not going to be a straight forward job, I guess. I will do some research about the tcl/tk, to understand it a bit better, thanks for the hints. All though it doesn’t seem possible, as you describe it.

I did think about the knob idea, with maybe 128 images, with different knob positions. But it seems like a huge amount of work to go through and would have to be redone if one wants to make another knob, with another UI. But yeah, I think I need to try it out :) 

The game looks really cool by the way, inspiring ;) 

I try to just use one single version of PD, before I had many instances and settings messed up all the time, cause it loaded the wrong settings for the wrong version of PD and make a mess of things. So I try to just stick with one single version.

Have a great weekend ;) 


Alexandres mail pasted in:

Hi, is this only for "knobs" and just to have a knob in Pd? I assume not, cause there are knob externals for Pd and a PR to include one in Vanilla https://github.com/pure-data/pure-data/pull/938 <https://github.com/pure-data/pure-data/pull/938>

But I guess the point is a more generic object to load SVG files and period, which sounds like a good thing in general!

I'm still learning a bit about GUI objects in Pd, but I guess what you need to research is if tcl/tk can load SVG files and how.

So start by doing a google search on "tcl/tk + SVG". For what I see in the same search is that it does seem possible indeed!

> On 23 Oct 2020, at 23.02, Jonathan Wilkes <jancsika at yahoo.com> wrote:
> Hi Jakob,
> Purr Data uses an HTML5 interface and the guis are drawn using SVGs.
> There is also Pd-l2ork 1.0 which uses a library called "tkpath" for a subset of SVG functionality on a special tkpath canvas widget. Sadly, the original author of that library passed away and AFAICT the library hasn't been ported forward for more recent versions of tcl/tk.
> As for tcl/tk-- it appears the next version of tk will do a one time conversion from an SVG file to a raster image. But that would not give you the ability to change any of the attributes on the fly-- e.g., rotating the knob based on input values.
> On the other hand, I guess you could load the same knob SVG image multiple times and just substitute a different rotation value for each image loaded. Once loaded, you could switch out the displayed image displayed with the correct rotation value for the given input.
> That's basically what I did for the little sprite game I wrote in Purr Data, and it worked pretty well both using tkpath and in HTML5[2].
> [1] https://core.tcl-lang.org/tips/doc/trunk/tip/507.md <https://core.tcl-lang.org/tips/doc/trunk/tip/507.md>
> [2] https://forum.puredata.info/topic/13081/purr-data-sprite-game <https://forum.puredata.info/topic/13081/purr-data-sprite-game>
> On Friday, October 23, 2020, 12:07:45 PM EDT, Jakob Skouborg <syntaxerror60 at hotmail.com> wrote:
> Hey guys!
> Just some Friday thoughts about Pure Data and UI elements, like knobs, etc.:
> In VCV rack, it's pretty easy to make your own knobs for your modules. You can use the free open source program called Inkscape to make a knob, which is basically an SVG file.
> I was thinking that it would be really cool to be able to do something similar in Pure Data. To have an object/external that can load these knob SVG files into it, and then use the mouse to set a value(and knob position) between 0-1, either by dragging up/down or left/right and pressing the mouse on top of the object. It would really open up a whole new universe for Pure Data and making nice user interfaces.
> I have been playing with coding audio stuff for a few years in c++, mostly at hobby level, and I was wondering how hard it would be to make an object like that(if possible at all), that can load an SVG files created in Inkscape?
> Since VCV Rack is open source, I think I am going to see if I can find the code for the knob implementation this weekend, to see how it works in VCV.
> But first of all I am just curious about it and was looking for more experienced programmers though, especially you guys, who know a lot about PD, if it's a completely lost cause or if it is plausible idea.
> Personally I have not yet created any Pure Data externals, but I have been looking through some of dr. Hernandez pure data external creation tutorials on YT. I did make a bunch of VCV rack modules, so I know a bit about that.
> Any thoughts are welcome  
> Besides that, have a great weekend!
> Best wishes, Jakob
> _______________________________________________
> Pd-dev mailing list
> Pd-dev at lists.iem.at <mailto:Pd-dev at lists.iem.at>
> https://lists.puredata.info/listinfo/pd-dev <https://lists.puredata.info/listinfo/pd-dev>

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.puredata.info/pipermail/pd-dev/attachments/20201030/24164fcc/attachment-0001.html>

More information about the Pd-dev mailing list