Jump to content

rolfdegen

Members
  • Posts

    457
  • Joined

  • Last visited

  • Days Won

    14

Everything posted by rolfdegen

  1. Hallo zusammen Aus dem Mutable Forum bekam ich den Tip, zwei Samples hintereinander zu laden und dann zu interpolieren. Das sollte die Störungen etwas verringern. Gesagt und getan.. Das Beispiel Programm funktioniert. Um zwei Bytes für die Interpolation hintereinander zu laden kann man gewöhnlich Z+ (ld first_sample, Z+) für die Adressierung des nächsten Samples benutzen. Dann würde aber die Adresse 0x100 am XRAM (externes 1MByte SRAM) anliegen und nicht 0x001. Aus diesem Grund wird die Adresse des Phasenaccu inc und erneut in das Adressregister für das XRAM geschrieben. //------------------------------------------------------------------------- // Load 1.Sample from 1MB XRAM Addr. (sample size is 256 Byte) //------------------------------------------------------------------------- sample1 = 16 mov r30, phakku2 // load Phaseaccu (is same Address vor XRAM) ldi r31, 0x00 ldi r21, 0x00 ldi r22, 0x80 // load Adress Offset (XRAM) add r21, r22 // and add with XRAM Offset Address in R18 out 0x3b, r21 // set XRAM Address to EBI Port ld sample1, Z // load Sample from XRAM out 0x3B, r1 // special EBI command //------------------------------------------------------------------------- // Load 2.Sample from 1MB XRAM Addr.+1 //------------------------------------------------------------------------- sample2 = 17 inc r30 // inc Phaseaccu out 0x3b, r21 // set XRAM Address to EBI Port ld sample2, Z // load Sample from XRAM out 0x3B, r1 // special EBI command //------------------------------------------------------------------------- // Interpolation //------------------------------------------------------------------------- mul phakku1, sample2 movw R30, r0 com phakku1 mul phakku1, sample1 add r30, r0 adc r31, r1 eor r1, r1 mov sample1, r31 // 8Bit Result in sample1 Bild 1 zeigt wie die Interpolation Routine in meinem Synthesizer arbeitet. Obere Kurve (Kanal 1) ist die Interpolation aus zwei 8Bit Samples und unten der gleiche Sample ohne Interpolation. Die Messpunkte sind direkt am DAC0+DAC1. Gut zu erkennen ist die feinere Abstufung des Samples mit Interpolation. Interpolation In dem Youtube Video kann man die Interpolation gut erkennen. Oben Sample mit Interpolation am linken DAC Ausgang und unten der gleiche Sample ohne Interpolation am rechten DAC Ausgang Gruß Rolf
  2. Hallo.. Ich bräuchte mal einen Tip. Wie kann ich das Phasen Jitter (siehe Bild ca. 3Khz) in meinem Synthesizer verringern. Für die Klangerzeugung benutze ich die DDS Synthese. Das Phasen Jitter beträgt in allen erzeugten Frequenzen 25usec. Das entspricht genau der Abtastrate im Synthesizer. Phasen Jitter 25usec Code Beispiel DDS-Synthese in meinem Synth //————————————————————————————————————- // load phase register all 25usec (40KHz Sample Frequence) //————————————————————————————————————- LoadPhaccu1: LDS phakku0, phaccu1+0 ; (R26) load 32Bit Phaseaccu LDS phakku1, phaccu1+1 ; (R27) LDS phakku2, phaccu1+2 ; (R28) LDS phakku3, phaccu1+3 ; (R29) //————————————————————————————————————- // Load 256 Byte Sample from 1MB XRAM Addr. 0x0000 //————————————————————————————————————- Osc1Sample: MOV R30, phakku3 // set XRAM address (is H-Byte Address from Phaseaccu) LDI R31, 0x00 LDI R21, 0x00 LDI R22, 0x80 // load AddressOffset 0x80 (is necessary for addressing the XRAMs in xmega) ADD R21, R22 // add OUT 0x3B, R21 // set XRAM Address to EBI Port LD R1, Z // load 8Bit Sample from XRAM in R16 OUT 0x3B, R1 // special EBI command //————————————————————————————————————- // inc Phaseaccu OSC1 (32Bit) // ———————————————————————————————————— LDS pha_inc0, phaccu_stepsize1+0 ; load 24 Bit PhaseIncrement LDS pha_inc1, phaccu_stepsize1+1 LDS pha_inc2, phaccu_stepsize1+2 ADD phakku0, pha_inc0 ; add PhaseIncrement ADC phakku1, pha_inc1 ADC phakku2, pha_inc2 LDI R2, 0x00 ADC phakku3, R2 //————————————————————————————————————- // save Phaseaccu // ———————————————————————————————————— STS phaccu1+0, phakku0 ; save Phaseaccu STS phaccu1+1, phakku1 STS phaccu1+2, phakku2 STS phaccu1+3, phakku3 //————————————————————————————————————- // Other functions for sound calculation (sample is present in r1) // ———————————————————————————————————— ... Hat jemand eine Idee ? Bis dahin lieben Gruß
  3. Hallo Hier einige Bilder vom neuen GUI Interface in mein Synth Gruß Rolf
  4. DIY Synth Project english: http://mutable-instruments.net/forum/discussion/2504/shruthi-synthesizer-and-my-wave-1/p1 german: http://www.cczwei-forum.de/cc2/thread.php?postid=86309#post86309
  5. Hallöchen.. Kleiner Zwischenstand meiner Entwicklungsarbeit am Synth. Hab gerade die LFO1-Menu Page neue entworfen. Mit dem Regler "Wave" kann man jetzt eine LFO Wellenform selektieren. Bild: LFO1 Menu Page Gruß Rolf
  6. Color SainSmart LCD 3.2" 240x320 for my DIY Synthesizer My project Blog in german: http://www.cczwei-forum.de/cc2/thread.php?postid=86251#post86251 My project Blog in english: http://mutable-instruments.net/forum/discussion/2504/shruthi-synthesizer-and-my-wave-1#Item_543

    © Rolf Degen

  7. Hallöchen Jetzt kommt Farbe ins Spiel :smile: Das neue Display ist in Betrieb und die ersten Regler Knöpfe sind designed. Zur Zeit passe ich die ganze Text- und Grafikausgabe an das neue Display-Format an. Durch das neue Display ergeben sich auch neue Ideen die ich einmal ausprobieren werde. SainSmart 3.2" LCD 240x320 Pixel Gruß Rolf
  8. Hallo.. My blog in english: http://mutable-instruments.net/forum/discussion/2504/shruthi-synthesizer-and-my-wave-1/p1 Hier die ersten Stereo Samples. Klingt schon ganz nett, aber noch nicht perfekt Stereo Sample Gruß Rolf
  9. Hallöchen.. Um die Kosten für einen Bausatz zu senken, will ich mal schaun ob ein anderes LC-Display wzB das SSD1289 von sainsmart am Synth funktioniert. Es handelt sich hierbei um ein 3.2" großes Farb LCD das mit einen Straßenpreis von 7-15 Euro fast überall erhältlich ist. SSD1289 Das Display hat sogar einen Touch Screen Controller on Board Gruß Rolf
  10. Hier eine Aufnahme vom Synth, in der das Noise Shaping noch deutlicher zu hören ist. 1.Sample mit Noise Shaping und 2.Sample ohne Noise Shaping https://soundcloud.com/rolf-degen/noise-shaping-2
  11. C-Code little Noise Shaping // skip Header from WAVE-File for (uint8_t i = 0; i < 44; i++) { sample = ffread(); } // calculate data length file_len = ((file_len - 44) / 2); uint8_t quantization_error; int16_t signed_sample_16; uint8_t sample_l; uint8_t sample_h; for (uint32_t i = 0; i < file_len; i++) { // load 16Bit sample-data sample_l = ffread(); // load L-Byte sample_h = ffread(); // load H-Byte // convert to signed 16Bit signed_sample_16 = (((int16_t)sample_h)<<8 | sample_l); // calculate data for noise-shaping int32_t sample_16 = (int32_t)(signed_sample_16); sample_16 += quantization_error; if (sample_16 < -32768){sample_16 = 32768;} else if (sample_16 > 32767){sample_16 = 32767;} int8_t sample_8 = sample_16 >> 8; quantization_error = sample_16 - ((int32_t)(sample_8) << 8); // convert to unsigned 8Bit sample_8 = sample_8 + 128; // write to 1MByte SRAM hugemem_write8(p+i, sample_8); } Gruß Rolf
  12. Bisher war es in meinem Synthesizer nur möglich Wave-Dateien in Mono zu laden. Ich möchte dieses Wochenende nutzen, um auch Stereo Dateien in meinen Synth zu laden. Ferner möchte ich die Auflösung von 8Bit auf 12Bit erhöhen. Das entspricht der maximalen Auflösung der DA-Wandler im Xmega Chip. Im Header einer Wave-Datei sind zB. auf Adresse 0x16 die Informationen über die Anzahl der Kanäle gespeichert. Bei Mono hat die Adresse 0x16 den Wert 1 und bei Stereo den Wert 2. Bedeutung der Daten im Header Quelle: Wikipedia Gruß Rolf
  13. So.. mir ist gerade ein guter Name für meinen Synthesizer eingefallen: "DeWave 1.0" Die ersten beiden Buchstaben sind aus meinem Familien Namen "Degen". Das "Wave" im Namen soll die verschiedenen Wellenformen und Samples im Synthesizer symbolisieren. Ich bin gerade dabei einen Programmabschnitt zu programmieren, der es ermöglicht, eine 16Bit WAVE-Datei von der SD Karte in den Synthesizer zu laden und dann als 8Bit Sample abzuspielen. Eigentlich ist eine WAVE-Datei ganz simpel aufgebaut. Am Anfang der WAVE-Datei ist ein Haeder bestehend aus 44 Byte, in dem z.B. das Format, Bitbreite und Samplerate gespeichert sind. Diese Header-Daten werden vom Synthesizer im Moment noch ignoriert. Nach den Header-Daten folgen die eigentlichen Sample-Daten. Diese sind bei einer 8Bit Wave-Datei vorzeichenlos (unsigned). Bei 16Bit bestehen sie aus 2Byte mit Vorzeichen. Das erste Byte ist das Low-Byte gefolgt vom High-Byte mit Vorzeichen. Um aus den 16Bit jetzt ein Vorzeichenloses Byte für den Synthesizer zu generieren reicht es aus, das Low-Byte einfach fallen zu lassen und das High-Byte mit 128 zu addieren. Das WAVE Format Hier ein C-Code Beispiel für meinen Synth // set folder --------------------------------------------------------- uint8_t error_status = 0; ffcd(""); ffcd("SAMPLE");ffcd(foldername); // open file ---------------------------------------------------------- if( MMC_FILE_OPENED == ffopen(sample_name,'r')) { uint32_t file_len = file.length; // set baseaddress sram hugemem_ptr_t p; uint32_t base = BOARD_EBI_SRAM_BASE; // 0x800000UL uint_fast8_t data = 0; uint32_t offset = 0x00000; p=(hugemem_ptr_t)((uint32_t)base + offset); uint8_t sample; // load WAVE-File 16Bit signed Little-endian / Low-byte first ----- // Sample-Bank 01-99 // skip Header from WAVE-File for (uint8_t i = 0; i < 44; i++) { sample = ffread(); } file_len = ((file_len - 44) / 2); for (uint32_t i = 0; i < file_len; i++) { sample = ffread(); // load L-Byte and ignore sample = ffread(); // load H-Byte sample = sample + 128; // convert in unsigned 8Bit hugemem_write8(p+i, sample); // write Sample in SRAM }
  14. Hallo zusammen.. Hab ein langes Wochenende vor mir und viel Zeit zum programmieren. Für die Soundverwaltung und das Laden von Waves und Samples habe ich jetzt eine gute Lösung gefunden. In Bank 00 befinden sich die festen Wellenformen wzB. Saw, Sinus, Rechteck u.a. (max. 128 ) Diese werden bei der Auswahl mit dem Encoder sofort geladen und auf dem Display dargestellt. In Bank 01-99 befinden sich die ganzen Samples (max. 12672 ). Die Samples werden als Text Liste dargestellt und können über die Load-Taste geladen werden. Für die grafische Darstellung und Einstellungen eines Samples geht man dann auf eins von vier Supmenu Seiten der Oscillator Page. Hi .. I have a long weekend and a lot of time for programing my synth. For the sound management and loading of Waves and samples I have now found a good solution. In bank 00 are the fixed waveforms Saw, Sine, Square and more (max. 128) These are loaded immediately when selecting the encoder and displayed on the screen. In Bank 01-99 are all the sample files (max. 12672). The samples are shown as a text list and can selected with “Load†button. For the graphical representation and edit of sample then goes to the Supmenu Pages of Oscillator. Auswahl eines Sound Program Auswahl einer Wellenform Auswahl eines Sample Ordnerstruktur auf der SD Karte PS: Es geht voran Gruß Rolf
  15. Hallo zusammen.. Wochenend ist Hobbyzeit.. und das bedeutet Weiterentwicklung an meinem Synthesizer. Heute gab es ein Update für meine Entwicklungsumgebung (ATMEL STUDIO 6.2 build 1153). Mal schaun was geändert wurde. Nächste Woche steht dann ein Hardware Update meines Computers an. Ich will die System Festplatte durch eine Samsung 840 EVO SSD 250GB ersetzen. Synthesizer Projekt Mit der Menüoberfläche fürs Laden der Sounds bin ich noch nicht ganz einverstanden. Gefällt mir irgendwie nicht. Aus dem Mutable Forum gabs mal wieder gute Tips. Sollte das Menü vlt. anders bennenne. Statt "Play Sound" lieber "Load Presets". Werde das mal überdenken und Heute ein paar Änderungen testen. Gruß Rolf
  16. rolfdegen

    MCUBoard13

    My DIY Synth Project: English: http://www.mutable-instruments.net/forum/discussion/2504/shruthi-synthesizer-and-my-wave-1/p1 German: http://www.cczwei-forum.de/cc2/thread.php?threadid=5878
  17. Hallo Nach längerer Abwesenheit aus familiären Gründen melde ich mich Heute wieder zurück. Die Hardware ist fast fertig. Was fehlt ist noch ein analoger Audioeingang, um externe Audiosignale über den Filter und VCA zu mischen. Das werde ich Heute auf die Platine löten. Dann werden die Schaltpläne für das Platinen Layout erstellt. Das Layouten übernimmt dann ein Freund. In der Zwischenzeit werkel ich noch ein wenig an der Software. Bis dahin lieben Gruß aus Wuppertal :) Hello After a long absence due to family reasons I sign today back. The hardware is almost ready. What is missing is still an analog audio input to mix external audio signals via the filter, and VCA. Today I will solder on the board. Then the schematics for the circuit boards layout are done. Doing layout is handled by a friend. In the meantime, I Werkel a little more on the software. Until then, love greeting from Wuppertal in Germany
  18. This is the MCU Board from my DIY Synthesizer "WAVone" My biggest Synth Project (in english): http://www.mutable-instruments.net/forum/discussion/2504/shruthi-synthesizer-and-my-wave-1/p1 Mein Synthesizer Projek (german): http://www.cczwei-forum.de/cc2/thread.php?threadid=5878
  19. Hallo zusammen.. Danke für die Tips. Bin gerade dabei eine Panoramaregelung für das Delay Signal zu integrieren. In der jetzigen Schaltung wird das Delay Signal beiden Ausgangskanälen gleichmäßig zugemischt (siehe Delay und VCA Schaltung). Die Idee mit dem Filter im Feedback des Delays ist mit Sicherheit eine sehr interessante Variante. Da die MCU Platinen des Synthesizers schon sehr voll ist, weis ich nicht ob ich diese Funktion noch integrieren kann. Muss mal schaun was für einen Hardware Aufwand dafür notwendig ist (Analog Schalter IC's 4066 o. ä). Aktuelle Delay Schaltung Aktuelle Filter Umschaltung und VCA Aktueller Filter Kanal 1 von 2 Synthesizer MCU Board Gruß Rolf
  20. Hallöchen.. Gestern habe ich meine bestellten Bauteile im Briefkasten gefunden. Schnell die Schaltung aufgebaut und getestet. Das Ergebnis gibts auf Soundcloud Delay Sound Demo: https://soundcloud.com/rolfdegen/sample-...lay-from-my-diy Delay Schaltung für meinen Synth Gruß Rolf
  21. Hallo ihr Lieben.. Die vergangenen Tage hatte ich im Mutable Intruments Forum viele Ideen und Anregungen für die Filterschaltung in meinem Synthesizer erhalten. Da war u.a. auch die Rede von einer Distortion Schaltung (Verzerrer) oder einer Delay Schaltung für Echo und Hall. Beides sehr interessante Dinge, die den Filter auf jeden Fall noch interessanter machen könnten. Die Distortion Schaltung habe ich dank zur Verfügung stehender Bauteil schnell aufgebaut und getestet. Für die Delay Schaltung ist der Schaltungsaufwand etwas größer. Ich musste erst ein spezielles Bauteil, einen PT2399, bestellen. Bei dem PT2399 handelt es sich um einen Audio Prozessor mit Echo Funktionen. Der Stückpreis liegt bei 1,50€. Filter Schaltung mit Distortion Funktionsbeschreibung Distortion Schaltung Das Eingangssignal wird über den Spannungsteiler R30 und R31 an den OTA geführt. Der Operationsverstärker IC 5B und die beiden Transistoren sind als Spannungsbegrenzer (Limitter) geschaltet und begrenzen die maximale Ausgangsspannung des Operationsverstärkers auf ca 1.0 Volt (VPP). IC 5C hat die Aufgabe das Signal zu verstärken. Über den Trimmer R28b wird die Ausgangsspannung am Operationverstärker IC 5B so eingestellt, das im Ruhezustand (Steuereingang 0V) das Ausgangssignal unterhalb der Spannungsbegenzung von 1.0 Volt liegt. Über den Steuereingang an R28 kann jetzt die Verstärkung im OTA IC3B bzw die Verzerrung am Ausgang stufenlos geregelt werden und. Signalkurven Distortion (unterer Oscilloskop Kanal ohne Distortion) Sound Demo Distortion: https://soundcloud.com/rolfdegen/distortion Wie gesagt, die Distortion Schaltung habe ich bereits aufgebaut und getestet und bin mit dem Ergebnis sehr zufrieden (Demosound). Da beide Schaltungen auf dem MCU-Board keinen Platz haben, muss ich mich leider für eine Schaltung entscheiden. Ich hoffe das ich diese Woche noch die Bauteile für die Echo Schaltung erhalte und kann dann mit dem Aufbau und Test der Echo Funktion beginnen. Bin gespannt auf den Synthi-Sound mit dem zusätzlichen Echo. Ein sehr gutes Soundbeispiel mit dem PT2399 habe ich auf Youtube gefunden (siehe unten). Gruß Rolf
  22. Hallo liebe Gäste im midibox Forum Im Moment gehts leider nur wenig voran. Einerseits mach ich mir noch Gedanken über eine zusätzliche Filterfunktion als Ersatz für die Filtermodulation in meinem Synthesizer. Und dann will ich noch einen kleiner StepSequenzer integrieren. Damit wäre der Synthesizer dann für viele Fälle einsetzbar. Schwerpunkt ist und bleibt aber die Klangerzeugung mit Wavetables. Die Anzahl der einstellbaren Soundparameter beträgt z.Zt. ca. 133. Eine andere Idee ist die Realisierung einer Update-Funktion des Betriebssystem für den Synthesizer über die SD Karte. Man hat dann die Möglichkeit die Software übers Internet als Download herunterzuladen und auf die SD Karte zu speichern. Das erleichtert die Behebung von Softwarefehlern beim User bzw es wird dafür kein Programmiergerät erforderlich sein. So.. jetzt wieder an die Arbeit, damit endlich fertig wird. Freu mich schon auf mein nächstes größeres Projekt den "WAVE 2" mit 16Bit Sound und 8 Stimmen. Lieben Gruß aus Wuppertal. Rolf
  23. Hallöchen.. Durch die Veränderung der Betriebsspannung im neuen Prototyp von +-5 Volt auf +-8 Volt musste ich am Filter ein paar Änderungen vornehmen. Die Veränderung der Betriebspannung verursachte eine höhere Audiosignalspannung am VCA-Eingang (> 9 VAC) und übersteuerte damit den Ausgang (Video 1). Durch die Verkleinerung von Widerstand R6 wurde die Filterverstärkung reduziert und damit auch das Eingangssignal am VCA. Das Audiosignal ist jetzt ok. Positiver Nebeneffekt ist ein geringeres Filterrauschen Filter Resonanz: Um einen Frequenz Bereich von 15 Hz bis 20 kHz für die Filter Resonanz zu erhalten, wurde R25 angepasst. VCF Channel 1 im "WAVE 1" VCA im "WAVE 1" Video 1: Verzerrungen am VCA Ausgang ( ) Video 2: Optimierter Filter ( http://www.youtube.c...n5MXSkyDo6PZ4Cw) Die schlechte Tonqualität (Verzerrungen) im Video bitte ich zu entschuldigen. Dies wird durch die Audiokompression im Video selber verursacht . Für meinem Logitech HD Webcam C525 habe ich leider kein gutes Tool für die Aufzeichnung von Audio und Video. Einen bessere Soundcheck gibts auf soundcloud: https://soundcloud.c...of-my-diy-synth Gruß Rolf
×
×
  • Create New...