Skip to content

Instantly share code, notes, and snippets.

@nnirror
nnirror / gist:7c812580728b932136779c774ace77eb
Created April 16, 2025 01:46
deterministic nn movement
<pre><code>
----------begin_max5_patcher----------
4320.3oc4cs9iaiij+yI+UPXrG1NyzQMe+3xjACvt2gaA1AGNrKtujDDn1Vc
GMqaIeRxcdLHye6WQRIa41x1zcS4tmLtC7CJRVj+XUEqpXIke84OaxkkeJqd
B5eG8Fzyd1u97m8LWQ1BdV6ue1jaR+zz4o0tpMYZ4M2jUzL4b+0Zx9Tiq7Kp
RKtNif17kuTZ+RJu5p5rFz1utndQV1rMKZZ4xhsq6EUkMoMYI2oz+ukoEM4e
I6NEeSdQxV8.Lm5lByyKxbzwNODsEtHsY5GxKt98UYSa73CUHSvmiXZ2GDM2
9gBdG8ttFUkUCXSZSdYQuFxMIbMWvXLrwvjBJ6bDkQbMmYRHJAkHYDEQI0DC
bMbu9rX4MkKalm03febao4ybfd4k+xKI7ICPd6kIq6h7htdfXK6qO+412NOv
07442lkTOOeVVUGstMspH8lL+kg0hhl22CRG.8HXovNioFQGtcNx98CgdReC
// first run this block
$('p01').silence(10000).iter(ri(1,6),()=>{this.tri2d(ri(0,99), ri(0,99), ri(0,99), ri(0,99), ri(0,99), ri(0,99), 1)}).set('p01').once();
$('p02').silence(10000).iter(ri(1,6),()=>{this.tri2d(ri(0,99), ri(0,99), ri(0,99), ri(0,99), ri(0,99), ri(0,99), 1)}).set('p02').once();
$('p03').silence(10000).iter(ri(1,6),()=>{this.tri2d(ri(0,99), ri(0,99), ri(0,99), ri(0,99), ri(0,99), ri(0,99), 1)}).set('p03').once();
$('p04').silence(10000).iter(ri(1,6),()=>{this.tri2d(ri(0,99), ri(0,99), ri(0,99), ri(0,99), ri(0,99), ri(0,99), 1)}).set('p04').once();
$('p05').silence(10000).iter(ri(1,6),()=>{this.tri2d(ri(0,99), ri(0,99), ri(0,99), ri(0,99), ri(0,99), ri(0,99), 1)}).set('p05').once();
$('p06').silence(10000).iter(ri(1,6),()=>{this.tri2d(ri(0,99), ri(0,99), ri(0,99), ri(0,99), ri(0,99), ri(0,99), 1)}).set('p06').once();
$('p07').silence(10000).iter(ri(1,6),()=>{this.tri2d(ri(0,99), ri(0,99), ri(0,99), ri(0,99), ri(0,99), ri(0,99), 1)}).set('p07').once();
$('p08').silence(10000).iter(ri(1,6),()=>
https://nnirror.xyz/web_patcher/?state=%5B%7B%22id%22%3A%22pattern-0%22%2C%22connections%22%3A%5B%7B%22id%22%3A1706761965294%2C%22target%22%3A%22tri-0%22%2C%22output%22%3A0%2C%22input%22%3A0%7D%5D%2C%22left%22%3A%22390px%22%2C%22top%22%3A%22440px%22%2C%22inputs%22%3A%7B%22%22%3A%22_.noise(16).scale(36%2C50).key(%27a%20minor%27).mtof()%3B%22%7D%7D%2C%7B%22id%22%3A%22tri-0%22%2C%22connections%22%3A%5B%7B%22id%22%3A1706761965303%2C%22target%22%3A%22*-0%22%2C%22output%22%3A0%2C%22input%22%3A0%7D%5D%2C%22left%22%3A%22398px%22%2C%22top%22%3A%22654px%22%2C%22inputs%22%3A%7B%22%22%3A%220.9%22%7D%7D%2C%7B%22id%22%3A%22outputnode-0%22%2C%22connections%22%3A%5B%5D%2C%22left%22%3A%22368px%22%2C%22top%22%3A%221528px%22%2C%22inputs%22%3A%7B%22%22%3A%221%22%7D%7D%2C%7B%22id%22%3A%22outputnode-1%22%2C%22connections%22%3A%5B%5D%2C%22left%22%3A%22824px%22%2C%22top%22%3A%221503px%22%2C%22inputs%22%3A%7B%22%22%3A%222%22%7D%7D%2C%7B%22id%22%3A%22phasor-0%22%2C%22connections%22%3A%5B%7B%22id%22%3A1706761965306%2C%22target%22%3A%22
@nnirror
nnirror / gist:ed4f8a08707d42079c8ae72897ab31da
Created January 24, 2024 15:09
Safari web audio glitch test
<!DOCTYPE html>
<html>
<body>
<button id="startButton" onclick="startAudio()">Start</button>
<script>
let context = new (window.AudioContext || window.webkitAudioContext)();
let oscillator = context.createOscillator();
let panner = context.createPanner();
/* BEGIN UI initialization */
// create audio context
const WAContext = window.AudioContext || window.webkitAudioContext;
const context = new WAContext();
// create workspace DOM elements
const workspace = document.getElementById('workspace');
const navBar = document.getElementById('ui-container');
$('gen10')
.silence(1000000)
.iter(6, () => {
this.sup(_.silence(1000000)
.tri2d(0, 67, 999, 67, 500, 933, 0.5)
.rotate(i * 60))
})
.append(_.silence(1500000))
.prepend(_.silence(1500000))
.sup(_.iter(6, () => {
$('gen7')
.iter(101,()=>{
this.silence(100000)
.rect2d(0, 0, 1000, 100, 1, 1000, 100)
.rect2d(0,0,Math.abs(1000-i*10),100,0,1000,100)
.reverse()
.saveimg('gen7/' + i, [_.envelope([1, 1, 333, 1, 0, 667])
.dup(99), _.envelope([0, 1, 333, 1, 1, 333, 1, 0, 333])
.dup(99), _.envelope([1, 0, 333, 0, 0, 333, 0, 1, 333])
.dup(99)
$('gen5')
.silence(4000000)
.iter(25, () => {
this.layer2d(_.from(1)
.dup(1999), _.ramp(ri(0, 500), ri(0, 500), 4000), _.ramp(ri(0, 500), ri(0, 500), 4000))
})
.iter(25, () => {
this.layer2d(_.from(1)
.dup(1999), _.ramp(ri(500, 1000), ri(500, 1000), 4000), _.ramp(ri(500, 1000), ri(500, 1000), 4000))
})
$('gen4')
.iter(12, () => {
this.append(_.noise(2048)
.scale(0.5, 1)
.saheach(Math.pow(2, i))
.dup(Math.pow(2, i) - 1))
})
.saveimg('gen4' + rf(), [_.iter(12, () => {
this.append(_.noise(2048)
.scale(0.5, 1)
@nnirror
nnirror / gist:8a285727010b9cfd6196be7c677875f2
Created December 21, 2023 20:01
nnirror 2023-12-21 set
// set bpm
$('bpm')
.bpm(80).keep()
.once();
// sleigh bells
$('sleigh_bells')
.seq('jingle jingle2 jingle jingle2 jingle jingle2 jingle jingle2')
//.slices(8,()=>{this.pitch(_.ramp(rf(0,2),rf(0,2))).comb(ms(20),0.99)})
.play();