<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 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>
    <br>
    -Jonathan<br>
    <br>
    <br>
  </body>
</html>