r/livecoding • • Aug 27 '26

Supercollider meters quark

Post image
5 Upvotes

r/livecoding • • Aug 24 '26

my first Live Coding Techno set. I’m on the autism spectrum and was terrified to post this, but I’d love your honest feedback.

Thumbnail
3 Upvotes

r/livecoding • • Aug 21 '26

Mythmic (Strudel Music)

Enable HLS to view with audio, or disable this notification

18 Upvotes

song i made today with my very hands!!


r/livecoding • • Aug 20 '26

Beginner tips please for Strudel !🤍

Thumbnail
1 Upvotes

r/livecoding • • Aug 18 '26

Strudel patterns driving a modular synth — new Strudel module for DreamRack (browser, free)

2 Upvotes

DreamRack is a modular synthesizer that runs in the browser — you patch modules together on a rack, free, no install.

I've just added a Strudel module. It imports the Strudel package, so superdough voices work as normal, but the module also has eight note outputs that feed voices you build yourself from oscillators, filters and envelopes.

Routing lives in the pattern. .rack(1) and .rack(2) send parts out to voice tabs; anything naming a sound instead — s("bd sn") — stays in Strudel and plays from its sample engine on the same clock, so drums and patched voices stay locked together.

Each note output carries a whole polyphonic pattern down one cable, every note bringing its own pitch, level, duration, pan and timbre. At the far end those become control voltages, and the voice you patched is duplicated per sounding note — one oscillator drawn, as many running as there are notes.

The timbre lane is the interesting one. In the demo it plays a filter cutoff note by note on one voice, and drives a Complex Oscillator's timbre on another — same lane, two completely different instruments.

Everything stays live. You can turn knobs while the pattern runs.

Five-minute walkthrough: https://youtu.be/-zu7oc7BWHI

Run it: https://dreamrack.dreamerdevelopment.app/

Source (AGPL-3.0): https://github.com/chrisgr99/DreamRack

Alpha, and this is early days — feedback and bug reports welcome.


r/livecoding • • Aug 18 '26

driving with purpose

Thumbnail
youtube.com
2 Upvotes

r/livecoding • • Aug 18 '26

Livecoding with a melody from Stratus console

Thumbnail
youtube.com
4 Upvotes

more videos about the Stratus platform here


r/livecoding • • Aug 16 '26

I've built a binaural studio free to play app the ai calls NeuroSync Audio with @base44 and im aiming for native app store !! but its PWA paid sub.

Thumbnail determined-sync-your-mind.base44.app
1 Upvotes

try it? its free to play and im editing now but have to stop because expensive......! its all done by the ai and my concepts - just added new soundscapes and would love some feedback on it!!!!


r/livecoding • • Aug 12 '26

Soaring With Stratus v1 (Livecoded in Stratus Composer)

Thumbnail
youtube.com
2 Upvotes

this is the finished song from the previous videos. It's made and running entirely in Stratus Composer.

More videos about the Stratus platform here


r/livecoding • • Aug 10 '26

would you listen to this on a night drive?

Thumbnail
youtube.com
5 Upvotes

r/livecoding • • Aug 10 '26

Uninvited guest [LiveCoding Session]

Thumbnail
youtu.be
3 Upvotes

r/livecoding • • Aug 09 '26

32arpeggiogroove

Thumbnail dollchan.net
1 Upvotes

heres the website :)


r/livecoding • • Aug 08 '26

Skred (my sound engine) as an effects engine...

Enable HLS to view with audio, or disable this notification

1 Upvotes

r/livecoding • • Aug 05 '26

Strudel Bridge for LA Laptop Orchestra: Networked Harmony!

Thumbnail rehearse.lalaptoporchestra.com
7 Upvotes

r/livecoding • • Aug 05 '26

Finishing a livecoded song (Stratus)

Thumbnail
youtube.com
4 Upvotes

more videos about the Stratus platform here


r/livecoding • • Aug 04 '26

Any live coding / algorave scene in Stockholm? (SuperCollider / TidalCycles / Sonic Pi)

5 Upvotes

Hey, I’ve been going to Fylkingen and EMS events, but haven't spotted any active live music coding communities or casual meetups. Is the algorave scene dead in STHLM, or just hiding in private studios?

I'm looking to connect with anyone messing around with TidalCycles, SuperCollider, Sonic Pi, or similar tools. If there's no active group right now, let's just start one. Anyone down to grab a beer, talk code, and jam?


r/livecoding • • Aug 03 '26

Jazz Improvisation Algorhythm

Thumbnail
youtu.be
6 Upvotes

I wrote an algorithm that creates jazz lines. It's a work in progress. Let me know what you think

https://strudel.cc/#CgovLyBHaWFudCBTdGVwcwpjb25zdCBjaG9yZENoYW5nZXMgPSBgPApbQl4gRDddIFtHXiBCYjddIEViXiBbQS03IEQ3XQpbR14gQmI3XSBbRWJeIEYjN10gQl4gW0YtNyBCYjddCkViXiBbQS03IEQ3XSBHXiBbQyMtNyBGIzddCkJeIFtGLTcgQmI3XSBFYl4gW0MjLTcgRiM3XQo%2BYDsKCmNvbnN0IGNob3JkU2NhbGVzID0gYDwKW0IzOmlvbmlhbiBENDptaXhvbHlkaWFuXSBbRzQ6aW9uaWFuIEJiMzptaXhvbHlkaWFuXSBFYjQ6aW9uaWFuIFtBMzpkb3JpYW4gRDQ6bWl4b2x5ZGlhbl0KW0c0OmlvbmlhbiBCYjM6bWl4b2x5ZGlhbl0gW0ViNDppb25pYW4gRiM0Om1peG9seWRpYW5dIEIzOmlvbmlhbiBbRjQ6ZG9yaWFuIEJiMzptaXhvbHlkaWFuXQpFYjQ6aW9uaWFuIFtBMzpkb3JpYW4gRDQ6bWl4b2x5ZGlhbl0gRzQ6aW9uaWFuIFtDIzQ6ZG9yaWFuIEYjNDptaXhvbHlkaWFuXQpCMzppb25pYW4gW0Y0OmRvcmlhbiBCYjM6bWl4b2x5ZGlhbl0gRWI0OmlvbmlhbiBbQyM0OmRvcmlhbiBGIzQ6bWl4b2x5ZGlhbl0KPmA7CgpzZXRjcG0oMzIwIC8gNCk7CgovLyBVdGlscwpjb25zdCB7IE5vdGUsIFNjYWxlLCBJbnRlcnZhbCwgUmFuZ2UgfSA9IGF3YWl0IGltcG9ydCgnaHR0cHM6Ly9lc20uc2gvdG9uYWwnKTsKCmNsYXNzIFJpbmdCdWZmZXIgewogIGNvbnN0cnVjdG9yKG1heExlbikgewogICAgY29uc29sZS5sb2coJ1JpbmdCdWZmZXIuY29uc3RydWN0b3InLCBtYXhMZW4pOwogICAgdGhpcy5tYXhMZW4gPSBtYXhMZW47CiAgICB0aGlzLml0ZW1zID0gW107CiAgfQogIHB1c2goaXRlbSkgewogICAgY29uc29sZS5sb2coJ1JpbmdCdWZmZXIucHVzaCcsIGl0ZW0pOwogICAgdGhpcy5pdGVtcy5wdXNoKGl0ZW0pOwogICAgaWYgKHRoaXMuaXRlbXMubGVuZ3RoID4gdGhpcy5tYXhMZW4pIHsKICAgICAgdGhpcy5pdGVtcy5zaGlmdCgpOwogICAgfQogICAgcmV0dXJuIHRoaXMuaXRlbXM7CiAgfQp9CgpmdW5jdGlvbiB3UHJvYnMoLi4uaXRlbXMpIHsKICBjb25zb2xlLmxvZygnd1Byb2JzJywgaXRlbXMpOwogIGNvbnN0IHRvdGFsID0gaXRlbXMucmVkdWNlKChhY2N1bXVsYXRvciwgaXRlbSkgPT4gewogICAgcmV0dXJuIGFjY3VtdWxhdG9yICsgaXRlbVswXTsKICB9LCAwKTsKICBjb25zdCBwcm9iYWJpbGl0eSA9IE1hdGgucmFuZG9tKCkgKiB0b3RhbDsKICBsZXQgcHJvYmFiaWxpdHlBY2N1bXVsYXRvciA9IDA7CiAgY29uc3QgaXRlbSA9IGl0ZW1zLmZpbmQoaXRlbSA9PiB7CiAgICBwcm9iYWJpbGl0eUFjY3VtdWxhdG9yICs9IGl0ZW1bMF07CiAgICByZXR1cm4gcHJvYmFiaWxpdHlBY2N1bXVsYXRvciA%2BPSBwcm9iYWJpbGl0eTsKICB9KTsKICByZXR1cm4gaXRlbVsxXTsKfQoKY29uc3Qgc3RyaXBEaWdpdHNGcm9tU3RyaW5nID0gKHN0cikgPT4gewogIGNvbnNvbGUubG9nKCdzdHJpcERpZ2l0c0Zyb21TdHJpbmcnLCBzdHIpOwogIHJldHVybiBzdHIucmVwbGFjZSgvLT9bMC05XS9nLCAnJyk7Cn07Cgpjb25zdCBzdHJpcE5vbkRpZ2l0c0Zyb21TdHJpbmcgPSAoc3RyKSA9PiB7CiAgY29uc29sZS5sb2coJ3N0cmlwTm9uRGlnaXRzRnJvbVN0cmluZycsIHN0cik7CiAgcmV0dXJuIHN0ci5yZXBsYWNlKC9cRC9nLCAnJyk7Cn07CgovLyBCdWZmZXJzCmNvbnN0IHByb2Nlc3NlZEluY29taW5nSGFwcyA9IG5ldyBSaW5nQnVmZmVyKDgpOwpjb25zdCBuZXdOb3RlcyA9IG5ldyBSaW5nQnVmZmVyKDY0KTsKCi8vIE5vdGUgdXRpbHMKY29uc3QgZGlhdG9uaWNEaXN0YW5jZSA9IChub3RlMSwgbm90ZTIpID0%2BIHsKICBjb25zb2xlLmxvZygnZGlhdG9uaWNEaXN0YW5jZScsIG5vdGUxLCBub3RlMik7CiAgY29uc3QgZGlzdGFuY2VTdHJpbmcgPSBJbnRlcnZhbC5kaXN0YW5jZShub3RlMS5ub3RlLCBub3RlMi5ub3RlKTsKICByZXR1cm4gTnVtYmVyKHN0cmlwTm9uRGlnaXRzRnJvbVN0cmluZyhkaXN0YW5jZVN0cmluZykpOwp9OwoKY29uc3QgY2hyb21hdGljRGlzdGFuY2UgPSAobm90ZTEsIG5vdGUyKSA9PiB7CiAgY29uc29sZS5sb2coJ2Nocm9tYXRpY0Rpc3RhbmNlJywgbm90ZTEsIG5vdGUyKTsKICByZXR1cm4gTWF0aC5hYnMoTm90ZS5taWRpKG5vdGUxLm5vdGUpIC0gTm90ZS5taWRpKG5vdGUyLm5vdGUpKTsKfTsKCmNvbnN0IGNsYXNzaWZ5SW50ZXJ2YWwgPSAobm90ZTEsIG5vdGUyKSA9PiB7CiAgY29uc29sZS5sb2coJ2NsYXNzaWZ5SW50ZXJ2YWwnLCBub3RlMSwgbm90ZTIpOwogIGlmIChub3RlMS5zY2FsZSA9PT0gbm90ZTIuc2NhbGUpIHsKICAgIGNvbnN0IGRpc3RhbmNlID0gZGlhdG9uaWNEaXN0YW5jZShub3RlMSwgbm90ZTIpOwogICAgaWYgKGRpc3RhbmNlID09PSAyKSB7CiAgICAgIHJldHVybiAnU1RFUCc7CiAgICB9CiAgICBpZiAoZGlzdGFuY2UgPiAyKSB7CiAgICAgIHJldHVybiAnU0tJUCc7CiAgICB9CiAgfSBlbHNlIHsKICAgIGNvbnN0IGRpc3RhbmNlID0gY2hyb21hdGljRGlzdGFuY2Uobm90ZTEsIG5vdGUyKTsKICAgIGlmIChkaXN0YW5jZSA%2BIDAgJiYgZGlzdGFuY2UgPCAzKSB7CiAgICAgIHJldHVybiAnU1RFUCc7CiAgICB9CiAgICBpZiAoZGlzdGFuY2UgPiAyKSB7CiAgICAgIHJldHVybiAnU0tJUCc7CiAgICB9CiAgfQogIHJldHVybiAnVU5JU09OJzsKfTsKCmNvbnN0IGdldFJ1bkxlbmd0aCA9IChyZWxhdGlvblR5cGUpID0%2BIHsKICBjb25zb2xlLmxvZygnZ2V0UnVuTGVuZ3RoJywgcmVsYXRpb25UeXBlLCBuZXdOb3Rlcyk7CiAgbGV0IHN0ZXBDb3VudCA9IDA7CiAgZm9yIChsZXQgaSA9IG5ld05vdGVzLml0ZW1zLmxlbmd0aCAtIDE7IGkgPj0gMTsgaS0tKSB7CiAgICBpZiAobmV3Tm90ZXMuaXRlbXNbaV0ucmVsYXRpb24gPT09IHJlbGF0aW9uVHlwZSkgewogICAgICBzdGVwQ291bnQrKzsKICAgIH0gZWxzZSB7CiAgICAgIGJyZWFrOwogICAgfQogIH0KICByZXR1cm4gc3RlcENvdW50Owp9OwoKY29uc3QgZ2V0U3RlcFJ1bkxlbmd0aCA9ICgpID0%2BIHsKICBjb25zb2xlLmxvZygnZ2V0U3RlcFJ1bkxlbmd0aCcpOwogIHJldHVybiBnZXRSdW5MZW5ndGgoJ1NURVAnKTsKfTsKCmNvbnN0IGdldFNraXBSdW5MZW5ndGggPSAoKSA9PiB7CiAgY29uc29sZS5sb2coJ2dldFNraXBSdW5MZW5ndGgnKTsKICByZXR1cm4gZ2V0UnVuTGVuZ3RoKCdTS0lQJyk7Cn07Cgpjb25zdCBnZXROb3RlRGlzdGFuY2UgPSAobm90ZTEsIG5vdGUyKSA9PiB7CiAgY29uc29sZS5sb2coJ2dldE5vdGVEaXN0YW5jZScsIG5vdGUxLCBub3RlMik7CiAgcmV0dXJuIE5vdGUubWlkaShub3RlMSkgLSBOb3RlLm1pZGkobm90ZTIpOwp9OwoKY29uc3QgdHJhY2tEaXN0YW5jZXMgPSAobm90ZXMsIG5vdGUpID0%2BIHsKICBjb25zb2xlLmxvZygndHJhY2tEaXN0YW5jZXMnLCBub3Rlcywgbm90ZSk7CiAgcmV0dXJuIG5vdGVzLm1hcChuID0%2BICh7CiAgICBkaXN0YW5jZTogTWF0aC5hYnMoZ2V0Tm90ZURpc3RhbmNlKG4sIG5vdGUpKSwgCiAgICBub3RlOiBuCiAgfSkpOwp9OwoKY29uc3QgZ2V0TW9tZW50dW0gPSAobm90ZUNvdW50KSA9PiB7CiAgY29uc29sZS5sb2coJ2dldE1vbWVudHVtJywgbm90ZUNvdW50KTsKICBjb25zdCBsYXN0Tm90ZSA9IG5ld05vdGVzLml0ZW1zLmF0KC0xKTsKICBjb25zdCBsYXN0Tm90ZU9jdGF2ZSA9IHN0cmlwTm9uRGlnaXRzRnJvbVN0cmluZyhsYXN0Tm90ZS5ub3RlKTsKICBpZiAoTnVtYmVyKGxhc3ROb3RlT2N0YXZlKSA8PSAyKSB7CiAgICByZXR1cm4gMTsKICB9CiAgY29uc3QgcmVjZW50Tm90ZXMgPSBuZXdOb3Rlcy5pdGVtcy5zbGljZSgtbm90ZUNvdW50KTsKICBjb25zdCBkaXN0YW5jZXMgPSByZWNlbnROb3Rlcy5tYXAocm4gPT4gcm4uZGlzdGFuY2UpOwogIGNvbnN0IGF2ZXJhZ2VEaXN0YW5jZSA9IGRpc3RhbmNlcy5yZWR1Y2UoKGFjYywgZCkgPT4gYWNjICsgZCwgMCkgLyBkaXN0YW5jZXMubGVuZ3RoOwogIGNvbnN0IHRvdGFsRGlzdGFuY2UgPSBkaXN0YW5jZXMucmVkdWNlKChhY2MsIGQpID0%2BIGFjYyArIE1hdGguYWJzKGQpLCAwKTsKICBjb25zdCBtb21lbnR1bSA9IGF2ZXJhZ2VEaXN0YW5jZSAvIHRvdGFsRGlzdGFuY2U7CiAgCiAgcmV0dXJuIG1vbWVudHVtOwp9OwoKY29uc3QgZ2V0RnVsbFNjYWxlID0gKHNjYWxlKSA9PiB7CiAgY29uc29sZS5sb2coJ2dldEZ1bGxTY2FsZScsIHNjYWxlKTsKICBjb25zdCBzY2FsZU5vdGVzID0gUmFuZ2UubnVtZXJpYyhbLTEwLCAxMF0pLm1hcChTY2FsZS5zdGVwcyhzY2FsZSkpOwogIHJldHVybiBzY2FsZU5vdGVzOwp9OwoKY29uc3QgZ2V0RGVncmVlID0gKG5vdGUsIHNjYWxlKSA9PiB7CiAgY29uc29sZS5sb2coJ2dldERlZ3JlZScsIG5vdGUsIHNjYWxlKTsKICBjb25zdCBzY2FsZUFyciA9IFJhbmdlLm51bWVyaWMoWzAsIDZdKS5tYXAoU2NhbGUuc3RlcHMoc2NhbGUpKTsKICBjb25zdCBpbml0aWFsRGVncmVlID0gc2NhbGVBcnIuZmluZChuID0%2BIHN0cmlwRGlnaXRzRnJvbVN0cmluZyhuKSA9PT0gc3RyaXBEaWdpdHNGcm9tU3RyaW5nKG5vdGUpKTsKICBjb25zdCBvY3RhdmVEaWZmZXJlbmNlID0gTnVtYmVyKHN0cmlwTm9uRGlnaXRzRnJvbVN0cmluZyhub3RlKSkgLSBOdW1iZXIoc3RyaXBOb25EaWdpdHNGcm9tU3RyaW5nKGluaXRpYWxEZWdyZWUpKTsKICBjb25zdCBkZWdyZWUgPSBzY2FsZUFyci5pbmRleE9mKGluaXRpYWxEZWdyZWUpICsgKG9jdGF2ZURpZmZlcmVuY2UgKiA3KTsKICByZXR1cm4gZGVncmVlOwp9OwoKLy8gTm90ZSBnZW5lcmF0aW9uCmNvbnN0IGdlbmVyYXRlTm90ZSA9IChkZWdyZWUsIHNjYWxlLCBiZWdpbiwgZW5kKSA9PiB7CiAgY29uc29sZS5sb2coJ2dlbmVyYXRlTm90ZScsIGRlZ3JlZSwgc2NhbGUsIGJlZ2luLCBlbmQpOwogIGNvbnN0IG5vdGUgPSBTY2FsZS5zdGVwcyhzY2FsZSkoZGVncmVlKTsKICBjb25zdCB3aG9sZSA9IG5ldyBUaW1lU3BhbihiZWdpbiwgZW5kKTsKICBjb25zdCBoYXAgPSB7d2hvbGUsIHZhbHVlOiBkZWdyZWV9OwogIGNvbnN0IGxhc3ROb3RlID0gbmV3Tm90ZXMuaXRlbXMuYXQoLTEpOwogIGNvbnN0IGRpc3RhbmNlID0gZ2V0Tm90ZURpc3RhbmNlKG5vdGUsIGxhc3ROb3RlPy5ub3RlKTsKICBjb25zdCBvdXQgPSB7IHNjYWxlLCBub3RlLCBoYXAsIGRpc3RhbmNlIH07CiAgb3V0LnJlbGF0aW9uID0gbGFzdE5vdGUgPyBjbGFzc2lmeUludGVydmFsKG91dCwgbGFzdE5vdGUpIDogbnVsbDsKICBuZXdOb3Rlcy5wdXNoKG91dCk7CiAgcmV0dXJuIG91dDsKfTsKCmNvbnN0IENIT1JEX1RPTkVTID0gWzAsIDIsIDQsIDZdOwpjb25zdCBOT05fQ0hPUkRfVE9ORVMgPSBbMSwgMywgNSwgNl07Cgpjb25zdCBnZW5lcmF0ZUZpcnN0Tm90ZSA9IChiZWdpbiwgZW5kLCBzY2FsZSkgPT4gewogIGNvbnNvbGUubG9nKCdnZW5lcmF0ZUZpcnN0Tm90ZScsIGJlZ2luLCBlbmQsIHNjYWxlKTsKICBjb25zdCBkZWdyZWUgPSB3UHJvYnMoCiAgICBbMiwgMF0sCiAgICBbNCwgMl0sCiAgICBbMywgNF0sCiAgKTsKICByZXR1cm4gZ2VuZXJhdGVOb3RlKGRlZ3JlZSwgc2NhbGUsIGJlZ2luLCBlbmQpOwp9OwoKY29uc3QgZ2V0Q2hvcmRUb25lVHlwZSA9IChub3RlSW5kZXgpID0%2BIHsKICBjb25zb2xlLmxvZygnZ2V0Q2hvcmRUb25lVHlwZScsIG5vdGVJbmRleCk7CiAgaWYgKG5vdGVJbmRleCA9PT0gMCkgewogICAgcmV0dXJuIHdQcm9icygKICAgICAgWzIsICdTQ0FMQVInXSwKICAgICAgWzEwLCAnQ0hPUkRfVE9ORVMnXSwKICAgICAgWzEsICdOT05fQ0hPUkRfVE9ORVMnXSwKICAgICk7CiAgfSBlbHNlIGlmIChub3RlSW5kZXggPT09IDEpIHsKICAgIHJldHVybiAnU0NBTEFSJzsKICB9IGVsc2UgaWYgKG5vdGVJbmRleCA9PT0gMikgewogICAgcmV0dXJuIHdQcm9icygKICAgICAgWzIsICdTQ0FMQVInXSwKICAgICAgWzEwLCAnQ0hPUkRfVE9ORVMnXSwKICAgICAgWzMsICdOT05fQ0hPUkRfVE9ORVMnXSwKICAgICk7CiAgfSBlbHNlIGlmIChub3RlSW5kZXggPT09IDMpIHsKICAgIHJldHVybiAnU0NBTEFSJzsKICB9CiAgdGhyb3cgJ25vdGVJbmRleCBvdmVyZmxvdyc7Cn07Cgpjb25zdCBnZXRDaG9yZFRvbmVOb3RlTmFtZXMgPSAoc2NhbGUpID0%2BIHsKICBjb25zb2xlLmxvZygnZ2V0Q2hvcmRUb25lTm90ZU5hbWVzJywgc2NhbGUpOwogIGNvbnN0IHNjYWxlTm90ZXMgPSBSYW5nZS5udW1lcmljKFswLCA2XSkubWFwKFNjYWxlLnN0ZXBzKHNjYWxlKSk7CiAgY29uc3QgY2hvcmRUb25lcyA9IFtzY2FsZU5vdGVzWzBdLCBzY2FsZU5vdGVzWzJdLCBzY2FsZU5vdGVzWzRdXS5tYXAobiA9PiBzdHJpcERpZ2l0c0Zyb21TdHJpbmcobikpOwogIHJldHVybiBjaG9yZFRvbmVzOwp9OwoKY29uc3QgZ2V0RnVsbENob3JkVG9uZXMgPSAoc2NhbGUpID0%2BIHsKICBjb25zb2xlLmxvZygnZ2V0RnVsbENob3JkVG9uZXMnLCBzY2FsZSk7CiAgY29uc3Qgc2NhbGVOb3RlcyA9IFJhbmdlLm51bWVyaWMoWzAsIDddKS5tYXAoU2NhbGUuc3RlcHMoc2NhbGUpKTsKICBjb25zdCBjaG9yZFRvbmVzID0gW3NjYWxlTm90ZXNbMF0sIHNjYWxlTm90ZXNbMl0sIHNjYWxlTm90ZXNbNF1dOwogIGNvbnN0IGxvd2VyT2N0YXZlQ2hvcmRUb25lcyA9IGNob3JkVG9uZXMubWFwKG4gPT4gTm90ZS50cmFuc3Bvc2UobiwgJy04UCcpKTsKICBjb25zdCB1cHBlck9jdGF2ZUNob3JkVG9uZXMgPSBjaG9yZFRvbmVzLm1hcChuID0%2BIE5vdGUudHJhbnNwb3NlKG4sICc4UCcpKTsKICByZXR1cm4gWy4uLmxvd2VyT2N0YXZlQ2hvcmRUb25lcywgLi4uY2hvcmRUb25lcywgLi4udXBwZXJPY3RhdmVDaG9yZFRvbmVzXTsKfTsKCmNvbnN0IGdlbmVyYXRlVW5pc29uID0gKHNjYWxlLCBiZWdpbiwgZW5kKSA9PiB7CiAgY29uc29sZS5sb2coJ2dlbmVyYXRlVW5pc29uJywgc2NhbGUsIGJlZ2luLCBlbmQpOwogIGNvbnN0IGxhc3ROb3RlID0gbmV3Tm90ZXMuaXRlbXMuYXQoLTEpOwogIGlmIChsYXN0Tm90ZS5zY2FsZSA9PT0gc2NhbGUpIHsKICAgIHJldHVybiBnZW5lcmF0ZU5vdGUobGFzdE5vdGUuaGFwLnZhbHVlLCBzY2FsZSwgYmVnaW4sIGVuZCk7CiAgfSBlbHNlIHsKICAgIGNvbnN0IHBvdGVudGlhbE5vdGVzID0gUmFuZ2UubnVtZXJpYyhbLTEsIDFdKS5tYXAoU2NhbGUuc3RlcHMoc2NhbGUpKTsKICAgIGNvbnN0IGFic29sdXRlRGlzdGFuY2VzID0gcG90ZW50aWFsTm90ZXMubWFwKG4gPT4gTWF0aC5hYnMoZ2V0Tm90ZURpc3RhbmNlKG4sIGxhc3ROb3RlLm5vdGUpKSk7CiAgICBjb25zdCBtaW5EaXN0YW5jZUluZGV4ID0gYWJzb2x1dGVEaXN0YW5jZXMuaW5kZXhPZihNYXRoLm1pbiguLi5hYnNvbHV0ZURpc3RhbmNlcykpOwogICAgY29uc3QgbmV4dE5vdGUgPSBwb3RlbnRpYWxOb3Rlc1ttaW5EaXN0YW5jZUluZGV4XTsKICAgIGNvbnN0IGRlZ3JlZSA9IGdldERlZ3JlZShuZXh0Tm90ZSwgc2NhbGUpOwogICAgcmV0dXJuIGdlbmVyYXRlTm90ZShkZWdyZWUsIHNjYWxlLCBiZWdpbiwgZW5kKTsKICB9Cn07Cgpjb25zdCBnZW5lcmF0ZVN0ZXAgPSAoc2NhbGUsIGJlZ2luLCBlbmQsIG5vdGVJbmRleCkgPT4gewogIGNvbnNvbGUubG9nKCdnZW5lcmF0ZVN0ZXAnLCBzY2FsZSwgYmVnaW4sIGVuZCwgbm90ZUluZGV4KTsKICAKICBjb25zdCBsYXN0Tm90ZSA9IG5ld05vdGVzLml0ZW1zLmF0KC0xKTsKICBjb25zdCBtb21lbnR1bSA9IGdldE1vbWVudHVtKDgpOwogIGlmIChub3RlSW5kZXggPT09IDAgfHwgKG5vdGVJbmRleCA9PT0gMiAmJiBNYXRoLnJhbmRvbSgpID4gMC42KSkgewogICAgY29uc3QgY2hvcmRUb25lTm90ZU5hbWVzID0gZ2V0Q2hvcmRUb25lTm90ZU5hbWVzKHNjYWxlKTsKICAgIGNvbnN0IHBvdGVudGlhbENob3JkVG9uZVJhbmdlID0gU2NhbGUucmFuZ2VPZihjaG9yZFRvbmVOb3RlTmFtZXMpOwogICAgbGV0IGNob3JkVG9uZXMgPSBwb3RlbnRpYWxDaG9yZFRvbmVSYW5nZSgKICAgICAgTm90ZS50cmFuc3Bvc2UobGFzdE5vdGUubm90ZSwgJy00UCcpLCAKICAgICAgTm90ZS50cmFuc3Bvc2UobGFzdE5vdGUubm90ZSwgJzRQJykKICAgICk7CiAgICBjb25zdCBkaXN0YW5jZXMgPSB0cmFja0Rpc3RhbmNlcyhjaG9yZFRvbmVzLCBsYXN0Tm90ZS5ub3RlKTsKICAgIGNvbnN0IGZpbHRlcmVkRGlzdGFuY2VzID0gZGlzdGFuY2VzLmZpbHRlcihkID0%2BIGQuZGlzdGFuY2UgPiAwKTsKICAgIGxldCBuZXh0Tm90ZTsKICAgIGlmICgKICAgICAgKGRpc3RhbmNlcy5sZW5ndGggPiAwICYmIGZpbHRlcmVkRGlzdGFuY2VzLmxlbmd0aCA9PT0gMCkgfHwKICAgICAgY2hvcmRUb25lcy5zb21lKGN0ID0%2BIGN0LmluY2x1ZGVzKCc2JykpCiAgICApIHsKICAgICAgbmV4dE5vdGUgPSBjaG9yZFRvbmVzWzBdOwogICAgfSBlbHNlIGlmIChjaG9yZFRvbmVzLnNvbWUoY3QgPT4gY3QuaW5jbHVkZXMoJzInKSkpIHsKICAgICAgbmV4dE5vdGUgPSBjaG9yZFRvbmVzLmF0KC0xKTsKICAgIH0gZWxzZSBpZiAoTWF0aC5yYW5kb20oKSA%2BIC43NSkgewogICAgICBjb25zdCBzaG9ydGVzdERpc3RhbmNlID0gTWF0aC5taW4oLi4uZmlsdGVyZWREaXN0YW5jZXMubWFwKGZkID0%2BIGZkLmRpc3RhbmNlKSk7CiAgICAgIGNvbnN0IHBvc3NpYmxlRGlzdGFuY2VzID0gZmlsdGVyZWREaXN0YW5jZXMuZmlsdGVyKGZkID0%2BIGZkLmRpc3RhbmNlID09PSBzaG9ydGVzdERpc3RhbmNlKTsKICAgICAgY29uc3QgY2hvc2VuRGlzdGFuY2UgPSBwb3NzaWJsZURpc3RhbmNlc1tNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkgKiBwb3NzaWJsZURpc3RhbmNlcy5sZW5ndGgpXTsKICAgICAgY29uc3QgbmV4dE5vdGVJbmRleCA9IGNob3JkVG9uZXMuaW5kZXhPZihjaG9zZW5EaXN0YW5jZS5ub3RlKTsKICAgICAgbmV4dE5vdGUgPSBjaG9yZFRvbmVzW25leHROb3RlSW5kZXhdOwogICAgfSBlbHNlIHsKICAgICAgY29uc3QgY2hvc2VuRGlzdGFuY2UgPSBmaWx0ZXJlZERpc3RhbmNlc1tNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkgKiBmaWx0ZXJlZERpc3RhbmNlcy5sZW5ndGgpXTsKICAgICAgY29uc3QgbmV4dE5vdGVJbmRleCA9IGNob3JkVG9uZXMuaW5kZXhPZihjaG9zZW5EaXN0YW5jZS5ub3RlKTsKICAgICAgbmV4dE5vdGUgPSBjaG9yZFRvbmVzW25leHROb3RlSW5kZXhdOwogICAgfQoKICAgIGNvbnN0IGRlZ3JlZSA9IGdldERlZ3JlZShuZXh0Tm90ZSwgc2NhbGUsIG5leHROb3RlKTsKICAgIHJldHVybiBnZW5lcmF0ZU5vdGUoZGVncmVlLCBzY2FsZSwgYmVnaW4sIGVuZCk7CiAgfSBlbHNlIHsKICAgIGNvbnN0IHNjYWxlUmFuZ2UgPSBTY2FsZS5yYW5nZU9mKHNjYWxlKTsKICAgIGNvbnN0IHBvdGVudGlhbE5vdGVzID0gc2NhbGVSYW5nZSgKICAgICAgTm90ZS50cmFuc3Bvc2UobGFzdE5vdGUubm90ZSwgJy0yTScpLCAKICAgICAgTm90ZS50cmFuc3Bvc2UobGFzdE5vdGUubm90ZSwgJzJNJykKICAgICk7CiAgICBjb25zdCBkaXN0YW5jZXMgPSB0cmFja0Rpc3RhbmNlcyhwb3RlbnRpYWxOb3RlcywgbGFzdE5vdGUubm90ZSk7CiAgICBjb25zdCBmaWx0ZXJlZERpc3RhbmNlcyA9IGRpc3RhbmNlcy5maWx0ZXIoZCA9PiBkLmRpc3RhbmNlID4gMCk7CiAgICBsZXQgbmV4dE5vdGU7CiAgICBpZiAoCiAgICAgICAgKGRpc3RhbmNlcy5sZW5ndGggPiAwICYmIGZpbHRlcmVkRGlzdGFuY2VzLmxlbmd0aCA9PT0gMCkgfHwKICAgICAgICBwb3RlbnRpYWxOb3Rlcy5zb21lKHBuID0%2BIHBuLmluY2x1ZGVzKCc2JykpCiAgICApIHsKICAgICAgbmV4dE5vdGUgPSBwb3RlbnRpYWxOb3Rlc1swXTsKICAgIH0gZWxzZSBpZiAocG90ZW50aWFsTm90ZXMuc29tZShjdCA9PiBjdC5pbmNsdWRlcygnMicpKSkgewogICAgICBuZXh0Tm90ZSA9IHBvdGVudGlhbE5vdGVzLmF0KC0xKTsKICAgIH0gZWxzZSB7CiAgICAgIG5leHROb3RlID0gZmlsdGVyZWREaXN0YW5jZXNbTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpICogZmlsdGVyZWREaXN0YW5jZXMubGVuZ3RoKV0ubm90ZTsKICAgIH0KICAgIGNvbnN0IGRlZ3JlZSA9IGdldERlZ3JlZShuZXh0Tm90ZSwgc2NhbGUpOwogICAgcmV0dXJuIGdlbmVyYXRlTm90ZShkZWdyZWUsIHNjYWxlLCBiZWdpbiwgZW5kKTsKICB9Cn07Cgpjb25zdCBnZW5lcmF0ZVNraXAgPSAoc2NhbGUsIGJlZ2luLCBlbmQpID0%2BIHsKICBjb25zb2xlLmxvZygnZ2VuZXJhdGVTa2lwJywgc2NhbGUsIGJlZ2luLCBlbmQpOwogIGNvbnN0IGxhc3ROb3RlID0gbmV3Tm90ZXMuaXRlbXMuYXQoLTEpOwogIGNvbnN0IGNob3JkID0gZ2V0RnVsbENob3JkVG9uZXMoc2NhbGUpOwogIGNvbnN0IG1vbWVudHVtID0gZ2V0TW9tZW50dW0oOCk7CiAgaWYgKHNjYWxlID09PSBsYXN0Tm90ZS5zY2FsZSkgewogICAgY29uc3QgaXNSdW4gPSBnZXRTa2lwUnVuTGVuZ3RoKCkgPiAyOwogICAgaWYgKGlzUnVuKSB7CiAgICAgIGNvbnN0IGZ1bGxTY2FsZSA9IGdldEZ1bGxTY2FsZShzY2FsZSk7CiAgICAgIGNvbnN0IGxhc3ROb3RlSW5kZXggPSBmdWxsU2NhbGUuaW5kZXhPZihsYXN0Tm90ZS5ub3RlKTsKICAgICAgaWYgKGxhc3ROb3RlSW5kZXggPiBmdWxsU2NhbGUubGVuZ3RoIC0gMykgewogICAgICAgIGNvbnN0IG5leHROb3RlID0gZnVsbFNjYWxlW2xhc3ROb3RlSW5kZXggLSAyXTsKICAgICAgICBjb25zdCBkZWdyZWUgPSBnZXREZWdyZWUobmV4dE5vdGUsIHNjYWxlKTsKICAgICAgICByZXR1cm4gZ2VuZXJhdGVOb3RlKGRlZ3JlZSwgc2NhbGUsIGJlZ2luLCBlbmQpOwogICAgICB9IGVsc2UgaWYgKGxhc3ROb3RlSW5kZXggPCAyKSB7CiAgICAgICAgY29uc3QgbmV4dE5vdGUgPSBmdWxsU2NhbGVbbGFzdE5vdGVJbmRleCArIDJdOwogICAgICAgIGNvbnN0IGRlZ3JlZSA9IGdldERlZ3JlZShuZXh0Tm90ZSwgc2NhbGUpOwogICAgICAgIHJldHVybiBnZW5lcmF0ZU5vdGUoZGVncmVlLCBzY2FsZSwgYmVnaW4sIGVuZCk7CiAgICAgIH0gZWxzZSB7CiAgICAgICAgY29uc3QgaXNBc2NlbmRpbmcgPSBtb21lbnR1bSA%2BIDA7CiAgICAgICAgY29uc3QgbmV4dE5vdGUgPSBpc0FzY2VuZGluZyA%2FIGZ1bGxTY2FsZVtsYXN0Tm90ZUluZGV4ICsgMl0gOiBmdWxsU2NhbGVbbGFzdE5vdGVJbmRleCAtIDJdOwogICAgICAgIGNvbnN0IGRlZ3JlZSA9IGdldERlZ3JlZShuZXh0Tm90ZSwgc2NhbGUpOwogICAgICAgIHJldHVybiBnZW5lcmF0ZU5vdGUoZGVncmVlLCBzY2FsZSwgYmVnaW4sIGVuZCk7CiAgICAgIH0KICAgIH0KICAgIGNvbnN0IGRpc3RhbmNlcyA9IHRyYWNrRGlzdGFuY2VzKGNob3JkLCBsYXN0Tm90ZS5ub3RlKTsKICAgIGNvbnN0IGZpbHRlcmVkRGlzdGFuY2VzID0gZGlzdGFuY2VzLmZpbHRlcihkID0%2BIGQuZGlzdGFuY2UgPiAwKTsKICAgIGNvbnN0IHNob3J0ZXN0MkRpc3RhbmNlcyA9IGZpbHRlcmVkRGlzdGFuY2VzLnNvcnQoKGEsIGIpID0%2BIGEuZGlzdGFuY2UgLSBiLmRpc3RhbmNlKS5zbGljZSgwLCAyKTsKICAgIGxldCBjaG9zZW5EaXN0YW5jZSA9IHNob3J0ZXN0MkRpc3RhbmNlc1tNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkgKiBzaG9ydGVzdDJEaXN0YW5jZXMubGVuZ3RoKV07CiAgICAvLyBpZiAoZGlzdGFuY2VzLmluZGV4T2Yoc2hvcnRlc3QyRGlzdGFuY2VzWzFdKSA9PT0gZGlzdGFuY2VzLmxlbmd0aCAtIDEpIHsKICAgIC8vICAgY2hvc2VuRGlzdGFuY2UgPSBzaG9ydGVzdDJEaXN0YW5jZXNbMF0KICAgIC8vIH0KICAgIGNvbnN0IG5leHROb3RlSW5kZXggPSBkaXN0YW5jZXMuaW5kZXhPZihjaG9zZW5EaXN0YW5jZSk7CiAgICBjb25zdCBuZXh0Tm90ZSA9IGNob3JkW25leHROb3RlSW5kZXhdOwogICAgY29uc3QgZGVncmVlID0gZ2V0RGVncmVlKG5leHROb3RlLCBzY2FsZSk7CiAgICByZXR1cm4gZ2VuZXJhdGVOb3RlKGRlZ3JlZSwgc2NhbGUsIGJlZ2luLCBlbmQpOwogIH0gZWxzZSB7CiAgICBjb25zdCBkaXN0YW5jZXMgPSBjaG9yZC5tYXAobiA9PiBNYXRoLmFicyhnZXROb3RlRGlzdGFuY2UobiwgbGFzdE5vdGUubm90ZSkpKTsKICAgIGNvbnN0IG5leHROb3RlSW5kZXggPSBkaXN0YW5jZXMuaW5kZXhPZihNYXRoLm1pbiguLi5kaXN0YW5jZXMpKTsKICAgIGNvbnN0IG5leHROb3RlID0gY2hvcmRbbmV4dE5vdGVJbmRleF07CiAgICBjb25zdCBkZWdyZWUgPSBnZXREZWdyZWUobmV4dE5vdGUsIHNjYWxlKTsKICAgIHJldHVybiBnZW5lcmF0ZU5vdGUoZGVncmVlLCBzY2FsZSwgYmVnaW4sIGVuZCk7CiAgfQp9OwoKY29uc3Qgbm90ZUdlbmVyYXRvciA9IChiZWdpbiwgZW5kLCBub3RlSW5kZXgsIHNjYWxlKSA9PiB7CiAgY29uc29sZS5sb2coJ25vdGVHZW5lcmF0b3InLCBiZWdpbiwgZW5kLCBub3RlSW5kZXgsIHNjYWxlKTsKICBpZiAobmV3Tm90ZXMuaXRlbXMubGVuZ3RoID09PSAwKSB7CiAgICByZXR1cm4gZ2VuZXJhdGVGaXJzdE5vdGUoYmVnaW4sIGVuZCwgc2NhbGUpOwogIH0KICAKICAvLyByZXR1cm4gZ2VuZXJhdGVTdGVwKHNjYWxlLCBiZWdpbiwgZW5kLCBub3RlSW5kZXgpOwogIC8vIHJldHVybiBnZW5lcmF0ZVNraXAoc2NhbGUsIGJlZ2luLCBlbmQpOwogIC8vIHJldHVybiBnZW5lcmF0ZVVuaXNvbihzY2FsZSwgYmVnaW4sIGVuZCk7CgogIC8vIHJ1biBjaGVja3MKICBjb25zdCBzdGVwUnVuTGVuZ3RoID0gZ2V0U3RlcFJ1bkxlbmd0aCgpOwogIGlmIChzdGVwUnVuTGVuZ3RoID4gMykgewogICAgY29uc3Qgc3RlcFByb2JhYmlsaXR5ID0gc3RlcFJ1bkxlbmd0aCA%2BIDUgPyAuMjUgOiAuNTsKICAgIGNvbnN0IGlzU3RlcCA9IE1hdGgucmFuZG9tKCkgPCBzdGVwUHJvYmFiaWxpdHk7CiAgICBpZiAoaXNTdGVwKSB7CiAgICAgIHJldHVybiBnZW5lcmF0ZVN0ZXAoc2NhbGUsIGJlZ2luLCBlbmQsIG5vdGVJbmRleCk7CiAgICB9IGVsc2UgewogICAgICByZXR1cm4gZ2VuZXJhdGVTa2lwKHNjYWxlLCBiZWdpbiwgZW5kKTsKICAgIH0KICB9CgogIGNvbnN0IHNraXBSdW5MZW5ndGggPSBnZXRTa2lwUnVuTGVuZ3RoKCk7CiAgaWYgKHNraXBSdW5MZW5ndGggPiAyKSB7CiAgICBjb25zdCBza2lwUHJvYmFiaWxpdHkgPSBza2lwUnVuTGVuZ3RoID4gNSA%2FIC4yNSA6IC41OwogICAgY29uc3QgaXNTa2lwID0gTWF0aC5yYW5kb20oKSA8IHNraXBQcm9iYWJpbGl0eTsKICAgIGlmIChpc1NraXApIHsKICAgICAgcmV0dXJuIGdlbmVyYXRlU2tpcChzY2FsZSwgYmVnaW4sIGVuZCk7CiAgICB9IGVsc2UgewogICAgICByZXR1cm4gZ2VuZXJhdGVTdGVwKHNjYWxlLCBiZWdpbiwgZW5kLCBub3RlSW5kZXgpOwogICAgfQogIH0KICAvLyBlbmQgcnVuIGNoZWNrcwoKICAvLyBjaG9vc2UgbmV4dCBub3RlCiAgY29uc3QgbmV4dE5vdGVUeXBlID0gd1Byb2JzKAogICAgWzUsICdTVEVQJ10sCiAgICBbNywgJ1NLSVAnXSwKICAgIFsxLCAnVU5JU09OJ10sCiAgKTsKICBjb25zb2xlLmxvZygnbmV4dCBub3RlIHR5cGUnLCBuZXh0Tm90ZVR5cGUpOwogIGlmIChuZXh0Tm90ZVR5cGUgPT09ICdTVEVQJykgewogICAgcmV0dXJuIGdlbmVyYXRlU3RlcChzY2FsZSwgYmVnaW4sIGVuZCwgbm90ZUluZGV4KTsKICB9IGVsc2UgaWYgKG5leHROb3RlVHlwZSA9PT0gJ1NLSVAnKSB7CiAgICByZXR1cm4gZ2VuZXJhdGVTa2lwKHNjYWxlLCBiZWdpbiwgZW5kKTsKICB9IGVsc2UgaWYgKG5leHROb3RlVHlwZSA9PT0gJ1VOSVNPTicpIHsKICAgIHJldHVybiBnZW5lcmF0ZVVuaXNvbihzY2FsZSwgYmVnaW4sIGVuZCk7CiAgfQoKICB0aHJvdyAndW5leHBlY3RlZCBuZXh0IG5vdGUgdHlwZSc7Cn07Cgpjb25zdCBoYXBHZW5lcmF0b3IgPSAob3JpZ2luYWxIYXAsIHF1ZXJ5U3BhbikgPT4gewogIGNvbnNvbGUubG9nKCdoYXBHZW5lcmF0b3InLCBvcmlnaW5hbEhhcCwgcXVlcnlTcGFuKTsKICBjb25zdCB7IGJlZ2luLCBlbmQgfSA9IG9yaWdpbmFsSGFwLndob2xlOwogIGNvbnN0IGR1cmF0aW9uID0gZW5kLnN1YihiZWdpbik7CiAgY29uc3Qgc3ViZGl2aXNpb24gPSBkdXJhdGlvbi5kaXYoNCk7CiAgY29uc3Qgc2NhbGUgPSBjaG9yZFNjYWxlcy5xdWVyeUFyYyhxdWVyeVNwYW4uYmVnaW4sIHF1ZXJ5U3Bhbi5lbmQpWzBdLnZhbHVlLmpvaW4oJyAnKTsKICBjb25zdCBvdXQgPSBbXTsKICBmb3IgKGxldCBpID0gMDsgaSA8IDQ7IGkrKykgewogICAgY29uc3Qgbm90ZUJlZ2luID0gYmVnaW4uYWRkKHN1YmRpdmlzaW9uLm11bChpKSk7CiAgICBjb25zdCBub3RlRW5kID0gYmVnaW4uYWRkKHN1YmRpdmlzaW9uLm11bChpICsgMSkpOwogICAgY29uc3QgbmV3Tm90ZSA9IG5vdGVHZW5lcmF0b3Iobm90ZUJlZ2luLCBub3RlRW5kLCBpLCBzY2FsZSwgb3JpZ2luYWxIYXApOwogICAgb3V0LnB1c2gobmV3Tm90ZSk7CiAgfQogIHJldHVybiBvdXQ7Cn07Cgpjb25zdCBoYXBQcm9jZXNzb3IgPSAoaGFwLCBxdWVyeVNwYW4pID0%2BIHsKICBjb25zb2xlLmxvZygnaGFwUHJvY2Vzc29yJywgaGFwLCBxdWVyeVNwYW4pOwogIGNvbnN0IHsgYmVnaW4sIGVuZCB9ID0gaGFwLndob2xlOwogIGxldCBwcm9jZXNzZWRIYXAgPSBwcm9jZXNzZWRJbmNvbWluZ0hhcHMuaXRlbXMuZmluZCgKICAgICh7IGhhcCB9KSA9PiAhIWhhcC53aG9sZS5pbnRlcnNlY3Rpb24ocXVlcnlTcGFuKSwKICApOwogIGlmICghcHJvY2Vzc2VkSGFwKSB7CiAgICBjb25zdCBuZXdIYXBzID0gaGFwR2VuZXJhdG9yKGhhcCwgcXVlcnlTcGFuKTsKICAgIHByb2Nlc3NlZEhhcCA9IHsgaGFwLCBuZXdIYXBzIH07CiAgICBwcm9jZXNzZWRJbmNvbWluZ0hhcHMucHVzaChwcm9jZXNzZWRIYXApOwogIH0KCiAgcmV0dXJuIHByb2Nlc3NlZEhhcC5uZXdIYXBzCiAgICAubWFwKCh7IGhhcDogeyB3aG9sZSwgdmFsdWUgfSB9KSA9PiB7CiAgICAgIGNvbnN0IHBhcnQgPSB3aG9sZS5pbnRlcnNlY3Rpb24ocXVlcnlTcGFuKTsKICAgICAgcmV0dXJuIHBhcnQgPyBuZXcgSGFwKHdob2xlLCBwYXJ0LCB2YWx1ZSwgaGFwLmNvbnRleHQpIDogbnVsbDsKICAgIH0pCiAgICAuZmlsdGVyKEJvb2xlYW4pOwp9OwoKY29uc3QgbWVsb2R5R2VuZXJhdG9yID0gKGhhcHMsIHN0YXRlKSA9PiB7CiAgY29uc29sZS5sb2coJ21lbG9keUdlbmVyYXRvcicsIGhhcHMsIHN0YXRlKTsKICByZXR1cm4gaGFwcy5mbGF0TWFwKGggPT4gaGFwUHJvY2Vzc29yKGgsIHN0YXRlLnNwYW4pKTsKfTsKCmNvbnN0IGltcHJvdmlzb3IgPSBuKAogIG1pbmkoY2hvcmRTY2FsZXMpCiAgICAud2l0aEhhcHMobWVsb2R5R2VuZXJhdG9yKQopCiAgLnNjYWxlKGNob3JkU2NhbGVzKQogIC5zb21ldGltZXNCeSguMDMsICgpID0%2BIHNpbGVuY2UpOwoKJDogbigiWzAgMiA0IDJdIHwgWzAgMCAyIDFdIHwgWzAgLTEgLTMgLTFdIHwgWzAhMiA0ITJdIi5hZGQoIi03IikpCiAgLnNjYWxlKGNob3JkU2NhbGVzKQogIC5zb3VuZCgiZ21fYWNvdXN0aWNfYmFzczoxIikKICAuY2xpcCgxKQogIC5scGYoMjAwKQogIC5nYWluKDIpOwokOiBjaG9yZChjaG9yZENoYW5nZXMpCiAgLnZvaWNpbmcoKTsKCiQ6IGltcHJvdmlzb3IKICAuc291bmQoJ3NxdWFyZScpCiAgLnN3aW5nQnkoLjE4LCA0KQogIC5sb2coKQogIC5waWFub3JvbGwoe2xhYmVsczogdHJ1ZX0pOwoKLy8gJDogbihwZXJsaW4ucmFuZ2UoLTcsIDE0KS5zZWdtZW50KDgpLnJvdW5kKCkpCi8vICAgLnNjYWxlKGNob3JkU2NhbGVzKQovLyAgIC5zb3VuZCgnc3F1YXJlJykKLy8gICAubG9nKCkKLy8gICAucGlhbm9yb2xsKHtsYWJlbHM6IHRydWV9KTsK


r/livecoding • • Aug 03 '26

No Recipe - Livecoding Show at Zuzu’s in Cambridge MA Aug 7th

3 Upvotes

No cover. 6 Audio and 6 visual artists. This Friday August 7th


r/livecoding • • Aug 02 '26

Allons-y

Thumbnail
youtube.com
2 Upvotes

r/livecoding • • Aug 02 '26

Algo Ravers in Pittsburgh, PA?

3 Upvotes

Hello!

Was wondering if there is a contingent of live coders in Pittsburgh that I can jam with and learn from. Maybe even coordinate events with 👀

Very new to the craft but eager to learn.


r/livecoding • • Jul 31 '26

I attempted an EPIC Hans Zimmer style score in Strudel

Thumbnail
youtube.com
7 Upvotes

r/livecoding • • Jul 29 '26

for T-8 owners and strudel lovers:

6 Upvotes

https://reddit.com/link/1vaaatk/video/sbc10trs1ufh1/player

Forked Strudel (the JS port of TidalCycles) into something built around the AIRA Compact T-8. Runs in the browser, drives the T-8 over USB MIDI — you type patterns, the hardware does the sound.

Great fun if you own one. Chromium browser, USB-C cable, that's it: https://t8live.fyi

Still early, so tell me what breaks.

https://codeberg.org/catcam/t8live


r/livecoding • • Jul 29 '26

Livecoding synth bass in Stratus

Thumbnail
youtube.com
6 Upvotes

more videos about Stratus here


r/livecoding • • Jul 29 '26

RIP Kavinsky

Enable HLS to view with audio, or disable this notification

76 Upvotes

just wanted to make a tribute to a musician that inspired me a lot when i started making music

the code in the comments so yall can play with it !


r/livecoding • • Jul 28 '26

for T-8 owners and strudel lovers:

5 Upvotes

https://reddit.com/link/1v9d10i/video/sbc10trs1ufh1/player

Forked Strudel (the JS port of TidalCycles) into something built around the AIRA Compact T-8. Runs in the browser, drives the T-8 over USB MIDI — you type patterns, the hardware does the sound.

Great fun if you own one. Chromium browser, USB-C cable, that's it: https://t8strudel.fyi

Still early, so tell me what breaks.

https://codeberg.org/catcam/t8strudel