Learn how to make your own old-school 1V/octave synthesizer.

Today’s music is mostly made using computer software to master tracks, add instrumentals, mix songs, manipulate sounds and much more— but how do they use to make music?

Music used to be done entirely with REAL instruments such as guitars and pianos but synthetic sounds have made their mark on the musical scene, as well. A great band to look at for an example is Kraftwerk, which in the 1970s used synthesizers to create all their sounds from the aggressive sawtooths to the gentle beep and boop of a computer.

These synthesizers (unlike most ones you will find today) were all analogue which means that, instead of relying on software and processors, the sound generation was done by manipulating electrical signals against time.

How does an old fashion synthesizer work? This series of projects will show how all the different parts in a synthesizer work and how to build your own modules.

In this project, we will be building the heart of the synthesizer, the VCO (voltage-controlled oscillator), which takes in analogue voltages and generates the raw sounds ready to be further processed by filters, modulators, ADSR modules, and step sequences.


Minimoog Model D synthesizer

A Minimoog Model D synthesizer (the kind used by Kraftwerk from the 70s to 1981). Image courtesy of Moog


Synthesizer Type and Music Theory

The synthesizer that we will be designing was extremely common back in the day. It's known as a 1V/Octave synthesizer. This means that for every 1V increase on the input, the output frequency will go up by one octave (i.e., by a factor of 2).

Now for this module to work correctly, it needs an exponential converter on the input. This converter will take a linear voltage in and produce an exponential voltage which is fed into the VCO. Why do we need an exponential converter? The answer is in the nature of human hearing and music theory!

If you take a piano and play the middle A note (A4), it makes a specific tone which has a frequency of 440Hz. If you now play the A note to the right of this one (12 notes up, A5) the note sounds the same except higher pitch and has a frequency of 880Hz. (The lower note is a harmonic of the upper note which is why they sound OK when played together). Now, if you play the next A note to the right (A6), the note sounds higher pitched than the previous A note; it has a frequency of 1760Hz.

Any two same notes that are separated by 12 keys is called an octave. For any two keys that are an octave apart, the upper key will have a frequency twice that of the first. The reason for this is because by nature human hearing is logarithmic. This means that for something to sound twice as loud, its amplitude (or frequency in the pitch realm) needs to go up by a factor of two.

If, for example, we increase the frequency of a waveform from 1Hz to 2Hz, that would be considered an octave apart according to the human ear. But increasing a waveform frequency from 440Hz to 441Hz does not result in an octave change. In fact, the human ear would not be able to distinguish between these two frequencies because the human ear is good at relative changes as opposed to absolute changes.

So with all that complicated theory out of the way, we need to find a method to take in a linear voltage source (1V Octave Keyboard) and convert it into a voltage source that produces exponential voltages. To do this we will use a component that has inherent exponential qualities, the bipolar junction transistor or BJT.


The Exponential Converter

So we need a circuit to take in a linear voltage from the keyboard/controllers and produce an exponential voltage which doubles in value for every octave.

Since our VCO is operating on a single supply 5V rail, the output of the converter needs to be between 0V and 5V. With a 5V input range, that gives the possibility of a 5-octave keyboard with a total of 60 keys.

The table below shows the input voltage from the keyboard and the required output voltage from the converter.


Key  Key # 1v Octave V Expo Output Frequency
C0 1 0.0833 0.1655 65.4078
C#0 2 0.1667 0.1754 69.2971
D0 3 0.2500 0.1858 73.4177
D#0 4 0.3333 0.1969 77.7834
E0 5 0.4167 0.2086 82.4086
F0 6 0.5000 0.2210 87.3089
F#0 7 0.5833 0.2341 92.5005
G0 8 0.6667 0.2480 98.0009
G#0 9 0.7500 0.2628 103.8284
A0 10 0.8333 0.2784 110.0023
A#0 11 0.9167 0.2950 116.5434
B0 12 1.0000 0.3125 123.4734
C1 13 1.0833 0.3311 130.8155
C#1 14 1.1667 0.3508 138.5942
D1 15 1.2500 0.3716 146.8355
D#1 16 1.3333 0.3937 155.5668
E1 17 1.4167 0.4171 164.8172
F1 18 1.5000 0.4419 174.6178
F#1 19 1.5833 0.4682 185.0011
G1 20 1.6667 0.4961 196.0018
G#1 21 1.7500 0.5256 207.6567
A1 22 1.8333 0.5568 220.0046
A#1 23 1.9167 0.5899 233.0868
B1 24 2.0000 0.6250 246.9468
C2 25 2.0833 0.6622 261.6311
C#2 26 2.1667 0.7015 277.1885
D2 27 2.2500 0.7433 293.6709
D#2 28 2.3333 0.7875 311.1335
E2 29 2.4167 0.8343 329.6345
F2 30 2.5000 0.8839 349.2356
F#2 31 2.5833 0.9364 370.0022
G2 32 2.6667 0.9921 392.0037
G#2 33 2.7500 1.0511 415.3134
A2 34 2.8333 1.1136 440.0092
A#2 35 2.9167 1.1798 466.1736
B2 36 3.0000 1.2500 493.8937
C3 37 3.0833 1.3243 523.2621
C#3 38 3.1667 1.4031 554.3769
D3 39 3.2500 1.4865 587.3419
D#3 40 3.3333 1.5749 622.2670
E3 41 3.4167 1.6685 659.2690
F3 42 3.5000 1.7678 698.4711
F#3 43 3.5833 1.8729 740.0044
G3 44 3.6667 1.9843 784.0073
G#3 45 3.7500 2.1022 830.6268
A3 46 3.8333 2.2272 880.0185
A#3 47 3.9167 2.3597 932.3471
B3 48 4.0000 2.5000 987.7874
C4 49 4.0833 2.6487 1046.5242
C#4 50 4.1667 2.8062 1108.7538
D4 51 4.2500 2.9730 1174.6838
D#4 52 4.3333 3.1498 1244.5341
E4 53 4.4167 3.3371 1318.5379
F4 54 4.5000 3.5355 1396.9423
F#4 55 4.5833 3.7458 1480.0088
G4 56 4.6667 3.9685 1568.0147
G#4 57 4.7500 4.2045 1661.2537
A4 58 4.8333 4.4545 1760.0370
A#4 59 4.9167 4.7194 1864.6942
B4 60 5.0000 5.0000 1975.5747



Exponetial Graph


The component that will be used for its exponential properties is the BJT. Most will be familiar with the equation that relates the base current to the collector current but this relationship is linear.

The equation that relates the base-emitter voltage to the collector current is exponential:




  • Ic - Collector current
  • Is - Saturation current
  • q - Electron charge
  • Vbe - Base-emitter voltage
  • k - Boltzmann Constant
  • T - Temperature (in kelvin)


Luckily for us, there are clever people who have already done the hard mathematics (see here for the math) and the circuit design.

Below is the complete exponential converter that will be used in our VCO engine to convert the input linear voltage into an exponential voltage (where the voltage output doubles for every 1V increase in the input).


Exponential Circuit

Click to enlarge.


In the schematic, shown above, there are three different inputs feeding into U1B. You can add additional 100K resistors for more inputs but typically three should be enough.

  • KEY - This is the input from the 1V Octave Keyboard
  • TUNE - This is connected to a trimmer which can be used to make small adjustments to the output frequency (by adding a small amount of voltage)
  • LFO - Low-Frequency Oscillator - This can be used to add effects such as UFOs, police sirens or even arpeggios


Here is a simple explanation of how this circuit works:

  • U1B is used to both sum the individual inputs (KEY, TUNE and LFO) and scale the input voltage such that 1V in produces -18mV on the output (note that it’s an inverting configuration).
  • Q1 and Q2 form a differential pair.
  • U2B is used to maintain constant current through Q1. Changes in Q1’s base voltage lead to corresponding changes in Q2’s base-to-emitter voltage and, consequently, exponential changes in Q2’s collector current.
  • U1A is a current-to-voltage converter (R1 and RV1 are chosen so that when the input voltage is 5V, the output voltage is also 5V).



Now it’s time to actually create an oscillator that is controlled via a voltage source.

To do this, we will use a very common layout shown below:


VCO Layout

Click to enlarge.


This oscillator has four sections:

  • Integrator (U3A)
  • Inverting Schmitt trigger (U3B)
  • Reset circuit (Q3)
  • Buffers (U4A and U4B)


Integrator (U3A)

The integrator's output will do two things depending on the state of Q3 (and the presence of an input voltage at VEXPO) :

  • If Q3 is off then C2 will charge and therefore the integrator output will fall gradually.
  • If Q3 is on then C2 will discharge and therefore the integrator output will rise gradually.
  • The rate at which the output falls or rises is determined by C2, R7, R9, R10, R11 and the input voltage VEXPO.
  • The larger VEXPO is, the quicker C2 charges.


Schmitt Trigger (U3B)

The Schmitt trigger will do two things depending on the output of the integrator:

  • If the integrator output crosses the upper threshold, the Schmitt trigger output will be 0V.
  • If the integrator output crosses the lower threshold, the Schmitt trigger output will be 5V.


Reset Circuit (Q3)

The reset circuit Q3 will do two things depending on the output of the Schmitt trigger:

  • If the trigger's output is high (5V) then Q3 will be on.
  • If the trigger's output is low (0V) then Q3 will be off.


How It Oscillates

The circuit oscillates in the pattern listed below:

  1. Q3 is on and so the integrator's output rises.
  2. The integrator's output eventually crosses the Schmitt trigger's upper threshold.
  3. The Schmitt trigger's output now switches to 0V.
  4. Q3 is now off and so the integrator's output begins to fall.
  5. The integrator's output eventually falls below the Schmitt trigger's lower threshold.
  6. The Schmitt trigger's output now switches to 5V.
  7. Q3 now turns on (so go back to step 1).


Bill Of Materials

Component Quantity Reference
LM358 4 U1, U2, U3, U4
1M Resistor 1 R2
100K Resistor 8 R3, R4, R5, R8, R12, R14, R15
56K Resistor 4 R9, R10, R11, R13
22K Resistor 1 R1
10K Linear Potentiometer 2 RV1, RV2
1K Resistor 1 R6
1nF Capacitor 1 C1
4nF Capacitor (value is approximate; adjust as needed) 1 C2
BC548 (with matched hFE) 2 Q1, Q2
BC548 1 Q3
100nF Capacitor 6 This is for decoupling power lines so use near each IC
100K Potentiometer 1 Only for testing with the synth KEY input



It is advised that you first construct the synth module on a solderless breadboard just in case the circuit does not work. Once you are confident that it functions, you can either build it onto stripboard or fabricate a PCB.

Try to construct one section and get it functioning before building the next stage. This is so that you can be sure that this portion of the circuit works!

When constructing, there are two things to keep in mind:

  • Make sure that Q1 and Q2 have close hFE values (within 10 of each other). The best method is to buy a cheap bag of 100 transistors for a few dollars and use a multimeter that can measure hFE.
  • Q1 and Q2 must be thermally bonded with each other. You can do this by hot gluing the two together so that the thermal change in one mirrors the thermal change in the other.


My stripboard setup

My stripboard setup.


My stripboard setup 2


Using the VCO

You may have noticed that the circuit has both a positive and a negative supply voltage. This circuit requires a dual power supply to function correctly (it requires 5V, 0V, and at least -5V on the negative rail). Luckily for us, this circuit works very well using the negative voltage generator project, so make sure to build that first! You can also use two batteries in series to get a split supply and use the middle connection as ground.

Here is a possible circuit that you can use to power the VCO:


Use to power the VCO


Note that only the VCC rail needs regulating to 5V because this will determine the saturation points for the VCO as well as influence the output frequency. The negative rail is used only in the exponential converter circuit, and during normal use the opamp outputs in that circuit will not be driven to the supply rails.


Testing the VCO

To test the VCO, you will need to provide input voltages to the summing stage U1B. You can either use a potentiometer to supply a variable voltage between 0V and 5V or you could use the output of an oscillator or a 1V octave keyboard if you have one. The video shown in this project uses a potentiometer connected across VCC and 0V with the varying output voltage connected to the summing stage.

In the video shown below, you will see that the VCO is connected to a potentiometer and a second VCO. The second VCO produces low-frequency oscillations (LFO) that can be used to wobble the pitch for many interesting effects. You will also notice that placing a finger on either Q1 or Q2 will result in a change of output frequency and can be exploited to make even more interesting effects! Also, note that I used a DC-blocking capacitor to remove the DC offset in the signal sent to the speaker.


Project Files

All the project files are included here and you are completely free to do as you see fit with them! 

In the .zip file below, you'll find:

  • Excel table of the voltages
  • KiCad project files
  • LTSpice simulation
  • PDF version of the VCO core


  DIY Synthesizer Project Files  

Give this project a try for yourself! Get the BOM.




  • AEKron 2016-08-15

    I built a PAIA road synth kit when I was a kid. It had two VCOs among other things.

  • Ackleberry 2016-09-29

    Can someone explain to me how the exponential output column in the table was calculated?


    • Ackleberry 2016-09-29

      I mainly just need this equation explained… Vexpo=(5/32)*2^(C3)*395.1149425

      • Robin Mitchell 2016-10-13

        Once I remember what I had done I will let you know!
        I remember calculating the required voltage and needed a formula that would double the frequency for an increase of 1V into the input.

        • pfeuh 2017-09-20

          I suppose it is root 12th of 2 (racine douzième de 2, I’m not so good in english…) used in guitar neck calculation. Approximated value is 1.059463 Take a frequency, the next half tone will be frequency * 1.059463. Do this 12 times and your frequency frequency will be first frequency * 2

  • cesar 2016-10-11

    Awesome tutorial!
    Will this exponential conversion circuit be enough for a complete synthesizer with multiple VCOs, envelope generators, VCF and VCA?  Does each VCO require an exponential converter circuit?  Does the VCF and VCA each require its own exponential converter?

    • Robin Mitchell 2016-10-13

      This circuit will produce the square and triangular waveform needed for a basic synth. On its own it could be connected to a 1V Octave keyboard and produce music.

      This circuit does not contain any other form of control as it would need to be attached to such modules like a VCA or VCF. Each VCO unit requires its own exponential converter as each exponential converter can only take one input from a keyboard.

  • johey 2016-12-29

    Can you change the pulse with of the square wave?

  • Robyn 2016-12-30

    Hi, thank you for this wonderful tutorial. Just what I’ve been looking for!
    I have a question regarding the power supply though. In the case that one uses two 9V batteries the positive supply will be regulated at 5V and the negative at -9V. I understand that this doesn’t influence the oscillator itself but isn’t the assymmetry going to shift down the output frequency range? Also, I have always heard that analog circuits didn’t mix well with switching supplies but the negative rail generator project you provide a link to is one of those. Does it not affect the performance of the Expo/VCO too much?
    Thank you for your time and knowledge.

    • Robyn 2016-12-30

      Edit: I mean shift down the output CV range*

  • Alex Smith 2 2017-01-07

    Fantastic Article, thanks! Any ETA on Series2? Can’t wait smile

  • JohanEricson 2017-08-31

    This is really nice! Looking forward to building this and to part two! Awesome job!

  • CrazyKeks 2017-09-12

    I’ve built this VCO, but have a problem at VEXPO:
    Even if RV1 open, I have about 3,76V at the out, when KEY in range between 3,76 and 5V.

    What should I do? Thanks anyway!

  • Ok,I’m confused. when Q3 is off where the capacitor discharges exactly? (Since there is no current going into U3B and no current flows through R11)

    • echo-e 2018-07-14

      I find that it helps to imagine the circuit behaviour from time t = 0, with a couple of assumptions: Q3 is initially off, C2 is initially discharged so the voltage across it Vc(0) = 0V, and U3A is always in linear negative feedback, so Vin- = Vin+ (virtual null) and the current into U3A, Iin- = Iin+ ~= 0.

      The positive “reference” input to U3A is a simple divider formed by R9 and R10 with Vin+ = Vexpo/2. So in the first instant of time, given the assumptions above, Vin- = Vin+ = Vexpo/2, and since Vc = 0, Vout = Vin- = Vexpo/2. However, this creates a voltage difference across R7 of Vr7 = Vexpo - Vexpo/2 and therefore a current through resistor R7 of Ir7 = (Vexpo - Vexpo/2) / 100k = (Vexpo/2) / 100k.

      Where is this current going? Since Q3 is off and U3A is in negative feedback, there is no current going through Q3 or into U3A. The current must be going into the capacitor. This current charges C2, with positive charge collecting on the left hand side of the cap. This creates a voltage differential across the capacitor. Since we are still assuming the op-amp is in negative feedback, Vin- stays fixed at Vin- = Vin+ = Vexpo/2 and the voltage difference building across the capacitor is compensated by the op-amp by driving its output voltage lower.

      At some point the output voltage falls below a threshold that causes Q3 to switch on. This essentially connects R11 to ground, creating a new current path from the Vin- node. We maintain our assumption that U3A is in feedback, so despite the sudden addition of a new current path, the current into U3A is still 0 and Vin- is still Vin- = Vin+ = Vexpo/2. This allows us to directly calculate the current through R11 as Vr11 = (Vexpo/2) / 56k. All of the currents in and out of the Vin- node sum to 0 (Kirchhoff’s current law), and we can see that the current into the node through R7, Ir7 = (Vexpo/2) / 100k is less than the current leaving the node through R11.

      Where is the additional current coming from? It is coming out of the capacitor, C2. The charge stored on the left hand side of C2 while Q3 was off is now driven out of the capacitor as current flowing into the Vin- node. This current is Ir11 - Ir7 = [(Vexpo/2) / 56k] - [(Vexpo/2) /100k] = Vexpo/2 * ( 1/56k - 1/100k ) ~= Vexpo/2 * 7.86uA. As the capacitor discharges, the voltage differential across it decreases. Since the op-amp maintains the negative feedback condition, its output must rise to compensate for the decreasing voltage across C2.

      Ultimately we reach another threshold where Q3 is switched off and the cycle repeats.

  • Jack Tranckle 2018-01-05

    How did get the exponential voltages from the linear? Im guessing that Im missing something, thanks!

    • RK37 2018-01-08

      The linear-to-exponential conversion is accomplished by taking advantage of the inherent properties of a bipolar junction transistor: the collector current has an exponential dependence on the base-to-emitter voltage, so linear changes in base-to-emitter voltage lead to exponential changes in the collector current. Collector current is then converted to a voltage by the U1A circuit.

      • Jack Tranckle 2018-03-08

        Sorry I meant how were the exponential voltage values calculated that can seen in the table ?? The landlord near voltage is easy to obtain and the frequency but What is the equation for the exponential voltage ??

      • Jack Tranckle 2018-03-08

        Sorry I meant how were the exponential voltage values calculated that can seen in the table ?? The landlord near voltage is easy to obtain and the frequency but What is the equation for the exponential voltage ??

  • Jack Tranckle 2018-03-08

    Could someone please do an explanation of how the 1st, 2nd, 3rd expo voltages are obtained through calculation? given that the input linear voltage and frequency is given

  • Sidney Bruneder 2018-03-28

    When is part two coming? I’m loving this.

  • diskogoth 2018-04-10

    Hello Robin. I’m kindly grateful you for this article. It became my entry point for my interest in modular.
    I built this scheme on breadboard but i encountered some blockers that stops me. Can you please help me resolve this.

    First problem, that exponential converter outputs ~3.4 volts max. I can adjust RV1 so 0 to 5v input range are fully converted to 0 to 3.4v exponential range and 3.4v on the output is when 5v on the input, but this seems to be not right and input change in 1v not being 1 octave change. The difference in circuit i build is first of all i’m using LM7905 to generate negative voltage and second, i’m using two 324 quad op amp ic instead of four 358, that what i had and seems to be the same.

    Second question is not this circuit specific, but more 1v/oct connectivity. I have arturia beat step pro, that have 1v/oct cv on the output. Connecting it to oscilloscope showed that difference from lowest to highest note is 800mv despite the fact that this needs to be 10v in manual. So what do i’m doing wrong and whats the proper way to connect arturia’s cv out and this circuit?

    Sorry if my questions may be silly, i’m started electronics as a hobby only two month ago. But i really interested to resolve this problems and open my way to modular synth.

    Thank you in advance.

    • Thiago Ennes 2018-04-22

      i got the same problem. and someone else in the comments as well. i got 3.71 no matter what i do. i guess there is something missing in the schematic.

      • clionel 2018-10-21

        I got this, too, although it is 4.25V volts for me. Just an idea, but usually OP amps can only output a certain amount of its supply voltage. So in this case, using 5V as supply voltage, the OP amp cannot output full 5V, but only the values you got. Switching to a higher supply voltage, if possible for your OP amp, at least on this one, might help.

        I use TL072 op amps by the way, maybe that is why I got a higher output voltage. In the datasheet, the value is often referred to as output voltage swing or similar. For the TL072 and +15V supply, it is 13.5V, and it will be similar beneath 5V.

  • Alex F 1 2018-05-21

    Do you have suggestions for fine-tuning the 1v/octave tracking? (Are there logical places for additional trim pots?)

  • Dio “Mers” Cane 2018-06-07

    Hi, I have build two VCO one on breadboard and one on PCB but they doesn’t work. I have checked the alimentation and it was ok either the voltage reference. I also have try to add a negative supply rail but it still doesn’t work. In my circuit I have put a 1.2nF capacitor. Can someone give me some tips?

  • reece 2018-07-11

    How would you add a saw wave (Ramp wave)function to this so you could have square, triangle, and saw?

  • Kristian Blåsol 2018-11-29

    I have built this as one module in my modular (in a week). https://www.youtube.com/watch?v=b66r0yfY1fE I also did some modifications to it to make it into a Voltage Controlled LFO with the help of a switch… https://www.youtube.com/watch?v=0Xi35VzSYao.
    Thanks for the good article helped me a lot!

  • marockaspark 2018-12-14

    Great article! There is just this one thing, I can’t seem to find the Part 2 of this project. Does it even exist?