This entire course has been utterly fantastic, thank you so much for putting something so professional together and making it free. I really love what you and the entire Bela team are doing.
@JamTagg Жыл бұрын
Excellent background and easy explanations, thank you!
@joaotragtenberg4 жыл бұрын
These lectures have been my happy moments of the quarantine.
@llupiy4 жыл бұрын
This is an awesome complement to the Audio Effects book. I couldn't truly explain how circular buffers were used in Delay Lines as comb filters for pitch shifting until now. Thanks!
@snugglepuff334 жыл бұрын
What's the Audio Effects book? Is specifically for use with Bela, or do you mean something like DAFX?
@llupiy4 жыл бұрын
@@snugglepuff33 the book is called Audio Effects, by Joshua Reiss and Andrew McPherson. It's not bela specific but audio coding and c++.
@snugglepuff334 жыл бұрын
@@llupiy Awesome thanks!
@liamgallagher97006 ай бұрын
How do you implement a delay without the popping when you move change the delay depth value?
@oromoiluig6 ай бұрын
you need to smooth the changing of the delay time across several frames or even blocks to minimise the "jumps" . This is a pretty common approach across time-varying audio effects.
@liamgallagher97006 ай бұрын
@@oromoiluig Value ramps are good, I just wish I knew the secrets being used in commercial plugins :p
@MoXyiD3 жыл бұрын
Caution: Spoilers below! I did the exercise to implement the variable delay- but instead of swapping the position of the write/read I added an if statement shown below (added the beginning of render). Is this less efficient? float delayTime = gGuiController.getSliderValue(delayTimeSlider); gReadPointer = (gWritePointer - (int)(delayTime * context->audioSampleRate) + gDelayBuffer.size()) % gDelayBuffer.size(); for(unsigned int n = 0; n < context->audioFrames; n++) { float in = gPlayer.process(); //Read the output from the write pointers oldest sample float out = gDelayBuffer[gReadPointer]; if (delayTime == 0) out = in;
@apm4143 жыл бұрын
That definitely works, though it will be a couple extra instructions per loop. You probably won't notice the difference on Bela, but on some types of processor (e.g. DSPs), branching instructions are relatively expensive compared to maths or memory access. That would matter if you had a lot of processes like that running. You can solve the problem by just having one more element on the delay buffer, and most likely you would never notice that extra memory footprint.
@aprisonerscinemastephenmur69324 жыл бұрын
I have too create a pingpong delay before tomorrow night, HELP!