2 Stimmen

Kostenloser Wavetable-Synthesizer?

Ich muss eine Wavetable-Synthesizer in einem ARM Cortex-M3-Kern. Ich bin auf der Suche nach Code oder Tools, die mir den Einstieg erleichtern.

Ich bin mir bewusst, dass diese AVR-Implementierung . Ich habe ihn vor einiger Zeit in einen PIC umgewandelt. Jetzt bin ich auf der Suche nach etwas ähnlichem, aber ein wenig besser klingenden.

ANSI C-Code wäre toll. Alle Codeschnipsel (C oder C++), Beispiele, Tools oder einfach nur allgemeine Informationen würden sehr geschätzt werden.

Gracias.

5voto

Nick Haddad Punkte 8507

Das Synthesis Toolkit (STK) ist hervorragend, aber es ist nur für C++ geeignet:

http://ccrma.stanford.edu/software/stk/

Möglicherweise können Sie jedoch den Wavetable-Synthesizer-Code aus dem STK extrahieren.

4voto

CL. Punkte 164707

Zwei Open-Source-Wavetable-Synthesizer sind FluidSynth y TiMidity .

0voto

LifeInTheTrees Punkte 2050

Die besten ARM-Synthesizer können in weniger als einem Tag auf Wavescanner umgestellt werden. Scannen Sie die Welle aus Dateien oder generieren sie mathematisch ist fast die gleiche Sache audio-weise, WT bietet massive Banken von Wellenformen bei Null Verarbeitungskosten, Sie brauchen die Wellen, die WT-Oszillator-Code selbst ist 20 Zeilen. so ändern Sie Ihre Wellenform Regler von 3 bis 100, um anzuzeigen, welche WAV Sie lesen, verwenden Sie eine Rampe/Zähler, um die WAV-Dateien zu lesen (als Arrays). WT behoben.

Aus 7 Jahren Synth-Erfahrung würde ich empfehlen, 20 Zeilen der Oszillatorfunktion deines Lieblingssynthesizers zu ändern, um ihn an das Lesen von Wave-Arrays anzupassen. Der WT benutzt nur 20 Zeilen Logik, der Rest des Synthesizers ist wichtiger: LFO's, Filter, Eingangsparameter, Preset-Speicher... Verwenden Sie stattdessen Ihren Lieblingssynthesizer und finden Sie eine WT-Wave-Library in Form von WAV-Dateien und Ordnern, und ersetzen Sie die Oszillatoren Ihres Lieblingssynthesizers durch WT-Funktionen, es wird fast genauso klingen, nur mit geringeren Verarbeitungskosten.

Ein Synthesizer verwendet normalerweise Sin, Sqr, Saw, Antialiased OSC Funktionen für die Welle...

Ein Wavetable-Synthesizer besteht aus etwa 20 Zeilen Code und 10/20/100ds Wellen, wobei jede Welle idealerweise in jeder Oktave abgetastet wird. Wenn Sie eine Wavetable-Sound-Bibliothek erhalten können, der Synthesizer nur Schleifen, Tonhöhenverschiebungen, die Klänge, und Pro-Synthesizer können auch mehrere Oktave, um die Oktaven zu mischen.

WT-Funktion =

  • WAV-Dateien in N Arrays laden
  • Wellenform ändern = Wellenform-Array aus der WAV-Liste auswählen
  • Lesen des Wellenform-Arrays bei der gewünschten Frequenz

Funktion Wavescanner =

  • Überblendung zwischen 2 Wellen und Zuweisung von xfade zum LFO, d.h. Sinus und xfade.

Die Hüllkurve, das Filter, die Amplitude und alle anderen Funktionen sind in allen Synthesizern unabhängig von der Wellenerzeugungsfunktion.

Denken Sie daran, dass das mächtigste psychoakustische Werkzeug für Synthesizer die Abweichung vom digitalen Ton der Noten ist, es wird Unisono-Detune genannt, der Klangcharakter von Synthesizern kommt hauptsächlich von Chorus und Unisono-Detune.

WTs sind entweder einzelne Perioden von Wellen oder längere Abschnitte in fortgeschritteneren Synthesizern. Das Zeug mit den einzelnen Perioden ist super einfach in den Code zu schreiben. Die fortgeschrittenen WTs werden pro Oktave mit Wellen gesampelt, die N Perioden dauern, sogar 2-3 Sekunden, z.B. Klavier, und das bedeutet, dass sie die Klangqualität über die Oktaven hinweg ändern, so dass die komplexen WTs jede Oktave mit Aufnahmen über mehrere Oktaven überblendet werden.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X