![]() ![]() ![]() So it’s quite obvious it’s going to produce glitches if the buffer size varies during playback, since the reset happens. Ok! So, my AudioProcessor’s processBlock checks each time if the buffersize has changed and sends a call to synthesizervoice’s LP-filters to prepare and reset. ![]() I can’t think of a single type of HP/LP filter that requires a fixed block size, since they all just generally work with a variable number of coefficients and only care about the sample rate (which will NOT change without a prepare() call). A technique I use when I have to have a certain block size (say, for doing FFT work) is to keep a rolling buffer (basically a ringbuffer that overwrites the head as data is added to the tail) at the buffer size I want and just add data to it as it comes in at whatever block size/rate it comes in, and process as needed. You’ll need to make your DSP work with variable block sizes. It’s not just VST either, I know AU does this, and I know many hosts other than FL use smaller block sizes in order to smooth automation. The block size provided in prepare() is only the maximum guaranteed block size to make sure you know ahead of time the most number of samples you’ll be expected to work with. ![]()
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |