iiwusynth-devel
[Top][All Lists]
Advanced

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

Re: [iiwusynth-devel] SF2.01 technical specification: GM default modulat


From: Josh Green
Subject: Re: [iiwusynth-devel] SF2.01 technical specification: GM default modulator vel => filter
Date: 16 Apr 2002 20:37:09 -0700

On Sun, 2002-04-14 at 12:34, M. Nentwig wrote: 
> Hello,
> 
> I'm currently working on a SF2 compatible software synthesizer. I have a
> problem in understanding section 8.4.2 of the specs (version 2.01).
> There, a modulator is described, which lowers the filter frequency by 12
> semitones between MIDI velocity 127 and 64. But what then? The secondary
> modulator is a switch, which turns '0' at velocities below 64. So the
> filter jumps back to its nominal center frequency.
> 
> My two questions are:
> - How is this modulator to be implemented (what is the reduction in
> filter frequency at vel=127 - probably 0, vel=64, 63 and 0?
> - What is the correct definition for this modulator (in terms of primary
> / secondary type, polarity, direction)? The point is, that a sound font
> has the option to overwrite the default modulator. I could easily get a
> working implementation, for example by using two modulators, one of them
> switched. But if I change the controller definition 'to what sounds good
> to me', this will not work anymore.
> 
> I'd appreciate any help here.
> 
> Best regards
> 
> Markus Nentwig
> 

This modulator confuses me as well. The first thing that confuses me is
why this should be default behavior. It seems weired that the filter
cutoff frequency should be modified by the key velocity as a default. A
lot of things don't jive with the values and the description too:

Amount source Enumeration = 0x502 (type=3, P=0, D=1, CC=0, Index=2)

I typed it how it is in the spec. 

1. The first problem I see is that 0x502 should actually be type=1
(Concave) rather than a Switch. So I think they meant 0xD02 (type is bit
10-15).

2. The second problem I see is with the reverse direction (D=1). In the
description it says that the velocity to filter cutoff is disabled at
velocities below 64. With an inverse direction switch velocities below
64 would equate to 127/128 which when then get multiplied by the -2400
cents. This would then get multiplied by the first enumerator. This
seems opposite from the description. So perhaps they actually meant
0xC02?

There are some other logic problems in the description paragraph for
that modulator. "...all other values are mapped between 127/128 and 1 in
a linear fashion". It should actually be 0 -> 127/128.

Anyways. Its messed up. Lets forget about it for now :) Cheers!
        Josh Green




reply via email to

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