Miscellaneous applications

Theremino 3D

What is this? The Theremino System already knew little, with the Theremino3D we are just fine. Is not a 3D object editor, you don't need to make games, the playstation is better… but then it's no use, SPQT!

Calm, Theremino3D is an educational application, a basis to deal with 3D, gravity and physics of solids. Theremino the system doesn't want to produce or sell, but is content to show “How do you”.

And, for pleasure, don't start to say that there are games that have better graphics, We know, but there is a difference, You can open and edit them. The Theremino3D is Open Source and DIY, his code is free and you can do whatever you want.

Theremino3D is a collection of 3D techniques, simplified to the point of being “almost” usable. The best algorithms available to the “Diy”. The application is divided into one hundred “scene” and there are many scenes leave specially empty for experiments. Use 3D objects is not easy at all, but the Theremino3D might be, for some, the easiest way to get started.

The physical parameters of objects, gravity, interactions between solid bodies (Rigid Bodies) and fabrics (Soft Bodies) are simulated very well from Bullet (Open source engine that handles collisions). The shadows (very realistic) are calculated with unpublished algorithms, designed by us. The 3D is run under DirectX. Efficiency is “monstrous”, with hundreds of objects in collision and 3D sounds attached to objects, CPU consumption is practically zero (on machines that have a good video card)

Of course, Theremino3D can communicate with other applications on the system, through the slots. It then becomes possible to every “Fey” interaction, How to move 3D objects with MIDI commands, or with bananas, like in this video: www.youtube.com/watch?v = 5aYvvhURFaU

This is the control window, to open it, press F1. All other commands are well explained in the box “Commands” This prompt.

Remember to press F to see better, try the arrow keys and mouse buttons, also in conjunction with CTRL and SHIFT. Attract and repel the mouse wheel. The left mouse button “takes” the objects to move them and, with CTRL and SHIFT, moves back and forth. The space bar is used to change modes of movement. The keys to 0 to 9 and by CTRL-0 CTRL-9, to change the scene. To make friends with the Theremino3D, point your cursor over something and hit the right mouse button.

– – – – – –

Libraries needed
In the event that the application doesn't work, install DirectX, as indicated in the installation notes. From version 1.4 on the DirectX installation should no longer be needed, on any operating system.

Downloads of Theremino 3D – Version 1.5
Theremino_3D_V 1.5

Theremino_3D_V 1.5 _WithSources (version for programmers)
Version for all Windows in 32 and 64 bit. For Raspberry Pi, Linux, Android and OSX, read the installation notes.

Antenna Optimizer

This application is a numerical Simulator of electromagnetic fields. It mainly uses to optimize antenna. Provisionally we publish the application “AntSym”, ancestor of “Theremino_AntennaOptimizer”, We will publish by spring 2017.

Both AntennaOptimizer that AntSym are compatible with the file format “.NEC” used by 4Nec2 (well known application written by our friend Swedish Arie Voors). So in the internet you will find many examples and it is possible to Exchange files. If you prefer you can also edit the appropriate editor for files of antennas. In the folder NecFiles are already available over 1200 examples of antennas (some well made, other absurd or incomplete, but all useful and interesting).

Antenna simulator - old 2002 version

AntSym - old 2002 version AntSym - old 2002 version

Simple instructions

Not all files can be used to perform optimizations. For the optimization process the files should be structured properly, with SY defining the editable parameters.

To edit the files you press “Edit input file” and edit your text with the default editor on your system (typically Notepad or Notepad ++) . Figuring out how to edit the files you browse the sample files.

The files are then processed in NEC's input format. You can see how they are transformed by pressing the button “View In”. The Protocol accepted by NEC is in the file “NEC User's Guide“.

Finally the engine output files and you can produce an NEC explore it by pressing the button “View out”

The optimization process depends on the parameters:

  • Weight (merit) – This is the score that is given to the antenna and optimization algorithms seek to improve. The score is calculated based on the “weight”, who are the “weights”, that is, the relative importance you from the characteristics of the antenna. The “weight” are explained one by one in the next paragraph.
  • Range – Adjusts the amount of change that is made to any attempt of optimization.
  • Precision – The number of significant digits to be used in the parameters of the antenna,

The optimization process depends on the weights (weight) that you set by pressing “Weight” and adjusting the sliders to promote certain characteristics rather than other:

  • SWR – This is the standing wave ratio, the optimal value would “1”, but normally we consider acceptable values up to 1.5 and, in some cases, If you have an antenna tuner, even higher values.
  • Gain – The gain of the antenna. Usually it should be as high as possible.
  • F/B – Relationship between the gain in forward and lateral. Usually it should be as high as possible.
  • F/R – Relationship between the gain in back and forth. Usually it should be as high as possible.
  • Beam – Beam width for a gain of – 3DB below maximum.
  • Xsize – Length of antenna in mm. It is usually better to have small antennas.
  • Ysize – Width of antenna in mm. It is usually better to have small antennas.
  • Zsize – Height of the antenna in mm. It is usually better to have small antennas.

There are three different optimization algorithms:

  • Climb – Each selected item is changed slightly and the process is repeated several times until the local maximum was found. One can imagine the local maximum like the tip of a hill in a complex consisting of several valleys and hills. The method detects only the tip nearest Hill Climb but is unable to overcome the valleys and locate distant hills that may be higher.
  • The changed – Each selected element is modified with random mutations. This method can, in some cases, splurge on a territory broader than just Climb.
  • Genetic – In addition to random mutations using a population of many individuals and each generation only the best breed (using a random half pairs of parameters they). This method is similar to that of natural selection and in some cases is considerably faster than the previous two methods.

key: “Reset” reset the red and green lines that show the aggravations and improvements when tuning.

The button “Weight” view the sliders that you regulate the weights and then instructs the optimizer which characteristics must favour.

The buttons with numbers (100 10 1 0.1 – 0.1 1 10 100) change the selected parameter. With these buttons you can change the characteristics of the antenna to drive the optimization or manually part of optimization.

Similar applications

There are similar applications, for example, the ’ great 4Nec2 written by our friend Swedish Arie Voors. About in 2000 We started together to write these applications and we exchanged a lot of code, us we taught him how to use 3D and he taught us many aspects of NEC. Then we took two different directions. Ariel wrote a very complete application, investigating every aspect of antennas including, for example,, even the “Near field”. Instead, we are dedicated to maximizing and comparing the calculation engine NEC2 and various simplified versions in C++ and VB with name “Mininec”.

You can compare different calculation engines can increase the reliability. If two different engines give similar results then the antenna is not critical and the simulation is well set. All versions of Mininec are functionally identical, but some are considerably faster than NEC2, which is basically the original version written in Fortran on punch cards.

There are other more complex applications, commercial and closed source, but especially heavy to install and difficult to use. Are applications that require a long initial learning time, so we recommend to use them only if you are industry specialists.

The NEC2 originally written in Fortran

Punched Card

The generous Open Source publications Jerry Burke and A. Knoll, who wrote the original versions of NEC (Numerical Electromagnetic Code) at the “Lawrence Livermore Labs”, in 1981, they started all this. They deserve a big thank you and even admiration. The algorithms that have written with the limited means of then (and it was not easy) are still valid after nearly forty years ’.



Soon (Spring 2017) pubblichereMo the Theremino_AntennaOptimizer application, complete with instructions and thereminico style. For now (only for the impatient and experienced programmers), We publish the original version of AntSym with a few small tweaks. This version is essentially the same as it was in 2002, including the ’ error in the title (Simulator instead of Simulator), nothing wild and naïve statements and programming style.

Note pER versions
Version 2.0: Fixed some bugs but the UI is always that of the 2002.
Version 2.1: Fixed a bug that caused the loss of some areas of 3D using NEC2 on very complex antennas – The user interface is always that of the 2002.

AntSym downloads – Version 2.1 – Ancient written version in 2002 in VB6
AntSym_VB6_V 2.1 (just to look forward, There are no instructions and the UI is wild)
To run this version you must register the DLL by pressing the right mouse button on the file “CopyAndRegisterDLL(run as admin).exe” located in the folder “Registerdll” and then choosing “Run as administrator”.

Led Calculator

This application is a wildcard for the measures on LEDs, facilitates conversions between units and helps design lighting systems and led array with maximum efficiency. The help file “Measuring devices” Describes a simple measuring instrument available in few minutes, with three components that cost a total of less than 9 Euro.

Notes for versions
Version 2.2: Corrected errors in reading files that some values were changed or lost decimals. Even the names of the files were not restored and saved correctly. Now the instructions are in English.
Version 2.3: Improved colors and the gradient menu to Windows7 and Windows10.

LedCalc downloads – Version 2.3
2.3 LedCalc_V

LedCalc_V 2.3 _WithSources (complete design for programmers)
Version for all Windows in 32 and 64 bit. For Raspberry Pi, Linux, Android and OSX, read the installation notes.

Original documentation for Auditors of translations

Laboratory audio Analyzer

This is a measuring instrument and testing for audio equipment, It also includes a signal generator and a Spectrum Analyzer. In the audio range and up to 50 KHz is better than any oscilloscope. The software was written entirely in C++, In addition 15 years ago, at the time of Windows95 and Windows98. Although it is limited only to alternating current measurements, We used it often as an oscilloscope, in the development of the system Theremino. For measurements on speakers is unbeatable and has been used for a long time, is to equalize the big sound systems of discos and concerts, When I was working as a sound engineer in recording.

Signal generator, measurement cursors and spectrum analysis with over 110 dynamic DB.

Analysis of systems with Pulse signals, Sweep and FastSweep and 3D spectrum analysis.

– – – – – –

Retrieve DC offset voltage

PC sound cards have a bandwidth from 10 Hz up. To see also the continuous external USB sound card could be used with the input circuit changed. In general you should delete the capacitors in series (cortocircuitarli with a drop of Tin) and remove the resistor designed for powering electret microphones.

We made these changes successfully, on small USB sound cards.

In this model you get the passband up to continuous, shorting C11 and eliminating R13. This tab is pretty cheap, too bad it's not stereo.

Some sound cards (for example, those containing the chip “Via VT1630A”) also removing the DC component in the chip itself, or in the driver. With these cards, even removing the capacitors, the constant does not pass the same.

Build type Oscilloscope Probes

The input impedance of the sound cards varies depending on, from 5 to 50 Kohm about. The microphone inputs have generally a lower impedance, the highest Line-In. USB cards modified for DC voltage, they have an almost infinite impedance.

Oscilloscope Probes usually have an impedance from 1 Meg, then we'll add a resistor from 1 Meg, in series with the signal wire, and we will correct the attenuation, with the Windows mixer. The resistor should be positioned near the ferrule, IE at the end of the shielded cable. Optionally you can add a second resistor, ground to top of cable (close to the sound card). This second resistor, ago from the resistor divider 1 Mega, It further allows lowering the signal. To measure very high voltages, We will put this second 10 k or 1 k resistor. In all cases, the presence of a resistor from 1 Meg, in series with the signal, effectively protects the sound card input (that is already protected abundantly, inside the card itself).

Possible variations:
– Replace the resistor with a 100 k, to measure low level signals.
– Add a capacitor to 100 nF, in series with the resistor, in order not to influence the circuit being measured, with DC voltage, coming from the microphone input.

– – – – – –

Notes for versions
Version 2.1:
Minor improvements including better control of Delay and pulse direction DeltaTime and alignment to those shown by other software such as GoldWave and FitzPeaks.
Version 2.2: Further improvements in controls Delay and DeltaTime.
Version 2.3: Further improvements and raised sampling to 192 KHz
Version 2.4: Fixed bug with overflow with signals exceeding 2 Volt pep. Fixed FastSweep which now works fine even with the random sample 192 kHz. Added the MFC libraries that will be useful to the brave to rebuild.
Version 2.5: Improved resolution of spectral lines also with sampling in 192 kHz.

Download Theremino DAA – Version 2.5
DAA_V 2.5

2.5 DAA_V _WithSources (complete design for programmers)
For all Windows systems to 32 and 64 bit. For Raspberry Pi, Linux, Android and OSX, read the installation notes.

Documentation files

ODT format documentation files for translators
(The English version is only a machine translation, someone should open the ODT file in Open Office and give her a good revision)

MFC Libraries (you need to recompile the DAA)
Microsoft_MFC_LIBS (to recompile with Visual Studio)

Control files
In this file you will find the settings file of DAA, to measure the noise PmtAdapter.

Theremino Helper

This little app acts as a collector for the additional functions that are currently:
– Turning off your computer with the middle mouse button (If the Enable button is enabled)
– Manual shutdown of all programs (with name “Theremino_xxxx”)
– Displaying CPU usage
– Transmission of X/Y coordinates of mouse towards the slots.
– Import data from bar-code readers and sending data to the slot.

Downloads by Theremino Helper – Version 1.8
Theremino_Helper_V1.8_WithSources (complete design for programmers)

Version for all Windows in 32 and 64 bit. For Raspberry Pi, Linux, Android and OSX, read the installation notes.

WaveAnalyzer Theremino

WaveAnalyzer Theremino

This application runs the ’ spectrum analysis of periodic signals from a Slot and writes on a number of other slots to values measured at different frequencies and the calculated distortion rate.
Its main use is to analyze slow periodic signals, by the continuous (zero Hertz) up to frequencies of a few Hertz, or at most a few tens of Hertz.

These directions for ’ use and the full specifications are in this file:

WaveAnalyzer Theremino downloads – Version 0.9
Theremino_WaveAnalyzer_V 0.9
Theremino_WaveAnalyzer_V 0.9 _WithSources (complete design for programmers)

Version for all Windows in 32 and 64 bit. For Raspberry Pi, Linux, Android and OSX, read the installation notes.

Theremino WaveGenerator

Wave Generator

This generator sends the output signal to a Slot, and not to the sound card as they usually similar generators. Since the signal passes from the slots, the maximum frequency is limited to a few hundred Hz. On the other hand the minimum frequency extends up to scratch.

You can use it to prove the Pwm outputs or PwmFast and to test applications that read the signal from the slots (for example, ECG, EEG, SignalScope, AdcTester, and Waveanalyzer). Or you could use to try stepper motors, servo motors, Geophones and accelerometers.

Meaning of parameters


  • Output slot: The number of the Slot where to write the output signal.
  • Amplitude: The Slot number that is used to control the generated signal amplitude ’. If you set it to “-1” then the Slot is not used and set the width manually with box “Amplitude”.
  • Shift: The Slot number that is used to control the movement of the zero signal. If you set it to “-1” then the Slot is not used and adjusts the Shift manually with box “Shift”.
  • Frequency: The number of slots that you use to control the frequency of the signal generated. If you set it to “-1” then the Slot is not used and adjusts the frequency manually with box “Frequency”.
  • Waveform: The Slot number that is used to control the generated signal wave shape d ’. If you set it to “-1” then the Slot is not used and you choose manually the form d ’ onda with box “Waveform”.


  • Amplitude: Manual adjustment of output signal amplitude.
  • Shift: Manual adjustment of the shift of the zero of the output signal.
  • Frequency: Manual adjustment of the repetition frequency of the output signal.
  • Constant speed: Enabling this option the output hike depends on the frequency so as to achieve a constant rate. By disabling it you get a steady hike.
  • Min Freq.: You use along with Constant speed to determine the minimum frequency, which corresponds to the maximum excursion.


WaveGeneratorWavesTo choose the form of wave ’ you click on box Waveforms and then you click the drop-down menu.

  • Manual, Sinusoidal, Semi sinusoidal, Triangular, Sawtooth and Square are classic waveforms of signal generators.
  • Noise can be used for various sizes, for example in conjunction with a Spectrum Analyzer to check the bandwidth of filters
  • Ecg1 and Ecg2 they serve to simulate signals from an electrocardiograph classic (first branch).
  • Ocg1 and Ocg2 they serve to simulate signals from an electrocardiograph optical.
  • Ocg3 also contains a disturbance in 50 Hz to test the filters.
  • UserShape1 ... 5 are programmable at will waveforms.

To program the UserShape you open files from “Shape1.txt” to “Shape5.txt” with a text editor and write the number of values that make up the waveform.

The number of values is not important, can be from two to thousands. Whatever the number of values that they represent a complete cycle. You choose the number of values to get enough resolution to measures that must be carried out. If you use a few values the waveform is “appear pixelated”.

Vibrating table to try Geophones and accelerometers

An interesting use of this application is move a servomotor to vibrate a Board and try accelerometers and Geophones. You spend a few euros for the servant and a few hours of time to build it and you can adjust the amplitude and frequency of the oscillations. The frequency is very accurate because it generated by the software, not the rotation of a motor with eccentric mass.

The servant must be attached to the base and connected to a connecting rod to fork. Better to fix it with a layer of rubber to minimize noise. The connecting rod should be a little’ supple to absorb high frequency vibrations generated by the engine. Connect the connecting rod less than 10 mm from the axis of rotation of the motor, so you have more strength. One of the most suitable servo, with very small die area, is the TGY930, If you accept some performance’ minors over 10 Hz you can also use HXT900, rediculously. For information about the servant read This page.

The table should be suspended with balls or linear guides and sealing with rubber bands or rubber straps. And should be free to move about 10 mm.

The following images are prototypes built by Conrad Sheep, the first with balls and trays to hold them in place, the second with linear guides (probably available at Brico Center as drawer slides).

Theremino Shaker Table Theremino Shaker Table

Software settings:

  • In HAL you set the output as Servo16 with Min = 0 and Max = 1000.
  • Always in the HAL you set the values Time min (uS) and max time (uS) to 1000 and 2000. Wanting to decrease the motor trip there are set with two values always centered 1500 but with fewer deviations from it. For example, 1100 and 1900 or 1200 and 1800.
  • In sinusoidal Waveform is adjusted as WaveGenerator.
  • Also in WaveGenerator setting a minimum frequency 0.5 Hz. You could also set it to 0.1 Hz but you will have a smaller hike at high frequencies (10 Hz and beyond).
  • With these settings you can set Min frequency Freq. up to 10 Hz and beyond.


Use servo with dead area very small, We recommend the TGY930 because we tried it but also other more powerful servant could be fine.

The connecting rod should be very close to the PIN so you can use larger excursions without straining too much the engine.

Turn the cross hair (or the disc) on the pin of the motor so that the center of the excursion is 90 degrees from biella.

I normally use a maximum of about 80 degrees but you could take her almost 180 degrees by setting Time min (uS) and max time (uS) to 1000 and 2000. With very large excursions you may partially fix the errors caused by the geometry of the connecting rod, using the waveform “Triangular”, but the difference is minimal on move.

– – – – – –


Notes for versions
Version 1.4 and 1.5: The new textbox control themselves better with the mouse. – The new precision timer (that is in the file "Accurate Timer") makes the generated frequencies much more precise and not dependent on the operating system and CPU workload.
Version 1.6
In previous versions change frequency generates discontinuity in the waveform. Now you can change the frequency and other parameters continuously and you get a sweet variation and safely. This allows you to check the generator from outside and then Sweep-type measures.
In this version we have added the ability to control frequency, volume and waveform from the outside (through the slots).
Version 1.7
Now “Waveform” change correctly even if you use the keyboard arrows.
Version 1.8
Now “Waveform” also includes “Noise” and “Ocg3” with a disturbance in 50 Hz overlaid.

Downloads Theremino WaveGenerator – Version 1.8
Theremino_WaveGenerator_V 1.8
Theremino_WaveGenerator_V 1.8 _WithSources (complete design for programmers)

Version for all Windows in 32 and 64 bit. For Raspberry Pi, Linux, Android and OSX, read the installation notes.

Theremino Filters

Application Theremino_Filters_V 1.0

Unlike the theoretical examples found in networked publications, This application is really usable to filter the signals from sensors. So you can do experiments on real data and not only mathematical theory, which often leads to overstate some aspects and neglecting other.

For example, you can filter the signals for application Theremino OCG power frequency to remove noise and baseline rocking caused by patient movement. Instructions for setting up the slots of the apps are in the files “Filter ECG Notes” which are located in the “Overhead rate”.

Characteristics of digital filters

FIR Filter

Here we see the response curve of a FIR filter with frequency range from 0 to 498 Hz within a decibel and that from 502 Hz up reduces by at least 90 decibels. For those accustomed to the analog filters features like would have been unthinkable. A hardware implementation with these features would require pounds of material (In addition 2000 components) and in practice would not work even (would not produce the response curve calculated physical component tolerances).

Mini instructions

Theremino Filters V 1.0

  • Input slots – The Slot from which to read the input signal.
  • Output slot – The Slot to which to write the filtered signal.
  • Sample time – Sampling time. With 10 Ms sampling is 100 Hz. You must set this parameter for a sampling frequency equal to that for which it was designed the filter, otherwise the filter is translated upwards or downwards according to the ratio between two values. Since we are working on slots and through USB the maximum sampling rate is 500 Hz. So the minimum amount of time that you can set in this box is 2 mS.
  • Amplitude – Mfiltered output data oltiplica. With the value “1” the output is equal to the input.
  • Shift – Add a cost tol filtered output data. With the value “0” the output is equal to the input.
  • Correct Zero – Zero correction for high pass filters. You could probably get the same with “Shift” but this parameter makes it more evident and more comfortable zeroing.
  • Coefficients files – To the right of the word “Type” reading the filter type currently in use (FIR or IIR) and the number of coefficients or poly. Blue pane, you see the name of the filter. By clicking on the name of the filter opens a dialog that lets you choose the filters.
  • Browse – This button opens the folder that contains the filter currently in use. In the folder there are also project files with extension “ih_fir” and “ih_iir”. To open these files with the appropriate applications read the instruction file “Help ENGLISH” “Help ITALIAN” which are located in the “_ Filter_Designers”.

FIR and IIR filters

IIR filters are often recommended for their implementation simpler and less need of memory and computational power. This was true in the past but on current systems, for example Windows10, and even very powerful computers, for example, a Tablet quad core, a FIR filter, implemented with well-written algorithms, constitutes a negligible load for both the CPU and operating system.

If you know how you can implement digital filters with just a few lines of software. We have therefore prepared an educational application, #8217 efficient computational aspect yet; l & easy to read and easy to understand. L ’ 's all filter algorithm in twenty rows and the rest of the application (user interface and communication with other applications of the system Theremino) in a few pages.

The application Theremino Filter by version 1.0 onwards may use either IIR and FIR filters that accepts many different applications coefficients formats. For more information about filters read the instruction file “Help ENGLISH” “Help ITALIAN” which are located in the “_ Filter_Designers”.

Implementation of FIR filters

The next image shows the basic structure of an FIR filter.

FIR_FilterIn our implementation we shift values from one cell to the next but we do use a ring buffer and update a single pointer. In this way the workload for the CPU is significantly reduced. We can also use thousands of coefficients with less than one percent of CPU.

IIR filter implementation

Basic structure of an FIR filter in single cells of the second order.


Here you see a single cell of the second order. To compose the filters you use multiple cells as this in cascade. This method makes it possible to synthesize filters with any number of Poles. With the other methods beyond the three poles would be generated between infiniti and the filter will stop working.

Applications to generate the coefficients

With special applications can specify the desired parameters, see if the resulting curve meets the specifications and finally copy the coefficients and insert them into the filter. Some of these applications also use sampling Windows (Hamming, Hanning, Blackman etc..) that improve certain characteristics of the transfer function. You can also specify the types of filters (Band pass, Low pass, High pass or notch), the minimum attenuation in bandgaps, l ’ maximum ripple in the passband, start and end frequencies transition, and other parameters.

Theremino Filters Coefficients

The real magic is that all these features are finally “tablets” in a single list of coefficients.

This list will be longer or shorter depending on the features you want. You copy the list into the software and the filter will have a response curve “exactly” same as designed.

The coefficients should be written in simple text files in folder “Coeffs”. This will allow you to choose them by name and try quickly the behavior of each version and the differences between them.

Applications attached to Theremino Filters

Your download of Theremino Filters you will find a folder called “_ Filter_Designers” It contains two applications to design FIR and IIR filters. Inside the same folder you'll find the instruction file “Help ENGLISH” and “Help ITALIAN” explaining how to use them. Each of the two applications also has its own Help files can be opened from the menu “Help/Program help”.

The first application is called “Iowa Hills FIR Filters” and it looks like this:


The second application is called “Iowa Hills IIR Filters” and it looks like this:


Many thanks Daniel Klostermann of “Iowa Hills Software” for his fantastic work and for making it freely available to all. Visit his website where you can find excellent documentation on filters and other useful applications: http://www.iowahills.com

Online applications to generate the coefficients

Online applications do not have all the options of applications Iowa-Hills. Coefficients files must be manually copied to a text file, and you must also give it a name. Also, you cannot save your project so you can review the projects and every time you have to start from scratch.

Web based FIR-Filter designer

In recent years (2017) the following applications are probably the best:

How many coefficients to use?

The real limit on the number of coefficients is not given the workload, that in all cases is nearly zero ever, but by the time delay between input and output of the filter. The delay grows linearly with the number of coefficients and calculates, so crude and simple, as the sampling time multiplied by half the number of coefficients.

Some applications may tolerate lengthy delay but typically it is always good to have the lowest possible delays. Why you always try to use the minimum number of coefficients that allow to obtain the required characteristics.

Iowa-Hills applications also contain an option to minimize the delay time, see their Help files for more information.

Applications to test the filters

Filter test applications

With applications Theremino_SignalScope and Theremino WaveGenerator You can try the filters with signals that travel on the slots from one application to another. To filter the signals coming from the sensors you would use the application Theremino HAL and a Master module.


Download Theremino Filters – Version 1.0
Theremino_Filters_V 1.0

Theremino_Filters_V 1.0 _WithSources (complete design for programmers)
Version for all Windows in 32 and 64 bit. For Raspberry Pi, Linux, Android and OSX, read the installation notes.

Theremino KeyManager

This small application, allows using the capacitive buttons, as they were normal keys, of a standard keyboard. The buttons are easily, clicking on the line and pressing the selected key.

You can configure up to 255 keys and special keys can be simulated, with Shift, CTRL and mouse buttons.

Are also available, auto-repeat and auto-repeat delay. The delays are adjustable, exactly like a normal keyboard.

Capacitive buttons

The capacitive button is cut with scissors from copper adhesive tape. Or you can use bananas, flower pots, liquids or any other object slightly conductive. You get the equivalent of MakeyMakey, but without the danger of connecting an electric wire on your wrist.

A Master does the same things as a Makey Makey, but costs less than half and is more flexible. It also eliminates the dangerous electrical connection on your wrist, necessary to operate the Makey Makey. System buttons are capacitive Theremino, resistive not, then can be isolated and you should not touch any metal part.

Theremino Capacitive Keys - Lemons Piano A Theremino equivalent of Makey Makey

In this video and also in This, you see the KeyManager used with some awful BananaKeys. Bananas work but are uncomfortable. Better to use capacitive keys rectangular or round at least, such as lemons or mandarin oranges: LemonsPianoScriabin's s_lemons

Download Theremino KeyManager – Version 1.3

Theremino_KeyManager_V1.3_WithSources (complete design for programmers)
Version for all Windows in 32 and 64 bit. For Raspberry Pi, Linux, Android and OSX, read the installation notes.

Theremino Simon

Theremino Simon Game Theremino Simon Game Application

This is a key thereminica reissue of the hit game “Simon Says”. To build three or four LEDs and a few pieces of metal or wire, or bananas, or other fruits.

The software can simulate exactly the original game, with four buttons arranged in a circle, or a more modern arrangement, type keyboard piano, both with three with four keys, allowing you to play faster.

This application is also a good example and a starting point to build other games based on Input-Output.


The three (or four) capacitive sensors are connected to pins 1, 2, 3 (or 1, 2, 3, 4) a Theremino Master. These pins must be configured as Cap16 and with the slots with the same Pin numbers, i.e. 1, 2, 3 (or 1, 2, 3, 4).

The three (or four) LED are connected to pins 4, 5, 6 (or 5, 6, 7, 8) a Theremino Master. These pins must be configured as Dig_Out and with the slots with the same Pin numbers, i.e. 4, 5, 6 (or 5, 6, 7, 8).

Theremino experts could, If necessary, use other slots, changing the value “FirstSlot = 1” in the file “Theremino_Simon_INI.txt” located next to the application “Theremino_Simon.exe”.

To make it very similar to the original game you could print the image “Saka” located in the folder “Sources/Images” on a sheet of translucent paper. The image is then glued on a bed with LEDs and sensors consist of thin aluminum clippings.

Or you could use a piano keys, or even just the LEDs and wires (that act as sensors), set the table with masking tape.

Download Theremino Simon – Version 1.0
Theremino_Simon_V 1.0

Theremino_Simon_V 1.0 _WithSources (complete design for programmers)
Version for all Windows in 32 and 64 bit. For Raspberry Pi, Linux, Android and OSX, read the installation notes.

Theremino GamePad

Teremino GamePad and Joystick reader

This application reads any number of GamePad, Joysticks and other similar devices. The control values are copied into the slots and made easily available, any other application of Theremino.

If you set “First slot = 1”, then the first device uses the slots from 1 onwards, the second from 31 onwards, the third from 61 onwards, And so on.

Theremino Gamepad and Joystick reader

Here you can see the button numbers from 1 to 4. Other 4 buttons are located behind, two are in the Centre (called select and start) and two are in stick (Press:).

For a complete list of controls and slots, read the following files:
These same files are also available in your application.

This application could not start because it uses DirectX. In this case we recommend download and follow the installation notes. The version 1.2 should no longer require the installation of DirectX, on any operating system.

Download Theremino GamePad – Version 1.3

Theremino_GamePad_V1.3_WithSources (complete design for programmers)
Version for all Windows in 32 and 64 bit. For Raspberry Pi, Linux, Android and OSX, read the installation notes.

Theremino GamePad Tester

Theremino Gamepad and Joystick reader Theremino GamepadTester Example

Some Gamepads have a dead zone (Dead Zone) horribly large. We then prepared the application “Theremino Gamepad Tester” to compare them.

To test the GamePad you make ten rotations, of different diameters, on each of the two sticks. Then you check the name and possibly change it manually. Finally save the image to compare with other. If you have significant images speditecele, possibly with brand, model and how much you paid.

A good GamePad should have the four lower percentages can (under the 5%). It should also show traces approximately circular.

Theremino GamepadTester - Example - LinQ - Dead Zone = 20%
This is an example of Gamepad “to throw” – Dead Zone around the 20%.

Theremino GamepadTester - Example - PPM - Dead Zone = 3%
So instead you have the GamePad will work fine – Dead Zone around the 3%

Theremino GamepadTester - Example with low dead zone
Another example of good operation with very low Dead Zone – No matter that the circles are round, What matters is that you do not see discontinuities in the central areas.

Some examples of GamePad
Saitek P2900 – Wireless – Dead zone definitely small, about 2%. All Saitek should be fine. Unfortunately it is not easy to find them on eBay and they cost enough.
Logitech and Trust – About 50 Euro and 30 Euro. Expensive but should be fine.
SQONYY – Wireless, about 15 Euro. Talking about this well, will try it soon.
LINQ – With USB cable, about 10 Euro. Exaggerated dead zone, around the 15-20%.
Atomic PC – With USB cable, about 10 Euro. Exaggerated dead zone, beyond the 20%.
BOYU and FOYU – With USB cable, about 15 Euro. We haven't tested.

This application could not start because it uses DirectX. In this case we recommend download and follow installation notes. The version 1.4 should no longer require the installation of DirectX, on any operating system.

Download Theremino GamePadTester – Version 1.4
Theremino_GamePadTester_V 1.4

Theremino_GamePadTester_V _WithSources 1.4 (complete design for programmers)
Version for all Windows in 32 and 64 bit. For Raspberry Pi, Linux, Android and OSX, read the installation notes.

Custom Controls

Theremino system applications are easily controlled with the graphical controls “CustomControls” who fully configurable colors and shapes and editable numeric values in many ways, by clicking and moving the mouse, with the mouse wheel, with the arrow keys, with the keyboard and with normal methods of selection and copy-paste.

The CustomControlsLib collects the following controls:
– MyButton
– MyComboBox
– MyGroupBox
– MyListView
– Mytabcontrol
– MyTextBox

ATTENTION: Linux and MacOSX failing to use DLLs compiled along with the programs for which the “CustomControlsLib.DLL” should be copied close to every executable program.

Download Custom Controls – Version 1.4

For all Windows systems to 32 and 64 bit. For Raspberry Pi, Linux, Android and OSX, read the installation notes. This file includes the “CustomControlsLib.DLL”, the sources needed to modify and recompile and a small test application

– – – – – –

Custom Controls – Without DLL

We have been using for years the Custom Controls such as DLL, but now we have found a better way to include them in your applications. This is to include a folder called “CustomControls” among the sources of application and compile it along with any other files of the application. In the case of updates replace a DLL or a whole folder is pretty much the same thing, but will eliminate many problems and inconveniences from the DLL.

With this new method will have the following advantages:

  • You can have an application that consists of a single EXE file
  • You eliminate any difficulties of “embedding” the DLL
  • The Custom Controls are actually compiled with the application and work well even on Linux and MacOsx.
  • Connect the Custom Controls no longer requires delicate work with “References” and “CopyLocal property”

Switch from one application with “CustomControls.DLL” a without, requires some little intuitive operations. In the download file “Notes.txt” that explains how to include and link the folder “CustomControls” Visual Basic applications.

Download Custom Controls – Version 1.4 – Without DLL

For all Windows systems to 32 and 64 bit. For Raspberry Pi, Linux, Android and OSX, read the installation notes.

SDR Controls

ThereminoSDR controls MySmeter ThereminoSDR controls MyPanel Theremino SDR controls - MyTrackBar

These checks are similar to the previous “CustomControls” but cover different needs. We called them “SDR Controls” Why were developed for application ThereminoSDR. To see how to use open ThereminoSDR, its controls work even without hardware.

MyTrackBar is the most important control and probably the only one that will be used often. This trackbar is significantly better than any other. In addition to the colors that can be configured in many ways, the text that is presented in an efficient and highly visible and fluid movements and ergonomic, This control introduces two innovations useful: the ability to do non-linear sliders “Logaritmicity” and the variable resolution “Smart Resolution”. Quick tips on how to use them are in the file “MyTrackBar_Notes.txt”. The more complete instructions are on page 44 application instructions file ThereminoSDR.

Other controls are:
– MyPanel (pretty hard to use)
– MySmeter (probably suitable for single application SDR)
– NumericDisplay (even this very specific for SDR)

ThereminoSDR controls NumericDisplay

Unlike CustomControls this time we experienced a different way to include them in your applications. Do not create a DLL but you copy the folder with all the files between the sources of the application. Then you use “Add item exixsting” and there are in addition to the project file.

Notes for versions
Version 1.1 – Fixed TrakBar, We now also work with the new mouse, with micrometric wheel (without shots).

Download the SDR-Controls – Version 1.1
SdrControls_V 1.1

For all Windows systems to 32 and 64 bit. For Raspberry Pi, Linux, Android and OSX, read the installation notes.

Theremino DeviceManager

The particularity of this Device Manager is to remember the last selected device. So if you have the need to rehabilitate frequently the same device, You can do so comfortably in two clicks.

In recent months, WordPress, (We use to maintain your site Theremino), has a new fault and drop frequently manage network. We wrote Theremino DeviceManager on purpose and now we can rehabilitate the network in less than five seconds.

This application is an example of how to control hardware devices easily. Rarely feel the need. but it may happen in cases where it is necessary to do so. Know this “How do you”, could solve otherwise impossible situations.

Theremino System ->>> ATTENTION <<<

Disable System devices
may render your computer unusable
until it will be rehabilitated.

Notes for versions
Version 1.0:
First published version. Sturdy enough but yet to try.
Version 1.2: Fixed an issue that prevented starting in case of Devices with no name. Added an identifier number to distinguish devices with the same name.

Download Theremino DeviceManager – Version 1.2
Theremino_DeviceManager_V 1.2
Theremino_DeviceManager_V 1.2 _WithSources

For all Windows systems to 32 and 64 bit.

ATTENTION: Raspberry, Linux and MacOSX have their own management system devices. Modify this application, to make it work on operating systems aliens, It may be difficult to, If not impossible.

Simulations LTSpice

Electrical simulation system Theremino recommend LTSpice which is the fastest Simulator, efficient and well done for all the ones we tried so far. In years past we used them almost every, from suffering to another. Since we use PSpice everything is simplified and became a friend really enjoyable. LTSpice is freeware and even this does not hurt.

LTSpice, kindly distributed by Linear Technology, apparently, supports only integrated circuits produced by them, has very few generic components in its libraries, and it's a little’ strange (but just learn to use it well).

The schema components of LTSpice are disproportionate, the resistors and transistors are very big so the appearance of diagrams is not serious. These characteristics have prevented many to appreciate the simplicity and power of LTSpice and hijacked almost all, us including, toward simulators cumbersome Eurocracy must become employing hours to settle…


  1. Download latest version from LTSpiceIV: http://www.linear.com.
  2. Install it normally.
  3. Go to the folder “C:\ProgrammiLTCLTspiceIV” and delete the folder “lib”.
    (those who prefer to be less bad can rename it “lib-old”).
  4. Download this ZIP: LTSpiceIV_Libraries_for_Theremino_simulations_V 2.0
  5. Extract the folder “lib” and put it in “C:\ProgrammiLTCLTspiceIV” instead of the original lib.

Doing this you can open all of our simulations without problems and you will find thousands of transistors and diodes. All the commonly used operational amplifiers are available by selecting them with OpAmp5. And finally the schemas are no longer strange, with resistors and transistors tits.

The version 1.8 includes many new models, including a thousand Mosfet in the file “Standard.mos”. Are models that are easily found on the net, just go and try one by one by the constructors. But having them all gathered in alphabetical order, in a single file, It is another thing. To control the models manually it would take weeks. We then wrote an app that has eliminated the defective or duplicate models and has them listed alphabetically.

The versions 1.9 and 2.0 include more new models, including hundreds of new JFET. This is definitely the list of Spice models, more complete and better ordered, that you can find on the net.

In this ZIP you will find all the simulations that have some relation to the system Theremino: ThereminoSimulations_V 1.6 (are our simulations “of work”, are not meant to be published, but they can be very useful for “insiders”)

This file contains all the main features of the most commonly used Op and is very useful to choose the best when designing: OpAmps_Table

PCBS with Eagle Eagle3D

Theremino Eagle Schematics Theremino Eagle Board

Eagle is an excellent program to draw schematics and printed circuit board. Unfortunately the original Eagle libraries contain many components designed badly. If the components have the pins out of step (not a step 2.54 mm) it becomes difficult to connect the PCB tracks and do small and well made. Also not all components have the corresponding libraries in Eagle3D and you never know which components use.

We therefore advise, After installing Eagle and PovRay, do as follow:

Eagle libraries
Download this compressed file: EagleLibs.zip (fixed 20/01/2017 Now you can replace the package to terrible errors no longer incurring electrolytic “inconsistency”)
– Open the folder “LBR” Eagle

– Make a new folder called “Original Libs” and shift them in all libraries
(in the future if need other libraries will be easy going to regurgitate them between “Original Libs”)
– Put in folder “LBR” downloaded libraries, by pulling them from the ZIP file

Components to use for Eagle Eagle3D
To find out which are the best components to use, and make sure they are also viewable in 3D, Download these documents: EagleComponents (fixed 20/01/2017 now there are many types of capacitors available both with step 2.54 mm that 5 mm)
For now the documents are in Italian but the ODT version will allow translators to do the English and Japanese versions.

Files of “includes” for PovRay (for 3D components)
Download this ZIP file: PovRay_Include_Files (fixed 20/01/2017 now work fine even the capacitors available both with step 2.54 mm that 5 mm)
– Open the PovRay
– Find the subfolder “includes” and open it
– Copy to this folder “includes” the files, extracting it from the ZIP file and overwriting.

ULP Eagle3D
The ULP (user language program) are extensions of Eagle, with this ULP creating files “POV” that finally PovRay turn into 3D images.
Download this compressed file: ULP_EAGLE_3D
(fixed 20/01/2017 now work fine even the trimmer, from TRIM-1 h up to TRIM_M3, as shown in EagleComponents)
– Extract all the complete folder “EAGLE 3D” and put it in the folder ULP of Eagle

ULP FastGcode
The ULP (user language program) are extensions of Eagle, with this ULP creating GCODE files which are used to make printed circuit boards with the cutter. (at the beginning we do not understand anything but with lots of patience and a lot of experience eventually becomes easy)
The version of September 2013 It also works well with manual tip.
Download this compressed file: FAST-GCODE _ July2015 (contains the new version 7.9)
– Extract all the complete folder “_ FAST-GCODE _” and put it in the folder ULP of Eagle

ULP FastGcode latest versions
The version 7.8 has a strange defect in large area cleaning (Sometimes he neglects some pieces). The 7.9 should be good to go and also fixes a bug that happened if you grew too “Overlap” (total block of the application when creating GCode). This ZIP contains the versions 7.7, 7.8 and 7.9, use the one that works better and you feel like it: FAST_GCODE_LastVersions

Theremino Fast FTP

Theremino Fast FTP

There are many FTP software and also the basic functions of Windows folders allow you to Upload and Download files. But we always had problems in managing sites with this Protocol, why we wrote this little app.

“Theremino Fast FTP” could, in some cases, serve as an example for those who send and receive files in FTP. Like all our applications is Open Source and written in a very simple way, to be a useful teaching aid.

This little app is great to see the real address Upload folder for the program “Geiger”. Sometimes these addresses are very strange and only with “Fast FTP” You can find them (other FTP programs interpret internally addresses and do not show complete addresses)

Instructions for FTP addresses
Depending on your FTP address to be set can be different, in some cases also very strange, as per the following examples:

"ftp://ftp.sitename.org/sitename.org/folder1/folder2/" (Aruba)
"ftp://www.theremino.com/www.theremino.com/files/" (Aruba)
"ftp://indirizzo.dominio.it/cartella/images " (home.teletu.it)

If you can't then you should get the syntax provider.

Notes for versions
Version 2.2:
Correct small defects were born during the transition from XP to Windows-7/8.
Version 2.3: Delete the flashes on startup.

Download Theremino FastFTP – Version 2.3
2.3 Theremino_FastFtp_V
Theremino_FastFtp_V 2.3 _WithSources (complete design for programmers)
Version for all Windows in 32 and 64 bit. For Raspberry Pi, Linux, Android and OSX, read the installation notes.

Theremino WatchDog

Theremino WatchDog Theremino WatchDog

This application disables mouse and keyboard. Disabling can be manual, or it can happen automatically, When the computer is idle for some time.

Usefulness and application areas

Disable the keyboard is useful when cleaning the keys. Moreover this application will be especially appreciated by those who must defend against mischievous beings of various kinds. The network are other applications to disable keyboard, but none is specifically designed for defence from cats, dogs and birds.

Theremino WatchDog has been tested in worse conditions and is definitely a test of cats and magpies. The magpies are animals from the wild and mischievous soul ’, that some consider almost of raptors. If you are looking for network characteristics sits that are among the most intelligent animals ever. They are the only birds that they recognize themselves in the mirror, in the company only of man, of primates and dolphins (read here). The magpie “Chiko”, who lives in the garden out of the lab and that sweeps and flutters again even in the laboratory, He understood that the keyboards are magical and can recognize the computer unattended. Patiently awaits the best time to scamper on the keyboard right and do maximum damage. He also manages to press the buttons of the mouse in its beak and failed multiple times to open the flap of the battery of the mouse, remove it and take it away. In This video She is seen, from small, While taking a bath.

Now all computers in the laboratory have always-on Theremino_WatchDog, with a very short time to disable (30 seconds), so there are high hopes that this site is deleted from a shot of beak.

Opening and closing the application

When you enable the application does not appear a window, but only a small icon. The icon remains resident in the area of applications (at the bottom right, near the clock calendar), and is recognizable by the igloo and the dog. To completely close the application you press the right button on this icon and then choosing “Exit”. It should no longer his task until it restarts. The automatic restart can be, When you start Windows, or manual.

Disable keyboard and mouse

To disable mouse and keyboard you click with the left mouse button on the icon ’ application. Disabling can also take place in time, so if you will be away for some time your computer will turn by itself. This is very useful for those who regularly forgets to enable disable before walking away.

To reactivate the mouse and keyboard using a keystroke, a sequence of clicks on the left and right mouse buttons, or click on the dog's nose. If none of these methods is enabled then you might risk getting stuck, so in this case the keyboard and mouse will be always enabled.

Change the behavior of the application

To tailor the application to suit your preferences, you press the right button on its icon and choose “Properties”. The property sheet has the following controls:

  • Countdown – This box displays the time remaining before disabling. With every movement of the mouse and for each key pressed this time sharing. Then disabling occurs only if you remain completely inactive all the time set.
  • Countdown time (SEC) – Setting the time in seconds. We recommend a short time, for example, 30 seconds, If the “enemy” is very attentive and you turn each time you leave your computer unattended. Otherwise a time from 60 seconds to 180 seconds should be fine in all other cases. Setting this value to zero or leave this field empty, the countdown will stop and disable timer never occurs.
  • Show passwords (reminder) – Enabling the password reminder and for the sequence of the mouse. The two strings of characters will be visible above the dog's head that appears during the computer to stop responding.
  • Cover entire screen – By enabling this check box, l ’ whole screen is covered with a translucent Sheen, to indicate that the keyboard and mouse are disabled. Otherwise it is only covered l ’ bottom right corner.
  • Password – Sequence of letters to be pressed on the keyboard to rehabilitate keyboard and mouse. Between a keyboard and other things you should not miss more than two seconds.
  • Mouse sequence – Sequence of button presses mouse button, to rehabilitate keyboard and mouse. The buttons to be used are “sinister” (L) and “Destro” (R). The sequence “LLR” means that you must press the buttons “sinister”, “sinister” and “Destro”. Between and the next you should not wait longer than one second.
  • Enable with click on dog nose – If you enable this control, You can end the block of keyboard and mouse, by clicking on the dog's nose. Not the small icon of the application, but on that great, appearing in transparency when the computer is locked. To make clicks you can use either the mouse or the touch screen.
  • Do not show messages – Who was annoyed by the messages and their sounds, can suppress them with this option.
  • Start automatically at logon – By enabling this check the application will start automatically each time you start Windows. Or more precisely each time the user connects with your computer (logon). Bootstrapping is obtained with a link to the application in the Autostart folder, call “Startup folder”. If you are using Autostart no longer move the application and you should not rename the path where.
  • Open startup folder – Very useful command that opens the folder “Startup folder”. You can then control which programs to start automatically, and you can also add new ones. To add new programs to start automatically creates a link to the program and you put in this folder. Without this command find the Autostart folder it would be very difficult.
  • Clear icon cache – Since this application is meant to be always online, We added this command in order to have it always at hand. Other useful commands will be added in the future in this area. Make a “Clear icon cache” need to update images of all desktop icons when, for some reason, they were wrong.

After you change the Properties window closes with the cross so that it doesn't clutter your desktop and do not consume resources unnecessarily. Even closing the application will continue to work minimized in the taskbar.

Programming and educational

Like all other applications on your system Theremino, This software is written in the simplest possible way and can be used to study the programming. Here are shown some things rather “difficult” as keyboard and mouse hooks. The hooks intercept system-level events, before they are sent to applications.

– – – – –

Notes for versions
Version 1.0:
First published version.
Version 1.1: Fixed a bug for which you had to write the entire password all in a second. Up to two seconds the time allowed between two password buttons with the keyboard.
Version 1.2: Eliminated the possibility of launching twice the application by mistake. Also now the Properties window no longer opens each time you start Windows.
Version 1.3: Improved background color. Adding the icon with the signal blocking. Delete a minor flaw that occurs when restarting the application that is already open. Made sure that the properties sheet will never go off screen.
Version 1.4: Improved password recognition functions and Mouse sequence. Simplified Hook classes.

Download Theremino WatchDog – Version 1.4
Theremino_WatchDog_V 1.4
Theremino_WatchDog_V _WithSources 1.4 (complete design for programmers)
Version for all Windows in 32 and 64 bit. For Raspberry Pi, Linux, Android and OSX, read the installation notes.

Theremino KeyTester

Theremino KeyTester

This application is used to control the codes issued by keyboard. You can use it to monitor the operation of keyboards and to identify the “Scancode” to use in your applications.

Programming and educational

Like all other applications on your system Theremino, This software is written in the simplest possible way and can be used to study the programming. Here is a pretty “hard” as the keyboard Hook. The hooks intercept system-level events, before they are sent to applications.

Download Theremino KeyTester – Version 1.0
Theremino_KeyTester_V 1.0
Theremino_KeyTester_V 1.0 _WithSources (complete design for programmers)
Version for all Windows in 32 and 64 bit. For Raspberry Pi, Linux, Android and OSX, read the installation notes.

Get the system modules

The theremino team only deals with research and does not sell hardware. The system is completely "Freeware", "Open Source", "Not for Profit" and "DIY", but there are manufacturers who can provide modules assembled and tested at a great price. One could hardly self-build them spending less. A list of manufacturers on this page: www.theremino.com/contacts/producers


The source code of our software does not contain copyright notices, author names and links to our site, so you can make every use, without limitation of any kind. We do not require you to specify the original source or our site but if you are happy with our software remember us and make known this site to your friends. Any donations, even small, are very welcome and can help us to maintain the software “free” and to produce always new applications.

Legal notice


Comments are closed.