Bezeichnung
MixSample -- mixt existierende Samples in ein neues Sample (V5.0)
Übersicht
[id] = MixSample(id, len, pitch, fmt, smp1, opt1, ...)
Beschreibung
Dieser Befehl kann verwendet werden, um eines oder mehrere bestehende Samples in ein neues Sample zu mixen. Das neue Sample wird der Sampleliste von Hollywood hinzugefügt und man kann mit der angegebenen id darauf zugreifen. Wenn Sie Nil in id übergeben, wird MixSample() automatisch eine freie ID auswählen und Ihnen zurückgeben. Das zweite Argument len gibt die gewünschte Länge des neuen Samples in PCM-Daten an. Das dritte Argument pitch gibt an, wie viele Daten pro Sekunde dem Audio-Gerät gesendet werden soll. Für CD-Qualität würden Sie 44100 dem Argument pitch übergeben, aber in vielen Fällen ist 22050 auch ausreichend. Im Argument fmt geben Sie das gewünschte Sampleformat für das neuen Sample an. Derzeit werden folgende Formate unterstützt: #MONO8, #STEREO8, #MONO16 und #STEREO16. Die beiden erstgenannten sind 8-Bit-PCM-Codierungen, während die beiden letztgenannten 16 Bit pro Kanal verwenden.

Die Samples, die in das neue Sample gemixt werden sollen, werden ab Argument 5 übergeben. Für jedes Sample, welches in das neue Sample gemixt wird, muss man eine ID sowie eine Tabelle übergeben, die weitere Parameter für den Mischvorgang enthält. Sie können diese Muster so oft wiederholen, wie Sie möchten. Die Tabelle, die für jedes Sample übergeben wird, unterstützt die folgenden Tags:

Pitch:
Gibt die Frequenz an, die verwendet werden soll, wenn dieses Sample gemischt wird. Dieser Tag ist standardmäßig die aktuelle Frequenz, die mit dem Befehl SetPitch() definiert wurde.

Offset:
Gibt die Position im Sample an, bei der MixSample() beginnen soll, die PCM-Daten auszulesen. Diese Position muss in PCM-Daten festgelegt werden. Dieser Tag ist standardmäßig auf 0 gesetzt, womit die Daten vom Anfang des Samples an geholt werden.

Length:
Gibt die maximale Anzahl von PCM-Daten an, die gemischt werden sollen. Der Standardwert ist -1, womit alle zur Verfügung stehenden Daten in das neue Sample gemixt werden.

Loop:
Gibt an, ob der Mixer weiterhin PCM-Daten am Anfang des Samples holen soll oder nicht, sobald das Ende erreicht ist. Der Standardwert ist True, womit der Mixer automatisch an den Anfang des Samples zurück springt, wenn das Ende erreicht ist und mehr PCM-Daten erforderlich sind.

Scale:
Gibt einen Skalierungsfaktor an, der auf den Mixvorgang angewendet werden soll. Wenn Sie viele Samples zusammen mixen, bekommen Sie wahrscheinlich ein paar Lärmeffekte, die Sie nicht wollen. Sie können diese Effekte durch die Reduzierung der Lautstärke vermindern. Dies kann mit Hilfe von diesem Tag erreicht werden. Jede PCM-Daten wird mit dem Skalierungsfaktor, den Sie hier übergeben, multiplizieren. Damit das Volumen um 50% reduziert wird, übergeben Sie einfach 0.5. Dieser Tag ist standardmäßig auf 1.0 gesetzt, womit keine Skalierung angewandt wird.

Threshold:
Mit diesem Tag können Sie einen Schwellenwert angeben, mit dem dieses Sample in das neue Sample gemischt werden soll. Zum Beispiel, wenn Sie dieses Sample erst nach 10000 PCM-Daten in das neue Sample gemischt haben wollen, können Sie hier 10000 angeben. Der hier angegebene Wert muss in PCM-Daten übergeben werden. Dieser Tag ist standardmäßig auf 0 gesetzt, womit dieses Sample von Beginn an in das neue Sample gemischt wird.

Dieser Befehl ist mächtig. Es wird automatische die Konvertierung zwischen den verschiedenen Kodierungen, Abtastraten und Kanal-Layouts durchführen. Außerdem können Sie so viele Samples in das neue Sample mixen, wie Sie möchten. Sie dürfen auch dasselbe Sample mehrmals mit unterschiedlichen Mixparameter wie variierende Geschwindigkeit oder verschiedenen Schwellwerten in das neue Sample mischen. Wenn Sie unerwünschte Geräuscheffekte erhalten, versuchen Sie die Lautstärke einzelner Samples mit dem Tag Scale zu reduzieren (siehe oben).

Eingaben
id
ID des neuen Samples oder Nil für die automatische ID-Auswahl
len
gewünschte Länge des neuen Samples in PCM-Daten
pitch
gewünschte Frequenz des neuen Samples
fmt
gewünschtes Format für das neue Sample
smp1
erstes Sample für den Mix
opt1
Optionstabelle des ersten Samples für den Mix
...
optional: Sie können die ID/Optionssequenz so oft wiederholen, wie Sie so wollen, so können Sie so viele Samples hineinmixen, wie Sie möchten
Rückgabewerte
id
optional: ID des neuen Samples; wird nur zurückgegeben, wenn Sie beim Argument id Nil angegeben haben
Beispiel
MixSample(1, 10 * 44100, 44100, #STEREO16, 2, {}, 3,
          {Threshold = 3 * 44100}, 4, {6 * 44100})
Der obige Code erstellt ein neues Sample im 44.1-Format mit 16 Bit pro PCM-Daten und zwei Kanäle. Die Länge des Samples wird genau 10 Sekunden betragen. Es beginnt Sample 2 in das neue Sample zu mixen, nach 3 Sekunden wird Sample 3 gemixt und nach 6 Sekunden wird angefangen, Sample 4 zu spielen.

Navigation zeigen