#N canvas 510 72 565 449 10;
#X declare -stdpath ./;
#X obj 226 168 cyclone/pink~;
#X text 63 86 [pink~] generates pink noise. This is not an actual MAX clone but an object that is borrowed from ELSE which has more functionalities and is backwards compatible to MAX's object since the original just outputs pink noise!, f 75;
#X obj 6 419 cnv 15 552 21 empty empty empty 20 12 0 14 #e0e0e0 #202020 0;
#X text 145 399 2) float - pinkness (number of extra octaves);
#N canvas 455 181 702 310 seed 0;
#X msg 544 130 seed 507;
#X msg 394 130 seed;
#X text 604 129 <-- set seed;
#X text 30 19 Pseudo random number generators aren't true random number generators. Instead \, an algorithm is used to provide a sequence of numbers that seems random. The same sequence can be reproduced if you set a "seed" value \, which can be any integer number., f 52;
#X text 361 22 You can also set a seed with the argument. If you don't supply it \, each object gets its own seed internal seed. If you send a 'seed' message without float \, the object also gets a unique seed value., f 52;
#X text 30 98 Seeds are kept locally \, which means that if two [pink~] objects are seeded the same they will have the same output. Conversely \, you can seed the same [pink~] object twice with the same seed to repeat the output., f 52;
#X text 387 99 Sync [pink~] objects with a seed value;
#X obj 57 181 cyclone/pink~ 1039;
#X obj 207 181 cyclone/pink~ 1039;
#X obj 394 188 cyclone/pink~;
#X obj 544 188 cyclone/pink~;
#X obj 57 250 print~;
#X obj 394 250 print~;
#X obj 544 250 print~;
#X obj 207 250 print~;
#X obj 165 210 bng 19 250 50 0 empty empty empty 17 7 0 10 #dfdfdf #000000 #000000;
#X obj 503 188 bng 19 250 50 0 empty empty empty 17 7 0 10 #dfdfdf #000000 #000000;
#X connect 0 0 9 0;
#X connect 0 0 10 0;
#X connect 0 0 16 0;
#X connect 1 0 9 0;
#X connect 1 0 10 0;
#X connect 1 0 16 0;
#X connect 7 0 11 0;
#X connect 8 0 14 0;
#X connect 9 0 12 0;
#X connect 10 0 13 0;
#X connect 15 0 11 0;
#X connect 15 0 14 0;
#X connect 16 0 13 0;
#X connect 16 0 12 0;
#X restore 495 199 pd seed;
#X obj 7 261 cnv 3 550 3 empty empty inlets 8 12 0 13 #dcdcdc #000000 0;
#X obj 7 336 cnv 3 550 3 empty empty outlets 8 12 0 13 #dcdcdc #000000 0;
#X obj 7 371 cnv 3 550 3 empty empty arguments 8 12 0 13 #dcdcdc #000000 0;
#X text 145 381 1) float - sets seed (default: unique internal);
#X obj 95 348 cnv 17 3 17 empty empty 0 5 9 0 16 #dcdcdc #9c9c9c 0;
#X text 162 348 signal - pink noise;
#X obj 96 311 cnv 17 3 17 empty empty 1 5 9 0 16 #dcdcdc #9c9c9c 0;
#X text 63 124 White noise has constant spectral power \, but pink noise has constant power per octave and it decrease 3dB per octave., f 75;
#N canvas 666 63 489 348 number 0;
#X obj 159 210 nbx 5 14 0 31 0 0 empty empty empty 0 -8 0 10 #dcdcdc #000000 #000000 0 256;
#X obj 162 165 hsl 128 15 0 31 0 0 empty empty empty -2 -8 0 10 #dcdcdc #000000 #000000 0 1;
#X obj 159 186 int;
#X obj 159 236 cyclone/pink~;
#X text 45 16 You can set the number of frequency bands in octaves. A value of 1 makes it a single band which is plain white noise. For each extra octave \, the bandwidth is split in half and the new octaves are 3dB lower than the next lower octave., f 68;
#X text 45 69 The maximum number of octaves is 40 and the default depends on the sample rate \, and it is so that the lowest octave starts close to 20hz. For a sample rate of 44100 this gives us 12 octaves. The more octaves you have \, the less bright the overall sound is., f 68;
#X text 49 124 You can set the number of octaves with the 2nd argument or a float input.;
#X obj 159 278 output~;
#X connect 0 0 3 0;
#X connect 1 0 2 0;
#X connect 2 0 0 0;
#X connect 3 0 7 0;
#X restore 418 222 pd number of octaves;
#X text 168 311 float - sets pinkness (number of octaves);
#X obj 95 270 cnv 17 3 33 empty empty 0 5 9 0 16 #dcdcdc #9c9c9c 0;
#X text 126 288 seed <float> - a float sets seed \, no float sets a unique internal, f 65;
#X text 168 271 float - set number of octaves (minimum 1 \, max 31), f 58;
#X obj 226 199 output~;
#X obj 3 2 ./header pink~;
#X text 22 61 Pink noise generator;
#X obj 62 211 declare -stdpath ./;
#X connect 0 0 18 0;
