Hello,

- When reading a file at slower speed, tabread4~ create audible artefact. 
tabred4c~ use the same algorithm but with small difference in the interpolation 
coefficient (tabread4c~ use very classic coefficient for audio interpolation. 
Miller use a coefficient set that minimize artefact from a mathematical pov. 
But put them in very audible place).
So, when using tabread4 object to read an audio file t low speed, replacing it 
with tabread4c~ is an easy solution to improve audio quality.

- When you want to speed up a file playback, aliasing appear. Some algorithm 
solve this problem is a good way but I'm not aware of any pd implementation yet.
Since the interpolated value depend of the playback speed, I don't think it should be 
implemented in a tabread object but in a tabosc~ object (or a "multispeed_play" 
file)
I made a tabosci~ (i for interpolated) that allow to oversample/filter the 
interpolation algorithm. I agree that this is the worst solution to remove 
aliasing, but I did never had time to implement a better algorithm.
So, for now, you can use tabosci~ when you want to play a file at faster rate 
with reduced aliasing.

And I +1 with you for asking a correct Whittaker–Shannon interpolation object.

cheers
Cyrille

Le 02/06/2019 à 16:58, Peter P. a écrit :
Hi list,

having asked my students to compose pieces in Pd using audio data in
tables and reading them via tabread4~ my ears are still slightly
bleeding from the interpolation artefacts audible in almost every second
composition. Surely, everyone likes to slow down playback and I think it
should be possible without too many audible artifacts in Pd.

There is this legendary discussion on this list
https://lists.puredata.info/pipermail/pd-list/2008-06/062864.html
after Cyrille kindly posted about his tabread4c~ external. He also
pointed out more elaborate interpolation schemes such as in
https://lists.puredata.info/pipermail/pd-list/2008-06/063221.html
At that time a lot of list members agreed that it might be great to
switch interpolation algorithms in tabread4~ with an argument or
message to the object. As far as I can tell no additional interpolation
got implemented until today. Am I correct here?

The issue got briefly revisited two years later in 2010
https://lists.puredata.info/pipermail/pd-list/2010-03/077232.html
and raised by me again in 2015
https://lists.puredata.info/pipermail/pd-list/2015-05/110312.html
https://lists.puredata.info/pipermail/pd-list/2015-06/110751.html
after which I switched to supercollider for the specific project I was
working on at that time as it performed better at slow playback.

What could be a possible way to get slow playback from tables with less
artifacts? (I am tempted to add "in 2019") ;)

Thank you for all ideas and comments!
P



_______________________________________________
[email protected] mailing list
UNSUBSCRIBE and account-management -> 
https://lists.puredata.info/listinfo/pd-list




_______________________________________________
[email protected] mailing list
UNSUBSCRIBE and account-management -> 
https://lists.puredata.info/listinfo/pd-list

Reply via email to