Skip to content

gilesp1729/midi-sound-library

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

38 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Arduino MIDI Sound Library

This is a fork of Arduino MIDI Sound Module with the following changes:

  • MIDI messages are not being received on the USART. The underlying routines for starting notes, etc. are exposed so that calling programs may call them directly. They still follow the MIDI functions closely. A sample test program is provided.
  • Arduino routines like Serial are available for use. Timer 0 is still used for PWM output so delay(), millis() etc. may not work as expected. Alternatives are made available.
  • Support for the display has been removed to free up pins. Runs on Uno and Mega2560.

Future work (piano-specific enhancements)

  • Stereo effects across the length of the keyboard. The output circuit (described below) may be split so voices 0-7 go to the left channel, and voices 8-15 to the right.
  • Pedal controls to modify enevelope and volume (soft peal, sostenuto, sustain)

--------------------------------------------------------

Arduino MIDI Sound Module

Turn your Arduino Uno into a 16-voice wavetable synthesizer/MIDI sound generator.

Image

General MIDI Subset

Implements the most commonly used features of the General MIDI 1.0 standard, including:

  • 128 standard instruments
  • 45 percussion instruments
  • 16 note polyphony with key velocity
  • Note on/off, program change, pitch bend, channel volume, all notes and all sounds off.

Demo

Arduino - Imperial March (Video)

Synth Engine

  • 16 voices sampled & mixed in real-time at ~20kHz
  • Wavetable and white noise sources
  • Amplitude, frequency, and wavetable offset modulated by envelope generators
  • Additional volume control per voice (used for channel volume and key velocity)
  • Documented C++ code builds in Arduino IDE or Atmel Studio 6.0

Hardware

Schematic

Useful Tools

Resources

About

Turn your Arduino Uno into a 16-voice MIDI sound synthesizer (library version)

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C 79.1%
  • C++ 20.9%