[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[iiwusynth-devel] Re: Exclusive class and float-limiter
From: |
Peter Hanappe |
Subject: |
[iiwusynth-devel] Re: Exclusive class and float-limiter |
Date: |
Fri, 10 May 2002 01:42:41 +0200 |
User-agent: |
Mozilla/5.0 (X11; U; Linux i686; en-US; rv:0.9.8) Gecko/20020205 |
M. Nentwig wrote:
Hello,
I have implemented the exclusive class function ('an open hi-hat sound
terminates a closed-hi-hat sound'). Further, I have removed the limiter
for float-output, which took me so much effort to implement only a week
ago (four lines of beautifully handcrafted code, although completely
braindead :-)
I did it already today, running through all the previous emails.
Now there is a new Iiwusynth API function to terminate voices on a given
channel, depending on exclusive class. iiwu_defsfont.c will then call it
during the voice setup. It's somehow on one level with 'allocate_voice'.
But during 'allocate_voice', the exclusive class is not yet known, so
this had to be put into an own function.
Maybe this should be made more generic, i.e. 'postprocess_voice' or the
like. Peter?
The iiwu_synth_terminate_exclusive_class() you proposed won't work
correctly if a noteon spins off several voices. In that case, the
second voice will terminate the first voice.
However, the synthesizer keeps a note ID. It's used for noteoff to
determine what note event is the oldest one and to find all the
related voices.
I just commited a solution that replaced the iiwu_voice_start()
with iiwu_synth_start_voice().
Below is a diff, let's hope the linebreaks are not mangled this time.
BTW, how's the CVS access been working?
Lates,
Peter
Cheers
Markus