I skipped from the Ch 11 filters chapter to the Ch 20 Phase vocoder chapter. Thank you for the phase vocoder implementation, it will help immensely as a base for my project.
I was wondering about the checkUnderflow() function. It was used on the output of the filters to prevent underflow in case we had a float sink. I was wondering if this should also be on the output of the phase vocoder. It seems like it also could underflow, but I wanted to make sure before placing additional logic on every single sample.
W Pirkle said
I am curious as to why the output would underflow? I can't think of a reason.
I guess the first scenario I was thinking is unlikely, if the input was 64-bit double and the output was going to a 32-bit float sink. I don't think any audio format is 64-bit double though.
But what if we had some 32-bit float input that had some tiny values in the time domain, then our phase modifications in the freq domain causes the synthesis to have some numbers that are even smaller and too small for 32-bit. Also, what if we started with the same and there were some rounding errors during windowing, etc that pushed the value smaller.
Most Users Ever Online: 152
Currently Browsing this Page:
Guest Posters: 1
Newest Members:lance, Mistahbrock, Jas, Rowan, sojourn, fabhenr, rg1, Niklas, Wutru, Tim Campbell
Moderators: W Pirkle: 573
Administrators: Tom: 74, JD Young: 80, Will Pirkle: 0, W Pirkle: 573, VariableCook: 3