Let's Design and Build a (mostly) Digital Theremin!

Posted: 8/25/2020 2:11:54 PM
dewster

From: Northern NJ, USA

Joined: 2/17/2012

"Is there a way of controlling the oscillator's odd harmonic content with pitch?"  - pitts8rh

No.  I actually tried this yesterday (reassigned harm pmod => odd pmod) but it was rather subtle to adjust, and didn't produce the results I was hoping for on the flute preset, so I backed it out.  I also tried it with my latest cello patch and it only seemed to make things worse, just a little too much odd on the low end gets really weird sounding.

Have you tried giving harm itself some negative pmod to accentuate the low pitch harmonics / reduce high pitch harmonics?  Like maybe -8 or so?  Have you tried messing with the noise (I've got that kicking in on the low end of most of my string patches, and it can confound adjustment if you're not aware of it)?

Also, there's still some interaction between the odd knob and the harm knob, small values of odd noticeably knock the overall harmonic level down.  I've compensated for this with polynomials and such, but I can't completely remove the interaction with the current PM oscillator topology.

Posted: 8/25/2020 3:11:08 PM
pitts8rh

From: Minnesota USA

Joined: 11/27/2015


Have you tried giving harm itself some negative pmod to accentuate the low pitch harmonics / reduce high pitch harmonics?  Like maybe -8 or so?  Have you tried messing with the noise (I've got that kicking in on the low end of most of my string patches, and it can confound adjustment if you're not aware of it)?

Yes to both.  The noise is a separate issue, but I found that with more odd harmonics the low end of the cello started to match really well with my Kurzweil samples.  Midrange is still okay but high pitches are unacceptable.  An inverse pmod/harmonic link did not help that much for the values that I tried because I didn't want to turn it into a sine wave just to mute the characteristic odd harmonic sound. I'm looking at both a scope display and spectrum analyzer while I'm doing this too.


There is a satisfactory compromise that is dictated by the higher pitch timbre, so you take what you can get at the low end.  But I was surprised at how boosting the odd harmonic in the bass notes really helped make it sound as full as the real samples.

I guess I thought that you had pmod/vmod control over the odd and even harmonics at one time, but perhaps I'm thinking of something else.  It seems like a function that might be good to have, though.

Posted: 8/25/2020 3:57:28 PM
dewster

From: Northern NJ, USA

Joined: 2/17/2012

"I guess I thought that you had pmod/vmod control over the odd and even harmonics at one time, but perhaps I'm thinking of something else.  It seems like a function that might be good to have, though."  - pitts8rh

There was pvmod control over xmix at one point, and IIRC it was possible to do it via that mechanism.  The oscillator section has taken many forms over time, it's probably morphed more than anything else in there.  The current incarnation is something of a balance to accommodate both acoustic simulation and more woo-woo wacky sounds.  Over time there have been knobs for just about everything, and I've pared them down to what seems the most useful.

One problem with adding functionality at this point is UI real estate (2 pages, or 14 knobs, total for the section).  Another is going back and realigning all the presets to the new normal.  But I'm certainly open to suggestion. 

I still have the *.spi file from yesterday's experiment, I'll send it to you to play with.

Posted: 8/25/2020 4:52:25 PM
pitts8rh

From: Minnesota USA

Joined: 11/27/2015


There was pvmod control over xmix at one point, and IIRC it was possible to do it via that mechanism. 

Yup.  That's what I remember.


Having control of odd or even harmonics with pitch (and possibly volume) would be nice, but if it came down to a tradeoff I doubt that it would be worth giving up modulation of all harmonics as it is now.  Pmod or vmod linked to odd or even harmonics is probably less important and more of an embellishment.  The problem is that I've seen an example of what it could do for the cello, but if I stop A-B comparing to the sampler my reference will go away and the difference won't be so noticeable.  Problem fixed!

I should be recording the Kurzweil/D-Lev shootout examples for you but I'm a little disrupted right now and not set up to do it easily.  Maybe later.

Posted: 8/25/2020 6:02:43 PM
dewster

From: Northern NJ, USA

Joined: 2/17/2012

Cockamamie Cabinetry Ideas

This has been kicking around in my head lately (warning: plates ahead!):

I should draw it up in SCAD or something to give a better initial impression, and this isn't to scale. 

The main design points:
1. The central spine is itself angled to match the angles of the plates.
2. The tuner is positioned directly above the pitch plate.
3. Each plate is in a box with coil & AFE (not new).

With this I wouldn't have to build (3D print) an angle into the tuner face, and the LCD would be similarly optimally angled automatically.  There's no external wiring, no removable antennas, and the whole thing probably wouldn't be bigger than an acoustic guitar.  I don't like the knobs being this close to the pitch plate, maybe move them down some.

Posted: 8/25/2020 7:30:07 PM
tinkeringdude

From: Germany

Joined: 8/30/2014

Heh. How about adding a simple IR receiver that decodes a signed number that says how much up or down to tune. Then with a DIY IR remote, one could tune without reaching for any controls and messing with the field. Or even with a standard remote control, using the track-forward for coarse steps, and fast-forward for finer steps, or something.
It's not as "cool" as having Bluetooth. But hey. It's still "without touch", almost.
Unless this already isn't a problem... I recall something of you saying the EW Standard being harder to tune.

Posted: 8/26/2020 2:10:19 AM
dewster

From: Northern NJ, USA

Joined: 2/17/2012

Yes, but you're touching the remote! ;-)

With my second prototype I'm finding the knobs being too near the plates to be a bit more of a problem when adjusting things, particularly when doing an auto calibrate.  With the first one, having my hands on the control box meant they were an intermediate distance from the plates, and not too far nor too close seems to be a sweet spot for that operation - it's about repeatability of the environmental capacitance.

Posted: 8/26/2020 12:16:08 PM
pitts8rh

From: Minnesota USA

Joined: 11/27/2015

0_OSC versus 1_OSC

I spent some time this morning trying to understand the new system, and I have questions.  Many.

Starting with a clean preset slot so that I am looking only at oscillator waveforms on the scope, these are my observations at this point.  I'm working from memory as I write this so bear with me, and tell me if I'm right or wrong:

1) for 0_OSC, increasing the ODD setting is really just suppressing the even harmonics

2) PMOD and VMOD only modulate the harmonic content

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).

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.

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?

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?

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)?

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.

I'm still learning what this is all about, so forgive me if I'm asking stupid questions.

Posted: 8/26/2020 1:23:06 PM
dewster

From: Northern NJ, USA

Joined: 2/17/2012

"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).

Posted: 8/26/2020 3:58:12 PM
dewster

From: Northern NJ, USA

Joined: 2/17/2012

FM_9

Balls-to-the-wall FM, resonator, bass & treble, no external effects: [MP3].  A bit of manual octave switching (watch your ears!).

I think Rupert Chappelle might find this sort of preset useful, and he could maybe dispense with some of his footpedals and such.

You must be logged in to post a reply. Please log in or register for a new account.