Writer (Wave)

I want to record a DShow Audio stream (the microphone) to a wave file. I tried to use dikis module, but didn’t manage to get the spreaded value data out of the stream.

Does anyone have an idea how to do this?

hm, that module was intended for synthesizing wave files from scratch within VVVV; i don’t think there is a way to convert incoming sound data to a spread of values. considering the large spreadcounts you would get, it would also be impractical (the original purpose of the wave writer is now pretty much superseded by the SourceBuffer (DShow9) node).

i recommend using puredata or (my new favourite) chuck for recording audio from a microphone to wave files. you could trigger both using OSC from within VVVV.

thanks for the hint. chuck worked out nicely.

i attach my solution for future reference.

record.zip (609.8 kB)

nice!.. no text …

cool , how do you set the audio driver etc velcrome ?

It does write a file but empty ,sorry chuk newbie

me too ;)

if you use the enable toggle you should hear the microphone input.

also I needed to disable that toggle again to get any output out of winamp and listen to the recorded file.

yes, chuck clings to the files it writes. i frequently had to kill it manually using the task manager to listen to them.

ok thx … no text …

hey velcrome i asked in the chuck forum and that it what they said :

for a list of audio channel devices : “chuck --probe”

Hi thanks for your reply if i have an audio card with more than one input where and how do i set the desired input for recording ?

Well, after using “chuck --probe” and determining what card has what number from ChucK’s perspective you can start chuck with

chuck --dac3 --channels6 myfile.ck

here the “3” would represent the number of the soundcard to use and the 6 the number of channels you’d like to use (this would be both in and out, see “chuck --help” for more options).

Once you have that running you can ask for a certain channel from your soundcard’s input in your code using “adc.chan(4) => my_ugen”, where the “4” would hopefully be the right channel. Remember we start counting at 0 yet the labeling on your hardware likely starts at 1.

This can indeed be a bit confusing because the code needs to match the way the VM is started, per default it starts in stereo mode on the default device so in that situation it makes no sense to have code that refers to the 6th or so input. Still; starting in stereo mode on the default device isn’t such a bad default.

I found that when working a lot with files that use a lot of channels it saved time to write a small batch file (a shell script would also do) to start the VM in that way and sometimes add the .ck file as well.

Hope that helps,

nice one.

you don’t need a batch file, all additional parameters can be added to the shellexecute node in the patch.

however, you might need to adjust the ck-file everywhere you see “adc=>” into “adc.chan(X)=>” depending on whatever X “chuck.exe --probe” prompted you to.