Skip to main content

Lektion 2 - Mein erster Sound

Completion requirements
Ihr bekommt eine Einführung in digitale Signalverarbeitung: Objekte, mit denen man Audio-Signale bearbeiten kann, einen Oszillator erzeugen, seine Lautstärke regeln und die resultierende Wellenform visualisieren. Außerdem lernt ihr die "Hilfe"-Ordner kennen.

Lektion 2:

edu sharing object


Video-Transkript

00:08 - Lektion 02. Mein erster Sound. In diesem Tutorial werden wir die Objekte vorstellen, die für die Verwaltung von Audiosignalen verantwortlich sind. In Pure Data gibt es zwei große Kategorien von Objekten: diejenigen, die für die Verwaltung der Audiosignale und damit des Tons verantwortlich sind, und diejenigen, die für die Steuerung von Nachrichten verantwortlich sind, also Zahlen, Symbole und Listen. Was ist der Unterschied zwischen ihnen? Die Audio-Objekte haben immer Vorrang vor den anderen und sie sind immer am Rechnen, auch wenn wir sie nicht hören können. Darüber hinaus sind sie sehr schnell und reaktiv, um ein Sample mit Abtastfrequenz zu produzieren, also in der Regel mit 44.100 Malen pro Sekunde. Die Control-Nachrichtenobjekte, wie sie z. B. zum Einstellen der Frequenz eines Oszillators oder zum Einstellen der Lautstärke erforderlich sind, haben stattdessen eine niedrigere Priorität. Sie berechnen ein Ergebnis nur dann, wenn sie etwas als Eingabe erhalten, oder mit anderen Worten, wenn wir sie explizit bitten, etwas zu berechnen, wie wir es mit dem "Bang" im vorherigen Tutorial getan haben. Wenn ich Pure Data öffne, funktionieren Steuerelementmeldungen standardmäßig. Die Audioobjekte funktionieren stattdessen nur, wenn ich das Audio-Engine einschalte, indem ich das Kontrollkästchen im Fenster "Log" setze. Jetzt ist das Engine aktiv, DSP steht für "digital signal processing", und alles an Audiosignalen, das Sie bereits innerhalb eines offenen Patches getan haben, wird beginnen zu spielen. Lassen Sie uns dann einen leeren Patch öffnen, und ich werde Ihnen zeigen, welche die Schritte sind, um Geräusche aus einem Patch zu bekommen. Alle Patches, die ich Ihnen während dieser Serie zeigen werde, werden als didaktische Ressource bereitgestellt. Ich schlage Ihnen dennoch vor, mir Schritt für Schritt zu folgen und zu versuchen, den Patch zu reproduzieren, um mit Pure Data vertraut zu werden. Das erste, was wir brauchen, ist ein Objekt, das in der Lage ist, einen periodischen Kurvenverlauf und damit einen Sound zu erzeugen; der Name dieser Art von Objekten ist Oszillator. Wir wollen nun die einfachste Art einer periodischen Funktion erzeugen, eine sinusförmige Welle. 02:45 - Dazu geben wir ctrl_1/cmd_1 ein, um ein neues Objekt zu erstellen und innerhalb des Objekts geben wir "osc tilde" ein. Seien Sie vorsichtig, da alle Audioobjekte als letztes Zeichen eine Tilde haben (~). Wie ich bereits sagte, auch wenn wir unseren Oszillator noch nicht hören können, funktioniert er eigentlich schon, also was müssen wir tun, um ihn zu hören? Nur wenige Schritte! 03:17 - Zuerst müssen wir eine Frequenz für unsere Oszillation einstellen, um zu oszillieren, und es gibt zwei Möglichkeiten, dies zu tun: eine ist die Eingabe der Frequenz innerhalb des Objects, und so wird die Frequenz zum "argument" unseres Oszillators. Der Nachteil dabei ist, dass die Frequenz jetzt festgelegt ist und nicht geändert werden kann. Die zweite Möglichkeit, die Frequenz einzustellen, besteht darin, eine "numberbox" mit ctrl_3/cmd_3 zu erstellen und damit die Frequenz dynamisch über den ersten Eingang des Oszillators einzustellen. Auf diese Weise können wir die Frequenz ändern. 04:00 - Die Zahl, die wir als Argument im Oszillator eingegeben haben, wurde durch die Zahl überschrieben, die aus der "numberbox" gesetzt wurde. Der Oszillator interpretiert die eingehende Zahl als Hertz-Wert. Das bedeutet, dass es nun auf ein A der vierten Oktave eines Klaviers oszillieren soll, was 440 Hertz entspricht. 04:27 - Wir brauchen jetzt ein weiteres Objekt, das es uns ermöglicht, das Signal auf unserer Soundkarte auszugeben. Der Name dieses Objekts ist "dac tilde", wobei "dac" für "digital to analogconverter" steht. Wenn ich dann jetzt eine Verbindungslinie vom Oszillator nach links zum "dac" Eingang ziehe, höre ich eine sinusförmige Welle auf dem linken Kanal und wenn ich dasselbe für den anderen "dac" Eingang tue, höre ich die Sinuswelle auch auf dem rechten Kanal. 05:08 - Lassen Sie uns die Verbindung wieder trennen, denn wir müssen die Lautstärke anpassen. Um ein Patchcord zu löschen, gehen Sie einfach darüber, bis der Cursor zu einem "X" wird, und klicken Sie darauf. Nachdem sie nun hervorgehoben wurde, können Sie sie mit der Entfernen-Taste löschen. 05:33 - Die Lautstärke war zu hoch, also müssen wir eine Lautstärkeregelung implementieren, wie können wir das tun? Es ist wirklich einfach, was wir tun müssen, ist, alle Samples, die aus unserem Oszillator kommen, um einen Faktor zu multiplizieren, der kleiner als 1 ist. Denn wenn ich die Samples mit 1 multipliziere, würde ich keine Änderung in der Lautstärke bekommen, aber wenn ich sie mit 0,5 multiplizieren würde, würde ich die Lautstärke halbieren. Also lassen Sie uns dies tun. Wie Sie sehen können, habe ich das Multiplikationssymbol plus die Tilde eingegeben, weil wir ein Audiosignal und keine Zahl multiplizieren möchten. Da wir jetzt mit 0 multiplizieren, hören wir immer noch keinen Ton, aber lassen Sie uns eine "numberbox" hinzufügen, um eine gewisse Kontrolle über die Multiplikation zu erhalten. 06:42 - Wenn ich jetzt 0,2 eingebe, höre ich 20% der ursprünglichen Lautstärke. Wenn ich über 1 gehe, bekomme ich ein verzerrtes Signal, und im Moment ist es besser, dies zu vermeiden. Außerdem kann ich die Frequenz verändern, um alle Noten zu bekommen, die ich möchte. 07:05 - Als aller letzte Sache werden wir sehen, wie wir ein graphisches Feedback der Funktion erhalten können, die wir produzieren, was immer die beste Vorgehensweise ist. Dazu brauchen wir noch ein paar Objekte. Als erstes müssen wir ein neues Objekt erstellen, und geben "tabwrite tilde" ein und geben ihm einen Argument-Namen, zum Beispiel "testwave". 07:33 - Die Idee ist, dieses Objekt zu verwenden, um die Werte unserer Samples zu schreiben, die zwischen -1 und 1 mit einer bestimmten Rate oszillieren, die wir einem Array oder einer Tabelle zugewiesen haben, so dass wir sie als eine Form betrachten können. Wir brauchen auch einen "bang", der mit dem "tabwrite" Eingang verbunden ist, um dem "tabwrite" zu sagen, wann es die Werte zu schreiben hat. Dann müssen wir den "tabwrite" Eingang an den Ausgang unserer Lautstärkeregelung anschließen. 08:12 - Zuletzt brauchen wir eine Tabelle, um unsere Stichprobenwerte zu visualisieren. Gehen Sie einfach mit Rechtsklick auf "tabwrite" und wählen Sie "Hilfe", um den Hilfe-Patch verfügbar zu machen. Gehen wir in den Bearbeitungsmodus mit ctrl_E/cmd_E und wir wählen die Tabelle auf der rechten Seite mit dem Namen "array99" aus und kopieren sie mit ctrl_C/cmd_C. Wir können den Hilfe-Patch schließen und die Tabelle mit ctrl_V/cmd_V in unseren Patch einfügen. Machen Sie einen Rechtsklick darauf und wählen Sie "Properties", dann ändern wir im Fenster "Array-Eigenschaften" den Namen so, dass er dem entspricht, den wir als Argument des "tabwrite"-Objekts zugewiesen haben. 09:08 - Lassen Sie uns die Lautstärke einschalten und eine neue Frequenz einstellen. Jetzt, indem wir auf den "bang" klicken, können wir ein grafisches Feedback erhalten. In den nächsten Videos werden wir sehen, wie einige dieser Prozesse automatisiert werden können.



Beispiel Patch:

 

edu sharing object
 

Last modified: Tuesday, 12 September 2023, 7:20 PM