Digital Synth VRA8-X for Arduino Uno





Introduction: Digital Synth VRA8-X for Arduino Uno

Made by ISGK Instruments


  • Experimental Synthesizer for Arduino Uno


  • Monophonic Synthesizer (or MIDI Sound Module)
  • Serial MIDI In (38400 bps), PWM Audio Out (Pin 6), PWM Rate: 62500 Hz
  • Sampling Rate: 15625 Hz, Bit Depth: 8 bits

Demo Audio

VRA8 Series



Step 1: Wiring

Required Hardware

  • Arduino Uno
  • 3.5 mm Audio Jack (or Speaker)
  • 330 (150 or more) ohm Resistor
  • Wires


  • Audio Jack L or R (or Speaker +) ---- Resistor ---- Arduino Uno Digital Pin 6
  • Audio Jack GND (or Speaker -) ---- Arduino Uno GND Pin
  • PC ----[USB Cable]---- Arduino Uno

Additional Notes

Step 2: Software Installation

  1. Download Source code and extract it.
  2. Download Hairless MIDI<->Serial Bridge and extract it.
  3. Download loopMIDI and install it.

Step 3: Start Synthesizer

Explanation for Windows

  1. Write DigitalSynthVRA8X.ino to Arduino Uno and quit Arduino IDE.
  2. Start loopMIDI.
  3. Start hairless-midiserial.exe (Hairless MIDI<->Serial Bridge).
    • Set [File] > [Preferences] > [Baud rate] to 38400 bps.
    • Select Arduino Uno (COM*) on Serial Port.
    • Select loopMIDI Port on MIDI In.
  4. Open vra8-x-ctrl.html (VRA8-X CTRL) with Google Chrome.
    • Select loopMIDI Port on MIDI OUT.
    • Select a MIDI controller on MIDI IN (if you have it).
  5. Click (or touch) the Software Keyboard, and you can hear the sound.



    • Creative Misuse Contest

      Creative Misuse Contest
    • Water Contest

      Water Contest
    • Oil Contest

      Oil Contest

    4 Discussions

    Hi Risgk. I've loaded this sketch onto my vra8-m system (arduino leonardo + atmega328 shield) but I get no sound. Is this code actually running?

    3 replies

    Hello zcarlos. Thank you for loading!

    Yes, the sketch is really running in my Arduino Uno R3. This is the sound:

    The VRA8-X audio engine is similar to that of VRA8-M:

    I'm sorry. I do not know the cause...

    I use Arduino IDE 1.6.5 and 1.6.6.

    Hola Risgk.

    I'm sorry. My apologies. I didn't remember that I changed timer0 to timer2 in vra8-m so output pin was 11 instead of 6. It was driving me crazy.

    So I've changed also in vra8-x and now it runs amazing. Superb!!!

    Thank you very much.

    Hello zcarlos. You're welcome. I was relieved.