- From: David Dailey <ddailey@zoominternet.net>
- Date: Fri, 30 Aug 2013 16:01:56 -0400
- To: <robert@ocallahan.org>, <public-audio@w3.org>
- Message-ID: <001201cea5bb$c7a72350$56f569f0$@net>
I am quite naïve about all of this, having some very rudimentary understanding of how graphs can be used in musical arrangement (based on what a friend of mine showed me on his Yamaha keyboard about 30 years ago), but how complex really are these graphs? Hundreds of nodes? Thousands? I am sometimes happy doing things in graph theory, when I can get things down to O(n^4), so O(n^2) seems maybe not so big an issue? I wrote a little simulation thingy some decades ago (sort of like Stella) and cycle detection was not that big an issue, but I was working with only hundreds of nodes. It seems like a breadth first search from any start node ought to terminate pretty quickly. Robert, when you are talking about synchronous cycle detection, is the connectivity of the graph varying in real time (as in http://srufaculty.sru.edu/david.dailey/svg/graphs30.svg ? I suppose, when dealing with little tiny musical events that happen inside milliseconds, big funky searches could get expensive, but if the graph connectivity is constant throughout the composition then it seems not a big thing. Again, apologies for the naiveté of my question, but I am intrigued to know more. It sounds fun. Cheers David From: rocallahan@gmail.com [mailto:rocallahan@gmail.com] On Behalf Of Robert O'Callahan Sent: Thursday, August 29, 2013 9:12 PM To: public-audio@w3.org Subject: Handling cycles with no DelayNode The spec for connect() currently says "This is allowed only if there is at least one DelayNode in the cycle or an exception will be thrown" but it doesn't say what kind of exception. More importantly, I don't think we should throw an exception here. Synchronous cycle detection can get expensive when you're creating large graphs; it's likely to make graph construction O(N^2) for certain kinds of graphs. I think instead we should say that cycles containing no DelayNodes simply produce silence. If browsers want to help developers find such bugs, they can provide developer tool assistance to do so --- and that could be much more useful than just an exception, for example it could report all the nodes in the cycle. (Efficient asynchronous cycle detection --- e.g. checking for cycles every Nms --- is easy.) Rob -- Jtehsauts tshaei dS,o n" Wohfy Mdaon yhoaus eanuttehrotraiitny eovni le atrhtohu gthot sf oirng iyvoeu rs ihnesa.r"t sS?o Whhei csha iids teoa stiheer :p atroa lsyazye,d 'mYaonu,r "sGients uapr,e tfaokreg iyvoeunr, 'm aotr atnod sgaoy ,h o'mGee.t" uTph eann dt hwea lmka'n? gBoutt uIp waanndt wyeonut thoo mken.o w
Received on Friday, 30 August 2013 20:02:30 UTC