<html>
<head>
<meta content="text/html; charset=ISO-8859-1"
http-equiv="Content-Type">
</head>
<body text="#000000" bgcolor="#FFFFFF">
<div class="moz-cite-prefix">On 02/20/2014 09:50 PM, Rich E wrote:<br>
</div>
<blockquote
cite="mid:CA+vnWEh3aHWPjRcv4hJgX0u97ZbapFoX9WA4P+cPuK3svYhtoA@mail.gmail.com"
type="cite">
<div dir="ltr">
<div class="gmail_extra"><br>
<br>
<div class="gmail_quote">On Wed, Feb 19, 2014 at 12:07 AM,
Jonathan Wilkes <span dir="ltr"><<a
moz-do-not-send="true" href="mailto:jancsika@yahoo.com"
target="_blank">jancsika@yahoo.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0
.8ex;border-left:1px #ccc solid;padding-left:1ex">
<div text="#000000" bgcolor="#FFFFFF">
<div>
<div class="h5">
<div>On 02/18/2014 11:11 PM, Rich E wrote:<br>
</div>
<blockquote type="cite">
<div dir="ltr"><br>
<div class="gmail_extra"><br>
<br>
<div class="gmail_quote">On Mon, Jan 13, 2014
at 5:35 PM, Dan Wilcox <span dir="ltr"><<a
moz-do-not-send="true"
href="mailto:danomatika@gmail.com"
target="_blank">danomatika@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 style="word-wrap:break-word">Ah wait,
duh. Of course the graph needs to know
positioning, that's how it determines
execution order or independent blocks of
objects right?
<div>
<div><br>
<div>
<div>On Jan 13, 2014, at 5:14 PM,
Dan Wilcox <<a
moz-do-not-send="true"
href="mailto:danomatika@gmail.com"
target="_blank">danomatika@gmail.com</a>>
wrote:</div>
<br>
<blockquote type="cite"><span
style="font-family:Helvetica;font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;line-height:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;float:none;display:inline!important">Does
the dsp graph rely on
positioning? I thought only
via connections. I'd imagine
the gui wrapper should only
worry about positioning and
simply update those changes
when saving.</span></blockquote>
</div>
<br>
</div>
</div>
</div>
</blockquote>
<div><br>
</div>
<div><br>
</div>
<div>IMO a separation between GUI and core
could/would include position, e.g. objects
have their connections mapped by an index,
GUI assigns the index to the object based
on position. This would allow for some
much more sophisticated GUI's, such as 3d,
or even a more human-readable text version
(json has been mentioned).</div>
</div>
</div>
</div>
</blockquote>
<br>
</div>
</div>
You run into problems when you want to get decent GUI
interaction _and_ expect to deliver audio to the
soundcard in realtime.<br>
<br>
</div>
</blockquote>
<div><br>
</div>
<div>The GUI and audio shouldn't be updated from the same
thread. This is one nice thing about libpd, it forces a
separation.</div>
</div>
</div>
</div>
</blockquote>
<br>
What are the drawbacks to the multi-threaded approach?
Specifically, for a full-fledged editing environment where you can't
easily predict what the userbase is going to come up with inside the
GUI?<br>
<br>
<blockquote
cite="mid:CA+vnWEh3aHWPjRcv4hJgX0u97ZbapFoX9WA4P+cPuK3svYhtoA@mail.gmail.com"
type="cite">
<div dir="ltr">
<div class="gmail_extra">
<div class="gmail_quote">
<div><br>
</div>
<div>So in this type of world, the GUI can do whatever it
needs to do in order to draw at the desired framerate, and
flags graph changes along the way.</div>
</div>
</div>
</div>
</blockquote>
<br>
In Pd-extended and Vanilla currently there is very little
optimization to get the most out of Tk. Those problems have a
tendency to get lumped in with single-threadedness. So if someone
actually gets something with a better design up and running, just
remember that you have to do similar optimization work before the
benefits of the new system really start to shine. Otherwise you'll
get burned out when the right approach still gets dropouts-- from
the odd inefficient algorithm, some "standard" widget that eats CPU
for lunch, or whatever else isn't documented on the shiny frontpage
of the toolkit.<br>
<br>
-Jonathan<br>
<br>
<blockquote
cite="mid:CA+vnWEh3aHWPjRcv4hJgX0u97ZbapFoX9WA4P+cPuK3svYhtoA@mail.gmail.com"
type="cite">
<div dir="ltr">
<div class="gmail_extra">
<div class="gmail_quote">
<div> The changes are then converted into a GUI-agnostic
format and synchronously issued to the audio context.</div>
</div>
</div>
</div>
</blockquote>
<br>
</body>
</html>