diff --git a/assets/index-f68098c0.js b/assets/index-abdd0bb6.js
similarity index 99%
rename from assets/index-f68098c0.js
rename to assets/index-abdd0bb6.js
index a365119..4023d53 100644
--- a/assets/index-f68098c0.js
+++ b/assets/index-abdd0bb6.js
@@ -258,7 +258,7 @@ z2('<1/8 1/16> __ 0 <(^) (^ ^)> (0,8)').sound('wt_stereo')
let osci = 2000 + usine(1/2) * 2000;
z3('can can:2').sound().gain(1).cutoff(osci).out()
z4('1/4 kick kick snare kick').sound().gain(1).cutoff(osci).out()`],G2=r=>{r=1831565813+(r|=0)|0;let e=Math.imul(r^r>>>15,1|r);return e=e+Math.imul(e^e>>>7,61|e)^e,((e^e>>>14)>>>0)/4294967296};let XB=class{constructor(e){this.dictionaries=void 0,this.length=void 0,this.separator=void 0,this.style=void 0,this.seed=void 0;const{length:t,separator:n,dictionaries:a,style:i,seed:o}=e;this.dictionaries=a,this.separator=n,this.length=t,this.style=i,this.seed=o}generate(){if(!this.dictionaries)throw new Error('Cannot find any dictionary. Please provide at least one, or leave the "dictionary" field empty in the config object');if(this.length<=0)throw new Error("Invalid length provided");if(this.length>this.dictionaries.length)throw new Error(`The length cannot be bigger than the number of dictionaries.
-Length provided: ${this.length}. Number of dictionaries provided: ${this.dictionaries.length}`);let e=this.seed;return this.dictionaries.slice(0,this.length).reduce((t,n)=>{let a;e?(a=(o=>{if(typeof o=="string"){const s=o.split("").map(c=>c.charCodeAt(0)).reduce((c,u)=>c+u,1),l=Math.floor(Number(s));return G2(l)}return G2(o)})(e),e=4294967296*a):a=Math.random();let i=n[Math.floor(a*n.length)]||"";if(this.style==="lowerCase")i=i.toLowerCase();else if(this.style==="capital"){const[o,...s]=i.split("");i=o.toUpperCase()+s.join("")}else this.style==="upperCase"&&(i=i.toUpperCase());return t?`${t}${this.separator}${i}`:`${i}`},"")}};const q2={separator:"_",dictionaries:[]},KB=r=>{const e=[...r&&r.dictionaries||q2.dictionaries],t={...q2,...r,length:r&&r.length||e.length,dictionaries:e};if(!r||!r.dictionaries||!r.dictionaries.length)throw new Error('A "dictionaries" array must be provided. This is a breaking change introduced starting from Unique Name Generator v4. Read more about the breaking change here: https://github.com/andreasonny83/unique-names-generator#migration-guide');return new XB(t).generate()};var ZB=["aardvark","aardwolf","albatross","alligator","alpaca","amphibian","anaconda","angelfish","anglerfish","ant","anteater","antelope","antlion","ape","aphid","armadillo","asp","baboon","badger","bandicoot","barnacle","barracuda","basilisk","bass","bat","bear","beaver","bedbug","bee","beetle","bird","bison","blackbird","boa","boar","bobcat","bobolink","bonobo","booby","bovid","bug","butterfly","buzzard","camel","canid","canidae","capybara","cardinal","caribou","carp","cat","caterpillar","catfish","catshark","cattle","centipede","cephalopod","chameleon","cheetah","chickadee","chicken","chimpanzee","chinchilla","chipmunk","cicada","clam","clownfish","cobra","cockroach","cod","condor","constrictor","coral","cougar","cow","coyote","crab","crane","crawdad","crayfish","cricket","crocodile","crow","cuckoo","damselfly","deer","dingo","dinosaur","dog","dolphin","donkey","dormouse","dove","dragon","dragonfly","duck","eagle","earthworm","earwig","echidna","eel","egret","elephant","elk","emu","ermine","falcon","felidae","ferret","finch","firefly","fish","flamingo","flea","fly","flyingfish","fowl","fox","frog","galliform","gamefowl","gayal","gazelle","gecko","gerbil","gibbon","giraffe","goat","goldfish","goose","gopher","gorilla","grasshopper","grouse","guan","guanaco","guineafowl","gull","guppy","haddock","halibut","hamster","hare","harrier","hawk","hedgehog","heron","herring","hippopotamus","hookworm","hornet","horse","hoverfly","hummingbird","hyena","iguana","impala","jackal","jaguar","jay","jellyfish","junglefowl","kangaroo","kingfisher","kite","kiwi","koala","koi","krill","ladybug","lamprey","landfowl","lark","leech","lemming","lemur","leopard","leopon","limpet","lion","lizard","llama","lobster","locust","loon","louse","lungfish","lynx","macaw","mackerel","magpie","mammal","manatee","mandrill","marlin","marmoset","marmot","marsupial","marten","mastodon","meadowlark","meerkat","mink","minnow","mite","mockingbird","mole","mollusk","mongoose","monkey","moose","mosquito","moth","mouse","mule","muskox","narwhal","newt","nightingale","ocelot","octopus","opossum","orangutan","orca","ostrich","otter","owl","ox","panda","panther","parakeet","parrot","parrotfish","partridge","peacock","peafowl","pelican","penguin","perch","pheasant","pig","pigeon","pike","pinniped","piranha","planarian","platypus","pony","porcupine","porpoise","possum","prawn","primate","ptarmigan","puffin","puma","python","quail","quelea","quokka","rabbit","raccoon","rat","rattlesnake","raven","reindeer","reptile","rhinoceros","roadrunner","rodent","rook","rooster","roundworm","sailfish","salamander","salmon","sawfish","scallop","scorpion","seahorse","shark","sheep","shrew","shrimp","silkworm","silverfish","skink","skunk","sloth","slug","smelt","snail","snake","snipe","sole","sparrow","spider","spoonbill","squid","squirrel","starfish","stingray","stoat","stork","sturgeon","swallow","swan","swift","swordfish","swordtail","tahr","takin","tapir","tarantula","tarsier","termite","tern","thrush","tick","tiger","tiglon","toad","tortoise","toucan","trout","tuna","turkey","turtle","tyrannosaurus","unicorn","urial","vicuna","viper","vole","vulture","wallaby","walrus","warbler","wasp","weasel","whale","whippet","whitefish","wildcat","wildebeest","wildfowl","wolf","wolverine","wombat","woodpecker","worm","wren","xerinae","yak","zebra"],jB=["amaranth","amber","amethyst","apricot","aqua","aquamarine","azure","beige","black","blue","blush","bronze","brown","chocolate","coffee","copper","coral","crimson","cyan","emerald","fuchsia","gold","gray","green","harlequin","indigo","ivory","jade","lavender","lime","magenta","maroon","moccasin","olive","orange","peach","pink","plum","purple","red","rose","salmon","sapphire","scarlet","silver","tan","teal","tomato","turquoise","violet","white","yellow"];const fw=r=>new Promise(e=>setTimeout(e,r)),mw=r=>r.replace(/->|::/g,"&&"),C_=async(r,e)=>{try{return await new Function(`"use strict"; ${mw(e)}`).call(r.api),!0}catch(t){return r.interface.error_line.innerHTML=t,r.api._reportError(t),!1}},Js=new Map,JB=40,eY=(r,e)=>{Js.size>=JB&&Js.delete(Js.keys().next().value),Js.set(r,e)},wi=async(r,e,t=5e3)=>{e.evaluations++;const n=e.candidate;try{const a=Js.get(n);if(a)a.call(r.api);else{const i=`let i = ${e.evaluations}; ${n}`;if(await Promise.race([C_(r,i),fw(t)])){e.committed=e.candidate;const s=new Function(`"use strict"; ${mw(i)}`);eY(n,s)}else await tY(r,e,t)}}catch(a){r.interface.error_line.innerHTML=a,r.api._reportError(a)}},tY=async(r,e,t=1e3)=>{try{await Promise.race([C_(r,e.committed),fw(t)]),e.evaluations&&e.evaluations++}catch(n){r.interface.error_line.innerHTML=n,console.log(n)}},nY=async(r,e)=>{await C_(r,e)},sl={global:{candidate:"",committed:"",evaluations:0},locals:{1:{candidate:"",committed:"",evaluations:0},2:{candidate:"",committed:"",evaluations:0},3:{candidate:"",committed:"",evaluations:0},4:{candidate:"",committed:"",evaluations:0},5:{candidate:"",committed:"",evaluations:0},6:{candidate:"",committed:"",evaluations:0},7:{candidate:"",committed:"",evaluations:0},8:{candidate:"",committed:"",evaluations:0},9:{candidate:"",committed:"",evaluations:0}},init:{candidate:"",committed:"",evaluations:0},example:{candidate:"",committed:"",evaluations:0},notes:{candidate:""}},R_={Welcome:{global:{candidate:"",committed:"",evaluations:0},locals:{1:{candidate:"",committed:"",evaluations:0},2:{candidate:"",committed:"",evaluations:0},3:{candidate:"",committed:"",evaluations:0},4:{candidate:"",committed:"",evaluations:0},5:{candidate:"",committed:"",evaluations:0},6:{candidate:"",committed:"",evaluations:0},7:{candidate:"",committed:"",evaluations:0},8:{candidate:"",committed:"",evaluations:0},9:{candidate:"",committed:"",evaluations:0}},init:{candidate:"",committed:"",evaluations:0},example:{candidate:"",committed:"",evaluations:0},notes:{candidate:""}}};class rY{constructor(){C(this,"vimMode",!1);C(this,"theme","Everblush");C(this,"font","IBM Plex Mono");C(this,"font_size",24);C(this,"universes");C(this,"selected_universe","Default");C(this,"line_numbers",!0);C(this,"time_position",!0);C(this,"tips",!1);C(this,"completions",!1);C(this,"send_clock",!1);C(this,"midi_channels_scripts",!0);C(this,"midi_clock_input");C(this,"default_midi_input");C(this,"midi_clock_ppqn",24);C(this,"load_demo_songs",!0);const e=JSON.parse(localStorage.getItem("topos")||"{}");e&&Object.keys(e).length!==0?(this.vimMode=e.vimMode,this.theme=e.theme,this.font=e.font,this.font_size=e.font_size,this.universes=e.universes,this.selected_universe=e.selected_universe,this.line_numbers=e.line_numbers,this.time_position=e.time_position,this.tips=e.tips,this.completions=e.completions,this.send_clock=e.send_clock,this.midi_channels_scripts=e.midi_channels_scripts,this.midi_clock_input=e.midi_clock_input,this.midi_clock_ppqn=e.midi_clock_ppqn||24,this.default_midi_input=e.default_midi_input,this.load_demo_songs=e.load_demo_songs):this.universes=R_}get_universe(){this.universes.universe_name}get data(){return{vimMode:this.vimMode,theme:this.theme,font:this.font,font_size:this.font_size,universes:this.universes,selected_universe:this.selected_universe,line_numbers:this.line_numbers,time_position:this.time_position,tips:this.tips,completions:this.completions,send_clock:this.send_clock,midi_channels_scripts:this.midi_channels_scripts,midi_clock_input:this.midi_clock_input,midi_clock_ppqn:this.midi_clock_ppqn,default_midi_input:this.default_midi_input,load_demo_songs:this.load_demo_songs}}saveApplicationToLocalStorage(e,t){this.universes=e,this.vimMode=t.vimMode,this.font=t.font,this.font_size=t.font_size,this.selected_universe=t.selected_universe,this.line_numbers=t.line_numbers,this.time_position=t.time_position,this.tips=t.tips,this.completions=t.completions,this.send_clock=t.send_clock,this.midi_channels_scripts=t.midi_channels_scripts,this.midi_clock_input=t.midi_clock_input,this.midi_clock_ppqn=t.midi_clock_ppqn,this.default_midi_input=t.default_midi_input,this.load_demo_songs=t.load_demo_songs,localStorage.setItem("topos",JSON.stringify(this.data))}}const aY=r=>{if(r.settings.load_demo_songs){let e=Iu[Math.floor(Math.random()*Iu.length)];r.selected_universe="Demo",r.universes[r.selected_universe]=structuredClone(sl),r.universes[r.selected_universe].global.committed=e,r.universes[r.selected_universe].global.candidate=e}else try{r.selected_universe=r.settings.selected_universe,r.universes[r.selected_universe]===void 0&&(r.universes[r.selected_universe]=structuredClone(sl))}catch{r.settings.selected_universe="Welcome",r.selected_universe=r.settings.selected_universe,r.universes[r.selected_universe]=structuredClone(sl)}r.interface.universe_viewer.placeholder=`${r.selected_universe}`},pw=()=>{window.history.replaceState({},document.title,"/")},iY=async r=>{async function e(o){const s=await new Promise(l=>{const c=new FileReader;c.onload=()=>l(c.result),c.readAsDataURL(new Blob([o]))});return s.slice(s.indexOf(",")+1)}let t=JSON.stringify({universe:r.settings.universes[r.selected_universe]}),n=GB(new TextEncoder().encode(t),{level:9});const a=await e(n),i=new URL(window.location.href);i.searchParams.set("universe",a),window.history.replaceState({},"",i.toString()),navigator.clipboard.writeText(i.toString())},oY=r=>{let e=new URLSearchParams(window.location.search);if(e!==void 0){let t;if(e!==null){const n=e.get("universe");if(n!==null){let a=Uint8Array.from(atob(n),o=>o.charCodeAt(0));t=JSON.parse(WB(HB(a)));const i=KB({length:2,separator:"_",dictionaries:[jB,ZB]});ll(r,i,t.universe),pw()}}}},ll=(r,e,t=sl)=>{let n=e.trim();if(r.universes[n]===void 0){const a=structuredClone(t);r.universes[n]=a,r.settings.universes[n]=a}r.settings.selected_universe=n,r.selected_universe=n,r.interface.universe_viewer.placeholder=`${n}`,r.updateEditorView(),wi(r,r.universes[r.selected_universe.toString()].init)},ku=()=>{document.getElementById("modal-buffers").classList.contains("invisible")?(document.getElementById("editor").classList.add("invisible"),document.getElementById("modal-buffers").classList.remove("invisible"),document.getElementById("buffer-search").focus()):o0()},o0=()=>{document.getElementById("buffer-search").value="",document.getElementById("editor").classList.remove("invisible"),document.getElementById("modal-buffers").classList.add("invisible")},sY=()=>{document.getElementById("modal-settings").classList.contains("invisible")?(document.getElementById("editor").classList.add("invisible"),document.getElementById("modal-settings").classList.remove("invisible")):lY()},lY=()=>{document.getElementById("editor").classList.remove("invisible"),document.getElementById("modal-settings").classList.add("invisible")},cY={topos_logo:"topos-logo",fill_viewer:"fillviewer",load_universe_button:"load-universe-button",download_universe_button:"download-universes",upload_universe_button:"upload-universes",upload_samples_button:"upload-samples",sample_indicator:"sample-indicator",destroy_universes_button:"destroy-universes",documentation_button:"doc-button-1",eval_button:"eval-button-1",local_button:"local-button",global_button:"global-button",init_button:"init-button",note_button:"note-button",settings_button:"settings-button",close_settings_button:"close-settings-button",close_universes_button:"close-universes-button",universe_viewer:"universe-viewer",buffer_modal:"modal-buffers",buffer_search:"buffer-search",universe_creator:"universe-creator",local_script_tabs:"local-script-tabs",font_size_input:"font-size-input",font_family_selector:"font-family",vim_mode_checkbox:"vim-mode",line_numbers_checkbox:"show-line-numbers",time_position_checkbox:"show-time-position",tips_checkbox:"show-tips",completion_checkbox:"show-completions",midi_clock_checkbox:"send-midi-clock",midi_channels_scripts:"midi-channels-scripts",midi_clock_ppqn:"midi-clock-ppqn-input",theme_selector:"theme-selector",theme_previewer:"theme-previewer",load_demo_songs:"load-demo-songs",normal_mode_button:"normal-mode",vim_mode_button:"vim-mode",share_button:"share-button",audio_nudge_range:"audio_nudge",dough_nudge_range:"dough_nudge",error_line:"error_line",hydra_canvas:"hydra-bg",feedback:"feedback",drawings:"drawings",scope:"scope"},uY={play_buttons:["play-button-1"],stop_buttons:["stop-button-1"],clear_buttons:["clear-button-1"]},gw=r=>({h1:"text-brightwhite lg:text-4xl text-xl lg:ml-4 lg:mx-4 mx-2 lg:my-4 my-2 lg:mb-4 mb-4 border-b-4 pt-4 pb-3 px-2",h2:"text-brightwhite lg:text-3xl text-xl lg:ml-4 lg:mx-4 mx-2 lg:my-4 my-2 lg:mb-4 mb-4 border-b-2 pt-12 pb-3 px-2",h3:"text-brightwhite lg:text-2xl text-xl lg:ml-4 lg:mx-4 mx-2 lg:my-4 my-2 border-l-2 border-b-2 lg:mb-4 mb-4 pb-2 px-2 lg:mt-16",ul:"text-underline ml-12",li:"list-disc lg:text-2xl text-base text-white lg:mx-4 mx-2 my-4 my-2 leading-normal",p:"lg:text-2xl text-base text-white lg:mx-6 mx-2 my-4 leading-normal",warning:"animate-pulse lg:text-2xl font-bold text-brightred lg:mx-6 mx-2 my-4 leading-normal",a:"lg:text-2xl text-base text-white",code:"lg:my-4 sm:my-1 text-base lg:text-xl block whitespace-pre overflow-x-hidden",icode:"lg:my-1 my-1 lg:text-xl sm:text-xs text-brightwhite font-mono bg-brightblack",ic:"lg:my-1 my-1 lg:text-xl sm:text-xs text-brightwhite font-mono bg-brightblack",blockquote:"text-brightwhite border-l-4 border-white pl-4 my-4 mx-4",details:"lg:mx-20 py-2 px-6 lg:text-2xl text-white border-l-8 box-border bg-selection_foreground",summary:"font-semibold text-xl",table:"justify-center lg:my-12 my-2 lg:mx-12 mx-2 lg:text-2xl text-base w-full text-left text-white border-collapse",thead:"text-xs text-gray-700 uppercase",th:"",td:"",tr:"",box:"border bg-red"}),dY=r=>{const e=Ot(r);return`
+Length provided: ${this.length}. Number of dictionaries provided: ${this.dictionaries.length}`);let e=this.seed;return this.dictionaries.slice(0,this.length).reduce((t,n)=>{let a;e?(a=(o=>{if(typeof o=="string"){const s=o.split("").map(c=>c.charCodeAt(0)).reduce((c,u)=>c+u,1),l=Math.floor(Number(s));return G2(l)}return G2(o)})(e),e=4294967296*a):a=Math.random();let i=n[Math.floor(a*n.length)]||"";if(this.style==="lowerCase")i=i.toLowerCase();else if(this.style==="capital"){const[o,...s]=i.split("");i=o.toUpperCase()+s.join("")}else this.style==="upperCase"&&(i=i.toUpperCase());return t?`${t}${this.separator}${i}`:`${i}`},"")}};const q2={separator:"_",dictionaries:[]},KB=r=>{const e=[...r&&r.dictionaries||q2.dictionaries],t={...q2,...r,length:r&&r.length||e.length,dictionaries:e};if(!r||!r.dictionaries||!r.dictionaries.length)throw new Error('A "dictionaries" array must be provided. This is a breaking change introduced starting from Unique Name Generator v4. Read more about the breaking change here: https://github.com/andreasonny83/unique-names-generator#migration-guide');return new XB(t).generate()};var ZB=["aardvark","aardwolf","albatross","alligator","alpaca","amphibian","anaconda","angelfish","anglerfish","ant","anteater","antelope","antlion","ape","aphid","armadillo","asp","baboon","badger","bandicoot","barnacle","barracuda","basilisk","bass","bat","bear","beaver","bedbug","bee","beetle","bird","bison","blackbird","boa","boar","bobcat","bobolink","bonobo","booby","bovid","bug","butterfly","buzzard","camel","canid","canidae","capybara","cardinal","caribou","carp","cat","caterpillar","catfish","catshark","cattle","centipede","cephalopod","chameleon","cheetah","chickadee","chicken","chimpanzee","chinchilla","chipmunk","cicada","clam","clownfish","cobra","cockroach","cod","condor","constrictor","coral","cougar","cow","coyote","crab","crane","crawdad","crayfish","cricket","crocodile","crow","cuckoo","damselfly","deer","dingo","dinosaur","dog","dolphin","donkey","dormouse","dove","dragon","dragonfly","duck","eagle","earthworm","earwig","echidna","eel","egret","elephant","elk","emu","ermine","falcon","felidae","ferret","finch","firefly","fish","flamingo","flea","fly","flyingfish","fowl","fox","frog","galliform","gamefowl","gayal","gazelle","gecko","gerbil","gibbon","giraffe","goat","goldfish","goose","gopher","gorilla","grasshopper","grouse","guan","guanaco","guineafowl","gull","guppy","haddock","halibut","hamster","hare","harrier","hawk","hedgehog","heron","herring","hippopotamus","hookworm","hornet","horse","hoverfly","hummingbird","hyena","iguana","impala","jackal","jaguar","jay","jellyfish","junglefowl","kangaroo","kingfisher","kite","kiwi","koala","koi","krill","ladybug","lamprey","landfowl","lark","leech","lemming","lemur","leopard","leopon","limpet","lion","lizard","llama","lobster","locust","loon","louse","lungfish","lynx","macaw","mackerel","magpie","mammal","manatee","mandrill","marlin","marmoset","marmot","marsupial","marten","mastodon","meadowlark","meerkat","mink","minnow","mite","mockingbird","mole","mollusk","mongoose","monkey","moose","mosquito","moth","mouse","mule","muskox","narwhal","newt","nightingale","ocelot","octopus","opossum","orangutan","orca","ostrich","otter","owl","ox","panda","panther","parakeet","parrot","parrotfish","partridge","peacock","peafowl","pelican","penguin","perch","pheasant","pig","pigeon","pike","pinniped","piranha","planarian","platypus","pony","porcupine","porpoise","possum","prawn","primate","ptarmigan","puffin","puma","python","quail","quelea","quokka","rabbit","raccoon","rat","rattlesnake","raven","reindeer","reptile","rhinoceros","roadrunner","rodent","rook","rooster","roundworm","sailfish","salamander","salmon","sawfish","scallop","scorpion","seahorse","shark","sheep","shrew","shrimp","silkworm","silverfish","skink","skunk","sloth","slug","smelt","snail","snake","snipe","sole","sparrow","spider","spoonbill","squid","squirrel","starfish","stingray","stoat","stork","sturgeon","swallow","swan","swift","swordfish","swordtail","tahr","takin","tapir","tarantula","tarsier","termite","tern","thrush","tick","tiger","tiglon","toad","tortoise","toucan","trout","tuna","turkey","turtle","tyrannosaurus","unicorn","urial","vicuna","viper","vole","vulture","wallaby","walrus","warbler","wasp","weasel","whale","whippet","whitefish","wildcat","wildebeest","wildfowl","wolf","wolverine","wombat","woodpecker","worm","wren","xerinae","yak","zebra"],jB=["amaranth","amber","amethyst","apricot","aqua","aquamarine","azure","beige","black","blue","blush","bronze","brown","chocolate","coffee","copper","coral","crimson","cyan","emerald","fuchsia","gold","gray","green","harlequin","indigo","ivory","jade","lavender","lime","magenta","maroon","moccasin","olive","orange","peach","pink","plum","purple","red","rose","salmon","sapphire","scarlet","silver","tan","teal","tomato","turquoise","violet","white","yellow"];const fw=r=>new Promise(e=>setTimeout(e,r)),mw=r=>r.replace(/->|::/g,"&&"),C_=async(r,e)=>{try{return await new Function(`"use strict"; ${mw(e)}`).call(r.api),!0}catch(t){return r.interface.error_line.innerHTML=t,r.api._reportError(t),!1}},Js=new Map,JB=40,eY=(r,e)=>{Js.size>=JB&&Js.delete(Js.keys().next().value),Js.set(r,e)},wi=async(r,e,t=5e3)=>{e.evaluations++;const n=e.candidate;try{const a=Js.get(n);if(a)a.call(r.api);else{const i=`let i = ${e.evaluations}; ${n}`;if(await Promise.race([C_(r,i),fw(t)])){e.committed=e.candidate;const s=new Function(`"use strict"; ${mw(i)}`);eY(n,s)}else await tY(r,e,t)}}catch(a){r.interface.error_line.innerHTML=a,r.api._reportError(a)}},tY=async(r,e,t=1e3)=>{try{await Promise.race([C_(r,e.committed),fw(t)]),e.evaluations&&e.evaluations++}catch(n){r.interface.error_line.innerHTML=n,console.log(n)}},nY=async(r,e)=>{await C_(r,e)},sl={global:{candidate:"",committed:"",evaluations:0},locals:{1:{candidate:"",committed:"",evaluations:0},2:{candidate:"",committed:"",evaluations:0},3:{candidate:"",committed:"",evaluations:0},4:{candidate:"",committed:"",evaluations:0},5:{candidate:"",committed:"",evaluations:0},6:{candidate:"",committed:"",evaluations:0},7:{candidate:"",committed:"",evaluations:0},8:{candidate:"",committed:"",evaluations:0},9:{candidate:"",committed:"",evaluations:0}},init:{candidate:"",committed:"",evaluations:0},example:{candidate:"",committed:"",evaluations:0},notes:{candidate:""}},R_={Welcome:{global:{candidate:"",committed:"",evaluations:0},locals:{1:{candidate:"",committed:"",evaluations:0},2:{candidate:"",committed:"",evaluations:0},3:{candidate:"",committed:"",evaluations:0},4:{candidate:"",committed:"",evaluations:0},5:{candidate:"",committed:"",evaluations:0},6:{candidate:"",committed:"",evaluations:0},7:{candidate:"",committed:"",evaluations:0},8:{candidate:"",committed:"",evaluations:0},9:{candidate:"",committed:"",evaluations:0}},init:{candidate:"",committed:"",evaluations:0},example:{candidate:"",committed:"",evaluations:0},notes:{candidate:""}}};class rY{constructor(){C(this,"vimMode",!1);C(this,"theme","Everblush");C(this,"font","IBM Plex Mono");C(this,"font_size",24);C(this,"universes");C(this,"selected_universe","Default");C(this,"line_numbers",!0);C(this,"time_position",!0);C(this,"tips",!1);C(this,"completions",!1);C(this,"send_clock",!1);C(this,"midi_channels_scripts",!0);C(this,"midi_clock_input");C(this,"default_midi_input");C(this,"midi_clock_ppqn",24);C(this,"load_demo_songs",!0);const e=JSON.parse(localStorage.getItem("topos")||"{}");e&&Object.keys(e).length!==0?(this.vimMode=e.vimMode,this.theme=e.theme,this.font=e.font,this.font_size=e.font_size,this.universes=e.universes,this.selected_universe=e.selected_universe,this.line_numbers=e.line_numbers,this.time_position=e.time_position,this.tips=e.tips,this.completions=e.completions,this.send_clock=e.send_clock,this.midi_channels_scripts=e.midi_channels_scripts,this.midi_clock_input=e.midi_clock_input,this.midi_clock_ppqn=e.midi_clock_ppqn||24,this.default_midi_input=e.default_midi_input,this.load_demo_songs=e.load_demo_songs):this.universes=R_}get_universe(){this.universes.universe_name}get data(){return{vimMode:this.vimMode,theme:this.theme,font:this.font,font_size:this.font_size,universes:this.universes,selected_universe:this.selected_universe,line_numbers:this.line_numbers,time_position:this.time_position,tips:this.tips,completions:this.completions,send_clock:this.send_clock,midi_channels_scripts:this.midi_channels_scripts,midi_clock_input:this.midi_clock_input,midi_clock_ppqn:this.midi_clock_ppqn,default_midi_input:this.default_midi_input,load_demo_songs:this.load_demo_songs}}saveApplicationToLocalStorage(e,t){this.universes=e,this.vimMode=t.vimMode,this.font=t.font,this.font_size=t.font_size,this.selected_universe=t.selected_universe,this.line_numbers=t.line_numbers,this.time_position=t.time_position,this.tips=t.tips,this.completions=t.completions,this.send_clock=t.send_clock,this.midi_channels_scripts=t.midi_channels_scripts,this.midi_clock_input=t.midi_clock_input,this.midi_clock_ppqn=t.midi_clock_ppqn,this.default_midi_input=t.default_midi_input,this.load_demo_songs=t.load_demo_songs,localStorage.setItem("topos",JSON.stringify(this.data))}}const aY=r=>{if(r.settings.load_demo_songs){let e=Iu[Math.floor(Math.random()*Iu.length)];r.selected_universe="Demo",r.universes[r.selected_universe]=structuredClone(sl),r.universes[r.selected_universe].global.committed=e,r.universes[r.selected_universe].global.candidate=e}else try{r.selected_universe=r.settings.selected_universe,r.universes[r.selected_universe]===void 0&&(r.universes[r.selected_universe]=structuredClone(sl))}catch{r.settings.selected_universe="Welcome",r.selected_universe=r.settings.selected_universe,r.universes[r.selected_universe]=structuredClone(sl)}r.interface.universe_viewer.placeholder=`${r.selected_universe}`},pw=()=>{window.history.replaceState({},document.title,"/")},iY=async r=>{async function e(o){const s=await new Promise(l=>{const c=new FileReader;c.onload=()=>l(c.result),c.readAsDataURL(new Blob([o]))});return s.slice(s.indexOf(",")+1)}let t=JSON.stringify({universe:r.settings.universes[r.selected_universe]}),n=GB(new TextEncoder().encode(t),{level:9});const a=await e(n),i=new URL(window.location.href);i.searchParams.set("universe",a),window.history.replaceState({},"",i.toString()),navigator.clipboard.writeText(i.toString())},oY=r=>{let e=new URLSearchParams(window.location.search);if(e!==void 0){let t;if(e!==null){const n=e.get("universe");if(n!==null){let a=Uint8Array.from(atob(n),o=>o.charCodeAt(0));t=JSON.parse(WB(HB(a)));const i=KB({length:2,separator:"_",dictionaries:[jB,ZB]});ll(r,i,t.universe),pw()}}}},ll=(r,e,t=sl)=>{let n=e.trim();if(r.universes[n]===void 0){const a=structuredClone(t);r.universes[n]=a,r.settings.universes[n]=a}r.settings.selected_universe=n,r.selected_universe=n,r.interface.universe_viewer.placeholder=`${n}`,r.updateEditorView(),wi(r,r.universes[r.selected_universe.toString()].init)},ku=()=>{document.getElementById("modal-buffers").classList.contains("invisible")?(document.getElementById("editor").classList.add("invisible"),document.getElementById("modal-buffers").classList.remove("invisible"),document.getElementById("buffer-search").focus()):o0()},o0=()=>{document.getElementById("buffer-search").value="",document.getElementById("editor").classList.remove("invisible"),document.getElementById("modal-buffers").classList.add("invisible")},sY=()=>{document.getElementById("modal-settings").classList.contains("invisible")?(document.getElementById("editor").classList.add("invisible"),document.getElementById("modal-settings").classList.remove("invisible")):lY()},lY=()=>{document.getElementById("editor").classList.remove("invisible"),document.getElementById("modal-settings").classList.add("invisible")},cY={topos_logo:"topos-logo",fill_viewer:"fillviewer",load_universe_button:"load-universe-button",download_universe_button:"download-universes",upload_universe_button:"upload-universes",upload_samples_button:"upload-samples",sample_indicator:"sample-indicator",destroy_universes_button:"destroy-universes",documentation_button:"doc-button-1",eval_button:"eval-button-1",local_button:"local-button",global_button:"global-button",init_button:"init-button",note_button:"note-button",settings_button:"settings-button",close_settings_button:"close-settings-button",close_universes_button:"close-universes-button",universe_viewer:"universe-viewer",buffer_modal:"modal-buffers",buffer_search:"buffer-search",universe_creator:"universe-creator",local_script_tabs:"local-script-tabs",font_size_input:"font-size-input",font_family_selector:"font-family",vim_mode_checkbox:"vim-mode",line_numbers_checkbox:"show-line-numbers",time_position_checkbox:"show-time-position",tips_checkbox:"show-tips",completion_checkbox:"show-completions",midi_clock_checkbox:"send-midi-clock",midi_channels_scripts:"midi-channels-scripts",midi_clock_ppqn:"midi-clock-ppqn-input",theme_selector:"theme-selector",theme_previewer:"theme-previewer",load_demo_songs:"load-demo-songs",normal_mode_button:"normal-mode",vim_mode_button:"vim-mode",share_button:"share-button",audio_nudge_range:"audio_nudge",dough_nudge_range:"dough_nudge",error_line:"error_line",hydra_canvas:"hydra-bg",feedback:"feedback",drawings:"drawings",scope:"scope"},uY={play_buttons:["play-button-1"],stop_buttons:["stop-button-1"],clear_buttons:["clear-button-1"]},gw=r=>({h1:"text-brightwhite lg:text-4xl text-xl lg:ml-4 lg:mx-4 mx-2 lg:my-4 my-2 lg:mb-4 mb-4 border-b-4 pt-4 pb-3 px-2",h2:"text-brightwhite lg:text-3xl text-xl lg:ml-4 lg:mx-4 mx-2 lg:my-4 my-2 lg:mb-4 mb-4 border-b-2 pt-12 pb-3 px-2",h3:"text-brightwhite lg:text-2xl text-xl lg:ml-4 lg:mx-4 mx-2 lg:my-4 my-2 border-l-2 border-b-2 lg:mb-4 mb-4 pb-2 px-2 lg:mt-16",ul:"text-underline ml-12",li:"list-disc lg:text-2xl text-base text-white lg:mx-4 mx-2 my-4 my-2 leading-normal",p:"lg:text-2xl text-base text-white lg:mx-6 mx-2 my-4 leading-normal",warning:"animate-pulse lg:text-2xl font-bold text-brightred lg:mx-6 mx-2 my-4 leading-normal",a:"lg:text-2xl text-base text-brightred",code:"lg:my-4 sm:my-1 text-base lg:text-xl block whitespace-pre overflow-x-hidden",icode:"lg:my-1 my-1 lg:text-xl sm:text-xs text-brightwhite font-mono bg-brightblack",ic:"lg:my-1 my-1 lg:text-xl sm:text-xs text-brightwhite font-mono bg-brightblack",blockquote:"text-brightwhite border-l-4 border-white pl-4 my-4 mx-4",details:"lg:mx-20 py-2 px-6 lg:text-2xl text-white border-l-8 box-border bg-selection_foreground",summary:"font-semibold text-xl",table:"justify-center lg:my-12 my-2 lg:mx-12 mx-2 lg:text-2xl text-base w-full text-left text-white border-collapse",thead:"text-xs text-gray-700 uppercase",th:"",td:"",tr:"",box:"border bg-red"}),dY=r=>{const e=Ot(r);return`
# Welcome
Welcome to the **Topos** documentation. You can jump here anytime by pressing ${gt("Ctrl + D")}. Press again to make the documentation disappear. Contributions are much appreciated! The documentation [lives here](https://github.com/Bubobubobubobubo/topos/tree/main/src/documentation).
diff --git a/assets/index-abdd0bb6.js.gz b/assets/index-abdd0bb6.js.gz
new file mode 100644
index 0000000..40c0769
Binary files /dev/null and b/assets/index-abdd0bb6.js.gz differ
diff --git a/assets/index-f68098c0.js.gz b/assets/index-f68098c0.js.gz
deleted file mode 100644
index 9182d04..0000000
Binary files a/assets/index-f68098c0.js.gz and /dev/null differ
diff --git a/index.html b/index.html
index bf78f37..94f925a 100644
--- a/index.html
+++ b/index.html
@@ -14,7 +14,7 @@
-
+