Was sind die grundlegenden Kategorien von Operationen, die an Audiosignalen ausgeführt werden, um interessante Klänge zu erzeugen?


10

Ich weiß nicht, ob diese Frage Sinn macht, da ich für dsp noch sehr neu bin.

Bei meinem begrenzten Streifzug durch Audio-DSP bin ich auf Folgendes gestoßen:

  1. Frequenzmodulation
  2. Amplitudenmodulation
  3. Additive Synthese
  4. Subtraktive Synthese

Meine Frage ist: Sind dies die wichtigsten grundlegenden Kategorien der Signalmanipulation (speziell für Audio)?

Mit anderen Worten, können alle Effekte und ausgefallenen Dinge, die FL Studio mit einer vollständigen Suite von Plugins ausführen kann, in eine Reihe und Kombination der oben genannten 4 Operationen unterteilt werden? Oder gibt es noch eine ganze Menge mehr? Kann eine moderne DAW mit Plugins auf diese Weise theoretisch in Kategorien unterteilt werden? Sind die oben genannten 4 Kategorien an sich überhaupt sinnvoll?!

Ein bisschen Hintergrundwissen: Im Wesentlichen versuche ich, einen sehr einfachen (aber sehr flexiblen) Audio-Synthesizer / Editor als Projekt zu entwickeln, um sowohl Programmierung als auch Audio-DSP zu lernen. Mit Java begann ich damit, grundlegende Synthesizer-Klassen der realen Welt nachzuahmen, Dinge wie Oscillator und LFO und dergleichen aufzurufen, aber jedes Mal, wenn ich etwas Neues lerne, muss ich alles neu schreiben, um das neue Konzept in das Programm zu integrieren.

Ich versuche jetzt von vorne zu beginnen und die grundlegenden Objekte und die Struktur des Programms zu finden. Um das richtig zu machen, muss ich wissen, wie ich diesen Objekten erlauben soll, miteinander zu interagieren usw.

Vielen Dank!

BEARBEITEN * * *

Vielen Dank für die nützlichen Kommentare und Antworten. Mir ist klar, dass ich wahrscheinlich die DSP-Seite von Sachen unterschätzt habe und nicht in der Lage sein werde, einfach eine grundlegende Vorlage und Struktur für einen einfachen Synthesizer zu erstellen und sie dann einfach zu erweitern / darauf aufzubauen. Ich werde wahrscheinlich immer wieder neu aufbauen müssen, wenn ich neue Dinge lerne und die "richtige" Art, Dinge zu tun ... Es wird länger dauern, aber vielleicht werde ich mehr lernen? Es tut mir auch leid, dass ich noch nicht genug Repräsentanten habe, um noch jemanden zu unterstützen ... sobald ich kann, werde ich es tun.

EDIT * EDIT ***

Ich sollte hinzufügen, dass ein bisschen googeln diesen grundlegenden Leitfaden für "Synthesetypen" enthüllte, den ich relevant und interessant fand.


Möchten Sie den theoretischen Hintergrund zu Synthesetechniken oder möchten Sie etwas Ähnliches (dh gängige Methoden, die in der Praxis verwendet werden)? dsp.stackexchange.com/questions/192/…
Datageist

1
Wenn ich alle möglichen Klangmanipulationen in so wenigen Kategorien wie möglich zusammenfassen würde, würde ich lineare und nichtlineare Transformationen nennen. Diese sind jedoch zu allgemein und zu weit gefasst, um sie umsetzen zu können.
Alexey Frunze

@datageist - Ich denke, ich werde beides brauchen! Aber das ist ein sehr nützlicher Link, danke.
Kiman

@Alex Das ist sehr allgemein, aber es ist ein konzeptioneller Ausgangspunkt und zumindest weiß ich jetzt, dass ich den falschen Baum angebellt habe.
Kiman

Holen Sie sich Will Pirkle's Buch "Entwerfen von Software-Synthesizer-Plug-Ins in C ++: Für RackAFX-, VST3- und Audio-Einheiten". Sie werden tatsächlich einen Synthesizer bauen und dabei lernen, anstatt zu versuchen, alles selbst herauszufinden.
Panthyon

Antworten:


9

Die AM / FM-Kategorie ist etwas seltsam für Effekte - wahr, Sie können einige interessante Effekte erzielen, indem Sie die Amplitude eines Eingangssignals modulieren. Aber was bedeutet "Frequenzmodulation" für ein komplexes Eingangssignal, für das Sie nicht einmal eine genaue Frequenzdarstellung haben? Man könnte sehr gut sagen, dass jeder Effekt eine Amplitudenmodulation durch das Signal ist, aber dies wird Ihnen nicht bei der Implementierung helfen!out(t)in(t)

Es gibt keine magische Einzweck-Engine im Herzen aller Audioeffekte, die von Musikproduktionssoftware bereitgestellt werden. Wenn Sie sich jedoch den Quellcode einer großen Reihe von Audioeffekten eines DSP-Entwicklers ansehen, finden Sie hier einige "Bausteine", die in ihren eigenen Klassen herausgerechnet wurden und von vielen verschiedenen Effekten gemeinsam genutzt werden. Ich impliziere nicht, dass dies eine gute Grundlage für die Kategorisierung von Effekten darstellt. Aus Sicht der Implementierung sind diese Blöcke jedoch von wesentlicher Bedeutung:

  • Biquad-Filter.
  • Bruchverzögerungsleitungen.
  • Faltungsmaschine zur schnellen Faltung eines Eingangssignals mit Impulsantworten beliebiger Größe.
  • Wellenformer (Anwendung einer nichtlinearen Funktion auf das Eingangssignal in der Zeitdomäne).
  • Synthesizer-Bausteine: Oszillatoren, LFOs, ADSR-Hüllkurven.
  • Signaldetektoren: Hüllkurvenfolger, f0-Extraktor.

Mit diesen Blöcken könnten Sie bauen:

  • Synth-ähnliche Filter oder Wah-Wah: ein oder zwei Biquads
  • Auto-Wah: Umschlagfolger + Umschlag + Biquad
  • Flanger / Phaser: LFO + Verzögerungsleitung
  • Chorus: LFO + Delay Lines
  • Algorithmischer Hall: Verzögerungsleitungen (Array von parallelen und seriellen Kammfiltern)
  • Faltungshall: Faltung
  • Spatializer: Faltung (mit HRTFs Impulsantworten)
  • Gitarrenverstärkersimulation: Faltung, Wavehopper
  • Verzerrung, Fuzz: Gain + Waveshapper
  • Bitcrusher (Quantisierer): Ein besonderer Fall von Waveshapper
  • Ringmodulator mit Sinusträger: Oszillator
  • Noise Gate und andere dynamische Effekte: Hüllkurvenfolger
  • Bandsimulation: Faltung, Wavehapper, Hüllkurvenfolger (für die Dynamikverarbeitung)
  • EQ: Biquads
  • Tremolo: LFO
  • Leslie Emulation: Faltung + LFO
  • Vocoder: Biquads + Umschlagfolger

Während einige dieser Effekte nur das Patchen der verschiedenen Blöcke betreffen (ein Flanger ist wirklich ein LFO, der eine Verzögerungsleitung moduliert), erfordern einige andere Effekte einen komplexeren Klebstoff zwischen den Teilen, der spezifisch genug ist, um nicht in einen Baustein einbezogen zu werden für sich.

Dies ist insgesamt eine interessante Reihe von Effekten, die viel Boden für die Musikproduktion abdecken, aber nicht erschöpfend sind, und es gibt tatsächlich einige Effekte, die nicht zu diesem Framework passen ... Einige Beispiele: * Dirty Samplerate Reducer (in ein Bitcrusher): stimmt, es ist eine Multiplikation mit einem Dirac-Kamm und dann eine Faltung durch ein rechteckiges Fenster ... aber es ist einfacher, es als etwas zu schreiben, das den Wert eines Samples über die N folgenden Samples dupliziert, anstatt eine Amplitudenmodulation zu patchen und eine Faltung! * Tonhöhenänderungseffekte (Tonhöhenverschiebung, automatische Abstimmung) passen nicht gut zu diesem Framework. Sie benötigen eine komplexere Darstellung des auszuführenden Audiosignals (Phasenvocoder für Frequenzbereichsverfahren; Tonhöhenerkennung und Tonhöhenmarkierungen für Zeitbereichsverfahren).

Ich empfehle Ihnen, mit Software-Tools im "modularen Stil" wie Pd, Reaktor, Plogue, SyntheEdit ... zu spielen und zu versuchen, Effekte aus den Grundbausteinen zu implementieren, die sie Ihnen bieten.


2
Für das, was es wert ist, wird Frequenzmodulation in der FM-Synthese verwendet. Dies ist leicht aus dem Fall einer Einzelton-FM-Modulation ersichtlich, die zu einem Signal mit einer Fourier-Reihe führt, die durch Bessel-Funktionen der ersten Art definiert ist.
Bryan

1
"FM-Synthese", wie sie in Synthesizern implementiert ist (wie der Yamaha DX-Serie, der OPL-basierten Hardware und deren Software-Emulation), ist eine Fehlbezeichnung, da dies tatsächlich mit Phasenmodulation erfolgt. en.wikipedia.org/wiki/Phase_modulation
Pichenettes

Ich sehe keine Quellen, die diesem Wikipedia-Eintrag beigefügt sind. Unabhängig davon heißt es in diesem Eintrag, dass sie "ähnlich" klingen und dass PM verwendet wird, weil FM schwieriger zu implementieren ist. Ich kaufe das nicht, da FM ein Sonderfall von PM ist. Dennoch ist die Theorie, die ich hinter der FM-Modulation zitiert habe, die Harmonische in Bezug auf Bessel-Funktionen erzeugt, gültig und nützlich.
Bryan

@ Bryan. Siehe Anspruch 1 des "FM" -Synthesepatents, US4018121. Eine Sünde (wt + I (t) sin w_m t) - es ist Phasenmodulation. PM ist einfacher zu implementieren, da 1 / Sie keinen zusätzlichen Akku benötigen, um die variierende Momentanfrequenz in eine Phase zu integrieren - siehe die wenigen Beiträge hier, in denen versucht wurde, einen Ton mit zeitlich variierender Frequenz zu erzeugen, und 2 / zurückgebissen wurden. Die Umwandlung von einer Frequenz in ein Phaseninkrement beinhaltet eine Division. Mit PM berechnen Sie die Phaseninkremente mit der Modulationsrate neu. Mit FM müssten Sie die Phaseninkremente mit der Abtastrate neu berechnen.
Pichenettes

Sehr nützliche Antwort, danke. Mir ist klar, dass ich mich sehr auf den Programmieraspekt konzentriert habe (den ich gerade lerne) und die dsp-Seite nicht ernst genug nehme. Es wird wahrscheinlich kein Projekt sein, das ich einfach klein anfangen und schrittweise aufbauen kann, sondern eines, das ich beim Lernen viele Male neu aufbauen und neu erstellen muss.
Kiman
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.