Lektion 6 - AM-Synthese und Playback
Lektion 6:
Video-Transkript
00:09 - Lektion 06. AM-Synthese und Playback. In diesem Tutorial werde ich Ihnen die Amplitudenmodulationssynthese oder kurz "AM" vorstellen. Wir werden diese Technik verwenden, um eine Sounddatei auf unserem PC zu speichern und herausfinden, wie man in Pure Data auf diese zugreifen kann. "AM" basiert auf einem Sound namens "carrier", der eine sinusförmige Welle oder ein komplexerer Klang sein könnte, wie wir sehen werden, wie z. B. eine Aufnahme eines Instruments oder einer Stimme. Der Träger ist in seiner Lautstärke oder Amplitude moduliert. Was bedeutet modulieren? Dies bedeutet, dass wir einen zweiten Klang haben werden, genannt "modulator" in der Regel eine sinusförmige Welle, die ihre Form abhängig von der Bewegung der Lautstärke annimmt. Mit anderen Worten, die Lautstärke oder Amplitude eines Signals, "carrier", wird in proportionalem Verhältnis zu dem des Modulators variiert. Dies ist, als ob es jemanden gäbe, der die Lautstärke mehrere Male pro Sekunde nach oben und unten bewegt. Wie oft? Die Zahl wird durch die Frequenz des "modulator"-Signals definiert. Um die "AM"-Synthese zu erzeugen, ist es notwendig, dass die Frequenz des Modulators größer als 20 Hz ist. Weil wir unterhalb dieser Schwelle keine Synthese betreiben, sondern stattdessen nur einen Audioeffekt auf das "carrier"-Signal anwenden würden, das als "Tremolo" bekannt ist. Der Unterschied ist, dass "AM" als andere Art der Synthese in der Lage ist, die physikalischen Eigenschaften des Trägers zu verändern, während ein Tremolo nur die Amplitude ändert. Ich werde, aus Zeitgründen und weil dieses Tutorial praktisch sein soll, nicht weiter auf die Theorie dahinter eingehen. Lassen Sie uns einen brandneuen Patch erstellen und 2 Oszillatoren erstellen, einen für den Träger und den anderen für den "modulator". 02:55 - Fügen wir einen Multiplikator für das Signal hinzu und verbinden es mit beiden Oszillatoren, den "carrier" als den linken und den "modulator" als den rechten Operanden. Jetzt haben wir das "carrier"-Signal, das durch die "modulator"-Frequenz moduliert wird. Wenn wir also einen "dac (tilde)" verbinden würden, würden wir fertig sein. Eigentlich ist das gar nicht wahr, denn es gibt ein paar Dinge, um die wir uns kümmern müssen. Das erste, was Sie wissen müssen, ist, dass eine Wellenform, wie die, die wir in diesem Patch verwenden, mit einer bestimmten Rate oszilliert, die auf die Frequenz innerhalb eines bestimmten Bereichs reagiert, der von -1 bis 1 reicht. Warum sage ich das? Das, was wir implementiert haben, obwohl es die Amplitude moduliert, ist noch keine "AM "; sehen Sie sich die Multiplikatoren an. Was wir gemacht haben, wird "ring modulation" oder "RM"-Synthese genannt und die Effekte, die auf den Klang wirken, sind etwas anders. Um eine echte Amplitudenmodulationssynthese zu erzeugen, müssen wir den Bereich unseres Modulators von -1 bis 1 auf 0 bis 1 reduzieren. Dies erfordert nur ein paar grundlegende mathematische Fähigkeiten! Wir müssen zuerst 1 zum "modulator"-Signal addieren, um unseren Bereich in den positiven Bereich zu bringen, ich habe das Objekt "+ (tilde)" verwendet, weil wir mit einem Signal arbeiten, nicht mit Zahlen. Jetzt geht die Reichweite unseres "modulators" von 0 bis 2 oder mit anderen Worten das Signal ist positiv. Wenn wir dies durch 2 teilen, mit dem Objekt "/ (tilde)" bringen wir das Signal in den Bereich 0 bis 1; das ist es, was wir brauchen. Lassen Sie uns dies mit dem „multiplier“ verbinden und dies ist der Algorithmus, der die "AM"-Synthese implementiert. Es gibt noch einige interessante Dinge, die ich Ihnen zeigen möchte. Zuvor sagte ich, dass "AM" passt besonders zu komplexen Klängen, aber wir wissen schon, dass "osc (tilde)" die grundlegendsten Klänge erzeugt, eine sinusförmige Welle. Also lassen Sie uns den Oszillator loswerden, den wir für den "carrier" verwendet haben. Eine andere Lösung wäre, einen Oszillator zu verwenden, der eine komplexere Wellenform erzeugt, wie "phasor", der eine Sägezahnwelle erzeugt. Lassen Sie uns die Hilfedatei für einen Moment überprüfen. 05:52 - Wenn wir hier eine Frequenz von 5.000 Hz einstellen, können wir deutlich feststellen, dass diese Wellenform sich von derjenigen unterscheidet, die uns bis jetzt begegnet ist. Dennoch habe ich das Gefühl, dass diese Wellenform nicht komplex genug ist, ich wollte Ihnen nur dieses Objekt zeigen, weil Sie es vielleicht in Zukunft verwenden möchten; für den Moment brauchen wir es allerdings nicht. Was ich jetzt tun möchte, ist zu zeigen, wie wir stattdessen eine Sounddatei in Pure Data lesen können, die auf dem PC gespeichert ist. Die Sounddatei, die ich Ihnen zur Verfügung gestellt habe, enthält eine Sprachaufnahme und hat eine Wellenform, die definitiv komplexer ist und somit ansprechendere Ergebnisse hervorbringt. Um einen Soundfile zu lesen, müssen wir ein neues Objekt "readsf (tilde)" einführen, wir fügen auch ein Argument hinzu: 2. Was bedeutet das? 2 ist die Anzahl der Kanäle, die das Soundfile hat: es ist Stereo, sodass es 2 Kanäle hat, einen linken und einen rechten. Verbinden wir es mit dem Ausgang des "multipliers", der mit unserem Oszillator verbunden ist, dieses Mal mit einem festen Argument "0.5", und wir erstellen auch einen "dac", um auf unsere Soundkarte zu gehen. 07:26 - Jetzt verbinden wir den linken Ausgang von "readsf" mit dem ersten Multiplikator, wir kopieren und fügen diese ein und verbinden es, wie Sie sehen können. 07:43 - Haben Sie verstanden, was ich getan habe? Wir sagten, dass unsere Sounddatei zwei Kanäle hat, was bedeutet, dass wir "AM" auf beide Kanäle anwenden müssen, links und rechts. Weil sonst die Amplitude jedes Kanals summiert würde, könnte es eine Verzerrung geben, das ist der Grund, warum ich einen weiteren "multiplier" am Ende hinzugefügt habe, um die Lautstärke jedes Kanals zu halbieren. Wir sind jetzt fast fertig, wir müssen nur herausfinden, wie man "readsf" mitteilt, welche Datei zu lesen ist. Dies kann in wenigen Schritten erfolgen. Lassen Sie uns zuerst 2 „messages“ erstellen und beide mit "readsf" verbinden. 08:35 - Im ersten gebe ich "0" ein, wir werden dies brauchen, um die Wiedergabe zu stoppen. Übrigens, vergessen Sie nicht, die Hilfedatei von "readsf" zu überprüfen. In der anderen werden wir "open $1" eingeben. 08:56 - Was bedeutet das? Öffnen Sie eine Datei, die irgendwo abgelegt ist, das ist der Grund, warum ich das Symbol "$" verwendet habe, weil der Pfad eine Variable ist. Nachdem Sie dies getan haben, beginnen Sie es abzuspielen. Lassen Sie uns auch ein "print"-Objekt erstellen und eine Verbindung zu dieser letzteren Nachricht herstellen, ich werde Ihnen später erklären, warum wir dies tun. Der letzte Schritt besteht darin, den Pfad der Datei zu bekommen, die ich lesen möchte. Dazu benötige ich zwei Objekte: einen "bang" und "openpanel". 09:43 - Was "openpanel" tut, ist ein Fenster zu öffnen, das es uns ermöglicht, eine auf der Festplatte gespeicherte Sounddatei zu wählen. Wir brauchen dann den "bang", um "openpanel" auszulösen, der den Pfad der Datei, die ich als Variable wähle, an die Nachricht "open" übergeben wird. Lassen Sie es uns versuchen. 10:28 - Sehr schön, es funktioniert! Wir haben noch ein aller letztes Problem zu lösen. Wie Sie bemerkt haben, wird die Datei nur einmal abgespielt, aber höchstwahrscheinlich würden wir eine Schleife erstellen, sodass wir nicht immer eine Datei zum Abspielen auswählen müssen. Leider gibt es keine Nachricht, die wir an "readsf" senden können, um die Schleife zu konstruieren, also müssen wir einen Trick anwenden. Der rechte Ausgang von "readsf" sendet einen "bang"; sobald es die Wiedergabe der Datei beendet, lassen Sie uns einen „bang“ mit ihr verbinden, um es zu überprüfen. 11:30 - Weiter geht‘s. Dies bedeutet, dass ich eine Nachricht erstellen kann, die "readsf" anweist, dieselbe Datei auf demselben Pfad erneut zu öffnen und sie abzuspielen. Das ist eigentlich sehr einfach. Lassen Sie uns eine Nachricht nehmen und wir drücken in "open" die Space-Taste und jetzt müssen wir hier den genauen Pfad der Datei reinkopieren, die wir lesen möchten. Wo finden wir das? 12:06 - Das ist der Grund, warum wir "print" verwendet haben; wenn Sie in das "Log" Fenster schauen, werden Sie dort den Pfad der Datei sehen, die wir vor einigen Minuten gelesen haben. Lassen Sie es uns kopieren und fügen Sie es in die Nachricht ein und fügen Sie Komma "1" hinzu. 12:47 - Jetzt sind wir fertig! Lassen Sie es uns erneut versuchen. 13:20 - Sehr gut, es funktioniert wie erwartet! In diesem Tutorial haben wir nicht nur Amplitudenmodulationssynthese implementiert, sondern auch ein einfaches und effektives System zum Lesen und Wiederholen von Soundfiles erstellt, das immer wieder verwendet werden kann, wenn Sie es benötigen. Das nächste Tutorial ist das letzte des ersten Teils und wir werden sehen, wie man die Frequenzmodulationssynthese implementiert.
Beispiel Patch: