[PD] How to navigate a long sound file in vanilla PD

William Huston williamahuston at gmail.com
Sat Apr 4 09:24:28 CEST 2015


I am new here, so please forgive my ignorance.
I do not know the whole history
or the PD culture or even how it is currently developed.

So this might be way off base...

IMO, externs are always going to be a problem moving forward.

If they don't have a maintainer... well,
at some point one must decide
to either leave it behind, and allow PD to grow,
or keep PD with odd, broken-ish behavior(*) forever
just for compatibility sake.
(* e.g., like comparison operators which bang whether true or false)

If the extern is popular, then hopefully someone would pick it up.

People on the Facebook group were talking about
crowdfunding a "Let's modernize PD" project,
which was a very active thread, got lots of people excited,
and brain-storming about all kinds of things,
inc. GUI redesign.

(My eyes are aging and I would SO love a mouse-wheel zoom, like GIMP.
Other items are on my wish list too :)

And the question becomes, is this a fork,
or is Miller involved and this becomes the main branch?
Obviously one of those options is far better than the other :)

One idea: After a major change, which could break old patches,
(which I would imagine would happen some day)
is to have a --compatibility switch at compile time
which would bring back the old behavior.

An even better approach (if it could be done)
is make the switch at *run time*
I know that might be hard/impossible,
but its not without precedent.

I'm thinking about the *#! invocation* at the top
of Unix shell scripts to specify the interpreter.

They made this change in such a way that
old versions of the shell would just ignore the line,
because it looked like a comment.

Same thing with Perl 5.16. Changed this syntax,
but with some cleverness, did not break old scripts.

So we can imagine a mechanism where I can create
a patch where I can somehow say,
"I want double floats", or "comparisons bang when true only"
or maybe just "give me all of the new stuff".
And if you don't say this, then we get the old behavior.

Thanks & Sorry if this is left-field...

BH

On Sat, Apr 4, 2015 at 12:58 AM, Miller Puckette <msp at ucsd.edu> wrote:

> It's on my list, but it will have other problems (extern incompatibility
> and
> patches sounding different depending on how many bits you're using) so
> might
> not be worth it just for this.
>
> Another idea might be simply to make an abstraction to do varispeed playing
> from large tables, using the ideas in that example.
>
> cheers
> Miller
>
> On Fri, Apr 03, 2015 at 12:47:55PM -0400, William Huston wrote:
> > Hi Miller---
> >
> > Any chance of getting Vanilla to work with double floats any time soon,
> so
> > the "naive" solution using [phasor~] just works with big files as one
> might
> > expect?
> >
> > Thanks
> >
> >
> > On Tue, Mar 31, 2015 at 11:17 AM, Miller Puckette <msp at ucsd.edu> wrote:
> >
> > > Hi all -
> > >
> > > There's an example in B16.long-varispeed.pd that shows how you can use
> > > offsets
> > > into long arrays - this allows you to use the signal input within a
> smaller
> > > range (ideally < 1 second) to get accurate addressing.
> > >
> > > cheers
> > > Miller
> > >
> > > On Tue, Mar 31, 2015 at 11:07:52AM -0400, William Huston wrote:
> > > > I have a related question.
> > > >
> > > > I am intermediate PD programmer, about 9 months into patching.
> > > > I really love PD, despite some quirks.
> > > >
> > > > The single most annoying issue I have found so far is the inability
> for
> > > PD
> > > > to accurately index into large arrays.
> > > >
> > > > The way this manifests is very curious! I first noticed high
> frequency
> > > > noise at maybe 6 min. into an array, which gets worse as you move
> into
> > > the
> > > > file. At 20 min, it's really horrible.
> > > >
> > > > I would say the root cause is
> > > >
> > > > a) lack of a long integer datatype. Friends, sometimes you really
> want
> > > > ints, like accurately indexing into an array, and
> > > >
> > > >
> > > > b) lack of precision in (short) floats.
> > > >
> > > > People on the FB group promptly told me this is a well-known issue,
> and
> > > > directed me to PD-double. This sounds like a wonderful project,
> however
> > > it
> > > > seems it is only beta, and breaks several of the modules in extended.
> > > >
> > > > So I am wondering 2 things:
> > > >
> > > > 1) What solutions have people come up with for accurately reading big
> > > > arrays at audio rate, using either pd-extended or vanilla?
> > > >
> > > > (I have considered breaking the big file up into smaller arrays, but
> this
> > > > is cumbersome).
> > > >
> > > > 2) What is the long-term goal at solving this problem?
> > > >
> > > > Thanks :)
> > > >
> > > >
> > > >
> > > >
> > > >
> > > >
> > > >
> > > >
> > > > On Tue, Mar 31, 2015 at 5:51 AM, peiman khosravi <
> > > peimankhosravi at gmail.com>
> > > > wrote:
> > > >
> > > > > Sorry, forgot to reply to all.
> > > > >
> > > > > Hello,
> > > > >
> > > > > I had this problem in maxMSP recently and found a working solution.
> > > Note
> > > > > that I was only on a laptop so I don't know how relevant this is to
> > > your
> > > > > question. Below is the solution I found on the Max forum (I don't
> have
> > > the
> > > > > link right now but it should come up on google).
> > > > >
> > > > > 1- Read the file [silently] from disk (using sfplay~ or
> equivalent),
> > > at 50
> > > > > times the original speed and record the output into a buffer that
> is 50
> > > > > times smaller than the original file.
> > > > >
> > > > > 2- You can navigate through this smaller buffer and multiply the
> > > output by
> > > > > 50 to get the correct time pointer into the original file. I then
> read
> > > the
> > > > > original file from the disk, instead of loading it into a buffer.
> > > > >
> > > > > 3- Since I'm making my patch for concert playback, I have put in
> place
> > > a
> > > > > checking mechanism that looks for an existing 'waveform' file. (The
> > > patch
> > > > > automatically names these originalFileName.wave.aif.) If it
> exists, the
> > > > > waveform file is read into the buffer, otherwise, the loaded
> soundfile
> > > is
> > > > > 'analysed'.
> > > > >
> > > > > I can send you my patch if you are interested. I don't see any
> reason
> > > why
> > > > > this can't be implemented in PD. Although the graphical scrolling
> > > might be
> > > > > slower in PD. I'd be interested to know if this works in PD.
> > > > >
> > > > > Best,
> > > > > Peiman
> > > > >
> > > > >
> > > > >
> > > > >
> > > > > *www.peimankhosravi.co.uk <http://www.peimankhosravi.co.uk> || RSS
> > > Feed
> > > > > <http://peimankhosravi.co.uk/miscposts.rss> || Concert News
> > > > > <http://spectralkimia.wordpress.com/>*
> > > > >
> > > > > On 31 March 2015 at 10:18, Stefan Tiedje <
> stefantiedje at googlemail.com>
> > > > > wrote:
> > > > >
> > > > >> Hello list,
> > > > >> might well be the first post here, though I am well experienced in
> > > > >> Max/MSP...
> > > > >> As there is no way to get Max patches run on mobile devices, I
> want
> > > to do
> > > > >> it in PD using the MobMuPlat apps for Android/iOS.
> > > > >> The task would be to simply to play a stereo sound file, but of
> about
> > > one
> > > > >> hour lebgth. As MobMuPlat only supports vanilla PD I am
> restricted to
> > > that
> > > > >> as far as I know.
> > > > >> In the docs and on the net I did not find any way to navigate
> within
> > > that
> > > > >> playback. (Its crucial for rehearsals.) The size is too big for
> > > loading it
> > > > >> into RAM (the mobile devices which are around often have less
> than 1
> > > GB of
> > > > >> RAM), Is there a known way to tackle this seemingly simple task???
> > > > >> A tedious way, I want to avoid, would be to split the sound file
> into
> > > > >> pieces, which would at least let me jump in at specified places,
> but
> > > that
> > > > >> would eat up the space on the device, as each piece would have to
> play
> > > > >> until the end...
> > > > >> Of course I would also love to find a way to play back an mp3 and
> > > freely
> > > > >> navigate within that as well...
> > > > >> Any hints how to proceed are appriciated...
> > > > >>
> > > > >> Stefan Tiedje
> > > > >>
> > > > >> --
> > > > >> Les Ondes Memorielles--------x--
> > > > >> -_____-----------|-----------|--
> > > > >> -(_|_ ----|\-----|-----()-------
> > > > >> - _|_)----|-----()--------------
> > > > >> ---------()----------TJ Shredder
> > > > >> http://tjshredder.wordpress.com/
> > > > >>
> > > > >> _______________________________________________
> > > > >> Pd-list at lists.iem.at mailing list
> > > > >> UNSUBSCRIBE and account-management -> http://lists.puredata.info/
> > > > >> listinfo/pd-list
> > > > >>
> > > > >
> > > > >
> > > > > _______________________________________________
> > > > > Pd-list at lists.iem.at mailing list
> > > > > UNSUBSCRIBE and account-management ->
> > > > > http://lists.puredata.info/listinfo/pd-list
> > > > >
> > > > >
> > > >
> > > >
> > > > --
> > > > --
> > > > May you, and all beings
> > > > be happy and free from suffering :)
> > > > -- ancient Buddhist Prayer (Metta)
> > > >
> > > > Don't forget to sign the
> > > >
> > > > *Pledge to Resist*
> > > >
> > > > *the Constitution Pipeline:*
> > > >
> > > >    - *The Pledge: TinyURL.com/Pledge2ResistCP
> > > >    <http://TinyURL.com/Pledge2ResistCP>*
> > > >    - *More info: TinyURL.com/Pledge2ResistCP1
> > > >    <http://TinyURL.com/Pledge2ResistCP1>*
> > >
> > > > _______________________________________________
> > > > Pd-list at lists.iem.at mailing list
> > > > UNSUBSCRIBE and account-management ->
> > > http://lists.puredata.info/listinfo/pd-list
> > >
> > >
> >
> >
> > --
> > --
> > May you, and all beings
> > be happy and free from suffering :)
> > -- ancient Buddhist Prayer (Metta)
> >
> > Don't forget to sign the
> >
> > *Pledge to Resist*
> >
> > *the Constitution Pipeline:*
> >
> >    - *The Pledge: TinyURL.com/Pledge2ResistCP
> >    <http://TinyURL.com/Pledge2ResistCP>*
> >    - *More info: TinyURL.com/Pledge2ResistCP1
> >    <http://TinyURL.com/Pledge2ResistCP1>*
>



-- 
--
May you, and all beings
be happy and free from suffering :)
-- ancient Buddhist Prayer (Metta)

Don't forget to sign the

*Pledge to Resist*

*the Constitution Pipeline:*

   - *The Pledge: TinyURL.com/Pledge2ResistCP
   <http://TinyURL.com/Pledge2ResistCP>*
   - *More info: TinyURL.com/Pledge2ResistCP1
   <http://TinyURL.com/Pledge2ResistCP1>*
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.puredata.info/pipermail/pd-list/attachments/20150404/2dba07c9/attachment-0001.html>


More information about the Pd-list mailing list