Degenerator DIY Sampler/Synthesizer (Tubeohm)

Super Teil rolf ! Respekt.
Eine kleine vage Andeutung zur Lieferbarkeit eures Gerätes hätte mich noch mehr erfreut . :opa:
 
Zuletzt bearbeitet:
Das Ende naht.. :hupfdrone:

Die Entwicklung neigt sich dem Ende entgegen. Die ersten Geräte werden wir im Dezember ausliefern. Da wir alles selber finanzieren, werden von uns erst einmal kleine Stückzahlen von 25 Stück vorproduziert.

Zum Stand der Dinge: Das erste Metallgehäuse mit Holz-Seitenteilen befindet bereits bei Andre im Bau. Software ist fast fertig. Im Sequenzer fehlen noch zwei kleine Funktionen. Midi CC muss noch integriert werden. Der Bootloader fürs Firmware Update über SD-Karte wird gerade von Thomas programmiert. Anleitung in deutsch und english werden zur Zeit geschrieben. Webseite macht Andre auf http://www.tubeohm.com/TubeOhm/HOME.html Also noch einiges an Arbeit. Aber wir schaffen dat.

Gruß Rolf
 
Zuletzt bearbeitet:
Meine Bausätze.. Gibt auch fertige Platinen für die, die nicht löten wollen. Braucht man dann nur noch zusammenstecken und das Gehäuse verschrauben.
 
Zuletzt bearbeitet:
Ich verfolge das schon seit der ersten Ankündigung auf Tubeohm. Schön das es jetzt bald soweit ist.
Toll das es solche Projekte gibt!
 
Okay, dann bin ich ja vielleicht bei der Zuteilung Ostern 2018 mit dabei?
Aber - by the Way - seid ihr denn mit dem Preis ein bisschen weiter, ist da was spruchreif?
 
Der Preis für's Gehäuse steht leider noch nicht fest. Da sich ständig die Bauteilpreise ändern, wird der Preis erst bei der ersten Vorserienproduktion im Dezember feststehen.
 
Zuletzt bearbeitet:
Short impression from DE-GENERATOR

Hab mal wieder ein kleines Video aufgenommen, um zu zeigen was der DE-GENERATOR so kann. Um alle Funktionen zu zeigen bräuchte ich Stunden. Deshalb habe ich hauptsächlich nur die Oszillator Funktionen gezeigt. Außerdem bin ich's jetzt Leid mit meiner ollen Webcam. Die macht einfach keine guten Bilder und der Ton ist sau schlecht. Mal schaun was der Markt an besseren Cams so anbietet..



Gruß Rolf
 
Hallo liebe Freunde..

Recht interessant finde ich das Innenleben eines Synthesizers. Hier zB das Model D von Behringer. Dabei handelt es sich um einen Nachbau des legendären Minimoog D. Die Architektur wurde gegenüber dem Original erweitert. Der Signalfluss ist wie beim Minimoog komplett analog. Behringers Model D hat drei Oszillatoren mit fünf verschiedenen Wellenformen inklusive Noise und einem zuschaltbaren Overdrive. Der analoge Filter wurde im Vergleich zum Minimoog D um einen Hochpassmodus erweitert. Ferner besitzt der Behringer wie im Minimoog zwei Envelopes für den Lautstärke- und Filterverlauf ohne Release-Parameter.

Inside the Behringer Model D

Ansehen: https://www.youtube.com/watch?v=qVLnihiJFOs


Gruß Rolf
 
Hallo ihr Lieben..

Ein kleiner Tip: Auf der Website von http://codeandlife.com habe ich einen kleinen USB Midi Adapter inklusive Anleitung und Code zum selberbauen entdeckt. Für Beginners unter euch bestens geeignet da nur wenige Bauteile erforderlich sind.

MidiAdapter.JPG


Link: http://codeandlife.com/2017/09/17/5-usb-midi-adapter-with-atmega32u4/
 
Hallöchen..

Mein guter Freund Pieter van der Meer von Tasty Chips aus Holland hat einen neuen Synthesizer entwickelt. Das Gerät wurde auf dem Namen GT-1 getauft. Beim GT-1 handelt es sich um einen polyphonen Granular Sampler.

GranularSynth.JPG

GR-1%2Bb.JPG



Specifications
  • High quality stereo audio: internally: 32 bit float, DAC: 44.1KHz, 106 dB SNR
    High quality headphone amplifier with dedicated volume control
    Quad core ARM Cortex-A running optimized Neon SIMD code.
    800 x 480 pixel, 7” TFT true color display
    Firmware updates via USB
    Sample file uploads in multiple formats via USB
    The GR-1 can handle 32 sample files of 10 MB (about 2 minutes long)
    Presets and performances can be saved to internal flash (4GB) or external (USB) memory
    2 control voltage assignable inputs 0-5V with voltage protection
    1 gate output
    12dB/oct digital lowpass filter with direct and MIDI controls
    2 assignable LFO’s with waveforms (sine, random, saw, square) and direct controls
    4 banks of 8 presets all hands-on accessible and overwritable
    ADSR amplitude envelope and Grain window envelope with direct controls
    Rotary encoder for configuration, file/sample selection. Config menus provide extended possibilities beyond what the pots and sliders offer.
    Access to configuration screen providing many more options
    32 x 21 x 7 cm aluminum casing.
    Full MIDI control: All on-board sliders and knobs, and internal controls are represented as MIDI CC. Full support for program change, pitch bend.
    Ability to read and write any USB stick or drive: FAT, ExFat, NTFS (Windows), HFS+ (Mac), Ext4 (Linux).
    Much more to be added by firmware updates: fully exposed mod matrix, another mode of granular synthesis (very small sample loops), MIDI clock sync, LFO cross mod, and stretchgoals (see below!)

Granularsynthese
Die Granularsynthese ist eine in manchen Synthesizern und Programmen verwendete Methode, künstliche Klänge zu erzeugen. Ähnlich wie bei einem Film, der durch Einzelbilder einen flüssigen Ablauf vortäuscht, wird bei der Granularsynthese ein kontinuierlicher Klang vorgetäuscht, der in Wahrheit aus vielen einzelnen Teilen besteht. Bei diesen Einzelteilen, den Grains, handelt es sich um sehr kurze, digitale Klangfragmente, deren Länge üblicherweise unter 50 Millisekunden liegt. Wird diese Grenze überschritten, so kann der Zuhörer das Fragment als eigenständiges Klangereignis erkennen.

Die Granularsynthese bietet gegenüber der herkömmlichen Sampleabspielmethode den Vorteil, dass die Geschwindigkeit des Abspielvorgangs unabhängig von der Tonhöhe verändert werden kann. Erreicht wird dies über die Vervielfachung der Grains bei Streckung des Materials beziehungsweise der einzelnen Grains (Time-Stretching). Auch die Formanten und die Tonhöhe können bei der Granularsynthese eigenständig bearbeitet werden (Pitch-Shifting).
WIKIPEDIA Granularsynthese

Beispiel eines interessanten Granular Synthesizer

Ansehen: https://www.youtube.com/watch?time_continue=66&v=9XMfKYVu_fg




Hallo..

Ich hab's auch mal versuch mit ein wenig "Pseudo Granularsynthese" im DE-GENERATOR.

"Pseudo Granularsynthese" im DE-GENERATOR"


Gruß Rolf
 
Zuletzt bearbeitet:
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:
Ansehen: https://youtu.be/X90Xk2eUY2o


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
bueb.gif


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


Gruß Rolf
 
Wir sind noch fleißig am arbeiten. Hier einige interessante Soundtracks vom DE-GENERATOR. Stammen alle von Andre.



Oooh je :cry: Da hab ich wohl den Mischpulteingang etwas übersteuert.

Gruß Rolf
 
Zuletzt bearbeitet:
Hier noch ein paar Soundtracks vom DE-GENERATOR. Künstler an den Drehknöpfen war Andre von TubeOhm
wink.gif


 
Zuletzt bearbeitet:
Ich frag mal den Weihnachtsmann :schweinachten:

Nein im Ernst.. Weil wir in der Firma (ich arbeite in der Ev. Kirche) zur Zeit Hochkonjunktur haben, hinke ich mit der Beseitigung der Software-Fehler etwas hinterher. Ich habe aber bald zwei Wochen Urlaub und hoffe die Softwareentwicklung dann abzuschließen.

Gruß Rolf
 
Kein Stress. Weihnachten in wichtiger
Gruß tangrami
 
Zuletzt bearbeitet:
Mein Weihnachtsgeschenk ist Gestern angekommen. Der KORG MONOLOGUE in silber. Hab ihn direkt ausprobiert. Hier mein Ergebnis:




Gruß Rolf
 
Zuletzt bearbeitet:
KORG MONOLOGUE inside

Hab mal meinen KORG MONOLOGUE aufgeschraubt um zu schaun, was unter der Haube steckt
smile.gif

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
bueb.gif


Mainboard
25626936_1670988002961660_1793199014150283405_o.jpg


25790906_1670988222961638_4658899750390419124_o.jpg


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


VOWEL Sound



Ich habe den Shruthi code für die Soundengine im DE-GENERATOR etwas angepasst
Code:
//*************************************************************************
// 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
 
Zuletzt bearbeitet:


Zurück
Oben