<html><head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;" class="">Hey guys!<div class=""><br class=""></div><div class="">Had a really long week, so didn’t have too much time to look into the mailing list.</div><div class=""><br class=""></div><div class=""><b class="">Alexandre:</b></div><div class="">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. </div><div class=""><br class=""></div><div class="">This idea was just the next step(in my head at least) :) </div><div class=""><br class=""></div><div class="">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 :) </div><div class=""><br class=""></div><div class="">I will look into the tcl/tk stuff, thanks :) </div><div class=""><br class=""></div><div class=""><br class=""></div><div class=""><b class="">Jonathan:</b></div><div class=""><div class="">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.</div></div><div class=""><br class=""></div><div class=""><div class="">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 :) </div></div><div class=""><br class=""></div><div class="">The game looks really cool by the way, inspiring ;) </div><div class=""><br class=""></div><div class="">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.</div><div class=""><br class=""></div><div class="">Have a great weekend ;) </div><div class=""><br class=""></div><div class="">Jakob</div><div class=""><br class=""></div><div class=""><br class=""></div><div class=""><br class=""></div><div class="">Alexandres mail pasted in:</div><div class=""><br class=""></div><div class="">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 <a href="https://github.com/pure-data/pure-data/pull/938" class="">https://github.com/pure-data/pure-data/pull/938</a><div class=""><br class=""></div><div class="">But I guess the point is a more generic object to load SVG files and period, which sounds like a good thing in general!</div><div class=""><br class=""></div><div class="">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.</div><div class=""><br class=""></div><div class="">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!</div></div><div class=""><br class=""></div><div><br class=""><blockquote type="cite" class=""><div class="">On 23 Oct 2020, at 23.02, Jonathan Wilkes <<a href="mailto:jancsika@yahoo.com" class="">jancsika@yahoo.com</a>> wrote:</div><br class="Apple-interchange-newline"><div class="">
<div class=""><div class="ydp3d1007deyahoo-style-wrap" style="font-family: Helvetica Neue, Helvetica, Arial, sans-serif; font-size: 13px;"><div class=""></div>
        <div dir="ltr" data-setdir="false" class="">Hi Jakob,</div><div dir="ltr" data-setdir="false" class=""><br class=""></div><div dir="ltr" data-setdir="false" class="">Purr Data uses an HTML5 interface and the guis are drawn using SVGs.</div><div dir="ltr" data-setdir="false" class=""><br class=""></div><div dir="ltr" data-setdir="false" class="">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.</div><div dir="ltr" data-setdir="false" class=""><br class=""></div><div dir="ltr" data-setdir="false" class="">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.</div><div dir="ltr" data-setdir="false" class=""><br class=""></div><div dir="ltr" data-setdir="false" class="">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.</div><div dir="ltr" data-setdir="false" class=""><br class=""></div><div dir="ltr" data-setdir="false" class="">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].<br class=""></div><div dir="ltr" data-setdir="false" class=""><br class=""></div><div dir="ltr" data-setdir="false" class="">[1] <a href="https://core.tcl-lang.org/tips/doc/trunk/tip/507.md" target="_blank" rel="noreferrer noopener" class="">https://core.tcl-lang.org/tips/doc/trunk/tip/507.md</a></div><div dir="ltr" data-setdir="false" class="">[2] <a href="https://forum.puredata.info/topic/13081/purr-data-sprite-game" target="_blank" rel="noreferrer noopener" class="">https://forum.puredata.info/topic/13081/purr-data-sprite-game</a></div><div class=""><br class=""></div>
        
        </div><div id="ydp98affbadyahoo_quoted_4067742653" class="ydp98affbadyahoo_quoted">
            <div style="font-family:'Helvetica Neue', Helvetica, Arial, sans-serif;font-size:13px;color:#26282a;" class="">
                
                <div class="">
                    On Friday, October 23, 2020, 12:07:45 PM EDT, Jakob Skouborg <<a href="mailto:syntaxerror60@hotmail.com" class="">syntaxerror60@hotmail.com</a>> wrote:
                </div>
                <div class=""><br class=""></div>
                <div class=""><br class=""></div>
                <div class=""><div id="ydp98affbadyiv4389318761" class="">
<div class=""><div style="font-family:inherit;" class="ydp98affbadyiv4389318761"><div class="ydp98affbadyiv4389318761" style="font-family:inherit;"><div class="ydp98affbadyiv4389318761dati1w0a ydp98affbadyiv4389318761hv4rvrfc ydp98affbadyiv4389318761ecm0bbzt ydp98affbadyiv4389318761e5nlhep0" id="ydp98affbadyiv4389318761jsc_c_12o" style="padding:4px 16px;font-family:inherit;"><div class="ydp98affbadyiv4389318761irj2b8pg ydp98affbadyiv4389318761cbu4d94t ydp98affbadyiv4389318761ew0dbk1b ydp98affbadyiv4389318761j83agx80" style="font-family: inherit;"><div class="ydp98affbadyiv4389318761qzhwtbm6 ydp98affbadyiv4389318761knvmm38d" style="margin-top:5px;margin-bottom:5px;font-family:inherit;"><span class="ydp98affbadyiv4389318761fgxwclzu ydp98affbadyiv4389318761mau55g9w ydp98affbadyiv4389318761d9wwppkn ydp98affbadyiv4389318761jq4qci2q ydp98affbadyiv4389318761oo9gr5id ydp98affbadyiv4389318761nxhoafnm ydp98affbadyiv4389318761d2edcug0 ydp98affbadyiv4389318761a8c37x1j ydp98affbadyiv4389318761knj5qynh ydp98affbadyiv4389318761fe6kdd0r ydp98affbadyiv4389318761c8b282yb ydp98affbadyiv4389318761hzawbc8m ydp98affbadyiv4389318761iv3no6db ydp98affbadyiv4389318761keod5gw0 ydp98affbadyiv4389318761ik7dh3pa ydp98affbadyiv4389318761c1et5uql ydp98affbadyiv4389318761a3bd9o3v ydp98affbadyiv4389318761oi732d6d ydp98affbadyiv4389318761aigsh9s9 ydp98affbadyiv4389318761qv66sw1b ydp98affbadyiv4389318761hpfvmrgz" style="line-height:1.3333;display:block;max-width:100%;font-family:inherit;min-width:0px;"><div class="ydp98affbadyiv4389318761cxmmr5t8 ydp98affbadyiv4389318761ii04i59q ydp98affbadyiv4389318761c1et5uql ydp98affbadyiv4389318761kvgmc6g5 ydp98affbadyiv4389318761hcukyx3x ydp98affbadyiv4389318761oygrvhab" style="margin:0px;white-space:pre-wrap;font-family:inherit;"><div style="font-family:inherit;" class="ydp98affbadyiv4389318761">Hey guys!</div></div><div class="ydp98affbadyiv4389318761cxmmr5t8 ydp98affbadyiv4389318761ii04i59q ydp98affbadyiv4389318761c1et5uql ydp98affbadyiv4389318761hcukyx3x ydp98affbadyiv4389318761o9v6fnle ydp98affbadyiv4389318761oygrvhab" style="margin:0.5em 0px 0px;white-space:pre-wrap;font-family:inherit;"><div style="font-family:inherit;" class="ydp98affbadyiv4389318761">Just some Friday thoughts about Pure Data and UI elements, like knobs, etc.:</div></div><div class="ydp98affbadyiv4389318761cxmmr5t8 ydp98affbadyiv4389318761ii04i59q ydp98affbadyiv4389318761c1et5uql ydp98affbadyiv4389318761hcukyx3x ydp98affbadyiv4389318761o9v6fnle ydp98affbadyiv4389318761oygrvhab" style="margin:0.5em 0px 0px;white-space:pre-wrap;font-family:inherit;"><div style="font-family:inherit;" class="ydp98affbadyiv4389318761">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.</div></div><div class="ydp98affbadyiv4389318761cxmmr5t8 ydp98affbadyiv4389318761ii04i59q ydp98affbadyiv4389318761c1et5uql ydp98affbadyiv4389318761hcukyx3x ydp98affbadyiv4389318761o9v6fnle ydp98affbadyiv4389318761oygrvhab" style="margin:0.5em 0px 0px;white-space:pre-wrap;font-family:inherit;"><div style="font-family:inherit;" class="ydp98affbadyiv4389318761">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.</div><div style="font-family:inherit;" class="ydp98affbadyiv4389318761"><br class="ydp98affbadyiv4389318761"></div></div><div class="ydp98affbadyiv4389318761cxmmr5t8 ydp98affbadyiv4389318761ii04i59q ydp98affbadyiv4389318761c1et5uql ydp98affbadyiv4389318761hcukyx3x ydp98affbadyiv4389318761o9v6fnle ydp98affbadyiv4389318761oygrvhab" style="margin:0.5em 0px 0px;white-space:pre-wrap;font-family:inherit;"><div style="font-family:inherit;" class="ydp98affbadyiv4389318761">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?</div></div><div class="ydp98affbadyiv4389318761cxmmr5t8 ydp98affbadyiv4389318761ii04i59q ydp98affbadyiv4389318761c1et5uql ydp98affbadyiv4389318761hcukyx3x ydp98affbadyiv4389318761o9v6fnle ydp98affbadyiv4389318761oygrvhab" style="margin:0.5em 0px 0px;white-space:pre-wrap;font-family:inherit;"><div style="font-family:inherit;" class="ydp98affbadyiv4389318761">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.</div></div><div class="ydp98affbadyiv4389318761cxmmr5t8 ydp98affbadyiv4389318761ii04i59q ydp98affbadyiv4389318761c1et5uql ydp98affbadyiv4389318761hcukyx3x ydp98affbadyiv4389318761o9v6fnle ydp98affbadyiv4389318761oygrvhab" style="margin:0.5em 0px 0px;white-space:pre-wrap;font-family:inherit;"><div style="font-family:inherit;" class="ydp98affbadyiv4389318761">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.</div></div><div class="ydp98affbadyiv4389318761cxmmr5t8 ydp98affbadyiv4389318761ii04i59q ydp98affbadyiv4389318761c1et5uql ydp98affbadyiv4389318761hcukyx3x ydp98affbadyiv4389318761o9v6fnle ydp98affbadyiv4389318761oygrvhab" style="margin:0.5em 0px 0px;white-space:pre-wrap;font-family:inherit;"><div style="font-family:inherit;" class="ydp98affbadyiv4389318761">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.</div></div><div class="ydp98affbadyiv4389318761cxmmr5t8 ydp98affbadyiv4389318761ii04i59q ydp98affbadyiv4389318761c1et5uql ydp98affbadyiv4389318761hcukyx3x ydp98affbadyiv4389318761o9v6fnle ydp98affbadyiv4389318761oygrvhab" style="margin:0.5em 0px 0px;white-space:pre-wrap;font-family:inherit;"><div style="font-family:inherit;" class="ydp98affbadyiv4389318761">Any thoughts are welcome <span class="ydp98affbadyiv4389318761sf5mxxl7 ydp98affbadyiv4389318761oygrvhab ydp98affbadyiv4389318761gl3lb2sf ydp98affbadyiv4389318761tbxw36s4 ydp98affbadyiv4389318761hhz5lgdu ydp98affbadyiv4389318761pq6dq46d ydp98affbadyiv4389318761knj5qynh ydp98affbadyiv4389318761ditlmg2l ydp98affbadyiv4389318761nvdbi5me ydp98affbadyiv4389318761kvgmc6g5" style="margin:0px 1px;min-height:16px;width:16px;vertical-align:middle;font-family:inherit;"><img alt="��" src="https://static.xx.fbcdn.net/images/emoji.php/v9/t4c/1/16/1f642.png" style="border-color: currentcolor; border-style: none; border-width: 0px;" class="ydp98affbadyiv4389318761" data-inlineimagemanipulating="true" draggable="false" width="16" height="16"></span> </div></div><div class="ydp98affbadyiv4389318761cxmmr5t8 ydp98affbadyiv4389318761ii04i59q ydp98affbadyiv4389318761c1et5uql ydp98affbadyiv4389318761hcukyx3x ydp98affbadyiv4389318761o9v6fnle ydp98affbadyiv4389318761oygrvhab" style="margin:0.5em 0px 0px;white-space:pre-wrap;font-family:inherit;"><div style="font-family:inherit;" class="ydp98affbadyiv4389318761">Besides that, have a great weekend!</div><div style="font-family:inherit;" class="ydp98affbadyiv4389318761"><br class="ydp98affbadyiv4389318761"></div><div style="font-family:inherit;" class="ydp98affbadyiv4389318761">Best wishes, Jakob</div></div></span></div></div></div></div></div><div style="font-family:inherit;" class="ydp98affbadyiv4389318761"><div class="ydp98affbadyiv4389318761stjgntxs ydp98affbadyiv4389318761l82x9zwi ydp98affbadyiv4389318761uo3d90p7 ydp98affbadyiv4389318761ni8dbmo4 ydp98affbadyiv4389318761h905i5nu ydp98affbadyiv4389318761monazrh9" style="border-radius: 0px 0px 8px 8px; font-family: inherit;"><div style="font-family:inherit;" class="ydp98affbadyiv4389318761"><div style="font-family:inherit;" class="ydp98affbadyiv4389318761"><div style="font-family:inherit;" class="ydp98affbadyiv4389318761"></div></div></div></div></div></div></div>_______________________________________________<br class="">Pd-dev mailing list<br class=""><a href="mailto:Pd-dev@lists.iem.at" target="_blank" rel="noreferrer noopener" class="">Pd-dev@lists.iem.at</a><br class=""><a href="https://lists.puredata.info/listinfo/pd-dev" target="_blank" rel="noreferrer noopener" class="">https://lists.puredata.info/listinfo/pd-dev</a><br class=""></div>
            </div>
        </div></div></div></blockquote></div><br class=""></body></html>