Re: [linux-audio-dev] saol question: adjusting delay line time?

New Message Reply About this list Date view Thread view Subject view Author view Other groups

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...."


New Message Reply About this list Date view Thread view Subject view Author view Other groups

This archive was generated by hypermail 2b28 : Wed Aug 21 2002 - 21:05:57 EEST