Giter Site home page Giter Site logo

vcotuner's Introduction

VCOTuner

A JUCE based tuner application for VCOs, VCFs and other analog gear. It runs on Windows, Mac and Linux.

Overview

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. Takes no longer than a few 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 it:

Youtube tutorial video

Download

Head over to the "release" section of this repository to download the latest release.

Help to improve it

If you find bugs, please raise an issue here!

Are you on Muff's?

Here's a thread on MuffWiggler. Post your tuning reports here, if you like

vcotuner's People

Contributors

theslowgrowth avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

vcotuner's Issues

Audio input selection only shows output devices

The Audio Settings only list output devices in the selection menu for an input device.
The standard selection is:

Default ALSA Output (Currently PulseAudio Sound Server)

Another option is:

iO4, USB Audio; Front Speakers

But there are no input devices available.

I also get the following assertion failure repeating while running the program:

JUCE Assertion failure in juce_AudioSampleBuffer.h:91

This stops when I select "None" as an input device.

The line of code it points to reads:
jassert(dataToReferTo != nullptr);

I am running the tool on Arch Linux and tried using PulseAudio and Jack as a soundserver, without change.
Compilation did not raise any warnings or errors. MIDI Device Selection seems to work, but so far I couldn't get the tool to output any MIDI messages.

No input level meter for ASIO devices

For some reason, the juce::AudioDeviceSelectorComponent doesn't add a level meter to ASIO input devices. It should be considered to add a dedicated level meter somewhere on the audio settings panel.

Add a simple tuner

It would be cool if the app would have some sort of simple tuner. It's already there in the report window, so why not make it a stand-alone function?

Graph: Add Indication, if measurement is out of visible range

If a measurement is out of the on-screen range in the graph/report, the software currently displays a blank column in the graph. A small arrow should be displayed instead to show that there's data off the screen. The arrow could be placed on the top, facing upwards, for measurements that are too high to be displayed. Or on the bottom, facing downwards, for results which are too low.

Moving window creates measurement errors

It seems that sometimes when moving the windows around with the mouse, large errors are introduced in the measurement. Why? It's hard to reproduce but it happens.

Linux (Debian Jessie x86_64) Build Fails

I followed the instructions in the file CompileOnLinux and installed the needed packages.

At first the compile failed at:

In file included from ../../JuceLibraryCode/juce_audio_devices.cpp:9:0:
../../JuceLibraryCode/modules/juce_audio_devices/juce_audio_devices.cpp:107:30: fatal error: alsa/asoundlib.h: No such file or directory
#include <alsa/asoundlib.h>
^
compilation terminated

So I did:

sudo apt-get install libasound2-dev

^^^ This probably needs to be added to the CompileOnLinux doc

Compile proceeds past this point now, but then stops again at:

Compiling juce_graphics.cpp
In file included from ../../JuceLibraryCode/juce_graphics.cpp:9:0:
../../JuceLibraryCode/modules/juce_graphics/juce_graphics.cpp:93:24: fatal error: ft2build.h: No such file or directory
#include <ft2build.h>
^
compilation terminated.

Searching http://packages.debian.org, it seems libfreetype6-dev is what is needed, but even with that installed (per the CompileOnLinux instructions), it's no joy.

I made sure to apt-get update/upgrade and try again, but it still fails.

It looks like the file moved to:

/usr/include/freetype2/ft2build.h

I tried editing JuceLibraryCode/modules/juce_graphics/juce_graphics.cpp and prepending 'freetype2/' on the include line for ft2build.h but that lead to other problems (the config/ftheader.h path wasn't right). I know just enough to know I don't know how to properly fix this, but would like to help.

Compiling prequisites on Linux (Ubuntu)

Before getting it compiled under Linux (Ubuntu for example) you have to at least install:
sudo apt-get install build-essential libxcursor-dev libx11-dev libxinerama-dev libxrandr-dev libfreetype6-dev
You may add this to some readme for linux compiling
Then it compiles and starts. I haven't however tested if everything is working as expected. At least it detects sound cards.
It throws some
JUCE Assertion failure in juce_AudioSampleBuffer.h:91
however... but maybe that's normal before having started any audio processing...

increase accuracy in reports

when the temperature has not yet settled, the frequency drifts during the creation of a report.
possible solutions:

A) decrease the number of periods in one measurement. This makes individual measurements more inaccurate but also makes the report complete faster - yielding lower temperature drift.
B) After the report has completed, measure the reference frequency again and see if it has changed. If so, ask user to repeat the measurement.

Improve range selection

The current way of selecting the ranges is easy to use but not very flexible. How can it be improved without making it tedious to use?

Add support for DC-coupled audio interfaces

Instead of using MIDI, it would be cool to be able to drive the VCO with a DC-coupled audio interface.
Problems:

  • Unknown relation between sample-value and corresponding voltage on the output.
  • Adds the need to support different voltage-to-frequency standards like 1V/Oct, 1.2V/Oct, Hz/V, etc.

MacOS Monterrey (M1) won't run

Hi, after downloading the application and granted security access to run in MacOS, I still get "The application “VCOTuner” can’t be opened.". Not sure if this is an issue on Monterrey?
Thanks

OK button in the "Audio Settings" view

When app is opened for the first time the Audio settings view is launched. When you've done the correct settings there is no obvious next step. An OK button that closes the view might help, but might be remedied in some other way as well!

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.