Skip to content

rodv92/synth1

main
Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
 
 
doc
 
 
 
 
lib
 
 
src
 
 
 
 
 
 
 
 
 
 

synth1

Project philosophy :

Arduino Due driven dual XR-2206 MIDI Analog Synthesizer Projected to use modular approach based on standard eurorack for housing instead of a monolythic PCB. All control done through Digital Potentiometers driving analog components, or DACs with a selection of wavetables or custom user loadable wavetables based on math functions. All control wrapped into standard MIDI CC control.

Project Manifest and current support :

Dual XR2206 VCO With 4 DAC acting as pitch/pwm LFOs (controlling the fine frequency of oscillation of the individual suboscillators in self-keying mode) Coarse frequency control is achieved thru 2 X9C104 (100K ohms digital potentiometers) by suboscillator and a 20k trim potentiometer for base (C3 Note frequency) Fine tuning precision is projected to be remain under 2 musical cents. Frequency Range is from C3 to C7 at least for both oscillators. Total fine tuning range is fixed at +/- 225 Hz around coarse note frequency.

Uses Arduino MIDI USB library. Uses MCP23017 GPIO expander. Uses AD333 and a 4 channel XOR gate for control signal routing (tri/saw or square output to the output stage) and hardsync. Uses an autotune helper and frequency counting based on PulseIn (to measure frequency and pulse width). 555 timer analog Attack/Decay enveloppe generator and OTA based VCA.

Projected support : Adding (short-term roadmap) FreeRTOS based task scheduling (rationale : for concurrent DAC updates to overcome potential DAC update delays causing LFO aliasing/lags artifacts and general real-time responsiveness). Additional 4 general purpose DAC based LFOs/ADSR Digital control 4pole LP,BP,HP filters (one per XR2206). Mixing stage of both oscillators post-filter. WaveShapping from sine to triangle based on vactrol control. (resistive opto-isolator) using XR-2206 waveshapping pins. THD/Symmetry control based on vactrol control. (using XR-2206 symmetry adjust pins) AM/vibrato/Gate control using XR2206 native AM pin Diode/transformer based RINGMOD.

Files :

src/synth1.cpp (Main Arduino firmware file) src/synth1-dds.cpp.bak (DAC DDS driven by secondary arduino) : DEPRECATED src/tune.py (Python helper script for tuning performance measurement and individual notes WAV export) lib/* (Additional Arduino libraries) doc/ (In-depth electronic aspect of project R&D)

For the PCB board prototype advancement part of the project, please refer to : https://easyeda.com/rodv92/synth1

About

Arduino Mega 2560 driven XR-2206 Analog Synthesizer

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published