On Thu, Sep 22, 2011 at 11:42:05PM +0400, Artem Vakhitov wrote:
On 22.09.2011 23:16, Fons Adriaensen wrote:
If you need not only the timing but also to
control volume
then it's unlikely this can be done without delay. The part
of the input that would contain usable information to control
volume would very probably come after the trigger, but to
play the sample you need both. The only solution then is to
delay the trigger. That means that simple solutions such as
the ladspa plugin can't do what you want.
The thing is, I do not need to do that in any kind of real time. It
would be sufficient to feed a "beat box" .wav file at the input and get
the corresponding .wav or .mid file at the output. All digital
processing can be done fully off-line, so all timing and amplitude info
is there in advance.
Even if it hasn't to work in real time Pd is probably the
ideal tool to prototype such a system. The alternative
would be to write some ad-hoc C/C++ code, possibly using
existing 'feature extraction' libraries or plugin code.
As a first guess, what you need would be:
- (optional) some pre-filtering to make the trigger
more reliable,
- the trigger itself,
- a delay on the trigger,
and in parallel
- (optional) some pre-filtering for the envelope
follower,
- an envelope follower,
- when the delayed trigger arrives, read the envelope
follower and start the sample playback.
Ciao,
--
FA