BASSBUDE

Tag: MIDI-CV

SDIY Zusammenfassung 2016 - Backlog wächst

Ein Problem, dass offenbar viele Bastler haben, ist ein Haufen unfertiger Projekte, der sich auftürmt, weil man immer wieder neues anfangen will, Sachen bestellt, weil man fürchtet, dass sie dann später (wenn man dafür Zeit hat) dann nicht mehr da sind, und einiges mehr.
Auch ich lerne dieses Problem nun mehr und mehr kennen: im Letzten Jahr habe ich gegen Ende des Jahres "nur" den CS80 Shruti-Filter, ein paar Yusynth Module und den crOwBX gehabt. In 2016 haben sich dazu gesellt: der Minimoog Clone, der Jasper EDP Wasp clone, ein Polivox-Filter, ein Juno 106 Chorus Clone, zwei Clap-Synthesizer und zwei abgewandelte Thomas Henry Bass++ Module.
Im Wesentlichen sind 2016 zwei Projekte beendet worden: der SDSV Clone und der Syncussion SY-1 Clone - immerhin. Nicht zu vergessen auch, dass ich mein erstes selbst designetes nützliches PCB in Aktion gebracht habe: den MIDI-Trigger Converter. Mein MIDI-CV-Converter braucht derweil noch etwas Aufmerksamkeit, bevor man ihn als nützlich bezeichnen kann. Meinem ARP-Sequencer fehlt weiterhin ein Gehäuse (das Holz ist schon längst da), aber dafür habe ich eine komplette Küche von Grund auf selbst gebaut ;-) .
Der Vorsatz für 2017 ist demzufolge das Beenden diverser Projekte: crOwBX und Minimoog Clone, sowie der Jasper EDP Wasp Clone sollten fertig werden. Vermutlich in umgekehrter Reihenfolge.
Auch die diversen Drum-Module müssten zu schaffen sein (hier fehlt vor allem noch ein 19 Zoll Frontpanel -gehäuse.
Der Filter und der Chorus stellt mich vor eine Entscheidung, die ich eigentlich nicht fällen möchte: Mein Modularsystem ist momentan ein reines Yusynth-Modularsystem und eigentlich wollte ich das nicht aufweichen, sondern wenn dann noch ein "diverses"-Kabinett zusätzlich bauen. Ich fürchte allerdings, dass das noch eine ganze Weile auf sich warten lassen wird. Insofern werden die Module vermutlich doch in das schon fertige Kabinett wandern. Auch hier fehlen allerdings Frontpanele.

crOwBX Voice Cards Minimoog Clone 01 Minimoog Clone 02 Jasper EDP Wasp Clone Juno 106 Chorus Polivox Filter Shruti CS80 Filter Drummodule HC-2 ClapSnap und Bass++ MIDI-CV-Converter für crOwBX
Backlog wächst

Erste professionell gefertigte selbst designte PCBs

Ich habe mich entschlossen, mal einen professionellen PCB-Service auszuprobieren - einfach um zu wissen, wie das geht, welchen Aufwand das mit sich bringt und ob ich dazu überhaupt fähig bin :-)
Nach einer intensiveren Suche im Internet fand ich diverse Anbieter aus allen möglichen Ländern und hier und da die Betonung, dass deutsche Fertigung die bessere Qualität gegenüber chinesischer Fertigung habe und ja auch eigentlich gar nicht mehr soooo viel teurer wäre.
Nach meinen Recherchen ist das relativ optimistisch formuliert und so habe ich keinen deutschen Anbieter gefunden, der mir auch nur ein halbwegs ähnlich gutes Angebot machen konnte, wie ich beim PCB-Service der Wahl (smart-prototyping - ein tip von einem muffwiggler-forumsmitglied) dann fand: 10 PCBs mit 10x10cm Maximalgröße für 11,90 $ oder 9,90 $ für 10 Stück 5x5cm Maximalgröße. Bei deutschen Anbietern kostet quasi jeweils 1 PCB den Preis von dort 10 Stück.
Also habe ich meinen MIDI-Trigger Converter soweit gequetscht und geschoben, dass er in die 5 cm rein passte und den MIDI-CV Converter soweit angepasst, dass nun auch die LM324er Chips direkt auf dem PCB verwendet werden können und nicht über einen kruden Adapter angeschlossen werden müssen ;-) .
Diese Designs habe ich dann aus Eagle heraus in Gerber-Files umgewandelt (gar nicht so trivial, aber smart-prototyping bietet hier alle nötigen setting-files für CAD-Programme (cam-jobs und dru-file mit den Designrules) an), mit gerbv geprüft und anschließend dort hochgeladen und bestellt.
Die Fertigung hat wenige Tage gedauert und der Versand lief mit DHL auch eigentlich sehr schnell. Was ich allerdings nicht bedacht hatte war, dass die Zollgebühren nicht wie sonst bei ausländischen Bestellungen oft schon vom Versender übernommen werden, sondern die DHL wollte das bei mir an der Wohnungstür abwickeln. Soweit so gut - die 19% des Warenwertes (irgendwas um 6 € herum) sollten kein Problem darstellen. Im Moment waren wir bei etwa 20 € PCBs, 20 € Versand und erwarteten 6 € Zoll. Insgesamt also unter 50 € für 20 PCBs. Leider wollte der DHL-Bote dann an der Tür erstens das Geld in bar haben und zweitens plötzlich statt den erwarteten 6 € einfach mal nochmal etwa 20 €. Wie ich dann später an der Hotline herausfand liegt das daran, dass die DHL eine sog. Bereitstellungsgebühr für die Zahlungsdienstleistung erhebt von 2 % des Warenwertes, mindestens aber irgendwas um die 14 €. Tolle Wolle - Danke DHL! So viel hatte ich in dem Moment nicht zur Hand und so musste ich mit dem Boten ausmachen, dass er es mir am nächsten Tag nochmal zustellt. Tolles Gefühl, wenn man so sehnsüchtig auf die ersten eigenen PCBs wartet und sie dann schon quasi zum greifen nah sind und man aber noch einen Tag warten muss. Großartig war auch noch die Ausrede, warum man nicht elektronisch zahlen konnte: Die Lesegeräte seien einfach zu oft ausgefallen, kaputt oder hätten keinen Empfang, da hat man sie einfach abgeschafft und Barzahlung zur Pflicht erhoben. Prima!
Naja - nun sind die PCBs ja da und sahen alle wunderbar aus! Klar sind es Erstlingswerke und daher hier und da noch nicht ganz so schick, wie es ginge. Beispielsweise ist der Bestückungsdruck von den Positionen her von mir etwas schlampig gearbeitet worden und ein paar Kondensatoren auf dem MIDI-Trigger Converter haben einen viel zu großen Footprint, aber rein funktional sollte alles so wie es ist funktionieren.
Einen MIDI-Trigger Converter (habe ihn MIDI Proc genannt, da er je nach Firmware natürlich auch völlig andere Dinge machen könnte - bspw. ein Clock-Divider für MIDI-Clock zur Verfügung stellen) habe ich dann auch gleich zusammen gelötet und bin mit dem Ergebnis sehr zufrieden! Die PCBs lassen sich toll löten und einen Smoketest hat das ganze Modul auch schon überstanden.

20 PCBs MIDI-Trigger, MIDI-CV MIDI-Trigger Converter professionelles PCB MIDI-Trigger Converter professionelles PCB MIDI-Trigger Converter professionelles PCB MIDI-CV Converter professionelles PCB MIDI-CV Converter professionelles PCB
Erste selbst designte PCBs professionell hergestellt

MIDI-CV Konverter LM2901 zu LM324 Adapter, Programmierung via Arduino und Kalibrierung abgeschlossen

Die nicht allzu schöne Lötarbeit wird nun komplettiert durch eine ganz besondere Art der Sockelung von ICs - ein Adaptersocket mit fliegenden Kabeln.
So sieht die Platine auch gleich viel spannender aus.
Parallel habe ich noch ein rudimentäres Kalibrierungsprogramm geschrieben, welches einfach die komplette Reihe von Oktavspannungen durch geht. Sinn war es, zu prüfen und einzustellen möglichst genau 1.00 V, 2.00 V, ... 10.00 V abzubilden. Nun ist das ziemlich gut gelungen (weicht um maximal 0.01 V nach oben oder unten ab - genauer kann ich mit meinem Voltcraft VC850 Multimeter irgendwie nicht messen: eine halbe Drehung hin und her bringt in etwa 0.005 V Unterschied in der wieder erreichten Ausgansposition. Muss es noch genauer werden, werde ich wohl lieber die Konstanten im Quelltext für die Oktaven anpassen. Die habe ich extra als Konstanten gewählt, damit ich genau solche Anpassungen noch vornehmen kann und nicht einfach den Maximalbereich durch die Anzahl an abzubildenden Noten geteilt multipliziert mit der aktuell gewählten Note als Ausgabewert nehme.
Um nicht ständig ein Breadboard herumzutragen und weil ich nicht so schlau war, einen Programmingport in meinen PCB zu integrieren, war ich nun immerhin so schlau zu überlegen, dass ja eigentlich ein Arduino was Programming und die 16 MHz anbelangt genauso beschalten ist, wie mein Atmega8 - somit war die Idee, einfach den Atmega8 in den Arduino zu stecken und den dann über die ISP Schnittstelle vom Arduino mit meinem USBtinyISP zu programmieren. Das hat hervorragend funktioniert und so werde ich mir das für zukünftige Atmega8 Projekte wohl merken - dann brauch' ich nichtmal den extra Platz auf meiner Platine für einen ISP Port zu verschwenden.
Da die Kalibrierung nun soweit abgeschlossen ist und ich davon ausgehe, dass die restliche Schaltung funktioniert wie auf dem Breadboard (mutig - mal gucken, ob sich das aus- oder heimzahlt), sollte ich als nächstes mal das Gehäuse präparieren mit den notwendigen Schaltern und Drehreglern und natürlich ganz wichtig den eigentlichen Ausgängen für die Control Voltages, die dann verbunden werden müssen.

Die nicht schöne, aber funktionierende Lösung mit LM324 statt LM2901 Atmega8 Flashen mit Arduino und USBtinyISP Programmer
MIDI-CV Konverter LM324 zu LM2901 Adapter und Programmierung via Arduino und USBtinyISP

MIDI-CV Konverter LM2901 vs LM324

Immer mal zeigen sich doch wieder Unzulänglichkeiten, wenn man etwas macht, was man nicht studiert hat: Ein Komparator war in meinen elektrotechnisch naiven Augen zwar schon auch ein besonderer OpAmp, aber eben doch immernoch ein OpAmp. Ich hatte gedacht, als ich den LM2901 ausgesucht habe, dass das halt ein OpAmp wäre, der besonders gut auch 0 V abbilden könnte - eine Eigenschaft, die andere OpAmps offenbar nicht haben. Also habe ich mir ein paar davon gekauft und ohne sie groß auf dem Breadboard auszuprobieren (hier habe ich ja noch mit murata-Chips zur doppelten Spannungsversorgung experimentiert und daher die einfachen TL074-Chips genutzt) schon in das PCB-Design übernommen: „wird schon passen“.
Nun habe ich ein kleines Testprogramm für meine Testplatine geschrieben und das auf den Atmega8 geflasht, den auf die Platine gesteckt und mich zunächst sehr gefreut, dass der DAC offenbar funktioniert und auch keine Lötbrücken mehr vorhanden schein, allerdings funktionierte das mit dem verdoppeln der Eingangsspannung einfach überhaupt nicht - der Output klebte bei 0 V, obwohl der Eingang meinem Testprogramm sehr gut folgend von 0 bis 5  herauf rampte.
Also habe ich mich näher zu meinem LM2901 erkundet und mal genauer gebohrt, was denn nun der konkrete Unterschied zwischen OpAmp und Comparator ist. Es stell sich heraus, dass ein Comparator üblicherweise ohne Feedback betrieben wird und noch viel mehr, als ein OpAmp dazu da ist, das Extrem der Unterschiede zu verstärken. So erklärte sich auch sehr gut, was mein Komparator machte: er bekam beim einen Input 0 , beim anderen wachsende Spannungen, die aber nie niedriger als 0 V waren - somit ergab der Vergleich immer 0 V - und wurde auch gleich wieder in den Eingang geschoben.
Daher habe ich mich umgesehen, welche anderen üblichen Chips man denn für einfache Spannungsversorgungen wählt, die auch 0 V abbilden können. Es stellte sich heraus, dass der LM324 bzw. LM2902 genau das tut und eben nur nach oben nicht ganz die Versorgungsspannung erreicht, sondern ~1,5 V weniger. Das stört mich aber überhaupt nicht - aus 5 V sollen 10 V werden und 12 V reichen somit vollkommen aus.
Glücklicherweise habe ich auch noch einen LM324 in der Kiste gefunden und konnte gleich testen - funktioniert, wie er soll. Auch der restliche Schaltplan um den OpAmp funktioniert, wie er soll: die Verstärkung ist sehr exakt über den Multiturntrimmer regelbar. Was nun sehr ärgerlich ist: Das Pinout von den beiden Chips LM324 und LM2901 ist komplett unterschiedlich - somit kann ich nun entweder die komplett bestückte Platine in die Tonne treten und neu machen (inklusive vorherigem Redesign dieses Parts der Platine), oder aber eine hässliche Lösung mit vielen fliegenden Kabeln finden :-( . Darauf wird es wohl erstmal hinaus laufen, da die Erstellung der Platine schon doch etwas anstrengender war, als beispielsweise die Yusynth-Module, die ich bislang geätzt habe.
P.S.: Ich bin mir der nicht geraden schönen Lötarbeit durchaus bewusst - es war leider in der sommerlichen Zeit in den letzten Wochen doch etwas luftfeucht und daher wirkt das Kupfer hier und da etwas angegriffen und ließ sich nicht einwandfrei an allen Stelle löten. Nunja - solange die Verbindungen in Ordnung sind, soll es fürs erste reichen.

Die funktionierende temporäre Lösung mit LM324 statt LM2901 Closeup der funktionierenden temporären Lösung mit LM324 statt LM2901 bestückter MIDI CV Converter bestückter MIDI CV Converter Rückseite SOIC-16 DAC Chip LM324 vs. LM2901
MIDI-CV Konverter PCB mit Fehler LM2901 statt LM324

MIDI CV Converter - PCB

Nachdem ich den Trigger-Converter nun tatsächlich schon geätzt, gelötet und ausprobiert habe, habe ich mich ein bisschen geärgert, dass der CV-Converter immernoch nur prototypisch auf dem Breadboard halb zusammengeschustert steht und so ein bisschen funktioniert (die Basisfunktionen sind ja sogar schon getestet).
Also habe ich mich an ein paar Abenden hingesetzt und das Layout fertig gestellt. Zwischendurch bin ich noch dazu übergegangen, es auf zwei Platinen verteilen zu wollen (weil ich das Gefühl hatte, dass es einfach nicht passen würde - die Freeware von Eagle beschränkt einen ja auf 10 cm*8 cm). Aber das wurde dann doch etwas hässlich und ich musste letztlich ziemlich viele vias trotz allem legen und noch darauf achten, dass die Verbindungen zwischen den Boards an denselben Stellen rauskommen (hier erlaubt es mir Eagle leider nicht, zwei Platinen gleichzeitig geöffnet zu haben) - also bin ich wieder zum einplatinigen Layout zurück gegangen und habe das einseitig so gut wie mir irgend möglich zurecht gebastelt. Sogar auf die Trennung von digitaler Logik und analogen Signalwegen habe ich geachtet und die mit separaten (aber verbundenen) Ground-Layern bedacht. Ein paar Verbindungen sind dann aber doch auf der zweiten Ebene gelandet, aber das sind so wenige, dass ich die einen als Drahtbrücken und wirklich nur 2 oder 3 als fliegende Kabel realisieren muss. Die Bedienelemente des Converters werden eh komplett in der Luft direkt unter dem Frontpanel verdrahtet - insofern stören die 2 oder 3 Kabel nicht weiter.
Da ich immer mal wieder gefragt werde, wie ich solche Platinen herstelle und ob man das alles zu hause machen kann, habe ich mal noch ein Foto von dem gesamten benötigten Werkzeug (Aceton habe ich vergessen hinzu zu stellen, Drucker hat nicht drauf gepasst und den Skalpel brauchte ich erst heute zum ersten mal :) ) gemacht - ist für DIY-Zwecke recht straight forward mit der Toner-Transfer Methode.
Leider ist es bei selbst entworfenen Platinen dann doch noch so, dass ich noch nicht allzu viel Erfahrung mit der Materie habe und so ist mir wieder ein doofer Fehler passiert aus dem ich lernen werde: ich habe die Abstände zwischen den Leiterbahnen als zu klein möglich gewählt. Das führt dazu, dass die gesamten Leiterbahnen ziemlich nah an dem Groundlayer entlang führen und bei nicht ganz so perfektem Werkzeug zum ätzen und Toner Transfer und was nicht alles (nicht ganz perfekte Temperatur auf dem Bügeleisen etc.) es doch bei diesem Board ziemlich oft passiert ist, dass doch noch haarkleine Verbindungen zwischen Leiterbahnen und Ground Layer zurück blieben. Die wurden dann akribisch genau mit einem Skalpel durchtrennt. Hinzu kommt weiterhin, dass ich einen etwas zu großen Bohrer gewählt habe (1,3 mm) und somit ein paar Leiterbahnen von der Bohrung durchtrennt worden sind und ich zusehen muss, dass ich die beim Löten wieder zusammen bekomme. Auch bei den engen Stellen muss ich nun umso mehr aufpassen, dass ich nicht doch wieder Kurzschlüsse nach Ground reinbringe, weil eine kleine Lötbrücke ensteht - wird also noch eine bischen dauern, bis ich das Teil komplett mal testen kann. Aber so ist das halt: gut Ding will Weile haben. Schlussendlich kann das ganze auch noch komplett scheitern (wenn ich die Geduld verliere) und ich werde es entweder komplett fallen lassen (was ich nicht hoffen will) oder aber professionell fertigen lassen (was aber um die 45 Euro kosten würde... gegenüber der maximal 10 Euro, die ich für die eigene Produktion inklusive Strom, Wasser, Säure, Aceton, Platine und alledem bezahle)... Mal sehen - erstmal wird nun ganz vorsichtig gelötet

Layout des MIDI CV Converters Schematic des MIDI CV Converters PCB Herstellung Werkzeuge Toner Transfer
MIDI CV Converter Platine in der Herstellung

SDS-V MIDI Trigger Vorbereitung

Es dauert noch ein bisschen, bis alle Bauteile für den SDS5 Clone bei mir eintrudeln - einige habe ich noch nichtmal bestellt.
Daher habe ich mich mal rangemacht und einen simplen MIDI-Trigger Converter gebaut.
Um nicht wieder nur komplett das gleiche zu machen, habe ich mich entschlossen, noch einen kleineren Mikrocontroller zu nutzen: den ATtiny2313. Der ATtiny84 fiel raus, weil der keine serielle Schnittstelle bietet. Der ATtiny2313 hat zwar nur 2 kB Flash, aber der sollte auch für kompliziertere Trigger-Konvertierungen reichen (momentan ist er zu 52% gefüllt (1066 bytes) - was hauptsächlich an der komplexeren Ringbufferstruktur und der seriellen Schnittstelle liegt).
Der Konverter ist wirklich sehr simpel und war mit ein paar Zeilen aus dem MIDI-CV Converter auch recht schnell zusammen gestöpselt. Ein paar Fallstricke waren nur wieder die Fusebits und damit zusammenhängende Probleme: Zu falsch gefused (nicht mehr programmierbar) musste der Chip erst wieder gerettet werden - dafür musste ich mich wieder in die Materie reinarbeiten. Dann wieder falsch gefused und diesmal deswegen die CPU mit einem 8mal zu langsamen Takt arbeiten gehabt - das konnte ja nichts werden mit der seriellen Kommunikation mit MIDI. Als das dann nach einigem grübeln und fluchen alles behoben war, funktionierte auch plötzlich der ganze Quelltext so schön, wie ich es mir gedacht hatte und das Delay zwischen einkommender MIDI-Nachricht über die Note (blau im Bild unten) und eigentlichem Trigger (gelb im Bild unten) liegt bei etwa 50 µs, was sehr brauchbar ist. Insgesamt zwischen Tastendruck, Kodierung, schicken, empfangen, verarbeiten der Nachricht und letztlich Triggern des Outputs liegt also knapp mehr als eine Millisekunde. Darüber hinaus ist die Länge des Trigger-Signals, wie auch der MIDI-Channel über Konstanten im Quelltext einfach anpassbar. Da ich bis auf den Attiny2313, auf dem das ganze läuft, und dem Optokoppler für MIDI (sowie den zugehörigen Widerstand- und Diodenkram) nichts weiter brauche, sollte dieses Projekt im Gegensatz zum MIDI-CV Converter auch recht schnell hier zu hause in einen PCB verwandelt und ausprobiert werden können. Das macht allerdings erst dann Sinn, wenn ich weiß, dass 5 V für das Triggern der Module auch ausreicht.
Ist das alles klar und soweit ausprobiert, könnte ich mir noch Erweiterungen für den Quelltext vorstellen, der statt einem simplen Trigger-Signal eine Sequenz solcher Trigger-Signale losschickt und somit Drumrolls und -flames ermöglicht (wie sie beispielsweise der Tanzbär kann).
Der Quelltext ist natürlich wieder auf github gelandet.

MIDI Trigger Testaufbau MIDI Trigger Delay Oszilloskop
MIDI Trigger Testaufbau mit Osziloskop

Arduino Library für DA8568C

Es vergehen die Tage und Wochen und mein MIDI-CV Konverter wird und wird nicht fertig.
Nicht dass mich das allzu sehr ärgert - gibt genug zu tun und es ist ja nicht so, als würde ich das als Produkt planen. Da nun aber doch jemand nachfragte, ob ich denn nicht ein einfaches Beispiel für meine Arduino-Bibliothek online stellen könne, tat ich genau das und "optimierte" sogleich meinen Code. Der Ursprungscode enthielt viele, viele Verzögerungen beim Initialisieren des Chips - das hatte ich für meinen C Code für den Konverter schon längst geändert.

DAC Arduino Library auf Breadboard
DAC Library für Arduino auf dem Breadboard

Synth DIY 2015 Zusammenfassung

Das letzte Jahr war nicht übel, was mein Synthesizer Hobby anbelangt. Ich habe endlich umfangreich angefangen, meinen Yusynth Modular Synthesizer zu bauen und neben der Planung ein paar neuer Projekte wie dem Crowminmius, meinem MIDI-CV Konverter um endlich den crOwBX-Synthesizer in Betrieb nehmen zu können auch noch den Arp 1601 Clone soweit vollendet, dass dem nur noch ein Case fehlt. Zum Yusynth passend habe ich mein 66U-Cabinet gebaut. Zu guter Letzt habe ich für den Unterbau des Yusynth Modular Synthesizers ein Regal gebaut, wo links und rechts jeweils 15U 19" Rack passt. Dazwischen sollen möglichst an sowas wie Handtuchhaltern die Patchkabel für den Yusynth gehängt werden (herausziehbar). Weiterhin fehlt nun natürlich immernoch die weiße Lakierung sowohl des Cabinets, als auch des Unterschranks.

Im Backlog sind nun also ein Crowminmius, ein Shruti CS-80 Filter, ein paar Yusynth Module (ARP Filter, Steiner-Parker Filter, VCA, ADSR, noch ein Mixer) und mein eigenes MIDI-CV Modul für den crOwBX, welcher damit ja sozusagen auch noch im Backlog ist.
Für 2016 sind dann die angefnangen Projekte geplant und was halt sonst noch so dazwischen kommt. Ein EDP Wasp Nachbau scheint sich gerade anzubahnen.

Gesamtbild Cabinet, Arp 1601 und Unterschrank Yusynth Oszillatoren Yusynth AC-Mixer und Minimoog VCF Yusynth ADSR, VCA und LFO
Synth DIY Projekte 2015

MIDI-CV Konverter

Auch dieses Wochenende hatte ich mal wieder etwas Zeit und Muße, ein bisschen produktiv am Hobby zu basteln. Da mich immer mehr verfolgt, dass mein crOwBX noch immer nicht fertig nutzbar ist, habe ich nach dem letzten Post, wo ich darüber schrieb, dass ich ihn mal wieder auf den Tisch geholt habe, nun endlich begonnen wieder daran zu werkeln.
Nachdem ich davon schrieb, dass ich die TL074 gegen LM2901 austauschen wollte, habe ich dieses Vorhaben nunmehr vorbereitet und dabei festgestellt, dass ich noch nichtmal das zweite Input-Shift-Register auf dem Breadboard hatte - also ein weiteres Breadboard ran, neuen Platz für die zwei Shiftregister nutzen und wieder nachvollziehen, was ich da eigentlich zusammengesteckt hatte - war ja schon eine Weile her. Diesmal habe ich es dann auch endlich mal niedergeschrieben um in Zukunft die Einarbeitungszeit kleiner zu halten.
Weiterhin kam mir die Idee, dass eigentlich von der Performance her auch 8 Voices möglich wären und ich eigentlich nicht unbedingt 4 Voices + 4 Velocities bräuchte. Damit wären 4 Kanäle vom DAC ungenutzt - die hatte ich schon als LFO und Clock geplant - etwas verschwendet (zumindest für einfache Clock-Triggers), aber gut... Wenn ich also einen weiteren Modus einführe, der 8 Voices unterstützt, bräuchte es eine andere Lösung für die GATE-Signale. Denn nach den 4 Pins, die ich momentan dafür nutze sind nicht weitere 4 Pins frei. Also noch eine Shift-Register-Lösung für die GATE-Ausgänge.
Das sind aber alles noch Ideen. Vorerst habe ich zugesehen, dass ich für den polyphonic Modus einen LRU (least recently used) Cache für die Zuweisung der als nächstes zu nutzenden Voice implementiere. Nach ein paar weiteren Fehlerchen und Korrekturen (SPI-Modus vom DAC unterscheidet sich von demjenigen des Shift-Registers und muss daher jeweils vor Nutzung des ICs gewechselt werden) funktionierte dann auch der Wechsel vom Unison Mode zum Polyphonic Mode und damit auch die Zuweisung der Stimmen.
Zusätzlich habe ich nun die zwei bereits eingeplanten Potis für die Geschwindigkeit der LFOs auf's Breadboard gepackt und getestet. Bis auf den Fakt, dass natürlich der LFO nicht sooo wichtig ist, dass ich den mit Audioraten betreiben würde und daher bereits bei maximaler Frequenz von 15 Hz ordentliche Treppchen auf dem Osziloskop zu sehen waren (für Puls natürlich nicht und für Sägezahn weniger, als für Triangle, aber sichtbar auf jeden Fall). Ein Tiefpass würde hier aber vermutlich keinen Sinn machen, weil der DAC-Ausgang in den anderen Modi ja für Ausgabe der Noten genutzt wird und hier kein Portamento drin sein soll. Also bleibt es bei den gut 4 ms pro Schritt - 250 Hz... was natürlich überhaupt nichtmal nahe den 44 kHz einer Soundkarte ist. Bin gespannt, ob das was bringt.
Natürlich habe ich auch getestet, was passiert, wenn ich viele Noten auf den Controller loslasse und ob ich dann Glitches beobachte - nichts beobachtbar. Wichtig wäre nun noch ein Test mit MIDI-Clock, ob das Syncen denn funktioniert.

MIDI-CV Converter on Breadboard MIDI-CV Converter on Breadboard MIDI-CV Converter on Breadboard MIDI-CV Converter LFO MIDI-CV Converter LFO MIDI-CV Converter LFO MIDI-CV Converter LFO MIDI-CV Converter LFO
MIDI-CV Konverter auf dem Breadboard

MIDI-CV Konverter

Das Projekt crOwBX nähert sich dem Status, in dem es mit der Kalibrierung durch musikalische Töne kurz vor der Vollendung steht. Dennoch wird es vermutlich noch eine ganze Weile dauern, weil ich natürlich den MIDI-CV Konverter selbst entwerfen und bauen will. Nicht dass es nicht schon genug davon gäbe - aber was ich selbst machen kann, möchte ich auch gern selbst machen... Sonst hätte ich mir auch gleich einen original Oberheim OB-X kaufen können - wäre halt teuer gewesen, aber so ein MIDI-CV Konverter ist auch nicht unbedingt so günstig zu kaufen, wie wenn man ihn sich komplett selbst bastelt... Bei dieser Rechnung muss man natürlich den Stundenlohn für den Entwurf und Testen und was nicht alles rausrechnen - aber das ist ja Teil des Hobbies :-) . Abgesehen davon nutzt mein MIDI-CV Konverer einen 16-Bit DAC (DAC8568) im Gegensatz zu den meisten anderen MIDI-CV Konvertern, die eher 8-Bit, 10 Bit, oder maximal noch 12 Bit DACs nutzen.
Das eigentliche Projekt dazu habe ich schon während des Lötens des crOwBX Synthesizers angefangen zu planen und ein bisschen firmware für einen Atmega-8 zu schreiben - auf github kann das eingesehen werden. Einen Atmega-8 (und keinen 328 oder ähnlich große - order gar einen ARM Cortex M3 oder M4) habe ich hier gewählt, weil ich a) noch eine ganze Menge davon rumliegen habe, b) mir selbst ein bisschen bei der low-level programmierung ein paar Herausforderungen zurechtlegen wollte und c) weil ich kann :-D
Dort war ich zuletzt soweit, dass MIDI-Nachrichten empfangen und ein paar Einstellungen vorgenommen werden können. Die Grundbausteine für die Schaltung stehen auch schon und auf dem Breadboard habe ich auch schon ein bisschen damit rumgespielt.
Wie dem auch sei - in den letzten Stunden habe ich mal wieder den Testaufbau von damals rausgekramt und befasse mich nun damit, den komplett zum Laufen zu bekommen und ein paar Fehler zu beseitigen.
Ein Problem ist beispielsweise noch, dass die OpAmp-Konstruktion (TL074) zum Verdoppeln der Spannung nicht sauber bei 5V Eingang auf 10V verdoppelt (kommt nur auf irgendwelche 9,6V) - ich vermute ein bisschen die womöglich doch schlechtere Lösung, was die Stromversorgung und Generierung der +12/-12 V anbelangt - hier verwende ich einen NMV0512DC von Murata, welcher aus 5V einmal +12V und einmal -12V generiert. Daher habe ich mir mal ein paar LM2901 OpAmps bestellt, welche für einfache Spannungsversorgung 12V statt +12V/-12V geeignet sind. Die -12V brauchte ich beim TL074 auch nur für die Versorgung des OpAmps - bei der Schaltung wäre nie etwas negatives am Output herausgekommen.
Diese Tests stehen nun also an und dann werde ich einen PCB für das ganze Teil entwerfen, ätzen, löten und testen :-)

MIDI-CV Converter on Breadboard
MIDI-CV Konverter auf dem Breadboard