VCOTuner - making tuning as simple as it gets

From circuitbending to homebrew stompboxes & synths, keep the DIY spirit alive!
Post Reply
TheSlowGrowth
Common Wiggler
Posts: 160
Joined: Tue Apr 05, 2016 11:44 am

VCOTuner - making tuning as simple as it gets

Post by TheSlowGrowth »

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.
[video][/video]

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


DOWNLOAD
You can download the latest binaries here: https://github.com/TheSlowGrowth/VCOTuner/releases/latest

Happy tuning!

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

================================================
CHANGELOG
v0.2.4
  • 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.
v0.2.3
  • 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
v0.2.2
  • Linux builds are now mature enough. Tested on Arch linux and Ubuntu. Please help to test on other distros.
v0.2.1
  • 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
v0.2
  • 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.
Last edited by TheSlowGrowth on Fri Jan 06, 2017 5:08 am, edited 13 times in total.
TheSlowGrowth
Common Wiggler
Posts: 160
Joined: Tue Apr 05, 2016 11:44 am

Post by TheSlowGrowth »

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.

Image

Image
donpachi
Wiggling with Experience
Posts: 429
Joined: Fri Dec 24, 2010 4:17 am
Location: MR DE EU

Post by donpachi »

Thank you :party: This will be immensely useful for my future plans.
praise the carp
User avatar
drip.feed
Roll it off at 30 Hz
Posts: 3183
Joined: Thu Sep 15, 2011 10:05 am
Location: Belfast, Northern Ireland

Post by drip.feed »

This is a great idea. Take the 's' out of "https" to embed your video. :tu:
Dripfeed
Grumskiz
Wiggling with Experience
Posts: 346
Joined: Thu Apr 03, 2014 12:51 pm
Location: Germany

Post by Grumskiz »

Do you think this could work on linux? Do you plan to release the source code?
TheSlowGrowth
Common Wiggler
Posts: 160
Joined: Tue Apr 05, 2016 11:44 am

Post by TheSlowGrowth »

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 :mrgreen:
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.
Grumskiz
Wiggling with Experience
Posts: 346
Joined: Thu Apr 03, 2014 12:51 pm
Location: Germany

Post by Grumskiz »

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!

Edit:
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.
Last edited by Grumskiz on Sun Jul 03, 2016 12:45 pm, edited 1 time in total.
TheSlowGrowth
Common Wiggler
Posts: 160
Joined: Tue Apr 05, 2016 11:44 am

Post by TheSlowGrowth »

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.
User avatar
drip.feed
Roll it off at 30 Hz
Posts: 3183
Joined: Thu Sep 15, 2011 10:05 am
Location: Belfast, Northern Ireland

Post by drip.feed »

OMG this is great (I just watched the video). :hail:

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).
Dripfeed
TheSlowGrowth
Common Wiggler
Posts: 160
Joined: Tue Apr 05, 2016 11:44 am

Post by TheSlowGrowth »

drip.feed wrote:OMG this is great (I just watched the video). :hail:

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.
TheSlowGrowth
Common Wiggler
Posts: 160
Joined: Tue Apr 05, 2016 11:44 am

Post by TheSlowGrowth »

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?
User avatar
flagada
Common Wiggler
Posts: 155
Joined: Tue Sep 01, 2015 8:43 am
Location: Amsterdam

Post by flagada »

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! :party:
TheSlowGrowth
Common Wiggler
Posts: 160
Joined: Tue Apr 05, 2016 11:44 am

Post by TheSlowGrowth »

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!
User avatar
flagada
Common Wiggler
Posts: 155
Joined: Tue Sep 01, 2015 8:43 am
Location: Amsterdam

Post by flagada »

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! :tu:

And now I have to fly!
TheSlowGrowth
Common Wiggler
Posts: 160
Joined: Tue Apr 05, 2016 11:44 am

Post by TheSlowGrowth »

@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.
User avatar
stevebryson
Wiggling with Experience
Posts: 451
Joined: Sun Dec 28, 2014 4:52 pm
Location: San Rafael, CA
Contact:

Post by stevebryson »

This is absolutely fantastic! :hail: :hail: 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. :tu:
The instrument is not the music.
http://stevepur.com/music/synths/
Grumskiz
Wiggling with Experience
Posts: 346
Joined: Thu Apr 03, 2014 12:51 pm
Location: Germany

Post by Grumskiz »

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.
Image
TheSlowGrowth
Common Wiggler
Posts: 160
Joined: Tue Apr 05, 2016 11:44 am

Post by TheSlowGrowth »

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
Last edited by TheSlowGrowth on Mon Jul 04, 2016 10:14 am, edited 2 times in total.
Grumskiz
Wiggling with Experience
Posts: 346
Joined: Thu Apr 03, 2014 12:51 pm
Location: Germany

Post by Grumskiz »

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.
User avatar
burdij
Ultra Wiggler
Posts: 765
Joined: Mon Dec 28, 2009 4:38 pm
Location: Wisconsin US

Post by burdij »

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.
Knobcon Nine - 2021 Photo Album
Join us at Knobcon 10 - Sept. 9-11 2022 - Hall A Booth B18
Check the new Grove Audio Outlet Store. Module specials, used stuff, pro audio gear and more. For sale: Used Strymon Big Sky
Tesla Science Center http://www.teslasciencecenter.org
TheSlowGrowth
Common Wiggler
Posts: 160
Joined: Tue Apr 05, 2016 11:44 am

Post by TheSlowGrowth »

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?
User avatar
burdij
Ultra Wiggler
Posts: 765
Joined: Mon Dec 28, 2009 4:38 pm
Location: Wisconsin US

Post by burdij »

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.
Knobcon Nine - 2021 Photo Album
Join us at Knobcon 10 - Sept. 9-11 2022 - Hall A Booth B18
Check the new Grove Audio Outlet Store. Module specials, used stuff, pro audio gear and more. For sale: Used Strymon Big Sky
Tesla Science Center http://www.teslasciencecenter.org
TheSlowGrowth
Common Wiggler
Posts: 160
Joined: Tue Apr 05, 2016 11:44 am

Post by TheSlowGrowth »

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.
User avatar
burdij
Ultra Wiggler
Posts: 765
Joined: Mon Dec 28, 2009 4:38 pm
Location: Wisconsin US

Post by burdij »

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.
Knobcon Nine - 2021 Photo Album
Join us at Knobcon 10 - Sept. 9-11 2022 - Hall A Booth B18
Check the new Grove Audio Outlet Store. Module specials, used stuff, pro audio gear and more. For sale: Used Strymon Big Sky
Tesla Science Center http://www.teslasciencecenter.org
TheSlowGrowth
Common Wiggler
Posts: 160
Joined: Tue Apr 05, 2016 11:44 am

Post by TheSlowGrowth »

I just sent you a PM with a test build. Could you please check if the error is still there?
Post Reply

Return to “Music Tech DIY”