Sorry, I mean't an increase in performance with the mega-patch (lower CPU load) and a decrease with subpatches and abstractions (higher CPU load).Ed Ninja Jamm - a revolutionary new music remix app from Ninja Tune and Seeper, for iPhone and iPad http://www.ninjajamm.com/
Gemnotes-0.2: Live music notation for Pure Data, now with dynamics! http://sharktracks.co.uk/
On Tuesday, 13 January 2015, 16:26, Ed Kelly <morph_2016@yahoo.co.uk> wrote:
Yes, that's what I mean. Maybe I'm suggesting a new mode, where the mouse move only makes the proc routine run after it's stopped for perhaps 100ms.The reason is: abstracting the mega patch leads to a decrease in performance on iOs devices, and in 2012 I discovered that it abstractions that use audio ups the CPU load on any Pd patch. I think it's because the abstraction is taken to be a separate audio graph to calculate that is worked out before the CPU folds this into the master patch's audio input/output graph.Thus, I have to unwrap the patch (put all the audio processes into the master patch, without subpatches or abstractions) before it will run on the iPhone. Jonathan - will the -d command sent to Pd enable a lower rate of tk mouse motion events? Cheers,Ed
Ninja Jamm - a revolutionary new music remix app from Ninja Tune and Seeper, for iPhone and iPad http://www.ninjajamm.com/
Gemnotes-0.2: Live music notation for Pure Data, now with dynamics! http://sharktracks.co.uk/
On Wednesday, 7 January 2015, 20:18, Jonathan Wilkes <jancsika@yahoo.com> wrote:
Hi Ed,When you move the mouse on a canvas...1) A tk mouse motion event calls a proc (I can't remember the rate at which they are sent, but run Pd with -d 3 and watch how many motion messages are sent over the socket as you mouse around) 2) The proc sends a message "[canvas you're mousing around in] motion blah blah blah" to the Pd process 3) Pd forwards the message to the canvas you're mousing around on, by calling the "motion" method 4) canvas_motion leads to canvas_doclick, which leads to this:for (y = x->gl_list; y; y = y->g_next) So for each motion message, Pd searches through a linked list of objects on the canvas either until it finds one under the mouse or it runs out of objects. If you only have a [bng] and a subpatch on the canvas, it probably is insignificant-- it's just comparing two saved bbox coordinates to the mouse position. If you have your entire monster patch on a single canvas, just following all those pointers in the linked list is probably taking its toll on Pd's ability to compute a block of audio on schedule. -Jonathan
On Wednesday, January 7, 2015 12:21 PM, Ed Kelly <morph_2016@yahoo.co.uk> wrote:
On Wednesday, 7 January 2015, 11:55, Ed Kelly morph_2016@yahoo.co.uk wrote:
What about this... When I am editing a huge patch like the Ninja Jamm patch, where everything is on the same level (i.e. as few sub-patches as possible) moving the mouse over the patch causes a CPU spike, regardless of whether I change, move or connect anything or not. Could this be changed? I don't know all the guts of Pd, but if you could just move around the mouse pointer withouthaving to wait for 20 seconds or so before you can do anything, it would save a lot of time.
I think I heard once that any change to the patch means that Pd has to re-draw the entire graph. IMHO surely moving the mouse should not require this? I wait to be corrected! xEd
Ninja Jamm - a revolutionary new music remix app from Ninja Tune and Seeper, for iPhone and iPad http://www.ninjajamm.com/
Gemnotes-0.2: Live music notation for Pure Data, now with dynamics! http://sharktracks.co.uk/%C2%A0 _______________________________________________ Pd-dev mailing list Pd-dev@lists.iem.at http://lists.puredata.info/listinfo/pd-dev
Pd-list@lists.iem.at mailing list UNSUBSCRIBE and account-management -> http://lists.puredata.info/listinfo/pd-list