Now that we've got that stuff out of the way, I am attempting to further my understanding and mastery of the complexities of FM synthesis. For this experiment I am using GoldWave to touch frequencies and envelopes at raw instead of going through an emulated FM chip or synthesizer. Obviously the evaluator is in use. I have not yet touched Mattlab, probably spelled that wrong, as I do not know how screen reader friendly it is. By looking at the expression used for frequency modulation I have:
- noticed that the preset applied is more accurately to be called phase modulation, although if I understand right most FM synths do it via phase modulation simply because it's simpler to implement and works just about the same. Hardware did this and so software I guess had to.
- created my own testing preset where I have control of the carrier and modulator under the waves section.
- noticed that when modulating an audio signal produced by chaining periodic waveforms together for envelopes, a smoother must be applied about 10 ms to the left and right of the boundary to avoid odd spikes in the tone.
- attempted to craft an expression that would allow me to modulate a waveform by another waveform instead of using a tone, so that I may simulate more than 2 operator synthesis, or do two operator with variation in the carrier. At this point I noticed an anomaly that I will cover in this post.
Code: Select all
wave1(n+y*wave2(n))
It seemed that once the constant part of the modulator, the sweeping one, was in effect, there was some strange sort of fuzz or quantization artifacts being produced in my resultant signal. Turning up the modulation index at y causes them to be even more pronounced. It should produce a simple hollow ringing sound at that point in time, instead it produces an almost warbling steppy broken thing.
Given that I am not a master of FM yet, I would love to know what could be producing these strange artifacts that are corrupting my result. Is my expression wrong? Can I improve it somehow? Is there some kind of internal mixing error? Thinking for a second maybe it's the fault of 16-bit mixing I took to the new file dialog only to discover that I couldn't tell it to create a new file in 32-bit floating point. So at this point I really have no idea what's wrong, but I would love to get it corrected so that I may begin to experiment with multi-operator FM and begin to figure out the relationships needed for the sounds I want, so that I may then take that result and begin applying it to FM chips like an emulated Sega Megadrive and VSTi synths.