iiwusynth-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[iiwusynth-devel] Modulators for sample points: Proposal for API functio


From: M. Nentwig
Subject: [iiwusynth-devel] Modulators for sample points: Proposal for API function
Date: Sat, 11 May 2002 14:15:21 +0300

Hello,

I'm currently implementing the modulators for loop start / end, sample
start / end.
The idea is to allow real-time 'tuning' of loops.

There are two possible approaches: One is using NRPN messages. In my
opinion this is no good, because it will affect all zones of all
instrument in the preset of a given channel.

On the other hand, modulators are more flexible here.
Thinking of Swami, it could create modulators, which are not saved with
the soundfont, only uploaded to iiwusynth for editing purposes.
GEN_STARTADDROFFS, GEN_ENDADDROFFS, GEN_STARTLOOPADDROFFS,
GEN_ENDLOOPADDROFFS, (all 'fine' and 'coarse') would allow full control
over the sample..
Those modulators could be independent (using a different source) for
each instrument zone.
So if the user tweaks the loop point of the C6 of a piano sound, the C2
won't be affected at the same time. Otherwise it will be really
confusing, if editing one zone 'breaks' all other zones.

Question is: How to control these modulators (from Swami)? MIDI CCs are
bad, because
- there is only a small number of valid MIDI CC controllers
- They are only 7 bit wide.

Therefore, it seems reasonable to me to add API functions for
iiwusynth-specific modulation sources.
SF 2.01 section 8.2.1 defines modulation source indices:
0 constant
2 note-on velocity
3 note-on key number
10 poly pressure
etc.

'Private modulation sources' would appear to the synth like 'internal'
(non-MIDI CC) sources, like aftertouch, note number etc. They would just
use higher numbers, for example >=100.

For example:

void iiwu_init_private_modulation_sources(int number);
This reserves memory to hold the values for (number) independent private
sources. It has to be called only, if the application wants to use this
feature.

void iiwu_set_private_modulation_source(int index, double value);
This sets modulation source (index) to (value).

Josh, what do you think? Is this useful for Swami, or did you have
something else in mind? I remember that there was some discussion about
this topic a month ago.

Cheers

Markus

PS: The latest iiwusynth from CVS does not compile, because the files
iiwu_chorus.c and iiwu_chorus.h are missing. Probably they were left out
while uploading?






reply via email to

[Prev in Thread] Current Thread [Next in Thread]