Re: Max 5: Epic failure

David Zicarelli

Just think of how much incredible high-quality art you could be making if you could freely drag “millions” of objects around in a patcher at amazing speeds. And to think that David Z. is personally preventing you from doing so due to his obstinate refusal to take the obvious step of rewriting his code in Qt, which would be trivial since they have something that sounds like it is exactly like the patcher! How can he live with himself?

This BS about Qt being able to draw a zillion times faster than JUCE has nothing to do with Max’s ability to drag objects around. It is also an attempt to use irrelevant technical “benchmarks” by individuals who have no idea how our code works to scare you into thinking that Max is “hopelessly slow” despite your own experience that it is not. These tests merely prove that, if you write a naive implementation of some graphics algorithm where you feel the need to redraw a line over and over again, faster than anyone can actually see it change, you will see performance differences. But most of the drawing in the Max UI is not vector-based. It is copying cached bitmaps or stroking and filling rectangles, which is significantly faster. Vector stuff is minimized using a layering scheme that eliminates unnecessary redrawing. So even if the vector code were 100 times faster, it wouldn’t really matter. Furthermore, the UI is not slowing down the real-time part of the software, because we assign real-time computation to higher-priority threads, and even within the low-priority thread, we throttle redrawing to happen no faster than a certain frame rate.

However, in the case of dragging large numbers of objects around, we had never put these types of optimizations in place, and furthermore we had an algorithm that performed updates that grew exponentially as the number of objects being moved increased. We are now in the process of addressing this specific problem, and I am confident that those of you who feel compelled to drag around lots of objects will notice the improvement. But, I am sure there will be others who will try dragging 30,000 objects around in the next version, find the performance unacceptable, and decide that Max 5 is still hopeless. We are all free to create our own reality.

David Z.

Oct 23, 2008 at 5:46pm #143055