rolfdegen

Members
  • Content count

    395
  • Joined

  • Last visited

Community Reputation

11 Good

About rolfdegen

  • Rank
    MIDIbox Tweaker

Profile Information

  • Gender Male
  • Location Germany Wuppertal
  • Interests Musikelektronik, Mikrocontroller, Programmierung in C# und ASM, Computertechnik
  1. AVR-Synthesizer "WAVE 1"

      Es gibt ein neues Firmware Update für den DEGENERATORBuild 3.64b 01.04.2018- DMA Transfer mit Double-Buffer Funktion für Audio-Daten implementiert. Spart Prozessor Ressourcen- Fast 16Bit Noisegenerator implementiert. Spart Prozessor-RessourcenIch habe mich am Osterwochenende endlich mal hingesetzt und mich mit der DMA-Funktion im ATXmega128 beschäftigt. Die DMA-Funktion hatte ich immer vernachlässigt, da ich dachte, das sie mir nicht viel an Prozessor-Ressourcen einsparen würde. Aber wer's nicht wagt, der wird's nicht erfahren oder so..  Gesagt getan. Jetzt war nur zu überlegen, wie der DMA am effektivsten eingesetzt werden kann. Im DEGENERATOR existieren u.a. zwei Double-Buffer für die Audio-Ausgabe. Ich habe mir überlegt, dass die DMA-Funktion hier die größte Einsparung und Entlastung für den Prozessor einbringen könnte. Ferner bringt der ATXmega128 insgesamt 4 DMA Kanäle mit Double-Buffer Funktion mit. Wobei allerdings zwei DMA-Kanäle für eine Double-Buffer zusammengeschaltet werden müssen. Dies kann man dann idealer Weise für die beide Audio-Kanäle verwenden.DMA-ControllerDer DMA-Controller (Direct Memory Access) ermöglicht das Übertragen von Daten zwischen Speicher und Peripheriegeräten ohne große Prozessorauslastung. Während der DMA-Controller Daten von einem Speicherbereich zu einem anderen Bereich kopiert, kann die CPU andere Aufgaben wzB. Tastenabfrage oder Textausgabe auf einem LC-Display ausführen.Link: DMA Funktion im Xmega Bild: Datenübertragung mit CPUInitialisierung des DMA-Kontrollers im DEGENERATOR //************************************************************************* // DMA init //************************************************************************* void dma_init(void){ DMA.CTRL = DMA_CH_ENABLE_bm | DMA_DBUFMODE_CH01CH23_gc; // set Double Buffer and enabled // DMA Channel 0 (Audio-Buffer A) DMA.CH0.ADDRCTRL = DMA_CH_SRCRELOAD_TRANSACTION_gc | DMA_CH_SRCDIR_INC_gc | DMA_CH_DESTRELOAD_BURST_gc | DMA_CH_DESTDIR_INC_gc; DMA.CH0.TRIGSRC = DMA_CH_TRIGSRC_DACB_CH0_gc; // DACB CH0 is trigger Quelle DMA.CH0.DESTADDR0 = (((uint32_t)(&DACB.CH0DATAH))>>0*8) & 0xFF; DMA.CH0.DESTADDR1 = (((uint32_t)(&DACB.CH0DATAH))>>1*8) & 0xFF; DMA.CH0.DESTADDR2 = (((uint32_t)(&DACB.CH0DATAH))>>2*8) & 0xFF; DMA.CH0.TRFCNT = 128; DMA.CH0.SRCADDR0 = (((uint32_t)(&Voice.Buffer_A))>>0*8) & 0xFF; DMA.CH0.SRCADDR1 = (((uint32_t)(&Voice.Buffer_A))>>1*8) & 0xFF; DMA.CH0.SRCADDR2 = (((uint32_t)(&Voice.Buffer_A))>>2*8) & 0xFF; DMA.CH0.CTRLA = 0xA4; // Aktivieren, Wiederholen, 1 Byte, Single // DMA Channel 1 (Audio-Buffer B) DMA.CH1.ADDRCTRL = DMA_CH_SRCRELOAD_TRANSACTION_gc | DMA_CH_SRCDIR_INC_gc | DMA_CH_DESTRELOAD_BURST_gc | DMA_CH_DESTDIR_INC_gc; DMA.CH1.TRIGSRC = DMA_CH_TRIGSRC_DACB_CH0_gc; // DACB CH0 is trigger Quelle DMA.CH1.DESTADDR0 = (((uint32_t)(&DACB.CH0DATAH))>>0*8) & 0xFF; DMA.CH1.DESTADDR1 = (((uint32_t)(&DACB.CH0DATAH))>>1*8) & 0xFF; DMA.CH1.DESTADDR2 = (((uint32_t)(&DACB.CH0DATAH))>>2*8) & 0xFF; DMA.CH1.TRFCNT = 128; DMA.CH1.SRCADDR0 = (((uint32_t)(&Voice.Buffer_B))>>0*8) & 0xFF; DMA.CH1.SRCADDR1 = (((uint32_t)(&Voice.Buffer_B))>>1*8) & 0xFF; DMA.CH1.SRCADDR2 = (((uint32_t)(&Voice.Buffer_B))>>2*8) & 0xFF; DMA.CH1.CTRLA = 0xA4; // Aktivieren, Wiederholen, 1 Byte, Single // DMA Channel 2 (Audio-Buffer C) DMA.CH2.ADDRCTRL = DMA_CH_SRCRELOAD_TRANSACTION_gc | DMA_CH_SRCDIR_INC_gc | DMA_CH_DESTRELOAD_BURST_gc | DMA_CH_DESTDIR_INC_gc; DMA.CH2.TRIGSRC = DMA_CH_TRIGSRC_DACA_CH0_gc; // DACA CH0 is trigger Quelle DMA.CH2.DESTADDR0 = (((uint32_t)(&DACA.CH0DATAH))>>0*8) & 0xFF; DMA.CH2.DESTADDR1 = (((uint32_t)(&DACA.CH0DATAH))>>1*8) & 0xFF; DMA.CH2.DESTADDR2 = (((uint32_t)(&DACA.CH0DATAH))>>2*8) & 0xFF; DMA.CH2.TRFCNT = 128; DMA.CH2.SRCADDR0 = (((uint32_t)(&Voice.Buffer_C))>>0*8) & 0xFF; DMA.CH2.SRCADDR1 = (((uint32_t)(&Voice.Buffer_C))>>1*8) & 0xFF; DMA.CH2.SRCADDR2 = (((uint32_t)(&Voice.Buffer_C))>>2*8) & 0xFF; DMA.CH2.CTRLA = 0xA4; // Aktivieren, Wiederholen, 1 Byte, Single // DMA Channel 3 (Audio-Buffer D) DMA.CH3.ADDRCTRL = DMA_CH_SRCRELOAD_TRANSACTION_gc | DMA_CH_SRCDIR_INC_gc | DMA_CH_DESTRELOAD_BURST_gc | DMA_CH_DESTDIR_INC_gc; DMA.CH3.TRIGSRC = DMA_CH_TRIGSRC_DACA_CH0_gc; // DACA CH0 is trigger Quelle DMA.CH3.DESTADDR0 = (((uint32_t)(&DACA.CH0DATAH))>>0*8) & 0xFF; DMA.CH3.DESTADDR1 = (((uint32_t)(&DACA.CH0DATAH))>>1*8) & 0xFF; DMA.CH3.DESTADDR2 = (((uint32_t)(&DACA.CH0DATAH))>>2*8) & 0xFF; DMA.CH3.TRFCNT = 128; DMA.CH3.SRCADDR0 = (((uint32_t)(&Voice.Buffer_D))>>0*8) & 0xFF; DMA.CH3.SRCADDR1 = (((uint32_t)(&Voice.Buffer_D))>>1*8) & 0xFF; DMA.CH3.SRCADDR2 = (((uint32_t)(&Voice.Buffer_D))>>2*8) & 0xFF; DMA.CH3.CTRLA = 0xA4; // Aktivieren, Wiederholen, 1 Byte, Single } //************************************************************************* // Timer0 Interrupt: DAC Task 40KHz/25usec //************************************************************************* ISR(TCC0_OVF_vect) { // DMA Interrupt ------------------------------------------------------ // if Channel Transaction Complete Interrupt Flag set if (DMA.INTFLAGS & DMA_CH0TRNIF_bm) { // set buffer_nr Voice.buffer_nr = 0; // set buffer_fill interrupt TCE1.INTCTRLA = 0b00000010; // clear DMA Interrupt (set one) DMA.INTFLAGS |= DMA_CH0TRNIF_bm; } else if (DMA.INTFLAGS & DMA_CH1TRNIF_bm) { // set buffer_nr Voice.buffer_nr = 1; // set buffer_fill interrupt TCE1.INTCTRLA = 0b00000010; // clear DMA Interrupt (set one) DMA.INTFLAGS |= DMA_CH1TRNIF_bm; } .... Ferner habe ich den 16Bit Noise-Generator überarbeitet. Dieser ist jetzt als Inline Assembler Code vorhanden und etwas kürzer im Code und in der Berechnungszeit. Er benötigt jetzt nur noch 512ns (16 Taktzyklen).Hierbei habe ich aus Zeitgründen auf die Übergabe der Ergebniswerte in der Funktion verzichtet und die Werte direkt in die Ausgabe-Variablen RNG_8 und RNG_16 geschrieben.Fast Noisegenerator uint16_t RNG_16; uint8_t RNG_8; static inline Noise8(void) { asm volatile ( "lds r30, RNG_16+0" "\n\t" "lds r31, RNG_16+1" "\n\t" "lsr r31" "\n\t" "ror r30" "\n\t" "brsh xxor" "\n\t" "ldi r17, 0xb4" "\n\t" "xxor: eor r31, r17" "\n\t" "sts RNG_8, r30" "\n\t" "sts RNG_16+0, r30" "\n\t" "sts RNG_16+1, r31" "\n\t" ::: "r17", "memory" ); }   Grüße aus Wuppertal. Rolf
  2. AVR-Synthesizer "WAVE 1"

    Der singende DE-GENERATORLink: https://soundcloud.com/rolf-degen/singing-de-generatorParametereinstellungenOsc1: VowelOsc2: Vowel -7 semitonesEnv1: CUTOFF + Osc1+2 vowel parameterEnv2: VCALFO1: Osc1+2 fine tunePortamento: 14Delay: Time 114 / Feedback 79 / Volume 127    I love vowel sounds  Link: https://soundcloud.com/rolf-degen/vowelyy    DE-GENERATOR with Midi Control ChangeMIDI-Control-Change-Meldungen werden verwendet, um eine Vielzahl von Funktionen in einem Synthesizer fern zu steuern.Youtube: https://youtu.be/bueQeDujiEI    Bald ist der Synthi fertig. Gibt immer noch kleine Bugs die beseitigt werden müssen oder beseitigt wurden. Hier ein kleiner Auszug von den letzten Bugs..Build 3.61- Scope Darstellung geändert. Auflösung wurde von 150 auf 64 Pixel reduziert. Dadurch Systemlast verringert. Zeitbasis passt sich jetzt automatisch an Audiofrequenz an. - Fehler in Ringmodulation auf der Oszillator Page beseitigt - Vowel Sound implementiert (Shape: VOW)- SoundBuffer Größe von 40 auf 128 erhöt. Menüdarstellung und Bedienung wird dadurch etwas schneller und flüssiger- Für eine geringere Systemlast wurden einige Funktionen in der Soundengine verbessert.- Berechnung der Notenfrequenz verbessert. Tabellenwerte jetzt 16Bit- Oscillator Page: Tune -1 / +1 semitones- Modmatrix: Osc pitch jetzt -16 / +16 semitones - Modmatrix: LFO-LEDs leuchten jetzt auch wenn LFO als Ziel ausgewält wird und Amount <>0 ist- Portamento Funktion auf der System Page integriert- Systempage: Osc_Pitch von -2 / +2 Oktaven und Tune -1 / 1+ Semitones wird nur im EEPROM gespeichertBuild 3.61a- Auswahl von Shape "VOW" (Vowel) auf Osc Page funktioniert jetzt...unt -1 / +1 Semitones- Modmatrix: Pitchbend ~ Osc1 oder Osc2 fine, Amount -1 / +1 Semitones- Modmatrix: LFO1 ~ Osc1+2, Amount -4 / +4 Semitones- Modmatrix: LFO1 ~ Osc1 oder Osc2, Amount -16 / +16 Semitones- Modmatrix: LFO1 ~ Osc1 fine, Amount -1 / +1 Semitones- Modmatrix: LFO1 ~ Osc1 oder Osc2 fine, Amount -1 / +1 Semitones- Fx_Delay: Panorama hinzugefügt- System Page: Midi CC on/off hinzugefügt- Sequencer: Start/Stop Problem bei großen Hold-Werten (> 100) beseitigt. - Modmatrix: Filter Balance hinzugefügtBuild 3.63d 28.02.2018- Modmatrix: LFO Modulationsstärke angepasstBuild 3.63e 01.03.2018- Osc: Parameter "RING" für Ringmodulation verstärktBuild 3.63f 03.03.2018- Modulationsmatrix: geänderte Amount für Osc Pitch - 16 / + 16 Semitones- Modulationsmatrix: geänderte Amount für Osc fine - 2 / + 2 Semitones- Modulationsmatrix: Modwheel Amount Wert vergrößert (von 127 auf 255)- Osc-Page: Osc-Sync für alles Wellenformen außer Samples[Gruß Rolf    Hallo ihr Lieben..Hier gehts mal nicht um den DEGENERATOR (das Ende naht  ), sondern um eine sehr schöne und interessante Web-Seite, in der es um Synthesizer Selbstbau und den Nachbau eines Mini-Moog Synthis geht.https://www.subroutine.info/Gruß Rolf    Es wurde Zeit für etwas Neues..Ich meine natürlich nicht meinen DEGENERATOR, sondern ein neues und gemütliches Arbeitszimmer(siehe Bilder). Zuerst sollte es nur ein neuer Büroschrank werden um den ganzen Elektronik-Müll, dersich seit Jahren angesammelt hat, zu verstauen. Als ich dann aber durch die Schwedischen Einkaufs-hallen in Wuppertal wanderte und die "Ungeahnten Möglichkeiten" sah, dann überkam mich die Lustauf mehr.So wurde es dann doch noch ein großer Eckschreibtisch mit Rollcontainer samt Bürostuhl und kleinerKomode. Als ich dann endlich gehen wollte, viel mir noch ein gemütlicher Ohrensessel auf, der fürGäste oder für Entspannung dienen soll. Mein Budget für das Arbeitszimmer war zwar erschöpft,aber ein kleiner Notbookständer für meine zwei Synthesizer habe ich dann auch noch bestellt. Das alte Arbeitszimmer, bestehend aus einem Wohnzimmertisch, einem Küchentisch als Lötecke, zweiRegalen, einem Sideboard und einem Sofa, habe ich mit Hilfe meines netten Nachbarn auf den Sperr-müll gestellt. So war denn ausreichend Platz für den großen Eckschreibtisch mit Lötecke und Büro-schrank mit zwei Regalen.Bilder:https://lh3.googleusercontent.com/-837IB...0325_015715.jpghttps://lh3.googleusercontent.com/-ZAYuX...0325_014416.jpgAch was soll ich sagen.. Jetzt ist es richtig schön gemütlich und das arbeiten macht doppelt Spaß  Grüße aus Wuppertal. Rolf    DEGENERATOR Firmware/BuglistBuild 3.63f 03.03.2018 - Modulationsmatrix: geänderte Amount für Osc Pitch - 16 / + 16 Semitones- Modulationsmatrix: geänderte Amount für Osc fine - 2 / + 2 Semitones- Modulationsmatrix: Modwheel Amount Wert vergrößert (von 127 auf 255)- Osc-Page: Osc-Sync für alles Wellenformen außer SamplesBuild 3.63g 11.03.2018 - Init Sound: Osc1:SAW / Mod. ENV1~Cutoff +33 / Mod. ENV2~VCA +63 / Mod. PitchBend~Osc1+2 Pitch +8 / Mod. MWheel = LFO1~Osc1+2 fine +32- Polling time für Midi buffer auf 250us verringert. - Midi overflow symbol [!] in der Überschriftleiste integriertBuild 3.64 11.03.2018 - Modmatrix: Mit der Taste "MOD-MAT" kann jetzt von Slot 1-6 auf Slot 7-12 gewechselt werden- Wird die Taste "CANCEL" länger als 3sec gedrückt, werden im DEGENERATOR alle Noten ausgeschaltet (Panic-Funktion)Build 3.64a 22.03.2018 - Draw sample curve on osc-page if new sample recording- Sample Editor: MUTE/CUT/LOOP/REV/SEC/SECL funktioniert jetzt    Neues Panelboard für den DEGENERATORAndre von TubeOhm instruments hat ein neues Panelboard für den DEGENERATOR entwickelt.Die Änderungen bestehen im wesentlichen aus einem anderem TFT Display und zusätzlichen Leucht-dioden für die beiden Taster "REC" und "SEQ". Falls die Leuchtaster nicht mehr lieferbar sind, werdendie zwei LED's als Ersatz neben den beiden Tastern bestückt. Auf meinen Wunsch ist dann noch eineMidi-LED imlementiert worden.DEGENERATOR PanelboardLink: https://plus.google.com/photos/photo/114...rDm9O8ygE&hl=deLink: https://plus.google.com/photos/photo/114...536338626?hl=deBis zum nächsten mal. Schöne Ostergrüße aus Wuppertal  
  3. AVR-Synthesizer "WAVE 1"

    Hallo liebe Mitleser..Mein guter Freund Thomas Margolf aus Holland hat mir heute einen Bootloader für den DE-GENERATORgeschickt. Damit ist es jetzt möglich, die Firmware für den DE-GENERATOR über die SD Karte zuflashen. Allerdings gibts noch Probleme mit älteren 4GB Karten von SandDisk. Mal schaun woran esnoch liegt.. Hab mal ein kleines Video gedreht ums zu zeigen. Auf der SD Karte befindet sich die Firmware.Für's flashen muss beim Einschalten die "LOAD" Taste gedrückt und gehalten werden. Ist das FirmwareFile vorhanden und ok, dann fangen die Led's an zu blinken. War der Flashvorgang erfolgreich blinkt kurzdie 1.LFO LED. Sollte ein Fehler aufgetreten sein, wird das mit dem Aufleuchten der 3.LFO Led signalisiert.Eine Textausgabe über das TFT-Display passte leider nicht mehr in den 8 KByte großen Bootsektor.Youtube: https://youtu.be/X90Xk2eUY2oGruß Rolf    Hallöchen..Hab mal wieder etwas Geld von der Bank abgehoben und in meinen Arbeitsplatz investiert. Ein schöner großer 32" Monitor von BENQ (BENQ PD3200Q) mit 2560 x 1440 Pixel Auflösung und Höhenverstellung war auf der Wunschliste. Was mir bei der Auswahl eines Monitors besonders wichtig war, ist ein Augenschonendes Arbeiten. Der BENQ PD3200Q hat für diesen Zweck einige Technologien integriert. Die Flicker-free Technik verhindert das Flimmern des Displays. Das ermöglicht stundenlanges Arbeiten ohne müde oder brennende Augen. Zusätzlich hat der Monotor eine Low-Blue-Light Funktion. Diese Technologie filtert schädliches blaues Licht heraus um die Irritationen der Augen zu verringern. BENQ PD3200QLink: http://www.benq.de/product/monitor/pd3200q/Gruß Rolf    Hallo..Hier zur Abwechslung mal was lustiges. Hier macht kein Oszillator die Töne sondern eine Reihe von alten FloppyDisk Laufwerken, Festplatten und Scannern. Echt ideenreich wie ich finde  The Floppotron in concert: Sweet DreamsYoutube: https://www.youtube.com/watch?v=oGfkPCZYfFwGruß Rolf    Einen kleiner Ausschnitt an Dingen, die ich in den vergangenen Wochen am DE-GENERATOR programmiert habe:Build 3.37 05.08.2017 - Externen Midi-Clock implementiert Build 3.38 30.08.2017 - Sequencer Funktion integriert Build 3.39 09.09.2017 - Osc Mode im Osc-Mneü jetzt über Enc3 einstellbar - Fehler bei der Berrechnung und Anzeige für freies Sample Ram beseitigt - Share Mode (SHA) für Osc2 implementiert. Ist die Funktion im Osc2 Mneü eingeschaltet, dann teilt sich Osc2 den gleichen Sample mit Osc1. Interessant für Phasing oder andere Effekte - CPU Last wird nur auf der System Page angezeigt - Scope Funktion ist zwecks CPU Entlastung jetzt abschaltbar - Interpolations Routine in den Oszillatoren wurde optimiert (schneller) Build 3.40 24.09.2017 - Osc Wave- und Sample Mode optimiert - CPU Last Anzeige entfernt - Temperaturanzeige entfernt - Scope Page entfernt Build 3.41 29.09.2017 - Beim Laden eines neuen Patchs wird der Transpose Wert für die Noten im Sequencer jetzt auf null gesetzt.  - Die Sample Recording Function ist bei Auswahl von Page 12 jetzt immer ei...aden eines neuen Patch wurde die Wellenform im CPU Ram nicht aktuallisiert. - Einige Fehler beseitigt  Build 3.42 03.10.2017 - Sequencerstart jetzt über die Funktion "PLAY" einstellbar. Im "KEY" Mode startet und stopt der Sequencer mit der "SEQ" Taste am DE-GENERATOR. Im "Note" Mode startet der Sequencer mit einer Keyboard Taste und stopt beim loslassen. Build 3.50 22.10.2017 - Bootloader integriert Build 3.52 31.10.2012 Sampel-Page:  - Rec-Led Status auf der Sample-Page integriert. 25% Led-Licht: Aufnahme wartet auf Threshold Level oder Midi_Note Event. 100% Led-Licht bei aktivierter Aufnahme - Im Sample Rec-Mode "Note" ist der Aufnahmestart oder Ende über Midi-Note möglich. Sequencer Page: - Im Sequencer PLay_Mode "NOTE" startet und stop der Sequencer über eine Midi_Not - Transponieren funktioniert jetzt in allen beiden Sequencer Play_Modes - Bei der Auswahl eines Steps werden jetzt alle Step-Paramter aktualisiert - Die Step-Auswahl ist jetzt über Encoder 3 möglichSequencer PagesDer Rote Punkt markiert den laufenden Step. H den Haltewert für die Note. Der dunkelgraueBalken die Lautstärke der NoteGruß Rolf    Hallöchen..Wärend ich auf meine Lieblings-Pizza warte (ist von Dr.Otker und brauch im Backofen immer 10min) schreib ich mal schnell diesen Beitrag  Eigentlich ist es nur ein Hinweis auf mein neues Youtube Video. Hab mal neue Sounds und Sequencen aufgenommen. Sind einige verrückte Sachen dabei. Wünsch euch viel Spaß beim anhören.Long ExpressionYoutube: https://youtu.be/P-mxpUMQ2e8Gruß Rolf    Ach.. hätt ich doch mehr Geld. Dann würde ich mir diesen Synthesizer kaufen.Modal Electronics 001Der Modal 001 ist ein 2 stimmiger, bi-timbraler Synthesizer mit analoger / digitaler “Hybrid” Klang-Architektur. Pro Stimme gibt es 2 Oszillatoren und 2 Sub-Oszillatoren, mischbar im Mixer mit (Over)Drive Funktion. Wie im DE-GENERATOR sind die Oszillatoren NCOs (Numerically Controlled Oscillators) mit hoher Auflösung und hoher Stabilität. Der zur Auswahl stehende Wellenform-Satz pro Oszillator umfasst 56 Wellenformen ( im DE-GENERATOR sind es 128 + 20 Shapes ), die natürlich per Steuerspannung zu durchlaufen sind. Das VCF ist ein 24dB/Okt 4-Pol Transistor Filter mit Morphing-Möglichkeit (“Slope Control”) hin zur BandPass- und 1dB/Okt Filter Charakteristik. Zwei LFOs, mit MIDI-Sync-Möglichkeit. Zwei ADSR Hüllkurven für VCF und VCA. Eine Modulations-Matrix mit 6 simultane Modulationsquellen und 8 bzw. 9 Modulationsziele. Step-Sequenzer: 32 Steps mit 12 Spuren bzw. Paramater-Modulationen gleichzeitig. MIDI-Synchronisation sowie Live-Transponierung über das Keyboard möglich. Programmspeicher mit Platz für 100 x 100 Sounds. 3-Oktaven FATAR Tastatur mit Velocity und Aftertouch. Ein farbiges 4,3-Zoll TFT Display für die Programmierung. 4 CV Inputs und 4 CV Outputs und zwei Audio-Eingänge u.v.m. Preis um die 1850,- €. Wow..Link: http://www.modalelectronics.com/modal-001/Modal Electronics WaveformsKlangbeispiele: https://www.youtube.com/watch?v=EQjL8VeugA0Gruß Rolf    Mein Weihnachtsgeschenk an mich:Korg Monologue silverSomit besteht zukünftig meine Synthesizer Sammlung aus einem Shruthi, einem DE-GENERATOR und einem Korg Monologue.Hier noch ein paar Soundtracks vom DE-GENERATOR. Künstler an den Drehknöpfen war Andre von TubeOhm  ZU den Soundtracks: https://soundcloud.com/rolf-degen/de-generator-13Gruß Rolf    Mein Weihnachtsgeschenk ist Gestern angekommen. Der KORG MONOLOGUE in silber. Hab ihn direkt ausprobiert. Hier mein Ergebnis:DE-GENERATOR & KORG MONOLOGUE IN CONCERTYoutube: https://youtu.be/xYaBt2WhCowGruß Rolf    KORG MONOLOGUE insideHab mal meinen KORG MONOLOGUE aufgeschraubt um zu schaun, was unter der Haube steckt  Insgesammt arbeiten drei ARM MCU's auf den Platinen. Eine ist für die Keyboardabfrage zuständig.Die Zweite MCU für die beiden Oszillatoren und Filterparameter und diverse andere Sachen.Die Dritte MCU sitzt auf dem Panelboard und ist für die Abfrage der Potis und Schalter zuständig,sowie für die Ansteuerung des kleinen TFT Displays.PS: Wenn ich mir das überlege, dann ist es schon eine Wunder, was die ATMEL MCU mit ihren 32MHz im DEGENERATOR alles leistet  MainboardLink: https://scontent-frt3-1.xx.fbcdn.net/v/t...455&oe=5ACA211DPanelboardLink: https://scontent-frt3-1.xx.fbcdn.net/v/t...f60&oe=5ABEEE6AGruß Rolf    KORG MONOLOGUEAufbauGroßes Bild: https://scontent-frt3-1.xx.fbcdn.net/v/t...7cd&oe=5AC7D7BFBedienungGroßes Bild: https://scontent-frt3-1.xx.fbcdn.net/v/t...637&oe=5AF87191RückseiteGroßes Bild: https://scontent-frt3-1.xx.fbcdn.net/v/t...301&oe=5AF94698      Hallo zusammen..Hab ein wenig an der Soundengine im DE-GENERATOR gewerkelt und einen VOWEL Sound implementiert.VOWEL Sound parameter auf der Oszillator PageSound: https://soundcloud.com/rolf-degen/vowel-...om-de-generatorIch habe den Shruthi code für die Soundengine im DE-GENERATOR etwas angepasst php: 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43: 44: 45: 46: 47: 48: 49: 50: 51: 52: 53: 54: 55: 56: 57: 58: 59: 60: 61: 62: 63: 64: 65: 66: 67: 68: 69: 70: 71: 72: 73: 74: 75: 76: 77: 78: 79: 80: 81: 82: 83: 84: //************************************************************************* // OscRender: VOWEL //************************************************************************* void OscRender_Vowel(uint8_t osc_nr) {     uint8_t block_size = 40;     uint8_t parameter;     uint8_t *buffer;     uint8_t ix = 0;          if (osc_nr == 0)     {         parameter = Osc.prm[0];         if (Voice.buffer_nr == 0)         {             buffer = Voice.Buffer2a;         }         else {buffer = Voice.Buffer1a;}     }     else     {         parameter = Osc.prm[1];         if (Voice.buffer_nr == 0)         {             buffer = Voice.Buffer2b;         }         else {buffer = Voice.Buffer1b;}     }          Osc.vw_update = (Osc.vw_update + 1) & 3;     if (!Osc.vw_update) {         uint8_t offset_1 = U8ShiftRight4(parameter);         offset_1 = U8U8Mul(offset_1, 7);         uint8_t offset_2 = offset_1 + 7;         uint8_t balance = parameter & 15;          // Interpolate formant frequencies.     for (uint8_t i = 0; i < 3; ++i) {         Osc.vw_formant_increment[i] = U8U4MixU12(         pgm_read_byte (&(wav_res_vowel_data[offset_1 + i])),         pgm_read_byte (&(wav_res_vowel_data[offset_2 + i])),balance);         Osc.vw_formant_increment[i] <<= 3;     }          // Interpolate formant amplitudes.     for (uint8_t i = 0; i < 4; ++i) {         uint8_t amplitude_a = pgm_read_byte (&(wav_res_vowel_data[offset_1 + 3 + i]));         uint8_t amplitude_b = pgm_read_byte (&(wav_res_vowel_data[offset_2 + 3 + i]));         Osc.vw_formant_amplitude[i] = U8U4MixU8(amplitude_a,amplitude_b, balance);     }     }            // sample loop --------------------------------------------------------     do     {         Osc.phase[osc_nr] += Osc.phase_increment[osc_nr];                  uint16_t phase_integral = Osc.phase[osc_nr] >> 8;         uint16_t phase_increment_integral = Osc.phase_increment[osc_nr] >> 8;         int8_t result = 0;                  for (uint8_t i = 0; i < 3; ++i) {             Osc.vw_formant_phase[i] += Osc.vw_formant_increment[i];             result += pgm_read_byte (&((i == 2 ? wav_res_formant_square : wav_res_formant_sine)             [(((Osc.vw_formant_phase[i] >> 8) & 0xf0) | Osc.vw_formant_amplitude[i])]));         }         result = S8U8MulShift8(result, ~ (phase_integral >> 8));         phase_integral += phase_increment_integral;         int16_t phase_noise = (int8_t)(Noise.data_rng_state << 8) * 1;// (int8_t)Osc.noise_modulation;         if (phase_integral + phase_noise < phase_increment_integral) {             Osc.vw_formant_phase[0] = 0;             Osc.vw_formant_phase[1] = 0;             Osc.vw_formant_phase[2] = 0;         }         uint8_t x = S16ClipS8(4 * result) + 128;                  // write sample in sound-buffer         buffer[ix++] = x;         buffer[ix++] = x;         block_size--;                      } while (--block_size); } Gruß Rolf    Mutable Shruthi & KORG Monologue & DE-GENERATOR in concertLink: https://soundcloud.com/rolf-degen/shruth...ogue-in-concertViel Spaß beim anhören. Gruß Rolf    DE-GENERATOR Build 3.61- Scope Darstellung: Auflösung wurde von 150 auf 64 Pixel reduziert. Dadurch wird die Systemlast verringert. Zeitbasis passt sich jetzt automatisch an Audiofrequenz an. - Fehler in Ringmodulation auf der Oszillator Page beseitigt - Vowel Sound implementiert (Shape: VOW)- SoundBuffer Größe von 40 auf 128 erhöt. Menüdarstellung und Bedienung wird dadurch etwas schneller und flüssiger- Für eine geringere Systemlast wurden einige Funktionen in der Soundengine verbessert.- Berechnung der Notenfrequenz verbessert. Tabellenwerte jetzt 16BitGruß Rolf    Mein neuer "Workplace" und einen Platz für die leckeren Kekse gibts auch noch  Gruß Rolf     
  4. AVR-Synthesizer "WAVE 1"

    Danke. Wir sind jetzt in der Endphase. Zur Zeit wird ein neues Panelboard mit einem besseren TFT-Display entwickelt und ein Gehäuse gebaut. Das Neue TFT Display ist kontrasstärker und hat eine gleichmäßig beleuchtete Hintergrundfläche.Altes TFT Display im DE-GENERATORNeues TFT Display im DE-GENERATORGruß Rolf   
  5. AVR-Synthesizer "WAVE 1"

    Hallo..Andre hat ein kleines Video mit dem DE-GENERATOR gemacht und stellt ein paar interessante Klänge vor. Viel Spaß beim anhören  Youtube: https://www.youtube.com/watch?v=gNiUXgoGdoU&feature=youtu.beGruß Rolf 
  6. AVR-Synthesizer "WAVE 1"

    Hallöchen.. Es gibt noch ein paar aktuelle Bildchen vom DE-GENERATOR Bild Großes Bild: https://plus.google.com/photos/114442997...=CMn31ZGBwbr7Aw Bild Großes Bild: https://plus.google.com/photos/114442997...=CMn31ZGBwbr7Aw Bild Großes Bild: https://plus.google.com/photos/114442997...=CMn31ZGBwbr7Aw Bild Großes Bild: https://plus.google.com/photos/114442997...=CMn31ZGBwbr7Aw Bild Großes Bild: https://plus.google.com/photos/114442997...=CMn31ZGBwbr7Aw Gruß Rolf
  7. AVR-Synthesizer "WAVE 1"

    SUPERBOOTH17: Exklusiver Rundgang mit Andreas Schneider im FEZ Berlin Youtube: https://www.youtube.com/watch?v=KDmXWVmSiaU 
  8. AVR-Synthesizer "WAVE 1"

    Hallöchen..Es tut mir leid wenn ich zur Zeit wenig schreibe. Aber wir stecken mitten in der Vorbereitung für dieSuperbooth Messe in Berlin. Andre hat für unserenPrototyp auf die Schnelle ein Gehäuse aus Plexiglas und Holzseitenteile gebaut. Es ist noch nichtganz fertig, aber sieht doch schon gut aus wie ich finde.Das GehäuseGroßes BildGroßes BildDie Superbooth 17 findet vom 20 - 22.April in Berlin im FEZ (Kinder-, Jugend- und Familienzentrum)statt. Insgesammt 167 Aussteller sollen dort sein  Hab mal gekuckt wer da noch so da ist zB dieFirma Kurzweil, Yamaha, Steinberg, Nativ Instruments, Roland, Moog Music, Ableton, Doepfer uvmWer uns besuchen möchte findet uns am Stand 0503 von Sonic Potions im 2.OG (siehe Bild).Superbooth 17Großes BildGruß Rolf 
  9. AVR-Synthesizer "WAVE 1"

    Hallöchen..Es gibt ein neues Video vom DEGENERATOR. Hier zeige ich einige Arpeggio Funktionen die schon programmiert sind. Es fehlt allerdings noch die Oktavierung.Video: https://www.youtube.com/watch?v=cGDQK6JMPtc&feature=youtu.beGruß Rolf   
  10. AVR-Synthesizer "WAVE 1"

    Hallöchen..Ein kleiner Arpeggio Test mit dem DEGENERATOR und Shruthi Synthesizer im Duett. Viel Spaß beim anhören.Link: https://soundcloud.com/rolfdegen/shruthidegeneratorinarp2Gruß Rolf 
  11. AVR-Synthesizer "WAVE 1"

    Woran ich zur Zeit arbeite..an einer neuen Sequencer- und Arpeggiator-Funktion im DEGENERATOR. Das alte SequencerMenü sah zwar schick aus, hatte aber eine schlechte Einteilung für die Stepps und keine Arpeggiator-Funktion. Aus diesem Grund habe ich das ganze Menü noch einmal neu gestaltet. Alle Funktionenfinden jetzt auf einer Menüseite ihren Platz und die 16 Stepps sind in zwei Gruppen zu jeweils 8Stepps im oberen Teil des Bildschirms aufgeteilt. Mit "Mode" kann zwischen Sequencer undArpeggiator umgeschaltet werden. Mit "BPM" (Beats per Minute) kann die Taktgeschwindigkeit von1- 250 verändert werden. Mit "Note" kann die Notenlänge von 1/2 bis 1/16 eingestellt werden. Mit"DIR" die Spielrichtung. Die Menüseite ist noch nicht fertig. Weitere Parameter werden folgen. Neues Sequencer-ArpeggiatorMenüAltes Sequencer MenüGruß Rolf 
  12. DE-GENERATOR Prototyp

    DE-GENERATOR DIY Synthesizer/Sampler
  13. DE-GENERATOR Prototyp

    DIY Synthesizer DE-GENERATOR
  14. There are news again. The second filter board for the DE-GENERATOR is ready. It Is a stereophonic 4-pole Mision filter with the following characteristics: * Lowpass 6dB * Lowpass 12dB * Lowpass 18dB * Lowpass 24dB * Bandpass 12dB * Highpass 12dB * Lowpass + Highpass 12dB Link:   
  15. AVR-Synthesizer "WAVE 1"

    Halli.. hallo..Es gibt wieder Neuigkeiten zu berichten. Das 2.Filterboard für den DE-GENERATOR ist fertig.Es handelt sich um einen stereophonen 4-Pole Mision Filter mit folgenden Eigenschaften: Lowpass 6dB Lowpass 12dB Lowpass 18dB Lowpass 24dB Bandpass 12dB Hochpass 12dB Lowpass + Hochpass 12dB SMR4 Filter im DE-GENERATORLink zum vergrößern: https://plus.google.com/photos/photo/114...YrqmpzwRA&hl=deSchaltplan SMR4 FilterLink zum vergrößern: https://plus.google.com/photos/photo/114...qA9dn_mAE&hl=deKleines Filter VideoZm Video: https://www.facebook.com/tubeohm.tubeohm...27302477354296/Info: Lautstärke einschalten!Gruß Rolf