<div dir="ltr"><div><div>I am new here, so please forgive my ignorance.<br></div><div>I do not know the whole history<br></div><div>or the PD culture or even how it is currently developed. <br><br></div><div>So this might be way off base...<br></div><div><br></div>IMO, externs are always going to be a problem moving forward.<br><br></div><div>If they don't have a maintainer... well,<br>at some point one must decide <br>to either leave it behind, and allow PD to grow, <br></div><div>or keep PD with odd, broken-ish behavior(*) forever<br></div><div>just for compatibility sake. <br>(* e.g., like comparison operators which bang whether true or false)<br></div><div><br></div><div>If the extern is popular, then hopefully someone would pick it up. <br></div><div><br></div>People on the Facebook group were talking about<br><div>crowdfunding a "Let's modernize PD" project,<br></div><div>which was a very active thread, got lots of people excited,<br></div><div>and brain-storming about all kinds of things, <br></div><div>inc. GUI redesign. <br><br>(My eyes are aging and I would SO love a mouse-wheel zoom, like GIMP.<br></div><div>Other items are on my wish list too :)<br></div><div><br></div><div>And the question becomes, is this a fork, <br></div><div>or is Miller involved and this becomes the main branch?<br></div><div>Obviously one of those options is far better than the other :)<br></div><div><br>One idea: After a major change, which could break old patches, <br>(which I would imagine would happen some day)<br>is to have a --compatibility switch at compile time<br></div><div>which would bring back the old behavior. <br></div><div><br></div><div>An even better approach (if it could be done)<br>is make the switch at *run time*<br></div><div>I know that might be hard/impossible,<br></div><div>but its not without precedent. <br></div><div><br></div><div>I'm thinking about the <b>#! invocation</b> at the top<br></div><div>of Unix shell scripts to specify the interpreter. <br><br></div><div>They made this change in such a way that<br></div><div>old versions of the shell would just ignore the line,<br></div><div>because it looked like a comment. <br></div><div><br>Same thing with Perl 5.16. Changed this syntax,<br>but with some cleverness, did not break old scripts. <br><br></div><div>So we can imagine a mechanism where I can create<br></div><div>a patch where I can somehow say,<br>"I want double floats", or "comparisons bang when true only" <br>or maybe just "give me all of the new stuff".<br>And if you don't say this, then we get the old behavior. <br></div><div><br></div><div>Thanks & Sorry if this is left-field...<br></div><div><br></div><div>BH<br></div></div><div class="gmail_extra"><br><div class="gmail_quote">On Sat, Apr 4, 2015 at 12:58 AM, Miller Puckette <span dir="ltr"><<a href="mailto:msp@ucsd.edu" target="_blank">msp@ucsd.edu</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">It's on my list, but it will have other problems (extern incompatibility and<br>
patches sounding different depending on how many bits you're using) so might<br>
not be worth it just for this.<br>
<br>
Another idea might be simply to make an abstraction to do varispeed playing<br>
from large tables, using the ideas in that example.<br>
<br>
cheers<br>
<span class="HOEnZb"><font color="#888888">Miller<br>
</font></span><div class="HOEnZb"><div class="h5"><br>
On Fri, Apr 03, 2015 at 12:47:55PM -0400, William Huston wrote:<br>
> Hi Miller---<br>
><br>
> Any chance of getting Vanilla to work with double floats any time soon, so<br>
> the "naive" solution using [phasor~] just works with big files as one might<br>
> expect?<br>
><br>
> Thanks<br>
><br>
><br>
> On Tue, Mar 31, 2015 at 11:17 AM, Miller Puckette <<a href="mailto:msp@ucsd.edu">msp@ucsd.edu</a>> wrote:<br>
><br>
> > Hi all -<br>
> ><br>
> > There's an example in B16.long-varispeed.pd that shows how you can use<br>
> > offsets<br>
> > into long arrays - this allows you to use the signal input within a smaller<br>
> > range (ideally < 1 second) to get accurate addressing.<br>
> ><br>
> > cheers<br>
> > Miller<br>
> ><br>
> > On Tue, Mar 31, 2015 at 11:07:52AM -0400, William Huston wrote:<br>
> > > I have a related question.<br>
> > ><br>
> > > I am intermediate PD programmer, about 9 months into patching.<br>
> > > I really love PD, despite some quirks.<br>
> > ><br>
> > > The single most annoying issue I have found so far is the inability for<br>
> > PD<br>
> > > to accurately index into large arrays.<br>
> > ><br>
> > > The way this manifests is very curious! I first noticed high frequency<br>
> > > noise at maybe 6 min. into an array, which gets worse as you move into<br>
> > the<br>
> > > file. At 20 min, it's really horrible.<br>
> > ><br>
> > > I would say the root cause is<br>
> > ><br>
> > > a) lack of a long integer datatype. Friends, sometimes you really want<br>
> > > ints, like accurately indexing into an array, and<br>
> > ><br>
> > ><br>
> > > b) lack of precision in (short) floats.<br>
> > ><br>
> > > People on the FB group promptly told me this is a well-known issue, and<br>
> > > directed me to PD-double. This sounds like a wonderful project, however<br>
> > it<br>
> > > seems it is only beta, and breaks several of the modules in extended.<br>
> > ><br>
> > > So I am wondering 2 things:<br>
> > ><br>
> > > 1) What solutions have people come up with for accurately reading big<br>
> > > arrays at audio rate, using either pd-extended or vanilla?<br>
> > ><br>
> > > (I have considered breaking the big file up into smaller arrays, but this<br>
> > > is cumbersome).<br>
> > ><br>
> > > 2) What is the long-term goal at solving this problem?<br>
> > ><br>
> > > Thanks :)<br>
> > ><br>
> > ><br>
> > ><br>
> > ><br>
> > ><br>
> > ><br>
> > ><br>
> > ><br>
> > > On Tue, Mar 31, 2015 at 5:51 AM, peiman khosravi <<br>
> > <a href="mailto:peimankhosravi@gmail.com">peimankhosravi@gmail.com</a>><br>
> > > wrote:<br>
> > ><br>
> > > > Sorry, forgot to reply to all.<br>
> > > ><br>
> > > > Hello,<br>
> > > ><br>
> > > > I had this problem in maxMSP recently and found a working solution.<br>
> > Note<br>
> > > > that I was only on a laptop so I don't know how relevant this is to<br>
> > your<br>
> > > > question. Below is the solution I found on the Max forum (I don't have<br>
> > the<br>
> > > > link right now but it should come up on google).<br>
> > > ><br>
> > > > 1- Read the file [silently] from disk (using sfplay~ or equivalent),<br>
> > at 50<br>
> > > > times the original speed and record the output into a buffer that is 50<br>
> > > > times smaller than the original file.<br>
> > > ><br>
> > > > 2- You can navigate through this smaller buffer and multiply the<br>
> > output by<br>
> > > > 50 to get the correct time pointer into the original file. I then read<br>
> > the<br>
> > > > original file from the disk, instead of loading it into a buffer.<br>
> > > ><br>
> > > > 3- Since I'm making my patch for concert playback, I have put in place<br>
> > a<br>
> > > > checking mechanism that looks for an existing 'waveform' file. (The<br>
> > patch<br>
> > > > automatically names these originalFileName.wave.aif.) If it exists, the<br>
> > > > waveform file is read into the buffer, otherwise, the loaded soundfile<br>
> > is<br>
> > > > 'analysed'.<br>
> > > ><br>
> > > > I can send you my patch if you are interested. I don't see any reason<br>
> > why<br>
> > > > this can't be implemented in PD. Although the graphical scrolling<br>
> > might be<br>
> > > > slower in PD. I'd be interested to know if this works in PD.<br>
> > > ><br>
> > > > Best,<br>
> > > > Peiman<br>
> > > ><br>
> > > ><br>
> > > ><br>
> > > ><br>
> > > > *<a href="http://www.peimankhosravi.co.uk" target="_blank">www.peimankhosravi.co.uk</a> <<a href="http://www.peimankhosravi.co.uk" target="_blank">http://www.peimankhosravi.co.uk</a>> || RSS<br>
> > Feed<br>
> > > > <<a href="http://peimankhosravi.co.uk/miscposts.rss" target="_blank">http://peimankhosravi.co.uk/miscposts.rss</a>> || Concert News<br>
> > > > <<a href="http://spectralkimia.wordpress.com/" target="_blank">http://spectralkimia.wordpress.com/</a>>*<br>
> > > ><br>
> > > > On 31 March 2015 at 10:18, Stefan Tiedje <<a href="mailto:stefantiedje@googlemail.com">stefantiedje@googlemail.com</a>><br>
> > > > wrote:<br>
> > > ><br>
> > > >> Hello list,<br>
> > > >> might well be the first post here, though I am well experienced in<br>
> > > >> Max/MSP...<br>
> > > >> As there is no way to get Max patches run on mobile devices, I want<br>
> > to do<br>
> > > >> it in PD using the MobMuPlat apps for Android/iOS.<br>
> > > >> The task would be to simply to play a stereo sound file, but of about<br>
> > one<br>
> > > >> hour lebgth. As MobMuPlat only supports vanilla PD I am restricted to<br>
> > that<br>
> > > >> as far as I know.<br>
> > > >> In the docs and on the net I did not find any way to navigate within<br>
> > that<br>
> > > >> playback. (Its crucial for rehearsals.) The size is too big for<br>
> > loading it<br>
> > > >> into RAM (the mobile devices which are around often have less than 1<br>
> > GB of<br>
> > > >> RAM), Is there a known way to tackle this seemingly simple task???<br>
> > > >> A tedious way, I want to avoid, would be to split the sound file into<br>
> > > >> pieces, which would at least let me jump in at specified places, but<br>
> > that<br>
> > > >> would eat up the space on the device, as each piece would have to play<br>
> > > >> until the end...<br>
> > > >> Of course I would also love to find a way to play back an mp3 and<br>
> > freely<br>
> > > >> navigate within that as well...<br>
> > > >> Any hints how to proceed are appriciated...<br>
> > > >><br>
> > > >> Stefan Tiedje<br>
> > > >><br>
> > > >> --<br>
> > > >> Les Ondes Memorielles--------x--<br>
> > > >> -_____-----------|-----------|--<br>
> > > >> -(_|_ ----|\-----|-----()-------<br>
> > > >> - _|_)----|-----()--------------<br>
> > > >> ---------()----------TJ Shredder<br>
> > > >> <a href="http://tjshredder.wordpress.com/" target="_blank">http://tjshredder.wordpress.com/</a><br>
> > > >><br>
> > > >> _______________________________________________<br>
> > > >> <a href="mailto:Pd-list@lists.iem.at">Pd-list@lists.iem.at</a> mailing list<br>
> > > >> UNSUBSCRIBE and account-management -> <a href="http://lists.puredata.info/" target="_blank">http://lists.puredata.info/</a><br>
> > > >> listinfo/pd-list<br>
> > > >><br>
> > > ><br>
> > > ><br>
> > > > _______________________________________________<br>
> > > > <a href="mailto:Pd-list@lists.iem.at">Pd-list@lists.iem.at</a> mailing list<br>
> > > > UNSUBSCRIBE and account-management -><br>
> > > > <a href="http://lists.puredata.info/listinfo/pd-list" target="_blank">http://lists.puredata.info/listinfo/pd-list</a><br>
> > > ><br>
> > > ><br>
> > ><br>
> > ><br>
> > > --<br>
> > > --<br>
> > > May you, and all beings<br>
> > > be happy and free from suffering :)<br>
> > > -- ancient Buddhist Prayer (Metta)<br>
> > ><br>
> > > Don't forget to sign the<br>
> > ><br>
> > > *Pledge to Resist*<br>
> > ><br>
> > > *the Constitution Pipeline:*<br>
> > ><br>
> > >    - *The Pledge: TinyURL.com/Pledge2ResistCP<br>
> > >    <<a href="http://TinyURL.com/Pledge2ResistCP" target="_blank">http://TinyURL.com/Pledge2ResistCP</a>>*<br>
> > >    - *More info: TinyURL.com/Pledge2ResistCP1<br>
> > >    <<a href="http://TinyURL.com/Pledge2ResistCP1" target="_blank">http://TinyURL.com/Pledge2ResistCP1</a>>*<br>
> ><br>
> > > _______________________________________________<br>
> > > <a href="mailto:Pd-list@lists.iem.at">Pd-list@lists.iem.at</a> mailing list<br>
> > > UNSUBSCRIBE and account-management -><br>
> > <a href="http://lists.puredata.info/listinfo/pd-list" target="_blank">http://lists.puredata.info/listinfo/pd-list</a><br>
> ><br>
> ><br>
><br>
><br>
> --<br>
> --<br>
> May you, and all beings<br>
> be happy and free from suffering :)<br>
> -- ancient Buddhist Prayer (Metta)<br>
><br>
> Don't forget to sign the<br>
><br>
> *Pledge to Resist*<br>
><br>
> *the Constitution Pipeline:*<br>
><br>
>    - *The Pledge: TinyURL.com/Pledge2ResistCP<br>
>    <<a href="http://TinyURL.com/Pledge2ResistCP" target="_blank">http://TinyURL.com/Pledge2ResistCP</a>>*<br>
>    - *More info: TinyURL.com/Pledge2ResistCP1<br>
>    <<a href="http://TinyURL.com/Pledge2ResistCP1" target="_blank">http://TinyURL.com/Pledge2ResistCP1</a>>*<br>
</div></div></blockquote></div><br><br clear="all"><br>-- <br><div class="gmail_signature"><div dir="ltr">--<br>
May you, and all beings<br>
be happy and free from suffering :)<br>
-- ancient Buddhist Prayer (Metta)<br><div><br>Don't forget to sign the <br><font size="4"><b>Pledge to Resist<br></b></font></div><div><font size="4"><b>the Constitution Pipeline:<br></b></font><ul><li><b>The Pledge: <a href="http://TinyURL.com/Pledge2ResistCP" target="_blank">TinyURL.com/Pledge2ResistCP</a></b></li><li><b>More info: <a href="http://TinyURL.com/Pledge2ResistCP1" target="_blank">TinyURL.com/Pledge2ResistCP1</a></b></li></ul></div></div></div>
</div>