On Thu, 2003-11-20 at 07:10, Steve Harris wrote:
> I have some likly values for the cutoff - it looks like:
>
> cutoff (Hz) = CC val * 40.0;
>
> Which is supprising as its both quite limited (max 5080) and linear. What
> does DLS define it as?
>
>From what I can tell looking at the DLS2 specs, the filter cutoff
frequency is in 32-bit absolute pitch units which looks like:
Absolute Pitch = (1200 * log2(f/440) + 6900) * 65536
f is the frequency of interest. Each abs pitch unit represents 1/65536
cents.
How this gets mapped to a MIDI controller depends on what connection
blocks you create. Connection blocks are pretty much just like SoundFont
modulators, except in DLS they are used for all parameter settings (if
its just a fixed value with no control sources, the controls sources
will be constant). A connection block looks like:
uint16 Source
uint16 Control
uint16 Destination
uint16 Transform
uint32 Scale
Source/Control specifies 2 sources of control (there is a nice table of
all of these numbers in the spec, includes CC controllers as well as
synthesis signal inputs like Envelopes and LFOs). The Destination
specifies what parameter a connection block is applied to (gain,
panning, LFO parameter, EG parameter, Filter, etc). The Transform can be
None, Concave, Convex or Switch. The final parameter Scale, specifies
the actual value to multiply with the Source/Control and Transform
parameters. Pretty flexible parameter format, the one unfortunate part
of the spec is that they define a set of "supported" connection block
sources/destinations. This may just mean what should be supported
minimum to be considered DLS compliant, but I'm not sure. The format
itself would allow for some cool things though (like controlling panning
or filter resonance with envelopes or LFOs).
> I dont have an analysis of the filter type yet, but I'm working on it.
>
> - Steve
I'm sure thats more info than you wanted, but I just couldn't help
myself, I like the DLS2 format a lot. Cheers.
Josh Green
|