Degenerator DIY Sampler/Synthesizer (Tubeohm)

Re: AVR Synthesizer "WAVE 1"

Ist es geplant das Filterboard austauschbar/modular zu machen ?
Ein Traum wäre z.b ein auswechselbares Filternodul SEM, Moog, Arp usw.
Das bringt wahrscheinlich noch mehr Kunden/Kaufanreize.
 
Re: AVR Synthesizer "WAVE 1"

Daran arbeite ich zur Zeit:


Die Tonqualität ist nicht so gut, da ich die Aufnahme mit dem Smartphone gemacht habe.

Gruß Rolf
 
Re: AVR Synthesizer "WAVE 1"

Super SAW im Degnerator und andere Dinge...

Es gibt ein kleines Problem mit der Video- und Ton Syncronisierung. Ich habe Video und Ton seperat aufgenommen um eine bessere Klangqualität zu erreichen.
Video Editor war VSDC und Audio Editor Audacity.



Hier noch ein paar nette Wavesounds vom Degenerator
src: https:/rolfdegen/wavesound-from-degenerator

Gruß Rolf
 
Re: AVR Synthesizer "WAVE 1"

Hallöchen..

Mein Freund Andre aus Oer-Erkenschwick (TubeOhm Instruments) hat mich heute mit einer guten Nachricht überrascht. Die Motherboard Platinen für den Degenerator sind eingetroffen. Die Qualität ist gut. Jetzt werden Bauteile bestellt und am Freitag zwei Platinen bestück. Dann wird getestet. Bin gespannt obs läuft...

Degenerator Motherboard
P1050741.JPG


Gruß Rolf
 
Re: AVR Synthesizer "WAVE 1"

Hallöchen..

Bin fleißig am löten und bald (fix und) fertig... Augenzwinkern

Degenerator Motherboard mit CPU-Board
IMG_20160820_142142.jpg


Gruß Rolf
 
Re: AVR Synthesizer "WAVE 1"

Wie lang wird das etwa bis zur Fertigstellung und erstem superfinalem Synth dauern? Ich frage nicht um böse zu sein, sondern einfach so.
Mich interessiert dabei quasi das, was die Entwicklung von Synths ganz allgemein aufgehalten hat, was die Stolperfallen waren und all das, vielleicht kann man das irgendwie zusammenstellen und irgendwo posten, weil sowas ggf. helfen kann.

Ich kenne ja mehrere solche Geschichten und fast immer ist es doch noch etwas mehr Arbeit - aber wenn es dann endlich alles läuft, ist manchmal der Fokus weg und muss neu aufgebaut werden, obwohl es so kontinuierlich war. Das ist ja mehr Produktphilosophie und Marketing dann..

Nur eben zwischendurch, bin gespannt wie das dann am Ende alles aussieht und so.
Vielleicht für untern Baum oder so?
 
Re: AVR Synthesizer "WAVE 1"

Hi Mogu ;-)

Vielen Dank für dein Interesse. Es ist bis jetzt verdammt viel Arbeit gewesen und hat viele Nerven gekostet. Aber die Leidenschaft zur Technik und zur Elektronischen Musik ist mein Antrieb.

In dieser Größenordnung war das Synth Projekt eigentlich nicht geplant. Aber es sind immer mehr Funktionen dazu gekommen und schließlich entwickelte es sich zu dieser Größe.
Ich vergleich mich immer ein wenig mit Stefan Schmitt und seinem Schmitt Synthesizer. Sein Team hat fast 10 Jahre geplant, getüftelt und gebaut bis der Schmitt Synthi fertig war. Aber dieser ist auch etwas größer ;-)

Die Fertigstellung des Degenerators planen wir jetzt für Mitte Dezember diesen Jahres. Zur Zeit wird schon am Bedien-Panel und Gehäuse gefeilt. Parallel baut mein Freund Andre aus Oer-Erkenschwick an einen zweiten Stereo-Multi-Filter für den Degenerator ähnlich dem 4pol Mission Filter vom Shruthi Synth. Welchen Stereo-Multi-Filter wir dann letztendlich einsetzen (12dB lP/BP/HP oder 4pol Mission) ist noch unbestimmt.

So könnte er aussehen...
(das Bild ist schon etwas älter und die Abblidung ist nicht mehr Stand der Technik)

Degenerator%2B1.jpg


Gruß Rolf
 
Re: AVR Synthesizer "WAVE 1"

Hallöchen Miteinander!

Midi, VCA und MircoAmp funktionieren wunderbar sowie die Delay-Schaltung. Jetzt löte ich die Filter-Schaltung. Bevor die Filter-Platinen layouted wird muß diese noch einmal aufgebaut und getestet werden. Platzmäßig sollte es funktionieren (siehe Bild).

Degnerator Motherboard mit CPU- und Filter-Board
IMG_20160827_002102.jpg


IMG_20160826_235238.jpg


Gruß Rolf
 
Re: AVR Synthesizer "WAVE 1"

Inzwischen gibt es ja sogar wieder Curtis, da könnte man …
(wenn nicht eh schon, kann ich nicht erkennen)
 
Hallo zusammen...

Das Filterboard für den Degenerator ist fertig. Es handelt sich um einen 12dB Stereo-Multi-Filter mit Umschaltung auf LP/HP/BP. An dem zweiten Filterboard (SMR4-Pole mixing) wird noch gearbeitet.

Degenrator mit Filterboard
IMG_20160902_154423.jpg


IMG_20160902_154639.jpg
 
Hallöchen..

Die drei LFO-Led's auf dem Front Panel werden jetzt über ein Schieberegister 74HC595 im PWM-Mode angesteuert und verändern ihre Helligkeit je nach eingestellter Wellenform und Amplitude.

Video: LFO-Leds am Degnerator


Gruß Rolf
 
Hallöchen miteinander!

Nach einer kleinen (Kaffee) Pause gehts jetzt weiter Augenzwinkern

Mein ein Jahr altes 70MHz Oszilloskop Siglent SDS1072CML ist defekt. Die Hintergrundbeleuchtung
flackert und gibt vermutlich irgendwann ganz den Geist auf. Die Ursache laut Hersteller ist vermutlich
ein defekter Elko auf der Netzteil Platine. Da ich das Oszilloskop vor ca. einem Jahr über Amazon
gekauft hatte, konnte ich Dank freundlicher Unterstützung eines Service Mitarbeiters das defekte
Gerät an Amazon zurückschicken. Da der Hersteller Siglent die Produktion dieses Modells ein-
gestellt hat, habe ich mich für ein neueres 100MHz Scope von Siglent entschieden. Es ist das
SDS1102CML+. Die Plus Versionen haben eine verbesserte Displayauflösung (800 x 480), ein
Redesign der Bedienelemente, eine LAN Schnittstelle und eine Speicheroptimierung (mehr
Speicher für die Aufnahmefunktion, weniger Speicher für intern gespeicherte Signale).


Fazit: Das einzige was mich etwas stört, ist die violette Anzeige für den zweiten Kanal. Die ist mir
etwas zu dunkel. Mein altes Scope hatte für den zweiten Kanal eine hellblaue Farbe und war
desshalb etwas besser abzulesen. Aber ansonsten kann ich mich nicht beklagen. Für knapp 355,-
Euro bekommt man aus China ein gute Qualität geliefert.

Oszilloskop Siglent SDS1102CML+
SDS1102CML%252B.JPG


Gruß Rolf
 
Hallöchen miteinander!

Bekanntlich kommt nach jede Lösung eines Problems ein neues Problem dazu. So auch im
Degenerator. Im Degenerator arbeiten zwei Oszillatoren deren Werte in zwei 64 Byte großen
Zwischenspeichern geschrieben werden und in einem Timer Interrupt an den DAC Ausgang
gesendet werden. Dabei traten bei kurzen Attack-Werten störende Klickgeräusche auf (Bild 2).
Eine Analyse der Programmabläufe und Betrachtung auf dem Oszilloskop brachte mich dann auf
den Pfad der Erleuchtung holy-willi

In einem Timer Interrupt wird jede Millisekunde geprüft, ob Midi-Daten im Empfangsbuffer
vorhanden sind und ggf die neuen Notenwerte für die beiden Oszillatoren berechnet.

Danach fülle ich die beiden Zwischenspeicher mit jeweils 64 neuen Oszillator Werten.

Danach aktualisiere ich die beiden Envelopes und die CV-Outputs für VCA und VCF.

In einem Timer Interrupt mit höchster Priorität, werden alle 25usec jeweils ein Werte aus den
beiden Zwischenspeichern gelesen und an den DAC Ausgang gesendet (Bild 1).

Zuvor hatte ich die Notenwerte für die beiden Oszillatoren in der Envelope Routine aktuallisiert.
Das führte dazu, dass sich von der alten Note noch Reste im Zwischenspeicher befanden und
dies zu Störungen am Audioausgang führte (Bild 2).

Bild 1: Midi-Input (gelb) und störungsfreier Audioausgang (violett)
Midi_Delay.jpg



Bild 2: Audioausgang mit Klickgeräusch am Anfang
Buf_64Byte.jpg


Im nächsten Beitrag gehts um Midi-Latenz, Buffer Größe und CPU Ressourcen

Gruß Rolf
 
Hallöchen miteinander smile

Heute gehts um Puffergröße und CPU Ressourcen

Im Degenerator wird viel gerechnet zB Echtzeitberechnung von zwei Oszillatoren, Sampling, 3 LFO's, 2 Envelopes, Modulationsmatrix, Grafisches Benutzerinterface, Oszilloskop Funktion uvm. Die Prozessorressourcen in so einer 32MHz "schnellen" ATMEL MCU (Xmega128AU) sind leider sehr knapp und ich musste nach intelligenten Lösungen suchen damit alles schnell und fehlerfrei funktioniert. Für eine spätere Weiterentwicklung die eventuell mehr CPU Leistung benötigt, ist der Austausch der CPU-Platine gegen eine Platine mit einem leistungsstärkeren ARM Prozessor gedacht.

Im Degenerator benötigt die Berechnungsroutine für die Oszillatoren (violett) ca. 41% der gesammten Rechenleistung eines Xmegas. Alle 25usec werden zwei Oszillatorwerte (gelb) aus einem Puffer an die beiden DAC Ausgänge gesendet. Das dauert ca. 1 usec und entspricht einer Samplerate von 40KHz. Da es sehr uneffizent wäre die Oszillatorwerte alle 25usec neu zu berechnen (so habe ich es füher gemacht), benutze ich eine Pufferroutine, in der vorab 2x40 Oszillatorwerte berrechnet und in einem Puffer zwischen gespeichert werden. Alle 25usec werden dann die Werte aus dem Puffer gelesen und an den DAC gesendet. Das hört sich einfach an ist es aber nicht. Der Buffer besteht eigentlich aus zwei Doppelpuffer mit jeweils 80 Byte für beide Oszillatoren. Um die Funktionsweise der Pufferroutine zu erläutern beziehe ich mich aber nur auf einen Doppelpuffer.

Bild 1: Doppelpuffer
Buffer1.jpg


Funktionweise des Doppelpuffers
Bild 1: Der geschlossene Kreis verdeutlicht den Ablauf, da in einer ständigen Wiederholung nach dem zweiten Puffer wieder der erste folgt. Jeder Puffer fasst hier 40 Samples, entsprechend einer Latenz von 1 ms. Wie diese 1 ms entstehen ist einfach nachzuvollziehen. Beim Start der Wiedergabe befindet sich der Positionszeiger an der mit 0 bezeichneten Stelle. Da beim Start der Wiedergabe der erste Puffer bereits abgespielt wird kopiert die Software alle Daten zunächst in den zweiten Puffer. Stellen Sie sich (in Zeitlupe) vor, wie sich der Zeiger im Uhrzeigersinn fortbewegt. Bei einer Samplefrequenz von 40 kHz werden die 40 Samples in nur 1 ms abgearbeitet. Sobald der Zeiger die Grenze zwischen den Puffern erreicht hat (Position 1) wird ein Interrupt ausgelöst, und die Software berechnet die nächsten 40 Samples und speichert diese in den (nunmehr abgearbeiteten) ersten Puffer. Der zweite Puffer wird nun abgespielt, am Ende (Position 0) wieder ein Interrupt ausgelöst, Sampels werden wieder berechnet und in den zweiten Puffer kopiert.. Das ganze Pufferspiel wiederholt sich unendlich.


Bild 2: Zeitintervall der Pufferfunktion
SDS00010.BMP


Gelb: 25 usec Intervall für Sampleausgabe auf den DAC (Dauer ca. 1usec)
Violett: 1 ms Intervall für die Berechnung von 80 Samples (Dauer ca. 412usec)

Im nächsten Beitrag gehts ums Thema Puffer und Midi Latenz

Bis dahin liebe Grüße aus Wuppertal. Rolf
 
Hallo liebe Freunde smile

Ich habe die "Optimierung" in Atmel Studio 7 von -OS zu -O1 geändert. Das Ergebnis ist ein schnellerer Code und ein wenig mehr Code im Programmspeicher des Xmega Prozessors.
Durch die geänderte Optimierung ist der Code für die Berechnung und Speicherung der Oszillatorwerte wesentlich schneller geworden. Ferner werden die Menüseiten schneller aufgebaut. Die Prozessorauslastung liegt jetzt bei ca. 31%.

Bild 1:Berechnung von 2x40 Oszillatorwerten und speichern in den Puffer in 514 usec mit optimize -OS
SDS00011.jpg



Bild 2: Berechnung von 2x40 Oszillatorwerten und speichern in den Buffer in 308 usec mit optimize -O1
SDS00012.jpg


Gelb: 25 Mikrosekunden Intervall. Es werden zwei Samples aus dem Puffer gelesen und an die beiden DACs gesendet
Violett: Berechnet 2x40 Oscillatorwerte und speichert diese in einen Puffer

Jetzt ist alles super schnell und fluppt schön großes Grinsen

Gruß Rolf
 
Hallöchen..

Ich habe aus Interesse mal die max Zeit für das Berechnen und abspeichern der Oszillatorwerte in den Puffer gemessen. Je nach Art der Synthese ergeben unterschiedliche Zeiten für die Berechnung bis maximal 352 usec. Im Video kann man das schön verfolgen. Gelb die errechnete Wellenform und voilett die benötigte Zeit.

Video: Degenerator Oscillator rendering and buffer time

Gruß Rolf
 
Hallöchen..

Für die Wiedergabe von Samples stehen im Degenerator 982KB externes SRAM zur Verfügung. Das SRAM ist in verschiedenen Blockgrößen unterteilt. Der erste Block ist für zwei Sample-Files reserviert. Der freie Speicherplatz für einen zu ladenden Sample verringert sich in Abhängigkeit von der Größe des zu erst geladenen Samples. Der 2. und 3. Speicherblock ist für zwei 32KB Wellenform Bänke für Oszillator 1 und Oszillator 2 vorgesehen. Beim Umschalten auf eine andere Wellenformbank werden die Daten von der SD Karte in das SRAM geladen. Der 4.Speicherblock dient als Zwischenspeicher für die Grafische Darstellung des Sample-Files.

1MB XRAM im Degnerator
Xram30.jpg


20161009_192615.jpg


Gruß Rolf
 
Hallöchen..

Um die Warterei auf den Degenerator etwas zu überbrücken, hab ich ein paar aktuelle Demo-Sounds vom Degenerator auf soundcloud.de hochgeladen. Die Sounds bestehen aus verschiedene Samples die über Oszillator 1+2 wiedergegeben werden. LFO1 moduliert das Delay-Panorama. Viel Spaß beim anhören.

src: https:/rolf-degen/wav-sounds-from-degnerator

Gruß Rolf
 
Hallö.. halla

Mein guter Freund Andre aus Oer-Erkenschwick entwickelt zur Zeit das Platinen Layout für's Panne-
board. Nächste Woche Montag vor dem Feiertag ist noch einmal eine Team-Besprechung. Es wird
vorwiegend ums Gehäuse Designe und die verwendete Filterkarte gehen. Ferner werden noch einige
Kleinigkeiten besprochen und der zweite Prototyp getestet. Ich für mein Teil habe den endgültigen
Schaltplan für's Pannelboard gezeichnet und programmiere noch an einigen Kleinigkeiten rum. Zum
Schluss soll der Degenerator noch einen Bootloader erhalten, um aktuelle Firmware über SD Karte
zu laden.

Bild: Degenerator Pannelboard
PanelBoard%2B33-22.jpg


Gruß Rolf
 
Hallöchen..

In der Zwischenzeit konnte Radiomicky sein Problem lösen... freut mich Zunge raus

Mein Freund Andre arbeitet fleißig am Pannelboard. Das Ganze sieht jetzt so aus..

Entwurf Pannelboard
P1050961.JPG


Die zwei weissen Tasten mit dem Start/Stop Symbol für den Sequenzer und Record Funktion sind beleuchtet. Unterhalb der Encoder sind die Tasten für die am häufigsten genutzen Menü Seiten. Mit der Taste "MOD" kommt man zB direkt in die ModulationsMatrix.

Entwurf Gehäuse
Case_29.jpg


Gruß Rolf
 


Zurück
Oben