Re: [PD] Looping
PORRES wrote: > hi there, I edited a nice sample to play looped in od, but it clicks a lot, i dont know why... anyone ever had this problem and has any ideas on overcoming it? What do you use for looping? [tabplay~ sample_array] or [tabread4~ sample_array]? If using the latter object, do you use [line], [line~] or [vline~] for reading the sample? Please be more specific, maybe you can attach your patch. cu Thomas -- "Prisons are needed only to provide the illusion that courts and police are effective. They're a kind of job insurance." (Leto II. in: Frank Herbert, God Emperor of Dune) http://thomas.dergrossebruder.org/ ___ PD-list@iem.at mailing list UNSUBSCRIBE and account-management -> http://lists.puredata.info/listinfo/pd-list
Re: [PD] Looping
actually i just adapted from B08.sampler.loop doc example (it uses tabread~)... which in fact alerts about discontinuity problems, and I was wondering if there was another way around... cheers Thomas Mayer <[EMAIL PROTECTED]> wrote: PORRES wrote: > hi there, I edited a nice sample to play looped in od, but it clicks a lot, i dont know why... anyone ever had this problem and has any ideas on overcoming it? What do you use for looping? [tabplay~ sample_array] or [tabread4~ sample_array]? If using the latter object, do you use [line], [line~] or [vline~] for reading the sample? Please be more specific, maybe you can attach your patch. cu Thomas -- "Prisons are needed only to provide the illusion that courts and police are effective. They're a kind of job insurance." (Leto II. in: Frank Herbert, God Emperor of Dune) http://thomas.dergrossebruder.org/ - Sucker-punch spam with award-winning protection. Try the free Yahoo! Mail Beta.___ PD-list@iem.at mailing list UNSUBSCRIBE and account-management -> http://lists.puredata.info/listinfo/pd-list
Re: [PD] Looping
PORRES wrote: > actually i just adapted from B08.sampler.loop doc example (it uses > tabread~)... which in fact alerts about discontinuity problems, and I was > wondering if there was another way around... cheers Have a look at B09.sampler.loop.smooth for an easy way to avoid this behaviour. If you want other envelopes, there are other means to build those, e.g. using [envgen]. cu Thomas -- "Prisons are needed only to provide the illusion that courts and police are effective. They're a kind of job insurance." (Leto II. in: Frank Herbert, God Emperor of Dune) http://thomas.dergrossebruder.org/ ___ PD-list@iem.at mailing list UNSUBSCRIBE and account-management -> http://lists.puredata.info/listinfo/pd-list
Re: [PD] Looping
the problem with B09 is that it cuts too much information from the sample... I need it to be constantly loud when looping around! Got it? Thanks a bunch. Cheers Alex Thomas Mayer <[EMAIL PROTECTED]> wrote: PORRES wrote: > actually i just adapted from B08.sampler.loop doc example (it uses > tabread~)... which in fact alerts about discontinuity problems, and I was > wondering if there was another way around... cheers Have a look at B09.sampler.loop.smooth for an easy way to avoid this behaviour. If you want other envelopes, there are other means to build those, e.g. using [envgen]. cu Thomas -- "Prisons are needed only to provide the illusion that courts and police are effective. They're a kind of job insurance." (Leto II. in: Frank Herbert, God Emperor of Dune) http://thomas.dergrossebruder.org/ ___ PD-list@iem.at mailing list UNSUBSCRIBE and account-management -> http://lists.puredata.info/listinfo/pd-list - Don't get soaked. Take a quick peak at the forecast with theYahoo! Search weather shortcut.___ PD-list@iem.at mailing list UNSUBSCRIBE and account-management -> http://lists.puredata.info/listinfo/pd-list
Re: [PD] Looping
PORRES wrote: > the problem with B09 is that it cuts too much information from the sample... > I need it to be constantly loud when looping around! Got it? If you have the zexy externals installed, then you can try using [>~ 0.001] after the [cos~] object in B09. The output will be 1, if greater than 0.001, 0 for smaller values. So, basically, it will cut off small portions of the beginning and end of the samples. cu Thomas -- "Prisons are needed only to provide the illusion that courts and police are effective. They're a kind of job insurance." (Leto II. in: Frank Herbert, God Emperor of Dune) http://thomas.dergrossebruder.org/ ___ PD-list@iem.at mailing list UNSUBSCRIBE and account-management -> http://lists.puredata.info/listinfo/pd-list
Re: [PD] Looping
Either that, or you could even create your own table with the desired envelope and send the phasor~ output to a tabread4~ that reads it , instead of using cos~ shenanigans. ~kyle On 1/30/07, Thomas Mayer <[EMAIL PROTECTED]> wrote: PORRES wrote: > the problem with B09 is that it cuts too much information from the sample... I need it to be constantly loud when looping around! Got it? If you have the zexy externals installed, then you can try using [>~ 0.001] after the [cos~] object in B09. The output will be 1, if greater than 0.001, 0 for smaller values. So, basically, it will cut off small portions of the beginning and end of the samples. cu Thomas -- "Prisons are needed only to provide the illusion that courts and police are effective. They're a kind of job insurance." (Leto II. in: Frank Herbert, God Emperor of Dune) http://thomas.dergrossebruder.org/ ___ PD-list@iem.at mailing list UNSUBSCRIBE and account-management -> http://lists.puredata.info/listinfo/pd-list -- http://theradioproject.com http://perhapsidid.blogspot.com (()()()(()))()()())( (())(())()((( ))(__ _())(()))___ (((000)))oOO ___ PD-list@iem.at mailing list UNSUBSCRIBE and account-management -> http://lists.puredata.info/listinfo/pd-list
Re: [PD] Looping
hi there, I tried the object from zexy, and it did cut a tiny bit of the end, anyway, that actually creates a harder clicking, as for enveloping it, I wonder if I dont have to envelope it at all, because I want to loop it and keep it constantly loud... like a sinthesiser wave form table. cheers alex Kyle Klipowicz <[EMAIL PROTECTED]> wrote: Either that, or you could even create your own table with the desired envelope and send the phasor~ output to a tabread4~ that reads it , instead of using cos~ shenanigans. ~kyle On 1/30/07, Thomas Mayer wrote: > PORRES wrote: > > the problem with B09 is that it cuts too much information from the > > sample... I need it to be constantly loud when looping around! Got it? > > If you have the zexy externals installed, then you can try using > [>~ 0.001] after the [cos~] object in B09. The output will be 1, if > greater than 0.001, 0 for smaller values. So, basically, it will cut off > small portions of the beginning and end of the samples. > > cu Thomas > -- > "Prisons are needed only to provide the illusion that courts and police > are effective. They're a kind of job insurance." > (Leto II. in: Frank Herbert, God Emperor of Dune) > http://thomas.dergrossebruder.org/ > > ___ > PD-list@iem.at mailing list > UNSUBSCRIBE and account-management -> > http://lists.puredata.info/listinfo/pd-list > -- http://theradioproject.com http://perhapsidid.blogspot.com (()()()(()))()()())( (())(())()((( ))(__ _())(()))___ (((000)))oOO ___ PD-list@iem.at mailing list UNSUBSCRIBE and account-management -> http://lists.puredata.info/listinfo/pd-list - Any questions? Get answers on any topic at Yahoo! Answers. Try it now.___ PD-list@iem.at mailing list UNSUBSCRIBE and account-management -> http://lists.puredata.info/listinfo/pd-list
Re: [PD] looping a list
The textfile, coll, pool, and iem_matrix objects are all good places to start looking I personally use [coll] for storing/retrieving file names by line number. Plus some kind of counter structure, with a [mod] equivalent to the number of symbols in your list, would allow looping of the line numbers. [playlist] would be an option as well, if all your files are in the same directory. d. altern wrote: > hi > > sometimes i get stucked on easy things like this while using PD, i guess > because my head is too used to text programming... > > I need to loop a list of symbols. I have an arbitrary length list like > |hi hola kaixo moi( > > and i need to be able to get the individual items to loop it. > > The idea is that given a list with sound/video files names, to be able > to jump from one to the next when the prev has ended, and maybe come > back to the first when all are played. > > i know this must be absolutely trivial but i just dont know where to > start from. I havent done much work with lists in PD so far. > > thanks > > enrike > > ___ > PD-list@iem.at mailing list > UNSUBSCRIBE and account-management -> > http://lists.puredata.info/listinfo/pd-list > -- derek holzer ::: http://www.umatic.nl ::: http://blog.myspace.com/macumbista ---Oblique Strategy # 63: "Don't break the silence" ___ PD-list@iem.at mailing list UNSUBSCRIBE and account-management -> http://lists.puredata.info/listinfo/pd-list
Re: [PD] looping a list
thanks!, [coll] does what I needed enrike Derek Holzer(e)k dio: > The textfile, coll, pool, and iem_matrix objects are all good places to > start looking I personally use [coll] for storing/retrieving file > names by line number. Plus some kind of counter structure, with a [mod] > equivalent to the number of symbols in your list, would allow looping of > the line numbers. > > [playlist] would be an option as well, if all your files are in the same > directory. > > d. > > altern wrote: >> hi >> >> sometimes i get stucked on easy things like this while using PD, i >> guess because my head is too used to text programming... >> >> I need to loop a list of symbols. I have an arbitrary length list like >> |hi hola kaixo moi( >> >> and i need to be able to get the individual items to loop it. >> >> The idea is that given a list with sound/video files names, to be able >> to jump from one to the next when the prev has ended, and maybe come >> back to the first when all are played. >> >> i know this must be absolutely trivial but i just dont know where to >> start from. I havent done much work with lists in PD so far. >> >> thanks >> >> enrike >> >> ___ >> 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] looping a list
Hallo, altern hat gesagt: // altern wrote: > sometimes i get stucked on easy things like this while using PD, i guess > because my head is too used to text programming... > > I need to loop a list of symbols. I have an arbitrary length list like > |hi hola kaixo moi( > > and i need to be able to get the individual items to loop it. > > The idea is that given a list with sound/video files names, to be able > to jump from one to the next when the prev has ended, and maybe come > back to the first when all are played. The [list]-abs collection has several objects that would do this, like [list-dripslow], or [list-seek]. These are abstractions so you could study how it's done. But you could also use [textfile] with [until]. For a ready-made abstraction, see attached "ezmenu". Use a counter in front of it to scroll back and forth. Ciao -- Frank Barknecht _ __footils.org__ ezmenu.pd Description: application/puredata ezmenu-help.pd Description: application/puredata ___ PD-list@iem.at mailing list UNSUBSCRIBE and account-management -> http://lists.puredata.info/listinfo/pd-list
Re: [PD] looping a list
Hallo, oops, forgot example txt-file for ezmenu. Attached again. Ciao -- Frank Barknecht _ __footils.org__ ezmenu-help.pd Description: application/puredata ezmenu.pd Description: application/puredata prime retrograde inversion retro-inversion sequence series alea rota ___ PD-list@iem.at mailing list UNSUBSCRIBE and account-management -> http://lists.puredata.info/listinfo/pd-list
Re: [PD] Looping samples with tabread4~
If you are interested in saving yourself the headache (I was wanting to do the same thing last summer) you can just use the susloop~ external from bsaylor. On 5/16/07, Mikael Gunnerås <[EMAIL PROTECTED]> wrote: Hi! Maybe I haven't looked hard enough but I just haven't been able to find any examples on building a sample playback engine that will allow for sample-start, loop-start and loop-end positions to be set. The question is what would be the easiest way to achieve this. I have been thinking about ways to achieve the sample clock driver but since I'm new to PD perhaps my thinking is too complex. My ideas have been: 1. Should I try generating the sample clock driver using two phasor~ objects where one phasor~ handles sample-start 'til loop-end and let the other one (loop-start 'til loop-end) kick in once the first one has completed it's first and single run. 2. Perhaps using a vline~ for the first part instead of a phasor~ 3. Simply using one phasor~ object and offsetting the start value of it's second cycle to the loop-start position 4. Simply using a vline~ object and "loop it" with a different start position the second time onwards. I suppose I would have to use the samphold~ object to make the shift between phasor~ or vline~ or just to offset the start position of a phasors~ second cycle. Any ideas or examples on how to best achieve this would be more than welcome. /Mikael ___ PD-list@iem.at mailing list UNSUBSCRIBE and account-management -> http://lists.puredata.info/listinfo/pd-list -- http://pocketkm.blogspot.com ___ PD-list@iem.at mailing list UNSUBSCRIBE and account-management -> http://lists.puredata.info/listinfo/pd-list
Re: [PD] Looping samples with tabread4~
Hallo, Mikael Gunnerås hat gesagt: // Mikael Gunnerås wrote: > My ideas have been: > 1.Should I try generating the sample clock driver using two > phasor~ objects where one phasor~ handles sample-start til loop-end and > let the other one (loop-start til loop-end) kick in once the first one > has completed its first and single run. > 2.Perhaps using a vline~ for the first part instead of a phasor~ > 3.Simply using one phasor~ object and offsetting the start value > of its second cycle to the loop-start position > 4.Simply using a vline~ object and loop it with a different > start position the second time onwards. I'd simply do 4). With a phasor~ it will be harder to get the starting time of the sample-playing correct, as the phase-inlet of phasor~ is block-quantized, and starting to play a sample exactly in time often is important. I attached a slightly unfinished alternate version of [play-samp~] from RTC-lib that lets you set a starting position to play a sample. This is just as an example. Ciao -- Frank Barknecht _ __footils.org_ __goto10.org__ play-samp-start~.pd Description: application/puredata play-samp-start~-test.pd Description: application/puredata ___ PD-list@iem.at mailing list UNSUBSCRIBE and account-management -> http://lists.puredata.info/listinfo/pd-list
Re: [PD] Looping samples with tabread4~
You're on exactly the right track and thinking all the right things. An important value to grab is the length of the sample (in samples) which you can get from [soundfiler]. Multiply your [phasor~] by the magnitude of the loop and add it to an offset in samples and that should be the table index you need. (please excuse awful html formatting , using webmailer ) andy Hi! Maybe I haven’t looked hard enough but I just haven’t been able to find any examples on building a sample playback engine that will allow for sample-start, loop-start and loop-end positions to be set. The question is what would be the easiest way to achieve this. I have been thinking about ways to achieve the sample clock driver but since I’m new to PD perhaps my thinking is too complex. My ideas have been: Should I try generating the sample clock driver using two phasor~ objects where one phasor~ handles sample-start ‘til loop-end and let the other one (loop-start ‘til loop-end) kick in once the first one has completed it’s first and single run. Perhaps using a vline~ for the first part instead of a phasor~ Simply using one phasor~ object and offsetting the start value of it’s second cycle to the loop-start position Simply using a vline~ object and “loop it” with a different start position the second time onwards. I suppose I would have to use the samphold~ object to make the shift between phasor~ or vline~ or just to offset the start position of a phasors~ second cycle. Any ideas or examples on how to best achieve this would be more than welcome. /Mikael ___ PD-list@iem.at mailing list UNSUBSCRIBE and account-management -> http://lists.puredata.info/listinfo/pd-list
Re: [PD] Looping samples with tabread4~
Have a look at s-bitcrusher http://mccormick.cx/projects/s-abstractions/page/abstractions just as an inspiration for a GUI maybe, its not exactly what you want, but its worth a look Luigi Am 16.05.2007 um 23:08 schrieb [EMAIL PROTECTED]: You're on exactly the right track and thinking all the right things. An important value to grab is the length of the sample (in samples) which you can get from [soundfiler]. Multiply your [phasor~] by the magnitude of the loop and add it to an offset in samples and that should be the table index you need. (please excuse awful html formatting , using webmailer ) andy Hi! Maybe I haven’t looked hard enough but I just haven’t been able to find any examples on building a sample playback engine that will allow for sample-start, loop-start and loop-end positions to be set. The question is what would be the easiest way to achieve this. I have been thinking about ways to achieve the sample clock driver but since I’m new to PD perhaps my thinking is too complex. My ideas have been: Should I try generating the sample clock driver using two phasor~ objects where one phasor~ handles sample-start ‘til loop-end and let the other one (loop-start ‘til loop-end) kick in once the first one has completed it’s first and single run. Perhaps using a vline~ for the first part instead of a phasor~ Simply using one phasor~ object and offsetting the start value of it’s second cycle to the loop-start position Simply using a vline~ object and “loop it” with a different start position the second time onwards. I suppose I would have to use the samphold~ object to make the shift between phasor~ or vline~ or just to offset the start position of a phasors~ second cycle. Any ideas or examples on how to best achieve this would be more than welcome. /Mikael ___ 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] Looping samples with tabread4~
Hi Mikael, I was just messing around with this last week on the list here. Look up the "mod~" thread in the archives, perhaps even the one marked FIXED, and you'll find some solutions based on phasor~ which will do what you want. best, d. Mikael Gunnerås wrote: > Hi! > > Maybe I haven’t looked hard enough but I just haven’t been able to find > any examples on building a sample playback engine that will allow for > sample-start, loop-start and loop-end positions to be set. -- derek holzer ::: http://www.umatic.nl ---Oblique Strategy # 145: "Slow preparation, fast execution" ___ PD-list@iem.at mailing list UNSUBSCRIBE and account-management -> http://lists.puredata.info/listinfo/pd-list
Re: [PD] Looping samples with tabread4~
Very nice patch. It's clean and efficient! Thanks for sharing. ~Kyle On 5/16/07, Frank Barknecht <[EMAIL PROTECTED]> wrote: > Hallo, > Mikael Gunnerås hat gesagt: // Mikael Gunnerås wrote: > > > My ideas have been: > > 1.Should I try generating the sample clock driver using two > > phasor~ objects where one phasor~ handles sample-start til loop-end and > > let the other one (loop-start til loop-end) kick in once the first one > > has completed it s first and single run. > > 2.Perhaps using a vline~ for the first part instead of a phasor~ > > 3.Simply using one phasor~ object and offsetting the start value > > of it s second cycle to the loop-start position > > 4.Simply using a vline~ object and loop it with a different > > start position the second time onwards. > > I'd simply do 4). > > With a phasor~ it will be harder to get the starting time of the > sample-playing correct, as the phase-inlet of phasor~ is > block-quantized, and starting to play a sample exactly in time often > is important. > > I attached a slightly unfinished alternate version of [play-samp~] > from RTC-lib that lets you set a starting position to play a sample. > This is just as an example. > > Ciao > -- > Frank Barknecht _ __footils.org_ __goto10.org__ > > ___ > PD-list@iem.at mailing list > UNSUBSCRIBE and account-management -> > http://lists.puredata.info/listinfo/pd-list > > > -- http://theradioproject.com http://perhapsidid.blogspot.com (()()()(()))()()())( (())(())()((( ))(__ _())(()))___ (((000)))oOO ___ PD-list@iem.at mailing list UNSUBSCRIBE and account-management -> http://lists.puredata.info/listinfo/pd-list
Re: [PD] Looping samples with tabread4~
Frank Barknecht wrote: >> 4. Simply using a vline~ object and ?loop it? with a different >> start position the second time onwards. >I'd simply do 4). That's ok if you're not gonna change the pitch while playing the sample. Suppose for a moment that you don't need a sample start point different from the loop start point, i.e. the begin and end point don't change from the first to the second time. The phasor solution (which is trivial in this case) allows you to have a signal as an input to the phasor, thus allowing to change the pitch of the sampler in real time and smoothly. This is not possible (afaics) with the vline~ solution. I would like to find a solution that mantain that possibility but does switch to the loop region after reproducing the correct sample portion the first time. Obviously I don't know if Mikael Gunner, who posted the original message, wanted this :) One solution for reproducing a sample with a signal pitch input without using a phasor is: (input pitch ~) | [rpole 1] | [tabread4~] (sending a [clear( to the rpole when starting playing) However, the only way I can think of in order to switch from this to the phasor (or to jump to a given point of the sample) at the correct time independently of pitch history, is to use a [threshold~]; but that wouldn't be accurate because it's block-quantized. Any other idea? Hey!!! I just had one. But I would like anybody to suggest a simpler or more elegant one. I may use 2 phasors (or an rpole and a phasor), both fed with the same pitch input. Let's suppose this is the sample: |-SS-LB-LE--| where: SS= sample start (where we want the sample to start playing the first time) LB= loop begin LE= loop end With appropriate calculations, the two phasors can be adjusted so that: 1) Phasor A reproduces the sample the first time from SS to LE in its first cycle. In subsequent cycles it would do the same but it will be muted so we don't mind. 2) Phasor B reproduces the loop region; its initial phase is calculated in such a way that at the beginning, when it is muted, it will be producing garbage, but when phasor A will reach point LB for the first time, phasor B will also be on LB, so that, during ONE cycle of phasor B, the two phasors will be reproducing *exactly* the same portion LB-LE synchronously. So, at any moment of that cycle, we can (and we must) safely switch from the output of phasor A to that of phasor B; we don't need to do a crossfade because the two outputs are perfectly identical. So, for detecting when to switch, we can use a [threshold~] on LB on the output of phasor A, even if threshold is block quantized. No matter if the actual switching occurs with a delay of almost one block, it will still be safe to switch. There is a limitation, that is a minimum loop region size: if B is the block size (usually 64) and P is the maximum pitch we are willing to allow (where a pitch of 1 means original speed, 2 means twice the original speed etc), the loop region must be at least B*P. this formula may be wrong but however there is a minimum loop size related to the block size. I guess this is rarely an issue. Any simpler idea? Bye m. -- Email.it, the professional e-mail, gratis per te: http://www.email.it/f Sponsor: La Cronaca del Carnevale di Ivrea 2007 visto su www.localport.it: per conoscere il Carnevale, per rivivere ledizione 2007. Acquistalo on line Clicca qui: http://adv.email.it/cgi-bin/foclick.cgi?mid=6430&d=17-5 ___ PD-list@iem.at mailing list UNSUBSCRIBE and account-management -> http://lists.puredata.info/listinfo/pd-list
Re: [PD] Looping samples with tabread4~
On Thu, 2007-05-17 at 11:21 +0200, Matteo Sisti Sette wrote: > Frank Barknecht wrote: > > >> 4. Simply using a vline~ object and ?loop it? with a different > >> start position the second time onwards. > > >I'd simply do 4). > > That's ok if you're not gonna change the pitch while playing the sample. theoretically, this approach should also work well with changing the pitch while playing, if i am not totally mistaken. i never tried to implement it myself yet, but since you send a message to [vline~] you also know at any time, where [vline~] actually is. the idea is to measure the time between the inital message to [vline~] and the moment, where you want to change the pitch. with the timevalue and the values from the initial message you could calculate [vline~] actual position. with taking into account [vline~]'s actual position and the new pitch, you could generate a new message for [vline~]. like that, it should be possible to change the pitch at any time with (sub-?)sample accuracy and without having jumps in the playback. roman ___ Der frühe Vogel fängt den Wurm. Hier gelangen Sie zum neuen Yahoo! Mail: http://mail.yahoo.de ___ PD-list@iem.at mailing list UNSUBSCRIBE and account-management -> http://lists.puredata.info/listinfo/pd-list
Re: [PD] Looping samples with tabread4~
Yes, I did once exactly what you describe, and it works. (well to be precise I didn't do *exactly* what you described: I snapshotted the vline~ output to get the current position, so it worked only within block accuracy; however, I understand your solution and it should definitely work with (sub)sample accuracy) However, in this approach the pitch input is control, i.e. number, it is not a signal. This doesn't allow for a signal input pitch. You can "change the pitch at any time" but you cannot have an oscillator *continuously* regulating the pitch for instance. - Original Message - From: "Roman Haefeli" <[EMAIL PROTECTED]> To: "Matteo Sisti Sette" <[EMAIL PROTECTED]> Cc: Sent: Thursday, May 17, 2007 12:27 PM Subject: Re: [PD] Looping samples with tabread4~ On Thu, 2007-05-17 at 11:21 +0200, Matteo Sisti Sette wrote: > Frank Barknecht wrote: > > >> 4. Simply using a vline~ object and ?loop it? with a different > >> start position the second time onwards. > > >I'd simply do 4). > > That's ok if you're not gonna change the pitch while playing the sample. theoretically, this approach should also work well with changing the pitch while playing, if i am not totally mistaken. i never tried to implement it myself yet, but since you send a message to [vline~] you also know at any time, where [vline~] actually is. the idea is to measure the time between the inital message to [vline~] and the moment, where you want to change the pitch. with the timevalue and the values from the initial message you could calculate [vline~] actual position. with taking into account [vline~]'s actual position and the new pitch, you could generate a new message for [vline~]. like that, it should be possible to change the pitch at any time with (sub-?)sample accuracy and without having jumps in the playback. roman ___ Der frühe Vogel fängt den Wurm. Hier gelangen Sie zum neuen Yahoo! Mail: http://mail.yahoo.de -- Email.it, the professional e-mail, gratis per te: http://www.email.it/f Sponsor: Gioca on-line con Best Western e parti in vacanza! Clicca qui: http://adv.email.it/cgi-bin/foclick.cgi?mid=6500&d=17-5 ___ PD-list@iem.at mailing list UNSUBSCRIBE and account-management -> http://lists.puredata.info/listinfo/pd-list
Re: [PD] Looping samples with tabread4~
On Thu, 2007-05-17 at 12:49 +0200, Matteo Sisti Sette wrote: > Yes, I did once exactly what you describe, and it works. > > (well to be precise I didn't do *exactly* what you described: I snapshotted > the vline~ output to get the current position, so it worked only within > block accuracy; however, I understand your solution and it should definitely > work with (sub)sample accuracy) since there is [vsnapshot~], even this approach should work with sample accuracy. > However, in this approach the pitch input is control, i.e. number, it is not > a signal. > This doesn't allow for a signal input pitch. hey, but you showed us an interesting use of [rpole~] for doing that. i think that this is a nice example of using the elementary filters in other contexts than filter design. i probably would have found often much more straightforwards solutions for certain problems, if i'd thought of using elementary filters. roman ___ Der frühe Vogel fängt den Wurm. Hier gelangen Sie zum neuen Yahoo! Mail: http://mail.yahoo.de ___ PD-list@iem.at mailing list UNSUBSCRIBE and account-management -> http://lists.puredata.info/listinfo/pd-list
Re: [PD] Looping samples with tabread4~
> > However, in this approach the pitch input is control, i.e. number, it is > > not > > a signal. > > This doesn't allow for a signal input pitch. > hey, but you showed us an interesting use of [rpole~] for doing that. Yeah, what I miss is how to seamlessly switch from the first cycle to the next ones. I did propose a solution to that, but I hope there's a simpler one I guess a sort of [vthreshold~] would do that. However I'm glad you appreciated the elementary filter stuff. Btw, I think we never got (or I missed) the answer to the interesting question: what does the "v" stand for? -- Email.it, the professional e-mail, gratis per te: http://www.email.it/f Sponsor: Gioca on-line con Best Western! Puoi vincere buoni-sconto per soggiorni in tutto il mondo e un week-end per due persone a Positano. Iscriviti subito! Clicca qui: http://adv.email.it/cgi-bin/foclick.cgi?mid=6497&d=17-5 ___ PD-list@iem.at mailing list UNSUBSCRIBE and account-management -> http://lists.puredata.info/listinfo/pd-list
Re: [PD] Looping samples with tabread4~
On Thu, 2007-05-17 at 13:40 +0200, Matteo Sisti Sette wrote: > > > However, in this approach the pitch input is control, i.e. number, it is > > > not > > > a signal. > > > This doesn't allow for a signal input pitch. > > > hey, but you showed us an interesting use of [rpole~] for doing that. > > Yeah, what I miss is how to seamlessly switch from the first cycle to the > next ones. I did propose a solution to that, but I hope there's a simpler > one > I guess a sort of [vthreshold~] would do that. yeah, there are a lot of objects in pd, that need to be 'v'-ized. there is [tabwrite~], the phase-inlets of all oscillators [osc~], [phasor~], [tabosc~], [threshold~] and maybe [tabplay~], which come to my mind > However I'm glad you appreciated the elementary filter stuff. > > Btw, I think we never got (or I missed) the answer to the interesting > question: what does the "v" stand for? i think, this is still unanswered. roman ___ Telefonate ohne weitere Kosten vom PC zum PC: http://messenger.yahoo.de ___ PD-list@iem.at mailing list UNSUBSCRIBE and account-management -> http://lists.puredata.info/listinfo/pd-list
Re: [PD] Looping samples with tabread4~
Hallo, Matteo Sisti Sette hat gesagt: // Matteo Sisti Sette wrote: > Frank Barknecht wrote: > > >> 4. Simply using a vline~ object and ?loop it? with a different > >> start position the second time onwards. > > >I'd simply do 4). > > That's ok if you're not gonna change the pitch while playing the sample. Yes, my suggestion is for a one-shot sampler with a looping end and constant pitch. > Suppose for a moment that you don't need a sample start point different from > the loop start point, i.e. the begin and end point don't change from the > first to the second time. > The phasor solution (which is trivial in this case) allows you to have a > signal as an input to the phasor, thus allowing to change the pitch of the > sampler in real time and smoothly. This is not possible (afaics) with the > vline~ solution. For one-shot sampler phasor~ is not good IMO because of the quantiztion of the phase-inlet. phasor~ samplers would be terrible for drum-samplers. Also because of the phasor~ quantization it's hard to start playing with vline~ and then switch to looping phasor, unless you do a crossfade. (But a crossfade would work.) > One solution for reproducing a sample with a signal pitch input without > using a phasor is: > > (input pitch ~) > | > [rpole 1] > | > [tabread4~] > > (sending a [clear( to the rpole when starting playing) Puh, wouldn't [rpole~ 1] maybe be dangerous? Anyway I don't see any advantage in rpole~ over phasor~. > However, the only way I can think of in order to switch from this to the > phasor (or to jump to a given point of the sample) at the correct time > independently of pitch history, is to use a [threshold~]; but that wouldn't > be accurate because it's block-quantized. > > Any other idea? > > > Hey!!! I just had one. But I would like anybody to suggest a simpler or more > elegant one. > > I may use 2 phasors (or an rpole and a phasor), both fed with the same pitch > input. > > Let's suppose this is the sample: > |-SS-LB-LE--| > where: > SS= sample start (where we want the sample to start playing the first time) > LB= loop begin > LE= loop end > > With appropriate calculations, the two phasors can be adjusted so that: > 1) Phasor A reproduces the sample the first time from SS to LE in its first > cycle. In subsequent cycles it would do the same but it will be muted so we > don't mind. > 2) Phasor B reproduces the loop region; its initial phase is calculated in > such a way that at the beginning, when it is muted, it will be producing > garbage, but when phasor A will reach point LB for the first time, phasor B > will also be on LB, so that, during ONE cycle of phasor B, the two phasors > will be reproducing *exactly* the same portion LB-LE synchronously. Show us the code! ;) This may work, but indeed would be very complicated. Also I assume, that changing the frequency of the phasor~ before you've reached the loop area would completely mess up the caluclations of phase and/or frequency of the second phasor~, especially as you can only set the phase of a phasor~ once every block. > Any simpler idea? susloop~ Ciao -- Frank Barknecht _ __footils.org_ __goto10.org__ ___ PD-list@iem.at mailing list UNSUBSCRIBE and account-management -> http://lists.puredata.info/listinfo/pd-list
Re: [PD] Looping samples with tabread4~
Hallo, Frank Barknecht hat gesagt: // Frank Barknecht wrote: > > One solution for reproducing a sample with a signal pitch input without > > using a phasor is: > > > > (input pitch ~) > > | > > [rpole 1] > > | > > [tabread4~] > > > > (sending a [clear( to the rpole when starting playing) > > Puh, wouldn't [rpole~ 1] maybe be dangerous? Anyway I don't see any > advantage in rpole~ over phasor~. Ah, now I see that you probably mean rpole~ as a vline~ replacement, not as one for phasor~. Yes, that would be interesting, however one needs to adjust to possibly different sample rates between the sample file and Pd, for example if you load a 44.1 kHz sample into a Pd running with 48 kHz: The speed of the ramp would need to be adjusted accordingly as rpole~ always advances with Pd's sample rate, while for playing a 44.1 sample at normal speed you need to use a ramp that advances with 44.1 kHz every sample. Ciao -- Frank Barknecht _ __footils.org_ __goto10.org__ ___ PD-list@iem.at mailing list UNSUBSCRIBE and account-management -> http://lists.puredata.info/listinfo/pd-list
Re: [PD] Looping samples with tabread4~
Roman Haefeli wrote: > On Thu, 2007-05-17 at 13:40 +0200, Matteo Sisti Sette wrote: > > >> Btw, I think we never got (or I missed) the answer to the interesting >> question: what does the "v" stand for? >> > > i think, this is still unanswered. > > Most likely it stands for 'vector', which is the name used in the pd source code for a block of samples. Martin ___ PD-list@iem.at mailing list UNSUBSCRIBE and account-management -> http://lists.puredata.info/listinfo/pd-list
Re: [PD] Looping samples with tabread4~
> For one-shot sampler phasor~ is not good IMO because of the > quantiztion of the phase-inlet. phasor~ samplers would be terrible for > drum-samplers. Yeah, obviously "my" solution only makes sense if we want a continuous signal pitch. >> (input pitch ~) >> | >> [rpole 1] >> | >> [tabread4~] >> >> (sending a [clear( to the rpole when starting playing) > >Puh, wouldn't [rpole~ 1] maybe be dangerous? Anyway I don't see any >advantage in rpole~ over phasor~. Why dangerous? And yes, when looping there's no advantage of rpole over phasor. For the first cycle that only plays once however, or for the case of playing a sample with variable pitch but without loop, the advantage of rpole is IMHO simplicity: you don't have to scale the input and output depending on sample length as with phasor. >Show us the code! ;) Of course I will, as soon as I try it. >This may work, but indeed would be very complicated. Also I assume, >that changing the frequency of the phasor~ before you've reached the >loop area would completely mess up the caluclations of phase and/or >frequency of the second phasor~, especially as you can only set the >phase of a phasor~ once every block. Not totally sure until i try and code it, but I think the phase of the phasor(s) (and the scaling factors) only need to be set up at the very beginning, and changing the frequency at any moment won't mess up anything since the frequency feeds both phasors (or both the phasor and the rpole) at the same time. However I may be missing something until I write down some formula. Thanks, m. -- Email.it, the professional e-mail, gratis per te: http://www.email.it/f Sponsor: Gioca on-line con Best Western! Puoi vincere buoni-sconto per soggiorni in tutto il mondo e un week-end per due persone a Positano. Iscriviti subito! Clicca qui: http://adv.email.it/cgi-bin/foclick.cgi?mid=6498&d=17-5 ___ PD-list@iem.at mailing list UNSUBSCRIBE and account-management -> http://lists.puredata.info/listinfo/pd-list
Re: [PD] Looping samples with tabread4~
Hallo, Matteo Sisti Sette hat gesagt: // Matteo Sisti Sette wrote: > And yes, when looping there's no advantage of rpole over phasor. For the > first cycle that only plays once however, or for the case of playing a > sample with variable pitch but without loop, the advantage of rpole is IMHO > simplicity: you don't have to scale the input and output depending on sample > length as with phasor. Unfortunatly also rpole~ is quantized to blocks, when it comes to setting it's internal state through messages. See attached patch. Otherwise it would be a useful vline~ replacement. But as such it really requires working completely in the signal domain. > >Show us the code! ;) > > Of course I will, as soon as I try it. > > >This may work, but indeed would be very complicated. Also I assume, > >that changing the frequency of the phasor~ before you've reached the > >loop area would completely mess up the caluclations of phase and/or > >frequency of the second phasor~, especially as you can only set the > >phase of a phasor~ once every block. > > Not totally sure until i try and code it, but I think the phase of the > phasor(s) (and the scaling factors) only need to be set up at the very > beginning, and changing the frequency at any moment won't mess up anything > since the frequency feeds both phasors (or both the phasor and the rpole) at > the same time. Hm, yes, that's right! Changing the frequency of the looping phasor~ B as well as that of phasor~ A should still let them both end at LB at the same time, at least if my considerations below are correct: To meet at LB the phase difference between both phasors (in samples) should be: d = (LB - SS) mod (LE - LB) which gets a bit simpler if SS is assumed to be 0: d = LB mod (LE - LB) Anyway the frequency of the phasor doesn't even show up in this formula, so the calculation is independent from frequency and thus should hold true for any changes in phasor frequency as well. Ciao -- Frank Barknecht _ __footils.org_ __goto10.org__ vrpole.pd Description: application/puredata ___ PD-list@iem.at mailing list UNSUBSCRIBE and account-management -> http://lists.puredata.info/listinfo/pd-list
Re: [PD] looping at the end of sample
hello, what is 'resonance part'? in principle you compute the loop size in ms and send the result to [phasor~] or [vline~] for driving [tabread4~] Colet Patrice - Mail original - > De: "Jean-Marie Adrien" > À: "pd-list@iem.at List" > Envoyé: Mercredi 1 Août 2012 10:10:31 > Objet: [PD] looping at the end of sample > > Hi list > have looked at the archives threads concerning managing the > tabread4~'s index for reading an audio sample from the beginning > and then loop on a chunk at the end (in the resonance part). > Many things during the last years, but nothing very clear to me... > Any patch around for playing sample from start and loop at the end ? > Jm > ___ > 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] Looping through an array a specific number of times
> De: "Rick T" > > I'm trying to loop a wav file a specific number of times after I load > it into an array and play it using tabread4~. > It depends on how you read the table, if you are using [line~] it's easy, you just have to count how many time it's triggered, but for some reasons I don't know, the sound quality will be bad with long soundfiles... If you are using [phasor~] you can count ramp reset, here is a track to do this: http://www.mail-archive.com/pd-list@iem.at/msg46735.html > I was going to use moses and a spigot and I found the "loop" object > but it doesn't have any help information it's just another > sub-patch. > Is their another object I should use to control the amount of loops a > sound file plays? > > Thanks > Rick > > ___ > 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