[id] = MixSample(id, len, pitch, fmt, smp1, opt1, ...)
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:
Offset:
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:
Loop:
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:
Threshold:
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).
id
Nil angegeben habenMixSample(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.