FAQ & Terms of UseFAQ & Terms Of Use   Wiggler RadioMW Radio   Muff Wiggler TwitterTwitter   Support the site @ PatreonPatreon 
 SearchSearch   RegisterSign up   Log inLog in 

VCOTuner - making tuning as simple as it gets
MUFF WIGGLER Forum Index -> Music Tech DIY Goto page 1, 2, 3, 4, 5  Next [all]
Author VCOTuner - making tuning as simple as it gets
Hi there,

After I finished my evenVCO, I realized how tedious it is to get it in tune. Not because this VCO is terribly complicated (in fact befaco give very clear instructions on how to tune it) but because it just takes so long. And I'm a lazy guy.

So as a result I wrote this software to make tuning a little easier. All you need is a MIDI-CV interface and a soundcard.
The software is based on JUCE and runs on Mac, Windows and linux. Its open source - here's the repository.

How tuning usually works - Tuning is usually a tedious ping-pong game between adjusting a fine tune pot and adjusting one or multiple tuning trimmers. Whenever a trimmer has been adjusted, the fine tune pot has to be adjusted as well to bring the pitch back to a specific note.
How tuning works with the app - The app spits out midi notes and measures the frequency. This is done for multiple notes in a user selectable note range. At first the note in the center of the range is selected as the reference pitch. All other measurements will be compared to this reference. This removes the need to adjust the fine tune pot. Tuning the oscillator is just a matter of tweaking the trimmers and looking at the screen. Its is just a matter of minutes. See the video below.

The application can also produce a report that features measurements in the highest accuracy and over a very wide pitch range. Reports are saved as a *.png file including information on the device under test and the CV interface that was used.

This video shows how to use the application.

This is still an early release. If you find a bug, please open up an issue on the GitHub repository.

You can download the latest binaries here:

Happy tuning!

(BTW: I’d be interested to see your reports! I’ll post some of mine soon.)

  • slight improvements on measurement accuracy
  • moved configuration file to the "Application Support" folder on OSX
  • added "Close" button in audio settings window. For new users it wasn't very clear that the window must be closed to go on.

  • Windows builds now include ASIO support
  • pitch drift during the creation of a report is detected. User is asked to repeat the measurement if drift is > 2 cents
  • pitch drift during the creation of the report is included in the report image
  • fixes a bug, where the selected midi interface was not opened
  • improved error handling - more descriptive error messages

  • Linux builds are now mature enough. Tested on Arch linux and Ubuntu. Please help to test on other distros.

  • Fixes haning notes, when app is closed during a measurement
  • improved visuals of the graph (labeled x axis, highlighted reference pitch, etc)
  • Added a welcome screen for new users

  • Fixed bug, where overwriting an existing report does nothing
  • Fixed bug that resulted in no line breaks in the notes section of a report
  • Fixed bug, where measurement accuracy and range settings in the comboBoxes were out of sync with the actual settings after creating a report.
Here are two of my reports. I'm stating to think that my Yarns is poorly calibrated in the upper range. I should check that.

Thank you w00t This will be immensely useful for my future plans.
This is a great idea. Take the 's' out of "https" to embed your video. thumbs up
Do you think this could work on linux? Do you plan to release the source code?
Grumskiz wrote:
Do you think this could work on linux? Do you plan to release the source code?

Hehe, you're a funny guy! It's all in the first post Mr. Green
The sourcecode is open already and there's a makefile for linux. If you can, try to compile it and tell me if it's working. I simply don't have a virtual machine setup atm.
huh that's weird. When I looked at the repository earlier on there was only the .gitignore file and the LICENSE, nothing else.
Anyways, thanks man. This tool looks very useful!

Compilation went without problems. The tool starts up. I get a juce assertion failure in juce_AudioSampleBuffer.h:91. Also I noticed that in the Audio Setup menu I cannot select an input device. All the devices listed in the dropdown menu are output devices. For example: "USB Audio, Front Speakers".

Also tried running the jack audio server, but no change.
Yes, that's possible. You probably looked at the master branch but all the stuff was going on in the develop branch. I've just made the first "release" by pulling everything into the master branch about 2h ago.

Edit: Re your issues on linux: I'm right now installing a virtual machine and I'll try to compile it there and see if I can fiy the problem. I'm not used to commandline debugging so this might take a while. If you have any more info about the error, please raise an issue on github.
OMG this is great (I just watched the video). we're not worthy

Suggestion: put the note values, or voltage values, along the X axis (or a subset of them if the scale to too small to display them all).
drip.feed wrote:
OMG this is great (I just watched the video). we're not worthy

Suggestion: put the note values, or voltage values, along the X axis (or a subset of them if the scale to too small to display them all).

Thanks, I'm glad you like it! Yes, I've been thinking about doing this as well. I'm also thinking that it could be useful to highlight the reference pitch. When you make a long measurement and the note that corresponds to the reference pitch is not at 0 cents, that means your pitch has drifted since the start of the measurement. This happens often, e.g. when the device is not fully heated up yet. So this could be a valuable information to have.

I added an issue on the github page.
I've just added an experimental linux build to the first post. Grumskiz has reported an error regarding the audio input, but its working fine on my side. It would be great if there are any linux users out there who want to try this out. If you compile it from source, please use the features/linux_support branch.

Did anyone try the OSX or Windows builds? Did it work for you?
A quick try on Windows 7 without anything connected: the program starts but when I click on Create Report or on Start, the program crashes. If I first set a few options in the dialog boxes and then press start it does seem to work.

But again: I dont have anything connected and do not have time to do so. Leaving for holiday tomorrow! w00t
Does it happen again now? My guess is that it failed to load the default settings.
Usually the programm keeps the settings when you restart it.

I'll take a look at the error. If you have any crash log or error messages, that would be very helpful.

EDIT: I've just checked it on my Windows 10 machine and I don't get the error. Does anyone else experience this? Please send me the specific error message and a crash log if you can!
Now if I click start I get a message that sais: "The pitch on the output is not stable... etc etc". The program does not crash.

If I click create report I get the normal create report window.

One bug fixed! thumbs up

And now I have to fly!
@Grumskiz, could you please check out the latest commits in the features/linux_support branch? I think I resolved the issues you had with saving the report file. If it works for you, I'll include the changes in the next release.

@all: I've been doing some polishing. I've resolved a couple of minor bugs. Also the Y axis is now in the correct orientation and the X axis is labeled with the midi notes. I've updated the downloads in the first post.
This is absolutely fantastic! we're not worthy we're not worthy Brilliantly conceived and executed. I haven't had a chance to try it yet (my MIDI interface is involved in a complex patch at the moment), but I don't care whether it works perfectly right now. The idea is that beautiful. thumbs up
I have a weird problem and I don't know where to place it.
Basically I set up my oscillators using the huge > coarse setting. This only goes through the octaves and I am able to tune them nicely with the V/OCT trimmer. Both the tool and my ears tell me that they are in tune.

Once I change to huge > normal, huge > fine or to the report creation the tool also checks other intervals and those always seem to be offset. This offset is relatively constant throughout the octaves.

It doesn't seem to be a problem of the oscillators. I have tested both of my Steffcorp oscillarps which I have just finished building and consider to be well tuned and quite stable.
I have also tested both my Fonitronik/Thomas Henry X4046s which don't track quite as good, but still show this problem very clearly.

Is this a problem of my Hexinverter MIDI2CV interface (also DIY)? Or could it be a software problem?

Here's a report picture of one of my oscillarps. Please note that this is a cold boot test.
Considering that the offset is just a few cents, it could very well be related to the DAC accuracy of the hexinverter MIDI2CV. It uses a MCP4822 which is only 12bits compared to the 16bit of the Yarns that I'm using.
The offset doesn't look like its coming from a nonlinearity in the analog parts of the oscillator. It really looks like a digital quantization thing.

Edit: Please also note that it has very little jitter (green bars are only small) which also points towards a quantization error in the DACs of your MIDI2CV

Edit 2: I can see a pattern in the tuning errors. Seems like it roughly repeats every 4 notes. One more hint for a quantization error of the DAC. This would also explain why you don't see anything when you measure in intervals of 12 semitones
That's also my suspicion. Well a Yarns has been on my list for a while. But I guess as long as I just look at the octaves, the MIDI2CV is still pretty good.
I have tried the program on a Win 10 machine without success. I can set up the program, select the audio in and MIDI out devices which are shown correctly in the dropdowns. When I try to run the program, however, I get a message that says that the MIDI output is not changing the frequency followed by a message that says that no zero crossings are found in the incoming audio.

I have tried three MIDI output interfaces, a TASCAM DM3200, a PRESONUS 44VSL, and a Teensy 3.1 based basic USB to MIDI output. The MIDI feeds a Grove GMS-742 MIDI to CV converter. The audio input is returning via a channel of the 44VSL. The audio input is shown on the little level indicator in the audio setup window. The TASCAM and the PRESONUS both use ASIO drivers which is why I tried the Teensy unit as it is just a basic com port type interface. All three interfaces perform correctly when accessed with MIDI-OX.

Is there something I should be doing differently? Does the program need an audio input device that passes DC. I am not sure that the PRESONUS unit is capable of that.
Hello burdij,

no, a regular audio interface is enough. In fact it can be better than a DC coupled one, because the app measures the pitch by measuring the time between the zero-crossings in the signal.
When you start a measurement, does the pitch of the oscillator change? Does your midi to cv interface receive any messages and does it change its control voltage?
No MIDI commands are being emitted from the interfaces. When I send commands from MIDI-OX to the interfaces, I do get MIDI command output. These outputs are converted and do change the oscillator frequency. BTW - I am using the version downloaded from the link at the top of this thread.
EDIT: I think I found a bug that could cause this. Can you tell me which OS you are using? I would like to send you a fixed version to see if it really fixes the problem before I release it to the public.
Sorry, got called away for a while. I am using Windows 10. I tried your suggestions but basically with the same result. I was going to try a different machine but both are basically the same with factory fresh updated versions and only minimal other software installed.

Removing all the USB devices did not seem to matter, but I did find that, although the program lists it, when you try to open the Teensy based USB/MIDI port your program gives an error message about no MIDI ports whereas a program like MIDI-OX can identify and open it as a MIDI device. I think this is some kind of USB device identifier issue.
I just sent you a PM with a test build. Could you please check if the error is still there?
MUFF WIGGLER Forum Index -> Music Tech DIY Goto page 1, 2, 3, 4, 5  Next [all]
Page 1 of 5
Powered by phpBB © phpBB Group