Blamsoft XFX Wave Harmonics are WILD

Mine is an exact clone:

I know. I use yours often, because of its compact size. Just credited the source (Befaco). Just saying there are many shapes that you can created with just even harmonics (with all sorts of relative amplitudes an phases).

To go all out additive you would need several dozens of sines. All set at multiples of the root frequency. Then at least have dedicated per oscillator amplitude modulation. E.g. via dedicated envelope generators.

You could also control their phase and/or micro detune their frequency. And see/hear what happens.

I might add some FM/PM vs harmonics later.

2 Likes

yes, all true. There aren’t that many additive VCOs around, because (I think) of that issue you mention - how do you control all of them? Bogaudio has one that’s interesting. It’s funny, after I made Basic VCO I said to myself “gee, I can make hundreds of sines without using much CPU. What can I do with this?” All the ideas I came up with were too difficult and speculative. Then I made Organ 3, which is of course very constrained. But it does have over a hundred sines in it!

1 Like

Jean Michel Jarre used the (dutch) Eminent 300 Unique organ because it had oscillator complexity and polyphony.

It achieved this by simply dividing up/down the oscillator frequencies. No need for many oscillators if the ratios and are fixed and preferably whole number multiplications. No need for phase sync either. Just like the Roland Juno’s.

You could have cheap harmonic series that way. Add amplitude modulation per multiplied oscillator and we are almost there.

There is still the issue of Nyquist and aliasing.

Just force amplitudes of harmonics at frequencies above half the Nyquist frequency to 0 to prevent aliasing.

Generating the waves is not the problem. And having the phase and tuning locked isn’t really what you want, in general. My Chebyshev VCO does this, and with much more control, using chebyshev polynomial waveshapers, but still I wouldn’t call it additive if the pitches are constrained to the exact harmonic series.

Of course I know about top octave generators (I made an organ with on in the 70’s), and the Roland “DCOs” they used in the 80’s for the Junos.

The issue with Additive is mainly the complexity in the modulation matrix and related GUI issues.

But you could have a simplified GUI that combines an oscillator and an envelope generator. Like Bogaudio FM. But with the added ability to set an amount of harmonics. Which are then just virtual copies with a diffrent fixed frequency. In object oriented term objects from a common class.

In the GUI you could then just select the ratio/harmonic you want to edit and set it’s properties (amplitude fixed, min, max and/or ADSR). Oscillator wise it is then actually a lot like unison, but each voice has its own dedicated read only fixed ratio frequency (but also with its own dedicated ADSR).

Just…modulating each harmonics properties then is a bit of a thing. Maybe limit them them to 16 voices and use polyphonic cables to modulate up to 16 harmonics.

Same could then be achieved with ADSR’s. Up to 16 of them, outputting into a poly output/cable.

Just pondering here.

Maybe I should stop hijacking this thread…

I’m not at all suggesting you would’t know about oscillators, synthesis and DSP. I add these details because I expect these threads or ‘articles’ are read by all sorts of people. From experts to NOOB.

Anyway.

There is another additive idea that is not implemented too often:

The PadSynth algorithm by Nasca Octavian Paul https://zynaddsubfx.sourceforge.io/doc/PADsynth/PADsynth.htm

The guy behind ZynAddSubFX and PaulStretch.

Anyway: the algorithm is open source and in the public domain as far as I know.

In short it is additive synthesis, but instead of single harmonics he added multiple slightly detuned sines around the individual harmonics. With control over amount and spread and such.

Great for Pads. But of course not limited to that.

Not sure if PadSynth is already implemented/available in some VCVRack module(s).

1 Like

Aha, there it is! So PAD synth is available in VCV Rack.

I’m not at home at my workstation. I’m just typing away on my phone here. So…no reference to articles and other sources. Many typos too. I am suffering ever more age related handicaps. Like…degrading eyesight. Not ideal in combination with small screens and virtual keyboards on a phone. Annoying.

I might create a seperate thread about wave shapes, wave shaping (AM, FM/PM, sync etc), phase/comb filter effects and spectrum/harmonics.

If you start looking for info on all that you will soon get lost in all sorts of theory and math. Often leaving little clues for actual practical use (in synthesis).

Knowledge without application has no value…

Therefore I have tried to offer some practical insight for us common folk on other (synth/synthesis) forums (fora). E.g. at KVR Audio. Only recently started posting on VCV Rack Community.

3 Likes

I read it through in the knowledge that that was the TL:DR

Fascinating stuff.

Interesting. That’s a paid module, but already I’m wondering how efficient it is. Wel, wouldn’t be the first time I bought a module just to spy on it… Update - ok, found the original info. Looks like it should be quite efficient, as it is a repeating wavetable generated by a single inverse FFT. Same thing I do in “Colors”, but this time for good instead of evil. nice.

There are (of course) other takes on Additive synthesis.

It definitely helps if there are “macro” functions to manipulate amplitude of multiple harmonics at once. You can implement simple Tilt (Baxandal) like filter concepts.

But since we can manipulate each harmonic seperately, there are many, many options. Any amount, or shape of filter of any width/slope.

E.g. you can have a notch filter (or multiple) with a width of up to single harmonics. You can simply switch odd/evens/fibanocci/primes or any other group on or off. Or modulate them as a group/set. You can can sweep a bandpass of up to a single harmonic width back and forth accross the spectrum. And so on.

You could also have an FFT based ‘fliter’ that can can do these things. Either at or around some frequency, but you could also just filter or amplify odds, or evens or any other set and any width. And so on.

Sort of harmonics/(I)FFT based Additive and Subtractive synthesis. Way beyond what my old Kawai K5 can achieve.

Air Music Technology Loom is one of the few (software/plugin) synthesizers exploiting this sort of thing.

Yes please :slight_smile:

A bit on AM/RM and FM/PM…

I will cut some (many) corners here and there, so be gentle in your critiques. I am just trying to bring some concepts into the practical domain. Just like driving a car, you can drive it just fine without any knowledge of the complex physics behind it all.

Just like with cooking, it is as much about the cook (you) as it is about the kitchen (e.g. VCV rack). Just having the tools doesn’t make you a carpenter. You will need some knowledge on how to use your toolbox. On the other hand: knowledge has no value without application, so…do get some hands on expererience too by fiddling with (vritual) wires and knobs. Just trial and error yields a long and frustrating path. Better look for the beaten track. There is a reason why it is the beaten track. It will probably lead you to your destination via a faster and less challenging route.

Anyway…here we go…

AM: Amplitude Modulation FM: Frequency Modulation PM: Phase Modulation

This is all about one audiorate signal modulating another. Either amplitude, frequency or phase. Generally in a 2 signal configuration, we will call the signal being modulated the “Carrier”. It is the signal you “hear”. We will call the signal modulating the Carrier the “Modulator”. So, where actually just be modulating some things at faster rates…

But, since at audiorates, any audiorate output is is also an audio signal, the same output that might go into the “modulation” path (e.g. amplitude level) could also go into the “audio” path (e.g. to a mixer, towards your headphone/speakers).

The whole issue is: at audiorate we don’t really distinguish between audio or modulation signals. Any output can either go into some modulation input or audio input. Or…both. It could als feed back into its own modulation inputs and/or into some other point(s) back upstream. We call that: feedback. Though feedback can yield great effects…feedback can soon get out of control.

Anyway…unlike “classic” hardwired synths that offer AM (many) or FM/PM (e.g. Yamaha) in modular we can also mix AM, FM, PM, sync etc. Depending which audiorate output you connect to what type of modulation input.

So…it all depends on context whether we should refer to some object as a “carrier” or a “modulator”. In modular we just say “oscillator” if we are talking about something that can generate audiorate signals. In Yamaha FM (which is actually PM) we call them “operators”. Simply put: if you can hear it (and turn its volume up and down), it’s a carrier. If it modulates some other signal (or its own using feedback) we call it a modulator.

Remember it can be both at the same time. Well…in the digital world it actually almost at the same time. In VCV, any cable connection introduces a 1 sample delay. For processing purposes we need to know the sequence of events. Any delas between two signals is actually a phase shift (and might cause phasing / comb filter effects when mixed/summed back). But we will ignore this for now.

At this point…now we know we can create complex modulation networks (with optional feedback loops), we would need some idea about what actualy happens when the “oscillator” spectrums start interacting. What can we predict about the outcome…

Because…else things will get pretty unpredictable. Happy accidents may happen. But you would not know how to steer the whole thing into some intended direction.

About AM/RM

Here, we just modulate the amplitude od some signal at audiorates.

AM (Amplitude Modulation)/RM (Ring Modulation) will generate sum- and difference frequencies. Technically it is actually multiplying signal1 x signal2. Consider a sine at 300Hz and a sine at 200Hz. The result would be 300-200=100HZ and 300+200=500Hz. You could also still have the 300 Hz itself depending on AM or RM. But…same goes for all individual frequencies/harmonics in the spectrum of the signal. Soon many, many sums and differences may appear to the left and right of the carrier frequency. So using more complex spectra (like pulse or saw) can soon generate way too many frequencies. AM/RM works a lot more predictable with signals with just a few well chose harmonics. And…stick to musical ratios to prevent disharmony (unless this is desired of course).

All sorts of fun can be had. E.g. by modulation amplitude using a pulse wave as a modulator. This can “chop” holes in a signal by switching its amplitude “on” and “off” during its cycle. A bit like the Roland Alpha Juno oscillator could.

Remember you can use plain multiplication math (a x b), which some modules offer, e.g. to control modulation amount by keyfollow, velocity or aftertouch.

One more thing on AM/RM: if the “difference” frequencies go below 0 Hz they sort of disappear. No reflection back into the audible spectrum. On the other side of the spectrum, “sums” might run into digital aliasing. To keep it (too) simple if the samplerate is not high enough, higher frequencies (above Nyquist) will be reflected/divided back into the spectrum (e.g. at half their frequency). Causing inharmonic artefacts.

About FM/PM

This is just controlling the frequency or phase of a signal. Imagine it as sort of “compressing” or “stretching” a wave form during its cycle, thus deforming its shape over the (horizontal) time domain while leaving the (vertical) amplitude domain untouched (yes, cutting corners here).

FM (Frequency Modulation, Linear) is actually generally implemented as PM (Phase Modulation). Even the famous Yamaha FM (see John Chowning’s research), is actually PM. FM and PM are mostly interchangeable, but PM has several advantages (lots of tech talk left out). E.g. no offset issues and you can have a carrier at 0 Hz, effectively achieving waveshaping/phasedistortion (many “PM” synths can’t go all the way down to 0Hz for the carrier). Let’s for now just say that FM/PM will also generate “difference” and “sum” frequencies. But unlike AM: the more FM/PM amount, the more of these “difference” and “sum” frequencies appear to the left and right. They are called “sidebands”. Their intervals are determined by the ratios between (let’s say) carrier and modulator. E.g. a 1:1 interval will generate all harmonics at various amplitudes (this can simulate a saw-ish spectrum). But a 1:2 (carrier:modulator) will generate odd harmonics only (this can simulate triangle and square spectra). Unlike AM, with FM/PM the “difference” frequencies that hit 0Hz will be reflected back into the spectrum, but at inverted phase. So, they might either amplify or cancel out any harmonic already at that rank position in the spectrum. Effectively changing the lower/mid spectrum. At very high modulation amounts (or due to feedback) things wil soon approach chaos: noise. FM/PM can soon generate many frequencies. And modulation takes place all over the spectrum (unlike say: subtractive lowpass filtering/resonance). With no filters in place, FM/PM can potentially generate many very high frequencies in the spectrum that will then cause aliasing.

I hope the info above will help you steer towards some more predictable control over AM/FM/PM. Remember we can mix/combine AM/FM and PM (and any other synthesis principle/technique). Maybe it will help you discover some new ways to create/modulate spectra. Music is in the end just some intended change of spectra over time.

Let’s leave it at this for now…happy synthing.

4 Likes

That’s a fairly accurate and succinct explanation. Good work!