JAN. 1 (credit: Melissa Wiederrecht & Nicolas Barradeau)
PROMPT: Particles, lots of them Made with code in Hydra & SuperCollider You must click on the image to start playing the audio.
INTERACTIVE PIECE. Move your mouse and have fun.
/* Particles, lots of them by Daniel Oropeza */
k = () => 100 d = (x) => Math.PI * x / k()
A = window.innerHeight / window.innerWidth d = 0.001
xx = 0 yy = 0 x = 0, y = 0,
x = () => (((-mouse.x / innerWidth) + .5) / A) / 3
y = () => ((-mouse.y / innerHeight) + .5) / 3
window.document.body.addEventListener('touchmove', function(e) { xx = 0, yy = 0, x = 0, y = 0, xx = (((e.touches[0].clientX / -innerWidth) + .5) / A) / 3.3333, yy = ((e.touches[0].clientY / -innerHeight) + .5) / 3.33333 //console.log(xx,yy) }, false);
src(o1) .colorama(.001) .modulate( osc(6, 0, 1.5) .brightness(-.5) .modulate(noise() .sub(gradient()) .add( solid(1, 1, 1) .mask( shape(2, () => d(1), 0.1)) .scrollY(() => d(2) / 2) .rotate(() => Math.atan2(d(2), 1)) .scrollY(() => -d(2) / 2 - .5) .kaleid(() => k() * .25) .scale(.25) .mask(shape(999, .5) .rotate(Math.PI / 8)) .modulateRotate(shape(999, 0, 1), 1) .scale(2), -1 ), 3.14), .003) .layer( osc(5, 0, 1.5) .modulateScale(osc(1, 0), -.2, 1) .pixelate(5) .scrollX(.3) .scale(1, 1.25) .mask( shape(2, () => d(.5), 0)) .scrollY(() => d(.5) / 2) .rotate(() => Math.atan2(d(.5), 1)) .scrollY(() => -d(.5) / 2 - .5) .kaleid(() => k() * .25) .scale(.25) .mask(shape(999, .5) .rotate(Math.PI / 8)) .modulateRotate(shape(999, 0, 1), 1) .scale(2) ) .mult(osc(10, 1 / 2, 300) .diff(gradient(1) .hue() .thresh() .brightness(1)) ) .blend(src(o0) .scale(1.1)) .blend(src(o0) .scale(1.1)) .blend(src(o0) .scale(1.1) .brightness(-0.005)) .modulate(noise(1.5) .mult(osc(4, 0.1))) .brightness(0.00001) .saturate(1.05) .luma(-1.99) .scrollX([0.001, 0]) .scrollY([0, 0.001]) .modulateScale(osc(4), 0.02, 0.99) .out(o1)
src(o0) .mult(shape(100, .0005, 1) .luma(.5, .75) .scale(1 / 6) .scrollX(x) .scrollY(y) .scrollX(() => xx) .scrollY(() => yy) .scale(3, A)
)
.posterize(30, 1)
.mult(voronoi(3), 0.005)
.blend(src(o1), 0.01)
.colorama(-0.0001)
.diff(shape(2, () => time < 300 ? 0.01 : 0, 0)
.g()
.rotate(Math.PI / 8)
.add(src(o0)
.modulate(
osc(6, 0, 4.5)
.brightness(-.5)
.modulate(noise(3, .1)
.modulatePixelate(
noise(3, .1), 504, 8)
.sub(gradient(), -1), 1)
.invert(-1)
.sub(gradient()
.brightness(-.5), 3), -.001)))
.saturate(1.001)
.out(o0)
src(o0) .layer(src(o1) .mask(src(o1)) .scrollY(0.001) .contrast(1.01) .rotate(0.001) .scale(1.01)) .scale(2) .contrast(500) .color(-.1, .05, -1) .posterize(.75) .blend(o2) .blend(o2) .blend(o2) .blend(o2) .blend(o2) .blend(o2) .add(noise(innerWidth * 2), .15, .25) .out(o2)
render(o2)