Degenerator DIY Sampler/Synthesizer (Tubeohm)

Re: AVR Synthesizer "WAVE 1"

Danke schön. Vom Sound wird der DE:Generator sehr interessant werden. Testweise habe ich heute einen 580KByte großen Chor-Sample geladen und über den eigebauten Stepsequenzer abgespielt.
Im normalen Fall wird der Wellenform Oszillator bei jeder Tastenanschlag retriggert und beginnt das Abspielen des Samples von vorne. Ich habe diese Funktion über einen Switch (ReTrig) abschaltbar gemacht, so dass der Wellenform Oscillator im free run Modus läuft und bei jedem Tastenanschlag ein anderer Wellformabschnitt vom Sample gespielt wird. Der Sound klingt dadurch abwechslungsreicher und weniger statisch. Das funktioniert allerdings nur bei Flächensounds sehr gut.

OscTrig01.jpg


Sound Beispiel
1.Teil Note trigger Waveform Oszillator
2.Teil: free rum Waveform Oszillator

src: https://soundcloud.com/rolfdegen/osc-re-trigger

Gruß Rolf
 
Re: AVR Synthesizer "WAVE 1"

Hallöchen..

Mit Neo und Morpheus war ich heute in der Matrix und tauche gleich wieder ein ;-)

Kleiner Scherz. Wer den Science-Fiction Klassiker Matrix nicht kennt hier zur Film Info: http://de.matrix.wikia.com/wiki/Matrix_Wiki

Diese Woche arbeite ich wieder an der Modulationsmatrix. Keine leichte Sache :sad: Aber Dank einiger Tips aus dem Mutable Forum will ich das mit Hilfe eines Zweidimensionale Daten Arrays versuchen umzusetzen.

Was ist ein Zweidimensionale Daten Arrays: http://www.c-howto.de/tutorial-arrays-felder-zweidimensional.html

Modulationsmatrix im DE:Generator
ModMatrix_02.jpg


Wie man auf dem Bild erkennen kann, besteht das Daten Array aus 6 Reihen (Slots) mit jeweils 3 Datenfeldern (Source, Destination, Amount).

Der Zugriff auf ein Datenelement in der Modulationsmatrix erfolgt mit einem Zeilen- und Spaltenindex. Unter C sieht das zB dann so aus:
Code:
amount = (slot_array[2][2]); // load lfo1 amount

Die Berechnung eines Modulationsknoten besteht im wesentlichen aus der Multiplikation von Source- und Destination-Werten. Um die Berechnungen schnell auszuführen, habe ich Inline-Assembler Routinen verwendet. Mit Inline-Assembler kann man kleine optimierte Assembler Routinen direkt in den C-Code einbetten.

Code:
// LFO1 => VCF Modulation  --------------------------------------------
temp_cv = U16ShiftRight4(Env2.value_); // convert 16Bit Envelope to 12Bit PWM-Control for Filter-Cutoff 
amount2 = (slot_array[2][2]) << 1; // load lfo1 amount *2
modul2 = lfo1_out * amount2 >> 8;
temp_cv = U16U8MulShift8(temp_cv,(255-modul2));

// set Filter Cutoff --------------------
CV_VCF_Cha1 = temp_cv;
CV_VCF_Cha2 = temp_cv;



// Inline-Assembler Routinen (avr-gcc) ------------------
static inline uint16_t U16ShiftRight4(uint16_t a) {
    uint16_t result;
    asm(
    "movw %A0, %A1" "\n\t"
    "lsr %B0"      "\n\t"
    "ror %A0"      "\n\t"
    "lsr %B0"      "\n\t"
    "ror %A0"      "\n\t"
    "lsr %B0"      "\n\t"
    "ror %A0"      "\n\t"
    "lsr %B0"      "\n\t"
    "ror %A0"      "\n\t"
    : "=r" (result)
    : "a" (a)
    );
    return result;
}

static inline uint16_t U16U8MulShift8(uint16_t a, uint8_t b)
{
    uint16_t result;
    asm(
    "eor %B0, %B0"    "\n\t"
    "mul %A1, %A2"    "\n\t"
    "mov %A0, r1"     "\n\t"
    "mul %B1, %A2"  "\n\t"
    "add %A0, r0"     "\n\t"
    "adc %B0, r1"     "\n\t"
    "eor r1, r1"      "\n\t"
    : "=&r" (result)
    : "a" (a), "a" (b)
    );
    return result;
}

Die Schwierigkeit in der Programmierung besteht jetzt darin, die einzelnen Modulationsknoten in der Matrix zusammen zu führen. Daran arbeite ich jetzt...

Bis bald und eine schöne Wochen wünscht euch der Rolf aus Wuppertal :)
 
Re: AVR Synthesizer "WAVE 1"

An alle Leser: Zur Zeit gibt es ein kleines Problem im IE und Firefox mit der Darstellung von Bildern in meinen letzten Beiträgen. An einer Lösung wird fieberhaft gearbeitet :phat:

Als Cloudspeicher für meine Bilder habe ich bisher immer OneDrive von Microsoft benutzt. Vor ca. zwei Wochen haben die ein Update gemacht und seit dem werden die Bilder nicht mehr angezeigt.
Ich werds jetzt mal mit Google versuchen. Vielleicht hab ich da mehr Glück.

Testbild aus der Google Cloud
uu-z9kBeCqSACVulof5rOwimYAZQ2PdKhXxgdQgBEqk=w276-h207-p-no


Gruß von Rolf aus Wuppertal
 
Re: AVR Synthesizer "WAVE 1"

Hallo again..

Da ich zur Zeit an der Modulationsmatrix arbeite, habe ich spaßeshalber mal einen Filter Sweep Test mit dem Shruthi Synthesizer (mit Polivoks Filter) und dem DE:Generator gemacht.

Filter Sweep Test auf Youtube

https://www.youtube.com/watch?v=2RPmd5Tvcns


Deutlich sind die Abstufungen im Filter Sweep vom Shruthi Synthesizer zu hören. Das kommt durch die 8Bit Auflösung der Filter Steuerspannung. Im DE:Generator hat die Steuerspannung eine 12Bit Auflösung. Abstufungen sind kaum zu hören.

In der Modulationsmatrix kann bereits der VCA und VCF mit den LFO's und Envelope Generatoren moduliert werden. Der Rest folgt..

Falls sich jemand vorab für den C Code interessiert. Den gibts im Anhang.

Gruß Rolf
 

Anhänge

  • Modulation24.txt
    9 KB · Aufrufe: 8
Re: AVR Synthesizer "WAVE 1"

Hallöchen..

Trotz der Hitze diesen Sommers arbeite ich fleißig an meinem Synthesizer Projekt. Die Modulationsmatrix macht riesige Fortschritte. Folgende Modulationen sind schon möglich:


Modulationen
LFO1 => LFO2, VCA_gain, VCF_cutoff, VCF_resonanc, VCA_Balance, Fx_Balance
LFO2 => LFO1, VCA_gain, VCF_cutoff, VCF_resonanc, VCA_Balance, Fx_Balance
ENV1 => VCA_gain, VCF_cutoff, VCF_resonanc, VCA_Balance, Fx_Balance
ENV2 => VCA_gain, VCF_cutoff, VCF_resonanc, VCA_Balance, Fx_Balance
Velocity => VCA_gain, VCF_cutoff, VCF_resonanc, VCA_Balance, Fx_Balance
Midi_Note => VCA_gain, VCF_cutoff, VCF_resonanc, VCA_Balance, Fx_Balance
Noise => VCA_gain, VCF_cutoff, VCF_resonanc, VCA_Balance, Fx_Balance

Die LFO's können im OneShot Modus, MidiSync Modus oder FreeRun Modus geschaltet werden. Alle Funktionen sind auch abschaltbar. Für jeden der zwei LFO's kann eine von insgesamt 16 Wellenformen ausgewählt werden.

Werde die Tage ein Video über die Modulationsmatrix drehen. Für die Aufnahme werde ich zum 1.Mal zwei Kameras verwenden. Meine Webcam nimmt die Einstellung im Modulationsmenü auf und die Handycam gleichzeitig das Oszilloskopbild. Für den Videoschnitt verwende ich die Freeware VSDC Video Editor. Mit dem Programm habe ich die Möglichkeit, beide Videos übereinander zu legen und das verkleinerte Oszilloskopbild in der oberen linken Ecke zu positionieren. Ferner können Untertitel und Textblasen eingefügt werden. Als Beispiel das Youtube Video im letzten Beitrag.

VSDC Video Editor: http://www.chip.de/downloads/VSDC-Free- ... 65703.html

Lieben Gruß aus dem sonnigen Wuppertal. Rolf
 
Re: AVR Synthesizer "WAVE 1"

Hallo again..

Bin gerade noch auf ein Video vom Formant Musik Synthesizer der Fachzeitschrift Elektor aus dem Jahr 1978 gestoßen. Was für ein Sound ebueb

Formant Musik Synthesizer
FormantSynth.jpg



Beitrag: beantworten | zitieren | editieren | melden | Top
Hallo again..

Bin gerade noch auf ein Video vom Formant Musik Synthesizer der Fachzeitschrift Elektor aus dem Jahr 1978 gestoßen. Was für ein Sound :phat:

Formant Musik Synthesizer


Youtube: https://www.youtube.com/watch?v=3XnxSrlJhng

Info: http://dl.lojinx.com/analoghell/Elektor ... esiser.pdf

Bilder: http://www.albert-av.de/htm/Formant/formant.htm

Viel Spaß beim anhören. Rolf
 
Re: AVR Synthesizer "WAVE 1"

Hallöchen.. da bin ich wieder fröhlich

Nach längerer Urlaubs- und Gedankenpause hab ich wieder Neues zu berichten.

Die Modulationsmatrix ist fertig. Es stehen insgesamt 12 Slots zur Verfügung in dem jeweils eine Modulationsquelle mit einem Ziel verknüpft werden kann. Die Modulationsstärke kann von +64 bis -64 geregelt werden. Die Tage werde ich dann ein ausführliches Video mit dem DE:generator und meinem neuen DigiScope machen.

Modulationsmatrix
Picture%2B26.jpg
Picture%2B27.jpg


Zur Zeit programmiere ich noch ein wenig an den neuen Funktionen für die Oszillatoren. Folgende Funktionen sind bereits implementiert: SUM, Ring, XOR, Sync, Bitcrushing, Noise und FM.
Auch hier folgt ein Video sobald das neue DigiScope angekommen ist smile

Oszillator Menü
Picture%2B28.jpg
Picture%2B29.jpg


Mein neues DigiScope
DigiScope.jpg


Mein altes Hameg HM203-6 20MHz hat fast 20 Jahre auf'm Buckel und läuft immer noch. Gut.. ein paar Dinge funktionieren nicht mehr so wie am Anfang, zB haben die Poties und Drehschalter manch mal einen kleinen Wackelkontakte, aber im Prinzip tut es doch noch seinen Dienst.

Mein neues Scope ist ein Siglent SDS1072CML Zweikanal Digital-Oszilloskop mit einer Bandbreite von 70 MHz, einer Abtastrate von 1 GSa/s und einer Speichertiefe von 2 Mpts. Die großen 7" (17,78 cm) TFT Farbbildschirme idt sehr gut ablesbar und durch 18 Divisions in der Horizontalen steht ständig ein maximaler Bereich für die Signaldarstellung zur Verfügung. Die Signalkurven und die FFT-Anzeige kann gleichzeitig im Display angezeigt werden. Ein sehr nützliches Future ist die Alternative Trigger Funktion. Das Oszilloskop kann damit auf beide Kanäle getrennt Triggern. Damit können auch Signale unterschiedlicher Frequenz sauber gleichzeitig dargestellt werden. Freu mich schon sehr drauf. "Rolf-Packt-Aus" ebueb

Gruß Rolf
 
FM-Synthese

Hallöchen..

Die letzten Tage habe ich an einer einfachen FM-Synthese für den DE:generator programmiert. Die FM-Synthese ist vermutlich vielen schon bekannt, aber für die Neulinge unter euch hier ein kleiner Erklärungsversuch.

Der Begriff FM steht für Frequenzmodulation. Kern einer einfachen FM-Synthese ist ein Paar aus zwei Oscillatoren. Die Amplitude des 1.Oszillators (Modulator) steuert die Tonhöhe - also die Frequenz - des 2.Oszillators (Carrier). Das Verändern der Frequenzverhältnisse von Modulator zu Cerrier und die Veränderung der Amplitude des Modulators steuern dabei den Klang.

FM-Synthese
FM_Synth03.jpg


Mit der Frequenzmodulation lassen sich viele komplexe Klangspektren erzeugen, egal ob Bässe, E-Pianos oder Glockenspiel bis hin zu stimm- und vokalartigen Sounds. Dabei ist nicht wirklich voraussagbar, wie der Sound danach erklingen wird, bietet aber zum Experimentieren und Erzeugen von Effekten einen sehr weiten Spielraum. Bei der FM werden in der Regel Sinuswellen benutzt, aber es können auch andere Wellenformen verwendet werden. Die zu erzeugende Klangfarbe wird dabei durch die Frequenzverhältnisse zwischen den Operatoren in Ratio-Werten angegeben. Die Ratio-Zahl gibt das Vielfache der jeweils gespielten Tonhöhe an.

Im DE:generator gibt es zwei FM Oszillatoren mit jeweils einem Parameter für Ratio und Frequenz. Im Anhang der Assembler-Code für einen FM Oszillator.

Youtube: FM Klangbeispiel aus dem DE:generator



Für die Programmierer unter euch im Anhang das Assembler-File für einen FM Generator im DE:generator. Dank gebührt Olivier aus dem Mutable_Forum und Wolfgang (alias Wiesolator) für die Ideen und die Bereitstellung von Code Bibliotheken.

Gruß Rolf
 

Anhänge

  • FM_Synthese.txt
    3,2 KB · Aufrufe: 6
Re: AVR Synthesizer "WAVE 1"

Modulationsmatrix ist im Gegensatz zum Rest übrigens deutsch.
Dachte mir nur dass wahrscheinlich alles Englisch sein sollte, also "modulation matrix".
 
Re: AVR Synthesizer "WAVE 1"

Hallöchen..

Zur Abwechslung wird mal wieder an der Hardware im DE:generator geschraubt. Die VCA Schaltung soll etwas verbessert werden und die Störgeräusche wzB das 50Hz Netzbrummen verringert werden. Durch den ganzen Drahtverhau unter der Prozessor Platine ist es schon erstaunlich das die Störgeräusche nicht viel größer sind. Durch dickere Masseverbindungen im Analogteil und Anpassung des Ausgangsverstärkers konnte ich das Netzbrummen so weit verringern, das es im Rauschteppisch des Audioausgangs fast untergeht.

Änderung in der VCA Schaltung (alte Schaltungsvariante Channel 1, neu Channel 2)
VCA_Board_2.3.jpg


Fx Schaltung
Fx_2.0.jpg


Drahtverhau unter der Prozessorplatine
Picture%2B1.jpg


Gruß Rolf
 
Re: AVR Synthesizer "WAVE 1"

Hi

Wegen der analogen Filter:
Bitte so bauen das der Bassbereich NICHT abgesenkt wird wenn die Resonanz aufgedreht wird.

Wenn nicht mehr möglich, bitte noch einen digitalen Filter einbauen.

Hab nun 3 analog Synths und muss leider feststellen das ich die Resonanz dort GAR NICHT mehr verwende, weil der Sound dann nicht mehr so fett ist !!!

Grüsse

Moroe
 
Re: AVR Synthesizer "WAVE 1"

Hallo Moroe..

Der Filter im DE.generator ist so konstruiert, das sich die Amplitude bei Resonanz kaum ändert.


Stand der Dinge
Am VCA wird zur Zeit noch etwas geschraubt und gelötet. Mit meinem neuen Digi Scope hab ich schon einmal ein paar Messungen gemacht. Es ging dabei um die Verbesserung der VCA-Hüllkurve und Midi-Latenz.
Als Vergleichsobjekt musste mal wieder der kleine (aber feine) Shruthi Synthesizer herhalten.

Alte VCA-Schaltung (gleiche wie im Shruthi)
VCA_old.jpg


Neue VCA-Schaltung für DE:generator
Die Bauteilwerte müssen noch für eine Versorgungsspannung von +8V/-8V angepasst werden
VCA_new.jpg


Vergleich Attack Phase neue und alte VCA-Schaltung
Pic1: yellow = new circuit, blue = old circuit, Attack value = 21
Pic1.jpg


Vergleich Attack Phase neue und alte VCA-Schaltung
Pic2: yellow = new circuit, blue = old circuit, Attack value = 0
Pic2.jpg


Vegleich der VCA-Hüllkurve zwischen DE:generator (gelb) und Shruthi (blau)
Auf beiden Synths die gleiche Attack Value = 30
SDS00008.jpg


Midi Latenz im Vergleich zwischen Shruthi und DE:generator
Midi_Latenz.jpg


Shruthi have smallest 3.44 msec
DE:generator have smallest 2.38 msec


Gruß Rolf
 
Re: AVR Synthesizer "WAVE 1"

Hallöchen..

Es mach richtig Spaß mit meinem neuen DigiScope zu arbeiten. Spaßeshalber habe ich mir mal die Ausgangssignale vom DE:generator und Shruthi über die FFT-Funktion im DigiScope angesehen und ermittelt, wie stark die PWM-Steuerspannung für die Filter- und VCA-Schaltung am Ausgang noch zu sehen sind. Die PWM-Frequenz liegt im DE:generator bei 31KHz und im Shruthi bei 39KHz.

Für die Messung steht der Filter Cutoff Wert auf 127 (Filter inaktiv)

Bild 1: DE:generator mit neue VCA-Schaltung und besserer Unterdrückung der PWM-Frequenz
Pic1.jpg



Bild 2: DE:generator mit alter VCA-Schaltung.
Man sieht hier deutlich die PWM-Frequenz von 31KHz
Pic2.jpg



Bild 3: Shruthi Synthesizer mit 39KHz PWM
Pic3.jpg



Gruß Rolf
 
Re: AVR Synthesizer "WAVE 1"

Hallo zusammen...

Montag Morgen und Regen... huh. Aber die Woche fängt für mich gut an und die Ideen sprudeln nur so.

Parallel zum DE:generator arbeite ich für einen guten Freund an der Entwicklung eines kleinen digital steuerbaren VCO Moduls.
Das Konzept ist nicht neu und auch nicht revolutionär. In den 80er Jahren wurde das schon ähnlich im Juno Synthesizer gemacht.

Link: http://www.google.de/imgres?imgurl=http ... T4KHTivAlc

Das Prinzip
Ein ATMEL Mikrocontroller steuert die Frequenz eines analogen Rampengenerators (der eigentliche VCO). Durch einen kurzen Steuerimpuls
am Transistor T1 wird der Kondensators C1 sehr schnell entladen und die Rampenspannung sinkt auf Null Volt. Jetzt sperrt Transistor T1 und
der Kondensator fängt an sich wieder aufzuladen. Die Rampenspannung steigt wieder. Je schneller die Steuerimpulse desto größer die Frequenz im Rampengenerator.

Bild 1: Digital steuerbarer VCO
DE_integrator_03.jpg



Leider gibt es da ein kleines Problem :sad: Mit zunehmender Frequenz wird die Ausgangsspannung am Rampengenerator immer kleiner. Der Grund ist,
dass der Kondensator C1 nicht mehr genug Zeit hat, sich voll Aufzuladen. Abhilfe schafft hier die Erhöhung der Ladespannung für den Kondensator
durch den Mikrocontroller.

Gruß Rolf
 
Re: AVR Synthesizer "WAVE 1"

Hallo liebe Freunde und Leser

Zur Abwechselung habe ich mal wieder meinen Lötkolben in die Hand genommen und die VCA Schaltung im DE:genrator umgelötet. Der VCA ist jetzt fertig und funktioniert prächtig. Er hat eine sehr kurze Anstiegszeit und sehr gute Unterdrückung der PWM Steuersignale am Ausgang.

VCA Schaltung
VCA_Board_3.1.jpg


Da der Mikrocontroller seinen PWM Portausgang nicht ganz auf 0 Volt bekommt, wird durch die Restspannung am CV-Eingang der VCA nicht ganz geschlossen und man kann bei nicht gedrückter Taste noch einen sehr leisen Ton wahrnehmen. Mit dem Trimmer R23/43 lässt sich die Offset Spannung am CV-Eingang so ausgleichen, dass am VCA Ausgang kein Ton mehr zu hören ist.

Das gleiche Problem konnte ich bei einem alten JUNO Synthesizer feststellen, den ein Freund vor kurzem auf einem Flohmarkt für schlappe 20 € gekauft hat :selfhammer:


Gruß Rolf
 
Re: AVR Synthesizer "WAVE 1"

Hallöchen..

Zur Zeit arbeite ich an einer Produktpräsentation für den DE:generator. Es ist als Techniker nicht immer ganz einfach, die passenden Worte und Satzformulierungen zu finden, um seine Entwicklung auch dem Leien zu erklären. Aber ich habs versucht und hoffe das es mir gelungen ist. Hier eine kleine Kostprobe..

Produktpräsentation
Blatt_01.jpg


Blatt_02.jpg


Gruß Rolf
 
Re: AVR Synthesizer "WAVE 1"

Ja super danke!

Der Kollege Andre sitzt schon fleißig an der Platinen Entwicklung. Ich feile noch ein wenig an der Software.
Wenn alles gut läuft und die Weltkonjunktur nicht in den Keller sinkt schätze ich bis spätestens zu Weihnachten
mit der Auslieferung. Dann komme ichaber persönlich als Nikolaus verkleidet und überreiche jedem sein Päckchen :opa:

Gruß Rolf
 
Re: AVR Synthesizer "WAVE 1"

Es fehlen noch die Technischen Daten. Das Manual ist noch nicht ganz fehlerfrei und vollständig. Aber ich arbeite daran Augenzwinkern

Manual_03
Manual_01.jpg


Manual_04
Manual_02.jpg


Manual_05
Manual_03.jpg


Manual_06
Manual_06.jpg




Ein Problem gibt es beim abfotografieren der Menüseiten im Display. Durch den starken Kontrast und die ungleichmäßige Ausleuchtung sind die Fotos allesamt nicht besonders gut geworden. Mal schaun wie wir das besser machen können.

Gruß Rolf
 
Re: AVR Synthesizer "WAVE 1"

Evtl. hab ich es ja überlesen , aber : Lassen sich die beiden 12dB VCFs hintereinander schalten um ein 24dB Filter darzustellen ( moog Kaskade) ?
 
Re: AVR Synthesizer "WAVE 1"

Hallo Humax5600

Im DE:generator ist ein austauschbares Filterboard geplant (ähnlich wie im Shruthi Synthesizer von Olivier). Das aktuelle Filterboard ist ohne Kaskaden Schaltung.

Gruß Rolf
 
Re: AVR Synthesizer "WAVE 1"

Hallo und guten Morgen smile

Zur Zeit arbeite ich an der Sample-Funktion im DE:generator. Die Aufnahme klappt schon, aber die Störgeräusche sind noch sehr hoch. Gesamplet wird über den externen Filtereingang und VCA Ausgang mit 12Bit. Anschließend wird das Ergebnis auf 8Bit reduziert (Kappung der unteren 4 Bit) und ins Ram geschrieben. Das sollte den Störeinfluss vermindern. Klappt aber irgendwie noch nicht ganz.. Mal schaun wo das Problem liegt...


Bild: ADC Eingang
ADC_31.jpg


Mit R108 wird der Eingangspegel justiert und mit R101 der DC-Offset für den ADC Eingang.

Gruß Rolf
 
Re: AVR Synthesizer "WAVE 1"

Hi,

tolle sache! Wann wird der für wieviel Geld erhätlich sein und hast du evtl. auch an eine Eurorack Variante gedacht?
 
Re: AVR Synthesizer "WAVE 1"

Danke :)

Für den DE:generator planen wir eine Crowdfunding Kampagne. Kostenpunkt für den Bausatz inkl. Gehäuse unter 350,- Euro.
Sollte die Crowdfundig Kampagne erfolgreich sein, planen wir direkt im Anschluss einen kleinen Eurorack Sampler mit Grafik Display.

Gruß Rolf
 
Re: AVR Synthesizer "WAVE 1"

wow, toll das ihr einen kompletten bausatz plant. für den angedachten preis solltet ihr wenig probleme haben den synth zu verkaufen.
tolles projekt! ich wünsche euch alles gute damit der synth ein erfolg wird!!!

mfg Aven
 
Re: AVR Synthesizer "WAVE 1"

rolfdegen schrieb:
Is aber noch verdammt viel arbeit :selfhammer:

Bitte aber noch ein paar Pins auf der Platine einplanen wo man dann mehrere Drehregler und Taster anhängen kann (so wie Shruti XT)
Würde den Wave1 dann in ein grösseres Gehäuse mit vielen Potis einbauen.
 


Zurück
Oben