Thanks for testing! I was suspecting that the difference might only be a very subtle one. But I'll check as well in next days. BTW: Your 'speed' control looks very cool, I'm gonna try this myself.
I think I understand your questions better now, so I'll try to give some more concrete answers again:
> My point was just that [vd~] acts in a special way when in an overlapping subpatch, and that is it'll output the audio
> without discontinuities or pitch shifting because of interpreting the overlap as oversampling. That behaviour is special
> when compared to [osc~], [phasor~]
I don't understand what you mean here. [osc~] and [phasor~] also interpret the overlap as oversampling, as do all objects which rely on time information (ms, hz). In fact, overlapping is achieved by oversampling. The reason why there won't be any discontinuities with [vd~] is because it is only a reading object like [tabread4~] and the delay line itself is not affected by the overlapping. You only have to be careful when dealing with milliseconds and different sample rates. Having [delwrite~] and [vd~] in the same overlapping subpatch (as you would in a spectral delay) is also not a problem. But having the [delwrite~] in the overlapping subpatch and the [vd~] outside will cause weirdness :-).
There are actual two 'problems' with [phasor~], [osc~] and [vline~] in overlapping subpatches:
1) looking from the outside they seem to run too slowly because they rely on a higher sample rate within in the subpatch, but contrary to deliberate upsampling, e. g. [block~ 64 1 4], the output doesn't get downsampled at the outlets. So with overlap 4 the sample rate is 176400 Hz instead of 44100 Hz. That means a [phasor~] with a speed of 44100 Hz has a period of 4 samples. When it goes through the outlets it still has a period of 4 samples but now the sample rate is 44100 Hz and its 'speed' is therefore interpreted as only 11025 Hz. You also have to be careful with milliseconds because they also depend on the sample rate.
(Oddly enough, [samplerate~] always outputs the global samplerate and not the actual rate the subpatch is running at. This is why there is the [iem_samplerate~] object in iemlib, which always gives the actual samplerate.)
2) they run continously across blocks but because of overlapping they are not phase aligned after the outlet.
The oversampling is the only reason for all the corrections you had to do in you patch. I attached a copy where I made some comments. I hope this helps. If you have any more questions you can ask me.
Cheers
Gesendet: Donnerstag, 10. September 2015 um 23:00 Uhr
Von: "Alexandre Torres Porres" <[email protected]>
An: "Christof Ressi" <[email protected]>
Cc: Pd-List <[email protected]>
Betreff: Re: Re: Re: [PD] weird behavior of [vd~] in phave vocoder (overlapping subpatches)
Von: "Alexandre Torres Porres" <[email protected]>
An: "Christof Ressi" <[email protected]>
Cc: Pd-List <[email protected]>
Betreff: Re: Re: Re: [PD] weird behavior of [vd~] in phave vocoder (overlapping subpatches)
naaah, yeah, they're different.. oops... but doesn't really make any difference perceptually... let me check it some more...
2015-09-10 17:49 GMT-03:00 Alexandre Torres Porres <[email protected]>:
yeah, I have to sit again with some time and figure it out, I should do some tests to better understand how many objects behave. But, in the meantime, lets talk about something important here.> Delaying the back window [z~] is a rather lazy trick and it won't> give accurate results each time you change the pitch shifting> factor, but after one fft-window it settles. The question is if you> can actually here this error. When I find some time I'll make a> comparison between our both solutions.Are you really sure about this? Cause I've been testing it and thinking about it and, in my opinion, both are exactly the same thing, equally equivalent, and I can't hear any difference as well.Lets sort this out ;)I think that the second delay makes it a simpler patch and easier to understand. I'm using [cyclone/delay~] by the way, which works with samples - must be the same thing as [z~].cheers2015-09-10 14:23 GMT-03:00 Christof Ressi <[email protected]>:Hmmm, since we basically agree on all these things I was thinking if I missed a point, because I simply don't believe that [vd~] behaves differently than [tabread4~] and there is any unlogical or 'special' behaviour with [vd~] within an upsampled subpatch. Maybe one thing: The input of [vd~] is a time in milliseconds which is interpreted according to the actual sample rate (because internally the delay lines work on samples, of course). In that way it behaves like [phasor~], [vline~], [osc~]. So when you send 1000 ms to a [vd~] in a subpatch with overlap 4, the delay line will be read at sample 176400 (supposing the [delwrite~] is in a subpatch with sample rate 44100). This is not an issue if both the [delwrite~] and [vd~] are in the same subpatch. But if they are in subpatches with different sample rates you have to make some adjustments. If you're also aware of this behaviour than I don't know what else we could've missed...
CheersGesendet: Donnerstag, 10. September 2015 um 18:10 Uhr
Von: "Alexandre Torres Porres" <[email protected]>
An: "Christof Ressi" <[email protected]>
Cc: Pd-List <[email protected]>
Betreff: Re: Re: [PD] weird behavior of [vd~] in phave vocoder (overlapping subpatches)yeah, it'll consider the signal input is 0 so it'll output the corresponding index - which is "1" because of the interpolation.and yeah, I'm aware they're both buffer readers, delwrite~ / vd~ being a circular / ring buffer. And my point was this difference between them, where delay lines will always read/output at regular speed.But that is not the core of the discussion, and we actually agree on it, so I'm not sure what we're talking about here.My point was just that [vd~] acts in a special way when in an overlapping subpatch, and that is it'll output the audio without discontinuities or pitch shifting because of interpreting the overlap as oversampling. That behaviour is special when compared to [osc~], [phasor~] and I also tried a buffer reader like [tabplay~] and got "bad" results. They all don't work well in it, and so does not [vline~] by the way. There might be other relevant objects to test but I'm just not thinking about it. Nevertheless, I have the idea most will have problems, while some, like [vd~], will be be fine.The thing about [tabread~] is that it solely depends on external sources to read the buffers, while [vd~] doesn't, and that makes quite a practical difference in my opinion. The deal with [tabread~] is that the issue is more about what object is driving it and how it behaves (such as [vline~] and [phasor~], which don't behave well with overlapping subpatches).But again, not a relevant discussion. But I do feel like making more tests, I just don't know if there is a possible to test to check how the behaviour or [vd~] and [tabread4~] could relate between themselves.> For me its sometimes a trial and error game to find all> those parameters which have to be divided/multiplied> by the overlap factor. But after a while of thinking> everything turns out to make sense.yeah, it was trial and error, but I'm still not 100% sure how it makes sense... hence this thread :) - but I guess I'll keep thinking more about it.> Delaying the back window [z~] is a rather lazy trick and> it won't give accurate results each time you change the> pitch shifting factor,that's important to note, and that's why miller's patch may not have been using this procedure.thanks2015-09-10 6:39 GMT-03:00 Christof Ressi <[email protected]>:"Oops, now I'm the one to say you can't compare them as equal. You see, [tabread~] needs to have an audio input to read through the array, but [vd~] is always "reading" the buffer at normal speed - so this makes them quite different. Since [tabread~] only react if some signal is feeding it, then it depends solely on that incoming signal; and thus the object who's outputting it, which could be [phasor~] or [vline~]. So it's more about which object who's driving it than itself."Again, I insist that the behaviour of [tabread4~] and [vd~] is equivalent ;-). When you don't feed any input to [tabread4~] it outputs the value at index 1. Now try to think of a delay line as simply a table which content is constantly updated at a time interval of 1/SR (SR = the actual sample rate of the subpatch containing the [delwirte~]). If you don't send any signal to [vd~], it behaves just as [tabread4~], only that the value at index 1 always changes, so it only appears that [vd~] itself is reading along a buffer. (Note that both objects can't read index 0 because of the 4-point interpolation algorithm. So with [vd~] you will never get less than a one sample delay.)To make sloppy analogy: [tabread4~] would be a band machine where the tape itself stands still why the tape head can be freely moved, whereas [vd~] would be one where the tape runs at a fixed speed and additionally the tape head can be moved too. Well, I don't know if this makes sense :-).Since you took the word "reading" in quotation marks you might be aware of all this. In that case the confusion might arise from the fact that you have to consider the relation between the 'speed' of the delay line (depending on the sample rate of the subpatch containing the [delwrite~]) and the 'speed' of the object providing the input for the [vd~].Please anyone correct me if I'm wrong on these points!For me its sometimes a trial and error game to find all those parameters which have to be divided/multiplied by the overlap factor. But after a while of thinking everything turns out to make sense.Delaying the back window [z~] is a rather lazy trick and it won't give accurate results each time you change the pitch shifting factor, but after one fft-window it settles. The question is if you can actually here this error. When I find some time I'll make a comparison between our both solutions.Cheers, ChristofGesendet: Donnerstag, 10. September 2015 um 07:51 Uhr
Von: "Alexandre Torres Porres" <[email protected]>
An: "Christof Ressi" <[email protected]>
Cc: Pd-List <[email protected]>, "Gerd Schuller" <[email protected]>
Betreff: Re: [PD] weird behavior of [vd~] in phave vocoder (overlapping subpatches)>>> unlike [osc~], [vd~] will get the continuities between blocks right!"> You can't really compare these two objects.Sure I can :) i'll insist on it by the way. Again, [vd~] will not generate discontinuities with the overlaps, unlike other objects such as [osc~] and [phasor~]. Moreover, and as a logical result, it won't change the pitch because of the oversampling. It'll just work fine.> [vd~] is actually the same thing as [tabread4~]Oops, now I'm the one to say you can't compare them as equal. You see, [tabread~] needs to have an audio input to read through the array, but [vd~] is always "reading" the buffer at normal speed - so this makes them quite different. Since [tabread~] only react if some signal is feeding it, then it depends solely on that incoming signal; and thus the object who's outputting it, which could be [phasor~] or [vline~]. So it's more about which object who's driving it than itself.When it comes to [vd~], the pithc shifting and time stretching also depends on the object that's driving the input, which could be again [phasor~] or [vline~] and need to deal with their behaviour.> you have to divide by the overlap factor, because then> you read less samples and therefore virtually slow the> [vline~] down. In a subpatch with overlap 4 everything> happens 4 times as fast because instead of only 1 blockyeah, sure, I've pointed it in my 1st message. I get that.But as I asked, I don't really get how ALL parameters need to divided by 4, not only the [vline~] time, that is not clear yet. Sorry.And by the way, my patch does also time stretching, so it's different than yours and is dealing with more parameters and issues than you. So you are addressing the [vline~] issue only (replaced by [phasor~] in your patch) - but that was the only parameter that I really understood anyway.> When using [z~] to delay the back window simply by the> fft hop size you don't have to care about window sizeshmm, my problem was more why were my two patches different, the one with fft needed to care about it, but the other one didn't. I actually get why that thing needs to be done to properly phase align the windows.So I was thinking and then thought that the other patch was working because it wasn't a phase vocoder, so the phase alignment was not important. But now that you say this and showed your patch, I can see that you need not worry if you are using a delay. And I was actually using a delay in my non fft patch.In the end my patches were different but equivalent and now I get why. It's cool to know and learn that if you are using delay you don't need to care about it.thanksps. I'm still curious on sorting out the behaviour of [vd~] though2015-09-09 7:54 GMT-03:00 Christof Ressi <[email protected]>:Hi Alexandre,I'm new on this list, but I think I can help you on this because recently I tried to do the same thing. I can't fully test your patch because I'm missing the cyclone library (and don't bother to install it :-p). I try to give an answer to the following questions:"Other issues related to overlapping besides this "oversampling" is that some objects won't make it right, they'll chop the blocks with discontinuities, such as the case with [osc~]. But as it turns out, unlike [osc~], [vd~] will get the continuities between blocks right!"You can't really compare these two objects. [vd~] is actually the same thing as [tabread4~], only that it reads from a ring buffer rather from a table. So the critical thing is only which object you use as the input for [vd~]. You are using [vline~] whereas I'm using [phasor~]. Both are equivalent. For the reading index for [vd~] you have to divide by the overlap factor, because then you read less samples and therefore virtually slow the [vline~] down. In a subpatch with overlap 4 everything happens 4 times as fast because instead of only 1 block, 4 blocks have to be processed - in the same time!). My approach is to have a [phasor~] run from 0 to 1 (or 1 to 0) for every block so I have to multiply it's speed by four. Than I multiply the output by the windows size. Note that in my patch I get the second window one hop size behind by simply delaying it with [z~] whereas you've chosen to use a second [vd~] with a wrapping object. (I guess you're way actually saves some memory as you don't need a second delay line)."And even more weirdly, in the Pvoc patch I have to multiply the difference between the front and back windows to the ratio of transposition. This is even crazier than the last issue, and I have no idea why that has to be this way..."When you're transposing you're actually reading more samples for upwards pitchshifting and less samples for downwards pitchshifting. So you basically stretch or compress the window size. This means also that the time difference between two windows changes if you want them to be phase aligned. If the window gets larger, the time difference to the last window also gets larger and vice verca. You might be aware of this: The window in the back has to be phase aligned with the front window because you need it as a reference to calculate the difference from the actual phase of the previous output window.When using [z~] to delay the back window simply by the fft hop size you don't have to care about window sizes and time differences at all. It is, however, also a bit incorrect for the first analysis window after a change of pitch so I might change it and try it your way!You can have a look at my solution and compare it to yours. From what I've seen both work the same way though I couldn't test your patch. However, I think that my patch could be conceptually easier to understand, but I might be wrong :-).Cheers, ChristofPS: Ignore the right half of [pd read-windows] with the two [tabread4~], this is only needed for the freeze effect.
#N canvas 684 129 629 521 10; #X obj 201 342 nbx 5 16 -1e+037 1e+037 0 0 empty cents empty 0 -8 0 13 -236782 -1 -1 -100 256; #X obj 78 341 nbx 4 16 -1e+037 1e+037 0 0 empty tempo empty 0 -8 0 13 -183865 -1 -1 90 256; #X obj 139 341 nbx 4 16 64 8192 0 0 empty bloc-set empty 0 -8 0 13 -257904 -1 -1 4096 256; #X text 156 356 grão; #X msg 156 301 1024; #X msg 116 282 2048; #X msg 151 280 4096; #X obj 31 412 output~; #X obj 138 203 delwrite~ \$0-ring_buffer 60000; #X text 485 313 cents; #X obj 425 313 nbx 5 14 -1e+037 1e+037 0 0 empty \$0-cents empty 0 -8 0 10 -261682 -1 -1 -100 256; #X obj 277 397 output~; #X obj 428 293 hsl 128 15 -2400 2400 0 0 empty empty empty -2 -8 0 10 -261682 -1 -1 0 1; #X obj 302 302 nbx 5 14 -1e+037 1e+037 0 0 empty \$0-speed empty 0 -8 0 10 -203904 -1 -1 90 256; #X text 305 281 speed; #X obj 86 67 triangle~ 0.7; #X obj 138 174 blosc~ saw; #X obj 138 92 samphold~; #X obj 138 119 *~ 150; #X obj 138 147 +~ 250; #X obj 189 70 phasor~ 9.11; #X obj 86 33 phasor~ 14; #N canvas 44 80 760 667 Granulador_Shift-Stretch 0; #X obj 62 202 bang~; #X msg 211 385 \$1 \, \$2 \$3; #X obj 131 197 nbx 8 14 -1e+037 1e+037 0 0 empty empty empty 0 -8 0 10 -204800 -1 -1 409.6 256; #X obj 219 627 outlet~; #X obj 131 33 inlet; #X obj 253 35 inlet; #X msg 253 99 set \$1; #X obj 349 468 phasor~; #X obj 349 492 /~ 2; #X obj 349 518 sin~; #X text 388 519 Envelope; #X obj 474 149 expr pow(2 \, ($f1/1200)); #X obj 474 23 inlet; #X obj 474 116 nbx 5 18 -1e+037 1e+037 0 0 empty empty empty 0 -8 0 15 -236782 -1 -1 -100 256; #X text 482 97 transposição; #X text 557 116 (cents); #X obj 131 125 nbx 5 18 -1e+037 1e+037 0 0 empty empty empty 0 -8 0 15 -183865 -1 -1 90 256; #X text 39 125 velocidade (%); #X obj 253 65 nbx 5 18 -1e+037 1e+037 0 0 empty empty empty 0 -8 0 15 -257904 -1 -1 4096 256; #X text 185 66 bloco/grão; #X obj 334 572 delay~ 4096; #X obj 334 546 *~; #X obj 219 593 +~; #X text 434 177 razão; #X obj 411 550 r \$0-overlap; #X floatatom 411 572 8 0 0 0 - - -, f 8; #X obj 250 120 cnv 15 50 30 empty empty empty 20 12 0 14 -183930 -66577 0; #X obj 253 127 block~; #X obj 116 220 +; #X obj 149 100 trigger b f; #X obj 98 535 vd~ \$0-ring_buffer; #X obj 219 565 *~; #X obj 211 480 vd~ \$0-ring_buffer; #X msg 588 320 60000; #X floatatom 312 134 4 0 0 0 - - -, f 4; #X obj 312 168 s \$0-overlap; #X obj 312 101 / 2; #X floatatom 474 178 0 0 0 0 - - -; #X obj 345 98 expr $f1 / sr_KHz; #X obj 345 144 v block_ms_\$0; #X obj 588 232 loadbang; #X obj 639 286 samplerate~; #X obj 639 321 / 1000; #X obj 687 316 v sr; #X obj 639 347 v sr_KHz; #X obj 62 232 f; #X obj 62 271 expr $f1 / sr_KHz; #X text 175 271 passos em ms; #X obj 131 174 expr (1 - $f1) * $f2; #X obj 131 153 / 100; #X obj 349 441 expr~ 1000 / block_ms_\$0; #X obj 98 482 +~; #X text 193 508 loop; #X obj 588 378 s \$0-buf_size; #X obj 167 219 r \$0-buf_size; #X obj 116 243 zexy/wrap; #X text 176 243 * loop; #X obj 588 348 *; #X obj 588 259 t b b; #X obj 211 409 vline~; #X obj 98 506 pong~ 1 0 60000; #X msg 80 168 0; #X obj 474 210 v ratio_\$0; #X obj 355 122 s \$0-block_ms; #X obj 340 333 r \$0-block_ms; #X obj 378 404 / 2; #X obj 211 362 pack float float float; #X msg 473 308 \; bloc-set 4096 \; pd dsp 1; #X obj 62 311 expr $f1 \; $f1 + ((1 - ratio_\$0) * block_ms_\$0); #X connect 0 0 45 0; #X connect 1 0 59 0; #X connect 2 0 28 1; #X connect 4 0 16 0; #X connect 5 0 18 0; #X connect 6 0 27 0; #X connect 7 0 8 0; #X connect 8 0 9 0; #X connect 9 0 21 1; #X connect 9 0 31 1; #X connect 11 0 37 0; #X connect 12 0 13 0; #X connect 13 0 11 0; #X connect 16 0 49 0; #X connect 18 0 6 0; #X connect 18 0 29 0; #X connect 18 0 36 0; #X connect 18 0 38 0; #X connect 20 0 22 1; #X connect 21 0 20 0; #X connect 22 0 3 0; #X connect 24 0 25 0; #X connect 25 0 20 1; #X connect 28 0 55 0; #X connect 29 0 16 0; #X connect 29 1 48 1; #X connect 30 0 31 0; #X connect 31 0 22 0; #X connect 32 0 21 0; #X connect 33 0 57 0; #X connect 34 0 35 0; #X connect 36 0 34 0; #X connect 37 0 62 0; #X connect 38 0 39 0; #X connect 38 0 63 0; #X connect 40 0 58 0; #X connect 41 0 42 0; #X connect 41 0 43 0; #X connect 42 0 44 0; #X connect 42 0 57 1; #X connect 45 0 28 0; #X connect 45 0 46 0; #X connect 46 0 68 0; #X connect 48 0 2 0; #X connect 49 0 48 0; #X connect 50 0 7 0; #X connect 51 0 60 0; #X connect 54 0 55 1; #X connect 55 0 45 1; #X connect 57 0 53 0; #X connect 58 0 33 0; #X connect 58 0 67 0; #X connect 58 1 41 0; #X connect 59 0 51 0; #X connect 59 0 32 0; #X connect 60 0 30 0; #X connect 61 0 45 1; #X connect 64 0 65 0; #X connect 64 0 66 2; #X connect 65 0 51 1; #X connect 66 0 1 0; #X connect 68 0 66 0; #X connect 68 1 66 1; #X restore 60 372 pd Granulador_Shift-Stretch; #N canvas 123 288 1445 728 pvoc_Shift-Stretch 1; #X obj 291 326 +~; #X obj 291 219 pack float float float; #X obj 424 13 inlet; #X obj 208 415 cnv 15 460 225 empty empty PVoc 393 19 0 25 -220404 -66577 0; #X obj 240 501 cnv 15 220 40 empty empty empty 20 12 0 14 -183085 -66577 0; #X obj 456 662 outlet~; #X obj 412 554 rifft~; #X obj 456 582 *~; #X obj 244 578 tabsend~ \$0-re; #X obj 265 556 tabsend~ \$0-im; #X obj 220 426 tabreceive~ \$0-re; #X obj 245 451 tabreceive~ \$0-im; #N canvas 632 181 680 503 Acúmulo-de-Fase(com_Phase-Lock) 0; #X obj 161 144 cnv 15 230 60 empty empty empty 20 12 0 14 -233017 -66577 0; #X obj 293 343 cnv 15 230 60 empty empty empty 20 12 0 14 -233017 -66577 0; #X obj 148 28 cnv 15 160 80 empty empty empty 20 12 0 14 -204800 -66577 0; #X obj 305 450 outlet~; #X obj 495 449 outlet~; #X obj 305 355 expr~ ($v1 * $v3) - ($v2 * $v4) \; ($v2 * $v3) + ($v1 * $v4); #X obj 216 241 cnv 15 150 40 empty empty empty 20 12 0 14 -260059 -66577 0; #X text 163 352 Soma de Fase por; #X text 145 368 Multiplicação Complexa; #X text 17 152 Diferença de Fase por; #X text 31 173 Divisão Complexa; #X text 362 449 Parte Real; #X text 553 447 Parte Imaginária; #X text 154 35 Saída Anterior; #X obj 291 28 cnv 15 260 80 empty empty empty 20 12 0 14 -261234 -66577 0; #X obj 301 67 inlet~; #X obj 364 67 inlet~; #X obj 431 67 inlet~; #X obj 494 67 inlet~; #X text 322 46 Traseira; #X text 446 45 Dianteira; #X obj 175 67 inlet~; #X obj 238 67 inlet~; #X text 36 214 fase = (anteior - traseira); #X text 60 420 fase = (anteior - traseira + dianteira); #X text 71 300 amplitudes normalizadas em um:; #X text 101 403 amplitude = dianteira; #X obj 175 156 expr~ ($v1 * $v3) + ($v2 * $v4) \; ($v2 * $v3) - ($v1 * $v4); #N canvas 228 78 821 358 phase_lock 0; #X obj 385 133 lrshift~ 1; #X obj 300 133 lrshift~ -1; #X obj 285 255 outlet~; #X obj 283 47 inlet~; #X obj 157 137 lrshift~ 1; #X obj 72 137 lrshift~ -1; #X obj 57 259 outlet~; #X obj 55 51 inlet~; #X text 64 29 real; #X text 277 27 imaginária; #X text 396 173 O [lrshift~] desloca o bloco do sinal um sample à direita (argumento igual a 1) e outra cópia à esquerda (-1). Então esses blocos são somados e adicionados ao sinal original.; #X text 397 228 Isso faz com que o valor de cada amostra seja adicionado aos valores das amostras vizinhas!; #X obj 285 225 +~; #X obj 300 189 +~; #X obj 72 193 +~; #X obj 57 229 +~; #X connect 0 0 13 1; #X connect 1 0 13 0; #X connect 3 0 0 0; #X connect 3 0 1 0; #X connect 3 0 12 0; #X connect 4 0 14 1; #X connect 5 0 14 0; #X connect 7 0 4 0; #X connect 7 0 5 0; #X connect 7 0 15 0; #X connect 12 0 2 0; #X connect 13 0 12 1; #X connect 14 0 15 1; #X connect 15 0 6 0; #X restore 238 252 pd phase_lock; #X text 78 251 Trancamento de fases:; #N canvas 362 104 641 244 Normalizar 0; #X obj 298 180 outlet~; #X obj 31 187 outlet~; #X obj 273 31 inlet~; #X obj 42 29 inlet~; #X obj 31 127 expr~ $v1 / sqrt(pow ($v1 \, 2) + pow($v2 \, 2)) \; $v2 / sqrt(pow ($v1 \, 2) + pow($v2 \, 2)) \;; #X obj 42 71 expr~ if($v1 == 0 && $v2 == 0 \, 1 \, $v1) \; $v2; #X text 306 74 No caso de ambas as partes = 0: Parte Real = 1; #X text 324 125 Dividir parte real e imaginária pela amplitude \; Amplitudes são normalizadas em um.; #X connect 2 0 5 1; #X connect 3 0 5 0; #X connect 4 0 1 0; #X connect 4 1 0 0; #X connect 5 0 4 0; #X connect 5 1 4 1; #X restore 266 301 pd Normalizar; #X connect 5 0 3 0; #X connect 5 1 4 0; #X connect 15 0 27 2; #X connect 16 0 27 3; #X connect 17 0 5 2; #X connect 18 0 5 3; #X connect 21 0 27 0; #X connect 22 0 27 1; #X connect 27 0 28 0; #X connect 27 1 28 1; #X connect 28 0 30 0; #X connect 28 1 30 1; #X connect 30 0 5 0; #X connect 30 1 5 1; #X restore 244 511 pd Acúmulo-de-Fase(com_Phase-Lock); #X obj 93 312 v window_ms_\$0; #X obj 52 226 r \$0-window; #X obj 93 247 expr $f1 / sr_Khz \; $f1; #X obj 198 313 v window_\$0; #X obj 456 605 expr~ $v1 * 2 / (window_\$0 * 3); #X obj 52 399 s \$0-cents; #X obj 370 464 rfft~; #X obj 370 431 *~; #X obj 471 426 tabreceive~ \$0-hann; #X obj 418 478 rfft~; #X obj 418 454 *~; #X obj 52 247 t b f; #X msg 291 248 \$1 \, \$2 \$3; #X obj 424 129 v ratio_\$0; #X obj 291 276 vline~; #X obj 522 542 table \$0-re 1024; #X obj 522 561 table \$0-im 1024; #X obj 521 481 cnv 15 98 48 empty empty empty 20 12 0 14 -233145 -66577 0; #N canvas 0 50 450 300 (subpatch) 0; #X array \$0-hann 2048 float 1; #A 0 0 9.41753e-006 1.88351e-005 2.82228e-005 3.76403e-005 6.58631e-005 9.41157e-005 0.000122368 0.000150591 0.000197649 0.000244677 0.000291735 0.000338793 0.000404656 0.000470519 0.000536412 0.000602275 0.000686944 0.000771612 0.00085628 0.000940949 0.00104439 0.00114787 0.00125134 0.00135478 0.001477 0.00159925 0.00172147 0.00184369 0.00198469 0.00212568 0.00226665 0.00240764 0.00256735 0.00272709 0.0028868 0.00304651 0.00322494 0.00340337 0.00358179 0.00376022 0.00395733 0.00415444 0.00435156 0.00454867 0.00476444 0.00498021 0.00519598 0.00541174 0.00564614 0.00588053 0.0061149 0.0063493 0.00660226 0.00685525 0.00710821 0.00736117 0.00763267 0.0079042 0.00817573 0.00844723 0.00873727 0.0090273 0.00931731 0.00960734 0.00991583 0.0102243 0.0105328 0.0108413 0.0111682 0.0114951 0.011822 0.0121489 0.0124942 0.0128395 0.0131847 0.01353 0.0138936 0.0142572 0.0146208 0.0149843 0.0153662 0.015748 0.0161299 0.0165117 0.0169118 0.0173118 0.0177119 0.0181119 0.0185301 0.0189483 0.0193665 0.0197847 0.020221 0.0206572 0.0210935 0.0215298 0.0219841 0.0224383 0.0228927 0.0233469 0.0238191 0.0242914 0.0247636 0.0252359 0.025726 0.0262161 0.0267062 0.0271963 0.0277042 0.0282121 0.02872 0.0292279 0.0297535 0.0302792 0.0308048 0.0313304 0.0318737 0.032417 0.0329602 0.0335035 0.0340644 0.0346252 0.0351861 0.0357469 0.0363252 0.0369035 0.0374818 0.0380601 0.0386558 0.0392516 0.0398473 0.040443 0.041056 0.041669 0.042282 0.042895 0.0435252 0.0441554 0.0447857 0.0454159 0.0460632 0.0467106 0.0473579 0.0480052 0.0486696 0.0493339 0.0499983 0.0506626 0.0513439 0.0520252 0.0527064 0.0533877 0.0540858 0.0547839 0.0554819 0.05618 0.0568948 0.0576096 0.0583244 0.0590392 0.0597706 0.060502 0.0612334 0.0619648 0.0627127 0.0634605 0.0642084 0.0649563 0.0657206 0.0664848 0.0672491 0.0680134 0.0687939 0.0695744 0.070355 0.0711355 0.0719322 0.0727288 0.0735255 0.0743222 0.0751349 0.0759476 0.0767603 0.077573 0.0784016 0.0792302 0.0800588 0.0808874 0.0817318 0.0825762 0.0834205 0.0842649 0.085125 0.085985 0.086845 0.0877051 0.0885806 0.0894562 0.0903318 0.0912073 0.0920983 0.0929892 0.0938802 0.0947711 0.0956773 0.0965835 0.0974897 0.0983959 0.0993173 0.100239 0.10116 0.102081 0.103018 0.103954 0.10489 0.105826 0.106778 0.107729 0.10868 0.109631 0.110597 0.111563 0.112529 0.113494 0.114475 0.115455 0.116436 0.117416 0.118411 0.119406 0.1204 0.121395 0.122404 0.123413 0.124422 0.125431 0.126455 0.127478 0.128501 0.129524 0.130561 0.131598 0.132635 0.133672 0.134723 0.135774 0.136825 0.137876 0.138941 0.140005 0.14107 0.142134 0.143212 0.14429 0.145368 0.146446 0.147537 0.148629 0.14972 0.150811 0.151916 0.15302 0.154125 0.155229 0.156347 0.157464 0.158582 0.159699 0.160829 0.161959 0.16309 0.16422 0.165363 0.166506 0.167649 0.168792 0.169947 0.171102 0.172258 0.173413 0.174581 0.175748 0.176916 0.178084 0.179263 0.180443 0.181623 0.182803 0.183995 0.185186 0.186378 0.18757 0.188773 0.189977 0.19118 0.192384 0.193599 0.194814 0.196029 0.197244 0.19847 0.199697 0.200923 0.20215 0.203387 0.204625 0.205863 0.2071 0.208349 0.209598 0.210847 0.212095 0.213355 0.214614 0.215874 0.217133 0.218404 0.219674 0.220944 0.222214 0.223495 0.224775 0.226056 0.227337 0.228628 0.229919 0.23121 0.2325 0.233801 0.235102 0.236403 0.237704 0.239015 0.240326 0.241637 0.242948 0.244268 0.245589 0.24691 0.24823 0.24956 0.25089 0.25222 0.25355 0.25489 0.256229 0.257568 0.258907 0.260256 0.261604 0.262953 0.264301 0.265658 0.267015 0.268373 0.26973 0.271096 0.272462 0.273828 0.275194 0.276568 0.277942 0.279317 0.280691 0.282074 0.283457 0.284839 0.286222 0.287613 0.289003 0.290394 0.291785 0.293183 0.294582 0.29598 0.297379 0.298785 0.300191 0.301597 0.303003 0.304417 0.305831 0.307244 0.308658 0.310079 0.311499 0.31292 0.314341 0.315769 0.317196 0.318624 0.320052 0.321487 0.322921 0.324356 0.32579 0.327231 0.328672 0.330113 0.331555 0.333002 0.334449 0.335897 0.337344 0.338798 0.340252 0.341705 0.343159 0.344618 0.346078 0.347537 0.348997 0.350462 0.351927 0.353392 0.354857 0.356328 0.357798 0.359269 0.36074 0.362216 0.363691 0.365167 0.366643 0.368124 0.369605 0.371086 0.372567 0.374052 0.375538 0.377024 0.37851 0.38 0.38149 0.38298 0.384471 0.385965 0.38746 0.388954 0.390449 0.391948 0.393447 0.394945 0.396444 0.397947 0.399449 0.400952 0.402455 0.403961 0.405467 0.406973 0.40848 0.40999 0.411499 0.413009 0.414519 0.416032 0.417545 0.419058 0.420571 0.422087 0.423603 0.425119 0.426635 0.428153 0.429672 0.431191 0.432709 0.434231 0.435752 0.437273 0.438794 0.440318 0.441842 0.443365 0.444889 0.446414 0.44794 0.449466 0.450991 0.452519 0.454046 0.455574 0.457101 0.45863 0.460159 0.461688 0.463218 0.464748 0.466279 0.467809 0.46934 0.470871 0.472403 0.473934 0.475466 0.476999 0.478531 0.480064 0.481596 0.48313 0.484663 0.486196 0.487729 0.489263 0.490797 0.49233 0.493864 0.495398 0.496932 0.498466 0.5 0.501534 0.503068 0.504602 0.506136 0.507669 0.509203 0.510737 0.512271 0.513804 0.515337 0.51687 0.518404 0.519936 0.521469 0.523001 0.524534 0.526066 0.527597 0.529129 0.53066 0.532191 0.533721 0.535252 0.536782 0.538311 0.539841 0.54137 0.542899 0.544426 0.545954 0.547481 0.549009 0.550534 0.55206 0.553586 0.555111 0.556635 0.558158 0.559682 0.561205 0.562727 0.564248 0.565769 0.56729 0.568809 0.570328 0.571847 0.573365 0.574881 0.576397 0.577913 0.579429 0.580942 0.582455 0.583968 0.585481 0.586991 0.588501 0.59001 0.59152 0.593026 0.594533 0.596039 0.597545 0.599048 0.600551 0.602053 0.603556 0.605055 0.606553 0.608052 0.609551 0.611045 0.61254 0.614035 0.615529 0.61702 0.61851 0.62 0.62149 0.622976 0.624462 0.625947 0.627433 0.628914 0.630395 0.631876 0.633357 0.634833 0.636308 0.637784 0.63926 0.640731 0.642201 0.643672 0.645143 0.646608 0.648073 0.649538 0.651003 0.652463 0.653922 0.655382 0.656841 0.658295 0.659748 0.661202 0.662656 0.664103 0.66555 0.666998 0.668445 0.669886 0.671328 0.672769 0.67421 0.675644 0.677079 0.678513 0.679948 0.681376 0.682804 0.684231 0.685659 0.68708 0.688501 0.689921 0.691342 0.692756 0.694169 0.695583 0.696997 0.698403 0.699809 0.701215 0.702621 0.70402 0.705418 0.706817 0.708215 0.709606 0.710997 0.712387 0.713778 0.715161 0.716543 0.717926 0.719309 0.720683 0.722057 0.723432 0.724806 0.726172 0.727538 0.728904 0.73027 0.731627 0.732984 0.734342 0.735699 0.737047 0.738396 0.739744 0.741092 0.742432 0.743771 0.74511 0.74645 0.74778 0.74911 0.75044 0.75177 0.75309 0.754411 0.755731 0.757052 0.758363 0.759674 0.760985 0.762295 0.763596 0.764897 0.766198 0.767499 0.76879 0.770081 0.771372 0.772663 0.773944 0.775224 0.776505 0.777786 0.779056 0.780326 0.781596 0.782867 0.784126 0.785386 0.786645 0.787905 0.789153 0.790402 0.791651 0.7929 0.794137 0.795375 0.796613 0.79785 0.799077 0.800303 0.80153 0.802756 0.803971 0.805186 0.806401 0.807616 0.80882 0.810023 0.811227 0.812431 0.813622 0.814814 0.816006 0.817197 0.818377 0.819557 0.820737 0.821916 0.823084 0.824252 0.825419 0.826587 0.827743 0.828898 0.830053 0.831209 0.832352 0.833494 0.834637 0.83578 0.83691 0.838041 0.839171 0.840301 0.841419 0.842536 0.843654 0.844771 0.845876 0.84698 0.848084 0.849189 0.85028 0.851372 0.852463 0.853554 0.854632 0.85571 0.856788 0.857866 0.858931 0.859995 0.86106 0.862124 0.863175 0.864226 0.865277 0.866328 0.867365 0.868402 0.869439 0.870476 0.871499 0.872523 0.873546 0.874569 0.875578 0.876587 0.877596 0.878605 0.8796 0.880595 0.88159 0.882584 0.883565 0.884545 0.885526 0.886506 0.887472 0.888438 0.889404 0.890369 0.891321 0.892272 0.893223 0.894174 0.89511 0.896047 0.896983 0.897919 0.898841 0.899762 0.900683 0.901605 0.902511 0.903417 0.904323 0.905229 0.90612 0.907011 0.907902 0.908793 0.909669 0.910544 0.91142 0.912295 0.913155 0.914015 0.914876 0.915736 0.91658 0.917424 0.918269 0.919113 0.919942 0.92077 0.921599 0.922428 0.92324 0.924053 0.924866 0.925678 0.926475 0.927272 0.928068 0.928865 0.929646 0.930426 0.931207 0.931987 0.932751 0.933516 0.93428 0.935044 0.935792 0.93654 0.937288 0.938036 0.938767 0.939499 0.94023 0.940961 0.941676 0.942391 0.943106 0.94382 0.944519 0.945217 0.945915 0.946613 0.947294 0.947975 0.948657 0.949338 0.950002 0.950667 0.951331 0.951995 0.952643 0.95329 0.953937 0.954585 0.955215 0.955845 0.956475 0.957106 0.957718 0.958332 0.958945 0.959558 0.960153 0.960749 0.961345 0.96194 0.962519 0.963097 0.963675 0.964254 0.964814 0.965375 0.965936 0.966497 0.96704 0.967584 0.968127 0.96867 0.969196 0.969721 0.970247 0.970773 0.971281 0.971788 0.972296 0.972804 0.973294 0.973784 0.974275 0.974765 0.975237 0.975709 0.976181 0.976654 0.977108 0.977562 0.978016 0.978471 0.978907 0.979343 0.979779 0.980216 0.980634 0.981052 0.98147 0.981889 0.982289 0.982689 0.983089 0.983489 0.983871 0.984252 0.984634 0.985016 0.98538 0.985743 0.986107 0.98647 0.986816 0.987161 0.987506 0.987852 0.988178 0.988505 0.988832 0.989159 0.989468 0.989776 0.990085 0.990393 0.990683 0.990973 0.991263 0.991553 0.991825 0.992096 0.992368 0.992639 0.992892 0.993145 0.993398 0.993651 0.993885 0.99412 0.994354 0.994589 0.994804 0.99502 0.995236 0.995452 0.995649 0.995846 0.996043 0.99624 0.996418 0.996597 0.996775 0.996954 0.997113 0.997273 0.997433 0.997593 0.997734 0.997874 0.998016 0.998156 0.998279 0.998401 0.998523; #A 1000 0.998645 0.998749 0.998852 0.998956 0.999059 0.999144 0.999228 0.999313 0.999398 0.999464 0.99953 0.999595 0.999661 0.999708 0.999755 0.999802 0.999849 0.999878 0.999906 0.999934 0.999962 0.999972 0.999981 0.999991 1 0.999991 0.999981 0.999972 0.999962 0.999934 0.999906 0.999878 0.999849 0.999802 0.999755 0.999708 0.999661 0.999595 0.999529 0.999463 0.999398 0.999313 0.999228 0.999144 0.999059 0.998955 0.998852 0.998749 0.998645 0.998523 0.998401 0.998278 0.998156 0.998015 0.997874 0.997733 0.997592 0.997432 0.997273 0.997113 0.996953 0.996775 0.996596 0.996418 0.996239 0.996042 0.995845 0.995648 0.995451 0.995235 0.995019 0.994804 0.994588 0.994354 0.994119 0.993885 0.99365 0.993397 0.993144 0.992891 0.992638 0.992367 0.992095 0.991824 0.991552 0.991262 0.990972 0.990682 0.990392 0.990084 0.989775 0.989467 0.989158 0.988831 0.988504 0.988177 0.987851 0.987505 0.98716 0.986815 0.986469 0.986106 0.985742 0.985379 0.985015 0.984633 0.984251 0.983869 0.983488 0.983088 0.982687 0.982287 0.981887 0.981469 0.981051 0.980633 0.980215 0.979778 0.979342 0.978906 0.978469 0.978015 0.977561 0.977107 0.976652 0.97618 0.975708 0.975236 0.974763 0.974273 0.973783 0.973293 0.972803 0.972295 0.971787 0.971279 0.970771 0.970245 0.96972 0.969194 0.968669 0.968125 0.967582 0.967039 0.966495 0.965935 0.965374 0.964813 0.964252 0.963674 0.963095 0.962517 0.961939 0.961343 0.960747 0.960152 0.959556 0.958943 0.95833 0.957717 0.957104 0.956474 0.955843 0.955213 0.954583 0.953936 0.953288 0.952641 0.951993 0.951329 0.950665 0.95 0.949336 0.948655 0.947973 0.947292 0.946611 0.945913 0.945215 0.944517 0.943818 0.943104 0.942389 0.941674 0.940959 0.940228 0.939496 0.938765 0.938034 0.937286 0.936538 0.93579 0.935042 0.934278 0.933514 0.932749 0.931985 0.931204 0.930424 0.929643 0.928863 0.928066 0.927269 0.926473 0.925676 0.924863 0.924051 0.923238 0.922425 0.921597 0.920768 0.919939 0.919111 0.918266 0.917422 0.916578 0.915733 0.914873 0.914013 0.913153 0.912293 0.911417 0.910542 0.909666 0.908791 0.9079 0.907009 0.906118 0.905227 0.904321 0.903414 0.902508 0.901602 0.900681 0.899759 0.898838 0.897917 0.89698 0.896044 0.895108 0.894171 0.89322 0.892269 0.891318 0.890367 0.889401 0.888435 0.887469 0.886503 0.885523 0.884542 0.883562 0.882582 0.881587 0.880592 0.879597 0.878602 0.877593 0.876584 0.875575 0.874566 0.873543 0.87252 0.871497 0.870473 0.869436 0.868399 0.867362 0.866325 0.865274 0.864223 0.863172 0.862121 0.861057 0.859992 0.858928 0.857863 0.856785 0.855707 0.854629 0.853551 0.85246 0.851368 0.850277 0.849186 0.848081 0.846977 0.845872 0.844768 0.84365 0.842533 0.841416 0.840298 0.839168 0.838037 0.836907 0.835777 0.834634 0.833491 0.832348 0.831205 0.83005 0.828895 0.827739 0.826584 0.825416 0.824249 0.823081 0.821913 0.820733 0.819554 0.818374 0.817194 0.816002 0.814811 0.813619 0.812427 0.811224 0.81002 0.808817 0.807613 0.806398 0.805183 0.803968 0.802753 0.801526 0.8003 0.799073 0.797847 0.796609 0.795372 0.794134 0.792896 0.791647 0.790399 0.78915 0.787901 0.786642 0.785382 0.784123 0.782863 0.781593 0.780323 0.779052 0.777782 0.776502 0.775221 0.77394 0.77266 0.771369 0.770078 0.768787 0.767496 0.766195 0.764894 0.763593 0.762292 0.760981 0.75967 0.758359 0.757048 0.755728 0.754407 0.753087 0.751766 0.750436 0.749106 0.747776 0.746446 0.745107 0.743767 0.742428 0.741089 0.73974 0.738392 0.737044 0.735695 0.734338 0.732981 0.731623 0.730266 0.7289 0.727534 0.726168 0.724802 0.723428 0.722054 0.720679 0.719305 0.717922 0.71654 0.715157 0.713774 0.712384 0.710993 0.709602 0.708211 0.706813 0.705414 0.704016 0.702617 0.701211 0.699805 0.698399 0.696993 0.695579 0.694165 0.692752 0.691338 0.689917 0.688497 0.687076 0.685655 0.684227 0.6828 0.681372 0.679944 0.678509 0.677075 0.67564 0.674206 0.672765 0.671324 0.669882 0.668441 0.666994 0.665546 0.664099 0.662652 0.661198 0.659744 0.658291 0.656837 0.655378 0.653918 0.652459 0.650999 0.649534 0.648069 0.646604 0.645139 0.643668 0.642197 0.640727 0.639256 0.63778 0.636304 0.634828 0.633353 0.631872 0.630391 0.62891 0.627429 0.625943 0.624458 0.622972 0.621486 0.619996 0.618506 0.617015 0.615525 0.614031 0.612536 0.611041 0.609547 0.608048 0.606549 0.605051 0.603552 0.602049 0.600546 0.599044 0.597541 0.596035 0.594529 0.593022 0.591516 0.590006 0.588496 0.586987 0.585477 0.583964 0.582451 0.580938 0.579425 0.577909 0.576393 0.574877 0.573361 0.571842 0.570324 0.568805 0.567286 0.565765 0.564244 0.562723 0.561201 0.559678 0.558154 0.556631 0.555107 0.553581 0.552056 0.55053 0.549004 0.547477 0.545949 0.544422 0.542894 0.541365 0.539836 0.538307 0.536778 0.535248 0.533717 0.532187 0.530656 0.529124 0.527593 0.526061 0.52453 0.522997 0.521464 0.519932 0.518399 0.516866 0.515333 0.5138 0.512266 0.510733 0.509199 0.507665 0.506131 0.504598 0.503064 0.50153 0.499996 0.498462 0.496928 0.495394 0.49386 0.492326 0.490792 0.489259 0.487725 0.486192 0.484659 0.483125 0.481592 0.480059 0.478527 0.476994 0.475462 0.47393 0.472399 0.470867 0.469335 0.467805 0.466274 0.464744 0.463213 0.461684 0.460155 0.458626 0.457097 0.455569 0.454042 0.452514 0.450987 0.449461 0.447936 0.44641 0.444884 0.443361 0.441837 0.440314 0.43879 0.437269 0.435748 0.434226 0.432705 0.431186 0.429668 0.428149 0.42663 0.425114 0.423598 0.422082 0.420566 0.419053 0.417541 0.416028 0.414515 0.413005 0.411495 0.409985 0.408476 0.406969 0.405463 0.403957 0.40245 0.400948 0.399445 0.397942 0.39644 0.394941 0.393442 0.391944 0.390445 0.38895 0.387456 0.385961 0.384466 0.382976 0.381486 0.379996 0.378505 0.37702 0.375534 0.374048 0.372563 0.371082 0.369601 0.36812 0.366639 0.365163 0.363687 0.362212 0.360736 0.359265 0.357794 0.356324 0.354853 0.353388 0.351923 0.350458 0.348993 0.347533 0.346074 0.344614 0.343155 0.341701 0.340247 0.338794 0.33734 0.335893 0.334445 0.332998 0.331551 0.330109 0.328668 0.327227 0.325786 0.324352 0.322917 0.321483 0.320048 0.31862 0.317192 0.315765 0.314337 0.312916 0.311495 0.310075 0.308654 0.30724 0.305827 0.304413 0.302999 0.301593 0.300187 0.298781 0.297375 0.295976 0.294578 0.293179 0.291781 0.29039 0.288999 0.287609 0.286218 0.284835 0.283453 0.28207 0.280687 0.279313 0.277939 0.276564 0.27519 0.273824 0.272458 0.271092 0.269726 0.268369 0.267012 0.265654 0.264297 0.262949 0.2616 0.260252 0.258904 0.257564 0.256225 0.254886 0.253547 0.252217 0.250886 0.249556 0.248226 0.246906 0.245585 0.244265 0.242944 0.241633 0.240323 0.239012 0.237701 0.2364 0.235099 0.233798 0.232497 0.231206 0.229915 0.228624 0.227333 0.226053 0.224772 0.223491 0.222211 0.22094 0.21967 0.2184 0.21713 0.21587 0.214611 0.213351 0.212092 0.210843 0.209594 0.208346 0.207097 0.205859 0.204622 0.203384 0.202146 0.20092 0.199693 0.198467 0.19724 0.196025 0.19481 0.193595 0.19238 0.191177 0.189973 0.18877 0.187566 0.186374 0.185183 0.183991 0.182799 0.181619 0.18044 0.17926 0.17808 0.176913 0.175745 0.174577 0.17341 0.172254 0.171099 0.169943 0.168788 0.167645 0.166502 0.165359 0.164217 0.163086 0.161956 0.160826 0.159696 0.158578 0.157461 0.156343 0.155226 0.154121 0.153017 0.151912 0.150808 0.149717 0.148625 0.147534 0.146443 0.145365 0.144287 0.143209 0.142131 0.141066 0.140002 0.138937 0.137873 0.136822 0.135771 0.13472 0.133669 0.132632 0.131595 0.130558 0.129521 0.128498 0.127474 0.126451 0.125428 0.124419 0.12341 0.122401 0.121392 0.120397 0.119402 0.118408 0.117413 0.116432 0.115452 0.114472 0.113491 0.112525 0.11156 0.110594 0.109628 0.108677 0.107726 0.106774 0.105823 0.104887 0.103951 0.103014 0.102078 0.101157 0.100236 0.0993142 0.0983929 0.0974867 0.0965805 0.0956743 0.0947681 0.0938772 0.0929862 0.0920953 0.0912043 0.0903288 0.0894532 0.0885777 0.0877021 0.0868421 0.0859821 0.085122 0.084262 0.0834177 0.0825733 0.0817289 0.0808845 0.080056 0.0792273 0.0783987 0.0775701 0.0767575 0.0759448 0.0751321 0.0743194 0.0735227 0.0727261 0.0719294 0.0711327 0.0703522 0.0695717 0.0687912 0.0680107 0.0672464 0.0664822 0.0657179 0.0649537 0.0642058 0.0634579 0.06271 0.0619622 0.0612308 0.0604994 0.059768 0.0590366 0.0583218 0.0576071 0.0568923 0.0561775 0.0554794 0.0547814 0.0540833 0.0533852 0.052704 0.0520227 0.0513414 0.0506602 0.0499958 0.0493315 0.0486672 0.0480028 0.0473555 0.0467082 0.0460609 0.0454136 0.0447834 0.0441532 0.0435229 0.0428927 0.0422797 0.0416667 0.0410537 0.0404407 0.039845 0.0392494 0.0386536 0.038058 0.0374796 0.0369014 0.036323 0.0357447 0.0351839 0.0346231 0.0340623 0.0335014 0.0329582 0.0324149 0.0318717 0.0313284 0.0308028 0.0302772 0.0297516 0.0292259 0.0287181 0.0282102 0.0277023 0.0271944 0.0267043 0.0262142 0.0257241 0.025234 0.0247618 0.0242896 0.0238174 0.0233451 0.0228909 0.0224366 0.0219823 0.0215281 0.0210918 0.0206555 0.0202193 0.019783 0.0193648 0.0189467 0.0185285 0.0181103 0.0177103 0.0173103 0.0169102 0.0165102 0.0161284 0.0157465 0.0153647 0.0149829 0.0146193 0.0142557 0.0138922 0.0135286 0.0131833 0.0128381 0.0124928 0.0121476 0.0118207 0.0114938 0.0111669 0.01084 0.0105315 0.0102231 0.00991464 0.00960615 0.00931615 0.00902611 0.0087361 0.0084461 0.0081746 0.0079031 0.0076316 0.0073601 0.00710714 0.00685418 0.00660124 0.00634828 0.00611392 0.00587955 0.00564519; #A 2000 0.00541082 0.00519508 0.00497931 0.00476357 0.00454783 0.00435072 0.00415364 0.00395656 0.00375944 0.00358105 0.00340265 0.00322422 0.00304583 0.00288612 0.00272644 0.00256673 0.00240701 0.00226605 0.00212508 0.00198412 0.00184315 0.00172094 0.00159872 0.00147653 0.00135431 0.00125086 0.00114745 0.00104401 0.000940561 0.000855923 0.000771254 0.000686586 0.000601947 0.000536114 0.000470281 0.000404418 0.000338584 0.000291556 0.000244498 0.00019747 0.000150442 0.000122219 9.39965e-005 6.58035e-005 3.75807e-005 2.8193e-005 1.87755e-005 9.38773e-006; #X coords 0 1 2047 0 100 50 1; #X restore 520 480 graph; #X obj 69 339 cnv 15 70 47 empty empty empty 20 12 0 14 -233145 -66577 0; #X obj 79 366 block~; #X msg 79 345 set \$1 4; #X obj 424 107 expr pow(2 \, $f1/1200); #X floatatom 424 55 0 0 0 0 - - -; #X obj 46 98 bang~; #X obj 90 125 +; #X obj 46 137 f; #X floatatom 105 58 5 0 0 0 - - -, f 5; #X text 141 56 speed (%); #X obj 105 10 inlet; #X text 385 55 cents; #X obj 100 288 s \$0-window_ms; #X obj 436 167 r \$0-window_ms; #X obj 46 173 expr $f1 / overlap_\$0 \; ($f1 + ((1 - ratio_\$0) * window_ms_\$0)) / overlap_\$0; #X obj 90 149 zexy/wrap; #X obj 436 193 expr $f1 / overlap_\$0; #X obj 141 127 r \$0-buff_ms; #X obj 74 85 expr ((1 - $f1/100) * window_ms_\$0) / overlap_\$0; #X obj 64 643 samplerate~; #X obj 64 666 / 1000; #X obj 64 690 v sr_Khz; #X obj 64 553 \$0; #X obj 64 530 loadbang; #X obj 142 665 v overlap_\$0; #X msg 142 639 4; #X msg 64 575 bang \; \$1-window 2048 \; \$1-cents -100 \; \$1-speed 90; #X obj 589 328 loadbang; #X msg 589 351 60000; #X obj 589 377 s \$0-buff_ms; #X obj 291 354 pong~ 1; #X obj 418 354 pong~ 1; #X obj 457 328 r \$0-buff_ms; #X obj 290 378 vd~ \$0-ring_buffer; #X obj 418 377 vd~ \$0-ring_buffer; #X text 476 353 buffer size =>; #X obj 645 284 cnv 12 12 12 empty empty 4 2 8 0 14 -259737 -66577 0 ; #X obj 201 175 cnv 12 12 12 empty empty 1 2 8 0 14 -259737 -66577 0 ; #X obj 383 177 cnv 12 12 12 empty empty 2 2 8 0 14 -259737 -66577 0 ; #X obj 570 195 cnv 12 12 12 empty empty 3 2 8 0 14 -259737 -66577 0 ; #X obj 533 58 cnv 12 12 12 empty empty * 2 8 0 14 -259737 -66577 0 ; #X text 554 56 Divide it all by overlap!; #X obj 484 233 expr~ window_ms_\$0 / overlap_\$0; #X obj 484 280 expr~ $v1 / overlap_\$0; #X obj 484 255 expr~ $v1 * ratio_\$0; #X obj 633 255 cnv 12 12 12 empty empty * 2 8 0 14 -204800 -66577 0 ; #X obj 534 78 cnv 12 12 12 empty empty * 2 8 0 14 -204800 -66577 0 ; #X text 553 74 Times ratio; #X obj 788 83 cnv 12 12 12 empty empty 1 2 8 0 14 -259737 -66577 0 ; #X obj 788 138 cnv 12 12 12 empty empty 2 2 8 0 14 -259737 -66577 0 ; #X obj 789 173 cnv 12 12 12 empty empty 3 2 8 0 14 -259737 -66577 0 ; #X obj 789 278 cnv 12 12 12 empty empty * 2 8 0 14 -204800 -66577 0 ; #X obj 789 209 cnv 12 12 12 empty empty 4 2 8 0 14 -259737 -66577 0 ; #X text 813 136 same as above; #X text 811 271 pitchshifting is actually done (in both our patches) by stretching/contracting the reading size. to get the back window in phase with the front on you have to consider the stretching/contracting for the offset.; #X text 812 77 because ms are sample rate depended. e.g. in this subpatch 1000 ms is 176400 samples where for the [delwrite~] outside the subpatch it's 44100 samples.; #X obj 324 87 cnv 12 12 12 empty empty x 2 8 0 14 -4034 -66577 0; #X text 814 168 analogues to x.; #X text 812 205 same as 1 and 2 curiously you have to divide by the overlapping factor twice. the first one is because you want an offset of 1/4 window \, the second one is to correct for the upsampling.; #X connect 0 0 62 0; #X connect 1 0 25 0; #X connect 2 0 36 0; #X connect 6 0 7 0; #X connect 7 0 17 0; #X connect 10 0 12 0; #X connect 11 0 12 1; #X connect 12 0 6 0; #X connect 12 0 8 0; #X connect 12 1 6 1; #X connect 12 1 9 0; #X connect 14 0 24 0; #X connect 15 0 13 0; #X connect 15 0 44 0; #X connect 15 1 16 0; #X connect 17 0 5 0; #X connect 19 0 12 2; #X connect 19 1 12 3; #X connect 20 0 19 0; #X connect 21 0 20 1; #X connect 21 0 23 1; #X connect 21 0 7 1; #X connect 22 0 12 4; #X connect 22 1 12 5; #X connect 23 0 22 0; #X connect 24 0 18 0; #X connect 24 1 15 0; #X connect 24 1 34 0; #X connect 25 0 27 0; #X connect 27 0 0 0; #X connect 27 0 63 0; #X connect 34 0 33 0; #X connect 35 0 26 0; #X connect 36 0 35 0; #X connect 37 0 39 0; #X connect 38 0 47 0; #X connect 39 0 38 0; #X connect 39 0 46 0; #X connect 40 0 50 0; #X connect 42 0 40 0; #X connect 45 0 48 0; #X connect 46 0 1 0; #X connect 46 1 1 1; #X connect 47 0 39 1; #X connect 48 0 1 2; #X connect 49 0 47 1; #X connect 50 0 38 1; #X connect 51 0 52 0; #X connect 52 0 53 0; #X connect 54 0 58 0; #X connect 55 0 54 0; #X connect 57 0 56 0; #X connect 58 0 51 0; #X connect 58 0 57 0; #X connect 59 0 60 0; #X connect 60 0 61 0; #X connect 62 0 65 0; #X connect 63 0 66 0; #X connect 64 0 63 2; #X connect 64 0 62 2; #X connect 65 0 20 0; #X connect 66 0 23 0; #X connect 74 0 76 0; #X connect 75 0 0 1; #X connect 76 0 75 0; #X restore 302 350 pd pvoc_Shift-Stretch; #X connect 0 0 22 2; #X connect 1 0 22 0; #X connect 2 0 22 1; #X connect 4 0 2 0; #X connect 5 0 2 0; #X connect 6 0 2 0; #X connect 10 0 23 1; #X connect 10 0 0 0; #X connect 12 0 10 0; #X connect 13 0 23 0; #X connect 13 0 1 0; #X connect 15 0 17 0; #X connect 16 0 8 0; #X connect 17 0 18 0; #X connect 18 0 19 0; #X connect 19 0 16 0; #X connect 20 0 17 1; #X connect 21 0 15 0; #X connect 22 0 7 0; #X connect 22 0 7 1; #X connect 23 0 11 0; #X connect 23 0 11 1;
_______________________________________________ [email protected] mailing list UNSUBSCRIBE and account-management -> http://lists.puredata.info/listinfo/pd-list
