diff --git a/assets/index-40f9e313.js.gz b/assets/index-40f9e313.js.gz deleted file mode 100644 index 4785e26..0000000 Binary files a/assets/index-40f9e313.js.gz and /dev/null differ diff --git a/assets/index-40f9e313.js b/assets/index-fbf3fa10.js similarity index 98% rename from assets/index-40f9e313.js rename to assets/index-fbf3fa10.js index c8c4f77..455cf98 100644 --- a/assets/index-40f9e313.js +++ b/assets/index-fbf3fa10.js @@ -826,12 +826,84 @@ This sample pack is only one folder full of french phonems! It sounds super nice
${Ui(r,"Juliette")}
-`},tY="/assets/topos_arch-db355d32.svg",nY="/assets/many_universes-d74e86dc.svg",rY=r=>{const e=Et(r);return` +`},tY=r=>{const e=Et(r);return` + + +## Sample Controls + +There are some basic controls over the playback of each sample. This allows you to get into more serious sampling if you take the time to really work with your audio materials. + +| Method | Alias | Description | +|---------|-------|--------------------------------------------------------| +| n | | Select a sample in the current folder (from 0 to infinity) | +| begin | | Beginning of the sample playback (between 0 and 1) | +| end | | End of the sample (between 0 and 1) | +| loopBegin | | Beginning of the loop section (between 0 and 1) | +| loopEnd | | End of the loop section (between 0 and 1) | +| loop | | Whether to loop or not the audio sample | +| stretch | | Stretches the audio playback rate of a sample over n beats | +| speed | | Playback speed (2 = twice as fast) | +| cut | | Set with 0 or 1. Will cut the sample as soon as another sample is played on the same bus | +| clip | | Multiply the duration of the sample with the given number | +| pan | | Stereo position of the audio playback (0 = left, 1 = right)| + +${e("Complex sampling duties",` +// Using some of the modifiers described above :) +beat(.5)::snd('pad').begin(0.2) + .speed([1, 0.9, 0.8].beat(4)) + .n(2).pan(usine(.5)) + .end(rand(0.3,0.8)) + .room(0.8).size(0.5) + .clip(1).out() + `,!0)}; + +${e("Playing an amen break",` +// Note that stretch has the same value as beat +beat(4) :: sound('amen1').n(11).stretch(4).out() +beat(1) :: sound('kick').shape(0.35).out()`,!0)}; + + +## Filters + +There are three basic filters: a _lowpass_, _highpass_ and _bandpass_ filters with rather soft slope. Each of them can take up to two arguments. You can also use only the _cutoff_ frequency and the resonance will stay to its default nominal value. You will learn more about the usage of filters in the synths page! + +| Method | Alias | Description | +|------------|-------|-----------------------------------------| +| cutoff | lpf | Cutoff frequency of the lowpass filter | +| resonance | lpq | Resonance of the lowpass filter | +| hcutoff | hpf | Cutoff frequency of the highpass filter | +| hresonance | hpq | Resonance of the highpass filter | +| bandf | bpf | Cutoff frequency of the bandpass filter | +| bandq | bpq | Resonance of the bandpass filter | +| vowel | | Formant filter with (vocal quality) | + +${e("Filter sweep using a low frequency oscillator",` +beat(.5) && snd('sawtooth') + .cutoff([2000,500].pick() + usine(.5) * 4000) + .resonance(0.9).freq([100,150].pick()) + .out() + `,!0)}; + + +## Compression + +This effect is leveraging the basic WebAudio compressor. More information can be found about it on the [DynamicsCompressorNode](https://developer.mozilla.org/en-US/docs/Web/API/DynamicsCompressorNode?retiredLocale=de#instance_properties) page. This can be come quite complex :) + +| Method | Alias | Description | +|------------|-----------|---------------------------------| +| comp | cmp | Compressor threshold value (dB) over which compressor operates | +| ratio | rt | Compressor ratio: input amount in dB needed for 1dB change in the output | +| knee | kn | dB value defining the range over which the signal transitions to compressed section | +| compAttack | cmpa | In seconds, time to decrease the gain by 10db | +| compRelease | cmpr | In seconds, time to increase the gain by 10db | + + +`},nY="/assets/topos_arch-db355d32.svg",rY="/assets/many_universes-d74e86dc.svg",aY=r=>{const e=Et(r);return` # Interface The Topos interface is designed on a simple concept: _scripts_ and _universes_. By understanding how the interface works, you will already understand quite a lot. Make sure to learn the dedicated keybindings as well. They will give you extra powers! - + # Scripts @@ -876,7 +948,7 @@ There are some useful functions to help you manage your scripts: # Universes - + A set of files is called a _universe_. You can switch between universes immediately immediately by pressing ${bt("Ctrl + B")}. You can also create a new universe by entering a name. Load a universe by typing its name. Once a universe is loaded, it is not possible to call any data/code from any other universe. Switching between universes does not stop the transport nor reset the clock. The context switches but time keeps flowing. This can be useful for transitioning between songs / parts. @@ -895,7 +967,7 @@ There are some useful functions to help you manage your universes: - Topos will automatically fetch and switch to the universe that was sent to you. -`},aY=r=>{let e=Et(r);return` +`},iY=r=>{let e=Et(r);return` # Keybindings Topos is made to be controlled entirely with a keyboard. It is recommanded to stop using the mouse as much as possible when you are _live coding_. Here is a list of the most important keybindings: @@ -942,7 +1014,7 @@ ${e("Claping twice as fast with fill",` beat(fill() ? 1/4 : 1/2)::sound('cp').out() `,!0)} -`},iY=r=>{const e=Et(r);return` +`},sY=r=>{const e=Et(r);return` # Code Topos scripts are using the [JavaScript](https://en.wikipedia.org/wiki/JavaScript) syntax. This is the language used to write pretty much anything in a web browser. JavaScript is easy to learn, and even faster to learn if you are already familiar with other programming languages. Here are some good resources if you want to learn more about it: @@ -1000,7 +1072,7 @@ ${e("This example will crash! Who cares?",` qjldfqsdklqsjdlkqjsdlqkjdlksjd `,!0)} -`},sY=r=>{let e=Et(r);return` +`},oY=r=>{let e=Et(r);return` # Mouse Using the mouse is a fun way to control your code. It's basically an X/Y controller that you don't have to pay for! There are clever actions you can do with the mouse from generating notes to activating scripts conditionally! @@ -1054,7 +1126,7 @@ log([4,5,6,7].mouseY()) - `},oY=r=>{const e=Et(r);return`# Oscilloscope + `},lY=r=>{const e=Et(r);return`# Oscilloscope You can turn on the oscilloscope to generate interesting visuals or to inspect audio. Use the scope() function to turn on/off the oscilloscope and to configure it. The oscilloscope is off by default. @@ -1100,7 +1172,7 @@ scope({enabled: true, thickness: 8, Note that these values can be patterned as well! You can transform the oscilloscope into its own light show if you want. The picture is not stable anyway so you won't have much use of it for precision work :) - `},lY=r=>` + `},cY=r=>` # Synchronisation Synchronisation is currently a work in progress. If you are a programmer and if you know something about the topic, please help us to make it work! In the meantime, Topos can already be synchronised but it takes some getting used to. @@ -1122,7 +1194,7 @@ In the settings menu, you will find two ways to _nudge_ the clock, allowing you - **audio nudge**: nudge the **synths** and **sampler** forward (in milliseconds). - note that you need to give some time to the system (2ms+) in order to give it enough time to load and play sounds. - `,cY=()=>` + `,uY=()=>` # About Topos ## The Topos Project @@ -1164,7 +1236,7 @@ You can support the project by making a small donation on [Kofi](https://ko-fi.c - All the [Topos](https//github.com/Bubobubobubobubo/Topos) contributors! **Have fun!** -`,uY=r=>{const e=Et(r);return` +`,dY=r=>{const e=Et(r);return` # Bonus features Some features have been included as a bonus. These features are often about patterning over things that are not directly related to sound: pictures, video, etc. @@ -1226,7 +1298,7 @@ beat(0.25)::gif({ posX: ir(1,1200), // CSS Horizontal Position posY: ir(1, 800), // CSS Vertical Position `,!0)} -`},dY=r=>{const e=Et(r);return` +`},mY=r=>{const e=Et(r);return` # Chaining You might have noticed that **Topos** is using chains a lot. Chains are a very common pattern when programming, especially when you deal with objets that can be composed from many changing properties. Method chaining is used by many objects but mostly by sound() and midi(). It looks like this: @@ -1334,7 +1406,7 @@ z1('s 0 5 7 0 3 7 0 2 7 0 1 7 0 1 6 5 4 3 2') .odds(1/2, n => n.speed(0.5)) .room(0.5).size(0.5).out() `,!0)}; -`},mY=r=>{const e=Et(r);return` +`},hY=r=>{const e=Et(r);return` # Interaction Topos can interact with the physical world or react to events coming from outside the system (_MIDI_, physical control, etc). By creating interactions with your mouse, keyboard or controllers, you can make your performance more dynamic and/or easier to control. @@ -1432,7 +1504,7 @@ ${e("Show scale on external keyboard",'show_scale("F","aeolian",0,4)',!0)} ${e("Hide scale",'hide_scale("F","aeolian",0,4)',!0)} -`},hY="/assets/times-1426387b.svg",pY=r=>` +`},pY="/assets/times-1426387b.svg",fY=r=>` # What is time? There are two ways to think _intuitively_ about time: @@ -1442,7 +1514,7 @@ There are two ways to think _intuitively_ about time: A musician's job is to interweave cyclical and linear time, repetition and continuity. - + # Time and programming @@ -1458,12 +1530,12 @@ By making music with **Topos**, you will mingle repetitive structures of differe - **cyclical time:** euclidean rhythms, beats, pulsed time, etc... -`,fY="/assets/pulses-30df7a48.svg",gY=r=>{let e=Et(r);return` +`,gY="/assets/pulses-30df7a48.svg",_Y=r=>{let e=Et(r);return` # Linear time **Topos** time is flowing just like in your typical computer music program, with _bars_, _beats_, _pulses_ and so on. The transport can be **paused**, **resumed** and/or **stopped**. There are interface buttons to handle these tasks. The tiniest unit of time is the **pulse**. There is a finite number of **pulses** per **beat** (by default, 48 **PPQN**). Beats are passing at a given **BPM** (_beats per minute_). You can change the **BPM** anytime you want. You can also change the granularity of time. - + ### Beats, bar, pulses @@ -1607,7 +1679,7 @@ oncount([1, 4, 5, 8, 9, 10, 11, 12, 13, 14, 15, 16],16) :: sound('hh').out() -`},_Y=r=>{let e=Et(r);return` +`},bY=r=>{let e=Et(r);return` # Cyclical time Time as a cycle. A cycle can be quite long (a few bars) or very short (a few pulses). Cyclical time is extremely interesting for _live coders_ since it allows you to control a process that will eventually repeat. If your time constructs are repeating, you are able to hear them again and again. Since you can react and alter the code to change the loops, you become part of a complex feedback system between the computer and yourself. @@ -1787,7 +1859,7 @@ prob(80)::beat(.5) && sound(['hh', 'hat'].pick()).out() -`},bY=r=>{let e=Et(r);return` +`},SY=r=>{let e=Et(r);return` # Long forms Now you know how to play some basic rhythms but in any case, you are stuck in a loop. It's time to learn how to compose larger/longer musical structures. The functions you are going to learn are all about mastering the flow of time on longer periods. **Read and experiment a lot with the following examples**. @@ -1901,7 +1973,7 @@ if (onbar([1,2], 4)) { rhythm(.5, 2, 7) :: snd('snare').n(3).out(); }`,!0)} -`},SY=r=>{const e=Et(r);return` +`},OY=r=>{const e=Et(r);return` # MIDI You can use Topos to play MIDI thanks to the [WebMIDI API](https://developer.mozilla.org/en-US/docs/Web/API/Web_MIDI_API). You can currently send notes, control change, program change and so on. You can also send a MIDI Clock to your MIDI devices or favorite DAW. Note that Topos is also capable of playing MIDI using **Ziffers** which provides a better syntax for melodic expression. @@ -2004,7 +2076,7 @@ ${e("Setting the channel within the pattern",` z1('(0 2 e 5 2):0 (4 2):1').midi().out() `,!0)} -`},OY=r=>{const e=Et(r);return` +`},vY=r=>{const e=Et(r);return` # Open Sound Control Topos is a sandboxed web application. It cannot speak with your computer directly or only through a secure connexion. You can use the [Open Sound Control](https://en.wikipedia.org/wiki/Open_Sound_Control) protocol to send and receive data from your computer. This protocol is used by many softwares and hardware devices. You can use it to control your favorite DAW, your favorite synthesizer, your favorite robot, or anything really! To use **OSC** with Topos, you will need to download the ToposServer by [following this link](https://github.com/Bubobubobubobubo/Topos). You can download everything as a zip file or clone the project if you know what you are doing. Here is a quick guide to get you started: @@ -2055,78 +2127,6 @@ ${e("Sending a customized OSC message",` osc('/my/osc/address', 5000, 1, 2, 3) `,!0)} -`},vY=r=>{const e=Et(r);return` - - -## Sample Controls - -There are some basic controls over the playback of each sample. This allows you to get into more serious sampling if you take the time to really work with your audio materials. - -| Method | Alias | Description | -|---------|-------|--------------------------------------------------------| -| n | | Select a sample in the current folder (from 0 to infinity) | -| begin | | Beginning of the sample playback (between 0 and 1) | -| end | | End of the sample (between 0 and 1) | -| loopBegin | | Beginning of the loop section (between 0 and 1) | -| loopEnd | | End of the loop section (between 0 and 1) | -| loop | | Whether to loop or not the audio sample | -| stretch | | Stretches the audio playback rate of a sample over n beats | -| speed | | Playback speed (2 = twice as fast) | -| cut | | Set with 0 or 1. Will cut the sample as soon as another sample is played on the same bus | -| clip | | Multiply the duration of the sample with the given number | -| pan | | Stereo position of the audio playback (0 = left, 1 = right)| - -${e("Complex sampling duties",` -// Using some of the modifiers described above :) -beat(.5)::snd('pad').begin(0.2) - .speed([1, 0.9, 0.8].beat(4)) - .n(2).pan(usine(.5)) - .end(rand(0.3,0.8)) - .room(0.8).size(0.5) - .clip(1).out() - `,!0)}; - -${e("Playing an amen break",` -// Note that stretch has the same value as beat -beat(4) :: sound('amen1').n(11).stretch(4).out() -beat(1) :: sound('kick').shape(0.35).out()`,!0)}; - - -## Filters - -There are three basic filters: a _lowpass_, _highpass_ and _bandpass_ filters with rather soft slope. Each of them can take up to two arguments. You can also use only the _cutoff_ frequency and the resonance will stay to its default nominal value. You will learn more about the usage of filters in the synths page! - -| Method | Alias | Description | -|------------|-------|-----------------------------------------| -| cutoff | lpf | Cutoff frequency of the lowpass filter | -| resonance | lpq | Resonance of the lowpass filter | -| hcutoff | hpf | Cutoff frequency of the highpass filter | -| hresonance | hpq | Resonance of the highpass filter | -| bandf | bpf | Cutoff frequency of the bandpass filter | -| bandq | bpq | Resonance of the bandpass filter | -| vowel | | Formant filter with (vocal quality) | - -${e("Filter sweep using a low frequency oscillator",` -beat(.5) && snd('sawtooth') - .cutoff([2000,500].pick() + usine(.5) * 4000) - .resonance(0.9).freq([100,150].pick()) - .out() - `,!0)}; - - -## Compression - -This effect is leveraging the basic WebAudio compressor. More information can be found about it on the [DynamicsCompressorNode](https://developer.mozilla.org/en-US/docs/Web/API/DynamicsCompressorNode?retiredLocale=de#instance_properties) page. This can be come quite complex :) - -| Method | Alias | Description | -|------------|-----------|---------------------------------| -| comp | cmp | Compressor threshold value (dB) over which compressor operates | -| ratio | rt | Compressor ratio: input amount in dB needed for 1dB change in the output | -| knee | kn | dB value defining the range over which the signal transitions to compressed section | -| compAttack | cmpa | In seconds, time to decrease the gain by 10db | -| compRelease | cmpr | In seconds, time to increase the gain by 10db | - - `},EY=r=>{const e=Et(r);return` # Array patterns @@ -3767,7 +3767,7 @@ https://github.com/highlightjs/highlight.js/issues/2277`),ie=L,te=V),z===void 0& ${n} \`\`\` -`},AA=r=>(r.api.codeExamples={},{introduction:z7(r),interface:rY(r),interaction:mY(r),code:iY(r),time:pY(),linear:gY(r),cyclic:_Y(r),longform:bY(r),sound:vY(r),synths:xY(r),chaining:dY(r),patterns:EY(r),ziffers_basics:AY(r),ziffers_scales:wY(r),ziffers_algorithmic:NY(r),ziffers_rhythm:IY(r),ziffers_tonnetz:DY(r),midi:SY(r),osc:OY(r),lfos:CY(r),variables:yY(r),probabilities:RY(r),functions:TY(r),shortcuts:aY(r),amplitude:X7(r),reverb_delay:K7(r),sampler:Z7(r),mouse:sY(r),oscilloscope:oY(r),audio_basics:J7(r),synchronisation:lY(),bonus:uY(r),sample_list:eY(r),sample_banks:j7(),loading_samples:W7(r),about:cY()}),wA=r=>{var e,t,n,a,i;if((e=document.getElementById("app"))!=null&&e.classList.contains("hidden"))(t=document.getElementById("app"))==null||t.classList.remove("hidden"),(n=document.getElementById("documentation"))==null||n.classList.add("hidden"),r.exampleIsPlaying=!1;else{(a=document.getElementById("app"))==null||a.classList.add("hidden"),(i=document.getElementById("documentation"))==null||i.classList.remove("hidden");let s=pC(),o=Object.keys(s).map(l=>({type:"output",regex:new RegExp(`<${l}([^>]*)>`,"g"),replace:(c,u)=>`<${l} class="${s[l]}" ${u}>`}));l_(r,o)}},Ma=()=>{var r,e,t;(r=document.getElementById("app"))!=null&&r.classList.contains("hidden")&&((e=document.getElementById("app"))==null||e.classList.remove("hidden"),(t=document.getElementById("documentation"))==null||t.classList.add("hidden"))},l_=(r,e)=>{const n=new pA.Converter({emoji:!0,moreStyling:!0,backslashEscapesHTMLTags:!0,extensions:[lq({auto_detection:!0}),...e]}).makeHtml(r.docs[r.currentDocumentationPane]);document.getElementById("documentation-content").innerHTML=n},cq=r=>{document.addEventListener("keydown",e=>{e.altKey&&(r.fill=!0,r.interface.fill_viewer.classList.remove("invisible"))}),document.addEventListener("keyup",e=>{e.key==="Alt"&&(r.fill=!1,r.interface.fill_viewer.classList.add("invisible"))})},uq=r=>{window.addEventListener("keydown",e=>{if(e.key==="Tab"&&e.preventDefault(),e.ctrlKey&&e.key==="m"){e.preventDefault();let t=document.getElementById("topbar"),n=document.getElementById("sidebar");console.log("oui ok"),r.hidden_interface?(n==null||n.classList.remove("flex"),n==null||n.classList.remove("flex-col"),n==null||n.classList.add("hidden"),t==null||t.classList.add("hidden"),t==null||t.classList.remove("flex")):(n==null||n.classList.remove("hidden"),n==null||n.classList.add("flex"),n==null||n.classList.add("flex-col"),t==null||t.classList.remove("hidden"),t==null||t.classList.add("flex")),r.hidden_interface=!r.hidden_interface}e.ctrlKey&&e.key==="s"&&(e.preventDefault(),r.setButtonHighlighting("stop",!0),r.clock.stop()),e.ctrlKey&&e.key==="p"&&(e.preventDefault(),r.isPlaying?(r.isPlaying=!1,r.setButtonHighlighting("pause",!0),r.clock.pause()):(r.isPlaying=!0,r.setButtonHighlighting("play",!0),r.clock.start())),(e.key==="v"||e.key==="V")&&e.ctrlKey&&e.shiftKey&&(r.settings.vimMode=!r.settings.vimMode,e.preventDefault(),r.userPlugins=r.settings.vimMode?[]:[A1()],r.view.dispatch({effects:r.dynamicPlugins.reconfigure(r.userPlugins)})),(e.key==="Enter"||e.key==="Return")&&e.ctrlKey&&(e.preventDefault(),r.currentFile().candidate=r.view.state.doc.toString(),r.flashBackground("#404040",200)),(e.key==="Enter"&&e.shiftKey||e.key==="e"&&e.ctrlKey)&&(e.preventDefault(),r.currentFile().candidate=r.view.state.doc.toString(),r.flashBackground("#404040",200)),e.key==="Enter"&&e.shiftKey&&e.ctrlKey&&(e.preventDefault(),r.currentFile().candidate=r.view.state.doc.toString(),os(r,r.currentFile()),r.flashBackground("#404040",200)),e.ctrlKey&&e.key==="b"&&(e.preventDefault(),Ma(),r.updateKnownUniversesView(),Eu()),e.shiftKey&&e.key==="Escape"&&P6(),e.ctrlKey&&e.key==="l"&&(e.preventDefault(),r.changeModeFromInterface("local"),Ma(),r.view.focus()),e.ctrlKey&&e.key==="n"&&(e.preventDefault(),r.changeModeFromInterface("notes"),Ma(),r.view.focus()),e.ctrlKey&&e.key==="g"&&(e.preventDefault(),r.changeModeFromInterface("global"),Ma(),r.view.focus()),e.ctrlKey&&e.key==="i"&&(e.preventDefault(),r.changeModeFromInterface("init"),Ma(),r.changeToLocalBuffer(0),r.view.focus()),e.ctrlKey&&e.key==="d"&&(e.preventDefault(),wA(r)),[112,113,114,115,116,117,118,119,120].forEach((t,n)=>{e.keyCode===t&&(e.preventDefault(),e.ctrlKey?r.api.script(t-111):(r.changeModeFromInterface("local"),r.changeToLocalBuffer(n),Ma()))}),e.keyCode==121&&(e.preventDefault(),r.changeModeFromInterface("global"),Ma()),e.keyCode==122&&(e.preventDefault(),r.changeModeFromInterface("init"),Ma())})};class dq{constructor(e,t,n){this.from=e,this.to=t,this.diagnostic=n}}class qi{constructor(e,t,n){this.diagnostics=e,this.panel=t,this.selected=n}static init(e,t,n){let a=e,i=n.facet(DA).markerFilter;i&&(a=i(a));let s=Je.set(a.map(o=>o.from==o.to||o.from==o.to-1&&n.doc.lineAt(o.from).to==o.from?Je.widget({widget:new Oq(o),diagnostic:o}).range(o.from):Je.mark({attributes:{class:"cm-lintRange cm-lintRange-"+o.severity+(o.markClass?" "+o.markClass:"")},diagnostic:o}).range(o.from,o.to)),!0);return new qi(s,t,oo(s))}}function oo(r,e=null,t=0){let n=null;return r.between(t,1e9,(a,i,{spec:s})=>{if(!(e&&s.diagnostic!=e))return n=new dq(a,i,s.diagnostic),!1}),n}function mq(r,e){let t=r.startState.doc.lineAt(e.pos);return!!(r.effects.some(n=>n.is(IA))||r.changes.touchesRange(t.from,t.to))}function hq(r,e){return r.field(Er,!1)?e:e.concat(lt.appendConfig.of(Tq))}const IA=lt.define(),x1=lt.define(),NA=lt.define(),Er=vn.define({create(){return new qi(Je.none,null,null)},update(r,e){if(e.docChanged){let t=r.diagnostics.map(e.changes),n=null;if(r.selected){let a=e.changes.mapPos(r.selected.from,1);n=oo(t,r.selected.diagnostic,a)||oo(t,null,a)}r=new qi(t,r.panel,n)}for(let t of e.effects)t.is(IA)?r=qi.init(t.value,r.panel,e.state):t.is(x1)?r=new qi(r.diagnostics,t.value?ad.open:null,r.selected):t.is(NA)&&(r=new qi(r.diagnostics,r.panel,t.value));return r},provide:r=>[ss.from(r,e=>e.panel),Me.decorations.from(r,e=>e.diagnostics)]}),pq=Je.mark({class:"cm-lintRange cm-lintRange-active"});function fq(r,e,t){let{diagnostics:n}=r.state.field(Er),a=[],i=2e8,s=0;n.between(e-(t<0?1:0),e+(t>0?1:0),(l,c,{spec:u})=>{e>=l&&e<=c&&(l==c||(e>l||t>0)&&(ekA(r,t,!1)))}const _q=r=>{let e=r.state.field(Er,!1);(!e||!e.panel)&&r.dispatch({effects:hq(r.state,[x1.of(!0)])});let t=Rl(r,ad.open);return t&&t.dom.querySelector(".cm-panel-lint ul").focus(),!0},CE=r=>{let e=r.state.field(Er,!1);return!e||!e.panel?!1:(r.dispatch({effects:x1.of(!1)}),!0)},bq=r=>{let e=r.state.field(Er,!1);if(!e)return!1;let t=r.state.selection.main,n=e.diagnostics.iter(t.to+1);return!n.value&&(n=e.diagnostics.iter(0),!n.value||n.from==t.from&&n.to==t.to)?!1:(r.dispatch({selection:{anchor:n.from,head:n.to},scrollIntoView:!0}),!0)},Sq=[{key:"Mod-Shift-m",run:_q,preventDefault:!0},{key:"F8",run:bq}],DA=Fe.define({combine(r){return Object.assign({sources:r.map(e=>e.source)},Ca(r.map(e=>e.config),{delay:750,markerFilter:null,tooltipFilter:null,needsRefresh:null},{needsRefresh:(e,t)=>e?t?n=>e(n)||t(n):e:t}))}});function xA(r){let e=[];if(r)e:for(let{name:t}of r){for(let n=0;ni.toLowerCase()==a.toLowerCase())){e.push(a);continue e}}e.push("")}return e}function kA(r,e,t){var n;let a=t?xA(e.actions):[];return Ft("li",{class:"cm-diagnostic cm-diagnostic-"+e.severity},Ft("span",{class:"cm-diagnosticText"},e.renderMessage?e.renderMessage():e.message),(n=e.actions)===null||n===void 0?void 0:n.map((i,s)=>{let o=!1,l=p=>{if(p.preventDefault(),o)return;o=!0;let _=oo(r.state.field(Er).diagnostics,e);_&&i.apply(r,_.from,_.to)},{name:c}=i,u=a[s]?c.indexOf(a[s]):-1,m=u<0?c:[c.slice(0,u),Ft("u",c.slice(u,u+1)),c.slice(u+1)];return Ft("button",{type:"button",class:"cm-diagnosticAction",onclick:l,onmousedown:l,"aria-label":` Action: ${c}${u<0?"":` (access key "${a[s]})"`}.`},m)}),e.source&&Ft("div",{class:"cm-diagnosticSource"},e.source))}class Oq extends qa{constructor(e){super(),this.diagnostic=e}eq(e){return e.diagnostic==this.diagnostic}toDOM(){return Ft("span",{class:"cm-lintPoint cm-lintPoint-"+this.diagnostic.severity})}}class AE{constructor(e,t){this.diagnostic=t,this.id="item_"+Math.floor(Math.random()*4294967295).toString(16),this.dom=kA(e,t,!0),this.dom.id=this.id,this.dom.setAttribute("role","option")}}class ad{constructor(e){this.view=e,this.items=[];let t=a=>{if(a.keyCode==27)CE(this.view),this.view.focus();else if(a.keyCode==38||a.keyCode==33)this.moveSelection((this.selectedIndex-1+this.items.length)%this.items.length);else if(a.keyCode==40||a.keyCode==34)this.moveSelection((this.selectedIndex+1)%this.items.length);else if(a.keyCode==36)this.moveSelection(0);else if(a.keyCode==35)this.moveSelection(this.items.length-1);else if(a.keyCode==13)this.view.focus();else if(a.keyCode>=65&&a.keyCode<=90&&this.selectedIndex>=0){let{diagnostic:i}=this.items[this.selectedIndex],s=xA(i.actions);for(let o=0;o{for(let i=0;iCE(this.view)},"×")),this.update()}get selectedIndex(){let e=this.view.state.field(Er).selected;if(!e)return-1;for(let t=0;t{let c=-1,u;for(let m=n;mn&&(this.items.splice(n,c-n),a=!0)),t&&u.diagnostic==t.diagnostic?u.dom.hasAttribute("aria-selected")||(u.dom.setAttribute("aria-selected","true"),i=u):u.dom.hasAttribute("aria-selected")&&u.dom.removeAttribute("aria-selected"),n++});n({sel:i.dom.getBoundingClientRect(),panel:this.list.getBoundingClientRect()}),write:({sel:s,panel:o})=>{s.topo.bottom&&(this.list.scrollTop+=s.bottom-o.bottom)}})):this.selectedIndex<0&&this.list.removeAttribute("aria-activedescendant"),a&&this.sync()}sync(){let e=this.list.firstChild;function t(){let n=e;e=n.nextSibling,n.remove()}for(let n of this.items)if(n.dom.parentNode==this.list){for(;e!=n.dom;)t();e=n.dom.nextSibling}else this.list.insertBefore(n.dom,e);for(;e;)t()}moveSelection(e){if(this.selectedIndex<0)return;let t=this.view.state.field(Er),n=oo(t.diagnostics,this.items[e].diagnostic);n&&this.view.dispatch({selection:{anchor:n.from,head:n.to},scrollIntoView:!0,effects:NA.of(n)})}static open(e){return new ad(e)}}function vq(r,e='viewBox="0 0 40 40"'){return`url('data:image/svg+xml,${encodeURIComponent(r)}')`}function xc(r){return vq(``,'width="6" height="3"')}const Eq=Me.baseTheme({".cm-diagnostic":{padding:"3px 6px 3px 8px",marginLeft:"-1px",display:"block",whiteSpace:"pre-wrap"},".cm-diagnostic-error":{borderLeft:"5px solid #d11"},".cm-diagnostic-warning":{borderLeft:"5px solid orange"},".cm-diagnostic-info":{borderLeft:"5px solid #999"},".cm-diagnostic-hint":{borderLeft:"5px solid #66d"},".cm-diagnosticAction":{font:"inherit",border:"none",padding:"2px 4px",backgroundColor:"#444",color:"white",borderRadius:"3px",marginLeft:"8px",cursor:"pointer"},".cm-diagnosticSource":{fontSize:"70%",opacity:.7},".cm-lintRange":{backgroundPosition:"left bottom",backgroundRepeat:"repeat-x",paddingBottom:"0.7px"},".cm-lintRange-error":{backgroundImage:xc("#d11")},".cm-lintRange-warning":{backgroundImage:xc("orange")},".cm-lintRange-info":{backgroundImage:xc("#999")},".cm-lintRange-hint":{backgroundImage:xc("#66d")},".cm-lintRange-active":{backgroundColor:"#ffdd9980"},".cm-tooltip-lint":{padding:0,margin:0},".cm-lintPoint":{position:"relative","&:after":{content:'""',position:"absolute",bottom:0,left:"-2px",borderLeft:"3px solid transparent",borderRight:"3px solid transparent",borderBottom:"4px solid #d11"}},".cm-lintPoint-warning":{"&:after":{borderBottomColor:"orange"}},".cm-lintPoint-info":{"&:after":{borderBottomColor:"#999"}},".cm-lintPoint-hint":{"&:after":{borderBottomColor:"#66d"}},".cm-panel.cm-panel-lint":{position:"relative","& ul":{maxHeight:"100px",overflowY:"auto","& [aria-selected]":{backgroundColor:"#ddd","& u":{textDecoration:"underline"}},"&:focus [aria-selected]":{background_fallback:"#bdf",backgroundColor:"Highlight",color_fallback:"white",color:"HighlightText"},"& u":{textDecoration:"none"},padding:0,margin:0},"& [name=close]":{position:"absolute",top:"0",right:"2px",background:"inherit",border:"none",font:"inherit",padding:0,margin:0}}}),Tq=[Er,Me.decorations.compute([Er],r=>{let{selected:e,panel:t}=r.field(Er);return!e||!t||e.from==e.to?Je.none:Je.set([pq.range(e.from,e.to)])}),Ey(fq,{hideOn:mq}),Eq],wE="#262626",yq="#3B4252",$s="#BBBBBB",MA="#4C566A",LA="#D8DEE9",dl="#E5E9F0",Rq="#8FBCBB",Xi="#BF616A",Cq="#D08770",Aq="#B48EAD",Ns="#FBCF8B",$i="#88C0D0",IE="#D08770",wq="#5E81AC",Xf="#B48EAD",Iq="#A3BE8C",NE="#A3BE8C",DE=Xi,Nq="#262626",Kf="#252525",Zf=yq,xE=LA,Dq=Me.theme({"&":{color:dl,backgroundColor:"transparent",fontSize:"24px",fontFamily:"IBM Plex Mono"},".cm-content":{caretColor:xE,fontFamily:"IBM Plex Mono"},".cm-cursor, .cm-dropCursor":{borderLeftColor:xE},"&.cm-focused .cm-selectionBackground, .cm-selectionBackground, .cm-content ::selection":{backgroundColor:wE,border:`0.5px solid ${wE}`},".cm-panels":{backgroundColor:Nq,color:dl},".cm-panels.cm-panels-top":{borderBottom:"2px solid black"},".cm-panels.cm-panels-bottom":{borderTop:"2px solid black"},".cm-search.cm-panel":{backgroundColor:"transparent"},".cm-searchMatch":{outline:`1px solid ${Ns}`},".cm-searchMatch.cm-searchMatch-selected":{backgroundColor:Kf},".cm-activeLine":{backgroundColor:"rgb(76,76,106, 0.1)"},".cm-selectionMatch":{backgroundColor:LA,outline:`1px solid ${Xi}`},"&.cm-focused .cm-matchingBracket":{color:$s},"&.cm-focused .cm-nonmatchingBracket":{color:Xi},".cm-gutters":{backgroundColor:"transparent",color:$s},".cm-activeLineGutter":{backgroundColor:Kf,color:$s},".cm-foldPlaceholder":{border:"none",color:`${Rq}`},".cm-tooltip":{border:"none",backgroundColor:Zf},".cm-tooltip .cm-tooltip-arrow:before":{},".cm-tooltip .cm-tooltip-arrow:after":{borderTopColor:Zf,borderBottomColor:Zf},".cm-tooltip-autocomplete":{"& > ul > li[aria-selected]":{backgroundColor:Kf,color:MA}}},{dark:!0}),xq=Zl.define([{tag:H.keyword,color:Xf},{tag:[H.name,H.deleted,H.character,H.macroName],color:Ns},{tag:[H.propertyName],color:$i},{tag:[H.variableName],color:dl},{tag:[H.function(H.variableName)],color:Ns},{tag:[H.labelName],color:Xf},{tag:[H.color,H.constant(H.name),H.standard(H.name)],color:$i},{tag:[H.definition(H.name),H.separator],color:Aq},{tag:[H.brace],color:Xf},{tag:[H.annotation],color:DE},{tag:[H.number,H.changed,H.annotation,H.modifier,H.self,H.namespace],color:IE},{tag:[H.typeName,H.className],color:IE},{tag:[H.operator,H.operatorKeyword],color:wq},{tag:[H.tagName],color:Cq},{tag:[H.squareBracket],color:Xi},{tag:[H.angleBracket],color:$s},{tag:[H.attributeName],color:dl},{tag:[H.regexp],color:DE},{tag:[H.quote],color:Iq},{tag:[H.string],color:NE},{tag:H.link,color:Ns,textDecoration:"underline",textUnderlinePosition:"under"},{tag:[H.url,H.escape,H.special(H.string)],color:$i},{tag:[H.meta],color:MA},{tag:[H.comment],color:$s,fontStyle:"italic"},{tag:H.monospace,color:dl},{tag:H.strong,fontWeight:"bold",color:Xi},{tag:H.emphasis,fontStyle:"italic",color:NE},{tag:H.strikethrough,textDecoration:"line-through"},{tag:H.heading,fontWeight:"bold",color:$i},{tag:H.heading1,fontWeight:"bold",color:$i},{tag:[H.heading2,H.heading3,H.heading4],fontWeight:"bold",color:$i},{tag:[H.heading5,H.heading6],color:$i},{tag:[H.atom,H.bool,H.special(H.variableName)],color:Ns},{tag:[H.processingInstruction,H.inserted],color:Xi},{tag:[H.contentSeparator],color:Ns},{tag:H.invalid,color:$s,borderBottom:`1px dotted ${Xi}`}]),kq=[Dq,Yy(xq)],ui={seed:{name:"seed",category:"randomness",description:"Seed the random generator",example:"seed(1234)"},delayr:{name:"delayr",category:"time",description:"Delay a function n times by t ms",example:"delayr(50,3,()=> beat(1)::log('hey!'))"},toss:{name:"toss",category:"randomness",description:"Toss a coin, true or false",example:"toss() : log('heads')"},lpadsr:{name:"lpadsr",category:"synthesis",description:"Lowpass filter ADSR envelope",example:"sound('sawtooth').lpadsr(2,0,.1,0,0).out()"},lpenv:{name:"lpenv",category:"synthesis",description:"Lowpass filter ADSR envelope amount",example:"sound('sawtooth').lpenv(2).lpd(.2).out()"},hpadsr:{name:"hpadsr",category:"synthesis",description:"Highpass filter ADSR envelope",example:"sound('sawtooth').hpadsr(2, 0, .1, 0, 0).out()"},hpenv:{name:"hpenv",category:"synthesis",description:"Highpass filter ADSR envelope amount",example:"sound('sawtooth').hpenv(2).hpd(.2).out()"},bpadsr:{name:"bpadsr",category:"synthesis",description:"Bandpass filter ADSR envelope",example:"sound('sawtooth').bpadsr(2, 0, .1, 0, 0).out()"},bpattack:{name:"bpattack",category:"synthesis",description:"Bandpass filter ADSR envelope attack time (in seconds)",example:"sound('sawtooth').bpf(2000).bpenv(2).bpa(.2).out()"},bpdecay:{name:"bpdecay",category:"synthesis",description:"Bandpass filter ADSR envelope decay time (in seconds)",example:"sound('sawtooth').bpf(2000).bpenv(2).bpd(.2).out()"},bpsustain:{name:"bpsustain",category:"synthesis",description:"Bandpass filter ADSR envelope sustain level (0-1)",example:"sound('sawtooth').bpf(2000).bpenv(2).bpsustain(0.5).out()"},bprelease:{name:"bprelease",category:"synthesis",description:"Bandpass filter ADSR envelope release time (in seconds)",example:"sound('sawtooth').bpf(2000).bpenv(2).bpr(.2).out()"},bpenv:{name:"bpenv",category:"synthesis",description:"Bandpass filter ADSR envelope amount",example:"sound('sawtooth').bpenv(2).bpd(.2).out()"},adsr:{name:"adsr",category:"synthesis",description:"ADSR envelope",example:"sound('sawtooth').adsr(0, .1, 0, 0).out()"},ad:{name:"ad",category:"synthesis",description:"AD envelope times (in seconds)",example:"sound('sawtooth').ad(0, .1).out()"},attack:{name:"attack",category:"synthesis",description:"ADSR envelope attack time (in seconds)",example:"sound('sawtooth').attack(.5).out()"},decay:{name:"decay",category:"synthesis",description:"ADSR envelope decay time (in seconds)",example:"sound('sawtooth').decay(.5).out()"},sustain:{name:"sustain",category:"synthesis",description:"ADSR envelope sustain level (0-1)",example:"sound('sawtooth').sustain(.5).out()"},release:{name:"release",category:"synthesis",description:"ADSR envelope release time (in seconds)",example:"sound('sawtooth').release(.5).out()"},fmwave:{name:"fmwave",category:"synthesis",description:"FM synth modulator waveform",example:"sound('fm').fmwave('sine').out()"},fmi:{name:"fmi",category:"audio",description:"FM synth modulator index",example:"sound('fm').fmi([1,2].beat()).out()"},fmh:{name:"fmh",category:"audio",description:"FM synth modulator ratio",example:"sound('fm').fmi(2).fmh(2).out()"},fmattack:{name:"fmattack",category:"synthesis",description:"FM synth modulator ADSR envelope attack time (in seconds)",example:"sound('sine').fmi(2).fmattack(.5).out()"},fmdecay:{name:"fmdecay",category:"synthesis",description:"FM synth modulator ADSR envelope decay time (in seconds)",example:"sound('sine').fmi(2).fmdecay(.5).out()"},fmsustain:{name:"fmsustain",category:"synthesis",description:"FM synth modulator ADSR envelope sustain level (0-1)",example:"sound('sine').fmi(2).fmsustain(.5).out()"},fmrelease:{name:"fmrelease",category:"synthesis",description:"FM synth modulator ADSR envelope release time (in seconds)",example:"sound('sine').fmi(2).fmrelease(.5).out()"},repeat:{name:"repeat",category:"patterns",description:"Repeat every array elements n times",example:"[0,1,2,3].repeat(2)"},quant:{name:"quant",category:"functions",description:"Quantize a value in the given array",example:"quant(30, [0,1,2,3])"},log:{name:"log",category:"javascript",description:"Log a value in the console",example:"log('Hello, world')"},flip:{name:"flip",category:"patterns",description:"Returns true and false alternatively or next value every n beats (arrays)",example:"flip(4, 50) // 4 beats of true, 4 beats of false, 50/50."},n:{name:"n",category:"audio",description:"Sample number or synth oscillator partials count",example:"sound('dr').n([1,2].beat()).out()"},note:{name:"note",category:"patterns",description:"MIDI note number (0-127)",example:"sound('jvbass').note(50).out()"},vel:{name:"vel",category:"audio",description:"Velocity or sound volume (0-1)",example:"sound('cp').vel(.5).out()"},palindrome:{name:"palindrome",category:"patterns",description:"Returns palindrome of the current array",example:"[0,1,2,3].palindrome()"},cutoff:{name:"cutoff",category:"filter",description:"Lowpass filter cutoff frequency",example:"sound('cp').cutoff(1000).out()"},resonance:{name:"resonance",category:"filter",description:"Lowpass filter resonance",example:"sound('cp').resonance(1).out()"},hcutoff:{name:"hcutoff",category:"filter",description:"Highpass filter cutoff frequency",example:"sound('cp').hcutoff(1000).out()"},hresonance:{name:"hresonance",category:"filter",description:"Highpass filter resonance",example:"sound('cp').hresonance(1).out()"},bandf:{name:"bandf",category:"filter",description:"Bandpass filter cutoff frequency",example:"sound('cp').bandf(1000).out()"},bandq:{name:"bandq",category:"filter",description:"Bandpass filter resonance",example:"sound('cp').bandq(1).out()"},vowel:{name:"vowel",category:"filter",description:"Vowel filter type",example:"sound('cp').vowel('a').out()"},coarse:{name:"coarse",category:"synthesis",description:"Artificial sample-rate lowering",example:"beat(.5)::snd('pad').coarse($(1) % 16).clip(.5).out();"},crush:{name:"crush",category:"synthesis",description:"Bitcrushing effect. 1 is extreme, superior values are more subtle.",example:""},speed:{name:"speed",category:"sampling",description:"Sample playback speed",example:"sound('cp').speed(.5).out()"},shape:{name:"shape",category:"synthesis",description:"Waveshaping distorsion",example:"sound('cp').shape(.5).out()"},delay:{name:"delay",category:"effect",description:"Delay effect dry/wet",example:"sound('cp').delay(.5).out()"},delayfb:{name:"delayfb",category:"effect",description:"Delay effect feedback amount (0-1)",example:"sound('cp').delay(0.2).delayfb(.5).out()"},delaytime:{name:"delaytime",category:"effect",description:"Delay effect delay time (in seconds)",example:"sound('cp').delay(0.2).delaytime(.5).out()"},gain:{name:"gain",category:"audio",description:"Playback volume",example:"sound('cp').gain(.5).out()"},bar:{name:"bar",category:"patterns",description:"Returns list index for the current bar (with wrapping)",example:"[0,1,2,3].bar()"},room:{name:"room",category:"effect",description:"Reverb effect room amount (0-1 or +)",example:"sound('cp').room(.5).out()"},size:{name:"size",category:"effect",description:"Reverb effect room size",example:"sound('cp').size(.5).out()"},roomlp:{name:"roomlp",category:"effect",description:"Reverb effect room lowpass filter cutoff frequency",example:"sound('cp').room(.5).size(.5).roomlp(.5).out()"},roomfade:{name:"roomfade",category:"effect",description:"Reverb effect room fade time (in seconds)",example:"sound('cp').room(.5).size(.5).roomfade(.5).out()"},roomdim:{name:"roomdim",category:"effect",description:"Reverb lowpass frequency at -60db (in hertz)",example:"sound('cp').room(.5).size(.5).roomdim(.5).out()"},usine:{name:"usine",category:"modulation",description:"Unipolar sinusoïdal low-frequency oscillator",example:"usine(5) // 5 hz oscillation"},sine:{name:"usine",category:"modulation",description:"Sinusoïdal low-frequency oscillator",example:"usine(5) // 5 hz oscillation"},utriangle:{name:"utriangle",category:"modulation",description:"Unipolar triangular low-frequency oscillator",example:"utriangle(5) // 5 hz oscillation"},triangle:{name:"triangle",category:"modulation",description:"Triangular low-frequency oscillator",example:"triangle(5) // 5 hz oscillation"},usaw:{name:"usaw",category:"modulation",description:"Unipolar sawtooth low-frequency oscillator",example:"usaw(5) // 5 hz oscillation"},saw:{name:"saw",category:"modulation",description:"Sawtooth low-frequency oscillator",example:"saw(5) // 5 hz oscillation"},square:{name:"square",category:"modulation",description:"Square low-frequency oscillator",example:"square(5) // 5 hz oscillation"},usquare:{name:"usquare",category:"modulation",description:"Unipolar square low-frequency oscillator",example:"usquare(5) // 5 hz oscillation"},rhythm:{name:"rhythm",category:"rhythm",description:"Variant of the euclidian algorithm function",example:"rhythm(.5, 3, 8) // time, pulses, steps"},let:{name:"let",category:"javascript",description:"Variable assignation",example:"let baba = 10"},onbeat:{name:"onbeat",category:"rhythm",description:"Return true when targetted beat(s) is/are reached",example:"onbeat([1,2,3]) // true on beats 1, 2 and 3"},oncount:{name:"oncount",category:"rhythm",description:"Return true when targetted beat(s) is/are reached in the given period",example:"oncount([1,2,3], 4) // true on beats 1, 2 and 3 in a 4 beats period"},beat:{name:"beat",category:"rhythm",description:"return true every n beats.",example:"beat(1) :: log(rand(1,5))"},pulse:{name:"pulse",category:"rhythm",description:"return true every n pulses.",example:"pulse(8) :: log(rand(1,5))"},euclid:{name:"euclid",category:"rhythm",description:"Iterator-based euclidian rhythm generator",example:"euclid($(1), 3, 8) // iterator, pulses"},oneuclid:{name:"oneuclid",category:"rhythm",description:"Variant of the euclidian rhythm generator",example:"oneuclid(3, 8) // iterator, pulses"},bin:{name:"bin",category:"rhythm",description:"Convert a decimal number to binary rhythm generator",example:"bin($(1), 9223) // iterator, number to convert"},binrhythm:{name:"binrhythm",category:"rhythm",description:"Binary rhythm generator (time, number)",example:"binrhythm(.5, 9223) :: sound('cp').out()"},prob:{name:"prob",category:"randomness",description:"Return true with a probability of n %",example:"prob(50) // 50% probability"},rand:{name:"rand",category:"randomness",description:"random floating point number between x and y",example:"rand(1, 10) // between 1 and 10"},irand:{name:"irand",category:"randomness",description:"random integer number between x and y",example:"irand(1, 10) // between 1 and 10"},pick:{name:"pick",category:"randomness",description:"Pick a value in the given array",example:"[1,4,10].pick()"},odds:{name:"odds",category:"randomness",description:"Return true with a probability of n %",example:"odds(1/2) // 50% probability"},never:{name:"never",category:"randomness",description:"Return false",example:"never() // false"},almostNever:{name:"almostNever",category:"randomness",description:"Return true with a probability of 2.5%",example:"almostNever() // 2.5% chance"},rarely:{name:"rarely",category:"randomness",description:"Return true with a probability of 10%",example:"rarely() // 10% chance"},scarcely:{name:"scarcely",category:"randomness",description:"Return true with a probability of 25%",example:"scarcely() // 25% chance"},sometimes:{name:"sometimes",category:"randomness",description:"Return true with a probability of 50%",example:"sometimes() // 50% chance"},often:{name:"often",category:"randomness",description:"Return true with a probability of 75%",example:"often() // 75% chance"},frequently:{name:"frequently",category:"randomness",description:"Return true with a probability of 90%",example:"frequently() // chance"},almostAlways:{name:"almostAlways",category:"randomness",description:"Return true with a probability of 98.5%",example:"almostAlways() // 98.5% chance"},always:{name:"always",category:"randomness",description:"Return true",example:"always() // true"},sound:{name:"sound",category:"audio",description:"Base function to play audio (samples / synths)",example:"sound('bd').out()"},snd:{name:"snd",category:"audio",description:"Base function to play audio (samples / synths). Alias for sound.",example:"sound('bd').out()"},tempo:{name:"tempo",category:"time",description:"Get or set the current beats per minute.",example:"tempo(135) // set the bpm to 135"},out:{name:"out",category:"audio",description:"Connect the sound() chain to the output",example:"sound('clap').out()"},script:{name:"script",category:"core",description:"Execute one or more local scripts",example:"beat(1) :: script(1)"},clear_script:{name:"clear_script",category:"core",description:"Deletes the given script",example:"clear_script(2)"},copy_script:{name:"copy_script",category:"core",description:"Copy the script from to the script to",example:"copy_script(1, 2)"},warp:{name:"warp",category:"core",description:"jumps to the n tick of the clock.",example:"warp(1) :: log('back to the big bang!')"},beat_warp:{name:"beat_warp",category:"core",description:"jumps to the n beat of the clock.",example:"beat_warp(1) :: log('back to the first beat!')"},flipbar:{name:"flipbar",category:"time",description:"works just like flip at the level of bars instead of beats",example:"flipbar(2)::beat(1)::snd('kick').out()"},onbar:{name:"onbar",category:"time",description:"return true when targetted bar(s) is/are reached in period",example:"onbar(4, 4)::beat(.5)::snd('hh').out();"},begin:{name:"begin",category:"sampling",description:"Audio playback start time (0-1)",example:"sound('cp').begin(.5).out()"},end:{name:"end",category:"sampling",description:"Audio playback end time (0-1)",example:"sound('cp').end(.5).out()"},mouseX:{name:"mouseX",category:"mouse",description:"Mouse X position (big float)",example:"log(mouseX())"},mouseY:{name:"mouseY",category:"mouse",description:"Mouse Y position (big float)",example:"log(mouseY())"},noteX:{name:"noteX",category:"mouse",description:"Mouse X position (as MIDI note)",example:"log(noteX())"},noteY:{name:"noteY",category:"mouse",description:"Mouse Y position (as MIDI note)",example:"log(noteY())"},cut:{name:"cut",category:"sampling",description:"Cutting sample when other sample met on same orbit (0 or 1)",example:"sound('cp').cut(1).out()"},pan:{name:"pan",category:"audio",description:"Stereo panning (-1 to 1)",example:"sound('cp').pan(-1).out()"},zrand:{name:"zrand",category:"synthesis",description:"ZzFX randomisation factor",example:"sound('zzfx').zrand(.5).out()"},curve:{name:"curve",category:"synthesis",description:"ZzFX waveshaping (0-3)",example:"sound('zzfx').curve(1).out()"},slide:{name:"slide",category:"synthesis",description:"ZzFX pitch slide",example:"sound('zzfx').slide(1).out()"},deltaSlide:{name:"deltaSlide",category:"synthesis",description:"ZzFX pitch delta slide",example:"sound('zzfx').deltaSlide(1).out()"},pitchJump:{name:"pitchJump",category:"synthesis",description:"ZzFX pitch jump",example:"sound('zzfx').pitchJump(1).out()"},pitchJumpTime:{name:"pitchJumpTime",category:"synthesis",description:"ZzFX pitch jump time (time before jump)",example:"sound('zzfx').pitchJumpTime(1).out()"},zcrush:{name:"zcrush",category:"synthesis",description:"ZzFX bitcrushing",example:"sound('zzfx').zcrush(1).out()"},zdelay:{name:"zdelay",category:"synthesis",description:"ZzFX delay",example:"sound('zzfx').zdelay(1).out()"},tremolo:{name:"tremolo",category:"synthesis",description:"ZzFX weird tremolo effect",example:"sound('zzfx').tremolo(1).out()"},speak:{name:"speak",category:"synthesis",description:"Text to speech synthesizer",example:"beat(2) :: speak('Topos!','fr',irand(0,5))"},midi_outputs:{name:"midi_outputs",category:"midi",description:"List of available MIDI outputs",example:"midi_outputs()"},midi_output:{name:"midi_output",category:"midi",description:"Set the current MIDI output",example:"midi_output('IAC Driver Bus 1')"},midi:{name:"midi",category:"midi",description:"Send a MIDI message",example:"midi(144, 60, 100)"},control_change:{name:"control_change",category:"midi",description:"Send a MIDI control change message",example:"control_change({control: 1, value: 60, channel: 10})"},program_change:{name:"program_change",category:"midi",description:"Send a MIDI program change message",example:"program_change(1, 10)"},sysex:{name:"sysex",category:"midi",description:"Send a MIDI sysex message",example:"sysex(0xF0, 0x7D, 0x00, 0x06, 0x01, 0xF7)"},midi_clock:{name:"midi_clock",category:"midi",description:"Send a MIDI clock message",example:"midi_clock()"},degrade:{name:"degrade",category:"patterns",description:"Removes n% of the given array randomly",example:"[0,1,2,3].degrade(20)"},loop:{name:"loop",category:"patterns",description:"Loop over the given array using an iterator",example:"[0,1,2,3].loop($(1))"},$:{name:"$",category:"patterns",description:"Iterator",example:"[0,1,2,3].loop($(1))"},counter:{name:"counter",category:"patterns",description:"Counter/iterator",example:"counter('my_counter_, 20, 1)"},drunk:{name:"drunk",category:"patterns",description:"Returns the next value in a drunk walk",example:"drunk()"},drunk_max:{name:"drunk_max",category:"patterns",description:"Sets the maximum value of the drunk walk",example:"drunk_max(10)"},drunk_min:{name:"drunk_min",category:"patterns",description:"Sets the minimum value of the drunk walk",example:"drunk_min(0)"},drunk_wrap:{name:"drunk_wrap",category:"patterns",description:"Wraps (or not) of the drunk walk (boolean)",example:"drunk_wrap(true)"},v:{name:"v",category:"variable",description:"Global Variable setter or getter",example:"v('my_var', 10) // Sets global variable 'my_var' to 10"},delete_variable:{name:"delete_variable",category:"variable",description:"Deletes the given global variable",example:"delete_variable('my_var')"},clear_variables:{name:"clear_variables",category:"variable",description:"Clears all global variables",example:"clear_variables()"},shuffle:{name:"shuffle",category:"patterns",description:"Shuffle the given array",example:"[0,1,2,3].shuffle()"},rotate:{name:"rotate",category:"patterns",description:"Rotate the given array to the right for n indexes",example:"[0,1,2,3].rotate(2)"},unique:{name:"unique",category:"patterns",description:"Remove duplicates from the given array",example:"[0,1,2,3,3,3].unique()"},add:{name:"add",category:"patterns",description:"Add a value to each element of the given array",example:"[0,1,2,3].add(1)"},sub:{name:"sub",category:"patterns",description:"Substract a value to each element of the given array",example:"[0,1,2,3].sub(1)"},mul:{name:"mul",category:"patterns",description:"Multiply each element of the given array by a value",example:"[0,1,2,3].mul(2)"},div:{name:"div",category:"patterns",description:"Divide each element of the given array by a value",example:"[0,1,2,3].div(2)"},scale:{name:"scale",category:"patterns",description:"Scale setter used by Ziffers",example:"z0('0 1 2 3').scale('major').out()"},zzfx:{name:"zzfx",category:"synthesis",description:"ZzFX sound generator",example:"sound('zzfx').zzfx(...).out()"},vib:{name:"vib",category:"synthesis",description:"Vibrato frequency",example:"sound('sine').vib(1).vibmod(0.5).out()"},vibmod:{name:"vibmod",category:"synthesis",description:"Vibrato modulation amount",example:"sound('sine').vib(1).vibmod(4).out()"},fill:{name:"fill",category:"performance",description:"Detects if the Alt key is pressed",example:"fill() ? 1 : 0.5"},comp:{name:"comp",category:"synthesis",description:"Compressor threshold (dB)",example:"sound('sine').comp(-4).out()"},ratio:{name:"ratio",category:"synthesis",description:"Compressor ratio",example:"sound('sine').comp(1).ratio(4).out()"},knee:{name:"knee",category:"synthesis",description:"Compressor knee (dB)",example:"sound('sine').comp(-4).knee(4).out()"},compAttack:{name:"compAttack",category:"synthesis",description:"Compressor attack time (in seconds)",example:"sound('sine').comp(-4).compAttack(0.1).out()"},compRelease:{name:"compRelease",category:"synthesis",description:"Compressor release time (in seconds)",example:"sound('sine').comp(-4).compRelease(0.1).out()"},noise:{name:"noise",category:"synthesis",description:"Noise amount in the signal (0-1)",example:"sound('triangle').noise(.25).out()"}},PA=Ey((r,e,t)=>{let{from:n,to:a,text:i}=r.state.doc.lineAt(e),s=e,o=e;for(;s>n&&/\w/.test(i[s-n-1]);)s--;for(;o0?null:{pos:s,end:o,above:!0,create(l){if(!(i.slice(s-n,o-n)in ui))return{dom:document.createElement("div")};let c=ui[i.slice(s-n,o-n)]||{},u=` +`},AA=r=>(r.api.codeExamples={},{introduction:z7(r),interface:aY(r),interaction:hY(r),code:sY(r),time:fY(),linear:_Y(r),cyclic:bY(r),longform:SY(r),synths:xY(r),chaining:mY(r),patterns:EY(r),ziffers_basics:AY(r),ziffers_scales:wY(r),ziffers_algorithmic:NY(r),ziffers_rhythm:IY(r),ziffers_tonnetz:DY(r),midi:OY(r),osc:vY(r),lfos:CY(r),variables:yY(r),probabilities:RY(r),functions:TY(r),shortcuts:iY(r),amplitude:X7(r),reverb_delay:K7(r),sampler:Z7(r),mouse:oY(r),oscilloscope:lY(r),audio_basics:J7(r),synchronisation:cY(),bonus:dY(r),sample_list:eY(r),sample_banks:j7(),sample_controls:tY(r),loading_samples:W7(r),about:uY()}),wA=r=>{var e,t,n,a,i;if((e=document.getElementById("app"))!=null&&e.classList.contains("hidden"))(t=document.getElementById("app"))==null||t.classList.remove("hidden"),(n=document.getElementById("documentation"))==null||n.classList.add("hidden"),r.exampleIsPlaying=!1;else{(a=document.getElementById("app"))==null||a.classList.add("hidden"),(i=document.getElementById("documentation"))==null||i.classList.remove("hidden");let s=pC(),o=Object.keys(s).map(l=>({type:"output",regex:new RegExp(`<${l}([^>]*)>`,"g"),replace:(c,u)=>`<${l} class="${s[l]}" ${u}>`}));l_(r,o)}},Ma=()=>{var r,e,t;(r=document.getElementById("app"))!=null&&r.classList.contains("hidden")&&((e=document.getElementById("app"))==null||e.classList.remove("hidden"),(t=document.getElementById("documentation"))==null||t.classList.add("hidden"))},l_=(r,e)=>{const n=new pA.Converter({emoji:!0,moreStyling:!0,backslashEscapesHTMLTags:!0,extensions:[lq({auto_detection:!0}),...e]}).makeHtml(r.docs[r.currentDocumentationPane]);document.getElementById("documentation-content").innerHTML=n},cq=r=>{document.addEventListener("keydown",e=>{e.altKey&&(r.fill=!0,r.interface.fill_viewer.classList.remove("invisible"))}),document.addEventListener("keyup",e=>{e.key==="Alt"&&(r.fill=!1,r.interface.fill_viewer.classList.add("invisible"))})},uq=r=>{window.addEventListener("keydown",e=>{if(e.key==="Tab"&&e.preventDefault(),e.ctrlKey&&e.key==="m"){e.preventDefault();let t=document.getElementById("topbar"),n=document.getElementById("sidebar");console.log("oui ok"),r.hidden_interface?(n==null||n.classList.remove("flex"),n==null||n.classList.remove("flex-col"),n==null||n.classList.add("hidden"),t==null||t.classList.add("hidden"),t==null||t.classList.remove("flex")):(n==null||n.classList.remove("hidden"),n==null||n.classList.add("flex"),n==null||n.classList.add("flex-col"),t==null||t.classList.remove("hidden"),t==null||t.classList.add("flex")),r.hidden_interface=!r.hidden_interface}e.ctrlKey&&e.key==="s"&&(e.preventDefault(),r.setButtonHighlighting("stop",!0),r.clock.stop()),e.ctrlKey&&e.key==="p"&&(e.preventDefault(),r.isPlaying?(r.isPlaying=!1,r.setButtonHighlighting("pause",!0),r.clock.pause()):(r.isPlaying=!0,r.setButtonHighlighting("play",!0),r.clock.start())),(e.key==="v"||e.key==="V")&&e.ctrlKey&&e.shiftKey&&(r.settings.vimMode=!r.settings.vimMode,e.preventDefault(),r.userPlugins=r.settings.vimMode?[]:[A1()],r.view.dispatch({effects:r.dynamicPlugins.reconfigure(r.userPlugins)})),(e.key==="Enter"||e.key==="Return")&&e.ctrlKey&&(e.preventDefault(),r.currentFile().candidate=r.view.state.doc.toString(),r.flashBackground("#404040",200)),(e.key==="Enter"&&e.shiftKey||e.key==="e"&&e.ctrlKey)&&(e.preventDefault(),r.currentFile().candidate=r.view.state.doc.toString(),r.flashBackground("#404040",200)),e.key==="Enter"&&e.shiftKey&&e.ctrlKey&&(e.preventDefault(),r.currentFile().candidate=r.view.state.doc.toString(),os(r,r.currentFile()),r.flashBackground("#404040",200)),e.ctrlKey&&e.key==="b"&&(e.preventDefault(),Ma(),r.updateKnownUniversesView(),Eu()),e.shiftKey&&e.key==="Escape"&&P6(),e.ctrlKey&&e.key==="l"&&(e.preventDefault(),r.changeModeFromInterface("local"),Ma(),r.view.focus()),e.ctrlKey&&e.key==="n"&&(e.preventDefault(),r.changeModeFromInterface("notes"),Ma(),r.view.focus()),e.ctrlKey&&e.key==="g"&&(e.preventDefault(),r.changeModeFromInterface("global"),Ma(),r.view.focus()),e.ctrlKey&&e.key==="i"&&(e.preventDefault(),r.changeModeFromInterface("init"),Ma(),r.changeToLocalBuffer(0),r.view.focus()),e.ctrlKey&&e.key==="d"&&(e.preventDefault(),wA(r)),[112,113,114,115,116,117,118,119,120].forEach((t,n)=>{e.keyCode===t&&(e.preventDefault(),e.ctrlKey?r.api.script(t-111):(r.changeModeFromInterface("local"),r.changeToLocalBuffer(n),Ma()))}),e.keyCode==121&&(e.preventDefault(),r.changeModeFromInterface("global"),Ma()),e.keyCode==122&&(e.preventDefault(),r.changeModeFromInterface("init"),Ma())})};class dq{constructor(e,t,n){this.from=e,this.to=t,this.diagnostic=n}}class qi{constructor(e,t,n){this.diagnostics=e,this.panel=t,this.selected=n}static init(e,t,n){let a=e,i=n.facet(DA).markerFilter;i&&(a=i(a));let s=Je.set(a.map(o=>o.from==o.to||o.from==o.to-1&&n.doc.lineAt(o.from).to==o.from?Je.widget({widget:new Oq(o),diagnostic:o}).range(o.from):Je.mark({attributes:{class:"cm-lintRange cm-lintRange-"+o.severity+(o.markClass?" "+o.markClass:"")},diagnostic:o}).range(o.from,o.to)),!0);return new qi(s,t,oo(s))}}function oo(r,e=null,t=0){let n=null;return r.between(t,1e9,(a,i,{spec:s})=>{if(!(e&&s.diagnostic!=e))return n=new dq(a,i,s.diagnostic),!1}),n}function mq(r,e){let t=r.startState.doc.lineAt(e.pos);return!!(r.effects.some(n=>n.is(IA))||r.changes.touchesRange(t.from,t.to))}function hq(r,e){return r.field(Er,!1)?e:e.concat(lt.appendConfig.of(Tq))}const IA=lt.define(),x1=lt.define(),NA=lt.define(),Er=vn.define({create(){return new qi(Je.none,null,null)},update(r,e){if(e.docChanged){let t=r.diagnostics.map(e.changes),n=null;if(r.selected){let a=e.changes.mapPos(r.selected.from,1);n=oo(t,r.selected.diagnostic,a)||oo(t,null,a)}r=new qi(t,r.panel,n)}for(let t of e.effects)t.is(IA)?r=qi.init(t.value,r.panel,e.state):t.is(x1)?r=new qi(r.diagnostics,t.value?ad.open:null,r.selected):t.is(NA)&&(r=new qi(r.diagnostics,r.panel,t.value));return r},provide:r=>[ss.from(r,e=>e.panel),Me.decorations.from(r,e=>e.diagnostics)]}),pq=Je.mark({class:"cm-lintRange cm-lintRange-active"});function fq(r,e,t){let{diagnostics:n}=r.state.field(Er),a=[],i=2e8,s=0;n.between(e-(t<0?1:0),e+(t>0?1:0),(l,c,{spec:u})=>{e>=l&&e<=c&&(l==c||(e>l||t>0)&&(ekA(r,t,!1)))}const _q=r=>{let e=r.state.field(Er,!1);(!e||!e.panel)&&r.dispatch({effects:hq(r.state,[x1.of(!0)])});let t=Rl(r,ad.open);return t&&t.dom.querySelector(".cm-panel-lint ul").focus(),!0},CE=r=>{let e=r.state.field(Er,!1);return!e||!e.panel?!1:(r.dispatch({effects:x1.of(!1)}),!0)},bq=r=>{let e=r.state.field(Er,!1);if(!e)return!1;let t=r.state.selection.main,n=e.diagnostics.iter(t.to+1);return!n.value&&(n=e.diagnostics.iter(0),!n.value||n.from==t.from&&n.to==t.to)?!1:(r.dispatch({selection:{anchor:n.from,head:n.to},scrollIntoView:!0}),!0)},Sq=[{key:"Mod-Shift-m",run:_q,preventDefault:!0},{key:"F8",run:bq}],DA=Fe.define({combine(r){return Object.assign({sources:r.map(e=>e.source)},Ca(r.map(e=>e.config),{delay:750,markerFilter:null,tooltipFilter:null,needsRefresh:null},{needsRefresh:(e,t)=>e?t?n=>e(n)||t(n):e:t}))}});function xA(r){let e=[];if(r)e:for(let{name:t}of r){for(let n=0;ni.toLowerCase()==a.toLowerCase())){e.push(a);continue e}}e.push("")}return e}function kA(r,e,t){var n;let a=t?xA(e.actions):[];return Ft("li",{class:"cm-diagnostic cm-diagnostic-"+e.severity},Ft("span",{class:"cm-diagnosticText"},e.renderMessage?e.renderMessage():e.message),(n=e.actions)===null||n===void 0?void 0:n.map((i,s)=>{let o=!1,l=p=>{if(p.preventDefault(),o)return;o=!0;let _=oo(r.state.field(Er).diagnostics,e);_&&i.apply(r,_.from,_.to)},{name:c}=i,u=a[s]?c.indexOf(a[s]):-1,m=u<0?c:[c.slice(0,u),Ft("u",c.slice(u,u+1)),c.slice(u+1)];return Ft("button",{type:"button",class:"cm-diagnosticAction",onclick:l,onmousedown:l,"aria-label":` Action: ${c}${u<0?"":` (access key "${a[s]})"`}.`},m)}),e.source&&Ft("div",{class:"cm-diagnosticSource"},e.source))}class Oq extends qa{constructor(e){super(),this.diagnostic=e}eq(e){return e.diagnostic==this.diagnostic}toDOM(){return Ft("span",{class:"cm-lintPoint cm-lintPoint-"+this.diagnostic.severity})}}class AE{constructor(e,t){this.diagnostic=t,this.id="item_"+Math.floor(Math.random()*4294967295).toString(16),this.dom=kA(e,t,!0),this.dom.id=this.id,this.dom.setAttribute("role","option")}}class ad{constructor(e){this.view=e,this.items=[];let t=a=>{if(a.keyCode==27)CE(this.view),this.view.focus();else if(a.keyCode==38||a.keyCode==33)this.moveSelection((this.selectedIndex-1+this.items.length)%this.items.length);else if(a.keyCode==40||a.keyCode==34)this.moveSelection((this.selectedIndex+1)%this.items.length);else if(a.keyCode==36)this.moveSelection(0);else if(a.keyCode==35)this.moveSelection(this.items.length-1);else if(a.keyCode==13)this.view.focus();else if(a.keyCode>=65&&a.keyCode<=90&&this.selectedIndex>=0){let{diagnostic:i}=this.items[this.selectedIndex],s=xA(i.actions);for(let o=0;o{for(let i=0;iCE(this.view)},"×")),this.update()}get selectedIndex(){let e=this.view.state.field(Er).selected;if(!e)return-1;for(let t=0;t{let c=-1,u;for(let m=n;mn&&(this.items.splice(n,c-n),a=!0)),t&&u.diagnostic==t.diagnostic?u.dom.hasAttribute("aria-selected")||(u.dom.setAttribute("aria-selected","true"),i=u):u.dom.hasAttribute("aria-selected")&&u.dom.removeAttribute("aria-selected"),n++});n({sel:i.dom.getBoundingClientRect(),panel:this.list.getBoundingClientRect()}),write:({sel:s,panel:o})=>{s.topo.bottom&&(this.list.scrollTop+=s.bottom-o.bottom)}})):this.selectedIndex<0&&this.list.removeAttribute("aria-activedescendant"),a&&this.sync()}sync(){let e=this.list.firstChild;function t(){let n=e;e=n.nextSibling,n.remove()}for(let n of this.items)if(n.dom.parentNode==this.list){for(;e!=n.dom;)t();e=n.dom.nextSibling}else this.list.insertBefore(n.dom,e);for(;e;)t()}moveSelection(e){if(this.selectedIndex<0)return;let t=this.view.state.field(Er),n=oo(t.diagnostics,this.items[e].diagnostic);n&&this.view.dispatch({selection:{anchor:n.from,head:n.to},scrollIntoView:!0,effects:NA.of(n)})}static open(e){return new ad(e)}}function vq(r,e='viewBox="0 0 40 40"'){return`url('data:image/svg+xml,${encodeURIComponent(r)}')`}function xc(r){return vq(``,'width="6" height="3"')}const Eq=Me.baseTheme({".cm-diagnostic":{padding:"3px 6px 3px 8px",marginLeft:"-1px",display:"block",whiteSpace:"pre-wrap"},".cm-diagnostic-error":{borderLeft:"5px solid #d11"},".cm-diagnostic-warning":{borderLeft:"5px solid orange"},".cm-diagnostic-info":{borderLeft:"5px solid #999"},".cm-diagnostic-hint":{borderLeft:"5px solid #66d"},".cm-diagnosticAction":{font:"inherit",border:"none",padding:"2px 4px",backgroundColor:"#444",color:"white",borderRadius:"3px",marginLeft:"8px",cursor:"pointer"},".cm-diagnosticSource":{fontSize:"70%",opacity:.7},".cm-lintRange":{backgroundPosition:"left bottom",backgroundRepeat:"repeat-x",paddingBottom:"0.7px"},".cm-lintRange-error":{backgroundImage:xc("#d11")},".cm-lintRange-warning":{backgroundImage:xc("orange")},".cm-lintRange-info":{backgroundImage:xc("#999")},".cm-lintRange-hint":{backgroundImage:xc("#66d")},".cm-lintRange-active":{backgroundColor:"#ffdd9980"},".cm-tooltip-lint":{padding:0,margin:0},".cm-lintPoint":{position:"relative","&:after":{content:'""',position:"absolute",bottom:0,left:"-2px",borderLeft:"3px solid transparent",borderRight:"3px solid transparent",borderBottom:"4px solid #d11"}},".cm-lintPoint-warning":{"&:after":{borderBottomColor:"orange"}},".cm-lintPoint-info":{"&:after":{borderBottomColor:"#999"}},".cm-lintPoint-hint":{"&:after":{borderBottomColor:"#66d"}},".cm-panel.cm-panel-lint":{position:"relative","& ul":{maxHeight:"100px",overflowY:"auto","& [aria-selected]":{backgroundColor:"#ddd","& u":{textDecoration:"underline"}},"&:focus [aria-selected]":{background_fallback:"#bdf",backgroundColor:"Highlight",color_fallback:"white",color:"HighlightText"},"& u":{textDecoration:"none"},padding:0,margin:0},"& [name=close]":{position:"absolute",top:"0",right:"2px",background:"inherit",border:"none",font:"inherit",padding:0,margin:0}}}),Tq=[Er,Me.decorations.compute([Er],r=>{let{selected:e,panel:t}=r.field(Er);return!e||!t||e.from==e.to?Je.none:Je.set([pq.range(e.from,e.to)])}),Ey(fq,{hideOn:mq}),Eq],wE="#262626",yq="#3B4252",$s="#BBBBBB",MA="#4C566A",LA="#D8DEE9",dl="#E5E9F0",Rq="#8FBCBB",Xi="#BF616A",Cq="#D08770",Aq="#B48EAD",Ns="#FBCF8B",$i="#88C0D0",IE="#D08770",wq="#5E81AC",Xf="#B48EAD",Iq="#A3BE8C",NE="#A3BE8C",DE=Xi,Nq="#262626",Kf="#252525",Zf=yq,xE=LA,Dq=Me.theme({"&":{color:dl,backgroundColor:"transparent",fontSize:"24px",fontFamily:"IBM Plex Mono"},".cm-content":{caretColor:xE,fontFamily:"IBM Plex Mono"},".cm-cursor, .cm-dropCursor":{borderLeftColor:xE},"&.cm-focused .cm-selectionBackground, .cm-selectionBackground, .cm-content ::selection":{backgroundColor:wE,border:`0.5px solid ${wE}`},".cm-panels":{backgroundColor:Nq,color:dl},".cm-panels.cm-panels-top":{borderBottom:"2px solid black"},".cm-panels.cm-panels-bottom":{borderTop:"2px solid black"},".cm-search.cm-panel":{backgroundColor:"transparent"},".cm-searchMatch":{outline:`1px solid ${Ns}`},".cm-searchMatch.cm-searchMatch-selected":{backgroundColor:Kf},".cm-activeLine":{backgroundColor:"rgb(76,76,106, 0.1)"},".cm-selectionMatch":{backgroundColor:LA,outline:`1px solid ${Xi}`},"&.cm-focused .cm-matchingBracket":{color:$s},"&.cm-focused .cm-nonmatchingBracket":{color:Xi},".cm-gutters":{backgroundColor:"transparent",color:$s},".cm-activeLineGutter":{backgroundColor:Kf,color:$s},".cm-foldPlaceholder":{border:"none",color:`${Rq}`},".cm-tooltip":{border:"none",backgroundColor:Zf},".cm-tooltip .cm-tooltip-arrow:before":{},".cm-tooltip .cm-tooltip-arrow:after":{borderTopColor:Zf,borderBottomColor:Zf},".cm-tooltip-autocomplete":{"& > ul > li[aria-selected]":{backgroundColor:Kf,color:MA}}},{dark:!0}),xq=Zl.define([{tag:H.keyword,color:Xf},{tag:[H.name,H.deleted,H.character,H.macroName],color:Ns},{tag:[H.propertyName],color:$i},{tag:[H.variableName],color:dl},{tag:[H.function(H.variableName)],color:Ns},{tag:[H.labelName],color:Xf},{tag:[H.color,H.constant(H.name),H.standard(H.name)],color:$i},{tag:[H.definition(H.name),H.separator],color:Aq},{tag:[H.brace],color:Xf},{tag:[H.annotation],color:DE},{tag:[H.number,H.changed,H.annotation,H.modifier,H.self,H.namespace],color:IE},{tag:[H.typeName,H.className],color:IE},{tag:[H.operator,H.operatorKeyword],color:wq},{tag:[H.tagName],color:Cq},{tag:[H.squareBracket],color:Xi},{tag:[H.angleBracket],color:$s},{tag:[H.attributeName],color:dl},{tag:[H.regexp],color:DE},{tag:[H.quote],color:Iq},{tag:[H.string],color:NE},{tag:H.link,color:Ns,textDecoration:"underline",textUnderlinePosition:"under"},{tag:[H.url,H.escape,H.special(H.string)],color:$i},{tag:[H.meta],color:MA},{tag:[H.comment],color:$s,fontStyle:"italic"},{tag:H.monospace,color:dl},{tag:H.strong,fontWeight:"bold",color:Xi},{tag:H.emphasis,fontStyle:"italic",color:NE},{tag:H.strikethrough,textDecoration:"line-through"},{tag:H.heading,fontWeight:"bold",color:$i},{tag:H.heading1,fontWeight:"bold",color:$i},{tag:[H.heading2,H.heading3,H.heading4],fontWeight:"bold",color:$i},{tag:[H.heading5,H.heading6],color:$i},{tag:[H.atom,H.bool,H.special(H.variableName)],color:Ns},{tag:[H.processingInstruction,H.inserted],color:Xi},{tag:[H.contentSeparator],color:Ns},{tag:H.invalid,color:$s,borderBottom:`1px dotted ${Xi}`}]),kq=[Dq,Yy(xq)],ui={seed:{name:"seed",category:"randomness",description:"Seed the random generator",example:"seed(1234)"},delayr:{name:"delayr",category:"time",description:"Delay a function n times by t ms",example:"delayr(50,3,()=> beat(1)::log('hey!'))"},toss:{name:"toss",category:"randomness",description:"Toss a coin, true or false",example:"toss() : log('heads')"},lpadsr:{name:"lpadsr",category:"synthesis",description:"Lowpass filter ADSR envelope",example:"sound('sawtooth').lpadsr(2,0,.1,0,0).out()"},lpenv:{name:"lpenv",category:"synthesis",description:"Lowpass filter ADSR envelope amount",example:"sound('sawtooth').lpenv(2).lpd(.2).out()"},hpadsr:{name:"hpadsr",category:"synthesis",description:"Highpass filter ADSR envelope",example:"sound('sawtooth').hpadsr(2, 0, .1, 0, 0).out()"},hpenv:{name:"hpenv",category:"synthesis",description:"Highpass filter ADSR envelope amount",example:"sound('sawtooth').hpenv(2).hpd(.2).out()"},bpadsr:{name:"bpadsr",category:"synthesis",description:"Bandpass filter ADSR envelope",example:"sound('sawtooth').bpadsr(2, 0, .1, 0, 0).out()"},bpattack:{name:"bpattack",category:"synthesis",description:"Bandpass filter ADSR envelope attack time (in seconds)",example:"sound('sawtooth').bpf(2000).bpenv(2).bpa(.2).out()"},bpdecay:{name:"bpdecay",category:"synthesis",description:"Bandpass filter ADSR envelope decay time (in seconds)",example:"sound('sawtooth').bpf(2000).bpenv(2).bpd(.2).out()"},bpsustain:{name:"bpsustain",category:"synthesis",description:"Bandpass filter ADSR envelope sustain level (0-1)",example:"sound('sawtooth').bpf(2000).bpenv(2).bpsustain(0.5).out()"},bprelease:{name:"bprelease",category:"synthesis",description:"Bandpass filter ADSR envelope release time (in seconds)",example:"sound('sawtooth').bpf(2000).bpenv(2).bpr(.2).out()"},bpenv:{name:"bpenv",category:"synthesis",description:"Bandpass filter ADSR envelope amount",example:"sound('sawtooth').bpenv(2).bpd(.2).out()"},adsr:{name:"adsr",category:"synthesis",description:"ADSR envelope",example:"sound('sawtooth').adsr(0, .1, 0, 0).out()"},ad:{name:"ad",category:"synthesis",description:"AD envelope times (in seconds)",example:"sound('sawtooth').ad(0, .1).out()"},attack:{name:"attack",category:"synthesis",description:"ADSR envelope attack time (in seconds)",example:"sound('sawtooth').attack(.5).out()"},decay:{name:"decay",category:"synthesis",description:"ADSR envelope decay time (in seconds)",example:"sound('sawtooth').decay(.5).out()"},sustain:{name:"sustain",category:"synthesis",description:"ADSR envelope sustain level (0-1)",example:"sound('sawtooth').sustain(.5).out()"},release:{name:"release",category:"synthesis",description:"ADSR envelope release time (in seconds)",example:"sound('sawtooth').release(.5).out()"},fmwave:{name:"fmwave",category:"synthesis",description:"FM synth modulator waveform",example:"sound('fm').fmwave('sine').out()"},fmi:{name:"fmi",category:"audio",description:"FM synth modulator index",example:"sound('fm').fmi([1,2].beat()).out()"},fmh:{name:"fmh",category:"audio",description:"FM synth modulator ratio",example:"sound('fm').fmi(2).fmh(2).out()"},fmattack:{name:"fmattack",category:"synthesis",description:"FM synth modulator ADSR envelope attack time (in seconds)",example:"sound('sine').fmi(2).fmattack(.5).out()"},fmdecay:{name:"fmdecay",category:"synthesis",description:"FM synth modulator ADSR envelope decay time (in seconds)",example:"sound('sine').fmi(2).fmdecay(.5).out()"},fmsustain:{name:"fmsustain",category:"synthesis",description:"FM synth modulator ADSR envelope sustain level (0-1)",example:"sound('sine').fmi(2).fmsustain(.5).out()"},fmrelease:{name:"fmrelease",category:"synthesis",description:"FM synth modulator ADSR envelope release time (in seconds)",example:"sound('sine').fmi(2).fmrelease(.5).out()"},repeat:{name:"repeat",category:"patterns",description:"Repeat every array elements n times",example:"[0,1,2,3].repeat(2)"},quant:{name:"quant",category:"functions",description:"Quantize a value in the given array",example:"quant(30, [0,1,2,3])"},log:{name:"log",category:"javascript",description:"Log a value in the console",example:"log('Hello, world')"},flip:{name:"flip",category:"patterns",description:"Returns true and false alternatively or next value every n beats (arrays)",example:"flip(4, 50) // 4 beats of true, 4 beats of false, 50/50."},n:{name:"n",category:"audio",description:"Sample number or synth oscillator partials count",example:"sound('dr').n([1,2].beat()).out()"},note:{name:"note",category:"patterns",description:"MIDI note number (0-127)",example:"sound('jvbass').note(50).out()"},vel:{name:"vel",category:"audio",description:"Velocity or sound volume (0-1)",example:"sound('cp').vel(.5).out()"},palindrome:{name:"palindrome",category:"patterns",description:"Returns palindrome of the current array",example:"[0,1,2,3].palindrome()"},cutoff:{name:"cutoff",category:"filter",description:"Lowpass filter cutoff frequency",example:"sound('cp').cutoff(1000).out()"},resonance:{name:"resonance",category:"filter",description:"Lowpass filter resonance",example:"sound('cp').resonance(1).out()"},hcutoff:{name:"hcutoff",category:"filter",description:"Highpass filter cutoff frequency",example:"sound('cp').hcutoff(1000).out()"},hresonance:{name:"hresonance",category:"filter",description:"Highpass filter resonance",example:"sound('cp').hresonance(1).out()"},bandf:{name:"bandf",category:"filter",description:"Bandpass filter cutoff frequency",example:"sound('cp').bandf(1000).out()"},bandq:{name:"bandq",category:"filter",description:"Bandpass filter resonance",example:"sound('cp').bandq(1).out()"},vowel:{name:"vowel",category:"filter",description:"Vowel filter type",example:"sound('cp').vowel('a').out()"},coarse:{name:"coarse",category:"synthesis",description:"Artificial sample-rate lowering",example:"beat(.5)::snd('pad').coarse($(1) % 16).clip(.5).out();"},crush:{name:"crush",category:"synthesis",description:"Bitcrushing effect. 1 is extreme, superior values are more subtle.",example:""},speed:{name:"speed",category:"sampling",description:"Sample playback speed",example:"sound('cp').speed(.5).out()"},shape:{name:"shape",category:"synthesis",description:"Waveshaping distorsion",example:"sound('cp').shape(.5).out()"},delay:{name:"delay",category:"effect",description:"Delay effect dry/wet",example:"sound('cp').delay(.5).out()"},delayfb:{name:"delayfb",category:"effect",description:"Delay effect feedback amount (0-1)",example:"sound('cp').delay(0.2).delayfb(.5).out()"},delaytime:{name:"delaytime",category:"effect",description:"Delay effect delay time (in seconds)",example:"sound('cp').delay(0.2).delaytime(.5).out()"},gain:{name:"gain",category:"audio",description:"Playback volume",example:"sound('cp').gain(.5).out()"},bar:{name:"bar",category:"patterns",description:"Returns list index for the current bar (with wrapping)",example:"[0,1,2,3].bar()"},room:{name:"room",category:"effect",description:"Reverb effect room amount (0-1 or +)",example:"sound('cp').room(.5).out()"},size:{name:"size",category:"effect",description:"Reverb effect room size",example:"sound('cp').size(.5).out()"},roomlp:{name:"roomlp",category:"effect",description:"Reverb effect room lowpass filter cutoff frequency",example:"sound('cp').room(.5).size(.5).roomlp(.5).out()"},roomfade:{name:"roomfade",category:"effect",description:"Reverb effect room fade time (in seconds)",example:"sound('cp').room(.5).size(.5).roomfade(.5).out()"},roomdim:{name:"roomdim",category:"effect",description:"Reverb lowpass frequency at -60db (in hertz)",example:"sound('cp').room(.5).size(.5).roomdim(.5).out()"},usine:{name:"usine",category:"modulation",description:"Unipolar sinusoïdal low-frequency oscillator",example:"usine(5) // 5 hz oscillation"},sine:{name:"usine",category:"modulation",description:"Sinusoïdal low-frequency oscillator",example:"usine(5) // 5 hz oscillation"},utriangle:{name:"utriangle",category:"modulation",description:"Unipolar triangular low-frequency oscillator",example:"utriangle(5) // 5 hz oscillation"},triangle:{name:"triangle",category:"modulation",description:"Triangular low-frequency oscillator",example:"triangle(5) // 5 hz oscillation"},usaw:{name:"usaw",category:"modulation",description:"Unipolar sawtooth low-frequency oscillator",example:"usaw(5) // 5 hz oscillation"},saw:{name:"saw",category:"modulation",description:"Sawtooth low-frequency oscillator",example:"saw(5) // 5 hz oscillation"},square:{name:"square",category:"modulation",description:"Square low-frequency oscillator",example:"square(5) // 5 hz oscillation"},usquare:{name:"usquare",category:"modulation",description:"Unipolar square low-frequency oscillator",example:"usquare(5) // 5 hz oscillation"},rhythm:{name:"rhythm",category:"rhythm",description:"Variant of the euclidian algorithm function",example:"rhythm(.5, 3, 8) // time, pulses, steps"},let:{name:"let",category:"javascript",description:"Variable assignation",example:"let baba = 10"},onbeat:{name:"onbeat",category:"rhythm",description:"Return true when targetted beat(s) is/are reached",example:"onbeat([1,2,3]) // true on beats 1, 2 and 3"},oncount:{name:"oncount",category:"rhythm",description:"Return true when targetted beat(s) is/are reached in the given period",example:"oncount([1,2,3], 4) // true on beats 1, 2 and 3 in a 4 beats period"},beat:{name:"beat",category:"rhythm",description:"return true every n beats.",example:"beat(1) :: log(rand(1,5))"},pulse:{name:"pulse",category:"rhythm",description:"return true every n pulses.",example:"pulse(8) :: log(rand(1,5))"},euclid:{name:"euclid",category:"rhythm",description:"Iterator-based euclidian rhythm generator",example:"euclid($(1), 3, 8) // iterator, pulses"},oneuclid:{name:"oneuclid",category:"rhythm",description:"Variant of the euclidian rhythm generator",example:"oneuclid(3, 8) // iterator, pulses"},bin:{name:"bin",category:"rhythm",description:"Convert a decimal number to binary rhythm generator",example:"bin($(1), 9223) // iterator, number to convert"},binrhythm:{name:"binrhythm",category:"rhythm",description:"Binary rhythm generator (time, number)",example:"binrhythm(.5, 9223) :: sound('cp').out()"},prob:{name:"prob",category:"randomness",description:"Return true with a probability of n %",example:"prob(50) // 50% probability"},rand:{name:"rand",category:"randomness",description:"random floating point number between x and y",example:"rand(1, 10) // between 1 and 10"},irand:{name:"irand",category:"randomness",description:"random integer number between x and y",example:"irand(1, 10) // between 1 and 10"},pick:{name:"pick",category:"randomness",description:"Pick a value in the given array",example:"[1,4,10].pick()"},odds:{name:"odds",category:"randomness",description:"Return true with a probability of n %",example:"odds(1/2) // 50% probability"},never:{name:"never",category:"randomness",description:"Return false",example:"never() // false"},almostNever:{name:"almostNever",category:"randomness",description:"Return true with a probability of 2.5%",example:"almostNever() // 2.5% chance"},rarely:{name:"rarely",category:"randomness",description:"Return true with a probability of 10%",example:"rarely() // 10% chance"},scarcely:{name:"scarcely",category:"randomness",description:"Return true with a probability of 25%",example:"scarcely() // 25% chance"},sometimes:{name:"sometimes",category:"randomness",description:"Return true with a probability of 50%",example:"sometimes() // 50% chance"},often:{name:"often",category:"randomness",description:"Return true with a probability of 75%",example:"often() // 75% chance"},frequently:{name:"frequently",category:"randomness",description:"Return true with a probability of 90%",example:"frequently() // chance"},almostAlways:{name:"almostAlways",category:"randomness",description:"Return true with a probability of 98.5%",example:"almostAlways() // 98.5% chance"},always:{name:"always",category:"randomness",description:"Return true",example:"always() // true"},sound:{name:"sound",category:"audio",description:"Base function to play audio (samples / synths)",example:"sound('bd').out()"},snd:{name:"snd",category:"audio",description:"Base function to play audio (samples / synths). Alias for sound.",example:"sound('bd').out()"},tempo:{name:"tempo",category:"time",description:"Get or set the current beats per minute.",example:"tempo(135) // set the bpm to 135"},out:{name:"out",category:"audio",description:"Connect the sound() chain to the output",example:"sound('clap').out()"},script:{name:"script",category:"core",description:"Execute one or more local scripts",example:"beat(1) :: script(1)"},clear_script:{name:"clear_script",category:"core",description:"Deletes the given script",example:"clear_script(2)"},copy_script:{name:"copy_script",category:"core",description:"Copy the script from to the script to",example:"copy_script(1, 2)"},warp:{name:"warp",category:"core",description:"jumps to the n tick of the clock.",example:"warp(1) :: log('back to the big bang!')"},beat_warp:{name:"beat_warp",category:"core",description:"jumps to the n beat of the clock.",example:"beat_warp(1) :: log('back to the first beat!')"},flipbar:{name:"flipbar",category:"time",description:"works just like flip at the level of bars instead of beats",example:"flipbar(2)::beat(1)::snd('kick').out()"},onbar:{name:"onbar",category:"time",description:"return true when targetted bar(s) is/are reached in period",example:"onbar(4, 4)::beat(.5)::snd('hh').out();"},begin:{name:"begin",category:"sampling",description:"Audio playback start time (0-1)",example:"sound('cp').begin(.5).out()"},end:{name:"end",category:"sampling",description:"Audio playback end time (0-1)",example:"sound('cp').end(.5).out()"},mouseX:{name:"mouseX",category:"mouse",description:"Mouse X position (big float)",example:"log(mouseX())"},mouseY:{name:"mouseY",category:"mouse",description:"Mouse Y position (big float)",example:"log(mouseY())"},noteX:{name:"noteX",category:"mouse",description:"Mouse X position (as MIDI note)",example:"log(noteX())"},noteY:{name:"noteY",category:"mouse",description:"Mouse Y position (as MIDI note)",example:"log(noteY())"},cut:{name:"cut",category:"sampling",description:"Cutting sample when other sample met on same orbit (0 or 1)",example:"sound('cp').cut(1).out()"},pan:{name:"pan",category:"audio",description:"Stereo panning (-1 to 1)",example:"sound('cp').pan(-1).out()"},zrand:{name:"zrand",category:"synthesis",description:"ZzFX randomisation factor",example:"sound('zzfx').zrand(.5).out()"},curve:{name:"curve",category:"synthesis",description:"ZzFX waveshaping (0-3)",example:"sound('zzfx').curve(1).out()"},slide:{name:"slide",category:"synthesis",description:"ZzFX pitch slide",example:"sound('zzfx').slide(1).out()"},deltaSlide:{name:"deltaSlide",category:"synthesis",description:"ZzFX pitch delta slide",example:"sound('zzfx').deltaSlide(1).out()"},pitchJump:{name:"pitchJump",category:"synthesis",description:"ZzFX pitch jump",example:"sound('zzfx').pitchJump(1).out()"},pitchJumpTime:{name:"pitchJumpTime",category:"synthesis",description:"ZzFX pitch jump time (time before jump)",example:"sound('zzfx').pitchJumpTime(1).out()"},zcrush:{name:"zcrush",category:"synthesis",description:"ZzFX bitcrushing",example:"sound('zzfx').zcrush(1).out()"},zdelay:{name:"zdelay",category:"synthesis",description:"ZzFX delay",example:"sound('zzfx').zdelay(1).out()"},tremolo:{name:"tremolo",category:"synthesis",description:"ZzFX weird tremolo effect",example:"sound('zzfx').tremolo(1).out()"},speak:{name:"speak",category:"synthesis",description:"Text to speech synthesizer",example:"beat(2) :: speak('Topos!','fr',irand(0,5))"},midi_outputs:{name:"midi_outputs",category:"midi",description:"List of available MIDI outputs",example:"midi_outputs()"},midi_output:{name:"midi_output",category:"midi",description:"Set the current MIDI output",example:"midi_output('IAC Driver Bus 1')"},midi:{name:"midi",category:"midi",description:"Send a MIDI message",example:"midi(144, 60, 100)"},control_change:{name:"control_change",category:"midi",description:"Send a MIDI control change message",example:"control_change({control: 1, value: 60, channel: 10})"},program_change:{name:"program_change",category:"midi",description:"Send a MIDI program change message",example:"program_change(1, 10)"},sysex:{name:"sysex",category:"midi",description:"Send a MIDI sysex message",example:"sysex(0xF0, 0x7D, 0x00, 0x06, 0x01, 0xF7)"},midi_clock:{name:"midi_clock",category:"midi",description:"Send a MIDI clock message",example:"midi_clock()"},degrade:{name:"degrade",category:"patterns",description:"Removes n% of the given array randomly",example:"[0,1,2,3].degrade(20)"},loop:{name:"loop",category:"patterns",description:"Loop over the given array using an iterator",example:"[0,1,2,3].loop($(1))"},$:{name:"$",category:"patterns",description:"Iterator",example:"[0,1,2,3].loop($(1))"},counter:{name:"counter",category:"patterns",description:"Counter/iterator",example:"counter('my_counter_, 20, 1)"},drunk:{name:"drunk",category:"patterns",description:"Returns the next value in a drunk walk",example:"drunk()"},drunk_max:{name:"drunk_max",category:"patterns",description:"Sets the maximum value of the drunk walk",example:"drunk_max(10)"},drunk_min:{name:"drunk_min",category:"patterns",description:"Sets the minimum value of the drunk walk",example:"drunk_min(0)"},drunk_wrap:{name:"drunk_wrap",category:"patterns",description:"Wraps (or not) of the drunk walk (boolean)",example:"drunk_wrap(true)"},v:{name:"v",category:"variable",description:"Global Variable setter or getter",example:"v('my_var', 10) // Sets global variable 'my_var' to 10"},delete_variable:{name:"delete_variable",category:"variable",description:"Deletes the given global variable",example:"delete_variable('my_var')"},clear_variables:{name:"clear_variables",category:"variable",description:"Clears all global variables",example:"clear_variables()"},shuffle:{name:"shuffle",category:"patterns",description:"Shuffle the given array",example:"[0,1,2,3].shuffle()"},rotate:{name:"rotate",category:"patterns",description:"Rotate the given array to the right for n indexes",example:"[0,1,2,3].rotate(2)"},unique:{name:"unique",category:"patterns",description:"Remove duplicates from the given array",example:"[0,1,2,3,3,3].unique()"},add:{name:"add",category:"patterns",description:"Add a value to each element of the given array",example:"[0,1,2,3].add(1)"},sub:{name:"sub",category:"patterns",description:"Substract a value to each element of the given array",example:"[0,1,2,3].sub(1)"},mul:{name:"mul",category:"patterns",description:"Multiply each element of the given array by a value",example:"[0,1,2,3].mul(2)"},div:{name:"div",category:"patterns",description:"Divide each element of the given array by a value",example:"[0,1,2,3].div(2)"},scale:{name:"scale",category:"patterns",description:"Scale setter used by Ziffers",example:"z0('0 1 2 3').scale('major').out()"},zzfx:{name:"zzfx",category:"synthesis",description:"ZzFX sound generator",example:"sound('zzfx').zzfx(...).out()"},vib:{name:"vib",category:"synthesis",description:"Vibrato frequency",example:"sound('sine').vib(1).vibmod(0.5).out()"},vibmod:{name:"vibmod",category:"synthesis",description:"Vibrato modulation amount",example:"sound('sine').vib(1).vibmod(4).out()"},fill:{name:"fill",category:"performance",description:"Detects if the Alt key is pressed",example:"fill() ? 1 : 0.5"},comp:{name:"comp",category:"synthesis",description:"Compressor threshold (dB)",example:"sound('sine').comp(-4).out()"},ratio:{name:"ratio",category:"synthesis",description:"Compressor ratio",example:"sound('sine').comp(1).ratio(4).out()"},knee:{name:"knee",category:"synthesis",description:"Compressor knee (dB)",example:"sound('sine').comp(-4).knee(4).out()"},compAttack:{name:"compAttack",category:"synthesis",description:"Compressor attack time (in seconds)",example:"sound('sine').comp(-4).compAttack(0.1).out()"},compRelease:{name:"compRelease",category:"synthesis",description:"Compressor release time (in seconds)",example:"sound('sine').comp(-4).compRelease(0.1).out()"},noise:{name:"noise",category:"synthesis",description:"Noise amount in the signal (0-1)",example:"sound('triangle').noise(.25).out()"}},PA=Ey((r,e,t)=>{let{from:n,to:a,text:i}=r.state.doc.lineAt(e),s=e,o=e;for(;s>n&&/\w/.test(i[s-n-1]);)s--;for(;o0?null:{pos:s,end:o,above:!0,create(l){if(!(i.slice(s-n,o-n)in ui))return{dom:document.createElement("div")};let c=ui[i.slice(s-n,o-n)]||{},u=`

${c.name} [${c.category}]

${c.description}

${c.example}
@@ -3789,4 +3789,4 @@ https://github.com/highlightjs/highlight.js/issues/2277`),ie=L,te=V),z===void 0& at `+u}return i},e.buildMessage=function(a,i){var s={literal:function(_){return'"'+l(_.text)+'"'},class:function(_){var O=_.parts.map(function(w){return Array.isArray(w)?c(w[0])+"-"+c(w[1]):c(w)});return"["+(_.inverted?"^":"")+O.join("")+"]"},any:function(){return"any character"},end:function(){return"end of input"},other:function(_){return _.description}};function o(_){return _.charCodeAt(0).toString(16).toUpperCase()}function l(_){return _.replace(/\\/g,"\\\\").replace(/"/g,'\\"').replace(/\0/g,"\\0").replace(/\t/g,"\\t").replace(/\n/g,"\\n").replace(/\r/g,"\\r").replace(/[\x00-\x0F]/g,function(O){return"\\x0"+o(O)}).replace(/[\x10-\x1F\x7F-\x9F]/g,function(O){return"\\x"+o(O)})}function c(_){return _.replace(/\\/g,"\\\\").replace(/\]/g,"\\]").replace(/\^/g,"\\^").replace(/-/g,"\\-").replace(/\0/g,"\\0").replace(/\t/g,"\\t").replace(/\n/g,"\\n").replace(/\r/g,"\\r").replace(/[\x00-\x0F]/g,function(O){return"\\x0"+o(O)}).replace(/[\x10-\x1F\x7F-\x9F]/g,function(O){return"\\x"+o(O)})}function u(_){return s[_.type](_)}function m(_){var O=_.map(u),w,I;if(O.sort(),O.length>0){for(w=1,I=1;w",I="@",k=":",G="/",X="(",h=")",S="[:",b="]",N="[",M="{",F="}",Y="+",q="*",ee="%",se="^",ae="&",re=">>",x="<<",L="_",V="?",z="!",te="r",ie="#",_e="b",Ce="=",Ie="~",Ee="iii",we="ii",de="iv",Le="i",Ze="vii",Qe="vi",it="v",nt=/^[0-9]/,Ot=/^[ \n\r\t]/,Mt=/^[a-z]/,ht=/^[a-z_]/,Nt=/^[a-z_0-9]/,Gt=/^[mklpdcwyhnqaefsxtgujzo]/,Ln=/^[a-zA-Z0-9]/,Ve=/^[a-zA-Z0-9\-*+]/,Cn=/^[A-G]/,dt=/^[bs]/,je=/^[A-Z]/,hn=y("-",!1),xt=R([["0","9"]],!1,!1),cn=y(".",!1),J=Q("whitespace"),be=R([" ",` `,"\r"," "],!1,!1),ye=y(",",!1),De=y("|",!1),rt=R([["a","z"]],!1,!1),Ne=R([["a","z"],"_"],!1,!1),Pt=R([["a","z"],"_",["0","9"]],!1,!1),Pe=y("<",!1),mt=y(">",!1),An=y("@",!1),st=y(":",!1),pn=R(["m","k","l","p","d","c","w","y","h","n","q","a","e","f","s","x","t","g","u","j","z","o"],!1,!1),Rt=y("/",!1),Ye=y("(",!1),Pn=y(")",!1),Ia=y("[:",!1),pt=y("]",!1),sr=y("[",!1),Bn=y("{",!1),za=y("}",!1),ia=y("+",!1),nn=y("*",!1),Tr=y("%",!1),yr=y("^",!1),Wa=y("&",!1),wi=y(">>",!1),Rr=y("<<",!1),sa=y("_",!1),Ur=y("?",!1),un=y("!",!1),Xa=y("r",!1),Ka=R([["a","z"],["A","Z"],["0","9"]],!1,!1),W=y("#",!1),oe=y("b",!1),me=R([["a","z"],["A","Z"],["0","9"],"-","*","+"],!1,!1),Se=R([["A","G"]],!1,!1),xe=R(["b","s"],!1,!1),Ge=R([["A","Z"]],!1,!1),Be=y("=",!1),Dt=y("~",!1),qn=y("iii",!1),or=y("ii",!1),ds=y("iv",!1),Ii=y("i",!1),go=y("vii",!1),lr=y("vi",!1),_o=y("v",!1),ms=function(E){return E.filter(D=>D)},hs=function(){return parseFloat(g())},bo=function(){return parseInt(g())},ps=function(){return parseInt(g())},So=function(){},fs=function(E){return Bt(uV,{sound:E})},Jn=function(){return g()},Oo=function(E){return Bt(hl,{items:E})},vo=function(E){return E},gs=function(E,D){return Bt(dV,{item:E,sound:D})},_s=function(E,D){return Bt(mV,{item:E,soundIndex:D})},Eo=function(E){return E},bs=function(){return qq[g()]},To=function(E,D){return E/D},Ss=function(E){return E.filter(D=>D)},yo=function(E){return Bt(hl,{items:E})},Ro=function(E,D){return D?Bt(YE,{item:E,times:D}):Bt(Gs,{items:E})},Cr=function(E){return E},Tt=function(E,D,B){return B instanceof an&&(B=Bt(Gs,{items:[B]})),Bt(_V,{left:E,operation:D,right:B})},Co=function(E,D){return Bt(gV,{items:E,times:D})},Za=function(E){return Bt(VA,{items:E})},Ao=function(E){return E.map(D=>typeof D=="number"?D:void 0)},Na=function(){return Math.ceil(YA(g()))},wo=function(E){var D=E.filter(B=>B).map(B=>Bt(an,{pitch:B[0]},B.toString()));return Bt(Gs,{items:D})},ja=function(E){return E},Os=function(E){return E},vs=function(){},Io=function(E){return Bt(hl,{items:E})},Ja=function(E){return Bt(pV,{octave:E})},Es=function(){return g().split("").reduce((E,D)=>E+(D==="^"?1:-1),0)},ei=function(){return Bt(ml,{seededRandom:i.seededRandom})},ti=function(E,D){return Bt(ml,{min:E,max:D,seededRandom:i.seededRandom})},Ts=function(E,D){return Bt(YE,{item:E,times:D})},Ni=function(E){return Bt(fV,{duration:E})},Da=function(E){return E},wn=function(E){return Bt(u_,{duration:E})},ys=function(E,D,B,Z){const ce=E?i.nodeOptions.octave+E:i.nodeOptions.octave;return Bt(an,{duration:D,pitch:Z,pitchOctave:ce,add:B})},cr=function(E){return E.reduce((D,B)=>D+(B==="#"?1:-1),0)},Di=function(E,D){return Bt(QA,{chord:E,indexes:D})},ec=function(E,D,B){return Bt(ln,{pitches:[E].concat(D),inversion:B})},tc=function(){return g()},od=function(E){return E},ld=function(){return g()},cd=function(E,D,B){i.variables||(i.variables={}),i.variables[E]=D==="="?B.prevaluate():B},nc=function(E){if(E&&i.variables&&i.variables[E])return i.variables[E]},rc=function(E,D,B,Z,ce){const Te=i.nodeOptions.scaleName?i.nodeOptions.scaleName:"MAJOR",_t=i.nodeOptions.key?i.nodeOptions.key:"C",Ar=CV(Z,B,Te,E,D),Mo=D||i.nodeOptions.duration,Qx=E?i.nodeOptions.octave+E:i.nodeOptions.octave;return Bt(ln,{duration:Mo,chordOctave:Qx,pitches:Ar,chordName:Z,inversion:ce,scaleName:Te,key:_t})},ac=function(E,D,B){const Z=i.nodeOptions.scaleName?i.nodeOptions.scaleName:"MAJOR",ce=i.nodeOptions.key?i.nodeOptions.key:"C";return Bt(hV,{roman:E,chordName:D,inversion:B,scaleName:Z,key:ce})},No=function(E){if(E&&i.variables&&i.variables[E])return i.variables[E];const D=i.nodeOptions.scaleName?i.nodeOptions.scaleName:"MAJOR",B=i.nodeOptions.key?i.nodeOptions.key:"C",Z=MV(E,B,D);return Bt(an,{pitch:Z.pc,add:Z.add,scaleName:D,key:B})},C=0,Ke=0,xi=[{line:1,column:1}],ur=0,ki=[],ve=0,d={},f;if("startRule"in i){if(!(i.startRule in l))throw new Error(`Can't start parsing from rule "`+i.startRule+'".');c=l[i.startRule]}function g(){return a.substring(Ke,C)}function v(){return j(Ke,C)}function y(E,D){return{type:"literal",text:E,ignoreCase:D}}function R(E,D,B){return{type:"class",parts:E,inverted:D,ignoreCase:B}}function P(){return{type:"end"}}function Q(E){return{type:"other",description:E}}function $(E){var D=xi[E],B;if(D)return D;for(B=E-1;!xi[B];)B--;for(D=xi[B],D={line:D.line,column:D.column};Bur&&(ur=C,ki=[]),ki.push(E))}function he(E,D,B){return new e(e.buildMessage(E,D),E,D,B)}function fe(){var E,D,B=C*59+0,Z=d[B];return Z?(C=Z.nextPos,Z.result):(E=C,D=Mi(),D!==s&&(Ke=E,D=ms(D)),E=D,d[B]={nextPos:C,result:E},E)}function ue(){var E,D,B,Z,ce,Te,_t,Ar=C*59+1,Mo=d[Ar];if(Mo)return C=Mo.nextPos,Mo.result;for(E=C,D=C,a.charCodeAt(C)===45?(B=u,C++):(B=s,ve===0&&U(hn)),B===s&&(B=null),Z=[],nt.test(a.charAt(C))?(ce=a.charAt(C),C++):(ce=s,ve===0&&U(xt));ce!==s;)Z.push(ce),nt.test(a.charAt(C))?(ce=a.charAt(C),C++):(ce=s,ve===0&&U(xt));if(a.charCodeAt(C)===46?(ce=m,C++):(ce=s,ve===0&&U(cn)),ce!==s){if(Te=[],nt.test(a.charAt(C))?(_t=a.charAt(C),C++):(_t=s,ve===0&&U(xt)),_t!==s)for(;_t!==s;)Te.push(_t),nt.test(a.charAt(C))?(_t=a.charAt(C),C++):(_t=s,ve===0&&U(xt));else Te=s;Te!==s?(B=[B,Z,ce,Te],D=B):(C=D,D=s)}else C=D,D=s;if(D===s)if(D=C,a.charCodeAt(C)===46?(B=m,C++):(B=s,ve===0&&U(cn)),B!==s){if(Z=[],nt.test(a.charAt(C))?(ce=a.charAt(C),C++):(ce=s,ve===0&&U(xt)),ce!==s)for(;ce!==s;)Z.push(ce),nt.test(a.charAt(C))?(ce=a.charAt(C),C++):(ce=s,ve===0&&U(xt));else Z=s;Z!==s?(B=[B,Z],D=B):(C=D,D=s)}else C=D,D=s;return D!==s&&(Ke=E,D=hs()),E=D,d[Ar]={nextPos:C,result:E},E}function le(){var E,D,B=C*59+2,Z=d[B];return Z?(C=Z.nextPos,Z.result):(E=C,a.charCodeAt(C)===45?C++:ve===0&&U(hn),nt.test(a.charAt(C))?(D=a.charAt(C),C++):(D=s,ve===0&&U(xt)),D!==s?(Ke=E,E=bo()):(C=E,E=s),d[B]={nextPos:C,result:E},E)}function Re(){var E,D,B,Z=C*59+3,ce=d[Z];if(ce)return C=ce.nextPos,ce.result;if(E=C,a.charCodeAt(C)===45?C++:ve===0&&U(hn),D=[],nt.test(a.charAt(C))?(B=a.charAt(C),C++):(B=s,ve===0&&U(xt)),B!==s)for(;B!==s;)D.push(B),nt.test(a.charAt(C))?(B=a.charAt(C),C++):(B=s,ve===0&&U(xt));else D=s;return D!==s?(Ke=E,E=ps()):(C=E,E=s),d[Z]={nextPos:C,result:E},E}function Oe(){var E,D,B=C*59+4,Z=d[B];return Z?(C=Z.nextPos,Z.result):(ve++,E=C,Ot.test(a.charAt(C))?(D=a.charAt(C),C++):(D=s,ve===0&&U(be)),D!==s&&(Ke=E,D=So()),E=D,ve--,E===s&&(D=s,ve===0&&U(J)),d[B]={nextPos:C,result:E},E)}function He(){var E,D,B=C*59+8,Z=d[B];return Z?(C=Z.nextPos,Z.result):(E=C,D=tt(),D!==s&&(Ke=E,D=fs(D)),E=D,d[B]={nextPos:C,result:E},E)}function tt(){var E,D,B,Z,ce,Te=C*59+10,_t=d[Te];if(_t)return C=_t.nextPos,_t.result;if(E=C,Mt.test(a.charAt(C))?(D=a.charAt(C),C++):(D=s,ve===0&&U(rt)),D!==s){if(B=[],ht.test(a.charAt(C))?(Z=a.charAt(C),C++):(Z=s,ve===0&&U(Ne)),Z!==s)for(;Z!==s;)B.push(Z),ht.test(a.charAt(C))?(Z=a.charAt(C),C++):(Z=s,ve===0&&U(Ne));else B=s;if(B!==s){for(Z=[],Nt.test(a.charAt(C))?(ce=a.charAt(C),C++):(ce=s,ve===0&&U(Pt));ce!==s;)Z.push(ce),Nt.test(a.charAt(C))?(ce=a.charAt(C),C++):(ce=s,ve===0&&U(Pt));Ke=E,E=Jn()}else C=E,E=s}else C=E,E=s;return d[Te]={nextPos:C,result:E},E}function $e(){var E,D=C*59+11,B=d[D];return B?(C=B.nextPos,B.result):(E=kt(),E===s&&(E=En()),d[D]={nextPos:C,result:E},E)}function kt(){var E,D,B,Z,ce=C*59+12,Te=d[ce];if(Te)return C=Te.nextPos,Te.result;if(E=C,a.charCodeAt(C)===60?(D=O,C++):(D=s,ve===0&&U(Pe)),D!==s){if(B=[],Z=$e(),Z!==s)for(;Z!==s;)B.push(Z),Z=$e();else B=s;B!==s?(a.charCodeAt(C)===62?(Z=w,C++):(Z=s,ve===0&&U(mt)),Z!==s?(Ke=E,E=Oo(B)):(C=E,E=s)):(C=E,E=s)}else C=E,E=s;return d[ce]={nextPos:C,result:E},E}function En(){var E,D=C*59+13,B=d[D];return B?(C=B.nextPos,B.result):(E=tt(),E===s&&(E=kt(),E===s&&(E=Oe())),d[D]={nextPos:C,result:E},E)}function Ht(){var E,D,B,Z=C*59+14,ce=d[Z];return ce?(C=ce.nextPos,ce.result):(E=C,a.charCodeAt(C)===64?(D=I,C++):(D=s,ve===0&&U(An)),D!==s?(B=$e(),B!==s?(Ke=E,E=vo(B)):(C=E,E=s)):(C=E,E=s),d[Z]={nextPos:C,result:E},E)}function rn(){var E,D=C*59+15,B=d[D];return B?(C=B.nextPos,B.result):(E=ud(),E===s&&(E=Li(),E===s&&(E=md(),E===s&&(E=fd(),E===s&&(E=dd())))),d[D]={nextPos:C,result:E},E)}function ut(){var E,D,B,Z=C*59+16,ce=d[Z];return ce?(C=ce.nextPos,ce.result):(E=C,D=rn(),D===s&&(D=Rs()),D!==s?(B=Ht(),B!==s?(Ke=E,E=gs(D,B)):(C=E,E=s)):(C=E,E=s),d[Z]={nextPos:C,result:E},E)}function ft(){var E,D,B,Z=C*59+17,ce=d[Z];return ce?(C=ce.nextPos,ce.result):(E=C,D=ut(),D===s&&(D=rn(),D===s&&(D=Rs())),D!==s?(B=In(),B!==s?(Ke=E,E=_s(D,B)):(C=E,E=s)):(C=E,E=s),d[Z]={nextPos:C,result:E},E)}function In(){var E,D,B,Z=C*59+18,ce=d[Z];return ce?(C=ce.nextPos,ce.result):(E=C,a.charCodeAt(C)===58?(D=k,C++):(D=s,ve===0&&U(st)),D!==s?(B=Do(),B!==s?(Ke=E,E=Eo(B)):(C=E,E=s)):(C=E,E=s),d[Z]={nextPos:C,result:E},E)}function sn(){var E,D,B=C*59+19,Z=d[B];return Z?(C=Z.nextPos,Z.result):(E=C,Gt.test(a.charAt(C))?(D=a.charAt(C),C++):(D=s,ve===0&&U(pn)),D!==s&&(Ke=E,D=bs()),E=D,d[B]={nextPos:C,result:E},E)}function zt(){var E,D=C*59+20,B=d[D];return B?(C=B.nextPos,B.result):(E=oa(),E===s&&(E=ue(),E===s&&(E=sn())),d[D]={nextPos:C,result:E},E)}function oa(){var E,D,B,Z,ce=C*59+21,Te=d[ce];return Te?(C=Te.nextPos,Te.result):(E=C,D=Re(),D!==s?(a.charCodeAt(C)===47?(B=G,C++):(B=s,ve===0&&U(Rt)),B!==s?(Z=Re(),Z!==s?(Ke=E,E=To(D,Z)):(C=E,E=s)):(C=E,E=s)):(C=E,E=s),d[ce]={nextPos:C,result:E},E)}function Mi(){var E,D,B,Z=C*59+22,ce=d[Z];if(ce)return C=ce.nextPos,ce.result;if(E=C,D=[],B=X1(),B===s&&(B=K1(),B===s&&(B=ft(),B===s&&(B=ut(),B===s&&(B=ud(),B===s&&(B=md(),B===s&&(B=Li(),B===s&&(B=dd(),B===s&&(B=Rs(),B===s&&(B=fd()))))))))),B!==s)for(;B!==s;)D.push(B),B=X1(),B===s&&(B=K1(),B===s&&(B=ft(),B===s&&(B=ut(),B===s&&(B=ud(),B===s&&(B=md(),B===s&&(B=Li(),B===s&&(B=dd(),B===s&&(B=Rs(),B===s&&(B=fd())))))))));else D=s;return D!==s&&(Ke=E,D=Ss(D)),E=D,d[Z]={nextPos:C,result:E},E}function Do(){var E,D=C*59+23,B=d[D];return B?(C=B.nextPos,B.result):(E=Oe(),E===s&&(E=Re(),E===s&&(E=W1(),E===s&&(E=_d(),E===s&&(E=xo(),E===s&&(E=H1()))))),d[D]={nextPos:C,result:E},E)}function xo(){var E,D,B,Z,ce=C*59+24,Te=d[ce];if(Te)return C=Te.nextPos,Te.result;if(E=C,a.charCodeAt(C)===60?(D=O,C++):(D=s,ve===0&&U(Pe)),D!==s){if(B=[],Z=Do(),Z!==s)for(;Z!==s;)B.push(Z),Z=Do();else B=s;B!==s?(a.charCodeAt(C)===62?(Z=w,C++):(Z=s,ve===0&&U(mt)),Z!==s?(Ke=E,E=yo(B)):(C=E,E=s)):(C=E,E=s)}else C=E,E=s;return d[ce]={nextPos:C,result:E},E}function Li(){var E,D,B,Z,ce,Te=C*59+25,_t=d[Te];return _t?(C=_t.nextPos,_t.result):(E=C,a.charCodeAt(C)===40?(D=X,C++):(D=s,ve===0&&U(Ye)),D!==s?(a.charCodeAt(C)===58?C++:ve===0&&U(st),B=Mi(),B!==s?(Z=Q1(),Z===s&&(Z=null),a.charCodeAt(C)===41?(ce=h,C++):(ce=s,ve===0&&U(Pn)),ce!==s?(Ke=E,E=Ro(B,Z)):(C=E,E=s)):(C=E,E=s)):(C=E,E=s),d[Te]={nextPos:C,result:E},E)}function Q1(){var E,D,B,Z=C*59+26,ce=d[Z];return ce?(C=ce.nextPos,ce.result):(E=C,a.charCodeAt(C)===58?(D=k,C++):(D=s,ve===0&&U(st)),D!==s?(B=Re(),B!==s?(Ke=E,E=Cr(B)):(C=E,E=s)):(C=E,E=s),d[Z]={nextPos:C,result:E},E)}function ud(){var E,D,B,Z,ce=C*59+27,Te=d[ce];return Te?(C=Te.nextPos,Te.result):(E=C,D=Li(),D===s&&(D=Sd()),D!==s?(B=z1(),B!==s?(Z=Li(),Z===s&&(Z=Sd(),Z===s&&(Z=ko())),Z!==s?(Ke=E,E=Tt(D,B,Z)):(C=E,E=s)):(C=E,E=s)):(C=E,E=s),d[ce]={nextPos:C,result:E},E)}function dd(){var E,D,B,Z,ce,Te=C*59+28,_t=d[Te];return _t?(C=_t.nextPos,_t.result):(E=C,a.substr(C,2)===S?(D=S,C+=2):(D=s,ve===0&&U(Ia)),D!==s?(B=Mi(),B!==s?(Z=Q1(),Z===s&&(Z=null),a.charCodeAt(C)===93?(ce=b,C++):(ce=s,ve===0&&U(pt)),ce!==s?(Ke=E,E=Co(B,Z)):(C=E,E=s)):(C=E,E=s)):(C=E,E=s),d[Te]={nextPos:C,result:E},E)}function md(){var E,D,B,Z,ce=C*59+29,Te=d[ce];return Te?(C=Te.nextPos,Te.result):(E=C,a.charCodeAt(C)===91?(D=N,C++):(D=s,ve===0&&U(sr)),D!==s?(B=Mi(),B!==s?(a.charCodeAt(C)===93?(Z=b,C++):(Z=s,ve===0&&U(pt)),Z!==s?(Ke=E,E=Za(B)):(C=E,E=s)):(C=E,E=s)):(C=E,E=s),d[ce]={nextPos:C,result:E},E)}function hd(){var E,D=C*59+30,B=d[D];return B?(C=B.nextPos,B.result):(E=Re(),E===s&&(E=le()),d[D]={nextPos:C,result:E},E)}function pd(){var E,D,B,Z=C*59+31,ce=d[Z];if(ce)return C=ce.nextPos,ce.result;if(E=C,D=[],B=V1(),B===s&&(B=hd()),B!==s)for(;B!==s;)D.push(B),B=V1(),B===s&&(B=hd());else D=s;return D!==s&&(Ke=E,D=Ao(D)),E=D,d[Z]={nextPos:C,result:E},E}function V1(){var E,D,B,Z,ce=C*59+32,Te=d[ce];return Te?(C=Te.nextPos,Te.result):(E=C,a.charCodeAt(C)===40?C++:ve===0&&U(Ye),D=hd(),D!==s?(B=z1(),B!==s?(Z=pd(),Z!==s?(a.charCodeAt(C)===41?C++:ve===0&&U(Pn),Ke=E,E=Na()):(C=E,E=s)):(C=E,E=s)):(C=E,E=s),d[ce]={nextPos:C,result:E},E)}function Lx(){var E,D,B,Z,ce=C*59+33,Te=d[ce];if(Te)return C=Te.nextPos,Te.result;if(E=C,a.charCodeAt(C)===123?(D=M,C++):(D=s,ve===0&&U(Bn)),D!==s){if(B=[],Z=pd(),Z===s&&(Z=Oe()),Z!==s)for(;Z!==s;)B.push(Z),Z=pd(),Z===s&&(Z=Oe());else B=s;B!==s?(a.charCodeAt(C)===125?(Z=F,C++):(Z=s,ve===0&&U(za)),Z!==s?(Ke=E,E=wo(B)):(C=E,E=s)):(C=E,E=s)}else C=E,E=s;return d[ce]={nextPos:C,result:E},E}function H1(){var E,D,B,Z,ce=C*59+34,Te=d[ce];return Te?(C=Te.nextPos,Te.result):(E=C,a.charCodeAt(C)===123?(D=M,C++):(D=s,ve===0&&U(Bn)),D!==s?(B=Re(),B===s&&(B=_d()),B!==s?(a.charCodeAt(C)===125?(Z=F,C++):(Z=s,ve===0&&U(za)),Z!==s?(Ke=E,E=ja(B)):(C=E,E=s)):(C=E,E=s)):(C=E,E=s),d[ce]={nextPos:C,result:E},E)}function z1(){var E,D=C*59+35,B=d[D];return B?(C=B.nextPos,B.result):(a.charCodeAt(C)===43?(E=Y,C++):(E=s,ve===0&&U(ia)),E===s&&(a.charCodeAt(C)===45?(E=u,C++):(E=s,ve===0&&U(hn)),E===s&&(a.charCodeAt(C)===42?(E=q,C++):(E=s,ve===0&&U(nn)),E===s&&(a.charCodeAt(C)===47?(E=G,C++):(E=s,ve===0&&U(Rt)),E===s&&(a.charCodeAt(C)===37?(E=ee,C++):(E=s,ve===0&&U(Tr)),E===s&&(a.charCodeAt(C)===94?(E=se,C++):(E=s,ve===0&&U(yr)),E===s&&(a.charCodeAt(C)===124?(E=_,C++):(E=s,ve===0&&U(De)),E===s&&(a.charCodeAt(C)===38?(E=ae,C++):(E=s,ve===0&&U(Wa)),E===s&&(a.substr(C,2)===re?(E=re,C+=2):(E=s,ve===0&&U(wi)),E===s&&(a.substr(C,2)===x?(E=x,C+=2):(E=s,ve===0&&U(Rr))))))))))),d[D]={nextPos:C,result:E},E)}function Rs(){var E,D,B=C*59+36,Z=d[B];return Z?(C=Z.nextPos,Z.result):(E=C,D=Ux(),D===s&&(D=Gx(),D===s&&(D=t0(),D===s&&(D=e0(),D===s&&(D=qx(),D===s&&(D=Sd(),D===s&&(D=He(),D===s&&(D=Z1(),D===s&&(D=ko(),D===s&&(D=Bx(),D===s&&(D=Oe(),D===s&&(D=Yx(),D===s&&(D=Li(),D===s&&(D=Lx(),D===s&&(D=Px())))))))))))))),D!==s&&(Ke=E,D=Os(D)),E=D,d[B]={nextPos:C,result:E},E)}function Px(){var E,D,B=C*59+37,Z=d[B];return Z?(C=Z.nextPos,Z.result):(E=C,a.charCodeAt(C)===124?(D=_,C++):(D=s,ve===0&&U(De)),D!==s&&(Ke=E,D=vs()),E=D,d[B]={nextPos:C,result:E},E)}function fd(){var E,D,B,Z,ce=C*59+38,Te=d[ce];return Te?(C=Te.nextPos,Te.result):(E=C,a.charCodeAt(C)===60?(D=O,C++):(D=s,ve===0&&U(Pe)),D!==s?(B=Mi(),B!==s?(a.charCodeAt(C)===62?(Z=w,C++):(Z=s,ve===0&&U(mt)),Z!==s?(Ke=E,E=Io(B)):(C=E,E=s)):(C=E,E=s)):(C=E,E=s),d[ce]={nextPos:C,result:E},E)}function Bx(){var E,D,B=C*59+39,Z=d[B];return Z?(C=Z.nextPos,Z.result):(E=C,D=gd(),D!==s&&(Ke=E,D=Ja(D)),E=D,d[B]={nextPos:C,result:E},E)}function gd(){var E,D,B,Z=C*59+40,ce=d[Z];if(ce)return C=ce.nextPos,ce.result;if(E=C,D=[],a.charCodeAt(C)===94?(B=se,C++):(B=s,ve===0&&U(yr)),B===s&&(a.charCodeAt(C)===95?(B=L,C++):(B=s,ve===0&&U(sa))),B!==s)for(;B!==s;)D.push(B),a.charCodeAt(C)===94?(B=se,C++):(B=s,ve===0&&U(yr)),B===s&&(a.charCodeAt(C)===95?(B=L,C++):(B=s,ve===0&&U(sa)));else D=s;return D!==s&&(Ke=E,D=Es()),E=D,d[Z]={nextPos:C,result:E},E}function W1(){var E,D,B=C*59+41,Z=d[B];return Z?(C=Z.nextPos,Z.result):(E=C,a.charCodeAt(C)===63?(D=V,C++):(D=s,ve===0&&U(Ur)),D!==s&&(Ke=E,D=ei()),E=D,d[B]={nextPos:C,result:E},E)}function _d(){var E,D,B,Z,ce,Te,_t=C*59+42,Ar=d[_t];return Ar?(C=Ar.nextPos,Ar.result):(E=C,a.charCodeAt(C)===40?(D=X,C++):(D=s,ve===0&&U(Ye)),D!==s?(B=Re(),B!==s?(a.charCodeAt(C)===44?(Z=p,C++):(Z=s,ve===0&&U(ye)),Z!==s?(ce=Re(),ce!==s?(a.charCodeAt(C)===41?(Te=h,C++):(Te=s,ve===0&&U(Pn)),Te!==s?(Ke=E,E=ti(B,ce)):(C=E,E=s)):(C=E,E=s)):(C=E,E=s)):(C=E,E=s)):(C=E,E=s),d[_t]={nextPos:C,result:E},E)}function X1(){var E,D,B,Z,ce=C*59+43,Te=d[ce];return Te?(C=Te.nextPos,Te.result):(E=C,D=ft(),D===s&&(D=ut(),D===s&&(D=rn(),D===s&&(D=Rs()))),D!==s?(a.charCodeAt(C)===33?(B=z,C++):(B=s,ve===0&&U(un)),B!==s?(Z=Re(),Z!==s?(Ke=E,E=Ts(D,Z)):(C=E,E=s)):(C=E,E=s)):(C=E,E=s),d[ce]={nextPos:C,result:E},E)}function Yx(){var E,D,B=C*59+44,Z=d[B];return Z?(C=Z.nextPos,Z.result):(E=C,D=zt(),D!==s&&(Ke=E,D=Ni(D)),E=D,d[B]={nextPos:C,result:E},E)}function Fx(){var E,D,B,Z=C*59+45,ce=d[Z];return ce?(C=ce.nextPos,ce.result):(E=C,D=zt(),D!==s?(a.charCodeAt(C)===94?(B=se,C++):(B=s,ve===0&&U(yr)),B!==s?(Ke=E,E=Da(D)):(C=E,E=s)):(C=E,E=s),d[Z]={nextPos:C,result:E},E)}function Ux(){var E,D,B,Z,ce,Te=C*59+46,_t=d[Te];return _t?(C=_t.nextPos,_t.result):(E=C,D=Fx(),D===s&&(D=null),a.charCodeAt(C)===114?(B=te,C++):(B=s,ve===0&&U(Xa)),B!==s?(Z=C,ve++,Ln.test(a.charAt(C))?(ce=a.charAt(C),C++):(ce=s,ve===0&&U(Ka)),ve--,ce===s?Z=void 0:(C=Z,Z=s),Z!==s?(Ke=E,E=wn(D)):(C=E,E=s)):(C=E,E=s),d[Te]={nextPos:C,result:E},E)}function ko(){var E,D,B,Z,ce,Te=C*59+47,_t=d[Te];return _t?(C=_t.nextPos,_t.result):(E=C,D=gd(),D===s&&(D=null),B=zt(),B===s&&(B=null),Z=$x(),Z===s&&(Z=null),ce=le(),ce===s&&(ce=W1(),ce===s&&(ce=_d(),ce===s&&(ce=H1()))),ce!==s?(Ke=E,E=ys(D,B,Z,ce)):(C=E,E=s),d[Te]={nextPos:C,result:E},E)}function $x(){var E,D,B,Z=C*59+48,ce=d[Z];if(ce)return C=ce.nextPos,ce.result;if(E=C,D=[],a.charCodeAt(C)===35?(B=ie,C++):(B=s,ve===0&&U(W)),B===s&&(a.charCodeAt(C)===98?(B=_e,C++):(B=s,ve===0&&U(oe))),B!==s)for(;B!==s;)D.push(B),a.charCodeAt(C)===35?(B=ie,C++):(B=s,ve===0&&U(W)),B===s&&(a.charCodeAt(C)===98?(B=_e,C++):(B=s,ve===0&&U(oe)));else D=s;return D!==s&&(Ke=E,D=cr(D)),E=D,d[Z]={nextPos:C,result:E},E}function K1(){var E,D,B,Z,ce=C*59+49,Te=d[ce];return Te?(C=Te.nextPos,Te.result):(E=C,D=Z1(),D===s&&(D=e0(),D===s&&(D=t0())),D!==s?(a.charCodeAt(C)===64?(B=I,C++):(B=s,ve===0&&U(An)),B!==s?(Z=Li(),Z!==s?(Ke=E,E=Di(D,Z)):(C=E,E=s)):(C=E,E=s)):(C=E,E=s),d[ce]={nextPos:C,result:E},E)}function Z1(){var E,D,B,Z,ce=C*59+50,Te=d[ce];if(Te)return C=Te.nextPos,Te.result;if(E=C,D=ko(),D!==s){if(B=[],Z=ko(),Z!==s)for(;Z!==s;)B.push(Z),Z=ko();else B=s;B!==s?(Z=bd(),Z===s&&(Z=null),Ke=E,E=ec(D,B,Z)):(C=E,E=s)}else C=E,E=s;return d[ce]={nextPos:C,result:E},E}function j1(){var E,D,B,Z=C*59+51,ce=d[Z];if(ce)return C=ce.nextPos,ce.result;if(E=C,D=[],Ve.test(a.charAt(C))?(B=a.charAt(C),C++):(B=s,ve===0&&U(me)),B!==s)for(;B!==s;)D.push(B),Ve.test(a.charAt(C))?(B=a.charAt(C),C++):(B=s,ve===0&&U(me));else D=s;return D!==s&&(Ke=E,D=tc()),E=D,d[Z]={nextPos:C,result:E},E}function bd(){var E,D,B,Z=C*59+52,ce=d[Z];return ce?(C=ce.nextPos,ce.result):(E=C,a.charCodeAt(C)===37?(D=ee,C++):(D=s,ve===0&&U(Tr)),D!==s?(B=Re(),B!==s?(Ke=E,E=od(B)):(C=E,E=s)):(C=E,E=s),d[Z]={nextPos:C,result:E},E)}function J1(){var E,D,B=C*59+53,Z=d[B];return Z?(C=Z.nextPos,Z.result):(E=C,Cn.test(a.charAt(C))?(D=a.charAt(C),C++):(D=s,ve===0&&U(Se)),D!==s?(dt.test(a.charAt(C))?(a.charAt(C),C++):ve===0&&U(xe),Ke=E,E=ld()):(C=E,E=s),d[B]={nextPos:C,result:E},E)}function Gx(){var E,D,B,Z,ce=C*59+54,Te=d[ce];return Te?(C=Te.nextPos,Te.result):(E=C,je.test(a.charAt(C))?(D=a.charAt(C),C++):(D=s,ve===0&&U(Ge)),D!==s?(a.charCodeAt(C)===61?(B=Ce,C++):(B=s,ve===0&&U(Be)),B===s&&(a.charCodeAt(C)===126?(B=Ie,C++):(B=s,ve===0&&U(Dt))),B!==s?(Z=Rs(),Z!==s?(Ke=E,E=cd(D,B,Z)):(C=E,E=s)):(C=E,E=s)):(C=E,E=s),d[ce]={nextPos:C,result:E},E)}function Sd(){var E,D,B=C*59+55,Z=d[B];return Z?(C=Z.nextPos,Z.result):(E=C,je.test(a.charAt(C))?(D=a.charAt(C),C++):(D=s,ve===0&&U(Ge)),D!==s&&(Ke=E,D=nc(D)),E=D,d[B]={nextPos:C,result:E},E)}function e0(){var E,D,B,Z,ce,Te,_t=C*59+56,Ar=d[_t];return Ar?(C=Ar.nextPos,Ar.result):(E=C,D=gd(),D===s&&(D=null),B=zt(),B===s&&(B=null),Z=J1(),Z!==s?(a.charCodeAt(C)===94?C++:ve===0&&U(yr),ce=j1(),ce!==s?(Te=bd(),Te===s&&(Te=null),Ke=E,E=rc(D,B,Z,ce,Te)):(C=E,E=s)):(C=E,E=s),d[_t]={nextPos:C,result:E},E)}function t0(){var E,D,B,Z,ce=C*59+57,Te=d[ce];return Te?(C=Te.nextPos,Te.result):(E=C,a.substr(C,3)===Ee?(D=Ee,C+=3):(D=s,ve===0&&U(qn)),D===s&&(a.substr(C,2)===we?(D=we,C+=2):(D=s,ve===0&&U(or)),D===s&&(a.substr(C,2)===de?(D=de,C+=2):(D=s,ve===0&&U(ds)),D===s&&(a.charCodeAt(C)===105?(D=Le,C++):(D=s,ve===0&&U(Ii)),D===s&&(a.substr(C,3)===Ze?(D=Ze,C+=3):(D=s,ve===0&&U(go)),D===s&&(a.substr(C,2)===Qe?(D=Qe,C+=2):(D=s,ve===0&&U(lr)),D===s&&(a.charCodeAt(C)===118?(D=it,C++):(D=s,ve===0&&U(_o)))))))),D!==s?(a.charCodeAt(C)===94?C++:ve===0&&U(yr),B=j1(),B===s&&(B=null),Z=bd(),Z===s&&(Z=null),Ke=E,E=ac(D,B,Z)):(C=E,E=s),d[ce]={nextPos:C,result:E},E)}function qx(){var E,D,B=C*59+58,Z=d[B];return Z?(C=Z.nextPos,Z.result):(E=C,D=J1(),D!==s&&(Ke=E,D=No(D)),E=D,d[B]={nextPos:C,result:E},E)}var n0=i.nodeOptions||{};function Bt(E,D,B=void 0){D.text=B||g(),D.location=v();for(var Z in n0)(D[Z]===void 0||D[Z]===null)&&(D[Z]=n0[Z]);return new E(D)}if(f=c(),f!==s&&C===a.length)return f;throw f!==s&&C1&&(c=c.slice(1));const u=c.map(m=>isNaN(parseInt(m))?m:parseInt(m));return o(...u).toString()}return o.toString()}}return i[0]}const a=new RegExp(t.join("|"),"g");return r.replace(a,i=>n(i))}function FV(r,e,t){let n=r;for(let a=0;a1&&(t=t.split("").join(" ")),t}revaluate(){this.values=jf(this.input,this.options),this.evaluated=this.evaluate(this.values),this.applyTransformations(),this.duration=this.totalDuration()}pitches(){return this.evaluated.map(e=>e.collect("pitch"))}notes(){return this.evaluated.map(e=>e.collect("note"))}collect(e){return this.evaluated.map(t=>t.collect(e))}sounds(){return this.evaluated.map(e=>e.collect("sound"))}indices(){return this.evaluated.map(e=>e.collect("soundIndex"))}freqs(){return this.evaluated.map(e=>e.collect("freq"))}durations(){return this.evaluated.map(e=>e.collect("duration"))}octaves(){return this.evaluated.map(e=>e.collect("octave"))}retrograde(){return this.evaluated=this.evaluated.reverse(),this}scale(e){return this.applyOptions({scale:e}),this}key(e){return this.applyOptions({key:e}),this}octave(e){return this.applyOptions({octave:e}),this}invert(e){return this.applyOptions({inversion:e}),this}isInOptions(e,t){return this.options.nodeOptions&&this.options.nodeOptions[e]===t}atLast(){return this.index+1>=this.evaluated.length*this.redo}clone(){return ea(this)}notStarted(){return this.index<0}peek(){return this.evaluated[this.index-1||0]}hasStarted(){return this.index>=0}reset(){this.index=-1,this.counter=0}next(){this.index<0&&(this.index=0);const e=this.evaluated[this.index%this.evaluated.length];if(this.index++,this.counter++,this.redo>0&&this.index>=this.evaluated.length*this.redo){if(this.index=0,this.generator){const t=this.generator.next();t.done?this.generatorDone=!0:(this.input=ns.inputFromNumber(t.value),this.revaluate())}this.evaluated=this.evaluate(this.values)}return e}applyOptions(e={}){this.evaluated=this.evaluate(this.evaluated,e),this.applyTransformations()}applyTransformations(){var e;(e=this.globalOptions)!=null&&e.retrograde&&(this.evaluated=this.evaluated.reverse())}update(){return this.evaluated=this.evaluate(this.values),this.applyTransformations(),this}evaluate(e,t={}){let n=e.map(a=>a.evaluate(t)).flat(1/0).filter(a=>a!==void 0);return t.subdivisions&&(n=ZA(n)),n}totalDuration(){return this.evaluated.reduce((t,n)=>t+n.collect("duration"),0)}lead(){let e=this.evaluated.findIndex(t=>t instanceof ln);if(e>=0){for(let t=e+1;t<=this.evaluated.length;t++)if(this.evaluated[t]instanceof ln){const n=this.evaluated[e],a=this.evaluated[t],i=PV(n.notes(),a.notes()),s=ea(a);s.voiceLeadFromNotes(i,this.options.nodeOptions),this.evaluated[t]=s,e=t}}return this}arpeggio(e){typeof e=="number"&&(e=[e]);const t=$q(this.options.nodeOptions,["octave","scaleName","key"],{scaleName:"scale"}),n={...kE,...t},a=this.evaluated.map(i=>i instanceof ln?(typeof e=="string"&&(e=new Gs({items:jf(e,this.options)})),new QA({chord:i,indexes:e}).evaluate(n)):i);return this.evaluated=a.flat(1/0),this}toString(){return this.evaluated.map(e=>e.toString()).join(" ")}rules(e,t=1){const n=FV(this.input,e,t);return new ns(n,this.options.nodeOptions,this.globalOptions)}tonnetzChords(e,t=[3,4,5]){return this.evaluated&&(this.evaluated=this.evaluated.map(n=>n instanceof an?n.tonnetzChord(e,t):n)),this}tonnetz(e,t=[3,4,5]){return this.evaluated&&(this.evaluated=this.evaluated.map(n=>{if(n instanceof ln){if(n.notes().length===3)return n.triadTonnetz(e,t,PE);if(n.notes().length===4)return n.tetraTonnetz(e,t,PE)}else return n}).flat(1/0)),this}triadTonnetz(e,t=[3,4,5]){return this.evaluated&&(this.evaluated=this.evaluated.map(n=>n instanceof ln?n.triadTonnetz(e,t):n).flat(1/0)),this}tetraTonnetz(e,t=[3,4,5]){return this.evaluated&&(this.evaluated=this.evaluated.map(n=>n instanceof ln?n.tetraTonnetz(e,t):n).flat(1/0)),this}hexaCycle(e=[3,4,5]){return this.evaluated&&(this.evaluated=this.evaluated.map(t=>t instanceof an?OQ(t.pitch,e).map(i=>ln.fromPitchClassArray(i,t.key||"C4",t.scaleName||"MAJOR").evaluate({duration:t.duration,octave:t.octave})):t).flat(1/0)),this}octaCycle(e=[3,4,5]){return this.evaluated&&(this.evaluated=this.evaluated.map(t=>t instanceof an?vQ(t.pitch,e).map(i=>ln.fromPitchClassArray(i,t.key||"C4",t.scaleName||"MAJOR").evaluate({duration:t.duration,octave:t.octave})):t).flat(1/0)),this}enneaCycle(e=[3,4,5]){return this.evaluated&&(this.evaluated=this.evaluated.map(t=>t instanceof an?EQ(t.pitch,e).map(i=>ln.fromPitchClassArray(i,t.key||"C4",t.scaleName||"MAJOR").evaluate({duration:t.duration,octave:t.octave})):t).flat(1/0)),this}}const ZA=(r,e=void 0)=>r.map(n=>{if(n instanceof VA){const a=n.evaluated.length,i=(e||n.duration)/a;return ZA(n.evaluated,i)}else return n.duration=e||n.duration,n}).flat(1/0),UV=r=>{let e={};return cV.forEach(t=>{if(r[t]!==void 0){const n=r[t];e[t]=n,delete r[t]}}),e},wa=(r,e)=>{let t=0;if(r<1)return t;for(;r%e**t===0;)t++;return t-1},Va=(r,e)=>{if(r===0)return 0;const t=wa(r,e);return 1/e**t},$V=(r,e,t=11)=>{const n=[];for(let i=1;i{const n=[];for(let s=1;ss!==0))};function*GV(){let[r,e]=[0,1];for(;;)yield r,[r,e]=[e,r+e]}function*qV(){let[r,e,t]=[0,0,1];for(;;)yield e,[r,e,t]=[t,r,r+e+t]}function*QV(){let[r,e,t,n]=[0,0,0,1];for(;;)yield t,[r,e,t,n]=[n,r,e,r+e+t+n]}function*VV(){let[r,e,t,n,a]=[0,0,0,0,1];for(;;)yield n,[r,e,t,n,a]=[a,r,e,t,r+e+t+n+a]}function*HV(){let[r,e,t,n,a,i]=[0,0,0,0,0,1];for(;;)yield a,[r,e,t,n,a,i]=[i,r,e,t,n,r+e+t+n+a+i]}function*zV(){let[r,e,t,n,a,i,s]=[0,0,0,0,0,0,1];for(;;)yield i,[r,e,t,n,a,i,s]=[s,r,e,t,n,a,r+e+t+n+a+i+s]}function*WV(){let[r,e,t,n,a,i,s,o]=[0,0,0,0,0,0,0,1];for(;;)yield s,[r,e,t,n,a,i,s,o]=[o,r,e,t,n,a,i,r+e+t+n+a+i+s+o]}function*XV(){let[r,e,t,n,a,i,s,o,l]=[0,0,0,0,0,0,0,0,1];for(;;)yield o,[r,e,t,n,a,i,s,o,l]=[l,r,e,t,n,a,i,s,r+e+t+n+a+i+s+o+l]}function*KV(r){let[e,t]=[0,1];for(;;)yield e,[e,t]=[t,(e+t)%r]}function*ZV(r){let[e,t,n]=[0,0,1];for(;;)yield t,[e,t,n]=[n,e,(e+t+n)%r]}function*jV(r){let[e,t,n,a]=[0,0,0,1];for(;;)yield n,[e,t,n,a]=[a,e,t,(e+t+n+a)%r]}function*JV(r){let[e,t,n,a,i]=[0,0,0,0,1];for(;;)yield a,[e,t,n,a,i]=[i,e,t,n,(e+t+n+a+i)%r]}function*eH(r){let[e,t,n,a,i,s]=[0,0,0,0,0,1];for(;;)yield i,[e,t,n,a,i,s]=[s,e,t,n,a,(e+t+n+a+i+s)%r]}function*tH(r){let[e,t,n,a,i,s,o]=[0,0,0,0,0,0,1];for(;;)yield s,[e,t,n,a,i,s,o]=[o,e,t,n,a,i,(e+t+n+a+i+s+o)%r]}function*nH(r){let[e,t,n,a,i,s,o,l]=[0,0,0,0,0,0,0,1];for(;;)yield o,[e,t,n,a,i,s,o,l]=[l,e,t,n,a,i,s,(e+t+n+a+i+s+o+l)%r]}function*rH(r){let[e,t,n,a,i,s,o,l,c]=[0,0,0,0,0,0,0,0,1];for(;;)yield l,[e,t,n,a,i,s,o,l,c]=[c,e,t,n,a,i,s,o,(e+t+n+a+i+s+o+l+c)%r]}function*aH(r){let[e,t]=[0,1];for(;;)yield wa(e,r),[e,t]=[t,e+t]}function*iH(r){let[e,t,n]=[0,0,1];for(;;)yield wa(t,r),[e,t,n]=[n,e,e+t+n]}function*sH(r){let[e,t,n,a]=[0,0,0,1];for(;;)yield wa(n,r),[e,t,n,a]=[a,e,t,e+t+n+a]}function*oH(r){let[e,t,n,a,i]=[0,0,0,0,1];for(;;)yield wa(a,r),[e,t,n,a,i]=[i,e,t,n,e+t+n+a+i]}function*lH(r){let[e,t,n,a,i,s]=[0,0,0,0,0,1];for(;;)yield wa(i,r),[e,t,n,a,i,s]=[s,e,t,n,a,e+t+n+a+i+s]}function*cH(r){let[e,t,n,a,i,s,o]=[0,0,0,0,0,0,1];for(;;)yield wa(s,r),[e,t,n,a,i,s,o]=[o,e,t,n,a,i,e+t+n+a+i+s+o]}function*uH(r){let[e,t,n,a,i,s,o,l]=[0,0,0,0,0,0,0,1];for(;;)yield wa(o,r),[e,t,n,a,i,s,o,l]=[l,e,t,n,a,i,s,e+t+n+a+i+s+o+l]}function*dH(r){const e=Array(9).fill(0);e[9-1]=1;let[t,n,a,i,s,o,l,c,u]=e;for(;;)yield wa(c,r),[t,n,a,i,s,o,l,c,u]=[u,t,n,a,i,s,o,l,t+n+a+i+s+o+l+c+u]}function*mH(r){let[e,t]=[0,1];for(;;)yield Va(e,r),[e,t]=[t,e+t]}function*hH(r){let[e,t,n]=[0,0,1];for(;;)yield Va(t,r),[e,t,n]=[n,e,e+t+n]}function*pH(r){let[e,t,n,a]=[0,0,0,1];for(;;)yield Va(n,r),[e,t,n,a]=[a,e,t,e+t+n+a]}function*fH(r){let[e,t,n,a,i]=[0,0,0,0,1];for(;;)yield Va(a,r),[e,t,n,a,i]=[i,e,t,n,e+t+n+a+i]}function*gH(r){let[e,t,n,a,i,s]=[0,0,0,0,0,1];for(;;)yield Va(i,r),[e,t,n,a,i,s]=[s,e,t,n,a,e+t+n+a+i+s]}function*_H(r){let[e,t,n,a,i,s,o]=[0,0,0,0,0,0,1];for(;;)yield Va(s,r),[e,t,n,a,i,s,o]=[o,e,t,n,a,i,e+t+n+a+i+s+o]}function*bH(r){let[e,t,n,a,i,s,o,l]=[0,0,0,0,0,0,0,1];for(;;)yield Va(o,r),[e,t,n,a,i,s,o,l]=[l,e,t,n,a,i,s,e+t+n+a+i+s+o+l]}function*SH(r){const e=Array(9).fill(0);e[9-1]=1;let[t,n,a,i,s,o,l,c,u]=e;for(;;)yield Va(c,r),[t,n,a,i,s,o,l,c,u]=[u,t,n,a,i,s,o,l,t+n+a+i+s+o+l+c+u]}function*OH(r,e=11){let[t,n]=[0,1];for(;;)yield Ha(t,r,e),[t,n]=[n,t+n]}function*vH(r,e=11){let[t,n,a]=[0,0,1];for(;;)yield Ha(n,r,e),[t,n,a]=[a,t,t+n+a]}function*EH(r,e=11){let[t,n,a,i]=[0,0,0,1];for(;;)yield Ha(a,r,e),[t,n,a,i]=[i,t,n,t+n+a+i]}function*TH(r,e=11){let[t,n,a,i,s]=[0,0,0,0,1];for(;;)yield Ha(i,r,e),[t,n,a,i,s]=[s,t,n,a,t+n+a+i+s]}function*yH(r,e=11){let[t,n,a,i,s,o]=[0,0,0,0,0,1];for(;;)yield Ha(s,r,e),[t,n,a,i,s,o]=[o,t,n,a,i,t+n+a+i+s+o]}function*RH(r,e=11){let[t,n,a,i,s,o,l]=[0,0,0,0,0,0,1];for(;;)yield Ha(o,r,e),[t,n,a,i,s,o,l]=[l,t,n,a,i,s,t+n+a+i+s+o+l]}function*CH(r,e=11){let[t,n,a,i,s,o,l,c]=[0,0,0,0,0,0,0,1];for(;;)yield Ha(l,r,e),[t,n,a,i,s,o,l,c]=[c,t,n,a,i,s,o,t+n+a+i+s+o+l+c]}function*AH(r,e=11){const t=Array(9).fill(0);t[9-1]=1;let[n,a,i,s,o,l,c,u,m]=t;for(;;)yield Ha(u,r,e),[n,a,i,s,o,l,c,u,m]=[m,n,a,i,s,o,l,c,n+a+i+s+o+l+c+u+m]}const wH=Object.freeze(Object.defineProperty({__proto__:null,enneanacci:XV,fibonacci:GV,heptanacci:zV,hexanacci:HV,modularEnneanacci:rH,modularFibonacci:KV,modularHeptanacci:tH,modularHexanacci:eH,modularOctanacci:nH,modularPentanacci:JV,modularTetranacci:jV,modularTribonacci:ZV,normPadicEnneanacci:SH,normPadicFibonacci:mH,normPadicHeptanacci:_H,normPadicHexanacci:gH,normPadicOctanacci:bH,normPadicPentanacci:fH,normPadicTetranacci:pH,normPadicTribonacci:hH,octanacci:WV,pAdicExpansion:$V,pAdicExpansionArithmetic:Ha,pAdicExpansionEnneanacci:AH,pAdicExpansionFibonacci:OH,pAdicExpansionHeptanacci:RH,pAdicExpansionHexanacci:yH,pAdicExpansionOctanacci:CH,pAdicExpansionPentanacci:TH,pAdicExpansionTetranacci:EH,pAdicExpansionTribonacci:vH,pAdicNorm:Va,pAdicValuation:wa,padicEnneanacci:dH,padicFibonacci:aH,padicHeptanacci:cH,padicHexanacci:lH,padicOctanacci:uH,padicPentanacci:oH,padicTetranacci:sH,padicTribonacci:iH,pentanacci:VV,tetranacci:QV,tribonacci:qV},Symbol.toStringTag,{value:"Module"}));class IH{constructor(e,t){A(this,"api");A(this,"settings");A(this,"midiAccess",null);A(this,"midiOutputs",[]);A(this,"currentOutputIndex",0);A(this,"scheduledNotes",{});A(this,"midiInputs",[]);A(this,"currentInputIndex");A(this,"bufferLength",512);A(this,"noteInputBuffer",[]);A(this,"ccInputBuffer",[]);A(this,"activeNotes",[]);A(this,"stickyNotes",[]);A(this,"lastNote");A(this,"lastCC",{});A(this,"lastNoteInChannel",{});A(this,"lastCCInChannel",{});A(this,"midiClockInputIndex");A(this,"midiClockInput");A(this,"lastTimestamp",0);A(this,"midiClockDelta",0);A(this,"lastBPM");A(this,"roundedBPM",0);A(this,"clockBuffer",[]);A(this,"clockBufferLength",24);A(this,"clockTicks",0);A(this,"clockErrorCount",0);A(this,"skipOnError",0);this.api=e,this.settings=t,this.lastBPM=e.tempo(),this.roundedBPM=this.lastBPM,this.initializeMidiAccess()}async initializeMidiAccess(){try{this.midiAccess=await navigator.requestMIDIAccess(),this.midiOutputs=Array.from(this.midiAccess.outputs.values()),this.midiOutputs.length===0&&(console.warn("No MIDI outputs available."),this.currentOutputIndex=-1),this.midiInputs=Array.from(this.midiAccess.inputs.values()),this.midiInputs.length===0?console.warn("No MIDI inputs available."):this.updateInputSelects()}catch(e){console.error("Failed to initialize MIDI:",e)}}getCurrentMidiPort(){return this.midiOutputs.length>0&&this.currentOutputIndex>=0&&this.currentOutputIndex0&&this.currentOutputIndex>=0&&this.currentOutputIndex0){const e=document.getElementById("midi-clock-input"),t=document.getElementById("default-midi-input");e.innerHTML="",t.innerHTML="";const n=document.createElement("option");n.value="-1",n.text="Internal",e.appendChild(n);const a=document.createElement("option");if(a.value="-1",a.text="None",t.appendChild(a),this.midiInputs.forEach((i,s)=>{const o=document.createElement("option");o.value=s.toString(),o.text=i.name||s.toString(),e.appendChild(o),t.appendChild(o.cloneNode(!0))}),this.settings.midi_clock_input){const i=this.getMidiInputIndex(this.settings.midi_clock_input);e.value=i.toString(),i>0&&(this.midiClockInput=this.midiInputs[i],this.registerMidiInputListener(i))}else e.value="-1";if(this.settings.default_midi_input){const i=this.getMidiInputIndex(this.settings.default_midi_input);t.value=i.toString(),i>0&&(this.currentInputIndex=i,this.registerMidiInputListener(i))}else t.value="-1";e.addEventListener("change",i=>{const s=i.target.value;if(s==="-1")this.midiClockInput&&this.midiClockInputIndex!=this.currentInputIndex&&(this.midiClockInput.onmidimessage=null),this.midiClockInput=void 0,this.settings.midi_clock_input=void 0;else{const o=parseInt(s);this.midiClockInputIndex=o,this.midiClockInput&&this.midiClockInputIndex!=this.currentInputIndex&&(this.midiClockInput.onmidimessage=null),this.midiClockInput=this.midiInputs[o],this.registerMidiInputListener(o),this.settings.midi_clock_input=this.midiClockInput.name||void 0}}),t.addEventListener("change",i=>{const s=i.target.value;s==="-1"?(this.currentInputIndex&&this.currentInputIndex!=this.midiClockInputIndex&&this.unregisterMidiInputListener(this.currentInputIndex),this.currentInputIndex=void 0,this.settings.default_midi_input=void 0):(this.currentInputIndex&&this.currentInputIndex!=this.midiClockInputIndex&&this.unregisterMidiInputListener(this.currentInputIndex),this.currentInputIndex=parseInt(s),this.registerMidiInputListener(this.currentInputIndex),this.settings.default_midi_input=this.midiInputs[this.currentInputIndex].name||void 0)})}}registerMidiInputListener(e){if(e!==void 0){const t=this.midiInputs[e];t&&!t.onmidimessage&&(t.onmidimessage=n=>{const a=n;if(t.name===this.settings.midi_clock_input&&(a.data[0]===248?this.skipOnError>0?this.skipOnError-=1:this.onMidiClock(n.timeStamp):a.data[0]===250?(console.log("MIDI start received"),this.api.stop(),this.api.play()):a.data[0]===252?(console.log("MIDI stop received"),this.api.pause()):a.data[0]===251?(console.log("MIDI continue received"),this.api.play()):a.data[0]===254&&console.log("MIDI active sensing received")),t.name===this.settings.default_midi_input){if(a.data[0]>=144&&a.data[0]<=159){const i=a.data[0]-144+1,s=a.data[1],o=a.data[2];this.lastNote={note:s,velocity:o,channel:i,timestamp:n.timeStamp},this.lastNoteInChannel[i]={note:s,velocity:o,channel:i,timestamp:n.timeStamp},this.settings.midi_channels_scripts&&this.api.script(i),this.pushToMidiInputBuffer({note:s,velocity:o,channel:i,timestamp:n.timeStamp}),this.activeNotes.push({note:s,velocity:o,channel:i,timestamp:n.timeStamp}),this.removeFromStickyNotes(s,i)||this.stickyNotes.push({note:s,velocity:o,channel:i,timestamp:n.timeStamp})}if(a.data[0]>=128&&a.data[0]<=143){const i=a.data[0]-128+1,s=a.data[1];this.removeFromActiveNotes(s,i)}if(a.data[0]>=176&&a.data[0]<=191){const i=a.data[0]-176+1,s=a.data[1],o=a.data[2];this.lastCC[s]=o,this.lastCCInChannel[i]?this.lastCCInChannel[i][s]=o:(this.lastCCInChannel[i]={},this.lastCCInChannel[i][s]=o),this.pushToMidiCCBuffer({control:s,value:o,channel:i,timestamp:n.timeStamp})}}})}}removeFromActiveNotes(e,t){const n=this.activeNotes.findIndex(a=>a.note===e&&a.channel===t);n>=0&&this.activeNotes.splice(n,1)}removeFromStickyNotes(e,t){const n=this.stickyNotes.findIndex(a=>a.note===e&&a.channel===t);return n>=0?(this.stickyNotes.splice(n,1),!0):!1}stickyNotesFromChannel(e){return this.stickyNotes.filter(t=>t.channel===e)}activeNotesFromChannel(e){return this.activeNotes.filter(t=>t.channel===e)}killActiveNotes(){this.activeNotes=[]}killActiveNotesFromChannel(e){this.activeNotes=this.activeNotes.filter(t=>t.channel!==e)}pushToMidiInputBuffer(e){this.noteInputBuffer.push(e),this.noteInputBuffer.length>this.bufferLength&&this.noteInputBuffer.shift()}pushToMidiCCBuffer(e){this.ccInputBuffer.push(e),this.ccInputBuffer.length>this.bufferLength&&this.ccInputBuffer.shift()}findNoteFromBufferInChannel(e){const t=this.noteInputBuffer.findIndex(n=>n.channel===e);if(t>=0){const n=this.noteInputBuffer[t];return this.noteInputBuffer.splice(t,1),n}else return}findCCFromBufferInChannel(e){const t=this.ccInputBuffer.findIndex(n=>n.channel===e);if(t>=0){const n=this.ccInputBuffer[t];return this.ccInputBuffer.splice(t,1),n}else return}unregisterMidiInputListener(e){if(e!==void 0){const t=this.midiInputs[e];t&&(t.onmidimessage=null)}}onMidiClock(e){if(this.clockTicks+=1,this.lastTimestamp>0)if(this.lastTimestamp===e)this.clockErrorCount+=1;else if(this.clockErrorCount>0)console.log("Timestamp error count: ",this.clockErrorCount),console.log("Current timestamp: ",e),console.log("Last timestamp: ",this.lastTimestamp),console.log("Last delta: ",this.midiClockDelta),console.log("Current delta: ",e-this.lastTimestamp),console.log("BPMs",this.clockBuffer),this.clockErrorCount=0,this.skipOnError=this.settings.midi_clock_ppqn/4,e=0;else{this.midiClockDelta=e-this.lastTimestamp,this.lastBPM=60*(1e3/this.midiClockDelta/this.settings.midi_clock_ppqn),this.clockBuffer.push(this.lastBPM),this.clockBuffer.length>this.clockBufferLength&&this.clockBuffer.shift();const t=this.estimatedBPM();t!==this.roundedBPM&&(console.log("Estimated BPM: ",t),this.api.tempo(t),this.roundedBPM=t)}this.lastTimestamp=e}estimatedBPM(){const e=this.clockBuffer.reduce((t,n)=>t+n);return Math.round(e/this.clockBuffer.length)}sendMidiClock(){if(!this.midiClockInput){const e=this.midiOutputs[this.currentOutputIndex];e&&e.send([248])}}switchMidiOutput(e){const t=this.getMidiOutputIndex(e);return t!==-1?(this.currentOutputIndex=t,!0):!1}getMidiOutputIndex(e){if(typeof e=="number")return e<0||e>=this.midiOutputs.length?(console.error(`Invalid MIDI output index. Index must be in the range 0-${this.midiOutputs.length-1}.`),this.currentOutputIndex):e;{const t=this.midiOutputs.findIndex(n=>n.name===e);return t!==-1?t:(console.error(`MIDI output "${e}" not found.`),this.currentOutputIndex)}}getMidiInputIndex(e){if(typeof e=="number")return e<0||e>=this.midiInputs.length?(console.error(`Invalid MIDI input index. Index must be in the range 0-${this.midiInputs.length-1}.`),-1):e;{const t=this.midiInputs.findIndex(n=>n.name===e);return t!==-1?t:(console.error(`MIDI input "${e}" not found.`),-1)}}listMidiOutputs(){let e="Available MIDI Outputs: ";return this.midiOutputs.forEach((t,n)=>{e+=`(${n+1}) ${t.name} `}),e}sendMidiNote(e,t,n,a,i=this.currentOutputIndex,s=void 0){typeof i=="string"&&(i=this.getMidiOutputIndex(i));const o=this.midiOutputs[i];if(e=Math.min(Math.max(e,0),127),o){const l=[144+t,e,n],c=[128+t,e,0];o.send(l),s&&this.sendPitchBend(s,t,i);const u=setTimeout(()=>{o.send(c),s&&this.sendPitchBend(8192,t,i),delete this.scheduledNotes[e]},(a-.02)*1e3);this.scheduledNotes[e]=u}else console.error("MIDI output not available.")}sendMidiOn(e,t,n,a=this.currentOutputIndex){typeof a=="string"&&(a=this.getMidiOutputIndex(a));const i=this.midiOutputs[a];if(e=Math.min(Math.max(e,0),127),i){const s=[144+t,e,n];i.send(s)}else console.error("MIDI output not available.")}sendMidiOff(e,t,n=this.currentOutputIndex){typeof n=="string"&&(n=this.getMidiOutputIndex(n));const a=this.midiOutputs[n];if(e=Math.min(Math.max(e,0),127),a){const i=[128+t,e,0];a.send(i)}else console.error("MIDI output not available.")}sendAllNotesOff(e,t=this.currentOutputIndex){typeof t=="string"&&(t=this.getMidiOutputIndex(t));const n=this.midiOutputs[t];if(n){const a=[176+e,123,0];n.send(a)}else console.error("MIDI output not available.")}sendAllSoundOff(e,t=this.currentOutputIndex){typeof t=="string"&&(t=this.getMidiOutputIndex(t));const n=this.midiOutputs[t];if(n){const a=[176+e,120,0];n.send(a)}else console.error("MIDI output not available.")}sendSysExMessage(e){const t=this.midiOutputs[this.currentOutputIndex];t?t.send(e):console.error("MIDI output not available.")}sendPitchBend(e,t,n=this.currentOutputIndex){(e<0||e>16383)&&console.error("Invalid pitch bend value. Value must be in the range 0-16383."),(t<0||t>15)&&console.error("Invalid MIDI channel. Channel must be in the range 0-15."),typeof n=="string"&&(n=this.getMidiOutputIndex(n));const a=this.midiOutputs[n];if(a){const i=e&127,s=e>>7&127;a.send([224|t,i,s])}else console.error("MIDI output not available.")}sendProgramChange(e,t){const n=this.midiOutputs[this.currentOutputIndex];n?n.send([192+t,e]):console.error("MIDI output not available.")}sendMidiControlChange(e,t,n){const a=this.midiOutputs[this.currentOutputIndex];a?a.send([176+n,e,t]):console.error("MIDI output not available.")}panic(){const e=this.midiOutputs[this.currentOutputIndex];if(e){for(const t in this.scheduledNotes){const n=this.scheduledNotes[t];clearTimeout(n),e.send([128,parseInt(t),0])}this.scheduledNotes={}}else console.error("MIDI output not available.")}}class NH{constructor(e,t,n){A(this,"min");A(this,"max");A(this,"wrap");A(this,"position");this.min=e,this.max=t,this.wrap=n,this.position=0}step(){const e=Math.floor(Math.random()*3)-1;this.position+=e,this.wrap?this.position>this.max?this.position=this.min:this.positionthis.max&&(this.position=this.max)}getPosition(){return this.position}toggleWrap(e){this.wrap=e}}const fl=class fl{constructor(){A(this,"_fallbackMethod",()=>fl.createSkipProxy());A(this,"out",()=>{})}};A(fl,"createSkipProxy",()=>{const e=new fl;return new Proxy(e,{get(t,n,a){return typeof t[n]>"u"?t._fallbackMethod:t[n]},set(t,n,a,i){return!1}})});let lo=fl;class sd{constructor(e){A(this,"seedValue");A(this,"randomGen",Math.random);A(this,"app");A(this,"values",{});A(this,"evenbar",e=>this.app.clock.time_position.bar%2===0?this.modify(e):this);A(this,"even",e=>this.app.clock.time_position.beat%2===0?this.modify(e):this);A(this,"odd",e=>this.app.clock.time_position.beat%2!==0?this.modify(e):this);A(this,"odds",(e,t)=>this.randomGen()this);A(this,"almostNever",e=>this.odds(.025,e));A(this,"rarely",e=>this.odds(.1,e));A(this,"scarcely",e=>this.odds(.25,e));A(this,"sometimes",e=>this.odds(.5,e));A(this,"often",e=>this.odds(.75,e));A(this,"frequently",e=>this.odds(.9,e));A(this,"almostAlways",e=>this.odds(.985,e));A(this,"always",e=>this.modify(e));A(this,"modify",e=>e(this));A(this,"seed",e=>(this.seedValue=e.toString(),this.randomGen=this.app.api.localSeededRandom(this.seedValue),this));A(this,"clear",()=>(this.app.api.clearLocalSeed(this.seedValue),this));A(this,"apply",e=>this.modify(e));A(this,"noteLength",(e,...t)=>(t.length>0&&(e=Array.isArray(e)?e.concat(t):[e,...t]),Array.isArray(e)?this.values.dur=e.map(n=>this.app.clock.convertPulseToSecond(n*4*this.app.clock.ppqn)):this.values.dur=this.app.clock.convertPulseToSecond(e*4*this.app.clock.ppqn),this.current&&(e=Array.isArray(e)?e[this.index%e.length]:e,this.current.duration=e),this));A(this,"processSound",e=>{if(Array.isArray(e)&&typeof e[0]=="string"){const t=[],n=[];return e.forEach(a=>{const i=a.split(":");t.push(i[0]),i[1]&&n.push(parseInt(i[1]))}),{s:t,n:n.length>0?n:void 0,dur:this.app.clock.convertPulseToSecond(this.app.clock.ppqn)}}else{if(typeof e=="object")return{dur:this.app.clock.convertPulseToSecond(this.app.clock.ppqn),...e};if(e.includes(":")){const t=e.split(":"),n=t[0],a=parseInt(t[1]);return{s:n,n:a,dur:this.app.clock.convertPulseToSecond(this.app.clock.ppqn)}}else return{s:e,dur:.5}}});this.app=e,this.app.api.currentSeed&&(this.randomGen=this.app.api.randomGen)}}class jA extends sd{constructor(t){super(t);A(this,"pitch",(t,...n)=>(n.length>0&&(t=Array.isArray(t)?t.concat(n):[t,...n]),this.values.pitch=t,this.values.key&&this.values.parsedScale&&this.update(),this));A(this,"pc",this.pitch);A(this,"octave",(t,...n)=>(n.length>0&&(t=Array.isArray(t)?t.concat(n):[t,...n]),this.values.octave=t,this.values.key&&(this.values.pitch||this.values.pitch===0)&&this.values.parsedScale&&this.update(),this));A(this,"key",(t,...n)=>(n.length>0&&(t=Array.isArray(t)?t.concat(n):[t,...n]),this.values.key=t,(this.values.pitch||this.values.pitch===0)&&this.values.parsedScale&&this.update(),this));A(this,"scale",(t,...n)=>(n.length>0&&(t=Array.isArray(t)?t.concat(n):[t,...n]),typeof t=="string"||typeof t=="number"?this.values.parsedScale=Ta(t):Array.isArray(t)&&(this.values.parsedScale=t.map(a=>Ta(a))),this.values.key&&(this.values.pitch||this.values.pitch===0)&&this.update(),this));A(this,"note",(t,...n)=>{if(typeof t=="string"){const a=ra(t);return this.updateValue("note",[a,...n].flat(1/0))}else return typeof t==null||t==null?new lo:this.updateValue("note",[t,...n].flat(1/0))});A(this,"chord",(t,...n)=>{if(typeof t=="string"){const a=IV(t);return this.updateValue("note",a)}else{const a=[t,...n].flat(1/0);return this.updateValue("note",a)}});A(this,"invert",(t=0)=>{if(this.values.note){let n=[...this.values.note];n=t<0?[...n].reverse():n;for(let a=0;a{if(n.length>0&&(t=Array.isArray(t)?t.concat(n):[t,...n]),this.values.freq=t,Array.isArray(t)){this.values.note=[],this.values.bend=[];for(const a of t){const i=FE(a);i%1!==0?(this.values.note.push(Math.floor(i)),this.values.bend.push(d_(i)[1])):this.values.note.push(i)}this.values.bend.length===0&&delete this.values.bend}else{const a=FE(t);a%1!==0?(this.values.note=Math.floor(a),this.values.bend=d_(a)[1]):this.values.note=a}return this});A(this,"update",()=>{})}updateValue(t,n){return n==null?this:(this.values[t]=n,this)}}function pl(r,e){const t={...r};e.forEach(i=>{Array.isArray(t[i])&&!Array.isArray(t[i][0])&&(t[i]=[t[i]])});const n=Object.entries(t).reduce((i,[s,o])=>{const l=Array.isArray(o)?o.length:1;return i.maxLength=Math.max(i.maxLength,l),i.keys.push(s),i},{keys:[],maxLength:0}),a=[];for(let i=0;i{const a={...n,...e};return Object.keys(a).forEach(i=>{t[i]||(t[i]=[]),t[i].push(a[i])}),t},{})}function JA(r,e){return Object.fromEntries(Object.entries(r).filter(([t])=>e.includes(t)))}const DH=(function*(){yield void 0}).constructor,xH=(function*(){yield void 0}).prototype.constructor,Uu=class Uu extends jA{constructor(t,n){super(n);A(this,"nudge");A(this,"sound");A(this,"modify",t=>{const n=t(this);return n instanceof Object?n:(t(this.values),this.update(),this)});A(this,"update",()=>{const t=JA(this.values,["key","pitch","parsedScale","octave"]),n=pl(t,["parsedScale"]);n.forEach(i=>{const[s,o]=M1(i.key||"C4",i.pitch||0,i.parsedScale||i.scale||"MAJOR",i.octave||0);i.note=s,i.freq=Yl(s)});const a=Pu(n);this.values.note=a.note,this.values.freq=a.freq});A(this,"out",t=>{t&&(this.values.orbit=t);const n=pl(this.values,["parsedScale"]);for(const a of n){const i=a;i.freq&&delete i.note,Ek(i,this.app.clock.deadline,i.dur)}});A(this,"osc",t=>{t&&(this.values.orbit=t);const n=pl(this.values,["parsedScale"]);for(const a of n){const i=a;let s="address"in a?a.address:"/topos";s=s!=null&&s.startsWith("/")?s:"/"+s;let o="port"in a?a.port:57120;i.freq&&delete i.note,aC({address:s,port:o,args:a,timetag:Math.round(Date.now()+this.app.clock.deadline)})}});this.app=n,this.nudge=n.dough_nudge/100;for(const[a,i]of Object.entries(Uu.methodMap))if(typeof i=="object"&&Symbol.iterator in Object(i))for(const s of i)this[s]=o=>this.updateValue(i[0],o);else this[a]=(...s)=>i(this,...s);this.values=this.processSound(t)}};A(Uu,"methodMap",{volume:["volume","vol"],zrand:["zrand","zr"],curve:["curve"],bank:["bank"],slide:["slide","sld"],deltaSlide:["deltaSlide","dslide"],pitchJump:["pitchJump","pj"],pitchJumpTime:["pitchJumpTime","pjt"],lfo:["lfo"],znoise:["znoise"],address:["address","add"],port:["port"],noise:["noise"],zmod:["zmod"],zcrush:["zcrush"],zdelay:["zdelay"],sustainVolume:["sustainVolume"],tremolo:["tremolo"],dur:["dur"],zzfx:["zzfx"],fmi:["fmi"],fmh:["fmh"],fmenv:["fmenv"],fmattack:["fmattack","fmatk"],fmdecay:["fmdecay","fmdec"],fmsustain:["fmsustain","fmsus"],fmrelease:["fmrelease","fmrel"],fmvelocity:["fmvelocity","fmvel"],fmwave:["fmwave","fmw"],phaser:["phaser","phas"],phaserDepth:["phaserDepth","phasdepth"],phaserSweep:["phaserSweep","phassweep"],phaserCenter:["phaserCenter","phascenter"],fmadsr:function(t,n,a,i,s){return t.updateValue("fmattack",n),t.updateValue("fmdecay",a),t.updateValue("fmsustain",i),t.updateValue("fmrelease",s),t},fmad:function(t,n,a){return t.updateValue("fmattack",n),t.updateValue("fmdecay",a),t},ftype:["ftype"],fanchor:["fanchor"],attack:["attack","atk"],decay:["decay","dec"],sustain:["sustain","sus"],release:["release","rel"],adsr:function(t,n,a,i,s){return t.updateValue("attack",n),t.updateValue("decay",a),t.updateValue("sustain",i),t.updateValue("release",s),t},ad:function(t,n,a){return t.updateValue("attack",n),t.updateValue("decay",a),t.updateValue("sustain",0),t.updateValue("release",0),t},scope:function(t){return t.updateValue("analyze",!0),t},debug:function(t,n){return t.updateValue("debug",!0),n&&t.updateValue("debugFunction",n),t},lpenv:["lpenv","lpe"],lpattack:["lpattack","lpa"],lpdecay:["lpdecay","lpd"],lpsustain:["lpsustain","lps"],lprelease:["lprelease","lpr"],cutoff:function(t,n,a){return t.updateValue("cutoff",n),a&&t.updateValue("resonance",a),t},lpf:function(t,n,a){return t.updateValue("cutoff",n),a&&t.updateValue("resonance",a),t},resonance:function(t,n){return n>=0&&n<=1&&t.updateValue("resonance",50*n),t},lpadsr:function(t,n,a,i,s,o){return t.updateValue("lpenv",n),t.updateValue("lpattack",a),t.updateValue("lpdecay",i),t.updateValue("lpsustain",s),t.updateValue("lprelease",o),t},lpad:function(t,n,a,i){return t.updateValue("lpenv",n),t.updateValue("lpattack",a),t.updateValue("lpdecay",i),t.updateValue("lpsustain",0),t.updateValue("lprelease",0),t},hpenv:["hpenv","hpe"],hpattack:["hpattack","hpa"],hpdecay:["hpdecay","hpd"],hpsustain:["hpsustain","hpsus"],hprelease:["hprelease","hpr"],hcutoff:function(t,n,a){return t.updateValue("hcutoff",n),a&&t.updateValue("hresonance",a),t},hpf:function(t,n,a){return t.updateValue("hcutoff",n),a&&t.updateValue("hresonance",a),t},hpq:function(t,n){return t.updateValue("hresonance",n),t},hpadsr:function(t,n,a,i,s,o){return t.updateValue("hpenv",n),t.updateValue("hpattack",a),t.updateValue("hpdecay",i),t.updateValue("hpsustain",s),t.updateValue("hprelease",o),t},hpad:function(t,n,a,i){return t.updateValue("hpenv",n),t.updateValue("hpattack",a),t.updateValue("hpdecay",i),t.updateValue("hpsustain",0),t.updateValue("hprelease",0),t},bpenv:["bpenv","bpe"],bpattack:["bpattack","bpa"],bpdecay:["bpdecay","bpd"],bpsustain:["bpsustain","bps"],bprelease:["bprelease","bpr"],bandf:function(t,n,a){return t.updateValue("bandf",n),a&&t.updateValue("bandq",a),t},bpf:function(t,n,a){return t.updateValue("bandf",n),a&&t.updateValue("bandq",a),t},bandq:["bandq","bpq"],bpadsr:function(t,n,a,i,s,o){return t.updateValue("bpenv",n),t.updateValue("bpattack",a),t.updateValue("bpdecay",i),t.updateValue("bpsustain",s),t.updateValue("bprelease",o),t},bpad:function(t,n,a,i){return t.updateValue("bpenv",n),t.updateValue("bpattack",a),t.updateValue("bpdecay",i),t.updateValue("bpsustain",0),t.updateValue("bprelease",0),t},vib:["vib"],vibmod:["vibmod"],fm:function(t,n){if(typeof n=="number")t.values.fmi=n;else{let a=n.split(":");t.values.fmi=parseFloat(a[0]),a.length>1&&(t.values.fmh=parseFloat(a[1]))}return t},loop:["loop"],loopBegin:["loopBegin","loopb"],loopEnd:["loopEnd","loope"],begin:["begin"],end:["end"],gain:["gain"],dbgain:function(t,n){return t.updateValue("gain",Math.min(Math.pow(10,n/20),10)),t},db:function(t,n){return t.updateValue("gain",Math.min(Math.pow(10,n/20),10)),t},velocity:["velocity","vel"],pan:["pan"],cut:["cut"],clip:["clip"],n:["n"],speed:["speed","spd"],coarse:["coarse"],crush:["crush"],shape:["shape"],vowel:["vowel","vow"],delay:["delay","del"],delayfeedback:["delayfeedback","delayfb"],delaytime:["delaytime","delayt"],orbit:["orbit","o"],room:["room","rm"],roomfade:["roomfade","rfade"],roomlp:["roomlp","rlp"],roomdim:["roomdim","rdim"],sound:["s","sound"],size:function(t,n){return t.updateValue("roomsize",n),t},sz:function(t,n){return t.updateValue("roomsize",n),t},comp:["compressor","cmp"],ratio:function(t,n){return t.updateValue("compressorRatio",n),t},knee:function(t,n){return t.updateValue("compressorKnee",n),t},compAttack:function(t,n){return t.updateValue("compressorAttack",n),t},compRelease:function(t,n){return t.updateValue("compressorRelease",n),t},stretch:function(t,n){return t.updateValue("unit","c"),t.updateValue("speed",1/n),t.updateValue("cut",n),t}});let Fl=Uu;class h_ extends jA{constructor(t,n){super(n);A(this,"midiConnection");A(this,"sustain",t=>(this.values.sustain=t,this));A(this,"velocity",t=>(this.values.velocity=t,this));A(this,"channel",t=>(this.values.channel=t,this));A(this,"port",t=>(typeof t=="string"?this.values.port=this.midiConnection.getMidiOutputIndex(t):Array.isArray(t)&&(this.values.port=t.map(n=>typeof n=="string"?this.midiConnection.getMidiOutputIndex(n):n)),this));A(this,"add",t=>(this.values.note+=t,this));A(this,"modify",t=>{const n=t(this);return n instanceof Object?n:(t(this.values),this.update(),this)});A(this,"bend",t=>(this.values.bend=t,this));A(this,"random",(t=0,n=127)=>(t=Math.min(Math.max(t,0),127),n=Math.min(Math.max(n,0),127),this.values.note=Math.floor(this.randomGen()*(n-t+1))+t,this));A(this,"update",()=>{const t=JA(this.values,["key","pitch","parsedScale","octave"]),n=pl(t,["parsedScale"]);n.forEach(i=>{const[s,o]=M1(i.key||"C4",i.pitch||0,i.parsedScale||i.scale||"MAJOR",i.octave||0);i.note=s,o&&(i.bend=o)});const a=Pu(n);this.values.note=a.note,a.bend&&(this.values.bend=a.bend)});A(this,"out",()=>{function t(a,i){const s=i.channel?i.channel:0,o=i.velocity?i.velocity:100,l=i.note?i.note:60,c=i.sustain?i.sustain*a.app.clock.pulse_duration*a.app.api.ppqn():a.app.clock.pulse_duration*a.app.api.ppqn(),u=i.bend?i.bend:void 0,m=i.port?a.midiConnection.getMidiOutputIndex(i.port):a.midiConnection.getCurrentMidiPortIndex()||0;a.midiConnection.sendMidiNote(l,s,o,c,m,u)}pl(this.values,["parsedScale"]).forEach(a=>{t(this,a)})});this.app=n,this.values=t,this.midiConnection=n.api.MidiConnection}}const zo=typeof performance=="object"&&performance&&typeof performance.now=="function"?performance:Date,ew=new Set,p_=typeof process=="object"&&process?process:{},tw=(r,e,t,n)=>{typeof p_.emitWarning=="function"?p_.emitWarning(r,e,t,n):console.error(`[${t}] ${e}: ${r}`)};let Bu=globalThis.AbortController,UE=globalThis.AbortSignal;var QE;if(typeof Bu>"u"){UE=class{constructor(){A(this,"onabort");A(this,"_onabort",[]);A(this,"reason");A(this,"aborted",!1)}addEventListener(n,a){this._onabort.push(a)}},Bu=class{constructor(){A(this,"signal",new UE);e()}abort(n){var a,i;if(!this.signal.aborted){this.signal.reason=n,this.signal.aborted=!0;for(const s of this.signal._onabort)s(n);(i=(a=this.signal).onabort)==null||i.call(a,n)}}};let r=((QE=p_.env)==null?void 0:QE.LRU_CACHE_IGNORE_AC_WARNING)!=="1";const e=()=>{r&&(r=!1,tw("AbortController is not defined. If using lru-cache in node 14, load an AbortController polyfill from the `node-abort-controller` package. A minimal polyfill is provided for use by LRUCache.fetch(), but it should not be relied upon in other contexts (eg, passing it to other APIs that use AbortController/AbortSignal might have undesirable effects). You may disable this with LRU_CACHE_IGNORE_AC_WARNING=1 in the env.","NO_ABORT_CONTROLLER","ENOTSUP",e))}}const kH=r=>!ew.has(r),ii=r=>r&&r===Math.floor(r)&&r>0&&isFinite(r),nw=r=>ii(r)?r<=Math.pow(2,8)?Uint8Array:r<=Math.pow(2,16)?Uint16Array:r<=Math.pow(2,32)?Uint32Array:r<=Number.MAX_SAFE_INTEGER?Wc:null:null;class Wc extends Array{constructor(e){super(e),this.fill(0)}}var qs;const Qi=class Qi{constructor(e,t){A(this,"heap");A(this,"length");if(!K(Qi,qs))throw new TypeError("instantiate Stack using Stack.create(n)");this.heap=new t(e),this.length=0}static create(e){const t=nw(e);if(!t)return[];et(Qi,qs,!0);const n=new Qi(e,t);return et(Qi,qs,!1),n}push(e){this.heap[this.length++]=e}pop(){return this.heap[--this.length]}};qs=new WeakMap,ct(Qi,qs,!1);let f_=Qi;var qr,pr,Qr,Vr,Qs,fn,Hr,gn,qt,ot,Hn,fr,Yn,Tn,zr,yn,Pa,Ba,Wr,Xr,mi,zn,Ul,__,Ki,Ya,$l,gr,$u,rw,Zi,Vs,Gl,ha,si,pa,oi,ql,b_,Hs,Xc,zs,Kc,Yt,Wt,Ql,S_,ji,nl;const q1=class q1{constructor(e){ct(this,Ul);ct(this,$u);ct(this,ha);ct(this,pa);ct(this,ql);ct(this,Hs);ct(this,zs);ct(this,Yt);ct(this,Ql);ct(this,ji);ct(this,qr,void 0);ct(this,pr,void 0);ct(this,Qr,void 0);ct(this,Vr,void 0);ct(this,Qs,void 0);A(this,"ttl");A(this,"ttlResolution");A(this,"ttlAutopurge");A(this,"updateAgeOnGet");A(this,"updateAgeOnHas");A(this,"allowStale");A(this,"noDisposeOnSet");A(this,"noUpdateTTL");A(this,"maxEntrySize");A(this,"sizeCalculation");A(this,"noDeleteOnFetchRejection");A(this,"noDeleteOnStaleGet");A(this,"allowStaleOnFetchAbort");A(this,"allowStaleOnFetchRejection");A(this,"ignoreFetchAbort");ct(this,fn,void 0);ct(this,Hr,void 0);ct(this,gn,void 0);ct(this,qt,void 0);ct(this,ot,void 0);ct(this,Hn,void 0);ct(this,fr,void 0);ct(this,Yn,void 0);ct(this,Tn,void 0);ct(this,zr,void 0);ct(this,yn,void 0);ct(this,Pa,void 0);ct(this,Ba,void 0);ct(this,Wr,void 0);ct(this,Xr,void 0);ct(this,mi,void 0);ct(this,zn,void 0);ct(this,Ki,()=>{});ct(this,Ya,()=>{});ct(this,$l,()=>{});ct(this,gr,()=>!1);ct(this,Zi,e=>{});ct(this,Vs,(e,t,n)=>{});ct(this,Gl,(e,t,n,a)=>{if(n||a)throw new TypeError("cannot set size without setting maxSize or maxEntrySize on cache");return 0});const{max:t=0,ttl:n,ttlResolution:a=1,ttlAutopurge:i,updateAgeOnGet:s,updateAgeOnHas:o,allowStale:l,dispose:c,disposeAfter:u,noDisposeOnSet:m,noUpdateTTL:p,maxSize:_=0,maxEntrySize:O=0,sizeCalculation:w,fetchMethod:I,noDeleteOnFetchRejection:k,noDeleteOnStaleGet:G,allowStaleOnFetchRejection:X,allowStaleOnFetchAbort:h,ignoreFetchAbort:S}=e;if(t!==0&&!ii(t))throw new TypeError("max option must be a nonnegative integer");const b=t?nw(t):Array;if(!b)throw new Error("invalid max value: "+t);if(et(this,qr,t),et(this,pr,_),this.maxEntrySize=O||K(this,pr),this.sizeCalculation=w,this.sizeCalculation){if(!K(this,pr)&&!this.maxEntrySize)throw new TypeError("cannot set sizeCalculation without setting maxSize or maxEntrySize");if(typeof this.sizeCalculation!="function")throw new TypeError("sizeCalculation set to non-function")}if(I!==void 0&&typeof I!="function")throw new TypeError("fetchMethod must be a function if specified");if(et(this,Qs,I),et(this,mi,!!I),et(this,gn,new Map),et(this,qt,new Array(t).fill(void 0)),et(this,ot,new Array(t).fill(void 0)),et(this,Hn,new b(t)),et(this,fr,new b(t)),et(this,Yn,0),et(this,Tn,0),et(this,zr,f_.create(t)),et(this,fn,0),et(this,Hr,0),typeof c=="function"&&et(this,Qr,c),typeof u=="function"?(et(this,Vr,u),et(this,yn,[])):(et(this,Vr,void 0),et(this,yn,void 0)),et(this,Xr,!!K(this,Qr)),et(this,zn,!!K(this,Vr)),this.noDisposeOnSet=!!m,this.noUpdateTTL=!!p,this.noDeleteOnFetchRejection=!!k,this.allowStaleOnFetchRejection=!!X,this.allowStaleOnFetchAbort=!!h,this.ignoreFetchAbort=!!S,this.maxEntrySize!==0){if(K(this,pr)!==0&&!ii(K(this,pr)))throw new TypeError("maxSize must be a positive integer if specified");if(!ii(this.maxEntrySize))throw new TypeError("maxEntrySize must be a positive integer if specified");ze(this,$u,rw).call(this)}if(this.allowStale=!!l,this.noDeleteOnStaleGet=!!G,this.updateAgeOnGet=!!s,this.updateAgeOnHas=!!o,this.ttlResolution=ii(a)||a===0?a:1,this.ttlAutopurge=!!i,this.ttl=n||0,this.ttl){if(!ii(this.ttl))throw new TypeError("ttl must be a positive integer if specified");ze(this,Ul,__).call(this)}if(K(this,qr)===0&&this.ttl===0&&K(this,pr)===0)throw new TypeError("At least one of max, maxSize, or ttl is required");if(!this.ttlAutopurge&&!K(this,qr)&&!K(this,pr)){const N="LRU_CACHE_UNBOUNDED";kH(N)&&(ew.add(N),tw("TTL caching without ttlAutopurge, max, or maxSize can result in unbounded memory consumption.","UnboundedCacheWarning",N,q1))}}static unsafeExposeInternals(e){return{starts:K(e,Ba),ttls:K(e,Wr),sizes:K(e,Pa),keyMap:K(e,gn),keyList:K(e,qt),valList:K(e,ot),next:K(e,Hn),prev:K(e,fr),get head(){return K(e,Yn)},get tail(){return K(e,Tn)},free:K(e,zr),isBackgroundFetch:t=>{var n;return ze(n=e,Yt,Wt).call(n,t)},backgroundFetch:(t,n,a,i)=>{var s;return ze(s=e,zs,Kc).call(s,t,n,a,i)},moveToTail:t=>{var n;return ze(n=e,ji,nl).call(n,t)},indexes:t=>{var n;return ze(n=e,ha,si).call(n,t)},rindexes:t=>{var n;return ze(n=e,pa,oi).call(n,t)},isStale:t=>{var n;return K(n=e,gr).call(n,t)}}}get max(){return K(this,qr)}get maxSize(){return K(this,pr)}get calculatedSize(){return K(this,Hr)}get size(){return K(this,fn)}get fetchMethod(){return K(this,Qs)}get dispose(){return K(this,Qr)}get disposeAfter(){return K(this,Vr)}getRemainingTTL(e){return K(this,gn).has(e)?1/0:0}*entries(){for(const e of ze(this,ha,si).call(this))K(this,ot)[e]!==void 0&&K(this,qt)[e]!==void 0&&!ze(this,Yt,Wt).call(this,K(this,ot)[e])&&(yield[K(this,qt)[e],K(this,ot)[e]])}*rentries(){for(const e of ze(this,pa,oi).call(this))K(this,ot)[e]!==void 0&&K(this,qt)[e]!==void 0&&!ze(this,Yt,Wt).call(this,K(this,ot)[e])&&(yield[K(this,qt)[e],K(this,ot)[e]])}*keys(){for(const e of ze(this,ha,si).call(this)){const t=K(this,qt)[e];t!==void 0&&!ze(this,Yt,Wt).call(this,K(this,ot)[e])&&(yield t)}}*rkeys(){for(const e of ze(this,pa,oi).call(this)){const t=K(this,qt)[e];t!==void 0&&!ze(this,Yt,Wt).call(this,K(this,ot)[e])&&(yield t)}}*values(){for(const e of ze(this,ha,si).call(this))K(this,ot)[e]!==void 0&&!ze(this,Yt,Wt).call(this,K(this,ot)[e])&&(yield K(this,ot)[e])}*rvalues(){for(const e of ze(this,pa,oi).call(this))K(this,ot)[e]!==void 0&&!ze(this,Yt,Wt).call(this,K(this,ot)[e])&&(yield K(this,ot)[e])}[Symbol.iterator](){return this.entries()}find(e,t={}){for(const n of ze(this,ha,si).call(this)){const a=K(this,ot)[n],i=ze(this,Yt,Wt).call(this,a)?a.__staleWhileFetching:a;if(i!==void 0&&e(i,K(this,qt)[n],this))return this.get(K(this,qt)[n],t)}}forEach(e,t=this){for(const n of ze(this,ha,si).call(this)){const a=K(this,ot)[n],i=ze(this,Yt,Wt).call(this,a)?a.__staleWhileFetching:a;i!==void 0&&e.call(t,i,K(this,qt)[n],this)}}rforEach(e,t=this){for(const n of ze(this,pa,oi).call(this)){const a=K(this,ot)[n],i=ze(this,Yt,Wt).call(this,a)?a.__staleWhileFetching:a;i!==void 0&&e.call(t,i,K(this,qt)[n],this)}}purgeStale(){let e=!1;for(const t of ze(this,pa,oi).call(this,{allowStale:!0}))K(this,gr).call(this,t)&&(this.delete(K(this,qt)[t]),e=!0);return e}dump(){const e=[];for(const t of ze(this,ha,si).call(this,{allowStale:!0})){const n=K(this,qt)[t],a=K(this,ot)[t],i=ze(this,Yt,Wt).call(this,a)?a.__staleWhileFetching:a;if(i===void 0||n===void 0)continue;const s={value:i};if(K(this,Wr)&&K(this,Ba)){s.ttl=K(this,Wr)[t];const o=zo.now()-K(this,Ba)[t];s.start=Math.floor(Date.now()-o)}K(this,Pa)&&(s.size=K(this,Pa)[t]),e.unshift([n,s])}return e}load(e){this.clear();for(const[t,n]of e){if(n.start){const a=Date.now()-n.start;n.start=zo.now()-a}this.set(t,n.value,n)}}set(e,t,n={}){var p,_,O,w,I;if(t===void 0)return this.delete(e),this;const{ttl:a=this.ttl,start:i,noDisposeOnSet:s=this.noDisposeOnSet,sizeCalculation:o=this.sizeCalculation,status:l}=n;let{noUpdateTTL:c=this.noUpdateTTL}=n;const u=K(this,Gl).call(this,e,t,n.size||0,o);if(this.maxEntrySize&&u>this.maxEntrySize)return l&&(l.set="miss",l.maxEntrySizeExceeded=!0),this.delete(e),this;let m=K(this,fn)===0?void 0:K(this,gn).get(e);if(m===void 0)m=K(this,fn)===0?K(this,Tn):K(this,zr).length!==0?K(this,zr).pop():K(this,fn)===K(this,qr)?ze(this,Hs,Xc).call(this,!1):K(this,fn),K(this,qt)[m]=e,K(this,ot)[m]=t,K(this,gn).set(e,m),K(this,Hn)[K(this,Tn)]=m,K(this,fr)[m]=K(this,Tn),et(this,Tn,m),ic(this,fn)._++,K(this,Vs).call(this,m,u,l),l&&(l.set="add"),c=!1;else{ze(this,ji,nl).call(this,m);const k=K(this,ot)[m];if(t!==k){if(K(this,mi)&&ze(this,Yt,Wt).call(this,k)){k.__abortController.abort(new Error("replaced"));const{__staleWhileFetching:G}=k;G!==void 0&&!s&&(K(this,Xr)&&((p=K(this,Qr))==null||p.call(this,G,e,"set")),K(this,zn)&&((_=K(this,yn))==null||_.push([G,e,"set"])))}else s||(K(this,Xr)&&((O=K(this,Qr))==null||O.call(this,k,e,"set")),K(this,zn)&&((w=K(this,yn))==null||w.push([k,e,"set"])));if(K(this,Zi).call(this,m),K(this,Vs).call(this,m,u,l),K(this,ot)[m]=t,l){l.set="replace";const G=k&&ze(this,Yt,Wt).call(this,k)?k.__staleWhileFetching:k;G!==void 0&&(l.oldValue=G)}}else l&&(l.set="update")}if(a!==0&&!K(this,Wr)&&ze(this,Ul,__).call(this),K(this,Wr)&&(c||K(this,$l).call(this,m,a,i),l&&K(this,Ya).call(this,l,m)),!s&&K(this,zn)&&K(this,yn)){const k=K(this,yn);let G;for(;G=k==null?void 0:k.shift();)(I=K(this,Vr))==null||I.call(this,...G)}return this}pop(){var e;try{for(;K(this,fn);){const t=K(this,ot)[K(this,Yn)];if(ze(this,Hs,Xc).call(this,!0),ze(this,Yt,Wt).call(this,t)){if(t.__staleWhileFetching)return t.__staleWhileFetching}else if(t!==void 0)return t}}finally{if(K(this,zn)&&K(this,yn)){const t=K(this,yn);let n;for(;n=t==null?void 0:t.shift();)(e=K(this,Vr))==null||e.call(this,...n)}}}has(e,t={}){const{updateAgeOnHas:n=this.updateAgeOnHas,status:a}=t,i=K(this,gn).get(e);if(i!==void 0){const s=K(this,ot)[i];if(ze(this,Yt,Wt).call(this,s)&&s.__staleWhileFetching===void 0)return!1;if(K(this,gr).call(this,i))a&&(a.has="stale",K(this,Ya).call(this,a,i));else return n&&K(this,Ki).call(this,i),a&&(a.has="hit",K(this,Ya).call(this,a,i)),!0}else a&&(a.has="miss");return!1}peek(e,t={}){const{allowStale:n=this.allowStale}=t,a=K(this,gn).get(e);if(a!==void 0&&(n||!K(this,gr).call(this,a))){const i=K(this,ot)[a];return ze(this,Yt,Wt).call(this,i)?i.__staleWhileFetching:i}}async fetch(e,t={}){const{allowStale:n=this.allowStale,updateAgeOnGet:a=this.updateAgeOnGet,noDeleteOnStaleGet:i=this.noDeleteOnStaleGet,ttl:s=this.ttl,noDisposeOnSet:o=this.noDisposeOnSet,size:l=0,sizeCalculation:c=this.sizeCalculation,noUpdateTTL:u=this.noUpdateTTL,noDeleteOnFetchRejection:m=this.noDeleteOnFetchRejection,allowStaleOnFetchRejection:p=this.allowStaleOnFetchRejection,ignoreFetchAbort:_=this.ignoreFetchAbort,allowStaleOnFetchAbort:O=this.allowStaleOnFetchAbort,context:w,forceRefresh:I=!1,status:k,signal:G}=t;if(!K(this,mi))return k&&(k.fetch="get"),this.get(e,{allowStale:n,updateAgeOnGet:a,noDeleteOnStaleGet:i,status:k});const X={allowStale:n,updateAgeOnGet:a,noDeleteOnStaleGet:i,ttl:s,noDisposeOnSet:o,size:l,sizeCalculation:c,noUpdateTTL:u,noDeleteOnFetchRejection:m,allowStaleOnFetchRejection:p,allowStaleOnFetchAbort:O,ignoreFetchAbort:_,status:k,signal:G};let h=K(this,gn).get(e);if(h===void 0){k&&(k.fetch="miss");const S=ze(this,zs,Kc).call(this,e,h,X,w);return S.__returned=S}else{const S=K(this,ot)[h];if(ze(this,Yt,Wt).call(this,S)){const Y=n&&S.__staleWhileFetching!==void 0;return k&&(k.fetch="inflight",Y&&(k.returnedStale=!0)),Y?S.__staleWhileFetching:S.__returned=S}const b=K(this,gr).call(this,h);if(!I&&!b)return k&&(k.fetch="hit"),ze(this,ji,nl).call(this,h),a&&K(this,Ki).call(this,h),k&&K(this,Ya).call(this,k,h),S;const N=ze(this,zs,Kc).call(this,e,h,X,w),F=N.__staleWhileFetching!==void 0&&n;return k&&(k.fetch=b?"stale":"refresh",F&&b&&(k.returnedStale=!0)),F?N.__staleWhileFetching:N.__returned=N}}get(e,t={}){const{allowStale:n=this.allowStale,updateAgeOnGet:a=this.updateAgeOnGet,noDeleteOnStaleGet:i=this.noDeleteOnStaleGet,status:s}=t,o=K(this,gn).get(e);if(o!==void 0){const l=K(this,ot)[o],c=ze(this,Yt,Wt).call(this,l);return s&&K(this,Ya).call(this,s,o),K(this,gr).call(this,o)?(s&&(s.get="stale"),c?(s&&n&&l.__staleWhileFetching!==void 0&&(s.returnedStale=!0),n?l.__staleWhileFetching:void 0):(i||this.delete(e),s&&n&&(s.returnedStale=!0),n?l:void 0)):(s&&(s.get="hit"),c?l.__staleWhileFetching:(ze(this,ji,nl).call(this,o),a&&K(this,Ki).call(this,o),l))}else s&&(s.get="miss")}delete(e){var n,a,i,s;let t=!1;if(K(this,fn)!==0){const o=K(this,gn).get(e);if(o!==void 0)if(t=!0,K(this,fn)===1)this.clear();else{K(this,Zi).call(this,o);const l=K(this,ot)[o];ze(this,Yt,Wt).call(this,l)?l.__abortController.abort(new Error("deleted")):(K(this,Xr)||K(this,zn))&&(K(this,Xr)&&((n=K(this,Qr))==null||n.call(this,l,e,"delete")),K(this,zn)&&((a=K(this,yn))==null||a.push([l,e,"delete"]))),K(this,gn).delete(e),K(this,qt)[o]=void 0,K(this,ot)[o]=void 0,o===K(this,Tn)?et(this,Tn,K(this,fr)[o]):o===K(this,Yn)?et(this,Yn,K(this,Hn)[o]):(K(this,Hn)[K(this,fr)[o]]=K(this,Hn)[o],K(this,fr)[K(this,Hn)[o]]=K(this,fr)[o]),ic(this,fn)._--,K(this,zr).push(o)}}if(K(this,zn)&&((i=K(this,yn))!=null&&i.length)){const o=K(this,yn);let l;for(;l=o==null?void 0:o.shift();)(s=K(this,Vr))==null||s.call(this,...l)}return t}clear(){var e,t,n;for(const a of ze(this,pa,oi).call(this,{allowStale:!0})){const i=K(this,ot)[a];if(ze(this,Yt,Wt).call(this,i))i.__abortController.abort(new Error("deleted"));else{const s=K(this,qt)[a];K(this,Xr)&&((e=K(this,Qr))==null||e.call(this,i,s,"delete")),K(this,zn)&&((t=K(this,yn))==null||t.push([i,s,"delete"]))}}if(K(this,gn).clear(),K(this,ot).fill(void 0),K(this,qt).fill(void 0),K(this,Wr)&&K(this,Ba)&&(K(this,Wr).fill(0),K(this,Ba).fill(0)),K(this,Pa)&&K(this,Pa).fill(0),et(this,Yn,0),et(this,Tn,0),K(this,zr).length=0,et(this,Hr,0),et(this,fn,0),K(this,zn)&&K(this,yn)){const a=K(this,yn);let i;for(;i=a==null?void 0:a.shift();)(n=K(this,Vr))==null||n.call(this,...i)}}};qr=new WeakMap,pr=new WeakMap,Qr=new WeakMap,Vr=new WeakMap,Qs=new WeakMap,fn=new WeakMap,Hr=new WeakMap,gn=new WeakMap,qt=new WeakMap,ot=new WeakMap,Hn=new WeakMap,fr=new WeakMap,Yn=new WeakMap,Tn=new WeakMap,zr=new WeakMap,yn=new WeakMap,Pa=new WeakMap,Ba=new WeakMap,Wr=new WeakMap,Xr=new WeakMap,mi=new WeakMap,zn=new WeakMap,Ul=new WeakSet,__=function(){const e=new Wc(K(this,qr)),t=new Wc(K(this,qr));et(this,Wr,e),et(this,Ba,t),et(this,$l,(i,s,o=zo.now())=>{if(t[i]=s!==0?o:0,e[i]=s,s!==0&&this.ttlAutopurge){const l=setTimeout(()=>{K(this,gr).call(this,i)&&this.delete(K(this,qt)[i])},s+1);l.unref&&l.unref()}}),et(this,Ki,i=>{t[i]=e[i]!==0?zo.now():0}),et(this,Ya,(i,s)=>{if(e[s]){const o=e[s],l=t[s];i.ttl=o,i.start=l,i.now=n||a();const c=i.now-l;i.remainingTTL=o-c}});let n=0;const a=()=>{const i=zo.now();if(this.ttlResolution>0){n=i;const s=setTimeout(()=>n=0,this.ttlResolution);s.unref&&s.unref()}return i};this.getRemainingTTL=i=>{const s=K(this,gn).get(i);if(s===void 0)return 0;const o=e[s],l=t[s];if(o===0||l===0)return 1/0;const c=(n||a())-l;return o-c},et(this,gr,i=>e[i]!==0&&t[i]!==0&&(n||a())-t[i]>e[i])},Ki=new WeakMap,Ya=new WeakMap,$l=new WeakMap,gr=new WeakMap,$u=new WeakSet,rw=function(){const e=new Wc(K(this,qr));et(this,Hr,0),et(this,Pa,e),et(this,Zi,t=>{et(this,Hr,K(this,Hr)-e[t]),e[t]=0}),et(this,Gl,(t,n,a,i)=>{if(ze(this,Yt,Wt).call(this,n))return 0;if(!ii(a))if(i){if(typeof i!="function")throw new TypeError("sizeCalculation must be a function");if(a=i(n,t),!ii(a))throw new TypeError("sizeCalculation return invalid (expect positive integer)")}else throw new TypeError("invalid size value (must be positive integer). When maxSize or maxEntrySize is used, sizeCalculation or size must be set.");return a}),et(this,Vs,(t,n,a)=>{if(e[t]=n,K(this,pr)){const i=K(this,pr)-e[t];for(;K(this,Hr)>i;)ze(this,Hs,Xc).call(this,!0)}et(this,Hr,K(this,Hr)+e[t]),a&&(a.entrySize=n,a.totalCalculatedSize=K(this,Hr))})},Zi=new WeakMap,Vs=new WeakMap,Gl=new WeakMap,ha=new WeakSet,si=function*({allowStale:e=this.allowStale}={}){if(K(this,fn))for(let t=K(this,Tn);!(!ze(this,ql,b_).call(this,t)||((e||!K(this,gr).call(this,t))&&(yield t),t===K(this,Yn)));)t=K(this,fr)[t]},pa=new WeakSet,oi=function*({allowStale:e=this.allowStale}={}){if(K(this,fn))for(let t=K(this,Yn);!(!ze(this,ql,b_).call(this,t)||((e||!K(this,gr).call(this,t))&&(yield t),t===K(this,Tn)));)t=K(this,Hn)[t]},ql=new WeakSet,b_=function(e){return e!==void 0&&K(this,gn).get(K(this,qt)[e])===e},Hs=new WeakSet,Xc=function(e){var i,s;const t=K(this,Yn),n=K(this,qt)[t],a=K(this,ot)[t];return K(this,mi)&&ze(this,Yt,Wt).call(this,a)?a.__abortController.abort(new Error("evicted")):(K(this,Xr)||K(this,zn))&&(K(this,Xr)&&((i=K(this,Qr))==null||i.call(this,a,n,"evict")),K(this,zn)&&((s=K(this,yn))==null||s.push([a,n,"evict"]))),K(this,Zi).call(this,t),e&&(K(this,qt)[t]=void 0,K(this,ot)[t]=void 0,K(this,zr).push(t)),K(this,fn)===1?(et(this,Yn,et(this,Tn,0)),K(this,zr).length=0):et(this,Yn,K(this,Hn)[t]),K(this,gn).delete(n),ic(this,fn)._--,t},zs=new WeakSet,Kc=function(e,t,n,a){const i=t===void 0?void 0:K(this,ot)[t];if(ze(this,Yt,Wt).call(this,i))return i;const s=new Bu,{signal:o}=n;o==null||o.addEventListener("abort",()=>s.abort(o.reason),{signal:s.signal});const l={signal:s.signal,options:n,context:a},c=(w,I=!1)=>{const{aborted:k}=s.signal,G=n.ignoreFetchAbort&&w!==void 0;if(n.status&&(k&&!I?(n.status.fetchAborted=!0,n.status.fetchError=s.signal.reason,G&&(n.status.fetchAbortIgnored=!0)):n.status.fetchResolved=!0),k&&!G&&!I)return m(s.signal.reason);const X=_;return K(this,ot)[t]===_&&(w===void 0?X.__staleWhileFetching?K(this,ot)[t]=X.__staleWhileFetching:this.delete(e):(n.status&&(n.status.fetchUpdated=!0),this.set(e,w,l.options))),w},u=w=>(n.status&&(n.status.fetchRejected=!0,n.status.fetchError=w),m(w)),m=w=>{const{aborted:I}=s.signal,k=I&&n.allowStaleOnFetchAbort,G=k||n.allowStaleOnFetchRejection,X=G||n.noDeleteOnFetchRejection,h=_;if(K(this,ot)[t]===_&&(!X||h.__staleWhileFetching===void 0?this.delete(e):k||(K(this,ot)[t]=h.__staleWhileFetching)),G)return n.status&&h.__staleWhileFetching!==void 0&&(n.status.returnedStale=!0),h.__staleWhileFetching;if(h.__returned===h)throw w},p=(w,I)=>{var G;const k=(G=K(this,Qs))==null?void 0:G.call(this,e,i,l);k&&k instanceof Promise&&k.then(X=>w(X===void 0?void 0:X),I),s.signal.addEventListener("abort",()=>{(!n.ignoreFetchAbort||n.allowStaleOnFetchAbort)&&(w(void 0),n.allowStaleOnFetchAbort&&(w=X=>c(X,!0)))})};n.status&&(n.status.fetchDispatched=!0);const _=new Promise(p).then(c,u),O=Object.assign(_,{__abortController:s,__staleWhileFetching:i,__returned:void 0});return t===void 0?(this.set(e,O,{...l.options,status:void 0}),t=K(this,gn).get(e)):K(this,ot)[t]=O,O},Yt=new WeakSet,Wt=function(e){if(!K(this,mi))return!1;const t=e;return!!t&&t instanceof Promise&&t.hasOwnProperty("__staleWhileFetching")&&t.__abortController instanceof Bu},Ql=new WeakSet,S_=function(e,t){K(this,fr)[t]=e,K(this,Hn)[e]=t},ji=new WeakSet,nl=function(e){e!==K(this,Tn)&&(e===K(this,Yn)?et(this,Yn,K(this,Hn)[e]):ze(this,Ql,S_).call(this,K(this,fr)[e],K(this,Hn)[e]),ze(this,Ql,S_).call(this,K(this,Tn),e),et(this,Tn,e))};let g_=q1;const gl=class gl extends sd{constructor(t,n){super(n);A(this,"_fallbackMethod",()=>gl.createRestProxy(this.values.noteLength,this.app));A(this,"out",()=>{});this.values.noteLength=t}};A(gl,"createRestProxy",(t,n)=>{const a=new gl(t,n);return new Proxy(a,{get(i,s,o){return typeof i[s]>"u"?i._fallbackMethod:i[s]},set(i,s,o,l){return!1}})});let Yu=gl;class MH extends sd{constructor(t,n,a,i=""){super(a);A(this,"input");A(this,"ziffers");A(this,"initCallTime",0);A(this,"startCallTime",0);A(this,"lastCallTime",0);A(this,"waitTime",0);A(this,"played",!1);A(this,"current");A(this,"retro",!1);A(this,"index",-1);A(this,"zid","");A(this,"options",{});A(this,"skipIndex",0);A(this,"next",()=>(this.current=this.ziffers.next(),this.played=!0,this.current));A(this,"pulseToSecond",t=>this.app.clock.convertPulseToSecond(t));A(this,"firstRun",()=>this.notStarted());A(this,"atTheBeginning",()=>this.skipIndex===0&&this.ziffers.index<=0);A(this,"origin",()=>this.app.clock.pulses_since_origin+1);A(this,"pulse",()=>this.app.clock.time_position.pulse);A(this,"beat",()=>this.app.clock.time_position.beat);A(this,"nextBeat",()=>this.app.clock.next_beat_in_ticks);A(this,"nextBeatInTicks",()=>this.app.clock.next_beat_in_ticks);A(this,"areWeThereYet",()=>{this.app.clock.pulses_since_origin=this.nextBeatInTicks())&&this.origin()>=this.waitTime,n=this.current&&this.pulseToSecond(this.origin())>=this.pulseToSecond(this.lastCallTime)+this.pulseToSecond(this.current.duration*4*this.app.clock.ppqn)&&this.origin()>=this.waitTime,a=t||n;return this.skipIndex=a?0:this.skipIndex+1,this.index=a?this.index+1:this.index,a&&this.notStarted()&&(this.initCallTime=this.app.clock.pulses_since_origin),this.atTheBeginning()&&(this.startCallTime=this.app.clock.pulses_since_origin),a});A(this,"lead",()=>this.voiceleading());A(this,"invert",t=>(this.atTheBeginning()&&this.ziffers.invert(t),this));A(this,"out",()=>{});if(this.app=a,this.options=n,typeof t=="string")this.input=t,this.ziffers=new ns(t,n);else if(typeof t=="number")this.input=t,this.ziffers=ns.fromNumber(t,n);else if(t.constructor===DH||t.constructor===xH)this.ziffers=ns.fromGenerator(t,n),this.input=this.ziffers.input;else throw new Error("Invalid input");this.zid=i}reset(){this.initCallTime=0,this.startCallTime=0,this.lastCallTime=0,this.waitTime=0,this.index=0,this.skipIndex=0,this.played=!1,this.skipIndex=0,this.ziffers.reset()}get ticks(){return this.ziffers.duration*4*this.app.clock.ppqn}nextEndTime(){return this.startCallTime+this.ticks}updateLastCallTime(){(this.notStarted()||this.played)&&(this.lastCallTime=this.app.clock.pulses_since_origin,this.played=!1)}notStarted(){return this.ziffers.notStarted()}sound(t){if(this.areWeThereYet()){const n=this.next(),a=this.app.clock.convertPulseToSecond(n.duration*4*this.app.clock.ppqn);if(n instanceof an){let i=n.getExisting("freq","note","pitch","key","scale","octave","parsedScale");return n.sound&&(t=n.sound),t?i={...i,...this.processSound(t)}:i.s="sine",n.soundIndex&&(i.n=n.soundIndex),i.dur=a,new Fl(i,this.app)}else if(n instanceof ln){const i=n.pitches.map(l=>l.getExisting("freq","note","pitch","key","scale","octave","parsedScale"));let s={dur:a};t?s={...s,...this.processSound(t)}:s.s="sine";let o=Pu(i,s);return new Fl(o,this.app)}else if(n instanceof u_)return Yu.createRestProxy(n.duration,this.app)}else return lo.createSkipProxy()}midi(t=void 0){if(this.areWeThereYet()){const n=this.next(),a=n.getExisting("note","pitch","bend","key","scale","octave","parsedScale");if(n instanceof an){n.soundIndex&&(a.channel=n.soundIndex);const i=new h_(a,this.app);return t?i.note(t):i}else{if(n instanceof u_)return Yu.createRestProxy(n.duration,this.app);if(n instanceof ln){const i=n.midiChord(),s=Pu(i);return new h_(s,this.app)}}}else return lo.createSkipProxy()}scale(t){return this.atTheBeginning()&&this.ziffers.scale(t),this}key(t){return this.atTheBeginning()&&this.ziffers.key(t),this}octave(t){return this.atTheBeginning()&&this.ziffers.octave(t),this}tonnetz(t,n=[3,4,5]){return this.atTheBeginning()&&this.ziffers.tonnetz(t,n),this}triadTonnetz(t,n=[3,4,5]){return this.atTheBeginning()&&this.ziffers.triadTonnetz(t,n),this}tetraTonnetz(t,n=[3,4,5]){return this.atTheBeginning()&&this.ziffers.tetraTonnetz(t,n),this}octaCycle(t=[3,4,5]){return this.atTheBeginning()&&this.ziffers.octaCycle(t),this}hexaCycle(t=[3,4,5]){return this.atTheBeginning()&&this.ziffers.hexaCycle(t),this}enneaCycle(t=[3,4,5]){return this.atTheBeginning()&&this.ziffers.enneaCycle(t),this}tonnetzChord(t){return this.atTheBeginning()&&this.ziffers.tonnetzChords(t),this}voiceleading(){return this.atTheBeginning()&&this.ziffers.lead(),this}arpeggio(t,...n){return typeof t=="number"&&(t=[t,...n]),this.atTheBeginning()&&this.ziffers.arpeggio(t),this}retrograde(){return this.atTheBeginning()&&this.ziffers.retrograde(),this}wait(t){if(this.atTheBeginning()){if(typeof t=="function"){const n=this.app.api.patternCache.get(t.name);return n&&(this.waitTime=n.nextEndTime()),this}this.waitTime=this.origin()+Math.ceil(t*4*this.app.clock.ppqn)}return this}sync(t){if(this.atTheBeginning()&&this.notStarted()){const n=this.app.clock.pulses_since_origin,a=typeof t=="function"?t.name:t;if(n>0){const i=this.app.api.patternCache.get(a);if(i){const s=i.ziffers.duration,o=i.startCallTime,l=s*4*this.app.clock.ppqn;this.waitTime=o+l}}}return this}}const LH=r=>r[0]==="{"&&r[r.length-1]==="}",Wo=(r,e)=>{if(LH(r)){const t=JSON.parse(r);return JSON.stringify({...t,...e})}else return JSON.stringify({...e,text:r})},PH=r=>{String.prototype.speak=function(){const e=JSON.parse(this.valueOf());new aw({...e,text:e.text}).speak().then(()=>{}).catch(t=>{console.log("Error speaking:",t)})},String.prototype.rate=function(e){return Wo(this.valueOf(),{rate:e})},String.prototype.pitch=function(e){return Wo(this.valueOf(),{pitch:e})},String.prototype.lang=function(e){return Wo(this.valueOf(),{lang:e})},String.prototype.volume=function(e){return Wo(this.valueOf(),{volume:e})},String.prototype.voice=function(e){return Wo(this.valueOf(),{voice:e})},String.prototype.z=function(e={}){return r.z(this.valueOf(),e)},String.prototype.z0=function(e={}){return r.z0(this.valueOf(),e)},String.prototype.z1=function(e={}){return r.z1(this.valueOf(),e)},String.prototype.z2=function(e={}){return r.z2(this.valueOf(),e)},String.prototype.z3=function(e={}){return r.z3(this.valueOf(),e)},String.prototype.z4=function(e={}){return r.z4(this.valueOf(),e)},String.prototype.z5=function(e={}){return r.z5(this.valueOf(),e)},String.prototype.z6=function(e={}){return r.z6(this.valueOf(),e)},String.prototype.z7=function(e={}){return r.z7(this.valueOf(),e)},String.prototype.z8=function(e={}){return r.z8(this.valueOf(),e)},String.prototype.z9=function(e={}){return r.z9(this.valueOf(),e)},String.prototype.z10=function(e={}){return r.z10(this.valueOf(),e)},String.prototype.z11=function(e={}){return r.z11(this.valueOf(),e)},String.prototype.z12=function(e={}){return r.z12(this.valueOf(),e)},String.prototype.z13=function(e={}){return r.z13(this.valueOf(),e)},String.prototype.z14=function(e={}){return r.z14(this.valueOf(),e)},String.prototype.z15=function(e={}){return r.z15(this.valueOf(),e)},String.prototype.z16=function(e={}){return r.z16(this.valueOf(),e)},String.prototype.note=function(){try{return parseInt(this.valueOf())}catch{return ra(this.valueOf())}}};let Jf;class aw{constructor(e){A(this,"speak",()=>new Promise((e,t)=>{if(this.options.text){const n=window.speechSynthesis;n.speaking&&n.cancel();const a=new SpeechSynthesisUtterance(this.options.text);a.rate=this.options.rate||1,a.pitch=this.options.pitch||1,a.volume=this.options.volume||1,this.options.voice&&(a.voice=n.getVoices()[this.options.voice]),this.options.lang&&(this.options.lang.length===2?a.lang=`${this.options.lang}-${this.options.lang.toUpperCase()}`:this.options.lang.length===5?a.lang=this.options.lang:a.lang="en-US"),a.onend=()=>{e()},a.onerror=i=>{t(i)},n.speaking?(n.cancel(),Jf&&clearTimeout(Jf),Jf=setTimeout(()=>{n.speak(a)},200)):n.speak(a)}else t("No text provided")}));this.options=e}}const BH=["AJKPercusyn/ajkpercusyn-bd/Bassdrum.wav"],YH=["AJKPercusyn/ajkpercusyn-cb/Cowbell.wav","AJKPercusyn/ajkpercusyn-cb/Snarepop.wav"],FH=["AJKPercusyn/ajkpercusyn-ht/Tom.wav"],UH=["AJKPercusyn/ajkpercusyn-sd/Noise.wav"],$H=["AkaiLinn/akailinn-bd/Bassdrum.wav"],GH=["AkaiLinn/akailinn-cb/Cowbell.wav"],qH=["AkaiLinn/akailinn-cp/Clap.wav"],QH=["AkaiLinn/akailinn-cr/Crash.wav"],VH=["AkaiLinn/akailinn-hh/Closed Hat.wav"],HH=["AkaiLinn/akailinn-ht/Tom H.wav"],zH=["AkaiLinn/akailinn-lt/Tom L.wav"],WH=["AkaiLinn/akailinn-mt/Tom M.wav"],XH=["AkaiLinn/akailinn-oh/Open Hat.wav"],KH=["AkaiLinn/akailinn-rd/Ride.wav"],ZH=["AkaiLinn/akailinn-sd/SD.wav"],jH=["AkaiLinn/akailinn-sh/Shuffle.wav"],JH=["AkaiLinn/akailinn-tb/Tambourin.wav"],ez=["AkaiMPC60/akaimpc60-bd/0 Bassdrum.wav","AkaiMPC60/akaimpc60-bd/Bassdrum Gated.wav"],tz=["AkaiMPC60/akaimpc60-cp/Clap.wav"],nz=["AkaiMPC60/akaimpc60-cr/Crash.wav"],rz=["AkaiMPC60/akaimpc60-hh/Closed Hat.wav"],az=["AkaiMPC60/akaimpc60-ht/Tom H.wav"],iz=["AkaiMPC60/akaimpc60-lt/Tom L.wav"],sz=["AkaiMPC60/akaimpc60-misc/Bass.wav","AkaiMPC60/akaimpc60-misc/Electric Piano.wav"],oz=["AkaiMPC60/akaimpc60-mt/Tom M.wav"],lz=["AkaiMPC60/akaimpc60-oh/Open Hat.wav"],cz=["AkaiMPC60/akaimpc60-perc/Bongo.wav","AkaiMPC60/akaimpc60-perc/Click.wav","AkaiMPC60/akaimpc60-perc/Conga H.wav","AkaiMPC60/akaimpc60-perc/Conga L.wav","AkaiMPC60/akaimpc60-perc/Timbale.wav"],uz=["AkaiMPC60/akaimpc60-rd/Ride.wav"],dz=["AkaiMPC60/akaimpc60-rim/Rim Gated.wav"],mz=["AkaiMPC60/akaimpc60-sd/Snare 1.wav","AkaiMPC60/akaimpc60-sd/Snare 2.wav","AkaiMPC60/akaimpc60-sd/Snare 3.wav"],hz=["AkaiXR10/akaixr10-bd/Bassdrum-01.wav","AkaiXR10/akaixr10-bd/Bassdrum-02.wav","AkaiXR10/akaixr10-bd/Bassdrum-03.wav","AkaiXR10/akaixr10-bd/Bassdrum-04.wav","AkaiXR10/akaixr10-bd/Bassdrum-05.wav","AkaiXR10/akaixr10-bd/Bassdrum-06.wav","AkaiXR10/akaixr10-bd/Bassdrum-07.wav","AkaiXR10/akaixr10-bd/Bassdrum-08.wav","AkaiXR10/akaixr10-bd/Bassdrum-09.wav","AkaiXR10/akaixr10-bd/Bassdrum-10.wav"],pz=["AkaiXR10/akaixr10-cb/Cowbell.wav"],fz=["AkaiXR10/akaixr10-cp/Clap.wav"],gz=["AkaiXR10/akaixr10-cr/Crash-01.wav","AkaiXR10/akaixr10-cr/Crash-02.wav","AkaiXR10/akaixr10-cr/Crash-03.wav"],_z=["AkaiXR10/akaixr10-hh/Hat Closed.wav","AkaiXR10/akaixr10-hh/Hat Middle.wav"],bz=["AkaiXR10/akaixr10-ht/Tom H-02.wav"],Sz=["AkaiXR10/akaixr10-lt/Tom L-01.wav","AkaiXR10/akaixr10-lt/Tom L-02.wav"],Oz=["AkaiXR10/akaixr10-misc/Hit.wav","AkaiXR10/akaixr10-misc/Slap Bass.wav","AkaiXR10/akaixr10-misc/Square Kick-01.wav","AkaiXR10/akaixr10-misc/Square Kick-02.wav"],vz=["AkaiXR10/akaixr10-mt/Tom M-01.wav","AkaiXR10/akaixr10-mt/Tom M-02.wav"],Ez=["AkaiXR10/akaixr10-oh/Hat Open.wav"],Tz=["AkaiXR10/akaixr10-perc/Agogo.wav","AkaiXR10/akaixr10-perc/Claves.wav","AkaiXR10/akaixr10-perc/Conga-01.wav","AkaiXR10/akaixr10-perc/Conga-02.wav","AkaiXR10/akaixr10-perc/Conga-03.wav","AkaiXR10/akaixr10-perc/Conga-04.wav","AkaiXR10/akaixr10-perc/Fingersanp.wav","AkaiXR10/akaixr10-perc/Guiro-01.wav","AkaiXR10/akaixr10-perc/Guirro-02.wav","AkaiXR10/akaixr10-perc/Timbale H.wav","AkaiXR10/akaixr10-perc/Timbale L.wav","AkaiXR10/akaixr10-perc/Toma H-01.wav","AkaiXR10/akaixr10-perc/Triangle.wav","AkaiXR10/akaixr10-perc/Vibrator.wav","AkaiXR10/akaixr10-perc/Whistle.wav"],yz=["AkaiXR10/akaixr10-rd/Ride.wav"],Rz=["AkaiXR10/akaixr10-rim/Rim Shot-01.wav","AkaiXR10/akaixr10-rim/Rim Shot-02.wav"],Cz=["AkaiXR10/akaixr10-sd/Snaredrum-01.wav","AkaiXR10/akaixr10-sd/Snaredrum-02.wav","AkaiXR10/akaixr10-sd/Snaredrum-03.wav","AkaiXR10/akaixr10-sd/Snaredrum-04.wav","AkaiXR10/akaixr10-sd/Snaredrum-05.wav","AkaiXR10/akaixr10-sd/Snaredrum-06.wav","AkaiXR10/akaixr10-sd/Snaredrum-07.wav","AkaiXR10/akaixr10-sd/Snaredrum-08.wav","AkaiXR10/akaixr10-sd/Snaredrum-09.wav","AkaiXR10/akaixr10-sd/Snaredrum-10.wav"],Az=["AkaiXR10/akaixr10-sh/Cabasa.wav"],wz=["AkaiXR10/akaixr10-tb/Tambourine.wav"],Iz=["AlesisHR16/alesishr16-bd/Bassdrum.wav"],Nz=["AlesisHR16/alesishr16-cp/Clap.wav"],Dz=["AlesisHR16/alesishr16-hh/Closed Hat.wav"],xz=["AlesisHR16/alesishr16-ht/Tom-2.wav"],kz=["AlesisHR16/alesishr16-lt/Tom-1.wav"],Mz=["AlesisHR16/alesishr16-oh/Open Hat.wav"],Lz=["AlesisHR16/alesishr16-perc/Agogo Bell.wav","AlesisHR16/alesishr16-perc/Claves.wav","AlesisHR16/alesishr16-perc/Conga H.wav","AlesisHR16/alesishr16-perc/Conga L.wav","AlesisHR16/alesishr16-perc/Timbale.wav","AlesisHR16/alesishr16-perc/Triangle.wav","AlesisHR16/alesishr16-perc/Wood Block H.wav","AlesisHR16/alesishr16-perc/Wood Block L.wav"],Pz=["AlesisHR16/alesishr16-rim/Rim.wav"],Bz=["AlesisHR16/alesishr16-sd/Snaredrum.wav"],Yz=["AlesisHR16/alesishr16-sh/Cabasa.wav","AlesisHR16/alesishr16-sh/Maracas.wav","AlesisHR16/alesishr16-sh/Shaker.wav"],Fz=["AlesisSR16/alesissr16-bd/Bassdrum-01.wav","AlesisSR16/alesissr16-bd/Bassdrum-02.wav","AlesisSR16/alesissr16-bd/Bassdrum-03.wav","AlesisSR16/alesissr16-bd/Bassdrum-04.wav","AlesisSR16/alesissr16-bd/Bassdrum-05.wav","AlesisSR16/alesissr16-bd/Bassdrum-06.wav","AlesisSR16/alesissr16-bd/Bassdrum-07.wav","AlesisSR16/alesissr16-bd/Bassdrum-08.wav","AlesisSR16/alesissr16-bd/Bassdrum-09.wav","AlesisSR16/alesissr16-bd/Bassdrum-10.wav","AlesisSR16/alesissr16-bd/Bassdrum-11.wav","AlesisSR16/alesissr16-bd/Bassdrum-12.wav","AlesisSR16/alesissr16-bd/Bassdrum-13.wav"],Uz=["AlesisSR16/alesissr16-cb/Cowbell.wav"],$z=["AlesisSR16/alesissr16-cp/Clap.wav"],Gz=["AlesisSR16/alesissr16-cr/Crash-01.wav","AlesisSR16/alesissr16-cr/Crash-02.wav"],qz=["AlesisSR16/alesissr16-hh/Hat Closed-01.wav","AlesisSR16/alesissr16-hh/Hat Closed-02.wav","AlesisSR16/alesissr16-hh/Hat Closed-03.wav"],Qz=["AlesisSR16/alesissr16-misc/Hit.wav","AlesisSR16/alesissr16-misc/Metal.wav","AlesisSR16/alesissr16-misc/Synth Cymbal.wav"],Vz=["AlesisSR16/alesissr16-oh/Hat Open-01.wav","AlesisSR16/alesissr16-oh/Hat Open-02.wav","AlesisSR16/alesissr16-oh/Hat Open-03.wav","AlesisSR16/alesissr16-oh/Hat Reverse.wav"],Hz=["AlesisSR16/alesissr16-perc/Block.wav","AlesisSR16/alesissr16-perc/Bongo.wav","AlesisSR16/alesissr16-perc/Congo.wav","AlesisSR16/alesissr16-perc/Finger.wav","AlesisSR16/alesissr16-perc/Guiro.wav","AlesisSR16/alesissr16-perc/Timbale.wav","AlesisSR16/alesissr16-perc/Triangle.wav"],zz=["AlesisSR16/alesissr16-rd/Ride-01.wav","AlesisSR16/alesissr16-rd/Ride-02.wav","AlesisSR16/alesissr16-rd/Ride-03.wav"],Wz=["AlesisSR16/alesissr16-rim/Rim.wav"],Xz=["AlesisSR16/alesissr16-sd/Snaredrum-01.wav","AlesisSR16/alesissr16-sd/Snaredrum-02.wav","AlesisSR16/alesissr16-sd/Snaredrum-03.wav","AlesisSR16/alesissr16-sd/Snaredrum-04.wav","AlesisSR16/alesissr16-sd/Snaredrum-05.wav","AlesisSR16/alesissr16-sd/Snaredrum-06.wav","AlesisSR16/alesissr16-sd/Snaredrum-07.wav","AlesisSR16/alesissr16-sd/Snaredrum-08.wav","AlesisSR16/alesissr16-sd/Snaredrum-09.wav","AlesisSR16/alesissr16-sd/Snaredrum-10.wav","AlesisSR16/alesissr16-sd/Snaredrum-11.wav","AlesisSR16/alesissr16-sd/Snaredrum-12.wav"],Kz=["AlesisSR16/alesissr16-sh/Shaker.wav"],Zz=["AlesisSR16/alesissr16-tb/Tamb.wav"],jz=["BossDR110/bossdr110-bd/Bassdrum.wav"],Jz=["BossDR110/bossdr110-cp/Clap.wav"],eW=["BossDR110/bossdr110-cr/Crash.wav"],tW=["BossDR110/bossdr110-hh/Hat Closed.wav"],nW=["BossDR110/bossdr110-oh/Hat Open.wav"],rW=["BossDR110/bossdr110-rd/Ride.wav"],aW=["BossDR110/bossdr110-sd/Snaredrum.wav"],iW=["BossDR220/bossdr220-bd/Bassdrum.wav"],sW=["BossDR220/bossdr220-cp/Clap.wav"],oW=["BossDR220/bossdr220-cr/Crash.wav"],lW=["BossDR220/bossdr220-hh/Hat Closed.wav"],cW=["BossDR220/bossdr220-ht/Tom H.wav"],uW=["BossDR220/bossdr220-lt/Tom L.wav"],dW=["BossDR220/bossdr220-mt/Tom M.wav"],mW=["BossDR220/bossdr220-oh/Hat Open.wav"],hW=["BossDR220/bossdr220-perc/Clave.wav"],pW=["BossDR220/bossdr220-rd/Ride.wav"],fW=["BossDR220/bossdr220-sd/Snaredrum.wav"],gW=["BossDR55/bossdr55-bd/Bassdrum-01.wav","BossDR55/bossdr55-bd/Bassdrum-02.wav"],_W=["BossDR55/bossdr55-hh/Hihat1.wav","BossDR55/bossdr55-hh/Hihat2.wav"],bW=["BossDR55/bossdr55-rim/Rimshot.wav"],SW=["BossDR55/bossdr55-sd/Snaredrum-01.wav","BossDR55/bossdr55-sd/Snaredrum-02.wav","BossDR55/bossdr55-sd/Snaredrum-03.wav","BossDR55/bossdr55-sd/Snaredrum-05.wav","BossDR55/bossdr55-sd/Snaredrum-06.wav","BossDR55/bossdr55-sd/Snaredrum-07.wav","BossDR55/bossdr55-sd/Snaredrum-08.wav","BossDR55/bossdr55-sd/Snaredrum-09.wav"],OW=["BossDR550/bossdr550-bd/Bassdrum-01.wav","BossDR550/bossdr550-bd/Bassdrum-02.wav","BossDR550/bossdr550-bd/Bassdrum-03.wav","BossDR550/bossdr550-bd/Bassdrum-04.wav","BossDR550/bossdr550-bd/Bassdrum-05.wav"],vW=["BossDR550/bossdr550-cb/Cowbell-01.wav","BossDR550/bossdr550-cb/Cowbell-02.wav"],EW=["BossDR550/bossdr550-cp/Clap.wav"],TW=["BossDR550/bossdr550-cr/Crash.wav"],yW=["BossDR550/bossdr550-hh/Hat Closed-01.wav","BossDR550/bossdr550-hh/Hat Closed-02.wav"],RW=["BossDR550/bossdr550-ht/Tom H-01.wav","BossDR550/bossdr550-ht/Tom H-02.wav","BossDR550/bossdr550-ht/Tom H-03.wav"],CW=["BossDR550/bossdr550-lt/Tom L-01.wav","BossDR550/bossdr550-lt/Tom L-02.wav","BossDR550/bossdr550-lt/Tom L-03.wav"],AW=["BossDR550/bossdr550-misc/Hi Q.wav","BossDR550/bossdr550-misc/Srcatch-01.wav","BossDR550/bossdr550-misc/Srcatch-02.wav"],wW=["BossDR550/bossdr550-mt/Tom M-01.wav","BossDR550/bossdr550-mt/Tom M-02.wav"],IW=["BossDR550/bossdr550-oh/Hat Open-01.wav","BossDR550/bossdr550-oh/Hat Open-02.wav"],NW=["BossDR550/bossdr550-perc/Agogo H.wav","BossDR550/bossdr550-perc/Agogo L.wav","BossDR550/bossdr550-perc/Bongo H.wav","BossDR550/bossdr550-perc/Bongo L.wav","BossDR550/bossdr550-perc/Claves.wav","BossDR550/bossdr550-perc/Conga H.wav","BossDR550/bossdr550-perc/Conga L.wav","BossDR550/bossdr550-perc/Conga S.wav","BossDR550/bossdr550-perc/Timbale H.wav","BossDR550/bossdr550-perc/Timbale L.wav","BossDR550/bossdr550-perc/Whistle.wav"],DW=["BossDR550/bossdr550-rd/Ride-01.wav","BossDR550/bossdr550-rd/Ride-02.wav"],xW=["BossDR550/bossdr550-rim/Rim Shot.wav"],kW=["BossDR550/bossdr550-sd/Snaredrum-01.wav","BossDR550/bossdr550-sd/Snaredrum-02.wav","BossDR550/bossdr550-sd/Snaredrum-03.wav","BossDR550/bossdr550-sd/Snaredrum-04.wav","BossDR550/bossdr550-sd/Snaredrum-05.wav","BossDR550/bossdr550-sd/Snaredrum-06.wav"],MW=["BossDR550/bossdr550-sh/Cabasa-01.wav","BossDR550/bossdr550-sh/Cabasa-02.wav"],LW=["BossDR550/bossdr550-tb/Tambourine.wav"],PW=["CasioRZ1/casiorz1-bd/Bassdrum.wav"],BW=["CasioRZ1/casiorz1-cb/Cowbell.wav"],YW=["CasioRZ1/casiorz1-cp/Clap.wav"],FW=["CasioRZ1/casiorz1-cr/Crash.wav"],UW=["CasioRZ1/casiorz1-hh/Hat Closed.wav"],$W=["CasioRZ1/casiorz1-ht/Tom H.wav"],GW=["CasioRZ1/casiorz1-lt/Tom L.wav"],qW=["CasioRZ1/casiorz1-mt/Tom M.wav"],QW=["CasioRZ1/casiorz1-rd/Hat Open.wav","CasioRZ1/casiorz1-rd/Ride.wav"],VW=["CasioRZ1/casiorz1-rim/Rim Shot.wav"],HW=["CasioRZ1/casiorz1-sd/0Snaredrum.wav"],zW=["CasioSK1/casiosk1-bd/Bassdrum.wav"],WW=["CasioSK1/casiosk1-hh/Hat Closed.wav"],XW=["CasioSK1/casiosk1-ht/Tom H.wav"],KW=["CasioSK1/casiosk1-mt/Tom L.wav"],ZW=["CasioSK1/casiosk1-oh/Hat Open.wav"],jW=["CasioSK1/casiosk1-sd/Snaredrum.wav"],JW=["CasioVL1/casiovl1-bd/Bassdrum.wav"],eX=["CasioVL1/casiovl1-hh/Hi Hat.wav"],tX=["CasioVL1/casiovl1-sd/Snaredrum-01.wav"],nX=["DoepferMS404/doepferms404-bd/0Bassdrum.wav","DoepferMS404/doepferms404-bd/Bassdrum Reverse.wav"],rX=["DoepferMS404/doepferms404-hh/Hat Closed.wav"],aX=["DoepferMS404/doepferms404-lt/Tom.wav"],iX=["DoepferMS404/doepferms404-oh/Hat Open.wav"],sX=["DoepferMS404/doepferms404-sd/Snaredrum.wav"],oX=["EmuDrumulator/emudrumulator-bd/Bassdrum.wav"],lX=["EmuDrumulator/emudrumulator-cb/Cowbell.wav"],cX=["EmuDrumulator/emudrumulator-cp/Clap.wav"],uX=["EmuDrumulator/emudrumulator-cr/Cymbal.wav"],dX=["EmuDrumulator/emudrumulator-hh/Hat Closed.wav"],mX=["EmuDrumulator/emudrumulator-ht/Tom H.wav"],hX=["EmuDrumulator/emudrumulator-lt/Tom L.wav"],pX=["EmuDrumulator/emudrumulator-mt/Tom M.wav"],fX=["EmuDrumulator/emudrumulator-oh/Hat Open.wav"],gX=["EmuDrumulator/emudrumulator-perc/Claves.wav"],_X=["EmuDrumulator/emudrumulator-rim/Rim Shot.wav"],bX=["EmuDrumulator/emudrumulator-sd/0Snaredrum.wav"],SX=["EmuModular/emumodular-bd/Bassdrum-01.wav","EmuModular/emumodular-bd/Bassdrum-02.wav"],OX=["EmuModular/emumodular-misc/EmuPong.wav"],vX=["EmuModular/emumodular-perc/Flick-02.wav","EmuModular/emumodular-perc/Flick01.wav"],EX=["EmuSP12/emusp12-bd/Bassdrum-01.wav","EmuSP12/emusp12-bd/Bassdrum-02.wav","EmuSP12/emusp12-bd/Bassdrum-03.wav","EmuSP12/emusp12-bd/Bassdrum-04.wav","EmuSP12/emusp12-bd/Bassdrum-05.wav","EmuSP12/emusp12-bd/Bassdrum-06.wav","EmuSP12/emusp12-bd/Bassdrum-07.wav","EmuSP12/emusp12-bd/Bassdrum-08.wav","EmuSP12/emusp12-bd/Bassdrum-09.wav","EmuSP12/emusp12-bd/Bassdrum-10.wav","EmuSP12/emusp12-bd/Bassdrum-11.wav","EmuSP12/emusp12-bd/Bassdrum-12.wav","EmuSP12/emusp12-bd/Bassdrum-13.wav","EmuSP12/emusp12-bd/Bassdrum-14.wav"],TX=["EmuSP12/emusp12-cb/Cowbell.wav"],yX=["EmuSP12/emusp12-cp/Clap.wav"],RX=["EmuSP12/emusp12-cr/Crash.wav"],CX=["EmuSP12/emusp12-hh/Hat Closed-01.wav","EmuSP12/emusp12-hh/Hat Closed-02.wav"],AX=["EmuSP12/emusp12-ht/Tom H-01.wav","EmuSP12/emusp12-ht/Tom H-02.wav","EmuSP12/emusp12-ht/Tom H-03.wav","EmuSP12/emusp12-ht/Tom H-04.wav","EmuSP12/emusp12-ht/Tom H-05.wav","EmuSP12/emusp12-ht/Tom H-06.wav"],wX=["EmuSP12/emusp12-lt/Tom L-01.wav","EmuSP12/emusp12-lt/Tom L-02.wav","EmuSP12/emusp12-lt/Tom L-03.wav","EmuSP12/emusp12-lt/Tom L-04.wav","EmuSP12/emusp12-lt/Tom L-05.wav","EmuSP12/emusp12-lt/Tom L-06.wav"],IX=["EmuSP12/emusp12-misc/Metal-01.wav","EmuSP12/emusp12-misc/Metal-02.wav","EmuSP12/emusp12-misc/Metal-03.wav","EmuSP12/emusp12-misc/Scratch.wav","EmuSP12/emusp12-misc/Shot-01.wav","EmuSP12/emusp12-misc/Shot-02.wav","EmuSP12/emusp12-misc/Shot-03.wav"],NX=["EmuSP12/emusp12-mt/Tom M-01.wav","EmuSP12/emusp12-mt/Tom M-02.wav","EmuSP12/emusp12-mt/Tom M-03.wav","EmuSP12/emusp12-mt/Tom M-05.wav"],DX=["EmuSP12/emusp12-oh/Hhopen1.wav"],xX=["EmuSP12/emusp12-perc/Blow1.wav"],kX=["EmuSP12/emusp12-rd/Ride.wav"],MX=["EmuSP12/emusp12-rim/zRim Shot-01.wav","EmuSP12/emusp12-rim/zRim Shot-02.wav"],LX=["EmuSP12/emusp12-sd/Snaredrum-01.wav","EmuSP12/emusp12-sd/Snaredrum-02.wav","EmuSP12/emusp12-sd/Snaredrum-03.wav","EmuSP12/emusp12-sd/Snaredrum-04.wav","EmuSP12/emusp12-sd/Snaredrum-05.wav","EmuSP12/emusp12-sd/Snaredrum-06.wav","EmuSP12/emusp12-sd/Snaredrum-07.wav","EmuSP12/emusp12-sd/Snaredrum-08.wav","EmuSP12/emusp12-sd/Snaredrum-09.wav","EmuSP12/emusp12-sd/Snaredrum-10.wav","EmuSP12/emusp12-sd/Snaredrum-11.wav","EmuSP12/emusp12-sd/Snaredrum-12.wav","EmuSP12/emusp12-sd/Snaredrum-13.wav","EmuSP12/emusp12-sd/Snaredrum-14.wav","EmuSP12/emusp12-sd/Snaredrum-15.wav","EmuSP12/emusp12-sd/Snaredrum-16.wav","EmuSP12/emusp12-sd/Snaredrum-17.wav","EmuSP12/emusp12-sd/Snaredrum-18.wav","EmuSP12/emusp12-sd/Snaredrum-19.wav","EmuSP12/emusp12-sd/Snaredrum-20.wav","EmuSP12/emusp12-sd/Snaredrum-21.wav"],PX=["KorgDDM110/korgddm110-bd/Bassdrum.wav"],BX=["KorgDDM110/korgddm110-cp/Clap.wav"],YX=["KorgDDM110/korgddm110-cr/Crash.wav"],FX=["KorgDDM110/korgddm110-hh/Hat Closed.wav"],UX=["KorgDDM110/korgddm110-ht/Tom H.wav","KorgDDM110/korgddm110-ht/Tom-01.wav"],$X=["KorgDDM110/korgddm110-lt/Tom L.wav","KorgDDM110/korgddm110-lt/Tom-02.wav"],GX=["KorgDDM110/korgddm110-oh/Hat Open.wav"],qX=["KorgDDM110/korgddm110-rim/Rim Shot.wav"],QX=["KorgDDM110/korgddm110-sd/0Snaredrum.wav"],VX=["KorgKPR77/korgkpr77-bd/Bassdrum.wav"],HX=["KorgKPR77/korgkpr77-cp/Clap.wav"],zX=["KorgKPR77/korgkpr77-hh/Hat Closed.wav"],WX=["KorgKPR77/korgkpr77-oh/Hat Open.wav"],XX=["KorgKPR77/korgkpr77-sd/Snaredrum.wav"],KX=["KorgKR55/korgkr55-bd/Bassdrum.wav"],ZX=["KorgKR55/korgkr55-cb/Cowbell.wav"],jX=["KorgKR55/korgkr55-cr/Cymbal.wav"],JX=["KorgKR55/korgkr55-hh/Hat Closed.wav"],eK=["KorgKR55/korgkr55-ht/Tom.wav"],tK=["KorgKR55/korgkr55-oh/Hat Open.wav"],nK=["KorgKR55/korgkr55-perc/Claves.wav","KorgKR55/korgkr55-perc/Conga.wav"],rK=["KorgKR55/korgkr55-rim/Rim Shot.wav"],aK=["KorgKR55/korgkr55-sd/0Snaredrum.wav"],iK=["KorgKRZ/korgkrz-bd/Bassdrum.wav"],sK=["KorgKRZ/korgkrz-cr/Crash.wav"],oK=["KorgKRZ/korgkrz-fx/FX-01.wav","KorgKRZ/korgkrz-fx/FX-02.wav"],lK=["KorgKRZ/korgkrz-hh/Hat Closed.wav"],cK=["KorgKRZ/korgkrz-ht/Tom-02.wav"],uK=["KorgKRZ/korgkrz-lt/Tom-01.wav"],dK=["KorgKRZ/korgkrz-misc/Bell.wav"],mK=["KorgKRZ/korgkrz-oh/Hat Open.wav"],hK=["KorgKRZ/korgkrz-rd/Ride.wav"],pK=["KorgKRZ/korgkrz-sd/Snaredrum-01.wav","KorgKRZ/korgkrz-sd/Snaredrum-02.wav"],fK=["KorgM1/korgm1-bd/Bassdrum-01.wav","KorgM1/korgm1-bd/Bassdrum-02.wav","KorgM1/korgm1-bd/Bassdrum-03.wav"],gK=["KorgM1/korgm1-cb/Cowbel.wav"],_K=["KorgM1/korgm1-cp/Clap.wav"],bK=["KorgM1/korgm1-cr/Crash.wav"],SK=["KorgM1/korgm1-hh/Hat Closed-01.wav","KorgM1/korgm1-hh/Hat Closed-02.wav"],OK=["KorgM1/korgm1-ht/Tom-02.wav","KorgM1/korgm1-ht/Tom-03.wav"],vK=["KorgM1/korgm1-misc/Belrng.wav","KorgM1/korgm1-misc/Drop.wav","KorgM1/korgm1-misc/Flexttone.wav","KorgM1/korgm1-misc/Hammer.wav","KorgM1/korgm1-misc/Metal.wav","KorgM1/korgm1-misc/Metronome-01.wav","KorgM1/korgm1-misc/Metronome-02.wav","KorgM1/korgm1-misc/Pole.wav","KorgM1/korgm1-misc/Scratch.wav","KorgM1/korgm1-misc/Snap.wav","KorgM1/korgm1-misc/Tubalar Bell-01.wav","KorgM1/korgm1-misc/Tubalar Bell-02.wav","KorgM1/korgm1-misc/Tubalar Bell-03.wav","KorgM1/korgm1-misc/Tubalar Bell-04.wav","KorgM1/korgm1-misc/Whiplash.wav","KorgM1/korgm1-misc/Windbells.wav"],EK=["KorgM1/korgm1-mt/Tom-01.wav"],TK=["KorgM1/korgm1-oh/Hat Open-01.wav","KorgM1/korgm1-oh/Hat Open-02.wav"],yK=["KorgM1/korgm1-perc/Conga-01.wav","KorgM1/korgm1-perc/Conga-02.wav","KorgM1/korgm1-perc/Hit.wav","KorgM1/korgm1-perc/Pluck.wav","KorgM1/korgm1-perc/Timbale-01.wav","KorgM1/korgm1-perc/Timbale-02.wav","KorgM1/korgm1-perc/Woodblock.wav"],RK=["KorgM1/korgm1-rd/Ride.wav"],CK=["KorgM1/korgm1-rim/Snaredrum-side.wav"],AK=["KorgM1/korgm1-sd/Snaredrum-01.wav","KorgM1/korgm1-sd/Snaredrum-02.wav","KorgM1/korgm1-sd/Snaredrum-03.wav","KorgM1/korgm1-sd/Snaredrum-04.wav"],wK=["KorgM1/korgm1-sh/Shakers.wav"],IK=["KorgM1/korgm1-tb/Tambourine.wav"],NK=["KorgMinipops/korgminipops-bd/Bassdrum-01.wav","KorgMinipops/korgminipops-bd/Bassdrum-02.wav","KorgMinipops/korgminipops-bd/Bassdrum-03.wav","KorgMinipops/korgminipops-bd/Bassdrum-04.wav","KorgMinipops/korgminipops-bd/Bassdrum-05.wav","KorgMinipops/korgminipops-bd/Bassdrum-06.wav","KorgMinipops/korgminipops-bd/Bassdrum-07.wav"],DK=["KorgMinipops/korgminipops-hh/Hat Closed-01.wav","KorgMinipops/korgminipops-hh/Hat Closed-02.wav","KorgMinipops/korgminipops-hh/Hat Closed-03.wav","KorgMinipops/korgminipops-hh/Hat Closed-04.wav"],xK=["KorgMinipops/korgminipops-misc/Tom-01.wav","KorgMinipops/korgminipops-misc/Tom-02.wav","KorgMinipops/korgminipops-misc/Woodblock-01.wav","KorgMinipops/korgminipops-misc/Woodblock-02.wav"],kK=["KorgMinipops/korgminipops-oh/Hat Open-01.wav","KorgMinipops/korgminipops-oh/Hat Open-02.wav","KorgMinipops/korgminipops-oh/Hat Open-03.wav","KorgMinipops/korgminipops-oh/Hat Open-04.wav"],MK=["KorgMinipops/korgminipops-sd/Snaredrum-01.wav","KorgMinipops/korgminipops-sd/Snaredrum-02.wav","KorgMinipops/korgminipops-sd/Snaredrum-03.wav","KorgMinipops/korgminipops-sd/Snaredrum-04.wav","KorgMinipops/korgminipops-sd/Snaredrum-05.wav","KorgMinipops/korgminipops-sd/Snaredrum-06.wav","KorgMinipops/korgminipops-sd/Snaredrum-07.wav","KorgMinipops/korgminipops-sd/Snaredrum-08.wav","KorgMinipops/korgminipops-sd/Snaredrum-09.wav","KorgMinipops/korgminipops-sd/Snaredrum-10.wav","KorgMinipops/korgminipops-sd/Snaredrum-11.wav","KorgMinipops/korgminipops-sd/Snaredrum-12.wav","KorgMinipops/korgminipops-sd/Snaredrum-13.wav"],LK=["KorgPoly800/korgpoly800-bd/Bassdrum-01.wav","KorgPoly800/korgpoly800-bd/Bassdrum-02.wav","KorgPoly800/korgpoly800-bd/Bassdrum-03.wav","KorgPoly800/korgpoly800-bd/Bassdrum-04.wav"],PK=["KorgT3/korgt3-bd/Bassdrum-01.wav","KorgT3/korgt3-bd/Bassdrum-02.wav","KorgT3/korgt3-bd/Bassdrum-03.wav","KorgT3/korgt3-bd/Bassdrum-04.wav","KorgT3/korgt3-bd/Bassdrum-05.wav"],BK=["KorgT3/korgt3-cp/Clap.wav"],YK=["KorgT3/korgt3-hh/Hat Closed-01.wav","KorgT3/korgt3-hh/Hat Closed-02.wav"],FK=["KorgT3/korgt3-misc/Bell-02.wav","KorgT3/korgt3-misc/Bell01.wav","KorgT3/korgt3-misc/Click.wav","KorgT3/korgt3-misc/Tubular Bell.wav"],UK=["KorgT3/korgt3-oh/Hat Open-01.wav","KorgT3/korgt3-oh/Hat Open-02.wav"],$K=["KorgT3/korgt3-perc/Blocks.wav","KorgT3/korgt3-perc/Conga.wav","KorgT3/korgt3-perc/Hit.wav","KorgT3/korgt3-perc/Stick.wav"],GK=["KorgT3/korgt3-rim/Rim shot.wav"],qK=["KorgT3/korgt3-sd/Snaredrum-01.wav","KorgT3/korgt3-sd/Snaredrum-02.wav","KorgT3/korgt3-sd/Snaredrum-03.wav","KorgT3/korgt3-sd/Snaredrum-04.wav","KorgT3/korgt3-sd/Snaredrum-05.wav"],QK=["KorgT3/korgt3-sh/Shaker-01.wav","KorgT3/korgt3-sh/Shaker-02.wav","KorgT3/korgt3-sh/zCabasa.wav"],VK=["Linn9000/linn9000-bd/BAssdrum.wav"],HK=["Linn9000/linn9000-cb/Cowbell-01.wav","Linn9000/linn9000-cb/Cowbell-02.wav"],zK=["Linn9000/linn9000-cr/Crash-01.wav","Linn9000/linn9000-cr/Crash-02.wav"],WK=["Linn9000/linn9000-hh/Hat Closed.wav"],XK=["Linn9000/linn9000-ht/Tom-01.wav","Linn9000/linn9000-ht/Tom-02.wav"],KK=["Linn9000/linn9000-lt/Tom-04.wav","Linn9000/linn9000-lt/Tom-05.wav"],ZK=["Linn9000/linn9000-mt/Tom-03.wav"],jK=["Linn9000/linn9000-oh/Hat Open.wav"],JK=["Linn9000/linn9000-perc/Conga H.wav","Linn9000/linn9000-perc/Conga L.wav","Linn9000/linn9000-perc/Conga M.wav"],eZ=["Linn9000/linn9000-rd/Crash-03.wav","Linn9000/linn9000-rd/Ping.wav"],tZ=["Linn9000/linn9000-rim/Rim Shot.wav"],nZ=["Linn9000/linn9000-sd/0Snaredrum.wav"],rZ=["Linn9000/linn9000-tb/Tambourine.wav"],aZ=["LinnDrum/linndrum-bd/Bassdrum.wav"],iZ=["LinnDrum/linndrum-cb/Cowbell.wav"],sZ=["LinnDrum/linndrum-cp/Clap.wav"],oZ=["LinnDrum/linndrum-cr/Crash.wav"],lZ=["LinnDrum/linndrum-hh/Hat Closed-01.wav","LinnDrum/linndrum-hh/Hat Closed-02.wav","LinnDrum/linndrum-hh/Hat Closed-03.wav"],cZ=["LinnDrum/linndrum-ht/Tom H-01.wav","LinnDrum/linndrum-ht/Tom H-02.wav"],uZ=["LinnDrum/linndrum-lt/Tom L-01.wav","LinnDrum/linndrum-lt/Tom L-02.wav"],dZ=["LinnDrum/linndrum-mt/Tom M-01.wav"],mZ=["LinnDrum/linndrum-oh/Hat Open.wav"],hZ=["LinnDrum/linndrum-perc/Conga H-01.wav","LinnDrum/linndrum-perc/Conga H-02.wav","LinnDrum/linndrum-perc/Conga L-01.wav","LinnDrum/linndrum-perc/Conga L-02.wav","LinnDrum/linndrum-perc/Conga M-01.wav","LinnDrum/linndrum-perc/Conga M-02.wav"],pZ=["LinnDrum/linndrum-rd/Ride.wav"],fZ=["LinnDrum/linndrum-rim/Sidestick-01.wav","LinnDrum/linndrum-rim/Sidestick-02.wav","LinnDrum/linndrum-rim/Sidestick-03.wav"],gZ=["LinnDrum/linndrum-sd/0Snarderum-01.wav","LinnDrum/linndrum-sd/0Snarderum-02.wav","LinnDrum/linndrum-sd/0Snarderum-03.wav"],_Z=["LinnDrum/linndrum-sh/Cabasa.wav"],bZ=["LinnDrum/linndrum-tb/Tambourine.wav"],SZ=["LinnLM1/linnlm1-bd/LM-1_BD_1_TL.wav","LinnLM1/linnlm1-bd/LM-1_BD_2_TL.wav","LinnLM1/linnlm1-bd/LM-1_BD_3_TL.wav","LinnLM1/linnlm1-bd/LM-1_BD_4_TL.wav"],OZ=["LinnLM1/linnlm1-cb/LM-1_COWBELL_TL.wav"],vZ=["LinnLM1/linnlm1-cp/LM-1_CLAP_1_TL.wav"],EZ=["LinnLM1/linnlm1-hh/LM-1_HH_1_TL.wav"],TZ=["LinnLM1/linnlm1-ht/LM-1_Tom_2_TL.wav"],yZ=["LinnLM1/linnlm1-lt/LM-1_Tom_1_TL.wav"],RZ=["LinnLM1/linnlm1-oh/LM-1_HH_2_TL.wav"],CZ=["LinnLM1/linnlm1-perc/LM-1_BONGO_1_TL.wav","LinnLM1/linnlm1-perc/LM-1_BONGO_2_TL.wav","LinnLM1/linnlm1-perc/LM-1_WOODBLOCK_TL.wav"],AZ=["LinnLM1/linnlm1-rim/LM-1_RIMSHOT_1_TL.wav"],wZ=["LinnLM1/linnlm1-sd/LM-1_SD_1_TL.wav"],IZ=["LinnLM1/linnlm1-sh/LM-1_SHAKER_1_TL.wav"],NZ=["LinnLM1/linnlm1-tb/LM-1_TAMB_TL.wav"],DZ=["LinnLM2/linnlm2-bd/LM-2_BD_1_TL.wav","LinnLM2/linnlm2-bd/LM-2_BD_2_TL.wav","LinnLM2/linnlm2-bd/LM-2_BD_3_TL.wav","LinnLM2/linnlm2-bd/LM-2_BD_4_TL.wav"],xZ=["LinnLM2/linnlm2-cb/LM-2_COWBELL_1_TL.wav"],kZ=["LinnLM2/linnlm2-cp/LM-2_CLAP_1_TL.wav"],MZ=["LinnLM2/linnlm2-cr/LM-2_CRASH_1_TL.wav"],LZ=["LinnLM2/linnlm2-hh/LM-2_HH_1_TL.wav","LinnLM2/linnlm2-hh/LM-2_HH_2_TL.wav"],PZ=["LinnLM2/linnlm2-ht/LM-2_TOM_1_TL.wav"],BZ=["LinnLM2/linnlm2-lt/LM-2_TOM_3_TL.wav"],YZ=["LinnLM2/linnlm2-mt/LM-2_TOM_2_TL.wav"],FZ=["LinnLM2/linnlm2-oh/LM-2_OPEN_HH_2_TL.wav","LinnLM2/linnlm2-oh/LM-2_OPEN_HH_TL.wav"],UZ=["LinnLM2/linnlm2-rd/LM-2_RIDE_1_TL.wav"],$Z=["LinnLM2/linnlm2-rim/LM-2_RIMSHOT_1_TL.wav","LinnLM2/linnlm2-rim/LM-2_RIMSHOT_2_TL.wav"],GZ=["LinnLM2/linnlm2-sd/LM-2_SD_1_TL.wav","LinnLM2/linnlm2-sd/LM-2_SD_2_TL.wav","LinnLM2/linnlm2-sd/LM-2_SD_3_TL.wav","LinnLM2/linnlm2-sd/LM-2_SD_4_TL.wav"],qZ=["LinnLM2/linnlm2-sh/LM-2_SHAKER_1_TL.wav"],QZ=["LinnLM2/linnlm2-tb/LM-2_TAMB_1_TL.wav"],VZ=["MFB512/mfb512-bd/Bassdrum.wav"],HZ=["MFB512/mfb512-cp/Clap.wav"],zZ=["MFB512/mfb512-cr/Crash.wav"],WZ=["MFB512/mfb512-hh/Hat Closed.wav"],XZ=["MFB512/mfb512-ht/Tom H.wav"],KZ=["MFB512/mfb512-lt/Tom L.wav"],ZZ=["MFB512/mfb512-mt/Tom M.wav"],jZ=["MFB512/mfb512-oh/Hat Open.wav"],JZ=["MFB512/mfb512-sd/Snaredrum.wav"],ej=["MPC1000/mpc1000-bd/MPC1000_808BD_TL.wav","MPC1000/mpc1000-bd/MPC1000_909BD_TL.wav","MPC1000/mpc1000-bd/MPC1000_DB-BD2_TL.wav","MPC1000/mpc1000-bd/MPC1000_HH-BD_TL.wav","MPC1000/mpc1000-bd/MPC1000_HOUSEBD_TL.wav"],tj=["MPC1000/mpc1000-cp/MPC1000_CLAP_TL.wav"],nj=["MPC1000/mpc1000-hh/MPC1000_808HH1_TL.wav","MPC1000/mpc1000-hh/MPC1000_808HH2_TL.wav","MPC1000/mpc1000-hh/MPC1000_909CHH_TL.wav","MPC1000/mpc1000-hh/MPC1000_HHCHH1_TL.wav"],rj=["MPC1000/mpc1000-oh/MPC1000_909OHH_TL.wav"],aj=["MPC1000/mpc1000-perc/MPC1000_HHPERC_TL.wav"],ij=["MPC1000/mpc1000-sd/MPC1000_808SD_TL.wav","MPC1000/mpc1000-sd/MPC1000_909SD_TL.wav","MPC1000/mpc1000-sd/MPC1000_DB-SN_TL.wav","MPC1000/mpc1000-sd/MPC1000_HH-SN_TL.wav"],sj=["MPC1000/mpc1000-sh/MPC1000_808MRC_TL.wav"],oj=["MoogConcertMateMG1/moogconcertmatemg1-bd/Bassdrum-01.wav","MoogConcertMateMG1/moogconcertmatemg1-bd/Bassdrum-02.wav","MoogConcertMateMG1/moogconcertmatemg1-bd/Bassdrum-03.wav"],lj=["MoogConcertMateMG1/moogconcertmatemg1-sd/Snaredrum-1.wav","MoogConcertMateMG1/moogconcertmatemg1-sd/Snaredrum-2.wav"],cj=["OberheimDMX/oberheimdmx--perc/Timbale H.wav","OberheimDMX/oberheimdmx--perc/Timbale L.wav","OberheimDMX/oberheimdmx--perc/Timbale M.wav"],uj=["OberheimDMX/oberheimdmx-bd/Bassdrum-01.wav","OberheimDMX/oberheimdmx-bd/Bassdrum-02.wav","OberheimDMX/oberheimdmx-bd/Bassdrum-03.wav"],dj=["OberheimDMX/oberheimdmx-cp/Clap.wav"],mj=["OberheimDMX/oberheimdmx-cr/Crash.wav"],hj=["OberheimDMX/oberheimdmx-hh/Hat Closed.wav"],pj=["OberheimDMX/oberheimdmx-ht/Tom H.wav"],fj=["OberheimDMX/oberheimdmx-lt/Tom L.wav"],gj=["OberheimDMX/oberheimdmx-mt/Tom M.wav"],_j=["OberheimDMX/oberheimdmx-oh/Hat Open.wav"],bj=["OberheimDMX/oberheimdmx-rd/Ride.wav"],Sj=["OberheimDMX/oberheimdmx-rim/Rim Shot.wav"],Oj=["OberheimDMX/oberheimdmx-sd/Snaredrum-01.wav","OberheimDMX/oberheimdmx-sd/Snaredrum-02.wav","OberheimDMX/oberheimdmx-sd/Snaredrum-03.wav"],vj=["OberheimDMX/oberheimdmx-sh/Cabasa.wav"],Ej=["OberheimDMX/oberheimdmx-tb/Tamborine.wav"],Tj=["RhodesPolaris/rhodespolaris-bd/Bassdrum-01.wav","RhodesPolaris/rhodespolaris-bd/Bassdrum-02.wav","RhodesPolaris/rhodespolaris-bd/Bassdrum-03.wav","RhodesPolaris/rhodespolaris-bd/Bassdrum-04.wav"],yj=["RhodesPolaris/rhodespolaris-misc/Noise-1.wav","RhodesPolaris/rhodespolaris-misc/Noise-2.wav","RhodesPolaris/rhodespolaris-misc/Noise-3.wav","RhodesPolaris/rhodespolaris-misc/Noise-4.wav"],Rj=["RhodesPolaris/rhodespolaris-sd/Snaredrum-01.wav","RhodesPolaris/rhodespolaris-sd/Snaredrum-02.wav","RhodesPolaris/rhodespolaris-sd/Snaredrum-03.wav","RhodesPolaris/rhodespolaris-sd/Snaredrum-04.wav"],Cj=["RhythmAce/rhythmace-bd/Bassdrum-01.wav","RhythmAce/rhythmace-bd/Bassdrum-02.wav","RhythmAce/rhythmace-bd/Bassdrum-03.wav"],Aj=["RhythmAce/rhythmace-hh/Hat Closed.wav"],wj=["RhythmAce/rhythmace-ht/Tom H.wav"],Ij=["RhythmAce/rhythmace-lt/Tom L.wav"],Nj=["RhythmAce/rhythmace-oh/Hat Open.wav"],Dj=["RhythmAce/rhythmace-perc/Clave.wav","RhythmAce/rhythmace-perc/Click.wav","RhythmAce/rhythmace-perc/Percussion-01.wav","RhythmAce/rhythmace-perc/Percussion-02.wav","RhythmAce/rhythmace-perc/Percussion-03.wav","RhythmAce/rhythmace-perc/Percussion-04.wav"],xj=["RhythmAce/rhythmace-sd/Snaredrum-01.wav","RhythmAce/rhythmace-sd/Snaredrum-02.wav","RhythmAce/rhythmace-sd/Snaredrum-03.wav"],kj=["RolandCompurhythm1000/rolandcompurhythm1000-bd/Bassdrum.wav"],Mj=["RolandCompurhythm1000/rolandcompurhythm1000-cb/Cowbell.wav"],Lj=["RolandCompurhythm1000/rolandcompurhythm1000-cp/Clap.wav"],Pj=["RolandCompurhythm1000/rolandcompurhythm1000-cr/Crash.wav"],Bj=["RolandCompurhythm1000/rolandcompurhythm1000-hh/Hat Closed.wav"],Yj=["RolandCompurhythm1000/rolandcompurhythm1000-ht/Tom H.wav"],Fj=["RolandCompurhythm1000/rolandcompurhythm1000-lt/Tom L.wav"],Uj=["RolandCompurhythm1000/rolandcompurhythm1000-mt/Tom M.wav"],$j=["RolandCompurhythm1000/rolandcompurhythm1000-oh/Hat Open.wav"],Gj=["RolandCompurhythm1000/rolandcompurhythm1000-perc/Conga H.wav","RolandCompurhythm1000/rolandcompurhythm1000-perc/Conga L.wav","RolandCompurhythm1000/rolandcompurhythm1000-perc/Timbale.wav"],qj=["RolandCompurhythm1000/rolandcompurhythm1000-rd/Ride.wav"],Qj=["RolandCompurhythm1000/rolandcompurhythm1000-rim/Rimshot.wav"],Vj=["RolandCompurhythm1000/rolandcompurhythm1000-sd/Snaredrum.wav"],Hj=["RolandCompurhythm78/rolandcompurhythm78-bd/Bassdrum.wav"],zj=["RolandCompurhythm78/rolandcompurhythm78-cb/Cowbell.wav"],Wj=["RolandCompurhythm78/rolandcompurhythm78-hh/Hat Closed-01.wav","RolandCompurhythm78/rolandcompurhythm78-hh/Hat Closed-02.wav"],Xj=["RolandCompurhythm78/rolandcompurhythm78-misc/Quid-01.wav","RolandCompurhythm78/rolandcompurhythm78-misc/Quid-02.wav","RolandCompurhythm78/rolandcompurhythm78-misc/Quid-03.wav","RolandCompurhythm78/rolandcompurhythm78-misc/Quid-04.wav"],Kj=["RolandCompurhythm78/rolandcompurhythm78-oh/Hat Open-01.wav","RolandCompurhythm78/rolandcompurhythm78-oh/Hat Open-02.wav"],Zj=["RolandCompurhythm78/rolandcompurhythm78-perc/Conga H.wav","RolandCompurhythm78/rolandcompurhythm78-perc/Conga L.wav","RolandCompurhythm78/rolandcompurhythm78-perc/Conga M.wav","RolandCompurhythm78/rolandcompurhythm78-perc/Hit.wav","RolandCompurhythm78/rolandcompurhythm78-perc/Woodblock-01.wav","RolandCompurhythm78/rolandcompurhythm78-perc/Woodblock-02.wav","RolandCompurhythm78/rolandcompurhythm78-perc/Woodblock-03.wav","RolandCompurhythm78/rolandcompurhythm78-perc/Woodblock-04.wav"],jj=["RolandCompurhythm78/rolandcompurhythm78-sd/Snaredrum.wav"],Jj=["RolandCompurhythm78/rolandcompurhythm78-tb/Tambourine.wav"],eJ=["RolandCompurhythm8000/rolandcompurhythm8000-bd/Bassdrum.wav"],tJ=["RolandCompurhythm8000/rolandcompurhythm8000-cb/Cowbell.wav"],nJ=["RolandCompurhythm8000/rolandcompurhythm8000-cp/Clap.wav"],rJ=["RolandCompurhythm8000/rolandcompurhythm8000-cr/Cymball.wav"],aJ=["RolandCompurhythm8000/rolandcompurhythm8000-hh/Hat Closed.wav"],iJ=["RolandCompurhythm8000/rolandcompurhythm8000-ht/Tom H.wav"],sJ=["RolandCompurhythm8000/rolandcompurhythm8000-lt/Tom L.wav"],oJ=["RolandCompurhythm8000/rolandcompurhythm8000-mt/Tom M.wav"],lJ=["RolandCompurhythm8000/rolandcompurhythm8000-oh/Hat Open.wav"],cJ=["RolandCompurhythm8000/rolandcompurhythm8000-perc/Claves.wav","RolandCompurhythm8000/rolandcompurhythm8000-perc/Cr8kmcng.wav"],uJ=["RolandCompurhythm8000/rolandcompurhythm8000-rim/Rimshot.wav"],dJ=["RolandCompurhythm8000/rolandcompurhythm8000-sd/Snarderum.wav"],mJ=["RolandD110/rolandd110-bd/Bassdrum.wav"],hJ=["RolandD110/rolandd110-cb/Cowbell H.wav","RolandD110/rolandd110-cb/Cowbell L.wav"],pJ=["RolandD110/rolandd110-cr/Crash.wav"],fJ=["RolandD110/rolandd110-hh/Hat Closed.wav"],gJ=["RolandD110/rolandd110-lt/Tom.wav"],_J=["RolandD110/rolandd110-oh/Hat Open.wav","RolandD110/rolandd110-oh/Hat Pedal.wav"],bJ=["RolandD110/rolandd110-perc/Bongo.wav","RolandD110/rolandd110-perc/Conga.wav","RolandD110/rolandd110-perc/Woodblock.wav"],SJ=["RolandD110/rolandd110-rd/Ride.wav"],OJ=["RolandD110/rolandd110-rim/Rimshot.wav"],vJ=["RolandD110/rolandd110-sd/Snaredrum-01.wav","RolandD110/rolandd110-sd/Snaredrum-02.wav","RolandD110/rolandd110-sd/Snaredrum-03.wav"],EJ=["RolandD110/rolandd110-sh/Cabasa.wav"],TJ=["RolandD110/rolandd110-tb/Tambourine.wav"],yJ=["RolandD70/rolandd70-bd/Bassdrum-01.wav","RolandD70/rolandd70-bd/Bassdrum-02.wav","RolandD70/rolandd70-bd/Bassdrum-03.wav","RolandD70/rolandd70-bd/Bassdrum-04.wav"],RJ=["RolandD70/rolandd70-cb/Cowbell.wav"],CJ=["RolandD70/rolandd70-cp/Clap.wav"],AJ=["RolandD70/rolandd70-cr/Crash.wav"],wJ=["RolandD70/rolandd70-hh/Hat Closed.wav"],IJ=["RolandD70/rolandd70-lt/Tom-02.wav"],NJ=["RolandD70/rolandd70-mt/Tom.-01.wav"],DJ=["RolandD70/rolandd70-oh/Hat Open.wav"],xJ=["RolandD70/rolandd70-perc/Sticks.wav"],kJ=["RolandD70/rolandd70-rd/Ride.wav"],MJ=["RolandD70/rolandd70-rim/Rim Shot.wav"],LJ=["RolandD70/rolandd70-sd/Snaredrum-01.wav","RolandD70/rolandd70-sd/Snaredrum-02.wav","RolandD70/rolandd70-sd/Snaredrum-03.wav","RolandD70/rolandd70-sd/Snaredrum-04.wav","RolandD70/rolandd70-sd/Snaredrum-05.wav"],PJ=["RolandD70/rolandd70-sh/Cabasa.wav"],BJ=["RolandDDR30/rolandddr30-bd/Bassdrum-01.wav","RolandDDR30/rolandddr30-bd/Bassdrum-02.wav","RolandDDR30/rolandddr30-bd/Bassdrum-03.wav","RolandDDR30/rolandddr30-bd/Bassdrum-04.wav","RolandDDR30/rolandddr30-bd/Bassdrum-05.wav","RolandDDR30/rolandddr30-bd/Bassdrum-06.wav","RolandDDR30/rolandddr30-bd/Bassdrum-07.wav","RolandDDR30/rolandddr30-bd/Bassdrum-08.wav"],YJ=["RolandDDR30/rolandddr30-ht/Tom-01.wav","RolandDDR30/rolandddr30-ht/Tom-03.wav","RolandDDR30/rolandddr30-ht/Tom-05.wav","RolandDDR30/rolandddr30-ht/Tom-07.wav"],FJ=["RolandDDR30/rolandddr30-lt/Tom-02.wav","RolandDDR30/rolandddr30-lt/Tom-04.wav","RolandDDR30/rolandddr30-lt/Tom-06.wav","RolandDDR30/rolandddr30-lt/Tom-08.wav"],UJ=["RolandDDR30/rolandddr30-sd/Snaredrum-01.wav","RolandDDR30/rolandddr30-sd/Snaredrum-02.wav","RolandDDR30/rolandddr30-sd/Snaredrum-03.wav","RolandDDR30/rolandddr30-sd/Snaredrum-04.wav","RolandDDR30/rolandddr30-sd/Snaredrum-05.wav","RolandDDR30/rolandddr30-sd/Snaredrum-06.wav","RolandDDR30/rolandddr30-sd/Snaredrum-07.wav","RolandDDR30/rolandddr30-sd/Snaredrum-08.wav"],$J=["RolandJD990/rolandjd990-bd/Bryt-kck.wav","RolandJD990/rolandjd990-bd/Butt-kck.wav","RolandJD990/rolandjd990-bd/Gate-kck.wav","RolandJD990/rolandjd990-bd/Indstr-k.wav","RolandJD990/rolandjd990-bd/Mach-kck.wav","RolandJD990/rolandjd990-bd/Mondo-k.wav","RolandJD990/rolandjd990-bd/Room-kck.wav","RolandJD990/rolandjd990-bd/Smash-k.wav","RolandJD990/rolandjd990-bd/Solid-k.wav","RolandJD990/rolandjd990-bd/Tekno-k.wav"],GJ=["RolandJD990/rolandjd990-cb/Cowbell.wav"],qJ=["RolandJD990/rolandjd990-cp/Dance-cl.wav"],QJ=["RolandJD990/rolandjd990-cr/Crsh-cym.wav"],VJ=["RolandJD990/rolandjd990-hh/Chh_1.wav","RolandJD990/rolandjd990-hh/Chh_2.wav","RolandJD990/rolandjd990-hh/Lite-ch1.wav","RolandJD990/rolandjd990-hh/Lite-ch2.wav"],HJ=["RolandJD990/rolandjd990-ht/Rim-tom1.wav"],zJ=["RolandJD990/rolandjd990-lt/Blast-tm.wav","RolandJD990/rolandjd990-lt/Boosh-tm.wav","RolandJD990/rolandjd990-lt/E-tom.wav","RolandJD990/rolandjd990-lt/Power_tm.wav","RolandJD990/rolandjd990-lt/Rim-tom4.wav"],WJ=["RolandJD990/rolandjd990-misc/Crystal.wav","RolandJD990/rolandjd990-misc/Digibels.wav","RolandJD990/rolandjd990-misc/Digichim.wav","RolandJD990/rolandjd990-misc/Fingbell.wav","RolandJD990/rolandjd990-misc/Gamelan.wav","RolandJD990/rolandjd990-misc/Kalimba.wav","RolandJD990/rolandjd990-misc/Marimwav.wav","RolandJD990/rolandjd990-misc/Org_bell.wav","RolandJD990/rolandjd990-misc/Plink.wav","RolandJD990/rolandjd990-misc/Plunk.wav","RolandJD990/rolandjd990-misc/Vibes.wav","RolandJD990/rolandjd990-misc/Xylo.wav"],XJ=["RolandJD990/rolandjd990-mt/Rim-tom2.wav","RolandJD990/rolandjd990-mt/Rim-tom3.wav"],KJ=["RolandJD990/rolandjd990-oh/Lite-ohh.wav","RolandJD990/rolandjd990-oh/Ohh.wav"],ZJ=["RolandJD990/rolandjd990-perc/Agogo_bl.wav","RolandJD990/rolandjd990-perc/Bottlhit.wav","RolandJD990/rolandjd990-perc/Rattles.wav","RolandJD990/rolandjd990-perc/Sm_metal.wav","RolandJD990/rolandjd990-perc/Snaps.wav","RolandJD990/rolandjd990-perc/Woodcrak.wav"],jJ=["RolandJD990/rolandjd990-rd/Ride_cym.wav"],JJ=["RolandJD990/rolandjd990-sd/90's-sd.wav","RolandJD990/rolandjd990-sd/Attack_s.wav","RolandJD990/rolandjd990-sd/Bigshots.wav","RolandJD990/rolandjd990-sd/Combo-sd.wav","RolandJD990/rolandjd990-sd/Dance-s1.wav","RolandJD990/rolandjd990-sd/Dance-s2.wav","RolandJD990/rolandjd990-sd/Disco-sd.wav","RolandJD990/rolandjd990-sd/Hard-sd.wav","RolandJD990/rolandjd990-sd/Hiphop-s.wav","RolandJD990/rolandjd990-sd/House-sd.wav","RolandJD990/rolandjd990-sd/Power_sd.wav","RolandJD990/rolandjd990-sd/Rap-sd.wav","RolandJD990/rolandjd990-sd/Splat-sd.wav","RolandJD990/rolandjd990-sd/Swing-sd.wav","RolandJD990/rolandjd990-sd/Video-sd.wav"],eee=["RolandJD990/rolandjd990-tb/Tambourn.wav"],tee=["RolandMC202/rolandmc202-bd/Bassdrum-01.wav","RolandMC202/rolandmc202-bd/Bassdrum-02.wav","RolandMC202/rolandmc202-bd/Bassdrum-03.wav","RolandMC202/rolandmc202-bd/Bassdrum-04.wav","RolandMC202/rolandmc202-bd/Bassdrum-05.wav"],nee=["RolandMC202/rolandmc202-ht/Tom H-02.wav","RolandMC202/rolandmc202-ht/Tom H-03.wav","RolandMC202/rolandmc202-ht/Tom H-04.wav"],ree=["RolandMC202/rolandmc202-perc/Click.wav"],aee=["RolandMC303/rolandmc303-bd/606bd1.wav","RolandMC303/rolandmc303-bd/606bd2.wav","RolandMC303/rolandmc303-bd/606bd3.wav","RolandMC303/rolandmc303-bd/Afrofeet.wav","RolandMC303/rolandmc303-bd/Blipbd.wav","RolandMC303/rolandmc303-bd/Cavebd.wav","RolandMC303/rolandmc303-bd/Cavebd2.wav","RolandMC303/rolandmc303-bd/Distbd1.wav","RolandMC303/rolandmc303-bd/Distbd2.wav","RolandMC303/rolandmc303-bd/Distbd3.wav","RolandMC303/rolandmc303-bd/Drybd1.wav","RolandMC303/rolandmc303-bd/Drybd2.wav","RolandMC303/rolandmc303-bd/Drybd3.wav","RolandMC303/rolandmc303-bd/Elecbd.wav","RolandMC303/rolandmc303-bd/Jnglebd2.wav","RolandMC303/rolandmc303-bd/Junglebd.wav"],iee=["RolandMC303/rolandmc303-cb/78cowbel.wav","RolandMC303/rolandmc303-cb/Cowbell.wav"],see=["RolandMC303/rolandmc303-cp/707clap.wav","RolandMC303/rolandmc303-cp/Hardclap.wav","RolandMC303/rolandmc303-cp/Hc2clap.wav","RolandMC303/rolandmc303-cp/Hipclap1.wav","RolandMC303/rolandmc303-cp/Rapclap1.wav","RolandMC303/rolandmc303-cp/Rapclap2.wav","RolandMC303/rolandmc303-cp/Realclap.wav","RolandMC303/rolandmc303-cp/Shakecla.wav"],oee=["RolandMC303/rolandmc303-fx/Hrtbeat.wav","RolandMC303/rolandmc303-fx/Whitnoiz.wav"],lee=["RolandMC303/rolandmc303-hh/606ch.wav","RolandMC303/rolandmc303-hh/707ch.wav","RolandMC303/rolandmc303-hh/78ch.wav","RolandMC303/rolandmc303-hh/Realch1.wav","RolandMC303/rolandmc303-hh/Realch2.wav","RolandMC303/rolandmc303-hh/Roomch.wav"],cee=["RolandMC303/rolandmc303-ht/78hitom.wav","RolandMC303/rolandmc303-ht/Achitom1.wav","RolandMC303/rolandmc303-ht/Achitom2.wav","RolandMC303/rolandmc303-ht/Lechito1.wav","RolandMC303/rolandmc303-ht/Lechito2.wav"],uee=["RolandMC303/rolandmc303-lt/78lotom.wav","RolandMC303/rolandmc303-lt/Aclotom1.wav","RolandMC303/rolandmc303-lt/Aclotom2.wav","RolandMC303/rolandmc303-lt/Lecloto2.wav","RolandMC303/rolandmc303-lt/Losyntht.wav"],dee=["RolandMC303/rolandmc303-misc/Asiangon.wav","RolandMC303/rolandmc303-misc/Fnkygost.wav","RolandMC303/rolandmc303-misc/Fxsd1.wav","RolandMC303/rolandmc303-misc/Fxsd2.wav","RolandMC303/rolandmc303-misc/Mgblip1.wav","RolandMC303/rolandmc303-misc/Mutecuic.wav","RolandMC303/rolandmc303-misc/Opencuic.wav","RolandMC303/rolandmc303-misc/Slap.wav"],mee=["RolandMC303/rolandmc303-mt/78midtom.wav","RolandMC303/rolandmc303-mt/Acmidtm2.wav","RolandMC303/rolandmc303-mt/Acmidtom.wav","RolandMC303/rolandmc303-mt/Lecmidt1.wav","RolandMC303/rolandmc303-mt/Lecmidt2.wav","RolandMC303/rolandmc303-mt/Midsynth.wav"],hee=["RolandMC303/rolandmc303-oh/707oh.wav","RolandMC303/rolandmc303-oh/78oh.wav","RolandMC303/rolandmc303-oh/Realoh1.wav","RolandMC303/rolandmc303-oh/Realoh2.wav","RolandMC303/rolandmc303-oh/Roomoh.wav"],pee=["RolandMC303/rolandmc303-perc/78guiro.wav","RolandMC303/rolandmc303-perc/78metalb.wav","RolandMC303/rolandmc303-perc/Bamboosd.wav","RolandMC303/rolandmc303-perc/Bamboost.wav","RolandMC303/rolandmc303-perc/Brushswi.wav","RolandMC303/rolandmc303-perc/Claves.wav","RolandMC303/rolandmc303-perc/Elechibo.wav","RolandMC303/rolandmc303-perc/Eleclobo.wav","RolandMC303/rolandmc303-perc/Elecloto.wav","RolandMC303/rolandmc303-perc/Fingersn.wav","RolandMC303/rolandmc303-perc/Hiagogo.wav","RolandMC303/rolandmc303-perc/Hibamboo.wav","RolandMC303/rolandmc303-perc/Hibongoo.wav","RolandMC303/rolandmc303-perc/Hicongao.wav","RolandMC303/rolandmc303-perc/Hicongas.wav","RolandMC303/rolandmc303-perc/Hihyoshi.wav","RolandMC303/rolandmc303-perc/Hisyntht.wav","RolandMC303/rolandmc303-perc/Hitimbal.wav","RolandMC303/rolandmc303-perc/Hiwoodbl.wav","RolandMC303/rolandmc303-perc/Loagogo.wav","RolandMC303/rolandmc303-perc/Lobamboo.wav","RolandMC303/rolandmc303-perc/Lobongoo.wav","RolandMC303/rolandmc303-perc/Locongao.wav","RolandMC303/rolandmc303-perc/Lohyoshi.wav","RolandMC303/rolandmc303-perc/Longguir.wav","RolandMC303/rolandmc303-perc/Longwhis.wav","RolandMC303/rolandmc303-perc/Lotimbal.wav","RolandMC303/rolandmc303-perc/Lowoodbl.wav","RolandMC303/rolandmc303-perc/Mutepand.wav","RolandMC303/rolandmc303-perc/Mutesurd.wav","RolandMC303/rolandmc303-perc/Mutetria.wav","RolandMC303/rolandmc303-perc/Openpand.wav","RolandMC303/rolandmc303-perc/Opensurd.wav","RolandMC303/rolandmc303-perc/Opentria.wav","RolandMC303/rolandmc303-perc/Shortgui.wav","RolandMC303/rolandmc303-perc/Shortwhi.wav","RolandMC303/rolandmc303-perc/Tablabay.wav","RolandMC303/rolandmc303-perc/Udo.wav","RolandMC303/rolandmc303-perc/Vibrasla.wav"],fee=["RolandMC303/rolandmc303-rd/Ridecym2.wav","RolandMC303/rolandmc303-rd/Ridecymb.wav"],gee=["RolandMC303/rolandmc303-rim/Rimsd1.wav","RolandMC303/rolandmc303-rim/Rimsd2.wav","RolandMC303/rolandmc303-rim/Rimshot.wav","RolandMC303/rolandmc303-rim/Tinyrim2.wav","RolandMC303/rolandmc303-rim/Tinyrim3.wav","RolandMC303/rolandmc303-rim/Tinyrim4.wav"],_ee=["RolandMC303/rolandmc303-sd/606sd1.wav","RolandMC303/rolandmc303-sd/606sd2.wav","RolandMC303/rolandmc303-sd/606sd3.wav","RolandMC303/rolandmc303-sd/78sd.wav","RolandMC303/rolandmc303-sd/80809sd.wav","RolandMC303/rolandmc303-sd/Brushslp.wav","RolandMC303/rolandmc303-sd/Brushtap.wav","RolandMC303/rolandmc303-sd/Clipsd1.wav","RolandMC303/rolandmc303-sd/Clipsd2.wav","RolandMC303/rolandmc303-sd/Drysd1.wav","RolandMC303/rolandmc303-sd/Drysd2.wav","RolandMC303/rolandmc303-sd/Elecsd1.wav","RolandMC303/rolandmc303-sd/Funkysd1.wav","RolandMC303/rolandmc303-sd/Funkysd2.wav","RolandMC303/rolandmc303-sd/Hardsd1.wav","RolandMC303/rolandmc303-sd/Hypersd1.wav","RolandMC303/rolandmc303-sd/Hypersd2.wav","RolandMC303/rolandmc303-sd/Jnglesd1.wav","RolandMC303/rolandmc303-sd/Jnglesd2.wav","RolandMC303/rolandmc303-sd/Jnglesd3.wav","RolandMC303/rolandmc303-sd/Jnglesd4.wav","RolandMC303/rolandmc303-sd/Midbambo.wav","RolandMC303/rolandmc303-sd/Rapsd.wav","RolandMC303/rolandmc303-sd/Tambsd1.wav","RolandMC303/rolandmc303-sd/Tightsd.wav","RolandMC303/rolandmc303-sd/Tinysd.wav"],bee=["RolandMC303/rolandmc303-sh/626shake.wav","RolandMC303/rolandmc303-sh/Cabasado.wav","RolandMC303/rolandmc303-sh/Cabasaup.wav","RolandMC303/rolandmc303-sh/Maracas.wav","RolandMC303/rolandmc303-sh/Realph1.wav","RolandMC303/rolandmc303-sh/Realph2.wav","RolandMC303/rolandmc303-sh/Shaker.wav"],See=["RolandMC303/rolandmc303-tb/78tamb.wav","RolandMC303/rolandmc303-tb/Hittamb.wav","RolandMC303/rolandmc303-tb/Jngletam.wav","RolandMC303/rolandmc303-tb/Shaketam.wav","RolandMC303/rolandmc303-tb/Tambouri.wav"],Oee=["RolandMT32/rolandmt32-bd/Bassdrum.wav"],vee=["RolandMT32/rolandmt32-cb/Cowbell.wav"],Eee=["RolandMT32/rolandmt32-cp/Clap.wav"],Tee=["RolandMT32/rolandmt32-cr/Crash.wav"],yee=["RolandMT32/rolandmt32-hh/Hat Closed.wav"],Ree=["RolandMT32/rolandmt32-ht/Tom H.wav"],Cee=["RolandMT32/rolandmt32-lt/Tom L.wav"],Aee=["RolandMT32/rolandmt32-mt/Tom M.wav"],wee=["RolandMT32/rolandmt32-oh/Hat Open-01.wav","RolandMT32/rolandmt32-oh/Hat Open-02.wav"],Iee=["RolandMT32/rolandmt32-perc/Agogo H.wav","RolandMT32/rolandmt32-perc/Agogo L.wav","RolandMT32/rolandmt32-perc/Bongo H.wav","RolandMT32/rolandmt32-perc/Bongo L.wav","RolandMT32/rolandmt32-perc/Claves.wav","RolandMT32/rolandmt32-perc/Conga H.wav","RolandMT32/rolandmt32-perc/Conga L.wav","RolandMT32/rolandmt32-perc/Conga Muted H.wav","RolandMT32/rolandmt32-perc/Quijada.wav","RolandMT32/rolandmt32-perc/Timbale H.wav","RolandMT32/rolandmt32-perc/Timbale L.wav","RolandMT32/rolandmt32-perc/Whistle Short.wav","RolandMT32/rolandmt32-perc/Whistle.wav"],Nee=["RolandMT32/rolandmt32-rd/Ride.wav"],Dee=["RolandMT32/rolandmt32-rim/RimShot.wav"],xee=["RolandMT32/rolandmt32-sd/Snaredrum-01.wav","RolandMT32/rolandmt32-sd/Snaredrum-02.wav"],kee=["RolandMT32/rolandmt32-sh/Cabasa.wav","RolandMT32/rolandmt32-sh/Maracas.wav"],Mee=["RolandMT32/rolandmt32-tb/Tambourine.wav"],Lee=["RolandR8/rolandr8-bd/Bassdrum-01.wav","RolandR8/rolandr8-bd/Bassdrum-02.wav","RolandR8/rolandr8-bd/Bassdrum-03.wav","RolandR8/rolandr8-bd/Bassdrum-04.wav","RolandR8/rolandr8-bd/Bassdrum-05.wav","RolandR8/rolandr8-bd/Bassdrum-06.wav","RolandR8/rolandr8-bd/Bassdrum-07.wav"],Pee=["RolandR8/rolandr8-cb/Cowbell.wav"],Bee=["RolandR8/rolandr8-cp/Clap.wav"],Yee=["RolandR8/rolandr8-cr/Crash.wav"],Fee=["RolandR8/rolandr8-hh/Hat Closed.wav","RolandR8/rolandr8-hh/Hat Pedal.wav"],Uee=["RolandR8/rolandr8-ht/Tom H-01.wav","RolandR8/rolandr8-ht/Tom H-02.wav","RolandR8/rolandr8-ht/Tom H-03.wav","RolandR8/rolandr8-ht/Tom H-04.wav"],$ee=["RolandR8/rolandr8-lt/Tom L-01.wav","RolandR8/rolandr8-lt/Tom L-02.wav","RolandR8/rolandr8-lt/Tom L-03.wav","RolandR8/rolandr8-lt/Tom L-04.wav"],Gee=["RolandR8/rolandr8-mt/Tom M-01.wav","RolandR8/rolandr8-mt/Tom M-02.wav","RolandR8/rolandr8-mt/Tom M-03.wav","RolandR8/rolandr8-mt/Tom M-04.wav"],qee=["RolandR8/rolandr8-oh/Hat Open.wav"],Qee=["RolandR8/rolandr8-perc/Bell-01.wav","RolandR8/rolandr8-perc/Bell-02.wav","RolandR8/rolandr8-perc/Bongo H.wav","RolandR8/rolandr8-perc/Bongo L.wav","RolandR8/rolandr8-perc/Conga.wav","RolandR8/rolandr8-perc/Metal.wav","RolandR8/rolandr8-perc/Whistle.wav","RolandR8/rolandr8-perc/Wood Block.wav"],Vee=["RolandR8/rolandr8-rd/Ride-01.wav","RolandR8/rolandr8-rd/Ride-02.wav"],Hee=["RolandR8/rolandr8-rim/Rimshot1.wav","RolandR8/rolandr8-rim/Rimshot2.wav"],zee=["RolandR8/rolandr8-sd/Snaredrum-01.wav","RolandR8/rolandr8-sd/Snaredrum-02.wav","RolandR8/rolandr8-sd/Snaredrum-03.wav","RolandR8/rolandr8-sd/Snaredrum-04.wav","RolandR8/rolandr8-sd/Snaredrum-05.wav","RolandR8/rolandr8-sd/Snaredrum-06.wav","RolandR8/rolandr8-sd/Snaredrum-07.wav","RolandR8/rolandr8-sd/Snaredrum-08.wav","RolandR8/rolandr8-sd/Snaredrum-09.wav","RolandR8/rolandr8-sd/Snaredrum-10.wav","RolandR8/rolandr8-sd/Snaredrum-11.wav","RolandR8/rolandr8-sd/Snaredrum-12.wav"],Wee=["RolandR8/rolandr8-sh/Cabasa1.wav","RolandR8/rolandr8-sh/Cabasa2.wav"],Xee=["RolandR8/rolandr8-tb/Tambourine.wav"],Kee=["RolandS50/rolands50-bd/Bassdrum-01.wav","RolandS50/rolands50-bd/Bassdrum-02.wav","RolandS50/rolands50-bd/Bassdrum-03.wav","RolandS50/rolands50-bd/Bassdrum-04.wav"],Zee=["RolandS50/rolands50-cb/Cowbell.wav"],jee=["RolandS50/rolands50-cp/Clap.wav"],Jee=["RolandS50/rolands50-cr/China.wav","RolandS50/rolands50-cr/Crash.wav"],ete=["RolandS50/rolands50-ht/Tom-01.wav"],tte=["RolandS50/rolands50-lt/Tom-03.wav","RolandS50/rolands50-lt/Tom-04.wav"],nte=["RolandS50/rolands50-misc/Cuica-01.wav","RolandS50/rolands50-misc/Cuica-02.wav","RolandS50/rolands50-misc/Cuical-01.wav","RolandS50/rolands50-misc/Cuical-02.wav","RolandS50/rolands50-misc/Gong.wav","RolandS50/rolands50-misc/Tria-2.wav"],rte=["RolandS50/rolands50-mt/Tom-02.wav"],ate=["RolandS50/rolands50-oh/Hihat.wav"],ite=["RolandS50/rolands50-perc/Agogo-01.wav","RolandS50/rolands50-perc/Agogo-02.wav","RolandS50/rolands50-perc/Bongo.wav","RolandS50/rolands50-perc/Claves-01.wav","RolandS50/rolands50-perc/Claves-02.wav","RolandS50/rolands50-perc/Conga-01.wav","RolandS50/rolands50-perc/Conga-02.wav","RolandS50/rolands50-perc/Conga-03.wav","RolandS50/rolands50-perc/Qijada.wav","RolandS50/rolands50-perc/Timbale H.wav","RolandS50/rolands50-perc/Timbale L.wav","RolandS50/rolands50-perc/Tria-1.wav","RolandS50/rolands50-perc/Wblk.wav","RolandS50/rolands50-perc/Whstl.wav"],ste=["RolandS50/rolands50-rd/Ride.wav"],ote=["RolandS50/rolands50-sd/Snaredrum-01.wav","RolandS50/rolands50-sd/Snaredrum-02.wav","RolandS50/rolands50-sd/Snaredrum-03.wav"],lte=["RolandS50/rolands50-sh/Cabasa-01.wav","RolandS50/rolands50-sh/Cabasa-02.wav","RolandS50/rolands50-sh/Maracas-01.wav","RolandS50/rolands50-sh/Maracas-02.wav"],cte=["RolandS50/rolands50-tb/Tambourine-01.wav","RolandS50/rolands50-tb/Tambourine-02.wav"],ute=["RolandSH09/rolandsh09-bd/Bassdrum-01.wav","RolandSH09/rolandsh09-bd/Bassdrum-02.wav","RolandSH09/rolandsh09-bd/Bassdrum-03.wav","RolandSH09/rolandsh09-bd/Bassdrum-04.wav","RolandSH09/rolandsh09-bd/Bassdrum-05.wav","RolandSH09/rolandsh09-bd/Bassdrum-06.wav","RolandSH09/rolandsh09-bd/Bassdrum-07.wav","RolandSH09/rolandsh09-bd/Bassdrum-08.wav","RolandSH09/rolandsh09-bd/Bassdrum-09.wav","RolandSH09/rolandsh09-bd/Bassdrum-10.wav","RolandSH09/rolandsh09-bd/Bassdrum-11.wav","RolandSH09/rolandsh09-bd/Bassdrum-12.wav","RolandSH09/rolandsh09-bd/Bassdrum-13.wav","RolandSH09/rolandsh09-bd/Bassdrum-14.wav","RolandSH09/rolandsh09-bd/Bassdrum-15.wav","RolandSH09/rolandsh09-bd/Bassdrum-16.wav","RolandSH09/rolandsh09-bd/Bassdrum-17.wav","RolandSH09/rolandsh09-bd/Bassdrum-18.wav","RolandSH09/rolandsh09-bd/Bassdrum-19.wav","RolandSH09/rolandsh09-bd/Bassdrum-20.wav","RolandSH09/rolandsh09-bd/Bassdrum-21.wav","RolandSH09/rolandsh09-bd/Bassdrum-22.wav","RolandSH09/rolandsh09-bd/Bassdrum-23.wav","RolandSH09/rolandsh09-bd/Bassdrum-24.wav","RolandSH09/rolandsh09-bd/Bassdrum-25.wav","RolandSH09/rolandsh09-bd/Bassdrum-26.wav","RolandSH09/rolandsh09-bd/Bassdrum-27.wav","RolandSH09/rolandsh09-bd/Bassdrum-28.wav","RolandSH09/rolandsh09-bd/Bassdrum-29.wav","RolandSH09/rolandsh09-bd/Bassdrum-30.wav","RolandSH09/rolandsh09-bd/Bassdrum-31.wav","RolandSH09/rolandsh09-bd/Bassdrum-32.wav","RolandSH09/rolandsh09-bd/Bassdrum-33.wav","RolandSH09/rolandsh09-bd/Bassdrum-34.wav","RolandSH09/rolandsh09-bd/Bassdrum-35.wav","RolandSH09/rolandsh09-bd/Bassdrum-36.wav","RolandSH09/rolandsh09-bd/Bassdrum-37.wav","RolandSH09/rolandsh09-bd/Bassdrum-38.wav","RolandSH09/rolandsh09-bd/Bassdrum-39.wav","RolandSH09/rolandsh09-bd/Bassdrum-40.wav","RolandSH09/rolandsh09-bd/Bassdrum-41.wav","RolandSH09/rolandsh09-bd/Bassdrum-42.wav","RolandSH09/rolandsh09-bd/Bassdrum-43.wav"],dte=["RolandSystem100/rolandsystem100-bd/Bassdrum-01.wav","RolandSystem100/rolandsystem100-bd/Bassdrum-02.wav","RolandSystem100/rolandsystem100-bd/Bassdrum-03.wav","RolandSystem100/rolandsystem100-bd/Bassdrum-04.wav","RolandSystem100/rolandsystem100-bd/Bassdrum-05.wav","RolandSystem100/rolandsystem100-bd/Bassdrum-06.wav","RolandSystem100/rolandsystem100-bd/Bassdrum-07.wav","RolandSystem100/rolandsystem100-bd/Bassdrum-08.wav","RolandSystem100/rolandsystem100-bd/Bassdrum-09.wav","RolandSystem100/rolandsystem100-bd/Bassdrum-10.wav","RolandSystem100/rolandsystem100-bd/Bassdrum-11.wav","RolandSystem100/rolandsystem100-bd/Bassdrum-12.wav","RolandSystem100/rolandsystem100-bd/Bassdrum-13.wav","RolandSystem100/rolandsystem100-bd/Bassdrum-14.wav","RolandSystem100/rolandsystem100-bd/Bassdrum-15.wav"],mte=["RolandSystem100/rolandsystem100-hh/Hat Closed-01.wav","RolandSystem100/rolandsystem100-hh/Hat Closed-02.wav"],hte=["RolandSystem100/rolandsystem100-misc/Tock.wav","RolandSystem100/rolandsystem100-misc/Triangle.wav"],pte=["RolandSystem100/rolandsystem100-oh/Hat Open-01.wav","RolandSystem100/rolandsystem100-oh/Hat Open-02.wav","RolandSystem100/rolandsystem100-oh/Hat Open-03.wav"],fte=["RolandSystem100/rolandsystem100-perc/Bell.wav","RolandSystem100/rolandsystem100-perc/Click-01.wav","RolandSystem100/rolandsystem100-perc/Click-02.wav","RolandSystem100/rolandsystem100-perc/Click-03.wav","RolandSystem100/rolandsystem100-perc/Click-04.wav","RolandSystem100/rolandsystem100-perc/Click-05.wav","RolandSystem100/rolandsystem100-perc/Click-06.wav","RolandSystem100/rolandsystem100-perc/Pling-01.wav","RolandSystem100/rolandsystem100-perc/Pling-02.wav","RolandSystem100/rolandsystem100-perc/Pling-03.wav","RolandSystem100/rolandsystem100-perc/Plopp-01.wav","RolandSystem100/rolandsystem100-perc/Plopp-02.wav","RolandSystem100/rolandsystem100-perc/Plopp-03.wav","RolandSystem100/rolandsystem100-perc/Plopp-04.wav","RolandSystem100/rolandsystem100-perc/Plopp-05.wav","RolandSystem100/rolandsystem100-perc/Plopp-06.wav","RolandSystem100/rolandsystem100-perc/Plopp-07.wav","RolandSystem100/rolandsystem100-perc/Plopp-08.wav","RolandSystem100/rolandsystem100-perc/Plopp-09.wav"],gte=["RolandSystem100/rolandsystem100-sd/Snaredrum-01.wav","RolandSystem100/rolandsystem100-sd/Snaredrum-02.wav","RolandSystem100/rolandsystem100-sd/Snaredrum-03.wav","RolandSystem100/rolandsystem100-sd/Snaredrum-04.wav","RolandSystem100/rolandsystem100-sd/Snaredrum-05.wav","RolandSystem100/rolandsystem100-sd/Snaredrum-06.wav","RolandSystem100/rolandsystem100-sd/Snaredrum-07.wav","RolandSystem100/rolandsystem100-sd/Snaredrum-08.wav","RolandSystem100/rolandsystem100-sd/Snaredrum-09.wav","RolandSystem100/rolandsystem100-sd/Snaredrum-10.wav","RolandSystem100/rolandsystem100-sd/Snaredrum-11.wav","RolandSystem100/rolandsystem100-sd/Snaredrum-12.wav","RolandSystem100/rolandsystem100-sd/Snaredrum-14.wav","RolandSystem100/rolandsystem100-sd/Snaredrum-15.wav","RolandSystem100/rolandsystem100-sd/Snaredrum-16.wav","RolandSystem100/rolandsystem100-sd/Snaredrum-17.wav","RolandSystem100/rolandsystem100-sd/Snaredrum-18.wav","RolandSystem100/rolandsystem100-sd/Snaredrum-19.wav","RolandSystem100/rolandsystem100-sd/Snaredrum-20.wav","RolandSystem100/rolandsystem100-sd/Snaredrum-21.wav","RolandSystem100/rolandsystem100-sd/Snaredrum-22.wav"],_te=["RolandTR505/rolandtr505-bd/Bassdrum.wav"],bte=["RolandTR505/rolandtr505-cb/Cowbell H.wav","RolandTR505/rolandtr505-cb/Cowbell L.wav"],Ste=["RolandTR505/rolandtr505-cp/Clap.wav"],Ote=["RolandTR505/rolandtr505-cr/Crash.wav"],vte=["RolandTR505/rolandtr505-hh/Hat Closed.wav"],Ete=["RolandTR505/rolandtr505-ht/Tom H.wav"],Tte=["RolandTR505/rolandtr505-lt/Tom L.wav"],yte=["RolandTR505/rolandtr505-mt/Tom M.wav"],Rte=["RolandTR505/rolandtr505-oh/Hat Open.wav"],Cte=["RolandTR505/rolandtr505-perc/Conga H.wav","RolandTR505/rolandtr505-perc/Conga L.wav","RolandTR505/rolandtr505-perc/Timbale.wav"],Ate=["RolandTR505/rolandtr505-rd/Ride.wav"],wte=["RolandTR505/rolandtr505-rim/Rimshot.wav"],Ite=["RolandTR505/rolandtr505-sd/Snaredrum.wav"],Nte=["RolandTR606/rolandtr606-bd/Bassdrum.wav"],Dte=["RolandTR606/rolandtr606-cr/Cymbal.wav"],xte=["RolandTR606/rolandtr606-hh/Hat Closed.wav"],kte=["RolandTR606/rolandtr606-ht/Tom H.wav"],Mte=["RolandTR606/rolandtr606-lt/Tom L.wav"],Lte=["RolandTR606/rolandtr606-oh/Hat Open.wav"],Pte=["RolandTR606/rolandtr606-sd/Snaredrum.wav"],Bte=["RolandTR626/rolandtr626-bd/Bassdrum-01.wav","RolandTR626/rolandtr626-bd/Bassdrum-02.wav"],Yte=["RolandTR626/rolandtr626-cb/Cowbell.wav"],Fte=["RolandTR626/rolandtr626-cp/Clap.wav"],Ute=["RolandTR626/rolandtr626-cr/Crash.wav","RolandTR626/rolandtr626-cr/zChina.wav"],$te=["RolandTR626/rolandtr626-hh/Hat Closed.wav"],Gte=["RolandTR626/rolandtr626-ht/Tom H-01.wav","RolandTR626/rolandtr626-ht/Tom H-02.wav"],qte=["RolandTR626/rolandtr626-lt/Tom L-01.wav","RolandTR626/rolandtr626-lt/Tom L-02.wav"],Qte=["RolandTR626/rolandtr626-mt/Tom M-01.wav","RolandTR626/rolandtr626-mt/Tom M-02.wav"],Vte=["RolandTR626/rolandtr626-oh/Hat Open.wav"],Hte=["RolandTR626/rolandtr626-perc/Agogo H.wav","RolandTR626/rolandtr626-perc/Agogo L.wav","RolandTR626/rolandtr626-perc/Clave.wav","RolandTR626/rolandtr626-perc/Conga H.wav","RolandTR626/rolandtr626-perc/Conga L.wav","RolandTR626/rolandtr626-perc/Conga M.wav","RolandTR626/rolandtr626-perc/Timbale H.wav","RolandTR626/rolandtr626-perc/Timbale L.wav"],zte=["RolandTR626/rolandtr626-rd/Ride-01.wav","RolandTR626/rolandtr626-rd/Ride-02.wav"],Wte=["RolandTR626/rolandtr626-rim/Rimshot.wav"],Xte=["RolandTR626/rolandtr626-sd/Snaredrum-01.wav","RolandTR626/rolandtr626-sd/Snaredrum-02.wav","RolandTR626/rolandtr626-sd/Snaredrum-03.wav"],Kte=["RolandTR626/rolandtr626-sh/Shaker.wav"],Zte=["RolandTR626/rolandtr626-tb/Tambourine.wav"],jte=["RolandTR707/rolandtr707-bd/Bassdrum-01.wav","RolandTR707/rolandtr707-bd/Bassdrum-02.wav"],Jte=["RolandTR707/rolandtr707-cb/Cowbell.wav"],ene=["RolandTR707/rolandtr707-cp/Clap.wav"],tne=["RolandTR707/rolandtr707-cr/Crash.wav"],nne=["RolandTR707/rolandtr707-hh/Hat Closed.wav"],rne=["RolandTR707/rolandtr707-ht/Tom H.wav"],ane=["RolandTR707/rolandtr707-lt/Tom L.wav"],ine=["RolandTR707/rolandtr707-mt/Tom M.wav"],sne=["RolandTR707/rolandtr707-oh/Hat Open.wav"],one=["RolandTR707/rolandtr707-rim/Rimshot.wav"],lne=["RolandTR707/rolandtr707-sd/Snaredrum-01.wav","RolandTR707/rolandtr707-sd/Snaredrum-02.wav"],cne=["RolandTR707/rolandtr707-tb/Tambourine.wav"],une=["RolandTR727/rolandtr727-perc/Agogo H.wav","RolandTR727/rolandtr727-perc/Agogo L.wav","RolandTR727/rolandtr727-perc/Bongo H.wav","RolandTR727/rolandtr727-perc/Bongo L.wav","RolandTR727/rolandtr727-perc/Conga L.wav","RolandTR727/rolandtr727-perc/Quijada.wav","RolandTR727/rolandtr727-perc/Star-chimes.wav","RolandTR727/rolandtr727-perc/Timbale H.wav","RolandTR727/rolandtr727-perc/Timbale L.wav","RolandTR727/rolandtr727-perc/Whistle.wav"],dne=["RolandTR727/rolandtr727-sh/Cabasa.wav","RolandTR727/rolandtr727-sh/Maracas.wav"],mne=["RolandTR808/rolandtr808-bd/BD0000.WAV","RolandTR808/rolandtr808-bd/BD0010.WAV","RolandTR808/rolandtr808-bd/BD0025.WAV","RolandTR808/rolandtr808-bd/BD0050.WAV","RolandTR808/rolandtr808-bd/BD0075.WAV","RolandTR808/rolandtr808-bd/BD1000.WAV","RolandTR808/rolandtr808-bd/BD1010.WAV","RolandTR808/rolandtr808-bd/BD1025.WAV","RolandTR808/rolandtr808-bd/BD1050.WAV","RolandTR808/rolandtr808-bd/BD1075.WAV","RolandTR808/rolandtr808-bd/BD2500.WAV","RolandTR808/rolandtr808-bd/BD2510.WAV","RolandTR808/rolandtr808-bd/BD2525.WAV","RolandTR808/rolandtr808-bd/BD2550.WAV","RolandTR808/rolandtr808-bd/BD2575.WAV","RolandTR808/rolandtr808-bd/BD5000.WAV","RolandTR808/rolandtr808-bd/BD5010.WAV","RolandTR808/rolandtr808-bd/BD5025.WAV","RolandTR808/rolandtr808-bd/BD5050.WAV","RolandTR808/rolandtr808-bd/BD5075.WAV","RolandTR808/rolandtr808-bd/BD7500.WAV","RolandTR808/rolandtr808-bd/BD7510.WAV","RolandTR808/rolandtr808-bd/BD7525.WAV","RolandTR808/rolandtr808-bd/BD7550.WAV","RolandTR808/rolandtr808-bd/BD7575.WAV"],hne=["RolandTR808/rolandtr808-cb/CB.WAV","RolandTR808/rolandtr808-cb/Cowbell.wav"],pne=["RolandTR808/rolandtr808-cp/cp0.wav","RolandTR808/rolandtr808-cp/cp1.wav","RolandTR808/rolandtr808-cp/cp2.wav","RolandTR808/rolandtr808-cp/cp3.wav","RolandTR808/rolandtr808-cp/cp4.WAV"],fne=["RolandTR808/rolandtr808-cr/CY0000.WAV","RolandTR808/rolandtr808-cr/CY0010.WAV","RolandTR808/rolandtr808-cr/CY0025.WAV","RolandTR808/rolandtr808-cr/CY0050.WAV","RolandTR808/rolandtr808-cr/CY0075.WAV","RolandTR808/rolandtr808-cr/CY1000.WAV","RolandTR808/rolandtr808-cr/CY1010.WAV","RolandTR808/rolandtr808-cr/CY1025.WAV","RolandTR808/rolandtr808-cr/CY1050.WAV","RolandTR808/rolandtr808-cr/CY1075.WAV","RolandTR808/rolandtr808-cr/CY2500.WAV","RolandTR808/rolandtr808-cr/CY2510.WAV","RolandTR808/rolandtr808-cr/CY2525.WAV","RolandTR808/rolandtr808-cr/CY2550.WAV","RolandTR808/rolandtr808-cr/CY2575.WAV","RolandTR808/rolandtr808-cr/CY5000.WAV","RolandTR808/rolandtr808-cr/CY5010.WAV","RolandTR808/rolandtr808-cr/CY5025.WAV","RolandTR808/rolandtr808-cr/CY5050.WAV","RolandTR808/rolandtr808-cr/CY5075.WAV","RolandTR808/rolandtr808-cr/CY7500.WAV","RolandTR808/rolandtr808-cr/CY7510.WAV","RolandTR808/rolandtr808-cr/CY7525.WAV","RolandTR808/rolandtr808-cr/CY7550.WAV","RolandTR808/rolandtr808-cr/CY7575.WAV"],gne=["RolandTR808/rolandtr808-hh/CH.WAV"],_ne=["RolandTR808/rolandtr808-ht/HT00.WAV","RolandTR808/rolandtr808-ht/HT10.WAV","RolandTR808/rolandtr808-ht/HT25.WAV","RolandTR808/rolandtr808-ht/HT50.WAV","RolandTR808/rolandtr808-ht/HT75.WAV"],bne=["RolandTR808/rolandtr808-lt/LT00.WAV","RolandTR808/rolandtr808-lt/LT10.WAV","RolandTR808/rolandtr808-lt/LT25.WAV","RolandTR808/rolandtr808-lt/LT50.WAV","RolandTR808/rolandtr808-lt/LT75.WAV"],Sne=["RolandTR808/rolandtr808-mt/MT00.WAV","RolandTR808/rolandtr808-mt/MT10.WAV","RolandTR808/rolandtr808-mt/MT25.WAV","RolandTR808/rolandtr808-mt/MT50.WAV","RolandTR808/rolandtr808-mt/MT75.WAV"],One=["RolandTR808/rolandtr808-oh/OH00.WAV","RolandTR808/rolandtr808-oh/OH10.WAV","RolandTR808/rolandtr808-oh/OH25.WAV","RolandTR808/rolandtr808-oh/OH50.WAV","RolandTR808/rolandtr808-oh/OH75.WAV"],vne=["RolandTR808/rolandtr808-perc/CL.WAV","RolandTR808/rolandtr808-perc/HC00.WAV","RolandTR808/rolandtr808-perc/HC10.WAV","RolandTR808/rolandtr808-perc/HC25.WAV","RolandTR808/rolandtr808-perc/HC50.WAV","RolandTR808/rolandtr808-perc/HC75.WAV","RolandTR808/rolandtr808-perc/LC00.WAV","RolandTR808/rolandtr808-perc/LC10.WAV","RolandTR808/rolandtr808-perc/LC25.WAV","RolandTR808/rolandtr808-perc/LC50.WAV","RolandTR808/rolandtr808-perc/LC75.WAV","RolandTR808/rolandtr808-perc/MC00.WAV","RolandTR808/rolandtr808-perc/MC10.WAV","RolandTR808/rolandtr808-perc/MC25.WAV","RolandTR808/rolandtr808-perc/MC50.WAV","RolandTR808/rolandtr808-perc/MC75.WAV"],Ene=["RolandTR808/rolandtr808-rim/RS.WAV"],Tne=["RolandTR808/rolandtr808-sd/SD0000.WAV","RolandTR808/rolandtr808-sd/SD0010.WAV","RolandTR808/rolandtr808-sd/SD0025.WAV","RolandTR808/rolandtr808-sd/SD0050.WAV","RolandTR808/rolandtr808-sd/SD0075.WAV","RolandTR808/rolandtr808-sd/SD1000.WAV","RolandTR808/rolandtr808-sd/SD1010.WAV","RolandTR808/rolandtr808-sd/SD1025.WAV","RolandTR808/rolandtr808-sd/SD1050.WAV","RolandTR808/rolandtr808-sd/SD1075.WAV","RolandTR808/rolandtr808-sd/SD2500.WAV","RolandTR808/rolandtr808-sd/SD2510.WAV","RolandTR808/rolandtr808-sd/SD2525.WAV","RolandTR808/rolandtr808-sd/SD2550.WAV","RolandTR808/rolandtr808-sd/SD2575.WAV","RolandTR808/rolandtr808-sd/SD5000.WAV","RolandTR808/rolandtr808-sd/SD5010.WAV","RolandTR808/rolandtr808-sd/SD5025.WAV","RolandTR808/rolandtr808-sd/SD5050.WAV","RolandTR808/rolandtr808-sd/SD5075.WAV","RolandTR808/rolandtr808-sd/SD7500.WAV","RolandTR808/rolandtr808-sd/SD7510.WAV","RolandTR808/rolandtr808-sd/SD7525.WAV","RolandTR808/rolandtr808-sd/SD7550.WAV","RolandTR808/rolandtr808-sd/SD7575.WAV"],yne=["RolandTR808/rolandtr808-sh/Cabasa.wav","RolandTR808/rolandtr808-sh/MA.WAV"],Rne=["RolandTR909/rolandtr909-bd/Bassdrum-01.wav","RolandTR909/rolandtr909-bd/Bassdrum-02.wav","RolandTR909/rolandtr909-bd/Bassdrum-03.wav","RolandTR909/rolandtr909-bd/Bassdrum-04.wav"],Cne=["RolandTR909/rolandtr909-cp/Clap.wav","RolandTR909/rolandtr909-cp/cp01.wav","RolandTR909/rolandtr909-cp/cp02.wav","RolandTR909/rolandtr909-cp/cp03.wav","RolandTR909/rolandtr909-cp/cp04.wav"],Ane=["RolandTR909/rolandtr909-cr/Crash.wav","RolandTR909/rolandtr909-cr/cr01.wav","RolandTR909/rolandtr909-cr/cr02.wav","RolandTR909/rolandtr909-cr/cr03.wav","RolandTR909/rolandtr909-cr/cr04.wav"],wne=["RolandTR909/rolandtr909-hh/hh01.wav","RolandTR909/rolandtr909-hh/hh02.wav","RolandTR909/rolandtr909-hh/hh03.wav","RolandTR909/rolandtr909-hh/hh04.wav"],Ine=["RolandTR909/rolandtr909-ht/Tom H.wav","RolandTR909/rolandtr909-ht/ht01.wav","RolandTR909/rolandtr909-ht/ht02.wav","RolandTR909/rolandtr909-ht/ht03.wav","RolandTR909/rolandtr909-ht/ht04.wav","RolandTR909/rolandtr909-ht/ht05.wav","RolandTR909/rolandtr909-ht/ht06.wav","RolandTR909/rolandtr909-ht/ht07.wav","RolandTR909/rolandtr909-ht/ht08.wav"],Nne=["RolandTR909/rolandtr909-lt/Tom L.wav","RolandTR909/rolandtr909-lt/lt01.wav","RolandTR909/rolandtr909-lt/lt02.wav","RolandTR909/rolandtr909-lt/lt03.wav","RolandTR909/rolandtr909-lt/lt04.wav","RolandTR909/rolandtr909-lt/lt05.wav","RolandTR909/rolandtr909-lt/lt06.wav","RolandTR909/rolandtr909-lt/lt07.wav","RolandTR909/rolandtr909-lt/lt08.wav"],Dne=["RolandTR909/rolandtr909-mt/Tom M.wav","RolandTR909/rolandtr909-mt/mt01.wav","RolandTR909/rolandtr909-mt/mt02.wav","RolandTR909/rolandtr909-mt/mt03.wav","RolandTR909/rolandtr909-mt/mt04.wav","RolandTR909/rolandtr909-mt/mt05.wav","RolandTR909/rolandtr909-mt/mt06.wav","RolandTR909/rolandtr909-mt/mt07.wav","RolandTR909/rolandtr909-mt/mt08.wav"],xne=["RolandTR909/rolandtr909-oh/Hat Open.wav","RolandTR909/rolandtr909-oh/oh01.wav","RolandTR909/rolandtr909-oh/oh02.wav","RolandTR909/rolandtr909-oh/oh03.wav","RolandTR909/rolandtr909-oh/oh04.wav"],kne=["RolandTR909/rolandtr909-rd/Ride.wav","RolandTR909/rolandtr909-rd/rd01.wav","RolandTR909/rolandtr909-rd/rd02.wav","RolandTR909/rolandtr909-rd/rd03.wav","RolandTR909/rolandtr909-rd/rd04.wav"],Mne=["RolandTR909/rolandtr909-rim/Rimhot.wav","RolandTR909/rolandtr909-rim/rs01.wav","RolandTR909/rolandtr909-rim/rs02.wav"],Lne=["RolandTR909/rolandtr909-sd/naredrum.wav","RolandTR909/rolandtr909-sd/sd01.wav","RolandTR909/rolandtr909-sd/sd02.wav","RolandTR909/rolandtr909-sd/sd03.wav","RolandTR909/rolandtr909-sd/sd04.wav","RolandTR909/rolandtr909-sd/sd05.wav","RolandTR909/rolandtr909-sd/sd06.wav","RolandTR909/rolandtr909-sd/sd07.wav","RolandTR909/rolandtr909-sd/sd08.wav","RolandTR909/rolandtr909-sd/sd09.wav","RolandTR909/rolandtr909-sd/sd10.wav","RolandTR909/rolandtr909-sd/sd11.wav","RolandTR909/rolandtr909-sd/sd12.wav","RolandTR909/rolandtr909-sd/sd13.wav","RolandTR909/rolandtr909-sd/sd14.wav","RolandTR909/rolandtr909-sd/sd15.wav"],Pne=["SakataDPM48/sakatadpm48-bd/Bassdrum-01.wav","SakataDPM48/sakatadpm48-bd/Bassdrum-02.wav","SakataDPM48/sakatadpm48-bd/Bassdrum-03.wav"],Bne=["SakataDPM48/sakatadpm48-cp/Clap.wav"],Yne=["SakataDPM48/sakatadpm48-cr/Crash.wav"],Fne=["SakataDPM48/sakatadpm48-hh/Hat Closed-01.wav","SakataDPM48/sakatadpm48-hh/Hat Closed-02.wav"],Une=["SakataDPM48/sakatadpm48-ht/Tom-01.wav"],$ne=["SakataDPM48/sakatadpm48-lt/Tom-03.wav","SakataDPM48/sakatadpm48-lt/Tom-04.wav"],Gne=["SakataDPM48/sakatadpm48-mt/Tom-02.wav"],qne=["SakataDPM48/sakatadpm48-oh/Hat Open.wav"],Qne=["SakataDPM48/sakatadpm48-perc/Agogo1.wav","SakataDPM48/sakatadpm48-perc/Agogo2.wav"],Vne=["SakataDPM48/sakatadpm48-rd/Ride.wav"],Hne=["SakataDPM48/sakatadpm48-rim/Rim.wav"],zne=["SakataDPM48/sakatadpm48-sd/Snaredrum-01.wav","SakataDPM48/sakatadpm48-sd/Snaredrum-02.wav"],Wne=["SakataDPM48/sakatadpm48-sh/Cabasa-01.wav","SakataDPM48/sakatadpm48-sh/Cabasa-02.wav"],Xne=["SequentialCircuitsDrumtracks/sequentialcircuitsdrumtracks-bd/Bassdrum.wav"],Kne=["SequentialCircuitsDrumtracks/sequentialcircuitsdrumtracks-cb/Cowbell.wav"],Zne=["SequentialCircuitsDrumtracks/sequentialcircuitsdrumtracks-cp/Clap.wav"],jne=["SequentialCircuitsDrumtracks/sequentialcircuitsdrumtracks-cr/Crash.wav"],Jne=["SequentialCircuitsDrumtracks/sequentialcircuitsdrumtracks-hh/Hat Closed.wav"],ere=["SequentialCircuitsDrumtracks/sequentialcircuitsdrumtracks-ht/Tom.wav"],tre=["SequentialCircuitsDrumtracks/sequentialcircuitsdrumtracks-oh/Hat Open.wav"],nre=["SequentialCircuitsDrumtracks/sequentialcircuitsdrumtracks-rd/Ride.wav"],rre=["SequentialCircuitsDrumtracks/sequentialcircuitsdrumtracks-rim/Rim Shot.wav"],are=["SequentialCircuitsDrumtracks/sequentialcircuitsdrumtracks-sd/Snaredrum.wav"],ire=["SequentialCircuitsDrumtracks/sequentialcircuitsdrumtracks-sh/Cabasa.wav"],sre=["SequentialCircuitsDrumtracks/sequentialcircuitsdrumtracks-tb/Tambourine.wav"],ore=["SequentialCircuitsTom/sequentialcircuitstom-bd/Bassdrum.wav"],lre=["SequentialCircuitsTom/sequentialcircuitstom-cp/Clap.wav"],cre=["SequentialCircuitsTom/sequentialcircuitstom-cr/Crash.wav"],ure=["SequentialCircuitsTom/sequentialcircuitstom-hh/Hat Closed.wav"],dre=["SequentialCircuitsTom/sequentialcircuitstom-ht/Tom-01.wav","SequentialCircuitsTom/sequentialcircuitstom-ht/Tom-02.wav"],mre=["SequentialCircuitsTom/sequentialcircuitstom-oh/Hat Open.wav"],hre=["SequentialCircuitsTom/sequentialcircuitstom-sd/Snaredrum.wav"],pre=["SergeModular/sergemodular-bd/Bassdrum.wav"],fre=["SergeModular/sergemodular-misc/Clink.wav"],gre=["SergeModular/sergemodular-perc/Claves.wav","SergeModular/sergemodular-perc/Click-01.wav","SergeModular/sergemodular-perc/Click-02.wav","SergeModular/sergemodular-perc/Click-03.wav","SergeModular/sergemodular-perc/Click-04.wav"],_re=["SimmonsSDS400/simmonssds400-ht/Tom-07.wav","SimmonsSDS400/simmonssds400-ht/Tom-09.wav","SimmonsSDS400/simmonssds400-ht/Tom-13.wav"],bre=["SimmonsSDS400/simmonssds400-lt/Tom-01.wav","SimmonsSDS400/simmonssds400-lt/Tom-02.wav","SimmonsSDS400/simmonssds400-lt/Tom-03.wav","SimmonsSDS400/simmonssds400-lt/Tom-08.wav","SimmonsSDS400/simmonssds400-lt/Tom-14.wav","SimmonsSDS400/simmonssds400-lt/Tom-17.wav"],Sre=["SimmonsSDS400/simmonssds400-mt/Tom-04.wav","SimmonsSDS400/simmonssds400-mt/Tom-05.wav","SimmonsSDS400/simmonssds400-mt/Tom-06.wav","SimmonsSDS400/simmonssds400-mt/Tom-10.wav","SimmonsSDS400/simmonssds400-mt/Tom-11.wav","SimmonsSDS400/simmonssds400-mt/Tom-12.wav","SimmonsSDS400/simmonssds400-mt/Tom-15.wav","SimmonsSDS400/simmonssds400-mt/Tom-16.wav"],Ore=["SimmonsSDS400/simmonssds400-sd/Slap-1.wav","SimmonsSDS400/simmonssds400-sd/Slap-2.wav","SimmonsSDS400/simmonssds400-sd/Slap-3.wav"],vre=["SimmonsSDS5/simmonssds5-bd/Bassdrum-01.wav","SimmonsSDS5/simmonssds5-bd/Bassdrum-02.wav","SimmonsSDS5/simmonssds5-bd/Bassdrum-03.wav","SimmonsSDS5/simmonssds5-bd/Bassdrum-04.wav","SimmonsSDS5/simmonssds5-bd/Bassdrum-05.wav","SimmonsSDS5/simmonssds5-bd/Bassdrum-06.wav","SimmonsSDS5/simmonssds5-bd/Bassdrum-07.wav","SimmonsSDS5/simmonssds5-bd/Bassdrum-08.wav","SimmonsSDS5/simmonssds5-bd/Bassdrum-09.wav","SimmonsSDS5/simmonssds5-bd/Bassdrum-10.wav","SimmonsSDS5/simmonssds5-bd/Bassdrum-11.wav","SimmonsSDS5/simmonssds5-bd/Bassdrum-12.wav"],Ere=["SimmonsSDS5/simmonssds5-hh/Hat Closed-01.wav","SimmonsSDS5/simmonssds5-hh/Hat Closed-02.wav","SimmonsSDS5/simmonssds5-hh/Hat Closed-03.wav","SimmonsSDS5/simmonssds5-hh/Hat Pedal-01.wav","SimmonsSDS5/simmonssds5-hh/Hat Pedal-02.wav"],Tre=["SimmonsSDS5/simmonssds5-ht/Tom-01.wav","SimmonsSDS5/simmonssds5-ht/Tom-04.wav","SimmonsSDS5/simmonssds5-ht/Tom-05.wav"],yre=["SimmonsSDS5/simmonssds5-lt/Tom-07.wav","SimmonsSDS5/simmonssds5-lt/Tom-08.wav","SimmonsSDS5/simmonssds5-lt/Tom-10.wav","SimmonsSDS5/simmonssds5-lt/Tom-11.wav","SimmonsSDS5/simmonssds5-lt/Tom-13.wav","SimmonsSDS5/simmonssds5-lt/Tom-14.wav","SimmonsSDS5/simmonssds5-lt/Tom-15.wav","SimmonsSDS5/simmonssds5-lt/Tom-17.wav"],Rre=["SimmonsSDS5/simmonssds5-mt/Tom-02.wav","SimmonsSDS5/simmonssds5-mt/Tom-03.wav","SimmonsSDS5/simmonssds5-mt/Tom-06.wav","SimmonsSDS5/simmonssds5-mt/Tom-09.wav","SimmonsSDS5/simmonssds5-mt/Tom-12.wav","SimmonsSDS5/simmonssds5-mt/Tom-16.wav"],Cre=["SimmonsSDS5/simmonssds5-oh/Hat Open-01.wav","SimmonsSDS5/simmonssds5-oh/Hat Open-02.wav"],Are=["SimmonsSDS5/simmonssds5-rim/Rimshot-01.wav","SimmonsSDS5/simmonssds5-rim/Rimshot-02.wav","SimmonsSDS5/simmonssds5-rim/Rimshot-03.wav","SimmonsSDS5/simmonssds5-rim/Rimshot-04.wav","SimmonsSDS5/simmonssds5-rim/Rimshot-05.wav","SimmonsSDS5/simmonssds5-rim/Rimshot-06.wav","SimmonsSDS5/simmonssds5-rim/Rimshot-07.wav"],wre=["SimmonsSDS5/simmonssds5-sd/Snaredrum-01.wav","SimmonsSDS5/simmonssds5-sd/Snaredrum-02.wav","SimmonsSDS5/simmonssds5-sd/Snaredrum-03.wav","SimmonsSDS5/simmonssds5-sd/Snaredrum-04.wav","SimmonsSDS5/simmonssds5-sd/Snaredrum-05.wav","SimmonsSDS5/simmonssds5-sd/Snaredrum-06.wav","SimmonsSDS5/simmonssds5-sd/Snaredrum-07.wav","SimmonsSDS5/simmonssds5-sd/Snaredrum-08.wav","SimmonsSDS5/simmonssds5-sd/Snaredrum-09.wav","SimmonsSDS5/simmonssds5-sd/Snaredrum-10.wav","SimmonsSDS5/simmonssds5-sd/Snaredrum-11.wav","SimmonsSDS5/simmonssds5-sd/Snaredrum-12.wav","SimmonsSDS5/simmonssds5-sd/Snaredrum-13.wav","SimmonsSDS5/simmonssds5-sd/Snaredrum-14.wav","SimmonsSDS5/simmonssds5-sd/Snaredrum-15.wav","SimmonsSDS5/simmonssds5-sd/Snaredrum-16.wav","SimmonsSDS5/simmonssds5-sd/Snaredrum-17.wav","SimmonsSDS5/simmonssds5-sd/Snaredrum-18.wav","SimmonsSDS5/simmonssds5-sd/Snaredrum-19.wav","SimmonsSDS5/simmonssds5-sd/Snaredrum-20.wav","SimmonsSDS5/simmonssds5-sd/Snaredrum-21.wav"],Ire=["SoundmastersR88/soundmastersr88-bd/Bassdrum.wav"],Nre=["SoundmastersR88/soundmastersr88-cr/Crash.wav"],Dre=["SoundmastersR88/soundmastersr88-hh/Closed Hat.wav"],xre=["SoundmastersR88/soundmastersr88-oh/Open Hat.wav"],kre=["SoundmastersR88/soundmastersr88-sd/Snare-1.wav","SoundmastersR88/soundmastersr88-sd/Snare-2.wav"],Mre=["UnivoxMicroRhythmer12/univoxmicrorhythmer12-bd/Bassdrum.wav"],Lre=["UnivoxMicroRhythmer12/univoxmicrorhythmer12-hh/Closed Hat.wav"],Pre=["UnivoxMicroRhythmer12/univoxmicrorhythmer12-oh/Open Hat.wav"],Bre=["UnivoxMicroRhythmer12/univoxmicrorhythmer12-sd/Snaredrum.wav"],Yre=["ViscoSpaceDrum/viscospacedrum-bd/Bassdrum-01.wav","ViscoSpaceDrum/viscospacedrum-bd/Bassdrum-02.wav","ViscoSpaceDrum/viscospacedrum-bd/Bassdrum-03.wav","ViscoSpaceDrum/viscospacedrum-bd/Bassdrum-04.wav","ViscoSpaceDrum/viscospacedrum-bd/Bassdrum-05.wav","ViscoSpaceDrum/viscospacedrum-bd/Bassdrum-06.wav","ViscoSpaceDrum/viscospacedrum-bd/Bassdrum-07.wav","ViscoSpaceDrum/viscospacedrum-bd/Bassdrum-08.wav","ViscoSpaceDrum/viscospacedrum-bd/Bassdrum-09.wav","ViscoSpaceDrum/viscospacedrum-bd/Bassdrum-10.wav","ViscoSpaceDrum/viscospacedrum-bd/Bassdrum-11.wav"],Fre=["ViscoSpaceDrum/viscospacedrum-cb/Cowbell.wav"],Ure=["ViscoSpaceDrum/viscospacedrum-hh/Hat Closed-01.wav","ViscoSpaceDrum/viscospacedrum-hh/Hat Closed-02.wav","ViscoSpaceDrum/viscospacedrum-hh/Hat Closed-03.wav","ViscoSpaceDrum/viscospacedrum-hh/Hat Closed-04.wav","ViscoSpaceDrum/viscospacedrum-hh/Hat Pedal-01.wav","ViscoSpaceDrum/viscospacedrum-hh/zHat Closed Reversed.wav"],$re=["ViscoSpaceDrum/viscospacedrum-ht/Synth Tom H.wav","ViscoSpaceDrum/viscospacedrum-ht/Tom-01.wav","ViscoSpaceDrum/viscospacedrum-ht/Tom-02.wav","ViscoSpaceDrum/viscospacedrum-ht/Tom-03.wav","ViscoSpaceDrum/viscospacedrum-ht/Tom-04.wav","ViscoSpaceDrum/viscospacedrum-ht/Tom-05.wav","ViscoSpaceDrum/viscospacedrum-ht/Tom7.wav"],Gre=["ViscoSpaceDrum/viscospacedrum-lt/Synth Tom L.wav","ViscoSpaceDrum/viscospacedrum-lt/Tom-06.wav"],qre=["ViscoSpaceDrum/viscospacedrum-misc/Bleep-01.wav","ViscoSpaceDrum/viscospacedrum-misc/Bleep-02.wav"],Qre=["ViscoSpaceDrum/viscospacedrum-mt/Synth Tom M-01.wav","ViscoSpaceDrum/viscospacedrum-mt/Synth Tom M-02.wav"],Vre=["ViscoSpaceDrum/viscospacedrum-oh/Hat Open-01.wav","ViscoSpaceDrum/viscospacedrum-oh/Hat Open-02.wav","ViscoSpaceDrum/viscospacedrum-oh/Hat Open-03.wav"],Hre=["ViscoSpaceDrum/viscospacedrum-perc/Woodblock1.wav","ViscoSpaceDrum/viscospacedrum-perc/Woodblock2.wav"],zre=["ViscoSpaceDrum/viscospacedrum-rim/Rimshot.wav"],Wre=["ViscoSpaceDrum/viscospacedrum-sd/Snaredrum-01.wav","ViscoSpaceDrum/viscospacedrum-sd/Snaredrum-02.wav","ViscoSpaceDrum/viscospacedrum-sd/Snaredrum-03.wav"],Xre=["XdrumLM8953/xdrumlm8953-bd/Bassdrum-01.wav","XdrumLM8953/xdrumlm8953-bd/Bassdrum-02.wav","XdrumLM8953/xdrumlm8953-bd/zphil-drm.wav"],Kre=["XdrumLM8953/xdrumlm8953-cr/Crash.wav"],Zre=["XdrumLM8953/xdrumlm8953-hh/Hat Closed.wav","XdrumLM8953/xdrumlm8953-hh/Hat Pedal.wav"],jre=["XdrumLM8953/xdrumlm8953-ht/Tom-01.wav","XdrumLM8953/xdrumlm8953-ht/Tom-02.wav"],Jre=["XdrumLM8953/xdrumlm8953-lt/Tom-05.wav","XdrumLM8953/xdrumlm8953-lt/Tom-06.wav"],eae=["XdrumLM8953/xdrumlm8953-mt/Tom-03.wav","XdrumLM8953/xdrumlm8953-mt/Tom-04.wav"],tae=["XdrumLM8953/xdrumlm8953-oh/Hat Open.wav"],nae=["XdrumLM8953/xdrumlm8953-rd/Ride.wav"],rae=["XdrumLM8953/xdrumlm8953-rim/Rim Shot-01.wav","XdrumLM8953/xdrumlm8953-rim/Rim Shot-02.wav"],aae=["XdrumLM8953/xdrumlm8953-sd/Snaredrum-01.wav","XdrumLM8953/xdrumlm8953-sd/Snaredrum-02.wav","XdrumLM8953/xdrumlm8953-sd/Snaredrum-03.wav","XdrumLM8953/xdrumlm8953-sd/Snaredrum-04.wav","XdrumLM8953/xdrumlm8953-sd/zSnare Fill.wav"],iae=["XdrumLM8953/xdrumlm8953-tb/Tambourine.wav"],sae=["YamahaRM50/yamaharm50-bd/BD-001.wav","YamahaRM50/yamaharm50-bd/BD-002.wav","YamahaRM50/yamaharm50-bd/BD-003.wav","YamahaRM50/yamaharm50-bd/BD-004.wav","YamahaRM50/yamaharm50-bd/BD-005.wav","YamahaRM50/yamaharm50-bd/BD-006.wav","YamahaRM50/yamaharm50-bd/BD-007.wav","YamahaRM50/yamaharm50-bd/BD-008.wav","YamahaRM50/yamaharm50-bd/BD-009.wav","YamahaRM50/yamaharm50-bd/BD-010.wav","YamahaRM50/yamaharm50-bd/BD-011..wav","YamahaRM50/yamaharm50-bd/BD-012.wav","YamahaRM50/yamaharm50-bd/BD-013.wav","YamahaRM50/yamaharm50-bd/BD-014.wav","YamahaRM50/yamaharm50-bd/BD-015.wav","YamahaRM50/yamaharm50-bd/BD-016.wav","YamahaRM50/yamaharm50-bd/BD-017.wav","YamahaRM50/yamaharm50-bd/BD-018.wav","YamahaRM50/yamaharm50-bd/BD-019.wav","YamahaRM50/yamaharm50-bd/BD-020.wav","YamahaRM50/yamaharm50-bd/BD-021.wav","YamahaRM50/yamaharm50-bd/BD-022.wav","YamahaRM50/yamaharm50-bd/BD-023.wav","YamahaRM50/yamaharm50-bd/BD-024.wav","YamahaRM50/yamaharm50-bd/BD-025.wav","YamahaRM50/yamaharm50-bd/BD-026.wav","YamahaRM50/yamaharm50-bd/BD-027.wav","YamahaRM50/yamaharm50-bd/BD-028.wav","YamahaRM50/yamaharm50-bd/BD-029.wav","YamahaRM50/yamaharm50-bd/BD-030.wav","YamahaRM50/yamaharm50-bd/BD-031.wav","YamahaRM50/yamaharm50-bd/BD-032.wav","YamahaRM50/yamaharm50-bd/BD-033.wav","YamahaRM50/yamaharm50-bd/BD-034.wav","YamahaRM50/yamaharm50-bd/BD-035.wav","YamahaRM50/yamaharm50-bd/BD-036.wav","YamahaRM50/yamaharm50-bd/BD-037.wav","YamahaRM50/yamaharm50-bd/BD-038.wav","YamahaRM50/yamaharm50-bd/BD-039.wav","YamahaRM50/yamaharm50-bd/BD-040.wav","YamahaRM50/yamaharm50-bd/BD-041.wav","YamahaRM50/yamaharm50-bd/BD-042.wav","YamahaRM50/yamaharm50-bd/BD-043.wav","YamahaRM50/yamaharm50-bd/BD-044.wav","YamahaRM50/yamaharm50-bd/BD-045.wav","YamahaRM50/yamaharm50-bd/BD-046.wav","YamahaRM50/yamaharm50-bd/BD-047.wav","YamahaRM50/yamaharm50-bd/BD-048.wav","YamahaRM50/yamaharm50-bd/BD-049.wav","YamahaRM50/yamaharm50-bd/BD-050.wav","YamahaRM50/yamaharm50-bd/BD-051.wav","YamahaRM50/yamaharm50-bd/BD-052.wav","YamahaRM50/yamaharm50-bd/BD-053.wav","YamahaRM50/yamaharm50-bd/BD-054.wav","YamahaRM50/yamaharm50-bd/BD-055.wav","YamahaRM50/yamaharm50-bd/BD-056.wav","YamahaRM50/yamaharm50-bd/BD-057.wav","YamahaRM50/yamaharm50-bd/BD-058.wav","YamahaRM50/yamaharm50-bd/BD-059.wav","YamahaRM50/yamaharm50-bd/BD-060.wav","YamahaRM50/yamaharm50-bd/BD-061.wav","YamahaRM50/yamaharm50-bd/BD-062.wav","YamahaRM50/yamaharm50-bd/BD-063.wav","YamahaRM50/yamaharm50-bd/BD-064.wav","YamahaRM50/yamaharm50-bd/BD-065.wav","YamahaRM50/yamaharm50-bd/BD-066.wav","YamahaRM50/yamaharm50-bd/BD-067.wav","YamahaRM50/yamaharm50-bd/BD-068.wav","YamahaRM50/yamaharm50-bd/BD-069.wav","YamahaRM50/yamaharm50-bd/BD-070.wav","YamahaRM50/yamaharm50-bd/BD-071.wav","YamahaRM50/yamaharm50-bd/BD-072.wav","YamahaRM50/yamaharm50-bd/BD-073.wav","YamahaRM50/yamaharm50-bd/BD-074.wav","YamahaRM50/yamaharm50-bd/BD-075.wav","YamahaRM50/yamaharm50-bd/BD-076.wav","YamahaRM50/yamaharm50-bd/BD-077.wav","YamahaRM50/yamaharm50-bd/BD-078.wav","YamahaRM50/yamaharm50-bd/BD-079.wav","YamahaRM50/yamaharm50-bd/BD-080.wav","YamahaRM50/yamaharm50-bd/BD-081.wav","YamahaRM50/yamaharm50-bd/BD-082.wav","YamahaRM50/yamaharm50-bd/BD-083.wav","YamahaRM50/yamaharm50-bd/BD-084.wav","YamahaRM50/yamaharm50-bd/BD-085.wav","YamahaRM50/yamaharm50-bd/BD-086.wav","YamahaRM50/yamaharm50-bd/BD-087.wav","YamahaRM50/yamaharm50-bd/BD-088.wav","YamahaRM50/yamaharm50-bd/BD-089.wav","YamahaRM50/yamaharm50-bd/BD-090.wav","YamahaRM50/yamaharm50-bd/BD-091.wav","YamahaRM50/yamaharm50-bd/BD-092.wav","YamahaRM50/yamaharm50-bd/BD-093.wav","YamahaRM50/yamaharm50-bd/BD-094.wav","YamahaRM50/yamaharm50-bd/BD-095.wav","YamahaRM50/yamaharm50-bd/BD-096.wav","YamahaRM50/yamaharm50-bd/BD-097.wav","YamahaRM50/yamaharm50-bd/BD-098.wav","YamahaRM50/yamaharm50-bd/BD-099.wav","YamahaRM50/yamaharm50-bd/BD-100.wav","YamahaRM50/yamaharm50-bd/BD-101.wav","YamahaRM50/yamaharm50-bd/BD-102.wav","YamahaRM50/yamaharm50-bd/BD-103.wav"],oae=["YamahaRM50/yamaharm50-cb/FX_001.wav","YamahaRM50/yamaharm50-cb/FX_002.wav","YamahaRM50/yamaharm50-cb/FX_025.wav","YamahaRM50/yamaharm50-cb/FX_026.wav","YamahaRM50/yamaharm50-cb/FX_027.wav","YamahaRM50/yamaharm50-cb/FX_061.wav"],lae=["YamahaRM50/yamaharm50-cp/FX_059.wav","YamahaRM50/yamaharm50-cp/FX_060.wav"],cae=["YamahaRM50/yamaharm50-cr/CYMBAL_043.wav","YamahaRM50/yamaharm50-cr/CYMBAL_044.wav","YamahaRM50/yamaharm50-cr/CYMBAL_045.wav","YamahaRM50/yamaharm50-cr/CYMBAL_046.wav","YamahaRM50/yamaharm50-cr/CYMBAL_047.wav","YamahaRM50/yamaharm50-cr/CYMBAL_048.wav","YamahaRM50/yamaharm50-cr/CYMBAL_049.wav","YamahaRM50/yamaharm50-cr/CYMBAL_050.wav","YamahaRM50/yamaharm50-cr/CYMBAL_051.wav","YamahaRM50/yamaharm50-cr/CYMBAL_052.wav","YamahaRM50/yamaharm50-cr/CYMBAL_053.wav","YamahaRM50/yamaharm50-cr/CYMBAL_054.wav","YamahaRM50/yamaharm50-cr/CYMBAL_055.wav","YamahaRM50/yamaharm50-cr/CYMBAL_056.wav","YamahaRM50/yamaharm50-cr/CYMBAL_057.wav","YamahaRM50/yamaharm50-cr/CYMBAL_058.wav","YamahaRM50/yamaharm50-cr/CYMBAL_059.wav","YamahaRM50/yamaharm50-cr/CYMBAL_060.wav","YamahaRM50/yamaharm50-cr/CYMBAL_061.wav","YamahaRM50/yamaharm50-cr/CYMBAL_063.wav","YamahaRM50/yamaharm50-cr/CYMBAL_064.wav","YamahaRM50/yamaharm50-cr/CYMBAL_065.wav"],uae=["YamahaRM50/yamaharm50-hh/CYMBAL_001.wav","YamahaRM50/yamaharm50-hh/CYMBAL_002.wav","YamahaRM50/yamaharm50-hh/CYMBAL_005.wav","YamahaRM50/yamaharm50-hh/CYMBAL_006.wav","YamahaRM50/yamaharm50-hh/CYMBAL_008.wav","YamahaRM50/yamaharm50-hh/CYMBAL_009.wav","YamahaRM50/yamaharm50-hh/CYMBAL_010.wav","YamahaRM50/yamaharm50-hh/CYMBAL_013.wav","YamahaRM50/yamaharm50-hh/CYMBAL_014.wav","YamahaRM50/yamaharm50-hh/CYMBAL_016.wav","YamahaRM50/yamaharm50-hh/CYMBAL_017.wav","YamahaRM50/yamaharm50-hh/CYMBAL_019.wav","YamahaRM50/yamaharm50-hh/CYMBAL_020.wav","YamahaRM50/yamaharm50-hh/CYMBAL_021.wav","YamahaRM50/yamaharm50-hh/CYMBAL_024.wav","YamahaRM50/yamaharm50-hh/CYMBAL_025.wav","YamahaRM50/yamaharm50-hh/CYMBAL_026.wav","YamahaRM50/yamaharm50-hh/CYMBAL_028.wav"],dae=["YamahaRM50/yamaharm50-ht/TOMS_001.wav","YamahaRM50/yamaharm50-ht/TOMS_005.wav","YamahaRM50/yamaharm50-ht/TOMS_009.wav","YamahaRM50/yamaharm50-ht/TOMS_010.wav","YamahaRM50/yamaharm50-ht/TOMS_013.wav","YamahaRM50/yamaharm50-ht/TOMS_017.wav","YamahaRM50/yamaharm50-ht/TOMS_021.wav","YamahaRM50/yamaharm50-ht/TOMS_022.wav","YamahaRM50/yamaharm50-ht/TOMS_025.wav","YamahaRM50/yamaharm50-ht/TOMS_026.wav","YamahaRM50/yamaharm50-ht/TOMS_029.wav","YamahaRM50/yamaharm50-ht/TOMS_035.wav","YamahaRM50/yamaharm50-ht/TOMS_039.wav","YamahaRM50/yamaharm50-ht/TOMS_043.wav","YamahaRM50/yamaharm50-ht/TOMS_047.wav","YamahaRM50/yamaharm50-ht/TOMS_049.wav","YamahaRM50/yamaharm50-ht/TOMS_052.wav","YamahaRM50/yamaharm50-ht/TOMS_056.wav","YamahaRM50/yamaharm50-ht/TOMS_064.wav","YamahaRM50/yamaharm50-ht/TOMS_068.wav","YamahaRM50/yamaharm50-ht/TOMS_072.wav","YamahaRM50/yamaharm50-ht/TOMS_077.wav","YamahaRM50/yamaharm50-ht/TOMS_085.wav","YamahaRM50/yamaharm50-ht/TOMS_089.wav","YamahaRM50/yamaharm50-ht/TOMS_101.wav"],mae=["YamahaRM50/yamaharm50-lt/TOMS_004.wav","YamahaRM50/yamaharm50-lt/TOMS_008.wav","YamahaRM50/yamaharm50-lt/TOMS_012.wav","YamahaRM50/yamaharm50-lt/TOMS_015.wav","YamahaRM50/yamaharm50-lt/TOMS_016.wav","YamahaRM50/yamaharm50-lt/TOMS_019.wav","YamahaRM50/yamaharm50-lt/TOMS_020.wav","YamahaRM50/yamaharm50-lt/TOMS_024.wav","YamahaRM50/yamaharm50-lt/TOMS_028.wav","YamahaRM50/yamaharm50-lt/TOMS_032.wav","YamahaRM50/yamaharm50-lt/TOMS_033.wav","YamahaRM50/yamaharm50-lt/TOMS_034.wav","YamahaRM50/yamaharm50-lt/TOMS_038.wav","YamahaRM50/yamaharm50-lt/TOMS_041.wav","YamahaRM50/yamaharm50-lt/TOMS_042.wav","YamahaRM50/yamaharm50-lt/TOMS_046.wav","YamahaRM50/yamaharm50-lt/TOMS_048.wav","YamahaRM50/yamaharm50-lt/TOMS_050.wav","YamahaRM50/yamaharm50-lt/TOMS_051.wav","YamahaRM50/yamaharm50-lt/TOMS_053.wav","YamahaRM50/yamaharm50-lt/TOMS_054.wav","YamahaRM50/yamaharm50-lt/TOMS_055.wav","YamahaRM50/yamaharm50-lt/TOMS_058.wav","YamahaRM50/yamaharm50-lt/TOMS_059.wav","YamahaRM50/yamaharm50-lt/TOMS_061.wav","YamahaRM50/yamaharm50-lt/TOMS_062.wav","YamahaRM50/yamaharm50-lt/TOMS_063.wav","YamahaRM50/yamaharm50-lt/TOMS_066.wav","YamahaRM50/yamaharm50-lt/TOMS_067.wav","YamahaRM50/yamaharm50-lt/TOMS_071.wav","YamahaRM50/yamaharm50-lt/TOMS_075.wav","YamahaRM50/yamaharm50-lt/TOMS_079.wav","YamahaRM50/yamaharm50-lt/TOMS_082.wav","YamahaRM50/yamaharm50-lt/TOMS_083.wav","YamahaRM50/yamaharm50-lt/TOMS_084.wav","YamahaRM50/yamaharm50-lt/TOMS_087.wav","YamahaRM50/yamaharm50-lt/TOMS_088.wav","YamahaRM50/yamaharm50-lt/TOMS_092.wav","YamahaRM50/yamaharm50-lt/TOMS_094.wav","YamahaRM50/yamaharm50-lt/TOMS_095.wav","YamahaRM50/yamaharm50-lt/TOMS_096.wav","YamahaRM50/yamaharm50-lt/TOMS_099.wav","YamahaRM50/yamaharm50-lt/TOMS_100.wav","YamahaRM50/yamaharm50-lt/TOMS_103.wav","YamahaRM50/yamaharm50-lt/TOMS_104.wav","YamahaRM50/yamaharm50-lt/TOMS_105.wav","YamahaRM50/yamaharm50-lt/TOMS_106.wav","YamahaRM50/yamaharm50-lt/TOMS_107.wav","YamahaRM50/yamaharm50-lt/TOMS_108.wav"],hae=["YamahaRM50/yamaharm50-misc/CYMBAL_062.wav","YamahaRM50/yamaharm50-misc/FX_071.wav","YamahaRM50/yamaharm50-misc/FX_072.wav","YamahaRM50/yamaharm50-misc/FX_074.wav","YamahaRM50/yamaharm50-misc/FX_075.wav","YamahaRM50/yamaharm50-misc/FX_076.wav","YamahaRM50/yamaharm50-misc/FX_079.wav","YamahaRM50/yamaharm50-misc/FX_082.wav","YamahaRM50/yamaharm50-misc/FX_083.wav","YamahaRM50/yamaharm50-misc/FX_085.wav","YamahaRM50/yamaharm50-misc/FX_086.wav","YamahaRM50/yamaharm50-misc/FX_087.wav","YamahaRM50/yamaharm50-misc/FX_088.wav","YamahaRM50/yamaharm50-misc/FX_089.wav","YamahaRM50/yamaharm50-misc/FX_090.wav","YamahaRM50/yamaharm50-misc/FX_091.wav","YamahaRM50/yamaharm50-misc/FX_092.wav","YamahaRM50/yamaharm50-misc/FX_093.wav","YamahaRM50/yamaharm50-misc/FX_094.wav","YamahaRM50/yamaharm50-misc/FX_095.wav","YamahaRM50/yamaharm50-misc/FX_098.wav","YamahaRM50/yamaharm50-misc/FX_122.wav","YamahaRM50/yamaharm50-misc/FX_126.wav","YamahaRM50/yamaharm50-misc/FX_127.wav","YamahaRM50/yamaharm50-misc/FX_128.wav","YamahaRM50/yamaharm50-misc/FX_129.wav","YamahaRM50/yamaharm50-misc/FX_135.wav","YamahaRM50/yamaharm50-misc/FX_139.wav"],pae=["YamahaRM50/yamaharm50-mt/TOMS_002.wav","YamahaRM50/yamaharm50-mt/TOMS_003.wav","YamahaRM50/yamaharm50-mt/TOMS_006.wav","YamahaRM50/yamaharm50-mt/TOMS_007.wav","YamahaRM50/yamaharm50-mt/TOMS_011.wav","YamahaRM50/yamaharm50-mt/TOMS_014.wav","YamahaRM50/yamaharm50-mt/TOMS_018.wav","YamahaRM50/yamaharm50-mt/TOMS_023.wav","YamahaRM50/yamaharm50-mt/TOMS_027.wav","YamahaRM50/yamaharm50-mt/TOMS_030.wav","YamahaRM50/yamaharm50-mt/TOMS_031.wav","YamahaRM50/yamaharm50-mt/TOMS_036.wav","YamahaRM50/yamaharm50-mt/TOMS_037.wav","YamahaRM50/yamaharm50-mt/TOMS_040.wav","YamahaRM50/yamaharm50-mt/TOMS_044.wav","YamahaRM50/yamaharm50-mt/TOMS_045.wav","YamahaRM50/yamaharm50-mt/TOMS_057.wav","YamahaRM50/yamaharm50-mt/TOMS_060.wav","YamahaRM50/yamaharm50-mt/TOMS_065.wav","YamahaRM50/yamaharm50-mt/TOMS_069.wav","YamahaRM50/yamaharm50-mt/TOMS_070.wav","YamahaRM50/yamaharm50-mt/TOMS_073.wav","YamahaRM50/yamaharm50-mt/TOMS_074.wav","YamahaRM50/yamaharm50-mt/TOMS_076.wav","YamahaRM50/yamaharm50-mt/TOMS_078.wav","YamahaRM50/yamaharm50-mt/TOMS_080.wav","YamahaRM50/yamaharm50-mt/TOMS_081.wav","YamahaRM50/yamaharm50-mt/TOMS_086.wav","YamahaRM50/yamaharm50-mt/TOMS_090.wav","YamahaRM50/yamaharm50-mt/TOMS_091.wav","YamahaRM50/yamaharm50-mt/TOMS_093.wav","YamahaRM50/yamaharm50-mt/TOMS_097.wav","YamahaRM50/yamaharm50-mt/TOMS_098.wav","YamahaRM50/yamaharm50-mt/TOMS_102.wav"],fae=["YamahaRM50/yamaharm50-oh/CYMBAL_003.wav","YamahaRM50/yamaharm50-oh/CYMBAL_004.wav","YamahaRM50/yamaharm50-oh/CYMBAL_007.wav","YamahaRM50/yamaharm50-oh/CYMBAL_011.wav","YamahaRM50/yamaharm50-oh/CYMBAL_012.wav","YamahaRM50/yamaharm50-oh/CYMBAL_015.wav","YamahaRM50/yamaharm50-oh/CYMBAL_018.wav","YamahaRM50/yamaharm50-oh/CYMBAL_022.wav","YamahaRM50/yamaharm50-oh/CYMBAL_023.wav","YamahaRM50/yamaharm50-oh/CYMBAL_027.wav","YamahaRM50/yamaharm50-oh/CYMBAL_029.wav","YamahaRM50/yamaharm50-oh/FX_064.wav"],gae=["YamahaRM50/yamaharm50-perc/FX_003.wav","YamahaRM50/yamaharm50-perc/FX_004.wav","YamahaRM50/yamaharm50-perc/FX_012.wav","YamahaRM50/yamaharm50-perc/FX_013.wav","YamahaRM50/yamaharm50-perc/FX_014.wav","YamahaRM50/yamaharm50-perc/FX_015.wav","YamahaRM50/yamaharm50-perc/FX_016.wav","YamahaRM50/yamaharm50-perc/FX_017.wav","YamahaRM50/yamaharm50-perc/FX_018.wav","YamahaRM50/yamaharm50-perc/FX_019.wav","YamahaRM50/yamaharm50-perc/FX_020.wav","YamahaRM50/yamaharm50-perc/FX_021.wav","YamahaRM50/yamaharm50-perc/FX_022.wav","YamahaRM50/yamaharm50-perc/FX_023.wav","YamahaRM50/yamaharm50-perc/FX_024.wav","YamahaRM50/yamaharm50-perc/FX_033.wav","YamahaRM50/yamaharm50-perc/FX_034.wav","YamahaRM50/yamaharm50-perc/FX_035.wav","YamahaRM50/yamaharm50-perc/FX_036.wav","YamahaRM50/yamaharm50-perc/FX_037.wav","YamahaRM50/yamaharm50-perc/FX_038.wav","YamahaRM50/yamaharm50-perc/FX_039.wav","YamahaRM50/yamaharm50-perc/FX_040.wav","YamahaRM50/yamaharm50-perc/FX_041.wav","YamahaRM50/yamaharm50-perc/FX_042.wav","YamahaRM50/yamaharm50-perc/FX_043.wav","YamahaRM50/yamaharm50-perc/FX_044.wav","YamahaRM50/yamaharm50-perc/FX_045.wav","YamahaRM50/yamaharm50-perc/FX_046.wav","YamahaRM50/yamaharm50-perc/FX_047.wav","YamahaRM50/yamaharm50-perc/FX_048.wav","YamahaRM50/yamaharm50-perc/FX_049.wav","YamahaRM50/yamaharm50-perc/FX_050.wav","YamahaRM50/yamaharm50-perc/FX_051.wav","YamahaRM50/yamaharm50-perc/FX_052.wav","YamahaRM50/yamaharm50-perc/FX_053.wav","YamahaRM50/yamaharm50-perc/FX_054.wav","YamahaRM50/yamaharm50-perc/FX_055.wav","YamahaRM50/yamaharm50-perc/FX_056.wav","YamahaRM50/yamaharm50-perc/FX_057.wav","YamahaRM50/yamaharm50-perc/FX_058.wav","YamahaRM50/yamaharm50-perc/FX_062.wav","YamahaRM50/yamaharm50-perc/FX_063.wav","YamahaRM50/yamaharm50-perc/FX_065.wav","YamahaRM50/yamaharm50-perc/FX_066.wav","YamahaRM50/yamaharm50-perc/FX_067.wav","YamahaRM50/yamaharm50-perc/FX_068.wav","YamahaRM50/yamaharm50-perc/FX_069.wav","YamahaRM50/yamaharm50-perc/FX_070.wav","YamahaRM50/yamaharm50-perc/FX_073.wav","YamahaRM50/yamaharm50-perc/FX_116.wav","YamahaRM50/yamaharm50-perc/FX_119.wav","YamahaRM50/yamaharm50-perc/FX_120.wav","YamahaRM50/yamaharm50-perc/FX_121.wav","YamahaRM50/yamaharm50-perc/FX_125.wav","YamahaRM50/yamaharm50-perc/FX_132.wav"],_ae=["YamahaRM50/yamaharm50-rd/CYMBAL_030.wav","YamahaRM50/yamaharm50-rd/CYMBAL_031.wav","YamahaRM50/yamaharm50-rd/CYMBAL_032.wav","YamahaRM50/yamaharm50-rd/CYMBAL_033.wav","YamahaRM50/yamaharm50-rd/CYMBAL_034.wav","YamahaRM50/yamaharm50-rd/CYMBAL_035.wav","YamahaRM50/yamaharm50-rd/CYMBAL_036.wav","YamahaRM50/yamaharm50-rd/CYMBAL_037.wav","YamahaRM50/yamaharm50-rd/CYMBAL_038.wav","YamahaRM50/yamaharm50-rd/CYMBAL_039.wav","YamahaRM50/yamaharm50-rd/CYMBAL_040.wav","YamahaRM50/yamaharm50-rd/CYMBAL_041.wav","YamahaRM50/yamaharm50-rd/CYMBAL_042.wav"],bae=["YamahaRM50/yamaharm50-sd/SNAREDRUM_001.wav","YamahaRM50/yamaharm50-sd/SNAREDRUM_002.wav","YamahaRM50/yamaharm50-sd/SNAREDRUM_003.wav","YamahaRM50/yamaharm50-sd/SNAREDRUM_004.wav","YamahaRM50/yamaharm50-sd/SNAREDRUM_005.wav","YamahaRM50/yamaharm50-sd/SNAREDRUM_006.wav","YamahaRM50/yamaharm50-sd/SNAREDRUM_007.wav","YamahaRM50/yamaharm50-sd/SNAREDRUM_008.wav","YamahaRM50/yamaharm50-sd/SNAREDRUM_009.wav","YamahaRM50/yamaharm50-sd/SNAREDRUM_010.wav","YamahaRM50/yamaharm50-sd/SNAREDRUM_011.wav","YamahaRM50/yamaharm50-sd/SNAREDRUM_012.wav","YamahaRM50/yamaharm50-sd/SNAREDRUM_013.wav","YamahaRM50/yamaharm50-sd/SNAREDRUM_014.wav","YamahaRM50/yamaharm50-sd/SNAREDRUM_015.wav","YamahaRM50/yamaharm50-sd/SNAREDRUM_016.wav","YamahaRM50/yamaharm50-sd/SNAREDRUM_017.wav","YamahaRM50/yamaharm50-sd/SNAREDRUM_018.wav","YamahaRM50/yamaharm50-sd/SNAREDRUM_019.wav","YamahaRM50/yamaharm50-sd/SNAREDRUM_020.wav","YamahaRM50/yamaharm50-sd/SNAREDRUM_021.wav","YamahaRM50/yamaharm50-sd/SNAREDRUM_022.wav","YamahaRM50/yamaharm50-sd/SNAREDRUM_023.wav","YamahaRM50/yamaharm50-sd/SNAREDRUM_024.wav","YamahaRM50/yamaharm50-sd/SNAREDRUM_025.wav","YamahaRM50/yamaharm50-sd/SNAREDRUM_026.wav","YamahaRM50/yamaharm50-sd/SNAREDRUM_027.wav","YamahaRM50/yamaharm50-sd/SNAREDRUM_028.wav","YamahaRM50/yamaharm50-sd/SNAREDRUM_029.wav","YamahaRM50/yamaharm50-sd/SNAREDRUM_030.wav","YamahaRM50/yamaharm50-sd/SNAREDRUM_031.wav","YamahaRM50/yamaharm50-sd/SNAREDRUM_032.wav","YamahaRM50/yamaharm50-sd/SNAREDRUM_033.wav","YamahaRM50/yamaharm50-sd/SNAREDRUM_034.wav","YamahaRM50/yamaharm50-sd/SNAREDRUM_035.wav","YamahaRM50/yamaharm50-sd/SNAREDRUM_036.wav","YamahaRM50/yamaharm50-sd/SNAREDRUM_037.wav","YamahaRM50/yamaharm50-sd/SNAREDRUM_038.wav","YamahaRM50/yamaharm50-sd/SNAREDRUM_039.wav","YamahaRM50/yamaharm50-sd/SNAREDRUM_040.wav","YamahaRM50/yamaharm50-sd/SNAREDRUM_041.wav","YamahaRM50/yamaharm50-sd/SNAREDRUM_042.wav","YamahaRM50/yamaharm50-sd/SNAREDRUM_043.wav","YamahaRM50/yamaharm50-sd/SNAREDRUM_044.wav","YamahaRM50/yamaharm50-sd/SNAREDRUM_045.wav","YamahaRM50/yamaharm50-sd/SNAREDRUM_046.wav","YamahaRM50/yamaharm50-sd/SNAREDRUM_047.wav","YamahaRM50/yamaharm50-sd/SNAREDRUM_048.wav","YamahaRM50/yamaharm50-sd/SNAREDRUM_049.wav","YamahaRM50/yamaharm50-sd/SNAREDRUM_050.wav","YamahaRM50/yamaharm50-sd/SNAREDRUM_051.wav","YamahaRM50/yamaharm50-sd/SNAREDRUM_052.wav","YamahaRM50/yamaharm50-sd/SNAREDRUM_053.wav","YamahaRM50/yamaharm50-sd/SNAREDRUM_054.wav","YamahaRM50/yamaharm50-sd/SNAREDRUM_055.wav","YamahaRM50/yamaharm50-sd/SNAREDRUM_056.wav","YamahaRM50/yamaharm50-sd/SNAREDRUM_057.wav","YamahaRM50/yamaharm50-sd/SNAREDRUM_058.wav","YamahaRM50/yamaharm50-sd/SNAREDRUM_059.wav","YamahaRM50/yamaharm50-sd/SNAREDRUM_060.wav","YamahaRM50/yamaharm50-sd/SNAREDRUM_061.wav","YamahaRM50/yamaharm50-sd/SNAREDRUM_062.wav","YamahaRM50/yamaharm50-sd/SNAREDRUM_063.wav","YamahaRM50/yamaharm50-sd/SNAREDRUM_064.wav","YamahaRM50/yamaharm50-sd/SNAREDRUM_065.wav","YamahaRM50/yamaharm50-sd/SNAREDRUM_066.wav","YamahaRM50/yamaharm50-sd/SNAREDRUM_067.wav","YamahaRM50/yamaharm50-sd/SNAREDRUM_068.wav","YamahaRM50/yamaharm50-sd/SNAREDRUM_069.wav","YamahaRM50/yamaharm50-sd/SNAREDRUM_070.wav","YamahaRM50/yamaharm50-sd/SNAREDRUM_071.wav","YamahaRM50/yamaharm50-sd/SNAREDRUM_072.wav","YamahaRM50/yamaharm50-sd/SNAREDRUM_073.wav","YamahaRM50/yamaharm50-sd/SNAREDRUM_074.wav","YamahaRM50/yamaharm50-sd/SNAREDRUM_075.wav","YamahaRM50/yamaharm50-sd/SNAREDRUM_076.wav","YamahaRM50/yamaharm50-sd/SNAREDRUM_077.wav","YamahaRM50/yamaharm50-sd/SNAREDRUM_078.wav","YamahaRM50/yamaharm50-sd/SNAREDRUM_079.wav","YamahaRM50/yamaharm50-sd/SNAREDRUM_080.wav","YamahaRM50/yamaharm50-sd/SNAREDRUM_081.wav","YamahaRM50/yamaharm50-sd/SNAREDRUM_082.wav","YamahaRM50/yamaharm50-sd/SNAREDRUM_083.wav","YamahaRM50/yamaharm50-sd/SNAREDRUM_084.wav","YamahaRM50/yamaharm50-sd/SNAREDRUM_085.wav","YamahaRM50/yamaharm50-sd/SNAREDRUM_086.wav","YamahaRM50/yamaharm50-sd/SNAREDRUM_087.wav","YamahaRM50/yamaharm50-sd/SNAREDRUM_088.wav","YamahaRM50/yamaharm50-sd/SNAREDRUM_089.wav","YamahaRM50/yamaharm50-sd/SNAREDRUM_090.wav","YamahaRM50/yamaharm50-sd/SNAREDRUM_091.wav","YamahaRM50/yamaharm50-sd/SNAREDRUM_092.wav","YamahaRM50/yamaharm50-sd/SNAREDRUM_093.wav","YamahaRM50/yamaharm50-sd/SNAREDRUM_094.wav","YamahaRM50/yamaharm50-sd/SNAREDRUM_095.wav","YamahaRM50/yamaharm50-sd/SNAREDRUM_096.wav","YamahaRM50/yamaharm50-sd/SNAREDRUM_097.wav","YamahaRM50/yamaharm50-sd/SNAREDRUM_098.wav","YamahaRM50/yamaharm50-sd/SNAREDRUM_099.wav","YamahaRM50/yamaharm50-sd/SNAREDRUM_100.wav","YamahaRM50/yamaharm50-sd/SNAREDRUM_101.wav","YamahaRM50/yamaharm50-sd/SNAREDRUM_102.wav","YamahaRM50/yamaharm50-sd/SNAREDRUM_103.wav","YamahaRM50/yamaharm50-sd/SNAREDRUM_104.wav","YamahaRM50/yamaharm50-sd/SNAREDRUM_105.wav","YamahaRM50/yamaharm50-sd/SNAREDRUM_106.wav","YamahaRM50/yamaharm50-sd/SNAREDRUM_107.wav","YamahaRM50/yamaharm50-sd/SNAREDRUM_108.wav"],Sae=["YamahaRM50/yamaharm50-sh/FX_010.wav","YamahaRM50/yamaharm50-sh/FX_011.wav","YamahaRM50/yamaharm50-sh/FX_028.wav","YamahaRM50/yamaharm50-sh/FX_029.wav","YamahaRM50/yamaharm50-sh/FX_130.wav","YamahaRM50/yamaharm50-sh/FX_131.wav"],Oae=["YamahaRM50/yamaharm50-tb/FX_030.wav","YamahaRM50/yamaharm50-tb/FX_031.wav","YamahaRM50/yamaharm50-tb/FX_032.wav"],vae=["YamahaRX21/yamaharx21-bd/Bassdrum.wav"],Eae=["YamahaRX21/yamaharx21-cp/Clap.wav"],Tae=["YamahaRX21/yamaharx21-cr/Crash.wav"],yae=["YamahaRX21/yamaharx21-hh/Closed Hat.wav"],Rae=["YamahaRX21/yamaharx21-ht/Tom H.wav"],Cae=["YamahaRX21/yamaharx21-lt/Tom L.wav"],Aae=["YamahaRX21/yamaharx21-mt/Tom M.wav"],wae=["YamahaRX21/yamaharx21-oh/Open hat.wav"],Iae=["YamahaRX21/yamaharx21-sd/Snaredrum.wav"],Nae=["YamahaRX5/yamaharx5-bd/Bassdrum-02.wav","YamahaRX5/yamaharx5-bd/Bassdrum.wav"],Dae=["YamahaRX5/yamaharx5-cb/Cowbell.wav"],xae=["YamahaRX5/yamaharx5-fx/SFX.wav"],kae=["YamahaRX5/yamaharx5-hh/Hat Closed.wav"],Mae=["YamahaRX5/yamaharx5-lt/Tom.wav"],Lae=["YamahaRX5/yamaharx5-oh/Hat Open.wav"],Pae=["YamahaRX5/yamaharx5-rim/Rimshot.wav"],Bae=["YamahaRX5/yamaharx5-sd/Snaredrum-02.wav","YamahaRX5/yamaharx5-sd/Snaredrum-03.wav","YamahaRX5/yamaharx5-sd/Snaredrum.wav"],Yae=["YamahaRX5/yamaharx5-sh/Shaker.wav"],Fae=["YamahaRX5/yamaharx5-tb/Tambourine.wav"],Uae=["YamahaRY30/yamahary30-bd/Bassdrum-01.wav","YamahaRY30/yamahary30-bd/Bassdrum-02.wav","YamahaRY30/yamahary30-bd/Bassdrum-03.wav","YamahaRY30/yamahary30-bd/Bassdrum-04.wav","YamahaRY30/yamahary30-bd/Bassdrum-05.wav","YamahaRY30/yamahary30-bd/Bassdrum-06.wav","YamahaRY30/yamahary30-bd/Bassdrum-07.wav","YamahaRY30/yamahary30-bd/Bassdrum-08.wav","YamahaRY30/yamahary30-bd/Bassdrum-09.wav","YamahaRY30/yamahary30-bd/Bassdrum-10.wav","YamahaRY30/yamahary30-bd/Bassdrum-11.wav","YamahaRY30/yamahary30-bd/Bassdrum-12.wav","YamahaRY30/yamahary30-bd/Bassdrum-13.wav"],$ae=["YamahaRY30/yamahary30-cb/Cowbell-01.wav","YamahaRY30/yamahary30-cb/Cowbell-02.wav"],Gae=["YamahaRY30/yamahary30-cp/Clap.wav"],qae=["YamahaRY30/yamahary30-cr/Crash1.wav","YamahaRY30/yamahary30-cr/zChina.wav"],Qae=["YamahaRY30/yamahary30-hh/Hat Closed-01.wav","YamahaRY30/yamahary30-hh/Hat Closed-02.wav","YamahaRY30/yamahary30-hh/Hat Pedal-01.wav","YamahaRY30/yamahary30-hh/Hat Pedal-02.wav"],Vae=["YamahaRY30/yamahary30-ht/Tom H-01.wav","YamahaRY30/yamahary30-ht/Tom H-02.wav","YamahaRY30/yamahary30-ht/Tom H-03.wav"],Hae=["YamahaRY30/yamahary30-lt/Tom L-01.wav","YamahaRY30/yamahary30-lt/Toml L-02.wav","YamahaRY30/yamahary30-lt/Toml L-03.wav"],zae=["YamahaRY30/yamahary30-misc/Button.wav","YamahaRY30/yamahary30-misc/Knock-01.wav","YamahaRY30/yamahary30-misc/Knock-02.wav","YamahaRY30/yamahary30-misc/Noise.wav","YamahaRY30/yamahary30-misc/Pipe.wav","YamahaRY30/yamahary30-misc/Scratch.wav","YamahaRY30/yamahary30-misc/Snap.wav","YamahaRY30/yamahary30-misc/String.wav"],Wae=["YamahaRY30/yamahary30-mt/Tom M-03.wav","YamahaRY30/yamahary30-mt/Tom-04.wav"],Xae=["YamahaRY30/yamahary30-oh/Hat Open-01.wav","YamahaRY30/yamahary30-oh/Hat Open-02.wav","YamahaRY30/yamahary30-oh/Hat Open-03.wav","YamahaRY30/yamahary30-oh/Hat Open-04.wav"],Kae=["YamahaRY30/yamahary30-perc/Bell.wav","YamahaRY30/yamahary30-perc/Bongo-01.wav","YamahaRY30/yamahary30-perc/Bongo-02.wav","YamahaRY30/yamahary30-perc/Conga-01.wav","YamahaRY30/yamahary30-perc/Conga-02.wav","YamahaRY30/yamahary30-perc/Quid.wav","YamahaRY30/yamahary30-perc/Stick.wav","YamahaRY30/yamahary30-perc/Timb1.wav","YamahaRY30/yamahary30-perc/Timb2.wav","YamahaRY30/yamahary30-perc/Triangle.wav","YamahaRY30/yamahary30-perc/Trill.wav","YamahaRY30/yamahary30-perc/Woodblock-01.wav","YamahaRY30/yamahary30-perc/Woodblock-02.wav"],Zae=["YamahaRY30/yamahary30-rd/Ride-01.wav","YamahaRY30/yamahary30-rd/Ride-02.wav","YamahaRY30/yamahary30-rd/Ride-03.wav"],jae=["YamahaRY30/yamahary30-rim/Rimshot1.wav","YamahaRY30/yamahary30-rim/Rimshot2.wav"],Jae=["YamahaRY30/yamahary30-sd/Snare1.wav","YamahaRY30/yamahary30-sd/Snare10.wav","YamahaRY30/yamahary30-sd/Snare11.wav","YamahaRY30/yamahary30-sd/Snare12.wav","YamahaRY30/yamahary30-sd/Snare13.wav","YamahaRY30/yamahary30-sd/Snare14.wav","YamahaRY30/yamahary30-sd/Snare15.wav","YamahaRY30/yamahary30-sd/Snare16.wav","YamahaRY30/yamahary30-sd/Snare17.wav","YamahaRY30/yamahary30-sd/Snare18.wav","YamahaRY30/yamahary30-sd/Snare19.wav","YamahaRY30/yamahary30-sd/Snare2.wav","YamahaRY30/yamahary30-sd/Snare20.wav","YamahaRY30/yamahary30-sd/Snare21.wav","YamahaRY30/yamahary30-sd/Snare3.wav","YamahaRY30/yamahary30-sd/Snare4.wav","YamahaRY30/yamahary30-sd/Snare5.wav","YamahaRY30/yamahary30-sd/Snare6.wav","YamahaRY30/yamahary30-sd/Snare7.wav","YamahaRY30/yamahary30-sd/Snare8.wav","YamahaRY30/yamahary30-sd/Snare9.wav"],eie=["YamahaRY30/yamahary30-sh/Cabasa-01.wav","YamahaRY30/yamahary30-sh/Cabasa-02.wav"],tie=["YamahaRY30/yamahary30-tb/Tamb.wav"],nie=["YamahaTG33/yamahatg33-bd/Bassdrum-01.wav","YamahaTG33/yamahatg33-bd/Bassdrum-02.wav","YamahaTG33/yamahatg33-bd/Bassdrum-03.wav","YamahaTG33/yamahatg33-bd/Bassdrum-04.wav"],rie=["YamahaTG33/yamahatg33-cb/Cowbell H.wav","YamahaTG33/yamahatg33-cb/Cowbell L.wav","YamahaTG33/yamahatg33-cb/Cowbell.wav"],aie=["YamahaTG33/yamahatg33-cp/Clap.wav"],iie=["YamahaTG33/yamahatg33-cr/Crash-01.wav","YamahaTG33/yamahatg33-cr/Crash-02.wav","YamahaTG33/yamahatg33-cr/zCrash Reverse.wav"],sie=["YamahaTG33/yamahatg33-fx/SFX-01.wav"],oie=["YamahaTG33/yamahatg33-ht/Tom-04.wav","YamahaTG33/yamahatg33-ht/Tom-06.wav"],lie=["YamahaTG33/yamahatg33-lt/Tom-01.wav","YamahaTG33/yamahatg33-lt/Tom-03.wav"],cie=["YamahaTG33/yamahatg33-misc/Flute.wav","YamahaTG33/yamahatg33-misc/Glass-01.wav","YamahaTG33/yamahatg33-misc/Glass-02.wav","YamahaTG33/yamahatg33-misc/SFX-02.wav","YamahaTG33/yamahatg33-misc/SFX-03.wav","YamahaTG33/yamahatg33-misc/SFX-04.wav","YamahaTG33/yamahatg33-misc/SFX-05.wav","YamahaTG33/yamahatg33-misc/SFX-06.wav","YamahaTG33/yamahatg33-misc/SFX-07.wav","YamahaTG33/yamahatg33-misc/SFX-08.wav"],uie=["YamahaTG33/yamahatg33-mt/Tom-07.wav","YamahaTG33/yamahatg33-mt/zTom-02.wav"],die=["YamahaTG33/yamahatg33-oh/Hat Open.wav"],mie=["YamahaTG33/yamahatg33-perc/Bongo-01.wav","YamahaTG33/yamahatg33-perc/Bongo-02.wav","YamahaTG33/yamahatg33-perc/Clave.wav","YamahaTG33/yamahatg33-perc/Conga.wav","YamahaTG33/yamahatg33-perc/Snap.wav","YamahaTG33/yamahatg33-perc/Timbale.wav","YamahaTG33/yamahatg33-perc/Triangle-01.wav","YamahaTG33/yamahatg33-perc/Triangle-02.wav","YamahaTG33/yamahatg33-perc/Unknown.wav","YamahaTG33/yamahatg33-perc/Whistle-01.wav","YamahaTG33/yamahatg33-perc/Whistle-02.wav","YamahaTG33/yamahatg33-perc/Woodblock.wav"],hie=["YamahaTG33/yamahatg33-rd/Ride-01.wav","YamahaTG33/yamahatg33-rd/Ride-02.wav"],pie=["YamahaTG33/yamahatg33-rim/Rimshot.wav"],fie=["YamahaTG33/yamahatg33-sd/Snaredrum-01.wav","YamahaTG33/yamahatg33-sd/Snaredrum-02.wav","YamahaTG33/yamahatg33-sd/Snaredrum-03.wav","YamahaTG33/yamahatg33-sd/Snaredrum-04.wav","YamahaTG33/yamahatg33-sd/Snaredrum-05.wav"],gie=["YamahaTG33/yamahatg33-sh/Shaker.wav"],_ie=["YamahaTG33/yamahatg33-tb/Tambourine.wav"],bie={AJKPercusyn_bd:BH,AJKPercusyn_cb:YH,AJKPercusyn_ht:FH,AJKPercusyn_sd:UH,AkaiLinn_bd:$H,AkaiLinn_cb:GH,AkaiLinn_cp:qH,AkaiLinn_cr:QH,AkaiLinn_hh:VH,AkaiLinn_ht:HH,AkaiLinn_lt:zH,AkaiLinn_mt:WH,AkaiLinn_oh:XH,AkaiLinn_rd:KH,AkaiLinn_sd:ZH,AkaiLinn_sh:jH,AkaiLinn_tb:JH,AkaiMPC60_bd:ez,AkaiMPC60_cp:tz,AkaiMPC60_cr:nz,AkaiMPC60_hh:rz,AkaiMPC60_ht:az,AkaiMPC60_lt:iz,AkaiMPC60_misc:sz,AkaiMPC60_mt:oz,AkaiMPC60_oh:lz,AkaiMPC60_perc:cz,AkaiMPC60_rd:uz,AkaiMPC60_rim:dz,AkaiMPC60_sd:mz,AkaiXR10_bd:hz,AkaiXR10_cb:pz,AkaiXR10_cp:fz,AkaiXR10_cr:gz,AkaiXR10_hh:_z,AkaiXR10_ht:bz,AkaiXR10_lt:Sz,AkaiXR10_misc:Oz,AkaiXR10_mt:vz,AkaiXR10_oh:Ez,AkaiXR10_perc:Tz,AkaiXR10_rd:yz,AkaiXR10_rim:Rz,AkaiXR10_sd:Cz,AkaiXR10_sh:Az,AkaiXR10_tb:wz,AlesisHR16_bd:Iz,AlesisHR16_cp:Nz,AlesisHR16_hh:Dz,AlesisHR16_ht:xz,AlesisHR16_lt:kz,AlesisHR16_oh:Mz,AlesisHR16_perc:Lz,AlesisHR16_rim:Pz,AlesisHR16_sd:Bz,AlesisHR16_sh:Yz,AlesisSR16_bd:Fz,AlesisSR16_cb:Uz,AlesisSR16_cp:$z,AlesisSR16_cr:Gz,AlesisSR16_hh:qz,AlesisSR16_misc:Qz,AlesisSR16_oh:Vz,AlesisSR16_perc:Hz,AlesisSR16_rd:zz,AlesisSR16_rim:Wz,AlesisSR16_sd:Xz,AlesisSR16_sh:Kz,AlesisSR16_tb:Zz,BossDR110_bd:jz,BossDR110_cp:Jz,BossDR110_cr:eW,BossDR110_hh:tW,BossDR110_oh:nW,BossDR110_rd:rW,BossDR110_sd:aW,BossDR220_bd:iW,BossDR220_cp:sW,BossDR220_cr:oW,BossDR220_hh:lW,BossDR220_ht:cW,BossDR220_lt:uW,BossDR220_mt:dW,BossDR220_oh:mW,BossDR220_perc:hW,BossDR220_rd:pW,BossDR220_sd:fW,BossDR55_bd:gW,BossDR55_hh:_W,BossDR55_rim:bW,BossDR55_sd:SW,BossDR550_bd:OW,BossDR550_cb:vW,BossDR550_cp:EW,BossDR550_cr:TW,BossDR550_hh:yW,BossDR550_ht:RW,BossDR550_lt:CW,BossDR550_misc:AW,BossDR550_mt:wW,BossDR550_oh:IW,BossDR550_perc:NW,BossDR550_rd:DW,BossDR550_rim:xW,BossDR550_sd:kW,BossDR550_sh:MW,BossDR550_tb:LW,CasioRZ1_bd:PW,CasioRZ1_cb:BW,CasioRZ1_cp:YW,CasioRZ1_cr:FW,CasioRZ1_hh:UW,CasioRZ1_ht:$W,CasioRZ1_lt:GW,CasioRZ1_mt:qW,CasioRZ1_rd:QW,CasioRZ1_rim:VW,CasioRZ1_sd:HW,CasioSK1_bd:zW,CasioSK1_hh:WW,CasioSK1_ht:XW,CasioSK1_mt:KW,CasioSK1_oh:ZW,CasioSK1_sd:jW,CasioVL1_bd:JW,CasioVL1_hh:eX,CasioVL1_sd:tX,DoepferMS404_bd:nX,DoepferMS404_hh:rX,DoepferMS404_lt:aX,DoepferMS404_oh:iX,DoepferMS404_sd:sX,EmuDrumulator_bd:oX,EmuDrumulator_cb:lX,EmuDrumulator_cp:cX,EmuDrumulator_cr:uX,EmuDrumulator_hh:dX,EmuDrumulator_ht:mX,EmuDrumulator_lt:hX,EmuDrumulator_mt:pX,EmuDrumulator_oh:fX,EmuDrumulator_perc:gX,EmuDrumulator_rim:_X,EmuDrumulator_sd:bX,EmuModular_bd:SX,EmuModular_misc:OX,EmuModular_perc:vX,EmuSP12_bd:EX,EmuSP12_cb:TX,EmuSP12_cp:yX,EmuSP12_cr:RX,EmuSP12_hh:CX,EmuSP12_ht:AX,EmuSP12_lt:wX,EmuSP12_misc:IX,EmuSP12_mt:NX,EmuSP12_oh:DX,EmuSP12_perc:xX,EmuSP12_rd:kX,EmuSP12_rim:MX,EmuSP12_sd:LX,KorgDDM110_bd:PX,KorgDDM110_cp:BX,KorgDDM110_cr:YX,KorgDDM110_hh:FX,KorgDDM110_ht:UX,KorgDDM110_lt:$X,KorgDDM110_oh:GX,KorgDDM110_rim:qX,KorgDDM110_sd:QX,KorgKPR77_bd:VX,KorgKPR77_cp:HX,KorgKPR77_hh:zX,KorgKPR77_oh:WX,KorgKPR77_sd:XX,KorgKR55_bd:KX,KorgKR55_cb:ZX,KorgKR55_cr:jX,KorgKR55_hh:JX,KorgKR55_ht:eK,KorgKR55_oh:tK,KorgKR55_perc:nK,KorgKR55_rim:rK,KorgKR55_sd:aK,KorgKRZ_bd:iK,KorgKRZ_cr:sK,KorgKRZ_fx:oK,KorgKRZ_hh:lK,KorgKRZ_ht:cK,KorgKRZ_lt:uK,KorgKRZ_misc:dK,KorgKRZ_oh:mK,KorgKRZ_rd:hK,KorgKRZ_sd:pK,KorgM1_bd:fK,KorgM1_cb:gK,KorgM1_cp:_K,KorgM1_cr:bK,KorgM1_hh:SK,KorgM1_ht:OK,KorgM1_misc:vK,KorgM1_mt:EK,KorgM1_oh:TK,KorgM1_perc:yK,KorgM1_rd:RK,KorgM1_rim:CK,KorgM1_sd:AK,KorgM1_sh:wK,KorgM1_tb:IK,KorgMinipops_bd:NK,KorgMinipops_hh:DK,KorgMinipops_misc:xK,KorgMinipops_oh:kK,KorgMinipops_sd:MK,KorgPoly800_bd:LK,KorgT3_bd:PK,KorgT3_cp:BK,KorgT3_hh:YK,KorgT3_misc:FK,KorgT3_oh:UK,KorgT3_perc:$K,KorgT3_rim:GK,KorgT3_sd:qK,KorgT3_sh:QK,Linn9000_bd:VK,Linn9000_cb:HK,Linn9000_cr:zK,Linn9000_hh:WK,Linn9000_ht:XK,Linn9000_lt:KK,Linn9000_mt:ZK,Linn9000_oh:jK,Linn9000_perc:JK,Linn9000_rd:eZ,Linn9000_rim:tZ,Linn9000_sd:nZ,Linn9000_tb:rZ,LinnDrum_bd:aZ,LinnDrum_cb:iZ,LinnDrum_cp:sZ,LinnDrum_cr:oZ,LinnDrum_hh:lZ,LinnDrum_ht:cZ,LinnDrum_lt:uZ,LinnDrum_mt:dZ,LinnDrum_oh:mZ,LinnDrum_perc:hZ,LinnDrum_rd:pZ,LinnDrum_rim:fZ,LinnDrum_sd:gZ,LinnDrum_sh:_Z,LinnDrum_tb:bZ,LinnLM1_bd:SZ,LinnLM1_cb:OZ,LinnLM1_cp:vZ,LinnLM1_hh:EZ,LinnLM1_ht:TZ,LinnLM1_lt:yZ,LinnLM1_oh:RZ,LinnLM1_perc:CZ,LinnLM1_rim:AZ,LinnLM1_sd:wZ,LinnLM1_sh:IZ,LinnLM1_tb:NZ,LinnLM2_bd:DZ,LinnLM2_cb:xZ,LinnLM2_cp:kZ,LinnLM2_cr:MZ,LinnLM2_hh:LZ,LinnLM2_ht:PZ,LinnLM2_lt:BZ,LinnLM2_mt:YZ,LinnLM2_oh:FZ,LinnLM2_rd:UZ,LinnLM2_rim:$Z,LinnLM2_sd:GZ,LinnLM2_sh:qZ,LinnLM2_tb:QZ,MFB512_bd:VZ,MFB512_cp:HZ,MFB512_cr:zZ,MFB512_hh:WZ,MFB512_ht:XZ,MFB512_lt:KZ,MFB512_mt:ZZ,MFB512_oh:jZ,MFB512_sd:JZ,MPC1000_bd:ej,MPC1000_cp:tj,MPC1000_hh:nj,MPC1000_oh:rj,MPC1000_perc:aj,MPC1000_sd:ij,MPC1000_sh:sj,MoogConcertMateMG1_bd:oj,MoogConcertMateMG1_sd:lj,OberheimDMX_:cj,OberheimDMX_bd:uj,OberheimDMX_cp:dj,OberheimDMX_cr:mj,OberheimDMX_hh:hj,OberheimDMX_ht:pj,OberheimDMX_lt:fj,OberheimDMX_mt:gj,OberheimDMX_oh:_j,OberheimDMX_rd:bj,OberheimDMX_rim:Sj,OberheimDMX_sd:Oj,OberheimDMX_sh:vj,OberheimDMX_tb:Ej,RhodesPolaris_bd:Tj,RhodesPolaris_misc:yj,RhodesPolaris_sd:Rj,RhythmAce_bd:Cj,RhythmAce_hh:Aj,RhythmAce_ht:wj,RhythmAce_lt:Ij,RhythmAce_oh:Nj,RhythmAce_perc:Dj,RhythmAce_sd:xj,RolandCompurhythm1000_bd:kj,RolandCompurhythm1000_cb:Mj,RolandCompurhythm1000_cp:Lj,RolandCompurhythm1000_cr:Pj,RolandCompurhythm1000_hh:Bj,RolandCompurhythm1000_ht:Yj,RolandCompurhythm1000_lt:Fj,RolandCompurhythm1000_mt:Uj,RolandCompurhythm1000_oh:$j,RolandCompurhythm1000_perc:Gj,RolandCompurhythm1000_rd:qj,RolandCompurhythm1000_rim:Qj,RolandCompurhythm1000_sd:Vj,RolandCompurhythm78_bd:Hj,RolandCompurhythm78_cb:zj,RolandCompurhythm78_hh:Wj,RolandCompurhythm78_misc:Xj,RolandCompurhythm78_oh:Kj,RolandCompurhythm78_perc:Zj,RolandCompurhythm78_sd:jj,RolandCompurhythm78_tb:Jj,RolandCompurhythm8000_bd:eJ,RolandCompurhythm8000_cb:tJ,RolandCompurhythm8000_cp:nJ,RolandCompurhythm8000_cr:rJ,RolandCompurhythm8000_hh:aJ,RolandCompurhythm8000_ht:iJ,RolandCompurhythm8000_lt:sJ,RolandCompurhythm8000_mt:oJ,RolandCompurhythm8000_oh:lJ,RolandCompurhythm8000_perc:cJ,RolandCompurhythm8000_rim:uJ,RolandCompurhythm8000_sd:dJ,RolandD110_bd:mJ,RolandD110_cb:hJ,RolandD110_cr:pJ,RolandD110_hh:fJ,RolandD110_lt:gJ,RolandD110_oh:_J,RolandD110_perc:bJ,RolandD110_rd:SJ,RolandD110_rim:OJ,RolandD110_sd:vJ,RolandD110_sh:EJ,RolandD110_tb:TJ,RolandD70_bd:yJ,RolandD70_cb:RJ,RolandD70_cp:CJ,RolandD70_cr:AJ,RolandD70_hh:wJ,RolandD70_lt:IJ,RolandD70_mt:NJ,RolandD70_oh:DJ,RolandD70_perc:xJ,RolandD70_rd:kJ,RolandD70_rim:MJ,RolandD70_sd:LJ,RolandD70_sh:PJ,RolandDDR30_bd:BJ,RolandDDR30_ht:YJ,RolandDDR30_lt:FJ,RolandDDR30_sd:UJ,RolandJD990_bd:$J,RolandJD990_cb:GJ,RolandJD990_cp:qJ,RolandJD990_cr:QJ,RolandJD990_hh:VJ,RolandJD990_ht:HJ,RolandJD990_lt:zJ,RolandJD990_misc:WJ,RolandJD990_mt:XJ,RolandJD990_oh:KJ,RolandJD990_perc:ZJ,RolandJD990_rd:jJ,RolandJD990_sd:JJ,RolandJD990_tb:eee,RolandMC202_bd:tee,RolandMC202_ht:nee,RolandMC202_perc:ree,RolandMC303_bd:aee,RolandMC303_cb:iee,RolandMC303_cp:see,RolandMC303_fx:oee,RolandMC303_hh:lee,RolandMC303_ht:cee,RolandMC303_lt:uee,RolandMC303_misc:dee,RolandMC303_mt:mee,RolandMC303_oh:hee,RolandMC303_perc:pee,RolandMC303_rd:fee,RolandMC303_rim:gee,RolandMC303_sd:_ee,RolandMC303_sh:bee,RolandMC303_tb:See,RolandMT32_bd:Oee,RolandMT32_cb:vee,RolandMT32_cp:Eee,RolandMT32_cr:Tee,RolandMT32_hh:yee,RolandMT32_ht:Ree,RolandMT32_lt:Cee,RolandMT32_mt:Aee,RolandMT32_oh:wee,RolandMT32_perc:Iee,RolandMT32_rd:Nee,RolandMT32_rim:Dee,RolandMT32_sd:xee,RolandMT32_sh:kee,RolandMT32_tb:Mee,RolandR8_bd:Lee,RolandR8_cb:Pee,RolandR8_cp:Bee,RolandR8_cr:Yee,RolandR8_hh:Fee,RolandR8_ht:Uee,RolandR8_lt:$ee,RolandR8_mt:Gee,RolandR8_oh:qee,RolandR8_perc:Qee,RolandR8_rd:Vee,RolandR8_rim:Hee,RolandR8_sd:zee,RolandR8_sh:Wee,RolandR8_tb:Xee,RolandS50_bd:Kee,RolandS50_cb:Zee,RolandS50_cp:jee,RolandS50_cr:Jee,RolandS50_ht:ete,RolandS50_lt:tte,RolandS50_misc:nte,RolandS50_mt:rte,RolandS50_oh:ate,RolandS50_perc:ite,RolandS50_rd:ste,RolandS50_sd:ote,RolandS50_sh:lte,RolandS50_tb:cte,RolandSH09_bd:ute,RolandSystem100_bd:dte,RolandSystem100_hh:mte,RolandSystem100_misc:hte,RolandSystem100_oh:pte,RolandSystem100_perc:fte,RolandSystem100_sd:gte,RolandTR505_bd:_te,RolandTR505_cb:bte,RolandTR505_cp:Ste,RolandTR505_cr:Ote,RolandTR505_hh:vte,RolandTR505_ht:Ete,RolandTR505_lt:Tte,RolandTR505_mt:yte,RolandTR505_oh:Rte,RolandTR505_perc:Cte,RolandTR505_rd:Ate,RolandTR505_rim:wte,RolandTR505_sd:Ite,RolandTR606_bd:Nte,RolandTR606_cr:Dte,RolandTR606_hh:xte,RolandTR606_ht:kte,RolandTR606_lt:Mte,RolandTR606_oh:Lte,RolandTR606_sd:Pte,RolandTR626_bd:Bte,RolandTR626_cb:Yte,RolandTR626_cp:Fte,RolandTR626_cr:Ute,RolandTR626_hh:$te,RolandTR626_ht:Gte,RolandTR626_lt:qte,RolandTR626_mt:Qte,RolandTR626_oh:Vte,RolandTR626_perc:Hte,RolandTR626_rd:zte,RolandTR626_rim:Wte,RolandTR626_sd:Xte,RolandTR626_sh:Kte,RolandTR626_tb:Zte,RolandTR707_bd:jte,RolandTR707_cb:Jte,RolandTR707_cp:ene,RolandTR707_cr:tne,RolandTR707_hh:nne,RolandTR707_ht:rne,RolandTR707_lt:ane,RolandTR707_mt:ine,RolandTR707_oh:sne,RolandTR707_rim:one,RolandTR707_sd:lne,RolandTR707_tb:cne,RolandTR727_perc:une,RolandTR727_sh:dne,RolandTR808_bd:mne,RolandTR808_cb:hne,RolandTR808_cp:pne,RolandTR808_cr:fne,RolandTR808_hh:gne,RolandTR808_ht:_ne,RolandTR808_lt:bne,RolandTR808_mt:Sne,RolandTR808_oh:One,RolandTR808_perc:vne,RolandTR808_rim:Ene,RolandTR808_sd:Tne,RolandTR808_sh:yne,RolandTR909_bd:Rne,RolandTR909_cp:Cne,RolandTR909_cr:Ane,RolandTR909_hh:wne,RolandTR909_ht:Ine,RolandTR909_lt:Nne,RolandTR909_mt:Dne,RolandTR909_oh:xne,RolandTR909_rd:kne,RolandTR909_rim:Mne,RolandTR909_sd:Lne,SakataDPM48_bd:Pne,SakataDPM48_cp:Bne,SakataDPM48_cr:Yne,SakataDPM48_hh:Fne,SakataDPM48_ht:Une,SakataDPM48_lt:$ne,SakataDPM48_mt:Gne,SakataDPM48_oh:qne,SakataDPM48_perc:Qne,SakataDPM48_rd:Vne,SakataDPM48_rim:Hne,SakataDPM48_sd:zne,SakataDPM48_sh:Wne,SequentialCircuitsDrumtracks_bd:Xne,SequentialCircuitsDrumtracks_cb:Kne,SequentialCircuitsDrumtracks_cp:Zne,SequentialCircuitsDrumtracks_cr:jne,SequentialCircuitsDrumtracks_hh:Jne,SequentialCircuitsDrumtracks_ht:ere,SequentialCircuitsDrumtracks_oh:tre,SequentialCircuitsDrumtracks_rd:nre,SequentialCircuitsDrumtracks_rim:rre,SequentialCircuitsDrumtracks_sd:are,SequentialCircuitsDrumtracks_sh:ire,SequentialCircuitsDrumtracks_tb:sre,SequentialCircuitsTom_bd:ore,SequentialCircuitsTom_cp:lre,SequentialCircuitsTom_cr:cre,SequentialCircuitsTom_hh:ure,SequentialCircuitsTom_ht:dre,SequentialCircuitsTom_oh:mre,SequentialCircuitsTom_sd:hre,SergeModular_bd:pre,SergeModular_misc:fre,SergeModular_perc:gre,SimmonsSDS400_ht:_re,SimmonsSDS400_lt:bre,SimmonsSDS400_mt:Sre,SimmonsSDS400_sd:Ore,SimmonsSDS5_bd:vre,SimmonsSDS5_hh:Ere,SimmonsSDS5_ht:Tre,SimmonsSDS5_lt:yre,SimmonsSDS5_mt:Rre,SimmonsSDS5_oh:Cre,SimmonsSDS5_rim:Are,SimmonsSDS5_sd:wre,SoundmastersR88_bd:Ire,SoundmastersR88_cr:Nre,SoundmastersR88_hh:Dre,SoundmastersR88_oh:xre,SoundmastersR88_sd:kre,UnivoxMicroRhythmer12_bd:Mre,UnivoxMicroRhythmer12_hh:Lre,UnivoxMicroRhythmer12_oh:Pre,UnivoxMicroRhythmer12_sd:Bre,ViscoSpaceDrum_bd:Yre,ViscoSpaceDrum_cb:Fre,ViscoSpaceDrum_hh:Ure,ViscoSpaceDrum_ht:$re,ViscoSpaceDrum_lt:Gre,ViscoSpaceDrum_misc:qre,ViscoSpaceDrum_mt:Qre,ViscoSpaceDrum_oh:Vre,ViscoSpaceDrum_perc:Hre,ViscoSpaceDrum_rim:zre,ViscoSpaceDrum_sd:Wre,XdrumLM8953_bd:Xre,XdrumLM8953_cr:Kre,XdrumLM8953_hh:Zre,XdrumLM8953_ht:jre,XdrumLM8953_lt:Jre,XdrumLM8953_mt:eae,XdrumLM8953_oh:tae,XdrumLM8953_rd:nae,XdrumLM8953_rim:rae,XdrumLM8953_sd:aae,XdrumLM8953_tb:iae,YamahaRM50_bd:sae,YamahaRM50_cb:oae,YamahaRM50_cp:lae,YamahaRM50_cr:cae,YamahaRM50_hh:uae,YamahaRM50_ht:dae,YamahaRM50_lt:mae,YamahaRM50_misc:hae,YamahaRM50_mt:pae,YamahaRM50_oh:fae,YamahaRM50_perc:gae,YamahaRM50_rd:_ae,YamahaRM50_sd:bae,YamahaRM50_sh:Sae,YamahaRM50_tb:Oae,YamahaRX21_bd:vae,YamahaRX21_cp:Eae,YamahaRX21_cr:Tae,YamahaRX21_hh:yae,YamahaRX21_ht:Rae,YamahaRX21_lt:Cae,YamahaRX21_mt:Aae,YamahaRX21_oh:wae,YamahaRX21_sd:Iae,YamahaRX5_bd:Nae,YamahaRX5_cb:Dae,YamahaRX5_fx:xae,YamahaRX5_hh:kae,YamahaRX5_lt:Mae,YamahaRX5_oh:Lae,YamahaRX5_rim:Pae,YamahaRX5_sd:Bae,YamahaRX5_sh:Yae,YamahaRX5_tb:Fae,YamahaRY30_bd:Uae,YamahaRY30_cb:$ae,YamahaRY30_cp:Gae,YamahaRY30_cr:qae,YamahaRY30_hh:Qae,YamahaRY30_ht:Vae,YamahaRY30_lt:Hae,YamahaRY30_misc:zae,YamahaRY30_mt:Wae,YamahaRY30_oh:Xae,YamahaRY30_perc:Kae,YamahaRY30_rd:Zae,YamahaRY30_rim:jae,YamahaRY30_sd:Jae,YamahaRY30_sh:eie,YamahaRY30_tb:tie,YamahaTG33_bd:nie,YamahaTG33_cb:rie,YamahaTG33_cp:aie,YamahaTG33_cr:iie,YamahaTG33_fx:sie,YamahaTG33_ht:oie,YamahaTG33_lt:lie,YamahaTG33_misc:cie,YamahaTG33_mt:uie,YamahaTG33_oh:die,YamahaTG33_perc:mie,YamahaTG33_rd:hie,YamahaTG33_rim:pie,YamahaTG33_sd:fie,YamahaTG33_sh:gie,YamahaTG33_tb:_ie};async function iw(){return Promise.all([bk(),ma("github:tidalcycles/Dirt-Samples/master",void 0,{tag:"Tidal"}).then(()=>wk()),kk(),ma(bie,"github:ritchse/tidal-drum-machines/main/machines/",{tag:"Machines"}),ma("github:Bubobubobubobubo/Dough-Fox/main",void 0,{tag:"FoxDot"}),ma("github:Bubobubobubobubo/Dough-Samples/main",void 0,{tag:"Pack"}),ma("github:Bubobubobubobubo/Dough-Amiga/main",void 0,{tag:"Amiga"}),ma("github:Bubobubobubobubo/Dough-Juj/main",void 0,{tag:"Juliette"}),ma("github:Bubobubobubobubo/Dough-Amen/main",void 0,{tag:"Amen"}),ma("github:Bubobubobubobubo/Dough-Waveforms/main",void 0,{tag:"Waveforms"})])}class Sie{constructor(e){A(this,"variables",{});A(this,"codeExamples",{});A(this,"counters",{});A(this,"_drunk",new NH(-100,100,!1));A(this,"randomGen",Math.random);A(this,"currentSeed");A(this,"localSeeds",new Map);A(this,"patternCache",new g_({max:1e3,ttl:1e3*60*5}));A(this,"errorTimeoutID",0);A(this,"printTimeoutID",0);A(this,"MidiConnection");A(this,"scale_aid");A(this,"hydra");A(this,"load");A(this,"_loadUniverseFromInterface",e=>{this.app.selected_universe=e.trim(),this.app.settings.selected_universe=e.trim(),ul(this.app,e),Eu()});A(this,"_deleteUniverseFromInterface",e=>{delete this.app.universes[e],this.app.settings.selected_universe===e&&(this.app.settings.selected_universe="Welcome",this.app.selected_universe="Welcome"),this.app.settings.saveApplicationToLocalStorage(this.app.universes,this.app.settings),this.app.updateKnownUniversesView()});A(this,"_playDocExample",e=>{let t=this.app.universes[this.app.selected_universe];this.app.exampleIsPlaying=!0,t.example?t.example.candidate=e||this.app.selectedExample:(t.example={candidate:"",committed:"",evaluations:0},t.example.candidate=e||this.app.selectedExample),this.stop(),this.play()});A(this,"_stopDocExample",()=>{let e=this.app.universes[this.app.selected_universe];(e==null?void 0:e.example)!==void 0&&(this.app.exampleIsPlaying=!1,e.example.candidate="",e.example.committed=""),this.stop()});A(this,"_playDocExampleOnce",e=>{let t=this.app.universes[this.app.selected_universe];(t==null?void 0:t.example)!==void 0&&(t.example.candidate="",t.example.committed=""),this.stop(),this.play(),this.app.exampleIsPlaying=!0,D6(this.app,e)});A(this,"_all_samples",()=>qu.get());A(this,"_reportError",e=>{const t=s=>{var l;const o=(l=s.stack)==null?void 0:l.split(` `);if(o){for(const c of o)if(c.includes("")){const u=c.match(/:(\d+):(\d+)/);if(u)return{line:parseInt(u[1],10),column:parseInt(u[2],10)}}}return{line:null,column:null}},{line:n,column:a}=t(e),i=n&&a?`${e.message} (Line: ${n-2}, Column: ${a})`:e.message;clearTimeout(this.errorTimeoutID),clearTimeout(this.printTimeoutID),this.app.interface.error_line.innerHTML=i,this.app.interface.error_line.style.color="color-red-800",this.app.interface.error_line.classList.remove("hidden"),this.errorTimeoutID=setTimeout(()=>this.app.interface.error_line.classList.add("hidden"),2e3)});A(this,"_logMessage",e=>{console.log(e),clearTimeout(this.printTimeoutID),clearTimeout(this.errorTimeoutID),this.app.interface.error_line.innerHTML=e,this.app.interface.error_line.style.color="white",this.app.interface.error_line.classList.remove("hidden"),this.printTimeoutID=setTimeout(()=>this.app.interface.error_line.classList.add("hidden"),4e3)});A(this,"time",()=>this.app.audioContext.currentTime);A(this,"play",()=>{this.app.setButtonHighlighting("play",!0),this.MidiConnection.sendStartMessage(),this.app.clock.start()});A(this,"pause",()=>{this.app.setButtonHighlighting("pause",!0),this.app.clock.pause()});A(this,"stop",()=>{this.app.setButtonHighlighting("stop",!0),this.app.clock.stop()});A(this,"silence",this.stop);A(this,"hush",this.stop);A(this,"warp",e=>{this.app.clock.tick=e,this.app.clock.time_position=this.app.clock.convertTicksToTimeposition(e)});A(this,"beat_warp",e=>{this.app.clock.tick=e*this.app.clock.ppqn,this.app.clock.time_position=this.app.clock.convertTicksToTimeposition(e*this.app.clock.ppqn)});A(this,"onmousemove",e=>{this.app._mouseX=e.pageX,this.app._mouseY=e.pageY});A(this,"mouseX",()=>this.app._mouseX);A(this,"mouseY",()=>this.app._mouseY);A(this,"noteX",()=>Math.floor(this.app._mouseX/document.body.clientWidth*127));A(this,"noteY",()=>Math.floor(this.app._mouseY/document.body.clientHeight*127));A(this,"script",(...e)=>{e.forEach(t=>{t>=1&&t<=9&&(Bk(this.app,"local",t),os(this.app,this.app.universes[this.app.selected_universe].locals[t]))})});A(this,"s",this.script);A(this,"delete_script",e=>{this.app.universes[this.app.selected_universe].locals[e]={candidate:"",committed:"",evaluations:0}});A(this,"cs",this.delete_script);A(this,"copy_script",(e,t)=>{this.app.universes[this.app.selected_universe].locals[t]={...this.app.universes[this.app.selected_universe].locals[e]}});A(this,"cps",this.copy_script);A(this,"copy_universe",(e,t)=>{this.app.universes[t]={...this.app.universes[e]}});A(this,"delete_universe",e=>{this.app.selected_universe===e&&(this.app.selected_universe="Default"),delete this.app.universes[e],this.app.settings.saveApplicationToLocalStorage(this.app.universes,this.app.settings),this.app.updateKnownUniversesView()});A(this,"big_bang",()=>{confirm("Are you sure you want to delete all universes?")&&(this.app.universes={...m1},this.app.settings.saveApplicationToLocalStorage(this.app.universes,this.app.settings)),this.app.selected_universe="Default",this.app.updateKnownUniversesView()});A(this,"midi_outputs",()=>{this._logMessage(this.MidiConnection.listMidiOutputs())});A(this,"midi_output",e=>{e?this.MidiConnection.switchMidiOutput(e):console.log(this.MidiConnection.getCurrentMidiPort())});A(this,"midi",(e=60,t,n,a)=>{const i={note:e,velocity:t,channel:n,port:a};return new h_(i,this.app)});A(this,"sysex",e=>{this.MidiConnection.sendSysExMessage(e)});A(this,"pitch_bend",(e,t)=>{this.MidiConnection.sendPitchBend(e,t)});A(this,"program_change",(e,t)=>{this.MidiConnection.sendProgramChange(e,t)});A(this,"midi_clock",()=>{this.MidiConnection.sendMidiClock()});A(this,"control_change",({control:e=20,value:t=0,channel:n=0})=>{this.MidiConnection.sendMidiControlChange(e,t,n)});A(this,"midi_panic",()=>{this.MidiConnection.panic()});A(this,"active_note_events",e=>{let t;if(e?t=this.MidiConnection.activeNotesFromChannel(e):t=this.MidiConnection.activeNotes,t.length>0)return t});A(this,"active_notes",e=>{const t=this.active_note_events(e);if(t&&t.length>0)return t.map(n=>n.note)});A(this,"kill_active_notes",()=>{this.MidiConnection.activeNotes=[]});A(this,"sticky_notes",e=>{let t;if(e?t=this.MidiConnection.stickyNotesFromChannel(e):t=this.MidiConnection.stickyNotes,t.length>0)return t.map(n=>n.note)});A(this,"kill_sticky_notes",()=>{this.MidiConnection.stickyNotes=[]});A(this,"buffer",e=>e?this.MidiConnection.findNoteFromBufferInChannel(e)!==void 0:this.MidiConnection.noteInputBuffer.length>0);A(this,"buffer_event",e=>e?this.MidiConnection.findNoteFromBufferInChannel(e):this.MidiConnection.noteInputBuffer.shift());A(this,"buffer_note",e=>{const t=this.buffer_event(e);return t?t.note:void 0});A(this,"last_note_event",e=>e?this.MidiConnection.lastNoteInChannel[e]:this.MidiConnection.lastNote);A(this,"last_note",e=>{const t=this.last_note_event(e);return t?t.note:60});A(this,"last_cc",(e,t)=>t?this.MidiConnection.lastCCInChannel[t]?this.MidiConnection.lastCCInChannel[t][e]:0:this.MidiConnection.lastCC[e]||0);A(this,"has_cc",e=>e?this.MidiConnection.findCCFromBufferInChannel(e)!==void 0:this.MidiConnection.ccInputBuffer.length>0);A(this,"buffer_cc",e=>e?this.MidiConnection.findCCFromBufferInChannel(e):this.MidiConnection.ccInputBuffer.shift());A(this,"show_scale",(e,t,n=0,a=this.MidiConnection.currentOutputIndex||0,i=!1)=>{(!this.scale_aid||t!==this.scale_aid)&&(this.hide_scale(e,t,n,a),AV(t,e).forEach(o=>{this.MidiConnection.sendMidiOn(o,n,1,a),i&&this.MidiConnection.sendAllSoundOff(n,a)}),this.scale_aid=t)});A(this,"hide_scale",(e=0,t=0,n=0,a=this.MidiConnection.currentOutputIndex||0)=>{Array.from(Array(128).keys()).forEach(s=>{this.MidiConnection.sendMidiOff(s,n,a)}),this.scale_aid=void 0});A(this,"midi_notes_off",(e=0,t=this.MidiConnection.currentOutputIndex||0)=>{this.MidiConnection.sendAllNotesOff(e,t)});A(this,"midi_sound_off",(e=0,t=this.MidiConnection.currentOutputIndex||0)=>{this.MidiConnection.sendAllSoundOff(e,t)});A(this,"generateCacheKey",(...e)=>e.map(t=>JSON.stringify(t)).join(","));A(this,"resetAllFromCache",()=>{this.patternCache.forEach(e=>e.reset())});A(this,"removePatternFromCache",e=>{this.patternCache.delete(e)});A(this,"z",(e,t={},n="")=>{const a="z"+n.toString(),i=n===""?this.generateCacheKey(e,t):a;let s;return this.app.api.patternCache.has(i)&&(s=this.app.api.patternCache.get(i),typeof e=="string"&&s.input!==e&&(s=void 0)),s||(s=new MH(e,t,this.app,a),this.app.api.patternCache.set(i,s)),s.ziffers.generator&&s.ziffers.generatorDone&&this.removePatternFromCache(i),typeof n=="number"&&(s.zid=a),s.updateLastCallTime(),n!==""&&a!=="z0"&&s.sync("z0"),s});A(this,"z0",(e,t={})=>this.z(e,t,0));A(this,"z1",(e,t={})=>this.z(e,t,1));A(this,"z2",(e,t={})=>this.z(e,t,2));A(this,"z3",(e,t={})=>this.z(e,t,3));A(this,"z4",(e,t={})=>this.z(e,t,4));A(this,"z5",(e,t={})=>this.z(e,t,5));A(this,"z6",(e,t={})=>this.z(e,t,6));A(this,"z7",(e,t={})=>this.z(e,t,7));A(this,"z8",(e,t={})=>this.z(e,t,8));A(this,"z9",(e,t={})=>this.z(e,t,9));A(this,"z10",(e,t={})=>this.z(e,t,10));A(this,"z11",(e,t={})=>this.z(e,t,11));A(this,"z12",(e,t={})=>this.z(e,t,12));A(this,"z13",(e,t={})=>this.z(e,t,13));A(this,"z14",(e,t={})=>this.z(e,t,14));A(this,"z15",(e,t={})=>this.z(e,t,15));A(this,"z16",(e,t={})=>this.z(e,t,16));A(this,"counter",(e,t,n)=>(e in this.counters?(this.counters[e].limit!==t&&(this.counters[e].value=0,this.counters[e].limit=t),this.counters[e].step!==n&&(this.counters[e].step=n??this.counters[e].step),this.counters[e].value+=this.counters[e].step,this.counters[e].limit!==void 0&&this.counters[e].value>this.counters[e].limit&&(this.counters[e].value=0)):this.counters[e]={value:0,step:n??1,limit:t},this.counters[e].value));A(this,"$",this.counter);A(this,"i",e=>e!==void 0?(this.app.universes[this.app.selected_universe].global.evaluations=e,this.app.universes[this.app.selected_universe]):this.app.universes[this.app.selected_universe].global.evaluations);A(this,"drunk",e=>e!==void 0?(this._drunk.position=e,this._drunk.getPosition()):(this._drunk.step(),this._drunk.getPosition()));A(this,"drunk_max",e=>{this._drunk.max=e});A(this,"drunk_min",e=>{this._drunk.min=e});A(this,"drunk_wrap",e=>{this._drunk.toggleWrap(e)});A(this,"variable",(e,t)=>typeof e=="string"&&t===void 0?this.variables[e]:(this.variables[e]=t,this.variables[e]));A(this,"v",this.variable);A(this,"delete_variable",e=>{delete this.variables[e]});A(this,"dv",this.delete_variable);A(this,"clear_variables",()=>{this.variables={}});A(this,"cv",this.clear_variables);A(this,"randI",(e,t)=>Math.floor(this.randomGen()*(t-e+1))+e);A(this,"rand",(e,t)=>this.randomGen()*(t-e)+e);A(this,"irand",this.randI);A(this,"rI",this.randI);A(this,"r",this.rand);A(this,"ir",this.randI);A(this,"seed",e=>{typeof e=="number"&&(e=e.toString()),this.currentSeed!==e&&(this.currentSeed=e,this.randomGen=c_(e))});A(this,"localSeededRandom",e=>{if(typeof e=="number"&&(e=e.toString()),this.localSeeds.has(e))return this.localSeeds.get(e);const t=c_(e);return this.localSeeds.set(e,t),t});A(this,"clearLocalSeed",(e=void 0)=>{e&&this.localSeeds.delete(e.toString()),this.localSeeds.clear()});A(this,"quantize",(e,t)=>{if(t.length===0)return e;let n=t[0];return t.forEach(a=>{Math.abs(a-e)Math.min(Math.max(e,t),n));A(this,"cmp",this.clamp);A(this,"prob",e=>this.randomGen()*100this.randomGen()>.5);A(this,"odds",(e,t=1)=>this.randomGen()!1);A(this,"almostNever",(e=1)=>this.randomGen()<.025*this.ppqn()/(this.ppqn()*e));A(this,"rarely",(e=1)=>this.randomGen()<.1*this.ppqn()/(this.ppqn()*e));A(this,"scarcely",(e=1)=>this.randomGen()<.25*this.ppqn()/(this.ppqn()*e));A(this,"sometimes",(e=1)=>this.randomGen()<.5*this.ppqn()/(this.ppqn()*e));A(this,"often",(e=1)=>this.randomGen()<.75*this.ppqn()/(this.ppqn()*e));A(this,"frequently",(e=1)=>this.randomGen()<.9*this.ppqn()/(this.ppqn()*e));A(this,"almostAlways",(e=1)=>this.randomGen()<.985*this.ppqn()/(this.ppqn()*e));A(this,"always",(e=1)=>!0);A(this,"dice",e=>Math.floor(this.randomGen()*e)+1);A(this,"cbar",()=>this.app.clock.time_position.bar+1);A(this,"ctick",()=>this.app.clock.tick+1);A(this,"cpulse",()=>this.app.clock.time_position.pulse+1);A(this,"cbeat",()=>this.app.clock.time_position.beat+1);A(this,"ebeat",()=>this.app.clock.beats_since_origin+1);A(this,"epulse",()=>this.app.clock.pulses_since_origin+1);A(this,"nominator",()=>this.app.clock.time_signature[0]);A(this,"meter",()=>this.app.clock.time_signature[1]);A(this,"denominator",this.meter);A(this,"fill",()=>this.app.fill);A(this,"fullseq",(e,t)=>e.split("").every(n=>n==="x"||n==="o")?[...e].map(n=>n==="x").beat(t):!1);A(this,"seq",(e,t=.5)=>{let n=e.length*t,a=[];for(let i=1;i<=n+1;i+=t)a.push(Math.floor(i*10)/10);return a.pop(),a=a.filter((i,s)=>{const o=s%e.length;return e[o]==="x"}),this.oncount(a,n)});A(this,"beat",(e=1,t=0)=>(Array.isArray(e)?e:[e]).map(i=>(this.app.clock.pulses_since_origin-Math.floor(t*this.ppqn()))%Math.floor(i*this.ppqn())===0).some(i=>i===!0));A(this,"b",this.beat);A(this,"bar",(e=1,t=0)=>{const n=Array.isArray(e)?e:[e],a=this.app.clock.time_signature[1]*this.ppqn(),i=Math.floor(t*a);return n.map(o=>(this.app.clock.pulses_since_origin-i)%Math.floor(o*a)===0).some(o=>o===!0)});A(this,"B",this.bar);A(this,"pulse",(e=1,t=0)=>(Array.isArray(e)?e:[e]).map(i=>(this.app.clock.pulses_since_origin-t)%i===0).some(i=>i===!0));A(this,"p",this.pulse);A(this,"tick",(e,t=0)=>(Array.isArray(e)?e:[e]).map(i=>this.app.clock.time_position.pulse===i+t).some(i=>i===!0));A(this,"dur",e=>{let t=Array.isArray(e)?e:[e];return this.beat(t.dur(...t))});A(this,"flip",(e,t=50)=>{let n=e*2;const a=this.app.clock.pulses_since_origin,i=Math.floor(n*this.ppqn()),s=Math.floor(t/100*i);return a%i{let t=e*2;const n=this.app.clock.time_position.bar;return Math.floor(n/t)%2===0});A(this,"onbar",(e,t=this.app.clock.time_signature[0])=>{let n=this.app.clock.time_position.bar%t+1;return typeof e=="number"?e===n:e.some(a=>a==n)});A(this,"onbeat",(...e)=>{let t=[];return e.forEach(n=>{let a=n%this.nominator()||this.nominator(),i=Math.floor(a);i=i==0?this.nominator():i;let s=Math.floor((a-i)*this.ppqn()+1);s<=0&&(s=s+this.ppqn()*this.nominator()),t.push(i===this.cbeat()&&this.cpulse()===s)}),t.some(n=>n==!0)});A(this,"oncount",(e,t)=>{typeof e=="number"&&(e=[e]);const n=this.app.clock.pulses_since_origin;let a=[];return e.forEach(i=>{i=i<1?0:i-1;const s=Math.ceil(i*this.ppqn()),o=n%(this.ppqn()*t);return a.push(o===s)}),a.some(i=>i==!0)});A(this,"oneuclid",(e,t,n=0)=>{const i=this._euclidean_cycle(e,t,n).reduce((s,o,l)=>(o&&s.push(l+1),s),[]);return this.oncount(i,t)});A(this,"delay",(e,t)=>{setTimeout(t,e)});A(this,"delayr",(e,t,n)=>{[...Array(t).keys()].map(i=>e*i).forEach((i,s)=>{setTimeout(n,i)})});A(this,"euclid",(e,t,n,a=0)=>this._euclidean_cycle(t,n,a)[e%n]);A(this,"ec",this.euclid);A(this,"rhythm",(e,t,n,a=0)=>this.beat(e)&&this._euclidean_cycle(t,n,a).beat(e));A(this,"bin",(e,t)=>{let a=t.toString(2).split("").map(i=>i==="1");return a[e%a.length]});A(this,"binrhythm",(e,t)=>{let a=t.toString(2).split("").map(i=>i==="1");return this.beat(e)&&a.beat(e)});A(this,"range",(e,t,n)=>e*(n-t)+t);A(this,"line",(e,t,n=1)=>{const a=[];if(t>e&&n>0||t(Math.sin(this.app.clock.ctx.currentTime*Math.PI*2*e)+n)*t);A(this,"usine",(e=1,t=1,n=0)=>(this.sine(e,t,n)+1)/2*t);A(this,"saw",(e=1,t=1,n=0)=>(this.app.clock.ctx.currentTime*e%1*2-1+n)*t);A(this,"usaw",(e=1,t=1,n=0)=>(this.saw(e,t,n)+1)/2*t);A(this,"triangle",(e=1,t=1,n=0)=>(Math.abs(this.saw(e,t,n))*2-1)*t);A(this,"utriangle",(e=1,t=1,n=0)=>(this.triangle(e,t,n)+1)/2*t);A(this,"square",(e=1,t=1,n=0,a=.5)=>{const i=1/e;return((Date.now()/1e3+n)%i/i(this.square(e,t,n,a)+1)/2*t);A(this,"noise",(e=1)=>(this.randomGen()*2-1)*e);A(this,"min",(...e)=>Math.min(...e));A(this,"max",(...e)=>Math.max(...e));A(this,"mean",(...e)=>e.reduce((n,a)=>n+a,0)/e.length);A(this,"limit",(e,t,n)=>Math.min(Math.max(e,t),n));A(this,"abs",Math.abs);A(this,"speak",(e,t="en-US",n=0,a=1,i=1)=>{new aw({text:e,lang:t,voice:n,rate:a,pitch:i}).speak().then(()=>{}).catch(o=>{console.log(o)})});A(this,"stop_hydra",()=>{this.app.hydra.hush()});A(this,"sound",e=>e?new Fl(e,this.app):new lo);A(this,"snd",this.sound);A(this,"samples",ma);A(this,"log",e=>{console.log(e),this._logMessage(e)});A(this,"scale",id);A(this,"nearScales",BV);A(this,"rate",e=>{});A(this,"divseq",(...e)=>{const t=e[0],n=e.slice(1),a=this.app.clock.pulses_since_origin,i=Math.floor(a/Math.floor(t*this.ppqn()));return n[i%n.length]});A(this,"seqbeat",(...e)=>e[this.app.clock.time_position.beat%e.length]);A(this,"seqbar",(...e)=>e[(this.app.clock.time_position.bar+1)%e.length]);A(this,"register",(e,t)=>{sd.prototype[e]=function(...n){return t(this,...n)}});A(this,"shuffle",e=>e.sort(()=>this.randomGen()-.5));A(this,"reverse",e=>e.reverse());A(this,"rotate",e=>t=>t.slice(e,t.length).concat(t.slice(0,e)));A(this,"repeat",e=>t=>t.flatMap(n=>Array(e).fill(n)));A(this,"repeatOdd",e=>t=>t.flatMap((n,a)=>a%2===0?Array(e).fill(n):n));A(this,"repeatEven",e=>t=>t.flatMap((n,a)=>a%2!==0?Array(e).fill(n):n));A(this,"palindrome",e=>e.concat(e.slice(0,e.length-1).reverse()));A(this,"scope",e=>{this.app.osc={...this.app.osc,...e}});A(this,"raltfont",(e,t)=>{this.app.view.dispatch({effects:this.app.fontSize.reconfigure(Me.theme({"&":{fontFamily:e},".cm-gutters":{fontFamily:e},".cm-content":{fontFamily:e},".cm-comment":{fontFamily:t}}))})});A(this,"gif",e=>{const{url:t,posX:n=0,posY:a=0,opacity:i=1,size:s="auto",center:o=!1,rotation:l=0,filter:c="none",dur:u=1}=e;let m=u*this.app.clock.pulse_duration*this.app.clock.ppqn,p=m*.1,_=m-p;const O=document.createElement("img");O.src=t,O.style.position="fixed",O.style.left=o?"50%":`${n}px`,O.style.top=o?"50%":`${a}px`,O.style.opacity=`${i}`,O.style.zIndex="-1",s!=="auto"&&(O.style.width=s,O.style.height=s);const w=[`rotate(${l}deg)`];o&&w.unshift("translate(-50%, -50%)"),O.style.transform=w.join(" "),O.style.filter=c,O.style.transition=`opacity ${p}s ease`,document.body.appendChild(O),setTimeout(()=>{O.style.opacity="0"},_*1e3),setTimeout(()=>{document.body.contains(O)&&document.body.removeChild(O)},m*1e3)});A(this,"osc",(e,t,...n)=>{aC({address:e,port:t,args:n,timetag:Math.round(Date.now()+this.app.clock.deadline)})});A(this,"getOSC",e=>{if(e){let t=ll.filter(n=>n.address===e);return t=t.map(n=>n.data),t}else return ll});A(this,"tempo",e=>e===void 0?this.app.clock.bpm:((e<1||e>500)&&console.log(`Setting bpm to ${e}`),this.app.clock.bpm=e,e));A(this,"bpb",e=>e===void 0?this.app.clock.time_signature[0]:(e<1&&console.log(`Setting bpb to ${e}`),this.app.clock.time_signature[0]=e,e));A(this,"ppqn",e=>e===void 0?this.app.clock.ppqn:(e<1&&console.log(`Setting ppqn to ${e}`),this.app.clock.ppqn=e,e));A(this,"time_signature",(e,t)=>{this.app.clock.time_signature=[e,t]});this.app=e,this.MidiConnection=new IH(this,e.settings)}transmission(){return this.MidiConnection.activeNotes.length>0}_euclidean_cycle(e,t,n=0){if(e==t)return Array.from({length:t},()=>!0);function a(o,l){const c=o.length,u=(l+1)%c;return o[l]>o[u]}if(e>=t)return[!0];const i=Array.from({length:t},(o,l)=>(e*(l-1)%t+t)%t);let s=i.map((o,l)=>a(i,l));return n!=0&&(s=s.slice(n).concat(s.slice(0,n))),s}}function T(){T=function(){return e};var r,e={},t=Object.prototype,n=t.hasOwnProperty,a=Object.defineProperty||function(x,L,V){x[L]=V.value},i=typeof Symbol=="function"?Symbol:{},s=i.iterator||"@@iterator",o=i.asyncIterator||"@@asyncIterator",l=i.toStringTag||"@@toStringTag";function c(x,L,V){return Object.defineProperty(x,L,{value:V,enumerable:!0,configurable:!0,writable:!0}),x[L]}try{c({},"")}catch{c=function(L,V,z){return L[V]=z}}function u(x,L,V,z){var te=Object.create((L&&L.prototype instanceof k?L:k).prototype),ie=new ae(z||[]);return a(te,"_invoke",{value:Y(x,V,ie)}),te}function m(x,L,V){try{return{type:"normal",arg:x.call(L,V)}}catch(z){return{type:"throw",arg:z}}}e.wrap=u;var p="suspendedStart",_="suspendedYield",O="executing",w="completed",I={};function k(){}function G(){}function X(){}var h={};c(h,s,function(){return this});var S=Object.getPrototypeOf,b=S&&S(S(re([])));b&&b!==t&&n.call(b,s)&&(h=b);var N=X.prototype=k.prototype=Object.create(h);function M(x){["next","throw","return"].forEach(function(L){c(x,L,function(V){return this._invoke(L,V)})})}function F(x,L){function V(te,ie,_e,Ce){var Ie=m(x[te],x,ie);if(Ie.type!=="throw"){var Ee=Ie.arg,we=Ee.value;return we&&typeof we=="object"&&n.call(we,"__await")?L.resolve(we.__await).then(function(de){V("next",de,_e,Ce)},function(de){V("throw",de,_e,Ce)}):L.resolve(we).then(function(de){Ee.value=de,_e(Ee)},function(de){return V("throw",de,_e,Ce)})}Ce(Ie.arg)}var z;a(this,"_invoke",{value:function(te,ie){function _e(){return new L(function(Ce,Ie){V(te,ie,Ce,Ie)})}return z=z?z.then(_e,_e):_e()}})}function Y(x,L,V){var z=p;return function(te,ie){if(z===O)throw new Error("Generator is already running");if(z===w){if(te==="throw")throw ie;return{value:r,done:!0}}for(V.method=te,V.arg=ie;;){var _e=V.delegate;if(_e){var Ce=q(_e,V);if(Ce){if(Ce===I)continue;return Ce}}if(V.method==="next")V.sent=V._sent=V.arg;else if(V.method==="throw"){if(z===p)throw z=w,V.arg;V.dispatchException(V.arg)}else V.method==="return"&&V.abrupt("return",V.arg);z=O;var Ie=m(x,L,V);if(Ie.type==="normal"){if(z=V.done?w:_,Ie.arg===I)continue;return{value:Ie.arg,done:V.done}}Ie.type==="throw"&&(z=w,V.method="throw",V.arg=Ie.arg)}}}function q(x,L){var V=L.method,z=x.iterator[V];if(z===r)return L.delegate=null,V==="throw"&&x.iterator.return&&(L.method="return",L.arg=r,q(x,L),L.method==="throw")||V!=="return"&&(L.method="throw",L.arg=new TypeError("The iterator does not provide a '"+V+"' method")),I;var te=m(z,x.iterator,L.arg);if(te.type==="throw")return L.method="throw",L.arg=te.arg,L.delegate=null,I;var ie=te.arg;return ie?ie.done?(L[x.resultName]=ie.value,L.next=x.nextLoc,L.method!=="return"&&(L.method="next",L.arg=r),L.delegate=null,I):ie:(L.method="throw",L.arg=new TypeError("iterator result is not an object"),L.delegate=null,I)}function ee(x){var L={tryLoc:x[0]};1 in x&&(L.catchLoc=x[1]),2 in x&&(L.finallyLoc=x[2],L.afterLoc=x[3]),this.tryEntries.push(L)}function se(x){var L=x.completion||{};L.type="normal",delete L.arg,x.completion=L}function ae(x){this.tryEntries=[{tryLoc:"root"}],x.forEach(ee,this),this.reset(!0)}function re(x){if(x||x===""){var L=x[s];if(L)return L.call(x);if(typeof x.next=="function")return x;if(!isNaN(x.length)){var V=-1,z=function te(){for(;++V=0;--z){var te=this.tryEntries[z],ie=te.completion;if(te.tryLoc==="root")return V("end");if(te.tryLoc<=this.prev){var _e=n.call(te,"catchLoc"),Ce=n.call(te,"finallyLoc");if(_e&&Ce){if(this.prev=0;--V){var z=this.tryEntries[V];if(z.tryLoc<=this.prev&&n.call(z,"finallyLoc")&&this.prev=0;--L){var V=this.tryEntries[L];if(V.finallyLoc===x)return this.complete(V.completion,V.afterLoc),se(V),I}},catch:function(x){for(var L=this.tryEntries.length-1;L>=0;--L){var V=this.tryEntries[L];if(V.tryLoc===x){var z=V.completion;if(z.type==="throw"){var te=z.arg;se(V)}return te}}throw new Error("illegal catch attempt")},delegateYield:function(x,L,V){return this.delegate={iterator:re(x),resultName:L,nextLoc:V},this.method==="next"&&(this.arg=r),I}},e}function $E(r,e){(e==null||e>r.length)&&(e=r.length);for(var t=0,n=new Array(e);t=r.length?{done:!0}:{done:!1,value:r[n++]}}}throw new TypeError(`Invalid attempt to iterate non-iterable instance. -In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}var sw="0.9.7",Oie=T().mark(ow);function ow(){var r,e,t;return T().wrap(function(n){for(;;)switch(n.prev=n.next){case 0:r=0,e=[0n,1n,1n,1n,2n,1n,2n,1n,5n,2n,2n,1n,5n,1n,2n,1n,14n,1n,5n,1n,5n,2n,2n,1n,15n,2n,2n,5n,4n,1n,4n,1n,51n,1n,2n,1n,14n,1n,2n,2n,14n,1n,6n,1n,4n,2n,2n,1n,52n,2n,5n,1n,5n,1n,15n,2n,13n,2n,2n,1n,13n,1n,2n,4n,267n,1n,4n,1n,5n,1n,4n,1n,50n,1n,2n,3n,4n,1n,6n,1n,52n,15n,2n,1n,15n,1n,2n,1n,12n,1n,10n,1n,4n,2n,2n,1n,231n,1n,5n,2n,16n,1n,4n,1n,14n,2n,2n,1n,45n,1n,6n,2n,43n,1n,6n,1n,5n,4n,2n,1n,47n,2n,2n,1n,4n,5n,16n,1n,2328n,2n,4n,1n,10n,1n,2n,5n,15n,1n,4n,1n,11n,1n,2n,1n,197n,1n,2n,6n,5n,1n,13n,1n,12n,2n,4n,2n,18n,1n,2n,1n,238n,1n,55n,1n,5n,2n,2n,1n,57n,2n,4n,5n,4n,1n,4n,2n,42n,1n,2n,1n,37n,1n,4n,2n,12n,1n,6n,1n,4n,13n,4n,1n,1543n,1n,2n,2n,12n,1n,10n,1n,52n,2n,2n,2n,12n,2n,2n,2n,51n,1n,12n,1n,5n,1n,2n,1n,177n,1n,2n,2n,15n,1n,6n,1n,197n,6n,2n,1n,15n,1n,4n,2n,14n,1n,16n,1n,4n,2n,4n,1n,208n,1n,5n,67n,5n,2n,4n,1n,12n,1n,15n,1n,46n,2n,2n,1n,56092n,1n,6n,1n,15n,2n,2n,1n,39n,1n,4n,1n,4n,1n,30n,1n,54n,5n,2n,4n,10n,1n,2n,4n,40n,1n,4n,1n,4n,2n,4n,1n,1045n,2n,4n,2n,5n,1n,23n,1n,14n,5n,2n,1n,49n,2n,2n,1n,42n,2n,10n,1n,9n,2n,6n,1n,61n,1n,2n,4n,4n,1n,4n,1n,1640n,1n,4n,1n,176n,2n,2n,2n,15n,1n,12n,1n,4n,5n,2n,1n,228n,1n,5n,1n,15n,1n,18n,5n,12n,1n,2n,1n,12n,1n,10n,14n,195n,1n,4n,2n,5n,2n,2n,1n,162n,2n,2n,3n,11n,1n,6n,1n,42n,2n,4n,1n,15n,1n,4n,7n,12n,1n,60n,1n,11n,2n,2n,1n,20169n,2n,2n,4n,5n,1n,12n,1n,44n,1n,2n,1n,30n,1n,2n,5n,221n,1n,6n,1n,5n,16n,6n,1n,46n,1n,6n,1n,4n,1n,10n,1n,235n,2n,4n,1n,41n,1n,2n,2n,14n,2n,4n,1n,4n,2n,4n,1n,775n,1n,4n,1n,5n,1n,6n,1n,51n,13n,4n,1n,18n,1n,2n,1n,1396n,1n,34n,1n,5n,2n,2n,1n,54n,1n,2n,5n,11n,1n,12n,1n,51n,4n,2n,1n,55n,1n,4n,2n,12n,1n,6n,2n,11n,2n,2n,1n,1213n,1n,2n,2n,12n,1n,261n,1n,14n,2n,10n,1n,12n,1n,4n,4n,42n,2n,4n,1n,56n,1n,2n,1n,202n,2n,6n,6n,4n,1n,8n,1n,10494213n,15n,2n,1n,15n,1n,4n,1n,49n,1n,10n,1n,4n,6n,2n,1n,170n,2n,4n,2n,9n,1n,4n,1n,12n,1n,2n,2n,119n,1n,2n,2n,246n,1n,24n,1n,5n,4n,16n,1n,39n,1n,2n,2n,4n,1n,16n,1n,180n,1n,2n,1n,10n,1n,2n,49n,12n,1n,12n,1n,11n,1n,4n,2n,8681n,1n,5n,2n,15n,1n,6n,1n,15n,4n,2n,1n,66n,1n,4n,1n,51n,1n,30n,1n,5n,2n,4n,1n,205n,1n,6n,4n,4n,7n,4n,1n,195n,3n,6n,1n,36n,1n,2n,2n,35n,1n,6n,1n,15n,5n,2n,1n,260n,15n,2n,2n,5n,1n,32n,1n,12n,2n,2n,1n,12n,2n,4n,2n,21541n,1n,4n,1n,9n,2n,4n,1n,757n,1n,10n,5n,4n,1n,6n,2n,53n,5n,4n,1n,40n,1n,2n,2n,12n,1n,18n,1n,4n,2n,4n,1n,1280n,1n,2n,17n,16n,1n,4n,1n,53n,1n,4n,1n,51n,1n,15n,2n,42n,2n,8n,1n,5n,4n,2n,1n,44n,1n,2n,1n,36n,1n,62n,1n,1387n,1n,2n,1n,10n,1n,6n,4n,15n,1n,12n,2n,4n,1n,2n,1n,840n,1n,5n,2n,5n,2n,13n,1n,40n,504n,4n,1n,18n,1n,2n,6n,195n,2n,10n,1n,15n,5n,4n,1n,54n,1n,2n,2n,11n,1n,39n,1n,42n,1n,4n,2n,189n,1n,2n,2n,39n,1n,6n,1n,4n,2n,2n,1n,1090235n,1n,12n,1n,5n,1n,16n,4n,15n,5n,2n,1n,53n,1n,4n,5n,172n,1n,4n,1n,5n,1n,4n,2n,137n,1n,2n,1n,4n,1n,24n,1n,1211n,2n,2n,1n,15n,1n,4n,1n,14n,1n,113n,1n,16n,2n,4n,1n,205n,1n,2n,11n,20n,1n,4n,1n,12n,5n,4n,1n,30n,1n,4n,2n,1630n,2n,6n,1n,9n,13n,2n,1n,186n,2n,2n,1n,4n,2n,10n,2n,51n,2n,10n,1n,10n,1n,4n,5n,12n,1n,12n,1n,11n,2n,2n,1n,4725n,1n,2n,3n,9n,1n,8n,1n,14n,4n,4n,5n,18n,1n,2n,1n,221n,1n,68n,1n,15n,1n,2n,1n,61n,2n,4n,15n,4n,1n,4n,1n,19349n,2n,2n,1n,150n,1n,4n,7n,15n,2n,6n,1n,4n,2n,8n,1n,222n,1n,2n,4n,5n,1n,30n,1n,39n,2n,2n,1n,34n,2n,2n,4n,235n,1n,18n,2n,5n,1n,2n,2n,222n,1n,4n,2n,11n,1n,6n,1n,42n,13n,4n,1n,15n,1n,10n,1n,42n,1n,10n,2n,4n,1n,2n,1n,11394n,2n,4n,2n,5n,1n,12n,1n,42n,2n,4n,1n,900n,1n,2n,6n,51n,1n,6n,2n,34n,5n,2n,1n,46n,1n,4n,2n,11n,1n,30n,1n,196n,2n,6n,1n,10n,1n,2n,15n,199n,1n,4n,1n,4n,2n,2n,1n,954n,1n,6n,2n,13n,1n,23n,2n,12n,2n,2n,1n,37n,1n,4n,2n,49487367289n,4n,66n,2n,5n,19n,4n,1n,54n,1n,4n,2n,11n,1n,4n,1n,231n,1n,2n,1n,36n,2n,2n,2n,12n,1n,40n,1n,4n,51n,4n,2n,1028n,1n,5n,1n,15n,1n,10n,1n,35n,2n,4n,1n,12n,1n,4n,4n,42n,1n,4n,2n,5n,1n,10n,1n,583n,2n,2n,6n,4n,2n,6n,1n,1681n,6n,4n,1n,77n,1n,2n,2n,15n,1n,16n,1n,51n,2n,4n,1n,170n,1n,4n,5n,5n,1n,12n,1n,12n,2n,2n,1n,46n,1n,4n,2n,1092n,1n,8n,1n,5n,14n,2n,2n,39n,1n,4n,2n,4n,1n,254n,1n,42n,2n,2n,1n,41n,1n,2n,5n,39n,1n,4n,1n,11n,1n,10n,1n,157877n,1n,2n,4n,16n,1n,6n,1n,49n,13n,4n,1n,18n,1n,4n,1n,53n,1n,32n,1n,5n,1n,2n,2n,279n,1n,4n,2n,11n,1n,4n,3n,235n,2n,2n,1n,99n,1n,8n,2n,14n,1n,6n,1n,11n,14n,2n,1n,1040n,1n,2n,1n,13n,2n,16n,1n,12n,5n,27n,1n,12n,1n,2n,69n,1387n,1n,16n,1n,20n,2n,4n,1n,164n,4n,2n,2n,4n,1n,12n,1n,153n,2n,2n,1n,15n,1n,2n,2n,51n,1n,30n,1n,4n,1n,4n,1n,1460n,1n,55n,4n,5n,1n,12n,2n,14n,1n,4n,1n,131n,1n,2n,2n,42n,3n,6n,1n,5n,5n,4n,1n,44n,1n,10n,3n,11n,1n,10n,1n,1116461n,5n,2n,1n,10n,1n,2n,4n,35n,1n,12n,1n,11n,1n,2n,1n,3609n,1n,4n,2n,50n,1n,24n,1n,12n,2n,2n,1n,18n,1n,6n,2n,244n,1n,18n,1n,9n,2n,2n,1n,181n,1n,2n,51n,4n,2n,12n,1n,42n,1n,8n,5n,61n,1n,4n,1n,12n,1n,6n,1n,11n,2n,4n,1n,11720n,1n,2n,1n,5n,1n,112n,1n,52n,1n,2n,2n,12n,1n,4n,4n,245n,1n,4n,1n,9n,5n,2n,1n,211n,2n,4n,2n,38n,1n,6n,15n,195n,15n,6n,2n,29n,1n,2n,1n,14n,1n,32n,1n,4n,2n,4n,1n,198n,1n,4n,8n,5n,1n,4n,1n,153n,1n,2n,1n,227n,2n,4n,5n,19324n,1n,8n,1n,5n,4n,4n,1n,39n,1n,2n,2n,15n,4n,16n,1n,53n,6n,4n,1n,40n,1n,12n,5n,12n,1n,4n,2n,4n,1n,2n,1n,5958n,1n,4n,5n,12n,2n,6n,1n,14n,4n,10n,1n,40n,1n,2n,2n,179n,1n,1798n,1n,15n,2n,4n,1n,61n,1n,2n,5n,4n,1n,46n,1n,1387n,1n,6n,2n,36n,2n,2n,1n,49n,1n,24n,1n,11n,10n,2n,1n,222n,1n,4n,3n,5n,1n,10n,1n,41n,2n,4n,1n,174n,1n,2n,2n,195n,2n,4n,1n,15n,1n,6n,1n,889n,1n,2n,2n,4n,1n,12n,2n,178n,13n,2n,1n,15n,4n,4n,1n,12n,1n,20n,1n,4n,5n,4n,1n,408641062n,1n,2n,60n,36n,1n,4n,1n,15n,2n,2n,1n,46n,1n,16n,1n,54n,1n,24n,2n,5n,2n,4n,1n,221n,1n,4n,1n,11n,1n,30n,1n,928n,2n,4n,1n,10n,2n,2n,13n,14n,1n,4n,1n,11n,2n,6n,1n,697n,1n,4n,3n,5n,1n,8n,1n,12n,5n,2n,2n,64n,1n,4n,2n,10281n,1n,10n,1n,5n,1n,4n,1n,54n,1n,8n,2n,11n,1n,4n,1n,51n,6n,2n,1n,477n,1n,2n,2n,56n,5n,6n,1n,11n,5n,4n,1n,1213n,1n,4n,2n,5n,1n,72n,1n,68n,2n,2n,1n,12n,1n,2n,13n,42n,1n,38n,1n,9n,2n,2n,2n,137n,1n,2n,5n,11n,1n,6n,1n,21507n,5n,10n,1n,15n,1n,4n,1n,34n,2n,60n,2n,4n,5n,2n,1n,1005n,2n,5n,2n,5n,1n,4n,1n,12n,1n,10n,1n,30n,1n,10n,1n,235n,1n,6n,1n,50n,309n,4n,2n,39n,7n,2n,1n,11n,1n,36n,2n,42n,2n,2n,5n,40n,1n,2n,2n,39n,1n,12n,1n,4n,3n,2n,1n,47937n,1n,4n,2n,5n,1n,13n,1n,35n,4n,4n,1n,37n,1n,4n,2n,51n,1n,16n,1n,9n,1n,30n,2n,64n,1n,2n,14n,4n,1n,4n,1n,1285n,1n,2n,1n,228n,1n,2n,5n,53n,1n,8n,2n,4n,2n,2n,4n,260n,1n,6n,1n,15n,1n,110n,1n,12n,2n,4n,1n,12n,1n,4n,5n,1083553n,1n,12n,1n,5n,1n,4n,1n,749n,1n,4n,2n,11n,3n,30n,1n,54n,13n,6n,1n,15n,2n,2n,9n,12n,1n,10n,1n,35n,2n,2n,1n,1264n,2n,4n,6n,5n,1n,18n,1n,14n,2n,4n,1n,117n,1n,2n,2n,178n,1n,6n,1n,5n,4n,4n,1n,162n,2n,10n,1n,4n,1n,16n,1n,1630n,2n,2n,2n,56n,1n,10n,15n,15n,1n,4n,1n,4n,2n,12n,1n,1096n,1n,2n,21n,9n,1n,6n,1n,39n,5n,2n,1n,18n,1n,4n,2n,195n,1n,120n,1n,9n,2n,2n,1n,54n,1n,4n,4n,36n,1n,4n,1n,186n,2n,2n,1n,36n,1n,6n,15n,12n,1n,8n,1n,4n,5n,4n,1n,241004n,1n,5n,1n,15n,4n,10n,1n,15n,2n,4n,1n,34n,1n,2n,4n,167n,1n,12n,1n,15n,1n,2n,1n,3973n,1n,4n,1n,4n,1n,40n,1n,235n,11n,2n,1n,15n,1n,6n,1n,144n,1n,18n,1n,4n,2n,2n,2n,203n,1n,4n,15n,15n,1n,12n,2n,39n,1n,4n,1n,120n,1n,2n,2n,1388n,1n,6n,1n,13n,4n,4n,1n,39n,1n,2n,5n,4n,1n,66n,1n,963n,1n,8n,1n,10n,2n,4n,4n,12n,2n,12n,1n,4n,2n,4n,2n,6538n,1n,2n,2n,20n,1n,6n,2n,46n,63n,2n,1n,88n,1n,12n,1n,42n,1n,10n,2n,5n,5n,2n,1n,175n,2n,2n,2n,11n,1n,12n,1n];case 1:if(!(r1n;e--)r*=e;return r}function mw(r){for(var e=[];r>0n;)e.unshift(r%2n),r>>=1n;return e.join("")}var Iie=T().mark(Ai);function Ai(){var r;return T().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:r=2n;case 1:if(!aa(r)){e.next=4;break}return e.next=4,r;case 4:r++,e.next=1;break;case 7:case"end":return e.stop()}},Iie)}var Nie=T().mark(hw);function hw(){var r,e,t;return T().wrap(function(n){for(;;)switch(n.prev=n.next){case 0:r=mn(Ai());case 1:if((e=r()).done){n.next=7;break}return t=e.value,n.next=5,BigInt(0|Math.sqrt(Number(t)));case 5:n.next=1;break;case 7:case"end":return n.stop()}},Nie)}var Die=T().mark(pw);function pw(){return T().wrap(function(r){for(;;)switch(r.prev=r.next){case 0:return r.next=2,1n;case 2:return r.next=4,0n;case 4:r.next=2;break;case 6:case"end":return r.stop()}},Die)}var xie=T().mark(fw);function fw(){var r,e,t;return T().wrap(function(n){for(;;)switch(n.prev=n.next){case 0:r=0,e=[1n,1n,2n,2n,3n,4n,5n,6n,7n,8n,11n,12n,15n,16n,19n,22n,25n,28n,31n,34n,40n,43n,49n,52n,58n,64n,70n,76n,82n,88n,98n,104n,114n,120n,130n,140n,150n,160n,170n,180n,195n,205n,220n,230n,245n,260n,275n,290n,305n,320n,341n,356n,377n,392n,413n,434n,455n,476n,497n,518n,546n];case 1:if(!(rr)){i.next=8;break}return i.next=7,t[r];case 7:r++;case 8:e++,i.next=2;break;case 11:case"end":return i.stop()}},dse)}var mse=T().mark(Hw);function Hw(){var r,e,t,n,a,i;return T().wrap(function(s){for(;;)switch(s.prev=s.next){case 0:return t=function(o){return o in e||(e[o]=r.next().value),e[o]},s.next=3,1n;case 3:r=F1(),e=[],n=[1n],a=1;case 7:for(n[a]=0n,i=1;i<=a;i++)n[a]+=n[a-i]*t(i);return n[a]/=BigInt(a),s.next=12,n[a];case 12:a++,s.next=7;break;case 15:case"end":return s.stop()}},mse)}var hse=T().mark(zw);function zw(){var r;return T().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:r=1n;case 1:return e.next=3,r;case 3:r=10n*r+1n,e.next=1;break;case 6:case"end":return e.stop()}},hse)}var pse=T().mark(Ww);function Ww(){var r,e,t;return T().wrap(function(n){for(;;)switch(n.prev=n.next){case 0:r=mn(Ai());case 1:if((e=r()).done){n.next=8;break}if(t=e.value,!aa(BigInt(Math.pow(2,Number(t)))-1n)){n.next=6;break}return n.next=6,t;case 6:n.next=1;break;case 8:case"end":return n.stop()}},pse)}var fse=T().mark(Xw);function Xw(){var r,e,t;return T().wrap(function(n){for(;;)switch(n.prev=n.next){case 0:r=0,e=[1n,1n,1n,2n,3n,5n,8n,13n,21n,34n,55n,89n,144n,232n,375n,606n,979n,1582n,2556n,4130n,6673n,10782n,17421n,28148n,45480n,73484n,118732n,191841n,309967n,500829n,809214n,1307487n,2112571n,3413385n,5515174n,8911138n,14398164n,23263822n,37588502n,60733592n,98130253n,158553878n,256183302n,413927966n,668803781n,1080619176n,1746009572n,2821113574n,4558212008n];case 1:if(!(rr||r%n!==0n)){a.next=7;break}return a.abrupt("continue",11);case 7:a.next=2;break;case 9:return a.next=11,r;case 11:r++,a.next=1;break;case 14:case"end":return a.stop()}},Cue)}var Aue=T().mark(ax);function ax(){var r;return T().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:r=0n;case 1:if((mw(r).match(/1/g)||[]).length%2!=0){e.next=4;break}return e.next=4,r;case 4:r++,e.next=1;break;case 7:case"end":return e.stop()}},Aue)}var wue=T().mark(ix);function ix(){var r,e;return T().wrap(function(t){for(;;)switch(t.prev=t.next){case 0:r=1n;case 1:e=0;case 2:if(!(er?0n:e===1n||e===r?1n:O_(r-1n,e-1n)+O_(r-e,e)}function Sx(){var r,e;return T().wrap(function(t){for(;;)switch(t.prev=t.next){case 0:r=1n;case 1:e=1n;case 2:if(!(e<=r)){t.next=8;break}return t.next=5,O_(r,e);case 5:e++,t.next=2;break;case 8:r++,t.next=1;break;case 11:case"end":return t.stop()}},Que)}var Vue=T().mark(Ox);function Ox(){var r;return T().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:r=1n;case 1:return e.next=3,aa(r)?1n:0n;case 3:r++,e.next=1;break;case 6:case"end":return e.stop()}},Vue)}var Hue=T().mark(vx);function vx(){var r,e;return T().wrap(function(t){for(;;)switch(t.prev=t.next){case 0:r=0n;case 1:return t.next=3,1n;case 3:e=0;case 4:if(!(el)){p.next=6;break}return p.abrupt("break",11);case 6:return p.next=8,m;case 8:t.delete(m);case 9:p.next=2;break;case 11:return p.next=13,l;case 13:r.push(l),e.push(2n),Object.keys(r).forEach(function(_){for(var O=parseInt(_,10),w=-1n,I=e[O];w{Array.prototype.mouseX=function(){const e=r.mouseX(),n=window.innerWidth/this.length,a=Math.floor(e/n);return this[a]},Array.prototype.mouseY=function(){const e=r.mouseY(),n=window.innerHeight/this.length,a=Math.floor(e/n);return this[a]},Array.prototype.square=function(){return this.map(e=>e*e)},Array.prototype.sometimes=function(e){return r.randomGen()<.5?e(this):this},Array.prototype.apply=function(e){return e(this)},Array.prototype.sqrt=function(){if(this.some(e=>e<0))throw new Error("Cannot take square root of negative number");return this.map(e=>Math.sqrt(e))},Array.prototype.add=function(e){return this.map(t=>t+e)},Array.prototype.sub=function(e){return this.map(t=>t-e)},Array.prototype.mult=function(e){return this.map(t=>t*e)},Array.prototype.div=function(e){if(e===0)throw new Error("Division by zero");return this.map(t=>t/e)},Array.prototype.pick=function(){return this[Math.floor(r.randomGen()*this.length)]},Array.prototype.gen=function(e,t,n){return n<1?[]:Array.from({length:n},()=>Math.floor(r.randomGen()*(t-e+1))+e)},Array.prototype.bar=function(e=1){return e===1?this[r.app.clock.time_position.bar%this.length]:this[Math.floor(r.app.clock.time_position.bar/e)%this.length]},Array.prototype.beat=function(e=1){const t=e,n=r.app.clock.pulses_since_origin,a=Math.floor(n/Math.floor(t*r.ppqn()));return this[a%this.length]},Array.prototype.b=Array.prototype.beat,Array.prototype.dur=function(...e){const t=r.app.clock.pulses_since_origin,n=r.ppqn(),a=this.map((l,c)=>e[c%e.length]),i=a.reduce((l,c)=>l+c*n,0),s=t%i;let o=0;for(let l=0;l0)e=e%t;else return this;const n=this.splice(-e,e);return this.unshift(...n),this},Array.prototype.unique=function(){const e=new Set;let t=0;for(let n=0;n100)throw new Error("Amount should be between 0 and 100");if(this.length<=1)return this;for(let t=0;t1)this.splice(t,1);else return this;else t++;return this},Array.prototype.repeat=function(e=1){if(e<1)throw new Error("Amount should be at least 1");let t=[];for(let n=0;n(a%i+i)%i,n=zA(Ta(r));return this.map(a=>{const i=Math.floor(a/n.length)*12;return n[t(a,n.length)]+e+i})};Array.prototype.scaleArp=function(r="major",e=0){const t=zA(Ta(r));let n=[];e=e>t.length?t.length:e,e=e==0?t.length:e;for(let a=0;a{if(!r)return;r.width=window.innerWidth,r.height=window.innerHeight;const e=r.getContext("2d"),t=window.devicePixelRatio||1;r.width=window.innerWidth*t,r.height=window.innerHeight*t,e&&e.scale(t,t)},Mx=r=>(r.settings.saveApplicationToLocalStorage(r.universes,r.settings),null),lde=r=>(r.currentFile().candidate=r.view.state.doc.toString(),r.currentFile().committed=r.view.state.doc.toString(),r.settings.saveApplicationToLocalStorage(r.universes,r.settings),rC.close(),er.close(),null),cde=(r,e,t=!1)=>{e.addEventListener("resize",()=>GE(r.interface.scope)),e.addEventListener("resize",()=>GE(r.interface.feedback)),e.addEventListener("beforeunload",n=>{n.preventDefault(),lde(r)}),e.addEventListener("visibilitychange",n=>{n.preventDefault(),Mx(r)}),t&&(localStorage.openpages=Date.now(),e.addEventListener("storage",function(n){n.key=="openpages"&&(localStorage.page_available=Date.now()),n.key=="page_available"&&(document.getElementById("all").classList.add("invisible"),alert("Topos is already opened in another tab. Close this tab now to prevent data loss."))},!1))},ude=r=>{const e=pC(),t=Object.keys(e).map(a=>({type:"output",regex:new RegExp(`<${a}([^>]*)>`,"g"),replace:(i,s)=>`<${a} class="${e[a]}" ${s}>`}));r.interface.line_numbers_checkbox.checked=r.settings.line_numbers,r.interface.time_position_checkbox.checked=r.settings.time_position,r.interface.tips_checkbox.checked=r.settings.tips,r.interface.completion_checkbox.checked=r.settings.completions,r.interface.midi_clock_checkbox.checked=r.settings.send_clock,r.interface.midi_channels_scripts.checked=r.settings.midi_channels_scripts,r.interface.midi_clock_ppqn.value=r.settings.midi_clock_ppqn.toString(),r.interface.load_demo_songs.checked=r.settings.load_demo_songs;const n=document.querySelectorAll('[id^="tab-"]');for(let a=0;a{n[a].classList.add("bg-orange-300");for(let l=0;l{Ma(),r.updateKnownUniversesView(),Eu()}),r.buttonElements.play_buttons.forEach(a=>{a.addEventListener("click",()=>{r.isPlaying?(r.setButtonHighlighting("pause",!0),r.isPlaying=!r.isPlaying,r.clock.pause(),r.api.MidiConnection.sendStopMessage()):(r.setButtonHighlighting("play",!0),r.isPlaying=!r.isPlaying,r.clock.start(),r.api.MidiConnection.sendStartMessage())})}),r.buttonElements.clear_buttons.forEach(a=>{a.addEventListener("click",()=>{r.setButtonHighlighting("clear",!0),confirm("Do you want to reset the current universe?")&&(r.universes[r.selected_universe]=structuredClone(cl),r.updateEditorView())})}),r.interface.documentation_button.addEventListener("click",()=>{wA(r)}),r.interface.destroy_universes_button.addEventListener("click",()=>{confirm("Do you want to destroy all universes?")&&(r.universes={...m1},r.updateKnownUniversesView())}),r.interface.universe_viewer.addEventListener("keydown",a=>{if(a.key==="Enter"){let i=r.interface.universe_viewer.value.trim();i.length>2&&i.length<40&&(i!==r.selected_universe&&(Object.defineProperty(r.universes,i,Object.getOwnPropertyDescriptor(r.universes,r.selected_universe)),delete r.universes[r.selected_universe]),r.selected_universe=i,ul(r,r.selected_universe),r.interface.universe_viewer.placeholder=i,r.interface.universe_viewer.value="")}}),r.interface.audio_nudge_range.addEventListener("input",()=>{}),r.interface.dough_nudge_range.addEventListener("input",()=>{r.dough_nudge=parseInt(r.interface.dough_nudge_range.value)}),r.interface.upload_universe_button.addEventListener("click",()=>{const a=document.createElement("input");a.type="file",a.accept=".json",a.addEventListener("change",i=>{var l;const o=(l=i.target.files)==null?void 0:l[0];if(o){const c=new FileReader;c.readAsText(o,"UTF-8"),c.onload=u=>{const m=JSON.parse(u.target.result);for(const[p,_]of Object.entries(m))r.universes[p]=_},c.onerror=u=>{console.error("An error occurred reading the file:",u)}}}),document.body.appendChild(a),a.click(),document.body.removeChild(a)}),r.interface.download_universe_button.addEventListener("click",()=>{r.settings.saveApplicationToLocalStorage(r.universes,r.settings);let a=`topos-universes-${Date.now()}.json`;const i=new Blob([JSON.stringify(r.settings.universes)],{type:"application/json"}),s=URL.createObjectURL(i),o=document.createElement("a");o.href=s,o.download=a,document.body.appendChild(o),o.click(),document.body.removeChild(o),URL.revokeObjectURL(s)}),r.interface.load_universe_button.addEventListener("click",()=>{let a=r.interface.buffer_search.value;a.length>2&&a.length<20&&!a.includes(" ")&&(r.settings.selected_universe=a,ul(r,a),r.interface.buffer_search.value="",t_(),r.view.focus(),hC())}),r.interface.eval_button.addEventListener("click",()=>{r.currentFile().candidate=r.view.state.doc.toString(),r.flashBackground("#404040",200)}),r.buttonElements.stop_buttons.forEach(a=>{a.addEventListener("click",()=>{r.setButtonHighlighting("stop",!0),r.isPlaying=!1,r.clock.stop()})}),r.interface.local_button.addEventListener("click",()=>r.changeModeFromInterface("local")),r.interface.global_button.addEventListener("click",()=>r.changeModeFromInterface("global")),r.interface.init_button.addEventListener("click",()=>r.changeModeFromInterface("init")),r.interface.note_button.addEventListener("click",()=>r.changeModeFromInterface("notes")),r.interface.font_family_selector.addEventListener("change",()=>{let a=r.interface.font_family_selector.value;console.log("Picking new font : "+a),r.settings.font=a,r.view.dispatch({effects:r.fontSize.reconfigure(Me.theme({"&":{fontSize:r.settings.font_size+"px"},".cm-content":{fontFamily:a,fontSize:r.settings.font_size+"px"},".cm-gutters":{fontSize:r.settings.font_size+"px"}}))})}),r.interface.font_size_input.addEventListener("input",()=>{let a=r.interface.font_size_input.value;r.settings.font_size=parseInt(a),r.view.dispatch({effects:r.fontSize.reconfigure(Me.theme({"&":{fontSize:r.settings.font_size+"px"},".cm-content":{fontFamily:r.settings.font,fontSize:r.settings.font_size+"px"},".cm-gutters":{fontSize:r.settings.font_size+"px"}}))})}),r.interface.settings_button.addEventListener("click",()=>{const a=document.getElementById("font-family");a&&(a.value=r.settings.font);const i=r.interface.dough_nudge_range;i.value=r.dough_nudge.toString();const s=document.getElementById("doughnumber");s.value=r.dough_nudge.toString(),r.settings.font_size===null&&(r.settings.font_size=12);const o=r.interface.font_size_input;o.value=r.settings.font_size.toString();const l=r.interface.line_numbers_checkbox;l.checked=r.settings.line_numbers;const c=r.interface.time_position_checkbox;c.checked=r.settings.time_position;const u=r.interface.tips_checkbox;u.checked=r.settings.tips;const m=r.interface.midi_clock_checkbox;m.checked=r.settings.send_clock;const p=r.interface.midi_channels_scripts;p.checked=r.settings.midi_channels_scripts;const _=r.interface.midi_clock_ppqn;_.value=r.settings.midi_clock_ppqn.toString();const O=r.interface.load_demo_songs;O.checked=r.settings.load_demo_songs;const w=r.interface.vim_mode_checkbox;w.checked=r.settings.vimMode;let I=document.getElementById("modal-settings"),k=document.getElementById("editor");I==null||I.classList.remove("invisible"),k==null||k.classList.add("invisible")}),r.interface.close_settings_button.addEventListener("click",()=>{let a=document.getElementById("modal-settings"),i=document.getElementById("editor");a==null||a.classList.add("invisible"),i==null||i.classList.remove("invisible");let s=r.interface.font_size_input.value;r.settings.font_size=parseInt(s),r.view.dispatch({effects:r.fontSize.reconfigure(Me.theme({"&":{fontSize:r.settings.font_size+"px"},".cm-content":{fontFamily:r.settings.font,fontSize:r.settings.font_size+"px"},".cm-gutters":{fontSize:r.settings.font_size+"px"}}))})}),r.interface.close_universes_button.addEventListener("click",()=>{Mx(r),Eu()}),r.interface.share_button.addEventListener("click",async()=>{r.currentFile().candidate=r.view.state.doc.toString(),r.currentFile().committed=r.view.state.doc.toString(),r.settings.saveApplicationToLocalStorage(r.universes,r.settings),await M6(r)}),r.interface.vim_mode_checkbox.addEventListener("change",()=>{let a=!!r.interface.vim_mode_checkbox.checked;r.settings.vimMode=a,r.view.dispatch({effects:r.vimModeCompartment.reconfigure(a?A1():[])})}),r.interface.line_numbers_checkbox.addEventListener("change",()=>{let i=!!r.interface.line_numbers_checkbox.checked;r.settings.line_numbers=i,r.view.dispatch({effects:r.withLineNumbers.reconfigure(i?[Cy()]:[])})}),r.interface.time_position_checkbox.addEventListener("change",()=>{let a=document.getElementById("timeviewer"),i=!!r.interface.time_position_checkbox.checked;r.settings.time_position=i,i?a.classList.remove("hidden"):a.classList.add("hidden")}),r.interface.tips_checkbox.addEventListener("change",()=>{let a=!!r.interface.tips_checkbox.checked;r.settings.tips=a,r.view.dispatch({effects:r.hoveringCompartment.reconfigure(a?PA:[])})}),r.interface.completion_checkbox.addEventListener("change",()=>{let a=!!r.interface.completion_checkbox.checked;r.settings.completions=a,r.view.dispatch({effects:r.completionsCompartment.reconfigure(a?BA:[])})}),r.interface.midi_clock_checkbox.addEventListener("change",()=>{let a=!!r.interface.midi_clock_checkbox.checked;r.settings.send_clock=a}),r.interface.midi_channels_scripts.addEventListener("change",()=>{let a=!!r.interface.midi_channels_scripts.checked;r.settings.midi_channels_scripts=a}),r.interface.midi_clock_ppqn.addEventListener("change",()=>{let a=parseInt(r.interface.midi_clock_ppqn.value);r.settings.midi_clock_ppqn=a}),r.interface.load_demo_songs.addEventListener("change",()=>{let a=!!r.interface.load_demo_songs.checked;r.settings.load_demo_songs=a}),r.interface.universe_creator.addEventListener("submit",a=>{a.preventDefault();let s=new FormData(r.interface.universe_creator).get("universe");s&&s.length>2&&s.length<20&&(s=s.trim(),r.settings.selected_universe=s,r.selected_universe=s,ul(r,s),r.interface.buffer_search.value="",t_(),r.view.focus())}),os(r,r.universes[r.selected_universe.toString()].init),["introduction","sampler","amplitude","audio_basics","reverb_delay","interface","interaction","code","time","linear","cyclic","longform","synths","chaining","patterns","ziffers_basics","ziffers_scales","ziffers_rhythm","ziffers_algorithmic","ziffers_tonnetz","midi","osc","functions","lfos","probabilities","variables","synchronisation","mouse","shortcuts","about","bonus","oscilloscope","sample_list","loading_samples"].forEach(a=>{let i="docs_"+a;document.getElementById(i).addEventListener("click",async()=>{i!=="docs_sample_list"?(r.currentDocumentationPane=a,l_(r,t)):(console.log("Loading samples!"),await iw().then(()=>{r.docs=AA(r),r.currentDocumentationPane=a,l_(r,t)}))})})},dde=r=>{Number.prototype.z0=function(e={}){return r.z0(this.valueOf().toString().split("").join(" "),e)},Number.prototype.z1=function(e={}){return r.z1(this.valueOf().toString().split("").join(" "),e)},Number.prototype.z2=function(e={}){return r.z2(this.valueOf().toString().split("").join(" "),e)},Number.prototype.z3=function(e={}){return r.z3(this.valueOf().toString().split("").join(" "),e)},Number.prototype.z4=function(e={}){return r.z4(this.valueOf().toString().split("").join(" "),e)},Number.prototype.z5=function(e={}){return r.z5(this.valueOf().toString().split("").join(" "),e)},Number.prototype.z6=function(e={}){return r.z6(this.valueOf().toString().split("").join(" "),e)},Number.prototype.z7=function(e={}){return r.z7(this.valueOf().toString().split("").join(" "),e)},Number.prototype.z8=function(e={}){return r.z8(this.valueOf().toString().split("").join(" "),e)},Number.prototype.z9=function(e={}){return r.z9(this.valueOf().toString().split("").join(" "),e)},Number.prototype.z10=function(e={}){return r.z10(this.valueOf().toString().split("").join(" "),e)},Number.prototype.z11=function(e={}){return r.z11(this.valueOf().toString().split("").join(" "),e)},Number.prototype.z12=function(e={}){return r.z12(this.valueOf().toString().split("").join(" "),e)},Number.prototype.z13=function(e={}){return r.z13(this.valueOf().toString().split("").join(" "),e)},Number.prototype.z14=function(e={}){return r.z14(this.valueOf().toString().split("").join(" "),e)},Number.prototype.z15=function(e={}){return r.z15(this.valueOf().toString().split("").join(" "),e)},Number.prototype.z16=function(e={}){return r.z16(this.valueOf().toString().split("").join(" "),e)},Number.prototype.midi=function(...e){return r.midi(this.valueOf(),...e)},Number.prototype.sound=function(e){return Number.isInteger(this.valueOf())?r.sound(e).note(this.valueOf()):r.sound(e).freq(this.valueOf())}},mde="modulepreload",hde=function(r){return"/"+r},qE={},pde=function(e,t,n){if(!t||t.length===0)return e();const a=document.getElementsByTagName("link");return Promise.all(t.map(i=>{if(i=hde(i),i in qE)return;qE[i]=!0;const s=i.endsWith(".css"),o=s?'[rel="stylesheet"]':"";if(!!n)for(let u=a.length-1;u>=0;u--){const m=a[u];if(m.href===i&&(!s||m.rel==="stylesheet"))return}else if(document.querySelector(`link[href="${i}"]${o}`))return;const c=document.createElement("link");if(c.rel=s?"stylesheet":mde,s||(c.as="script",c.crossOrigin=""),c.href=i,document.head.appendChild(c),s)return new Promise((u,m)=>{c.addEventListener("load",u),c.addEventListener("error",()=>m(new Error(`Unable to preload CSS for ${i}`)))})})).then(()=>e()).catch(i=>{const s=new Event("vite:preloadError",{cancelable:!0});if(s.payload=i,window.dispatchEvent(s),!s.defaultPrevented)throw i})};function fde(r={}){const{immediate:e=!1,onNeedRefresh:t,onOfflineReady:n,onRegistered:a,onRegisteredSW:i,onRegisterError:s}=r;let o,l;const c=async(m=!0)=>{await l};async function u(){if("serviceWorker"in navigator){const{Workbox:m}=await pde(()=>import("./workbox-window.prod.es5-a7b12eab.js"),[]);o=new m("/sw.js",{scope:"/",type:"classic"}),o.addEventListener("activated",p=>{(p.isUpdate||p.isExternal)&&window.location.reload()}),o.addEventListener("installed",p=>{p.isUpdate||n==null||n()}),o.register({immediate:e}).then(p=>{i?i("/sw.js",p):a==null||a(p)}).catch(p=>{s==null||s(p)})}}return l=u(),c}"serviceWorker"in navigator&&fde();class gde{constructor(){A(this,"settings",new x6);A(this,"universes",{});A(this,"selected_universe","Welcome");A(this,"fill",!1);A(this,"local_index",1);A(this,"editor_mode","global");A(this,"hidden_interface",!1);A(this,"fontSize");A(this,"withLineNumbers");A(this,"vimModeCompartment");A(this,"hoveringCompartment");A(this,"completionsCompartment");A(this,"chosenLanguage");A(this,"dynamicPlugins");A(this,"currentDocumentationPane","introduction");A(this,"exampleCounter",0);A(this,"exampleIsPlaying",!1);A(this,"editorExtensions",[]);A(this,"userPlugins",[]);A(this,"state");A(this,"view");A(this,"selectedExample","");A(this,"docs",{});A(this,"_mouseX",0);A(this,"_mouseY",0);A(this,"show_error",!1);A(this,"buttonElements",{});A(this,"interface",{});A(this,"blinkTimeouts",{});A(this,"osc",{enabled:!1,color:"#fdba74",thickness:4,refresh:1,fftSize:1024,orientation:"horizontal",offsetX:0,offsetY:0,mode:"scope",size:1});A(this,"api");A(this,"audioContext");A(this,"clock");A(this,"dough_nudge",20);A(this,"manualPlay",!1);A(this,"isPlaying",!1);A(this,"outputSocket",er);A(this,"hydra_backend");A(this,"hydra");A(this,"updateKnownUniversesView",()=>{let e=document.getElementById("ui-known-universe-item-template");if(!e)return;let t=document.getElementById("existing-universes");if(!t)return;let n=document.createElement("ul");n.className="lg:h-80 lg:text-normal text-sm h-auto lg:w-80 w-auto lg:pb-2 lg:pt-2 overflow-y-scroll text-white lg:mb-4 border rounded-lg bg-neutral-800",n.append(...Object.keys(this.universes).map(a=>{var o,l;let i=e.content.cloneNode(!0),s=window;return i.querySelector(".universe-name").textContent=a,(o=i.querySelector(".load-universe"))==null||o.addEventListener("click",()=>s._loadUniverseFromInterface(a)),(l=i.querySelector(".delete-universe"))==null||l.addEventListener("click",()=>s._deleteUniverseFromInterface(a)),i})),t.innerHTML="",t.append(n)});this.initializeElements(),this.initializeButtonGroups(),this.setCanvas(this.interface.feedback),this.setCanvas(this.interface.scope);try{this.loadHydraSynthAsync()}catch(t){console.log("Couldn't start Hydra: ",t)}this.universes={...this.settings.universes},k6(this),this.audioContext=new AudioContext({latencyHint:"playback"}),this.clock=new Uq(this,this.audioContext),this.api=new Sie(this),ode(this.api),PH(this.api),dde(this.api),Object.entries(this.api).forEach(([t,n])=>{globalThis[t]=n}),Object.entries(sde).forEach(([t,n])=>{globalThis[t]=n}),Object.entries(wH).forEach(([t,n])=>{globalThis[t]=n}),(async()=>{await iw()})().then(()=>{this.docs=AA(this)}),cq(this),uq(this),ude(this),Yk(),Yq(this),Lk(this.interface.scope,this),os(this,this.universes[this.selected_universe.toString()].init),this.changeModeFromInterface("global"),L6(this)}getBuffer(e){const t=this.universes[this.selected_universe.toString()];return e==="locals"?t[e][this.local_index]:t[e]}get note_buffer(){return this.getBuffer("notes")}get example_buffer(){return this.getBuffer("example")}get global_buffer(){return this.getBuffer("global")}get init_buffer(){return this.getBuffer("init")}get local_buffer(){return this.getBuffer("locals")}changeToLocalBuffer(e){const t=document.querySelectorAll('[id^="tab-"]'),n=t[e];n.classList.add("bg-orange-300");for(let i=0;i{t.forEach(i=>{let s=i.children[0];s.classList.contains("text-orange-300")&&(s.classList.remove("text-orange-300"),i.classList.remove("text-orange-300"))}),a.children[0].classList.remove("text-white"),a.children[0].classList.add("text-orange-300"),a.classList.add("text-orange-300"),a.classList.add("fill-orange-300")};switch(e){case"local":this.interface.local_script_tabs.classList.contains("hidden")&&this.interface.local_script_tabs.classList.remove("hidden"),this.editor_mode="local",this.local_index=0,document.getElementById("editor").style.height="calc(100% - 100px)",this.changeToLocalBuffer(this.local_index),n(this.interface.local_button);break;case"global":this.interface.local_script_tabs.classList.contains("hidden")||this.interface.local_script_tabs.classList.add("hidden"),this.editor_mode="global",document.getElementById("editor").style.height="100%",n(this.interface.global_button);break;case"init":this.interface.local_script_tabs.classList.contains("hidden")||this.interface.local_script_tabs.classList.add("hidden"),this.editor_mode="init",n(this.interface.init_button);break;case"notes":this.interface.local_script_tabs.classList.contains("hidden")||this.interface.local_script_tabs.classList.add("hidden"),this.editor_mode="notes",n(this.interface.note_button);break}this.view.dispatch({effects:this.chosenLanguage.reconfigure(this.editor_mode=="notes"?[Z9()]:[J_()])}),this.updateEditorView()}setButtonHighlighting(e,t){document.getElementById("play-label").textContent=e!=="pause"?"Pause":"Play",e!=="pause"?(document.getElementById("pause-icon").classList.remove("hidden"),document.getElementById("play-icon").classList.add("hidden")):(document.getElementById("pause-icon").classList.add("hidden"),document.getElementById("play-icon").classList.remove("hidden")),e==="stop"&&(this.isPlaying==!1,document.getElementById("play-label").textContent="Play",document.getElementById("pause-icon").classList.add("hidden"),document.getElementById("play-icon").classList.remove("hidden")),this.flashBackground("#404040",200);const n=['[id^="play-button-"]','[id^="clear-button-"]','[id^="stop-button-"]'];let a;switch(e){case"play":a=0;break;case"pause":a=1;break;case"clear":a=2;break;case"stop":a=3;break}document.querySelectorAll(n[a]).forEach(i=>{t&&i.children[0].classList.add("animate-pulse")}),document.querySelectorAll(n.filter((i,s)=>s!=a).join(",")).forEach(i=>{i.children[0].classList.remove("animate-pulse"),i.children[1].classList.remove("animate-pulse")})}unfocusPlayButtons(){document.querySelectorAll('[id^="play-button-"]').forEach(e=>{e.children[0].classList.remove("fill-orange-300"),e.children[0].classList.remove("animate-pulse")})}updateEditorView(){this.view.dispatch({changes:{from:0,to:this.view.state.doc.toString().length,insert:this.currentFile().candidate}})}currentFile(){switch(this.editor_mode){case"global":return this.global_buffer;case"local":return this.local_buffer;case"init":return this.init_buffer;case"notes":return this.note_buffer}}flashBackground(e,t){const n=this.view.dom,a=n.getElementsByClassName("cm-gutter");n.classList.add("fluid-bg-transition"),Array.from(a).forEach(i=>i.classList.add("fluid-bg-transition")),n.style.backgroundColor=e,Array.from(a).forEach(i=>i.style.backgroundColor=e),setTimeout(()=>{n.style.backgroundColor="",Array.from(a).forEach(i=>i.style.backgroundColor=""),n.classList.remove("fluid-bg-transition"),Array.from(a).forEach(i=>i.classList.remove("fluid-bg-transition"))},t)}initializeElements(){for(const[e,t]of Object.entries(Y6))this.interface[e]=document.getElementById(t)}initializeButtonGroups(){for(const[e,t]of Object.entries(F6))this.buttonElements[e]=t.map(n=>document.getElementById(n))}loadHydraSynthAsync(){var e=document.createElement("script");e.src="https://unpkg.com/hydra-synth",e.async=!0,e.onload=()=>{console.log("Hydra loaded successfully"),this.initializeHydra()},e.onerror=function(){console.error("Error loading Hydra script")},document.head.appendChild(e)}initializeHydra(){this.hydra_backend=new Hydra({canvas:this.interface.hydra_canvas,detectAudio:!1,enableStreamCapture:!1}),this.hydra=this.hydra_backend.synth,globalThis.hydra=this.hydra,this.hydra.setResolution(1024,768)}setCanvas(e){if(!e)return;const t=e.getContext("2d"),n=window.devicePixelRatio||1;e.width=window.innerWidth*n,e.height=window.innerHeight*n,t&&t.scale(n,n)}}let _de=new gde;cde(_de,window,!1); +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}var sw="0.9.7",Oie=T().mark(ow);function ow(){var r,e,t;return T().wrap(function(n){for(;;)switch(n.prev=n.next){case 0:r=0,e=[0n,1n,1n,1n,2n,1n,2n,1n,5n,2n,2n,1n,5n,1n,2n,1n,14n,1n,5n,1n,5n,2n,2n,1n,15n,2n,2n,5n,4n,1n,4n,1n,51n,1n,2n,1n,14n,1n,2n,2n,14n,1n,6n,1n,4n,2n,2n,1n,52n,2n,5n,1n,5n,1n,15n,2n,13n,2n,2n,1n,13n,1n,2n,4n,267n,1n,4n,1n,5n,1n,4n,1n,50n,1n,2n,3n,4n,1n,6n,1n,52n,15n,2n,1n,15n,1n,2n,1n,12n,1n,10n,1n,4n,2n,2n,1n,231n,1n,5n,2n,16n,1n,4n,1n,14n,2n,2n,1n,45n,1n,6n,2n,43n,1n,6n,1n,5n,4n,2n,1n,47n,2n,2n,1n,4n,5n,16n,1n,2328n,2n,4n,1n,10n,1n,2n,5n,15n,1n,4n,1n,11n,1n,2n,1n,197n,1n,2n,6n,5n,1n,13n,1n,12n,2n,4n,2n,18n,1n,2n,1n,238n,1n,55n,1n,5n,2n,2n,1n,57n,2n,4n,5n,4n,1n,4n,2n,42n,1n,2n,1n,37n,1n,4n,2n,12n,1n,6n,1n,4n,13n,4n,1n,1543n,1n,2n,2n,12n,1n,10n,1n,52n,2n,2n,2n,12n,2n,2n,2n,51n,1n,12n,1n,5n,1n,2n,1n,177n,1n,2n,2n,15n,1n,6n,1n,197n,6n,2n,1n,15n,1n,4n,2n,14n,1n,16n,1n,4n,2n,4n,1n,208n,1n,5n,67n,5n,2n,4n,1n,12n,1n,15n,1n,46n,2n,2n,1n,56092n,1n,6n,1n,15n,2n,2n,1n,39n,1n,4n,1n,4n,1n,30n,1n,54n,5n,2n,4n,10n,1n,2n,4n,40n,1n,4n,1n,4n,2n,4n,1n,1045n,2n,4n,2n,5n,1n,23n,1n,14n,5n,2n,1n,49n,2n,2n,1n,42n,2n,10n,1n,9n,2n,6n,1n,61n,1n,2n,4n,4n,1n,4n,1n,1640n,1n,4n,1n,176n,2n,2n,2n,15n,1n,12n,1n,4n,5n,2n,1n,228n,1n,5n,1n,15n,1n,18n,5n,12n,1n,2n,1n,12n,1n,10n,14n,195n,1n,4n,2n,5n,2n,2n,1n,162n,2n,2n,3n,11n,1n,6n,1n,42n,2n,4n,1n,15n,1n,4n,7n,12n,1n,60n,1n,11n,2n,2n,1n,20169n,2n,2n,4n,5n,1n,12n,1n,44n,1n,2n,1n,30n,1n,2n,5n,221n,1n,6n,1n,5n,16n,6n,1n,46n,1n,6n,1n,4n,1n,10n,1n,235n,2n,4n,1n,41n,1n,2n,2n,14n,2n,4n,1n,4n,2n,4n,1n,775n,1n,4n,1n,5n,1n,6n,1n,51n,13n,4n,1n,18n,1n,2n,1n,1396n,1n,34n,1n,5n,2n,2n,1n,54n,1n,2n,5n,11n,1n,12n,1n,51n,4n,2n,1n,55n,1n,4n,2n,12n,1n,6n,2n,11n,2n,2n,1n,1213n,1n,2n,2n,12n,1n,261n,1n,14n,2n,10n,1n,12n,1n,4n,4n,42n,2n,4n,1n,56n,1n,2n,1n,202n,2n,6n,6n,4n,1n,8n,1n,10494213n,15n,2n,1n,15n,1n,4n,1n,49n,1n,10n,1n,4n,6n,2n,1n,170n,2n,4n,2n,9n,1n,4n,1n,12n,1n,2n,2n,119n,1n,2n,2n,246n,1n,24n,1n,5n,4n,16n,1n,39n,1n,2n,2n,4n,1n,16n,1n,180n,1n,2n,1n,10n,1n,2n,49n,12n,1n,12n,1n,11n,1n,4n,2n,8681n,1n,5n,2n,15n,1n,6n,1n,15n,4n,2n,1n,66n,1n,4n,1n,51n,1n,30n,1n,5n,2n,4n,1n,205n,1n,6n,4n,4n,7n,4n,1n,195n,3n,6n,1n,36n,1n,2n,2n,35n,1n,6n,1n,15n,5n,2n,1n,260n,15n,2n,2n,5n,1n,32n,1n,12n,2n,2n,1n,12n,2n,4n,2n,21541n,1n,4n,1n,9n,2n,4n,1n,757n,1n,10n,5n,4n,1n,6n,2n,53n,5n,4n,1n,40n,1n,2n,2n,12n,1n,18n,1n,4n,2n,4n,1n,1280n,1n,2n,17n,16n,1n,4n,1n,53n,1n,4n,1n,51n,1n,15n,2n,42n,2n,8n,1n,5n,4n,2n,1n,44n,1n,2n,1n,36n,1n,62n,1n,1387n,1n,2n,1n,10n,1n,6n,4n,15n,1n,12n,2n,4n,1n,2n,1n,840n,1n,5n,2n,5n,2n,13n,1n,40n,504n,4n,1n,18n,1n,2n,6n,195n,2n,10n,1n,15n,5n,4n,1n,54n,1n,2n,2n,11n,1n,39n,1n,42n,1n,4n,2n,189n,1n,2n,2n,39n,1n,6n,1n,4n,2n,2n,1n,1090235n,1n,12n,1n,5n,1n,16n,4n,15n,5n,2n,1n,53n,1n,4n,5n,172n,1n,4n,1n,5n,1n,4n,2n,137n,1n,2n,1n,4n,1n,24n,1n,1211n,2n,2n,1n,15n,1n,4n,1n,14n,1n,113n,1n,16n,2n,4n,1n,205n,1n,2n,11n,20n,1n,4n,1n,12n,5n,4n,1n,30n,1n,4n,2n,1630n,2n,6n,1n,9n,13n,2n,1n,186n,2n,2n,1n,4n,2n,10n,2n,51n,2n,10n,1n,10n,1n,4n,5n,12n,1n,12n,1n,11n,2n,2n,1n,4725n,1n,2n,3n,9n,1n,8n,1n,14n,4n,4n,5n,18n,1n,2n,1n,221n,1n,68n,1n,15n,1n,2n,1n,61n,2n,4n,15n,4n,1n,4n,1n,19349n,2n,2n,1n,150n,1n,4n,7n,15n,2n,6n,1n,4n,2n,8n,1n,222n,1n,2n,4n,5n,1n,30n,1n,39n,2n,2n,1n,34n,2n,2n,4n,235n,1n,18n,2n,5n,1n,2n,2n,222n,1n,4n,2n,11n,1n,6n,1n,42n,13n,4n,1n,15n,1n,10n,1n,42n,1n,10n,2n,4n,1n,2n,1n,11394n,2n,4n,2n,5n,1n,12n,1n,42n,2n,4n,1n,900n,1n,2n,6n,51n,1n,6n,2n,34n,5n,2n,1n,46n,1n,4n,2n,11n,1n,30n,1n,196n,2n,6n,1n,10n,1n,2n,15n,199n,1n,4n,1n,4n,2n,2n,1n,954n,1n,6n,2n,13n,1n,23n,2n,12n,2n,2n,1n,37n,1n,4n,2n,49487367289n,4n,66n,2n,5n,19n,4n,1n,54n,1n,4n,2n,11n,1n,4n,1n,231n,1n,2n,1n,36n,2n,2n,2n,12n,1n,40n,1n,4n,51n,4n,2n,1028n,1n,5n,1n,15n,1n,10n,1n,35n,2n,4n,1n,12n,1n,4n,4n,42n,1n,4n,2n,5n,1n,10n,1n,583n,2n,2n,6n,4n,2n,6n,1n,1681n,6n,4n,1n,77n,1n,2n,2n,15n,1n,16n,1n,51n,2n,4n,1n,170n,1n,4n,5n,5n,1n,12n,1n,12n,2n,2n,1n,46n,1n,4n,2n,1092n,1n,8n,1n,5n,14n,2n,2n,39n,1n,4n,2n,4n,1n,254n,1n,42n,2n,2n,1n,41n,1n,2n,5n,39n,1n,4n,1n,11n,1n,10n,1n,157877n,1n,2n,4n,16n,1n,6n,1n,49n,13n,4n,1n,18n,1n,4n,1n,53n,1n,32n,1n,5n,1n,2n,2n,279n,1n,4n,2n,11n,1n,4n,3n,235n,2n,2n,1n,99n,1n,8n,2n,14n,1n,6n,1n,11n,14n,2n,1n,1040n,1n,2n,1n,13n,2n,16n,1n,12n,5n,27n,1n,12n,1n,2n,69n,1387n,1n,16n,1n,20n,2n,4n,1n,164n,4n,2n,2n,4n,1n,12n,1n,153n,2n,2n,1n,15n,1n,2n,2n,51n,1n,30n,1n,4n,1n,4n,1n,1460n,1n,55n,4n,5n,1n,12n,2n,14n,1n,4n,1n,131n,1n,2n,2n,42n,3n,6n,1n,5n,5n,4n,1n,44n,1n,10n,3n,11n,1n,10n,1n,1116461n,5n,2n,1n,10n,1n,2n,4n,35n,1n,12n,1n,11n,1n,2n,1n,3609n,1n,4n,2n,50n,1n,24n,1n,12n,2n,2n,1n,18n,1n,6n,2n,244n,1n,18n,1n,9n,2n,2n,1n,181n,1n,2n,51n,4n,2n,12n,1n,42n,1n,8n,5n,61n,1n,4n,1n,12n,1n,6n,1n,11n,2n,4n,1n,11720n,1n,2n,1n,5n,1n,112n,1n,52n,1n,2n,2n,12n,1n,4n,4n,245n,1n,4n,1n,9n,5n,2n,1n,211n,2n,4n,2n,38n,1n,6n,15n,195n,15n,6n,2n,29n,1n,2n,1n,14n,1n,32n,1n,4n,2n,4n,1n,198n,1n,4n,8n,5n,1n,4n,1n,153n,1n,2n,1n,227n,2n,4n,5n,19324n,1n,8n,1n,5n,4n,4n,1n,39n,1n,2n,2n,15n,4n,16n,1n,53n,6n,4n,1n,40n,1n,12n,5n,12n,1n,4n,2n,4n,1n,2n,1n,5958n,1n,4n,5n,12n,2n,6n,1n,14n,4n,10n,1n,40n,1n,2n,2n,179n,1n,1798n,1n,15n,2n,4n,1n,61n,1n,2n,5n,4n,1n,46n,1n,1387n,1n,6n,2n,36n,2n,2n,1n,49n,1n,24n,1n,11n,10n,2n,1n,222n,1n,4n,3n,5n,1n,10n,1n,41n,2n,4n,1n,174n,1n,2n,2n,195n,2n,4n,1n,15n,1n,6n,1n,889n,1n,2n,2n,4n,1n,12n,2n,178n,13n,2n,1n,15n,4n,4n,1n,12n,1n,20n,1n,4n,5n,4n,1n,408641062n,1n,2n,60n,36n,1n,4n,1n,15n,2n,2n,1n,46n,1n,16n,1n,54n,1n,24n,2n,5n,2n,4n,1n,221n,1n,4n,1n,11n,1n,30n,1n,928n,2n,4n,1n,10n,2n,2n,13n,14n,1n,4n,1n,11n,2n,6n,1n,697n,1n,4n,3n,5n,1n,8n,1n,12n,5n,2n,2n,64n,1n,4n,2n,10281n,1n,10n,1n,5n,1n,4n,1n,54n,1n,8n,2n,11n,1n,4n,1n,51n,6n,2n,1n,477n,1n,2n,2n,56n,5n,6n,1n,11n,5n,4n,1n,1213n,1n,4n,2n,5n,1n,72n,1n,68n,2n,2n,1n,12n,1n,2n,13n,42n,1n,38n,1n,9n,2n,2n,2n,137n,1n,2n,5n,11n,1n,6n,1n,21507n,5n,10n,1n,15n,1n,4n,1n,34n,2n,60n,2n,4n,5n,2n,1n,1005n,2n,5n,2n,5n,1n,4n,1n,12n,1n,10n,1n,30n,1n,10n,1n,235n,1n,6n,1n,50n,309n,4n,2n,39n,7n,2n,1n,11n,1n,36n,2n,42n,2n,2n,5n,40n,1n,2n,2n,39n,1n,12n,1n,4n,3n,2n,1n,47937n,1n,4n,2n,5n,1n,13n,1n,35n,4n,4n,1n,37n,1n,4n,2n,51n,1n,16n,1n,9n,1n,30n,2n,64n,1n,2n,14n,4n,1n,4n,1n,1285n,1n,2n,1n,228n,1n,2n,5n,53n,1n,8n,2n,4n,2n,2n,4n,260n,1n,6n,1n,15n,1n,110n,1n,12n,2n,4n,1n,12n,1n,4n,5n,1083553n,1n,12n,1n,5n,1n,4n,1n,749n,1n,4n,2n,11n,3n,30n,1n,54n,13n,6n,1n,15n,2n,2n,9n,12n,1n,10n,1n,35n,2n,2n,1n,1264n,2n,4n,6n,5n,1n,18n,1n,14n,2n,4n,1n,117n,1n,2n,2n,178n,1n,6n,1n,5n,4n,4n,1n,162n,2n,10n,1n,4n,1n,16n,1n,1630n,2n,2n,2n,56n,1n,10n,15n,15n,1n,4n,1n,4n,2n,12n,1n,1096n,1n,2n,21n,9n,1n,6n,1n,39n,5n,2n,1n,18n,1n,4n,2n,195n,1n,120n,1n,9n,2n,2n,1n,54n,1n,4n,4n,36n,1n,4n,1n,186n,2n,2n,1n,36n,1n,6n,15n,12n,1n,8n,1n,4n,5n,4n,1n,241004n,1n,5n,1n,15n,4n,10n,1n,15n,2n,4n,1n,34n,1n,2n,4n,167n,1n,12n,1n,15n,1n,2n,1n,3973n,1n,4n,1n,4n,1n,40n,1n,235n,11n,2n,1n,15n,1n,6n,1n,144n,1n,18n,1n,4n,2n,2n,2n,203n,1n,4n,15n,15n,1n,12n,2n,39n,1n,4n,1n,120n,1n,2n,2n,1388n,1n,6n,1n,13n,4n,4n,1n,39n,1n,2n,5n,4n,1n,66n,1n,963n,1n,8n,1n,10n,2n,4n,4n,12n,2n,12n,1n,4n,2n,4n,2n,6538n,1n,2n,2n,20n,1n,6n,2n,46n,63n,2n,1n,88n,1n,12n,1n,42n,1n,10n,2n,5n,5n,2n,1n,175n,2n,2n,2n,11n,1n,12n,1n];case 1:if(!(r1n;e--)r*=e;return r}function mw(r){for(var e=[];r>0n;)e.unshift(r%2n),r>>=1n;return e.join("")}var Iie=T().mark(Ai);function Ai(){var r;return T().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:r=2n;case 1:if(!aa(r)){e.next=4;break}return e.next=4,r;case 4:r++,e.next=1;break;case 7:case"end":return e.stop()}},Iie)}var Nie=T().mark(hw);function hw(){var r,e,t;return T().wrap(function(n){for(;;)switch(n.prev=n.next){case 0:r=mn(Ai());case 1:if((e=r()).done){n.next=7;break}return t=e.value,n.next=5,BigInt(0|Math.sqrt(Number(t)));case 5:n.next=1;break;case 7:case"end":return n.stop()}},Nie)}var Die=T().mark(pw);function pw(){return T().wrap(function(r){for(;;)switch(r.prev=r.next){case 0:return r.next=2,1n;case 2:return r.next=4,0n;case 4:r.next=2;break;case 6:case"end":return r.stop()}},Die)}var xie=T().mark(fw);function fw(){var r,e,t;return T().wrap(function(n){for(;;)switch(n.prev=n.next){case 0:r=0,e=[1n,1n,2n,2n,3n,4n,5n,6n,7n,8n,11n,12n,15n,16n,19n,22n,25n,28n,31n,34n,40n,43n,49n,52n,58n,64n,70n,76n,82n,88n,98n,104n,114n,120n,130n,140n,150n,160n,170n,180n,195n,205n,220n,230n,245n,260n,275n,290n,305n,320n,341n,356n,377n,392n,413n,434n,455n,476n,497n,518n,546n];case 1:if(!(rr)){i.next=8;break}return i.next=7,t[r];case 7:r++;case 8:e++,i.next=2;break;case 11:case"end":return i.stop()}},dse)}var mse=T().mark(Hw);function Hw(){var r,e,t,n,a,i;return T().wrap(function(s){for(;;)switch(s.prev=s.next){case 0:return t=function(o){return o in e||(e[o]=r.next().value),e[o]},s.next=3,1n;case 3:r=F1(),e=[],n=[1n],a=1;case 7:for(n[a]=0n,i=1;i<=a;i++)n[a]+=n[a-i]*t(i);return n[a]/=BigInt(a),s.next=12,n[a];case 12:a++,s.next=7;break;case 15:case"end":return s.stop()}},mse)}var hse=T().mark(zw);function zw(){var r;return T().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:r=1n;case 1:return e.next=3,r;case 3:r=10n*r+1n,e.next=1;break;case 6:case"end":return e.stop()}},hse)}var pse=T().mark(Ww);function Ww(){var r,e,t;return T().wrap(function(n){for(;;)switch(n.prev=n.next){case 0:r=mn(Ai());case 1:if((e=r()).done){n.next=8;break}if(t=e.value,!aa(BigInt(Math.pow(2,Number(t)))-1n)){n.next=6;break}return n.next=6,t;case 6:n.next=1;break;case 8:case"end":return n.stop()}},pse)}var fse=T().mark(Xw);function Xw(){var r,e,t;return T().wrap(function(n){for(;;)switch(n.prev=n.next){case 0:r=0,e=[1n,1n,1n,2n,3n,5n,8n,13n,21n,34n,55n,89n,144n,232n,375n,606n,979n,1582n,2556n,4130n,6673n,10782n,17421n,28148n,45480n,73484n,118732n,191841n,309967n,500829n,809214n,1307487n,2112571n,3413385n,5515174n,8911138n,14398164n,23263822n,37588502n,60733592n,98130253n,158553878n,256183302n,413927966n,668803781n,1080619176n,1746009572n,2821113574n,4558212008n];case 1:if(!(rr||r%n!==0n)){a.next=7;break}return a.abrupt("continue",11);case 7:a.next=2;break;case 9:return a.next=11,r;case 11:r++,a.next=1;break;case 14:case"end":return a.stop()}},Cue)}var Aue=T().mark(ax);function ax(){var r;return T().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:r=0n;case 1:if((mw(r).match(/1/g)||[]).length%2!=0){e.next=4;break}return e.next=4,r;case 4:r++,e.next=1;break;case 7:case"end":return e.stop()}},Aue)}var wue=T().mark(ix);function ix(){var r,e;return T().wrap(function(t){for(;;)switch(t.prev=t.next){case 0:r=1n;case 1:e=0;case 2:if(!(er?0n:e===1n||e===r?1n:O_(r-1n,e-1n)+O_(r-e,e)}function Sx(){var r,e;return T().wrap(function(t){for(;;)switch(t.prev=t.next){case 0:r=1n;case 1:e=1n;case 2:if(!(e<=r)){t.next=8;break}return t.next=5,O_(r,e);case 5:e++,t.next=2;break;case 8:r++,t.next=1;break;case 11:case"end":return t.stop()}},Que)}var Vue=T().mark(Ox);function Ox(){var r;return T().wrap(function(e){for(;;)switch(e.prev=e.next){case 0:r=1n;case 1:return e.next=3,aa(r)?1n:0n;case 3:r++,e.next=1;break;case 6:case"end":return e.stop()}},Vue)}var Hue=T().mark(vx);function vx(){var r,e;return T().wrap(function(t){for(;;)switch(t.prev=t.next){case 0:r=0n;case 1:return t.next=3,1n;case 3:e=0;case 4:if(!(el)){p.next=6;break}return p.abrupt("break",11);case 6:return p.next=8,m;case 8:t.delete(m);case 9:p.next=2;break;case 11:return p.next=13,l;case 13:r.push(l),e.push(2n),Object.keys(r).forEach(function(_){for(var O=parseInt(_,10),w=-1n,I=e[O];w{Array.prototype.mouseX=function(){const e=r.mouseX(),n=window.innerWidth/this.length,a=Math.floor(e/n);return this[a]},Array.prototype.mouseY=function(){const e=r.mouseY(),n=window.innerHeight/this.length,a=Math.floor(e/n);return this[a]},Array.prototype.square=function(){return this.map(e=>e*e)},Array.prototype.sometimes=function(e){return r.randomGen()<.5?e(this):this},Array.prototype.apply=function(e){return e(this)},Array.prototype.sqrt=function(){if(this.some(e=>e<0))throw new Error("Cannot take square root of negative number");return this.map(e=>Math.sqrt(e))},Array.prototype.add=function(e){return this.map(t=>t+e)},Array.prototype.sub=function(e){return this.map(t=>t-e)},Array.prototype.mult=function(e){return this.map(t=>t*e)},Array.prototype.div=function(e){if(e===0)throw new Error("Division by zero");return this.map(t=>t/e)},Array.prototype.pick=function(){return this[Math.floor(r.randomGen()*this.length)]},Array.prototype.gen=function(e,t,n){return n<1?[]:Array.from({length:n},()=>Math.floor(r.randomGen()*(t-e+1))+e)},Array.prototype.bar=function(e=1){return e===1?this[r.app.clock.time_position.bar%this.length]:this[Math.floor(r.app.clock.time_position.bar/e)%this.length]},Array.prototype.beat=function(e=1){const t=e,n=r.app.clock.pulses_since_origin,a=Math.floor(n/Math.floor(t*r.ppqn()));return this[a%this.length]},Array.prototype.b=Array.prototype.beat,Array.prototype.dur=function(...e){const t=r.app.clock.pulses_since_origin,n=r.ppqn(),a=this.map((l,c)=>e[c%e.length]),i=a.reduce((l,c)=>l+c*n,0),s=t%i;let o=0;for(let l=0;l0)e=e%t;else return this;const n=this.splice(-e,e);return this.unshift(...n),this},Array.prototype.unique=function(){const e=new Set;let t=0;for(let n=0;n100)throw new Error("Amount should be between 0 and 100");if(this.length<=1)return this;for(let t=0;t1)this.splice(t,1);else return this;else t++;return this},Array.prototype.repeat=function(e=1){if(e<1)throw new Error("Amount should be at least 1");let t=[];for(let n=0;n(a%i+i)%i,n=zA(Ta(r));return this.map(a=>{const i=Math.floor(a/n.length)*12;return n[t(a,n.length)]+e+i})};Array.prototype.scaleArp=function(r="major",e=0){const t=zA(Ta(r));let n=[];e=e>t.length?t.length:e,e=e==0?t.length:e;for(let a=0;a{if(!r)return;r.width=window.innerWidth,r.height=window.innerHeight;const e=r.getContext("2d"),t=window.devicePixelRatio||1;r.width=window.innerWidth*t,r.height=window.innerHeight*t,e&&e.scale(t,t)},Mx=r=>(r.settings.saveApplicationToLocalStorage(r.universes,r.settings),null),lde=r=>(r.currentFile().candidate=r.view.state.doc.toString(),r.currentFile().committed=r.view.state.doc.toString(),r.settings.saveApplicationToLocalStorage(r.universes,r.settings),rC.close(),er.close(),null),cde=(r,e,t=!1)=>{e.addEventListener("resize",()=>GE(r.interface.scope)),e.addEventListener("resize",()=>GE(r.interface.feedback)),e.addEventListener("beforeunload",n=>{n.preventDefault(),lde(r)}),e.addEventListener("visibilitychange",n=>{n.preventDefault(),Mx(r)}),t&&(localStorage.openpages=Date.now(),e.addEventListener("storage",function(n){n.key=="openpages"&&(localStorage.page_available=Date.now()),n.key=="page_available"&&(document.getElementById("all").classList.add("invisible"),alert("Topos is already opened in another tab. Close this tab now to prevent data loss."))},!1))},ude=r=>{const e=pC(),t=Object.keys(e).map(a=>({type:"output",regex:new RegExp(`<${a}([^>]*)>`,"g"),replace:(i,s)=>`<${a} class="${e[a]}" ${s}>`}));r.interface.line_numbers_checkbox.checked=r.settings.line_numbers,r.interface.time_position_checkbox.checked=r.settings.time_position,r.interface.tips_checkbox.checked=r.settings.tips,r.interface.completion_checkbox.checked=r.settings.completions,r.interface.midi_clock_checkbox.checked=r.settings.send_clock,r.interface.midi_channels_scripts.checked=r.settings.midi_channels_scripts,r.interface.midi_clock_ppqn.value=r.settings.midi_clock_ppqn.toString(),r.interface.load_demo_songs.checked=r.settings.load_demo_songs;const n=document.querySelectorAll('[id^="tab-"]');for(let a=0;a{n[a].classList.add("bg-orange-300");for(let l=0;l{Ma(),r.updateKnownUniversesView(),Eu()}),r.buttonElements.play_buttons.forEach(a=>{a.addEventListener("click",()=>{r.isPlaying?(r.setButtonHighlighting("pause",!0),r.isPlaying=!r.isPlaying,r.clock.pause(),r.api.MidiConnection.sendStopMessage()):(r.setButtonHighlighting("play",!0),r.isPlaying=!r.isPlaying,r.clock.start(),r.api.MidiConnection.sendStartMessage())})}),r.buttonElements.clear_buttons.forEach(a=>{a.addEventListener("click",()=>{r.setButtonHighlighting("clear",!0),confirm("Do you want to reset the current universe?")&&(r.universes[r.selected_universe]=structuredClone(cl),r.updateEditorView())})}),r.interface.documentation_button.addEventListener("click",()=>{wA(r)}),r.interface.destroy_universes_button.addEventListener("click",()=>{confirm("Do you want to destroy all universes?")&&(r.universes={...m1},r.updateKnownUniversesView())}),r.interface.universe_viewer.addEventListener("keydown",a=>{if(a.key==="Enter"){let i=r.interface.universe_viewer.value.trim();i.length>2&&i.length<40&&(i!==r.selected_universe&&(Object.defineProperty(r.universes,i,Object.getOwnPropertyDescriptor(r.universes,r.selected_universe)),delete r.universes[r.selected_universe]),r.selected_universe=i,ul(r,r.selected_universe),r.interface.universe_viewer.placeholder=i,r.interface.universe_viewer.value="")}}),r.interface.audio_nudge_range.addEventListener("input",()=>{}),r.interface.dough_nudge_range.addEventListener("input",()=>{r.dough_nudge=parseInt(r.interface.dough_nudge_range.value)}),r.interface.upload_universe_button.addEventListener("click",()=>{const a=document.createElement("input");a.type="file",a.accept=".json",a.addEventListener("change",i=>{var l;const o=(l=i.target.files)==null?void 0:l[0];if(o){const c=new FileReader;c.readAsText(o,"UTF-8"),c.onload=u=>{const m=JSON.parse(u.target.result);for(const[p,_]of Object.entries(m))r.universes[p]=_},c.onerror=u=>{console.error("An error occurred reading the file:",u)}}}),document.body.appendChild(a),a.click(),document.body.removeChild(a)}),r.interface.download_universe_button.addEventListener("click",()=>{r.settings.saveApplicationToLocalStorage(r.universes,r.settings);let a=`topos-universes-${Date.now()}.json`;const i=new Blob([JSON.stringify(r.settings.universes)],{type:"application/json"}),s=URL.createObjectURL(i),o=document.createElement("a");o.href=s,o.download=a,document.body.appendChild(o),o.click(),document.body.removeChild(o),URL.revokeObjectURL(s)}),r.interface.load_universe_button.addEventListener("click",()=>{let a=r.interface.buffer_search.value;a.length>2&&a.length<20&&!a.includes(" ")&&(r.settings.selected_universe=a,ul(r,a),r.interface.buffer_search.value="",t_(),r.view.focus(),hC())}),r.interface.eval_button.addEventListener("click",()=>{r.currentFile().candidate=r.view.state.doc.toString(),r.flashBackground("#404040",200)}),r.buttonElements.stop_buttons.forEach(a=>{a.addEventListener("click",()=>{r.setButtonHighlighting("stop",!0),r.isPlaying=!1,r.clock.stop()})}),r.interface.local_button.addEventListener("click",()=>r.changeModeFromInterface("local")),r.interface.global_button.addEventListener("click",()=>r.changeModeFromInterface("global")),r.interface.init_button.addEventListener("click",()=>r.changeModeFromInterface("init")),r.interface.note_button.addEventListener("click",()=>r.changeModeFromInterface("notes")),r.interface.font_family_selector.addEventListener("change",()=>{let a=r.interface.font_family_selector.value;console.log("Picking new font : "+a),r.settings.font=a,r.view.dispatch({effects:r.fontSize.reconfigure(Me.theme({"&":{fontSize:r.settings.font_size+"px"},".cm-content":{fontFamily:a,fontSize:r.settings.font_size+"px"},".cm-gutters":{fontSize:r.settings.font_size+"px"}}))})}),r.interface.font_size_input.addEventListener("input",()=>{let a=r.interface.font_size_input.value;r.settings.font_size=parseInt(a),r.view.dispatch({effects:r.fontSize.reconfigure(Me.theme({"&":{fontSize:r.settings.font_size+"px"},".cm-content":{fontFamily:r.settings.font,fontSize:r.settings.font_size+"px"},".cm-gutters":{fontSize:r.settings.font_size+"px"}}))})}),r.interface.settings_button.addEventListener("click",()=>{const a=document.getElementById("font-family");a&&(a.value=r.settings.font);const i=r.interface.dough_nudge_range;i.value=r.dough_nudge.toString();const s=document.getElementById("doughnumber");s.value=r.dough_nudge.toString(),r.settings.font_size===null&&(r.settings.font_size=12);const o=r.interface.font_size_input;o.value=r.settings.font_size.toString();const l=r.interface.line_numbers_checkbox;l.checked=r.settings.line_numbers;const c=r.interface.time_position_checkbox;c.checked=r.settings.time_position;const u=r.interface.tips_checkbox;u.checked=r.settings.tips;const m=r.interface.midi_clock_checkbox;m.checked=r.settings.send_clock;const p=r.interface.midi_channels_scripts;p.checked=r.settings.midi_channels_scripts;const _=r.interface.midi_clock_ppqn;_.value=r.settings.midi_clock_ppqn.toString();const O=r.interface.load_demo_songs;O.checked=r.settings.load_demo_songs;const w=r.interface.vim_mode_checkbox;w.checked=r.settings.vimMode;let I=document.getElementById("modal-settings"),k=document.getElementById("editor");I==null||I.classList.remove("invisible"),k==null||k.classList.add("invisible")}),r.interface.close_settings_button.addEventListener("click",()=>{let a=document.getElementById("modal-settings"),i=document.getElementById("editor");a==null||a.classList.add("invisible"),i==null||i.classList.remove("invisible");let s=r.interface.font_size_input.value;r.settings.font_size=parseInt(s),r.view.dispatch({effects:r.fontSize.reconfigure(Me.theme({"&":{fontSize:r.settings.font_size+"px"},".cm-content":{fontFamily:r.settings.font,fontSize:r.settings.font_size+"px"},".cm-gutters":{fontSize:r.settings.font_size+"px"}}))})}),r.interface.close_universes_button.addEventListener("click",()=>{Mx(r),Eu()}),r.interface.share_button.addEventListener("click",async()=>{r.currentFile().candidate=r.view.state.doc.toString(),r.currentFile().committed=r.view.state.doc.toString(),r.settings.saveApplicationToLocalStorage(r.universes,r.settings),await M6(r)}),r.interface.vim_mode_checkbox.addEventListener("change",()=>{let a=!!r.interface.vim_mode_checkbox.checked;r.settings.vimMode=a,r.view.dispatch({effects:r.vimModeCompartment.reconfigure(a?A1():[])})}),r.interface.line_numbers_checkbox.addEventListener("change",()=>{let i=!!r.interface.line_numbers_checkbox.checked;r.settings.line_numbers=i,r.view.dispatch({effects:r.withLineNumbers.reconfigure(i?[Cy()]:[])})}),r.interface.time_position_checkbox.addEventListener("change",()=>{let a=document.getElementById("timeviewer"),i=!!r.interface.time_position_checkbox.checked;r.settings.time_position=i,i?a.classList.remove("hidden"):a.classList.add("hidden")}),r.interface.tips_checkbox.addEventListener("change",()=>{let a=!!r.interface.tips_checkbox.checked;r.settings.tips=a,r.view.dispatch({effects:r.hoveringCompartment.reconfigure(a?PA:[])})}),r.interface.completion_checkbox.addEventListener("change",()=>{let a=!!r.interface.completion_checkbox.checked;r.settings.completions=a,r.view.dispatch({effects:r.completionsCompartment.reconfigure(a?BA:[])})}),r.interface.midi_clock_checkbox.addEventListener("change",()=>{let a=!!r.interface.midi_clock_checkbox.checked;r.settings.send_clock=a}),r.interface.midi_channels_scripts.addEventListener("change",()=>{let a=!!r.interface.midi_channels_scripts.checked;r.settings.midi_channels_scripts=a}),r.interface.midi_clock_ppqn.addEventListener("change",()=>{let a=parseInt(r.interface.midi_clock_ppqn.value);r.settings.midi_clock_ppqn=a}),r.interface.load_demo_songs.addEventListener("change",()=>{let a=!!r.interface.load_demo_songs.checked;r.settings.load_demo_songs=a}),r.interface.universe_creator.addEventListener("submit",a=>{a.preventDefault();let s=new FormData(r.interface.universe_creator).get("universe");s&&s.length>2&&s.length<20&&(s=s.trim(),r.settings.selected_universe=s,r.selected_universe=s,ul(r,s),r.interface.buffer_search.value="",t_(),r.view.focus())}),os(r,r.universes[r.selected_universe.toString()].init),["introduction","sampler","amplitude","audio_basics","reverb_delay","interface","interaction","code","time","linear","cyclic","longform","synths","chaining","patterns","ziffers_basics","ziffers_scales","ziffers_rhythm","ziffers_algorithmic","ziffers_tonnetz","midi","osc","functions","lfos","probabilities","variables","synchronisation","mouse","shortcuts","about","bonus","oscilloscope","sample_list","loading_samples","sample_controls"].forEach(a=>{let i="docs_"+a;document.getElementById(i).addEventListener("click",async()=>{i!=="docs_sample_list"?(r.currentDocumentationPane=a,l_(r,t)):(console.log("Loading samples!"),await iw().then(()=>{r.docs=AA(r),r.currentDocumentationPane=a,l_(r,t)}))})})},dde=r=>{Number.prototype.z0=function(e={}){return r.z0(this.valueOf().toString().split("").join(" "),e)},Number.prototype.z1=function(e={}){return r.z1(this.valueOf().toString().split("").join(" "),e)},Number.prototype.z2=function(e={}){return r.z2(this.valueOf().toString().split("").join(" "),e)},Number.prototype.z3=function(e={}){return r.z3(this.valueOf().toString().split("").join(" "),e)},Number.prototype.z4=function(e={}){return r.z4(this.valueOf().toString().split("").join(" "),e)},Number.prototype.z5=function(e={}){return r.z5(this.valueOf().toString().split("").join(" "),e)},Number.prototype.z6=function(e={}){return r.z6(this.valueOf().toString().split("").join(" "),e)},Number.prototype.z7=function(e={}){return r.z7(this.valueOf().toString().split("").join(" "),e)},Number.prototype.z8=function(e={}){return r.z8(this.valueOf().toString().split("").join(" "),e)},Number.prototype.z9=function(e={}){return r.z9(this.valueOf().toString().split("").join(" "),e)},Number.prototype.z10=function(e={}){return r.z10(this.valueOf().toString().split("").join(" "),e)},Number.prototype.z11=function(e={}){return r.z11(this.valueOf().toString().split("").join(" "),e)},Number.prototype.z12=function(e={}){return r.z12(this.valueOf().toString().split("").join(" "),e)},Number.prototype.z13=function(e={}){return r.z13(this.valueOf().toString().split("").join(" "),e)},Number.prototype.z14=function(e={}){return r.z14(this.valueOf().toString().split("").join(" "),e)},Number.prototype.z15=function(e={}){return r.z15(this.valueOf().toString().split("").join(" "),e)},Number.prototype.z16=function(e={}){return r.z16(this.valueOf().toString().split("").join(" "),e)},Number.prototype.midi=function(...e){return r.midi(this.valueOf(),...e)},Number.prototype.sound=function(e){return Number.isInteger(this.valueOf())?r.sound(e).note(this.valueOf()):r.sound(e).freq(this.valueOf())}},mde="modulepreload",hde=function(r){return"/"+r},qE={},pde=function(e,t,n){if(!t||t.length===0)return e();const a=document.getElementsByTagName("link");return Promise.all(t.map(i=>{if(i=hde(i),i in qE)return;qE[i]=!0;const s=i.endsWith(".css"),o=s?'[rel="stylesheet"]':"";if(!!n)for(let u=a.length-1;u>=0;u--){const m=a[u];if(m.href===i&&(!s||m.rel==="stylesheet"))return}else if(document.querySelector(`link[href="${i}"]${o}`))return;const c=document.createElement("link");if(c.rel=s?"stylesheet":mde,s||(c.as="script",c.crossOrigin=""),c.href=i,document.head.appendChild(c),s)return new Promise((u,m)=>{c.addEventListener("load",u),c.addEventListener("error",()=>m(new Error(`Unable to preload CSS for ${i}`)))})})).then(()=>e()).catch(i=>{const s=new Event("vite:preloadError",{cancelable:!0});if(s.payload=i,window.dispatchEvent(s),!s.defaultPrevented)throw i})};function fde(r={}){const{immediate:e=!1,onNeedRefresh:t,onOfflineReady:n,onRegistered:a,onRegisteredSW:i,onRegisterError:s}=r;let o,l;const c=async(m=!0)=>{await l};async function u(){if("serviceWorker"in navigator){const{Workbox:m}=await pde(()=>import("./workbox-window.prod.es5-a7b12eab.js"),[]);o=new m("/sw.js",{scope:"/",type:"classic"}),o.addEventListener("activated",p=>{(p.isUpdate||p.isExternal)&&window.location.reload()}),o.addEventListener("installed",p=>{p.isUpdate||n==null||n()}),o.register({immediate:e}).then(p=>{i?i("/sw.js",p):a==null||a(p)}).catch(p=>{s==null||s(p)})}}return l=u(),c}"serviceWorker"in navigator&&fde();class gde{constructor(){A(this,"settings",new x6);A(this,"universes",{});A(this,"selected_universe","Welcome");A(this,"fill",!1);A(this,"local_index",1);A(this,"editor_mode","global");A(this,"hidden_interface",!1);A(this,"fontSize");A(this,"withLineNumbers");A(this,"vimModeCompartment");A(this,"hoveringCompartment");A(this,"completionsCompartment");A(this,"chosenLanguage");A(this,"dynamicPlugins");A(this,"currentDocumentationPane","introduction");A(this,"exampleCounter",0);A(this,"exampleIsPlaying",!1);A(this,"editorExtensions",[]);A(this,"userPlugins",[]);A(this,"state");A(this,"view");A(this,"selectedExample","");A(this,"docs",{});A(this,"_mouseX",0);A(this,"_mouseY",0);A(this,"show_error",!1);A(this,"buttonElements",{});A(this,"interface",{});A(this,"blinkTimeouts",{});A(this,"osc",{enabled:!1,color:"#fdba74",thickness:4,refresh:1,fftSize:1024,orientation:"horizontal",offsetX:0,offsetY:0,mode:"scope",size:1});A(this,"api");A(this,"audioContext");A(this,"clock");A(this,"dough_nudge",20);A(this,"manualPlay",!1);A(this,"isPlaying",!1);A(this,"outputSocket",er);A(this,"hydra_backend");A(this,"hydra");A(this,"updateKnownUniversesView",()=>{let e=document.getElementById("ui-known-universe-item-template");if(!e)return;let t=document.getElementById("existing-universes");if(!t)return;let n=document.createElement("ul");n.className="lg:h-80 lg:text-normal text-sm h-auto lg:w-80 w-auto lg:pb-2 lg:pt-2 overflow-y-scroll text-white lg:mb-4 border rounded-lg bg-neutral-800",n.append(...Object.keys(this.universes).map(a=>{var o,l;let i=e.content.cloneNode(!0),s=window;return i.querySelector(".universe-name").textContent=a,(o=i.querySelector(".load-universe"))==null||o.addEventListener("click",()=>s._loadUniverseFromInterface(a)),(l=i.querySelector(".delete-universe"))==null||l.addEventListener("click",()=>s._deleteUniverseFromInterface(a)),i})),t.innerHTML="",t.append(n)});this.initializeElements(),this.initializeButtonGroups(),this.setCanvas(this.interface.feedback),this.setCanvas(this.interface.scope);try{this.loadHydraSynthAsync()}catch(t){console.log("Couldn't start Hydra: ",t)}this.universes={...this.settings.universes},k6(this),this.audioContext=new AudioContext({latencyHint:"playback"}),this.clock=new Uq(this,this.audioContext),this.api=new Sie(this),ode(this.api),PH(this.api),dde(this.api),Object.entries(this.api).forEach(([t,n])=>{globalThis[t]=n}),Object.entries(sde).forEach(([t,n])=>{globalThis[t]=n}),Object.entries(wH).forEach(([t,n])=>{globalThis[t]=n}),(async()=>{await iw()})().then(()=>{this.docs=AA(this)}),cq(this),uq(this),ude(this),Yk(),Yq(this),Lk(this.interface.scope,this),os(this,this.universes[this.selected_universe.toString()].init),this.changeModeFromInterface("global"),L6(this)}getBuffer(e){const t=this.universes[this.selected_universe.toString()];return e==="locals"?t[e][this.local_index]:t[e]}get note_buffer(){return this.getBuffer("notes")}get example_buffer(){return this.getBuffer("example")}get global_buffer(){return this.getBuffer("global")}get init_buffer(){return this.getBuffer("init")}get local_buffer(){return this.getBuffer("locals")}changeToLocalBuffer(e){const t=document.querySelectorAll('[id^="tab-"]'),n=t[e];n.classList.add("bg-orange-300");for(let i=0;i{t.forEach(i=>{let s=i.children[0];s.classList.contains("text-orange-300")&&(s.classList.remove("text-orange-300"),i.classList.remove("text-orange-300"))}),a.children[0].classList.remove("text-white"),a.children[0].classList.add("text-orange-300"),a.classList.add("text-orange-300"),a.classList.add("fill-orange-300")};switch(e){case"local":this.interface.local_script_tabs.classList.contains("hidden")&&this.interface.local_script_tabs.classList.remove("hidden"),this.editor_mode="local",this.local_index=0,document.getElementById("editor").style.height="calc(100% - 100px)",this.changeToLocalBuffer(this.local_index),n(this.interface.local_button);break;case"global":this.interface.local_script_tabs.classList.contains("hidden")||this.interface.local_script_tabs.classList.add("hidden"),this.editor_mode="global",document.getElementById("editor").style.height="100%",n(this.interface.global_button);break;case"init":this.interface.local_script_tabs.classList.contains("hidden")||this.interface.local_script_tabs.classList.add("hidden"),this.editor_mode="init",n(this.interface.init_button);break;case"notes":this.interface.local_script_tabs.classList.contains("hidden")||this.interface.local_script_tabs.classList.add("hidden"),this.editor_mode="notes",n(this.interface.note_button);break}this.view.dispatch({effects:this.chosenLanguage.reconfigure(this.editor_mode=="notes"?[Z9()]:[J_()])}),this.updateEditorView()}setButtonHighlighting(e,t){document.getElementById("play-label").textContent=e!=="pause"?"Pause":"Play",e!=="pause"?(document.getElementById("pause-icon").classList.remove("hidden"),document.getElementById("play-icon").classList.add("hidden")):(document.getElementById("pause-icon").classList.add("hidden"),document.getElementById("play-icon").classList.remove("hidden")),e==="stop"&&(this.isPlaying==!1,document.getElementById("play-label").textContent="Play",document.getElementById("pause-icon").classList.add("hidden"),document.getElementById("play-icon").classList.remove("hidden")),this.flashBackground("#404040",200);const n=['[id^="play-button-"]','[id^="clear-button-"]','[id^="stop-button-"]'];let a;switch(e){case"play":a=0;break;case"pause":a=1;break;case"clear":a=2;break;case"stop":a=3;break}document.querySelectorAll(n[a]).forEach(i=>{t&&i.children[0].classList.add("animate-pulse")}),document.querySelectorAll(n.filter((i,s)=>s!=a).join(",")).forEach(i=>{i.children[0].classList.remove("animate-pulse"),i.children[1].classList.remove("animate-pulse")})}unfocusPlayButtons(){document.querySelectorAll('[id^="play-button-"]').forEach(e=>{e.children[0].classList.remove("fill-orange-300"),e.children[0].classList.remove("animate-pulse")})}updateEditorView(){this.view.dispatch({changes:{from:0,to:this.view.state.doc.toString().length,insert:this.currentFile().candidate}})}currentFile(){switch(this.editor_mode){case"global":return this.global_buffer;case"local":return this.local_buffer;case"init":return this.init_buffer;case"notes":return this.note_buffer}}flashBackground(e,t){const n=this.view.dom,a=n.getElementsByClassName("cm-gutter");n.classList.add("fluid-bg-transition"),Array.from(a).forEach(i=>i.classList.add("fluid-bg-transition")),n.style.backgroundColor=e,Array.from(a).forEach(i=>i.style.backgroundColor=e),setTimeout(()=>{n.style.backgroundColor="",Array.from(a).forEach(i=>i.style.backgroundColor=""),n.classList.remove("fluid-bg-transition"),Array.from(a).forEach(i=>i.classList.remove("fluid-bg-transition"))},t)}initializeElements(){for(const[e,t]of Object.entries(Y6))this.interface[e]=document.getElementById(t)}initializeButtonGroups(){for(const[e,t]of Object.entries(F6))this.buttonElements[e]=t.map(n=>document.getElementById(n))}loadHydraSynthAsync(){var e=document.createElement("script");e.src="https://unpkg.com/hydra-synth",e.async=!0,e.onload=()=>{console.log("Hydra loaded successfully"),this.initializeHydra()},e.onerror=function(){console.error("Error loading Hydra script")},document.head.appendChild(e)}initializeHydra(){this.hydra_backend=new Hydra({canvas:this.interface.hydra_canvas,detectAudio:!1,enableStreamCapture:!1}),this.hydra=this.hydra_backend.synth,globalThis.hydra=this.hydra,this.hydra.setResolution(1024,768)}setCanvas(e){if(!e)return;const t=e.getContext("2d"),n=window.devicePixelRatio||1;e.width=window.innerWidth*n,e.height=window.innerHeight*n,t&&t.scale(n,n)}}let _de=new gde;cde(_de,window,!1); diff --git a/assets/index-fbf3fa10.js.gz b/assets/index-fbf3fa10.js.gz new file mode 100644 index 0000000..f501ac1 Binary files /dev/null and b/assets/index-fbf3fa10.js.gz differ diff --git a/index.html b/index.html index efd667f..a2a487d 100644 --- a/index.html +++ b/index.html @@ -14,7 +14,7 @@ - +