Subject: Re: [linux-audio-dev] saol question: adjusting delay line time?
From: Will Benton (willb_AT_cs.wisc.edu)
Date: Wed Aug 21 2002 - 21:04:40 EEST
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 willb_AT_acm.org | die: Nichts zu sagen, als was sich sagen läßt...."
This archive was generated by hypermail 2b28 : Wed Aug 21 2002 - 21:05:57 EEST