Re: [PD] How to navigate a long sound file in vanilla PD
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 m...@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 m...@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 peimankhosr...@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
Re: [PD] How to navigate a long sound file in vanilla PD
In the meantime, the onset inlet could be a signal, and the phasor could just be set up like this since onset is just a sum: [phasor~] | \ |\ [*~ size/2] | \ | [*~ size/2] | | [tabread4~] | 64-bit output I made a version of nusmuk's tabread4c that does this -Sebastian ___ Pd-list@lists.iem.at mailing list UNSUBSCRIBE and account-management - http://lists.puredata.info/listinfo/pd-list
Re: [PD] How to navigate a long sound file in vanilla PD
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 m...@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 peimankhosr...@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 stefantie...@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...
Re: [PD] How to navigate a long sound file in vanilla PD
Wow, I just want to say while I appreciate the link to B16.long-varispeed.pd, that's some gnarly code :) I sort-of get the principle, but no idea how this works. This will keep me busy. I image I will have to study the source code to understand the 4-point interpolation of tabread4~. I am looking forward to this study! When I understand this long-table patch, the Phase Vocoder, and Martin Brinkmann's Chaosmonster, then I feel I will move into advanced PD status :) PS: I am very grateful to Miller for PD, and to all of the helpful people in this amazing community! This is most fun with computers I've had in many years! (and I'm an old-timer). BH in Binghamton NY, USA PS/OT: I have been always hacking with audio. Stated doing sound-on-sound reverb and tape loops with by brother's Marantz reel-to-reel deck when I was about 12 y/o. (He would have killed me had he known!) To give you an idea, this was my first computer: *http://tinyurl.com/8mq9nyw http://tinyurl.com/8mq9nyw* 4k of RAM, monochrome, no disk drive, and *no lower case*. I wrote a hack in BASIC to read/write the cassette port and do PWM to sample and playback human speech and make tones. We didn't have 24-bit audio, not 16-bit, or even 8 bit audio. *We had glorious 1-bit audio! On/off.* *This is what I've been through. * *Still we were able to make amazing sounds with it!* *To have PD now is fulfilling a dream I've been having for 35 years! * On Tue, Mar 31, 2015 at 11:17 AM, Miller Puckette m...@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 peimankhosr...@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 stefantie...@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
Re: [PD] How to navigate a long sound file in vanilla PD
(Disclaimer this is geared more towards iOS) I would use the CoreAudio framework to decompress files read from disk in chunks into a defined buffer in your Pd patch. And then create a transport control system for managing playback and updating of your internal buffer. In my opinion this would be a fair bit of work to implement. Maybe there are other ways to do it, but I wouldn't say the task is simple. Cheers, Joe On 31 March 2015 at 10:18, Stefan Tiedje stefantie...@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 Memoriellesx-- -_---|---|-- -(_|_ |\-|-()--- - _|_)|-()-- -()--TJ Shredder http://tjshredder.wordpress.com/ ___ Pd-list@lists.iem.at mailing list UNSUBSCRIBE and account-management - http://lists.puredata.info/ listinfo/pd-list -- Follow me on Twitter @diplojocus ___ Pd-list@lists.iem.at mailing list UNSUBSCRIBE and account-management - http://lists.puredata.info/listinfo/pd-list
Re: [PD] How to navigate a long sound file in vanilla PD
On 31/03/15 11:18, Stefan Tiedje wrote: 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??? readsf~ with the open message you can specify an onset in sampleframes. that should work if clicks/dropouts are no problem. Of course I would also love to find a way to play back an mp3 and freely navigate within that as well... i dont know if the necessary externals for ogg/mp3 are included with mobmuplat. (oggread~ has a 'seek' message) bis denn! martin ___ Pd-list@lists.iem.at mailing list UNSUBSCRIBE and account-management - http://lists.puredata.info/listinfo/pd-list
Re: [PD] How to navigate a long sound file in vanilla PD
Yeah [readsf~] would work! Although it's worth bearing in mind your file size is going to be 500 MB with stereo wav @ 44100Hz On 31 March 2015 at 10:35, Roman Haefeli reduz...@gmail.com wrote: Hi Stefan From readsf~help.pd: Open takes a filename, an onset in sample frames, and, as an override, you may also supply a header size to skip, a number of channels, bytes per channel, and endianness. So the second argument (the one after the filename) specifies the number of audio samples to be skipped at the start when opening the file. Roman On Tue, 2015-03-31 at 11:18 +0200, Stefan Tiedje 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 ___ Pd-list@lists.iem.at mailing list UNSUBSCRIBE and account-management - http://lists.puredata.info/listinfo/pd-list -- Follow me on Twitter @diplojocus ___ Pd-list@lists.iem.at mailing list UNSUBSCRIBE and account-management - http://lists.puredata.info/listinfo/pd-list
[PD] How to navigate a long sound file in vanilla PD
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 Memoriellesx-- -_---|---|-- -(_|_ |\-|-()--- - _|_)|-()-- -()--TJ Shredder http://tjshredder.wordpress.com/ ___ Pd-list@lists.iem.at mailing list UNSUBSCRIBE and account-management - http://lists.puredata.info/listinfo/pd-list
Re: [PD] How to navigate a long sound file in vanilla PD
Thanks Miller. Looks promising :) On Tue, Mar 31, 2015 at 11:17 AM, Miller Puckette m...@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 peimankhosr...@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 stefantie...@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 Memoriellesx-- -_---|---|-- -(_|_ |\-|-()--- - _|_)|-()-- -()--TJ Shredder http://tjshredder.wordpress.com/ ___ Pd-list@lists.iem.at mailing list UNSUBSCRIBE and account-management - http://lists.puredata.info/ listinfo/pd-list ___ Pd-list@lists.iem.at mailing list