Jump to content

rolfdegen

Members
  • Content Count

    411
  • Joined

  • Last visited

  • Days Won

    12

Posts posted by rolfdegen

  1. Hello Friends..

    Our progress cannot be stopped. This time we really accelerate.

    The Fx PCB is ready. Now we has started to route the "Jeannie" mainboard. I'm curious..

    Fx board

    Fx26022021.jpg

    Mainboard

    Jeannie-PCB.jpg

    This is the first draft of the "Jeannie" mainboard. There will still be some changes such as the Teensy processor module (left).

    This is moved further down so that the USB socket can be used from the outside.

    Greetings Rolf

    • Like 1
  2. Hello and have a nice Sunday smile.png


    There are a few changes in the circuit diagram. The DAC output (PT8211) on the Teensy Board has an active 32KHz LowPass filter. This reduces high-frequency interference signals at the input of the effect chip.

    MCU-Jeannie.jpg

    AMP-Jeannie.jpg


    The OTA (IC5a / b) for the volume control of the effect signal (MIX) has now been moved to the output of the effect chip. This means that the noise floor at the synthesizer output is a little lower at low effect levels.

    Fx-Jeannie.jpg

    Greetings Rolf

  3. Hello friends. I am Rolf and I would like to share my latest DIY project "Jeannie" with you. It is an 8 voices polyphonic synthesizer based on a Teensy 4.1 board.

    I started doing it last summer. Now I have built an effects circuit for the synthesizer.

    "Jeannie" DIY Synthesizer

    20210217-010534.jpg

    Effect circuit

    20210216-171836.jpg

    Video

    The Fx menu in the synth is almost ready. The new one is still missing Display of the parameter values after a program change.

    There are more videos on my youtube channel: https://www.youtube.com/channel/UCXQSpP0qn5MXSkyDo6PZ4Cw

    Greetings from germany. Rolf

    • Like 1
    • Thanks 1
  4. Hallöchen..

    Es gibt noch Änderungen im Waveform Editor. Zum einen wurd das Clipping in der VOL Funktion geändert und funktioniert jetzt richtig. Und zum anderen wurde eine Random Funktion (RND) integriert. Die RND Funktion erzeugt eine neue Wellenform aus zwei zufällig ausgewählten Wellenformhälften in der aktuellen USER-Wellenform-Bank. Damit sind über 16.000 neue Wellenformen möglich.

    Video Link: 

    Gruß Rolf

  5. Digitale Filterfunktion im DE-GENERATOR

    Der Waveform Editor im DE-GENERATOR besitzt eine digitale Filterfunktionen. Einstellbar sind Lowpass, Highpass, Bandpass und Bandstop (Notch). Der digitale Filter funktioniert nach dem Prinzip des Infinite-Impulse-Response-Filter (abgekürzt IIR-Filter) und arbeitet mit Rückkopplung das dem Verhalten eines analogen Filters entspricht.


    Original
    DSC00046.JPG

    Lowpass
    DSC00045.JPG

    Highpass
    DSC00047.JPG

    Bandpass
    DSC00048.JPG

    Bandstop (Notch)
    DSC00049.JPG

    Im allgemeinen sind digitaler Filter sehr rechenintensiv und in Mikrocontroller Anwendungen kaum einsetzbar. Da ich im DE-GENERATOR aber keinen laufenden Audiostream berechnen muss, sondern nur einen einzelnen Wellenformzyklus, ist die Berechnen nicht zeitkritisch. Durch die Filterfunktionen können Wellenformen aus der User-Wellenform-Bank oder selbst gezeichnete Wellenformen zusätzlich verändert werden und abgespeichert werden (siehe Video).


    Video: Waveform Editor
    WaveformEditor.JPG
    Link: https://youtu.be/iSvIDtJT3ZQ

    Gruß Rolf 

  6.  

    Es gibt ein neues Firmware Update für den DEGENERATOR

    Build 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-Ressourcen

    Ich 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.. ebueb 

    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-Controller
    Der 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 CPU
    DMA_01.gif
    DMA_02.gif

    Initialisierung 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

  7. Der singende DE-GENERATOR

    Singing.JPG

    Link: https://soundcloud.com/rolf-degen/singing-de-generator

    Parametereinstellungen
    Osc1: Vowel
    Osc2: Vowel -7 semitones
    Env1: CUTOFF + Osc1+2 vowel parameter
    Env2: VCA
    LFO1: Osc1+2 fine tune
    Portamento: 14
    Delay: Time 114 / Feedback 79 / Volume 127 

     

    I love vowel sounds ebueb 

    SC_vowelyy.JPG

    Link: https://soundcloud.com/rolf-degen/vowelyy 

     

    DE-GENERATOR with Midi Control Change

    MIDI-Control-Change-Meldungen werden verwendet, um eine Vielzahl von Funktionen in einem Synthesizer fern zu steuern.

    MidiCC.JPG

    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 gespeichert

    Build 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ügt

    Build 3.63d 28.02.2018
    - Modmatrix: LFO Modulationsstärke angepasst

    Build 3.63e 01.03.2018
    - Osc: Parameter "RING" für Ringmodulation verstärkt

    Build 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 großes Grinsen ), 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/

    DIY.JPG

    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, der
    sich 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 Lust
    auf mehr.

    So wurde es dann doch noch ein großer Eckschreibtisch mit Rollcontainer samt Bürostuhl und kleiner
    Komode. Als ich dann endlich gehen wollte, viel mir noch ein gemütlicher Ohrensessel auf, der für
    Gä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, zwei
    Regalen, 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:
    20180325_015715.jpg
    https://lh3.googleusercontent.com/-837IB...0325_015715.jpg

    20180325_014416.jpg
    https://lh3.googleusercontent.com/-ZAYuX...0325_014416.jpg

    Ach was soll ich sagen.. Jetzt ist es richtig schön gemütlich und das arbeiten macht doppelt Spaß ebueb 

    Grüße aus Wuppertal. Rolf 

     

    DEGENERATOR Firmware/Buglist

    Build 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

    Build 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 integriert

    Build 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 DEGENERATOR

    Andre 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, werden
    die zwei LED's als Ersatz neben den beiden Tastern bestückt. Auf meinen Wunsch ist dann noch eine
    Midi-LED imlementiert worden.

    DEGENERATOR Panelboard
    Panelboard%2B02.JPG
    Link: https://plus.google.com/photos/photo/114...rDm9O8ygE&hl=de

    Panelboard.JPG
    Link: https://plus.google.com/photos/photo/114...536338626?hl=de


    Bis zum nächsten mal. Schöne Ostergrüße aus Wuppertal holy-willi 

  8. Hallo liebe Mitleser..
    Mein guter Freund Thomas Margolf aus Holland hat mir heute einen Bootloader für den DE-GENERATOR
    geschickt. Damit ist es jetzt möglich, die Firmware für den DE-GENERATOR über die SD Karte zu
    flashen. Allerdings gibts noch Probleme mit älteren 4GB Karten von SandDisk. Mal schaun woran es
    noch 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 Firmware
    File vorhanden und ok, dann fangen die Led's an zu blinken. War der Flashvorgang erfolgreich blinkt kurz
    die 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/X90Xk2eUY2o

    Gruß 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 PD3200Q
    20171029_194430.jpg

    Link: 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 ebueb 

    The Floppotron in concert: Sweet Dreams
    Flopy.JPG
    Youtube: https://www.youtube.com/watch?v=oGfkPCZYfFw

    Gruß 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öglich



    Sequencer Pages
    20171101_160444.jpg

    20171101_160420.jpg
    Der Rote Punkt markiert den laufenden Step. H den Haltewert für die Note. Der dunkelgraue
    Balken die Lautstärke der Note

    Gruß 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 ebueb 

    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 Expression
    Degenerator_04.jpg

    Youtube: https://youtu.be/P-mxpUMQ2e8

    Gruß Rolf 

     

    Ach.. hätt ich doch mehr Geld. Dann würde ich mir diesen Synthesizer kaufen.


    Modal Electronics 001
    Modal001.JPG

    Der 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 Waveforms
    Modal001-18.jpg

    Klangbeispiele: https://www.youtube.com/watch?v=EQjL8VeugA0

    Gruß Rolf 

     

    Mein Weihnachtsgeschenk an mich:


    Korg Monologue silver
    Korgmono1.JPG
    Korgmono2.JPG

    Somit 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 Augenzwinkern 

    ZU den Soundtracks: https://soundcloud.com/rolf-degen/de-generator-13

    Gruß Rolf 
     

    Mein Weihnachtsgeschenk ist Gestern angekommen. Der KORG MONOLOGUE in silber. Hab ihn direkt ausprobiert. Hier mein Ergebnis:

    DE-GENERATOR & KORG MONOLOGUE IN CONCERT
    MonoDegen.jpg

    Youtube: https://youtu.be/xYaBt2WhCow

    Gruß Rolf 

     

    KORG MONOLOGUE inside

    Hab mal meinen KORG MONOLOGUE aufgeschraubt um zu schaun, was unter der Haube steckt smile 
    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 ebueb 

    Mainboard
    20171224_092040.jpg
    20171224_091820.jpg
    Link: https://scontent-frt3-1.xx.fbcdn.net/v/t...455&oe=5ACA211D

    Panelboard
    20171224_091908.jpg

    Link: https://scontent-frt3-1.xx.fbcdn.net/v/t...f60&oe=5ABEEE6A

    Gruß Rolf 

     

    KORG MONOLOGUE

    Aufbau
    MonoBlock.JPG
    Großes Bild: https://scontent-frt3-1.xx.fbcdn.net/v/t...7cd&oe=5AC7D7BF

    Bedienung
    MonoPanel.JPG
    Großes Bild: https://scontent-frt3-1.xx.fbcdn.net/v/t...637&oe=5AF87191

    Rückseite
    MonoBack.JPG
    Groß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 Page
    20171228_104845.jpg

    Sound: https://soundcloud.com/rolf-degen/vowel-...om-de-generator


    Ich 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_17);
            uint8_t offset_2 offset_1 7;
            uint8_t balance parameter 15;
        
        // Interpolate formant frequencies.
        for (uint8_t i 03; ++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 04; ++i) {
            uint8_t amplitude_a pgm_read_byte (&(wav_res_vowel_data[offset_1 i]));
            uint8_t amplitude_b pgm_read_byte (&(wav_res_vowel_data[offset_2 i]));
            Osc.vw_formant_amplitude[i] = U8U4MixU8(amplitude_a,amplitude_bbalance);
        }
        }    
      
        // 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 03; ++i) {
                Osc.vw_formant_phase[i] += Osc.vw_formant_increment[i];
                result += pgm_read_byte (&((== 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(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 concert

    Soundcloud.JPG
    Link: https://soundcloud.com/rolf-degen/shruth...ogue-in-concert

    Viel 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 16Bit

    DE-GENERATOR.JPG

    Gruß Rolf 

     

    Mein neuer "Workplace" und einen Platz für die leckeren Kekse gibts auch noch ebueb 

    NewWorkplace.jpg

    Gruß Rolf 

     

     

  9. 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-GENERATOR
    Picture%2B6.jpg

    Neues TFT Display im DE-GENERATOR
    Picture%2B5.jpg

    Gruß Rolf 
     

  10. Hallöchen..

    Es tut mir leid wenn ich zur Zeit wenig schreibe. Aber wir stecken mitten in der Vorbereitung für die
    Superbooth Messe in Berlin. Andre hat für unseren
    Prototyp auf die Schnelle ein Gehäuse aus Plexiglas und Holzseitenteile gebaut. Es ist noch nicht
    ganz fertig, aber sieht doch schon gut aus wie ich finde.

    Das Gehäuse
    P1060137.JPG
    Großes Bild

    P1060136.JPG
    Großes Bild

    Die Superbooth 17 findet vom 20 - 22.April in Berlin im FEZ (Kinder-, Jugend- und Familienzentrum)
    statt. Insgesammt 167 Aussteller sollen dort sein geschockt Hab mal gekuckt wer da noch so da ist zB die
    Firma Kurzweil, Yamaha, Steinberg, Nativ Instruments, Roland, Moog Music, Ableton, Doepfer uvm
    Wer uns besuchen möchte findet uns am Stand 0503 von Sonic Potions im 2.OG (siehe Bild).

    Superbooth 17
    Superbooth.JPG
    Großes Bild

    Gruß Rolf 

  11. Woran ich zur Zeit arbeite..

    an einer neuen Sequencer- und Arpeggiator-Funktion im DEGENERATOR. Das alte Sequencer
    Menü 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 Funktionen
    finden jetzt auf einer Menüseite ihren Platz und die 16 Stepps sind in zwei Gruppen zu jeweils 8
    Stepps im oberen Teil des Bildschirms aufgeteilt. Mit "Mode" kann zwischen Sequencer und
    Arpeggiator umgeschaltet werden. Mit "BPM" (Beats per Minute) kann die Taktgeschwindigkeit von
    1- 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ü
    SEQARP.jpg

    Altes Sequencer Menü
    Seq_01.jpg

    Gruß Rolf 

  12. 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-GENERATOR
    20170218_163049.jpg
    Link zum vergrößern: https://plus.google.com/photos/photo/114...YrqmpzwRA&hl=de


    Schaltplan SMR4 Filter
    Degenerator_SMR4.jpg
    Link zum vergrößern: https://plus.google.com/photos/photo/114...qA9dn_mAE&hl=de


    Kleines Filter Video
    FB_SMR4.JPG
    Zm Video: https://www.facebook.com/tubeohm.tubeohm...27302477354296/
    Info: Lautstärke einschalten!

    Gruß Rolf 

×
×
  • Create New...