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

Posted: 5/12/2012 8:05:56 PM
dewster

From: Northern NJ, USA

Joined: 2/17/2012

WELCOME to the D-Lev Thread! - www.d-lev.com

This thread has been going for years(!) now and the sheer length and rambliness can be a major turn-off for anyone trying to come up to speed with this project. It's really two large-ish projects in one thread: HIVE, my register/stack hybrid 8 thread barrel processor; and D-Lev, my digital FPGA based Theremin.  I think the thread is worth reading just for Fred Mundel's (RIP) insights and general good nature.  If it weren't for his freely given and detailed technical advice, I'm not sure I could have gotten this far.  So this thread is dedicated to him, and to many others here (particularly pitts8rh, Mr_Dham, ILYA, Buggins, and livio) who have helped to move this project along.

The vast majority of the pictures I've posted in this thread reside in these TW photo albums:
  http://www.thereminworld.com/album/digital-theremin-stuff/15140
  http://www.thereminworld.com/album/digital-theremin-stuff-2/16747
  http://www.thereminworld.com/album/digital-theremin-stuff-3/17070
  http://www.thereminworld.com/album/d-lev-kit-pix/17422
  http://www.thereminworld.com/album/analog-theremin-stuff/15600
 
The vast majority of the code, spreadsheets, audio files, etc. that I reference in this thread reside in this MediaFire folder:
  http://www.mediafire.com/folder/w36b3brqyg2g3/theremin

The following is a list of links into the thread for the points I consider to be the most pertinent.  The relevant post number in brackets is the link, followed by a short description.  Some folks have deleted their posts, which will scramble the consecutive post numbering, but probably won't scramble the links.  You can contact me, Eric Wallin, here in the thread, or via the TW PM system, or via email at tammie_eric@verizon.net. If you find yourself in the northern NJ area please consider dropping by for a chat and some show-and-tell.  Cheers!

Year 1: Pitch only FPGA prototype, Hive musings.
[0005] - First VIDEO of pitch only / square wave.
[0016] - First AFE schematic.
[0018] - First Verilog code.
[0047] - Good Dattorro papers.
[0060] - HIVE processor twinkle in my eye.
[0131] - First LED tuner thoughts.
[0216] - Inductor SRF.
[0257] - New FPGA, Hive 32 bit multiplier thoughts.
[0266] - Hive 8 thread thoughts & Hive named.

Year 2: Solenoids, tuners, analog oscillators, mixing, plate antennas.
[0296] - Hive takes first baby steps.
[0302] - Trivial splines (fun, but unused).
[0310] - My solenoid coil winder & first coil with PIX.
[0327] - More coils.
[0336] - First Excel Hive Sim.
[0398] - More or less how my digital oscillators work.
[0408] - "Tankless" analog oscillator.
[0410] - Early proposed form of LED tuner.
[0427] - First opencores.org post for Hive.
[0428] - Bourns 6310 tempco test.
[0435] - Heterodyning for digital.
[0453] - Linearization via offset heterodyning & period measurement.
[0457] - Livio shows up for the first time with many fantastic oscillator, C sensing, and inductor ideas.
[0463] - Using Adobe Audition spectral frequency view to check for sticky operating points with PIX.
[0470] - Proposed block diagram (never fully implemented).
[0495] - XOR vs. DFF mixing.
[0515] - Begins a discussion of Theremin RF radiation.
[0540] - The tempting AM band.
[0560] - Active shielding.
[0573] - Interfering Theremins.
[0596] - Livio's Theremino PIX - with plate antennas!
[0599] - Multi-page discussion of Llivio's oscillator.
[0686] - Mains hum.
[0707] - Clapp oscillator.
[0719] - SS capacitance sensor noodling.
[0724] - Interference experiment.
[0735] - More XOR vs. DFF digital heterodyning discussion.

Year 3: Hand/antenna C measured and simulated, the Invariant, math package.
[0765] - Hive interrupt mechanism improvements.
[0794] - Switch to SystemVerilog.
[0802] - More ill-fated heterodyning & period measurement scheming.
[0811] - I start figuring out CIC filters.
[0821] - The optical SPDIF => analog RCA box I'm currently using.
[0855] - MASH DACs.
[0863] - The LED "tuner" note configuration.
[0879] - SPDIF testing.
[0883] - Early tuner PIX & VIDEO.
[0896] - Measuring the Theremini's abysmal gestural bandwidth (1.6 Hz!) with PIX.
[0909] - First thoughts / sims on CIC for operating point decimation.
[0937] - I stumble across THE INVARIANT (all non-EQ analog Theremins have the same sensitivity).
[0941] - Real C data from real antennas (for real men) with PIX.
[0957] - Early control box proposed layout.
[0970] - More tuner layout.
[0987] - More solenoid winding.
[0991] - CRC32 mania.
[1000] - Whereupon I abandon heterodyning and commit to direct measurement & plate antennas.
[1003] - The ill-fated shield drive C sensor (don't do this!).
[1006] - Plate linearity.
[1016] - FastCap simulations of "virtual Clara" and various antenna geometries.
[1017] - HW / SW oscillator (works but don't use).
[1018] - Chamberlin State Variable Filter (SVF).
[1025] - Empty Prototype with PIX.
[1026] - SIN2 in software.
[1030] - EXP2 floating point in software.
[1033] - List of design points, sim of oscillator.
[1034] - Etherwave antenna C response.
[1046] - Caution: Denorms
[1055] - COS2 float in software.

Year 4: HAL, interfaces, NCO as part of CIC, parsing, CIC as hum filter.
[1056] - HAL : Hive Assembly Language.
[1062] - SPI master.
[1070] - Parsing assembly.
[1073] - Early Command Line Parser.
[1075] - Numerically controlled periodic delay (NCPD).
[1080] - LFSR noise & logical differentiation.
[1083] - Rotary Encoders.
[1085] - The TLC5986 LED driver IC.
[1087] - Driving Miss TLC5986.
[1089] - Driving Miss LCD.
[1096] - LCD nuances not in *any* datasheet.
[1100] - LED tuner wired up with PIX.
[1104] - SPDIF / EEPROM board wired up.
[1111] - AFE board wired up.
[1114] - Measuring LC phase gain.
[1123] - Fortuitous tank drive buffer behavior with PIX.
[1129] - Purely hardware NCO.
[1130] - Pitch side construction details & PIX.
[1131] - Whereupon I give up on a 2 axis left hand controller.
[1135] - Volume side construction details & PIX.
[1142] - HAL parsing.
[1155] - Hardware handshakes.
[1157] - Examining noise at the antenna with PIX.
[1163] - Whereupon I finally see the PLL NCO as part of a CIC.
[1166] - The CIC as an extremely effective mains filter with PIX.
[1167] - Distributed HW/SW PLL/CIC data conversion & acquisition.
[1174] - DDR to increase resolution.
[1177] - Wiring up the remaining, with PIX.

Year 5: Hive sim re-write, functional prototype.
[1220] - Floating point ADD in software.
[1228] - Limiting processor hardware shifts.
[1229] - Hive finally gets byte access!
[1234] - HAL pointers.
[1241] - The new Hive Simulator.
[1253] - HAL gets a #include system!
[1255] - HAL gets a scoping system!
[1261] - Linearization by working the LC equation backwards fails.
[1262] - LINEARITY SOLVED!
[1270] - First pitch only VIDEO of the prototype making noise.
[1297] - Internal pitch & volume axis values scaling.
[1303] - Squared parameters everywhere.
[1308] - 12 VIDEOS of the early prototype.
[1337] - Early glottal source.
[1356] - Another early glottal source.
[1370] - Pitch correction.
[1372] - LED display updated with VIDEO.
[1373] - Internal pitch numbers.
[1379] - SPI EEPROM upgrade.
[1382] - A super efficient binary to BCD algorithm.
[1391] - Early pitch correction.
[1393] - First cut at volume processing.
[1396] - Volume side velocity VIDEOS.
[1403] - Better velocity detection.
[1425] - Final pitch correction.
[1428] - Clara Rockmore isolated Theremin sounds.
[1437] - Open back speaker baffle simulator.
[1438] - Axis modulation.
[1443] - Volume axis knee.
[1448] - Presets & Menus so far with VIDEO.

Year 6: Focus on synthesis, prototype documentation.
[1479] - Encoder debounce required.
[1481] - Final axis processing.
[1494] - Final reduced aliasing oscillator, patent US4249447.
[1512] - Final (?) axis modulation.
[1534] - Volume axis velocity processing.
[1538] - Hive gets single cycle limit / saturation logic!
[1558] - Thoughts on pitch sensitivity and playing technique.
[1564] - Noise generation how-to.
[1573] - Non-harmonic resonator.
[1575] - All-pass filters / resonators.
[1584] - More on all-pass resonators, violin & cello synthesis.
[1586] - Non-harmonic resonator implementation.
[1598] - PROTOTYPE: Parts List.
[1602] - PROTOTYPE: Tools List.
[1605] - PROTOTYPE: Pitch & Volume Antennas, AFE Board Schematic with PIX.
[1610] - PROTOTYPE: LED tuner with PIX.
[1613] - PROTOTYPE: SPI EEPROM, TOSLINK TX with PIX.
[1615] - PROTOTYPE: Rotary Encoders.
[1616] - PROTOTYPE: FPGA & LCD.
[1621] - PROTOTYPE: Fashion Shots (PIX).
[1625] - PROTOTYPE: Operating Frequencies.
[1634] - PROTOTYPE: Rotary Encoder hookup.
[1635] - LC Tank Q Limitations.
[1641] - Noise generation fixed.
[1642] - Axis processing update.
[1652] - D-Lev gets it's name.
[1662] - Parameter type system overhaul.
[1674] - Early pitch correction with VIDEO.
[1676] - Encoder debouncing RC.
[1678] - LED Tuner and the rational behind it with VIDEO.
[1683] - More volume side tinkering.
[1706] - FPGA pump instructions.
[1709] - EEPROM pump instructions.
[1712] - Roger describes the VoiceLive pitch correction in depth with PIX.
[1716] - Pitch correction implemented more like the VoiceLive.
[1717] - An explanation of the volume knee.
[1721] - Removal of all CIC filtering, replacement with conventional low-pass and notch filters.
[1730] - Loudness compensation series of posts.
[1734] - LED Tuner serialized.
[1747] - The ill-fated AFE2 (don't do this!).
[1754] - Axis tracking low-pass filter.
[1756] - Pitch antenna homologation.
[1760] - AFE3.
[1762] - DPLL pseudo-random noise dither replaced with 48kHz triangle wave dither.
[1763] - Spreading the LED Tuner spectra.
[1764] - Study of axis operating point vs. grounding.
[1773] - Prototype dimensions.
[1777] - More envelope generator tinkering.
[1778] - Oscillator refinements.
[1783] - Triple oscillator.
[1784] - D-Lev tour initial sketch (horizontal).
[1787] - Pitch & volume axis mod, acal, preset storing.

Year 7: Refinements, presets, cabinetry.
[1789] - 1st order bass & treble controls.
[1790] - Grey noise filter.
[1791] - 2nd order bass & treble controls.
[1807] - More axis modulation.
[1808] - D-Lev tour mock-ups with PIX.
[1811] - Continuum type initial pitch correction implemented.
[1812] - Axis decimation inventory.
[1815] - Inharmonic resonator overhaul to produce pseudo-stereo.
[1822] - Secondary SPDIF added.
[1831] - Moved oscillator and filter ranges from [C0:C8] to [A0:A8].
[1832] - Inharmonic resonator modes update.
[1835] - Building a better volume control: offset EXP2 replaces most power-type knob scaling.
[1836] - Inharmonic resonator improvements.
[1838] - First and second order filter compensation for [A0:A8].
[1840] - D-Lev tour sketch (vertical).
[1857] - Noise PWM.
[1914] - Librarian taking shape.
[1928] - Ergonomic explorations.
[1932] - Antenna geometries.
[1941] - My playlist.
[1944] - More librarian progress.
[1948] - Keyboard (aside).
[1960] - 4th order filtering.
[1968] - Debouncing.
[1974] - Contrast filters.
[1989] - Linearity discussion.
[1992] - Preset space.
[2000] - "Transformers" enclosure concept.
[2010] - Heterodyning musings.
[2020] - Axis filtering.
[2021] - More axis filtering.
[2033] - The value of a real-time tuner.
[2036] - Heterodyning period measurement.
[2039] - Enclosure ideas.
[2040] - Scope "heterodyning" experiment.
[2046] - ACAL.
[2050] - Linearity knob tests & data.
[2053] - 1,000,000 views!
[2062] - D-Lev web site established.
[2078] - 3D printing advice from Roger.
[2083] - P2 : My second prototype.
[2089] - PVmod changes.
[2093] - Pitch correction.
[2106] - Hammond organ synthesis.
[2112] - Triple oscillator FM (PM).

Year 8: 3D printing, patch creation, pitch correction.
[2115] - Oscillator knob scaling.
[2119] - Triple oscillator changes.
[2120] - Noise PWM discussion.
[2130] - Gerd's amazing TW archiver.
[2167] - 3D printed knobs.
[2246] - Cello patch.
[2251] - Violin patch.
[2254] - Viola patch.
[2259] - Flute patch.
[2275] - Another cabinet idea.
[2283] - Advice to the Theremin designer.
[2300] - Integrated plates & coils.
[2307] - Live editing via the librarian.
[2356] - More resonator work.
[2394] - "Meowing" root cause.
[2413] - P3 : My third prototype.
[2436] - Q.
[2437] - HV probe (DIY).
[2445] - Knob based on a wire nut.
[2446] - Big bell patch.
[2447] - Musical saw patch.
[2458] - Potential P4 musings.
[2462] - Velocity detection.
[2468] - Encoder conditioning.
[2470] - Curve math.
[2472] - Pitch correction breakthrough.
[2477] - LCD backlight dimmer.
[2496] - RC hand model.
[2515] - Vincent assists with MIDI design.
[2530] - 25LC1024 undocumented details.

Year 9: Clarabox kit, videos.
[2542] - Learning KiCAD.
[2548] - Drop knob.
[2565] - Clara presets.
[2576] - Kit offering.
[2582] - Coil & AFE 3D printed box.
[2597] - Tiny tuner.
[2610] - User manual start.
[2616] - Patsy patch.
[2631] - First kit PWB build.
[2636] - Coils in the kit.
[2645] - Bollamin build.
[2665] - DPLL sim in LTSpice.
[2679] - Hum / tracking filter overhaul.
[2692] - Sculpture mode.
[2698] - Plates vs. Rods.
[2714] - Logo plate.
[2715] - Field setup.
[2729] - D-Lev World Industries factory tour.
[2747] - Crappy Bourns encoders.
[2762] - 2,000,000 views!
[2768] - Drop knob.
[2770] - Tenor patch based on Patsy.
[2774] - Organ patch.
[2780] - tVox samples & patches.
[2802] - Good encoders vs. Bourns.
[2809] - Encoder multiplexing.
[2814] - Encoder analog filtering.
[2818] - Kit offering #2.
[2829] - Analog style non-linearity.
[2844] - Octave bank knob.
[2849] - Absorptive all-pass reverberator.

Year 10: Clarabox kit enhancements.
[2862] - I/O keystone plate.
[2865] - Grid antenna testing.



Original First Post To This Thread:

Is anyone here interested in my FPGA based Theremin design?

I've been beavering away on this project for more than three months and it's finally bearing solid fruit.  It's an extension of various projects and investigations I've worked on in the past: capacitance sensing, digital phase locked loops, averaging to trade response time for reduced noise and increased precision, etc.

The Analog Front End (AFE) is simple enough that anyone with basic electronic skills could build it.  In fact mine is currently on a small plastic breadboard mounted in an alumimum project box.  The LC resonance point is around 700kHz with drive and quadrature maintained by the FPGA.  Antenna construction incorporates the "linearizing" coil within, and is quite a bit better IMO than the various "plumbing" solutions on professinal Theremin products.  As for the digital circuitry in the FPGA:  The pitch section is working almost as well as I could hope - it is smooth, responsive, reasonably stable, and surprisingly linear without correction (except for right at the antenna where it becomes a bit crampt - still thinking about this but it's less urgent than I initially thought it would be).  It "sees me" out to more than a meter, and I'm getting around 10 octaves out of it with 8 of them fairly linear.  I also have the LED "tuner" section up and running (though without the full complement of LEDs) - quite fun to see it work, it's also quite responsive, and after using it for an hour or so it strikes me as an essential element for the Theremin.

The FPGA demo board I'm using is an old Xilinx Spartan 3 model and I think this is where most will run into trouble.  I'll need to segue over to board with more availability if this project gets to the commercial stage.  I've been avoiding hardware multipliers in hopes of targeting something small and inexpensive like the Lattice MachXO for which inexpensive demo boards exist.

There is of course quite a bit more work to be done:
- Timbres other than the current simple square wave output.
- Left hand control over volume and perhaps one or more other parameters.
- Ergonomics and user interface.
- Prototype on stand with built-in amp(s) and speaker(s).

Famous last words as you never know when a design will blow up in your face, but with the AFE, pitch, and LED tuner sections operating on my bench I feel I'm over the major hump of this feasibility study.

Posted: 5/12/2012 8:32:15 PM
Thierry

From: Colmar, France

Joined: 12/31/2007

I think that I will rather not jump in. Words like digital, FPGA, etc., are rather contradictory when it comes to my imagination of theremin technology. But that is my personal thing.

A pitch range of 10 octaves sounds interesting — but only for engineers. Linearity is only one half of the work, tone spacing is the other half, at least for the precision player. Consider an octave spacing of 4" as the minimum and you will end up with a 40" wide pitch field. I'm not sure if you will find a player who can handle that with ease. When it comes to play higher tones, the player will have to move his body at least partly into the field and then good bye linearity...

You should consider cooperating with one ore more professional theremin players of all techniques and styles and meet them often with your prototypes during theremin workshops and conventions. Only after the majority of them approved your circuit, you could present it to the grand public in order to prevent deception on both sides, yours and your future clients'.

Posted: 5/12/2012 9:11:41 PM
dewster

From: Northern NJ, USA

Joined: 2/17/2012

"I think that I will rather not jump in. Words like digital, FPGA, etc., are rather contradictory when it comes to my imagination of theremin technology. But that is my personal thing."

It's just applied DSP techniques.  Rather than heterodyning two oscillators, the operational point of the DPLL (a number) is subtracted from a fixed number close to it, producing the difference numerically and with a single oscillator.  The NCO in the DPLL is phase dithered to make it behave like a continuous oscillator, even though it is clocked by a 50MHz crystal oscillator.  Works like a champ.

"A pitch range of 10 octaves sounds interesting — but only for engineers. Linearity is only one half of the work, tone spacing is the other half, at least for the precision player. Consider an octave spacing of 4" as the minimum and you will end up with a 40" wide pitch field. I'm not sure if you will find a player who can handle that with ease. When it comes to play higher tones, the player will have to move his body at least partly into the field and then good bye linearity..."

I agree that linearity is a slippery subject, and that the position of one's body has a large effect on it.  My circuit provides an approximate octave pitch change between an open hand pointed at the center of the antenna and a closed fist. I have to move my body back some to get similar octave spacing farther out.  The pitches within the octaves are continuous and evenly spaced (I can see this with the tuner).  Indeed, there is no reason for them to be oddly spaced as I am not currently applying any correction to the pitch in the digital section. [EDIT] Oh, I see you are talking about tone spacing in terms of how wide the octaves per hand movement are.  No provision for changing that yet, though the zero calibration can be performed closer or farther from the antenna, but this profoundly affects linearity (as it does on a conventional analog Theremin).

"You should consider cooperating with one ore more professional theremin players of all techniques and styles and meet them often with your prototypes during theremin workshops and conventions. Only after the majority of them approved your circuit, you could present it to the grand public in order to prevent deception on both sides, yours and your future clients'."

Yes I have been considering this, but for now am relying on my own musical instincts.

Posted: 5/12/2012 9:58:30 PM
dewster

From: Northern NJ, USA

Joined: 2/17/2012

On the tuner I can see (and of course I can also hear) around 10 octaves, but only about 8 or so are "linear" and a couple of these are in the subsonic region.

I'm curious: do most Thereminist here consider open hand / close fist octaves too tightly spaced?

For the left hand I'm thinking up/down for volume, and in/out (closer/farther from the player's body) for timbre of some sort.  For that I'd need a double sensor for the left hand and capacitance mixing antennas.  And I know I shouldn't, but I still want to have the left hand physically anchored somehow, it would make the playing of the pitch side so much easier and more intuitive.

Christopher, I agree that voice selection is critical, am aiming for something like human, at least at first.  I must say that your enthusiasm is infectious and your insights most inspiring - why are you winding your building efforts down?

Posted: 5/13/2012 7:13:55 PM
dewster

From: Northern NJ, USA

Joined: 2/17/2012

I posted a quick YouTube video showing the basic linearity:

http://www.youtube.com/watch?v=orvBeJnIxCI

Comments here and/or there are welcome!

Posted: 5/13/2012 7:31:28 PM
FredM

From: Eastleigh, Hampshire, U.K. ................................... Fred Mundell. ................................... Electronics Engineer. (Primarily Analogue) .. CV Synths 1974-1980 .. Theremin developer 2007 to present .. soon to be Developing / Trading as WaveCrafter.com . ...................................

Joined: 12/7/2007

I am replying to your post from your YAEWSBM thread - this seems like a more appropriate place..

You say: "The waveform could be changed on a per-sampling clock period or even faster (the beauty of doing this in logic rather than software)."

Yes, doing this in software would be a problem... However, I do not really understand how doing this is possible, even with logic..

Discussing the issue of quantizing, you stated (on the YAEWSBM thread) Any resolution is possible if the low pass filter can be set low enough, but response time suffers if it is set too low, so there is a tradeoff” And from this, it would seem impossible to update the audio waveform on a “per-sampling clock period” – It seems to me that any latency inherent in computing / filtering the input capacitance value must be the minimum possible update time.

The above probably doesn’t matter one iota if the (reading) update rate (or filter TC) is not too long, and if this latency is constant – a couple (IMO, up to a maximum of 10ms) of ms latency IF this latency is constant – and if one then updates the audio wave-shape at a frequency >> 20kHz you should, I think, be able to emulate a mixed signal theremin adequately.

If you get the sensing accurate enough and fast enough, you should theoretically be able to emulate any theremin and create theremins which have not existed before – You have a numeric value which you can do whatever you want with – control digital oscillators and filters, cause the harmonic content to vary with pitch in a way which can emulate oscillator syncing – whatever you want…

One day, someone will achieve this – I wish you all the best!

If I was investing time / money into a FPGA /CPLD / DSP based theremin, I think I would be looking at producing a unit which concentrated on rapid acquisition of position, and which, from this, computed the log of the acquired data to give an adjustable linearity correction and output this as a 1V/octave CV..

It is easy to make any theremin voltage controlled! (yes – it is! ;-) and it is easy to set registers, change the range (number of octaves spanned)

I am not trying to persuade you to change direction (Don’t! I have been switching direction continuously in my theremin developments, and this is probably the main reason Im broke!) – But, if while playing with your FPGA you see an easy way to provide a linearized CV, let me know!  I believe the future is a hybrid : Front-end which deals with the linearity and stability issues and allows control of range etc, and this to be followed by conventional (or unconventional) heterodyning analogue / mixed signal theremin which is ‘liberated’ from the constraints imposed by the antenna and its circuitry.

Fred.

Posted: 5/13/2012 8:10:59 PM
dewster

From: Northern NJ, USA

Joined: 2/17/2012

Thank you for your thoughtful comments Fred, and thank you also for addressing them here where it is more germane.

"If I was investing time / money into a FPGA /CPLD / DSP based theremin, I think I would be looking at producing a unit which concentrated on rapid acquisition of position, and which, from this, computed the log of the acquired data to give an adjustable linearity correction and output this as a 1V/octave CV.."

I agree entirely with the rapid acquisition part.  This is why I spent about a month doing math and spreadsheet sims, to see if I could acquire a number with enough precision quickly enough. My current prototype uses a single pole low pass digital filter and is right on the edge in terms of resolution and response time.  I will probably try a higher order filter soon to see if that improves things.  One could also do adaptive or tracking filtering here, as lower frequencies don't need to change as quickly, and you could get some added precision in this region where the SNR is tanking.

The current operating point is roughly exponential with hand distance (see video above) so I'm using this directly for pitch.  It would be nice to be able to offset this and fine tune the linearity and such, but for now I'm pretty happy with it.

The "tuner" has a module that converts the current operating point to the log2 of that number (using the al Kashi method) after which it is multiplied by 12 or 24 to get the individual note LEDs (with pulse width modulation for the decimal portion).  One could tap into this for other purposes I suppose, but the the natural dithering from the noise and jitter would become non-linear and therefore less useful downstream.

"I believe the future is a hybrid : Front-end which deals with the linearity and stability issues and allows control of range etc..."

The AFE seems pretty darn stable to me, certainly more stable than my EWS, though that is a subjective statement.  It is a quadrature locked DPLL and so is only a single oscillator, not two drifting apart or together.  When I was researching LC oscillators I came to the conclusion that a single transistor was just too simple to demand very much of, the resonance point could possibly be more a matter of gain than of phase.  So I abandoned that route.

Posted: 5/13/2012 8:30:10 PM
dewster

From: Northern NJ, USA

Joined: 2/17/2012

"Glad you mentioned the video, I  missed it. Why did you not do the popping the fist open to demonstrate octaves and linearity throughout the field."

Next time perhaps when I have something new to show and tell.  I wanted to get something out today and didn't think it entirely through I suppose.

Posted: 5/13/2012 8:31:38 PM
FredM

From: Eastleigh, Hampshire, U.K. ................................... Fred Mundell. ................................... Electronics Engineer. (Primarily Analogue) .. CV Synths 1974-1980 .. Theremin developer 2007 to present .. soon to be Developing / Trading as WaveCrafter.com . ...................................

Joined: 12/7/2007

Hi Christopher,

Linear voltage control has some huge advantages.. let me explain:

Every increase of 1V causes the 'slave' devices to increase their frequency by one octave (I will use the term 'slave' for any 1V/octave voltage controlled 'module' - these are mainly oscillators and filters - VCO's and VCF's - but it is possible to adapt any theremin pitch circuit to accept a 1V/Octave CV, giving one voltage control without losing anything from the theremin)

Each module can have any voltage added (or subtracted) so can be independently tuned - their respective frequencies will be the exponential of the sum of all their CV inputs.. If you have 2 oscillators, both being driven from the same CV, and you add 1V to one of these, the oscillators will track the CV and maintain their pitch seperation at 1 octave, regardless of their pitch.

Ok - to theremins... If one has a "front end" (antenna and circuitry) which provides a voltage which linearly tracks the players hand position (capacitance) from the antenna, and one produces from this a voltage of 10V when the hand is closest to the antenna, and 0V when the hand is (say) 1m from the antenna, and the voltage is linear (decreases by 1V for every 10cm from the antenna) one has what I am seeking - and here's   why:

You have 10V over your playing area - feed this to a VCO and you have 10 octaves... Devide this 10V (simple potential divider) by half, and you have 5 octaves over your playing area - You can divide by whatever quantity you want, cover however many octaves you want, and linearity is maintained.

Now, we want 3 octaves, and we dont want to go below E1 (low string bass - 41 Hz) We set the divider for a span of 3 octaves (output voltage is 3V close to the antenna, and 0V at 1m) and we add a voltage to this which raises this voltage so that 3 octaves are covered, starting at E1 (at 1m) and extending to E4 closest to the antenna.

And thats it, really - With such a system, one could adjust "to taste" - Even reducing the field length would be easy - one only wants to play from the antenna to 0.5m? simply clamp the output voltage when it gets to 5V, add whatever offset one wants, and away you go...

One thing I should mention - For any adapted theremin, issues such as its linearity are no longer relevant - the pitch of such a modified theremin will be absolutely determined by the CV - the EQ coil would be removed, and pitch control passed to an electronically variable capacitance controlled in a closed loop... But I am not going to divulge all right now (I may yet get back up and relaunch my business)  - The principle can be derived from some prior posting of mine related to pitch-CV.

Fred.

Posted: 5/13/2012 8:38:49 PM
dewster

From: Northern NJ, USA

Joined: 2/17/2012

While linearized analog outputs might provide for some interesting interfacing to analog synth modules, I think I'd prefer to keep the values digital and confined to the Theremin.  Theremins seem shaky enough on their own.  MIDI is also possible, though I kind of loath it for various reasons I shan't go into.  I feel instruments should be as self contained as possible.

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