[sdiy] Re: FPGA 2-OP FM MIDI Polysynth
Veronica Merryfield
veronica.merryfield at shaw.ca
Mon May 4 19:56:57 CEST 2009
On 4-May-09, at 10:18 AM, Scott Nordlund wrote:
>
>> Veronica Merryfield mentioned an interesting idea - to allow sound
>> generators with a
>> phase modulation input to be incommitted to any specific structure
>> and use a patching
>> program to "connect" them in various ways. This way N-operator
>> could be done
>> depending on the robustness of the patching mechanics. Not being a
>> person experienced
>> in FM, I don't know at what value it begins to become silly to
>> increase N.
>
> In this case it might be preferable to have multiple phase
> modulation inputs per operator (summed together) to allow for
> feedback and more interesting routings.
My suggestion is to have each unit with a fixed frequency input, an
envelope and an input from another unit. The unit is just a sine
oscillator followed by an amplitude modulation stage controlled by an
envelope and perhaps another input. This is followed by an accumulator
where the output of this and other units can be gathered to provide an
input to other units.
I think this provides the most flexible arrangement allowing for FM
and additive synthesis to work together, enabling one or more units to
modulate one or more other units including feedback paths.
>>> If you have the DSP power for multiplies, my tip would be: use 4-op
>>> Phase Modulation synthesis with derived waveforms (like the TX81Z)
>>> with log tables, and use the multipliers for analog style envelopes,
>>> good subtractive filters and effects (FM sounds generally takes very
>>> well to a touch of chorus and delay, and some sounds really come to
>>> life with a bit of overdrive). Make it multitimbral, and voilà, it
>>> might be the only synthesizer you ever need.
>
> Well the log tables are used for envelopes, so if multipliers are
> used then the log won't be necessary (as far as I know, anyway).
>
> exp([linear envelope] + [log(sin)]) is equivalent to [exponential
> envelope] * [sin], right?
>
> And this is the problem, since "exponential envelope" ends up
> working backwards for the attack.
>
> Imagine a linear envelope through an exponential function- the decay/
> release portions are fine because an exponential decay is what you'd
> ordinarily hear in acoustic phenomena or analog synthesizers. The
> attack portion, however, becomes exponential growth, as opposed to
> the rising exponential decay (or linear, I guess, though I haven't
> found any that work this way). For long attacks it sounds
> unnatural, like something playing backwards. In the DX7 (or Casio
> VZ), this can be partly worked around by setting the initial level
> to 50 (out of 99), since it's pretty much inaudible below this
> anyway. I some cases though I found myself using an additional
> envelope stage to make it sound more reasonable. This is fine on
> the VZ (8 stage envelopes) but rather hurts on a DX7 (4 stage
> envelopes).
>
> Well as far as I can tell this presents a slightly difficult
> situation, since the lousy attacks are a by-product of the log math
> that makes the implementation more efficient. The best solution
> that I can think of would be to generate envelopes via a difference
> equation (with a threshold to advance to the next stage). This does
> require a multiply, but if this were fed into a log table, the
> scaling could still be performed without a multiply. I wonder how
> the Synergy phase shift method would compare...
>
> I'd appreciate if someone would verify that this makes sense,
> because I always worry that I'm going off into some nonsensical
> speculative daydream.
I further proposed for the envelopes that multiple linear stages are
used. Linear stages are much easier to implement digitally and provide
the user the facility to create exponent curve approximations through
the use of multiple linear stages. If the user interacts with software
rather than the raw data, the software can make this task simple. The
envelope mechanics also need a sustain point or the ability to loop
until the release. The looping allows for volume of frequency effects
(vibrator, tremolo, etc) normally associated with LFO on an analog
synth.
Veronica
More information about the Synth-diy
mailing list