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

Posted: 7/22/2022 9:48:27 PM
dewster

From: Northern NJ, USA

Joined: 2/17/2012

Thread Count

OT (sorta) - Been farting around designing a 3D printed ballpoint pen in OpenSCAD, which has turned out pretty OK.  In the process I honed some techniques, and it caused me revisit my thread implementation.  The second print I did had messed up threads due to too fast printing, but the iso standard of 30 degree walls isn't super ideal for printing.  45 degrees works better as it is less horizontal (therefore needing less support below) and accommodates wider, coarser thread pitches.  My thread file only needed a few edits to make the wall angle a variable, and to parameterize the clearance.  It turns out that the optimal wall to wall clearance for rough prints (0.4mm nozzle and 0.25 z stepping) is around 0.25mm.  Threads are really fun to design and print!

Posted: 7/23/2022 4:16:03 AM
bendra

From: Portland, Oregon

Joined: 2/22/2018

"Have you thought about the possibility of having a simple web server (maybe using node.js or the like) to make api calls to the theremin and build the UI with HTML/JavaScript? It would be very portable that way."  - bendraThanks!  This is uncharted territory for me.  node.js seems to require the V8 JIT compiler - is that assumed to be installed on every platform?

Yeah, that's the rub with any interpreted language. There are a few projects to allow distribution of an app w/ the interpreter (e.g. https://github.com/nexe/nexe, there are others). 

Posted: 7/24/2022 1:03:39 PM
dewster

From: Northern NJ, USA

Joined: 2/17/2012

"Yeah, that's the rub with any interpreted language. There are a few projects to allow distribution of an app w/ the interpreter (e.g. https://github.com/nexe/nexe, there are others)."  - bendra

It's ironic because these are the sorts of problems interpreted languages are supposed to solve, but targeting an interpreter or virtual machine just seems to kick the can down the road.  Interpreting tends to be slow, so Python (and others IIRC) let you write custom code in C/C++, but then suddenly all the cross platform stuff - cross compilation in particular - becomes infinitely more complex.  I can't find the link, but someone high up in the Python chain had their hair on fire over it at some conference or other a few years ago, saying it was a make or break thing that sorely needed addressing.

It's tragic having so many different processors and operating systems doing pretty much the same things in so many fundamentally different ways.  Apple's virtual machine restrictions are particularly annoying.  The world would be a different place had *nix made it to the desktop earlier (crying over spilled milk).

In Linux Mint I use a lot of *.appimage distributions, and they're pretty fantastic for being dead simple to download and use (no real installation, just one executable file).

Posted: 7/24/2022 6:43:53 PM
dewster

From: Northern NJ, USA

Joined: 2/17/2012

Merch!

One of the kit owners requested a D-Lev t-shirt, so I worked on the logo and stuck it on a zazzle offering. I think you can order it (or whatever variations you want to make to it) via this link: https://www.zazzle.com/z/nxl2ro4o

I use customink every year and they do an OK job too.  Anyway, this and other logo artwork are now in a zip file on the D-Lev website support page for all your D-Lev merch needs.  Thanks again to Roger Hess for spearheading the logo initiative!

Posted: 7/24/2022 10:17:14 PM
dewster

From: Northern NJ, USA

Joined: 2/17/2012

Ave Trixie

Thought I'd re-try my hand at something I recorded just over 4 years ago (time flies like a banana):

Now: https://d-lev.com/audio/2022-07-24_ave_trixie.mp3
Then: https://d-lev.com/audio/2018-06-29_ave_maria.mp3

I remember struggling with it at the time, and being grateful for the placement of the rubato in the trickier passages.

Posted: 7/25/2022 6:20:54 PM
JPascal

From: Berlin Germany

Joined: 4/27/2016

For me the old timbre seems to be better, the newer shows your progress in playing this not easy piece. 

Posted: 7/25/2022 8:39:43 PM
dewster

From: Northern NJ, USA

Joined: 2/17/2012

"For me the old timbre seems to be better, the newer shows your progress in playing this not easy piece."  - JPascal

Thanks!  That's one of my earliest female presets, where the formants are fixed, and IIRC I still have the preset file.  Creating presets during the development of the synth is totally the way to go as it hugely benefits both.  And you're not faced with making 100 presets or something right at the end, which is a ton of work if you are doing it any justice.

Roger's patsy preset articulates the formants, and adds a pitch and volume hand modulated 2nd order bandpass filter to the oscillator.  I think the articulated filtering really adds to the realism, but it can be a little wah-wah sounding with the volume hand if overdone.  Here's some intentional wah-wah cranked up to form vowels: https://d-lev.com/audio/2022-07-03_wow.mp3

Posted: 7/25/2022 9:06:48 PM
dewster

From: Northern NJ, USA

Joined: 2/17/2012

Miniterm

Python has a really nifty minimal terminal application that I believe is part of the pyserial distribution.  Every language should have a working example like this as it addresses single key input and serial port access.  I take this as a (good) sign that Python is aimed at more practical applications than most. 

I'm probably going to use parts of it as a new command line librarian.  I think I want one script to do everything, with command line switches rather than something more interactive like the current librarian.  Take out the remote control and highlighting stuff, concentrate on software updates, saving and restoring presets, and showing what's currently in the slots.  Use the native command line history and autocomplete of the command window itself to reduce keystrokes.

Python isn't for everyone, but it probably beats installing a virtual Win machine on OSX.  Maybe someday they'll solve cross-compilation.

Posted: 8/27/2022 2:45:54 PM
dewster

From: Northern NJ, USA

Joined: 2/17/2012

No Faith

Sometimes reading programmer's comments over on Hacker News makes me lose all faith in software as a branch of engineering.  They can take a simple truth - central to their own profession! - and heatedly debate it as if it were some sort of open question, or (worse) dismiss it as arbitrary. 

The subject of endianness has been dealt with in this manner (the term itself was coined to be dismissive!) but little-endian is clearly favored by hardware constructs like dual-port variable data width memories.  I know of no distinct advantages to big-endian hardware.

Now they're debating array indexing, where 0 is the only legitimate starting value, both from a hardware (number of bits required to hold a value) and mathematical (modulo operation) perspectives.  One look at this table and one can instantly spot languages that are either archaic (before we knew better?) or based on poor reasoning.

Engineering is applied science, and it's all about minimizing stupid mistakes, particularly at the fundamental levels, where they'll haunt you and everyone who comes after you forever.  Big-endian and 1 array indexing are clearly stupid mistakes, and I think it takes a certain amount of practical experience to understand that, which is kinda scary.

Posted: 8/28/2022 1:46:16 AM
dewster

From: Northern NJ, USA

Joined: 2/17/2012

Active Tuner Demo

A video on using the LED tuner actively during play. I wanted folks to "see what I see" when playing a bunch of songs in the key of C on the D-Lev.

My head is right next to the webcam throughout so you can hear me breathing weirdly during parts (I was unaware that I was doing this until my wife told me - not unexpected I guess, as the brain co-opts similar functional areas to do similar things).

Lots'a edits as I'm not the best player, and totally out of practice due to the extended vacation whereupon I was Theremin-less:  https://www.youtube.com/watch?v=k7COrqha9zk


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