Juce Tutorial 27- The Most Important Thing to Know When Creating An Audio Effect Plugin

preview_player
Показать описание
Here is a tutorial on one of the most important things you need to know when creating an audio effect in Juce! Made with help from Casper Ravenhorst and Xenakios from the Juce forum.

Рекомендации по теме
Комментарии
Автор

Thank you for continuing this series, this was actually a very important topic to cover, i'm happy to see your channel growing

dorinfabre
Автор

I was wondering how to use previous samples in an efficient way for the longest time, thank you for the tutorials!

Speechrezz
Автор

My "Multiverb" plugin DSP algorithm uses a major amount of saved data and I too use private variables (mostly float arrays) to hold this data and save it from call to call. I have a Multiverb method to process a block of samples and it requires only the input and output buffer pointers and the number of samples. When it returns, it retains enough information to process the next block. And, as in your example, I have an initializing method. Nice video, as usual!

warrenkoontz
Автор

With that const kChannels, you're limiting your processor to only ever being able to process 2 channels. Kinda sucks.
Since you're using a JUCE Array, you can use its native functionality to easily manage the array dynamically.
Create a function initDelayArray(const unsigned int NumChannels) or something, inside it check if the Array.size() is different than NumChannels, if so call Array.resize(NumChannels). This will manage the length of the array and will always keep it up with the current number of buffer channels. But since newly added values may be uninitialized, just add an Array.fill(0.0f) after the resize. So if the number of channels changes, all the delayed samples will be reinitialized, just to be safe.
Then just add a call to Array.fill(0.0f) in your prepareToPlay() function, and call in your processBlock.
Instant compatibility with all kinds of channel setups, mono, stereo, multichannel, everything.

robchokehold
Автор

awesome, just ran into this issue the other day

obsessive_discipline
Автор

Very interesing and helpful, as usual Is the sourcecode available somewhere?

VasaMusic
Автор

Amazing dude, this helped a lot, thanks

WouterStudioHD