The MIDI Synthesizer gives the possibility to connect your Paper Bits to any Midi Keyboard, such as the MIDI Keyboard. It is polyphonic up to six notes and has four different waveforms: square, triangle, saw tooth and sine.
It's basically an Arduino clone running a small program based on the wonderful Mozzi library.
First of all one needs a bootloader on the Atmega chip. For burning the bootloader follow the AVR & Bootloader manual.
For uploading the program one needs an USB to Serial adapter or an Arduino to mimic one: The Arduino as a Serial Adapter
The synthesizer program is based on the MIDI library and the Mozzi Library, have a look at the Mozzi Dokumentation to learn more about it.
The MIDI library can be installed via the library manager, for the Mozzi installation download the Mozzi library and install it like described here: https://www.arduino.cc/en/Guide/Libraries#toc4
There are three different sound quality modes for the Mozzi library. The MIDI Synth needs the HIFI mode. To change that open in …/sketchbook/libraries/Mozzi_102 the mozzi_config.h file and comment out the AUDIO_MODE STANDARD and uncomment the AUDIO_MODE HIFI. It should look like that:
//#define AUDIO_MODE STANDARD //#define AUDIO_MODE STANDARD_PLUS #define AUDIO_MODE HIFI
then save the file.
Unfortunately the latest version of Arduino is responsible for a timing glitch in the Mozzi library. Arduino changed the compiler from O2 to Os. Now the uploaded code is smaller but a timing problem appears, too. Here is an description about the problem here:
https://www.instructables.com/id/Arduino-IDE-16x-compiler-optimisations-faster-code/
To fix the glitch one has to downgrade the compiler. Change in: arduino-x.x.x\hardware\arduino\avr\platform.txt the compiler from -Os into -O2.
https://sensorium.github.io/Mozzi/fixes/updates/howto-for-arduino-1-dot-6-11/
Upload that code to your board (Arduino UNO):
mozzi_midi_poli_12_1sec_limit.zip
mozzi_midi_poli_10.7z
The PB702 MIDI Synthesizer was designed by Wolfgang Spahn, 2017-20.
It is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.