<div dir="ltr"><div><div>Hey Derek (and list)<br><br></div>Thanks for the clarification. I put together a test patch for your fgraintstr~ (tesuto.pd) and tested it with the attached .wav file (you need to click on the "read" message). It would seem it works without inputting any values into the left inlet, which is tantamount to a freeze, I assume...?<br><br></div><div>I'm not sure what a good grain rate is... maybe in the 20s or 30s. In general, it sounds a bit fuzzy and electronic and the harmonic spectrum is very unstable... but I'm probably doing something wrong. Any more tips?<br><br></div><div>Best,<br></div><div>S E P<br></div></div><div class="gmail_extra"><br><div class="gmail_quote">On Thu, Apr 21, 2016 at 4:14 AM, 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="">On Apr 20, S.E.P. wrote:<br>
> @Derek Kwan Many thanks for your reply and your patches. I confess that I<br>
> have a poor understanding of arrays and the related object and tend to use<br>
> objects/abstractions that take an audio/open panel input. With your<br>
> patches, as with some others I've seen, I need to put "pos (samples)" into<br>
> the inlet and I'm not sure what that means. Also, while the 1st argument is<br>
> the name of the array to be read, I don't know what "catchname" means for<br>
> the 2nd argument.<br>
<br>
</span>Hey,<br>
<br>
Sorry, I should get around to documenting these abstractions a bit more.<br>
fgrainstr2 is a bit more well documented than fgrainstr and I'll get<br>
around to specifying things more clearly, which I will do right now...<br>
<br>
THe first inlet in both are like tabread4~ in that you index into your<br>
soundfile (loaded by soundfiler) by sample. A normal sample rate Pure<br>
Data is run at is 44100 Hz (you can find this value by banging<br>
samplerate~) so to read through a soundfile at a normal rate, you'd<br>
index into the object (tabread4 or my fgrainstr) from 0 to 44100 over 1<br>
second to play back the first second at a normal speed and from 0 to<br>
22100 over 1 second to play through the first half second at half speed.<br>
You could do this indexing by using something like phasor~ or even<br>
easier, line~ by first sending the message 0 to line~ then the message<br>
"44100 1000" to ramp to 44100 over 1 second.<br>
The audio examples included with Pure Data (namely the ones at the<br>
beginning of B) and the help file for soundfiler explain how PD deals<br>
with soundfiles more clearly that I just did...<br>
<br>
As for the specifics in dealing my abstractions, you only really need to<br>
deal with fgrainstr and fgrainstr2 (but make sure that<br>
fgrain/fgrain2/tukeymaker are in the same folder). You don't even need<br>
to open those other abstractions, they're just there to help the main<br>
abstractions fgrainstr and fgrainstr2 do their business.<br>
<br>
Derek<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>