diff --git a/.eslintignore b/.eslintignore index 7d807b65..b7660415 100644 --- a/.eslintignore +++ b/.eslintignore @@ -21,4 +21,5 @@ vite.config.js /src-tauri/target/**/* reverbGen.mjs hydra.mjs -jsdoc-synonyms.js \ No newline at end of file +jsdoc-synonyms.js +packages/hs2js/src/hs2js.mjs diff --git a/.eslintrc.json b/.eslintrc.json index 71251141..cf237947 100644 --- a/.eslintrc.json +++ b/.eslintrc.json @@ -1,5 +1,6 @@ { "env": { + "node": true, "browser": true, "es2021": true }, diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index f9bc117c..adb883e5 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -130,20 +130,14 @@ npx lerna version --no-private # publish all packages inside /packages using pnpm! don't use lerna to publish!! pnpm --filter "./packages/**" publish --dry-run -# the last command was only a dry-run, make sure everything looks ok, if yes, run the same command without flag +# the last command was only a dry-run. if everything looks ok, run this: + +pnpm --filter "./packages/**" publish --access public ``` To manually publish a single package, increase the version in the `package.json`, then run `pnpm publish`. Important: Always publish with `pnpm`, as `npm` does not support overriding main files in `publishConfig`, which is done in all the packages. -### New Packages - -To add a new package, you have to publish it manually the first time, using: - -```sh -cd packages/ && pnpm publish --access public -``` - ## Have Fun Remember to have fun, and that this project is driven by the passion of volunteers! diff --git a/examples/buildless/headless-simple.html b/examples/buildless/headless-simple.html index 15a56161..61533447 100644 --- a/examples/buildless/headless-simple.html +++ b/examples/buildless/headless-simple.html @@ -1,9 +1,31 @@ - - - - + + + + + + + + + + + + diff --git a/examples/buildless/headless-with-samples.html b/examples/buildless/headless-with-samples.html index 18b5e379..3ac6d42e 100644 --- a/examples/buildless/headless-with-samples.html +++ b/examples/buildless/headless-with-samples.html @@ -1,16 +1,24 @@ - - - - - - + + + + + + + + + + + + + + diff --git a/examples/buildless/hs2js.html b/examples/buildless/hs2js.html new file mode 100644 index 00000000..96b53c53 --- /dev/null +++ b/examples/buildless/hs2js.html @@ -0,0 +1,9 @@ + + + diff --git a/examples/buildless/tidal.html b/examples/buildless/tidal.html new file mode 100644 index 00000000..16416b56 --- /dev/null +++ b/examples/buildless/tidal.html @@ -0,0 +1,98 @@ + + + + + + tidal.html + + + +

+    
+    
+    
+  
+
diff --git a/examples/codemirror-repl/main.js b/examples/codemirror-repl/main.js
index 815db187..5b5714fb 100644
--- a/examples/codemirror-repl/main.js
+++ b/examples/codemirror-repl/main.js
@@ -1,6 +1,7 @@
 import { StrudelMirror } from '@strudel/codemirror';
 import { funk42 } from './tunes';
-import { drawPianoroll, evalScope } from '@strudel/core';
+import { evalScope } from '@strudel/core';
+import { drawPianoroll } from '@strudel/draw';
 import './style.css';
 import { initAudioOnFirstClick } from '@strudel/webaudio';
 import { transpiler } from '@strudel/transpiler';
@@ -26,6 +27,7 @@ const editor = new StrudelMirror({
     initAudioOnFirstClick(); // needed to make the browser happy (don't await this here..)
     const loadModules = evalScope(
       import('@strudel/core'),
+      import('@strudel/draw'),
       import('@strudel/mini'),
       import('@strudel/tonal'),
       import('@strudel/webaudio'),
diff --git a/examples/codemirror-repl/package.json b/examples/codemirror-repl/package.json
index 403f34af..ec178d48 100644
--- a/examples/codemirror-repl/package.json
+++ b/examples/codemirror-repl/package.json
@@ -14,6 +14,7 @@
   "dependencies": {
     "@strudel/codemirror": "workspace:*",
     "@strudel/core": "workspace:*",
+    "@strudel/draw": "workspace:*",
     "@strudel/mini": "workspace:*",
     "@strudel/soundfonts": "workspace:*",
     "@strudel/tonal": "workspace:*",
diff --git a/examples/tidal-repl/.gitignore b/examples/tidal-repl/.gitignore
new file mode 100644
index 00000000..ce99c129
--- /dev/null
+++ b/examples/tidal-repl/.gitignore
@@ -0,0 +1,27 @@
+# Logs
+logs
+*.log
+npm-debug.log*
+yarn-debug.log*
+yarn-error.log*
+pnpm-debug.log*
+lerna-debug.log*
+
+node_modules
+dist
+dist-ssr
+*.local
+
+# Editor directories and files
+.vscode/*
+!.vscode/extensions.json
+.idea
+.DS_Store
+*.suo
+*.ntvs*
+*.njsproj
+*.sln
+*.sw?
+
+public/tree-sitter.wasm
+public/tree-sitter-haskell.wasm
diff --git a/examples/tidal-repl/README.md b/examples/tidal-repl/README.md
new file mode 100644
index 00000000..8b07ac19
--- /dev/null
+++ b/examples/tidal-repl/README.md
@@ -0,0 +1,10 @@
+# @strudel/tidal
+
+This is an experiment in implementing tree-sitter for parsing haskell.
+
+```sh
+pnpm i
+cd haskell
+pnpm copy-wasm
+pnpm dev
+```
diff --git a/examples/tidal-repl/index.html b/examples/tidal-repl/index.html
new file mode 100644
index 00000000..25dc693e
--- /dev/null
+++ b/examples/tidal-repl/index.html
@@ -0,0 +1,32 @@
+
+
+  
+    
+    
+    Tree sitter test
+    
+  
+  
+    
+    

+    
+  
+
diff --git a/examples/tidal-repl/main.js b/examples/tidal-repl/main.js
new file mode 100644
index 00000000..3ce301db
--- /dev/null
+++ b/examples/tidal-repl/main.js
@@ -0,0 +1,83 @@
+import { run, parse, loadParser } from 'hs2js';
+import { initStrudel, reify, late, samples, stack } from '@strudel/web';
+
+initStrudel({
+  prebake: () => samples('github:tidalcycles/dirt-samples'),
+});
+
+const ready = loadParser();
+
+const textarea = document.getElementById('code');
+if (window.location.hash) {
+  textarea.value = atob(window.location.hash.slice(1));
+} else {
+  textarea.value = 'd1 $ s "jvbass(3,8)"';
+}
+textarea.addEventListener('input', (e) => {
+  window.location.hash = btoa(e.target.value);
+  update();
+});
+update();
+
+function getInfixOperators() {
+  let operators = {
+    '>': 'set',
+    '#': 'set',
+    '+': 'add',
+    '-': 'sub',
+    '*': 'mul',
+    '/': 'div',
+  };
+  let alignments = {
+    in: (s) => '|' + s,
+    out: (s) => s + '|',
+    mix: (s) => '|' + s + '|',
+  };
+  let ops = {};
+  Object.entries(operators).forEach(([o, name]) => {
+    // operator without alignment
+    ops[o] = (l, r) => reify(l)[name](reify(r));
+    Object.entries(alignments).forEach(([a, getSymbol]) => {
+      // get symbol with alignment
+      let symbol = getSymbol(o);
+      ops[symbol] = (l, r) => reify(l)[name][a](reify(r));
+    });
+  });
+  ops['~>'] = (l, r) => reify(l).late(reify(r));
+  ops['<~'] = (l, r) => reify(l).early(reify(r));
+  ops['<$>'] = (l, r) => reify(r).fmap(l).outerJoin(); // is this right?
+  return ops;
+}
+const ops = getInfixOperators();
+
+async function update() {
+  let result, tree;
+  await ready;
+  try {
+    tree = parse(textarea.value);
+  } catch (err) {
+    console.warn('parse error');
+    console.error(err);
+  }
+  console.log('parsed tree');
+  console.log(tree.rootNode.toString());
+  try {
+    let patterns = {};
+    window.p = (name, pattern) => {
+      patterns[name] = pattern;
+    };
+    window.d1 = (pat) => window.p(1, pat);
+    window.d2 = (pat) => window.p(2, pat);
+    window.d3 = (pat) => window.p(3, pat);
+    window.rot = late;
+    result = run(tree.rootNode, window, ops);
+    if (Object.values(patterns).length) {
+      stack(...Object.values(patterns)).play();
+    }
+  } catch (err) {
+    console.warn('eval error');
+    console.error(err);
+    result = 'ERROR: ' + err.message;
+  }
+  document.getElementById('result').innerHTML = 'Result: ' + result;
+}
diff --git a/examples/tidal-repl/package.json b/examples/tidal-repl/package.json
new file mode 100644
index 00000000..f1e1337c
--- /dev/null
+++ b/examples/tidal-repl/package.json
@@ -0,0 +1,36 @@
+{
+  "name": "tidal-repl",
+  "private": true,
+  "version": "0.0.1",
+  "type": "module",
+  "scripts": {
+    "dev": "vite",
+    "build": "pnpm copy-wasm && vite build",
+    "preview": "vite preview",
+    "copy-wasm": "cp node_modules/hs2js/dist/tree-sitter.wasm public && cp node_modules/hs2js/dist/tree-sitter-haskell.wasm public"
+  },
+  "repository": {
+    "type": "git",
+    "url": "git+https://github.com/tidalcycles/strudel.git"
+  },
+  "keywords": [
+    "titdalcycles",
+    "strudel",
+    "pattern",
+    "livecoding",
+    "algorave"
+  ],
+  "author": "Felix Roos ",
+  "license": "AGPL-3.0-or-later",
+  "bugs": {
+    "url": "https://github.com/tidalcycles/strudel/issues"
+  },
+  "homepage": "https://github.com/tidalcycles/strudel#readme",
+  "dependencies": {
+    "@strudel/web": "workspace:*",
+    "hs2js": "workspace:*"
+  },
+  "devDependencies": {
+    "vite": "^5.0.8"
+  }
+}
diff --git a/examples/tidal-repl/public/README.md b/examples/tidal-repl/public/README.md
new file mode 100644
index 00000000..6f8ff001
--- /dev/null
+++ b/examples/tidal-repl/public/README.md
@@ -0,0 +1,3 @@
+# public
+
+this file is just here to make sure the public folder exists
diff --git a/packages/codemirror/codemirror.mjs b/packages/codemirror/codemirror.mjs
index d28bf95d..0a722e1d 100644
--- a/packages/codemirror/codemirror.mjs
+++ b/packages/codemirror/codemirror.mjs
@@ -345,6 +345,17 @@ export class StrudelMirror {
   clear() {
     this.onStartRepl && document.removeEventListener('start-repl', this.onStartRepl);
   }
+  getCursorLocation() {
+    return this.editor.state.selection.main.head;
+  }
+  setCursorLocation(col) {
+    return this.editor.dispatch({ selection: { anchor: col } });
+  }
+  appendCode(code) {
+    const cursor = this.getCursorLocation();
+    this.setCode(this.code + code);
+    this.setCursorLocation(cursor);
+  }
 }
 
 function parseBooleans(value) {
diff --git a/packages/codemirror/package.json b/packages/codemirror/package.json
index 133c4148..5ef5e73b 100644
--- a/packages/codemirror/package.json
+++ b/packages/codemirror/package.json
@@ -1,6 +1,6 @@
 {
   "name": "@strudel/codemirror",
-  "version": "1.0.1",
+  "version": "1.1.0",
   "description": "Codemirror Extensions for Strudel",
   "main": "index.mjs",
   "publishConfig": {
diff --git a/packages/core/controls.mjs b/packages/core/controls.mjs
index 166f0ac2..2e8d40f7 100644
--- a/packages/core/controls.mjs
+++ b/packages/core/controls.mjs
@@ -47,7 +47,7 @@ export function createParam(names) {
   return func;
 }
 
-function registerControl(names, ...aliases) {
+export function registerControl(names, ...aliases) {
   const name = Array.isArray(names) ? names[0] : names;
   let bag = {};
   bag[name] = createParam(names);
@@ -430,6 +430,17 @@ export const { crush } = registerControl('crush');
  */
 export const { coarse } = registerControl('coarse');
 
+/**
+ * filter overdrive for supported filter types
+ *
+ * @name drive
+ * @param {number | Pattern} amount
+ * @example
+ * note("{f g g c d a a#}%16".sub(17)).s("supersaw").lpenv(8).lpf(150).lpq(.8).ftype('ladder').drive("<.5 4>")
+ *
+ */
+export const { drive } = registerControl('drive');
+
 /**
  * Allows you to set the output channels on the interface
  *
@@ -542,7 +553,7 @@ export const { cutoff, ctf, lpf, lp } = registerControl(['cutoff', 'resonance',
  * @example
  * note("c2 e2 f2 g2")
  * .sound('sawtooth')
- * .lpf(500)
+ * .lpf(300)
  * .lpa(.5)
  * .lpenv("<4 2 1 0 -1 -2 -4>/4")
  */
@@ -581,7 +592,7 @@ export const { bpenv, bpe } = registerControl('bpenv', 'bpe');
  * @example
  * note("c2 e2 f2 g2")
  * .sound('sawtooth')
- * .lpf(500)
+ * .lpf(300)
  * .lpa("<.5 .25 .1 .01>/4")
  * .lpenv(4)
  */
@@ -620,9 +631,8 @@ export const { bpattack, bpa } = registerControl('bpattack', 'bpa');
  * @example
  * note("c2 e2 f2 g2")
  * .sound('sawtooth')
- * .lpf(500)
+ * .lpf(300)
  * .lpd("<.5 .25 .1 0>/4")
- * .lps(0.2)
  * .lpenv(4)
  */
 export const { lpdecay, lpd } = registerControl('lpdecay', 'lpd');
@@ -662,7 +672,7 @@ export const { bpdecay, bpd } = registerControl('bpdecay', 'bpd');
  * @example
  * note("c2 e2 f2 g2")
  * .sound('sawtooth')
- * .lpf(500)
+ * .lpf(300)
  * .lpd(.5)
  * .lps("<0 .25 .5 1>/4")
  * .lpenv(4)
@@ -705,7 +715,7 @@ export const { bpsustain, bps } = registerControl('bpsustain', 'bps');
  * note("c2 e2 f2 g2")
  * .sound('sawtooth')
  * .clip(.5)
- * .lpf(500)
+ * .lpf(300)
  * .lpenv(4)
  * .lpr("<.5 .25 .1 0>/4")
  * .release(.5)
@@ -742,17 +752,28 @@ export const { hprelease, hpr } = registerControl('hprelease', 'hpr');
  */
 export const { bprelease, bpr } = registerControl('bprelease', 'bpr');
 /**
- * Sets the filter type. The 24db filter is more aggressive. More types might be added in the future.
+ * Sets the filter type. The ladder filter is more aggressive. More types might be added in the future.
  * @name ftype
- * @param {number | Pattern} type 12db (default) or 24db
+ * @param {number | Pattern} type 12db (0), ladder (1), or 24db (2)
  * @example
- * note("c2 e2 f2 g2")
+ * note("{f g g c d a a#}%8").s("sawtooth").lpenv(4).lpf(500).ftype("<0 1 2>").lpq(1)
+ * @example
+ * note("c f g g a c d4").fast(2)
  * .sound('sawtooth')
- * .lpf(500)
- * .bpenv(4)
- * .ftype("12db 24db")
+ * .lpf(200).fanchor(0)
+ * .lpenv(3).lpq(1)
+ * .ftype("")
  */
 export const { ftype } = registerControl('ftype');
+
+/**
+ * controls the center of the filter envelope. 0 is unipolar positive, .5 is bipolar, 1 is unipolar negative
+ * @name fanchor
+ * @param {number | Pattern} center 0 to 1
+ * @example
+ * note("{f g g c d a a#}%8").s("sawtooth").lpf("{1000}%2")
+ * .lpenv(8).fanchor("<0 .5 1>")
+ */
 export const { fanchor } = registerControl('fanchor');
 /**
  * Applies the cutoff frequency of the **h**igh-**p**ass **f**ilter.
diff --git a/packages/core/package.json b/packages/core/package.json
index 6c95d049..8accf3c0 100644
--- a/packages/core/package.json
+++ b/packages/core/package.json
@@ -1,6 +1,6 @@
 {
   "name": "@strudel/core",
-  "version": "1.0.1",
+  "version": "1.1.0",
   "description": "Port of Tidal Cycles to JavaScript",
   "main": "index.mjs",
   "type": "module",
diff --git a/packages/core/signal.mjs b/packages/core/signal.mjs
index 375c4f67..1b950c39 100644
--- a/packages/core/signal.mjs
+++ b/packages/core/signal.mjs
@@ -86,6 +86,38 @@ export const tri2 = fastcat(isaw2, saw2);
 
 export const time = signal(id);
 
+/**
+ *  The mouse's x position value ranges from 0 to 1.
+ * @name mousex
+ * @return {Pattern}
+ * @example
+ * n(mousex.segment(4).range(0,7)).scale("C:minor")
+ *
+ */
+
+/**
+ *  The mouse's y position value ranges from 0 to 1.
+ * @name mousey
+ * @return {Pattern}
+ * @example
+ * n(mousey.segment(4).range(0,7)).scale("C:minor")
+ *
+ */
+let _mouseY = 0,
+  _mouseX = 0;
+if (typeof window !== 'undefined') {
+  //document.onmousemove = (e) => {
+  document.addEventListener('mousemove', (e) => {
+    _mouseY = e.clientY / document.body.clientHeight;
+    _mouseX = e.clientX / document.body.clientWidth;
+  });
+}
+
+export const mousey = signal(() => _mouseY);
+export const mouseY = signal(() => _mouseY);
+export const mousex = signal(() => _mouseX);
+export const mouseX = signal(() => _mouseX);
+
 // random signals
 
 const xorwise = (x) => {
diff --git a/packages/csound/package.json b/packages/csound/package.json
index e0811208..70967f21 100644
--- a/packages/csound/package.json
+++ b/packages/csound/package.json
@@ -1,6 +1,6 @@
 {
   "name": "@strudel/csound",
-  "version": "1.0.1",
+  "version": "1.1.0",
   "description": "csound bindings for strudel",
   "main": "index.mjs",
   "type": "module",
diff --git a/packages/draw/draw.mjs b/packages/draw/draw.mjs
index cfd2ce75..81123f46 100644
--- a/packages/draw/draw.mjs
+++ b/packages/draw/draw.mjs
@@ -191,7 +191,16 @@ export function getComputedPropertyValue(name) {
   return getComputedStyle(document.documentElement).getPropertyValue(name);
 }
 
-let theme = {};
+let theme = {
+  background: '#222',
+  foreground: '#75baff',
+  caret: '#ffcc00',
+  selection: 'rgba(128, 203, 196, 0.5)',
+  selectionMatch: '#036dd626',
+  lineHighlight: '#00000050',
+  gutterBackground: 'transparent',
+  gutterForeground: '#8a919966',
+};
 export function getTheme() {
   return theme;
 }
diff --git a/packages/draw/package.json b/packages/draw/package.json
index 346a4723..a6a88ecf 100644
--- a/packages/draw/package.json
+++ b/packages/draw/package.json
@@ -1,6 +1,6 @@
 {
   "name": "@strudel/draw",
-  "version": "1.0.1",
+  "version": "1.1.0",
   "description": "Helpers for drawing with Strudel",
   "main": "index.mjs",
   "type": "module",
diff --git a/packages/draw/pianoroll.mjs b/packages/draw/pianoroll.mjs
index 1bdf81c4..247213b4 100644
--- a/packages/draw/pianoroll.mjs
+++ b/packages/draw/pianoroll.mjs
@@ -108,7 +108,7 @@ export function pianoroll({
   active = getTheme().foreground,
   background = 'transparent',
   smear = 0,
-  playheadColor = 'white',
+  playheadColor = getTheme().foreground,
   minMidi = 10,
   maxMidi = 90,
   autorange = 0,
diff --git a/packages/embed/package.json b/packages/embed/package.json
index 55a9f0a5..afd88788 100644
--- a/packages/embed/package.json
+++ b/packages/embed/package.json
@@ -1,6 +1,6 @@
 {
   "name": "@strudel/embed",
-  "version": "1.0.0",
+  "version": "1.1.0",
   "description": "Embeddable Web Component to load a Strudel REPL into an iframe",
   "main": "embed.js",
   "type": "module",
diff --git a/packages/hs2js/.npmignore b/packages/hs2js/.npmignore
new file mode 100644
index 00000000..0fdbcf58
--- /dev/null
+++ b/packages/hs2js/.npmignore
@@ -0,0 +1,2 @@
+pnpm-lock.yaml
+vite.config.js
diff --git a/packages/hs2js/LICENSE b/packages/hs2js/LICENSE
new file mode 100644
index 00000000..0ad25db4
--- /dev/null
+++ b/packages/hs2js/LICENSE
@@ -0,0 +1,661 @@
+                    GNU AFFERO GENERAL PUBLIC LICENSE
+                       Version 3, 19 November 2007
+
+ Copyright (C) 2007 Free Software Foundation, Inc. 
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+                            Preamble
+
+  The GNU Affero General Public License is a free, copyleft license for
+software and other kinds of works, specifically designed to ensure
+cooperation with the community in the case of network server software.
+
+  The licenses for most software and other practical works are designed
+to take away your freedom to share and change the works.  By contrast,
+our General Public Licenses are intended to guarantee your freedom to
+share and change all versions of a program--to make sure it remains free
+software for all its users.
+
+  When we speak of free software, we are referring to freedom, not
+price.  Our General Public Licenses are designed to make sure that you
+have the freedom to distribute copies of free software (and charge for
+them if you wish), that you receive source code or can get it if you
+want it, that you can change the software or use pieces of it in new
+free programs, and that you know you can do these things.
+
+  Developers that use our General Public Licenses protect your rights
+with two steps: (1) assert copyright on the software, and (2) offer
+you this License which gives you legal permission to copy, distribute
+and/or modify the software.
+
+  A secondary benefit of defending all users' freedom is that
+improvements made in alternate versions of the program, if they
+receive widespread use, become available for other developers to
+incorporate.  Many developers of free software are heartened and
+encouraged by the resulting cooperation.  However, in the case of
+software used on network servers, this result may fail to come about.
+The GNU General Public License permits making a modified version and
+letting the public access it on a server without ever releasing its
+source code to the public.
+
+  The GNU Affero General Public License is designed specifically to
+ensure that, in such cases, the modified source code becomes available
+to the community.  It requires the operator of a network server to
+provide the source code of the modified version running there to the
+users of that server.  Therefore, public use of a modified version, on
+a publicly accessible server, gives the public access to the source
+code of the modified version.
+
+  An older license, called the Affero General Public License and
+published by Affero, was designed to accomplish similar goals.  This is
+a different license, not a version of the Affero GPL, but Affero has
+released a new version of the Affero GPL which permits relicensing under
+this license.
+
+  The precise terms and conditions for copying, distribution and
+modification follow.
+
+                       TERMS AND CONDITIONS
+
+  0. Definitions.
+
+  "This License" refers to version 3 of the GNU Affero General Public License.
+
+  "Copyright" also means copyright-like laws that apply to other kinds of
+works, such as semiconductor masks.
+
+  "The Program" refers to any copyrightable work licensed under this
+License.  Each licensee is addressed as "you".  "Licensees" and
+"recipients" may be individuals or organizations.
+
+  To "modify" a work means to copy from or adapt all or part of the work
+in a fashion requiring copyright permission, other than the making of an
+exact copy.  The resulting work is called a "modified version" of the
+earlier work or a work "based on" the earlier work.
+
+  A "covered work" means either the unmodified Program or a work based
+on the Program.
+
+  To "propagate" a work means to do anything with it that, without
+permission, would make you directly or secondarily liable for
+infringement under applicable copyright law, except executing it on a
+computer or modifying a private copy.  Propagation includes copying,
+distribution (with or without modification), making available to the
+public, and in some countries other activities as well.
+
+  To "convey" a work means any kind of propagation that enables other
+parties to make or receive copies.  Mere interaction with a user through
+a computer network, with no transfer of a copy, is not conveying.
+
+  An interactive user interface displays "Appropriate Legal Notices"
+to the extent that it includes a convenient and prominently visible
+feature that (1) displays an appropriate copyright notice, and (2)
+tells the user that there is no warranty for the work (except to the
+extent that warranties are provided), that licensees may convey the
+work under this License, and how to view a copy of this License.  If
+the interface presents a list of user commands or options, such as a
+menu, a prominent item in the list meets this criterion.
+
+  1. Source Code.
+
+  The "source code" for a work means the preferred form of the work
+for making modifications to it.  "Object code" means any non-source
+form of a work.
+
+  A "Standard Interface" means an interface that either is an official
+standard defined by a recognized standards body, or, in the case of
+interfaces specified for a particular programming language, one that
+is widely used among developers working in that language.
+
+  The "System Libraries" of an executable work include anything, other
+than the work as a whole, that (a) is included in the normal form of
+packaging a Major Component, but which is not part of that Major
+Component, and (b) serves only to enable use of the work with that
+Major Component, or to implement a Standard Interface for which an
+implementation is available to the public in source code form.  A
+"Major Component", in this context, means a major essential component
+(kernel, window system, and so on) of the specific operating system
+(if any) on which the executable work runs, or a compiler used to
+produce the work, or an object code interpreter used to run it.
+
+  The "Corresponding Source" for a work in object code form means all
+the source code needed to generate, install, and (for an executable
+work) run the object code and to modify the work, including scripts to
+control those activities.  However, it does not include the work's
+System Libraries, or general-purpose tools or generally available free
+programs which are used unmodified in performing those activities but
+which are not part of the work.  For example, Corresponding Source
+includes interface definition files associated with source files for
+the work, and the source code for shared libraries and dynamically
+linked subprograms that the work is specifically designed to require,
+such as by intimate data communication or control flow between those
+subprograms and other parts of the work.
+
+  The Corresponding Source need not include anything that users
+can regenerate automatically from other parts of the Corresponding
+Source.
+
+  The Corresponding Source for a work in source code form is that
+same work.
+
+  2. Basic Permissions.
+
+  All rights granted under this License are granted for the term of
+copyright on the Program, and are irrevocable provided the stated
+conditions are met.  This License explicitly affirms your unlimited
+permission to run the unmodified Program.  The output from running a
+covered work is covered by this License only if the output, given its
+content, constitutes a covered work.  This License acknowledges your
+rights of fair use or other equivalent, as provided by copyright law.
+
+  You may make, run and propagate covered works that you do not
+convey, without conditions so long as your license otherwise remains
+in force.  You may convey covered works to others for the sole purpose
+of having them make modifications exclusively for you, or provide you
+with facilities for running those works, provided that you comply with
+the terms of this License in conveying all material for which you do
+not control copyright.  Those thus making or running the covered works
+for you must do so exclusively on your behalf, under your direction
+and control, on terms that prohibit them from making any copies of
+your copyrighted material outside their relationship with you.
+
+  Conveying under any other circumstances is permitted solely under
+the conditions stated below.  Sublicensing is not allowed; section 10
+makes it unnecessary.
+
+  3. Protecting Users' Legal Rights From Anti-Circumvention Law.
+
+  No covered work shall be deemed part of an effective technological
+measure under any applicable law fulfilling obligations under article
+11 of the WIPO copyright treaty adopted on 20 December 1996, or
+similar laws prohibiting or restricting circumvention of such
+measures.
+
+  When you convey a covered work, you waive any legal power to forbid
+circumvention of technological measures to the extent such circumvention
+is effected by exercising rights under this License with respect to
+the covered work, and you disclaim any intention to limit operation or
+modification of the work as a means of enforcing, against the work's
+users, your or third parties' legal rights to forbid circumvention of
+technological measures.
+
+  4. Conveying Verbatim Copies.
+
+  You may convey verbatim copies of the Program's source code as you
+receive it, in any medium, provided that you conspicuously and
+appropriately publish on each copy an appropriate copyright notice;
+keep intact all notices stating that this License and any
+non-permissive terms added in accord with section 7 apply to the code;
+keep intact all notices of the absence of any warranty; and give all
+recipients a copy of this License along with the Program.
+
+  You may charge any price or no price for each copy that you convey,
+and you may offer support or warranty protection for a fee.
+
+  5. Conveying Modified Source Versions.
+
+  You may convey a work based on the Program, or the modifications to
+produce it from the Program, in the form of source code under the
+terms of section 4, provided that you also meet all of these conditions:
+
+    a) The work must carry prominent notices stating that you modified
+    it, and giving a relevant date.
+
+    b) The work must carry prominent notices stating that it is
+    released under this License and any conditions added under section
+    7.  This requirement modifies the requirement in section 4 to
+    "keep intact all notices".
+
+    c) You must license the entire work, as a whole, under this
+    License to anyone who comes into possession of a copy.  This
+    License will therefore apply, along with any applicable section 7
+    additional terms, to the whole of the work, and all its parts,
+    regardless of how they are packaged.  This License gives no
+    permission to license the work in any other way, but it does not
+    invalidate such permission if you have separately received it.
+
+    d) If the work has interactive user interfaces, each must display
+    Appropriate Legal Notices; however, if the Program has interactive
+    interfaces that do not display Appropriate Legal Notices, your
+    work need not make them do so.
+
+  A compilation of a covered work with other separate and independent
+works, which are not by their nature extensions of the covered work,
+and which are not combined with it such as to form a larger program,
+in or on a volume of a storage or distribution medium, is called an
+"aggregate" if the compilation and its resulting copyright are not
+used to limit the access or legal rights of the compilation's users
+beyond what the individual works permit.  Inclusion of a covered work
+in an aggregate does not cause this License to apply to the other
+parts of the aggregate.
+
+  6. Conveying Non-Source Forms.
+
+  You may convey a covered work in object code form under the terms
+of sections 4 and 5, provided that you also convey the
+machine-readable Corresponding Source under the terms of this License,
+in one of these ways:
+
+    a) Convey the object code in, or embodied in, a physical product
+    (including a physical distribution medium), accompanied by the
+    Corresponding Source fixed on a durable physical medium
+    customarily used for software interchange.
+
+    b) Convey the object code in, or embodied in, a physical product
+    (including a physical distribution medium), accompanied by a
+    written offer, valid for at least three years and valid for as
+    long as you offer spare parts or customer support for that product
+    model, to give anyone who possesses the object code either (1) a
+    copy of the Corresponding Source for all the software in the
+    product that is covered by this License, on a durable physical
+    medium customarily used for software interchange, for a price no
+    more than your reasonable cost of physically performing this
+    conveying of source, or (2) access to copy the
+    Corresponding Source from a network server at no charge.
+
+    c) Convey individual copies of the object code with a copy of the
+    written offer to provide the Corresponding Source.  This
+    alternative is allowed only occasionally and noncommercially, and
+    only if you received the object code with such an offer, in accord
+    with subsection 6b.
+
+    d) Convey the object code by offering access from a designated
+    place (gratis or for a charge), and offer equivalent access to the
+    Corresponding Source in the same way through the same place at no
+    further charge.  You need not require recipients to copy the
+    Corresponding Source along with the object code.  If the place to
+    copy the object code is a network server, the Corresponding Source
+    may be on a different server (operated by you or a third party)
+    that supports equivalent copying facilities, provided you maintain
+    clear directions next to the object code saying where to find the
+    Corresponding Source.  Regardless of what server hosts the
+    Corresponding Source, you remain obligated to ensure that it is
+    available for as long as needed to satisfy these requirements.
+
+    e) Convey the object code using peer-to-peer transmission, provided
+    you inform other peers where the object code and Corresponding
+    Source of the work are being offered to the general public at no
+    charge under subsection 6d.
+
+  A separable portion of the object code, whose source code is excluded
+from the Corresponding Source as a System Library, need not be
+included in conveying the object code work.
+
+  A "User Product" is either (1) a "consumer product", which means any
+tangible personal property which is normally used for personal, family,
+or household purposes, or (2) anything designed or sold for incorporation
+into a dwelling.  In determining whether a product is a consumer product,
+doubtful cases shall be resolved in favor of coverage.  For a particular
+product received by a particular user, "normally used" refers to a
+typical or common use of that class of product, regardless of the status
+of the particular user or of the way in which the particular user
+actually uses, or expects or is expected to use, the product.  A product
+is a consumer product regardless of whether the product has substantial
+commercial, industrial or non-consumer uses, unless such uses represent
+the only significant mode of use of the product.
+
+  "Installation Information" for a User Product means any methods,
+procedures, authorization keys, or other information required to install
+and execute modified versions of a covered work in that User Product from
+a modified version of its Corresponding Source.  The information must
+suffice to ensure that the continued functioning of the modified object
+code is in no case prevented or interfered with solely because
+modification has been made.
+
+  If you convey an object code work under this section in, or with, or
+specifically for use in, a User Product, and the conveying occurs as
+part of a transaction in which the right of possession and use of the
+User Product is transferred to the recipient in perpetuity or for a
+fixed term (regardless of how the transaction is characterized), the
+Corresponding Source conveyed under this section must be accompanied
+by the Installation Information.  But this requirement does not apply
+if neither you nor any third party retains the ability to install
+modified object code on the User Product (for example, the work has
+been installed in ROM).
+
+  The requirement to provide Installation Information does not include a
+requirement to continue to provide support service, warranty, or updates
+for a work that has been modified or installed by the recipient, or for
+the User Product in which it has been modified or installed.  Access to a
+network may be denied when the modification itself materially and
+adversely affects the operation of the network or violates the rules and
+protocols for communication across the network.
+
+  Corresponding Source conveyed, and Installation Information provided,
+in accord with this section must be in a format that is publicly
+documented (and with an implementation available to the public in
+source code form), and must require no special password or key for
+unpacking, reading or copying.
+
+  7. Additional Terms.
+
+  "Additional permissions" are terms that supplement the terms of this
+License by making exceptions from one or more of its conditions.
+Additional permissions that are applicable to the entire Program shall
+be treated as though they were included in this License, to the extent
+that they are valid under applicable law.  If additional permissions
+apply only to part of the Program, that part may be used separately
+under those permissions, but the entire Program remains governed by
+this License without regard to the additional permissions.
+
+  When you convey a copy of a covered work, you may at your option
+remove any additional permissions from that copy, or from any part of
+it.  (Additional permissions may be written to require their own
+removal in certain cases when you modify the work.)  You may place
+additional permissions on material, added by you to a covered work,
+for which you have or can give appropriate copyright permission.
+
+  Notwithstanding any other provision of this License, for material you
+add to a covered work, you may (if authorized by the copyright holders of
+that material) supplement the terms of this License with terms:
+
+    a) Disclaiming warranty or limiting liability differently from the
+    terms of sections 15 and 16 of this License; or
+
+    b) Requiring preservation of specified reasonable legal notices or
+    author attributions in that material or in the Appropriate Legal
+    Notices displayed by works containing it; or
+
+    c) Prohibiting misrepresentation of the origin of that material, or
+    requiring that modified versions of such material be marked in
+    reasonable ways as different from the original version; or
+
+    d) Limiting the use for publicity purposes of names of licensors or
+    authors of the material; or
+
+    e) Declining to grant rights under trademark law for use of some
+    trade names, trademarks, or service marks; or
+
+    f) Requiring indemnification of licensors and authors of that
+    material by anyone who conveys the material (or modified versions of
+    it) with contractual assumptions of liability to the recipient, for
+    any liability that these contractual assumptions directly impose on
+    those licensors and authors.
+
+  All other non-permissive additional terms are considered "further
+restrictions" within the meaning of section 10.  If the Program as you
+received it, or any part of it, contains a notice stating that it is
+governed by this License along with a term that is a further
+restriction, you may remove that term.  If a license document contains
+a further restriction but permits relicensing or conveying under this
+License, you may add to a covered work material governed by the terms
+of that license document, provided that the further restriction does
+not survive such relicensing or conveying.
+
+  If you add terms to a covered work in accord with this section, you
+must place, in the relevant source files, a statement of the
+additional terms that apply to those files, or a notice indicating
+where to find the applicable terms.
+
+  Additional terms, permissive or non-permissive, may be stated in the
+form of a separately written license, or stated as exceptions;
+the above requirements apply either way.
+
+  8. Termination.
+
+  You may not propagate or modify a covered work except as expressly
+provided under this License.  Any attempt otherwise to propagate or
+modify it is void, and will automatically terminate your rights under
+this License (including any patent licenses granted under the third
+paragraph of section 11).
+
+  However, if you cease all violation of this License, then your
+license from a particular copyright holder is reinstated (a)
+provisionally, unless and until the copyright holder explicitly and
+finally terminates your license, and (b) permanently, if the copyright
+holder fails to notify you of the violation by some reasonable means
+prior to 60 days after the cessation.
+
+  Moreover, your license from a particular copyright holder is
+reinstated permanently if the copyright holder notifies you of the
+violation by some reasonable means, this is the first time you have
+received notice of violation of this License (for any work) from that
+copyright holder, and you cure the violation prior to 30 days after
+your receipt of the notice.
+
+  Termination of your rights under this section does not terminate the
+licenses of parties who have received copies or rights from you under
+this License.  If your rights have been terminated and not permanently
+reinstated, you do not qualify to receive new licenses for the same
+material under section 10.
+
+  9. Acceptance Not Required for Having Copies.
+
+  You are not required to accept this License in order to receive or
+run a copy of the Program.  Ancillary propagation of a covered work
+occurring solely as a consequence of using peer-to-peer transmission
+to receive a copy likewise does not require acceptance.  However,
+nothing other than this License grants you permission to propagate or
+modify any covered work.  These actions infringe copyright if you do
+not accept this License.  Therefore, by modifying or propagating a
+covered work, you indicate your acceptance of this License to do so.
+
+  10. Automatic Licensing of Downstream Recipients.
+
+  Each time you convey a covered work, the recipient automatically
+receives a license from the original licensors, to run, modify and
+propagate that work, subject to this License.  You are not responsible
+for enforcing compliance by third parties with this License.
+
+  An "entity transaction" is a transaction transferring control of an
+organization, or substantially all assets of one, or subdividing an
+organization, or merging organizations.  If propagation of a covered
+work results from an entity transaction, each party to that
+transaction who receives a copy of the work also receives whatever
+licenses to the work the party's predecessor in interest had or could
+give under the previous paragraph, plus a right to possession of the
+Corresponding Source of the work from the predecessor in interest, if
+the predecessor has it or can get it with reasonable efforts.
+
+  You may not impose any further restrictions on the exercise of the
+rights granted or affirmed under this License.  For example, you may
+not impose a license fee, royalty, or other charge for exercise of
+rights granted under this License, and you may not initiate litigation
+(including a cross-claim or counterclaim in a lawsuit) alleging that
+any patent claim is infringed by making, using, selling, offering for
+sale, or importing the Program or any portion of it.
+
+  11. Patents.
+
+  A "contributor" is a copyright holder who authorizes use under this
+License of the Program or a work on which the Program is based.  The
+work thus licensed is called the contributor's "contributor version".
+
+  A contributor's "essential patent claims" are all patent claims
+owned or controlled by the contributor, whether already acquired or
+hereafter acquired, that would be infringed by some manner, permitted
+by this License, of making, using, or selling its contributor version,
+but do not include claims that would be infringed only as a
+consequence of further modification of the contributor version.  For
+purposes of this definition, "control" includes the right to grant
+patent sublicenses in a manner consistent with the requirements of
+this License.
+
+  Each contributor grants you a non-exclusive, worldwide, royalty-free
+patent license under the contributor's essential patent claims, to
+make, use, sell, offer for sale, import and otherwise run, modify and
+propagate the contents of its contributor version.
+
+  In the following three paragraphs, a "patent license" is any express
+agreement or commitment, however denominated, not to enforce a patent
+(such as an express permission to practice a patent or covenant not to
+sue for patent infringement).  To "grant" such a patent license to a
+party means to make such an agreement or commitment not to enforce a
+patent against the party.
+
+  If you convey a covered work, knowingly relying on a patent license,
+and the Corresponding Source of the work is not available for anyone
+to copy, free of charge and under the terms of this License, through a
+publicly available network server or other readily accessible means,
+then you must either (1) cause the Corresponding Source to be so
+available, or (2) arrange to deprive yourself of the benefit of the
+patent license for this particular work, or (3) arrange, in a manner
+consistent with the requirements of this License, to extend the patent
+license to downstream recipients.  "Knowingly relying" means you have
+actual knowledge that, but for the patent license, your conveying the
+covered work in a country, or your recipient's use of the covered work
+in a country, would infringe one or more identifiable patents in that
+country that you have reason to believe are valid.
+
+  If, pursuant to or in connection with a single transaction or
+arrangement, you convey, or propagate by procuring conveyance of, a
+covered work, and grant a patent license to some of the parties
+receiving the covered work authorizing them to use, propagate, modify
+or convey a specific copy of the covered work, then the patent license
+you grant is automatically extended to all recipients of the covered
+work and works based on it.
+
+  A patent license is "discriminatory" if it does not include within
+the scope of its coverage, prohibits the exercise of, or is
+conditioned on the non-exercise of one or more of the rights that are
+specifically granted under this License.  You may not convey a covered
+work if you are a party to an arrangement with a third party that is
+in the business of distributing software, under which you make payment
+to the third party based on the extent of your activity of conveying
+the work, and under which the third party grants, to any of the
+parties who would receive the covered work from you, a discriminatory
+patent license (a) in connection with copies of the covered work
+conveyed by you (or copies made from those copies), or (b) primarily
+for and in connection with specific products or compilations that
+contain the covered work, unless you entered into that arrangement,
+or that patent license was granted, prior to 28 March 2007.
+
+  Nothing in this License shall be construed as excluding or limiting
+any implied license or other defenses to infringement that may
+otherwise be available to you under applicable patent law.
+
+  12. No Surrender of Others' Freedom.
+
+  If conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License.  If you cannot convey a
+covered work so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you may
+not convey it at all.  For example, if you agree to terms that obligate you
+to collect a royalty for further conveying from those to whom you convey
+the Program, the only way you could satisfy both those terms and this
+License would be to refrain entirely from conveying the Program.
+
+  13. Remote Network Interaction; Use with the GNU General Public License.
+
+  Notwithstanding any other provision of this License, if you modify the
+Program, your modified version must prominently offer all users
+interacting with it remotely through a computer network (if your version
+supports such interaction) an opportunity to receive the Corresponding
+Source of your version by providing access to the Corresponding Source
+from a network server at no charge, through some standard or customary
+means of facilitating copying of software.  This Corresponding Source
+shall include the Corresponding Source for any work covered by version 3
+of the GNU General Public License that is incorporated pursuant to the
+following paragraph.
+
+  Notwithstanding any other provision of this License, you have
+permission to link or combine any covered work with a work licensed
+under version 3 of the GNU General Public License into a single
+combined work, and to convey the resulting work.  The terms of this
+License will continue to apply to the part which is the covered work,
+but the work with which it is combined will remain governed by version
+3 of the GNU General Public License.
+
+  14. Revised Versions of this License.
+
+  The Free Software Foundation may publish revised and/or new versions of
+the GNU Affero General Public License from time to time.  Such new versions
+will be similar in spirit to the present version, but may differ in detail to
+address new problems or concerns.
+
+  Each version is given a distinguishing version number.  If the
+Program specifies that a certain numbered version of the GNU Affero General
+Public License "or any later version" applies to it, you have the
+option of following the terms and conditions either of that numbered
+version or of any later version published by the Free Software
+Foundation.  If the Program does not specify a version number of the
+GNU Affero General Public License, you may choose any version ever published
+by the Free Software Foundation.
+
+  If the Program specifies that a proxy can decide which future
+versions of the GNU Affero General Public License can be used, that proxy's
+public statement of acceptance of a version permanently authorizes you
+to choose that version for the Program.
+
+  Later license versions may give you additional or different
+permissions.  However, no additional obligations are imposed on any
+author or copyright holder as a result of your choosing to follow a
+later version.
+
+  15. Disclaimer of Warranty.
+
+  THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
+APPLICABLE LAW.  EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
+HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY
+OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
+THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+PURPOSE.  THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
+IS WITH YOU.  SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
+ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
+
+  16. Limitation of Liability.
+
+  IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
+WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
+THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
+GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
+USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
+DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
+PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
+EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
+SUCH DAMAGES.
+
+  17. Interpretation of Sections 15 and 16.
+
+  If the disclaimer of warranty and limitation of liability provided
+above cannot be given local legal effect according to their terms,
+reviewing courts shall apply local law that most closely approximates
+an absolute waiver of all civil liability in connection with the
+Program, unless a warranty or assumption of liability accompanies a
+copy of the Program in return for a fee.
+
+                     END OF TERMS AND CONDITIONS
+
+            How to Apply These Terms to Your New Programs
+
+  If you develop a new program, and you want it to be of the greatest
+possible use to the public, the best way to achieve this is to make it
+free software which everyone can redistribute and change under these terms.
+
+  To do so, attach the following notices to the program.  It is safest
+to attach them to the start of each source file to most effectively
+state the exclusion of warranty; and each file should have at least
+the "copyright" line and a pointer to where the full notice is found.
+
+    
+    Copyright (C)   
+
+    This program is free software: you can redistribute it and/or modify
+    it under the terms of the GNU Affero General Public License as published
+    by the Free Software Foundation, either version 3 of the License, or
+    (at your option) any later version.
+
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU Affero General Public License for more details.
+
+    You should have received a copy of the GNU Affero General Public License
+    along with this program.  If not, see .
+
+Also add information on how to contact you by electronic and paper mail.
+
+  If your software can interact with users remotely through a computer
+network, you should also make sure that it provides a way for users to
+get its source.  For example, if your program is a web application, its
+interface could display a "Source" link that leads users to an archive
+of the code.  There are many ways you could offer source, and different
+solutions will be better for different programs; see section 13 for the
+specific requirements.
+
+  You should also get your employer (if you work as a programmer) or school,
+if any, to sign a "copyright disclaimer" for the program, if necessary.
+For more information on this, and how to apply and follow the GNU AGPL, see
+.
diff --git a/packages/hs2js/README.md b/packages/hs2js/README.md
new file mode 100644
index 00000000..24d9c774
--- /dev/null
+++ b/packages/hs2js/README.md
@@ -0,0 +1,127 @@
+# hs2js
+
+Experimental haskell in javascript interpreter. Many haskell features are not implemented.
+This projects mainly exists to be able to write and interpret [Tidal Cycles](https://tidalcycles.org/) code in the browser,
+as part of [Strudel](https://github.com/tidalcycles/strudel). This project could only exist thanks to [tree-sitter-haskell](https://github.com/tree-sitter/tree-sitter-haskell).
+
+## Installation
+
+### Via Script Tag
+
+You can load the library directly from a script tag via unpkg:
+
+```html
+
+
+
+```
+
+### Via npm
+
+You need to add `postinstall` to your `package.json` script to copy the parser to your `public` folder:
+
+```json
+{
+  "scripts": {
+    "postinstall": "cp node_modules/hs2js/dist/tree-sitter.wasm public && cp node_modules/hs2js/dist/tree-sitter-haskell.wasm public"
+  }
+}
+```
+
+Depending on your setup, replace `public` with the folder that will serve your assets to `/`. Then install the package:
+
+```sh
+npm i hs2js
+```
+
+and use it:
+
+```js
+import * as hs2js from 'hs2js';
+hs2js.loadParser();
+document.getElementById('hello').addEventListener('click', () => {
+  hs2js.evaluate('alert "hello from haskell!"');
+});
+```
+
+## API
+
+These are all functions exported by the package:
+
+### evaluate
+
+Evaluates a piece of haskell code
+
+- `code`: [valid](https://github.com/tree-sitter/tree-sitter-haskell?tab=readme-ov-file#supported-language-extensions) haskell code
+- `scope`: global scope, defaults to globalThis. Allows you to pass an object of your own functions / variables from JS to Haskell.
+- `ops`: mapping for custom infix operator
+
+Example:
+
+```js
+// simple
+hs2js.evaluate(`2 + 2`) // = 4
+// passing variables via scope:
+hs2js.evaluate(`a + b`, { a: 1, b: 2 }) // = 3
+// custom operator
+hs2js.evaluate(`2 |* 3`, {}, { '|*': (l, r) => l * r }) // = 6
+```
+
+### parse
+
+[Parses](https://github.com/tree-sitter/tree-sitter-haskell) a piece of haskell code, returning its AST representation.
+
+Example:
+
+```js
+const ast = hs2js.parse(`2 + 2`)
+console.log(ast.toString())
+// (haskell declarations: (declarations (top_splice (apply function: (variable) argument: (literal (integer))))))
+```
+
+### run
+
+Evaluates `rootNode` of haskell AST (used by evaluate internally).
+
+- `rootNode`: haskell AST root node, as returned by `parse`
+- `scope`: see evaluate
+- `ops`: see evaluate
+
+Example:
+
+```js
+const ast = hs2js.parse(`2 + 3`);
+const res = hs2js.run(ast.rootNode);
+console.log(res); // = 5
+```
+
+### loadParser
+
+Loads and caches the parser by fetching `tree-sitter.wasm` and `tree-sitter-haskell.wasm`.
+Make sure to call and await this function before calling `parse` or `evaluate`.
+
+```js
+hs2js.loadParser().then(() => hs2js.evaluate('alert "ready"'))
+```
+
+### setBase
+
+Sets the base path where the WASM files are expected by `loadParser`. Defaults to `/`.
+Expects `tree-sitter.wasm` and `tree-sitter-haskell.wasm` to be present.
+Can either be a relative path or a URL.
+
+```js
+hs2js.setBase('https://unpkg.com/hs2js@0.0.4/dist/');
+hs2js.loadParser(); 
+/* loads 
+- https://unpkg.com/hs2js@0.0.4/dist/tree-sitter.wasm
+- https://unpkg.com/hs2js@0.0.4/dist/tree-sitter-haskell.wasm
+*/
+```
diff --git a/packages/hs2js/package.json b/packages/hs2js/package.json
new file mode 100644
index 00000000..09bf1e05
--- /dev/null
+++ b/packages/hs2js/package.json
@@ -0,0 +1,37 @@
+{
+  "name": "hs2js",
+  "version": "0.1.0",
+  "description": "Experimental Haskell in JavaScript interpreter",
+  "main": "src/index.mjs",
+  "type": "module",
+  "publishConfig": {
+    "main": "dist/index.js",
+    "module": "dist/index.mjs"
+  },
+  "scripts": {
+    "build-wasm": "tree-sitter build-wasm node_modules/tree-sitter-haskell && mv tree-sitter-haskell.wasm ./dist/ && cp node_modules/web-tree-sitter/tree-sitter.wasm ./dist/",
+    "build": "vite build && npm run build-wasm",
+    "prepublishOnly": "npm run build"
+  },
+  "repository": {
+    "type": "git",
+    "url": "git+https://github.com/tidalcycles/strudel.git"
+  },
+  "keywords": [
+    "haskell",
+    "javascript"
+  ],
+  "author": "Felix Roos ",
+  "license": "AGPL-3.0-or-later",
+  "bugs": {
+    "url": "https://github.com/tidalcycles/strudel/issues"
+  },
+  "homepage": "https://github.com/tidalcycles/strudel",
+  "dependencies": {
+    "web-tree-sitter": "^0.20.8"
+  },
+  "devDependencies": {
+    "tree-sitter-haskell": "^0.21.0",
+    "vite": "^5.0.10"
+  }
+}
diff --git a/packages/hs2js/pnpm-lock.yaml b/packages/hs2js/pnpm-lock.yaml
new file mode 100644
index 00000000..9043fd41
--- /dev/null
+++ b/packages/hs2js/pnpm-lock.yaml
@@ -0,0 +1,520 @@
+lockfileVersion: '6.0'
+
+settings:
+  autoInstallPeers: true
+  excludeLinksFromLockfile: false
+
+dependencies:
+  web-tree-sitter:
+    specifier: ^0.20.8
+    version: 0.20.8
+
+devDependencies:
+  tree-sitter-haskell:
+    specifier: ^0.21.0
+    version: 0.21.0(tree-sitter@0.21.1)
+  vite:
+    specifier: ^5.0.10
+    version: 5.2.11
+
+packages:
+
+  /@esbuild/aix-ppc64@0.20.2:
+    resolution: {integrity: sha512-D+EBOJHXdNZcLJRBkhENNG8Wji2kgc9AZ9KiPr1JuZjsNtyHzrsfLRrY0tk2H2aoFu6RANO1y1iPPUCDYWkb5g==}
+    engines: {node: '>=12'}
+    cpu: [ppc64]
+    os: [aix]
+    requiresBuild: true
+    dev: true
+    optional: true
+
+  /@esbuild/android-arm64@0.20.2:
+    resolution: {integrity: sha512-mRzjLacRtl/tWU0SvD8lUEwb61yP9cqQo6noDZP/O8VkwafSYwZ4yWy24kan8jE/IMERpYncRt2dw438LP3Xmg==}
+    engines: {node: '>=12'}
+    cpu: [arm64]
+    os: [android]
+    requiresBuild: true
+    dev: true
+    optional: true
+
+  /@esbuild/android-arm@0.20.2:
+    resolution: {integrity: sha512-t98Ra6pw2VaDhqNWO2Oph2LXbz/EJcnLmKLGBJwEwXX/JAN83Fym1rU8l0JUWK6HkIbWONCSSatf4sf2NBRx/w==}
+    engines: {node: '>=12'}
+    cpu: [arm]
+    os: [android]
+    requiresBuild: true
+    dev: true
+    optional: true
+
+  /@esbuild/android-x64@0.20.2:
+    resolution: {integrity: sha512-btzExgV+/lMGDDa194CcUQm53ncxzeBrWJcncOBxuC6ndBkKxnHdFJn86mCIgTELsooUmwUm9FkhSp5HYu00Rg==}
+    engines: {node: '>=12'}
+    cpu: [x64]
+    os: [android]
+    requiresBuild: true
+    dev: true
+    optional: true
+
+  /@esbuild/darwin-arm64@0.20.2:
+    resolution: {integrity: sha512-4J6IRT+10J3aJH3l1yzEg9y3wkTDgDk7TSDFX+wKFiWjqWp/iCfLIYzGyasx9l0SAFPT1HwSCR+0w/h1ES/MjA==}
+    engines: {node: '>=12'}
+    cpu: [arm64]
+    os: [darwin]
+    requiresBuild: true
+    dev: true
+    optional: true
+
+  /@esbuild/darwin-x64@0.20.2:
+    resolution: {integrity: sha512-tBcXp9KNphnNH0dfhv8KYkZhjc+H3XBkF5DKtswJblV7KlT9EI2+jeA8DgBjp908WEuYll6pF+UStUCfEpdysA==}
+    engines: {node: '>=12'}
+    cpu: [x64]
+    os: [darwin]
+    requiresBuild: true
+    dev: true
+    optional: true
+
+  /@esbuild/freebsd-arm64@0.20.2:
+    resolution: {integrity: sha512-d3qI41G4SuLiCGCFGUrKsSeTXyWG6yem1KcGZVS+3FYlYhtNoNgYrWcvkOoaqMhwXSMrZRl69ArHsGJ9mYdbbw==}
+    engines: {node: '>=12'}
+    cpu: [arm64]
+    os: [freebsd]
+    requiresBuild: true
+    dev: true
+    optional: true
+
+  /@esbuild/freebsd-x64@0.20.2:
+    resolution: {integrity: sha512-d+DipyvHRuqEeM5zDivKV1KuXn9WeRX6vqSqIDgwIfPQtwMP4jaDsQsDncjTDDsExT4lR/91OLjRo8bmC1e+Cw==}
+    engines: {node: '>=12'}
+    cpu: [x64]
+    os: [freebsd]
+    requiresBuild: true
+    dev: true
+    optional: true
+
+  /@esbuild/linux-arm64@0.20.2:
+    resolution: {integrity: sha512-9pb6rBjGvTFNira2FLIWqDk/uaf42sSyLE8j1rnUpuzsODBq7FvpwHYZxQ/It/8b+QOS1RYfqgGFNLRI+qlq2A==}
+    engines: {node: '>=12'}
+    cpu: [arm64]
+    os: [linux]
+    requiresBuild: true
+    dev: true
+    optional: true
+
+  /@esbuild/linux-arm@0.20.2:
+    resolution: {integrity: sha512-VhLPeR8HTMPccbuWWcEUD1Az68TqaTYyj6nfE4QByZIQEQVWBB8vup8PpR7y1QHL3CpcF6xd5WVBU/+SBEvGTg==}
+    engines: {node: '>=12'}
+    cpu: [arm]
+    os: [linux]
+    requiresBuild: true
+    dev: true
+    optional: true
+
+  /@esbuild/linux-ia32@0.20.2:
+    resolution: {integrity: sha512-o10utieEkNPFDZFQm9CoP7Tvb33UutoJqg3qKf1PWVeeJhJw0Q347PxMvBgVVFgouYLGIhFYG0UGdBumROyiig==}
+    engines: {node: '>=12'}
+    cpu: [ia32]
+    os: [linux]
+    requiresBuild: true
+    dev: true
+    optional: true
+
+  /@esbuild/linux-loong64@0.20.2:
+    resolution: {integrity: sha512-PR7sp6R/UC4CFVomVINKJ80pMFlfDfMQMYynX7t1tNTeivQ6XdX5r2XovMmha/VjR1YN/HgHWsVcTRIMkymrgQ==}
+    engines: {node: '>=12'}
+    cpu: [loong64]
+    os: [linux]
+    requiresBuild: true
+    dev: true
+    optional: true
+
+  /@esbuild/linux-mips64el@0.20.2:
+    resolution: {integrity: sha512-4BlTqeutE/KnOiTG5Y6Sb/Hw6hsBOZapOVF6njAESHInhlQAghVVZL1ZpIctBOoTFbQyGW+LsVYZ8lSSB3wkjA==}
+    engines: {node: '>=12'}
+    cpu: [mips64el]
+    os: [linux]
+    requiresBuild: true
+    dev: true
+    optional: true
+
+  /@esbuild/linux-ppc64@0.20.2:
+    resolution: {integrity: sha512-rD3KsaDprDcfajSKdn25ooz5J5/fWBylaaXkuotBDGnMnDP1Uv5DLAN/45qfnf3JDYyJv/ytGHQaziHUdyzaAg==}
+    engines: {node: '>=12'}
+    cpu: [ppc64]
+    os: [linux]
+    requiresBuild: true
+    dev: true
+    optional: true
+
+  /@esbuild/linux-riscv64@0.20.2:
+    resolution: {integrity: sha512-snwmBKacKmwTMmhLlz/3aH1Q9T8v45bKYGE3j26TsaOVtjIag4wLfWSiZykXzXuE1kbCE+zJRmwp+ZbIHinnVg==}
+    engines: {node: '>=12'}
+    cpu: [riscv64]
+    os: [linux]
+    requiresBuild: true
+    dev: true
+    optional: true
+
+  /@esbuild/linux-s390x@0.20.2:
+    resolution: {integrity: sha512-wcWISOobRWNm3cezm5HOZcYz1sKoHLd8VL1dl309DiixxVFoFe/o8HnwuIwn6sXre88Nwj+VwZUvJf4AFxkyrQ==}
+    engines: {node: '>=12'}
+    cpu: [s390x]
+    os: [linux]
+    requiresBuild: true
+    dev: true
+    optional: true
+
+  /@esbuild/linux-x64@0.20.2:
+    resolution: {integrity: sha512-1MdwI6OOTsfQfek8sLwgyjOXAu+wKhLEoaOLTjbijk6E2WONYpH9ZU2mNtR+lZ2B4uwr+usqGuVfFT9tMtGvGw==}
+    engines: {node: '>=12'}
+    cpu: [x64]
+    os: [linux]
+    requiresBuild: true
+    dev: true
+    optional: true
+
+  /@esbuild/netbsd-x64@0.20.2:
+    resolution: {integrity: sha512-K8/DhBxcVQkzYc43yJXDSyjlFeHQJBiowJ0uVL6Tor3jGQfSGHNNJcWxNbOI8v5k82prYqzPuwkzHt3J1T1iZQ==}
+    engines: {node: '>=12'}
+    cpu: [x64]
+    os: [netbsd]
+    requiresBuild: true
+    dev: true
+    optional: true
+
+  /@esbuild/openbsd-x64@0.20.2:
+    resolution: {integrity: sha512-eMpKlV0SThJmmJgiVyN9jTPJ2VBPquf6Kt/nAoo6DgHAoN57K15ZghiHaMvqjCye/uU4X5u3YSMgVBI1h3vKrQ==}
+    engines: {node: '>=12'}
+    cpu: [x64]
+    os: [openbsd]
+    requiresBuild: true
+    dev: true
+    optional: true
+
+  /@esbuild/sunos-x64@0.20.2:
+    resolution: {integrity: sha512-2UyFtRC6cXLyejf/YEld4Hajo7UHILetzE1vsRcGL3earZEW77JxrFjH4Ez2qaTiEfMgAXxfAZCm1fvM/G/o8w==}
+    engines: {node: '>=12'}
+    cpu: [x64]
+    os: [sunos]
+    requiresBuild: true
+    dev: true
+    optional: true
+
+  /@esbuild/win32-arm64@0.20.2:
+    resolution: {integrity: sha512-GRibxoawM9ZCnDxnP3usoUDO9vUkpAxIIZ6GQI+IlVmr5kP3zUq+l17xELTHMWTWzjxa2guPNyrpq1GWmPvcGQ==}
+    engines: {node: '>=12'}
+    cpu: [arm64]
+    os: [win32]
+    requiresBuild: true
+    dev: true
+    optional: true
+
+  /@esbuild/win32-ia32@0.20.2:
+    resolution: {integrity: sha512-HfLOfn9YWmkSKRQqovpnITazdtquEW8/SoHW7pWpuEeguaZI4QnCRW6b+oZTztdBnZOS2hqJ6im/D5cPzBTTlQ==}
+    engines: {node: '>=12'}
+    cpu: [ia32]
+    os: [win32]
+    requiresBuild: true
+    dev: true
+    optional: true
+
+  /@esbuild/win32-x64@0.20.2:
+    resolution: {integrity: sha512-N49X4lJX27+l9jbLKSqZ6bKNjzQvHaT8IIFUy+YIqmXQdjYCToGWwOItDrfby14c78aDd5NHQl29xingXfCdLQ==}
+    engines: {node: '>=12'}
+    cpu: [x64]
+    os: [win32]
+    requiresBuild: true
+    dev: true
+    optional: true
+
+  /@rollup/rollup-android-arm-eabi@4.17.2:
+    resolution: {integrity: sha512-NM0jFxY8bB8QLkoKxIQeObCaDlJKewVlIEkuyYKm5An1tdVZ966w2+MPQ2l8LBZLjR+SgyV+nRkTIunzOYBMLQ==}
+    cpu: [arm]
+    os: [android]
+    requiresBuild: true
+    dev: true
+    optional: true
+
+  /@rollup/rollup-android-arm64@4.17.2:
+    resolution: {integrity: sha512-yeX/Usk7daNIVwkq2uGoq2BYJKZY1JfyLTaHO/jaiSwi/lsf8fTFoQW/n6IdAsx5tx+iotu2zCJwz8MxI6D/Bw==}
+    cpu: [arm64]
+    os: [android]
+    requiresBuild: true
+    dev: true
+    optional: true
+
+  /@rollup/rollup-darwin-arm64@4.17.2:
+    resolution: {integrity: sha512-kcMLpE6uCwls023+kknm71ug7MZOrtXo+y5p/tsg6jltpDtgQY1Eq5sGfHcQfb+lfuKwhBmEURDga9N0ol4YPw==}
+    cpu: [arm64]
+    os: [darwin]
+    requiresBuild: true
+    dev: true
+    optional: true
+
+  /@rollup/rollup-darwin-x64@4.17.2:
+    resolution: {integrity: sha512-AtKwD0VEx0zWkL0ZjixEkp5tbNLzX+FCqGG1SvOu993HnSz4qDI6S4kGzubrEJAljpVkhRSlg5bzpV//E6ysTQ==}
+    cpu: [x64]
+    os: [darwin]
+    requiresBuild: true
+    dev: true
+    optional: true
+
+  /@rollup/rollup-linux-arm-gnueabihf@4.17.2:
+    resolution: {integrity: sha512-3reX2fUHqN7sffBNqmEyMQVj/CKhIHZd4y631duy0hZqI8Qoqf6lTtmAKvJFYa6bhU95B1D0WgzHkmTg33In0A==}
+    cpu: [arm]
+    os: [linux]
+    requiresBuild: true
+    dev: true
+    optional: true
+
+  /@rollup/rollup-linux-arm-musleabihf@4.17.2:
+    resolution: {integrity: sha512-uSqpsp91mheRgw96xtyAGP9FW5ChctTFEoXP0r5FAzj/3ZRv3Uxjtc7taRQSaQM/q85KEKjKsZuiZM3GyUivRg==}
+    cpu: [arm]
+    os: [linux]
+    requiresBuild: true
+    dev: true
+    optional: true
+
+  /@rollup/rollup-linux-arm64-gnu@4.17.2:
+    resolution: {integrity: sha512-EMMPHkiCRtE8Wdk3Qhtciq6BndLtstqZIroHiiGzB3C5LDJmIZcSzVtLRbwuXuUft1Cnv+9fxuDtDxz3k3EW2A==}
+    cpu: [arm64]
+    os: [linux]
+    requiresBuild: true
+    dev: true
+    optional: true
+
+  /@rollup/rollup-linux-arm64-musl@4.17.2:
+    resolution: {integrity: sha512-NMPylUUZ1i0z/xJUIx6VUhISZDRT+uTWpBcjdv0/zkp7b/bQDF+NfnfdzuTiB1G6HTodgoFa93hp0O1xl+/UbA==}
+    cpu: [arm64]
+    os: [linux]
+    requiresBuild: true
+    dev: true
+    optional: true
+
+  /@rollup/rollup-linux-powerpc64le-gnu@4.17.2:
+    resolution: {integrity: sha512-T19My13y8uYXPw/L/k0JYaX1fJKFT/PWdXiHr8mTbXWxjVF1t+8Xl31DgBBvEKclw+1b00Chg0hxE2O7bTG7GQ==}
+    cpu: [ppc64]
+    os: [linux]
+    requiresBuild: true
+    dev: true
+    optional: true
+
+  /@rollup/rollup-linux-riscv64-gnu@4.17.2:
+    resolution: {integrity: sha512-BOaNfthf3X3fOWAB+IJ9kxTgPmMqPPH5f5k2DcCsRrBIbWnaJCgX2ll77dV1TdSy9SaXTR5iDXRL8n7AnoP5cg==}
+    cpu: [riscv64]
+    os: [linux]
+    requiresBuild: true
+    dev: true
+    optional: true
+
+  /@rollup/rollup-linux-s390x-gnu@4.17.2:
+    resolution: {integrity: sha512-W0UP/x7bnn3xN2eYMql2T/+wpASLE5SjObXILTMPUBDB/Fg/FxC+gX4nvCfPBCbNhz51C+HcqQp2qQ4u25ok6g==}
+    cpu: [s390x]
+    os: [linux]
+    requiresBuild: true
+    dev: true
+    optional: true
+
+  /@rollup/rollup-linux-x64-gnu@4.17.2:
+    resolution: {integrity: sha512-Hy7pLwByUOuyaFC6mAr7m+oMC+V7qyifzs/nW2OJfC8H4hbCzOX07Ov0VFk/zP3kBsELWNFi7rJtgbKYsav9QQ==}
+    cpu: [x64]
+    os: [linux]
+    requiresBuild: true
+    dev: true
+    optional: true
+
+  /@rollup/rollup-linux-x64-musl@4.17.2:
+    resolution: {integrity: sha512-h1+yTWeYbRdAyJ/jMiVw0l6fOOm/0D1vNLui9iPuqgRGnXA0u21gAqOyB5iHjlM9MMfNOm9RHCQ7zLIzT0x11Q==}
+    cpu: [x64]
+    os: [linux]
+    requiresBuild: true
+    dev: true
+    optional: true
+
+  /@rollup/rollup-win32-arm64-msvc@4.17.2:
+    resolution: {integrity: sha512-tmdtXMfKAjy5+IQsVtDiCfqbynAQE/TQRpWdVataHmhMb9DCoJxp9vLcCBjEQWMiUYxO1QprH/HbY9ragCEFLA==}
+    cpu: [arm64]
+    os: [win32]
+    requiresBuild: true
+    dev: true
+    optional: true
+
+  /@rollup/rollup-win32-ia32-msvc@4.17.2:
+    resolution: {integrity: sha512-7II/QCSTAHuE5vdZaQEwJq2ZACkBpQDOmQsE6D6XUbnBHW8IAhm4eTufL6msLJorzrHDFv3CF8oCA/hSIRuZeQ==}
+    cpu: [ia32]
+    os: [win32]
+    requiresBuild: true
+    dev: true
+    optional: true
+
+  /@rollup/rollup-win32-x64-msvc@4.17.2:
+    resolution: {integrity: sha512-TGGO7v7qOq4CYmSBVEYpI1Y5xDuCEnbVC5Vth8mOsW0gDSzxNrVERPc790IGHsrT2dQSimgMr9Ub3Y1Jci5/8w==}
+    cpu: [x64]
+    os: [win32]
+    requiresBuild: true
+    dev: true
+    optional: true
+
+  /@types/estree@1.0.5:
+    resolution: {integrity: sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==}
+    dev: true
+
+  /esbuild@0.20.2:
+    resolution: {integrity: sha512-WdOOppmUNU+IbZ0PaDiTst80zjnrOkyJNHoKupIcVyU8Lvla3Ugx94VzkQ32Ijqd7UhHJy75gNWDMUekcrSJ6g==}
+    engines: {node: '>=12'}
+    hasBin: true
+    requiresBuild: true
+    optionalDependencies:
+      '@esbuild/aix-ppc64': 0.20.2
+      '@esbuild/android-arm': 0.20.2
+      '@esbuild/android-arm64': 0.20.2
+      '@esbuild/android-x64': 0.20.2
+      '@esbuild/darwin-arm64': 0.20.2
+      '@esbuild/darwin-x64': 0.20.2
+      '@esbuild/freebsd-arm64': 0.20.2
+      '@esbuild/freebsd-x64': 0.20.2
+      '@esbuild/linux-arm': 0.20.2
+      '@esbuild/linux-arm64': 0.20.2
+      '@esbuild/linux-ia32': 0.20.2
+      '@esbuild/linux-loong64': 0.20.2
+      '@esbuild/linux-mips64el': 0.20.2
+      '@esbuild/linux-ppc64': 0.20.2
+      '@esbuild/linux-riscv64': 0.20.2
+      '@esbuild/linux-s390x': 0.20.2
+      '@esbuild/linux-x64': 0.20.2
+      '@esbuild/netbsd-x64': 0.20.2
+      '@esbuild/openbsd-x64': 0.20.2
+      '@esbuild/sunos-x64': 0.20.2
+      '@esbuild/win32-arm64': 0.20.2
+      '@esbuild/win32-ia32': 0.20.2
+      '@esbuild/win32-x64': 0.20.2
+    dev: true
+
+  /fsevents@2.3.3:
+    resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==}
+    engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0}
+    os: [darwin]
+    requiresBuild: true
+    dev: true
+    optional: true
+
+  /nanoid@3.3.7:
+    resolution: {integrity: sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==}
+    engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1}
+    hasBin: true
+    dev: true
+
+  /node-addon-api@8.0.0:
+    resolution: {integrity: sha512-ipO7rsHEBqa9STO5C5T10fj732ml+5kLN1cAG8/jdHd56ldQeGj3Q7+scUS+VHK/qy1zLEwC4wMK5+yM0btPvw==}
+    engines: {node: ^18 || ^20 || >= 21}
+    dev: true
+
+  /node-gyp-build@4.8.1:
+    resolution: {integrity: sha512-OSs33Z9yWr148JZcbZd5WiAXhh/n9z8TxQcdMhIOlpN9AhWpLfvVFO73+m77bBABQMaY9XSvIa+qk0jlI7Gcaw==}
+    hasBin: true
+    dev: true
+
+  /picocolors@1.0.1:
+    resolution: {integrity: sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew==}
+    dev: true
+
+  /postcss@8.4.38:
+    resolution: {integrity: sha512-Wglpdk03BSfXkHoQa3b/oulrotAkwrlLDRSOb9D0bN86FdRyE9lppSp33aHNPgBa0JKCoB+drFLZkQoRRYae5A==}
+    engines: {node: ^10 || ^12 || >=14}
+    dependencies:
+      nanoid: 3.3.7
+      picocolors: 1.0.1
+      source-map-js: 1.2.0
+    dev: true
+
+  /rollup@4.17.2:
+    resolution: {integrity: sha512-/9ClTJPByC0U4zNLowV1tMBe8yMEAxewtR3cUNX5BoEpGH3dQEWpJLr6CLp0fPdYRF/fzVOgvDb1zXuakwF5kQ==}
+    engines: {node: '>=18.0.0', npm: '>=8.0.0'}
+    hasBin: true
+    dependencies:
+      '@types/estree': 1.0.5
+    optionalDependencies:
+      '@rollup/rollup-android-arm-eabi': 4.17.2
+      '@rollup/rollup-android-arm64': 4.17.2
+      '@rollup/rollup-darwin-arm64': 4.17.2
+      '@rollup/rollup-darwin-x64': 4.17.2
+      '@rollup/rollup-linux-arm-gnueabihf': 4.17.2
+      '@rollup/rollup-linux-arm-musleabihf': 4.17.2
+      '@rollup/rollup-linux-arm64-gnu': 4.17.2
+      '@rollup/rollup-linux-arm64-musl': 4.17.2
+      '@rollup/rollup-linux-powerpc64le-gnu': 4.17.2
+      '@rollup/rollup-linux-riscv64-gnu': 4.17.2
+      '@rollup/rollup-linux-s390x-gnu': 4.17.2
+      '@rollup/rollup-linux-x64-gnu': 4.17.2
+      '@rollup/rollup-linux-x64-musl': 4.17.2
+      '@rollup/rollup-win32-arm64-msvc': 4.17.2
+      '@rollup/rollup-win32-ia32-msvc': 4.17.2
+      '@rollup/rollup-win32-x64-msvc': 4.17.2
+      fsevents: 2.3.3
+    dev: true
+
+  /source-map-js@1.2.0:
+    resolution: {integrity: sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==}
+    engines: {node: '>=0.10.0'}
+    dev: true
+
+  /tree-sitter-haskell@0.21.0(tree-sitter@0.21.1):
+    resolution: {integrity: sha512-b2RLegPHuYPh7nJ3YKWgkWnFYxmYlQDE8TDJuNH+iuNuBcCMYyaA9JlJlMHfCvf7DmJNPtqqbO9Kh9NXEmbatQ==}
+    requiresBuild: true
+    peerDependencies:
+      tree-sitter: ^0.21.0
+      tree_sitter: '*'
+    peerDependenciesMeta:
+      tree_sitter:
+        optional: true
+    dependencies:
+      node-addon-api: 8.0.0
+      node-gyp-build: 4.8.1
+      tree-sitter: 0.21.1
+    dev: true
+
+  /tree-sitter@0.21.1:
+    resolution: {integrity: sha512-7dxoA6kYvtgWw80265MyqJlkRl4yawIjO7S5MigytjELkX43fV2WsAXzsNfO7sBpPPCF5Gp0+XzHk0DwLCq3xQ==}
+    requiresBuild: true
+    dependencies:
+      node-addon-api: 8.0.0
+      node-gyp-build: 4.8.1
+    dev: true
+
+  /vite@5.2.11:
+    resolution: {integrity: sha512-HndV31LWW05i1BLPMUCE1B9E9GFbOu1MbenhS58FuK6owSO5qHm7GiCotrNY1YE5rMeQSFBGmT5ZaLEjFizgiQ==}
+    engines: {node: ^18.0.0 || >=20.0.0}
+    hasBin: true
+    peerDependencies:
+      '@types/node': ^18.0.0 || >=20.0.0
+      less: '*'
+      lightningcss: ^1.21.0
+      sass: '*'
+      stylus: '*'
+      sugarss: '*'
+      terser: ^5.4.0
+    peerDependenciesMeta:
+      '@types/node':
+        optional: true
+      less:
+        optional: true
+      lightningcss:
+        optional: true
+      sass:
+        optional: true
+      stylus:
+        optional: true
+      sugarss:
+        optional: true
+      terser:
+        optional: true
+    dependencies:
+      esbuild: 0.20.2
+      postcss: 8.4.38
+      rollup: 4.17.2
+    optionalDependencies:
+      fsevents: 2.3.3
+    dev: true
+
+  /web-tree-sitter@0.20.8:
+    resolution: {integrity: sha512-weOVgZ3aAARgdnb220GqYuh7+rZU0Ka9k9yfKtGAzEYMa6GgiCzW9JjQRJyCJakvibQW+dfjJdihjInKuuCAUQ==}
+    dev: false
diff --git a/packages/hs2js/src/hs2js.mjs b/packages/hs2js/src/hs2js.mjs
new file mode 100644
index 00000000..227a42b2
--- /dev/null
+++ b/packages/hs2js/src/hs2js.mjs
@@ -0,0 +1,136 @@
+import { parse } from './parser.mjs';
+
+function runApply(node, scope, ops) {
+  if (node.children.length !== 2)
+    throw new Error(`expected 2 children for node type apply, got ${node.children.length}`);
+  const [fn, arg] = node.children.map((child) => run(child, scope, ops));
+  if (typeof fn !== 'function') {
+    throw new Error(`${node.children[0].text} is not a function`);
+  }
+  // only works if fn is curried!
+  return fn(arg);
+}
+
+function runInfix(left, symbol, right, ops) {
+  const customOp = ops[symbol];
+  if (customOp) {
+    return customOp(left, right);
+  }
+  switch (symbol) {
+    case '+':
+      return left + right;
+    case '-':
+      return left - right;
+    case '*':
+      return left * right;
+    case '/':
+      return left / right;
+    case '$':
+      return left(right);
+    case '&':
+      console.log('right', right);
+      return right(left);
+    case '.':
+      return (x) => left(right(x));
+    default:
+      throw new Error('unexpected infix operator ' + symbol);
+  }
+}
+
+function curry(patterns, body, scope, ops) {
+  const [variable, ...rest] = patterns;
+  return (arg) => {
+    let _scope = { ...scope, [variable.text]: arg };
+    if (patterns.length === 1) {
+      const result = run(body, _scope, ops);
+      return result;
+    }
+    return curry(rest, body, _scope, ops);
+  };
+}
+
+export function run(node, scope, ops = {}) {
+  let runInScope = (node, scp = scope) => run(node, scp, ops);
+  //console.log("node", node.type, node.text);
+  if (ops[node.type]) {
+    return ops[node.type](node);
+  }
+  switch (node.type) {
+    case 'ERROR':
+      throw new Error(`invalid syntax: "${node.text}"`);
+    case 'declarations':
+      let result;
+      node.children.forEach((declaration) => {
+        result = runInScope(declaration);
+      });
+      return result;
+    case 'integer':
+      return Number(node.text);
+    case 'float':
+      return Number(node.text);
+    case 'string':
+      const str = node.text.slice(1, -1);
+      return String(str);
+    case 'lambda':
+      const [_, lpatterns, __, lbody] = node.children;
+      return curry(lpatterns.children, lbody, scope, ops);
+    case 'function':
+      const [fvariable, fpatterns, fbody] = node.children;
+      scope[fvariable.text] = curry(fpatterns.children, fbody, scope, ops);
+      return scope[fvariable.text];
+    case 'list': {
+      return node.children
+        .filter((_, i) => i % 2 === 1) // elements are at odd indices
+        .map((node) => runInScope(node));
+    }
+    case 'match':
+      if (node.children[0].text !== '=' || node.children.length !== 2) {
+        throw new Error('match node so far only support simple assignments');
+      }
+      return runInScope(node.children[1]);
+    case 'bind':
+      if (node.children.length !== 2) throw new Error('expected 2 children for node type bind');
+      if (node.children[0].type !== 'variable') throw new Error('expected variable as first child of bind node');
+      if (node.children[1].type !== 'match') throw new Error('expected match as first child of bind node');
+      const [bvariable, bmatch] = node.children;
+      const value = runInScope(bmatch);
+      scope[bvariable.text] = value;
+      return value;
+    case 'variable':
+      return scope[node.text];
+    case 'infix': {
+      const [a, op, b] = node.children;
+      const symbol = op.text;
+      const [left, right] = [runInScope(a), runInScope(b)];
+      return runInfix(left, symbol, right, ops);
+    }
+    case 'apply':
+      return runApply(node, scope, ops);
+    case 'left_section': {
+      const [_, b, op] = node.children;
+      const right = runInScope(b);
+      return (left) => runInfix(left, op.text, right, ops);
+    }
+    case 'right_section': {
+      const [_, op, b] = node.children;
+      const right = runInScope(b);
+      return (left) => runInfix(left, op.text, right, ops);
+    }
+    case 'parens':
+      if (node.children.length !== 3) throw new Error('expected 3 children for node type parens');
+      return runInScope(node.children[1]);
+    default:
+      if (node.children.length === 0) {
+        throw new Error('unhandled leaf type ' + node.type);
+      }
+      if (node.children.length > 1) {
+        throw new Error('unhandled branch type ' + node.type);
+      }
+      return runInScope(node.children[0]);
+  }
+}
+
+export function evaluate(haskellCode, scope = globalThis, ops) {
+  const ast = parse(haskellCode);
+  return run(ast.rootNode, scope, ops);
+}
diff --git a/packages/hs2js/src/index.mjs b/packages/hs2js/src/index.mjs
new file mode 100644
index 00000000..c3aab230
--- /dev/null
+++ b/packages/hs2js/src/index.mjs
@@ -0,0 +1,2 @@
+export * from './hs2js.mjs';
+export * from './parser.mjs';
diff --git a/packages/hs2js/src/parser.mjs b/packages/hs2js/src/parser.mjs
new file mode 100644
index 00000000..a5b010b4
--- /dev/null
+++ b/packages/hs2js/src/parser.mjs
@@ -0,0 +1,37 @@
+import Parser from 'web-tree-sitter';
+
+let base = '/';
+export function setBase(path) {
+  base = path;
+}
+
+let isReady = false,
+  parser;
+async function _loadParser() {
+  await Parser.init({
+    locateFile(scriptName, scriptDirectory) {
+      return `${base}${scriptName}`;
+    },
+  });
+  parser = new Parser();
+  const Lang = await Parser.Language.load(`${base}tree-sitter-haskell.wasm`);
+  parser.setLanguage(Lang);
+  isReady = true;
+  return parser;
+}
+
+let parserLoaded;
+export function loadParser() {
+  if (!parserLoaded) {
+    parserLoaded = _loadParser();
+  }
+  return parserLoaded;
+}
+
+export function parse(code) {
+  if (!isReady) {
+    throw new Error('hs2js not ready. await loadParser before calling evaluate or parse functions');
+  }
+  // for some reason, the parser doesn't like new lines..
+  return parser.parse(code.replaceAll('\n\n', '~~~~').replaceAll('\n', ' ').replaceAll('~~~~', ' \n'));
+}
diff --git a/packages/hs2js/vite.config.js b/packages/hs2js/vite.config.js
new file mode 100644
index 00000000..ce715712
--- /dev/null
+++ b/packages/hs2js/vite.config.js
@@ -0,0 +1,20 @@
+import { defineConfig } from 'vite';
+import { resolve } from 'path';
+
+// https://vitejs.dev/config/
+export default defineConfig({
+  plugins: [],
+  build: {
+    lib: {
+      entry: resolve(__dirname, 'src', 'index.mjs'),
+      name: 'hs2js',
+      formats: ['es', 'iife'],
+      fileName: (ext) => ({ es: 'index.mjs', iife: 'index.js' })[ext],
+    },
+    rollupOptions: {
+      // external: [...Object.keys(dependencies)],
+      plugins: [],
+    },
+    target: 'esnext',
+  },
+});
diff --git a/packages/hydra/hydra.mjs b/packages/hydra/hydra.mjs
index 13d08de6..2cb265c2 100644
--- a/packages/hydra/hydra.mjs
+++ b/packages/hydra/hydra.mjs
@@ -1,5 +1,5 @@
 import { getDrawContext } from '@strudel/draw';
-import { controls } from '@strudel/core';
+import { controls, getTime, reify } from '@strudel/core';
 
 let latestOptions;
 let hydra;
@@ -27,6 +27,7 @@ export async function initHydra(options = {}) {
     hydraConfig.canvas = canvas;
 
     await import(/* @vite-ignore */ src);
+    /* eslint-disable-next-line */
     hydra = new Hydra(hydraConfig);
     if (feedStrudel) {
       const { canvas } = getDrawContext();
@@ -46,4 +47,4 @@ export function clearHydra() {
   globalThis.shape = controls.shape;
 }
 
-export const H = (p) => () => p.queryArc(getTime(), getTime())[0].value;
+export const H = (p) => () => reify(p).queryArc(getTime(), getTime())[0].value;
diff --git a/packages/hydra/package.json b/packages/hydra/package.json
index 77fab126..2559a167 100644
--- a/packages/hydra/package.json
+++ b/packages/hydra/package.json
@@ -1,6 +1,6 @@
 {
   "name": "@strudel/hydra",
-  "version": "1.0.1",
+  "version": "1.1.0",
   "description": "Hydra integration for strudel",
   "main": "hydra.mjs",
   "type": "module",
diff --git a/packages/midi/package.json b/packages/midi/package.json
index 4cc2dddb..6b2d8de1 100644
--- a/packages/midi/package.json
+++ b/packages/midi/package.json
@@ -1,6 +1,6 @@
 {
   "name": "@strudel/midi",
-  "version": "1.0.1",
+  "version": "1.1.0",
   "description": "Midi API for strudel",
   "main": "index.mjs",
   "type": "module",
diff --git a/packages/mini/krill-parser.js b/packages/mini/krill-parser.js
index 1cdd3486..0a062f46 100644
--- a/packages/mini/krill-parser.js
+++ b/packages/mini/krill-parser.js
@@ -295,13 +295,12 @@ function peg$parse(input, options) {
   var peg$f6 = function(a) { return a };
   var peg$f7 = function(s) { s.arguments_.alignment = 'polymeter_slowcat'; return s; };
   var peg$f8 = function(a) { return x => x.options_['weight'] = (x.options_['weight'] ?? 1) + (a ?? 2) - 1 };
-  var peg$f9 = function(a) { return x => {const reps = (x.options_['reps'] ?? 1) + (a ?? 2) - 1;
+  var peg$f9 = function(a) { return x => {// A bit fiddly, to support both x!4 and x!!! as equivalent..
+                 const reps = (x.options_['reps'] ?? 1) + (a ?? 2) - 1;
                  x.options_['reps'] = reps;
-                 console.log("reps: ", reps)
                  x.options_['ops'] = x.options_['ops'].filter(x => x.type_ !== "replicate");
                  x.options_['ops'].push({ type_: "replicate", arguments_ :{ amount:reps }});
                  x.options_['weight'] = reps;
-                 console.log("options: ", x.options_);
                 }
   };
   var peg$f10 = function(p, s, r) { return x => x.options_['ops'].push({ type_: "bjorklund", arguments_ :{ pulse: p, step:s, rotation:r }}) };
diff --git a/packages/mini/package.json b/packages/mini/package.json
index 7bd73011..5d2ce1ec 100644
--- a/packages/mini/package.json
+++ b/packages/mini/package.json
@@ -1,6 +1,6 @@
 {
   "name": "@strudel/mini",
-  "version": "1.0.1",
+  "version": "1.1.0",
   "description": "Mini notation for strudel",
   "main": "index.mjs",
   "type": "module",
diff --git a/packages/osc/osc.mjs b/packages/osc/osc.mjs
index 5552a1c1..422e56da 100644
--- a/packages/osc/osc.mjs
+++ b/packages/osc/osc.mjs
@@ -6,7 +6,7 @@ This program is free software: you can redistribute it and/or modify it under th
 
 import OSC from 'osc-js';
 
-import { logger, parseNumeral, Pattern, getEventOffsetMs } from '@strudel/core';
+import { logger, parseNumeral, Pattern, getEventOffsetMs, isNote, noteToMidi } from '@strudel/core';
 
 let connection; // Promise
 function connect() {
@@ -52,7 +52,15 @@ Pattern.prototype.osc = function () {
     const controls = Object.assign({}, { cps, cycle, delta }, hap.value);
     // make sure n and note are numbers
     controls.n && (controls.n = parseNumeral(controls.n));
-    controls.note && (controls.note = parseNumeral(controls.note));
+    if (typeof controls.note !== 'undefined') {
+      if (isNote(controls.note)) {
+        controls.midinote = noteToMidi(controls.note, controls.octave || 3);
+      } else {
+        controls.note = parseNumeral(controls.note);
+      }
+    }
+    controls.bank && (controls.s = controls.bank + controls.s);
+    controls.roomsize && (controls.size = parseNumeral(controls.roomsize));
     const keyvals = Object.entries(controls).flat();
     // time should be audio time of onset
     // currentTime should be current time of audio context (slightly before time)
diff --git a/packages/osc/package.json b/packages/osc/package.json
index 92725cd4..98babe2a 100644
--- a/packages/osc/package.json
+++ b/packages/osc/package.json
@@ -1,6 +1,6 @@
 {
   "name": "@strudel/osc",
-  "version": "1.0.1",
+  "version": "1.1.0",
   "description": "OSC messaging for strudel",
   "main": "osc.mjs",
   "type": "module",
diff --git a/packages/osc/tidal-sniffer.js b/packages/osc/tidal-sniffer.js
index 2cbb15e6..10bf0ad0 100644
--- a/packages/osc/tidal-sniffer.js
+++ b/packages/osc/tidal-sniffer.js
@@ -4,7 +4,7 @@ Copyright (C) 2022 Strudel contributors - see .
 */
 
-const OSC = require('osc-js');
+import OSC from 'osc-js';
 
 const config = {
   receiver: 'ws', // @param {string} Where messages sent via 'send' method will be delivered to, 'ws' for Websocket clients, 'udp' for udp client
diff --git a/packages/repl/package.json b/packages/repl/package.json
index 70687d1c..9ea71a69 100644
--- a/packages/repl/package.json
+++ b/packages/repl/package.json
@@ -1,6 +1,6 @@
 {
   "name": "@strudel/repl",
-  "version": "1.0.2",
+  "version": "1.1.0",
   "description": "Strudel REPL as a Web Component",
   "module": "index.mjs",
   "publishConfig": {
diff --git a/packages/sampler/package.json b/packages/sampler/package.json
index 58c7db6b..252fe935 100644
--- a/packages/sampler/package.json
+++ b/packages/sampler/package.json
@@ -1,6 +1,6 @@
 {
   "name": "@strudel/sampler",
-  "version": "0.0.9",
+  "version": "0.1.0",
   "description": "",
   "keywords": [
     "tidalcycles",
@@ -16,4 +16,4 @@
   "dependencies": {
     "cowsay": "^1.6.0"
   }
-}
\ No newline at end of file
+}
diff --git a/packages/sampler/sample-server.mjs b/packages/sampler/sample-server.mjs
index b9ae64ed..12520992 100644
--- a/packages/sampler/sample-server.mjs
+++ b/packages/sampler/sample-server.mjs
@@ -4,7 +4,7 @@ import cowsay from 'cowsay';
 import { createReadStream } from 'fs';
 import { readdir } from 'fs/promises';
 import http from 'http';
-import { join } from 'path';
+import { join, sep } from 'path';
 import os from 'os';
 
 // eslint-disable-next-line
@@ -45,15 +45,16 @@ async function getFilesInDirectory(directory) {
 }
 
 async function getBanks(directory) {
-  // const directory = resolve(__dirname, '.');
   let files = await getFilesInDirectory(directory);
   let banks = {};
-  files = files.map((url) => {
-    const [bank] = url.split('/').slice(-2);
+  directory = directory.split(sep).join('/');
+  files = files.map((path) => {
+    path = path.split(sep).join('/');
+    const [bank] = path.split('/').slice(-2);
     banks[bank] = banks[bank] || [];
-    url = url.replace(directory, '');
-    banks[bank].push(url);
-    return url;
+    const relativeUrl = path.replace(directory, '');
+    banks[bank].push(relativeUrl);
+    return relativeUrl;
   });
   banks._base = `http://localhost:5432`;
   return { banks, files };
@@ -74,7 +75,7 @@ const server = http.createServer(async (req, res) => {
     res.end('File not found');
     return;
   }
-  const filePath = join(directory, subpath);
+  const filePath = join(directory, subpath.split('/').join(sep));
   const readStream = createReadStream(filePath);
   readStream.on('error', (err) => {
     res.statusCode = 500;
diff --git a/packages/serial/package.json b/packages/serial/package.json
index 9a98a253..02418df3 100644
--- a/packages/serial/package.json
+++ b/packages/serial/package.json
@@ -1,6 +1,6 @@
 {
   "name": "@strudel/serial",
-  "version": "1.0.1",
+  "version": "1.1.0",
   "description": "Webserial API for strudel",
   "main": "serial.mjs",
   "type": "module",
diff --git a/packages/soundfonts/package.json b/packages/soundfonts/package.json
index db8370c3..82696312 100644
--- a/packages/soundfonts/package.json
+++ b/packages/soundfonts/package.json
@@ -1,6 +1,6 @@
 {
   "name": "@strudel/soundfonts",
-  "version": "1.0.1",
+  "version": "1.1.0",
   "description": "Soundsfont support for strudel",
   "main": "index.mjs",
   "publishConfig": {
diff --git a/packages/superdough/helpers.mjs b/packages/superdough/helpers.mjs
index f5f3ad68..e51156fe 100644
--- a/packages/superdough/helpers.mjs
+++ b/packages/superdough/helpers.mjs
@@ -14,6 +14,15 @@ const getSlope = (y1, y2, x1, x2) => {
   }
   return (y2 - y1) / (x2 - x1);
 };
+
+export function getWorklet(ac, processor, params, config) {
+  const node = new AudioWorkletNode(ac, processor, config);
+  Object.entries(params).forEach(([key, value]) => {
+    node.parameters.get(key).value = value;
+  });
+  return node;
+}
+
 export const getParamADSR = (
   param,
   attack,
@@ -103,14 +112,22 @@ export const getADSRValues = (params, curve = 'linear', defaultValues) => {
   return [Math.max(a ?? 0, envmin), Math.max(d ?? 0, envmin), Math.min(sustain, envmax), Math.max(r ?? 0, releaseMin)];
 };
 
-export function createFilter(context, type, frequency, Q, att, dec, sus, rel, fenv, start, end, fanchor) {
+export function createFilter(context, type, frequency, Q, att, dec, sus, rel, fenv, start, end, fanchor, model, drive) {
   const curve = 'exponential';
   const [attack, decay, sustain, release] = getADSRValues([att, dec, sus, rel], curve, [0.005, 0.14, 0, 0.1]);
-  const filter = context.createBiquadFilter();
+  let filter;
+  let frequencyParam;
+  if (model === 'ladder') {
+    filter = getWorklet(context, 'ladder-processor', { frequency, q: Q, drive });
+    frequencyParam = filter.parameters.get('frequency');
+  } else {
+    filter = context.createBiquadFilter();
+    filter.type = type;
+    filter.Q.value = Q;
+    filter.frequency.value = frequency;
+    frequencyParam = filter.frequency;
+  }
 
-  filter.type = type;
-  filter.Q.value = Q;
-  filter.frequency.value = frequency;
   // envelope is active when any of these values is set
   const hasEnvelope = att ?? dec ?? sus ?? rel ?? fenv;
   // Apply ADSR to filter frequency
@@ -122,7 +139,7 @@ export function createFilter(context, type, frequency, Q, att, dec, sus, rel, fe
     let min = clamp(2 ** -offset * frequency, 0, 20000);
     let max = clamp(2 ** (fenvAbs - offset) * frequency, 0, 20000);
     if (fenv < 0) [min, max] = [max, min];
-    getParamADSR(filter.frequency, attack, decay, sustain, release, min, max, start, end, curve);
+    getParamADSR(frequencyParam, attack, decay, sustain, release, min, max, start, end, curve);
     return filter;
   }
   return filter;
diff --git a/packages/superdough/package.json b/packages/superdough/package.json
index f1abd95b..685ab9c5 100644
--- a/packages/superdough/package.json
+++ b/packages/superdough/package.json
@@ -1,6 +1,6 @@
 {
   "name": "superdough",
-  "version": "1.0.1",
+  "version": "1.1.0",
   "description": "simple web audio synth and sampler intended for live coding. inspired by superdirt and webdirt.",
   "main": "index.mjs",
   "type": "module",
diff --git a/packages/superdough/superdough.mjs b/packages/superdough/superdough.mjs
index c0ba96e0..f0475d77 100644
--- a/packages/superdough/superdough.mjs
+++ b/packages/superdough/superdough.mjs
@@ -7,9 +7,9 @@ This program is free software: you can redistribute it and/or modify it under th
 import './feedbackdelay.mjs';
 import './reverb.mjs';
 import './vowel.mjs';
-import { clamp, nanFallback } from './util.mjs';
+import { clamp, nanFallback, _mod } from './util.mjs';
 import workletsUrl from './worklets.mjs?url';
-import { createFilter, gainNode, getCompressor } from './helpers.mjs';
+import { createFilter, gainNode, getCompressor, getWorklet } from './helpers.mjs';
 import { map } from 'nanostores';
 import { logger } from './logger.mjs';
 import { loadBuffer } from './sampler.mjs';
@@ -24,6 +24,52 @@ export function getSound(s) {
   return soundMap.get()[s];
 }
 
+const defaultDefaultValues = {
+  s: 'triangle',
+  gain: 0.8,
+  postgain: 1,
+  density: '.03',
+  ftype: '12db',
+  fanchor: 0,
+  resonance: 1,
+  hresonance: 1,
+  bandq: 1,
+  channels: [1, 2],
+  phaserdepth: 0.75,
+  shapevol: 1,
+  distortvol: 1,
+  delay: 0,
+  delayfeedback: 0.5,
+  delaytime: 0.25,
+  orbit: 1,
+  i: 1,
+  velocity: 1,
+  fft: 8,
+};
+
+let defaultControls = new Map(Object.entries(defaultDefaultValues));
+
+export function setDefaultValue(key, value) {
+  defaultControls.set(key, value);
+}
+export function getDefaultValue(key) {
+  return defaultControls.get(key);
+}
+export function setDefaultValues(defaultsobj) {
+  Object.keys(defaultsobj).forEach((key) => {
+    setDefaultValue(key, defaultsobj[key]);
+  });
+}
+export function resetDefaultValues() {
+  defaultControls = new Map(Object.entries(defaultDefaultValues));
+}
+export function setVersionDefaults(version) {
+  resetDefaultValues();
+  if (version === '1.0') {
+    setDefaultValue('fanchor', 0.5);
+  }
+}
+
 export const resetLoadedSounds = () => soundMap.set({});
 
 let audioContext;
@@ -37,50 +83,49 @@ export const getAudioContext = () => {
   if (!audioContext) {
     return setDefaultAudioContext();
   }
+
   return audioContext;
 };
 
 let workletsLoading;
-
 function loadWorklets() {
-  if (workletsLoading) {
-    return workletsLoading;
+  if (!workletsLoading) {
+    workletsLoading = getAudioContext().audioWorklet.addModule(workletsUrl);
   }
-  workletsLoading = getAudioContext().audioWorklet.addModule(workletsUrl);
   return workletsLoading;
 }
 
-export function getWorklet(ac, processor, params, config) {
-  const node = new AudioWorkletNode(ac, processor, config);
-  Object.entries(params).forEach(([key, value]) => {
-    node.parameters.get(key).value = value;
-  });
-  return node;
-}
-
 // this function should be called on first user interaction (to avoid console warning)
 export async function initAudio(options = {}) {
   const { disableWorklets = false } = options;
-  if (typeof window !== 'undefined') {
-    await getAudioContext().resume();
-    if (!disableWorklets) {
-      await loadWorklets().catch((err) => {
-        console.warn('could not load AudioWorklet effects coarse, crush and shape', err);
-      });
-    } else {
-      console.log('disableWorklets: AudioWorklet effects coarse, crush and shape are skipped!');
-    }
+  if (typeof window === 'undefined') {
+    return;
   }
+  await getAudioContext().resume();
+  if (disableWorklets) {
+    logger('[superdough]: AudioWorklets disabled with disableWorklets');
+    return;
+  }
+  try {
+    await loadWorklets();
+    logger('[superdough] AudioWorklets loaded');
+  } catch (err) {
+    console.warn('could not load AudioWorklet effects', err);
+  }
+  logger('[superdough] ready');
 }
-
+let audioReady;
 export async function initAudioOnFirstClick(options) {
-  return new Promise((resolve) => {
-    document.addEventListener('click', async function listener() {
-      await initAudio(options);
-      resolve();
-      document.removeEventListener('click', listener);
+  if (!audioReady) {
+    audioReady = new Promise((resolve) => {
+      document.addEventListener('click', async function listener() {
+        document.removeEventListener('click', listener);
+        await initAudio(options);
+        resolve();
+      });
     });
-  });
+  }
+  return audioReady;
 }
 
 let delays = {};
@@ -144,26 +189,25 @@ function getDelay(orbit, delaytime, delayfeedback, t) {
   return delays[orbit];
 }
 
-// each orbit will have its own lfo
-const phaserLFOs = {};
-function getPhaser(orbit, t, speed = 1, depth = 0.5, centerFrequency = 1000, sweep = 2000) {
+function getPhaser(time, end, frequency = 1, depth = 0.5, centerFrequency = 1000, sweep = 2000) {
   //gain
   const ac = getAudioContext();
   const lfoGain = ac.createGain();
-  lfoGain.gain.value = sweep;
+  lfoGain.gain.value = sweep * 2;
+  // centerFrequency = centerFrequency * 2;
+  // sweep = sweep * 1.5;
 
-  //LFO
-  if (phaserLFOs[orbit] == null) {
-    phaserLFOs[orbit] = ac.createOscillator();
-    phaserLFOs[orbit].frequency.value = speed;
-    phaserLFOs[orbit].type = 'sine';
-    phaserLFOs[orbit].start();
-  }
-
-  phaserLFOs[orbit].connect(lfoGain);
-  if (phaserLFOs[orbit].frequency.value != speed) {
-    phaserLFOs[orbit].frequency.setValueAtTime(speed, t);
-  }
+  const lfo = getWorklet(ac, 'lfo-processor', {
+    frequency,
+    depth: 1,
+    skew: 0,
+    phaseoffset: 0,
+    time,
+    end,
+    shape: 1,
+    dcoffset: -0.5,
+  });
+  lfo.connect(lfoGain);
 
   //filters
   const numStages = 2; //num of filters in series
@@ -186,10 +230,14 @@ function getPhaser(orbit, t, speed = 1, depth = 0.5, centerFrequency = 1000, swe
   return filterChain[filterChain.length - 1];
 }
 
+function getFilterType(ftype) {
+  ftype = ftype ?? 0;
+  const filterTypes = ['12db', 'ladder', '24db'];
+  return typeof ftype === 'number' ? filterTypes[Math.floor(_mod(ftype, filterTypes.length))] : ftype;
+}
+
 let reverbs = {};
-
 let hasChanged = (now, before) => now !== undefined && now !== before;
-
 function getReverb(orbit, duration, fade, lp, dim, ir) {
   // If no reverb has been created for a given orbit, create one
   if (!reverbs[orbit]) {
@@ -281,15 +329,15 @@ export const superdough = async (value, t, hapDuration) => {
   }
   // destructure
   let {
-    s = 'triangle',
+    s = getDefaultValue('s'),
     bank,
     source,
-    gain = 0.8,
-    postgain = 1,
-    density = 0.03,
+    gain = getDefaultValue('gain'),
+    postgain = getDefaultValue('postgain'),
+    density = getDefaultValue('density'),
     // filters
-    ftype = '12db',
-    fanchor = 0.5,
+    fanchor = getDefaultValue('fanchor'),
+    drive = 0.69,
     // low pass
     cutoff,
     lpenv,
@@ -297,7 +345,7 @@ export const superdough = async (value, t, hapDuration) => {
     lpdecay,
     lpsustain,
     lprelease,
-    resonance = 1,
+    resonance = getDefaultValue('resonance'),
     // high pass
     hpenv,
     hcutoff,
@@ -305,7 +353,7 @@ export const superdough = async (value, t, hapDuration) => {
     hpdecay,
     hpsustain,
     hprelease,
-    hresonance = 1,
+    hresonance = getDefaultValue('hresonance'),
     // band pass
     bpenv,
     bandf,
@@ -313,36 +361,36 @@ export const superdough = async (value, t, hapDuration) => {
     bpdecay,
     bpsustain,
     bprelease,
-    bandq = 1,
-    channels = [1, 2],
+    bandq = getDefaultValue('bandq'),
+    channels = getDefaultValue('channels'),
     //phaser
     phaser,
-    phaserdepth = 0.75,
+    phaserdepth = getDefaultValue('phaserdepth'),
     phasersweep,
     phasercenter,
     //
     coarse,
     crush,
     shape,
-    shapevol = 1,
+    shapevol = getDefaultValue('shapevol'),
     distort,
-    distortvol = 1,
+    distortvol = getDefaultValue('distortvol'),
     pan,
     vowel,
-    delay = 0,
-    delayfeedback = 0.5,
-    delaytime = 0.25,
-    orbit = 1,
+    delay = getDefaultValue('delay'),
+    delayfeedback = getDefaultValue('delayfeedback'),
+    delaytime = getDefaultValue('delaytime'),
+    orbit = getDefaultValue('orbit'),
     room,
     roomfade,
     roomlp,
     roomdim,
     roomsize,
     ir,
-    i = 0,
-    velocity = 1,
+    i = getDefaultValue('i'),
+    velocity = getDefaultValue('velocity'),
     analyze, // analyser wet
-    fft = 8, // fftSize 0 - 10
+    fft = getDefaultValue('fft'), // fftSize 0 - 10
     compressor: compressorThreshold,
     compressorRatio,
     compressorKnee,
@@ -394,6 +442,8 @@ export const superdough = async (value, t, hapDuration) => {
   // gain stage
   chain.push(gainNode(gain));
 
+  //filter
+  const ftype = getFilterType(value.ftype);
   if (cutoff !== undefined) {
     let lp = () =>
       createFilter(
@@ -409,6 +459,8 @@ export const superdough = async (value, t, hapDuration) => {
         t,
         t + hapDuration,
         fanchor,
+        ftype,
+        drive,
       );
     chain.push(lp());
     if (ftype === '24db') {
@@ -484,7 +536,7 @@ export const superdough = async (value, t, hapDuration) => {
   }
   // phaser
   if (phaser !== undefined && phaserdepth > 0) {
-    const phaserFX = getPhaser(orbit, t, phaser, phaserdepth, phasercenter, phasersweep);
+    const phaserFX = getPhaser(t, t + hapDuration, phaser, phaserdepth, phasercenter, phasersweep);
     chain.push(phaserFX);
   }
 
diff --git a/packages/superdough/synth.mjs b/packages/superdough/synth.mjs
index 55ecc83f..621a6e59 100644
--- a/packages/superdough/synth.mjs
+++ b/packages/superdough/synth.mjs
@@ -1,5 +1,5 @@
 import { clamp, midiToFreq, noteToMidi } from './util.mjs';
-import { registerSound, getAudioContext, getWorklet } from './superdough.mjs';
+import { registerSound, getAudioContext } from './superdough.mjs';
 import {
   applyFM,
   gainNode,
@@ -8,6 +8,7 @@ import {
   getPitchEnvelope,
   getVibratoOscillator,
   webAudioTimeout,
+  getWorklet,
 } from './helpers.mjs';
 import { getNoiseMix, getNoiseOscillator } from './noise.mjs';
 
diff --git a/packages/superdough/worklets.mjs b/packages/superdough/worklets.mjs
index a1f524ca..b06513e7 100644
--- a/packages/superdough/worklets.mjs
+++ b/packages/superdough/worklets.mjs
@@ -1,7 +1,141 @@
 // coarse, crush, and shape processors adapted from dktr0's webdirt: https://github.com/dktr0/WebDirt/blob/5ce3d698362c54d6e1b68acc47eb2955ac62c793/dist/AudioWorklets.js
 // LICENSE GNU General Public License v3.0 see https://github.com/dktr0/WebDirt/blob/main/LICENSE
+// TOFIX: THIS FILE DOES NOT SUPPORT IMPORTS ON DEPOLYMENT
+const clamp = (num, min, max) => Math.min(Math.max(num, min), max);
+const _mod = (n, m) => ((n % m) + m) % m;
 
 const blockSize = 128;
+// adjust waveshape to remove frequencies above nyquist to prevent aliasing
+// referenced from https://www.kvraudio.com/forum/viewtopic.php?t=375517
+function polyBlep(phase, dt) {
+  // 0 <= phase < 1
+  if (phase < dt) {
+    phase /= dt;
+    // 2 * (phase - phase^2/2 - 0.5)
+    return phase + phase - phase * phase - 1;
+  }
+
+  // -1 < phase < 0
+  else if (phase > 1 - dt) {
+    phase = (phase - 1) / dt;
+    // 2 * (phase^2/2 + phase + 0.5)
+    return phase * phase + phase + phase + 1;
+  }
+
+  // 0 otherwise
+  else {
+    return 0;
+  }
+}
+
+const waveshapes = {
+  tri(phase, skew = 0.5) {
+    const x = 1 - skew;
+    if (phase >= skew) {
+      return 1 / x - phase / x;
+    }
+    return phase / skew;
+  },
+  sine(phase) {
+    return Math.sin(Math.PI * 2 * phase) * 0.5 + 0.5;
+  },
+  ramp(phase) {
+    return phase;
+  },
+  saw(phase) {
+    return 1 - phase;
+  },
+
+  square(phase, skew = 0.5) {
+    if (phase >= skew) {
+      return 0;
+    }
+    return 1;
+  },
+  custom(phase, values = [0, 1]) {
+    const numParts = values.length - 1;
+    const currPart = Math.floor(phase * numParts);
+
+    const partLength = 1 / numParts;
+    const startVal = clamp(values[currPart], 0, 1);
+    const endVal = clamp(values[currPart + 1], 0, 1);
+    const y2 = endVal;
+    const y1 = startVal;
+    const x1 = 0;
+    const x2 = partLength;
+    const slope = (y2 - y1) / (x2 - x1);
+    return slope * (phase - partLength * currPart) + startVal;
+  },
+  sawblep(phase, dt) {
+    const v = 2 * phase - 1;
+    return v - polyBlep(phase, dt);
+  },
+};
+
+const waveShapeNames = Object.keys(waveshapes);
+class LFOProcessor extends AudioWorkletProcessor {
+  static get parameterDescriptors() {
+    return [
+      { name: 'time', defaultValue: 0 },
+      { name: 'end', defaultValue: 0 },
+      { name: 'frequency', defaultValue: 0.5 },
+      { name: 'skew', defaultValue: 0.5 },
+      { name: 'depth', defaultValue: 1 },
+      { name: 'phaseoffset', defaultValue: 0 },
+      { name: 'shape', defaultValue: 0 },
+      { name: 'dcoffset', defaultValue: 0 },
+    ];
+  }
+
+  constructor() {
+    super();
+    this.phase;
+  }
+
+  incrementPhase(dt) {
+    this.phase += dt;
+    if (this.phase > 1.0) {
+      this.phase = this.phase - 1;
+    }
+  }
+
+  process(inputs, outputs, parameters) {
+    // eslint-disable-next-line no-undef
+    if (currentTime >= parameters.end[0]) {
+      return false;
+    }
+
+    const output = outputs[0];
+    const frequency = parameters['frequency'][0];
+
+    const time = parameters['time'][0];
+    const depth = parameters['depth'][0];
+    const skew = parameters['skew'][0];
+    const phaseoffset = parameters['phaseoffset'][0];
+
+    const dcoffset = parameters['dcoffset'][0];
+    const shape = waveShapeNames[parameters['shape'][0]];
+
+    const blockSize = output[0].length ?? 0;
+
+    if (this.phase == null) {
+      this.phase = _mod(time * frequency + phaseoffset, 1);
+    }
+    // eslint-disable-next-line no-undef
+    const dt = frequency / sampleRate;
+    for (let n = 0; n < blockSize; n++) {
+      for (let i = 0; i < output.length; i++) {
+        const modval = (waveshapes[shape](this.phase, skew) + dcoffset) * depth;
+        output[i][n] = modval;
+      }
+      this.incrementPhase(dt);
+    }
+
+    return true;
+  }
+}
+registerProcessor('lfo-processor', LFOProcessor);
+
 class CoarseProcessor extends AudioWorkletProcessor {
   static get parameterDescriptors() {
     return [{ name: 'coarse', defaultValue: 1 }];
@@ -106,6 +240,77 @@ class ShapeProcessor extends AudioWorkletProcessor {
 }
 registerProcessor('shape-processor', ShapeProcessor);
 
+function fast_tanh(x) {
+  const x2 = x * x;
+  return (x * (27.0 + x2)) / (27.0 + 9.0 * x2);
+}
+const _PI = 3.14159265359;
+//adapted from https://github.com/TheBouteillacBear/webaudioworklet-wasm?tab=MIT-1-ov-file
+class LadderProcessor extends AudioWorkletProcessor {
+  static get parameterDescriptors() {
+    return [
+      { name: 'frequency', defaultValue: 500 },
+      { name: 'q', defaultValue: 1 },
+      { name: 'drive', defaultValue: 0.69 },
+    ];
+  }
+
+  constructor() {
+    super();
+    this.started = false;
+    this.p0 = [0, 0];
+    this.p1 = [0, 0];
+    this.p2 = [0, 0];
+    this.p3 = [0, 0];
+    this.p32 = [0, 0];
+    this.p33 = [0, 0];
+    this.p34 = [0, 0];
+  }
+
+  process(inputs, outputs, parameters) {
+    const input = inputs[0];
+    const output = outputs[0];
+
+    const hasInput = !(input[0] === undefined);
+    if (this.started && !hasInput) {
+      return false;
+    }
+
+    this.started = hasInput;
+
+    const resonance = parameters.q[0];
+    const drive = clamp(Math.exp(parameters.drive[0]), 0.1, 2000);
+
+    let cutoff = parameters.frequency[0];
+    // eslint-disable-next-line no-undef
+    cutoff = (cutoff * 2 * _PI) / sampleRate;
+    cutoff = cutoff > 1 ? 1 : cutoff;
+
+    const k = Math.min(8, resonance * 0.4);
+    //               drive makeup  * resonance volume loss makeup
+    let makeupgain = (1 / drive) * Math.min(1.75, 1 + k);
+
+    for (let n = 0; n < blockSize; n++) {
+      for (let i = 0; i < input.length; i++) {
+        const out = this.p3[i] * 0.360891 + this.p32[i] * 0.41729 + this.p33[i] * 0.177896 + this.p34[i] * 0.0439725;
+
+        this.p34[i] = this.p33[i];
+        this.p33[i] = this.p32[i];
+        this.p32[i] = this.p3[i];
+
+        this.p0[i] += (fast_tanh(input[i][n] * drive - k * out) - fast_tanh(this.p0[i])) * cutoff;
+        this.p1[i] += (fast_tanh(this.p0[i]) - fast_tanh(this.p1[i])) * cutoff;
+        this.p2[i] += (fast_tanh(this.p1[i]) - fast_tanh(this.p2[i])) * cutoff;
+        this.p3[i] += (fast_tanh(this.p2[i]) - fast_tanh(this.p3[i])) * cutoff;
+
+        output[i][n] = out * makeupgain;
+      }
+    }
+    return true;
+  }
+}
+registerProcessor('ladder-processor', LadderProcessor);
+
 class DistortProcessor extends AudioWorkletProcessor {
   static get parameterDescriptors() {
     return [
@@ -142,34 +347,7 @@ class DistortProcessor extends AudioWorkletProcessor {
 }
 registerProcessor('distort-processor', DistortProcessor);
 
-// adjust waveshape to remove frequencies above nyquist to prevent aliasing
-// referenced from https://www.kvraudio.com/forum/viewtopic.php?t=375517
-const polyBlep = (phase, dt) => {
-  // 0 <= phase < 1
-  if (phase < dt) {
-    phase /= dt;
-    // 2 * (phase - phase^2/2 - 0.5)
-    return phase + phase - phase * phase - 1;
-  }
-
-  // -1 < phase < 0
-  else if (phase > 1 - dt) {
-    phase = (phase - 1) / dt;
-    // 2 * (phase^2/2 + phase + 0.5)
-    return phase * phase + phase + phase + 1;
-  }
-
-  // 0 otherwise
-  else {
-    return 0;
-  }
-};
-
-const saw = (phase, dt) => {
-  const v = 2 * phase - 1;
-  return v - polyBlep(phase, dt);
-};
-
+// SUPERSAW
 function lerp(a, b, n) {
   return n * (b - a) + a;
 }
@@ -269,7 +447,7 @@ class SuperSawOscillatorProcessor extends AudioWorkletProcessor {
 
       for (let i = 0; i < output[0].length; i++) {
         this.phase[n] = this.phase[n] ?? Math.random();
-        const v = saw(this.phase[n], dt);
+        const v = waveshapes.sawblep(this.phase[n], dt);
 
         output[0][i] = output[0][i] + v * gainL;
         output[1][i] = output[1][i] + v * gainR;
diff --git a/packages/tidal/package.json b/packages/tidal/package.json
new file mode 100644
index 00000000..051c6143
--- /dev/null
+++ b/packages/tidal/package.json
@@ -0,0 +1,28 @@
+{
+  "name": "@strudel/tidal",
+  "version": "0.1.0",
+  "description": "Experimental Tidal Code interpreter",
+  "module": "tidal.mjs",
+  "repository": {
+    "type": "git",
+    "url": "git+https://github.com/felixroos/hs2js.git"
+  },
+  "keywords": [
+    "haskell",
+    "javascript"
+  ],
+  "author": "Felix Roos ",
+  "license": "AGPL-3.0-or-later",
+  "bugs": {
+    "url": "https://github.com/tidalcycles/strudel/issues"
+  },
+  "homepage": "https://github.com/tidalcycles/strudel/tree/main/packages/hs2js",
+  "dependencies": {
+    "@strudel/core": "workspace:*",
+    "@strudel/mini": "workspace:*",
+    "hs2js": "workspace:*"
+  },
+  "devDependencies": {
+    "vite": "^5.0.10"
+  }
+}
diff --git a/packages/tidal/tidal.mjs b/packages/tidal/tidal.mjs
new file mode 100644
index 00000000..576d7814
--- /dev/null
+++ b/packages/tidal/tidal.mjs
@@ -0,0 +1,73 @@
+import { reify } from '@strudel/core';
+import { m } from '@strudel/mini';
+import { loadParser, evaluate } from 'hs2js';
+
+function getInfixOperators() {
+  let operators = {
+    '>': 'set',
+    '#': 'set',
+    '+': 'add',
+    '-': 'sub',
+    '*': 'mul',
+    '/': 'div',
+  };
+  let alignments = {
+    in: (s) => '|' + s,
+    out: (s) => s + '|',
+    mix: (s) => '|' + s + '|',
+  };
+  let ops = {};
+  Object.entries(operators).forEach(([o, name]) => {
+    // operator without alignment
+    ops[o] = (l, r) => reify(l)[name](reify(r));
+    Object.entries(alignments).forEach(([a, getSymbol]) => {
+      // get symbol with alignment
+      let symbol = getSymbol(o);
+      ops[symbol] = (l, r) => reify(l)[name][a](reify(r));
+    });
+  });
+  ops['~>'] = (l, r) => reify(l).late(reify(r));
+  ops['<~'] = (l, r) => reify(l).early(reify(r));
+  ops['<$>'] = (l, r) => reify(r).fmap(l).outerJoin(); // is this right?
+  return ops;
+}
+const ops = getInfixOperators();
+
+export async function initTidal() {
+  // TODO: implement this in regular land
+  window.d1 = (pat) => pat.p('d1');
+  window.d2 = (pat) => pat.p('d2');
+  window.d3 = (pat) => pat.p('d3');
+  window.d4 = (pat) => pat.p('d4');
+  window.d5 = (pat) => pat.p('d5');
+  window.d6 = (pat) => pat.p('d6');
+  window.d7 = (pat) => pat.p('d7');
+  window.d8 = (pat) => pat.p('d8');
+  window.d9 = (pat) => pat.p('d9');
+  return loadParser();
+}
+
+// offset is expected to be passed in from transpiler
+/* 
+1. acorn parses JS to find location of tidal call
+2. haskell-tree-sitter calls "string" function with node (including location)
+3. m function sets locations for individual mini notation atom
+
+so the location for a mini notation atom is:
+
+js offset + hs offset + atom offset
+*/
+export function tidal(code, offset = 0) {
+  if (Array.isArray(code)) {
+    code = code.join('');
+  }
+  return evaluate(code, window, {
+    ...ops,
+    string: (node) => {
+      // parses strings as mini notation and passes location
+      const str = node.text.slice(1, -1);
+      const col = node.startIndex + offset;
+      return m(str, col);
+    },
+  });
+}
diff --git a/packages/tonal/package.json b/packages/tonal/package.json
index e4418228..dba7f804 100644
--- a/packages/tonal/package.json
+++ b/packages/tonal/package.json
@@ -1,6 +1,6 @@
 {
   "name": "@strudel/tonal",
-  "version": "1.0.1",
+  "version": "1.1.0",
   "description": "Tonal functions for strudel",
   "main": "index.mjs",
   "publishConfig": {
diff --git a/packages/transpiler/package.json b/packages/transpiler/package.json
index 12038fc4..d216716d 100644
--- a/packages/transpiler/package.json
+++ b/packages/transpiler/package.json
@@ -1,6 +1,6 @@
 {
   "name": "@strudel/transpiler",
-  "version": "1.0.1",
+  "version": "1.1.0",
   "description": "Transpiler for strudel user code. Converts syntactically correct but semantically meaningless JS into evaluatable strudel code.",
   "main": "index.mjs",
   "type": "module",
diff --git a/packages/transpiler/transpiler.mjs b/packages/transpiler/transpiler.mjs
index 95156664..6cd01499 100644
--- a/packages/transpiler/transpiler.mjs
+++ b/packages/transpiler/transpiler.mjs
@@ -26,6 +26,16 @@ export function transpiler(input, options = {}) {
 
   walk(ast, {
     enter(node, parent /* , prop, index */) {
+      if (isTidalTeplateLiteral(node)) {
+        const raw = node.quasi.quasis[0].value.raw;
+        const offset = node.quasi.start + 1;
+        if (emitMiniLocations) {
+          const stringLocs = collectHaskellMiniLocations(raw, offset);
+          miniLocations = miniLocations.concat(stringLocs);
+        }
+        this.skip();
+        return this.replace(tidalWithLocation(raw, offset));
+      }
       if (isBackTickString(node, parent)) {
         const { quasis } = node;
         const { raw } = quasis[0].value;
@@ -207,3 +217,47 @@ function labelToP(node) {
     },
   };
 }
+
+// tidal highlighting
+// this feels kind of stupid, when we also know the location inside the string op (tidal.mjs)
+// but maybe it's the only way
+
+function isTidalTeplateLiteral(node) {
+  return node.type === 'TaggedTemplateExpression' && node.tag.name === 'tidal';
+}
+
+function collectHaskellMiniLocations(haskellCode, offset) {
+  return haskellCode
+    .split('')
+    .reduce((acc, char, i) => {
+      if (char !== '"') {
+        return acc;
+      }
+      if (!acc.length || acc[acc.length - 1].length > 1) {
+        acc.push([i + 1]);
+      } else {
+        acc[acc.length - 1].push(i);
+      }
+      return acc;
+    }, [])
+    .map(([start, end]) => {
+      const miniString = haskellCode.slice(start, end);
+      return getLeafLocations(`"${miniString}"`, offset + start - 1);
+    })
+    .flat();
+}
+
+function tidalWithLocation(value, offset) {
+  return {
+    type: 'CallExpression',
+    callee: {
+      type: 'Identifier',
+      name: 'tidal',
+    },
+    arguments: [
+      { type: 'Literal', value },
+      { type: 'Literal', value: offset },
+    ],
+    optional: false,
+  };
+}
diff --git a/packages/web/README.md b/packages/web/README.md
index 8b567729..659c8271 100644
--- a/packages/web/README.md
+++ b/packages/web/README.md
@@ -72,7 +72,13 @@ document.getElementById('play').addEventListener('stop',
 There is a tiny difference between the [Strudel REPL](https://strudel.cc/) and `@strudel/web`.
 In the REPL you can use 'single quotes' for regular JS strings and "double quotes" for mini notation patterns.
 In `@strudel/web`, it does not matter which types of quotes you're using.
-There will probably be an escapte hatch for that in the future.
+
+This difference means that you cannot call pattern methods on raw strings, for example `"1 2 3".slow(2)`.
+To make it work you can either:
+
+1. Use the `evaluate` function, which behaves exactly like the Strudel REPL, interpreting double quoted strings as mini notation.
+2. wrap the string with `m`: `m("1 2 3").slow(2)`
+3. wrap the string in a control function: `n("1 2 3").slow(2)` depending on your context.
 
 ## More Examples
 
diff --git a/packages/web/package.json b/packages/web/package.json
index d70e84c8..17dd49cb 100644
--- a/packages/web/package.json
+++ b/packages/web/package.json
@@ -1,6 +1,6 @@
 {
   "name": "@strudel/web",
-  "version": "1.0.3",
+  "version": "1.1.0",
   "description": "Easy to setup, opiniated bundle of Strudel for the browser.",
   "module": "web.mjs",
   "publishConfig": {
@@ -40,7 +40,7 @@
     "@strudel/webaudio": "workspace:*"
   },
   "devDependencies": {
-    "vite": "^5.0.10",
-    "@rollup/plugin-replace": "^5.0.5"
+    "@rollup/plugin-replace": "^5.0.5",
+    "vite": "^5.0.10"
   }
 }
diff --git a/packages/web/web.mjs b/packages/web/web.mjs
index 660acf26..2e2df84d 100644
--- a/packages/web/web.mjs
+++ b/packages/web/web.mjs
@@ -5,10 +5,10 @@ export * from '@strudel/transpiler';
 export * from '@strudel/mini';
 export * from '@strudel/tonal';
 export * from '@strudel/webaudio';
-import { Pattern, evalScope } from '@strudel/core';
-import { initAudioOnFirstClick, registerSynthSounds, webaudioScheduler } from '@strudel/webaudio';
+import { Pattern, evalScope, setTime } from '@strudel/core';
+import { initAudioOnFirstClick, registerSynthSounds, webaudioRepl } from '@strudel/webaudio';
 // import { registerSoundfonts } from '@strudel/soundfonts';
-import { evaluate as _evaluate } from '@strudel/transpiler';
+import { evaluate as _evaluate, transpiler } from '@strudel/transpiler';
 import { miniAllStrings } from '@strudel/mini';
 
 // init logic
@@ -27,39 +27,40 @@ export async function defaultPrebake() {
 // when this function finishes, everything is initialized
 let initDone;
 
-let scheduler;
+let repl;
 export function initStrudel(options = {}) {
   initAudioOnFirstClick();
-  miniAllStrings();
-  const { prebake, ...schedulerOptions } = options;
-
+  options.miniAllStrings !== false && miniAllStrings();
+  const { prebake, ...replOptions } = options;
+  repl = webaudioRepl({ ...replOptions, transpiler });
   initDone = (async () => {
     await defaultPrebake();
     await prebake?.();
+    return repl;
   })();
-  scheduler = webaudioScheduler(schedulerOptions);
+  setTime(() => repl.scheduler.now());
+  return initDone;
 }
 
 window.initStrudel = initStrudel;
 
 // this method will play the pattern on the default scheduler
 Pattern.prototype.play = function () {
-  if (!scheduler) {
-    throw new Error('.play: no scheduler found. Have you called init?');
+  if (!repl) {
+    throw new Error('.play: no repl found. Have you called initStrudel?');
   }
   initDone.then(() => {
-    scheduler.setPattern(this, true);
+    repl.setPattern(this, true);
   });
   return this;
 };
 
 // stop playback
 export function hush() {
-  scheduler.stop();
+  repl.stop();
 }
 
 // evaluate and play the given code using the transpiler
 export async function evaluate(code, autoplay = true) {
-  const { pattern } = await _evaluate(code);
-  autoplay && pattern.play();
+  return repl.evaluate(code, autoplay);
 }
diff --git a/packages/webaudio/package.json b/packages/webaudio/package.json
index f9cd7cc7..019768c1 100644
--- a/packages/webaudio/package.json
+++ b/packages/webaudio/package.json
@@ -1,6 +1,6 @@
 {
   "name": "@strudel/webaudio",
-  "version": "1.0.1",
+  "version": "1.1.0",
   "description": "Web Audio helpers for Strudel",
   "main": "index.mjs",
   "type": "module",
diff --git a/packages/webaudio/webaudio.mjs b/packages/webaudio/webaudio.mjs
index f82a436a..44a68348 100644
--- a/packages/webaudio/webaudio.mjs
+++ b/packages/webaudio/webaudio.mjs
@@ -6,7 +6,7 @@ This program is free software: you can redistribute it and/or modify it under th
 
 import * as strudel from '@strudel/core';
 import { superdough, getAudioContext, setLogger, doughTrigger } from 'superdough';
-const { Pattern, logger } = strudel;
+const { Pattern, logger, repl } = strudel;
 
 setLogger(logger);
 
@@ -24,17 +24,13 @@ Pattern.prototype.webaudio = function () {
   return this.onTrigger(webaudioOutputTrigger);
 };
 
-export function webaudioScheduler(options = {}) {
+export function webaudioRepl(options = {}) {
   options = {
     getTime: () => getAudioContext().currentTime,
     defaultOutput: webaudioOutput,
     ...options,
   };
-  const { defaultOutput, getTime } = options;
-  return new strudel.Cyclist({
-    ...options,
-    onTrigger: strudel.getTrigger({ defaultOutput, getTime }),
-  });
+  return repl(options);
 }
 
 Pattern.prototype.dough = function () {
diff --git a/packages/xen/package.json b/packages/xen/package.json
index 8ee5d8a3..7101ea0c 100644
--- a/packages/xen/package.json
+++ b/packages/xen/package.json
@@ -1,6 +1,6 @@
 {
   "name": "@strudel/xen",
-  "version": "1.0.1",
+  "version": "1.1.0",
   "description": "Xenharmonic API for strudel",
   "main": "index.mjs",
   "type": "module",
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index 74697ee6..a07618b8 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -78,6 +78,9 @@ importers:
       '@strudel/core':
         specifier: workspace:*
         version: link:../../packages/core
+      '@strudel/draw':
+        specifier: workspace:*
+        version: link:../../packages/draw
       '@strudel/mini':
         specifier: workspace:*
         version: link:../../packages/mini
@@ -140,6 +143,19 @@ importers:
         specifier: ^5.0.10
         version: 5.0.10
 
+  examples/tidal-repl:
+    dependencies:
+      '@strudel/web':
+        specifier: workspace:*
+        version: link:../../packages/web
+      hs2js:
+        specifier: workspace:*
+        version: link:../../packages/hs2js
+    devDependencies:
+      vite:
+        specifier: ^5.0.8
+        version: 5.2.2(@types/node@20.10.6)
+
   packages/codemirror:
     dependencies:
       '@codemirror/autocomplete':
@@ -251,6 +267,19 @@ importers:
 
   packages/embed: {}
 
+  packages/hs2js:
+    dependencies:
+      web-tree-sitter:
+        specifier: ^0.20.8
+        version: 0.20.8
+    devDependencies:
+      tree-sitter-haskell:
+        specifier: ^0.21.0
+        version: 0.21.0(tree-sitter@0.21.1)
+      vite:
+        specifier: ^5.0.10
+        version: 5.2.2(@types/node@20.10.6)
+
   packages/hydra:
     dependencies:
       '@strudel/core':
@@ -409,6 +438,22 @@ importers:
         specifier: ^5.0.10
         version: 5.0.10
 
+  packages/tidal:
+    dependencies:
+      '@strudel/core':
+        specifier: workspace:*
+        version: link:../core
+      '@strudel/mini':
+        specifier: workspace:*
+        version: link:../mini
+      hs2js:
+        specifier: workspace:*
+        version: link:../hs2js
+    devDependencies:
+      vite:
+        specifier: ^5.0.10
+        version: 5.2.2(@types/node@20.10.6)
+
   packages/tonal:
     dependencies:
       '@strudel/core':
@@ -587,6 +632,9 @@ importers:
       '@strudel/soundfonts':
         specifier: workspace:*
         version: link:../packages/soundfonts
+      '@strudel/tidal':
+        specifier: workspace:*
+        version: link:../packages/tidal
       '@strudel/tonal':
         specifier: workspace:*
         version: link:../packages/tonal
@@ -629,6 +677,9 @@ importers:
       date-fns:
         specifier: ^3.2.0
         version: 3.2.0
+      hs2js:
+        specifier: 0.0.8
+        version: 0.0.8
       nanoid:
         specifier: ^5.0.4
         version: 5.0.4
@@ -8474,6 +8525,12 @@ packages:
       lru-cache: 10.1.0
     dev: true
 
+  /hs2js@0.0.8:
+    resolution: {integrity: sha512-wFSenhY2MB1ACuwaJq0QyDk6yZiYwha/yOgAa2scsLvqEJTdHY2KXhsy8uZw+G2oVxQGyXs0OPf5gXN7HkP9mA==}
+    dependencies:
+      web-tree-sitter: 0.20.8
+    dev: false
+
   /html-escaper@3.0.3:
     resolution: {integrity: sha512-RuMffC89BOWQoY0WKGpIhn5gX3iI54O6nRA0yC124NYVtzjmFWBIiFd8M0x+ZdX0P9R4lADg1mgP8C7PxGOWuQ==}
 
@@ -10637,6 +10694,11 @@ packages:
       semver: 7.5.4
     dev: true
 
+  /node-addon-api@8.0.0:
+    resolution: {integrity: sha512-ipO7rsHEBqa9STO5C5T10fj732ml+5kLN1cAG8/jdHd56ldQeGj3Q7+scUS+VHK/qy1zLEwC4wMK5+yM0btPvw==}
+    engines: {node: ^18 || ^20 || >= 21}
+    dev: true
+
   /node-domexception@1.0.0:
     resolution: {integrity: sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==}
     engines: {node: '>=10.5.0'}
@@ -10680,6 +10742,11 @@ packages:
     engines: {node: '>= 0.6.0'}
     dev: false
 
+  /node-gyp-build@4.8.1:
+    resolution: {integrity: sha512-OSs33Z9yWr148JZcbZd5WiAXhh/n9z8TxQcdMhIOlpN9AhWpLfvVFO73+m77bBABQMaY9XSvIa+qk0jlI7Gcaw==}
+    hasBin: true
+    dev: true
+
   /node-gyp@10.0.1:
     resolution: {integrity: sha512-gg3/bHehQfZivQVfqIyy8wTdSymF9yTyP4CJifK73imyNMU8AIGQE2pUa7dNWfmMeG9cDVF2eehiRMv0LC1iAg==}
     engines: {node: ^16.14.0 || >=18.0.0}
@@ -13392,6 +13459,29 @@ packages:
       punycode: 2.3.1
     dev: true
 
+  /tree-sitter-haskell@0.21.0(tree-sitter@0.21.1):
+    resolution: {integrity: sha512-b2RLegPHuYPh7nJ3YKWgkWnFYxmYlQDE8TDJuNH+iuNuBcCMYyaA9JlJlMHfCvf7DmJNPtqqbO9Kh9NXEmbatQ==}
+    requiresBuild: true
+    peerDependencies:
+      tree-sitter: ^0.21.0
+      tree_sitter: '*'
+    peerDependenciesMeta:
+      tree_sitter:
+        optional: true
+    dependencies:
+      node-addon-api: 8.0.0
+      node-gyp-build: 4.8.1
+      tree-sitter: 0.21.1
+    dev: true
+
+  /tree-sitter@0.21.1:
+    resolution: {integrity: sha512-7dxoA6kYvtgWw80265MyqJlkRl4yawIjO7S5MigytjELkX43fV2WsAXzsNfO7sBpPPCF5Gp0+XzHk0DwLCq3xQ==}
+    requiresBuild: true
+    dependencies:
+      node-addon-api: 8.0.0
+      node-gyp-build: 4.8.1
+    dev: true
+
   /trim-lines@3.0.1:
     resolution: {integrity: sha512-kRj8B+YHZCc9kQYdWfJB2/oUl9rA99qbowYYBtr4ui4mZyAQ2JpvVBd/6U2YloATfqBhBTSMhTpgBHtU0Mf3Rg==}
 
@@ -14186,6 +14276,10 @@ packages:
     engines: {node: '>= 8'}
     dev: true
 
+  /web-tree-sitter@0.20.8:
+    resolution: {integrity: sha512-weOVgZ3aAARgdnb220GqYuh7+rZU0Ka9k9yfKtGAzEYMa6GgiCzW9JjQRJyCJakvibQW+dfjJdihjInKuuCAUQ==}
+    dev: false
+
   /webidl-conversions@3.0.1:
     resolution: {integrity: sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==}
 
diff --git a/test/__snapshots__/examples.test.mjs.snap b/test/__snapshots__/examples.test.mjs.snap
index 30db05a2..3ff7eae2 100644
--- a/test/__snapshots__/examples.test.mjs.snap
+++ b/test/__snapshots__/examples.test.mjs.snap
@@ -2197,6 +2197,75 @@ exports[`runs examples > example "djf" example index 0 1`] = `
 
 exports[`runs examples > example "drawLine" example index 0 1`] = `[]`;
 
+exports[`runs examples > example "drive" example index 0 1`] = `
+[
+  "[ 0/1 → 1/16 | note:36 s:supersaw lpenv:8 cutoff:150 resonance:0.8 ftype:ladder drive:0.5 ]",
+  "[ 1/16 → 1/8 | note:38 s:supersaw lpenv:8 cutoff:150 resonance:0.8 ftype:ladder drive:0.5 ]",
+  "[ 1/8 → 3/16 | note:38 s:supersaw lpenv:8 cutoff:150 resonance:0.8 ftype:ladder drive:0.5 ]",
+  "[ 3/16 → 1/4 | note:31 s:supersaw lpenv:8 cutoff:150 resonance:0.8 ftype:ladder drive:0.5 ]",
+  "[ 1/4 → 5/16 | note:33 s:supersaw lpenv:8 cutoff:150 resonance:0.8 ftype:ladder drive:0.5 ]",
+  "[ 5/16 → 3/8 | note:40 s:supersaw lpenv:8 cutoff:150 resonance:0.8 ftype:ladder drive:0.5 ]",
+  "[ 3/8 → 7/16 | note:41 s:supersaw lpenv:8 cutoff:150 resonance:0.8 ftype:ladder drive:0.5 ]",
+  "[ 7/16 → 1/2 | note:36 s:supersaw lpenv:8 cutoff:150 resonance:0.8 ftype:ladder drive:0.5 ]",
+  "[ 1/2 → 9/16 | note:38 s:supersaw lpenv:8 cutoff:150 resonance:0.8 ftype:ladder drive:0.5 ]",
+  "[ 9/16 → 5/8 | note:38 s:supersaw lpenv:8 cutoff:150 resonance:0.8 ftype:ladder drive:0.5 ]",
+  "[ 5/8 → 11/16 | note:31 s:supersaw lpenv:8 cutoff:150 resonance:0.8 ftype:ladder drive:0.5 ]",
+  "[ 11/16 → 3/4 | note:33 s:supersaw lpenv:8 cutoff:150 resonance:0.8 ftype:ladder drive:0.5 ]",
+  "[ 3/4 → 13/16 | note:40 s:supersaw lpenv:8 cutoff:150 resonance:0.8 ftype:ladder drive:0.5 ]",
+  "[ 13/16 → 7/8 | note:41 s:supersaw lpenv:8 cutoff:150 resonance:0.8 ftype:ladder drive:0.5 ]",
+  "[ 7/8 → 15/16 | note:36 s:supersaw lpenv:8 cutoff:150 resonance:0.8 ftype:ladder drive:0.5 ]",
+  "[ 15/16 → 1/1 | note:38 s:supersaw lpenv:8 cutoff:150 resonance:0.8 ftype:ladder drive:0.5 ]",
+  "[ 1/1 → 17/16 | note:38 s:supersaw lpenv:8 cutoff:150 resonance:0.8 ftype:ladder drive:4 ]",
+  "[ 17/16 → 9/8 | note:31 s:supersaw lpenv:8 cutoff:150 resonance:0.8 ftype:ladder drive:4 ]",
+  "[ 9/8 → 19/16 | note:33 s:supersaw lpenv:8 cutoff:150 resonance:0.8 ftype:ladder drive:4 ]",
+  "[ 19/16 → 5/4 | note:40 s:supersaw lpenv:8 cutoff:150 resonance:0.8 ftype:ladder drive:4 ]",
+  "[ 5/4 → 21/16 | note:41 s:supersaw lpenv:8 cutoff:150 resonance:0.8 ftype:ladder drive:4 ]",
+  "[ 21/16 → 11/8 | note:36 s:supersaw lpenv:8 cutoff:150 resonance:0.8 ftype:ladder drive:4 ]",
+  "[ 11/8 → 23/16 | note:38 s:supersaw lpenv:8 cutoff:150 resonance:0.8 ftype:ladder drive:4 ]",
+  "[ 23/16 → 3/2 | note:38 s:supersaw lpenv:8 cutoff:150 resonance:0.8 ftype:ladder drive:4 ]",
+  "[ 3/2 → 25/16 | note:31 s:supersaw lpenv:8 cutoff:150 resonance:0.8 ftype:ladder drive:4 ]",
+  "[ 25/16 → 13/8 | note:33 s:supersaw lpenv:8 cutoff:150 resonance:0.8 ftype:ladder drive:4 ]",
+  "[ 13/8 → 27/16 | note:40 s:supersaw lpenv:8 cutoff:150 resonance:0.8 ftype:ladder drive:4 ]",
+  "[ 27/16 → 7/4 | note:41 s:supersaw lpenv:8 cutoff:150 resonance:0.8 ftype:ladder drive:4 ]",
+  "[ 7/4 → 29/16 | note:36 s:supersaw lpenv:8 cutoff:150 resonance:0.8 ftype:ladder drive:4 ]",
+  "[ 29/16 → 15/8 | note:38 s:supersaw lpenv:8 cutoff:150 resonance:0.8 ftype:ladder drive:4 ]",
+  "[ 15/8 → 31/16 | note:38 s:supersaw lpenv:8 cutoff:150 resonance:0.8 ftype:ladder drive:4 ]",
+  "[ 31/16 → 2/1 | note:31 s:supersaw lpenv:8 cutoff:150 resonance:0.8 ftype:ladder drive:4 ]",
+  "[ 2/1 → 33/16 | note:33 s:supersaw lpenv:8 cutoff:150 resonance:0.8 ftype:ladder drive:0.5 ]",
+  "[ 33/16 → 17/8 | note:40 s:supersaw lpenv:8 cutoff:150 resonance:0.8 ftype:ladder drive:0.5 ]",
+  "[ 17/8 → 35/16 | note:41 s:supersaw lpenv:8 cutoff:150 resonance:0.8 ftype:ladder drive:0.5 ]",
+  "[ 35/16 → 9/4 | note:36 s:supersaw lpenv:8 cutoff:150 resonance:0.8 ftype:ladder drive:0.5 ]",
+  "[ 9/4 → 37/16 | note:38 s:supersaw lpenv:8 cutoff:150 resonance:0.8 ftype:ladder drive:0.5 ]",
+  "[ 37/16 → 19/8 | note:38 s:supersaw lpenv:8 cutoff:150 resonance:0.8 ftype:ladder drive:0.5 ]",
+  "[ 19/8 → 39/16 | note:31 s:supersaw lpenv:8 cutoff:150 resonance:0.8 ftype:ladder drive:0.5 ]",
+  "[ 39/16 → 5/2 | note:33 s:supersaw lpenv:8 cutoff:150 resonance:0.8 ftype:ladder drive:0.5 ]",
+  "[ 5/2 → 41/16 | note:40 s:supersaw lpenv:8 cutoff:150 resonance:0.8 ftype:ladder drive:0.5 ]",
+  "[ 41/16 → 21/8 | note:41 s:supersaw lpenv:8 cutoff:150 resonance:0.8 ftype:ladder drive:0.5 ]",
+  "[ 21/8 → 43/16 | note:36 s:supersaw lpenv:8 cutoff:150 resonance:0.8 ftype:ladder drive:0.5 ]",
+  "[ 43/16 → 11/4 | note:38 s:supersaw lpenv:8 cutoff:150 resonance:0.8 ftype:ladder drive:0.5 ]",
+  "[ 11/4 → 45/16 | note:38 s:supersaw lpenv:8 cutoff:150 resonance:0.8 ftype:ladder drive:0.5 ]",
+  "[ 45/16 → 23/8 | note:31 s:supersaw lpenv:8 cutoff:150 resonance:0.8 ftype:ladder drive:0.5 ]",
+  "[ 23/8 → 47/16 | note:33 s:supersaw lpenv:8 cutoff:150 resonance:0.8 ftype:ladder drive:0.5 ]",
+  "[ 47/16 → 3/1 | note:40 s:supersaw lpenv:8 cutoff:150 resonance:0.8 ftype:ladder drive:0.5 ]",
+  "[ 3/1 → 49/16 | note:41 s:supersaw lpenv:8 cutoff:150 resonance:0.8 ftype:ladder drive:4 ]",
+  "[ 49/16 → 25/8 | note:36 s:supersaw lpenv:8 cutoff:150 resonance:0.8 ftype:ladder drive:4 ]",
+  "[ 25/8 → 51/16 | note:38 s:supersaw lpenv:8 cutoff:150 resonance:0.8 ftype:ladder drive:4 ]",
+  "[ 51/16 → 13/4 | note:38 s:supersaw lpenv:8 cutoff:150 resonance:0.8 ftype:ladder drive:4 ]",
+  "[ 13/4 → 53/16 | note:31 s:supersaw lpenv:8 cutoff:150 resonance:0.8 ftype:ladder drive:4 ]",
+  "[ 53/16 → 27/8 | note:33 s:supersaw lpenv:8 cutoff:150 resonance:0.8 ftype:ladder drive:4 ]",
+  "[ 27/8 → 55/16 | note:40 s:supersaw lpenv:8 cutoff:150 resonance:0.8 ftype:ladder drive:4 ]",
+  "[ 55/16 → 7/2 | note:41 s:supersaw lpenv:8 cutoff:150 resonance:0.8 ftype:ladder drive:4 ]",
+  "[ 7/2 → 57/16 | note:36 s:supersaw lpenv:8 cutoff:150 resonance:0.8 ftype:ladder drive:4 ]",
+  "[ 57/16 → 29/8 | note:38 s:supersaw lpenv:8 cutoff:150 resonance:0.8 ftype:ladder drive:4 ]",
+  "[ 29/8 → 59/16 | note:38 s:supersaw lpenv:8 cutoff:150 resonance:0.8 ftype:ladder drive:4 ]",
+  "[ 59/16 → 15/4 | note:31 s:supersaw lpenv:8 cutoff:150 resonance:0.8 ftype:ladder drive:4 ]",
+  "[ 15/4 → 61/16 | note:33 s:supersaw lpenv:8 cutoff:150 resonance:0.8 ftype:ladder drive:4 ]",
+  "[ 61/16 → 31/8 | note:40 s:supersaw lpenv:8 cutoff:150 resonance:0.8 ftype:ladder drive:4 ]",
+  "[ 31/8 → 63/16 | note:41 s:supersaw lpenv:8 cutoff:150 resonance:0.8 ftype:ladder drive:4 ]",
+  "[ 63/16 → 4/1 | note:36 s:supersaw lpenv:8 cutoff:150 resonance:0.8 ftype:ladder drive:4 ]",
+]
+`;
+
 exports[`runs examples > example "dry" example index 0 1`] = `
 [
   "[ 0/1 → 1/8 | n:0 s:superpiano room:0.7 dry:0 ]",
@@ -2493,6 +2562,43 @@ exports[`runs examples > example "every" example index 0 1`] = `
 ]
 `;
 
+exports[`runs examples > example "fanchor" example index 0 1`] = `
+[
+  "[ 0/1 → 1/8 | note:f s:sawtooth cutoff:1000 lpenv:8 fanchor:0 ]",
+  "[ 1/8 → 1/4 | note:g s:sawtooth cutoff:1000 lpenv:8 fanchor:0 ]",
+  "[ 1/4 → 3/8 | note:g s:sawtooth cutoff:1000 lpenv:8 fanchor:0 ]",
+  "[ 3/8 → 1/2 | note:c s:sawtooth cutoff:1000 lpenv:8 fanchor:0 ]",
+  "[ 1/2 → 5/8 | note:d s:sawtooth cutoff:1000 lpenv:8 fanchor:0 ]",
+  "[ 5/8 → 3/4 | note:a s:sawtooth cutoff:1000 lpenv:8 fanchor:0 ]",
+  "[ 3/4 → 7/8 | note:a# s:sawtooth cutoff:1000 lpenv:8 fanchor:0 ]",
+  "[ 7/8 → 1/1 | note:f s:sawtooth cutoff:1000 lpenv:8 fanchor:0 ]",
+  "[ 1/1 → 9/8 | note:g s:sawtooth cutoff:1000 lpenv:8 fanchor:0.5 ]",
+  "[ 9/8 → 5/4 | note:g s:sawtooth cutoff:1000 lpenv:8 fanchor:0.5 ]",
+  "[ 5/4 → 11/8 | note:c s:sawtooth cutoff:1000 lpenv:8 fanchor:0.5 ]",
+  "[ 11/8 → 3/2 | note:d s:sawtooth cutoff:1000 lpenv:8 fanchor:0.5 ]",
+  "[ 3/2 → 13/8 | note:a s:sawtooth cutoff:1000 lpenv:8 fanchor:0.5 ]",
+  "[ 13/8 → 7/4 | note:a# s:sawtooth cutoff:1000 lpenv:8 fanchor:0.5 ]",
+  "[ 7/4 → 15/8 | note:f s:sawtooth cutoff:1000 lpenv:8 fanchor:0.5 ]",
+  "[ 15/8 → 2/1 | note:g s:sawtooth cutoff:1000 lpenv:8 fanchor:0.5 ]",
+  "[ 2/1 → 17/8 | note:g s:sawtooth cutoff:1000 lpenv:8 fanchor:1 ]",
+  "[ 17/8 → 9/4 | note:c s:sawtooth cutoff:1000 lpenv:8 fanchor:1 ]",
+  "[ 9/4 → 19/8 | note:d s:sawtooth cutoff:1000 lpenv:8 fanchor:1 ]",
+  "[ 19/8 → 5/2 | note:a s:sawtooth cutoff:1000 lpenv:8 fanchor:1 ]",
+  "[ 5/2 → 21/8 | note:a# s:sawtooth cutoff:1000 lpenv:8 fanchor:1 ]",
+  "[ 21/8 → 11/4 | note:f s:sawtooth cutoff:1000 lpenv:8 fanchor:1 ]",
+  "[ 11/4 → 23/8 | note:g s:sawtooth cutoff:1000 lpenv:8 fanchor:1 ]",
+  "[ 23/8 → 3/1 | note:g s:sawtooth cutoff:1000 lpenv:8 fanchor:1 ]",
+  "[ 3/1 → 25/8 | note:c s:sawtooth cutoff:1000 lpenv:8 fanchor:0 ]",
+  "[ 25/8 → 13/4 | note:d s:sawtooth cutoff:1000 lpenv:8 fanchor:0 ]",
+  "[ 13/4 → 27/8 | note:a s:sawtooth cutoff:1000 lpenv:8 fanchor:0 ]",
+  "[ 27/8 → 7/2 | note:a# s:sawtooth cutoff:1000 lpenv:8 fanchor:0 ]",
+  "[ 7/2 → 29/8 | note:f s:sawtooth cutoff:1000 lpenv:8 fanchor:0 ]",
+  "[ 29/8 → 15/4 | note:g s:sawtooth cutoff:1000 lpenv:8 fanchor:0 ]",
+  "[ 15/4 → 31/8 | note:g s:sawtooth cutoff:1000 lpenv:8 fanchor:0 ]",
+  "[ 31/8 → 4/1 | note:c s:sawtooth cutoff:1000 lpenv:8 fanchor:0 ]",
+]
+`;
+
 exports[`runs examples > example "fast" example index 0 1`] = `
 [
   "[ 0/1 → 1/8 | s:bd ]",
@@ -2877,22 +2983,99 @@ exports[`runs examples > example "fscope" example index 0 1`] = `
 
 exports[`runs examples > example "ftype" example index 0 1`] = `
 [
-  "[ 0/1 → 1/4 | note:c2 s:sawtooth cutoff:500 bpenv:4 ftype:12db ]",
-  "[ 1/4 → 1/2 | note:e2 s:sawtooth cutoff:500 bpenv:4 ftype:12db ]",
-  "[ 1/2 → 3/4 | note:f2 s:sawtooth cutoff:500 bpenv:4 ftype:24db ]",
-  "[ 3/4 → 1/1 | note:g2 s:sawtooth cutoff:500 bpenv:4 ftype:24db ]",
-  "[ 1/1 → 5/4 | note:c2 s:sawtooth cutoff:500 bpenv:4 ftype:12db ]",
-  "[ 5/4 → 3/2 | note:e2 s:sawtooth cutoff:500 bpenv:4 ftype:12db ]",
-  "[ 3/2 → 7/4 | note:f2 s:sawtooth cutoff:500 bpenv:4 ftype:24db ]",
-  "[ 7/4 → 2/1 | note:g2 s:sawtooth cutoff:500 bpenv:4 ftype:24db ]",
-  "[ 2/1 → 9/4 | note:c2 s:sawtooth cutoff:500 bpenv:4 ftype:12db ]",
-  "[ 9/4 → 5/2 | note:e2 s:sawtooth cutoff:500 bpenv:4 ftype:12db ]",
-  "[ 5/2 → 11/4 | note:f2 s:sawtooth cutoff:500 bpenv:4 ftype:24db ]",
-  "[ 11/4 → 3/1 | note:g2 s:sawtooth cutoff:500 bpenv:4 ftype:24db ]",
-  "[ 3/1 → 13/4 | note:c2 s:sawtooth cutoff:500 bpenv:4 ftype:12db ]",
-  "[ 13/4 → 7/2 | note:e2 s:sawtooth cutoff:500 bpenv:4 ftype:12db ]",
-  "[ 7/2 → 15/4 | note:f2 s:sawtooth cutoff:500 bpenv:4 ftype:24db ]",
-  "[ 15/4 → 4/1 | note:g2 s:sawtooth cutoff:500 bpenv:4 ftype:24db ]",
+  "[ 0/1 → 1/8 | note:f s:sawtooth lpenv:4 cutoff:500 ftype:0 resonance:1 ]",
+  "[ 1/8 → 1/4 | note:g s:sawtooth lpenv:4 cutoff:500 ftype:0 resonance:1 ]",
+  "[ 1/4 → 3/8 | note:g s:sawtooth lpenv:4 cutoff:500 ftype:0 resonance:1 ]",
+  "[ 3/8 → 1/2 | note:c s:sawtooth lpenv:4 cutoff:500 ftype:0 resonance:1 ]",
+  "[ 1/2 → 5/8 | note:d s:sawtooth lpenv:4 cutoff:500 ftype:0 resonance:1 ]",
+  "[ 5/8 → 3/4 | note:a s:sawtooth lpenv:4 cutoff:500 ftype:0 resonance:1 ]",
+  "[ 3/4 → 7/8 | note:a# s:sawtooth lpenv:4 cutoff:500 ftype:0 resonance:1 ]",
+  "[ 7/8 → 1/1 | note:f s:sawtooth lpenv:4 cutoff:500 ftype:0 resonance:1 ]",
+  "[ 1/1 → 9/8 | note:g s:sawtooth lpenv:4 cutoff:500 ftype:1 resonance:1 ]",
+  "[ 9/8 → 5/4 | note:g s:sawtooth lpenv:4 cutoff:500 ftype:1 resonance:1 ]",
+  "[ 5/4 → 11/8 | note:c s:sawtooth lpenv:4 cutoff:500 ftype:1 resonance:1 ]",
+  "[ 11/8 → 3/2 | note:d s:sawtooth lpenv:4 cutoff:500 ftype:1 resonance:1 ]",
+  "[ 3/2 → 13/8 | note:a s:sawtooth lpenv:4 cutoff:500 ftype:1 resonance:1 ]",
+  "[ 13/8 → 7/4 | note:a# s:sawtooth lpenv:4 cutoff:500 ftype:1 resonance:1 ]",
+  "[ 7/4 → 15/8 | note:f s:sawtooth lpenv:4 cutoff:500 ftype:1 resonance:1 ]",
+  "[ 15/8 → 2/1 | note:g s:sawtooth lpenv:4 cutoff:500 ftype:1 resonance:1 ]",
+  "[ 2/1 → 17/8 | note:g s:sawtooth lpenv:4 cutoff:500 ftype:2 resonance:1 ]",
+  "[ 17/8 → 9/4 | note:c s:sawtooth lpenv:4 cutoff:500 ftype:2 resonance:1 ]",
+  "[ 9/4 → 19/8 | note:d s:sawtooth lpenv:4 cutoff:500 ftype:2 resonance:1 ]",
+  "[ 19/8 → 5/2 | note:a s:sawtooth lpenv:4 cutoff:500 ftype:2 resonance:1 ]",
+  "[ 5/2 → 21/8 | note:a# s:sawtooth lpenv:4 cutoff:500 ftype:2 resonance:1 ]",
+  "[ 21/8 → 11/4 | note:f s:sawtooth lpenv:4 cutoff:500 ftype:2 resonance:1 ]",
+  "[ 11/4 → 23/8 | note:g s:sawtooth lpenv:4 cutoff:500 ftype:2 resonance:1 ]",
+  "[ 23/8 → 3/1 | note:g s:sawtooth lpenv:4 cutoff:500 ftype:2 resonance:1 ]",
+  "[ 3/1 → 25/8 | note:c s:sawtooth lpenv:4 cutoff:500 ftype:0 resonance:1 ]",
+  "[ 25/8 → 13/4 | note:d s:sawtooth lpenv:4 cutoff:500 ftype:0 resonance:1 ]",
+  "[ 13/4 → 27/8 | note:a s:sawtooth lpenv:4 cutoff:500 ftype:0 resonance:1 ]",
+  "[ 27/8 → 7/2 | note:a# s:sawtooth lpenv:4 cutoff:500 ftype:0 resonance:1 ]",
+  "[ 7/2 → 29/8 | note:f s:sawtooth lpenv:4 cutoff:500 ftype:0 resonance:1 ]",
+  "[ 29/8 → 15/4 | note:g s:sawtooth lpenv:4 cutoff:500 ftype:0 resonance:1 ]",
+  "[ 15/4 → 31/8 | note:g s:sawtooth lpenv:4 cutoff:500 ftype:0 resonance:1 ]",
+  "[ 31/8 → 4/1 | note:c s:sawtooth lpenv:4 cutoff:500 ftype:0 resonance:1 ]",
+]
+`;
+
+exports[`runs examples > example "ftype" example index 1 1`] = `
+[
+  "[ 0/1 → 1/14 | note:c s:sawtooth cutoff:200 fanchor:0 lpenv:3 resonance:1 ftype:ladder ]",
+  "[ 1/14 → 1/7 | note:f s:sawtooth cutoff:200 fanchor:0 lpenv:3 resonance:1 ftype:ladder ]",
+  "[ 1/7 → 3/14 | note:g s:sawtooth cutoff:200 fanchor:0 lpenv:3 resonance:1 ftype:ladder ]",
+  "[ 3/14 → 2/7 | note:g s:sawtooth cutoff:200 fanchor:0 lpenv:3 resonance:1 ftype:ladder ]",
+  "[ 2/7 → 5/14 | note:a s:sawtooth cutoff:200 fanchor:0 lpenv:3 resonance:1 ftype:ladder ]",
+  "[ 5/14 → 3/7 | note:c s:sawtooth cutoff:200 fanchor:0 lpenv:3 resonance:1 ftype:ladder ]",
+  "[ 3/7 → 1/2 | note:d4 s:sawtooth cutoff:200 fanchor:0 lpenv:3 resonance:1 ftype:ladder ]",
+  "[ 1/2 → 4/7 | note:c s:sawtooth cutoff:200 fanchor:0 lpenv:3 resonance:1 ftype:ladder ]",
+  "[ 4/7 → 9/14 | note:f s:sawtooth cutoff:200 fanchor:0 lpenv:3 resonance:1 ftype:ladder ]",
+  "[ 9/14 → 5/7 | note:g s:sawtooth cutoff:200 fanchor:0 lpenv:3 resonance:1 ftype:ladder ]",
+  "[ 5/7 → 11/14 | note:g s:sawtooth cutoff:200 fanchor:0 lpenv:3 resonance:1 ftype:ladder ]",
+  "[ 11/14 → 6/7 | note:a s:sawtooth cutoff:200 fanchor:0 lpenv:3 resonance:1 ftype:ladder ]",
+  "[ 6/7 → 13/14 | note:c s:sawtooth cutoff:200 fanchor:0 lpenv:3 resonance:1 ftype:ladder ]",
+  "[ 13/14 → 1/1 | note:d4 s:sawtooth cutoff:200 fanchor:0 lpenv:3 resonance:1 ftype:ladder ]",
+  "[ 1/1 → 15/14 | note:c s:sawtooth cutoff:200 fanchor:0 lpenv:3 resonance:1 ftype:12db ]",
+  "[ 15/14 → 8/7 | note:f s:sawtooth cutoff:200 fanchor:0 lpenv:3 resonance:1 ftype:12db ]",
+  "[ 8/7 → 17/14 | note:g s:sawtooth cutoff:200 fanchor:0 lpenv:3 resonance:1 ftype:12db ]",
+  "[ 17/14 → 9/7 | note:g s:sawtooth cutoff:200 fanchor:0 lpenv:3 resonance:1 ftype:12db ]",
+  "[ 9/7 → 19/14 | note:a s:sawtooth cutoff:200 fanchor:0 lpenv:3 resonance:1 ftype:12db ]",
+  "[ 19/14 → 10/7 | note:c s:sawtooth cutoff:200 fanchor:0 lpenv:3 resonance:1 ftype:12db ]",
+  "[ 10/7 → 3/2 | note:d4 s:sawtooth cutoff:200 fanchor:0 lpenv:3 resonance:1 ftype:12db ]",
+  "[ 3/2 → 11/7 | note:c s:sawtooth cutoff:200 fanchor:0 lpenv:3 resonance:1 ftype:12db ]",
+  "[ 11/7 → 23/14 | note:f s:sawtooth cutoff:200 fanchor:0 lpenv:3 resonance:1 ftype:12db ]",
+  "[ 23/14 → 12/7 | note:g s:sawtooth cutoff:200 fanchor:0 lpenv:3 resonance:1 ftype:12db ]",
+  "[ 12/7 → 25/14 | note:g s:sawtooth cutoff:200 fanchor:0 lpenv:3 resonance:1 ftype:12db ]",
+  "[ 25/14 → 13/7 | note:a s:sawtooth cutoff:200 fanchor:0 lpenv:3 resonance:1 ftype:12db ]",
+  "[ 13/7 → 27/14 | note:c s:sawtooth cutoff:200 fanchor:0 lpenv:3 resonance:1 ftype:12db ]",
+  "[ 27/14 → 2/1 | note:d4 s:sawtooth cutoff:200 fanchor:0 lpenv:3 resonance:1 ftype:12db ]",
+  "[ 2/1 → 29/14 | note:c s:sawtooth cutoff:200 fanchor:0 lpenv:3 resonance:1 ftype:24db ]",
+  "[ 29/14 → 15/7 | note:f s:sawtooth cutoff:200 fanchor:0 lpenv:3 resonance:1 ftype:24db ]",
+  "[ 15/7 → 31/14 | note:g s:sawtooth cutoff:200 fanchor:0 lpenv:3 resonance:1 ftype:24db ]",
+  "[ 31/14 → 16/7 | note:g s:sawtooth cutoff:200 fanchor:0 lpenv:3 resonance:1 ftype:24db ]",
+  "[ 16/7 → 33/14 | note:a s:sawtooth cutoff:200 fanchor:0 lpenv:3 resonance:1 ftype:24db ]",
+  "[ 33/14 → 17/7 | note:c s:sawtooth cutoff:200 fanchor:0 lpenv:3 resonance:1 ftype:24db ]",
+  "[ 17/7 → 5/2 | note:d4 s:sawtooth cutoff:200 fanchor:0 lpenv:3 resonance:1 ftype:24db ]",
+  "[ 5/2 → 18/7 | note:c s:sawtooth cutoff:200 fanchor:0 lpenv:3 resonance:1 ftype:24db ]",
+  "[ 18/7 → 37/14 | note:f s:sawtooth cutoff:200 fanchor:0 lpenv:3 resonance:1 ftype:24db ]",
+  "[ 37/14 → 19/7 | note:g s:sawtooth cutoff:200 fanchor:0 lpenv:3 resonance:1 ftype:24db ]",
+  "[ 19/7 → 39/14 | note:g s:sawtooth cutoff:200 fanchor:0 lpenv:3 resonance:1 ftype:24db ]",
+  "[ 39/14 → 20/7 | note:a s:sawtooth cutoff:200 fanchor:0 lpenv:3 resonance:1 ftype:24db ]",
+  "[ 20/7 → 41/14 | note:c s:sawtooth cutoff:200 fanchor:0 lpenv:3 resonance:1 ftype:24db ]",
+  "[ 41/14 → 3/1 | note:d4 s:sawtooth cutoff:200 fanchor:0 lpenv:3 resonance:1 ftype:24db ]",
+  "[ 3/1 → 43/14 | note:c s:sawtooth cutoff:200 fanchor:0 lpenv:3 resonance:1 ftype:ladder ]",
+  "[ 43/14 → 22/7 | note:f s:sawtooth cutoff:200 fanchor:0 lpenv:3 resonance:1 ftype:ladder ]",
+  "[ 22/7 → 45/14 | note:g s:sawtooth cutoff:200 fanchor:0 lpenv:3 resonance:1 ftype:ladder ]",
+  "[ 45/14 → 23/7 | note:g s:sawtooth cutoff:200 fanchor:0 lpenv:3 resonance:1 ftype:ladder ]",
+  "[ 23/7 → 47/14 | note:a s:sawtooth cutoff:200 fanchor:0 lpenv:3 resonance:1 ftype:ladder ]",
+  "[ 47/14 → 24/7 | note:c s:sawtooth cutoff:200 fanchor:0 lpenv:3 resonance:1 ftype:ladder ]",
+  "[ 24/7 → 7/2 | note:d4 s:sawtooth cutoff:200 fanchor:0 lpenv:3 resonance:1 ftype:ladder ]",
+  "[ 7/2 → 25/7 | note:c s:sawtooth cutoff:200 fanchor:0 lpenv:3 resonance:1 ftype:ladder ]",
+  "[ 25/7 → 51/14 | note:f s:sawtooth cutoff:200 fanchor:0 lpenv:3 resonance:1 ftype:ladder ]",
+  "[ 51/14 → 26/7 | note:g s:sawtooth cutoff:200 fanchor:0 lpenv:3 resonance:1 ftype:ladder ]",
+  "[ 26/7 → 53/14 | note:g s:sawtooth cutoff:200 fanchor:0 lpenv:3 resonance:1 ftype:ladder ]",
+  "[ 53/14 → 27/7 | note:a s:sawtooth cutoff:200 fanchor:0 lpenv:3 resonance:1 ftype:ladder ]",
+  "[ 27/7 → 55/14 | note:c s:sawtooth cutoff:200 fanchor:0 lpenv:3 resonance:1 ftype:ladder ]",
+  "[ 55/14 → 4/1 | note:d4 s:sawtooth cutoff:200 fanchor:0 lpenv:3 resonance:1 ftype:ladder ]",
 ]
 `;
 
@@ -3877,64 +4060,64 @@ exports[`runs examples > example "loopEnd" example index 0 1`] = `
 
 exports[`runs examples > example "lpattack" example index 0 1`] = `
 [
-  "[ 0/1 → 1/4 | note:c2 s:sawtooth cutoff:500 lpattack:0.5 lpenv:4 ]",
-  "[ 1/4 → 1/2 | note:e2 s:sawtooth cutoff:500 lpattack:0.5 lpenv:4 ]",
-  "[ 1/2 → 3/4 | note:f2 s:sawtooth cutoff:500 lpattack:0.5 lpenv:4 ]",
-  "[ 3/4 → 1/1 | note:g2 s:sawtooth cutoff:500 lpattack:0.5 lpenv:4 ]",
-  "[ 1/1 → 5/4 | note:c2 s:sawtooth cutoff:500 lpattack:0.5 lpenv:4 ]",
-  "[ 5/4 → 3/2 | note:e2 s:sawtooth cutoff:500 lpattack:0.5 lpenv:4 ]",
-  "[ 3/2 → 7/4 | note:f2 s:sawtooth cutoff:500 lpattack:0.5 lpenv:4 ]",
-  "[ 7/4 → 2/1 | note:g2 s:sawtooth cutoff:500 lpattack:0.5 lpenv:4 ]",
-  "[ 2/1 → 9/4 | note:c2 s:sawtooth cutoff:500 lpattack:0.5 lpenv:4 ]",
-  "[ 9/4 → 5/2 | note:e2 s:sawtooth cutoff:500 lpattack:0.5 lpenv:4 ]",
-  "[ 5/2 → 11/4 | note:f2 s:sawtooth cutoff:500 lpattack:0.5 lpenv:4 ]",
-  "[ 11/4 → 3/1 | note:g2 s:sawtooth cutoff:500 lpattack:0.5 lpenv:4 ]",
-  "[ 3/1 → 13/4 | note:c2 s:sawtooth cutoff:500 lpattack:0.5 lpenv:4 ]",
-  "[ 13/4 → 7/2 | note:e2 s:sawtooth cutoff:500 lpattack:0.5 lpenv:4 ]",
-  "[ 7/2 → 15/4 | note:f2 s:sawtooth cutoff:500 lpattack:0.5 lpenv:4 ]",
-  "[ 15/4 → 4/1 | note:g2 s:sawtooth cutoff:500 lpattack:0.5 lpenv:4 ]",
+  "[ 0/1 → 1/4 | note:c2 s:sawtooth cutoff:300 lpattack:0.5 lpenv:4 ]",
+  "[ 1/4 → 1/2 | note:e2 s:sawtooth cutoff:300 lpattack:0.5 lpenv:4 ]",
+  "[ 1/2 → 3/4 | note:f2 s:sawtooth cutoff:300 lpattack:0.5 lpenv:4 ]",
+  "[ 3/4 → 1/1 | note:g2 s:sawtooth cutoff:300 lpattack:0.5 lpenv:4 ]",
+  "[ 1/1 → 5/4 | note:c2 s:sawtooth cutoff:300 lpattack:0.5 lpenv:4 ]",
+  "[ 5/4 → 3/2 | note:e2 s:sawtooth cutoff:300 lpattack:0.5 lpenv:4 ]",
+  "[ 3/2 → 7/4 | note:f2 s:sawtooth cutoff:300 lpattack:0.5 lpenv:4 ]",
+  "[ 7/4 → 2/1 | note:g2 s:sawtooth cutoff:300 lpattack:0.5 lpenv:4 ]",
+  "[ 2/1 → 9/4 | note:c2 s:sawtooth cutoff:300 lpattack:0.5 lpenv:4 ]",
+  "[ 9/4 → 5/2 | note:e2 s:sawtooth cutoff:300 lpattack:0.5 lpenv:4 ]",
+  "[ 5/2 → 11/4 | note:f2 s:sawtooth cutoff:300 lpattack:0.5 lpenv:4 ]",
+  "[ 11/4 → 3/1 | note:g2 s:sawtooth cutoff:300 lpattack:0.5 lpenv:4 ]",
+  "[ 3/1 → 13/4 | note:c2 s:sawtooth cutoff:300 lpattack:0.5 lpenv:4 ]",
+  "[ 13/4 → 7/2 | note:e2 s:sawtooth cutoff:300 lpattack:0.5 lpenv:4 ]",
+  "[ 7/2 → 15/4 | note:f2 s:sawtooth cutoff:300 lpattack:0.5 lpenv:4 ]",
+  "[ 15/4 → 4/1 | note:g2 s:sawtooth cutoff:300 lpattack:0.5 lpenv:4 ]",
 ]
 `;
 
 exports[`runs examples > example "lpdecay" example index 0 1`] = `
 [
-  "[ 0/1 → 1/4 | note:c2 s:sawtooth cutoff:500 lpdecay:0.5 lpsustain:0.2 lpenv:4 ]",
-  "[ 1/4 → 1/2 | note:e2 s:sawtooth cutoff:500 lpdecay:0.5 lpsustain:0.2 lpenv:4 ]",
-  "[ 1/2 → 3/4 | note:f2 s:sawtooth cutoff:500 lpdecay:0.5 lpsustain:0.2 lpenv:4 ]",
-  "[ 3/4 → 1/1 | note:g2 s:sawtooth cutoff:500 lpdecay:0.5 lpsustain:0.2 lpenv:4 ]",
-  "[ 1/1 → 5/4 | note:c2 s:sawtooth cutoff:500 lpdecay:0.5 lpsustain:0.2 lpenv:4 ]",
-  "[ 5/4 → 3/2 | note:e2 s:sawtooth cutoff:500 lpdecay:0.5 lpsustain:0.2 lpenv:4 ]",
-  "[ 3/2 → 7/4 | note:f2 s:sawtooth cutoff:500 lpdecay:0.5 lpsustain:0.2 lpenv:4 ]",
-  "[ 7/4 → 2/1 | note:g2 s:sawtooth cutoff:500 lpdecay:0.5 lpsustain:0.2 lpenv:4 ]",
-  "[ 2/1 → 9/4 | note:c2 s:sawtooth cutoff:500 lpdecay:0.5 lpsustain:0.2 lpenv:4 ]",
-  "[ 9/4 → 5/2 | note:e2 s:sawtooth cutoff:500 lpdecay:0.5 lpsustain:0.2 lpenv:4 ]",
-  "[ 5/2 → 11/4 | note:f2 s:sawtooth cutoff:500 lpdecay:0.5 lpsustain:0.2 lpenv:4 ]",
-  "[ 11/4 → 3/1 | note:g2 s:sawtooth cutoff:500 lpdecay:0.5 lpsustain:0.2 lpenv:4 ]",
-  "[ 3/1 → 13/4 | note:c2 s:sawtooth cutoff:500 lpdecay:0.5 lpsustain:0.2 lpenv:4 ]",
-  "[ 13/4 → 7/2 | note:e2 s:sawtooth cutoff:500 lpdecay:0.5 lpsustain:0.2 lpenv:4 ]",
-  "[ 7/2 → 15/4 | note:f2 s:sawtooth cutoff:500 lpdecay:0.5 lpsustain:0.2 lpenv:4 ]",
-  "[ 15/4 → 4/1 | note:g2 s:sawtooth cutoff:500 lpdecay:0.5 lpsustain:0.2 lpenv:4 ]",
+  "[ 0/1 → 1/4 | note:c2 s:sawtooth cutoff:300 lpdecay:0.5 lpenv:4 ]",
+  "[ 1/4 → 1/2 | note:e2 s:sawtooth cutoff:300 lpdecay:0.5 lpenv:4 ]",
+  "[ 1/2 → 3/4 | note:f2 s:sawtooth cutoff:300 lpdecay:0.5 lpenv:4 ]",
+  "[ 3/4 → 1/1 | note:g2 s:sawtooth cutoff:300 lpdecay:0.5 lpenv:4 ]",
+  "[ 1/1 → 5/4 | note:c2 s:sawtooth cutoff:300 lpdecay:0.5 lpenv:4 ]",
+  "[ 5/4 → 3/2 | note:e2 s:sawtooth cutoff:300 lpdecay:0.5 lpenv:4 ]",
+  "[ 3/2 → 7/4 | note:f2 s:sawtooth cutoff:300 lpdecay:0.5 lpenv:4 ]",
+  "[ 7/4 → 2/1 | note:g2 s:sawtooth cutoff:300 lpdecay:0.5 lpenv:4 ]",
+  "[ 2/1 → 9/4 | note:c2 s:sawtooth cutoff:300 lpdecay:0.5 lpenv:4 ]",
+  "[ 9/4 → 5/2 | note:e2 s:sawtooth cutoff:300 lpdecay:0.5 lpenv:4 ]",
+  "[ 5/2 → 11/4 | note:f2 s:sawtooth cutoff:300 lpdecay:0.5 lpenv:4 ]",
+  "[ 11/4 → 3/1 | note:g2 s:sawtooth cutoff:300 lpdecay:0.5 lpenv:4 ]",
+  "[ 3/1 → 13/4 | note:c2 s:sawtooth cutoff:300 lpdecay:0.5 lpenv:4 ]",
+  "[ 13/4 → 7/2 | note:e2 s:sawtooth cutoff:300 lpdecay:0.5 lpenv:4 ]",
+  "[ 7/2 → 15/4 | note:f2 s:sawtooth cutoff:300 lpdecay:0.5 lpenv:4 ]",
+  "[ 15/4 → 4/1 | note:g2 s:sawtooth cutoff:300 lpdecay:0.5 lpenv:4 ]",
 ]
 `;
 
 exports[`runs examples > example "lpenv" example index 0 1`] = `
 [
-  "[ 0/1 → 1/4 | note:c2 s:sawtooth cutoff:500 lpattack:0.5 lpenv:4 ]",
-  "[ 1/4 → 1/2 | note:e2 s:sawtooth cutoff:500 lpattack:0.5 lpenv:4 ]",
-  "[ 1/2 → 3/4 | note:f2 s:sawtooth cutoff:500 lpattack:0.5 lpenv:4 ]",
-  "[ 3/4 → 1/1 | note:g2 s:sawtooth cutoff:500 lpattack:0.5 lpenv:4 ]",
-  "[ 1/1 → 5/4 | note:c2 s:sawtooth cutoff:500 lpattack:0.5 lpenv:4 ]",
-  "[ 5/4 → 3/2 | note:e2 s:sawtooth cutoff:500 lpattack:0.5 lpenv:4 ]",
-  "[ 3/2 → 7/4 | note:f2 s:sawtooth cutoff:500 lpattack:0.5 lpenv:4 ]",
-  "[ 7/4 → 2/1 | note:g2 s:sawtooth cutoff:500 lpattack:0.5 lpenv:4 ]",
-  "[ 2/1 → 9/4 | note:c2 s:sawtooth cutoff:500 lpattack:0.5 lpenv:4 ]",
-  "[ 9/4 → 5/2 | note:e2 s:sawtooth cutoff:500 lpattack:0.5 lpenv:4 ]",
-  "[ 5/2 → 11/4 | note:f2 s:sawtooth cutoff:500 lpattack:0.5 lpenv:4 ]",
-  "[ 11/4 → 3/1 | note:g2 s:sawtooth cutoff:500 lpattack:0.5 lpenv:4 ]",
-  "[ 3/1 → 13/4 | note:c2 s:sawtooth cutoff:500 lpattack:0.5 lpenv:4 ]",
-  "[ 13/4 → 7/2 | note:e2 s:sawtooth cutoff:500 lpattack:0.5 lpenv:4 ]",
-  "[ 7/2 → 15/4 | note:f2 s:sawtooth cutoff:500 lpattack:0.5 lpenv:4 ]",
-  "[ 15/4 → 4/1 | note:g2 s:sawtooth cutoff:500 lpattack:0.5 lpenv:4 ]",
+  "[ 0/1 → 1/4 | note:c2 s:sawtooth cutoff:300 lpattack:0.5 lpenv:4 ]",
+  "[ 1/4 → 1/2 | note:e2 s:sawtooth cutoff:300 lpattack:0.5 lpenv:4 ]",
+  "[ 1/2 → 3/4 | note:f2 s:sawtooth cutoff:300 lpattack:0.5 lpenv:4 ]",
+  "[ 3/4 → 1/1 | note:g2 s:sawtooth cutoff:300 lpattack:0.5 lpenv:4 ]",
+  "[ 1/1 → 5/4 | note:c2 s:sawtooth cutoff:300 lpattack:0.5 lpenv:4 ]",
+  "[ 5/4 → 3/2 | note:e2 s:sawtooth cutoff:300 lpattack:0.5 lpenv:4 ]",
+  "[ 3/2 → 7/4 | note:f2 s:sawtooth cutoff:300 lpattack:0.5 lpenv:4 ]",
+  "[ 7/4 → 2/1 | note:g2 s:sawtooth cutoff:300 lpattack:0.5 lpenv:4 ]",
+  "[ 2/1 → 9/4 | note:c2 s:sawtooth cutoff:300 lpattack:0.5 lpenv:4 ]",
+  "[ 9/4 → 5/2 | note:e2 s:sawtooth cutoff:300 lpattack:0.5 lpenv:4 ]",
+  "[ 5/2 → 11/4 | note:f2 s:sawtooth cutoff:300 lpattack:0.5 lpenv:4 ]",
+  "[ 11/4 → 3/1 | note:g2 s:sawtooth cutoff:300 lpattack:0.5 lpenv:4 ]",
+  "[ 3/1 → 13/4 | note:c2 s:sawtooth cutoff:300 lpattack:0.5 lpenv:4 ]",
+  "[ 13/4 → 7/2 | note:e2 s:sawtooth cutoff:300 lpattack:0.5 lpenv:4 ]",
+  "[ 7/2 → 15/4 | note:f2 s:sawtooth cutoff:300 lpattack:0.5 lpenv:4 ]",
+  "[ 15/4 → 4/1 | note:g2 s:sawtooth cutoff:300 lpattack:0.5 lpenv:4 ]",
 ]
 `;
 
@@ -4107,43 +4290,43 @@ exports[`runs examples > example "lpq" example index 0 1`] = `
 
 exports[`runs examples > example "lprelease" example index 0 1`] = `
 [
-  "[ 0/1 → 1/4 | note:c2 s:sawtooth clip:0.5 cutoff:500 lpenv:4 lprelease:0.5 release:0.5 ]",
-  "[ 1/4 → 1/2 | note:e2 s:sawtooth clip:0.5 cutoff:500 lpenv:4 lprelease:0.5 release:0.5 ]",
-  "[ 1/2 → 3/4 | note:f2 s:sawtooth clip:0.5 cutoff:500 lpenv:4 lprelease:0.5 release:0.5 ]",
-  "[ 3/4 → 1/1 | note:g2 s:sawtooth clip:0.5 cutoff:500 lpenv:4 lprelease:0.5 release:0.5 ]",
-  "[ 1/1 → 5/4 | note:c2 s:sawtooth clip:0.5 cutoff:500 lpenv:4 lprelease:0.5 release:0.5 ]",
-  "[ 5/4 → 3/2 | note:e2 s:sawtooth clip:0.5 cutoff:500 lpenv:4 lprelease:0.5 release:0.5 ]",
-  "[ 3/2 → 7/4 | note:f2 s:sawtooth clip:0.5 cutoff:500 lpenv:4 lprelease:0.5 release:0.5 ]",
-  "[ 7/4 → 2/1 | note:g2 s:sawtooth clip:0.5 cutoff:500 lpenv:4 lprelease:0.5 release:0.5 ]",
-  "[ 2/1 → 9/4 | note:c2 s:sawtooth clip:0.5 cutoff:500 lpenv:4 lprelease:0.5 release:0.5 ]",
-  "[ 9/4 → 5/2 | note:e2 s:sawtooth clip:0.5 cutoff:500 lpenv:4 lprelease:0.5 release:0.5 ]",
-  "[ 5/2 → 11/4 | note:f2 s:sawtooth clip:0.5 cutoff:500 lpenv:4 lprelease:0.5 release:0.5 ]",
-  "[ 11/4 → 3/1 | note:g2 s:sawtooth clip:0.5 cutoff:500 lpenv:4 lprelease:0.5 release:0.5 ]",
-  "[ 3/1 → 13/4 | note:c2 s:sawtooth clip:0.5 cutoff:500 lpenv:4 lprelease:0.5 release:0.5 ]",
-  "[ 13/4 → 7/2 | note:e2 s:sawtooth clip:0.5 cutoff:500 lpenv:4 lprelease:0.5 release:0.5 ]",
-  "[ 7/2 → 15/4 | note:f2 s:sawtooth clip:0.5 cutoff:500 lpenv:4 lprelease:0.5 release:0.5 ]",
-  "[ 15/4 → 4/1 | note:g2 s:sawtooth clip:0.5 cutoff:500 lpenv:4 lprelease:0.5 release:0.5 ]",
+  "[ 0/1 → 1/4 | note:c2 s:sawtooth clip:0.5 cutoff:300 lpenv:4 lprelease:0.5 release:0.5 ]",
+  "[ 1/4 → 1/2 | note:e2 s:sawtooth clip:0.5 cutoff:300 lpenv:4 lprelease:0.5 release:0.5 ]",
+  "[ 1/2 → 3/4 | note:f2 s:sawtooth clip:0.5 cutoff:300 lpenv:4 lprelease:0.5 release:0.5 ]",
+  "[ 3/4 → 1/1 | note:g2 s:sawtooth clip:0.5 cutoff:300 lpenv:4 lprelease:0.5 release:0.5 ]",
+  "[ 1/1 → 5/4 | note:c2 s:sawtooth clip:0.5 cutoff:300 lpenv:4 lprelease:0.5 release:0.5 ]",
+  "[ 5/4 → 3/2 | note:e2 s:sawtooth clip:0.5 cutoff:300 lpenv:4 lprelease:0.5 release:0.5 ]",
+  "[ 3/2 → 7/4 | note:f2 s:sawtooth clip:0.5 cutoff:300 lpenv:4 lprelease:0.5 release:0.5 ]",
+  "[ 7/4 → 2/1 | note:g2 s:sawtooth clip:0.5 cutoff:300 lpenv:4 lprelease:0.5 release:0.5 ]",
+  "[ 2/1 → 9/4 | note:c2 s:sawtooth clip:0.5 cutoff:300 lpenv:4 lprelease:0.5 release:0.5 ]",
+  "[ 9/4 → 5/2 | note:e2 s:sawtooth clip:0.5 cutoff:300 lpenv:4 lprelease:0.5 release:0.5 ]",
+  "[ 5/2 → 11/4 | note:f2 s:sawtooth clip:0.5 cutoff:300 lpenv:4 lprelease:0.5 release:0.5 ]",
+  "[ 11/4 → 3/1 | note:g2 s:sawtooth clip:0.5 cutoff:300 lpenv:4 lprelease:0.5 release:0.5 ]",
+  "[ 3/1 → 13/4 | note:c2 s:sawtooth clip:0.5 cutoff:300 lpenv:4 lprelease:0.5 release:0.5 ]",
+  "[ 13/4 → 7/2 | note:e2 s:sawtooth clip:0.5 cutoff:300 lpenv:4 lprelease:0.5 release:0.5 ]",
+  "[ 7/2 → 15/4 | note:f2 s:sawtooth clip:0.5 cutoff:300 lpenv:4 lprelease:0.5 release:0.5 ]",
+  "[ 15/4 → 4/1 | note:g2 s:sawtooth clip:0.5 cutoff:300 lpenv:4 lprelease:0.5 release:0.5 ]",
 ]
 `;
 
 exports[`runs examples > example "lpsustain" example index 0 1`] = `
 [
-  "[ 0/1 → 1/4 | note:c2 s:sawtooth cutoff:500 lpdecay:0.5 lpsustain:0 lpenv:4 ]",
-  "[ 1/4 → 1/2 | note:e2 s:sawtooth cutoff:500 lpdecay:0.5 lpsustain:0 lpenv:4 ]",
-  "[ 1/2 → 3/4 | note:f2 s:sawtooth cutoff:500 lpdecay:0.5 lpsustain:0 lpenv:4 ]",
-  "[ 3/4 → 1/1 | note:g2 s:sawtooth cutoff:500 lpdecay:0.5 lpsustain:0 lpenv:4 ]",
-  "[ 1/1 → 5/4 | note:c2 s:sawtooth cutoff:500 lpdecay:0.5 lpsustain:0 lpenv:4 ]",
-  "[ 5/4 → 3/2 | note:e2 s:sawtooth cutoff:500 lpdecay:0.5 lpsustain:0 lpenv:4 ]",
-  "[ 3/2 → 7/4 | note:f2 s:sawtooth cutoff:500 lpdecay:0.5 lpsustain:0 lpenv:4 ]",
-  "[ 7/4 → 2/1 | note:g2 s:sawtooth cutoff:500 lpdecay:0.5 lpsustain:0 lpenv:4 ]",
-  "[ 2/1 → 9/4 | note:c2 s:sawtooth cutoff:500 lpdecay:0.5 lpsustain:0 lpenv:4 ]",
-  "[ 9/4 → 5/2 | note:e2 s:sawtooth cutoff:500 lpdecay:0.5 lpsustain:0 lpenv:4 ]",
-  "[ 5/2 → 11/4 | note:f2 s:sawtooth cutoff:500 lpdecay:0.5 lpsustain:0 lpenv:4 ]",
-  "[ 11/4 → 3/1 | note:g2 s:sawtooth cutoff:500 lpdecay:0.5 lpsustain:0 lpenv:4 ]",
-  "[ 3/1 → 13/4 | note:c2 s:sawtooth cutoff:500 lpdecay:0.5 lpsustain:0 lpenv:4 ]",
-  "[ 13/4 → 7/2 | note:e2 s:sawtooth cutoff:500 lpdecay:0.5 lpsustain:0 lpenv:4 ]",
-  "[ 7/2 → 15/4 | note:f2 s:sawtooth cutoff:500 lpdecay:0.5 lpsustain:0 lpenv:4 ]",
-  "[ 15/4 → 4/1 | note:g2 s:sawtooth cutoff:500 lpdecay:0.5 lpsustain:0 lpenv:4 ]",
+  "[ 0/1 → 1/4 | note:c2 s:sawtooth cutoff:300 lpdecay:0.5 lpsustain:0 lpenv:4 ]",
+  "[ 1/4 → 1/2 | note:e2 s:sawtooth cutoff:300 lpdecay:0.5 lpsustain:0 lpenv:4 ]",
+  "[ 1/2 → 3/4 | note:f2 s:sawtooth cutoff:300 lpdecay:0.5 lpsustain:0 lpenv:4 ]",
+  "[ 3/4 → 1/1 | note:g2 s:sawtooth cutoff:300 lpdecay:0.5 lpsustain:0 lpenv:4 ]",
+  "[ 1/1 → 5/4 | note:c2 s:sawtooth cutoff:300 lpdecay:0.5 lpsustain:0 lpenv:4 ]",
+  "[ 5/4 → 3/2 | note:e2 s:sawtooth cutoff:300 lpdecay:0.5 lpsustain:0 lpenv:4 ]",
+  "[ 3/2 → 7/4 | note:f2 s:sawtooth cutoff:300 lpdecay:0.5 lpsustain:0 lpenv:4 ]",
+  "[ 7/4 → 2/1 | note:g2 s:sawtooth cutoff:300 lpdecay:0.5 lpsustain:0 lpenv:4 ]",
+  "[ 2/1 → 9/4 | note:c2 s:sawtooth cutoff:300 lpdecay:0.5 lpsustain:0 lpenv:4 ]",
+  "[ 9/4 → 5/2 | note:e2 s:sawtooth cutoff:300 lpdecay:0.5 lpsustain:0 lpenv:4 ]",
+  "[ 5/2 → 11/4 | note:f2 s:sawtooth cutoff:300 lpdecay:0.5 lpsustain:0 lpenv:4 ]",
+  "[ 11/4 → 3/1 | note:g2 s:sawtooth cutoff:300 lpdecay:0.5 lpsustain:0 lpenv:4 ]",
+  "[ 3/1 → 13/4 | note:c2 s:sawtooth cutoff:300 lpdecay:0.5 lpsustain:0 lpenv:4 ]",
+  "[ 13/4 → 7/2 | note:e2 s:sawtooth cutoff:300 lpdecay:0.5 lpsustain:0 lpenv:4 ]",
+  "[ 7/2 → 15/4 | note:f2 s:sawtooth cutoff:300 lpdecay:0.5 lpsustain:0 lpenv:4 ]",
+  "[ 15/4 → 4/1 | note:g2 s:sawtooth cutoff:300 lpdecay:0.5 lpsustain:0 lpenv:4 ]",
 ]
 `;
 
@@ -4204,6 +4387,48 @@ exports[`runs examples > example "mask" example index 0 1`] = `
 ]
 `;
 
+exports[`runs examples > example "mousex" example index 0 1`] = `
+[
+  "[ 0/1 → 1/4 | note:C3 ]",
+  "[ 1/4 → 1/2 | note:C3 ]",
+  "[ 1/2 → 3/4 | note:C3 ]",
+  "[ 3/4 → 1/1 | note:C3 ]",
+  "[ 1/1 → 5/4 | note:C3 ]",
+  "[ 5/4 → 3/2 | note:C3 ]",
+  "[ 3/2 → 7/4 | note:C3 ]",
+  "[ 7/4 → 2/1 | note:C3 ]",
+  "[ 2/1 → 9/4 | note:C3 ]",
+  "[ 9/4 → 5/2 | note:C3 ]",
+  "[ 5/2 → 11/4 | note:C3 ]",
+  "[ 11/4 → 3/1 | note:C3 ]",
+  "[ 3/1 → 13/4 | note:C3 ]",
+  "[ 13/4 → 7/2 | note:C3 ]",
+  "[ 7/2 → 15/4 | note:C3 ]",
+  "[ 15/4 → 4/1 | note:C3 ]",
+]
+`;
+
+exports[`runs examples > example "mousey" example index 0 1`] = `
+[
+  "[ 0/1 → 1/4 | note:C3 ]",
+  "[ 1/4 → 1/2 | note:C3 ]",
+  "[ 1/2 → 3/4 | note:C3 ]",
+  "[ 3/4 → 1/1 | note:C3 ]",
+  "[ 1/1 → 5/4 | note:C3 ]",
+  "[ 5/4 → 3/2 | note:C3 ]",
+  "[ 3/2 → 7/4 | note:C3 ]",
+  "[ 7/4 → 2/1 | note:C3 ]",
+  "[ 2/1 → 9/4 | note:C3 ]",
+  "[ 9/4 → 5/2 | note:C3 ]",
+  "[ 5/2 → 11/4 | note:C3 ]",
+  "[ 11/4 → 3/1 | note:C3 ]",
+  "[ 3/1 → 13/4 | note:C3 ]",
+  "[ 13/4 → 7/2 | note:C3 ]",
+  "[ 7/2 → 15/4 | note:C3 ]",
+  "[ 15/4 → 4/1 | note:C3 ]",
+]
+`;
+
 exports[`runs examples > example "mul" example index 0 1`] = `
 [
   "[ 0/1 → 1/4 | freq:150 ]",
@@ -5035,72 +5260,6 @@ exports[`runs examples > example "ply" example index 0 1`] = `
 ]
 `;
 
-exports[`runs examples > example "polymeter" example index 0 1`] = `
-[
-  "[ 0/1 → 1/3 | c ]",
-  "[ 0/1 → 1/3 | c2 ]",
-  "[ 1/3 → 2/3 | eb ]",
-  "[ 1/3 → 2/3 | g2 ]",
-  "[ 2/3 → 1/1 | g ]",
-  "[ 2/3 → 1/1 | c2 ]",
-  "[ 1/1 → 4/3 | c ]",
-  "[ 1/1 → 4/3 | g2 ]",
-  "[ 4/3 → 5/3 | eb ]",
-  "[ 4/3 → 5/3 | c2 ]",
-  "[ 5/3 → 2/1 | g ]",
-  "[ 5/3 → 2/1 | g2 ]",
-  "[ 2/1 → 7/3 | c ]",
-  "[ 2/1 → 7/3 | c2 ]",
-  "[ 7/3 → 8/3 | eb ]",
-  "[ 7/3 → 8/3 | g2 ]",
-  "[ 8/3 → 3/1 | g ]",
-  "[ 8/3 → 3/1 | c2 ]",
-  "[ 3/1 → 10/3 | c ]",
-  "[ 3/1 → 10/3 | g2 ]",
-  "[ 10/3 → 11/3 | eb ]",
-  "[ 10/3 → 11/3 | c2 ]",
-  "[ 11/3 → 4/1 | g ]",
-  "[ 11/3 → 4/1 | g2 ]",
-]
-`;
-
-exports[`runs examples > example "polymeterSteps" example index 0 1`] = `
-[
-  "[ 0/1 → 1/4 | c ]",
-  "[ 0/1 → 1/4 | e ]",
-  "[ 1/4 → 1/2 | d ]",
-  "[ 1/4 → 1/2 | f ]",
-  "[ 1/2 → 3/4 | c ]",
-  "[ 1/2 → 3/4 | g ]",
-  "[ 3/4 → 1/1 | d ]",
-  "[ 3/4 → 1/1 | e ]",
-  "[ 1/1 → 5/4 | c ]",
-  "[ 1/1 → 5/4 | f ]",
-  "[ 5/4 → 3/2 | d ]",
-  "[ 5/4 → 3/2 | g ]",
-  "[ 3/2 → 7/4 | c ]",
-  "[ 3/2 → 7/4 | e ]",
-  "[ 7/4 → 2/1 | d ]",
-  "[ 7/4 → 2/1 | f ]",
-  "[ 2/1 → 9/4 | c ]",
-  "[ 2/1 → 9/4 | g ]",
-  "[ 9/4 → 5/2 | d ]",
-  "[ 9/4 → 5/2 | e ]",
-  "[ 5/2 → 11/4 | c ]",
-  "[ 5/2 → 11/4 | f ]",
-  "[ 11/4 → 3/1 | d ]",
-  "[ 11/4 → 3/1 | g ]",
-  "[ 3/1 → 13/4 | c ]",
-  "[ 3/1 → 13/4 | e ]",
-  "[ 13/4 → 7/2 | d ]",
-  "[ 13/4 → 7/2 | f ]",
-  "[ 7/2 → 15/4 | c ]",
-  "[ 7/2 → 15/4 | g ]",
-  "[ 15/4 → 4/1 | d ]",
-  "[ 15/4 → 4/1 | e ]",
-]
-`;
-
 exports[`runs examples > example "postgain" example index 0 1`] = `
 [
   "[ 0/1 → 1/8 | s:hh compressor:-20 compressorRatio:20 compressorKnee:10 compressorAttack:0.002 compressorRelease:0.02 postgain:1.5 ]",
@@ -7216,31 +7375,6 @@ exports[`runs examples > example "stack" example index 0 2`] = `
 ]
 `;
 
-exports[`runs examples > example "stepcat" example index 0 1`] = `
-[
-  "[ 0/1 → 1/5 | s:bd ]",
-  "[ 1/5 → 2/5 | s:cp ]",
-  "[ 2/5 → 3/5 | s:bd ]",
-  "[ 3/5 → 4/5 | s:mt ]",
-  "[ 4/5 → 1/1 | s:bd ]",
-  "[ 1/1 → 6/5 | s:bd ]",
-  "[ 6/5 → 7/5 | s:cp ]",
-  "[ 7/5 → 8/5 | s:bd ]",
-  "[ 8/5 → 9/5 | s:mt ]",
-  "[ 9/5 → 2/1 | s:bd ]",
-  "[ 2/1 → 11/5 | s:bd ]",
-  "[ 11/5 → 12/5 | s:cp ]",
-  "[ 12/5 → 13/5 | s:bd ]",
-  "[ 13/5 → 14/5 | s:mt ]",
-  "[ 14/5 → 3/1 | s:bd ]",
-  "[ 3/1 → 16/5 | s:bd ]",
-  "[ 16/5 → 17/5 | s:cp ]",
-  "[ 17/5 → 18/5 | s:bd ]",
-  "[ 18/5 → 19/5 | s:mt ]",
-  "[ 19/5 → 4/1 | s:bd ]",
-]
-`;
-
 exports[`runs examples > example "steps" example index 0 1`] = `
 [
   "[ 0/1 → 1/4 | s:bd ]",
@@ -7554,65 +7688,6 @@ exports[`runs examples > example "swingBy" example index 0 1`] = `
 ]
 `;
 
-exports[`runs examples > example "timecat" example index 0 1`] = `
-[
-  "[ 0/1 → 3/4 | note:e3 ]",
-  "[ 3/4 → 1/1 | note:g3 ]",
-  "[ 1/1 → 7/4 | note:e3 ]",
-  "[ 7/4 → 2/1 | note:g3 ]",
-  "[ 2/1 → 11/4 | note:e3 ]",
-  "[ 11/4 → 3/1 | note:g3 ]",
-  "[ 3/1 → 15/4 | note:e3 ]",
-  "[ 15/4 → 4/1 | note:g3 ]",
-]
-`;
-
-exports[`runs examples > example "timecat" example index 1 1`] = `
-[
-  "[ 0/1 → 1/5 | s:bd ]",
-  "[ 1/5 → 2/5 | s:sd ]",
-  "[ 2/5 → 3/5 | s:cp ]",
-  "[ 3/5 → 4/5 | s:hh ]",
-  "[ 4/5 → 1/1 | s:hh ]",
-  "[ 1/1 → 6/5 | s:bd ]",
-  "[ 6/5 → 7/5 | s:sd ]",
-  "[ 7/5 → 8/5 | s:cp ]",
-  "[ 8/5 → 9/5 | s:hh ]",
-  "[ 9/5 → 2/1 | s:hh ]",
-  "[ 2/1 → 11/5 | s:bd ]",
-  "[ 11/5 → 12/5 | s:sd ]",
-  "[ 12/5 → 13/5 | s:cp ]",
-  "[ 13/5 → 14/5 | s:hh ]",
-  "[ 14/5 → 3/1 | s:hh ]",
-  "[ 3/1 → 16/5 | s:bd ]",
-  "[ 16/5 → 17/5 | s:sd ]",
-  "[ 17/5 → 18/5 | s:cp ]",
-  "[ 18/5 → 19/5 | s:hh ]",
-  "[ 19/5 → 4/1 | s:hh ]",
-]
-`;
-
-exports[`runs examples > example "toTactus" example index 0 1`] = `
-[
-  "[ 0/1 → 1/4 | s:bd ]",
-  "[ 1/4 → 1/2 | s:sd ]",
-  "[ 1/2 → 3/4 | s:cp ]",
-  "[ 3/4 → 1/1 | s:bd ]",
-  "[ 1/1 → 5/4 | s:sd ]",
-  "[ 5/4 → 3/2 | s:cp ]",
-  "[ 3/2 → 7/4 | s:bd ]",
-  "[ 7/4 → 2/1 | s:sd ]",
-  "[ 2/1 → 9/4 | s:cp ]",
-  "[ 9/4 → 5/2 | s:bd ]",
-  "[ 5/2 → 11/4 | s:sd ]",
-  "[ 11/4 → 3/1 | s:cp ]",
-  "[ 3/1 → 13/4 | s:bd ]",
-  "[ 13/4 → 7/2 | s:sd ]",
-  "[ 7/2 → 15/4 | s:cp ]",
-  "[ 15/4 → 4/1 | s:bd ]",
-]
-`;
-
 exports[`runs examples > example "transpose" example index 0 1`] = `
 [
   "[ 0/1 → 1/4 | note:C2 ]",
diff --git a/test/__snapshots__/shared.test.mjs.snap b/test/__snapshots__/shared.test.mjs.snap
deleted file mode 100644
index 383bcded..00000000
--- a/test/__snapshots__/shared.test.mjs.snap
+++ /dev/null
@@ -1,6928 +0,0 @@
-// Vitest Snapshot v1
-
-exports[`renders shared tunes > shared tune 10 https://strudel.cc/?nLsPXvEPTcQF 1`] = `
-[
-  "0/1 -> 3/2: {\\"s\\":\\"bd\\",\\"speed\\":0.7519542165100574}",
-  "3/4 -> 3/2: {\\"s\\":\\"sd\\",\\"speed\\":0.7931522866332671}",
-  "3/8 -> 3/4: {\\"s\\":\\"hh\\",\\"speed\\":0.7285963821098448}",
-  "3/4 -> 9/8: {\\"s\\":\\"hh\\",\\"speed\\":0.77531205091027}",
-  "0/1 -> 3/2: {\\"n\\":33.129885541275144,\\"decay\\":0.15,\\"sustain\\":0,\\"s\\":\\"sawtooth\\",\\"gain\\":0.4,\\"cutoff\\":3669.6267869262615}",
-  "0/1 -> 3/2: {\\"n\\":33.17988554127514,\\"decay\\":0.15,\\"sustain\\":0,\\"s\\":\\"sawtooth\\",\\"gain\\":0.4,\\"cutoff\\":3669.6267869262615}",
-  "0/1 -> 3/2: {\\"n\\":55.129885541275144,\\"s\\":\\"sawtooth\\",\\"gain\\":0.16,\\"cutoff\\":500,\\"attack\\":1}",
-  "0/1 -> 3/2: {\\"n\\":59.129885541275144,\\"s\\":\\"sawtooth\\",\\"gain\\":0.16,\\"cutoff\\":500,\\"attack\\":1}",
-  "0/1 -> 3/2: {\\"n\\":60.129885541275144,\\"s\\":\\"sawtooth\\",\\"gain\\":0.16,\\"cutoff\\":500,\\"attack\\":1}",
-  "0/1 -> 3/2: {\\"n\\":64.12988554127514,\\"s\\":\\"sawtooth\\",\\"gain\\":0.16,\\"cutoff\\":500,\\"attack\\":1}",
-  "0/1 -> 3/2: {\\"n\\":55.16988554127514,\\"s\\":\\"sawtooth\\",\\"gain\\":0.16,\\"cutoff\\":500,\\"attack\\":1}",
-  "0/1 -> 3/2: {\\"n\\":59.16988554127514,\\"s\\":\\"sawtooth\\",\\"gain\\":0.16,\\"cutoff\\":500,\\"attack\\":1}",
-  "0/1 -> 3/2: {\\"n\\":60.16988554127514,\\"s\\":\\"sawtooth\\",\\"gain\\":0.16,\\"cutoff\\":500,\\"attack\\":1}",
-  "0/1 -> 3/2: {\\"n\\":64.16988554127515,\\"s\\":\\"sawtooth\\",\\"gain\\":0.16,\\"cutoff\\":500,\\"attack\\":1}",
-  "3/16 -> 3/8: {\\"n\\":69.01266877519555,\\"decay\\":0.1,\\"sustain\\":0,\\"s\\":\\"triangle\\",\\"gain\\":0.15}",
-  "3/8 -> 9/16: {\\"n\\":69.04676036055696,\\"decay\\":0.1,\\"sustain\\":0,\\"s\\":\\"triangle\\",\\"gain\\":0.15}",
-  "3/8 -> 9/16: {\\"n\\":72.04676036055696,\\"decay\\":0.1,\\"sustain\\":0,\\"s\\":\\"triangle\\",\\"gain\\":0.15}",
-  "3/4 -> 15/16: {\\"n\\":72.16001184806132,\\"decay\\":0.1,\\"sustain\\":0,\\"s\\":\\"triangle\\",\\"gain\\":0.15}",
-  "15/16 -> 9/8: {\\"n\\":72.21301072199333,\\"decay\\":0.1,\\"sustain\\":0,\\"s\\":\\"triangle\\",\\"gain\\":0.15}",
-  "3/16 -> 3/8: {\\"n\\":69.05266877519557,\\"decay\\":0.1,\\"sustain\\":0,\\"s\\":\\"triangle\\",\\"gain\\":0.15}",
-  "3/8 -> 9/16: {\\"n\\":69.08676036055695,\\"decay\\":0.1,\\"sustain\\":0,\\"s\\":\\"triangle\\",\\"gain\\":0.15}",
-  "3/8 -> 9/16: {\\"n\\":72.08676036055695,\\"decay\\":0.1,\\"sustain\\":0,\\"s\\":\\"triangle\\",\\"gain\\":0.15}",
-  "3/4 -> 15/16: {\\"n\\":72.20001184806131,\\"decay\\":0.1,\\"sustain\\":0,\\"s\\":\\"triangle\\",\\"gain\\":0.15}",
-  "15/16 -> 9/8: {\\"n\\":72.25301072199335,\\"decay\\":0.1,\\"sustain\\":0,\\"s\\":\\"triangle\\",\\"gain\\":0.15}",
-  "0/1 -> 3/16: {\\"n\\":93.00057728554401,\\"decay\\":0.1,\\"sustain\\":0,\\"s\\":\\"triangle\\",\\"gain\\":0.075}",
-  "0/1 -> 3/16: {\\"n\\":93.04057728554402,\\"decay\\":0.1,\\"sustain\\":0,\\"s\\":\\"triangle\\",\\"gain\\":0.075}",
-  "3/8 -> 9/16: {\\"n\\":69.01266877519555,\\"decay\\":0.1,\\"sustain\\":0,\\"s\\":\\"triangle\\",\\"gain\\":0.075}",
-  "9/16 -> 3/4: {\\"n\\":69.04676036055696,\\"decay\\":0.1,\\"sustain\\":0,\\"s\\":\\"triangle\\",\\"gain\\":0.075}",
-  "9/16 -> 3/4: {\\"n\\":72.04676036055696,\\"decay\\":0.1,\\"sustain\\":0,\\"s\\":\\"triangle\\",\\"gain\\":0.075}",
-  "15/16 -> 9/8: {\\"n\\":72.16001184806132,\\"decay\\":0.1,\\"sustain\\":0,\\"s\\":\\"triangle\\",\\"gain\\":0.075}",
-  "3/8 -> 9/16: {\\"n\\":69.05266877519557,\\"decay\\":0.1,\\"sustain\\":0,\\"s\\":\\"triangle\\",\\"gain\\":0.075}",
-  "9/16 -> 3/4: {\\"n\\":69.08676036055695,\\"decay\\":0.1,\\"sustain\\":0,\\"s\\":\\"triangle\\",\\"gain\\":0.075}",
-  "9/16 -> 3/4: {\\"n\\":72.08676036055695,\\"decay\\":0.1,\\"sustain\\":0,\\"s\\":\\"triangle\\",\\"gain\\":0.075}",
-  "15/16 -> 9/8: {\\"n\\":72.20001184806131,\\"decay\\":0.1,\\"sustain\\":0,\\"s\\":\\"triangle\\",\\"gain\\":0.075}",
-  "3/16 -> 3/8: {\\"n\\":93.00057728554401,\\"decay\\":0.1,\\"sustain\\":0,\\"s\\":\\"triangle\\",\\"gain\\":0.049999999999999996}",
-  "3/16 -> 3/8: {\\"n\\":93.04057728554402,\\"decay\\":0.1,\\"sustain\\":0,\\"s\\":\\"triangle\\",\\"gain\\":0.049999999999999996}",
-  "9/16 -> 3/4: {\\"n\\":69.01266877519555,\\"decay\\":0.1,\\"sustain\\":0,\\"s\\":\\"triangle\\",\\"gain\\":0.049999999999999996}",
-  "3/4 -> 15/16: {\\"n\\":69.04676036055696,\\"decay\\":0.1,\\"sustain\\":0,\\"s\\":\\"triangle\\",\\"gain\\":0.049999999999999996}",
-  "3/4 -> 15/16: {\\"n\\":72.04676036055696,\\"decay\\":0.1,\\"sustain\\":0,\\"s\\":\\"triangle\\",\\"gain\\":0.049999999999999996}",
-  "9/16 -> 3/4: {\\"n\\":69.05266877519557,\\"decay\\":0.1,\\"sustain\\":0,\\"s\\":\\"triangle\\",\\"gain\\":0.049999999999999996}",
-  "3/4 -> 15/16: {\\"n\\":69.08676036055695,\\"decay\\":0.1,\\"sustain\\":0,\\"s\\":\\"triangle\\",\\"gain\\":0.049999999999999996}",
-  "3/4 -> 15/16: {\\"n\\":72.08676036055695,\\"decay\\":0.1,\\"sustain\\":0,\\"s\\":\\"triangle\\",\\"gain\\":0.049999999999999996}",
-  "0/1 -> 3/16: {\\"n\\":72.0468455057745,\\"decay\\":0.1,\\"sustain\\":0,\\"s\\":\\"triangle\\",\\"gain\\":0.0375}",
-  "0/1 -> 3/16: {\\"n\\":93.0468455057745,\\"decay\\":0.1,\\"sustain\\":0,\\"s\\":\\"triangle\\",\\"gain\\":0.0375}",
-  "3/8 -> 9/16: {\\"n\\":93.00057728554401,\\"decay\\":0.1,\\"sustain\\":0,\\"s\\":\\"triangle\\",\\"gain\\":0.0375}",
-  "0/1 -> 3/16: {\\"n\\":72.0868455057745,\\"decay\\":0.1,\\"sustain\\":0,\\"s\\":\\"triangle\\",\\"gain\\":0.0375}",
-  "0/1 -> 3/16: {\\"n\\":93.0868455057745,\\"decay\\":0.1,\\"sustain\\":0,\\"s\\":\\"triangle\\",\\"gain\\":0.0375}",
-  "3/8 -> 9/16: {\\"n\\":93.04057728554402,\\"decay\\":0.1,\\"sustain\\":0,\\"s\\":\\"triangle\\",\\"gain\\":0.0375}",
-  "3/4 -> 15/16: {\\"n\\":69.01266877519555,\\"decay\\":0.1,\\"sustain\\":0,\\"s\\":\\"triangle\\",\\"gain\\":0.0375}",
-  "15/16 -> 9/8: {\\"n\\":69.04676036055696,\\"decay\\":0.1,\\"sustain\\":0,\\"s\\":\\"triangle\\",\\"gain\\":0.0375}",
-  "3/4 -> 15/16: {\\"n\\":69.05266877519557,\\"decay\\":0.1,\\"sustain\\":0,\\"s\\":\\"triangle\\",\\"gain\\":0.0375}",
-  "15/16 -> 9/8: {\\"n\\":69.08676036055695,\\"decay\\":0.1,\\"sustain\\":0,\\"s\\":\\"triangle\\",\\"gain\\":0.0375}",
-]
-`;
-
-exports[`renders shared tunes > shared tune 11 https://strudel.cc/?ac7iGrXwBA_D 1`] = `
-[
-  "0/1 -> 3/2: {\\"s\\":\\"bd\\",\\"speed\\":0.7519542165100574}",
-  "3/4 -> 3/2: {\\"s\\":\\"sd\\",\\"speed\\":0.7931522866332671}",
-  "3/8 -> 3/4: {\\"s\\":\\"hh\\",\\"speed\\":0.7285963821098448}",
-  "3/4 -> 9/8: {\\"s\\":\\"hh\\",\\"speed\\":0.77531205091027}",
-  "0/1 -> 3/2: {\\"n\\":33.129885541275144,\\"decay\\":0.15,\\"sustain\\":0,\\"s\\":\\"sawtooth\\",\\"gain\\":0.4,\\"cutoff\\":3669.6267869262615}",
-  "0/1 -> 3/2: {\\"n\\":33.17988554127514,\\"decay\\":0.15,\\"sustain\\":0,\\"s\\":\\"sawtooth\\",\\"gain\\":0.4,\\"cutoff\\":3669.6267869262615}",
-  "0/1 -> 3/2: {\\"n\\":55.129885541275144,\\"s\\":\\"sawtooth\\",\\"gain\\":0.16,\\"cutoff\\":500,\\"attack\\":1}",
-  "0/1 -> 3/2: {\\"n\\":59.129885541275144,\\"s\\":\\"sawtooth\\",\\"gain\\":0.16,\\"cutoff\\":500,\\"attack\\":1}",
-  "0/1 -> 3/2: {\\"n\\":60.129885541275144,\\"s\\":\\"sawtooth\\",\\"gain\\":0.16,\\"cutoff\\":500,\\"attack\\":1}",
-  "0/1 -> 3/2: {\\"n\\":64.12988554127514,\\"s\\":\\"sawtooth\\",\\"gain\\":0.16,\\"cutoff\\":500,\\"attack\\":1}",
-  "0/1 -> 3/2: {\\"n\\":55.16988554127514,\\"s\\":\\"sawtooth\\",\\"gain\\":0.16,\\"cutoff\\":500,\\"attack\\":1}",
-  "0/1 -> 3/2: {\\"n\\":59.16988554127514,\\"s\\":\\"sawtooth\\",\\"gain\\":0.16,\\"cutoff\\":500,\\"attack\\":1}",
-  "0/1 -> 3/2: {\\"n\\":60.16988554127514,\\"s\\":\\"sawtooth\\",\\"gain\\":0.16,\\"cutoff\\":500,\\"attack\\":1}",
-  "0/1 -> 3/2: {\\"n\\":64.16988554127515,\\"s\\":\\"sawtooth\\",\\"gain\\":0.16,\\"cutoff\\":500,\\"attack\\":1}",
-  "3/16 -> 3/8: {\\"n\\":69.01266877519555,\\"decay\\":0.1,\\"sustain\\":0,\\"s\\":\\"triangle\\",\\"gain\\":0.15}",
-  "3/8 -> 9/16: {\\"n\\":69.04676036055696,\\"decay\\":0.1,\\"sustain\\":0,\\"s\\":\\"triangle\\",\\"gain\\":0.15}",
-  "3/8 -> 9/16: {\\"n\\":72.04676036055696,\\"decay\\":0.1,\\"sustain\\":0,\\"s\\":\\"triangle\\",\\"gain\\":0.15}",
-  "3/4 -> 15/16: {\\"n\\":72.16001184806132,\\"decay\\":0.1,\\"sustain\\":0,\\"s\\":\\"triangle\\",\\"gain\\":0.15}",
-  "15/16 -> 9/8: {\\"n\\":72.21301072199333,\\"decay\\":0.1,\\"sustain\\":0,\\"s\\":\\"triangle\\",\\"gain\\":0.15}",
-  "3/16 -> 3/8: {\\"n\\":69.05266877519557,\\"decay\\":0.1,\\"sustain\\":0,\\"s\\":\\"triangle\\",\\"gain\\":0.15}",
-  "3/8 -> 9/16: {\\"n\\":69.08676036055695,\\"decay\\":0.1,\\"sustain\\":0,\\"s\\":\\"triangle\\",\\"gain\\":0.15}",
-  "3/8 -> 9/16: {\\"n\\":72.08676036055695,\\"decay\\":0.1,\\"sustain\\":0,\\"s\\":\\"triangle\\",\\"gain\\":0.15}",
-  "3/4 -> 15/16: {\\"n\\":72.20001184806131,\\"decay\\":0.1,\\"sustain\\":0,\\"s\\":\\"triangle\\",\\"gain\\":0.15}",
-  "15/16 -> 9/8: {\\"n\\":72.25301072199335,\\"decay\\":0.1,\\"sustain\\":0,\\"s\\":\\"triangle\\",\\"gain\\":0.15}",
-  "0/1 -> 3/16: {\\"n\\":93.00057728554401,\\"decay\\":0.1,\\"sustain\\":0,\\"s\\":\\"triangle\\",\\"gain\\":0.075}",
-  "0/1 -> 3/16: {\\"n\\":93.04057728554402,\\"decay\\":0.1,\\"sustain\\":0,\\"s\\":\\"triangle\\",\\"gain\\":0.075}",
-  "3/8 -> 9/16: {\\"n\\":69.01266877519555,\\"decay\\":0.1,\\"sustain\\":0,\\"s\\":\\"triangle\\",\\"gain\\":0.075}",
-  "9/16 -> 3/4: {\\"n\\":69.04676036055696,\\"decay\\":0.1,\\"sustain\\":0,\\"s\\":\\"triangle\\",\\"gain\\":0.075}",
-  "9/16 -> 3/4: {\\"n\\":72.04676036055696,\\"decay\\":0.1,\\"sustain\\":0,\\"s\\":\\"triangle\\",\\"gain\\":0.075}",
-  "15/16 -> 9/8: {\\"n\\":72.16001184806132,\\"decay\\":0.1,\\"sustain\\":0,\\"s\\":\\"triangle\\",\\"gain\\":0.075}",
-  "3/8 -> 9/16: {\\"n\\":69.05266877519557,\\"decay\\":0.1,\\"sustain\\":0,\\"s\\":\\"triangle\\",\\"gain\\":0.075}",
-  "9/16 -> 3/4: {\\"n\\":69.08676036055695,\\"decay\\":0.1,\\"sustain\\":0,\\"s\\":\\"triangle\\",\\"gain\\":0.075}",
-  "9/16 -> 3/4: {\\"n\\":72.08676036055695,\\"decay\\":0.1,\\"sustain\\":0,\\"s\\":\\"triangle\\",\\"gain\\":0.075}",
-  "15/16 -> 9/8: {\\"n\\":72.20001184806131,\\"decay\\":0.1,\\"sustain\\":0,\\"s\\":\\"triangle\\",\\"gain\\":0.075}",
-  "3/16 -> 3/8: {\\"n\\":93.00057728554401,\\"decay\\":0.1,\\"sustain\\":0,\\"s\\":\\"triangle\\",\\"gain\\":0.049999999999999996}",
-  "3/16 -> 3/8: {\\"n\\":93.04057728554402,\\"decay\\":0.1,\\"sustain\\":0,\\"s\\":\\"triangle\\",\\"gain\\":0.049999999999999996}",
-  "9/16 -> 3/4: {\\"n\\":69.01266877519555,\\"decay\\":0.1,\\"sustain\\":0,\\"s\\":\\"triangle\\",\\"gain\\":0.049999999999999996}",
-  "3/4 -> 15/16: {\\"n\\":69.04676036055696,\\"decay\\":0.1,\\"sustain\\":0,\\"s\\":\\"triangle\\",\\"gain\\":0.049999999999999996}",
-  "3/4 -> 15/16: {\\"n\\":72.04676036055696,\\"decay\\":0.1,\\"sustain\\":0,\\"s\\":\\"triangle\\",\\"gain\\":0.049999999999999996}",
-  "9/16 -> 3/4: {\\"n\\":69.05266877519557,\\"decay\\":0.1,\\"sustain\\":0,\\"s\\":\\"triangle\\",\\"gain\\":0.049999999999999996}",
-  "3/4 -> 15/16: {\\"n\\":69.08676036055695,\\"decay\\":0.1,\\"sustain\\":0,\\"s\\":\\"triangle\\",\\"gain\\":0.049999999999999996}",
-  "3/4 -> 15/16: {\\"n\\":72.08676036055695,\\"decay\\":0.1,\\"sustain\\":0,\\"s\\":\\"triangle\\",\\"gain\\":0.049999999999999996}",
-  "0/1 -> 3/16: {\\"n\\":72.0468455057745,\\"decay\\":0.1,\\"sustain\\":0,\\"s\\":\\"triangle\\",\\"gain\\":0.0375}",
-  "0/1 -> 3/16: {\\"n\\":93.0468455057745,\\"decay\\":0.1,\\"sustain\\":0,\\"s\\":\\"triangle\\",\\"gain\\":0.0375}",
-  "3/8 -> 9/16: {\\"n\\":93.00057728554401,\\"decay\\":0.1,\\"sustain\\":0,\\"s\\":\\"triangle\\",\\"gain\\":0.0375}",
-  "0/1 -> 3/16: {\\"n\\":72.0868455057745,\\"decay\\":0.1,\\"sustain\\":0,\\"s\\":\\"triangle\\",\\"gain\\":0.0375}",
-  "0/1 -> 3/16: {\\"n\\":93.0868455057745,\\"decay\\":0.1,\\"sustain\\":0,\\"s\\":\\"triangle\\",\\"gain\\":0.0375}",
-  "3/8 -> 9/16: {\\"n\\":93.04057728554402,\\"decay\\":0.1,\\"sustain\\":0,\\"s\\":\\"triangle\\",\\"gain\\":0.0375}",
-  "3/4 -> 15/16: {\\"n\\":69.01266877519555,\\"decay\\":0.1,\\"sustain\\":0,\\"s\\":\\"triangle\\",\\"gain\\":0.0375}",
-  "15/16 -> 9/8: {\\"n\\":69.04676036055696,\\"decay\\":0.1,\\"sustain\\":0,\\"s\\":\\"triangle\\",\\"gain\\":0.0375}",
-  "3/4 -> 15/16: {\\"n\\":69.05266877519557,\\"decay\\":0.1,\\"sustain\\":0,\\"s\\":\\"triangle\\",\\"gain\\":0.0375}",
-  "15/16 -> 9/8: {\\"n\\":69.08676036055695,\\"decay\\":0.1,\\"sustain\\":0,\\"s\\":\\"triangle\\",\\"gain\\":0.0375}",
-]
-`;
-
-exports[`renders shared tunes > shared tune 12 https://strudel.cc/?0l5OmIwd4Xhc 1`] = `
-[
-  "0/1 -> 3/1: {\\"n\\":\\"B3\\",\\"s\\":\\"0040_FluidR3_GM_sf2_file\\",\\"attack\\":0.05,\\"decay\\":0.1,\\"sustain\\":0.7,\\"cutoff\\":1111.7252990603447,\\"gain\\":0.3}",
-  "0/1 -> 3/1: {\\"n\\":\\"D4\\",\\"s\\":\\"0040_FluidR3_GM_sf2_file\\",\\"attack\\":0.05,\\"decay\\":0.1,\\"sustain\\":0.7,\\"cutoff\\":1111.7252990603447,\\"gain\\":0.3}",
-  "0/1 -> 3/1: {\\"n\\":\\"E4\\",\\"s\\":\\"0040_FluidR3_GM_sf2_file\\",\\"attack\\":0.05,\\"decay\\":0.1,\\"sustain\\":0.7,\\"cutoff\\":1111.7252990603447,\\"gain\\":0.3}",
-  "0/1 -> 3/1: {\\"n\\":\\"G4\\",\\"s\\":\\"0040_FluidR3_GM_sf2_file\\",\\"attack\\":0.05,\\"decay\\":0.1,\\"sustain\\":0.7,\\"cutoff\\":1111.7252990603447,\\"gain\\":0.3}",
-  "0/1 -> 9/2: {\\"n\\":\\"C5\\",\\"s\\":\\"0040_FluidR3_GM_sf2_file\\",\\"attack\\":0.05,\\"decay\\":0.1,\\"sustain\\":0.7,\\"cutoff\\":1111.7252990603447,\\"gain\\":0.3}",
-  "0/1 -> 3/4: {\\"n\\":\\"C2\\",\\"s\\":\\"sawtooth\\",\\"attack\\":0.05,\\"decay\\":0.1,\\"sustain\\":0.7,\\"cutoff\\":864.536878321087,\\"gain\\":0.3}",
-  "0/1 -> 3/4: {\\"s\\":\\"bd\\",\\"speed\\":0.9107561463868479,\\"n\\":3}",
-  "3/4 -> 3/2: {\\"s\\":\\"sd\\",\\"speed\\":0.9931522866332672,\\"n\\":3}",
-  "0/1 -> 1/2: {\\"s\\":\\"hh\\",\\"speed\\":0.9036881079621337,\\"n\\":3}",
-  "1/2 -> 1/1: {\\"s\\":\\"hh\\",\\"speed\\":0.9519542165100575,\\"n\\":3}",
-]
-`;
-
-exports[`renders shared tunes > shared tune 13 https://strudel.cc/?a5zB31-92Q7M 1`] = `
-[
-  "0/1 -> 1/1: {\\"s\\":\\"bd\\"}",
-]
-`;
-
-exports[`renders shared tunes > shared tune 14 https://strudel.cc/?ZNO6a_vBjz65 1`] = `
-[
-  "0/1 -> 2/3: F3",
-  "2/3 -> 1/1: Ab3",
-  "0/1 -> 2/3: Ab3",
-  "2/3 -> 1/1: C4",
-  "1/3 -> 5/12: Eb4",
-  "1/2 -> 7/12: Eb4",
-  "1/3 -> 5/12: G4",
-  "1/2 -> 7/12: G4",
-  "241/675 -> 49/75: F1",
-  "0/1 -> 2/3: c2",
-  "2/3 -> 4/3: c2",
-  "2/3 -> 4/3: c2",
-  "0/1 -> 1/3: c4",
-  "1/3 -> 2/3: c4",
-  "2/3 -> 1/1: c4",
-]
-`;
-
-exports[`renders shared tunes > shared tune 15 https://strudel.cc/?8sxdCCcYKcvp 1`] = `
-[
-  "0/1 -> 1/8: {\\"note\\":\\"A2\\",\\"s\\":\\"flbass\\",\\"n\\":0,\\"gain\\":0.3,\\"cutoff\\":2206.5338497506646,\\"resonance\\":10,\\"clip\\":1}",
-  "3/8 -> 1/2: {\\"note\\":\\"A2\\",\\"s\\":\\"flbass\\",\\"n\\":0,\\"gain\\":0.3,\\"cutoff\\":2827.098521493671,\\"resonance\\":10,\\"clip\\":1}",
-  "3/4 -> 7/8: {\\"note\\":\\"A2\\",\\"s\\":\\"flbass\\",\\"n\\":0,\\"gain\\":0.3,\\"cutoff\\":3366.0584981088073,\\"resonance\\":10,\\"clip\\":1}",
-  "0/1 -> 1/4: {\\"note\\":\\"A3\\",\\"s\\":\\"flbass\\",\\"n\\":0,\\"gain\\":0.3,\\"cutoff\\":2312.732504596285,\\"resonance\\":10,\\"clip\\":1}",
-  "3/4 -> 1/1: {\\"note\\":\\"A3\\",\\"s\\":\\"flbass\\",\\"n\\":0,\\"gain\\":0.3,\\"cutoff\\":3443.5028842544402,\\"resonance\\":10,\\"clip\\":1}",
-  "-7/4 -> 1/4: {\\"note\\":\\"C4\\",\\"s\\":\\"flbass\\",\\"n\\":0,\\"gain\\":0.3,\\"cutoff\\":2312.732504596285,\\"resonance\\":10,\\"clip\\":1}",
-  "-7/4 -> 1/4: {\\"note\\":\\"E4\\",\\"s\\":\\"flbass\\",\\"n\\":0,\\"gain\\":0.3,\\"cutoff\\":2312.732504596285,\\"resonance\\":10,\\"clip\\":1}",
-  "1/4 -> 1/2: {\\"note\\":\\"C4\\",\\"s\\":\\"flbass\\",\\"n\\":0,\\"gain\\":0.3,\\"cutoff\\":2727.5302177148174,\\"resonance\\":10,\\"clip\\":1}",
-  "1/4 -> 1/2: {\\"note\\":\\"E4\\",\\"s\\":\\"flbass\\",\\"n\\":0,\\"gain\\":0.3,\\"cutoff\\":2727.5302177148174,\\"resonance\\":10,\\"clip\\":1}",
-  "-3/2 -> 1/2: {\\"note\\":\\"A4\\",\\"s\\":\\"flbass\\",\\"n\\":0,\\"gain\\":0.3,\\"cutoff\\":2522.789774516997,\\"resonance\\":10,\\"clip\\":1}",
-  "-3/2 -> 1/2: {\\"note\\":\\"C5\\",\\"s\\":\\"flbass\\",\\"n\\":0,\\"gain\\":0.3,\\"cutoff\\":2522.789774516997,\\"resonance\\":10,\\"clip\\":1}",
-  "-3/2 -> 1/2: {\\"note\\":\\"A4\\",\\"s\\":\\"flbass\\",\\"n\\":0,\\"gain\\":0.3,\\"cutoff\\":2522.789774516997,\\"resonance\\":10,\\"clip\\":1}",
-  "-3/2 -> 1/2: {\\"note\\":\\"C5\\",\\"s\\":\\"flbass\\",\\"n\\":0,\\"gain\\":0.3,\\"cutoff\\":2522.789774516997,\\"resonance\\":10,\\"clip\\":1}",
-  "1/2 -> 3/4: {\\"note\\":\\"A4\\",\\"s\\":\\"flbass\\",\\"n\\":0,\\"gain\\":0.3,\\"cutoff\\":3110.8609453791396,\\"resonance\\":10,\\"clip\\":1}",
-  "1/2 -> 3/4: {\\"note\\":\\"C5\\",\\"s\\":\\"flbass\\",\\"n\\":0,\\"gain\\":0.3,\\"cutoff\\":3110.8609453791396,\\"resonance\\":10,\\"clip\\":1}",
-  "-5/4 -> 3/4: {\\"note\\":\\"A4\\",\\"s\\":\\"flbass\\",\\"n\\":0,\\"gain\\":0.3,\\"cutoff\\":2727.5302177148174,\\"resonance\\":10,\\"clip\\":1}",
-  "-5/4 -> 3/4: {\\"note\\":\\"C5\\",\\"s\\":\\"flbass\\",\\"n\\":0,\\"gain\\":0.3,\\"cutoff\\":2727.5302177148174,\\"resonance\\":10,\\"clip\\":1}",
-  "-5/4 -> 3/4: {\\"note\\":\\"A4\\",\\"s\\":\\"flbass\\",\\"n\\":0,\\"gain\\":0.3,\\"cutoff\\":2727.5302177148174,\\"resonance\\":10,\\"clip\\":1}",
-  "-5/4 -> 3/4: {\\"note\\":\\"C5\\",\\"s\\":\\"flbass\\",\\"n\\":0,\\"gain\\":0.3,\\"cutoff\\":2727.5302177148174,\\"resonance\\":10,\\"clip\\":1}",
-  "-5/4 -> 3/4: {\\"note\\":\\"A4\\",\\"s\\":\\"flbass\\",\\"n\\":0,\\"gain\\":0.3,\\"cutoff\\":2727.5302177148174,\\"resonance\\":10,\\"clip\\":1}",
-  "-5/4 -> 3/4: {\\"note\\":\\"C5\\",\\"s\\":\\"flbass\\",\\"n\\":0,\\"gain\\":0.3,\\"cutoff\\":2727.5302177148174,\\"resonance\\":10,\\"clip\\":1}",
-  "3/4 -> 1/1: {\\"note\\":\\"A4\\",\\"s\\":\\"flbass\\",\\"n\\":0,\\"gain\\":0.3,\\"cutoff\\":3443.5028842544402,\\"resonance\\":10,\\"clip\\":1}",
-  "3/4 -> 1/1: {\\"note\\":\\"C5\\",\\"s\\":\\"flbass\\",\\"n\\":0,\\"gain\\":0.3,\\"cutoff\\":3443.5028842544402,\\"resonance\\":10,\\"clip\\":1}",
-  "-1/1 -> 1/1: {\\"note\\":\\"A4\\",\\"s\\":\\"flbass\\",\\"n\\":0,\\"gain\\":0.3,\\"cutoff\\":2924.3791043233605,\\"resonance\\":10,\\"clip\\":1}",
-  "-1/1 -> 1/1: {\\"note\\":\\"C5\\",\\"s\\":\\"flbass\\",\\"n\\":0,\\"gain\\":0.3,\\"cutoff\\":2924.3791043233605,\\"resonance\\":10,\\"clip\\":1}",
-  "-1/1 -> 1/1: {\\"note\\":\\"A4\\",\\"s\\":\\"flbass\\",\\"n\\":0,\\"gain\\":0.3,\\"cutoff\\":2924.3791043233605,\\"resonance\\":10,\\"clip\\":1}",
-  "-1/1 -> 1/1: {\\"note\\":\\"C5\\",\\"s\\":\\"flbass\\",\\"n\\":0,\\"gain\\":0.3,\\"cutoff\\":2924.3791043233605,\\"resonance\\":10,\\"clip\\":1}",
-  "-1/1 -> 1/1: {\\"note\\":\\"A4\\",\\"s\\":\\"flbass\\",\\"n\\":0,\\"gain\\":0.3,\\"cutoff\\":2924.3791043233605,\\"resonance\\":10,\\"clip\\":1}",
-  "-1/1 -> 1/1: {\\"note\\":\\"C5\\",\\"s\\":\\"flbass\\",\\"n\\":0,\\"gain\\":0.3,\\"cutoff\\":2924.3791043233605,\\"resonance\\":10,\\"clip\\":1}",
-  "-3/4 -> 5/4: {\\"note\\":\\"A4\\",\\"s\\":\\"flbass\\",\\"n\\":0,\\"gain\\":0.3,\\"cutoff\\":2924.3791043233605,\\"resonance\\":10,\\"clip\\":1}",
-  "-3/4 -> 5/4: {\\"note\\":\\"C5\\",\\"s\\":\\"flbass\\",\\"n\\":0,\\"gain\\":0.3,\\"cutoff\\":2924.3791043233605,\\"resonance\\":10,\\"clip\\":1}",
-  "-3/4 -> 5/4: {\\"note\\":\\"A4\\",\\"s\\":\\"flbass\\",\\"n\\":0,\\"gain\\":0.3,\\"cutoff\\":2924.3791043233605,\\"resonance\\":10,\\"clip\\":1}",
-  "-3/4 -> 5/4: {\\"note\\":\\"C5\\",\\"s\\":\\"flbass\\",\\"n\\":0,\\"gain\\":0.3,\\"cutoff\\":2924.3791043233605,\\"resonance\\":10,\\"clip\\":1}",
-]
-`;
-
-exports[`renders shared tunes > shared tune 16 https://strudel.cc/?PIG8q54uhQ5h 1`] = `
-[
-  "0/1 -> 3/1: {\\"n\\":\\"B3\\",\\"s\\":\\"0040_FluidR3_GM_sf2_file\\",\\"attack\\":0.05,\\"decay\\":0.1,\\"sustain\\":0.7,\\"cutoff\\":1111.7252990603447,\\"gain\\":0.3}",
-  "0/1 -> 3/1: {\\"n\\":\\"D4\\",\\"s\\":\\"0040_FluidR3_GM_sf2_file\\",\\"attack\\":0.05,\\"decay\\":0.1,\\"sustain\\":0.7,\\"cutoff\\":1111.7252990603447,\\"gain\\":0.3}",
-  "0/1 -> 3/1: {\\"n\\":\\"E4\\",\\"s\\":\\"0040_FluidR3_GM_sf2_file\\",\\"attack\\":0.05,\\"decay\\":0.1,\\"sustain\\":0.7,\\"cutoff\\":1111.7252990603447,\\"gain\\":0.3}",
-  "0/1 -> 3/1: {\\"n\\":\\"G4\\",\\"s\\":\\"0040_FluidR3_GM_sf2_file\\",\\"attack\\":0.05,\\"decay\\":0.1,\\"sustain\\":0.7,\\"cutoff\\":1111.7252990603447,\\"gain\\":0.3}",
-  "0/1 -> 9/2: {\\"n\\":\\"C5\\",\\"s\\":\\"0040_FluidR3_GM_sf2_file\\",\\"attack\\":0.05,\\"decay\\":0.1,\\"sustain\\":0.7,\\"cutoff\\":1111.7252990603447,\\"gain\\":0.3}",
-  "0/1 -> 3/4: {\\"n\\":\\"C2\\",\\"s\\":\\"sawtooth\\",\\"attack\\":0.05,\\"decay\\":0.1,\\"sustain\\":0.7,\\"cutoff\\":864.536878321087,\\"gain\\":0.3}",
-  "0/1 -> 3/4: {\\"s\\":\\"bd\\",\\"speed\\":0.9107561463868479,\\"n\\":3}",
-  "3/4 -> 3/2: {\\"s\\":\\"sd\\",\\"speed\\":0.9931522866332672,\\"n\\":3}",
-  "0/1 -> 1/2: {\\"s\\":\\"hh\\",\\"speed\\":0.9036881079621337,\\"n\\":3}",
-  "1/2 -> 1/1: {\\"s\\":\\"hh\\",\\"speed\\":0.9519542165100575,\\"n\\":3}",
-]
-`;
-
-exports[`renders shared tunes > shared tune 18 https://strudel.cc/?RyZi9bqqcQku 1`] = `
-[
-  "0/1 -> 4/3: B4",
-  "0/1 -> 1/3: C3",
-  "1/3 -> 2/3: G3",
-  "2/3 -> 2/1: E4",
-]
-`;
-
-exports[`renders shared tunes > shared tune 19 https://strudel.cc/?83h9X6BCipLc 1`] = `
-[
-  "0/1 -> 3/4: F4",
-  "0/1 -> 3/4: Bb4",
-  "0/1 -> 3/4: D5",
-  "3/4 -> 5/4: D4",
-  "3/4 -> 5/4: G4",
-  "3/4 -> 5/4: Bb4",
-  "0/1 -> 3/4: G3",
-  "3/4 -> 3/2: G3",
-]
-`;
-
-exports[`renders shared tunes > shared tune 20 https://strudel.cc/?Ii6-cLJkxdw9 1`] = `
-[
-  "0/1 -> 1/10: C3",
-  "0/1 -> 1/10: E3",
-  "0/1 -> 1/10: G3",
-  "1/4 -> 7/20: B3",
-  "1/4 -> 7/20: E4",
-  "1/4 -> 7/20: E3",
-  "1/2 -> 3/5: C3",
-  "1/2 -> 3/5: A2",
-  "1/2 -> 3/5: C3",
-  "3/4 -> 17/20: E3",
-  "3/4 -> 17/20: G3",
-  "3/4 -> 17/20: B3",
-  "0/1 -> 1/5: C2",
-  "1/2 -> 7/10: E2",
-]
-`;
-
-exports[`renders shared tunes > shared tune 21 https://strudel.cc/?-QCLFGNo4Q3J 1`] = `
-[
-  "0/1 -> 1/4: {\\"n\\":62,\\"s\\":\\"sawtooth\\",\\"cutoff\\":2000}",
-  "1/2 -> 5/8: {\\"n\\":50,\\"s\\":\\"square\\",\\"cutoff\\":2000}",
-  "3/4 -> 7/8: {\\"n\\":41,\\"s\\":\\"square\\",\\"cutoff\\":2000}",
-  "1/4 -> 1/2: {\\"n\\":74,\\"s\\":\\"sawtooth\\",\\"cutoff\\":2000}",
-  "3/4 -> 7/8: {\\"n\\":62,\\"s\\":\\"square\\",\\"cutoff\\":2000}",
-  "0/1 -> 1/4: {\\"n\\":43,\\"s\\":\\"sawtooth\\",\\"cutoff\\":2000}",
-  "1/2 -> 3/4: {\\"n\\":69,\\"s\\":\\"square\\",\\"cutoff\\":2000}",
-  "1/4 -> 1/2: {\\"n\\":55,\\"s\\":\\"sawtooth\\",\\"cutoff\\":2000}",
-  "3/4 -> 1/1: {\\"n\\":81,\\"s\\":\\"square\\",\\"cutoff\\":2000}",
-]
-`;
-
-exports[`renders shared tunes > shared tune 22 https://strudel.cc/?vwau_1P_anLs 1`] = `
-[
-  "1/8 -> 1/4: {\\"n\\":\\"D1\\",\\"s\\":\\"sawtooth\\",\\"gain\\":0.3,\\"attack\\":0.01,\\"decay\\":0.1,\\"sustain\\":0.5,\\"cutoff\\":1699.6897509708342}",
-  "1/8 -> 1/4: {\\"n\\":\\"D1\\",\\"s\\":\\"square\\",\\"gain\\":0.3,\\"attack\\":0.01,\\"decay\\":0.1,\\"sustain\\":0.5,\\"cutoff\\":1699.6897509708342}",
-  "3/8 -> 1/2: {\\"n\\":\\"D2\\",\\"s\\":\\"sawtooth\\",\\"gain\\":0.3,\\"attack\\":0.01,\\"decay\\":0.1,\\"sustain\\":0.5,\\"cutoff\\":1765.826371664994}",
-  "3/8 -> 1/2: {\\"n\\":\\"D2\\",\\"s\\":\\"square\\",\\"gain\\":0.3,\\"attack\\":0.01,\\"decay\\":0.1,\\"sustain\\":0.5,\\"cutoff\\":1765.826371664994}",
-  "1/2 -> 5/8: {\\"n\\":\\"D1\\",\\"s\\":\\"sawtooth\\",\\"gain\\":0.3,\\"attack\\":0.01,\\"decay\\":0.1,\\"sustain\\":0.5,\\"cutoff\\":1798.799979846742}",
-  "1/2 -> 5/8: {\\"n\\":\\"D1\\",\\"s\\":\\"square\\",\\"gain\\":0.3,\\"attack\\":0.01,\\"decay\\":0.1,\\"sustain\\":0.5,\\"cutoff\\":1798.799979846742}",
-  "3/4 -> 7/8: {\\"n\\":\\"D3\\",\\"s\\":\\"sawtooth\\",\\"gain\\":0.3,\\"attack\\":0.01,\\"decay\\":0.1,\\"sustain\\":0.5,\\"cutoff\\":1864.4584935007128}",
-  "3/4 -> 7/8: {\\"n\\":\\"D3\\",\\"s\\":\\"square\\",\\"gain\\":0.3,\\"attack\\":0.01,\\"decay\\":0.1,\\"sustain\\":0.5,\\"cutoff\\":1864.4584935007128}",
-  "7/8 -> 1/1: {\\"n\\":\\"D3\\",\\"s\\":\\"sawtooth\\",\\"gain\\":0.3,\\"attack\\":0.01,\\"decay\\":0.1,\\"sustain\\":0.5,\\"cutoff\\":1897.1038487394403}",
-  "7/8 -> 1/1: {\\"n\\":\\"D3\\",\\"s\\":\\"square\\",\\"gain\\":0.3,\\"attack\\":0.01,\\"decay\\":0.1,\\"sustain\\":0.5,\\"cutoff\\":1897.1038487394403}",
-  "-3/8 -> 1/8: {\\"n\\":\\"G3\\",\\"s\\":\\"square\\",\\"gain\\":0.7,\\"attack\\":0.01,\\"decay\\":0.1,\\"sustain\\":0,\\"cutoff\\":1666.5665766857219}",
-  "-3/8 -> 1/8: {\\"n\\":\\"B3\\",\\"s\\":\\"square\\",\\"gain\\":0.7,\\"attack\\":0.01,\\"decay\\":0.1,\\"sustain\\":0,\\"cutoff\\":1666.5665766857219}",
-  "-1/4 -> 1/4: {\\"n\\":\\"G3\\",\\"s\\":\\"square\\",\\"gain\\":0.7,\\"attack\\":0.01,\\"decay\\":0.1,\\"sustain\\":0,\\"cutoff\\":1683.1306585059317}",
-  "-1/4 -> 1/4: {\\"n\\":\\"B3\\",\\"s\\":\\"square\\",\\"gain\\":0.7,\\"attack\\":0.01,\\"decay\\":0.1,\\"sustain\\":0,\\"cutoff\\":1683.1306585059317}",
-  "-1/8 -> 3/8: {\\"n\\":\\"G3\\",\\"s\\":\\"square\\",\\"gain\\":0.7,\\"attack\\":0.01,\\"decay\\":0.1,\\"sustain\\":0,\\"cutoff\\":1699.6897509708342}",
-  "-1/8 -> 3/8: {\\"n\\":\\"B3\\",\\"s\\":\\"square\\",\\"gain\\":0.7,\\"attack\\":0.01,\\"decay\\":0.1,\\"sustain\\":0,\\"cutoff\\":1699.6897509708342}",
-  "0/1 -> 3/8: {\\"n\\":\\"C#6\\",\\"s\\":\\"sawtooth\\",\\"gain\\":0.26103468453995016,\\"attack\\":0.001,\\"decay\\":0.2,\\"sustain\\":0,\\"hcutoff\\":5998.072590601808,\\"cutoff\\":4000}",
-  "0/1 -> 3/8: {\\"n\\":\\"A5\\",\\"s\\":\\"sawtooth\\",\\"gain\\":0.26103468453995016,\\"attack\\":0.001,\\"decay\\":0.2,\\"sustain\\":0,\\"hcutoff\\":5998.072590601808,\\"cutoff\\":4000}",
-  "0/1 -> 3/8: {\\"n\\":\\"E5\\",\\"s\\":\\"sawtooth\\",\\"gain\\":0.26103468453995016,\\"attack\\":0.001,\\"decay\\":0.2,\\"sustain\\":0,\\"hcutoff\\":5998.072590601808,\\"cutoff\\":4000}",
-  "0/1 -> 3/8: {\\"n\\":\\"C#5\\",\\"s\\":\\"sawtooth\\",\\"gain\\":0.26103468453995016,\\"attack\\":0.001,\\"decay\\":0.2,\\"sustain\\":0,\\"hcutoff\\":5998.072590601808,\\"cutoff\\":4000}",
-  "3/8 -> 3/4: {\\"n\\":\\"A5\\",\\"s\\":\\"sawtooth\\",\\"gain\\":0.2828651860235305,\\"attack\\":0.001,\\"decay\\":0.2,\\"sustain\\":0,\\"hcutoff\\":5982.671142387316,\\"cutoff\\":4000}",
-  "3/8 -> 3/4: {\\"n\\":\\"F#5\\",\\"s\\":\\"sawtooth\\",\\"gain\\":0.2828651860235305,\\"attack\\":0.001,\\"decay\\":0.2,\\"sustain\\":0,\\"hcutoff\\":5982.671142387316,\\"cutoff\\":4000}",
-  "3/8 -> 3/4: {\\"n\\":\\"C#5\\",\\"s\\":\\"sawtooth\\",\\"gain\\":0.2828651860235305,\\"attack\\":0.001,\\"decay\\":0.2,\\"sustain\\":0,\\"hcutoff\\":5982.671142387316,\\"cutoff\\":4000}",
-  "3/8 -> 3/4: {\\"n\\":\\"A4\\",\\"s\\":\\"sawtooth\\",\\"gain\\":0.2828651860235305,\\"attack\\":0.001,\\"decay\\":0.2,\\"sustain\\":0,\\"hcutoff\\":5982.671142387316,\\"cutoff\\":4000}",
-  "3/4 -> 1/1: {\\"n\\":\\"F#5\\",\\"s\\":\\"sawtooth\\",\\"gain\\":0.300533478008833,\\"attack\\":0.001,\\"decay\\":0.2,\\"sustain\\":0,\\"hcutoff\\":5958.137268909887,\\"cutoff\\":4000}",
-  "3/4 -> 1/1: {\\"n\\":\\"A4\\",\\"s\\":\\"sawtooth\\",\\"gain\\":0.300533478008833,\\"attack\\":0.001,\\"decay\\":0.2,\\"sustain\\":0,\\"hcutoff\\":5958.137268909887,\\"cutoff\\":4000}",
-  "1/4 -> 5/8: {\\"n\\":\\"C#6\\",\\"s\\":\\"sawtooth\\",\\"gain\\":0.2756442833140452,\\"attack\\":0.001,\\"decay\\":0.2,\\"sustain\\":0,\\"hcutoff\\":5989.512318936654,\\"cutoff\\":4000}",
-  "1/4 -> 5/8: {\\"n\\":\\"A5\\",\\"s\\":\\"sawtooth\\",\\"gain\\":0.2756442833140452,\\"attack\\":0.001,\\"decay\\":0.2,\\"sustain\\":0,\\"hcutoff\\":5989.512318936654,\\"cutoff\\":4000}",
-  "1/4 -> 5/8: {\\"n\\":\\"E5\\",\\"s\\":\\"sawtooth\\",\\"gain\\":0.2756442833140452,\\"attack\\":0.001,\\"decay\\":0.2,\\"sustain\\":0,\\"hcutoff\\":5989.512318936654,\\"cutoff\\":4000}",
-  "1/4 -> 5/8: {\\"n\\":\\"C#5\\",\\"s\\":\\"sawtooth\\",\\"gain\\":0.2756442833140452,\\"attack\\":0.001,\\"decay\\":0.2,\\"sustain\\":0,\\"hcutoff\\":5989.512318936654,\\"cutoff\\":4000}",
-  "5/8 -> 1/1: {\\"n\\":\\"A5\\",\\"s\\":\\"sawtooth\\",\\"gain\\":0.29705226105983373,\\"attack\\":0.001,\\"decay\\":0.2,\\"sustain\\":0,\\"hcutoff\\":5963.890147645195,\\"cutoff\\":4000}",
-  "5/8 -> 1/1: {\\"n\\":\\"F#5\\",\\"s\\":\\"sawtooth\\",\\"gain\\":0.29705226105983373,\\"attack\\":0.001,\\"decay\\":0.2,\\"sustain\\":0,\\"hcutoff\\":5963.890147645195,\\"cutoff\\":4000}",
-  "5/8 -> 1/1: {\\"n\\":\\"C#5\\",\\"s\\":\\"sawtooth\\",\\"gain\\":0.29705226105983373,\\"attack\\":0.001,\\"decay\\":0.2,\\"sustain\\":0,\\"hcutoff\\":5963.890147645195,\\"cutoff\\":4000}",
-  "5/8 -> 1/1: {\\"n\\":\\"A4\\",\\"s\\":\\"sawtooth\\",\\"gain\\":0.29705226105983373,\\"attack\\":0.001,\\"decay\\":0.2,\\"sustain\\":0,\\"hcutoff\\":5963.890147645195,\\"cutoff\\":4000}",
-  "1/2 -> 7/8: {\\"n\\":\\"C#6\\",\\"s\\":\\"sawtooth\\",\\"gain\\":0.29000691362123476,\\"attack\\":0.001,\\"decay\\":0.2,\\"sustain\\":0,\\"hcutoff\\":5974.128467049176,\\"cutoff\\":4000}",
-  "1/2 -> 7/8: {\\"n\\":\\"A5\\",\\"s\\":\\"sawtooth\\",\\"gain\\":0.29000691362123476,\\"attack\\":0.001,\\"decay\\":0.2,\\"sustain\\":0,\\"hcutoff\\":5974.128467049176,\\"cutoff\\":4000}",
-  "1/2 -> 7/8: {\\"n\\":\\"E5\\",\\"s\\":\\"sawtooth\\",\\"gain\\":0.29000691362123476,\\"attack\\":0.001,\\"decay\\":0.2,\\"sustain\\":0,\\"hcutoff\\":5974.128467049176,\\"cutoff\\":4000}",
-  "1/2 -> 7/8: {\\"n\\":\\"C#5\\",\\"s\\":\\"sawtooth\\",\\"gain\\":0.29000691362123476,\\"attack\\":0.001,\\"decay\\":0.2,\\"sustain\\":0,\\"hcutoff\\":5974.128467049176,\\"cutoff\\":4000}",
-  "7/8 -> 5/4: {\\"n\\":\\"A5\\",\\"s\\":\\"sawtooth\\",\\"gain\\":0.3107861971007485,\\"attack\\":0.001,\\"decay\\":0.2,\\"sustain\\":0,\\"hcutoff\\":5938.355801271282,\\"cutoff\\":4000}",
-  "7/8 -> 5/4: {\\"n\\":\\"C#5\\",\\"s\\":\\"sawtooth\\",\\"gain\\":0.3107861971007485,\\"attack\\":0.001,\\"decay\\":0.2,\\"sustain\\":0,\\"hcutoff\\":5938.355801271282,\\"cutoff\\":4000}",
-  "3/4 -> 9/8: {\\"n\\":\\"C#6\\",\\"s\\":\\"sawtooth\\",\\"gain\\":0.30398425548024827,\\"attack\\":0.001,\\"decay\\":0.2,\\"sustain\\":0,\\"hcutoff\\":5951.963201008076,\\"cutoff\\":4000}",
-  "3/4 -> 9/8: {\\"n\\":\\"E5\\",\\"s\\":\\"sawtooth\\",\\"gain\\":0.30398425548024827,\\"attack\\":0.001,\\"decay\\":0.2,\\"sustain\\":0,\\"hcutoff\\":5951.963201008076,\\"cutoff\\":4000}",
-  "0/1 -> 1/4: {\\"n\\":\\"F#5\\",\\"s\\":\\"sawtooth\\",\\"gain\\":0.2573601511491127,\\"attack\\":0.001,\\"decay\\":0.2,\\"sustain\\":0,\\"hcutoff\\":5999.143312438893,\\"cutoff\\":4000}",
-  "0/1 -> 1/4: {\\"n\\":\\"A4\\",\\"s\\":\\"sawtooth\\",\\"gain\\":0.2573601511491127,\\"attack\\":0.001,\\"decay\\":0.2,\\"sustain\\":0,\\"hcutoff\\":5999.143312438893,\\"cutoff\\":4000}",
-  "-1/8 -> 1/4: {\\"n\\":\\"A5\\",\\"s\\":\\"sawtooth\\",\\"gain\\":0.2573601511491127,\\"attack\\":0.001,\\"decay\\":0.2,\\"sustain\\":0,\\"hcutoff\\":5999.143312438893,\\"cutoff\\":4000}",
-  "-1/8 -> 1/4: {\\"n\\":\\"F#5\\",\\"s\\":\\"sawtooth\\",\\"gain\\":0.2573601511491127,\\"attack\\":0.001,\\"decay\\":0.2,\\"sustain\\":0,\\"hcutoff\\":5999.143312438893,\\"cutoff\\":4000}",
-  "-1/8 -> 1/4: {\\"n\\":\\"C#5\\",\\"s\\":\\"sawtooth\\",\\"gain\\":0.2573601511491127,\\"attack\\":0.001,\\"decay\\":0.2,\\"sustain\\":0,\\"hcutoff\\":5999.143312438893,\\"cutoff\\":4000}",
-  "-1/8 -> 1/4: {\\"n\\":\\"A4\\",\\"s\\":\\"sawtooth\\",\\"gain\\":0.2573601511491127,\\"attack\\":0.001,\\"decay\\":0.2,\\"sustain\\":0,\\"hcutoff\\":5999.143312438893,\\"cutoff\\":4000}",
-  "1/4 -> 1/2: {\\"n\\":\\"F#5\\",\\"s\\":\\"sawtooth\\",\\"gain\\":0.27200957116830426,\\"attack\\":0.001,\\"decay\\":0.2,\\"sustain\\":0,\\"hcutoff\\":5992.29333433282,\\"cutoff\\":4000}",
-  "1/4 -> 1/2: {\\"n\\":\\"A4\\",\\"s\\":\\"sawtooth\\",\\"gain\\":0.27200957116830426,\\"attack\\":0.001,\\"decay\\":0.2,\\"sustain\\":0,\\"hcutoff\\":5992.29333433282,\\"cutoff\\":4000}",
-  "-1/4 -> 1/8: {\\"n\\":\\"C#6\\",\\"s\\":\\"sawtooth\\",\\"gain\\":0.2536811842784369,\\"attack\\":0.001,\\"decay\\":0.2,\\"sustain\\":0,\\"hcutoff\\":5999.785818935017,\\"cutoff\\":4000}",
-  "-1/4 -> 1/8: {\\"n\\":\\"A5\\",\\"s\\":\\"sawtooth\\",\\"gain\\":0.2536811842784369,\\"attack\\":0.001,\\"decay\\":0.2,\\"sustain\\":0,\\"hcutoff\\":5999.785818935017,\\"cutoff\\":4000}",
-  "-1/4 -> 1/8: {\\"n\\":\\"E5\\",\\"s\\":\\"sawtooth\\",\\"gain\\":0.2536811842784369,\\"attack\\":0.001,\\"decay\\":0.2,\\"sustain\\":0,\\"hcutoff\\":5999.785818935017,\\"cutoff\\":4000}",
-  "-1/4 -> 1/8: {\\"n\\":\\"C#5\\",\\"s\\":\\"sawtooth\\",\\"gain\\":0.2536811842784369,\\"attack\\":0.001,\\"decay\\":0.2,\\"sustain\\":0,\\"hcutoff\\":5999.785818935017,\\"cutoff\\":4000}",
-  "1/8 -> 1/2: {\\"n\\":\\"A5\\",\\"s\\":\\"sawtooth\\",\\"gain\\":0.26836160127988246,\\"attack\\":0.001,\\"decay\\":0.2,\\"sustain\\":0,\\"hcutoff\\":5994.647308096509,\\"cutoff\\":4000}",
-  "1/8 -> 1/2: {\\"n\\":\\"F#5\\",\\"s\\":\\"sawtooth\\",\\"gain\\":0.26836160127988246,\\"attack\\":0.001,\\"decay\\":0.2,\\"sustain\\":0,\\"hcutoff\\":5994.647308096509,\\"cutoff\\":4000}",
-  "1/8 -> 1/2: {\\"n\\":\\"C#5\\",\\"s\\":\\"sawtooth\\",\\"gain\\":0.26836160127988246,\\"attack\\":0.001,\\"decay\\":0.2,\\"sustain\\":0,\\"hcutoff\\":5994.647308096509,\\"cutoff\\":4000}",
-  "1/8 -> 1/2: {\\"n\\":\\"A4\\",\\"s\\":\\"sawtooth\\",\\"gain\\":0.26836160127988246,\\"attack\\":0.001,\\"decay\\":0.2,\\"sustain\\":0,\\"hcutoff\\":5994.647308096509,\\"cutoff\\":4000}",
-  "1/2 -> 3/4: {\\"n\\":\\"F#5\\",\\"s\\":\\"sawtooth\\",\\"gain\\":0.28644702698548963,\\"attack\\":0.001,\\"decay\\":0.2,\\"sustain\\":0,\\"hcutoff\\":5978.612153434527,\\"cutoff\\":4000}",
-  "1/2 -> 3/4: {\\"n\\":\\"A4\\",\\"s\\":\\"sawtooth\\",\\"gain\\":0.28644702698548963,\\"attack\\":0.001,\\"decay\\":0.2,\\"sustain\\":0,\\"hcutoff\\":5978.612153434527,\\"cutoff\\":4000}",
-  "0/1 -> 1/4: bd",
-  "1/2 -> 3/4: bd",
-  "1/2 -> 1/1: sn",
-  "1/4 -> 1/2: hh3",
-  "3/4 -> 1/1: hh3",
-]
-`;
-
-exports[`renders shared tunes > shared tune 23 https://strudel.cc/?wVExAEFBUPQB 1`] = `
-[
-  "0/1 -> 1/4: {\\"note\\":\\"F3\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.49537037037037035}",
-  "0/1 -> 1/4: {\\"note\\":\\"A3\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5138888888888888}",
-  "0/1 -> 1/4: {\\"note\\":\\"C4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5277777777777778}",
-  "0/1 -> 1/4: {\\"note\\":\\"E4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5462962962962963}",
-  "3/4 -> 1/1: {\\"note\\":\\"F3\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.49537037037037035}",
-  "3/4 -> 1/1: {\\"note\\":\\"A3\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5138888888888888}",
-  "3/4 -> 1/1: {\\"note\\":\\"C4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5277777777777778}",
-  "3/4 -> 1/1: {\\"note\\":\\"E4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5462962962962963}",
-  "0/1 -> 19/20: {\\"note\\":\\"D2\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.42592592592592593}",
-]
-`;
-
-exports[`renders shared tunes > shared tune 24 https://strudel.cc/?C8mMgTmvsnue 1`] = `
-[
-  "0/1 -> 1/10: C3",
-  "0/1 -> 1/10: E3",
-  "0/1 -> 1/10: G3",
-  "1/4 -> 7/20: B3",
-  "1/4 -> 7/20: E4",
-  "1/4 -> 7/20: E3",
-  "1/2 -> 3/5: C3",
-  "1/2 -> 3/5: A2",
-  "1/2 -> 3/5: C3",
-  "3/4 -> 17/20: E3",
-  "3/4 -> 17/20: G3",
-  "3/4 -> 17/20: B3",
-  "0/1 -> 1/5: C2",
-  "1/2 -> 7/10: E2",
-]
-`;
-
-exports[`renders shared tunes > shared tune 25 https://strudel.cc/?EeNsQ8hdNZwN 1`] = `
-[
-  "0/1 -> 1/10: C3",
-  "0/1 -> 1/10: E3",
-  "0/1 -> 1/10: G3",
-  "1/4 -> 7/20: B3",
-  "1/4 -> 7/20: E4",
-  "1/4 -> 7/20: E3",
-  "1/2 -> 3/5: C3",
-  "1/2 -> 3/5: A2",
-  "1/2 -> 3/5: C3",
-  "3/4 -> 17/20: E3",
-  "3/4 -> 17/20: G3",
-  "3/4 -> 17/20: B3",
-  "0/1 -> 1/5: C2",
-  "1/2 -> 7/10: E2",
-]
-`;
-
-exports[`renders shared tunes > shared tune 26 https://strudel.cc/?AoWRw1oZkytb 1`] = `
-[
-  "0/1 -> 1/2: e5",
-  "1/2 -> 3/4: b4",
-  "3/4 -> 1/1: c5",
-  "0/1 -> 1/4: e2",
-  "1/4 -> 1/2: e3",
-  "1/2 -> 3/4: e2",
-  "3/4 -> 1/1: e3",
-]
-`;
-
-exports[`renders shared tunes > shared tune 27 https://strudel.cc/?UaTcY5YrOahl 1`] = `
-[
-  "-1666666666666667/7500000000000000 -> 2/9: G3",
-  "0/1 -> 4/3: E3",
-  "0/1 -> 4/3: A3",
-  "0/1 -> 4/3: D4",
-  "0/1 -> 4/3: G4",
-  "0/1 -> 4/3: B4",
-  "0/1 -> 2/3: D2",
-  "2/3 -> 7/9: D2",
-  "8/9 -> 1/1: D2",
-  "0/1 -> 2/9: c1",
-  "2/9 -> 4/9: c1",
-  "4/9 -> 2/3: c1",
-  "2/3 -> 8/9: c1",
-  "8/9 -> 10/9: c1",
-  "2/3 -> 4/3: c3",
-  "0/1 -> 10/9: c1",
-  "0/1 -> 16/3: F3",
-  "0/1 -> 16/3: A3",
-]
-`;
-
-exports[`renders shared tunes > shared tune 28 https://strudel.cc/?YPLI4xhBDMpV 1`] = `
-[
-  "0/1 -> 1/1: bd",
-  "0/1 -> 1/4: hh",
-  "1/4 -> 1/2: hh",
-  "1/2 -> 3/4: hh",
-  "3/4 -> 1/1: hh",
-  "1/2 -> 1/1: sn",
-]
-`;
-
-exports[`renders shared tunes > shared tune 29 https://strudel.cc/?amB31Tm55hnv 1`] = `
-[
-  "0/1 -> 1/4: B3",
-  "0/1 -> 1/4: D4",
-  "0/1 -> 1/4: E4",
-  "0/1 -> 1/4: G4",
-  "1/4 -> 1/2: C4",
-  "1/4 -> 1/2: E4",
-  "1/4 -> 1/2: F4",
-  "1/4 -> 1/2: A4",
-  "1/2 -> 3/4: A3",
-  "1/2 -> 3/4: C4",
-  "1/2 -> 3/4: E4",
-  "1/2 -> 3/4: G4",
-  "3/4 -> 1/1: B3",
-  "3/4 -> 1/1: E4",
-  "3/4 -> 1/1: F4",
-  "3/4 -> 1/1: A4",
-  "0/1 -> 1/2: C2",
-  "1/2 -> 1/1: D2",
-]
-`;
-
-exports[`renders shared tunes > shared tune 30 https://strudel.cc/?8OyCVeBYuqru 1`] = `
-[
-  "0/1 -> 4/3: B4",
-  "0/1 -> 1/3: C3",
-  "1/3 -> 2/3: G3",
-  "2/3 -> 2/1: E4",
-]
-`;
-
-exports[`renders shared tunes > shared tune 31 https://strudel.cc/?lzjNrzv5qXL2 1`] = `
-[
-  "0/1 -> 1/3: bd",
-  "1/3 -> 2/3: hh",
-  "2/3 -> 1/1: sn",
-  "0/1 -> 1/20: G4",
-  "1/6 -> 13/60: G4",
-  "1/3 -> 23/60: B3",
-  "1/2 -> 11/20: B3",
-  "1/3 -> 23/60: E4",
-  "1/2 -> 11/20: E4",
-  "2/3 -> 43/60: G3",
-  "5/6 -> 53/60: G3",
-  "0/1 -> 4/3: c2",
-  "0/1 -> 4/3: c2",
-]
-`;
-
-exports[`renders shared tunes > shared tune 32 https://strudel.cc/?b5ZZnwaI-UuT 1`] = `
-[
-  "0/1 -> 7/5: {\\"s\\":\\"bd\\",\\"speed\\":0.7779313247650861}",
-  "7/10 -> 7/5: {\\"s\\":\\"sd\\",\\"speed\\":0.8397284299499006}",
-  "0/1 -> 7/20: {\\"s\\":\\"hh\\",\\"speed\\":0.7025019456070822}",
-  "7/20 -> 7/10: {\\"s\\":\\"hh\\",\\"speed\\":0.7428945731647673}",
-  "7/10 -> 21/20: {\\"s\\":\\"hh\\",\\"speed\\":0.812968076365405}",
-  "0/1 -> 7/5: {\\"n\\":33.129885541275144,\\"decay\\":0.15,\\"sustain\\":0,\\"s\\":\\"sawtooth\\",\\"gain\\":0.4,\\"cutoff\\":3669.6267869262615}",
-  "0/1 -> 7/5: {\\"n\\":33.17988554127514,\\"decay\\":0.15,\\"sustain\\":0,\\"s\\":\\"sawtooth\\",\\"gain\\":0.4,\\"cutoff\\":3669.6267869262615}",
-  "0/1 -> 7/5: {\\"n\\":55.129885541275144,\\"s\\":\\"sawtooth\\",\\"gain\\":0.16,\\"cutoff\\":500,\\"attack\\":1}",
-  "0/1 -> 7/5: {\\"n\\":59.129885541275144,\\"s\\":\\"sawtooth\\",\\"gain\\":0.16,\\"cutoff\\":500,\\"attack\\":1}",
-  "0/1 -> 7/5: {\\"n\\":60.129885541275144,\\"s\\":\\"sawtooth\\",\\"gain\\":0.16,\\"cutoff\\":500,\\"attack\\":1}",
-  "0/1 -> 7/5: {\\"n\\":64.12988554127514,\\"s\\":\\"sawtooth\\",\\"gain\\":0.16,\\"cutoff\\":500,\\"attack\\":1}",
-  "0/1 -> 7/5: {\\"n\\":55.16988554127514,\\"s\\":\\"sawtooth\\",\\"gain\\":0.16,\\"cutoff\\":500,\\"attack\\":1}",
-  "0/1 -> 7/5: {\\"n\\":59.16988554127514,\\"s\\":\\"sawtooth\\",\\"gain\\":0.16,\\"cutoff\\":500,\\"attack\\":1}",
-  "0/1 -> 7/5: {\\"n\\":60.16988554127514,\\"s\\":\\"sawtooth\\",\\"gain\\":0.16,\\"cutoff\\":500,\\"attack\\":1}",
-  "0/1 -> 7/5: {\\"n\\":64.16988554127515,\\"s\\":\\"sawtooth\\",\\"gain\\":0.16,\\"cutoff\\":500,\\"attack\\":1}",
-  "7/40 -> 7/20: {\\"n\\":69.01266877519555,\\"decay\\":0.1,\\"sustain\\":0,\\"s\\":\\"triangle\\",\\"gain\\":0.15}",
-  "7/20 -> 21/40: {\\"n\\":69.04676036055696,\\"decay\\":0.1,\\"sustain\\":0,\\"s\\":\\"triangle\\",\\"gain\\":0.15}",
-  "7/20 -> 21/40: {\\"n\\":72.04676036055696,\\"decay\\":0.1,\\"sustain\\":0,\\"s\\":\\"triangle\\",\\"gain\\":0.15}",
-  "7/10 -> 7/8: {\\"n\\":72.16001184806132,\\"decay\\":0.1,\\"sustain\\":0,\\"s\\":\\"triangle\\",\\"gain\\":0.15}",
-  "7/8 -> 21/20: {\\"n\\":72.21301072199333,\\"decay\\":0.1,\\"sustain\\":0,\\"s\\":\\"triangle\\",\\"gain\\":0.15}",
-  "7/8 -> 21/20: {\\"n\\":88.21301072199333,\\"decay\\":0.1,\\"sustain\\":0,\\"s\\":\\"triangle\\",\\"gain\\":0.15}",
-  "7/40 -> 7/20: {\\"n\\":69.05266877519557,\\"decay\\":0.1,\\"sustain\\":0,\\"s\\":\\"triangle\\",\\"gain\\":0.15}",
-  "7/20 -> 21/40: {\\"n\\":69.08676036055695,\\"decay\\":0.1,\\"sustain\\":0,\\"s\\":\\"triangle\\",\\"gain\\":0.15}",
-  "7/20 -> 21/40: {\\"n\\":72.08676036055695,\\"decay\\":0.1,\\"sustain\\":0,\\"s\\":\\"triangle\\",\\"gain\\":0.15}",
-  "7/10 -> 7/8: {\\"n\\":72.20001184806131,\\"decay\\":0.1,\\"sustain\\":0,\\"s\\":\\"triangle\\",\\"gain\\":0.15}",
-  "7/8 -> 21/20: {\\"n\\":72.25301072199335,\\"decay\\":0.1,\\"sustain\\":0,\\"s\\":\\"triangle\\",\\"gain\\":0.15}",
-  "7/8 -> 21/20: {\\"n\\":88.25301072199335,\\"decay\\":0.1,\\"sustain\\":0,\\"s\\":\\"triangle\\",\\"gain\\":0.15}",
-  "0/1 -> 7/40: {\\"n\\":93.00057728554401,\\"decay\\":0.1,\\"sustain\\":0,\\"s\\":\\"triangle\\",\\"gain\\":0.075}",
-  "0/1 -> 7/40: {\\"n\\":93.04057728554402,\\"decay\\":0.1,\\"sustain\\":0,\\"s\\":\\"triangle\\",\\"gain\\":0.075}",
-  "7/20 -> 21/40: {\\"n\\":69.01266877519555,\\"decay\\":0.1,\\"sustain\\":0,\\"s\\":\\"triangle\\",\\"gain\\":0.075}",
-  "21/40 -> 7/10: {\\"n\\":69.04676036055696,\\"decay\\":0.1,\\"sustain\\":0,\\"s\\":\\"triangle\\",\\"gain\\":0.075}",
-  "21/40 -> 7/10: {\\"n\\":72.04676036055696,\\"decay\\":0.1,\\"sustain\\":0,\\"s\\":\\"triangle\\",\\"gain\\":0.075}",
-  "7/8 -> 21/20: {\\"n\\":72.16001184806132,\\"decay\\":0.1,\\"sustain\\":0,\\"s\\":\\"triangle\\",\\"gain\\":0.075}",
-  "7/20 -> 21/40: {\\"n\\":69.05266877519557,\\"decay\\":0.1,\\"sustain\\":0,\\"s\\":\\"triangle\\",\\"gain\\":0.075}",
-  "21/40 -> 7/10: {\\"n\\":69.08676036055695,\\"decay\\":0.1,\\"sustain\\":0,\\"s\\":\\"triangle\\",\\"gain\\":0.075}",
-  "21/40 -> 7/10: {\\"n\\":72.08676036055695,\\"decay\\":0.1,\\"sustain\\":0,\\"s\\":\\"triangle\\",\\"gain\\":0.075}",
-  "7/8 -> 21/20: {\\"n\\":72.20001184806131,\\"decay\\":0.1,\\"sustain\\":0,\\"s\\":\\"triangle\\",\\"gain\\":0.075}",
-  "7/40 -> 7/20: {\\"n\\":93.00057728554401,\\"decay\\":0.1,\\"sustain\\":0,\\"s\\":\\"triangle\\",\\"gain\\":0.049999999999999996}",
-  "7/40 -> 7/20: {\\"n\\":93.04057728554402,\\"decay\\":0.1,\\"sustain\\":0,\\"s\\":\\"triangle\\",\\"gain\\":0.049999999999999996}",
-  "21/40 -> 7/10: {\\"n\\":69.01266877519555,\\"decay\\":0.1,\\"sustain\\":0,\\"s\\":\\"triangle\\",\\"gain\\":0.049999999999999996}",
-  "7/10 -> 7/8: {\\"n\\":69.04676036055696,\\"decay\\":0.1,\\"sustain\\":0,\\"s\\":\\"triangle\\",\\"gain\\":0.049999999999999996}",
-  "7/10 -> 7/8: {\\"n\\":72.04676036055696,\\"decay\\":0.1,\\"sustain\\":0,\\"s\\":\\"triangle\\",\\"gain\\":0.049999999999999996}",
-  "21/40 -> 7/10: {\\"n\\":69.05266877519557,\\"decay\\":0.1,\\"sustain\\":0,\\"s\\":\\"triangle\\",\\"gain\\":0.049999999999999996}",
-  "7/10 -> 7/8: {\\"n\\":69.08676036055695,\\"decay\\":0.1,\\"sustain\\":0,\\"s\\":\\"triangle\\",\\"gain\\":0.049999999999999996}",
-  "7/10 -> 7/8: {\\"n\\":72.08676036055695,\\"decay\\":0.1,\\"sustain\\":0,\\"s\\":\\"triangle\\",\\"gain\\":0.049999999999999996}",
-  "0/1 -> 7/40: {\\"n\\":72.0468455057745,\\"decay\\":0.1,\\"sustain\\":0,\\"s\\":\\"triangle\\",\\"gain\\":0.0375}",
-  "0/1 -> 7/40: {\\"n\\":93.0468455057745,\\"decay\\":0.1,\\"sustain\\":0,\\"s\\":\\"triangle\\",\\"gain\\":0.0375}",
-  "7/20 -> 21/40: {\\"n\\":93.00057728554401,\\"decay\\":0.1,\\"sustain\\":0,\\"s\\":\\"triangle\\",\\"gain\\":0.0375}",
-  "0/1 -> 7/40: {\\"n\\":72.0868455057745,\\"decay\\":0.1,\\"sustain\\":0,\\"s\\":\\"triangle\\",\\"gain\\":0.0375}",
-  "0/1 -> 7/40: {\\"n\\":93.0868455057745,\\"decay\\":0.1,\\"sustain\\":0,\\"s\\":\\"triangle\\",\\"gain\\":0.0375}",
-  "7/20 -> 21/40: {\\"n\\":93.04057728554402,\\"decay\\":0.1,\\"sustain\\":0,\\"s\\":\\"triangle\\",\\"gain\\":0.0375}",
-  "7/10 -> 7/8: {\\"n\\":69.01266877519555,\\"decay\\":0.1,\\"sustain\\":0,\\"s\\":\\"triangle\\",\\"gain\\":0.0375}",
-  "7/8 -> 21/20: {\\"n\\":69.04676036055696,\\"decay\\":0.1,\\"sustain\\":0,\\"s\\":\\"triangle\\",\\"gain\\":0.0375}",
-  "7/8 -> 21/20: {\\"n\\":72.04676036055696,\\"decay\\":0.1,\\"sustain\\":0,\\"s\\":\\"triangle\\",\\"gain\\":0.0375}",
-  "7/10 -> 7/8: {\\"n\\":69.05266877519557,\\"decay\\":0.1,\\"sustain\\":0,\\"s\\":\\"triangle\\",\\"gain\\":0.0375}",
-  "7/8 -> 21/20: {\\"n\\":69.08676036055695,\\"decay\\":0.1,\\"sustain\\":0,\\"s\\":\\"triangle\\",\\"gain\\":0.0375}",
-  "7/8 -> 21/20: {\\"n\\":72.08676036055695,\\"decay\\":0.1,\\"sustain\\":0,\\"s\\":\\"triangle\\",\\"gain\\":0.0375}",
-]
-`;
-
-exports[`renders shared tunes > shared tune 33 https://strudel.cc/?YZksJ_k4TsrS 1`] = `
-[
-  "0/1 -> 5/8: F#5",
-  "5/8 -> 5/4: D5",
-  "0/1 -> 5/8: A#3",
-  "0/1 -> 5/8: C#4",
-  "0/1 -> 5/8: D#4",
-  "0/1 -> 5/8: F#4",
-  "5/8 -> 5/4: F#3",
-  "5/8 -> 5/4: B3",
-  "5/8 -> 5/4: C4",
-  "5/8 -> 5/4: E4",
-  "0/1 -> 5/8: B2",
-  "5/8 -> 5/4: D2",
-]
-`;
-
-exports[`renders shared tunes > shared tune 34 https://strudel.cc/?e9-pyQN6vY8E 1`] = `
-[
-  "0/1 -> 2/1: {\\"note\\":\\"D3\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.4814814814814815}",
-  "0/1 -> 2/1: {\\"note\\":\\"D3\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.4814814814814815}",
-  "0/1 -> 1/3: {\\"note\\":\\"C#4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5324074074074074}",
-  "1/6 -> 1/2: {\\"note\\":\\"D4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.537037037037037}",
-  "1/3 -> 2/3: {\\"note\\":\\"C#4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5324074074074074}",
-  "1/2 -> 5/6: {\\"note\\":\\"D4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.537037037037037}",
-  "2/3 -> 1/1: {\\"note\\":\\"C#4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5324074074074074}",
-  "5/6 -> 7/6: {\\"note\\":\\"D4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.537037037037037}",
-  "5/6 -> 7/6: {\\"note\\":\\"D4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.537037037037037}",
-  "0/1 -> 2/1: {\\"note\\":\\"A3\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5138888888888888}",
-  "0/1 -> 2/1: {\\"note\\":\\"A3\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5138888888888888}",
-  "0/1 -> 2/1: {\\"note\\":\\"G3\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5046296296296297}",
-  "0/1 -> 2/1: {\\"note\\":\\"G3\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5046296296296297}",
-]
-`;
-
-exports[`renders shared tunes > shared tune 35 https://strudel.cc/?ar2sdYnjIBLm 1`] = `
-[
-  "0/1 -> 5/8: F#5",
-  "5/8 -> 5/4: D5",
-  "0/1 -> 5/8: A#3",
-  "0/1 -> 5/8: C#4",
-  "0/1 -> 5/8: D#4",
-  "0/1 -> 5/8: F#4",
-  "5/8 -> 5/4: F#3",
-  "5/8 -> 5/4: B3",
-  "5/8 -> 5/4: C4",
-  "5/8 -> 5/4: E4",
-  "0/1 -> 5/8: B2",
-  "5/8 -> 5/4: D2",
-]
-`;
-
-exports[`renders shared tunes > shared tune 38 https://strudel.cc/?RDyvc3SOo6kX 1`] = `[]`;
-
-exports[`renders shared tunes > shared tune 39 https://strudel.cc/?E9HzjWmePz3x 1`] = `
-[
-  "0/1 -> 1/2: c1",
-  "1/2 -> 1/1: c1",
-  "1/2 -> 1/1: x",
-  "1/4 -> 1/2: c4",
-  "3/4 -> 1/1: c4",
-  "0/1 -> 1/2: B1",
-  "3/4 -> 1/1: B1",
-  "1/4 -> 13/44: A3",
-  "1/4 -> 13/44: C#4",
-  "1/4 -> 13/44: D4",
-  "1/4 -> 13/44: F#4",
-]
-`;
-
-exports[`renders shared tunes > shared tune 40 https://strudel.cc/?qk6JW1Bmi26s 1`] = `
-[
-  "0/1 -> 1/1: {\\"n\\":\\"C2\\",\\"s\\":\\"sawtooth\\",\\"cutoff\\":500}",
-  "1/2 -> 3/5: {\\"note\\":\\"Bb3\\",\\"s\\":\\"sawtooth\\",\\"cutoff\\":2000,\\"gain\\":0.6}",
-  "1/2 -> 3/5: {\\"note\\":\\"D4\\",\\"s\\":\\"sawtooth\\",\\"cutoff\\":2000,\\"gain\\":0.6}",
-  "1/2 -> 3/5: {\\"note\\":\\"Eb4\\",\\"s\\":\\"sawtooth\\",\\"cutoff\\":2000,\\"gain\\":0.6}",
-  "1/2 -> 3/5: {\\"note\\":\\"G4\\",\\"s\\":\\"sawtooth\\",\\"cutoff\\":2000,\\"gain\\":0.6}",
-  "-3/8 -> -11/40: {\\"note\\":\\"B3\\",\\"s\\":\\"sawtooth\\",\\"cutoff\\":2000,\\"gain\\":0.6}",
-  "-3/8 -> -11/40: {\\"note\\":\\"Eb4\\",\\"s\\":\\"sawtooth\\",\\"cutoff\\":2000,\\"gain\\":0.6}",
-  "-3/8 -> -11/40: {\\"note\\":\\"F4\\",\\"s\\":\\"sawtooth\\",\\"cutoff\\":2000,\\"gain\\":0.6}",
-  "-3/8 -> -11/40: {\\"note\\":\\"Ab4\\",\\"s\\":\\"sawtooth\\",\\"cutoff\\":2000,\\"gain\\":0.6}",
-  "5/8 -> 29/40: {\\"note\\":\\"Bb3\\",\\"s\\":\\"sawtooth\\",\\"cutoff\\":2000,\\"gain\\":0.6}",
-  "5/8 -> 29/40: {\\"note\\":\\"D4\\",\\"s\\":\\"sawtooth\\",\\"cutoff\\":2000,\\"gain\\":0.6}",
-  "5/8 -> 29/40: {\\"note\\":\\"Eb4\\",\\"s\\":\\"sawtooth\\",\\"cutoff\\":2000,\\"gain\\":0.6}",
-  "5/8 -> 29/40: {\\"note\\":\\"G4\\",\\"s\\":\\"sawtooth\\",\\"cutoff\\":2000,\\"gain\\":0.6}",
-  "-1/4 -> -3/20: {\\"note\\":\\"B3\\",\\"s\\":\\"sawtooth\\",\\"cutoff\\":2000,\\"gain\\":0.6}",
-  "-1/4 -> -3/20: {\\"note\\":\\"Eb4\\",\\"s\\":\\"sawtooth\\",\\"cutoff\\":2000,\\"gain\\":0.6}",
-  "-1/4 -> -3/20: {\\"note\\":\\"F4\\",\\"s\\":\\"sawtooth\\",\\"cutoff\\":2000,\\"gain\\":0.6}",
-  "-1/4 -> -3/20: {\\"note\\":\\"Ab4\\",\\"s\\":\\"sawtooth\\",\\"cutoff\\":2000,\\"gain\\":0.6}",
-  "3/4 -> 17/20: {\\"note\\":\\"Bb3\\",\\"s\\":\\"sawtooth\\",\\"cutoff\\":2000,\\"gain\\":0.6}",
-  "3/4 -> 17/20: {\\"note\\":\\"D4\\",\\"s\\":\\"sawtooth\\",\\"cutoff\\":2000,\\"gain\\":0.6}",
-  "3/4 -> 17/20: {\\"note\\":\\"Eb4\\",\\"s\\":\\"sawtooth\\",\\"cutoff\\":2000,\\"gain\\":0.6}",
-  "3/4 -> 17/20: {\\"note\\":\\"G4\\",\\"s\\":\\"sawtooth\\",\\"cutoff\\":2000,\\"gain\\":0.6}",
-  "-1/8 -> -1/40: {\\"note\\":\\"B3\\",\\"s\\":\\"sawtooth\\",\\"cutoff\\":2000,\\"gain\\":0.6}",
-  "-1/8 -> -1/40: {\\"note\\":\\"Eb4\\",\\"s\\":\\"sawtooth\\",\\"cutoff\\":2000,\\"gain\\":0.6}",
-  "-1/8 -> -1/40: {\\"note\\":\\"F4\\",\\"s\\":\\"sawtooth\\",\\"cutoff\\":2000,\\"gain\\":0.6}",
-  "-1/8 -> -1/40: {\\"note\\":\\"Ab4\\",\\"s\\":\\"sawtooth\\",\\"cutoff\\":2000,\\"gain\\":0.6}",
-  "7/8 -> 39/40: {\\"note\\":\\"Bb3\\",\\"s\\":\\"sawtooth\\",\\"cutoff\\":2000,\\"gain\\":0.6}",
-  "7/8 -> 39/40: {\\"note\\":\\"D4\\",\\"s\\":\\"sawtooth\\",\\"cutoff\\":2000,\\"gain\\":0.6}",
-  "7/8 -> 39/40: {\\"note\\":\\"Eb4\\",\\"s\\":\\"sawtooth\\",\\"cutoff\\":2000,\\"gain\\":0.6}",
-  "7/8 -> 39/40: {\\"note\\":\\"G4\\",\\"s\\":\\"sawtooth\\",\\"cutoff\\":2000,\\"gain\\":0.6}",
-]
-`;
-
-exports[`renders shared tunes > shared tune 41 https://strudel.cc/?c59geCmbANy8 1`] = `
-[
-  "0/1 -> 1/3: C3",
-  "1/3 -> 2/3: E3",
-  "2/3 -> 1/1: G3",
-]
-`;
-
-exports[`renders shared tunes > shared tune 42 https://strudel.cc/?WD53HbM4B3Xf 1`] = `
-[
-  "0/1 -> 1/3: C3",
-  "1/3 -> 2/3: E3",
-  "2/3 -> 1/1: G3",
-  "-1/12 -> 1/4: F6",
-  "1/4 -> 7/12: C3",
-  "7/12 -> 11/12: E3",
-  "11/12 -> 5/4: G3",
-  "-1/6 -> 1/6: C6",
-  "1/6 -> 1/2: F6",
-  "1/2 -> 5/6: C3",
-  "5/6 -> 7/6: E3",
-  "-1/4 -> 1/12: A5",
-  "1/12 -> 5/12: C6",
-  "5/12 -> 3/4: F6",
-  "3/4 -> 13/12: C3",
-]
-`;
-
-exports[`renders shared tunes > shared tune 43 https://strudel.cc/?g7c_nZZ1fVJS 1`] = `
-[
-  "0/1 -> 1/3: C3",
-  "1/3 -> 2/3: E3",
-  "2/3 -> 1/1: G3",
-  "-1/12 -> 1/4: F6",
-  "1/4 -> 7/12: C3",
-  "7/12 -> 11/12: E3",
-  "11/12 -> 5/4: G3",
-  "-1/6 -> 1/6: C6",
-  "1/6 -> 1/2: F6",
-  "1/2 -> 5/6: C3",
-  "5/6 -> 7/6: E3",
-  "-1/4 -> 1/12: A5",
-  "1/12 -> 5/12: C6",
-  "5/12 -> 3/4: F6",
-  "3/4 -> 13/12: C3",
-]
-`;
-
-exports[`renders shared tunes > shared tune 44 https://strudel.cc/?Don6HOPD2Wwc 1`] = `
-[
-  "0/1 -> 1/3: C3",
-  "1/3 -> 2/3: E3",
-  "2/3 -> 1/1: G3",
-  "1/20 -> 3/20: C5",
-  "3/20 -> 1/4: C5",
-  "1/20 -> 3/20: F5",
-  "3/20 -> 1/4: F5",
-  "1/20 -> 3/20: A5",
-  "3/20 -> 1/4: A5",
-  "1/20 -> 3/20: C6",
-  "3/20 -> 1/4: C6",
-  "1/20 -> 3/20: F6",
-  "3/20 -> 1/4: F6",
-  "1/4 -> 7/12: C3",
-  "7/12 -> 11/12: E3",
-  "11/12 -> 5/4: G3",
-  "3/10 -> 2/5: C5",
-  "2/5 -> 1/2: C5",
-  "3/10 -> 2/5: F5",
-  "2/5 -> 1/2: F5",
-  "3/10 -> 2/5: A5",
-  "2/5 -> 1/2: A5",
-  "3/10 -> 2/5: C6",
-  "2/5 -> 1/2: C6",
-  "3/10 -> 2/5: F6",
-  "2/5 -> 1/2: F6",
-  "1/2 -> 5/6: C3",
-  "5/6 -> 7/6: E3",
-  "11/20 -> 13/20: C5",
-  "13/20 -> 3/4: C5",
-  "11/20 -> 13/20: F5",
-  "13/20 -> 3/4: F5",
-  "11/20 -> 13/20: A5",
-  "13/20 -> 3/4: A5",
-  "11/20 -> 13/20: C6",
-  "13/20 -> 3/4: C6",
-  "11/20 -> 13/20: F6",
-  "13/20 -> 3/4: F6",
-  "3/4 -> 13/12: C3",
-  "4/5 -> 9/10: C5",
-  "9/10 -> 1/1: C5",
-  "4/5 -> 9/10: F5",
-  "9/10 -> 1/1: F5",
-  "4/5 -> 9/10: A5",
-  "9/10 -> 1/1: A5",
-  "4/5 -> 9/10: C6",
-  "9/10 -> 1/1: C6",
-  "4/5 -> 9/10: F6",
-  "9/10 -> 1/1: F6",
-  "-1/12 -> 1/4: F6",
-]
-`;
-
-exports[`renders shared tunes > shared tune 45 https://strudel.cc/?T8n8F1Fvew9g 1`] = `
-[
-  "0/1 -> 1/3: C3",
-  "1/3 -> 2/3: E3",
-  "2/3 -> 1/1: G3",
-  "0/1 -> 1/8: C5",
-  "1/8 -> 1/4: C5",
-  "0/1 -> 1/8: F5",
-  "1/8 -> 1/4: F5",
-  "0/1 -> 1/8: A5",
-  "1/8 -> 1/4: A5",
-  "0/1 -> 1/8: C6",
-  "1/8 -> 1/4: C6",
-  "0/1 -> 1/8: F6",
-  "1/8 -> 1/4: F6",
-  "1/4 -> 7/12: C3",
-  "7/12 -> 11/12: E3",
-  "11/12 -> 5/4: G3",
-  "1/4 -> 3/8: C5",
-  "3/8 -> 1/2: C5",
-  "1/4 -> 3/8: F5",
-  "3/8 -> 1/2: F5",
-  "1/4 -> 3/8: A5",
-  "3/8 -> 1/2: A5",
-  "1/4 -> 3/8: C6",
-  "3/8 -> 1/2: C6",
-  "1/4 -> 3/8: F6",
-  "3/8 -> 1/2: F6",
-  "1/2 -> 5/6: C3",
-  "5/6 -> 7/6: E3",
-  "1/2 -> 5/8: C5",
-  "5/8 -> 3/4: C5",
-  "1/2 -> 5/8: F5",
-  "5/8 -> 3/4: F5",
-  "1/2 -> 5/8: A5",
-  "5/8 -> 3/4: A5",
-  "1/2 -> 5/8: C6",
-  "5/8 -> 3/4: C6",
-  "1/2 -> 5/8: F6",
-  "5/8 -> 3/4: F6",
-  "3/4 -> 13/12: C3",
-  "3/4 -> 7/8: C5",
-  "7/8 -> 1/1: C5",
-  "3/4 -> 7/8: F5",
-  "7/8 -> 1/1: F5",
-  "3/4 -> 7/8: A5",
-  "7/8 -> 1/1: A5",
-  "3/4 -> 7/8: C6",
-  "7/8 -> 1/1: C6",
-  "3/4 -> 7/8: F6",
-  "7/8 -> 1/1: F6",
-  "-1/12 -> 1/4: F6",
-]
-`;
-
-exports[`renders shared tunes > shared tune 46 https://strudel.cc/?wj1_oPJEGjUu 1`] = `
-[
-  "1/2 -> 1/1: a4",
-  "3/4 -> 1/1: a1",
-  "1/2 -> 3/4: a2",
-  "1/4 -> 1/2: a1",
-  "0/1 -> 1/4: a2",
-]
-`;
-
-exports[`renders shared tunes > shared tune 47 https://strudel.cc/?0KNPD8AmV-ms 1`] = `
-[
-  "0/1 -> 1/3: {\\"note\\":\\"c2\\"}",
-  "0/1 -> 1/3: {\\"note\\":\\"d2\\"}",
-  "1/3 -> 2/3: {\\"note\\":\\"d2\\"}",
-  "1/3 -> 2/3: {\\"note\\":\\"e2\\"}",
-  "2/3 -> 7/9: {\\"note\\":\\"e2\\"}",
-  "7/9 -> 8/9: {\\"note\\":\\"e2\\"}",
-  "8/9 -> 1/1: {\\"note\\":\\"e2\\"}",
-]
-`;
-
-exports[`renders shared tunes > shared tune 48 https://strudel.cc/?Y5DZt5A66Jj- 1`] = `
-[
-  "0/1 -> 1/1: F2",
-  "0/1 -> 1/1: F3",
-  "0/1 -> 1/1: C4",
-  "0/1 -> 1/1: Ab4",
-]
-`;
-
-exports[`renders shared tunes > shared tune 49 https://strudel.cc/?RnD3yO0e31p- 1`] = `
-[
-  "0/1 -> 1/1: F2",
-  "0/1 -> 1/1: F3",
-  "0/1 -> 1/1: C4",
-  "0/1 -> 1/1: Ab4",
-]
-`;
-
-exports[`renders shared tunes > shared tune 50 https://strudel.cc/?PQfKr5ac-4x0 1`] = `
-[
-  "0/1 -> 1/2: c1",
-  "1/2 -> 1/1: c1",
-  "1/2 -> 1/1: x",
-  "1/4 -> 1/2: c4",
-  "3/4 -> 1/1: c4",
-  "0/1 -> 1/2: B1",
-  "3/4 -> 1/1: B1",
-  "1/4 -> 13/44: A3",
-  "1/4 -> 13/44: C#4",
-  "1/4 -> 13/44: D4",
-  "1/4 -> 13/44: F#4",
-]
-`;
-
-exports[`renders shared tunes > shared tune 51 https://strudel.cc/?qbyqK2VN_6if 1`] = `
-[
-  "0/1 -> 2/1: {\\"note\\":\\"C3\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.4722222222222222}",
-  "0/1 -> 2/1: {\\"note\\":\\"E3\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.4907407407407407}",
-  "0/1 -> 1/1: {\\"note\\":\\"B3\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5231481481481481}",
-]
-`;
-
-exports[`renders shared tunes > shared tune 52 https://strudel.cc/?0H0ym5HypMyj 1`] = `
-[
-  "0/1 -> 1/2: {\\"note\\":\\"D3\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.4814814814814815}",
-  "1/4 -> 3/4: {\\"note\\":\\"F3\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.49537037037037035}",
-  "0/1 -> 1/4: {\\"note\\":\\"F4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5509259259259259}",
-  "1/2 -> 1/1: {\\"note\\":\\"C4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5277777777777778}",
-  "1/4 -> 1/2: {\\"note\\":\\"A4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5694444444444444}",
-  "3/4 -> 5/4: {\\"note\\":\\"E4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5462962962962963}",
-  "-1/8 -> 1/8: {\\"note\\":\\"Bb3\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5185185185185186}",
-  "-1/8 -> 1/8: {\\"note\\":\\"A4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5694444444444444}",
-  "1/8 -> 5/8: {\\"note\\":\\"D3\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.4814814814814815}",
-  "3/8 -> 7/8: {\\"note\\":\\"F3\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.49537037037037035}",
-  "1/8 -> 3/8: {\\"note\\":\\"F4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5509259259259259}",
-  "5/8 -> 9/8: {\\"note\\":\\"C4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5277777777777778}",
-  "3/8 -> 5/8: {\\"note\\":\\"A4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5694444444444444}",
-  "7/8 -> 11/8: {\\"note\\":\\"E4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5462962962962963}",
-  "0/1 -> 1/4: {\\"note\\":\\"Bb3\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5185185185185186}",
-  "0/1 -> 1/4: {\\"note\\":\\"A4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5694444444444444}",
-  "1/4 -> 3/4: {\\"note\\":\\"D3\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.4814814814814815}",
-  "1/2 -> 1/1: {\\"note\\":\\"F3\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.49537037037037035}",
-  "1/4 -> 1/2: {\\"note\\":\\"F4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5509259259259259}",
-  "3/4 -> 5/4: {\\"note\\":\\"C4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5277777777777778}",
-  "1/2 -> 3/4: {\\"note\\":\\"A4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5694444444444444}",
-  "-1/8 -> 1/8: {\\"note\\":\\"G3\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5046296296296297}",
-  "1/8 -> 3/8: {\\"note\\":\\"Bb3\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5185185185185186}",
-  "-1/8 -> 1/8: {\\"note\\":\\"F4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5509259259259259}",
-  "1/8 -> 3/8: {\\"note\\":\\"A4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5694444444444444}",
-  "3/8 -> 7/8: {\\"note\\":\\"D3\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.4814814814814815}",
-  "5/8 -> 9/8: {\\"note\\":\\"F3\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.49537037037037035}",
-  "3/8 -> 5/8: {\\"note\\":\\"F4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5509259259259259}",
-  "7/8 -> 11/8: {\\"note\\":\\"C4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5277777777777778}",
-  "5/8 -> 7/8: {\\"note\\":\\"A4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5694444444444444}",
-]
-`;
-
-exports[`renders shared tunes > shared tune 53 https://strudel.cc/?YAB9YoUpJwaj 1`] = `
-[
-  "0/1 -> 1/2: c2",
-  "1/2 -> 1/1: g2",
-  "0/1 -> 1/3: B3",
-  "0/1 -> 1/3: D4",
-  "0/1 -> 1/3: E4",
-  "0/1 -> 1/3: G4",
-  "1/3 -> 1/2: B3",
-  "1/3 -> 1/2: D4",
-  "1/3 -> 1/2: E4",
-  "1/3 -> 1/2: G4",
-  "5/6 -> 1/1: B3",
-  "5/6 -> 1/1: D4",
-  "5/6 -> 1/1: E4",
-  "5/6 -> 1/1: G4",
-]
-`;
-
-exports[`renders shared tunes > shared tune 54 https://strudel.cc/?-fdVyijf3Fk0 1`] = `
-[
-  "0/1 -> 1/2: {\\"note\\":\\"c2\\"}",
-  "1/2 -> 1/1: {\\"note\\":\\"g2\\"}",
-  "0/1 -> 1/3: {\\"note\\":\\"B3\\"}",
-  "0/1 -> 1/3: {\\"note\\":\\"D4\\"}",
-  "0/1 -> 1/3: {\\"note\\":\\"E4\\"}",
-  "0/1 -> 1/3: {\\"note\\":\\"G4\\"}",
-  "1/3 -> 1/2: {\\"note\\":\\"B3\\"}",
-  "1/3 -> 1/2: {\\"note\\":\\"D4\\"}",
-  "1/3 -> 1/2: {\\"note\\":\\"E4\\"}",
-  "1/3 -> 1/2: {\\"note\\":\\"G4\\"}",
-  "5/6 -> 1/1: {\\"note\\":\\"B3\\"}",
-  "5/6 -> 1/1: {\\"note\\":\\"D4\\"}",
-  "5/6 -> 1/1: {\\"note\\":\\"E4\\"}",
-  "5/6 -> 1/1: {\\"note\\":\\"G4\\"}",
-]
-`;
-
-exports[`renders shared tunes > shared tune 55 https://strudel.cc/?ODAzfGV0ZcbI 1`] = `
-[
-  "0/1 -> 1/2: Bb2",
-  "0/1 -> 1/2: F3",
-  "0/1 -> 1/2: Bb3",
-  "1/2 -> 1/1: Bb2",
-  "1/2 -> 1/1: Bb2",
-  "1/2 -> 1/1: F3",
-  "1/2 -> 1/1: F3",
-  "1/2 -> 1/1: Bb3",
-  "1/2 -> 1/1: Bb3",
-  "0/1 -> 1/2: Bb1",
-  "1/2 -> 5/8: Bb1",
-  "3/4 -> 7/8: Bb1",
-  "0/1 -> 1/2: c1",
-  "1/2 -> 1/1: c1",
-  "1/2 -> 1/1: c3",
-  "0/1 -> 1/4: C1",
-  "1/4 -> 1/2: C3",
-  "1/2 -> 3/4: C1",
-  "3/4 -> 1/1: C3",
-]
-`;
-
-exports[`renders shared tunes > shared tune 56 https://strudel.cc/?86BPLjJUsUlY 1`] = `
-[
-  "0/1 -> 1/2: Bb2",
-  "0/1 -> 1/2: F3",
-  "0/1 -> 1/2: Bb3",
-  "1/2 -> 1/1: Bb2",
-  "1/2 -> 1/1: Bb2",
-  "1/2 -> 1/1: F3",
-  "1/2 -> 1/1: F3",
-  "1/2 -> 1/1: Bb3",
-  "1/2 -> 1/1: Bb3",
-  "0/1 -> 1/2: Bb1",
-  "1/2 -> 5/8: Bb1",
-  "3/4 -> 7/8: Bb1",
-  "0/1 -> 1/2: c1",
-  "1/2 -> 1/1: c1",
-  "1/2 -> 1/1: c3",
-  "0/1 -> 1/4: C1",
-  "1/4 -> 1/2: C3",
-  "1/2 -> 3/4: C1",
-  "3/4 -> 1/1: C3",
-]
-`;
-
-exports[`renders shared tunes > shared tune 57 https://strudel.cc/?a6p9WTalyHea 1`] = `
-[
-  "0/1 -> 1/2: c1",
-  "1/2 -> 1/1: c1",
-  "1/2 -> 1/1: x",
-  "1/4 -> 1/2: c4",
-  "3/4 -> 1/1: c4",
-]
-`;
-
-exports[`renders shared tunes > shared tune 58 https://strudel.cc/?ciNbEjRKpC5T 1`] = `
-[
-  "0/1 -> 1/2: c1",
-  "1/2 -> 1/1: c1",
-  "1/2 -> 1/1: x",
-  "1/4 -> 1/2: c4",
-  "3/4 -> 1/1: c4",
-]
-`;
-
-exports[`renders shared tunes > shared tune 59 https://strudel.cc/?pLhCIXogckDD 1`] = `
-[
-  "0/1 -> 1/4: B3",
-  "0/1 -> 1/4: D4",
-  "0/1 -> 1/4: E4",
-  "0/1 -> 1/4: G4",
-  "1/4 -> 1/2: C4",
-  "1/4 -> 1/2: E4",
-  "1/4 -> 1/2: F4",
-  "1/4 -> 1/2: A4",
-  "1/2 -> 3/4: A3",
-  "1/2 -> 3/4: C4",
-  "1/2 -> 3/4: E4",
-  "1/2 -> 3/4: G4",
-  "3/4 -> 1/1: B3",
-  "3/4 -> 1/1: E4",
-  "3/4 -> 1/1: F4",
-  "3/4 -> 1/1: A4",
-  "0/1 -> 1/2: C2",
-  "1/2 -> 1/1: D2",
-]
-`;
-
-exports[`renders shared tunes > shared tune 60 https://strudel.cc/?hJFGyCmtF36W 1`] = `
-[
-  "0/1 -> 1/4: B3",
-  "0/1 -> 1/4: D4",
-  "0/1 -> 1/4: E4",
-  "0/1 -> 1/4: G4",
-  "1/4 -> 1/2: C4",
-  "1/4 -> 1/2: E4",
-  "1/4 -> 1/2: F4",
-  "1/4 -> 1/2: A4",
-  "1/2 -> 3/4: A3",
-  "1/2 -> 3/4: C4",
-  "1/2 -> 3/4: E4",
-  "1/2 -> 3/4: G4",
-  "3/4 -> 1/1: B3",
-  "3/4 -> 1/1: E4",
-  "3/4 -> 1/1: F4",
-  "3/4 -> 1/1: A4",
-  "0/1 -> 1/2: C2",
-  "1/2 -> 1/1: D2",
-]
-`;
-
-exports[`renders shared tunes > shared tune 61 https://strudel.cc/?4HtBUNn4xAAA 1`] = `
-[
-  "0/1 -> 3053185/4904046: {\\"n\\":62,\\"s\\":\\"sawtooth\\",\\"cutoff\\":3986.9405734726183}",
-  "0/1 -> 3053185/4904046: {\\"n\\":62,\\"s\\":\\"square\\",\\"cutoff\\":3986.9405734726183}",
-  "0/1 -> 3053185/4904046: {\\"n\\":62,\\"s\\":\\"sawtooth\\",\\"cutoff\\":3986.9405734726183}",
-  "1/2 -> 7957231/9808092: {\\"n\\":50,\\"s\\":\\"sawtooth\\",\\"cutoff\\":3942.3145276351606}",
-  "1/2 -> 7957231/9808092: {\\"n\\":50,\\"s\\":\\"square\\",\\"cutoff\\":3942.3145276351606}",
-  "3/4 -> 5204627/4904046: {\\"n\\":41,\\"s\\":\\"square\\",\\"cutoff\\":3897.7021140702864}",
-  "3/4 -> 5204627/4904046: {\\"n\\":41,\\"s\\":\\"sawtooth\\",\\"cutoff\\":3858.612673535166}",
-  "0/1 -> 3053185/4904046: {\\"n\\":43,\\"s\\":\\"sawtooth\\",\\"cutoff\\":3986.9405734726183}",
-  "0/1 -> 3053185/4904046: {\\"n\\":43,\\"s\\":\\"square\\",\\"cutoff\\":3986.9405734726183}",
-  "0/1 -> 3053185/4904046: {\\"n\\":43,\\"s\\":\\"sawtooth\\",\\"cutoff\\":3986.9405734726183}",
-  "1/2 -> 2752604/2452023: {\\"n\\":69,\\"s\\":\\"sawtooth\\",\\"cutoff\\":3924.645587531366}",
-  "1/2 -> 2752604/2452023: {\\"n\\":69,\\"s\\":\\"square\\",\\"cutoff\\":3924.645587531366}",
-  "1/2 -> 2752604/2452023: {\\"n\\":69,\\"s\\":\\"sawtooth\\",\\"cutoff\\":3850.2031844444546}",
-  "-1/4 -> 3654347/9808092: {\\"n\\":48,\\"s\\":\\"sawtooth\\",\\"cutoff\\":3995.31915093835}",
-  "-1/4 -> 3654347/9808092: {\\"n\\":48,\\"s\\":\\"square\\",\\"cutoff\\":3995.31915093835}",
-  "1/4 -> 8558393/9808092: {\\"n\\":74,\\"s\\":\\"square\\",\\"cutoff\\":3957.6603580168244}",
-  "1/4 -> 8558393/9808092: {\\"n\\":74,\\"s\\":\\"sawtooth\\",\\"cutoff\\":3957.6603580168244}",
-  "1/4 -> 8558393/9808092: {\\"n\\":74,\\"s\\":\\"square\\",\\"cutoff\\":3957.6603580168244}",
-  "3/4 -> 5204627/4904046: {\\"n\\":62,\\"s\\":\\"square\\",\\"cutoff\\":3897.7021140702864}",
-  "3/4 -> 5204627/4904046: {\\"n\\":62,\\"s\\":\\"sawtooth\\",\\"cutoff\\":3858.612673535166}",
-  "-1/4 -> 3654347/9808092: {\\"n\\":64,\\"s\\":\\"sawtooth\\",\\"cutoff\\":3995.31915093835}",
-  "-1/4 -> 3654347/9808092: {\\"n\\":64,\\"s\\":\\"square\\",\\"cutoff\\":3995.31915093835}",
-  "1/4 -> 8558393/9808092: {\\"n\\":55,\\"s\\":\\"square\\",\\"cutoff\\":3957.6603580168244}",
-  "1/4 -> 8558393/9808092: {\\"n\\":55,\\"s\\":\\"sawtooth\\",\\"cutoff\\":3957.6603580168244}",
-  "1/4 -> 8558393/9808092: {\\"n\\":55,\\"s\\":\\"square\\",\\"cutoff\\":3957.6603580168244}",
-  "3/4 -> 13462439/9808092: {\\"n\\":81,\\"s\\":\\"square\\",\\"cutoff\\":3897.7021140702864}",
-  "3/4 -> 13462439/9808092: {\\"n\\":81,\\"s\\":\\"sawtooth\\",\\"cutoff\\":3813.515463898106}",
-]
-`;
-
-exports[`renders shared tunes > shared tune 62 https://strudel.cc/?o6VENTMBn_Fo 1`] = `
-[
-  "0/1 -> 1/5: F#1",
-  "1/5 -> 2/5: F#1",
-  "2/5 -> 1/2: G#1",
-  "1/2 -> 3/5: C#2",
-  "3/5 -> 4/5: B1",
-  "4/5 -> 1/1: E2",
-]
-`;
-
-exports[`renders shared tunes > shared tune 63 https://strudel.cc/?2MtjoYELsyy6 1`] = `
-[
-  "0/1 -> 2867650/6103323: {\\"note\\":\\"B1\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.41203703703703703}",
-  "0/1 -> 2681020/6741463: {\\"note\\":\\"B1\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.41203703703703703}",
-  "446428571428571/9375000000000000 -> 4553064403854419/13264137201096312: {\\"note\\":\\"A4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5694444444444444}",
-  "446428571428571/9375000000000000 -> 4553064403854419/13264137201096312: {\\"note\\":\\"D5\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5925925925925926}",
-  "446428571428571/9375000000000000 -> 4553064403854419/13264137201096312: {\\"note\\":\\"D#5\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5972222222222222}",
-  "446428571428571/9375000000000000 -> 4553064403854419/13264137201096312: {\\"note\\":\\"G5\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.6157407407407407}",
-  "0/1 -> 1821896/6162503: {\\"note\\":\\"B1\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.41203703703703703}",
-  "446428571428571/9375000000000000 -> 8824552566910673/32550699877411690: {\\"note\\":\\"A4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5694444444444444}",
-  "446428571428571/9375000000000000 -> 8824552566910673/32550699877411690: {\\"note\\":\\"D5\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5925925925925926}",
-  "446428571428571/9375000000000000 -> 8824552566910673/32550699877411690: {\\"note\\":\\"D#5\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5972222222222222}",
-  "446428571428571/9375000000000000 -> 8824552566910673/32550699877411690: {\\"note\\":\\"G5\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.6157407407407407}",
-  "0/1 -> 5069600/22684527: {\\"note\\":\\"B1\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.41203703703703703}",
-  "446428571428571/9375000000000000 -> 8824552566910673/32550699877411690: {\\"note\\":\\"A4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5694444444444444}",
-  "446428571428571/9375000000000000 -> 8824552566910673/32550699877411690: {\\"note\\":\\"D5\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5925925925925926}",
-  "446428571428571/9375000000000000 -> 8824552566910673/32550699877411690: {\\"note\\":\\"D#5\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5972222222222222}",
-  "446428571428571/9375000000000000 -> 8824552566910673/32550699877411690: {\\"note\\":\\"G5\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.6157407407407407}",
-  "0/1 -> 5069600/22684527: {\\"note\\":\\"B1\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.41203703703703703}",
-  "446428571428571/9375000000000000 -> 4553064403854419/13264137201096312: {\\"note\\":\\"A4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5694444444444444}",
-  "446428571428571/9375000000000000 -> 4553064403854419/13264137201096312: {\\"note\\":\\"D5\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5925925925925926}",
-  "446428571428571/9375000000000000 -> 4553064403854419/13264137201096312: {\\"note\\":\\"D#5\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5972222222222222}",
-  "446428571428571/9375000000000000 -> 4553064403854419/13264137201096312: {\\"note\\":\\"G5\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.6157407407407407}",
-  "0/1 -> 1821896/6162503: {\\"note\\":\\"B1\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.41203703703703703}",
-  "446428571428571/9375000000000000 -> 3230789307776333/7255143743387577: {\\"note\\":\\"A4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5694444444444444}",
-  "446428571428571/9375000000000000 -> 3230789307776333/7255143743387577: {\\"note\\":\\"D5\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5925925925925926}",
-  "446428571428571/9375000000000000 -> 3230789307776333/7255143743387577: {\\"note\\":\\"D#5\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5972222222222222}",
-  "446428571428571/9375000000000000 -> 3230789307776333/7255143743387577: {\\"note\\":\\"G5\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.6157407407407407}",
-  "0/1 -> 2681020/6741463: {\\"note\\":\\"B1\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.41203703703703703}",
-  "446428571428571/9375000000000000 -> 3625532718823936/7006271198968491: {\\"note\\":\\"A4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5694444444444444}",
-  "446428571428571/9375000000000000 -> 3625532718823936/7006271198968491: {\\"note\\":\\"D5\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5925925925925926}",
-  "446428571428571/9375000000000000 -> 3625532718823936/7006271198968491: {\\"note\\":\\"D#5\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5972222222222222}",
-  "446428571428571/9375000000000000 -> 3625532718823936/7006271198968491: {\\"note\\":\\"G5\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.6157407407407407}",
-  "0/1 -> 2867650/6103323: {\\"note\\":\\"B1\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.41203703703703703}",
-  "446428571428571/9375000000000000 -> 3625532718823936/7006271198968491: {\\"note\\":\\"A4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5694444444444444}",
-  "446428571428571/9375000000000000 -> 3625532718823936/7006271198968491: {\\"note\\":\\"D5\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5925925925925926}",
-  "446428571428571/9375000000000000 -> 3625532718823936/7006271198968491: {\\"note\\":\\"D#5\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5972222222222222}",
-  "446428571428571/9375000000000000 -> 3625532718823936/7006271198968491: {\\"note\\":\\"G5\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.6157407407407407}",
-  "0/1 -> 2867650/6103323: {\\"note\\":\\"B1\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.41203703703703703}",
-  "1/6 -> 4902091/12206646: {\\"note\\":\\"B3\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5231481481481481}",
-  "1/6 -> 4902091/12206646: {\\"note\\":\\"D4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.537037037037037}",
-  "446428571428571/9375000000000000 -> 3230789307776333/7255143743387577: {\\"note\\":\\"A4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5694444444444444}",
-  "446428571428571/9375000000000000 -> 3230789307776333/7255143743387577: {\\"note\\":\\"D5\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5925925925925926}",
-  "446428571428571/9375000000000000 -> 3230789307776333/7255143743387577: {\\"note\\":\\"D#5\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5972222222222222}",
-  "446428571428571/9375000000000000 -> 3230789307776333/7255143743387577: {\\"note\\":\\"G5\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.6157407407407407}",
-  "0/1 -> 2681020/6741463: {\\"note\\":\\"B1\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.41203703703703703}",
-  "1/6 -> 14784523/40448778: {\\"note\\":\\"B3\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5231481481481481}",
-  "1/6 -> 14784523/40448778: {\\"note\\":\\"D4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.537037037037037}",
-  "446428571428571/9375000000000000 -> 4553064403854419/13264137201096312: {\\"note\\":\\"A4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5694444444444444}",
-  "446428571428571/9375000000000000 -> 4553064403854419/13264137201096312: {\\"note\\":\\"D5\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5925925925925926}",
-  "446428571428571/9375000000000000 -> 4553064403854419/13264137201096312: {\\"note\\":\\"D#5\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5972222222222222}",
-  "446428571428571/9375000000000000 -> 4553064403854419/13264137201096312: {\\"note\\":\\"G5\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.6157407407407407}",
-  "0/1 -> 1821896/6162503: {\\"note\\":\\"B1\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.41203703703703703}",
-  "1/6 -> 11628191/36975018: {\\"note\\":\\"B3\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5231481481481481}",
-  "1/6 -> 11628191/36975018: {\\"note\\":\\"D4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.537037037037037}",
-  "446428571428571/9375000000000000 -> 8824552566910673/32550699877411690: {\\"note\\":\\"A4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5694444444444444}",
-  "446428571428571/9375000000000000 -> 8824552566910673/32550699877411690: {\\"note\\":\\"D5\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5925925925925926}",
-  "446428571428571/9375000000000000 -> 8824552566910673/32550699877411690: {\\"note\\":\\"D#5\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5972222222222222}",
-  "446428571428571/9375000000000000 -> 8824552566910673/32550699877411690: {\\"note\\":\\"G5\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.6157407407407407}",
-  "1/6 -> 12631109/45369054: {\\"note\\":\\"B3\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5231481481481481}",
-  "1/6 -> 12631109/45369054: {\\"note\\":\\"D4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.537037037037037}",
-  "446428571428571/9375000000000000 -> 8824552566910673/32550699877411690: {\\"note\\":\\"A4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5694444444444444}",
-  "446428571428571/9375000000000000 -> 8824552566910673/32550699877411690: {\\"note\\":\\"D5\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5925925925925926}",
-  "446428571428571/9375000000000000 -> 8824552566910673/32550699877411690: {\\"note\\":\\"D#5\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5972222222222222}",
-  "446428571428571/9375000000000000 -> 8824552566910673/32550699877411690: {\\"note\\":\\"G5\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.6157407407407407}",
-  "1/6 -> 12631109/45369054: {\\"note\\":\\"B3\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5231481481481481}",
-  "1/6 -> 12631109/45369054: {\\"note\\":\\"D4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.537037037037037}",
-  "446428571428571/9375000000000000 -> 4553064403854419/13264137201096312: {\\"note\\":\\"A4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5694444444444444}",
-  "446428571428571/9375000000000000 -> 4553064403854419/13264137201096312: {\\"note\\":\\"D5\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5925925925925926}",
-  "446428571428571/9375000000000000 -> 4553064403854419/13264137201096312: {\\"note\\":\\"D#5\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5972222222222222}",
-  "446428571428571/9375000000000000 -> 4553064403854419/13264137201096312: {\\"note\\":\\"G5\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.6157407407407407}",
-  "0/1 -> 1821896/6162503: {\\"note\\":\\"B1\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.41203703703703703}",
-  "1/6 -> 11628191/36975018: {\\"note\\":\\"B3\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5231481481481481}",
-  "1/6 -> 11628191/36975018: {\\"note\\":\\"D4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.537037037037037}",
-  "446428571428571/9375000000000000 -> 3230789307776333/7255143743387577: {\\"note\\":\\"A4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5694444444444444}",
-  "446428571428571/9375000000000000 -> 3230789307776333/7255143743387577: {\\"note\\":\\"D5\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5925925925925926}",
-  "446428571428571/9375000000000000 -> 3230789307776333/7255143743387577: {\\"note\\":\\"D#5\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5972222222222222}",
-  "446428571428571/9375000000000000 -> 3230789307776333/7255143743387577: {\\"note\\":\\"G5\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.6157407407407407}",
-  "0/1 -> 2681020/6741463: {\\"note\\":\\"B1\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.41203703703703703}",
-  "1/6 -> 14784523/40448778: {\\"note\\":\\"B3\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5231481481481481}",
-  "1/6 -> 14784523/40448778: {\\"note\\":\\"D4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.537037037037037}",
-  "446428571428571/9375000000000000 -> 3625532718823936/7006271198968491: {\\"note\\":\\"A4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5694444444444444}",
-  "446428571428571/9375000000000000 -> 3625532718823936/7006271198968491: {\\"note\\":\\"D5\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5925925925925926}",
-  "446428571428571/9375000000000000 -> 3625532718823936/7006271198968491: {\\"note\\":\\"D#5\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5972222222222222}",
-  "446428571428571/9375000000000000 -> 3625532718823936/7006271198968491: {\\"note\\":\\"G5\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.6157407407407407}",
-  "0/1 -> 2867650/6103323: {\\"note\\":\\"B1\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.41203703703703703}",
-  "1/6 -> 4902091/12206646: {\\"note\\":\\"B3\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5231481481481481}",
-  "1/6 -> 4902091/12206646: {\\"note\\":\\"D4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.537037037037037}",
-  "446428571428571/9375000000000000 -> 3625532718823936/7006271198968491: {\\"note\\":\\"A4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5694444444444444}",
-  "446428571428571/9375000000000000 -> 3625532718823936/7006271198968491: {\\"note\\":\\"D5\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5925925925925926}",
-  "446428571428571/9375000000000000 -> 3625532718823936/7006271198968491: {\\"note\\":\\"D#5\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5972222222222222}",
-  "446428571428571/9375000000000000 -> 3625532718823936/7006271198968491: {\\"note\\":\\"G5\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.6157407407407407}",
-  "446428571428571/9375000000000000 -> 3230789307776333/7255143743387577: {\\"note\\":\\"A4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5694444444444444}",
-  "446428571428571/9375000000000000 -> 3230789307776333/7255143743387577: {\\"note\\":\\"D5\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5925925925925926}",
-  "446428571428571/9375000000000000 -> 3230789307776333/7255143743387577: {\\"note\\":\\"D#5\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5972222222222222}",
-  "446428571428571/9375000000000000 -> 3230789307776333/7255143743387577: {\\"note\\":\\"G5\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.6157407407407407}",
-  "2/3 -> 6936532/6103323: {\\"note\\":\\"A3\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5138888888888888}",
-  "2/3 -> 6936532/6103323: {\\"note\\":\\"C#4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5324074074074074}",
-  "2/3 -> 6936532/6103323: {\\"note\\":\\"D4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.537037037037037}",
-  "2/3 -> 6936532/6103323: {\\"note\\":\\"F#4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5555555555555556}",
-  "2/3 -> 6936532/6103323: {\\"note\\":\\"B1\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.41203703703703703}",
-  "2/3 -> 5502707/6103323: {\\"note\\":\\"F#4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5555555555555556}",
-  "2/3 -> 5502707/6103323: {\\"note\\":\\"A4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5694444444444444}",
-  "2/3 -> 21525986/20224389: {\\"note\\":\\"A3\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5138888888888888}",
-  "2/3 -> 21525986/20224389: {\\"note\\":\\"C#4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5324074074074074}",
-  "2/3 -> 21525986/20224389: {\\"note\\":\\"D4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.537037037037037}",
-  "2/3 -> 21525986/20224389: {\\"note\\":\\"F#4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5555555555555556}",
-  "2/3 -> 21525986/20224389: {\\"note\\":\\"B1\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.41203703703703703}",
-  "2/3 -> 17504456/20224389: {\\"note\\":\\"F#4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5555555555555556}",
-  "2/3 -> 17504456/20224389: {\\"note\\":\\"A4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5694444444444444}",
-  "2/3 -> 17790694/18487509: {\\"note\\":\\"A3\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5138888888888888}",
-  "2/3 -> 17790694/18487509: {\\"note\\":\\"C#4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5324074074074074}",
-  "2/3 -> 17790694/18487509: {\\"note\\":\\"D4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.537037037037037}",
-  "2/3 -> 17790694/18487509: {\\"note\\":\\"F#4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5555555555555556}",
-  "2/3 -> 17790694/18487509: {\\"note\\":\\"B1\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.41203703703703703}",
-  "2/3 -> 15057850/18487509: {\\"note\\":\\"F#4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5555555555555556}",
-  "2/3 -> 15057850/18487509: {\\"note\\":\\"A4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5694444444444444}",
-  "2/3 -> 20192618/22684527: {\\"note\\":\\"A3\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5138888888888888}",
-  "2/3 -> 20192618/22684527: {\\"note\\":\\"C#4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5324074074074074}",
-  "2/3 -> 20192618/22684527: {\\"note\\":\\"D4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.537037037037037}",
-  "2/3 -> 20192618/22684527: {\\"note\\":\\"F#4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5555555555555556}",
-  "2/3 -> 20192618/22684527: {\\"note\\":\\"B1\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.41203703703703703}",
-  "2/3 -> 17657818/22684527: {\\"note\\":\\"F#4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5555555555555556}",
-  "2/3 -> 17657818/22684527: {\\"note\\":\\"A4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5694444444444444}",
-  "2/3 -> 20192618/22684527: {\\"note\\":\\"A3\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5138888888888888}",
-  "2/3 -> 20192618/22684527: {\\"note\\":\\"C#4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5324074074074074}",
-  "2/3 -> 20192618/22684527: {\\"note\\":\\"D4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.537037037037037}",
-  "2/3 -> 20192618/22684527: {\\"note\\":\\"F#4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5555555555555556}",
-  "2/3 -> 20192618/22684527: {\\"note\\":\\"B1\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.41203703703703703}",
-  "2/3 -> 17657818/22684527: {\\"note\\":\\"F#4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5555555555555556}",
-  "2/3 -> 17657818/22684527: {\\"note\\":\\"A4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5694444444444444}",
-  "2/3 -> 17790694/18487509: {\\"note\\":\\"A3\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5138888888888888}",
-  "2/3 -> 17790694/18487509: {\\"note\\":\\"C#4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5324074074074074}",
-  "2/3 -> 17790694/18487509: {\\"note\\":\\"D4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.537037037037037}",
-  "2/3 -> 17790694/18487509: {\\"note\\":\\"F#4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5555555555555556}",
-  "2/3 -> 17790694/18487509: {\\"note\\":\\"B1\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.41203703703703703}",
-  "2/3 -> 15057850/18487509: {\\"note\\":\\"F#4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5555555555555556}",
-  "2/3 -> 15057850/18487509: {\\"note\\":\\"A4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5694444444444444}",
-  "2/3 -> 21525986/20224389: {\\"note\\":\\"A3\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5138888888888888}",
-  "2/3 -> 21525986/20224389: {\\"note\\":\\"C#4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5324074074074074}",
-  "2/3 -> 21525986/20224389: {\\"note\\":\\"D4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.537037037037037}",
-  "2/3 -> 21525986/20224389: {\\"note\\":\\"F#4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5555555555555556}",
-  "2/3 -> 21525986/20224389: {\\"note\\":\\"B1\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.41203703703703703}",
-  "2/3 -> 17504456/20224389: {\\"note\\":\\"F#4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5555555555555556}",
-  "2/3 -> 17504456/20224389: {\\"note\\":\\"A4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5694444444444444}",
-  "2/3 -> 6936532/6103323: {\\"note\\":\\"A3\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5138888888888888}",
-  "2/3 -> 6936532/6103323: {\\"note\\":\\"C#4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5324074074074074}",
-  "2/3 -> 6936532/6103323: {\\"note\\":\\"D4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.537037037037037}",
-  "2/3 -> 6936532/6103323: {\\"note\\":\\"F#4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5555555555555556}",
-  "2/3 -> 6936532/6103323: {\\"note\\":\\"B1\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.41203703703703703}",
-  "2/3 -> 5502707/6103323: {\\"note\\":\\"F#4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5555555555555556}",
-  "2/3 -> 5502707/6103323: {\\"note\\":\\"A4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5694444444444444}",
-  "2/3 -> 6936532/6103323: {\\"note\\":\\"A3\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5138888888888888}",
-  "2/3 -> 6936532/6103323: {\\"note\\":\\"C#4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5324074074074074}",
-  "2/3 -> 6936532/6103323: {\\"note\\":\\"D4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.537037037037037}",
-  "2/3 -> 6936532/6103323: {\\"note\\":\\"F#4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5555555555555556}",
-  "2/3 -> 6936532/6103323: {\\"note\\":\\"B1\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.41203703703703703}",
-  "2/3 -> 21525986/20224389: {\\"note\\":\\"A3\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5138888888888888}",
-  "2/3 -> 21525986/20224389: {\\"note\\":\\"C#4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5324074074074074}",
-  "2/3 -> 21525986/20224389: {\\"note\\":\\"D4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.537037037037037}",
-  "2/3 -> 21525986/20224389: {\\"note\\":\\"F#4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5555555555555556}",
-  "2/3 -> 21525986/20224389: {\\"note\\":\\"B1\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.41203703703703703}",
-  "2/3 -> 17790694/18487509: {\\"note\\":\\"A3\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5138888888888888}",
-  "2/3 -> 17790694/18487509: {\\"note\\":\\"C#4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5324074074074074}",
-  "2/3 -> 17790694/18487509: {\\"note\\":\\"D4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.537037037037037}",
-  "2/3 -> 17790694/18487509: {\\"note\\":\\"F#4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5555555555555556}",
-  "2/3 -> 17790694/18487509: {\\"note\\":\\"B1\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.41203703703703703}",
-  "2/3 -> 17790694/18487509: {\\"note\\":\\"A3\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5138888888888888}",
-  "2/3 -> 17790694/18487509: {\\"note\\":\\"C#4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5324074074074074}",
-  "2/3 -> 17790694/18487509: {\\"note\\":\\"D4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.537037037037037}",
-  "2/3 -> 17790694/18487509: {\\"note\\":\\"F#4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5555555555555556}",
-  "2/3 -> 17790694/18487509: {\\"note\\":\\"B1\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.41203703703703703}",
-  "2/3 -> 21525986/20224389: {\\"note\\":\\"A3\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5138888888888888}",
-  "2/3 -> 21525986/20224389: {\\"note\\":\\"C#4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5324074074074074}",
-  "2/3 -> 21525986/20224389: {\\"note\\":\\"D4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.537037037037037}",
-  "2/3 -> 21525986/20224389: {\\"note\\":\\"F#4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5555555555555556}",
-  "2/3 -> 21525986/20224389: {\\"note\\":\\"B1\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.41203703703703703}",
-  "2/3 -> 6936532/6103323: {\\"note\\":\\"A3\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5138888888888888}",
-  "2/3 -> 6936532/6103323: {\\"note\\":\\"C#4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5324074074074074}",
-  "2/3 -> 6936532/6103323: {\\"note\\":\\"D4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.537037037037037}",
-  "2/3 -> 6936532/6103323: {\\"note\\":\\"F#4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5555555555555556}",
-  "2/3 -> 6936532/6103323: {\\"note\\":\\"B1\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.41203703703703703}",
-]
-`;
-
-exports[`renders shared tunes > shared tune 64 https://strudel.cc/?vJ2KTtZo20cu 1`] = `
-[
-  "0/1 -> 1/2: Bb2",
-  "0/1 -> 1/2: F3",
-  "0/1 -> 1/2: Bb3",
-  "1/2 -> 1/1: Bb2",
-  "1/2 -> 1/1: Bb2",
-  "1/2 -> 1/1: F3",
-  "1/2 -> 1/1: F3",
-  "1/2 -> 1/1: Bb3",
-  "1/2 -> 1/1: Bb3",
-  "0/1 -> 1/2: Bb1",
-  "1/2 -> 5/8: Bb1",
-  "3/4 -> 7/8: Bb1",
-  "0/1 -> 1/2: c1",
-  "1/2 -> 1/1: c1",
-  "1/2 -> 1/1: c3",
-  "0/1 -> 1/4: C1",
-  "1/4 -> 1/2: C3",
-  "1/2 -> 3/4: C1",
-  "3/4 -> 1/1: C3",
-]
-`;
-
-exports[`renders shared tunes > shared tune 65 https://strudel.cc/?DhWsebFhaaI9 1`] = `
-[
-  "0/1 -> 1/2: Bb2",
-  "0/1 -> 1/2: F3",
-  "0/1 -> 1/2: Bb3",
-  "1/2 -> 1/1: Bb2",
-  "1/2 -> 1/1: Bb2",
-  "1/2 -> 1/1: F3",
-  "1/2 -> 1/1: F3",
-  "1/2 -> 1/1: Bb3",
-  "1/2 -> 1/1: Bb3",
-  "0/1 -> 1/2: Bb1",
-  "1/2 -> 5/8: Bb1",
-  "3/4 -> 7/8: Bb1",
-  "0/1 -> 1/2: c1",
-  "1/2 -> 1/1: c1",
-  "1/2 -> 1/1: c3",
-  "0/1 -> 1/4: C1",
-  "1/4 -> 1/2: C3",
-  "1/2 -> 3/4: C1",
-  "3/4 -> 1/1: C3",
-]
-`;
-
-exports[`renders shared tunes > shared tune 66 https://strudel.cc/?TpZLuyJCkYlW 1`] = `
-[
-  "0/1 -> 1/4: c4",
-  "1/4 -> 1/2: e3",
-  "1/2 -> 3/4: c4",
-  "3/4 -> 1/1: c4",
-]
-`;
-
-exports[`renders shared tunes > shared tune 67 https://strudel.cc/?pQKoHsxS2h84 1`] = `
-[
-  "0/1 -> 1/4: {\\"n\\":62,\\"s\\":\\"sawtooth\\",\\"cutoff\\":2000}",
-  "1/2 -> 5/8: {\\"n\\":50,\\"s\\":\\"square\\",\\"cutoff\\":2000}",
-  "3/4 -> 7/8: {\\"n\\":41,\\"s\\":\\"square\\",\\"cutoff\\":2000}",
-  "1/4 -> 1/2: {\\"n\\":74,\\"s\\":\\"sawtooth\\",\\"cutoff\\":2000}",
-  "3/4 -> 7/8: {\\"n\\":62,\\"s\\":\\"square\\",\\"cutoff\\":2000}",
-  "0/1 -> 1/4: {\\"n\\":43,\\"s\\":\\"sawtooth\\",\\"cutoff\\":2000}",
-  "1/2 -> 3/4: {\\"n\\":69,\\"s\\":\\"square\\",\\"cutoff\\":2000}",
-  "1/4 -> 1/2: {\\"n\\":55,\\"s\\":\\"sawtooth\\",\\"cutoff\\":2000}",
-  "3/4 -> 1/1: {\\"n\\":81,\\"s\\":\\"square\\",\\"cutoff\\":2000}",
-]
-`;
-
-exports[`renders shared tunes > shared tune 68 https://strudel.cc/?gL4HMl9q43o6 1`] = `
-[
-  "0/1 -> 1/4: c4",
-  "1/4 -> 1/2: e3",
-  "1/2 -> 3/4: e3",
-  "3/4 -> 1/1: c4",
-]
-`;
-
-exports[`renders shared tunes > shared tune 69 https://strudel.cc/?QoKBBsdDBQro 1`] = `
-[
-  "0/1 -> 1/4: c4",
-  "1/4 -> 1/2: e3",
-  "1/2 -> 3/4: e3",
-  "3/4 -> 1/1: c4",
-]
-`;
-
-exports[`renders shared tunes > shared tune 70 https://strudel.cc/?TGp3R_6-qmvY 1`] = `
-[
-  "0/1 -> 1/8: c3",
-  "1/8 -> 1/4: e3",
-  "1/4 -> 1/2: c4",
-  "1/2 -> 3/4: c4",
-  "3/4 -> 1/1: e3",
-]
-`;
-
-exports[`renders shared tunes > shared tune 71 https://strudel.cc/?Oais65XPBeAV 1`] = `
-[
-  "0/1 -> 1/3: {\\"note\\":\\"c9\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.75}",
-  "1/3 -> 2/3: {\\"note\\":\\"c9\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.75}",
-  "2/3 -> 1/1: {\\"note\\":\\"c9\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.75}",
-  "0/1 -> 1/2: {\\"note\\":\\"c8\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.75}",
-  "1/2 -> 1/1: {\\"note\\":\\"c8\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.75}",
-]
-`;
-
-exports[`renders shared tunes > shared tune 72 https://strudel.cc/?ldZPCC8_189H 1`] = `
-[
-  "0/1 -> 1/3: {\\"note\\":\\"c9\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.75}",
-  "1/3 -> 2/3: {\\"note\\":\\"c9\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.75}",
-  "2/3 -> 1/1: {\\"note\\":\\"c9\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.75}",
-  "0/1 -> 1/2: {\\"note\\":\\"c8\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.75}",
-  "1/2 -> 1/1: {\\"note\\":\\"c8\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.75}",
-]
-`;
-
-exports[`renders shared tunes > shared tune 73 https://strudel.cc/?D--IwyHBNn0a 1`] = `[]`;
-
-exports[`renders shared tunes > shared tune 74 https://strudel.cc/?gRGnC9U7CLgh 1`] = `[]`;
-
-exports[`renders shared tunes > shared tune 75 https://strudel.cc/?rr1DhAIFVsNf 1`] = `[]`;
-
-exports[`renders shared tunes > shared tune 76 https://strudel.cc/?AnRyPR-aJRnM 1`] = `[]`;
-
-exports[`renders shared tunes > shared tune 77 https://strudel.cc/?CpHjU1-jPeGv 1`] = `[]`;
-
-exports[`renders shared tunes > shared tune 78 https://strudel.cc/?LgsIpYacgnRK 1`] = `[]`;
-
-exports[`renders shared tunes > shared tune 79 https://strudel.cc/?faC6ykfIhu1j 1`] = `
-[
-  "0/1 -> 1/1: F2",
-  "0/1 -> 1/1: F3",
-  "0/1 -> 1/1: C4",
-  "0/1 -> 1/1: Ab4",
-]
-`;
-
-exports[`renders shared tunes > shared tune 80 https://strudel.cc/?5_NKdDWsFCk1 1`] = `[]`;
-
-exports[`renders shared tunes > shared tune 81 https://strudel.cc/?kH7LV63mXASH 1`] = `[]`;
-
-exports[`renders shared tunes > shared tune 82 https://strudel.cc/?l7FO1TzD3yBA 1`] = `[]`;
-
-exports[`renders shared tunes > shared tune 83 https://strudel.cc/?3hSnOnJz8aPZ 1`] = `
-[
-  "0/1 -> 1/10: C3",
-  "0/1 -> 1/10: E3",
-  "0/1 -> 1/10: G3",
-  "1/4 -> 7/20: B3",
-  "1/4 -> 7/20: E4",
-  "1/4 -> 7/20: E3",
-  "1/2 -> 3/5: C3",
-  "1/2 -> 3/5: A2",
-  "1/2 -> 3/5: C3",
-  "3/4 -> 17/20: E3",
-  "3/4 -> 17/20: G3",
-  "3/4 -> 17/20: B3",
-  "0/1 -> 1/5: C2",
-  "1/2 -> 7/10: E2",
-]
-`;
-
-exports[`renders shared tunes > shared tune 84 https://strudel.cc/?J3ClL0wQCBr_ 1`] = `
-[
-  "0/1 -> 1/8: {\\"note\\":\\"A2\\",\\"s\\":\\"flbass\\",\\"n\\":0,\\"gain\\":0.3,\\"cutoff\\":2206.5338497506646,\\"resonance\\":10,\\"clip\\":1}",
-  "3/8 -> 1/2: {\\"note\\":\\"A2\\",\\"s\\":\\"flbass\\",\\"n\\":0,\\"gain\\":0.3,\\"cutoff\\":2827.098521493671,\\"resonance\\":10,\\"clip\\":1}",
-  "3/4 -> 7/8: {\\"note\\":\\"A2\\",\\"s\\":\\"flbass\\",\\"n\\":0,\\"gain\\":0.3,\\"cutoff\\":3366.0584981088073,\\"resonance\\":10,\\"clip\\":1}",
-  "0/1 -> 1/4: {\\"note\\":\\"A3\\",\\"s\\":\\"flbass\\",\\"n\\":0,\\"gain\\":0.3,\\"cutoff\\":2312.732504596285,\\"resonance\\":10,\\"clip\\":1}",
-  "3/4 -> 1/1: {\\"note\\":\\"A3\\",\\"s\\":\\"flbass\\",\\"n\\":0,\\"gain\\":0.3,\\"cutoff\\":3443.5028842544402,\\"resonance\\":10,\\"clip\\":1}",
-  "-7/4 -> 1/4: {\\"note\\":\\"C4\\",\\"s\\":\\"flbass\\",\\"n\\":0,\\"gain\\":0.3,\\"cutoff\\":2312.732504596285,\\"resonance\\":10,\\"clip\\":1}",
-  "-7/4 -> 1/4: {\\"note\\":\\"E4\\",\\"s\\":\\"flbass\\",\\"n\\":0,\\"gain\\":0.3,\\"cutoff\\":2312.732504596285,\\"resonance\\":10,\\"clip\\":1}",
-  "1/4 -> 1/2: {\\"note\\":\\"C4\\",\\"s\\":\\"flbass\\",\\"n\\":0,\\"gain\\":0.3,\\"cutoff\\":2727.5302177148174,\\"resonance\\":10,\\"clip\\":1}",
-  "1/4 -> 1/2: {\\"note\\":\\"E4\\",\\"s\\":\\"flbass\\",\\"n\\":0,\\"gain\\":0.3,\\"cutoff\\":2727.5302177148174,\\"resonance\\":10,\\"clip\\":1}",
-  "-3/2 -> 1/2: {\\"note\\":\\"A4\\",\\"s\\":\\"flbass\\",\\"n\\":0,\\"gain\\":0.3,\\"cutoff\\":2522.789774516997,\\"resonance\\":10,\\"clip\\":1}",
-  "-3/2 -> 1/2: {\\"note\\":\\"C5\\",\\"s\\":\\"flbass\\",\\"n\\":0,\\"gain\\":0.3,\\"cutoff\\":2522.789774516997,\\"resonance\\":10,\\"clip\\":1}",
-  "-3/2 -> 1/2: {\\"note\\":\\"A4\\",\\"s\\":\\"flbass\\",\\"n\\":0,\\"gain\\":0.3,\\"cutoff\\":2522.789774516997,\\"resonance\\":10,\\"clip\\":1}",
-  "-3/2 -> 1/2: {\\"note\\":\\"C5\\",\\"s\\":\\"flbass\\",\\"n\\":0,\\"gain\\":0.3,\\"cutoff\\":2522.789774516997,\\"resonance\\":10,\\"clip\\":1}",
-  "1/2 -> 3/4: {\\"note\\":\\"A4\\",\\"s\\":\\"flbass\\",\\"n\\":0,\\"gain\\":0.3,\\"cutoff\\":3110.8609453791396,\\"resonance\\":10,\\"clip\\":1}",
-  "1/2 -> 3/4: {\\"note\\":\\"C5\\",\\"s\\":\\"flbass\\",\\"n\\":0,\\"gain\\":0.3,\\"cutoff\\":3110.8609453791396,\\"resonance\\":10,\\"clip\\":1}",
-  "-5/4 -> 3/4: {\\"note\\":\\"A4\\",\\"s\\":\\"flbass\\",\\"n\\":0,\\"gain\\":0.3,\\"cutoff\\":2727.5302177148174,\\"resonance\\":10,\\"clip\\":1}",
-  "-5/4 -> 3/4: {\\"note\\":\\"C5\\",\\"s\\":\\"flbass\\",\\"n\\":0,\\"gain\\":0.3,\\"cutoff\\":2727.5302177148174,\\"resonance\\":10,\\"clip\\":1}",
-  "-5/4 -> 3/4: {\\"note\\":\\"A4\\",\\"s\\":\\"flbass\\",\\"n\\":0,\\"gain\\":0.3,\\"cutoff\\":2727.5302177148174,\\"resonance\\":10,\\"clip\\":1}",
-  "-5/4 -> 3/4: {\\"note\\":\\"C5\\",\\"s\\":\\"flbass\\",\\"n\\":0,\\"gain\\":0.3,\\"cutoff\\":2727.5302177148174,\\"resonance\\":10,\\"clip\\":1}",
-  "-5/4 -> 3/4: {\\"note\\":\\"A4\\",\\"s\\":\\"flbass\\",\\"n\\":0,\\"gain\\":0.3,\\"cutoff\\":2727.5302177148174,\\"resonance\\":10,\\"clip\\":1}",
-  "-5/4 -> 3/4: {\\"note\\":\\"C5\\",\\"s\\":\\"flbass\\",\\"n\\":0,\\"gain\\":0.3,\\"cutoff\\":2727.5302177148174,\\"resonance\\":10,\\"clip\\":1}",
-  "3/4 -> 1/1: {\\"note\\":\\"A4\\",\\"s\\":\\"flbass\\",\\"n\\":0,\\"gain\\":0.3,\\"cutoff\\":3443.5028842544402,\\"resonance\\":10,\\"clip\\":1}",
-  "3/4 -> 1/1: {\\"note\\":\\"C5\\",\\"s\\":\\"flbass\\",\\"n\\":0,\\"gain\\":0.3,\\"cutoff\\":3443.5028842544402,\\"resonance\\":10,\\"clip\\":1}",
-  "-1/1 -> 1/1: {\\"note\\":\\"A4\\",\\"s\\":\\"flbass\\",\\"n\\":0,\\"gain\\":0.3,\\"cutoff\\":2924.3791043233605,\\"resonance\\":10,\\"clip\\":1}",
-  "-1/1 -> 1/1: {\\"note\\":\\"C5\\",\\"s\\":\\"flbass\\",\\"n\\":0,\\"gain\\":0.3,\\"cutoff\\":2924.3791043233605,\\"resonance\\":10,\\"clip\\":1}",
-  "-1/1 -> 1/1: {\\"note\\":\\"A4\\",\\"s\\":\\"flbass\\",\\"n\\":0,\\"gain\\":0.3,\\"cutoff\\":2924.3791043233605,\\"resonance\\":10,\\"clip\\":1}",
-  "-1/1 -> 1/1: {\\"note\\":\\"C5\\",\\"s\\":\\"flbass\\",\\"n\\":0,\\"gain\\":0.3,\\"cutoff\\":2924.3791043233605,\\"resonance\\":10,\\"clip\\":1}",
-  "-1/1 -> 1/1: {\\"note\\":\\"A4\\",\\"s\\":\\"flbass\\",\\"n\\":0,\\"gain\\":0.3,\\"cutoff\\":2924.3791043233605,\\"resonance\\":10,\\"clip\\":1}",
-  "-1/1 -> 1/1: {\\"note\\":\\"C5\\",\\"s\\":\\"flbass\\",\\"n\\":0,\\"gain\\":0.3,\\"cutoff\\":2924.3791043233605,\\"resonance\\":10,\\"clip\\":1}",
-  "-3/4 -> 5/4: {\\"note\\":\\"A4\\",\\"s\\":\\"flbass\\",\\"n\\":0,\\"gain\\":0.3,\\"cutoff\\":2924.3791043233605,\\"resonance\\":10,\\"clip\\":1}",
-  "-3/4 -> 5/4: {\\"note\\":\\"C5\\",\\"s\\":\\"flbass\\",\\"n\\":0,\\"gain\\":0.3,\\"cutoff\\":2924.3791043233605,\\"resonance\\":10,\\"clip\\":1}",
-  "-3/4 -> 5/4: {\\"note\\":\\"A4\\",\\"s\\":\\"flbass\\",\\"n\\":0,\\"gain\\":0.3,\\"cutoff\\":2924.3791043233605,\\"resonance\\":10,\\"clip\\":1}",
-  "-3/4 -> 5/4: {\\"note\\":\\"C5\\",\\"s\\":\\"flbass\\",\\"n\\":0,\\"gain\\":0.3,\\"cutoff\\":2924.3791043233605,\\"resonance\\":10,\\"clip\\":1}",
-  "0/1 -> 1/2: {\\"s\\":\\"bd:1\\"}",
-  "1/2 -> 1/1: {\\"s\\":\\"bd:1\\"}",
-  "1/2 -> 1/1: {\\"s\\":\\"sd:0\\"}",
-  "1/4 -> 1/2: {\\"s\\":\\"hh:0\\"}",
-  "3/4 -> 1/1: {\\"s\\":\\"hh:0\\"}",
-]
-`;
-
-exports[`renders shared tunes > shared tune 85 https://strudel.cc/?YC1KlrX1fOyP 1`] = `
-[
-  "0/1 -> 1/3: {\\"note\\":\\"D3\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.4814814814814815}",
-  "1/3 -> 1/2: {\\"note\\":\\"Eb3\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.4861111111111111}",
-  "1/2 -> 2/3: {\\"note\\":\\"F3\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.49537037037037035}",
-  "2/3 -> 1/1: {\\"note\\":\\"G3\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5046296296296297}",
-]
-`;
-
-exports[`renders shared tunes > shared tune 86 https://strudel.cc/?YD2MRLffOCRV 1`] = `
-[
-  "1/2 -> 1/1: e4",
-  "1/4 -> 1/2: c3",
-  "1/2 -> 3/4: c3",
-]
-`;
-
-exports[`renders shared tunes > shared tune 87 https://strudel.cc/?XxvYG4XK-I5G 1`] = `
-[
-  "0/1 -> 1/4: {\\"note\\":\\"G4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5601851851851851}",
-  "0/1 -> 1/4: {\\"note\\":\\"B4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5787037037037037}",
-  "0/1 -> 1/4: {\\"note\\":\\"C5\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5833333333333333}",
-  "0/1 -> 1/4: {\\"note\\":\\"E5\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.6018518518518519}",
-  "3/4 -> 1/1: {\\"note\\":\\"G4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5601851851851851}",
-  "3/4 -> 1/1: {\\"note\\":\\"B4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5787037037037037}",
-  "3/4 -> 1/1: {\\"note\\":\\"C5\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5833333333333333}",
-  "3/4 -> 1/1: {\\"note\\":\\"E5\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.6018518518518519}",
-  "0/1 -> 1/2: {\\"note\\":\\"A2\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.45833333333333337}",
-  "1/2 -> 1/1: {\\"note\\":\\"A2\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.45833333333333337}",
-]
-`;
-
-exports[`renders shared tunes > shared tune 88 https://strudel.cc/?FHXCltSQwouU 1`] = `
-[
-  "0/1 -> 3/4: c3",
-  "3/4 -> 1/1: eb3",
-  "3/4 -> 1/1: g3",
-  "3/4 -> 1/1: c4",
-  "0/1 -> 1/2: c2",
-  "1/2 -> 1/1: g2",
-  "0/1 -> 5/2: eb4",
-]
-`;
-
-exports[`renders shared tunes > shared tune 89 https://strudel.cc/?Hg6JP2F6ufl1 1`] = `
-[
-  "0/1 -> 1/3: c3",
-  "1/3 -> 2/3: e3",
-  "2/3 -> 1/1: g3",
-  "0/1 -> 1/2: c2",
-  "1/2 -> 1/1: g2",
-]
-`;
-
-exports[`renders shared tunes > shared tune 90 https://strudel.cc/?lNxLnMcpieR3 1`] = `
-[
-  "0/1 -> 1/3: c3",
-  "1/3 -> 2/3: e3",
-  "2/3 -> 1/1: g3",
-  "0/1 -> 1/2: c2",
-  "1/2 -> 1/1: g2",
-]
-`;
-
-exports[`renders shared tunes > shared tune 91 https://strudel.cc/?78PHBhVZovgo 1`] = `
-[
-  "0/1 -> 1/4: c3",
-  "1/5 -> 9/20: c3",
-  "9/20 -> 7/10: c3",
-  "17/40 -> 27/40: c3",
-  "27/40 -> 37/40: c3",
-  "13/20 -> 9/10: c3",
-  "9/10 -> 23/20: c3",
-]
-`;
-
-exports[`renders shared tunes > shared tune 92 https://strudel.cc/?rXBp8MOz1iNw 1`] = `
-[
-  "0/1 -> 19/80: e5",
-  "1/2 -> 79/120: d5",
-  "2/3 -> 179/240: c5",
-  "11/12 -> 239/240: e5",
-  "1/4 -> 1/2: g4",
-  "3/4 -> 1/1: g4",
-  "0/1 -> 1/4: c3",
-  "1/2 -> 3/4: c3",
-]
-`;
-
-exports[`renders shared tunes > shared tune 93 https://strudel.cc/?bbPVlOzXxAxn 1`] = `
-[
-  "-3761101961531/150000000000000 -> 2912966012823/50000000000000: F4",
-  "2912966012823/50000000000000 -> 141592653589793/1000000000000000: G4",
-  "141592653589793/1000000000000000 -> 33738898038469/150000000000000: C3",
-  "33738898038469/150000000000000 -> 15412966012823/50000000000000: D3",
-  "15412966012823/50000000000000 -> 391592653589793/1000000000000000: E3",
-  "391592653589793/1000000000000000 -> 71238898038469/150000000000000: F3",
-  "71238898038469/150000000000000 -> 27912966012823/50000000000000: G3",
-  "27912966012823/50000000000000 -> 641592653589793/1000000000000000: A3",
-  "641592653589793/1000000000000000 -> 108738898038469/150000000000000: B3",
-  "108738898038469/150000000000000 -> 40412966012823/50000000000000: C4",
-  "40412966012823/50000000000000 -> 891592653589793/1000000000000000: D4",
-  "891592653589793/1000000000000000 -> 146238898038469/150000000000000: E4",
-  "146238898038469/150000000000000 -> 52912966012823/50000000000000: F4",
-]
-`;
-
-exports[`renders shared tunes > shared tune 94 https://strudel.cc/?dZSKPnJiPMAz 1`] = `
-[
-  "-3761101961531/150000000000000 -> 2912966012823/50000000000000: E3",
-  "2912966012823/50000000000000 -> 141592653589793/1000000000000000: A3",
-  "141592653589793/1000000000000000 -> 33738898038469/150000000000000: D4",
-  "33738898038469/150000000000000 -> 15412966012823/50000000000000: G4",
-  "15412966012823/50000000000000 -> 391592653589793/1000000000000000: A4",
-  "391592653589793/1000000000000000 -> 71238898038469/150000000000000: A4",
-  "71238898038469/150000000000000 -> 27912966012823/50000000000000: G4",
-  "27912966012823/50000000000000 -> 641592653589793/1000000000000000: D4",
-  "641592653589793/1000000000000000 -> 108738898038469/150000000000000: A3",
-  "108738898038469/150000000000000 -> 40412966012823/50000000000000: E3",
-  "40412966012823/50000000000000 -> 891592653589793/1000000000000000: D3",
-  "891592653589793/1000000000000000 -> 146238898038469/150000000000000: D3",
-  "146238898038469/150000000000000 -> 52912966012823/50000000000000: E3",
-]
-`;
-
-exports[`renders shared tunes > shared tune 95 https://strudel.cc/?l-zyGmnM6g_q 1`] = `
-[
-  "0/1 -> 1/8: {\\"note\\":\\"A2\\",\\"s\\":\\"flbass\\",\\"n\\":0,\\"gain\\":0.3,\\"cutoff\\":2206.5338497506646,\\"resonance\\":10,\\"clip\\":1}",
-  "3/8 -> 1/2: {\\"note\\":\\"A2\\",\\"s\\":\\"flbass\\",\\"n\\":0,\\"gain\\":0.3,\\"cutoff\\":2827.098521493671,\\"resonance\\":10,\\"clip\\":1}",
-  "3/4 -> 7/8: {\\"note\\":\\"A2\\",\\"s\\":\\"flbass\\",\\"n\\":0,\\"gain\\":0.3,\\"cutoff\\":3366.0584981088073,\\"resonance\\":10,\\"clip\\":1}",
-  "0/1 -> 1/4: {\\"note\\":\\"A3\\",\\"s\\":\\"flbass\\",\\"n\\":0,\\"gain\\":0.3,\\"cutoff\\":2312.732504596285,\\"resonance\\":10,\\"clip\\":1}",
-  "3/4 -> 1/1: {\\"note\\":\\"A3\\",\\"s\\":\\"flbass\\",\\"n\\":0,\\"gain\\":0.3,\\"cutoff\\":3443.5028842544402,\\"resonance\\":10,\\"clip\\":1}",
-  "-7/4 -> 1/4: {\\"note\\":\\"C4\\",\\"s\\":\\"flbass\\",\\"n\\":0,\\"gain\\":0.3,\\"cutoff\\":2312.732504596285,\\"resonance\\":10,\\"clip\\":1}",
-  "-7/4 -> 1/4: {\\"note\\":\\"E4\\",\\"s\\":\\"flbass\\",\\"n\\":0,\\"gain\\":0.3,\\"cutoff\\":2312.732504596285,\\"resonance\\":10,\\"clip\\":1}",
-  "1/4 -> 1/2: {\\"note\\":\\"C4\\",\\"s\\":\\"flbass\\",\\"n\\":0,\\"gain\\":0.3,\\"cutoff\\":2727.5302177148174,\\"resonance\\":10,\\"clip\\":1}",
-  "1/4 -> 1/2: {\\"note\\":\\"E4\\",\\"s\\":\\"flbass\\",\\"n\\":0,\\"gain\\":0.3,\\"cutoff\\":2727.5302177148174,\\"resonance\\":10,\\"clip\\":1}",
-  "-3/2 -> 1/2: {\\"note\\":\\"A4\\",\\"s\\":\\"flbass\\",\\"n\\":0,\\"gain\\":0.3,\\"cutoff\\":2522.789774516997,\\"resonance\\":10,\\"clip\\":1}",
-  "-3/2 -> 1/2: {\\"note\\":\\"C5\\",\\"s\\":\\"flbass\\",\\"n\\":0,\\"gain\\":0.3,\\"cutoff\\":2522.789774516997,\\"resonance\\":10,\\"clip\\":1}",
-  "-3/2 -> 1/2: {\\"note\\":\\"A4\\",\\"s\\":\\"flbass\\",\\"n\\":0,\\"gain\\":0.3,\\"cutoff\\":2522.789774516997,\\"resonance\\":10,\\"clip\\":1}",
-  "-3/2 -> 1/2: {\\"note\\":\\"C5\\",\\"s\\":\\"flbass\\",\\"n\\":0,\\"gain\\":0.3,\\"cutoff\\":2522.789774516997,\\"resonance\\":10,\\"clip\\":1}",
-  "1/2 -> 3/4: {\\"note\\":\\"A4\\",\\"s\\":\\"flbass\\",\\"n\\":0,\\"gain\\":0.3,\\"cutoff\\":3110.8609453791396,\\"resonance\\":10,\\"clip\\":1}",
-  "1/2 -> 3/4: {\\"note\\":\\"C5\\",\\"s\\":\\"flbass\\",\\"n\\":0,\\"gain\\":0.3,\\"cutoff\\":3110.8609453791396,\\"resonance\\":10,\\"clip\\":1}",
-  "-5/4 -> 3/4: {\\"note\\":\\"A4\\",\\"s\\":\\"flbass\\",\\"n\\":0,\\"gain\\":0.3,\\"cutoff\\":2727.5302177148174,\\"resonance\\":10,\\"clip\\":1}",
-  "-5/4 -> 3/4: {\\"note\\":\\"C5\\",\\"s\\":\\"flbass\\",\\"n\\":0,\\"gain\\":0.3,\\"cutoff\\":2727.5302177148174,\\"resonance\\":10,\\"clip\\":1}",
-  "-5/4 -> 3/4: {\\"note\\":\\"A4\\",\\"s\\":\\"flbass\\",\\"n\\":0,\\"gain\\":0.3,\\"cutoff\\":2727.5302177148174,\\"resonance\\":10,\\"clip\\":1}",
-  "-5/4 -> 3/4: {\\"note\\":\\"C5\\",\\"s\\":\\"flbass\\",\\"n\\":0,\\"gain\\":0.3,\\"cutoff\\":2727.5302177148174,\\"resonance\\":10,\\"clip\\":1}",
-  "-5/4 -> 3/4: {\\"note\\":\\"A4\\",\\"s\\":\\"flbass\\",\\"n\\":0,\\"gain\\":0.3,\\"cutoff\\":2727.5302177148174,\\"resonance\\":10,\\"clip\\":1}",
-  "-5/4 -> 3/4: {\\"note\\":\\"C5\\",\\"s\\":\\"flbass\\",\\"n\\":0,\\"gain\\":0.3,\\"cutoff\\":2727.5302177148174,\\"resonance\\":10,\\"clip\\":1}",
-  "3/4 -> 1/1: {\\"note\\":\\"A4\\",\\"s\\":\\"flbass\\",\\"n\\":0,\\"gain\\":0.3,\\"cutoff\\":3443.5028842544402,\\"resonance\\":10,\\"clip\\":1}",
-  "3/4 -> 1/1: {\\"note\\":\\"C5\\",\\"s\\":\\"flbass\\",\\"n\\":0,\\"gain\\":0.3,\\"cutoff\\":3443.5028842544402,\\"resonance\\":10,\\"clip\\":1}",
-  "-1/1 -> 1/1: {\\"note\\":\\"A4\\",\\"s\\":\\"flbass\\",\\"n\\":0,\\"gain\\":0.3,\\"cutoff\\":2924.3791043233605,\\"resonance\\":10,\\"clip\\":1}",
-  "-1/1 -> 1/1: {\\"note\\":\\"C5\\",\\"s\\":\\"flbass\\",\\"n\\":0,\\"gain\\":0.3,\\"cutoff\\":2924.3791043233605,\\"resonance\\":10,\\"clip\\":1}",
-  "-1/1 -> 1/1: {\\"note\\":\\"A4\\",\\"s\\":\\"flbass\\",\\"n\\":0,\\"gain\\":0.3,\\"cutoff\\":2924.3791043233605,\\"resonance\\":10,\\"clip\\":1}",
-  "-1/1 -> 1/1: {\\"note\\":\\"C5\\",\\"s\\":\\"flbass\\",\\"n\\":0,\\"gain\\":0.3,\\"cutoff\\":2924.3791043233605,\\"resonance\\":10,\\"clip\\":1}",
-  "-1/1 -> 1/1: {\\"note\\":\\"A4\\",\\"s\\":\\"flbass\\",\\"n\\":0,\\"gain\\":0.3,\\"cutoff\\":2924.3791043233605,\\"resonance\\":10,\\"clip\\":1}",
-  "-1/1 -> 1/1: {\\"note\\":\\"C5\\",\\"s\\":\\"flbass\\",\\"n\\":0,\\"gain\\":0.3,\\"cutoff\\":2924.3791043233605,\\"resonance\\":10,\\"clip\\":1}",
-  "-3/4 -> 5/4: {\\"note\\":\\"A4\\",\\"s\\":\\"flbass\\",\\"n\\":0,\\"gain\\":0.3,\\"cutoff\\":2924.3791043233605,\\"resonance\\":10,\\"clip\\":1}",
-  "-3/4 -> 5/4: {\\"note\\":\\"C5\\",\\"s\\":\\"flbass\\",\\"n\\":0,\\"gain\\":0.3,\\"cutoff\\":2924.3791043233605,\\"resonance\\":10,\\"clip\\":1}",
-  "-3/4 -> 5/4: {\\"note\\":\\"A4\\",\\"s\\":\\"flbass\\",\\"n\\":0,\\"gain\\":0.3,\\"cutoff\\":2924.3791043233605,\\"resonance\\":10,\\"clip\\":1}",
-  "-3/4 -> 5/4: {\\"note\\":\\"C5\\",\\"s\\":\\"flbass\\",\\"n\\":0,\\"gain\\":0.3,\\"cutoff\\":2924.3791043233605,\\"resonance\\":10,\\"clip\\":1}",
-  "0/1 -> 1/2: {\\"s\\":\\"bd:1\\"}",
-  "1/2 -> 1/1: {\\"s\\":\\"bd:1\\"}",
-  "1/2 -> 1/1: {\\"s\\":\\"sd:0\\"}",
-  "1/4 -> 1/2: {\\"s\\":\\"hh:0\\"}",
-  "3/4 -> 1/1: {\\"s\\":\\"hh:0\\"}",
-]
-`;
-
-exports[`renders shared tunes > shared tune 96 https://strudel.cc/?vEpJhDLHycD8 1`] = `
-[
-  "0/1 -> 3/20: 0",
-  "0/1 -> 3/20: 3",
-  "3/4 -> 9/10: 1",
-  "3/4 -> 9/10: 4",
-  "0/1 -> 3/10: -8",
-  "3/8 -> 27/40: -8",
-  "3/4 -> 21/20: -7",
-  "0/1 -> 3/200: 12",
-  "3/4 -> 153/200: 11",
-  "0/1 -> 3/20: c2",
-  "747/1000 -> 1497/1000: c1",
-  "0/1 -> 3/8: c2",
-  "3/8 -> 3/4: c2",
-  "3/4 -> 9/8: c2",
-]
-`;
-
-exports[`renders shared tunes > shared tune 97 https://strudel.cc/?DHUbrEloJxMd 1`] = `
-[
-  "0/1 -> 19/80: {\\"note\\":\\"E4\\"}",
-  "1/2 -> 79/120: {\\"note\\":\\"D4\\"}",
-  "2/3 -> 179/240: {\\"note\\":\\"C4\\"}",
-  "11/12 -> 239/240: {\\"note\\":\\"E4\\"}",
-  "1/4 -> 1/2: {\\"note\\":\\"G3\\"}",
-  "3/4 -> 1/1: {\\"note\\":\\"G3\\"}",
-  "0/1 -> 1/4: {\\"note\\":\\"C2\\"}",
-  "1/2 -> 3/4: {\\"note\\":\\"C2\\"}",
-]
-`;
-
-exports[`renders shared tunes > shared tune 98 https://strudel.cc/?-YW3kIKIGR8j 1`] = `
-[
-  "1/8 -> 1/4: {\\"n\\":\\"D1\\",\\"s\\":\\"sawtooth\\",\\"gain\\":0.3,\\"attack\\":0.01,\\"decay\\":0.1,\\"sustain\\":0.5,\\"cutoff\\":1699.6897509708342}",
-  "1/8 -> 1/4: {\\"n\\":\\"D1\\",\\"s\\":\\"square\\",\\"gain\\":0.3,\\"attack\\":0.01,\\"decay\\":0.1,\\"sustain\\":0.5,\\"cutoff\\":1699.6897509708342}",
-  "3/8 -> 1/2: {\\"n\\":\\"D2\\",\\"s\\":\\"sawtooth\\",\\"gain\\":0.3,\\"attack\\":0.01,\\"decay\\":0.1,\\"sustain\\":0.5,\\"cutoff\\":1765.826371664994}",
-  "3/8 -> 1/2: {\\"n\\":\\"D2\\",\\"s\\":\\"square\\",\\"gain\\":0.3,\\"attack\\":0.01,\\"decay\\":0.1,\\"sustain\\":0.5,\\"cutoff\\":1765.826371664994}",
-  "1/2 -> 5/8: {\\"n\\":\\"D1\\",\\"s\\":\\"sawtooth\\",\\"gain\\":0.3,\\"attack\\":0.01,\\"decay\\":0.1,\\"sustain\\":0.5,\\"cutoff\\":1798.799979846742}",
-  "1/2 -> 5/8: {\\"n\\":\\"D1\\",\\"s\\":\\"square\\",\\"gain\\":0.3,\\"attack\\":0.01,\\"decay\\":0.1,\\"sustain\\":0.5,\\"cutoff\\":1798.799979846742}",
-  "3/4 -> 7/8: {\\"n\\":\\"D3\\",\\"s\\":\\"sawtooth\\",\\"gain\\":0.3,\\"attack\\":0.01,\\"decay\\":0.1,\\"sustain\\":0.5,\\"cutoff\\":1864.4584935007128}",
-  "3/4 -> 7/8: {\\"n\\":\\"D3\\",\\"s\\":\\"square\\",\\"gain\\":0.3,\\"attack\\":0.01,\\"decay\\":0.1,\\"sustain\\":0.5,\\"cutoff\\":1864.4584935007128}",
-  "7/8 -> 1/1: {\\"n\\":\\"D3\\",\\"s\\":\\"sawtooth\\",\\"gain\\":0.3,\\"attack\\":0.01,\\"decay\\":0.1,\\"sustain\\":0.5,\\"cutoff\\":1897.1038487394403}",
-  "7/8 -> 1/1: {\\"n\\":\\"D3\\",\\"s\\":\\"square\\",\\"gain\\":0.3,\\"attack\\":0.01,\\"decay\\":0.1,\\"sustain\\":0.5,\\"cutoff\\":1897.1038487394403}",
-  "-3/8 -> 1/8: {\\"n\\":\\"G3\\",\\"s\\":\\"square\\",\\"gain\\":0.7,\\"attack\\":0.01,\\"decay\\":0.1,\\"sustain\\":0,\\"cutoff\\":1666.5665766857219}",
-  "-3/8 -> 1/8: {\\"n\\":\\"B3\\",\\"s\\":\\"square\\",\\"gain\\":0.7,\\"attack\\":0.01,\\"decay\\":0.1,\\"sustain\\":0,\\"cutoff\\":1666.5665766857219}",
-  "-1/4 -> 1/4: {\\"n\\":\\"G3\\",\\"s\\":\\"square\\",\\"gain\\":0.7,\\"attack\\":0.01,\\"decay\\":0.1,\\"sustain\\":0,\\"cutoff\\":1683.1306585059317}",
-  "-1/4 -> 1/4: {\\"n\\":\\"B3\\",\\"s\\":\\"square\\",\\"gain\\":0.7,\\"attack\\":0.01,\\"decay\\":0.1,\\"sustain\\":0,\\"cutoff\\":1683.1306585059317}",
-  "-1/8 -> 3/8: {\\"n\\":\\"G3\\",\\"s\\":\\"square\\",\\"gain\\":0.7,\\"attack\\":0.01,\\"decay\\":0.1,\\"sustain\\":0,\\"cutoff\\":1699.6897509708342}",
-  "-1/8 -> 3/8: {\\"n\\":\\"B3\\",\\"s\\":\\"square\\",\\"gain\\":0.7,\\"attack\\":0.01,\\"decay\\":0.1,\\"sustain\\":0,\\"cutoff\\":1699.6897509708342}",
-  "0/1 -> 3/8: {\\"n\\":\\"C#6\\",\\"s\\":\\"sawtooth\\",\\"gain\\":0.26103468453995016,\\"attack\\":0.001,\\"decay\\":0.2,\\"sustain\\":0,\\"hcutoff\\":5998.072590601808,\\"cutoff\\":4000}",
-  "0/1 -> 3/8: {\\"n\\":\\"A5\\",\\"s\\":\\"sawtooth\\",\\"gain\\":0.26103468453995016,\\"attack\\":0.001,\\"decay\\":0.2,\\"sustain\\":0,\\"hcutoff\\":5998.072590601808,\\"cutoff\\":4000}",
-  "0/1 -> 3/8: {\\"n\\":\\"E5\\",\\"s\\":\\"sawtooth\\",\\"gain\\":0.26103468453995016,\\"attack\\":0.001,\\"decay\\":0.2,\\"sustain\\":0,\\"hcutoff\\":5998.072590601808,\\"cutoff\\":4000}",
-  "0/1 -> 3/8: {\\"n\\":\\"C#5\\",\\"s\\":\\"sawtooth\\",\\"gain\\":0.26103468453995016,\\"attack\\":0.001,\\"decay\\":0.2,\\"sustain\\":0,\\"hcutoff\\":5998.072590601808,\\"cutoff\\":4000}",
-  "3/8 -> 3/4: {\\"n\\":\\"A5\\",\\"s\\":\\"sawtooth\\",\\"gain\\":0.2828651860235305,\\"attack\\":0.001,\\"decay\\":0.2,\\"sustain\\":0,\\"hcutoff\\":5982.671142387316,\\"cutoff\\":4000}",
-  "3/8 -> 3/4: {\\"n\\":\\"F#5\\",\\"s\\":\\"sawtooth\\",\\"gain\\":0.2828651860235305,\\"attack\\":0.001,\\"decay\\":0.2,\\"sustain\\":0,\\"hcutoff\\":5982.671142387316,\\"cutoff\\":4000}",
-  "3/8 -> 3/4: {\\"n\\":\\"C#5\\",\\"s\\":\\"sawtooth\\",\\"gain\\":0.2828651860235305,\\"attack\\":0.001,\\"decay\\":0.2,\\"sustain\\":0,\\"hcutoff\\":5982.671142387316,\\"cutoff\\":4000}",
-  "3/8 -> 3/4: {\\"n\\":\\"A4\\",\\"s\\":\\"sawtooth\\",\\"gain\\":0.2828651860235305,\\"attack\\":0.001,\\"decay\\":0.2,\\"sustain\\":0,\\"hcutoff\\":5982.671142387316,\\"cutoff\\":4000}",
-  "3/4 -> 1/1: {\\"n\\":\\"F#5\\",\\"s\\":\\"sawtooth\\",\\"gain\\":0.300533478008833,\\"attack\\":0.001,\\"decay\\":0.2,\\"sustain\\":0,\\"hcutoff\\":5958.137268909887,\\"cutoff\\":4000}",
-  "3/4 -> 1/1: {\\"n\\":\\"A4\\",\\"s\\":\\"sawtooth\\",\\"gain\\":0.300533478008833,\\"attack\\":0.001,\\"decay\\":0.2,\\"sustain\\":0,\\"hcutoff\\":5958.137268909887,\\"cutoff\\":4000}",
-  "1/4 -> 5/8: {\\"n\\":\\"C#6\\",\\"s\\":\\"sawtooth\\",\\"gain\\":0.2756442833140452,\\"attack\\":0.001,\\"decay\\":0.2,\\"sustain\\":0,\\"hcutoff\\":5989.512318936654,\\"cutoff\\":4000}",
-  "1/4 -> 5/8: {\\"n\\":\\"A5\\",\\"s\\":\\"sawtooth\\",\\"gain\\":0.2756442833140452,\\"attack\\":0.001,\\"decay\\":0.2,\\"sustain\\":0,\\"hcutoff\\":5989.512318936654,\\"cutoff\\":4000}",
-  "1/4 -> 5/8: {\\"n\\":\\"E5\\",\\"s\\":\\"sawtooth\\",\\"gain\\":0.2756442833140452,\\"attack\\":0.001,\\"decay\\":0.2,\\"sustain\\":0,\\"hcutoff\\":5989.512318936654,\\"cutoff\\":4000}",
-  "1/4 -> 5/8: {\\"n\\":\\"C#5\\",\\"s\\":\\"sawtooth\\",\\"gain\\":0.2756442833140452,\\"attack\\":0.001,\\"decay\\":0.2,\\"sustain\\":0,\\"hcutoff\\":5989.512318936654,\\"cutoff\\":4000}",
-  "5/8 -> 1/1: {\\"n\\":\\"A5\\",\\"s\\":\\"sawtooth\\",\\"gain\\":0.29705226105983373,\\"attack\\":0.001,\\"decay\\":0.2,\\"sustain\\":0,\\"hcutoff\\":5963.890147645195,\\"cutoff\\":4000}",
-  "5/8 -> 1/1: {\\"n\\":\\"F#5\\",\\"s\\":\\"sawtooth\\",\\"gain\\":0.29705226105983373,\\"attack\\":0.001,\\"decay\\":0.2,\\"sustain\\":0,\\"hcutoff\\":5963.890147645195,\\"cutoff\\":4000}",
-  "5/8 -> 1/1: {\\"n\\":\\"C#5\\",\\"s\\":\\"sawtooth\\",\\"gain\\":0.29705226105983373,\\"attack\\":0.001,\\"decay\\":0.2,\\"sustain\\":0,\\"hcutoff\\":5963.890147645195,\\"cutoff\\":4000}",
-  "5/8 -> 1/1: {\\"n\\":\\"A4\\",\\"s\\":\\"sawtooth\\",\\"gain\\":0.29705226105983373,\\"attack\\":0.001,\\"decay\\":0.2,\\"sustain\\":0,\\"hcutoff\\":5963.890147645195,\\"cutoff\\":4000}",
-  "1/2 -> 7/8: {\\"n\\":\\"C#6\\",\\"s\\":\\"sawtooth\\",\\"gain\\":0.29000691362123476,\\"attack\\":0.001,\\"decay\\":0.2,\\"sustain\\":0,\\"hcutoff\\":5974.128467049176,\\"cutoff\\":4000}",
-  "1/2 -> 7/8: {\\"n\\":\\"A5\\",\\"s\\":\\"sawtooth\\",\\"gain\\":0.29000691362123476,\\"attack\\":0.001,\\"decay\\":0.2,\\"sustain\\":0,\\"hcutoff\\":5974.128467049176,\\"cutoff\\":4000}",
-  "1/2 -> 7/8: {\\"n\\":\\"E5\\",\\"s\\":\\"sawtooth\\",\\"gain\\":0.29000691362123476,\\"attack\\":0.001,\\"decay\\":0.2,\\"sustain\\":0,\\"hcutoff\\":5974.128467049176,\\"cutoff\\":4000}",
-  "1/2 -> 7/8: {\\"n\\":\\"C#5\\",\\"s\\":\\"sawtooth\\",\\"gain\\":0.29000691362123476,\\"attack\\":0.001,\\"decay\\":0.2,\\"sustain\\":0,\\"hcutoff\\":5974.128467049176,\\"cutoff\\":4000}",
-  "7/8 -> 5/4: {\\"n\\":\\"A5\\",\\"s\\":\\"sawtooth\\",\\"gain\\":0.3107861971007485,\\"attack\\":0.001,\\"decay\\":0.2,\\"sustain\\":0,\\"hcutoff\\":5938.355801271282,\\"cutoff\\":4000}",
-  "7/8 -> 5/4: {\\"n\\":\\"C#5\\",\\"s\\":\\"sawtooth\\",\\"gain\\":0.3107861971007485,\\"attack\\":0.001,\\"decay\\":0.2,\\"sustain\\":0,\\"hcutoff\\":5938.355801271282,\\"cutoff\\":4000}",
-  "3/4 -> 9/8: {\\"n\\":\\"C#6\\",\\"s\\":\\"sawtooth\\",\\"gain\\":0.30398425548024827,\\"attack\\":0.001,\\"decay\\":0.2,\\"sustain\\":0,\\"hcutoff\\":5951.963201008076,\\"cutoff\\":4000}",
-  "3/4 -> 9/8: {\\"n\\":\\"E5\\",\\"s\\":\\"sawtooth\\",\\"gain\\":0.30398425548024827,\\"attack\\":0.001,\\"decay\\":0.2,\\"sustain\\":0,\\"hcutoff\\":5951.963201008076,\\"cutoff\\":4000}",
-  "0/1 -> 1/4: {\\"n\\":\\"F#5\\",\\"s\\":\\"sawtooth\\",\\"gain\\":0.2573601511491127,\\"attack\\":0.001,\\"decay\\":0.2,\\"sustain\\":0,\\"hcutoff\\":5999.143312438893,\\"cutoff\\":4000}",
-  "0/1 -> 1/4: {\\"n\\":\\"A4\\",\\"s\\":\\"sawtooth\\",\\"gain\\":0.2573601511491127,\\"attack\\":0.001,\\"decay\\":0.2,\\"sustain\\":0,\\"hcutoff\\":5999.143312438893,\\"cutoff\\":4000}",
-  "-1/8 -> 1/4: {\\"n\\":\\"A5\\",\\"s\\":\\"sawtooth\\",\\"gain\\":0.2573601511491127,\\"attack\\":0.001,\\"decay\\":0.2,\\"sustain\\":0,\\"hcutoff\\":5999.143312438893,\\"cutoff\\":4000}",
-  "-1/8 -> 1/4: {\\"n\\":\\"F#5\\",\\"s\\":\\"sawtooth\\",\\"gain\\":0.2573601511491127,\\"attack\\":0.001,\\"decay\\":0.2,\\"sustain\\":0,\\"hcutoff\\":5999.143312438893,\\"cutoff\\":4000}",
-  "-1/8 -> 1/4: {\\"n\\":\\"C#5\\",\\"s\\":\\"sawtooth\\",\\"gain\\":0.2573601511491127,\\"attack\\":0.001,\\"decay\\":0.2,\\"sustain\\":0,\\"hcutoff\\":5999.143312438893,\\"cutoff\\":4000}",
-  "-1/8 -> 1/4: {\\"n\\":\\"A4\\",\\"s\\":\\"sawtooth\\",\\"gain\\":0.2573601511491127,\\"attack\\":0.001,\\"decay\\":0.2,\\"sustain\\":0,\\"hcutoff\\":5999.143312438893,\\"cutoff\\":4000}",
-  "1/4 -> 1/2: {\\"n\\":\\"F#5\\",\\"s\\":\\"sawtooth\\",\\"gain\\":0.27200957116830426,\\"attack\\":0.001,\\"decay\\":0.2,\\"sustain\\":0,\\"hcutoff\\":5992.29333433282,\\"cutoff\\":4000}",
-  "1/4 -> 1/2: {\\"n\\":\\"A4\\",\\"s\\":\\"sawtooth\\",\\"gain\\":0.27200957116830426,\\"attack\\":0.001,\\"decay\\":0.2,\\"sustain\\":0,\\"hcutoff\\":5992.29333433282,\\"cutoff\\":4000}",
-  "-1/4 -> 1/8: {\\"n\\":\\"C#6\\",\\"s\\":\\"sawtooth\\",\\"gain\\":0.2536811842784369,\\"attack\\":0.001,\\"decay\\":0.2,\\"sustain\\":0,\\"hcutoff\\":5999.785818935017,\\"cutoff\\":4000}",
-  "-1/4 -> 1/8: {\\"n\\":\\"A5\\",\\"s\\":\\"sawtooth\\",\\"gain\\":0.2536811842784369,\\"attack\\":0.001,\\"decay\\":0.2,\\"sustain\\":0,\\"hcutoff\\":5999.785818935017,\\"cutoff\\":4000}",
-  "-1/4 -> 1/8: {\\"n\\":\\"E5\\",\\"s\\":\\"sawtooth\\",\\"gain\\":0.2536811842784369,\\"attack\\":0.001,\\"decay\\":0.2,\\"sustain\\":0,\\"hcutoff\\":5999.785818935017,\\"cutoff\\":4000}",
-  "-1/4 -> 1/8: {\\"n\\":\\"C#5\\",\\"s\\":\\"sawtooth\\",\\"gain\\":0.2536811842784369,\\"attack\\":0.001,\\"decay\\":0.2,\\"sustain\\":0,\\"hcutoff\\":5999.785818935017,\\"cutoff\\":4000}",
-  "1/8 -> 1/2: {\\"n\\":\\"A5\\",\\"s\\":\\"sawtooth\\",\\"gain\\":0.26836160127988246,\\"attack\\":0.001,\\"decay\\":0.2,\\"sustain\\":0,\\"hcutoff\\":5994.647308096509,\\"cutoff\\":4000}",
-  "1/8 -> 1/2: {\\"n\\":\\"F#5\\",\\"s\\":\\"sawtooth\\",\\"gain\\":0.26836160127988246,\\"attack\\":0.001,\\"decay\\":0.2,\\"sustain\\":0,\\"hcutoff\\":5994.647308096509,\\"cutoff\\":4000}",
-  "1/8 -> 1/2: {\\"n\\":\\"C#5\\",\\"s\\":\\"sawtooth\\",\\"gain\\":0.26836160127988246,\\"attack\\":0.001,\\"decay\\":0.2,\\"sustain\\":0,\\"hcutoff\\":5994.647308096509,\\"cutoff\\":4000}",
-  "1/8 -> 1/2: {\\"n\\":\\"A4\\",\\"s\\":\\"sawtooth\\",\\"gain\\":0.26836160127988246,\\"attack\\":0.001,\\"decay\\":0.2,\\"sustain\\":0,\\"hcutoff\\":5994.647308096509,\\"cutoff\\":4000}",
-  "1/2 -> 3/4: {\\"n\\":\\"F#5\\",\\"s\\":\\"sawtooth\\",\\"gain\\":0.28644702698548963,\\"attack\\":0.001,\\"decay\\":0.2,\\"sustain\\":0,\\"hcutoff\\":5978.612153434527,\\"cutoff\\":4000}",
-  "1/2 -> 3/4: {\\"n\\":\\"A4\\",\\"s\\":\\"sawtooth\\",\\"gain\\":0.28644702698548963,\\"attack\\":0.001,\\"decay\\":0.2,\\"sustain\\":0,\\"hcutoff\\":5978.612153434527,\\"cutoff\\":4000}",
-  "0/1 -> 1/4: bd",
-  "1/2 -> 3/4: bd",
-  "1/2 -> 1/1: sn",
-  "1/4 -> 1/2: hh3",
-  "3/4 -> 1/1: hh3",
-]
-`;
-
-exports[`renders shared tunes > shared tune 99 https://strudel.cc/?iw5ossp4Sti1 1`] = `
-[
-  "0/1 -> 3/20: 0",
-  "0/1 -> 3/20: 3",
-  "3/4 -> 9/10: 1",
-  "3/4 -> 9/10: 4",
-  "0/1 -> 3/10: -8",
-  "3/8 -> 27/40: -8",
-  "3/4 -> 21/20: -7",
-  "0/1 -> 3/200: 12",
-  "3/4 -> 153/200: 11",
-  "0/1 -> 3/20: c2",
-  "747/1000 -> 1497/1000: c1",
-  "0/1 -> 3/8: c2",
-  "3/8 -> 3/4: c2",
-  "3/4 -> 9/8: c2",
-]
-`;
-
-exports[`renders shared tunes > shared tune 101 https://strudel.cc/?ISMZvMGByNst 1`] = `
-[
-  "0/1 -> 1/3: bd",
-  "1/3 -> 2/3: hh",
-  "2/3 -> 1/1: sn",
-  "0/1 -> 1/20: G4",
-  "1/6 -> 13/60: G4",
-  "1/3 -> 23/60: B3",
-  "1/2 -> 11/20: B3",
-  "1/3 -> 23/60: E4",
-  "1/2 -> 11/20: E4",
-  "2/3 -> 43/60: G3",
-  "5/6 -> 53/60: G3",
-  "0/1 -> 4/3: c2",
-  "0/1 -> 4/3: c2",
-]
-`;
-
-exports[`renders shared tunes > shared tune 102 https://strudel.cc/?PDjOPOnV3JR6 1`] = `
-[
-  "0/1 -> 1/2: {\\"note\\":\\"G1\\",\\"s\\":\\"sawtooth\\",\\"cutoff\\":1500}",
-  "1/2 -> 1/1: {\\"note\\":\\"G1\\",\\"s\\":\\"sawtooth\\",\\"cutoff\\":1500}",
-  "1/2 -> 3/5: {\\"note\\":\\"G3\\",\\"s\\":\\"sawtooth\\",\\"cutoff\\":1530.954945061934}",
-  "1/2 -> 3/5: {\\"note\\":\\"Bb3\\",\\"s\\":\\"sawtooth\\",\\"cutoff\\":1530.954945061934}",
-  "1/2 -> 3/5: {\\"note\\":\\"D4\\",\\"s\\":\\"sawtooth\\",\\"cutoff\\":1530.954945061934}",
-  "5/8 -> 29/40: {\\"note\\":\\"G3\\",\\"s\\":\\"sawtooth\\",\\"cutoff\\":1530.954945061934}",
-  "5/8 -> 29/40: {\\"note\\":\\"Bb3\\",\\"s\\":\\"sawtooth\\",\\"cutoff\\":1530.954945061934}",
-  "5/8 -> 29/40: {\\"note\\":\\"D4\\",\\"s\\":\\"sawtooth\\",\\"cutoff\\":1530.954945061934}",
-  "0/1 -> 1/20: {\\"note\\":\\"F4\\",\\"s\\":\\"sawtooth\\",\\"cutoff\\":1132.6741512198269}",
-  "3/4 -> 17/20: {\\"note\\":\\"G3\\",\\"s\\":\\"sawtooth\\",\\"cutoff\\":1530.954945061934}",
-  "3/4 -> 17/20: {\\"note\\":\\"Bb3\\",\\"s\\":\\"sawtooth\\",\\"cutoff\\":1530.954945061934}",
-  "3/4 -> 17/20: {\\"note\\":\\"D4\\",\\"s\\":\\"sawtooth\\",\\"cutoff\\":1530.954945061934}",
-  "1/8 -> 7/40: {\\"note\\":\\"F4\\",\\"s\\":\\"sawtooth\\",\\"cutoff\\":1132.6741512198269}",
-  "7/8 -> 39/40: {\\"note\\":\\"G3\\",\\"s\\":\\"sawtooth\\",\\"cutoff\\":1530.954945061934}",
-  "7/8 -> 39/40: {\\"note\\":\\"Bb3\\",\\"s\\":\\"sawtooth\\",\\"cutoff\\":1530.954945061934}",
-  "7/8 -> 39/40: {\\"note\\":\\"D4\\",\\"s\\":\\"sawtooth\\",\\"cutoff\\":1530.954945061934}",
-  "0/1 -> 1/2: {\\"s\\":\\"bd\\"}",
-  "1/2 -> 1/1: {\\"s\\":\\"bd\\"}",
-  "1/4 -> 3/8: {\\"s\\":\\"hh\\"}",
-  "3/8 -> 1/2: {\\"s\\":\\"hh\\"}",
-  "3/4 -> 7/8: {\\"s\\":\\"hh\\"}",
-  "7/8 -> 1/1: {\\"s\\":\\"hh\\"}",
-]
-`;
-
-exports[`renders shared tunes > shared tune 103 https://strudel.cc/?u7qAdlwp3Qig 1`] = `
-[
-  "1/2 -> 1/1: {\\"note\\":\\"F3\\"}",
-  "1/2 -> 1/1: {\\"note\\":\\"C4\\"}",
-  "0/1 -> 1/1: {\\"note\\":\\"D4\\"}",
-  "0/1 -> 2/1: {\\"note\\":\\"D3\\"}",
-  "-3/4 -> 1/4: {\\"note\\":\\"A4\\"}",
-  "1/4 -> 9/4: {\\"note\\":\\"D4\\"}",
-  "0/1 -> 1/8: {\\"note\\":\\"c3\\"}",
-  "3/8 -> 1/2: {\\"note\\":\\"c3\\"}",
-  "3/4 -> 7/8: {\\"note\\":\\"c3\\"}",
-  "0/1 -> 1/4: {\\"note\\":\\"e4\\"}",
-  "1/4 -> 1/2: {\\"note\\":\\"f3\\"}",
-  "1/2 -> 3/4: {\\"note\\":\\"d4\\"}",
-  "3/4 -> 7/8: {\\"note\\":\\"f3\\"}",
-  "7/8 -> 1/1: {\\"note\\":\\"f3\\"}",
-]
-`;
-
-exports[`renders shared tunes > shared tune 104 https://strudel.cc/?OhjceF8ZvYk8 1`] = `
-[
-  "1/8 -> 1/4: {\\"n\\":\\"D1\\",\\"s\\":\\"sawtooth\\",\\"gain\\":0.3,\\"attack\\":0.01,\\"decay\\":0.1,\\"sustain\\":0.5,\\"cutoff\\":1699.6897509708342}",
-  "1/8 -> 1/4: {\\"n\\":\\"D1\\",\\"s\\":\\"square\\",\\"gain\\":0.3,\\"attack\\":0.01,\\"decay\\":0.1,\\"sustain\\":0.5,\\"cutoff\\":1699.6897509708342}",
-  "3/8 -> 1/2: {\\"n\\":\\"D2\\",\\"s\\":\\"sawtooth\\",\\"gain\\":0.3,\\"attack\\":0.01,\\"decay\\":0.1,\\"sustain\\":0.5,\\"cutoff\\":1765.826371664994}",
-  "3/8 -> 1/2: {\\"n\\":\\"D2\\",\\"s\\":\\"square\\",\\"gain\\":0.3,\\"attack\\":0.01,\\"decay\\":0.1,\\"sustain\\":0.5,\\"cutoff\\":1765.826371664994}",
-  "1/2 -> 5/8: {\\"n\\":\\"D1\\",\\"s\\":\\"sawtooth\\",\\"gain\\":0.3,\\"attack\\":0.01,\\"decay\\":0.1,\\"sustain\\":0.5,\\"cutoff\\":1798.799979846742}",
-  "1/2 -> 5/8: {\\"n\\":\\"D1\\",\\"s\\":\\"square\\",\\"gain\\":0.3,\\"attack\\":0.01,\\"decay\\":0.1,\\"sustain\\":0.5,\\"cutoff\\":1798.799979846742}",
-  "3/4 -> 7/8: {\\"n\\":\\"D3\\",\\"s\\":\\"sawtooth\\",\\"gain\\":0.3,\\"attack\\":0.01,\\"decay\\":0.1,\\"sustain\\":0.5,\\"cutoff\\":1864.4584935007128}",
-  "3/4 -> 7/8: {\\"n\\":\\"D3\\",\\"s\\":\\"square\\",\\"gain\\":0.3,\\"attack\\":0.01,\\"decay\\":0.1,\\"sustain\\":0.5,\\"cutoff\\":1864.4584935007128}",
-  "7/8 -> 1/1: {\\"n\\":\\"D3\\",\\"s\\":\\"sawtooth\\",\\"gain\\":0.3,\\"attack\\":0.01,\\"decay\\":0.1,\\"sustain\\":0.5,\\"cutoff\\":1897.1038487394403}",
-  "7/8 -> 1/1: {\\"n\\":\\"D3\\",\\"s\\":\\"square\\",\\"gain\\":0.3,\\"attack\\":0.01,\\"decay\\":0.1,\\"sustain\\":0.5,\\"cutoff\\":1897.1038487394403}",
-  "-3/8 -> 1/8: {\\"n\\":\\"G3\\",\\"s\\":\\"square\\",\\"gain\\":0.7,\\"attack\\":0.01,\\"decay\\":0.1,\\"sustain\\":0,\\"cutoff\\":1666.5665766857219}",
-  "-3/8 -> 1/8: {\\"n\\":\\"B3\\",\\"s\\":\\"square\\",\\"gain\\":0.7,\\"attack\\":0.01,\\"decay\\":0.1,\\"sustain\\":0,\\"cutoff\\":1666.5665766857219}",
-  "-1/4 -> 1/4: {\\"n\\":\\"G3\\",\\"s\\":\\"square\\",\\"gain\\":0.7,\\"attack\\":0.01,\\"decay\\":0.1,\\"sustain\\":0,\\"cutoff\\":1683.1306585059317}",
-  "-1/4 -> 1/4: {\\"n\\":\\"B3\\",\\"s\\":\\"square\\",\\"gain\\":0.7,\\"attack\\":0.01,\\"decay\\":0.1,\\"sustain\\":0,\\"cutoff\\":1683.1306585059317}",
-  "-1/8 -> 3/8: {\\"n\\":\\"G3\\",\\"s\\":\\"square\\",\\"gain\\":0.7,\\"attack\\":0.01,\\"decay\\":0.1,\\"sustain\\":0,\\"cutoff\\":1699.6897509708342}",
-  "-1/8 -> 3/8: {\\"n\\":\\"B3\\",\\"s\\":\\"square\\",\\"gain\\":0.7,\\"attack\\":0.01,\\"decay\\":0.1,\\"sustain\\":0,\\"cutoff\\":1699.6897509708342}",
-  "0/1 -> 3/8: {\\"n\\":\\"C#6\\",\\"s\\":\\"sawtooth\\",\\"gain\\":0.26103468453995016,\\"attack\\":0.001,\\"decay\\":0.2,\\"sustain\\":0,\\"hcutoff\\":5998.072590601808,\\"cutoff\\":4000}",
-  "0/1 -> 3/8: {\\"n\\":\\"A5\\",\\"s\\":\\"sawtooth\\",\\"gain\\":0.26103468453995016,\\"attack\\":0.001,\\"decay\\":0.2,\\"sustain\\":0,\\"hcutoff\\":5998.072590601808,\\"cutoff\\":4000}",
-  "0/1 -> 3/8: {\\"n\\":\\"E5\\",\\"s\\":\\"sawtooth\\",\\"gain\\":0.26103468453995016,\\"attack\\":0.001,\\"decay\\":0.2,\\"sustain\\":0,\\"hcutoff\\":5998.072590601808,\\"cutoff\\":4000}",
-  "0/1 -> 3/8: {\\"n\\":\\"C#5\\",\\"s\\":\\"sawtooth\\",\\"gain\\":0.26103468453995016,\\"attack\\":0.001,\\"decay\\":0.2,\\"sustain\\":0,\\"hcutoff\\":5998.072590601808,\\"cutoff\\":4000}",
-  "3/8 -> 3/4: {\\"n\\":\\"A5\\",\\"s\\":\\"sawtooth\\",\\"gain\\":0.2828651860235305,\\"attack\\":0.001,\\"decay\\":0.2,\\"sustain\\":0,\\"hcutoff\\":5982.671142387316,\\"cutoff\\":4000}",
-  "3/8 -> 3/4: {\\"n\\":\\"F#5\\",\\"s\\":\\"sawtooth\\",\\"gain\\":0.2828651860235305,\\"attack\\":0.001,\\"decay\\":0.2,\\"sustain\\":0,\\"hcutoff\\":5982.671142387316,\\"cutoff\\":4000}",
-  "3/8 -> 3/4: {\\"n\\":\\"C#5\\",\\"s\\":\\"sawtooth\\",\\"gain\\":0.2828651860235305,\\"attack\\":0.001,\\"decay\\":0.2,\\"sustain\\":0,\\"hcutoff\\":5982.671142387316,\\"cutoff\\":4000}",
-  "3/8 -> 3/4: {\\"n\\":\\"A4\\",\\"s\\":\\"sawtooth\\",\\"gain\\":0.2828651860235305,\\"attack\\":0.001,\\"decay\\":0.2,\\"sustain\\":0,\\"hcutoff\\":5982.671142387316,\\"cutoff\\":4000}",
-  "3/4 -> 1/1: {\\"n\\":\\"F#5\\",\\"s\\":\\"sawtooth\\",\\"gain\\":0.300533478008833,\\"attack\\":0.001,\\"decay\\":0.2,\\"sustain\\":0,\\"hcutoff\\":5958.137268909887,\\"cutoff\\":4000}",
-  "3/4 -> 1/1: {\\"n\\":\\"A4\\",\\"s\\":\\"sawtooth\\",\\"gain\\":0.300533478008833,\\"attack\\":0.001,\\"decay\\":0.2,\\"sustain\\":0,\\"hcutoff\\":5958.137268909887,\\"cutoff\\":4000}",
-  "1/4 -> 5/8: {\\"n\\":\\"C#6\\",\\"s\\":\\"sawtooth\\",\\"gain\\":0.2756442833140452,\\"attack\\":0.001,\\"decay\\":0.2,\\"sustain\\":0,\\"hcutoff\\":5989.512318936654,\\"cutoff\\":4000}",
-  "1/4 -> 5/8: {\\"n\\":\\"A5\\",\\"s\\":\\"sawtooth\\",\\"gain\\":0.2756442833140452,\\"attack\\":0.001,\\"decay\\":0.2,\\"sustain\\":0,\\"hcutoff\\":5989.512318936654,\\"cutoff\\":4000}",
-  "1/4 -> 5/8: {\\"n\\":\\"E5\\",\\"s\\":\\"sawtooth\\",\\"gain\\":0.2756442833140452,\\"attack\\":0.001,\\"decay\\":0.2,\\"sustain\\":0,\\"hcutoff\\":5989.512318936654,\\"cutoff\\":4000}",
-  "1/4 -> 5/8: {\\"n\\":\\"C#5\\",\\"s\\":\\"sawtooth\\",\\"gain\\":0.2756442833140452,\\"attack\\":0.001,\\"decay\\":0.2,\\"sustain\\":0,\\"hcutoff\\":5989.512318936654,\\"cutoff\\":4000}",
-  "5/8 -> 1/1: {\\"n\\":\\"A5\\",\\"s\\":\\"sawtooth\\",\\"gain\\":0.29705226105983373,\\"attack\\":0.001,\\"decay\\":0.2,\\"sustain\\":0,\\"hcutoff\\":5963.890147645195,\\"cutoff\\":4000}",
-  "5/8 -> 1/1: {\\"n\\":\\"F#5\\",\\"s\\":\\"sawtooth\\",\\"gain\\":0.29705226105983373,\\"attack\\":0.001,\\"decay\\":0.2,\\"sustain\\":0,\\"hcutoff\\":5963.890147645195,\\"cutoff\\":4000}",
-  "5/8 -> 1/1: {\\"n\\":\\"C#5\\",\\"s\\":\\"sawtooth\\",\\"gain\\":0.29705226105983373,\\"attack\\":0.001,\\"decay\\":0.2,\\"sustain\\":0,\\"hcutoff\\":5963.890147645195,\\"cutoff\\":4000}",
-  "5/8 -> 1/1: {\\"n\\":\\"A4\\",\\"s\\":\\"sawtooth\\",\\"gain\\":0.29705226105983373,\\"attack\\":0.001,\\"decay\\":0.2,\\"sustain\\":0,\\"hcutoff\\":5963.890147645195,\\"cutoff\\":4000}",
-  "1/2 -> 7/8: {\\"n\\":\\"C#6\\",\\"s\\":\\"sawtooth\\",\\"gain\\":0.29000691362123476,\\"attack\\":0.001,\\"decay\\":0.2,\\"sustain\\":0,\\"hcutoff\\":5974.128467049176,\\"cutoff\\":4000}",
-  "1/2 -> 7/8: {\\"n\\":\\"A5\\",\\"s\\":\\"sawtooth\\",\\"gain\\":0.29000691362123476,\\"attack\\":0.001,\\"decay\\":0.2,\\"sustain\\":0,\\"hcutoff\\":5974.128467049176,\\"cutoff\\":4000}",
-  "1/2 -> 7/8: {\\"n\\":\\"E5\\",\\"s\\":\\"sawtooth\\",\\"gain\\":0.29000691362123476,\\"attack\\":0.001,\\"decay\\":0.2,\\"sustain\\":0,\\"hcutoff\\":5974.128467049176,\\"cutoff\\":4000}",
-  "1/2 -> 7/8: {\\"n\\":\\"C#5\\",\\"s\\":\\"sawtooth\\",\\"gain\\":0.29000691362123476,\\"attack\\":0.001,\\"decay\\":0.2,\\"sustain\\":0,\\"hcutoff\\":5974.128467049176,\\"cutoff\\":4000}",
-  "7/8 -> 5/4: {\\"n\\":\\"A5\\",\\"s\\":\\"sawtooth\\",\\"gain\\":0.3107861971007485,\\"attack\\":0.001,\\"decay\\":0.2,\\"sustain\\":0,\\"hcutoff\\":5938.355801271282,\\"cutoff\\":4000}",
-  "7/8 -> 5/4: {\\"n\\":\\"C#5\\",\\"s\\":\\"sawtooth\\",\\"gain\\":0.3107861971007485,\\"attack\\":0.001,\\"decay\\":0.2,\\"sustain\\":0,\\"hcutoff\\":5938.355801271282,\\"cutoff\\":4000}",
-  "3/4 -> 9/8: {\\"n\\":\\"C#6\\",\\"s\\":\\"sawtooth\\",\\"gain\\":0.30398425548024827,\\"attack\\":0.001,\\"decay\\":0.2,\\"sustain\\":0,\\"hcutoff\\":5951.963201008076,\\"cutoff\\":4000}",
-  "3/4 -> 9/8: {\\"n\\":\\"E5\\",\\"s\\":\\"sawtooth\\",\\"gain\\":0.30398425548024827,\\"attack\\":0.001,\\"decay\\":0.2,\\"sustain\\":0,\\"hcutoff\\":5951.963201008076,\\"cutoff\\":4000}",
-  "0/1 -> 1/4: {\\"n\\":\\"F#5\\",\\"s\\":\\"sawtooth\\",\\"gain\\":0.2573601511491127,\\"attack\\":0.001,\\"decay\\":0.2,\\"sustain\\":0,\\"hcutoff\\":5999.143312438893,\\"cutoff\\":4000}",
-  "0/1 -> 1/4: {\\"n\\":\\"A4\\",\\"s\\":\\"sawtooth\\",\\"gain\\":0.2573601511491127,\\"attack\\":0.001,\\"decay\\":0.2,\\"sustain\\":0,\\"hcutoff\\":5999.143312438893,\\"cutoff\\":4000}",
-  "-1/8 -> 1/4: {\\"n\\":\\"A5\\",\\"s\\":\\"sawtooth\\",\\"gain\\":0.2573601511491127,\\"attack\\":0.001,\\"decay\\":0.2,\\"sustain\\":0,\\"hcutoff\\":5999.143312438893,\\"cutoff\\":4000}",
-  "-1/8 -> 1/4: {\\"n\\":\\"F#5\\",\\"s\\":\\"sawtooth\\",\\"gain\\":0.2573601511491127,\\"attack\\":0.001,\\"decay\\":0.2,\\"sustain\\":0,\\"hcutoff\\":5999.143312438893,\\"cutoff\\":4000}",
-  "-1/8 -> 1/4: {\\"n\\":\\"C#5\\",\\"s\\":\\"sawtooth\\",\\"gain\\":0.2573601511491127,\\"attack\\":0.001,\\"decay\\":0.2,\\"sustain\\":0,\\"hcutoff\\":5999.143312438893,\\"cutoff\\":4000}",
-  "-1/8 -> 1/4: {\\"n\\":\\"A4\\",\\"s\\":\\"sawtooth\\",\\"gain\\":0.2573601511491127,\\"attack\\":0.001,\\"decay\\":0.2,\\"sustain\\":0,\\"hcutoff\\":5999.143312438893,\\"cutoff\\":4000}",
-  "1/4 -> 1/2: {\\"n\\":\\"F#5\\",\\"s\\":\\"sawtooth\\",\\"gain\\":0.27200957116830426,\\"attack\\":0.001,\\"decay\\":0.2,\\"sustain\\":0,\\"hcutoff\\":5992.29333433282,\\"cutoff\\":4000}",
-  "1/4 -> 1/2: {\\"n\\":\\"A4\\",\\"s\\":\\"sawtooth\\",\\"gain\\":0.27200957116830426,\\"attack\\":0.001,\\"decay\\":0.2,\\"sustain\\":0,\\"hcutoff\\":5992.29333433282,\\"cutoff\\":4000}",
-  "-1/4 -> 1/8: {\\"n\\":\\"C#6\\",\\"s\\":\\"sawtooth\\",\\"gain\\":0.2536811842784369,\\"attack\\":0.001,\\"decay\\":0.2,\\"sustain\\":0,\\"hcutoff\\":5999.785818935017,\\"cutoff\\":4000}",
-  "-1/4 -> 1/8: {\\"n\\":\\"A5\\",\\"s\\":\\"sawtooth\\",\\"gain\\":0.2536811842784369,\\"attack\\":0.001,\\"decay\\":0.2,\\"sustain\\":0,\\"hcutoff\\":5999.785818935017,\\"cutoff\\":4000}",
-  "-1/4 -> 1/8: {\\"n\\":\\"E5\\",\\"s\\":\\"sawtooth\\",\\"gain\\":0.2536811842784369,\\"attack\\":0.001,\\"decay\\":0.2,\\"sustain\\":0,\\"hcutoff\\":5999.785818935017,\\"cutoff\\":4000}",
-  "-1/4 -> 1/8: {\\"n\\":\\"C#5\\",\\"s\\":\\"sawtooth\\",\\"gain\\":0.2536811842784369,\\"attack\\":0.001,\\"decay\\":0.2,\\"sustain\\":0,\\"hcutoff\\":5999.785818935017,\\"cutoff\\":4000}",
-  "1/8 -> 1/2: {\\"n\\":\\"A5\\",\\"s\\":\\"sawtooth\\",\\"gain\\":0.26836160127988246,\\"attack\\":0.001,\\"decay\\":0.2,\\"sustain\\":0,\\"hcutoff\\":5994.647308096509,\\"cutoff\\":4000}",
-  "1/8 -> 1/2: {\\"n\\":\\"F#5\\",\\"s\\":\\"sawtooth\\",\\"gain\\":0.26836160127988246,\\"attack\\":0.001,\\"decay\\":0.2,\\"sustain\\":0,\\"hcutoff\\":5994.647308096509,\\"cutoff\\":4000}",
-  "1/8 -> 1/2: {\\"n\\":\\"C#5\\",\\"s\\":\\"sawtooth\\",\\"gain\\":0.26836160127988246,\\"attack\\":0.001,\\"decay\\":0.2,\\"sustain\\":0,\\"hcutoff\\":5994.647308096509,\\"cutoff\\":4000}",
-  "1/8 -> 1/2: {\\"n\\":\\"A4\\",\\"s\\":\\"sawtooth\\",\\"gain\\":0.26836160127988246,\\"attack\\":0.001,\\"decay\\":0.2,\\"sustain\\":0,\\"hcutoff\\":5994.647308096509,\\"cutoff\\":4000}",
-  "1/2 -> 3/4: {\\"n\\":\\"F#5\\",\\"s\\":\\"sawtooth\\",\\"gain\\":0.28644702698548963,\\"attack\\":0.001,\\"decay\\":0.2,\\"sustain\\":0,\\"hcutoff\\":5978.612153434527,\\"cutoff\\":4000}",
-  "1/2 -> 3/4: {\\"n\\":\\"A4\\",\\"s\\":\\"sawtooth\\",\\"gain\\":0.28644702698548963,\\"attack\\":0.001,\\"decay\\":0.2,\\"sustain\\":0,\\"hcutoff\\":5978.612153434527,\\"cutoff\\":4000}",
-  "0/1 -> 1/4: bd",
-  "1/2 -> 3/4: bd",
-  "1/2 -> 1/1: sn",
-  "1/4 -> 1/2: hh3",
-  "3/4 -> 1/1: hh3",
-]
-`;
-
-exports[`renders shared tunes > shared tune 105 https://strudel.cc/?4yn-ch_d1hnA 1`] = `
-[
-  "0/1 -> 1/4: C3",
-  "0/1 -> 1/4: G3",
-  "0/1 -> 1/4: C4",
-  "1/2 -> 3/4: C3",
-  "1/2 -> 3/4: G3",
-  "1/2 -> 3/4: C4",
-  "0/1 -> 1/2: c2",
-  "1/2 -> 5/8: c2",
-  "3/4 -> 7/8: c2",
-  "0/1 -> 1/2: c1",
-  "1/2 -> 1/1: c1",
-]
-`;
-
-exports[`renders shared tunes > shared tune 106 https://strudel.cc/?2M1kLwRf6d-Q 1`] = `
-[
-  "0/1 -> 1/4: C3",
-  "0/1 -> 1/4: G3",
-  "0/1 -> 1/4: C4",
-  "1/2 -> 3/4: C3",
-  "1/2 -> 3/4: G3",
-  "1/2 -> 3/4: C4",
-  "0/1 -> 1/2: c2",
-  "1/2 -> 5/8: c2",
-  "3/4 -> 7/8: c2",
-  "0/1 -> 1/2: c1",
-  "1/2 -> 1/1: c1",
-]
-`;
-
-exports[`renders shared tunes > shared tune 107 https://strudel.cc/?XggCKeAH5uLK 1`] = `
-[
-  "0/1 -> 1/4: C3",
-  "0/1 -> 1/4: G3",
-  "0/1 -> 1/4: C4",
-  "1/2 -> 3/4: C3",
-  "1/2 -> 3/4: G3",
-  "1/2 -> 3/4: C4",
-  "0/1 -> 1/2: c2",
-  "1/2 -> 5/8: c2",
-  "3/4 -> 7/8: c2",
-  "0/1 -> 1/2: c1",
-  "1/2 -> 1/1: c1",
-]
-`;
-
-exports[`renders shared tunes > shared tune 108 https://strudel.cc/?BH_o1f7vPxd3 1`] = `
-[
-  "0/1 -> 3/4: c3",
-  "3/4 -> 1/1: eb3",
-  "3/4 -> 1/1: g3",
-  "3/4 -> 1/1: c4",
-  "0/1 -> 1/2: c2",
-  "1/2 -> 1/1: g2",
-  "0/1 -> 5/2: eb4",
-]
-`;
-
-exports[`renders shared tunes > shared tune 109 https://strudel.cc/?OdgRkOYpGrgF 1`] = `
-[
-  "0/1 -> 3/20: 0",
-  "0/1 -> 3/20: 3",
-  "3/4 -> 9/10: 1",
-  "3/4 -> 9/10: 4",
-  "0/1 -> 3/10: -8",
-  "3/8 -> 27/40: -8",
-  "3/4 -> 21/20: -7",
-  "0/1 -> 3/200: 12",
-  "3/4 -> 153/200: 11",
-  "0/1 -> 3/20: c2",
-  "747/1000 -> 1497/1000: c1",
-  "0/1 -> 3/8: c2",
-  "3/8 -> 3/4: c2",
-  "3/4 -> 9/8: c2",
-]
-`;
-
-exports[`renders shared tunes > shared tune 110 https://strudel.cc/?Yizg74mNj_6L 1`] = `[]`;
-
-exports[`renders shared tunes > shared tune 113 https://strudel.cc/?X7Vln6QqABL2 1`] = `
-[
-  "0/1 -> 1/3: {\\"value\\":0,\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":null}",
-  "1/3 -> 2/3: {\\"value\\":5,\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":null}",
-  "2/3 -> 1/1: {\\"value\\":7,\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":null}",
-]
-`;
-
-exports[`renders shared tunes > shared tune 114 https://strudel.cc/?ILwq_zKFMNN5 1`] = `
-[
-  "0/1 -> 1/3: bd",
-  "1/3 -> 2/3: hh",
-  "2/3 -> 1/1: sn",
-  "0/1 -> 1/20: G4",
-  "1/6 -> 13/60: G4",
-  "1/3 -> 23/60: B3",
-  "1/2 -> 11/20: B3",
-  "1/3 -> 23/60: E4",
-  "1/2 -> 11/20: E4",
-  "2/3 -> 43/60: G3",
-  "5/6 -> 53/60: G3",
-  "0/1 -> 4/3: c2",
-  "0/1 -> 4/3: c2",
-]
-`;
-
-exports[`renders shared tunes > shared tune 115 https://strudel.cc/?CSzelQFTGerr 1`] = `
-[
-  "0/1 -> 63/220: f#6",
-  "7/22 -> 133/220: f#6",
-  "7/11 -> 203/220: f#6",
-  "21/22 -> 609/440: f#6",
-  "0/1 -> 21/88: 71",
-  "0/1 -> 21/88: 75",
-  "0/1 -> 21/88: 78",
-  "21/44 -> 63/88: 71",
-  "21/44 -> 63/88: 75",
-  "21/44 -> 63/88: 78",
-  "21/22 -> 105/88: 71",
-  "21/22 -> 105/88: 75",
-  "21/22 -> 105/88: 78",
-]
-`;
-
-exports[`renders shared tunes > shared tune 116 https://strudel.cc/?j5oC-CSjk7Kq 1`] = `
-[
-  "0/1 -> 1/4: {\\"note\\":\\"Bb3\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5185185185185186}",
-  "0/1 -> 1/4: {\\"note\\":\\"D4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.537037037037037}",
-  "0/1 -> 1/4: {\\"note\\":\\"Eb4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5416666666666667}",
-  "0/1 -> 1/4: {\\"note\\":\\"G4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5601851851851851}",
-  "1/2 -> 5/4: {\\"note\\":\\"Bb3\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5185185185185186}",
-  "1/2 -> 5/4: {\\"note\\":\\"D4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.537037037037037}",
-  "1/2 -> 5/4: {\\"note\\":\\"Eb4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5416666666666667}",
-  "1/2 -> 5/4: {\\"note\\":\\"G4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5601851851851851}",
-  "0/1 -> 1/2: {\\"note\\":\\"C2\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.41666666666666663}",
-  "3/4 -> 7/8: {\\"note\\":\\"G2\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.44907407407407407}",
-]
-`;
-
-exports[`renders shared tunes > shared tune 117 https://strudel.cc/?waoDkqtNx0Xe 1`] = `
-[
-  "0/1 -> 1/2: c1",
-  "1/2 -> 1/1: c1",
-  "1/2 -> 1/1: x",
-  "1/4 -> 1/2: c4",
-  "3/4 -> 1/1: c4",
-  "0/1 -> 1/2: B1",
-  "3/4 -> 1/1: B1",
-  "1/4 -> 13/44: A3",
-  "1/4 -> 13/44: C#4",
-  "1/4 -> 13/44: D4",
-  "1/4 -> 13/44: F#4",
-]
-`;
-
-exports[`renders shared tunes > shared tune 118 https://strudel.cc/?hHssvZuQ9eU- 1`] = `
-[
-  "0/1 -> 1/4: {\\"note\\":\\"C2\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.41666666666666663}",
-  "0/1 -> 1/4: {\\"note\\":\\"C2\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.41666666666666663}",
-  "446428571428571/12500000000000000 -> 3571428571428571/12500000000000000: {\\"note\\":\\"A#4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5740740740740741}",
-  "446428571428571/12500000000000000 -> 3571428571428571/12500000000000000: {\\"note\\":\\"D#5\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5972222222222222}",
-  "446428571428571/12500000000000000 -> 3571428571428571/12500000000000000: {\\"note\\":\\"E5\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.6018518518518519}",
-  "446428571428571/12500000000000000 -> 3571428571428571/12500000000000000: {\\"note\\":\\"G#5\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.6203703703703703}",
-  "0/1 -> 1/4: {\\"note\\":\\"C2\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.41666666666666663}",
-  "446428571428571/12500000000000000 -> 3571428571428571/12500000000000000: {\\"note\\":\\"A#4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5740740740740741}",
-  "446428571428571/12500000000000000 -> 3571428571428571/12500000000000000: {\\"note\\":\\"D#5\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5972222222222222}",
-  "446428571428571/12500000000000000 -> 3571428571428571/12500000000000000: {\\"note\\":\\"E5\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.6018518518518519}",
-  "446428571428571/12500000000000000 -> 3571428571428571/12500000000000000: {\\"note\\":\\"G#5\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.6203703703703703}",
-  "0/1 -> 1/4: {\\"note\\":\\"C2\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.41666666666666663}",
-  "446428571428571/12500000000000000 -> 3571428571428571/12500000000000000: {\\"note\\":\\"A#4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5740740740740741}",
-  "446428571428571/12500000000000000 -> 3571428571428571/12500000000000000: {\\"note\\":\\"D#5\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5972222222222222}",
-  "446428571428571/12500000000000000 -> 3571428571428571/12500000000000000: {\\"note\\":\\"E5\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.6018518518518519}",
-  "446428571428571/12500000000000000 -> 3571428571428571/12500000000000000: {\\"note\\":\\"G#5\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.6203703703703703}",
-  "0/1 -> 1/4: {\\"note\\":\\"C2\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.41666666666666663}",
-  "446428571428571/12500000000000000 -> 3571428571428571/12500000000000000: {\\"note\\":\\"A#4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5740740740740741}",
-  "446428571428571/12500000000000000 -> 3571428571428571/12500000000000000: {\\"note\\":\\"D#5\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5972222222222222}",
-  "446428571428571/12500000000000000 -> 3571428571428571/12500000000000000: {\\"note\\":\\"E5\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.6018518518518519}",
-  "446428571428571/12500000000000000 -> 3571428571428571/12500000000000000: {\\"note\\":\\"G#5\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.6203703703703703}",
-  "0/1 -> 1/4: {\\"note\\":\\"C2\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.41666666666666663}",
-  "446428571428571/12500000000000000 -> 3571428571428571/12500000000000000: {\\"note\\":\\"A#4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5740740740740741}",
-  "446428571428571/12500000000000000 -> 3571428571428571/12500000000000000: {\\"note\\":\\"D#5\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5972222222222222}",
-  "446428571428571/12500000000000000 -> 3571428571428571/12500000000000000: {\\"note\\":\\"E5\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.6018518518518519}",
-  "446428571428571/12500000000000000 -> 3571428571428571/12500000000000000: {\\"note\\":\\"G#5\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.6203703703703703}",
-  "0/1 -> 1/4: {\\"note\\":\\"C2\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.41666666666666663}",
-  "446428571428571/12500000000000000 -> 3571428571428571/12500000000000000: {\\"note\\":\\"A#4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5740740740740741}",
-  "446428571428571/12500000000000000 -> 3571428571428571/12500000000000000: {\\"note\\":\\"D#5\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5972222222222222}",
-  "446428571428571/12500000000000000 -> 3571428571428571/12500000000000000: {\\"note\\":\\"E5\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.6018518518518519}",
-  "446428571428571/12500000000000000 -> 3571428571428571/12500000000000000: {\\"note\\":\\"G#5\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.6203703703703703}",
-  "0/1 -> 1/4: {\\"note\\":\\"C2\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.41666666666666663}",
-  "446428571428571/12500000000000000 -> 3571428571428571/12500000000000000: {\\"note\\":\\"A#4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5740740740740741}",
-  "446428571428571/12500000000000000 -> 3571428571428571/12500000000000000: {\\"note\\":\\"D#5\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5972222222222222}",
-  "446428571428571/12500000000000000 -> 3571428571428571/12500000000000000: {\\"note\\":\\"E5\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.6018518518518519}",
-  "446428571428571/12500000000000000 -> 3571428571428571/12500000000000000: {\\"note\\":\\"G#5\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.6203703703703703}",
-  "0/1 -> 1/4: {\\"note\\":\\"C2\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.41666666666666663}",
-  "1/8 -> 1/4: {\\"note\\":\\"C4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5277777777777778}",
-  "1/8 -> 1/4: {\\"note\\":\\"Eb4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5416666666666667}",
-  "446428571428571/12500000000000000 -> 3571428571428571/12500000000000000: {\\"note\\":\\"A#4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5740740740740741}",
-  "446428571428571/12500000000000000 -> 3571428571428571/12500000000000000: {\\"note\\":\\"D#5\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5972222222222222}",
-  "446428571428571/12500000000000000 -> 3571428571428571/12500000000000000: {\\"note\\":\\"E5\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.6018518518518519}",
-  "446428571428571/12500000000000000 -> 3571428571428571/12500000000000000: {\\"note\\":\\"G#5\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.6203703703703703}",
-  "0/1 -> 1/4: {\\"note\\":\\"C2\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.41666666666666663}",
-  "1/8 -> 1/4: {\\"note\\":\\"C4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5277777777777778}",
-  "1/8 -> 1/4: {\\"note\\":\\"Eb4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5416666666666667}",
-  "446428571428571/12500000000000000 -> 3571428571428571/12500000000000000: {\\"note\\":\\"A#4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5740740740740741}",
-  "446428571428571/12500000000000000 -> 3571428571428571/12500000000000000: {\\"note\\":\\"D#5\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5972222222222222}",
-  "446428571428571/12500000000000000 -> 3571428571428571/12500000000000000: {\\"note\\":\\"E5\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.6018518518518519}",
-  "446428571428571/12500000000000000 -> 3571428571428571/12500000000000000: {\\"note\\":\\"G#5\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.6203703703703703}",
-  "0/1 -> 1/4: {\\"note\\":\\"C2\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.41666666666666663}",
-  "1/8 -> 1/4: {\\"note\\":\\"C4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5277777777777778}",
-  "1/8 -> 1/4: {\\"note\\":\\"Eb4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5416666666666667}",
-  "446428571428571/12500000000000000 -> 3571428571428571/12500000000000000: {\\"note\\":\\"A#4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5740740740740741}",
-  "446428571428571/12500000000000000 -> 3571428571428571/12500000000000000: {\\"note\\":\\"D#5\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5972222222222222}",
-  "446428571428571/12500000000000000 -> 3571428571428571/12500000000000000: {\\"note\\":\\"E5\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.6018518518518519}",
-  "446428571428571/12500000000000000 -> 3571428571428571/12500000000000000: {\\"note\\":\\"G#5\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.6203703703703703}",
-  "0/1 -> 1/4: {\\"note\\":\\"C2\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.41666666666666663}",
-  "1/8 -> 1/4: {\\"note\\":\\"C4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5277777777777778}",
-  "1/8 -> 1/4: {\\"note\\":\\"Eb4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5416666666666667}",
-  "446428571428571/12500000000000000 -> 3571428571428571/12500000000000000: {\\"note\\":\\"A#4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5740740740740741}",
-  "446428571428571/12500000000000000 -> 3571428571428571/12500000000000000: {\\"note\\":\\"D#5\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5972222222222222}",
-  "446428571428571/12500000000000000 -> 3571428571428571/12500000000000000: {\\"note\\":\\"E5\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.6018518518518519}",
-  "446428571428571/12500000000000000 -> 3571428571428571/12500000000000000: {\\"note\\":\\"G#5\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.6203703703703703}",
-  "0/1 -> 1/4: {\\"note\\":\\"C2\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.41666666666666663}",
-  "1/8 -> 1/4: {\\"note\\":\\"C4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5277777777777778}",
-  "1/8 -> 1/4: {\\"note\\":\\"Eb4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5416666666666667}",
-  "446428571428571/12500000000000000 -> 3571428571428571/12500000000000000: {\\"note\\":\\"A#4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5740740740740741}",
-  "446428571428571/12500000000000000 -> 3571428571428571/12500000000000000: {\\"note\\":\\"D#5\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5972222222222222}",
-  "446428571428571/12500000000000000 -> 3571428571428571/12500000000000000: {\\"note\\":\\"E5\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.6018518518518519}",
-  "446428571428571/12500000000000000 -> 3571428571428571/12500000000000000: {\\"note\\":\\"G#5\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.6203703703703703}",
-  "0/1 -> 1/4: {\\"note\\":\\"C2\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.41666666666666663}",
-  "1/8 -> 1/4: {\\"note\\":\\"C4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5277777777777778}",
-  "1/8 -> 1/4: {\\"note\\":\\"Eb4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5416666666666667}",
-  "446428571428571/12500000000000000 -> 3571428571428571/12500000000000000: {\\"note\\":\\"A#4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5740740740740741}",
-  "446428571428571/12500000000000000 -> 3571428571428571/12500000000000000: {\\"note\\":\\"D#5\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5972222222222222}",
-  "446428571428571/12500000000000000 -> 3571428571428571/12500000000000000: {\\"note\\":\\"E5\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.6018518518518519}",
-  "446428571428571/12500000000000000 -> 3571428571428571/12500000000000000: {\\"note\\":\\"G#5\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.6203703703703703}",
-  "0/1 -> 1/4: {\\"note\\":\\"C2\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.41666666666666663}",
-  "1/8 -> 1/4: {\\"note\\":\\"C4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5277777777777778}",
-  "1/8 -> 1/4: {\\"note\\":\\"Eb4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5416666666666667}",
-  "446428571428571/12500000000000000 -> 3571428571428571/12500000000000000: {\\"note\\":\\"A#4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5740740740740741}",
-  "446428571428571/12500000000000000 -> 3571428571428571/12500000000000000: {\\"note\\":\\"D#5\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5972222222222222}",
-  "446428571428571/12500000000000000 -> 3571428571428571/12500000000000000: {\\"note\\":\\"E5\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.6018518518518519}",
-  "446428571428571/12500000000000000 -> 3571428571428571/12500000000000000: {\\"note\\":\\"G#5\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.6203703703703703}",
-  "0/1 -> 1/4: {\\"note\\":\\"C2\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.41666666666666663}",
-  "1/8 -> 1/4: {\\"note\\":\\"C4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5277777777777778}",
-  "1/8 -> 1/4: {\\"note\\":\\"Eb4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5416666666666667}",
-  "446428571428571/12500000000000000 -> 3571428571428571/12500000000000000: {\\"note\\":\\"A#4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5740740740740741}",
-  "446428571428571/12500000000000000 -> 3571428571428571/12500000000000000: {\\"note\\":\\"D#5\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5972222222222222}",
-  "446428571428571/12500000000000000 -> 3571428571428571/12500000000000000: {\\"note\\":\\"E5\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.6018518518518519}",
-  "446428571428571/12500000000000000 -> 3571428571428571/12500000000000000: {\\"note\\":\\"G#5\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.6203703703703703}",
-  "446428571428571/12500000000000000 -> 3571428571428571/12500000000000000: {\\"note\\":\\"A#4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5740740740740741}",
-  "446428571428571/12500000000000000 -> 3571428571428571/12500000000000000: {\\"note\\":\\"D#5\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5972222222222222}",
-  "446428571428571/12500000000000000 -> 3571428571428571/12500000000000000: {\\"note\\":\\"E5\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.6018518518518519}",
-  "446428571428571/12500000000000000 -> 3571428571428571/12500000000000000: {\\"note\\":\\"G#5\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.6203703703703703}",
-  "446428571428571/12500000000000000 -> 3571428571428571/12500000000000000: {\\"note\\":\\"A#4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5740740740740741}",
-  "446428571428571/12500000000000000 -> 3571428571428571/12500000000000000: {\\"note\\":\\"D#5\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5972222222222222}",
-  "446428571428571/12500000000000000 -> 3571428571428571/12500000000000000: {\\"note\\":\\"E5\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.6018518518518519}",
-  "446428571428571/12500000000000000 -> 3571428571428571/12500000000000000: {\\"note\\":\\"G#5\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.6203703703703703}",
-  "1/2 -> 3/4: {\\"note\\":\\"Bb3\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5185185185185186}",
-  "1/2 -> 3/4: {\\"note\\":\\"D4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.537037037037037}",
-  "1/2 -> 3/4: {\\"note\\":\\"Eb4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5416666666666667}",
-  "1/2 -> 3/4: {\\"note\\":\\"G4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5601851851851851}",
-  "1/2 -> 3/4: {\\"note\\":\\"C2\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.41666666666666663}",
-  "1/2 -> 5/8: {\\"note\\":\\"G4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5601851851851851}",
-  "1/2 -> 5/8: {\\"note\\":\\"Bb4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5740740740740741}",
-  "1/2 -> 3/4: {\\"note\\":\\"Bb3\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5185185185185186}",
-  "1/2 -> 3/4: {\\"note\\":\\"D4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.537037037037037}",
-  "1/2 -> 3/4: {\\"note\\":\\"Eb4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5416666666666667}",
-  "1/2 -> 3/4: {\\"note\\":\\"G4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5601851851851851}",
-  "1/2 -> 3/4: {\\"note\\":\\"C2\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.41666666666666663}",
-  "1/2 -> 5/8: {\\"note\\":\\"G4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5601851851851851}",
-  "1/2 -> 5/8: {\\"note\\":\\"Bb4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5740740740740741}",
-  "1/2 -> 3/4: {\\"note\\":\\"Bb3\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5185185185185186}",
-  "1/2 -> 3/4: {\\"note\\":\\"D4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.537037037037037}",
-  "1/2 -> 3/4: {\\"note\\":\\"Eb4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5416666666666667}",
-  "1/2 -> 3/4: {\\"note\\":\\"G4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5601851851851851}",
-  "1/2 -> 3/4: {\\"note\\":\\"C2\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.41666666666666663}",
-  "1/2 -> 5/8: {\\"note\\":\\"G4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5601851851851851}",
-  "1/2 -> 5/8: {\\"note\\":\\"Bb4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5740740740740741}",
-  "1/2 -> 3/4: {\\"note\\":\\"Bb3\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5185185185185186}",
-  "1/2 -> 3/4: {\\"note\\":\\"D4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.537037037037037}",
-  "1/2 -> 3/4: {\\"note\\":\\"Eb4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5416666666666667}",
-  "1/2 -> 3/4: {\\"note\\":\\"G4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5601851851851851}",
-  "1/2 -> 3/4: {\\"note\\":\\"C2\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.41666666666666663}",
-  "1/2 -> 5/8: {\\"note\\":\\"G4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5601851851851851}",
-  "1/2 -> 5/8: {\\"note\\":\\"Bb4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5740740740740741}",
-  "1/2 -> 3/4: {\\"note\\":\\"Bb3\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5185185185185186}",
-  "1/2 -> 3/4: {\\"note\\":\\"D4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.537037037037037}",
-  "1/2 -> 3/4: {\\"note\\":\\"Eb4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5416666666666667}",
-  "1/2 -> 3/4: {\\"note\\":\\"G4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5601851851851851}",
-  "1/2 -> 3/4: {\\"note\\":\\"C2\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.41666666666666663}",
-  "1/2 -> 5/8: {\\"note\\":\\"G4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5601851851851851}",
-  "1/2 -> 5/8: {\\"note\\":\\"Bb4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5740740740740741}",
-  "1/2 -> 3/4: {\\"note\\":\\"Bb3\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5185185185185186}",
-  "1/2 -> 3/4: {\\"note\\":\\"D4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.537037037037037}",
-  "1/2 -> 3/4: {\\"note\\":\\"Eb4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5416666666666667}",
-  "1/2 -> 3/4: {\\"note\\":\\"G4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5601851851851851}",
-  "1/2 -> 3/4: {\\"note\\":\\"C2\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.41666666666666663}",
-  "1/2 -> 5/8: {\\"note\\":\\"G4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5601851851851851}",
-  "1/2 -> 5/8: {\\"note\\":\\"Bb4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5740740740740741}",
-  "1/2 -> 3/4: {\\"note\\":\\"Bb3\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5185185185185186}",
-  "1/2 -> 3/4: {\\"note\\":\\"D4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.537037037037037}",
-  "1/2 -> 3/4: {\\"note\\":\\"Eb4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5416666666666667}",
-  "1/2 -> 3/4: {\\"note\\":\\"G4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5601851851851851}",
-  "1/2 -> 3/4: {\\"note\\":\\"C2\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.41666666666666663}",
-  "1/2 -> 5/8: {\\"note\\":\\"G4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5601851851851851}",
-  "1/2 -> 5/8: {\\"note\\":\\"Bb4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5740740740740741}",
-  "1/2 -> 3/4: {\\"note\\":\\"Bb3\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5185185185185186}",
-  "1/2 -> 3/4: {\\"note\\":\\"D4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.537037037037037}",
-  "1/2 -> 3/4: {\\"note\\":\\"Eb4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5416666666666667}",
-  "1/2 -> 3/4: {\\"note\\":\\"G4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5601851851851851}",
-  "1/2 -> 3/4: {\\"note\\":\\"C2\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.41666666666666663}",
-  "1/2 -> 5/8: {\\"note\\":\\"G4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5601851851851851}",
-  "1/2 -> 5/8: {\\"note\\":\\"Bb4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5740740740740741}",
-  "1/2 -> 3/4: {\\"note\\":\\"Bb3\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5185185185185186}",
-  "1/2 -> 3/4: {\\"note\\":\\"D4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.537037037037037}",
-  "1/2 -> 3/4: {\\"note\\":\\"Eb4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5416666666666667}",
-  "1/2 -> 3/4: {\\"note\\":\\"G4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5601851851851851}",
-  "1/2 -> 3/4: {\\"note\\":\\"C2\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.41666666666666663}",
-  "1/2 -> 3/4: {\\"note\\":\\"Bb3\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5185185185185186}",
-  "1/2 -> 3/4: {\\"note\\":\\"D4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.537037037037037}",
-  "1/2 -> 3/4: {\\"note\\":\\"Eb4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5416666666666667}",
-  "1/2 -> 3/4: {\\"note\\":\\"G4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5601851851851851}",
-  "1/2 -> 3/4: {\\"note\\":\\"C2\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.41666666666666663}",
-  "1/2 -> 3/4: {\\"note\\":\\"Bb3\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5185185185185186}",
-  "1/2 -> 3/4: {\\"note\\":\\"D4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.537037037037037}",
-  "1/2 -> 3/4: {\\"note\\":\\"Eb4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5416666666666667}",
-  "1/2 -> 3/4: {\\"note\\":\\"G4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5601851851851851}",
-  "1/2 -> 3/4: {\\"note\\":\\"C2\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.41666666666666663}",
-  "1/2 -> 3/4: {\\"note\\":\\"Bb3\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5185185185185186}",
-  "1/2 -> 3/4: {\\"note\\":\\"D4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.537037037037037}",
-  "1/2 -> 3/4: {\\"note\\":\\"Eb4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5416666666666667}",
-  "1/2 -> 3/4: {\\"note\\":\\"G4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5601851851851851}",
-  "1/2 -> 3/4: {\\"note\\":\\"C2\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.41666666666666663}",
-  "1/2 -> 3/4: {\\"note\\":\\"Bb3\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5185185185185186}",
-  "1/2 -> 3/4: {\\"note\\":\\"D4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.537037037037037}",
-  "1/2 -> 3/4: {\\"note\\":\\"Eb4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5416666666666667}",
-  "1/2 -> 3/4: {\\"note\\":\\"G4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5601851851851851}",
-  "1/2 -> 3/4: {\\"note\\":\\"C2\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.41666666666666663}",
-  "1/2 -> 3/4: {\\"note\\":\\"Bb3\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5185185185185186}",
-  "1/2 -> 3/4: {\\"note\\":\\"D4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.537037037037037}",
-  "1/2 -> 3/4: {\\"note\\":\\"Eb4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5416666666666667}",
-  "1/2 -> 3/4: {\\"note\\":\\"G4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5601851851851851}",
-  "1/2 -> 3/4: {\\"note\\":\\"C2\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.41666666666666663}",
-  "1/2 -> 3/4: {\\"note\\":\\"Bb3\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5185185185185186}",
-  "1/2 -> 3/4: {\\"note\\":\\"D4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.537037037037037}",
-  "1/2 -> 3/4: {\\"note\\":\\"Eb4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5416666666666667}",
-  "1/2 -> 3/4: {\\"note\\":\\"G4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5601851851851851}",
-  "1/2 -> 3/4: {\\"note\\":\\"C2\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.41666666666666663}",
-  "1/2 -> 3/4: {\\"note\\":\\"Bb3\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5185185185185186}",
-  "1/2 -> 3/4: {\\"note\\":\\"D4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.537037037037037}",
-  "1/2 -> 3/4: {\\"note\\":\\"Eb4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5416666666666667}",
-  "1/2 -> 3/4: {\\"note\\":\\"G4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5601851851851851}",
-  "1/2 -> 3/4: {\\"note\\":\\"C2\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.41666666666666663}",
-  "3/4 -> 7/8: {\\"note\\":\\"C4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5277777777777778}",
-  "3/4 -> 7/8: {\\"note\\":\\"Eb4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5416666666666667}",
-  "3/4 -> 7/8: {\\"note\\":\\"C4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5277777777777778}",
-  "3/4 -> 7/8: {\\"note\\":\\"Eb4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5416666666666667}",
-  "2455357142857143/3125000000000000 -> 3236607142857143/3125000000000000: {\\"note\\":\\"Bb4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5740740740740741}",
-  "2455357142857143/3125000000000000 -> 3236607142857143/3125000000000000: {\\"note\\":\\"D5\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5925925925925926}",
-  "2455357142857143/3125000000000000 -> 3236607142857143/3125000000000000: {\\"note\\":\\"Eb5\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5972222222222222}",
-  "2455357142857143/3125000000000000 -> 3236607142857143/3125000000000000: {\\"note\\":\\"G5\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.6157407407407407}",
-  "3/4 -> 7/8: {\\"note\\":\\"C4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5277777777777778}",
-  "3/4 -> 7/8: {\\"note\\":\\"Eb4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5416666666666667}",
-  "2455357142857143/3125000000000000 -> 3236607142857143/3125000000000000: {\\"note\\":\\"Bb4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5740740740740741}",
-  "2455357142857143/3125000000000000 -> 3236607142857143/3125000000000000: {\\"note\\":\\"D5\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5925925925925926}",
-  "2455357142857143/3125000000000000 -> 3236607142857143/3125000000000000: {\\"note\\":\\"Eb5\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5972222222222222}",
-  "2455357142857143/3125000000000000 -> 3236607142857143/3125000000000000: {\\"note\\":\\"G5\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.6157407407407407}",
-  "3/4 -> 7/8: {\\"note\\":\\"C4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5277777777777778}",
-  "3/4 -> 7/8: {\\"note\\":\\"Eb4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5416666666666667}",
-  "2455357142857143/3125000000000000 -> 3236607142857143/3125000000000000: {\\"note\\":\\"Bb4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5740740740740741}",
-  "2455357142857143/3125000000000000 -> 3236607142857143/3125000000000000: {\\"note\\":\\"D5\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5925925925925926}",
-  "2455357142857143/3125000000000000 -> 3236607142857143/3125000000000000: {\\"note\\":\\"Eb5\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5972222222222222}",
-  "2455357142857143/3125000000000000 -> 3236607142857143/3125000000000000: {\\"note\\":\\"G5\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.6157407407407407}",
-  "3/4 -> 7/8: {\\"note\\":\\"C4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5277777777777778}",
-  "3/4 -> 7/8: {\\"note\\":\\"Eb4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5416666666666667}",
-  "2455357142857143/3125000000000000 -> 3236607142857143/3125000000000000: {\\"note\\":\\"Bb4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5740740740740741}",
-  "2455357142857143/3125000000000000 -> 3236607142857143/3125000000000000: {\\"note\\":\\"D5\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5925925925925926}",
-  "2455357142857143/3125000000000000 -> 3236607142857143/3125000000000000: {\\"note\\":\\"Eb5\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5972222222222222}",
-  "2455357142857143/3125000000000000 -> 3236607142857143/3125000000000000: {\\"note\\":\\"G5\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.6157407407407407}",
-  "3/4 -> 7/8: {\\"note\\":\\"C4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5277777777777778}",
-  "3/4 -> 7/8: {\\"note\\":\\"Eb4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5416666666666667}",
-  "2455357142857143/3125000000000000 -> 3236607142857143/3125000000000000: {\\"note\\":\\"Bb4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5740740740740741}",
-  "2455357142857143/3125000000000000 -> 3236607142857143/3125000000000000: {\\"note\\":\\"D5\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5925925925925926}",
-  "2455357142857143/3125000000000000 -> 3236607142857143/3125000000000000: {\\"note\\":\\"Eb5\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5972222222222222}",
-  "2455357142857143/3125000000000000 -> 3236607142857143/3125000000000000: {\\"note\\":\\"G5\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.6157407407407407}",
-  "3/4 -> 7/8: {\\"note\\":\\"C4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5277777777777778}",
-  "3/4 -> 7/8: {\\"note\\":\\"Eb4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5416666666666667}",
-  "2455357142857143/3125000000000000 -> 3236607142857143/3125000000000000: {\\"note\\":\\"Bb4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5740740740740741}",
-  "2455357142857143/3125000000000000 -> 3236607142857143/3125000000000000: {\\"note\\":\\"D5\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5925925925925926}",
-  "2455357142857143/3125000000000000 -> 3236607142857143/3125000000000000: {\\"note\\":\\"Eb5\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5972222222222222}",
-  "2455357142857143/3125000000000000 -> 3236607142857143/3125000000000000: {\\"note\\":\\"G5\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.6157407407407407}",
-  "3/4 -> 7/8: {\\"note\\":\\"C4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5277777777777778}",
-  "3/4 -> 7/8: {\\"note\\":\\"Eb4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5416666666666667}",
-  "2455357142857143/3125000000000000 -> 3236607142857143/3125000000000000: {\\"note\\":\\"Bb4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5740740740740741}",
-  "2455357142857143/3125000000000000 -> 3236607142857143/3125000000000000: {\\"note\\":\\"D5\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5925925925925926}",
-  "2455357142857143/3125000000000000 -> 3236607142857143/3125000000000000: {\\"note\\":\\"Eb5\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5972222222222222}",
-  "2455357142857143/3125000000000000 -> 3236607142857143/3125000000000000: {\\"note\\":\\"G5\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.6157407407407407}",
-  "2455357142857143/3125000000000000 -> 3236607142857143/3125000000000000: {\\"note\\":\\"Bb4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5740740740740741}",
-  "2455357142857143/3125000000000000 -> 3236607142857143/3125000000000000: {\\"note\\":\\"D5\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5925925925925926}",
-  "2455357142857143/3125000000000000 -> 3236607142857143/3125000000000000: {\\"note\\":\\"Eb5\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5972222222222222}",
-  "2455357142857143/3125000000000000 -> 3236607142857143/3125000000000000: {\\"note\\":\\"G5\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.6157407407407407}",
-  "2455357142857143/3125000000000000 -> 3236607142857143/3125000000000000: {\\"note\\":\\"Bb4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5740740740740741}",
-  "2455357142857143/3125000000000000 -> 3236607142857143/3125000000000000: {\\"note\\":\\"D5\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5925925925925926}",
-  "2455357142857143/3125000000000000 -> 3236607142857143/3125000000000000: {\\"note\\":\\"Eb5\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5972222222222222}",
-  "2455357142857143/3125000000000000 -> 3236607142857143/3125000000000000: {\\"note\\":\\"G5\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.6157407407407407}",
-  "2455357142857143/3125000000000000 -> 3236607142857143/3125000000000000: {\\"note\\":\\"Bb4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5740740740740741}",
-  "2455357142857143/3125000000000000 -> 3236607142857143/3125000000000000: {\\"note\\":\\"D5\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5925925925925926}",
-  "2455357142857143/3125000000000000 -> 3236607142857143/3125000000000000: {\\"note\\":\\"Eb5\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5972222222222222}",
-  "2455357142857143/3125000000000000 -> 3236607142857143/3125000000000000: {\\"note\\":\\"G5\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.6157407407407407}",
-  "2455357142857143/3125000000000000 -> 3236607142857143/3125000000000000: {\\"note\\":\\"Bb4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5740740740740741}",
-  "2455357142857143/3125000000000000 -> 3236607142857143/3125000000000000: {\\"note\\":\\"D5\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5925925925925926}",
-  "2455357142857143/3125000000000000 -> 3236607142857143/3125000000000000: {\\"note\\":\\"Eb5\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5972222222222222}",
-  "2455357142857143/3125000000000000 -> 3236607142857143/3125000000000000: {\\"note\\":\\"G5\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.6157407407407407}",
-  "2455357142857143/3125000000000000 -> 3236607142857143/3125000000000000: {\\"note\\":\\"Bb4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5740740740740741}",
-  "2455357142857143/3125000000000000 -> 3236607142857143/3125000000000000: {\\"note\\":\\"D5\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5925925925925926}",
-  "2455357142857143/3125000000000000 -> 3236607142857143/3125000000000000: {\\"note\\":\\"Eb5\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5972222222222222}",
-  "2455357142857143/3125000000000000 -> 3236607142857143/3125000000000000: {\\"note\\":\\"G5\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.6157407407407407}",
-  "2455357142857143/3125000000000000 -> 3236607142857143/3125000000000000: {\\"note\\":\\"Bb4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5740740740740741}",
-  "2455357142857143/3125000000000000 -> 3236607142857143/3125000000000000: {\\"note\\":\\"D5\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5925925925925926}",
-  "2455357142857143/3125000000000000 -> 3236607142857143/3125000000000000: {\\"note\\":\\"Eb5\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5972222222222222}",
-  "2455357142857143/3125000000000000 -> 3236607142857143/3125000000000000: {\\"note\\":\\"G5\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.6157407407407407}",
-  "2455357142857143/3125000000000000 -> 3236607142857143/3125000000000000: {\\"note\\":\\"Bb4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5740740740740741}",
-  "2455357142857143/3125000000000000 -> 3236607142857143/3125000000000000: {\\"note\\":\\"Bb4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5740740740740741}",
-  "2455357142857143/3125000000000000 -> 3236607142857143/3125000000000000: {\\"note\\":\\"D5\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5925925925925926}",
-  "2455357142857143/3125000000000000 -> 3236607142857143/3125000000000000: {\\"note\\":\\"D5\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5925925925925926}",
-  "2455357142857143/3125000000000000 -> 3236607142857143/3125000000000000: {\\"note\\":\\"Eb5\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5972222222222222}",
-  "2455357142857143/3125000000000000 -> 3236607142857143/3125000000000000: {\\"note\\":\\"Eb5\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5972222222222222}",
-  "2455357142857143/3125000000000000 -> 3236607142857143/3125000000000000: {\\"note\\":\\"G5\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.6157407407407407}",
-  "2455357142857143/3125000000000000 -> 3236607142857143/3125000000000000: {\\"note\\":\\"G5\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.6157407407407407}",
-]
-`;
-
-exports[`renders shared tunes > shared tune 119 https://strudel.cc/?YjCJ3DhT9u4M 1`] = `[]`;
-
-exports[`renders shared tunes > shared tune 121 https://strudel.cc/?wrcmJLYiesgF 1`] = `
-[
-  "0/1 -> 19/80: e5",
-  "1/2 -> 79/120: d5",
-  "2/3 -> 179/240: c5",
-  "11/12 -> 239/240: e5",
-  "1/4 -> 1/2: g4",
-  "3/4 -> 1/1: g4",
-  "0/1 -> 1/4: c3",
-  "1/2 -> 3/4: c3",
-]
-`;
-
-exports[`renders shared tunes > shared tune 122 https://strudel.cc/?tiYDzBGIFjYV 1`] = `
-[
-  "0/1 -> 2/1: {\\"note\\":\\"C3\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.4722222222222222}",
-  "0/1 -> 2/1: {\\"note\\":\\"E3\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.4907407407407407}",
-  "0/1 -> 1/1: {\\"note\\":\\"B3\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5231481481481481}",
-]
-`;
-
-exports[`renders shared tunes > shared tune 123 https://strudel.cc/?Y1nz8H0a10CF 1`] = `
-[
-  "-1666666666666667/7500000000000000 -> 2/9: G3",
-  "0/1 -> 4/3: E3",
-  "0/1 -> 4/3: A3",
-  "0/1 -> 4/3: D4",
-  "0/1 -> 4/3: G4",
-  "0/1 -> 4/3: B4",
-  "0/1 -> 2/3: D2",
-  "2/3 -> 7/9: D2",
-  "8/9 -> 1/1: D2",
-  "0/1 -> 2/9: c1",
-  "2/9 -> 4/9: c1",
-  "4/9 -> 2/3: c1",
-  "2/3 -> 8/9: c1",
-  "8/9 -> 10/9: c1",
-  "2/3 -> 4/3: c3",
-  "0/1 -> 10/9: c1",
-  "0/1 -> 16/3: F3",
-  "0/1 -> 16/3: A3",
-]
-`;
-
-exports[`renders shared tunes > shared tune 124 https://strudel.cc/?SZDwdxhme28o 1`] = `
-[
-  "11/32 -> 1/2: {\\"n\\":\\"Bb3\\",\\"cutoff\\":1625,\\"s\\":\\"square\\",\\"decay\\":0.1,\\"sustain\\":0,\\"resonance\\":16,\\"gain\\":0.2,\\"pan\\":0.931367192988896}",
-  "11/32 -> 1/2: {\\"n\\":\\"D4\\",\\"cutoff\\":1625,\\"s\\":\\"square\\",\\"decay\\":0.1,\\"sustain\\":0,\\"resonance\\":16,\\"gain\\":0.2,\\"pan\\":0.931367192988896}",
-  "11/32 -> 1/2: {\\"n\\":\\"Eb4\\",\\"cutoff\\":1625,\\"s\\":\\"square\\",\\"decay\\":0.1,\\"sustain\\":0,\\"resonance\\":16,\\"gain\\":0.2,\\"pan\\":0.931367192988896}",
-  "11/32 -> 1/2: {\\"n\\":\\"G4\\",\\"cutoff\\":1625,\\"s\\":\\"square\\",\\"decay\\":0.1,\\"sustain\\":0,\\"resonance\\":16,\\"gain\\":0.2,\\"pan\\":0.931367192988896}",
-  "27/32 -> 1/1: {\\"n\\":\\"Bb3\\",\\"cutoff\\":1625,\\"s\\":\\"square\\",\\"decay\\":0.1,\\"sustain\\":0,\\"resonance\\":16,\\"gain\\":0.2,\\"pan\\":0.7003744165515706}",
-  "27/32 -> 1/1: {\\"n\\":\\"D4\\",\\"cutoff\\":1625,\\"s\\":\\"square\\",\\"decay\\":0.1,\\"sustain\\":0,\\"resonance\\":16,\\"gain\\":0.2,\\"pan\\":0.7003744165515706}",
-  "27/32 -> 1/1: {\\"n\\":\\"Eb4\\",\\"cutoff\\":1625,\\"s\\":\\"square\\",\\"decay\\":0.1,\\"sustain\\":0,\\"resonance\\":16,\\"gain\\":0.2,\\"pan\\":0.7003744165515706}",
-  "27/32 -> 1/1: {\\"n\\":\\"G4\\",\\"cutoff\\":1625,\\"s\\":\\"square\\",\\"decay\\":0.1,\\"sustain\\":0,\\"resonance\\":16,\\"gain\\":0.2,\\"pan\\":0.7003744165515706}",
-  "7/160 -> 1/5: {\\"n\\":\\"A3\\",\\"cutoff\\":875,\\"s\\":\\"square\\",\\"decay\\":0.1,\\"sustain\\":0,\\"resonance\\":16,\\"gain\\":0.2,\\"pan\\":0.9941475200179347}",
-  "7/160 -> 1/5: {\\"n\\":\\"C#4\\",\\"cutoff\\":875,\\"s\\":\\"square\\",\\"decay\\":0.1,\\"sustain\\":0,\\"resonance\\":16,\\"gain\\":0.2,\\"pan\\":0.9941475200179347}",
-  "7/160 -> 1/5: {\\"n\\":\\"D4\\",\\"cutoff\\":875,\\"s\\":\\"square\\",\\"decay\\":0.1,\\"sustain\\":0,\\"resonance\\":16,\\"gain\\":0.2,\\"pan\\":0.9941475200179347}",
-  "7/160 -> 1/5: {\\"n\\":\\"F#4\\",\\"cutoff\\":875,\\"s\\":\\"square\\",\\"decay\\":0.1,\\"sustain\\":0,\\"resonance\\":16,\\"gain\\":0.2,\\"pan\\":0.9941475200179347}",
-  "87/160 -> 7/10: {\\"n\\":\\"Bb3\\",\\"cutoff\\":1625,\\"s\\":\\"square\\",\\"decay\\":0.1,\\"sustain\\":0,\\"resonance\\":16,\\"gain\\":0.2,\\"pan\\":0.8549390618276451}",
-  "87/160 -> 7/10: {\\"n\\":\\"D4\\",\\"cutoff\\":1625,\\"s\\":\\"square\\",\\"decay\\":0.1,\\"sustain\\":0,\\"resonance\\":16,\\"gain\\":0.2,\\"pan\\":0.8549390618276451}",
-  "87/160 -> 7/10: {\\"n\\":\\"Eb4\\",\\"cutoff\\":1625,\\"s\\":\\"square\\",\\"decay\\":0.1,\\"sustain\\":0,\\"resonance\\":16,\\"gain\\":0.2,\\"pan\\":0.8549390618276451}",
-  "87/160 -> 7/10: {\\"n\\":\\"G4\\",\\"cutoff\\":1625,\\"s\\":\\"square\\",\\"decay\\":0.1,\\"sustain\\":0,\\"resonance\\":16,\\"gain\\":0.2,\\"pan\\":0.8549390618276451}",
-  "39/160 -> 2/5: {\\"n\\":\\"A3\\",\\"cutoff\\":875,\\"s\\":\\"square\\",\\"decay\\":0.1,\\"sustain\\":0,\\"resonance\\":16,\\"gain\\":0.2,\\"pan\\":0.959653570669591}",
-  "39/160 -> 2/5: {\\"n\\":\\"C#4\\",\\"cutoff\\":875,\\"s\\":\\"square\\",\\"decay\\":0.1,\\"sustain\\":0,\\"resonance\\":16,\\"gain\\":0.2,\\"pan\\":0.959653570669591}",
-  "39/160 -> 2/5: {\\"n\\":\\"D4\\",\\"cutoff\\":875,\\"s\\":\\"square\\",\\"decay\\":0.1,\\"sustain\\":0,\\"resonance\\":16,\\"gain\\":0.2,\\"pan\\":0.959653570669591}",
-  "39/160 -> 2/5: {\\"n\\":\\"F#4\\",\\"cutoff\\":875,\\"s\\":\\"square\\",\\"decay\\":0.1,\\"sustain\\":0,\\"resonance\\":16,\\"gain\\":0.2,\\"pan\\":0.959653570669591}",
-  "119/160 -> 9/10: {\\"n\\":\\"Bb3\\",\\"cutoff\\":1625,\\"s\\":\\"square\\",\\"decay\\":0.1,\\"sustain\\":0,\\"resonance\\":16,\\"gain\\":0.2,\\"pan\\":0.7562088040372065}",
-  "119/160 -> 9/10: {\\"n\\":\\"D4\\",\\"cutoff\\":1625,\\"s\\":\\"square\\",\\"decay\\":0.1,\\"sustain\\":0,\\"resonance\\":16,\\"gain\\":0.2,\\"pan\\":0.7562088040372065}",
-  "119/160 -> 9/10: {\\"n\\":\\"Eb4\\",\\"cutoff\\":1625,\\"s\\":\\"square\\",\\"decay\\":0.1,\\"sustain\\":0,\\"resonance\\":16,\\"gain\\":0.2,\\"pan\\":0.7562088040372065}",
-  "119/160 -> 9/10: {\\"n\\":\\"G4\\",\\"cutoff\\":1625,\\"s\\":\\"square\\",\\"decay\\":0.1,\\"sustain\\":0,\\"resonance\\":16,\\"gain\\":0.2,\\"pan\\":0.7562088040372065}",
-  "0/1 -> 1/16: {\\"n\\":\\"c2\\",\\"decay\\":0.1,\\"gain\\":0.5,\\"sustain\\":0.8,\\"cutoff\\":1416.8907004672358,\\"value\\":\\"x\\",\\"s\\":\\"sawtooth\\"}",
-  "3/16 -> 1/4: {\\"n\\":\\"c2\\",\\"decay\\":0.1,\\"gain\\":0.5,\\"sustain\\":0.8,\\"cutoff\\":1416.8907004672358,\\"value\\":\\"x\\",\\"s\\":\\"sawtooth\\"}",
-  "3/8 -> 7/16: {\\"n\\":\\"c2\\",\\"decay\\":0.1,\\"gain\\":0.5,\\"sustain\\":0.8,\\"cutoff\\":1416.8907004672358,\\"value\\":\\"x\\",\\"s\\":\\"sawtooth\\"}",
-  "1/2 -> 9/16: {\\"n\\":\\"eb2\\",\\"decay\\":0.1,\\"gain\\":0.5,\\"sustain\\":0.8,\\"cutoff\\":1717.61735139405,\\"value\\":\\"x\\",\\"s\\":\\"sawtooth\\"}",
-  "11/16 -> 3/4: {\\"n\\":\\"eb2\\",\\"decay\\":0.1,\\"gain\\":0.5,\\"sustain\\":0.8,\\"cutoff\\":1717.61735139405,\\"value\\":\\"x\\",\\"s\\":\\"sawtooth\\"}",
-  "7/8 -> 15/16: {\\"n\\":\\"eb2\\",\\"decay\\":0.1,\\"gain\\":0.5,\\"sustain\\":0.8,\\"cutoff\\":1717.61735139405,\\"value\\":\\"x\\",\\"s\\":\\"sawtooth\\"}",
-  "0/1 -> 1/6: {\\"s\\":\\"bd\\"}",
-  "1/2 -> 1/1: {\\"s\\":\\"sd\\"}",
-  "0/1 -> 11/32: {\\"s\\":\\"hh\\"}",
-  "1/2 -> 27/32: {\\"s\\":\\"hh\\"}",
-  "11/32 -> 1/2: {\\"s\\":\\"hh\\"}",
-  "27/32 -> 1/1: {\\"s\\":\\"hh\\"}",
-  "0/1 -> 1/4: {\\"n\\":\\"C5\\",\\"decay\\":0.05,\\"sustain\\":0,\\"gain\\":0.5,\\"pan\\":0.5782172325201155}",
-  "-3/16 -> 1/16: {\\"n\\":\\"D6\\",\\"decay\\":0.05,\\"sustain\\":0,\\"gain\\":0.5,\\"pan\\":0.5196299078795343}",
-  "13/16 -> 17/16: {\\"n\\":\\"D6\\",\\"decay\\":0.05,\\"sustain\\":0,\\"gain\\":0.5,\\"pan\\":0.9540715869125407}",
-  "-1/20 -> 1/5: {\\"n\\":\\"Bb5\\",\\"decay\\":0.05,\\"sustain\\":0,\\"gain\\":0.5,\\"pan\\":0.5626666167821521}",
-  "-19/80 -> 1/80: {\\"n\\":\\"A5\\",\\"decay\\":0.05,\\"sustain\\":0,\\"gain\\":0.5,\\"pan\\":0.5039269504443556}",
-  "1/80 -> 21/80: {\\"n\\":\\"D6\\",\\"decay\\":0.05,\\"sustain\\":0,\\"gain\\":0.5,\\"pan\\":0.5859645501397047}",
-  "1/5 -> 9/20: {\\"n\\":\\"C5\\",\\"decay\\":0.05,\\"sustain\\":0,\\"gain\\":0.5,\\"pan\\":0.6985739453173903}",
-  "1/80 -> 21/80: {\\"n\\":\\"D6\\",\\"decay\\":0.05,\\"sustain\\":0,\\"gain\\":0.5,\\"pan\\":0.5859645501397047}",
-  "3/20 -> 2/5: {\\"n\\":\\"Bb5\\",\\"decay\\":0.05,\\"sustain\\":0,\\"gain\\":0.5,\\"pan\\":0.6693689601226457}",
-  "-3/80 -> 17/80: {\\"n\\":\\"A5\\",\\"decay\\":0.05,\\"sustain\\":0,\\"gain\\":0.5,\\"pan\\":0.5665606692632762}",
-  "17/80 -> 37/80: {\\"n\\":\\"D6\\",\\"decay\\":0.05,\\"sustain\\":0,\\"gain\\":0.5,\\"pan\\":0.7057571793025544}",
-  "2/5 -> 13/20: {\\"n\\":\\"C5\\",\\"decay\\":0.05,\\"sustain\\":0,\\"gain\\":0.5,\\"pan\\":0.8064535268264882}",
-  "17/80 -> 37/80: {\\"n\\":\\"D6\\",\\"decay\\":0.05,\\"sustain\\":0,\\"gain\\":0.5,\\"pan\\":0.7057571793025544}",
-]
-`;
-
-exports[`renders shared tunes > shared tune 125 https://strudel.cc/?m7Uyh34tQwqi 1`] = `
-[
-  "11/32 -> 1/2: {\\"n\\":\\"Bb3\\",\\"cutoff\\":1625,\\"s\\":\\"square\\",\\"decay\\":0.1,\\"sustain\\":0,\\"resonance\\":16,\\"gain\\":0.2,\\"pan\\":0.931367192988896}",
-  "11/32 -> 1/2: {\\"n\\":\\"D4\\",\\"cutoff\\":1625,\\"s\\":\\"square\\",\\"decay\\":0.1,\\"sustain\\":0,\\"resonance\\":16,\\"gain\\":0.2,\\"pan\\":0.931367192988896}",
-  "11/32 -> 1/2: {\\"n\\":\\"Eb4\\",\\"cutoff\\":1625,\\"s\\":\\"square\\",\\"decay\\":0.1,\\"sustain\\":0,\\"resonance\\":16,\\"gain\\":0.2,\\"pan\\":0.931367192988896}",
-  "11/32 -> 1/2: {\\"n\\":\\"G4\\",\\"cutoff\\":1625,\\"s\\":\\"square\\",\\"decay\\":0.1,\\"sustain\\":0,\\"resonance\\":16,\\"gain\\":0.2,\\"pan\\":0.931367192988896}",
-  "27/32 -> 1/1: {\\"n\\":\\"Bb3\\",\\"cutoff\\":1625,\\"s\\":\\"square\\",\\"decay\\":0.1,\\"sustain\\":0,\\"resonance\\":16,\\"gain\\":0.2,\\"pan\\":0.7003744165515706}",
-  "27/32 -> 1/1: {\\"n\\":\\"D4\\",\\"cutoff\\":1625,\\"s\\":\\"square\\",\\"decay\\":0.1,\\"sustain\\":0,\\"resonance\\":16,\\"gain\\":0.2,\\"pan\\":0.7003744165515706}",
-  "27/32 -> 1/1: {\\"n\\":\\"Eb4\\",\\"cutoff\\":1625,\\"s\\":\\"square\\",\\"decay\\":0.1,\\"sustain\\":0,\\"resonance\\":16,\\"gain\\":0.2,\\"pan\\":0.7003744165515706}",
-  "27/32 -> 1/1: {\\"n\\":\\"G4\\",\\"cutoff\\":1625,\\"s\\":\\"square\\",\\"decay\\":0.1,\\"sustain\\":0,\\"resonance\\":16,\\"gain\\":0.2,\\"pan\\":0.7003744165515706}",
-  "7/160 -> 1/5: {\\"n\\":\\"A3\\",\\"cutoff\\":875,\\"s\\":\\"square\\",\\"decay\\":0.1,\\"sustain\\":0,\\"resonance\\":16,\\"gain\\":0.2,\\"pan\\":0.9941475200179347}",
-  "7/160 -> 1/5: {\\"n\\":\\"C#4\\",\\"cutoff\\":875,\\"s\\":\\"square\\",\\"decay\\":0.1,\\"sustain\\":0,\\"resonance\\":16,\\"gain\\":0.2,\\"pan\\":0.9941475200179347}",
-  "7/160 -> 1/5: {\\"n\\":\\"D4\\",\\"cutoff\\":875,\\"s\\":\\"square\\",\\"decay\\":0.1,\\"sustain\\":0,\\"resonance\\":16,\\"gain\\":0.2,\\"pan\\":0.9941475200179347}",
-  "7/160 -> 1/5: {\\"n\\":\\"F#4\\",\\"cutoff\\":875,\\"s\\":\\"square\\",\\"decay\\":0.1,\\"sustain\\":0,\\"resonance\\":16,\\"gain\\":0.2,\\"pan\\":0.9941475200179347}",
-  "87/160 -> 7/10: {\\"n\\":\\"Bb3\\",\\"cutoff\\":1625,\\"s\\":\\"square\\",\\"decay\\":0.1,\\"sustain\\":0,\\"resonance\\":16,\\"gain\\":0.2,\\"pan\\":0.8549390618276451}",
-  "87/160 -> 7/10: {\\"n\\":\\"D4\\",\\"cutoff\\":1625,\\"s\\":\\"square\\",\\"decay\\":0.1,\\"sustain\\":0,\\"resonance\\":16,\\"gain\\":0.2,\\"pan\\":0.8549390618276451}",
-  "87/160 -> 7/10: {\\"n\\":\\"Eb4\\",\\"cutoff\\":1625,\\"s\\":\\"square\\",\\"decay\\":0.1,\\"sustain\\":0,\\"resonance\\":16,\\"gain\\":0.2,\\"pan\\":0.8549390618276451}",
-  "87/160 -> 7/10: {\\"n\\":\\"G4\\",\\"cutoff\\":1625,\\"s\\":\\"square\\",\\"decay\\":0.1,\\"sustain\\":0,\\"resonance\\":16,\\"gain\\":0.2,\\"pan\\":0.8549390618276451}",
-  "39/160 -> 2/5: {\\"n\\":\\"A3\\",\\"cutoff\\":875,\\"s\\":\\"square\\",\\"decay\\":0.1,\\"sustain\\":0,\\"resonance\\":16,\\"gain\\":0.2,\\"pan\\":0.959653570669591}",
-  "39/160 -> 2/5: {\\"n\\":\\"C#4\\",\\"cutoff\\":875,\\"s\\":\\"square\\",\\"decay\\":0.1,\\"sustain\\":0,\\"resonance\\":16,\\"gain\\":0.2,\\"pan\\":0.959653570669591}",
-  "39/160 -> 2/5: {\\"n\\":\\"D4\\",\\"cutoff\\":875,\\"s\\":\\"square\\",\\"decay\\":0.1,\\"sustain\\":0,\\"resonance\\":16,\\"gain\\":0.2,\\"pan\\":0.959653570669591}",
-  "39/160 -> 2/5: {\\"n\\":\\"F#4\\",\\"cutoff\\":875,\\"s\\":\\"square\\",\\"decay\\":0.1,\\"sustain\\":0,\\"resonance\\":16,\\"gain\\":0.2,\\"pan\\":0.959653570669591}",
-  "119/160 -> 9/10: {\\"n\\":\\"Bb3\\",\\"cutoff\\":1625,\\"s\\":\\"square\\",\\"decay\\":0.1,\\"sustain\\":0,\\"resonance\\":16,\\"gain\\":0.2,\\"pan\\":0.7562088040372065}",
-  "119/160 -> 9/10: {\\"n\\":\\"D4\\",\\"cutoff\\":1625,\\"s\\":\\"square\\",\\"decay\\":0.1,\\"sustain\\":0,\\"resonance\\":16,\\"gain\\":0.2,\\"pan\\":0.7562088040372065}",
-  "119/160 -> 9/10: {\\"n\\":\\"Eb4\\",\\"cutoff\\":1625,\\"s\\":\\"square\\",\\"decay\\":0.1,\\"sustain\\":0,\\"resonance\\":16,\\"gain\\":0.2,\\"pan\\":0.7562088040372065}",
-  "119/160 -> 9/10: {\\"n\\":\\"G4\\",\\"cutoff\\":1625,\\"s\\":\\"square\\",\\"decay\\":0.1,\\"sustain\\":0,\\"resonance\\":16,\\"gain\\":0.2,\\"pan\\":0.7562088040372065}",
-  "0/1 -> 1/16: {\\"n\\":\\"c2\\",\\"decay\\":0.1,\\"gain\\":0.5,\\"sustain\\":0.8,\\"cutoff\\":1416.8907004672358,\\"value\\":\\"x\\",\\"s\\":\\"sawtooth\\"}",
-  "3/16 -> 1/4: {\\"n\\":\\"c2\\",\\"decay\\":0.1,\\"gain\\":0.5,\\"sustain\\":0.8,\\"cutoff\\":1416.8907004672358,\\"value\\":\\"x\\",\\"s\\":\\"sawtooth\\"}",
-  "3/8 -> 7/16: {\\"n\\":\\"c2\\",\\"decay\\":0.1,\\"gain\\":0.5,\\"sustain\\":0.8,\\"cutoff\\":1416.8907004672358,\\"value\\":\\"x\\",\\"s\\":\\"sawtooth\\"}",
-  "1/2 -> 9/16: {\\"n\\":\\"eb2\\",\\"decay\\":0.1,\\"gain\\":0.5,\\"sustain\\":0.8,\\"cutoff\\":1717.61735139405,\\"value\\":\\"x\\",\\"s\\":\\"sawtooth\\"}",
-  "11/16 -> 3/4: {\\"n\\":\\"eb2\\",\\"decay\\":0.1,\\"gain\\":0.5,\\"sustain\\":0.8,\\"cutoff\\":1717.61735139405,\\"value\\":\\"x\\",\\"s\\":\\"sawtooth\\"}",
-  "7/8 -> 15/16: {\\"n\\":\\"eb2\\",\\"decay\\":0.1,\\"gain\\":0.5,\\"sustain\\":0.8,\\"cutoff\\":1717.61735139405,\\"value\\":\\"x\\",\\"s\\":\\"sawtooth\\"}",
-  "0/1 -> 1/6: {\\"s\\":\\"bd\\"}",
-  "1/2 -> 1/1: {\\"s\\":\\"sd\\"}",
-  "0/1 -> 11/32: {\\"s\\":\\"hh\\"}",
-  "1/2 -> 27/32: {\\"s\\":\\"hh\\"}",
-  "11/32 -> 1/2: {\\"s\\":\\"hh\\"}",
-  "27/32 -> 1/1: {\\"s\\":\\"hh\\"}",
-  "0/1 -> 1/4: {\\"n\\":\\"C5\\",\\"decay\\":0.05,\\"sustain\\":0,\\"gain\\":0.5,\\"pan\\":0.5782172325201155}",
-  "-3/16 -> 1/16: {\\"n\\":\\"D6\\",\\"decay\\":0.05,\\"sustain\\":0,\\"gain\\":0.5,\\"pan\\":0.5196299078795343}",
-  "13/16 -> 17/16: {\\"n\\":\\"D6\\",\\"decay\\":0.05,\\"sustain\\":0,\\"gain\\":0.5,\\"pan\\":0.9540715869125407}",
-  "-1/20 -> 1/5: {\\"n\\":\\"Bb5\\",\\"decay\\":0.05,\\"sustain\\":0,\\"gain\\":0.5,\\"pan\\":0.5626666167821521}",
-  "-19/80 -> 1/80: {\\"n\\":\\"A5\\",\\"decay\\":0.05,\\"sustain\\":0,\\"gain\\":0.5,\\"pan\\":0.5039269504443556}",
-  "1/80 -> 21/80: {\\"n\\":\\"D6\\",\\"decay\\":0.05,\\"sustain\\":0,\\"gain\\":0.5,\\"pan\\":0.5859645501397047}",
-  "1/5 -> 9/20: {\\"n\\":\\"C5\\",\\"decay\\":0.05,\\"sustain\\":0,\\"gain\\":0.5,\\"pan\\":0.6985739453173903}",
-  "1/80 -> 21/80: {\\"n\\":\\"D6\\",\\"decay\\":0.05,\\"sustain\\":0,\\"gain\\":0.5,\\"pan\\":0.5859645501397047}",
-  "3/20 -> 2/5: {\\"n\\":\\"Bb5\\",\\"decay\\":0.05,\\"sustain\\":0,\\"gain\\":0.5,\\"pan\\":0.6693689601226457}",
-  "-3/80 -> 17/80: {\\"n\\":\\"A5\\",\\"decay\\":0.05,\\"sustain\\":0,\\"gain\\":0.5,\\"pan\\":0.5665606692632762}",
-  "17/80 -> 37/80: {\\"n\\":\\"D6\\",\\"decay\\":0.05,\\"sustain\\":0,\\"gain\\":0.5,\\"pan\\":0.7057571793025544}",
-  "2/5 -> 13/20: {\\"n\\":\\"C5\\",\\"decay\\":0.05,\\"sustain\\":0,\\"gain\\":0.5,\\"pan\\":0.8064535268264882}",
-  "17/80 -> 37/80: {\\"n\\":\\"D6\\",\\"decay\\":0.05,\\"sustain\\":0,\\"gain\\":0.5,\\"pan\\":0.7057571793025544}",
-]
-`;
-
-exports[`renders shared tunes > shared tune 126 https://strudel.cc/?P9d8_AXWM7ef 1`] = `
-[
-  "0/1 -> 3/4: c3",
-  "3/4 -> 1/1: eb3",
-  "3/4 -> 1/1: g3",
-  "3/4 -> 1/1: c4",
-  "0/1 -> 1/2: c2",
-  "1/2 -> 1/1: g2",
-  "0/1 -> 5/4: eb4",
-]
-`;
-
-exports[`renders shared tunes > shared tune 127 https://strudel.cc/?FM1koCTLh1IM 1`] = `
-[
-  "0/1 -> 1/10: C3",
-  "0/1 -> 1/10: E3",
-  "0/1 -> 1/10: G3",
-  "1/4 -> 7/20: B3",
-  "1/4 -> 7/20: E4",
-  "1/4 -> 7/20: E3",
-  "1/2 -> 3/5: C3",
-  "1/2 -> 3/5: A2",
-  "1/2 -> 3/5: C3",
-  "3/4 -> 17/20: E3",
-  "3/4 -> 17/20: G3",
-  "3/4 -> 17/20: B3",
-  "0/1 -> 1/5: C2",
-  "1/2 -> 7/10: E2",
-]
-`;
-
-exports[`renders shared tunes > shared tune 128 https://strudel.cc/?1SAqiKiVI8r- 1`] = `
-[
-  "0/1 -> 3/20: 0",
-  "0/1 -> 3/20: 3",
-  "3/4 -> 9/10: 1",
-  "3/4 -> 9/10: 4",
-  "0/1 -> 3/10: -8",
-  "3/8 -> 27/40: -8",
-  "3/4 -> 21/20: -7",
-  "0/1 -> 3/200: 12",
-  "3/4 -> 153/200: 11",
-  "0/1 -> 3/20: c2",
-  "747/1000 -> 1497/1000: c1",
-  "0/1 -> 3/8: c2",
-  "3/8 -> 3/4: c2",
-  "3/4 -> 9/8: c2",
-]
-`;
-
-exports[`renders shared tunes > shared tune 129 https://strudel.cc/?Pds79yD4qQKJ 1`] = `
-[
-  "0/1 -> 1/5: e4",
-  "2/5 -> 3/5: e3",
-  "3/5 -> 4/5: d4",
-]
-`;
-
-exports[`renders shared tunes > shared tune 130 https://strudel.cc/?DYJx5C-3NrV7 1`] = `
-[
-  "0/1 -> 5/26: {\\"note\\":\\"B2\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.46759259259259256}",
-  "5/13 -> 15/26: {\\"note\\":\\"B2\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.46759259259259256}",
-  "10/13 -> 155/156: {\\"note\\":\\"B2\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.46759259259259256}",
-  "155/156 -> 15/13: {\\"note\\":\\"A2\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.45833333333333337}",
-  "0/1 -> 15/26: {\\"note\\":\\"B3\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5231481481481481}",
-  "5/52 -> 35/52: {\\"note\\":\\"C#4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5324074074074074}",
-  "5/26 -> 10/13: {\\"note\\":\\"D#4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5416666666666667}",
-  "15/52 -> 45/52: {\\"note\\":\\"F4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5509259259259259}",
-  "5/13 -> 25/26: {\\"note\\":\\"G4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5601851851851851}",
-  "25/52 -> 55/52: {\\"note\\":\\"A4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5694444444444444}",
-  "15/26 -> 15/13: {\\"note\\":\\"B4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5787037037037037}",
-  "35/52 -> 5/4: {\\"note\\":\\"C#5\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.587962962962963}",
-  "5/13 -> 25/26: {\\"note\\":\\"B3\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5231481481481481}",
-  "25/52 -> 55/52: {\\"note\\":\\"C#4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5324074074074074}",
-  "15/26 -> 15/13: {\\"note\\":\\"D#4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5416666666666667}",
-  "35/52 -> 5/4: {\\"note\\":\\"F4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5509259259259259}",
-  "10/13 -> 35/26: {\\"note\\":\\"G4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5601851851851851}",
-  "45/52 -> 75/52: {\\"note\\":\\"A4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5694444444444444}",
-  "25/26 -> 20/13: {\\"note\\":\\"B4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5787037037037037}",
-  "10/13 -> 35/26: {\\"note\\":\\"B3\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5231481481481481}",
-  "45/52 -> 75/52: {\\"note\\":\\"C#4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5324074074074074}",
-  "25/26 -> 20/13: {\\"note\\":\\"D#4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5416666666666667}",
-  "0/1 -> 80/13: {\\"s\\":\\"mad\\"}",
-]
-`;
-
-exports[`renders shared tunes > shared tune 131 https://strudel.cc/?9_BPqHIO4rPv 1`] = `
-[
-  "0/1 -> 27/40: {\\"note\\":\\"Db4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5324074074074074}",
-  "0/1 -> 27/40: {\\"note\\":\\"Ab4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5648148148148149}",
-  "0/1 -> 27/40: {\\"note\\":\\"Db4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5324074074074074}",
-  "0/1 -> 27/40: {\\"note\\":\\"Ab4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5648148148148149}",
-  "0/1 -> 27/40: {\\"note\\":\\"Db4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5324074074074074}",
-  "0/1 -> 27/40: {\\"note\\":\\"Ab4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5648148148148149}",
-  "0/1 -> 27/40: {\\"note\\":\\"D4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.537037037037037}",
-  "0/1 -> 27/40: {\\"note\\":\\"A4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5694444444444444}",
-  "0/1 -> 27/40: {\\"note\\":\\"D4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.537037037037037}",
-  "0/1 -> 27/40: {\\"note\\":\\"A4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5694444444444444}",
-  "0/1 -> 27/40: {\\"note\\":\\"D4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.537037037037037}",
-  "0/1 -> 27/40: {\\"note\\":\\"A4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5694444444444444}",
-  "0/1 -> 27/40: {\\"note\\":\\"D4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.537037037037037}",
-  "0/1 -> 27/40: {\\"note\\":\\"A4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5694444444444444}",
-  "0/1 -> 27/40: {\\"note\\":\\"D4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.537037037037037}",
-  "0/1 -> 27/40: {\\"note\\":\\"A4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5694444444444444}",
-  "0/1 -> 27/40: {\\"note\\":\\"D4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.537037037037037}",
-  "0/1 -> 27/40: {\\"note\\":\\"A4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5694444444444444}",
-  "0/1 -> 27/40: {\\"note\\":\\"Eb4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5416666666666667}",
-  "0/1 -> 27/40: {\\"note\\":\\"Bb4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5740740740740741}",
-  "0/1 -> 27/40: {\\"note\\":\\"Eb4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5416666666666667}",
-  "0/1 -> 27/40: {\\"note\\":\\"Bb4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5740740740740741}",
-  "0/1 -> 27/40: {\\"note\\":\\"Eb4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5416666666666667}",
-  "0/1 -> 27/40: {\\"note\\":\\"Bb4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5740740740740741}",
-  "0/1 -> 27/40: {\\"note\\":\\"Eb4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5416666666666667}",
-  "0/1 -> 27/40: {\\"note\\":\\"Bb4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5740740740740741}",
-  "0/1 -> 27/40: {\\"note\\":\\"Eb4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5416666666666667}",
-  "0/1 -> 27/40: {\\"note\\":\\"Bb4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5740740740740741}",
-  "0/1 -> 27/40: {\\"note\\":\\"Eb4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5416666666666667}",
-  "0/1 -> 27/40: {\\"note\\":\\"Bb4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5740740740740741}",
-  "0/1 -> 171/160: {\\"note\\":\\"Bb2\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.46296296296296297}",
-  "3/4 -> 33/40: {\\"note\\":\\"Eb4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5416666666666667}",
-  "3/4 -> 33/40: {\\"note\\":\\"Bb4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5740740740740741}",
-  "3/4 -> 33/40: {\\"note\\":\\"Eb4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5416666666666667}",
-  "3/4 -> 33/40: {\\"note\\":\\"Bb4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5740740740740741}",
-  "0/1 -> 171/160: {\\"note\\":\\"Bb2\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.46296296296296297}",
-]
-`;
-
-exports[`renders shared tunes > shared tune 132 https://strudel.cc/?FwkQ0EG3Kkwm 1`] = `
-[
-  "0/1 -> 1/2: Bb2",
-  "0/1 -> 1/2: F3",
-  "0/1 -> 1/2: Bb3",
-  "1/2 -> 1/1: Bb2",
-  "1/2 -> 1/1: Bb2",
-  "1/2 -> 1/1: F3",
-  "1/2 -> 1/1: F3",
-  "1/2 -> 1/1: Bb3",
-  "1/2 -> 1/1: Bb3",
-  "0/1 -> 1/2: Bb1",
-  "1/2 -> 5/8: Bb1",
-  "3/4 -> 7/8: Bb1",
-  "0/1 -> 1/2: c1",
-  "1/2 -> 1/1: c1",
-  "1/2 -> 1/1: c3",
-  "0/1 -> 1/4: C1",
-  "1/4 -> 1/2: C3",
-  "1/2 -> 3/4: C1",
-  "3/4 -> 1/1: C3",
-]
-`;
-
-exports[`renders shared tunes > shared tune 133 https://strudel.cc/?Cb_YrHpHKkJN 1`] = `
-[
-  "0/1 -> 1/8: {\\"note\\":\\"A2\\",\\"s\\":\\"flbass\\",\\"n\\":0,\\"gain\\":0.3,\\"cutoff\\":2206.5338497506646,\\"resonance\\":10,\\"clip\\":1}",
-  "3/8 -> 1/2: {\\"note\\":\\"A2\\",\\"s\\":\\"flbass\\",\\"n\\":0,\\"gain\\":0.3,\\"cutoff\\":2827.098521493671,\\"resonance\\":10,\\"clip\\":1}",
-  "3/4 -> 7/8: {\\"note\\":\\"A2\\",\\"s\\":\\"flbass\\",\\"n\\":0,\\"gain\\":0.3,\\"cutoff\\":3366.0584981088073,\\"resonance\\":10,\\"clip\\":1}",
-  "0/1 -> 1/4: {\\"note\\":\\"A3\\",\\"s\\":\\"flbass\\",\\"n\\":0,\\"gain\\":0.3,\\"cutoff\\":2312.732504596285,\\"resonance\\":10,\\"clip\\":1}",
-  "3/4 -> 1/1: {\\"note\\":\\"A3\\",\\"s\\":\\"flbass\\",\\"n\\":0,\\"gain\\":0.3,\\"cutoff\\":3443.5028842544402,\\"resonance\\":10,\\"clip\\":1}",
-  "-7/4 -> 1/4: {\\"note\\":\\"C4\\",\\"s\\":\\"flbass\\",\\"n\\":0,\\"gain\\":0.3,\\"cutoff\\":2312.732504596285,\\"resonance\\":10,\\"clip\\":1}",
-  "-7/4 -> 1/4: {\\"note\\":\\"E4\\",\\"s\\":\\"flbass\\",\\"n\\":0,\\"gain\\":0.3,\\"cutoff\\":2312.732504596285,\\"resonance\\":10,\\"clip\\":1}",
-  "1/4 -> 1/2: {\\"note\\":\\"C4\\",\\"s\\":\\"flbass\\",\\"n\\":0,\\"gain\\":0.3,\\"cutoff\\":2727.5302177148174,\\"resonance\\":10,\\"clip\\":1}",
-  "1/4 -> 1/2: {\\"note\\":\\"E4\\",\\"s\\":\\"flbass\\",\\"n\\":0,\\"gain\\":0.3,\\"cutoff\\":2727.5302177148174,\\"resonance\\":10,\\"clip\\":1}",
-  "-3/2 -> 1/2: {\\"note\\":\\"A4\\",\\"s\\":\\"flbass\\",\\"n\\":0,\\"gain\\":0.3,\\"cutoff\\":2522.789774516997,\\"resonance\\":10,\\"clip\\":1}",
-  "-3/2 -> 1/2: {\\"note\\":\\"C5\\",\\"s\\":\\"flbass\\",\\"n\\":0,\\"gain\\":0.3,\\"cutoff\\":2522.789774516997,\\"resonance\\":10,\\"clip\\":1}",
-  "-3/2 -> 1/2: {\\"note\\":\\"A4\\",\\"s\\":\\"flbass\\",\\"n\\":0,\\"gain\\":0.3,\\"cutoff\\":2522.789774516997,\\"resonance\\":10,\\"clip\\":1}",
-  "-3/2 -> 1/2: {\\"note\\":\\"C5\\",\\"s\\":\\"flbass\\",\\"n\\":0,\\"gain\\":0.3,\\"cutoff\\":2522.789774516997,\\"resonance\\":10,\\"clip\\":1}",
-  "1/2 -> 3/4: {\\"note\\":\\"A4\\",\\"s\\":\\"flbass\\",\\"n\\":0,\\"gain\\":0.3,\\"cutoff\\":3110.8609453791396,\\"resonance\\":10,\\"clip\\":1}",
-  "1/2 -> 3/4: {\\"note\\":\\"C5\\",\\"s\\":\\"flbass\\",\\"n\\":0,\\"gain\\":0.3,\\"cutoff\\":3110.8609453791396,\\"resonance\\":10,\\"clip\\":1}",
-  "-5/4 -> 3/4: {\\"note\\":\\"A4\\",\\"s\\":\\"flbass\\",\\"n\\":0,\\"gain\\":0.3,\\"cutoff\\":2727.5302177148174,\\"resonance\\":10,\\"clip\\":1}",
-  "-5/4 -> 3/4: {\\"note\\":\\"C5\\",\\"s\\":\\"flbass\\",\\"n\\":0,\\"gain\\":0.3,\\"cutoff\\":2727.5302177148174,\\"resonance\\":10,\\"clip\\":1}",
-  "-5/4 -> 3/4: {\\"note\\":\\"A4\\",\\"s\\":\\"flbass\\",\\"n\\":0,\\"gain\\":0.3,\\"cutoff\\":2727.5302177148174,\\"resonance\\":10,\\"clip\\":1}",
-  "-5/4 -> 3/4: {\\"note\\":\\"C5\\",\\"s\\":\\"flbass\\",\\"n\\":0,\\"gain\\":0.3,\\"cutoff\\":2727.5302177148174,\\"resonance\\":10,\\"clip\\":1}",
-  "-5/4 -> 3/4: {\\"note\\":\\"A4\\",\\"s\\":\\"flbass\\",\\"n\\":0,\\"gain\\":0.3,\\"cutoff\\":2727.5302177148174,\\"resonance\\":10,\\"clip\\":1}",
-  "-5/4 -> 3/4: {\\"note\\":\\"C5\\",\\"s\\":\\"flbass\\",\\"n\\":0,\\"gain\\":0.3,\\"cutoff\\":2727.5302177148174,\\"resonance\\":10,\\"clip\\":1}",
-  "3/4 -> 1/1: {\\"note\\":\\"A4\\",\\"s\\":\\"flbass\\",\\"n\\":0,\\"gain\\":0.3,\\"cutoff\\":3443.5028842544402,\\"resonance\\":10,\\"clip\\":1}",
-  "3/4 -> 1/1: {\\"note\\":\\"C5\\",\\"s\\":\\"flbass\\",\\"n\\":0,\\"gain\\":0.3,\\"cutoff\\":3443.5028842544402,\\"resonance\\":10,\\"clip\\":1}",
-  "-1/1 -> 1/1: {\\"note\\":\\"A4\\",\\"s\\":\\"flbass\\",\\"n\\":0,\\"gain\\":0.3,\\"cutoff\\":2924.3791043233605,\\"resonance\\":10,\\"clip\\":1}",
-  "-1/1 -> 1/1: {\\"note\\":\\"C5\\",\\"s\\":\\"flbass\\",\\"n\\":0,\\"gain\\":0.3,\\"cutoff\\":2924.3791043233605,\\"resonance\\":10,\\"clip\\":1}",
-  "-1/1 -> 1/1: {\\"note\\":\\"A4\\",\\"s\\":\\"flbass\\",\\"n\\":0,\\"gain\\":0.3,\\"cutoff\\":2924.3791043233605,\\"resonance\\":10,\\"clip\\":1}",
-  "-1/1 -> 1/1: {\\"note\\":\\"C5\\",\\"s\\":\\"flbass\\",\\"n\\":0,\\"gain\\":0.3,\\"cutoff\\":2924.3791043233605,\\"resonance\\":10,\\"clip\\":1}",
-  "-1/1 -> 1/1: {\\"note\\":\\"A4\\",\\"s\\":\\"flbass\\",\\"n\\":0,\\"gain\\":0.3,\\"cutoff\\":2924.3791043233605,\\"resonance\\":10,\\"clip\\":1}",
-  "-1/1 -> 1/1: {\\"note\\":\\"C5\\",\\"s\\":\\"flbass\\",\\"n\\":0,\\"gain\\":0.3,\\"cutoff\\":2924.3791043233605,\\"resonance\\":10,\\"clip\\":1}",
-  "-3/4 -> 5/4: {\\"note\\":\\"A4\\",\\"s\\":\\"flbass\\",\\"n\\":0,\\"gain\\":0.3,\\"cutoff\\":2924.3791043233605,\\"resonance\\":10,\\"clip\\":1}",
-  "-3/4 -> 5/4: {\\"note\\":\\"C5\\",\\"s\\":\\"flbass\\",\\"n\\":0,\\"gain\\":0.3,\\"cutoff\\":2924.3791043233605,\\"resonance\\":10,\\"clip\\":1}",
-  "-3/4 -> 5/4: {\\"note\\":\\"A4\\",\\"s\\":\\"flbass\\",\\"n\\":0,\\"gain\\":0.3,\\"cutoff\\":2924.3791043233605,\\"resonance\\":10,\\"clip\\":1}",
-  "-3/4 -> 5/4: {\\"note\\":\\"C5\\",\\"s\\":\\"flbass\\",\\"n\\":0,\\"gain\\":0.3,\\"cutoff\\":2924.3791043233605,\\"resonance\\":10,\\"clip\\":1}",
-  "0/1 -> 1/2: {\\"s\\":\\"bd:1\\"}",
-  "1/2 -> 1/1: {\\"s\\":\\"bd:1\\"}",
-  "1/2 -> 1/1: {\\"s\\":\\"sd:0\\"}",
-  "1/4 -> 1/2: {\\"s\\":\\"hh:0\\"}",
-  "3/4 -> 1/1: {\\"s\\":\\"hh:0\\"}",
-]
-`;
-
-exports[`renders shared tunes > shared tune 134 https://strudel.cc/?SkqbkK705Olu 1`] = `
-[
-  "7/8 -> 1/1: {\\"s\\":\\"hi\\"}",
-  "5/8 -> 3/4: {\\"s\\":\\"lo\\"}",
-  "3/8 -> 1/2: {\\"s\\":\\"hi\\"}",
-  "3/16 -> 1/4: {\\"s\\":\\"hi\\"}",
-  "0/1 -> 1/8: {\\"s\\":\\"hi\\"}",
-]
-`;
-
-exports[`renders shared tunes > shared tune 135 https://strudel.cc/?-hyad472v8by 1`] = `
-[
-  "0/1 -> 3/8: {\\"gain\\":1,\\"s\\":\\"lo\\",\\"speed\\":2}",
-  "3/8 -> 3/4: {\\"gain\\":0.5,\\"s\\":\\"lo\\",\\"speed\\":2}",
-  "3/4 -> 15/16: {\\"gain\\":1,\\"s\\":\\"lo\\",\\"speed\\":2}",
-  "15/16 -> 9/8: {\\"gain\\":1,\\"s\\":\\"lo\\",\\"speed\\":2}",
-]
-`;
-
-exports[`renders shared tunes > shared tune 136 https://strudel.cc/?BApYR1gphKJ7 1`] = `
-[
-  "0/1 -> 3/8: {\\"gain\\":1,\\"s\\":\\"lo\\",\\"speed\\":2,\\"release\\":0.2,\\"clip\\":1}",
-  "3/8 -> 3/4: {\\"gain\\":0.5,\\"s\\":\\"lo\\",\\"speed\\":2,\\"release\\":0.2,\\"clip\\":1}",
-  "3/4 -> 15/16: {\\"gain\\":1,\\"s\\":\\"lo\\",\\"speed\\":2,\\"release\\":0.2,\\"clip\\":1}",
-  "15/16 -> 9/8: {\\"gain\\":1,\\"s\\":\\"lo\\",\\"speed\\":2,\\"release\\":0.2,\\"clip\\":1}",
-]
-`;
-
-exports[`renders shared tunes > shared tune 137 https://strudel.cc/?wK1UQcYoYpoD 1`] = `
-[
-  "0/1 -> 3/16: {\\"gain\\":1,\\"s\\":\\"lo\\",\\"speed\\":1,\\"hcutoff\\":1000,\\"resonance\\":0.2}",
-  "3/16 -> 3/8: {\\"gain\\":0.5,\\"s\\":\\"lo\\",\\"speed\\":1,\\"hcutoff\\":1000,\\"resonance\\":0.2}",
-  "3/8 -> 15/32: {\\"gain\\":1,\\"s\\":\\"lo\\",\\"speed\\":1,\\"hcutoff\\":1000,\\"resonance\\":0.2}",
-  "15/32 -> 9/16: {\\"gain\\":1,\\"s\\":\\"lo\\",\\"speed\\":1,\\"hcutoff\\":1000,\\"resonance\\":0.2}",
-  "15/32 -> 9/16: {\\"gain\\":1,\\"s\\":\\"lo\\",\\"speed\\":1.2,\\"hcutoff\\":1000,\\"resonance\\":0.2}",
-  "9/16 -> 3/4: {\\"gain\\":0.2,\\"s\\":\\"lo\\",\\"speed\\":1.2,\\"hcutoff\\":1000,\\"resonance\\":0.2}",
-  "0/1 -> 3/16: {\\"gain\\":1,\\"s\\":\\"lo\\",\\"speed\\":1,\\"n\\":2,\\"hcutoff\\":1000,\\"resonance\\":0.2}",
-  "3/16 -> 3/8: {\\"gain\\":0.2,\\"s\\":\\"lo\\",\\"speed\\":1,\\"n\\":2,\\"hcutoff\\":1000,\\"resonance\\":0.2}",
-  "3/8 -> 9/16: {\\"gain\\":1,\\"s\\":\\"lo\\",\\"speed\\":1,\\"n\\":2,\\"hcutoff\\":1000,\\"resonance\\":0.2}",
-  "9/16 -> 3/4: {\\"gain\\":0.5,\\"s\\":\\"lo\\",\\"speed\\":1,\\"n\\":2,\\"hcutoff\\":1000,\\"resonance\\":0.2}",
-  "3/4 -> 15/16: {\\"gain\\":1,\\"s\\":\\"lo\\",\\"speed\\":1}",
-  "15/16 -> 9/8: {\\"gain\\":1,\\"s\\":\\"lo\\",\\"speed\\":1}",
-  "3/4 -> 9/8: {\\"gain\\":1,\\"s\\":\\"lo\\",\\"speed\\":1,\\"n\\":2}",
-]
-`;
-
-exports[`renders shared tunes > shared tune 138 https://strudel.cc/?lB2HuXEXyTex 1`] = `
-[
-  "0/1 -> 6275565/1452119: A3",
-  "-9/8 -> 20400609/11616952: G4",
-  "3/8 -> 54560877/11616952: D4",
-  "-3/4 -> 12378483/5808476: F5",
-  "3/4 -> 29458617/5808476: G4",
-  "0/1 -> 3/2: D2",
-]
-`;
-
-exports[`renders shared tunes > shared tune 139 https://strudel.cc/?WUxQVJIu27Nz 1`] = `
-[
-  "0/1 -> 1/1: {\\"gain\\":1,\\"s\\":\\"lo\\",\\"cps\\":1.1}",
-]
-`;
-
-exports[`renders shared tunes > shared tune 140 https://strudel.cc/?ZQ-ce-Qj-nuP 1`] = `
-[
-  "0/1 -> 1/2: {\\"note\\":\\"F3\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.49537037037037035}",
-  "1/4 -> 3/4: {\\"note\\":\\"F2\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.4398148148148148}",
-  "1/2 -> 1/1: {\\"note\\":\\"F3\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.49537037037037035}",
-  "1/2 -> 1/1: {\\"note\\":\\"Ab3\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5092592592592593}",
-  "1/2 -> 1/1: {\\"note\\":\\"C4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5277777777777778}",
-  "1/2 -> 1/1: {\\"note\\":\\"F2\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.4398148148148148}",
-]
-`;
-
-exports[`renders shared tunes > shared tune 141 https://strudel.cc/?tBPkuxuje0iY 1`] = `
-[
-  "0/1 -> 1/3: bd",
-  "1/3 -> 2/3: hh",
-  "2/3 -> 1/1: sn",
-  "0/1 -> 1/20: G4",
-  "1/6 -> 13/60: G4",
-  "1/3 -> 23/60: B3",
-  "1/2 -> 11/20: B3",
-  "1/3 -> 23/60: E4",
-  "1/2 -> 11/20: E4",
-  "2/3 -> 43/60: G3",
-  "5/6 -> 53/60: G3",
-  "0/1 -> 4/3: c2",
-  "0/1 -> 4/3: c2",
-]
-`;
-
-exports[`renders shared tunes > shared tune 142 https://strudel.cc/?ak6ZpErh0hl1 1`] = `
-[
-  "0/1 -> 1/8: {\\"note\\":\\"A2\\",\\"s\\":\\"flbass\\",\\"n\\":0,\\"gain\\":0.3,\\"cutoff\\":2206.5338497506646,\\"resonance\\":10,\\"clip\\":1}",
-  "3/8 -> 1/2: {\\"note\\":\\"A2\\",\\"s\\":\\"flbass\\",\\"n\\":0,\\"gain\\":0.3,\\"cutoff\\":2827.098521493671,\\"resonance\\":10,\\"clip\\":1}",
-  "3/4 -> 7/8: {\\"note\\":\\"A2\\",\\"s\\":\\"flbass\\",\\"n\\":0,\\"gain\\":0.3,\\"cutoff\\":3366.0584981088073,\\"resonance\\":10,\\"clip\\":1}",
-  "0/1 -> 1/4: {\\"note\\":\\"A3\\",\\"s\\":\\"flbass\\",\\"n\\":0,\\"gain\\":0.3,\\"cutoff\\":2312.732504596285,\\"resonance\\":10,\\"clip\\":1}",
-  "3/4 -> 1/1: {\\"note\\":\\"A3\\",\\"s\\":\\"flbass\\",\\"n\\":0,\\"gain\\":0.3,\\"cutoff\\":3443.5028842544402,\\"resonance\\":10,\\"clip\\":1}",
-  "-7/4 -> 1/4: {\\"note\\":\\"C4\\",\\"s\\":\\"flbass\\",\\"n\\":0,\\"gain\\":0.3,\\"cutoff\\":2312.732504596285,\\"resonance\\":10,\\"clip\\":1}",
-  "-7/4 -> 1/4: {\\"note\\":\\"E4\\",\\"s\\":\\"flbass\\",\\"n\\":0,\\"gain\\":0.3,\\"cutoff\\":2312.732504596285,\\"resonance\\":10,\\"clip\\":1}",
-  "1/4 -> 1/2: {\\"note\\":\\"C4\\",\\"s\\":\\"flbass\\",\\"n\\":0,\\"gain\\":0.3,\\"cutoff\\":2727.5302177148174,\\"resonance\\":10,\\"clip\\":1}",
-  "1/4 -> 1/2: {\\"note\\":\\"E4\\",\\"s\\":\\"flbass\\",\\"n\\":0,\\"gain\\":0.3,\\"cutoff\\":2727.5302177148174,\\"resonance\\":10,\\"clip\\":1}",
-  "-3/2 -> 1/2: {\\"note\\":\\"A4\\",\\"s\\":\\"flbass\\",\\"n\\":0,\\"gain\\":0.3,\\"cutoff\\":2522.789774516997,\\"resonance\\":10,\\"clip\\":1}",
-  "-3/2 -> 1/2: {\\"note\\":\\"C5\\",\\"s\\":\\"flbass\\",\\"n\\":0,\\"gain\\":0.3,\\"cutoff\\":2522.789774516997,\\"resonance\\":10,\\"clip\\":1}",
-  "-3/2 -> 1/2: {\\"note\\":\\"A4\\",\\"s\\":\\"flbass\\",\\"n\\":0,\\"gain\\":0.3,\\"cutoff\\":2522.789774516997,\\"resonance\\":10,\\"clip\\":1}",
-  "-3/2 -> 1/2: {\\"note\\":\\"C5\\",\\"s\\":\\"flbass\\",\\"n\\":0,\\"gain\\":0.3,\\"cutoff\\":2522.789774516997,\\"resonance\\":10,\\"clip\\":1}",
-  "1/2 -> 3/4: {\\"note\\":\\"A4\\",\\"s\\":\\"flbass\\",\\"n\\":0,\\"gain\\":0.3,\\"cutoff\\":3110.8609453791396,\\"resonance\\":10,\\"clip\\":1}",
-  "1/2 -> 3/4: {\\"note\\":\\"C5\\",\\"s\\":\\"flbass\\",\\"n\\":0,\\"gain\\":0.3,\\"cutoff\\":3110.8609453791396,\\"resonance\\":10,\\"clip\\":1}",
-  "-5/4 -> 3/4: {\\"note\\":\\"A4\\",\\"s\\":\\"flbass\\",\\"n\\":0,\\"gain\\":0.3,\\"cutoff\\":2727.5302177148174,\\"resonance\\":10,\\"clip\\":1}",
-  "-5/4 -> 3/4: {\\"note\\":\\"C5\\",\\"s\\":\\"flbass\\",\\"n\\":0,\\"gain\\":0.3,\\"cutoff\\":2727.5302177148174,\\"resonance\\":10,\\"clip\\":1}",
-  "-5/4 -> 3/4: {\\"note\\":\\"A4\\",\\"s\\":\\"flbass\\",\\"n\\":0,\\"gain\\":0.3,\\"cutoff\\":2727.5302177148174,\\"resonance\\":10,\\"clip\\":1}",
-  "-5/4 -> 3/4: {\\"note\\":\\"C5\\",\\"s\\":\\"flbass\\",\\"n\\":0,\\"gain\\":0.3,\\"cutoff\\":2727.5302177148174,\\"resonance\\":10,\\"clip\\":1}",
-  "-5/4 -> 3/4: {\\"note\\":\\"A4\\",\\"s\\":\\"flbass\\",\\"n\\":0,\\"gain\\":0.3,\\"cutoff\\":2727.5302177148174,\\"resonance\\":10,\\"clip\\":1}",
-  "-5/4 -> 3/4: {\\"note\\":\\"C5\\",\\"s\\":\\"flbass\\",\\"n\\":0,\\"gain\\":0.3,\\"cutoff\\":2727.5302177148174,\\"resonance\\":10,\\"clip\\":1}",
-  "3/4 -> 1/1: {\\"note\\":\\"A4\\",\\"s\\":\\"flbass\\",\\"n\\":0,\\"gain\\":0.3,\\"cutoff\\":3443.5028842544402,\\"resonance\\":10,\\"clip\\":1}",
-  "3/4 -> 1/1: {\\"note\\":\\"C5\\",\\"s\\":\\"flbass\\",\\"n\\":0,\\"gain\\":0.3,\\"cutoff\\":3443.5028842544402,\\"resonance\\":10,\\"clip\\":1}",
-  "-1/1 -> 1/1: {\\"note\\":\\"A4\\",\\"s\\":\\"flbass\\",\\"n\\":0,\\"gain\\":0.3,\\"cutoff\\":2924.3791043233605,\\"resonance\\":10,\\"clip\\":1}",
-  "-1/1 -> 1/1: {\\"note\\":\\"C5\\",\\"s\\":\\"flbass\\",\\"n\\":0,\\"gain\\":0.3,\\"cutoff\\":2924.3791043233605,\\"resonance\\":10,\\"clip\\":1}",
-  "-1/1 -> 1/1: {\\"note\\":\\"A4\\",\\"s\\":\\"flbass\\",\\"n\\":0,\\"gain\\":0.3,\\"cutoff\\":2924.3791043233605,\\"resonance\\":10,\\"clip\\":1}",
-  "-1/1 -> 1/1: {\\"note\\":\\"C5\\",\\"s\\":\\"flbass\\",\\"n\\":0,\\"gain\\":0.3,\\"cutoff\\":2924.3791043233605,\\"resonance\\":10,\\"clip\\":1}",
-  "-1/1 -> 1/1: {\\"note\\":\\"A4\\",\\"s\\":\\"flbass\\",\\"n\\":0,\\"gain\\":0.3,\\"cutoff\\":2924.3791043233605,\\"resonance\\":10,\\"clip\\":1}",
-  "-1/1 -> 1/1: {\\"note\\":\\"C5\\",\\"s\\":\\"flbass\\",\\"n\\":0,\\"gain\\":0.3,\\"cutoff\\":2924.3791043233605,\\"resonance\\":10,\\"clip\\":1}",
-  "-3/4 -> 5/4: {\\"note\\":\\"A4\\",\\"s\\":\\"flbass\\",\\"n\\":0,\\"gain\\":0.3,\\"cutoff\\":2924.3791043233605,\\"resonance\\":10,\\"clip\\":1}",
-  "-3/4 -> 5/4: {\\"note\\":\\"C5\\",\\"s\\":\\"flbass\\",\\"n\\":0,\\"gain\\":0.3,\\"cutoff\\":2924.3791043233605,\\"resonance\\":10,\\"clip\\":1}",
-  "-3/4 -> 5/4: {\\"note\\":\\"A4\\",\\"s\\":\\"flbass\\",\\"n\\":0,\\"gain\\":0.3,\\"cutoff\\":2924.3791043233605,\\"resonance\\":10,\\"clip\\":1}",
-  "-3/4 -> 5/4: {\\"note\\":\\"C5\\",\\"s\\":\\"flbass\\",\\"n\\":0,\\"gain\\":0.3,\\"cutoff\\":2924.3791043233605,\\"resonance\\":10,\\"clip\\":1}",
-  "0/1 -> 1/2: {\\"s\\":\\"bd:1\\"}",
-  "1/2 -> 1/1: {\\"s\\":\\"bd:1\\"}",
-  "1/2 -> 1/1: {\\"s\\":\\"sd:0\\"}",
-  "1/4 -> 1/2: {\\"s\\":\\"hh:0\\"}",
-  "3/4 -> 1/1: {\\"s\\":\\"hh:0\\"}",
-]
-`;
-
-exports[`renders shared tunes > shared tune 143 https://strudel.cc/?U9J_c-Insgbc 1`] = `
-[
-  "0/1 -> 63/220: f#6",
-  "7/22 -> 133/220: f#6",
-  "7/11 -> 203/220: f#6",
-  "21/22 -> 609/440: f#6",
-  "0/1 -> 21/88: 71",
-  "0/1 -> 21/88: 75",
-  "0/1 -> 21/88: 78",
-  "21/44 -> 63/88: 71",
-  "21/44 -> 63/88: 75",
-  "21/44 -> 63/88: 78",
-  "21/22 -> 105/88: 71",
-  "21/22 -> 105/88: 75",
-  "21/22 -> 105/88: 78",
-]
-`;
-
-exports[`renders shared tunes > shared tune 144 https://strudel.cc/?y2FS3Xvqv68d 1`] = `
-[
-  "0/1 -> 63/220: {\\"note\\":\\"f#6\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.6666666666666667}",
-  "7/22 -> 133/220: {\\"note\\":\\"f#6\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.6666666666666667}",
-  "7/11 -> 203/220: {\\"note\\":\\"f#6\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.6666666666666667}",
-  "21/22 -> 609/440: {\\"note\\":\\"f#6\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.6666666666666667}",
-  "0/1 -> 21/88: {\\"note\\":71,\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5787037037037037}",
-  "0/1 -> 21/88: {\\"note\\":75,\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5972222222222222}",
-  "0/1 -> 21/88: {\\"note\\":78,\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.6111111111111112}",
-  "21/44 -> 63/88: {\\"note\\":71,\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5787037037037037}",
-  "21/44 -> 63/88: {\\"note\\":75,\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5972222222222222}",
-  "21/44 -> 63/88: {\\"note\\":78,\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.6111111111111112}",
-  "21/22 -> 105/88: {\\"note\\":71,\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5787037037037037}",
-  "21/22 -> 105/88: {\\"note\\":75,\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5972222222222222}",
-  "21/22 -> 105/88: {\\"note\\":78,\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.6111111111111112}",
-]
-`;
-
-exports[`renders shared tunes > shared tune 145 https://strudel.cc/?d7-gUjyRbKP9 1`] = `
-[
-  "0/1 -> 6/25: {\\"note\\":60,\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5277777777777778}",
-  "0/1 -> 6/25: {\\"note\\":63,\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5416666666666667}",
-  "0/1 -> 6/25: {\\"note\\":67,\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5601851851851851}",
-  "12/25 -> 18/25: {\\"note\\":60,\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5277777777777778}",
-  "12/25 -> 18/25: {\\"note\\":63,\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5416666666666667}",
-  "12/25 -> 18/25: {\\"note\\":67,\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5601851851851851}",
-  "24/25 -> 6/5: {\\"note\\":60,\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5277777777777778}",
-  "24/25 -> 6/5: {\\"note\\":63,\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5416666666666667}",
-  "24/25 -> 6/5: {\\"note\\":67,\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5601851851851851}",
-]
-`;
-
-exports[`renders shared tunes > shared tune 146 https://strudel.cc/?lqXKPxgm_j0a 1`] = `
-[
-  "-38/5 -> 2/5: db3",
-  "-38/5 -> 2/5: eb3",
-  "-38/5 -> 2/5: e3",
-  "-38/5 -> 2/5: eb3",
-  "-38/5 -> 2/5: g3",
-  "-38/5 -> 2/5: a3",
-  "-38/5 -> 2/5: bb3",
-  "-38/5 -> 2/5: c3",
-  "-38/5 -> 2/5: db3",
-  "2/5 -> 22/5: db3",
-  "2/5 -> 22/5: f3",
-  "2/5 -> 22/5: eb3",
-  "2/5 -> 22/5: fb3",
-  "2/5 -> 22/5: a3",
-  "2/5 -> 22/5: b3",
-  "2/5 -> 22/5: c3",
-  "2/5 -> 22/5: d3",
-  "2/5 -> 22/5: db3",
-  "0/1 -> 4/1: Dracula?",
-]
-`;
-
-exports[`renders shared tunes > shared tune 147 https://strudel.cc/?5obY2LrCcbZI 1`] = `
-[
-  "1/3 -> 59/120: {\\"n\\":\\"c5\\",\\"s\\":\\"Oboe: Reed\\"}",
-  "1/2 -> 49/60: {\\"n\\":\\"d5\\",\\"s\\":\\"Oboe: Reed\\"}",
-  "5/6 -> 119/120: {\\"n\\":\\"eb5\\",\\"s\\":\\"Oboe: Reed\\"}",
-  "0/1 -> 1/2: {\\"n\\":60,\\"s\\":\\"Acoustic Grand Piano: Piano\\"}",
-  "0/1 -> 1/2: {\\"n\\":63,\\"s\\":\\"Acoustic Grand Piano: Piano\\"}",
-  "0/1 -> 1/2: {\\"n\\":67,\\"s\\":\\"Acoustic Grand Piano: Piano\\"}",
-  "1/2 -> 1/1: {\\"n\\":60,\\"s\\":\\"Acoustic Grand Piano: Piano\\"}",
-  "1/2 -> 1/1: {\\"n\\":63,\\"s\\":\\"Acoustic Grand Piano: Piano\\"}",
-  "1/2 -> 1/1: {\\"n\\":67,\\"s\\":\\"Acoustic Grand Piano: Piano\\"}",
-]
-`;
-
-exports[`renders shared tunes > shared tune 148 https://strudel.cc/?8262D2qsUNtO 1`] = `
-[
-  "0/1 -> 1/4: {\\"n\\":\\"c3\\",\\"s\\":\\"Oboe: Reed\\",\\"gain\\":0.5,\\"cutoff\\":1275.5812898145155}",
-  "1/4 -> 1/2: {\\"n\\":\\"eb3\\",\\"s\\":\\"Oboe: Reed\\",\\"gain\\":0.5,\\"cutoff\\":1600.013209717642}",
-  "1/2 -> 3/4: {\\"n\\":\\"g3\\",\\"s\\":\\"Oboe: Reed\\",\\"gain\\":0.5,\\"cutoff\\":1848.322651072291}",
-  "3/4 -> 1/1: {\\"n\\":\\"c4\\",\\"s\\":\\"Oboe: Reed\\",\\"gain\\":0.5,\\"cutoff\\":1982.7067523629073}",
-  "-1/8 -> 1/8: {\\"n\\":67,\\"s\\":\\"Oboe: Reed\\",\\"gain\\":0.5,\\"cutoff\\":1188.2154262966046}",
-  "1/8 -> 3/8: {\\"n\\":55,\\"s\\":\\"Oboe: Reed\\",\\"gain\\":0.5,\\"cutoff\\":1444.4150891285808}",
-  "3/8 -> 5/8: {\\"n\\":58,\\"s\\":\\"Oboe: Reed\\",\\"gain\\":0.5,\\"cutoff\\":1736.3961030678927}",
-  "5/8 -> 7/8: {\\"n\\":62,\\"s\\":\\"Oboe: Reed\\",\\"gain\\":0.5,\\"cutoff\\":1931.491579260158}",
-  "7/8 -> 9/8: {\\"n\\":67,\\"s\\":\\"Oboe: Reed\\",\\"gain\\":0.5,\\"cutoff\\":1995.666254004977}",
-  "0/1 -> 1/4: {\\"n\\":72,\\"s\\":\\"Oboe: Reed\\",\\"gain\\":0.5,\\"cutoff\\":1275.5812898145155}",
-  "1/4 -> 1/2: {\\"n\\":60,\\"s\\":\\"Oboe: Reed\\",\\"gain\\":0.5,\\"cutoff\\":1600.013209717642}",
-  "1/2 -> 3/4: {\\"n\\":63,\\"s\\":\\"Oboe: Reed\\",\\"gain\\":0.5,\\"cutoff\\":1848.322651072291}",
-  "3/4 -> 1/1: {\\"n\\":67,\\"s\\":\\"Oboe: Reed\\",\\"gain\\":0.5,\\"cutoff\\":1982.7067523629073}",
-  "-1/8 -> 1/8: {\\"n\\":74,\\"s\\":\\"Oboe: Reed\\",\\"gain\\":0.5,\\"cutoff\\":1188.2154262966046}",
-  "1/8 -> 3/8: {\\"n\\":79,\\"s\\":\\"Oboe: Reed\\",\\"gain\\":0.5,\\"cutoff\\":1444.4150891285808}",
-  "1/8 -> 3/8: {\\"n\\":79,\\"s\\":\\"Oboe: Reed\\",\\"gain\\":0.5,\\"cutoff\\":1444.4150891285808}",
-  "3/8 -> 5/8: {\\"n\\":67,\\"s\\":\\"Oboe: Reed\\",\\"gain\\":0.5,\\"cutoff\\":1736.3961030678927}",
-  "5/8 -> 7/8: {\\"n\\":70,\\"s\\":\\"Oboe: Reed\\",\\"gain\\":0.5,\\"cutoff\\":1931.491579260158}",
-  "7/8 -> 9/8: {\\"n\\":74,\\"s\\":\\"Oboe: Reed\\",\\"gain\\":0.5,\\"cutoff\\":1995.666254004977}",
-]
-`;
-
-exports[`renders shared tunes > shared tune 149 https://strudel.cc/?9PUNz9fqWo2F 1`] = `
-[
-  "15/41 -> 177/328: {\\"n\\":\\"c5\\",\\"s\\":\\"Oboe: Reed\\",\\"gain\\":0.4}",
-  "45/82 -> 147/164: {\\"n\\":\\"d5\\",\\"s\\":\\"Oboe: Reed\\",\\"gain\\":0.4}",
-  "75/82 -> 357/328: {\\"n\\":\\"eb5\\",\\"s\\":\\"Oboe: Reed\\",\\"gain\\":0.4}",
-  "0/1 -> 45/82: {\\"n\\":60,\\"s\\":\\"Acoustic Grand Piano: Piano\\",\\"gain\\":0.25}",
-  "0/1 -> 45/82: {\\"n\\":63,\\"s\\":\\"Acoustic Grand Piano: Piano\\",\\"gain\\":0.25}",
-  "0/1 -> 45/82: {\\"n\\":55,\\"s\\":\\"Acoustic Grand Piano: Piano\\",\\"gain\\":0.25}",
-  "45/82 -> 45/41: {\\"n\\":60,\\"s\\":\\"Acoustic Grand Piano: Piano\\",\\"gain\\":0.25}",
-  "45/82 -> 45/41: {\\"n\\":63,\\"s\\":\\"Acoustic Grand Piano: Piano\\",\\"gain\\":0.25}",
-  "45/82 -> 45/41: {\\"n\\":55,\\"s\\":\\"Acoustic Grand Piano: Piano\\",\\"gain\\":0.25}",
-  "0/1 -> 45/82: {\\"n\\":60,\\"s\\":\\"Church Organ: Organ\\",\\"gain\\":0.2}",
-  "0/1 -> 45/82: {\\"n\\":63,\\"s\\":\\"Church Organ: Organ\\",\\"gain\\":0.2}",
-  "0/1 -> 45/82: {\\"n\\":55,\\"s\\":\\"Church Organ: Organ\\",\\"gain\\":0.2}",
-  "45/82 -> 45/41: {\\"n\\":60,\\"s\\":\\"Church Organ: Organ\\",\\"gain\\":0.2}",
-  "45/82 -> 45/41: {\\"n\\":63,\\"s\\":\\"Church Organ: Organ\\",\\"gain\\":0.2}",
-  "45/82 -> 45/41: {\\"n\\":55,\\"s\\":\\"Church Organ: Organ\\",\\"gain\\":0.2}",
-]
-`;
-
-exports[`renders shared tunes > shared tune 150 https://strudel.cc/?wkDHhKIUtwY_ 1`] = `
-[
-  "0/1 -> 65/12: {\\"n\\":\\"d#5\\",\\"s\\":\\"Piccolo: Pipe\\",\\"gain\\":0.35}",
-  "0/1 -> 65/12: {\\"n\\":56,\\"s\\":\\"Choir Aahs: Ensemble\\",\\"gain\\":0.15}",
-  "0/1 -> 65/12: {\\"n\\":60,\\"s\\":\\"Choir Aahs: Ensemble\\",\\"gain\\":0.15}",
-  "0/1 -> 65/12: {\\"n\\":63,\\"s\\":\\"Choir Aahs: Ensemble\\",\\"gain\\":0.15}",
-  "0/1 -> 65/12: {\\"n\\":56,\\"s\\":\\"Choir Aahs: Ensemble\\",\\"gain\\":0.1}",
-  "0/1 -> 65/12: {\\"n\\":60,\\"s\\":\\"Choir Aahs: Ensemble\\",\\"gain\\":0.1}",
-  "0/1 -> 65/12: {\\"n\\":51,\\"s\\":\\"Choir Aahs: Ensemble\\",\\"gain\\":0.1}",
-  "0/1 -> 39/128: {\\"n\\":\\"G#1\\",\\"s\\":\\"Electric Bass (finger): Bass\\",\\"gain\\":0.3}",
-  "65/192 -> 247/384: {\\"n\\":\\"G#1\\",\\"s\\":\\"Electric Bass (finger): Bass\\",\\"gain\\":0.3}",
-  "65/96 -> 377/384: {\\"n\\":\\"G#1\\",\\"s\\":\\"Electric Bass (finger): Bass\\",\\"gain\\":0.3}",
-  "0/1 -> 65/192: {\\"s\\":\\"bd\\",\\"gain\\":0.2}",
-  "65/192 -> 65/96: {\\"s\\":\\"bd\\",\\"gain\\":0.2}",
-  "65/96 -> 65/48: {\\"s\\":\\"sn\\",\\"gain\\":0.2}",
-  "0/1 -> 65/96: {\\"s\\":\\"hh\\",\\"gain\\":0.2}",
-  "65/96 -> 65/48: {\\"s\\":\\"hh\\",\\"gain\\":0.2}",
-]
-`;
-
-exports[`renders shared tunes > shared tune 151 https://strudel.cc/?Zj9qfA1PhcDS 1`] = `
-[
-  "0/1 -> 65/12: {\\"n\\":\\"d#5\\",\\"s\\":\\"Piccolo: Pipe\\",\\"gain\\":0.35}",
-  "0/1 -> 65/12: {\\"n\\":56,\\"s\\":\\"Choir Aahs: Ensemble\\",\\"gain\\":0.15}",
-  "0/1 -> 65/12: {\\"n\\":60,\\"s\\":\\"Choir Aahs: Ensemble\\",\\"gain\\":0.15}",
-  "0/1 -> 65/12: {\\"n\\":63,\\"s\\":\\"Choir Aahs: Ensemble\\",\\"gain\\":0.15}",
-  "0/1 -> 65/12: {\\"n\\":68,\\"s\\":\\"Choir Aahs: Ensemble\\",\\"gain\\":0.15}",
-  "0/1 -> 65/12: {\\"n\\":72,\\"s\\":\\"Choir Aahs: Ensemble\\",\\"gain\\":0.15}",
-  "0/1 -> 65/12: {\\"n\\":63,\\"s\\":\\"Choir Aahs: Ensemble\\",\\"gain\\":0.15}",
-  "0/1 -> 39/128: {\\"n\\":\\"G#1\\",\\"s\\":\\"Electric Bass (finger): Bass\\",\\"gain\\":0.3}",
-  "65/192 -> 247/384: {\\"n\\":\\"G#1\\",\\"s\\":\\"Electric Bass (finger): Bass\\",\\"gain\\":0.3}",
-  "65/96 -> 377/384: {\\"n\\":\\"G#1\\",\\"s\\":\\"Electric Bass (finger): Bass\\",\\"gain\\":0.3}",
-  "0/1 -> 65/192: {\\"s\\":\\"bd\\",\\"gain\\":0.2}",
-  "65/192 -> 65/96: {\\"s\\":\\"bd\\",\\"gain\\":0.2}",
-  "65/96 -> 65/48: {\\"s\\":\\"sn\\",\\"gain\\":0.2}",
-  "0/1 -> 65/96: {\\"s\\":\\"hh\\",\\"gain\\":0.2}",
-  "65/96 -> 65/48: {\\"s\\":\\"hh\\",\\"gain\\":0.2}",
-]
-`;
-
-exports[`renders shared tunes > shared tune 152 https://strudel.cc/?p_G-4ZB295BP 1`] = `
-[
-  "0/1 -> 1/8: {\\"note\\":\\"A2\\",\\"s\\":\\"flbass\\",\\"n\\":0,\\"gain\\":0.3,\\"cutoff\\":2206.5338497506646,\\"resonance\\":10,\\"clip\\":1}",
-  "3/8 -> 1/2: {\\"note\\":\\"A2\\",\\"s\\":\\"flbass\\",\\"n\\":0,\\"gain\\":0.3,\\"cutoff\\":2827.098521493671,\\"resonance\\":10,\\"clip\\":1}",
-  "3/4 -> 7/8: {\\"note\\":\\"A2\\",\\"s\\":\\"flbass\\",\\"n\\":0,\\"gain\\":0.3,\\"cutoff\\":3366.0584981088073,\\"resonance\\":10,\\"clip\\":1}",
-  "0/1 -> 1/4: {\\"note\\":\\"A3\\",\\"s\\":\\"flbass\\",\\"n\\":0,\\"gain\\":0.3,\\"cutoff\\":2312.732504596285,\\"resonance\\":10,\\"clip\\":1}",
-  "3/4 -> 1/1: {\\"note\\":\\"A3\\",\\"s\\":\\"flbass\\",\\"n\\":0,\\"gain\\":0.3,\\"cutoff\\":3443.5028842544402,\\"resonance\\":10,\\"clip\\":1}",
-  "-7/4 -> 1/4: {\\"note\\":\\"C4\\",\\"s\\":\\"flbass\\",\\"n\\":0,\\"gain\\":0.3,\\"cutoff\\":2312.732504596285,\\"resonance\\":10,\\"clip\\":1}",
-  "-7/4 -> 1/4: {\\"note\\":\\"E4\\",\\"s\\":\\"flbass\\",\\"n\\":0,\\"gain\\":0.3,\\"cutoff\\":2312.732504596285,\\"resonance\\":10,\\"clip\\":1}",
-  "1/4 -> 1/2: {\\"note\\":\\"C4\\",\\"s\\":\\"flbass\\",\\"n\\":0,\\"gain\\":0.3,\\"cutoff\\":2727.5302177148174,\\"resonance\\":10,\\"clip\\":1}",
-  "1/4 -> 1/2: {\\"note\\":\\"E4\\",\\"s\\":\\"flbass\\",\\"n\\":0,\\"gain\\":0.3,\\"cutoff\\":2727.5302177148174,\\"resonance\\":10,\\"clip\\":1}",
-  "-3/2 -> 1/2: {\\"note\\":\\"A4\\",\\"s\\":\\"flbass\\",\\"n\\":0,\\"gain\\":0.3,\\"cutoff\\":2522.789774516997,\\"resonance\\":10,\\"clip\\":1}",
-  "-3/2 -> 1/2: {\\"note\\":\\"C5\\",\\"s\\":\\"flbass\\",\\"n\\":0,\\"gain\\":0.3,\\"cutoff\\":2522.789774516997,\\"resonance\\":10,\\"clip\\":1}",
-  "-3/2 -> 1/2: {\\"note\\":\\"A4\\",\\"s\\":\\"flbass\\",\\"n\\":0,\\"gain\\":0.3,\\"cutoff\\":2522.789774516997,\\"resonance\\":10,\\"clip\\":1}",
-  "-3/2 -> 1/2: {\\"note\\":\\"C5\\",\\"s\\":\\"flbass\\",\\"n\\":0,\\"gain\\":0.3,\\"cutoff\\":2522.789774516997,\\"resonance\\":10,\\"clip\\":1}",
-  "1/2 -> 3/4: {\\"note\\":\\"A4\\",\\"s\\":\\"flbass\\",\\"n\\":0,\\"gain\\":0.3,\\"cutoff\\":3110.8609453791396,\\"resonance\\":10,\\"clip\\":1}",
-  "1/2 -> 3/4: {\\"note\\":\\"C5\\",\\"s\\":\\"flbass\\",\\"n\\":0,\\"gain\\":0.3,\\"cutoff\\":3110.8609453791396,\\"resonance\\":10,\\"clip\\":1}",
-  "-5/4 -> 3/4: {\\"note\\":\\"A4\\",\\"s\\":\\"flbass\\",\\"n\\":0,\\"gain\\":0.3,\\"cutoff\\":2727.5302177148174,\\"resonance\\":10,\\"clip\\":1}",
-  "-5/4 -> 3/4: {\\"note\\":\\"C5\\",\\"s\\":\\"flbass\\",\\"n\\":0,\\"gain\\":0.3,\\"cutoff\\":2727.5302177148174,\\"resonance\\":10,\\"clip\\":1}",
-  "-5/4 -> 3/4: {\\"note\\":\\"A4\\",\\"s\\":\\"flbass\\",\\"n\\":0,\\"gain\\":0.3,\\"cutoff\\":2727.5302177148174,\\"resonance\\":10,\\"clip\\":1}",
-  "-5/4 -> 3/4: {\\"note\\":\\"C5\\",\\"s\\":\\"flbass\\",\\"n\\":0,\\"gain\\":0.3,\\"cutoff\\":2727.5302177148174,\\"resonance\\":10,\\"clip\\":1}",
-  "-5/4 -> 3/4: {\\"note\\":\\"A4\\",\\"s\\":\\"flbass\\",\\"n\\":0,\\"gain\\":0.3,\\"cutoff\\":2727.5302177148174,\\"resonance\\":10,\\"clip\\":1}",
-  "-5/4 -> 3/4: {\\"note\\":\\"C5\\",\\"s\\":\\"flbass\\",\\"n\\":0,\\"gain\\":0.3,\\"cutoff\\":2727.5302177148174,\\"resonance\\":10,\\"clip\\":1}",
-  "3/4 -> 1/1: {\\"note\\":\\"A4\\",\\"s\\":\\"flbass\\",\\"n\\":0,\\"gain\\":0.3,\\"cutoff\\":3443.5028842544402,\\"resonance\\":10,\\"clip\\":1}",
-  "3/4 -> 1/1: {\\"note\\":\\"C5\\",\\"s\\":\\"flbass\\",\\"n\\":0,\\"gain\\":0.3,\\"cutoff\\":3443.5028842544402,\\"resonance\\":10,\\"clip\\":1}",
-  "-1/1 -> 1/1: {\\"note\\":\\"A4\\",\\"s\\":\\"flbass\\",\\"n\\":0,\\"gain\\":0.3,\\"cutoff\\":2924.3791043233605,\\"resonance\\":10,\\"clip\\":1}",
-  "-1/1 -> 1/1: {\\"note\\":\\"C5\\",\\"s\\":\\"flbass\\",\\"n\\":0,\\"gain\\":0.3,\\"cutoff\\":2924.3791043233605,\\"resonance\\":10,\\"clip\\":1}",
-  "-1/1 -> 1/1: {\\"note\\":\\"A4\\",\\"s\\":\\"flbass\\",\\"n\\":0,\\"gain\\":0.3,\\"cutoff\\":2924.3791043233605,\\"resonance\\":10,\\"clip\\":1}",
-  "-1/1 -> 1/1: {\\"note\\":\\"C5\\",\\"s\\":\\"flbass\\",\\"n\\":0,\\"gain\\":0.3,\\"cutoff\\":2924.3791043233605,\\"resonance\\":10,\\"clip\\":1}",
-  "-1/1 -> 1/1: {\\"note\\":\\"A4\\",\\"s\\":\\"flbass\\",\\"n\\":0,\\"gain\\":0.3,\\"cutoff\\":2924.3791043233605,\\"resonance\\":10,\\"clip\\":1}",
-  "-1/1 -> 1/1: {\\"note\\":\\"C5\\",\\"s\\":\\"flbass\\",\\"n\\":0,\\"gain\\":0.3,\\"cutoff\\":2924.3791043233605,\\"resonance\\":10,\\"clip\\":1}",
-  "-3/4 -> 5/4: {\\"note\\":\\"A4\\",\\"s\\":\\"flbass\\",\\"n\\":0,\\"gain\\":0.3,\\"cutoff\\":2924.3791043233605,\\"resonance\\":10,\\"clip\\":1}",
-  "-3/4 -> 5/4: {\\"note\\":\\"C5\\",\\"s\\":\\"flbass\\",\\"n\\":0,\\"gain\\":0.3,\\"cutoff\\":2924.3791043233605,\\"resonance\\":10,\\"clip\\":1}",
-  "-3/4 -> 5/4: {\\"note\\":\\"A4\\",\\"s\\":\\"flbass\\",\\"n\\":0,\\"gain\\":0.3,\\"cutoff\\":2924.3791043233605,\\"resonance\\":10,\\"clip\\":1}",
-  "-3/4 -> 5/4: {\\"note\\":\\"C5\\",\\"s\\":\\"flbass\\",\\"n\\":0,\\"gain\\":0.3,\\"cutoff\\":2924.3791043233605,\\"resonance\\":10,\\"clip\\":1}",
-  "0/1 -> 1/2: {\\"s\\":\\"bd:1\\"}",
-  "1/2 -> 1/1: {\\"s\\":\\"bd:1\\"}",
-  "1/2 -> 1/1: {\\"s\\":\\"sd:0\\"}",
-  "1/4 -> 1/2: {\\"s\\":\\"hh:0\\"}",
-  "3/4 -> 1/1: {\\"s\\":\\"hh:0\\"}",
-]
-`;
-
-exports[`renders shared tunes > shared tune 153 https://strudel.cc/?NWLKF4C7o4EX 1`] = `
-[
-  "0/1 -> 1/2: {\\"note\\":\\"G4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5601851851851851}",
-  "0/1 -> 1/2: {\\"note\\":\\"B4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5787037037037037}",
-  "0/1 -> 1/2: {\\"note\\":\\"C5\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5833333333333333}",
-  "0/1 -> 1/2: {\\"note\\":\\"E5\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.6018518518518519}",
-  "3/4 -> 1/1: {\\"note\\":\\"G4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5601851851851851}",
-  "3/4 -> 1/1: {\\"note\\":\\"B4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5787037037037037}",
-  "3/4 -> 1/1: {\\"note\\":\\"C5\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5833333333333333}",
-  "3/4 -> 1/1: {\\"note\\":\\"E5\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.6018518518518519}",
-  "0/1 -> 1/2: {\\"note\\":\\"A2\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.45833333333333337}",
-  "1/2 -> 1/1: {\\"note\\":\\"A2\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.45833333333333337}",
-]
-`;
-
-exports[`renders shared tunes > shared tune 154 https://strudel.cc/?XhNBCyuzIVOD 1`] = `
-[
-  "0/1 -> 1457/3000: {\\"n\\":\\"c#6\\",\\"s\\":\\"Overdriven Guitar: Guitar\\",\\"gain\\":0.18}",
-  "47/90 -> 13771/18000: {\\"n\\":\\"f5\\",\\"s\\":\\"Overdriven Guitar: Guitar\\",\\"gain\\":0.18}",
-  "47/60 -> 9071/6000: {\\"n\\":\\"c6\\",\\"s\\":\\"Overdriven Guitar: Guitar\\",\\"gain\\":0.18}",
-  "0/1 -> 47/60: {\\"n\\":61,\\"s\\":\\"Choir Aahs: Ensemble\\",\\"gain\\":0.24}",
-  "0/1 -> 47/60: {\\"n\\":65,\\"s\\":\\"Choir Aahs: Ensemble\\",\\"gain\\":0.24}",
-  "0/1 -> 47/60: {\\"n\\":56,\\"s\\":\\"Choir Aahs: Ensemble\\",\\"gain\\":0.24}",
-  "47/60 -> 47/30: {\\"n\\":63,\\"s\\":\\"Choir Aahs: Ensemble\\",\\"gain\\":0.24}",
-  "47/60 -> 47/30: {\\"n\\":67,\\"s\\":\\"Choir Aahs: Ensemble\\",\\"gain\\":0.24}",
-  "47/60 -> 47/30: {\\"n\\":58,\\"s\\":\\"Choir Aahs: Ensemble\\",\\"gain\\":0.24}",
-  "0/1 -> 141/200: {\\"n\\":\\"C#2\\",\\"s\\":\\"Electric Bass (finger): Bass\\",\\"gain\\":0.3}",
-  "47/60 -> 893/600: {\\"n\\":\\"D#2\\",\\"s\\":\\"Electric Bass (finger): Bass\\",\\"gain\\":0.3}",
-  "0/1 -> 47/180: {\\"s\\":\\"bd\\",\\"gain\\":0.2}",
-  "47/90 -> 47/60: {\\"s\\":\\"bd\\",\\"gain\\":0.2}",
-  "47/60 -> 47/45: {\\"s\\":\\"sn\\",\\"gain\\":0.2}",
-  "0/1 -> 47/180: {\\"s\\":\\"hh\\",\\"gain\\":0.2}",
-  "47/180 -> 47/90: {\\"s\\":\\"hh\\",\\"gain\\":0.2}",
-  "47/90 -> 47/60: {\\"s\\":\\"hh\\",\\"gain\\":0.2}",
-  "47/60 -> 47/45: {\\"s\\":\\"hh\\",\\"gain\\":0.2}",
-]
-`;
-
-exports[`renders shared tunes > shared tune 155 https://strudel.cc/?AL73np8C7Fe7 1`] = `
-[
-  "0/1 -> 589/1200: {\\"n\\":\\"C#5\\",\\"s\\":\\"Overdriven Guitar: Guitar\\",\\"gain\\":0.2}",
-  "19/36 -> 5567/7200: {\\"n\\":\\"F4\\",\\"s\\":\\"Overdriven Guitar: Guitar\\",\\"gain\\":0.2}",
-  "19/24 -> 3667/2400: {\\"n\\":\\"C5\\",\\"s\\":\\"Overdriven Guitar: Guitar\\",\\"gain\\":0.2}",
-  "0/1 -> 589/1200: {\\"n\\":\\"c#6\\",\\"s\\":\\"Overdriven Guitar: Guitar\\",\\"gain\\":0.1}",
-  "19/36 -> 5567/7200: {\\"n\\":\\"f5\\",\\"s\\":\\"Overdriven Guitar: Guitar\\",\\"gain\\":0.1}",
-  "19/24 -> 3667/2400: {\\"n\\":\\"c6\\",\\"s\\":\\"Overdriven Guitar: Guitar\\",\\"gain\\":0.1}",
-  "0/1 -> 19/24: {\\"n\\":61,\\"s\\":\\"Choir Aahs: Ensemble\\",\\"gain\\":0.25}",
-  "0/1 -> 19/24: {\\"n\\":65,\\"s\\":\\"Choir Aahs: Ensemble\\",\\"gain\\":0.25}",
-  "0/1 -> 19/24: {\\"n\\":56,\\"s\\":\\"Choir Aahs: Ensemble\\",\\"gain\\":0.25}",
-  "19/24 -> 19/12: {\\"n\\":63,\\"s\\":\\"Choir Aahs: Ensemble\\",\\"gain\\":0.25}",
-  "19/24 -> 19/12: {\\"n\\":67,\\"s\\":\\"Choir Aahs: Ensemble\\",\\"gain\\":0.25}",
-  "19/24 -> 19/12: {\\"n\\":58,\\"s\\":\\"Choir Aahs: Ensemble\\",\\"gain\\":0.25}",
-  "0/1 -> 57/80: {\\"n\\":\\"C#2\\",\\"s\\":\\"Electric Bass (finger): Bass\\",\\"gain\\":0.3}",
-  "19/24 -> 361/240: {\\"n\\":\\"D#2\\",\\"s\\":\\"Electric Bass (finger): Bass\\",\\"gain\\":0.3}",
-  "0/1 -> 125832027859158/476837158203125: {\\"s\\":\\"bd\\",\\"gain\\":0.25}",
-  "251664055718316/476837158203125 -> 19/24: {\\"s\\":\\"bd\\",\\"gain\\":0.25}",
-  "19/24 -> 2922870840145583/2769035532769500: {\\"s\\":\\"sn\\",\\"gain\\":0.25}",
-  "0/1 -> 125832027859158/476837158203125: {\\"s\\":\\"hh\\",\\"gain\\":0.25}",
-  "125832027859158/476837158203125 -> 251664055718316/476837158203125: {\\"s\\":\\"hh\\",\\"gain\\":0.25}",
-  "251664055718316/476837158203125 -> 19/24: {\\"s\\":\\"hh\\",\\"gain\\":0.25}",
-  "19/24 -> 2922870840145583/2769035532769500: {\\"s\\":\\"hh\\",\\"gain\\":0.25}",
-]
-`;
-
-exports[`renders shared tunes > shared tune 156 https://strudel.cc/?89gJxIK34OPK 1`] = `
-[
-  "0/1 -> 3/2: {\\"s\\":\\"bd\\",\\"speed\\":0.7519542165100574}",
-  "3/4 -> 3/2: {\\"s\\":\\"sd\\",\\"speed\\":0.7931522866332671}",
-  "3/8 -> 3/4: {\\"s\\":\\"hh\\",\\"speed\\":0.7285963821098448}",
-  "3/4 -> 9/8: {\\"s\\":\\"hh\\",\\"speed\\":0.77531205091027}",
-  "0/1 -> 3/2: {\\"n\\":33.129885541275144,\\"decay\\":0.15,\\"sustain\\":0,\\"s\\":\\"sawtooth\\",\\"gain\\":0.4,\\"cutoff\\":3669.6267869262615}",
-  "0/1 -> 3/2: {\\"n\\":33.17988554127514,\\"decay\\":0.15,\\"sustain\\":0,\\"s\\":\\"sawtooth\\",\\"gain\\":0.4,\\"cutoff\\":3669.6267869262615}",
-  "0/1 -> 3/2: {\\"n\\":55.129885541275144,\\"s\\":\\"sawtooth\\",\\"gain\\":0.16,\\"cutoff\\":500,\\"attack\\":1}",
-  "0/1 -> 3/2: {\\"n\\":59.129885541275144,\\"s\\":\\"sawtooth\\",\\"gain\\":0.16,\\"cutoff\\":500,\\"attack\\":1}",
-  "0/1 -> 3/2: {\\"n\\":60.129885541275144,\\"s\\":\\"sawtooth\\",\\"gain\\":0.16,\\"cutoff\\":500,\\"attack\\":1}",
-  "0/1 -> 3/2: {\\"n\\":64.12988554127514,\\"s\\":\\"sawtooth\\",\\"gain\\":0.16,\\"cutoff\\":500,\\"attack\\":1}",
-  "0/1 -> 3/2: {\\"n\\":55.16988554127514,\\"s\\":\\"sawtooth\\",\\"gain\\":0.16,\\"cutoff\\":500,\\"attack\\":1}",
-  "0/1 -> 3/2: {\\"n\\":59.16988554127514,\\"s\\":\\"sawtooth\\",\\"gain\\":0.16,\\"cutoff\\":500,\\"attack\\":1}",
-  "0/1 -> 3/2: {\\"n\\":60.16988554127514,\\"s\\":\\"sawtooth\\",\\"gain\\":0.16,\\"cutoff\\":500,\\"attack\\":1}",
-  "0/1 -> 3/2: {\\"n\\":64.16988554127515,\\"s\\":\\"sawtooth\\",\\"gain\\":0.16,\\"cutoff\\":500,\\"attack\\":1}",
-  "3/16 -> 3/8: {\\"n\\":69.01266877519555,\\"decay\\":0.1,\\"sustain\\":0,\\"s\\":\\"triangle\\",\\"gain\\":0.15}",
-  "3/8 -> 9/16: {\\"n\\":69.04676036055696,\\"decay\\":0.1,\\"sustain\\":0,\\"s\\":\\"triangle\\",\\"gain\\":0.15}",
-  "3/8 -> 9/16: {\\"n\\":72.04676036055696,\\"decay\\":0.1,\\"sustain\\":0,\\"s\\":\\"triangle\\",\\"gain\\":0.15}",
-  "3/4 -> 15/16: {\\"n\\":72.16001184806132,\\"decay\\":0.1,\\"sustain\\":0,\\"s\\":\\"triangle\\",\\"gain\\":0.15}",
-  "15/16 -> 9/8: {\\"n\\":72.21301072199333,\\"decay\\":0.1,\\"sustain\\":0,\\"s\\":\\"triangle\\",\\"gain\\":0.15}",
-  "3/16 -> 3/8: {\\"n\\":69.05266877519557,\\"decay\\":0.1,\\"sustain\\":0,\\"s\\":\\"triangle\\",\\"gain\\":0.15}",
-  "3/8 -> 9/16: {\\"n\\":69.08676036055695,\\"decay\\":0.1,\\"sustain\\":0,\\"s\\":\\"triangle\\",\\"gain\\":0.15}",
-  "3/8 -> 9/16: {\\"n\\":72.08676036055695,\\"decay\\":0.1,\\"sustain\\":0,\\"s\\":\\"triangle\\",\\"gain\\":0.15}",
-  "3/4 -> 15/16: {\\"n\\":72.20001184806131,\\"decay\\":0.1,\\"sustain\\":0,\\"s\\":\\"triangle\\",\\"gain\\":0.15}",
-  "15/16 -> 9/8: {\\"n\\":72.25301072199335,\\"decay\\":0.1,\\"sustain\\":0,\\"s\\":\\"triangle\\",\\"gain\\":0.15}",
-  "0/1 -> 3/16: {\\"n\\":93.00057728554401,\\"decay\\":0.1,\\"sustain\\":0,\\"s\\":\\"triangle\\",\\"gain\\":0.075}",
-  "0/1 -> 3/16: {\\"n\\":93.04057728554402,\\"decay\\":0.1,\\"sustain\\":0,\\"s\\":\\"triangle\\",\\"gain\\":0.075}",
-  "3/8 -> 9/16: {\\"n\\":69.01266877519555,\\"decay\\":0.1,\\"sustain\\":0,\\"s\\":\\"triangle\\",\\"gain\\":0.075}",
-  "9/16 -> 3/4: {\\"n\\":69.04676036055696,\\"decay\\":0.1,\\"sustain\\":0,\\"s\\":\\"triangle\\",\\"gain\\":0.075}",
-  "9/16 -> 3/4: {\\"n\\":72.04676036055696,\\"decay\\":0.1,\\"sustain\\":0,\\"s\\":\\"triangle\\",\\"gain\\":0.075}",
-  "15/16 -> 9/8: {\\"n\\":72.16001184806132,\\"decay\\":0.1,\\"sustain\\":0,\\"s\\":\\"triangle\\",\\"gain\\":0.075}",
-  "3/8 -> 9/16: {\\"n\\":69.05266877519557,\\"decay\\":0.1,\\"sustain\\":0,\\"s\\":\\"triangle\\",\\"gain\\":0.075}",
-  "9/16 -> 3/4: {\\"n\\":69.08676036055695,\\"decay\\":0.1,\\"sustain\\":0,\\"s\\":\\"triangle\\",\\"gain\\":0.075}",
-  "9/16 -> 3/4: {\\"n\\":72.08676036055695,\\"decay\\":0.1,\\"sustain\\":0,\\"s\\":\\"triangle\\",\\"gain\\":0.075}",
-  "15/16 -> 9/8: {\\"n\\":72.20001184806131,\\"decay\\":0.1,\\"sustain\\":0,\\"s\\":\\"triangle\\",\\"gain\\":0.075}",
-  "3/16 -> 3/8: {\\"n\\":93.00057728554401,\\"decay\\":0.1,\\"sustain\\":0,\\"s\\":\\"triangle\\",\\"gain\\":0.049999999999999996}",
-  "3/16 -> 3/8: {\\"n\\":93.04057728554402,\\"decay\\":0.1,\\"sustain\\":0,\\"s\\":\\"triangle\\",\\"gain\\":0.049999999999999996}",
-  "9/16 -> 3/4: {\\"n\\":69.01266877519555,\\"decay\\":0.1,\\"sustain\\":0,\\"s\\":\\"triangle\\",\\"gain\\":0.049999999999999996}",
-  "3/4 -> 15/16: {\\"n\\":69.04676036055696,\\"decay\\":0.1,\\"sustain\\":0,\\"s\\":\\"triangle\\",\\"gain\\":0.049999999999999996}",
-  "3/4 -> 15/16: {\\"n\\":72.04676036055696,\\"decay\\":0.1,\\"sustain\\":0,\\"s\\":\\"triangle\\",\\"gain\\":0.049999999999999996}",
-  "9/16 -> 3/4: {\\"n\\":69.05266877519557,\\"decay\\":0.1,\\"sustain\\":0,\\"s\\":\\"triangle\\",\\"gain\\":0.049999999999999996}",
-  "3/4 -> 15/16: {\\"n\\":69.08676036055695,\\"decay\\":0.1,\\"sustain\\":0,\\"s\\":\\"triangle\\",\\"gain\\":0.049999999999999996}",
-  "3/4 -> 15/16: {\\"n\\":72.08676036055695,\\"decay\\":0.1,\\"sustain\\":0,\\"s\\":\\"triangle\\",\\"gain\\":0.049999999999999996}",
-  "0/1 -> 3/16: {\\"n\\":72.0468455057745,\\"decay\\":0.1,\\"sustain\\":0,\\"s\\":\\"triangle\\",\\"gain\\":0.0375}",
-  "0/1 -> 3/16: {\\"n\\":93.0468455057745,\\"decay\\":0.1,\\"sustain\\":0,\\"s\\":\\"triangle\\",\\"gain\\":0.0375}",
-  "3/8 -> 9/16: {\\"n\\":93.00057728554401,\\"decay\\":0.1,\\"sustain\\":0,\\"s\\":\\"triangle\\",\\"gain\\":0.0375}",
-  "0/1 -> 3/16: {\\"n\\":72.0868455057745,\\"decay\\":0.1,\\"sustain\\":0,\\"s\\":\\"triangle\\",\\"gain\\":0.0375}",
-  "0/1 -> 3/16: {\\"n\\":93.0868455057745,\\"decay\\":0.1,\\"sustain\\":0,\\"s\\":\\"triangle\\",\\"gain\\":0.0375}",
-  "3/8 -> 9/16: {\\"n\\":93.04057728554402,\\"decay\\":0.1,\\"sustain\\":0,\\"s\\":\\"triangle\\",\\"gain\\":0.0375}",
-  "3/4 -> 15/16: {\\"n\\":69.01266877519555,\\"decay\\":0.1,\\"sustain\\":0,\\"s\\":\\"triangle\\",\\"gain\\":0.0375}",
-  "15/16 -> 9/8: {\\"n\\":69.04676036055696,\\"decay\\":0.1,\\"sustain\\":0,\\"s\\":\\"triangle\\",\\"gain\\":0.0375}",
-  "3/4 -> 15/16: {\\"n\\":69.05266877519557,\\"decay\\":0.1,\\"sustain\\":0,\\"s\\":\\"triangle\\",\\"gain\\":0.0375}",
-  "15/16 -> 9/8: {\\"n\\":69.08676036055695,\\"decay\\":0.1,\\"sustain\\":0,\\"s\\":\\"triangle\\",\\"gain\\":0.0375}",
-]
-`;
-
-exports[`renders shared tunes > shared tune 157 https://strudel.cc/?8g4oMFkLYMXZ 1`] = `
-[
-  "0/1 -> 1/10: C3",
-  "0/1 -> 1/10: E3",
-  "0/1 -> 1/10: G3",
-  "1/4 -> 7/20: B3",
-  "1/4 -> 7/20: E4",
-  "1/4 -> 7/20: E3",
-  "1/2 -> 3/5: C3",
-  "1/2 -> 3/5: A2",
-  "1/2 -> 3/5: C3",
-  "3/4 -> 17/20: E3",
-  "3/4 -> 17/20: G3",
-  "3/4 -> 17/20: B3",
-  "0/1 -> 1/5: C2",
-  "1/2 -> 7/10: E2",
-]
-`;
-
-exports[`renders shared tunes > shared tune 158 https://strudel.cc/?NIQF-VGYdB83 1`] = `
-[
-  "0/1 -> 1/2: c1",
-  "1/2 -> 1/1: c1",
-  "1/2 -> 1/1: x",
-  "1/4 -> 1/2: c4",
-  "3/4 -> 1/1: c4",
-  "0/1 -> 1/2: B1",
-  "3/4 -> 1/1: B1",
-  "1/4 -> 13/44: A3",
-  "1/4 -> 13/44: C#4",
-  "1/4 -> 13/44: D4",
-  "1/4 -> 13/44: F#4",
-]
-`;
-
-exports[`renders shared tunes > shared tune 159 https://strudel.cc/?KOAtvzaJcmmY 1`] = `
-[
-  "0/1 -> 1/4: {\\"note\\":\\"C2\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.41666666666666663}",
-  "0/1 -> 1/4: {\\"note\\":\\"C2\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.41666666666666663}",
-  "446428571428571/12500000000000000 -> 3571428571428571/12500000000000000: {\\"note\\":\\"A#4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5740740740740741}",
-  "446428571428571/12500000000000000 -> 3571428571428571/12500000000000000: {\\"note\\":\\"D#5\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5972222222222222}",
-  "446428571428571/12500000000000000 -> 3571428571428571/12500000000000000: {\\"note\\":\\"E5\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.6018518518518519}",
-  "446428571428571/12500000000000000 -> 3571428571428571/12500000000000000: {\\"note\\":\\"G#5\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.6203703703703703}",
-  "0/1 -> 1/4: {\\"note\\":\\"C2\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.41666666666666663}",
-  "446428571428571/12500000000000000 -> 3571428571428571/12500000000000000: {\\"note\\":\\"A#4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5740740740740741}",
-  "446428571428571/12500000000000000 -> 3571428571428571/12500000000000000: {\\"note\\":\\"D#5\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5972222222222222}",
-  "446428571428571/12500000000000000 -> 3571428571428571/12500000000000000: {\\"note\\":\\"E5\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.6018518518518519}",
-  "446428571428571/12500000000000000 -> 3571428571428571/12500000000000000: {\\"note\\":\\"G#5\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.6203703703703703}",
-  "0/1 -> 1/4: {\\"note\\":\\"C2\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.41666666666666663}",
-  "446428571428571/12500000000000000 -> 3571428571428571/12500000000000000: {\\"note\\":\\"A#4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5740740740740741}",
-  "446428571428571/12500000000000000 -> 3571428571428571/12500000000000000: {\\"note\\":\\"D#5\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5972222222222222}",
-  "446428571428571/12500000000000000 -> 3571428571428571/12500000000000000: {\\"note\\":\\"E5\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.6018518518518519}",
-  "446428571428571/12500000000000000 -> 3571428571428571/12500000000000000: {\\"note\\":\\"G#5\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.6203703703703703}",
-  "0/1 -> 1/4: {\\"note\\":\\"C2\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.41666666666666663}",
-  "446428571428571/12500000000000000 -> 3571428571428571/12500000000000000: {\\"note\\":\\"A#4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5740740740740741}",
-  "446428571428571/12500000000000000 -> 3571428571428571/12500000000000000: {\\"note\\":\\"D#5\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5972222222222222}",
-  "446428571428571/12500000000000000 -> 3571428571428571/12500000000000000: {\\"note\\":\\"E5\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.6018518518518519}",
-  "446428571428571/12500000000000000 -> 3571428571428571/12500000000000000: {\\"note\\":\\"G#5\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.6203703703703703}",
-  "0/1 -> 1/4: {\\"note\\":\\"C2\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.41666666666666663}",
-  "446428571428571/12500000000000000 -> 3571428571428571/12500000000000000: {\\"note\\":\\"A#4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5740740740740741}",
-  "446428571428571/12500000000000000 -> 3571428571428571/12500000000000000: {\\"note\\":\\"D#5\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5972222222222222}",
-  "446428571428571/12500000000000000 -> 3571428571428571/12500000000000000: {\\"note\\":\\"E5\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.6018518518518519}",
-  "446428571428571/12500000000000000 -> 3571428571428571/12500000000000000: {\\"note\\":\\"G#5\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.6203703703703703}",
-  "0/1 -> 1/4: {\\"note\\":\\"C2\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.41666666666666663}",
-  "446428571428571/12500000000000000 -> 3571428571428571/12500000000000000: {\\"note\\":\\"A#4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5740740740740741}",
-  "446428571428571/12500000000000000 -> 3571428571428571/12500000000000000: {\\"note\\":\\"D#5\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5972222222222222}",
-  "446428571428571/12500000000000000 -> 3571428571428571/12500000000000000: {\\"note\\":\\"E5\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.6018518518518519}",
-  "446428571428571/12500000000000000 -> 3571428571428571/12500000000000000: {\\"note\\":\\"G#5\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.6203703703703703}",
-  "0/1 -> 1/4: {\\"note\\":\\"C2\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.41666666666666663}",
-  "446428571428571/12500000000000000 -> 3571428571428571/12500000000000000: {\\"note\\":\\"A#4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5740740740740741}",
-  "446428571428571/12500000000000000 -> 3571428571428571/12500000000000000: {\\"note\\":\\"D#5\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5972222222222222}",
-  "446428571428571/12500000000000000 -> 3571428571428571/12500000000000000: {\\"note\\":\\"E5\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.6018518518518519}",
-  "446428571428571/12500000000000000 -> 3571428571428571/12500000000000000: {\\"note\\":\\"G#5\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.6203703703703703}",
-  "0/1 -> 1/4: {\\"note\\":\\"C2\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.41666666666666663}",
-  "1/8 -> 1/4: {\\"note\\":\\"C4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5277777777777778}",
-  "1/8 -> 1/4: {\\"note\\":\\"Eb4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5416666666666667}",
-  "446428571428571/12500000000000000 -> 3571428571428571/12500000000000000: {\\"note\\":\\"A#4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5740740740740741}",
-  "446428571428571/12500000000000000 -> 3571428571428571/12500000000000000: {\\"note\\":\\"D#5\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5972222222222222}",
-  "446428571428571/12500000000000000 -> 3571428571428571/12500000000000000: {\\"note\\":\\"E5\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.6018518518518519}",
-  "446428571428571/12500000000000000 -> 3571428571428571/12500000000000000: {\\"note\\":\\"G#5\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.6203703703703703}",
-  "0/1 -> 1/4: {\\"note\\":\\"C2\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.41666666666666663}",
-  "1/8 -> 1/4: {\\"note\\":\\"C4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5277777777777778}",
-  "1/8 -> 1/4: {\\"note\\":\\"Eb4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5416666666666667}",
-  "446428571428571/12500000000000000 -> 3571428571428571/12500000000000000: {\\"note\\":\\"A#4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5740740740740741}",
-  "446428571428571/12500000000000000 -> 3571428571428571/12500000000000000: {\\"note\\":\\"D#5\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5972222222222222}",
-  "446428571428571/12500000000000000 -> 3571428571428571/12500000000000000: {\\"note\\":\\"E5\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.6018518518518519}",
-  "446428571428571/12500000000000000 -> 3571428571428571/12500000000000000: {\\"note\\":\\"G#5\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.6203703703703703}",
-  "0/1 -> 1/4: {\\"note\\":\\"C2\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.41666666666666663}",
-  "1/8 -> 1/4: {\\"note\\":\\"C4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5277777777777778}",
-  "1/8 -> 1/4: {\\"note\\":\\"Eb4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5416666666666667}",
-  "446428571428571/12500000000000000 -> 3571428571428571/12500000000000000: {\\"note\\":\\"A#4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5740740740740741}",
-  "446428571428571/12500000000000000 -> 3571428571428571/12500000000000000: {\\"note\\":\\"D#5\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5972222222222222}",
-  "446428571428571/12500000000000000 -> 3571428571428571/12500000000000000: {\\"note\\":\\"E5\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.6018518518518519}",
-  "446428571428571/12500000000000000 -> 3571428571428571/12500000000000000: {\\"note\\":\\"G#5\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.6203703703703703}",
-  "0/1 -> 1/4: {\\"note\\":\\"C2\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.41666666666666663}",
-  "1/8 -> 1/4: {\\"note\\":\\"C4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5277777777777778}",
-  "1/8 -> 1/4: {\\"note\\":\\"Eb4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5416666666666667}",
-  "446428571428571/12500000000000000 -> 3571428571428571/12500000000000000: {\\"note\\":\\"A#4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5740740740740741}",
-  "446428571428571/12500000000000000 -> 3571428571428571/12500000000000000: {\\"note\\":\\"D#5\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5972222222222222}",
-  "446428571428571/12500000000000000 -> 3571428571428571/12500000000000000: {\\"note\\":\\"E5\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.6018518518518519}",
-  "446428571428571/12500000000000000 -> 3571428571428571/12500000000000000: {\\"note\\":\\"G#5\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.6203703703703703}",
-  "0/1 -> 1/4: {\\"note\\":\\"C2\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.41666666666666663}",
-  "1/8 -> 1/4: {\\"note\\":\\"C4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5277777777777778}",
-  "1/8 -> 1/4: {\\"note\\":\\"Eb4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5416666666666667}",
-  "446428571428571/12500000000000000 -> 3571428571428571/12500000000000000: {\\"note\\":\\"A#4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5740740740740741}",
-  "446428571428571/12500000000000000 -> 3571428571428571/12500000000000000: {\\"note\\":\\"D#5\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5972222222222222}",
-  "446428571428571/12500000000000000 -> 3571428571428571/12500000000000000: {\\"note\\":\\"E5\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.6018518518518519}",
-  "446428571428571/12500000000000000 -> 3571428571428571/12500000000000000: {\\"note\\":\\"G#5\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.6203703703703703}",
-  "0/1 -> 1/4: {\\"note\\":\\"C2\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.41666666666666663}",
-  "1/8 -> 1/4: {\\"note\\":\\"C4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5277777777777778}",
-  "1/8 -> 1/4: {\\"note\\":\\"Eb4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5416666666666667}",
-  "446428571428571/12500000000000000 -> 3571428571428571/12500000000000000: {\\"note\\":\\"A#4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5740740740740741}",
-  "446428571428571/12500000000000000 -> 3571428571428571/12500000000000000: {\\"note\\":\\"D#5\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5972222222222222}",
-  "446428571428571/12500000000000000 -> 3571428571428571/12500000000000000: {\\"note\\":\\"E5\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.6018518518518519}",
-  "446428571428571/12500000000000000 -> 3571428571428571/12500000000000000: {\\"note\\":\\"G#5\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.6203703703703703}",
-  "0/1 -> 1/4: {\\"note\\":\\"C2\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.41666666666666663}",
-  "1/8 -> 1/4: {\\"note\\":\\"C4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5277777777777778}",
-  "1/8 -> 1/4: {\\"note\\":\\"Eb4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5416666666666667}",
-  "446428571428571/12500000000000000 -> 3571428571428571/12500000000000000: {\\"note\\":\\"A#4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5740740740740741}",
-  "446428571428571/12500000000000000 -> 3571428571428571/12500000000000000: {\\"note\\":\\"D#5\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5972222222222222}",
-  "446428571428571/12500000000000000 -> 3571428571428571/12500000000000000: {\\"note\\":\\"E5\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.6018518518518519}",
-  "446428571428571/12500000000000000 -> 3571428571428571/12500000000000000: {\\"note\\":\\"G#5\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.6203703703703703}",
-  "0/1 -> 1/4: {\\"note\\":\\"C2\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.41666666666666663}",
-  "1/8 -> 1/4: {\\"note\\":\\"C4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5277777777777778}",
-  "1/8 -> 1/4: {\\"note\\":\\"Eb4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5416666666666667}",
-  "446428571428571/12500000000000000 -> 3571428571428571/12500000000000000: {\\"note\\":\\"A#4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5740740740740741}",
-  "446428571428571/12500000000000000 -> 3571428571428571/12500000000000000: {\\"note\\":\\"D#5\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5972222222222222}",
-  "446428571428571/12500000000000000 -> 3571428571428571/12500000000000000: {\\"note\\":\\"E5\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.6018518518518519}",
-  "446428571428571/12500000000000000 -> 3571428571428571/12500000000000000: {\\"note\\":\\"G#5\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.6203703703703703}",
-  "446428571428571/12500000000000000 -> 3571428571428571/12500000000000000: {\\"note\\":\\"A#4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5740740740740741}",
-  "446428571428571/12500000000000000 -> 3571428571428571/12500000000000000: {\\"note\\":\\"D#5\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5972222222222222}",
-  "446428571428571/12500000000000000 -> 3571428571428571/12500000000000000: {\\"note\\":\\"E5\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.6018518518518519}",
-  "446428571428571/12500000000000000 -> 3571428571428571/12500000000000000: {\\"note\\":\\"G#5\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.6203703703703703}",
-  "446428571428571/12500000000000000 -> 3571428571428571/12500000000000000: {\\"note\\":\\"A#4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5740740740740741}",
-  "446428571428571/12500000000000000 -> 3571428571428571/12500000000000000: {\\"note\\":\\"D#5\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5972222222222222}",
-  "446428571428571/12500000000000000 -> 3571428571428571/12500000000000000: {\\"note\\":\\"E5\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.6018518518518519}",
-  "446428571428571/12500000000000000 -> 3571428571428571/12500000000000000: {\\"note\\":\\"G#5\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.6203703703703703}",
-  "1/2 -> 3/4: {\\"note\\":\\"Bb3\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5185185185185186}",
-  "1/2 -> 3/4: {\\"note\\":\\"D4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.537037037037037}",
-  "1/2 -> 3/4: {\\"note\\":\\"Eb4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5416666666666667}",
-  "1/2 -> 3/4: {\\"note\\":\\"G4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5601851851851851}",
-  "1/2 -> 3/4: {\\"note\\":\\"C2\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.41666666666666663}",
-  "1/2 -> 5/8: {\\"note\\":\\"G4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5601851851851851}",
-  "1/2 -> 5/8: {\\"note\\":\\"Bb4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5740740740740741}",
-  "1/2 -> 3/4: {\\"note\\":\\"Bb3\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5185185185185186}",
-  "1/2 -> 3/4: {\\"note\\":\\"D4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.537037037037037}",
-  "1/2 -> 3/4: {\\"note\\":\\"Eb4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5416666666666667}",
-  "1/2 -> 3/4: {\\"note\\":\\"G4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5601851851851851}",
-  "1/2 -> 3/4: {\\"note\\":\\"C2\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.41666666666666663}",
-  "1/2 -> 5/8: {\\"note\\":\\"G4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5601851851851851}",
-  "1/2 -> 5/8: {\\"note\\":\\"Bb4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5740740740740741}",
-  "1/2 -> 3/4: {\\"note\\":\\"Bb3\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5185185185185186}",
-  "1/2 -> 3/4: {\\"note\\":\\"D4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.537037037037037}",
-  "1/2 -> 3/4: {\\"note\\":\\"Eb4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5416666666666667}",
-  "1/2 -> 3/4: {\\"note\\":\\"G4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5601851851851851}",
-  "1/2 -> 3/4: {\\"note\\":\\"C2\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.41666666666666663}",
-  "1/2 -> 5/8: {\\"note\\":\\"G4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5601851851851851}",
-  "1/2 -> 5/8: {\\"note\\":\\"Bb4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5740740740740741}",
-  "1/2 -> 3/4: {\\"note\\":\\"Bb3\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5185185185185186}",
-  "1/2 -> 3/4: {\\"note\\":\\"D4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.537037037037037}",
-  "1/2 -> 3/4: {\\"note\\":\\"Eb4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5416666666666667}",
-  "1/2 -> 3/4: {\\"note\\":\\"G4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5601851851851851}",
-  "1/2 -> 3/4: {\\"note\\":\\"C2\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.41666666666666663}",
-  "1/2 -> 5/8: {\\"note\\":\\"G4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5601851851851851}",
-  "1/2 -> 5/8: {\\"note\\":\\"Bb4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5740740740740741}",
-  "1/2 -> 3/4: {\\"note\\":\\"Bb3\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5185185185185186}",
-  "1/2 -> 3/4: {\\"note\\":\\"D4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.537037037037037}",
-  "1/2 -> 3/4: {\\"note\\":\\"Eb4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5416666666666667}",
-  "1/2 -> 3/4: {\\"note\\":\\"G4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5601851851851851}",
-  "1/2 -> 3/4: {\\"note\\":\\"C2\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.41666666666666663}",
-  "1/2 -> 5/8: {\\"note\\":\\"G4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5601851851851851}",
-  "1/2 -> 5/8: {\\"note\\":\\"Bb4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5740740740740741}",
-  "1/2 -> 3/4: {\\"note\\":\\"Bb3\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5185185185185186}",
-  "1/2 -> 3/4: {\\"note\\":\\"D4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.537037037037037}",
-  "1/2 -> 3/4: {\\"note\\":\\"Eb4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5416666666666667}",
-  "1/2 -> 3/4: {\\"note\\":\\"G4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5601851851851851}",
-  "1/2 -> 3/4: {\\"note\\":\\"C2\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.41666666666666663}",
-  "1/2 -> 5/8: {\\"note\\":\\"G4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5601851851851851}",
-  "1/2 -> 5/8: {\\"note\\":\\"Bb4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5740740740740741}",
-  "1/2 -> 3/4: {\\"note\\":\\"Bb3\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5185185185185186}",
-  "1/2 -> 3/4: {\\"note\\":\\"D4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.537037037037037}",
-  "1/2 -> 3/4: {\\"note\\":\\"Eb4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5416666666666667}",
-  "1/2 -> 3/4: {\\"note\\":\\"G4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5601851851851851}",
-  "1/2 -> 3/4: {\\"note\\":\\"C2\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.41666666666666663}",
-  "1/2 -> 5/8: {\\"note\\":\\"G4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5601851851851851}",
-  "1/2 -> 5/8: {\\"note\\":\\"Bb4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5740740740740741}",
-  "1/2 -> 3/4: {\\"note\\":\\"Bb3\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5185185185185186}",
-  "1/2 -> 3/4: {\\"note\\":\\"D4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.537037037037037}",
-  "1/2 -> 3/4: {\\"note\\":\\"Eb4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5416666666666667}",
-  "1/2 -> 3/4: {\\"note\\":\\"G4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5601851851851851}",
-  "1/2 -> 3/4: {\\"note\\":\\"C2\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.41666666666666663}",
-  "1/2 -> 5/8: {\\"note\\":\\"G4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5601851851851851}",
-  "1/2 -> 5/8: {\\"note\\":\\"Bb4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5740740740740741}",
-  "1/2 -> 3/4: {\\"note\\":\\"Bb3\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5185185185185186}",
-  "1/2 -> 3/4: {\\"note\\":\\"D4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.537037037037037}",
-  "1/2 -> 3/4: {\\"note\\":\\"Eb4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5416666666666667}",
-  "1/2 -> 3/4: {\\"note\\":\\"G4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5601851851851851}",
-  "1/2 -> 3/4: {\\"note\\":\\"C2\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.41666666666666663}",
-  "1/2 -> 3/4: {\\"note\\":\\"Bb3\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5185185185185186}",
-  "1/2 -> 3/4: {\\"note\\":\\"D4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.537037037037037}",
-  "1/2 -> 3/4: {\\"note\\":\\"Eb4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5416666666666667}",
-  "1/2 -> 3/4: {\\"note\\":\\"G4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5601851851851851}",
-  "1/2 -> 3/4: {\\"note\\":\\"C2\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.41666666666666663}",
-  "1/2 -> 3/4: {\\"note\\":\\"Bb3\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5185185185185186}",
-  "1/2 -> 3/4: {\\"note\\":\\"D4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.537037037037037}",
-  "1/2 -> 3/4: {\\"note\\":\\"Eb4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5416666666666667}",
-  "1/2 -> 3/4: {\\"note\\":\\"G4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5601851851851851}",
-  "1/2 -> 3/4: {\\"note\\":\\"C2\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.41666666666666663}",
-  "1/2 -> 3/4: {\\"note\\":\\"Bb3\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5185185185185186}",
-  "1/2 -> 3/4: {\\"note\\":\\"D4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.537037037037037}",
-  "1/2 -> 3/4: {\\"note\\":\\"Eb4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5416666666666667}",
-  "1/2 -> 3/4: {\\"note\\":\\"G4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5601851851851851}",
-  "1/2 -> 3/4: {\\"note\\":\\"C2\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.41666666666666663}",
-  "1/2 -> 3/4: {\\"note\\":\\"Bb3\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5185185185185186}",
-  "1/2 -> 3/4: {\\"note\\":\\"D4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.537037037037037}",
-  "1/2 -> 3/4: {\\"note\\":\\"Eb4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5416666666666667}",
-  "1/2 -> 3/4: {\\"note\\":\\"G4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5601851851851851}",
-  "1/2 -> 3/4: {\\"note\\":\\"C2\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.41666666666666663}",
-  "1/2 -> 3/4: {\\"note\\":\\"Bb3\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5185185185185186}",
-  "1/2 -> 3/4: {\\"note\\":\\"D4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.537037037037037}",
-  "1/2 -> 3/4: {\\"note\\":\\"Eb4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5416666666666667}",
-  "1/2 -> 3/4: {\\"note\\":\\"G4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5601851851851851}",
-  "1/2 -> 3/4: {\\"note\\":\\"C2\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.41666666666666663}",
-  "1/2 -> 3/4: {\\"note\\":\\"Bb3\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5185185185185186}",
-  "1/2 -> 3/4: {\\"note\\":\\"D4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.537037037037037}",
-  "1/2 -> 3/4: {\\"note\\":\\"Eb4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5416666666666667}",
-  "1/2 -> 3/4: {\\"note\\":\\"G4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5601851851851851}",
-  "1/2 -> 3/4: {\\"note\\":\\"C2\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.41666666666666663}",
-  "1/2 -> 3/4: {\\"note\\":\\"Bb3\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5185185185185186}",
-  "1/2 -> 3/4: {\\"note\\":\\"D4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.537037037037037}",
-  "1/2 -> 3/4: {\\"note\\":\\"Eb4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5416666666666667}",
-  "1/2 -> 3/4: {\\"note\\":\\"G4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5601851851851851}",
-  "1/2 -> 3/4: {\\"note\\":\\"C2\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.41666666666666663}",
-  "3/4 -> 7/8: {\\"note\\":\\"C4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5277777777777778}",
-  "3/4 -> 7/8: {\\"note\\":\\"Eb4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5416666666666667}",
-  "3/4 -> 7/8: {\\"note\\":\\"C4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5277777777777778}",
-  "3/4 -> 7/8: {\\"note\\":\\"Eb4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5416666666666667}",
-  "2455357142857143/3125000000000000 -> 3236607142857143/3125000000000000: {\\"note\\":\\"Bb4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5740740740740741}",
-  "2455357142857143/3125000000000000 -> 3236607142857143/3125000000000000: {\\"note\\":\\"D5\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5925925925925926}",
-  "2455357142857143/3125000000000000 -> 3236607142857143/3125000000000000: {\\"note\\":\\"Eb5\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5972222222222222}",
-  "2455357142857143/3125000000000000 -> 3236607142857143/3125000000000000: {\\"note\\":\\"G5\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.6157407407407407}",
-  "3/4 -> 7/8: {\\"note\\":\\"C4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5277777777777778}",
-  "3/4 -> 7/8: {\\"note\\":\\"Eb4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5416666666666667}",
-  "2455357142857143/3125000000000000 -> 3236607142857143/3125000000000000: {\\"note\\":\\"Bb4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5740740740740741}",
-  "2455357142857143/3125000000000000 -> 3236607142857143/3125000000000000: {\\"note\\":\\"D5\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5925925925925926}",
-  "2455357142857143/3125000000000000 -> 3236607142857143/3125000000000000: {\\"note\\":\\"Eb5\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5972222222222222}",
-  "2455357142857143/3125000000000000 -> 3236607142857143/3125000000000000: {\\"note\\":\\"G5\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.6157407407407407}",
-  "3/4 -> 7/8: {\\"note\\":\\"C4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5277777777777778}",
-  "3/4 -> 7/8: {\\"note\\":\\"Eb4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5416666666666667}",
-  "2455357142857143/3125000000000000 -> 3236607142857143/3125000000000000: {\\"note\\":\\"Bb4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5740740740740741}",
-  "2455357142857143/3125000000000000 -> 3236607142857143/3125000000000000: {\\"note\\":\\"D5\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5925925925925926}",
-  "2455357142857143/3125000000000000 -> 3236607142857143/3125000000000000: {\\"note\\":\\"Eb5\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5972222222222222}",
-  "2455357142857143/3125000000000000 -> 3236607142857143/3125000000000000: {\\"note\\":\\"G5\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.6157407407407407}",
-  "3/4 -> 7/8: {\\"note\\":\\"C4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5277777777777778}",
-  "3/4 -> 7/8: {\\"note\\":\\"Eb4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5416666666666667}",
-  "2455357142857143/3125000000000000 -> 3236607142857143/3125000000000000: {\\"note\\":\\"Bb4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5740740740740741}",
-  "2455357142857143/3125000000000000 -> 3236607142857143/3125000000000000: {\\"note\\":\\"D5\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5925925925925926}",
-  "2455357142857143/3125000000000000 -> 3236607142857143/3125000000000000: {\\"note\\":\\"Eb5\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5972222222222222}",
-  "2455357142857143/3125000000000000 -> 3236607142857143/3125000000000000: {\\"note\\":\\"G5\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.6157407407407407}",
-  "3/4 -> 7/8: {\\"note\\":\\"C4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5277777777777778}",
-  "3/4 -> 7/8: {\\"note\\":\\"Eb4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5416666666666667}",
-  "2455357142857143/3125000000000000 -> 3236607142857143/3125000000000000: {\\"note\\":\\"Bb4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5740740740740741}",
-  "2455357142857143/3125000000000000 -> 3236607142857143/3125000000000000: {\\"note\\":\\"D5\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5925925925925926}",
-  "2455357142857143/3125000000000000 -> 3236607142857143/3125000000000000: {\\"note\\":\\"Eb5\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5972222222222222}",
-  "2455357142857143/3125000000000000 -> 3236607142857143/3125000000000000: {\\"note\\":\\"G5\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.6157407407407407}",
-  "3/4 -> 7/8: {\\"note\\":\\"C4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5277777777777778}",
-  "3/4 -> 7/8: {\\"note\\":\\"Eb4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5416666666666667}",
-  "2455357142857143/3125000000000000 -> 3236607142857143/3125000000000000: {\\"note\\":\\"Bb4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5740740740740741}",
-  "2455357142857143/3125000000000000 -> 3236607142857143/3125000000000000: {\\"note\\":\\"D5\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5925925925925926}",
-  "2455357142857143/3125000000000000 -> 3236607142857143/3125000000000000: {\\"note\\":\\"Eb5\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5972222222222222}",
-  "2455357142857143/3125000000000000 -> 3236607142857143/3125000000000000: {\\"note\\":\\"G5\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.6157407407407407}",
-  "3/4 -> 7/8: {\\"note\\":\\"C4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5277777777777778}",
-  "3/4 -> 7/8: {\\"note\\":\\"Eb4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5416666666666667}",
-  "2455357142857143/3125000000000000 -> 3236607142857143/3125000000000000: {\\"note\\":\\"Bb4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5740740740740741}",
-  "2455357142857143/3125000000000000 -> 3236607142857143/3125000000000000: {\\"note\\":\\"D5\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5925925925925926}",
-  "2455357142857143/3125000000000000 -> 3236607142857143/3125000000000000: {\\"note\\":\\"Eb5\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5972222222222222}",
-  "2455357142857143/3125000000000000 -> 3236607142857143/3125000000000000: {\\"note\\":\\"G5\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.6157407407407407}",
-  "2455357142857143/3125000000000000 -> 3236607142857143/3125000000000000: {\\"note\\":\\"Bb4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5740740740740741}",
-  "2455357142857143/3125000000000000 -> 3236607142857143/3125000000000000: {\\"note\\":\\"D5\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5925925925925926}",
-  "2455357142857143/3125000000000000 -> 3236607142857143/3125000000000000: {\\"note\\":\\"Eb5\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5972222222222222}",
-  "2455357142857143/3125000000000000 -> 3236607142857143/3125000000000000: {\\"note\\":\\"G5\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.6157407407407407}",
-  "2455357142857143/3125000000000000 -> 3236607142857143/3125000000000000: {\\"note\\":\\"Bb4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5740740740740741}",
-  "2455357142857143/3125000000000000 -> 3236607142857143/3125000000000000: {\\"note\\":\\"D5\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5925925925925926}",
-  "2455357142857143/3125000000000000 -> 3236607142857143/3125000000000000: {\\"note\\":\\"Eb5\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5972222222222222}",
-  "2455357142857143/3125000000000000 -> 3236607142857143/3125000000000000: {\\"note\\":\\"G5\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.6157407407407407}",
-  "2455357142857143/3125000000000000 -> 3236607142857143/3125000000000000: {\\"note\\":\\"Bb4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5740740740740741}",
-  "2455357142857143/3125000000000000 -> 3236607142857143/3125000000000000: {\\"note\\":\\"D5\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5925925925925926}",
-  "2455357142857143/3125000000000000 -> 3236607142857143/3125000000000000: {\\"note\\":\\"Eb5\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5972222222222222}",
-  "2455357142857143/3125000000000000 -> 3236607142857143/3125000000000000: {\\"note\\":\\"G5\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.6157407407407407}",
-  "2455357142857143/3125000000000000 -> 3236607142857143/3125000000000000: {\\"note\\":\\"Bb4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5740740740740741}",
-  "2455357142857143/3125000000000000 -> 3236607142857143/3125000000000000: {\\"note\\":\\"D5\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5925925925925926}",
-  "2455357142857143/3125000000000000 -> 3236607142857143/3125000000000000: {\\"note\\":\\"Eb5\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5972222222222222}",
-  "2455357142857143/3125000000000000 -> 3236607142857143/3125000000000000: {\\"note\\":\\"G5\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.6157407407407407}",
-  "2455357142857143/3125000000000000 -> 3236607142857143/3125000000000000: {\\"note\\":\\"Bb4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5740740740740741}",
-  "2455357142857143/3125000000000000 -> 3236607142857143/3125000000000000: {\\"note\\":\\"D5\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5925925925925926}",
-  "2455357142857143/3125000000000000 -> 3236607142857143/3125000000000000: {\\"note\\":\\"Eb5\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5972222222222222}",
-  "2455357142857143/3125000000000000 -> 3236607142857143/3125000000000000: {\\"note\\":\\"G5\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.6157407407407407}",
-  "2455357142857143/3125000000000000 -> 3236607142857143/3125000000000000: {\\"note\\":\\"Bb4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5740740740740741}",
-  "2455357142857143/3125000000000000 -> 3236607142857143/3125000000000000: {\\"note\\":\\"D5\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5925925925925926}",
-  "2455357142857143/3125000000000000 -> 3236607142857143/3125000000000000: {\\"note\\":\\"Eb5\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5972222222222222}",
-  "2455357142857143/3125000000000000 -> 3236607142857143/3125000000000000: {\\"note\\":\\"G5\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.6157407407407407}",
-  "2455357142857143/3125000000000000 -> 3236607142857143/3125000000000000: {\\"note\\":\\"Bb4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5740740740740741}",
-  "2455357142857143/3125000000000000 -> 3236607142857143/3125000000000000: {\\"note\\":\\"Bb4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5740740740740741}",
-  "2455357142857143/3125000000000000 -> 3236607142857143/3125000000000000: {\\"note\\":\\"D5\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5925925925925926}",
-  "2455357142857143/3125000000000000 -> 3236607142857143/3125000000000000: {\\"note\\":\\"D5\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5925925925925926}",
-  "2455357142857143/3125000000000000 -> 3236607142857143/3125000000000000: {\\"note\\":\\"Eb5\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5972222222222222}",
-  "2455357142857143/3125000000000000 -> 3236607142857143/3125000000000000: {\\"note\\":\\"Eb5\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5972222222222222}",
-  "2455357142857143/3125000000000000 -> 3236607142857143/3125000000000000: {\\"note\\":\\"G5\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.6157407407407407}",
-  "2455357142857143/3125000000000000 -> 3236607142857143/3125000000000000: {\\"note\\":\\"G5\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.6157407407407407}",
-]
-`;
-
-exports[`renders shared tunes > shared tune 160 https://strudel.cc/?pK517-FAktOc 1`] = `
-[
-  "0/1 -> 4/3: B4",
-  "0/1 -> 1/3: C3",
-  "1/3 -> 2/3: G3",
-  "2/3 -> 2/1: E4",
-]
-`;
-
-exports[`renders shared tunes > shared tune 161 https://strudel.cc/?H3BbA0AovtKs 1`] = `
-[
-  "0/1 -> 5/26: {\\"note\\":\\"B2\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.46759259259259256}",
-  "5/13 -> 15/26: {\\"note\\":\\"B2\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.46759259259259256}",
-  "10/13 -> 155/156: {\\"note\\":\\"B2\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.46759259259259256}",
-  "155/156 -> 15/13: {\\"note\\":\\"A2\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.45833333333333337}",
-  "0/1 -> 15/26: {\\"note\\":\\"B3\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5231481481481481}",
-  "5/52 -> 35/52: {\\"note\\":\\"C#4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5324074074074074}",
-  "5/26 -> 10/13: {\\"note\\":\\"D#4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5416666666666667}",
-  "15/52 -> 45/52: {\\"note\\":\\"F4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5509259259259259}",
-  "5/13 -> 25/26: {\\"note\\":\\"G4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5601851851851851}",
-  "25/52 -> 55/52: {\\"note\\":\\"A4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5694444444444444}",
-  "15/26 -> 15/13: {\\"note\\":\\"B4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5787037037037037}",
-  "35/52 -> 5/4: {\\"note\\":\\"C#5\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.587962962962963}",
-  "5/13 -> 25/26: {\\"note\\":\\"B3\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5231481481481481}",
-  "25/52 -> 55/52: {\\"note\\":\\"C#4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5324074074074074}",
-  "15/26 -> 15/13: {\\"note\\":\\"D#4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5416666666666667}",
-  "35/52 -> 5/4: {\\"note\\":\\"F4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5509259259259259}",
-  "10/13 -> 35/26: {\\"note\\":\\"G4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5601851851851851}",
-  "45/52 -> 75/52: {\\"note\\":\\"A4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5694444444444444}",
-  "25/26 -> 20/13: {\\"note\\":\\"B4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5787037037037037}",
-  "10/13 -> 35/26: {\\"note\\":\\"B3\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5231481481481481}",
-  "45/52 -> 75/52: {\\"note\\":\\"C#4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5324074074074074}",
-  "25/26 -> 20/13: {\\"note\\":\\"D#4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5416666666666667}",
-  "0/1 -> 80/13: {\\"s\\":\\"mad\\"}",
-]
-`;
-
-exports[`renders shared tunes > shared tune 162 https://strudel.cc/?Y9RZADkxt8UL 1`] = `
-[
-  "0/1 -> 65/12: {\\"n\\":\\"d#5\\",\\"s\\":\\"Piccolo: Pipe\\",\\"gain\\":0.35}",
-  "0/1 -> 65/12: {\\"n\\":56,\\"s\\":\\"Choir Aahs: Ensemble\\",\\"gain\\":0.15}",
-  "0/1 -> 65/12: {\\"n\\":60,\\"s\\":\\"Choir Aahs: Ensemble\\",\\"gain\\":0.15}",
-  "0/1 -> 65/12: {\\"n\\":63,\\"s\\":\\"Choir Aahs: Ensemble\\",\\"gain\\":0.15}",
-  "0/1 -> 65/12: {\\"n\\":68,\\"s\\":\\"Choir Aahs: Ensemble\\",\\"gain\\":0.15}",
-  "0/1 -> 65/12: {\\"n\\":72,\\"s\\":\\"Choir Aahs: Ensemble\\",\\"gain\\":0.15}",
-  "0/1 -> 65/12: {\\"n\\":63,\\"s\\":\\"Choir Aahs: Ensemble\\",\\"gain\\":0.15}",
-  "0/1 -> 39/128: {\\"n\\":\\"G#1\\",\\"s\\":\\"Electric Bass (finger): Bass\\",\\"gain\\":0.3}",
-  "65/192 -> 247/384: {\\"n\\":\\"G#1\\",\\"s\\":\\"Electric Bass (finger): Bass\\",\\"gain\\":0.3}",
-  "65/96 -> 377/384: {\\"n\\":\\"G#1\\",\\"s\\":\\"Electric Bass (finger): Bass\\",\\"gain\\":0.3}",
-  "0/1 -> 65/192: {\\"s\\":\\"bd\\",\\"gain\\":0.2}",
-  "65/192 -> 65/96: {\\"s\\":\\"bd\\",\\"gain\\":0.2}",
-  "65/96 -> 65/48: {\\"s\\":\\"sn\\",\\"gain\\":0.2}",
-  "0/1 -> 65/96: {\\"s\\":\\"hh\\",\\"gain\\":0.2}",
-  "65/96 -> 65/48: {\\"s\\":\\"hh\\",\\"gain\\":0.2}",
-]
-`;
-
-exports[`renders shared tunes > shared tune 163 https://strudel.cc/?bxwipc2kqreB 1`] = `
-[
-  "1/2 -> 1/1: a4",
-  "3/4 -> 1/1: a1",
-  "1/2 -> 3/4: a2",
-  "1/4 -> 1/2: a1",
-  "0/1 -> 1/4: a2",
-]
-`;
-
-exports[`renders shared tunes > shared tune 164 https://strudel.cc/?qGimkQi_nszY 1`] = `
-[
-  "47/60 -> 6157/6000: {\\"n\\":\\"c#5\\",\\"s\\":\\"Overdriven Guitar: Guitar\\",\\"gain\\":0.18}",
-  "47/90 -> 13771/18000: {\\"n\\":\\"d#5\\",\\"s\\":\\"Overdriven Guitar: Guitar\\",\\"gain\\":0.18}",
-  "47/180 -> 9071/18000: {\\"n\\":\\"f5\\",\\"s\\":\\"Overdriven Guitar: Guitar\\",\\"gain\\":0.18}",
-  "0/1 -> 1457/6000: {\\"n\\":\\"g5\\",\\"s\\":\\"Overdriven Guitar: Guitar\\",\\"gain\\":0.18}",
-  "47/60 -> 47/30: {\\"n\\":57,\\"s\\":\\"Choir Aahs: Ensemble\\",\\"gain\\":0.24}",
-  "47/60 -> 47/30: {\\"n\\":61,\\"s\\":\\"Choir Aahs: Ensemble\\",\\"gain\\":0.24}",
-  "47/60 -> 47/30: {\\"n\\":52,\\"s\\":\\"Choir Aahs: Ensemble\\",\\"gain\\":0.24}",
-  "0/1 -> 47/60: {\\"n\\":59,\\"s\\":\\"Choir Aahs: Ensemble\\",\\"gain\\":0.24}",
-  "0/1 -> 47/60: {\\"n\\":63,\\"s\\":\\"Choir Aahs: Ensemble\\",\\"gain\\":0.24}",
-  "0/1 -> 47/60: {\\"n\\":54,\\"s\\":\\"Choir Aahs: Ensemble\\",\\"gain\\":0.24}",
-  "47/60 -> 893/600: {\\"n\\":\\"A1\\",\\"s\\":\\"Electric Bass (finger): Bass\\",\\"gain\\":0.3}",
-  "0/1 -> 141/200: {\\"n\\":\\"B1\\",\\"s\\":\\"Electric Bass (finger): Bass\\",\\"gain\\":0.3}",
-  "47/60 -> 47/45: {\\"s\\":\\"bd\\",\\"gain\\":0.2}",
-  "47/90 -> 47/60: {\\"s\\":\\"sn\\",\\"gain\\":0.2}",
-  "0/1 -> 47/180: {\\"s\\":\\"bd\\",\\"gain\\":0.2}",
-  "47/60 -> 47/45: {\\"s\\":\\"hh\\",\\"gain\\":0.2}",
-  "47/90 -> 47/60: {\\"s\\":\\"hh\\",\\"gain\\":0.2}",
-  "47/180 -> 47/90: {\\"s\\":\\"hh\\",\\"gain\\":0.2}",
-  "0/1 -> 47/180: {\\"s\\":\\"hh\\",\\"gain\\":0.2}",
-]
-`;
-
-exports[`renders shared tunes > shared tune 165 https://strudel.cc/?DVESSaRggtn_ 1`] = `
-[
-  "0/1 -> 6275565/1452119: A3",
-  "-9/8 -> 20400609/11616952: G4",
-  "3/8 -> 54560877/11616952: D4",
-  "-3/4 -> 12378483/5808476: F5",
-  "3/4 -> 29458617/5808476: G4",
-  "0/1 -> 3/2: D2",
-]
-`;
-
-exports[`renders shared tunes > shared tune 166 https://strudel.cc/?CHh9ZGJxiWnm 1`] = `
-[
-  "1/8 -> 1/4: {\\"n\\":\\"D1\\",\\"s\\":\\"sawtooth\\",\\"gain\\":0.3,\\"attack\\":0.01,\\"decay\\":0.1,\\"sustain\\":0.5,\\"cutoff\\":1699.6897509708342}",
-  "1/8 -> 1/4: {\\"n\\":\\"D1\\",\\"s\\":\\"square\\",\\"gain\\":0.3,\\"attack\\":0.01,\\"decay\\":0.1,\\"sustain\\":0.5,\\"cutoff\\":1699.6897509708342}",
-  "3/8 -> 1/2: {\\"n\\":\\"D2\\",\\"s\\":\\"sawtooth\\",\\"gain\\":0.3,\\"attack\\":0.01,\\"decay\\":0.1,\\"sustain\\":0.5,\\"cutoff\\":1765.826371664994}",
-  "3/8 -> 1/2: {\\"n\\":\\"D2\\",\\"s\\":\\"square\\",\\"gain\\":0.3,\\"attack\\":0.01,\\"decay\\":0.1,\\"sustain\\":0.5,\\"cutoff\\":1765.826371664994}",
-  "1/2 -> 5/8: {\\"n\\":\\"D1\\",\\"s\\":\\"sawtooth\\",\\"gain\\":0.3,\\"attack\\":0.01,\\"decay\\":0.1,\\"sustain\\":0.5,\\"cutoff\\":1798.799979846742}",
-  "1/2 -> 5/8: {\\"n\\":\\"D1\\",\\"s\\":\\"square\\",\\"gain\\":0.3,\\"attack\\":0.01,\\"decay\\":0.1,\\"sustain\\":0.5,\\"cutoff\\":1798.799979846742}",
-  "3/4 -> 7/8: {\\"n\\":\\"D3\\",\\"s\\":\\"sawtooth\\",\\"gain\\":0.3,\\"attack\\":0.01,\\"decay\\":0.1,\\"sustain\\":0.5,\\"cutoff\\":1864.4584935007128}",
-  "3/4 -> 7/8: {\\"n\\":\\"D3\\",\\"s\\":\\"square\\",\\"gain\\":0.3,\\"attack\\":0.01,\\"decay\\":0.1,\\"sustain\\":0.5,\\"cutoff\\":1864.4584935007128}",
-  "7/8 -> 1/1: {\\"n\\":\\"D3\\",\\"s\\":\\"sawtooth\\",\\"gain\\":0.3,\\"attack\\":0.01,\\"decay\\":0.1,\\"sustain\\":0.5,\\"cutoff\\":1897.1038487394403}",
-  "7/8 -> 1/1: {\\"n\\":\\"D3\\",\\"s\\":\\"square\\",\\"gain\\":0.3,\\"attack\\":0.01,\\"decay\\":0.1,\\"sustain\\":0.5,\\"cutoff\\":1897.1038487394403}",
-  "-3/8 -> 1/8: {\\"n\\":\\"G3\\",\\"s\\":\\"square\\",\\"gain\\":0.7,\\"attack\\":0.01,\\"decay\\":0.1,\\"sustain\\":0,\\"cutoff\\":1666.5665766857219}",
-  "-3/8 -> 1/8: {\\"n\\":\\"B3\\",\\"s\\":\\"square\\",\\"gain\\":0.7,\\"attack\\":0.01,\\"decay\\":0.1,\\"sustain\\":0,\\"cutoff\\":1666.5665766857219}",
-  "-1/4 -> 1/4: {\\"n\\":\\"G3\\",\\"s\\":\\"square\\",\\"gain\\":0.7,\\"attack\\":0.01,\\"decay\\":0.1,\\"sustain\\":0,\\"cutoff\\":1683.1306585059317}",
-  "-1/4 -> 1/4: {\\"n\\":\\"B3\\",\\"s\\":\\"square\\",\\"gain\\":0.7,\\"attack\\":0.01,\\"decay\\":0.1,\\"sustain\\":0,\\"cutoff\\":1683.1306585059317}",
-  "-1/8 -> 3/8: {\\"n\\":\\"G3\\",\\"s\\":\\"square\\",\\"gain\\":0.7,\\"attack\\":0.01,\\"decay\\":0.1,\\"sustain\\":0,\\"cutoff\\":1699.6897509708342}",
-  "-1/8 -> 3/8: {\\"n\\":\\"B3\\",\\"s\\":\\"square\\",\\"gain\\":0.7,\\"attack\\":0.01,\\"decay\\":0.1,\\"sustain\\":0,\\"cutoff\\":1699.6897509708342}",
-  "0/1 -> 3/8: {\\"n\\":\\"C#6\\",\\"s\\":\\"sawtooth\\",\\"gain\\":0.26103468453995016,\\"attack\\":0.001,\\"decay\\":0.2,\\"sustain\\":0,\\"hcutoff\\":5998.072590601808,\\"cutoff\\":4000}",
-  "0/1 -> 3/8: {\\"n\\":\\"A5\\",\\"s\\":\\"sawtooth\\",\\"gain\\":0.26103468453995016,\\"attack\\":0.001,\\"decay\\":0.2,\\"sustain\\":0,\\"hcutoff\\":5998.072590601808,\\"cutoff\\":4000}",
-  "0/1 -> 3/8: {\\"n\\":\\"E5\\",\\"s\\":\\"sawtooth\\",\\"gain\\":0.26103468453995016,\\"attack\\":0.001,\\"decay\\":0.2,\\"sustain\\":0,\\"hcutoff\\":5998.072590601808,\\"cutoff\\":4000}",
-  "0/1 -> 3/8: {\\"n\\":\\"C#5\\",\\"s\\":\\"sawtooth\\",\\"gain\\":0.26103468453995016,\\"attack\\":0.001,\\"decay\\":0.2,\\"sustain\\":0,\\"hcutoff\\":5998.072590601808,\\"cutoff\\":4000}",
-  "3/8 -> 3/4: {\\"n\\":\\"A5\\",\\"s\\":\\"sawtooth\\",\\"gain\\":0.2828651860235305,\\"attack\\":0.001,\\"decay\\":0.2,\\"sustain\\":0,\\"hcutoff\\":5982.671142387316,\\"cutoff\\":4000}",
-  "3/8 -> 3/4: {\\"n\\":\\"F#5\\",\\"s\\":\\"sawtooth\\",\\"gain\\":0.2828651860235305,\\"attack\\":0.001,\\"decay\\":0.2,\\"sustain\\":0,\\"hcutoff\\":5982.671142387316,\\"cutoff\\":4000}",
-  "3/8 -> 3/4: {\\"n\\":\\"C#5\\",\\"s\\":\\"sawtooth\\",\\"gain\\":0.2828651860235305,\\"attack\\":0.001,\\"decay\\":0.2,\\"sustain\\":0,\\"hcutoff\\":5982.671142387316,\\"cutoff\\":4000}",
-  "3/8 -> 3/4: {\\"n\\":\\"A4\\",\\"s\\":\\"sawtooth\\",\\"gain\\":0.2828651860235305,\\"attack\\":0.001,\\"decay\\":0.2,\\"sustain\\":0,\\"hcutoff\\":5982.671142387316,\\"cutoff\\":4000}",
-  "3/4 -> 1/1: {\\"n\\":\\"F#5\\",\\"s\\":\\"sawtooth\\",\\"gain\\":0.300533478008833,\\"attack\\":0.001,\\"decay\\":0.2,\\"sustain\\":0,\\"hcutoff\\":5958.137268909887,\\"cutoff\\":4000}",
-  "3/4 -> 1/1: {\\"n\\":\\"A4\\",\\"s\\":\\"sawtooth\\",\\"gain\\":0.300533478008833,\\"attack\\":0.001,\\"decay\\":0.2,\\"sustain\\":0,\\"hcutoff\\":5958.137268909887,\\"cutoff\\":4000}",
-  "1/4 -> 5/8: {\\"n\\":\\"C#6\\",\\"s\\":\\"sawtooth\\",\\"gain\\":0.2756442833140452,\\"attack\\":0.001,\\"decay\\":0.2,\\"sustain\\":0,\\"hcutoff\\":5989.512318936654,\\"cutoff\\":4000}",
-  "1/4 -> 5/8: {\\"n\\":\\"A5\\",\\"s\\":\\"sawtooth\\",\\"gain\\":0.2756442833140452,\\"attack\\":0.001,\\"decay\\":0.2,\\"sustain\\":0,\\"hcutoff\\":5989.512318936654,\\"cutoff\\":4000}",
-  "1/4 -> 5/8: {\\"n\\":\\"E5\\",\\"s\\":\\"sawtooth\\",\\"gain\\":0.2756442833140452,\\"attack\\":0.001,\\"decay\\":0.2,\\"sustain\\":0,\\"hcutoff\\":5989.512318936654,\\"cutoff\\":4000}",
-  "1/4 -> 5/8: {\\"n\\":\\"C#5\\",\\"s\\":\\"sawtooth\\",\\"gain\\":0.2756442833140452,\\"attack\\":0.001,\\"decay\\":0.2,\\"sustain\\":0,\\"hcutoff\\":5989.512318936654,\\"cutoff\\":4000}",
-  "5/8 -> 1/1: {\\"n\\":\\"A5\\",\\"s\\":\\"sawtooth\\",\\"gain\\":0.29705226105983373,\\"attack\\":0.001,\\"decay\\":0.2,\\"sustain\\":0,\\"hcutoff\\":5963.890147645195,\\"cutoff\\":4000}",
-  "5/8 -> 1/1: {\\"n\\":\\"F#5\\",\\"s\\":\\"sawtooth\\",\\"gain\\":0.29705226105983373,\\"attack\\":0.001,\\"decay\\":0.2,\\"sustain\\":0,\\"hcutoff\\":5963.890147645195,\\"cutoff\\":4000}",
-  "5/8 -> 1/1: {\\"n\\":\\"C#5\\",\\"s\\":\\"sawtooth\\",\\"gain\\":0.29705226105983373,\\"attack\\":0.001,\\"decay\\":0.2,\\"sustain\\":0,\\"hcutoff\\":5963.890147645195,\\"cutoff\\":4000}",
-  "5/8 -> 1/1: {\\"n\\":\\"A4\\",\\"s\\":\\"sawtooth\\",\\"gain\\":0.29705226105983373,\\"attack\\":0.001,\\"decay\\":0.2,\\"sustain\\":0,\\"hcutoff\\":5963.890147645195,\\"cutoff\\":4000}",
-  "1/2 -> 7/8: {\\"n\\":\\"C#6\\",\\"s\\":\\"sawtooth\\",\\"gain\\":0.29000691362123476,\\"attack\\":0.001,\\"decay\\":0.2,\\"sustain\\":0,\\"hcutoff\\":5974.128467049176,\\"cutoff\\":4000}",
-  "1/2 -> 7/8: {\\"n\\":\\"A5\\",\\"s\\":\\"sawtooth\\",\\"gain\\":0.29000691362123476,\\"attack\\":0.001,\\"decay\\":0.2,\\"sustain\\":0,\\"hcutoff\\":5974.128467049176,\\"cutoff\\":4000}",
-  "1/2 -> 7/8: {\\"n\\":\\"E5\\",\\"s\\":\\"sawtooth\\",\\"gain\\":0.29000691362123476,\\"attack\\":0.001,\\"decay\\":0.2,\\"sustain\\":0,\\"hcutoff\\":5974.128467049176,\\"cutoff\\":4000}",
-  "1/2 -> 7/8: {\\"n\\":\\"C#5\\",\\"s\\":\\"sawtooth\\",\\"gain\\":0.29000691362123476,\\"attack\\":0.001,\\"decay\\":0.2,\\"sustain\\":0,\\"hcutoff\\":5974.128467049176,\\"cutoff\\":4000}",
-  "7/8 -> 5/4: {\\"n\\":\\"A5\\",\\"s\\":\\"sawtooth\\",\\"gain\\":0.3107861971007485,\\"attack\\":0.001,\\"decay\\":0.2,\\"sustain\\":0,\\"hcutoff\\":5938.355801271282,\\"cutoff\\":4000}",
-  "7/8 -> 5/4: {\\"n\\":\\"C#5\\",\\"s\\":\\"sawtooth\\",\\"gain\\":0.3107861971007485,\\"attack\\":0.001,\\"decay\\":0.2,\\"sustain\\":0,\\"hcutoff\\":5938.355801271282,\\"cutoff\\":4000}",
-  "3/4 -> 9/8: {\\"n\\":\\"C#6\\",\\"s\\":\\"sawtooth\\",\\"gain\\":0.30398425548024827,\\"attack\\":0.001,\\"decay\\":0.2,\\"sustain\\":0,\\"hcutoff\\":5951.963201008076,\\"cutoff\\":4000}",
-  "3/4 -> 9/8: {\\"n\\":\\"E5\\",\\"s\\":\\"sawtooth\\",\\"gain\\":0.30398425548024827,\\"attack\\":0.001,\\"decay\\":0.2,\\"sustain\\":0,\\"hcutoff\\":5951.963201008076,\\"cutoff\\":4000}",
-  "0/1 -> 1/4: {\\"n\\":\\"F#5\\",\\"s\\":\\"sawtooth\\",\\"gain\\":0.2573601511491127,\\"attack\\":0.001,\\"decay\\":0.2,\\"sustain\\":0,\\"hcutoff\\":5999.143312438893,\\"cutoff\\":4000}",
-  "0/1 -> 1/4: {\\"n\\":\\"A4\\",\\"s\\":\\"sawtooth\\",\\"gain\\":0.2573601511491127,\\"attack\\":0.001,\\"decay\\":0.2,\\"sustain\\":0,\\"hcutoff\\":5999.143312438893,\\"cutoff\\":4000}",
-  "-1/8 -> 1/4: {\\"n\\":\\"A5\\",\\"s\\":\\"sawtooth\\",\\"gain\\":0.2573601511491127,\\"attack\\":0.001,\\"decay\\":0.2,\\"sustain\\":0,\\"hcutoff\\":5999.143312438893,\\"cutoff\\":4000}",
-  "-1/8 -> 1/4: {\\"n\\":\\"F#5\\",\\"s\\":\\"sawtooth\\",\\"gain\\":0.2573601511491127,\\"attack\\":0.001,\\"decay\\":0.2,\\"sustain\\":0,\\"hcutoff\\":5999.143312438893,\\"cutoff\\":4000}",
-  "-1/8 -> 1/4: {\\"n\\":\\"C#5\\",\\"s\\":\\"sawtooth\\",\\"gain\\":0.2573601511491127,\\"attack\\":0.001,\\"decay\\":0.2,\\"sustain\\":0,\\"hcutoff\\":5999.143312438893,\\"cutoff\\":4000}",
-  "-1/8 -> 1/4: {\\"n\\":\\"A4\\",\\"s\\":\\"sawtooth\\",\\"gain\\":0.2573601511491127,\\"attack\\":0.001,\\"decay\\":0.2,\\"sustain\\":0,\\"hcutoff\\":5999.143312438893,\\"cutoff\\":4000}",
-  "1/4 -> 1/2: {\\"n\\":\\"F#5\\",\\"s\\":\\"sawtooth\\",\\"gain\\":0.27200957116830426,\\"attack\\":0.001,\\"decay\\":0.2,\\"sustain\\":0,\\"hcutoff\\":5992.29333433282,\\"cutoff\\":4000}",
-  "1/4 -> 1/2: {\\"n\\":\\"A4\\",\\"s\\":\\"sawtooth\\",\\"gain\\":0.27200957116830426,\\"attack\\":0.001,\\"decay\\":0.2,\\"sustain\\":0,\\"hcutoff\\":5992.29333433282,\\"cutoff\\":4000}",
-  "-1/4 -> 1/8: {\\"n\\":\\"C#6\\",\\"s\\":\\"sawtooth\\",\\"gain\\":0.2536811842784369,\\"attack\\":0.001,\\"decay\\":0.2,\\"sustain\\":0,\\"hcutoff\\":5999.785818935017,\\"cutoff\\":4000}",
-  "-1/4 -> 1/8: {\\"n\\":\\"A5\\",\\"s\\":\\"sawtooth\\",\\"gain\\":0.2536811842784369,\\"attack\\":0.001,\\"decay\\":0.2,\\"sustain\\":0,\\"hcutoff\\":5999.785818935017,\\"cutoff\\":4000}",
-  "-1/4 -> 1/8: {\\"n\\":\\"E5\\",\\"s\\":\\"sawtooth\\",\\"gain\\":0.2536811842784369,\\"attack\\":0.001,\\"decay\\":0.2,\\"sustain\\":0,\\"hcutoff\\":5999.785818935017,\\"cutoff\\":4000}",
-  "-1/4 -> 1/8: {\\"n\\":\\"C#5\\",\\"s\\":\\"sawtooth\\",\\"gain\\":0.2536811842784369,\\"attack\\":0.001,\\"decay\\":0.2,\\"sustain\\":0,\\"hcutoff\\":5999.785818935017,\\"cutoff\\":4000}",
-  "1/8 -> 1/2: {\\"n\\":\\"A5\\",\\"s\\":\\"sawtooth\\",\\"gain\\":0.26836160127988246,\\"attack\\":0.001,\\"decay\\":0.2,\\"sustain\\":0,\\"hcutoff\\":5994.647308096509,\\"cutoff\\":4000}",
-  "1/8 -> 1/2: {\\"n\\":\\"F#5\\",\\"s\\":\\"sawtooth\\",\\"gain\\":0.26836160127988246,\\"attack\\":0.001,\\"decay\\":0.2,\\"sustain\\":0,\\"hcutoff\\":5994.647308096509,\\"cutoff\\":4000}",
-  "1/8 -> 1/2: {\\"n\\":\\"C#5\\",\\"s\\":\\"sawtooth\\",\\"gain\\":0.26836160127988246,\\"attack\\":0.001,\\"decay\\":0.2,\\"sustain\\":0,\\"hcutoff\\":5994.647308096509,\\"cutoff\\":4000}",
-  "1/8 -> 1/2: {\\"n\\":\\"A4\\",\\"s\\":\\"sawtooth\\",\\"gain\\":0.26836160127988246,\\"attack\\":0.001,\\"decay\\":0.2,\\"sustain\\":0,\\"hcutoff\\":5994.647308096509,\\"cutoff\\":4000}",
-  "1/2 -> 3/4: {\\"n\\":\\"F#5\\",\\"s\\":\\"sawtooth\\",\\"gain\\":0.28644702698548963,\\"attack\\":0.001,\\"decay\\":0.2,\\"sustain\\":0,\\"hcutoff\\":5978.612153434527,\\"cutoff\\":4000}",
-  "1/2 -> 3/4: {\\"n\\":\\"A4\\",\\"s\\":\\"sawtooth\\",\\"gain\\":0.28644702698548963,\\"attack\\":0.001,\\"decay\\":0.2,\\"sustain\\":0,\\"hcutoff\\":5978.612153434527,\\"cutoff\\":4000}",
-  "0/1 -> 1/4: bd",
-  "1/2 -> 3/4: bd",
-  "1/2 -> 1/1: sn",
-  "1/4 -> 1/2: hh3",
-  "3/4 -> 1/1: hh3",
-]
-`;
-
-exports[`renders shared tunes > shared tune 167 https://strudel.cc/?7C7fQJ7ENNd3 1`] = `
-[
-  "0/1 -> 1/4: {\\"s\\":\\"hh\\"}",
-  "1/4 -> 1/2: {\\"s\\":\\"hh\\"}",
-  "1/2 -> 3/4: {\\"s\\":\\"hh\\"}",
-  "3/4 -> 1/1: {\\"s\\":\\"hh\\"}",
-]
-`;
-
-exports[`renders shared tunes > shared tune 168 https://strudel.cc/?VGsjmHzmkMz0 1`] = `
-[
-  "1/4 -> 1/2: {\\"s\\":\\"bd\\"}",
-  "0/1 -> 1/4: {\\"s\\":\\"hh\\"}",
-  "1/2 -> 3/4: {\\"s\\":\\"hh\\"}",
-  "3/4 -> 1/1: {\\"s\\":\\"hh\\"}",
-]
-`;
-
-exports[`renders shared tunes > shared tune 169 https://strudel.cc/?4QSBDxgdgAIr 1`] = `
-[
-  "1/4 -> 1/2: {\\"s\\":\\"bd\\"}",
-  "0/1 -> 1/12: {\\"s\\":\\"hh\\"}",
-  "1/12 -> 1/6: {\\"s\\":\\"hh\\"}",
-  "1/6 -> 1/4: {\\"s\\":\\"hh\\"}",
-  "1/2 -> 7/12: {\\"s\\":\\"hh\\"}",
-  "7/12 -> 2/3: {\\"s\\":\\"hh\\"}",
-  "2/3 -> 3/4: {\\"s\\":\\"hh\\"}",
-  "3/4 -> 5/6: {\\"s\\":\\"hh\\"}",
-  "5/6 -> 11/12: {\\"s\\":\\"hh\\"}",
-  "11/12 -> 1/1: {\\"s\\":\\"hh\\"}",
-]
-`;
-
-exports[`renders shared tunes > shared tune 170 https://strudel.cc/?_1ClWbH9kSKC 1`] = `
-[
-  "0/1 -> 2/9: {\\"s\\":\\"hh\\"}",
-  "2/9 -> 4/9: {\\"s\\":\\"hh\\"}",
-  "4/9 -> 2/3: {\\"s\\":\\"hh\\"}",
-  "2/3 -> 7/9: {\\"s\\":\\"hh\\"}",
-  "7/9 -> 8/9: {\\"s\\":\\"hh\\"}",
-  "8/9 -> 1/1: {\\"s\\":\\"hh\\"}",
-]
-`;
-
-exports[`renders shared tunes > shared tune 171 https://strudel.cc/?nmwsMPG16O1L 1`] = `
-[
-  "0/1 -> 1/4: 83.8125",
-  "3/4 -> 1/1: 82.6875",
-  "0/1 -> 5/2: f3",
-  "3/8 -> 23/8: f3",
-  "3/4 -> 13/4: f3",
-  "0/1 -> 40/1: a1",
-  "1/2 -> 1/1: 2",
-]
-`;
-
-exports[`renders shared tunes > shared tune 172 https://strudel.cc/?DBp75NUfSxIn 1`] = `
-[
-  "0/1 -> 1/4: {\\"note\\":57}",
-  "0/1 -> 1/4: {\\"note\\":61}",
-  "0/1 -> 1/4: {\\"note\\":64}",
-  "3/4 -> 1/1: {\\"note\\":57}",
-  "3/4 -> 1/1: {\\"note\\":61}",
-  "3/4 -> 1/1: {\\"note\\":64}",
-  "0/1 -> 1/1: {\\"note\\":45}",
-  "1/4 -> 1/2: 2",
-  "3/4 -> 7/8: 2",
-  "0/1 -> 1/4: c1",
-  "1/2 -> 3/4: c1",
-  "1/2 -> 1/1: x",
-]
-`;
-
-exports[`renders shared tunes > shared tune 173 https://strudel.cc/?bdsxEcjr7fkg 1`] = `
-[
-  "0/1 -> 1/1: {\\"n\\":\\"a1\\",\\"decay\\":0.25,\\"sustain\\":0,\\"s\\":\\"sawtooth\\",\\"gain\\":0.4,\\"vowel\\":\\"a\\"}",
-  "-3/8 -> 1/8: {\\"n\\":52,\\"decay\\":0.25,\\"sustain\\":0,\\"s\\":\\"sawtooth\\",\\"gain\\":0.4,\\"vowel\\":\\"a\\"}",
-  "0/1 -> 1/1: {\\"n\\":33.05,\\"decay\\":0.25,\\"sustain\\":0,\\"s\\":\\"sawtooth\\",\\"gain\\":0.4,\\"vowel\\":\\"a\\"}",
-  "-3/8 -> 1/8: {\\"n\\":52.05,\\"decay\\":0.25,\\"sustain\\":0,\\"s\\":\\"sawtooth\\",\\"gain\\":0.4,\\"vowel\\":\\"a\\"}",
-]
-`;
-
-exports[`renders shared tunes > shared tune 174 https://strudel.cc/?IuUGlGkdiPX- 1`] = `
-[
-  "1/4 -> 1/2: {\\"s\\":\\"hh\\",\\"coarse\\":16,\\"speed\\":0.7285963821098448}",
-  "3/4 -> 1/1: {\\"s\\":\\"hh\\",\\"coarse\\":16,\\"shape\\":0.8,\\"speed\\":0.80224046928206}",
-  "0/1 -> 1/1: {\\"s\\":\\"bd\\",\\"coarse\\":16,\\"shape\\":0.8,\\"crush\\":8,\\"gain\\":0.2,\\"speed\\":0.7519542165100574}",
-  "1/2 -> 1/1: {\\"s\\":\\"sd\\",\\"coarse\\":16,\\"shape\\":0.8,\\"crush\\":8,\\"gain\\":0.2,\\"speed\\":0.7931522866332671}",
-  "1/2 -> 3/4: {\\"s\\":\\"hh\\",\\"coarse\\":16,\\"shape\\":0.8,\\"crush\\":8,\\"gain\\":0.2,\\"speed\\":0.77531205091027}",
-  "0/1 -> 1/8: {\\"note\\":\\"g1\\",\\"s\\":\\"sawtooth\\",\\"cutoff\\":622.4281788948767,\\"coarse\\":2,\\"speed\\":0.7002304945137069}",
-  "3/8 -> 1/2: {\\"note\\":\\"g1\\",\\"s\\":\\"sawtooth\\",\\"cutoff\\":753.073372946036,\\"coarse\\":4,\\"speed\\":0.7399036937955912}",
-  "3/4 -> 7/8: {\\"note\\":\\"g1\\",\\"s\\":\\"sawtooth\\",\\"cutoff\\":866.5386311808015,\\"coarse\\":7,\\"speed\\":0.798840922941892}",
-]
-`;
-
-exports[`renders shared tunes > shared tune 175 https://strudel.cc/?1QH3HPhZ1uad 1`] = `
-[
-  "0/1 -> 1/2: c1",
-  "1/2 -> 1/1: c1",
-  "1/2 -> 1/1: x",
-  "1/4 -> 1/2: c4",
-  "3/4 -> 1/1: c4",
-  "0/1 -> 1/2: B1",
-  "3/4 -> 1/1: B1",
-  "1/4 -> 13/44: A3",
-  "1/4 -> 13/44: C#4",
-  "1/4 -> 13/44: D4",
-  "1/4 -> 13/44: F#4",
-]
-`;
-
-exports[`renders shared tunes > shared tune 176 https://strudel.cc/?hxJZG7SS71HP 1`] = `
-[
-  "0/1 -> 1/2: {\\"note\\":\\"F3\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.49537037037037035}",
-  "1/4 -> 3/4: {\\"note\\":\\"F2\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.4398148148148148}",
-  "1/2 -> 1/1: {\\"note\\":\\"F3\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.49537037037037035}",
-  "1/2 -> 1/1: {\\"note\\":\\"Ab3\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5092592592592593}",
-  "1/2 -> 1/1: {\\"note\\":\\"C4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5277777777777778}",
-  "1/2 -> 1/1: {\\"note\\":\\"F2\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.4398148148148148}",
-]
-`;
-
-exports[`renders shared tunes > shared tune 177 https://strudel.cc/?EoVX7HjwHB8r 1`] = `
-[
-  "0/1 -> 1/2: Bb2",
-  "0/1 -> 1/2: F3",
-  "0/1 -> 1/2: Bb3",
-  "1/2 -> 1/1: Bb2",
-  "1/2 -> 1/1: Bb2",
-  "1/2 -> 1/1: F3",
-  "1/2 -> 1/1: F3",
-  "1/2 -> 1/1: Bb3",
-  "1/2 -> 1/1: Bb3",
-  "0/1 -> 1/2: Bb1",
-  "1/2 -> 5/8: Bb1",
-  "3/4 -> 7/8: Bb1",
-  "0/1 -> 1/2: c1",
-  "1/2 -> 1/1: c1",
-  "1/2 -> 1/1: c3",
-  "0/1 -> 1/4: C1",
-  "1/4 -> 1/2: C3",
-  "1/2 -> 3/4: C1",
-  "3/4 -> 1/1: C3",
-]
-`;
-
-exports[`renders shared tunes > shared tune 178 https://strudel.cc/?tVIePZOlbUFE 1`] = `
-[
-  "0/1 -> 1/4: {\\"note\\":\\"C2\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.41666666666666663}",
-  "0/1 -> 1/4: {\\"note\\":\\"C2\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.41666666666666663}",
-  "446428571428571/12500000000000000 -> 3571428571428571/12500000000000000: {\\"note\\":\\"A#4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5740740740740741}",
-  "446428571428571/12500000000000000 -> 3571428571428571/12500000000000000: {\\"note\\":\\"D#5\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5972222222222222}",
-  "446428571428571/12500000000000000 -> 3571428571428571/12500000000000000: {\\"note\\":\\"E5\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.6018518518518519}",
-  "446428571428571/12500000000000000 -> 3571428571428571/12500000000000000: {\\"note\\":\\"G#5\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.6203703703703703}",
-  "0/1 -> 1/4: {\\"note\\":\\"C2\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.41666666666666663}",
-  "446428571428571/12500000000000000 -> 3571428571428571/12500000000000000: {\\"note\\":\\"A#4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5740740740740741}",
-  "446428571428571/12500000000000000 -> 3571428571428571/12500000000000000: {\\"note\\":\\"D#5\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5972222222222222}",
-  "446428571428571/12500000000000000 -> 3571428571428571/12500000000000000: {\\"note\\":\\"E5\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.6018518518518519}",
-  "446428571428571/12500000000000000 -> 3571428571428571/12500000000000000: {\\"note\\":\\"G#5\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.6203703703703703}",
-  "0/1 -> 1/4: {\\"note\\":\\"C2\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.41666666666666663}",
-  "446428571428571/12500000000000000 -> 3571428571428571/12500000000000000: {\\"note\\":\\"A#4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5740740740740741}",
-  "446428571428571/12500000000000000 -> 3571428571428571/12500000000000000: {\\"note\\":\\"D#5\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5972222222222222}",
-  "446428571428571/12500000000000000 -> 3571428571428571/12500000000000000: {\\"note\\":\\"E5\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.6018518518518519}",
-  "446428571428571/12500000000000000 -> 3571428571428571/12500000000000000: {\\"note\\":\\"G#5\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.6203703703703703}",
-  "0/1 -> 1/4: {\\"note\\":\\"C2\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.41666666666666663}",
-  "446428571428571/12500000000000000 -> 3571428571428571/12500000000000000: {\\"note\\":\\"A#4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5740740740740741}",
-  "446428571428571/12500000000000000 -> 3571428571428571/12500000000000000: {\\"note\\":\\"D#5\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5972222222222222}",
-  "446428571428571/12500000000000000 -> 3571428571428571/12500000000000000: {\\"note\\":\\"E5\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.6018518518518519}",
-  "446428571428571/12500000000000000 -> 3571428571428571/12500000000000000: {\\"note\\":\\"G#5\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.6203703703703703}",
-  "0/1 -> 1/4: {\\"note\\":\\"C2\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.41666666666666663}",
-  "446428571428571/12500000000000000 -> 3571428571428571/12500000000000000: {\\"note\\":\\"A#4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5740740740740741}",
-  "446428571428571/12500000000000000 -> 3571428571428571/12500000000000000: {\\"note\\":\\"D#5\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5972222222222222}",
-  "446428571428571/12500000000000000 -> 3571428571428571/12500000000000000: {\\"note\\":\\"E5\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.6018518518518519}",
-  "446428571428571/12500000000000000 -> 3571428571428571/12500000000000000: {\\"note\\":\\"G#5\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.6203703703703703}",
-  "0/1 -> 1/4: {\\"note\\":\\"C2\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.41666666666666663}",
-  "446428571428571/12500000000000000 -> 3571428571428571/12500000000000000: {\\"note\\":\\"A#4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5740740740740741}",
-  "446428571428571/12500000000000000 -> 3571428571428571/12500000000000000: {\\"note\\":\\"D#5\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5972222222222222}",
-  "446428571428571/12500000000000000 -> 3571428571428571/12500000000000000: {\\"note\\":\\"E5\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.6018518518518519}",
-  "446428571428571/12500000000000000 -> 3571428571428571/12500000000000000: {\\"note\\":\\"G#5\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.6203703703703703}",
-  "0/1 -> 1/4: {\\"note\\":\\"C2\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.41666666666666663}",
-  "446428571428571/12500000000000000 -> 3571428571428571/12500000000000000: {\\"note\\":\\"A#4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5740740740740741}",
-  "446428571428571/12500000000000000 -> 3571428571428571/12500000000000000: {\\"note\\":\\"D#5\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5972222222222222}",
-  "446428571428571/12500000000000000 -> 3571428571428571/12500000000000000: {\\"note\\":\\"E5\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.6018518518518519}",
-  "446428571428571/12500000000000000 -> 3571428571428571/12500000000000000: {\\"note\\":\\"G#5\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.6203703703703703}",
-  "0/1 -> 1/4: {\\"note\\":\\"C2\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.41666666666666663}",
-  "1/8 -> 1/4: {\\"note\\":\\"C4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5277777777777778}",
-  "1/8 -> 1/4: {\\"note\\":\\"Eb4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5416666666666667}",
-  "446428571428571/12500000000000000 -> 3571428571428571/12500000000000000: {\\"note\\":\\"A#4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5740740740740741}",
-  "446428571428571/12500000000000000 -> 3571428571428571/12500000000000000: {\\"note\\":\\"D#5\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5972222222222222}",
-  "446428571428571/12500000000000000 -> 3571428571428571/12500000000000000: {\\"note\\":\\"E5\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.6018518518518519}",
-  "446428571428571/12500000000000000 -> 3571428571428571/12500000000000000: {\\"note\\":\\"G#5\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.6203703703703703}",
-  "0/1 -> 1/4: {\\"note\\":\\"C2\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.41666666666666663}",
-  "1/8 -> 1/4: {\\"note\\":\\"C4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5277777777777778}",
-  "1/8 -> 1/4: {\\"note\\":\\"Eb4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5416666666666667}",
-  "446428571428571/12500000000000000 -> 3571428571428571/12500000000000000: {\\"note\\":\\"A#4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5740740740740741}",
-  "446428571428571/12500000000000000 -> 3571428571428571/12500000000000000: {\\"note\\":\\"D#5\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5972222222222222}",
-  "446428571428571/12500000000000000 -> 3571428571428571/12500000000000000: {\\"note\\":\\"E5\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.6018518518518519}",
-  "446428571428571/12500000000000000 -> 3571428571428571/12500000000000000: {\\"note\\":\\"G#5\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.6203703703703703}",
-  "0/1 -> 1/4: {\\"note\\":\\"C2\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.41666666666666663}",
-  "1/8 -> 1/4: {\\"note\\":\\"C4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5277777777777778}",
-  "1/8 -> 1/4: {\\"note\\":\\"Eb4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5416666666666667}",
-  "446428571428571/12500000000000000 -> 3571428571428571/12500000000000000: {\\"note\\":\\"A#4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5740740740740741}",
-  "446428571428571/12500000000000000 -> 3571428571428571/12500000000000000: {\\"note\\":\\"D#5\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5972222222222222}",
-  "446428571428571/12500000000000000 -> 3571428571428571/12500000000000000: {\\"note\\":\\"E5\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.6018518518518519}",
-  "446428571428571/12500000000000000 -> 3571428571428571/12500000000000000: {\\"note\\":\\"G#5\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.6203703703703703}",
-  "0/1 -> 1/4: {\\"note\\":\\"C2\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.41666666666666663}",
-  "1/8 -> 1/4: {\\"note\\":\\"C4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5277777777777778}",
-  "1/8 -> 1/4: {\\"note\\":\\"Eb4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5416666666666667}",
-  "446428571428571/12500000000000000 -> 3571428571428571/12500000000000000: {\\"note\\":\\"A#4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5740740740740741}",
-  "446428571428571/12500000000000000 -> 3571428571428571/12500000000000000: {\\"note\\":\\"D#5\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5972222222222222}",
-  "446428571428571/12500000000000000 -> 3571428571428571/12500000000000000: {\\"note\\":\\"E5\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.6018518518518519}",
-  "446428571428571/12500000000000000 -> 3571428571428571/12500000000000000: {\\"note\\":\\"G#5\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.6203703703703703}",
-  "0/1 -> 1/4: {\\"note\\":\\"C2\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.41666666666666663}",
-  "1/8 -> 1/4: {\\"note\\":\\"C4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5277777777777778}",
-  "1/8 -> 1/4: {\\"note\\":\\"Eb4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5416666666666667}",
-  "446428571428571/12500000000000000 -> 3571428571428571/12500000000000000: {\\"note\\":\\"A#4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5740740740740741}",
-  "446428571428571/12500000000000000 -> 3571428571428571/12500000000000000: {\\"note\\":\\"D#5\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5972222222222222}",
-  "446428571428571/12500000000000000 -> 3571428571428571/12500000000000000: {\\"note\\":\\"E5\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.6018518518518519}",
-  "446428571428571/12500000000000000 -> 3571428571428571/12500000000000000: {\\"note\\":\\"G#5\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.6203703703703703}",
-  "0/1 -> 1/4: {\\"note\\":\\"C2\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.41666666666666663}",
-  "1/8 -> 1/4: {\\"note\\":\\"C4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5277777777777778}",
-  "1/8 -> 1/4: {\\"note\\":\\"Eb4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5416666666666667}",
-  "446428571428571/12500000000000000 -> 3571428571428571/12500000000000000: {\\"note\\":\\"A#4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5740740740740741}",
-  "446428571428571/12500000000000000 -> 3571428571428571/12500000000000000: {\\"note\\":\\"D#5\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5972222222222222}",
-  "446428571428571/12500000000000000 -> 3571428571428571/12500000000000000: {\\"note\\":\\"E5\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.6018518518518519}",
-  "446428571428571/12500000000000000 -> 3571428571428571/12500000000000000: {\\"note\\":\\"G#5\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.6203703703703703}",
-  "0/1 -> 1/4: {\\"note\\":\\"C2\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.41666666666666663}",
-  "1/8 -> 1/4: {\\"note\\":\\"C4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5277777777777778}",
-  "1/8 -> 1/4: {\\"note\\":\\"Eb4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5416666666666667}",
-  "446428571428571/12500000000000000 -> 3571428571428571/12500000000000000: {\\"note\\":\\"A#4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5740740740740741}",
-  "446428571428571/12500000000000000 -> 3571428571428571/12500000000000000: {\\"note\\":\\"D#5\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5972222222222222}",
-  "446428571428571/12500000000000000 -> 3571428571428571/12500000000000000: {\\"note\\":\\"E5\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.6018518518518519}",
-  "446428571428571/12500000000000000 -> 3571428571428571/12500000000000000: {\\"note\\":\\"G#5\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.6203703703703703}",
-  "0/1 -> 1/4: {\\"note\\":\\"C2\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.41666666666666663}",
-  "1/8 -> 1/4: {\\"note\\":\\"C4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5277777777777778}",
-  "1/8 -> 1/4: {\\"note\\":\\"Eb4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5416666666666667}",
-  "446428571428571/12500000000000000 -> 3571428571428571/12500000000000000: {\\"note\\":\\"A#4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5740740740740741}",
-  "446428571428571/12500000000000000 -> 3571428571428571/12500000000000000: {\\"note\\":\\"D#5\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5972222222222222}",
-  "446428571428571/12500000000000000 -> 3571428571428571/12500000000000000: {\\"note\\":\\"E5\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.6018518518518519}",
-  "446428571428571/12500000000000000 -> 3571428571428571/12500000000000000: {\\"note\\":\\"G#5\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.6203703703703703}",
-  "446428571428571/12500000000000000 -> 3571428571428571/12500000000000000: {\\"note\\":\\"A#4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5740740740740741}",
-  "446428571428571/12500000000000000 -> 3571428571428571/12500000000000000: {\\"note\\":\\"D#5\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5972222222222222}",
-  "446428571428571/12500000000000000 -> 3571428571428571/12500000000000000: {\\"note\\":\\"E5\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.6018518518518519}",
-  "446428571428571/12500000000000000 -> 3571428571428571/12500000000000000: {\\"note\\":\\"G#5\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.6203703703703703}",
-  "446428571428571/12500000000000000 -> 3571428571428571/12500000000000000: {\\"note\\":\\"A#4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5740740740740741}",
-  "446428571428571/12500000000000000 -> 3571428571428571/12500000000000000: {\\"note\\":\\"D#5\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5972222222222222}",
-  "446428571428571/12500000000000000 -> 3571428571428571/12500000000000000: {\\"note\\":\\"E5\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.6018518518518519}",
-  "446428571428571/12500000000000000 -> 3571428571428571/12500000000000000: {\\"note\\":\\"G#5\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.6203703703703703}",
-  "1/2 -> 3/4: {\\"note\\":\\"Bb3\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5185185185185186}",
-  "1/2 -> 3/4: {\\"note\\":\\"D4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.537037037037037}",
-  "1/2 -> 3/4: {\\"note\\":\\"Eb4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5416666666666667}",
-  "1/2 -> 3/4: {\\"note\\":\\"G4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5601851851851851}",
-  "1/2 -> 3/4: {\\"note\\":\\"C2\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.41666666666666663}",
-  "1/2 -> 5/8: {\\"note\\":\\"G4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5601851851851851}",
-  "1/2 -> 5/8: {\\"note\\":\\"Bb4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5740740740740741}",
-  "1/2 -> 3/4: {\\"note\\":\\"Bb3\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5185185185185186}",
-  "1/2 -> 3/4: {\\"note\\":\\"D4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.537037037037037}",
-  "1/2 -> 3/4: {\\"note\\":\\"Eb4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5416666666666667}",
-  "1/2 -> 3/4: {\\"note\\":\\"G4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5601851851851851}",
-  "1/2 -> 3/4: {\\"note\\":\\"C2\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.41666666666666663}",
-  "1/2 -> 5/8: {\\"note\\":\\"G4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5601851851851851}",
-  "1/2 -> 5/8: {\\"note\\":\\"Bb4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5740740740740741}",
-  "1/2 -> 3/4: {\\"note\\":\\"Bb3\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5185185185185186}",
-  "1/2 -> 3/4: {\\"note\\":\\"D4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.537037037037037}",
-  "1/2 -> 3/4: {\\"note\\":\\"Eb4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5416666666666667}",
-  "1/2 -> 3/4: {\\"note\\":\\"G4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5601851851851851}",
-  "1/2 -> 3/4: {\\"note\\":\\"C2\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.41666666666666663}",
-  "1/2 -> 5/8: {\\"note\\":\\"G4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5601851851851851}",
-  "1/2 -> 5/8: {\\"note\\":\\"Bb4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5740740740740741}",
-  "1/2 -> 3/4: {\\"note\\":\\"Bb3\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5185185185185186}",
-  "1/2 -> 3/4: {\\"note\\":\\"D4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.537037037037037}",
-  "1/2 -> 3/4: {\\"note\\":\\"Eb4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5416666666666667}",
-  "1/2 -> 3/4: {\\"note\\":\\"G4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5601851851851851}",
-  "1/2 -> 3/4: {\\"note\\":\\"C2\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.41666666666666663}",
-  "1/2 -> 5/8: {\\"note\\":\\"G4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5601851851851851}",
-  "1/2 -> 5/8: {\\"note\\":\\"Bb4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5740740740740741}",
-  "1/2 -> 3/4: {\\"note\\":\\"Bb3\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5185185185185186}",
-  "1/2 -> 3/4: {\\"note\\":\\"D4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.537037037037037}",
-  "1/2 -> 3/4: {\\"note\\":\\"Eb4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5416666666666667}",
-  "1/2 -> 3/4: {\\"note\\":\\"G4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5601851851851851}",
-  "1/2 -> 3/4: {\\"note\\":\\"C2\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.41666666666666663}",
-  "1/2 -> 5/8: {\\"note\\":\\"G4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5601851851851851}",
-  "1/2 -> 5/8: {\\"note\\":\\"Bb4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5740740740740741}",
-  "1/2 -> 3/4: {\\"note\\":\\"Bb3\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5185185185185186}",
-  "1/2 -> 3/4: {\\"note\\":\\"D4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.537037037037037}",
-  "1/2 -> 3/4: {\\"note\\":\\"Eb4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5416666666666667}",
-  "1/2 -> 3/4: {\\"note\\":\\"G4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5601851851851851}",
-  "1/2 -> 3/4: {\\"note\\":\\"C2\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.41666666666666663}",
-  "1/2 -> 5/8: {\\"note\\":\\"G4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5601851851851851}",
-  "1/2 -> 5/8: {\\"note\\":\\"Bb4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5740740740740741}",
-  "1/2 -> 3/4: {\\"note\\":\\"Bb3\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5185185185185186}",
-  "1/2 -> 3/4: {\\"note\\":\\"D4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.537037037037037}",
-  "1/2 -> 3/4: {\\"note\\":\\"Eb4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5416666666666667}",
-  "1/2 -> 3/4: {\\"note\\":\\"G4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5601851851851851}",
-  "1/2 -> 3/4: {\\"note\\":\\"C2\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.41666666666666663}",
-  "1/2 -> 5/8: {\\"note\\":\\"G4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5601851851851851}",
-  "1/2 -> 5/8: {\\"note\\":\\"Bb4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5740740740740741}",
-  "1/2 -> 3/4: {\\"note\\":\\"Bb3\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5185185185185186}",
-  "1/2 -> 3/4: {\\"note\\":\\"D4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.537037037037037}",
-  "1/2 -> 3/4: {\\"note\\":\\"Eb4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5416666666666667}",
-  "1/2 -> 3/4: {\\"note\\":\\"G4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5601851851851851}",
-  "1/2 -> 3/4: {\\"note\\":\\"C2\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.41666666666666663}",
-  "1/2 -> 5/8: {\\"note\\":\\"G4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5601851851851851}",
-  "1/2 -> 5/8: {\\"note\\":\\"Bb4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5740740740740741}",
-  "1/2 -> 3/4: {\\"note\\":\\"Bb3\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5185185185185186}",
-  "1/2 -> 3/4: {\\"note\\":\\"D4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.537037037037037}",
-  "1/2 -> 3/4: {\\"note\\":\\"Eb4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5416666666666667}",
-  "1/2 -> 3/4: {\\"note\\":\\"G4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5601851851851851}",
-  "1/2 -> 3/4: {\\"note\\":\\"C2\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.41666666666666663}",
-  "1/2 -> 3/4: {\\"note\\":\\"Bb3\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5185185185185186}",
-  "1/2 -> 3/4: {\\"note\\":\\"D4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.537037037037037}",
-  "1/2 -> 3/4: {\\"note\\":\\"Eb4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5416666666666667}",
-  "1/2 -> 3/4: {\\"note\\":\\"G4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5601851851851851}",
-  "1/2 -> 3/4: {\\"note\\":\\"C2\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.41666666666666663}",
-  "1/2 -> 3/4: {\\"note\\":\\"Bb3\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5185185185185186}",
-  "1/2 -> 3/4: {\\"note\\":\\"D4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.537037037037037}",
-  "1/2 -> 3/4: {\\"note\\":\\"Eb4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5416666666666667}",
-  "1/2 -> 3/4: {\\"note\\":\\"G4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5601851851851851}",
-  "1/2 -> 3/4: {\\"note\\":\\"C2\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.41666666666666663}",
-  "1/2 -> 3/4: {\\"note\\":\\"Bb3\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5185185185185186}",
-  "1/2 -> 3/4: {\\"note\\":\\"D4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.537037037037037}",
-  "1/2 -> 3/4: {\\"note\\":\\"Eb4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5416666666666667}",
-  "1/2 -> 3/4: {\\"note\\":\\"G4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5601851851851851}",
-  "1/2 -> 3/4: {\\"note\\":\\"C2\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.41666666666666663}",
-  "1/2 -> 3/4: {\\"note\\":\\"Bb3\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5185185185185186}",
-  "1/2 -> 3/4: {\\"note\\":\\"D4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.537037037037037}",
-  "1/2 -> 3/4: {\\"note\\":\\"Eb4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5416666666666667}",
-  "1/2 -> 3/4: {\\"note\\":\\"G4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5601851851851851}",
-  "1/2 -> 3/4: {\\"note\\":\\"C2\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.41666666666666663}",
-  "1/2 -> 3/4: {\\"note\\":\\"Bb3\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5185185185185186}",
-  "1/2 -> 3/4: {\\"note\\":\\"D4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.537037037037037}",
-  "1/2 -> 3/4: {\\"note\\":\\"Eb4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5416666666666667}",
-  "1/2 -> 3/4: {\\"note\\":\\"G4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5601851851851851}",
-  "1/2 -> 3/4: {\\"note\\":\\"C2\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.41666666666666663}",
-  "1/2 -> 3/4: {\\"note\\":\\"Bb3\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5185185185185186}",
-  "1/2 -> 3/4: {\\"note\\":\\"D4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.537037037037037}",
-  "1/2 -> 3/4: {\\"note\\":\\"Eb4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5416666666666667}",
-  "1/2 -> 3/4: {\\"note\\":\\"G4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5601851851851851}",
-  "1/2 -> 3/4: {\\"note\\":\\"C2\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.41666666666666663}",
-  "1/2 -> 3/4: {\\"note\\":\\"Bb3\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5185185185185186}",
-  "1/2 -> 3/4: {\\"note\\":\\"D4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.537037037037037}",
-  "1/2 -> 3/4: {\\"note\\":\\"Eb4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5416666666666667}",
-  "1/2 -> 3/4: {\\"note\\":\\"G4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5601851851851851}",
-  "1/2 -> 3/4: {\\"note\\":\\"C2\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.41666666666666663}",
-  "3/4 -> 7/8: {\\"note\\":\\"C4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5277777777777778}",
-  "3/4 -> 7/8: {\\"note\\":\\"Eb4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5416666666666667}",
-  "3/4 -> 7/8: {\\"note\\":\\"C4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5277777777777778}",
-  "3/4 -> 7/8: {\\"note\\":\\"Eb4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5416666666666667}",
-  "2455357142857143/3125000000000000 -> 3236607142857143/3125000000000000: {\\"note\\":\\"Bb4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5740740740740741}",
-  "2455357142857143/3125000000000000 -> 3236607142857143/3125000000000000: {\\"note\\":\\"D5\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5925925925925926}",
-  "2455357142857143/3125000000000000 -> 3236607142857143/3125000000000000: {\\"note\\":\\"Eb5\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5972222222222222}",
-  "2455357142857143/3125000000000000 -> 3236607142857143/3125000000000000: {\\"note\\":\\"G5\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.6157407407407407}",
-  "3/4 -> 7/8: {\\"note\\":\\"C4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5277777777777778}",
-  "3/4 -> 7/8: {\\"note\\":\\"Eb4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5416666666666667}",
-  "2455357142857143/3125000000000000 -> 3236607142857143/3125000000000000: {\\"note\\":\\"Bb4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5740740740740741}",
-  "2455357142857143/3125000000000000 -> 3236607142857143/3125000000000000: {\\"note\\":\\"D5\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5925925925925926}",
-  "2455357142857143/3125000000000000 -> 3236607142857143/3125000000000000: {\\"note\\":\\"Eb5\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5972222222222222}",
-  "2455357142857143/3125000000000000 -> 3236607142857143/3125000000000000: {\\"note\\":\\"G5\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.6157407407407407}",
-  "3/4 -> 7/8: {\\"note\\":\\"C4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5277777777777778}",
-  "3/4 -> 7/8: {\\"note\\":\\"Eb4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5416666666666667}",
-  "2455357142857143/3125000000000000 -> 3236607142857143/3125000000000000: {\\"note\\":\\"Bb4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5740740740740741}",
-  "2455357142857143/3125000000000000 -> 3236607142857143/3125000000000000: {\\"note\\":\\"D5\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5925925925925926}",
-  "2455357142857143/3125000000000000 -> 3236607142857143/3125000000000000: {\\"note\\":\\"Eb5\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5972222222222222}",
-  "2455357142857143/3125000000000000 -> 3236607142857143/3125000000000000: {\\"note\\":\\"G5\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.6157407407407407}",
-  "3/4 -> 7/8: {\\"note\\":\\"C4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5277777777777778}",
-  "3/4 -> 7/8: {\\"note\\":\\"Eb4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5416666666666667}",
-  "2455357142857143/3125000000000000 -> 3236607142857143/3125000000000000: {\\"note\\":\\"Bb4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5740740740740741}",
-  "2455357142857143/3125000000000000 -> 3236607142857143/3125000000000000: {\\"note\\":\\"D5\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5925925925925926}",
-  "2455357142857143/3125000000000000 -> 3236607142857143/3125000000000000: {\\"note\\":\\"Eb5\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5972222222222222}",
-  "2455357142857143/3125000000000000 -> 3236607142857143/3125000000000000: {\\"note\\":\\"G5\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.6157407407407407}",
-  "3/4 -> 7/8: {\\"note\\":\\"C4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5277777777777778}",
-  "3/4 -> 7/8: {\\"note\\":\\"Eb4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5416666666666667}",
-  "2455357142857143/3125000000000000 -> 3236607142857143/3125000000000000: {\\"note\\":\\"Bb4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5740740740740741}",
-  "2455357142857143/3125000000000000 -> 3236607142857143/3125000000000000: {\\"note\\":\\"D5\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5925925925925926}",
-  "2455357142857143/3125000000000000 -> 3236607142857143/3125000000000000: {\\"note\\":\\"Eb5\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5972222222222222}",
-  "2455357142857143/3125000000000000 -> 3236607142857143/3125000000000000: {\\"note\\":\\"G5\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.6157407407407407}",
-  "3/4 -> 7/8: {\\"note\\":\\"C4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5277777777777778}",
-  "3/4 -> 7/8: {\\"note\\":\\"Eb4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5416666666666667}",
-  "2455357142857143/3125000000000000 -> 3236607142857143/3125000000000000: {\\"note\\":\\"Bb4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5740740740740741}",
-  "2455357142857143/3125000000000000 -> 3236607142857143/3125000000000000: {\\"note\\":\\"D5\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5925925925925926}",
-  "2455357142857143/3125000000000000 -> 3236607142857143/3125000000000000: {\\"note\\":\\"Eb5\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5972222222222222}",
-  "2455357142857143/3125000000000000 -> 3236607142857143/3125000000000000: {\\"note\\":\\"G5\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.6157407407407407}",
-  "3/4 -> 7/8: {\\"note\\":\\"C4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5277777777777778}",
-  "3/4 -> 7/8: {\\"note\\":\\"Eb4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5416666666666667}",
-  "2455357142857143/3125000000000000 -> 3236607142857143/3125000000000000: {\\"note\\":\\"Bb4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5740740740740741}",
-  "2455357142857143/3125000000000000 -> 3236607142857143/3125000000000000: {\\"note\\":\\"D5\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5925925925925926}",
-  "2455357142857143/3125000000000000 -> 3236607142857143/3125000000000000: {\\"note\\":\\"Eb5\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5972222222222222}",
-  "2455357142857143/3125000000000000 -> 3236607142857143/3125000000000000: {\\"note\\":\\"G5\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.6157407407407407}",
-  "2455357142857143/3125000000000000 -> 3236607142857143/3125000000000000: {\\"note\\":\\"Bb4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5740740740740741}",
-  "2455357142857143/3125000000000000 -> 3236607142857143/3125000000000000: {\\"note\\":\\"D5\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5925925925925926}",
-  "2455357142857143/3125000000000000 -> 3236607142857143/3125000000000000: {\\"note\\":\\"Eb5\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5972222222222222}",
-  "2455357142857143/3125000000000000 -> 3236607142857143/3125000000000000: {\\"note\\":\\"G5\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.6157407407407407}",
-  "2455357142857143/3125000000000000 -> 3236607142857143/3125000000000000: {\\"note\\":\\"Bb4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5740740740740741}",
-  "2455357142857143/3125000000000000 -> 3236607142857143/3125000000000000: {\\"note\\":\\"D5\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5925925925925926}",
-  "2455357142857143/3125000000000000 -> 3236607142857143/3125000000000000: {\\"note\\":\\"Eb5\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5972222222222222}",
-  "2455357142857143/3125000000000000 -> 3236607142857143/3125000000000000: {\\"note\\":\\"G5\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.6157407407407407}",
-  "2455357142857143/3125000000000000 -> 3236607142857143/3125000000000000: {\\"note\\":\\"Bb4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5740740740740741}",
-  "2455357142857143/3125000000000000 -> 3236607142857143/3125000000000000: {\\"note\\":\\"D5\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5925925925925926}",
-  "2455357142857143/3125000000000000 -> 3236607142857143/3125000000000000: {\\"note\\":\\"Eb5\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5972222222222222}",
-  "2455357142857143/3125000000000000 -> 3236607142857143/3125000000000000: {\\"note\\":\\"G5\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.6157407407407407}",
-  "2455357142857143/3125000000000000 -> 3236607142857143/3125000000000000: {\\"note\\":\\"Bb4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5740740740740741}",
-  "2455357142857143/3125000000000000 -> 3236607142857143/3125000000000000: {\\"note\\":\\"D5\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5925925925925926}",
-  "2455357142857143/3125000000000000 -> 3236607142857143/3125000000000000: {\\"note\\":\\"Eb5\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5972222222222222}",
-  "2455357142857143/3125000000000000 -> 3236607142857143/3125000000000000: {\\"note\\":\\"G5\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.6157407407407407}",
-  "2455357142857143/3125000000000000 -> 3236607142857143/3125000000000000: {\\"note\\":\\"Bb4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5740740740740741}",
-  "2455357142857143/3125000000000000 -> 3236607142857143/3125000000000000: {\\"note\\":\\"D5\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5925925925925926}",
-  "2455357142857143/3125000000000000 -> 3236607142857143/3125000000000000: {\\"note\\":\\"Eb5\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5972222222222222}",
-  "2455357142857143/3125000000000000 -> 3236607142857143/3125000000000000: {\\"note\\":\\"G5\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.6157407407407407}",
-  "2455357142857143/3125000000000000 -> 3236607142857143/3125000000000000: {\\"note\\":\\"Bb4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5740740740740741}",
-  "2455357142857143/3125000000000000 -> 3236607142857143/3125000000000000: {\\"note\\":\\"D5\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5925925925925926}",
-  "2455357142857143/3125000000000000 -> 3236607142857143/3125000000000000: {\\"note\\":\\"Eb5\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5972222222222222}",
-  "2455357142857143/3125000000000000 -> 3236607142857143/3125000000000000: {\\"note\\":\\"G5\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.6157407407407407}",
-  "2455357142857143/3125000000000000 -> 3236607142857143/3125000000000000: {\\"note\\":\\"Bb4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5740740740740741}",
-  "2455357142857143/3125000000000000 -> 3236607142857143/3125000000000000: {\\"note\\":\\"Bb4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5740740740740741}",
-  "2455357142857143/3125000000000000 -> 3236607142857143/3125000000000000: {\\"note\\":\\"D5\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5925925925925926}",
-  "2455357142857143/3125000000000000 -> 3236607142857143/3125000000000000: {\\"note\\":\\"D5\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5925925925925926}",
-  "2455357142857143/3125000000000000 -> 3236607142857143/3125000000000000: {\\"note\\":\\"Eb5\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5972222222222222}",
-  "2455357142857143/3125000000000000 -> 3236607142857143/3125000000000000: {\\"note\\":\\"Eb5\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5972222222222222}",
-  "2455357142857143/3125000000000000 -> 3236607142857143/3125000000000000: {\\"note\\":\\"G5\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.6157407407407407}",
-  "2455357142857143/3125000000000000 -> 3236607142857143/3125000000000000: {\\"note\\":\\"G5\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.6157407407407407}",
-]
-`;
-
-exports[`renders shared tunes > shared tune 179 https://strudel.cc/?P_Fi2yRHrXHj 1`] = `
-[
-  "0/1 -> 1/8: {\\"freq\\":55.33,\\"s\\":\\"sawtooth\\"}",
-  "0/1 -> 1/8: {\\"freq\\":54.725,\\"s\\":\\"sawtooth\\"}",
-  "3/8 -> 1/2: {\\"freq\\":110.66,\\"s\\":\\"sawtooth\\"}",
-  "3/8 -> 1/2: {\\"freq\\":109.45,\\"s\\":\\"sawtooth\\"}",
-  "3/8 -> 1/2: {\\"freq\\":165.99,\\"s\\":\\"sawtooth\\"}",
-  "3/8 -> 1/2: {\\"freq\\":164.175,\\"s\\":\\"sawtooth\\"}",
-  "3/4 -> 7/8: {\\"freq\\":221.32,\\"s\\":\\"sawtooth\\"}",
-  "3/4 -> 7/8: {\\"freq\\":218.9,\\"s\\":\\"sawtooth\\"}",
-  "3/4 -> 7/8: {\\"freq\\":276.65,\\"s\\":\\"sawtooth\\"}",
-  "3/4 -> 7/8: {\\"freq\\":273.625,\\"s\\":\\"sawtooth\\"}",
-  "1/8 -> 59/400: {\\"freq\\":440,\\"gain\\":0.206361035083454,\\"s\\":\\"sawtooth\\"}",
-  "1/4 -> 109/400: {\\"freq\\":440,\\"gain\\":0.2360775017902398,\\"s\\":\\"sawtooth\\"}",
-  "1/2 -> 209/400: {\\"freq\\":440,\\"gain\\":0.3624358861780295,\\"s\\":\\"sawtooth\\"}",
-  "5/8 -> 259/400: {\\"freq\\":440,\\"gain\\":0.4316442271311083,\\"s\\":\\"sawtooth\\"}",
-  "7/8 -> 359/400: {\\"freq\\":440,\\"gain\\":0.5078844826422588,\\"s\\":\\"sawtooth\\"}",
-  "0/1 -> 1/8: {\\"s\\":\\"bd\\"}",
-  "3/8 -> 1/2: {\\"s\\":\\"bd\\"}",
-  "3/4 -> 7/8: {\\"s\\":\\"bd\\"}",
-  "0/1 -> 1/4: {\\"s\\":\\"hh\\"}",
-  "1/4 -> 1/2: {\\"s\\":\\"hh\\"}",
-  "1/2 -> 3/4: {\\"s\\":\\"hh\\"}",
-  "3/4 -> 1/1: {\\"s\\":\\"hh\\"}",
-  "1/2 -> 1/1: {\\"s\\":\\"sd\\"}",
-]
-`;
-
-exports[`renders shared tunes > shared tune 180 https://strudel.cc/?brh8FpBbbH-- 1`] = `
-[
-  "0/1 -> 1/1: {\\"s\\":\\"bd\\"}",
-  "1/2 -> 1/1: {\\"s\\":\\"sd\\"}",
-  "1/4 -> 1/2: {\\"s\\":\\"hh\\"}",
-  "1/2 -> 3/4: {\\"s\\":\\"hh\\"}",
-  "3/4 -> 1/1: {\\"s\\":\\"hh\\"}",
-  "0/1 -> 1/2: {\\"note\\":\\"A2\\",\\"s\\":\\"sawtooth\\"}",
-  "1/2 -> 3/4: {\\"note\\":\\"G2\\",\\"s\\":\\"sawtooth\\"}",
-  "3/4 -> 1/1: {\\"note\\":\\"F2\\",\\"s\\":\\"sawtooth\\"}",
-]
-`;
-
-exports[`renders shared tunes > shared tune 181 https://strudel.cc/?Uw7K4l1pIVUt 1`] = `
-[
-  "0/1 -> 1/3: bd",
-  "1/3 -> 2/3: hh",
-  "2/3 -> 1/1: sn",
-  "0/1 -> 1/20: G4",
-  "1/6 -> 13/60: G4",
-  "1/3 -> 23/60: B3",
-  "1/2 -> 11/20: B3",
-  "1/3 -> 23/60: E4",
-  "1/2 -> 11/20: E4",
-  "2/3 -> 43/60: G3",
-  "5/6 -> 53/60: G3",
-  "0/1 -> 4/3: c2",
-  "0/1 -> 4/3: c2",
-]
-`;
-
-exports[`renders shared tunes > shared tune 182 https://strudel.cc/?dhBbMccpPgg8 1`] = `
-[
-  "0/1 -> 1/2: A3",
-  "1/2 -> 3/4: D4",
-  "3/4 -> 1/1: E4",
-  "0/1 -> 1/2: D4",
-  "1/2 -> 3/4: G4",
-  "3/4 -> 1/1: A4",
-]
-`;
-
-exports[`renders shared tunes > shared tune 183 https://strudel.cc/?U5sIL_DhqTip 1`] = `
-[
-  "-1666666666666667/7500000000000000 -> 2/9: G3",
-  "0/1 -> 4/3: E3",
-  "0/1 -> 4/3: A3",
-  "0/1 -> 4/3: D4",
-  "0/1 -> 4/3: G4",
-  "0/1 -> 4/3: B4",
-  "0/1 -> 2/3: D2",
-  "2/3 -> 7/9: D2",
-  "8/9 -> 1/1: D2",
-  "0/1 -> 2/9: c1",
-  "2/9 -> 4/9: c1",
-  "4/9 -> 2/3: c1",
-  "2/3 -> 8/9: c1",
-  "8/9 -> 10/9: c1",
-  "2/3 -> 4/3: c3",
-  "0/1 -> 10/9: c1",
-  "0/1 -> 16/3: F3",
-  "0/1 -> 16/3: A3",
-]
-`;
-
-exports[`renders shared tunes > shared tune 184 https://strudel.cc/?irMD_KH0ICbf 1`] = `
-[
-  "0/1 -> 27/40: {\\"note\\":\\"Db4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5324074074074074}",
-  "0/1 -> 27/40: {\\"note\\":\\"Ab4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5648148148148149}",
-  "0/1 -> 27/40: {\\"note\\":\\"Db4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5324074074074074}",
-  "0/1 -> 27/40: {\\"note\\":\\"Ab4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5648148148148149}",
-  "0/1 -> 27/40: {\\"note\\":\\"Db4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5324074074074074}",
-  "0/1 -> 27/40: {\\"note\\":\\"Ab4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5648148148148149}",
-  "0/1 -> 27/40: {\\"note\\":\\"D4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.537037037037037}",
-  "0/1 -> 27/40: {\\"note\\":\\"A4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5694444444444444}",
-  "0/1 -> 27/40: {\\"note\\":\\"D4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.537037037037037}",
-  "0/1 -> 27/40: {\\"note\\":\\"A4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5694444444444444}",
-  "0/1 -> 27/40: {\\"note\\":\\"D4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.537037037037037}",
-  "0/1 -> 27/40: {\\"note\\":\\"A4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5694444444444444}",
-  "0/1 -> 27/40: {\\"note\\":\\"D4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.537037037037037}",
-  "0/1 -> 27/40: {\\"note\\":\\"A4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5694444444444444}",
-  "0/1 -> 27/40: {\\"note\\":\\"D4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.537037037037037}",
-  "0/1 -> 27/40: {\\"note\\":\\"A4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5694444444444444}",
-  "0/1 -> 27/40: {\\"note\\":\\"D4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.537037037037037}",
-  "0/1 -> 27/40: {\\"note\\":\\"A4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5694444444444444}",
-  "0/1 -> 27/40: {\\"note\\":\\"Eb4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5416666666666667}",
-  "0/1 -> 27/40: {\\"note\\":\\"Bb4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5740740740740741}",
-  "0/1 -> 27/40: {\\"note\\":\\"Eb4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5416666666666667}",
-  "0/1 -> 27/40: {\\"note\\":\\"Bb4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5740740740740741}",
-  "0/1 -> 27/40: {\\"note\\":\\"Eb4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5416666666666667}",
-  "0/1 -> 27/40: {\\"note\\":\\"Bb4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5740740740740741}",
-  "0/1 -> 27/40: {\\"note\\":\\"Eb4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5416666666666667}",
-  "0/1 -> 27/40: {\\"note\\":\\"Bb4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5740740740740741}",
-  "0/1 -> 27/40: {\\"note\\":\\"Eb4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5416666666666667}",
-  "0/1 -> 27/40: {\\"note\\":\\"Bb4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5740740740740741}",
-  "0/1 -> 27/40: {\\"note\\":\\"Eb4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5416666666666667}",
-  "0/1 -> 27/40: {\\"note\\":\\"Bb4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5740740740740741}",
-  "0/1 -> 171/160: {\\"note\\":\\"Bb2\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.46296296296296297}",
-  "3/4 -> 33/40: {\\"note\\":\\"Eb4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5416666666666667}",
-  "3/4 -> 33/40: {\\"note\\":\\"Bb4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5740740740740741}",
-  "3/4 -> 33/40: {\\"note\\":\\"Eb4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5416666666666667}",
-  "3/4 -> 33/40: {\\"note\\":\\"Bb4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5740740740740741}",
-  "0/1 -> 171/160: {\\"note\\":\\"Bb2\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.46296296296296297}",
-]
-`;
-
-exports[`renders shared tunes > shared tune 185 https://strudel.cc/?A6Mqjuhn1Wpr 1`] = `[]`;
-
-exports[`renders shared tunes > shared tune 186 https://strudel.cc/?2-JbRPIoRj7X 1`] = `[]`;
-
-exports[`renders shared tunes > shared tune 187 https://strudel.cc/?wVDgPVVgbrSK 1`] = `[]`;
-
-exports[`renders shared tunes > shared tune 188 https://strudel.cc/?z0OoCML7DPQb 1`] = `
-[
-  "0/1 -> 1/1: bd",
-  "0/1 -> 1/4: hh",
-  "1/4 -> 1/2: hh",
-  "1/2 -> 3/4: hh",
-  "3/4 -> 1/1: hh",
-  "1/2 -> 1/1: sn",
-]
-`;
-
-exports[`renders shared tunes > shared tune 189 https://strudel.cc/?SWekIFXDlrLE 1`] = `
-[
-  "0/1 -> 1/4: {\\"note\\":\\"e4\\"}",
-  "1/4 -> 1/2: {\\"note\\":\\"c4\\"}",
-  "1/2 -> 3/4: {\\"note\\":\\"a4\\"}",
-  "3/4 -> 1/1: {\\"note\\":\\"c4\\"}",
-  "0/1 -> 1/2: {\\"note\\":\\"c1\\"}",
-  "1/2 -> 1/1: {\\"note\\":\\"c1\\"}",
-  "1/2 -> 1/1: {\\"note\\":\\"x\\"}",
-  "1/4 -> 1/2: {\\"note\\":\\"c4\\"}",
-  "3/4 -> 1/1: {\\"note\\":\\"c4\\"}",
-  "0/1 -> 2/1: {\\"note\\":\\"B1\\"}",
-  "0/1 -> 4/1: {\\"note\\":\\"A3\\"}",
-  "0/1 -> 4/1: {\\"note\\":\\"C4\\"}",
-  "0/1 -> 4/1: {\\"note\\":\\"E4\\"}",
-  "0/1 -> 4/1: {\\"note\\":\\"A5\\"}",
-]
-`;
-
-exports[`renders shared tunes > shared tune 190 https://strudel.cc/?70M98P_ZVSJe 1`] = `
-[
-  "0/1 -> 1/2: {\\"s\\":\\"hh\\",\\"begin\\":0,\\"end\\":0.25}",
-  "1/2 -> 1/1: {\\"s\\":\\"hh\\",\\"begin\\":0.25,\\"end\\":0.5}",
-]
-`;
-
-exports[`renders shared tunes > shared tune 191 https://strudel.cc/?SB-hFm0uROHV 1`] = `
-[
-  "0/1 -> 1/1: {\\"s\\":\\"hh\\"}",
-]
-`;
-
-exports[`renders shared tunes > shared tune 192 https://strudel.cc/?t2KXoS_qssjD 1`] = `
-[
-  "0/1 -> 1/4: {\\"s\\":\\"p\\",\\"begin\\":0,\\"end\\":0.0078125,\\"speed\\":0.03125,\\"unit\\":\\"c\\",\\"pan\\":0,\\"shape\\":0.5}",
-  "1/4 -> 1/2: {\\"s\\":\\"p\\",\\"begin\\":0.0078125,\\"end\\":0.015625,\\"speed\\":0.03125,\\"unit\\":\\"c\\",\\"pan\\":0,\\"shape\\":0.5}",
-  "1/2 -> 3/4: {\\"s\\":\\"p\\",\\"begin\\":0.015625,\\"end\\":0.0234375,\\"speed\\":0.03125,\\"unit\\":\\"c\\",\\"pan\\":0,\\"shape\\":0.5}",
-  "3/4 -> 1/1: {\\"s\\":\\"p\\",\\"begin\\":0.0234375,\\"end\\":0.03125,\\"speed\\":0.03125,\\"unit\\":\\"c\\",\\"pan\\":0,\\"shape\\":0.5}",
-  "3/4 -> 1/1: {\\"s\\":\\"p\\",\\"begin\\":0,\\"end\\":0.0078125,\\"speed\\":0.03125,\\"unit\\":\\"c\\",\\"pan\\":1,\\"shape\\":0.5}",
-  "1/2 -> 3/4: {\\"s\\":\\"p\\",\\"begin\\":0.0078125,\\"end\\":0.015625,\\"speed\\":0.03125,\\"unit\\":\\"c\\",\\"pan\\":1,\\"shape\\":0.5}",
-  "1/4 -> 1/2: {\\"s\\":\\"p\\",\\"begin\\":0.015625,\\"end\\":0.0234375,\\"speed\\":0.03125,\\"unit\\":\\"c\\",\\"pan\\":1,\\"shape\\":0.5}",
-  "0/1 -> 1/4: {\\"s\\":\\"p\\",\\"begin\\":0.0234375,\\"end\\":0.03125,\\"speed\\":0.03125,\\"unit\\":\\"c\\",\\"pan\\":1,\\"shape\\":0.5}",
-]
-`;
-
-exports[`renders shared tunes > shared tune 193 https://strudel.cc/?k0435I3IQEH4 1`] = `
-[
-  "0/1 -> 3/4: F3",
-  "3/4 -> 9/8: Ab3",
-  "0/1 -> 3/4: Ab3",
-  "3/4 -> 9/8: C4",
-  "3/8 -> 15/32: Eb4",
-  "9/16 -> 21/32: Eb4",
-  "3/8 -> 15/32: G4",
-  "9/16 -> 21/32: G4",
-  "241/600 -> 147/200: F1",
-  "0/1 -> 3/4: c2",
-  "3/4 -> 3/2: c2",
-  "3/4 -> 3/2: c2",
-  "0/1 -> 3/8: c4",
-  "3/8 -> 3/4: c4",
-  "3/4 -> 9/8: c4",
-]
-`;
-
-exports[`renders shared tunes > shared tune 194 https://strudel.cc/?vDsUyH8IUJn6 1`] = `
-[
-  "0/1 -> 6/1: F3",
-  "0/1 -> 6/1: Ab3",
-  "0/1 -> 6/1: c2",
-  "0/1 -> 3/1: c4",
-]
-`;
-
-exports[`renders shared tunes > shared tune 195 https://strudel.cc/?YJ2iESN49BD6 1`] = `
-[
-  "0/1 -> 3/16: {\\"s\\":\\"bd\\",\\"gain\\":0.7}",
-  "3/16 -> 3/8: {\\"s\\":\\"bd\\",\\"gain\\":0.7}",
-  "3/8 -> 3/4: {\\"s\\":\\"hh\\",\\"gain\\":0.7}",
-  "3/4 -> 9/8: {\\"s\\":\\"sn\\",\\"gain\\":0.7}",
-  "0/1 -> 3/20: {\\"note\\":\\"C2\\",\\"s\\":\\"square\\",\\"cutoff\\":400,\\"decay\\":0.12,\\"sustain\\":0}",
-  "3/8 -> 21/40: {\\"note\\":\\"A1\\",\\"s\\":\\"square\\",\\"cutoff\\":400,\\"decay\\":0.12,\\"sustain\\":0}",
-  "3/4 -> 9/10: {\\"note\\":\\"Bb1\\",\\"s\\":\\"square\\",\\"cutoff\\":400,\\"decay\\":0.12,\\"sustain\\":0}",
-  "3/16 -> 27/80: {\\"note\\":\\"C2\\",\\"s\\":\\"square\\",\\"cutoff\\":400,\\"decay\\":0.12,\\"sustain\\":0}",
-  "9/16 -> 57/80: {\\"note\\":\\"A1\\",\\"s\\":\\"square\\",\\"cutoff\\":400,\\"decay\\":0.12,\\"sustain\\":0}",
-  "15/16 -> 87/80: {\\"note\\":\\"Bb1\\",\\"s\\":\\"square\\",\\"cutoff\\":400,\\"decay\\":0.12,\\"sustain\\":0}",
-  "0/1 -> 3/20: {\\"note\\":\\"G2\\"}",
-  "0/1 -> 3/40: {\\"note\\":\\"C3\\"}",
-  "3/4 -> 33/40: {\\"note\\":\\"Eb3\\"}",
-  "-15/16 -> -63/80: {\\"note\\":\\"G3\\"}",
-  "-3/16 -> -9/80: {\\"note\\":\\"Eb4\\"}",
-  "3/16 -> 27/80: {\\"note\\":\\"G3\\"}",
-  "3/16 -> 21/80: {\\"note\\":\\"C4\\"}",
-  "15/16 -> 81/80: {\\"note\\":\\"Eb4\\"}",
-  "-3/4 -> -3/5: {\\"note\\":\\"G4\\"}",
-  "0/1 -> 3/40: {\\"note\\":\\"Eb5\\"}",
-  "3/8 -> 21/40: {\\"note\\":\\"G4\\"}",
-  "3/8 -> 9/20: {\\"note\\":\\"C5\\"}",
-  "-9/16 -> -33/80: {\\"note\\":\\"G5\\"}",
-  "-9/16 -> -39/80: {\\"note\\":\\"C6\\"}",
-  "3/16 -> 21/80: {\\"note\\":\\"Eb6\\"}",
-  "9/16 -> 57/80: {\\"note\\":\\"G5\\"}",
-  "9/16 -> 51/80: {\\"note\\":\\"C6\\"}",
-]
-`;
-
-exports[`renders shared tunes > shared tune 196 https://strudel.cc/?Z6fHLg-51AUc 1`] = `
-[
-  "0/1 -> 1/4: C3",
-  "0/1 -> 1/4: G3",
-  "0/1 -> 1/4: C4",
-  "1/2 -> 3/4: C3",
-  "1/2 -> 3/4: G3",
-  "1/2 -> 3/4: C4",
-  "0/1 -> 1/2: c2",
-  "1/2 -> 5/8: c2",
-  "3/4 -> 7/8: c2",
-  "0/1 -> 1/2: c1",
-  "1/2 -> 1/1: c1",
-]
-`;
-
-exports[`renders shared tunes > shared tune 197 https://strudel.cc/?GW0d4wRtDmED 1`] = `
-[
-  "0/1 -> 1/2: c1",
-  "1/2 -> 1/1: c1",
-  "1/2 -> 1/1: c3",
-  "0/1 -> 1/4: C1",
-  "1/4 -> 1/2: C3",
-  "1/2 -> 3/4: C1",
-  "3/4 -> 1/1: C3",
-]
-`;
-
-exports[`renders shared tunes > shared tune 198 https://strudel.cc/?iliL_rgeboIg 1`] = `
-[
-  "0/1 -> 1/3: bd",
-  "1/3 -> 2/3: hh",
-  "2/3 -> 1/1: sn",
-  "0/1 -> 1/20: G4",
-  "1/6 -> 13/60: G4",
-  "1/3 -> 23/60: B3",
-  "1/2 -> 11/20: B3",
-  "1/3 -> 23/60: E4",
-  "1/2 -> 11/20: E4",
-  "2/3 -> 43/60: G3",
-  "5/6 -> 53/60: G3",
-  "0/1 -> 4/3: c2",
-  "0/1 -> 4/3: c2",
-]
-`;
-
-exports[`renders shared tunes > shared tune 199 https://strudel.cc/?IVv5q7W4BDiN 1`] = `
-[
-  "0/1 -> 1/32: {\\"note\\":48.07362922971432,\\"attack\\":0,\\"release\\":0,\\"s\\":\\"triangle\\"}",
-  "1/32 -> 1/16: {\\"note\\":48.220843337648155,\\"attack\\":0,\\"release\\":0,\\"s\\":\\"triangle\\"}",
-  "1/16 -> 3/32: {\\"note\\":48.36792441781325,\\"attack\\":0,\\"release\\":0,\\"s\\":\\"triangle\\"}",
-  "3/32 -> 1/8: {\\"note\\":48.51478387406664,\\"attack\\":0,\\"release\\":0,\\"s\\":\\"triangle\\"}",
-  "1/8 -> 5/32: {\\"note\\":48.661333243763295,\\"attack\\":0,\\"release\\":0,\\"s\\":\\"triangle\\"}",
-  "5/32 -> 3/16: {\\"note\\":48.80748425104276,\\"attack\\":0,\\"release\\":0,\\"s\\":\\"triangle\\"}",
-  "3/16 -> 7/32: {\\"note\\":48.95314886000317,\\"attack\\":0,\\"release\\":0,\\"s\\":\\"triangle\\"}",
-  "7/32 -> 1/4: {\\"note\\":49.098239327730845,\\"attack\\":0,\\"release\\":0,\\"s\\":\\"triangle\\"}",
-  "1/4 -> 9/32: {\\"note\\":49.24266825715331,\\"attack\\":0,\\"release\\":0,\\"s\\":\\"triangle\\"}",
-  "9/32 -> 5/16: {\\"note\\":49.386348649684024,\\"attack\\":0,\\"release\\":0,\\"s\\":\\"triangle\\"}",
-  "5/16 -> 11/32: {\\"note\\":49.529193957627086,\\"attack\\":0,\\"release\\":0,\\"s\\":\\"triangle\\"}",
-  "11/32 -> 3/8: {\\"note\\":49.67111813631032,\\"attack\\":0,\\"release\\":0,\\"s\\":\\"triangle\\"}",
-  "3/8 -> 13/32: {\\"note\\":49.81203569591537,\\"attack\\":0,\\"release\\":0,\\"s\\":\\"triangle\\"}",
-  "13/32 -> 7/16: {\\"note\\":49.95186175297358,\\"attack\\":0,\\"release\\":0,\\"s\\":\\"triangle\\"}",
-  "7/16 -> 15/32: {\\"note\\":50.09051208149661,\\"attack\\":0,\\"release\\":0,\\"s\\":\\"triangle\\"}",
-  "15/32 -> 1/2: {\\"note\\":50.22790316371103,\\"attack\\":0,\\"release\\":0,\\"s\\":\\"triangle\\"}",
-  "1/2 -> 17/32: {\\"note\\":50.36395224036629,\\"attack\\":0,\\"release\\":0,\\"s\\":\\"triangle\\"}",
-  "17/32 -> 9/16: {\\"note\\":50.49857736058583,\\"attack\\":0,\\"release\\":0,\\"s\\":\\"triangle\\"}",
-  "9/16 -> 19/32: {\\"note\\":50.63169743123117,\\"attack\\":0,\\"release\\":0,\\"s\\":\\"triangle\\"}",
-  "19/32 -> 5/8: {\\"note\\":50.76323226574944,\\"attack\\":0,\\"release\\":0,\\"s\\":\\"triangle\\"}",
-  "5/8 -> 21/32: {\\"note\\":50.893102632474736,\\"attack\\":0,\\"release\\":0,\\"s\\":\\"triangle\\"}",
-  "21/32 -> 11/16: {\\"note\\":51.021230302354304,\\"attack\\":0,\\"release\\":0,\\"s\\":\\"triangle\\"}",
-  "11/16 -> 23/32: {\\"note\\":51.14753809607082,\\"attack\\":0,\\"release\\":0,\\"s\\":\\"triangle\\"}",
-  "23/32 -> 3/4: {\\"note\\":51.27194993053228,\\"attack\\":0,\\"release\\":0,\\"s\\":\\"triangle\\"}",
-  "3/4 -> 25/32: {\\"note\\":51.39439086470168,\\"attack\\":0,\\"release\\":0,\\"s\\":\\"triangle\\"}",
-  "25/32 -> 13/16: {\\"note\\":51.514787144738634,\\"attack\\":0,\\"release\\":0,\\"s\\":\\"triangle\\"}",
-  "13/16 -> 27/32: {\\"note\\":51.633066248425955,\\"attack\\":0,\\"release\\":0,\\"s\\":\\"triangle\\"}",
-  "27/32 -> 7/8: {\\"note\\":51.74915692885432,\\"attack\\":0,\\"release\\":0,\\"s\\":\\"triangle\\"}",
-  "7/8 -> 29/32: {\\"note\\":51.86298925733875,\\"attack\\":0,\\"release\\":0,\\"s\\":\\"triangle\\"}",
-  "29/32 -> 15/16: {\\"note\\":51.97449466554103,\\"attack\\":0,\\"release\\":0,\\"s\\":\\"triangle\\"}",
-  "15/16 -> 31/32: {\\"note\\":52.08360598677272,\\"attack\\":0,\\"release\\":0,\\"s\\":\\"triangle\\"}",
-  "31/32 -> 1/1: {\\"note\\":52.19025749645384,\\"attack\\":0,\\"release\\":0,\\"s\\":\\"triangle\\"}",
-]
-`;
-
-exports[`renders shared tunes > shared tune 200 https://strudel.cc/?N6kOKngern0Y 1`] = `
-[
-  "0/1 -> 1/32: {\\"note\\":56.147247371137475,\\"attack\\":0,\\"release\\":0,\\"s\\":\\"triangle\\"}",
-  "1/32 -> 1/16: {\\"note\\":56.441387381598005,\\"attack\\":0,\\"release\\":0,\\"s\\":\\"triangle\\"}",
-  "1/16 -> 3/32: {\\"note\\":56.734464051195296,\\"attack\\":0,\\"release\\":0,\\"s\\":\\"triangle\\"}",
-  "3/32 -> 1/8: {\\"note\\":57.02577133256181,\\"attack\\":0,\\"release\\":0,\\"s\\":\\"triangle\\"}",
-  "1/8 -> 5/32: {\\"note\\":57.31460744094122,\\"attack\\":0,\\"release\\":0,\\"s\\":\\"triangle\\"}",
-  "5/32 -> 3/16: {\\"note\\":57.60027654484939,\\"attack\\":0,\\"release\\":0,\\"s\\":\\"triangle\\"}",
-  "3/16 -> 7/32: {\\"note\\":57.88209044239335,\\"attack\\":0,\\"release\\":0,\\"s\\":\\"triangle\\"}",
-  "7/32 -> 1/4: {\\"note\\":58.15937021920993,\\"attack\\":0,\\"release\\":0,\\"s\\":\\"triangle\\"}",
-  "1/4 -> 9/32: {\\"note\\":58.431447884029936,\\"attack\\":0,\\"release\\":0,\\"s\\":\\"triangle\\"}",
-  "9/32 -> 5/16: {\\"note\\":58.69766797792764,\\"attack\\":0,\\"release\\":0,\\"s\\":\\"triangle\\"}",
-  "5/16 -> 11/32: {\\"note\\":58.9573891533787,\\"attack\\":0,\\"release\\":0,\\"s\\":\\"triangle\\"}",
-  "11/32 -> 3/8: {\\"note\\":59.20998571932258,\\"attack\\":0,\\"release\\":0,\\"s\\":\\"triangle\\"}",
-  "3/8 -> 13/32: {\\"note\\":59.45484914850707,\\"attack\\":0,\\"release\\":0,\\"s\\":\\"triangle\\"}",
-  "13/32 -> 7/16: {\\"note\\":59.69138954348376,\\"attack\\":0,\\"release\\":0,\\"s\\":\\"triangle\\"}",
-  "7/16 -> 15/32: {\\"note\\":59.91903705772266,\\"attack\\":0,\\"release\\":0,\\"s\\":\\"triangle\\"}",
-  "15/32 -> 1/2: {\\"note\\":60.1372432684224,\\"attack\\":0,\\"release\\":0,\\"s\\":\\"triangle\\"}",
-  "1/2 -> 17/32: {\\"note\\":60.3454824977088,\\"attack\\":0,\\"release\\":0,\\"s\\":\\"triangle\\"}",
-  "17/32 -> 9/16: {\\"note\\":60.543253079038905,\\"attack\\":0,\\"release\\":0,\\"s\\":\\"triangle\\"}",
-  "9/16 -> 19/32: {\\"note\\":60.73007856575964,\\"attack\\":0,\\"release\\":0,\\"s\\":\\"triangle\\"}",
-  "19/32 -> 5/8: {\\"note\\":60.9055088789095,\\"attack\\":0,\\"release\\":0,\\"s\\":\\"triangle\\"}",
-  "5/8 -> 21/32: {\\"note\\":61.06912139149824,\\"attack\\":0,\\"release\\":0,\\"s\\":\\"triangle\\"}",
-  "21/32 -> 11/16: {\\"note\\":61.22052194665227,\\"attack\\":0,\\"release\\":0,\\"s\\":\\"triangle\\"}",
-  "11/16 -> 23/32: {\\"note\\":61.35934580717309,\\"attack\\":0,\\"release\\":0,\\"s\\":\\"triangle\\"}",
-  "23/32 -> 3/4: {\\"note\\":61.48525853422119,\\"attack\\":0,\\"release\\":0,\\"s\\":\\"triangle\\"}",
-  "3/4 -> 25/32: {\\"note\\":61.597956793008436,\\"attack\\":0,\\"release\\":0,\\"s\\":\\"triangle\\"}",
-  "25/32 -> 13/16: {\\"note\\":61.69716908355822,\\"attack\\":0,\\"release\\":0,\\"s\\":\\"triangle\\"}",
-  "13/16 -> 27/32: {\\"note\\":61.782656394772644,\\"attack\\":0,\\"release\\":0,\\"s\\":\\"triangle\\"}",
-  "27/32 -> 7/8: {\\"note\\":61.85421278023117,\\"attack\\":0,\\"release\\":0,\\"s\\":\\"triangle\\"}",
-  "7/8 -> 29/32: {\\"note\\":61.91166585433365,\\"attack\\":0,\\"release\\":0,\\"s\\":\\"triangle\\"}",
-  "29/32 -> 15/16: {\\"note\\":61.95487720759226,\\"attack\\":0,\\"release\\":0,\\"s\\":\\"triangle\\"}",
-  "15/16 -> 31/32: {\\"note\\":61.983742740072145,\\"attack\\":0,\\"release\\":0,\\"s\\":\\"triangle\\"}",
-  "31/32 -> 1/1: {\\"note\\":61.998192912177224,\\"attack\\":0,\\"release\\":0,\\"s\\":\\"triangle\\"}",
-]
-`;
-
-exports[`renders shared tunes > shared tune 201 https://strudel.cc/?wIjKrvTVPfgZ 1`] = `
-[
-  "0/1 -> 1/16: {\\"note\\":47.370882377028465,\\"attack\\":0,\\"release\\":0,\\"s\\":\\"triangle\\"}",
-  "1/16 -> 1/8: {\\"note\\":47.10302542895079,\\"attack\\":0,\\"release\\":0,\\"s\\":\\"triangle\\"}",
-  "1/8 -> 3/16: {\\"note\\":49.174072265625,\\"attack\\":0,\\"release\\":0,\\"s\\":\\"triangle\\"}",
-  "3/16 -> 1/4: {\\"note\\":49.72477217763662,\\"attack\\":0,\\"release\\":0,\\"s\\":\\"triangle\\"}",
-  "1/4 -> 5/16: {\\"note\\":50.367317005991936,\\"attack\\":0,\\"release\\":0,\\"s\\":\\"triangle\\"}",
-  "5/16 -> 3/8: {\\"note\\":46.19376839697361,\\"attack\\":0,\\"release\\":0,\\"s\\":\\"triangle\\"}",
-  "3/8 -> 7/16: {\\"note\\":51.18686657398939,\\"attack\\":0,\\"release\\":0,\\"s\\":\\"triangle\\"}",
-  "7/16 -> 1/2: {\\"note\\":50.02532958984375,\\"attack\\":0,\\"release\\":0,\\"s\\":\\"triangle\\"}",
-  "1/2 -> 9/16: {\\"note\\":52.08789586275816,\\"attack\\":0,\\"release\\":0,\\"s\\":\\"triangle\\"}",
-  "9/16 -> 5/8: {\\"note\\":52.430519320070744,\\"attack\\":0,\\"release\\":0,\\"s\\":\\"triangle\\"}",
-  "5/8 -> 11/16: {\\"note\\":47.17999421060085,\\"attack\\":0,\\"release\\":0,\\"s\\":\\"triangle\\"}",
-  "11/16 -> 3/4: {\\"note\\":42.378508776426315,\\"attack\\":0,\\"release\\":0,\\"s\\":\\"triangle\\"}",
-  "3/4 -> 13/16: {\\"note\\":42.11755297333002,\\"attack\\":0,\\"release\\":0,\\"s\\":\\"triangle\\"}",
-  "13/16 -> 7/8: {\\"note\\":44.461274698376656,\\"attack\\":0,\\"release\\":0,\\"s\\":\\"triangle\\"}",
-  "7/8 -> 15/16: {\\"note\\":52.89178837090731,\\"attack\\":0,\\"release\\":0,\\"s\\":\\"triangle\\"}",
-  "15/16 -> 1/1: {\\"note\\":49.39466518163681,\\"attack\\":0,\\"release\\":0,\\"s\\":\\"triangle\\"}",
-]
-`;
-
-exports[`renders shared tunes > shared tune 202 https://strudel.cc/?iqZ-ex573FFd 1`] = `
-[
-  "0/1 -> 4/25: 52",
-  "4/25 -> 8/25: 57",
-  "8/25 -> 12/25: 61",
-  "12/25 -> 16/25: 52",
-  "16/25 -> 4/5: 57",
-  "4/5 -> 24/25: 61",
-  "24/25 -> 28/25: 52",
-]
-`;
-
-exports[`renders shared tunes > shared tune 203 https://strudel.cc/?0nlMXAIzgsdw 1`] = `
-[
-  "4/5 -> 16/15: {\\"note\\":\\"a6\\",\\"s\\":\\"piano\\"}",
-  "0/1 -> 4/5: {\\"note\\":\\"ab5\\",\\"s\\":\\"piano\\"}",
-  "0/1 -> 4/5: {\\"note\\":\\"e5\\",\\"s\\":\\"piano\\"}",
-  "0/1 -> 4/5: {\\"note\\":\\"c5\\",\\"s\\":\\"piano\\"}",
-  "0/1 -> 4/5: {\\"note\\":\\"Ab5\\",\\"s\\":\\"piano\\"}",
-  "4/5 -> 8/5: {\\"note\\":\\"Db5\\",\\"s\\":\\"piano\\"}",
-]
-`;
-
-exports[`renders shared tunes > shared tune 204 https://strudel.cc/?-4PvWekokc4W 1`] = `
-[
-  "0/1 -> 1/8: {\\"s\\":\\"p\\",\\"speed\\":0.03125,\\"unit\\":\\"c\\",\\"begin\\":0,\\"end\\":0.0078125,\\"pan\\":0,\\"shape\\":0.4,\\"decay\\":0.1,\\"sustain\\":0.4}",
-  "1/8 -> 1/4: {\\"s\\":\\"p\\",\\"speed\\":0.03125,\\"unit\\":\\"c\\",\\"begin\\":0,\\"end\\":0.0078125,\\"pan\\":0,\\"shape\\":0.4,\\"decay\\":0.1,\\"sustain\\":0.4}",
-  "1/4 -> 3/8: {\\"s\\":\\"p\\",\\"speed\\":0.03125,\\"unit\\":\\"c\\",\\"begin\\":0.0078125,\\"end\\":0.015625,\\"pan\\":0,\\"shape\\":0.4,\\"decay\\":0.1,\\"sustain\\":0.4}",
-  "3/8 -> 1/2: {\\"s\\":\\"p\\",\\"speed\\":0.03125,\\"unit\\":\\"c\\",\\"begin\\":0.0078125,\\"end\\":0.015625,\\"pan\\":0,\\"shape\\":0.4,\\"decay\\":0.1,\\"sustain\\":0.4}",
-  "1/2 -> 5/8: {\\"s\\":\\"p\\",\\"speed\\":0.03125,\\"unit\\":\\"c\\",\\"begin\\":0.015625,\\"end\\":0.0234375,\\"pan\\":0,\\"shape\\":0.4,\\"decay\\":0.1,\\"sustain\\":0.4}",
-  "5/8 -> 3/4: {\\"s\\":\\"p\\",\\"speed\\":0.03125,\\"unit\\":\\"c\\",\\"begin\\":0.015625,\\"end\\":0.0234375,\\"pan\\":0,\\"shape\\":0.4,\\"decay\\":0.1,\\"sustain\\":0.4}",
-  "3/4 -> 7/8: {\\"s\\":\\"p\\",\\"speed\\":0.03125,\\"unit\\":\\"c\\",\\"begin\\":0.0234375,\\"end\\":0.03125,\\"pan\\":0,\\"shape\\":0.4,\\"decay\\":0.1,\\"sustain\\":0.4}",
-  "7/8 -> 1/1: {\\"s\\":\\"p\\",\\"speed\\":0.03125,\\"unit\\":\\"c\\",\\"begin\\":0.0234375,\\"end\\":0.03125,\\"pan\\":0,\\"shape\\":0.4,\\"decay\\":0.1,\\"sustain\\":0.4}",
-  "7/8 -> 1/1: {\\"s\\":\\"p\\",\\"speed\\":0.03125,\\"unit\\":\\"c\\",\\"begin\\":0,\\"end\\":0.0078125,\\"pan\\":1,\\"shape\\":0.4,\\"decay\\":0.1,\\"sustain\\":0.4}",
-  "3/4 -> 7/8: {\\"s\\":\\"p\\",\\"speed\\":0.03125,\\"unit\\":\\"c\\",\\"begin\\":0,\\"end\\":0.0078125,\\"pan\\":1,\\"shape\\":0.4,\\"decay\\":0.1,\\"sustain\\":0.4}",
-  "5/8 -> 3/4: {\\"s\\":\\"p\\",\\"speed\\":0.03125,\\"unit\\":\\"c\\",\\"begin\\":0.0078125,\\"end\\":0.015625,\\"pan\\":1,\\"shape\\":0.4,\\"decay\\":0.1,\\"sustain\\":0.4}",
-  "1/2 -> 5/8: {\\"s\\":\\"p\\",\\"speed\\":0.03125,\\"unit\\":\\"c\\",\\"begin\\":0.0078125,\\"end\\":0.015625,\\"pan\\":1,\\"shape\\":0.4,\\"decay\\":0.1,\\"sustain\\":0.4}",
-  "3/8 -> 1/2: {\\"s\\":\\"p\\",\\"speed\\":0.03125,\\"unit\\":\\"c\\",\\"begin\\":0.015625,\\"end\\":0.0234375,\\"pan\\":1,\\"shape\\":0.4,\\"decay\\":0.1,\\"sustain\\":0.4}",
-  "1/4 -> 3/8: {\\"s\\":\\"p\\",\\"speed\\":0.03125,\\"unit\\":\\"c\\",\\"begin\\":0.015625,\\"end\\":0.0234375,\\"pan\\":1,\\"shape\\":0.4,\\"decay\\":0.1,\\"sustain\\":0.4}",
-  "1/8 -> 1/4: {\\"s\\":\\"p\\",\\"speed\\":0.03125,\\"unit\\":\\"c\\",\\"begin\\":0.0234375,\\"end\\":0.03125,\\"pan\\":1,\\"shape\\":0.4,\\"decay\\":0.1,\\"sustain\\":0.4}",
-  "0/1 -> 1/8: {\\"s\\":\\"p\\",\\"speed\\":0.03125,\\"unit\\":\\"c\\",\\"begin\\":0.0234375,\\"end\\":0.03125,\\"pan\\":1,\\"shape\\":0.4,\\"decay\\":0.1,\\"sustain\\":0.4}",
-]
-`;
-
-exports[`renders shared tunes > shared tune 205 https://strudel.cc/?norqcTA-uOs0 1`] = `
-[
-  "0/1 -> 44/75: {\\"note\\":78,\\"s\\":\\"piano\\"}",
-  "44/75 -> 88/75: {\\"note\\":71,\\"s\\":\\"piano\\"}",
-]
-`;
-
-exports[`renders shared tunes > shared tune 206 https://strudel.cc/?WrN_Cv-hQMo0 1`] = `
-[
-  "0/1 -> 1/4: {\\"n\\":\\"c3\\",\\"s\\":\\"sawtooth\\",\\"attack\\":0,\\"decay\\":0.1,\\"sustain\\":0.2,\\"release\\":0.9}",
-  "1/4 -> 1/2: {\\"n\\":\\"eb3\\",\\"s\\":\\"sawtooth\\",\\"attack\\":0,\\"decay\\":0.1,\\"sustain\\":0.2,\\"release\\":0.9}",
-  "1/2 -> 3/4: {\\"n\\":\\"g3\\",\\"s\\":\\"sawtooth\\",\\"attack\\":0,\\"decay\\":0.1,\\"sustain\\":0.2,\\"release\\":0.9}",
-  "3/4 -> 1/1: {\\"n\\":\\"g2\\",\\"s\\":\\"sawtooth\\",\\"attack\\":0,\\"decay\\":0.1,\\"sustain\\":0.2,\\"release\\":0.9}",
-]
-`;
-
-exports[`renders shared tunes > shared tune 207 https://strudel.cc/?YFbUtVxvA82E 1`] = `
-[
-  "0/1 -> 1/1: {\\"n\\":\\"[object Object][object Object]\\",\\"s\\":\\"sawtooth\\"}",
-]
-`;
-
-exports[`renders shared tunes > shared tune 208 https://strudel.cc/?SHdla152eDum 1`] = `
-[
-  "0/1 -> 3/13: {\\"n\\":\\"c3\\",\\"s\\":\\"sawtooth\\",\\"attack\\":0.1,\\"decay\\":0.1,\\"sustain\\":0.4,\\"release\\":1}",
-  "3/13 -> 6/13: {\\"n\\":\\"eb3\\",\\"s\\":\\"sawtooth\\",\\"attack\\":0.1,\\"decay\\":0.1,\\"sustain\\":0.4,\\"release\\":1}",
-  "6/13 -> 9/13: {\\"n\\":\\"g3\\",\\"s\\":\\"sawtooth\\",\\"attack\\":0.1,\\"decay\\":0.1,\\"sustain\\":0.4,\\"release\\":1}",
-  "9/13 -> 12/13: {\\"n\\":\\"f3\\",\\"s\\":\\"sawtooth\\",\\"attack\\":0.1,\\"decay\\":0.1,\\"sustain\\":0.4,\\"release\\":1}",
-  "12/13 -> 15/13: {\\"n\\":\\"ab3\\",\\"s\\":\\"sawtooth\\",\\"attack\\":0.1,\\"decay\\":0.1,\\"sustain\\":0.4,\\"release\\":1}",
-]
-`;
-
-exports[`renders shared tunes > shared tune 209 https://strudel.cc/?Jk_4KtRME5zL 1`] = `
-[
-  "0/1 -> 1/10: {\\"n\\":\\"c3\\",\\"s\\":\\"sawtooth\\"}",
-  "1/10 -> 1/5: {\\"n\\":\\"eb3\\",\\"s\\":\\"sawtooth\\"}",
-  "1/5 -> 3/10: {\\"n\\":\\"g3\\",\\"s\\":\\"sawtooth\\"}",
-  "3/10 -> 2/5: {\\"n\\":\\"g2\\",\\"s\\":\\"sawtooth\\"}",
-  "2/5 -> 1/2: {\\"n\\":\\"g3\\",\\"s\\":\\"sawtooth\\"}",
-  "1/2 -> 3/5: {\\"n\\":\\"f3\\",\\"s\\":\\"sawtooth\\"}",
-  "3/5 -> 7/10: {\\"n\\":\\"ab3\\",\\"s\\":\\"sawtooth\\"}",
-  "7/10 -> 4/5: {\\"n\\":\\"b2\\",\\"s\\":\\"sawtooth\\"}",
-  "4/5 -> 9/10: {\\"n\\":\\"ab3\\",\\"s\\":\\"sawtooth\\"}",
-  "9/10 -> 1/1: {\\"n\\":\\"f3\\",\\"s\\":\\"sawtooth\\"}",
-]
-`;
-
-exports[`renders shared tunes > shared tune 210 https://strudel.cc/?xHaKTd1kTpCn 1`] = `
-[
-  "-1/8 -> 1/1: {\\"s\\":\\"bd\\",\\"note\\":44,\\"n\\":0,\\"cut\\":1,\\"attack\\":0.01,\\"decay\\":0.1,\\"sustain\\":0.2,\\"release\\":2,\\"pan\\":0.5,\\"value\\":4}",
-  "-1/8 -> 1/1: {\\"s\\":\\"bd\\",\\"note\\":44,\\"n\\":0,\\"cut\\":1,\\"attack\\":0.01,\\"decay\\":0.1,\\"sustain\\":0.2,\\"release\\":2,\\"pan\\":1,\\"value\\":4}",
-  "-1/8 -> 1/1: {\\"s\\":\\"bd\\",\\"note\\":44,\\"n\\":0,\\"cut\\":0,\\"attack\\":0.01,\\"decay\\":0.1,\\"sustain\\":0.2,\\"release\\":2,\\"pan\\":1,\\"value\\":4}",
-  "-1/8 -> 1/1: {\\"s\\":\\"bd\\",\\"note\\":44,\\"n\\":0,\\"cut\\":0,\\"attack\\":0.01,\\"decay\\":0.1,\\"sustain\\":0.2,\\"release\\":2,\\"pan\\":0.5,\\"value\\":4}",
-  "-1/8 -> 1/1: {\\"s\\":\\"bd\\",\\"note\\":44,\\"n\\":0,\\"cut\\":1,\\"attack\\":0.01,\\"decay\\":0.1,\\"sustain\\":0.2,\\"release\\":2,\\"pan\\":0.5,\\"value\\":4}",
-  "-1/8 -> 1/1: {\\"s\\":\\"bd\\",\\"note\\":44,\\"n\\":0,\\"cut\\":1,\\"attack\\":0.01,\\"decay\\":0.01,\\"sustain\\":0.6,\\"release\\":2,\\"pan\\":0.5,\\"value\\":4}",
-  "-1/8 -> 1/1: {\\"s\\":\\"bd\\",\\"note\\":44,\\"n\\":0,\\"cut\\":1,\\"attack\\":0.01,\\"decay\\":0.01,\\"sustain\\":0.6,\\"release\\":2,\\"pan\\":0,\\"value\\":4}",
-  "-1/8 -> 1/1: {\\"s\\":\\"bd\\",\\"note\\":44,\\"n\\":0,\\"cut\\":0,\\"attack\\":0.01,\\"decay\\":0.01,\\"sustain\\":0.6,\\"release\\":2,\\"pan\\":0,\\"value\\":4}",
-  "-1/8 -> 1/1: {\\"s\\":\\"bd\\",\\"note\\":44,\\"n\\":0,\\"cut\\":0,\\"attack\\":0.05,\\"decay\\":0.01,\\"sustain\\":0.6,\\"release\\":2,\\"pan\\":0,\\"value\\":4}",
-  "-1/8 -> 1/1: {\\"s\\":\\"bd\\",\\"note\\":44,\\"n\\":1,\\"cut\\":0,\\"attack\\":0.05,\\"decay\\":0.01,\\"sustain\\":0.6,\\"release\\":2,\\"pan\\":0,\\"value\\":4}",
-  "-1/8 -> 1/1: {\\"s\\":\\"bd\\",\\"note\\":44,\\"n\\":1,\\"cut\\":0,\\"attack\\":0.05,\\"decay\\":0.01,\\"sustain\\":0.6,\\"release\\":2,\\"pan\\":0.5,\\"value\\":4}",
-  "-1/8 -> 1/1: {\\"s\\":\\"bd\\",\\"note\\":44,\\"n\\":1,\\"cut\\":2,\\"attack\\":0.05,\\"decay\\":0.01,\\"sustain\\":0.6,\\"release\\":2,\\"pan\\":0.5,\\"value\\":4}",
-  "-1/8 -> 1/1: {\\"s\\":\\"bd\\",\\"note\\":30,\\"n\\":1,\\"cut\\":2,\\"attack\\":0.05,\\"decay\\":0.01,\\"sustain\\":0.6,\\"release\\":2,\\"pan\\":0.5,\\"value\\":4}",
-  "-1/8 -> 1/1: {\\"s\\":\\"bd\\",\\"note\\":30,\\"n\\":1,\\"cut\\":2,\\"attack\\":0.05,\\"decay\\":0.01,\\"sustain\\":0.6,\\"release\\":2,\\"pan\\":0.5,\\"value\\":4}",
-  "-1/8 -> 1/1: {\\"s\\":\\"bd\\",\\"note\\":30,\\"n\\":1,\\"cut\\":2,\\"attack\\":0.05,\\"decay\\":0.01,\\"sustain\\":0.6,\\"release\\":2,\\"pan\\":1,\\"value\\":4}",
-  "-1/8 -> 1/1: {\\"s\\":\\"bd\\",\\"note\\":30,\\"n\\":1,\\"cut\\":2,\\"attack\\":0.05,\\"decay\\":0.01,\\"sustain\\":0.6,\\"release\\":2,\\"pan\\":1,\\"value\\":4}",
-  "3/4 -> 1/1: {\\"s\\":\\"hh\\",\\"note\\":44,\\"n\\":0,\\"cut\\":1,\\"attack\\":0.01,\\"decay\\":0.1,\\"sustain\\":0.2,\\"release\\":2,\\"pan\\":0.5,\\"value\\":4}",
-  "3/4 -> 1/1: {\\"s\\":\\"hh\\",\\"note\\":44,\\"n\\":0,\\"cut\\":1,\\"attack\\":0.01,\\"decay\\":0.1,\\"sustain\\":0.2,\\"release\\":2,\\"pan\\":1,\\"value\\":4}",
-  "3/4 -> 1/1: {\\"s\\":\\"hh\\",\\"note\\":44,\\"n\\":0,\\"cut\\":0,\\"attack\\":0.01,\\"decay\\":0.1,\\"sustain\\":0.2,\\"release\\":2,\\"pan\\":1,\\"value\\":4}",
-  "1/2 -> 3/4: {\\"s\\":\\"lt\\",\\"note\\":44,\\"n\\":0,\\"cut\\":0,\\"attack\\":0.01,\\"decay\\":0.1,\\"sustain\\":0.2,\\"release\\":2,\\"pan\\":1,\\"value\\":4}",
-  "1/2 -> 3/4: {\\"s\\":\\"lt\\",\\"note\\":44,\\"n\\":0,\\"cut\\":0,\\"attack\\":0.01,\\"decay\\":0.1,\\"sustain\\":0.2,\\"release\\":2,\\"pan\\":0.5,\\"value\\":4}",
-  "1/2 -> 3/4: {\\"s\\":\\"lt\\",\\"note\\":44,\\"n\\":0,\\"cut\\":1,\\"attack\\":0.01,\\"decay\\":0.1,\\"sustain\\":0.2,\\"release\\":2,\\"pan\\":0.5,\\"value\\":4}",
-  "1/4 -> 1/2: {\\"s\\":\\"hh\\",\\"note\\":44,\\"n\\":0,\\"cut\\":1,\\"attack\\":0.01,\\"decay\\":0.01,\\"sustain\\":0.6,\\"release\\":2,\\"pan\\":0.5,\\"value\\":4}",
-  "1/4 -> 1/2: {\\"s\\":\\"hh\\",\\"note\\":44,\\"n\\":0,\\"cut\\":1,\\"attack\\":0.01,\\"decay\\":0.01,\\"sustain\\":0.6,\\"release\\":2,\\"pan\\":0,\\"value\\":4}",
-  "1/4 -> 1/2: {\\"s\\":\\"hh\\",\\"note\\":44,\\"n\\":0,\\"cut\\":0,\\"attack\\":0.01,\\"decay\\":0.01,\\"sustain\\":0.6,\\"release\\":2,\\"pan\\":0,\\"value\\":4}",
-  "1/4 -> 1/2: {\\"s\\":\\"hh\\",\\"note\\":44,\\"n\\":0,\\"cut\\":0,\\"attack\\":0.05,\\"decay\\":0.01,\\"sustain\\":0.6,\\"release\\":2,\\"pan\\":0,\\"value\\":4}",
-  "1/4 -> 1/2: {\\"s\\":\\"hh\\",\\"note\\":44,\\"n\\":1,\\"cut\\":0,\\"attack\\":0.05,\\"decay\\":0.01,\\"sustain\\":0.6,\\"release\\":2,\\"pan\\":0,\\"value\\":4}",
-  "0/1 -> 1/4: {\\"s\\":\\"bd\\",\\"note\\":44,\\"n\\":1,\\"cut\\":0,\\"attack\\":0.05,\\"decay\\":0.01,\\"sustain\\":0.6,\\"release\\":2,\\"pan\\":0.5,\\"value\\":4}",
-  "0/1 -> 1/4: {\\"s\\":\\"bd\\",\\"note\\":44,\\"n\\":1,\\"cut\\":2,\\"attack\\":0.05,\\"decay\\":0.01,\\"sustain\\":0.6,\\"release\\":2,\\"pan\\":0.5,\\"value\\":4}",
-  "0/1 -> 1/4: {\\"s\\":\\"bd\\",\\"note\\":30,\\"n\\":1,\\"cut\\":2,\\"attack\\":0.05,\\"decay\\":0.01,\\"sustain\\":0.6,\\"release\\":2,\\"pan\\":0.5,\\"value\\":4}",
-  "0/1 -> 1/4: {\\"s\\":\\"bd\\",\\"note\\":30,\\"n\\":1,\\"cut\\":2,\\"attack\\":0.05,\\"decay\\":0.01,\\"sustain\\":0.6,\\"release\\":2,\\"pan\\":0.5,\\"value\\":4}",
-  "0/1 -> 1/4: {\\"s\\":\\"bd\\",\\"note\\":30,\\"n\\":1,\\"cut\\":2,\\"attack\\":0.05,\\"decay\\":0.01,\\"sustain\\":0.6,\\"release\\":2,\\"pan\\":1,\\"value\\":4}",
-  "0/1 -> 1/4: {\\"s\\":\\"bd\\",\\"note\\":30,\\"n\\":1,\\"cut\\":2,\\"attack\\":0.05,\\"decay\\":0.01,\\"sustain\\":0.6,\\"release\\":2,\\"pan\\":1,\\"value\\":4}",
-  "9/16 -> 9/8: {\\"s\\":\\"misc\\",\\"note\\":44,\\"n\\":0,\\"cut\\":2,\\"attack\\":0.01,\\"decay\\":0.01,\\"sustain\\":0.6,\\"release\\":2,\\"pan\\":0.5,\\"value\\":5}",
-  "9/16 -> 9/8: {\\"s\\":\\"misc\\",\\"note\\":44,\\"n\\":1,\\"cut\\":2,\\"attack\\":0.01,\\"decay\\":0.01,\\"sustain\\":0.6,\\"release\\":2,\\"pan\\":1,\\"value\\":5}",
-  "0/1 -> 9/8: {\\"s\\":\\"bd\\",\\"note\\":44,\\"n\\":0,\\"cut\\":2,\\"attack\\":0.01,\\"decay\\":0.01,\\"sustain\\":0.6,\\"release\\":2,\\"pan\\":0.5,\\"value\\":5}",
-  "0/1 -> 9/8: {\\"s\\":\\"bd\\",\\"note\\":44,\\"n\\":1,\\"cut\\":2,\\"attack\\":0.01,\\"decay\\":0.01,\\"sustain\\":0.6,\\"release\\":2,\\"pan\\":1,\\"value\\":5}",
-  "7/8 -> 9/8: {\\"s\\":\\"bd\\",\\"note\\":44,\\"n\\":0,\\"cut\\":2,\\"attack\\":0.01,\\"decay\\":0.01,\\"sustain\\":0.6,\\"release\\":2,\\"pan\\":0.5,\\"value\\":5}",
-  "7/8 -> 9/8: {\\"s\\":\\"bd\\",\\"note\\":44,\\"n\\":1,\\"cut\\":2,\\"attack\\":0.01,\\"decay\\":0.01,\\"sustain\\":0.6,\\"release\\":2,\\"pan\\":1,\\"value\\":5}",
-  "9/16 -> 9/8: {\\"s\\":\\"misc\\",\\"note\\":44,\\"n\\":1,\\"cut\\":2,\\"attack\\":0.01,\\"decay\\":0.1,\\"sustain\\":0.2,\\"release\\":2,\\"pan\\":1,\\"value\\":5}",
-  "9/16 -> 9/8: {\\"s\\":\\"misc\\",\\"note\\":44,\\"n\\":1,\\"cut\\":2,\\"attack\\":0.01,\\"decay\\":0.1,\\"sustain\\":0.2,\\"release\\":2,\\"pan\\":1,\\"value\\":5}",
-  "9/16 -> 9/8: {\\"s\\":\\"misc\\",\\"note\\":44,\\"n\\":1,\\"cut\\":2,\\"attack\\":0.01,\\"decay\\":0.1,\\"sustain\\":0.2,\\"release\\":2,\\"pan\\":0.5,\\"value\\":5}",
-  "9/16 -> 9/8: {\\"s\\":\\"misc\\",\\"note\\":44,\\"n\\":1,\\"cut\\":2,\\"attack\\":0.05,\\"decay\\":0.1,\\"sustain\\":0.2,\\"release\\":2,\\"pan\\":0.5,\\"value\\":5}",
-  "9/16 -> 9/8: {\\"s\\":\\"misc\\",\\"note\\":44,\\"n\\":1,\\"cut\\":1,\\"attack\\":0.05,\\"decay\\":0.1,\\"sustain\\":0.2,\\"release\\":2,\\"pan\\":0.5,\\"value\\":5}",
-  "9/16 -> 9/8: {\\"s\\":\\"misc\\",\\"note\\":44,\\"n\\":1,\\"cut\\":1,\\"attack\\":0.05,\\"decay\\":0.1,\\"sustain\\":0.2,\\"release\\":2,\\"pan\\":0.5,\\"value\\":5}",
-  "0/1 -> 9/16: {\\"s\\":\\"misc\\",\\"note\\":44,\\"n\\":1,\\"cut\\":1,\\"attack\\":0.05,\\"decay\\":0.1,\\"sustain\\":0.2,\\"release\\":2,\\"pan\\":0,\\"value\\":5}",
-  "0/1 -> 9/16: {\\"s\\":\\"misc\\",\\"note\\":30,\\"n\\":1,\\"cut\\":1,\\"attack\\":0.05,\\"decay\\":0.1,\\"sustain\\":0.2,\\"release\\":2,\\"pan\\":0,\\"value\\":5}",
-  "0/1 -> 9/16: {\\"s\\":\\"misc\\",\\"note\\":30,\\"n\\":1,\\"cut\\":0,\\"attack\\":0.05,\\"decay\\":0.1,\\"sustain\\":0.2,\\"release\\":2,\\"pan\\":0,\\"value\\":5}",
-  "0/1 -> 9/16: {\\"s\\":\\"misc\\",\\"note\\":30,\\"n\\":1,\\"cut\\":0,\\"attack\\":0.05,\\"decay\\":0.01,\\"sustain\\":0.6,\\"release\\":2,\\"pan\\":0.5,\\"value\\":5}",
-  "0/1 -> 9/16: {\\"s\\":\\"misc\\",\\"note\\":30,\\"n\\":2,\\"cut\\":0,\\"attack\\":0.05,\\"decay\\":0.01,\\"sustain\\":0.6,\\"release\\":2,\\"pan\\":0.5,\\"value\\":5}",
-  "0/1 -> 9/16: {\\"s\\":\\"misc\\",\\"note\\":30,\\"n\\":2,\\"cut\\":1,\\"attack\\":0.05,\\"decay\\":0.01,\\"sustain\\":0.6,\\"release\\":2,\\"pan\\":0.5,\\"value\\":5}",
-  "0/1 -> 9/16: {\\"s\\":\\"misc\\",\\"note\\":30,\\"n\\":2,\\"cut\\":1,\\"attack\\":0.05,\\"decay\\":0.01,\\"sustain\\":0.6,\\"release\\":2,\\"pan\\":1,\\"value\\":5}",
-  "0/1 -> 9/16: {\\"s\\":\\"misc\\",\\"note\\":30,\\"n\\":2,\\"cut\\":1,\\"attack\\":0.01,\\"decay\\":0.01,\\"sustain\\":0.6,\\"release\\":2,\\"pan\\":1,\\"value\\":5}",
-  "0/1 -> 9/16: {\\"s\\":\\"misc\\",\\"note\\":30,\\"n\\":2,\\"cut\\":0,\\"attack\\":0.01,\\"decay\\":0.01,\\"sustain\\":0.6,\\"release\\":2,\\"pan\\":1,\\"value\\":5}",
-  "0/1 -> 9/8: {\\"s\\":\\"bd\\",\\"note\\":44,\\"n\\":1,\\"cut\\":2,\\"attack\\":0.01,\\"decay\\":0.1,\\"sustain\\":0.2,\\"release\\":2,\\"pan\\":1,\\"value\\":5}",
-  "0/1 -> 9/8: {\\"s\\":\\"bd\\",\\"note\\":44,\\"n\\":1,\\"cut\\":2,\\"attack\\":0.01,\\"decay\\":0.1,\\"sustain\\":0.2,\\"release\\":2,\\"pan\\":1,\\"value\\":5}",
-  "0/1 -> 9/8: {\\"s\\":\\"bd\\",\\"note\\":44,\\"n\\":1,\\"cut\\":2,\\"attack\\":0.01,\\"decay\\":0.1,\\"sustain\\":0.2,\\"release\\":2,\\"pan\\":0.5,\\"value\\":5}",
-  "0/1 -> 9/8: {\\"s\\":\\"bd\\",\\"note\\":44,\\"n\\":1,\\"cut\\":2,\\"attack\\":0.05,\\"decay\\":0.1,\\"sustain\\":0.2,\\"release\\":2,\\"pan\\":0.5,\\"value\\":5}",
-  "0/1 -> 9/8: {\\"s\\":\\"bd\\",\\"note\\":44,\\"n\\":1,\\"cut\\":1,\\"attack\\":0.05,\\"decay\\":0.1,\\"sustain\\":0.2,\\"release\\":2,\\"pan\\":0.5,\\"value\\":5}",
-  "0/1 -> 9/8: {\\"s\\":\\"bd\\",\\"note\\":44,\\"n\\":1,\\"cut\\":1,\\"attack\\":0.05,\\"decay\\":0.1,\\"sustain\\":0.2,\\"release\\":2,\\"pan\\":0.5,\\"value\\":5}",
-  "0/1 -> 9/8: {\\"s\\":\\"bd\\",\\"note\\":44,\\"n\\":1,\\"cut\\":1,\\"attack\\":0.05,\\"decay\\":0.1,\\"sustain\\":0.2,\\"release\\":2,\\"pan\\":0,\\"value\\":5}",
-  "0/1 -> 9/8: {\\"s\\":\\"bd\\",\\"note\\":30,\\"n\\":1,\\"cut\\":1,\\"attack\\":0.05,\\"decay\\":0.1,\\"sustain\\":0.2,\\"release\\":2,\\"pan\\":0,\\"value\\":5}",
-  "0/1 -> 9/8: {\\"s\\":\\"bd\\",\\"note\\":30,\\"n\\":1,\\"cut\\":0,\\"attack\\":0.05,\\"decay\\":0.1,\\"sustain\\":0.2,\\"release\\":2,\\"pan\\":0,\\"value\\":5}",
-  "0/1 -> 9/8: {\\"s\\":\\"bd\\",\\"note\\":30,\\"n\\":1,\\"cut\\":0,\\"attack\\":0.05,\\"decay\\":0.01,\\"sustain\\":0.6,\\"release\\":2,\\"pan\\":0.5,\\"value\\":5}",
-  "0/1 -> 9/8: {\\"s\\":\\"bd\\",\\"note\\":30,\\"n\\":2,\\"cut\\":0,\\"attack\\":0.05,\\"decay\\":0.01,\\"sustain\\":0.6,\\"release\\":2,\\"pan\\":0.5,\\"value\\":5}",
-  "0/1 -> 9/8: {\\"s\\":\\"bd\\",\\"note\\":30,\\"n\\":2,\\"cut\\":1,\\"attack\\":0.05,\\"decay\\":0.01,\\"sustain\\":0.6,\\"release\\":2,\\"pan\\":0.5,\\"value\\":5}",
-  "0/1 -> 9/8: {\\"s\\":\\"bd\\",\\"note\\":30,\\"n\\":2,\\"cut\\":1,\\"attack\\":0.05,\\"decay\\":0.01,\\"sustain\\":0.6,\\"release\\":2,\\"pan\\":1,\\"value\\":5}",
-  "0/1 -> 9/8: {\\"s\\":\\"bd\\",\\"note\\":30,\\"n\\":2,\\"cut\\":1,\\"attack\\":0.01,\\"decay\\":0.01,\\"sustain\\":0.6,\\"release\\":2,\\"pan\\":1,\\"value\\":5}",
-  "0/1 -> 9/8: {\\"s\\":\\"bd\\",\\"note\\":30,\\"n\\":2,\\"cut\\":0,\\"attack\\":0.01,\\"decay\\":0.01,\\"sustain\\":0.6,\\"release\\":2,\\"pan\\":1,\\"value\\":5}",
-  "5/8 -> 7/8: {\\"s\\":\\"hh\\",\\"note\\":44,\\"n\\":1,\\"cut\\":2,\\"attack\\":0.01,\\"decay\\":0.1,\\"sustain\\":0.2,\\"release\\":2,\\"pan\\":1,\\"value\\":5}",
-  "5/8 -> 7/8: {\\"s\\":\\"hh\\",\\"note\\":44,\\"n\\":1,\\"cut\\":2,\\"attack\\":0.01,\\"decay\\":0.1,\\"sustain\\":0.2,\\"release\\":2,\\"pan\\":1,\\"value\\":5}",
-  "5/8 -> 7/8: {\\"s\\":\\"hh\\",\\"note\\":44,\\"n\\":1,\\"cut\\":2,\\"attack\\":0.01,\\"decay\\":0.1,\\"sustain\\":0.2,\\"release\\":2,\\"pan\\":0.5,\\"value\\":5}",
-  "5/8 -> 7/8: {\\"s\\":\\"hh\\",\\"note\\":44,\\"n\\":1,\\"cut\\":2,\\"attack\\":0.05,\\"decay\\":0.1,\\"sustain\\":0.2,\\"release\\":2,\\"pan\\":0.5,\\"value\\":5}",
-  "3/8 -> 5/8: {\\"s\\":\\"lt\\",\\"note\\":44,\\"n\\":1,\\"cut\\":1,\\"attack\\":0.05,\\"decay\\":0.1,\\"sustain\\":0.2,\\"release\\":2,\\"pan\\":0.5,\\"value\\":5}",
-  "3/8 -> 5/8: {\\"s\\":\\"lt\\",\\"note\\":44,\\"n\\":1,\\"cut\\":1,\\"attack\\":0.05,\\"decay\\":0.1,\\"sustain\\":0.2,\\"release\\":2,\\"pan\\":0.5,\\"value\\":5}",
-  "3/8 -> 5/8: {\\"s\\":\\"lt\\",\\"note\\":44,\\"n\\":1,\\"cut\\":1,\\"attack\\":0.05,\\"decay\\":0.1,\\"sustain\\":0.2,\\"release\\":2,\\"pan\\":0,\\"value\\":5}",
-  "3/8 -> 5/8: {\\"s\\":\\"lt\\",\\"note\\":30,\\"n\\":1,\\"cut\\":1,\\"attack\\":0.05,\\"decay\\":0.1,\\"sustain\\":0.2,\\"release\\":2,\\"pan\\":0,\\"value\\":5}",
-  "3/8 -> 5/8: {\\"s\\":\\"lt\\",\\"note\\":30,\\"n\\":1,\\"cut\\":0,\\"attack\\":0.05,\\"decay\\":0.1,\\"sustain\\":0.2,\\"release\\":2,\\"pan\\":0,\\"value\\":5}",
-  "1/8 -> 3/8: {\\"s\\":\\"hh\\",\\"note\\":30,\\"n\\":1,\\"cut\\":0,\\"attack\\":0.05,\\"decay\\":0.01,\\"sustain\\":0.6,\\"release\\":2,\\"pan\\":0.5,\\"value\\":5}",
-  "1/8 -> 3/8: {\\"s\\":\\"hh\\",\\"note\\":30,\\"n\\":2,\\"cut\\":0,\\"attack\\":0.05,\\"decay\\":0.01,\\"sustain\\":0.6,\\"release\\":2,\\"pan\\":0.5,\\"value\\":5}",
-  "1/8 -> 3/8: {\\"s\\":\\"hh\\",\\"note\\":30,\\"n\\":2,\\"cut\\":1,\\"attack\\":0.05,\\"decay\\":0.01,\\"sustain\\":0.6,\\"release\\":2,\\"pan\\":0.5,\\"value\\":5}",
-  "1/8 -> 3/8: {\\"s\\":\\"hh\\",\\"note\\":30,\\"n\\":2,\\"cut\\":1,\\"attack\\":0.05,\\"decay\\":0.01,\\"sustain\\":0.6,\\"release\\":2,\\"pan\\":1,\\"value\\":5}",
-  "-1/8 -> 1/8: {\\"s\\":\\"bd\\",\\"note\\":30,\\"n\\":2,\\"cut\\":1,\\"attack\\":0.05,\\"decay\\":0.01,\\"sustain\\":0.6,\\"release\\":2,\\"pan\\":1,\\"value\\":5}",
-  "-1/8 -> 1/8: {\\"s\\":\\"bd\\",\\"note\\":30,\\"n\\":2,\\"cut\\":1,\\"attack\\":0.01,\\"decay\\":0.01,\\"sustain\\":0.6,\\"release\\":2,\\"pan\\":1,\\"value\\":5}",
-  "-1/8 -> 1/8: {\\"s\\":\\"bd\\",\\"note\\":30,\\"n\\":2,\\"cut\\":0,\\"attack\\":0.01,\\"decay\\":0.01,\\"sustain\\":0.6,\\"release\\":2,\\"pan\\":1,\\"value\\":5}",
-  "1/8 -> 5/4: {\\"s\\":\\"bd\\",\\"note\\":44,\\"n\\":1,\\"cut\\":2,\\"attack\\":0.01,\\"decay\\":0.01,\\"sustain\\":0.6,\\"release\\":2,\\"pan\\":1,\\"value\\":6}",
-  "1/8 -> 5/4: {\\"s\\":\\"bd\\",\\"note\\":44,\\"n\\":1,\\"cut\\":2,\\"attack\\":0.05,\\"decay\\":0.01,\\"sustain\\":0.6,\\"release\\":2,\\"pan\\":1,\\"value\\":6}",
-  "1/8 -> 5/4: {\\"s\\":\\"bd\\",\\"note\\":44,\\"n\\":2,\\"cut\\":2,\\"attack\\":0.05,\\"decay\\":0.01,\\"sustain\\":0.6,\\"release\\":2,\\"pan\\":0.5,\\"value\\":6}",
-  "1/8 -> 5/4: {\\"s\\":\\"bd\\",\\"note\\":44,\\"n\\":2,\\"cut\\":1,\\"attack\\":0.05,\\"decay\\":0.01,\\"sustain\\":0.6,\\"release\\":2,\\"pan\\":0.5,\\"value\\":6}",
-  "3/4 -> 1/1: {\\"s\\":\\"bd\\",\\"note\\":44,\\"n\\":1,\\"cut\\":2,\\"attack\\":0.01,\\"decay\\":0.01,\\"sustain\\":0.6,\\"release\\":2,\\"pan\\":1,\\"value\\":6}",
-  "3/4 -> 1/1: {\\"s\\":\\"bd\\",\\"note\\":44,\\"n\\":1,\\"cut\\":2,\\"attack\\":0.05,\\"decay\\":0.01,\\"sustain\\":0.6,\\"release\\":2,\\"pan\\":1,\\"value\\":6}",
-  "3/4 -> 1/1: {\\"s\\":\\"bd\\",\\"note\\":44,\\"n\\":2,\\"cut\\":2,\\"attack\\":0.05,\\"decay\\":0.01,\\"sustain\\":0.6,\\"release\\":2,\\"pan\\":0.5,\\"value\\":6}",
-  "3/4 -> 1/1: {\\"s\\":\\"bd\\",\\"note\\":44,\\"n\\":2,\\"cut\\":1,\\"attack\\":0.05,\\"decay\\":0.01,\\"sustain\\":0.6,\\"release\\":2,\\"pan\\":0.5,\\"value\\":6}",
-  "1/8 -> 5/4: {\\"s\\":\\"bd\\",\\"note\\":30,\\"n\\":2,\\"cut\\":1,\\"attack\\":0.05,\\"decay\\":0.1,\\"sustain\\":0.2,\\"release\\":2,\\"pan\\":0.5,\\"value\\":6}",
-  "1/8 -> 5/4: {\\"s\\":\\"bd\\",\\"note\\":30,\\"n\\":2,\\"cut\\":1,\\"attack\\":0.05,\\"decay\\":0.1,\\"sustain\\":0.2,\\"release\\":2,\\"pan\\":0,\\"value\\":6}",
-  "1/8 -> 5/4: {\\"s\\":\\"bd\\",\\"note\\":30,\\"n\\":2,\\"cut\\":2,\\"attack\\":0.05,\\"decay\\":0.1,\\"sustain\\":0.2,\\"release\\":2,\\"pan\\":0,\\"value\\":6}",
-  "1/8 -> 5/4: {\\"s\\":\\"bd\\",\\"note\\":30,\\"n\\":2,\\"cut\\":2,\\"attack\\":0.05,\\"decay\\":0.1,\\"sustain\\":0.2,\\"release\\":2,\\"pan\\":0.5,\\"value\\":6}",
-  "1/8 -> 5/4: {\\"s\\":\\"bd\\",\\"note\\":30,\\"n\\":2,\\"cut\\":2,\\"attack\\":0.05,\\"decay\\":0.1,\\"sustain\\":0.2,\\"release\\":2,\\"pan\\":0.5,\\"value\\":6}",
-  "1/8 -> 5/4: {\\"s\\":\\"bd\\",\\"note\\":30,\\"n\\":2,\\"cut\\":2,\\"attack\\":0.01,\\"decay\\":0.1,\\"sustain\\":0.2,\\"release\\":2,\\"pan\\":0.5,\\"value\\":6}",
-  "1/8 -> 5/4: {\\"s\\":\\"bd\\",\\"note\\":30,\\"n\\":2,\\"cut\\":2,\\"attack\\":0.01,\\"decay\\":0.1,\\"sustain\\":0.2,\\"release\\":2,\\"pan\\":1,\\"value\\":6}",
-  "1/8 -> 5/4: {\\"s\\":\\"bd\\",\\"note\\":30,\\"n\\":2,\\"cut\\":1,\\"attack\\":0.01,\\"decay\\":0.01,\\"sustain\\":0.6,\\"release\\":2,\\"pan\\":1,\\"value\\":6}",
-  "1/8 -> 5/4: {\\"s\\":\\"bd\\",\\"note\\":30,\\"n\\":2,\\"cut\\":1,\\"attack\\":0.01,\\"decay\\":0.01,\\"sustain\\":0.6,\\"release\\":2,\\"pan\\":1,\\"value\\":6}",
-  "1/8 -> 5/4: {\\"s\\":\\"bd\\",\\"note\\":30,\\"n\\":3,\\"cut\\":1,\\"attack\\":0.01,\\"decay\\":0.01,\\"sustain\\":0.6,\\"release\\":2,\\"pan\\":1,\\"value\\":6}",
-  "-1/1 -> 1/8: {\\"s\\":\\"birds\\",\\"note\\":30,\\"n\\":3,\\"cut\\":1,\\"attack\\":0.01,\\"decay\\":0.01,\\"sustain\\":0.6,\\"release\\":2,\\"pan\\":0.5,\\"value\\":6}",
-  "-1/1 -> 1/8: {\\"s\\":\\"birds\\",\\"note\\":30,\\"n\\":3,\\"cut\\":0,\\"attack\\":0.01,\\"decay\\":0.01,\\"sustain\\":0.6,\\"release\\":2,\\"pan\\":0.5,\\"value\\":6}",
-  "1/2 -> 3/4: {\\"s\\":\\"hh\\",\\"note\\":30,\\"n\\":2,\\"cut\\":1,\\"attack\\":0.05,\\"decay\\":0.1,\\"sustain\\":0.2,\\"release\\":2,\\"pan\\":0.5,\\"value\\":6}",
-  "1/2 -> 3/4: {\\"s\\":\\"hh\\",\\"note\\":30,\\"n\\":2,\\"cut\\":1,\\"attack\\":0.05,\\"decay\\":0.1,\\"sustain\\":0.2,\\"release\\":2,\\"pan\\":0,\\"value\\":6}",
-  "1/2 -> 3/4: {\\"s\\":\\"hh\\",\\"note\\":30,\\"n\\":2,\\"cut\\":2,\\"attack\\":0.05,\\"decay\\":0.1,\\"sustain\\":0.2,\\"release\\":2,\\"pan\\":0,\\"value\\":6}",
-  "1/4 -> 1/2: {\\"s\\":\\"lt\\",\\"note\\":30,\\"n\\":2,\\"cut\\":2,\\"attack\\":0.05,\\"decay\\":0.1,\\"sustain\\":0.2,\\"release\\":2,\\"pan\\":0.5,\\"value\\":6}",
-  "1/4 -> 1/2: {\\"s\\":\\"lt\\",\\"note\\":30,\\"n\\":2,\\"cut\\":2,\\"attack\\":0.05,\\"decay\\":0.1,\\"sustain\\":0.2,\\"release\\":2,\\"pan\\":0.5,\\"value\\":6}",
-  "1/4 -> 1/2: {\\"s\\":\\"lt\\",\\"note\\":30,\\"n\\":2,\\"cut\\":2,\\"attack\\":0.01,\\"decay\\":0.1,\\"sustain\\":0.2,\\"release\\":2,\\"pan\\":0.5,\\"value\\":6}",
-  "1/4 -> 1/2: {\\"s\\":\\"lt\\",\\"note\\":30,\\"n\\":2,\\"cut\\":2,\\"attack\\":0.01,\\"decay\\":0.1,\\"sustain\\":0.2,\\"release\\":2,\\"pan\\":1,\\"value\\":6}",
-  "0/1 -> 1/4: {\\"s\\":\\"hh\\",\\"note\\":30,\\"n\\":2,\\"cut\\":1,\\"attack\\":0.01,\\"decay\\":0.01,\\"sustain\\":0.6,\\"release\\":2,\\"pan\\":1,\\"value\\":6}",
-  "0/1 -> 1/4: {\\"s\\":\\"hh\\",\\"note\\":30,\\"n\\":2,\\"cut\\":1,\\"attack\\":0.01,\\"decay\\":0.01,\\"sustain\\":0.6,\\"release\\":2,\\"pan\\":1,\\"value\\":6}",
-  "0/1 -> 1/4: {\\"s\\":\\"hh\\",\\"note\\":30,\\"n\\":3,\\"cut\\":1,\\"attack\\":0.01,\\"decay\\":0.01,\\"sustain\\":0.6,\\"release\\":2,\\"pan\\":1,\\"value\\":6}",
-  "0/1 -> 1/4: {\\"s\\":\\"hh\\",\\"note\\":30,\\"n\\":3,\\"cut\\":1,\\"attack\\":0.01,\\"decay\\":0.01,\\"sustain\\":0.6,\\"release\\":2,\\"pan\\":0.5,\\"value\\":6}",
-  "0/1 -> 1/4: {\\"s\\":\\"hh\\",\\"note\\":30,\\"n\\":3,\\"cut\\":0,\\"attack\\":0.01,\\"decay\\":0.01,\\"sustain\\":0.6,\\"release\\":2,\\"pan\\":0.5,\\"value\\":6}",
-]
-`;
-
-exports[`renders shared tunes > shared tune 211 https://strudel.cc/?o5LLePbx8kiQ 1`] = `
-[
-  "-1/8 -> 1/1: {\\"s\\":\\"bd\\",\\"note\\":44,\\"n\\":0,\\"cut\\":1,\\"attack\\":0.01,\\"decay\\":0.1,\\"sustain\\":0.2,\\"release\\":2,\\"pan\\":0.5,\\"value\\":4}",
-  "-1/8 -> 1/1: {\\"s\\":\\"bd\\",\\"note\\":44,\\"n\\":0,\\"cut\\":1,\\"attack\\":0.01,\\"decay\\":0.1,\\"sustain\\":0.2,\\"release\\":2,\\"pan\\":1,\\"value\\":4}",
-  "-1/8 -> 1/1: {\\"s\\":\\"bd\\",\\"note\\":44,\\"n\\":0,\\"cut\\":0,\\"attack\\":0.01,\\"decay\\":0.1,\\"sustain\\":0.2,\\"release\\":2,\\"pan\\":1,\\"value\\":4}",
-  "-1/8 -> 1/1: {\\"s\\":\\"bd\\",\\"note\\":44,\\"n\\":0,\\"cut\\":0,\\"attack\\":0.01,\\"decay\\":0.01,\\"sustain\\":0.2,\\"release\\":2,\\"pan\\":1,\\"value\\":4}",
-  "-1/8 -> 1/1: {\\"s\\":\\"bd\\",\\"note\\":44,\\"n\\":0,\\"cut\\":0,\\"attack\\":0.01,\\"decay\\":0.01,\\"sustain\\":0.2,\\"release\\":2,\\"pan\\":0.5,\\"value\\":4}",
-  "-1/8 -> 1/1: {\\"s\\":\\"bd\\",\\"note\\":44,\\"n\\":0,\\"cut\\":1,\\"attack\\":0.01,\\"decay\\":0.01,\\"sustain\\":0.2,\\"release\\":2,\\"pan\\":0.5,\\"value\\":4}",
-  "-1/8 -> 1/1: {\\"s\\":\\"bd\\",\\"note\\":44,\\"n\\":0,\\"cut\\":1,\\"attack\\":0.05,\\"decay\\":0.01,\\"sustain\\":0.2,\\"release\\":2,\\"pan\\":0.5,\\"value\\":4}",
-  "-1/8 -> 1/1: {\\"s\\":\\"bd\\",\\"note\\":44,\\"n\\":0,\\"cut\\":1,\\"attack\\":0.05,\\"decay\\":0.01,\\"sustain\\":0.6,\\"release\\":2,\\"pan\\":0.5,\\"value\\":4}",
-  "-1/8 -> 1/1: {\\"s\\":\\"bd\\",\\"note\\":44,\\"n\\":0,\\"cut\\":1,\\"attack\\":0.05,\\"decay\\":0.01,\\"sustain\\":0.6,\\"release\\":2,\\"pan\\":0,\\"value\\":4}",
-  "-1/8 -> 1/1: {\\"s\\":\\"bd\\",\\"note\\":44,\\"n\\":0,\\"cut\\":0,\\"attack\\":0.05,\\"decay\\":0.01,\\"sustain\\":0.6,\\"release\\":2,\\"pan\\":0,\\"value\\":4}",
-  "-1/8 -> 1/1: {\\"s\\":\\"bd\\",\\"note\\":44,\\"n\\":0,\\"cut\\":0,\\"attack\\":0.05,\\"decay\\":0.9,\\"sustain\\":0.6,\\"release\\":2,\\"pan\\":0,\\"value\\":4}",
-  "-1/8 -> 1/1: {\\"s\\":\\"bd\\",\\"note\\":44,\\"n\\":1,\\"cut\\":0,\\"attack\\":0.05,\\"decay\\":0.9,\\"sustain\\":0.6,\\"release\\":2,\\"pan\\":0,\\"value\\":4}",
-  "-1/8 -> 1/1: {\\"s\\":\\"bd\\",\\"note\\":44,\\"n\\":1,\\"cut\\":0,\\"attack\\":0.05,\\"decay\\":0.9,\\"sustain\\":0.6,\\"release\\":2,\\"pan\\":0.5,\\"value\\":4}",
-  "-1/8 -> 1/1: {\\"s\\":\\"bd\\",\\"note\\":44,\\"n\\":1,\\"cut\\":2,\\"attack\\":0.05,\\"decay\\":0.9,\\"sustain\\":0.6,\\"release\\":2,\\"pan\\":0.5,\\"value\\":4}",
-  "-1/8 -> 1/1: {\\"s\\":\\"bd\\",\\"note\\":30,\\"n\\":1,\\"cut\\":2,\\"attack\\":0,\\"decay\\":0.9,\\"sustain\\":0.6,\\"release\\":2,\\"pan\\":0.5,\\"value\\":4}",
-  "-1/8 -> 1/1: {\\"s\\":\\"bd\\",\\"note\\":30,\\"n\\":1,\\"cut\\":2,\\"attack\\":0,\\"decay\\":0.9,\\"sustain\\":0.6,\\"release\\":2,\\"pan\\":0.5,\\"value\\":4}",
-  "-1/8 -> 1/1: {\\"s\\":\\"bd\\",\\"note\\":30,\\"n\\":1,\\"cut\\":2,\\"attack\\":0,\\"decay\\":0.9,\\"sustain\\":0.6,\\"release\\":2,\\"pan\\":1,\\"value\\":4}",
-  "-1/8 -> 1/1: {\\"s\\":\\"bd\\",\\"note\\":30,\\"n\\":1,\\"cut\\":2,\\"attack\\":0,\\"decay\\":0.9,\\"sustain\\":0.6,\\"release\\":2,\\"pan\\":1,\\"value\\":4}",
-  "3/4 -> 1/1: {\\"s\\":\\"hh\\",\\"note\\":44,\\"n\\":0,\\"cut\\":1,\\"attack\\":0.01,\\"decay\\":0.1,\\"sustain\\":0.2,\\"release\\":2,\\"pan\\":0.5,\\"value\\":4}",
-  "3/4 -> 1/1: {\\"s\\":\\"hh\\",\\"note\\":44,\\"n\\":0,\\"cut\\":1,\\"attack\\":0.01,\\"decay\\":0.1,\\"sustain\\":0.2,\\"release\\":2,\\"pan\\":1,\\"value\\":4}",
-  "3/4 -> 1/1: {\\"s\\":\\"hh\\",\\"note\\":44,\\"n\\":0,\\"cut\\":0,\\"attack\\":0.01,\\"decay\\":0.1,\\"sustain\\":0.2,\\"release\\":2,\\"pan\\":1,\\"value\\":4}",
-  "1/2 -> 3/4: {\\"s\\":\\"lt\\",\\"note\\":44,\\"n\\":0,\\"cut\\":0,\\"attack\\":0.01,\\"decay\\":0.1,\\"sustain\\":0.2,\\"release\\":2,\\"pan\\":1,\\"value\\":4}",
-  "1/2 -> 3/4: {\\"s\\":\\"lt\\",\\"note\\":44,\\"n\\":0,\\"cut\\":0,\\"attack\\":0.01,\\"decay\\":0.01,\\"sustain\\":0.2,\\"release\\":2,\\"pan\\":1,\\"value\\":4}",
-  "1/2 -> 3/4: {\\"s\\":\\"lt\\",\\"note\\":44,\\"n\\":0,\\"cut\\":0,\\"attack\\":0.01,\\"decay\\":0.01,\\"sustain\\":0.2,\\"release\\":2,\\"pan\\":0.5,\\"value\\":4}",
-  "1/2 -> 3/4: {\\"s\\":\\"lt\\",\\"note\\":44,\\"n\\":0,\\"cut\\":1,\\"attack\\":0.01,\\"decay\\":0.01,\\"sustain\\":0.2,\\"release\\":2,\\"pan\\":0.5,\\"value\\":4}",
-  "1/2 -> 3/4: {\\"s\\":\\"lt\\",\\"note\\":44,\\"n\\":0,\\"cut\\":1,\\"attack\\":0.05,\\"decay\\":0.01,\\"sustain\\":0.2,\\"release\\":2,\\"pan\\":0.5,\\"value\\":4}",
-  "1/4 -> 1/2: {\\"s\\":\\"hh\\",\\"note\\":44,\\"n\\":0,\\"cut\\":1,\\"attack\\":0.05,\\"decay\\":0.01,\\"sustain\\":0.6,\\"release\\":2,\\"pan\\":0.5,\\"value\\":4}",
-  "1/4 -> 1/2: {\\"s\\":\\"hh\\",\\"note\\":44,\\"n\\":0,\\"cut\\":1,\\"attack\\":0.05,\\"decay\\":0.01,\\"sustain\\":0.6,\\"release\\":2,\\"pan\\":0,\\"value\\":4}",
-  "1/4 -> 1/2: {\\"s\\":\\"hh\\",\\"note\\":44,\\"n\\":0,\\"cut\\":0,\\"attack\\":0.05,\\"decay\\":0.01,\\"sustain\\":0.6,\\"release\\":2,\\"pan\\":0,\\"value\\":4}",
-  "1/4 -> 1/2: {\\"s\\":\\"hh\\",\\"note\\":44,\\"n\\":0,\\"cut\\":0,\\"attack\\":0.05,\\"decay\\":0.9,\\"sustain\\":0.6,\\"release\\":2,\\"pan\\":0,\\"value\\":4}",
-  "1/4 -> 1/2: {\\"s\\":\\"hh\\",\\"note\\":44,\\"n\\":1,\\"cut\\":0,\\"attack\\":0.05,\\"decay\\":0.9,\\"sustain\\":0.6,\\"release\\":2,\\"pan\\":0,\\"value\\":4}",
-  "0/1 -> 1/4: {\\"s\\":\\"bd\\",\\"note\\":44,\\"n\\":1,\\"cut\\":0,\\"attack\\":0.05,\\"decay\\":0.9,\\"sustain\\":0.6,\\"release\\":2,\\"pan\\":0.5,\\"value\\":4}",
-  "0/1 -> 1/4: {\\"s\\":\\"bd\\",\\"note\\":44,\\"n\\":1,\\"cut\\":2,\\"attack\\":0.05,\\"decay\\":0.9,\\"sustain\\":0.6,\\"release\\":2,\\"pan\\":0.5,\\"value\\":4}",
-  "0/1 -> 1/4: {\\"s\\":\\"bd\\",\\"note\\":30,\\"n\\":1,\\"cut\\":2,\\"attack\\":0,\\"decay\\":0.9,\\"sustain\\":0.6,\\"release\\":2,\\"pan\\":0.5,\\"value\\":4}",
-  "0/1 -> 1/4: {\\"s\\":\\"bd\\",\\"note\\":30,\\"n\\":1,\\"cut\\":2,\\"attack\\":0,\\"decay\\":0.9,\\"sustain\\":0.6,\\"release\\":2,\\"pan\\":0.5,\\"value\\":4}",
-  "0/1 -> 1/4: {\\"s\\":\\"bd\\",\\"note\\":30,\\"n\\":1,\\"cut\\":2,\\"attack\\":0,\\"decay\\":0.9,\\"sustain\\":0.6,\\"release\\":2,\\"pan\\":1,\\"value\\":4}",
-  "0/1 -> 1/4: {\\"s\\":\\"bd\\",\\"note\\":30,\\"n\\":1,\\"cut\\":2,\\"attack\\":0,\\"decay\\":0.9,\\"sustain\\":0.6,\\"release\\":2,\\"pan\\":1,\\"value\\":4}",
-  "5/8 -> 7/4: {\\"s\\":\\"breaks125\\",\\"note\\":51,\\"n\\":3,\\"cut\\":2,\\"attack\\":0,\\"decay\\":0.01,\\"sustain\\":0.6,\\"release\\":2,\\"pan\\":0.5,\\"value\\":5}",
-  "5/8 -> 7/4: {\\"s\\":\\"breaks125\\",\\"note\\":51,\\"n\\":3,\\"cut\\":2,\\"attack\\":0,\\"decay\\":0.9,\\"sustain\\":0.6,\\"release\\":2,\\"pan\\":0.5,\\"value\\":5}",
-  "7/8 -> 9/8: {\\"s\\":\\"hh\\",\\"note\\":51,\\"n\\":3,\\"cut\\":2,\\"attack\\":0,\\"decay\\":0.01,\\"sustain\\":0.6,\\"release\\":2,\\"pan\\":0.5,\\"value\\":5}",
-  "7/8 -> 9/8: {\\"s\\":\\"hh\\",\\"note\\":51,\\"n\\":3,\\"cut\\":2,\\"attack\\":0,\\"decay\\":0.9,\\"sustain\\":0.6,\\"release\\":2,\\"pan\\":0.5,\\"value\\":5}",
-  "1/2 -> 17/16: {\\"s\\":\\"ht\\",\\"note\\":30,\\"n\\":1,\\"cut\\":0,\\"attack\\":0,\\"decay\\":0.01,\\"sustain\\":0.6,\\"release\\":2,\\"pan\\":0.5,\\"value\\":5}",
-  "1/2 -> 17/16: {\\"s\\":\\"ht\\",\\"note\\":30,\\"n\\":2,\\"cut\\":0,\\"attack\\":0,\\"decay\\":0.01,\\"sustain\\":0.6,\\"release\\":2,\\"pan\\":0.5,\\"value\\":5}",
-  "1/2 -> 17/16: {\\"s\\":\\"ht\\",\\"note\\":30,\\"n\\":2,\\"cut\\":1,\\"attack\\":0,\\"decay\\":0.01,\\"sustain\\":0.6,\\"release\\":2,\\"pan\\":0.5,\\"value\\":5}",
-  "1/2 -> 17/16: {\\"s\\":\\"ht\\",\\"note\\":30,\\"n\\":2,\\"cut\\":1,\\"attack\\":0,\\"decay\\":0.9,\\"sustain\\":0.6,\\"release\\":2,\\"pan\\":0.5,\\"value\\":5}",
-  "1/2 -> 17/16: {\\"s\\":\\"ht\\",\\"note\\":30,\\"n\\":2,\\"cut\\":1,\\"attack\\":0,\\"decay\\":0.9,\\"sustain\\":0.6,\\"release\\":2,\\"pan\\":1,\\"value\\":5}",
-  "1/2 -> 17/16: {\\"s\\":\\"ht\\",\\"note\\":30,\\"n\\":2,\\"cut\\":1,\\"attack\\":0.01,\\"decay\\":0.9,\\"sustain\\":0.6,\\"release\\":2,\\"pan\\":1,\\"value\\":5}",
-  "1/2 -> 17/16: {\\"s\\":\\"ht\\",\\"note\\":30,\\"n\\":2,\\"cut\\":0,\\"attack\\":0.01,\\"decay\\":0.9,\\"sustain\\":0.6,\\"release\\":2,\\"pan\\":1,\\"value\\":5}",
-  "1/2 -> 13/8: {\\"s\\":\\"bd\\",\\"note\\":30,\\"n\\":1,\\"cut\\":0,\\"attack\\":0,\\"decay\\":0.01,\\"sustain\\":0.6,\\"release\\":2,\\"pan\\":0.5,\\"value\\":5}",
-  "1/2 -> 13/8: {\\"s\\":\\"bd\\",\\"note\\":30,\\"n\\":2,\\"cut\\":0,\\"attack\\":0,\\"decay\\":0.01,\\"sustain\\":0.6,\\"release\\":2,\\"pan\\":0.5,\\"value\\":5}",
-  "1/2 -> 13/8: {\\"s\\":\\"bd\\",\\"note\\":30,\\"n\\":2,\\"cut\\":1,\\"attack\\":0,\\"decay\\":0.01,\\"sustain\\":0.6,\\"release\\":2,\\"pan\\":0.5,\\"value\\":5}",
-  "1/2 -> 13/8: {\\"s\\":\\"bd\\",\\"note\\":30,\\"n\\":2,\\"cut\\":1,\\"attack\\":0,\\"decay\\":0.9,\\"sustain\\":0.6,\\"release\\":2,\\"pan\\":0.5,\\"value\\":5}",
-  "1/2 -> 13/8: {\\"s\\":\\"bd\\",\\"note\\":30,\\"n\\":2,\\"cut\\":1,\\"attack\\":0,\\"decay\\":0.9,\\"sustain\\":0.6,\\"release\\":2,\\"pan\\":1,\\"value\\":5}",
-  "1/2 -> 13/8: {\\"s\\":\\"bd\\",\\"note\\":30,\\"n\\":2,\\"cut\\":1,\\"attack\\":0.01,\\"decay\\":0.9,\\"sustain\\":0.6,\\"release\\":2,\\"pan\\":1,\\"value\\":5}",
-  "1/2 -> 13/8: {\\"s\\":\\"bd\\",\\"note\\":30,\\"n\\":2,\\"cut\\":0,\\"attack\\":0.01,\\"decay\\":0.9,\\"sustain\\":0.6,\\"release\\":2,\\"pan\\":1,\\"value\\":5}",
-  "-5/8 -> 1/2: {\\"s\\":\\"breaks125\\",\\"note\\":30,\\"n\\":2,\\"cut\\":0,\\"attack\\":0.01,\\"decay\\":0.9,\\"sustain\\":0.6,\\"release\\":2,\\"pan\\":0.5,\\"value\\":5}",
-  "5/8 -> 7/8: {\\"s\\":\\"hh\\",\\"note\\":30,\\"n\\":1,\\"cut\\":0,\\"attack\\":0,\\"decay\\":0.01,\\"sustain\\":0.6,\\"release\\":2,\\"pan\\":0.5,\\"value\\":5}",
-  "5/8 -> 7/8: {\\"s\\":\\"hh\\",\\"note\\":30,\\"n\\":2,\\"cut\\":0,\\"attack\\":0,\\"decay\\":0.01,\\"sustain\\":0.6,\\"release\\":2,\\"pan\\":0.5,\\"value\\":5}",
-  "5/8 -> 7/8: {\\"s\\":\\"hh\\",\\"note\\":30,\\"n\\":2,\\"cut\\":1,\\"attack\\":0,\\"decay\\":0.01,\\"sustain\\":0.6,\\"release\\":2,\\"pan\\":0.5,\\"value\\":5}",
-  "5/8 -> 7/8: {\\"s\\":\\"hh\\",\\"note\\":30,\\"n\\":2,\\"cut\\":1,\\"attack\\":0,\\"decay\\":0.9,\\"sustain\\":0.6,\\"release\\":2,\\"pan\\":0.5,\\"value\\":5}",
-  "5/8 -> 7/8: {\\"s\\":\\"hh\\",\\"note\\":30,\\"n\\":2,\\"cut\\":1,\\"attack\\":0,\\"decay\\":0.9,\\"sustain\\":0.6,\\"release\\":2,\\"pan\\":1,\\"value\\":5}",
-  "3/8 -> 5/8: {\\"s\\":\\"bd\\",\\"note\\":30,\\"n\\":2,\\"cut\\":1,\\"attack\\":0,\\"decay\\":0.9,\\"sustain\\":0.6,\\"release\\":2,\\"pan\\":1,\\"value\\":5}",
-  "3/8 -> 5/8: {\\"s\\":\\"bd\\",\\"note\\":30,\\"n\\":2,\\"cut\\":1,\\"attack\\":0.01,\\"decay\\":0.9,\\"sustain\\":0.6,\\"release\\":2,\\"pan\\":1,\\"value\\":5}",
-  "3/8 -> 5/8: {\\"s\\":\\"bd\\",\\"note\\":30,\\"n\\":2,\\"cut\\":0,\\"attack\\":0.01,\\"decay\\":0.9,\\"sustain\\":0.6,\\"release\\":2,\\"pan\\":1,\\"value\\":5}",
-  "3/8 -> 5/8: {\\"s\\":\\"bd\\",\\"note\\":30,\\"n\\":2,\\"cut\\":0,\\"attack\\":0.01,\\"decay\\":0.9,\\"sustain\\":0.6,\\"release\\":2,\\"pan\\":0.5,\\"value\\":5}",
-  "-5/8 -> 1/2: {\\"s\\":\\"breaks125\\",\\"note\\":30,\\"n\\":2,\\"cut\\":0,\\"attack\\":0.01,\\"decay\\":0.1,\\"sustain\\":0.2,\\"release\\":2,\\"pan\\":0.5,\\"value\\":5}",
-  "-5/8 -> 1/2: {\\"s\\":\\"breaks125\\",\\"note\\":30,\\"n\\":2,\\"cut\\":2,\\"attack\\":0.01,\\"decay\\":0.1,\\"sustain\\":0.2,\\"release\\":2,\\"pan\\":0.5,\\"value\\":5}",
-  "-5/8 -> 1/2: {\\"s\\":\\"breaks125\\",\\"note\\":30,\\"n\\":2,\\"cut\\":2,\\"attack\\":0.01,\\"decay\\":0.1,\\"sustain\\":0.2,\\"release\\":2,\\"pan\\":0,\\"value\\":5}",
-  "-5/8 -> 1/2: {\\"s\\":\\"breaks125\\",\\"note\\":30,\\"n\\":2,\\"cut\\":2,\\"attack\\":0.01,\\"decay\\":0.1,\\"sustain\\":0.2,\\"release\\":2,\\"pan\\":0,\\"value\\":5}",
-  "-5/8 -> 1/2: {\\"s\\":\\"breaks125\\",\\"note\\":51,\\"n\\":2,\\"cut\\":2,\\"attack\\":0.05,\\"decay\\":0.1,\\"sustain\\":0.2,\\"release\\":2,\\"pan\\":0,\\"value\\":5}",
-  "-5/8 -> 1/2: {\\"s\\":\\"breaks125\\",\\"note\\":51,\\"n\\":2,\\"cut\\":2,\\"attack\\":0.05,\\"decay\\":0.1,\\"sustain\\":0.2,\\"release\\":2,\\"pan\\":0,\\"value\\":5}",
-  "-5/8 -> 1/2: {\\"s\\":\\"breaks125\\",\\"note\\":51,\\"n\\":2,\\"cut\\":2,\\"attack\\":0.05,\\"decay\\":0.1,\\"sustain\\":0.2,\\"release\\":2,\\"pan\\":0.5,\\"value\\":5}",
-  "-5/8 -> 1/2: {\\"s\\":\\"breaks125\\",\\"note\\":51,\\"n\\":3,\\"cut\\":2,\\"attack\\":0.05,\\"decay\\":0.1,\\"sustain\\":0.2,\\"release\\":2,\\"pan\\":0.5,\\"value\\":5}",
-  "-5/8 -> 1/2: {\\"s\\":\\"breaks125\\",\\"note\\":51,\\"n\\":3,\\"cut\\":2,\\"attack\\":0.05,\\"decay\\":0.01,\\"sustain\\":0.2,\\"release\\":2,\\"pan\\":0.5,\\"value\\":5}",
-  "1/8 -> 3/8: {\\"s\\":\\"hh\\",\\"note\\":30,\\"n\\":2,\\"cut\\":0,\\"attack\\":0.01,\\"decay\\":0.1,\\"sustain\\":0.2,\\"release\\":2,\\"pan\\":0.5,\\"value\\":5}",
-  "1/8 -> 3/8: {\\"s\\":\\"hh\\",\\"note\\":30,\\"n\\":2,\\"cut\\":2,\\"attack\\":0.01,\\"decay\\":0.1,\\"sustain\\":0.2,\\"release\\":2,\\"pan\\":0.5,\\"value\\":5}",
-  "1/8 -> 3/8: {\\"s\\":\\"hh\\",\\"note\\":30,\\"n\\":2,\\"cut\\":2,\\"attack\\":0.01,\\"decay\\":0.1,\\"sustain\\":0.2,\\"release\\":2,\\"pan\\":0,\\"value\\":5}",
-  "1/8 -> 3/8: {\\"s\\":\\"hh\\",\\"note\\":30,\\"n\\":2,\\"cut\\":2,\\"attack\\":0.01,\\"decay\\":0.1,\\"sustain\\":0.2,\\"release\\":2,\\"pan\\":0,\\"value\\":5}",
-  "1/8 -> 3/8: {\\"s\\":\\"hh\\",\\"note\\":51,\\"n\\":2,\\"cut\\":2,\\"attack\\":0.05,\\"decay\\":0.1,\\"sustain\\":0.2,\\"release\\":2,\\"pan\\":0,\\"value\\":5}",
-  "1/8 -> 3/8: {\\"s\\":\\"hh\\",\\"note\\":51,\\"n\\":2,\\"cut\\":2,\\"attack\\":0.05,\\"decay\\":0.1,\\"sustain\\":0.2,\\"release\\":2,\\"pan\\":0,\\"value\\":5}",
-  "-1/8 -> 1/8: {\\"s\\":\\"lt\\",\\"note\\":51,\\"n\\":2,\\"cut\\":2,\\"attack\\":0.05,\\"decay\\":0.1,\\"sustain\\":0.2,\\"release\\":2,\\"pan\\":0.5,\\"value\\":5}",
-  "-1/8 -> 1/8: {\\"s\\":\\"lt\\",\\"note\\":51,\\"n\\":3,\\"cut\\":2,\\"attack\\":0.05,\\"decay\\":0.1,\\"sustain\\":0.2,\\"release\\":2,\\"pan\\":0.5,\\"value\\":5}",
-  "-1/8 -> 1/8: {\\"s\\":\\"lt\\",\\"note\\":51,\\"n\\":3,\\"cut\\":2,\\"attack\\":0.05,\\"decay\\":0.01,\\"sustain\\":0.2,\\"release\\":2,\\"pan\\":0.5,\\"value\\":5}",
-  "11/16 -> 5/4: {\\"s\\":\\"misc\\",\\"note\\":44,\\"n\\":1,\\"cut\\":2,\\"attack\\":0.05,\\"decay\\":0.1,\\"sustain\\":0.2,\\"release\\":2,\\"pan\\":1,\\"value\\":6}",
-  "11/16 -> 5/4: {\\"s\\":\\"misc\\",\\"note\\":44,\\"n\\":1,\\"cut\\":2,\\"attack\\":0.05,\\"decay\\":0.1,\\"sustain\\":0.2,\\"release\\":2,\\"pan\\":1,\\"value\\":6}",
-  "11/16 -> 5/4: {\\"s\\":\\"misc\\",\\"note\\":44,\\"n\\":1,\\"cut\\":2,\\"attack\\":0.05,\\"decay\\":0.1,\\"sustain\\":0.2,\\"release\\":2,\\"pan\\":0.5,\\"value\\":6}",
-  "1/8 -> 5/4: {\\"s\\":\\"bd\\",\\"note\\":44,\\"n\\":1,\\"cut\\":2,\\"attack\\":0.05,\\"decay\\":0.1,\\"sustain\\":0.2,\\"release\\":2,\\"pan\\":1,\\"value\\":6}",
-  "1/8 -> 5/4: {\\"s\\":\\"bd\\",\\"note\\":44,\\"n\\":1,\\"cut\\":2,\\"attack\\":0.05,\\"decay\\":0.1,\\"sustain\\":0.2,\\"release\\":2,\\"pan\\":1,\\"value\\":6}",
-  "1/8 -> 5/4: {\\"s\\":\\"bd\\",\\"note\\":44,\\"n\\":1,\\"cut\\":2,\\"attack\\":0.05,\\"decay\\":0.1,\\"sustain\\":0.2,\\"release\\":2,\\"pan\\":0.5,\\"value\\":6}",
-  "3/4 -> 1/1: {\\"s\\":\\"hh\\",\\"note\\":44,\\"n\\":1,\\"cut\\":2,\\"attack\\":0.05,\\"decay\\":0.1,\\"sustain\\":0.2,\\"release\\":2,\\"pan\\":1,\\"value\\":6}",
-  "3/4 -> 1/1: {\\"s\\":\\"hh\\",\\"note\\":44,\\"n\\":1,\\"cut\\":2,\\"attack\\":0.05,\\"decay\\":0.1,\\"sustain\\":0.2,\\"release\\":2,\\"pan\\":1,\\"value\\":6}",
-  "3/4 -> 1/1: {\\"s\\":\\"hh\\",\\"note\\":44,\\"n\\":1,\\"cut\\":2,\\"attack\\":0.05,\\"decay\\":0.1,\\"sustain\\":0.2,\\"release\\":2,\\"pan\\":0.5,\\"value\\":6}",
-  "-1/4 -> 7/8: {\\"s\\":\\"breaks125\\",\\"note\\":30,\\"n\\":2,\\"cut\\":0,\\"attack\\":0.01,\\"decay\\":0.1,\\"sustain\\":0.2,\\"release\\":2,\\"pan\\":0.5,\\"value\\":6}",
-  "-1/4 -> 7/8: {\\"s\\":\\"breaks125\\",\\"note\\":30,\\"n\\":2,\\"cut\\":2,\\"attack\\":0.01,\\"decay\\":0.1,\\"sustain\\":0.2,\\"release\\":2,\\"pan\\":0.5,\\"value\\":6}",
-  "-1/4 -> 7/8: {\\"s\\":\\"breaks125\\",\\"note\\":30,\\"n\\":2,\\"cut\\":2,\\"attack\\":0.01,\\"decay\\":0.1,\\"sustain\\":0.2,\\"release\\":2,\\"pan\\":0,\\"value\\":6}",
-  "-1/4 -> 7/8: {\\"s\\":\\"breaks125\\",\\"note\\":30,\\"n\\":2,\\"cut\\":2,\\"attack\\":0.01,\\"decay\\":0.1,\\"sustain\\":0.2,\\"release\\":2,\\"pan\\":0,\\"value\\":6}",
-  "-1/4 -> 7/8: {\\"s\\":\\"breaks125\\",\\"note\\":51,\\"n\\":2,\\"cut\\":2,\\"attack\\":0.05,\\"decay\\":0.1,\\"sustain\\":0.2,\\"release\\":2,\\"pan\\":0,\\"value\\":6}",
-  "-1/4 -> 7/8: {\\"s\\":\\"breaks125\\",\\"note\\":51,\\"n\\":2,\\"cut\\":2,\\"attack\\":0.05,\\"decay\\":0.1,\\"sustain\\":0.2,\\"release\\":2,\\"pan\\":0,\\"value\\":6}",
-  "-1/4 -> 7/8: {\\"s\\":\\"breaks125\\",\\"note\\":51,\\"n\\":2,\\"cut\\":2,\\"attack\\":0.05,\\"decay\\":0.1,\\"sustain\\":0.2,\\"release\\":2,\\"pan\\":0.5,\\"value\\":6}",
-  "-1/4 -> 7/8: {\\"s\\":\\"breaks125\\",\\"note\\":51,\\"n\\":3,\\"cut\\":2,\\"attack\\":0.05,\\"decay\\":0.1,\\"sustain\\":0.2,\\"release\\":2,\\"pan\\":0.5,\\"value\\":6}",
-  "-1/4 -> 7/8: {\\"s\\":\\"breaks125\\",\\"note\\":51,\\"n\\":3,\\"cut\\":2,\\"attack\\":0.05,\\"decay\\":0.01,\\"sustain\\":0.2,\\"release\\":2,\\"pan\\":0.5,\\"value\\":6}",
-  "-1/4 -> 7/8: {\\"s\\":\\"breaks125\\",\\"note\\":51,\\"n\\":3,\\"cut\\":1,\\"attack\\":0.05,\\"decay\\":0.01,\\"sustain\\":0.2,\\"release\\":2,\\"pan\\":0.5,\\"value\\":6}",
-  "-1/4 -> 7/8: {\\"s\\":\\"breaks125\\",\\"note\\":51,\\"n\\":3,\\"cut\\":1,\\"attack\\":0.05,\\"decay\\":0.01,\\"sustain\\":0.2,\\"release\\":2,\\"pan\\":1,\\"value\\":6}",
-  "-1/4 -> 7/8: {\\"s\\":\\"breaks125\\",\\"note\\":51,\\"n\\":3,\\"cut\\":1,\\"attack\\":0.05,\\"decay\\":0.01,\\"sustain\\":0.6,\\"release\\":2,\\"pan\\":1,\\"value\\":6}",
-  "-1/4 -> 7/8: {\\"s\\":\\"breaks125\\",\\"note\\":51,\\"n\\":3,\\"cut\\":1,\\"attack\\":0,\\"decay\\":0.01,\\"sustain\\":0.6,\\"release\\":2,\\"pan\\":1,\\"value\\":6}",
-  "-1/4 -> 7/8: {\\"s\\":\\"breaks125\\",\\"note\\":51,\\"n\\":3,\\"cut\\":2,\\"attack\\":0,\\"decay\\":0.01,\\"sustain\\":0.6,\\"release\\":2,\\"pan\\":1,\\"value\\":6}",
-  "-1/4 -> 7/8: {\\"s\\":\\"breaks125\\",\\"note\\":51,\\"n\\":3,\\"cut\\":2,\\"attack\\":0,\\"decay\\":0.01,\\"sustain\\":0.6,\\"release\\":2,\\"pan\\":0.5,\\"value\\":6}",
-  "-1/4 -> 7/8: {\\"s\\":\\"breaks125\\",\\"note\\":51,\\"n\\":3,\\"cut\\":2,\\"attack\\":0,\\"decay\\":0.9,\\"sustain\\":0.6,\\"release\\":2,\\"pan\\":0.5,\\"value\\":6}",
-  "1/2 -> 3/4: {\\"s\\":\\"hh\\",\\"note\\":30,\\"n\\":2,\\"cut\\":0,\\"attack\\":0.01,\\"decay\\":0.1,\\"sustain\\":0.2,\\"release\\":2,\\"pan\\":0.5,\\"value\\":6}",
-  "1/2 -> 3/4: {\\"s\\":\\"hh\\",\\"note\\":30,\\"n\\":2,\\"cut\\":2,\\"attack\\":0.01,\\"decay\\":0.1,\\"sustain\\":0.2,\\"release\\":2,\\"pan\\":0.5,\\"value\\":6}",
-  "1/2 -> 3/4: {\\"s\\":\\"hh\\",\\"note\\":30,\\"n\\":2,\\"cut\\":2,\\"attack\\":0.01,\\"decay\\":0.1,\\"sustain\\":0.2,\\"release\\":2,\\"pan\\":0,\\"value\\":6}",
-  "1/2 -> 3/4: {\\"s\\":\\"hh\\",\\"note\\":30,\\"n\\":2,\\"cut\\":2,\\"attack\\":0.01,\\"decay\\":0.1,\\"sustain\\":0.2,\\"release\\":2,\\"pan\\":0,\\"value\\":6}",
-  "1/2 -> 3/4: {\\"s\\":\\"hh\\",\\"note\\":51,\\"n\\":2,\\"cut\\":2,\\"attack\\":0.05,\\"decay\\":0.1,\\"sustain\\":0.2,\\"release\\":2,\\"pan\\":0,\\"value\\":6}",
-  "1/2 -> 3/4: {\\"s\\":\\"hh\\",\\"note\\":51,\\"n\\":2,\\"cut\\":2,\\"attack\\":0.05,\\"decay\\":0.1,\\"sustain\\":0.2,\\"release\\":2,\\"pan\\":0,\\"value\\":6}",
-  "1/4 -> 1/2: {\\"s\\":\\"lt\\",\\"note\\":51,\\"n\\":2,\\"cut\\":2,\\"attack\\":0.05,\\"decay\\":0.1,\\"sustain\\":0.2,\\"release\\":2,\\"pan\\":0.5,\\"value\\":6}",
-  "1/4 -> 1/2: {\\"s\\":\\"lt\\",\\"note\\":51,\\"n\\":3,\\"cut\\":2,\\"attack\\":0.05,\\"decay\\":0.1,\\"sustain\\":0.2,\\"release\\":2,\\"pan\\":0.5,\\"value\\":6}",
-  "1/4 -> 1/2: {\\"s\\":\\"lt\\",\\"note\\":51,\\"n\\":3,\\"cut\\":2,\\"attack\\":0.05,\\"decay\\":0.01,\\"sustain\\":0.2,\\"release\\":2,\\"pan\\":0.5,\\"value\\":6}",
-  "1/4 -> 1/2: {\\"s\\":\\"lt\\",\\"note\\":51,\\"n\\":3,\\"cut\\":1,\\"attack\\":0.05,\\"decay\\":0.01,\\"sustain\\":0.2,\\"release\\":2,\\"pan\\":0.5,\\"value\\":6}",
-  "1/4 -> 1/2: {\\"s\\":\\"lt\\",\\"note\\":51,\\"n\\":3,\\"cut\\":1,\\"attack\\":0.05,\\"decay\\":0.01,\\"sustain\\":0.2,\\"release\\":2,\\"pan\\":1,\\"value\\":6}",
-  "0/1 -> 1/4: {\\"s\\":\\"hh\\",\\"note\\":51,\\"n\\":3,\\"cut\\":1,\\"attack\\":0.05,\\"decay\\":0.01,\\"sustain\\":0.6,\\"release\\":2,\\"pan\\":1,\\"value\\":6}",
-  "0/1 -> 1/4: {\\"s\\":\\"hh\\",\\"note\\":51,\\"n\\":3,\\"cut\\":1,\\"attack\\":0,\\"decay\\":0.01,\\"sustain\\":0.6,\\"release\\":2,\\"pan\\":1,\\"value\\":6}",
-  "0/1 -> 1/4: {\\"s\\":\\"hh\\",\\"note\\":51,\\"n\\":3,\\"cut\\":2,\\"attack\\":0,\\"decay\\":0.01,\\"sustain\\":0.6,\\"release\\":2,\\"pan\\":1,\\"value\\":6}",
-  "0/1 -> 1/4: {\\"s\\":\\"hh\\",\\"note\\":51,\\"n\\":3,\\"cut\\":2,\\"attack\\":0,\\"decay\\":0.01,\\"sustain\\":0.6,\\"release\\":2,\\"pan\\":0.5,\\"value\\":6}",
-  "0/1 -> 1/4: {\\"s\\":\\"hh\\",\\"note\\":51,\\"n\\":3,\\"cut\\":2,\\"attack\\":0,\\"decay\\":0.9,\\"sustain\\":0.6,\\"release\\":2,\\"pan\\":0.5,\\"value\\":6}",
-]
-`;
-
-exports[`renders shared tunes > shared tune 212 https://strudel.cc/?QJdSFHrNzFlO 1`] = `
-[
-  "0/1 -> 1/2: {\\"s\\":\\"bd\\",\\"delay\\":0.5,\\"delaytime\\":0.33,\\"delayfeedback\\":0.6}",
-  "1/2 -> 1/1: {\\"s\\":\\"sd\\",\\"delay\\":0.5,\\"delaytime\\":0.33,\\"delayfeedback\\":0.6}",
-  "0/1 -> 1/2: {\\"s\\":\\"hh\\",\\"delay\\":0.8,\\"delaytime\\":0.08,\\"delayfeedback\\":0.7,\\"orbit\\":2}",
-  "1/2 -> 1/1: {\\"s\\":\\"hh\\",\\"delay\\":0.8,\\"delaytime\\":0.08,\\"delayfeedback\\":0.7,\\"orbit\\":2}",
-]
-`;
-
-exports[`renders shared tunes > shared tune 213 https://strudel.cc/?Nkv2L01eF62W 1`] = `
-[
-  "0/1 -> 1/2: {\\"s\\":\\"bd\\",\\"delay\\":0.5,\\"delaytime\\":0.33,\\"delayfeedback\\":0.6,\\"speed\\":-1}",
-  "1/2 -> 1/1: {\\"s\\":\\"sd\\",\\"delay\\":0.5,\\"delaytime\\":0.33,\\"delayfeedback\\":0.6,\\"speed\\":-1}",
-  "0/1 -> 1/2: {\\"s\\":\\"hh\\",\\"delay\\":0.8,\\"delaytime\\":0.08,\\"delayfeedback\\":0.7,\\"orbit\\":2,\\"speed\\":-1}",
-  "1/2 -> 1/1: {\\"s\\":\\"hh\\",\\"delay\\":0.8,\\"delaytime\\":0.08,\\"delayfeedback\\":0.7,\\"orbit\\":2,\\"speed\\":-1}",
-]
-`;
-
-exports[`renders shared tunes > shared tune 214 https://strudel.cc/?fWCYi76JTGuA 1`] = `
-[
-  "0/1 -> 1/2: {\\"s\\":\\"bd\\",\\"delay\\":0,\\"delaytime\\":0.16,\\"delayfeedback\\":0.6,\\"speed\\":-1}",
-  "1/2 -> 1/1: {\\"s\\":\\"sd\\",\\"delay\\":0,\\"delaytime\\":0.16,\\"delayfeedback\\":0.6,\\"speed\\":-1}",
-]
-`;
-
-exports[`renders shared tunes > shared tune 215 https://strudel.cc/?yJ-qOjgrjkMk 1`] = `
-[
-  "0/1 -> 1/2: c1",
-  "1/2 -> 1/1: c1",
-  "1/2 -> 1/1: c3",
-  "0/1 -> 1/4: C1",
-  "1/4 -> 1/2: C3",
-  "1/2 -> 3/4: C1",
-  "3/4 -> 1/1: C3",
-]
-`;
-
-exports[`renders shared tunes > shared tune 216 https://strudel.cc/?UPVdAQhVNgbc 1`] = `
-[
-  "0/1 -> 1/6: {\\"note\\":\\"g3\\",\\"s\\":\\"sawtooth\\",\\"cutoff\\":4000,\\"crush\\":16}",
-  "1/6 -> 1/3: {\\"note\\":\\"g3\\",\\"s\\":\\"sawtooth\\",\\"cutoff\\":4000,\\"crush\\":16}",
-  "1/3 -> 1/2: {\\"note\\":\\"g3\\",\\"s\\":\\"triangle\\",\\"cutoff\\":4000,\\"crush\\":16}",
-  "1/2 -> 2/3: {\\"note\\":\\"g3\\",\\"s\\":\\"triangle\\",\\"cutoff\\":4000,\\"crush\\":16}",
-  "2/3 -> 5/6: {\\"note\\":\\"g3\\",\\"s\\":\\"triangle\\",\\"cutoff\\":4000,\\"crush\\":16}",
-  "5/6 -> 1/1: {\\"note\\":\\"g3\\",\\"s\\":\\"triangle\\",\\"cutoff\\":4000,\\"crush\\":16}",
-  "0/1 -> 1/6: {\\"note\\":\\"b3\\",\\"s\\":\\"sawtooth\\",\\"cutoff\\":4000,\\"crush\\":16}",
-  "1/6 -> 1/3: {\\"note\\":\\"b3\\",\\"s\\":\\"sawtooth\\",\\"cutoff\\":4000,\\"crush\\":16}",
-  "1/3 -> 1/2: {\\"note\\":\\"b3\\",\\"s\\":\\"triangle\\",\\"cutoff\\":4000,\\"crush\\":16}",
-  "1/2 -> 2/3: {\\"note\\":\\"b3\\",\\"s\\":\\"triangle\\",\\"cutoff\\":4000,\\"crush\\":16}",
-  "2/3 -> 5/6: {\\"note\\":\\"b3\\",\\"s\\":\\"triangle\\",\\"cutoff\\":4000,\\"crush\\":16}",
-  "5/6 -> 1/1: {\\"note\\":\\"b3\\",\\"s\\":\\"triangle\\",\\"cutoff\\":4000,\\"crush\\":16}",
-  "0/1 -> 1/6: {\\"note\\":\\"e4\\",\\"s\\":\\"sawtooth\\",\\"cutoff\\":4000,\\"crush\\":16}",
-  "1/6 -> 1/3: {\\"note\\":\\"e4\\",\\"s\\":\\"sawtooth\\",\\"cutoff\\":4000,\\"crush\\":16}",
-  "1/3 -> 1/2: {\\"note\\":\\"e4\\",\\"s\\":\\"triangle\\",\\"cutoff\\":4000,\\"crush\\":16}",
-  "1/2 -> 2/3: {\\"note\\":\\"e4\\",\\"s\\":\\"triangle\\",\\"cutoff\\":4000,\\"crush\\":16}",
-  "2/3 -> 5/6: {\\"note\\":\\"e4\\",\\"s\\":\\"triangle\\",\\"cutoff\\":4000,\\"crush\\":16}",
-  "5/6 -> 1/1: {\\"note\\":\\"e4\\",\\"s\\":\\"triangle\\",\\"cutoff\\":4000,\\"crush\\":16}",
-]
-`;
-
-exports[`renders shared tunes > shared tune 217 https://strudel.cc/?WDuiXaMhRRx5 1`] = `
-[
-  "0/1 -> 8/5: {\\"note\\":85,\\"s\\":\\"piano\\",\\"cutoff\\":\\"500\\"}",
-  "0/1 -> 8/5: {\\"note\\":81,\\"s\\":\\"piano\\",\\"cutoff\\":\\"500\\"}",
-  "0/1 -> 8/5: {\\"note\\":77,\\"s\\":\\"piano\\",\\"cutoff\\":\\"500\\"}",
-  "4/5 -> 16/15: {\\"note\\":98,\\"s\\":\\"piano\\",\\"cutoff\\":\\"500\\"}",
-  "0/1 -> 4/5: {\\"note\\":85,\\"s\\":\\"piano\\",\\"cutoff\\":\\"500\\"}",
-  "0/1 -> 4/5: {\\"note\\":81,\\"s\\":\\"piano\\",\\"cutoff\\":\\"500\\"}",
-  "0/1 -> 4/5: {\\"note\\":77,\\"s\\":\\"piano\\",\\"cutoff\\":\\"500\\"}",
-]
-`;
-
-exports[`renders shared tunes > shared tune 218 https://strudel.cc/?sOP6EO9TO4HO 1`] = `
-[
-  "0/1 -> 1/1: B3",
-  "0/1 -> 1/1: D4",
-  "0/1 -> 1/1: E4",
-  "0/1 -> 1/1: G4",
-  "0/1 -> 1/1: C3",
-]
-`;
-
-exports[`renders shared tunes > shared tune 219 https://strudel.cc/?ddiSv-lz2_cp 1`] = `
-[
-  "0/1 -> 1/6: {\\"note\\":53,\\"s\\":\\"sawtooth\\",\\"attack\\":0.1,\\"decay\\":0.05,\\"sustain\\":0.2,\\"cutoff\\":507.8125,\\"gain\\":0.9166666666666666}",
-  "0/1 -> 1/6: {\\"note\\":57,\\"s\\":\\"sawtooth\\",\\"attack\\":0.1,\\"decay\\":0.05,\\"sustain\\":0.2,\\"cutoff\\":507.8125,\\"gain\\":0.9166666666666666}",
-  "0/1 -> 1/6: {\\"note\\":60,\\"s\\":\\"sawtooth\\",\\"attack\\":0.1,\\"decay\\":0.05,\\"sustain\\":0.2,\\"cutoff\\":507.8125,\\"gain\\":0.9166666666666666}",
-  "0/1 -> 1/6: {\\"note\\":64,\\"s\\":\\"sawtooth\\",\\"attack\\":0.1,\\"decay\\":0.05,\\"sustain\\":0.2,\\"cutoff\\":507.8125,\\"gain\\":0.9166666666666666}",
-  "0/1 -> 1/6: {\\"note\\":53.07793132476509,\\"s\\":\\"sawtooth\\",\\"attack\\":0.1,\\"decay\\":0.05,\\"sustain\\":0.2,\\"cutoff\\":507.8125,\\"gain\\":0.9166666666666666}",
-  "0/1 -> 1/6: {\\"note\\":57.07793132476509,\\"s\\":\\"sawtooth\\",\\"attack\\":0.1,\\"decay\\":0.05,\\"sustain\\":0.2,\\"cutoff\\":507.8125,\\"gain\\":0.9166666666666666}",
-  "0/1 -> 1/6: {\\"note\\":60.07793132476509,\\"s\\":\\"sawtooth\\",\\"attack\\":0.1,\\"decay\\":0.05,\\"sustain\\":0.2,\\"cutoff\\":507.8125,\\"gain\\":0.9166666666666666}",
-  "0/1 -> 1/6: {\\"note\\":64.07793132476509,\\"s\\":\\"sawtooth\\",\\"attack\\":0.1,\\"decay\\":0.05,\\"sustain\\":0.2,\\"cutoff\\":507.8125,\\"gain\\":0.9166666666666666}",
-  "1/6 -> 1/3: {\\"note\\":53,\\"s\\":\\"sawtooth\\",\\"attack\\":0.1,\\"decay\\":0.05,\\"sustain\\":0.2,\\"cutoff\\":523.4375,\\"gain\\":0.75}",
-  "1/6 -> 1/3: {\\"note\\":57,\\"s\\":\\"sawtooth\\",\\"attack\\":0.1,\\"decay\\":0.05,\\"sustain\\":0.2,\\"cutoff\\":523.4375,\\"gain\\":0.75}",
-  "1/6 -> 1/3: {\\"note\\":60,\\"s\\":\\"sawtooth\\",\\"attack\\":0.1,\\"decay\\":0.05,\\"sustain\\":0.2,\\"cutoff\\":523.4375,\\"gain\\":0.75}",
-  "1/6 -> 1/3: {\\"note\\":64,\\"s\\":\\"sawtooth\\",\\"attack\\":0.1,\\"decay\\":0.05,\\"sustain\\":0.2,\\"cutoff\\":523.4375,\\"gain\\":0.75}",
-  "1/6 -> 1/3: {\\"note\\":53.07793132476509,\\"s\\":\\"sawtooth\\",\\"attack\\":0.1,\\"decay\\":0.05,\\"sustain\\":0.2,\\"cutoff\\":523.4375,\\"gain\\":0.75}",
-  "1/6 -> 1/3: {\\"note\\":57.07793132476509,\\"s\\":\\"sawtooth\\",\\"attack\\":0.1,\\"decay\\":0.05,\\"sustain\\":0.2,\\"cutoff\\":523.4375,\\"gain\\":0.75}",
-  "1/6 -> 1/3: {\\"note\\":60.07793132476509,\\"s\\":\\"sawtooth\\",\\"attack\\":0.1,\\"decay\\":0.05,\\"sustain\\":0.2,\\"cutoff\\":523.4375,\\"gain\\":0.75}",
-  "1/6 -> 1/3: {\\"note\\":64.07793132476509,\\"s\\":\\"sawtooth\\",\\"attack\\":0.1,\\"decay\\":0.05,\\"sustain\\":0.2,\\"cutoff\\":523.4375,\\"gain\\":0.75}",
-  "1/3 -> 1/2: {\\"note\\":53,\\"s\\":\\"sawtooth\\",\\"attack\\":0.1,\\"decay\\":0.05,\\"sustain\\":0.2,\\"cutoff\\":539.0625,\\"gain\\":0.5833333333333333}",
-  "1/3 -> 1/2: {\\"note\\":57,\\"s\\":\\"sawtooth\\",\\"attack\\":0.1,\\"decay\\":0.05,\\"sustain\\":0.2,\\"cutoff\\":539.0625,\\"gain\\":0.5833333333333333}",
-  "1/3 -> 1/2: {\\"note\\":60,\\"s\\":\\"sawtooth\\",\\"attack\\":0.1,\\"decay\\":0.05,\\"sustain\\":0.2,\\"cutoff\\":539.0625,\\"gain\\":0.5833333333333333}",
-  "1/3 -> 1/2: {\\"note\\":64,\\"s\\":\\"sawtooth\\",\\"attack\\":0.1,\\"decay\\":0.05,\\"sustain\\":0.2,\\"cutoff\\":539.0625,\\"gain\\":0.5833333333333333}",
-  "1/3 -> 1/2: {\\"note\\":53.07793132476509,\\"s\\":\\"sawtooth\\",\\"attack\\":0.1,\\"decay\\":0.05,\\"sustain\\":0.2,\\"cutoff\\":539.0625,\\"gain\\":0.5833333333333333}",
-  "1/3 -> 1/2: {\\"note\\":57.07793132476509,\\"s\\":\\"sawtooth\\",\\"attack\\":0.1,\\"decay\\":0.05,\\"sustain\\":0.2,\\"cutoff\\":539.0625,\\"gain\\":0.5833333333333333}",
-  "1/3 -> 1/2: {\\"note\\":60.07793132476509,\\"s\\":\\"sawtooth\\",\\"attack\\":0.1,\\"decay\\":0.05,\\"sustain\\":0.2,\\"cutoff\\":539.0625,\\"gain\\":0.5833333333333333}",
-  "1/3 -> 1/2: {\\"note\\":64.07793132476509,\\"s\\":\\"sawtooth\\",\\"attack\\":0.1,\\"decay\\":0.05,\\"sustain\\":0.2,\\"cutoff\\":539.0625,\\"gain\\":0.5833333333333333}",
-  "1/2 -> 2/3: {\\"note\\":53,\\"s\\":\\"sawtooth\\",\\"attack\\":0.1,\\"decay\\":0.05,\\"sustain\\":0.2,\\"cutoff\\":554.6875,\\"gain\\":0.41666666666666663}",
-  "1/2 -> 2/3: {\\"note\\":57,\\"s\\":\\"sawtooth\\",\\"attack\\":0.1,\\"decay\\":0.05,\\"sustain\\":0.2,\\"cutoff\\":554.6875,\\"gain\\":0.41666666666666663}",
-  "1/2 -> 2/3: {\\"note\\":60,\\"s\\":\\"sawtooth\\",\\"attack\\":0.1,\\"decay\\":0.05,\\"sustain\\":0.2,\\"cutoff\\":554.6875,\\"gain\\":0.41666666666666663}",
-  "1/2 -> 2/3: {\\"note\\":64,\\"s\\":\\"sawtooth\\",\\"attack\\":0.1,\\"decay\\":0.05,\\"sustain\\":0.2,\\"cutoff\\":554.6875,\\"gain\\":0.41666666666666663}",
-  "1/2 -> 2/3: {\\"note\\":53.07793132476509,\\"s\\":\\"sawtooth\\",\\"attack\\":0.1,\\"decay\\":0.05,\\"sustain\\":0.2,\\"cutoff\\":554.6875,\\"gain\\":0.41666666666666663}",
-  "1/2 -> 2/3: {\\"note\\":57.07793132476509,\\"s\\":\\"sawtooth\\",\\"attack\\":0.1,\\"decay\\":0.05,\\"sustain\\":0.2,\\"cutoff\\":554.6875,\\"gain\\":0.41666666666666663}",
-  "1/2 -> 2/3: {\\"note\\":60.07793132476509,\\"s\\":\\"sawtooth\\",\\"attack\\":0.1,\\"decay\\":0.05,\\"sustain\\":0.2,\\"cutoff\\":554.6875,\\"gain\\":0.41666666666666663}",
-  "1/2 -> 2/3: {\\"note\\":64.07793132476509,\\"s\\":\\"sawtooth\\",\\"attack\\":0.1,\\"decay\\":0.05,\\"sustain\\":0.2,\\"cutoff\\":554.6875,\\"gain\\":0.41666666666666663}",
-  "2/3 -> 5/6: {\\"note\\":53,\\"s\\":\\"sawtooth\\",\\"attack\\":0.1,\\"decay\\":0.05,\\"sustain\\":0.2,\\"cutoff\\":570.3125,\\"gain\\":0.25}",
-  "2/3 -> 5/6: {\\"note\\":57,\\"s\\":\\"sawtooth\\",\\"attack\\":0.1,\\"decay\\":0.05,\\"sustain\\":0.2,\\"cutoff\\":570.3125,\\"gain\\":0.25}",
-  "2/3 -> 5/6: {\\"note\\":60,\\"s\\":\\"sawtooth\\",\\"attack\\":0.1,\\"decay\\":0.05,\\"sustain\\":0.2,\\"cutoff\\":570.3125,\\"gain\\":0.25}",
-  "2/3 -> 5/6: {\\"note\\":64,\\"s\\":\\"sawtooth\\",\\"attack\\":0.1,\\"decay\\":0.05,\\"sustain\\":0.2,\\"cutoff\\":570.3125,\\"gain\\":0.25}",
-  "2/3 -> 5/6: {\\"note\\":53.07793132476509,\\"s\\":\\"sawtooth\\",\\"attack\\":0.1,\\"decay\\":0.05,\\"sustain\\":0.2,\\"cutoff\\":570.3125,\\"gain\\":0.25}",
-  "2/3 -> 5/6: {\\"note\\":57.07793132476509,\\"s\\":\\"sawtooth\\",\\"attack\\":0.1,\\"decay\\":0.05,\\"sustain\\":0.2,\\"cutoff\\":570.3125,\\"gain\\":0.25}",
-  "2/3 -> 5/6: {\\"note\\":60.07793132476509,\\"s\\":\\"sawtooth\\",\\"attack\\":0.1,\\"decay\\":0.05,\\"sustain\\":0.2,\\"cutoff\\":570.3125,\\"gain\\":0.25}",
-  "2/3 -> 5/6: {\\"note\\":64.07793132476509,\\"s\\":\\"sawtooth\\",\\"attack\\":0.1,\\"decay\\":0.05,\\"sustain\\":0.2,\\"cutoff\\":570.3125,\\"gain\\":0.25}",
-  "5/6 -> 1/1: {\\"note\\":53,\\"s\\":\\"sawtooth\\",\\"attack\\":0.1,\\"decay\\":0.05,\\"sustain\\":0.2,\\"cutoff\\":585.9375,\\"gain\\":0.08333333333333337}",
-  "5/6 -> 1/1: {\\"note\\":57,\\"s\\":\\"sawtooth\\",\\"attack\\":0.1,\\"decay\\":0.05,\\"sustain\\":0.2,\\"cutoff\\":585.9375,\\"gain\\":0.08333333333333337}",
-  "5/6 -> 1/1: {\\"note\\":60,\\"s\\":\\"sawtooth\\",\\"attack\\":0.1,\\"decay\\":0.05,\\"sustain\\":0.2,\\"cutoff\\":585.9375,\\"gain\\":0.08333333333333337}",
-  "5/6 -> 1/1: {\\"note\\":64,\\"s\\":\\"sawtooth\\",\\"attack\\":0.1,\\"decay\\":0.05,\\"sustain\\":0.2,\\"cutoff\\":585.9375,\\"gain\\":0.08333333333333337}",
-  "5/6 -> 1/1: {\\"note\\":53.07793132476509,\\"s\\":\\"sawtooth\\",\\"attack\\":0.1,\\"decay\\":0.05,\\"sustain\\":0.2,\\"cutoff\\":585.9375,\\"gain\\":0.08333333333333337}",
-  "5/6 -> 1/1: {\\"note\\":57.07793132476509,\\"s\\":\\"sawtooth\\",\\"attack\\":0.1,\\"decay\\":0.05,\\"sustain\\":0.2,\\"cutoff\\":585.9375,\\"gain\\":0.08333333333333337}",
-  "5/6 -> 1/1: {\\"note\\":60.07793132476509,\\"s\\":\\"sawtooth\\",\\"attack\\":0.1,\\"decay\\":0.05,\\"sustain\\":0.2,\\"cutoff\\":585.9375,\\"gain\\":0.08333333333333337}",
-  "5/6 -> 1/1: {\\"note\\":64.07793132476509,\\"s\\":\\"sawtooth\\",\\"attack\\":0.1,\\"decay\\":0.05,\\"sustain\\":0.2,\\"cutoff\\":585.9375,\\"gain\\":0.08333333333333337}",
-]
-`;
-
-exports[`renders shared tunes > shared tune 220 https://strudel.cc/?cpVS2-bO1LzP 1`] = `
-[
-  "0/1 -> 1/6: {\\"note\\":53,\\"s\\":\\"sawtooth\\",\\"attack\\":0.1,\\"decay\\":0.05,\\"sustain\\":0.2,\\"cutoff\\":507.8125,\\"gain\\":0.9166666666666666}",
-  "0/1 -> 1/6: {\\"note\\":57,\\"s\\":\\"sawtooth\\",\\"attack\\":0.1,\\"decay\\":0.05,\\"sustain\\":0.2,\\"cutoff\\":507.8125,\\"gain\\":0.9166666666666666}",
-  "0/1 -> 1/6: {\\"note\\":60,\\"s\\":\\"sawtooth\\",\\"attack\\":0.1,\\"decay\\":0.05,\\"sustain\\":0.2,\\"cutoff\\":507.8125,\\"gain\\":0.9166666666666666}",
-  "0/1 -> 1/6: {\\"note\\":64,\\"s\\":\\"sawtooth\\",\\"attack\\":0.1,\\"decay\\":0.05,\\"sustain\\":0.2,\\"cutoff\\":507.8125,\\"gain\\":0.9166666666666666}",
-  "0/1 -> 1/6: {\\"note\\":53.07793132476509,\\"s\\":\\"sawtooth\\",\\"attack\\":0.1,\\"decay\\":0.05,\\"sustain\\":0.2,\\"cutoff\\":507.8125,\\"gain\\":0.9166666666666666}",
-  "0/1 -> 1/6: {\\"note\\":57.07793132476509,\\"s\\":\\"sawtooth\\",\\"attack\\":0.1,\\"decay\\":0.05,\\"sustain\\":0.2,\\"cutoff\\":507.8125,\\"gain\\":0.9166666666666666}",
-  "0/1 -> 1/6: {\\"note\\":60.07793132476509,\\"s\\":\\"sawtooth\\",\\"attack\\":0.1,\\"decay\\":0.05,\\"sustain\\":0.2,\\"cutoff\\":507.8125,\\"gain\\":0.9166666666666666}",
-  "0/1 -> 1/6: {\\"note\\":64.07793132476509,\\"s\\":\\"sawtooth\\",\\"attack\\":0.1,\\"decay\\":0.05,\\"sustain\\":0.2,\\"cutoff\\":507.8125,\\"gain\\":0.9166666666666666}",
-  "1/6 -> 1/3: {\\"note\\":53,\\"s\\":\\"sawtooth\\",\\"attack\\":0.1,\\"decay\\":0.05,\\"sustain\\":0.2,\\"cutoff\\":523.4375,\\"gain\\":0.75}",
-  "1/6 -> 1/3: {\\"note\\":57,\\"s\\":\\"sawtooth\\",\\"attack\\":0.1,\\"decay\\":0.05,\\"sustain\\":0.2,\\"cutoff\\":523.4375,\\"gain\\":0.75}",
-  "1/6 -> 1/3: {\\"note\\":60,\\"s\\":\\"sawtooth\\",\\"attack\\":0.1,\\"decay\\":0.05,\\"sustain\\":0.2,\\"cutoff\\":523.4375,\\"gain\\":0.75}",
-  "1/6 -> 1/3: {\\"note\\":64,\\"s\\":\\"sawtooth\\",\\"attack\\":0.1,\\"decay\\":0.05,\\"sustain\\":0.2,\\"cutoff\\":523.4375,\\"gain\\":0.75}",
-  "1/6 -> 1/3: {\\"note\\":53.07793132476509,\\"s\\":\\"sawtooth\\",\\"attack\\":0.1,\\"decay\\":0.05,\\"sustain\\":0.2,\\"cutoff\\":523.4375,\\"gain\\":0.75}",
-  "1/6 -> 1/3: {\\"note\\":57.07793132476509,\\"s\\":\\"sawtooth\\",\\"attack\\":0.1,\\"decay\\":0.05,\\"sustain\\":0.2,\\"cutoff\\":523.4375,\\"gain\\":0.75}",
-  "1/6 -> 1/3: {\\"note\\":60.07793132476509,\\"s\\":\\"sawtooth\\",\\"attack\\":0.1,\\"decay\\":0.05,\\"sustain\\":0.2,\\"cutoff\\":523.4375,\\"gain\\":0.75}",
-  "1/6 -> 1/3: {\\"note\\":64.07793132476509,\\"s\\":\\"sawtooth\\",\\"attack\\":0.1,\\"decay\\":0.05,\\"sustain\\":0.2,\\"cutoff\\":523.4375,\\"gain\\":0.75}",
-  "1/3 -> 1/2: {\\"note\\":53,\\"s\\":\\"sawtooth\\",\\"attack\\":0.1,\\"decay\\":0.05,\\"sustain\\":0.2,\\"cutoff\\":539.0625,\\"gain\\":0.5833333333333333}",
-  "1/3 -> 1/2: {\\"note\\":57,\\"s\\":\\"sawtooth\\",\\"attack\\":0.1,\\"decay\\":0.05,\\"sustain\\":0.2,\\"cutoff\\":539.0625,\\"gain\\":0.5833333333333333}",
-  "1/3 -> 1/2: {\\"note\\":60,\\"s\\":\\"sawtooth\\",\\"attack\\":0.1,\\"decay\\":0.05,\\"sustain\\":0.2,\\"cutoff\\":539.0625,\\"gain\\":0.5833333333333333}",
-  "1/3 -> 1/2: {\\"note\\":64,\\"s\\":\\"sawtooth\\",\\"attack\\":0.1,\\"decay\\":0.05,\\"sustain\\":0.2,\\"cutoff\\":539.0625,\\"gain\\":0.5833333333333333}",
-  "1/3 -> 1/2: {\\"note\\":53.07793132476509,\\"s\\":\\"sawtooth\\",\\"attack\\":0.1,\\"decay\\":0.05,\\"sustain\\":0.2,\\"cutoff\\":539.0625,\\"gain\\":0.5833333333333333}",
-  "1/3 -> 1/2: {\\"note\\":57.07793132476509,\\"s\\":\\"sawtooth\\",\\"attack\\":0.1,\\"decay\\":0.05,\\"sustain\\":0.2,\\"cutoff\\":539.0625,\\"gain\\":0.5833333333333333}",
-  "1/3 -> 1/2: {\\"note\\":60.07793132476509,\\"s\\":\\"sawtooth\\",\\"attack\\":0.1,\\"decay\\":0.05,\\"sustain\\":0.2,\\"cutoff\\":539.0625,\\"gain\\":0.5833333333333333}",
-  "1/3 -> 1/2: {\\"note\\":64.07793132476509,\\"s\\":\\"sawtooth\\",\\"attack\\":0.1,\\"decay\\":0.05,\\"sustain\\":0.2,\\"cutoff\\":539.0625,\\"gain\\":0.5833333333333333}",
-  "1/2 -> 2/3: {\\"note\\":53,\\"s\\":\\"sawtooth\\",\\"attack\\":0.1,\\"decay\\":0.05,\\"sustain\\":0.2,\\"cutoff\\":554.6875,\\"gain\\":0.41666666666666663}",
-  "1/2 -> 2/3: {\\"note\\":57,\\"s\\":\\"sawtooth\\",\\"attack\\":0.1,\\"decay\\":0.05,\\"sustain\\":0.2,\\"cutoff\\":554.6875,\\"gain\\":0.41666666666666663}",
-  "1/2 -> 2/3: {\\"note\\":60,\\"s\\":\\"sawtooth\\",\\"attack\\":0.1,\\"decay\\":0.05,\\"sustain\\":0.2,\\"cutoff\\":554.6875,\\"gain\\":0.41666666666666663}",
-  "1/2 -> 2/3: {\\"note\\":64,\\"s\\":\\"sawtooth\\",\\"attack\\":0.1,\\"decay\\":0.05,\\"sustain\\":0.2,\\"cutoff\\":554.6875,\\"gain\\":0.41666666666666663}",
-  "1/2 -> 2/3: {\\"note\\":53.07793132476509,\\"s\\":\\"sawtooth\\",\\"attack\\":0.1,\\"decay\\":0.05,\\"sustain\\":0.2,\\"cutoff\\":554.6875,\\"gain\\":0.41666666666666663}",
-  "1/2 -> 2/3: {\\"note\\":57.07793132476509,\\"s\\":\\"sawtooth\\",\\"attack\\":0.1,\\"decay\\":0.05,\\"sustain\\":0.2,\\"cutoff\\":554.6875,\\"gain\\":0.41666666666666663}",
-  "1/2 -> 2/3: {\\"note\\":60.07793132476509,\\"s\\":\\"sawtooth\\",\\"attack\\":0.1,\\"decay\\":0.05,\\"sustain\\":0.2,\\"cutoff\\":554.6875,\\"gain\\":0.41666666666666663}",
-  "1/2 -> 2/3: {\\"note\\":64.07793132476509,\\"s\\":\\"sawtooth\\",\\"attack\\":0.1,\\"decay\\":0.05,\\"sustain\\":0.2,\\"cutoff\\":554.6875,\\"gain\\":0.41666666666666663}",
-  "2/3 -> 5/6: {\\"note\\":53,\\"s\\":\\"sawtooth\\",\\"attack\\":0.1,\\"decay\\":0.05,\\"sustain\\":0.2,\\"cutoff\\":570.3125,\\"gain\\":0.25}",
-  "2/3 -> 5/6: {\\"note\\":57,\\"s\\":\\"sawtooth\\",\\"attack\\":0.1,\\"decay\\":0.05,\\"sustain\\":0.2,\\"cutoff\\":570.3125,\\"gain\\":0.25}",
-  "2/3 -> 5/6: {\\"note\\":60,\\"s\\":\\"sawtooth\\",\\"attack\\":0.1,\\"decay\\":0.05,\\"sustain\\":0.2,\\"cutoff\\":570.3125,\\"gain\\":0.25}",
-  "2/3 -> 5/6: {\\"note\\":64,\\"s\\":\\"sawtooth\\",\\"attack\\":0.1,\\"decay\\":0.05,\\"sustain\\":0.2,\\"cutoff\\":570.3125,\\"gain\\":0.25}",
-  "2/3 -> 5/6: {\\"note\\":53.07793132476509,\\"s\\":\\"sawtooth\\",\\"attack\\":0.1,\\"decay\\":0.05,\\"sustain\\":0.2,\\"cutoff\\":570.3125,\\"gain\\":0.25}",
-  "2/3 -> 5/6: {\\"note\\":57.07793132476509,\\"s\\":\\"sawtooth\\",\\"attack\\":0.1,\\"decay\\":0.05,\\"sustain\\":0.2,\\"cutoff\\":570.3125,\\"gain\\":0.25}",
-  "2/3 -> 5/6: {\\"note\\":60.07793132476509,\\"s\\":\\"sawtooth\\",\\"attack\\":0.1,\\"decay\\":0.05,\\"sustain\\":0.2,\\"cutoff\\":570.3125,\\"gain\\":0.25}",
-  "2/3 -> 5/6: {\\"note\\":64.07793132476509,\\"s\\":\\"sawtooth\\",\\"attack\\":0.1,\\"decay\\":0.05,\\"sustain\\":0.2,\\"cutoff\\":570.3125,\\"gain\\":0.25}",
-  "5/6 -> 1/1: {\\"note\\":53,\\"s\\":\\"sawtooth\\",\\"attack\\":0.1,\\"decay\\":0.05,\\"sustain\\":0.2,\\"cutoff\\":585.9375,\\"gain\\":0.08333333333333337}",
-  "5/6 -> 1/1: {\\"note\\":57,\\"s\\":\\"sawtooth\\",\\"attack\\":0.1,\\"decay\\":0.05,\\"sustain\\":0.2,\\"cutoff\\":585.9375,\\"gain\\":0.08333333333333337}",
-  "5/6 -> 1/1: {\\"note\\":60,\\"s\\":\\"sawtooth\\",\\"attack\\":0.1,\\"decay\\":0.05,\\"sustain\\":0.2,\\"cutoff\\":585.9375,\\"gain\\":0.08333333333333337}",
-  "5/6 -> 1/1: {\\"note\\":64,\\"s\\":\\"sawtooth\\",\\"attack\\":0.1,\\"decay\\":0.05,\\"sustain\\":0.2,\\"cutoff\\":585.9375,\\"gain\\":0.08333333333333337}",
-  "5/6 -> 1/1: {\\"note\\":53.07793132476509,\\"s\\":\\"sawtooth\\",\\"attack\\":0.1,\\"decay\\":0.05,\\"sustain\\":0.2,\\"cutoff\\":585.9375,\\"gain\\":0.08333333333333337}",
-  "5/6 -> 1/1: {\\"note\\":57.07793132476509,\\"s\\":\\"sawtooth\\",\\"attack\\":0.1,\\"decay\\":0.05,\\"sustain\\":0.2,\\"cutoff\\":585.9375,\\"gain\\":0.08333333333333337}",
-  "5/6 -> 1/1: {\\"note\\":60.07793132476509,\\"s\\":\\"sawtooth\\",\\"attack\\":0.1,\\"decay\\":0.05,\\"sustain\\":0.2,\\"cutoff\\":585.9375,\\"gain\\":0.08333333333333337}",
-  "5/6 -> 1/1: {\\"note\\":64.07793132476509,\\"s\\":\\"sawtooth\\",\\"attack\\":0.1,\\"decay\\":0.05,\\"sustain\\":0.2,\\"cutoff\\":585.9375,\\"gain\\":0.08333333333333337}",
-]
-`;
-
-exports[`renders shared tunes > shared tune 221 https://strudel.cc/?IPOyuRRkZaNr 1`] = `
-[
-  "0/1 -> 3/20: 0",
-  "0/1 -> 3/20: 3",
-  "3/4 -> 9/10: 1",
-  "3/4 -> 9/10: 4",
-  "0/1 -> 3/10: -8",
-  "3/8 -> 27/40: -8",
-  "3/4 -> 21/20: -7",
-  "0/1 -> 3/200: 12",
-  "3/4 -> 153/200: 11",
-  "0/1 -> 3/20: c2",
-  "747/1000 -> 1497/1000: c1",
-  "0/1 -> 3/8: c2",
-  "3/8 -> 3/4: c2",
-  "3/4 -> 9/8: c2",
-]
-`;
-
-exports[`renders shared tunes > shared tune 222 https://strudel.cc/?fGbP7VOtCWWU 1`] = `
-[
-  "0/1 -> 1/8: {\\"note\\":\\"G4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5601851851851851}",
-  "0/1 -> 1/8: {\\"note\\":\\"B4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5787037037037037}",
-  "0/1 -> 1/8: {\\"note\\":\\"C5\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5833333333333333}",
-  "0/1 -> 1/8: {\\"note\\":\\"E5\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.6018518518518519}",
-  "1/4 -> 3/8: {\\"note\\":\\"G4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5601851851851851}",
-  "1/4 -> 3/8: {\\"note\\":\\"B4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5787037037037037}",
-  "1/4 -> 3/8: {\\"note\\":\\"C5\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5833333333333333}",
-  "1/4 -> 3/8: {\\"note\\":\\"E5\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.6018518518518519}",
-  "3/8 -> 1/2: {\\"note\\":\\"G4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5601851851851851}",
-  "3/8 -> 1/2: {\\"note\\":\\"B4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5787037037037037}",
-  "3/8 -> 1/2: {\\"note\\":\\"C5\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5833333333333333}",
-  "3/8 -> 1/2: {\\"note\\":\\"E5\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.6018518518518519}",
-  "1/2 -> 5/8: {\\"note\\":\\"F4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5509259259259259}",
-  "1/2 -> 5/8: {\\"note\\":\\"A4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5694444444444444}",
-  "1/2 -> 5/8: {\\"note\\":\\"C5\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5833333333333333}",
-  "1/2 -> 5/8: {\\"note\\":\\"E5\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.6018518518518519}",
-  "3/4 -> 7/8: {\\"note\\":\\"F4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5509259259259259}",
-  "3/4 -> 7/8: {\\"note\\":\\"A4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5694444444444444}",
-  "3/4 -> 7/8: {\\"note\\":\\"C5\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5833333333333333}",
-  "3/4 -> 7/8: {\\"note\\":\\"E5\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.6018518518518519}",
-  "7/8 -> 1/1: {\\"note\\":\\"F4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5509259259259259}",
-  "7/8 -> 1/1: {\\"note\\":\\"A4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5694444444444444}",
-  "7/8 -> 1/1: {\\"note\\":\\"C5\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5833333333333333}",
-  "7/8 -> 1/1: {\\"note\\":\\"E5\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.6018518518518519}",
-  "0/1 -> 1/24: {\\"note\\":\\"A2\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.45833333333333337}",
-  "1/6 -> 5/24: {\\"note\\":\\"A2\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.45833333333333337}",
-  "1/3 -> 3/8: {\\"note\\":\\"A2\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.45833333333333337}",
-  "1/2 -> 13/24: {\\"note\\":\\"D2\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.42592592592592593}",
-  "2/3 -> 17/24: {\\"note\\":\\"D2\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.42592592592592593}",
-  "5/6 -> 7/8: {\\"note\\":\\"D2\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.42592592592592593}",
-]
-`;
-
-exports[`renders shared tunes > shared tune 223 https://strudel.cc/?4YKibw76FrRb 1`] = `
-[
-  "0/1 -> 1/2: {\\"note\\":\\"G3\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5046296296296297}",
-  "0/1 -> 1/2: {\\"note\\":\\"B3\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5231481481481481}",
-  "0/1 -> 1/2: {\\"note\\":\\"C4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5277777777777778}",
-  "0/1 -> 1/2: {\\"note\\":\\"E4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5462962962962963}",
-  "0/1 -> 1/16: {\\"note\\":\\"A2\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.45833333333333337}",
-  "1/4 -> 5/16: {\\"note\\":\\"A2\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.45833333333333337}",
-  "1/2 -> 9/16: {\\"note\\":\\"F2\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.4398148148148148}",
-  "3/4 -> 13/16: {\\"note\\":\\"F2\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.4398148148148148}",
-]
-`;
-
-exports[`renders shared tunes > shared tune 224 https://strudel.cc/?7UmR7rJMSvWq 1`] = `
-[
-  "0/1 -> 1/2: {\\"note\\":\\"Bb3\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5185185185185186}",
-  "0/1 -> 1/2: {\\"note\\":\\"D4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.537037037037037}",
-  "0/1 -> 1/2: {\\"note\\":\\"E4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5462962962962963}",
-  "0/1 -> 1/2: {\\"note\\":\\"A4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5694444444444444}",
-  "0/1 -> 1/4: {\\"note\\":\\"C2\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.41666666666666663}",
-]
-`;
-
-exports[`renders shared tunes > shared tune 225 https://strudel.cc/?N0a4wkk96WWE 1`] = `
-[
-  "0/1 -> 8/19: {\\"note\\":\\"C5\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5833333333333333}",
-  "8/19 -> 16/19: {\\"note\\":\\"f5\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.6064814814814814}",
-  "16/19 -> 24/19: {\\"note\\":\\"f5\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.6064814814814814}",
-  "0/1 -> 4/1: {\\"note\\":\\"c3\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.4722222222222222}",
-]
-`;
-
-exports[`renders shared tunes > shared tune 226 https://strudel.cc/?s8HiRvW_Rngj 1`] = `
-[
-  "0/1 -> 3053185/4904046: {\\"n\\":62,\\"s\\":\\"sawtooth\\",\\"cutoff\\":3986.9405734726183}",
-  "0/1 -> 3053185/4904046: {\\"n\\":62,\\"s\\":\\"square\\",\\"cutoff\\":3986.9405734726183}",
-  "0/1 -> 3053185/4904046: {\\"n\\":62,\\"s\\":\\"sawtooth\\",\\"cutoff\\":3986.9405734726183}",
-  "1/2 -> 7957231/9808092: {\\"n\\":50,\\"s\\":\\"sawtooth\\",\\"cutoff\\":3942.3145276351606}",
-  "1/2 -> 7957231/9808092: {\\"n\\":50,\\"s\\":\\"square\\",\\"cutoff\\":3942.3145276351606}",
-  "3/4 -> 5204627/4904046: {\\"n\\":41,\\"s\\":\\"square\\",\\"cutoff\\":3897.7021140702864}",
-  "3/4 -> 5204627/4904046: {\\"n\\":41,\\"s\\":\\"sawtooth\\",\\"cutoff\\":3858.612673535166}",
-  "0/1 -> 3053185/4904046: {\\"n\\":43,\\"s\\":\\"sawtooth\\",\\"cutoff\\":3986.9405734726183}",
-  "0/1 -> 3053185/4904046: {\\"n\\":43,\\"s\\":\\"square\\",\\"cutoff\\":3986.9405734726183}",
-  "0/1 -> 3053185/4904046: {\\"n\\":43,\\"s\\":\\"sawtooth\\",\\"cutoff\\":3986.9405734726183}",
-  "1/2 -> 2752604/2452023: {\\"n\\":69,\\"s\\":\\"sawtooth\\",\\"cutoff\\":3924.645587531366}",
-  "1/2 -> 2752604/2452023: {\\"n\\":69,\\"s\\":\\"square\\",\\"cutoff\\":3924.645587531366}",
-  "1/2 -> 2752604/2452023: {\\"n\\":69,\\"s\\":\\"sawtooth\\",\\"cutoff\\":3850.2031844444546}",
-  "-1/4 -> 3654347/9808092: {\\"n\\":48,\\"s\\":\\"sawtooth\\",\\"cutoff\\":3995.31915093835}",
-  "-1/4 -> 3654347/9808092: {\\"n\\":48,\\"s\\":\\"square\\",\\"cutoff\\":3995.31915093835}",
-  "1/4 -> 8558393/9808092: {\\"n\\":74,\\"s\\":\\"square\\",\\"cutoff\\":3957.6603580168244}",
-  "1/4 -> 8558393/9808092: {\\"n\\":74,\\"s\\":\\"sawtooth\\",\\"cutoff\\":3957.6603580168244}",
-  "1/4 -> 8558393/9808092: {\\"n\\":74,\\"s\\":\\"square\\",\\"cutoff\\":3957.6603580168244}",
-  "3/4 -> 5204627/4904046: {\\"n\\":62,\\"s\\":\\"square\\",\\"cutoff\\":3897.7021140702864}",
-  "3/4 -> 5204627/4904046: {\\"n\\":62,\\"s\\":\\"sawtooth\\",\\"cutoff\\":3858.612673535166}",
-  "-1/4 -> 3654347/9808092: {\\"n\\":64,\\"s\\":\\"sawtooth\\",\\"cutoff\\":3995.31915093835}",
-  "-1/4 -> 3654347/9808092: {\\"n\\":64,\\"s\\":\\"square\\",\\"cutoff\\":3995.31915093835}",
-  "1/4 -> 8558393/9808092: {\\"n\\":55,\\"s\\":\\"square\\",\\"cutoff\\":3957.6603580168244}",
-  "1/4 -> 8558393/9808092: {\\"n\\":55,\\"s\\":\\"sawtooth\\",\\"cutoff\\":3957.6603580168244}",
-  "1/4 -> 8558393/9808092: {\\"n\\":55,\\"s\\":\\"square\\",\\"cutoff\\":3957.6603580168244}",
-  "3/4 -> 13462439/9808092: {\\"n\\":81,\\"s\\":\\"square\\",\\"cutoff\\":3897.7021140702864}",
-  "3/4 -> 13462439/9808092: {\\"n\\":81,\\"s\\":\\"sawtooth\\",\\"cutoff\\":3813.515463898106}",
-]
-`;
-
-exports[`renders shared tunes > shared tune 227 https://strudel.cc/?Z1ywkDoR6Tca 1`] = `
-[
-  "5833/7200 -> 19/18: {\\"n\\":\\"C#4\\",\\"s\\":\\"Overdriven Guitar: Guitar\\",\\"gain\\":0.2}",
-  "437/800 -> 19/24: {\\"n\\":\\"D#4\\",\\"s\\":\\"Overdriven Guitar: Guitar\\",\\"gain\\":0.2}",
-  "2033/7200 -> 19/36: {\\"n\\":\\"F4\\",\\"s\\":\\"Overdriven Guitar: Guitar\\",\\"gain\\":0.2}",
-  "133/7200 -> 19/72: {\\"n\\":\\"G4\\",\\"s\\":\\"Overdriven Guitar: Guitar\\",\\"gain\\":0.2}",
-  "5833/7200 -> 19/18: {\\"n\\":\\"c#5\\",\\"s\\":\\"Overdriven Guitar: Guitar\\",\\"gain\\":0.1}",
-  "437/800 -> 19/24: {\\"n\\":\\"d#5\\",\\"s\\":\\"Overdriven Guitar: Guitar\\",\\"gain\\":0.1}",
-  "2033/7200 -> 19/36: {\\"n\\":\\"f5\\",\\"s\\":\\"Overdriven Guitar: Guitar\\",\\"gain\\":0.1}",
-  "133/7200 -> 19/72: {\\"n\\":\\"g5\\",\\"s\\":\\"Overdriven Guitar: Guitar\\",\\"gain\\":0.1}",
-  "19/24 -> 19/12: {\\"n\\":57,\\"s\\":\\"Choir Aahs: Ensemble\\",\\"gain\\":0.25}",
-  "19/24 -> 19/12: {\\"n\\":61,\\"s\\":\\"Choir Aahs: Ensemble\\",\\"gain\\":0.25}",
-  "19/24 -> 19/12: {\\"n\\":52,\\"s\\":\\"Choir Aahs: Ensemble\\",\\"gain\\":0.25}",
-  "0/1 -> 19/24: {\\"n\\":59,\\"s\\":\\"Choir Aahs: Ensemble\\",\\"gain\\":0.25}",
-  "0/1 -> 19/24: {\\"n\\":63,\\"s\\":\\"Choir Aahs: Ensemble\\",\\"gain\\":0.25}",
-  "0/1 -> 19/24: {\\"n\\":54,\\"s\\":\\"Choir Aahs: Ensemble\\",\\"gain\\":0.25}",
-  "209/240 -> 19/12: {\\"n\\":\\"A1\\",\\"s\\":\\"Electric Bass (finger): Bass\\",\\"gain\\":0.3}",
-  "19/240 -> 19/24: {\\"n\\":\\"B1\\",\\"s\\":\\"Electric Bass (finger): Bass\\",\\"gain\\":0.3}",
-  "19/24 -> 19/18: {\\"s\\":\\"sn\\",\\"gain\\":0.25}",
-  "19/36 -> 19/24: {\\"s\\":\\"sn\\",\\"gain\\":0.25}",
-  "19/72 -> 19/36: {\\"s\\":\\"sn\\",\\"gain\\":0.25}",
-  "0/1 -> 19/72: {\\"s\\":\\"sn\\",\\"gain\\":0.25}",
-  "19/24 -> 19/18: {\\"s\\":\\"hh\\",\\"gain\\":0.25}",
-  "19/36 -> 19/24: {\\"s\\":\\"hh\\",\\"gain\\":0.25}",
-  "19/72 -> 19/36: {\\"s\\":\\"hh\\",\\"gain\\":0.25}",
-  "0/1 -> 19/72: {\\"s\\":\\"hh\\",\\"gain\\":0.25}",
-]
-`;
-
-exports[`renders shared tunes > shared tune 228 https://strudel.cc/?eXyJ5cvdMxIl 1`] = `
-[
-  "0/1 -> 1/1: {\\"n\\":69,\\"s\\":\\"Church Organ: Organ\\",\\"gain\\":0.2}",
-  "0/1 -> 1/1: {\\"n\\":72,\\"s\\":\\"Church Organ: Organ\\",\\"gain\\":0.2}",
-  "0/1 -> 1/1: {\\"n\\":76,\\"s\\":\\"Church Organ: Organ\\",\\"gain\\":0.2}",
-  "0/1 -> 1/4: {\\"s\\":\\"bd\\",\\"gain\\":0.25}",
-  "1/4 -> 1/2: {\\"s\\":\\"bd\\",\\"gain\\":0.25}",
-  "1/2 -> 5/8: {\\"s\\":\\"cp\\",\\"gain\\":0.25}",
-  "7/8 -> 1/1: {\\"s\\":\\"cp\\",\\"gain\\":0.25}",
-  "0/1 -> 1/4: {\\"s\\":\\"hh\\",\\"gain\\":0.25}",
-  "1/4 -> 1/2: {\\"s\\":\\"hh\\",\\"gain\\":0.25}",
-  "1/2 -> 3/4: {\\"s\\":\\"hh\\",\\"gain\\":0.25}",
-  "3/4 -> 1/1: {\\"s\\":\\"hh\\",\\"gain\\":0.25}",
-]
-`;
-
-exports[`renders shared tunes > shared tune 229 https://strudel.cc/?YSgSSFCioxs0 1`] = `
-[
-  "0/1 -> 1/1: {\\"n\\":69,\\"s\\":\\"Church Organ: Organ\\",\\"gain\\":0.2}",
-  "0/1 -> 1/1: {\\"n\\":72,\\"s\\":\\"Church Organ: Organ\\",\\"gain\\":0.2}",
-  "0/1 -> 1/1: {\\"n\\":76,\\"s\\":\\"Church Organ: Organ\\",\\"gain\\":0.2}",
-  "0/1 -> 1/4: {\\"s\\":\\"bd\\",\\"gain\\":0.25}",
-  "1/4 -> 1/2: {\\"s\\":\\"bd\\",\\"gain\\":0.25}",
-  "1/2 -> 5/8: {\\"s\\":\\"cp\\",\\"gain\\":0.25}",
-  "7/8 -> 1/1: {\\"s\\":\\"cp\\",\\"gain\\":0.25}",
-  "0/1 -> 1/4: {\\"s\\":\\"hh\\",\\"gain\\":0.25}",
-  "1/4 -> 1/2: {\\"s\\":\\"hh\\",\\"gain\\":0.25}",
-  "1/2 -> 3/4: {\\"s\\":\\"hh\\",\\"gain\\":0.25}",
-  "3/4 -> 1/1: {\\"s\\":\\"hh\\",\\"gain\\":0.25}",
-]
-`;
-
-exports[`renders shared tunes > shared tune 230 https://strudel.cc/?lAIAC1TOD3zB 1`] = `
-[
-  "0/1 -> 1/2: c1",
-  "1/2 -> 1/1: c1",
-  "1/2 -> 1/1: c3",
-  "0/1 -> 1/4: C1",
-  "1/4 -> 1/2: C3",
-  "1/2 -> 3/4: C1",
-  "3/4 -> 1/1: C3",
-]
-`;
-
-exports[`renders shared tunes > shared tune 231 https://strudel.cc/?LZ-aTB2xiaZ8 1`] = `
-[
-  "0/1 -> 3053185/4904046: {\\"n\\":62,\\"s\\":\\"sawtooth\\",\\"cutoff\\":3986.9405734726183}",
-  "0/1 -> 3053185/4904046: {\\"n\\":62,\\"s\\":\\"square\\",\\"cutoff\\":3986.9405734726183}",
-  "0/1 -> 3053185/4904046: {\\"n\\":62,\\"s\\":\\"sawtooth\\",\\"cutoff\\":3986.9405734726183}",
-  "1/2 -> 7957231/9808092: {\\"n\\":50,\\"s\\":\\"sawtooth\\",\\"cutoff\\":3942.3145276351606}",
-  "1/2 -> 7957231/9808092: {\\"n\\":50,\\"s\\":\\"square\\",\\"cutoff\\":3942.3145276351606}",
-  "3/4 -> 5204627/4904046: {\\"n\\":41,\\"s\\":\\"square\\",\\"cutoff\\":3897.7021140702864}",
-  "3/4 -> 5204627/4904046: {\\"n\\":41,\\"s\\":\\"sawtooth\\",\\"cutoff\\":3858.612673535166}",
-  "0/1 -> 3053185/4904046: {\\"n\\":43,\\"s\\":\\"sawtooth\\",\\"cutoff\\":3986.9405734726183}",
-  "0/1 -> 3053185/4904046: {\\"n\\":43,\\"s\\":\\"square\\",\\"cutoff\\":3986.9405734726183}",
-  "0/1 -> 3053185/4904046: {\\"n\\":43,\\"s\\":\\"sawtooth\\",\\"cutoff\\":3986.9405734726183}",
-  "1/2 -> 2752604/2452023: {\\"n\\":69,\\"s\\":\\"sawtooth\\",\\"cutoff\\":3924.645587531366}",
-  "1/2 -> 2752604/2452023: {\\"n\\":69,\\"s\\":\\"square\\",\\"cutoff\\":3924.645587531366}",
-  "1/2 -> 2752604/2452023: {\\"n\\":69,\\"s\\":\\"sawtooth\\",\\"cutoff\\":3850.2031844444546}",
-  "-1/4 -> 3654347/9808092: {\\"n\\":48,\\"s\\":\\"sawtooth\\",\\"cutoff\\":3995.31915093835}",
-  "-1/4 -> 3654347/9808092: {\\"n\\":48,\\"s\\":\\"square\\",\\"cutoff\\":3995.31915093835}",
-  "1/4 -> 8558393/9808092: {\\"n\\":74,\\"s\\":\\"square\\",\\"cutoff\\":3957.6603580168244}",
-  "1/4 -> 8558393/9808092: {\\"n\\":74,\\"s\\":\\"sawtooth\\",\\"cutoff\\":3957.6603580168244}",
-  "1/4 -> 8558393/9808092: {\\"n\\":74,\\"s\\":\\"square\\",\\"cutoff\\":3957.6603580168244}",
-  "3/4 -> 5204627/4904046: {\\"n\\":62,\\"s\\":\\"square\\",\\"cutoff\\":3897.7021140702864}",
-  "3/4 -> 5204627/4904046: {\\"n\\":62,\\"s\\":\\"sawtooth\\",\\"cutoff\\":3858.612673535166}",
-  "-1/4 -> 3654347/9808092: {\\"n\\":64,\\"s\\":\\"sawtooth\\",\\"cutoff\\":3995.31915093835}",
-  "-1/4 -> 3654347/9808092: {\\"n\\":64,\\"s\\":\\"square\\",\\"cutoff\\":3995.31915093835}",
-  "1/4 -> 8558393/9808092: {\\"n\\":55,\\"s\\":\\"square\\",\\"cutoff\\":3957.6603580168244}",
-  "1/4 -> 8558393/9808092: {\\"n\\":55,\\"s\\":\\"sawtooth\\",\\"cutoff\\":3957.6603580168244}",
-  "1/4 -> 8558393/9808092: {\\"n\\":55,\\"s\\":\\"square\\",\\"cutoff\\":3957.6603580168244}",
-  "3/4 -> 13462439/9808092: {\\"n\\":81,\\"s\\":\\"square\\",\\"cutoff\\":3897.7021140702864}",
-  "3/4 -> 13462439/9808092: {\\"n\\":81,\\"s\\":\\"sawtooth\\",\\"cutoff\\":3813.515463898106}",
-]
-`;
-
-exports[`renders shared tunes > shared tune 232 https://strudel.cc/?_zhepg-kT6fD 1`] = `
-[
-  "0/1 -> 3/8: {\\"s\\":\\"bd\\",\\"gain\\":0.14}",
-  "3/8 -> 3/4: {\\"s\\":\\"bd\\",\\"gain\\":0.14}",
-  "3/4 -> 3/2: {\\"s\\":\\"hh\\",\\"gain\\":0.14}",
-  "0/1 -> 3/20: {\\"note\\":\\"C2\\",\\"s\\":\\"square\\",\\"cutoff\\":400,\\"decay\\":0.12,\\"sustain\\":0}",
-  "3/8 -> 21/40: {\\"note\\":\\"A1\\",\\"s\\":\\"square\\",\\"cutoff\\":400,\\"decay\\":0.12,\\"sustain\\":0}",
-  "3/4 -> 9/10: {\\"note\\":\\"Bb1\\",\\"s\\":\\"square\\",\\"cutoff\\":400,\\"decay\\":0.12,\\"sustain\\":0}",
-  "3/16 -> 27/80: {\\"note\\":\\"C2\\",\\"s\\":\\"square\\",\\"cutoff\\":400,\\"decay\\":0.12,\\"sustain\\":0}",
-  "9/16 -> 57/80: {\\"note\\":\\"A1\\",\\"s\\":\\"square\\",\\"cutoff\\":400,\\"decay\\":0.12,\\"sustain\\":0}",
-  "15/16 -> 87/80: {\\"note\\":\\"Bb1\\",\\"s\\":\\"square\\",\\"cutoff\\":400,\\"decay\\":0.12,\\"sustain\\":0}",
-  "0/1 -> 3/20: {\\"note\\":\\"G2\\"}",
-  "0/1 -> 3/40: {\\"note\\":\\"C3\\"}",
-  "3/4 -> 33/40: {\\"note\\":\\"Eb3\\"}",
-  "-15/16 -> -63/80: {\\"note\\":\\"Db\\"}",
-  "-3/16 -> -9/80: {\\"note\\":\\"A\\"}",
-  "3/16 -> 27/80: {\\"note\\":\\"Db\\"}",
-  "3/16 -> 21/80: {\\"note\\":\\"Gb\\"}",
-  "15/16 -> 81/80: {\\"note\\":\\"A\\"}",
-  "-3/4 -> -3/5: {\\"note\\":\\"G\\"}",
-  "0/1 -> 3/40: {\\"note\\":\\"Eb\\"}",
-  "3/8 -> 21/40: {\\"note\\":\\"G\\"}",
-  "3/8 -> 9/20: {\\"note\\":\\"C\\"}",
-  "-9/16 -> -33/80: {\\"note\\":\\"Db\\"}",
-  "-9/16 -> -39/80: {\\"note\\":\\"Gb\\"}",
-  "3/16 -> 21/80: {\\"note\\":\\"A\\"}",
-  "9/16 -> 57/80: {\\"note\\":\\"Db\\"}",
-  "9/16 -> 51/80: {\\"note\\":\\"Gb\\"}",
-]
-`;
-
-exports[`renders shared tunes > shared tune 234 https://strudel.cc/?1moEu58ZjMF4 1`] = `
-[
-  "0/1 -> 1/2: {\\"note\\":\\"c2\\",\\"s\\":\\"square\\",\\"attack\\":0.1,\\"decay\\":0.1,\\"sustain\\":0.2,\\"release\\":0.1}",
-  "1/2 -> 1/1: {\\"note\\":\\"eb2\\",\\"s\\":\\"square\\",\\"attack\\":0.1,\\"decay\\":0.1,\\"sustain\\":0.2,\\"release\\":0.1}",
-  "0/1 -> 1/2: {\\"s\\":\\"bd\\",\\"crush\\":16}",
-  "0/1 -> 1/2: {\\"s\\":\\"bd\\",\\"crush\\":8}",
-  "0/1 -> 1/4: {\\"s\\":\\"hh\\",\\"crush\\":16}",
-  "1/4 -> 1/2: {\\"s\\":\\"hh\\",\\"crush\\":8}",
-  "1/2 -> 1/1: {\\"s\\":\\"sd\\",\\"crush\\":7}",
-  "1/2 -> 1/1: {\\"s\\":\\"sd\\",\\"crush\\":6}",
-  "1/2 -> 3/4: {\\"s\\":\\"hh\\",\\"crush\\":7}",
-  "3/4 -> 1/1: {\\"s\\":\\"hh\\",\\"crush\\":6}",
-]
-`;
-
-exports[`renders shared tunes > shared tune 235 https://strudel.cc/?1W8nlZAFzi5T 1`] = `
-[
-  "0/1 -> 1/1: {\\"note\\":\\"c2\\",\\"s\\":\\"square\\",\\"attack\\":0.1,\\"decay\\":0.1,\\"sustain\\":0.2,\\"release\\":0.1}",
-  "0/1 -> 1/2: {\\"s\\":\\"bd\\",\\"crush\\":16}",
-  "0/1 -> 1/2: {\\"s\\":\\"bd\\",\\"crush\\":8}",
-  "0/1 -> 1/4: {\\"s\\":\\"hh\\",\\"crush\\":16}",
-  "1/4 -> 1/2: {\\"s\\":\\"hh\\",\\"crush\\":8}",
-  "1/2 -> 1/1: {\\"s\\":\\"sd\\",\\"crush\\":7}",
-  "1/2 -> 1/1: {\\"s\\":\\"sd\\",\\"crush\\":6}",
-  "1/2 -> 3/4: {\\"s\\":\\"hh\\",\\"crush\\":7}",
-  "3/4 -> 1/1: {\\"s\\":\\"hh\\",\\"crush\\":6}",
-]
-`;
-
-exports[`renders shared tunes > shared tune 236 https://strudel.cc/?exwhYw9VYVQz 1`] = `
-[
-  "0/1 -> 1/1: {\\"note\\":\\"c2\\",\\"s\\":\\"square\\",\\"attack\\":0.1,\\"decay\\":0.1,\\"sustain\\":0.2,\\"release\\":0.1}",
-  "0/1 -> 1/2: {\\"s\\":\\"bd\\",\\"crush\\":16}",
-  "0/1 -> 1/2: {\\"s\\":\\"bd\\",\\"crush\\":8}",
-  "0/1 -> 1/4: {\\"s\\":\\"hh\\",\\"crush\\":16}",
-  "1/4 -> 1/2: {\\"s\\":\\"hh\\",\\"crush\\":8}",
-  "1/2 -> 1/1: {\\"s\\":\\"sd\\",\\"crush\\":7}",
-  "1/2 -> 1/1: {\\"s\\":\\"sd\\",\\"crush\\":6}",
-  "1/2 -> 3/4: {\\"s\\":\\"hh\\",\\"crush\\":7}",
-  "3/4 -> 1/1: {\\"s\\":\\"hh\\",\\"crush\\":6}",
-]
-`;
-
-exports[`renders shared tunes > shared tune 237 https://strudel.cc/?z4zPoaRLF6Vs 1`] = `
-[
-  "0/1 -> 2/5: {\\"note\\":\\"c3\\",\\"s\\":\\"sawtooth\\",\\"attack\\":0.1,\\"decay\\":0.2,\\"sustain\\":0.3,\\"release\\":0.1,\\"bandf\\":500,\\"bandq\\":1}",
-  "2/5 -> 4/5: {\\"note\\":\\"c3\\",\\"s\\":\\"sawtooth\\",\\"attack\\":0.1,\\"decay\\":0.2,\\"sustain\\":0.3,\\"release\\":0.1,\\"bandf\\":500,\\"bandq\\":1}",
-  "4/5 -> 8/5: {\\"note\\":\\"g3\\",\\"s\\":\\"sawtooth\\",\\"attack\\":0.1,\\"decay\\":0.2,\\"sustain\\":0.3,\\"release\\":0.1,\\"bandf\\":500,\\"bandq\\":1}",
-  "0/1 -> 4/1: {\\"note\\":\\"c2\\",\\"s\\":\\"sawtooth\\",\\"attack\\":0.1,\\"decay\\":0.2,\\"sustain\\":0.3,\\"release\\":0.1,\\"bandf\\":500,\\"bandq\\":1}",
-]
-`;
-
-exports[`renders shared tunes > shared tune 238 https://strudel.cc/?VzJokumWaip_ 1`] = `
-[
-  "3/4 -> 1/1: {\\"s\\":\\"bd\\"}",
-  "1/2 -> 3/4: {\\"s\\":\\"bd\\"}",
-  "1/4 -> 1/2: {\\"s\\":\\"bd\\"}",
-  "1/8 -> 1/4: {\\"s\\":\\"bd\\"}",
-  "0/1 -> 1/8: {\\"s\\":\\"bd\\"}",
-  "3/4 -> 1/1: {\\"s\\":\\"hh\\"}",
-  "1/2 -> 3/4: {\\"s\\":\\"hh\\"}",
-  "3/8 -> 1/2: {\\"s\\":\\"hh\\"}",
-  "1/4 -> 3/8: {\\"s\\":\\"hh\\"}",
-  "1/8 -> 1/4: {\\"s\\":\\"hh\\"}",
-  "0/1 -> 1/8: {\\"s\\":\\"hh\\"}",
-]
-`;
-
-exports[`renders shared tunes > shared tune 239 https://strudel.cc/?gb4pffOZyATk 1`] = `
-[
-  "4/5 -> 1/1: {\\"s\\":\\"bd\\",\\"cutoff\\":200,\\"resonance\\":30}",
-  "4/5 -> 1/1: {\\"s\\":\\"bd\\",\\"cutoff\\":100,\\"resonance\\":30}",
-  "2/5 -> 4/5: {\\"s\\":\\"bd\\",\\"cutoff\\":1000,\\"resonance\\":10}",
-  "2/5 -> 4/5: {\\"s\\":\\"bd\\",\\"cutoff\\":500,\\"resonance\\":20}",
-  "2/5 -> 4/5: {\\"s\\":\\"bd\\",\\"cutoff\\":200,\\"resonance\\":20}",
-  "2/5 -> 4/5: {\\"s\\":\\"bd\\",\\"cutoff\\":200,\\"resonance\\":30}",
-  "1/5 -> 2/5: {\\"s\\":\\"bd\\",\\"cutoff\\":2000,\\"resonance\\":0}",
-  "1/5 -> 2/5: {\\"s\\":\\"bd\\",\\"cutoff\\":2000,\\"resonance\\":10}",
-  "1/5 -> 2/5: {\\"s\\":\\"bd\\",\\"cutoff\\":1000,\\"resonance\\":10}",
-  "1/10 -> 1/5: {\\"s\\":\\"bd\\",\\"cutoff\\":4000,\\"resonance\\":0}",
-  "1/10 -> 1/5: {\\"s\\":\\"bd\\",\\"cutoff\\":2000,\\"resonance\\":0}",
-  "0/1 -> 1/10: {\\"s\\":\\"bd\\",\\"cutoff\\":4000,\\"resonance\\":0}",
-  "3/4 -> 1/1: {\\"s\\":\\"hh\\",\\"cutoff\\":200,\\"resonance\\":30}",
-  "3/4 -> 1/1: {\\"s\\":\\"hh\\",\\"cutoff\\":100,\\"resonance\\":30}",
-  "1/2 -> 3/4: {\\"s\\":\\"hh\\",\\"cutoff\\":500,\\"resonance\\":20}",
-  "1/2 -> 3/4: {\\"s\\":\\"hh\\",\\"cutoff\\":200,\\"resonance\\":20}",
-  "3/8 -> 1/2: {\\"s\\":\\"hh\\",\\"cutoff\\":1000,\\"resonance\\":10}",
-  "1/4 -> 3/8: {\\"s\\":\\"hh\\",\\"cutoff\\":2000,\\"resonance\\":10}",
-  "1/4 -> 3/8: {\\"s\\":\\"hh\\",\\"cutoff\\":1000,\\"resonance\\":10}",
-  "1/8 -> 1/4: {\\"s\\":\\"hh\\",\\"cutoff\\":4000,\\"resonance\\":0}",
-  "1/8 -> 1/4: {\\"s\\":\\"hh\\",\\"cutoff\\":2000,\\"resonance\\":0}",
-  "0/1 -> 1/8: {\\"s\\":\\"hh\\",\\"cutoff\\":4000,\\"resonance\\":0}",
-]
-`;
-
-exports[`renders shared tunes > shared tune 240 https://strudel.cc/?C6vcsMx8UtjJ 1`] = `
-[
-  "0/1 -> 1/8: C2",
-  "1/8 -> 1/4: D2",
-  "1/4 -> 3/8: D2",
-  "3/8 -> 1/2: E2",
-  "1/2 -> 5/8: F2",
-  "5/8 -> 3/4: A2",
-  "3/4 -> 7/8: D3",
-  "7/8 -> 1/1: B3",
-]
-`;
-
-exports[`renders shared tunes > shared tune 241 https://strudel.cc/?jyNjgy-bZ0X7 1`] = `
-[
-  "0/1 -> 3/16: {\\"s\\":\\"bd\\",\\"gain\\":0.7}",
-  "3/16 -> 3/8: {\\"s\\":\\"bd\\",\\"gain\\":0.7}",
-  "3/8 -> 3/4: {\\"s\\":\\"hh\\",\\"gain\\":0.7}",
-  "3/4 -> 9/8: {\\"s\\":\\"sn\\",\\"gain\\":0.7}",
-  "0/1 -> 3/20: {\\"note\\":\\"C2\\",\\"s\\":\\"square\\",\\"cutoff\\":400,\\"decay\\":0.12,\\"sustain\\":0}",
-  "3/8 -> 21/40: {\\"note\\":\\"A1\\",\\"s\\":\\"square\\",\\"cutoff\\":400,\\"decay\\":0.12,\\"sustain\\":0}",
-  "3/4 -> 9/10: {\\"note\\":\\"Bb1\\",\\"s\\":\\"square\\",\\"cutoff\\":400,\\"decay\\":0.12,\\"sustain\\":0}",
-  "3/16 -> 27/80: {\\"note\\":\\"C2\\",\\"s\\":\\"square\\",\\"cutoff\\":400,\\"decay\\":0.12,\\"sustain\\":0}",
-  "9/16 -> 57/80: {\\"note\\":\\"A1\\",\\"s\\":\\"square\\",\\"cutoff\\":400,\\"decay\\":0.12,\\"sustain\\":0}",
-  "15/16 -> 87/80: {\\"note\\":\\"Bb1\\",\\"s\\":\\"square\\",\\"cutoff\\":400,\\"decay\\":0.12,\\"sustain\\":0}",
-  "0/1 -> 3/20: {\\"note\\":\\"G2\\"}",
-  "0/1 -> 3/40: {\\"note\\":\\"C3\\"}",
-  "3/4 -> 33/40: {\\"note\\":\\"Eb3\\"}",
-  "-15/16 -> -63/80: {\\"note\\":\\"G3\\"}",
-  "-3/16 -> -9/80: {\\"note\\":\\"Eb4\\"}",
-  "3/16 -> 27/80: {\\"note\\":\\"G3\\"}",
-  "3/16 -> 21/80: {\\"note\\":\\"C4\\"}",
-  "15/16 -> 81/80: {\\"note\\":\\"Eb4\\"}",
-  "-3/4 -> -3/5: {\\"note\\":\\"G4\\"}",
-  "0/1 -> 3/40: {\\"note\\":\\"Eb5\\"}",
-  "3/8 -> 21/40: {\\"note\\":\\"G4\\"}",
-  "3/8 -> 9/20: {\\"note\\":\\"C5\\"}",
-  "-9/16 -> -33/80: {\\"note\\":\\"G5\\"}",
-  "-9/16 -> -39/80: {\\"note\\":\\"C6\\"}",
-  "3/16 -> 21/80: {\\"note\\":\\"Eb6\\"}",
-  "9/16 -> 57/80: {\\"note\\":\\"G5\\"}",
-  "9/16 -> 51/80: {\\"note\\":\\"C6\\"}",
-]
-`;
-
-exports[`renders shared tunes > shared tune 242 https://strudel.cc/?MPVT_kG6Yni7 1`] = `
-[
-  "0/1 -> 2/1: {\\"note\\":\\"c1\\",\\"s\\":\\"sawtooth\\",\\"attack\\":0.1,\\"decay\\":0.2,\\"sustain\\":0.3,\\"release\\":0.1,\\"bandf\\":500,\\"bandq\\":1,\\"gain\\":3}",
-  "1/3 -> 1/1: {\\"s\\":\\"bd\\"}",
-  "0/1 -> 1/3: {\\"s\\":\\"bd\\"}",
-]
-`;
-
-exports[`renders shared tunes > shared tune 243 https://strudel.cc/?Ul_u7MyAGKXb 1`] = `
-[
-  "0/1 -> 1/40: {\\"n\\":62,\\"s\\":\\"sawtooth\\",\\"cutoff\\":2000}",
-  "1/4 -> 21/80: {\\"n\\":51,\\"s\\":\\"sawtooth\\",\\"cutoff\\":2000}",
-  "3/8 -> 31/80: {\\"n\\":41,\\"s\\":\\"sawtooth\\",\\"cutoff\\":2000}",
-  "1/2 -> 21/40: {\\"n\\":50,\\"s\\":\\"square\\",\\"cutoff\\":2000}",
-  "3/4 -> 31/40: {\\"n\\":40,\\"s\\":\\"square\\",\\"cutoff\\":2000}",
-  "1/8 -> 3/20: {\\"n\\":83,\\"s\\":\\"sawtooth\\",\\"cutoff\\":2000}",
-  "3/8 -> 31/80: {\\"n\\":72,\\"s\\":\\"sawtooth\\",\\"cutoff\\":2000}",
-  "1/2 -> 41/80: {\\"n\\":62,\\"s\\":\\"square\\",\\"cutoff\\":2000}",
-  "5/8 -> 13/20: {\\"n\\":71,\\"s\\":\\"square\\",\\"cutoff\\":2000}",
-  "7/8 -> 9/10: {\\"n\\":61,\\"s\\":\\"square\\",\\"cutoff\\":2000}",
-  "0/1 -> 1/40: {\\"n\\":47,\\"s\\":\\"sawtooth\\",\\"cutoff\\":2000}",
-  "1/4 -> 11/40: {\\"n\\":65,\\"s\\":\\"sawtooth\\",\\"cutoff\\":2000}",
-  "1/2 -> 41/80: {\\"n\\":54,\\"s\\":\\"square\\",\\"cutoff\\":2000}",
-  "5/8 -> 51/80: {\\"n\\":44,\\"s\\":\\"square\\",\\"cutoff\\":2000}",
-  "3/4 -> 31/40: {\\"n\\":53,\\"s\\":\\"square\\",\\"cutoff\\":2000}",
-  "1/8 -> 3/20: {\\"n\\":68,\\"s\\":\\"sawtooth\\",\\"cutoff\\":2000}",
-  "3/8 -> 2/5: {\\"n\\":86,\\"s\\":\\"sawtooth\\",\\"cutoff\\":2000}",
-  "5/8 -> 51/80: {\\"n\\":75,\\"s\\":\\"square\\",\\"cutoff\\":2000}",
-  "3/4 -> 61/80: {\\"n\\":65,\\"s\\":\\"square\\",\\"cutoff\\":2000}",
-  "7/8 -> 9/10: {\\"n\\":74,\\"s\\":\\"square\\",\\"cutoff\\":2000}",
-]
-`;
-
-exports[`renders shared tunes > shared tune 244 https://strudel.cc/?6geTqvPlUvv4 1`] = `
-[
-  "0/1 -> 3/80: {\\"n\\":62,\\"s\\":\\"sine\\",\\"cutoff\\":1500}",
-  "1/4 -> 43/160: {\\"n\\":51,\\"s\\":\\"sine\\",\\"cutoff\\":1500}",
-  "3/8 -> 63/160: {\\"n\\":41,\\"s\\":\\"sine\\",\\"cutoff\\":1500}",
-  "1/2 -> 43/80: {\\"n\\":50,\\"s\\":\\"sine\\",\\"cutoff\\":1500}",
-  "3/4 -> 63/80: {\\"n\\":40,\\"s\\":\\"sine\\",\\"cutoff\\":1500}",
-  "1/8 -> 13/80: {\\"n\\":83,\\"s\\":\\"sine\\",\\"cutoff\\":1500}",
-  "3/8 -> 63/160: {\\"n\\":72,\\"s\\":\\"sine\\",\\"cutoff\\":1500}",
-  "1/2 -> 83/160: {\\"n\\":62,\\"s\\":\\"sine\\",\\"cutoff\\":1500}",
-  "5/8 -> 53/80: {\\"n\\":71,\\"s\\":\\"sine\\",\\"cutoff\\":1500}",
-  "7/8 -> 73/80: {\\"n\\":61,\\"s\\":\\"sine\\",\\"cutoff\\":1500}",
-  "0/1 -> 3/80: {\\"n\\":47,\\"s\\":\\"sine\\",\\"cutoff\\":1500}",
-  "1/4 -> 23/80: {\\"n\\":65,\\"s\\":\\"sine\\",\\"cutoff\\":1500}",
-  "1/2 -> 83/160: {\\"n\\":54,\\"s\\":\\"sine\\",\\"cutoff\\":1500}",
-  "5/8 -> 103/160: {\\"n\\":44,\\"s\\":\\"sine\\",\\"cutoff\\":1500}",
-  "3/4 -> 63/80: {\\"n\\":53,\\"s\\":\\"sine\\",\\"cutoff\\":1500}",
-  "1/8 -> 13/80: {\\"n\\":68,\\"s\\":\\"sine\\",\\"cutoff\\":1500}",
-  "3/8 -> 33/80: {\\"n\\":86,\\"s\\":\\"sine\\",\\"cutoff\\":1500}",
-  "5/8 -> 103/160: {\\"n\\":75,\\"s\\":\\"sine\\",\\"cutoff\\":1500}",
-  "3/4 -> 123/160: {\\"n\\":65,\\"s\\":\\"sine\\",\\"cutoff\\":1500}",
-  "7/8 -> 73/80: {\\"n\\":74,\\"s\\":\\"sine\\",\\"cutoff\\":1500}",
-]
-`;
-
-exports[`renders shared tunes > shared tune 245 https://strudel.cc/?5-NpsIAJqGJX 1`] = `
-[
-  "0/1 -> 3/20: 0",
-  "0/1 -> 3/20: 3",
-  "3/4 -> 9/10: 1",
-  "3/4 -> 9/10: 4",
-  "0/1 -> 3/10: -8",
-  "3/8 -> 27/40: -8",
-  "3/4 -> 21/20: -7",
-  "0/1 -> 3/200: 12",
-  "3/4 -> 153/200: 11",
-  "0/1 -> 3/20: c2",
-  "747/1000 -> 1497/1000: c1",
-  "0/1 -> 3/8: c2",
-  "3/8 -> 3/4: c2",
-  "3/4 -> 9/8: c2",
-]
-`;
-
-exports[`renders shared tunes > shared tune 248 https://strudel.cc/?FavmsfMCEJh9 1`] = `
-[
-  "0/1 -> 1/4: {\\"note\\":\\"C3\\"}",
-  "1/4 -> 1/2: {\\"note\\":\\"Eb3\\"}",
-  "1/2 -> 3/4: {\\"note\\":\\"G3\\"}",
-  "3/4 -> 1/1: {\\"note\\":\\"D4\\"}",
-  "0/1 -> 1/4: {\\"note\\":\\"Eb3\\"}",
-  "1/4 -> 1/2: {\\"note\\":\\"G3\\"}",
-  "1/2 -> 3/4: {\\"note\\":\\"Bb3\\"}",
-  "3/4 -> 1/1: {\\"note\\":\\"F4\\"}",
-]
-`;
-
-exports[`renders shared tunes > shared tune 249 https://strudel.cc/?KEJD5r4Q7zZo 1`] = `
-[
-  "0/1 -> 3/4: F4",
-  "0/1 -> 3/4: Bb4",
-  "0/1 -> 3/4: D5",
-  "3/4 -> 5/4: D4",
-  "3/4 -> 5/4: G4",
-  "3/4 -> 5/4: Bb4",
-  "0/1 -> 3/4: G3",
-  "3/4 -> 3/2: G3",
-]
-`;
-
-exports[`renders shared tunes > shared tune 250 https://strudel.cc/?JzQ_9QyLrKhy 1`] = `
-[
-  "0/1 -> 1/3: bd",
-  "1/3 -> 2/3: hh",
-  "2/3 -> 1/1: sn",
-  "0/1 -> 1/20: G4",
-  "1/6 -> 13/60: G4",
-  "1/3 -> 23/60: B3",
-  "1/2 -> 11/20: B3",
-  "1/3 -> 23/60: E4",
-  "1/2 -> 11/20: E4",
-  "2/3 -> 43/60: G3",
-  "5/6 -> 53/60: G3",
-  "0/1 -> 4/3: c2",
-  "0/1 -> 4/3: c2",
-]
-`;
-
-exports[`renders shared tunes > shared tune 251 https://strudel.cc/?H9-8RjyncjzI 1`] = `
-[
-  "0/1 -> 1/1: B3",
-  "0/1 -> 1/1: D4",
-  "0/1 -> 1/1: E4",
-  "0/1 -> 1/1: G4",
-  "0/1 -> 1/1: C3",
-]
-`;
-
-exports[`renders shared tunes > shared tune 252 https://strudel.cc/?CG9iByv5zHY- 1`] = `
-[
-  "0/1 -> 1/3: 48",
-  "1/3 -> 2/3: 51",
-  "2/3 -> 1/1: 55",
-]
-`;
-
-exports[`renders shared tunes > shared tune 253 https://strudel.cc/?FgUTcaG_XKGK 1`] = `
-[
-  "0/1 -> 1/4: 48",
-  "1/4 -> 1/2: 51",
-  "1/2 -> 3/4: 55",
-  "3/4 -> 1/1: 36",
-]
-`;
-
-exports[`renders shared tunes > shared tune 254 https://strudel.cc/?CmY3ebvIfYEG 1`] = `
-[
-  "0/1 -> 1/10: C3",
-  "0/1 -> 1/10: E3",
-  "0/1 -> 1/10: G3",
-  "1/4 -> 7/20: B3",
-  "1/4 -> 7/20: E4",
-  "1/4 -> 7/20: E3",
-  "1/2 -> 3/5: C3",
-  "1/2 -> 3/5: A2",
-  "1/2 -> 3/5: C3",
-  "3/4 -> 17/20: E3",
-  "3/4 -> 17/20: G3",
-  "3/4 -> 17/20: B3",
-  "0/1 -> 1/5: C2",
-  "1/2 -> 7/10: E2",
-]
-`;
-
-exports[`renders shared tunes > shared tune 255 https://strudel.cc/?yNx4koGpPrSH 1`] = `
-[
-  "0/1 -> 6275565/1452119: A3",
-  "-9/8 -> 20400609/11616952: G4",
-  "3/8 -> 54560877/11616952: D4",
-  "-3/4 -> 12378483/5808476: F5",
-  "3/4 -> 29458617/5808476: G4",
-  "0/1 -> 3/2: D2",
-]
-`;
-
-exports[`renders shared tunes > shared tune 256 https://strudel.cc/?oBtcxYrbZlNG 1`] = `
-[
-  "0/1 -> 1/2: {\\"note\\":\\"D3\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.4814814814814815}",
-  "1/4 -> 3/4: {\\"note\\":\\"F3\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.49537037037037035}",
-  "0/1 -> 1/4: {\\"note\\":\\"F4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5509259259259259}",
-  "1/2 -> 1/1: {\\"note\\":\\"C4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5277777777777778}",
-  "1/4 -> 1/2: {\\"note\\":\\"A4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5694444444444444}",
-  "3/4 -> 5/4: {\\"note\\":\\"E4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5462962962962963}",
-  "-1/8 -> 1/8: {\\"note\\":\\"Bb3\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5185185185185186}",
-  "-1/8 -> 1/8: {\\"note\\":\\"A4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5694444444444444}",
-  "1/8 -> 5/8: {\\"note\\":\\"D3\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.4814814814814815}",
-  "3/8 -> 7/8: {\\"note\\":\\"F3\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.49537037037037035}",
-  "1/8 -> 3/8: {\\"note\\":\\"F4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5509259259259259}",
-  "5/8 -> 9/8: {\\"note\\":\\"C4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5277777777777778}",
-  "3/8 -> 5/8: {\\"note\\":\\"A4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5694444444444444}",
-  "7/8 -> 11/8: {\\"note\\":\\"E4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5462962962962963}",
-  "0/1 -> 1/4: {\\"note\\":\\"Bb3\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5185185185185186}",
-  "0/1 -> 1/4: {\\"note\\":\\"A4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5694444444444444}",
-  "1/4 -> 3/4: {\\"note\\":\\"D3\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.4814814814814815}",
-  "1/2 -> 1/1: {\\"note\\":\\"F3\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.49537037037037035}",
-  "1/4 -> 1/2: {\\"note\\":\\"F4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5509259259259259}",
-  "3/4 -> 5/4: {\\"note\\":\\"C4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5277777777777778}",
-  "1/2 -> 3/4: {\\"note\\":\\"A4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5694444444444444}",
-  "-1/8 -> 1/8: {\\"note\\":\\"G3\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5046296296296297}",
-  "1/8 -> 3/8: {\\"note\\":\\"Bb3\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5185185185185186}",
-  "-1/8 -> 1/8: {\\"note\\":\\"F4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5509259259259259}",
-  "1/8 -> 3/8: {\\"note\\":\\"A4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5694444444444444}",
-  "3/8 -> 7/8: {\\"note\\":\\"D3\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.4814814814814815}",
-  "5/8 -> 9/8: {\\"note\\":\\"F3\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.49537037037037035}",
-  "3/8 -> 5/8: {\\"note\\":\\"F4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5509259259259259}",
-  "7/8 -> 11/8: {\\"note\\":\\"C4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5277777777777778}",
-  "5/8 -> 7/8: {\\"note\\":\\"A4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5694444444444444}",
-]
-`;
-
-exports[`renders shared tunes > shared tune 257 https://strudel.cc/?eCz4nyUk3TnN 1`] = `
-[
-  "0/1 -> 3/1: {\\"n\\":\\"B3\\",\\"s\\":\\"0040_FluidR3_GM_sf2_file\\",\\"attack\\":0.05,\\"decay\\":0.1,\\"sustain\\":0.7,\\"cutoff\\":1111.7252990603447,\\"gain\\":0.3}",
-  "0/1 -> 3/1: {\\"n\\":\\"D4\\",\\"s\\":\\"0040_FluidR3_GM_sf2_file\\",\\"attack\\":0.05,\\"decay\\":0.1,\\"sustain\\":0.7,\\"cutoff\\":1111.7252990603447,\\"gain\\":0.3}",
-  "0/1 -> 3/1: {\\"n\\":\\"E4\\",\\"s\\":\\"0040_FluidR3_GM_sf2_file\\",\\"attack\\":0.05,\\"decay\\":0.1,\\"sustain\\":0.7,\\"cutoff\\":1111.7252990603447,\\"gain\\":0.3}",
-  "0/1 -> 3/1: {\\"n\\":\\"G4\\",\\"s\\":\\"0040_FluidR3_GM_sf2_file\\",\\"attack\\":0.05,\\"decay\\":0.1,\\"sustain\\":0.7,\\"cutoff\\":1111.7252990603447,\\"gain\\":0.3}",
-  "0/1 -> 9/2: {\\"n\\":\\"C5\\",\\"s\\":\\"0040_FluidR3_GM_sf2_file\\",\\"attack\\":0.05,\\"decay\\":0.1,\\"sustain\\":0.7,\\"cutoff\\":1111.7252990603447,\\"gain\\":0.3}",
-  "0/1 -> 3/4: {\\"n\\":\\"C2\\",\\"s\\":\\"sawtooth\\",\\"attack\\":0.05,\\"decay\\":0.1,\\"sustain\\":0.7,\\"cutoff\\":864.536878321087,\\"gain\\":0.3}",
-  "0/1 -> 3/4: {\\"s\\":\\"bd\\",\\"speed\\":0.9107561463868479,\\"n\\":3}",
-  "3/4 -> 3/2: {\\"s\\":\\"sd\\",\\"speed\\":0.9931522866332672,\\"n\\":3}",
-  "0/1 -> 1/2: {\\"s\\":\\"hh\\",\\"speed\\":0.9036881079621337,\\"n\\":3}",
-  "1/2 -> 1/1: {\\"s\\":\\"hh\\",\\"speed\\":0.9519542165100575,\\"n\\":3}",
-]
-`;
-
-exports[`renders shared tunes > shared tune 259 https://strudel.cc/?J3FcQgOeZ3cV 1`] = `
-[
-  "0/1 -> 5/26: {\\"note\\":\\"B2\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.46759259259259256}",
-  "5/13 -> 15/26: {\\"note\\":\\"B2\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.46759259259259256}",
-  "10/13 -> 155/156: {\\"note\\":\\"B2\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.46759259259259256}",
-  "155/156 -> 15/13: {\\"note\\":\\"A2\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.45833333333333337}",
-  "0/1 -> 15/26: {\\"note\\":\\"B3\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5231481481481481}",
-  "5/52 -> 35/52: {\\"note\\":\\"C#4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5324074074074074}",
-  "5/26 -> 10/13: {\\"note\\":\\"D#4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5416666666666667}",
-  "15/52 -> 45/52: {\\"note\\":\\"F4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5509259259259259}",
-  "5/13 -> 25/26: {\\"note\\":\\"G4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5601851851851851}",
-  "25/52 -> 55/52: {\\"note\\":\\"A4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5694444444444444}",
-  "15/26 -> 15/13: {\\"note\\":\\"B4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5787037037037037}",
-  "35/52 -> 5/4: {\\"note\\":\\"C#5\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.587962962962963}",
-  "5/13 -> 25/26: {\\"note\\":\\"B3\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5231481481481481}",
-  "25/52 -> 55/52: {\\"note\\":\\"C#4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5324074074074074}",
-  "15/26 -> 15/13: {\\"note\\":\\"D#4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5416666666666667}",
-  "35/52 -> 5/4: {\\"note\\":\\"F4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5509259259259259}",
-  "10/13 -> 35/26: {\\"note\\":\\"G4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5601851851851851}",
-  "45/52 -> 75/52: {\\"note\\":\\"A4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5694444444444444}",
-  "25/26 -> 20/13: {\\"note\\":\\"B4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5787037037037037}",
-  "10/13 -> 35/26: {\\"note\\":\\"B3\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5231481481481481}",
-  "45/52 -> 75/52: {\\"note\\":\\"C#4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5324074074074074}",
-  "25/26 -> 20/13: {\\"note\\":\\"D#4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5416666666666667}",
-  "0/1 -> 80/13: {\\"s\\":\\"mad\\"}",
-]
-`;
-
-exports[`renders shared tunes > shared tune 260 https://strudel.cc/?tTlyA1JzHklU 1`] = `
-[
-  "0/1 -> 4/3: B4",
-  "0/1 -> 1/3: C3",
-  "1/3 -> 2/3: G3",
-  "2/3 -> 2/1: E4",
-]
-`;
-
-exports[`renders shared tunes > shared tune 261 https://strudel.cc/?hIhmX2R9gtwL 1`] = `
-[
-  "0/1 -> 1/8: {\\"note\\":\\"c2\\",\\"s\\":\\"sawtooth\\",\\"attack\\":0.1,\\"release\\":0.3,\\"vowel\\":\\"a\\"}",
-  "1/2 -> 5/8: {\\"note\\":\\"c2\\",\\"s\\":\\"sawtooth\\",\\"attack\\":0.1,\\"release\\":0.3,\\"vowel\\":\\"o\\"}",
-  "0/1 -> 1/8: {\\"note\\":\\"c3\\",\\"s\\":\\"sawtooth\\",\\"attack\\":0.1,\\"release\\":0.3,\\"vowel\\":\\"a\\"}",
-  "3/8 -> 1/2: {\\"note\\":\\"c3\\",\\"s\\":\\"sawtooth\\",\\"attack\\":0.1,\\"release\\":0.3,\\"vowel\\":\\"a\\"}",
-  "3/4 -> 7/8: {\\"note\\":\\"c3\\",\\"s\\":\\"sawtooth\\",\\"attack\\":0.1,\\"release\\":0.3,\\"vowel\\":\\"o\\"}",
-  "0/1 -> 3/8: {\\"note\\":\\"C1\\",\\"s\\":\\"sawtooth\\",\\"attack\\":0,\\"release\\":0.3,\\"cutoff\\":200}",
-  "0/1 -> 3/8: {\\"note\\":\\"C1\\",\\"s\\":\\"sawtooth\\",\\"attack\\":0,\\"release\\":0.3,\\"cutoff\\":300}",
-  "3/8 -> 3/4: {\\"note\\":\\"G2\\",\\"s\\":\\"sawtooth\\",\\"attack\\":0,\\"release\\":0.3,\\"cutoff\\":300}",
-  "3/8 -> 3/4: {\\"note\\":\\"G2\\",\\"s\\":\\"sawtooth\\",\\"attack\\":0,\\"release\\":0.3,\\"cutoff\\":100}",
-  "1/6 -> 1/3: {\\"note\\":\\"c2\\",\\"s\\":\\"sd\\"}",
-  "1/6 -> 1/3: {\\"note\\":\\"c2\\",\\"s\\":\\"bd\\"}",
-  "1/3 -> 1/2: {\\"note\\":\\"c2\\",\\"s\\":\\"bd\\"}",
-  "1/3 -> 1/2: {\\"note\\":\\"c2\\",\\"s\\":\\"sd\\"}",
-  "5/6 -> 1/1: {\\"note\\":\\"c#2\\",\\"s\\":\\"bd\\"}",
-  "1/12 -> 1/6: {\\"note\\":\\"c2\\",\\"s\\":\\"hh\\"}",
-  "1/6 -> 1/4: {\\"note\\":\\"c2\\",\\"s\\":\\"hh\\"}",
-  "2/3 -> 3/4: {\\"note\\":\\"c2\\",\\"s\\":\\"oh\\"}",
-  "3/4 -> 5/6: {\\"note\\":\\"c2\\",\\"s\\":\\"oh\\"}",
-  "1/4 -> 1/3: {\\"note\\":\\"c2\\",\\"s\\":\\"hh\\",\\"speed\\":0.5}",
-  "7/12 -> 2/3: {\\"note\\":\\"c2\\",\\"s\\":\\"oh\\",\\"speed\\":0.5}",
-]
-`;
-
-exports[`renders shared tunes > shared tune 262 https://strudel.cc/?NIL21RJTmuAa 1`] = `
-[
-  "0/1 -> 1/2: Bb2",
-  "0/1 -> 1/2: F3",
-  "0/1 -> 1/2: Bb3",
-  "1/2 -> 1/1: Bb2",
-  "1/2 -> 1/1: Bb2",
-  "1/2 -> 1/1: F3",
-  "1/2 -> 1/1: F3",
-  "1/2 -> 1/1: Bb3",
-  "1/2 -> 1/1: Bb3",
-  "0/1 -> 1/2: Bb1",
-  "1/2 -> 5/8: Bb1",
-  "3/4 -> 7/8: Bb1",
-  "0/1 -> 1/2: c1",
-  "1/2 -> 1/1: c1",
-  "1/2 -> 1/1: c3",
-  "0/1 -> 1/4: C1",
-  "1/4 -> 1/2: C3",
-  "1/2 -> 3/4: C1",
-  "3/4 -> 1/1: C3",
-]
-`;
-
-exports[`renders shared tunes > shared tune 263 https://strudel.cc/?CGh4oLKu9tOp 1`] = `
-[
-  "0/1 -> 4/3: B4",
-  "0/1 -> 1/3: C3",
-  "1/3 -> 2/3: G3",
-  "2/3 -> 2/1: E4",
-]
-`;
-
-exports[`renders shared tunes > shared tune 264 https://strudel.cc/?N486QfFJ2NvV 1`] = `
-[
-  "0/1 -> 1/8: {\\"freq\\":55.33,\\"s\\":\\"sawtooth\\"}",
-  "0/1 -> 1/8: {\\"freq\\":54.725,\\"s\\":\\"sawtooth\\"}",
-  "3/8 -> 1/2: {\\"freq\\":110.66,\\"s\\":\\"sawtooth\\"}",
-  "3/8 -> 1/2: {\\"freq\\":109.45,\\"s\\":\\"sawtooth\\"}",
-  "3/8 -> 1/2: {\\"freq\\":165.99,\\"s\\":\\"sawtooth\\"}",
-  "3/8 -> 1/2: {\\"freq\\":164.175,\\"s\\":\\"sawtooth\\"}",
-  "3/4 -> 7/8: {\\"freq\\":221.32,\\"s\\":\\"sawtooth\\"}",
-  "3/4 -> 7/8: {\\"freq\\":218.9,\\"s\\":\\"sawtooth\\"}",
-  "3/4 -> 7/8: {\\"freq\\":276.65,\\"s\\":\\"sawtooth\\"}",
-  "3/4 -> 7/8: {\\"freq\\":273.625,\\"s\\":\\"sawtooth\\"}",
-  "1/8 -> 59/400: {\\"freq\\":440,\\"gain\\":0.206361035083454,\\"s\\":\\"sawtooth\\"}",
-  "1/4 -> 109/400: {\\"freq\\":440,\\"gain\\":0.2360775017902398,\\"s\\":\\"sawtooth\\"}",
-  "1/2 -> 209/400: {\\"freq\\":440,\\"gain\\":0.3624358861780295,\\"s\\":\\"sawtooth\\"}",
-  "5/8 -> 259/400: {\\"freq\\":440,\\"gain\\":0.4316442271311083,\\"s\\":\\"sawtooth\\"}",
-  "7/8 -> 359/400: {\\"freq\\":440,\\"gain\\":0.5078844826422588,\\"s\\":\\"sawtooth\\"}",
-  "0/1 -> 1/8: {\\"s\\":\\"bd\\"}",
-  "3/8 -> 1/2: {\\"s\\":\\"bd\\"}",
-  "3/4 -> 7/8: {\\"s\\":\\"bd\\"}",
-  "0/1 -> 1/4: {\\"s\\":\\"hh\\"}",
-  "1/4 -> 1/2: {\\"s\\":\\"hh\\"}",
-  "1/2 -> 3/4: {\\"s\\":\\"hh\\"}",
-  "3/4 -> 1/1: {\\"s\\":\\"hh\\"}",
-  "1/2 -> 1/1: {\\"s\\":\\"sd\\"}",
-]
-`;
-
-exports[`renders shared tunes > shared tune 265 https://strudel.cc/?Njas64Vf03LO 1`] = `
-[
-  "0/1 -> 5/11: {\\"note\\":\\"c2\\",\\"s\\":\\"sawtooth\\",\\"vowel\\":\\"a\\",\\"gain\\":1.1882154262966047,\\"delay\\":0.1}",
-  "5/11 -> 15/11: {\\"note\\":\\"eb2\\",\\"s\\":\\"sawtooth\\",\\"vowel\\":\\"a\\",\\"gain\\":1.361256209529016,\\"delay\\":0.1}",
-  "10/11 -> 15/11: {\\"note\\":\\"c2\\",\\"s\\":\\"square\\",\\"vowel\\":\\"e\\",\\"gain\\":1.5242570631433978,\\"delay\\":0.1}",
-  "0/1 -> 5/11: {\\"note\\":\\"c1\\",\\"s\\":\\"sine\\",\\"shape\\":0.7,\\"gain\\":1.590884651807325,\\"delay\\":0.1}",
-  "5/11 -> 10/11: {\\"note\\":\\"eb1\\",\\"s\\":\\"sine\\",\\"shape\\":0.7,\\"gain\\":1.5196152422706635,\\"delay\\":0.1}",
-  "10/11 -> 15/11: {\\"note\\":\\"c1\\",\\"s\\":\\"sine\\",\\"shape\\":0.7,\\"gain\\":1.385672565811924,\\"delay\\":0.1}",
-  "0/1 -> 5/44: {\\"s\\":\\"hh\\",\\"pan\\":0.5,\\"gain\\":0.2,\\"delay\\":0.1}",
-  "5/44 -> 5/22: {\\"s\\":\\"hh\\",\\"pan\\":0.5,\\"speed\\":0.9,\\"gain\\":0.2,\\"delay\\":0.1}",
-  "5/22 -> 15/44: {\\"s\\":\\"hh\\",\\"pan\\":0.5,\\"speed\\":0.9,\\"gain\\":0.5,\\"delay\\":0.1}",
-  "15/44 -> 5/11: {\\"s\\":\\"hh\\",\\"pan\\":0.5,\\"speed\\":0.9,\\"gain\\":0.5,\\"delay\\":0.1}",
-  "5/11 -> 15/22: {\\"s\\":\\"hh\\",\\"pan\\":0.5,\\"speed\\":1.1,\\"gain\\":0.6,\\"delay\\":0.1}",
-  "15/22 -> 10/11: {\\"s\\":\\"hh\\",\\"pan\\":0.5,\\"speed\\":1.1,\\"gain\\":0.4,\\"delay\\":0.1}",
-  "10/11 -> 45/44: {\\"s\\":\\"hh\\",\\"pan\\":0.5,\\"speed\\":0.9,\\"gain\\":0.2,\\"delay\\":0.1}",
-  "0/1 -> 8/11: {\\"s\\":\\"bd\\",\\"delay\\":0.1}",
-  "8/11 -> 16/11: {\\"s\\":\\"bd\\",\\"delay\\":0.1}",
-  "8/11 -> 16/11: {\\"s\\":\\"bd\\",\\"delay\\":0.1}",
-  "0/1 -> 20/11: {\\"s\\":\\"misc\\",\\"n\\":13,\\"delay\\":0.1}",
-  "0/1 -> 20/11: {\\"s\\":\\"misc\\",\\"n\\":13,\\"delay\\":0.1}",
-]
-`;
-
-exports[`renders shared tunes > shared tune 266 https://strudel.cc/?-qcqwVsJXv8J 1`] = `
-[
-  "0/1 -> 1/1: bd",
-  "0/1 -> 1/4: hh",
-  "1/4 -> 1/2: hh",
-  "1/2 -> 3/4: hh",
-  "3/4 -> 1/1: hh",
-  "1/2 -> 1/1: sn",
-]
-`;
-
-exports[`renders shared tunes > shared tune 267 https://strudel.cc/?Q2WQMrJVFb46 1`] = `
-[
-  "0/1 -> 5/11: {\\"note\\":\\"c2\\",\\"s\\":\\"sawtooth\\",\\"vowel\\":\\"a\\",\\"gain\\":0.2000348432426738,\\"delay\\":0.1}",
-  "5/11 -> 15/11: {\\"note\\":\\"eb2\\",\\"s\\":\\"sawtooth\\",\\"vowel\\":\\"a\\",\\"gain\\":0.20089674623394735,\\"delay\\":0.1}",
-  "10/11 -> 15/11: {\\"note\\":\\"c2\\",\\"s\\":\\"square\\",\\"vowel\\":\\"e\\",\\"gain\\":0.20395302623820533,\\"delay\\":0.1}",
-  "0/1 -> 5/11: {\\"note\\":\\"c1\\",\\"s\\":\\"sine\\",\\"shape\\":0.7,\\"gain\\":0.40012812116863894,\\"delay\\":0.1}",
-  "5/11 -> 10/11: {\\"note\\":\\"eb1\\",\\"s\\":\\"sine\\",\\"shape\\":0.7,\\"gain\\":0.40317197328808513,\\"delay\\":0.1}",
-  "10/11 -> 15/11: {\\"note\\":\\"c1\\",\\"s\\":\\"sine\\",\\"shape\\":0.7,\\"gain\\":0.4134168413561418,\\"delay\\":0.1}",
-  "0/1 -> 5/44: {\\"s\\":\\"hh\\",\\"pan\\":0.0011524725685347903,\\"gain\\":0.2,\\"delay\\":0.1}",
-  "5/44 -> 5/22: {\\"s\\":\\"hh\\",\\"pan\\":0.025337550391114405,\\"speed\\":0.9,\\"gain\\":0.2,\\"delay\\":0.1}",
-  "5/22 -> 15/44: {\\"s\\":\\"hh\\",\\"pan\\":0.09352072111390441,\\"speed\\":0.9,\\"gain\\":0.5,\\"delay\\":0.1}",
-  "15/44 -> 5/11: {\\"s\\":\\"hh\\",\\"pan\\":0.19951846897795633,\\"speed\\":0.9,\\"gain\\":0.5,\\"delay\\":0.1}",
-  "5/11 -> 15/22: {\\"s\\":\\"hh\\",\\"pan\\":0.3765602545513502,\\"speed\\":1.1,\\"gain\\":0.6,\\"delay\\":0.1}",
-  "15/22 -> 10/11: {\\"s\\":\\"hh\\",\\"pan\\":0.5112023464103004,\\"speed\\":1.1,\\"gain\\":0.4,\\"delay\\":0.1}",
-  "10/11 -> 45/44: {\\"s\\":\\"hh\\",\\"pan\\":0.5205181601692033,\\"speed\\":0.9,\\"gain\\":0.2,\\"delay\\":0.1}",
-  "0/1 -> 8/11: {\\"s\\":\\"bd:4\\",\\"delay\\":0.1}",
-  "8/11 -> 16/11: {\\"s\\":\\"bd:4\\",\\"delay\\":0.1}",
-  "8/11 -> 16/11: {\\"s\\":\\"bd:4\\",\\"delay\\":0.1}",
-  "0/1 -> 8/11: {\\"s\\":\\"bd:7\\",\\"delay\\":0.1}",
-  "0/1 -> 40/11: {\\"s\\":\\"misc\\",\\"n\\":13,\\"delay\\":0.1}",
-  "0/1 -> 40/11: {\\"s\\":\\"misc\\",\\"n\\":13,\\"delay\\":0.1}",
-]
-`;
-
-exports[`renders shared tunes > shared tune 268 https://strudel.cc/?IV4pDyaLUMB0 1`] = `
-[
-  "0/1 -> 1/2: c1",
-  "1/2 -> 1/1: c1",
-  "1/2 -> 1/1: c3",
-  "0/1 -> 1/4: C1",
-  "1/4 -> 1/2: C3",
-  "1/2 -> 3/4: C1",
-  "3/4 -> 1/1: C3",
-]
-`;
-
-exports[`renders shared tunes > shared tune 269 https://strudel.cc/?XQ_uhshhjEYw 1`] = `
-[
-  "-18/5 -> 2/5: c3",
-  "-18/5 -> 2/5: e3",
-  "-18/5 -> 2/5: g3",
-  "2/5 -> 12/5: g3",
-  "2/5 -> 12/5: bb3",
-  "2/5 -> 12/5: d4",
-  "0/1 -> 4/1: Baker man",
-]
-`;
-
-exports[`renders shared tunes > shared tune 270 https://strudel.cc/?XDCsI7uPtnav 1`] = `
-[
-  "0/1 -> 2/1: {\\"note\\":\\"C3\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.4722222222222222}",
-  "0/1 -> 2/1: {\\"note\\":\\"E3\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.4907407407407407}",
-  "0/1 -> 1/1: {\\"note\\":\\"B3\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5231481481481481}",
-]
-`;
-
-exports[`renders shared tunes > shared tune 271 https://strudel.cc/?2t_PSStoDUhV 1`] = `
-[
-  "0/1 -> 5/11: {\\"note\\":\\"c2\\",\\"s\\":\\"sawtooth\\",\\"vowel\\":\\"a\\",\\"gain\\":0.2000348432426738,\\"delay\\":0.1}",
-  "5/11 -> 15/11: {\\"note\\":\\"eb2\\",\\"s\\":\\"sawtooth\\",\\"vowel\\":\\"a\\",\\"gain\\":0.20089674623394735,\\"delay\\":0.1}",
-  "10/11 -> 15/11: {\\"note\\":\\"c2\\",\\"s\\":\\"square\\",\\"vowel\\":\\"e\\",\\"gain\\":0.20395302623820533,\\"delay\\":0.1}",
-  "0/1 -> 5/11: {\\"note\\":\\"c1\\",\\"s\\":\\"sine\\",\\"shape\\":0.7,\\"gain\\":0.40012812116863894,\\"delay\\":0.1}",
-  "5/11 -> 10/11: {\\"note\\":\\"eb1\\",\\"s\\":\\"sine\\",\\"shape\\":0.7,\\"gain\\":0.40317197328808513,\\"delay\\":0.1}",
-  "10/11 -> 15/11: {\\"note\\":\\"c1\\",\\"s\\":\\"sine\\",\\"shape\\":0.7,\\"gain\\":0.4134168413561418,\\"delay\\":0.1}",
-  "0/1 -> 5/44: {\\"s\\":\\"hh\\",\\"pan\\":0.0011524725685347903,\\"gain\\":0.2,\\"delay\\":0.1}",
-  "5/44 -> 5/22: {\\"s\\":\\"hh\\",\\"pan\\":0.025337550391114405,\\"speed\\":0.9,\\"gain\\":0.2,\\"delay\\":0.1}",
-  "5/22 -> 15/44: {\\"s\\":\\"hh\\",\\"pan\\":0.09352072111390441,\\"speed\\":0.9,\\"gain\\":0.5,\\"delay\\":0.1}",
-  "15/44 -> 5/11: {\\"s\\":\\"hh\\",\\"pan\\":0.19951846897795633,\\"speed\\":0.9,\\"gain\\":0.5,\\"delay\\":0.1}",
-  "5/11 -> 15/22: {\\"s\\":\\"hh\\",\\"pan\\":0.3765602545513502,\\"speed\\":1.1,\\"gain\\":0.6,\\"delay\\":0.1}",
-  "15/22 -> 10/11: {\\"s\\":\\"hh\\",\\"pan\\":0.5112023464103004,\\"speed\\":1.1,\\"gain\\":0.4,\\"delay\\":0.1}",
-  "10/11 -> 45/44: {\\"s\\":\\"hh\\",\\"pan\\":0.5205181601692033,\\"speed\\":0.9,\\"gain\\":0.2,\\"delay\\":0.1}",
-  "0/1 -> 20/33: {\\"s\\":\\"bd:4\\",\\"delay\\":0.1}",
-  "20/33 -> 50/33: {\\"s\\":\\"bd:4\\",\\"delay\\":0.1}",
-  "20/33 -> 50/33: {\\"s\\":\\"bd:4\\",\\"delay\\":0.1}",
-  "0/1 -> 8/11: {\\"s\\":\\"bd:7\\",\\"delay\\":0.1}",
-]
-`;
-
-exports[`renders shared tunes > shared tune 272 https://strudel.cc/?J4419vLymh08 1`] = `
-[
-  "5/6 -> 5/3: {\\"note\\":\\"eb4\\",\\"s\\":\\"piano\\",\\"cutoff\\":1275.348281040755,\\"resonance\\":0,\\"delay\\":0.1}",
-  "0/1 -> 5/6: {\\"value\\":\\"\\",\\"s\\":\\"sawtooth\\",\\"vowel\\":\\"a\\",\\"gain\\":1.8000302424954437,\\"hcutoff\\":800,\\"cutoff\\":770.1250948828399,\\"resonance\\":0,\\"delay\\":0.1}",
-  "5/6 -> 5/3: {\\"value\\":\\"\\",\\"s\\":\\"sawtooth\\",\\"vowel\\":\\"e\\",\\"gain\\":1.800740293925432,\\"hcutoff\\":800,\\"cutoff\\":1275.348281040755,\\"resonance\\":0,\\"delay\\":0.1}",
-  "0/1 -> 5/12: {\\"value\\":\\"\\",\\"s\\":\\"sine\\",\\"shape\\":0.31075614638684784,\\"gain\\":0.32689036596711957,\\"cutoff\\":550.2814374985721,\\"resonance\\":0,\\"delay\\":0.1}",
-  "5/6 -> 5/4: {\\"value\\":\\"\\",\\"s\\":\\"sine\\",\\"shape\\":0.41301749653939623,\\"gain\\":0.5825437413484906,\\"cutoff\\":1275.348281040755,\\"resonance\\":0,\\"delay\\":0.1}",
-  "0/1 -> 5/48: {\\"s\\":\\"hh:4\\",\\"pan\\":0.0011524725685347903,\\"gain\\":0.20023049451370697,\\"cutoff\\":501.01682565995276,\\"delay\\":0.1}",
-  "5/8 -> 35/48: {\\"s\\":\\"hh:4\\",\\"pan\\":0.4942046147094601,\\"gain\\":0.298840922941892,\\"cutoff\\":1127.589313362064,\\"delay\\":0.1}",
-  "5/48 -> 5/24: {\\"s\\":\\"hh:4\\",\\"pan\\":0.025337550391114405,\\"speed\\":0.8,\\"gain\\":0.20506751007822288,\\"cutoff\\":523.1963129666834,\\"delay\\":0.1}",
-  "5/24 -> 5/16: {\\"s\\":\\"hh:4\\",\\"pan\\":0.09352072111390441,\\"speed\\":0.8,\\"gain\\":0.2187041442227809,\\"cutoff\\":589.4695471856543,\\"delay\\":0.1}",
-  "5/16 -> 5/12: {\\"s\\":\\"hh:4\\",\\"pan\\":0.19951846897795633,\\"speed\\":0.8,\\"gain\\":0.2399036937955913,\\"cutoff\\":701.2472529547128,\\"delay\\":0.1}",
-  "5/12 -> 25/48: {\\"s\\":\\"hh:4\\",\\"pan\\":0.32002369612261816,\\"speed\\":0.8,\\"gain\\":0.26400473922452367,\\"cutoff\\":844.1125126334155,\\"delay\\":0.1}",
-  "25/48 -> 5/8: {\\"s\\":\\"hh:4\\",\\"pan\\":0.4260214439866701,\\"speed\\":0.8,\\"gain\\":0.28520428879733406,\\"cutoff\\":994.7023499022843,\\"delay\\":0.1}",
-  "35/48 -> 5/6: {\\"s\\":\\"hh:4\\",\\"pan\\":0.5183896925320397,\\"speed\\":0.8,\\"gain\\":0.30367793850640795,\\"cutoff\\":1222.1630601329798,\\"delay\\":0.1}",
-  "5/6 -> 15/16: {\\"s\\":\\"hh:4\\",\\"pan\\":0.5205181601692033,\\"speed\\":0.9,\\"gain\\":0.30410363203384067,\\"cutoff\\":1269.511939453993,\\"delay\\":0.1}",
-  "0/1 -> 2/3: {\\"s\\":\\"bd:7\\",\\"cutoff\\":663.5595704946253,\\"delay\\":0.1}",
-  "0/1 -> 2/3: {\\"s\\":\\"bd:7\\",\\"cutoff\\":663.5595704946253,\\"delay\\":0.1}",
-]
-`;
-
-exports[`renders shared tunes > shared tune 273 https://strudel.cc/?hGG0rEr1zC3A 1`] = `
-[
-  "0/1 -> 5/4: {\\"value\\":\\"\\",\\"s\\":\\"sawtooth\\",\\"vowel\\":\\"a\\",\\"gain\\":1.8000302424954437,\\"hcutoff\\":800,\\"cutoff\\":889.6566238254309,\\"resonance\\":0,\\"delay\\":0.1}",
-  "0/1 -> 5/8: {\\"value\\":\\"\\",\\"s\\":\\"sine\\",\\"shape\\":0.31075614638684784,\\"gain\\":0.32689036596711957,\\"cutoff\\":640.2810816708566,\\"resonance\\":0,\\"delay\\":0.1}",
-  "0/1 -> 5/32: {\\"s\\":\\"hh:4\\",\\"pan\\":0.0011524725685347903,\\"gain\\":0.20023049451370697,\\"cutoff\\":503.29418853183773,\\"delay\\":0.1}",
-  "15/16 -> 35/32: {\\"s\\":\\"hh:4\\",\\"pan\\":0.4942046147094601,\\"gain\\":0.298840922941892,\\"cutoff\\":1279.0864289350343,\\"delay\\":0.1}",
-  "5/32 -> 5/16: {\\"s\\":\\"hh:4\\",\\"pan\\":0.025337550391114405,\\"speed\\":0.8,\\"gain\\":0.20506751007822288,\\"cutoff\\":568.3668865859811,\\"delay\\":0.1}",
-  "5/16 -> 15/32: {\\"s\\":\\"hh:4\\",\\"pan\\":0.09352072111390441,\\"speed\\":0.8,\\"gain\\":0.2187041442227809,\\"cutoff\\":734.8617615476446,\\"delay\\":0.1}",
-  "15/32 -> 5/8: {\\"s\\":\\"hh:4\\",\\"pan\\":0.19951846897795633,\\"speed\\":0.8,\\"gain\\":0.2399036937955913,\\"cutoff\\":957.7506764815016,\\"delay\\":0.1}",
-  "5/8 -> 25/32: {\\"s\\":\\"hh:4\\",\\"pan\\":0.32002369612261816,\\"speed\\":0.8,\\"gain\\":0.26400473922452367,\\"cutoff\\":1155.4255766324245,\\"delay\\":0.1}",
-  "25/32 -> 15/16: {\\"s\\":\\"hh:4\\",\\"pan\\":0.4260214439866701,\\"speed\\":0.8,\\"gain\\":0.28520428879733406,\\"cutoff\\":1261.9555148823424,\\"delay\\":0.1}",
-  "0/1 -> 1/1: {\\"s\\":\\"bd:7\\",\\"cutoff\\":889.6566238254309,\\"delay\\":0.1}",
-  "0/1 -> 1/1: {\\"s\\":\\"bd:7\\",\\"cutoff\\":889.6566238254309,\\"delay\\":0.1}",
-]
-`;
-
-exports[`renders shared tunes > shared tune 274 https://strudel.cc/?ahkvgPdMeapI 1`] = `
-[
-  "0/1 -> 1/2: {\\"note\\":\\"F3\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.49537037037037035}",
-  "1/4 -> 3/4: {\\"note\\":\\"F2\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.4398148148148148}",
-  "1/2 -> 1/1: {\\"note\\":\\"F3\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.49537037037037035}",
-  "1/2 -> 1/1: {\\"note\\":\\"Ab3\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5092592592592593}",
-  "1/2 -> 1/1: {\\"note\\":\\"C4\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.5277777777777778}",
-  "1/2 -> 1/1: {\\"note\\":\\"F2\\",\\"clip\\":1,\\"s\\":\\"piano\\",\\"release\\":0.1,\\"pan\\":0.4398148148148148}",
-]
-`;
-
-exports[`renders shared tunes > shared tune 275 https://strudel.cc/?um_AAxJMJr5U 1`] = `
-[
-  "0/1 -> 1/1: {\\"note\\":\\"c4\\",\\"s\\":\\"piano\\",\\"gain\\":0.5}",
-  "0/1 -> 1/1: {\\"note\\":\\"e4\\",\\"s\\":\\"piano\\",\\"gain\\":0.5}",
-  "0/1 -> 1/1: {\\"note\\":\\"g4\\",\\"s\\":\\"piano\\",\\"gain\\":0.5}",
-  "0/1 -> 1/8: {\\"s\\":\\"hh:4\\",\\"pan\\":0.0011524725685347903,\\"gain\\":0.5,\\"cutoff\\":1010.3722531168131}",
-  "3/4 -> 7/8: {\\"s\\":\\"hh:4\\",\\"pan\\":0.4942046147094601,\\"gain\\":0.5,\\"cutoff\\":5447.84153238514}",
-  "1/8 -> 1/4: {\\"s\\":\\"hh:4\\",\\"pan\\":0.025337550391114405,\\"speed\\":0.8,\\"gain\\":0.5,\\"cutoff\\":1228.0379535200295}",
-  "1/4 -> 3/8: {\\"s\\":\\"hh:4\\",\\"pan\\":0.09352072111390441,\\"speed\\":0.8,\\"gain\\":0.5,\\"cutoff\\":1841.6864900251398}",
-  "3/8 -> 1/2: {\\"s\\":\\"hh:4\\",\\"pan\\":0.19951846897795633,\\"speed\\":0.8,\\"gain\\":0.5,\\"cutoff\\":2795.666220801607}",
-  "1/2 -> 5/8: {\\"s\\":\\"hh:4\\",\\"pan\\":0.32002369612261816,\\"speed\\":0.8,\\"gain\\":0.5,\\"cutoff\\":3880.2132651035636}",
-  "5/8 -> 3/4: {\\"s\\":\\"hh:4\\",\\"pan\\":0.4260214439866701,\\"speed\\":0.8,\\"gain\\":0.5,\\"cutoff\\":4834.19299588003}",
-  "7/8 -> 1/1: {\\"s\\":\\"hh:4\\",\\"pan\\":0.5183896925320397,\\"speed\\":0.8,\\"gain\\":0.5,\\"cutoff\\":5665.507232788357}",
-  "0/1 -> 4/5: {\\"s\\":\\"bd:7\\",\\"cutoff\\":300,\\"gain\\":0.5}",
-  "0/1 -> 4/5: {\\"s\\":\\"bd:7\\",\\"cutoff\\":1000,\\"gain\\":0.5}",
-]
-`;
-
-exports[`renders shared tunes > shared tune 276 https://strudel.cc/?UxSJbzL1d05O 1`] = `
-[
-  "0/1 -> 5/4: {\\"note\\":\\"c4\\",\\"s\\":\\"piano\\",\\"gain\\":0.5}",
-  "0/1 -> 5/4: {\\"note\\":\\"eb4\\",\\"s\\":\\"piano\\",\\"gain\\":0.5}",
-  "0/1 -> 5/4: {\\"note\\":\\"g4\\",\\"s\\":\\"piano\\",\\"gain\\":0.5}",
-  "0/1 -> 5/4: {\\"note\\":\\"c4\\",\\"s\\":\\"square\\",\\"vowel\\":\\"a\\",\\"gain\\":0.5}",
-  "0/1 -> 5/4: {\\"note\\":\\"eb4\\",\\"s\\":\\"square\\",\\"vowel\\":\\"a\\",\\"gain\\":0.5}",
-  "0/1 -> 5/4: {\\"note\\":\\"g4\\",\\"s\\":\\"square\\",\\"vowel\\":\\"a\\",\\"gain\\":0.5}",
-  "0/1 -> 5/8: {\\"s\\":\\"hh:1\\",\\"pan\\":0.05378073193423916,\\"speed\\":0.9,\\"gain\\":0.5,\\"cutoff\\":1484.0265874081524}",
-  "5/8 -> 5/4: {\\"s\\":\\"hh:1\\",\\"pan\\":0.46576143316633534,\\"speed\\":0.9,\\"gain\\":0.5,\\"cutoff\\":5191.852898497018}",
-  "0/1 -> 5/32: {\\"s\\":\\"hh:4\\",\\"pan\\":0.8426077850162983,\\"gain\\":0.5,\\"cutoff\\":1010.3722531168131}",
-  "15/16 -> 35/32: {\\"s\\":\\"hh:4\\",\\"pan\\":0.7516226731240749,\\"gain\\":0.5,\\"cutoff\\":5447.84153238514}",
-  "5/32 -> 5/16: {\\"s\\":\\"hh:4\\",\\"pan\\":0.20066574029624462,\\"speed\\":0.8,\\"gain\\":0.5,\\"cutoff\\":1228.0379535200295}",
-  "5/8 -> 25/32: {\\"s\\":\\"hh:4\\",\\"pan\\":0.16399178467690945,\\"speed\\":0.8,\\"gain\\":0.5,\\"cutoff\\":3880.2132651035636}",
-  "25/32 -> 15/16: {\\"s\\":\\"hh:4\\",\\"pan\\":0.408811716362834,\\"speed\\":0.8,\\"gain\\":0.5,\\"cutoff\\":4834.19299588003}",
-  "0/1 -> 1/1: {\\"s\\":\\"bd:7\\",\\"cutoff\\":300,\\"gain\\":0.5}",
-  "0/1 -> 1/1: {\\"s\\":\\"bd:7\\",\\"cutoff\\":1000,\\"gain\\":0.5}",
-]
-`;
-
-exports[`renders shared tunes > shared tune 277 https://strudel.cc/?90drkbxdBr2- 1`] = `
-[
-  "0/1 -> 5/4: {\\"note\\":\\"c4\\",\\"s\\":\\"piano\\",\\"gain\\":0.5}",
-  "0/1 -> 5/4: {\\"note\\":\\"eb4\\",\\"s\\":\\"piano\\",\\"gain\\":0.5}",
-  "0/1 -> 5/4: {\\"note\\":\\"g4\\",\\"s\\":\\"piano\\",\\"gain\\":0.5}",
-  "0/1 -> 5/4: {\\"note\\":\\"c4\\",\\"s\\":\\"square\\",\\"vowel\\":\\"a\\",\\"gain\\":0.5}",
-  "0/1 -> 5/4: {\\"note\\":\\"eb4\\",\\"s\\":\\"square\\",\\"vowel\\":\\"a\\",\\"gain\\":0.5}",
-  "0/1 -> 5/4: {\\"note\\":\\"g4\\",\\"s\\":\\"square\\",\\"vowel\\":\\"a\\",\\"gain\\":0.5}",
-  "0/1 -> 5/8: {\\"s\\":\\"hh:1\\",\\"pan\\":0.05378073193423916,\\"speed\\":0.9,\\"gain\\":0.5,\\"cutoff\\":1484.0265874081524}",
-  "5/8 -> 5/4: {\\"s\\":\\"hh:1\\",\\"pan\\":0.46576143316633534,\\"speed\\":0.9,\\"gain\\":0.5,\\"cutoff\\":5191.852898497018}",
-  "0/1 -> 5/32: {\\"s\\":\\"hh:4\\",\\"pan\\":0.8426077850162983,\\"gain\\":0.5,\\"cutoff\\":1010.3722531168131}",
-  "15/16 -> 35/32: {\\"s\\":\\"hh:4\\",\\"pan\\":0.7516226731240749,\\"gain\\":0.5,\\"cutoff\\":5447.84153238514}",
-  "5/32 -> 5/16: {\\"s\\":\\"hh:4\\",\\"pan\\":0.20066574029624462,\\"speed\\":0.8,\\"gain\\":0.5,\\"cutoff\\":1228.0379535200295}",
-  "5/16 -> 15/32: {\\"s\\":\\"hh:4\\",\\"pan\\":0.5675661638379097,\\"speed\\":0.8,\\"gain\\":0.5,\\"cutoff\\":1841.6864900251398}",
-  "15/32 -> 5/8: {\\"s\\":\\"hh:4\\",\\"pan\\":0.3015887886285782,\\"speed\\":0.8,\\"gain\\":0.5,\\"cutoff\\":2795.666220801607}",
-  "5/8 -> 25/32: {\\"s\\":\\"hh:4\\",\\"pan\\":0.16399178467690945,\\"speed\\":0.8,\\"gain\\":0.5,\\"cutoff\\":3880.2132651035636}",
-  "25/32 -> 15/16: {\\"s\\":\\"hh:4\\",\\"pan\\":0.408811716362834,\\"speed\\":0.8,\\"gain\\":0.5,\\"cutoff\\":4834.19299588003}",
-  "0/1 -> 1/1: {\\"s\\":\\"bd:7\\",\\"cutoff\\":300,\\"gain\\":0.5}",
-  "0/1 -> 1/1: {\\"s\\":\\"bd:7\\",\\"cutoff\\":1000,\\"gain\\":0.5}",
-]
-`;
-
-exports[`renders shared tunes > shared tune 278 https://strudel.cc/?aGtqNXDNRxdA 1`] = `
-[
-  "0/1 -> 3/2: {\\"s\\":\\"bd\\",\\"speed\\":0.7519542165100574}",
-  "3/4 -> 3/2: {\\"s\\":\\"sd\\",\\"speed\\":0.7931522866332671}",
-  "3/8 -> 3/4: {\\"s\\":\\"hh\\",\\"speed\\":0.7285963821098448}",
-  "3/4 -> 9/8: {\\"s\\":\\"hh\\",\\"speed\\":0.77531205091027}",
-  "0/1 -> 3/2: {\\"n\\":33.129885541275144,\\"decay\\":0.15,\\"sustain\\":0,\\"s\\":\\"sawtooth\\",\\"gain\\":0.4,\\"cutoff\\":3669.6267869262615}",
-  "0/1 -> 3/2: {\\"n\\":33.17988554127514,\\"decay\\":0.15,\\"sustain\\":0,\\"s\\":\\"sawtooth\\",\\"gain\\":0.4,\\"cutoff\\":3669.6267869262615}",
-  "0/1 -> 3/2: {\\"n\\":55.129885541275144,\\"s\\":\\"sawtooth\\",\\"gain\\":0.16,\\"cutoff\\":500,\\"attack\\":1}",
-  "0/1 -> 3/2: {\\"n\\":59.129885541275144,\\"s\\":\\"sawtooth\\",\\"gain\\":0.16,\\"cutoff\\":500,\\"attack\\":1}",
-  "0/1 -> 3/2: {\\"n\\":60.129885541275144,\\"s\\":\\"sawtooth\\",\\"gain\\":0.16,\\"cutoff\\":500,\\"attack\\":1}",
-  "0/1 -> 3/2: {\\"n\\":64.12988554127514,\\"s\\":\\"sawtooth\\",\\"gain\\":0.16,\\"cutoff\\":500,\\"attack\\":1}",
-  "0/1 -> 3/2: {\\"n\\":55.16988554127514,\\"s\\":\\"sawtooth\\",\\"gain\\":0.16,\\"cutoff\\":500,\\"attack\\":1}",
-  "0/1 -> 3/2: {\\"n\\":59.16988554127514,\\"s\\":\\"sawtooth\\",\\"gain\\":0.16,\\"cutoff\\":500,\\"attack\\":1}",
-  "0/1 -> 3/2: {\\"n\\":60.16988554127514,\\"s\\":\\"sawtooth\\",\\"gain\\":0.16,\\"cutoff\\":500,\\"attack\\":1}",
-  "0/1 -> 3/2: {\\"n\\":64.16988554127515,\\"s\\":\\"sawtooth\\",\\"gain\\":0.16,\\"cutoff\\":500,\\"attack\\":1}",
-  "3/16 -> 3/8: {\\"n\\":69.01266877519555,\\"decay\\":0.1,\\"sustain\\":0,\\"s\\":\\"triangle\\",\\"gain\\":0.15}",
-  "3/8 -> 9/16: {\\"n\\":69.04676036055696,\\"decay\\":0.1,\\"sustain\\":0,\\"s\\":\\"triangle\\",\\"gain\\":0.15}",
-  "3/8 -> 9/16: {\\"n\\":72.04676036055696,\\"decay\\":0.1,\\"sustain\\":0,\\"s\\":\\"triangle\\",\\"gain\\":0.15}",
-  "3/4 -> 15/16: {\\"n\\":72.16001184806132,\\"decay\\":0.1,\\"sustain\\":0,\\"s\\":\\"triangle\\",\\"gain\\":0.15}",
-  "15/16 -> 9/8: {\\"n\\":72.21301072199333,\\"decay\\":0.1,\\"sustain\\":0,\\"s\\":\\"triangle\\",\\"gain\\":0.15}",
-  "3/16 -> 3/8: {\\"n\\":69.05266877519557,\\"decay\\":0.1,\\"sustain\\":0,\\"s\\":\\"triangle\\",\\"gain\\":0.15}",
-  "3/8 -> 9/16: {\\"n\\":69.08676036055695,\\"decay\\":0.1,\\"sustain\\":0,\\"s\\":\\"triangle\\",\\"gain\\":0.15}",
-  "3/8 -> 9/16: {\\"n\\":72.08676036055695,\\"decay\\":0.1,\\"sustain\\":0,\\"s\\":\\"triangle\\",\\"gain\\":0.15}",
-  "3/4 -> 15/16: {\\"n\\":72.20001184806131,\\"decay\\":0.1,\\"sustain\\":0,\\"s\\":\\"triangle\\",\\"gain\\":0.15}",
-  "15/16 -> 9/8: {\\"n\\":72.25301072199335,\\"decay\\":0.1,\\"sustain\\":0,\\"s\\":\\"triangle\\",\\"gain\\":0.15}",
-  "0/1 -> 3/16: {\\"n\\":93.00057728554401,\\"decay\\":0.1,\\"sustain\\":0,\\"s\\":\\"triangle\\",\\"gain\\":0.075}",
-  "0/1 -> 3/16: {\\"n\\":93.04057728554402,\\"decay\\":0.1,\\"sustain\\":0,\\"s\\":\\"triangle\\",\\"gain\\":0.075}",
-  "3/8 -> 9/16: {\\"n\\":69.01266877519555,\\"decay\\":0.1,\\"sustain\\":0,\\"s\\":\\"triangle\\",\\"gain\\":0.075}",
-  "9/16 -> 3/4: {\\"n\\":69.04676036055696,\\"decay\\":0.1,\\"sustain\\":0,\\"s\\":\\"triangle\\",\\"gain\\":0.075}",
-  "9/16 -> 3/4: {\\"n\\":72.04676036055696,\\"decay\\":0.1,\\"sustain\\":0,\\"s\\":\\"triangle\\",\\"gain\\":0.075}",
-  "15/16 -> 9/8: {\\"n\\":72.16001184806132,\\"decay\\":0.1,\\"sustain\\":0,\\"s\\":\\"triangle\\",\\"gain\\":0.075}",
-  "3/8 -> 9/16: {\\"n\\":69.05266877519557,\\"decay\\":0.1,\\"sustain\\":0,\\"s\\":\\"triangle\\",\\"gain\\":0.075}",
-  "9/16 -> 3/4: {\\"n\\":69.08676036055695,\\"decay\\":0.1,\\"sustain\\":0,\\"s\\":\\"triangle\\",\\"gain\\":0.075}",
-  "9/16 -> 3/4: {\\"n\\":72.08676036055695,\\"decay\\":0.1,\\"sustain\\":0,\\"s\\":\\"triangle\\",\\"gain\\":0.075}",
-  "15/16 -> 9/8: {\\"n\\":72.20001184806131,\\"decay\\":0.1,\\"sustain\\":0,\\"s\\":\\"triangle\\",\\"gain\\":0.075}",
-  "3/16 -> 3/8: {\\"n\\":93.00057728554401,\\"decay\\":0.1,\\"sustain\\":0,\\"s\\":\\"triangle\\",\\"gain\\":0.049999999999999996}",
-  "3/16 -> 3/8: {\\"n\\":93.04057728554402,\\"decay\\":0.1,\\"sustain\\":0,\\"s\\":\\"triangle\\",\\"gain\\":0.049999999999999996}",
-  "9/16 -> 3/4: {\\"n\\":69.01266877519555,\\"decay\\":0.1,\\"sustain\\":0,\\"s\\":\\"triangle\\",\\"gain\\":0.049999999999999996}",
-  "3/4 -> 15/16: {\\"n\\":69.04676036055696,\\"decay\\":0.1,\\"sustain\\":0,\\"s\\":\\"triangle\\",\\"gain\\":0.049999999999999996}",
-  "3/4 -> 15/16: {\\"n\\":72.04676036055696,\\"decay\\":0.1,\\"sustain\\":0,\\"s\\":\\"triangle\\",\\"gain\\":0.049999999999999996}",
-  "9/16 -> 3/4: {\\"n\\":69.05266877519557,\\"decay\\":0.1,\\"sustain\\":0,\\"s\\":\\"triangle\\",\\"gain\\":0.049999999999999996}",
-  "3/4 -> 15/16: {\\"n\\":69.08676036055695,\\"decay\\":0.1,\\"sustain\\":0,\\"s\\":\\"triangle\\",\\"gain\\":0.049999999999999996}",
-  "3/4 -> 15/16: {\\"n\\":72.08676036055695,\\"decay\\":0.1,\\"sustain\\":0,\\"s\\":\\"triangle\\",\\"gain\\":0.049999999999999996}",
-  "0/1 -> 3/16: {\\"n\\":72.0468455057745,\\"decay\\":0.1,\\"sustain\\":0,\\"s\\":\\"triangle\\",\\"gain\\":0.0375}",
-  "0/1 -> 3/16: {\\"n\\":93.0468455057745,\\"decay\\":0.1,\\"sustain\\":0,\\"s\\":\\"triangle\\",\\"gain\\":0.0375}",
-  "3/8 -> 9/16: {\\"n\\":93.00057728554401,\\"decay\\":0.1,\\"sustain\\":0,\\"s\\":\\"triangle\\",\\"gain\\":0.0375}",
-  "0/1 -> 3/16: {\\"n\\":72.0868455057745,\\"decay\\":0.1,\\"sustain\\":0,\\"s\\":\\"triangle\\",\\"gain\\":0.0375}",
-  "0/1 -> 3/16: {\\"n\\":93.0868455057745,\\"decay\\":0.1,\\"sustain\\":0,\\"s\\":\\"triangle\\",\\"gain\\":0.0375}",
-  "3/8 -> 9/16: {\\"n\\":93.04057728554402,\\"decay\\":0.1,\\"sustain\\":0,\\"s\\":\\"triangle\\",\\"gain\\":0.0375}",
-  "3/4 -> 15/16: {\\"n\\":69.01266877519555,\\"decay\\":0.1,\\"sustain\\":0,\\"s\\":\\"triangle\\",\\"gain\\":0.0375}",
-  "15/16 -> 9/8: {\\"n\\":69.04676036055696,\\"decay\\":0.1,\\"sustain\\":0,\\"s\\":\\"triangle\\",\\"gain\\":0.0375}",
-  "3/4 -> 15/16: {\\"n\\":69.05266877519557,\\"decay\\":0.1,\\"sustain\\":0,\\"s\\":\\"triangle\\",\\"gain\\":0.0375}",
-  "15/16 -> 9/8: {\\"n\\":69.08676036055695,\\"decay\\":0.1,\\"sustain\\":0,\\"s\\":\\"triangle\\",\\"gain\\":0.0375}",
-]
-`;
-
-exports[`renders shared tunes > shared tune 279 https://strudel.cc/?N3UBBhj_uwxd 1`] = `
-[
-  "0/1 -> 1/10: C3",
-  "0/1 -> 1/10: E3",
-  "0/1 -> 1/10: G3",
-  "1/4 -> 7/20: B3",
-  "1/4 -> 7/20: E4",
-  "1/4 -> 7/20: E3",
-  "1/2 -> 3/5: C3",
-  "1/2 -> 3/5: A2",
-  "1/2 -> 3/5: C3",
-  "3/4 -> 17/20: E3",
-  "3/4 -> 17/20: G3",
-  "3/4 -> 17/20: B3",
-  "0/1 -> 1/5: C2",
-  "1/2 -> 7/10: E2",
-]
-`;
-
-exports[`renders shared tunes > shared tune 280 https://strudel.cc/?wF7a24BViyqU 1`] = `
-[
-  "0/1 -> 3/4: F3",
-  "3/4 -> 9/8: Ab3",
-  "0/1 -> 3/4: Ab3",
-  "3/4 -> 9/8: C4",
-  "3/8 -> 15/32: Eb4",
-  "9/16 -> 21/32: Eb4",
-  "3/8 -> 15/32: G4",
-  "9/16 -> 21/32: G4",
-  "241/600 -> 147/200: F1",
-  "0/1 -> 3/4: c2",
-  "3/4 -> 3/2: c2",
-  "3/4 -> 3/2: c2",
-  "0/1 -> 3/8: c4",
-  "3/8 -> 3/4: c4",
-  "3/4 -> 9/8: c4",
-]
-`;
-
-exports[`renders shared tunes > shared tune 281 https://strudel.cc/?h87w26zgMJ0L 1`] = `
-[
-  "0/1 -> 5/6: {\\"note\\":\\"c4\\",\\"s\\":\\"piano\\",\\"gain\\":0.5}",
-  "0/1 -> 5/6: {\\"note\\":\\"eb4\\",\\"s\\":\\"piano\\",\\"gain\\":0.5}",
-  "0/1 -> 5/6: {\\"note\\":\\"g4\\",\\"s\\":\\"piano\\",\\"gain\\":0.5}",
-  "5/6 -> 5/3: {\\"note\\":\\"f4\\",\\"s\\":\\"piano\\",\\"gain\\":0.5}",
-  "5/6 -> 5/3: {\\"note\\":\\"ab4\\",\\"s\\":\\"piano\\",\\"gain\\":0.5}",
-  "5/6 -> 5/3: {\\"note\\":\\"d4\\",\\"s\\":\\"piano\\",\\"gain\\":0.5}",
-  "0/1 -> 5/6: {\\"value\\":\\"C5\\",\\"s\\":\\"square\\",\\"vowel\\":\\"a\\",\\"gain\\":0.5}",
-  "0/1 -> 5/6: {\\"value\\":\\"Eb5\\",\\"s\\":\\"square\\",\\"vowel\\":\\"a\\",\\"gain\\":0.5}",
-  "0/1 -> 5/6: {\\"value\\":\\"G5\\",\\"s\\":\\"square\\",\\"vowel\\":\\"a\\",\\"gain\\":0.5}",
-  "5/6 -> 5/3: {\\"value\\":\\"F5\\",\\"s\\":\\"square\\",\\"vowel\\":\\"e\\",\\"gain\\":0.5}",
-  "5/6 -> 5/3: {\\"value\\":\\"Ab5\\",\\"s\\":\\"square\\",\\"vowel\\":\\"e\\",\\"gain\\":0.5}",
-  "5/6 -> 5/3: {\\"value\\":\\"D5\\",\\"s\\":\\"square\\",\\"vowel\\":\\"e\\",\\"gain\\":0.5}",
-  "0/1 -> 5/12: {\\"s\\":\\"hh:1\\",\\"pan\\":0.05378073193423916,\\"speed\\":0.9,\\"gain\\":0.5,\\"cutoff\\":1484.0265874081524}",
-  "5/12 -> 5/6: {\\"s\\":\\"hh:1\\",\\"pan\\":0.46576143316633534,\\"speed\\":0.9,\\"gain\\":0.5,\\"cutoff\\":5191.852898497018}",
-  "5/6 -> 5/4: {\\"s\\":\\"hh:1\\",\\"pan\\":0.5650874826969812,\\"speed\\":1.1,\\"gain\\":0.5,\\"cutoff\\":6085.7873442728305}",
-  "0/1 -> 5/48: {\\"s\\":\\"hh:4\\",\\"pan\\":0.8426077850162983,\\"gain\\":0.5,\\"cutoff\\":1010.3722531168131}",
-  "5/8 -> 35/48: {\\"s\\":\\"hh:4\\",\\"pan\\":0.7516226731240749,\\"gain\\":0.5,\\"cutoff\\":5447.84153238514}",
-  "5/48 -> 5/24: {\\"s\\":\\"hh:4\\",\\"pan\\":0.20066574029624462,\\"speed\\":0.8,\\"gain\\":0.5,\\"cutoff\\":1228.0379535200295}",
-  "5/24 -> 5/16: {\\"s\\":\\"hh:4\\",\\"pan\\":0.5675661638379097,\\"speed\\":0.8,\\"gain\\":0.5,\\"cutoff\\":1841.6864900251398}",
-  "5/16 -> 5/12: {\\"s\\":\\"hh:4\\",\\"pan\\":0.3015887886285782,\\"speed\\":0.8,\\"gain\\":0.5,\\"cutoff\\":2795.666220801607}",
-  "5/12 -> 25/48: {\\"s\\":\\"hh:4\\",\\"pan\\":0.16399178467690945,\\"speed\\":0.8,\\"gain\\":0.5,\\"cutoff\\":3880.2132651035636}",
-  "25/48 -> 5/8: {\\"s\\":\\"hh:4\\",\\"pan\\":0.408811716362834,\\"speed\\":0.8,\\"gain\\":0.5,\\"cutoff\\":4834.19299588003}",
-  "35/48 -> 5/6: {\\"s\\":\\"hh:4\\",\\"pan\\":0.7029578909277916,\\"speed\\":0.8,\\"gain\\":0.5,\\"cutoff\\":5665.507232788357}",
-  "5/6 -> 15/16: {\\"s\\":\\"hh:4\\",\\"pan\\":0.5486328881233931,\\"speed\\":0.9,\\"gain\\":0.5,\\"cutoff\\":5684.663441522829}",
-  "15/16 -> 25/24: {\\"s\\":\\"hh:4\\",\\"pan\\":0.08174665085971355,\\"speed\\":0.9,\\"gain\\":0.5,\\"cutoff\\":5868.998111174235}",
-  "0/1 -> 2/3: {\\"s\\":\\"bd:7\\",\\"cutoff\\":300,\\"gain\\":0.5}",
-  "0/1 -> 2/3: {\\"s\\":\\"bd:7\\",\\"cutoff\\":1000,\\"gain\\":0.5}",
-  "0/1 -> 5/12: {\\"value\\":\\"c1\\",\\"s\\":\\"sine\\",\\"shape\\":0.31075614638684784,\\"gain\\":0.5}",
-  "5/6 -> 5/4: {\\"value\\":\\"c1\\",\\"s\\":\\"sine\\",\\"shape\\":0.41301749653939623,\\"gain\\":0.5}",
-]
-`;
-
-exports[`renders shared tunes > shared tune 282 https://strudel.cc/?fwBxQjt9aVhx 1`] = `
-[
-  "5833/7200 -> 19/18: {\\"n\\":\\"C#4\\",\\"s\\":\\"Overdriven Guitar: Guitar\\",\\"gain\\":0.19}",
-  "437/800 -> 19/24: {\\"n\\":\\"D#4\\",\\"s\\":\\"Overdriven Guitar: Guitar\\",\\"gain\\":0.19}",
-  "2033/7200 -> 19/36: {\\"n\\":\\"F4\\",\\"s\\":\\"Overdriven Guitar: Guitar\\",\\"gain\\":0.19}",
-  "133/7200 -> 19/72: {\\"n\\":\\"G4\\",\\"s\\":\\"Overdriven Guitar: Guitar\\",\\"gain\\":0.19}",
-  "5833/7200 -> 19/18: {\\"n\\":\\"c#5\\",\\"s\\":\\"Overdriven Guitar: Guitar\\",\\"gain\\":0.09}",
-  "437/800 -> 19/24: {\\"n\\":\\"d#5\\",\\"s\\":\\"Overdriven Guitar: Guitar\\",\\"gain\\":0.09}",
-  "2033/7200 -> 19/36: {\\"n\\":\\"f5\\",\\"s\\":\\"Overdriven Guitar: Guitar\\",\\"gain\\":0.09}",
-  "133/7200 -> 19/72: {\\"n\\":\\"g5\\",\\"s\\":\\"Overdriven Guitar: Guitar\\",\\"gain\\":0.09}",
-  "19/24 -> 19/12: {\\"n\\":57,\\"s\\":\\"Choir Aahs: Ensemble\\",\\"gain\\":0.25}",
-  "19/24 -> 19/12: {\\"n\\":61,\\"s\\":\\"Choir Aahs: Ensemble\\",\\"gain\\":0.25}",
-  "19/24 -> 19/12: {\\"n\\":52,\\"s\\":\\"Choir Aahs: Ensemble\\",\\"gain\\":0.25}",
-  "0/1 -> 19/24: {\\"n\\":59,\\"s\\":\\"Choir Aahs: Ensemble\\",\\"gain\\":0.25}",
-  "0/1 -> 19/24: {\\"n\\":63,\\"s\\":\\"Choir Aahs: Ensemble\\",\\"gain\\":0.25}",
-  "0/1 -> 19/24: {\\"n\\":54,\\"s\\":\\"Choir Aahs: Ensemble\\",\\"gain\\":0.25}",
-  "209/240 -> 19/12: {\\"n\\":\\"A1\\",\\"s\\":\\"Electric Bass (finger): Bass\\",\\"gain\\":0.3}",
-  "19/240 -> 19/24: {\\"n\\":\\"B1\\",\\"s\\":\\"Electric Bass (finger): Bass\\",\\"gain\\":0.3}",
-  "19/24 -> 19/18: {\\"s\\":\\"sn\\",\\"gain\\":0.25}",
-  "19/36 -> 19/24: {\\"s\\":\\"sn\\",\\"gain\\":0.25}",
-  "19/72 -> 19/36: {\\"s\\":\\"sn\\",\\"gain\\":0.25}",
-  "0/1 -> 19/72: {\\"s\\":\\"sn\\",\\"gain\\":0.25}",
-  "19/24 -> 19/18: {\\"s\\":\\"hh\\",\\"gain\\":0.25}",
-  "19/36 -> 19/24: {\\"s\\":\\"hh\\",\\"gain\\":0.25}",
-  "19/72 -> 19/36: {\\"s\\":\\"hh\\",\\"gain\\":0.25}",
-  "0/1 -> 19/72: {\\"s\\":\\"hh\\",\\"gain\\":0.25}",
-]
-`;
-
-exports[`renders shared tunes > shared tune 283 https://strudel.cc/?3rnmA7q0g2i- 1`] = `
-[
-  "0/1 -> 5/8: {\\"note\\":\\"G1\\",\\"s\\":\\"sawtooth\\",\\"cutoff\\":200,\\"resonance\\":20,\\"gain\\":0.15,\\"shape\\":0.6,\\"release\\":0.05}",
-  "0/1 -> 5/8: {\\"note\\":31.02,\\"s\\":\\"sawtooth\\",\\"cutoff\\":200,\\"resonance\\":20,\\"gain\\":0.15,\\"shape\\":0.6,\\"release\\":0.05}",
-  "5/8 -> 5/4: {\\"s\\":\\"hh\\",\\"room\\":0,\\"end\\":0.04483079938329212}",
-  "0/1 -> 5/16: {\\"s\\":\\"mt\\",\\"gain\\":0.5,\\"room\\":0.5}",
-  "15/16 -> 5/4: {\\"s\\":\\"lt\\",\\"gain\\":0.5,\\"room\\":0.5}",
-  "0/1 -> 5/1: {\\"s\\":\\"misc:2\\",\\"speed\\":1,\\"delay\\":0.5,\\"delaytime\\":0.3333333333333333,\\"gain\\":0.4}",
-  "5/8 -> 5/4: {\\"note\\":\\"Bb3\\",\\"s\\":\\"sawtooth\\",\\"gain\\":0.5,\\"cutoff\\":400.16785462816676,\\"decay\\":0.05380063255866716,\\"sustain\\":0,\\"delay\\":0.9,\\"room\\":1}",
-  "5/8 -> 5/4: {\\"note\\":\\"D4\\",\\"s\\":\\"sawtooth\\",\\"gain\\":0.5,\\"cutoff\\":400.16785462816676,\\"decay\\":0.05380063255866716,\\"sustain\\":0,\\"delay\\":0.9,\\"room\\":1}",
-  "5/8 -> 5/4: {\\"note\\":\\"F4\\",\\"s\\":\\"sawtooth\\",\\"gain\\":0.5,\\"cutoff\\":400.16785462816676,\\"decay\\":0.05380063255866716,\\"sustain\\":0,\\"delay\\":0.9,\\"room\\":1}",
-  "5/8 -> 5/4: {\\"note\\":\\"A4\\",\\"s\\":\\"sawtooth\\",\\"gain\\":0.5,\\"cutoff\\":400.16785462816676,\\"decay\\":0.05380063255866716,\\"sustain\\":0,\\"delay\\":0.9,\\"room\\":1}",
-  "5/8 -> 5/4: {\\"note\\":58.1,\\"s\\":\\"sawtooth\\",\\"gain\\":0.5,\\"cutoff\\":400.16785462816676,\\"decay\\":0.05380063255866716,\\"sustain\\":0,\\"delay\\":0.9,\\"room\\":1}",
-  "5/8 -> 5/4: {\\"note\\":62.1,\\"s\\":\\"sawtooth\\",\\"gain\\":0.5,\\"cutoff\\":400.16785462816676,\\"decay\\":0.05380063255866716,\\"sustain\\":0,\\"delay\\":0.9,\\"room\\":1}",
-  "5/8 -> 5/4: {\\"note\\":65.1,\\"s\\":\\"sawtooth\\",\\"gain\\":0.5,\\"cutoff\\":400.16785462816676,\\"decay\\":0.05380063255866716,\\"sustain\\":0,\\"delay\\":0.9,\\"room\\":1}",
-  "5/8 -> 5/4: {\\"note\\":69.1,\\"s\\":\\"sawtooth\\",\\"gain\\":0.5,\\"cutoff\\":400.16785462816676,\\"decay\\":0.05380063255866716,\\"sustain\\":0,\\"delay\\":0.9,\\"room\\":1}",
-]
-`;
-
-exports[`renders shared tunes > shared tune 284 https://strudel.cc/?w1af5xWyhwNm 1`] = `
-[
-  "0/1 -> 8/1: {\\"s\\":\\"bass\\",\\"speed\\":0.125,\\"unit\\":\\"c\\",\\"clip\\":1}",
-  "0/1 -> 1/2: {\\"s\\":\\"bd\\"}",
-  "1/2 -> 1/1: {\\"s\\":\\"bd\\"}",
-  "1/2 -> 1/1: {\\"s\\":\\"sd\\"}",
-  "0/1 -> 1/4: {\\"s\\":\\"hh\\"}",
-  "1/4 -> 1/2: {\\"s\\":\\"hh\\"}",
-  "1/2 -> 3/4: {\\"s\\":\\"hh\\"}",
-  "3/4 -> 1/1: {\\"s\\":\\"hh\\"}",
-  "1/4 -> 1/2: {\\"note\\":\\"Gb3\\"}",
-  "1/4 -> 1/2: {\\"note\\":\\"Bb3\\"}",
-  "1/4 -> 1/2: {\\"note\\":\\"Cb4\\"}",
-  "1/4 -> 1/2: {\\"note\\":\\"Eb4\\"}",
-  "0/1 -> 1/4: {\\"note\\":\\"Ab4\\",\\"s\\":\\"sawtooth\\",\\"cutoff\\":1239.2541394619345,\\"gain\\":0.8,\\"decay\\":0.05125097280354112,\\"sustain\\":0,\\"delay\\":0.2561353071307281,\\"room\\":1}",
-  "0/1 -> 1/4: {\\"note\\":68.1,\\"s\\":\\"sawtooth\\",\\"cutoff\\":1239.2541394619345,\\"gain\\":0.8,\\"decay\\":0.05125097280354112,\\"sustain\\":0,\\"delay\\":0.2561353071307281,\\"room\\":1}",
-  "1/4 -> 1/2: {\\"note\\":83,\\"s\\":\\"sawtooth\\",\\"cutoff\\":1317.3843795642892,\\"gain\\":0.8,\\"decay\\":0.07144728658238364,\\"sustain\\":0,\\"delay\\":0.26839114089991684,\\"room\\":1}",
-  "1/4 -> 1/2: {\\"note\\":83.1,\\"s\\":\\"sawtooth\\",\\"cutoff\\":1317.3843795642892,\\"gain\\":0.8,\\"decay\\":0.07144728658238364,\\"sustain\\":0,\\"delay\\":0.26839114089991684,\\"room\\":1}",
-  "0/1 -> 8/1: {\\"note\\":\\"b4\\",\\"s\\":\\"dino\\",\\"delay\\":0.8,\\"room\\":0.5}",
-]
-`;
-
-exports[`renders shared tunes > shared tune 285 https://strudel.cc/?Ne_BJMKKDCO_ 1`] = `
-[
-  "0/1 -> 5/8: {\\"note\\":\\"G1\\",\\"s\\":\\"sawtooth\\",\\"cutoff\\":200,\\"resonance\\":20,\\"gain\\":0.15,\\"shape\\":0.6,\\"release\\":0.05}",
-  "0/1 -> 5/8: {\\"note\\":31.02,\\"s\\":\\"sawtooth\\",\\"cutoff\\":200,\\"resonance\\":20,\\"gain\\":0.15,\\"shape\\":0.6,\\"release\\":0.05}",
-  "5/8 -> 5/4: {\\"s\\":\\"hh\\",\\"room\\":0,\\"end\\":0.04483079938329212}",
-  "0/1 -> 5/16: {\\"s\\":\\"mt\\",\\"gain\\":0.5,\\"room\\":1}",
-  "15/16 -> 5/4: {\\"s\\":\\"lt\\",\\"gain\\":0.5,\\"room\\":1}",
-  "0/1 -> 5/1: {\\"s\\":\\"misc:2\\",\\"speed\\":1,\\"delay\\":0.5,\\"delaytime\\":0.3333333333333333,\\"gain\\":0.4}",
-  "5/8 -> 5/4: {\\"note\\":\\"Bb3\\",\\"s\\":\\"sawtooth\\",\\"gain\\":0.5,\\"cutoff\\":400.16785462816676,\\"decay\\":0.05380063255866716,\\"sustain\\":0,\\"delay\\":0.9,\\"room\\":1}",
-  "5/8 -> 5/4: {\\"note\\":\\"D4\\",\\"s\\":\\"sawtooth\\",\\"gain\\":0.5,\\"cutoff\\":400.16785462816676,\\"decay\\":0.05380063255866716,\\"sustain\\":0,\\"delay\\":0.9,\\"room\\":1}",
-  "5/8 -> 5/4: {\\"note\\":\\"F4\\",\\"s\\":\\"sawtooth\\",\\"gain\\":0.5,\\"cutoff\\":400.16785462816676,\\"decay\\":0.05380063255866716,\\"sustain\\":0,\\"delay\\":0.9,\\"room\\":1}",
-  "5/8 -> 5/4: {\\"note\\":\\"A4\\",\\"s\\":\\"sawtooth\\",\\"gain\\":0.5,\\"cutoff\\":400.16785462816676,\\"decay\\":0.05380063255866716,\\"sustain\\":0,\\"delay\\":0.9,\\"room\\":1}",
-  "5/8 -> 5/4: {\\"note\\":58.1,\\"s\\":\\"sawtooth\\",\\"gain\\":0.5,\\"cutoff\\":400.16785462816676,\\"decay\\":0.05380063255866716,\\"sustain\\":0,\\"delay\\":0.9,\\"room\\":1}",
-  "5/8 -> 5/4: {\\"note\\":62.1,\\"s\\":\\"sawtooth\\",\\"gain\\":0.5,\\"cutoff\\":400.16785462816676,\\"decay\\":0.05380063255866716,\\"sustain\\":0,\\"delay\\":0.9,\\"room\\":1}",
-  "5/8 -> 5/4: {\\"note\\":65.1,\\"s\\":\\"sawtooth\\",\\"gain\\":0.5,\\"cutoff\\":400.16785462816676,\\"decay\\":0.05380063255866716,\\"sustain\\":0,\\"delay\\":0.9,\\"room\\":1}",
-  "5/8 -> 5/4: {\\"note\\":69.1,\\"s\\":\\"sawtooth\\",\\"gain\\":0.5,\\"cutoff\\":400.16785462816676,\\"decay\\":0.05380063255866716,\\"sustain\\":0,\\"delay\\":0.9,\\"room\\":1}",
-]
-`;
-
-exports[`renders shared tunes > shared tune 286 https://strudel.cc/?G2H5FM0Fc94a 1`] = `
-[
-  "0/1 -> 1/4: {\\"s\\":\\"woodblock:1\\"}",
-  "1/4 -> 3/8: {\\"s\\":\\"woodblock:2\\"}",
-  "0/1 -> 1/8: {\\"s\\":\\"brakedrum:1\\"}",
-  "3/4 -> 7/8: {\\"s\\":\\"brakedrum:1\\"}",
-  "3/8 -> 1/2: {\\"s\\":\\"woodblock:2\\",\\"speed\\":2}",
-  "1/2 -> 1/1: {\\"s\\":\\"snare_rim:0\\",\\"speed\\":2}",
-  "0/1 -> 8/1: {\\"s\\":\\"gong\\",\\"speed\\":2}",
-  "3/8 -> 1/2: {\\"s\\":\\"brakedrum:1\\",\\"speed\\":2}",
-  "3/4 -> 1/1: {\\"s\\":\\"cowbell:3\\",\\"speed\\":2}",
-  "-3/4 -> 1/4: {\\"note\\":\\"Bb3\\",\\"s\\":\\"clavisynth\\",\\"gain\\":0.2,\\"delay\\":0.25,\\"pan\\":0}",
-  "3/4 -> 7/4: {\\"note\\":\\"Bb3\\",\\"s\\":\\"clavisynth\\",\\"gain\\":0.2,\\"delay\\":0.25,\\"pan\\":1}",
-  "-1/4 -> 3/4: {\\"note\\":\\"F3\\",\\"s\\":\\"clavisynth\\",\\"gain\\":0.2,\\"delay\\":0.25,\\"pan\\":1}",
-  "0/1 -> 3/1: {\\"note\\":\\"D1\\",\\"s\\":\\"psaltery_pluck\\",\\"gain\\":0.6,\\"clip\\":1,\\"release\\":0.1,\\"room\\":0.5}",
-]
-`;
-
-exports[`renders shared tunes > shared tune 287 https://strudel.cc/?EPFzAz99hwZW 1`] = `
-[
-  "0/1 -> 1/4: {\\"note\\":48,\\"s\\":\\"ocarina_vib\\",\\"clip\\":1,\\"release\\":0.1,\\"room\\":1,\\"gain\\":0.2}",
-  "1/4 -> 9/32: {\\"note\\":51,\\"s\\":\\"ocarina_vib\\",\\"clip\\":1,\\"release\\":0.1,\\"room\\":1,\\"gain\\":0.2}",
-  "11/32 -> 3/8: {\\"note\\":51,\\"s\\":\\"ocarina_vib\\",\\"clip\\":1,\\"release\\":0.1,\\"room\\":1,\\"gain\\":0.2}",
-  "7/16 -> 15/32: {\\"note\\":51,\\"s\\":\\"ocarina_vib\\",\\"clip\\":1,\\"release\\":0.1,\\"room\\":1,\\"gain\\":0.2}",
-  "1/2 -> 1/1: {\\"note\\":60,\\"s\\":\\"ocarina_vib\\",\\"clip\\":1,\\"release\\":0.1,\\"room\\":1,\\"gain\\":0.2}",
-  "3/4 -> 7/8: {\\"note\\":55,\\"s\\":\\"ocarina_vib\\",\\"clip\\":1,\\"release\\":0.1,\\"room\\":1,\\"gain\\":0.2}",
-  "7/8 -> 1/1: {\\"note\\":55,\\"s\\":\\"ocarina_vib\\",\\"clip\\":1,\\"release\\":0.1,\\"room\\":1,\\"gain\\":0.2}",
-  "0/1 -> 1/2: {\\"note\\":60,\\"s\\":\\"ocarina_vib\\",\\"clip\\":1,\\"release\\":0.1,\\"room\\":1,\\"gain\\":0.2}",
-  "1/2 -> 9/16: {\\"note\\":63,\\"s\\":\\"ocarina_vib\\",\\"clip\\":1,\\"release\\":0.1,\\"room\\":1,\\"gain\\":0.2}",
-  "11/16 -> 3/4: {\\"note\\":63,\\"s\\":\\"ocarina_vib\\",\\"clip\\":1,\\"release\\":0.1,\\"room\\":1,\\"gain\\":0.2}",
-  "7/8 -> 15/16: {\\"note\\":63,\\"s\\":\\"ocarina_vib\\",\\"clip\\":1,\\"release\\":0.1,\\"room\\":1,\\"gain\\":0.2}",
-  "0/1 -> 1/1: {\\"note\\":43,\\"s\\":\\"ocarina_vib\\",\\"clip\\":1,\\"release\\":0.1,\\"room\\":1,\\"gain\\":0.2}",
-]
-`;
-
-exports[`renders shared tunes > shared tune 288 https://strudel.cc/?DSvgYUzEgx6n 1`] = `
-[
-  "0/1 -> 1/2: {\\"s\\":\\"bd\\",\\"bank\\":\\"RolandTR909\\"}",
-  "1/2 -> 1/1: {\\"s\\":\\"bd\\",\\"bank\\":\\"RolandTR909\\"}",
-  "1/2 -> 1/1: {\\"s\\":\\"cp\\",\\"bank\\":\\"RolandTR909\\"}",
-  "1/2 -> 1/1: {\\"s\\":\\"sd\\",\\"bank\\":\\"RolandTR909\\"}",
-  "0/1 -> 1/4: {\\"s\\":\\"hh:1\\",\\"end\\":0.02000058072071123,\\"bank\\":\\"RolandTR909\\",\\"room\\":0.5,\\"gain\\":0.4}",
-  "0/1 -> 1/4: {\\"s\\":\\"hh:1\\",\\"end\\":0.02000058072071123,\\"bank\\":\\"RolandTR909\\",\\"room\\":0.5,\\"gain\\":0.4}",
-  "1/4 -> 3/8: {\\"s\\":\\"hh:1\\",\\"end\\":0.02000875429921906,\\"bank\\":\\"RolandTR909\\",\\"room\\":0.5,\\"gain\\":0.4}",
-  "1/4 -> 3/8: {\\"s\\":\\"hh:1\\",\\"end\\":0.02000875429921906,\\"bank\\":\\"RolandTR909\\",\\"room\\":0.5,\\"gain\\":0.4}",
-  "3/8 -> 1/2: {\\"s\\":\\"hh:1\\",\\"end\\":0.020023446730265706,\\"bank\\":\\"RolandTR909\\",\\"room\\":0.5,\\"gain\\":0.4}",
-  "5/8 -> 3/4: {\\"s\\":\\"hh:1\\",\\"end\\":0.020086608138500644,\\"bank\\":\\"RolandTR909\\",\\"room\\":0.5,\\"gain\\":0.4}",
-  "5/8 -> 3/4: {\\"s\\":\\"hh:1\\",\\"end\\":0.020086608138500644,\\"bank\\":\\"RolandTR909\\",\\"room\\":0.5,\\"gain\\":0.4}",
-  "3/4 -> 7/8: {\\"s\\":\\"hh:1\\",\\"end\\":0.02013941880355398,\\"bank\\":\\"RolandTR909\\",\\"room\\":0.5,\\"gain\\":0.4}",
-  "1/8 -> 1/4: {\\"s\\":\\"hh:1\\",\\"speed\\":0.5,\\"delay\\":0.5,\\"end\\":0.020001936784171157,\\"bank\\":\\"RolandTR909\\",\\"room\\":0.5,\\"gain\\":0.4}",
-  "1/8 -> 1/4: {\\"s\\":\\"hh:1\\",\\"speed\\":0.5,\\"delay\\":0.5,\\"end\\":0.020001936784171157,\\"bank\\":\\"RolandTR909\\",\\"room\\":0.5,\\"gain\\":0.4}",
-  "1/8 -> 1/4: {\\"note\\":\\"G1\\",\\"s\\":\\"sawtooth\\",\\"decay\\":0.1,\\"sustain\\":0}",
-  "1/4 -> 3/8: {\\"note\\":\\"G1\\",\\"s\\":\\"sawtooth\\",\\"decay\\":0.1,\\"sustain\\":0}",
-  "1/2 -> 5/8: {\\"note\\":\\"G1\\",\\"s\\":\\"sawtooth\\",\\"decay\\":0.1,\\"sustain\\":0}",
-  "5/8 -> 3/4: {\\"note\\":\\"G1\\",\\"s\\":\\"sawtooth\\",\\"decay\\":0.1,\\"sustain\\":0}",
-  "7/8 -> 1/1: {\\"note\\":\\"G1\\",\\"s\\":\\"sawtooth\\",\\"decay\\":0.1,\\"sustain\\":0}",
-]
-`;
-
-exports[`renders shared tunes > shared tune 289 https://strudel.cc/?cRvfurHbl4jo 1`] = `
-[
-  "0/1 -> 1/2: {\\"s\\":\\"bd\\",\\"delay\\":0,\\"delaytime\\":0.33,\\"delayfeedback\\":0.8,\\"speed\\":-1}",
-  "1/2 -> 1/1: {\\"s\\":\\"sd\\",\\"delay\\":0,\\"delaytime\\":0.33,\\"delayfeedback\\":0.8,\\"speed\\":-1}",
-]
-`;
-
-exports[`renders shared tunes > shared tune 290 https://strudel.cc/?DGHGUqRXr5pe 1`] = `
-[
-  "0/1 -> 1/4: {\\"s\\":\\"jvbass:7\\",\\"cutoff\\":1000,\\"gain\\":0.6740862280130386,\\"room\\":1}",
-  "1/4 -> 1/2: {\\"s\\":\\"jvbass:2\\",\\"cutoff\\":1000,\\"gain\\":0.5605570062994958,\\"room\\":1}",
-  "0/1 -> 1/4: {\\"s\\":\\"bd\\",\\"cutoff\\":1000,\\"gain\\":0.6740862280130386,\\"room\\":1}",
-  "1/4 -> 1/2: {\\"s\\":\\"hh\\",\\"cutoff\\":1000,\\"gain\\":0.5605570062994958,\\"room\\":1}",
-  "0/1 -> 1/2: {\\"s\\":\\"psr\\",\\"cutoff\\":1000,\\"gain\\":0.5479038767516613,\\"room\\":1}",
-  "3/4 -> 1/1: {\\"s\\":\\"jvbass:3\\",\\"cutoff\\":1000,\\"gain\\":0.5590524323284627,\\"room\\":1}",
-  "3/4 -> 1/1: {\\"s\\":\\"hh\\",\\"cutoff\\":1000,\\"gain\\":0.5590524323284627,\\"room\\":1}",
-  "-1/8 -> 1/8: {\\"s\\":\\"jvbass:3\\",\\"delay\\":0.5,\\"cutoff\\":1000,\\"gain\\":0.7370431140065193,\\"room\\":1}",
-  "-1/8 -> 1/8: {\\"s\\":\\"hh\\",\\"delay\\":0.5,\\"cutoff\\":1000,\\"gain\\":0.7370431140065193,\\"room\\":1}",
-  "-3/8 -> 1/8: {\\"s\\":\\"psr\\",\\"delay\\":0.5,\\"cutoff\\":1000,\\"gain\\":0.7370431140065193,\\"room\\":1}",
-  "1/8 -> 3/8: {\\"s\\":\\"jvbass:7\\",\\"delay\\":0.5,\\"cutoff\\":1000,\\"gain\\":0.5479038767516613,\\"room\\":1}",
-  "3/8 -> 5/8: {\\"s\\":\\"jvbass:2\\",\\"delay\\":0.5,\\"cutoff\\":1000,\\"gain\\":0.5041922464966775,\\"room\\":1}",
-  "1/8 -> 3/8: {\\"s\\":\\"bd\\",\\"delay\\":0.5,\\"cutoff\\":1000,\\"gain\\":0.5479038767516613,\\"room\\":1}",
-  "3/8 -> 5/8: {\\"s\\":\\"hh\\",\\"delay\\":0.5,\\"cutoff\\":1000,\\"gain\\":0.5041922464966775,\\"room\\":1}",
-  "1/8 -> 5/8: {\\"s\\":\\"psr\\",\\"delay\\":0.5,\\"cutoff\\":1000,\\"gain\\":0.5605570062994958,\\"room\\":1}",
-  "7/8 -> 9/8: {\\"s\\":\\"jvbass:3\\",\\"delay\\":0.5,\\"cutoff\\":1000,\\"gain\\":0.6811831563711166,\\"room\\":1}",
-  "7/8 -> 9/8: {\\"s\\":\\"hh\\",\\"delay\\":0.5,\\"cutoff\\":1000,\\"gain\\":0.6811831563711166,\\"room\\":1}",
-]
-`;
-
-exports[`renders shared tunes > shared tune 291 https://strudel.cc/?RBaWr8-15Guk 1`] = `
-[
-  "0/1 -> 1/6: {\\"s\\":\\"hh\\",\\"gain\\":0.6339596770703793,\\"room\\":0.6,\\"pan\\":0}",
-  "8/9 -> 17/18: {\\"s\\":\\"jvbass:7\\",\\"cutoff\\":1000,\\"gain\\":0.7514234818518162,\\"room\\":0.6,\\"pan\\":0}",
-  "2/3 -> 13/18: {\\"s\\":\\"jvbass:7\\",\\"cutoff\\":1000,\\"gain\\":0.7182912312448025,\\"room\\":0.6,\\"pan\\":0}",
-  "0/1 -> 1/1: {\\"s\\":\\"bd\\",\\"cutoff\\":1000,\\"gain\\":0.5041922464966775,\\"room\\":0.6,\\"pan\\":0}",
-  "-1/1 -> 1/1: {\\"s\\":\\"psr\\",\\"cutoff\\":1000,\\"gain\\":0.5041922464966775,\\"room\\":0.6,\\"pan\\":0}",
-  "5/6 -> 1/1: {\\"s\\":\\"hh\\",\\"gain\\":0.6339596770703793,\\"room\\":0.6,\\"pan\\":1}",
-  "1/18 -> 1/9: {\\"s\\":\\"jvbass:7\\",\\"cutoff\\":1000,\\"gain\\":0.7514234818518162,\\"room\\":0.6,\\"pan\\":1}",
-  "5/18 -> 1/3: {\\"s\\":\\"jvbass:7\\",\\"cutoff\\":1000,\\"gain\\":0.7182912312448025,\\"room\\":0.6,\\"pan\\":1}",
-  "0/1 -> 1/1: {\\"s\\":\\"bd\\",\\"cutoff\\":1000,\\"gain\\":0.5041922464966775,\\"room\\":0.6,\\"pan\\":1}",
-  "0/1 -> 2/1: {\\"s\\":\\"psr\\",\\"cutoff\\":1000,\\"gain\\":0.5041922464966775,\\"room\\":0.6,\\"pan\\":1}",
-]
-`;
-
-exports[`renders shared tunes > shared tune 292 https://strudel.cc/?c41h3Z1fwqTB 1`] = `
-[
-  "0/1 -> 1/6: {\\"s\\":\\"hh\\",\\"gain\\":0.6339596770703793,\\"room\\":0.6,\\"pan\\":0}",
-  "8/9 -> 17/18: {\\"s\\":\\"jvbass:7\\",\\"cutoff\\":1000,\\"gain\\":0.7514234818518162,\\"room\\":0.6,\\"pan\\":0}",
-  "2/3 -> 13/18: {\\"s\\":\\"jvbass:7\\",\\"cutoff\\":1000,\\"gain\\":0.7182912312448025,\\"room\\":0.6,\\"pan\\":0}",
-  "0/1 -> 1/1: {\\"s\\":\\"bd\\",\\"cutoff\\":1000,\\"gain\\":0.5041922464966775,\\"room\\":0.6,\\"pan\\":0}",
-  "-1/1 -> 1/1: {\\"s\\":\\"psr\\",\\"cutoff\\":1000,\\"gain\\":0.5041922464966775,\\"room\\":0.6,\\"pan\\":0}",
-  "5/6 -> 1/1: {\\"s\\":\\"hh\\",\\"gain\\":0.6339596770703793,\\"room\\":0.6,\\"pan\\":1}",
-  "1/18 -> 1/9: {\\"s\\":\\"jvbass:7\\",\\"cutoff\\":1000,\\"gain\\":0.7514234818518162,\\"room\\":0.6,\\"pan\\":1}",
-  "5/18 -> 1/3: {\\"s\\":\\"jvbass:7\\",\\"cutoff\\":1000,\\"gain\\":0.7182912312448025,\\"room\\":0.6,\\"pan\\":1}",
-  "0/1 -> 1/1: {\\"s\\":\\"bd\\",\\"cutoff\\":1000,\\"gain\\":0.5041922464966775,\\"room\\":0.6,\\"pan\\":1}",
-  "0/1 -> 2/1: {\\"s\\":\\"psr\\",\\"cutoff\\":1000,\\"gain\\":0.5041922464966775,\\"room\\":0.6,\\"pan\\":1}",
-]
-`;
-
-exports[`renders shared tunes > shared tune 293 https://strudel.cc/?lvF3fzHrDbyx 1`] = `
-[
-  "0/1 -> 1/2: {\\"s\\":\\"bev\\",\\"begin\\":0,\\"end\\":0.015625,\\"pan\\":0,\\"speed\\":0.5,\\"room\\":0.9}",
-  "0/1 -> 1/2: {\\"s\\":\\"bev\\",\\"begin\\":0.046875,\\"end\\":0.0625,\\"pan\\":1,\\"speed\\":0.5,\\"room\\":0.9}",
-  "1/4 -> 1/2: {\\"s\\":\\"bev\\",\\"begin\\":0.015625,\\"end\\":0.03125,\\"pan\\":0,\\"room\\":0.9}",
-  "1/2 -> 3/4: {\\"s\\":\\"bev\\",\\"begin\\":0.03125,\\"end\\":0.046875,\\"pan\\":0,\\"room\\":0.9}",
-  "3/4 -> 1/1: {\\"s\\":\\"bev\\",\\"begin\\":0.046875,\\"end\\":0.0625,\\"pan\\":0,\\"room\\":0.9}",
-  "3/4 -> 1/1: {\\"s\\":\\"bev\\",\\"begin\\":0,\\"end\\":0.015625,\\"pan\\":1,\\"room\\":0.9}",
-  "1/2 -> 3/4: {\\"s\\":\\"bev\\",\\"begin\\":0.015625,\\"end\\":0.03125,\\"pan\\":1,\\"room\\":0.9}",
-  "1/4 -> 1/2: {\\"s\\":\\"bev\\",\\"begin\\":0.03125,\\"end\\":0.046875,\\"pan\\":1,\\"room\\":0.9}",
-]
-`;
-
-exports[`renders shared tunes > shared tune 294 https://strudel.cc/?vqqfVtY-n1Z6 1`] = `
-[
-  "0/1 -> 1/6: {\\"s\\":\\"hh\\",\\"gain\\":0.6339596770703793,\\"room\\":0.6,\\"pan\\":0}",
-  "8/9 -> 17/18: {\\"s\\":\\"jvbass:7\\",\\"cutoff\\":1000,\\"gain\\":0.7514234818518162,\\"room\\":0.6,\\"pan\\":0}",
-  "2/3 -> 13/18: {\\"s\\":\\"jvbass:7\\",\\"cutoff\\":1000,\\"gain\\":0.7182912312448025,\\"room\\":0.6,\\"pan\\":0}",
-  "0/1 -> 1/1: {\\"s\\":\\"bd\\",\\"cutoff\\":1000,\\"gain\\":0.5041922464966775,\\"room\\":0.6,\\"pan\\":0}",
-  "-1/1 -> 1/1: {\\"s\\":\\"bottle\\",\\"cutoff\\":1000,\\"gain\\":0.5041922464966775,\\"room\\":0.6,\\"pan\\":0}",
-  "5/6 -> 1/1: {\\"s\\":\\"hh\\",\\"gain\\":0.6339596770703793,\\"room\\":0.6,\\"pan\\":1}",
-  "1/18 -> 1/9: {\\"s\\":\\"jvbass:7\\",\\"cutoff\\":1000,\\"gain\\":0.7514234818518162,\\"room\\":0.6,\\"pan\\":1}",
-  "5/18 -> 1/3: {\\"s\\":\\"jvbass:7\\",\\"cutoff\\":1000,\\"gain\\":0.7182912312448025,\\"room\\":0.6,\\"pan\\":1}",
-  "0/1 -> 1/1: {\\"s\\":\\"bd\\",\\"cutoff\\":1000,\\"gain\\":0.5041922464966775,\\"room\\":0.6,\\"pan\\":1}",
-  "0/1 -> 2/1: {\\"s\\":\\"bottle\\",\\"cutoff\\":1000,\\"gain\\":0.5041922464966775,\\"room\\":0.6,\\"pan\\":1}",
-]
-`;
-
-exports[`renders shared tunes > shared tune 295 https://strudel.cc/?C7PwKmsYAOJL 1`] = `
-[
-  "0/1 -> 1/64: {\\"s\\":\\"future:2\\",\\"begin\\":0,\\"end\\":0.0625,\\"speed\\":2,\\"pan\\":0,\\"room\\":0.6}",
-  "1/64 -> 1/32: {\\"s\\":\\"future:2\\",\\"begin\\":0.0625,\\"end\\":0.125,\\"speed\\":2,\\"pan\\":0,\\"room\\":0.6}",
-  "1/32 -> 3/64: {\\"s\\":\\"future:2\\",\\"begin\\":0.125,\\"end\\":0.1875,\\"speed\\":2,\\"pan\\":0,\\"room\\":0.6}",
-  "3/64 -> 1/16: {\\"s\\":\\"future:2\\",\\"begin\\":0.1875,\\"end\\":0.25,\\"speed\\":2,\\"pan\\":0,\\"room\\":0.6}",
-  "1/16 -> 5/64: {\\"s\\":\\"future:2\\",\\"begin\\":0.25,\\"end\\":0.3125,\\"speed\\":2,\\"pan\\":0,\\"room\\":0.6}",
-  "5/64 -> 3/32: {\\"s\\":\\"future:2\\",\\"begin\\":0.3125,\\"end\\":0.375,\\"speed\\":2,\\"pan\\":0,\\"room\\":0.6}",
-  "3/32 -> 7/64: {\\"s\\":\\"future:2\\",\\"begin\\":0.375,\\"end\\":0.4375,\\"speed\\":2,\\"pan\\":0,\\"room\\":0.6}",
-  "7/64 -> 1/8: {\\"s\\":\\"future:2\\",\\"begin\\":0.4375,\\"end\\":0.5,\\"speed\\":2,\\"pan\\":0,\\"room\\":0.6}",
-  "1/8 -> 9/64: {\\"s\\":\\"future:2\\",\\"begin\\":0.5,\\"end\\":0.5625,\\"speed\\":2,\\"pan\\":0,\\"room\\":0.6}",
-  "9/64 -> 5/32: {\\"s\\":\\"future:2\\",\\"begin\\":0.5625,\\"end\\":0.625,\\"speed\\":2,\\"pan\\":0,\\"room\\":0.6}",
-  "5/32 -> 11/64: {\\"s\\":\\"future:2\\",\\"begin\\":0.625,\\"end\\":0.6875,\\"speed\\":2,\\"pan\\":0,\\"room\\":0.6}",
-  "11/64 -> 3/16: {\\"s\\":\\"future:2\\",\\"begin\\":0.6875,\\"end\\":0.75,\\"speed\\":2,\\"pan\\":0,\\"room\\":0.6}",
-  "3/16 -> 13/64: {\\"s\\":\\"future:2\\",\\"begin\\":0.75,\\"end\\":0.8125,\\"speed\\":2,\\"pan\\":0,\\"room\\":0.6}",
-  "13/64 -> 7/32: {\\"s\\":\\"future:2\\",\\"begin\\":0.8125,\\"end\\":0.875,\\"speed\\":2,\\"pan\\":0,\\"room\\":0.6}",
-  "7/32 -> 15/64: {\\"s\\":\\"future:2\\",\\"begin\\":0.875,\\"end\\":0.9375,\\"speed\\":2,\\"pan\\":0,\\"room\\":0.6}",
-  "15/64 -> 1/4: {\\"s\\":\\"future:2\\",\\"begin\\":0.9375,\\"end\\":1,\\"speed\\":2,\\"pan\\":0,\\"room\\":0.6}",
-  "1/4 -> 17/64: {\\"s\\":\\"future:3\\",\\"begin\\":0,\\"end\\":0.0625,\\"speed\\":2,\\"pan\\":0,\\"room\\":0.6}",
-  "17/64 -> 9/32: {\\"s\\":\\"future:3\\",\\"begin\\":0.0625,\\"end\\":0.125,\\"speed\\":2,\\"pan\\":0,\\"room\\":0.6}",
-  "9/32 -> 19/64: {\\"s\\":\\"future:3\\",\\"begin\\":0.125,\\"end\\":0.1875,\\"speed\\":2,\\"pan\\":0,\\"room\\":0.6}",
-  "19/64 -> 5/16: {\\"s\\":\\"future:3\\",\\"begin\\":0.1875,\\"end\\":0.25,\\"speed\\":2,\\"pan\\":0,\\"room\\":0.6}",
-  "5/16 -> 21/64: {\\"s\\":\\"future:3\\",\\"begin\\":0.25,\\"end\\":0.3125,\\"speed\\":2,\\"pan\\":0,\\"room\\":0.6}",
-  "21/64 -> 11/32: {\\"s\\":\\"future:3\\",\\"begin\\":0.3125,\\"end\\":0.375,\\"speed\\":2,\\"pan\\":0,\\"room\\":0.6}",
-  "11/32 -> 23/64: {\\"s\\":\\"future:3\\",\\"begin\\":0.375,\\"end\\":0.4375,\\"speed\\":2,\\"pan\\":0,\\"room\\":0.6}",
-  "23/64 -> 3/8: {\\"s\\":\\"future:3\\",\\"begin\\":0.4375,\\"end\\":0.5,\\"speed\\":2,\\"pan\\":0,\\"room\\":0.6}",
-  "3/8 -> 25/64: {\\"s\\":\\"future:3\\",\\"begin\\":0.5,\\"end\\":0.5625,\\"speed\\":2,\\"pan\\":0,\\"room\\":0.6}",
-  "25/64 -> 13/32: {\\"s\\":\\"future:3\\",\\"begin\\":0.5625,\\"end\\":0.625,\\"speed\\":2,\\"pan\\":0,\\"room\\":0.6}",
-  "13/32 -> 27/64: {\\"s\\":\\"future:3\\",\\"begin\\":0.625,\\"end\\":0.6875,\\"speed\\":2,\\"pan\\":0,\\"room\\":0.6}",
-  "27/64 -> 7/16: {\\"s\\":\\"future:3\\",\\"begin\\":0.6875,\\"end\\":0.75,\\"speed\\":2,\\"pan\\":0,\\"room\\":0.6}",
-  "7/16 -> 29/64: {\\"s\\":\\"future:3\\",\\"begin\\":0.75,\\"end\\":0.8125,\\"speed\\":2,\\"pan\\":0,\\"room\\":0.6}",
-  "29/64 -> 15/32: {\\"s\\":\\"future:3\\",\\"begin\\":0.8125,\\"end\\":0.875,\\"speed\\":2,\\"pan\\":0,\\"room\\":0.6}",
-  "15/32 -> 31/64: {\\"s\\":\\"future:3\\",\\"begin\\":0.875,\\"end\\":0.9375,\\"speed\\":2,\\"pan\\":0,\\"room\\":0.6}",
-  "31/64 -> 1/2: {\\"s\\":\\"future:3\\",\\"begin\\":0.9375,\\"end\\":1,\\"speed\\":2,\\"pan\\":0,\\"room\\":0.6}",
-  "1/2 -> 17/32: {\\"s\\":\\"sd\\",\\"begin\\":0,\\"end\\":0.0625,\\"pan\\":0,\\"room\\":0.6}",
-  "17/32 -> 9/16: {\\"s\\":\\"sd\\",\\"begin\\":0.0625,\\"end\\":0.125,\\"pan\\":0,\\"room\\":0.6}",
-  "9/16 -> 19/32: {\\"s\\":\\"sd\\",\\"begin\\":0.125,\\"end\\":0.1875,\\"pan\\":0,\\"room\\":0.6}",
-  "19/32 -> 5/8: {\\"s\\":\\"sd\\",\\"begin\\":0.1875,\\"end\\":0.25,\\"pan\\":0,\\"room\\":0.6}",
-  "5/8 -> 21/32: {\\"s\\":\\"sd\\",\\"begin\\":0.25,\\"end\\":0.3125,\\"pan\\":0,\\"room\\":0.6}",
-  "21/32 -> 11/16: {\\"s\\":\\"sd\\",\\"begin\\":0.3125,\\"end\\":0.375,\\"pan\\":0,\\"room\\":0.6}",
-  "11/16 -> 23/32: {\\"s\\":\\"sd\\",\\"begin\\":0.375,\\"end\\":0.4375,\\"pan\\":0,\\"room\\":0.6}",
-  "23/32 -> 3/4: {\\"s\\":\\"sd\\",\\"begin\\":0.4375,\\"end\\":0.5,\\"pan\\":0,\\"room\\":0.6}",
-  "3/4 -> 25/32: {\\"s\\":\\"sd\\",\\"begin\\":0.5,\\"end\\":0.5625,\\"pan\\":0,\\"room\\":0.6}",
-  "25/32 -> 13/16: {\\"s\\":\\"sd\\",\\"begin\\":0.5625,\\"end\\":0.625,\\"pan\\":0,\\"room\\":0.6}",
-  "13/16 -> 27/32: {\\"s\\":\\"sd\\",\\"begin\\":0.625,\\"end\\":0.6875,\\"pan\\":0,\\"room\\":0.6}",
-  "27/32 -> 7/8: {\\"s\\":\\"sd\\",\\"begin\\":0.6875,\\"end\\":0.75,\\"pan\\":0,\\"room\\":0.6}",
-  "7/8 -> 29/32: {\\"s\\":\\"sd\\",\\"begin\\":0.75,\\"end\\":0.8125,\\"pan\\":0,\\"room\\":0.6}",
-  "29/32 -> 15/16: {\\"s\\":\\"sd\\",\\"begin\\":0.8125,\\"end\\":0.875,\\"pan\\":0,\\"room\\":0.6}",
-  "15/16 -> 31/32: {\\"s\\":\\"sd\\",\\"begin\\":0.875,\\"end\\":0.9375,\\"pan\\":0,\\"room\\":0.6}",
-  "31/32 -> 1/1: {\\"s\\":\\"sd\\",\\"begin\\":0.9375,\\"end\\":1,\\"pan\\":0,\\"room\\":0.6}",
-  "63/64 -> 1/1: {\\"s\\":\\"future:2\\",\\"begin\\":0,\\"end\\":0.0625,\\"speed\\":2,\\"pan\\":1,\\"room\\":0.6}",
-  "31/32 -> 63/64: {\\"s\\":\\"future:2\\",\\"begin\\":0.0625,\\"end\\":0.125,\\"speed\\":2,\\"pan\\":1,\\"room\\":0.6}",
-  "61/64 -> 31/32: {\\"s\\":\\"future:2\\",\\"begin\\":0.125,\\"end\\":0.1875,\\"speed\\":2,\\"pan\\":1,\\"room\\":0.6}",
-  "15/16 -> 61/64: {\\"s\\":\\"future:2\\",\\"begin\\":0.1875,\\"end\\":0.25,\\"speed\\":2,\\"pan\\":1,\\"room\\":0.6}",
-  "59/64 -> 15/16: {\\"s\\":\\"future:2\\",\\"begin\\":0.25,\\"end\\":0.3125,\\"speed\\":2,\\"pan\\":1,\\"room\\":0.6}",
-  "29/32 -> 59/64: {\\"s\\":\\"future:2\\",\\"begin\\":0.3125,\\"end\\":0.375,\\"speed\\":2,\\"pan\\":1,\\"room\\":0.6}",
-  "57/64 -> 29/32: {\\"s\\":\\"future:2\\",\\"begin\\":0.375,\\"end\\":0.4375,\\"speed\\":2,\\"pan\\":1,\\"room\\":0.6}",
-  "7/8 -> 57/64: {\\"s\\":\\"future:2\\",\\"begin\\":0.4375,\\"end\\":0.5,\\"speed\\":2,\\"pan\\":1,\\"room\\":0.6}",
-  "55/64 -> 7/8: {\\"s\\":\\"future:2\\",\\"begin\\":0.5,\\"end\\":0.5625,\\"speed\\":2,\\"pan\\":1,\\"room\\":0.6}",
-  "27/32 -> 55/64: {\\"s\\":\\"future:2\\",\\"begin\\":0.5625,\\"end\\":0.625,\\"speed\\":2,\\"pan\\":1,\\"room\\":0.6}",
-  "53/64 -> 27/32: {\\"s\\":\\"future:2\\",\\"begin\\":0.625,\\"end\\":0.6875,\\"speed\\":2,\\"pan\\":1,\\"room\\":0.6}",
-  "13/16 -> 53/64: {\\"s\\":\\"future:2\\",\\"begin\\":0.6875,\\"end\\":0.75,\\"speed\\":2,\\"pan\\":1,\\"room\\":0.6}",
-  "51/64 -> 13/16: {\\"s\\":\\"future:2\\",\\"begin\\":0.75,\\"end\\":0.8125,\\"speed\\":2,\\"pan\\":1,\\"room\\":0.6}",
-  "25/32 -> 51/64: {\\"s\\":\\"future:2\\",\\"begin\\":0.8125,\\"end\\":0.875,\\"speed\\":2,\\"pan\\":1,\\"room\\":0.6}",
-  "49/64 -> 25/32: {\\"s\\":\\"future:2\\",\\"begin\\":0.875,\\"end\\":0.9375,\\"speed\\":2,\\"pan\\":1,\\"room\\":0.6}",
-  "3/4 -> 49/64: {\\"s\\":\\"future:2\\",\\"begin\\":0.9375,\\"end\\":1,\\"speed\\":2,\\"pan\\":1,\\"room\\":0.6}",
-  "47/64 -> 3/4: {\\"s\\":\\"future:3\\",\\"begin\\":0,\\"end\\":0.0625,\\"speed\\":2,\\"pan\\":1,\\"room\\":0.6}",
-  "23/32 -> 47/64: {\\"s\\":\\"future:3\\",\\"begin\\":0.0625,\\"end\\":0.125,\\"speed\\":2,\\"pan\\":1,\\"room\\":0.6}",
-  "45/64 -> 23/32: {\\"s\\":\\"future:3\\",\\"begin\\":0.125,\\"end\\":0.1875,\\"speed\\":2,\\"pan\\":1,\\"room\\":0.6}",
-  "11/16 -> 45/64: {\\"s\\":\\"future:3\\",\\"begin\\":0.1875,\\"end\\":0.25,\\"speed\\":2,\\"pan\\":1,\\"room\\":0.6}",
-  "43/64 -> 11/16: {\\"s\\":\\"future:3\\",\\"begin\\":0.25,\\"end\\":0.3125,\\"speed\\":2,\\"pan\\":1,\\"room\\":0.6}",
-  "21/32 -> 43/64: {\\"s\\":\\"future:3\\",\\"begin\\":0.3125,\\"end\\":0.375,\\"speed\\":2,\\"pan\\":1,\\"room\\":0.6}",
-  "41/64 -> 21/32: {\\"s\\":\\"future:3\\",\\"begin\\":0.375,\\"end\\":0.4375,\\"speed\\":2,\\"pan\\":1,\\"room\\":0.6}",
-  "5/8 -> 41/64: {\\"s\\":\\"future:3\\",\\"begin\\":0.4375,\\"end\\":0.5,\\"speed\\":2,\\"pan\\":1,\\"room\\":0.6}",
-  "39/64 -> 5/8: {\\"s\\":\\"future:3\\",\\"begin\\":0.5,\\"end\\":0.5625,\\"speed\\":2,\\"pan\\":1,\\"room\\":0.6}",
-  "19/32 -> 39/64: {\\"s\\":\\"future:3\\",\\"begin\\":0.5625,\\"end\\":0.625,\\"speed\\":2,\\"pan\\":1,\\"room\\":0.6}",
-  "37/64 -> 19/32: {\\"s\\":\\"future:3\\",\\"begin\\":0.625,\\"end\\":0.6875,\\"speed\\":2,\\"pan\\":1,\\"room\\":0.6}",
-  "9/16 -> 37/64: {\\"s\\":\\"future:3\\",\\"begin\\":0.6875,\\"end\\":0.75,\\"speed\\":2,\\"pan\\":1,\\"room\\":0.6}",
-  "35/64 -> 9/16: {\\"s\\":\\"future:3\\",\\"begin\\":0.75,\\"end\\":0.8125,\\"speed\\":2,\\"pan\\":1,\\"room\\":0.6}",
-  "17/32 -> 35/64: {\\"s\\":\\"future:3\\",\\"begin\\":0.8125,\\"end\\":0.875,\\"speed\\":2,\\"pan\\":1,\\"room\\":0.6}",
-  "33/64 -> 17/32: {\\"s\\":\\"future:3\\",\\"begin\\":0.875,\\"end\\":0.9375,\\"speed\\":2,\\"pan\\":1,\\"room\\":0.6}",
-  "1/2 -> 33/64: {\\"s\\":\\"future:3\\",\\"begin\\":0.9375,\\"end\\":1,\\"speed\\":2,\\"pan\\":1,\\"room\\":0.6}",
-  "15/32 -> 1/2: {\\"s\\":\\"sd\\",\\"begin\\":0,\\"end\\":0.0625,\\"pan\\":1,\\"room\\":0.6}",
-  "7/16 -> 15/32: {\\"s\\":\\"sd\\",\\"begin\\":0.0625,\\"end\\":0.125,\\"pan\\":1,\\"room\\":0.6}",
-  "13/32 -> 7/16: {\\"s\\":\\"sd\\",\\"begin\\":0.125,\\"end\\":0.1875,\\"pan\\":1,\\"room\\":0.6}",
-  "3/8 -> 13/32: {\\"s\\":\\"sd\\",\\"begin\\":0.1875,\\"end\\":0.25,\\"pan\\":1,\\"room\\":0.6}",
-  "11/32 -> 3/8: {\\"s\\":\\"sd\\",\\"begin\\":0.25,\\"end\\":0.3125,\\"pan\\":1,\\"room\\":0.6}",
-  "5/16 -> 11/32: {\\"s\\":\\"sd\\",\\"begin\\":0.3125,\\"end\\":0.375,\\"pan\\":1,\\"room\\":0.6}",
-  "9/32 -> 5/16: {\\"s\\":\\"sd\\",\\"begin\\":0.375,\\"end\\":0.4375,\\"pan\\":1,\\"room\\":0.6}",
-  "1/4 -> 9/32: {\\"s\\":\\"sd\\",\\"begin\\":0.4375,\\"end\\":0.5,\\"pan\\":1,\\"room\\":0.6}",
-  "7/32 -> 1/4: {\\"s\\":\\"sd\\",\\"begin\\":0.5,\\"end\\":0.5625,\\"pan\\":1,\\"room\\":0.6}",
-  "3/16 -> 7/32: {\\"s\\":\\"sd\\",\\"begin\\":0.5625,\\"end\\":0.625,\\"pan\\":1,\\"room\\":0.6}",
-  "5/32 -> 3/16: {\\"s\\":\\"sd\\",\\"begin\\":0.625,\\"end\\":0.6875,\\"pan\\":1,\\"room\\":0.6}",
-  "1/8 -> 5/32: {\\"s\\":\\"sd\\",\\"begin\\":0.6875,\\"end\\":0.75,\\"pan\\":1,\\"room\\":0.6}",
-  "3/32 -> 1/8: {\\"s\\":\\"sd\\",\\"begin\\":0.75,\\"end\\":0.8125,\\"pan\\":1,\\"room\\":0.6}",
-  "1/16 -> 3/32: {\\"s\\":\\"sd\\",\\"begin\\":0.8125,\\"end\\":0.875,\\"pan\\":1,\\"room\\":0.6}",
-  "1/32 -> 1/16: {\\"s\\":\\"sd\\",\\"begin\\":0.875,\\"end\\":0.9375,\\"pan\\":1,\\"room\\":0.6}",
-  "0/1 -> 1/32: {\\"s\\":\\"sd\\",\\"begin\\":0.9375,\\"end\\":1,\\"pan\\":1,\\"room\\":0.6}",
-]
-`;
-
-exports[`renders shared tunes > shared tune 296 https://strudel.cc/?Z1mqx-eU-KcX 1`] = `
-[
-  "0/1 -> 831675/814544: {\\"note\\":\\"D0\\",\\"s\\":\\"bell\\",\\"gain\\":0.6,\\"delay\\":0.2,\\"delaytime\\":0.3333333333333333,\\"delayfeedback\\":0.8}",
-  "3/4 -> 1442583/814544: {\\"note\\":\\"A-1\\",\\"s\\":\\"bell\\",\\"gain\\":0.6,\\"delay\\":0.2,\\"delaytime\\":0.3333333333333333,\\"delayfeedback\\":0.8}",
-  "-3/8 -> 62249/203636: {\\"note\\":\\"C4\\",\\"s\\":\\"bell\\",\\"gain\\":0.6,\\"delay\\":0.2,\\"delaytime\\":0.3333333333333333,\\"delayfeedback\\":0.8}",
-  "1/8 -> 933493/814544: {\\"note\\":\\"A1\\",\\"s\\":\\"bell\\",\\"gain\\":0.6,\\"delay\\":0.2,\\"delaytime\\":0.3333333333333333,\\"delayfeedback\\":0.8}",
-  "7/8 -> 1544401/814544: {\\"note\\":\\"G-1\\",\\"s\\":\\"bell\\",\\"gain\\":0.6,\\"delay\\":0.2,\\"delaytime\\":0.3333333333333333,\\"delayfeedback\\":0.8}",
-  "-1/4 -> 175407/407272: {\\"note\\":\\"G6\\",\\"s\\":\\"bell\\",\\"gain\\":0.6,\\"delay\\":0.2,\\"delaytime\\":0.3333333333333333,\\"delayfeedback\\":0.8}",
-  "1/4 -> 1035311/814544: {\\"note\\":\\"C4\\",\\"s\\":\\"bell\\",\\"gain\\":0.6,\\"delay\\":0.2,\\"delaytime\\":0.3333333333333333,\\"delayfeedback\\":0.8}",
-  "0/1 -> 1/2: {\\"note\\":\\"D2\\",\\"s\\":\\"bass\\",\\"clip\\":1,\\"gain\\":0.8}",
-  "1/2 -> 3/4: {\\"note\\":\\"D2\\",\\"s\\":\\"bass\\",\\"clip\\":1,\\"gain\\":0.8}",
-  "3/4 -> 1/1: {\\"note\\":\\"D2\\",\\"s\\":\\"bass\\",\\"clip\\":1,\\"gain\\":0.8}",
-]
-`;
-
-exports[`renders shared tunes > shared tune 297 https://strudel.cc/?Ypr_TlVFjVV5 1`] = `
-[
-  "0/1 -> 1/4: {\\"s\\":\\"p\\",\\"speed\\":0.03125,\\"unit\\":\\"c\\",\\"begin\\":0,\\"end\\":0.0078125,\\"pan\\":0,\\"shape\\":0.4,\\"decay\\":0.1,\\"sustain\\":0.6}",
-  "1/4 -> 1/2: {\\"s\\":\\"p\\",\\"speed\\":0.03125,\\"unit\\":\\"c\\",\\"begin\\":0.0078125,\\"end\\":0.015625,\\"pan\\":0,\\"shape\\":0.4,\\"decay\\":0.1,\\"sustain\\":0.6}",
-  "1/2 -> 3/4: {\\"s\\":\\"p\\",\\"speed\\":0.03125,\\"unit\\":\\"c\\",\\"begin\\":0.015625,\\"end\\":0.0234375,\\"pan\\":0,\\"shape\\":0.4,\\"decay\\":0.1,\\"sustain\\":0.6}",
-  "3/4 -> 1/1: {\\"s\\":\\"p\\",\\"speed\\":0.03125,\\"unit\\":\\"c\\",\\"begin\\":0.0234375,\\"end\\":0.03125,\\"pan\\":0,\\"shape\\":0.4,\\"decay\\":0.1,\\"sustain\\":0.6}",
-  "3/4 -> 1/1: {\\"s\\":\\"p\\",\\"speed\\":0.03125,\\"unit\\":\\"c\\",\\"begin\\":0,\\"end\\":0.0078125,\\"pan\\":1,\\"shape\\":0.4,\\"decay\\":0.1,\\"sustain\\":0.6}",
-  "1/2 -> 3/4: {\\"s\\":\\"p\\",\\"speed\\":0.03125,\\"unit\\":\\"c\\",\\"begin\\":0.0078125,\\"end\\":0.015625,\\"pan\\":1,\\"shape\\":0.4,\\"decay\\":0.1,\\"sustain\\":0.6}",
-  "1/4 -> 1/2: {\\"s\\":\\"p\\",\\"speed\\":0.03125,\\"unit\\":\\"c\\",\\"begin\\":0.015625,\\"end\\":0.0234375,\\"pan\\":1,\\"shape\\":0.4,\\"decay\\":0.1,\\"sustain\\":0.6}",
-  "0/1 -> 1/4: {\\"s\\":\\"p\\",\\"speed\\":0.03125,\\"unit\\":\\"c\\",\\"begin\\":0.0234375,\\"end\\":0.03125,\\"pan\\":1,\\"shape\\":0.4,\\"decay\\":0.1,\\"sustain\\":0.6}",
-]
-`;
-
-exports[`renders shared tunes > shared tune 298 https://strudel.cc/?5pmvveRR-gKc 1`] = `
-[
-  "0/1 -> 1/1: D3",
-  "0/1 -> 2/1: E3",
-  "0/1 -> 4/1: D2",
-  "0/1 -> 1/2: B3",
-  "-1/1 -> 1/1: C#3",
-  "0/1 -> 2/1: C#3",
-  "0/1 -> 1/4: E2",
-  "-1/1 -> 1/1: B2",
-  "0/1 -> 1/1: D3",
-  "0/1 -> 2/1: E3",
-  "0/1 -> 4/1: D2",
-  "0/1 -> 1/2: B3",
-  "-1/1 -> 1/1: C#3",
-  "0/1 -> 2/1: C#3",
-  "0/1 -> 1/4: E2",
-  "-1/1 -> 1/1: B2",
-  "0/1 -> 1/1: D3",
-  "0/1 -> 2/1: E3",
-  "0/1 -> 4/1: D2",
-  "0/1 -> 1/2: B3",
-  "-1/1 -> 1/1: C#3",
-  "0/1 -> 2/1: C#3",
-  "0/1 -> 1/4: E2",
-  "-1/1 -> 1/1: B2",
-  "0/1 -> 1/1: D3",
-  "0/1 -> 2/1: E3",
-  "0/1 -> 4/1: D2",
-  "0/1 -> 1/2: B3",
-  "-1/1 -> 1/1: C#3",
-  "0/1 -> 2/1: C#3",
-  "-1/1 -> 1/1: B2",
-  "0/1 -> 1/1: D3",
-  "0/1 -> 2/1: E3",
-  "0/1 -> 4/1: D2",
-  "0/1 -> 1/2: B3",
-  "-1/1 -> 1/1: C#3",
-  "0/1 -> 2/1: C#3",
-  "-1/1 -> 1/1: B2",
-  "0/1 -> 1/1: D3",
-  "0/1 -> 2/1: E3",
-  "0/1 -> 4/1: D2",
-  "0/1 -> 1/2: B3",
-  "-1/1 -> 1/1: C#3",
-  "0/1 -> 2/1: C#3",
-  "-1/1 -> 1/1: B2",
-  "1/2 -> 1/1: B2",
-  "0/1 -> 1/1: D3",
-  "0/1 -> 2/1: E3",
-  "0/1 -> 4/1: D2",
-  "-1/1 -> 1/1: C#3",
-  "0/1 -> 2/1: C#3",
-  "-1/1 -> 1/1: B2",
-  "1/2 -> 1/1: B2",
-  "0/1 -> 1/1: D3",
-  "0/1 -> 2/1: E3",
-  "0/1 -> 4/1: D2",
-  "-1/1 -> 1/1: C#3",
-  "0/1 -> 2/1: C#3",
-  "3/4 -> 1/1: G2",
-  "-1/1 -> 1/1: B2",
-  "1/2 -> 1/1: B2",
-  "0/1 -> 1/1: D3",
-  "0/1 -> 2/1: E3",
-  "0/1 -> 4/1: D2",
-  "-1/1 -> 1/1: C#3",
-  "0/1 -> 2/1: C#3",
-  "3/4 -> 1/1: G2",
-  "-1/1 -> 1/1: B2",
-  "1/2 -> 1/1: B2",
-  "0/1 -> 1/1: D3",
-  "0/1 -> 2/1: E3",
-  "0/1 -> 4/1: D2",
-  "-1/1 -> 1/1: C#3",
-  "0/1 -> 2/1: C#3",
-  "3/4 -> 1/1: G2",
-  "-1/1 -> 1/1: B2",
-  "1/2 -> 1/1: B2",
-  "0/1 -> 1/1: D3",
-  "0/1 -> 2/1: E3",
-  "0/1 -> 4/1: D2",
-  "-1/1 -> 1/1: C#3",
-  "0/1 -> 2/1: C#3",
-  "3/4 -> 1/1: G2",
-  "-1/1 -> 1/1: B2",
-  "1/2 -> 1/1: B2",
-]
-`;
-
-exports[`renders shared tunes > shared tune 299 https://strudel.cc/?rGJ0heffHHl4 1`] = `
-[
-  "0/1 -> 1/2: {\\"s\\":\\"bd\\",\\"gain\\":0.8}",
-  "1/2 -> 1/1: {\\"s\\":\\"bd\\",\\"gain\\":0.8}",
-  "1/2 -> 1/1: {\\"s\\":\\"sd\\",\\"gain\\":0.5}",
-  "1/4 -> 1/2: {\\"s\\":\\"hh\\",\\"delay\\":0.3,\\"delayfeedback\\":0.5,\\"delaytime\\":0.125,\\"gain\\":0.4}",
-  "3/4 -> 1/1: {\\"s\\":\\"hh\\",\\"delay\\":0.3,\\"delayfeedback\\":0.5,\\"delaytime\\":0.125,\\"gain\\":0.4}",
-  "0/1 -> 1/2: {\\"note\\":\\"B1\\",\\"s\\":\\"sawtooth\\",\\"attack\\":0.001,\\"decay\\":0.2,\\"sustain\\":1,\\"cutoff\\":500}",
-  "3/4 -> 1/1: {\\"note\\":\\"B1\\",\\"s\\":\\"sawtooth\\",\\"attack\\":0.001,\\"decay\\":0.2,\\"sustain\\":1,\\"cutoff\\":500}",
-  "1/4 -> 1/3: {\\"note\\":\\"A3\\",\\"s\\":\\"sawtooth\\",\\"cutoff\\":1200,\\"gain\\":0.5,\\"attack\\":0,\\"decay\\":0.16,\\"sustain\\":0,\\"release\\":0.1,\\"delay\\":0.4,\\"delaytime\\":0.12}",
-  "1/4 -> 1/3: {\\"note\\":\\"C#4\\",\\"s\\":\\"sawtooth\\",\\"cutoff\\":1200,\\"gain\\":0.5,\\"attack\\":0,\\"decay\\":0.16,\\"sustain\\":0,\\"release\\":0.1,\\"delay\\":0.4,\\"delaytime\\":0.12}",
-  "1/4 -> 1/3: {\\"note\\":\\"D4\\",\\"s\\":\\"sawtooth\\",\\"cutoff\\":1200,\\"gain\\":0.5,\\"attack\\":0,\\"decay\\":0.16,\\"sustain\\":0,\\"release\\":0.1,\\"delay\\":0.4,\\"delaytime\\":0.12}",
-  "1/4 -> 1/3: {\\"note\\":\\"F#4\\",\\"s\\":\\"sawtooth\\",\\"cutoff\\":1200,\\"gain\\":0.5,\\"attack\\":0,\\"decay\\":0.16,\\"sustain\\":0,\\"release\\":0.1,\\"delay\\":0.4,\\"delaytime\\":0.12}",
-]
-`;
-
-exports[`renders shared tunes > shared tune 300 https://strudel.cc/?Z7Nxzf3lmgTN 1`] = `
-[
-  "0/1 -> 8/1: {\\"note\\":\\"e3\\",\\"s\\":\\"sawtooth\\",\\"attack\\":0.1,\\"decay\\":0.2,\\"sustain\\":0.3,\\"release\\":0.1,\\"bandf\\":100,\\"bandq\\":1,\\"gain\\":3}",
-  "0/1 -> 8/1: {\\"note\\":\\"b4\\",\\"s\\":\\"sawtooth\\",\\"attack\\":0.1,\\"decay\\":0.2,\\"sustain\\":0.3,\\"release\\":0.1,\\"bandf\\":100,\\"bandq\\":1,\\"gain\\":3}",
-  "0/1 -> 8/1: {\\"note\\":\\"d4\\",\\"s\\":\\"sawtooth\\",\\"attack\\":0.1,\\"decay\\":0.2,\\"sustain\\":0.3,\\"release\\":0.1,\\"bandf\\":100,\\"bandq\\":1,\\"gain\\":3}",
-  "0/1 -> 8/1: {\\"note\\":\\"a4\\",\\"s\\":\\"sawtooth\\",\\"attack\\":0.1,\\"decay\\":0.2,\\"sustain\\":0.3,\\"release\\":0.1,\\"bandf\\":100,\\"bandq\\":1,\\"gain\\":3}",
-  "2/3 -> 1/1: {\\"s\\":\\"hh\\"}",
-  "1/2 -> 2/3: {\\"s\\":\\"hh\\"}",
-  "1/3 -> 1/2: {\\"s\\":\\"hh\\"}",
-  "1/6 -> 1/3: {\\"s\\":\\"hh\\"}",
-  "1/12 -> 1/6: {\\"s\\":\\"hh\\"}",
-  "0/1 -> 1/12: {\\"s\\":\\"hh\\"}",
-]
-`;
-
-exports[`renders shared tunes > shared tune 301 https://strudel.cc/?e63x61eOPPvl 1`] = `
-[
-  "0/1 -> 8/1: {\\"note\\":\\"e3\\",\\"s\\":\\"sawtooth\\",\\"attack\\":0.1,\\"decay\\":0.2,\\"sustain\\":0.3,\\"release\\":0.1,\\"bandf\\":100,\\"bandq\\":1,\\"gain\\":3}",
-  "0/1 -> 8/1: {\\"note\\":\\"b4\\",\\"s\\":\\"sawtooth\\",\\"attack\\":0.1,\\"decay\\":0.2,\\"sustain\\":0.3,\\"release\\":0.1,\\"bandf\\":100,\\"bandq\\":1,\\"gain\\":3}",
-  "0/1 -> 8/1: {\\"note\\":\\"a4\\",\\"s\\":\\"sawtooth\\",\\"attack\\":0.1,\\"decay\\":0.2,\\"sustain\\":0.3,\\"release\\":0.1,\\"bandf\\":100,\\"bandq\\":1,\\"gain\\":3}",
-  "0/1 -> 8/1: {\\"note\\":\\"g#4\\",\\"s\\":\\"sawtooth\\",\\"attack\\":0.1,\\"decay\\":0.2,\\"sustain\\":0.3,\\"release\\":0.1,\\"bandf\\":100,\\"bandq\\":1,\\"gain\\":3}",
-]
-`;
-
-exports[`renders shared tunes > shared tune 302 https://strudel.cc/?bUd8QxyN4kvJ 1`] = `
-[
-  "0/1 -> 1/8: {\\"note\\":\\"g4\\",\\"s\\":\\"xx\\",\\"cutoff\\":2348.1232826650858,\\"room\\":0.8,\\"pan\\":0,\\"gain\\":0.5}",
-  "3/8 -> 1/2: {\\"note\\":\\"g4\\",\\"s\\":\\"xx\\",\\"cutoff\\":2919.6960066389074,\\"room\\":0.8,\\"pan\\":0,\\"gain\\":0.5}",
-  "3/4 -> 7/8: {\\"note\\":\\"g4\\",\\"s\\":\\"xx\\",\\"cutoff\\":3416.106511416007,\\"room\\":0.8,\\"pan\\":0,\\"gain\\":0.5}",
-  "-1/4 -> 1/4: {\\"note\\":\\"c5\\",\\"n\\":7,\\"s\\":\\"xx\\",\\"cutoff\\":2445.9378331807884,\\"room\\":0.8,\\"pan\\":0,\\"gain\\":0.5}",
-  "1/4 -> 3/8: {\\"note\\":\\"g4\\",\\"n\\":7,\\"s\\":\\"xx\\",\\"cutoff\\":2734.462144993486,\\"room\\":0.8,\\"pan\\":0,\\"gain\\":0.5}",
-  "5/8 -> 3/4: {\\"note\\":\\"g4\\",\\"n\\":7,\\"s\\":\\"xx\\",\\"cutoff\\":3262.67476831466,\\"room\\":0.8,\\"pan\\":0,\\"gain\\":0.5}",
-  "-3/8 -> 1/8: {\\"note\\":\\"c5\\",\\"n\\":12,\\"s\\":\\"xx\\",\\"cutoff\\":2348.1232826650858,\\"room\\":0.8,\\"pan\\":0,\\"gain\\":0.5}",
-  "1/8 -> 1/4: {\\"note\\":\\"g4\\",\\"n\\":12,\\"s\\":\\"xx\\",\\"cutoff\\":2543.1358907832887,\\"room\\":0.8,\\"pan\\":0,\\"gain\\":0.5}",
-  "1/2 -> 5/8: {\\"note\\":\\"g4\\",\\"n\\":12,\\"s\\":\\"xx\\",\\"cutoff\\":3096.5080524341697,\\"room\\":0.8,\\"pan\\":0,\\"gain\\":0.5}",
-  "7/8 -> 1/1: {\\"note\\":\\"g4\\",\\"n\\":12,\\"s\\":\\"xx\\",\\"cutoff\\":3554.87378854554,\\"room\\":0.8,\\"pan\\":0,\\"gain\\":0.5}",
-  "-1/8 -> 3/8: {\\"note\\":\\"c5\\",\\"n\\":19,\\"s\\":\\"xx\\",\\"cutoff\\":2543.1358907832887,\\"room\\":0.8,\\"pan\\":0,\\"gain\\":0.5}",
-  "-1/8 -> 3/8: {\\"note\\":\\"c5\\",\\"n\\":19,\\"s\\":\\"xx\\",\\"cutoff\\":2543.1358907832887,\\"room\\":0.8,\\"pan\\":0,\\"gain\\":0.5}",
-  "3/8 -> 1/2: {\\"note\\":\\"g4\\",\\"n\\":19,\\"s\\":\\"xx\\",\\"cutoff\\":2919.6960066389074,\\"room\\":0.8,\\"pan\\":0,\\"gain\\":0.5}",
-  "3/4 -> 7/8: {\\"note\\":\\"g4\\",\\"n\\":19,\\"s\\":\\"xx\\",\\"cutoff\\":3416.106511416007,\\"room\\":0.8,\\"pan\\":0,\\"gain\\":0.5}",
-  "7/8 -> 1/1: {\\"note\\":\\"g4\\",\\"s\\":\\"xx\\",\\"cutoff\\":2348.1232826650858,\\"room\\":0.8,\\"pan\\":1,\\"gain\\":0.5}",
-  "1/2 -> 5/8: {\\"note\\":\\"g4\\",\\"s\\":\\"xx\\",\\"cutoff\\":2919.6960066389074,\\"room\\":0.8,\\"pan\\":1,\\"gain\\":0.5}",
-  "1/8 -> 1/4: {\\"note\\":\\"g4\\",\\"s\\":\\"xx\\",\\"cutoff\\":3416.106511416007,\\"room\\":0.8,\\"pan\\":1,\\"gain\\":0.5}",
-  "3/4 -> 5/4: {\\"note\\":\\"c5\\",\\"n\\":7,\\"s\\":\\"xx\\",\\"cutoff\\":2445.9378331807884,\\"room\\":0.8,\\"pan\\":1,\\"gain\\":0.5}",
-  "5/8 -> 3/4: {\\"note\\":\\"g4\\",\\"n\\":7,\\"s\\":\\"xx\\",\\"cutoff\\":2734.462144993486,\\"room\\":0.8,\\"pan\\":1,\\"gain\\":0.5}",
-  "1/4 -> 3/8: {\\"note\\":\\"g4\\",\\"n\\":7,\\"s\\":\\"xx\\",\\"cutoff\\":3262.67476831466,\\"room\\":0.8,\\"pan\\":1,\\"gain\\":0.5}",
-  "7/8 -> 11/8: {\\"note\\":\\"c5\\",\\"n\\":12,\\"s\\":\\"xx\\",\\"cutoff\\":2348.1232826650858,\\"room\\":0.8,\\"pan\\":1,\\"gain\\":0.5}",
-  "3/4 -> 7/8: {\\"note\\":\\"g4\\",\\"n\\":12,\\"s\\":\\"xx\\",\\"cutoff\\":2543.1358907832887,\\"room\\":0.8,\\"pan\\":1,\\"gain\\":0.5}",
-  "3/8 -> 1/2: {\\"note\\":\\"g4\\",\\"n\\":12,\\"s\\":\\"xx\\",\\"cutoff\\":3096.5080524341697,\\"room\\":0.8,\\"pan\\":1,\\"gain\\":0.5}",
-  "0/1 -> 1/8: {\\"note\\":\\"g4\\",\\"n\\":12,\\"s\\":\\"xx\\",\\"cutoff\\":3554.87378854554,\\"room\\":0.8,\\"pan\\":1,\\"gain\\":0.5}",
-  "5/8 -> 9/8: {\\"note\\":\\"c5\\",\\"n\\":19,\\"s\\":\\"xx\\",\\"cutoff\\":2543.1358907832887,\\"room\\":0.8,\\"pan\\":1,\\"gain\\":0.5}",
-  "5/8 -> 9/8: {\\"note\\":\\"c5\\",\\"n\\":19,\\"s\\":\\"xx\\",\\"cutoff\\":2543.1358907832887,\\"room\\":0.8,\\"pan\\":1,\\"gain\\":0.5}",
-  "1/2 -> 5/8: {\\"note\\":\\"g4\\",\\"n\\":19,\\"s\\":\\"xx\\",\\"cutoff\\":2919.6960066389074,\\"room\\":0.8,\\"pan\\":1,\\"gain\\":0.5}",
-  "1/8 -> 1/4: {\\"note\\":\\"g4\\",\\"n\\":19,\\"s\\":\\"xx\\",\\"cutoff\\":3416.106511416007,\\"room\\":0.8,\\"pan\\":1,\\"gain\\":0.5}",
-]
-`;
-
-exports[`renders shared tunes > shared tune 303 https://strudel.cc/?y5PdLktz5gnb 1`] = `
-[
-  "0/1 -> 1/4: {\\"note\\":\\"e3\\",\\"s\\":\\"sawtooth\\",\\"decay\\":0.1,\\"sustain\\":0.1,\\"bandf\\":50,\\"bandq\\":0.5,\\"gain\\":3.8519497029047303}",
-  "1/4 -> 1/2: {\\"note\\":\\"e3\\",\\"s\\":\\"sawtooth\\",\\"decay\\":0.1,\\"sustain\\":0.1,\\"bandf\\":50,\\"bandq\\":0.5,\\"gain\\":2.22836140246614}",
-  "1/2 -> 3/4: {\\"note\\":\\"e3\\",\\"s\\":\\"sawtooth\\",\\"decay\\":0.1,\\"sustain\\":0.1,\\"bandf\\":50,\\"bandq\\":0.5,\\"gain\\":2.22836140246614}",
-  "3/4 -> 1/1: {\\"note\\":\\"e3\\",\\"s\\":\\"sawtooth\\",\\"decay\\":0.1,\\"sustain\\":0.1,\\"bandf\\":50,\\"bandq\\":0.5,\\"gain\\":3.8519497029047303}",
-  "0/1 -> 1/4: {\\"note\\":\\"b4\\",\\"s\\":\\"sawtooth\\",\\"decay\\":0.1,\\"sustain\\":0.1,\\"bandf\\":50,\\"bandq\\":0.5,\\"gain\\":3.8519497029047303}",
-  "1/4 -> 1/2: {\\"note\\":\\"b4\\",\\"s\\":\\"sawtooth\\",\\"decay\\":0.1,\\"sustain\\":0.1,\\"bandf\\":50,\\"bandq\\":0.5,\\"gain\\":2.22836140246614}",
-  "1/2 -> 3/4: {\\"note\\":\\"b4\\",\\"s\\":\\"sawtooth\\",\\"decay\\":0.1,\\"sustain\\":0.1,\\"bandf\\":50,\\"bandq\\":0.5,\\"gain\\":2.22836140246614}",
-  "3/4 -> 1/1: {\\"note\\":\\"b4\\",\\"s\\":\\"sawtooth\\",\\"decay\\":0.1,\\"sustain\\":0.1,\\"bandf\\":50,\\"bandq\\":0.5,\\"gain\\":3.8519497029047303}",
-  "0/1 -> 1/4: {\\"note\\":\\"a4\\",\\"s\\":\\"sawtooth\\",\\"decay\\":0.1,\\"sustain\\":0.1,\\"bandf\\":50,\\"bandq\\":0.5,\\"gain\\":3.8519497029047303}",
-  "1/4 -> 1/2: {\\"note\\":\\"a4\\",\\"s\\":\\"sawtooth\\",\\"decay\\":0.1,\\"sustain\\":0.1,\\"bandf\\":50,\\"bandq\\":0.5,\\"gain\\":2.22836140246614}",
-  "1/2 -> 3/4: {\\"note\\":\\"a4\\",\\"s\\":\\"sawtooth\\",\\"decay\\":0.1,\\"sustain\\":0.1,\\"bandf\\":50,\\"bandq\\":0.5,\\"gain\\":2.22836140246614}",
-  "3/4 -> 1/1: {\\"note\\":\\"a4\\",\\"s\\":\\"sawtooth\\",\\"decay\\":0.1,\\"sustain\\":0.1,\\"bandf\\":50,\\"bandq\\":0.5,\\"gain\\":3.8519497029047303}",
-  "0/1 -> 1/4: {\\"note\\":\\"g#4\\",\\"s\\":\\"sawtooth\\",\\"decay\\":0.1,\\"sustain\\":0.1,\\"bandf\\":50,\\"bandq\\":0.5,\\"gain\\":3.8519497029047303}",
-  "1/4 -> 1/2: {\\"note\\":\\"g#4\\",\\"s\\":\\"sawtooth\\",\\"decay\\":0.1,\\"sustain\\":0.1,\\"bandf\\":50,\\"bandq\\":0.5,\\"gain\\":2.22836140246614}",
-  "1/2 -> 3/4: {\\"note\\":\\"g#4\\",\\"s\\":\\"sawtooth\\",\\"decay\\":0.1,\\"sustain\\":0.1,\\"bandf\\":50,\\"bandq\\":0.5,\\"gain\\":2.22836140246614}",
-  "3/4 -> 1/1: {\\"note\\":\\"g#4\\",\\"s\\":\\"sawtooth\\",\\"decay\\":0.1,\\"sustain\\":0.1,\\"bandf\\":50,\\"bandq\\":0.5,\\"gain\\":3.8519497029047303}",
-  "0/1 -> 2/1: {\\"s\\":\\"bd\\",\\"decay\\":0.1}",
-  "3/4 -> 1/1: {\\"s\\":\\"hh\\",\\"gain\\":0.4}",
-  "1/2 -> 3/4: {\\"s\\":\\"hh\\",\\"gain\\":1}",
-  "1/4 -> 1/2: {\\"s\\":\\"hh\\",\\"gain\\":0.4}",
-  "0/1 -> 1/4: {\\"s\\":\\"hh\\",\\"gain\\":1}",
-]
-`;
-
-exports[`renders shared tunes > shared tune 304 https://strudel.cc/?BpChMc3nxrYv 1`] = `
-[
-  "0/1 -> 3/2: {\\"s\\":\\"bd\\",\\"speed\\":0.7519542165100574}",
-  "3/4 -> 3/2: {\\"s\\":\\"sd\\",\\"speed\\":0.7931522866332671}",
-  "3/8 -> 3/4: {\\"s\\":\\"hh\\",\\"speed\\":0.7285963821098448}",
-  "3/4 -> 9/8: {\\"s\\":\\"hh\\",\\"speed\\":0.77531205091027}",
-  "0/1 -> 3/2: {\\"n\\":33.129885541275144,\\"decay\\":0.15,\\"sustain\\":0,\\"s\\":\\"sawtooth\\",\\"gain\\":0.4,\\"cutoff\\":3669.6267869262615}",
-  "0/1 -> 3/2: {\\"n\\":33.17988554127514,\\"decay\\":0.15,\\"sustain\\":0,\\"s\\":\\"sawtooth\\",\\"gain\\":0.4,\\"cutoff\\":3669.6267869262615}",
-  "0/1 -> 3/2: {\\"n\\":55.129885541275144,\\"s\\":\\"sawtooth\\",\\"gain\\":0.16,\\"cutoff\\":500,\\"attack\\":1}",
-  "0/1 -> 3/2: {\\"n\\":59.129885541275144,\\"s\\":\\"sawtooth\\",\\"gain\\":0.16,\\"cutoff\\":500,\\"attack\\":1}",
-  "0/1 -> 3/2: {\\"n\\":60.129885541275144,\\"s\\":\\"sawtooth\\",\\"gain\\":0.16,\\"cutoff\\":500,\\"attack\\":1}",
-  "0/1 -> 3/2: {\\"n\\":64.12988554127514,\\"s\\":\\"sawtooth\\",\\"gain\\":0.16,\\"cutoff\\":500,\\"attack\\":1}",
-  "0/1 -> 3/2: {\\"n\\":55.16988554127514,\\"s\\":\\"sawtooth\\",\\"gain\\":0.16,\\"cutoff\\":500,\\"attack\\":1}",
-  "0/1 -> 3/2: {\\"n\\":59.16988554127514,\\"s\\":\\"sawtooth\\",\\"gain\\":0.16,\\"cutoff\\":500,\\"attack\\":1}",
-  "0/1 -> 3/2: {\\"n\\":60.16988554127514,\\"s\\":\\"sawtooth\\",\\"gain\\":0.16,\\"cutoff\\":500,\\"attack\\":1}",
-  "0/1 -> 3/2: {\\"n\\":64.16988554127515,\\"s\\":\\"sawtooth\\",\\"gain\\":0.16,\\"cutoff\\":500,\\"attack\\":1}",
-  "3/16 -> 3/8: {\\"n\\":69.01266877519555,\\"decay\\":0.1,\\"sustain\\":0,\\"s\\":\\"triangle\\",\\"gain\\":0.15}",
-  "3/8 -> 9/16: {\\"n\\":69.04676036055696,\\"decay\\":0.1,\\"sustain\\":0,\\"s\\":\\"triangle\\",\\"gain\\":0.15}",
-  "3/8 -> 9/16: {\\"n\\":72.04676036055696,\\"decay\\":0.1,\\"sustain\\":0,\\"s\\":\\"triangle\\",\\"gain\\":0.15}",
-  "3/4 -> 15/16: {\\"n\\":72.16001184806132,\\"decay\\":0.1,\\"sustain\\":0,\\"s\\":\\"triangle\\",\\"gain\\":0.15}",
-  "15/16 -> 9/8: {\\"n\\":72.21301072199333,\\"decay\\":0.1,\\"sustain\\":0,\\"s\\":\\"triangle\\",\\"gain\\":0.15}",
-  "3/16 -> 3/8: {\\"n\\":69.05266877519557,\\"decay\\":0.1,\\"sustain\\":0,\\"s\\":\\"triangle\\",\\"gain\\":0.15}",
-  "3/8 -> 9/16: {\\"n\\":69.08676036055695,\\"decay\\":0.1,\\"sustain\\":0,\\"s\\":\\"triangle\\",\\"gain\\":0.15}",
-  "3/8 -> 9/16: {\\"n\\":72.08676036055695,\\"decay\\":0.1,\\"sustain\\":0,\\"s\\":\\"triangle\\",\\"gain\\":0.15}",
-  "3/4 -> 15/16: {\\"n\\":72.20001184806131,\\"decay\\":0.1,\\"sustain\\":0,\\"s\\":\\"triangle\\",\\"gain\\":0.15}",
-  "15/16 -> 9/8: {\\"n\\":72.25301072199335,\\"decay\\":0.1,\\"sustain\\":0,\\"s\\":\\"triangle\\",\\"gain\\":0.15}",
-  "0/1 -> 3/16: {\\"n\\":93.00057728554401,\\"decay\\":0.1,\\"sustain\\":0,\\"s\\":\\"triangle\\",\\"gain\\":0.075}",
-  "0/1 -> 3/16: {\\"n\\":93.04057728554402,\\"decay\\":0.1,\\"sustain\\":0,\\"s\\":\\"triangle\\",\\"gain\\":0.075}",
-  "3/8 -> 9/16: {\\"n\\":69.01266877519555,\\"decay\\":0.1,\\"sustain\\":0,\\"s\\":\\"triangle\\",\\"gain\\":0.075}",
-  "9/16 -> 3/4: {\\"n\\":69.04676036055696,\\"decay\\":0.1,\\"sustain\\":0,\\"s\\":\\"triangle\\",\\"gain\\":0.075}",
-  "9/16 -> 3/4: {\\"n\\":72.04676036055696,\\"decay\\":0.1,\\"sustain\\":0,\\"s\\":\\"triangle\\",\\"gain\\":0.075}",
-  "15/16 -> 9/8: {\\"n\\":72.16001184806132,\\"decay\\":0.1,\\"sustain\\":0,\\"s\\":\\"triangle\\",\\"gain\\":0.075}",
-  "3/8 -> 9/16: {\\"n\\":69.05266877519557,\\"decay\\":0.1,\\"sustain\\":0,\\"s\\":\\"triangle\\",\\"gain\\":0.075}",
-  "9/16 -> 3/4: {\\"n\\":69.08676036055695,\\"decay\\":0.1,\\"sustain\\":0,\\"s\\":\\"triangle\\",\\"gain\\":0.075}",
-  "9/16 -> 3/4: {\\"n\\":72.08676036055695,\\"decay\\":0.1,\\"sustain\\":0,\\"s\\":\\"triangle\\",\\"gain\\":0.075}",
-  "15/16 -> 9/8: {\\"n\\":72.20001184806131,\\"decay\\":0.1,\\"sustain\\":0,\\"s\\":\\"triangle\\",\\"gain\\":0.075}",
-  "3/16 -> 3/8: {\\"n\\":93.00057728554401,\\"decay\\":0.1,\\"sustain\\":0,\\"s\\":\\"triangle\\",\\"gain\\":0.049999999999999996}",
-  "3/16 -> 3/8: {\\"n\\":93.04057728554402,\\"decay\\":0.1,\\"sustain\\":0,\\"s\\":\\"triangle\\",\\"gain\\":0.049999999999999996}",
-  "9/16 -> 3/4: {\\"n\\":69.01266877519555,\\"decay\\":0.1,\\"sustain\\":0,\\"s\\":\\"triangle\\",\\"gain\\":0.049999999999999996}",
-  "3/4 -> 15/16: {\\"n\\":69.04676036055696,\\"decay\\":0.1,\\"sustain\\":0,\\"s\\":\\"triangle\\",\\"gain\\":0.049999999999999996}",
-  "3/4 -> 15/16: {\\"n\\":72.04676036055696,\\"decay\\":0.1,\\"sustain\\":0,\\"s\\":\\"triangle\\",\\"gain\\":0.049999999999999996}",
-  "9/16 -> 3/4: {\\"n\\":69.05266877519557,\\"decay\\":0.1,\\"sustain\\":0,\\"s\\":\\"triangle\\",\\"gain\\":0.049999999999999996}",
-  "3/4 -> 15/16: {\\"n\\":69.08676036055695,\\"decay\\":0.1,\\"sustain\\":0,\\"s\\":\\"triangle\\",\\"gain\\":0.049999999999999996}",
-  "3/4 -> 15/16: {\\"n\\":72.08676036055695,\\"decay\\":0.1,\\"sustain\\":0,\\"s\\":\\"triangle\\",\\"gain\\":0.049999999999999996}",
-  "0/1 -> 3/16: {\\"n\\":72.0468455057745,\\"decay\\":0.1,\\"sustain\\":0,\\"s\\":\\"triangle\\",\\"gain\\":0.0375}",
-  "0/1 -> 3/16: {\\"n\\":93.0468455057745,\\"decay\\":0.1,\\"sustain\\":0,\\"s\\":\\"triangle\\",\\"gain\\":0.0375}",
-  "3/8 -> 9/16: {\\"n\\":93.00057728554401,\\"decay\\":0.1,\\"sustain\\":0,\\"s\\":\\"triangle\\",\\"gain\\":0.0375}",
-  "0/1 -> 3/16: {\\"n\\":72.0868455057745,\\"decay\\":0.1,\\"sustain\\":0,\\"s\\":\\"triangle\\",\\"gain\\":0.0375}",
-  "0/1 -> 3/16: {\\"n\\":93.0868455057745,\\"decay\\":0.1,\\"sustain\\":0,\\"s\\":\\"triangle\\",\\"gain\\":0.0375}",
-  "3/8 -> 9/16: {\\"n\\":93.04057728554402,\\"decay\\":0.1,\\"sustain\\":0,\\"s\\":\\"triangle\\",\\"gain\\":0.0375}",
-  "3/4 -> 15/16: {\\"n\\":69.01266877519555,\\"decay\\":0.1,\\"sustain\\":0,\\"s\\":\\"triangle\\",\\"gain\\":0.0375}",
-  "15/16 -> 9/8: {\\"n\\":69.04676036055696,\\"decay\\":0.1,\\"sustain\\":0,\\"s\\":\\"triangle\\",\\"gain\\":0.0375}",
-  "3/4 -> 15/16: {\\"n\\":69.05266877519557,\\"decay\\":0.1,\\"sustain\\":0,\\"s\\":\\"triangle\\",\\"gain\\":0.0375}",
-  "15/16 -> 9/8: {\\"n\\":69.08676036055695,\\"decay\\":0.1,\\"sustain\\":0,\\"s\\":\\"triangle\\",\\"gain\\":0.0375}",
-]
-`;
-
-exports[`renders shared tunes > shared tune 305 https://strudel.cc/?Swuvt887AOe1 1`] = `
-[
-  "0/1 -> 3/2: {\\"s\\":\\"bd\\",\\"speed\\":0.7519542165100574}",
-  "3/4 -> 3/2: {\\"s\\":\\"sd\\",\\"speed\\":0.7931522866332671}",
-  "3/8 -> 3/4: {\\"s\\":\\"hh\\",\\"speed\\":0.7285963821098448}",
-  "3/4 -> 9/8: {\\"s\\":\\"hh\\",\\"speed\\":0.77531205091027}",
-  "0/1 -> 3/2: {\\"n\\":33.129885541275144,\\"decay\\":0.15,\\"sustain\\":0,\\"s\\":\\"sawtooth\\",\\"gain\\":0.4,\\"cutoff\\":3669.6267869262615}",
-  "0/1 -> 3/2: {\\"n\\":33.17988554127514,\\"decay\\":0.15,\\"sustain\\":0,\\"s\\":\\"sawtooth\\",\\"gain\\":0.4,\\"cutoff\\":3669.6267869262615}",
-  "0/1 -> 3/2: {\\"n\\":55.129885541275144,\\"s\\":\\"sawtooth\\",\\"gain\\":0.16,\\"cutoff\\":500,\\"attack\\":1}",
-  "0/1 -> 3/2: {\\"n\\":59.129885541275144,\\"s\\":\\"sawtooth\\",\\"gain\\":0.16,\\"cutoff\\":500,\\"attack\\":1}",
-  "0/1 -> 3/2: {\\"n\\":60.129885541275144,\\"s\\":\\"sawtooth\\",\\"gain\\":0.16,\\"cutoff\\":500,\\"attack\\":1}",
-  "0/1 -> 3/2: {\\"n\\":64.12988554127514,\\"s\\":\\"sawtooth\\",\\"gain\\":0.16,\\"cutoff\\":500,\\"attack\\":1}",
-  "0/1 -> 3/2: {\\"n\\":55.16988554127514,\\"s\\":\\"sawtooth\\",\\"gain\\":0.16,\\"cutoff\\":500,\\"attack\\":1}",
-  "0/1 -> 3/2: {\\"n\\":59.16988554127514,\\"s\\":\\"sawtooth\\",\\"gain\\":0.16,\\"cutoff\\":500,\\"attack\\":1}",
-  "0/1 -> 3/2: {\\"n\\":60.16988554127514,\\"s\\":\\"sawtooth\\",\\"gain\\":0.16,\\"cutoff\\":500,\\"attack\\":1}",
-  "0/1 -> 3/2: {\\"n\\":64.16988554127515,\\"s\\":\\"sawtooth\\",\\"gain\\":0.16,\\"cutoff\\":500,\\"attack\\":1}",
-  "3/16 -> 3/8: {\\"n\\":69.01266877519555,\\"decay\\":0.1,\\"sustain\\":0,\\"s\\":\\"triangle\\",\\"gain\\":0.15}",
-  "3/8 -> 9/16: {\\"n\\":69.04676036055696,\\"decay\\":0.1,\\"sustain\\":0,\\"s\\":\\"triangle\\",\\"gain\\":0.15}",
-  "3/8 -> 9/16: {\\"n\\":72.04676036055696,\\"decay\\":0.1,\\"sustain\\":0,\\"s\\":\\"triangle\\",\\"gain\\":0.15}",
-  "3/4 -> 15/16: {\\"n\\":72.16001184806132,\\"decay\\":0.1,\\"sustain\\":0,\\"s\\":\\"triangle\\",\\"gain\\":0.15}",
-  "15/16 -> 9/8: {\\"n\\":72.21301072199333,\\"decay\\":0.1,\\"sustain\\":0,\\"s\\":\\"triangle\\",\\"gain\\":0.15}",
-  "3/16 -> 3/8: {\\"n\\":69.05266877519557,\\"decay\\":0.1,\\"sustain\\":0,\\"s\\":\\"triangle\\",\\"gain\\":0.15}",
-  "3/8 -> 9/16: {\\"n\\":69.08676036055695,\\"decay\\":0.1,\\"sustain\\":0,\\"s\\":\\"triangle\\",\\"gain\\":0.15}",
-  "3/8 -> 9/16: {\\"n\\":72.08676036055695,\\"decay\\":0.1,\\"sustain\\":0,\\"s\\":\\"triangle\\",\\"gain\\":0.15}",
-  "3/4 -> 15/16: {\\"n\\":72.20001184806131,\\"decay\\":0.1,\\"sustain\\":0,\\"s\\":\\"triangle\\",\\"gain\\":0.15}",
-  "15/16 -> 9/8: {\\"n\\":72.25301072199335,\\"decay\\":0.1,\\"sustain\\":0,\\"s\\":\\"triangle\\",\\"gain\\":0.15}",
-  "0/1 -> 3/16: {\\"n\\":93.00057728554401,\\"decay\\":0.1,\\"sustain\\":0,\\"s\\":\\"triangle\\",\\"gain\\":0.075}",
-  "0/1 -> 3/16: {\\"n\\":93.04057728554402,\\"decay\\":0.1,\\"sustain\\":0,\\"s\\":\\"triangle\\",\\"gain\\":0.075}",
-  "3/8 -> 9/16: {\\"n\\":69.01266877519555,\\"decay\\":0.1,\\"sustain\\":0,\\"s\\":\\"triangle\\",\\"gain\\":0.075}",
-  "9/16 -> 3/4: {\\"n\\":69.04676036055696,\\"decay\\":0.1,\\"sustain\\":0,\\"s\\":\\"triangle\\",\\"gain\\":0.075}",
-  "9/16 -> 3/4: {\\"n\\":72.04676036055696,\\"decay\\":0.1,\\"sustain\\":0,\\"s\\":\\"triangle\\",\\"gain\\":0.075}",
-  "15/16 -> 9/8: {\\"n\\":72.16001184806132,\\"decay\\":0.1,\\"sustain\\":0,\\"s\\":\\"triangle\\",\\"gain\\":0.075}",
-  "3/8 -> 9/16: {\\"n\\":69.05266877519557,\\"decay\\":0.1,\\"sustain\\":0,\\"s\\":\\"triangle\\",\\"gain\\":0.075}",
-  "9/16 -> 3/4: {\\"n\\":69.08676036055695,\\"decay\\":0.1,\\"sustain\\":0,\\"s\\":\\"triangle\\",\\"gain\\":0.075}",
-  "9/16 -> 3/4: {\\"n\\":72.08676036055695,\\"decay\\":0.1,\\"sustain\\":0,\\"s\\":\\"triangle\\",\\"gain\\":0.075}",
-  "15/16 -> 9/8: {\\"n\\":72.20001184806131,\\"decay\\":0.1,\\"sustain\\":0,\\"s\\":\\"triangle\\",\\"gain\\":0.075}",
-  "3/16 -> 3/8: {\\"n\\":93.00057728554401,\\"decay\\":0.1,\\"sustain\\":0,\\"s\\":\\"triangle\\",\\"gain\\":0.049999999999999996}",
-  "3/16 -> 3/8: {\\"n\\":93.04057728554402,\\"decay\\":0.1,\\"sustain\\":0,\\"s\\":\\"triangle\\",\\"gain\\":0.049999999999999996}",
-  "9/16 -> 3/4: {\\"n\\":69.01266877519555,\\"decay\\":0.1,\\"sustain\\":0,\\"s\\":\\"triangle\\",\\"gain\\":0.049999999999999996}",
-  "3/4 -> 15/16: {\\"n\\":69.04676036055696,\\"decay\\":0.1,\\"sustain\\":0,\\"s\\":\\"triangle\\",\\"gain\\":0.049999999999999996}",
-  "3/4 -> 15/16: {\\"n\\":72.04676036055696,\\"decay\\":0.1,\\"sustain\\":0,\\"s\\":\\"triangle\\",\\"gain\\":0.049999999999999996}",
-  "9/16 -> 3/4: {\\"n\\":69.05266877519557,\\"decay\\":0.1,\\"sustain\\":0,\\"s\\":\\"triangle\\",\\"gain\\":0.049999999999999996}",
-  "3/4 -> 15/16: {\\"n\\":69.08676036055695,\\"decay\\":0.1,\\"sustain\\":0,\\"s\\":\\"triangle\\",\\"gain\\":0.049999999999999996}",
-  "3/4 -> 15/16: {\\"n\\":72.08676036055695,\\"decay\\":0.1,\\"sustain\\":0,\\"s\\":\\"triangle\\",\\"gain\\":0.049999999999999996}",
-  "0/1 -> 3/16: {\\"n\\":72.0468455057745,\\"decay\\":0.1,\\"sustain\\":0,\\"s\\":\\"triangle\\",\\"gain\\":0.0375}",
-  "0/1 -> 3/16: {\\"n\\":93.0468455057745,\\"decay\\":0.1,\\"sustain\\":0,\\"s\\":\\"triangle\\",\\"gain\\":0.0375}",
-  "3/8 -> 9/16: {\\"n\\":93.00057728554401,\\"decay\\":0.1,\\"sustain\\":0,\\"s\\":\\"triangle\\",\\"gain\\":0.0375}",
-  "0/1 -> 3/16: {\\"n\\":72.0868455057745,\\"decay\\":0.1,\\"sustain\\":0,\\"s\\":\\"triangle\\",\\"gain\\":0.0375}",
-  "0/1 -> 3/16: {\\"n\\":93.0868455057745,\\"decay\\":0.1,\\"sustain\\":0,\\"s\\":\\"triangle\\",\\"gain\\":0.0375}",
-  "3/8 -> 9/16: {\\"n\\":93.04057728554402,\\"decay\\":0.1,\\"sustain\\":0,\\"s\\":\\"triangle\\",\\"gain\\":0.0375}",
-  "3/4 -> 15/16: {\\"n\\":69.01266877519555,\\"decay\\":0.1,\\"sustain\\":0,\\"s\\":\\"triangle\\",\\"gain\\":0.0375}",
-  "15/16 -> 9/8: {\\"n\\":69.04676036055696,\\"decay\\":0.1,\\"sustain\\":0,\\"s\\":\\"triangle\\",\\"gain\\":0.0375}",
-  "3/4 -> 15/16: {\\"n\\":69.05266877519557,\\"decay\\":0.1,\\"sustain\\":0,\\"s\\":\\"triangle\\",\\"gain\\":0.0375}",
-  "15/16 -> 9/8: {\\"n\\":69.08676036055695,\\"decay\\":0.1,\\"sustain\\":0,\\"s\\":\\"triangle\\",\\"gain\\":0.0375}",
-]
-`;
-
-exports[`renders shared tunes > shared tune 306 https://strudel.cc/?UboMuFOnT0hy 1`] = `
-[
-  "0/1 -> 1/3: {\\"s\\":\\"bd\\"}",
-  "1/3 -> 2/3: {\\"s\\":\\"hh\\"}",
-  "2/3 -> 1/1: {\\"s\\":\\"sn\\"}",
-  "0/1 -> 1/20: {\\"note\\":\\"G4\\",\\"s\\":\\"rhodes\\",\\"clip\\":1,\\"room\\":0.5,\\"delay\\":0.3,\\"delayfeedback\\":0.4,\\"delaytime\\":0.08333333333333333,\\"gain\\":0.5}",
-  "1/6 -> 13/60: {\\"note\\":\\"G4\\",\\"s\\":\\"rhodes\\",\\"clip\\":1,\\"room\\":0.5,\\"delay\\":0.3,\\"delayfeedback\\":0.4,\\"delaytime\\":0.08333333333333333,\\"gain\\":0.5}",
-  "1/3 -> 23/60: {\\"note\\":\\"B3\\",\\"s\\":\\"rhodes\\",\\"clip\\":1,\\"room\\":0.5,\\"delay\\":0.3,\\"delayfeedback\\":0.4,\\"delaytime\\":0.08333333333333333,\\"gain\\":0.5}",
-  "1/2 -> 11/20: {\\"note\\":\\"B3\\",\\"s\\":\\"rhodes\\",\\"clip\\":1,\\"room\\":0.5,\\"delay\\":0.3,\\"delayfeedback\\":0.4,\\"delaytime\\":0.08333333333333333,\\"gain\\":0.5}",
-  "1/3 -> 23/60: {\\"note\\":\\"E4\\",\\"s\\":\\"rhodes\\",\\"clip\\":1,\\"room\\":0.5,\\"delay\\":0.3,\\"delayfeedback\\":0.4,\\"delaytime\\":0.08333333333333333,\\"gain\\":0.5}",
-  "1/2 -> 11/20: {\\"note\\":\\"E4\\",\\"s\\":\\"rhodes\\",\\"clip\\":1,\\"room\\":0.5,\\"delay\\":0.3,\\"delayfeedback\\":0.4,\\"delaytime\\":0.08333333333333333,\\"gain\\":0.5}",
-  "2/3 -> 43/60: {\\"note\\":\\"G3\\",\\"s\\":\\"rhodes\\",\\"clip\\":1,\\"room\\":0.5,\\"delay\\":0.3,\\"delayfeedback\\":0.4,\\"delaytime\\":0.08333333333333333,\\"gain\\":0.5}",
-  "5/6 -> 53/60: {\\"note\\":\\"G3\\",\\"s\\":\\"rhodes\\",\\"clip\\":1,\\"room\\":0.5,\\"delay\\":0.3,\\"delayfeedback\\":0.4,\\"delaytime\\":0.08333333333333333,\\"gain\\":0.5}",
-  "0/1 -> 4/3: {\\"note\\":\\"c2\\",\\"gain\\":0.3,\\"s\\":\\"sawtooth\\",\\"cutoff\\":600}",
-  "0/1 -> 4/3: {\\"note\\":\\"c2\\",\\"gain\\":0.3,\\"s\\":\\"sawtooth\\",\\"cutoff\\":600}",
-  "0/1 -> 4/3: {\\"note\\":36.02,\\"gain\\":0.3,\\"s\\":\\"sawtooth\\",\\"cutoff\\":600}",
-  "0/1 -> 4/3: {\\"note\\":36.02,\\"gain\\":0.3,\\"s\\":\\"sawtooth\\",\\"cutoff\\":600}",
-]
-`;
-
-exports[`renders shared tunes > shared tune 307 https://strudel.cc/?vYFGpZ6XObVG 1`] = `
-[
-  "0/1 -> 1/3: {\\"s\\":\\"bd\\"}",
-  "1/3 -> 2/3: {\\"s\\":\\"hh\\"}",
-  "2/3 -> 1/1: {\\"s\\":\\"sn\\"}",
-  "0/1 -> 1/20: {\\"note\\":\\"G4\\",\\"s\\":\\"rhodes\\",\\"clip\\":1,\\"room\\":0.5,\\"delay\\":0.3,\\"delayfeedback\\":0.4,\\"delaytime\\":0.08333333333333333,\\"gain\\":0.5}",
-  "1/6 -> 13/60: {\\"note\\":\\"G4\\",\\"s\\":\\"rhodes\\",\\"clip\\":1,\\"room\\":0.5,\\"delay\\":0.3,\\"delayfeedback\\":0.4,\\"delaytime\\":0.08333333333333333,\\"gain\\":0.5}",
-  "1/3 -> 23/60: {\\"note\\":\\"B3\\",\\"s\\":\\"rhodes\\",\\"clip\\":1,\\"room\\":0.5,\\"delay\\":0.3,\\"delayfeedback\\":0.4,\\"delaytime\\":0.08333333333333333,\\"gain\\":0.5}",
-  "1/2 -> 11/20: {\\"note\\":\\"B3\\",\\"s\\":\\"rhodes\\",\\"clip\\":1,\\"room\\":0.5,\\"delay\\":0.3,\\"delayfeedback\\":0.4,\\"delaytime\\":0.08333333333333333,\\"gain\\":0.5}",
-  "1/3 -> 23/60: {\\"note\\":\\"E4\\",\\"s\\":\\"rhodes\\",\\"clip\\":1,\\"room\\":0.5,\\"delay\\":0.3,\\"delayfeedback\\":0.4,\\"delaytime\\":0.08333333333333333,\\"gain\\":0.5}",
-  "1/2 -> 11/20: {\\"note\\":\\"E4\\",\\"s\\":\\"rhodes\\",\\"clip\\":1,\\"room\\":0.5,\\"delay\\":0.3,\\"delayfeedback\\":0.4,\\"delaytime\\":0.08333333333333333,\\"gain\\":0.5}",
-  "2/3 -> 43/60: {\\"note\\":\\"G3\\",\\"s\\":\\"rhodes\\",\\"clip\\":1,\\"room\\":0.5,\\"delay\\":0.3,\\"delayfeedback\\":0.4,\\"delaytime\\":0.08333333333333333,\\"gain\\":0.5}",
-  "5/6 -> 53/60: {\\"note\\":\\"G3\\",\\"s\\":\\"rhodes\\",\\"clip\\":1,\\"room\\":0.5,\\"delay\\":0.3,\\"delayfeedback\\":0.4,\\"delaytime\\":0.08333333333333333,\\"gain\\":0.5}",
-  "0/1 -> 4/3: {\\"note\\":\\"c2\\",\\"gain\\":0.3,\\"s\\":\\"sawtooth\\",\\"cutoff\\":600}",
-  "0/1 -> 4/3: {\\"note\\":\\"c2\\",\\"gain\\":0.3,\\"s\\":\\"sawtooth\\",\\"cutoff\\":600}",
-  "0/1 -> 4/3: {\\"note\\":36.02,\\"gain\\":0.3,\\"s\\":\\"sawtooth\\",\\"cutoff\\":600}",
-  "0/1 -> 4/3: {\\"note\\":36.02,\\"gain\\":0.3,\\"s\\":\\"sawtooth\\",\\"cutoff\\":600}",
-]
-`;
-
-exports[`renders shared tunes > shared tune 308 https://strudel.cc/?TUw_9DfBSsiW 1`] = `
-[
-  "0/1 -> 2/3: {\\"s\\":\\"bd\\",\\"speed\\":0.7519542165100574}",
-  "1/3 -> 2/3: {\\"s\\":\\"sd\\",\\"speed\\":0.7931522866332671}",
-  "1/6 -> 1/3: {\\"s\\":\\"hh\\",\\"speed\\":0.7285963821098448}",
-  "1/3 -> 1/2: {\\"s\\":\\"hh\\",\\"speed\\":0.77531205091027}",
-  "1/2 -> 2/3: {\\"s\\":\\"hh\\",\\"speed\\":0.80224046928206}",
-  "2/3 -> 4/3: {\\"s\\":\\"bd\\",\\"speed\\":0.8479069285094738}",
-  "5/6 -> 1/1: {\\"s\\":\\"hh\\",\\"speed\\":0.8281258666335816}",
-  "0/1 -> 2/3: {\\"n\\":33.129885541275144,\\"decay\\":0.15,\\"sustain\\":0,\\"s\\":\\"sawtooth\\",\\"gain\\":0.4,\\"cutoff\\":3669.6267869262615}",
-  "2/3 -> 1/1: {\\"n\\":35.28254374134849,\\"decay\\":0.15,\\"sustain\\":0,\\"s\\":\\"sawtooth\\",\\"gain\\":0.4,\\"cutoff\\":4767.276839570684}",
-  "0/1 -> 2/3: {\\"n\\":33.17988554127514,\\"decay\\":0.15,\\"sustain\\":0,\\"s\\":\\"sawtooth\\",\\"gain\\":0.4,\\"cutoff\\":3669.6267869262615}",
-  "2/3 -> 1/1: {\\"n\\":35.33254374134849,\\"decay\\":0.15,\\"sustain\\":0,\\"s\\":\\"sawtooth\\",\\"gain\\":0.4,\\"cutoff\\":4767.276839570684}",
-  "0/1 -> 2/3: {\\"n\\":55.129885541275144,\\"s\\":\\"sawtooth\\",\\"gain\\":0.16,\\"cutoff\\":500,\\"attack\\":1}",
-  "0/1 -> 2/3: {\\"n\\":55.129885541275144,\\"s\\":\\"sawtooth\\",\\"gain\\":0.16,\\"cutoff\\":500,\\"attack\\":1}",
-  "0/1 -> 2/3: {\\"n\\":59.129885541275144,\\"s\\":\\"sawtooth\\",\\"gain\\":0.16,\\"cutoff\\":500,\\"attack\\":1}",
-  "0/1 -> 2/3: {\\"n\\":59.129885541275144,\\"s\\":\\"sawtooth\\",\\"gain\\":0.16,\\"cutoff\\":500,\\"attack\\":1}",
-  "0/1 -> 2/3: {\\"n\\":60.129885541275144,\\"s\\":\\"sawtooth\\",\\"gain\\":0.16,\\"cutoff\\":500,\\"attack\\":1}",
-  "0/1 -> 2/3: {\\"n\\":60.129885541275144,\\"s\\":\\"sawtooth\\",\\"gain\\":0.16,\\"cutoff\\":500,\\"attack\\":1}",
-  "0/1 -> 2/3: {\\"n\\":64.12988554127514,\\"s\\":\\"sawtooth\\",\\"gain\\":0.16,\\"cutoff\\":500,\\"attack\\":1}",
-  "0/1 -> 2/3: {\\"n\\":64.12988554127514,\\"s\\":\\"sawtooth\\",\\"gain\\":0.16,\\"cutoff\\":500,\\"attack\\":1}",
-  "2/3 -> 4/3: {\\"n\\":55.369767321273685,\\"s\\":\\"sawtooth\\",\\"gain\\":0.16,\\"cutoff\\":500,\\"attack\\":1}",
-  "2/3 -> 4/3: {\\"n\\":55.369767321273685,\\"s\\":\\"sawtooth\\",\\"gain\\":0.16,\\"cutoff\\":500,\\"attack\\":1}",
-  "2/3 -> 4/3: {\\"n\\":59.369767321273685,\\"s\\":\\"sawtooth\\",\\"gain\\":0.16,\\"cutoff\\":500,\\"attack\\":1}",
-  "2/3 -> 4/3: {\\"n\\":59.369767321273685,\\"s\\":\\"sawtooth\\",\\"gain\\":0.16,\\"cutoff\\":500,\\"attack\\":1}",
-  "2/3 -> 4/3: {\\"n\\":60.369767321273685,\\"s\\":\\"sawtooth\\",\\"gain\\":0.16,\\"cutoff\\":500,\\"attack\\":1}",
-  "2/3 -> 4/3: {\\"n\\":60.369767321273685,\\"s\\":\\"sawtooth\\",\\"gain\\":0.16,\\"cutoff\\":500,\\"attack\\":1}",
-  "2/3 -> 4/3: {\\"n\\":64.36976732127368,\\"s\\":\\"sawtooth\\",\\"gain\\":0.16,\\"cutoff\\":500,\\"attack\\":1}",
-  "2/3 -> 4/3: {\\"n\\":64.36976732127368,\\"s\\":\\"sawtooth\\",\\"gain\\":0.16,\\"cutoff\\":500,\\"attack\\":1}",
-  "0/1 -> 2/3: {\\"n\\":55.16988554127514,\\"s\\":\\"sawtooth\\",\\"gain\\":0.16,\\"cutoff\\":500,\\"attack\\":1}",
-  "0/1 -> 2/3: {\\"n\\":55.16988554127514,\\"s\\":\\"sawtooth\\",\\"gain\\":0.16,\\"cutoff\\":500,\\"attack\\":1}",
-  "0/1 -> 2/3: {\\"n\\":59.16988554127514,\\"s\\":\\"sawtooth\\",\\"gain\\":0.16,\\"cutoff\\":500,\\"attack\\":1}",
-  "0/1 -> 2/3: {\\"n\\":59.16988554127514,\\"s\\":\\"sawtooth\\",\\"gain\\":0.16,\\"cutoff\\":500,\\"attack\\":1}",
-  "0/1 -> 2/3: {\\"n\\":60.16988554127514,\\"s\\":\\"sawtooth\\",\\"gain\\":0.16,\\"cutoff\\":500,\\"attack\\":1}",
-  "0/1 -> 2/3: {\\"n\\":60.16988554127514,\\"s\\":\\"sawtooth\\",\\"gain\\":0.16,\\"cutoff\\":500,\\"attack\\":1}",
-  "0/1 -> 2/3: {\\"n\\":64.16988554127515,\\"s\\":\\"sawtooth\\",\\"gain\\":0.16,\\"cutoff\\":500,\\"attack\\":1}",
-  "0/1 -> 2/3: {\\"n\\":64.16988554127515,\\"s\\":\\"sawtooth\\",\\"gain\\":0.16,\\"cutoff\\":500,\\"attack\\":1}",
-  "2/3 -> 4/3: {\\"n\\":55.409767321273684,\\"s\\":\\"sawtooth\\",\\"gain\\":0.16,\\"cutoff\\":500,\\"attack\\":1}",
-  "2/3 -> 4/3: {\\"n\\":55.409767321273684,\\"s\\":\\"sawtooth\\",\\"gain\\":0.16,\\"cutoff\\":500,\\"attack\\":1}",
-  "2/3 -> 4/3: {\\"n\\":59.409767321273684,\\"s\\":\\"sawtooth\\",\\"gain\\":0.16,\\"cutoff\\":500,\\"attack\\":1}",
-  "2/3 -> 4/3: {\\"n\\":59.409767321273684,\\"s\\":\\"sawtooth\\",\\"gain\\":0.16,\\"cutoff\\":500,\\"attack\\":1}",
-  "2/3 -> 4/3: {\\"n\\":60.409767321273684,\\"s\\":\\"sawtooth\\",\\"gain\\":0.16,\\"cutoff\\":500,\\"attack\\":1}",
-  "2/3 -> 4/3: {\\"n\\":60.409767321273684,\\"s\\":\\"sawtooth\\",\\"gain\\":0.16,\\"cutoff\\":500,\\"attack\\":1}",
-  "2/3 -> 4/3: {\\"n\\":64.40976732127369,\\"s\\":\\"sawtooth\\",\\"gain\\":0.16,\\"cutoff\\":500,\\"attack\\":1}",
-  "2/3 -> 4/3: {\\"n\\":64.40976732127369,\\"s\\":\\"sawtooth\\",\\"gain\\":0.16,\\"cutoff\\":500,\\"attack\\":1}",
-  "1/12 -> 1/6: {\\"n\\":69.01266877519555,\\"decay\\":0.1,\\"sustain\\":0,\\"s\\":\\"triangle\\",\\"gain\\":0.15}",
-  "1/6 -> 1/4: {\\"n\\":69.04676036055696,\\"decay\\":0.1,\\"sustain\\":0,\\"s\\":\\"triangle\\",\\"gain\\":0.15}",
-  "1/6 -> 1/4: {\\"n\\":72.04676036055696,\\"decay\\":0.1,\\"sustain\\":0,\\"s\\":\\"triangle\\",\\"gain\\":0.15}",
-  "1/3 -> 5/12: {\\"n\\":72.16001184806132,\\"decay\\":0.1,\\"sustain\\":0,\\"s\\":\\"triangle\\",\\"gain\\":0.15}",
-  "5/12 -> 1/2: {\\"n\\":72.21301072199333,\\"decay\\":0.1,\\"sustain\\":0,\\"s\\":\\"triangle\\",\\"gain\\":0.15}",
-  "5/12 -> 1/2: {\\"n\\":88.21301072199333,\\"decay\\":0.1,\\"sustain\\":0,\\"s\\":\\"triangle\\",\\"gain\\":0.15}",
-  "7/12 -> 2/3: {\\"n\\":88.25919484626601,\\"decay\\":0.1,\\"sustain\\":0,\\"s\\":\\"triangle\\",\\"gain\\":0.15}",
-  "1/12 -> 1/6: {\\"n\\":69.05266877519557,\\"decay\\":0.1,\\"sustain\\":0,\\"s\\":\\"triangle\\",\\"gain\\":0.15}",
-  "1/6 -> 1/4: {\\"n\\":69.08676036055695,\\"decay\\":0.1,\\"sustain\\":0,\\"s\\":\\"triangle\\",\\"gain\\":0.15}",
-  "1/6 -> 1/4: {\\"n\\":72.08676036055695,\\"decay\\":0.1,\\"sustain\\":0,\\"s\\":\\"triangle\\",\\"gain\\":0.15}",
-  "1/3 -> 5/12: {\\"n\\":72.20001184806131,\\"decay\\":0.1,\\"sustain\\":0,\\"s\\":\\"triangle\\",\\"gain\\":0.15}",
-  "5/12 -> 1/2: {\\"n\\":72.25301072199335,\\"decay\\":0.1,\\"sustain\\":0,\\"s\\":\\"triangle\\",\\"gain\\":0.15}",
-  "5/12 -> 1/2: {\\"n\\":88.25301072199335,\\"decay\\":0.1,\\"sustain\\":0,\\"s\\":\\"triangle\\",\\"gain\\":0.15}",
-  "7/12 -> 2/3: {\\"n\\":88.29919484626603,\\"decay\\":0.1,\\"sustain\\":0,\\"s\\":\\"triangle\\",\\"gain\\":0.15}",
-  "0/1 -> 1/12: {\\"n\\":93.00057728554401,\\"decay\\":0.1,\\"sustain\\":0,\\"s\\":\\"triangle\\",\\"gain\\":0.075}",
-  "0/1 -> 1/12: {\\"n\\":93.04057728554402,\\"decay\\":0.1,\\"sustain\\":0,\\"s\\":\\"triangle\\",\\"gain\\":0.075}",
-  "1/6 -> 1/4: {\\"n\\":69.01266877519555,\\"decay\\":0.1,\\"sustain\\":0,\\"s\\":\\"triangle\\",\\"gain\\":0.075}",
-  "1/4 -> 1/3: {\\"n\\":69.04676036055696,\\"decay\\":0.1,\\"sustain\\":0,\\"s\\":\\"triangle\\",\\"gain\\":0.075}",
-  "1/4 -> 1/3: {\\"n\\":72.04676036055696,\\"decay\\":0.1,\\"sustain\\":0,\\"s\\":\\"triangle\\",\\"gain\\":0.075}",
-  "5/12 -> 1/2: {\\"n\\":72.16001184806132,\\"decay\\":0.1,\\"sustain\\":0,\\"s\\":\\"triangle\\",\\"gain\\":0.075}",
-  "1/2 -> 7/12: {\\"n\\":72.21301072199333,\\"decay\\":0.1,\\"sustain\\":0,\\"s\\":\\"triangle\\",\\"gain\\":0.075}",
-  "1/2 -> 7/12: {\\"n\\":88.21301072199333,\\"decay\\":0.1,\\"sustain\\":0,\\"s\\":\\"triangle\\",\\"gain\\":0.075}",
-  "1/6 -> 1/4: {\\"n\\":69.05266877519557,\\"decay\\":0.1,\\"sustain\\":0,\\"s\\":\\"triangle\\",\\"gain\\":0.075}",
-  "1/4 -> 1/3: {\\"n\\":69.08676036055695,\\"decay\\":0.1,\\"sustain\\":0,\\"s\\":\\"triangle\\",\\"gain\\":0.075}",
-  "1/4 -> 1/3: {\\"n\\":72.08676036055695,\\"decay\\":0.1,\\"sustain\\":0,\\"s\\":\\"triangle\\",\\"gain\\":0.075}",
-  "5/12 -> 1/2: {\\"n\\":72.20001184806131,\\"decay\\":0.1,\\"sustain\\":0,\\"s\\":\\"triangle\\",\\"gain\\":0.075}",
-  "1/2 -> 7/12: {\\"n\\":72.25301072199335,\\"decay\\":0.1,\\"sustain\\":0,\\"s\\":\\"triangle\\",\\"gain\\":0.075}",
-  "1/2 -> 7/12: {\\"n\\":88.25301072199335,\\"decay\\":0.1,\\"sustain\\":0,\\"s\\":\\"triangle\\",\\"gain\\":0.075}",
-  "1/12 -> 1/6: {\\"n\\":93.00057728554401,\\"decay\\":0.1,\\"sustain\\":0,\\"s\\":\\"triangle\\",\\"gain\\":0.049999999999999996}",
-  "1/12 -> 1/6: {\\"n\\":93.04057728554402,\\"decay\\":0.1,\\"sustain\\":0,\\"s\\":\\"triangle\\",\\"gain\\":0.049999999999999996}",
-  "1/4 -> 1/3: {\\"n\\":69.01266877519555,\\"decay\\":0.1,\\"sustain\\":0,\\"s\\":\\"triangle\\",\\"gain\\":0.049999999999999996}",
-  "1/3 -> 5/12: {\\"n\\":69.04676036055696,\\"decay\\":0.1,\\"sustain\\":0,\\"s\\":\\"triangle\\",\\"gain\\":0.049999999999999996}",
-  "1/3 -> 5/12: {\\"n\\":72.04676036055696,\\"decay\\":0.1,\\"sustain\\":0,\\"s\\":\\"triangle\\",\\"gain\\":0.049999999999999996}",
-  "1/2 -> 7/12: {\\"n\\":72.16001184806132,\\"decay\\":0.1,\\"sustain\\":0,\\"s\\":\\"triangle\\",\\"gain\\":0.049999999999999996}",
-  "7/12 -> 2/3: {\\"n\\":72.21301072199333,\\"decay\\":0.1,\\"sustain\\":0,\\"s\\":\\"triangle\\",\\"gain\\":0.049999999999999996}",
-  "7/12 -> 2/3: {\\"n\\":88.21301072199333,\\"decay\\":0.1,\\"sustain\\":0,\\"s\\":\\"triangle\\",\\"gain\\":0.049999999999999996}",
-  "1/4 -> 1/3: {\\"n\\":69.05266877519557,\\"decay\\":0.1,\\"sustain\\":0,\\"s\\":\\"triangle\\",\\"gain\\":0.049999999999999996}",
-  "1/3 -> 5/12: {\\"n\\":69.08676036055695,\\"decay\\":0.1,\\"sustain\\":0,\\"s\\":\\"triangle\\",\\"gain\\":0.049999999999999996}",
-  "1/3 -> 5/12: {\\"n\\":72.08676036055695,\\"decay\\":0.1,\\"sustain\\":0,\\"s\\":\\"triangle\\",\\"gain\\":0.049999999999999996}",
-  "1/2 -> 7/12: {\\"n\\":72.20001184806131,\\"decay\\":0.1,\\"sustain\\":0,\\"s\\":\\"triangle\\",\\"gain\\":0.049999999999999996}",
-  "7/12 -> 2/3: {\\"n\\":72.25301072199335,\\"decay\\":0.1,\\"sustain\\":0,\\"s\\":\\"triangle\\",\\"gain\\":0.049999999999999996}",
-  "7/12 -> 2/3: {\\"n\\":88.25301072199335,\\"decay\\":0.1,\\"sustain\\":0,\\"s\\":\\"triangle\\",\\"gain\\":0.049999999999999996}",
-  "0/1 -> 1/12: {\\"n\\":72.0468455057745,\\"decay\\":0.1,\\"sustain\\":0,\\"s\\":\\"triangle\\",\\"gain\\":0.0375}",
-  "0/1 -> 1/12: {\\"n\\":93.0468455057745,\\"decay\\":0.1,\\"sustain\\":0,\\"s\\":\\"triangle\\",\\"gain\\":0.0375}",
-  "1/6 -> 1/4: {\\"n\\":93.00057728554401,\\"decay\\":0.1,\\"sustain\\":0,\\"s\\":\\"triangle\\",\\"gain\\":0.0375}",
-  "0/1 -> 1/12: {\\"n\\":72.0868455057745,\\"decay\\":0.1,\\"sustain\\":0,\\"s\\":\\"triangle\\",\\"gain\\":0.0375}",
-  "0/1 -> 1/12: {\\"n\\":93.0868455057745,\\"decay\\":0.1,\\"sustain\\":0,\\"s\\":\\"triangle\\",\\"gain\\":0.0375}",
-  "1/6 -> 1/4: {\\"n\\":93.04057728554402,\\"decay\\":0.1,\\"sustain\\":0,\\"s\\":\\"triangle\\",\\"gain\\":0.0375}",
-  "1/3 -> 5/12: {\\"n\\":69.01266877519555,\\"decay\\":0.1,\\"sustain\\":0,\\"s\\":\\"triangle\\",\\"gain\\":0.0375}",
-  "5/12 -> 1/2: {\\"n\\":69.04676036055696,\\"decay\\":0.1,\\"sustain\\":0,\\"s\\":\\"triangle\\",\\"gain\\":0.0375}",
-  "5/12 -> 1/2: {\\"n\\":72.04676036055696,\\"decay\\":0.1,\\"sustain\\":0,\\"s\\":\\"triangle\\",\\"gain\\":0.0375}",
-  "7/12 -> 2/3: {\\"n\\":72.16001184806132,\\"decay\\":0.1,\\"sustain\\":0,\\"s\\":\\"triangle\\",\\"gain\\":0.0375}",
-  "1/3 -> 5/12: {\\"n\\":69.05266877519557,\\"decay\\":0.1,\\"sustain\\":0,\\"s\\":\\"triangle\\",\\"gain\\":0.0375}",
-  "5/12 -> 1/2: {\\"n\\":69.08676036055695,\\"decay\\":0.1,\\"sustain\\":0,\\"s\\":\\"triangle\\",\\"gain\\":0.0375}",
-  "5/12 -> 1/2: {\\"n\\":72.08676036055695,\\"decay\\":0.1,\\"sustain\\":0,\\"s\\":\\"triangle\\",\\"gain\\":0.0375}",
-  "7/12 -> 2/3: {\\"n\\":72.20001184806131,\\"decay\\":0.1,\\"sustain\\":0,\\"s\\":\\"triangle\\",\\"gain\\":0.0375}",
-  "2/3 -> 3/4: {\\"n\\":88.25919484626601,\\"decay\\":0.1,\\"sustain\\":0,\\"s\\":\\"triangle\\",\\"gain\\":0.075}",
-  "2/3 -> 3/4: {\\"n\\":88.29919484626603,\\"decay\\":0.1,\\"sustain\\":0,\\"s\\":\\"triangle\\",\\"gain\\":0.075}",
-  "3/4 -> 5/6: {\\"n\\":88.25919484626601,\\"decay\\":0.1,\\"sustain\\":0,\\"s\\":\\"triangle\\",\\"gain\\":0.049999999999999996}",
-  "3/4 -> 5/6: {\\"n\\":88.29919484626603,\\"decay\\":0.1,\\"sustain\\":0,\\"s\\":\\"triangle\\",\\"gain\\":0.049999999999999996}",
-  "2/3 -> 3/4: {\\"n\\":72.21301072199333,\\"decay\\":0.1,\\"sustain\\":0,\\"s\\":\\"triangle\\",\\"gain\\":0.0375}",
-  "2/3 -> 3/4: {\\"n\\":88.21301072199333,\\"decay\\":0.1,\\"sustain\\":0,\\"s\\":\\"triangle\\",\\"gain\\":0.0375}",
-  "5/6 -> 11/12: {\\"n\\":88.25919484626601,\\"decay\\":0.1,\\"sustain\\":0,\\"s\\":\\"triangle\\",\\"gain\\":0.0375}",
-  "2/3 -> 3/4: {\\"n\\":72.25301072199335,\\"decay\\":0.1,\\"sustain\\":0,\\"s\\":\\"triangle\\",\\"gain\\":0.0375}",
-  "2/3 -> 3/4: {\\"n\\":88.25301072199335,\\"decay\\":0.1,\\"sustain\\":0,\\"s\\":\\"triangle\\",\\"gain\\":0.0375}",
-  "5/6 -> 11/12: {\\"n\\":88.29919484626603,\\"decay\\":0.1,\\"sustain\\":0,\\"s\\":\\"triangle\\",\\"gain\\":0.0375}",
-]
-`;
-
-exports[`renders shared tunes > shared tune 309 https://strudel.cc/?ctHqwq-97t6X 1`] = `
-[
-  "0/1 -> 1/2: {\\"s\\":\\"bd\\",\\"delay\\":0.5,\\"delaytime\\":0.33,\\"delayfeedback\\":0.6,\\"speed\\":-1}",
-  "1/2 -> 1/1: {\\"s\\":\\"sd\\",\\"delay\\":0.5,\\"delaytime\\":0.33,\\"delayfeedback\\":0.6,\\"speed\\":-1}",
-  "0/1 -> 1/2: {\\"s\\":\\"hh\\",\\"delay\\":0.8,\\"delaytime\\":0.08,\\"delayfeedback\\":0.7,\\"orbit\\":2,\\"speed\\":-1}",
-  "1/2 -> 1/1: {\\"s\\":\\"hh\\",\\"delay\\":0.8,\\"delaytime\\":0.08,\\"delayfeedback\\":0.7,\\"orbit\\":2,\\"speed\\":-1}",
-]
-`;
diff --git a/undocumented.json b/undocumented.json
index 63f5d36b..8a38f205 100644
--- a/undocumented.json
+++ b/undocumented.json
@@ -649,7 +649,7 @@
   "/packages/webaudio/webaudio.mjs": [
     "webaudioOutputTrigger",
     "webaudioOutput",
-    "webaudioScheduler"
+    "webaudioRepl"
   ],
   "/packages/webaudio/scope.mjs": [
     "drawTimeScope",
diff --git a/website/.gitignore b/website/.gitignore
index 02f6e50b..60c587b1 100644
--- a/website/.gitignore
+++ b/website/.gitignore
@@ -17,3 +17,6 @@ pnpm-debug.log*
 
 # macOS-specific files
 .DS_Store
+
+public/tree-sitter.wasm
+public/tree-sitter-haskell.wasm
\ No newline at end of file
diff --git a/website/package.json b/website/package.json
index bf56d983..942fee9c 100644
--- a/website/package.json
+++ b/website/package.json
@@ -9,7 +9,8 @@
     "check": "astro check && tsc",
     "build": "astro build",
     "preview": "astro preview --port 3009 --host 0.0.0.0",
-    "astro": "astro"
+    "astro": "astro",
+    "postinstall": "cp node_modules/hs2js/dist/tree-sitter.wasm public && cp node_modules/hs2js/dist/tree-sitter-haskell.wasm public"
   },
   "dependencies": {
     "@algolia/client-search": "^4.22.0",
@@ -39,6 +40,7 @@
     "@strudel/transpiler": "workspace:*",
     "@strudel/webaudio": "workspace:*",
     "@strudel/xen": "workspace:*",
+    "@strudel/tidal": "workspace:*",
     "@supabase/supabase-js": "^2.39.1",
     "@tailwindcss/forms": "^0.5.7",
     "@tailwindcss/typography": "^0.5.10",
@@ -49,6 +51,7 @@
     "astro": "^4.0.8",
     "claviature": "^0.1.0",
     "date-fns": "^3.2.0",
+    "hs2js": "0.0.8",
     "nanoid": "^5.0.4",
     "nanostores": "^0.9.5",
     "react": "^18.2.0",
diff --git a/website/src/docs/MiniRepl.jsx b/website/src/docs/MiniRepl.jsx
index cadebcb3..03e3d6d3 100644
--- a/website/src/docs/MiniRepl.jsx
+++ b/website/src/docs/MiniRepl.jsx
@@ -6,15 +6,15 @@ import { transpiler } from '@strudel/transpiler';
 import { getAudioContext, webaudioOutput, initAudioOnFirstClick } from '@strudel/webaudio';
 import { StrudelMirror } from '@strudel/codemirror';
 import { prebake } from '../repl/prebake.mjs';
-import { loadModules } from '../repl/util.mjs';
+import { loadModules, setVersionDefaultsFrom } from '../repl/util.mjs';
 import Claviature from '@components/Claviature';
 import useClient from '@src/useClient.mjs';
 
-let prebaked, modulesLoading, audioLoading;
+let prebaked, modulesLoading, audioReady;
 if (typeof window !== 'undefined') {
   prebaked = prebake();
   modulesLoading = loadModules();
-  audioLoading = initAudioOnFirstClick();
+  audioReady = initAudioOnFirstClick();
 }
 
 export function MiniRepl({
@@ -69,10 +69,12 @@ export function MiniRepl({
         }
         return pat;
       },
-      prebake: async () => Promise.all([modulesLoading, prebaked, audioLoading]),
+      prebake: async () => Promise.all([modulesLoading, prebaked]),
       onUpdateState: (state) => {
         setReplState({ ...state });
       },
+      beforeEval: () => audioReady, // not doing this in prebake to make sure viz is drawn
+      afterEval: ({ code }) => setVersionDefaultsFrom(code),
     });
     // init settings
     editor.setCode(code);
diff --git a/website/src/examples.mjs b/website/src/examples.mjs
index 61132dfa..83c77a9c 100644
--- a/website/src/examples.mjs
+++ b/website/src/examples.mjs
@@ -1,5 +1,6 @@
 export const examples = [
   `// "coastline" @by eddyflux
+// @version 1.0
 samples('github:eddyflux/crate')
 setcps(.75)
 let chords = chord("/4").dict('ireal')
@@ -18,7 +19,7 @@ stack(
   n("<0!3 1*2>").set(chords).mode("root:g2")
   .voicing().s("gm_acoustic_bass"),
   chords.n("[0 <4 3 <2 5>>*2](<3 5>,8)")
-  .set(x).anchor("D5").voicing()
+  .anchor("D5").voicing()
   .segment(4).clip(rand.range(.4,.8))
   .room(.75).shape(.3).delay(.25)
   .fm(sine.range(3,8).slow(8))
@@ -29,6 +30,7 @@ stack(
 )
 .late("[0 .01]*4").late("[0 .01]*2").size(4)`,
   `// "broken cut 1" @by froos
+// @version 1.0
 
 samples('github:tidalcycles/dirt-samples')
 samples({
@@ -56,6 +58,7 @@ note("[c2 ~](3,8)*2,eb,g,bb,d").s("sawtooth")
     s("?").delay(".8:.1:.8").room(2).slow(8).cut(2),
   ).reset("".late(2))`,
   `// "acidic tooth" @by eddyflux
+// @version 1.0
   setcps(1)
   stack(
     note("[/8](<3 5>,8)")
diff --git a/website/src/pages/de/workshop/pattern-effects.mdx b/website/src/pages/de/workshop/pattern-effects.mdx
index c76c831d..3cf8fee6 100644
--- a/website/src/pages/de/workshop/pattern-effects.mdx
+++ b/website/src/pages/de/workshop/pattern-effects.mdx
@@ -147,7 +147,7 @@ Probier `ply` mit einem pattern zu automatisieren, z.b. `"<1 2 1 3>"`
   .off(1/8, x=>x.add(4))
   //.off(1/4, x=>x.add(7))
 ).scale("/4")
-.s("triangle").room(.5).ds(".1:0").delay(.5)`}
+.s("triangle").room(.5).dec(.1).delay(.5)`}
   punchcard
 />
 
diff --git a/website/src/pages/learn/effects.mdx b/website/src/pages/learn/effects.mdx
index 03ef6ef3..39f52e9f 100644
--- a/website/src/pages/learn/effects.mdx
+++ b/website/src/pages/learn/effects.mdx
@@ -94,7 +94,7 @@ Each filter can receive an additional filter envelope controlling the cutoff val
   client:idle
   tune={`note("[c eb g ](3,8,<0 1>)".sub(12))
   .s("/64")
-  .lpf(sine.range(500,3000).slow(16))
+  .lpf(sine.range(300,2000).slow(16))
   .lpa(0.005)
   .lpd(perlin.range(.02,.2))
   .lps(perlin.range(0,.5).slow(3))
@@ -106,7 +106,7 @@ Each filter can receive an additional filter envelope controlling the cutoff val
   .juxBy(.5,rev)
   .sometimes(add(note(12)))
   .stack(s("bd*2").bank('RolandTR909'))
-  .gain(.5)`}
+  .gain(.5).fast(2)`}
 />
 
 There is one filter envelope for each filter type and thus one set of envelope filter parameters preceded either by `lp`, `hp` or `bp`:
diff --git a/website/src/pages/learn/signals.mdx b/website/src/pages/learn/signals.mdx
index 7c9d69df..527e42be 100644
--- a/website/src/pages/learn/signals.mdx
+++ b/website/src/pages/learn/signals.mdx
@@ -55,4 +55,12 @@ There is also `saw2`, `sine2`, `cosine2`, `tri2`, `square2` and `rand2` which ha
 
 
 
+## mouseX
+
+
+
+## mouseY
+
+
+
 Next up: [Random Modifiers](/learn/random-modifiers)
diff --git a/website/src/pages/recipes/recipes.mdx b/website/src/pages/recipes/recipes.mdx
index 057743cb..dd195443 100644
--- a/website/src/pages/recipes/recipes.mdx
+++ b/website/src/pages/recipes/recipes.mdx
@@ -308,7 +308,7 @@ Running through different wavetables can also give interesting variations:
 
 
 ...adding a filter envelope + reverb:
@@ -317,6 +317,6 @@ note("c2*8").s("wt_dbass").n(run(8))`}
   client:visible
   tune={`samples('github:bubobubobubobubo/dough-waveforms')
 note("c2*8").s("wt_dbass").n(run(8))
-.lpf(perlin.range(200,2000).slow(8))
-.lpenv(-3).lpa(.1).room(.5)`}
+.lpf(perlin.range(100,1000).slow(8))
+.lpenv(-3).lpa(.1).room(.5).fast(2)`}
 />
diff --git a/website/src/pages/workshop/first-effects.mdx b/website/src/pages/workshop/first-effects.mdx
index 3450e78f..4a152224 100644
--- a/website/src/pages/workshop/first-effects.mdx
+++ b/website/src/pages/workshop/first-effects.mdx
@@ -205,7 +205,7 @@ note("[~ [<[d3,a3,f4]!2 [d3,bb3,g4]!2> ~]]*2")
 sound("").bank("RolandTR707").delay(.5),
 n("<4 [3@3 4] [<2 0> ~@16] ~>")
 .scale("D4:minor").sound("gm_accordion:2")
-room(2).gain(.5)
+.room(2).gain(.5)
 )`}
 />
 
@@ -262,7 +262,7 @@ By the way, inside Mini-Notation, `fast` is `*` and `slow` is `/`.
 
 ")`} />
 
-## automation with signals
+## modulation with signals
 
 Instead of changing values stepwise, we can also control them with signals:
 
@@ -290,7 +290,7 @@ What happens if you flip the range values?
 
 
 
-We can change the automation speed with slow / fast:
+We can change the modulation speed with slow / fast:
 
 
 
-The whole automation will now take 8 cycles to repeat.
+The whole modulation will now take 8 cycles to repeat.
 
 
 
diff --git a/website/src/pages/workshop/pattern-effects.mdx b/website/src/pages/workshop/pattern-effects.mdx
index 5afe862c..06ebd6b0 100644
--- a/website/src/pages/workshop/pattern-effects.mdx
+++ b/website/src/pages/workshop/pattern-effects.mdx
@@ -145,13 +145,17 @@ Try patterning the `ply` function, for example using `"<1 2 1 3>"`
   .off(1/16, x=>x.add(4))
   //.off(1/8, x=>x.add(7))
 ).scale("/2")
-.s("triangle").room(.5).ds(".1:0").delay(.5)`}
+.s("triangle").room(.5).dec(.1)`}
   punchcard
 />
 
 
 
-In the notation `x=>x.`, the `x` is the shifted pattern, which where modifying.
+In the notation `.off(1/16, x=>x.add(4))`, says:
+
+- take the original pattern named as `x`
+- modify `x` with `.add(4)`, and
+- play it offset to the original pattern by `1/16` of a cycle.
 
 
 
diff --git a/website/src/repl/Repl.jsx b/website/src/repl/Repl.jsx
index 9c472eb4..e20551c4 100644
--- a/website/src/repl/Repl.jsx
+++ b/website/src/repl/Repl.jsx
@@ -10,13 +10,13 @@ import cx from '@src/cx.mjs';
 import { transpiler } from '@strudel/transpiler';
 import {
   getAudioContext,
-  initAudioOnFirstClick,
   webaudioOutput,
   resetGlobalEffects,
   resetLoadedSounds,
+  initAudioOnFirstClick,
 } from '@strudel/webaudio';
 import { defaultAudioDeviceName } from '../settings.mjs';
-import { getAudioDevices, setAudioDevice } from './util.mjs';
+import { getAudioDevices, setAudioDevice, setVersionDefaultsFrom } from './util.mjs';
 import { StrudelMirror, defaultSettings } from '@strudel/codemirror';
 import { clearHydra } from '@strudel/hydra';
 import { useCallback, useEffect, useRef, useState } from 'react';
@@ -38,12 +38,14 @@ import { getRandomTune, initCode, loadModules, shareCode, ReplContext } from './
 import PlayCircleIcon from '@heroicons/react/20/solid/PlayCircleIcon';
 import './Repl.css';
 import { setInterval, clearInterval } from 'worker-timers';
+import { getMetadata } from '../metadata_parser';
 
 const { latestCode } = settingsMap.get();
 
-let modulesLoading, presets, drawContext, clearCanvas, isIframe;
+let modulesLoading, presets, drawContext, clearCanvas, isIframe, audioReady;
+
 if (typeof window !== 'undefined') {
-  initAudioOnFirstClick();
+  audioReady = initAudioOnFirstClick();
   modulesLoading = loadModules();
   presets = prebake();
   drawContext = getDrawContext();
@@ -87,11 +89,14 @@ export function Repl({ embedded = false }) {
           clearHydra();
         }
       },
+      beforeEval: () => audioReady,
       afterEval: (all) => {
         const { code } = all;
         setLatestCode(code);
         window.location.hash = '#' + code2hash(code);
+        setDocumentTitle(code);
         const viewingPatternData = getViewingPatternData();
+        setVersionDefaultsFrom(code);
         const data = { ...viewingPatternData, code };
         let id = data.id;
         const isExamplePattern = viewingPatternData.collection !== userPattern.collection;
@@ -112,22 +117,25 @@ export function Repl({ embedded = false }) {
       },
       bgFill: false,
     });
+    window.strudelMirror = editor;
 
     // init settings
 
     initCode().then(async (decoded) => {
-      let msg;
+      let code, msg;
       if (decoded) {
-        editor.setCode(decoded);
+        code = decoded;
         msg = `I have loaded the code from the URL.`;
       } else if (latestCode) {
-        editor.setCode(latestCode);
+        code = latestCode;
         msg = `Your last session has been loaded!`;
       } else {
         const { code: randomTune, name } = await getRandomTune();
-        editor.setCode(randomTune);
+        code = randomTune;
         msg = `A random code snippet named "${name}" has been loaded!`;
       }
+      editor.setCode(code);
+      setDocumentTitle(code);
       logger(`Welcome to Strudel! ${msg} Press play or hit ctrl+enter to run it!`, 'highlight');
     });
 
@@ -170,6 +178,11 @@ export function Repl({ embedded = false }) {
   // UI Actions
   //
 
+  const setDocumentTitle = (code) => {
+    const meta = getMetadata(code);
+    document.title = (meta.title ? `${meta.title} - ` : '') + 'Strudel REPL';
+  };
+
   const handleTogglePlay = async () => {
     editorRef.current?.toggle();
   };
diff --git a/website/src/repl/idbutils.mjs b/website/src/repl/idbutils.mjs
index 40219c9a..959dc7d1 100644
--- a/website/src/repl/idbutils.mjs
+++ b/website/src/repl/idbutils.mjs
@@ -40,8 +40,10 @@ export const registerSamplesFromDB = (config = userSamplesDBConfig, onComplete =
           if (!isAudioFile(title)) {
             return;
           }
-          const splitRelativePath = soundFile.id?.split('/');
-          const parentDirectory = splitRelativePath[splitRelativePath.length - 2];
+          const splitRelativePath = soundFile.id.split('/');
+          const parentDirectory =
+            //fallback to file name before period and seperator if no parent directory
+            splitRelativePath[splitRelativePath.length - 2] ?? soundFile.id.split(/\W+/)[0] ?? 'user';
           const soundPath = soundFile.blob;
           const soundPaths = sounds.get(parentDirectory) ?? new Set();
           soundPaths.add(soundPath);
@@ -114,6 +116,7 @@ const processFilesForIDB = async (files) => {
     Array.from(files)
       .map(async (s) => {
         const title = s.name;
+
         if (!isAudioFile(title)) {
           return;
         }
@@ -121,12 +124,14 @@ const processFilesForIDB = async (files) => {
         const sUrl = URL.createObjectURL(s);
         //fetch the sound and turn it into a buffer array
         const buf = await fetch(sUrl).then((res) => res.arrayBuffer());
-        //create a url blob containing all of the buffer data
+        //create a url base64 containing all of the buffer data
         const base64 = await bufferToDataUrl(buf);
+        const path = s.webkitRelativePath;
+        const id = path?.length ? path : title;
         return {
           title,
           blob: base64,
-          id: s.webkitRelativePath,
+          id,
         };
       })
       .filter(Boolean),
diff --git a/website/src/repl/panel/ImportSoundsButton.jsx b/website/src/repl/panel/ImportSoundsButton.jsx
index 20a1d5e3..7a97b9e0 100644
--- a/website/src/repl/panel/ImportSoundsButton.jsx
+++ b/website/src/repl/panel/ImportSoundsButton.jsx
@@ -10,6 +10,7 @@ export default function ImportSoundsButton({ onComplete }) {
       return;
     }
     setIsUploading(true);
+
     await uploadSamplesToDB(userSamplesDBConfig, fileUploadRef.current.files).then(() => {
       registerSamplesFromDB(userSamplesDBConfig, () => {
         onComplete();
@@ -32,7 +33,7 @@ export default function ImportSoundsButton({ onComplete }) {
         directory=""
         webkitdirectory=""
         multiple
-        accept="audio/*"
+        accept="audio/*, .wav, .mp3, .m4a, .flac"
         onChange={() => {
           onChange();
         }}
diff --git a/website/src/repl/panel/SoundsTab.jsx b/website/src/repl/panel/SoundsTab.jsx
index d4b52ee5..9b35d04b 100644
--- a/website/src/repl/panel/SoundsTab.jsx
+++ b/website/src/repl/panel/SoundsTab.jsx
@@ -13,7 +13,9 @@ export function SoundsTab() {
   const sounds = useStore(soundMap);
   const { soundsFilter } = useSettings();
   const soundEntries = useMemo(() => {
-    let filtered = Object.entries(sounds).filter(([key]) => !key.startsWith('_'));
+    let filtered = Object.entries(sounds)
+      .filter(([key]) => !key.startsWith('_'))
+      .sort((a, b) => a[0].localeCompare(b[0]));
     if (!sounds) {
       return [];
     }
@@ -43,7 +45,7 @@ export function SoundsTab() {
   });
   return (
     
-
+
settingsMap.setKey('soundsFilter', value)} diff --git a/website/src/repl/util.mjs b/website/src/repl/util.mjs index 3147ae38..26ac45d3 100644 --- a/website/src/repl/util.mjs +++ b/website/src/repl/util.mjs @@ -1,6 +1,7 @@ import { evalScope, hash2code, logger } from '@strudel/core'; import { settingPatterns, defaultAudioDeviceName } from '../settings.mjs'; -import { getAudioContext, initializeAudioOutput, setDefaultAudioContext } from '@strudel/webaudio'; +import { getAudioContext, initializeAudioOutput, setDefaultAudioContext, setVersionDefaults } from '@strudel/webaudio'; +import { getMetadata } from '../metadata_parser'; import { isTauri } from '../tauri.mjs'; import './Repl.css'; @@ -82,6 +83,7 @@ export function loadModules() { import('@strudel/serial'), import('@strudel/soundfonts'), import('@strudel/csound'), + import('@strudel/tidal'), ]; if (isTauri()) { modules = modules.concat([ @@ -163,3 +165,13 @@ export const setAudioDevice = async (id) => { } initializeAudioOutput(); }; + +export function setVersionDefaultsFrom(code) { + try { + const metadata = getMetadata(code); + setVersionDefaults(metadata.version); + } catch (err) { + console.error('Error parsing metadata..'); + console.error(err); + } +} diff --git a/website/src/user_pattern_utils.mjs b/website/src/user_pattern_utils.mjs index 19cba84b..ab2b5f35 100644 --- a/website/src/user_pattern_utils.mjs +++ b/website/src/user_pattern_utils.mjs @@ -21,16 +21,25 @@ export const patternFilterName = { user: 'user', }; -export let $viewingPatternData = persistentAtom( - 'viewingPatternData', - { - id: '', - code: '', - collection: collectionName.user, - created_at: Date.now(), - }, - { listen: false }, -); +const sessionAtom = (name, initial = undefined) => { + const storage = typeof sessionStorage !== 'undefined' ? sessionStorage : {}; + const store = atom(typeof storage[name] !== 'undefined' ? storage[name] : initial); + store.listen((newValue) => { + if (typeof newValue === 'undefined') { + delete storage[name]; + } else { + storage[name] = newValue; + } + }); + return store; +}; + +export let $viewingPatternData = sessionAtom('viewingPatternData', { + id: '', + code: '', + collection: collectionName.user, + created_at: Date.now(), +}); export const getViewingPatternData = () => { return parseJSON($viewingPatternData.get()); @@ -68,7 +77,7 @@ export async function loadDBPatterns() { } // reason: https://github.com/tidalcycles/strudel/issues/857 -const $activePattern = persistentAtom('activePattern', '', { listen: false }); +const $activePattern = sessionAtom('activePattern', ''); export function setActivePattern(key) { $activePattern.set(key);