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

Posted: 5/28/2020 4:21:08 PM

From: Northern NJ, USA

Joined: 2/17/2012

Noise Modulation II

Much of this week was consumed with volunteering, but I managed to squeeze in some programming & experimenting time here and there.  When you change anything in the synth you have to try it out for a while, and if it seems like a keeper (or at least a better / closer) you usually have to go back and tweak the presets, and in doing so one gains further experience with the new normal.  With the noise scheme described in my previous post, I found myself fighting the "sizzle" sound of the very narrow pulse window, and wondered if P/V modulating the level of the window might be better, and realized this might easily integrate into the "drop" feature (where the noise level post knee is variable) when the pulse strength was set to zero.  Alas, I found myself fighting this arrangement too.  But in this whole process I noticed that the P/V modulation of the phase modulation signal itself (via P/V modulation of the oscillator "harm" value) was providing some pulse width control, and in a natural sounding kind of way that I didn't need to further axis modulate nor overly fight with in order to get it to blend in with the oscillator.  Here is this new scheme:

The only thing that changed here is the very bottom path.  Here is what is going on in that path in terms of processing:

Again, we take the PM signal from oscillator 0 and flip the most significant bit to go from signed to unsigned.  Then we invert all the bits to flip it, which puts the peak on the x axis (the x axis is point about which all multiplications "hinge").  Next we subtract the "duty" knob from it to move it down, then limit it to chop off the negative portion.  The result is multiplied by the "puls" knob value, which attenuates it as this is a fractional unsigned multiply.  Finally we multiply by 16 and limit again to chop off the overflow.  This signal is subtracted from the linear noise level, limited to remove negative values, exponentiated, with the result used to control the noise level.  The noise spectrum is then shaped via bass and treble tone controls, as well as a general 2nd / 4th order multi-mode state variable filter that follows (not shown).

Here's a very short demo of the new noise with the humming preset: [MP3].  I've got the noise turned up a bit more than normal to emphasize it.  The noise here is simulating nasal radiation.

It does a steam train pretty good too: [MP3].

Posted: 5/28/2020 11:31:18 PM

From: Northern NJ, USA

Joined: 2/17/2012

"I always called your work gestural controlled sound effects."  - oldtemecula

Sez the dude who pushes a photocell-based volume side...  and seemingly has nothing to do but criticize others.

Posted: 5/29/2020 4:32:26 AM

From: Northern NJ, USA

Joined: 2/17/2012

The One True Way

I'm constantly amazed by the response and stability of the Theremin capacitance field.  Theremin's genius was in recognizing this and turning it into a new musical instrument.  Heterodyning is the simplest way to turn the C field into sound, but at the same time it is also quite confining from a design / playability / ownership standpoint.  If you only have a handful of active devices to work with (tubes, transistors) - as he did - then heterodyning is the only game in town.  But times have changed - indeed by many, many orders of magnitude - as very high speed transistors now cost literally nothing, and can be packed by the billions onto a single chip.  Analog methods to linearize the near pitch field are complex for the designer and can be particularly troublesome for the musician.  And no method exists (that I know of) that will alter the fundamental sensitivity of an analog heterodyning Theremin throughout the pitch field, without decoupling audio generation from the pitch field response.  Here we are, with the ability to improve this situation while retaining the fundamental mystery and beauty of the C field (keeping the baby while throwing out the bathwater) and some folk(s) (always with a vested interest) have the gall to holler stop.  There's room here for everyone.  If you have strong beliefs regarding what a "real" Theremin is, then great, play it, knock yourself out - I for one will be impressed if you can do it well, as I know how difficult it is to play the thing - and godspeed, live long and prosper, go in peace, I'm 100% behind you.  But for me anyway, it's all about playing the C field, and has little to do with exactly how nitpickily the audio is generated (though I very much enjoy playing basically different voices with the C field - a single simple voice, or small variations of it, can get old rather quickly IMO, and different voices encourage me to play quite differently).

"What is wrong with a photo-cell Volume Control?"  - oldtemecula

I don't recall Theremin ever using a photocell for volume control, so it's not a "real" Theremin if you do so?  (Forgive me if I've gotten this part wrong, I don't normally play this crazy game.)

Posted: 5/29/2020 2:34:08 PM

From: Northern NJ, USA

Joined: 2/17/2012

"One day you will study my work wondering how I got certain results."  - oldtemecula

I've studied your work wondering how you got "perfect linearity" results and it turns out you were just lying about it all along.

"I had to join facebook a couple of months ago to find an audience and to leave my legacy."

God help them.  Your legacy is wasting people's time with your wild false claims and half-working voodoo circuits.

Posted: 5/29/2020 4:12:09 PM

From: Berlin Germany

Joined: 4/27/2016

Dewster, the suitable noise-random pattern is a good task. What do you think is the mean parameter to be addressed, the loudness, the timbre or the pitch? Neither nor? Should the random value be added to the r.f. before mixing?

Posted: 5/29/2020 6:02:27 PM

From: Northern NJ, USA

Joined: 2/17/2012

"What do you think is the mean parameter to be addressed, the loudness, the timbre or the pitch? Neither nor? Should the random value be added to the r.f. before mixing?"  - JPascal

The main thing is: unless you are doing a steam train or angry wind type sound, noise is largely incidental.  For human vocals you don't need noise.  For breath driven instruments like clarinet, trumpet, etc. you don't need noise.  Surprisingly, even for a convincing human whistle you don't need noise.  So adding the noise is a very secondary type thing to do, and doing so realistically is difficult.  It's very easy to add noise to an otherwise good voice and have it sound less good / real (ruin it).  So the trick is to make the noise blend with the voice, and I've found having the start of the noise coincide with the highest harmonic features of the waveform to be least obtrusive:

The high harmonic content features are those which are the most vertical.  The start of the noise should be abrupt if the harmonic content of the waveform is high.  The envelope can trail off on the end, or perhaps not even fully turn off for certain types of sounds.  After the envelope and phase are correct, I still have to do a lot of filtering and amplitude modulation (with the pitch and volume axis numbers) to get the noise to blend in with the waveform.

I think the difficulty of integrating noise into otherwise pristine waveforms is why a lot of folks turn to physical models stimulated with noisy breath / noisy violin bow, etc.  It's been quite a challenge for me, and I still don't feel like I've conquered it.

Posted: 5/29/2020 9:45:59 PM

From: Berlin Germany

Joined: 4/27/2016

I will also try something. Learning from the very old instruments, flutes without mouthpieces. There is more or less air flow that goes into and partly past the flute, making noises. Different overtones are excited at the same pitch.

Posted: 5/30/2020 12:40:08 PM

From: Germany

Joined: 8/30/2014

Let's see whether certain noise sources can be amplitude-modulated by calling them out on their BS.

I saw one thing that made sense to me, though:
If there really is a danger of this forum going away, that would be quite a shame with regards to this thread, which documents a long R&D journey in some detail, that many could learn from a thing or ten.
Would be neat if there was some way of grabbing the content to store it in some way, optimally with intact markup and images.

Posted: 5/30/2020 5:35:56 PM

From: Northern NJ, USA

Joined: 2/17/2012

"Would be neat if there was some way of grabbing the content to store it in some way, optimally with intact markup and images."  - tinkeringdude

I've been saving the pages in Firefox using the native "to html" option which doesn't save images, but does give fairly clean text.

Trying out a Firefox plugin called "SingleFile" which crams the images into the html file too.  Looks like tons 'o crap in the text editor, but it renders fine.  I'm sure many of the links wouldn't stay internal though, so my first index post would be broken.

"I do not have inside info on the longevity of TW..."  - oldtemecula

Then maybe you could stop with all the insinuating that it's going away, it's really disrespectful.  Maybe you don't care about this place anymore, but the rest of us are still here.

Posted: 5/31/2020 4:56:09 PM

From: Northern NJ, USA

Joined: 2/17/2012

I flipped the sense of the Resonator "mode" knob to make more intuitive (I kept expecting 2 instead of -2 to give reverb / pseudo stereo, the main thing it gets used for):

-2 : parallel pseudo stereo
-1 : parallel (formant fill)
0 : formant bypass (variable w/xmix)
1 : serial (reverb)
2 : serial pseudo stereo

I added a new "ktoe" command to the librarian which downloads all of the current knob positions to the editor:

Working like a champ!

Going back over all my presets and tweaking them to fit the latest changes to the synth.  Will try my level best not to change anything else at this point, my presets have been in a minor disarray for too long now.  One thing that's occasionally fruitful is discovering new sounds when an old preset responds strangely to new changes.