"I spent some time this morning trying to understand the new system, and I have questions." - pitts8rh
This is probably the least confusing diagram I've produced of the current oscillator section:
Top is one of three oscillators (OSC0, OSC1, and OSC2). The main features to note are the I/O:
- FREQ is the frequency input (A8 max).
- OUT is the audio output (of the sine unit).
- PM I/O are the phase modulation input & output. (Note that PM_o is routed back for internal use.)
- HARM sets the overall harmonic level (the harmonics are generated via phase modulation, so this is a PM level control).
- HMUL is a multiplicative offset of the frequency input going to the phase modulation unit (+/- 1 octave).
- ODD (not shown) is an input to the PU (phase modulation unit) that crossfades between all and odd harmonics.
- FM crossfades between local phase modulation (PM_o) and external (PM_i).
Lower Left shows the three oscillators, their control inputs, and the mix of their audio outputs:
- XMIX crossfades between the audio outputs of OSC0 and a submix of OSC1+OSC2 (weighted so XMIX=16 gives equal blend).
- OFFS (left & right knobs) apply multiplicative offsets to the FREQ inputs of OSC1 and OSC2 respectively (+/- 1 octave).
- HMUL (left & right knobs) are routed to the HMUL inputs of OSC1 and OSC2 respectively (+/- 1 octave).
- SPRD applies additive +/- offsets to the FREQ inputs of OSC1 and OSC2 (used for unisons, constant speed warbles, etc.).
Lower Right shows the PM interconnect between the oscillators:
- The PM_o outputs of OSC1 & OSC2 are summed and sent to the PM_i input of OSC0.
- The PM_o output of OSC0 is sent to the PM_i inputs of OSC1 & OSC2.
- Global PM crossfade (local vs. external) is controlled by the FM knob. Global PM level is controlled by the HARM knob.
"1) for 0_OSC, increasing the ODD setting is really just suppressing the even harmonics"
Yes, you could look at it that way. The ODD knob value is applied equally to all three oscillators.
"2) PMOD and VMOD only modulate the harmonic content"
Yes, and this modulated HARM is applied equally to all three oscillators.
"3) 1_OSC uses 0_OSC as the source; if 0_OSC is a pure sine wave then the 1_OSC HMULT and FM settings don't do anything, although SPRD and OFFS do (as well as XMIX of course)."
The 1_OSC page contains the controls for the OSC1 & OSC2 pair. FM is probably best understood via the lower right diagram (I have to think of it when adjusting the FM knob). When XMIX=0 and FM=31, the HMULT, OFFS, and SPRD knobs only have influence when HARM != 0 (because HARM controls the the global PM level).
"4) When SPRD is set to zero, the phase between 0_OSC and 1_OSC is fixed, but that phase relationship is not directly settable by any parameter. It seems that it can be varied by setting SPRD to 1, letting the phase rotate and then jumping out (SPRD back to zero) at some phase of choice. Despite that apparent behavior, this does not seem to be an intended use and the relationship may not be storable."
The phase is reset at a patch change. When it comes to presets, random phase offsets are generally a bug, not a feature, though I can imagine instances where they could be effectively employed. If you're after a certain level of "thinness" you might try the oscillator filter set to high pass (MODE = -1 or 1) and vary the filter XMIX for strength.
"5) Generally speaking, I don't yet understand what is happening in 1_OSC at this point, but that's okay, don't feel the need to re-explain it. I can go back to your earlier posts to get up to speed if I'm interested. But my impression right now is that 1_OSC has only occasional use for the synthesis of orchestral instruments, and is intended more for sound effects. Would this be a fair statement?"
Yes, that's fair.*
"6) Elaborating on 4) above, if for example I can intentionally or accidentally come up with something that by squinting looks like the low duty cycle pulse waveform of an RCA theremin at low pitch, would this be storable or is the phase relationship between 0_OSC and 1_OSC reset at startup?"
Phase is reset at patch change.
"7) Now this is the lead up to a loaded question and as always I like to ask about things that create extra work for you, but here goes: Are major changes to the oscillators limited to software, or does this also require hardware changes (I mean in the FPGA load)?"
The oscillators are 100% SW (on thread 3).
"8) Here is the loaded part of the question: If there is limited space to have a more elaborate 0_OSC and 1_OSC coexist, what would be the implications of having a fork that was optimized for real instruments with a more configurable 0_OSC and a 1_OSC more like the earlier version without FM? I think the current mix of real and synthetic sounds is probably the best all-around, but I'm always wanting more control for real sounds rather than synthetic."
A fork is entirely doable, though it's obviously more work to maintain, more work for version tracking, and all of the presets would probably also diverge. I (really!) don't mean to whinge, but the effort needed here seems to increase exponentially with the number of variants (FPGA pin outs, coil values, etc.).
Perhaps there's some arrangement that could be found which concentrates more on real instruments and less on woo-woo. One could obviously have many pages of knobs for even one oscillator if one were to PV mod everything, but so much of this activity comes down to "curating away" (or in some cases combining) the knobs one never really touches or don't work very well, leaving a highly useful gist remaining. And of course doing so often ripples back into the oscillator count, interconnect, and topology, so it's an exercise in global optimization. Having OSC0 more or less alone and OSC1 & OSC2 as largely secondary (and not providing the odd harmonic PM mechanism, as was previously done) and only coupled via FM (and of course XMIX) alleviates random phase offset issues which plagued most of the earlier oscillator arrangements. I do think 3 oscillators is an optimal base as it allows +/- offset from the center, and 3 sound more complex than 2, but not much less complex than 4.
* Much like there being little use for harmonic content beyond non, all, and odd when synthesizing orchestral and other acoustic instruments, having the phase modulation frequency unlocked, or set to anything other than 1 (all) and 2 (odd) doesn't seem to be all that useful for much beyond woo-woo sounds. But I do think the ability to make obvious "electronic" sounds in a Theremin is very highly desired by some players / listeners, and the current triple oscillator arrangement more or less covers both bases (I actually wish it could get a little crazier sounding, but not at the expense of milder or realistic sounding - much of the current crazy is obtained via bass boost and the resonator). It can't do everything, but it does a lot fairly well, and it could do a little more with a lot more knobs (likely also adding more confusion).