Forums > MaxMSP

stutter~ clicks

January 1, 2008 | 2:10 pm

Dear all,

just a quick question… I have been looking at the stutter~ object, and although it performs really well, I seem to get lots of clicking and popping over my output signal, even when it is not in operation (stuttering). I have just been using the stutter~ help file but I get the clicks in this patch too.

When it is not in operation, passing audio through the object works perfectly to start with, but as soon as I change the grain size or playback speed, the clicks appear, most noticeable when the playback speed is very low ( around 0.1). Hope this makes sense…

Is this a common problem with anyone else?

Regards


January 1, 2008 | 4:05 pm

It sounds like you may be having dsp performance issues. Try
adjusting (to a larger size) the signal & i/o vectors, and make sure
‘overdrive’ and ‘scheduler in audio interrupt’ are enabled in the
‘dsp status’ menu. See if that helps.

On Jan 1, 2008, at 7:10 AM, Stuart Binns wrote:

>
> Dear all,
>
>
> just a quick question… I have been looking at the stutter~
> object, and although it performs really well, I seem to get lots of
> clicking and popping over my output signal, even when it is not in
> operation (stuttering). I have just been using the stutter~ help
> file but I get the clicks in this patch too.
>
> When it is not in operation, passing audio through the object works
> perfectly to start with, but as soon as I change the grain size or
> playback speed, the clicks appear, most noticeable when the
> playback speed is very low ( around 0.1). Hope this makes sense…
>
> Is this a common problem with anyone else?

—-
Steven M. Miller
Professor, Contemporary Music Program
College of Santa Fe

Home < http://pubweb.csf.edu/~smill>
SFIFEM <
http://sfifem.csf.edu>
Atrium Sound Space <
http://atrium.csf.edu>
OVOS <
http://pubweb.csf.edu/~smill/ovos.html>
CMP <
http://www.csf.edu/csf/academics/cmp/index.html>


January 1, 2008 | 4:32 pm

Thanks for your repsonce –

Unfortunately your suggestion has not helped me. I am using the stutter object help file to test but still not working correctly…

I have changed the adc~ input to be sfplay~, and I’m just playing a wav fil through it. This is then going into the stutter object. Initially, the grain size is set to 100, and the audio passes trough without any problems. Its when I change this grain size (especially a small grain size) that my original signal is getting distorted. This is all when my audio is not stuttering…

Should the audio entering the stutter object pass through unaltered when the stutter object is not stuttering?

here is the code I’m using…it would be good to know if it is just my computer being silly or if I’m doing something wrong.

If you do try the code below, could you try feeding an audio file through, then try changing the grain size, and also try the playback speed, and see if you hear any regular clicking etc when the file is not stuttering.

Many Thanks….

max v2;
#N vpatcher 58 82 629 464;
#P window setfont "Sans Serif" 9.;
#P window linecount 1;
#P message 81 111 30 196617 open;
#P toggle 125 134 15 0;
#P hidden newex 447 371 45 196617 pcontrol;
#P comment 29 276 65 196617 • start audio;
#P message 97 290 27 196617 stop;
#P message 29 290 65 196617 startwindow;
#P newex 148 328 29 196617 dac~;
#P user panel 14 271 123 43;
#X brgb 255 255 255;
#X frgb 100 202 30;
#X border 2;
#X rounded 0;
#X shadow 0;
#X done;
#P comment 84 208 25 196617 grab;
#P button 113 206 15 0;
#P hidden message 191 158 26 196617 100;
#N sfplay~ 1 120960 0 ;
#P newobj 148 233 44 196617 sfplay~;
#P hidden message 168 159 14 196617 1;
#P hidden newex 168 135 45 196617 loadbang;
#P toggle 168 182 15 0;
#P newex 199 233 51 196617 gate~ 1 1;
#P button 323 158 15 0;
#P newex 148 296 39 196617 *~ 0.2;
#P newex 250 205 44 196617 phasor~;
#P newex 250 180 135 196617 expr ((44100.0 / $i1)*$f2);
#P flonum 323 134 76 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
#P number 227 134 75 9 1 0 1 3 0 0 0 221 221 221 222 222 222 0 0 0;
#P newex 148 266 149 196617 stutter~ 22050 11025 -1 10 1;
#B color 5;
#P comment 216 117 102 196617 Grain Size (samples);
#P comment 322 117 78 196617 Playback Speed;
#P comment 82 185 75 196617 autograb =>;
#P connect 25 0 14 0;
#P connect 24 0 14 0;
#P connect 14 1 3 0;
#P connect 14 0 3 0;
#P fasten 4 0 3 0 232 260 153 260;
#P connect 16 0 3 0;
#P connect 3 0 8 0;
#P connect 8 0 19 0;
#P fasten 20 0 19 0 34 320 153 320;
#P fasten 21 0 19 0 102 320 153 320;
#P connect 8 0 19 1;
#P hidden connect 12 0 13 0;
#P hidden connect 13 0 11 0;
#P hidden connect 12 0 15 0;
#P fasten 11 0 10 0 173 203 204 203;
#P connect 10 0 3 1;
#P hidden connect 15 0 4 0;
#P connect 7 0 10 1;
#P fasten 4 0 6 0 232 176 255 176;
#P fasten 9 0 6 0 328 176 255 176;
#P connect 6 0 7 0;
#P connect 7 0 3 2;
#P hidden connect 13 0 5 0;
#P fasten 5 0 9 0 328 153 328 153;
#P fasten 5 0 6 1 328 152 380 152;
#P pop;


January 1, 2008 | 5:48 pm

I do get clicks when changing the grain and speed settings. I’ve
never used [stutter~] before, so not sure I can be of much help at
this point. I’m not sure if it’s significant, but when I load your
patch I get an error in the Max window: error: ‘start: no such
object. I also get the same clicking behavior on the [stutter~] help
patch, by the way.

On Jan 1, 2008, at 9:32 AM, Stuart Binns wrote:

>
> Thanks for your repsonce -
>
> Unfortunately your suggestion has not helped me. I am using the
> stutter object help file to test but still not working correctly…
>
> I have changed the adc~ input to be sfplay~, and I’m just playing a
> wav fil through it. This is then going into the stutter object.
> Initially, the grain size is set to 100, and the audio passes
> trough without any problems. Its when I change this grain size
> (especially a small grain size) that my original signal is getting
> distorted. This is all when my audio is not stuttering…
>
> Should the audio entering the stutter object pass through
> unaltered when the stutter object is not stuttering?
>
> here is the code I’m using…it would be good to know if it is just
> my computer being silly or if I’m doing something wrong.
>
> If you do try the code below, could you try feeding an audio file
> through, then try changing the grain size, and also try the
> playback speed, and see if you hear any regular clicking etc when
> the file is not stuttering.
>
> Many Thanks….
>
>

—-
Steven M. Miller
Professor, Contemporary Music Program
College of Santa Fe

Home < http://pubweb.csf.edu/~smill>
SFIFEM <
http://sfifem.csf.edu>
Atrium Sound Space <
http://atrium.csf.edu>
OVOS <
http://pubweb.csf.edu/~smill/ovos.html>
CMP <
http://www.csf.edu/csf/academics/cmp/index.html>


December 4, 2008 | 11:28 am

Has anybody got a solution for this?

How would you create a ramp to smooth between iterations?


December 4, 2008 | 8:30 pm

Hi, from what I’ve read I’m not sure your problem has to do with ramps, might be dsp settings or possibly even weirdness in playing sounds at such a low speed.

But feel free to apply this "adjustable-hanning-window" i made long ago which I (probably annoyingly) love to go off about constantly to everyone on this forum:

#P window setfont "Sans Serif" 9.;
#P flonum 487 195 60 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
#P window linecount 1;
#P newex 436 157 61 196617 adstatus sr;
#P comment 454 121 83 196617 • RampTime(MS);
#P newex 245 117 52 196617 change 0.;
#P button 113 242 15 0;
#P flonum 421 119 35 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
#P user scope~ 428 250 531 300 256 3 128 -1. 1. 0 0. 0 0. 102 255 51 135 135 135 0;
#P comment 269 40 139 196617 • choose millisecond duration;
#P newex 137 345 35 196617 *~ 1.;
#B color 5;
#P window setfont Arial 9.;
#N vpatcher 20 74 398 357;
#P window setfont Arial 9.;
#P window linecount 1;
#P comment 308 119 40 131137545 -raja;
#P outlet 22 239 15 0;
#P newex 22 218 86 131137545 index~ ampwindow;
#P newex 22 196 59 131137545 *~ 16384.;
#P newex 22 168 56 131137545 clip~ 0. 1.;
#P newex 91 168 61 131137545 clip~ -1. 0.;
#P newex 91 146 40 131137545 *~ -1.;
#P inlet 22 23 15 0;
#P inlet 120 23 15 0;
#P inlet 150 23 15 0;
#P newex 150 46 25 131137545 t b f;
#P newex 91 125 39 131137545 -~ 99.;
#P newex 120 103 27 131137545 – 1.;
#P newex 120 82 27 131137545 / 1.;
#P window linecount 0;
#P newex 22 104 47 131137545 *~ 100.;
#P comment 178 79 170 131137545 A combination of the groove-ducking example and the granular-synthesis example to achieve a window with variable attack/release.;
#P connect 8 0 1 0;
#P connect 1 0 11 0;
#P connect 11 0 12 0;
#P fasten 10 0 12 0 96 189 27 189;
#P connect 12 0 13 0;
#P connect 13 0 14 0;
#P fasten 2 0 1 1 125 99 64 99;
#P fasten 1 0 4 0 27 122 96 122;
#P connect 4 0 9 0;
#P connect 9 0 10 0;
#P connect 5 0 2 0;
#P connect 7 0 2 0;
#P connect 2 0 3 0;
#P connect 3 0 4 1;
#P connect 5 1 2 1;
#P connect 6 0 5 0;
#P pop;
#P newobj 294 313 76 131137545 p granularduck;
#P newex 414 362 106 131137545 buffer~ ampwindow 400;
#P newex 414 344 84 131137545 peek~ ampwindow;
#N vpatcher 10 59 341 342;
#P origin 0 -3;
#P outlet 18 240 15 0;
#P window setfont "Sans Serif" 9.;
#P window linecount 1;
#P comment 172 154 76 196617 hanning window;
#P newex 18 218 51 196617 pack 0 0.;
#P newex 59 167 245 196617 expr 0.5 * (1 + cos((3.14159 + 3.14159*2*$f1)));
#P newex 59 141 29 196617 * 2.;
#P window linecount 0;
#P message 121 142 17 196617 1.;
#P window linecount 1;
#P newex 121 122 20 196617 t b;
#P newex 59 122 52 196617 / 65535.;
#P newex 59 90 72 196617 split 0 16384;
#P newex 59 67 27 196617 – 1;
#P window linecount 0;
#P newex 13 47 56 196617 uzi 16386;
#P inlet 13 27 15 0;
#P window linecount 1;
#P comment 267 60 31 196617 -raja;
#P window linecount 0;
#P comment 123 21 168 196617 Only create the first attack-portion of a hanning window here because it is read in reverse elsewhere to achieve the release portion.;
#P connect 2 0 3 0;
#P fasten 4 0 11 0 64 85 23 85;
#P connect 11 0 13 0;
#P connect 3 2 4 0;
#P connect 4 0 5 0;
#P connect 5 0 6 0;
#P connect 6 0 9 0;
#P connect 9 0 10 0;
#P connect 10 0 11 1;
#P fasten 8 0 11 1 126 162 46 162 46 200 64 200;
#P connect 5 1 7 0;
#P connect 7 0 8 0;
#P pop;
#P newobj 414 326 102 131137545 p —makehanningattack;
#P newex 423 303 43 131137545 loadbang;
#P window setfont "Sans Serif" 9.;
#P flonum 195 39 74 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
#P newex 194 57 29 196617 sig~;
#P user number~ 195 98 247 113 9 3 3 2 0. 0. 0 0. 250 0. 0 0 0 221 221 221 222 222 222 0 0 0;
#P newex 195 77 66 196617 mstosamps~;
#P comment 42 351 65 196617 • start audio;
#P message 94 367 27 196617 stop;
#P message 26 367 65 196617 startwindow;
#P newex 137 407 29 196617 dac~;
#P user panel 11 348 123 43;
#X brgb 255 255 255;
#X frgb 100 202 30;
#X border 2;
#X rounded 0;
#X shadow 0;
#X done;
#P message 126 94 26 196617 100;
#P newex 137 234 29 196617 adc~;
#P message 103 95 14 196617 1;
#P newex 103 71 45 196617 loadbang;
#P toggle 103 118 15 0;
#P newex 208 235 49 196617 gate~ 1 1;
#P button 320 160 15 0;
#P newex 247 207 44 196617 phasor~;
#P newex 247 186 195 196617 expr (($f3 / $i1)*$f2);
#P flonum 320 136 76 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
#P number 224 136 75 9 1 0 1 3 0 0 0 221 221 221 222 222 222 0 0 0;
#P newex 137 269 152 196617 stutter~ 22050 11025 -1 10 1;
#B color 5;
#P comment 319 119 78 196617 Playback Speed;
#P comment 42 121 75 196617 autograb =>;
#P connect 10 0 11 0;
#P connect 11 0 9 0;
#P fasten 10 0 13 0 108 91 131 91;
#P fasten 3 0 2 0 229 262 142 262;
#P connect 32 0 2 0;
#P connect 12 1 2 0;
#P connect 12 0 2 0;
#P connect 2 0 28 0;
#P connect 28 0 15 0;
#P fasten 16 0 15 0 31 397 142 397;
#P fasten 17 0 15 0 99 397 142 397;
#P connect 28 0 15 1;
#P fasten 27 0 28 1 299 337 167 337;
#P connect 22 0 21 0;
#P fasten 13 0 22 0 131 125 163 125 163 35 200 35;
#P connect 21 0 19 0;
#P connect 19 0 20 0;
#P fasten 9 0 8 0 108 155 213 155;
#P connect 8 0 2 1;
#P connect 33 0 3 0;
#P connect 20 1 33 0;
#P fasten 3 0 5 0 229 178 252 178;
#P fasten 7 0 5 0 325 178 252 178;
#P connect 5 0 6 0;
#P connect 6 0 8 1;
#P connect 6 0 2 2;
#P fasten 6 0 27 0 252 230 313 230 313 306 299 306;
#P fasten 11 0 4 0 108 116 325 116;
#P fasten 4 0 7 0 325 155 325 155;
#P fasten 22 0 27 1 201 54 411 54 411 278 332 278;
#P fasten 4 0 5 1 325 154 344 154;
#P fasten 31 0 27 2 426 235 365 235;
#P fasten 23 0 24 0 428 323 419 323;
#P connect 24 0 25 0;
#P fasten 11 0 31 0 108 114 426 114;
#P fasten 6 0 30 0 252 227 433 227;
#P connect 35 1 5 2;
#P connect 35 1 36 0;
#P window clipboard copycount 37;


Viewing 6 posts - 1 through 6 (of 6 total)