rolfdegen Posted January 18, 2015 Author Report Posted January 18, 2015 Hallöchen miteinander.. Es gibt wieder was neues für die Ohren. Aber dieses mal nicht von mir, sondern von Johannes Taelman. Er hat einen sehr interessanten Synthesizer auf Basis eines ARM Cortex-M4 Chips entwickelt und diesen möchte ich euch nun vorstellen.Axoloti Synthesizer Der Axoloti Synthesizer ist eine Mischung aus Hard- und Software. Am PC werden die verschiedenen Klangmodule wie bei einem Modularen Synthesizer mit dem Axoloti-Patcher zusammengebaut und vernetzt. Per USB wird das Programm in den Speicher des Synthesizers übertragen und kann per Midi gespielt werden. Das interessante dabei ist, das vor der Übertragung der Patch am PC in Realtime vorgehört werden kann.Axoloti-Patcher Für die Änderung und Anzeige von Parametern gibt es das sogenannte Axoloti-Control Board. Es besitzt insgesamt 5 Drehregler (Encoder), Taster und ein monochromes Grafikdisplay mit 128x64 Pixel. Axoloti-Control Board Youtube: Axoloti-Website: http://axoloti.be/ Axoloti-Patcher: Gruß Rolf Quote
rolfdegen Posted January 18, 2015 Author Report Posted January 18, 2015 Hallöchen.. Heute habe ich die zwei neuen Ersatz XMega100 Breakout Boards bekommen und die Stiftleisten angelötet. Zum Ausprobieren habe ich diese in den Stecksockel auf dem Motherboard vom Synthesizer gesteckt und mit ATMEL-Studio geflasht. Die beiden Breakout Boards funktionieren fehlerfrei. Jetzt kann ich ohne Risiko den Xmega Prozessor 10.000 mal umprogrammieren (flashen) ohne das ich Angst haben muss, das ein Bit nicht mehr funktioniert XMega100 Breakout Board Zur Zeit arbeite ich noch an der Zoom-Funktion für die Anzeige der Wellenform und den Loop-Points. Ich hoffe das ich das dieses Wochenende endlich hin bekomme. Lieben Gruß aus Wuppertal. Rolf Quote
rolfdegen Posted January 18, 2015 Author Report Posted January 18, 2015 Hallo liebe Freunde der Musik... Vom Elektor Magazin soll es in der Januar und Februar Ausgabe einen neuen Synthesizer Bausatz geben. Der "J2B Synthesizer" besitzt auch wie der Axoloti Synthesizer einen 32-Bit ARM Cortex- M3 Prozessor für die Klangerzeugung. Die Inspiration für die Entwicklung des J²B SYNTHESIZER kam durch den 8-Bit SynthesizerATmegatron von Paul Soulsby. Hier einige Daten: Monophonic 9-bit synthesizer 32 waveforms + user defined 15 filter types 2 envelope generators LFO with 16 waveforms 15-pattern arpeggiator 16 patch memories 6 live controls MIDI Patch saving/loading over MIDI NXP LPC1347 32-bit ARM Cortex-M3 microcontroller 2 output channels Open Source & Open Hardware designJ²B SYNTHESIZERJ²B SYNTHESIZER Das Ganze kann man sich auf Youtube auch anhören: Gruß Rolf Quote
km2301 Posted January 19, 2015 Report Posted January 19, 2015 Hallo Rolf, ich bewundere immer wieder User die so etwas "drauf haben" Mach weiter so und immer schön berichten. Gruß Bernhard Quote
rolfdegen Posted January 31, 2015 Author Report Posted January 31, 2015 Danke Bernhard :rolleyes: Hallöchen..Futuresonus stellt einen neue polyphone Analog Synthesizer vor. Parva vereint die klassische Wärme eines analogen Synthesizers mit dem Komfort einer digitalen Steuerung und einem elegant gestalteten Desktop Gehäuse mit OLED Display. Der Entwickler Brad Ferguson meint zu PARVA: "Ich entwarf PARVA von Grund auf mit der Absicht, eines neuen Synthesizers unter Beibehaltung des Charakter der Klassiker aus den 70er und 80er Jahren". Jede der acht Stimmen im PARVA verfügt über drei digital gesteuerte analoge Oszillatoren, mit Sägezahn, Dreieck und PWM-Wellenformen mit extrem genaue Tonhöhe und rock-solid Stimmstabilität. Ein Paar von Zweipol-state-variable Filter kann für eine 12 dB oder 24 dB Tiefpass oder Hochpass -Verhalten oder aufgeteilt zum Bandpassfiltern ausgebildet sein. Vier vierstufigen Hüllkurvengeneratoren und vier Multi-Wellenform Niederfrequenzoszillatoren füttern eine flexible Modulations-Matrix, so dass für praktisch unbegrenzte Klanggestaltungsmöglichkeiten . Parva ist der erste Analog-Synthesizer mit einer USB-Master-Schnittstelle, die es dem Benutzer ermöglicht, jedes kompatible USB-MIDI-Keyboard anzuschließen. Analogpotentiometer bieten sofortigen Zugriff auf die am häufigsten verwendeten Parameter. Das OLED-Display auf der Frontplatte zeigt weitere Einstellungen und vereinfacht so die Suche nach dem perfekten Patch. Das Aluminiumgehäuse und speziellen Aluminium Knöpfe sind für den robusten Arbeitsalltag eines Musiker konzipiert und gebaut. Jede PAVA Synthesizer wird in Austin Texas von Hand montiert.PARVA Desktop SynthesizerPARVA Desktop SynthesizerPARVA Desktop SynthesizerOSCILLATORS * 3 Digitally-controlled analog oscillators * Sawtooth, triangle, and PWM waveforms * Tunable +/- 5 octaves * Hard Syncable * Independent level controlsFILTERS * 2 configurable state-variable filters * 24db or 12db low-pass or high-pass modes * 12db bandpass mode * Self-oscillating * Filter FMENVELOPES * 4 4-stage (ADSR) envelopes * Exponential curves for punchy attack and natural decay * Linear mode also available * Routable to >40 destinationsMODULATION * 4 LFOs * Sine, sawtooth, triangle, and square waveforms * Random sample-and-hold * Free-running or key-synced * Routable to >40 destinationsINPUTS / OUTPUTS * Dual 1/4" TS line-level outputs * Stereo 1/4" headphone jack * MIDI input and ouput * USB port for MIDI input and output * USB Master port for direct connection of USB MIDI controllers Parva wird voraussichtlich im Sommer 2015 lieferbar sein. Ab Februar kann die polyphone Version für unter $ 1000 vorbestellt werden. Eine erweiterbare monophone Version wird für unter 500 Dollar angeboten.Futuresonus wurde 2014 von Brad Ferguson in Austin Texas gegründet und entwickelt hochwertiger Synthesizer und Effektgeräte. Gruß Rolf Quote
rolfdegen Posted February 8, 2015 Author Report Posted February 8, 2015 (edited) So.. heute habe ich wieder etwas Zeit für meinen "Degenerator" gehabt und an der Loop-Funktion programmiert. Ihr habt richtig gelesen. Er heißt jetzt "Degenerator" obwohl ich den Namen etwas merkwürdig finde. Aber Andre findet den Namen gut und so soll es denn wenn Gott will sein.. Damit es nicht zu langweilig wird hab ich mal ein kleines Video gedreht und auf Youtube geladen. Der Sound ist nicht besonders gut, da der Ton bei der Aufnahme von meiner Webcam stammt.Youtube-Link: http://youtu.be/tS7DX94XwtE Gruß Rolf Edited February 8, 2015 by rolfdegen Quote
rolfdegen Posted February 28, 2015 Author Report Posted February 28, 2015 (edited) Hallöchen zusammen. Hoffe euch geht's allen gut da draussen Heute will ich mit der Programmierung für einen kleinen Stepsequenzer im "Degenrator" beginnen. Zum Vergleich habe ich mir den Dark-Time Sequenzer von der Firma Doepfer angesehen."Dark Time" Sequenzer von der Firma Doepfer Wie der "Dark Time" soll auch der Sequenzer im "Degenerator" 16 Steps bekommen und optische Drehregler für Tonhöhe und Notenlänge (Display). Die Einstellung erfolgt über Tasten und Drehgeber am "Degenerator". Heute habe ich von der "Konkurrenz" :smile: aus Frankreich eine Satz Platinen für einen SHRUTHY Synthesizer bekommen. Als Filterplatine kommt ein SHRUTHACON zum Einsatz. Bin mal gespannt wie sich der SHRUTHY in Natura anhört. Bis dahin lieben Gruß. Rolf Edited February 28, 2015 by rolfdegen Quote
rolfdegen Posted March 9, 2015 Author Report Posted March 9, 2015 Hallöchen So.. am Wochenende hab ich mal wieder fleißig am Synth programmiert und den Step Sequenzer integriert. Er ist noch nich ganz fertig, aber schon lauffähig Noten Symbol: Ausgewählte Midi-Note von 0-127 H ist die Notendauer V ist die Lautstäke der Note und wird durch einen blauen Balken angezeigt Roter Punkt bedeutet das der Step aktiv ist. Grau bedeutet ausgeschaltet Später wirds noch eine Reset und Skip Funktion für jeden Step geben. Der Step Sequenzer im "Degenerator" Das Ganze kann man sich auf Youtube ansehen und anhören. Der Ton kommt von der Webcam und ist leider nicht so prickelnd Youtube: Gruß Rolf Quote
rolfdegen Posted March 10, 2015 Author Report Posted March 10, 2015 Hallöchen.. Gestern habe ich die Bauteile für meinen Shruthi Synthesizer bekommen. Da ich zu den ungeduldigen Menschen zähle, habe ich eine Nachtschicht eingelegt und den Shruthi zusammen gelötet. So in den frühen Morgenstunden wäre ich fast mit dem Lötkolben in der Hand eingeschlafen und bin dann doch ins Bett gegangen.. Shruthi Synthesizer Dank der guten Dokumentation und Lötanleitung auf der Mutable Instrument Website ist der Shruthi sehr einfach und leicht zu löten und schnell zusammenzubauen. Beim Bestellen der Bauteile sollte man beachten, das es unterschiedliche Stücklisten für verschieden Lieferanten wzB Mouser oder Reichelt gibt. Ich habe mich für Reichelt entschieden, da dieser Lieferant kostengünstiger ist. Ein kleines Problem gabs bei der Bestellung der Tasten. Die Original Tasten gabs bei Reichelt nicht und ich musste dafür andere Tasten nehmen. Bei Mouser bekommt man die Original Tasten und die anderen Bauteile problemlos geliefert. Stückliste Reichelt: https://secure.reichelt.de/index.html?&A...199&PROVID=2084 Stückliste Mouser: https://www.mouser.de/ProjectManager/Pro...ssID=dcda87764c Dank meiner langjährigen Lötkünste war der Shruthi schnell zusammengelötet und betriebsbereit. Beim Flashen der aktuellen Firmware über ATMEL STUDIO hatte ich ein kleines Problem. Die Voreinstellung für die PDI Clock-Rate von 1MHz für den Mikrocontroller ATmega644P muss im Menü auf 125KHz herunter gesetzt werden, da sonst der ATmega644P nicht erkannt wird.. Gruß Rolf Quote
rolfdegen Posted March 11, 2015 Author Report Posted March 11, 2015 Hallo.. Ein ganz interessantes Beispiel in Bezug auf Sequenzer ist der K4815 Pattern Generator von Kilpatrick Audio. Beim K4815 handelt es sich um einen Midi Sequenzer ohne Tonerzeugung für den 19 Zoll Einschub. Er besticht durch seine ungewönliche und einfache Bedienung wie ich finde.K4815 Pattern GeneratorFeatures and Specs * Eurorack form factor - 20HP width * 64 LED 8x8 Matrix multi-brightness grid to show patterns and playback * Clock control via internal clock, or MIDI or analog (5V) clock * Clock, direction and reset inputs (0V/5V = off/on) * CV/GATE or X/Y outputs - range: -5V to +5V * High-precision 12-bit DACs with internal trim adjustment * Internal MIDI header compatible with future Kilpatrick Audio modules or DIY breakout boards * Only 30mm deep (including ribbon cables) * Serial numbers up to 1009500: Requires +/-12V (less than 10mA) and +5V (less than 65mA) * Serial numbers from 1009501 onward: Requires +12V (80mA) and -12V (less than 10mA) * 16 pin Doepfer-style power cable used * Designed and made in Canada using high quality parts. Website Hersteller: http://www.kilpatrickaudio.com/?p=K4815 Youtube Video: Gruß Rolf Quote
rolfdegen Posted April 1, 2015 Author Report Posted April 1, 2015 Hallo Freunde der Musik Diese Woche arbeite ich noch ein wenig am Sequenzer in meinem Synthesizer. Folgende Funktionen sind bereits integriert: 16 Steps mit Haltezeit und Velocity Stepfunktion On, Off, Skip Manuelle Eingabe der Midi Note oder vom Midi Keyboard Einstellbare Geschwindigkeit von 30 bis 460 BPM Transponierung + -2 Oktaven und per Midi Keyboard Shuffle-Funktion Velocity für die Modulation zB VCA, VCF oder Oszillator Sequenzerrichtung Links, Rechts oder Beides Laden und Speichern von 128 SequenzenDer Sequenzer im DeGenerator Gruß Rolf Quote
ilmenator Posted April 2, 2015 Report Posted April 2, 2015 Prima Sache! Zum Layout des Sequenzers frage ich mich allerdings, ob das mit den drei Reihen zu 6, 6 und dann nur 4 Einträgen so intuitiv ist, die Übersicht über die Steps zu behalten. Könntest du nicht einen 4x4 Block von Steps auf der linken Seite anordnen, und die virtuellen Encoder in einer Vertikalen rechts davon (oder andersherum)? Quote
rolfdegen Posted April 10, 2015 Author Report Posted April 10, 2015 (edited) Hallo ilmenator Danke für deinen Tip. Ich gebe zu die 6x3 Anordung ist nicht gerade Anwenderfreundlich. Aber es ist mein erster Entwurf und bis zur entgültigen Version werde ich das Layout noch etwas verbessern. Versprochen :smile: Hier der Startscreen vom "DEGENERATOR" nach dem Einschalten. Entwicklungsstatus: Die 128 Wellenformen (128x256Byte) vom internen Flashspeicher wurden jetzt auf die SDCARD ausgelagert damit ich 32KByte mehr Speicherplatz fürs Programm bekomme. Diese werden dann beim Systemstart in das 1MByte SRAM geladen. Durch diese Änderung hat man später die Möglichkeit die Wellenformen einfach gegen andere auszutauschen. In dieser Woche arbeite ich an der Modulations Matrix im Synthesizer. Hier ist eine kleine mathematische Formel für die Einstellung der Grenzfrequenz mit Cutoff-Level und Amount-Level. // VCF1_CV_IN = VCF1 CV Eingangswert 12Bit von ADSR Generator // VCF1_CV_OUT = VCF1 CV-Ausgangswert // VCF1_Amount = Geberstufe 0-127 // VCF1_Cutoff = Geberstufe 0-127 VCF1_CV_Out = ((uint32_t) (128 - VCF1_Amount) * VCF1_CV_IN / 128) + (((uint32_t) VCF1_Amount * VCF1_Cutoff / 128) * VCF1_CV_IN / 128) Für die LFO Modulation des Filters muss ich noch überlegen wie ich die Formel dafür umstricke bzw erweiter. Der LFO Ausgang hat einen Wert von 0-255. Gruß Rolf Edited April 10, 2015 by rolfdegen Quote
rolfdegen Posted April 16, 2015 Author Report Posted April 16, 2015 (edited) Hallöchen.. Bin jetzt im Endspurt und steh etwas unter "Stress". Arbeite viel an meinem Synthesizer. Aus diesem Grund fallen meine Berichte hier etwas mager aus. Zur Zeit wird eine Frontblende hergestellt damit der "DEGENERATOR" in der CC2 TV Sendung nächste Woche nicht so "nackelich" aussieht. Musste dafür extra noch ein 2.Frontpanel zusammenlöten (siehe Bild). Ein komplettes Gehäuse aus durchsichtigem Kunststoff ist schon in Planung.2.Frontpanel Ach her je.. bin schon ganz aufgeregt Hoffentlich funktioniert alles in der TV-Show problemlos und es gibt keinen Vorführeffekt. Ist ja schließlich der Prototyp. Wird schon gut gehen Gruß Rolf Edited April 16, 2015 by rolfdegen Quote
Thomasch Posted April 19, 2015 Report Posted April 19, 2015 Hallo Rolf, wie ich im CC2 Forum lesen konnte, bist du gerade auf der Suche nach einer schnelleren Hardwareplattform für den potentiellen Nachfolger des DegenErator. Hast du schon Vorstellungen in welche Richtung der neue Synth gehen soll? Quote
rolfdegen Posted April 25, 2015 Author Report Posted April 25, 2015 Hallo Thomasch Habe mir den Raspberry Pi 2 mit QuadCore und 1GHz gekauft. Mit externen DACs und Filtern wird das die Soundmaschine. Aber das ist noch Zukunft. Gruß Rolf Quote
rolfdegen Posted April 25, 2015 Author Report Posted April 25, 2015 Hallöchen.. Der "DE:GENERATOR" ist ready for sounding..Der "DE:GENERATOR"Die Frontplatte ist mal eben schnell gemacht worden und noch nicht so perfekt. Die Display Aussparung stimmt nicht und Beschriftung fehlt noch. Sieht doch schick aus Gruß Rolf Quote
rolfdegen Posted April 25, 2015 Author Report Posted April 25, 2015 (edited) Der Studiobesuch beim CC2 Hallo liebe Freunde.. Der Studiobesuch beim CC2 war sehr interessant und eine große Freude für mich. Endlich konnte ich den "Urgesteinen" des damaligen WDR Computer Clubs Wolfgang Back und Wolfgang Rudolph leibhaftig die Hände schütteln. Der Heinz war dieses mal leider nicht dabei. Es ist sehr interessant zu beobachten mit welcher Routine und Gelassenheit und vor allem mit wieviel Humor die beiden Wolfgänge eine TV Sendung machen. Und ich live dabei und mittendrin.. wow. Von Lampenfieber vor den drei Kameras war bei mir keine Spur mehr als ich mit Wolfgang Rudolph ins Gespräch kam und von den Anfängen meiner Entwicklung am Synthesizer erzählte. Techniker unter sich.. da sind 15 Minuten nix. Die Minuten flogen im Eiltempo an mir vorbei und ich hätte noch Stunden vom Synthesizer, Elektronischer Musik u.a. Dingen erzählen können. Aber da war noch Stefan Krister und der wollte etwas über den 3D Druck erzählen. Dem wollte ich nicht die Show stehlen Hab mal ein paar Fotos aus dem Studio von NRW TV geschossen um zu "beweisen" das ich wirklich da war Fotos CC2 Studiobesuch Edited April 25, 2015 by rolfdegen Quote
Thomasch Posted April 26, 2015 Report Posted April 26, 2015 Geht die Folge heute noch online? Bis jetzt gibts nur die CC2 Folge vom 19.04. unter "Aktuelle Sendung" zu sehn. Quote
rolfdegen Posted June 18, 2015 Author Report Posted June 18, 2015 (edited) Hallöchen zusammen! @Thomasch. Die 2.Folge vom CC2 findest du hier: Es gibt wieder viel neues zu berichten. Hier gehts zu den News: http://www.cczwei-forum.de/cc2/thread.php?threadid=5878&threadview=0&hilight=&hilightuser=0&page=23 Stand der Dinge: 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 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 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: 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. // 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 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 Edited June 18, 2015 by rolfdegen 1 Quote
rolfdegen Posted June 18, 2015 Author Report Posted June 18, 2015 (edited) Hallöchen und guten Abend smile Ich glaube das die Sounds vom DE:Generator sehr interessant sind und er sich nicht verstecken muss im Vergleich zu anderen Synthis, obwohl er nur eine 8Bit Auflösung hat. 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 neu getriggert und beginnt das Abspielen des Samples von vorne (Sound Beispiel 1.Teil). Ich habe diese Funktion über einen Switch (ReTrig) abschaltbar gemacht, so dass der Wellenform Oscillator im Loop läuft und bei jedem Tastenanschlag ein anderer Wellformabschnitt vom Sample gespielt wird (Sound Beispiel 2.Teil). Der Sound klingt dadurch abwechslungsreicher und weniger statisch. Das funktioniert allerdings nur bei Flächensounds sehr gut. Sound Beispiel 1.Teil Note trigger Waveform Oszillator 2.Teil: free run Waveform Oszillator Soundcloud: https://soundcloud.com/rolfdegen/osc-re-trigger Gruß Rolf Edited June 18, 2015 by rolfdegen Quote
Thomasch Posted June 18, 2015 Report Posted June 18, 2015 Hallo Rolf, ist auf der letzten Sound Demo noch ein leichter Hall drauf? Oder ist der Hall ein Teil des Samples? LG Thomasch P.S.: Habe deine beiden Auftritte im Computer Club gesehn, hättest gern noch mehr auf die einzelnen Funktionen eingehen können, aber das hätte wohl den Umfang der beiden Sendungen zu sehr gesprengt. :D Glücklicherweise hält du uns ja hier immer auf dem Laufenden. P.P.S.: Schade daß Dein Synth nur monophon spielbar ist. Für nen reinen Bass Synth wäre das völlig ausreichend, aber dein Synth bietet vom Soundpektrum doch einiges mehr. Es würde sicher Sinn machen, daß Projekt auf nen stärkeren Prozessor zu portieren für eine höhere Polyphonie. Beim Einsatz von analogen FIltern würde es auch Sinn machen Multichannel D/A Wandler zu integrieren, so daß die Filter auch polyphon gespielt werden können. Quote
rolfdegen Posted July 31, 2015 Author Report Posted July 31, 2015 Hallöchen.. da bin ich wieder 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 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 Oszillator MenüMein neues DigiScope 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" Gruß Rolf Quote
rolfdegen Posted July 31, 2015 Author Report Posted July 31, 2015 (edited) Die FM Synthese 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 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. Hier ein kleines 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 Assembler Code: FM Synthese //------------------------------------------------------------------------- // FM-SYNTHESE 1.Osc (Modulator), 2.Osc (Carrier) //------------------------------------------------------------------------- LDS pha_inc1_0, phaccu_stepsize1+0 LDS pha_inc1_1, phaccu_stepsize1+1 LDS pha_inc1_2, phaccu_stepsize1+2 LDS phase1_0, phaccu1+0 LDS phase1_1, phaccu1+1 LDS phase1_2, phaccu1+2 // def Register ------------- a1 = 2 ; 16Bit multiplier a2 = 3 b1 = 4 ; 24Bit phase-inc b2 = 5 b3 = 6 e1 = 7 ; 32Bit result e2 = 8 e3 = 9 e4 = 10 c0 = 11 ; help register for Addition temp1 = 16 ; help register // load 16Bit fm_ratio from table // Table offset comes from Encoder 0-24 // calc in c: Osci_fm_ratio = pgm_read_word (&(fm_ratio[Osci_ratio_value])); lds a1, Osci_fm_ratio+0 lds a2, Osci_fm_ratio+1 // load phase_increment mov b1, pha_inc1_0 mov b2, pha_inc1_1 mov b3, pha_inc1_2 // calc 32bit increment (phase_increment * fm_ratio >> 8) clr e1 ; clr result register clr e2 clr e3 clr e4 clr c0 ; clr help reggister mul a2,b3 ; Term 1 add e4,R0 mul a2,b2 ; Term 2 add e3,R0 adc e4,R1 ; add ov mul a2,b1 ; Term 3 add e2,R0 adc e3,R1 adc e4,c0 mul a1,b3 ; Term 4 add e3,R0 adc e4,R1 mul a1,b2 ; Term 5 add e2,R0 adc e3,R1 adc e4,c0 mul a1,b1 ; Term 6 add e1,R0 adc e2,R1 adc e3,c0 adc e4,c0 ; increment for Osc1 // add increment 1.Osc (Modulator) add phase1_0, e2 adc phase1_1, e3 adc phase1_2, e4 STS phaccu1+0, phase1_0 STS phaccu1+1, phase1_1 STS phaccu1+2, phase1_2 // load modulator modulator = 29 temp_modulator = 28 temp1 = 16 lds R30, Osci_sin_wav+0 lds R31, Osci_sin_wav+1 add R30, phase2_2 clr temp1 adc R31, temp1 lpm modulator, Z //2.Osc (Carrier) --------------------------------------------------------- lds phase2_0, Osci_phase2+0 // calc phase2 lds phase2_1, Osci_phase2+1 lds phase2_2, Osci_phase2+2 add phase2_0, pha_inc1_0 adc phase2_1, pha_inc1_1 adc phase2_2, pha_inc1_2 sts Osci_phase2+0, phase2_0 sts Osci_phase2+1, phase2_1 sts Osci_phase2+2, phase2_2 // calc increment parameter = 7 carrier = 10 temp1 = 16 lds parameter, Osci_parameter // 0-127 aplitude_Value add parameter, parameter // parameter x2 mul modulator, parameter clr temp1 add pha_inc1_0, temp1 adc pha_inc1_1, r0 adc pha_inc1_2, r1 add phase2_0, pha_inc1_0 adc phase2_1, pha_inc1_1 adc phase2_2, pha_inc1_2 // load carrier temp_carrier = 11 lds R30, Osci_sin_wav+0 // Startload addr sine table lds R31, Osci_sin_wav+1 add R30, phase2_2 clr temp1 adc R31, temp1 lpm carrier, Z+ lpm temp_carrier, Z // interpolisation two samples (noise reduction in low frequencies) temp_phase = 16 mov temp_phase, phase2_1 mul temp_phase, temp_carrier movw R30, r0 com temp_phase mul temp_phase, carrier add r30, r0 adc r31, r1 eor r1, r1 mov carrier, r31 // 8Bit Result = carrier // End ------------------------------------------------------ // Ratio Table const uint16_t fm_ratio[] PROGMEM = { 32, 68, 111, 151, 181, 201, 297, 321, // 0 - 24 362, 402, 447, 511, 514, 577, 704, 724, 767, 804, 886, 1023, 1086, 1206, 1310, 1435, 2050, }; Edited July 31, 2015 by rolfdegen Quote
Thomasch Posted August 1, 2015 Report Posted August 1, 2015 (edited) Das Problem an der normalen FM ist, daß sie bei komplexeren Wellenformen nicht wirklich Spaß macht. Wäre es nicht sinnvoller eher auf die Yamaha Variante mittels Phase Modulation zurückzugreifen? Finde ich zum Sounddesign deutlich entspannter und zielführender, als die normale FM. Ist halt echt schwierig Amplitude und Pitch bei der normalen FM unter Kontrolle zu halten. Vor allem wenn die Wellenformen komplexer werden... Edited August 1, 2015 by Thomasch Quote
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.