<div dir="ltr"><div>@Derek Kwan Many thanks for your reply and your patches. I confess that I have a poor understanding of arrays and the related object and tend to use objects/abstractions that take an audio/open panel input. With your patches, as with some others I've seen, I need to put "pos (samples)" into the inlet and I'm not sure what that means. Also, while the 1st argument is the name of the array to be read, I don't know what "catchname" means for the 2nd argument.<br><br></div><div>@Jaime Oliver Have you used the Tom Erbe patches yourself? I downloaded the pack at this student's website: <a href="http://www.cooperbaker.com/home/code/pd%20spectral%20toolkit/">http://www.cooperbaker.com/home/code/pd%20spectral%20toolkit/</a> . Oddly, Windows tells me there are redundant files and asks if I want to replace them when I unpack it in a clean folder. I also add the path in my preferences and am unable to access the .pd_darwin files...<br><br></div><div>Best regards,<br></div><div>S E P<br></div></div><div class="gmail_extra"><br><div class="gmail_quote">On Tue, Apr 19, 2016 at 2:58 PM, Derek Kwan <span dir="ltr"><<a href="mailto:derek.x.kwan@gmail.com" target="_blank">derek.x.kwan@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><span class="">> Obviously, I'd prefer a unified solution that works for a wide variety of<br>
> samples. Any advice?<br>
<br>
</span>Hello SEP (and list),<br>
<br>
Another route is the granular route.<br>
<br>
I've got a bunch of abstractions that attempt to replicate<br>
SuperCollider's Warp1 UGen. Basically the idea is to have grains occur<br>
one after another in a more-or-less fixed rate (with some randomness<br>
thrown in so you don't get a pitch from the grains themselves) and<br>
choosing the duration of each grain so that they overlap each other (I<br>
can't remember what I chose, I think something like 32x overlap? I think<br>
the default rate in Warp1 is 8x but I never managed to get it sounding<br>
good with that low of an overlap). I think as well as time-stretching,<br>
you have the option of pitch shifting (at least in fgrainstr).<br>
<br>
fgrainstr needs fgrain (which is a "grain voice") and tukeymaker (which<br>
defines the window shape of each grain) and uses tabread4 if I remember<br>
correctly.<br>
<br>
fgrainstr2 needs fgrain2 and tukeymaker and uses tabplay to get around<br>
the issue of very large index numbers.<br>
<br>
With these abstractions, you can go down to a playback rate of 0. I<br>
didn't really code these abstractions with other eyes in mind, but I<br>
think they're commented enough to be useful.<br>
<br>
I've also started making these into externals but I'm not sure if they<br>
sound as good as the abstraction versions quite yet (still working out<br>
the kinks). Instead of a Tukey window, I opted in this case to use a<br>
standard cosine window.<br>
<br>
Here's the link to the abstractions on my github:<br>
<a href="https://github.com/derekxkwan/pure-data-abstractions/tree/master/fgrain" rel="noreferrer" target="_blank">https://github.com/derekxkwan/pure-data-abstractions/tree/master/fgrain</a><br>
<br>
Derek Kwan<br>
<br>
<br>
=====================<br>
<span class="HOEnZb"><font color="#888888">Derek Kwan<br>
<a href="http://www.derekxkwan.com" rel="noreferrer" target="_blank">www.derekxkwan.com</a><br>
</font></span></blockquote></div><br></div>