forked from sonic-pi-net/sonic-pi
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request sonic-pi-net#1156 from stahnirockt/patch-4
Create 03.7-Sample-Packs.md
- Loading branch information
Showing
1 changed file
with
93 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,93 @@ | ||
3.7 Sample Packs | ||
|
||
# Sample Packs | ||
|
||
**Hinweis: Dieser Abschnitt des Tutorials behandelt den fortgeschrittenen Umgang mit großen Verzeichnissen deiner eigenen Samples. Das wird nützlich, wenn du eigene Sample Packs heruntergeladen oder gekauft hast und diese in Sonic Pi nutzen möchtest.** | ||
|
||
**Du kannst diesen Abschnitt überspringen, wenn du mit den mitgelieferten Samples zufrieden arbeiten kannst.** | ||
|
||
Wenn du mit großen Ordnern externer Samples arbeitest, kann es mühselig sein, jedes Mal den vollständigen Pfad eingeben zu müssen, um ein individuelles Sample abzuspielen. | ||
|
||
Sagen wir, du hast zum Beispiel folgenden Ordner auf deinem Computer: | ||
|
||
``` | ||
/pfad/zu/meinen/samples/ | ||
``` | ||
|
||
Wenn wir in den Ordner schauen, finden wir folgende Samples: | ||
* `100_A#_melody1.wav` | ||
* `100_A#_melody2.wav` | ||
* `100_A#_melody3.wav` | ||
* `120_A#_melody4.wav` | ||
* `120_Bb_guit1.wav` | ||
* `120_Bb_piano1.wav` | ||
|
||
|
||
Üblicherweise können wir den vollständigen Pfad | ||
``` sample "/pfad/zu/meinen/samples/120_Bb_piano1.wav"```nutzen um das Piano-Sample abzuspielen. | ||
|
||
Wenn wir das Gitarren-Sample abspielen wollen können wir ebenfalls den vollständigen Pfad nutzen: | ||
|
||
```sample "/pfad/zu/meinen/samples/120_Bb_guit.wav"``` | ||
|
||
Wie auch immer, beide Aufrufe verlangen von uns, dass wir die Namen der Samples innerhalb des Verzeichnisses kennen. | ||
|
||
Was, wenn wir nur schnell die einzelnen Samples nacheinander hören wollen? | ||
|
||
# Sample Packs indizieren | ||
|
||
Wenn wir das erste Sample in einem Verzeichnis abspielen wollen, müssen wir nur, wie folgt, den Verzeichnisnamen zum Sample und den Index 0 eingeben: | ||
|
||
```sample "/pfad/zu/meinen/samples/ , 0"``` | ||
|
||
Wir können sogar eine Verküpfung zu unserem Verzeichnis anlegen, indem wir eine Variable nutzen. | ||
``` | ||
samps = "/pfad/zu/meinen/samples/" | ||
sample samps, 0 | ||
``` | ||
|
||
Wenn wir nun das zweite Sample in unsrem Verzeichnis abspielen wollen, müssen lediglich den Index 1 anfügen. | ||
``` | ||
samps = "/pfad/zu/meinen/samples/" | ||
sample samps, 1 | ||
``` | ||
|
||
Bachte, dass wir nicht mehr die Namen der Samples im Verzeichnis kennen müssen, wir benötigen nur das Verzeichnis (oder haben eine Verknüpfung zu diesem). Wenn wir nach einem Index fragen, der größer, als die Anzahl der Samples ist, fängt es einfach von vorne an, wie bei Ringen. Es ist deshalb garantiert, dass egal welche Nummer wir nutzen, wir ein Sample aus dem Verzeichnis bekommen. | ||
|
||
# Sample Packs filtern | ||
|
||
Gewöhnlich reicht das indizieren aus, aber manchmal benötigen wir mehr Kraft um unsere Samples zu sortieren und zu organisieren. | ||
Glücklicherweise ergänzen viele Sample-Packs nützliche Informationen in ihre Dateinamen. | ||
|
||
Lass uns noch einmal einen Blick auf die Dateinamen in unserem Verzeichnis werfen: | ||
* `100_A#_melody1.wav` | ||
* `100_A#_melody2.wav` | ||
* `100_A#_melody3.wav` | ||
* `120_A#_melody4.wav` | ||
* `120_Bb_guit1.wav` | ||
* `120_Bb_piano1.wav` | ||
|
||
Beachte, dass wir in diesen Dateinamen einiges an Informationen haben. Zuerst haben wir die BPM (beats per minutes) des Samples. D.h. das Piano Sample hat 120 BPM und unsere ersten drei Melodien haben 100 BPM. Außerdem, beinhalten unsere Samplenamen die Tonart. Das Gitarren-Sample ist in Bb und die Melodien sind in A#. Diese Information ist für das Mixen der Samples in unserem Code sehr wichtig. Zum Beispiel wissen wir, dass wir das Piano-Sample nur mit Code verwenden können, der 120 BPM und die Tonart Bb hat. | ||
|
||
Es stellt sich heraus, dass wir dies spezielle Namensgebung unserer Sample-Sets im Code nutzen können, um uns dabei zu helfen, das herauszufiltern, was wir wollen. | ||
Wenn wir zum Beispiel mit 120 BPM arbeiten, können wir mit folgendem, alle Samples filtern die den String "120" haben: | ||
``` | ||
samps = "/pfad/zu/meinen/samples/" | ||
sample samps, "120" | ||
``` | ||
Dieser Code wird das erste passende Sample abspielen. Wenn wir das zweite passene Sample abspielen wollen, müssen wir nur einen Index nutzen: | ||
``` | ||
samps = "/pfad/zu/meinen/samples/“ | ||
sample samps, "120", 1 | ||
``` | ||
|
||
Wir können sogar mehrere Filter zur selben Zeit nutzen. Wenn wir zum Beispiel ein Sample dessen Name sowohl den String "120" und "A#" enthält haben wollen, können wir dieses einfach mit folgendem Code finden: | ||
``` | ||
samps = "/pfad/zu/meinen/samples/" | ||
sample samps, "120", "A#" | ||
``` | ||
Letztendlich steht es uns frei, unsere üblichen Optionen beim Aufruf des Samples anzuhängen. | ||
``` | ||
samps = "/pfad/zu/meinen/samples/" | ||
sample samps, "120", "Bb", 1, lpf: 70, amp: 2 | ||
``` |