On Wed, Aug 21, 2002 at 10:31:20AM -0700, Paul Winkler wrote: > > In any case, here's my question: I have an effects instrument that > > implements delay, but there is no way to change the delay time from > > the control layer, since the delay instrument is only instantiated > > once and the delay time parameter is an ivar. > > There's the problem - you really want the delay time to be changing > while the instrument runs, so use a k or a variable.
right, but the "delay" opcode uses an ivar for the delay time. Is there any sensible way to have the delay time specified as a kvar? It seems that if the delay buffer size could change every kpass, that could be a huge performance lose. > What's your control driver, and how does it feed values to sfront? I read the section of the sfront manual on writing control drivers. It is remarkably easy for the coolness factor. Here's my basic architecture (criticism welcome): GUI generates SASL note and control events for every beat (in real-time) and sends them over a named pipe. In the sfront-generated code, csys_newdata() polls on the pipe and reconstitutes SASL events to be instantiated by csys_saslevents(). Obviously, this has the potential for inconsistent latencies due to scheduling and I/O delays, but IIRC named pipes are pretty cheap (< 30us for a 1-byte message, and scaling well from there). I guess another approach would be to move the timing logic to csys_newdata and have the GUI offload pattern data and control events (i.e. pattern change, etc). > > (More problematic is > > that the delay time is set before the "0 tempo 120" command in the > > SASL file, but that's another story.) How can I get around this? It > > seems that I need to release the instrument so that it will get > > re-instantiated -- but will that mess with my routing? > > Probably. It would be like turning the delay off and turning > it back on; there would be an audible interruption in the > stream of echoes. Right, I guess my question is, if I have an effects instrument "dly" that is in route and send statements, will I lose that routing if I release and then re-instantiate it, or is there a way to ensure that a new "dly" takes the place of the old one on the bus? I thought that the only way to instantiate effects instruments was in send statements. wb -- Will Benton | "Die richtige Methode der Philosophie w�re eigentlich [EMAIL PROTECTED] | die: Nichts zu sagen, als was sich sagen l��t...."
