Forum

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