Connect with us

Wood for the Trees

Discussion in 'General Electronics Discussion' started by michaelmartin2758, Jul 4, 2012.

Scroll to continue with content
  1. michaelmartin2758

    michaelmartin2758

    10
    0
    Nov 25, 2010
    hi everyone

    I hope someone can help

    i'm looking for the best direction to go in to solve a problem. I am currently teaching myself electronics (so please be gentle) and have grasped things like op amp timers and things like that but at the moment can't find a solution for the following or even which way to approach it..(can't see the wood for the trees ;-( )

    I have a synthesiser dating back to the 1970's
    it is controlled by system called CV and Gate and I use a midi to CV gate convertor to control from a music sequencer package
    The control voltage ie pitch control is what i'm interested in
    synthesisers of this age are renowned for going out of tune and if i was that old i would to
    Obviously you can re calibrate the tuning but this is a long and drawn out process.
    I was thinking that rather than keep opening up the synth to recalibrate it maybe I could approach this from a different direction
    All these types of synths work on a system of one volt per octave with each note being one 12th of a volt with a range of 10V (10 octaves)
    for me it would be great to have a lot and I mean a lot :) of multi turn potentiometers to individually tune each of the notes by interrupting the control voltage input and adjust accordingly for example the note C3 might normally need 2V but because tuning / scaling of the synth might be out it might need 2.04 Volts to be in tune
    What I can't get my head round is what sort of system to use.... I have experimented with an Arduino board I can feed a voltage into the Analog input and then write a load of commands to say if you receive 1v output a PWM of this value ..if you receive 1.08v output a PWM of this value ..and then using a filter circuit change the PWM into a DC voltage. This does indeed work but the limits of the number of PWM ie 255 on the Arduino is not enough to be accurate (even if I change the Clock speed) also using PWM doesn't feel right if you Know what i mean.

    to have individual pots to adjust each control voltage I first need to split up the control voltage coming in into its component parts ...If it's 1v it goes to this part of the circuit ..If it's 1.08v it goes to this part of the circuit ....If it's 1.17v it goes to this part of the circuit etc etc (For manipulation)
    and i have no idea what sort of components to use. because most things deal with a threshold voltage..

    Hopefully this makes some kind of sense and if you got this far thanks for reading

    PS I'm not that bothered cost wise about using possibly 120 VR's
    PPS I have used this system http://www.motu.com/products/software/volta/ but find it more exhausting than retuning the synth

    thanks

    michael
     
  2. duke37

    duke37

    5,364
    769
    Jan 9, 2011
    I am not familiar with synthesisers such as this but if the synth drifts from 1V/octave to some value, slightly different, couldn't a variable gain op-amp do the job?
    If the synth drifts but the octaves are correct, then a small voltage offset would be required.

    Is it polyphonic?
     
  3. michaelmartin2758

    michaelmartin2758

    10
    0
    Nov 25, 2010
    thanks very much for the reply

    firstly the synth is monophonic so we are only dealing with one control voltage
    the way internally you tune is essentially the way you suggest there is also a secondary circuit that deals with the HFC High Frequency Compensation (the higher notes) ...once a synth is out not even octaves make sense.
    I was just wondering if there was a way to split up an incoming voltage that changes but ".If it's 1v it goes to this part of the circuit ..If it's 1.08v it goes to this part of the circuit ....If it's 1.17v it goes to this part of the circuit etc etc (For manipulation) "
    I was just wondering if this could be achieved without using an A to D D to A convertor
    Or if not can anyone suggest something similar to the Arduino (I find it easy to program) which instead of giving out a PWM gives out a true DC voltage

    Thanks again
     
    Last edited: Jul 5, 2012
  4. KrisBlueNZ

    KrisBlueNZ Sadly passed away in 2015

    8,393
    1,271
    Nov 28, 2011
    Hi Michael,
    Thanks for your thorough description of the problem.

    I think you will need a microcontroller such as the Arduino, driving a DAC with a fairly high resolution to do what you want. You're right that an 8-bit PWM is not going to be workable, both because of the low resolution and because of the averaging delay. Assuming you want to support the full ten octave range, each semitone will be 1/120th of the full span. A 12-bit DAC gives you 4096 discrete output voltages, so you would be able to resolve to about 1/34th of a semitone, which seems pretty good to me.

    As for tuning, you could detect the actual output frequency of the oscillator by capturing transitions on the square wave output with a timer in the microcontroller. If the timer resolves to, say, 10 MHz, then even on a high note of say 5 kHz with a cycle time of 200 microseconds, the timer will resolve to 1/2000 of the cycle time, which will give you an accurate frequency figure. You could either do this on every note as it's played, or run through a tune-up procedure at the start.

    The frequency you get from the oscillator will not be clean and stable, though. It will vary due to drift from heating, it will probably drift during the time the note is held down, and it may drift due to interaction with settings on the synth that will affect the supply voltage, and it will probably have some noise and hum on it. That means that different cycles of the frequency will not have exactly the same duration. Some kind of averaging will be needed. This project would require a lot of time and experimentation. You'll need to meet some stringent requirements for accurate real-time control. How much free time do you have? :)

    I have some other questions and comments. Please have a think and get back to me.

    What kind of synth is it? I have some experience with Minimoogs which use the same control system. Just out of interest.

    The tuning vagueness of old analog synths is a big part of their "charm" (to aficionados, at least). Are you sure you want to defeat this distinctive (you could maybe even say defining) characteristic?

    Does your synth have multiple oscillators? The Minimoog has three, and they can be tuned independently from each other in any intervals, including octaves, fifths etc.

    Since you're going to use a microcontroller of some kind, you might want to include MIDI reception and decoding in your device, rather than using a separate MIDI receiver feeding an ADC connected to your micro to get the pitch value. You could add that feature later.

    Do you want to support glissando? Your MIDI receiver probably already does, and can probably sweep its pitch output smoothly over a range that includes frequencies in between keyboard notes. It would be pretty difficult for your logic to detect and respond to a glissando signal coming from your MIDI interface and apply tuning correction to it! If you later implement MIDI decoding in your device, it might be practical to do this.
     
  5. michaelmartin2758

    michaelmartin2758

    10
    0
    Nov 25, 2010
    hi
    thanks KrisBlueNZ for the advice. you guys are great

    I have spent some time reading up on DAC's for the Arduino. Obviously I'm still on the bottom run of the ladder with knowledge but actually most of what you said actually made sense. (a few months ago I thought an Ohm was something Buddhist chanted while meditating ) i'm going to try this connected to the Arduino http://www.shaduzlabs.com/article-12.html. Only cos it looked pretty easy to hook up and i got the jist of the code I presume 16bit is ok....The synth i'm using to try this on is the Moog Source. It's a real bugger to open up and recalibrate especially at the high end. but I actually got a few different synths to experiment on

    As for the "Moog Sound" thats another story ......How much time do you have .....(filter ..oscillator . filter ..oscillator .filter ..oscillator .) ;-)

    Anyway one step at a time .. even though experiments with auto tune . midi .....sound exciting.......

    I'm still wondering is it possible to split up a cv voltage without using a/d d/a

    quote
    I was just wondering if there was a way to split up an incoming voltage that changes but ".If it's 1v it goes to this part of the circuit ..If it's 1.08v it goes to this part of the circuit ....If it's 1.17v it goes to this part of the circuit etc etc (For manipulation) "

    anyway thanks for the moment

    michael
     
  6. CocaCola

    CocaCola

    3,635
    5
    Apr 7, 2012
    FYI this is a limit to the Arduinio compilers PWM statement, the chip can do better if you tap the timer(s) directly... I'm not an AVR guy so I can't give specifics in that regard though...
     
  7. KrisBlueNZ

    KrisBlueNZ Sadly passed away in 2015

    8,393
    1,271
    Nov 28, 2011
    Good, the "one step at a time" approach is a good idea. Get a feel for what's possible, and see where that takes you.

    The design you pointed to looks OK, although 12 bits would be enough (that design uses a 16-bit DAC), but I would use a much better op-amp for the output buffer. The LM358's input offset voltage can be several millivolts and isn't well controlled. It's really only designed for audio signal applications and it isn't even much good for that! I've used the Texas Instruments TLE2022 before with good results, and it's a drop-in equivalent. Digikey will have it I'm sure.

    I don't think there's any workable way to do what you want without using at least one DAC at the output. If you use your MIDI box to provide the input to your device, you'll also need an ADC to acquire its output voltage. You mentioned having 120 trimpots to adjust all the notes individually. This doesn't sound feasible, especially because the synth oscillator will drift in real time due to heating and other less predictable effects.
     
  8. michaelmartin2758

    michaelmartin2758

    10
    0
    Nov 25, 2010
    hi

    just wanted to say thanks to everyone for their advice....
    sorry for the late reply have been busy
    have now got a 16bit dac strapped to an arduino..with amplification and buffering etc etc
    .got midi working
    problem solved i'll give it a 90%
    just fine tuning the program for the arduino........(whatever happened to basic as a language ...i liked basic ;-)

    thanks again
     
  9. CocaCola

    CocaCola

    3,635
    5
    Apr 7, 2012
    Basic is alive and well, just not as popular as C
     
  10. KrisBlueNZ

    KrisBlueNZ Sadly passed away in 2015

    8,393
    1,271
    Nov 28, 2011
    That's brilliant! You're very resourceful.

    I (and I expect many others here) would be interested to see your hardware design, and maybe a flowchart or brief firmware description, once you've got something you can show us.
     
Ask a Question
Want to reply to this thread or ask your own question?
You'll need to choose a username for the site, which only take a couple of moments (here). After that, you can post your question and our members will help you out.
Electronics Point Logo
Continue to site
Quote of the day

-