Routing with WavePlayer


After many time, I still don’t understand how is working the routing in WavePlayer, described in the help of this node.

I have an external soundcard MOTU 828 mk3, with 8 mono outputs (so 4 pairs of stereo outputs).
Outputs are well listed in the AudioOut Driver-pin. Note that I have both normal outputs and the corresponding “Directsound”, for example MOTU Analog 1-2 and DirectSound:MOTU Analog 1-2. Volume and Pan pins of AudioOut only work with the DirectSound outputs.

Now, my problem. Whatever I put in the Routing pin of the WavePlayer (I still talk about the help patch of the WavePlayer node), I have sound only in the outputs defined in the AudioOut. Which seems logical. So how the routing of WavePlayer is meant to work ?

Is my problem coming from the configuration of my soundcard ? If yes, does someone know how to do ?
Is there something I’m missing in the chain within vvvv ?

I know I maybe should use PureData, but I have to struggle with it, I find its GUI too harsh and weak compared to vvvv, which is lovely intuitive and logical. And I only want to do “simple” things concerning audio : read wave files on 2 stereo pairs of loudspeakers.

Thank you for your help.


how should your routing be?

i am afraid the waveplayer won’t work with professional cards like the MOTU. it only supports those consumer…6.1…cheapo/gaming cards. many PCs nowadays have such cards built-in.

also you may want to have a look a vuxens bass plugins that come with the addonpack. they should allow you to use your card.

Thank you for your responses.

@tonfilm : here are the 2 kinds of routing I would like to have :
1/ 1 mono wave file, read on 2 stereo pairs of loudspeakers, so something like 0,1,4,5 in the routing pin (left and right for front and rear)
2/ 2 mono wave files, creating 1 stereo source, read on the same configuration, so with something like 0,4,1,5 in the routing pin to render the stereo (considering I have my 2 wave files in the Filename pin)

Then, in the 2 cases, I would like to play with the Pan pin in order to simulate a very basic spatialization of the sound

@joreg : ok for the MOTU… Indeed the Bass plugins could do the job, from what I read on it, but it’s an additional license…

I tried to duplicate FileStream+AudioOut 4 times, with the same wave file to read but with a different Driver pin for each AudioOut : 1-2, 3-4, 5-6, 7-8 (even if for the moment I have only 2 pairs of speakers). See the attached patch.

It seems to work, the 4 files are synchro. And I’m able to change volume and pan of each pair of speakers. I also could maybe duplicate 8 times in order to control each speaker separately…

But I’m not very sure this method will keep synchro all the times, in all situations…

1/ Do you think it’s a safe method ? (I should say “not too unsafe”).
Knowing that I don’t plan to read 2 hours symphonies, only short files (max 5’ I think, and sometimes just sounds of few seconds).

2/ Sometimes the start is not perfectly synchro, I could add a security to reset in this case (so it restarts, but so shortly after a first start that it couldn’t be heard). And maybe also, if during the play I have a too big offset, resynchronize everybody with a SeekPosition very shortly after or before the current position. Actually the 2 cases are the same one…
Do you see other securities I could put ? Or big problem I didn’t think about ?

3/ Is the file read really four times (4 access disk) or does vvvv handle it just one time in memory ?

(Sorry for long posts)

Thanks (4.8 kB)

i am afraid multiple filestreams are not guaranteed to run in sync. you’d really have to test if that is not too unsafe for your application.

for manually syncing filestreams there is the Adjust System Time pin on the FileStream node. choose one of the filestreams to be the master. on the other 3 you set the Clock pin to System, and adjust the system time they are off from the masters stream-position. adjustment works by setting the pin to a positive or negative value until the output is in sync again.

never tested that with audio only streams though…

and yes, the file is actually read 4 times from disk. no optimizations there…

Thank you Joreg for your lightings !

Moreover, in searching how to access in the patching the hidden Adjust System Time pin of the FileStream node, I discovered how to show a hidden pin. Thank you !!
(For people like me who don’t know : in the Inspektor, on the line of the pin, just click at left on the white square : 1 time the pin is half showed, 2 times the pin is 100% showed, 3 times back to hidden)

I will test all that.

Just a short question : for the master, do I let the Reference Clock pin to “Default” or do I set it to “None” ?

ai, forgot about the hidden pin. glad you found it.
for the master the clock stays at default!

OK, thank you again !