Great Video! But I have a question, shouldn't it be in the else section when coping the remaining amount to the beginning of the delay buffer (channelData + numSamplesToEnd)? So by doing this the pointer will increase to the last position copied. If we simply do channelData won't the program take the the values in channel data from start? Am I right?
@rickybrenay624911 ай бұрын
thank you. this helped design a 5 second peak hold time.
@StuBonham3 жыл бұрын
Looking forward to this!
@youdilab43902 жыл бұрын
Helpful video as always. (Bonus: I learned about the "DBG" macro which prints the given text in the output window if you are using Visual Studio.)
@DiegoCapoccitti3 жыл бұрын
Great tutorial! Thank you for sharing it! Just one question: why are you using "copyFromWithRamp" function instead "copyFrom"? With "copyFromWithRamp" the first and the final samples are modified by gain, right?
@dtauscher932 жыл бұрын
Thanks for the very awesome tutorial video! However, I do have a suggestion. Would it not be more efficient to have separate for loops for the conditionals instead of the if else inside the one loop? Because it seems like only the if XOR the else statement will occur per call to processBlock. The code size would definitely be slightly larger, but you would only have to branch one time per call to processBlock from the fillBuffer function.
@Williamluai2 жыл бұрын
Thank you so much!
@twangist2 жыл бұрын
(Not to be unbearably nitpicky, but) It seems your "wrap?" conditional test would be better as '>=' rather than '>', In the code that you eventually refactor into the fillBuffer function. Consider "if (delayBufferSize > bufferSize + writePosition)". if delayBufferSize == bufferSize + writePosition, the circular buffer can jussst fit the new data of size bufferSize, and the "if" block would handle it properly. However, your code executes the 'else' block, which first copies bufferSize many samples in the first two of four lines, and then pointlessly (the next, last two lines) copies 0 samples to the start of the delayBuffer, incurring an API call for nothing.
@dahrendorfguitars72912 жыл бұрын
I'm a newbee so I may say something stupid. I think you need ">" because writePosition starting with 0 position, not the 1
@twangist2 жыл бұрын
@@dahrendorfguitars7291 Yes indexes are zero-based, so the length of an array or vector is one greater than the last valid index/position. You don't "need" strict >, work out what happens when equality holds.
@noeqplease Жыл бұрын
Works fine, builds with no errors, except for the debugging to the console. Nothing happens. Using Juce 7.0.5
@cjwadeevans Жыл бұрын
Are you on Windows or Mac?
@yzhkkhzy10 ай бұрын
same for me
@anasmuzek98373 жыл бұрын
Can you please make a video about how to create a DAW on Android studio?! Please
@anasmuzek98373 жыл бұрын
@@TheAudioProgrammer You can do it, ! 🙏 please do it or you can make a piano roll only * please, you the best 🌸