Repository cover
  • JavaScript 100%
Find a file
2026-03-29 18:46:31 +11:00
.DS_Store adding images 2026-03-29 18:46:31 +11:00
Black_Glass_by_KittyCat.wsz start repo 2026-03-19 14:17:58 +11:00
cheatsheet.js adding images 2026-03-29 18:46:31 +11:00
code-jam.jpg codejam images 2026-03-23 18:20:36 +11:00
computer_9.wav start repo 2026-03-19 14:17:58 +11:00
computer_10.wav start repo 2026-03-19 14:17:58 +11:00
computer_11.wav start repo 2026-03-19 14:17:58 +11:00
computer_12.wav start repo 2026-03-19 14:17:58 +11:00
computer_13.wav start repo 2026-03-19 14:17:58 +11:00
computer_14.wav start repo 2026-03-19 14:17:58 +11:00
computer_15.wav start repo 2026-03-19 14:17:58 +11:00
computer_16.wav start repo 2026-03-19 14:17:58 +11:00
computer_17.wav start repo 2026-03-19 14:17:58 +11:00
computer_en-AU_f.wav start repo 2026-03-19 14:17:58 +11:00
computer_en-AU_m.wav start repo 2026-03-19 14:17:58 +11:00
computer_en-GB_f.wav start repo 2026-03-19 14:17:58 +11:00
computer_en-GB_m.wav start repo 2026-03-19 14:17:58 +11:00
cover.jpg fix cover image 2026-03-19 17:05:35 +11:00
hydra-loop.js adding circular images 2026-03-27 23:20:26 +11:00
hydraimagebank.js codejam images 2026-03-23 18:22:36 +11:00
image-bank.json adding images 2026-03-29 18:23:12 +11:00
machine_0.wav start repo 2026-03-19 14:17:58 +11:00
machine_1.wav start repo 2026-03-19 14:17:58 +11:00
README.md start repo 2026-03-19 14:17:58 +11:00
stoo-2.js adding updates 2026-03-23 21:36:38 +11:00
stoo-3.js adding updates 2026-03-23 21:36:38 +11:00
stroo-4.js adding circular images 2026-03-27 23:02:34 +11:00
stroo.js adding json strudel 2026-03-19 17:01:01 +11:00
strudel.json testing images 2026-03-20 22:26:33 +11:00

//osc and noise modulate
osc(5,0.1)
.scrollX(0.1,0.1)
.modulate(noise(2,0.01),0.5)
.modulateScrollX(o0,1)
.modulate(o0,0.2)
.out()
//hydra image bank library (keyword, keyword)
let bank = await initImageBank('https://cdn.angl.hair/d.dadut/cyberdecks/raw/branch/main/image-bank.json');
loadImage(bank, s0, 'loop', 0);
async function initImageBank(url) {
const response = await fetch(url);
const json = await response.json();
return json;
}
function loadImage(imgbank, src, name, i){
src.initImage(imgbank[name][i]);
}
//layer mask shape repeat
layer(src(s2).mask(shape(4).repeat(4,4)))
//P pattern
let patt = P("<2 1>");
//strudel sample load (computer)
samples('github:melaniehuang/codejamassets')
$: s("computer:0")

let patt = P("<0.1 0.2 0.5 0.2>*4");
bpm = 170;
let bank = await initImageBank('https://cdn.angl.hair/d.dadut/cyberdecks/raw/branch/main/image-bank.json');
loadImage(bank, s0, 'loop', 21);
loadImage(bank, s1, 'loop', 32);
src(s0)
.invert()
.blend(src(s1).saturate(0).invert().scrollX(0.1,0.05),patt)
.scrollX(0.1,0.05)
.scrollY(0.1,0.05)
.modulateScrollX(src(s0),patt)
.modulateScrollY(o0,patt)
.out()
async function initImageBank(url) {
const response = await fetch(url);
const json = await response.json();
return json;
}
function loadImage(imgbank, src, name, i){
src.initImage(imgbank[name][i]);
}

async function initImageBank(url) {
const response = await fetch(url);
const json = await response.json();
return json;
}
function loadImage(imgbank, src, name, i){
src.initImage(imgbank[name][i]);
}

{
"loop": [
"https://upload.wikimedia.org/wikipedia/commons/b/b7/Magnetic_field_of_loop_3.svg",
"https://upload.wikimedia.org/wikipedia/commons/9/9c/Force_Field-Gravity_Well_Inter-relationship.png",
"http://upload.wikimedia.org/wikipedia/commons/e/e4/EB1911_-_Magnetism%2C_Terrestrial_-_Fig._3.%E2%80%94Isomagnetics%2C_lines_of_equal_horizontal_force.jpg",
"https://upload.wikimedia.org/wikipedia/commons/c/cf/Lorentz_force_on_charged_particles_in_bubble_chamber_-_HD.6D.635_%2812000265314%29.svg",
"https://upload.wikimedia.org/wikipedia/commons/a/ad/A_Treatise_on_Electricity_and_Magnetism_Volume_1_XIV.png",
"https://upload.wikimedia.org/wikipedia/commons/2/2b/Zhuravlyne_ozero.jpg",
"https://upload.wikimedia.org/wikipedia/commons/5/5b/Toghrol_Tower_looking_up.jpg"
],
"blackhole":[
"https://upload.wikimedia.org/wikipedia/commons/c/cf/Black_hole_-_Messier_87.jpg",
"https://upload.wikimedia.org/wikipedia/commons/4/47/Lensed_black_hole_against_Milky_Way_background.jpg",
"https://upload.wikimedia.org/wikipedia/commons/b/b9/Black_Hole_Desktop_%26_Phone_Wallpapers_%28SVS14146_-_SupermassiveBinaryBlackHoles_desktop%29.png",
"https://upload.wikimedia.org/wikipedia/commons/9/90/Black_Hole_Desktop_%26_Phone_Wallpapers_%28SVS14146_-_GRB_dust_rings_desktop%29.png",
"https://upload.wikimedia.org/wikipedia/commons/2/28/Black_Hole_Desktop_%26_Phone_Wallpapers_%28SVS14146_-_BlackHoleDisk_desktop%29.png",
"https://upload.wikimedia.org/wikipedia/commons/5/56/Black_Hole_Desktop_%26_Phone_Wallpapers_%28SVS14146_-_BH_shredding_star_desktop%29.png",
"https://upload.wikimedia.org/wikipedia/commons/1/15/Black_Hole_Desktop_%26_Phone_Wallpapers_%28SVS14146_-_HerculesA_desktop%29.png",
"https://upload.wikimedia.org/wikipedia/commons/b/b9/Black_Hole_Desktop_%26_Phone_Wallpapers_%28SVS14146_-_SupermassiveBinaryBlackHoles_desktop%29.png",
"https://upload.wikimedia.org/wikipedia/commons/3/32/Black_Hole_Desktop_%26_Phone_Wallpapers_%28SVS14146_-_DoublyWarpedBlackHole_desktop%29.png",
"https://upload.wikimedia.org/wikipedia/commons/b/b3/Black_Hole_Desktop_%26_Phone_Wallpapers_%28SVS14146_-_cena_chandra_ixpe_desktop%29.png",
"https://upload.wikimedia.org/wikipedia/commons/0/09/Black_Hole_Desktop_%26_Phone_Wallpapers_%28SVS14146_-_GalacticCenter_desktop%29.png",
"https://upload.wikimedia.org/wikipedia/commons/1/14/Black_Hole_Desktop_%26_Phone_Wallpapers_%28SVS14146_-_GRB_artist_concept_desktop%29.png",
"https://upload.wikimedia.org/wikipedia/commons/f/f3/The_Cygnus_Loop%2C_also_known_as_the_Veil_Nebula%2C_is_a_supernova_remnant.jpg",
"https://upload.wikimedia.org/wikipedia/commons/2/24/Black_hole_shadow.png"
],
"codejam": [
"https://angl.hair/d.dadut/cyberdecks/raw/branch/main/code-jam.jpg"
],
"computer" : [
"https://upload.wikimedia.org/wikipedia/commons/thumb/9/99/A_computer_at_the_Science_Museum_%282020%29.jpg/1920px-A_computer_at_the_Science_Museum_%282020%29.jpg?_=20250322120402",
"https://upload.wikimedia.org/wikipedia/commons/thumb/9/9e/Part_of_the_Pilot_ACE_computer.jpg/1920px-Part_of_the_Pilot_ACE_computer.jpg?_=20250322120459",
"https://upload.wikimedia.org/wikipedia/commons/thumb/2/23/2019-08-04_Apple_I_computer.jpg/1920px-2019-08-04_Apple_I_computer.jpg?_=20210104063211"
],
"flower" : [
"https://upload.wikimedia.org/wikipedia/commons/c/c9/Paris_quadrifolia_flower_-_Keila.jpg",
"https://upload.wikimedia.org/wikipedia/commons/7/71/Twin_lantana_camara_edit.jpg",
"https://upload.wikimedia.org/wikipedia/commons/f/f5/Bloem_van_een_schijnpapaver_%28Meconopsis_cambrica%29_23-05-2021._%28d.j.b%29.jpg"
],
"cell" : [
"https://upload.wikimedia.org/wikipedia/commons/0/0f/Chk-UCH1-GFAP-20X-1.jpg",
"https://upload.wikimedia.org/wikipedia/commons/8/8e/Purple_cells.jpg",
"https://upload.wikimedia.org/wikipedia/commons/1/12/A_cluster_of_basaloid_cells_on_a_smear_taken_from_a_patient_with_basal_cell_carcinoma.jpg"
],
"scifi":[
"https://upload.wikimedia.org/wikipedia/commons/0/0d/Illustrations_in_science_fiction_02.jpg",
"https://upload.wikimedia.org/wikipedia/commons/4/49/Illustrations_in_science_fiction_07.jpg",
"https://upload.wikimedia.org/wikipedia/commons/0/00/Illustrations_in_science_fiction_04.jpg",
"https://upload.wikimedia.org/wikipedia/commons/3/33/Illustrations_in_science_fiction_06.jpg",
"https://upload.wikimedia.org/wikipedia/commons/c/ce/Illustrations_in_science_fiction_05.jpg",
"https://upload.wikimedia.org/wikipedia/commons/b/b2/Science_Stories_v02n01_-_The_Golden_Road_2.png",
"https://upload.wikimedia.org/wikipedia/commons/3/31/Science_Stories_v02n01_-_Blind_Flight_2.png",
"https://upload.wikimedia.org/wikipedia/commons/b/bf/Stirring_Science_Stories_Feb._1941_-_The_Devotee_of_Evil_Artwork.png"
],
"alien": [
"https://upload.wikimedia.org/wikipedia/commons/f/fc/Alien-Human_Hybrid_baby.jpg",
"https://upload.wikimedia.org/wikipedia/commons/3/3c/CropCircleSwirl.jpg",
"https://upload.wikimedia.org/wikipedia/commons/f/f3/Lucy_Pringle_Aerial_Shot_of_Pi_Crop_Circle_-_panoramio.jpg"
],
"space": [
"https://upload.wikimedia.org/wikipedia/commons/3/35/Cloudscape_Over_the_Philippine_Sea.jpg",
"https://upload.wikimedia.org/wikipedia/commons/d/d8/Artist%27s_impression_of_an_ultra-short-period_planet.jpg",
"https://upload.wikimedia.org/wikipedia/commons/5/54/Around_Marshall_%288002178%29.jpg",
"https://upload.wikimedia.org/wikipedia/commons/2/21/Around_Marshall_%287995215%29.jpg",
"https://upload.wikimedia.org/wikipedia/commons/9/93/Around_Marshall_%287779792%29.jpg",
"https://upload.wikimedia.org/wikipedia/commons/8/8e/Around_Marshall_%288003294%29.jpg"
]
}

initHydra()
setcpm(80/4)
samples('https://cdn.angl.hair/d.dadut/cyberdecks/raw/branch/main/strudel.json')
samples('shabda:speech:code_jam')
$: s("crackle*10").density("<0.5 0.2 2>").room(4).orbit(1)
$: note("c eb g c4 c e7 g e1").clip(2).gain(0.9)
.s("gm_fx_echoes").lpf(400).room(2)
$: s("bd*2 bd*4").bank("RolandTR909")
$: s("sine*8").dist(0.5).n(irand(8)).scale('E minor')
.room(2).roomsize(10)
$: s("<pink - - pink ->").dist(0.8).slow(2).gain(0.6)
$: s("computer:0 - computer:1 - computer:2 - computer:3")
.slow(4)._punchcard()
$: s("voice:0 voice:3").slow(4)._scope()
$: s("machine:0 machine:1").scrub("0.1:2 0.8:0.3").slow(2)
let pattern = H("1 0.1 0.5 0.75");
async function initImageBank(url) {
const response = await fetch(url);
const json = await response.json();
return json;
}
function loadImage(imgbank, src, name, i){
src.initImage(imgbank[name][i]);
}
let bank = await initImageBank('https://cdn.angl.hair/d.dadut/cyberdecks/raw/branch/main/image-bank.json');
loadImage(bank, s0, 'computer', 0);
loadImage(bank, s1, 'computer', 1);
loadImage(bank, s2, 'computer', 2);
src(s0).saturate(0).brightness(-0.7)
.modulate(src(s1)
.saturate(0)
.scrollX(1,0.05)
.repeat(2,[3,4]),0.5)
.out()

//HYDRA
bpm = 120;
async function initImageBank(url) {
const response = await fetch(url);
const json = await response.json();
return json;
}
function loadImage(imgbank, src, name, i){
src.initImage(imgbank[name][i]);
}
let bank = await initImageBank('https://cdn.angl.hair/d.dadut/cyberdecks/raw/branch/main/image-bank.json');
loadImage(bank, s0, 'cell', 0);
loadImage(bank, s1, 'codejam', 0);
let pattern = P("<2 1>")
noise(3,1)
.scale(pattern)
.add(src(s0).saturate(0).scrollY(0.1,0.1),0.5)
.scrollX(5,0.1)
.modulate(o0,0.5)
.repeat(5,pattern)
.scrollX(0.1,0.05)
.modulate(src(s1).rotate(0.1,0.6).scale(pattern),0.5)
.out()
//STRUDEL
setcpm(120/4)
samples('shabda:computer:10')
samples('shabda/speech/en-AU/m:make_it_up, code_jam')
$: s("code_jam make_it_up").scrub("{0.1:0.3 - 0.5:0.2}").echo(10,1,1).gain(0.1)
$: s("bd*10 bd - - bd -").dist(5).room(1.1).gain(0.5)
$: s("computer:5 computer:9").gain(1)
$: s("hh*100").slow(4)
$: s("bd*100").slow(2)

//Strudel
setCpm(170/4)
$: stack(
s("<lt perc lt lt ht mt mt perc>*8")
.hpf(1500).room(0.4).hpq(40)
.degradeBy(0.5)
.delay(0.4).gain(0.2),
s("bd bd bd bd").gain(0.05),
s("hh*8")
.gain("<0.8 0.4>*4")
.early(0.02)
.room(2).hpf(3000),
s("~ ~ ~ oh*4").early(0.02).degradeBy(0.5),
).bank("tr808")
.distort(0.9)
.gain(0)
$: s("808")
$: s("ride cp ~ [cp cp*4?]")
.distort(5)
.gain(0)
.bank("tr909")
$: stack(
s("[brown brown] [brown brown]")
.decay(0.02).release(0.1)
.orbit(3).ply("1 2"),
s("brown")
.decay(1).release(0.2).attack(0.002)
.gain(0.2)
.when("<0 1>", x => x.gain(0.1).distort(2)),
s("brown [brown brown]").gain(0)
)
.hpf(1000)
.hpq("<40*4 0>")
.distort(8.4)
.gain(0)
.pan(tri.range(0, 1))
//TIME'S UP!//TIME'S UP!//TIME'S UP!//TIME'S UP!//TIME'S UP!//TIME'S UP!
$: n("<[0,6] [2,7] [0,5] [3,7]>")
.scale('F#3:minor')
.s("supersaw")
.attack(3).sustain(0.4).release(5)
.chorus(7)
.lpf(perlin.range(150,900).slow(16))
.lpq(3)
.slow(4)
.gain(0)
$: n(irand(12).euclid(5,8))
.scale("F#4:minor")
.s("triangle").fast(1)
.fm(rand.range(0,12))
.fmh(rand.range(0.25,5))
.attack(0.02).decay(0.5).sustain(0).release(0.3)
.lpf(rand.range(100,800))
.lpq(5)
.delay(0.7).delaytime(0.8)
.degradeBy(0.25)
.every(4, x=>x.fast(2))
.gain(0)
//TIME'S UP!
//TIME'S UP!
//TIME'S UP!
//TIME'S UP!
$: n("0(2,8) ~ ~ [0 ~]")
.scale("F#1:minor")
.s("sawtooth")
.chorus(15)
.fm(perlin.range(0,2).slow(8))
.fmh(4.5)
.lpf(1000)
.attack(0.5).decay(1).release(5)
.room(1)
.distort(1.5)
.striate(4)
.crush(1.5)
.slow(2)
.gain(3)

setcpm(150/4)
samples('https://angl.hair/d.dadut/cyberdecks/raw/branch/main/strudel.json')
$: s("crackle*10").density("<0.5 0.2 2>").room(4).orbit(1)
$: note("c eb g c4 c e7 g e1").clip(2).gain(0.9).s("gm_fx_echoes").lpf(400).room(2)
$: s("bd*2 bd*4").bank("RolandTR909")
$: s("sine*8").dist(0.5).n(irand(8)).scale('E minor').room(2).roomsize(10)
$: s("<pink - - pink ->").dist(0.8).slow(2).gain(0.6)
$: s("computer:0 - computer:1 - computer:2 - computer:3").slow(4)._punchcard()
$: s("voice:0 voice:3").slow(4)._scope()
$: s("machine:0 machine:1").slow(2)

{
"_base": "https://angl.hair/d.dadut/cyberdecks/raw/branch/main/",
"computer": [
"computer_9.wav",
"computer_10.wav",
"computer_11.wav",
"computer_12.wav",
"computer_13.wav",
"computer_14.wav",
"computer_15.wav",
"computer_16.wav",
"computer_17.wav"
],
"voice":[
"computer_en-AU_f.wav",
"computer_en-AU_m.wav",
"computer_en-GB_f.wav",
"computer_en-GB_m.wav"
],
"machine":[
"machine_0.wav",
"machine_1.wav"
]
}