On Fri, Dec 13, 2002 at 02:50:52AM +0000, Simon Jenkins wrote: > >I went as far as defining a biquad filter in the graph format > >(http://plugin.org.uk/blockless/blockless/modules/biquad.g), but it > >dosen't quite work because the execution order is more or less random. > > > I haven't looked closely yet but do you mean that the atoms are being > executed in some compiler-determined order that doesn't reflect the flow > of data through the graph?
Its just programmer lazyness, the modules are resolved in an order determined by a hashtable they get stored in. > Someone suggested here that single sample latencies, eg in feedback loops, > shouldn't cause noticeable problems. (There's got to be one somewhere > in a feedback loop anyway). The combined effect of whole load of atoms > executing in the wrong order might be a different matter though. Yes, especially in a biquad. > value that hasn't been evaluated yet. (OTOH the Modular is a synth not > an FPGA and I was well across the line which divides use from abuse > before I even noticed that I wasn't in control of the evaluation order). You can control it, its goverened by the order you place the modules in the patch. I managed to build an AD converter that way, but it was damn hard work. > The optimisations I'm really hoping to see are for the compiler to strip out > dead code when an output isn't connected, and to propogate a constant 0 > through the graph when an input isn't connected. Well that happens, the constant 0.0 gets propagated, because I manually set it in the source :) > Thinking again about what the Nord Modular does: You can make and break > connections between existing modules as much as you like with neither a > glitch nor a change in (what it claims to be its) CPU usage. As soon as you > add a new module, though, all the existing modules reset themselves and > everything "starts again" with the new module, suggesting that the existing > modules have all lost their contexts. This is *really* annoying if > you're trying > to develop a patch or sequence that evolves very slowly. Yes, It might be possible to replicate this by use of exteme binary mangling, but its not somewhere I want to go. I just did this to see what would happen, if someone were going to take a more serious stab at it they would have to take account of these issues. - Steve
