# Indian Ink Splashes : Learning how to make a custom noise.

## Custom noise function generated by chance.

This video was made with Processing and Kdenlive.

I drew still images with Processing code and converted to a movie with the Kdenlive. I wrote this code to lean how to make custom noise function.
I thought this custom noise function was not so good, but it brought me a very nice result for my creative coding later.

### Thanks to nice music:

This Is Where We Go Our Separate Ways by Steve Combs
2017/01/17
http://freemusicarchive.org/music/Steve_Combs/The_Green_Album/07_This_Is_Where_We_Go_Our_Seperate_Ways

## Processing code example.

```// Indian ink splashes
// 2016.11.12

void setup() {
size(1280, 720);
background(245);
strokeWeight(0.5);
frameRate(0.7);
smooth();
}

void draw() {

if (frameCount % 3 == 1) {
background(245);
}
stroke(255, 0);

int centx = width / 2;
int centy = height / 2;
float radius = min(centx, centy) / 2;

for (int i = 0; i < 80; i++) {
float cx, cy, lastx, lasty, alpha;
float cxnoise = random(5);
float cynoise = random(5);
float crnoise = random(5);
float dangle = random(360);

lastx = centx;
lasty = centy;

alpha = 15 + customNoise(crnoise) * 20;
fill(20, 50, 70, alpha);

for (float iangle = 0; iangle <= 360 * 1; iangle += 3) {
float ang = iangle + dangle;
radius -= (pow(sin(radians(ang + customNoise(cxnoise) * 200)), 3) * 4) * (customNoise(cynoise) * 4);

ellipse(cx, cy, 5 + customNoise(cxnoise) * 10, 5 + customNoise(cxnoise) * 10);

lastx = cx;
lasty = cy;
cxnoise += 0.05;
cynoise += 0.05;
}
crnoise += 0.05;
}

/*
saveFrame("frames/####.png");
if ( frameCount >= 60) {
exit ();
}
*/

}

float customNoise(float value) {
return pow(sin(value), 3) * cos(pow(value, 2));
}

/*

This program is free software: you can redistribute it and/or modify
the Free Software Foundation; either version 3 of the License, or
(at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with this program.  If not, see
*/
```

No Comment