Pure Data: Klangdateien Automatisch Laden

In meiner Peep-Sound-Installation wollte ich mehr als 600 Sound-Samples in eine Pure Data-Komposition laden. Ich stellte fest, dass der einfachste Weg dies zu tun wäre, ein sequenzielles Dateibenennungssystem für die Dateien zu entwickeln, die zufällig in der Komposition verwendet wurden: "0.wav, 1.wav, 2.wav, ...", usw. :

Ich habe dann eine verschachtelte Komposition mit einer Tabelle für jede Audiodatei erstellt:

Danach gibt es eine Funktion, die nach Ladezeit mit load bang läuft:

Lassen uns das Schritt für Schritt durchgehen:

[loadbang]
Führt die Funktion aus, sobald die Komposition geladen ist.

Number box (131)
Dies ist die Gesamtzahl der Audiodateien im Ordner "01".

Trigger, Float, Bang [t f b]Dieses Objekt legt die Reihenfolge der Operationen fest und ermöglicht es Ihnen, Prozesse in einer bestimmten Reihenfolge in PD von rechts nach links auszuführen. Dieses Objekt kann eine beliebige Anzahl von Operationen annehmen: [t b f f f], [t b b b] usw. In diesem Fall schlägt es zuerst die "0" in die float-Box und übergibt dann die Zahl 131 an das [to] -Objekt.

[until]
[until] iteriert, bis die eingegebene Nummer erreicht ist. Sei vorsichtig mit diesem Objekt ... wenn Sie es ohne eine Eingangsnummer schlagen, wird es unbegrenzt zählen, bis PD einfriert.

[makefilename]
makefilename akzeptiert Variablen zum Erstellen von Zeichenfolgen. Dies ist nützlich, wenn Sie eine Reihe von Dateinamen oder Arrays iterieren möchten, wie hier gezeigt. 

[pack]

Das "Pack"-Objekt nimmt eine Reihe von Eingaben vor und gibt eine Liste aus. [pack s s]: pack akzeptiert Floats, Symbole, Zeiger, Listen und mehr. In diesem Fall akzeptiert es zwei Symbole, also das "s s", und sendet sie in die Nachricht, die Audiodateien öffnet und in die Arrays lädt. Sehen Sie das [pack] -Objekt in der Pure Data-Hilfe für weitere Informationen, es ist extrem leistungsfähig.

[soundfiler]

Soundfiler liest Audiodaten aus einer Datei und schreibt sie in ein Array oder liest Audiodaten aus einem Array und schreibt sie in eine Datei. Es ist ein leistungsfähiges Objekt, das in der PD-Hilfe überprüft werden sollte. [Soundfiler] erhält Anweisungen von der Nachricht darüber, die wiederum den Namen des Dateinamens und des Arrays aus dem [pack] -Objekt darüber erhält.

[tabwrite]
Dies schreibt einen Wert in einen Index eines Arrays. In diesem Fall füge ich ein Array mit der Sample-Länge jeder Audiodatei hinzu (23608 Samples in diesem Fall). Jeder Index im Array entspricht dem Dateinamen, der in ein Audio-Array geladen wurde (wie Sie sehen, wird 130 in den rechten Eingang eingespeist). Ich benutze dieses Array, das ich sampleSizeArray genannt habe, um zu wissen, wie lange jede Audiodatei abgespielt wird, und um andere Timing-Aktionen auszuführen, wenn ein Sample fertig ist. Im Wesentlichen ist eine Datenbank mit Sample-Längen für die 600 Audio-Clips. Ich habe [tabread] in der Komposition verwendet, um das Audio von den Arrays abzuspielen, und mit [tabread] müssen Sie wissen, wie viele Samples in einem Stück Audio sind. Vielleicht mehr dazu später.