I figured out how to do this. Generally the problem is this: the signals to run four independent tracks in my patch are all devised from one phasor~ object that scans a single bar of material. Clicks then appear in the material when jumping from one bar to the next, because the control events are quantized to the 64 samples of a block. So we get lines like the picture enclosed that read the material using tabread~.
In order to get rid of the clicks, I have an alternative method for reading the material _without_ adding any new DSP objects (this has to run on an iPhone 4). It involves the phasor~-esque object ramping from 0 to 8 over 8 bars or not, depending on whether it is jumping around or smoothly reading the 2, 4 or 8-bar loop. I already have this working - it has to detect when the ramp is crossed and generate a clock signal from it for the intra-bar rhythms. I took phasorshot~ as my prototype, but that had the same problem as before, namely that non-signal pulses are quantized to 64 sample blocks. I tried using clocks but they went out of sync while the tempo was being changed of course. So, I built an object where all the clocks are derived from the phasor ramp, but sent out as control rather than DSP signals. It uses more CPU than phasor~ does (~70% more) but no matter how much you speed-up or slow down the phasor~ on-the-fly, the clocks never go out-of-sync. It's called phasorbars~. I'll be uploading a version of the external soon to svn, and anyone who's downloaded Ninja Jamm for their i-device will get an update soon also. Cheers, Ed > > >why not just make a half speed phasor~, retrigger the phase to zero with a >normal metro, and then multiply the output by 2? > > > > > > > >On Thu, May 9, 2013 at 10:09 AM, Ivica Ico Bukvic <i...@vt.edu> wrote: > >Assuming you want a pulse in non-signal domain, you could use disis_phasor~ >(see http://l2ork.music.vt.edu/main/?page_id=56 for download links) which >outputs a bang every time ramp is crossed. This is only accurate to the >nearest sigvs size (by default 64 bytes) as there is no guarantee that you >will get a msg interrupt exactly at the time ramp has crossed. >> >>HTH >> >>From:pd-list-boun...@iem.at [mailto:pd-list-boun...@iem.at] On Behalf Of Ed >>Kelly >>Sent: Wednesday, May 08, 2013 5:00 PM >>To: PD List; pddev >>Subject: [PD] Rewriting a unified phasor / metro object for reading tables >> >>Hi Lists(s), >> >>I'm rewriting phasor~ and unifying it with metro so that a pulse is generated >>from the boundaries of each ramp - so that bars of music can be read using >>tabread~ objects with a sample-accurate metro. >> >>I'm sure someone will say this can already be done, but it has to be dropped >>into the Ninja Jamm patch, so there isn't really time to rewrite the rest of >>the patch. >> >>I don't fully understand the way phasor~ wraps, but I have the object firing >>out bar numbers correctly. I'm putting clocks in for 16ths and 24ths of the >>beat, initiated on each wrap. I need to minimise CPU, so what I want to know >>is this: >> >>Does phasor~ always start from 0 and go to 1, i.e. is there always a signal >>value of 0 at the start of the ramp and a signal value of 1 at the end? As I >>write this, my common sense tells me it should be "yes" but I want to make >>sure. I suppose I should just try it really... >> >>Cheers, >>Ed >> >>Ninja Jamm - a revolutionary new musix remix app from Ninja Tune and Seeper, >>for iPhone and iPad >>http://www.ninjajamm.com/ >>Gemnotes-0.2: Live music notation for Pure Data, now with dynamics! >>http://sharktracks.co.uk/ >>_______________________________________________ >>pd-l...@iem.at mailing list >>UNSUBSCRIBE and account-management -> >>http://lists.puredata.info/listinfo/pd-list >> >> > > > _______________________________________________ Pd-dev mailing list Pd-dev@iem.at http://lists.puredata.info/listinfo/pd-dev