VL.NewAudio

Hey,

I just played around with latest VL gamma and came up with a new audio engine implementation.

https://github.com/synopia/NewAudio

You may install latest build using nuget and play around with it: https://www.nuget.org/packages/VL.NewAudio/ Dont miss the NewAudio.CV example!

Everything is in very early devvvv stage, so bugs are expected :-) Feedbacks are welcome…

5 Likes

i like

it is rudimentary really, but being able to freely switch between asio and dshow (and this wasapi thing) is powerful.
also, if I understand this right, we can patch instruments and filters akin to reaktor, with LFO and all the other standard vl nodes, just by patching within the AudioSampleLoop Region?

Wow, is this true? (AudioSampleLoop Region fun)

Is it at sample rate?

Wow, incredible timing. Gotta look into this ASAP!

great, thanks for joining! big up for the work on packaging, installing from nuget worked like a charm.

just one thing, i noticed that the audio thread is not closed when you close vvvv. you can do this by implementing Dispose on the node that opens the device and shut down everything in there. VL will call Dispose automatically when it’s present in a Process node.

Okay, lot of progress :-)

I completely rebuild the AudioSampleLoop. You now have access to an AudioSampleAccessor inside the loop. Use Get/SetSamples operation nodes to read/write to the internal audio buffers.

You need a pin for each input/output channel (Ctrl++). Same for AudioMixer.

There are three example patches, one very basic, one to show the FFT and a patch that simulates some control voltage machines. Here you can send outputs into machines to control their parameters.

@mrboni Yes, inside the loop, everything runs at sample rate. I also added an oversample pin (its a factor to multiply the sample rate for individual loops), so use this to burn your cpu :-D

@velcrome You can use any VL node inside a loop. If its a time base node (ie LFO), you need it to supply with the loop internal FrameClock (which runs at sample rate). You can also control the parameters of those nodes, however the parameter changes still occure on frame ticks.

Make sure to always use the latest and greatest version ;-) (waiting for 0.1.38-alpha to appear on nuget.org)

2 Likes

This is amazing. Can’t wait to play

hei synopia, this is great!

note that in order for your examples to show up in the helpbrowser they need to be named like “help\Category\OptionalSubcategory\HowTo Draw an FFT.vl”

and i wonder if the examples in each of the sections of this book by Miller Puckette could be an inspiration for more howto patches

@joreg I placed the help patches like you said - however, they appear in the help browser, but have no names there… What did I missed? :-)

The book looks good, but right now I am more into getting things to work properly. But it looks promising, I finally found a way to get noticed about updates in patches, so the sound render thread can react on that.

0.2.1 is on the way, including AudioSplitter and AudioThread nodes (runs all audio nodes that feed into it on its own thread). Very experimental of course.

hei synopia, sorry for late…

the reason the patches don’t show up is because your naming wasn’t exactly following the rules as i mentioned above. i made a little pullrequest that fixes the namings: https://github.com/synopia/NewAudio/pull/1

Hi @synopia, would it be possible to use more than 2 channels in the WaveOutput module?
I can create many audio channels in the AudioSampleLoop and AudioSampleAccessor, but somehow the WaveOutput is restricted to stereo channels, even if the AudioDevice is configured as multi channel.

24

1 Like

Hi, trying it for FFT analysis and it seems to work but the longer the program runs the higher latency I’m getting, basically the response is slowly drifting away.

After restarting the VL runtime the response is pretty much instant and later on I might be getting delays in the seconds range which is fairly unusable for any live scenario. Any idea what might be going on there? Seems the audio thread is not processing data at the right rate or something.

Anyone else experiencing this?

I also tried on another older computer, there it seemed fine but it seems to crash more when opening patches.

Just load the FFT help patch, set input, maybe reload VL runtime and watch

i experienced the same, until i changed latencies to those values:

Hi, it looks so cool but i cannot get it working.
Every help patch looks ok, i mean nodes are at their places, nothing red, but there is no sound, renderers are hidden and won’t open, no data is changing.
which gamma version it is tested to work with?
I’m on the 2020.1.7

please help if anyone can guess what may be wrong here
many thanks
sasha