You need a Windows computer with a microphone input. Because strobeTuner is an actual low level emulation, significant compute power is needed to get a smooth (60 FPS) display. Each of the up to 12 strobe wheels uses its own thread, as does the display function. Therefore, multithread processors work well. The most suitable computer is one with 16 or more threads and a decent video card.
The FPS (frames per second) rate is displayed in the upper right hand corner. 60 FPS is ideal. If you aren't getting 60 FPS, changing the configuration to reduce processor or graphics load may help. To reduce processor load, remove unneeded wheels by selecting a different configuration. An additional way to reduce processor load is to reduce the number of octaves (bands) displayed.
Graphics processing can also limit frames per second. To reduce the graphics work load, consider disabling some of the overlay text labels. Both graphics and processor work load can be reduced by resizing the window for a smaller display. The display width affects processor usage more than display height.
If you still can't get 60 FPS, it's time to think about a hardware upgrade. 30 FPS might be usable in a pinch.
One way to start strobeTuner is to click on strobeTuner.exe from Windows explorer. The default configutation is processor and graphics intensive: 12 strobe wheels of 9 octaves each with full text labels. Often this 108 semitone configuration is more that you want. You can use the GUI to experiment with cofiguration choices and then make a batch file to startup in that configuration. The releases contain samples of such batch files. For example, fileBbTrumpet-C_major.bat starts a configuration with one wheel for each tone produced by a b-flat trumpet playing a C major scale. The transpose option makes the note labels match the b-flat key note names. To see a list of command line options, run strobeTuner from a command box and give option /?:
Strobetuner 1.0
options:
size= width,height: default is 1600,1200
octaves= number of octaves per wheel [0,9]
overlay= text overlay option 0=none,NFO,NO,N,F,NG,5=none
referencepitch= A4 frequency, defaults to 440.0
transpose= transpose option, example: transpose=Bb3
wheelconfig= chromatic, major, single, ...
startingpitch= "C0 ", C0#,... D10#, "E10 "
audioinput= 0,1,2... select microphone input
audioinput=function:... ex:sin(440)+2sin(880)+cos(10)
displaycycles= cycles displayed for lowest band
agc= automatic gain control 0=off, 1=on
gain= [0,500] gain slider position when agc=0
displaycycles= [0,20] display cycles slider position
Each strobe wheel has bands for consecutive octaves of a particular note. The band patterns move at 1X, 2X, 4X, 8X, ... multiples of a base frequency. A pure tone, such as that of a tuning fork, will make a single band of the wheel change from blurred to frozen if the pitch matches. If the pitch is way off, the pattern will appeared blurred. If the pitch is flat (slightly lower frequency), the pattern will be visible, but rotating to the left. If the pitch is sharp, the pattern will rotate to the right. The rotation rate corresponds to the difference in pattern frequency and pitch frequency.
The program models a mechanical strobe tuner where possible. Dedicated threads build each wheel image in parallel. The combined image is displayed by a different thread. The wheel threads work on the next image while the display thread renders in parallel . Windows tends to sync the update to the monitor refresh rate (or 1/2 that rate if processing lags). The program never intentionally delays. The result is that the program generates and displays 60 images per second in most cases.
60 display updates per second is not fast enough for a straight emulation where the display image is built from a single snapshot of the strobe wheel. At 60 FPS, the Nyquest limit would prevent a straight emulation from using frequencies above 30 Hz. For a straight emulation to work, the computer would have to display a new image for every audio sample, or 44,100 FPS. This is not possible today. Yet we know the computer display is fast enough to make a usable strobe tuner display because video playback of a mechanical strobe tuner looks realistic. The solution to this 60 to 44,100 FPS gap is eye persistence emulation. The human eye captures light continuously and effectively averages the past few milliseconds to get the image we see. To emulate this using 60 images per second, the program must average the images corresponding to each audio sample when building the display. The amount of data to average to build images at 60 per second could consist of all the new data since the last image was displayed (1/60 seconds worth of audio data). The progran actually uses a variable amount, depending on frequency. For low frequencies, the program uses more than 1/60 seconds of data per frame. This allows the emulation to handle lower frequencies than the mechanical strobe tuner. For example, 16 Hz would produce heavy flicker from a mechanical strobe tuner. But by emulating a persistence longer than that of the human eye, 16 Hz appears relatively flicker-free. This program emulates 367 milliseconds of persistence for the 16.35 Hz C0 band, and 2.5 milliseconds of persistence for the 21,096 Hz E10 band.