<html>
  <head>
    <meta content="text/html; charset=ISO-8859-1"
      http-equiv="Content-Type">
  </head>
  <body bgcolor="#FFFFFF" text="#000000">
    <div class="moz-cite-prefix">On 03/04/2014 01:20 PM, Jonathan Wilkes
      wrote:<br>
    </div>
    <blockquote cite="mid:53161965.4010309@yahoo.com" type="cite">
      <meta content="text/html; charset=ISO-8859-1"
        http-equiv="Content-Type">
      <div class="moz-cite-prefix">On 03/04/2014 10:11 AM, i go bananas
        wrote:<br>
      </div>
      <br>
      [...]<br>
      <br>
      <blockquote
cite="mid:CAO=D1cg4DtGUQ0sO-QLz+BvUvWi-wA2++gn2Kdue1J+Uy5vh5g@mail.gmail.com"
        type="cite">
        <div class="gmail_extra">
          <div class="gmail_quote">
            <blockquote class="gmail_quote" style="margin:0 0 0
              .8ex;border-left:1px #ccc solid;padding-left:1ex">
              <div class="gmail_extra"><br>
                <br>
                <div class="gmail_quote">2014-03-04 12:12 GMT+01:00 i go
                  bananas <span dir="ltr">&lt;<a moz-do-not-send="true"
                      href="mailto:hard.off@gmail.com" target="_blank">hard.off@gmail.com</a>&gt;</span>:
                  <div>
                    <div class="h5"> <br>
                      <blockquote class="gmail_quote" style="margin:0 0
                        0 .8ex;border-left:1px #ccc
                        solid;padding-left:1ex">
                        <div dir="ltr">just for interest perhaps, here's
                          the sound editor i made years ago:
                          <div><br>
                          </div>
                          <div><a moz-do-not-send="true"
                              href="http://puredata.hurleur.com/sujet-1295-sound-editor"
                              target="_blank">http://puredata.hurleur.com/sujet-1295-sound-editor</a><br>
                          </div>
                          <div><br>
                          </div>
                          <div>and probably even more interesting, here
                            is maelstorm's wave display abstraction:<br>
                          </div>
                          <div><br>
                          </div>
                          <div><a moz-do-not-send="true"
                              href="http://puredata.hurleur.com/sujet-5890-waveform-display"
                              target="_blank">http://puredata.hurleur.com/sujet-5890-waveform-display</a><br>
                          </div>
                          <div><br>
                          </div>
                          <div><br>
                          </div>
                          <div><br>
                          </div>
                          <div>basically, what maelstorm discovered was
                            that using [until] with a counter was not
                            nearly fast enough to do the calculations
                            needed for a decent zoom/scroll function,
                            and we looked into it, and there just didn't
                            seem to be a vanilla workaround. &nbsp;So he uses
                            iem_tab objects to do the table
                            calculations.</div>
                        </div>
                      </blockquote>
                    </div>
                  </div>
                </div>
              </div>
            </blockquote>
          </div>
        </div>
      </blockquote>
      <br>
      Remember that when you redraw an element of an array you actually
      redraw the _entire_ array in Pd Vanilla.&nbsp; And depending on the
      array style you may have a separate tk canvas item for each
      element.<br>
      <br>
      So when you use the [until] loop you are sending drawing
      instructions to the GUI ($arraysize * $no_mouse_events) times.&nbsp; A
      single array redraw instruction in tcl is about 4k, so to scroll a
      single pixel for a 100-element array:<br>
      100 elements * 1 = 100 redraws * 4k = 400k<br>
      <br>
      That's flowing from the core to the GUI for a _single_ mouse
      event.&nbsp; If you trigger ten scrolls you're already at 4 megs of
      data sent.<br>
      <br>
      I'm pretty sure commercial editors avoid that type of design.&nbsp; In
      editors like the upcoming Openshot Video that have several
      discrete parts that sending messages, the GUI part almost
      certainly sends nothing at all to the video core for
      zooming/scrolling.&nbsp; For moving a chunk of audio/video, it almost
      certainly sends a single message about a single object's delta.<br>
    </blockquote>
    <br>
    I may have showed this already, but I think it's instructive here:<br>
    <a class="moz-txt-link-freetext" href="https://jwilkes.nfshost.com/pd-tiger.webm">https://jwilkes.nfshost.com/pd-tiger.webm</a><br>
    <br>
    I don't have sound on that clip, but I believe I tried it with the
    "test audio" patch going and I wasn't getting dropouts.&nbsp; This is
    because a) I'm sending a single transform message for every scroll
    of the number box and b) the GUI toolkit-- not Pd core-- is doing
    the math to transform and redisplay the drawing.<br>
    <br>
    Socket traffic is bad because it require both the core (sending) and
    GUI (receiving) to do work.&nbsp; If you generate megs and megs of
    traffic you can end up with dropouts and choking display even if
    there's very little being redrawn.<br>
    <br>
    -Jonathan<br>
    <br>
    <blockquote cite="mid:53161965.4010309@yahoo.com" type="cite"> <br>
      -Jonathan<br>
      <br>
      <br>
      <br>
      <fieldset class="mimeAttachmentHeader"></fieldset>
      <br>
      <pre wrap="">_______________________________________________
<a class="moz-txt-link-abbreviated" href="mailto:Pd-list@iem.at">Pd-list@iem.at</a> mailing list
UNSUBSCRIBE and account-management -&gt; <a class="moz-txt-link-freetext" href="http://lists.puredata.info/listinfo/pd-list">http://lists.puredata.info/listinfo/pd-list</a>
</pre>
    </blockquote>
    <br>
  </body>
</html>