Re: [ecasound] gate (-gc) retriggering?

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

Subject: Re: [ecasound] gate (-gc) retriggering?
From: Nathan Stewart (nps_AT_mebtel.net)
Date: Wed Aug 21 2002 - 04:48:07 EEST


On Tue, 2002-08-20 at 18:27, Kai Vehmanen wrote:
> This is not currently possible, so a new gate type needs to be added.
> Fortunately this isn't that difficult. If you look at the code of current
> ecasound gates (ecasound/libecasound/audiogate.cpp), it is quite
> straightforward (all gate related code is under 200 lines of C++).

I'm a bit puzzled here. The gate code is indeed very simple. But what I
don't get is how samples move from input to output in the gate. I see
where closing the gate truncates the output buffer.void
GATE_BASE::process(void)
{
  analyze(target);
  if (is_open() == false) {
    target->length_in_samples(0);
  }
}

GATE_BASE derives directly from CHAIN_OPERATOR, and
CHAIN_OPERATOR::process is pure virtual. GATE_BASE::analyze() is pure
virtual as well, but neither example actually passes data from input to
output - the only thing that happens is open/close detection and action.

So then how does data actually flow through a chain operator? I don't
see it. I had the gate "working" as well as it could under ladspa - and
I see that I need to override output_samples(). (Should GATE_BASE be
doing that - or does it get taken care of through setting
length_in_samples() to zero?)

Nathan

--
To unsubscribe send message 'unsubscribe' in the body of the
message to <ecasound-list-request_AT_wakkanet.fi>.


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 - 04:35:22 EEST