<html><head><meta http-equiv="Content-Type" content="text/html charset=utf-8"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class="">hallo liste,<div class="">ist es üblich, dass über die pd-liste in english korrespondiert wird ? ich bin 70 jahre alt und habe das nie richtig gelernt, habe eine menge fragen zu pd-projekten und suche jemanden, der oder die mir hilfreich zur seite stehen könnte.</div><div class="">meine fragen bewegen sich vor allem im bereich von midi und arduino zur steuerung von musikmaschinen. einiges zu meinen arbeiten ist zu lesen unter <a href="http://www.musikmechaniker.blogspot.de" class="">www.musikmechaniker.blogspot.de</a></div><div class="">wäre nett, wenn sich jemand findet.</div><div class="">gerhard</div><div class=""><br class=""><div apple-content-edited="true" class=""><br class=""></div>
<br class=""><div><blockquote type="cite" class=""><div class="">Am 06.01.2016 um 15:31 schrieb Jonathan Wilkes via Pd-list <<a href="mailto:pd-list@lists.iem.at" class="">pd-list@lists.iem.at</a>>:</div><br class="Apple-interchange-newline"><div class=""><div class=""><div style="background-color: rgb(255, 255, 255); font-family: HelveticaNeue, 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; font-size: 16px;" class=""><div id="yiv8516794190" class=""><div id="yui_3_16_0_1_1452088184371_5146" class=""><div id="yui_3_16_0_1_1452088184371_5145" style="background-color: rgb(255, 255, 255); font-family: HelveticaNeue, 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; font-size: 16px;" class=""><div id="yiv8516794190yui_3_16_0_1_1452088184371_2813" class=""><span class=""></span></div> <div id="yui_3_16_0_1_1452088184371_5144" class="yiv8516794190qtdSeparateBR"><div class="">Are there more than two people (matju and Miller) who understand the <br class=""></div><div id="yui_3_16_0_1_1452088184371_6453" class="">_current_ design?</div><div id="yui_3_16_0_1_1452088184371_6459" class=""><br class=""></div><div id="yui_3_16_0_1_1452088184371_6460" class="">-Jonathan<br class=""></div><div id="yui_3_16_0_1_1452088184371_6166" dir="ltr" class=""><br class=""> </div></div><div class="yiv8516794190yqt8588295079" id="yiv8516794190yqt15015"></div></div></div></div><div class=".yiv8516794190yahoo_quoted"> <div style="font-family:HelveticaNeue, Helvetica Neue, Helvetica, Arial, Lucida Grande, sans-serif;font-size:16px;" class=""> <div style="font-family:HelveticaNeue, Helvetica Neue, Helvetica, Arial, Lucida Grande, sans-serif;font-size:16px;" class=""> <div dir="ltr" class=""><font face="Arial" size="2" class=""> On Wednesday, January 6, 2016 12:00 AM, Ivica Ico Bukvic <<a href="mailto:ico@vt.edu" class="">ico@vt.edu</a>> wrote:<br clear="none" class=""></font></div> <br clear="none" class=""><br clear="none" class=""> <div class="yiv8516794190y_msg_container"><div id="yiv8516794190" class=""><div class="">
The following is going somewhat OT but nonetheless based on this
very interesting topic: application framerate is no more
deterministic than the proposed idea. Just because monitor refreshes
at 60Hz doesn't mean the app will do the same or consistently. Yet,
pegging GUI updates at 60Hz (think speedlim-like behavior) despite
all the loose ends will undoubtedly provide improved responsiveness
over a GUI where one can send sub-millisecond change requests, most
of which will never see the light of the day, despite eating up tons
of CPU and in all likelihood bringing it down to its knees.<br clear="none" class="">
<br clear="none" class="">
<div class="yiv8516794190yqt1909756568" id="yiv8516794190yqt43428"><div class="yiv8516794190moz-cite-prefix">On 1/4/2016 9:32 PM, Jonathan Wilkes
wrote:<br clear="none" class="">
</div>
<blockquote type="cite" class="">
<div style="background-color: rgb(255, 255, 255); font-family: HelveticaNeue, 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; font-size: 16px;" class="">
<div id="yiv8516794190" class="">
<div id="yiv8516794190yui_3_16_0_1_1451947044533_15541" class="">
<div id="yiv8516794190yui_3_16_0_1_1451947044533_15540" style="background-color: rgb(255, 255, 255); font-family: HelveticaNeue, 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; font-size: 16px;" class="">
<div id="yiv8516794190" class="">
<div id="yiv8516794190yui_3_16_0_1_1451947044533_11345" class="">
<div id="yiv8516794190yui_3_16_0_1_1451947044533_11344" style="background-color: rgb(255, 255, 255); font-family: HelveticaNeue, 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; font-size: 16px;" class="">
<div id="yiv8516794190yui_3_16_0_1_1451947044533_18873" class="">Having an
animation method allows GUI-side optimizations
that aren't <br clear="none" class="">
</div>
<div dir="ltr" id="yiv8516794190yui_3_16_0_1_1451947044533_20176" class="">possible
when the animation is smeared across the
socket/parser/eval'er.</div>
<div dir="ltr" class=""><br clear="none" class="">
</div>
<div dir="ltr" class="">Determinism: GUI rendering isn't
deterministic, at least not in the way Pd's <br clear="none" class="">
</div>
<div dir="ltr" id="yiv8516794190yui_3_16_0_1_1451947044533_20262" class="">scheduler
is. For example, how could the GUI (tcl/tk or
otherwise) even <br clear="none" class="">
</div>
<div dir="ltr" id="yiv8516794190yui_3_16_0_1_1451947044533_20275" class="">know
that it missed a deadline?<br clear="none" class="">
</div>
<div dir="ltr" id="yiv8516794190yui_3_16_0_1_1451947044533_20040" class=""><br clear="none" class="">
</div>
<div id="yiv8516794190yui_3_16_0_1_1451947044533_20644" class="">I guess
the simple API I'm toying with is "stretching the
accordion" so to <br clear="none" class="">
</div>
<div dir="ltr" id="yiv8516794190yui_3_16_0_1_1451947044533_20689" class="">speak,
and potentially showing the cracks more explicitly
with a longer <br clear="none" class="">
</div>
<div dir="ltr" id="yiv8516794190yui_3_16_0_1_1451947044533_20690" class="">running
animation than can currently be seen in Pd's GUI.
But that can be <br clear="none" class="">
</div>
<div dir="ltr" id="yiv8516794190yui_3_16_0_1_1451947044533_20767" class="">remedied,
either by recursively halving a single animation
into smaller ones, <br clear="none" class="">
</div>
<div dir="ltr" id="yiv8516794190yui_3_16_0_1_1451947044533_20794" class="">or
just giving up and using [line].<br clear="none" class="">
</div>
<div dir="ltr" id="yiv8516794190yui_3_16_0_1_1451947044533_20714" class=""><br clear="none" class="">
</div>
<div dir="ltr" id="yiv8516794190yui_3_16_0_1_1451947044533_20795" class="">The
greater benefit is that more elegant types of
visual feedback become <br clear="none" class="">
</div>
<div dir="ltr" id="yiv8516794190yui_3_16_0_1_1451947044533_20796" class="">possible
without being discarded out of hand due to their
potential for <br clear="none" class="">
</div>
<div dir="ltr" id="yiv8516794190yui_3_16_0_1_1451947044533_20797" class="">audio
interruption.</div>
<div dir="ltr" id="yiv8516794190yui_3_16_0_1_1451947044533_20901" class=""><br clear="none" class="">
</div>
<div dir="ltr" id="yiv8516794190yui_3_16_0_1_1451947044533_20929" class="">-Jonathan<br clear="none" class="">
</div>
<div class="yiv8516794190qtdSeparateBR" id="yiv8516794190yui_3_16_0_1_1451947044533_11399"><br clear="none" class="">
</div>
</div>
</div>
</div>
<div class="yiv8516794190yqt9730551649" id="yiv8516794190yqt99427">
<div id="yiv8516794190yui_3_16_0_1_1451947044533_15604" class="">
<div id="yiv8516794190yui_3_16_0_1_1451947044533_15603" style="font-family:HelveticaNeue, Helvetica Neue, Helvetica, Arial, Lucida Grande, sans-serif;font-size:16px;" class="">
<div id="yiv8516794190yui_3_16_0_1_1451947044533_15602" style="font-family:HelveticaNeue, Helvetica Neue, Helvetica, Arial, Lucida Grande, sans-serif;font-size:16px;" class="">
<div dir="ltr" id="yiv8516794190yui_3_16_0_1_1451947044533_15601" class=""><font id="yiv8516794190yui_3_16_0_1_1451947044533_15631" face="Arial" size="2" class=""> On Monday, January 4, 2016 5:20
PM, Ivica Ico Bukvic <a rel="nofollow" shape="rect" class="yiv8516794190moz-txt-link-rfc2396E" ymailto="mailto:ico@vt.edu" target="_blank" href="mailto:ico@vt.edu"><ico@vt.edu></a> wrote:<br clear="none" class="">
</font></div>
<br clear="none" class="">
<br clear="none" class="">
<div class="yiv8516794190y_msg_container" id="yiv8516794190yui_3_16_0_1_1451947044533_19770">
<div id="yiv8516794190" class="">
<div id="yiv8516794190yui_3_16_0_1_1451947044533_19769" class=""> On
1/3/2016 3:24 PM, Jonathan Wilkes wrote:<br clear="none" class="">
<blockquote id="yiv8516794190yui_3_16_0_1_1451947044533_19768" type="cite" class="">
<div id="yiv8516794190yui_3_16_0_1_1451947044533_19767" style="background-color: rgb(255, 255, 255); font-family: HelveticaNeue, 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; font-size: 16px;" class="">
<div id="yiv8516794190" class="">
<div id="yiv8516794190yui_3_16_0_1_1451851974487_2654" class="">
<div id="yiv8516794190yui_3_16_0_1_1451851974487_2653" style="background-color: rgb(255, 255, 255); font-family: HelveticaNeue, 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; font-size: 16px;" class="">
<div id="yiv8516794190yui_3_16_0_1_1451851974487_3004" class="">It's
actually way more simplistic
than that-- just an "animate"
method that <br clear="none" class="">
</div>
<div dir="ltr" id="yiv8516794190yui_3_16_0_1_1451851974487_2710" class="">wraps
around whatever attribute is
available to the drawing
command. All <br clear="none" class="">
</div>
<div dir="ltr" id="yiv8516794190yui_3_16_0_1_1451851974487_2786" class="">I'll
have is a ramp time, an optional
delay time, and an optional
easing curve. <br clear="none" class="">
</div>
<div dir="ltr" id="yiv8516794190yui_3_16_0_1_1451851974487_2997" class="">That
will make it a bit like a
[vline~] for GUI side animation.</div>
<div dir="ltr" id="yiv8516794190yui_3_16_0_1_1451851974487_2998" class=""><br clear="none" class="">
</div>
<div dir="ltr" id="yiv8516794190yui_3_16_0_1_1451851974487_2999" class="">I'm
using the web animations API
because it makes things very
simple, even <br clear="none" class="">
</div>
<div dir="ltr" id="yiv8516794190yui_3_16_0_1_1451851974487_3000" class="">to
do complex things like animating
path data.</div>
<div dir="ltr" id="yiv8516794190yui_3_16_0_1_1451851974487_3094" class=""><br clear="none" class="">
</div>
<div dir="ltr" id="yiv8516794190yui_3_16_0_1_1451851974487_3251" class="">The
idea is that this would open up
some modest visualization
opportunities <br clear="none" class="">
</div>
<div dir="ltr" id="yiv8516794190yui_3_16_0_1_1451851974487_3252" class="">that
are otherwise too cpu
intensive. For example, if
you're animating <br clear="none" class="">
</div>
<div dir="ltr" id="yiv8516794190yui_3_16_0_1_1451851974487_3253" class="">using
[line] the socket messages can
quickly get in the way of the
audio.<br clear="none" class="">
</div>
</div>
</div>
</div>
</div>
</blockquote>
<br clear="none" class="">
Will you at some point drown the CPU? Sure,
but that is no different than a million of
other ways of doing the same. OTOH,
implementing the animation this way helps
you ensure that your animation remains in
sync with the audio, which to me seems much
better gain than a potential CPU/socket
overhead may be a shortcoming.<br clear="none" class="">
<br clear="none" class="">
There could be some very cool ways of
filtering gui messages, as well (short of
getting rid of the socket-based
communication in favor of a shared
memory/multithreaded design). For instance,
your animation object could be given the
screen refresh rate and therefore it would
not send out a message via a socket unless a
desired frame-worth of time has transpired
since the last message was sent. This would
do wonders not just in terms of animation,
but also the overall gui responsiveness, if
implemented system-wide.<br clear="none" class="">
<br clear="none" class="">
Best,<br clear="none" class="">
<br clear="none" class="">
Ico
<div class="yiv8516794190yqt3440929373" id="yiv8516794190yqtfd16790"><br clear="none" class="">
<br clear="none" class="">
<blockquote type="cite" class="">
<div style="background-color: rgb(255, 255, 255); font-family: HelveticaNeue, 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; font-size: 16px;" class="">
<div id="yiv8516794190" class="">
<div id="yiv8516794190yui_3_16_0_1_1451851974487_2654" class="">
<div id="yiv8516794190yui_3_16_0_1_1451851974487_2653" style="background-color: rgb(255, 255, 255); font-family: HelveticaNeue, 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; font-size: 16px;" class="">
<div dir="ltr" id="yiv8516794190yui_3_16_0_1_1451851974487_3001" class=""><br clear="none" class="">
</div>
<div dir="ltr" id="yiv8516794190yui_3_16_0_1_1451851974487_3002" class="">-Jonathan<br clear="none" class="">
</div>
<div dir="ltr" id="yiv8516794190yui_3_16_0_1_1451841944661_7669" class=""><br clear="none" class="">
</div>
<div dir="ltr" id="yiv8516794190yui_3_16_0_1_1451841944661_6038" class=""><br clear="none" class="">
</div>
<div dir="ltr" id="yiv8516794190yui_3_16_0_1_1451841944661_6497" class=""><br clear="none" class="">
</div>
<div dir="ltr" id="yiv8516794190yui_3_16_0_1_1451841944661_6039" class=""><br clear="none" class="">
</div>
<div id="yiv8516794190yui_3_16_0_1_1451841944661_6012" class=""><span class=""></span></div>
<div class="yiv8516794190qtdSeparateBR" id="yiv8516794190yui_3_16_0_1_1451851974487_2711"><br clear="none" class="">
<br clear="none" class="">
</div>
</div>
</div>
</div>
<div class="">
<div style="font-family:HelveticaNeue, Helvetica Neue, Helvetica, Arial, Lucida Grande, sans-serif;font-size:16px;" class="">
<div style="font-family:HelveticaNeue, Helvetica Neue, Helvetica, Arial, Lucida Grande, sans-serif;font-size:16px;" class="">
<div class="yiv8516794190qtdSeparateBR"><br clear="none" class="">
<br clear="none" class="">
</div>
<div class="yiv8516794190yqt1236546037" id="yiv8516794190yqt89869">
<div dir="ltr" class=""><font face="Arial" size="2" class=""> On Sunday,
January 3, 2016 1:08 PM,
Ivica Ico Bukvic <a rel="nofollow" shape="rect" class="yiv8516794190moz-txt-link-rfc2396E" ymailto="mailto:ico@vt.edu" target="_blank" href="mailto:ico@vt.edu"></a><a rel="nofollow" shape="rect" class="yiv8516794190moz-txt-link-rfc2396E" ymailto="mailto:ico@vt.edu" target="_blank" href="mailto:ico@vt.edu"><ico@vt.edu></a>
wrote:<br clear="none" class="">
</font></div>
<br clear="none" class="">
<br clear="none" class="">
<div class="yiv8516794190y_msg_container">
<div id="yiv8516794190" class="">
<div class=""> I think it may make
sense in addition to
having a
one-shot-independent
animations that have no
guarantee of staying in
sync with the audio
(e.g. these could be
useful for mouse-over
button animations) that
your animation object
can also receive a
decimal value between
its originator and
destination, allowing
for each keyframe to be
a whole number. So, 0-1
would interpolate
between the starting
state and first
keyframe, 1-2 between
first and second
keyframes, etc., and
thus allow pd to use its
timing mechanism to
project changes in
animation state via a
line object, a counter
or something similar.
IIRC most (all?)
HTML5-based animations
can be triggered as
independent events or
can be given a specific
percentage value. The
one-shot object could
interact with
independent events,
while the proposed
object could interact
with the latter.<br clear="none" class="">
<br clear="none" class="">
That said, not knowing
how you have imagined
your animation object,
it may be tricky to
implement this as it
would require object to
keep track of all the
keyframed events
(assuming there are more
than one). If you are
thinking of having the
animation object track
only one single
animation (e.g.
something progressing
from 30% to 90%), the
same could still prove
useful except in this
case you would only
allow for values between
0 and 1.<br clear="none" class="">
<br clear="none" class="">
<div class="yiv8516794190yqt1831210892" id="yiv8516794190yqt48349">
<div class="yiv8516794190moz-cite-prefix">On
1/2/2016 1:12 PM,
Jonathan Wilkes via
Pd-list wrote:<br clear="none" class="">
</div>
<blockquote type="cite" class="">
<div style="background-color: rgb(255, 255, 255); font-family: HelveticaNeue, 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; font-size: 16px;" class="">
<div id="yiv8516794190yui_3_16_0_1_1451752408813_3953" class="">Hi
list,</div>
<div id="yiv8516794190yui_3_16_0_1_1451752408813_3952" class="">I'm
playing with
adding a simple
animation api to
data structure
drawing
commands. <br clear="none" class="">
</div>
<div id="yiv8516794190yui_3_16_0_1_1451752408813_3951" class="">The
parameters will
be sent to the
GUI, and the GUI
will take care
of the ramp,
delay, etc.</div>
<div id="yiv8516794190yui_3_16_0_1_1451752408813_3950" class=""><br clear="none" class="">
</div>
<div id="yiv8516794190yui_3_16_0_1_1451752408813_9398" class="">I'm
thinking of just
making it a
simple "set it
and forget it"
api. That is,
you send a
message <br clear="none" class="">
</div>
<div dir="ltr" id="yiv8516794190yui_3_16_0_1_1451752408813_7749" class="">with
your ramp and
delay times to
the GUI, and you
just blindly
trust that the
GUI will make <br clear="none" class="">
</div>
<div dir="ltr" id="yiv8516794190yui_3_16_0_1_1451752408813_9399" class="">things
happen in the
right amount of
time. The
alternative I
can think of is
to have the GUI
<br clear="none" class="">
</div>
<div dir="ltr" id="yiv8516794190yui_3_16_0_1_1451752408813_7739" class="">call
back when an
animation is
finished, but
that would
encourage mixing
the two clocks <br clear="none" class="">
</div>
<div dir="ltr" class="">(i.e.,
GUI and Pd
clock) in
unpredictable <br clear="none" class="">
</div>
<div dir="ltr" id="yiv8516794190yui_3_16_0_1_1451752408813_7740" class="">ways.</div>
<div dir="ltr" id="yiv8516794190yui_3_16_0_1_1451752408813_9400" class=""><br clear="none" class="">
</div>
<div dir="ltr" id="yiv8516794190yui_3_16_0_1_1451752408813_9401" class="">Does
this simple
approach seem
like a
reasonable
design? The
biggest problem
would be that <br clear="none" class="">
</div>
<div dir="ltr" id="yiv8516794190yui_3_16_0_1_1451752408813_9402" class="">a
long-running
animation could
skew. But in
that case you
could probably
amortize the
cost of</div>
<div dir="ltr" id="yiv8516794190yui_3_16_0_1_1451752408813_9431" class="">sending
more messages
over the longer
time period.<br clear="none" class="">
</div>
<div dir="ltr" id="yiv8516794190yui_3_16_0_1_1451752408813_9403" class=""><br clear="none" class="">
</div>
<div dir="ltr" class="">-Jonathan<br clear="none" class="">
</div>
</div>
<br clear="none" class="">
<fieldset class="yiv8516794190mimeAttachmentHeader"></fieldset>
<br clear="none" class="">
<pre class="">_______________________________________________
<a rel="nofollow" shape="rect" class="yiv8516794190moz-txt-link-abbreviated" ymailto="mailto:Pd-list@lists.iem.at" target="_blank" href="mailto:Pd-list@lists.iem.at">Pd-list@lists.iem.at</a> mailing list
UNSUBSCRIBE and account-management -> <a rel="nofollow" shape="rect" class="yiv8516794190moz-txt-link-freetext" target="_blank" href="http://lists.puredata.info/listinfo/pd-list">http://lists.puredata.info/listinfo/pd-list</a>
</pre>
</blockquote>
</div>
<br clear="none" class="">
</div>
</div>
<br clear="none" class="">
<div class="yiv8516794190yqt1831210892" id="yiv8516794190yqt93725">_______________________________________________<br clear="none" class="">
<a rel="nofollow" shape="rect" ymailto="mailto:Pd-list@lists.iem.at" target="_blank" href="mailto:Pd-list@lists.iem.at" class="">Pd-list@lists.iem.at</a>
mailing list<br clear="none" class="">
UNSUBSCRIBE and
account-management -> <a rel="nofollow" shape="rect" class="yiv8516794190moz-txt-link-freetext" target="_blank" href="http://lists.puredata.info/listinfo/pd-list"></a><a rel="nofollow" shape="rect" class="yiv8516794190moz-txt-link-freetext" target="_blank" href="http://lists.puredata.info/listinfo/pd-list">http://lists.puredata.info/listinfo/pd-list</a><br clear="none" class="">
</div>
<br clear="none" class="">
<br clear="none" class="">
</div>
</div>
</div>
</div>
</div>
</div>
</blockquote>
<br clear="none" class="">
</div>
</div>
</div>
<br clear="none" class="">
<br clear="none" class="">
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</blockquote></div>
<br clear="none" class="">
</div></div><br clear="none" class=""><br clear="none" class=""></div> </div> </div> </div></div></div>_______________________________________________<br class=""><a href="mailto:Pd-list@lists.iem.at" class="">Pd-list@lists.iem.at</a> mailing list<br class="">UNSUBSCRIBE and account-management -> <a href="http://lists.puredata.info/listinfo/pd-list" class="">http://lists.puredata.info/listinfo/pd-list</a><br class=""></div></blockquote></div><br class=""></div></body></html>