Introduction: Digital Synth VRA8-X for Arduino Uno

Made by ISGK Instruments

Concept

  • Experimental Synthesizer for Arduino Uno

Features

  • 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

Notes

  • Exhibited in HAMAMATSU MUSICAL INSTRUMENT FESTIVAL (2015)

Step 1: Wiring

Required Hardware

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

Wiring

  • 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.

Comments

author
zcarlos (author)2015-11-29

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?

P51129-110155.jpg
author
risgk (author)zcarlos2015-11-29

Hello zcarlos. Thank you for loading!

Yes, the sketch is really running in my Arduino Uno R3. This is the sound:
https://soundcloud.com/risgk/digital-synth-vra8-x-100-demo

The VRA8-X audio engine is similar to that of VRA8-M:
https://www.instructables.com/id/Digital-Synth-VRA8-M-for-Arduino-Uno/

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

I use Arduino IDE 1.6.5 and 1.6.6.

author
zcarlos (author)risgk2015-12-03

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.

author
risgk (author)zcarlos2015-12-03

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

About This Instructable

1,561views

18favorites

License:

More by risgk:Digital Synth VRA8-Px for Arduino UnoDigital Synth VRA8-P for Arduino UnoDigital Synth VRA8-X for Arduino Uno
Add instructable to: