Re: [PD] pix_freenect update
awesome!! On Mon, Jan 9, 2012 at 8:18 AM, Matthias Kronlachner wrote: > hello again! > > if you want to use skeleton data and hand tracking (similar to OSCeleton) > combined with rgb and depth streams from Kinect Sensor you can do this with > the new pix_openni external. get it here: > > https://github.com/kronihias/pix_openni > > binaries for osx in build folder. > you will need to install OpenNI, NITE and SensorKinect -> see README > > initialization of openni and nodes needs some time and pd freezes - keep > that in mind! > i hope it's stable, i haven't tested it excessively now. > > currently it supports just 1 kinect sensor. i don't have access to two > cameras in the near future so help would be appreciated. > > > matthias > > > Am 05.01.12 09:17, schrieb Matthias Kronlachner: > > hi everybody! > > i did a update to my pix_freenect external for kinect and moved it into a > git repo. > get it here: http://github.com/kronihias/pix_freenect > > ready to use binaries for osx (including libusb&libfreenect) are in the > build folder. > > major improvements: > * open specific Kinect sensor by serial number, not only by id (that may > change every time pd is restarted) – useful for multiple Kinect > installations > * output registered depthmap -> rgb and depth images are aligned (less > offset between those two pictures - depending on distance) > * output depthmap directly as millimeter values (16 bit in red & green > channels) > * resolution of rgb image can be set to 1280×1024 > > i also added a folder with examples - currently just one but i hope there > will come more soon > > have fun. > > matthias > > > ___ > Pd-list@iem.at mailing list > UNSUBSCRIBE and account-management -> > http://lists.puredata.info/listinfo/pd-list > > > > ___ > Pd-list@iem.at mailing list > UNSUBSCRIBE and account-management -> > http://lists.puredata.info/listinfo/pd-list > -- Budi Prakosa house of natural fiber (HONF) yogyakarta new media art laboratory wora wari A80/6 baciro yogyakarta indonesia http://www.natural-fiber.com ___ Pd-list@iem.at mailing list UNSUBSCRIBE and account-management -> http://lists.puredata.info/listinfo/pd-list
Re: [PD] pix_freenect update
hello again! if you want to use skeleton data and hand tracking (similar to OSCeleton) combined with rgb and depth streams from Kinect Sensor you can do this with the new pix_openni external. get it here: https://github.com/kronihias/pix_openni binaries for osx in build folder. you will need to install OpenNI, NITE and SensorKinect -> see README initialization of openni and nodes needs some time and pd freezes - keep that in mind! i hope it's stable, i haven't tested it excessively now. currently it supports just 1 kinect sensor. i don't have access to two cameras in the near future so help would be appreciated. matthias Am 05.01.12 09:17, schrieb Matthias Kronlachner: hi everybody! i did a update to my pix_freenect external for kinect and moved it into a git repo. get it here: http://github.com/kronihias/pix_freenect ready to use binaries for osx (including libusb&libfreenect) are in the build folder. major improvements: *open specific Kinect sensor by serial number, not only by id (that may change every time pd is restarted) -- useful for multiple Kinect installations * output registered depthmap -> rgb and depth images are aligned (less offset between those two pictures - depending on distance) * output depthmap directly as millimeter values (16 bit in red & green channels) *resolution of rgb image can be set to 1280×1024 i also added a folder with examples - currently just one but i hope there will come more soon have fun. matthias ___ Pd-list@iem.at mailing list UNSUBSCRIBE and account-management -> http://lists.puredata.info/listinfo/pd-list ___ Pd-list@iem.at mailing list UNSUBSCRIBE and account-management -> http://lists.puredata.info/listinfo/pd-list
Re: [PD] ring buffer with an array
Well, this is for the phase vocoder patch, which is based on miller's I07 example. There's a counter that reads over the table, and I expanded the thing allowing it to loop and other convenient sampling controls. I never needed a perfect loop, cause I never loaded real perfectly looped files in it, so I just check when the counter grows bigger than the table size and restart it. As for recording on the tables, I do fade-in and fade-out, because it would click anyway. Now, for the ring buffer, it needs to be in perfect sync, so I can have tables that are multiples of the block size and use [bang~], it's not that much of a big restrain at all. You won't be able to specify an exact table size, but the resolution is 64 samples, and that is like 1.45 miliseconds (about nothing). So I got over it, did it, and it works!!! I can adapt the thing for loaded samples, and have it the table size rounded up to multiples of the block + 1. This is not a perfect loop, but they weren't perfect before anyhow... But why stop there? How to make it loop perfectly? This is the issue now. *Checking Miller's Phase Vocoder example. If you load a sample, how to make it loop perfectly?* I know one could use phasor~ and other stuff to read the table. But for the Phase Vocoder patch, we need that structure with the counter and everything. Well, I'll keep thinking. Thanks 2012/1/8 Charles Henry > On 1/8/12, Alexandre Torres Porres wrote: > > Hi folks, I'm trying to implement a ring buffer with a table for a > sampler > > patch based on an array. > > > > But I'm having the hardest time cause it always "clicks" when I start > > writing back on the beginning of the array. > > > > I made this simple test attached below using metro. But I'm figuring the > > flaw is because is not trivial at all to keep control data in sync with > > audio blocks > > > > any hints or ideas? > > I think you might be better able to keep the data in sync with a > vline~/metro/tabread4~ construction, because it preserves the timing > information in the messages. Instead of vline~/metro, you could also > use phasor~ which makes the looping implicit. > > To work around clicks, crossfading is what I hear about the most on > list. I'm not sure how it's implemented. > > When I think about coding in C, I always want to have N contiguous > samples to avoid having to check against the end of the array. To do > that, you make the buffer 2*N-1 in length. Then, on each write, you > write to two locations (0,N), (1,N+1), (2,N+2)... That ensures there > is always N samples in a row to read from, and you just move the read > pointer by 1 each time you get a vector of N samples long. (my > personal method...nothing more). > ___ Pd-list@iem.at mailing list UNSUBSCRIBE and account-management -> http://lists.puredata.info/listinfo/pd-list
Re: [PD] [tabwrite4~], is it possible at all?
On 1/8/12, Miller Puckette wrote: > Hi all -- > > Peter Brinkmann and Michael Goggins did some related work recently: > > http://nettoyeur.noisepages.com/2010/10/doppler-effects-without-equations/ > > but back in the dark ages Barry Vercoe made a Music 11 ugen called 'pipadv' > that added a signal into a delay line assuming the write location was > continuous and could be stably differentiated (so that for each point of the > delay line you could associate a fractional pposition in the incoming > signal. > He then interpolated to get fractional-indexed values of the incoming signal > to correspond with successive sample locations in the delay line, turning > the problem around backward.) > > I've thought about this for a few hours but so far my only conclusion is > that > it's very interesting :) > > Miller The problems that I see are with orthogonality and reconstruction. A sample really just represents a sync that's centered on a point in time (in the easy case). Integer numbers of samples are orthogonal... but the fractionally-centered sample is not orthogonal to samples at all the integer indexes. Then, the reconstruction problem follows from it. When you want to read a value from a table, does it exactly retrieve the value that was recorded there? It seems like the interpolator needs to be modified continuously with the spacing of adjacent samples. All I know right now is, I can't spend my whole vacation on a math problem, even if it's good :) Chuck ___ Pd-list@iem.at mailing list UNSUBSCRIBE and account-management -> http://lists.puredata.info/listinfo/pd-list
Re: [PD] ring buffer with an array
On 1/8/12, Alexandre Torres Porres wrote: > Hi folks, I'm trying to implement a ring buffer with a table for a sampler > patch based on an array. > > But I'm having the hardest time cause it always "clicks" when I start > writing back on the beginning of the array. > > I made this simple test attached below using metro. But I'm figuring the > flaw is because is not trivial at all to keep control data in sync with > audio blocks > > any hints or ideas? I think you might be better able to keep the data in sync with a vline~/metro/tabread4~ construction, because it preserves the timing information in the messages. Instead of vline~/metro, you could also use phasor~ which makes the looping implicit. To work around clicks, crossfading is what I hear about the most on list. I'm not sure how it's implemented. When I think about coding in C, I always want to have N contiguous samples to avoid having to check against the end of the array. To do that, you make the buffer 2*N-1 in length. Then, on each write, you write to two locations (0,N), (1,N+1), (2,N+2)... That ensures there is always N samples in a row to read from, and you just move the read pointer by 1 each time you get a vector of N samples long. (my personal method...nothing more). ___ Pd-list@iem.at mailing list UNSUBSCRIBE and account-management -> http://lists.puredata.info/listinfo/pd-list
Re: [PD] [tabwrite4~], is it possible at all?
Hi all -- Peter Brinkmann and Michael Goggins did some related work recently: http://nettoyeur.noisepages.com/2010/10/doppler-effects-without-equations/ but back in the dark ages Barry Vercoe made a Music 11 ugen called 'pipadv' that added a signal into a delay line assuming the write location was continuous and could be stably differentiated (so that for each point of the delay line you could associate a fractional pposition in the incoming signal. He then interpolated to get fractional-indexed values of the incoming signal to correspond with successive sample locations in the delay line, turning the problem around backward.) I've thought about this for a few hours but so far my only conclusion is that it's very interesting :) Miller On Sat, Jan 07, 2012 at 05:48:04PM +0100, katja wrote: > On Sat, Jan 7, 2012 at 2:23 PM, Mathieu Bouchard wrote: > > > I don't think that [tabread4~] can be reversed so easily. I think that the > > most appropriate antialiased [tabwrite4~] would not be a mirror image of > > what [tabread4~] is. > > Admittedly I did not have a clear idea of how writing at fractional > speed could be conceived. Your detailed answer helped me to > concentrate on the issues.Thanks, Mathieu. > > A [tabwrite4~] is not comparable to [tabread4~] indeed, because > writing is much more obliging than reading. Like you can read and skip > chapters in a book, but you can't publish a book with chapters or > pages missing, or print the pages over each other. > > So the issue of fractional-speed-writing should really be solved as > fractional resampling. I've been experimenting with chirp z-transform > some years ago, and was surprised by the perfect interpolation which > it can do. A block of audio can be blown up alias-free to any length, > like with zero-padding but without the power-of-two ratio restriction. > Downsampling likewise. Maybe I should write it into a Pd class. > Certainly it won't be an easy job though. > > Katja > > > > > It wouldn't necessarily write four values : making it > > write two values would be quite normal ; you'll want to tune its amount of > > «opaqueness» perhaps, and this will be a setting for which you will have no > > ideal default value ; and whatever it'll be, you probably won't like that > > it's not a mirror image of [tabread4~] or even of [tabread~]. > > > > This makes me think of [#remap_image] and [#store]. If I want to warp the > > coordinates of a picture in a nontrivial way, I can't loop over the source > > pixels and write them in the destination image, because this creates lots of > > holes. It doesn't tell what to fill the holes with. What [#remap_image] does > > (using the [#store] external) is to loop over destination pixels and choose > > where their data come from. This means that the warping function has to be > > inversed. > > > > nontrivial examples : > > http://gridflow.ca/gallery/un_sur_z%C3%A8de.jpg > > http://gridflow.ca/gallery/patch_dans_patch_5.png > > http://gridflow.ca/gallery/patch_dans_patch_9.png > > > > help : > > http://gridflow.ca/help/%23remap_image-help.html > > > > But when the source data is a continuous flow, you can't index it as if it > > were a picture of pixels, because the flow of sound is unlimited and > > realtime. > > > > IMHO, it's a hard problem. It looks like the kind of thing for which many > > situation-specific solutions are designed because there is no general way to > > make something that generally makes sense. > > > > > >> While writing 4 values, recently written values must be taken into > >> account, not bluntly overwritten. So two existing values, x[n-2] and > >> x[n-1], > >> should be somehow integrated with new values, if the writing direction is > >> positive. > > > > > > Just think about constant speeds for now : if the index is a phasor moving > > at the same speed as [tabsend~] would, then it better act very similar to > > [tabsend~]. This is the first thing you ought to verify for any possible > > solution. Then you should look at what happens when using any other > > different constant speeds. Then if you are satisfied with what happens with > > all constant speeds, chances are that you will be satisfied with variable > > speeds. > > > > __ > > | Mathieu BOUCHARD - téléphone : +1.514.383.3801 - Montréal, QC > > ___ > Pd-list@iem.at mailing list > UNSUBSCRIBE and account-management -> > http://lists.puredata.info/listinfo/pd-list ___ Pd-list@iem.at mailing list UNSUBSCRIBE and account-management -> http://lists.puredata.info/listinfo/pd-list
Re: [PD] ring buffer with an array
I know, I thought of that, but then, I need to make the table always as big as a multiple of an audio block, right? I was hoping to have a way without this restrain. But maybe it isn't that much of a big deal. 2012/1/8 tim vets > > > 2012/1/8 Alexandre Torres Porres > >> >> Hi folks, I'm trying to implement a ring buffer with a table for a >> sampler patch based on an array. >> >> But I'm having the hardest time cause it always "clicks" when I start >> writing back on the beginning of the array. >> >> I made this simple test attached below using metro. But I'm figuring the >> flaw is because is not trivial at all to keep control data in sync with >> audio blocks >> >> any hints or ideas? >> >> > [bang~] ? > > >> thanks >> >> >> >> >> #N canvas 727 343 619 425 10; >> #N canvas 0 0 450 300 (subpatch) 0; >> #X array sample 88200 float 2; >> #X coords 0 1 88199 -1 200 140 1; >> #X restore 261 172 graph; >> #X obj 82 188 tabwrite~ sample; >> #X obj 109 270 tabplay~ sample; >> #X obj 104 307 dac~; >> #X obj 99 240 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1 >> -1; >> #X obj 168 131 metro 2000; >> #X obj 53 124 adc~ 1; >> #X obj 189 172 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 >> -1 -1; >> #X obj 101 119 sel 0; >> #X msg 101 143 stop; >> #X obj 137 232 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 >> -1 -1; >> #X obj 168 57 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0 >> 1; >> #X obj 168 78 t f f; >> #X connect 2 0 3 0; >> #X connect 2 0 3 1; >> #X connect 2 1 4 0; >> #X connect 4 0 2 0; >> #X connect 5 0 1 0; >> #X connect 5 0 7 0; >> #X connect 6 0 1 0; >> #X connect 8 0 9 0; >> #X connect 9 0 1 0; >> #X connect 10 0 2 0; >> #X connect 11 0 12 0; >> #X connect 12 0 5 0; >> #X connect 12 1 8 0; >> >> ___ >> Pd-list@iem.at mailing list >> UNSUBSCRIBE and account-management -> >> http://lists.puredata.info/listinfo/pd-list >> >> > ___ Pd-list@iem.at mailing list UNSUBSCRIBE and account-management -> http://lists.puredata.info/listinfo/pd-list
Re: [PD] ring buffer with an array
2012/1/8 Alexandre Torres Porres > > Hi folks, I'm trying to implement a ring buffer with a table for a sampler > patch based on an array. > > But I'm having the hardest time cause it always "clicks" when I start > writing back on the beginning of the array. > > I made this simple test attached below using metro. But I'm figuring the > flaw is because is not trivial at all to keep control data in sync with > audio blocks > > any hints or ideas? > > [bang~] ? > thanks > > > > > #N canvas 727 343 619 425 10; > #N canvas 0 0 450 300 (subpatch) 0; > #X array sample 88200 float 2; > #X coords 0 1 88199 -1 200 140 1; > #X restore 261 172 graph; > #X obj 82 188 tabwrite~ sample; > #X obj 109 270 tabplay~ sample; > #X obj 104 307 dac~; > #X obj 99 240 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1 > -1; > #X obj 168 131 metro 2000; > #X obj 53 124 adc~ 1; > #X obj 189 172 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 > -1 -1; > #X obj 101 119 sel 0; > #X msg 101 143 stop; > #X obj 137 232 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 > -1 -1; > #X obj 168 57 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0 > 1; > #X obj 168 78 t f f; > #X connect 2 0 3 0; > #X connect 2 0 3 1; > #X connect 2 1 4 0; > #X connect 4 0 2 0; > #X connect 5 0 1 0; > #X connect 5 0 7 0; > #X connect 6 0 1 0; > #X connect 8 0 9 0; > #X connect 9 0 1 0; > #X connect 10 0 2 0; > #X connect 11 0 12 0; > #X connect 12 0 5 0; > #X connect 12 1 8 0; > > ___ > Pd-list@iem.at mailing list > UNSUBSCRIBE and account-management -> > http://lists.puredata.info/listinfo/pd-list > > ___ Pd-list@iem.at mailing list UNSUBSCRIBE and account-management -> http://lists.puredata.info/listinfo/pd-list
[PD] ring buffer with an array
Hi folks, I'm trying to implement a ring buffer with a table for a sampler patch based on an array. But I'm having the hardest time cause it always "clicks" when I start writing back on the beginning of the array. I made this simple test attached below using metro. But I'm figuring the flaw is because is not trivial at all to keep control data in sync with audio blocks any hints or ideas? thanks #N canvas 727 343 619 425 10; #N canvas 0 0 450 300 (subpatch) 0; #X array sample 88200 float 2; #X coords 0 1 88199 -1 200 140 1; #X restore 261 172 graph; #X obj 82 188 tabwrite~ sample; #X obj 109 270 tabplay~ sample; #X obj 104 307 dac~; #X obj 99 240 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1 -1; #X obj 168 131 metro 2000; #X obj 53 124 adc~ 1; #X obj 189 172 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1 -1; #X obj 101 119 sel 0; #X msg 101 143 stop; #X obj 137 232 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1 -1; #X obj 168 57 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0 1; #X obj 168 78 t f f; #X connect 2 0 3 0; #X connect 2 0 3 1; #X connect 2 1 4 0; #X connect 4 0 2 0; #X connect 5 0 1 0; #X connect 5 0 7 0; #X connect 6 0 1 0; #X connect 8 0 9 0; #X connect 9 0 1 0; #X connect 10 0 2 0; #X connect 11 0 12 0; #X connect 12 0 5 0; #X connect 12 1 8 0; ___ Pd-list@iem.at mailing list UNSUBSCRIBE and account-management -> http://lists.puredata.info/listinfo/pd-list
[PD] Crashing patch (after considerable stability), Consistent error
So, I've got an older computer that I've been running a PD/GEM patch on for a number of years, and it's been consistently performing until recently when it began crashing once or twice a day. I seem to be getting the same sort of report from console and was wondering if anyone could shed some light on this while I try and sort this out. I keep getting this in every log for the most part, I can post more... nothing has been changed or updated recently, it's been kind of just a computer I have to test and run things on, so I'm confused to as where this new issue could be coming from Thread 13 Crashed: 0 ...pple.AppleIntermediateCodec 0x06c15cb8 get_band + 312 1 ...pple.AppleIntermediateCodec 0x06c0b6cc decoder_entry(void*) + 428 2 libSystem.B.dylib 0x9002b200 _pthread_body + 96 Thread 14 Crashed: 0 ...pple.AppleIntermediateCodec 0x06c15cb8 get_band + 312 1 ...pple.AppleIntermediateCodec 0x06c0b6cc decoder_entry(void*) + 428 2 libSystem.B.dylib 0x9002b200 _pthread_body + 96 Thread 14 crashed with PPC Thread State 64: srr0: 0x06c15cb8 srr1: 0x1200f030 vrsave: 0x8000 cr: 0x4448 xer: 0x2000 lr: 0x000a ctr: 0x00b4 r0: 0x r1: 0xf068cd40 r2: 0x0001000c r3: 0x08a1a000 r4: 0x0020 r5: 0xaec0 r6: 0x0757b398 r7: 0x414f r8: 0x0001 r9: 0x000f r10: 0xbec1 r11: 0x414f r12: 0x000caec0 r13: 0x r14: 0x r15: 0x r16: 0x r17: 0x r18: 0x505b r19: 0xaec0 r20: 0x000c r21: 0xf068cd80 r22: 0x0240 r23: 0x r24: 0x000f r25: 0x000c r26: 0x0010 r27: 0x0757b380 r28: 0x r29: 0x00c0 r30: 0x0020 r31: 0x06c15ba0 thanks in advance, N ___ Pd-list@iem.at mailing list UNSUBSCRIBE and account-management -> http://lists.puredata.info/listinfo/pd-list
Re: [PD] Running Pd on a tiny (and cheap) computer
On Sun, Jan 8, 2012 at 2:24 AM, Pierre Massat wrote: > There's also the Dream Plug > (http://www.plugcomputer.org/development-kits/dreamplug.html), which has a > faster (though totally unknown to me) CPU. According to the processor documentation it is ARMv5TE-compliant, and there's also a Dream Plug with ARMv5 mentioned on: http://wiki.debian.org/FreedomBox/TargetedHardware It is not the newest generation of ARM, so it would not be comparable to a recent tablet. This page discusses performance comparisons of ARM versus x86: http://vanshardware.com/2010/08/mirror-the-coming-war-arm-versus-x86/ ARM seems to perform slow with floating point, and Pd is all floating point. An Atom based computer might be better for Pd. I have no experience with ARM, but of Atom-based netbooks I know (also from experience) that Pd performs reasonably well under Debian. Roughly three times slower than a laptop, I would say. Katja ___ Pd-list@iem.at mailing list UNSUBSCRIBE and account-management -> http://lists.puredata.info/listinfo/pd-list
[PD] Copenhagen PD user group
Hi List - New poster on this list, old Max/PD user here. Some friends have asked for advice/instruction on PD, and I hope we can create a patching circle here in Copenhagen. Please mail me directly, and/or edit the page on puredata.info: http://puredata.info/community/organization/pd-cph/PdCph alle the best Knud ___ Pd-list@iem.at mailing list UNSUBSCRIBE and account-management -> http://lists.puredata.info/listinfo/pd-list