Hallo,
wie ich im Beitrag: Standalone Arduino/FTDI Basic/Optokoppler - Deutsch - Arduino Forum
schon erwähnt habe, plane bzw. experimentiere ich mit einem Arduino gesteuerten Analogsynthesizer.
Eckdaten des Projektes: (mittlerweile abgespeckt, sonst wird es nie fertig)
Analogteil:
- 2 VCO´s (ICL8038 basierend)
- 2x VCF (einmal Multimode HP/BP/LP) und einmal 4-Pole LP (Herzstück: SSM2164 bzw. V2164)
- VCA: auch auf V2164 basierend
Digitalteil:
Midi/CV Converter (mittels MCP4922 DAC´s):
- Pitch (für beide VCO´s getrennt)
- Balance VCO1 zu VCO2
- VCF Cutoff (möglicherweise Resonance)
- VCA
- div Zusätze (Modulatoren, wie VCO1 Out -> VCO2 In (FM)) usw..
analoge Matrixsteuerung (mittels mehreren CMOS 4054 und 4066, über Shiftregister gesteuert)
- Schalten der analogen Wellenformen der VCO`s (sin,tri,pulse,saw)
- Zuschalten vom Sub-OSC
- Wählen der/des Filterboards
- Wahl des Filtertyps
digital generiert:
- ADSR Hüllkurven (Pitch, VCF, VCA) können ruhig linear sein, da die exp-Wandlung die Hardware übernimmt
- 1-2 LFO´s, die dann digital geroutet werden können (z.B. LFO1 mit Faktor xy zu VCO1 Pitch DAC-Out)
Um die Last zu verteilen, plane mindestens 2 ATmega328 zu verbauen:
1x als reiner Midicontroller (Display, Potis, Buttons, Led´s, Arpeggiator (Zukunft), Patchspeicher, EEprom) - hatte schon ein ähnliches Projekt gebaut, d.h. macht mir keine Kopfschmerzen
1x als Midi-CV-Interface (DAC´s, Switches, ADSR, LFO)
beide 328er werden über das MIDI Protokoll gesteuert (hat den Vorteil, dass ich den reinen Controller erst viel später bauen kann und das CV-Interface zunächst mit einem Standardmidicontroller bzw. Software steuern kann).
Meine Frage ist nur, ob das CV-Interface die Rechnenleistung schafft, es muss ja folgendes können:
Midi Noten + Velocity
Controllerdaten auf die DAC´s verteilen
ADSR auf die DAC´s
Switching (da ist mir das Timing egal, da dies nicht unbedingt während des Spielbetriebs funktionieren muss)
LFO...und der bereitet mir Kopfzerbrechen, ob der 328er mit der Rechenleistung klar kommt (würde ich über Timer1 oder Timer2 steuern und höchstens bis auf 500-1000Hz laufen lassen). Ausgangscode für den LFO hätte ich mir dieses Projekt gedacht: http://interface.khm.de/index.php/lab/experiments/arduino-dds-sinewave-generator/
Was meint ihr dazu?
Danke u.
LG
Matthias