<div dir="ltr">Hey Seb.<div><br></div><div>Good informative post, thanks for that.</div><div><br></div><div>It does seem you're taking the right approach to this dilemma. </div><div>Think too you're being a bit hard on yourself  - I wouldn't describe the list of objects implemented with native audio nodes as 'not much' at all! Quite the opposite. </div><div><br></div><div>Conceptually, for me, it makes sense to have some separation between those native nodes that do, in effect, behave exactly like Pd vanilla objects and have a low overhead. Presumably these should be straightforward to separately maintain as a WebPd vanilla. BTW - I'm actually happy to reconceptualise/refactor some of my own patches to run on WebPd - it's ok for things to turn into something else:).</div><div><br></div><div>And then there's those future ScriptProcessorNode possibilities that I could conceptualise as similar to PdE - something to go to when I can't find a WebPdVanilla solution.</div><div><br></div><div>This and Jonathan's GUI rewrite are currently really interesting - this is awesome stuff you guys are up to.</div><div><br></div><div>Regards,</div><div><br></div><div>Julian</div><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div></div><div class="gmail_extra"><br><div class="gmail_quote">On 8 September 2015 at 09:46, s p <span dir="ltr"><<a href="mailto:sebpiq@gmail.com" target="_blank">sebpiq@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div>dammit ... JavaScript bug on my website maybe?<br></div>This pure - and ugly - html version should work : <a href="http://funktion.fm/post/present-and-future-of-webpd" target="_blank">http://funktion.fm/post/present-and-future-of-webpd</a><br></div><div class="HOEnZb"><div class="h5"><div class="gmail_extra"><br><div class="gmail_quote">On Tue, Sep 8, 2015 at 10:42 AM, Julian Brooks <span dir="ltr"><<a href="mailto:jbeezez@gmail.com" target="_blank">jbeezez@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">THis all sounds very interesting, unfortunately this:<div><a href="http://funktion.fm/#post/present-and-future-of-webpd" target="_blank">http://funktion.fm/#post/present-and-future-of-webpd</a><br></div><div>is still devoid of text on my machine (what the deuce!:)</div></div><div class="gmail_extra"><br><div class="gmail_quote"><div><div>On 8 September 2015 at 07:47, s p <span dir="ltr"><<a href="mailto:sebpiq@gmail.com" target="_blank">sebpiq@gmail.com</a>></span> wrote:<br></div></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div><div><div dir="ltr"><div><div><div><div><div><span><div>> When I handed WebPd over to you, one feature that was important to me 
was to have WebPd work as a system where you could take an existing Pd 
patch and be pretty sure it would sound and work the same<br><br></div></span>And I agreed with this goal of yours! Only if you remember, these were different times. Web Audio API had not fully landed, WebPd was firefox only and working on Audio Data API, which provided a simple callback to write audio to the sound card buffers and nothing else, so custom dsp was the only way to go. With the deprecation of Audio data API in favor of web audio API, and native nodes becoming the default thing (custom dsp being only a second class citizen), I couldn't just ignore the option of rebuilding it on native nodes.<br><br>My hope was that : <br>1) native nodes would be enough to implement a significant part of Pd's functionalities, with ScriptProcessorNode complementing what couldn't be implemented with a big !!!use these objects carefully : performance penalty warning sign <br></div>2) the difference in implementation in native nodes compared to pd objects wouldn't be that significant.<br><br></div>I think I was mostly wrong on both points ... However, the biggie, which decided me on this, is that you couldn't really use WebPd on mobile devices with custom dsp. ScriptProcessorNode would immediately choke, and make the whole thing pretty much unusable. So this was basically a choice between on one hand purity and sticking to desktop Pd, on the other hand usability and cross-browser / cross-device -ness. And so I chose pragmatism over purity (and that was a heartbreaking choice : after my first failed attempt at reimplementing WebPd with native nodes I was totally gutted : <a href="https://github.com/WebAudio/web-audio-api/issues/263" target="_blank">https://github.com/WebAudio/web-audio-api/issues/263</a> ). <br><br>I think for now that was somehow the right choice, since I came up with a version of WebPd which ... even if it parts from Pd on some points, is much more useful than a faithful version which couldn't run on most devices. I myself used WebPd to do things I coudn't have done before (live performances on mobile phones). And I think that makes the library more sustainable, since it becomes not just a fancy toy, but a serious alternative to using plain Web Audio.<br><br></div>I woudn't reconsider that decision if it wasn't for the fact that times they are a changing again, with the arrival of AudioWorker to replace ScriptProcessorNode... which MIGHT make custom dsp a viable option once again. So this is really all this is about. Bloody specifications changing every 6 months, and me trying to keep up ;)<br><br></div><span>> I only hope to persuade you that faithfulness to Pd's output is probably a feature that users will appreciate a lot.<br><br></span></div>to conclude ... you don't need to persuade me of this :) I just think it is more important to have something you can use at all. But the future might be brighter, and maybe these two goals won't contradict each other any more. <br><div><div><div><div><br></div></div></div></div></div><div class="gmail_extra"><span><br><div class="gmail_quote">On Tue, Sep 8, 2015 at 5:00 AM, Chris McCormick <span dir="ltr"><<a href="mailto:chris@mccormick.cx" target="_blank">chris@mccormick.cx</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><span>On 08/09/15 10:49, Chris McCormick wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
I am glad to see it live on with<br>
somebody who codes as energetically as you<br>
</blockquote>
<br></span>
chr15m: 98 commits / 8,028 ++ / 1,712 --<br>
sebpiq: 253 commits / 322,207 ++ / 250,725 --<br>
<br>
Lol!<span><font color="#888888"><br>
<br>
Chris.<br>
<br>
-- <br>
<a href="http://mccormick.cx/" rel="noreferrer" target="_blank">http://mccormick.cx/</a><br>
</font></span></blockquote></div><br><br clear="all"><br></span><span>-- <br><div><div dir="ltr"><span style="color:rgb(153,153,153)"><b><span style="color:rgb(68,68,68)">S</span><span><span style="color:rgb(68,68,68)">ébastien Piquemal</span><br></span></b></span><div><span style="color:rgb(153,153,153)"><b><br></b></span><span style="color:rgb(102,102,102)"><b> </b><span style="color:rgb(204,204,204)">-----</span><b> <font size="1">@sebpiq</font></b></span><br></div><div><span style="color:rgb(102,102,102)"><span style="color:rgb(204,204,204)"> -----</span><b> </b><font size="1"><a href="http://github.com/sebpiq" target="_blank">http://github.com/sebpiq</a></font><b><br></b></span></div><span style="color:rgb(102,102,102)"> <span style="color:rgb(204,204,204)">-----</span> <font size="1"><a href="http://funktion.fm" target="_blank">http://funktion.fm</a></font></span><br></div></div>
</span></div>
<br></div></div><span>_______________________________________________<br>
<a href="mailto:Pd-list@lists.iem.at" target="_blank">Pd-list@lists.iem.at</a> mailing list<br>
UNSUBSCRIBE and account-management -> <a href="http://lists.puredata.info/listinfo/pd-list" rel="noreferrer" target="_blank">http://lists.puredata.info/listinfo/pd-list</a><br>
<br></span></blockquote></div><br></div>
</blockquote></div><br><br clear="all"><br>-- <br><div><div dir="ltr"><span style="color:rgb(153,153,153)"><b><span style="color:rgb(68,68,68)">S</span><span><span style="color:rgb(68,68,68)">ébastien Piquemal</span><br></span></b></span><div><span style="color:rgb(153,153,153)"><b><br></b></span><span style="color:rgb(102,102,102)"><b> </b><span style="color:rgb(204,204,204)">-----</span><b> <font size="1">@sebpiq</font></b></span><br></div><div><span style="color:rgb(102,102,102)"><span style="color:rgb(204,204,204)"> -----</span><b> </b><font size="1"><a href="http://github.com/sebpiq" target="_blank">http://github.com/sebpiq</a></font><b><br></b></span></div><span style="color:rgb(102,102,102)"> <span style="color:rgb(204,204,204)">-----</span> <font size="1"><a href="http://funktion.fm" target="_blank">http://funktion.fm</a></font></span><br></div></div>
</div>
</div></div></blockquote></div><br></div>