» hot.WavePlayer
This site relies heavily on Javascript. You should enable it if you want the full experience. Learn more.

hot.WavePlayer

acl(admin devvvv vvvvgroup)

Multichannel-Waveplayer

Bei dem Routing handelt es sich um eine Abbildung von separaten Audioströmen auf die Ausgänge der Soundkarte.
Die Quelle sind Audiodateien, eine Audiodatei kann eine,zwei oder viele Kanäle enthalten. Eine sogenannte
Voice arbeitet mit den Samples genau einer Audiodatei,dies bedeutet, dass eine Voice auch mehrere Kanäle
beinhalten kann. Eine Voice hat einen Zustand, der sich beispielsweise aus der aktuellen Position, Lautstärke
und Abspielgeschwindigkeit zusammensetzt. Dieser Zustand ist für alle in der Voice enthaltenen Kanäle gleich.
Ausnahme bildet jedoch die Routingeigenschaft, die für jeden der Kanäle separat bestimmt ist. Die Anzahl der
Voices ist gleich dem höchsten SliceCount der Eingabepins mit Ausnahme des Routingpins. Eine Voice macht
natürlich erst Sinn, wenn für sie auch eine Audiodatei geladen ist.

Beispiel:

Play
0
1
1

File
A.wav
B.wav

Alle anderen Pins haben den SliceCount 1, dies ergibt drei Voices :

Voice 0 File=A.wav Play=0
Voice 1 File=B.wav Play=1
Voice 2 File=A.wav Play=1

Geroutet werden nicht Voices sondern einzelne Kanäle. Die Anzahl der Kanäle ergibt sich durch Aufsummierung
der Kanäle aller vorhandenen Voices:

Beispiel:

Voice 0 A.wav Kanäle = 2
Voice 1 B.wav Kanäle = 1
Voice 2 A.wav Kanäle = 2

                 

Dies sind 5 Kanäle insgesamt.

Die Abbildung des Spreads im Routing-Pin erfolgt zyklisch auf die Menge aller vorhandenen Kanäle. Fehlerhafte
oder überschüssige Routing-Werte werden verworfen.

Routing-Pin
0
1
1
3

ergibt:

Voice 0 A.wav Kanal 0 Routing -> 0
Voice 0 A.wav Kanal 1 Routing -> 1
Voice 1 B.wav Kanal 0 Routing -> 1
Voice 2 A.wav Kanal 0 Routing -> 3
Voice 2 A.wav Kanal 1 Routing -> 0

Mit der Routingtabelle,

00 SPEAKER_FRONT_LEFT
01 SPEAKER_FRONT_RIGHT
02 SPEAKER_FRONT_CENTER
03 SPEAKER_LOW_FREQUENCY
04 SPEAKER_BACK_LEFT
05 SPEAKER_BACK_RIGHT
06 SPEAKER_FRONT_LEFT_OF_CENTER
07 SPEAKER_FRONT_RIGHT_OF_CENTER
08 SPEAKER_BACK_CENTER
09 SPEAKER_SIDE_LEFT
10 SPEAKER_SIDE_RIGHT
11 SPEAKER_TOP_CENTER
12 SPEAKER_TOP_FRONT_LEFT
13 SPEAKER_TOP_FRONT_CENTER
14 SPEAKER_TOP_FRONT_RIGHT
15 SPEAKER_TOP_BACK_LEFT
16 SPEAKER_TOP_BACK_CENTER
17 SPEAKER_TOP_BACK_RIGHT

und der obigen Eingabe ergibt dies:

Voice 0 A.wav Kanal 0 Routing -> SPEAKER_FRONT_LEFT
Voice 0 A.wav Kanal 1 Routing -> SPEAKER_FRONT_RIGHT
Voice 1 B.wav Kanal 0 Routing -> SPEAKER_FRONT_RIGHT
Voice 2 A.wav Kanal 0 Routing -> SPEAKER_LOW_FREQUENCY
Voice 2 A.wav Kanal 1 Routing -> SPEAKER_FRONT_LEFT

Default Routing:

Wave-Files können im Header eine Angabe beinhalten, wohin die Kanäle geroutet werden sollen. Falls diese
Routing-Information nicht vorhanden ist werden den einzelnen Kanälen der Audiodatei Ausgänge durch den
Waveplayer zugewiesen:

Einem Monofile ohne Routinginformation im Header bekommt für seinen Kanal SPEAKER_FRONT_LEFT zugeordnet.
Ein Stereo-File SPEAKER_FRONT_LEFT für Kanal 0 und SPEAKER_FRONT_RIGHT für Kanal 1.

Bei einem 6 Kanal-File wird angenommen, dass es sich um ein 5.1 Surround-File handelt :

SPEAKER_FRONT_LEFT
SPEAKER_FRONT_RIGHT
SPEAKER_FRONT_CENTER
SPEAKER_LOW_FREQUENCY
SPEAKER_BACK_LEFT
SPEAKER_BACK_RIGHT

Bei einem 8 Kanal-File wird angenommen, dass es sich um ein 7.1 Surround-File handelt :

SPEAKER_FRONT_LEFT
SPEAKER_FRONT_RIGHT
SPEAKER_FRONT_CENTER
SPEAKER_LOW_FREQUENCY
SPEAKER_BACK_LEFT
SPEAKER_BACK_RIGHT
SPEAKER_SIDE_LEFT
SPEAKER_SIDE_RIGHT

Entspricht die Wavedatei keinem der genannten Fälle und ist auch kein Routing im Wave-Header spezifiziert,
so wird allen Kanälen des Files SPEAKER_FRONT_LEFT als Default zugewiesen. Um die Files auf ihren
Default-Kanal zu routen, müssen alle Slices des Routing-Pins auf -1 stehen. Sind -1 und andere Werte
gemischt, beispielsweise:

Routing:

-1
0
1
-1
3

so werden nur 0,1,3 verwendet und wie oben zyklisch über die vorhanden Kanäle verteilt, alle Werte mit -1
verfallen.

Routing:

0
1
1
3
4
5
6

ergibt beispielsweise:

Voice 0 A.wav Kanal 0 Routing -> 0
Voice 0 A.wav Kanal 1 Routing -> 1
Voice 1 B.wav Kanal 0 Routing -> 1
Voice 2 A.wav Kanal 0 Routing -> 3
Voice 2 A.wav Kanal 1 Routing -> 4

Anmerkung:

Ist die Soundkarte nur stereofähig so werden alle Kanäle die nicht geroutet werden können, automatisch durch
die Karte auf die beiden vorhandenen Kanäle gemischt. Werden bei einer multikanalfähigen Soundkarte
Audioströme auf Ausgänge geroutet die nicht vorhanden (oder nicht in der Soundkarte eingestellt) sind, so
kann es vorkommen dass sie auf anderen Ausgänge zu hören sind. Werden mehrere Kanäle auf einen Ausgang
geroutet, so werden diese durch den Waveplayer aufsummiert und durch ihre Anzahl geteilt. Zu testen ist das
Routing mit der aktuellen Version des Waveplayer-Helpfiles und einer mehrkanalfähigen Soundkarte.

anonymous user login

Shoutbox

~4mth ago

joreg: END OF SHOUTBOX! As this page has is now legacy, it will no longer feature new content. For latest news, see: http://vvvv.org

~4mth ago

joreg: vvvvTv S0204 is out: Custom Widgets with Dear ImGui: https://youtube.com/live/nrXfpn5V9h0

~4mth ago

joreg: New user registration is currently disabled as we're moving to a new login provider: https://visualprogramming.net/blog/2024/reclaiming-vvvv.org/

~5mth ago

joreg: vvvvTv S02E03 is out: Logging: https://youtube.com/live/OpUrJjTXBxM

~5mth ago

~5mth ago

joreg: Follow TobyK on his Advent of Code: https://www.twitch.tv/tobyklight

~5mth ago

joreg: vvvvTv S02E02 is out: Saving & Loading UI State: https://www.youtube.com/live/GJQGVxA1pIQ

~5mth ago

joreg: We now have a presence on LinkedIn: https://www.linkedin.com/company/vvvv-group

~5mth ago

joreg: vvvvTv S02E01 is out: Buttons & Sliders with Dear ImGui: https://www.youtube.com/live/PuuTilbqd9w

~5mth ago

joreg: vvvvTv S02E00 is out: Sensors & Servos with Arduino: https://visualprogramming.net/blog/2024/vvvvtv-is-back-with-season-2/