diff --git a/.eslintignore b/.eslintignore deleted file mode 100644 index 7d807b65..00000000 --- a/.eslintignore +++ /dev/null @@ -1,24 +0,0 @@ -krill-parser.js -krill.pegjs -.eslintrc.json -server.js -tidal-sniffer.js -*.jsx -tunejs.js -out/** -postcss.config.js -postcss.config.cjs -tailwind.config.js -tailwind.config.cjs -vite.config.js -/**/dist/**/* -!**/*.mjs -**/*.tsx -**/*.ts -**/*.json -**/dev-dist -**/dist -/src-tauri/target/**/* -reverbGen.mjs -hydra.mjs -jsdoc-synonyms.js \ No newline at end of file diff --git a/.eslintrc.json b/.eslintrc.json index 71251141..3a3cd1c7 100644 --- a/.eslintrc.json +++ b/.eslintrc.json @@ -1,5 +1,6 @@ { "env": { + "node": true, "browser": true, "es2021": true }, @@ -13,5 +14,6 @@ "rules": { "no-unused-vars": ["warn", { "destructuredArrayIgnorePattern": ".", "ignoreRestSiblings": false }], "import/no-extraneous-dependencies": ["error", {"devDependencies": true}] - } + }, + "files": ["**/*.mjs", "**/*.js"] } diff --git a/.github/FUNDING.yml b/.forgejo/FUNDING.yml similarity index 100% rename from .github/FUNDING.yml rename to .forgejo/FUNDING.yml diff --git a/.forgejo/workflows/deploy.yml b/.forgejo/workflows/deploy.yml new file mode 100644 index 00000000..561fee65 --- /dev/null +++ b/.forgejo/workflows/deploy.yml @@ -0,0 +1,37 @@ +name: Build and Deploy + +on: [workflow_dispatch] + +# Allow one concurrent deployment +concurrency: + group: "pages" + cancel-in-progress: true + +jobs: + build: + runs-on: docker + env: + SSH_PRIVATE_KEY: ${{ secrets.SSH_PRIVATE_KEY }} + steps: + - uses: actions/checkout@v4 + - uses: pnpm/action-setup@v4 + with: + version: 9.12.2 + - uses: actions/setup-node@v4 + with: + node-version: 20 + # cache: "pnpm" + - name: Install Dependencies + run: pnpm install + + - name: Build + run: pnpm build + + - name: Deploy + run: | + eval $(ssh-agent -s) + echo "$SSH_PRIVATE_KEY" | ssh-add - + apt update && apt install -y rsync + mkdir ~/.ssh + ssh-keyscan matrix.toplap.org > ~/.ssh/known_hosts + rsync -atv --delete --delete-after --progress ./website/dist/ strudel@matrix.toplap.org:/home/strudel/deploy \ No newline at end of file diff --git a/.github/workflows/test.yml b/.forgejo/workflows/test.yml similarity index 63% rename from .github/workflows/test.yml rename to .forgejo/workflows/test.yml index 94e64513..90cb7e25 100644 --- a/.github/workflows/test.yml +++ b/.forgejo/workflows/test.yml @@ -1,20 +1,22 @@ name: Strudel tests -on: [push, pull_request] +on: [push] jobs: build: - runs-on: ubuntu-latest + runs-on: docker strategy: matrix: node-version: [20] steps: - uses: actions/checkout@v4 - - uses: pnpm/action-setup@v2 + - name: apt install ztd + run: apt update && apt install -y zstd + - uses: pnpm/action-setup@v4 with: - version: 8.11.0 - - uses: actions/setup-node@v3 + version: 9.12.2 + - uses: actions/setup-node@v4 with: node-version: ${{ matrix.node-version }} cache: 'pnpm' diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml deleted file mode 100644 index 67acc93a..00000000 --- a/.github/workflows/deploy.yml +++ /dev/null @@ -1,49 +0,0 @@ -name: Build and Deploy - -on: [workflow_dispatch] - -# Sets permissions of the GITHUB_TOKEN to allow deployment to GitHub Pages -permissions: - contents: read - pages: write - id-token: write - deployments: write - -# Allow one concurrent deployment -concurrency: - group: "pages" - cancel-in-progress: true - -jobs: - build: - runs-on: ubuntu-latest - environment: - name: github-pages - url: ${{ steps.deployment.outputs.page_url }} - steps: - - uses: actions/checkout@v4 - - uses: pnpm/action-setup@v2 - with: - version: 8.11.0 - - uses: actions/setup-node@v3 - with: - node-version: 20 - cache: "pnpm" - - name: Install Dependencies - run: pnpm install - - - name: Build - run: pnpm build - - - name: Setup Pages - uses: actions/configure-pages@v2 - - - name: Upload artifact - uses: actions/upload-pages-artifact@v1 - with: - # Upload entire repository - path: "./website/dist" - - - name: Deploy to GitHub Pages - id: deployment - uses: actions/deploy-pages@v1 diff --git a/.github/workflows/tauri.yml b/.github/workflows/tauri.yml deleted file mode 100644 index 07fd91be..00000000 --- a/.github/workflows/tauri.yml +++ /dev/null @@ -1,62 +0,0 @@ -name: Tauri Builder -on: - push: - tags: - - "v*" - workflow_dispatch: - -jobs: - release: - strategy: - fail-fast: false - matrix: - platform: [macos-latest, ubuntu-latest, windows-latest] - include: - - os: ubuntu-latest - rust_target: x86_64-unknown-linux-gnu - - os: macos-latest - rust_target: x86_64-apple-darwin - - os: macos-latest - rust_target: aarch64-apple-darwin - - os: windows-latest - rust_target: x86_64-pc-windows-msvc - runs-on: ${{ matrix.platform }} - steps: - - name: Checkout repository - uses: actions/checkout@v3 - - uses: pnpm/action-setup@v2 - with: - version: 8.6.2 - - - name: Node.js setup - uses: actions/setup-node@v3 - with: - node-version: latest - # node-version-file: '.nvmrc' - - - name: Install Rust (Stable) - run: - curl https://sh.rustup.rs -sSf | sh -s -- -y - - - name: Install dependencies (ubuntu only) - if: matrix.platform == 'ubuntu-latest' - run: | - sudo apt-get update - sudo apt-get install -y libgtk-3-dev webkit2gtk-4.0 libappindicator3-dev librsvg2-dev patchelf libasound2-dev - - - name: Install app dependencies from lockfile and build web - run: pnpm install - - - name: Build the app - uses: tauri-apps/tauri-action@v0 - - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - with: - # tauri-action replaces \_\_VERSION\_\_ with the app version - tagName: ${{ github.ref_name }} - releaseName: "Strudel v__VERSION__" - releaseBody: | - See the assets to download this version and install. - releaseDraft: true - prerelease: false diff --git a/.gitignore b/.gitignore index 59d9940e..2be3ee69 100644 --- a/.gitignore +++ b/.gitignore @@ -130,3 +130,4 @@ fabric.properties samples/* !samples/README.md +.idea/ diff --git a/.prettierignore b/.prettierignore index 010ad28a..c9584aca 100644 --- a/.prettierignore +++ b/.prettierignore @@ -11,3 +11,6 @@ pnpm-lock.yaml pnpm-workspace.yaml **/dev-dist website/.astro +!tidal-drum-machines.json +!tidal-drum-machines-alias.json +.pnpm-store diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index f9bc117c..f455741f 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -2,12 +2,22 @@ Thanks for wanting to contribute!!! There are many ways you can add value to this project +## Move to codeberg + +We are currently in the process of moving from github to codeberg -- not everything is working, please bear with us. + +To update your local clone, you can run this command: + +``` +git remote set-url origin git@codeberg.org:uzu/strudel.git +``` + + ## Communication Channels To get in touch with the contributors, either -- open a [github discussion](https://github.com/tidalcycles/strudel/discussions) or -- [join the Tidal Discord Channel](https://discord.gg/remJ6gQA) and go to the #strudel channel +- [join the Tidal Discord Channel](https://discord.com/invite/HGEdXmRkzT) and go to the #strudel channel - Find related discussions on the [tidal club forum](https://club.tidalcycles.org/) ## Ask a Question @@ -32,7 +42,7 @@ Use one of the Communication Channels listed above. ## Improve the Docs If you find some weak spots in the [docs](https://strudel.cc/workshop/getting-started/), -you can edit each file directly on github via the "Edit this page" link located in the right sidebar. +you can edit each file directly on codeburg. (we are currently fixing the "Edit this page" links in the right sidebar) ## Propose a Feature @@ -41,7 +51,7 @@ Maybe you even want to help with the implementation of that feature! ## Report a Bug -If you've found a bug, or some behaviour that does not seem right, you are welcome to file an [issue](https://github.com/tidalcycles/strudel/issues). +If you've found a bug, or some behaviour that does not seem right, you are welcome to file an [issue](https://codeberg.org/uzu/strudel/issues). Please check that it has not been reported before. ## Fix a Bug @@ -71,7 +81,7 @@ To get the project up and running for development, make sure you have installed: then, do the following: ```sh -git clone https://github.com/tidalcycles/strudel.git && cd strudel +git clone https://codeberg.org/uzu/strudel.git && cd strudel pnpm i # install at root to symlink packages pnpm start # start repl ``` @@ -113,7 +123,7 @@ You can run the same check with `pnpm check` ## Package Workflow -The project is split into multiple [packages](https://github.com/tidalcycles/strudel/tree/main/packages) with independent versioning. +The project is split into multiple [packages](https://codeberg.org/uzu/strudel/src/branch/main/packages) with independent versioning. When you run `pnpm i` on the root folder, [pnpm workspaces](https://pnpm.io/workspaces) will install all dependencies of all subpackages. This will allow any js file to import `@strudel/` to get the local version, allowing to develop multiple packages at the same time. @@ -130,20 +140,26 @@ 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: +## useful commands ```sh -cd packages/ && pnpm publish --access public -``` +#regenerate the test snapshots (ex: when updating or creating new pattern functions) +pnpm snapshot +#start the OSC server +pnpm run osc + +#build the standalone version +pnpm tauri build +``` ## Have Fun Remember to have fun, and that this project is driven by the passion of volunteers! diff --git a/README.md b/README.md index 7743bcab..d54302ac 100644 --- a/README.md +++ b/README.md @@ -1,8 +1,9 @@ # strudel -[![Strudel test status](https://github.com/tidalcycles/strudel/actions/workflows/test.yml/badge.svg)](https://github.com/tidalcycles/strudel/actions) +Live coding patterns on the web +https://strudel.cc/ -An experiment in making a [Tidal](https://github.com/tidalcycles/tidal/) using web technologies. This software is a bit more stable now, but please continue to tread carefully. +Development is moving to https://codeberg.org/uzu/strudel - Try it here: - Docs: @@ -14,10 +15,16 @@ An experiment in making a [Tidal](https://github.com/tidalcycles/tidal/) using w After cloning the project, you can run the REPL locally: -```bash -pnpm i -pnpm dev -``` +1. Install [Node.js](https://nodejs.org/) +2. Install [pnpm](https://pnpm.io/installation) +3. Install dependencies by running the following command: + ```bash + pnpm i + ``` +4. Run the development server: + ```bash + pnpm dev + ``` ## Using Strudel In Your Project @@ -25,11 +32,15 @@ This project is organized into many [packages](./packages), which are also avail Read more about how to use these in your own project [here](https://strudel.cc/technical-manual/project-start). +You will need to abide by the terms of the [GNU Affero Public Licence v3](LICENSE). As such, Strudel code can only be shared within free/open source projects under the same license -- see the license for details. + +Licensing info for the default sound banks can be found over on the [dough-samples](https://github.com/felixroos/dough-samples/blob/main/README.md) repository. + ## Contributing There are many ways to contribute to this project! See [contribution guide](./CONTRIBUTING.md). - + diff --git a/bench/tunes.bench.mjs b/bench/tunes.bench.mjs index cd381873..9ab750ce 100644 --- a/bench/tunes.bench.mjs +++ b/bench/tunes.bench.mjs @@ -1,22 +1,22 @@ import { queryCode, testCycles } from '../test/runtime.mjs'; import * as tunes from '../website/src/repl/tunes.mjs'; import { describe, bench } from 'vitest'; -import { calculateTactus } from '../packages/core/index.mjs'; +import { calculateSteps } from '../packages/core/index.mjs'; const tuneKeys = Object.keys(tunes); describe('renders tunes', () => { tuneKeys.forEach((key) => { describe(key, () => { - calculateTactus(true); - bench(`+tactus`, async () => { + calculateSteps(true); + bench(`+steps`, async () => { await queryCode(tunes[key], testCycles[key] || 1); }); - calculateTactus(false); - bench(`-tactus`, async () => { + calculateSteps(false); + bench(`-steps`, async () => { await queryCode(tunes[key], testCycles[key] || 1); }); - calculateTactus(true); + calculateSteps(true); }); }); }); diff --git a/paper/Makefile b/docs/iclc2023-paper/Makefile similarity index 100% rename from paper/Makefile rename to docs/iclc2023-paper/Makefile diff --git a/paper/README.md b/docs/iclc2023-paper/README.md similarity index 100% rename from paper/README.md rename to docs/iclc2023-paper/README.md diff --git a/paper/bin/code-filter.py b/docs/iclc2023-paper/bin/code-filter.py similarity index 100% rename from paper/bin/code-filter.py rename to docs/iclc2023-paper/bin/code-filter.py diff --git a/paper/citations.json b/docs/iclc2023-paper/citations.json similarity index 100% rename from paper/citations.json rename to docs/iclc2023-paper/citations.json diff --git a/paper/demo-preprocessed.md b/docs/iclc2023-paper/demo-preprocessed.md similarity index 99% rename from paper/demo-preprocessed.md rename to docs/iclc2023-paper/demo-preprocessed.md index e22823d9..2f0871e7 100644 --- a/paper/demo-preprocessed.md +++ b/docs/iclc2023-paper/demo-preprocessed.md @@ -201,7 +201,7 @@ interfaces. The Strudel REPL is available at , including an interactive tutorial. The repository is at -, all the code is open source +, all the code is open source under the GPL-3.0 License. # Acknowledgments diff --git a/paper/demo.md b/docs/iclc2023-paper/demo.md similarity index 98% rename from paper/demo.md rename to docs/iclc2023-paper/demo.md index 23fe2775..841fb606 100644 --- a/paper/demo.md +++ b/docs/iclc2023-paper/demo.md @@ -128,7 +128,7 @@ For the future, it is planned to integrate alternative sound engines such as Gli # Links The Strudel REPL is available at , including an interactive tutorial. -The repository is at , all the code is open source under the GPL-3.0 License. +The repository is at , all the code is open source under the GPL-3.0 License. # Acknowledgments diff --git a/paper/demo.pdf b/docs/iclc2023-paper/demo.pdf similarity index 100% rename from paper/demo.pdf rename to docs/iclc2023-paper/demo.pdf diff --git a/paper/iclc-reviews.md b/docs/iclc2023-paper/iclc-reviews.md similarity index 100% rename from paper/iclc-reviews.md rename to docs/iclc2023-paper/iclc-reviews.md diff --git a/docs/iclc2023-paper/iclc2023.html b/docs/iclc2023-paper/iclc2023.html new file mode 100644 index 00000000..add08377 --- /dev/null +++ b/docs/iclc2023-paper/iclc2023.html @@ -0,0 +1,954 @@ + + + + + + + + Strudel: live coding patterns on the Web + + + + + + + +

Abstract

+
+

+ This paper introduces Strudel, which brings the TidalCycles approach to live coding algorithmic patterns to + native JavaScript and the web. We begin by giving a little background of the first year of development, before + sharing some detail about its implementation and examples of use. We go on to outline the wide range of + synthesis and other outputs available in Strudel, including WebAudio, MIDI, OSC (for SuperDirt), WebSerial and + CSound, and introduce Strudel’s REPL live editor, including its built-in visualisations. We then compare Strudel + with Tidal, the trade-offs involved between JavaScript and Haskell, and the unique capabilities offered by + Strudel for aligning patterns. +

+
+ +

1 Introduction

+

+ In the following paper, we introduce Strudel, an alternative implementation of the TidalCycles (or + ‘Tidal’ for short) live coding system, using the JavaScript programming language. Strudel is an attempt to make + live coding more accessible, by creating a system that runs entirely in the browser, while opening Tidal’s + approach to algorithmic patterns + (Mclean 2020) up to modern audio/visual + web technologies. The Strudel REPL is a live code editor dedicated to manipulating patterns while they play, with + builtin visual feedback. While Strudel is written in JavaScript, the API is optimized for simplicity and + readability by applying code transformations on the syntax tree level, allowing language operations that would + otherwise be impossible. The application supports multiple ways to output sound, including Tone.js, Web Audio + Nodes, OSC (Open Sound Control) messages, Web Serial, Web MIDI and Csound. The project is split into multiple + packages, allowing granular reuse in other applications. Apart from TidalCycles, Strudel draws inspiration from + many prior existing projects like TidalVortex + (McLean et al. 2022), Gibber + (Roberts and Kuchera-morin 2012), Estuary + (Ogborn et al. 2017), Hydra + (Jack [2022] 2022), Ocarina + (Solomon [2021] 2022) and Feedforward + (McLean 2020). This paper expands the Strudel + Demo paper for the Web Audio Conference 2022 + (Roos and McLean 2022). +

+

+ The first tentative commit to the Strudel project was on 22nd January 2022 by Alex McLean, with the core + representation implemented over the following few days. Although this was his first attempt at a JavaScript-based + application, by 27th January, Alex had managed to upload the initial version to the ‘npm’ javascript package + database, sharing with the wider community for comment. By 4th February, Felix Roos had discovered Strudel and + contributed a ‘REPL’ user interface to it, and then contributed a scheduler the next day, so that Strudel could + already make sound. At this point, Alex and Felix shared ownership to the repository, and the project has since + proved to be a productive confluence of Felix’s own work into music representation and visualisation, with Alex’s + experience with making Tidal. Felix has since become the primary contributor to Strudel, with Alex continuing to + jump between developing both Strudel and Tidal. Aspects of Strudel’s development have therefore fed back into + TidalCycles, and both systems have maintained a shared conceptual underpinning. We plan to continue working + towards feature parity between these systems, although within the syntactical trade-offs and library ecosystems of + JavaScript and Haskell, some divergence is inevitable and healthy. +

+

+ Over the first year of its life, Strudel is now a fully-fledged live coding environment, porting Tidal’s core + represention of patterns, pattern transformations, and mininotation for polymetric sequences, combined with a + wealth of features for synthesising and visualising those patterns. +

+

+ 2 From Tidal to Strudel and back +

+

+ As mentioned above, the original Tidal is implemented as a domain specific language (DSL) embedded in the Haskell + pure functional programming language, and takes advantage of Haskell’s terse syntax and advanced, ‘strong’ type + system. JavaScript on the other hand, is a multi-paradigm programming language, with a dynamic type system. + Because Tidal leans heavily on many of Haskell’s more unique features, it was not always clear that it could + meaningfully be ported to a multi-paradigm scripting language. However, this possibility was already demonstrated + with an earlier port to Python [TidalVortex; + McLean et al. (2022)], and we have now + successfully implemented Tidal’s pure functional representation of patterns in Strudel, including partial + application, currying, and the functor, applicative and monadic structures that underlie Tidal’s expressive + pattern transformations. The result is a terse and highly composable system, where everything is either a pattern, + or a function for combining and manipulating patterns, offering a rich creative ground for exploration. +

+

+ This development process has been far from a one-way port, however. The process of porting Tidal’s concepts has + also opened up new possibilities, some just from revisiting every design decision, and some from the particular + affordances and constraints offered by JavaScript. This has lead to new features (and indeed bugfixes) that have + found their way back to Tidal where appropriate, and ongoing work that we will return to in the conclusion of this + paper. +

+

+ 3 Representing Patterns +

+

+ Patterns are the essence of Tidal. Its patterns are abstract entities that represent flows of time as functions, + adapting a technique called pure functional reactive programming. Taking a time span as its input, a Pattern can + output a set of events that happen within that time span. It depends on the structure of the Pattern how the + events are located in time. From now on, this process of generating events from a time span will be called + querying. Example: +

+
+
const pattern = sequence(c3, [e3, g3])
+const events = pattern.queryArc(0, 1)
+console.log(events.map(e => e.show()))
+
+

+ In this example, we create a pattern using the sequence function and query it for + the time span from 0 to 1. Those numbers represent units of time called + cycles. The length of one cycle depends on the tempo, which defaults to one cycle per second. The + resulting events are: +

+
+
[{ value: 'c3', begin: 0, end: 1/2 },
+{ value: 'e3', begin: 1/2, end: 3/4 },
+{ value: 'g3', begin: 3/4, end: 1 }]
+
+

+ Each event has a value, a begin time and an end time, where time is represented as a fraction. In the above case, + the events are placed in sequential order, where c3 takes the first half, and e3 and g3 together take the second + half. This temporal placement is the result of the sequence function, which divides its arguments + equally over one cycle. If an argument is an array, the same rule applies to that part of the cycle. In the + example, e3 and g3 are divided equally over the second half of the whole cycle. +

+

+ The above examples do not represent how Strudel is used in practice. In the live coding editor, the user only has + to type in the pattern itself, the querying will be handled by the scheduler. The scheduler will repeatedly query + the pattern for events, which are then scheduled as sound synthesis or other event triggers. Also, the above event + data structure has been simplified for readability. +

+
+ Screenshot of the Strudel ‘REPL’ live coding editor, including piano-roll visualisation. + +
+

4 Making Patterns

+

+ In practice, the end-user live coder will not deal with constructing patterns directly, but will rather build + patterns using Strudel’s extensive combinator library to create, combine and transform patterns. +

+

+ The live coder will rarely use the sequence function as seen above, as sequencing is implicit in many + functions. For example in the following, the note function constructs a pattern of notes, sequencing + its arguments in the same manner as the previous example. +

+
+
note(c3, [e3, g3])
+
+

+ Perhaps more often, they will use the mini-notation for even terser notation of rhythmic sequences: [^This last + example is also valid Tidal code, albeit the parenthesis is not required in its Haskell syntax in this case. Tidal + does not support passing sequences as lists directly to the note function, however.]. +

+
+
note("c3 [e3 g3]")
+
+

+ Such sequences are often treated only a starting point for manipulation, where they then undergo pattern + transformations such as repetition, symmetry, interference/combination or randomisation, potentially at multiple + timescales. Because Strudel patterns are represented as pure functions of time rather than as data structures, + very long and complex generative results can be represented and manipulated without having to store the resulting + sequences in memory. +

+

5 Pattern Example

+

+ The following example showcases how patterns can be utilized to create musical complexity from simple parts, using + repetition and interference: +

+
+
"<0 2 [4 6](3,4,1) 3>"
+.off(1/4, add(2))
+.off(1/2, add(6))
+.scale('D minor')
+.legato(.25)
+.note().s("sawtooth square")
+.delay(.8).delaytime(.125)
+
+

+ The pattern starts with a rhythm of numbers in mini notation, which are later interpreted inside the scale of D + minor. The first line could also be expressed without mini notation: +

+
+
cat(0, 2, [4, 6].euclid(3, 4, 1), 3)
+
+

+ These numbers then undergo various pattern transformations. Here is a short description of all the functions used: +

+
    +
  • cat: play elements sequentially, where each lasts one cycle
  • +
  • brackets: elements inside brackets are divided equally over the time of their parent
  • +
  • + .euclid(p, s, o): place p pulses evenly over s steps, with offset o + (Toussaint 2005) +
  • +
  • + .off(n, f): layers a pattern on top of itself, with the new layer offset by n cycles, and with + function f applied +
  • +
  • .legato(n): multiply the duration of all events in a pattern by a factor of n
  • +
  • + .echo(t, n, v): copy each event t times, with n cycles in between each copy, decreasing velocity by + v +
  • +
  • .note(): interpretes values as notes
  • +
  • .s(name): play back each event with the given sound
  • +
  • .delay(wet): add delay
  • +
  • .delaytime(t): set delay time
  • +
+

Much of the above will be familiar to Tidal users.

+ +

+ 6 Ways to make Sound (and other events) +

+

To generate sound, Strudel supports bindings for different outputs:

+
    +
  • Tone.js (deprecated)
  • +
  • Web Audio API
  • +
  • WebDirt, a js recreation of Tidal’s Dirt sample engine (deprecated)
  • +
  • OSC via osc-js, compatible with superdirt
  • +
  • Csound via the Csound WebAssembly build
  • +
  • MIDI via WebMIDI
  • +
  • Serial via WebSerial
  • +
+

+ At first, we used Tone.js as sound output, but it proved to be limited for the use case of Strudel, where each + individual event could potentially have a completely different audio graph. While the Web Audio API takes a + fire-and-forget approach, creating a lot of Tone.js instruments and effects causes performance issues + quickly. For that reason, we chose to search for alternatives. +

+

+ Strudel’s new default output uses the Web Audio API to create a new audio graph for each event. It currently + supports basic oscillators, sample playback, various effects and an experimental support for soundfonts. +

+

+ WebDirt (Ogborn [2016] 2022) was created as part + of the Estuary Live Coding System + (Ogborn et al. 2017), and + proved to be a solid choice for handling samples in Strudel as well. We are however focused on working more + directly with the Web Audio API to be able to integrate new features more tightly. +

+

+ Using the OSC protocol via Strudel’s provided Node.js-based OSC proxy server, it is possible to send network + messages to trigger events. This is mainly used to render sound using SuperDirt + (SuperDirt [2015] 2022), which is the + well-developed Supercollider-based synthesis framework that Tidal live coders generally use as standard. +

+

+ Recently, the experimental integration of Csound proved to bring a new dimension of sound design capabilities to + Strudel. Thanks to the WebAssembly distribution of this classic system + (Yi, Lazzarini, and Costello 2018), Csound + ‘orchestra’ synthesisers can be embedded in and then patterned with Strudel code. +

+

+ MIDI output can also be used to send MIDI messages to either external instruments or to other programs on the same + device. Unlike OSC, Strudel is able to send MIDI directly without requiring additional proxy software, but only + from web browsers that support it (at the time of writing, this means Chromium-based browsers). +

+

+ Finally, Strudel supports Serial output, for example to trigger events via microcontrollers. This has already been + explored for robot choreography by Kate Sicchio and Alex McLean, via a performance presented at the International + Conference on Live Interfaces 2022. +

+

7 The Strudel REPL

+

+ While Strudel can be used as a library in any JavaScript codebase, its main, reference user interface is the + Strudel REPL[^REPL stands for read, evaluate, print/play, loop. It is friendly jargon for an interactive + programming interface from computing heritage, usually for a commandline interface but also applied to live coding + editors.], which is a browser-based live coding environment. This live code editor is dedicated to manipulating + Strudel patterns while they play. The REPL features built-in visual feedback, which highlights which elements in + the patterned (mini-notation) sequences are influencing the event that is currently being played. This feedback is + designed to support both learning and live use of Strudel. +

+

+ Besides a UI for playback control and meta information, the main part of the REPL interface is the code editor + powered by CodeMirror. In it, the user can edit and evaluate pattern code live, using one of the available + synthesis outputs to create music and/or sound art. The control flow of the REPL follows 3 basic steps: +

+
    +
  1. + The user writes and updates code. Each update transpiles and evaluates it to create a + Pattern instance +
  2. +
  3. + While the REPL is running, the Scheduler queries the active Pattern by a regular + interval, generating Events (also known as Haps in Strudel) for the next time span. +
  4. +
  5. + For each scheduling tick, all generated Events are triggered by calling their + onTrigger method, which is set by the output. +
  6. +
+
+ REPL control flow + +
+

7.1 User Code

+

To create a Pattern from the user code, two steps are needed:

+
    +
  1. Transpile the JS input code to make it functional
  2. +
  3. Evaluate the transpiled code
  4. +
+

+ 7.1.1 Transpilation & Evaluation +

+

+ In the JavaScript world, using transpilation is a common practise to be able to use language features that are not + supported by the base language. Tools like babel will transpile code that contains unsupported + language features into a version of the code without those features. +

+

+ In the same tradition, Strudel can add a transpilation step to simplify the user code in the context of live + coding. For example, the Strudel REPL lets the user create mini notation patterns using just double quoted + strings, while single quoted strings remain what they are: +

+
+
"c3 [e3 g3]*2"
+
+

is transpiled to:

+
+
mini("c3 [e3 g3]*2").withMiniLocation([1,0,0],[1,14,14])
+
+

+ Here, the string is wrapped in mini, which will create a pattern from a mini notation string. + Additionally, the withMiniLocation method passes the original source code location of the string to + the pattern, which enables highlighting active events. +

+

+ Other convenient features like pseudo variables, operator overloading and top level await are possible with + transpilation. +

+

After the transpilation, the code is ready to be evaluated into a Pattern.

+

+ Behind the scenes, the user code string is parsed with acorn, turning it into an Abstract Syntax Tree + (AST). The AST allows changing the structure of the code before generating the transpiled version using + escodegen. +

+

7.1.2 Mini Notation

+

+ While the transpilation allows JavaScript to express Patterns in a less verbose way, it is still preferable to use + the Mini Notation as a more compact way to express rhythm. Strudel aims to provide the same Mini Notation features + and syntax as used in Tidal. +

+

+ The Mini Notation parser is implemented using peggy, which allows generating performant parsers for + Domain Specific Languages (DSLs) using a concise grammar notation. The generated parser turns the Mini Notation + string into an AST which is used to call the respective Strudel functions with the given structure. For example, + "c3 [e3 g3]*2" will result in the following calls: +

+
+
seq(
+  reify('c3').withLocation([1,1,1], [1,4,4]),
+  seq(
+    reify('e3').withLocation([1,5,5], [1,8,8]),
+    reify('g3').withLocation([1,8,8], [1,10,10]),
+  ).fast(2)
+)
+
+

+ 7.1.3 Highlighting Locations +

+

+ As seen in the examples above, both the JS and the Mini Notation parser add source code locations using + withMiniLocation and withLocation methods. While the JS parser adds locations relative + to the user code as a whole, the Mini Notation adds locations relative to the position of the mini notation + string. The absolute location of elements within Mini Notation can be calculated by simply adding both locations + together. This absolute location can be used to highlight active events in real time. +

+

7.2 Scheduling Events

+

+ After an instance of Pattern is obtained from the user code, it is used by the scheduler to get + queried for events. Once started, the scheduler runs at a fixed interval to query active pattern for events + withing the current interval’s time span. A simplified implementation looks like this: +

+
+
let pattern = seq('c3', ['e3', 'g3']); // pattern from user
+let interval = 0.5; // query interval in seconds
+let time = 0; // beginning of current time span
+let minLatency = .1; // min time before a hap should trigger
+setInterval(() => {
+  const haps = pattern.queryArc(time, time + interval);
+  time += interval; // increment time
+  haps.forEach((hap) => {
+    const deadline = hap.whole.begin - time + minLatency;
+    onTrigger(hap, deadline, duration);
+  });
+}, interval * 1000); // query each "interval" seconds
+
+

+ Note that the above code is simplified for illustrative purposes. The actual implementation has to work around + imprecise callbacks of setInterval. More about the implementation details can be read in + this blog post. +

+

+ The fact that Pattern.queryArc is a pure function that maps a time span to a set of events allows us + to choose any interval we like without changing the resulting output. It also means that when the pattern is + changed from outside, the next scheduling callback will work with the new pattern, keeping its clock running. +

+

+ The latency between the time the pattern is evaluated and the change is heard is between + minLatency and interval + minLatency, in our example between 100ms and 600ms. In + Strudel, the current query interval is 50ms with a minLatency of 100ms, meaning the latency is between 50ms and + 150ms. +

+

7.3 Output

+

+ The last step is to trigger each event in the chosen output. This is where the given time and value of each event + is used to generate audio or any other form of time based output. The default output of the Strudel REPL is the + WebAudio output. To understand what an output does, we first have to understand what control parameters are. +

+

+ 7.3.1 Control Parameters +

+

+ To be able to manipulate multiple aspects of sound in parallel, so called control parameters are used to shape the + value of each event. Example: +

+
+
note("c3 e3").cutoff(1000).s('sawtooth')
+  .queryArc(0, 1).map(hap => hap.value)
+/* [
+  { note: 'c3', cutoff: 1000, s: 'sawtooth' }
+  { note: 'e3', cutoff: 1000, s: 'sawtooth' }
+] */
+
+

+ Here, the control parameter functions note, cutoff and s are used, where + each controls a different property in the value object. Each control parameter function accepts a primitive value, + a list of values to be sequenced into a Pattern, or a Pattern. In the example, + note gets a Pattern from a Mini Notation expression (double quoted), while + cutoff and s are given a Number and a (single quoted) + String respectively. +

+

+ Strudel comes with a large default set of control parameter functions that are based on the ones used by Tidal and + SuperDirt, focusing on music and audio terminology. It is however possible to create custom control paramters for + any purpose: +

+
+
const { x, y } = createParams('x', 'y')
+x(sine.range(0, 200)).y(cosine.range(0,200))
+
+

+ This example creates the custom control parameters x and y which are then used to form a + pattern that descibes the coordinates of a circle. +

+

7.3.2 Outputs

+

+ Now that we know how the value of an event is manipulated using control parameters, we can look at how outputs can + use that value to generate anything. The scheduler above was calling the onTrigger function which is + used to implement the output. A very simple version of the web audio output could look like this: +

+
+
function onTrigger(hap, deadline, duration) {
+  const { note } = hap.value;
+  const time = getAudioContext().currentTime + deadline;
+  const o = getAudioContext().createOscillator();
+  o.frequency.value = getFreq(note);
+  o.start(time);
+  o.stop(time + event.duration);
+  o.connect(getAudioContext().destination);
+}
+
+

+ The above example will create an OscillatorNode for each event, where the frequency is controlled by + the note param. In essence, this is how the WebAudio API output of Strudel works, only with many more + parameters to control synths, samples and effects. +

+

+ 8 Pattern alignment and combination +

+

+ One core aspect of Strudel, inherited from Tidal, is the flexible way that patterns can be combined, irrespective + of their structure. Its declarative approach means a live coder does not have to think about the details of + how this is done, only what is to be done. +

+

+ As a simple example, consider two number patterns "0 [1 2] 3", and "10 20". The first + has three contiguous steps of equal lengths, with the second step broken down into two substeps, giving four + events in total. There are a very large number of ways in which the structure of these two patterns could be + combined, but the default method in both Strudel and Tidal is to line up the cycles of the two patterns, and then + take events from the first pattern and match them with those in the second pattern. Therefore, the following two + lines are equivalent: +

+
+
"0 [1 2] 3".add("10 20")
+"10 [11 22] 23"
+
+

+ Where the events only partially overlap, they are treated as fragments of the event in the first pattern. This is + a little difficult to conceptualise, but lets start by comparing the two patterns in the following example: +

+
+
"0 1 2".add("10 20")
+"10 [11 21] 20"
+
+

+ They are similar to the previous example in that the number 1 is split in two, with its two halves + added to 10 and 20 respectively. However, the 11 ‘remembers’ that it is a + fragment of that original 1 event, and so is treated as having a duration of a third of a cycle, + despite only being active for a sixth of a cycle. Likewise, the 21 is also a fragment of that + original 1 event, but a fragment of its second half. Because the start of its event is missing, it + wouldn’t actually trigger a sound (unless it underwent further pattern transformations/combinations). +

+

+ In practice, the effect of this default, implicit method for combining two patterns is that the second pattern is + added in to the first one, and indeed this can be made explicit: +

+
+
"0 1 2".add.in("10 20")
+
+

This makes way for other ways to align the pattern, and several are already defined, in particular:

+
    +
  • + in - as explained above, aligns cycles, and applies values from the pattern on the right + in to the pattern on the left. +
  • +
  • + out - as with in, but values are applied out of the pattern on the left + (i.e. in to the one on the right). +
  • +
  • + mix - structures from both patterns are combined, so that the new events are not fragments but are + created at intersections of events from both sides. +
  • +
  • + squeeze - cycles from the pattern on the right are squeezed into events on the left. So that + e.g. "0 1 2".add.squeeze("10 20") is equivalent to "[10 20] [11 21] [12 22]". +
  • +
  • + squeezeout - as with squeeze, but cycles from the left are squeezed into events on the + right. So, "0 1 2".add.squeezeout("10 20") is equivalent to [10 11 12] [20 21 22]. +
  • +
  • + trig is similar to squeezeout in that cycles from the right are aligned with events on + the left. However those cycles are not ‘squeezed’, rather they are truncated to fit the event. So + "0 1 2 3 4 5 6 7".add.trig("10 [20 30]") would be equivalent to + 10 11 12 13 20 21 30 31. In effect, events on the right ‘trigger’ cycles on the left. +
  • +
  • + trigzero is similar to trig, but the pattern is ‘triggered’ from its very first cycle, + rather than from the current cycle. trig and trigzero therefore only give different + results where the leftmost pattern differs from one cycle to the next. +
  • +
+

+ We will save going deeper into the background, design and practicalities of these alignment functions for future + publications. However in the next section, we take them as a case study for looking at the different design + affordances offered by Haskell to Tidal, and JavaScript to Strudel. +

+

+ 9 Comparing Strudel and Haskell in use +

+

+ Unlike Haskell, JavaScript lacks the ability to define custom infix operators, or change the meaning of existing + ones. So the above Strudel example of "0 1 2".add.out("10 20") is equivalent to the Tidal expression + "0 1 2" +| "10 20", where the vertical bar in the operator +| stands for + out (where a |+ b would be equivalent of a.add.in(b)). +

+

+ From this we can already see that Tidal tends towards brevity through mixing infix operators with functions, and + Strudel tends towards spelling out operations which are joined together with the . operator. This + then is the design trade-off of Tidal’s tersity, versus Strudel’s simplicity. +

+

To demonstrate this, consider the following Tidal pattern:

+
iter 4 $ every 3 (||+ n "10 20") $ (n "0 1 3") # s "triangle" # crush 4
+

This can be directly translated to the Strudel equivalent:

+
+
iter(4, every(3, add.squeeze("10 20"), n("0 1 3").s("triangle").crush(4)))
+
+

Although for a more canonical Strudel expression, we would reorder it as:

+
+
n("0 1 3").every(3, add.squeeze("10 20")).iter(4).s("triangle").crush(4)
+
+

+ The Strudel example uses the . method call operator for all operations and combinations, whereas the + Tidal example has # for the default method for combining patterns and uses infix operators for other + methods. The lack of parenthesis in the Tidal example is partly due to the way that arguments are applied to + Haskell’s functions, and partly due to the use of the $ operator as an alternative way to establish + precedence and control the order of evaluation. +

+

+ Considering the above, we argue that the Haskell syntax is a little cleaner, but that the Strudel syntax is easier + to learn. Our informal observation is that while Haskell’s dollar $ operator is very useful in making + code easier to work with, it is one of the most difficult aspects of Tidal use for beginners to learn. On the + other hand, the deeper levels of parenthesis in Strudel code can be difficult to keep track of, especially while + coding under pressure of live musical performance. However this difficulty can be largely be mitigated by + reordering expressions, and further mitigated by supporting editor features. +

+

+ With Strudel, we have little choice but to embrace the affordances and constraints offered by JavaScript, and + while designing a domain-specific language entirely based on method calls is a challenge, through creative + adoption of functional programming techniques like partial application, we are so far very happy with the results. + Tidal’s functional reactive approach to pattern-making has in general translated well to JavaScript, and + opportunities and constraints have overall traded off to create a very approachable and useable live coding + environment. +

+

+ 9.1 The trade-off of flexible typing +

+

+ We have identified one problem with porting Tidal to JavaScript where we have missed Haskell’s strict typing and + type inference. In both Tidal and Strudel, time is rational, where any point in time is represented as the ratio + of two integers. This allows representation of musical ratios such that are impossible to represent accurately + using the more common floating point numbers. However while libraries are available that support rational numbers + in JavaScript, the lack of strict typing means that it is easy to implement pattern methods where computationally + expensive conversion from floating point to rational numbers are performed late, and therefore often enough to + overload the CPUs, due to the large number of iterative calculations required to estimate a ratio for a given + floating point number. To mitigate this problem, we might consider moving to TypeScript in the future. +

+

10 Future Outlook

+

+ The project is still young, with many features on the horizon. As general guiding principles, Strudel aims to be +

+
    +
  1. accessible
  2. +
  3. consistent with Tidal’s approach to pattern
  4. +
  5. modular and extensible
  6. +
+

+ While Haskell’s type system makes it a great language for the ongoing development of Tidal’s inner representation + of pattern, JavaScript’s vibrant ecosystem, flexibility and accessibility makes it a great host for more ad-hoc + experiments, including interface design. For the future, it is planned to integrate additional alternative sound + engines such as Glicol (Lan [2020] 2022) and + Faust + (Faust - Programming Language for Audio Applications and Plugins [2016] 2022). Strudel is already approaching feature parity with Tidal, but there are more Tidal functions to be ported, and + work to be done to improve compatibility with Tidal’s mininotation. Tidal version 2.0 is under development, which + brings a new representation for sequences to its patterns, which will then be brought to Strudel. Besides sound, + other ways to render events are being explored, such as graphical, and choreographic output. We are also looking + into alternative ways of editing patterns, including multi-user editing for network music, parsing a novel syntax + to escape the constraints of javascript, and developing hardware/e-textile interfaces. In summary, there is a lot + of fun ahead. +

+

11 Links

+

+ The Strudel REPL is available at https://strudel.cc, including an + interactive tutorial. The repository is at + https://github.com/tidalcycles/strudel, all the + code is open source under the AGPL-3.0 License. +

+

12 Acknowledgments

+

+ Thanks to the Strudel and wider Tidal, live coding, WebAudio and free/open source software communities for + inspiration and support. Alex McLean’s work on this project is supported by a UKRI Future Leaders Fellowship + [grant number MR/V025260/1]. +

+

References

+
+
+ Faust - Programming Language for Audio Applications and Plugins. (2016) 2022. C++. GRAME. + https://github.com/grame-cncm/faust. +
+
+ Jack, Olivia. (2022) 2022. Hydra. + https://github.com/ojack/hydra. +
+
+ Lan, Qichao. (2020) 2022. Chaosprint/Glicol. Rust. + https://github.com/chaosprint/glicol. +
+
+ Mclean, Alex. 2020. “Algorithmic Pattern.” In + Proceedings of the International Conference on New Interfaces for Musical Expression, 265--270. + Birmingham, UK. https://zenodo.org/record/4813352. +
+
+ McLean, Alex. 2020. “Feedforward.” In + Proceedings of New Interfaces for Musical Expression. Birmingham. + https://zenodo.org/record/6353969. +
+
+ McLean, Alex, Raphaël Forment, Sylvain Le Beux, and Damián Silvani. 2022. “TidalVortex Zero.” In + Proceedings of the 7th International Conference on Live Coding. Limerick, Ireland: Zenodo. + https://doi.org/10.5281/zenodo.6456380. +
+
+ Ogborn, David. (2016) 2022. Dktr0/WebDirt. JavaScript. + https://github.com/dktr0/WebDirt. +
+
+ Ogborn, David, Jamie Beverley, Luis Navarro del Angel, Eldad Tsabary, and Alex McLean. 2017. + “Estuary: Browser-Based Collaborative Projectional Live Coding of Musical Patterns.” In + Proceedings of the International Conference on Live Coding, 11. Morelia. +
+
+ Roberts, Charles, and Joann Kuchera-morin. 2012. “Gibber: Live Coding Audio in the Browser.” In + In Proceedings of the 2012 International Computer Music Conference. +
+
+ Roos, Felix, and Alex McLean. 2022. “Strudel: Algorithmic Patterns for the Web.” In. Zenodo. + https://doi.org/10.5281/zenodo.6768844. +
+
+ Solomon, Mike. (2021) 2022. Purescript-Ocarina. PureScript. + https://github.com/mikesol/purescript-ocarina. +
+
+ SuperDirt. (2015) 2022. SuperCollider. musikinformatik. + https://github.com/musikinformatik/SuperDirt. +
+
+ Toussaint, Godfried. 2005. “The Euclidean Algorithm Generates Traditional Musical Rhythms.” In + In Proceedings of BRIDGES: Mathematical Connections in Art, Music and Science, 47–56. + http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.62.231. +
+
+ Yi, Steven, Victor Lazzarini, and Edward Costello. 2018. + “WebAssembly AudioWorklet Csound.” In. Berlin, Germany. + https://mural.maynoothuniversity.ie/16018/. +
+
+ + diff --git a/paper/iclc2023.md b/docs/iclc2023-paper/iclc2023.md similarity index 99% rename from paper/iclc2023.md rename to docs/iclc2023-paper/iclc2023.md index 3afb2782..fdc9f0ca 100644 --- a/paper/iclc2023.md +++ b/docs/iclc2023-paper/iclc2023.md @@ -451,7 +451,7 @@ While Haskell's type system makes it a great language for the ongoing developmen # Links The Strudel REPL is available at , including an interactive tutorial. -The repository is at , all the code is open source under the AGPL-3.0 License. +The repository is at , all the code is open source under the AGPL-3.0 License. # Acknowledgments diff --git a/paper/iclc2023.pdf b/docs/iclc2023-paper/iclc2023.pdf similarity index 100% rename from paper/iclc2023.pdf rename to docs/iclc2023-paper/iclc2023.pdf diff --git a/paper/iclc2023x.pdf b/docs/iclc2023-paper/iclc2023x.pdf similarity index 100% rename from paper/iclc2023x.pdf rename to docs/iclc2023-paper/iclc2023x.pdf diff --git a/paper/images/cc.png b/docs/iclc2023-paper/images/cc.png similarity index 100% rename from paper/images/cc.png rename to docs/iclc2023-paper/images/cc.png diff --git a/paper/images/strudel-screenshot.png b/docs/iclc2023-paper/images/strudel-screenshot.png similarity index 100% rename from paper/images/strudel-screenshot.png rename to docs/iclc2023-paper/images/strudel-screenshot.png diff --git a/paper/images/strudel-screenshot2.png b/docs/iclc2023-paper/images/strudel-screenshot2.png similarity index 100% rename from paper/images/strudel-screenshot2.png rename to docs/iclc2023-paper/images/strudel-screenshot2.png diff --git a/paper/images/strudelflow.png b/docs/iclc2023-paper/images/strudelflow.png similarity index 100% rename from paper/images/strudelflow.png rename to docs/iclc2023-paper/images/strudelflow.png diff --git a/paper/inconsolata.sty b/docs/iclc2023-paper/inconsolata.sty similarity index 100% rename from paper/inconsolata.sty rename to docs/iclc2023-paper/inconsolata.sty diff --git a/paper/make.sh b/docs/iclc2023-paper/make.sh similarity index 100% rename from paper/make.sh rename to docs/iclc2023-paper/make.sh diff --git a/docs/iclc2023-paper/pandoc/iclc.html b/docs/iclc2023-paper/pandoc/iclc.html new file mode 100755 index 00000000..c47d6595 --- /dev/null +++ b/docs/iclc2023-paper/pandoc/iclc.html @@ -0,0 +1,63 @@ +$if(false)$ This is a pandoc template and should not be edited. $endif$ + + + + + + + $for(author-meta)$ + + $endfor$ $if(date-meta)$ + + $endif$ + $if(title-prefix)$$title-prefix$ - $endif$$pagetitle$ + + $if(quotes)$ + + $endif$ $if(highlighting-css)$ + + $endif$ + + $for(css)$ + + $endfor$ $if(math)$ $math$ $endif$ $for(header-includes)$ $header-includes$ $endfor$ + + + $for(include-before)$ $include-before$ $endfor$ $if(title)$ +
+

$title$

+ $if(subtitle)$ +

$subtitle$

+ $endif$ +
    + $for(author)$ +
  • $author$
  • + $endfor$ +
+ $if(date)$ +

$date$

+ $endif$ +
+ $endif$ $if(toc)$ +
$toc$
+ $endif$ + +

Abstract

+
+ $if(abstract)$ $abstract$ $else$ Please provide an abstract in the metadata block at the top of your markdown + document. Refer to template.txt for details. $endif$ +
+ + $body$ $for(include-after)$ $include-after$ $endfor$ + + diff --git a/paper/pandoc/iclc.latex b/docs/iclc2023-paper/pandoc/iclc.latex similarity index 100% rename from paper/pandoc/iclc.latex rename to docs/iclc2023-paper/pandoc/iclc.latex diff --git a/paper/pandoc/iclc.sty b/docs/iclc2023-paper/pandoc/iclc.sty similarity index 100% rename from paper/pandoc/iclc.sty rename to docs/iclc2023-paper/pandoc/iclc.sty diff --git a/paper/paper-preprocessed.md b/docs/iclc2023-paper/paper-preprocessed.md similarity index 100% rename from paper/paper-preprocessed.md rename to docs/iclc2023-paper/paper-preprocessed.md diff --git a/paper/paper.md b/docs/iclc2023-paper/paper.md similarity index 100% rename from paper/paper.md rename to docs/iclc2023-paper/paper.md diff --git a/paper/paper.pdf b/docs/iclc2023-paper/paper.pdf similarity index 100% rename from paper/paper.pdf rename to docs/iclc2023-paper/paper.pdf diff --git a/paper/tex/latex-template.tex b/docs/iclc2023-paper/tex/latex-template.tex similarity index 100% rename from paper/tex/latex-template.tex rename to docs/iclc2023-paper/tex/latex-template.tex diff --git a/paper/tex/sig-alternate.cls b/docs/iclc2023-paper/tex/sig-alternate.cls similarity index 100% rename from paper/tex/sig-alternate.cls rename to docs/iclc2023-paper/tex/sig-alternate.cls diff --git a/paper/tex/waccopyright.sty b/docs/iclc2023-paper/tex/waccopyright.sty similarity index 100% rename from paper/tex/waccopyright.sty rename to docs/iclc2023-paper/tex/waccopyright.sty diff --git a/docs/technical-manual/index.md b/docs/technical-manual/index.md new file mode 100644 index 00000000..16c9a553 --- /dev/null +++ b/docs/technical-manual/index.md @@ -0,0 +1,197 @@ +This document introduces you to Strudel in a technical sense. + +It is rather out of date, but there might still be useful info below. + +If you just want to *use* Strudel, have a look at the [Tutorial](https://strudel.tidalcycles.org/tutorial/). + +## Strudel Packages + +There are different packages for different purposes. They.. + +- split up the code into smaller chunks +- can be selectively used to implement some sort of time based system + +Please refer to the individual README files in the [packages folder](https://codeberg.org/uzu/strudel/src/branch/main/packages) + +## REPL + +The [REPL](https://strudel.tidalcycles.org/) is the place where all packages come together to form a live coding system. It can also be seen as a reference implementation for users of the library. + +More info in the [REPL README](https://codeberg.org/uzu/strudel/src/branch/main/packages/repl/README.md) + +# High Level Overview + + + +## 1. End User Code + +The End User Code is written in JavaScript with added syntax sugar. The [eval package](https://github.com/tidalcycles/strudel/tree/main/packages/eval#strudelcycleseval) evaluates the user code +after a transpilation step, which resolves the syntax sugar. If you don't want the syntax sugar, you can omit the eval package and call the native javascript `eval` instead. + +### 🍭 Syntax Sugar + +JavaScript Transpilation = converting valid JavaScript to valid JavaScript: + +```js +"c3 [e3 g3]".fast(2) +``` + +becomes + +```js +mini('c3 [e3 g3]') + .withMiniLocation([1, 0, 0], [1, 11, 11]) // source location + .fast(2); +``` + +- double quoted strings and backtick strings are turned into `mini` calls (single quoted strings are left as is) +- The source location is added by chaining `withMiniLocation`, which enables the real time highlighting later +- (psuedo) variable names that look like notes (like `c4`, `bb2` or `fs3`) are turned into strings +- support for top level await +- operator overloading could be implemented in the future + +This is how it works: + + + +- The user code is parsed with a [shift parser](https://github.com/shapesecurity/shift-parser-js), generating an AST +- The AST is transformed to resolve the syntax sugar +- The AST is used to generate code again (shift-codegen) + +Shift will most likely be replaced with acorn in the future, see https://github.com/tidalcycles/strudel/issues/174 + +### Mini Notation + +Another important part of the user code is the mini notation, which allows to express rhythms in a short manner. + +- the mini notation is [implemented as a PEG grammar](https://github.com/tidalcycles/strudel/blob/main/packages/mini/krill.pegjs), living in the [mini package](https://github.com/tidalcycles/strudel/tree/main/packages/mini) +- it is based on [krill](https://github.com/Mdashdotdashn/krill) by Mdashdotdashn +- the peg grammar is used to generate a parser with [peggyjs](https://peggyjs.org/) +- the generated parser takes a mini notation string and outputs an AST +- the AST can then be used to construct a pattern using the regular Strudel API + +Here's an example AST: + +```json +{ + "type_": "pattern", + "arguments_": { "alignment": "h" }, + "source_": [ + { + "type_": "element", "source_": "c3", + "location_": { "start": { "offset": 1, "line": 1, "column": 2 }, "end": { "offset": 4, "line": 1, "column": 5 } } + }, + { + "type_": "element", + "location_": { "start": { "offset": 4, "line": 1, "column": 5 }, "end": { "offset": 11, "line": 1, "column": 12 } } + "source_": { + "type_": "pattern", "arguments_": { "alignment": "h" }, + "source_": [ + { + "type_": "element", "source_": "e3", + "location_": { "start": { "offset": 5, "line": 1, "column": 6 }, "end": { "offset": 8, "line": 1, "column": 9 } } + }, + { + "type_": "element", "source_": "g3", + "location_": { "start": { "offset": 8, "line": 1, "column": 9 }, "end": { "offset": 10, "line": 1, "column": 11 } } + } + ] + }, + } + ] +} +``` + +which translates to `seq(c3, seq(e3, g3))` + +## 2. Querying & Scheduling + +When the user code has been evaluated, we hopefully get a Pattern instance, which we can use to query events from. +These events can then be used to trigger side effects in the real world. On that note, Events are mostly called Hap(s) in the codebase, because JS already has a built in `Event` class. + +### Querying + +> Querying = Asking a Pattern for Events within a certain time span + +```js +seq('c3', ['e3', 'g3']) // <--- Pattern + .queryArc(0, 2) // query events within 0 and 2 cycles + .map((hap) => hap.showWhole()); // make readable +``` + +yields + +```js +[ + '0/1 -> 1/2: c3', // cycle 0 + '1/2 -> 3/4: e3', + '3/4 -> 1/1: g3', + '1/1 -> 3/2: c3', // cycle 1 + '3/2 -> 7/4: e3', + '7/4 -> 2/1: g3', +]; +``` + +### 🗓️ Scheduling + +The scheduler will query events repeatedly, creating a possibly endless loop of time slices. +Here is a simplified example of how it works + +```js +let step = 0.5; // query interval in seconds +let tick = 0; // how many intervals have passed +let pattern = seq('c3', ['e3', 'g3']); // pattern from user +setInterval(() => { + const events = pattern.queryArc(tick * step, ++tick * step); + events.forEach((event) => { + console.log(event.showWhole()); + const o = getAudioContext().createOscillator(); + o.frequency.value = getFreq(event.value); + o.start(event.whole.begin); + o.stop(event.whole.begin + event.duration); + o.connect(getAudioContext().destination); + }); +}, step * 1000); // query each "step" seconds +``` + +## 3. Sound Output + +The third and last step is to use the scheduled events to make sound. +Patterns are wrapped with param functions to compose different properties of the sound. + +```js +note("[c2(3,8) [ bb1]]") // sets frequency + .s("") // sound source + .gain(.5) // turn down volume + .cutoff(sine.range(200,1000).slow(4)) // modulated cutoff + .slow(2) + .out().logValues()`, + ]} +/> +``` + +Here is an example Hap value with different properties: + +```js +{ note: 'a4', s: 'sawtooth', gain: 0.5, cutoff: 267 } +``` + + +
+ +- Patterns represent just values in time! +- Suitable for any time based output (music, visuals, movement, .. ?) + +### Supported Outputs + +At the time of writing this doc, the following outputs are supported: + +- Web Audio API `.out()` see [/webaudio](https://github.com/tidalcycles/strudel/tree/main/packages/webaudio) +- MIDI `.midi()` see [/midi](https://github.com/tidalcycles/strudel/tree/main/packages/midi) +- OSC `.osc()` see [/osc](https://github.com/tidalcycles/strudel/tree/main/packages/osc) +- Serial `.serial()` see [/serial](https://github.com/tidalcycles/strudel/tree/main/packages/serial) +- Tone.js `.tone()` (deprecated?) [/tone](https://github.com/tidalcycles/strudel/tree/main/packages/tone) +- WebDirt `.webdirt()` (deprecated?) [/webdirt](https://github.com/tidalcycles/strudel/tree/main/packages/webdirt) +- Speech `.speak()` (experimental) part of [/core](https://github.com/tidalcycles/strudel/tree/main/packages/core) + +These could change, so make sure to check the [packages folder](https://github.com/tidalcycles/strudel/tree/main/packages). diff --git a/docs/technical-manual/shiftflow.png b/docs/technical-manual/shiftflow.png new file mode 100644 index 00000000..8d91658d Binary files /dev/null and b/docs/technical-manual/shiftflow.png differ diff --git a/docs/technical-manual/strudelflow.png b/docs/technical-manual/strudelflow.png new file mode 100644 index 00000000..72cdf494 Binary files /dev/null and b/docs/technical-manual/strudelflow.png differ diff --git a/docs/technical-manual/waa-nodes.png b/docs/technical-manual/waa-nodes.png new file mode 100644 index 00000000..cece1aa9 Binary files /dev/null and b/docs/technical-manual/waa-nodes.png differ diff --git a/eslint.config.mjs b/eslint.config.mjs new file mode 100644 index 00000000..19d9bb39 --- /dev/null +++ b/eslint.config.mjs @@ -0,0 +1,86 @@ +import _import from 'eslint-plugin-import'; +import { fixupPluginRules } from '@eslint/compat'; +import globals from 'globals'; +import path from 'node:path'; +import { fileURLToPath } from 'node:url'; +import js from '@eslint/js'; +import { FlatCompat } from '@eslint/eslintrc'; + +const __filename = fileURLToPath(import.meta.url); +const __dirname = path.dirname(__filename); +const compat = new FlatCompat({ + baseDirectory: __dirname, + recommendedConfig: js.configs.recommended, + allConfig: js.configs.all, +}); + +export default [ + { + ignores: [ + '**/krill-parser.js', + '**/krill.pegjs', + '**/.eslintrc.json', + '**/server.js', + '**/tidal-sniffer.js', + '**/*.jsx', + '**/tunejs.js', + 'out/**/*', + '**/postcss.config.js', + '**/postcss.config.cjs', + '**/tailwind.config.js', + '**/tailwind.config.cjs', + '**/vite.config.js', + '**/dist/**/*', + '!**/*.mjs', + '**/*.tsx', + '**/*.ts', + '**/*.json', + '**/dev-dist', + '**/dist', + 'src-tauri/target/**/*', + '**/reverbGen.mjs', + '**/hydra.mjs', + '**/jsdoc-synonyms.js', + 'packages/hs2js/src/hs2js.mjs', + '**/samples', + ], + }, + ...compat.extends('eslint:recommended').map((config) => ({ + ...config, + files: ['**/*.mjs', '**/*.js'], + })), + { + files: ['**/*.mjs', '**/*.js'], + + plugins: { + import: fixupPluginRules(_import), + }, + + languageOptions: { + globals: { + ...globals.node, + ...globals.browser, + }, + + ecmaVersion: 'latest', + sourceType: 'module', + }, + + rules: { + 'no-unused-vars': [ + 'warn', + { + destructuredArrayIgnorePattern: '.', + ignoreRestSiblings: false, + }, + ], + + 'import/no-extraneous-dependencies': [ + 'error', + { + devDependencies: true, + }, + ], + }, + }, +]; 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..e0ce35b8 100644
--- a/examples/codemirror-repl/package.json
+++ b/examples/codemirror-repl/package.json
@@ -9,11 +9,12 @@
     "preview": "vite preview"
   },
   "devDependencies": {
-    "vite": "^5.0.10"
+    "vite": "^6.0.11"
   },
   "dependencies": {
     "@strudel/codemirror": "workspace:*",
     "@strudel/core": "workspace:*",
+    "@strudel/draw": "workspace:*",
     "@strudel/mini": "workspace:*",
     "@strudel/soundfonts": "workspace:*",
     "@strudel/tonal": "workspace:*",
diff --git a/examples/headless-repl/package.json b/examples/headless-repl/package.json
index 5c1fa162..0a294179 100644
--- a/examples/headless-repl/package.json
+++ b/examples/headless-repl/package.json
@@ -10,7 +10,7 @@
     "preview": "vite preview"
   },
   "devDependencies": {
-    "vite": "^5.0.10"
+    "vite": "^6.0.11"
   },
   "dependencies": {
     "@strudel/web": "workspace:*"
diff --git a/examples/minimal-repl/package.json b/examples/minimal-repl/package.json
index c8d6d888..8f904c61 100644
--- a/examples/minimal-repl/package.json
+++ b/examples/minimal-repl/package.json
@@ -10,7 +10,7 @@
     "preview": "vite preview"
   },
   "devDependencies": {
-    "vite": "^5.0.10"
+    "vite": "^6.0.11"
   },
   "dependencies": {
     "@strudel/core": "workspace:*",
diff --git a/examples/superdough/package.json b/examples/superdough/package.json
index 288554d2..eb5d8e9f 100644
--- a/examples/superdough/package.json
+++ b/examples/superdough/package.json
@@ -12,6 +12,6 @@
     "superdough": "workspace:*"
   },
   "devDependencies": {
-    "vite": "^5.0.10"
+    "vite": "^6.0.11"
   }
 }
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..21c8ee17
--- /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://codeberg.org/uzu/strudel.git"
+  },
+  "keywords": [
+    "titdalcycles",
+    "strudel",
+    "pattern",
+    "livecoding",
+    "algorave"
+  ],
+  "author": "Felix Roos ",
+  "license": "AGPL-3.0-or-later",
+  "bugs": {
+    "url": "https://codeberg.org/uzu/strudel/issues"
+  },
+  "homepage": "https://codeberg.org/uzu/strudel#readme",
+  "dependencies": {
+    "@strudel/web": "workspace:*",
+    "hs2js": "workspace:*"
+  },
+  "devDependencies": {
+    "vite": "^6.0.11"
+  }
+}
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/jsdoc/jsdoc-synonyms.js b/jsdoc/jsdoc-synonyms.js
index 09190846..0b52420b 100644
--- a/jsdoc/jsdoc-synonyms.js
+++ b/jsdoc/jsdoc-synonyms.js
@@ -1,6 +1,6 @@
 /*
 jsdoc-synonyms.js - Add support for @synonym tag
-Copyright (C) 2023 Strudel contributors - see 
+Copyright (C) 2023 Strudel contributors - see 
 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 .
 */
 
diff --git a/my-patterns/README.md b/my-patterns/README.md
index c8d694ea..5283ad81 100644
--- a/my-patterns/README.md
+++ b/my-patterns/README.md
@@ -5,22 +5,24 @@ made into a pattern swatch.
 
 Example: 
 
+Please note: These instructions have not been fully tested/adapted since strudel moved to codeberg from github. PRs welcome!
+
 ## deploy
 
-### 1. fork the [strudel repo on github](https://github.com/tidalcycles/strudel.git)
+### 1. fork the [strudel repo on codeberg](https://codeberg.org/uzu/strudel.git)
 
-### 2. clone your fork to your machine `git clone https://github.com//strudel.git strudel && cd strudel`
+### 2. clone your fork to your machine `git clone https://codeberg.org//strudel.git strudel && cd strudel`
 
 ### 3. create a separate branch like `git branch patternuary && git checkout patternuary`
 
 ### 4. save one or more .txt files in the my-patterns folder
 
-### 5. edit `website/public/CNAME` to contain `.github.io/strudel`
+### 5. edit `website/public/CNAME` to contain `.codeberg.page/strudel`
 
-### 6. edit `website/astro.config.mjs` to use site: `https://.github.io` and base `/strudel`, like this
+### 6. edit `website/astro.config.mjs` to use site: `https://.codeberg.page` and base `/strudel`, like this
 
 ```js
-const site = 'https://.github.io';
+const site = 'https://.codeberg.page';
 const base = '/strudel';
 ```
 
@@ -30,15 +32,9 @@ const base = '/strudel';
 git add . && git commit -m "site config" && git push --set-upstream origin
 ```
 
-### 8. deploy to github pages
+### 8. deploy to codeberg pages
 
-- go to settings -> pages and select "Github Actions" as source
-- go to settings -> environments -> github-pages and press the edit button next to `main` and type in `patternuary` (under "Deployment branches")
-- go to Actions -> `Build and Deploy` and click `Run workflow` with branch `patternuary`
-
-### 9. view your patterns at `.github.io/strudel/swatch/`
-
-Alternatively, github pages allows you to use a custom domain, like https://mycooldomain.org/swatch/. [See their documentation for details](https://docs.github.com/en/pages/configuring-a-custom-domain-for-your-github-pages-site).
+### 9. view your patterns at `.codeberg.page/strudel/swatch/`
 
 ### 10. optional: automatic deployment
 
diff --git a/package.json b/package.json
index 8aefa102..d18291eb 100644
--- a/package.json
+++ b/package.json
@@ -21,7 +21,7 @@
     "osc": "cd packages/osc && npm run server",
     "jsdoc": "jsdoc packages/ -c jsdoc/jsdoc.config.json",
     "jsdoc-json": "jsdoc packages/ --template ./node_modules/jsdoc-json --destination doc.json -c jsdoc/jsdoc.config.json",
-    "lint": "eslint . --ext mjs,js --quiet",
+    "lint": "eslint . --quiet",
     "codeformat": "prettier --write .",
     "format-check": "prettier --check .",
     "report-undocumented": "npm run jsdoc-json && node jsdoc/undocumented.mjs > undocumented.json",
@@ -31,7 +31,7 @@
   },
   "repository": {
     "type": "git",
-    "url": "git+https://github.com/tidalcycles/strudel.git"
+    "url": "git+https://codeberg.org/uzu/strudel.git"
   },
   "keywords": [
     "tidalcycles",
@@ -43,7 +43,7 @@
   "author": "Alex McLean  (https://slab.org)",
   "license": "AGPL-3.0-or-later",
   "bugs": {
-    "url": "https://github.com/tidalcycles/strudel/issues"
+    "url": "https://codeberg.org/uzu/strudel/issues"
   },
   "homepage": "https://strudel.cc",
   "dependencies": {
@@ -55,19 +55,23 @@
     "@strudel/xen": "workspace:*"
   },
   "devDependencies": {
-    "@tauri-apps/cli": "^1.5.9",
-    "@vitest/ui": "^1.1.0",
-    "acorn": "^8.11.3",
-    "dependency-tree": "^10.0.9",
-    "eslint": "^8.56.0",
-    "eslint-plugin-import": "^2.29.1",
+    "@eslint/compat": "^1.2.5",
+    "@eslint/eslintrc": "^3.2.0",
+    "@eslint/js": "^9.19.0",
+    "@tauri-apps/cli": "^2.2.7",
+    "@vitest/coverage-v8": "3.0.4",
+    "@vitest/ui": "^3.0.4",
+    "acorn": "^8.14.0",
+    "dependency-tree": "^11.0.1",
+    "eslint": "^9.19.0",
+    "eslint-plugin-import": "^2.31.0",
     "events": "^3.3.0",
-    "jsdoc": "^4.0.2",
+    "globals": "^15.14.0",
+    "jsdoc": "^4.0.4",
     "jsdoc-json": "^2.0.2",
-    "jsdoc-to-markdown": "^8.0.0",
-    "lerna": "^8.0.1",
-    "prettier": "^3.1.1",
-    "rollup-plugin-visualizer": "^5.12.0",
-    "vitest": "^1.1.0"
+    "lerna": "^8.1.9",
+    "prettier": "^3.4.2",
+    "vitest": "^3.0.4",
+    "vite-plugin-bundle-audioworklet": "workspace:*"
   }
-}
+}
\ No newline at end of file
diff --git a/packages/README.md b/packages/README.md
index 7a7681b6..98938d6c 100644
--- a/packages/README.md
+++ b/packages/README.md
@@ -2,4 +2,4 @@
 
 Each folder represents one of the @strudel/* packages [published to npm](https://www.npmjs.com/org/strudel).
 
-To understand how those pieces connect, refer to the [Technical Manual](https://github.com/tidalcycles/strudel/wiki/Technical-Manual) or the individual READMEs.
+To understand how those pieces connect, refer to the [Technical Manual](https://codeberg.org/uzu/strudel/wiki/Technical-Manual) or the individual READMEs.
diff --git a/packages/codemirror/codemirror.mjs b/packages/codemirror/codemirror.mjs
index d28bf95d..193d96b5 100644
--- a/packages/codemirror/codemirror.mjs
+++ b/packages/codemirror/codemirror.mjs
@@ -1,4 +1,5 @@
 import { closeBrackets } from '@codemirror/autocomplete';
+export { toggleComment, toggleBlockComment, toggleLineComment, toggleBlockCommentByLine } from '@codemirror/commands';
 // import { search, highlightSelectionMatches } from '@codemirror/search';
 import { history } from '@codemirror/commands';
 import { javascript } from '@codemirror/lang-javascript';
@@ -12,7 +13,7 @@ import {
   lineNumbers,
   drawSelection,
 } from '@codemirror/view';
-import { Pattern, repl } from '@strudel/core';
+import { repl, registerControl } from '@strudel/core';
 import { Drawer, cleanupDraw } from '@strudel/draw';
 import { isAutoCompletionEnabled } from './autocomplete.mjs';
 import { isTooltipEnabled } from './tooltip.mjs';
@@ -61,11 +62,12 @@ export const codemirrorSettings = persistentAtom('codemirror-settings', defaultS
 });
 
 // https://codemirror.net/docs/guide/
-export function initEditor({ initialCode = '', onChange, onEvaluate, onStop, root }) {
+export function initEditor({ initialCode = '', onChange, onEvaluate, onStop, root, mondo }) {
   const settings = codemirrorSettings.get();
   const initialSettings = Object.keys(compartments).map((key) =>
     compartments[key].of(extensions[key](parseBooleans(settings[key]))),
   );
+
   initTheme(settings.theme);
   let state = EditorState.create({
     doc: initialCode,
@@ -73,7 +75,7 @@ export function initEditor({ initialCode = '', onChange, onEvaluate, onStop, roo
       /* search(),
       highlightSelectionMatches(), */
       ...initialSettings,
-      javascript(),
+      mondo ? [] : javascript(),
       sliderPlugin,
       widgetPlugin,
       // indentOnInput(), // works without. already brought with javascript extension?
@@ -98,10 +100,8 @@ export function initEditor({ initialCode = '', onChange, onEvaluate, onStop, roo
           },
           {
             key: 'Alt-.',
-            run: (_, e) => {
-              e.preventDefault();
-              onStop?.();
-            },
+            preventDefault: true,
+            run: () => onStop?.(),
           },
           /* {
           key: 'Ctrl-Shift-.',
@@ -134,57 +134,50 @@ export class StrudelMirror {
       autodraw,
       prebake,
       bgFill = true,
+      solo = true,
       ...replOptions
     } = options;
     this.code = initialCode;
     this.root = root;
     this.miniLocations = [];
     this.widgets = [];
-    this.painters = [];
     this.drawTime = drawTime;
     this.drawContext = drawContext;
     this.onDraw = onDraw || this.draw;
     this.id = id || s4();
+    this.solo = solo;
 
-    this.drawer = new Drawer((haps, time) => {
+    this.drawer = new Drawer((haps, time, _, painters) => {
       const currentFrame = haps.filter((hap) => hap.isActive(time));
       this.highlight(currentFrame, time);
-      this.onDraw(haps, time, this.painters);
+      this.onDraw(haps, time, painters);
     }, drawTime);
 
     this.prebaked = prebake();
     autodraw && this.drawFirstFrame();
-
     this.repl = repl({
       ...replOptions,
+      id,
       onToggle: (started) => {
         replOptions?.onToggle?.(started);
         if (started) {
-          this.adjustDrawTime();
           this.drawer.start(this.repl.scheduler);
-          // stop other repls when this one is started
-          document.dispatchEvent(
-            new CustomEvent('start-repl', {
-              detail: this.id,
-            }),
-          );
+          if (this.solo) {
+            // stop other repls when this one is started
+            document.dispatchEvent(
+              new CustomEvent('start-repl', {
+                detail: this.id,
+              }),
+            );
+          }
         } else {
           this.drawer.stop();
           updateMiniLocations(this.editor, []);
-          cleanupDraw(false);
+          cleanupDraw(true, id);
         }
       },
       beforeEval: async () => {
-        cleanupDraw();
-        this.painters = [];
-        const self = this;
-        // this is similar to repl.mjs > injectPatternMethods
-        // maybe there is a solution without prototype hacking, but hey, it works
-        // we need to do this befor every eval to make sure it works with multiple StrudelMirror's side by side
-        Pattern.prototype.onPaint = function (onPaint) {
-          self.painters.push(onPaint);
-          return this;
-        };
+        cleanupDraw(true, id);
         await this.prebaked;
         await replOptions?.beforeEval?.();
       },
@@ -198,8 +191,11 @@ export class StrudelMirror {
         updateWidgets(this.editor, widgets);
         updateMiniLocations(this.editor, this.miniLocations);
         replOptions?.afterEval?.(options);
-        this.adjustDrawTime();
-        this.drawer.invalidate();
+        // if no painters are set (.onPaint was not called), then we only need the present moment (for highlighting)
+        const drawTime = options.pattern.getPainters().length ? this.drawTime : [0, 0];
+        this.drawer.setDrawTime(drawTime);
+        // invalidate drawer after we've set the appropriate drawTime
+        this.drawer.invalidate(this.repl.scheduler);
       },
     });
     this.editor = initEditor({
@@ -213,6 +209,7 @@ export class StrudelMirror {
       },
       onEvaluate: () => this.evaluate(),
       onStop: () => this.stop(),
+      mondo: replOptions.mondo,
     });
     const cmEditor = this.root.querySelector('.cm-editor');
     if (cmEditor) {
@@ -228,19 +225,14 @@ export class StrudelMirror {
 
     // stop this repl when another repl is started
     this.onStartRepl = (e) => {
-      if (e.detail !== this.id) {
+      if (this.solo && e.detail !== this.id) {
         this.stop();
       }
     };
     document.addEventListener('start-repl', this.onStartRepl);
   }
-  // adjusts draw time depending on if there are painters
-  adjustDrawTime() {
-    // when no painters are set, [0,0] is enough (just highlighting)
-    this.drawer.setDrawTime(this.painters.length ? this.drawTime : [0, 0]);
-  }
-  draw(haps, time) {
-    this.painters?.forEach((painter) => painter(this.drawContext, time, haps, this.drawTime));
+  draw(haps, time, painters) {
+    painters?.forEach((painter) => painter(this.drawContext, time, haps, this.drawTime));
   }
   async drawFirstFrame() {
     if (!this.onDraw) {
@@ -252,7 +244,7 @@ export class StrudelMirror {
       await this.repl.evaluate(this.code, false);
       this.drawer.invalidate(this.repl.scheduler, -0.001);
       // draw at -0.001 to avoid haps at 0 to be visualized as active
-      this.onDraw?.(this.drawer.visibleHaps, -0.001, this.painters);
+      this.onDraw?.(this.drawer.visibleHaps, -0.001, this.drawer.painters);
     } catch (err) {
       console.warn('first frame could not be painted');
     }
@@ -345,6 +337,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) {
@@ -357,3 +360,12 @@ function s4() {
     .toString(16)
     .substring(1);
 }
+
+/**
+ * Overrides the css of highlighted events. Make sure to use single quotes!
+ * @name markcss
+ * @example
+ * note("c a f e")
+ * .markcss('text-decoration:underline')
+ */
+export const markcss = registerControl('markcss');
diff --git a/packages/codemirror/flash.mjs b/packages/codemirror/flash.mjs
index 6b37038f..243500bf 100644
--- a/packages/codemirror/flash.mjs
+++ b/packages/codemirror/flash.mjs
@@ -11,7 +11,9 @@ export const flashField = StateField.define({
       for (let e of tr.effects) {
         if (e.is(setFlash)) {
           if (e.value && tr.newDoc.length > 0) {
-            const mark = Decoration.mark({ attributes: { style: `background-color: #FFCA2880` } });
+            const mark = Decoration.mark({
+              attributes: { style: `background-color: rgba(255,255,255, .4); filter: invert(10%)` },
+            });
             flash = Decoration.set([mark.range(0, tr.newDoc.length)]);
           } else {
             flash = Decoration.set([]);
diff --git a/packages/codemirror/highlight.mjs b/packages/codemirror/highlight.mjs
index 2f8cb38d..f9f977c6 100644
--- a/packages/codemirror/highlight.mjs
+++ b/packages/codemirror/highlight.mjs
@@ -1,4 +1,4 @@
-import { RangeSetBuilder, StateEffect, StateField } from '@codemirror/state';
+import { RangeSetBuilder, StateEffect, StateField, Prec } from '@codemirror/state';
 import { Decoration, EditorView } from '@codemirror/view';
 
 export const setMiniLocations = StateEffect.define();
@@ -93,6 +93,7 @@ const miniLocationHighlights = EditorView.decorations.compute([miniLocations, vi
     if (haps.has(id)) {
       const hap = haps.get(id);
       const color = hap.value?.color ?? 'var(--foreground)';
+      const style = hap.value?.markcss || `outline: solid 2px ${color}`;
       // Get explicit channels for color values
       /* 
       const swatch = document.createElement('div');
@@ -114,7 +115,7 @@ const miniLocationHighlights = EditorView.decorations.compute([miniLocations, vi
         to,
         Decoration.mark({
           // attributes: { style: `outline: solid 2px rgba(${channels.join(', ')})` },
-          attributes: { style: `outline: solid 2px ${color}` },
+          attributes: { style },
         }),
       );
     }
@@ -133,5 +134,5 @@ export const isPatternHighlightingEnabled = (on, config) => {
     setTimeout(() => {
       updateMiniLocations(config.editor, config.miniLocations);
     }, 100);
-  return on ? highlightExtension : [];
+  return on ? Prec.highest(highlightExtension) : [];
 };
diff --git a/packages/codemirror/package.json b/packages/codemirror/package.json
index 133c4148..4f8508c9 100644
--- a/packages/codemirror/package.json
+++ b/packages/codemirror/package.json
@@ -1,6 +1,6 @@
 {
   "name": "@strudel/codemirror",
-  "version": "1.0.1",
+  "version": "1.2.2",
   "description": "Codemirror Extensions for Strudel",
   "main": "index.mjs",
   "publishConfig": {
@@ -13,7 +13,7 @@
   "type": "module",
   "repository": {
     "type": "git",
-    "url": "git+https://github.com/tidalcycles/strudel.git"
+    "url": "git+https://codeberg.org/uzu/strudel.git"
   },
   "keywords": [
     "tidalcycles",
@@ -28,30 +28,28 @@
   ],
   "license": "AGPL-3.0-or-later",
   "bugs": {
-    "url": "https://github.com/tidalcycles/strudel/issues"
+    "url": "https://codeberg.org/uzu/strudel/issues"
   },
-  "homepage": "https://github.com/tidalcycles/strudel#readme",
+  "homepage": "https://codeberg.org/uzu/strudel#readme",
   "dependencies": {
-    "@codemirror/autocomplete": "^6.11.1",
-    "@codemirror/commands": "^6.3.3",
-    "@codemirror/lang-javascript": "^6.2.1",
-    "@codemirror/language": "^6.10.0",
-    "@codemirror/search": "^6.5.5",
-    "@codemirror/state": "^6.4.0",
-    "@codemirror/view": "^6.23.0",
-    "@lezer/highlight": "^1.2.0",
-    "@nanostores/persistent": "^0.9.1",
-    "@replit/codemirror-emacs": "^6.0.1",
-    "@replit/codemirror-vim": "^6.1.0",
+    "@codemirror/autocomplete": "^6.18.4",
+    "@codemirror/commands": "^6.8.0",
+    "@codemirror/lang-javascript": "^6.2.2",
+    "@codemirror/language": "^6.10.8",
+    "@codemirror/search": "^6.5.8",
+    "@codemirror/state": "^6.5.1",
+    "@codemirror/view": "^6.36.2",
+    "@lezer/highlight": "^1.2.1",
+    "@nanostores/persistent": "^0.10.2",
+    "@replit/codemirror-emacs": "^6.1.0",
+    "@replit/codemirror-vim": "^6.2.1",
     "@replit/codemirror-vscode-keymap": "^6.0.2",
     "@strudel/core": "workspace:*",
     "@strudel/draw": "workspace:*",
     "@strudel/transpiler": "workspace:*",
-    "@uiw/codemirror-themes": "^4.21.21",
-    "@uiw/codemirror-themes-all": "^4.21.21",
-    "nanostores": "^0.9.5"
+    "nanostores": "^0.11.3"
   },
   "devDependencies": {
-    "vite": "^5.0.10"
+    "vite": "^6.0.11"
   }
 }
diff --git a/packages/codemirror/themes.mjs b/packages/codemirror/themes.mjs
index f25cf9ce..1a523b39 100644
--- a/packages/codemirror/themes.mjs
+++ b/packages/codemirror/themes.mjs
@@ -1,440 +1,129 @@
-import {
-  abcdef,
-  androidstudio,
-  atomone,
-  aura,
-  bespin,
-  darcula,
-  dracula,
-  duotoneDark,
-  eclipse,
-  githubDark,
-  gruvboxDark,
-  materialDark,
-  nord,
-  okaidia,
-  solarizedDark,
-  sublime,
-  tokyoNight,
-  tokyoNightStorm,
-  vscodeDark,
-  xcodeDark,
-  bbedit,
-  duotoneLight,
-  githubLight,
-  gruvboxLight,
-  materialLight,
-  noctisLilac,
-  solarizedLight,
-  tokyoNightDay,
-  xcodeLight,
-} from '@uiw/codemirror-themes-all';
+import strudelTheme, { settings as strudelThemeSettings } from './themes/strudel-theme.mjs';
+import bluescreen, { settings as bluescreenSettings } from './themes/bluescreen.mjs';
+import blackscreen, { settings as blackscreenSettings } from './themes/blackscreen.mjs';
+import whitescreen, { settings as whitescreenSettings } from './themes/whitescreen.mjs';
+import teletext, { settings as teletextSettings } from './themes/teletext.mjs';
+import algoboy, { settings as algoboySettings } from './themes/algoboy.mjs';
+import CutiePi, { settings as CutiePiSettings } from './themes/CutiePi.mjs';
+import sonicPink, { settings as sonicPinkSettings } from './themes/sonic-pink.mjs';
+import redText, { settings as redTextSettings } from './themes/red-text.mjs';
+import greenText, { settings as greenTextSettings } from './themes/green-text.mjs';
+import archBtw, { settings as archBtwSettings } from './themes/archBtw.mjs';
+import fruitDaw, { settings as fruitDawSettings } from './themes/fruitDaw.mjs';
+
+import bluescreenlight, { settings as bluescreenlightsettings } from './themes/bluescreenlight.mjs';
+
+import androidstudio, { settings as androidstudioSettings } from './themes/androidstudio.mjs';
+import atomone, { settings as atomOneSettings } from './themes/atomone.mjs';
+import aura, { settings as auraSettings } from './themes/aura.mjs';
+import darcula, { settings as darculaSettings } from './themes/darcula.mjs';
+import dracula, { settings as draculaSettings } from './themes/dracula.mjs';
+import duotoneDark, { settings as duotoneDarkSettings } from './themes/duotoneDark.mjs';
+import eclipse, { settings as eclipseSettings } from './themes/eclipse.mjs';
+import githubDark, { settings as githubDarkSettings } from './themes/githubDark.mjs';
+import githubLight, { settings as githubLightSettings } from './themes/githubLight.mjs';
+import gruvboxDark, { settings as gruvboxDarkSettings } from './themes/gruvboxDark.mjs';
+import gruvboxLight, { settings as gruvboxLightSettings } from './themes/gruvboxLight.mjs';
+import materialDark, { settings as materialDarkSettings } from './themes/materialDark.mjs';
+import materialLight, { settings as materialLightSettings } from './themes/materialLight.mjs';
+import nord, { settings as nordSettings } from './themes/nord.mjs';
+import monokai, { settings as monokaiSettings } from './themes/monokai.mjs';
+import solarizedDark, { settings as solarizedDarkSettings } from './themes/solarizedDark.mjs';
+import solarizedLight, { settings as solarizedLightSettings } from './themes/solarizedLight.mjs';
+import sublime, { settings as sublimeSettings } from './themes/sublime.mjs';
+import tokyoNight, { settings as tokyoNightSettings } from './themes/tokyoNight.mjs';
+import tokyoNightStorm, { settings as tokyoNightStormSettings } from './themes/tokioNightStorm.mjs';
+import tokyoNightDay, { settings as tokyoNightDaySettings } from './themes/tokyoNightDay.mjs';
+import vscodeDark, { settings as vscodeDarkSettings } from './themes/vscodeDark.mjs';
+import vscodeLight, { settings as vscodeLightSettings } from './themes/vscodeLight.mjs';
+import xcodeLight, { settings as xcodeLightSettings } from './themes/xcodeLight.mjs';
+import bbedit, { settings as bbeditSettings } from './themes/bbedit.mjs';
+import noctisLilac, { settings as noctisLilacSettings } from './themes/noctisLilac.mjs';
 
-import strudelTheme from './themes/strudel-theme';
-import bluescreen, { settings as bluescreenSettings } from './themes/bluescreen';
-import blackscreen, { settings as blackscreenSettings } from './themes/blackscreen';
-import whitescreen, { settings as whitescreenSettings } from './themes/whitescreen';
-import teletext, { settings as teletextSettings } from './themes/teletext';
-import algoboy, { settings as algoboySettings } from './themes/algoboy';
-import terminal, { settings as terminalSettings } from './themes/terminal';
 import { setTheme } from '@strudel/draw';
-
 export const themes = {
   strudelTheme,
-  bluescreen,
-  blackscreen,
-  whitescreen,
-  teletext,
   algoboy,
-  terminal,
-  abcdef,
+  archBtw,
   androidstudio,
   atomone,
   aura,
-  bespin,
+  bbedit,
+  blackscreen,
+  bluescreen,
+  bluescreenlight,
+  CutiePi,
   darcula,
   dracula,
   duotoneDark,
   eclipse,
+  fruitDaw,
   githubDark,
+  githubLight,
+  greenText,
   gruvboxDark,
+  gruvboxLight,
+  sonicPink,
   materialDark,
+  materialLight,
+  monokai,
+  noctisLilac,
   nord,
-  okaidia,
+  redText,
   solarizedDark,
+  solarizedLight,
   sublime,
+  teletext,
   tokyoNight,
+  tokyoNightDay,
   tokyoNightStorm,
   vscodeDark,
-  xcodeDark,
-  bbedit,
-  duotoneLight,
-  githubLight,
-  gruvboxLight,
-  materialLight,
-  noctisLilac,
-  solarizedLight,
-  tokyoNightDay,
+  vscodeLight,
+  whitescreen,
   xcodeLight,
 };
 
-// lineBackground is background with 50% opacity, to make sure the selection below is visible
-
 export const settings = {
-  strudelTheme: {
-    background: '#222',
-    lineBackground: '#22222299',
-    foreground: '#fff',
-    // foreground: '#75baff',
-    caret: '#ffcc00',
-    selection: 'rgba(128, 203, 196, 0.5)',
-    selectionMatch: '#036dd626',
-    // lineHighlight: '#8a91991a', // original
-    lineHighlight: '#00000050',
-    gutterBackground: 'transparent',
-    // gutterForeground: '#8a919966',
-    gutterForeground: '#8a919966',
-  },
+  strudelTheme: strudelThemeSettings,
   bluescreen: bluescreenSettings,
+  bluescreenlight: bluescreenlightsettings,
   blackscreen: blackscreenSettings,
   whitescreen: whitescreenSettings,
   teletext: teletextSettings,
   algoboy: algoboySettings,
-  terminal: terminalSettings,
-  abcdef: {
-    background: '#0f0f0f',
-    lineBackground: '#0f0f0f99',
-    foreground: '#defdef',
-    caret: '#00FF00',
-    selection: '#515151',
-    selectionMatch: '#515151',
-    gutterBackground: '#555',
-    gutterForeground: '#FFFFFF',
-    lineHighlight: '#314151',
-  },
-  androidstudio: {
-    background: '#282b2e',
-    lineBackground: '#282b2e99',
-    foreground: '#a9b7c6',
-    caret: '#00FF00',
-    selection: '#343739',
-    selectionMatch: '#343739',
-    lineHighlight: '#343739',
-  },
-  atomone: {
-    background: '#272C35',
-    lineBackground: '#272C3599',
-    foreground: '#9d9b97',
-    caret: '#797977',
-    selection: '#ffffff30',
-    selectionMatch: '#2B323D',
-    gutterBackground: '#272C35',
-    gutterForeground: '#465063',
-    gutterBorder: 'transparent',
-    lineHighlight: '#2B323D',
-  },
-  aura: {
-    background: '#21202e',
-    lineBackground: '#21202e99',
-    foreground: '#edecee',
-    caret: '#a277ff',
-    selection: '#3d375e7f',
-    selectionMatch: '#3d375e7f',
-    gutterBackground: '#21202e',
-    gutterForeground: '#edecee',
-    gutterBorder: 'transparent',
-    lineHighlight: '#a394f033',
-  },
-  bbedit: {
-    light: true,
-    background: '#FFFFFF',
-    lineBackground: '#FFFFFF99',
-    foreground: '#000000',
-    caret: '#FBAC52',
-    selection: '#FFD420',
-    selectionMatch: '#FFD420',
-    gutterBackground: '#f5f5f5',
-    gutterForeground: '#4D4D4C',
-    gutterBorder: 'transparent',
-    lineHighlight: '#00000012',
-  },
-  bespin: {
-    background: '#28211c',
-    lineBackground: '#28211c99',
-    foreground: '#9d9b97',
-    caret: '#797977',
-    selection: '#36312e',
-    selectionMatch: '#4f382b',
-    gutterBackground: '#28211c',
-    gutterForeground: '#666666',
-    lineHighlight: 'rgba(255, 255, 255, 0.1)',
-  },
-  darcula: {
-    background: '#2B2B2B',
-    lineBackground: '#2B2B2B99',
-    foreground: '#f8f8f2',
-    caret: '#FFFFFF',
-    selection: 'rgba(255, 255, 255, 0.1)',
-    selectionMatch: 'rgba(255, 255, 255, 0.2)',
-    gutterBackground: 'rgba(255, 255, 255, 0.1)',
-    gutterForeground: '#999',
-    gutterBorder: 'transparent',
-    lineHighlight: 'rgba(255, 255, 255, 0.1)',
-  },
-  dracula: {
-    background: '#282a36',
-    lineBackground: '#282a3699',
-    foreground: '#f8f8f2',
-    caret: '#f8f8f0',
-    selection: 'rgba(255, 255, 255, 0.1)',
-    selectionMatch: 'rgba(255, 255, 255, 0.2)',
-    gutterBackground: '#282a36',
-    gutterForeground: '#6D8A88',
-    gutterBorder: 'transparent',
-    lineHighlight: 'rgba(255, 255, 255, 0.1)',
-  },
-  duotoneLight: {
-    light: true,
-    background: '#faf8f5',
-    lineBackground: '#faf8f599',
-    foreground: '#b29762',
-    caret: '#93abdc',
-    selection: '#e3dcce',
-    selectionMatch: '#e3dcce',
-    gutterBackground: '#faf8f5',
-    gutterForeground: '#cdc4b1',
-    gutterBorder: 'transparent',
-    lineHighlight: '#EFEFEF',
-  },
-  duotoneDark: {
-    background: '#2a2734',
-    lineBackground: '#2a273499',
-    foreground: '#6c6783',
-    caret: '#ffad5c',
-    selection: 'rgba(255, 255, 255, 0.1)',
-    gutterBackground: '#2a2734',
-    gutterForeground: '#545167',
-    lineHighlight: '#36334280',
-  },
-  eclipse: {
-    light: true,
-    background: '#fff',
-    lineBackground: '#ffffff99',
-    foreground: '#000',
-    caret: '#FFFFFF',
-    selection: '#d7d4f0',
-    selectionMatch: '#d7d4f0',
-    gutterBackground: '#f7f7f7',
-    gutterForeground: '#999',
-    lineHighlight: '#e8f2ff',
-    gutterBorder: 'transparent',
-  },
-  githubLight: {
-    light: true,
-    background: '#fff',
-    lineBackground: '#ffffff99',
-    foreground: '#24292e',
-    selection: '#BBDFFF',
-    selectionMatch: '#BBDFFF',
-    gutterBackground: '#fff',
-    gutterForeground: '#6e7781',
-  },
-  githubDark: {
-    background: '#0d1117',
-    lineBackground: '#0d111799',
-    foreground: '#c9d1d9',
-    caret: '#c9d1d9',
-    selection: '#003d73',
-    selectionMatch: '#003d73',
-    lineHighlight: '#36334280',
-  },
-  gruvboxDark: {
-    background: '#282828',
-    lineBackground: '#28282899',
-    foreground: '#ebdbb2',
-    caret: '#ebdbb2',
-    selection: '#bdae93',
-    selectionMatch: '#bdae93',
-    lineHighlight: '#3c3836',
-    gutterBackground: '#282828',
-    gutterForeground: '#7c6f64',
-  },
-  gruvboxLight: {
-    light: true,
-    background: '#fbf1c7',
-    lineBackground: '#fbf1c799',
-    foreground: '#3c3836',
-    caret: '#af3a03',
-    selection: '#ebdbb2',
-    selectionMatch: '#bdae93',
-    lineHighlight: '#ebdbb2',
-    gutterBackground: '#ebdbb2',
-    gutterForeground: '#665c54',
-    gutterBorder: 'transparent',
-  },
-  materialDark: {
-    background: '#2e3235',
-    lineBackground: '#2e323599',
-    foreground: '#bdbdbd',
-    caret: '#a0a4ae',
-    selection: '#d7d4f0',
-    selectionMatch: '#d7d4f0',
-    gutterBackground: '#2e3235',
-    gutterForeground: '#999',
-    gutterActiveForeground: '#4f5b66',
-    lineHighlight: '#545b61',
-  },
-  materialLight: {
-    light: true,
-    background: '#FAFAFA',
-    lineBackground: '#FAFAFA99',
-    foreground: '#90A4AE',
-    caret: '#272727',
-    selection: '#80CBC440',
-    selectionMatch: '#FAFAFA',
-    gutterBackground: '#FAFAFA',
-    gutterForeground: '#90A4AE',
-    gutterBorder: 'transparent',
-    lineHighlight: '#CCD7DA50',
-  },
-  noctisLilac: {
-    light: true,
-    background: '#f2f1f8',
-    lineBackground: '#f2f1f899',
-    foreground: '#0c006b',
-    caret: '#5c49e9',
-    selection: '#d5d1f2',
-    selectionMatch: '#d5d1f2',
-    gutterBackground: '#f2f1f8',
-    gutterForeground: '#0c006b70',
-    lineHighlight: '#e1def3',
-  },
-  nord: {
-    background: '#2e3440',
-    lineBackground: '#2e344099',
-    foreground: '#FFFFFF',
-    caret: '#FFFFFF',
-    selection: '#3b4252',
-    selectionMatch: '#e5e9f0',
-    gutterBackground: '#2e3440',
-    gutterForeground: '#4c566a',
-    gutterActiveForeground: '#d8dee9',
-    lineHighlight: '#4c566a',
-  },
-  okaidia: {
-    background: '#272822',
-    lineBackground: '#27282299',
-    foreground: '#FFFFFF',
-    caret: '#FFFFFF',
-    selection: '#49483E',
-    selectionMatch: '#49483E',
-    gutterBackground: '#272822',
-    gutterForeground: '#FFFFFF70',
-    lineHighlight: '#00000059',
-  },
-  solarizedLight: {
-    light: true,
-    background: '#fdf6e3',
-    lineBackground: '#fdf6e399',
-    foreground: '#657b83',
-    caret: '#586e75',
-    selection: '#dfd9c8',
-    selectionMatch: '#dfd9c8',
-    gutterBackground: '#00000010',
-    gutterForeground: '#657b83',
-    lineHighlight: '#dfd9c8',
-  },
-  solarizedDark: {
-    background: '#002b36',
-    lineBackground: '#002b3699',
-    foreground: '#93a1a1',
-    caret: '#839496',
-    selection: '#173541',
-    selectionMatch: '#aafe661a',
-    gutterBackground: '#00252f',
-    gutterForeground: '#839496',
-    lineHighlight: '#173541',
-  },
-  sublime: {
-    background: '#303841',
-    lineBackground: '#30384199',
-    foreground: '#FFFFFF',
-    caret: '#FBAC52',
-    selection: '#4C5964',
-    selectionMatch: '#3A546E',
-    gutterBackground: '#303841',
-    gutterForeground: '#FFFFFF70',
-    lineHighlight: '#00000059',
-  },
-  tokyoNightDay: {
-    light: true,
-    background: '#e1e2e7',
-    lineBackground: '#e1e2e799',
-    foreground: '#3760bf',
-    caret: '#3760bf',
-    selection: '#99a7df',
-    selectionMatch: '#99a7df',
-    gutterBackground: '#e1e2e7',
-    gutterForeground: '#3760bf',
-    gutterBorder: 'transparent',
-    lineHighlight: '#5f5faf11',
-  },
-  tokyoNightStorm: {
-    background: '#24283b',
-    lineBackground: '#24283b99',
-    foreground: '#7982a9',
-    caret: '#c0caf5',
-    selection: '#6f7bb630',
-    selectionMatch: '#1f2335',
-    gutterBackground: '#24283b',
-    gutterForeground: '#7982a9',
-    gutterBorder: 'transparent',
-    lineHighlight: '#292e42',
-  },
-  tokyoNight: {
-    background: '#1a1b26',
-    lineBackground: '#1a1b2699',
-    foreground: '#787c99',
-    caret: '#c0caf5',
-    selection: '#515c7e40',
-    selectionMatch: '#16161e',
-    gutterBackground: '#1a1b26',
-    gutterForeground: '#787c99',
-    gutterBorder: 'transparent',
-    lineHighlight: '#1e202e',
-  },
-  vscodeDark: {
-    background: '#1e1e1e',
-    lineBackground: '#1e1e1e99',
-    foreground: '#9cdcfe',
-    caret: '#c6c6c6',
-    selection: '#6199ff2f',
-    selectionMatch: '#72a1ff59',
-    lineHighlight: '#ffffff0f',
-    gutterBackground: '#1e1e1e',
-    gutterForeground: '#838383',
-    gutterActiveForeground: '#fff',
-  },
-  xcodeLight: {
-    light: true,
-    background: '#fff',
-    lineBackground: '#ffffff99',
-    foreground: '#3D3D3D',
-    selection: '#BBDFFF',
-    selectionMatch: '#BBDFFF',
-    gutterBackground: '#fff',
-    gutterForeground: '#AFAFAF',
-    lineHighlight: '#EDF4FF',
-  },
-  xcodeDark: {
-    background: '#292A30',
-    lineBackground: '#292A3099',
-    foreground: '#CECFD0',
-    caret: '#fff',
-    selection: '#727377',
-    selectionMatch: '#727377',
-    lineHighlight: '#2F3239',
-  },
+  archBtw: archBtwSettings,
+  androidstudio: androidstudioSettings,
+  atomone: atomOneSettings,
+  aura: auraSettings,
+  bbedit: bbeditSettings,
+  darcula: darculaSettings,
+  dracula: draculaSettings,
+  duotoneDark: duotoneDarkSettings,
+  eclipse: eclipseSettings,
+  CutiePi: CutiePiSettings,
+  sonicPink: sonicPinkSettings,
+  fruitDaw: fruitDawSettings,
+  githubLight: githubLightSettings,
+  githubDark: githubDarkSettings,
+  greenText: greenTextSettings,
+
+  gruvboxDark: gruvboxDarkSettings,
+  gruvboxLight: gruvboxLightSettings,
+  materialDark: materialDarkSettings,
+  materialLight: materialLightSettings,
+  noctisLilac: noctisLilacSettings,
+  nord: nordSettings,
+  monokai: monokaiSettings,
+  redText: redTextSettings,
+  solarizedLight: solarizedLightSettings,
+  solarizedDark: solarizedDarkSettings,
+  sublime: sublimeSettings,
+  tokyoNight: tokyoNightSettings,
+  tokyoNightStorm: tokyoNightStormSettings,
+  vscodeDark: vscodeDarkSettings,
+  vscodeLight: vscodeLightSettings,
+  xcodeLight: xcodeLightSettings,
+  tokyoNightDay: tokyoNightDaySettings,
 };
 
 function getColors(str) {
diff --git a/packages/codemirror/themes/CutiePi.mjs b/packages/codemirror/themes/CutiePi.mjs
new file mode 100644
index 00000000..64b38eaa
--- /dev/null
+++ b/packages/codemirror/themes/CutiePi.mjs
@@ -0,0 +1,45 @@
+/*
+ * Cutie Pi
+ * by Switch Angel
+ */
+import { tags as t } from '@lezer/highlight';
+import { createTheme } from './theme-helper.mjs';
+const deepPurple = '#5c019a';
+const yellowPink = '#fbeffc';
+const grey = '#272C35';
+const pinkAccent = '#fee1ff';
+const lightGrey = '#465063';
+const bratGreen = '#9acd3f';
+const lighterGrey = '#97a1b7';
+const pink = '#f6a6fd';
+
+export const settings = {
+  background: 'white',
+  lineBackground: 'transparent',
+  foreground: deepPurple,
+  caret: '#797977',
+  selection: yellowPink,
+  selectionMatch: '#2B323D',
+  gutterBackground: grey,
+  gutterForeground: lightGrey,
+  gutterBorder: 'transparent',
+  lineHighlight: pinkAccent,
+};
+
+export default createTheme({
+  theme: 'light',
+  settings,
+  styles: [
+    {
+      tag: [t.function(t.variableName), t.function(t.propertyName), t.url, t.processingInstruction],
+      color: deepPurple,
+    },
+    { tag: [t.tagName, t.heading], color: settings.foreground },
+    { tag: t.comment, color: lighterGrey },
+    { tag: [t.variableName, t.propertyName, t.labelName], color: pink },
+    { tag: [t.attributeName, t.number], color: '#d19a66' },
+    { tag: t.className, color: grey },
+    { tag: t.keyword, color: deepPurple },
+    { tag: [t.string, t.regexp, t.special(t.propertyName)], color: bratGreen },
+  ],
+});
diff --git a/packages/codemirror/themes/algoboy.mjs b/packages/codemirror/themes/algoboy.mjs
index eba95b98..049ed596 100644
--- a/packages/codemirror/themes/algoboy.mjs
+++ b/packages/codemirror/themes/algoboy.mjs
@@ -1,42 +1,61 @@
 import { tags as t } from '@lezer/highlight';
-import { createTheme } from '@uiw/codemirror-themes';
+import { createTheme } from './theme-helper.mjs';
+
+const palettes = {
+  // https://www.deviantart.com/advancedfan2020/art/Game-Boy-Palette-Set-Color-HEX-Part-09-920495662
+  'Central Florida A': ['#FFF630', '#B3AC22', '#666213', '#191905'],
+  'Central Florida B': ['#38CEBA', '#279082', '#16524A', '#061513'],
+  'Central Florida C': ['#FF8836', '#B35F26', '#663616', '#190E05'],
+  'Central Florida D': ['#E07070', '#9D4E4E', '#5A2D2D', '#160B0B'],
+  'Central Florida E': ['#7AA4CB', '#55738E', '#314251', '#0C1014'],
+  'Feminine Energy A': ['#DC5686', '#9A415E', '#582536', '#16090D'],
+  'Feminine Energy B': ['#D0463C', '#92312A', '#531c18', '#150706'],
+  'Feminine Energy C': ['#D86918', '#974A11', '#562A0A', '#160A02'],
+  'Feminine Energy D': ['#EFC54F', '#A78A36', '#604F20', '#181408'],
+  'Feminine Energy E': ['#866399', '#5e456b', '#36283d', '#0d0a0f'],
+  'Sour Watermelon A': ['#993366', '#6B2447', '#3D1429', '#0F050A'],
+  'Sour Watermelon B': ['#996666', '#6B4747', '#3D2929', '#0F0A0A'],
+  'Sour Watermelon C': ['#999966', '#686B47', '#3d3d29', '#0f0f0A'],
+  'Sour Watermelon D': ['#99cc66', '#6b8f47', '#3d5229', '#0f140a'],
+  'Sour Watermelon E': ['#99ff66', '#6bb347', '#3d6629', '#0f190a'],
+  //https://www.deviantart.com/advancedfan2020/art/Game-Boy-Palette-Set-Color-HEX-Part-02-920073260
+  'Peri Peaceful A': ['#909BE9', '#656DA3', '#3A3E5D', '#0e0f17'],
+  'Peri Peaceful B': ['#68628d', '#494563', '#2a2738', '#0a0a0e'], // pretty dim
+  'Peri Peaceful E': ['#b5a0a9', '#7f7076', '#484044', '#121011'],
+  'Hichem Palette B': ['#4fa3a5', '#377273', '#204142', '#081010'],
+  'Hichem Palette C': ['#Fe6f9b', '#b24e6d', '#662c3e', '#190b0f'],
+  'Hichem Palette D': ['#ffbb5a', '#b3833f', '#664b24', '#191309'],
+  'JSR2 A': ['#E0EFC0', '#9da786', '#5a604d', '#161813'],
+};
+const palette = palettes['Sour Watermelon B'];
 export const settings = {
-  background: '#9bbc0f',
-  foreground: '#0f380f', // whats that?
-  caret: '#0f380f',
-  selection: '#306230',
-  selectionMatch: '#ffffff26',
-  lineHighlight: '#8bac0f',
-  lineBackground: '#9bbc0f50',
+  background: palette[3],
+  foreground: palette[1],
+  caret: palette[0],
+  selection: palette[0],
+  selectionMatch: palette[1],
+  lineHighlight: palette[3],
+  lineBackground: palette[3] + '90',
   //lineBackground: 'transparent',
   gutterBackground: 'transparent',
-  gutterForeground: '#0f380f',
-  light: true,
-  customStyle: '.cm-line { line-height: 1 }',
+  gutterForeground: palette[0],
+  light: false,
+  // customStyle: '.cm-line { line-height: 1 }',
 };
 export default createTheme({
-  theme: 'light',
+  theme: 'dark',
   settings,
   styles: [
-    { tag: t.labelName, color: '#0f380f' },
-    { tag: t.keyword, color: '#0f380f' },
-    { tag: t.operator, color: '#0f380f' },
-    { tag: t.special(t.variableName), color: '#0f380f' },
-    { tag: t.typeName, color: '#0f380f' },
-    { tag: t.atom, color: '#0f380f' },
-    { tag: t.number, color: '#0f380f' },
-    { tag: t.definition(t.variableName), color: '#0f380f' },
-    { tag: t.string, color: '#0f380f' },
-    { tag: t.special(t.string), color: '#0f380f' },
-    { tag: t.comment, color: '#0f380f' },
-    { tag: t.variableName, color: '#0f380f' },
-    { tag: t.tagName, color: '#0f380f' },
-    { tag: t.bracket, color: '#0f380f' },
-    { tag: t.meta, color: '#0f380f' },
-    { tag: t.attributeName, color: '#0f380f' },
-    { tag: t.propertyName, color: '#0f380f' },
-    { tag: t.className, color: '#0f380f' },
-    { tag: t.invalid, color: '#0f380f' },
-    { tag: [t.unit, t.punctuation], color: '#0f380f' },
+    { tag: t.comment, color: palette[2] },
+    { tag: t.string, color: palette[1] },
+    { tag: [t.atom, t.number], color: palette[1] },
+    { tag: [t.meta, t.labelName, t.variableName], color: palette[0] },
+    {
+      tag: [t.keyword, t.tagName, t.arithmeticOperator],
+      color: palette[1],
+    },
+    { tag: [t.atom, t.bool, t.special(t.variableName)], color: palette[0] },
+    { tag: [t.function(t.variableName), t.propertyName], color: palette[0] },
+    { tag: t.atom, color: palette[1] },
   ],
 });
diff --git a/packages/codemirror/themes/androidstudio.mjs b/packages/codemirror/themes/androidstudio.mjs
new file mode 100644
index 00000000..77c16c33
--- /dev/null
+++ b/packages/codemirror/themes/androidstudio.mjs
@@ -0,0 +1,43 @@
+/*
+ * androidstudio
+ */
+import { tags as t } from '@lezer/highlight';
+import { createTheme } from './theme-helper.mjs';
+
+export const settings = {
+  background: '#282b2e',
+  lineBackground: '#282b2e99',
+  foreground: '#a9b7c6',
+  caret: '#00FF00',
+  selection: '#343739',
+  selectionMatch: '#343739',
+  lineHighlight: '#343739',
+};
+
+export default createTheme({
+  theme: 'dark',
+  settings: {
+    background: '#282b2e',
+    foreground: '#a9b7c6',
+    caret: '#00FF00',
+    selection: '#4e5254',
+    selectionMatch: '#4e5254',
+    gutterForeground: '#cccccc50',
+    lineHighlight: '#7f85891f',
+  },
+  styles: [
+    { tag: t.labelName, color: 'inherit' },
+    { tag: [t.keyword, t.deleted, t.className], color: '#a9b7c6' },
+    { tag: [t.number, t.literal], color: '#6897bb' },
+    //{ tag: [t.link, t.variableName], color: '#629755' },
+    { tag: [t.link, t.variableName], color: '#a9b7c6' },
+    { tag: [t.comment, t.quote], color: 'grey' },
+    { tag: [t.meta, t.documentMeta], color: '#bbb529' },
+    //{ tag: [t.string, t.propertyName, t.attributeValue], color: '#6a8759' },
+    { tag: [t.propertyName, t.attributeValue], color: '#a9b7c6' },
+    { tag: [t.string], color: '#6a8759' },
+    { tag: [t.heading, t.typeName], color: '#ffc66d' },
+    { tag: [t.attributeName], color: '#a9b7c6' },
+    { tag: [t.emphasis], fontStyle: 'italic' },
+  ],
+});
diff --git a/packages/codemirror/themes/archBtw.mjs b/packages/codemirror/themes/archBtw.mjs
new file mode 100644
index 00000000..87546569
--- /dev/null
+++ b/packages/codemirror/themes/archBtw.mjs
@@ -0,0 +1,38 @@
+/*
+ * Arch Btw
+ * Modern terminal inspired theme
+ * made by Jade
+ */
+import { tags as t } from '@lezer/highlight';
+import { createTheme } from './theme-helper.mjs';
+
+const hex = ['rgb(0, 0, 0)', 'rgb(82, 208, 250)', 'rgba(113, 208, 250, .4)', 'rgba(113, 208, 250, .15)'];
+
+export const settings = {
+  background: hex[0],
+  lineBackground: 'transparent',
+  foreground: hex[1],
+  selection: hex[2],
+  selectionMatch: hex[0],
+  gutterBackground: hex[0],
+  gutterForeground: hex[2],
+  gutterBorder: 'transparent',
+  lineHighlight: hex[0],
+};
+
+export default createTheme({
+  theme: 'dark',
+  settings,
+  styles: [
+    {
+      tag: [t.function(t.variableName), t.function(t.propertyName), t.url, t.processingInstruction],
+      color: hex[1],
+    },
+    { tag: [t.atom, t.bool, t.special(t.variableName)], color: hex[1] },
+    { tag: [t.comment, t.brace, t.bracket], color: hex[2] },
+    { tag: [t.variableName, t.propertyName, t.labelName], color: hex[1] },
+    { tag: [t.attributeName, t.number], color: hex[1] },
+    { tag: t.keyword, color: hex[1] },
+    { tag: [t.string, t.regexp, t.special(t.propertyName)], color: hex[1] },
+  ],
+});
diff --git a/packages/codemirror/themes/atomone.mjs b/packages/codemirror/themes/atomone.mjs
new file mode 100644
index 00000000..ab9cd360
--- /dev/null
+++ b/packages/codemirror/themes/atomone.mjs
@@ -0,0 +1,51 @@
+/*
+ * Atom One
+ * Atom One dark syntax theme
+ *
+ * https://github.com/atom/one-dark-syntax
+ */
+import { tags as t } from '@lezer/highlight';
+import { createTheme } from './theme-helper.mjs';
+
+export const settings = {
+  background: '#272C35',
+  lineBackground: '#272C3599',
+  foreground: 'hsl(220, 14%, 71%)',
+  caret: '#797977',
+  selection: '#ffffff30',
+  selectionMatch: '#2B323D',
+  gutterBackground: '#272C35',
+  gutterForeground: '#465063',
+  gutterBorder: 'transparent',
+  lineHighlight: '#2B323D',
+};
+
+export default createTheme({
+  theme: 'dark',
+  settings: {
+    background: '#272C35',
+    foreground: '#9d9b97',
+    caret: '#797977',
+    selection: '#3d4c64',
+    selectionMatch: '#3d4c64',
+    gutterBackground: '#272C35',
+    gutterForeground: '#465063',
+    gutterBorder: 'transparent',
+    lineHighlight: '#2e3f5940',
+  },
+  styles: [
+    {
+      tag: [t.function(t.variableName), t.function(t.propertyName), t.url, t.processingInstruction],
+      color: 'hsl(207, 82%, 66%)',
+    },
+    { tag: [t.atom, t.bool, t.special(t.variableName)], color: 'hsl( 29, 54%, 61%)' },
+    { tag: [t.tagName, t.heading], color: '#e06c75' },
+    { tag: t.comment, color: '#54636D' },
+    { tag: [t.variableName, t.propertyName, t.labelName], color: 'hsl(220, 14%, 71%)' },
+    { tag: [t.attributeName, t.number], color: 'hsl( 29, 54%, 61%)' },
+    { tag: t.className, color: 'hsl( 39, 67%, 69%)' },
+    { tag: t.keyword, color: 'hsl(286, 60%, 67%)' },
+
+    { tag: [t.string, t.regexp, t.special(t.propertyName)], color: '#98c379' },
+  ],
+});
diff --git a/packages/codemirror/themes/aura.mjs b/packages/codemirror/themes/aura.mjs
new file mode 100644
index 00000000..b42a5839
--- /dev/null
+++ b/packages/codemirror/themes/aura.mjs
@@ -0,0 +1,51 @@
+import { tags as t } from '@lezer/highlight';
+import { createTheme } from './theme-helper.mjs';
+
+export const settings = {
+  background: '#21202e',
+  lineBackground: '#21202e99',
+  foreground: '#edecee',
+  caret: '#a277ff',
+  selection: '#3d375e7f',
+  selectionMatch: '#3d375e7f',
+  gutterBackground: '#21202e',
+  gutterForeground: '#edecee',
+  gutterBorder: 'transparent',
+  lineHighlight: '#a394f033',
+};
+export default createTheme({
+  theme: 'dark',
+  settings: {
+    background: '#21202e',
+    foreground: '#edecee',
+    caret: '#a277ff',
+    selection: '#5a51898f',
+    selectionMatch: '#5a51898f',
+    gutterBackground: '#21202e',
+    gutterForeground: '#edecee',
+    gutterBorder: 'transparent',
+    lineHighlight: '#a394f033',
+  },
+  styles: [
+    { tag: t.keyword, color: '#a277ff' },
+    { tag: [t.name, t.deleted, t.character, t.macroName], color: '#edecee' },
+    { tag: [t.propertyName], color: '#ffca85' },
+    { tag: [t.processingInstruction, t.string, t.inserted, t.special(t.string)], color: '#61ffca' },
+    { tag: [t.function(t.variableName), t.labelName], color: '#ffca85' },
+    { tag: [t.color, t.constant(t.name), t.standard(t.name)], color: '#61ffca' },
+    { tag: [t.definition(t.name), t.separator], color: '#edecee' },
+    { tag: [t.className], color: '#82e2ff' },
+    { tag: [t.number, t.changed, t.annotation, t.modifier, t.self, t.namespace], color: '#61ffca' },
+    { tag: [t.typeName], color: '#82e2ff' },
+    { tag: [t.operator, t.operatorKeyword], color: '#a277ff' },
+    { tag: [t.url, t.escape, t.regexp, t.link], color: '#61ffca' },
+    { tag: [t.meta, t.comment], color: '#6d6d6d' },
+    { tag: t.strong, fontWeight: 'bold' },
+    { tag: t.emphasis, fontStyle: 'italic' },
+    { tag: t.link, textDecoration: 'underline' },
+    { tag: t.heading, fontWeight: 'bold', color: '#a277ff' },
+    { tag: [t.atom, t.bool, t.special(t.variableName)], color: '#edecee' },
+    { tag: t.invalid, color: '#ff6767' },
+    { tag: t.strikethrough, textDecoration: 'line-through' },
+  ],
+});
diff --git a/packages/codemirror/themes/bbedit.mjs b/packages/codemirror/themes/bbedit.mjs
new file mode 100644
index 00000000..535bf9ea
--- /dev/null
+++ b/packages/codemirror/themes/bbedit.mjs
@@ -0,0 +1,46 @@
+import { tags as t } from '@lezer/highlight';
+import { createTheme } from './theme-helper.mjs';
+
+export const settings = {
+  light: true,
+  background: '#FFFFFF',
+  lineBackground: '#FFFFFF99',
+  foreground: '#000000',
+  caret: '#FBAC52',
+  selection: '#FFD420',
+  selectionMatch: '#FFD420',
+  gutterBackground: '#f5f5f5',
+  gutterForeground: '#4D4D4C',
+  gutterBorder: 'transparent',
+  lineHighlight: '#00000012',
+};
+
+export default createTheme({
+  theme: 'light',
+  settings: {
+    background: '#FFFFFF',
+    foreground: '#000000',
+    caret: '#FBAC52',
+    selection: '#FFD420',
+    selectionMatch: '#FFD420',
+    gutterBackground: '#f5f5f5',
+    gutterForeground: '#4D4D4C',
+    gutterBorder: 'transparent',
+    lineHighlight: '#00000012',
+  },
+  styles: [
+    { tag: [t.meta, t.comment], color: '#804000' },
+    { tag: [t.keyword, t.strong], color: '#0000FF' },
+    { tag: [t.number], color: '#FF0080' },
+    { tag: [t.string], color: '#FF0080' },
+    { tag: [t.variableName], color: '#006600' },
+    { tag: [t.escape], color: '#33CC33' },
+    { tag: [t.tagName], color: '#1C02FF' },
+    { tag: [t.heading], color: '#0C07FF' },
+    { tag: [t.quote], color: '#000000' },
+    { tag: [t.list], color: '#B90690' },
+    { tag: [t.documentMeta], color: '#888888' },
+    { tag: [t.function(t.variableName)], color: '#0000A2' },
+    { tag: [t.definition(t.typeName), t.typeName], color: '#6D79DE' },
+  ],
+});
diff --git a/packages/codemirror/themes/blackscreen.mjs b/packages/codemirror/themes/blackscreen.mjs
index 5671a6d8..2c45df11 100644
--- a/packages/codemirror/themes/blackscreen.mjs
+++ b/packages/codemirror/themes/blackscreen.mjs
@@ -1,5 +1,5 @@
 import { tags as t } from '@lezer/highlight';
-import { createTheme } from '@uiw/codemirror-themes';
+import { createTheme } from './theme-helper.mjs';
 export const settings = {
   background: 'black',
   foreground: 'white', // whats that?
@@ -15,25 +15,25 @@ export default createTheme({
   theme: 'dark',
   settings,
   styles: [
-    { tag: t.labelName, color: 'white' },
-    { tag: t.keyword, color: 'white' },
-    { tag: t.operator, color: 'white' },
-    { tag: t.special(t.variableName), color: 'white' },
-    { tag: t.typeName, color: 'white' },
-    { tag: t.atom, color: 'white' },
-    { tag: t.number, color: 'white' },
-    { tag: t.definition(t.variableName), color: 'white' },
-    { tag: t.string, color: 'white' },
-    { tag: t.special(t.string), color: 'white' },
-    { tag: t.comment, color: 'white' },
-    { tag: t.variableName, color: 'white' },
-    { tag: t.tagName, color: 'white' },
-    { tag: t.bracket, color: 'white' },
-    { tag: t.meta, color: 'white' },
-    { tag: t.attributeName, color: 'white' },
-    { tag: t.propertyName, color: 'white' },
-    { tag: t.className, color: 'white' },
-    { tag: t.invalid, color: 'white' },
-    { tag: [t.unit, t.punctuation], color: 'white' },
+    { tag: t.labelName, color: 'inherit' },
+    { tag: t.keyword, color: 'inherit' },
+    { tag: t.operator, color: 'inherit' },
+    { tag: t.special(t.variableName), color: 'inherit' },
+    { tag: t.typeName, color: 'inherit' },
+    { tag: t.atom, color: 'inherit' },
+    { tag: t.number, color: 'inherit' },
+    { tag: t.definition(t.variableName), color: 'inherit' },
+    { tag: t.string, color: 'inherit' },
+    { tag: t.special(t.string), color: 'inherit' },
+    { tag: t.comment, color: 'inherit' },
+    { tag: t.variableName, color: 'inherit' },
+    { tag: t.tagName, color: 'inherit' },
+    { tag: t.bracket, color: 'inherit' },
+    { tag: t.meta, color: 'inherit' },
+    { tag: t.attributeName, color: 'inherit' },
+    { tag: t.propertyName, color: 'inherit' },
+    { tag: t.className, color: 'inherit' },
+    { tag: t.invalid, color: 'inherit' },
+    { tag: [t.unit, t.punctuation], color: 'inherit' },
   ],
 });
diff --git a/packages/codemirror/themes/bluescreen.mjs b/packages/codemirror/themes/bluescreen.mjs
index eb04c411..97d165c9 100644
--- a/packages/codemirror/themes/bluescreen.mjs
+++ b/packages/codemirror/themes/bluescreen.mjs
@@ -1,5 +1,5 @@
 import { tags as t } from '@lezer/highlight';
-import { createTheme } from '@uiw/codemirror-themes';
+import { createTheme } from './theme-helper.mjs';
 export const settings = {
   background: '#051DB5',
   lineBackground: '#051DB550',
@@ -18,25 +18,25 @@ export default createTheme({
   theme: 'dark',
   settings,
   styles: [
-    { tag: t.labelName, color: 'white' },
-    { tag: t.keyword, color: 'white' },
-    { tag: t.operator, color: 'white' },
-    { tag: t.special(t.variableName), color: 'white' },
-    { tag: t.typeName, color: 'white' },
-    { tag: t.atom, color: 'white' },
-    { tag: t.number, color: 'white' },
-    { tag: t.definition(t.variableName), color: 'white' },
-    { tag: t.string, color: 'white' },
-    { tag: t.special(t.string), color: 'white' },
-    { tag: t.comment, color: 'white' },
-    { tag: t.variableName, color: 'white' },
-    { tag: t.tagName, color: 'white' },
-    { tag: t.bracket, color: 'white' },
-    { tag: t.meta, color: 'white' },
-    { tag: t.attributeName, color: 'white' },
-    { tag: t.propertyName, color: 'white' },
-    { tag: t.className, color: 'white' },
-    { tag: t.invalid, color: 'white' },
-    { tag: [t.unit, t.punctuation], color: 'white' },
+    { tag: t.labelName, color: 'inherit' },
+    { tag: t.keyword, color: 'inherit' },
+    { tag: t.operator, color: 'inherit' },
+    { tag: t.special(t.variableName), color: 'inherit' },
+    { tag: t.typeName, color: 'inherit' },
+    { tag: t.atom, color: 'inherit' },
+    { tag: t.number, color: 'inherit' },
+    { tag: t.definition(t.variableName), color: 'inherit' },
+    { tag: t.string, color: 'inherit' },
+    { tag: t.special(t.string), color: 'inherit' },
+    { tag: t.comment, color: 'inherit' },
+    { tag: t.variableName, color: 'inherit' },
+    { tag: t.tagName, color: 'inherit' },
+    { tag: t.bracket, color: 'inherit' },
+    { tag: t.meta, color: 'inherit' },
+    { tag: t.attributeName, color: 'inherit' },
+    { tag: t.propertyName, color: 'inherit' },
+    { tag: t.className, color: 'inherit' },
+    { tag: t.invalid, color: 'inherit' },
+    { tag: [t.unit, t.punctuation], color: 'inherit' },
   ],
 });
diff --git a/packages/codemirror/themes/bluescreenlight.mjs b/packages/codemirror/themes/bluescreenlight.mjs
new file mode 100644
index 00000000..031a3da3
--- /dev/null
+++ b/packages/codemirror/themes/bluescreenlight.mjs
@@ -0,0 +1,37 @@
+/*
+ * A lighter blue screen theme
+ * made by Jade
+ */
+import { tags as t } from '@lezer/highlight';
+import { createTheme } from './theme-helper.mjs';
+
+const hex = ['rgb(75, 130, 247)', 'rgb(47, 108, 246)', 'rgb(255, 255, 255)', 'rgba(255, 255, 255,.3)'];
+
+export const settings = {
+  background: hex[0],
+  lineBackground: 'transparent',
+  foreground: hex[2],
+  selection: hex[3],
+  selectionMatch: hex[0],
+  gutterBackground: hex[0],
+  gutterForeground: hex[2],
+  gutterBorder: 'transparent',
+  lineHighlight: hex[1],
+};
+
+export default createTheme({
+  theme: 'dark',
+  settings,
+  styles: [
+    {
+      tag: [t.function(t.variableName), t.function(t.propertyName), t.url, t.processingInstruction],
+      color: hex[2],
+    },
+    { tag: [t.atom, t.bool, t.special(t.variableName)], color: hex[2] },
+    { tag: [t.comment, t.bracket, t.brace, t.compareOperator], color: hex[3] },
+    { tag: [t.variableName, t.propertyName, t.labelName], color: hex[2] },
+    { tag: [t.attributeName, t.number], color: hex[2] },
+    { tag: t.keyword, color: hex[2] },
+    { tag: [t.string, t.regexp, t.special(t.propertyName)], color: hex[2] },
+  ],
+});
diff --git a/packages/codemirror/themes/darcula.mjs b/packages/codemirror/themes/darcula.mjs
new file mode 100644
index 00000000..ead66e66
--- /dev/null
+++ b/packages/codemirror/themes/darcula.mjs
@@ -0,0 +1,47 @@
+/*
+ * darcula
+ * Name: IntelliJ IDEA darcula theme
+ * From IntelliJ IDEA by JetBrains
+ */
+import { tags as t } from '@lezer/highlight';
+import { createTheme } from './theme-helper.mjs';
+export const settings = {
+  background: '#242424',
+  lineBackground: '#24242499',
+  foreground: '#f8f8f2',
+  caret: '#FFFFFF',
+  selection: 'rgba(255, 255, 255, 0.1)',
+  selectionMatch: 'rgba(255, 255, 255, 0.2)',
+  gutterBackground: 'rgba(255, 255, 255, 0.1)',
+  gutterForeground: '#999',
+  gutterBorder: 'transparent',
+  lineHighlight: 'rgba(255, 255, 255, 0.1)',
+};
+
+export default createTheme({
+  theme: 'dark',
+  settings: {
+    background: '#242424',
+    foreground: '#f8f8f2',
+    caret: '#FFFFFF',
+    selection: 'rgba(255, 255, 255, 0.1)',
+    selectionMatch: 'rgba(255, 255, 255, 0.2)',
+    gutterBackground: 'transparent',
+    gutterForeground: '#999',
+    gutterBorder: 'transparent',
+    lineHighlight: 'rgba(255, 255, 255, 0.1)',
+  },
+  styles: [
+    { tag: t.labelName, color: '#CCCCCC' },
+    { tag: [t.atom, t.number], color: '#7A9EC2' },
+    { tag: [t.comment], color: '#707070' },
+    { tag: [t.string], color: '#6A8759' },
+    { tag: [t.variableName, t.operator], color: '#CCCCCC' },
+    { tag: [t.function(t.variableName), t.propertyName], color: '#FFC66D' },
+    { tag: [t.meta, t.className], color: '#FFC66D' },
+    { tag: [t.propertyName], color: '#FFC66D' },
+    { tag: [t.keyword], color: '#CC7832' },
+    { tag: [t.tagName], color: '#ff79c6' },
+    { tag: [t.typeName], color: '#ffb86c' },
+  ],
+});
diff --git a/packages/codemirror/themes/dracula.mjs b/packages/codemirror/themes/dracula.mjs
new file mode 100644
index 00000000..bdd9617d
--- /dev/null
+++ b/packages/codemirror/themes/dracula.mjs
@@ -0,0 +1,50 @@
+/*
+ * @name dracula
+ * Michael Kaminsky (http://github.com/mkaminsky11)
+ * Original dracula color scheme by Zeno Rocha (https://github.com/zenorocha/dracula-theme)
+ */
+// this is different from https://thememirror.net/dracula
+import { tags as t } from '@lezer/highlight';
+import { createTheme } from './theme-helper.mjs';
+
+export const settings = {
+  background: '#282a36',
+  lineBackground: '#282a3699',
+  foreground: '#f8f8f2',
+  caret: '#f8f8f0',
+  selection: 'rgba(255, 255, 255, 0.1)',
+  selectionMatch: 'rgba(255, 255, 255, 0.2)',
+  gutterBackground: '#282a36',
+  gutterForeground: '#6272a4',
+  gutterBorder: 'transparent',
+  lineHighlight: 'rgba(255, 255, 255, 0.1)',
+};
+
+const purple = '#BD93F9';
+
+export default createTheme({
+  theme: 'dark',
+  settings: {
+    background: '#282a36',
+    foreground: '#f8f8f2',
+    caret: '#f8f8f0',
+    selection: 'rgba(255, 255, 255, 0.1)',
+    selectionMatch: 'rgba(255, 255, 255, 0.2)',
+    gutterBackground: '#282a36',
+    gutterForeground: '#6272a4',
+    gutterBorder: 'transparent',
+    lineHighlight: 'rgba(255, 255, 255, 0.1)',
+  },
+  styles: [
+    { tag: t.comment, color: '#6272a4' },
+    { tag: t.string, color: '#f1fa8c' },
+    { tag: [t.atom, t.number], color: purple },
+    { tag: [t.meta, t.labelName, t.variableName], color: '#f8f8f2' },
+    {
+      tag: [t.keyword, t.tagName, t.arithmeticOperator],
+      color: '#ff79c6',
+    },
+    { tag: [t.function(t.variableName), t.propertyName], color: '#50fa7b' },
+    { tag: t.atom, color: '#bd93f9' },
+  ],
+});
diff --git a/packages/codemirror/themes/duotoneDark.mjs b/packages/codemirror/themes/duotoneDark.mjs
new file mode 100644
index 00000000..f54973e8
--- /dev/null
+++ b/packages/codemirror/themes/duotoneDark.mjs
@@ -0,0 +1,42 @@
+/*
+ * duotone
+ * author Bram de Haan
+ * by Bram de Haan, adapted from DuoTone themes by Simurai (http://simurai.com/projects/2016/01/01/duotone-themes)
+ */
+import { tags as t } from '@lezer/highlight';
+import { createTheme } from './theme-helper.mjs';
+
+export const settings = {
+  background: '#2a2734',
+  lineBackground: '#2a273499',
+  foreground: '#eeebff',
+  caret: '#ffad5c',
+  selection: 'rgba(255, 255, 255, 0.1)',
+  gutterBackground: '#2a2734',
+  gutterForeground: '#545167',
+  lineHighlight: '#36334280',
+};
+
+export default createTheme({
+  theme: 'dark',
+  settings: {
+    background: '#2a2734',
+    foreground: '#6c6783',
+    caret: '#ffad5c',
+    selection: '#9a86fd',
+    selectionMatch: '#9a86fd',
+    gutterBackground: '#2a2734',
+    gutterForeground: '#545167',
+    lineHighlight: '#36334280',
+  },
+  styles: [
+    { tag: [t.comment, t.bracket, t.operator], color: '#6c6783' },
+    { tag: [t.atom, t.number, t.keyword, t.link, t.attributeName, t.quote], color: '#ffcc99' },
+    { tag: [t.emphasis, t.heading, t.tagName, t.propertyName, t.className, t.variableName], color: '#eeebff' },
+    { tag: [t.typeName, t.url], color: '#eeebff' },
+    { tag: t.string, color: '#ffb870' },
+    /* { tag: [t.propertyName], color: '#9a86fd' }, */
+    { tag: [t.propertyName], color: '#eeebff' },
+    { tag: t.labelName, color: '#eeebff' },
+  ],
+});
diff --git a/packages/codemirror/themes/duotoneLight.mjs b/packages/codemirror/themes/duotoneLight.mjs
new file mode 100644
index 00000000..81aa3484
--- /dev/null
+++ b/packages/codemirror/themes/duotoneLight.mjs
@@ -0,0 +1,45 @@
+/*
+ * duotone
+ * author Bram de Haan
+ * by Bram de Haan, adapted from DuoTone themes by Simurai (http://simurai.com/projects/2016/01/01/duotone-themes)
+ */
+import { tags as t } from '@lezer/highlight';
+import { createTheme } from './theme-helper.mjs';
+
+export const settings = {
+  light: true,
+  background: '#faf8f5',
+  lineBackground: '#faf8f599',
+  foreground: '#b29762',
+  caret: '#93abdc',
+  selection: '#e3dcce',
+  selectionMatch: '#e3dcce',
+  gutterBackground: '#faf8f5',
+  gutterForeground: '#cdc4b1',
+  gutterBorder: 'transparent',
+  lineHighlight: '#EFEFEF',
+};
+
+export default createTheme({
+  theme: 'light',
+  settings: {
+    background: '#faf8f5',
+    foreground: '#b29762',
+    caret: '#93abdc',
+    selection: '#e3dcce',
+    selectionMatch: '#e3dcce',
+    gutterBackground: '#faf8f5',
+    gutterForeground: '#cdc4b1',
+    gutterBorder: 'transparent',
+    lineHighlight: '#ddceb154',
+  },
+  styles: [
+    { tag: [t.comment, t.bracket], color: '#b6ad9a' },
+    { tag: [t.atom, t.number, t.keyword, t.link, t.attributeName, t.quote], color: '#063289' },
+    { tag: [t.emphasis, t.heading, t.tagName, t.propertyName, t.variableName], color: '#2d2006' },
+    { tag: [t.typeName, t.url, t.string], color: '#896724' },
+    { tag: [t.operator, t.string], color: '#1659df' },
+    { tag: [t.propertyName], color: '#b29762' },
+    { tag: [t.unit, t.punctuation], color: '#063289' },
+  ],
+});
diff --git a/packages/codemirror/themes/eclipse.mjs b/packages/codemirror/themes/eclipse.mjs
new file mode 100644
index 00000000..8082b59d
--- /dev/null
+++ b/packages/codemirror/themes/eclipse.mjs
@@ -0,0 +1,46 @@
+import { tags as t } from '@lezer/highlight';
+import { createTheme } from './theme-helper.mjs';
+
+export const settings = {
+  light: true,
+  background: '#fff',
+  lineBackground: '#ffffff99',
+  foreground: '#000',
+  caret: '#FFFFFF',
+  selection: '#d7d4f0',
+  selectionMatch: '#d7d4f0',
+  gutterBackground: '#f7f7f7',
+  gutterForeground: '#999',
+  lineHighlight: '#e8f2ff',
+  gutterBorder: 'transparent',
+};
+
+export default createTheme({
+  theme: 'light',
+  settings: {
+    background: '#fff',
+    foreground: '#000',
+    caret: '#FFFFFF',
+    selection: '#d7d4f0',
+    selectionMatch: '#d7d4f0',
+    gutterBackground: '#f7f7f7',
+    gutterForeground: '#999',
+    lineHighlight: '#006fff1c',
+    gutterBorder: 'transparent',
+  },
+  styles: [
+    { tag: [t.comment], color: '#3F7F5F' },
+    { tag: [t.documentMeta], color: '#FF1717' },
+    { tag: t.keyword, color: '#7F0055', fontWeight: 'bold' },
+    { tag: t.atom, color: '#00f' },
+    { tag: t.number, color: '#164' },
+    { tag: t.propertyName, color: '#164' },
+    { tag: [t.variableName, t.definition(t.variableName)], color: '#0000C0' },
+    { tag: t.function(t.variableName), color: '#0000C0' },
+    { tag: t.string, color: '#2A00FF' },
+    { tag: t.operator, color: 'black' },
+    { tag: t.tagName, color: '#170' },
+    { tag: t.attributeName, color: '#00c' },
+    { tag: t.link, color: '#219' },
+  ],
+});
diff --git a/packages/codemirror/themes/fruitDaw.mjs b/packages/codemirror/themes/fruitDaw.mjs
new file mode 100644
index 00000000..c9e55779
--- /dev/null
+++ b/packages/codemirror/themes/fruitDaw.mjs
@@ -0,0 +1,50 @@
+/*
+ * Fruit Daw
+ * made by Jade
+ */
+import { tags as t } from '@lezer/highlight';
+import { createTheme } from './theme-helper.mjs';
+
+const hex = [
+  'rgb(84, 93, 98)',
+  'rgb(255, 255, 255)',
+  'rgba(255, 255, 255, .25)',
+  'rgb(67, 76, 81)',
+  'rgb(186, 230, 115)',
+  'rgb(252, 184, 67)',
+  'rgb(124, 206, 254)',
+  'rgb(83, 101, 102)',
+  'rgba(46, 62, 72,.5)',
+  'rgb(94, 100, 108)',
+  'rgb(167, 216, 177)',
+];
+
+export const settings = {
+  background: hex[0],
+  lineBackground: 'transparent',
+  foreground: hex[10],
+  selection: hex[8],
+  selectionMatch: hex[0],
+  gutterBackground: hex[3],
+  gutterForeground: hex[2],
+  gutterBorder: 'transparent',
+  lineHighlight: hex[3],
+};
+
+export default createTheme({
+  theme: 'dark',
+  settings,
+  styles: [
+    {
+      tag: [t.function(t.variableName), t.function(t.propertyName), t.url, t.processingInstruction],
+      color: hex[1],
+    },
+    { tag: [t.bool, t.special(t.variableName)], color: hex[1] },
+    { tag: [t.comment, t.brace, t.bracket], color: hex[2] },
+    { tag: [t.variableName], color: hex[1] },
+    { tag: [t.labelName, t.propertyName, t.self, t.atom], color: hex[5] },
+    { tag: [t.attributeName, t.number], color: hex[6] },
+    { tag: t.keyword, color: hex[5] },
+    { tag: [t.string, t.regexp, t.special(t.propertyName)], color: hex[4] },
+  ],
+});
diff --git a/packages/codemirror/themes/githubDark.mjs b/packages/codemirror/themes/githubDark.mjs
new file mode 100644
index 00000000..477e7d7b
--- /dev/null
+++ b/packages/codemirror/themes/githubDark.mjs
@@ -0,0 +1,42 @@
+import { tags as t } from '@lezer/highlight';
+import { createTheme } from './theme-helper.mjs';
+
+export const settings = {
+  background: '#0d1117',
+  lineBackground: '#0d111799',
+  foreground: '#c9d1d9',
+  caret: '#c9d1d9',
+  selection: '#003d73',
+  selectionMatch: '#003d73',
+  lineHighlight: '#36334280',
+};
+
+export default createTheme({
+  theme: 'dark',
+  settings: {
+    background: '#0d1117',
+    foreground: '#c9d1d9',
+    caret: '#c9d1d9',
+    selection: '#003d73',
+    selectionMatch: '#003d73',
+    lineHighlight: '#36334280',
+  },
+  styles: [
+    { tag: t.labelName, color: '#d2a8ff' },
+    { tag: [t.standard(t.tagName), t.tagName], color: '#7ee787' },
+    { tag: [t.comment, t.bracket], color: '#8b949e' },
+    { tag: [t.className, t.propertyName], color: '#d2a8ff' },
+    { tag: [t.variableName, t.attributeName], color: '#d2a8ff' },
+    { tag: [t.number, t.operator], color: '#79c0ff' },
+    { tag: [t.keyword, t.typeName, t.typeOperator, t.typeName], color: '#ff7b72' },
+    { tag: [t.string, t.meta, t.regexp], color: '#a5d6ff' },
+    { tag: [t.name, t.quote], color: '#7ee787' },
+    { tag: [t.heading, t.strong], color: '#d2a8ff', fontWeight: 'bold' },
+    { tag: [t.emphasis], color: '#d2a8ff', fontStyle: 'italic' },
+    { tag: [t.deleted], color: '#ffdcd7', backgroundColor: 'ffeef0' },
+    { tag: [t.atom, t.bool, t.special(t.variableName)], color: '#ffab70' },
+    { tag: t.link, textDecoration: 'underline' },
+    { tag: t.strikethrough, textDecoration: 'line-through' },
+    { tag: t.invalid, color: '#f97583' },
+  ],
+});
diff --git a/packages/codemirror/themes/githubLight.mjs b/packages/codemirror/themes/githubLight.mjs
new file mode 100644
index 00000000..2ccec93b
--- /dev/null
+++ b/packages/codemirror/themes/githubLight.mjs
@@ -0,0 +1,42 @@
+import { tags as t } from '@lezer/highlight';
+import { createTheme } from './theme-helper.mjs';
+
+export const settings = {
+  light: true,
+  background: '#fff',
+  lineBackground: '#ffffff99',
+  foreground: '#24292e',
+  selection: '#BBDFFF',
+  selectionMatch: '#BBDFFF',
+  gutterBackground: '#fff',
+  gutterForeground: '#6e7781',
+};
+
+export default createTheme({
+  theme: 'light',
+  settings: {
+    background: '#fff',
+    foreground: '#24292e',
+    selection: '#BBDFFF',
+    selectionMatch: '#BBDFFF',
+    gutterBackground: '#fff',
+    gutterForeground: '#6e7781',
+  },
+  styles: [
+    { tag: [t.standard(t.tagName), t.tagName], color: '#116329' },
+    { tag: [t.comment, t.bracket], color: '#6a737d' },
+    { tag: [t.className, t.propertyName], color: '#6f42c1' },
+    { tag: [t.variableName, t.attributeName, t.number, t.operator], color: '#005cc5' },
+    { tag: [t.keyword, t.typeName, t.typeOperator, t.typeName], color: '#d73a49' },
+    { tag: [t.string, t.meta, t.regexp], color: '#032f62' },
+    { tag: [t.name, t.quote], color: '#22863a' },
+    { tag: [t.heading, t.strong], color: '#24292e', fontWeight: 'bold' },
+    { tag: [t.emphasis], color: '#24292e', fontStyle: 'italic' },
+    { tag: [t.deleted], color: '#b31d28', backgroundColor: 'ffeef0' },
+    { tag: [t.atom, t.bool, t.special(t.variableName)], color: '#e36209' },
+    { tag: [t.url, t.escape, t.regexp, t.link], color: '#032f62' },
+    { tag: t.link, textDecoration: 'underline' },
+    { tag: t.strikethrough, textDecoration: 'line-through' },
+    { tag: t.invalid, color: '#cb2431' },
+  ],
+});
diff --git a/packages/codemirror/themes/green-text.mjs b/packages/codemirror/themes/green-text.mjs
new file mode 100644
index 00000000..08c7a4bb
--- /dev/null
+++ b/packages/codemirror/themes/green-text.mjs
@@ -0,0 +1,39 @@
+/*
+ * Atom One
+ * Atom One dark syntax theme
+ *
+ * https://github.com/atom/one-dark-syntax
+ */
+import { tags as t } from '@lezer/highlight';
+import { createTheme } from './theme-helper.mjs';
+
+const hex = ['#000000', '#8ed675', '#56bd2a', '#54636D', '#171717'];
+
+export const settings = {
+  background: hex[0],
+  lineBackground: 'transparent',
+  foreground: hex[2],
+  selection: hex[4],
+  selectionMatch: hex[0],
+  gutterBackground: hex[0],
+  gutterForeground: hex[3],
+  gutterBorder: 'transparent',
+  lineHighlight: hex[0],
+};
+
+export default createTheme({
+  theme: 'dark',
+  settings,
+  styles: [
+    {
+      tag: [t.function(t.variableName), t.function(t.propertyName), t.url, t.processingInstruction],
+      color: hex[2],
+    },
+    { tag: [t.atom, t.bool, t.special(t.variableName)], color: hex[1] },
+    { tag: t.comment, color: hex[3] },
+    { tag: [t.variableName, t.propertyName, t.labelName], color: hex[2] },
+    { tag: [t.attributeName, t.number], color: hex[1] },
+    { tag: t.keyword, color: hex[2] },
+    { tag: [t.string, t.regexp, t.special(t.propertyName)], color: hex[1] },
+  ],
+});
diff --git a/packages/codemirror/themes/gruvboxDark.mjs b/packages/codemirror/themes/gruvboxDark.mjs
new file mode 100644
index 00000000..67d8bffc
--- /dev/null
+++ b/packages/codemirror/themes/gruvboxDark.mjs
@@ -0,0 +1,82 @@
+/*
+ * gruvbox-dark
+ * author morhetz
+ * From github.com/codemirror/codemirror5/blob/master/theme/gruvbox-dark.css
+ */
+import { tags as t } from '@lezer/highlight';
+import { createTheme } from './theme-helper.mjs';
+
+export const settings = {
+  background: '#282828',
+  lineBackground: '#28282899',
+  foreground: '#ebdbb2',
+  caret: '#ebdbb2',
+  selection: '#bdae93',
+  selectionMatch: '#bdae93',
+  lineHighlight: '#3c3836',
+  gutterBackground: '#282828',
+  gutterForeground: '#7c6f64',
+};
+
+export default createTheme({
+  theme: 'dark',
+  settings: {
+    background: '#282828',
+    foreground: '#ebdbb2',
+    caret: '#ebdbb2',
+    selection: '#b99d555c',
+    selectionMatch: '#b99d555c',
+    lineHighlight: '#baa1602b',
+    gutterBackground: '#282828',
+    gutterForeground: '#7c6f64',
+  },
+  styles: [
+    { tag: t.keyword, color: '#fb4934' },
+    { tag: [t.name, t.deleted, t.character, t.propertyName, t.macroName], color: '#8ec07c' },
+    { tag: [t.variableName], color: '#83a598' },
+    { tag: [t.function(t.variableName)], color: '#8ec07c', fontStyle: 'bold' },
+    { tag: [t.labelName], color: '#ebdbb2' },
+    { tag: [t.color, t.constant(t.name), t.standard(t.name)], color: '#d3869b' },
+    { tag: [t.definition(t.name), t.separator], color: '#ebdbb2' },
+    { tag: [t.brace], color: '#ebdbb2' },
+    { tag: [t.annotation], color: '#fb4934d' },
+    { tag: [t.number, t.changed, t.annotation, t.modifier, t.self, t.namespace], color: '#d3869b' },
+    { tag: [t.typeName, t.className], color: '#fabd2f' },
+    { tag: [t.operatorKeyword], color: '#fb4934' },
+    {
+      tag: [t.tagName],
+      color: '#8ec07c',
+      fontStyle: 'bold',
+    },
+    { tag: [t.squareBracket], color: '#fe8019' },
+    { tag: [t.angleBracket], color: '#83a598' },
+    { tag: [t.attributeName], color: '#8ec07c' },
+    { tag: [t.regexp], color: '#8ec07c' },
+    { tag: [t.quote], color: '#928374' },
+    { tag: [t.string], color: '#ebdbb2' },
+    {
+      tag: t.link,
+      color: '#a89984',
+      textDecoration: 'underline',
+      textUnderlinePosition: 'under',
+    },
+    { tag: [t.url, t.escape, t.special(t.string)], color: '#d3869b' },
+    { tag: [t.meta], color: '#fabd2f' },
+    { tag: [t.comment], color: '#928374', fontStyle: 'italic' },
+    { tag: t.strong, fontWeight: 'bold', color: '#fe8019' },
+    { tag: t.emphasis, fontStyle: 'italic', color: '#b8bb26' },
+    { tag: t.strikethrough, textDecoration: 'line-through' },
+    { tag: t.heading, fontWeight: 'bold', color: '#b8bb26' },
+    { tag: [t.heading1, t.heading2], fontWeight: 'bold', color: '#b8bb26' },
+    {
+      tag: [t.heading3, t.heading4],
+      fontWeight: 'bold',
+      color: '#fabd2f',
+    },
+    { tag: [t.heading5, t.heading6], color: '#fabd2f' },
+    { tag: [t.atom, t.bool, t.special(t.variableName)], color: '#d3869b' },
+    { tag: [t.processingInstruction, t.inserted], color: '#83a598' },
+    { tag: [t.contentSeparator], color: '#fb4934' },
+    { tag: t.invalid, color: '#fe8019', borderBottom: `1px dotted #fb4934d` },
+  ],
+});
diff --git a/packages/codemirror/themes/gruvboxLight.mjs b/packages/codemirror/themes/gruvboxLight.mjs
new file mode 100644
index 00000000..5d4b4ec0
--- /dev/null
+++ b/packages/codemirror/themes/gruvboxLight.mjs
@@ -0,0 +1,130 @@
+/*
+ * gruvbox-light
+ * author morhetz
+ * From github.com/codemirror/codemirror5/blob/master/theme/gruvbox-light.css
+ */
+import { tags as t } from '@lezer/highlight';
+import { createTheme } from './theme-helper.mjs';
+
+export const settings = {
+  light: true,
+  background: '#fbf1c7',
+  lineBackground: '#fbf1c799',
+  foreground: '#3c3836',
+  caret: '#af3a03',
+  selection: '#ebdbb2',
+  selectionMatch: '#bdae93',
+  lineHighlight: '#ebdbb2',
+  gutterBackground: '#ebdbb2',
+  gutterForeground: '#665c54',
+  gutterBorder: 'transparent',
+};
+
+export default createTheme({
+  theme: 'light',
+  settings: {
+    background: '#fbf1c7',
+    foreground: '#3c3836',
+    caret: '#af3a03',
+    selection: '#bdae9391',
+    selectionMatch: '#bdae9391',
+    lineHighlight: '#a37f2238',
+    gutterBackground: '#ebdbb2',
+    gutterForeground: '#665c54',
+    gutterBorder: 'transparent',
+  },
+  styles: [
+    { tag: t.keyword, color: '#9d0006' },
+    {
+      tag: [t.name, t.deleted, t.character, t.propertyName, t.macroName],
+      color: '#427b58',
+    },
+    { tag: [t.variableName], color: '#076678' },
+    { tag: [t.function(t.variableName)], color: '#79740e', fontStyle: 'bold' },
+    { tag: [t.labelName], color: '#3c3836' },
+    {
+      tag: [t.color, t.constant(t.name), t.standard(t.name)],
+      color: '#8f3f71',
+    },
+    { tag: [t.definition(t.name), t.separator], color: '#3c3836' },
+    { tag: [t.brace], color: '#3c3836' },
+    {
+      tag: [t.annotation],
+      color: '#9d0006',
+    },
+    {
+      tag: [t.number, t.changed, t.annotation, t.modifier, t.self, t.namespace],
+      color: '#8f3f71',
+    },
+    {
+      tag: [t.typeName, t.className],
+      color: '#b57614',
+    },
+    {
+      tag: [t.operator, t.operatorKeyword],
+      color: '#9d0006',
+    },
+    {
+      tag: [t.tagName],
+      color: '#427b58',
+      fontStyle: 'bold',
+    },
+    {
+      tag: [t.squareBracket],
+      color: '#af3a03',
+    },
+    {
+      tag: [t.angleBracket],
+      color: '#076678',
+    },
+    {
+      tag: [t.attributeName],
+      color: '#427b58',
+    },
+    {
+      tag: [t.regexp],
+      color: '#427b58',
+    },
+    {
+      tag: [t.quote],
+      color: '#928374',
+    },
+    { tag: [t.string], color: '#3c3836' },
+    {
+      tag: t.link,
+      color: '#7c6f64',
+      textDecoration: 'underline',
+      textUnderlinePosition: 'under',
+    },
+    {
+      tag: [t.url, t.escape, t.special(t.string)],
+      color: '#8f3f71',
+    },
+    { tag: [t.meta], color: '#b57614' },
+    { tag: [t.comment], color: '#928374', fontStyle: 'italic' },
+    { tag: t.strong, fontWeight: 'bold', color: '#af3a03' },
+    { tag: t.emphasis, fontStyle: 'italic', color: '#79740e' },
+    { tag: t.strikethrough, textDecoration: 'line-through' },
+    { tag: t.heading, fontWeight: 'bold', color: '#79740e' },
+    { tag: [t.heading1, t.heading2], fontWeight: 'bold', color: '#79740e' },
+    {
+      tag: [t.heading3, t.heading4],
+      fontWeight: 'bold',
+      color: '#b57614',
+    },
+    {
+      tag: [t.heading5, t.heading6],
+      color: '#b57614',
+    },
+    { tag: [t.atom, t.bool, t.special(t.variableName)], color: '#8f3f71' },
+    {
+      tag: [t.processingInstruction, t.inserted],
+      color: '#076678',
+    },
+    {
+      tag: [t.contentSeparator],
+      color: '#9d0006',
+    },
+    { tag: t.invalid, color: '#af3a03', borderBottom: `1px dotted #9d0006` },
+  ],
+});
diff --git a/packages/codemirror/themes/materialDark.mjs b/packages/codemirror/themes/materialDark.mjs
new file mode 100644
index 00000000..f1341288
--- /dev/null
+++ b/packages/codemirror/themes/materialDark.mjs
@@ -0,0 +1,77 @@
+import { tags as t } from '@lezer/highlight';
+import { createTheme } from './theme-helper.mjs';
+
+export const settings = {
+  background: '#212121',
+  lineBackground: '#21212199',
+  foreground: '#bdbdbd',
+  caret: '#a0a4ae',
+  selection: '#d7d4f0',
+  selectionMatch: '#d7d4f0',
+  gutterBackground: '#212121',
+  gutterForeground: '#999',
+  gutterActiveForeground: '#4f5b66',
+  lineHighlight: '#111111',
+};
+
+export default createTheme({
+  theme: 'dark',
+  settings: {
+    background: '#212121',
+    foreground: '#bdbdbd',
+    caret: '#a0a4ae',
+    selection: '#d7d4f063',
+    selectionMatch: '#d7d4f063',
+    gutterBackground: '#212121',
+    gutterForeground: '#999',
+    gutterActiveForeground: '#4f5b66',
+    lineHighlight: '#333333',
+  },
+  styles: [
+    { tag: t.keyword, color: '#cf6edf' },
+    { tag: [t.name, t.deleted, t.character, t.macroName], color: '#56c8d8' },
+    { tag: [t.propertyName], color: '#82AAFF' },
+    { tag: [t.variableName], color: '#bdbdbd' },
+    { tag: [t.function(t.variableName)], color: '#82AAFF' },
+    { tag: [t.labelName], color: '#cf6edf' },
+    { tag: [t.color, t.constant(t.name), t.standard(t.name)], color: '#facf4e' },
+    { tag: [t.definition(t.name), t.separator], color: '#56c8d8' },
+    { tag: [t.brace], color: '#cf6edf' },
+    { tag: [t.annotation], color: '#f07178' },
+    { tag: [t.number, t.changed, t.annotation, t.modifier, t.self, t.namespace], color: '#f07178' },
+    { tag: [t.typeName, t.className], color: '#f07178' },
+    { tag: [t.operator, t.operatorKeyword], color: '#82AAFF' },
+    { tag: [t.tagName], color: '#99d066' },
+    { tag: [t.squareBracket], color: '#f07178' },
+    { tag: [t.angleBracket], color: '#606f7a' },
+    { tag: [t.attributeName], color: '#bdbdbd' },
+    { tag: [t.regexp], color: '#f07178' },
+    { tag: [t.quote], color: '#6abf69' },
+    { tag: [t.string], color: '#99d066' },
+    {
+      tag: t.link,
+      color: '#56c8d8',
+      textDecoration: 'underline',
+      textUnderlinePosition: 'under',
+    },
+    { tag: [t.url, t.escape, t.special(t.string)], color: '#facf4e' },
+    { tag: [t.meta], color: '#707d8b' },
+    { tag: [t.comment], color: '#707d8b', fontStyle: 'italic' },
+    { tag: t.monospace, color: '#bdbdbd' },
+    { tag: t.strong, fontWeight: 'bold', color: '#f07178' },
+    { tag: t.emphasis, fontStyle: 'italic', color: '#99d066' },
+    { tag: t.strikethrough, textDecoration: 'line-through' },
+    { tag: t.heading, fontWeight: 'bold', color: '#facf4e' },
+    { tag: t.heading1, fontWeight: 'bold', color: '#facf4e' },
+    {
+      tag: [t.heading2, t.heading3, t.heading4],
+      fontWeight: 'bold',
+      color: '#facf4e',
+    },
+    { tag: [t.heading5, t.heading6], color: '#facf4e' },
+    { tag: [t.atom, t.bool, t.special(t.variableName)], color: '#56c8d8' },
+    { tag: [t.processingInstruction, t.inserted], color: '#f07178' },
+    { tag: [t.contentSeparator], color: '#56c8d8' },
+    { tag: t.invalid, color: '#606f7a', borderBottom: `1px dotted #f07178` },
+  ],
+});
diff --git a/packages/codemirror/themes/materialLight.mjs b/packages/codemirror/themes/materialLight.mjs
new file mode 100644
index 00000000..d2598c64
--- /dev/null
+++ b/packages/codemirror/themes/materialLight.mjs
@@ -0,0 +1,52 @@
+import { tags as t } from '@lezer/highlight';
+import { createTheme } from './theme-helper.mjs';
+
+export const settings = {
+  light: true,
+  background: '#FAFAFA',
+  lineBackground: '#FAFAFA99',
+  foreground: '#90A4AE',
+  caret: '#272727',
+  selection: '#80CBC440',
+  selectionMatch: '#FAFAFA',
+  gutterBackground: '#FAFAFA',
+  gutterForeground: '#90A4AE',
+  gutterBorder: 'transparent',
+  lineHighlight: '#CCD7DA50',
+};
+export default createTheme({
+  theme: 'light',
+  settings: {
+    background: '#FAFAFA',
+    foreground: '#90A4AE',
+    caret: '#272727',
+    selection: '#80CBC440',
+    selectionMatch: '#80CBC440',
+    gutterBackground: '#FAFAFA',
+    gutterForeground: '#90A4AE',
+    gutterBorder: 'transparent',
+    lineHighlight: '#CCD7DA50',
+  },
+  styles: [
+    { tag: t.keyword, color: '#39ADB5' },
+    { tag: [t.name, t.deleted, t.character, t.macroName], color: '#90A4AE' },
+    { tag: [t.propertyName], color: '#6182B8' },
+    { tag: [t.processingInstruction, t.string, t.inserted, t.special(t.string)], color: '#91B859' },
+    { tag: [t.function(t.variableName), t.labelName], color: '#6182B8' },
+    { tag: [t.color, t.constant(t.name), t.standard(t.name)], color: '#39ADB5' },
+    { tag: [t.definition(t.name), t.separator], color: '#90A4AE' },
+    { tag: [t.className], color: '#E2931D' },
+    { tag: [t.number, t.changed, t.annotation, t.modifier, t.self, t.namespace], color: '#F76D47' },
+    { tag: [t.typeName], color: '#E2931D', fontStyle: '#E2931D' },
+    { tag: [t.operator, t.operatorKeyword], color: '#39ADB5' },
+    { tag: [t.url, t.escape, t.regexp, t.link], color: '#91B859' },
+    { tag: [t.meta, t.comment], color: '#90A4AE' },
+    { tag: t.strong, fontWeight: 'bold' },
+    { tag: t.emphasis, fontStyle: 'italic' },
+    { tag: t.link, textDecoration: 'underline' },
+    { tag: t.heading, fontWeight: 'bold', color: '#39ADB5' },
+    { tag: [t.atom, t.bool, t.special(t.variableName)], color: '#90A4AE' },
+    { tag: t.invalid, color: '#E5393570' },
+    { tag: t.strikethrough, textDecoration: 'line-through' },
+  ],
+});
diff --git a/packages/codemirror/themes/monokai.mjs b/packages/codemirror/themes/monokai.mjs
new file mode 100644
index 00000000..294b946b
--- /dev/null
+++ b/packages/codemirror/themes/monokai.mjs
@@ -0,0 +1,45 @@
+import { tags as t } from '@lezer/highlight';
+import { createTheme } from './theme-helper.mjs';
+
+export const settings = {
+  background: '#272822',
+  lineBackground: '#27282299',
+  foreground: '#FFFFFF',
+  caret: '#FFFFFF',
+  selection: '#49483E',
+  selectionMatch: '#49483E',
+  gutterBackground: '#272822',
+  gutterForeground: '#FFFFFF70',
+  lineHighlight: '#00000059',
+};
+
+export default createTheme({
+  theme: 'dark',
+  settings: {
+    background: '#272822',
+    foreground: '#FFFFFF',
+    caret: '#FFFFFF',
+    selection: '#49483E',
+    selectionMatch: '#49483E',
+    gutterBackground: '#272822',
+    gutterForeground: '#FFFFFF70',
+    lineHighlight: '#0000003b',
+  },
+  styles: [
+    { tag: t.labelName, color: '#bababa' },
+    { tag: [t.comment, t.documentMeta], color: '#8292a2' },
+    { tag: [t.number, t.bool, t.null, t.atom], color: '#ae81ff' },
+    { tag: [t.attributeValue, t.className, t.name], color: '#e6db74' },
+    { tag: [t.propertyName, t.attributeName], color: '#a6e22e' },
+    { tag: [t.variableName], color: '#9effff' },
+    { tag: [t.squareBracket], color: '#bababa' },
+    { tag: [t.string, t.special(t.brace)], color: '#e6db74' },
+    { tag: [t.regexp, t.className, t.typeName, t.definition(t.typeName)], color: '#66d9ef' },
+    {
+      tag: [t.definition(t.variableName), t.definition(t.propertyName), t.function(t.variableName)],
+      color: '#a6e22e',
+    },
+    // { tag: t.keyword, color: '#f92672' },
+    { tag: [t.keyword, t.definitionKeyword, t.modifier, t.tagName, t.angleBracket], color: '#f92672' },
+  ],
+});
diff --git a/packages/codemirror/themes/noctisLilac.mjs b/packages/codemirror/themes/noctisLilac.mjs
new file mode 100644
index 00000000..b11c6b40
--- /dev/null
+++ b/packages/codemirror/themes/noctisLilac.mjs
@@ -0,0 +1,50 @@
+import { tags as t } from '@lezer/highlight';
+import { createTheme } from './theme-helper.mjs';
+
+export const settings = {
+  light: true,
+  background: '#f2f1f8',
+  lineBackground: '#f2f1f899',
+  foreground: '#0c006b',
+  caret: '#5c49e9',
+  selection: '#d5d1f2',
+  selectionMatch: '#d5d1f2',
+  gutterBackground: '#f2f1f8',
+  gutterForeground: '#0c006b70',
+  lineHighlight: '#e1def3',
+};
+
+export default createTheme({
+  theme: 'light',
+  settings: {
+    background: '#f2f1f8',
+    foreground: '#0c006b',
+    caret: '#5c49e9',
+    selection: '#d5d1f2',
+    selectionMatch: '#d5d1f2',
+    gutterBackground: '#f2f1f8',
+    gutterForeground: '#0c006b70',
+    lineHighlight: '#16067911',
+  },
+  styles: [
+    { tag: t.comment, color: '#9995b7' },
+    {
+      tag: t.keyword,
+      color: '#ff5792',
+      fontWeight: 'bold',
+    },
+    { tag: [t.definitionKeyword, t.modifier], color: '#ff5792' },
+    { tag: [t.className, t.tagName, t.definition(t.typeName)], color: '#0094f0' },
+    { tag: [t.number, t.bool, t.null, t.special(t.brace)], color: '#5842ff' },
+    { tag: [t.definition(t.propertyName), t.function(t.variableName)], color: '#0095a8' },
+    { tag: t.typeName, color: '#b3694d' },
+    { tag: [t.propertyName, t.variableName], color: '#fa8900' },
+    { tag: t.operator, color: '#ff5792' },
+    { tag: t.self, color: '#e64100' },
+    { tag: [t.string, t.regexp], color: '#00b368' },
+    { tag: [t.paren, t.bracket], color: '#0431fa' },
+    { tag: t.labelName, color: '#00bdd6' },
+    { tag: t.attributeName, color: '#e64100' },
+    { tag: t.angleBracket, color: '#9995b7' },
+  ],
+});
diff --git a/packages/codemirror/themes/nord.mjs b/packages/codemirror/themes/nord.mjs
new file mode 100644
index 00000000..ce96bca5
--- /dev/null
+++ b/packages/codemirror/themes/nord.mjs
@@ -0,0 +1,78 @@
+import { tags as t } from '@lezer/highlight';
+import { createTheme } from './theme-helper.mjs';
+
+export const settings = {
+  background: '#2e3440',
+  lineBackground: '#2e344099',
+  foreground: '#FFFFFF',
+  caret: '#FFFFFF',
+  selection: '#3b4252',
+  selectionMatch: '#e5e9f0',
+  gutterBackground: '#2e3440',
+  gutterForeground: '#4c566a',
+  gutterActiveForeground: '#d8dee9',
+  lineHighlight: '#4c566a',
+};
+
+// Colors from https://www.nordtheme.com/docs/colors-and-palettes
+export default createTheme({
+  theme: 'dark',
+  settings: {
+    background: '#2e3440',
+    foreground: '#FFFFFF',
+    caret: '#FFFFFF',
+    selection: '#00000073',
+    selectionMatch: '#00000073',
+    gutterBackground: '#2e3440',
+    gutterForeground: '#4c566a',
+    gutterActiveForeground: '#d8dee9',
+    lineHighlight: '#4c566a29',
+  },
+  styles: [
+    { tag: t.keyword, color: '#5e81ac' },
+    { tag: [t.name, t.deleted, t.character, t.propertyName, t.macroName], color: '#88c0d0' },
+    { tag: [t.variableName], color: '#8fbcbb' },
+    { tag: [t.function(t.variableName)], color: '#8fbcbb' },
+    { tag: [t.labelName], color: '#81a1c1' },
+    { tag: [t.color, t.constant(t.name), t.standard(t.name)], color: '#5e81ac' },
+    { tag: [t.definition(t.name), t.separator], color: '#a3be8c' },
+    { tag: [t.brace], color: '#8fbcbb' },
+    { tag: [t.annotation], color: '#d30102' },
+    { tag: [t.number, t.changed, t.annotation, t.modifier, t.self, t.namespace], color: '#b48ead' },
+    { tag: [t.typeName, t.className], color: '#ebcb8b' },
+    { tag: [t.operator, t.operatorKeyword], color: '#a3be8c' },
+    { tag: [t.tagName], color: '#b48ead' },
+    { tag: [t.squareBracket], color: '#bf616a' },
+    { tag: [t.angleBracket], color: '#d08770' },
+    { tag: [t.attributeName], color: '#ebcb8b' },
+    { tag: [t.regexp], color: '#5e81ac' },
+    { tag: [t.quote], color: '#b48ead' },
+    { tag: [t.string], color: '#a3be8c' },
+    {
+      tag: t.link,
+      color: '#a3be8c',
+      textDecoration: 'underline',
+      textUnderlinePosition: 'under',
+    },
+    { tag: [t.url, t.escape, t.special(t.string)], color: '#8fbcbb' },
+    { tag: [t.meta], color: '#88c0d0' },
+    { tag: [t.monospace], color: '#d8dee9', fontStyle: 'italic' },
+    { tag: [t.comment], color: '#4c566a', fontStyle: 'italic' },
+    { tag: t.strong, fontWeight: 'bold', color: '#5e81ac' },
+    { tag: t.emphasis, fontStyle: 'italic', color: '#5e81ac' },
+    { tag: t.strikethrough, textDecoration: 'line-through' },
+    { tag: t.heading, fontWeight: 'bold', color: '#5e81ac' },
+    { tag: t.special(t.heading1), fontWeight: 'bold', color: '#5e81ac' },
+    { tag: t.heading1, fontWeight: 'bold', color: '#5e81ac' },
+    {
+      tag: [t.heading2, t.heading3, t.heading4],
+      fontWeight: 'bold',
+      color: '#5e81ac',
+    },
+    { tag: [t.heading5, t.heading6], color: '#5e81ac' },
+    { tag: [t.atom, t.bool, t.special(t.variableName)], color: '#d08770' },
+    { tag: [t.processingInstruction, t.inserted], color: '#8fbcbb' },
+    { tag: [t.contentSeparator], color: '#ebcb8b' },
+    { tag: t.invalid, color: '#434c5e', borderBottom: `1px dotted #d30102` },
+  ],
+});
diff --git a/packages/codemirror/themes/red-text.mjs b/packages/codemirror/themes/red-text.mjs
new file mode 100644
index 00000000..44dda5dc
--- /dev/null
+++ b/packages/codemirror/themes/red-text.mjs
@@ -0,0 +1,39 @@
+/*
+ * Atom One
+ * Atom One dark syntax theme
+ *
+ * https://github.com/atom/one-dark-syntax
+ */
+import { tags as t } from '@lezer/highlight';
+import { createTheme } from './theme-helper.mjs';
+
+const hex = ['#000000', '#ff5356', '#bd312a', '#54636D', '#171717'];
+
+export const settings = {
+  background: hex[0],
+  lineBackground: 'transparent',
+  foreground: hex[2],
+  selection: hex[4],
+  selectionMatch: hex[0],
+  gutterBackground: hex[0],
+  gutterForeground: hex[3],
+  gutterBorder: 'transparent',
+  lineHighlight: hex[0],
+};
+
+export default createTheme({
+  theme: 'dark',
+  settings,
+  styles: [
+    {
+      tag: [t.function(t.variableName), t.function(t.propertyName), t.url, t.processingInstruction],
+      color: hex[2],
+    },
+    { tag: [t.atom, t.bool, t.special(t.variableName)], color: hex[1] },
+    { tag: t.comment, color: hex[3] },
+    { tag: [t.variableName, t.propertyName, t.labelName], color: hex[2] },
+    { tag: [t.attributeName, t.number], color: hex[1] },
+    { tag: t.keyword, color: hex[2] },
+    { tag: [t.string, t.regexp, t.special(t.propertyName)], color: hex[1] },
+  ],
+});
diff --git a/packages/codemirror/themes/solarizedDark.mjs b/packages/codemirror/themes/solarizedDark.mjs
new file mode 100644
index 00000000..c6b645f7
--- /dev/null
+++ b/packages/codemirror/themes/solarizedDark.mjs
@@ -0,0 +1,79 @@
+import { tags as t } from '@lezer/highlight';
+import { createTheme } from './theme-helper.mjs';
+
+export const settings = {
+  background: '#002b36',
+  lineBackground: '#002b3699',
+  foreground: '#93a1a1',
+  caret: '#839496',
+  selection: '#173541',
+  selectionMatch: '#aafe661a',
+  gutterBackground: '#00252f',
+  gutterForeground: '#839496',
+  lineHighlight: '#173541',
+};
+
+const c = {
+  background: '#002B36',
+  foreground: '#839496',
+  selection: '#004454AA',
+  selectionMatch: '#005A6FAA',
+  cursor: '#D30102',
+  dropdownBackground: '#00212B',
+  dropdownBorder: '#2AA19899',
+  activeLine: '#00cafe11',
+  matchingBracket: '#073642',
+  keyword: '#859900',
+  storage: '#93A1A1',
+  variable: '#268BD2',
+  parameter: '#268BD2',
+  function: '#268BD2',
+  string: '#2AA198',
+  constant: '#CB4B16',
+  type: '#859900',
+  class: '#268BD2',
+  number: '#D33682',
+  comment: '#586E75',
+  heading: '#268BD2',
+  invalid: '#DC322F',
+  regexp: '#DC322F',
+  tag: '#268BD2',
+};
+
+export default createTheme({
+  theme: 'dark',
+  settings: {
+    background: c.background,
+    foreground: c.foreground,
+    caret: c.cursor,
+    selection: c.selection,
+    selectionMatch: c.selection,
+    gutterBackground: c.background,
+    gutterForeground: c.foreground,
+    gutterBorder: 'transparent',
+    lineHighlight: c.activeLine,
+  },
+  styles: [
+    { tag: t.keyword, color: c.keyword },
+    { tag: [t.name, t.deleted, t.character, t.macroName], color: c.variable },
+    { tag: [t.propertyName], color: c.function },
+    { tag: [t.processingInstruction, t.string, t.inserted, t.special(t.string)], color: c.string },
+    { tag: [t.function(t.variableName), t.labelName], color: c.function },
+    { tag: [t.color, t.constant(t.name), t.standard(t.name)], color: c.constant },
+    { tag: [t.definition(t.name), t.separator], color: c.variable },
+    { tag: [t.className], color: c.class },
+    { tag: [t.number, t.changed, t.annotation, t.modifier, t.self, t.namespace], color: c.number },
+    { tag: [t.typeName], color: c.type, fontStyle: c.type },
+    { tag: [t.operator, t.operatorKeyword], color: c.keyword },
+    { tag: [t.url, t.escape, t.regexp, t.link], color: c.regexp },
+    { tag: [t.meta, t.comment], color: c.comment },
+    { tag: t.tagName, color: c.tag },
+    { tag: t.strong, fontWeight: 'bold' },
+    { tag: t.emphasis, fontStyle: 'italic' },
+    { tag: t.link, textDecoration: 'underline' },
+    { tag: t.heading, fontWeight: 'bold', color: c.heading },
+    { tag: [t.atom, t.bool, t.special(t.variableName)], color: c.variable },
+    { tag: t.invalid, color: c.invalid },
+    { tag: t.strikethrough, textDecoration: 'line-through' },
+  ],
+});
diff --git a/packages/codemirror/themes/solarizedLight.mjs b/packages/codemirror/themes/solarizedLight.mjs
new file mode 100644
index 00000000..b6828ff6
--- /dev/null
+++ b/packages/codemirror/themes/solarizedLight.mjs
@@ -0,0 +1,82 @@
+import { tags as t } from '@lezer/highlight';
+import { createTheme } from './theme-helper.mjs';
+
+// this is slightly different from https://thememirror.net/solarized-light
+
+export const settings = {
+  light: true,
+  background: '#fdf6e3',
+  lineBackground: '#fdf6e399',
+  foreground: '#657b83',
+  caret: '#586e75',
+  selection: '#dfd9c8',
+  selectionMatch: '#dfd9c8',
+  gutterBackground: '#00000010',
+  gutterForeground: '#657b83',
+  lineHighlight: '#dfd9c8',
+};
+
+const c = {
+  background: '#FDF6E3',
+  foreground: '#657B83',
+  selection: '#EEE8D5',
+  selectionMatch: '#EEE8D5',
+  cursor: '#657B83',
+  dropdownBackground: '#EEE8D5',
+  dropdownBorder: '#D3AF86',
+  activeLine: '#3d392d11',
+  matchingBracket: '#EEE8D5',
+  keyword: '#859900',
+  storage: '#586E75',
+  variable: '#268BD2',
+  parameter: '#268BD2',
+  function: '#268BD2',
+  string: '#2AA198',
+  constant: '#CB4B16',
+  type: '#859900',
+  class: '#268BD2',
+  number: '#D33682',
+  comment: '#93A1A1',
+  heading: '#268BD2',
+  invalid: '#DC322F',
+  regexp: '#DC322F',
+  tag: '#268BD2',
+};
+
+export default createTheme({
+  theme: 'light',
+  settings: {
+    background: c.background,
+    foreground: c.foreground,
+    caret: c.cursor,
+    selection: c.selection,
+    selectionMatch: c.selectionMatch,
+    gutterBackground: c.background,
+    gutterForeground: c.foreground,
+    gutterBorder: 'transparent',
+    lineHighlight: c.activeLine,
+  },
+  styles: [
+    { tag: t.keyword, color: c.keyword },
+    { tag: [t.name, t.deleted, t.character, t.macroName], color: c.variable },
+    { tag: [t.propertyName], color: c.function },
+    { tag: [t.processingInstruction, t.string, t.inserted, t.special(t.string)], color: c.string },
+    { tag: [t.function(t.variableName), t.labelName], color: c.function },
+    { tag: [t.color, t.constant(t.name), t.standard(t.name)], color: c.constant },
+    { tag: [t.definition(t.name), t.separator], color: c.variable },
+    { tag: [t.className], color: c.class },
+    { tag: [t.number, t.changed, t.annotation, t.modifier, t.self, t.namespace], color: c.number },
+    { tag: [t.typeName], color: c.type, fontStyle: c.type },
+    { tag: [t.operator, t.operatorKeyword], color: c.keyword },
+    { tag: [t.url, t.escape, t.regexp, t.link], color: c.regexp },
+    { tag: [t.meta, t.comment], color: c.comment },
+    { tag: t.tagName, color: c.tag },
+    { tag: t.strong, fontWeight: 'bold' },
+    { tag: t.emphasis, fontStyle: 'italic' },
+    { tag: t.link, textDecoration: 'underline' },
+    { tag: t.heading, fontWeight: 'bold', color: c.heading },
+    { tag: [t.atom, t.bool, t.special(t.variableName)], color: c.variable },
+    { tag: t.invalid, color: c.invalid },
+    { tag: t.strikethrough, textDecoration: 'line-through' },
+  ],
+});
diff --git a/packages/codemirror/themes/sonic-pink.mjs b/packages/codemirror/themes/sonic-pink.mjs
new file mode 100644
index 00000000..5a19555a
--- /dev/null
+++ b/packages/codemirror/themes/sonic-pink.mjs
@@ -0,0 +1,39 @@
+/*
+ * Atom One
+ * Atom One dark syntax theme
+ *
+ * https://github.com/atom/one-dark-syntax
+ */
+import { tags as t } from '@lezer/highlight';
+import { createTheme } from './theme-helper.mjs';
+
+const hex = ['#1e1e1e', '#fbde2d', '#ff1493', '#4c83ff', '#ededed', '#cccccc', '#ffffff30', '#dc2f8c'];
+
+export const settings = {
+  background: '#000000',
+  lineBackground: 'transparent',
+  foreground: hex[4],
+  selection: hex[6],
+  gutterBackground: hex[0],
+  gutterForeground: hex[5],
+  gutterBorder: 'transparent',
+  lineHighlight: hex[0],
+};
+
+export default createTheme({
+  theme: 'dark',
+  settings,
+  styles: [
+    {
+      tag: [t.function(t.variableName), t.function(t.propertyName), t.url, t.processingInstruction],
+      color: hex[4],
+    },
+    { tag: [t.atom, t.bool, t.special(t.variableName)], color: hex[3] },
+
+    { tag: t.comment, color: '#54636D' },
+    { tag: [t.variableName, t.propertyName, t.labelName], color: hex[4] },
+    { tag: [t.attributeName, t.number], color: hex[3] },
+    { tag: t.keyword, color: hex[1] },
+    { tag: [t.string, t.regexp, t.special(t.propertyName)], color: hex[2] },
+  ],
+});
diff --git a/packages/codemirror/themes/strudel-theme.mjs b/packages/codemirror/themes/strudel-theme.mjs
index 4ec3ab92..7c4a3a91 100644
--- a/packages/codemirror/themes/strudel-theme.mjs
+++ b/packages/codemirror/themes/strudel-theme.mjs
@@ -1,20 +1,23 @@
 import { tags as t } from '@lezer/highlight';
-import { createTheme } from '@uiw/codemirror-themes';
+import { createTheme } from './theme-helper.mjs';
+
+export const settings = {
+  background: '#222',
+  lineBackground: '#22222299',
+  foreground: '#fff',
+  caret: '#ffcc00',
+  selection: 'rgba(128, 203, 196, 0.5)',
+  selectionMatch: '#036dd626',
+  lineHighlight: '#00000050',
+  gutterBackground: 'transparent',
+  gutterForeground: '#8a919966',
+};
+
 export default createTheme({
   theme: 'dark',
-  settings: {
-    background: '#222',
-    foreground: '#75baff', // whats that?
-    caret: '#ffcc00',
-    selection: 'rgba(128, 203, 196, 0.5)',
-    selectionMatch: '#036dd626',
-    // lineHighlight: '#8a91991a', // original
-    lineHighlight: '#00000050',
-    gutterBackground: 'transparent',
-    // gutterForeground: '#8a919966',
-    gutterForeground: '#8a919966',
-  },
+  settings,
   styles: [
+    { tag: [t.atom, t.bool, t.special(t.variableName)], color: '#89ddff' },
     { tag: t.labelName, color: '#89ddff' },
     { tag: t.keyword, color: '#c792ea' },
     { tag: t.operator, color: '#89ddff' },
diff --git a/packages/codemirror/themes/sublime.mjs b/packages/codemirror/themes/sublime.mjs
new file mode 100644
index 00000000..068b9bac
--- /dev/null
+++ b/packages/codemirror/themes/sublime.mjs
@@ -0,0 +1,43 @@
+import { tags as t } from '@lezer/highlight';
+import { createTheme } from './theme-helper.mjs';
+
+export const settings = {
+  background: '#303841',
+  lineBackground: '#30384199',
+  foreground: '#FFFFFF',
+  caret: '#FBAC52',
+  selection: '#4C5964',
+  selectionMatch: '#3A546E',
+  gutterBackground: '#303841',
+  gutterForeground: '#FFFFFF70',
+  lineHighlight: '#00000059',
+};
+
+export default createTheme({
+  theme: 'dark',
+  settings: {
+    background: '#303841',
+    foreground: '#FFFFFF',
+    caret: '#FBAC52',
+    selection: '#4C5964',
+    selectionMatch: '#3A546E',
+    gutterBackground: '#303841',
+    gutterForeground: '#FFFFFF70',
+    lineHighlight: '#00000059',
+  },
+  styles: [
+    { tag: t.labelName, color: '#A2A9B5' },
+    { tag: [t.meta, t.comment], color: '#A2A9B5' },
+    { tag: [t.attributeName, t.keyword], color: '#B78FBA' },
+    { tag: t.function(t.variableName), color: '#5AB0B0' },
+    { tag: [t.string, t.regexp, t.attributeValue], color: '#99C592' },
+    { tag: t.operator, color: '#f47954' },
+    // { tag: t.moduleKeyword, color: 'red' },
+    { tag: [t.tagName, t.modifier], color: '#E35F63' },
+    { tag: [t.number, t.definition(t.tagName), t.className, t.definition(t.variableName)], color: '#fbac52' },
+    { tag: [t.atom, t.bool, t.special(t.variableName)], color: '#E35F63' },
+    { tag: t.variableName, color: '#539ac4' },
+    { tag: [t.propertyName, t.typeName], color: '#629ccd' },
+    { tag: t.propertyName, color: '#36b7b5' },
+  ],
+});
diff --git a/packages/codemirror/themes/teletext.mjs b/packages/codemirror/themes/teletext.mjs
index ddbf7b33..7857cb13 100644
--- a/packages/codemirror/themes/teletext.mjs
+++ b/packages/codemirror/themes/teletext.mjs
@@ -1,5 +1,5 @@
 import { tags as t } from '@lezer/highlight';
-import { createTheme } from '@uiw/codemirror-themes';
+import { createTheme } from './theme-helper.mjs';
 
 let colorA = '#6edee4';
 //let colorB = 'magenta';
@@ -17,7 +17,7 @@ export const settings = {
   lineBackground: '#00000040',
   gutterBackground: 'transparent',
   gutterForeground: '#8a919966',
-  customStyle: '.cm-line { line-height: 1 }',
+  // customStyle: '.cm-line { line-height: 1 }',
 };
 
 let punctuation = colorD;
diff --git a/packages/codemirror/themes/terminal.mjs b/packages/codemirror/themes/terminal.mjs
index 90c6e1d2..b07bdb8d 100644
--- a/packages/codemirror/themes/terminal.mjs
+++ b/packages/codemirror/themes/terminal.mjs
@@ -1,5 +1,5 @@
 import { tags as t } from '@lezer/highlight';
-import { createTheme } from '@uiw/codemirror-themes';
+import { createTheme } from './theme-helper.mjs';
 export const settings = {
   background: 'black',
   foreground: '#41FF00', // whats that?
@@ -14,24 +14,24 @@ export default createTheme({
   theme: 'dark',
   settings,
   styles: [
-    { tag: t.labelName, color: '#41FF00' },
-    { tag: t.keyword, color: '#41FF00' },
-    { tag: t.operator, color: '#41FF00' },
-    { tag: t.special(t.variableName), color: '#41FF00' },
-    { tag: t.typeName, color: '#41FF00' },
-    { tag: t.atom, color: '#41FF00' },
-    { tag: t.number, color: '#41FF00' },
-    { tag: t.definition(t.variableName), color: '#41FF00' },
-    { tag: t.string, color: '#41FF00' },
-    { tag: t.special(t.string), color: '#41FF00' },
-    { tag: t.comment, color: '#41FF00' },
-    { tag: t.variableName, color: '#41FF00' },
-    { tag: t.tagName, color: '#41FF00' },
-    { tag: t.bracket, color: '#41FF00' },
-    { tag: t.meta, color: '#41FF00' },
-    { tag: t.attributeName, color: '#41FF00' },
-    { tag: t.propertyName, color: '#41FF00' },
-    { tag: t.className, color: '#41FF00' },
-    { tag: t.invalid, color: '#41FF00' },
+    { tag: t.labelName, color: 'inherit' },
+    { tag: t.keyword, color: 'inherit' },
+    { tag: t.operator, color: 'inherit' },
+    { tag: t.special(t.variableName), color: 'inherit' },
+    { tag: t.typeName, color: 'inherit' },
+    { tag: t.atom, color: 'inherit' },
+    { tag: t.number, color: 'inherit' },
+    { tag: t.definition(t.variableName), color: 'inherit' },
+    { tag: t.string, color: 'inherit' },
+    { tag: t.special(t.string), color: 'inherit' },
+    { tag: t.comment, color: 'inherit' },
+    { tag: t.variableName, color: 'inherit' },
+    { tag: t.tagName, color: 'inherit' },
+    { tag: t.bracket, color: 'inherit' },
+    { tag: t.meta, color: 'inherit' },
+    { tag: t.attributeName, color: 'inherit' },
+    { tag: t.propertyName, color: 'inherit' },
+    { tag: t.className, color: 'inherit' },
+    { tag: t.invalid, color: 'inherit' },
   ],
 });
diff --git a/packages/codemirror/themes/theme-helper.mjs b/packages/codemirror/themes/theme-helper.mjs
new file mode 100644
index 00000000..ee9bad8e
--- /dev/null
+++ b/packages/codemirror/themes/theme-helper.mjs
@@ -0,0 +1,42 @@
+import { EditorView } from '@codemirror/view';
+import { syntaxHighlighting } from '@codemirror/language';
+import { HighlightStyle } from '@codemirror/language';
+
+export const createTheme = ({ theme, settings, styles }) => {
+  const _theme = EditorView.theme(
+    {
+      '&': {
+        color: settings.foreground,
+        backgroundColor: settings.background,
+      },
+      '.cm-gutters': {
+        backgroundColor: settings.gutterBackground,
+        color: settings.gutterForeground,
+        //borderRightColor: settings.gutterBorder
+      },
+      '.cm-content': {
+        caretColor: settings.caret,
+      },
+      '.cm-cursor, .cm-dropCursor': {
+        borderLeftColor: settings.caret,
+      },
+      '.cm-activeLineGutter': {
+        // color: settings.gutterActiveForeground
+        backgroundColor: settings.lineHighlight,
+      },
+      '.cm-activeLine': {
+        backgroundColor: settings.lineHighlight,
+      },
+      '&.cm-focused .cm-selectionBackground, & .cm-line::selection, & .cm-selectionLayer .cm-selectionBackground, .cm-content ::selection':
+        {
+          background: settings.selection + ' !important',
+        },
+      '& .cm-selectionMatch': {
+        backgroundColor: settings.selectionMatch,
+      },
+    },
+    { dark: theme === 'dark' },
+  );
+  const highlightStyle = HighlightStyle.define(styles);
+  return [_theme, syntaxHighlighting(highlightStyle)];
+};
diff --git a/packages/codemirror/themes/tokioNightStorm.mjs b/packages/codemirror/themes/tokioNightStorm.mjs
new file mode 100644
index 00000000..be973d52
--- /dev/null
+++ b/packages/codemirror/themes/tokioNightStorm.mjs
@@ -0,0 +1,52 @@
+import { tags as t } from '@lezer/highlight';
+import { createTheme } from './theme-helper.mjs';
+
+export const settings = {
+  background: '#24283b',
+  lineBackground: '#24283b99',
+  foreground: '#7982a9',
+  caret: '#c0caf5',
+  selection: '#6f7bb630',
+  selectionMatch: '#1f2335',
+  gutterBackground: '#24283b',
+  gutterForeground: '#7982a9',
+  gutterBorder: 'transparent',
+  lineHighlight: '#292e42',
+};
+
+export default createTheme({
+  theme: 'dark',
+  settings: {
+    background: '#24283b',
+    foreground: '#7982a9',
+    caret: '#c0caf5',
+    selection: '#6f7bb630',
+    selectionMatch: '#343b5f',
+    gutterBackground: '#24283b',
+    gutterForeground: '#7982a9',
+    gutterBorder: 'transparent',
+    lineHighlight: '#292e427a',
+  },
+  styles: [
+    { tag: t.keyword, color: '#bb9af7' },
+    { tag: [t.name, t.deleted, t.character, t.macroName], color: '#c0caf5' },
+    { tag: [t.propertyName], color: '#7aa2f7' },
+    { tag: [t.processingInstruction, t.string, t.inserted, t.special(t.string)], color: '#9ece6a' },
+    { tag: [t.function(t.variableName), t.labelName], color: '#7aa2f7' },
+    { tag: [t.color, t.constant(t.name), t.standard(t.name)], color: '#bb9af7' },
+    { tag: [t.definition(t.name), t.separator], color: '#c0caf5' },
+    { tag: [t.className], color: '#c0caf5' },
+    { tag: [t.number, t.changed, t.annotation, t.modifier, t.self, t.namespace], color: '#ff9e64' },
+    { tag: [t.typeName], color: '#2ac3de', fontStyle: '#2ac3de' },
+    { tag: [t.operator, t.operatorKeyword], color: '#bb9af7' },
+    { tag: [t.url, t.escape, t.regexp, t.link], color: '#b4f9f8' },
+    { tag: [t.meta, t.comment], color: '#565f89' },
+    { tag: t.strong, fontWeight: 'bold' },
+    { tag: t.emphasis, fontStyle: 'italic' },
+    { tag: t.link, textDecoration: 'underline' },
+    { tag: t.heading, fontWeight: 'bold', color: '#89ddff' },
+    { tag: [t.atom, t.bool, t.special(t.variableName)], color: '#c0caf5' },
+    { tag: t.invalid, color: '#ff5370' },
+    { tag: t.strikethrough, textDecoration: 'line-through' },
+  ],
+});
diff --git a/packages/codemirror/themes/tokyoNight.mjs b/packages/codemirror/themes/tokyoNight.mjs
new file mode 100644
index 00000000..c325b4ad
--- /dev/null
+++ b/packages/codemirror/themes/tokyoNight.mjs
@@ -0,0 +1,52 @@
+import { tags as t } from '@lezer/highlight';
+import { createTheme } from './theme-helper.mjs';
+
+export const settings = {
+  background: '#1a1b26',
+  lineBackground: '#1a1b2699',
+  foreground: '#787c99',
+  caret: '#c0caf5',
+  selection: '#515c7e40',
+  selectionMatch: '#16161e',
+  gutterBackground: '#1a1b26',
+  gutterForeground: '#787c99',
+  gutterBorder: 'transparent',
+  lineHighlight: '#1e202e',
+};
+
+export default createTheme({
+  theme: 'dark',
+  settings: {
+    background: '#1a1b26',
+    foreground: '#787c99',
+    caret: '#c0caf5',
+    selection: '#515c7e40',
+    selectionMatch: '#16161e',
+    gutterBackground: '#1a1b26',
+    gutterForeground: '#787c99',
+    gutterBorder: 'transparent',
+    lineHighlight: '#474b6611',
+  },
+  styles: [
+    { tag: t.keyword, color: '#bb9af7' },
+    { tag: [t.name, t.deleted, t.character, t.macroName], color: '#c0caf5' },
+    { tag: [t.propertyName], color: '#7aa2f7' },
+    { tag: [t.processingInstruction, t.string, t.inserted, t.special(t.string)], color: '#9ece6a' },
+    { tag: [t.function(t.variableName), t.labelName], color: '#7aa2f7' },
+    { tag: [t.color, t.constant(t.name), t.standard(t.name)], color: '#bb9af7' },
+    { tag: [t.definition(t.name), t.separator], color: '#c0caf5' },
+    { tag: [t.className], color: '#c0caf5' },
+    { tag: [t.number, t.changed, t.annotation, t.modifier, t.self, t.namespace], color: '#ff9e64' },
+    { tag: [t.typeName], color: '#0db9d7' },
+    { tag: [t.operator, t.operatorKeyword], color: '#bb9af7' },
+    { tag: [t.url, t.escape, t.regexp, t.link], color: '#b4f9f8' },
+    { tag: [t.meta, t.comment], color: '#444b6a' },
+    { tag: t.strong, fontWeight: 'bold' },
+    { tag: t.emphasis, fontStyle: 'italic' },
+    { tag: t.link, textDecoration: 'underline' },
+    { tag: t.heading, fontWeight: 'bold', color: '#89ddff' },
+    { tag: [t.atom, t.bool, t.special(t.variableName)], color: '#c0caf5' },
+    { tag: t.invalid, color: '#ff5370' },
+    { tag: t.strikethrough, textDecoration: 'line-through' },
+  ],
+});
diff --git a/packages/codemirror/themes/tokyoNightDay.mjs b/packages/codemirror/themes/tokyoNightDay.mjs
new file mode 100644
index 00000000..1cd58a41
--- /dev/null
+++ b/packages/codemirror/themes/tokyoNightDay.mjs
@@ -0,0 +1,53 @@
+import { tags as t } from '@lezer/highlight';
+import { createTheme } from './theme-helper.mjs';
+
+export const settings = {
+  light: true,
+  background: '#e1e2e7',
+  lineBackground: '#e1e2e799',
+  foreground: '#3760bf',
+  caret: '#3760bf',
+  selection: '#99a7df',
+  selectionMatch: '#99a7df',
+  gutterBackground: '#e1e2e7',
+  gutterForeground: '#3760bf',
+  gutterBorder: 'transparent',
+  lineHighlight: '#5f5faf11',
+};
+
+export default createTheme({
+  theme: 'light',
+  settings: {
+    background: '#e1e2e7',
+    foreground: '#3760bf',
+    caret: '#3760bf',
+    selection: '#99a7df',
+    selectionMatch: '#99a7df',
+    gutterBackground: '#e1e2e7',
+    gutterForeground: '#3760bf',
+    gutterBorder: 'transparent',
+    lineHighlight: '#5f5faf11',
+  },
+  styles: [
+    { tag: t.keyword, color: '#007197' },
+    { tag: [t.name, t.deleted, t.character, t.macroName], color: '#3760bf' },
+    { tag: [t.propertyName], color: '#3760bf' },
+    { tag: [t.processingInstruction, t.string, t.inserted, t.special(t.string)], color: '#587539' },
+    { tag: [t.function(t.variableName), t.labelName], color: '#3760bf' },
+    { tag: [t.color, t.constant(t.name), t.standard(t.name)], color: '#3760bf' },
+    { tag: [t.definition(t.name), t.separator], color: '#3760bf' },
+    { tag: [t.className], color: '#3760bf' },
+    { tag: [t.number, t.changed, t.annotation, t.modifier, t.self, t.namespace], color: '#b15c00' },
+    { tag: [t.typeName], color: '#007197', fontStyle: '#007197' },
+    { tag: [t.operator, t.operatorKeyword], color: '#007197' },
+    { tag: [t.url, t.escape, t.regexp, t.link], color: '#587539' },
+    { tag: [t.meta, t.comment], color: '#848cb5' },
+    { tag: t.strong, fontWeight: 'bold' },
+    { tag: t.emphasis, fontStyle: 'italic' },
+    { tag: t.link, textDecoration: 'underline' },
+    { tag: t.heading, fontWeight: 'bold', color: '#b15c00' },
+    { tag: [t.atom, t.bool, t.special(t.variableName)], color: '#3760bf' },
+    { tag: t.invalid, color: '#f52a65' },
+    { tag: t.strikethrough, textDecoration: 'line-through' },
+  ],
+});
diff --git a/packages/codemirror/themes/vscodeDark.mjs b/packages/codemirror/themes/vscodeDark.mjs
new file mode 100644
index 00000000..703790fd
--- /dev/null
+++ b/packages/codemirror/themes/vscodeDark.mjs
@@ -0,0 +1,80 @@
+import { tags as t } from '@lezer/highlight';
+import { createTheme } from './theme-helper.mjs';
+
+export const settings = {
+  background: '#1e1e1e',
+  lineBackground: '#1e1e1e99',
+  foreground: '#fff',
+  caret: '#c6c6c6',
+  selection: '#6199ff2f',
+  selectionMatch: '#72a1ff59',
+  lineHighlight: '#ffffff0f',
+  gutterBackground: '#1e1e1e',
+  gutterForeground: '#838383',
+  gutterActiveForeground: '#fff',
+};
+
+export default createTheme({
+  theme: 'dark',
+  settings: {
+    background: '#1e1e1e',
+    foreground: '#fff',
+    caret: '#c6c6c6',
+    selection: '#6199ff2f',
+    selectionMatch: '#72a1ff59',
+    lineHighlight: '#ffffff0f',
+    gutterBackground: '#1e1e1e',
+    gutterForeground: '#838383',
+    gutterActiveForeground: '#fff',
+    fontFamily: 'Menlo, Monaco, Consolas, "Andale Mono", "Ubuntu Mono", "Courier New", monospace',
+  },
+  styles: [
+    {
+      tag: [
+        t.keyword,
+        t.operatorKeyword,
+        t.modifier,
+        t.color,
+        t.constant(t.name),
+        t.standard(t.name),
+        t.standard(t.tagName),
+        t.special(t.brace),
+        t.atom,
+        t.bool,
+        t.special(t.variableName),
+      ],
+      color: '#569cd6',
+    },
+    { tag: [t.controlKeyword, t.moduleKeyword], color: '#c586c0' },
+    {
+      tag: [
+        t.name,
+        t.deleted,
+        t.character,
+        t.macroName,
+        t.propertyName,
+        t.variableName,
+        t.labelName,
+        t.definition(t.name),
+      ],
+      color: '#9cdcfe',
+    },
+    { tag: t.heading, fontWeight: 'bold', color: '#9cdcfe' },
+    {
+      tag: [t.typeName, t.className, t.tagName, t.number, t.changed, t.annotation, t.self, t.namespace],
+      color: '#4ec9b0',
+    },
+    { tag: [t.function(t.variableName), t.function(t.propertyName)], color: '#dcdcaa' },
+    { tag: [t.number], color: '#b5cea8' },
+    { tag: [t.operator, t.punctuation, t.separator, t.url, t.escape, t.regexp], color: '#d4d4d4' },
+    { tag: [t.regexp], color: '#d16969' },
+    { tag: [t.special(t.string), t.processingInstruction, t.string, t.inserted], color: '#ce9178' },
+    { tag: [t.angleBracket], color: '#808080' },
+    { tag: t.strong, fontWeight: 'bold' },
+    { tag: t.emphasis, fontStyle: 'italic' },
+    { tag: t.strikethrough, textDecoration: 'line-through' },
+    { tag: [t.meta, t.comment], color: '#6a9955' },
+    { tag: t.link, color: '#6a9955', textDecoration: 'underline' },
+    { tag: t.invalid, color: '#ff0000' },
+  ],
+});
diff --git a/packages/codemirror/themes/vscodeLight.mjs b/packages/codemirror/themes/vscodeLight.mjs
new file mode 100644
index 00000000..9a734511
--- /dev/null
+++ b/packages/codemirror/themes/vscodeLight.mjs
@@ -0,0 +1,81 @@
+import { tags as t } from '@lezer/highlight';
+import { createTheme } from './theme-helper.mjs';
+
+export const settings = {
+  background: '#ffffff',
+  lineBackground: '#ffffff50',
+  foreground: '#383a42',
+  caret: '#000',
+  selection: '#add6ff',
+  selectionMatch: '#a8ac94',
+  lineHighlight: '#99999926',
+  gutterBackground: '#fff',
+  gutterForeground: '#237893',
+  gutterActiveForeground: '#0b216f',
+  fontFamily: 'Menlo, Monaco, Consolas, "Andale Mono", "Ubuntu Mono", "Courier New", monospace',
+};
+
+export default createTheme({
+  theme: 'light',
+  settings: {
+    background: '#ffffff',
+    foreground: '#383a42',
+    caret: '#000',
+    selection: '#add6ff',
+    selectionMatch: '#a8ac94',
+    lineHighlight: '#99999926',
+    gutterBackground: '#fff',
+    gutterForeground: '#237893',
+    gutterActiveForeground: '#0b216f',
+    fontFamily: 'Menlo, Monaco, Consolas, "Andale Mono", "Ubuntu Mono", "Courier New", monospace',
+  },
+  styles: [
+    {
+      tag: [
+        t.keyword,
+        t.operatorKeyword,
+        t.modifier,
+        t.color,
+        t.constant(t.name),
+        t.standard(t.name),
+        t.standard(t.tagName),
+        t.special(t.brace),
+        t.atom,
+        t.bool,
+        t.special(t.variableName),
+      ],
+      color: '#0000ff',
+    },
+    { tag: [t.moduleKeyword, t.controlKeyword], color: '#af00db' },
+    {
+      tag: [
+        t.name,
+        t.deleted,
+        t.character,
+        t.macroName,
+        t.propertyName,
+        t.variableName,
+        t.labelName,
+        t.definition(t.name),
+      ],
+      color: '#0070c1',
+    },
+    { tag: t.heading, fontWeight: 'bold', color: '#0070c1' },
+    {
+      tag: [t.typeName, t.className, t.tagName, t.number, t.changed, t.annotation, t.self, t.namespace],
+      color: '#267f99',
+    },
+    { tag: [t.function(t.variableName), t.function(t.propertyName)], color: '#795e26' },
+    { tag: [t.number], color: '#098658' },
+    { tag: [t.operator, t.punctuation, t.separator, t.url, t.escape, t.regexp], color: '#383a42' },
+    { tag: [t.regexp], color: '#af00db' },
+    { tag: [t.special(t.string), t.processingInstruction, t.string, t.inserted], color: '#a31515' },
+    { tag: [t.angleBracket], color: '#383a42' },
+    { tag: t.strong, fontWeight: 'bold' },
+    { tag: t.emphasis, fontStyle: 'italic' },
+    { tag: t.strikethrough, textDecoration: 'line-through' },
+    { tag: [t.meta, t.comment], color: '#008000' },
+    { tag: t.link, color: '#4078f2', textDecoration: 'underline' },
+    { tag: t.invalid, color: '#e45649' },
+  ],
+});
diff --git a/packages/codemirror/themes/whitescreen.mjs b/packages/codemirror/themes/whitescreen.mjs
index 5abbb1ea..a2937c38 100644
--- a/packages/codemirror/themes/whitescreen.mjs
+++ b/packages/codemirror/themes/whitescreen.mjs
@@ -1,5 +1,5 @@
 import { tags as t } from '@lezer/highlight';
-import { createTheme } from '@uiw/codemirror-themes';
+import { createTheme } from './theme-helper.mjs';
 export const settings = {
   background: 'white',
   foreground: 'black', // whats that?
@@ -16,24 +16,24 @@ export default createTheme({
   theme: 'light',
   settings,
   styles: [
-    { tag: t.labelName, color: 'black' },
-    { tag: t.keyword, color: 'black' },
-    { tag: t.operator, color: 'black' },
-    { tag: t.special(t.variableName), color: 'black' },
-    { tag: t.typeName, color: 'black' },
-    { tag: t.atom, color: 'black' },
-    { tag: t.number, color: 'black' },
-    { tag: t.definition(t.variableName), color: 'black' },
-    { tag: t.string, color: 'black' },
-    { tag: t.special(t.string), color: 'black' },
-    { tag: t.comment, color: 'black' },
-    { tag: t.variableName, color: 'black' },
-    { tag: t.tagName, color: 'black' },
-    { tag: t.bracket, color: 'black' },
-    { tag: t.meta, color: 'black' },
-    { tag: t.attributeName, color: 'black' },
-    { tag: t.propertyName, color: 'black' },
-    { tag: t.className, color: 'black' },
-    { tag: t.invalid, color: 'black' },
+    { tag: t.labelName, color: 'inherit' },
+    { tag: t.keyword, color: 'inherit' },
+    { tag: t.operator, color: 'inherit' },
+    { tag: t.special(t.variableName), color: 'inherit' },
+    { tag: t.typeName, color: 'inherit' },
+    { tag: t.atom, color: 'inherit' },
+    { tag: t.number, color: 'inherit' },
+    { tag: t.definition(t.variableName), color: 'inherit' },
+    { tag: t.string, color: 'inherit' },
+    { tag: t.special(t.string), color: 'inherit' },
+    { tag: t.comment, color: 'inherit' },
+    { tag: t.variableName, color: 'inherit' },
+    { tag: t.tagName, color: 'inherit' },
+    { tag: t.bracket, color: 'inherit' },
+    { tag: t.meta, color: 'inherit' },
+    { tag: t.attributeName, color: 'inherit' },
+    { tag: t.propertyName, color: 'inherit' },
+    { tag: t.className, color: 'inherit' },
+    { tag: t.invalid, color: 'inherit' },
   ],
 });
diff --git a/packages/codemirror/themes/xcodeLight.mjs b/packages/codemirror/themes/xcodeLight.mjs
new file mode 100644
index 00000000..8977c133
--- /dev/null
+++ b/packages/codemirror/themes/xcodeLight.mjs
@@ -0,0 +1,38 @@
+import { tags as t } from '@lezer/highlight';
+import { createTheme } from './theme-helper.mjs';
+
+export const settings = {
+  light: true,
+  background: '#fff',
+  lineBackground: '#ffffff99',
+  foreground: '#3D3D3D',
+  selection: '#BBDFFF',
+  selectionMatch: '#BBDFFF',
+  gutterBackground: '#fff',
+  gutterForeground: '#AFAFAF',
+  lineHighlight: '#EDF4FF',
+};
+
+export default createTheme({
+  theme: 'light',
+  settings: {
+    background: '#fff',
+    foreground: '#3D3D3D',
+    selection: '#BBDFFF',
+    selectionMatch: '#BBDFFF',
+    gutterBackground: '#fff',
+    gutterForeground: '#AFAFAF',
+    lineHighlight: '#d5e6ff69',
+  },
+  styles: [
+    { tag: [t.comment, t.quote], color: '#707F8D' },
+    { tag: [t.typeName, t.typeOperator], color: '#aa0d91' },
+    { tag: [t.keyword], color: '#aa0d91', fontWeight: 'bold' },
+    { tag: [t.string, t.meta], color: '#D23423' },
+    { tag: [t.name], color: '#032f62' },
+    { tag: [t.typeName], color: '#522BB2' },
+    { tag: [t.variableName], color: '#23575C' },
+    { tag: [t.definition(t.variableName)], color: '#327A9E' },
+    { tag: [t.regexp, t.link], color: '#0e0eff' },
+  ],
+});
diff --git a/packages/codemirror/widget.mjs b/packages/codemirror/widget.mjs
index 72b4ec65..42d3b151 100644
--- a/packages/codemirror/widget.mjs
+++ b/packages/codemirror/widget.mjs
@@ -133,3 +133,10 @@ registerWidget('_pitchwheel', (id, options = {}, pat) => {
   const ctx = getCanvasWidget(id, options).getContext('2d');
   return pat.pitchwheel({ ...options, ctx, id });
 });
+
+registerWidget('_spectrum', (id, options = {}, pat) => {
+  let _size = options.size || 200;
+  options = { width: _size, height: _size, ...options, size: _size / 5 };
+  const ctx = getCanvasWidget(id, options).getContext('2d');
+  return pat.spectrum({ ...options, ctx, id });
+});
diff --git a/packages/core/bench/pattern.bench.mjs b/packages/core/bench/pattern.bench.mjs
index 12644800..1b5be0b9 100644
--- a/packages/core/bench/pattern.bench.mjs
+++ b/packages/core/bench/pattern.bench.mjs
@@ -4,7 +4,7 @@ import { calculateTactus, sequence, stack } from '../index.mjs';
 
 const pat64 = sequence(...Array(64).keys());
 
-describe('tactus', () => {
+describe('steps', () => {
   calculateTactus(true);
   bench(
     '+tactus',
diff --git a/packages/core/clockworker.js b/packages/core/clockworker.js
index 4c33de29..77a45362 100644
--- a/packages/core/clockworker.js
+++ b/packages/core/clockworker.js
@@ -4,9 +4,9 @@
 // import createClock from './zyklus.mjs';
 
 function getTime() {
-  const precision = 10 ** 4;
-  const seconds = performance.now() / 1000;
-  return Math.round(seconds * precision) / precision;
+  const seconds = performance.now() * 0.001;
+  return seconds;
+  // return Math.round(seconds * precision) / precision;
 }
 
 let num_cycles_at_cps_change = 0;
@@ -24,27 +24,20 @@ const sendMessage = (type, payload) => {
 
 const sendTick = (phase, duration, tick, time) => {
   const num_seconds_since_cps_change = num_ticks_since_cps_change * duration;
-
   const tickdeadline = phase - time;
   const lastTick = time + tickdeadline;
   const num_cycles_since_cps_change = num_seconds_since_cps_change * cps;
-
   const begin = num_cycles_at_cps_change + num_cycles_since_cps_change;
   const secondsSinceLastTick = time - lastTick - duration;
-
   const eventLength = duration * cps;
   const end = begin + eventLength;
-
   const cycle = begin + secondsSinceLastTick * cps;
 
   sendMessage('tick', {
     begin,
     end,
     cps,
-    tickdeadline,
-    num_cycles_at_cps_change,
-    num_seconds_at_cps_change,
-    num_seconds_since_cps_change,
+    time,
     cycle,
   });
   num_ticks_since_cps_change++;
@@ -120,7 +113,7 @@ self.onconnect = function (e) {
   port.start(); // Required when using addEventListener. Otherwise called implicitly by onmessage setter.
 };
 
-// used to consistently schedule events, for use in a service worker - see 
+// used to consistently schedule events, for use in a service worker - see 
 function createClock(
   getTime,
   callback, // called slightly before each cycle
diff --git a/packages/core/controls.mjs b/packages/core/controls.mjs
index 06e808be..66dee4f1 100644
--- a/packages/core/controls.mjs
+++ b/packages/core/controls.mjs
@@ -1,16 +1,17 @@
 /*
-controls.mjs - 
-Copyright (C) 2022 Strudel contributors - see 
+controls.mjs - Registers audio controls for pattern manipulation and effects.
+Copyright (C) 2022 Strudel contributors - see 
 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 .
 */
 
-import { Pattern, register, sequence } from './pattern.mjs';
+import { Pattern, register, reify } from './pattern.mjs';
 
 export function createParam(names) {
   let isMulti = Array.isArray(names);
   names = !isMulti ? [names] : names;
   const name = names[0];
 
+  // todo: make this less confusing
   const withVal = (xs) => {
     let bag;
     // check if we have an object with an unnamed control (.value)
@@ -35,24 +36,37 @@ export function createParam(names) {
     }
   };
 
-  const func = (...pats) => sequence(...pats).withValue(withVal);
-
-  const setter = function (...pats) {
-    if (!pats.length) {
-      return this.fmap(withVal);
+  // todo: make this less confusing
+  const func = function (value, pat) {
+    if (!pat) {
+      return reify(value).withValue(withVal);
     }
-    return this.set(func(...pats));
+    if (typeof value === 'undefined') {
+      return pat.fmap(withVal);
+    }
+    return pat.set(reify(value).withValue(withVal));
+  };
+  Pattern.prototype[name] = function (value) {
+    return func(value, this);
   };
-  Pattern.prototype[name] = setter;
   return func;
 }
 
-function registerControl(names, ...aliases) {
+// maps control alias names to the "main" control name
+const controlAlias = new Map();
+
+export function isControlName(name) {
+  return controlAlias.has(name);
+}
+
+export function registerControl(names, ...aliases) {
   const name = Array.isArray(names) ? names[0] : names;
   let bag = {};
   bag[name] = createParam(names);
+  controlAlias.set(name, name);
   aliases.forEach((alias) => {
     bag[alias] = bag[name];
+    controlAlias.set(alias, name);
     Pattern.prototype[alias] = Pattern.prototype[name];
   });
   return bag;
@@ -92,7 +106,7 @@ export const { source, src } = registerControl('source', 'src');
  * @example
  * s("bd sd [~ bd] sd,hh*6").n("<0 1>")
  */
-// also see https://github.com/tidalcycles/strudel/pull/63
+// also see https://codeberg.org/uzu/strudel/pulls/63
 export const { n } = registerControl('n');
 /**
  * Plays the given note name or midi number. A note name consists of
@@ -191,7 +205,7 @@ export const { attack, att } = registerControl('attack', 'att');
  * note("c e g b g e")
  * .fm(4)
  * .fmh("<1 2 1.5 1.61>")
- * .scope()
+ * ._scope()
  *
  */
 export const { fmh } = registerControl(['fmh', 'fmi'], 'fmh');
@@ -205,7 +219,7 @@ export const { fmh } = registerControl(['fmh', 'fmi'], 'fmh');
  * @example
  * note("c e g b g e")
  * .fm("<0 1 2 8 32>")
- * .scope()
+ * ._scope()
  *
  */
 export const { fmi, fm } = registerControl(['fmi', 'fmh'], 'fm');
@@ -221,7 +235,7 @@ export const { fmi, fm } = registerControl(['fmi', 'fmh'], 'fm');
  * .fmdecay(.2)
  * .fmsustain(0)
  * .fmenv("")
- * .scope()
+ * ._scope()
  *
  */
 export const { fmenv } = registerControl('fmenv');
@@ -234,7 +248,7 @@ export const { fmenv } = registerControl('fmenv');
  * note("c e g b g e")
  * .fm(4)
  * .fmattack("<0 .05 .1 .2>")
- * .scope()
+ * ._scope()
  *
  */
 export const { fmattack } = registerControl('fmattack');
@@ -248,7 +262,7 @@ export const { fmattack } = registerControl('fmattack');
  * .fm(4)
  * .fmdecay("<.01 .05 .1 .2>")
  * .fmsustain(.4)
- * .scope()
+ * ._scope()
  *
  */
 export const { fmdecay } = registerControl('fmdecay');
@@ -262,7 +276,7 @@ export const { fmdecay } = registerControl('fmdecay');
  * .fm(4)
  * .fmdecay(.1)
  * .fmsustain("<1 .75 .5 0>")
- * .scope()
+ * ._scope()
  *
  */
 export const { fmsustain } = registerControl('fmsustain');
@@ -344,7 +358,7 @@ export const { bandf, bpf, bp } = registerControl(['bandf', 'bandq', 'bpenv'], '
  * s("bd sd [~ bd] sd").bpf(500).bpq("<0 1 2 3>")
  *
  */
-// currently an alias of 'bandq' https://github.com/tidalcycles/strudel/issues/496
+// currently an alias of 'bandq' https://codeberg.org/uzu/strudel/issues/496
 // ['bpq'],
 export const { bandq, bpq } = registerControl('bandq', 'bpq');
 /**
@@ -392,7 +406,7 @@ export const { loop } = registerControl('loop');
  * @synonyms loopb
  * @example
  * s("space").loop(1)
- * .loopBegin("<0 .125 .25>").scope()
+ * .loopBegin("<0 .125 .25>")._scope()
  */
 export const { loopBegin, loopb } = registerControl('loopBegin', 'loopb');
 /**
@@ -405,7 +419,7 @@ export const { loopBegin, loopb } = registerControl('loopBegin', 'loopb');
  * @synonyms loope
  * @example
  * s("space").loop(1)
- * .loopEnd("<1 .75 .5 .25>").scope()
+ * .loopEnd("<1 .75 .5 .25>")._scope()
  */
 export const { loopEnd, loope } = registerControl('loopEnd', 'loope');
 /**
@@ -484,6 +498,43 @@ export const { amphase } = registerControl('amphase');
  *
  */
 export const { amshape } = registerControl('amshape');
+/**
+ * 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');
+
+/**
+ * Create byte beats with custom expressions
+ *
+ * @name byteBeatExpression
+ * @synonyms bbexpr
+ *
+ * @param {number | Pattern} byteBeatExpression bitwise expression for creating bytebeat
+ * @example
+ * s("bytebeat").bbexpr('t*(t>>15^t>>66)')
+ *
+ */
+export const { byteBeatExpression, bbexpr } = registerControl('byteBeatExpression', 'bbexpr');
+
+/**
+ * Create byte beats with custom expressions
+ *
+ * @name byteBeatStartTime
+ * @synonyms bbst
+ *
+ * @param {number | Pattern} byteBeatStartTime in samples (t)
+ * @example
+ * note("c3!8".add("{0 0 12 0 7 5 3}%8")).s("bytebeat:5").bbst("<3 1>".mul(10000))._scope()
+ *
+ */
+export const { byteBeatStartTime, bbst } = registerControl('byteBeatStartTime', 'bbst');
+
 /**
  * Allows you to set the output channels on the interface
  *
@@ -497,8 +548,40 @@ export const { amshape } = registerControl('amshape');
  */
 export const { channels, ch } = registerControl('channels', 'ch');
 
-// superdirt only
-export const { phaserrate, phasr } = registerControl('phaserrate', 'phasr');
+/**
+ * controls the pulsewidth of the pulse oscillator
+ *
+ * @name pw
+ * @param {number | Pattern} pulsewidth
+ * @example
+ * note("{f a c e}%16").s("pulse").pw(".8:1:.2")
+ * @example
+ * n(run(8)).scale("D:pentatonic").s("pulse").pw("0 .75 .5 1")
+ */
+export const { pw } = registerControl(['pw', 'pwrate', 'pwsweep']);
+
+/**
+ * controls the lfo rate for the pulsewidth of the pulse oscillator
+ *
+ * @name pwrate
+ * @param {number | Pattern} rate
+ * @example
+ * n(run(8)).scale("D:pentatonic").s("pulse").pw("0.5").pwrate("<5 .1 25>").pwsweep("<0.3 .8>")
+
+ *
+ */
+export const { pwrate } = registerControl('pwrate');
+
+/**
+ * controls the lfo sweep for the pulsewidth of the pulse oscillator
+ *
+ * @name pwsweep
+ * @param {number | Pattern} sweep
+ * @example
+ * n(run(8)).scale("D:pentatonic").s("pulse").pw("0.5").pwrate("<5 .1 25>").pwsweep("<0.3 .8>")
+ *
+ */
+export const { pwsweep } = registerControl('pwsweep');
 
 /**
  * Phaser audio effect that approximates popular guitar pedals.
@@ -511,7 +594,11 @@ export const { phaserrate, phasr } = registerControl('phaserrate', 'phasr');
  * .phaser("<1 2 4 8>")
  *
  */
-export const { phaser, ph } = registerControl(['phaser', 'phaserdepth', 'phasercenter', 'phasersweep'], 'ph');
+export const { phaserrate, ph, phaser } = registerControl(
+  ['phaserrate', 'phaserdepth', 'phasercenter', 'phasersweep'],
+  'ph',
+  'phaser',
+);
 
 /**
  * The frequency sweep range of the lfo for the phaser effect. Defaults to 2000
@@ -596,7 +683,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")
  */
@@ -635,7 +722,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)
  */
@@ -674,9 +761,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');
@@ -716,7 +802,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)
@@ -759,7 +845,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)
@@ -796,17 +882,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.
@@ -822,7 +919,7 @@ export const { fanchor } = registerControl('fanchor');
  * s("bd sd [~ bd] sd,hh*8").hpf("<2000 2000:25>")
  *
  */
-// currently an alias of 'hcutoff' https://github.com/tidalcycles/strudel/issues/496
+// currently an alias of 'hcutoff' https://codeberg.org/uzu/strudel/issues/496
 // ['hpf'],
 /**
  * Applies a vibrato to the frequency of the oscillator.
@@ -833,10 +930,12 @@ export const { fanchor } = registerControl('fanchor');
  * @example
  * note("a e")
  * .vib("<.5 1 2 4 8 16>")
+ * ._scope()
  * @example
  * // change the modulation depth with ":"
  * note("a e")
  * .vib("<.5 1 2 4 8 16>:12")
+ * ._scope()
  */
 export const { vib, vibrato, v } = registerControl(['vib', 'vibmod'], 'vibrato', 'v');
 /**
@@ -857,10 +956,12 @@ export const { noise } = registerControl('noise');
  * @example
  * note("a e").vib(4)
  * .vibmod("<.25 .5 1 2 12>")
+ * ._scope()
  * @example
  * // change the vibrato frequency with ":"
  * note("a e")
  * .vibmod("<.25 .5 1 2 12>:8")
+ * ._scope()
  */
 export const { vibmod, vmod } = registerControl(['vibmod', 'vib'], 'vmod');
 export const { hcutoff, hpf, hp } = registerControl(['hcutoff', 'hresonance', 'hpenv'], 'hpf', 'hp');
@@ -885,7 +986,7 @@ export const { hresonance, hpq } = registerControl('hresonance', 'hpq');
  * s("bd sd [~ bd] sd,hh*8").lpf(2000).lpq("<0 10 20 30>")
  *
  */
-// currently an alias of 'resonance' https://github.com/tidalcycles/strudel/issues/496
+// currently an alias of 'resonance' https://codeberg.org/uzu/strudel/issues/496
 export const { resonance, lpq } = registerControl('resonance', 'lpq');
 /**
  * DJ filter, below 0.5 is low pass filter, above is high pass filter.
@@ -938,15 +1039,31 @@ export const { delayfeedback, delayfb, dfb } = registerControl('delayfeedback',
  *
  */
 export const { delaytime, delayt, dt } = registerControl('delaytime', 'delayt', 'dt');
-/* // TODO: test
+
+/**
+ * Sets the time of the delay effect in cycles.
+ *
+ * @name delaysync
+ * @param {number | Pattern} cycles delay length in cycles
+ * @synonyms delayt, dt
+ * @example
+ * s("bd bd").delay(.25).delaysync("<1 2 3 5>".div(8))
+ *
+ */
+export const { delaysync } = registerControl('delaysync');
+
+/**
  * Specifies whether delaytime is calculated relative to cps.
  *
  * @name lock
  * @param {number | Pattern} enable When set to 1, delaytime is a direct multiple of a cycle.
+ * @superdirtOnly
  * @example
  * s("sd").delay().lock(1).osc()
  *
+ *
  */
+
 export const { lock } = registerControl('lock');
 /**
  * Set detune for stacked voices of supported oscillators
@@ -1251,7 +1368,7 @@ export const { semitone } = registerControl('semitone');
 
 // TODO: synth param
 export const { voice } = registerControl('voice');
-// voicings // https://github.com/tidalcycles/strudel/issues/506
+// voicings // https://codeberg.org/uzu/strudel/issues/506
 // chord to voice, like C Eb Fm7 G7. the symbols can be defined via addVoicings
 export const { chord } = registerControl('chord');
 // which dictionary to use for the voicings
@@ -1412,6 +1529,17 @@ export const { compressorRelease } = registerControl('compressorRelease');
  *
  */
 export const { speed } = registerControl('speed');
+
+/**
+ * Changes the speed of sample playback, i.e. a cheap way of changing pitch.
+ *
+ * @name stretch
+ * @param {number | Pattern} factor -inf to inf, negative numbers play the sample backwards.
+ * @example
+ * s("gm_flute").stretch("1 2 .5")
+ *
+ */
+export const { stretch } = registerControl('stretch');
 /**
  * Used in conjunction with `speed`, accepts values of "r" (rate, default behavior), "c" (cycles), or "s" (seconds). Using `unit "c"` means `speed` will be interpreted in units of cycles, e.g. `speed "1"` means samples will be stretched to fill a cycle. Using `unit "s"` means the playback speed will be adjusted so that the duration is the number of seconds specified by `speed`.
  *
@@ -1422,6 +1550,7 @@ export const { speed } = registerControl('speed');
  * @superdirtOnly
  *
  */
+
 export const { unit } = registerControl('unit');
 /**
  * Made by Calum Gunn. Reminiscent of some weird mixture of filter, ring-modulator and pitch-shifter. The SuperCollider manual defines Squiz as:
@@ -1473,7 +1602,7 @@ export const { vowel } = registerControl('vowel');
  * @name waveloss
  */
 export const { waveloss } = registerControl('waveloss');
-/*
+/**
  * Noise crackle density
  *
  * @name density
@@ -1525,20 +1654,11 @@ export const { scram } = registerControl('scram');
 export const { binshift } = registerControl('binshift');
 export const { hbrick } = registerControl('hbrick');
 export const { lbrick } = registerControl('lbrick');
-export const { midichan } = registerControl('midichan');
-export const { control } = registerControl('control');
-export const { ccn } = registerControl('ccn');
-export const { ccv } = registerControl('ccv');
-export const { polyTouch } = registerControl('polyTouch');
-export const { midibend } = registerControl('midibend');
-export const { miditouch } = registerControl('miditouch');
-export const { ctlNum } = registerControl('ctlNum');
+
 export const { frameRate } = registerControl('frameRate');
 export const { frames } = registerControl('frames');
 export const { hours } = registerControl('hours');
-export const { midicmd } = registerControl('midicmd');
 export const { minutes } = registerControl('minutes');
-export const { progNum } = registerControl('progNum');
 export const { seconds } = registerControl('seconds');
 export const { songPtr } = registerControl('songPtr');
 export const { uid } = registerControl('uid');
@@ -1629,3 +1749,203 @@ export const ar = register('ar', (t, pat) => {
   const [attack, release = attack] = t;
   return pat.set({ attack, release });
 });
+
+//MIDI
+
+/**
+ * MIDI channel: Sets the MIDI channel for the event.
+ *
+ * @name midichan
+ * @param {number | Pattern} channel MIDI channel number (0-15)
+ * @example
+ * note("c4").midichan(1).midi()
+ */
+export const { midichan } = registerControl('midichan');
+
+export const { midimap } = registerControl('midimap');
+
+/**
+ * MIDI port: Sets the MIDI port for the event.
+ *
+ * @name midiport
+ * @param {number | Pattern} port MIDI port
+ * @example
+ * note("c a f e").midiport("<0 1 2 3>").midi()
+ */
+export const { midiport } = registerControl('midiport');
+
+/**
+ * MIDI command: Sends a MIDI command message.
+ *
+ * @name midicmd
+ * @param {number | Pattern} command MIDI command
+ * @example
+ * midicmd("clock*48,/2").midi()
+ */
+export const { midicmd } = registerControl('midicmd');
+
+/**
+ * MIDI control: Sends a MIDI control change message.
+ *
+ * @name control
+ * @param {number | Pattern}  MIDI control number (0-127)
+ * @param {number | Pattern}  MIDI controller value (0-127)
+ */
+export const control = register('control', (args, pat) => {
+  if (!Array.isArray(args)) {
+    throw new Error('control expects an array of [ccn, ccv]');
+  }
+  const [_ccn, _ccv] = args;
+  return pat.ccn(_ccn).ccv(_ccv);
+});
+
+/**
+ * MIDI control number: Sends a MIDI control change message.
+ *
+ * @name ccn
+ * @param {number | Pattern}  MIDI control number (0-127)
+ */
+export const { ccn } = registerControl('ccn');
+/**
+ * MIDI control value: Sends a MIDI control change message.
+ *
+ * @name ccv
+ * @param {number | Pattern}  MIDI control value (0-127)
+ */
+export const { ccv } = registerControl('ccv');
+export const { ctlNum } = registerControl('ctlNum');
+// TODO: ctlVal?
+
+/**
+ * MIDI NRPN non-registered parameter number: Sends a MIDI NRPN non-registered parameter number message.
+ * @name nrpnn
+ * @param {number | Pattern} nrpnn MIDI NRPN non-registered parameter number (0-127)
+ * @example
+ * note("c4").nrpnn("1:8").nrpv("123").midichan(1).midi()
+ */
+export const { nrpnn } = registerControl('nrpnn');
+/**
+ * MIDI NRPN non-registered parameter value: Sends a MIDI NRPN non-registered parameter value message.
+ * @name nrpv
+ * @param {number | Pattern} nrpv MIDI NRPN non-registered parameter value (0-127)
+ * @example
+ * note("c4").nrpnn("1:8").nrpv("123").midichan(1).midi()
+ */
+export const { nrpv } = registerControl('nrpv');
+
+/**
+ * MIDI program number: Sends a MIDI program change message.
+ *
+ * @name progNum
+ * @param {number | Pattern} program MIDI program number (0-127)
+ * @example
+ * note("c4").progNum(10).midichan(1).midi()
+ */
+export const { progNum } = registerControl('progNum');
+
+/**
+ * MIDI sysex: Sends a MIDI sysex message.
+ * @name sysex
+ * @param {number | Pattern} id Sysex ID
+ * @param {number | Pattern} data Sysex data
+ * @example
+ * note("c4").sysex(["0x77", "0x01:0x02:0x03:0x04"]).midichan(1).midi()
+ */
+export const sysex = register('sysex', (args, pat) => {
+  if (!Array.isArray(args)) {
+    throw new Error('sysex expects an array of [id, data]');
+  }
+  const [id, data] = args;
+  return pat.sysexid(id).sysexdata(data);
+});
+/**
+ * MIDI sysex ID: Sends a MIDI sysex identifier message.
+ * @name sysexid
+ * @param {number | Pattern} id Sysex ID
+ * @example
+ * note("c4").sysexid("0x77").sysexdata("0x01:0x02:0x03:0x04").midichan(1).midi()
+ */
+export const { sysexid } = registerControl('sysexid');
+/**
+ * MIDI sysex data: Sends a MIDI sysex message.
+ * @name sysexdata
+ * @param {number | Pattern} data Sysex data
+ * @example
+ * note("c4").sysexid("0x77").sysexdata("0x01:0x02:0x03:0x04").midichan(1).midi()
+ */
+export const { sysexdata } = registerControl('sysexdata');
+
+/**
+ * MIDI pitch bend: Sends a MIDI pitch bend message.
+ * @name midibend
+ * @param {number | Pattern} midibend MIDI pitch bend (-1 - 1)
+ * @example
+ * note("c4").midibend(sine.slow(4).range(-0.4,0.4)).midi()
+ */
+export const { midibend } = registerControl('midibend');
+/**
+ * MIDI key after touch: Sends a MIDI key after touch message.
+ * @name miditouch
+ * @param {number | Pattern} miditouch MIDI key after touch (0-1)
+ * @example
+ * note("c4").miditouch(sine.slow(4).range(0,1)).midi()
+ */
+export const { miditouch } = registerControl('miditouch');
+
+// TODO: what is this?
+export const { polyTouch } = registerControl('polyTouch');
+
+export const getControlName = (alias) => {
+  if (controlAlias.has(alias)) {
+    return controlAlias.get(alias);
+  }
+  return alias;
+};
+
+/**
+ * Sets properties in a batch.
+ *
+ * @name as
+ * @param {String | Array} mapping the control names that are set
+ * @example
+ * "c:.5 a:1 f:.25 e:.8".as("note:clip")
+ * @example
+ * "{0@2 0.25 0 0.5 .3 .5}%8".as("begin").s("sax_vib").clip(1)
+ */
+export const as = register('as', (mapping, pat) => {
+  mapping = Array.isArray(mapping) ? mapping : [mapping];
+  return pat.fmap((v) => {
+    v = Array.isArray(v) ? v : [v];
+    v = Object.fromEntries(mapping.map((prop, i) => [getControlName(prop), v[i]]));
+    return v;
+  });
+});
+
+/**
+ * Allows you to scrub an audio file like a tape loop by passing values that represents the position in the audio file
+ * in the optional array syntax ex: "0.5:2", the second value controls the speed of playback
+ * @name scrub
+ * @memberof Pattern
+ * @returns Pattern
+ * @example
+ * samples('github:switchangel/pad')
+ * s("swpad:0").scrub("{0.1!2 .25@3 0.7!2 <0.8:1.5>}%8")
+ * @example
+ * samples('github:yaxu/clean-breaks/main');
+ * s("amen/4").fit().scrub("{0@3 0@2 4@3}%8".div(16))
+ */
+
+export const scrub = register(
+  'scrub',
+  (beginPat, pat) => {
+    return beginPat.outerBind((v) => {
+      if (!Array.isArray(v)) {
+        v = [v];
+      }
+      const [beginVal, speedMultiplier = 1] = v;
+
+      return pat.begin(beginVal).mul(speed(speedMultiplier)).clip(1);
+    });
+  },
+  false,
+);
diff --git a/packages/core/cyclist.mjs b/packages/core/cyclist.mjs
index a170ca3a..072e97ab 100644
--- a/packages/core/cyclist.mjs
+++ b/packages/core/cyclist.mjs
@@ -1,6 +1,6 @@
 /*
-cyclist.mjs - event scheduler for a single strudel instance. for multi-instance scheduler, see - see 
-Copyright (C) 2022 Strudel contributors - see 
+cyclist.mjs - event scheduler for a single strudel instance. for multi-instance scheduler, see - see 
+Copyright (C) 2022 Strudel contributors - see 
 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 .
 */
 
@@ -8,8 +8,19 @@ import createClock from './zyklus.mjs';
 import { logger } from './logger.mjs';
 
 export class Cyclist {
-  constructor({ interval = 0.05, onTrigger, onToggle, onError, getTime, latency = 0.1, setInterval, clearInterval }) {
+  constructor({
+    interval,
+    onTrigger,
+    onToggle,
+    onError,
+    getTime,
+    latency = 0.1,
+    setInterval,
+    clearInterval,
+    beforeStart,
+  }) {
     this.started = false;
+    this.beforeStart = beforeStart;
     this.cps = 0.5;
     this.time_at_last_tick_message = 0;
     this.cycle = 0;
@@ -50,9 +61,29 @@ export class Cyclist {
             const duration = hap.duration / this.cps;
             onTrigger?.(hap, tickdeadline, duration, this.cps, targetTime, this.cycle - cycle_gap);
           }
-        });
-        this.time_at_last_tick_message = time;
-        this.num_ticks_since_cps_change++;
+
+          // query the pattern for events
+          const haps = this.pattern.queryArc(begin, end, { _cps: this.cps });
+
+          haps.forEach((hap) => {
+            if (hap.hasOnset()) {
+              const targetTime =
+                (hap.whole.begin - this.num_cycles_at_cps_change) / this.cps + this.seconds_at_cps_change + latency;
+              const duration = hap.duration / this.cps;
+              // the following line is dumb and only here for backwards compatibility
+              // see https://codeberg.org/uzu/strudel/pulls/1004
+              const deadline = targetTime - phase;
+              onTrigger?.(hap, deadline, duration, this.cps, targetTime);
+              if (hap.value.cps !== undefined && this.cps != hap.value.cps) {
+                this.cps = hap.value.cps;
+                this.num_ticks_since_cps_change = 0;
+              }
+            }
+          });
+        } catch (e) {
+          logger(`[cyclist] error: ${e.message}`);
+          onError?.(e);
+        }
       },
       interval, // duration of each cycle
       0.1,
@@ -79,7 +110,8 @@ export class Cyclist {
     this.setCycle(0);
     this.onToggle?.(v);
   }
-  start() {
+  async start() {
+    await this.beforeStart?.();
     this.num_ticks_since_cps_change = 0;
     this.num_cycles_at_cps_change = 0;
 
@@ -101,10 +133,10 @@ export class Cyclist {
     this.lastEnd = 0;
     this.setStarted(false);
   }
-  setPattern(pat, autostart = false) {
+  async setPattern(pat, autostart = false) {
     this.pattern = pat;
     if (autostart && !this.started) {
-      this.start();
+      await this.start();
     }
   }
   setCps(cps = 0.5) {
diff --git a/packages/core/drawLine.mjs b/packages/core/drawLine.mjs
index 91b86b4a..7509c0f6 100644
--- a/packages/core/drawLine.mjs
+++ b/packages/core/drawLine.mjs
@@ -1,6 +1,6 @@
 /*
 drawLine.mjs - 
-Copyright (C) 2022 Strudel contributors - see 
+Copyright (C) 2022 Strudel contributors - see 
 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 .
 */
 
diff --git a/packages/core/euclid.mjs b/packages/core/euclid.mjs
index ad0b0148..25e12b07 100644
--- a/packages/core/euclid.mjs
+++ b/packages/core/euclid.mjs
@@ -2,7 +2,7 @@
 euclid.mjs - Bjorklund/Euclidean/Diaspora rhythms
 Copyright (C) 2023 Rohan Drape and strudel contributors
 
-See  for authors of this file.
+See  for authors of this file.
 
 The Bjorklund algorithm implementation is ported from the Haskell Music Theory Haskell module by Rohan Drape -
 https://rohandrape.net/?t=hmt
@@ -10,9 +10,9 @@ https://rohandrape.net/?t=hmt
 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 .
 */
 
-import { Pattern, timeCat, register, silence } from './pattern.mjs';
+import { timeCat, register, silence } from './pattern.mjs';
 import { rotate, flatten, splitAt, zipWith } from './util.mjs';
-import Fraction from './fraction.mjs';
+import Fraction, { lcm } from './fraction.mjs';
 
 const left = function (n, x) {
   const [ons, offs] = n;
@@ -42,29 +42,26 @@ const _bjork = function (n, x) {
 
 export const bjork = function (ons, steps) {
   const inverted = ons < 0;
-  ons = Math.abs(ons);
-  const offs = steps - ons;
-  const x = Array(ons).fill([1]);
-  const y = Array(offs).fill([0]);
-  const result = _bjork([ons, offs], [x, y]);
-  const p = flatten(result[1][0]).concat(flatten(result[1][1]));
-  if (inverted) {
-    return p.map((x) => (x === 0 ? 1 : 0));
-  }
-  return p;
+  const absOns = Math.abs(ons);
+  const offs = steps - absOns;
+  const ones = Array(absOns).fill([1]);
+  const zeros = Array(offs).fill([0]);
+  const result = _bjork([absOns, offs], [ones, zeros]);
+  const pattern = flatten(result[1][0]).concat(flatten(result[1][1]));
+  return inverted ? pattern.map((x) => 1 - x) : pattern;
 };
 
 /**
- * Changes the structure of the pattern to form an euclidean rhythm.
- * Euclidian rhythms are rhythms obtained using the greatest common
+ * Changes the structure of the pattern to form an Euclidean rhythm.
+ * Euclidean rhythms are rhythms obtained using the greatest common
  * divisor of two numbers.  They were described in 2004 by Godfried
- * Toussaint, a canadian computer scientist.  Euclidian rhythms are
+ * Toussaint, a Canadian computer scientist.  Euclidean rhythms are
  * really useful for computer/algorithmic music because they can
  * describe a large number of rhythms with a couple of numbers.
  *
  * @memberof Pattern
  * @name euclid
- * @param {number} pulses the number of onsets / beats
+ * @param {number} pulses the number of onsets/beats
  * @param {number} steps the number of steps to fill
  * @returns Pattern
  * @example
@@ -76,7 +73,7 @@ export const bjork = function (ons, steps) {
  * Like `euclid`, but has an additional parameter for 'rotating' the resulting sequence.
  * @memberof Pattern
  * @name euclidRot
- * @param {number} pulses the number of onsets / beats
+ * @param {number} pulses the number of onsets/beats
  * @param {number} steps the number of steps to fill
  * @param {number} rotation offset in steps
  * @returns Pattern
@@ -86,13 +83,13 @@ export const bjork = function (ons, steps) {
  */
 
 /**
- * @example // A thirteenth century Persian rhythm called Khafif-e-ramal.
+ * @example // A thirteenth-century Persian rhythm called Khafif-e-ramal.
  * note("c3").euclid(2,5)
  * @example // The archetypal pattern of the Cumbia from Colombia, as well as a Calypso rhythm from Trinidad.
  * note("c3").euclid(3,4)
  * @example // Another thirteenth century Persian rhythm by the name of Khafif-e-ramal, as well as a Rumanian folk-dance rhythm.
  * note("c3").euclidRot(3,5,2)
- * @example // A Ruchenitza rhythm used in a Bulgarian folk-dance.
+ * @example // A Ruchenitza rhythm used in a Bulgarian folk dance.
  * note("c3").euclid(3,7)
  * @example // The Cuban tresillo pattern.
  * note("c3").euclid(3,8)
@@ -142,6 +139,14 @@ export const euclid = register('euclid', function (pulses, steps, pat) {
   return pat.struct(_euclidRot(pulses, steps, 0));
 });
 
+export const e = register('e', function (euc, pat) {
+  if (!Array.isArray(euc)) {
+    euc = [euc];
+  }
+  const [pulses, steps = pulses, rot = 0] = euc;
+  return pat.struct(_euclidRot(pulses, steps, rot));
+});
+
 export const { euclidrot, euclidRot } = register(['euclidrot', 'euclidRot'], function (pulses, steps, rotation, pat) {
   return pat.struct(_euclidRot(pulses, steps, rotation));
 });
@@ -151,8 +156,10 @@ export const { euclidrot, euclidRot } = register(['euclidrot', 'euclidRot'], fun
  * so there will be no gaps.
  * @name euclidLegato
  * @memberof Pattern
- * @param {number} pulses the number of onsets / beats
+ * @param {number} pulses the number of onsets/beats
  * @param {number} steps the number of steps to fill
+ * @param rotation offset in steps
+ * @param pat
  * @example
  * note("c3").euclidLegato(3,8)
  */
@@ -161,13 +168,13 @@ const _euclidLegato = function (pulses, steps, rotation, pat) {
   if (pulses < 1) {
     return silence;
   }
-  const bin_pat = _euclidRot(pulses, steps, rotation);
+  const bin_pat = _euclidRot(pulses, steps, 0);
   const gapless = bin_pat
     .join('')
     .split('1')
     .slice(1)
     .map((s) => [s.length + 1, true]);
-  return pat.struct(timeCat(...gapless));
+  return pat.struct(timeCat(...gapless)).late(Fraction(rotation).div(steps));
 };
 
 export const euclidLegato = register(['euclidLegato'], function (pulses, steps, pat) {
@@ -180,7 +187,7 @@ export const euclidLegato = register(['euclidLegato'], function (pulses, steps,
  * the resulting sequence
  * @name euclidLegatoRot
  * @memberof Pattern
- * @param {number} pulses the number of onsets / beats
+ * @param {number} pulses the number of onsets/beats
  * @param {number} steps the number of steps to fill
  * @param {number} rotation offset in steps
  * @example
diff --git a/packages/core/evaluate.mjs b/packages/core/evaluate.mjs
index ea63d8df..0599d866 100644
--- a/packages/core/evaluate.mjs
+++ b/packages/core/evaluate.mjs
@@ -1,10 +1,10 @@
 /*
 evaluate.mjs - 
-Copyright (C) 2022 Strudel contributors - see 
+Copyright (C) 2022 Strudel contributors - see 
 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 .
 */
 
-import { isPattern } from './index.mjs';
+export const strudelScope = {};
 
 export const evalScope = async (...args) => {
   const results = await Promise.allSettled(args);
@@ -20,6 +20,7 @@ export const evalScope = async (...args) => {
   modules.forEach((module) => {
     Object.entries(module).forEach(([name, value]) => {
       globalThis[name] = value;
+      strudelScope[name] = value;
     });
   });
   return modules;
@@ -37,11 +38,12 @@ function safeEval(str, options = {}) {
   return Function(body)();
 }
 
-export const evaluate = async (code, transpiler) => {
+export const evaluate = async (code, transpiler, transpilerOptions) => {
   let meta = {};
+
   if (transpiler) {
     // transform syntactically correct js code to semantically usable code
-    const transpiled = transpiler(code);
+    const transpiled = transpiler(code, transpilerOptions);
     code = transpiled.output;
     meta = transpiled;
   }
diff --git a/packages/core/fraction.mjs b/packages/core/fraction.mjs
index a339567f..2e3bc68e 100644
--- a/packages/core/fraction.mjs
+++ b/packages/core/fraction.mjs
@@ -1,6 +1,6 @@
 /*
 fraction.mjs - 
-Copyright (C) 2022 Strudel contributors - see 
+Copyright (C) 2022 Strudel contributors - see 
 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 .
 */
 
@@ -119,10 +119,10 @@ export const lcm = (...fractions) => {
   if (fractions.length === 0) {
     return undefined;
   }
-
+  const x = fractions.pop();
   return fractions.reduce(
     (lcm, fraction) => (lcm === undefined || fraction === undefined ? undefined : lcm.lcm(fraction)),
-    fraction(1),
+    x,
   );
 };
 
diff --git a/packages/core/hap.mjs b/packages/core/hap.mjs
index 7a9e0a62..a6e3c55a 100644
--- a/packages/core/hap.mjs
+++ b/packages/core/hap.mjs
@@ -1,6 +1,6 @@
 /*
 hap.mjs - 
-Copyright (C) 2022 Strudel contributors - see 
+Copyright (C) 2022 Strudel contributors - see 
 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 .
 */
 import Fraction from './fraction.mjs';
diff --git a/packages/core/index.mjs b/packages/core/index.mjs
index 506fa77a..e4daf445 100644
--- a/packages/core/index.mjs
+++ b/packages/core/index.mjs
@@ -1,6 +1,6 @@
 /*
 index.mjs - 
-Copyright (C) 2022 Strudel contributors - see 
+Copyright (C) 2022 Strudel contributors - see 
 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 .
 */
 
@@ -14,6 +14,7 @@ export * from './controls.mjs';
 export * from './hap.mjs';
 export * from './pattern.mjs';
 export * from './signal.mjs';
+export * from './pick.mjs';
 export * from './state.mjs';
 export * from './timespan.mjs';
 export * from './util.mjs';
diff --git a/packages/core/neocyclist.mjs b/packages/core/neocyclist.mjs
index 6a92050c..261f08ac 100644
--- a/packages/core/neocyclist.mjs
+++ b/packages/core/neocyclist.mjs
@@ -1,10 +1,11 @@
 /*
 neocyclist.mjs - event scheduler like cyclist, except recieves clock pulses from clockworker in order to sync across multiple instances.
-Copyright (C) 2022 Strudel contributors - see 
+Copyright (C) 2022 Strudel contributors - see 
 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 .
 */
 
 import { logger } from './logger.mjs';
+import { ClockCollator, cycleToSeconds } from './util.mjs';
 
 export class NeoCyclist {
   constructor({ onTrigger, onToggle, getTime }) {
@@ -12,78 +13,39 @@ export class NeoCyclist {
     this.cps = 0.5;
     this.getTime = getTime; // get absolute time
     this.time_at_last_tick_message = 0;
+    // the clock of the worker and the audio context clock can drift apart over time
+    // aditionally, the message time of the worker pinging the callback to process haps can be inconsistent.
+    // we need to keep a rolling average of the time difference between the worker clock and audio context clock
+    // in order to schedule events consistently.
+    this.collator = new ClockCollator({ getTargetClockTime: getTime });
     this.onToggle = onToggle;
     this.latency = 0.1; // fixed trigger time offset
     this.cycle = 0;
     this.id = Math.round(Date.now() * Math.random());
-    this.worker_time_dif;
     this.worker = new SharedWorker(new URL('./clockworker.js', import.meta.url));
     this.worker.port.start();
-
     this.channel = new BroadcastChannel('strudeltick');
-    let weight = 0; // the amount of weight that is applied to the current average when averaging a new time dif
-    const maxWeight = 20;
-    const precision = 10 ** 3; //round off time diff to prevent accumulating outliers
-
-    // the clock of the worker and the audio context clock can drift apart over time
-    // aditionally, the message time of the worker pinging the callback to process haps can be inconsistent.
-    // we need to keep a rolling weighted average of the time difference between the worker clock and audio context clock
-    // in order to schedule events consistently.
-    const setTimeReference = (num_seconds_at_cps_change, num_seconds_since_cps_change, tickdeadline) => {
-      const time_dif = getTime() - (num_seconds_at_cps_change + num_seconds_since_cps_change) + tickdeadline;
-      if (this.worker_time_dif == null) {
-        this.worker_time_dif = time_dif;
-      } else {
-        const w = 1; //weight of new time diff;
-        const new_dif =
-          Math.round(((this.worker_time_dif * weight + time_dif * w) / (weight + w)) * precision) / precision;
-
-        if (new_dif != this.worker_time_dif) {
-          // reset the weight so the clock recovers faster from an audio context freeze/dropout if it happens
-          weight = 4;
-        }
-        this.worker_time_dif = new_dif;
-      }
-      weight = Math.min(weight + 1, maxWeight);
-    };
-
     const tickCallback = (payload) => {
-      const {
-        num_cycles_at_cps_change,
-        cps,
-        num_seconds_at_cps_change,
-        num_seconds_since_cps_change,
-        begin,
-        end,
-        tickdeadline,
-        cycle,
-      } = payload;
+      const { cps, begin, end, cycle, time } = payload;
       this.cps = cps;
       this.cycle = cycle;
-
-      setTimeReference(num_seconds_at_cps_change, num_seconds_since_cps_change, tickdeadline);
-
-      processHaps(begin, end, num_cycles_at_cps_change, num_seconds_at_cps_change);
-
-      this.time_at_last_tick_message = this.getTime();
+      const currentTime = this.collator.calculateOffset(time) + time;
+      processHaps(begin, end, currentTime);
+      this.time_at_last_tick_message = currentTime;
     };
 
-    const processHaps = (begin, end, num_cycles_at_cps_change, seconds_at_cps_change) => {
+    const processHaps = (begin, end, currentTime) => {
       if (this.started === false) {
         return;
       }
 
       const haps = this.pattern.queryArc(begin, end, { _cps: this.cps });
-
       haps.forEach((hap) => {
         if (hap.hasOnset()) {
-          const targetTime =
-            (hap.whole.begin - num_cycles_at_cps_change) / this.cps +
-            seconds_at_cps_change +
-            this.latency +
-            this.worker_time_dif;
-          const duration = hap.duration / this.cps;
-          onTrigger?.(hap, 0, duration, this.cps, targetTime, this.cycle);
+          const timeUntilTrigger = cycleToSeconds(hap.whole.begin - this.cycle, this.cps);
+          const targetTime = timeUntilTrigger + currentTime + this.latency;
+          const duration = cycleToSeconds(hap.duration, this.cps);
+          onTrigger?.(hap, 0, duration, this.cps, targetTime);
         }
       });
     };
@@ -126,8 +88,8 @@ export class NeoCyclist {
     this.setStarted(true);
   }
   stop() {
-    this.worker_time_dif = null;
     logger('[cyclist] stop');
+    this.collator.reset();
     this.setStarted(false);
   }
   setPattern(pat, autostart = false) {
diff --git a/packages/core/package.json b/packages/core/package.json
index 6c95d049..f4170f2b 100644
--- a/packages/core/package.json
+++ b/packages/core/package.json
@@ -1,6 +1,6 @@
 {
   "name": "@strudel/core",
-  "version": "1.0.1",
+  "version": "1.2.2",
   "description": "Port of Tidal Cycles to JavaScript",
   "main": "index.mjs",
   "type": "module",
@@ -15,7 +15,7 @@
   },
   "repository": {
     "type": "git",
-    "url": "git+https://github.com/tidalcycles/strudel.git"
+    "url": "git+https://codeberg.org/uzu/strudel.git"
   },
   "keywords": [
     "tidalcycles",
@@ -27,15 +27,15 @@
   "author": "Alex McLean  (https://slab.org)",
   "license": "AGPL-3.0-or-later",
   "bugs": {
-    "url": "https://github.com/tidalcycles/strudel/issues"
+    "url": "https://codeberg.org/uzu/strudel/issues"
   },
   "homepage": "https://strudel.cc",
   "dependencies": {
-    "fraction.js": "^4.3.7"
+    "fraction.js": "^5.2.1"
   },
   "gitHead": "0e26d4e741500f5bae35b023608f062a794905c2",
   "devDependencies": {
-    "vite": "^5.0.10",
-    "vitest": "^1.1.0"
+    "vite": "^6.0.11",
+    "vitest": "^3.0.4"
   }
 }
diff --git a/packages/core/pattern.mjs b/packages/core/pattern.mjs
index 03ce2e2d..cbaf8a8a 100644
--- a/packages/core/pattern.mjs
+++ b/packages/core/pattern.mjs
@@ -1,6 +1,6 @@
 /*
 pattern.mjs - Core pattern representation for strudel
-Copyright (C) 2022 Strudel contributors - see 
+Copyright (C) 2025 Strudel contributors - see 
 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 .
 */
 
@@ -27,10 +27,10 @@ import { logger } from './logger.mjs';
 
 let stringParser;
 
-let __tactus = true;
+let __steps = true;
 
-export const calculateTactus = function (x) {
-  __tactus = x ? true : false;
+export const calculateSteps = function (x) {
+  __steps = x ? true : false;
 };
 
 // parser is expected to turn a string into a pattern
@@ -46,34 +46,34 @@ export class Pattern {
    * @param {function} query - The function that maps a `State` to an array of `Hap`.
    * @noAutocomplete
    */
-  constructor(query, tactus = undefined) {
+  constructor(query, steps = undefined) {
     this.query = query;
     this._Pattern = true; // this property is used to detectinstance of another Pattern
-    this.tactus = tactus; // in terms of number of steps per cycle
+    this._steps = steps; // in terms of number of steps per cycle
   }
 
-  get tactus() {
-    return this.__tactus;
+  get _steps() {
+    return this.__steps;
   }
 
-  set tactus(tactus) {
-    this.__tactus = tactus === undefined ? undefined : Fraction(tactus);
+  set _steps(steps) {
+    this.__steps = steps === undefined ? undefined : Fraction(steps);
   }
 
-  setTactus(tactus) {
-    this.tactus = tactus;
+  setSteps(steps) {
+    this._steps = steps;
     return this;
   }
 
-  withTactus(f) {
-    if (!__tactus) {
+  withSteps(f) {
+    if (!__steps) {
       return this;
     }
-    return new Pattern(this.query, this.tactus === undefined ? undefined : f(this.tactus));
+    return new Pattern(this.query, this._steps === undefined ? undefined : f(this._steps));
   }
 
-  get hasTactus() {
-    return this.tactus !== undefined;
+  get hasSteps() {
+    return this._steps !== undefined;
   }
 
   //////////////////////////////////////////////////////////////////////
@@ -90,10 +90,18 @@ export class Pattern {
    */
   withValue(func) {
     const result = new Pattern((state) => this.query(state).map((hap) => hap.withValue(func)));
-    result.tactus = this.tactus;
+    result._steps = this._steps;
     return result;
   }
 
+  // runs func on query state
+  withState(func) {
+    return this.withHaps((haps, state) => {
+      func(state);
+      return haps;
+    });
+  }
+
   /**
    * see `withValue`
    * @noAutocomplete
@@ -158,8 +166,8 @@ export class Pattern {
       return span_a.intersection_e(span_b);
     };
     const result = pat_func.appWhole(whole_func, pat_val);
-    if (__tactus) {
-      result.tactus = lcm(pat_val.tactus, pat_func.tactus);
+    if (__steps) {
+      result._steps = lcm(pat_val._steps, pat_func._steps);
     }
     return result;
   }
@@ -195,7 +203,7 @@ export class Pattern {
       return haps;
     };
     const result = new Pattern(query);
-    result.tactus = this.tactus;
+    result._steps = this._steps;
     return result;
   }
 
@@ -228,7 +236,7 @@ export class Pattern {
       return haps;
     };
     const result = new Pattern(query);
-    result.tactus = pat_val.tactus;
+    result._steps = pat_val._steps;
     return result;
   }
 
@@ -272,7 +280,7 @@ export class Pattern {
   }
 
   outerBind(func) {
-    return this.bindWhole((a) => a, func).setTactus(this.tactus);
+    return this.bindWhole((a) => a, func).setSteps(this._steps);
   }
 
   outerJoin() {
@@ -378,6 +386,15 @@ export class Pattern {
     return this.fmap(func).squeezeJoin();
   }
 
+  polyJoin = function () {
+    const pp = this;
+    return pp.fmap((p) => p.extend(pp._steps.div(p._steps))).outerJoin();
+  };
+
+  polyBind(func) {
+    return this.fmap(func).polyJoin();
+  }
+
   //////////////////////////////////////////////////////////////////////
   // Utility methods mainly for internal use
 
@@ -482,7 +499,7 @@ export class Pattern {
    */
   withHaps(func) {
     const result = new Pattern((state) => func(this.query(state), state));
-    result.tactus = this.tactus;
+    result._steps = this._steps;
     return result;
   }
 
@@ -572,7 +589,7 @@ export class Pattern {
    * @noAutocomplete
    */
   filterValues(value_test) {
-    return new Pattern((state) => this.query(state).filter((hap) => value_test(hap.value))).setTactus(this.tactus);
+    return new Pattern((state) => this.query(state).filter((hap) => value_test(hap.value))).setSteps(this._steps);
   }
 
   /**
@@ -746,6 +763,10 @@ export class Pattern {
     const otherPat = reify(other);
     return otherPat.fmap((b) => this.fmap((a) => func(a)(b))).restartJoin();
   }
+  _opPoly(other, func) {
+    const otherPat = reify(other);
+    return this.fmap((b) => otherPat.fmap((a) => func(a)(b))).polyJoin();
+  }
 
   //////////////////////////////////////////////////////////////////////
   // End-user methods.
@@ -788,15 +809,6 @@ export class Pattern {
   //////////////////////////////////////////////////////////////////////
   // Multi-pattern functions
 
-  /**
-   * Stacks the given pattern(s) to the current pattern.
-   * @name stack
-   * @memberof Pattern
-   * @example
-   * s("hh*4").stack(
-   *   note("c4(5,8)")
-   * )
-   */
   stack(...pats) {
     return stack(this, ...pats);
   }
@@ -805,30 +817,9 @@ export class Pattern {
     return sequence(this, ...pats);
   }
 
-  /**
-   * Appends the given pattern(s) to the current pattern.
-   * @name seq
-   * @memberof Pattern
-   * @synonyms sequence, fastcat
-   * @example
-   * s("hh*4").seq(
-   *   note("c4(5,8)")
-   * )
-   */
   seq(...pats) {
     return sequence(this, ...pats);
   }
-
-  /**
-   * Appends the given pattern(s) to the next cycle.
-   * @name cat
-   * @memberof Pattern
-   * @synonyms slowcat
-   * @example
-   * s("hh*4").cat(
-   *   note("c4(5,8)")
-   * )
-   */
   cat(...pats) {
     return cat(this, ...pats);
   }
@@ -878,6 +869,31 @@ export class Pattern {
     console.log(drawLine(this));
     return this;
   }
+
+  //////////////////////////////////////////////////////////////////////
+  // methods relating to breaking patterns into subcycles
+
+  // Breaks a pattern into a pattern of patterns, according to the structure of the given binary pattern.
+  unjoin(pieces, func = id) {
+    return pieces.withHap((hap) =>
+      hap.withValue((v) => (v ? func(this.ribbon(hap.whole.begin, hap.whole.duration)) : this)),
+    );
+  }
+
+  /**
+   * Breaks a pattern into pieces according to the structure of a given pattern.
+   * True values in the given pattern cause the corresponding subcycle of the
+   * source pattern to be looped, and for an (optional) given function to be
+   * applied. False values result in the corresponding part of the source pattern
+   * to be played unchanged.
+   * @name into
+   * @memberof Pattern
+   * @example
+   * sound("bd sd ht lt").into("1 0", hurry(2))
+   */
+  into(pieces, func) {
+    return this.unjoin(pieces, func).innerJoin();
+  }
 }
 
 //////////////////////////////////////////////////////////////////////
@@ -913,12 +929,13 @@ Pattern.prototype.collect = function () {
  * note("<[c,eb,g]!2 [c,f,ab] [d,f,ab]>")
  * .arpWith(haps => haps[2])
  * */
-Pattern.prototype.arpWith = function (func) {
-  return this.collect()
+export const arpWith = register('arpWith', (func, pat) => {
+  return pat
+    .collect()
     .fmap((v) => reify(func(v)))
     .innerJoin()
     .withHap((h) => new Hap(h.whole, h.part, h.value.value, h.combineContext(h.value)));
-};
+});
 
 /**
  * Selects indices in in stacked notes.
@@ -926,9 +943,11 @@ Pattern.prototype.arpWith = function (func) {
  * note("<[c,eb,g]!2 [c,f,ab] [d,f,ab]>")
  * .arp("0 [0,2] 1 [0,2]")
  * */
-Pattern.prototype.arp = function (pat) {
-  return this.arpWith((haps) => pat.fmap((i) => haps[i % haps.length]));
-};
+export const arp = register(
+  'arp',
+  (indices, pat) => pat.arpWith((haps) => reify(indices).fmap((i) => haps[i % haps.length])),
+  false,
+);
 
 /*
  * Takes a time duration followed by one or more patterns, and shifts the given patterns in time, so they are
@@ -1032,6 +1051,7 @@ function _composeOp(a, b, func) {
     div: [numeralArgs((a, b) => a / b)],
     mod: [numeralArgs(_mod)],
     pow: [numeralArgs(Math.pow)],
+    log2: [numeralArgs(Math.log2)],
     band: [numeralArgs((a, b) => a & b)],
     bor: [numeralArgs((a, b) => a | b)],
     bxor: [numeralArgs((a, b) => a ^ b)],
@@ -1054,7 +1074,7 @@ function _composeOp(a, b, func) {
     func: [(a, b) => b(a)],
   };
 
-  const hows = ['In', 'Out', 'Mix', 'Squeeze', 'SqueezeOut', 'Reset', 'Restart'];
+  const hows = ['In', 'Out', 'Mix', 'Squeeze', 'SqueezeOut', 'Reset', 'Restart', 'Poly'];
 
   // generate methods to do what and how
   for (const [what, [op, preprocess]] of Object.entries(composers)) {
@@ -1167,7 +1187,7 @@ function _composeOp(a, b, func) {
 export const polyrhythm = stack;
 export const pr = stack;
 
-export const pm = s_polymeter;
+export const pm = polymeter;
 
 // methods that create patterns, which are added to patternified Pattern methods
 // TODO: remove? this is only used in old transpiler (shapeshifter)
@@ -1190,13 +1210,13 @@ export const pm = s_polymeter;
 // Elemental patterns
 
 /**
- * Does absolutely nothing, but with a given metrical 'tactus'
+ * Does absolutely nothing, but with a given metrical 'steps'
  * @name gap
- * @param  {number} tactus
+ * @param  {number} steps
  * @example
  * gap(3) // "~@3"
  */
-export const gap = (tactus) => new Pattern(() => [], tactus);
+export const gap = (steps) => new Pattern(() => [], steps);
 
 /**
  * Does absolutely nothing..
@@ -1206,7 +1226,7 @@ export const gap = (tactus) => new Pattern(() => [], tactus);
  */
 export const silence = gap(1);
 
-/* Like silence, but with a 'tactus' (relative duration) of 0 */
+/* Like silence, but with a 'steps' (relative duration) of 0 */
 export const nothing = gap(0);
 
 /** A discrete value that repeats once per cycle.
@@ -1252,6 +1272,16 @@ export function reify(thing) {
   return pure(thing);
 }
 
+/** Takes a list of patterns, and returns a pattern of lists.
+ */
+export function sequenceP(pats) {
+  let result = pure([]);
+  for (const pat of pats) {
+    result = result.bind((list) => pat.fmap((v) => list.concat([v])));
+  }
+  return result;
+}
+
 /** The given items are played at the same time at the same length.
  *
  * @return {Pattern}
@@ -1259,14 +1289,20 @@ export function reify(thing) {
  * @example
  * stack("g3", "b3", ["e4", "d4"]).note()
  * // "g3,b3,[e4,d4]".note()
+ *
+ * @example
+ * // As a chained function:
+ * s("hh*4").stack(
+ *   note("c4(5,8)")
+ * )
  */
 export function stack(...pats) {
   // Array test here is to avoid infinite recursions..
   pats = pats.map((pat) => (Array.isArray(pat) ? sequence(...pat) : reify(pat)));
   const query = (state) => flatten(pats.map((pat) => pat.query(state)));
   const result = new Pattern(query);
-  if (__tactus) {
-    result.tactus = lcm(...pats.map((pat) => pat.tactus));
+  if (__steps) {
+    result._steps = lcm(...pats.map((pat) => pat._steps));
   }
   return result;
 }
@@ -1279,54 +1315,54 @@ function _stackWith(func, pats) {
   if (pats.length === 1) {
     return pats[0];
   }
-  const [left, ...right] = pats.map((pat) => pat.tactus);
-  const tactus = __tactus ? left.maximum(...right) : undefined;
-  return stack(...func(tactus, pats));
+  const [left, ...right] = pats.map((pat) => pat._steps);
+  const steps = __steps ? left.maximum(...right) : undefined;
+  return stack(...func(steps, pats));
 }
 
 export function stackLeft(...pats) {
   return _stackWith(
-    (tactus, pats) => pats.map((pat) => (pat.tactus.eq(tactus) ? pat : s_cat(pat, gap(tactus.sub(pat.tactus))))),
+    (steps, pats) => pats.map((pat) => (pat._steps.eq(steps) ? pat : stepcat(pat, gap(steps.sub(pat._steps))))),
     pats,
   );
 }
 
 export function stackRight(...pats) {
   return _stackWith(
-    (tactus, pats) => pats.map((pat) => (pat.tactus.eq(tactus) ? pat : s_cat(gap(tactus.sub(pat.tactus)), pat))),
+    (steps, pats) => pats.map((pat) => (pat._steps.eq(steps) ? pat : stepcat(gap(steps.sub(pat._steps)), pat))),
     pats,
   );
 }
 
 export function stackCentre(...pats) {
   return _stackWith(
-    (tactus, pats) =>
+    (steps, pats) =>
       pats.map((pat) => {
-        if (pat.tactus.eq(tactus)) {
+        if (pat._steps.eq(steps)) {
           return pat;
         }
-        const g = gap(tactus.sub(pat.tactus).div(2));
-        return s_cat(g, pat, g);
+        const g = gap(steps.sub(pat._steps).div(2));
+        return stepcat(g, pat, g);
       }),
     pats,
   );
 }
 
 export function stackBy(by, ...pats) {
-  const [left, ...right] = pats.map((pat) => pat.tactus);
-  const tactus = left.maximum(...right);
+  const [left, ...right] = pats.map((pat) => pat._steps);
+  const steps = left.maximum(...right);
   const lookup = {
     centre: stackCentre,
     left: stackLeft,
     right: stackRight,
     expand: stack,
-    repeat: (...args) => s_polymeterSteps(tactus, ...args),
+    repeat: (...args) => polymeter(...args).steps(steps),
   };
   return by
     .inhabit(lookup)
     .fmap((func) => func(...pats))
     .innerJoin()
-    .setTactus(tactus);
+    .setSteps(steps);
 }
 
 /** Concatenation: combines a list of patterns, switching between them successively, one per cycle:
@@ -1360,8 +1396,8 @@ export function slowcat(...pats) {
     const offset = span.begin.floor().sub(span.begin.div(pats.length).floor());
     return pat.withHapTime((t) => t.add(offset)).query(state.setSpan(span.withTime((t) => t.sub(offset))));
   };
-  const tactus = __tactus ? lcm(...pats.map((x) => x.tactus)) : undefined;
-  return new Pattern(query).splitQueries().setTactus(tactus);
+  const steps = __steps ? lcm(...pats.map((x) => x._steps)) : undefined;
+  return new Pattern(query).splitQueries().setSteps(steps);
 }
 
 /** Concatenation: combines a list of patterns, switching between them successively, one per cycle. Unlike slowcat, this version will skip cycles.
@@ -1387,6 +1423,11 @@ export function slowcatPrime(...pats) {
  * cat("e5", "b4", ["d5", "c5"]).note()
  * // "".note()
  *
+ * @example
+ * // As a chained function:
+ * s("hh*4").cat(
+ *    note("c4(5,8)")
+ * )
  */
 export function cat(...pats) {
   return slowcat(...pats);
@@ -1406,14 +1447,47 @@ export function cat(...pats) {
 export function arrange(...sections) {
   const total = sections.reduce((sum, [cycles]) => sum + cycles, 0);
   sections = sections.map(([cycles, section]) => [cycles, section.fast(cycles)]);
-  return s_cat(...sections).slow(total);
+  return stepcat(...sections).slow(total);
+}
+
+/**
+ * Similarly to `arrange`, allows you to arrange multiple patterns together over multiple cycles.
+ * Unlike `arrange`, you specify a start and stop time for each pattern rather than duration, which
+ * means that patterns can overlap.
+ * @return {Pattern}
+ * @example
+seqPLoop([0, 2, "bd(3,8)"],
+         [1, 3, "cp(3,8)"]
+        )
+  .sound()
+ */
+export function seqPLoop(...parts) {
+  let total = Fraction(0);
+  const pats = [];
+  for (let part of parts) {
+    if (part.length == 2) {
+      part.unshift(total);
+    }
+    total = part[1];
+  }
+
+  return stack(
+    ...parts.map(([start, stop, pat]) =>
+      pure(reify(pat)).compress(Fraction(start).div(total), Fraction(stop).div(total)),
+    ),
+  )
+    .slow(total)
+    .innerJoin(); // or resetJoin or restartJoin ??
 }
 
 export function fastcat(...pats) {
   let result = slowcat(...pats);
   if (pats.length > 1) {
     result = result._fast(pats.length);
-    result.tactus = pats.length;
+    result._steps = pats.length;
+  }
+  if (pats.length == 1 && pats[0].__steps_source) {
+    pats._steps = pats[0]._steps;
   }
   return result;
 }
@@ -1424,12 +1498,18 @@ export function sequence(...pats) {
 }
 
 /** Like **cat**, but the items are crammed into one cycle.
- * @synonyms fastcat, sequence
+ * @synonyms sequence, fastcat
  * @example
  * seq("e5", "b4", ["d5", "c5"]).note()
  * // "e5 b4 [d5 c5]".note()
  *
+ * @example
+ * // As a chained function:
+ * s("hh*4").seq(
+ *   note("c4(5,8)")
+ * )
  */
+
 export function seq(...pats) {
   return fastcat(...pats);
 }
@@ -1450,6 +1530,14 @@ function _sequenceCount(x) {
 export const mask = curry((a, b) => reify(b).mask(a));
 export const struct = curry((a, b) => reify(b).struct(a));
 export const superimpose = curry((a, b) => reify(b).superimpose(...a));
+export const withValue = curry((a, b) => reify(b).withValue(a));
+
+export const bind = curry((a, b) => reify(b).bind(a));
+export const innerBind = curry((a, b) => reify(b).innerBind(a));
+export const outerBind = curry((a, b) => reify(b).outerBind(a));
+export const squeezeBind = curry((a, b) => reify(b).squeezeBind(a));
+export const stepBind = curry((a, b) => reify(b).stepBind(a));
+export const polyBind = curry((a, b) => reify(b).polyBind(a));
 
 // operators
 export const set = curry((a, b) => reify(b).set(a));
@@ -1486,11 +1574,11 @@ export const func = curry((a, b) => reify(b).func(a));
  * @noAutocomplete
  *
  */
-export function register(name, func, patternify = true, preserveTactus = false, join = (x) => x.innerJoin()) {
+export function register(name, func, patternify = true, preserveSteps = false, join = (x) => x.innerJoin()) {
   if (Array.isArray(name)) {
     const result = {};
     for (const name_item of name) {
-      result[name_item] = register(name_item, func, patternify);
+      result[name_item] = register(name_item, func, patternify, preserveSteps, join);
     }
     return result;
   }
@@ -1526,8 +1614,8 @@ export function register(name, func, patternify = true, preserveTactus = false,
           result = join(right.reduce((acc, p) => acc.appLeft(p), left.fmap(mapFn)));
         }
       }
-      if (preserveTactus) {
-        result.tactus = pat.tactus;
+      if (preserveSteps) {
+        result._steps = pat._steps;
       }
       return result;
     };
@@ -1535,8 +1623,8 @@ export function register(name, func, patternify = true, preserveTactus = false,
     pfunc = function (...args) {
       args = args.map(reify);
       const result = func(...args);
-      if (preserveTactus) {
-        result.tactus = args[args.length - 1].tactus;
+      if (preserveSteps) {
+        result._steps = args[args.length - 1]._steps;
       }
       return result;
     };
@@ -1558,7 +1646,11 @@ export function register(name, func, patternify = true, preserveTactus = false,
     // There are patternified args, so lets make an unpatternified
     // version, prefixed by '_'
     Pattern.prototype['_' + name] = function (...args) {
-      return func(...args, this);
+      const result = func(...args, this);
+      if (preserveSteps) {
+        result.setSteps(this._steps);
+      }
+      return result;
     };
   }
 
@@ -1568,8 +1660,8 @@ export function register(name, func, patternify = true, preserveTactus = false,
 }
 
 // Like register, but defaults to stepJoin
-function stepRegister(name, func, patternify = true, preserveTactus = false, join = (x) => x.stepJoin()) {
-  return register(name, func, patternify, preserveTactus, join);
+function stepRegister(name, func, patternify = true, preserveSteps = false, join = (x) => x.stepJoin()) {
+  return register(name, func, patternify, preserveSteps, join);
 }
 
 //////////////////////////////////////////////////////////////////////
@@ -1766,7 +1858,10 @@ export const { fastGap, fastgap } = register(['fastGap', 'fastgap'], function (f
 export const focus = register('focus', function (b, e, pat) {
   b = Fraction(b);
   e = Fraction(e);
-  return pat._fast(Fraction(1).div(e.sub(b))).late(b.cyclePos());
+  return pat
+    ._early(b.sam())
+    ._fast(Fraction(1).div(e.sub(b)))
+    ._late(b);
 });
 
 export const { focusSpan, focusspan } = register(['focusSpan', 'focusspan'], function (span, pat) {
@@ -1779,8 +1874,8 @@ export const { focusSpan, focusspan } = register(['focusSpan', 'focusspan'], fun
  */
 export const ply = register('ply', function (factor, pat) {
   const result = pat.fmap((x) => pure(x)._fast(factor)).squeezeJoin();
-  if (__tactus) {
-    result.tactus = Fraction(factor).mulmaybe(pat.tactus);
+  if (__steps) {
+    result._steps = Fraction(factor).mulmaybe(pat._steps);
   }
   return result;
 });
@@ -1804,7 +1899,7 @@ export const { fast, density } = register(
     }
     factor = Fraction(factor);
     const fastQuery = pat.withQueryTime((t) => t.mul(factor));
-    return fastQuery.withHapTime((t) => t.div(factor)).setTactus(pat.tactus);
+    return fastQuery.withHapTime((t) => t.div(factor)).setSteps(pat._steps);
   },
   true,
   true,
@@ -1914,6 +2009,7 @@ export const apply = register('apply', function (func, pat) {
 
 /**
  * Plays the pattern at the given cycles per minute.
+ * @deprecated
  * @example
  * s(",hh*2").cpm(90) // = 90 bpm
  */
@@ -1976,18 +2072,46 @@ export const zoom = register('zoom', function (s, e, pat) {
     return nothing;
   }
   const d = e.sub(s);
-  const tactus = __tactus ? pat.tactus.mulmaybe(d) : undefined;
+  const steps = __steps ? pat._steps?.mulmaybe(d) : undefined;
   return pat
     .withQuerySpan((span) => span.withCycle((t) => t.mul(d).add(s)))
     .withHapSpan((span) => span.withCycle((t) => t.sub(s).div(d)))
     .splitQueries()
-    .setTactus(tactus);
+    .setSteps(steps);
 });
 
 export const { zoomArc, zoomarc } = register(['zoomArc', 'zoomarc'], function (a, pat) {
   return pat.zoom(a.begin, a.end);
 });
 
+/**
+ * Splits a pattern into the given number of slices, and plays them according to a pattern of slice numbers.
+ * Similar to `slice`, but slices up patterns rather than sound samples.
+ * @param {number} number of slices
+ * @param {number} slices to play
+ * @example
+ * note("0 1 2 3 4 5 6 7".scale('c:mixolydian'))
+ *.bite(4, "3 2 1 0")
+ * @example
+ * sound("bd - bd bd*2, - sd:6 - sd:5 sd:1 - [- sd:2] -, hh [- cp:7]")
+  .bank("RolandTR909").speed(1.2)
+  .bite(4, "0 0 [1 2] <3 2> 0 0 [2 1] 3")
+ */
+export const bite = register(
+  'bite',
+  (npat, ipat, pat) => {
+    return ipat
+      .fmap((i) => (n) => {
+        const a = Fraction(i).div(n).mod(1);
+        const b = a.add(Fraction(1).div(n));
+        return pat.zoom(a, b);
+      })
+      .appLeft(npat)
+      .squeezeJoin();
+  },
+  false,
+);
+
 /**
  * Selects the given fraction of the pattern and repeats that part to fill the remainder of the cycle.
  * @param {number} fraction fraction to select
@@ -2010,12 +2134,14 @@ export const linger = register(
 
 /**
  * Samples the pattern at a rate of n events per cycle. Useful for turning a continuous pattern into a discrete one.
+ * @name segment
+ * @synonyms seg
  * @param {number} segments number of segments per cycle
  * @example
  * note(saw.range(40,52).segment(24))
  */
-export const segment = register('segment', function (rate, pat) {
-  return pat.struct(pure(true)._fast(rate)).setTactus(rate);
+export const { segment, seg } = register(['segment', 'seg'], function (rate, pat) {
+  return pat.struct(pure(true)._fast(rate)).setSteps(rate);
 });
 
 /**
@@ -2191,7 +2317,7 @@ export const { juxBy, juxby } = register(['juxBy', 'juxby'], function (by, func,
   const left = pat.withValue((val) => Object.assign({}, val, { pan: elem_or(val, 'pan', 0.5) - by }));
   const right = func(pat.withValue((val) => Object.assign({}, val, { pan: elem_or(val, 'pan', 0.5) + by })));
 
-  return stack(left, right).setTactus(__tactus ? lcm(left.tactus, right.tactus) : undefined);
+  return stack(left, right).setSteps(__steps ? lcm(left._steps, right._steps) : undefined);
 });
 
 /**
@@ -2344,9 +2470,14 @@ const _chunk = function (n, func, pat, back = false, fast = false) {
   return pat.when(binary_pat, func);
 };
 
-export const { chunk, slowchunk, slowChunk } = register(['chunk', 'slowchunk', 'slowChunk'], function (n, func, pat) {
-  return _chunk(n, func, pat, false, false);
-});
+export const { chunk, slowchunk, slowChunk } = register(
+  ['chunk', 'slowchunk', 'slowChunk'],
+  function (n, func, pat) {
+    return _chunk(n, func, pat, false, false);
+  },
+  true,
+  true,
+);
 
 /**
  * Like `chunk`, but cycles through the parts in reverse order. Known as chunk' in tidalcycles
@@ -2358,9 +2489,14 @@ export const { chunk, slowchunk, slowChunk } = register(['chunk', 'slowchunk', '
  * "0 1 2 3".chunkBack(4, x=>x.add(7))
  * .scale("A:minor").note()
  */
-export const { chunkBack, chunkback } = register(['chunkBack', 'chunkback'], function (n, func, pat) {
-  return _chunk(n, func, pat, true);
-});
+export const { chunkBack, chunkback } = register(
+  ['chunkBack', 'chunkback'],
+  function (n, func, pat) {
+    return _chunk(n, func, pat, true);
+  },
+  true,
+  true,
+);
 
 /**
  * Like `chunk`, but the cycles of the source pattern aren't repeated
@@ -2374,8 +2510,44 @@ export const { chunkBack, chunkback } = register(['chunkBack', 'chunkback'], fun
  * .fastChunk(4, x => x.color('red')).slow(2)
  * .scale("C2:major").note()
  */
-export const { fastchunk, fastChunk } = register(['fastchunk', 'fastChunk'], function (n, func, pat) {
-  return _chunk(n, func, pat, false, true);
+export const { fastchunk, fastChunk } = register(
+  ['fastchunk', 'fastChunk'],
+  function (n, func, pat) {
+    return _chunk(n, func, pat, false, true);
+  },
+  true,
+  true,
+);
+
+/**
+ * Like `chunk`, but the function is applied to a looped subcycle of the source pattern.
+ * @name chunkInto
+ * @synonym chunkinto
+ * @memberof Pattern
+ * @example
+ * sound("bd sd ht lt bd - cp lt").chunkInto(4, hurry(2))
+ *   .bank("tr909")
+ */
+export const { chunkinto, chunkInto } = register(['chunkinto', 'chunkInto'], function (n, func, pat) {
+  return pat.into(fastcat(true, ...Array(n - 1).fill(false))._iterback(n), func);
+});
+
+/**
+ * Like `chunkInto`, but moves backwards through the chunks.
+ * @name chunkBackInto
+ * @synonym chunkbackinto
+ * @memberof Pattern
+ * @example
+ * sound("bd sd ht lt bd - cp lt").chunkInto(4, hurry(2))
+ *   .bank("tr909")
+ */
+export const { chunkbackinto, chunkBackInto } = register(['chunkbackinto', 'chunkBackInto'], function (n, func, pat) {
+  return pat.into(
+    fastcat(true, ...Array(n - 1).fill(false))
+      ._iter(n)
+      ._early(1),
+    func,
+  );
 });
 
 // TODO - redefine elsewhere in terms of mask
@@ -2390,16 +2562,24 @@ export const bypass = register(
 );
 
 /**
- * Loops the pattern inside at `offset` for `cycles`.
+ * Loops the pattern inside an `offset` for `cycles`.
+ * If you think of the entire span of time in cycles as a ribbon, you can cut a single piece and loop it.
+ * @name ribbon
+ * @synonym rib
  * @param {number} offset start point of loop in cycles
  * @param {number} cycles loop length in cycles
  * @example
- * note("").ribbon(1, 2).fast(2)
+ * note("").ribbon(1, 2)
  * @example
  * // Looping a portion of randomness
- * note(irand(8).segment(4).scale('C3 minor')).ribbon(1337, 2)
+ * n(irand(8).segment(4)).scale("c:pentatonic").ribbon(1337, 2)
+ * @example
+ * // rhythm generator
+ * s("bd!16?").ribbon(29,.5)
  */
-export const ribbon = register('ribbon', (offset, cycles, pat) => pat.early(offset).restart(pure(1).slow(cycles)));
+export const { ribbon, rib } = register(['ribbon', 'rib'], (offset, cycles, pat) =>
+  pat.early(offset).restart(pure(1).slow(cycles)),
+);
 
 export const hsla = register('hsla', (h, s, l, a, pat) => {
   return pat.color(`hsla(${h}turn,${s * 100}%,${l * 100}%,${a})`);
@@ -2419,34 +2599,68 @@ Pattern.prototype.tag = function (tag) {
   return this.withContext((ctx) => ({ ...ctx, tags: (ctx.tags || []).concat([tag]) }));
 };
 
+/**
+ * Filters haps using the given function
+ * @name filter
+ * @param {Function} test function to test Hap
+ * @example
+ * s("hh!7 oh").filter(hap => hap.value.s==='hh')
+ */
+export const filter = register('filter', (test, pat) => pat.withHaps((haps) => haps.filter(test)));
+
+/**
+ * Filters haps by their begin time
+ * @name filterWhen
+ * @noAutocomplete
+ * @param {Function} test function to test Hap.whole.begin
+ */
+export const filterWhen = register('filterWhen', (test, pat) => pat.filter((h) => test(h.whole.begin)));
+
+/**
+ * Use within to apply a function to only a part of a pattern.
+ * @name within
+ * @param {number} start start within cycle (0 - 1)
+ * @param {number} end end within cycle (0 - 1). Must be > start
+ * @param {Function} func function to be applied to the sub-pattern
+ */
+export const within = register('within', (a, b, fn, pat) =>
+  stack(
+    fn(pat.filterWhen((t) => t.cyclePos() >= a && t.cyclePos() <= b)),
+    pat.filterWhen((t) => t.cyclePos() < a || t.cyclePos() > b),
+  ),
+);
+
 //////////////////////////////////////////////////////////////////////
-// Tactus-related functions, i.e. ones that do stepwise
-// transformations
+// Stepwise functions
 
 Pattern.prototype.stepJoin = function () {
   const pp = this;
-  const first_t = s_cat(..._retime(_slices(pp.queryArc(0, 1)))).tactus;
+  const first_t = stepcat(..._retime(_slices(pp.queryArc(0, 1))))._steps;
   const q = function (state) {
     const shifted = pp.early(state.span.begin.sam());
     const haps = shifted.query(state.setSpan(new TimeSpan(Fraction(0), Fraction(1))));
-    const pat = s_cat(..._retime(_slices(haps)));
+    const pat = stepcat(..._retime(_slices(haps)));
     return pat.query(state);
   };
   return new Pattern(q, first_t);
 };
 
+Pattern.prototype.stepBind = function (func) {
+  return this.fmap(func).stepJoin();
+};
+
 export function _retime(timedHaps) {
-  const occupied_perc = timedHaps.filter((t, pat) => pat.hasTactus).reduce((a, b) => a.add(b), Fraction(0));
-  const occupied_tactus = removeUndefineds(timedHaps.map((t, pat) => pat.tactus)).reduce(
+  const occupied_perc = timedHaps.filter((t, pat) => pat.hasSteps).reduce((a, b) => a.add(b), Fraction(0));
+  const occupied_steps = removeUndefineds(timedHaps.map((t, pat) => pat._steps)).reduce(
     (a, b) => a.add(b),
     Fraction(0),
   );
-  const total_tactus = occupied_perc.eq(0) ? undefined : occupied_tactus.div(occupied_perc);
+  const total_steps = occupied_perc.eq(0) ? undefined : occupied_steps.div(occupied_perc);
   function adjust(dur, pat) {
-    if (pat.tactus === undefined) {
-      return [dur.mulmaybe(total_tactus), pat];
+    if (pat._steps === undefined) {
+      return [dur.mulmaybe(total_steps), pat];
     }
-    return [pat.tactus, pat];
+    return [pat._steps, pat];
   }
   return timedHaps.map((x) => adjust(...x));
 }
@@ -2476,20 +2690,22 @@ export function _match(span, hap_p) {
 }
 
 /**
- * *EXPERIMENTAL* - Speeds a pattern up or down, to fit to the given number of steps per cycle (aka tactus).
+ * *Experimental*
+ *
+ * Speeds a pattern up or down, to fit to the given number of steps per cycle.
  * @example
- * s("bd sd cp").steps(4)
- * // The same as s("{bd sd cp}%4")
+ * sound("bd sd cp").pace(4)
+ * // The same as sound("{bd sd cp}%4") or sound("*4")
  */
-export const steps = register('steps', function (targetTactus, pat) {
-  if (pat.tactus === undefined) {
+export const pace = register('pace', function (targetSteps, pat) {
+  if (pat._steps === undefined) {
     return pat;
   }
-  if (pat.tactus.eq(Fraction(0))) {
+  if (pat._steps.eq(Fraction(0))) {
     // avoid divide by zero..
     return nothing;
   }
-  return pat.fast(Fraction(targetTactus).div(pat.tactus));
+  return pat._fast(Fraction(targetSteps).div(pat._steps)).setSteps(targetSteps);
 });
 
 export function _polymeterListSteps(steps, ...args) {
@@ -2515,76 +2731,56 @@ export function _polymeterListSteps(steps, ...args) {
 }
 
 /**
- * Aligns one or more given patterns to the given number of steps per cycle.
- * This relies on patterns having coherent number of steps per cycle,
+ * *Experimental*
  *
- * @name s_polymeterSteps
- * @param  {number} steps how many items are placed in one cycle
- * @param  {any[]} patterns one or more patterns
- * @example
- * // the same as "{c d, e f g}%4"
- * s_polymeterSteps(4, "c d", "e f g")
- */
-export function s_polymeterSteps(steps, ...args) {
-  if (args.length == 0) {
-    return silence;
-  }
-  if (Array.isArray(args[0])) {
-    // Support old behaviour
-    return _polymeterListSteps(steps, ...args);
-  }
-
-  return s_polymeter(...args).steps(steps);
-}
-
-/**
- * *EXPERIMENTAL* - Combines the given lists of patterns with the same pulse, creating polymeters when different sized sequences are used.
+ * Aligns the steps of the patterns, creating polymeters. The patterns are repeated until they all fit the cycle. For example, in the below the first pattern is repeated twice, and the second is repeated three times, to fit the lowest common multiple of six steps.
  * @synonyms pm
  * @example
- * // The same as "{c eb g, c2 g2}"
- * s_polymeter("c eb g", "c2 g2")
+ * // The same as note("{c eb g, c2 g2}%6")
+ * polymeter("c eb g", "c2 g2").note()
  *
  */
-export function s_polymeter(...args) {
+export function polymeter(...args) {
   if (Array.isArray(args[0])) {
     // Support old behaviour
     return _polymeterListSteps(0, ...args);
   }
 
-  // TODO currently ignoring arguments without tactus...
-  args = args.filter((arg) => arg.hasTactus);
+  // TODO currently ignoring arguments without steps...
+  args = args.filter((arg) => arg.hasSteps);
 
   if (args.length == 0) {
     return silence;
   }
-  const tactus = args[0].tactus;
-  if (tactus.eq(Fraction(0))) {
+  const steps = lcm(...args.map((x) => x._steps));
+  if (steps.eq(Fraction(0))) {
     return nothing;
   }
-  const [head, ...tail] = args;
 
-  const result = stack(head, ...tail.map((pat) => pat._slow(pat.tactus.div(tactus))));
-  result.tactus = tactus;
+  const result = stack(...args.map((x) => x.pace(steps)));
+  result._steps = steps;
   return result;
 }
 
-/** Sequences patterns like `seq`, but each pattern has a length, relative to the whole.
- * This length can either be provided as a [length, pattern] pair, or inferred from
- * the pattern's 'tactus', generally inferred by the mininotation. Has the alias `timecat`.
+/** 'Concatenates' patterns like `fastcat`, but proportional to a number of steps per cycle.
+ * The steps can either be inferred from the pattern, or provided as a [length, pattern] pair.
+ * Has the alias `timecat`.
+ * @name stepcat
+ * @synonyms timeCat, timecat
  * @return {Pattern}
  * @example
- * s_cat([3,"e3"],[1, "g3"]).note()
+ * stepcat([3,"e3"],[1, "g3"]).note()
  * // the same as "e3@3 g3".note()
  * @example
- * s_cat("bd sd cp","hh hh").sound()
+ * stepcat("bd sd cp","hh hh").sound()
  * // the same as "bd sd cp hh hh".sound()
  */
-export function s_cat(...timepats) {
+export function stepcat(...timepats) {
   if (timepats.length === 0) {
     return nothing;
   }
-  const findtactus = (x) => (Array.isArray(x) ? x : [x.tactus, x]);
-  timepats = timepats.map(findtactus);
+  const findsteps = (x) => (Array.isArray(x) ? x : [x._steps ?? 1, x]);
+  timepats = timepats.map(findsteps);
   if (timepats.find((x) => x[0] === undefined)) {
     const times = timepats.map((a) => a[0]).filter((x) => x !== undefined);
     if (times.length === 0) {
@@ -2602,8 +2798,7 @@ export function s_cat(...timepats) {
   }
   if (timepats.length == 1) {
     const result = reify(timepats[0][1]);
-    result.tactus = timepats[0][0];
-    return result;
+    return result.withSteps((_) => timepats[0][0]);
   }
 
   const total = timepats.map((a) => a[0]).reduce((a, b) => a.add(b), Fraction(0));
@@ -2618,23 +2813,22 @@ export function s_cat(...timepats) {
     begin = end;
   }
   const result = stack(...pats);
-  result.tactus = total;
+  result._steps = total;
   return result;
 }
 
-/** Aliases for `s_cat` */
-export const timecat = s_cat;
-export const timeCat = s_cat;
-
 /**
- * *EXPERIMENTAL* - Concatenates patterns stepwise, according to their 'tactus'.
- * Similar to `s_cat`, but if an argument is a list, the whole pattern will alternate between the elements in the list.
+ * *Experimental*
+ *
+ * Concatenates patterns stepwise, according to an inferred 'steps per cycle'.
+ * Similar to `stepcat`, but if an argument is a list, the whole pattern will alternate between the elements in the list.
  *
  * @return {Pattern}
  * @example
- * s_alt(["bd cp", "mt"], "bd").sound()
+ * stepalt(["bd cp", "mt"], "bd").sound()
+ * // The same as "bd cp bd mt bd".sound()
  */
-export function s_alt(...groups) {
+export function stepalt(...groups) {
   groups = groups.map((a) => (Array.isArray(a) ? a.map(reify) : [reify(a)]));
 
   const cycles = lcm(...groups.map((x) => Fraction(x.length)));
@@ -2643,21 +2837,34 @@ export function s_alt(...groups) {
   for (let cycle = 0; cycle < cycles; ++cycle) {
     result.push(...groups.map((x) => (x.length == 0 ? silence : x[cycle % x.length])));
   }
-  result = result.filter((x) => x.hasTactus && x.tactus > 0);
-  const tactus = result.reduce((a, b) => a.add(b.tactus), Fraction(0));
-  result = s_cat(...result);
-  result.tactus = tactus;
+  result = result.filter((x) => x.hasSteps && x._steps > 0);
+  const steps = result.reduce((a, b) => a.add(b._steps), Fraction(0));
+  result = stepcat(...result);
+  result._steps = steps;
   return result;
 }
 
 /**
- * *EXPERIMENTAL* - Retains the given number of steps in a pattern (and dropping the rest), according to its 'tactus'.
+ * *Experimental*
+ *
+ * Takes the given number of steps from a pattern (dropping the rest).
+ * A positive number will take steps from the start of a pattern, and a negative number from the end.
+ * @return {Pattern}
+ * @example
+ * "bd cp ht mt".take("2").sound()
+ * // The same as "bd cp".sound()
+ * @example
+ * "bd cp ht mt".take("1 2 3").sound()
+ * // The same as "bd bd cp bd cp ht".sound()
+ * @example
+ * "bd cp ht mt".take("-1 -2 -3").sound()
+ * // The same as "mt ht mt cp ht mt".sound()
  */
-export const s_add = stepRegister('s_add', function (i, pat) {
-  if (!pat.hasTactus) {
+export const take = stepRegister('take', function (i, pat) {
+  if (!pat.hasSteps) {
     return nothing;
   }
-  if (pat.tactus.lte(0)) {
+  if (pat._steps.lte(0)) {
     return nothing;
   }
   i = Fraction(i);
@@ -2668,7 +2875,7 @@ export const s_add = stepRegister('s_add', function (i, pat) {
   if (flip) {
     i = i.abs();
   }
-  const frac = i.div(pat.tactus);
+  const frac = i.div(pat._steps);
   if (frac.lte(0)) {
     return nothing;
   }
@@ -2682,73 +2889,143 @@ export const s_add = stepRegister('s_add', function (i, pat) {
 });
 
 /**
- * *EXPERIMENTAL* - Removes the given number of steps from a pattern, according to its 'tactus'.
+ * *Experimental*
+ *
+ * Drops the given number of steps from a pattern.
+ * A positive number will drop steps from the start of a pattern, and a negative number from the end.
+ * @return {Pattern}
+ * @example
+ * "tha dhi thom nam".drop("1").sound().bank("mridangam")
+ * @example
+ * "tha dhi thom nam".drop("-1").sound().bank("mridangam")
+ * @example
+ * "tha dhi thom nam".drop("0 1 2 3").sound().bank("mridangam")
+ * @example
+ * "tha dhi thom nam".drop("0 -1 -2 -3").sound().bank("mridangam")
  */
-export const s_sub = stepRegister('s_sub', function (i, pat) {
-  if (!pat.hasTactus) {
+export const drop = stepRegister('drop', function (i, pat) {
+  if (!pat.hasSteps) {
     return nothing;
   }
 
   i = Fraction(i);
   if (i.lt(0)) {
-    return pat.s_add(Fraction(0).sub(pat.tactus.add(i)));
+    return pat.take(pat._steps.add(i));
   }
-  return pat.s_add(pat.tactus.sub(i));
-});
-
-export const s_expand = stepRegister('s_expand', function (factor, pat) {
-  return pat.withTactus((t) => t.mul(Fraction(factor)));
-});
-
-export const s_contract = stepRegister('s_contract', function (factor, pat) {
-  return pat.withTactus((t) => t.div(Fraction(factor)));
+  return pat.take(Fraction(0).sub(pat._steps.sub(i)));
 });
 
 /**
- * *EXPERIMENTAL*
+ * *Experimental*
+ *
+ * `extend` is similar to `fast` in that it increases its density, but it also increases the step count
+ * accordingly. So `stepcat("a b".extend(2), "c d")` would be the same as `"a b a b c d"`, whereas
+ * `stepcat("a b".fast(2), "c d")` would be the same as `"[a b] [a b] c d"`.
+ * @example
+ * stepcat(
+ *   sound("bd bd - cp").extend(2),
+ *   sound("bd - sd -")
+ * ).pace(8)
  */
-Pattern.prototype.s_taperlist = function (amount, times) {
+export const extend = stepRegister('extend', function (factor, pat) {
+  return pat.fast(factor).expand(factor);
+});
+
+/**
+ * *Experimental*
+ *
+ * Expands the step size of the pattern by the given factor.
+ * @example
+ * sound("tha dhi thom nam").bank("mridangam").expand("3 2 1 1 2 3").pace(8)
+ */
+export const expand = stepRegister('expand', function (factor, pat) {
+  return pat.withSteps((t) => t.mul(Fraction(factor)));
+});
+
+/**
+ * *Experimental*
+ *
+ * Contracts the step size of the pattern by the given factor. See also `expand`.
+ * @example
+ * sound("tha dhi thom nam").bank("mridangam").contract("3 2 1 1 2 3").pace(8)
+ */
+export const contract = stepRegister('contract', function (factor, pat) {
+  return pat.withSteps((t) => t.div(Fraction(factor)));
+});
+
+Pattern.prototype.shrinklist = function (amount) {
   const pat = this;
 
-  if (!pat.hasTactus) {
+  if (!pat.hasSteps) {
     return [pat];
   }
 
-  times = times - 1;
+  let [amountv, times] = Array.isArray(amount) ? amount : [amount, pat._steps];
+  amountv = Fraction(amountv);
 
-  if (times === 0) {
+  if (times === 0 || amountv === 0) {
     return [pat];
   }
 
-  const list = [];
-  const reverse = amount > 0;
-  amount = Fraction(Math.abs(amount));
-  const start = pat.tactus.sub(amount.mul(Fraction(times))).max(Fraction(0));
-
-  for (let i = 0; i < times; ++i) {
-    list.push(pat.zoom(0, start.add(amount.mul(Fraction(i))).div(pat.tactus)));
+  const fromstart = amountv > 0;
+  const ranges = [];
+  if (fromstart) {
+    const seg = Fraction(1).div(pat._steps).mul(amountv);
+    for (let i = 0; i < times; ++i) {
+      const s = seg.mul(i);
+      if (s.gt(1)) {
+        break;
+      }
+      ranges.push([s, 1]);
+    }
+  } else {
+    amountv = Fraction(0).sub(amountv);
+    const seg = Fraction(1).div(pat._steps).mul(amountv);
+    for (let i = 0; i < times; ++i) {
+      const e = Fraction(1).sub(seg.mul(i));
+      if (e.lt(0)) {
+        break;
+      }
+      ranges.push([Fraction(0), e]);
+    }
   }
-  list.push(pat);
-  if (reverse) {
-    list.reverse();
-  }
-  return list;
+  return ranges.map((x) => pat.zoom(...x));
 };
-export const s_taperlist = (amount, times, pat) => pat.s_taperlist(amount, times);
+
+export const shrinklist = (amount, pat) => pat.shrinklist(amount);
 
 /**
- * *EXPERIMENTAL*
+ * *Experimental*
+ *
+ * Progressively shrinks the pattern by 'n' steps until there's nothing left, or if a second value is given (using mininotation list syntax with `:`),
+ * that number of times.
+ * A positive number will progressively drop steps from the start of a pattern, and a negative number from the end.
+ * @return {Pattern}
+ * @example
+ * "tha dhi thom nam".shrink("1").sound()
+ * .bank("mridangam")
+ * @example
+ * "tha dhi thom nam".shrink("-1").sound()
+ * .bank("mridangam")
+ * @example
+ * "tha dhi thom nam".shrink("1 -1").sound().bank("mridangam").pace(4)
+ * @example
+ * note("0 1 2 3 4 5 6 7".scale("C:ritusen")).sound("folkharp")
+   .shrink("1 -1").pace(8)
+
  */
-export const s_taper = register(
-  's_taper',
-  function (amount, times, pat) {
-    if (!pat.hasTactus) {
+
+export const shrink = register(
+  'shrink',
+  function (amount, pat) {
+    if (!pat.hasSteps) {
       return nothing;
     }
 
-    const list = pat.s_taperlist(amount, times);
-    const result = s_cat(...list);
-    result.tactus = list.reduce((a, b) => a.add(b.tactus), Fraction(0));
+    const list = pat.shrinklist(amount);
+    const result = stepcat(...list);
+    // TODO is this calculation needed?
+    result._steps = list.reduce((a, b) => a.add(b._steps), Fraction(0));
     return result;
   },
   true,
@@ -2757,10 +3034,63 @@ export const s_taper = register(
 );
 
 /**
- * *EXPERIMENTAL*
+ * *Experimental*
+ *
+ * Progressively grows the pattern by 'n' steps until the full pattern is played, or if a second value is given (using mininotation list syntax with `:`),
+ * that number of times.
+ * A positive number will progressively grow steps from the start of a pattern, and a negative number from the end.
+ * @return {Pattern}
+ * @example
+ * "tha dhi thom nam".grow("1").sound()
+ * .bank("mridangam")
+ * @example
+ * "tha dhi thom nam".grow("-1").sound()
+ * .bank("mridangam")
+ * @example
+ * "tha dhi thom nam".grow("1 -1").sound().bank("mridangam").pace(4)
+ * @example
+ * note("0 1 2 3 4 5 6 7".scale("C:ritusen")).sound("folkharp")
+   .grow("1 -1").pace(8)
  */
-Pattern.prototype.s_tour = function (...many) {
-  return s_cat(
+
+export const grow = register(
+  'grow',
+  function (amount, pat) {
+    if (!pat.hasSteps) {
+      return nothing;
+    }
+
+    const list = pat.shrinklist(Fraction(0).sub(amount));
+    list.reverse();
+    const result = stepcat(...list);
+    // TODO is this calculation needed?
+    result._steps = list.reduce((a, b) => a.add(b._steps), Fraction(0));
+    return result;
+  },
+  true,
+  false,
+  (x) => x.stepJoin(),
+);
+
+/**
+ * *Experimental*
+ * 
+ * Inserts a pattern into a list of patterns. On the first repetition it will be inserted at the end of the list, then moved backwards through the list 
+ * on successive repetitions. The patterns are added together stepwise, with all repetitions taking place over a single cycle. Using `pace` to set the 
+ * number of steps per cycle is therefore usually recommended.
+ * 
+ * @return {Pattern}
+ * @example
+ * "[c g]".tour("e f", "e f g", "g f e c").note()
+   .sound("folkharp")
+   .pace(8)
+ */
+export const tour = function (pat, ...many) {
+  return pat.tour(...many);
+};
+
+Pattern.prototype.tour = function (...many) {
+  return stepcat(
     ...[].concat(
       ...many.map((x, i) => [...many.slice(0, many.length - i), this, ...many.slice(many.length - i)]),
       this,
@@ -2769,10 +3099,55 @@ Pattern.prototype.s_tour = function (...many) {
   );
 };
 
-export const s_tour = function (pat, ...many) {
-  return pat.s_tour(...many);
+/**
+ * *Experimental*
+ * 
+ * 'zips' together the steps of the provided patterns. This can create a long repetition, taking place over a single, dense cycle. 
+ * Using `pace` to set the number of steps per cycle is therefore usually recommended.
+ * 
+ * @returns {Pattern}
+ * @example
+ * zip("e f", "e f g", "g [f e] a f4 c").note()
+   .sound("folkharp")
+   .pace(8)
+ */
+export const zip = function (...pats) {
+  pats = pats.filter((pat) => pat.hasSteps);
+  const zipped = slowcat(...pats.map((pat) => pat._slow(pat._steps)));
+  const steps = lcm(...pats.map((x) => x._steps));
+  return zipped._fast(steps).setSteps(steps);
 };
 
+/** Aliases for `stepcat` */
+export const timecat = stepcat;
+export const timeCat = stepcat;
+
+// Deprecated stepwise aliases
+export const s_cat = stepcat;
+export const s_alt = stepalt;
+export const s_polymeter = polymeter;
+Pattern.prototype.s_polymeter = Pattern.prototype.polymeter;
+export const s_taper = shrink;
+Pattern.prototype.s_taper = Pattern.prototype.shrink;
+export const s_taperlist = shrinklist;
+Pattern.prototype.s_taperlist = Pattern.prototype.shrinklist;
+export const s_add = take;
+Pattern.prototype.s_add = Pattern.prototype.take;
+export const s_sub = drop;
+Pattern.prototype.s_sub = Pattern.prototype.drop;
+export const s_expand = expand;
+Pattern.prototype.s_expand = Pattern.prototype.expand;
+export const s_extend = extend;
+Pattern.prototype.s_extend = Pattern.prototype.extend;
+export const s_contract = contract;
+Pattern.prototype.s_contract = Pattern.prototype.contract;
+export const s_tour = tour;
+Pattern.prototype.s_tour = Pattern.prototype.tour;
+export const s_zip = zip;
+Pattern.prototype.s_zip = Pattern.prototype.zip;
+export const steps = pace;
+Pattern.prototype.steps = Pattern.prototype.pace;
+
 //////////////////////////////////////////////////////////////////////
 // Control-related functions, i.e. ones that manipulate patterns of
 // objects
@@ -2794,10 +3169,18 @@ export const s_tour = function (pat, ...many) {
 export const chop = register('chop', function (n, pat) {
   const slices = Array.from({ length: n }, (x, i) => i);
   const slice_objects = slices.map((i) => ({ begin: i / n, end: (i + 1) / n }));
-  const func = function (o) {
-    return sequence(slice_objects.map((slice_o) => Object.assign({}, o, slice_o)));
+  const merge = function (a, b) {
+    if ('begin' in a && 'end' in a && a.begin !== undefined && a.end !== undefined) {
+      const d = a.end - a.begin;
+      b = { begin: a.begin + b.begin * d, end: a.begin + b.end * d };
+    }
+    // return a;
+    return Object.assign({}, a, b);
   };
-  return pat.squeezeBind(func).setTactus(__tactus ? Fraction(n).mulmaybe(pat.tactus) : undefined);
+  const func = function (o) {
+    return sequence(slice_objects.map((slice_o) => merge(o, slice_o)));
+  };
+  return pat.squeezeBind(func).setSteps(__steps ? Fraction(n).mulmaybe(pat._steps) : undefined);
 });
 
 /**
@@ -2815,7 +3198,7 @@ export const striate = register('striate', function (n, pat) {
   return pat
     .set(slicePat)
     ._fast(n)
-    .setTactus(__tactus ? Fraction(n).mulmaybe(pat.tactus) : undefined);
+    .setSteps(__steps ? Fraction(n).mulmaybe(pat._steps) : undefined);
 });
 
 /**
@@ -2864,11 +3247,30 @@ export const slice = register(
           }),
         ),
       )
-      .setTactus(ipat.tactus);
+      .setSteps(ipat._steps);
   },
   false, // turns off auto-patternification
 );
 
+/**
+ *
+ * make something happen on event time
+ * uses browser timeout which is innacurate for audio tasks
+ * @name onTriggerTime
+ * @memberof Pattern
+ *  @returns Pattern
+ * @example
+ * s("bd!8").onTriggerTime((hap) => {console.info(hap)})
+ */
+Pattern.prototype.onTriggerTime = function (func) {
+  return this.onTrigger((t_deprecate, hap, currentTime, cps = 1, targetTime) => {
+    const diff = targetTime - currentTime;
+    window.setTimeout(() => {
+      func(hap);
+    }, diff * 1000);
+  }, false);
+};
+
 /**
  * Works the same as slice, but changes the playback speed of each slice to match the duration of its step.
  * @name splice
@@ -2895,13 +3297,14 @@ export const splice = register(
           ...v,
         })),
       );
-    }).setTactus(ipat.tactus);
+    }).setSteps(ipat._steps);
   },
   false, // turns off auto-patternification
 );
 
 export const { loopAt, loopat } = register(['loopAt', 'loopat'], function (factor, pat) {
-  return new Pattern((state) => _loopAt(factor, pat, state.controls._cps).query(state));
+  const steps = pat._steps ? pat._steps.div(factor) : undefined;
+  return new Pattern((state) => _loopAt(factor, pat, state.controls._cps).query(state), steps);
 });
 
 /**
@@ -2915,11 +3318,14 @@ export const { loopAt, loopat } = register(['loopAt', 'loopat'], function (facto
 export const fit = register('fit', (pat) =>
   pat.withHaps((haps, state) =>
     haps.map((hap) =>
-      hap.withValue((v) => ({
-        ...v,
-        speed: (state.controls._cps || 1) / hap.whole.duration,
-        unit: 'c',
-      })),
+      hap.withValue((v) => {
+        const slicedur = ('end' in v ? v.end : 1) - ('begin' in v ? v.begin : 0);
+        return {
+          ...v,
+          speed: ((state.controls._cps || 1) / hap.whole.duration) * slicedur,
+          unit: 'c',
+        };
+      }),
     ),
   ),
 );
@@ -2972,3 +3378,25 @@ export let xfade = (a, pos, b) => {
 Pattern.prototype.xfade = function (pos, b) {
   return xfade(this, pos, b);
 };
+
+/**
+ * creates a structure pattern from divisions of a cycle
+ * especially useful for creating rhythms
+ * @name beat
+ * @example
+ * s("bd").beat("0,7,10", 16)
+ * @example
+ * s("sd").beat("4,12", 16)
+ */
+const __beat = (join) => (t, div, pat) => {
+  t = Fraction(t).mod(div);
+  div = Fraction(div);
+  const b = t.div(div);
+  const e = t.add(1).div(div);
+  return join(pat.fmap((x) => pure(x)._compress(b, e)));
+};
+
+export const { beat } = register(
+  ['beat'],
+  __beat((x) => x.innerJoin()),
+);
diff --git a/packages/core/pick.mjs b/packages/core/pick.mjs
new file mode 100644
index 00000000..206fa619
--- /dev/null
+++ b/packages/core/pick.mjs
@@ -0,0 +1,213 @@
+/*
+pick.mjs - methods that use one pattern to pick events from other patterns.
+Copyright (C) 2024 Strudel contributors - see 
+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 .
+*/
+
+import { Pattern, reify, silence, register } from './pattern.mjs';
+
+import { _mod, clamp, objectMap } from './util.mjs';
+
+const _pick = function (lookup, pat, modulo = true) {
+  const array = Array.isArray(lookup);
+  const len = Object.keys(lookup).length;
+
+  lookup = objectMap(lookup, reify);
+
+  if (len === 0) {
+    return silence;
+  }
+  return pat.fmap((i) => {
+    let key = i;
+    if (array) {
+      key = modulo ? Math.round(key) % len : clamp(Math.round(key), 0, lookup.length - 1);
+    }
+    return lookup[key];
+  });
+};
+
+/** * Picks patterns (or plain values) either from a list (by index) or a lookup table (by name).
+ * Similar to `inhabit`, but maintains the structure of the original patterns.
+ * @param {Pattern} pat
+ * @param {*} xs
+ * @returns {Pattern}
+ * @example
+ * note("<0 1 2!2 3>".pick(["g a", "e f", "f g f g" , "g c d"]))
+ * @example
+ * sound("<0 1 [2,0]>".pick(["bd sd", "cp cp", "hh hh"]))
+ * @example
+ * sound("<0!2 [0,1] 1>".pick(["bd(3,8)", "sd sd"]))
+ * @example
+ * s("".pick({a: "bd(3,8)", b: "sd sd"}))
+ */
+
+export const pick = function (lookup, pat) {
+  // backward compatibility - the args used to be flipped
+  if (Array.isArray(pat)) {
+    [pat, lookup] = [lookup, pat];
+  }
+  return __pick(lookup, pat);
+};
+
+const __pick = register('pick', function (lookup, pat) {
+  return _pick(lookup, pat, false).innerJoin();
+});
+
+/** * The same as `pick`, but if you pick a number greater than the size of the list,
+ * it wraps around, rather than sticking at the maximum value.
+ * For example, if you pick the fifth pattern of a list of three, you'll get the
+ * second one.
+ * @param {Pattern} pat
+ * @param {*} xs
+ * @returns {Pattern}
+ */
+
+export const pickmod = register('pickmod', function (lookup, pat) {
+  return _pick(lookup, pat, true).innerJoin();
+});
+
+/** * pickF lets you use a pattern of numbers to pick which function to apply to another pattern.
+ * @param {Pattern} pat
+ * @param {Pattern} lookup a pattern of indices
+ * @param {function[]} funcs the array of functions from which to pull
+ * @returns {Pattern}
+ * @example
+ * s("bd [rim hh]").pickF("<0 1 2>", [rev,jux(rev),fast(2)])
+ * @example
+ * note("(3,8)").s("square")
+ *     .pickF("<0 2> 1", [jux(rev),fast(2),x=>x.lpf(800)])
+ */
+export const pickF = register('pickF', function (lookup, funcs, pat) {
+  return pat.apply(pick(lookup, funcs));
+});
+
+/** * The same as `pickF`, but if you pick a number greater than the size of the functions list,
+ * it wraps around, rather than sticking at the maximum value.
+ * @param {Pattern} pat
+ * @param {Pattern} lookup a pattern of indices
+ * @param {function[]} funcs the array of functions from which to pull
+ * @returns {Pattern}
+ */
+export const pickmodF = register('pickmodF', function (lookup, funcs, pat) {
+  return pat.apply(pickmod(lookup, funcs));
+});
+
+/** * Similar to `pick`, but it applies an outerJoin instead of an innerJoin.
+ * @param {Pattern} pat
+ * @param {*} xs
+ * @returns {Pattern}
+ */
+export const pickOut = register('pickOut', function (lookup, pat) {
+  return _pick(lookup, pat, false).outerJoin();
+});
+
+/** * The same as `pickOut`, but if you pick a number greater than the size of the list,
+ * it wraps around, rather than sticking at the maximum value.
+ * @param {Pattern} pat
+ * @param {*} xs
+ * @returns {Pattern}
+ */
+export const pickmodOut = register('pickmodOut', function (lookup, pat) {
+  return _pick(lookup, pat, true).outerJoin();
+});
+
+/** * Similar to `pick`, but the choosen pattern is restarted when its index is triggered.
+ * @param {Pattern} pat
+ * @param {*} xs
+ * @returns {Pattern}
+ */
+export const pickRestart = register('pickRestart', function (lookup, pat) {
+  return _pick(lookup, pat, false).restartJoin();
+});
+
+/** * The same as `pickRestart`, but if you pick a number greater than the size of the list,
+   * it wraps around, rather than sticking at the maximum value.
+   * @param {Pattern} pat
+   * @param {*} xs
+   * @returns {Pattern}
+   * @example
+   * "".pickRestart({
+        a: n("0 1 2 0"),
+        b: n("2 3 4 ~"),
+        c: n("[4 5] [4 3] 2 0"),
+        d: n("0 -3 0 ~")
+      }).scale("C:major").s("piano")
+   */
+export const pickmodRestart = register('pickmodRestart', function (lookup, pat) {
+  return _pick(lookup, pat, true).restartJoin();
+});
+
+/** * Similar to `pick`, but the choosen pattern is reset when its index is triggered.
+ * @param {Pattern} pat
+ * @param {*} xs
+ * @returns {Pattern}
+ */
+export const pickReset = register('pickReset', function (lookup, pat) {
+  return _pick(lookup, pat, false).resetJoin();
+});
+
+/** * The same as `pickReset`, but if you pick a number greater than the size of the list,
+ * it wraps around, rather than sticking at the maximum value.
+ * @param {Pattern} pat
+ * @param {*} xs
+ * @returns {Pattern}
+ */
+export const pickmodReset = register('pickmodReset', function (lookup, pat) {
+  return _pick(lookup, pat, true).resetJoin();
+});
+
+/** Picks patterns (or plain values) either from a list (by index) or a lookup table (by name).
+   * Similar to `pick`, but cycles are squeezed into the target ('inhabited') pattern.
+   * @name inhabit
+   * @synonyms pickSqueeze
+   * @param {Pattern} pat
+   * @param {*} xs
+   * @returns {Pattern}
+   * @example
+   * "".inhabit({a: s("bd(3,8)"),
+                            b: s("cp sd")
+                           })
+   * @example
+   * s("a@2 [a b] a".inhabit({a: "bd(3,8)", b: "sd sd"})).slow(4)
+   */
+export const { inhabit, pickSqueeze } = register(['inhabit', 'pickSqueeze'], function (lookup, pat) {
+  return _pick(lookup, pat, false).squeezeJoin();
+});
+
+/** * The same as `inhabit`, but if you pick a number greater than the size of the list,
+ * it wraps around, rather than sticking at the maximum value.
+ * For example, if you pick the fifth pattern of a list of three, you'll get the
+ * second one.
+ * @name inhabitmod
+ * @synonyms pickmodSqueeze
+ * @param {Pattern} pat
+ * @param {*} xs
+ * @returns {Pattern}
+ */
+
+export const { inhabitmod, pickmodSqueeze } = register(['inhabitmod', 'pickmodSqueeze'], function (lookup, pat) {
+  return _pick(lookup, pat, true).squeezeJoin();
+});
+
+/**
+ * Pick from the list of values (or patterns of values) via the index using the given
+ * pattern of integers. The selected pattern will be compressed to fit the duration of the selecting event
+ * @param {Pattern} pat
+ * @param {*} xs
+ * @returns {Pattern}
+ * @example
+ * note(squeeze("<0@2 [1!2] 2>", ["g a", "f g f g" , "g a c d"]))
+ */
+
+export const squeeze = (pat, xs) => {
+  xs = xs.map(reify);
+  if (xs.length == 0) {
+    return silence;
+  }
+  return pat
+    .fmap((i) => {
+      const key = _mod(Math.round(i), xs.length);
+      return xs[key];
+    })
+    .squeezeJoin();
+};
diff --git a/packages/core/repl.mjs b/packages/core/repl.mjs
index af593578..d5cab857 100644
--- a/packages/core/repl.mjs
+++ b/packages/core/repl.mjs
@@ -10,6 +10,7 @@ export function repl({
   defaultOutput,
   onEvalError,
   beforeEval,
+  beforeStart,
   afterEval,
   getTime,
   transpiler,
@@ -19,6 +20,8 @@ export function repl({
   sync = false,
   setInterval,
   clearInterval,
+  id,
+  mondo = false,
 }) {
   const state = {
     schedulerError: undefined,
@@ -32,6 +35,10 @@ export function repl({
     started: false,
   };
 
+  const transpilerOptions = {
+    id,
+  };
+
   const updateState = (update) => {
     Object.assign(state, update);
     state.isDirty = state.code !== state.activeCode;
@@ -48,6 +55,7 @@ export function repl({
     },
     setInterval,
     clearInterval,
+    beforeStart,
   };
 
   // NeoCyclist uses a shared worker to communicate between instances, which is not supported on mobile chrome
@@ -56,17 +64,20 @@ export function repl({
   let pPatterns = {};
   let anonymousIndex = 0;
   let allTransform;
+  let eachTransform;
 
   const hush = function () {
     pPatterns = {};
     anonymousIndex = 0;
     allTransform = undefined;
+    eachTransform = undefined;
     return silence;
   };
 
-  const setPattern = (pattern, autostart = true) => {
+  const setPattern = async (pattern, autostart = true) => {
     pattern = editPattern?.(pattern) || pattern;
-    scheduler.setPattern(pattern, autostart);
+    await scheduler.setPattern(pattern, autostart);
+    return pattern;
   };
   setTime(() => scheduler.now()); // TODO: refactor?
 
@@ -75,16 +86,55 @@ export function repl({
   const pause = () => scheduler.pause();
   const toggle = () => scheduler.toggle();
   const setCps = (cps) => scheduler.setCps(cps);
+
+  /**
+   * Changes the global tempo to the given cycles per minute
+   *
+   * @name setcpm
+   * @alias setCpm
+   * @param {number} cpm cycles per minute
+   * @example
+   * setcpm(140/4) // =140 bpm in 4/4
+   * $: s("bd*4,[- sd]*2").bank('tr707')
+   */
   const setCpm = (cpm) => scheduler.setCps(cpm / 60);
+
+  // TODO - not documented as jsdoc examples as the test framework doesn't simulate enough context for `each` and `all`..
+
+  /** Applies a function to all the running patterns. Note that the patterns are groups together into a single `stack` before the function is applied. This is probably what you want, but see `each` for
+   * a version that applies the function to each pattern separately.
+   * ```
+   * $: sound("bd - cp sd")
+   * $: sound("hh*8")
+   * all(fast("<2 3>"))
+   * ```
+   * ```
+   * $: sound("bd - cp sd")
+   * $: sound("hh*8")
+   * all(x => x.pianoroll())
+   * ```
+   */
+  let allTransforms = [];
   const all = function (transform) {
-    allTransform = transform;
+    allTransforms.push(transform);
+    return silence;
+  };
+  /** Applies a function to each of the running patterns separately. This is intended for future use with upcoming 'stepwise' features. See `all` for a version that applies the function to all the patterns stacked together into a single pattern.
+   * ```
+   * $: sound("bd - cp sd")
+   * $: sound("hh*8")
+   * each(fast("<2 3>"))
+   * ```
+   */
+  const each = function (transform) {
+    eachTransform = transform;
     return silence;
   };
 
   // set pattern methods that use this repl via closure
   const injectPatternMethods = () => {
     Pattern.prototype.p = function (id) {
-      if (id.startsWith('_') || id.endsWith('_')) {
+      if (typeof id === 'string' && (id.startsWith('_') || id.endsWith('_'))) {
         // allows muting a pattern x with x_ or _x
         return silence;
       }
@@ -123,6 +173,7 @@ export function repl({
     });
     return evalScope({
       all,
+      each,
       hush,
       cpm,
       setCps,
@@ -139,21 +190,36 @@ export function repl({
     try {
       updateState({ code, pending: true });
       await injectPatternMethods();
+      setTime(() => scheduler.now()); // TODO: refactor?
       await beforeEval?.({ code });
+      allTransforms = []; // reset all transforms
       shouldHush && hush();
-      let { pattern, meta } = await _evaluate(code, transpiler);
-      if (Object.keys(pPatterns).length) {
-        pattern = stack(...Object.values(pPatterns));
+
+      if (mondo) {
+        code = `mondolang\`${code}\``;
       }
-      if (allTransform) {
-        pattern = allTransform(pattern);
+      let { pattern, meta } = await _evaluate(code, transpiler, transpilerOptions);
+      if (Object.keys(pPatterns).length) {
+        let patterns = Object.values(pPatterns);
+        if (eachTransform) {
+          // Explicit lambda so only element (not index and array) are passed
+          patterns = patterns.map((x) => eachTransform(x));
+        }
+        pattern = stack(...patterns);
+      } else if (eachTransform) {
+        pattern = eachTransform(pattern);
+      }
+      if (allTransforms.length) {
+        for (let i in allTransforms) {
+          pattern = allTransforms[i](pattern);
+        }
       }
       if (!isPattern(pattern)) {
         const message = `got "${typeof evaluated}" instead of pattern`;
         throw new Error(message + (typeof evaluated === 'function' ? ', did you forget to call a function?' : '.'));
       }
       logger(`[eval] code updated`);
-      setPattern(pattern, autostart);
+      pattern = await setPattern(pattern, autostart);
       updateState({
         miniLocations: meta?.miniLocations || [],
         widgets: meta?.widgets || [],
@@ -178,8 +244,8 @@ export function repl({
 
 export const getTrigger =
   ({ getTime, defaultOutput }) =>
-  async (hap, deadline, duration, cps, t, cycle = 0) => {
-    // TODO: get rid of deadline after https://github.com/tidalcycles/strudel/pull/1004
+  async (hap, deadline, duration, cps, t) => {
+    // TODO: get rid of deadline after https://codeberg.org/uzu/strudel/pulls/1004
     try {
       if (!hap.context.onTrigger || !hap.context.dominantTrigger) {
         await defaultOutput(hap, deadline, duration, cps, t, cycle);
diff --git a/packages/core/signal.mjs b/packages/core/signal.mjs
index 375c4f67..c933e7fe 100644
--- a/packages/core/signal.mjs
+++ b/packages/core/signal.mjs
@@ -1,13 +1,14 @@
 /*
-signal.mjs - 
-Copyright (C) 2022 Strudel contributors - see 
+signal.mjs - continuous patterns
+Copyright (C) 2024 Strudel contributors - see 
 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 .
 */
 
 import { Hap } from './hap.mjs';
-import { Pattern, fastcat, reify, silence, stack, register } from './pattern.mjs';
+import { Pattern, fastcat, pure, register, reify, silence, stack, sequenceP } from './pattern.mjs';
 import Fraction from './fraction.mjs';
-import { id, _mod, clamp, objectMap } from './util.mjs';
+
+import { id, keyAlias, getCurrentKeyboardState } from './util.mjs';
 
 export function steady(value) {
   // A continuous value
@@ -15,13 +16,10 @@ export function steady(value) {
 }
 
 export const signal = (func) => {
-  const query = (state) => [new Hap(undefined, state.span, func(state.span.midpoint()))];
+  const query = (state) => [new Hap(undefined, state.span, func(state.span.begin))];
   return new Pattern(query);
 };
 
-export const isaw = signal((t) => 1 - (t % 1));
-export const isaw2 = isaw.toBipolar();
-
 /**
  *  A sawtooth signal between 0 and 1.
  *
@@ -35,13 +33,44 @@ export const isaw2 = isaw.toBipolar();
  *
  */
 export const saw = signal((t) => t % 1);
+
+/**
+ *  A sawtooth signal between -1 and 1 (like `saw`, but bipolar).
+ *
+ * @return {Pattern}
+ */
 export const saw2 = saw.toBipolar();
 
+/**
+ *  A sawtooth signal between 1 and 0 (like `saw`, but flipped).
+ *
+ * @return {Pattern}
+ * @example
+ * note("*8")
+ * .clip(isaw.slow(2))
+ * @example
+ * n(isaw.range(0,8).segment(8))
+ * .scale('C major')
+ *
+ */
+export const isaw = signal((t) => 1 - (t % 1));
+
+/**
+ *  A sawtooth signal between 1 and -1 (like `saw2`, but flipped).
+ *
+ * @return {Pattern}
+ */
+export const isaw2 = isaw.toBipolar();
+
+/**
+ *  A sine signal between -1 and 1 (like `sine`, but bipolar).
+ *
+ * @return {Pattern}
+ */
 export const sine2 = signal((t) => Math.sin(Math.PI * 2 * t));
 
 /**
  *  A sine signal between 0 and 1.
- *
  * @return {Pattern}
  * @example
  * n(sine.segment(16).range(0,15))
@@ -60,17 +89,28 @@ export const sine = sine2.fromBipolar();
  *
  */
 export const cosine = sine._early(Fraction(1).div(4));
+
+/**
+ *  A cosine signal between -1 and 1 (like `cosine`, but bipolar).
+ *
+ * @return {Pattern}
+ */
 export const cosine2 = sine2._early(Fraction(1).div(4));
 
 /**
  *  A square signal between 0 and 1.
- *
  * @return {Pattern}
  * @example
  * n(square.segment(4).range(0,7)).scale("C:minor")
  *
  */
 export const square = signal((t) => Math.floor((t * 2) % 2));
+
+/**
+ *  A square signal between -1 and 1 (like `square`, but bipolar).
+ *
+ * @return {Pattern}
+ */
 export const square2 = square.toBipolar();
 
 /**
@@ -81,11 +121,71 @@ export const square2 = square.toBipolar();
  * n(tri.segment(8).range(0,7)).scale("C:minor")
  *
  */
-export const tri = fastcat(isaw, saw);
-export const tri2 = fastcat(isaw2, saw2);
+export const tri = fastcat(saw, isaw);
 
+/**
+ *  A triangle signal between -1 and 1 (like `tri`, but bipolar).
+ *
+ * @return {Pattern}
+ */
+export const tri2 = fastcat(saw2, isaw2);
+
+/**
+ *  An inverted triangle signal between 1 and 0 (like `tri`, but flipped).
+ *
+ * @return {Pattern}
+ * @example
+ * n(itri.segment(8).range(0,7)).scale("C:minor")
+ *
+ */
+export const itri = fastcat(isaw, saw);
+
+/**
+ *  An inverted triangle signal between -1 and 1 (like `itri`, but bipolar).
+ *
+ * @return {Pattern}
+ */
+export const itri2 = fastcat(isaw2, saw2);
+
+/**
+ *  A signal representing the cycle time.
+ *
+ * @return {Pattern}
+ */
 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) => {
@@ -106,7 +206,7 @@ const timeToRand = (x) => Math.abs(intSeedToRand(timeToIntSeed(x)));
 const timeToRandsPrime = (seed, n) => {
   const result = [];
   // eslint-disable-next-line
-  for (let i = 0; i < n; ++n) {
+  for (let i = 0; i < n; ++i) {
     result.push(intSeedToRand(seed));
     seed = xorwise(seed);
   }
@@ -125,7 +225,82 @@ const timeToRands = (t, n) => timeToRandsPrime(timeToIntSeed(t), n);
  * n(run(4)).scale("C4:pentatonic")
  * // n("0 1 2 3").scale("C4:pentatonic")
  */
-export const run = (n) => saw.range(0, n).floor().segment(n);
+export const run = (n) => saw.range(0, n).round().segment(n);
+
+/**
+ * Creates a pattern from a binary number.
+ *
+ * @name binary
+ * @param {number} n - input number to convert to binary
+ * @example
+ * "hh".s().struct(binary(5))
+ * // "hh".s().struct("1 0 1")
+ */
+export const binary = (n) => {
+  const nBits = reify(n).log2(0).floor().add(1);
+  return binaryN(n, nBits);
+};
+
+/**
+ * Creates a pattern from a binary number, padded to n bits long.
+ *
+ * @name binaryN
+ * @param {number} n - input number to convert to binary
+ * @param {number} nBits - pattern length, defaults to 16
+ * @example
+ * "hh".s().struct(binaryN(55532, 16))
+ * // "hh".s().struct("1 1 0 1 1 0 0 0 1 1 1 0 1 1 0 0")
+ */
+export const binaryN = (n, nBits = 16) => {
+  nBits = reify(nBits);
+  // Shift and mask, putting msb on the right-side
+  const bitPos = run(nBits).mul(-1).add(nBits.sub(1));
+  return reify(n).segment(nBits).brshift(bitPos).band(pure(1));
+};
+
+export const randrun = (n) => {
+  return signal((t) => {
+    // Without adding 0.5, the first cycle is always 0,1,2,3,...
+    const rands = timeToRands(t.floor().add(0.5), n);
+    const nums = rands
+      .map((n, i) => [n, i])
+      .sort((a, b) => a[0] > b[0] - a[0] < b[0])
+      .map((x) => x[1]);
+    const i = t.cyclePos().mul(n).floor() % n;
+    return nums[i];
+  })._segment(n);
+};
+
+const _rearrangeWith = (ipat, n, pat) => {
+  const pats = [...Array(n).keys()].map((i) => pat.zoom(Fraction(i).div(n), Fraction(i + 1).div(n)));
+  return ipat.fmap((i) => pats[i].repeatCycles(n)._fast(n)).innerJoin();
+};
+
+/**
+ * Slices a pattern into the given number of parts, then plays those parts in random order.
+ * Each part will be played exactly once per cycle.
+ * @name shuffle
+ * @example
+ * note("c d e f").sound("piano").shuffle(4)
+ * @example
+ * seq("c d e f".shuffle(4), "g").note().sound("piano")
+ */
+export const shuffle = register('shuffle', (n, pat) => {
+  return _rearrangeWith(randrun(n), n, pat);
+});
+
+/**
+ * Slices a pattern into the given number of parts, then plays those parts at random. Similar to `shuffle`,
+ * but parts might be played more than once, or not at all, per cycle.
+ * @name scramble
+ * @example
+ * note("c d e f").sound("piano").scramble(4)
+ * @example
+ * seq("c d e f".scramble(4), "g").note().sound("piano")
+ */
+export const scramble = register('scramble', (n, pat) => {
+  return _rearrangeWith(_irand(n)._segment(n), n, pat);
+});
 
 /**
  * A continuous pattern of random numbers, between 0 and 1.
@@ -177,204 +352,6 @@ export const _irand = (i) => rand.fmap((x) => Math.trunc(x * i));
  */
 export const irand = (ipat) => reify(ipat).fmap(_irand).innerJoin();
 
-const _pick = function (lookup, pat, modulo = true) {
-  const array = Array.isArray(lookup);
-  const len = Object.keys(lookup).length;
-
-  lookup = objectMap(lookup, reify);
-
-  if (len === 0) {
-    return silence;
-  }
-  return pat.fmap((i) => {
-    let key = i;
-    if (array) {
-      key = modulo ? Math.round(key) % len : clamp(Math.round(key), 0, lookup.length - 1);
-    }
-    return lookup[key];
-  });
-};
-
-/** * Picks patterns (or plain values) either from a list (by index) or a lookup table (by name).
- * Similar to `inhabit`, but maintains the structure of the original patterns.
- * @param {Pattern} pat
- * @param {*} xs
- * @returns {Pattern}
- * @example
- * note("<0 1 2!2 3>".pick(["g a", "e f", "f g f g" , "g c d"]))
- * @example
- * sound("<0 1 [2,0]>".pick(["bd sd", "cp cp", "hh hh"]))
- * @example
- * sound("<0!2 [0,1] 1>".pick(["bd(3,8)", "sd sd"]))
- * @example
- * s("".pick({a: "bd(3,8)", b: "sd sd"}))
- */
-
-export const pick = function (lookup, pat) {
-  // backward compatibility - the args used to be flipped
-  if (Array.isArray(pat)) {
-    [pat, lookup] = [lookup, pat];
-  }
-  return __pick(lookup, pat);
-};
-
-const __pick = register('pick', function (lookup, pat) {
-  return _pick(lookup, pat, false).innerJoin();
-});
-
-/** * The same as `pick`, but if you pick a number greater than the size of the list,
- * it wraps around, rather than sticking at the maximum value.
- * For example, if you pick the fifth pattern of a list of three, you'll get the
- * second one.
- * @param {Pattern} pat
- * @param {*} xs
- * @returns {Pattern}
- */
-
-export const pickmod = register('pickmod', function (lookup, pat) {
-  return _pick(lookup, pat, true).innerJoin();
-});
-
-/** * pickF lets you use a pattern of numbers to pick which function to apply to another pattern.
- * @param {Pattern} pat
- * @param {Pattern} lookup a pattern of indices
- * @param {function[]} funcs the array of functions from which to pull
- * @returns {Pattern}
- * @example
- * s("bd [rim hh]").pickF("<0 1 2>", [rev,jux(rev),fast(2)])
- * @example
- * note("(3,8)").s("square")
- *     .pickF("<0 2> 1", [jux(rev),fast(2),x=>x.lpf(800)])
- */
-export const pickF = register('pickF', function (lookup, funcs, pat) {
-  return pat.apply(pick(lookup, funcs));
-});
-
-/** * The same as `pickF`, but if you pick a number greater than the size of the functions list,
- * it wraps around, rather than sticking at the maximum value.
- * @param {Pattern} pat
- * @param {Pattern} lookup a pattern of indices
- * @param {function[]} funcs the array of functions from which to pull
- * @returns {Pattern}
- */
-export const pickmodF = register('pickmodF', function (lookup, funcs, pat) {
-  return pat.apply(pickmod(lookup, funcs));
-});
-
-/** * Similar to `pick`, but it applies an outerJoin instead of an innerJoin.
- * @param {Pattern} pat
- * @param {*} xs
- * @returns {Pattern}
- */
-export const pickOut = register('pickOut', function (lookup, pat) {
-  return _pick(lookup, pat, false).outerJoin();
-});
-
-/** * The same as `pickOut`, but if you pick a number greater than the size of the list,
- * it wraps around, rather than sticking at the maximum value.
- * @param {Pattern} pat
- * @param {*} xs
- * @returns {Pattern}
- */
-export const pickmodOut = register('pickmodOut', function (lookup, pat) {
-  return _pick(lookup, pat, true).outerJoin();
-});
-
-/** * Similar to `pick`, but the choosen pattern is restarted when its index is triggered.
- * @param {Pattern} pat
- * @param {*} xs
- * @returns {Pattern}
- */
-export const pickRestart = register('pickRestart', function (lookup, pat) {
-  return _pick(lookup, pat, false).restartJoin();
-});
-
-/** * The same as `pickRestart`, but if you pick a number greater than the size of the list,
- * it wraps around, rather than sticking at the maximum value.
- * @param {Pattern} pat
- * @param {*} xs
- * @returns {Pattern}
- */
-export const pickmodRestart = register('pickmodRestart', function (lookup, pat) {
-  return _pick(lookup, pat, true).restartJoin();
-});
-
-/** * Similar to `pick`, but the choosen pattern is reset when its index is triggered.
- * @param {Pattern} pat
- * @param {*} xs
- * @returns {Pattern}
- */
-export const pickReset = register('pickReset', function (lookup, pat) {
-  return _pick(lookup, pat, false).resetJoin();
-});
-
-/** * The same as `pickReset`, but if you pick a number greater than the size of the list,
- * it wraps around, rather than sticking at the maximum value.
- * @param {Pattern} pat
- * @param {*} xs
- * @returns {Pattern}
- */
-export const pickmodReset = register('pickmodReset', function (lookup, pat) {
-  return _pick(lookup, pat, true).resetJoin();
-});
-
-/**
-/** * Picks patterns (or plain values) either from a list (by index) or a lookup table (by name).
- * Similar to `pick`, but cycles are squeezed into the target ('inhabited') pattern.
- * @name inhabit
- * @synonyms pickSqueeze
- * @param {Pattern} pat
- * @param {*} xs
- * @returns {Pattern}
- * @example
- * "".inhabit({a: s("bd(3,8)"),
-                          b: s("cp sd")
-                         })
- * @example
- * s("a@2 [a b] a".inhabit({a: "bd(3,8)", b: "sd sd"})).slow(4)
- */
-export const { inhabit, pickSqueeze } = register(['inhabit', 'pickSqueeze'], function (lookup, pat) {
-  return _pick(lookup, pat, false).squeezeJoin();
-});
-
-/** * The same as `inhabit`, but if you pick a number greater than the size of the list,
- * it wraps around, rather than sticking at the maximum value.
- * For example, if you pick the fifth pattern of a list of three, you'll get the
- * second one.
- * @name inhabitmod
- * @synonyms pickmodSqueeze
- * @param {Pattern} pat
- * @param {*} xs
- * @returns {Pattern}
- */
-
-export const { inhabitmod, pickmodSqueeze } = register(['inhabitmod', 'pickmodSqueeze'], function (lookup, pat) {
-  return _pick(lookup, pat, true).squeezeJoin();
-});
-
-/**
- * Pick from the list of values (or patterns of values) via the index using the given
- * pattern of integers. The selected pattern will be compressed to fit the duration of the selecting event
- * @param {Pattern} pat
- * @param {*} xs
- * @returns {Pattern}
- * @example
- * note(squeeze("<0@2 [1!2] 2>", ["g a", "f g f g" , "g a c d"]))
- */
-
-export const squeeze = (pat, xs) => {
-  xs = xs.map(reify);
-  if (xs.length == 0) {
-    return silence;
-  }
-  return pat
-    .fmap((i) => {
-      const key = _mod(Math.round(i), xs.length);
-      return xs[key];
-    })
-    .squeezeJoin();
-};
-
 export const __chooseWith = (pat, xs) => {
   xs = xs.map(reify);
   if (xs.length == 0) {
@@ -419,6 +396,10 @@ export const chooseInWith = (pat, xs) => {
  */
 export const choose = (...xs) => chooseWith(rand, xs);
 
+// todo: doc
+export const chooseIn = (...xs) => chooseInWith(rand, xs);
+export const chooseOut = choose;
+
 /**
  * Chooses from the given list of values (or patterns of values), according
  * to the pattern that the method is called on. The pattern should be in
@@ -454,19 +435,30 @@ export const chooseCycles = (...xs) => chooseInWith(rand.segment(1), xs);
 export const randcat = chooseCycles;
 
 const _wchooseWith = function (pat, ...pairs) {
+  // A list of patterns of values
   const values = pairs.map((pair) => reify(pair[0]));
+
+  // A list of weight patterns
   const weights = [];
-  let accum = 0;
+
+  let total = pure(0);
   for (const pair of pairs) {
-    accum += pair[1];
-    weights.push(accum);
+    // 'add' accepts either values or patterns of values here, so no need
+    // to explicitly reify
+    total = total.add(pair[1]);
+    // accumulate our list of weight patterns
+    weights.push(total);
   }
-  const total = accum;
+  // a pattern of lists of weights
+  const weightspat = sequenceP(weights);
+
+  // Takes a number from 0-1, returns a pattern of patterns of values
   const match = function (r) {
-    const find = r * total;
-    return values[weights.findIndex((x) => x > find, weights)];
+    const findpat = total.mul(r);
+    return weightspat.fmap((weights) => (find) => values[weights.findIndex((x) => x > find, weights)]).appLeft(findpat);
   };
-  return pat.fmap(match);
+  // This returns a pattern of patterns.. The innerJoin is in wchooseCycles
+  return pat.bind(match);
 };
 
 const wchooseWith = (...args) => _wchooseWith(...args).outerJoin();
@@ -488,18 +480,42 @@ export const wchoose = (...pairs) => wchooseWith(rand, ...pairs);
  * wchooseCycles(["bd",10], ["hh",1], ["sd",1]).s().fast(8)
  * @example
  * wchooseCycles(["bd bd bd",5], ["hh hh hh",3], ["sd sd sd",1]).fast(4).s()
+ * @example
+ * // The probability can itself be a pattern
+ * wchooseCycles(["bd(3,8)","<5 0>"], ["hh hh hh",3]).fast(4).s()
  */
 export const wchooseCycles = (...pairs) => _wchooseWith(rand.segment(1), ...pairs).innerJoin();
 
 export const wrandcat = wchooseCycles;
 
-// this function expects pat to be a pattern of floats...
-export const perlinWith = (pat) => {
-  const pata = pat.fmap(Math.floor);
-  const patb = pat.fmap((t) => Math.floor(t) + 1);
+function _perlin(t) {
+  let ta = Math.floor(t);
+  let tb = ta + 1;
   const smootherStep = (x) => 6.0 * x ** 5 - 15.0 * x ** 4 + 10.0 * x ** 3;
   const interp = (x) => (a) => (b) => a + smootherStep(x) * (b - a);
-  return pat.sub(pata).fmap(interp).appBoth(pata.fmap(timeToRand)).appBoth(patb.fmap(timeToRand));
+  const v = interp(t - ta)(timeToRand(ta))(timeToRand(tb));
+  return v;
+}
+export const perlinWith = (tpat) => {
+  return tpat.fmap(_perlin);
+};
+
+function _berlin(t) {
+  const prevRidgeStartIndex = Math.floor(t);
+  const nextRidgeStartIndex = prevRidgeStartIndex + 1;
+
+  const prevRidgeBottomPoint = timeToRand(prevRidgeStartIndex);
+  const nextRidgeTopPoint = timeToRand(nextRidgeStartIndex) + prevRidgeBottomPoint;
+
+  const currentPercent = (t - prevRidgeStartIndex) / (nextRidgeStartIndex - prevRidgeStartIndex);
+  const interp = (a, b, t) => {
+    return a + (b - a) * t;
+  };
+  return interp(prevRidgeBottomPoint, nextRidgeTopPoint, currentPercent) / 2;
+}
+
+export const berlinWith = (tpat) => {
+  return tpat.fmap(_berlin);
 };
 
 /**
@@ -513,8 +529,23 @@ export const perlinWith = (pat) => {
  */
 export const perlin = perlinWith(time.fmap((v) => Number(v)));
 
-export const degradeByWith = register('degradeByWith', (withPat, x, pat) =>
-  pat.fmap((a) => (_) => a).appLeft(withPat.filterValues((v) => v > x)),
+/**
+ * Generates a continuous pattern of [berlin noise](conceived by Jame Coyne and Jade Rowland as a joke but turned out to be surprisingly cool and useful,
+ * like perlin noise but with sawtooth waves), in the range 0..1.
+ *
+ * @name berlin
+ * @example
+ * // ascending arpeggios
+ * n("0!16".add(berlin.fast(4).mul(14))).scale("d:minor")
+ *
+ */
+export const berlin = berlinWith(time.fmap((v) => Number(v)));
+
+export const degradeByWith = register(
+  'degradeByWith',
+  (withPat, x, pat) => pat.fmap((a) => (_) => a).appLeft(withPat.filterValues((v) => v > x)),
+  true,
+  true,
 );
 
 /**
@@ -530,10 +561,18 @@ export const degradeByWith = register('degradeByWith', (withPat, x, pat) =>
  * s("hh*8").degradeBy(0.2)
  * @example
  * s("[hh?0.2]*8")
+ * @example
+ * //beat generator
+ * s("bd").segment(16).degradeBy(.5).ribbon(16,1)
  */
-export const degradeBy = register('degradeBy', function (x, pat) {
-  return pat._degradeByWith(rand, x);
-});
+export const degradeBy = register(
+  'degradeBy',
+  function (x, pat) {
+    return pat._degradeByWith(rand, x);
+  },
+  true,
+  true,
+);
 
 /**
  *
@@ -547,7 +586,7 @@ export const degradeBy = register('degradeBy', function (x, pat) {
  * @example
  * s("[hh?]*8")
  */
-export const degrade = register('degrade', (pat) => pat._degradeBy(0.5));
+export const degrade = register('degrade', (pat) => pat._degradeBy(0.5), true, true);
 
 /**
  * Inverse of `degradeBy`: Randomly removes events from the pattern by a given amount.
@@ -567,12 +606,17 @@ export const degrade = register('degrade', (pat) => pat._degradeBy(0.5));
  *   x => x.undegradeBy(0.8).pan(1)
  * )
  */
-export const undegradeBy = register('undegradeBy', function (x, pat) {
-  return pat._degradeByWith(
-    rand.fmap((r) => 1 - r),
-    x,
-  );
-});
+export const undegradeBy = register(
+  'undegradeBy',
+  function (x, pat) {
+    return pat._degradeByWith(
+      rand.fmap((r) => 1 - r),
+      x,
+    );
+  },
+  true,
+  true,
+);
 
 /**
  * Inverse of `degrade`: Randomly removes 50% of events from the pattern. Shorthand for `.undegradeBy(0.5)`
@@ -589,7 +633,7 @@ export const undegradeBy = register('undegradeBy', function (x, pat) {
  *   x => x.undegrade().pan(1)
  * )
  */
-export const undegrade = register('undegrade', (pat) => pat._undegradeBy(0.5));
+export const undegrade = register('undegrade', (pat) => pat._undegradeBy(0.5), true, true);
 
 /**
  *
@@ -748,3 +792,48 @@ export const never = register('never', function (_, pat) {
 export const always = register('always', function (func, pat) {
   return func(pat);
 });
+
+//keyname: string | Array
+//keyname reference: https://developer.mozilla.org/en-US/docs/Web/API/UI_Events/Keyboard_event_key_values
+export function _keyDown(keyname) {
+  if (Array.isArray(keyname) === false) {
+    keyname = [keyname];
+  }
+  const keyState = getCurrentKeyboardState();
+  return keyname.every((x) => {
+    const keyName = keyAlias.get(x) ?? x;
+    return keyState[keyName];
+  });
+}
+
+/**
+ *
+ * Do something on a keypress, or array of keypresses
+ * [Key name reference](https://developer.mozilla.org/en-US/docs/Web/API/UI_Events/Keyboard_event_key_values)
+ *
+ * @name whenKey
+ * @memberof Pattern
+ * @returns Pattern
+ * @example
+ * s("bd(5,8)").whenKey("Control:j", x => x.segment(16).color("red")).whenKey("Control:i", x => x.fast(2).color("blue"))
+ */
+
+export const whenKey = register('whenKey', function (input, func, pat) {
+  return pat.when(_keyDown(input), func);
+});
+
+/**
+ *
+ * returns true when a key or array of keys is held
+ * [Key name reference](https://developer.mozilla.org/en-US/docs/Web/API/UI_Events/Keyboard_event_key_values)
+ *
+ * @name keyDown
+ * @memberof Pattern
+ * @returns Pattern
+ * @example
+ * keyDown("Control:j").pick([s("bd(5,8)"), s("cp(3,8)")])
+ */
+
+export const keyDown = register('keyDown', function (pat) {
+  return pat.fmap(_keyDown);
+});
diff --git a/packages/core/speak.mjs b/packages/core/speak.mjs
index 6ae95954..7e548a73 100644
--- a/packages/core/speak.mjs
+++ b/packages/core/speak.mjs
@@ -1,6 +1,6 @@
 /*
 speak.mjs - 
-Copyright (C) 2022 Strudel contributors - see 
+Copyright (C) 2022 Strudel contributors - see 
 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 .
 */
 
diff --git a/packages/core/state.mjs b/packages/core/state.mjs
index db1f77ef..162dc7da 100644
--- a/packages/core/state.mjs
+++ b/packages/core/state.mjs
@@ -1,6 +1,6 @@
 /*
 state.mjs - 
-Copyright (C) 2022 Strudel contributors - see 
+Copyright (C) 2022 Strudel contributors - see 
 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 .
 */
 
diff --git a/packages/core/test/controls.test.mjs b/packages/core/test/controls.test.mjs
index 3b926685..667c3a4e 100644
--- a/packages/core/test/controls.test.mjs
+++ b/packages/core/test/controls.test.mjs
@@ -1,10 +1,10 @@
 /*
 controls.test.mjs - 
-Copyright (C) 2023 Strudel contributors - see 
+Copyright (C) 2023 Strudel contributors - see 
 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 .
 */
 
-import { s, pan } from '../controls.mjs';
+import { s, pan, getControlName } from '../controls.mjs';
 import { mini } from '../../mini/mini.mjs';
 import { describe, it, expect } from 'vitest';
 import Fraction from '../fraction.mjs';
@@ -30,13 +30,17 @@ describe('controls', () => {
     expect(s(mini('bd').pan(1)).firstCycleValues).toEqual([{ s: 'bd', pan: 1 }]);
     expect(s(mini('bd:1').pan(1)).firstCycleValues).toEqual([{ s: 'bd', n: 1, pan: 1 }]);
   });
-  it('preserves tactus of the left pattern', () => {
-    expect(s(mini('bd cp mt').pan(mini('1 2 3 4'))).tactus).toEqual(Fraction(3));
+  it('preserves step count of the left pattern', () => {
+    expect(s(mini('bd cp mt').pan(mini('1 2 3 4')))._steps).toEqual(Fraction(3));
   });
-  it('preserves tactus of the right pattern for .out', () => {
-    expect(s(mini('bd cp mt').set.out(pan(mini('1 2 3 4')))).tactus).toEqual(Fraction(4));
+  it('preserves step count of the right pattern for .out', () => {
+    expect(s(mini('bd cp mt').set.out(pan(mini('1 2 3 4'))))._steps).toEqual(Fraction(4));
   });
-  it('combines tactus of the pattern for .mix as lcm', () => {
-    expect(s(mini('bd cp mt').set.mix(pan(mini('1 2 3 4')))).tactus).toEqual(Fraction(12));
+  it('combines step count of the pattern for .mix as lcm', () => {
+    expect(s(mini('bd cp mt').set.mix(pan(mini('1 2 3 4'))))._steps).toEqual(Fraction(12));
+  });
+  it('finds control name by alias', () => {
+    expect(getControlName('lpf')).toEqual('cutoff');
+    expect(getControlName('cutoff')).toEqual('cutoff');
   });
 });
diff --git a/packages/core/test/drawLine.test.mjs b/packages/core/test/drawLine.test.mjs
index 84359a7c..2240080c 100644
--- a/packages/core/test/drawLine.test.mjs
+++ b/packages/core/test/drawLine.test.mjs
@@ -1,6 +1,6 @@
 /*
 drawLine.test.mjs - 
-Copyright (C) 2022 Strudel contributors - see 
+Copyright (C) 2022 Strudel contributors - see 
 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 .
 */
 
diff --git a/packages/core/test/euclid.test.js b/packages/core/test/euclid.test.js
new file mode 100644
index 00000000..a33ec951
--- /dev/null
+++ b/packages/core/test/euclid.test.js
@@ -0,0 +1,89 @@
+import { bjork } from '../euclid.mjs';
+import { describe, expect, it } from 'vitest';
+import { fastcat } from '../pattern.mjs';
+
+describe('bjork', () => {
+  it('should apply bjorklund to ons and steps', () => {
+    expect(bjork(3, 8)).toStrictEqual([1, 0, 0, 1, 0, 0, 1, 0]);
+    expect(bjork(-3, 8)).toStrictEqual([0, 1, 1, 0, 1, 1, 0, 1]);
+    expect(bjork(8, 8)).toStrictEqual([1, 1, 1, 1, 1, 1, 1, 1]);
+    expect(bjork(-8, 8)).toStrictEqual([0, 0, 0, 0, 0, 0, 0, 0]);
+    expect(bjork(5, 8)).toStrictEqual([1, 0, 1, 1, 0, 1, 1, 0]);
+  });
+});
+
+describe('euclid', () => {
+  it('Can create euclid', () => {
+    expect(
+      fastcat('a')
+        .euclid(3, 8)
+        .firstCycle()
+        .sort((a, b) => a.part.begin.sub(b.part.begin))
+        .map((a) => a.showWhole(true)),
+    ).toStrictEqual(['0/1 → 1/8: a', '3/8 → 1/2: a', '3/4 → 7/8: a']);
+    expect(
+      fastcat('a')
+        .euclid(5, 8)
+        .firstCycle()
+        .sort((a, b) => a.part.begin.sub(b.part.begin))
+        .map((a) => a.showWhole(true)),
+    ).toStrictEqual(['0/1 → 1/8: a', '1/4 → 3/8: a', '3/8 → 1/2: a', '5/8 → 3/4: a', '3/4 → 7/8: a']);
+  });
+});
+
+describe('euclidRot', () => {
+  it('Can create euclidRot', () => {
+    expect(
+      fastcat('a')
+        .euclidRot(3, 8, 2)
+        .firstCycle()
+        .sort((a, b) => a.part.begin.sub(b.part.begin))
+        .map((a) => a.showWhole(true)),
+    ).toStrictEqual(['0/1 → 1/8: a', '1/4 → 3/8: a', '5/8 → 3/4: a']);
+    expect(
+      fastcat('a')
+        .euclidRot(5, 8, 2)
+        .firstCycle()
+        .sort((a, b) => a.part.begin.sub(b.part.begin))
+        .map((a) => a.showWhole(true)),
+    ).toStrictEqual(['0/1 → 1/8: a', '1/4 → 3/8: a', '1/2 → 5/8: a', '5/8 → 3/4: a', '7/8 → 1/1: a']);
+  });
+});
+
+describe('euclidLegato', () => {
+  it('Can create euclidLegato', () => {
+    expect(
+      fastcat('a')
+        .euclidLegato(3, 8)
+        .firstCycle()
+        .sort((a, b) => a.part.begin.sub(b.part.begin))
+        .map((a) => a.showWhole(true)),
+    ).toStrictEqual(['0/1 → 3/8: a', '3/8 → 3/4: a', '3/4 → 1/1: a']);
+    expect(
+      fastcat('a')
+        .euclidLegato(5, 8)
+        .firstCycle()
+        .sort((a, b) => a.part.begin.sub(b.part.begin))
+        .map((a) => a.showWhole(true)),
+    ).toStrictEqual(['0/1 → 1/4: a', '1/4 → 3/8: a', '3/8 → 5/8: a', '5/8 → 3/4: a', '3/4 → 1/1: a']);
+  });
+});
+
+describe('euclidLegatoRot', () => {
+  it('Can create euclidLegatoRot', () => {
+    expect(
+      fastcat('a')
+        .euclidLegatoRot(3, 8, 2)
+        .firstCycle()
+        .sort((a, b) => a.part.begin.sub(b.part.begin))
+        .map((a) => a.showWhole(true)),
+    ).toStrictEqual(['0/1 → 1/4: a', '1/4 → 5/8: a', '5/8 → 1/1: a']);
+    expect(
+      fastcat('a')
+        .euclidLegatoRot(5, 8, 2)
+        .firstCycle()
+        .sort((a, b) => a.part.begin.sub(b.part.begin))
+        .map((a) => a.showWhole(true)),
+    ).toStrictEqual(['0/1 → 1/4: a', '1/4 → 1/2: a', '1/2 → 5/8: a', '5/8 → 7/8: a', '7/8 → 1/1: a']);
+  });
+});
diff --git a/packages/core/test/fraction.test.mjs b/packages/core/test/fraction.test.mjs
index 6b710d04..b167c948 100644
--- a/packages/core/test/fraction.test.mjs
+++ b/packages/core/test/fraction.test.mjs
@@ -1,6 +1,6 @@
 /*
 fraction.test.mjs - 
-Copyright (C) 2022 Strudel contributors - see 
+Copyright (C) 2022 Strudel contributors - see 
 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 .
 */
 
diff --git a/packages/core/test/pattern.test.mjs b/packages/core/test/pattern.test.mjs
index 845ed00a..93c4168c 100644
--- a/packages/core/test/pattern.test.mjs
+++ b/packages/core/test/pattern.test.mjs
@@ -1,6 +1,6 @@
 /*
 pattern.test.mjs - 
-Copyright (C) 2022 Strudel contributors - see 
+Copyright (C) 2022 Strudel contributors - see 
 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 .
 */
 
@@ -21,8 +21,7 @@ import {
   cat,
   sequence,
   palindrome,
-  s_polymeter,
-  s_polymeterSteps,
+  polymeter,
   polyrhythm,
   silence,
   fast,
@@ -46,12 +45,14 @@ import {
   rev,
   time,
   run,
+  binaryN,
   pick,
   stackLeft,
   stackRight,
   stackCentre,
-  s_cat,
-  calculateTactus,
+  stepcat,
+  sometimes,
+  expand,
 } from '../index.mjs';
 
 import { steady } from '../signal.mjs';
@@ -608,19 +609,12 @@ describe('Pattern', () => {
       );
     });
   });
-  describe('s_polymeter()', () => {
+  describe('polymeter()', () => {
     it('Can layer up cycles, stepwise, with lists', () => {
-      expect(s_polymeterSteps(3, ['d', 'e']).firstCycle()).toStrictEqual(
-        fastcat(pure('d'), pure('e'), pure('d')).firstCycle(),
-      );
-
-      expect(s_polymeter(['a', 'b', 'c'], ['d', 'e']).fast(2).firstCycle()).toStrictEqual(
+      expect(polymeter(['a', 'b', 'c'], ['d', 'e']).fast(2).firstCycle()).toStrictEqual(
         stack(sequence('a', 'b', 'c', 'a', 'b', 'c'), sequence('d', 'e', 'd', 'e', 'd', 'e')).firstCycle(),
       );
     });
-    it('Can layer up cycles, stepwise, with weighted patterns', () => {
-      sameFirst(s_polymeterSteps(3, sequence('a', 'b')).fast(2), sequence('a', 'b', 'a', 'b', 'a', 'b'));
-    });
   });
 
   describe('firstOf()', () => {
@@ -735,21 +729,15 @@ describe('Pattern', () => {
   describe('signal()', () => {
     it('Can make saw/saw2', () => {
       expect(saw.struct(true, true, true, true).firstCycle()).toStrictEqual(
-        sequence(1 / 8, 3 / 8, 5 / 8, 7 / 8).firstCycle(),
+        sequence(0, 1 / 4, 1 / 2, 3 / 4).firstCycle(),
       );
 
-      expect(saw2.struct(true, true, true, true).firstCycle()).toStrictEqual(
-        sequence(-3 / 4, -1 / 4, 1 / 4, 3 / 4).firstCycle(),
-      );
+      expect(saw2.struct(true, true, true, true).firstCycle()).toStrictEqual(sequence(-1, -0.5, 0, 0.5).firstCycle());
     });
     it('Can make isaw/isaw2', () => {
-      expect(isaw.struct(true, true, true, true).firstCycle()).toStrictEqual(
-        sequence(7 / 8, 5 / 8, 3 / 8, 1 / 8).firstCycle(),
-      );
+      expect(isaw.struct(true, true, true, true).firstCycle()).toStrictEqual(sequence(1, 0.75, 0.5, 0.25).firstCycle());
 
-      expect(isaw2.struct(true, true, true, true).firstCycle()).toStrictEqual(
-        sequence(3 / 4, 1 / 4, -1 / 4, -3 / 4).firstCycle(),
-      );
+      expect(isaw2.struct(true, true, true, true).firstCycle()).toStrictEqual(sequence(1, 0.5, 0, -0.5).firstCycle());
     });
   });
   describe('_setContext()', () => {
@@ -887,7 +875,7 @@ describe('Pattern', () => {
           .squeezeJoin()
           .queryArc(3, 4)
           .map((x) => x.value),
-      ).toStrictEqual([Fraction(3.5)]);
+      ).toStrictEqual([Fraction(3)]);
     });
   });
   describe('ply', () => {
@@ -897,7 +885,7 @@ describe('Pattern', () => {
       );
     });
     it('Doesnt drop haps in the 9th cycle', () => {
-      // fixed with https://github.com/tidalcycles/strudel/commit/72eeaf446e3d5e186d63cc0d2276f0723cde017a
+      // fixed with https://codeberg.org/uzu/strudel/commit/72eeaf446e3d5e186d63cc0d2276f0723cde017a
       expect(sequence(1, 2, 3).ply(2).early(8).firstCycle().length).toBe(6);
     });
   });
@@ -937,6 +925,9 @@ describe('Pattern', () => {
           .firstCycle(),
       );
     });
+    it('Can chop chops', () => {
+      expect(pure({ s: 'bev' }).chop(2).chop(2).firstCycle()).toStrictEqual(pure({ s: 'bev' }).chop(4).firstCycle());
+    });
   });
   describe('range', () => {
     it('Can be patterned', () => {
@@ -955,6 +946,18 @@ describe('Pattern', () => {
       expect(run(4).firstCycle()).toStrictEqual(sequence(0, 1, 2, 3).firstCycle());
     });
   });
+  describe('binaryN', () => {
+    it('Can make a binary pattern from a decimal', () => {
+      expect(binaryN(55532).firstCycle()).toStrictEqual(
+        sequence(1, 1, 0, 1, 1, 0, 0, 0, 1, 1, 1, 0, 1, 1, 0, 0).firstCycle(),
+      );
+    });
+    it('Can make a binary pattern from patterned inputs', () => {
+      expect(binaryN(pure(0x1337), pure(14)).firstCycle()).toStrictEqual(
+        sequence(0, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 1, 1, 1).firstCycle(),
+      );
+    });
+  });
   describe('ribbon', () => {
     it('Can ribbon', () => {
       expect(cat(0, 1, 2, 3, 4, 5, 6, 7).ribbon(2, 4).fast(4).firstCycle()).toStrictEqual(
@@ -999,7 +1002,7 @@ describe('Pattern', () => {
   });
   describe('hurry', () => {
     it('Can speed up patterns and sounds', () => {
-      sameFirst(s('a', 'b').hurry(2), s('a', 'b').fast(2).speed(2));
+      sameFirst(s(sequence('a', 'b')).hurry(2), s(sequence('a', 'b')).fast(2).speed(2));
     });
   });
   /*describe('composable functions', () => {
@@ -1124,89 +1127,183 @@ describe('Pattern', () => {
       );
     });
   });
-  describe('tactus', () => {
+  describe('_steps', () => {
     it('Is correctly preserved/calculated through transformations', () => {
-      expect(sequence(0, 1, 2, 3).linger(4).tactus).toStrictEqual(Fraction(4));
-      expect(sequence(0, 1, 2, 3).iter(4).tactus).toStrictEqual(Fraction(4));
-      expect(sequence(0, 1, 2, 3).fast(4).tactus).toStrictEqual(Fraction(4));
-      expect(sequence(0, 1, 2, 3).hurry(4).tactus).toStrictEqual(Fraction(4));
-      expect(sequence(0, 1, 2, 3).rev().tactus).toStrictEqual(Fraction(4));
-      expect(sequence(1).segment(10).tactus).toStrictEqual(Fraction(10));
-      expect(sequence(1, 0, 1).invert().tactus).toStrictEqual(Fraction(3));
-      expect(sequence({ s: 'bev' }, { s: 'amenbreak' }).chop(4).tactus).toStrictEqual(Fraction(8));
-      expect(sequence({ s: 'bev' }, { s: 'amenbreak' }).striate(4).tactus).toStrictEqual(Fraction(8));
-      expect(sequence({ s: 'bev' }, { s: 'amenbreak' }).slice(4, sequence(0, 1, 2, 3)).tactus).toStrictEqual(
+      expect(sequence(0, 1, 2, 3).linger(4)._steps).toStrictEqual(Fraction(4));
+      expect(sequence(0, 1, 2, 3).iter(4)._steps).toStrictEqual(Fraction(4));
+      expect(sequence(0, 1, 2, 3).fast(4)._steps).toStrictEqual(Fraction(4));
+      expect(sequence(0, 1, 2, 3).hurry(4)._steps).toStrictEqual(Fraction(4));
+      expect(sequence(0, 1, 2, 3).rev()._steps).toStrictEqual(Fraction(4));
+      expect(sequence(1).segment(10)._steps).toStrictEqual(Fraction(10));
+      expect(sequence(1, 0, 1).invert()._steps).toStrictEqual(Fraction(3));
+      expect(sequence({ s: 'bev' }, { s: 'amenbreak' }).chop(4)._steps).toStrictEqual(Fraction(8));
+      expect(sequence({ s: 'bev' }, { s: 'amenbreak' }).striate(4)._steps).toStrictEqual(Fraction(8));
+      expect(sequence({ s: 'bev' }, { s: 'amenbreak' }).slice(4, sequence(0, 1, 2, 3))._steps).toStrictEqual(
         Fraction(4),
       );
-      expect(sequence({ s: 'bev' }, { s: 'amenbreak' }).splice(4, sequence(0, 1, 2, 3)).tactus).toStrictEqual(
+      expect(sequence({ s: 'bev' }, { s: 'amenbreak' }).splice(4, sequence(0, 1, 2, 3))._steps).toStrictEqual(
         Fraction(4),
       );
-      expect(sequence({ n: 0 }, { n: 1 }, { n: 2 }).chop(4).tactus).toStrictEqual(Fraction(12));
+      expect(sequence({ n: 0 }, { n: 1 }, { n: 2 }).chop(4)._steps).toStrictEqual(Fraction(12));
       expect(
         pure((x) => x + 1)
-          .setTactus(3)
-          .appBoth(pure(1).setTactus(2)).tactus,
+          .setSteps(3)
+          .appBoth(pure(1).setSteps(2))._steps,
       ).toStrictEqual(Fraction(6));
       expect(
         pure((x) => x + 1)
-          .setTactus(undefined)
-          .appBoth(pure(1).setTactus(2)).tactus,
+          .setSteps(undefined)
+          .appBoth(pure(1).setSteps(2))._steps,
       ).toStrictEqual(Fraction(2));
       expect(
         pure((x) => x + 1)
-          .setTactus(3)
-          .appBoth(pure(1).setTactus(undefined)).tactus,
+          .setSteps(3)
+          .appBoth(pure(1).setSteps(undefined))._steps,
       ).toStrictEqual(Fraction(3));
-      expect(stack(fastcat(0, 1, 2), fastcat(3, 4)).tactus).toStrictEqual(Fraction(6));
-      expect(stack(fastcat(0, 1, 2), fastcat(3, 4).setTactus(undefined)).tactus).toStrictEqual(Fraction(3));
-      expect(stackLeft(fastcat(0, 1, 2, 3), fastcat(3, 4)).tactus).toStrictEqual(Fraction(4));
-      expect(stackRight(fastcat(0, 1, 2), fastcat(3, 4)).tactus).toStrictEqual(Fraction(3));
+      expect(stack(fastcat(0, 1, 2), fastcat(3, 4))._steps).toStrictEqual(Fraction(6));
+      expect(stack(fastcat(0, 1, 2), fastcat(3, 4).setSteps(undefined))._steps).toStrictEqual(Fraction(3));
+      expect(stackLeft(fastcat(0, 1, 2, 3), fastcat(3, 4))._steps).toStrictEqual(Fraction(4));
+      expect(stackRight(fastcat(0, 1, 2), fastcat(3, 4))._steps).toStrictEqual(Fraction(3));
       // maybe this should double when they are either all even or all odd
-      expect(stackCentre(fastcat(0, 1, 2), fastcat(3, 4)).tactus).toStrictEqual(Fraction(3));
-      expect(fastcat(0, 1).ply(3).tactus).toStrictEqual(Fraction(6));
-      expect(fastcat(0, 1).setTactus(undefined).ply(3).tactus).toStrictEqual(undefined);
-      expect(fastcat(0, 1).fast(3).tactus).toStrictEqual(Fraction(2));
-      expect(fastcat(0, 1).setTactus(undefined).fast(3).tactus).toStrictEqual(undefined);
+      expect(stackCentre(fastcat(0, 1, 2), fastcat(3, 4))._steps).toStrictEqual(Fraction(3));
+      expect(fastcat(0, 1).ply(3)._steps).toStrictEqual(Fraction(6));
+      expect(fastcat(0, 1).setSteps(undefined).ply(3)._steps).toStrictEqual(undefined);
+      expect(fastcat(0, 1).fast(3)._steps).toStrictEqual(Fraction(2));
+      expect(fastcat(0, 1).setSteps(undefined).fast(3)._steps).toStrictEqual(undefined);
     });
   });
-  describe('s_cat', () => {
+  describe('stepcat', () => {
     it('can cat', () => {
-      expect(sameFirst(s_cat(fastcat(0, 1, 2, 3), fastcat(4, 5)), fastcat(0, 1, 2, 3, 4, 5)));
-      expect(sameFirst(s_cat(pure(1), pure(2), pure(3)), fastcat(1, 2, 3)));
+      expect(sameFirst(stepcat(fastcat(0, 1, 2, 3), fastcat(4, 5)), fastcat(0, 1, 2, 3, 4, 5)));
+      expect(sameFirst(stepcat(pure(1), pure(2), pure(3)), fastcat(1, 2, 3)));
     });
-    it('calculates undefined tactuses as the average', () => {
-      expect(sameFirst(s_cat(pure(1), pure(2), pure(3).setTactus(undefined)), fastcat(1, 2, 3)));
+    it('calculates undefined steps as the average', () => {
+      expect(sameFirst(stepcat(pure(1), pure(2), pure(3).setSteps(undefined)), fastcat(1, 2, 3)));
+    });
+    it('works with auto-reified values', () => {
+      expect(sameFirst(stepcat(expand(3, 'bd'), 'rim'), stepcat(expand(3, 'bd'), pure('rim'))));
     });
   });
-  describe('s_taper', () => {
-    it('can taper', () => {
-      expect(sameFirst(sequence(0, 1, 2, 3, 4).s_taper(1, 5), sequence(0, 1, 2, 3, 4, 0, 1, 2, 3, 0, 1, 2, 0, 1, 0)));
+  describe('shrink', () => {
+    it('can shrink', () => {
+      expect(sameFirst(sequence(0, 1, 2, 3, 4).shrink(1), sequence(0, 1, 2, 3, 4, 1, 2, 3, 4, 2, 3, 4, 3, 4, 4)));
     });
-    it('can taper backwards', () => {
-      expect(sameFirst(sequence(0, 1, 2, 3, 4).s_taper(-1, 5), sequence(0, 0, 1, 0, 1, 2, 0, 1, 2, 3, 0, 1, 2, 3, 4)));
+    it('can shrink backwards', () => {
+      expect(sameFirst(sequence(0, 1, 2, 3, 4).shrink(-1), sequence(0, 1, 2, 3, 4, 0, 1, 2, 3, 0, 1, 2, 0, 1, 0)));
     });
   });
-  describe('s_add and s_sub', () => {
-    it('can add from the left', () => {
-      expect(sameFirst(sequence(0, 1, 2, 3, 4).s_add(2), sequence(0, 1)));
+  describe('grow', () => {
+    it('can grow', () => {
+      expect(sameFirst(sequence(0, 1, 2, 3, 4).grow(1), sequence(0, 0, 1, 0, 1, 2, 0, 1, 2, 3, 0, 1, 2, 3, 4)));
     });
-    it('can sub to the left', () => {
-      expect(sameFirst(sequence(0, 1, 2, 3, 4).s_sub(2), sequence(0, 1, 2)));
+    it('can grow backwards', () => {
+      expect(sameFirst(sequence(0, 1, 2, 3, 4).grow(-1), sequence(4, 3, 4, 2, 3, 4, 1, 2, 3, 4, 0, 1, 2, 3, 4)));
     });
-    it('can add from the right', () => {
-      expect(sameFirst(sequence(0, 1, 2, 3, 4).s_add(-2), sequence(3, 4)));
+  });
+  describe('take and drop', () => {
+    it('can take from the left', () => {
+      expect(sameFirst(sequence(0, 1, 2, 3, 4).take(2), sequence(0, 1)));
     });
-    it('can sub to the right', () => {
-      expect(sameFirst(sequence(0, 1, 2, 3, 4).s_sub(-2), sequence(2, 3, 4)));
+    it('can drop from the left', () => {
+      expect(sameFirst(sequence(0, 1, 2, 3, 4).drop(2), sequence(2, 3, 4)));
     });
-    it('can subtract nothing', () => {
-      expect(sameFirst(pure('a').s_sub(0), pure('a')));
+    it('can take from the right', () => {
+      expect(sameFirst(sequence(0, 1, 2, 3, 4).take(-2), sequence(3, 4)));
     });
-    it('can subtract nothing, repeatedly', () => {
-      expect(sameFirst(pure('a').s_sub(0, 0), fastcat('a', 'a')));
+    it('can drop from the right', () => {
+      expect(sameFirst(sequence(0, 1, 2, 3, 4).drop(-2), sequence(0, 1, 2)));
+    });
+    it('can drop nothing', () => {
+      expect(sameFirst(pure('a').drop(0), pure('a')));
+    });
+    it('can drop nothing, repeatedly', () => {
+      expect(sameFirst(pure('a').drop(0, 0), fastcat('a', 'a')));
       for (var i = 0; i < 100; ++i) {
-        expect(sameFirst(pure('a').s_sub(...Array(i).fill(0)), fastcat(...Array(i).fill('a'))));
+        expect(sameFirst(pure('a').drop(...Array(i).fill(0)), fastcat(...Array(i).fill('a'))));
       }
     });
   });
+  describe('expand', () => {
+    it('can expand four things in half', () => {
+      expect(
+        sameFirst(sequence(0, 1, 2, 3).expand(1, 0.5), stepcat(sequence(0, 1, 2, 3), sequence(0, 1, 2, 3).expand(0.5))),
+      );
+    });
+    it('can expand five things in half', () => {
+      expect(
+        sameFirst(
+          sequence(0, 1, 2, 3, 4).expand(1, 0.5),
+          stepcat(sequence(0, 1, 2, 3, 4), sequence(0, 1, 2, 3, 4).expand(0.5)),
+        ),
+      );
+    });
+  });
+  describe('stepJoin', () => {
+    it('can join a pattern with steps of 2', () => {
+      expect(
+        sameFirst(
+          sequence(pure(pure('a')), pure(pure('b').setSteps(2))).stepJoin(),
+          stepcat(pure('a'), pure('b').setSteps(2)),
+        ),
+      );
+    });
+    it('can join a pattern with steps of 0.5', () => {
+      expect(
+        sameFirst(
+          sequence(pure(pure('a')), pure(pure('b').setSteps(0.5))).stepJoin(),
+          stepcat(pure('a'), pure('b').setSteps(0.5)),
+        ),
+      );
+    });
+  });
+  describe('loopAt', () => {
+    it('maintains steps', () => {
+      expect(s('bev').chop(8).loopAt(2)._steps).toStrictEqual(Fraction(4));
+    });
+  });
+  describe('bite', () => {
+    it('works with uneven patterns', () => {
+      sameFirst(
+        fastcat(slowcat('a', 'b', 'c', 'd', 'e'), slowcat(1, 2, 3, 4, 5))
+          .bite(2, stepcat(pure(0), pure(1).expand(2)))
+          .fast(5),
+        stepcat(slowcat('a', 'b', 'c', 'd', 'e'), slowcat(1, 2, 3, 4, 5).expand(2)).fast(5),
+      );
+    });
+  });
+  describe('unjoin', () => {
+    it('destructures a pattern into subcycles', () => {
+      sameFirst(
+        fastcat('a', 'b', 'c', 'd')
+          .unjoin(fastcat(true, fastcat(true, true)))
+          .fmap(fast(2))
+          .join(),
+        fastcat('a', 'b', 'a', 'b', 'c', 'c', 'd', 'd'),
+      );
+    });
+  });
+  describe('into', () => {
+    it('applies a function to subcycles of a pattern', () => {
+      sameFirst(
+        fastcat('a', 'b', 'c', 'd').into(fastcat(fastcat('true', 'true'), 'true'), fast(2)),
+        fastcat('a', 'a', 'b', 'b', 'c', 'd', 'c', 'd'),
+      );
+    });
+  });
+  describe('chunkinto', () => {
+    it('chunks into subcycles', () => {
+      sameFirst(
+        fastcat('a', 'b', 'c').chunkInto(3, fast(2)).fast(3),
+        fastcat(fastcat('a', 'a'), 'b', 'c', 'a', fastcat('b', 'b'), 'c', 'a', 'b', fastcat('c', 'c')),
+      );
+    });
+  });
+  describe('chunkbackinto', () => {
+    it('chunks into subcycles backwards', () => {
+      sameFirst(
+        fastcat('a', 'b', 'c').chunkBackInto(3, fast(2)).fast(3),
+        fastcat('a', 'b', fastcat('c', 'c'), 'a', fastcat('b', 'b'), 'c', fastcat('a', 'a'), 'b', 'c'),
+      );
+    });
+  });
 });
diff --git a/packages/core/test/util.test.mjs b/packages/core/test/util.test.mjs
index 6b1053a3..d3033a82 100644
--- a/packages/core/test/util.test.mjs
+++ b/packages/core/test/util.test.mjs
@@ -1,26 +1,30 @@
 /*
 util.test.mjs - Tests for the core 'util' module
-Copyright (C) 2022 Strudel contributors - see 
+Copyright (C) 2022 Strudel contributors - see 
 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 .
 */
 
 import { pure } from '../pattern.mjs';
 import {
-  isNote,
-  tokenizeNote,
-  noteToMidi,
-  midiToFreq,
-  freqToMidi,
   _mod,
   compose,
+  flatten,
+  fractionalArgs,
+  freqToMidi,
   getFrequency,
   getPlayableNoteValue,
-  parseNumeral,
-  parseFractional,
+  isNote,
+  midiToFreq,
+  noteToMidi,
   numeralArgs,
-  fractionalArgs,
+  parseFractional,
+  parseNumeral,
+  rotate,
+  splitAt,
+  tokenizeNote,
+  zipWith,
 } from '../util.mjs';
-import { describe, it, expect } from 'vitest';
+import { describe, expect, it } from 'vitest';
 
 describe('isNote', () => {
   it('should recognize notes without accidentals', () => {
@@ -233,3 +237,46 @@ describe('fractionalArgs', () => {
     expect(add('q', 2)).toBe(2.25);
   });
 });
+
+describe('rotate', () => {
+  it('should rotate array to the left', () => {
+    expect(rotate([0, 1, 2, 3], 2)).toStrictEqual([2, 3, 0, 1]);
+    expect(rotate([0, 1, 2, 3], 0)).toStrictEqual([0, 1, 2, 3]);
+    expect(rotate([0, 1, 2, 3], -3)).toStrictEqual([1, 2, 3, 0]);
+    expect(rotate([0, 1, 2, 3], 3)).toStrictEqual([3, 0, 1, 2]);
+    expect(rotate([0], 3)).toStrictEqual([0]);
+    expect(rotate([], 3)).toStrictEqual([]);
+  });
+});
+
+describe('flatten', () => {
+  it('should flatten array by one level', () => {
+    expect(flatten([0, 1, 2, 3])).toStrictEqual([0, 1, 2, 3]);
+    expect(flatten([0, 1, [2, 3]])).toStrictEqual([0, 1, 2, 3]);
+    expect(flatten([0, [1, [2, 3]]])).toStrictEqual([0, 1, [2, 3]]);
+    expect(flatten([0])).toStrictEqual([0]);
+    expect(flatten([])).toStrictEqual([]);
+  });
+});
+
+describe('splitAt', () => {
+  it('should split array into two', () => {
+    expect(splitAt(2, [0, 1, 2, 3])).toStrictEqual([
+      [0, 1],
+      [2, 3],
+    ]);
+    expect(splitAt(0, [0, 1, 2, 3])).toStrictEqual([[], [0, 1, 2, 3]]);
+    expect(splitAt(-3, [0, 1, 2, 3])).toStrictEqual([[0], [1, 2, 3]]);
+    expect(splitAt(3, [0, 1, 2, 3])).toStrictEqual([[0, 1, 2], [3]]);
+  });
+});
+
+describe('zipWith', () => {
+  it('should use the function to combine the two arrays element-wise', () => {
+    expect(zipWith((a, b) => a + b, [0, 1, 2, 3], [0, 1, 2, 3])).toStrictEqual([0, 2, 4, 6]);
+    expect(zipWith((a, b) => a + b, [0, 1, 2, 3], [0, 1, 2])).toStrictEqual([0, 2, 4, NaN]);
+    expect(zipWith((a, b) => a + b, [0, 1, 2], [0, 1, 2, 3])).toStrictEqual([0, 2, 4]);
+    expect(zipWith((a) => a, [0, 1, 2], [1, 2, 3, 0])).toStrictEqual([0, 1, 2]);
+    expect(zipWith((a, b) => b, [0, 1, 2], [1, 2, 3, 0])).toStrictEqual([1, 2, 3]);
+  });
+});
diff --git a/packages/core/test/value.test.mjs b/packages/core/test/value.test.mjs
index 87cba57d..35d9f5e1 100644
--- a/packages/core/test/value.test.mjs
+++ b/packages/core/test/value.test.mjs
@@ -1,6 +1,6 @@
 /*
 value.test.mjs - 
-Copyright (C) 2022 Strudel contributors - see 
+Copyright (C) 2025 Strudel contributors - see 
 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 .
 */
 
diff --git a/packages/core/timespan.mjs b/packages/core/timespan.mjs
index 4cbfb999..0dbc74fc 100644
--- a/packages/core/timespan.mjs
+++ b/packages/core/timespan.mjs
@@ -1,6 +1,6 @@
 /*
 timespan.mjs - 
-Copyright (C) 2022 Strudel contributors - see 
+Copyright (C) 2022 Strudel contributors - see 
 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 .
 */
 
diff --git a/packages/core/ui.mjs b/packages/core/ui.mjs
index 86ceb286..5a2c54a3 100644
--- a/packages/core/ui.mjs
+++ b/packages/core/ui.mjs
@@ -1,6 +1,6 @@
 /*
 ui.mjs - 
-Copyright (C) 2022 Strudel contributors - see 
+Copyright (C) 2022 Strudel contributors - see 
 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 .
 */
 
diff --git a/packages/core/util.mjs b/packages/core/util.mjs
index 03f8b410..756fac8e 100644
--- a/packages/core/util.mjs
+++ b/packages/core/util.mjs
@@ -1,6 +1,6 @@
 /*
 util.mjs - 
-Copyright (C) 2022 Strudel contributors - see 
+Copyright (C) 2022 Strudel contributors - see 
 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 .
 */
 
@@ -91,6 +91,9 @@ export const midi2note = (n) => {
 // modulo that works with negative numbers e.g. _mod(-1, 3) = 2. Works on numbers (rather than patterns of numbers, as @mod@ from pattern.mjs does)
 export const _mod = (n, m) => ((n % m) + m) % m;
 
+// average numbers in an array
+export const averageArray = (arr) => arr.reduce((a, b) => a + b) / arr.length;
+
 export function nanFallback(value, fallback = 0) {
   if (isNaN(Number(value))) {
     logger(`"${value}" is not a number, falling back to ${fallback}`, 'warning');
@@ -159,6 +162,7 @@ export const compose = (...funcs) => pipe(...funcs.reverse());
 // Removes 'None' values from given list
 export const removeUndefineds = (xs) => xs.filter((x) => x != undefined);
 
+// flattens by one level
 export const flatten = (arr) => [].concat(...arr);
 
 export const id = (a) => a;
@@ -234,6 +238,7 @@ export const splitAt = function (index, value) {
   return [value.slice(0, index), value.slice(index)];
 };
 
+// Uses the function f to combine the arrays xs, ys element-wise
 export const zipWith = (f, xs, ys) => xs.map((n, i) => f(n, ys[i]));
 
 export const pairs = function (xs) {
@@ -360,6 +365,108 @@ export function objectMap(obj, fn) {
   }
   return Object.fromEntries(Object.entries(obj).map(([k, v], i) => [k, fn(v, k, i)]));
 }
+export function cycleToSeconds(cycle, cps) {
+  return cycle / cps;
+}
+
+// utility for averaging two clocks together to account for drift
+export class ClockCollator {
+  constructor({
+    getTargetClockTime = getUnixTimeSeconds,
+    weight = 16,
+    offsetDelta = 0.005,
+    checkAfterTime = 2,
+    resetAfterTime = 8,
+  }) {
+    this.offsetTime;
+    this.timeAtPrevOffsetSample;
+    this.prevOffsetTimes = [];
+    this.getTargetClockTime = getTargetClockTime;
+    this.weight = weight;
+    this.offsetDelta = offsetDelta;
+    this.checkAfterTime = checkAfterTime;
+    this.resetAfterTime = resetAfterTime;
+    this.reset = () => {
+      this.prevOffsetTimes = [];
+      this.offsetTime = null;
+      this.timeAtPrevOffsetSample = null;
+    };
+  }
+  calculateOffset(currentTime) {
+    const targetClockTime = this.getTargetClockTime();
+    const diffBetweenTimeSamples = targetClockTime - this.timeAtPrevOffsetSample;
+    const newOffsetTime = targetClockTime - currentTime;
+    // recalcuate the diff from scratch if the clock has been paused for some time.
+    if (diffBetweenTimeSamples > this.resetAfterTime) {
+      this.reset();
+    }
+
+    if (this.offsetTime == null) {
+      this.offsetTime = newOffsetTime;
+    }
+    this.prevOffsetTimes.push(newOffsetTime);
+    if (this.prevOffsetTimes.length > this.weight) {
+      this.prevOffsetTimes.shift();
+    }
+
+    // after X time has passed, the average of the previous weight offset times is calculated and used as a stable reference
+    // for calculating the timestamp
+    if (this.timeAtPrevOffsetSample == null || diffBetweenTimeSamples > this.checkAfterTime) {
+      this.timeAtPrevOffsetSample = targetClockTime;
+      const rollingOffsetTime = averageArray(this.prevOffsetTimes);
+      //when the clock offsets surpass the delta, set the new reference time
+      if (Math.abs(rollingOffsetTime - this.offsetTime) > this.offsetDelta) {
+        this.offsetTime = rollingOffsetTime;
+      }
+    }
+
+    return this.offsetTime;
+  }
+
+  calculateTimestamp(currentTime, targetTime) {
+    return this.calculateOffset(currentTime) + targetTime;
+  }
+}
+
+export function getPerformanceTimeSeconds() {
+  return performance.now() * 0.001;
+}
+
+function getUnixTimeSeconds() {
+  return Date.now() * 0.001;
+}
+
+export const keyAlias = new Map([
+  ['control', 'Control'],
+  ['ctrl', 'Control'],
+  ['alt', 'Alt'],
+  ['shift', 'Shift'],
+  ['down', 'ArrowDown'],
+  ['up', 'ArrowUp'],
+  ['left', 'ArrowLeft'],
+  ['right', 'ArrowRight'],
+]);
+let keyState;
+
+export function getCurrentKeyboardState() {
+  if (keyState == null) {
+    if (typeof window === 'undefined') {
+      return;
+    }
+    keyState = {};
+    // Listen for the keydown event to mark the key as pressed
+    window.addEventListener('keydown', (event) => {
+      keyState[event.key] = true; // Mark the key as pressed
+    });
+
+    // Listen for the keyup event to mark the key as released
+    window.addEventListener('keyup', (event) => {
+      keyState[event.key] = false; // Mark the key as released
+    });
+  }
+
+  return { ...keyState }; // Return a shallow copy of the key state object
+}
 
 // Floating point versions, see Fraction for rational versions
 // // greatest common divisor
diff --git a/packages/core/value.mjs b/packages/core/value.mjs
index ef98bc37..9496405e 100644
--- a/packages/core/value.mjs
+++ b/packages/core/value.mjs
@@ -1,6 +1,6 @@
 /*
 value.mjs - 
-Copyright (C) 2022 Strudel contributors - see 
+Copyright (C) 2022 Strudel contributors - see 
 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 .
 */
 
@@ -9,7 +9,7 @@ import { logger } from './logger.mjs';
 
 export function unionWithObj(a, b, func) {
   if (b?.value !== undefined && Object.keys(b).length === 1) {
-    // https://github.com/tidalcycles/strudel/issues/1026
+    // https://codeberg.org/uzu/strudel/issues/1026
     logger(`[warn]: Can't do arithmetic on control pattern.`);
     return a;
   }
diff --git a/packages/core/vite.config.js b/packages/core/vite.config.js
index 5df3edc1..718798fb 100644
--- a/packages/core/vite.config.js
+++ b/packages/core/vite.config.js
@@ -4,6 +4,7 @@ import { resolve } from 'path';
 
 // https://vitejs.dev/config/
 export default defineConfig({
+  base: './',
   plugins: [],
   build: {
     lib: {
diff --git a/packages/csound/package.json b/packages/csound/package.json
index e0811208..04a5ff24 100644
--- a/packages/csound/package.json
+++ b/packages/csound/package.json
@@ -1,6 +1,6 @@
 {
   "name": "@strudel/csound",
-  "version": "1.0.1",
+  "version": "1.2.3",
   "description": "csound bindings for strudel",
   "main": "index.mjs",
   "type": "module",
@@ -13,7 +13,7 @@
   },
   "repository": {
     "type": "git",
-    "url": "git+https://github.com/tidalcycles/strudel.git"
+    "url": "git+https://codeberg.org/uzu/strudel.git"
   },
   "keywords": [
     "tidalcycles",
@@ -28,15 +28,15 @@
   ],
   "license": "AGPL-3.0-or-later",
   "bugs": {
-    "url": "https://github.com/tidalcycles/strudel/issues"
+    "url": "https://codeberg.org/uzu/strudel/issues"
   },
-  "homepage": "https://github.com/tidalcycles/strudel#readme",
+  "homepage": "https://codeberg.org/uzu/strudel#readme",
   "dependencies": {
     "@csound/browser": "6.18.7",
     "@strudel/core": "workspace:*",
     "@strudel/webaudio": "workspace:*"
   },
   "devDependencies": {
-    "vite": "^5.0.10"
+    "vite": "^6.0.11"
   }
 }
diff --git a/packages/desktopbridge/index.mjs b/packages/desktopbridge/index.mjs
index 591bbe34..ffb88783 100644
--- a/packages/desktopbridge/index.mjs
+++ b/packages/desktopbridge/index.mjs
@@ -1,6 +1,6 @@
 /*
 index.mjs - 
-Copyright (C) 2022 Strudel contributors - see 
+Copyright (C) 2022 Strudel contributors - see 
 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 .
 */
 
diff --git a/packages/desktopbridge/oscbridge.mjs b/packages/desktopbridge/oscbridge.mjs
index 81366367..9bead6d1 100644
--- a/packages/desktopbridge/oscbridge.mjs
+++ b/packages/desktopbridge/oscbridge.mjs
@@ -1,43 +1,36 @@
-import { parseNumeral, Pattern, getEventOffsetMs } from '@strudel/core';
+import { Pattern, ClockCollator } from '@strudel/core';
+import { parseControlsFromHap } from 'node_modules/@strudel/osc/osc.mjs';
 import { Invoke } from './utils.mjs';
 
-Pattern.prototype.osc = function () {
-  return this.onTrigger(async (time, hap, currentTime, cps = 1, targetTime) => {
-    hap.ensureObjectValue();
-    const cycle = hap.wholeOrPart().begin.valueOf();
-    const delta = hap.duration.valueOf();
-    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));
+const collator = new ClockCollator({});
 
-    const params = [];
+export async function oscTriggerTauri(t_deprecate, hap, currentTime, cps = 1, targetTime) {
+  const controls = parseControlsFromHap(hap, cps);
+  const params = [];
+  const timestamp = collator.calculateTimestamp(currentTime, targetTime);
 
-    const timestamp = Math.round(Date.now() + getEventOffsetMs(targetTime, currentTime));
+  Object.keys(controls).forEach((key) => {
+    const val = controls[key];
+    const value = typeof val === 'number' ? val.toString() : val;
 
-    Object.keys(controls).forEach((key) => {
-      const val = controls[key];
-      const value = typeof val === 'number' ? val.toString() : val;
-
-      if (value == null) {
-        return;
-      }
-      params.push({
-        name: key,
-        value,
-        valueisnumber: typeof val === 'number',
-      });
+    if (value == null) {
+      return;
+    }
+    params.push({
+      name: key,
+      value,
+      valueisnumber: typeof val === 'number',
     });
-
-    const messagesfromjs = [];
-    if (params.length) {
-      messagesfromjs.push({ target: '/dirt/play', timestamp, params });
-    }
-
-    if (messagesfromjs.length) {
-      setTimeout(() => {
-        Invoke('sendosc', { messagesfromjs });
-      });
-    }
   });
+
+  if (params.length === 0) {
+    return;
+  }
+  const message = { target: '/dirt/play', timestamp, params };
+  setTimeout(() => {
+    Invoke('sendosc', { messagesfromjs: [message] });
+  });
+}
+Pattern.prototype.osc = function () {
+  return this.onTrigger(oscTriggerTauri);
 };
diff --git a/packages/desktopbridge/package.json b/packages/desktopbridge/package.json
index bd2d5980..a01ec1f8 100644
--- a/packages/desktopbridge/package.json
+++ b/packages/desktopbridge/package.json
@@ -1,29 +1,29 @@
 {
-    "name": "@strudel/desktopbridge",
-    "version": "0.1.0",
-    "private": true,
-    "description": "tools/shims for communicating between the JS and Tauri (Rust) sides of the Studel desktop app",
-    "main": "index.mjs",
-    "type": "module",
-    "repository": {
-      "type": "git",
-      "url": "git+https://github.com/tidalcycles/strudel.git"
-    },
-    "keywords": [
-      "tidalcycles",
-      "strudel",
-      "pattern",
-      "livecoding",
-      "algorave"
-    ],
-    "author": "Jade Rowland ",
-    "license": "AGPL-3.0-or-later",
-    "bugs": {
-      "url": "https://github.com/tidalcycles/strudel/issues"
-    },
-    "dependencies": {
-        "@strudel/core": "workspace:*",
-        "@tauri-apps/api": "^1.5.3"
-      },
-    "homepage": "https://github.com/tidalcycles/strudel#readme"
-  }
\ No newline at end of file
+  "name": "@strudel/desktopbridge",
+  "version": "0.1.0",
+  "private": true,
+  "description": "tools/shims for communicating between the JS and Tauri (Rust) sides of the Studel desktop app",
+  "main": "index.mjs",
+  "type": "module",
+  "repository": {
+    "type": "git",
+    "url": "git+https://codeberg.org/uzu/strudel.git"
+  },
+  "keywords": [
+    "tidalcycles",
+    "strudel",
+    "pattern",
+    "livecoding",
+    "algorave"
+  ],
+  "author": "Jade Rowland ",
+  "license": "AGPL-3.0-or-later",
+  "bugs": {
+    "url": "https://codeberg.org/uzu/strudel/issues"
+  },
+  "dependencies": {
+    "@strudel/core": "workspace:*",
+    "@tauri-apps/api": "^2.2.0"
+  },
+  "homepage": "https://codeberg.org/uzu/strudel#readme"
+}
diff --git a/packages/desktopbridge/utils.mjs b/packages/desktopbridge/utils.mjs
index c4c69af5..c5be9411 100644
--- a/packages/desktopbridge/utils.mjs
+++ b/packages/desktopbridge/utils.mjs
@@ -1,4 +1,4 @@
-import { invoke } from '@tauri-apps/api/tauri';
+import { invoke } from '@tauri-apps/api/core';
 
 export const Invoke = invoke;
 export const isTauri = () => window.__TAURI_IPC__ != null;
diff --git a/packages/draw/draw.mjs b/packages/draw/draw.mjs
index cfd2ce75..a429395f 100644
--- a/packages/draw/draw.mjs
+++ b/packages/draw/draw.mjs
@@ -1,6 +1,6 @@
 /*
 draw.mjs - 
-Copyright (C) 2022 Strudel contributors - see 
+Copyright (C) 2022 Strudel contributors - see 
 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 .
 */
 
@@ -26,7 +26,7 @@ export const getDrawContext = (id = 'test-canvas', options) => {
       }, 200);
     });
   }
-  return canvas.getContext(contextType);
+  return canvas.getContext(contextType, { willReadFrequently: true });
 };
 
 let animationFrames = {};
@@ -36,8 +36,8 @@ function stopAnimationFrame(id) {
     delete animationFrames[id];
   }
 }
-function stopAllAnimations() {
-  Object.keys(animationFrames).forEach((id) => stopAnimationFrame(id));
+function stopAllAnimations(replID) {
+  Object.keys(animationFrames).forEach((id) => (!replID || id.startsWith(replID)) && stopAnimationFrame(id));
 }
 
 let memory = {};
@@ -72,18 +72,25 @@ Pattern.prototype.draw = function (fn, options) {
   return this;
 };
 
-export const cleanupDraw = (clearScreen = true) => {
+export const cleanupDraw = (clearScreen = true, id) => {
   const ctx = getDrawContext();
-  clearScreen && ctx.clearRect(0, 0, ctx.canvas.width, ctx.canvas.width);
-  stopAllAnimations();
-  if (window.strudelScheduler) {
-    clearInterval(window.strudelScheduler);
-  }
+  clearScreen && ctx.clearRect(0, 0, ctx.canvas.width, ctx.canvas.height);
+  stopAllAnimations(id);
 };
 
-Pattern.prototype.onPaint = function () {
-  console.warn('[draw] onPaint was not overloaded. Some drawings might not work');
-  return this;
+Pattern.prototype.onPaint = function (painter) {
+  return this.withState((state) => {
+    if (!state.controls.painters) {
+      state.controls.painters = [];
+    }
+    state.controls.painters.push(painter);
+  });
+};
+
+Pattern.prototype.getPainters = function () {
+  let painters = [];
+  this.queryArc(0, 0, { painters });
+  return painters;
 };
 
 // const round = (x) => Math.round(x * 1000) / 1000;
@@ -122,6 +129,7 @@ export class Drawer {
     this.visibleHaps = [];
     this.lastFrame = null;
     this.drawTime = drawTime;
+    this.painters = [];
     this.framer = new Framer(
       () => {
         if (!this.scheduler) {
@@ -142,11 +150,11 @@ export class Drawer {
         this.lastFrame = phase;
         this.visibleHaps = (this.visibleHaps || [])
           // filter out haps that are too far in the past (think left edge of screen for pianoroll)
-          .filter((h) => h.endClipped >= phase - lookbehind - lookahead)
+          .filter((h) => h.whole && h.endClipped >= phase - lookbehind - lookahead)
           // add new haps with onset (think right edge bars scrolling in)
           .concat(haps.filter((h) => h.hasOnset()));
         const time = phase - lookahead;
-        onDraw(this.visibleHaps, time, this);
+        onDraw(this.visibleHaps, time, this, this.painters);
       },
       (err) => {
         console.warn('draw error', err);
@@ -164,11 +172,13 @@ export class Drawer {
     t = t ?? scheduler.now();
     this.scheduler = scheduler;
     let [_, lookahead] = this.drawTime;
+    // +0.1 = workaround for weird holes in query..
     const [begin, end] = [Math.max(t, 0), t + lookahead + 0.1];
     // remove all future haps
-    this.visibleHaps = this.visibleHaps.filter((h) => h.whole.begin < t);
+    this.visibleHaps = this.visibleHaps.filter((h) => h.whole?.begin < t);
+    this.painters = []; // will get populated by .onPaint calls attached to the pattern
     // query future haps
-    const futureHaps = scheduler.pattern.queryArc(begin, end); // +0.1 = workaround for weird holes in query..
+    const futureHaps = scheduler.pattern.queryArc(begin, end, { painters: this.painters });
     // append future haps
     this.visibleHaps = this.visibleHaps.concat(futureHaps);
   }
@@ -191,7 +201,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..ee1b8dd0 100644
--- a/packages/draw/package.json
+++ b/packages/draw/package.json
@@ -1,6 +1,6 @@
 {
   "name": "@strudel/draw",
-  "version": "1.0.1",
+  "version": "1.2.2",
   "description": "Helpers for drawing with Strudel",
   "main": "index.mjs",
   "type": "module",
@@ -13,7 +13,7 @@
   },
   "repository": {
     "type": "git",
-    "url": "git+https://github.com/tidalcycles/strudel.git"
+    "url": "git+https://codeberg.org/uzu/strudel.git"
   },
   "keywords": [
     "titdalcycles",
@@ -25,13 +25,13 @@
   "author": "Felix Roos ",
   "license": "AGPL-3.0-or-later",
   "bugs": {
-    "url": "https://github.com/tidalcycles/strudel/issues"
+    "url": "https://codeberg.org/uzu/strudel/issues"
   },
-  "homepage": "https://github.com/tidalcycles/strudel#readme",
+  "homepage": "https://codeberg.org/uzu/strudel#readme",
   "dependencies": {
     "@strudel/core": "workspace:*"
   },
   "devDependencies": {
-    "vite": "^5.0.10"
+    "vite": "^6.0.11"
   }
 }
diff --git a/packages/draw/pianoroll.mjs b/packages/draw/pianoroll.mjs
index 1bdf81c4..1cf218fa 100644
--- a/packages/draw/pianoroll.mjs
+++ b/packages/draw/pianoroll.mjs
@@ -1,10 +1,10 @@
 /*
 pianoroll.mjs - 
-Copyright (C) 2022 Strudel contributors - see 
+Copyright (C) 2022 Strudel contributors - see 
 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 .
 */
 
-import { Pattern, noteToMidi, freqToMidi } from '@strudel/core';
+import { Pattern, noteToMidi, freqToMidi, isPattern } from '@strudel/core';
 import { getTheme, getDrawContext } from './draw.mjs';
 
 const scale = (normalized, min, max) => normalized * (max - min) + min;
@@ -36,37 +36,12 @@ const getValue = (e) => {
   return value;
 };
 
-Pattern.prototype.pianoroll = function (options = {}) {
-  let { cycles = 4, playhead = 0.5, overscan = 0, hideNegative = false, ctx = getDrawContext(), id = 1 } = options;
-
-  let from = -cycles * playhead;
-  let to = cycles * (1 - playhead);
-  const inFrame = (hap, t) => (!hideNegative || hap.whole.begin >= 0) && hap.isWithinTime(t + from, t + to);
-  this.draw(
-    (haps, time) => {
-      pianoroll({
-        ...options,
-        time,
-        ctx,
-        haps: haps.filter((hap) => inFrame(hap, time)),
-      });
-    },
-    {
-      lookbehind: from - overscan,
-      lookahead: to + overscan,
-      id,
-    },
-  );
-  return this;
-};
-
-// this function allows drawing a pianoroll without ties to Pattern.prototype
-// it will probably replace the above in the future
-
 /**
- * Displays a midi-style piano roll
+ * Visualises a pattern as a scrolling 'pianoroll', displayed in the background of the editor. To show a pianoroll for all running patterns, use `all(pianoroll)`. To have a pianoroll appear below
+ * a pattern instead, prefix with `_`, e.g.: `sound("bd sd")._pianoroll()`.
  *
  * @name pianoroll
+ * @synonyms punchcard
  * @param {Object} options Object containing all the optional following parameters as key value pairs:
  * @param {integer} cycles number of cycles to be displayed at the same time - defaults to 4
  * @param {number} playhead location of the active notes on the time axis - 0 to 1, defaults to 0.5
@@ -92,11 +67,51 @@ Pattern.prototype.pianoroll = function (options = {}) {
  * @param {integer} minMidi minimum note value to display on the value axis - defaults to 10
  * @param {integer} maxMidi maximum note value to display on the value axis - defaults to 90
  * @param {boolean} autorange automatically calculate the minMidi and maxMidi parameters - 0 by default
- *
+ * @see _pianoroll
  * @example
- * note("C2 A2 G2").euclid(5,8).s('piano').clip(1).color('salmon').pianoroll({vertical:1, labels:1})
+ * note("c2 a2 eb2")
+ * .euclid(5,8)
+ * .s('sawtooth')
+ * .lpenv(4).lpf(300)
+ * .pianoroll({ labels: 1 })
  */
-export function pianoroll({
+
+Pattern.prototype.pianoroll = function (options = {}) {
+  let { cycles = 4, playhead = 0.5, overscan = 0, hideNegative = false, ctx = getDrawContext(), id = 1 } = options;
+
+  let from = -cycles * playhead;
+  let to = cycles * (1 - playhead);
+  const inFrame = (hap, t) => (!hideNegative || hap.whole.begin >= 0) && hap.isWithinTime(t + from, t + to);
+  this.draw(
+    (haps, time) => {
+      __pianoroll({
+        ...options,
+        time,
+        ctx,
+        haps: haps.filter((hap) => inFrame(hap, time)),
+      });
+    },
+    {
+      lookbehind: from - overscan,
+      lookahead: to + overscan,
+      id,
+    },
+  );
+  return this;
+};
+
+export function pianoroll(arg) {
+  if (isPattern(arg)) {
+    // Single argument as a pattern
+    // (to support `all(pianoroll)`)
+    return arg.pianoroll();
+  }
+  // Single argument with option - return function to get the pattern
+  // (to support `all(pianoroll(options))`)
+  return (pat) => pat.pianoroll(arg);
+}
+
+export function __pianoroll({
   time,
   haps,
   cycles = 4,
@@ -108,12 +123,12 @@ export function pianoroll({
   active = getTheme().foreground,
   background = 'transparent',
   smear = 0,
-  playheadColor = 'white',
+  playheadColor = getTheme().foreground,
   minMidi = 10,
   maxMidi = 90,
   autorange = 0,
   timeframe: timeframeProp,
-  fold = 0,
+  fold = 1,
   vertical = 0,
   labels = false,
   fill = 1,
@@ -266,14 +281,14 @@ export function getDrawOptions(drawTime, options = {}) {
   let [lookbehind, lookahead] = drawTime;
   lookbehind = Math.abs(lookbehind);
   const cycles = lookahead + lookbehind;
-  const playhead = lookbehind / cycles;
+  const playhead = cycles !== 0 ? lookbehind / cycles : 0;
   return { fold: 1, ...options, cycles, playhead };
 }
 
 export const getPunchcardPainter =
   (options = {}) =>
   (ctx, time, haps, drawTime) =>
-    pianoroll({ ctx, time, haps, ...getDrawOptions(drawTime, options) });
+    __pianoroll({ ctx, time, haps, ...getDrawOptions(drawTime, options) });
 
 Pattern.prototype.punchcard = function (options) {
   return this.onPaint(getPunchcardPainter(options));
@@ -297,5 +312,5 @@ Pattern.prototype.wordfall = function (options) {
 
 export function drawPianoroll(options) {
   const { drawTime, ...rest } = options;
-  pianoroll({ ...getDrawOptions(drawTime), ...rest });
+  __pianoroll({ ...getDrawOptions(drawTime), ...rest });
 }
diff --git a/packages/draw/pitchwheel.mjs b/packages/draw/pitchwheel.mjs
index 8d3cfe61..ba76df07 100644
--- a/packages/draw/pitchwheel.mjs
+++ b/packages/draw/pitchwheel.mjs
@@ -113,6 +113,23 @@ export function pitchwheel({
   return;
 }
 
+/**
+ * Renders a pitch circle to visualize frequencies within one octave
+ * @name pitchwheel
+ * @param {number} hapcircles
+ * @param {number} circle
+ * @param {number} edo
+ * @param {string} root
+ * @param {number} thickness
+ * @param {number} hapRadius
+ * @param {string} mode
+ * @param {number} margin
+ * @example
+ * n("0 .. 12").scale("C:chromatic")
+ * .s("sawtooth")
+ * .lpf(500)
+ * ._pitchwheel()
+ */
 Pattern.prototype.pitchwheel = function (options = {}) {
   let { ctx = getDrawContext(), id = 1 } = options;
   return this.tag(id).onPaint((_, time, haps) =>
diff --git a/packages/draw/spiral.mjs b/packages/draw/spiral.mjs
index 22f93f5d..cebf3d37 100644
--- a/packages/draw/spiral.mjs
+++ b/packages/draw/spiral.mjs
@@ -125,6 +125,33 @@ function drawSpiral(options) {
   });
 }
 
+/**
+ * Displays a spiral visual.
+ *
+ * @name spiral
+ * @param {Object} options Object containing all the optional following parameters as key value pairs:
+ * @param {number} stretch controls the rotations per cycle ratio, where 1 = 1 cycle / 360 degrees
+ * @param {number} size the diameter of the spiral
+ * @param {number} thickness line thickness
+ * @param {string} cap style of line ends: butt (default), round, square
+ * @param {string} inset number of rotations before spiral starts (default 3)
+ * @param {string} playheadColor color of playhead, defaults to white
+ * @param {number} playheadLength length of playhead in rotations, defaults to 0.02
+ * @param {number} playheadThickness thickness of playheadrotations, defaults to thickness
+ * @param {number} padding space around spiral
+ * @param {number} steady steadyness of spiral vs playhead. 1 = spiral doesn't move, playhead does.
+ * @param {number} activeColor color of active segment. defaults to foreground of theme
+ * @param {number} inactiveColor color of inactive segments. defaults to gutterForeground of theme
+ * @param {boolean} colorizeInactive wether or not to colorize inactive segments, defaults to 0
+ * @param {boolean} fade wether or not past and future should fade out. defaults to 1
+ * @param {boolean} logSpiral wether or not the spiral should be logarithmic. defaults to 0
+ * @example
+ * note("c2 a2 eb2")
+ * .euclid(5,8)
+ * .s('sawtooth')
+ * .lpenv(4).lpf(300)
+ * ._spiral({ steady: .96 })
+ */
 Pattern.prototype.spiral = function (options = {}) {
   return this.onPaint((ctx, time, haps, drawTime) => drawSpiral({ ctx, time, haps, drawTime, ...options }));
 };
diff --git a/packages/embed/package.json b/packages/embed/package.json
index 55a9f0a5..a0cc33de 100644
--- a/packages/embed/package.json
+++ b/packages/embed/package.json
@@ -1,12 +1,12 @@
 {
   "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",
   "repository": {
     "type": "git",
-    "url": "git+https://github.com/tidalcycles/strudel.git"
+    "url": "git+https://codeberg.org/uzu/strudel.git"
   },
   "keywords": [
     "tidalcycles",
@@ -18,7 +18,7 @@
   "author": "Felix Roos ",
   "license": "AGPL-3.0-or-later",
   "bugs": {
-    "url": "https://github.com/tidalcycles/strudel/issues"
+    "url": "https://codeberg.org/uzu/strudel/issues"
   },
-  "homepage": "https://github.com/tidalcycles/strudel#readme"
+  "homepage": "https://codeberg.org/uzu/strudel#readme"
 }
diff --git a/packages/gamepad/README.md b/packages/gamepad/README.md
new file mode 100644
index 00000000..239353fb
--- /dev/null
+++ b/packages/gamepad/README.md
@@ -0,0 +1,93 @@
+# @strudel/gamepad
+
+This package adds gamepad input functionality to strudel Patterns.
+
+## Install
+
+```sh
+npm i @strudel/gamepad --save
+```
+
+## Usage
+
+```javascript
+import { gamepad } from '@strudel/gamepad';
+
+// Initialize gamepad (optional index parameter, defaults to 0)
+const pad = gamepad(0);
+
+// Use gamepad inputs in patterns
+const pattern = sequence([
+  // Button inputs
+  pad.a,        // A button value (0-1)
+  pad.tglA,     // A button toggle (0 or 1)
+  
+  // Analog stick inputs
+  pad.x1,       // Left stick X (0-1)
+  pad.x1_2,     // Left stick X (-1 to 1)
+]);
+```
+
+## Available Controls
+
+### Buttons
+- Face Buttons
+  - `a`, `b`, `x`, `y` (or uppercase `A`, `B`, `X`, `Y`)
+  - Toggle versions: `tglA`, `tglB`, `tglX`, `tglY`
+- Shoulder Buttons
+  - `lb`, `rb`, `lt`, `rt` (or uppercase `LB`, `RB`, `LT`, `RT`)
+  - Toggle versions: `tglLB`, `tglRB`, `tglLT`, `tglRT`
+- D-Pad
+  - `up`, `down`, `left`, `right` (or `u`, `d`, `l`, `r` or uppercase)
+  - Toggle versions: `tglUp`, `tglDown`, `tglLeft`, `tglRight`(or `tglU`, `tglD`, `tglL`, `tglR`)
+
+### Analog Sticks
+- Left Stick
+  - `x1`, `y1` (0 to 1 range)
+  - `x1_2`, `y1_2` (-1 to 1 range)
+- Right Stick
+  - `x2`, `y2` (0 to 1 range)
+  - `x2_2`, `y2_2` (-1 to 1 range)
+
+## Examples
+
+```javascript
+// Use button values to control amplitude
+$: sequence([
+  s("bd").gain(pad.X),    // X button controls gain
+  s("[hh oh]").gain(pad.tglY),    // Y button toggles gain
+]);
+
+// Use analog stick for continuous control
+$: note("c4*4".add(pad.y1_2.range(-24,24))) // Left stick Y controls pitch shift
+  .pan(pad.x1_2);          // Left stick X controls panning
+
+// Use toggle buttons to switch patterns on/off
+
+// Define button sequences
+const HADOKEN = [
+  'd',               // Down
+  'r',               // Right
+  'a',               // A
+];
+
+const KONAMI = 'uuddlrlrba' //Konami Code ↑↑↓↓←→←→BA
+
+// Add these lines to enable buttons(but why?)
+$:pad.D.segment(16).gain(0)
+$:pad.R.segment(16).gain(0)
+$:pad.A.segment(16).gain(0)
+
+// Check button sequence (returns 1 when detected, 0 when not within last 1 second)
+$: sound("hadoken").gain(pad.checkSequence(HADOKEN))
+
+```
+
+## Multiple Gamepads
+
+You can connect multiple gamepads by specifying the gamepad index:
+
+```javascript
+const pad1 = gamepad(0);  // First gamepad
+const pad2 = gamepad(1);  // Second gamepad
+```
diff --git a/packages/gamepad/docs/gamepad.mdx b/packages/gamepad/docs/gamepad.mdx
new file mode 100644
index 00000000..e2da594e
--- /dev/null
+++ b/packages/gamepad/docs/gamepad.mdx
@@ -0,0 +1,118 @@
+import { MiniRepl } from '../../../website/src/docs/MiniRepl';
+
+# Gamepad
+
+The Gamepad module allows you to integrate gamepad input functionality into your musical patterns. This can be particularly useful for live performances or interactive installations where you want to manipulate sounds using a game controller.
+
+## Getting Started
+
+Initialize a gamepad by calling the gamepad() function with an optional index parameter.
+
+
+
+## Available Controls
+
+The gamepad module provides access to buttons and analog sticks as normalized signals (0-1) that can modulate your patterns.
+
+### Buttons
+
+| Type             | Controls                                                                                       |
+| ---------------- | ---------------------------------------------------------------------------------------------- |
+| Face Buttons     | `a`, `b`, `x`, `y` (or uppercase `A`, `B`, `X`, `Y`)                                           |
+|                  | Toggle versions: `tglA`, `tglB`, `tglX`, `tglY`                                                |
+| Shoulder Buttons | `lb`, `rb`, `lt`, `rt` (or uppercase `LB`, `RB`, `LT`, `RT`)                                   |
+|                  | Toggle versions: `tglLB`, `tglRB`, `tglLT`, `tglRT`                                            |
+| D-Pad            | `up`, `down`, `left`, `right` (or `u`, `d`, `l`, `r` or uppercase)                             |
+|                  | Toggle versions: `tglUp`, `tglDown`, `tglLeft`, `tglRight` (or `tglU`, `tglD`, `tglL`, `tglR`) |
+
+### Analog Sticks
+
+| Stick       | Controls                       |
+| ----------- | ------------------------------ |
+| Left Stick  | `x1`, `y1` (0 to 1 range)      |
+|             | `x1_2`, `y1_2` (-1 to 1 range) |
+| Right Stick | `x2`, `y2` (0 to 1 range)      |
+|             | `x2_2`, `y2_2` (-1 to 1 range) |
+
+### Button Sequence
+
+| Stick           | Controls                                |
+| --------------- | --------------------------------------- |
+| Button Sequence | `btnSequence()`, `btnSeq()`, `btnseq()` |
+
+## Using Gamepad Inputs
+
+Once initialized, you can use various gamepad inputs in your patterns. Here are some examples:
+
+### Button Inputs
+
+You can use button inputs to control different aspects of your music, such as gain or triggering events.
+
+
+
+### Analog Stick Inputs
+
+Analog sticks can be used for continuous control, such as pitch shifting or panning.
+
+
+
+### Button Sequences
+
+You can define button sequences to trigger specific actions, like playing a sound when a sequence is detected.
+
+
+
+## Multiple Gamepads
+
+Strudel supports multiple gamepads. You can specify the gamepad index to connect to different devices.
+
+
diff --git a/packages/gamepad/gamepad.mjs b/packages/gamepad/gamepad.mjs
new file mode 100644
index 00000000..7667a362
--- /dev/null
+++ b/packages/gamepad/gamepad.mjs
@@ -0,0 +1,246 @@
+// @strudel/gamepad/index.mjs
+
+import { signal } from '@strudel/core';
+
+// Button mapping for Logitech Dual Action (STANDARD GAMEPAD Vendor: 046d Product: c216)
+export const buttonMap = {
+  a: 0,
+  b: 1,
+  x: 2,
+  y: 3,
+  lb: 4,
+  rb: 5,
+  lt: 6,
+  rt: 7,
+  back: 8,
+  start: 9,
+  u: 12,
+  up: 12,
+  d: 13,
+  down: 13,
+  l: 14,
+  left: 14,
+  r: 15,
+  right: 15,
+};
+
+class ButtonSequenceDetector {
+  constructor(timeWindow = 1000) {
+    this.sequence = [];
+    this.timeWindow = timeWindow;
+    this.lastInputTime = 0;
+    this.buttonStates = Array(16).fill(0); // Track previous state of each button
+    // Button mapping for character inputs
+  }
+
+  addInput(buttonIndex, buttonValue) {
+    const currentTime = Date.now();
+
+    // Only add input on button press (rising edge)
+    if (buttonValue === 1 && this.buttonStates[buttonIndex] === 0) {
+      // Clear sequence if too much time has passed
+      if (currentTime - this.lastInputTime > this.timeWindow) {
+        this.sequence = [];
+      }
+
+      // Store the button name instead of index
+      const buttonName = Object.keys(buttonMap).find((key) => buttonMap[key] === buttonIndex) || buttonIndex.toString();
+
+      this.sequence.push({
+        input: buttonName,
+        timestamp: currentTime,
+      });
+
+      this.lastInputTime = currentTime;
+
+      //console.log(this.sequence);
+      // Keep only inputs within the time window
+      this.sequence = this.sequence.filter((entry) => currentTime - entry.timestamp <= this.timeWindow);
+    }
+
+    // Update button state
+    this.buttonStates[buttonIndex] = buttonValue;
+  }
+
+  checkSequence(targetSequence) {
+    if (!Array.isArray(targetSequence) && typeof targetSequence !== 'string') {
+      console.error('ButtonSequenceDetector: targetSequence must be an array or string');
+      return 0;
+    }
+
+    if (this.sequence.length < targetSequence.length) return 0;
+
+    // Convert string input to array if needed
+    const sequence =
+      typeof targetSequence === 'string'
+        ? targetSequence.toLowerCase().split('')
+        : targetSequence.map((s) => s.toString().toLowerCase());
+
+    //console.log(this.sequence);
+
+    // Get the last n inputs where n is the target sequence length
+    const lastInputs = this.sequence.slice(-targetSequence.length).map((entry) => entry.input);
+
+    // Compare sequences
+    return lastInputs.every((input, index) => {
+      const target = sequence[index];
+      // Check if either the input matches directly or they refer to the same button in the map
+      return (
+        input === target ||
+        buttonMap[input] === buttonMap[target] ||
+        // Also check if the numerical index matches
+        buttonMap[input] === parseInt(target)
+      );
+    })
+      ? 1
+      : 0;
+  }
+}
+
+class GamepadHandler {
+  constructor(index = 0) {
+    // Add index parameter
+    this._gamepads = {};
+    this._activeGamepad = index; // Use provided index
+    this._axes = [0, 0, 0, 0];
+    this._buttons = Array(16).fill(0);
+    this.setupEventListeners();
+  }
+
+  setupEventListeners() {
+    window.addEventListener('gamepadconnected', (e) => {
+      this._gamepads[e.gamepad.index] = e.gamepad;
+      if (!this._activeGamepad) {
+        this._activeGamepad = e.gamepad.index;
+      }
+    });
+
+    window.addEventListener('gamepaddisconnected', (e) => {
+      delete this._gamepads[e.gamepad.index];
+      if (this._activeGamepad === e.gamepad.index) {
+        this._activeGamepad = Object.keys(this._gamepads)[0] || null;
+      }
+    });
+  }
+
+  poll() {
+    if (this._activeGamepad !== null) {
+      const gamepad = navigator.getGamepads()[this._activeGamepad];
+      if (gamepad) {
+        // Update axes (normalized to 0-1 range)
+        this._axes = gamepad.axes.map((axis) => (axis + 1) / 2);
+        // Update buttons
+        this._buttons = gamepad.buttons.map((button) => button.value);
+      }
+    }
+  }
+
+  getAxes() {
+    return this._axes;
+  }
+  getButtons() {
+    return this._buttons;
+  }
+}
+
+// Module-level state store for toggle states
+const gamepadStates = new Map();
+
+export const gamepad = (index = 0) => {
+  const handler = new GamepadHandler(index);
+  const sequenceDetector = new ButtonSequenceDetector(2000);
+
+  // Base signal that polls gamepad state and handles sequence detection
+  const baseSignal = signal((t) => {
+    handler.poll();
+    const axes = handler.getAxes();
+    const buttons = handler.getButtons();
+
+    // Add all button inputs to sequence detector
+    buttons.forEach((value, i) => {
+      sequenceDetector.addInput(i, value);
+    });
+
+    return { axes, buttons, t };
+  });
+
+  // Create axes patterns
+  const axes = {
+    x1: baseSignal.fmap((state) => state.axes[0]),
+    y1: baseSignal.fmap((state) => state.axes[1]),
+    x2: baseSignal.fmap((state) => state.axes[2]),
+    y2: baseSignal.fmap((state) => state.axes[3]),
+  };
+
+  // Add bipolar versions
+  axes.x1_2 = axes.x1.toBipolar();
+  axes.y1_2 = axes.y1.toBipolar();
+  axes.x2_2 = axes.x2.toBipolar();
+  axes.y2_2 = axes.y2.toBipolar();
+
+  // Create button patterns
+  const buttons = Array(16)
+    .fill(null)
+    .map((_, i) => {
+      // Create unique key for this gamepad+button combination
+      const stateKey = `gamepad${index}_btn${i}`;
+
+      // Initialize toggle state if it doesn't exist
+      if (!gamepadStates.has(stateKey)) {
+        gamepadStates.set(stateKey, {
+          lastButtonState: 0,
+          toggleState: 0,
+        });
+      }
+
+      // Direct button value pattern (no longer needs to call addInput)
+      const btn = baseSignal.fmap((state) => state.buttons[i]);
+
+      // Button toggle pattern with persistent state
+      const toggle = baseSignal.fmap((state) => {
+        const currentState = state.buttons[i];
+        const buttonState = gamepadStates.get(stateKey);
+
+        if (currentState === 1 && buttonState.lastButtonState === 0) {
+          // Toggle the state on rising edge
+          buttonState.toggleState = buttonState.toggleState === 0 ? 1 : 0;
+        }
+
+        buttonState.lastButtonState = currentState;
+        return buttonState.toggleState;
+      });
+
+      return { value: btn, toggle };
+    });
+
+  // Create sequence checker pattern
+  const btnSequence = (sequence) => {
+    return baseSignal.fmap(() => sequenceDetector.checkSequence(sequence));
+  };
+  const checkSequence = btnSequence;
+  const btnSeq = btnSequence;
+  const btnseq = btnSeq;
+
+  // Return an object with all controls
+  return {
+    ...axes,
+    buttons,
+    ...Object.fromEntries(
+      Object.entries(buttonMap).flatMap(([key, index]) => [
+        [key.toLowerCase(), buttons[index].value],
+        [key.toUpperCase(), buttons[index].value],
+        [`tgl${key.toLowerCase()}`, buttons[index].toggle],
+        [`tgl${key.toUpperCase()}`, buttons[index].toggle],
+      ]),
+    ),
+    checkSequence,
+    btnSequence,
+    btnSeq,
+    btnseq,
+    raw: baseSignal,
+  };
+};
+
+// Optional: Export for debugging or state management
+export const getGamepadStates = () => Object.fromEntries(gamepadStates);
+export const clearGamepadStates = () => gamepadStates.clear();
diff --git a/packages/gamepad/index.mjs b/packages/gamepad/index.mjs
new file mode 100644
index 00000000..c5558fb9
--- /dev/null
+++ b/packages/gamepad/index.mjs
@@ -0,0 +1,3 @@
+import './gamepad.mjs';
+
+export * from './gamepad.mjs';
diff --git a/packages/gamepad/package.json b/packages/gamepad/package.json
new file mode 100644
index 00000000..3efb2e08
--- /dev/null
+++ b/packages/gamepad/package.json
@@ -0,0 +1,37 @@
+{
+  "name": "@strudel/gamepad",
+  "version": "1.2.2",
+  "description": "Gamepad Inputs for strudel",
+  "main": "index.mjs",
+  "type": "module",
+  "publishConfig": {
+    "main": "dist/index.mjs"
+  },
+  "scripts": {
+    "build": "vite build",
+    "prepublishOnly": "npm run build"
+  },
+  "repository": {
+    "type": "git",
+    "url": "git+https://codeberg.org/uzu/strudel.git"
+  },
+  "keywords": [
+    "titdalcycles",
+    "strudel",
+    "pattern",
+    "livecoding",
+    "algorave"
+  ],
+  "author": "Yuta Nakayama ",
+  "license": "AGPL-3.0-or-later",
+  "bugs": {
+    "url": "https://codeberg.org/uzu/strudel/issues"
+  },
+  "homepage": "https://codeberg.org/uzu/strudel#readme",
+  "dependencies": {
+    "@strudel/core": "workspace:*"
+  },
+  "devDependencies": {
+    "vite": "^6.0.11"
+  }
+}
diff --git a/packages/gamepad/vite.config.js b/packages/gamepad/vite.config.js
new file mode 100644
index 00000000..5df3edc1
--- /dev/null
+++ b/packages/gamepad/vite.config.js
@@ -0,0 +1,19 @@
+import { defineConfig } from 'vite';
+import { dependencies } from './package.json';
+import { resolve } from 'path';
+
+// https://vitejs.dev/config/
+export default defineConfig({
+  plugins: [],
+  build: {
+    lib: {
+      entry: resolve(__dirname, 'index.mjs'),
+      formats: ['es'],
+      fileName: (ext) => ({ es: 'index.mjs' })[ext],
+    },
+    rollupOptions: {
+      external: [...Object.keys(dependencies)],
+    },
+    target: 'esnext',
+  },
+});
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..f84f9cde
--- /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://codeberg.org/uzu/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..c0bf8fa8
--- /dev/null
+++ b/packages/hs2js/package.json
@@ -0,0 +1,38 @@
+{
+  "name": "hs2js",
+  "version": "0.2.0",
+  "private": true,
+  "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://codeberg.org/uzu/strudel.git"
+  },
+  "keywords": [
+    "haskell",
+    "javascript"
+  ],
+  "author": "Felix Roos ",
+  "license": "AGPL-3.0-or-later",
+  "bugs": {
+    "url": "https://codeberg.org/uzu/strudel/issues"
+  },
+  "homepage": "https://codeberg.org/uzu/strudel/",
+  "dependencies": {
+    "web-tree-sitter": "^0.24.7"
+  },
+  "devDependencies": {
+    "tree-sitter-haskell": "^0.23.1",
+    "vite": "^6.0.11"
+  }
+}
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..b022de87 100644
--- a/packages/hydra/package.json
+++ b/packages/hydra/package.json
@@ -1,6 +1,6 @@
 {
   "name": "@strudel/hydra",
-  "version": "1.0.1",
+  "version": "1.2.2",
   "description": "Hydra integration for strudel",
   "main": "hydra.mjs",
   "type": "module",
@@ -17,7 +17,7 @@
   },
   "repository": {
     "type": "git",
-    "url": "git+https://github.com/tidalcycles/strudel.git"
+    "url": "git+https://codeberg.org/uzu/strudel.git"
   },
   "keywords": [
     "tidalcycles",
@@ -29,9 +29,9 @@
   "author": "Felix Roos ",
   "license": "AGPL-3.0-or-later",
   "bugs": {
-    "url": "https://github.com/tidalcycles/strudel/issues"
+    "url": "https://codeberg.org/uzu/strudel/issues"
   },
-  "homepage": "https://github.com/tidalcycles/strudel#readme",
+  "homepage": "https://codeberg.org/uzu/strudel#readme",
   "dependencies": {
     "@strudel/core": "workspace:*",
     "@strudel/draw": "workspace:*",
@@ -39,6 +39,6 @@
   },
   "devDependencies": {
     "pkg": "^5.8.1",
-    "vite": "^5.0.10"
+    "vite": "^6.0.11"
   }
 }
diff --git a/packages/midi/README.md b/packages/midi/README.md
index 6bb649f2..aa90992d 100644
--- a/packages/midi/README.md
+++ b/packages/midi/README.md
@@ -7,3 +7,187 @@ This package adds midi functionality to strudel Patterns.
 ```sh
 npm i @strudel/midi --save
 ```
+
+## Available Controls
+
+The following MIDI controls are available:
+
+OUTPUT:
+
+- `midi` - opens a midi output device.
+- `note` - Sends MIDI note messages. Can accept note names (e.g. "c4") or MIDI note numbers (0-127)
+- `midichan` - Sets the MIDI channel (1-16, defaults to 1)
+- `velocity` - Sets note velocity (0-1, defaults to 0.9)
+- `gain` - Modifies velocity by multiplying with it (0-1, defaults to 1)
+- `control` - Sets MIDI control change messages
+- `ccn` - Sets MIDI CC controller number (0-127)
+- `ccv` - Sets MIDI CC value (0-1)
+- `progNum` - Sends MIDI program change messages (0-127)
+- `sysex` - Sends MIDI System Exclusive messages (id: number 0-127 or array of bytes 0-127, data: array of bytes 0-127)
+- `sysexid` - Sets MIDI System Exclusive ID (number 0-127 or array of bytes 0-127)
+- `sysexdata` - Sets MIDI System Exclusive data (array of bytes 0-127)
+- `midibend` - Sets MIDI pitch bend (-1 - 1)
+- `miditouch` - Sets MIDI key after touch (0-1)
+- `midicmd` - Sends MIDI system real-time messages to control timing and transport on MIDI devices.
+- `nrpnn` - Sets MIDI NRPN non-registered parameter number (array of bytes 0-127)
+- `nrpv` - Sets MIDI NRPN non-registered parameter value (0-127)
+
+
+INPUT:
+
+- `midin` - Opens a MIDI input port to receive MIDI control change messages.
+
+Additional controls can be mapped using the mapping object passed to `.midi()`:
+
+## Examples
+
+### midi(outputName?, options?)
+
+Either connect a midi device or use the IAC Driver (Mac) or Midi Through Port (Linux) for internal midi messages.
+If no outputName is given, it uses the first midi output it finds.
+
+```javascript
+$: chord("").voicing().midi('IAC Driver')
+```
+
+In the console, you will see a log of the available MIDI devices as soon as you run the code, e.g. `Midi connected! Using "Midi Through Port-0".`
+
+### Options
+
+The `.midi()` function accepts an options object with the following properties:
+
+```javascript
+$: note("c a f e").midi('IAC Driver', { isController: true, midimap: 'default'})
+```
+
+
+Available Options + +| Option | Type | Default | Description | +|--------|------|---------|-------------| +| isController | boolean | false | When true, disables sending note messages. Useful for MIDI controllers | +| latencyMs | number | 34 | Latency in milliseconds to align MIDI with audio engine | +| noteOffsetMs | number | 10 | Offset in milliseconds for note-off messages to prevent glitching | +| midichannel | number | 1 | Default MIDI channel (1-16) | +| velocity | number | 0.9 | Default note velocity (0-1) | +| gain | number | 1 | Default gain multiplier for velocity (0-1) | +| midimap | string | 'default' | Name of MIDI mapping to use for control changes | +| midiport | string/number | - | MIDI device name or index | + +
+ + + + +### midiport(outputName) + +Selects the MIDI output device to use, pattern can be used to switch between devices. + +```javascript +$: midiport('IAC Driver') +$: note("c a f e").midiport("<0 1 2 3>").midi() +``` + +### midichan(number) + +Selects the MIDI channel to use. If not used, `.midi` will use channel 1 by default. + +### control, ccn && ccv + +`control` sends MIDI control change messages to your MIDI device. + +- `ccn` sets the cc number. Depends on your synths midi mapping +- `ccv` sets the cc value. normalized from 0 to 1. + +```javascript +$: note("c a f e").control([74, sine.slow(4)]).midi() +$: note("c a f e").ccn(74).ccv(sine.slow(4)).midi() +``` + +In the above snippet, `ccn` is set to 74, which is the filter cutoff for many synths. `ccv` is controlled by a saw pattern. +Having everything in one pattern, the `ccv` pattern will be aligned to the note pattern, because the structure comes from the left by default. +But you can also control cc messages separately like this: + +```javascript +$: note("c a f e").midi() +$: ccv(sine.segment(16).slow(4)).ccn(74).midi() +``` + +### progNum (Program Change) + +`progNum` control sends MIDI program change messages to switch between different presets/patches on your MIDI device. +Program change values should be numbers between 0 and 127. + +```javascript +// Play notes while changing programs +note("c3 e3 g3").progNum("<0 1 2>").midi() +``` + +Program change messages are useful for switching between different instrument sounds or presets during a performance. +The exact sound that each program number maps to depends on your MIDI device's configuration. + +## sysex, sysexid && sysexdata (System Exclusive Message) + +`sysex`, `sysexid` and `sysexdata` control sends MIDI System Exclusive (SysEx) messages to your MIDI device. +sysEx messages are device-specific commands that allow deeper control over synthesizer parameters. +The value should be an array of numbers between 0-255 representing the SysEx data bytes. + +```javascript +// Send a simple SysEx message +let id = 0x43; //Yamaha +//let id = "0x00:0x20:0x32"; //Behringer ID can be an array of numbers +let data = "0x79:0x09:0x11:0x0A:0x00:0x00"; // Set NSX-39 voice to say "Aa" +$: note("c d e f e d c").sysex(id, data).midi(); +$: note("c d e f e d c").sysexid(id).sysexdata(data).midi(); +``` + +The exact format of SysEx messages depends on your MIDI device's specification. +Consult your device's MIDI implementation guide for details on supported SysEx messages. + +### midibend && miditouch + +`midibend` sets MIDI pitch bend (-1 - 1) +`miditouch` sets MIDI key after touch (0-1) + +```javascript + +$: note("c d e f e d c").midibend(sine.slow(4).range(-0.4,0.4)).midi(); +$: note("c d e f e d c").miditouch(sine.slow(4).range(0,1)).midi(); + +``` + +### midicmd + +`midicmd` sends MIDI system real-time messages to control timing and transport on MIDI devices. + +It supports the following commands: + +- `clock`/`midiClock` - Sends MIDI timing clock messages +- `start` - Sends MIDI start message +- `stop` - Sends MIDI stop message +- `continue` - Sends MIDI continue message + +```javascript +// You can control the clock with a pattern and ensure it starts in sync when the repl begins. +// Note: It might act unexpectedly if MIDI isn't set up initially. +stack( + midicmd("clock*48,/2").midi('IAC Driver') +) +``` + +`midicmd` also supports sending control change, program change and sysex messages. + +- `cc` - sends MIDI control change messages. +- `progNum` - sends MIDI program change messages. +- `sysex` - sends MIDI system exclusive messages. + +```javascript +stack( + // "cc:ccn:ccv" + midicmd("cc:74:1").midi('IAC Driver'), + // "progNum:progNum" + midicmd("progNum:1").midi('IAC Driver'), + // "sysex:[sysexid]:[sysexdata]" + midicmd("sysex:[0x43]:[0x79:0x09:0x11:0x0A:0x00:0x00]").midi('IAC Driver') +) +``` \ No newline at end of file diff --git a/packages/midi/midi.mjs b/packages/midi/midi.mjs index 3ce894d6..af2dd3a6 100644 --- a/packages/midi/midi.mjs +++ b/packages/midi/midi.mjs @@ -1,13 +1,14 @@ /* midi.mjs - -Copyright (C) 2022 Strudel contributors - see +Copyright (C) 2022 Strudel contributors - see 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 . */ import * as _WebMidi from 'webmidi'; import { Pattern, getEventOffsetMs, isPattern, logger, ref } from '@strudel/core'; -import { noteToMidi } from '@strudel/core'; +import { noteToMidi, getControlName } from '@strudel/core'; import { Note } from 'webmidi'; + // if you use WebMidi from outside of this package, make sure to import that instance: export const { WebMidi } = _WebMidi; @@ -43,13 +44,16 @@ export function enableWebMidi(options = {}) { resolve(WebMidi); return; } - WebMidi.enable((err) => { - if (err) { - reject(err); - } - onReady?.(WebMidi); - resolve(WebMidi); - }); + WebMidi.enable( + (err) => { + if (err) { + reject(err); + } + onReady?.(WebMidi); + resolve(WebMidi); + }, + { sysex: true }, + ); }); } @@ -89,18 +93,235 @@ if (typeof window !== 'undefined') { }); } -Pattern.prototype.midi = function (output) { - if (isPattern(output)) { +// registry for midi mappings, converting control names to cc messages +export const midicontrolMap = new Map(); + +// takes midimap and converts each control key to the main control name +function unifyMapping(mapping) { + return Object.fromEntries( + Object.entries(mapping).map(([key, mapping]) => { + if (typeof mapping === 'number') { + mapping = { ccn: mapping }; + } + return [getControlName(key), mapping]; + }), + ); +} + +function githubPath(base, subpath = '') { + if (!base.startsWith('github:')) { + throw new Error('expected "github:" at the start of pseudoUrl'); + } + let [_, path] = base.split('github:'); + path = path.endsWith('/') ? path.slice(0, -1) : path; + if (path.split('/').length === 2) { + // assume main as default branch if none set + path += '/main'; + } + return `https://raw.githubusercontent.com/${path}/${subpath}`; +} + +/** + * configures the default midimap, which is used when no "midimap" port is set + * @example + * defaultmidimap({ lpf: 74 }) + * $: note("c a f e").midi(); + * $: lpf(sine.slow(4).segment(16)).midi(); + */ +export function defaultmidimap(mapping) { + midicontrolMap.set('default', unifyMapping(mapping)); +} + +let loadCache = {}; + +/** + * Adds midimaps to the registry. Inside each midimap, control names (e.g. lpf) are mapped to cc numbers. + * @example + * midimaps({ mymap: { lpf: 74 } }) + * $: note("c a f e") + * .lpf(sine.slow(4)) + * .midimap('mymap') + * .midi() + * @example + * midimaps({ mymap: { + * lpf: { ccn: 74, min: 0, max: 20000, exp: 0.5 } + * }}) + * $: note("c a f e") + * .lpf(sine.slow(2).range(400,2000)) + * .midimap('mymap') + * .midi() + */ +export async function midimaps(map) { + if (typeof map === 'string') { + if (map.startsWith('github:')) { + map = githubPath(map, 'midimap.json'); + } + if (!loadCache[map]) { + loadCache[map] = fetch(map).then((res) => res.json()); + } + map = await loadCache[map]; + } + if (typeof map === 'object') { + Object.entries(map).forEach(([name, mapping]) => midicontrolMap.set(name, unifyMapping(mapping))); + } +} + +// registry for midi sounds, converting sound names to controls +export const midisoundMap = new Map(); + +// normalizes the given value from the given range and exponent +function normalize(value = 0, min = 0, max = 1, exp = 1) { + if (min === max) { + throw new Error('min and max cannot be the same value'); + } + let normalized = (value - min) / (max - min); + normalized = Math.min(1, Math.max(0, normalized)); + return Math.pow(normalized, exp); +} + +function mapCC(mapping, value) { + return Object.keys(value) + .filter((key) => !!mapping[getControlName(key)]) + .map((key) => { + const { ccn, min = 0, max = 1, exp = 1 } = mapping[key]; + const ccv = normalize(value[key], min, max, exp); + return { ccn, ccv }; + }); +} + +// sends a cc message to the given device on the given channel +function sendCC(ccn, ccv, device, midichan, timeOffsetString) { + if (typeof ccv !== 'number' || ccv < 0 || ccv > 1) { + throw new Error('expected ccv to be a number between 0 and 1'); + } + if (!['string', 'number'].includes(typeof ccn)) { + throw new Error('expected ccn to be a number or a string'); + } + const scaled = Math.round(ccv * 127); + device.sendControlChange(ccn, scaled, midichan, { time: timeOffsetString }); +} + +// sends a program change message to the given device on the given channel +function sendProgramChange(progNum, device, midichan, timeOffsetString) { + if (typeof progNum !== 'number' || progNum < 0 || progNum > 127) { + throw new Error('expected progNum (program change) to be a number between 0 and 127'); + } + device.sendProgramChange(progNum, midichan, { time: timeOffsetString }); +} + +// sends a sysex message to the given device on the given channel +function sendSysex(sysexid, sysexdata, device, timeOffsetString) { + if (Array.isArray(sysexid)) { + if (!sysexid.every((byte) => Number.isInteger(byte) && byte >= 0 && byte <= 255)) { + throw new Error('all sysexid bytes must be integers between 0 and 255'); + } + } else if (!Number.isInteger(sysexid) || sysexid < 0 || sysexid > 255) { + throw new Error('A:sysexid must be an number between 0 and 255 or an array of such integers'); + } + + if (!Array.isArray(sysexdata)) { + throw new Error('expected sysex to be an array of numbers (0-255)'); + } + if (!sysexdata.every((byte) => Number.isInteger(byte) && byte >= 0 && byte <= 255)) { + throw new Error('all sysex bytes must be integers between 0 and 255'); + } + device.sendSysex(sysexid, sysexdata, { time: timeOffsetString }); +} + +// sends a NRPN message to the given device on the given channel +function sendNRPN(nrpnn, nrpv, device, midichan, timeOffsetString) { + if (Array.isArray(nrpnn)) { + if (!nrpnn.every((byte) => Number.isInteger(byte) && byte >= 0 && byte <= 255)) { + throw new Error('all nrpnn bytes must be integers between 0 and 255'); + } + } else if (!Number.isInteger(nrpv) || nrpv < 0 || nrpv > 255) { + throw new Error('A:sysexid must be an number between 0 and 255 or an array of such integers'); + } + + device.sendNRPN(nrpnn, nrpv, midichan, { time: timeOffsetString }); +} + +// sends a pitch bend message to the given device on the given channel +function sendPitchBend(midibend, device, midichan, timeOffsetString) { + if (typeof midibend !== 'number' || midibend < -1 || midibend > 1) { + throw new Error('expected midibend to be a number between -1 and 1'); + } + device.sendPitchBend(midibend, midichan, { time: timeOffsetString }); +} + +// sends a channel aftertouch message to the given device on the given channel +function sendAftertouch(miditouch, device, midichan, timeOffsetString) { + if (typeof miditouch !== 'number' || miditouch < 0 || miditouch > 1) { + throw new Error('expected miditouch to be a number between 0 and 1'); + } + device.sendChannelAftertouch(miditouch, midichan, { time: timeOffsetString }); +} + +// sends a note message to the given device on the given channel +function sendNote(note, velocity, duration, device, midichan, timeOffsetString) { + if (note == null || note === '') { + throw new Error('note cannot be null or empty'); + } + if (velocity != null && (typeof velocity !== 'number' || velocity < 0 || velocity > 1)) { + throw new Error('velocity must be a number between 0 and 1'); + } + if (duration != null && (typeof duration !== 'number' || duration < 0)) { + throw new Error('duration must be a positive number'); + } + + const midiNumber = typeof note === 'number' ? note : noteToMidi(note); + const midiNote = new Note(midiNumber, { attack: velocity, duration }); + device.playNote(midiNote, midichan, { + time: timeOffsetString, + }); +} + +/** + * MIDI output: Opens a MIDI output port. + * @param {string | number} midiport MIDI device name or index defaulting to 0 + * @param {object} options Additional MIDI configuration options + * @example + * note("c4").midichan(1).midi('IAC Driver Bus 1') + * @example + * note("c4").midichan(1).midi('IAC Driver Bus 1', { controller: true, latency: 50 }) + */ + +Pattern.prototype.midi = function (midiport, options = {}) { + if (isPattern(midiport)) { throw new Error( - `.midi does not accept Pattern input. Make sure to pass device name with single quotes. Example: .midi('${ + `.midi does not accept Pattern input for midiport. Make sure to pass device name with single quotes. Example: .midi('${ WebMidi.outputs?.[0]?.name || 'IAC Driver Bus 1' }')`, ); } + // For backward compatibility + if (typeof midiport === 'object') { + const { port, isController = false, ...configOptions } = midiport; + options = { + isController, + ...configOptions, + ...options, // Keep any options passed separately + }; + midiport = port; + } + + let midiConfig = { + // Default configuration values + isController: false, // Disable sending notes for midi controllers + latencyMs: 34, // Default latency to get audio engine to line up in ms + noteOffsetMs: 10, // Default note-off offset to prevent glitching in ms + midichannel: 1, // Default MIDI channel + velocity: 0.9, // Default velocity + gain: 1, // Default gain + midimap: 'default', // Default MIDI map + midiport: midiport, // Store the port in the config + ...options, // Override defaults with provided options + }; + enableWebMidi({ onEnabled: ({ outputs }) => { - const device = getDevice(output, outputs); + const device = getDevice(midiConfig.midiport, outputs); const otherOutputs = outputs.filter((o) => o.name !== device.name); logger( `Midi enabled! Using "${device.name}". ${ @@ -114,39 +335,102 @@ Pattern.prototype.midi = function (output) { return this.onTrigger((time_deprecate, hap, currentTime, cps, targetTime) => { if (!WebMidi.enabled) { - console.log('not enabled'); + logger('Midi not enabled'); return; } - const device = getDevice(output, WebMidi.outputs); hap.ensureObjectValue(); + //magic number to get audio engine to line up, can probably be calculated somehow - const latencyMs = 34; + const latencyMs = midiConfig.latencyMs; // passing a string with a +num into the webmidi api adds an offset to the current time https://webmidijs.org/api/classes/Output const timeOffsetString = `+${getEventOffsetMs(targetTime, currentTime) + latencyMs}`; - // destructure value - let { note, nrpnn, nrpv, ccn, ccv, midichan = 1, midicmd, gain = 1, velocity = 0.9 } = hap.value; + + // midi event values from hap with configurable defaults + let { + note, + nrpnn, + nrpv, + ccn, + ccv, + midichan = midiConfig.midichannel, + midicmd, + midibend, + miditouch, + polyTouch, + gain = midiConfig.gain, + velocity = midiConfig.velocity, + progNum, + sysexid, + sysexdata, + midimap = midiConfig.midimap, + midiport = midiConfig.midiport, + } = hap.value; + + const device = getDevice(midiport, WebMidi.outputs); + if (!device) { + logger( + `[midi] midiport "${midiport}" not found! available: ${WebMidi.outputs.map((output) => `'${output.name}'`).join(', ')}`, + ); + return; + } velocity = gain * velocity; - // note off messages will often a few ms arrive late, try to prevent glitching by subtracting from the duration length - const duration = (hap.duration.valueOf() / cps) * 1000 - 10; - if (note != null) { - const midiNumber = typeof note === 'number' ? note : noteToMidi(note); - const midiNote = new Note(midiNumber, { attack: velocity, duration }); - device.playNote(midiNote, midichan, { - time: timeOffsetString, - }); + // Handle midimap + // if midimap is set, send a cc messages from defined controls + if (midicontrolMap.has(midimap)) { + const ccs = mapCC(midicontrolMap.get(midimap), hap.value); + ccs.forEach(({ ccn, ccv }) => sendCC(ccn, ccv, device, midichan, timeOffsetString)); + } else if (midimap !== 'default') { + // Add warning when a non-existent midimap is specified + logger(`[midi] midimap "${midimap}" not found! Available maps: ${[...midicontrolMap.keys()].join(', ')}`); } + + // Handle note + if (note !== undefined && !midiConfig.isController) { + // note off messages will often a few ms arrive late, + // try to prevent glitching by subtracting noteOffsetMs from the duration length + const duration = (hap.duration.valueOf() / cps) * 1000 - midiConfig.noteOffsetMs; + + sendNote(note, velocity, duration, device, midichan, timeOffsetString); + } + + // Handle program change + if (progNum !== undefined) { + sendProgramChange(progNum, device, midichan, timeOffsetString); + } + + // Handle sysex + // sysex data is consist of 2 arrays, first is sysexid, second is sysexdata + // sysexid is a manufacturer id it is either a number or an array of 3 numbers. + // list of manufacturer ids can be found here : https://midi.org/sysexidtable + // if sysexid is an array the first byte is 0x00 + + if (sysexid !== undefined && sysexdata !== undefined) { + sendSysex(sysexid, sysexdata, device, timeOffsetString); + } + + // Handle control change if (ccv !== undefined && ccn !== undefined) { - if (typeof ccv !== 'number' || ccv < 0 || ccv > 1) { - throw new Error('expected ccv to be a number between 0 and 1'); - } - if (!['string', 'number'].includes(typeof ccn)) { - throw new Error('expected ccn to be a number or a string'); - } - const scaled = Math.round(ccv * 127); - device.sendControlChange(ccn, scaled, midichan, { time: timeOffsetString }); + sendCC(ccn, ccv, device, midichan, timeOffsetString); } + + // Handle NRPN non-registered parameter number + if (nrpnn !== undefined && nrpv !== undefined) { + sendNRPN(nrpnn, nrpv, device, midichan, timeOffsetString); + } + + // Handle midibend + if (midibend !== undefined) { + sendPitchBend(midibend, device, midichan, timeOffsetString); + } + + // Handle miditouch + if (miditouch !== undefined) { + sendAftertouch(miditouch, device, midichan, timeOffsetString); + } + + // Handle midicmd if (hap.whole.begin + 0 === 0) { // we need to start here because we have the timing info device.sendStart({ time: timeOffsetString }); @@ -159,6 +443,19 @@ Pattern.prototype.midi = function (output) { device.sendStop({ time: timeOffsetString }); } else if (['continue'].includes(midicmd)) { device.sendContinue({ time: timeOffsetString }); + } else if (Array.isArray(midicmd)) { + if (midicmd[0] === 'progNum') { + sendProgramChange(midicmd[1], device, midichan, timeOffsetString); + } else if (midicmd[0] === 'cc') { + if (midicmd.length === 2) { + sendCC(midicmd[0], midicmd[1] / 127, device, midichan, timeOffsetString); + } + } else if (midicmd[0] === 'sysex') { + if (midicmd.length === 3) { + const [_, id, data] = midicmd; + sendSysex(id, data, device, timeOffsetString); + } + } } }); }; @@ -166,16 +463,29 @@ Pattern.prototype.midi = function (output) { let listeners = {}; const refs = {}; +/** + * MIDI input: Opens a MIDI input port to receive MIDI control change messages. + * @param {string | number} input MIDI device name or index defaulting to 0 + * @returns {Function} + * @example + * let cc = await midin('IAC Driver Bus 1') + * note("c a f e").lpf(cc(0).range(0, 1000)).lpq(cc(1).range(0, 10)).sound("sawtooth") + */ export async function midin(input) { if (isPattern(input)) { throw new Error( - `.midi does not accept Pattern input. Make sure to pass device name with single quotes. Example: .midi('${ + `midin: does not accept Pattern as input. Make sure to pass device name with single quotes. Example: midin('${ WebMidi.outputs?.[0]?.name || 'IAC Driver Bus 1' }')`, ); } const initial = await enableWebMidi(); // only returns on first init const device = getDevice(input, WebMidi.inputs); + if (!device) { + throw new Error( + `midiin: device "${input}" not found.. connected devices: ${getMidiDeviceNamesString(WebMidi.inputs)}`, + ); + } if (initial) { const otherInputs = WebMidi.inputs.filter((o) => o.name !== device.name); logger( diff --git a/packages/midi/package.json b/packages/midi/package.json index 4cc2dddb..4efd329d 100644 --- a/packages/midi/package.json +++ b/packages/midi/package.json @@ -1,6 +1,6 @@ { "name": "@strudel/midi", - "version": "1.0.1", + "version": "1.2.3", "description": "Midi API for strudel", "main": "index.mjs", "type": "module", @@ -13,7 +13,7 @@ }, "repository": { "type": "git", - "url": "git+https://github.com/tidalcycles/strudel.git" + "url": "git+https://codeberg.org/uzu/strudel.git" }, "keywords": [ "titdalcycles", @@ -25,15 +25,15 @@ "author": "Felix Roos ", "license": "AGPL-3.0-or-later", "bugs": { - "url": "https://github.com/tidalcycles/strudel/issues" + "url": "https://codeberg.org/uzu/strudel/issues" }, - "homepage": "https://github.com/tidalcycles/strudel#readme", + "homepage": "https://codeberg.org/uzu/strudel#readme", "dependencies": { "@strudel/core": "workspace:*", "@strudel/webaudio": "workspace:*", - "webmidi": "^3.1.8" + "webmidi": "^3.1.12" }, "devDependencies": { - "vite": "^5.0.10" + "vite": "^6.0.11" } } diff --git a/packages/mini/krill-parser.js b/packages/mini/krill-parser.js index 1cdd3486..0d855e49 100644 --- a/packages/mini/krill-parser.js +++ b/packages/mini/krill-parser.js @@ -1,7 +1,8 @@ -// Generated by Peggy 3.0.2. +// @generated by Peggy 4.2.0. // // https://peggyjs.org/ + function peg$subclass(child, parent) { function C() { this.constructor = child; } C.prototype = parent.prototype; @@ -180,111 +181,109 @@ function peg$parse(input, options) { var peg$c3 = "0"; var peg$c4 = ","; var peg$c5 = "|"; - var peg$c6 = "\""; - var peg$c7 = "'"; - var peg$c8 = "#"; - var peg$c9 = "^"; - var peg$c10 = "_"; - var peg$c11 = "["; - var peg$c12 = "]"; - var peg$c13 = "{"; - var peg$c14 = "}"; - var peg$c15 = "%"; - var peg$c16 = "<"; - var peg$c17 = ">"; - var peg$c18 = "@"; - var peg$c19 = "!"; - var peg$c20 = "("; - var peg$c21 = ")"; - var peg$c22 = "/"; - var peg$c23 = "*"; - var peg$c24 = "?"; - var peg$c25 = ":"; - var peg$c26 = ".."; - var peg$c27 = "struct"; - var peg$c28 = "target"; - var peg$c29 = "euclid"; - var peg$c30 = "slow"; - var peg$c31 = "rotL"; - var peg$c32 = "rotR"; - var peg$c33 = "fast"; - var peg$c34 = "scale"; - var peg$c35 = "//"; - var peg$c36 = "cat"; - var peg$c37 = "$"; - var peg$c38 = "setcps"; - var peg$c39 = "setbpm"; - var peg$c40 = "hush"; + var peg$c6 = "["; + var peg$c7 = "]"; + var peg$c8 = "{"; + var peg$c9 = "}"; + var peg$c10 = "%"; + var peg$c11 = "<"; + var peg$c12 = ">"; + var peg$c13 = "!"; + var peg$c14 = "("; + var peg$c15 = ")"; + var peg$c16 = "/"; + var peg$c17 = "*"; + var peg$c18 = "?"; + var peg$c19 = ":"; + var peg$c20 = ".."; + var peg$c21 = "^"; + var peg$c22 = "struct"; + var peg$c23 = "target"; + var peg$c24 = "euclid"; + var peg$c25 = "slow"; + var peg$c26 = "rotL"; + var peg$c27 = "rotR"; + var peg$c28 = "fast"; + var peg$c29 = "scale"; + var peg$c30 = "//"; + var peg$c31 = "cat"; + var peg$c32 = "$"; + var peg$c33 = "setcps"; + var peg$c34 = "setbpm"; + var peg$c35 = "hush"; var peg$r0 = /^[1-9]/; var peg$r1 = /^[eE]/; - var peg$r2 = /^[0-9]/; - var peg$r3 = /^[ \n\r\t\xA0]/; - var peg$r4 = /^[0-9~]/; - var peg$r5 = /^[^\n]/; - var peg$r6 = /^[a-z\xB5\xDF-\xF6\xF8-\xFF\u0101\u0103\u0105\u0107\u0109\u010B\u010D\u010F\u0111\u0113\u0115\u0117\u0119\u011B\u011D\u011F\u0121\u0123\u0125\u0127\u0129\u012B\u012D\u012F\u0131\u0133\u0135\u0137-\u0138\u013A\u013C\u013E\u0140\u0142\u0144\u0146\u0148-\u0149\u014B\u014D\u014F\u0151\u0153\u0155\u0157\u0159\u015B\u015D\u015F\u0161\u0163\u0165\u0167\u0169\u016B\u016D\u016F\u0171\u0173\u0175\u0177\u017A\u017C\u017E-\u0180\u0183\u0185\u0188\u018C-\u018D\u0192\u0195\u0199-\u019B\u019E\u01A1\u01A3\u01A5\u01A8\u01AA-\u01AB\u01AD\u01B0\u01B4\u01B6\u01B9-\u01BA\u01BD-\u01BF\u01C6\u01C9\u01CC\u01CE\u01D0\u01D2\u01D4\u01D6\u01D8\u01DA\u01DC-\u01DD\u01DF\u01E1\u01E3\u01E5\u01E7\u01E9\u01EB\u01ED\u01EF-\u01F0\u01F3\u01F5\u01F9\u01FB\u01FD\u01FF\u0201\u0203\u0205\u0207\u0209\u020B\u020D\u020F\u0211\u0213\u0215\u0217\u0219\u021B\u021D\u021F\u0221\u0223\u0225\u0227\u0229\u022B\u022D\u022F\u0231\u0233-\u0239\u023C\u023F-\u0240\u0242\u0247\u0249\u024B\u024D\u024F-\u0293\u0295-\u02AF\u0371\u0373\u0377\u037B-\u037D\u0390\u03AC-\u03CE\u03D0-\u03D1\u03D5-\u03D7\u03D9\u03DB\u03DD\u03DF\u03E1\u03E3\u03E5\u03E7\u03E9\u03EB\u03ED\u03EF-\u03F3\u03F5\u03F8\u03FB-\u03FC\u0430-\u045F\u0461\u0463\u0465\u0467\u0469\u046B\u046D\u046F\u0471\u0473\u0475\u0477\u0479\u047B\u047D\u047F\u0481\u048B\u048D\u048F\u0491\u0493\u0495\u0497\u0499\u049B\u049D\u049F\u04A1\u04A3\u04A5\u04A7\u04A9\u04AB\u04AD\u04AF\u04B1\u04B3\u04B5\u04B7\u04B9\u04BB\u04BD\u04BF\u04C2\u04C4\u04C6\u04C8\u04CA\u04CC\u04CE-\u04CF\u04D1\u04D3\u04D5\u04D7\u04D9\u04DB\u04DD\u04DF\u04E1\u04E3\u04E5\u04E7\u04E9\u04EB\u04ED\u04EF\u04F1\u04F3\u04F5\u04F7\u04F9\u04FB\u04FD\u04FF\u0501\u0503\u0505\u0507\u0509\u050B\u050D\u050F\u0511\u0513\u0515\u0517\u0519\u051B\u051D\u051F\u0521\u0523\u0525\u0527\u0529\u052B\u052D\u052F\u0560-\u0588\u10D0-\u10FA\u10FD-\u10FF\u13F8-\u13FD\u1C80-\u1C88\u1D00-\u1D2B\u1D6B-\u1D77\u1D79-\u1D9A\u1E01\u1E03\u1E05\u1E07\u1E09\u1E0B\u1E0D\u1E0F\u1E11\u1E13\u1E15\u1E17\u1E19\u1E1B\u1E1D\u1E1F\u1E21\u1E23\u1E25\u1E27\u1E29\u1E2B\u1E2D\u1E2F\u1E31\u1E33\u1E35\u1E37\u1E39\u1E3B\u1E3D\u1E3F\u1E41\u1E43\u1E45\u1E47\u1E49\u1E4B\u1E4D\u1E4F\u1E51\u1E53\u1E55\u1E57\u1E59\u1E5B\u1E5D\u1E5F\u1E61\u1E63\u1E65\u1E67\u1E69\u1E6B\u1E6D\u1E6F\u1E71\u1E73\u1E75\u1E77\u1E79\u1E7B\u1E7D\u1E7F\u1E81\u1E83\u1E85\u1E87\u1E89\u1E8B\u1E8D\u1E8F\u1E91\u1E93\u1E95-\u1E9D\u1E9F\u1EA1\u1EA3\u1EA5\u1EA7\u1EA9\u1EAB\u1EAD\u1EAF\u1EB1\u1EB3\u1EB5\u1EB7\u1EB9\u1EBB\u1EBD\u1EBF\u1EC1\u1EC3\u1EC5\u1EC7\u1EC9\u1ECB\u1ECD\u1ECF\u1ED1\u1ED3\u1ED5\u1ED7\u1ED9\u1EDB\u1EDD\u1EDF\u1EE1\u1EE3\u1EE5\u1EE7\u1EE9\u1EEB\u1EED\u1EEF\u1EF1\u1EF3\u1EF5\u1EF7\u1EF9\u1EFB\u1EFD\u1EFF-\u1F07\u1F10-\u1F15\u1F20-\u1F27\u1F30-\u1F37\u1F40-\u1F45\u1F50-\u1F57\u1F60-\u1F67\u1F70-\u1F7D\u1F80-\u1F87\u1F90-\u1F97\u1FA0-\u1FA7\u1FB0-\u1FB4\u1FB6-\u1FB7\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FC7\u1FD0-\u1FD3\u1FD6-\u1FD7\u1FE0-\u1FE7\u1FF2-\u1FF4\u1FF6-\u1FF7\u210A\u210E-\u210F\u2113\u212F\u2134\u2139\u213C-\u213D\u2146-\u2149\u214E\u2184\u2C30-\u2C5E\u2C61\u2C65-\u2C66\u2C68\u2C6A\u2C6C\u2C71\u2C73-\u2C74\u2C76-\u2C7B\u2C81\u2C83\u2C85\u2C87\u2C89\u2C8B\u2C8D\u2C8F\u2C91\u2C93\u2C95\u2C97\u2C99\u2C9B\u2C9D\u2C9F\u2CA1\u2CA3\u2CA5\u2CA7\u2CA9\u2CAB\u2CAD\u2CAF\u2CB1\u2CB3\u2CB5\u2CB7\u2CB9\u2CBB\u2CBD\u2CBF\u2CC1\u2CC3\u2CC5\u2CC7\u2CC9\u2CCB\u2CCD\u2CCF\u2CD1\u2CD3\u2CD5\u2CD7\u2CD9\u2CDB\u2CDD\u2CDF\u2CE1\u2CE3-\u2CE4\u2CEC\u2CEE\u2CF3\u2D00-\u2D25\u2D27\u2D2D\uA641\uA643\uA645\uA647\uA649\uA64B\uA64D\uA64F\uA651\uA653\uA655\uA657\uA659\uA65B\uA65D\uA65F\uA661\uA663\uA665\uA667\uA669\uA66B\uA66D\uA681\uA683\uA685\uA687\uA689\uA68B\uA68D\uA68F\uA691\uA693\uA695\uA697\uA699\uA69B\uA723\uA725\uA727\uA729\uA72B\uA72D\uA72F-\uA731\uA733\uA735\uA737\uA739\uA73B\uA73D\uA73F\uA741\uA743\uA745\uA747\uA749\uA74B\uA74D\uA74F\uA751\uA753\uA755\uA757\uA759\uA75B\uA75D\uA75F\uA761\uA763\uA765\uA767\uA769\uA76B\uA76D\uA76F\uA771-\uA778\uA77A\uA77C\uA77F\uA781\uA783\uA785\uA787\uA78C\uA78E\uA791\uA793-\uA795\uA797\uA799\uA79B\uA79D\uA79F\uA7A1\uA7A3\uA7A5\uA7A7\uA7A9\uA7AF\uA7B5\uA7B7\uA7B9\uA7FA\uAB30-\uAB5A\uAB60-\uAB65\uAB70-\uABBF\uFB00-\uFB06\uFB13-\uFB17\uFF41-\uFF5A]/; - var peg$r7 = /^[\u02B0-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0374\u037A\u0559\u0640\u06E5-\u06E6\u07F4-\u07F5\u07FA\u081A\u0824\u0828\u0971\u0E46\u0EC6\u10FC\u17D7\u1843\u1AA7\u1C78-\u1C7D\u1D2C-\u1D6A\u1D78\u1D9B-\u1DBF\u2071\u207F\u2090-\u209C\u2C7C-\u2C7D\u2D6F\u2E2F\u3005\u3031-\u3035\u303B\u309D-\u309E\u30FC-\u30FE\uA015\uA4F8-\uA4FD\uA60C\uA67F\uA69C-\uA69D\uA717-\uA71F\uA770\uA788\uA7F8-\uA7F9\uA9CF\uA9E6\uAA70\uAADD\uAAF3-\uAAF4\uAB5C-\uAB5F\uFF70\uFF9E-\uFF9F]/; - var peg$r8 = /^[\xAA\xBA\u01BB\u01C0-\u01C3\u0294\u05D0-\u05EA\u05EF-\u05F2\u0620-\u063F\u0641-\u064A\u066E-\u066F\u0671-\u06D3\u06D5\u06EE-\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA\u0800-\u0815\u0840-\u0858\u0860-\u086A\u08A0-\u08B4\u08B6-\u08BD\u0904-\u0939\u093D\u0950\u0958-\u0961\u0972-\u0980\u0985-\u098C\u098F-\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC-\u09DD\u09DF-\u09E1\u09F0-\u09F1\u09FC\u0A05-\u0A0A\u0A0F-\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32-\u0A33\u0A35-\u0A36\u0A38-\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2-\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0-\u0AE1\u0AF9\u0B05-\u0B0C\u0B0F-\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32-\u0B33\u0B35-\u0B39\u0B3D\u0B5C-\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99-\u0B9A\u0B9C\u0B9E-\u0B9F\u0BA3-\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D\u0C58-\u0C5A\u0C60-\u0C61\u0C80\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0-\u0CE1\u0CF1-\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D54-\u0D56\u0D5F-\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32-\u0E33\u0E40-\u0E45\u0E81-\u0E82\u0E84\u0E87-\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA-\u0EAB\u0EAD-\u0EB0\u0EB2-\u0EB3\u0EBD\u0EC0-\u0EC4\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065-\u1066\u106E-\u1070\u1075-\u1081\u108E\u1100-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1380-\u138F\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16F1-\u16F8\u1700-\u170C\u170E-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17DC\u1820-\u1842\u1844-\u1878\u1880-\u1884\u1887-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191E\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u1A00-\u1A16\u1A20-\u1A54\u1B05-\u1B33\u1B45-\u1B4B\u1B83-\u1BA0\u1BAE-\u1BAF\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C77\u1CE9-\u1CEC\u1CEE-\u1CF1\u1CF5-\u1CF6\u2135-\u2138\u2D30-\u2D67\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u3006\u303C\u3041-\u3096\u309F\u30A1-\u30FA\u30FF\u3105-\u312F\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FEF\uA000-\uA014\uA016-\uA48C\uA4D0-\uA4F7\uA500-\uA60B\uA610-\uA61F\uA62A-\uA62B\uA66E\uA6A0-\uA6E5\uA78F\uA7F7\uA7FB-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB\uA8FD-\uA8FE\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9E0-\uA9E4\uA9E7-\uA9EF\uA9FA-\uA9FE\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA6F\uAA71-\uAA76\uAA7A\uAA7E-\uAAAF\uAAB1\uAAB5-\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADC\uAAE0-\uAAEA\uAAF2\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uABC0-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40-\uFB41\uFB43-\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF66-\uFF6F\uFF71-\uFF9D\uFFA0-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]/; - var peg$r9 = /^[\u01C5\u01C8\u01CB\u01F2\u1F88-\u1F8F\u1F98-\u1F9F\u1FA8-\u1FAF\u1FBC\u1FCC\u1FFC]/; - var peg$r10 = /^[A-Z\xC0-\xD6\xD8-\xDE\u0100\u0102\u0104\u0106\u0108\u010A\u010C\u010E\u0110\u0112\u0114\u0116\u0118\u011A\u011C\u011E\u0120\u0122\u0124\u0126\u0128\u012A\u012C\u012E\u0130\u0132\u0134\u0136\u0139\u013B\u013D\u013F\u0141\u0143\u0145\u0147\u014A\u014C\u014E\u0150\u0152\u0154\u0156\u0158\u015A\u015C\u015E\u0160\u0162\u0164\u0166\u0168\u016A\u016C\u016E\u0170\u0172\u0174\u0176\u0178-\u0179\u017B\u017D\u0181-\u0182\u0184\u0186-\u0187\u0189-\u018B\u018E-\u0191\u0193-\u0194\u0196-\u0198\u019C-\u019D\u019F-\u01A0\u01A2\u01A4\u01A6-\u01A7\u01A9\u01AC\u01AE-\u01AF\u01B1-\u01B3\u01B5\u01B7-\u01B8\u01BC\u01C4\u01C7\u01CA\u01CD\u01CF\u01D1\u01D3\u01D5\u01D7\u01D9\u01DB\u01DE\u01E0\u01E2\u01E4\u01E6\u01E8\u01EA\u01EC\u01EE\u01F1\u01F4\u01F6-\u01F8\u01FA\u01FC\u01FE\u0200\u0202\u0204\u0206\u0208\u020A\u020C\u020E\u0210\u0212\u0214\u0216\u0218\u021A\u021C\u021E\u0220\u0222\u0224\u0226\u0228\u022A\u022C\u022E\u0230\u0232\u023A-\u023B\u023D-\u023E\u0241\u0243-\u0246\u0248\u024A\u024C\u024E\u0370\u0372\u0376\u037F\u0386\u0388-\u038A\u038C\u038E-\u038F\u0391-\u03A1\u03A3-\u03AB\u03CF\u03D2-\u03D4\u03D8\u03DA\u03DC\u03DE\u03E0\u03E2\u03E4\u03E6\u03E8\u03EA\u03EC\u03EE\u03F4\u03F7\u03F9-\u03FA\u03FD-\u042F\u0460\u0462\u0464\u0466\u0468\u046A\u046C\u046E\u0470\u0472\u0474\u0476\u0478\u047A\u047C\u047E\u0480\u048A\u048C\u048E\u0490\u0492\u0494\u0496\u0498\u049A\u049C\u049E\u04A0\u04A2\u04A4\u04A6\u04A8\u04AA\u04AC\u04AE\u04B0\u04B2\u04B4\u04B6\u04B8\u04BA\u04BC\u04BE\u04C0-\u04C1\u04C3\u04C5\u04C7\u04C9\u04CB\u04CD\u04D0\u04D2\u04D4\u04D6\u04D8\u04DA\u04DC\u04DE\u04E0\u04E2\u04E4\u04E6\u04E8\u04EA\u04EC\u04EE\u04F0\u04F2\u04F4\u04F6\u04F8\u04FA\u04FC\u04FE\u0500\u0502\u0504\u0506\u0508\u050A\u050C\u050E\u0510\u0512\u0514\u0516\u0518\u051A\u051C\u051E\u0520\u0522\u0524\u0526\u0528\u052A\u052C\u052E\u0531-\u0556\u10A0-\u10C5\u10C7\u10CD\u13A0-\u13F5\u1C90-\u1CBA\u1CBD-\u1CBF\u1E00\u1E02\u1E04\u1E06\u1E08\u1E0A\u1E0C\u1E0E\u1E10\u1E12\u1E14\u1E16\u1E18\u1E1A\u1E1C\u1E1E\u1E20\u1E22\u1E24\u1E26\u1E28\u1E2A\u1E2C\u1E2E\u1E30\u1E32\u1E34\u1E36\u1E38\u1E3A\u1E3C\u1E3E\u1E40\u1E42\u1E44\u1E46\u1E48\u1E4A\u1E4C\u1E4E\u1E50\u1E52\u1E54\u1E56\u1E58\u1E5A\u1E5C\u1E5E\u1E60\u1E62\u1E64\u1E66\u1E68\u1E6A\u1E6C\u1E6E\u1E70\u1E72\u1E74\u1E76\u1E78\u1E7A\u1E7C\u1E7E\u1E80\u1E82\u1E84\u1E86\u1E88\u1E8A\u1E8C\u1E8E\u1E90\u1E92\u1E94\u1E9E\u1EA0\u1EA2\u1EA4\u1EA6\u1EA8\u1EAA\u1EAC\u1EAE\u1EB0\u1EB2\u1EB4\u1EB6\u1EB8\u1EBA\u1EBC\u1EBE\u1EC0\u1EC2\u1EC4\u1EC6\u1EC8\u1ECA\u1ECC\u1ECE\u1ED0\u1ED2\u1ED4\u1ED6\u1ED8\u1EDA\u1EDC\u1EDE\u1EE0\u1EE2\u1EE4\u1EE6\u1EE8\u1EEA\u1EEC\u1EEE\u1EF0\u1EF2\u1EF4\u1EF6\u1EF8\u1EFA\u1EFC\u1EFE\u1F08-\u1F0F\u1F18-\u1F1D\u1F28-\u1F2F\u1F38-\u1F3F\u1F48-\u1F4D\u1F59\u1F5B\u1F5D\u1F5F\u1F68-\u1F6F\u1FB8-\u1FBB\u1FC8-\u1FCB\u1FD8-\u1FDB\u1FE8-\u1FEC\u1FF8-\u1FFB\u2102\u2107\u210B-\u210D\u2110-\u2112\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u2130-\u2133\u213E-\u213F\u2145\u2183\u2C00-\u2C2E\u2C60\u2C62-\u2C64\u2C67\u2C69\u2C6B\u2C6D-\u2C70\u2C72\u2C75\u2C7E-\u2C80\u2C82\u2C84\u2C86\u2C88\u2C8A\u2C8C\u2C8E\u2C90\u2C92\u2C94\u2C96\u2C98\u2C9A\u2C9C\u2C9E\u2CA0\u2CA2\u2CA4\u2CA6\u2CA8\u2CAA\u2CAC\u2CAE\u2CB0\u2CB2\u2CB4\u2CB6\u2CB8\u2CBA\u2CBC\u2CBE\u2CC0\u2CC2\u2CC4\u2CC6\u2CC8\u2CCA\u2CCC\u2CCE\u2CD0\u2CD2\u2CD4\u2CD6\u2CD8\u2CDA\u2CDC\u2CDE\u2CE0\u2CE2\u2CEB\u2CED\u2CF2\uA640\uA642\uA644\uA646\uA648\uA64A\uA64C\uA64E\uA650\uA652\uA654\uA656\uA658\uA65A\uA65C\uA65E\uA660\uA662\uA664\uA666\uA668\uA66A\uA66C\uA680\uA682\uA684\uA686\uA688\uA68A\uA68C\uA68E\uA690\uA692\uA694\uA696\uA698\uA69A\uA722\uA724\uA726\uA728\uA72A\uA72C\uA72E\uA732\uA734\uA736\uA738\uA73A\uA73C\uA73E\uA740\uA742\uA744\uA746\uA748\uA74A\uA74C\uA74E\uA750\uA752\uA754\uA756\uA758\uA75A\uA75C\uA75E\uA760\uA762\uA764\uA766\uA768\uA76A\uA76C\uA76E\uA779\uA77B\uA77D-\uA77E\uA780\uA782\uA784\uA786\uA78B\uA78D\uA790\uA792\uA796\uA798\uA79A\uA79C\uA79E\uA7A0\uA7A2\uA7A4\uA7A6\uA7A8\uA7AA-\uA7AE\uA7B0-\uA7B4\uA7B6\uA7B8\uFF21-\uFF3A]/; - var peg$r11 = /^[\u16EE-\u16F0\u2160-\u2182\u2185-\u2188\u3007\u3021-\u3029\u3038-\u303A\uA6E6-\uA6EF]/; + var peg$r2 = /^[+\-]/; + var peg$r3 = /^[0-9]/; + var peg$r4 = /^[ \n\r\t\xA0]/; + var peg$r5 = /^["']/; + var peg$r6 = /^[#\--.0-9A-Z\^-_a-z~\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376-\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u052F\u0531-\u0556\u0559\u0560-\u0588\u05D0-\u05EA\u05EF-\u05F2\u0620-\u064A\u066E-\u066F\u0671-\u06D3\u06D5\u06E5-\u06E6\u06EE-\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA\u07F4-\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u0860-\u086A\u08A0-\u08B4\u08B6-\u08BD\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098C\u098F-\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC-\u09DD\u09DF-\u09E1\u09F0-\u09F1\u09FC\u0A05-\u0A0A\u0A0F-\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32-\u0A33\u0A35-\u0A36\u0A38-\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2-\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0-\u0AE1\u0AF9\u0B05-\u0B0C\u0B0F-\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32-\u0B33\u0B35-\u0B39\u0B3D\u0B5C-\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99-\u0B9A\u0B9C\u0B9E-\u0B9F\u0BA3-\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D\u0C58-\u0C5A\u0C60-\u0C61\u0C80\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0-\u0CE1\u0CF1-\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D54-\u0D56\u0D5F-\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32-\u0E33\u0E40-\u0E46\u0E81-\u0E82\u0E84\u0E87-\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA-\u0EAB\u0EAD-\u0EB0\u0EB2-\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065-\u1066\u106E-\u1070\u1075-\u1081\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u170C\u170E-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u1820-\u1878\u1880-\u1884\u1887-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191E\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u1A00-\u1A16\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4B\u1B83-\u1BA0\u1BAE-\u1BAF\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1C80-\u1C88\u1C90-\u1CBA\u1CBD-\u1CBF\u1CE9-\u1CEC\u1CEE-\u1CF1\u1CF5-\u1CF6\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CEE\u2CF2-\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2E2F\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303C\u3041-\u3096\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312F\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FEF\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A-\uA62B\uA640-\uA66E\uA67F-\uA69D\uA6A0-\uA6EF\uA717-\uA71F\uA722-\uA788\uA78B-\uA7B9\uA7F7-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB\uA8FD-\uA8FE\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uA9E0-\uA9E4\uA9E6-\uA9EF\uA9FA-\uA9FE\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA7E-\uAAAF\uAAB1\uAAB5-\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB65\uAB70-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40-\uFB41\uFB43-\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]/; + var peg$r7 = /^[@_]/; + var peg$r8 = /^[^\n]/; + var peg$r9 = /^[A-Za-z\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376-\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u052F\u0531-\u0556\u0559\u0560-\u0588\u05D0-\u05EA\u05EF-\u05F2\u0620-\u064A\u066E-\u066F\u0671-\u06D3\u06D5\u06E5-\u06E6\u06EE-\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA\u07F4-\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u0860-\u086A\u08A0-\u08B4\u08B6-\u08BD\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098C\u098F-\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC-\u09DD\u09DF-\u09E1\u09F0-\u09F1\u09FC\u0A05-\u0A0A\u0A0F-\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32-\u0A33\u0A35-\u0A36\u0A38-\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2-\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0-\u0AE1\u0AF9\u0B05-\u0B0C\u0B0F-\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32-\u0B33\u0B35-\u0B39\u0B3D\u0B5C-\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99-\u0B9A\u0B9C\u0B9E-\u0B9F\u0BA3-\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D\u0C58-\u0C5A\u0C60-\u0C61\u0C80\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0-\u0CE1\u0CF1-\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D54-\u0D56\u0D5F-\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32-\u0E33\u0E40-\u0E46\u0E81-\u0E82\u0E84\u0E87-\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA-\u0EAB\u0EAD-\u0EB0\u0EB2-\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065-\u1066\u106E-\u1070\u1075-\u1081\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u170C\u170E-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u1820-\u1878\u1880-\u1884\u1887-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191E\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u1A00-\u1A16\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4B\u1B83-\u1BA0\u1BAE-\u1BAF\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1C80-\u1C88\u1C90-\u1CBA\u1CBD-\u1CBF\u1CE9-\u1CEC\u1CEE-\u1CF1\u1CF5-\u1CF6\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CEE\u2CF2-\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2E2F\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303C\u3041-\u3096\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312F\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FEF\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A-\uA62B\uA640-\uA66E\uA67F-\uA69D\uA6A0-\uA6EF\uA717-\uA71F\uA722-\uA788\uA78B-\uA7B9\uA7F7-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB\uA8FD-\uA8FE\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uA9E0-\uA9E4\uA9E6-\uA9EF\uA9FA-\uA9FE\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA7E-\uAAAF\uAAB1\uAAB5-\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB65\uAB70-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40-\uFB41\uFB43-\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]/; + var peg$r10 = /^[a-z\xB5\xDF-\xF6\xF8-\xFF\u0101\u0103\u0105\u0107\u0109\u010B\u010D\u010F\u0111\u0113\u0115\u0117\u0119\u011B\u011D\u011F\u0121\u0123\u0125\u0127\u0129\u012B\u012D\u012F\u0131\u0133\u0135\u0137-\u0138\u013A\u013C\u013E\u0140\u0142\u0144\u0146\u0148-\u0149\u014B\u014D\u014F\u0151\u0153\u0155\u0157\u0159\u015B\u015D\u015F\u0161\u0163\u0165\u0167\u0169\u016B\u016D\u016F\u0171\u0173\u0175\u0177\u017A\u017C\u017E-\u0180\u0183\u0185\u0188\u018C-\u018D\u0192\u0195\u0199-\u019B\u019E\u01A1\u01A3\u01A5\u01A8\u01AA-\u01AB\u01AD\u01B0\u01B4\u01B6\u01B9-\u01BA\u01BD-\u01BF\u01C6\u01C9\u01CC\u01CE\u01D0\u01D2\u01D4\u01D6\u01D8\u01DA\u01DC-\u01DD\u01DF\u01E1\u01E3\u01E5\u01E7\u01E9\u01EB\u01ED\u01EF-\u01F0\u01F3\u01F5\u01F9\u01FB\u01FD\u01FF\u0201\u0203\u0205\u0207\u0209\u020B\u020D\u020F\u0211\u0213\u0215\u0217\u0219\u021B\u021D\u021F\u0221\u0223\u0225\u0227\u0229\u022B\u022D\u022F\u0231\u0233-\u0239\u023C\u023F-\u0240\u0242\u0247\u0249\u024B\u024D\u024F-\u0293\u0295-\u02AF\u0371\u0373\u0377\u037B-\u037D\u0390\u03AC-\u03CE\u03D0-\u03D1\u03D5-\u03D7\u03D9\u03DB\u03DD\u03DF\u03E1\u03E3\u03E5\u03E7\u03E9\u03EB\u03ED\u03EF-\u03F3\u03F5\u03F8\u03FB-\u03FC\u0430-\u045F\u0461\u0463\u0465\u0467\u0469\u046B\u046D\u046F\u0471\u0473\u0475\u0477\u0479\u047B\u047D\u047F\u0481\u048B\u048D\u048F\u0491\u0493\u0495\u0497\u0499\u049B\u049D\u049F\u04A1\u04A3\u04A5\u04A7\u04A9\u04AB\u04AD\u04AF\u04B1\u04B3\u04B5\u04B7\u04B9\u04BB\u04BD\u04BF\u04C2\u04C4\u04C6\u04C8\u04CA\u04CC\u04CE-\u04CF\u04D1\u04D3\u04D5\u04D7\u04D9\u04DB\u04DD\u04DF\u04E1\u04E3\u04E5\u04E7\u04E9\u04EB\u04ED\u04EF\u04F1\u04F3\u04F5\u04F7\u04F9\u04FB\u04FD\u04FF\u0501\u0503\u0505\u0507\u0509\u050B\u050D\u050F\u0511\u0513\u0515\u0517\u0519\u051B\u051D\u051F\u0521\u0523\u0525\u0527\u0529\u052B\u052D\u052F\u0560-\u0588\u10D0-\u10FA\u10FD-\u10FF\u13F8-\u13FD\u1C80-\u1C88\u1D00-\u1D2B\u1D6B-\u1D77\u1D79-\u1D9A\u1E01\u1E03\u1E05\u1E07\u1E09\u1E0B\u1E0D\u1E0F\u1E11\u1E13\u1E15\u1E17\u1E19\u1E1B\u1E1D\u1E1F\u1E21\u1E23\u1E25\u1E27\u1E29\u1E2B\u1E2D\u1E2F\u1E31\u1E33\u1E35\u1E37\u1E39\u1E3B\u1E3D\u1E3F\u1E41\u1E43\u1E45\u1E47\u1E49\u1E4B\u1E4D\u1E4F\u1E51\u1E53\u1E55\u1E57\u1E59\u1E5B\u1E5D\u1E5F\u1E61\u1E63\u1E65\u1E67\u1E69\u1E6B\u1E6D\u1E6F\u1E71\u1E73\u1E75\u1E77\u1E79\u1E7B\u1E7D\u1E7F\u1E81\u1E83\u1E85\u1E87\u1E89\u1E8B\u1E8D\u1E8F\u1E91\u1E93\u1E95-\u1E9D\u1E9F\u1EA1\u1EA3\u1EA5\u1EA7\u1EA9\u1EAB\u1EAD\u1EAF\u1EB1\u1EB3\u1EB5\u1EB7\u1EB9\u1EBB\u1EBD\u1EBF\u1EC1\u1EC3\u1EC5\u1EC7\u1EC9\u1ECB\u1ECD\u1ECF\u1ED1\u1ED3\u1ED5\u1ED7\u1ED9\u1EDB\u1EDD\u1EDF\u1EE1\u1EE3\u1EE5\u1EE7\u1EE9\u1EEB\u1EED\u1EEF\u1EF1\u1EF3\u1EF5\u1EF7\u1EF9\u1EFB\u1EFD\u1EFF-\u1F07\u1F10-\u1F15\u1F20-\u1F27\u1F30-\u1F37\u1F40-\u1F45\u1F50-\u1F57\u1F60-\u1F67\u1F70-\u1F7D\u1F80-\u1F87\u1F90-\u1F97\u1FA0-\u1FA7\u1FB0-\u1FB4\u1FB6-\u1FB7\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FC7\u1FD0-\u1FD3\u1FD6-\u1FD7\u1FE0-\u1FE7\u1FF2-\u1FF4\u1FF6-\u1FF7\u210A\u210E-\u210F\u2113\u212F\u2134\u2139\u213C-\u213D\u2146-\u2149\u214E\u2184\u2C30-\u2C5E\u2C61\u2C65-\u2C66\u2C68\u2C6A\u2C6C\u2C71\u2C73-\u2C74\u2C76-\u2C7B\u2C81\u2C83\u2C85\u2C87\u2C89\u2C8B\u2C8D\u2C8F\u2C91\u2C93\u2C95\u2C97\u2C99\u2C9B\u2C9D\u2C9F\u2CA1\u2CA3\u2CA5\u2CA7\u2CA9\u2CAB\u2CAD\u2CAF\u2CB1\u2CB3\u2CB5\u2CB7\u2CB9\u2CBB\u2CBD\u2CBF\u2CC1\u2CC3\u2CC5\u2CC7\u2CC9\u2CCB\u2CCD\u2CCF\u2CD1\u2CD3\u2CD5\u2CD7\u2CD9\u2CDB\u2CDD\u2CDF\u2CE1\u2CE3-\u2CE4\u2CEC\u2CEE\u2CF3\u2D00-\u2D25\u2D27\u2D2D\uA641\uA643\uA645\uA647\uA649\uA64B\uA64D\uA64F\uA651\uA653\uA655\uA657\uA659\uA65B\uA65D\uA65F\uA661\uA663\uA665\uA667\uA669\uA66B\uA66D\uA681\uA683\uA685\uA687\uA689\uA68B\uA68D\uA68F\uA691\uA693\uA695\uA697\uA699\uA69B\uA723\uA725\uA727\uA729\uA72B\uA72D\uA72F-\uA731\uA733\uA735\uA737\uA739\uA73B\uA73D\uA73F\uA741\uA743\uA745\uA747\uA749\uA74B\uA74D\uA74F\uA751\uA753\uA755\uA757\uA759\uA75B\uA75D\uA75F\uA761\uA763\uA765\uA767\uA769\uA76B\uA76D\uA76F\uA771-\uA778\uA77A\uA77C\uA77F\uA781\uA783\uA785\uA787\uA78C\uA78E\uA791\uA793-\uA795\uA797\uA799\uA79B\uA79D\uA79F\uA7A1\uA7A3\uA7A5\uA7A7\uA7A9\uA7AF\uA7B5\uA7B7\uA7B9\uA7FA\uAB30-\uAB5A\uAB60-\uAB65\uAB70-\uABBF\uFB00-\uFB06\uFB13-\uFB17\uFF41-\uFF5A]/; + var peg$r11 = /^[\u02B0-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0374\u037A\u0559\u0640\u06E5-\u06E6\u07F4-\u07F5\u07FA\u081A\u0824\u0828\u0971\u0E46\u0EC6\u10FC\u17D7\u1843\u1AA7\u1C78-\u1C7D\u1D2C-\u1D6A\u1D78\u1D9B-\u1DBF\u2071\u207F\u2090-\u209C\u2C7C-\u2C7D\u2D6F\u2E2F\u3005\u3031-\u3035\u303B\u309D-\u309E\u30FC-\u30FE\uA015\uA4F8-\uA4FD\uA60C\uA67F\uA69C-\uA69D\uA717-\uA71F\uA770\uA788\uA7F8-\uA7F9\uA9CF\uA9E6\uAA70\uAADD\uAAF3-\uAAF4\uAB5C-\uAB5F\uFF70\uFF9E-\uFF9F]/; + var peg$r12 = /^[\xAA\xBA\u01BB\u01C0-\u01C3\u0294\u05D0-\u05EA\u05EF-\u05F2\u0620-\u063F\u0641-\u064A\u066E-\u066F\u0671-\u06D3\u06D5\u06EE-\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA\u0800-\u0815\u0840-\u0858\u0860-\u086A\u08A0-\u08B4\u08B6-\u08BD\u0904-\u0939\u093D\u0950\u0958-\u0961\u0972-\u0980\u0985-\u098C\u098F-\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC-\u09DD\u09DF-\u09E1\u09F0-\u09F1\u09FC\u0A05-\u0A0A\u0A0F-\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32-\u0A33\u0A35-\u0A36\u0A38-\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2-\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0-\u0AE1\u0AF9\u0B05-\u0B0C\u0B0F-\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32-\u0B33\u0B35-\u0B39\u0B3D\u0B5C-\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99-\u0B9A\u0B9C\u0B9E-\u0B9F\u0BA3-\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D\u0C58-\u0C5A\u0C60-\u0C61\u0C80\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0-\u0CE1\u0CF1-\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D54-\u0D56\u0D5F-\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32-\u0E33\u0E40-\u0E45\u0E81-\u0E82\u0E84\u0E87-\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA-\u0EAB\u0EAD-\u0EB0\u0EB2-\u0EB3\u0EBD\u0EC0-\u0EC4\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065-\u1066\u106E-\u1070\u1075-\u1081\u108E\u1100-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1380-\u138F\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16F1-\u16F8\u1700-\u170C\u170E-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17DC\u1820-\u1842\u1844-\u1878\u1880-\u1884\u1887-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191E\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u1A00-\u1A16\u1A20-\u1A54\u1B05-\u1B33\u1B45-\u1B4B\u1B83-\u1BA0\u1BAE-\u1BAF\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C77\u1CE9-\u1CEC\u1CEE-\u1CF1\u1CF5-\u1CF6\u2135-\u2138\u2D30-\u2D67\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u3006\u303C\u3041-\u3096\u309F\u30A1-\u30FA\u30FF\u3105-\u312F\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FEF\uA000-\uA014\uA016-\uA48C\uA4D0-\uA4F7\uA500-\uA60B\uA610-\uA61F\uA62A-\uA62B\uA66E\uA6A0-\uA6E5\uA78F\uA7F7\uA7FB-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB\uA8FD-\uA8FE\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9E0-\uA9E4\uA9E7-\uA9EF\uA9FA-\uA9FE\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA6F\uAA71-\uAA76\uAA7A\uAA7E-\uAAAF\uAAB1\uAAB5-\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADC\uAAE0-\uAAEA\uAAF2\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uABC0-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40-\uFB41\uFB43-\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF66-\uFF6F\uFF71-\uFF9D\uFFA0-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]/; + var peg$r13 = /^[\u01C5\u01C8\u01CB\u01F2\u1F88-\u1F8F\u1F98-\u1F9F\u1FA8-\u1FAF\u1FBC\u1FCC\u1FFC]/; + var peg$r14 = /^[A-Z\xC0-\xD6\xD8-\xDE\u0100\u0102\u0104\u0106\u0108\u010A\u010C\u010E\u0110\u0112\u0114\u0116\u0118\u011A\u011C\u011E\u0120\u0122\u0124\u0126\u0128\u012A\u012C\u012E\u0130\u0132\u0134\u0136\u0139\u013B\u013D\u013F\u0141\u0143\u0145\u0147\u014A\u014C\u014E\u0150\u0152\u0154\u0156\u0158\u015A\u015C\u015E\u0160\u0162\u0164\u0166\u0168\u016A\u016C\u016E\u0170\u0172\u0174\u0176\u0178-\u0179\u017B\u017D\u0181-\u0182\u0184\u0186-\u0187\u0189-\u018B\u018E-\u0191\u0193-\u0194\u0196-\u0198\u019C-\u019D\u019F-\u01A0\u01A2\u01A4\u01A6-\u01A7\u01A9\u01AC\u01AE-\u01AF\u01B1-\u01B3\u01B5\u01B7-\u01B8\u01BC\u01C4\u01C7\u01CA\u01CD\u01CF\u01D1\u01D3\u01D5\u01D7\u01D9\u01DB\u01DE\u01E0\u01E2\u01E4\u01E6\u01E8\u01EA\u01EC\u01EE\u01F1\u01F4\u01F6-\u01F8\u01FA\u01FC\u01FE\u0200\u0202\u0204\u0206\u0208\u020A\u020C\u020E\u0210\u0212\u0214\u0216\u0218\u021A\u021C\u021E\u0220\u0222\u0224\u0226\u0228\u022A\u022C\u022E\u0230\u0232\u023A-\u023B\u023D-\u023E\u0241\u0243-\u0246\u0248\u024A\u024C\u024E\u0370\u0372\u0376\u037F\u0386\u0388-\u038A\u038C\u038E-\u038F\u0391-\u03A1\u03A3-\u03AB\u03CF\u03D2-\u03D4\u03D8\u03DA\u03DC\u03DE\u03E0\u03E2\u03E4\u03E6\u03E8\u03EA\u03EC\u03EE\u03F4\u03F7\u03F9-\u03FA\u03FD-\u042F\u0460\u0462\u0464\u0466\u0468\u046A\u046C\u046E\u0470\u0472\u0474\u0476\u0478\u047A\u047C\u047E\u0480\u048A\u048C\u048E\u0490\u0492\u0494\u0496\u0498\u049A\u049C\u049E\u04A0\u04A2\u04A4\u04A6\u04A8\u04AA\u04AC\u04AE\u04B0\u04B2\u04B4\u04B6\u04B8\u04BA\u04BC\u04BE\u04C0-\u04C1\u04C3\u04C5\u04C7\u04C9\u04CB\u04CD\u04D0\u04D2\u04D4\u04D6\u04D8\u04DA\u04DC\u04DE\u04E0\u04E2\u04E4\u04E6\u04E8\u04EA\u04EC\u04EE\u04F0\u04F2\u04F4\u04F6\u04F8\u04FA\u04FC\u04FE\u0500\u0502\u0504\u0506\u0508\u050A\u050C\u050E\u0510\u0512\u0514\u0516\u0518\u051A\u051C\u051E\u0520\u0522\u0524\u0526\u0528\u052A\u052C\u052E\u0531-\u0556\u10A0-\u10C5\u10C7\u10CD\u13A0-\u13F5\u1C90-\u1CBA\u1CBD-\u1CBF\u1E00\u1E02\u1E04\u1E06\u1E08\u1E0A\u1E0C\u1E0E\u1E10\u1E12\u1E14\u1E16\u1E18\u1E1A\u1E1C\u1E1E\u1E20\u1E22\u1E24\u1E26\u1E28\u1E2A\u1E2C\u1E2E\u1E30\u1E32\u1E34\u1E36\u1E38\u1E3A\u1E3C\u1E3E\u1E40\u1E42\u1E44\u1E46\u1E48\u1E4A\u1E4C\u1E4E\u1E50\u1E52\u1E54\u1E56\u1E58\u1E5A\u1E5C\u1E5E\u1E60\u1E62\u1E64\u1E66\u1E68\u1E6A\u1E6C\u1E6E\u1E70\u1E72\u1E74\u1E76\u1E78\u1E7A\u1E7C\u1E7E\u1E80\u1E82\u1E84\u1E86\u1E88\u1E8A\u1E8C\u1E8E\u1E90\u1E92\u1E94\u1E9E\u1EA0\u1EA2\u1EA4\u1EA6\u1EA8\u1EAA\u1EAC\u1EAE\u1EB0\u1EB2\u1EB4\u1EB6\u1EB8\u1EBA\u1EBC\u1EBE\u1EC0\u1EC2\u1EC4\u1EC6\u1EC8\u1ECA\u1ECC\u1ECE\u1ED0\u1ED2\u1ED4\u1ED6\u1ED8\u1EDA\u1EDC\u1EDE\u1EE0\u1EE2\u1EE4\u1EE6\u1EE8\u1EEA\u1EEC\u1EEE\u1EF0\u1EF2\u1EF4\u1EF6\u1EF8\u1EFA\u1EFC\u1EFE\u1F08-\u1F0F\u1F18-\u1F1D\u1F28-\u1F2F\u1F38-\u1F3F\u1F48-\u1F4D\u1F59\u1F5B\u1F5D\u1F5F\u1F68-\u1F6F\u1FB8-\u1FBB\u1FC8-\u1FCB\u1FD8-\u1FDB\u1FE8-\u1FEC\u1FF8-\u1FFB\u2102\u2107\u210B-\u210D\u2110-\u2112\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u2130-\u2133\u213E-\u213F\u2145\u2183\u2C00-\u2C2E\u2C60\u2C62-\u2C64\u2C67\u2C69\u2C6B\u2C6D-\u2C70\u2C72\u2C75\u2C7E-\u2C80\u2C82\u2C84\u2C86\u2C88\u2C8A\u2C8C\u2C8E\u2C90\u2C92\u2C94\u2C96\u2C98\u2C9A\u2C9C\u2C9E\u2CA0\u2CA2\u2CA4\u2CA6\u2CA8\u2CAA\u2CAC\u2CAE\u2CB0\u2CB2\u2CB4\u2CB6\u2CB8\u2CBA\u2CBC\u2CBE\u2CC0\u2CC2\u2CC4\u2CC6\u2CC8\u2CCA\u2CCC\u2CCE\u2CD0\u2CD2\u2CD4\u2CD6\u2CD8\u2CDA\u2CDC\u2CDE\u2CE0\u2CE2\u2CEB\u2CED\u2CF2\uA640\uA642\uA644\uA646\uA648\uA64A\uA64C\uA64E\uA650\uA652\uA654\uA656\uA658\uA65A\uA65C\uA65E\uA660\uA662\uA664\uA666\uA668\uA66A\uA66C\uA680\uA682\uA684\uA686\uA688\uA68A\uA68C\uA68E\uA690\uA692\uA694\uA696\uA698\uA69A\uA722\uA724\uA726\uA728\uA72A\uA72C\uA72E\uA732\uA734\uA736\uA738\uA73A\uA73C\uA73E\uA740\uA742\uA744\uA746\uA748\uA74A\uA74C\uA74E\uA750\uA752\uA754\uA756\uA758\uA75A\uA75C\uA75E\uA760\uA762\uA764\uA766\uA768\uA76A\uA76C\uA76E\uA779\uA77B\uA77D-\uA77E\uA780\uA782\uA784\uA786\uA78B\uA78D\uA790\uA792\uA796\uA798\uA79A\uA79C\uA79E\uA7A0\uA7A2\uA7A4\uA7A6\uA7A8\uA7AA-\uA7AE\uA7B0-\uA7B4\uA7B6\uA7B8\uFF21-\uFF3A]/; + var peg$r15 = /^[\u16EE-\u16F0\u2160-\u2182\u2185-\u2188\u3007\u3021-\u3029\u3038-\u303A\uA6E6-\uA6EF]/; var peg$e0 = peg$otherExpectation("number"); var peg$e1 = peg$literalExpectation(".", false); var peg$e2 = peg$classExpectation([["1", "9"]], false, false); var peg$e3 = peg$classExpectation(["e", "E"], false, false); - var peg$e4 = peg$literalExpectation("-", false); - var peg$e5 = peg$literalExpectation("+", false); - var peg$e6 = peg$literalExpectation("0", false); - var peg$e7 = peg$classExpectation([["0", "9"]], false, false); - var peg$e8 = peg$otherExpectation("whitespace"); - var peg$e9 = peg$classExpectation([" ", "\n", "\r", "\t", "\xA0"], false, false); - var peg$e10 = peg$literalExpectation(",", false); - var peg$e11 = peg$literalExpectation("|", false); - var peg$e12 = peg$literalExpectation("\"", false); - var peg$e13 = peg$literalExpectation("'", false); + var peg$e4 = peg$classExpectation(["+", "-"], false, false); + var peg$e5 = peg$literalExpectation("-", false); + var peg$e6 = peg$literalExpectation("+", false); + var peg$e7 = peg$literalExpectation("0", false); + var peg$e8 = peg$classExpectation([["0", "9"]], false, false); + var peg$e9 = peg$otherExpectation("whitespace"); + var peg$e10 = peg$classExpectation([" ", "\n", "\r", "\t", "\xA0"], false, false); + var peg$e11 = peg$literalExpectation(",", false); + var peg$e12 = peg$literalExpectation("|", false); + var peg$e13 = peg$classExpectation(["\"", "'"], false, false); var peg$e14 = peg$otherExpectation("a letter, a number, \"-\", \"#\", \".\", \"^\", \"_\""); - var peg$e15 = peg$classExpectation([["0", "9"], "~"], false, false); - var peg$e16 = peg$literalExpectation("#", false); - var peg$e17 = peg$literalExpectation("^", false); - var peg$e18 = peg$literalExpectation("_", false); - var peg$e19 = peg$literalExpectation("[", false); - var peg$e20 = peg$literalExpectation("]", false); - var peg$e21 = peg$literalExpectation("{", false); - var peg$e22 = peg$literalExpectation("}", false); - var peg$e23 = peg$literalExpectation("%", false); - var peg$e24 = peg$literalExpectation("<", false); - var peg$e25 = peg$literalExpectation(">", false); - var peg$e26 = peg$literalExpectation("@", false); - var peg$e27 = peg$literalExpectation("!", false); - var peg$e28 = peg$literalExpectation("(", false); - var peg$e29 = peg$literalExpectation(")", false); - var peg$e30 = peg$literalExpectation("/", false); - var peg$e31 = peg$literalExpectation("*", false); - var peg$e32 = peg$literalExpectation("?", false); - var peg$e33 = peg$literalExpectation(":", false); - var peg$e34 = peg$literalExpectation("..", false); - var peg$e35 = peg$literalExpectation("struct", false); - var peg$e36 = peg$literalExpectation("target", false); - var peg$e37 = peg$literalExpectation("euclid", false); - var peg$e38 = peg$literalExpectation("slow", false); - var peg$e39 = peg$literalExpectation("rotL", false); - var peg$e40 = peg$literalExpectation("rotR", false); - var peg$e41 = peg$literalExpectation("fast", false); - var peg$e42 = peg$literalExpectation("scale", false); - var peg$e43 = peg$literalExpectation("//", false); - var peg$e44 = peg$classExpectation(["\n"], true, false); - var peg$e45 = peg$literalExpectation("cat", false); - var peg$e46 = peg$literalExpectation("$", false); - var peg$e47 = peg$literalExpectation("setcps", false); - var peg$e48 = peg$literalExpectation("setbpm", false); - var peg$e49 = peg$literalExpectation("hush", false); - var peg$e50 = peg$classExpectation([["a", "z"], "\xB5", ["\xDF", "\xF6"], ["\xF8", "\xFF"], "\u0101", "\u0103", "\u0105", "\u0107", "\u0109", "\u010B", "\u010D", "\u010F", "\u0111", "\u0113", "\u0115", "\u0117", "\u0119", "\u011B", "\u011D", "\u011F", "\u0121", "\u0123", "\u0125", "\u0127", "\u0129", "\u012B", "\u012D", "\u012F", "\u0131", "\u0133", "\u0135", ["\u0137", "\u0138"], "\u013A", "\u013C", "\u013E", "\u0140", "\u0142", "\u0144", "\u0146", ["\u0148", "\u0149"], "\u014B", "\u014D", "\u014F", "\u0151", "\u0153", "\u0155", "\u0157", "\u0159", "\u015B", "\u015D", "\u015F", "\u0161", "\u0163", "\u0165", "\u0167", "\u0169", "\u016B", "\u016D", "\u016F", "\u0171", "\u0173", "\u0175", "\u0177", "\u017A", "\u017C", ["\u017E", "\u0180"], "\u0183", "\u0185", "\u0188", ["\u018C", "\u018D"], "\u0192", "\u0195", ["\u0199", "\u019B"], "\u019E", "\u01A1", "\u01A3", "\u01A5", "\u01A8", ["\u01AA", "\u01AB"], "\u01AD", "\u01B0", "\u01B4", "\u01B6", ["\u01B9", "\u01BA"], ["\u01BD", "\u01BF"], "\u01C6", "\u01C9", "\u01CC", "\u01CE", "\u01D0", "\u01D2", "\u01D4", "\u01D6", "\u01D8", "\u01DA", ["\u01DC", "\u01DD"], "\u01DF", "\u01E1", "\u01E3", "\u01E5", "\u01E7", "\u01E9", "\u01EB", "\u01ED", ["\u01EF", "\u01F0"], "\u01F3", "\u01F5", "\u01F9", "\u01FB", "\u01FD", "\u01FF", "\u0201", "\u0203", "\u0205", "\u0207", "\u0209", "\u020B", "\u020D", "\u020F", "\u0211", "\u0213", "\u0215", "\u0217", "\u0219", "\u021B", "\u021D", "\u021F", "\u0221", "\u0223", "\u0225", "\u0227", "\u0229", "\u022B", "\u022D", "\u022F", "\u0231", ["\u0233", "\u0239"], "\u023C", ["\u023F", "\u0240"], "\u0242", "\u0247", "\u0249", "\u024B", "\u024D", ["\u024F", "\u0293"], ["\u0295", "\u02AF"], "\u0371", "\u0373", "\u0377", ["\u037B", "\u037D"], "\u0390", ["\u03AC", "\u03CE"], ["\u03D0", "\u03D1"], ["\u03D5", "\u03D7"], "\u03D9", "\u03DB", "\u03DD", "\u03DF", "\u03E1", "\u03E3", "\u03E5", "\u03E7", "\u03E9", "\u03EB", "\u03ED", ["\u03EF", "\u03F3"], "\u03F5", "\u03F8", ["\u03FB", "\u03FC"], ["\u0430", "\u045F"], "\u0461", "\u0463", "\u0465", "\u0467", "\u0469", "\u046B", "\u046D", "\u046F", "\u0471", "\u0473", "\u0475", "\u0477", "\u0479", "\u047B", "\u047D", "\u047F", "\u0481", "\u048B", "\u048D", "\u048F", "\u0491", "\u0493", "\u0495", "\u0497", "\u0499", "\u049B", "\u049D", "\u049F", "\u04A1", "\u04A3", "\u04A5", "\u04A7", "\u04A9", "\u04AB", "\u04AD", "\u04AF", "\u04B1", "\u04B3", "\u04B5", "\u04B7", "\u04B9", "\u04BB", "\u04BD", "\u04BF", "\u04C2", "\u04C4", "\u04C6", "\u04C8", "\u04CA", "\u04CC", ["\u04CE", "\u04CF"], "\u04D1", "\u04D3", "\u04D5", "\u04D7", "\u04D9", "\u04DB", "\u04DD", "\u04DF", "\u04E1", "\u04E3", "\u04E5", "\u04E7", "\u04E9", "\u04EB", "\u04ED", "\u04EF", "\u04F1", "\u04F3", "\u04F5", "\u04F7", "\u04F9", "\u04FB", "\u04FD", "\u04FF", "\u0501", "\u0503", "\u0505", "\u0507", "\u0509", "\u050B", "\u050D", "\u050F", "\u0511", "\u0513", "\u0515", "\u0517", "\u0519", "\u051B", "\u051D", "\u051F", "\u0521", "\u0523", "\u0525", "\u0527", "\u0529", "\u052B", "\u052D", "\u052F", ["\u0560", "\u0588"], ["\u10D0", "\u10FA"], ["\u10FD", "\u10FF"], ["\u13F8", "\u13FD"], ["\u1C80", "\u1C88"], ["\u1D00", "\u1D2B"], ["\u1D6B", "\u1D77"], ["\u1D79", "\u1D9A"], "\u1E01", "\u1E03", "\u1E05", "\u1E07", "\u1E09", "\u1E0B", "\u1E0D", "\u1E0F", "\u1E11", "\u1E13", "\u1E15", "\u1E17", "\u1E19", "\u1E1B", "\u1E1D", "\u1E1F", "\u1E21", "\u1E23", "\u1E25", "\u1E27", "\u1E29", "\u1E2B", "\u1E2D", "\u1E2F", "\u1E31", "\u1E33", "\u1E35", "\u1E37", "\u1E39", "\u1E3B", "\u1E3D", "\u1E3F", "\u1E41", "\u1E43", "\u1E45", "\u1E47", "\u1E49", "\u1E4B", "\u1E4D", "\u1E4F", "\u1E51", "\u1E53", "\u1E55", "\u1E57", "\u1E59", "\u1E5B", "\u1E5D", "\u1E5F", "\u1E61", "\u1E63", "\u1E65", "\u1E67", "\u1E69", "\u1E6B", "\u1E6D", "\u1E6F", "\u1E71", "\u1E73", "\u1E75", "\u1E77", "\u1E79", "\u1E7B", "\u1E7D", "\u1E7F", "\u1E81", "\u1E83", "\u1E85", "\u1E87", "\u1E89", "\u1E8B", "\u1E8D", "\u1E8F", "\u1E91", "\u1E93", ["\u1E95", "\u1E9D"], "\u1E9F", "\u1EA1", "\u1EA3", "\u1EA5", "\u1EA7", "\u1EA9", "\u1EAB", "\u1EAD", "\u1EAF", "\u1EB1", "\u1EB3", "\u1EB5", "\u1EB7", "\u1EB9", "\u1EBB", "\u1EBD", "\u1EBF", "\u1EC1", "\u1EC3", "\u1EC5", "\u1EC7", "\u1EC9", "\u1ECB", "\u1ECD", "\u1ECF", "\u1ED1", "\u1ED3", "\u1ED5", "\u1ED7", "\u1ED9", "\u1EDB", "\u1EDD", "\u1EDF", "\u1EE1", "\u1EE3", "\u1EE5", "\u1EE7", "\u1EE9", "\u1EEB", "\u1EED", "\u1EEF", "\u1EF1", "\u1EF3", "\u1EF5", "\u1EF7", "\u1EF9", "\u1EFB", "\u1EFD", ["\u1EFF", "\u1F07"], ["\u1F10", "\u1F15"], ["\u1F20", "\u1F27"], ["\u1F30", "\u1F37"], ["\u1F40", "\u1F45"], ["\u1F50", "\u1F57"], ["\u1F60", "\u1F67"], ["\u1F70", "\u1F7D"], ["\u1F80", "\u1F87"], ["\u1F90", "\u1F97"], ["\u1FA0", "\u1FA7"], ["\u1FB0", "\u1FB4"], ["\u1FB6", "\u1FB7"], "\u1FBE", ["\u1FC2", "\u1FC4"], ["\u1FC6", "\u1FC7"], ["\u1FD0", "\u1FD3"], ["\u1FD6", "\u1FD7"], ["\u1FE0", "\u1FE7"], ["\u1FF2", "\u1FF4"], ["\u1FF6", "\u1FF7"], "\u210A", ["\u210E", "\u210F"], "\u2113", "\u212F", "\u2134", "\u2139", ["\u213C", "\u213D"], ["\u2146", "\u2149"], "\u214E", "\u2184", ["\u2C30", "\u2C5E"], "\u2C61", ["\u2C65", "\u2C66"], "\u2C68", "\u2C6A", "\u2C6C", "\u2C71", ["\u2C73", "\u2C74"], ["\u2C76", "\u2C7B"], "\u2C81", "\u2C83", "\u2C85", "\u2C87", "\u2C89", "\u2C8B", "\u2C8D", "\u2C8F", "\u2C91", "\u2C93", "\u2C95", "\u2C97", "\u2C99", "\u2C9B", "\u2C9D", "\u2C9F", "\u2CA1", "\u2CA3", "\u2CA5", "\u2CA7", "\u2CA9", "\u2CAB", "\u2CAD", "\u2CAF", "\u2CB1", "\u2CB3", "\u2CB5", "\u2CB7", "\u2CB9", "\u2CBB", "\u2CBD", "\u2CBF", "\u2CC1", "\u2CC3", "\u2CC5", "\u2CC7", "\u2CC9", "\u2CCB", "\u2CCD", "\u2CCF", "\u2CD1", "\u2CD3", "\u2CD5", "\u2CD7", "\u2CD9", "\u2CDB", "\u2CDD", "\u2CDF", "\u2CE1", ["\u2CE3", "\u2CE4"], "\u2CEC", "\u2CEE", "\u2CF3", ["\u2D00", "\u2D25"], "\u2D27", "\u2D2D", "\uA641", "\uA643", "\uA645", "\uA647", "\uA649", "\uA64B", "\uA64D", "\uA64F", "\uA651", "\uA653", "\uA655", "\uA657", "\uA659", "\uA65B", "\uA65D", "\uA65F", "\uA661", "\uA663", "\uA665", "\uA667", "\uA669", "\uA66B", "\uA66D", "\uA681", "\uA683", "\uA685", "\uA687", "\uA689", "\uA68B", "\uA68D", "\uA68F", "\uA691", "\uA693", "\uA695", "\uA697", "\uA699", "\uA69B", "\uA723", "\uA725", "\uA727", "\uA729", "\uA72B", "\uA72D", ["\uA72F", "\uA731"], "\uA733", "\uA735", "\uA737", "\uA739", "\uA73B", "\uA73D", "\uA73F", "\uA741", "\uA743", "\uA745", "\uA747", "\uA749", "\uA74B", "\uA74D", "\uA74F", "\uA751", "\uA753", "\uA755", "\uA757", "\uA759", "\uA75B", "\uA75D", "\uA75F", "\uA761", "\uA763", "\uA765", "\uA767", "\uA769", "\uA76B", "\uA76D", "\uA76F", ["\uA771", "\uA778"], "\uA77A", "\uA77C", "\uA77F", "\uA781", "\uA783", "\uA785", "\uA787", "\uA78C", "\uA78E", "\uA791", ["\uA793", "\uA795"], "\uA797", "\uA799", "\uA79B", "\uA79D", "\uA79F", "\uA7A1", "\uA7A3", "\uA7A5", "\uA7A7", "\uA7A9", "\uA7AF", "\uA7B5", "\uA7B7", "\uA7B9", "\uA7FA", ["\uAB30", "\uAB5A"], ["\uAB60", "\uAB65"], ["\uAB70", "\uABBF"], ["\uFB00", "\uFB06"], ["\uFB13", "\uFB17"], ["\uFF41", "\uFF5A"]], false, false); - var peg$e51 = peg$classExpectation([["\u02B0", "\u02C1"], ["\u02C6", "\u02D1"], ["\u02E0", "\u02E4"], "\u02EC", "\u02EE", "\u0374", "\u037A", "\u0559", "\u0640", ["\u06E5", "\u06E6"], ["\u07F4", "\u07F5"], "\u07FA", "\u081A", "\u0824", "\u0828", "\u0971", "\u0E46", "\u0EC6", "\u10FC", "\u17D7", "\u1843", "\u1AA7", ["\u1C78", "\u1C7D"], ["\u1D2C", "\u1D6A"], "\u1D78", ["\u1D9B", "\u1DBF"], "\u2071", "\u207F", ["\u2090", "\u209C"], ["\u2C7C", "\u2C7D"], "\u2D6F", "\u2E2F", "\u3005", ["\u3031", "\u3035"], "\u303B", ["\u309D", "\u309E"], ["\u30FC", "\u30FE"], "\uA015", ["\uA4F8", "\uA4FD"], "\uA60C", "\uA67F", ["\uA69C", "\uA69D"], ["\uA717", "\uA71F"], "\uA770", "\uA788", ["\uA7F8", "\uA7F9"], "\uA9CF", "\uA9E6", "\uAA70", "\uAADD", ["\uAAF3", "\uAAF4"], ["\uAB5C", "\uAB5F"], "\uFF70", ["\uFF9E", "\uFF9F"]], false, false); - var peg$e52 = peg$classExpectation(["\xAA", "\xBA", "\u01BB", ["\u01C0", "\u01C3"], "\u0294", ["\u05D0", "\u05EA"], ["\u05EF", "\u05F2"], ["\u0620", "\u063F"], ["\u0641", "\u064A"], ["\u066E", "\u066F"], ["\u0671", "\u06D3"], "\u06D5", ["\u06EE", "\u06EF"], ["\u06FA", "\u06FC"], "\u06FF", "\u0710", ["\u0712", "\u072F"], ["\u074D", "\u07A5"], "\u07B1", ["\u07CA", "\u07EA"], ["\u0800", "\u0815"], ["\u0840", "\u0858"], ["\u0860", "\u086A"], ["\u08A0", "\u08B4"], ["\u08B6", "\u08BD"], ["\u0904", "\u0939"], "\u093D", "\u0950", ["\u0958", "\u0961"], ["\u0972", "\u0980"], ["\u0985", "\u098C"], ["\u098F", "\u0990"], ["\u0993", "\u09A8"], ["\u09AA", "\u09B0"], "\u09B2", ["\u09B6", "\u09B9"], "\u09BD", "\u09CE", ["\u09DC", "\u09DD"], ["\u09DF", "\u09E1"], ["\u09F0", "\u09F1"], "\u09FC", ["\u0A05", "\u0A0A"], ["\u0A0F", "\u0A10"], ["\u0A13", "\u0A28"], ["\u0A2A", "\u0A30"], ["\u0A32", "\u0A33"], ["\u0A35", "\u0A36"], ["\u0A38", "\u0A39"], ["\u0A59", "\u0A5C"], "\u0A5E", ["\u0A72", "\u0A74"], ["\u0A85", "\u0A8D"], ["\u0A8F", "\u0A91"], ["\u0A93", "\u0AA8"], ["\u0AAA", "\u0AB0"], ["\u0AB2", "\u0AB3"], ["\u0AB5", "\u0AB9"], "\u0ABD", "\u0AD0", ["\u0AE0", "\u0AE1"], "\u0AF9", ["\u0B05", "\u0B0C"], ["\u0B0F", "\u0B10"], ["\u0B13", "\u0B28"], ["\u0B2A", "\u0B30"], ["\u0B32", "\u0B33"], ["\u0B35", "\u0B39"], "\u0B3D", ["\u0B5C", "\u0B5D"], ["\u0B5F", "\u0B61"], "\u0B71", "\u0B83", ["\u0B85", "\u0B8A"], ["\u0B8E", "\u0B90"], ["\u0B92", "\u0B95"], ["\u0B99", "\u0B9A"], "\u0B9C", ["\u0B9E", "\u0B9F"], ["\u0BA3", "\u0BA4"], ["\u0BA8", "\u0BAA"], ["\u0BAE", "\u0BB9"], "\u0BD0", ["\u0C05", "\u0C0C"], ["\u0C0E", "\u0C10"], ["\u0C12", "\u0C28"], ["\u0C2A", "\u0C39"], "\u0C3D", ["\u0C58", "\u0C5A"], ["\u0C60", "\u0C61"], "\u0C80", ["\u0C85", "\u0C8C"], ["\u0C8E", "\u0C90"], ["\u0C92", "\u0CA8"], ["\u0CAA", "\u0CB3"], ["\u0CB5", "\u0CB9"], "\u0CBD", "\u0CDE", ["\u0CE0", "\u0CE1"], ["\u0CF1", "\u0CF2"], ["\u0D05", "\u0D0C"], ["\u0D0E", "\u0D10"], ["\u0D12", "\u0D3A"], "\u0D3D", "\u0D4E", ["\u0D54", "\u0D56"], ["\u0D5F", "\u0D61"], ["\u0D7A", "\u0D7F"], ["\u0D85", "\u0D96"], ["\u0D9A", "\u0DB1"], ["\u0DB3", "\u0DBB"], "\u0DBD", ["\u0DC0", "\u0DC6"], ["\u0E01", "\u0E30"], ["\u0E32", "\u0E33"], ["\u0E40", "\u0E45"], ["\u0E81", "\u0E82"], "\u0E84", ["\u0E87", "\u0E88"], "\u0E8A", "\u0E8D", ["\u0E94", "\u0E97"], ["\u0E99", "\u0E9F"], ["\u0EA1", "\u0EA3"], "\u0EA5", "\u0EA7", ["\u0EAA", "\u0EAB"], ["\u0EAD", "\u0EB0"], ["\u0EB2", "\u0EB3"], "\u0EBD", ["\u0EC0", "\u0EC4"], ["\u0EDC", "\u0EDF"], "\u0F00", ["\u0F40", "\u0F47"], ["\u0F49", "\u0F6C"], ["\u0F88", "\u0F8C"], ["\u1000", "\u102A"], "\u103F", ["\u1050", "\u1055"], ["\u105A", "\u105D"], "\u1061", ["\u1065", "\u1066"], ["\u106E", "\u1070"], ["\u1075", "\u1081"], "\u108E", ["\u1100", "\u1248"], ["\u124A", "\u124D"], ["\u1250", "\u1256"], "\u1258", ["\u125A", "\u125D"], ["\u1260", "\u1288"], ["\u128A", "\u128D"], ["\u1290", "\u12B0"], ["\u12B2", "\u12B5"], ["\u12B8", "\u12BE"], "\u12C0", ["\u12C2", "\u12C5"], ["\u12C8", "\u12D6"], ["\u12D8", "\u1310"], ["\u1312", "\u1315"], ["\u1318", "\u135A"], ["\u1380", "\u138F"], ["\u1401", "\u166C"], ["\u166F", "\u167F"], ["\u1681", "\u169A"], ["\u16A0", "\u16EA"], ["\u16F1", "\u16F8"], ["\u1700", "\u170C"], ["\u170E", "\u1711"], ["\u1720", "\u1731"], ["\u1740", "\u1751"], ["\u1760", "\u176C"], ["\u176E", "\u1770"], ["\u1780", "\u17B3"], "\u17DC", ["\u1820", "\u1842"], ["\u1844", "\u1878"], ["\u1880", "\u1884"], ["\u1887", "\u18A8"], "\u18AA", ["\u18B0", "\u18F5"], ["\u1900", "\u191E"], ["\u1950", "\u196D"], ["\u1970", "\u1974"], ["\u1980", "\u19AB"], ["\u19B0", "\u19C9"], ["\u1A00", "\u1A16"], ["\u1A20", "\u1A54"], ["\u1B05", "\u1B33"], ["\u1B45", "\u1B4B"], ["\u1B83", "\u1BA0"], ["\u1BAE", "\u1BAF"], ["\u1BBA", "\u1BE5"], ["\u1C00", "\u1C23"], ["\u1C4D", "\u1C4F"], ["\u1C5A", "\u1C77"], ["\u1CE9", "\u1CEC"], ["\u1CEE", "\u1CF1"], ["\u1CF5", "\u1CF6"], ["\u2135", "\u2138"], ["\u2D30", "\u2D67"], ["\u2D80", "\u2D96"], ["\u2DA0", "\u2DA6"], ["\u2DA8", "\u2DAE"], ["\u2DB0", "\u2DB6"], ["\u2DB8", "\u2DBE"], ["\u2DC0", "\u2DC6"], ["\u2DC8", "\u2DCE"], ["\u2DD0", "\u2DD6"], ["\u2DD8", "\u2DDE"], "\u3006", "\u303C", ["\u3041", "\u3096"], "\u309F", ["\u30A1", "\u30FA"], "\u30FF", ["\u3105", "\u312F"], ["\u3131", "\u318E"], ["\u31A0", "\u31BA"], ["\u31F0", "\u31FF"], ["\u3400", "\u4DB5"], ["\u4E00", "\u9FEF"], ["\uA000", "\uA014"], ["\uA016", "\uA48C"], ["\uA4D0", "\uA4F7"], ["\uA500", "\uA60B"], ["\uA610", "\uA61F"], ["\uA62A", "\uA62B"], "\uA66E", ["\uA6A0", "\uA6E5"], "\uA78F", "\uA7F7", ["\uA7FB", "\uA801"], ["\uA803", "\uA805"], ["\uA807", "\uA80A"], ["\uA80C", "\uA822"], ["\uA840", "\uA873"], ["\uA882", "\uA8B3"], ["\uA8F2", "\uA8F7"], "\uA8FB", ["\uA8FD", "\uA8FE"], ["\uA90A", "\uA925"], ["\uA930", "\uA946"], ["\uA960", "\uA97C"], ["\uA984", "\uA9B2"], ["\uA9E0", "\uA9E4"], ["\uA9E7", "\uA9EF"], ["\uA9FA", "\uA9FE"], ["\uAA00", "\uAA28"], ["\uAA40", "\uAA42"], ["\uAA44", "\uAA4B"], ["\uAA60", "\uAA6F"], ["\uAA71", "\uAA76"], "\uAA7A", ["\uAA7E", "\uAAAF"], "\uAAB1", ["\uAAB5", "\uAAB6"], ["\uAAB9", "\uAABD"], "\uAAC0", "\uAAC2", ["\uAADB", "\uAADC"], ["\uAAE0", "\uAAEA"], "\uAAF2", ["\uAB01", "\uAB06"], ["\uAB09", "\uAB0E"], ["\uAB11", "\uAB16"], ["\uAB20", "\uAB26"], ["\uAB28", "\uAB2E"], ["\uABC0", "\uABE2"], ["\uAC00", "\uD7A3"], ["\uD7B0", "\uD7C6"], ["\uD7CB", "\uD7FB"], ["\uF900", "\uFA6D"], ["\uFA70", "\uFAD9"], "\uFB1D", ["\uFB1F", "\uFB28"], ["\uFB2A", "\uFB36"], ["\uFB38", "\uFB3C"], "\uFB3E", ["\uFB40", "\uFB41"], ["\uFB43", "\uFB44"], ["\uFB46", "\uFBB1"], ["\uFBD3", "\uFD3D"], ["\uFD50", "\uFD8F"], ["\uFD92", "\uFDC7"], ["\uFDF0", "\uFDFB"], ["\uFE70", "\uFE74"], ["\uFE76", "\uFEFC"], ["\uFF66", "\uFF6F"], ["\uFF71", "\uFF9D"], ["\uFFA0", "\uFFBE"], ["\uFFC2", "\uFFC7"], ["\uFFCA", "\uFFCF"], ["\uFFD2", "\uFFD7"], ["\uFFDA", "\uFFDC"]], false, false); - var peg$e53 = peg$classExpectation(["\u01C5", "\u01C8", "\u01CB", "\u01F2", ["\u1F88", "\u1F8F"], ["\u1F98", "\u1F9F"], ["\u1FA8", "\u1FAF"], "\u1FBC", "\u1FCC", "\u1FFC"], false, false); - var peg$e54 = peg$classExpectation([["A", "Z"], ["\xC0", "\xD6"], ["\xD8", "\xDE"], "\u0100", "\u0102", "\u0104", "\u0106", "\u0108", "\u010A", "\u010C", "\u010E", "\u0110", "\u0112", "\u0114", "\u0116", "\u0118", "\u011A", "\u011C", "\u011E", "\u0120", "\u0122", "\u0124", "\u0126", "\u0128", "\u012A", "\u012C", "\u012E", "\u0130", "\u0132", "\u0134", "\u0136", "\u0139", "\u013B", "\u013D", "\u013F", "\u0141", "\u0143", "\u0145", "\u0147", "\u014A", "\u014C", "\u014E", "\u0150", "\u0152", "\u0154", "\u0156", "\u0158", "\u015A", "\u015C", "\u015E", "\u0160", "\u0162", "\u0164", "\u0166", "\u0168", "\u016A", "\u016C", "\u016E", "\u0170", "\u0172", "\u0174", "\u0176", ["\u0178", "\u0179"], "\u017B", "\u017D", ["\u0181", "\u0182"], "\u0184", ["\u0186", "\u0187"], ["\u0189", "\u018B"], ["\u018E", "\u0191"], ["\u0193", "\u0194"], ["\u0196", "\u0198"], ["\u019C", "\u019D"], ["\u019F", "\u01A0"], "\u01A2", "\u01A4", ["\u01A6", "\u01A7"], "\u01A9", "\u01AC", ["\u01AE", "\u01AF"], ["\u01B1", "\u01B3"], "\u01B5", ["\u01B7", "\u01B8"], "\u01BC", "\u01C4", "\u01C7", "\u01CA", "\u01CD", "\u01CF", "\u01D1", "\u01D3", "\u01D5", "\u01D7", "\u01D9", "\u01DB", "\u01DE", "\u01E0", "\u01E2", "\u01E4", "\u01E6", "\u01E8", "\u01EA", "\u01EC", "\u01EE", "\u01F1", "\u01F4", ["\u01F6", "\u01F8"], "\u01FA", "\u01FC", "\u01FE", "\u0200", "\u0202", "\u0204", "\u0206", "\u0208", "\u020A", "\u020C", "\u020E", "\u0210", "\u0212", "\u0214", "\u0216", "\u0218", "\u021A", "\u021C", "\u021E", "\u0220", "\u0222", "\u0224", "\u0226", "\u0228", "\u022A", "\u022C", "\u022E", "\u0230", "\u0232", ["\u023A", "\u023B"], ["\u023D", "\u023E"], "\u0241", ["\u0243", "\u0246"], "\u0248", "\u024A", "\u024C", "\u024E", "\u0370", "\u0372", "\u0376", "\u037F", "\u0386", ["\u0388", "\u038A"], "\u038C", ["\u038E", "\u038F"], ["\u0391", "\u03A1"], ["\u03A3", "\u03AB"], "\u03CF", ["\u03D2", "\u03D4"], "\u03D8", "\u03DA", "\u03DC", "\u03DE", "\u03E0", "\u03E2", "\u03E4", "\u03E6", "\u03E8", "\u03EA", "\u03EC", "\u03EE", "\u03F4", "\u03F7", ["\u03F9", "\u03FA"], ["\u03FD", "\u042F"], "\u0460", "\u0462", "\u0464", "\u0466", "\u0468", "\u046A", "\u046C", "\u046E", "\u0470", "\u0472", "\u0474", "\u0476", "\u0478", "\u047A", "\u047C", "\u047E", "\u0480", "\u048A", "\u048C", "\u048E", "\u0490", "\u0492", "\u0494", "\u0496", "\u0498", "\u049A", "\u049C", "\u049E", "\u04A0", "\u04A2", "\u04A4", "\u04A6", "\u04A8", "\u04AA", "\u04AC", "\u04AE", "\u04B0", "\u04B2", "\u04B4", "\u04B6", "\u04B8", "\u04BA", "\u04BC", "\u04BE", ["\u04C0", "\u04C1"], "\u04C3", "\u04C5", "\u04C7", "\u04C9", "\u04CB", "\u04CD", "\u04D0", "\u04D2", "\u04D4", "\u04D6", "\u04D8", "\u04DA", "\u04DC", "\u04DE", "\u04E0", "\u04E2", "\u04E4", "\u04E6", "\u04E8", "\u04EA", "\u04EC", "\u04EE", "\u04F0", "\u04F2", "\u04F4", "\u04F6", "\u04F8", "\u04FA", "\u04FC", "\u04FE", "\u0500", "\u0502", "\u0504", "\u0506", "\u0508", "\u050A", "\u050C", "\u050E", "\u0510", "\u0512", "\u0514", "\u0516", "\u0518", "\u051A", "\u051C", "\u051E", "\u0520", "\u0522", "\u0524", "\u0526", "\u0528", "\u052A", "\u052C", "\u052E", ["\u0531", "\u0556"], ["\u10A0", "\u10C5"], "\u10C7", "\u10CD", ["\u13A0", "\u13F5"], ["\u1C90", "\u1CBA"], ["\u1CBD", "\u1CBF"], "\u1E00", "\u1E02", "\u1E04", "\u1E06", "\u1E08", "\u1E0A", "\u1E0C", "\u1E0E", "\u1E10", "\u1E12", "\u1E14", "\u1E16", "\u1E18", "\u1E1A", "\u1E1C", "\u1E1E", "\u1E20", "\u1E22", "\u1E24", "\u1E26", "\u1E28", "\u1E2A", "\u1E2C", "\u1E2E", "\u1E30", "\u1E32", "\u1E34", "\u1E36", "\u1E38", "\u1E3A", "\u1E3C", "\u1E3E", "\u1E40", "\u1E42", "\u1E44", "\u1E46", "\u1E48", "\u1E4A", "\u1E4C", "\u1E4E", "\u1E50", "\u1E52", "\u1E54", "\u1E56", "\u1E58", "\u1E5A", "\u1E5C", "\u1E5E", "\u1E60", "\u1E62", "\u1E64", "\u1E66", "\u1E68", "\u1E6A", "\u1E6C", "\u1E6E", "\u1E70", "\u1E72", "\u1E74", "\u1E76", "\u1E78", "\u1E7A", "\u1E7C", "\u1E7E", "\u1E80", "\u1E82", "\u1E84", "\u1E86", "\u1E88", "\u1E8A", "\u1E8C", "\u1E8E", "\u1E90", "\u1E92", "\u1E94", "\u1E9E", "\u1EA0", "\u1EA2", "\u1EA4", "\u1EA6", "\u1EA8", "\u1EAA", "\u1EAC", "\u1EAE", "\u1EB0", "\u1EB2", "\u1EB4", "\u1EB6", "\u1EB8", "\u1EBA", "\u1EBC", "\u1EBE", "\u1EC0", "\u1EC2", "\u1EC4", "\u1EC6", "\u1EC8", "\u1ECA", "\u1ECC", "\u1ECE", "\u1ED0", "\u1ED2", "\u1ED4", "\u1ED6", "\u1ED8", "\u1EDA", "\u1EDC", "\u1EDE", "\u1EE0", "\u1EE2", "\u1EE4", "\u1EE6", "\u1EE8", "\u1EEA", "\u1EEC", "\u1EEE", "\u1EF0", "\u1EF2", "\u1EF4", "\u1EF6", "\u1EF8", "\u1EFA", "\u1EFC", "\u1EFE", ["\u1F08", "\u1F0F"], ["\u1F18", "\u1F1D"], ["\u1F28", "\u1F2F"], ["\u1F38", "\u1F3F"], ["\u1F48", "\u1F4D"], "\u1F59", "\u1F5B", "\u1F5D", "\u1F5F", ["\u1F68", "\u1F6F"], ["\u1FB8", "\u1FBB"], ["\u1FC8", "\u1FCB"], ["\u1FD8", "\u1FDB"], ["\u1FE8", "\u1FEC"], ["\u1FF8", "\u1FFB"], "\u2102", "\u2107", ["\u210B", "\u210D"], ["\u2110", "\u2112"], "\u2115", ["\u2119", "\u211D"], "\u2124", "\u2126", "\u2128", ["\u212A", "\u212D"], ["\u2130", "\u2133"], ["\u213E", "\u213F"], "\u2145", "\u2183", ["\u2C00", "\u2C2E"], "\u2C60", ["\u2C62", "\u2C64"], "\u2C67", "\u2C69", "\u2C6B", ["\u2C6D", "\u2C70"], "\u2C72", "\u2C75", ["\u2C7E", "\u2C80"], "\u2C82", "\u2C84", "\u2C86", "\u2C88", "\u2C8A", "\u2C8C", "\u2C8E", "\u2C90", "\u2C92", "\u2C94", "\u2C96", "\u2C98", "\u2C9A", "\u2C9C", "\u2C9E", "\u2CA0", "\u2CA2", "\u2CA4", "\u2CA6", "\u2CA8", "\u2CAA", "\u2CAC", "\u2CAE", "\u2CB0", "\u2CB2", "\u2CB4", "\u2CB6", "\u2CB8", "\u2CBA", "\u2CBC", "\u2CBE", "\u2CC0", "\u2CC2", "\u2CC4", "\u2CC6", "\u2CC8", "\u2CCA", "\u2CCC", "\u2CCE", "\u2CD0", "\u2CD2", "\u2CD4", "\u2CD6", "\u2CD8", "\u2CDA", "\u2CDC", "\u2CDE", "\u2CE0", "\u2CE2", "\u2CEB", "\u2CED", "\u2CF2", "\uA640", "\uA642", "\uA644", "\uA646", "\uA648", "\uA64A", "\uA64C", "\uA64E", "\uA650", "\uA652", "\uA654", "\uA656", "\uA658", "\uA65A", "\uA65C", "\uA65E", "\uA660", "\uA662", "\uA664", "\uA666", "\uA668", "\uA66A", "\uA66C", "\uA680", "\uA682", "\uA684", "\uA686", "\uA688", "\uA68A", "\uA68C", "\uA68E", "\uA690", "\uA692", "\uA694", "\uA696", "\uA698", "\uA69A", "\uA722", "\uA724", "\uA726", "\uA728", "\uA72A", "\uA72C", "\uA72E", "\uA732", "\uA734", "\uA736", "\uA738", "\uA73A", "\uA73C", "\uA73E", "\uA740", "\uA742", "\uA744", "\uA746", "\uA748", "\uA74A", "\uA74C", "\uA74E", "\uA750", "\uA752", "\uA754", "\uA756", "\uA758", "\uA75A", "\uA75C", "\uA75E", "\uA760", "\uA762", "\uA764", "\uA766", "\uA768", "\uA76A", "\uA76C", "\uA76E", "\uA779", "\uA77B", ["\uA77D", "\uA77E"], "\uA780", "\uA782", "\uA784", "\uA786", "\uA78B", "\uA78D", "\uA790", "\uA792", "\uA796", "\uA798", "\uA79A", "\uA79C", "\uA79E", "\uA7A0", "\uA7A2", "\uA7A4", "\uA7A6", "\uA7A8", ["\uA7AA", "\uA7AE"], ["\uA7B0", "\uA7B4"], "\uA7B6", "\uA7B8", ["\uFF21", "\uFF3A"]], false, false); - var peg$e55 = peg$classExpectation([["\u16EE", "\u16F0"], ["\u2160", "\u2182"], ["\u2185", "\u2188"], "\u3007", ["\u3021", "\u3029"], ["\u3038", "\u303A"], ["\uA6E6", "\uA6EF"]], false, false); + var peg$e15 = peg$classExpectation(["#", ["-", "."], ["0", "9"], ["A", "Z"], ["^", "_"], ["a", "z"], "~", "\xAA", "\xB5", "\xBA", ["\xC0", "\xD6"], ["\xD8", "\xF6"], ["\xF8", "\u02C1"], ["\u02C6", "\u02D1"], ["\u02E0", "\u02E4"], "\u02EC", "\u02EE", ["\u0370", "\u0374"], ["\u0376", "\u0377"], ["\u037A", "\u037D"], "\u037F", "\u0386", ["\u0388", "\u038A"], "\u038C", ["\u038E", "\u03A1"], ["\u03A3", "\u03F5"], ["\u03F7", "\u0481"], ["\u048A", "\u052F"], ["\u0531", "\u0556"], "\u0559", ["\u0560", "\u0588"], ["\u05D0", "\u05EA"], ["\u05EF", "\u05F2"], ["\u0620", "\u064A"], ["\u066E", "\u066F"], ["\u0671", "\u06D3"], "\u06D5", ["\u06E5", "\u06E6"], ["\u06EE", "\u06EF"], ["\u06FA", "\u06FC"], "\u06FF", "\u0710", ["\u0712", "\u072F"], ["\u074D", "\u07A5"], "\u07B1", ["\u07CA", "\u07EA"], ["\u07F4", "\u07F5"], "\u07FA", ["\u0800", "\u0815"], "\u081A", "\u0824", "\u0828", ["\u0840", "\u0858"], ["\u0860", "\u086A"], ["\u08A0", "\u08B4"], ["\u08B6", "\u08BD"], ["\u0904", "\u0939"], "\u093D", "\u0950", ["\u0958", "\u0961"], ["\u0971", "\u0980"], ["\u0985", "\u098C"], ["\u098F", "\u0990"], ["\u0993", "\u09A8"], ["\u09AA", "\u09B0"], "\u09B2", ["\u09B6", "\u09B9"], "\u09BD", "\u09CE", ["\u09DC", "\u09DD"], ["\u09DF", "\u09E1"], ["\u09F0", "\u09F1"], "\u09FC", ["\u0A05", "\u0A0A"], ["\u0A0F", "\u0A10"], ["\u0A13", "\u0A28"], ["\u0A2A", "\u0A30"], ["\u0A32", "\u0A33"], ["\u0A35", "\u0A36"], ["\u0A38", "\u0A39"], ["\u0A59", "\u0A5C"], "\u0A5E", ["\u0A72", "\u0A74"], ["\u0A85", "\u0A8D"], ["\u0A8F", "\u0A91"], ["\u0A93", "\u0AA8"], ["\u0AAA", "\u0AB0"], ["\u0AB2", "\u0AB3"], ["\u0AB5", "\u0AB9"], "\u0ABD", "\u0AD0", ["\u0AE0", "\u0AE1"], "\u0AF9", ["\u0B05", "\u0B0C"], ["\u0B0F", "\u0B10"], ["\u0B13", "\u0B28"], ["\u0B2A", "\u0B30"], ["\u0B32", "\u0B33"], ["\u0B35", "\u0B39"], "\u0B3D", ["\u0B5C", "\u0B5D"], ["\u0B5F", "\u0B61"], "\u0B71", "\u0B83", ["\u0B85", "\u0B8A"], ["\u0B8E", "\u0B90"], ["\u0B92", "\u0B95"], ["\u0B99", "\u0B9A"], "\u0B9C", ["\u0B9E", "\u0B9F"], ["\u0BA3", "\u0BA4"], ["\u0BA8", "\u0BAA"], ["\u0BAE", "\u0BB9"], "\u0BD0", ["\u0C05", "\u0C0C"], ["\u0C0E", "\u0C10"], ["\u0C12", "\u0C28"], ["\u0C2A", "\u0C39"], "\u0C3D", ["\u0C58", "\u0C5A"], ["\u0C60", "\u0C61"], "\u0C80", ["\u0C85", "\u0C8C"], ["\u0C8E", "\u0C90"], ["\u0C92", "\u0CA8"], ["\u0CAA", "\u0CB3"], ["\u0CB5", "\u0CB9"], "\u0CBD", "\u0CDE", ["\u0CE0", "\u0CE1"], ["\u0CF1", "\u0CF2"], ["\u0D05", "\u0D0C"], ["\u0D0E", "\u0D10"], ["\u0D12", "\u0D3A"], "\u0D3D", "\u0D4E", ["\u0D54", "\u0D56"], ["\u0D5F", "\u0D61"], ["\u0D7A", "\u0D7F"], ["\u0D85", "\u0D96"], ["\u0D9A", "\u0DB1"], ["\u0DB3", "\u0DBB"], "\u0DBD", ["\u0DC0", "\u0DC6"], ["\u0E01", "\u0E30"], ["\u0E32", "\u0E33"], ["\u0E40", "\u0E46"], ["\u0E81", "\u0E82"], "\u0E84", ["\u0E87", "\u0E88"], "\u0E8A", "\u0E8D", ["\u0E94", "\u0E97"], ["\u0E99", "\u0E9F"], ["\u0EA1", "\u0EA3"], "\u0EA5", "\u0EA7", ["\u0EAA", "\u0EAB"], ["\u0EAD", "\u0EB0"], ["\u0EB2", "\u0EB3"], "\u0EBD", ["\u0EC0", "\u0EC4"], "\u0EC6", ["\u0EDC", "\u0EDF"], "\u0F00", ["\u0F40", "\u0F47"], ["\u0F49", "\u0F6C"], ["\u0F88", "\u0F8C"], ["\u1000", "\u102A"], "\u103F", ["\u1050", "\u1055"], ["\u105A", "\u105D"], "\u1061", ["\u1065", "\u1066"], ["\u106E", "\u1070"], ["\u1075", "\u1081"], "\u108E", ["\u10A0", "\u10C5"], "\u10C7", "\u10CD", ["\u10D0", "\u10FA"], ["\u10FC", "\u1248"], ["\u124A", "\u124D"], ["\u1250", "\u1256"], "\u1258", ["\u125A", "\u125D"], ["\u1260", "\u1288"], ["\u128A", "\u128D"], ["\u1290", "\u12B0"], ["\u12B2", "\u12B5"], ["\u12B8", "\u12BE"], "\u12C0", ["\u12C2", "\u12C5"], ["\u12C8", "\u12D6"], ["\u12D8", "\u1310"], ["\u1312", "\u1315"], ["\u1318", "\u135A"], ["\u1380", "\u138F"], ["\u13A0", "\u13F5"], ["\u13F8", "\u13FD"], ["\u1401", "\u166C"], ["\u166F", "\u167F"], ["\u1681", "\u169A"], ["\u16A0", "\u16EA"], ["\u16EE", "\u16F8"], ["\u1700", "\u170C"], ["\u170E", "\u1711"], ["\u1720", "\u1731"], ["\u1740", "\u1751"], ["\u1760", "\u176C"], ["\u176E", "\u1770"], ["\u1780", "\u17B3"], "\u17D7", "\u17DC", ["\u1820", "\u1878"], ["\u1880", "\u1884"], ["\u1887", "\u18A8"], "\u18AA", ["\u18B0", "\u18F5"], ["\u1900", "\u191E"], ["\u1950", "\u196D"], ["\u1970", "\u1974"], ["\u1980", "\u19AB"], ["\u19B0", "\u19C9"], ["\u1A00", "\u1A16"], ["\u1A20", "\u1A54"], "\u1AA7", ["\u1B05", "\u1B33"], ["\u1B45", "\u1B4B"], ["\u1B83", "\u1BA0"], ["\u1BAE", "\u1BAF"], ["\u1BBA", "\u1BE5"], ["\u1C00", "\u1C23"], ["\u1C4D", "\u1C4F"], ["\u1C5A", "\u1C7D"], ["\u1C80", "\u1C88"], ["\u1C90", "\u1CBA"], ["\u1CBD", "\u1CBF"], ["\u1CE9", "\u1CEC"], ["\u1CEE", "\u1CF1"], ["\u1CF5", "\u1CF6"], ["\u1D00", "\u1DBF"], ["\u1E00", "\u1F15"], ["\u1F18", "\u1F1D"], ["\u1F20", "\u1F45"], ["\u1F48", "\u1F4D"], ["\u1F50", "\u1F57"], "\u1F59", "\u1F5B", "\u1F5D", ["\u1F5F", "\u1F7D"], ["\u1F80", "\u1FB4"], ["\u1FB6", "\u1FBC"], "\u1FBE", ["\u1FC2", "\u1FC4"], ["\u1FC6", "\u1FCC"], ["\u1FD0", "\u1FD3"], ["\u1FD6", "\u1FDB"], ["\u1FE0", "\u1FEC"], ["\u1FF2", "\u1FF4"], ["\u1FF6", "\u1FFC"], "\u2071", "\u207F", ["\u2090", "\u209C"], "\u2102", "\u2107", ["\u210A", "\u2113"], "\u2115", ["\u2119", "\u211D"], "\u2124", "\u2126", "\u2128", ["\u212A", "\u212D"], ["\u212F", "\u2139"], ["\u213C", "\u213F"], ["\u2145", "\u2149"], "\u214E", ["\u2160", "\u2188"], ["\u2C00", "\u2C2E"], ["\u2C30", "\u2C5E"], ["\u2C60", "\u2CE4"], ["\u2CEB", "\u2CEE"], ["\u2CF2", "\u2CF3"], ["\u2D00", "\u2D25"], "\u2D27", "\u2D2D", ["\u2D30", "\u2D67"], "\u2D6F", ["\u2D80", "\u2D96"], ["\u2DA0", "\u2DA6"], ["\u2DA8", "\u2DAE"], ["\u2DB0", "\u2DB6"], ["\u2DB8", "\u2DBE"], ["\u2DC0", "\u2DC6"], ["\u2DC8", "\u2DCE"], ["\u2DD0", "\u2DD6"], ["\u2DD8", "\u2DDE"], "\u2E2F", ["\u3005", "\u3007"], ["\u3021", "\u3029"], ["\u3031", "\u3035"], ["\u3038", "\u303C"], ["\u3041", "\u3096"], ["\u309D", "\u309F"], ["\u30A1", "\u30FA"], ["\u30FC", "\u30FF"], ["\u3105", "\u312F"], ["\u3131", "\u318E"], ["\u31A0", "\u31BA"], ["\u31F0", "\u31FF"], ["\u3400", "\u4DB5"], ["\u4E00", "\u9FEF"], ["\uA000", "\uA48C"], ["\uA4D0", "\uA4FD"], ["\uA500", "\uA60C"], ["\uA610", "\uA61F"], ["\uA62A", "\uA62B"], ["\uA640", "\uA66E"], ["\uA67F", "\uA69D"], ["\uA6A0", "\uA6EF"], ["\uA717", "\uA71F"], ["\uA722", "\uA788"], ["\uA78B", "\uA7B9"], ["\uA7F7", "\uA801"], ["\uA803", "\uA805"], ["\uA807", "\uA80A"], ["\uA80C", "\uA822"], ["\uA840", "\uA873"], ["\uA882", "\uA8B3"], ["\uA8F2", "\uA8F7"], "\uA8FB", ["\uA8FD", "\uA8FE"], ["\uA90A", "\uA925"], ["\uA930", "\uA946"], ["\uA960", "\uA97C"], ["\uA984", "\uA9B2"], "\uA9CF", ["\uA9E0", "\uA9E4"], ["\uA9E6", "\uA9EF"], ["\uA9FA", "\uA9FE"], ["\uAA00", "\uAA28"], ["\uAA40", "\uAA42"], ["\uAA44", "\uAA4B"], ["\uAA60", "\uAA76"], "\uAA7A", ["\uAA7E", "\uAAAF"], "\uAAB1", ["\uAAB5", "\uAAB6"], ["\uAAB9", "\uAABD"], "\uAAC0", "\uAAC2", ["\uAADB", "\uAADD"], ["\uAAE0", "\uAAEA"], ["\uAAF2", "\uAAF4"], ["\uAB01", "\uAB06"], ["\uAB09", "\uAB0E"], ["\uAB11", "\uAB16"], ["\uAB20", "\uAB26"], ["\uAB28", "\uAB2E"], ["\uAB30", "\uAB5A"], ["\uAB5C", "\uAB65"], ["\uAB70", "\uABE2"], ["\uAC00", "\uD7A3"], ["\uD7B0", "\uD7C6"], ["\uD7CB", "\uD7FB"], ["\uF900", "\uFA6D"], ["\uFA70", "\uFAD9"], ["\uFB00", "\uFB06"], ["\uFB13", "\uFB17"], "\uFB1D", ["\uFB1F", "\uFB28"], ["\uFB2A", "\uFB36"], ["\uFB38", "\uFB3C"], "\uFB3E", ["\uFB40", "\uFB41"], ["\uFB43", "\uFB44"], ["\uFB46", "\uFBB1"], ["\uFBD3", "\uFD3D"], ["\uFD50", "\uFD8F"], ["\uFD92", "\uFDC7"], ["\uFDF0", "\uFDFB"], ["\uFE70", "\uFE74"], ["\uFE76", "\uFEFC"], ["\uFF21", "\uFF3A"], ["\uFF41", "\uFF5A"], ["\uFF66", "\uFFBE"], ["\uFFC2", "\uFFC7"], ["\uFFCA", "\uFFCF"], ["\uFFD2", "\uFFD7"], ["\uFFDA", "\uFFDC"]], false, false); + var peg$e16 = peg$literalExpectation("[", false); + var peg$e17 = peg$literalExpectation("]", false); + var peg$e18 = peg$literalExpectation("{", false); + var peg$e19 = peg$literalExpectation("}", false); + var peg$e20 = peg$literalExpectation("%", false); + var peg$e21 = peg$literalExpectation("<", false); + var peg$e22 = peg$literalExpectation(">", false); + var peg$e23 = peg$classExpectation(["@", "_"], false, false); + var peg$e24 = peg$literalExpectation("!", false); + var peg$e25 = peg$literalExpectation("(", false); + var peg$e26 = peg$literalExpectation(")", false); + var peg$e27 = peg$literalExpectation("/", false); + var peg$e28 = peg$literalExpectation("*", false); + var peg$e29 = peg$literalExpectation("?", false); + var peg$e30 = peg$literalExpectation(":", false); + var peg$e31 = peg$literalExpectation("..", false); + var peg$e32 = peg$literalExpectation("^", false); + var peg$e33 = peg$literalExpectation("struct", false); + var peg$e34 = peg$literalExpectation("target", false); + var peg$e35 = peg$literalExpectation("euclid", false); + var peg$e36 = peg$literalExpectation("slow", false); + var peg$e37 = peg$literalExpectation("rotL", false); + var peg$e38 = peg$literalExpectation("rotR", false); + var peg$e39 = peg$literalExpectation("fast", false); + var peg$e40 = peg$literalExpectation("scale", false); + var peg$e41 = peg$literalExpectation("//", false); + var peg$e42 = peg$classExpectation(["\n"], true, false); + var peg$e43 = peg$literalExpectation("cat", false); + var peg$e44 = peg$literalExpectation("$", false); + var peg$e45 = peg$literalExpectation("setcps", false); + var peg$e46 = peg$literalExpectation("setbpm", false); + var peg$e47 = peg$literalExpectation("hush", false); + var peg$e48 = peg$classExpectation([["A", "Z"], ["a", "z"], "\xAA", "\xB5", "\xBA", ["\xC0", "\xD6"], ["\xD8", "\xF6"], ["\xF8", "\u02C1"], ["\u02C6", "\u02D1"], ["\u02E0", "\u02E4"], "\u02EC", "\u02EE", ["\u0370", "\u0374"], ["\u0376", "\u0377"], ["\u037A", "\u037D"], "\u037F", "\u0386", ["\u0388", "\u038A"], "\u038C", ["\u038E", "\u03A1"], ["\u03A3", "\u03F5"], ["\u03F7", "\u0481"], ["\u048A", "\u052F"], ["\u0531", "\u0556"], "\u0559", ["\u0560", "\u0588"], ["\u05D0", "\u05EA"], ["\u05EF", "\u05F2"], ["\u0620", "\u064A"], ["\u066E", "\u066F"], ["\u0671", "\u06D3"], "\u06D5", ["\u06E5", "\u06E6"], ["\u06EE", "\u06EF"], ["\u06FA", "\u06FC"], "\u06FF", "\u0710", ["\u0712", "\u072F"], ["\u074D", "\u07A5"], "\u07B1", ["\u07CA", "\u07EA"], ["\u07F4", "\u07F5"], "\u07FA", ["\u0800", "\u0815"], "\u081A", "\u0824", "\u0828", ["\u0840", "\u0858"], ["\u0860", "\u086A"], ["\u08A0", "\u08B4"], ["\u08B6", "\u08BD"], ["\u0904", "\u0939"], "\u093D", "\u0950", ["\u0958", "\u0961"], ["\u0971", "\u0980"], ["\u0985", "\u098C"], ["\u098F", "\u0990"], ["\u0993", "\u09A8"], ["\u09AA", "\u09B0"], "\u09B2", ["\u09B6", "\u09B9"], "\u09BD", "\u09CE", ["\u09DC", "\u09DD"], ["\u09DF", "\u09E1"], ["\u09F0", "\u09F1"], "\u09FC", ["\u0A05", "\u0A0A"], ["\u0A0F", "\u0A10"], ["\u0A13", "\u0A28"], ["\u0A2A", "\u0A30"], ["\u0A32", "\u0A33"], ["\u0A35", "\u0A36"], ["\u0A38", "\u0A39"], ["\u0A59", "\u0A5C"], "\u0A5E", ["\u0A72", "\u0A74"], ["\u0A85", "\u0A8D"], ["\u0A8F", "\u0A91"], ["\u0A93", "\u0AA8"], ["\u0AAA", "\u0AB0"], ["\u0AB2", "\u0AB3"], ["\u0AB5", "\u0AB9"], "\u0ABD", "\u0AD0", ["\u0AE0", "\u0AE1"], "\u0AF9", ["\u0B05", "\u0B0C"], ["\u0B0F", "\u0B10"], ["\u0B13", "\u0B28"], ["\u0B2A", "\u0B30"], ["\u0B32", "\u0B33"], ["\u0B35", "\u0B39"], "\u0B3D", ["\u0B5C", "\u0B5D"], ["\u0B5F", "\u0B61"], "\u0B71", "\u0B83", ["\u0B85", "\u0B8A"], ["\u0B8E", "\u0B90"], ["\u0B92", "\u0B95"], ["\u0B99", "\u0B9A"], "\u0B9C", ["\u0B9E", "\u0B9F"], ["\u0BA3", "\u0BA4"], ["\u0BA8", "\u0BAA"], ["\u0BAE", "\u0BB9"], "\u0BD0", ["\u0C05", "\u0C0C"], ["\u0C0E", "\u0C10"], ["\u0C12", "\u0C28"], ["\u0C2A", "\u0C39"], "\u0C3D", ["\u0C58", "\u0C5A"], ["\u0C60", "\u0C61"], "\u0C80", ["\u0C85", "\u0C8C"], ["\u0C8E", "\u0C90"], ["\u0C92", "\u0CA8"], ["\u0CAA", "\u0CB3"], ["\u0CB5", "\u0CB9"], "\u0CBD", "\u0CDE", ["\u0CE0", "\u0CE1"], ["\u0CF1", "\u0CF2"], ["\u0D05", "\u0D0C"], ["\u0D0E", "\u0D10"], ["\u0D12", "\u0D3A"], "\u0D3D", "\u0D4E", ["\u0D54", "\u0D56"], ["\u0D5F", "\u0D61"], ["\u0D7A", "\u0D7F"], ["\u0D85", "\u0D96"], ["\u0D9A", "\u0DB1"], ["\u0DB3", "\u0DBB"], "\u0DBD", ["\u0DC0", "\u0DC6"], ["\u0E01", "\u0E30"], ["\u0E32", "\u0E33"], ["\u0E40", "\u0E46"], ["\u0E81", "\u0E82"], "\u0E84", ["\u0E87", "\u0E88"], "\u0E8A", "\u0E8D", ["\u0E94", "\u0E97"], ["\u0E99", "\u0E9F"], ["\u0EA1", "\u0EA3"], "\u0EA5", "\u0EA7", ["\u0EAA", "\u0EAB"], ["\u0EAD", "\u0EB0"], ["\u0EB2", "\u0EB3"], "\u0EBD", ["\u0EC0", "\u0EC4"], "\u0EC6", ["\u0EDC", "\u0EDF"], "\u0F00", ["\u0F40", "\u0F47"], ["\u0F49", "\u0F6C"], ["\u0F88", "\u0F8C"], ["\u1000", "\u102A"], "\u103F", ["\u1050", "\u1055"], ["\u105A", "\u105D"], "\u1061", ["\u1065", "\u1066"], ["\u106E", "\u1070"], ["\u1075", "\u1081"], "\u108E", ["\u10A0", "\u10C5"], "\u10C7", "\u10CD", ["\u10D0", "\u10FA"], ["\u10FC", "\u1248"], ["\u124A", "\u124D"], ["\u1250", "\u1256"], "\u1258", ["\u125A", "\u125D"], ["\u1260", "\u1288"], ["\u128A", "\u128D"], ["\u1290", "\u12B0"], ["\u12B2", "\u12B5"], ["\u12B8", "\u12BE"], "\u12C0", ["\u12C2", "\u12C5"], ["\u12C8", "\u12D6"], ["\u12D8", "\u1310"], ["\u1312", "\u1315"], ["\u1318", "\u135A"], ["\u1380", "\u138F"], ["\u13A0", "\u13F5"], ["\u13F8", "\u13FD"], ["\u1401", "\u166C"], ["\u166F", "\u167F"], ["\u1681", "\u169A"], ["\u16A0", "\u16EA"], ["\u16EE", "\u16F8"], ["\u1700", "\u170C"], ["\u170E", "\u1711"], ["\u1720", "\u1731"], ["\u1740", "\u1751"], ["\u1760", "\u176C"], ["\u176E", "\u1770"], ["\u1780", "\u17B3"], "\u17D7", "\u17DC", ["\u1820", "\u1878"], ["\u1880", "\u1884"], ["\u1887", "\u18A8"], "\u18AA", ["\u18B0", "\u18F5"], ["\u1900", "\u191E"], ["\u1950", "\u196D"], ["\u1970", "\u1974"], ["\u1980", "\u19AB"], ["\u19B0", "\u19C9"], ["\u1A00", "\u1A16"], ["\u1A20", "\u1A54"], "\u1AA7", ["\u1B05", "\u1B33"], ["\u1B45", "\u1B4B"], ["\u1B83", "\u1BA0"], ["\u1BAE", "\u1BAF"], ["\u1BBA", "\u1BE5"], ["\u1C00", "\u1C23"], ["\u1C4D", "\u1C4F"], ["\u1C5A", "\u1C7D"], ["\u1C80", "\u1C88"], ["\u1C90", "\u1CBA"], ["\u1CBD", "\u1CBF"], ["\u1CE9", "\u1CEC"], ["\u1CEE", "\u1CF1"], ["\u1CF5", "\u1CF6"], ["\u1D00", "\u1DBF"], ["\u1E00", "\u1F15"], ["\u1F18", "\u1F1D"], ["\u1F20", "\u1F45"], ["\u1F48", "\u1F4D"], ["\u1F50", "\u1F57"], "\u1F59", "\u1F5B", "\u1F5D", ["\u1F5F", "\u1F7D"], ["\u1F80", "\u1FB4"], ["\u1FB6", "\u1FBC"], "\u1FBE", ["\u1FC2", "\u1FC4"], ["\u1FC6", "\u1FCC"], ["\u1FD0", "\u1FD3"], ["\u1FD6", "\u1FDB"], ["\u1FE0", "\u1FEC"], ["\u1FF2", "\u1FF4"], ["\u1FF6", "\u1FFC"], "\u2071", "\u207F", ["\u2090", "\u209C"], "\u2102", "\u2107", ["\u210A", "\u2113"], "\u2115", ["\u2119", "\u211D"], "\u2124", "\u2126", "\u2128", ["\u212A", "\u212D"], ["\u212F", "\u2139"], ["\u213C", "\u213F"], ["\u2145", "\u2149"], "\u214E", ["\u2160", "\u2188"], ["\u2C00", "\u2C2E"], ["\u2C30", "\u2C5E"], ["\u2C60", "\u2CE4"], ["\u2CEB", "\u2CEE"], ["\u2CF2", "\u2CF3"], ["\u2D00", "\u2D25"], "\u2D27", "\u2D2D", ["\u2D30", "\u2D67"], "\u2D6F", ["\u2D80", "\u2D96"], ["\u2DA0", "\u2DA6"], ["\u2DA8", "\u2DAE"], ["\u2DB0", "\u2DB6"], ["\u2DB8", "\u2DBE"], ["\u2DC0", "\u2DC6"], ["\u2DC8", "\u2DCE"], ["\u2DD0", "\u2DD6"], ["\u2DD8", "\u2DDE"], "\u2E2F", ["\u3005", "\u3007"], ["\u3021", "\u3029"], ["\u3031", "\u3035"], ["\u3038", "\u303C"], ["\u3041", "\u3096"], ["\u309D", "\u309F"], ["\u30A1", "\u30FA"], ["\u30FC", "\u30FF"], ["\u3105", "\u312F"], ["\u3131", "\u318E"], ["\u31A0", "\u31BA"], ["\u31F0", "\u31FF"], ["\u3400", "\u4DB5"], ["\u4E00", "\u9FEF"], ["\uA000", "\uA48C"], ["\uA4D0", "\uA4FD"], ["\uA500", "\uA60C"], ["\uA610", "\uA61F"], ["\uA62A", "\uA62B"], ["\uA640", "\uA66E"], ["\uA67F", "\uA69D"], ["\uA6A0", "\uA6EF"], ["\uA717", "\uA71F"], ["\uA722", "\uA788"], ["\uA78B", "\uA7B9"], ["\uA7F7", "\uA801"], ["\uA803", "\uA805"], ["\uA807", "\uA80A"], ["\uA80C", "\uA822"], ["\uA840", "\uA873"], ["\uA882", "\uA8B3"], ["\uA8F2", "\uA8F7"], "\uA8FB", ["\uA8FD", "\uA8FE"], ["\uA90A", "\uA925"], ["\uA930", "\uA946"], ["\uA960", "\uA97C"], ["\uA984", "\uA9B2"], "\uA9CF", ["\uA9E0", "\uA9E4"], ["\uA9E6", "\uA9EF"], ["\uA9FA", "\uA9FE"], ["\uAA00", "\uAA28"], ["\uAA40", "\uAA42"], ["\uAA44", "\uAA4B"], ["\uAA60", "\uAA76"], "\uAA7A", ["\uAA7E", "\uAAAF"], "\uAAB1", ["\uAAB5", "\uAAB6"], ["\uAAB9", "\uAABD"], "\uAAC0", "\uAAC2", ["\uAADB", "\uAADD"], ["\uAAE0", "\uAAEA"], ["\uAAF2", "\uAAF4"], ["\uAB01", "\uAB06"], ["\uAB09", "\uAB0E"], ["\uAB11", "\uAB16"], ["\uAB20", "\uAB26"], ["\uAB28", "\uAB2E"], ["\uAB30", "\uAB5A"], ["\uAB5C", "\uAB65"], ["\uAB70", "\uABE2"], ["\uAC00", "\uD7A3"], ["\uD7B0", "\uD7C6"], ["\uD7CB", "\uD7FB"], ["\uF900", "\uFA6D"], ["\uFA70", "\uFAD9"], ["\uFB00", "\uFB06"], ["\uFB13", "\uFB17"], "\uFB1D", ["\uFB1F", "\uFB28"], ["\uFB2A", "\uFB36"], ["\uFB38", "\uFB3C"], "\uFB3E", ["\uFB40", "\uFB41"], ["\uFB43", "\uFB44"], ["\uFB46", "\uFBB1"], ["\uFBD3", "\uFD3D"], ["\uFD50", "\uFD8F"], ["\uFD92", "\uFDC7"], ["\uFDF0", "\uFDFB"], ["\uFE70", "\uFE74"], ["\uFE76", "\uFEFC"], ["\uFF21", "\uFF3A"], ["\uFF41", "\uFF5A"], ["\uFF66", "\uFFBE"], ["\uFFC2", "\uFFC7"], ["\uFFCA", "\uFFCF"], ["\uFFD2", "\uFFD7"], ["\uFFDA", "\uFFDC"]], false, false); + var peg$e49 = peg$classExpectation([["a", "z"], "\xB5", ["\xDF", "\xF6"], ["\xF8", "\xFF"], "\u0101", "\u0103", "\u0105", "\u0107", "\u0109", "\u010B", "\u010D", "\u010F", "\u0111", "\u0113", "\u0115", "\u0117", "\u0119", "\u011B", "\u011D", "\u011F", "\u0121", "\u0123", "\u0125", "\u0127", "\u0129", "\u012B", "\u012D", "\u012F", "\u0131", "\u0133", "\u0135", ["\u0137", "\u0138"], "\u013A", "\u013C", "\u013E", "\u0140", "\u0142", "\u0144", "\u0146", ["\u0148", "\u0149"], "\u014B", "\u014D", "\u014F", "\u0151", "\u0153", "\u0155", "\u0157", "\u0159", "\u015B", "\u015D", "\u015F", "\u0161", "\u0163", "\u0165", "\u0167", "\u0169", "\u016B", "\u016D", "\u016F", "\u0171", "\u0173", "\u0175", "\u0177", "\u017A", "\u017C", ["\u017E", "\u0180"], "\u0183", "\u0185", "\u0188", ["\u018C", "\u018D"], "\u0192", "\u0195", ["\u0199", "\u019B"], "\u019E", "\u01A1", "\u01A3", "\u01A5", "\u01A8", ["\u01AA", "\u01AB"], "\u01AD", "\u01B0", "\u01B4", "\u01B6", ["\u01B9", "\u01BA"], ["\u01BD", "\u01BF"], "\u01C6", "\u01C9", "\u01CC", "\u01CE", "\u01D0", "\u01D2", "\u01D4", "\u01D6", "\u01D8", "\u01DA", ["\u01DC", "\u01DD"], "\u01DF", "\u01E1", "\u01E3", "\u01E5", "\u01E7", "\u01E9", "\u01EB", "\u01ED", ["\u01EF", "\u01F0"], "\u01F3", "\u01F5", "\u01F9", "\u01FB", "\u01FD", "\u01FF", "\u0201", "\u0203", "\u0205", "\u0207", "\u0209", "\u020B", "\u020D", "\u020F", "\u0211", "\u0213", "\u0215", "\u0217", "\u0219", "\u021B", "\u021D", "\u021F", "\u0221", "\u0223", "\u0225", "\u0227", "\u0229", "\u022B", "\u022D", "\u022F", "\u0231", ["\u0233", "\u0239"], "\u023C", ["\u023F", "\u0240"], "\u0242", "\u0247", "\u0249", "\u024B", "\u024D", ["\u024F", "\u0293"], ["\u0295", "\u02AF"], "\u0371", "\u0373", "\u0377", ["\u037B", "\u037D"], "\u0390", ["\u03AC", "\u03CE"], ["\u03D0", "\u03D1"], ["\u03D5", "\u03D7"], "\u03D9", "\u03DB", "\u03DD", "\u03DF", "\u03E1", "\u03E3", "\u03E5", "\u03E7", "\u03E9", "\u03EB", "\u03ED", ["\u03EF", "\u03F3"], "\u03F5", "\u03F8", ["\u03FB", "\u03FC"], ["\u0430", "\u045F"], "\u0461", "\u0463", "\u0465", "\u0467", "\u0469", "\u046B", "\u046D", "\u046F", "\u0471", "\u0473", "\u0475", "\u0477", "\u0479", "\u047B", "\u047D", "\u047F", "\u0481", "\u048B", "\u048D", "\u048F", "\u0491", "\u0493", "\u0495", "\u0497", "\u0499", "\u049B", "\u049D", "\u049F", "\u04A1", "\u04A3", "\u04A5", "\u04A7", "\u04A9", "\u04AB", "\u04AD", "\u04AF", "\u04B1", "\u04B3", "\u04B5", "\u04B7", "\u04B9", "\u04BB", "\u04BD", "\u04BF", "\u04C2", "\u04C4", "\u04C6", "\u04C8", "\u04CA", "\u04CC", ["\u04CE", "\u04CF"], "\u04D1", "\u04D3", "\u04D5", "\u04D7", "\u04D9", "\u04DB", "\u04DD", "\u04DF", "\u04E1", "\u04E3", "\u04E5", "\u04E7", "\u04E9", "\u04EB", "\u04ED", "\u04EF", "\u04F1", "\u04F3", "\u04F5", "\u04F7", "\u04F9", "\u04FB", "\u04FD", "\u04FF", "\u0501", "\u0503", "\u0505", "\u0507", "\u0509", "\u050B", "\u050D", "\u050F", "\u0511", "\u0513", "\u0515", "\u0517", "\u0519", "\u051B", "\u051D", "\u051F", "\u0521", "\u0523", "\u0525", "\u0527", "\u0529", "\u052B", "\u052D", "\u052F", ["\u0560", "\u0588"], ["\u10D0", "\u10FA"], ["\u10FD", "\u10FF"], ["\u13F8", "\u13FD"], ["\u1C80", "\u1C88"], ["\u1D00", "\u1D2B"], ["\u1D6B", "\u1D77"], ["\u1D79", "\u1D9A"], "\u1E01", "\u1E03", "\u1E05", "\u1E07", "\u1E09", "\u1E0B", "\u1E0D", "\u1E0F", "\u1E11", "\u1E13", "\u1E15", "\u1E17", "\u1E19", "\u1E1B", "\u1E1D", "\u1E1F", "\u1E21", "\u1E23", "\u1E25", "\u1E27", "\u1E29", "\u1E2B", "\u1E2D", "\u1E2F", "\u1E31", "\u1E33", "\u1E35", "\u1E37", "\u1E39", "\u1E3B", "\u1E3D", "\u1E3F", "\u1E41", "\u1E43", "\u1E45", "\u1E47", "\u1E49", "\u1E4B", "\u1E4D", "\u1E4F", "\u1E51", "\u1E53", "\u1E55", "\u1E57", "\u1E59", "\u1E5B", "\u1E5D", "\u1E5F", "\u1E61", "\u1E63", "\u1E65", "\u1E67", "\u1E69", "\u1E6B", "\u1E6D", "\u1E6F", "\u1E71", "\u1E73", "\u1E75", "\u1E77", "\u1E79", "\u1E7B", "\u1E7D", "\u1E7F", "\u1E81", "\u1E83", "\u1E85", "\u1E87", "\u1E89", "\u1E8B", "\u1E8D", "\u1E8F", "\u1E91", "\u1E93", ["\u1E95", "\u1E9D"], "\u1E9F", "\u1EA1", "\u1EA3", "\u1EA5", "\u1EA7", "\u1EA9", "\u1EAB", "\u1EAD", "\u1EAF", "\u1EB1", "\u1EB3", "\u1EB5", "\u1EB7", "\u1EB9", "\u1EBB", "\u1EBD", "\u1EBF", "\u1EC1", "\u1EC3", "\u1EC5", "\u1EC7", "\u1EC9", "\u1ECB", "\u1ECD", "\u1ECF", "\u1ED1", "\u1ED3", "\u1ED5", "\u1ED7", "\u1ED9", "\u1EDB", "\u1EDD", "\u1EDF", "\u1EE1", "\u1EE3", "\u1EE5", "\u1EE7", "\u1EE9", "\u1EEB", "\u1EED", "\u1EEF", "\u1EF1", "\u1EF3", "\u1EF5", "\u1EF7", "\u1EF9", "\u1EFB", "\u1EFD", ["\u1EFF", "\u1F07"], ["\u1F10", "\u1F15"], ["\u1F20", "\u1F27"], ["\u1F30", "\u1F37"], ["\u1F40", "\u1F45"], ["\u1F50", "\u1F57"], ["\u1F60", "\u1F67"], ["\u1F70", "\u1F7D"], ["\u1F80", "\u1F87"], ["\u1F90", "\u1F97"], ["\u1FA0", "\u1FA7"], ["\u1FB0", "\u1FB4"], ["\u1FB6", "\u1FB7"], "\u1FBE", ["\u1FC2", "\u1FC4"], ["\u1FC6", "\u1FC7"], ["\u1FD0", "\u1FD3"], ["\u1FD6", "\u1FD7"], ["\u1FE0", "\u1FE7"], ["\u1FF2", "\u1FF4"], ["\u1FF6", "\u1FF7"], "\u210A", ["\u210E", "\u210F"], "\u2113", "\u212F", "\u2134", "\u2139", ["\u213C", "\u213D"], ["\u2146", "\u2149"], "\u214E", "\u2184", ["\u2C30", "\u2C5E"], "\u2C61", ["\u2C65", "\u2C66"], "\u2C68", "\u2C6A", "\u2C6C", "\u2C71", ["\u2C73", "\u2C74"], ["\u2C76", "\u2C7B"], "\u2C81", "\u2C83", "\u2C85", "\u2C87", "\u2C89", "\u2C8B", "\u2C8D", "\u2C8F", "\u2C91", "\u2C93", "\u2C95", "\u2C97", "\u2C99", "\u2C9B", "\u2C9D", "\u2C9F", "\u2CA1", "\u2CA3", "\u2CA5", "\u2CA7", "\u2CA9", "\u2CAB", "\u2CAD", "\u2CAF", "\u2CB1", "\u2CB3", "\u2CB5", "\u2CB7", "\u2CB9", "\u2CBB", "\u2CBD", "\u2CBF", "\u2CC1", "\u2CC3", "\u2CC5", "\u2CC7", "\u2CC9", "\u2CCB", "\u2CCD", "\u2CCF", "\u2CD1", "\u2CD3", "\u2CD5", "\u2CD7", "\u2CD9", "\u2CDB", "\u2CDD", "\u2CDF", "\u2CE1", ["\u2CE3", "\u2CE4"], "\u2CEC", "\u2CEE", "\u2CF3", ["\u2D00", "\u2D25"], "\u2D27", "\u2D2D", "\uA641", "\uA643", "\uA645", "\uA647", "\uA649", "\uA64B", "\uA64D", "\uA64F", "\uA651", "\uA653", "\uA655", "\uA657", "\uA659", "\uA65B", "\uA65D", "\uA65F", "\uA661", "\uA663", "\uA665", "\uA667", "\uA669", "\uA66B", "\uA66D", "\uA681", "\uA683", "\uA685", "\uA687", "\uA689", "\uA68B", "\uA68D", "\uA68F", "\uA691", "\uA693", "\uA695", "\uA697", "\uA699", "\uA69B", "\uA723", "\uA725", "\uA727", "\uA729", "\uA72B", "\uA72D", ["\uA72F", "\uA731"], "\uA733", "\uA735", "\uA737", "\uA739", "\uA73B", "\uA73D", "\uA73F", "\uA741", "\uA743", "\uA745", "\uA747", "\uA749", "\uA74B", "\uA74D", "\uA74F", "\uA751", "\uA753", "\uA755", "\uA757", "\uA759", "\uA75B", "\uA75D", "\uA75F", "\uA761", "\uA763", "\uA765", "\uA767", "\uA769", "\uA76B", "\uA76D", "\uA76F", ["\uA771", "\uA778"], "\uA77A", "\uA77C", "\uA77F", "\uA781", "\uA783", "\uA785", "\uA787", "\uA78C", "\uA78E", "\uA791", ["\uA793", "\uA795"], "\uA797", "\uA799", "\uA79B", "\uA79D", "\uA79F", "\uA7A1", "\uA7A3", "\uA7A5", "\uA7A7", "\uA7A9", "\uA7AF", "\uA7B5", "\uA7B7", "\uA7B9", "\uA7FA", ["\uAB30", "\uAB5A"], ["\uAB60", "\uAB65"], ["\uAB70", "\uABBF"], ["\uFB00", "\uFB06"], ["\uFB13", "\uFB17"], ["\uFF41", "\uFF5A"]], false, false); + var peg$e50 = peg$classExpectation([["\u02B0", "\u02C1"], ["\u02C6", "\u02D1"], ["\u02E0", "\u02E4"], "\u02EC", "\u02EE", "\u0374", "\u037A", "\u0559", "\u0640", ["\u06E5", "\u06E6"], ["\u07F4", "\u07F5"], "\u07FA", "\u081A", "\u0824", "\u0828", "\u0971", "\u0E46", "\u0EC6", "\u10FC", "\u17D7", "\u1843", "\u1AA7", ["\u1C78", "\u1C7D"], ["\u1D2C", "\u1D6A"], "\u1D78", ["\u1D9B", "\u1DBF"], "\u2071", "\u207F", ["\u2090", "\u209C"], ["\u2C7C", "\u2C7D"], "\u2D6F", "\u2E2F", "\u3005", ["\u3031", "\u3035"], "\u303B", ["\u309D", "\u309E"], ["\u30FC", "\u30FE"], "\uA015", ["\uA4F8", "\uA4FD"], "\uA60C", "\uA67F", ["\uA69C", "\uA69D"], ["\uA717", "\uA71F"], "\uA770", "\uA788", ["\uA7F8", "\uA7F9"], "\uA9CF", "\uA9E6", "\uAA70", "\uAADD", ["\uAAF3", "\uAAF4"], ["\uAB5C", "\uAB5F"], "\uFF70", ["\uFF9E", "\uFF9F"]], false, false); + var peg$e51 = peg$classExpectation(["\xAA", "\xBA", "\u01BB", ["\u01C0", "\u01C3"], "\u0294", ["\u05D0", "\u05EA"], ["\u05EF", "\u05F2"], ["\u0620", "\u063F"], ["\u0641", "\u064A"], ["\u066E", "\u066F"], ["\u0671", "\u06D3"], "\u06D5", ["\u06EE", "\u06EF"], ["\u06FA", "\u06FC"], "\u06FF", "\u0710", ["\u0712", "\u072F"], ["\u074D", "\u07A5"], "\u07B1", ["\u07CA", "\u07EA"], ["\u0800", "\u0815"], ["\u0840", "\u0858"], ["\u0860", "\u086A"], ["\u08A0", "\u08B4"], ["\u08B6", "\u08BD"], ["\u0904", "\u0939"], "\u093D", "\u0950", ["\u0958", "\u0961"], ["\u0972", "\u0980"], ["\u0985", "\u098C"], ["\u098F", "\u0990"], ["\u0993", "\u09A8"], ["\u09AA", "\u09B0"], "\u09B2", ["\u09B6", "\u09B9"], "\u09BD", "\u09CE", ["\u09DC", "\u09DD"], ["\u09DF", "\u09E1"], ["\u09F0", "\u09F1"], "\u09FC", ["\u0A05", "\u0A0A"], ["\u0A0F", "\u0A10"], ["\u0A13", "\u0A28"], ["\u0A2A", "\u0A30"], ["\u0A32", "\u0A33"], ["\u0A35", "\u0A36"], ["\u0A38", "\u0A39"], ["\u0A59", "\u0A5C"], "\u0A5E", ["\u0A72", "\u0A74"], ["\u0A85", "\u0A8D"], ["\u0A8F", "\u0A91"], ["\u0A93", "\u0AA8"], ["\u0AAA", "\u0AB0"], ["\u0AB2", "\u0AB3"], ["\u0AB5", "\u0AB9"], "\u0ABD", "\u0AD0", ["\u0AE0", "\u0AE1"], "\u0AF9", ["\u0B05", "\u0B0C"], ["\u0B0F", "\u0B10"], ["\u0B13", "\u0B28"], ["\u0B2A", "\u0B30"], ["\u0B32", "\u0B33"], ["\u0B35", "\u0B39"], "\u0B3D", ["\u0B5C", "\u0B5D"], ["\u0B5F", "\u0B61"], "\u0B71", "\u0B83", ["\u0B85", "\u0B8A"], ["\u0B8E", "\u0B90"], ["\u0B92", "\u0B95"], ["\u0B99", "\u0B9A"], "\u0B9C", ["\u0B9E", "\u0B9F"], ["\u0BA3", "\u0BA4"], ["\u0BA8", "\u0BAA"], ["\u0BAE", "\u0BB9"], "\u0BD0", ["\u0C05", "\u0C0C"], ["\u0C0E", "\u0C10"], ["\u0C12", "\u0C28"], ["\u0C2A", "\u0C39"], "\u0C3D", ["\u0C58", "\u0C5A"], ["\u0C60", "\u0C61"], "\u0C80", ["\u0C85", "\u0C8C"], ["\u0C8E", "\u0C90"], ["\u0C92", "\u0CA8"], ["\u0CAA", "\u0CB3"], ["\u0CB5", "\u0CB9"], "\u0CBD", "\u0CDE", ["\u0CE0", "\u0CE1"], ["\u0CF1", "\u0CF2"], ["\u0D05", "\u0D0C"], ["\u0D0E", "\u0D10"], ["\u0D12", "\u0D3A"], "\u0D3D", "\u0D4E", ["\u0D54", "\u0D56"], ["\u0D5F", "\u0D61"], ["\u0D7A", "\u0D7F"], ["\u0D85", "\u0D96"], ["\u0D9A", "\u0DB1"], ["\u0DB3", "\u0DBB"], "\u0DBD", ["\u0DC0", "\u0DC6"], ["\u0E01", "\u0E30"], ["\u0E32", "\u0E33"], ["\u0E40", "\u0E45"], ["\u0E81", "\u0E82"], "\u0E84", ["\u0E87", "\u0E88"], "\u0E8A", "\u0E8D", ["\u0E94", "\u0E97"], ["\u0E99", "\u0E9F"], ["\u0EA1", "\u0EA3"], "\u0EA5", "\u0EA7", ["\u0EAA", "\u0EAB"], ["\u0EAD", "\u0EB0"], ["\u0EB2", "\u0EB3"], "\u0EBD", ["\u0EC0", "\u0EC4"], ["\u0EDC", "\u0EDF"], "\u0F00", ["\u0F40", "\u0F47"], ["\u0F49", "\u0F6C"], ["\u0F88", "\u0F8C"], ["\u1000", "\u102A"], "\u103F", ["\u1050", "\u1055"], ["\u105A", "\u105D"], "\u1061", ["\u1065", "\u1066"], ["\u106E", "\u1070"], ["\u1075", "\u1081"], "\u108E", ["\u1100", "\u1248"], ["\u124A", "\u124D"], ["\u1250", "\u1256"], "\u1258", ["\u125A", "\u125D"], ["\u1260", "\u1288"], ["\u128A", "\u128D"], ["\u1290", "\u12B0"], ["\u12B2", "\u12B5"], ["\u12B8", "\u12BE"], "\u12C0", ["\u12C2", "\u12C5"], ["\u12C8", "\u12D6"], ["\u12D8", "\u1310"], ["\u1312", "\u1315"], ["\u1318", "\u135A"], ["\u1380", "\u138F"], ["\u1401", "\u166C"], ["\u166F", "\u167F"], ["\u1681", "\u169A"], ["\u16A0", "\u16EA"], ["\u16F1", "\u16F8"], ["\u1700", "\u170C"], ["\u170E", "\u1711"], ["\u1720", "\u1731"], ["\u1740", "\u1751"], ["\u1760", "\u176C"], ["\u176E", "\u1770"], ["\u1780", "\u17B3"], "\u17DC", ["\u1820", "\u1842"], ["\u1844", "\u1878"], ["\u1880", "\u1884"], ["\u1887", "\u18A8"], "\u18AA", ["\u18B0", "\u18F5"], ["\u1900", "\u191E"], ["\u1950", "\u196D"], ["\u1970", "\u1974"], ["\u1980", "\u19AB"], ["\u19B0", "\u19C9"], ["\u1A00", "\u1A16"], ["\u1A20", "\u1A54"], ["\u1B05", "\u1B33"], ["\u1B45", "\u1B4B"], ["\u1B83", "\u1BA0"], ["\u1BAE", "\u1BAF"], ["\u1BBA", "\u1BE5"], ["\u1C00", "\u1C23"], ["\u1C4D", "\u1C4F"], ["\u1C5A", "\u1C77"], ["\u1CE9", "\u1CEC"], ["\u1CEE", "\u1CF1"], ["\u1CF5", "\u1CF6"], ["\u2135", "\u2138"], ["\u2D30", "\u2D67"], ["\u2D80", "\u2D96"], ["\u2DA0", "\u2DA6"], ["\u2DA8", "\u2DAE"], ["\u2DB0", "\u2DB6"], ["\u2DB8", "\u2DBE"], ["\u2DC0", "\u2DC6"], ["\u2DC8", "\u2DCE"], ["\u2DD0", "\u2DD6"], ["\u2DD8", "\u2DDE"], "\u3006", "\u303C", ["\u3041", "\u3096"], "\u309F", ["\u30A1", "\u30FA"], "\u30FF", ["\u3105", "\u312F"], ["\u3131", "\u318E"], ["\u31A0", "\u31BA"], ["\u31F0", "\u31FF"], ["\u3400", "\u4DB5"], ["\u4E00", "\u9FEF"], ["\uA000", "\uA014"], ["\uA016", "\uA48C"], ["\uA4D0", "\uA4F7"], ["\uA500", "\uA60B"], ["\uA610", "\uA61F"], ["\uA62A", "\uA62B"], "\uA66E", ["\uA6A0", "\uA6E5"], "\uA78F", "\uA7F7", ["\uA7FB", "\uA801"], ["\uA803", "\uA805"], ["\uA807", "\uA80A"], ["\uA80C", "\uA822"], ["\uA840", "\uA873"], ["\uA882", "\uA8B3"], ["\uA8F2", "\uA8F7"], "\uA8FB", ["\uA8FD", "\uA8FE"], ["\uA90A", "\uA925"], ["\uA930", "\uA946"], ["\uA960", "\uA97C"], ["\uA984", "\uA9B2"], ["\uA9E0", "\uA9E4"], ["\uA9E7", "\uA9EF"], ["\uA9FA", "\uA9FE"], ["\uAA00", "\uAA28"], ["\uAA40", "\uAA42"], ["\uAA44", "\uAA4B"], ["\uAA60", "\uAA6F"], ["\uAA71", "\uAA76"], "\uAA7A", ["\uAA7E", "\uAAAF"], "\uAAB1", ["\uAAB5", "\uAAB6"], ["\uAAB9", "\uAABD"], "\uAAC0", "\uAAC2", ["\uAADB", "\uAADC"], ["\uAAE0", "\uAAEA"], "\uAAF2", ["\uAB01", "\uAB06"], ["\uAB09", "\uAB0E"], ["\uAB11", "\uAB16"], ["\uAB20", "\uAB26"], ["\uAB28", "\uAB2E"], ["\uABC0", "\uABE2"], ["\uAC00", "\uD7A3"], ["\uD7B0", "\uD7C6"], ["\uD7CB", "\uD7FB"], ["\uF900", "\uFA6D"], ["\uFA70", "\uFAD9"], "\uFB1D", ["\uFB1F", "\uFB28"], ["\uFB2A", "\uFB36"], ["\uFB38", "\uFB3C"], "\uFB3E", ["\uFB40", "\uFB41"], ["\uFB43", "\uFB44"], ["\uFB46", "\uFBB1"], ["\uFBD3", "\uFD3D"], ["\uFD50", "\uFD8F"], ["\uFD92", "\uFDC7"], ["\uFDF0", "\uFDFB"], ["\uFE70", "\uFE74"], ["\uFE76", "\uFEFC"], ["\uFF66", "\uFF6F"], ["\uFF71", "\uFF9D"], ["\uFFA0", "\uFFBE"], ["\uFFC2", "\uFFC7"], ["\uFFCA", "\uFFCF"], ["\uFFD2", "\uFFD7"], ["\uFFDA", "\uFFDC"]], false, false); + var peg$e52 = peg$classExpectation(["\u01C5", "\u01C8", "\u01CB", "\u01F2", ["\u1F88", "\u1F8F"], ["\u1F98", "\u1F9F"], ["\u1FA8", "\u1FAF"], "\u1FBC", "\u1FCC", "\u1FFC"], false, false); + var peg$e53 = peg$classExpectation([["A", "Z"], ["\xC0", "\xD6"], ["\xD8", "\xDE"], "\u0100", "\u0102", "\u0104", "\u0106", "\u0108", "\u010A", "\u010C", "\u010E", "\u0110", "\u0112", "\u0114", "\u0116", "\u0118", "\u011A", "\u011C", "\u011E", "\u0120", "\u0122", "\u0124", "\u0126", "\u0128", "\u012A", "\u012C", "\u012E", "\u0130", "\u0132", "\u0134", "\u0136", "\u0139", "\u013B", "\u013D", "\u013F", "\u0141", "\u0143", "\u0145", "\u0147", "\u014A", "\u014C", "\u014E", "\u0150", "\u0152", "\u0154", "\u0156", "\u0158", "\u015A", "\u015C", "\u015E", "\u0160", "\u0162", "\u0164", "\u0166", "\u0168", "\u016A", "\u016C", "\u016E", "\u0170", "\u0172", "\u0174", "\u0176", ["\u0178", "\u0179"], "\u017B", "\u017D", ["\u0181", "\u0182"], "\u0184", ["\u0186", "\u0187"], ["\u0189", "\u018B"], ["\u018E", "\u0191"], ["\u0193", "\u0194"], ["\u0196", "\u0198"], ["\u019C", "\u019D"], ["\u019F", "\u01A0"], "\u01A2", "\u01A4", ["\u01A6", "\u01A7"], "\u01A9", "\u01AC", ["\u01AE", "\u01AF"], ["\u01B1", "\u01B3"], "\u01B5", ["\u01B7", "\u01B8"], "\u01BC", "\u01C4", "\u01C7", "\u01CA", "\u01CD", "\u01CF", "\u01D1", "\u01D3", "\u01D5", "\u01D7", "\u01D9", "\u01DB", "\u01DE", "\u01E0", "\u01E2", "\u01E4", "\u01E6", "\u01E8", "\u01EA", "\u01EC", "\u01EE", "\u01F1", "\u01F4", ["\u01F6", "\u01F8"], "\u01FA", "\u01FC", "\u01FE", "\u0200", "\u0202", "\u0204", "\u0206", "\u0208", "\u020A", "\u020C", "\u020E", "\u0210", "\u0212", "\u0214", "\u0216", "\u0218", "\u021A", "\u021C", "\u021E", "\u0220", "\u0222", "\u0224", "\u0226", "\u0228", "\u022A", "\u022C", "\u022E", "\u0230", "\u0232", ["\u023A", "\u023B"], ["\u023D", "\u023E"], "\u0241", ["\u0243", "\u0246"], "\u0248", "\u024A", "\u024C", "\u024E", "\u0370", "\u0372", "\u0376", "\u037F", "\u0386", ["\u0388", "\u038A"], "\u038C", ["\u038E", "\u038F"], ["\u0391", "\u03A1"], ["\u03A3", "\u03AB"], "\u03CF", ["\u03D2", "\u03D4"], "\u03D8", "\u03DA", "\u03DC", "\u03DE", "\u03E0", "\u03E2", "\u03E4", "\u03E6", "\u03E8", "\u03EA", "\u03EC", "\u03EE", "\u03F4", "\u03F7", ["\u03F9", "\u03FA"], ["\u03FD", "\u042F"], "\u0460", "\u0462", "\u0464", "\u0466", "\u0468", "\u046A", "\u046C", "\u046E", "\u0470", "\u0472", "\u0474", "\u0476", "\u0478", "\u047A", "\u047C", "\u047E", "\u0480", "\u048A", "\u048C", "\u048E", "\u0490", "\u0492", "\u0494", "\u0496", "\u0498", "\u049A", "\u049C", "\u049E", "\u04A0", "\u04A2", "\u04A4", "\u04A6", "\u04A8", "\u04AA", "\u04AC", "\u04AE", "\u04B0", "\u04B2", "\u04B4", "\u04B6", "\u04B8", "\u04BA", "\u04BC", "\u04BE", ["\u04C0", "\u04C1"], "\u04C3", "\u04C5", "\u04C7", "\u04C9", "\u04CB", "\u04CD", "\u04D0", "\u04D2", "\u04D4", "\u04D6", "\u04D8", "\u04DA", "\u04DC", "\u04DE", "\u04E0", "\u04E2", "\u04E4", "\u04E6", "\u04E8", "\u04EA", "\u04EC", "\u04EE", "\u04F0", "\u04F2", "\u04F4", "\u04F6", "\u04F8", "\u04FA", "\u04FC", "\u04FE", "\u0500", "\u0502", "\u0504", "\u0506", "\u0508", "\u050A", "\u050C", "\u050E", "\u0510", "\u0512", "\u0514", "\u0516", "\u0518", "\u051A", "\u051C", "\u051E", "\u0520", "\u0522", "\u0524", "\u0526", "\u0528", "\u052A", "\u052C", "\u052E", ["\u0531", "\u0556"], ["\u10A0", "\u10C5"], "\u10C7", "\u10CD", ["\u13A0", "\u13F5"], ["\u1C90", "\u1CBA"], ["\u1CBD", "\u1CBF"], "\u1E00", "\u1E02", "\u1E04", "\u1E06", "\u1E08", "\u1E0A", "\u1E0C", "\u1E0E", "\u1E10", "\u1E12", "\u1E14", "\u1E16", "\u1E18", "\u1E1A", "\u1E1C", "\u1E1E", "\u1E20", "\u1E22", "\u1E24", "\u1E26", "\u1E28", "\u1E2A", "\u1E2C", "\u1E2E", "\u1E30", "\u1E32", "\u1E34", "\u1E36", "\u1E38", "\u1E3A", "\u1E3C", "\u1E3E", "\u1E40", "\u1E42", "\u1E44", "\u1E46", "\u1E48", "\u1E4A", "\u1E4C", "\u1E4E", "\u1E50", "\u1E52", "\u1E54", "\u1E56", "\u1E58", "\u1E5A", "\u1E5C", "\u1E5E", "\u1E60", "\u1E62", "\u1E64", "\u1E66", "\u1E68", "\u1E6A", "\u1E6C", "\u1E6E", "\u1E70", "\u1E72", "\u1E74", "\u1E76", "\u1E78", "\u1E7A", "\u1E7C", "\u1E7E", "\u1E80", "\u1E82", "\u1E84", "\u1E86", "\u1E88", "\u1E8A", "\u1E8C", "\u1E8E", "\u1E90", "\u1E92", "\u1E94", "\u1E9E", "\u1EA0", "\u1EA2", "\u1EA4", "\u1EA6", "\u1EA8", "\u1EAA", "\u1EAC", "\u1EAE", "\u1EB0", "\u1EB2", "\u1EB4", "\u1EB6", "\u1EB8", "\u1EBA", "\u1EBC", "\u1EBE", "\u1EC0", "\u1EC2", "\u1EC4", "\u1EC6", "\u1EC8", "\u1ECA", "\u1ECC", "\u1ECE", "\u1ED0", "\u1ED2", "\u1ED4", "\u1ED6", "\u1ED8", "\u1EDA", "\u1EDC", "\u1EDE", "\u1EE0", "\u1EE2", "\u1EE4", "\u1EE6", "\u1EE8", "\u1EEA", "\u1EEC", "\u1EEE", "\u1EF0", "\u1EF2", "\u1EF4", "\u1EF6", "\u1EF8", "\u1EFA", "\u1EFC", "\u1EFE", ["\u1F08", "\u1F0F"], ["\u1F18", "\u1F1D"], ["\u1F28", "\u1F2F"], ["\u1F38", "\u1F3F"], ["\u1F48", "\u1F4D"], "\u1F59", "\u1F5B", "\u1F5D", "\u1F5F", ["\u1F68", "\u1F6F"], ["\u1FB8", "\u1FBB"], ["\u1FC8", "\u1FCB"], ["\u1FD8", "\u1FDB"], ["\u1FE8", "\u1FEC"], ["\u1FF8", "\u1FFB"], "\u2102", "\u2107", ["\u210B", "\u210D"], ["\u2110", "\u2112"], "\u2115", ["\u2119", "\u211D"], "\u2124", "\u2126", "\u2128", ["\u212A", "\u212D"], ["\u2130", "\u2133"], ["\u213E", "\u213F"], "\u2145", "\u2183", ["\u2C00", "\u2C2E"], "\u2C60", ["\u2C62", "\u2C64"], "\u2C67", "\u2C69", "\u2C6B", ["\u2C6D", "\u2C70"], "\u2C72", "\u2C75", ["\u2C7E", "\u2C80"], "\u2C82", "\u2C84", "\u2C86", "\u2C88", "\u2C8A", "\u2C8C", "\u2C8E", "\u2C90", "\u2C92", "\u2C94", "\u2C96", "\u2C98", "\u2C9A", "\u2C9C", "\u2C9E", "\u2CA0", "\u2CA2", "\u2CA4", "\u2CA6", "\u2CA8", "\u2CAA", "\u2CAC", "\u2CAE", "\u2CB0", "\u2CB2", "\u2CB4", "\u2CB6", "\u2CB8", "\u2CBA", "\u2CBC", "\u2CBE", "\u2CC0", "\u2CC2", "\u2CC4", "\u2CC6", "\u2CC8", "\u2CCA", "\u2CCC", "\u2CCE", "\u2CD0", "\u2CD2", "\u2CD4", "\u2CD6", "\u2CD8", "\u2CDA", "\u2CDC", "\u2CDE", "\u2CE0", "\u2CE2", "\u2CEB", "\u2CED", "\u2CF2", "\uA640", "\uA642", "\uA644", "\uA646", "\uA648", "\uA64A", "\uA64C", "\uA64E", "\uA650", "\uA652", "\uA654", "\uA656", "\uA658", "\uA65A", "\uA65C", "\uA65E", "\uA660", "\uA662", "\uA664", "\uA666", "\uA668", "\uA66A", "\uA66C", "\uA680", "\uA682", "\uA684", "\uA686", "\uA688", "\uA68A", "\uA68C", "\uA68E", "\uA690", "\uA692", "\uA694", "\uA696", "\uA698", "\uA69A", "\uA722", "\uA724", "\uA726", "\uA728", "\uA72A", "\uA72C", "\uA72E", "\uA732", "\uA734", "\uA736", "\uA738", "\uA73A", "\uA73C", "\uA73E", "\uA740", "\uA742", "\uA744", "\uA746", "\uA748", "\uA74A", "\uA74C", "\uA74E", "\uA750", "\uA752", "\uA754", "\uA756", "\uA758", "\uA75A", "\uA75C", "\uA75E", "\uA760", "\uA762", "\uA764", "\uA766", "\uA768", "\uA76A", "\uA76C", "\uA76E", "\uA779", "\uA77B", ["\uA77D", "\uA77E"], "\uA780", "\uA782", "\uA784", "\uA786", "\uA78B", "\uA78D", "\uA790", "\uA792", "\uA796", "\uA798", "\uA79A", "\uA79C", "\uA79E", "\uA7A0", "\uA7A2", "\uA7A4", "\uA7A6", "\uA7A8", ["\uA7AA", "\uA7AE"], ["\uA7B0", "\uA7B4"], "\uA7B6", "\uA7B8", ["\uFF21", "\uFF3A"]], false, false); + var peg$e54 = peg$classExpectation([["\u16EE", "\u16F0"], ["\u2160", "\u2182"], ["\u2185", "\u2188"], "\u3007", ["\u3021", "\u3029"], ["\u3038", "\u303A"], ["\uA6E6", "\uA6EF"]], false, false); var peg$f0 = function() { return parseFloat(text()); }; var peg$f1 = function() { return parseInt(text()); }; @@ -295,13 +294,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 }}) }; @@ -316,7 +314,7 @@ function peg$parse(input, options) { } return result; }; - var peg$f17 = function(tactus, s) { return new PatternStub(s, 'fastcat', undefined, !!tactus); }; + var peg$f17 = function(_steps, s) { return new PatternStub(s, 'fastcat', undefined, !!_steps); }; var peg$f18 = function(tail) { return { alignment: 'stack', list: tail }; }; var peg$f19 = function(tail) { return { alignment: 'rand', list: tail, seed: seed++ }; }; var peg$f20 = function(tail) { return { alignment: 'feet', list: tail, seed: seed++ }; }; @@ -340,16 +338,16 @@ function peg$parse(input, options) { var peg$f38 = function(v) { return new CommandStub("setcps", { value: v})}; var peg$f39 = function(v) { return new CommandStub("setcps", { value: (v/120/2)})}; var peg$f40 = function() { return new CommandStub("hush")}; - var peg$currPos = 0; - var peg$savedPos = 0; + var peg$currPos = options.peg$currPos | 0; + var peg$savedPos = peg$currPos; var peg$posDetailsCache = [{ line: 1, column: 1 }]; - var peg$maxFailPos = 0; - var peg$maxFailExpected = []; - var peg$silentFails = 0; + var peg$maxFailPos = peg$currPos; + var peg$maxFailExpected = options.peg$maxFailExpected || []; + var peg$silentFails = options.peg$silentFails | 0; var peg$result; - if ("startRule" in options) { + if (options.startRule) { if (!(options.startRule in peg$startRuleFunctions)) { throw new Error("Can't start parsing from rule \"" + options.startRule + "\"."); } @@ -424,9 +422,11 @@ function peg$parse(input, options) { if (details) { return details; } else { - p = pos - 1; - while (!peg$posDetailsCache[p]) { - p--; + if (pos >= peg$posDetailsCache.length) { + p = peg$posDetailsCache.length - 1; + } else { + p = pos; + while (!peg$posDetailsCache[--p]) {} } details = peg$posDetailsCache[p]; @@ -559,8 +559,8 @@ function peg$parse(input, options) { function peg$parsedigit1_9() { var s0; - if (peg$r0.test(input.charAt(peg$currPos))) { - s0 = input.charAt(peg$currPos); + s0 = input.charAt(peg$currPos); + if (peg$r0.test(s0)) { peg$currPos++; } else { s0 = peg$FAILED; @@ -573,8 +573,8 @@ function peg$parse(input, options) { function peg$parsee() { var s0; - if (peg$r1.test(input.charAt(peg$currPos))) { - s0 = input.charAt(peg$currPos); + s0 = input.charAt(peg$currPos); + if (peg$r1.test(s0)) { peg$currPos++; } else { s0 = peg$FAILED; @@ -590,9 +590,12 @@ function peg$parse(input, options) { s0 = peg$currPos; s1 = peg$parsee(); if (s1 !== peg$FAILED) { - s2 = peg$parseminus(); - if (s2 === peg$FAILED) { - s2 = peg$parseplus(); + s2 = input.charAt(peg$currPos); + if (peg$r2.test(s2)) { + peg$currPos++; + } else { + s2 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$e4); } } if (s2 === peg$FAILED) { s2 = null; @@ -706,7 +709,7 @@ function peg$parse(input, options) { peg$currPos++; } else { s0 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e4); } + if (peg$silentFails === 0) { peg$fail(peg$e5); } } return s0; @@ -720,7 +723,7 @@ function peg$parse(input, options) { peg$currPos++; } else { s0 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e5); } + if (peg$silentFails === 0) { peg$fail(peg$e6); } } return s0; @@ -734,7 +737,7 @@ function peg$parse(input, options) { peg$currPos++; } else { s0 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e6); } + if (peg$silentFails === 0) { peg$fail(peg$e7); } } return s0; @@ -743,12 +746,12 @@ function peg$parse(input, options) { function peg$parseDIGIT() { var s0; - if (peg$r2.test(input.charAt(peg$currPos))) { - s0 = input.charAt(peg$currPos); + s0 = input.charAt(peg$currPos); + if (peg$r3.test(s0)) { peg$currPos++; } else { s0 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e7); } + if (peg$silentFails === 0) { peg$fail(peg$e8); } } return s0; @@ -759,26 +762,26 @@ function peg$parse(input, options) { peg$silentFails++; s0 = []; - if (peg$r3.test(input.charAt(peg$currPos))) { - s1 = input.charAt(peg$currPos); + s1 = input.charAt(peg$currPos); + if (peg$r4.test(s1)) { peg$currPos++; } else { s1 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e9); } + if (peg$silentFails === 0) { peg$fail(peg$e10); } } while (s1 !== peg$FAILED) { s0.push(s1); - if (peg$r3.test(input.charAt(peg$currPos))) { - s1 = input.charAt(peg$currPos); + s1 = input.charAt(peg$currPos); + if (peg$r4.test(s1)) { peg$currPos++; } else { s1 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e9); } + if (peg$silentFails === 0) { peg$fail(peg$e10); } } } peg$silentFails--; s1 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e8); } + if (peg$silentFails === 0) { peg$fail(peg$e9); } return s0; } @@ -793,7 +796,7 @@ function peg$parse(input, options) { peg$currPos++; } else { s2 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e10); } + if (peg$silentFails === 0) { peg$fail(peg$e11); } } if (s2 !== peg$FAILED) { s3 = peg$parsews(); @@ -817,7 +820,7 @@ function peg$parse(input, options) { peg$currPos++; } else { s2 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e11); } + if (peg$silentFails === 0) { peg$fail(peg$e12); } } if (s2 !== peg$FAILED) { s3 = peg$parsews(); @@ -858,21 +861,12 @@ function peg$parse(input, options) { function peg$parsequote() { var s0; - if (input.charCodeAt(peg$currPos) === 34) { - s0 = peg$c6; + s0 = input.charAt(peg$currPos); + if (peg$r5.test(s0)) { peg$currPos++; } else { s0 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e12); } - } - if (s0 === peg$FAILED) { - if (input.charCodeAt(peg$currPos) === 39) { - s0 = peg$c7; - peg$currPos++; - } else { - s0 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e13); } - } + if (peg$silentFails === 0) { peg$fail(peg$e13); } } return s0; @@ -882,60 +876,12 @@ function peg$parse(input, options) { var s0, s1; peg$silentFails++; - s0 = peg$parseunicode_letter(); - if (s0 === peg$FAILED) { - if (peg$r4.test(input.charAt(peg$currPos))) { - s0 = input.charAt(peg$currPos); - peg$currPos++; - } else { - s0 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e15); } - } - if (s0 === peg$FAILED) { - if (input.charCodeAt(peg$currPos) === 45) { - s0 = peg$c1; - peg$currPos++; - } else { - s0 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e4); } - } - if (s0 === peg$FAILED) { - if (input.charCodeAt(peg$currPos) === 35) { - s0 = peg$c8; - peg$currPos++; - } else { - s0 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e16); } - } - if (s0 === peg$FAILED) { - if (input.charCodeAt(peg$currPos) === 46) { - s0 = peg$c0; - peg$currPos++; - } else { - s0 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e1); } - } - if (s0 === peg$FAILED) { - if (input.charCodeAt(peg$currPos) === 94) { - s0 = peg$c9; - peg$currPos++; - } else { - s0 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e17); } - } - if (s0 === peg$FAILED) { - if (input.charCodeAt(peg$currPos) === 95) { - s0 = peg$c10; - peg$currPos++; - } else { - s0 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e18); } - } - } - } - } - } - } + s0 = input.charAt(peg$currPos); + if (peg$r6.test(s0)) { + peg$currPos++; + } else { + s0 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$e15); } } peg$silentFails--; if (s0 === peg$FAILED) { @@ -991,11 +937,11 @@ function peg$parse(input, options) { s0 = peg$currPos; s1 = peg$parsews(); if (input.charCodeAt(peg$currPos) === 91) { - s2 = peg$c11; + s2 = peg$c6; peg$currPos++; } else { s2 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e19); } + if (peg$silentFails === 0) { peg$fail(peg$e16); } } if (s2 !== peg$FAILED) { s3 = peg$parsews(); @@ -1003,11 +949,11 @@ function peg$parse(input, options) { if (s4 !== peg$FAILED) { s5 = peg$parsews(); if (input.charCodeAt(peg$currPos) === 93) { - s6 = peg$c12; + s6 = peg$c7; peg$currPos++; } else { s6 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e20); } + if (peg$silentFails === 0) { peg$fail(peg$e17); } } if (s6 !== peg$FAILED) { s7 = peg$parsews(); @@ -1035,11 +981,11 @@ function peg$parse(input, options) { s0 = peg$currPos; s1 = peg$parsews(); if (input.charCodeAt(peg$currPos) === 123) { - s2 = peg$c13; + s2 = peg$c8; peg$currPos++; } else { s2 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e21); } + if (peg$silentFails === 0) { peg$fail(peg$e18); } } if (s2 !== peg$FAILED) { s3 = peg$parsews(); @@ -1047,11 +993,11 @@ function peg$parse(input, options) { if (s4 !== peg$FAILED) { s5 = peg$parsews(); if (input.charCodeAt(peg$currPos) === 125) { - s6 = peg$c14; + s6 = peg$c9; peg$currPos++; } else { s6 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e22); } + if (peg$silentFails === 0) { peg$fail(peg$e19); } } if (s6 !== peg$FAILED) { s7 = peg$parsepolymeter_steps(); @@ -1082,11 +1028,11 @@ function peg$parse(input, options) { s0 = peg$currPos; if (input.charCodeAt(peg$currPos) === 37) { - s1 = peg$c15; + s1 = peg$c10; peg$currPos++; } else { s1 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e23); } + if (peg$silentFails === 0) { peg$fail(peg$e20); } } if (s1 !== peg$FAILED) { s2 = peg$parseslice(); @@ -1111,11 +1057,11 @@ function peg$parse(input, options) { s0 = peg$currPos; s1 = peg$parsews(); if (input.charCodeAt(peg$currPos) === 60) { - s2 = peg$c16; + s2 = peg$c11; peg$currPos++; } else { s2 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e24); } + if (peg$silentFails === 0) { peg$fail(peg$e21); } } if (s2 !== peg$FAILED) { s3 = peg$parsews(); @@ -1123,11 +1069,11 @@ function peg$parse(input, options) { if (s4 !== peg$FAILED) { s5 = peg$parsews(); if (input.charCodeAt(peg$currPos) === 62) { - s6 = peg$c17; + s6 = peg$c12; peg$currPos++; } else { s6 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e25); } + if (peg$silentFails === 0) { peg$fail(peg$e22); } } if (s6 !== peg$FAILED) { s7 = peg$parsews(); @@ -1200,21 +1146,12 @@ function peg$parse(input, options) { s0 = peg$currPos; s1 = peg$parsews(); - if (input.charCodeAt(peg$currPos) === 64) { - s2 = peg$c18; + s2 = input.charAt(peg$currPos); + if (peg$r7.test(s2)) { peg$currPos++; } else { s2 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e26); } - } - if (s2 === peg$FAILED) { - if (input.charCodeAt(peg$currPos) === 95) { - s2 = peg$c10; - peg$currPos++; - } else { - s2 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e18); } - } + if (peg$silentFails === 0) { peg$fail(peg$e23); } } if (s2 !== peg$FAILED) { s3 = peg$parsenumber(); @@ -1237,11 +1174,11 @@ function peg$parse(input, options) { s0 = peg$currPos; s1 = peg$parsews(); if (input.charCodeAt(peg$currPos) === 33) { - s2 = peg$c19; + s2 = peg$c13; peg$currPos++; } else { s2 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e27); } + if (peg$silentFails === 0) { peg$fail(peg$e24); } } if (s2 !== peg$FAILED) { s3 = peg$parsenumber(); @@ -1263,11 +1200,11 @@ function peg$parse(input, options) { s0 = peg$currPos; if (input.charCodeAt(peg$currPos) === 40) { - s1 = peg$c20; + s1 = peg$c14; peg$currPos++; } else { s1 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e28); } + if (peg$silentFails === 0) { peg$fail(peg$e25); } } if (s1 !== peg$FAILED) { s2 = peg$parsews(); @@ -1291,11 +1228,11 @@ function peg$parse(input, options) { } s12 = peg$parsews(); if (input.charCodeAt(peg$currPos) === 41) { - s13 = peg$c21; + s13 = peg$c15; peg$currPos++; } else { s13 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e29); } + if (peg$silentFails === 0) { peg$fail(peg$e26); } } if (s13 !== peg$FAILED) { peg$savedPos = s0; @@ -1329,11 +1266,11 @@ function peg$parse(input, options) { s0 = peg$currPos; if (input.charCodeAt(peg$currPos) === 47) { - s1 = peg$c22; + s1 = peg$c16; peg$currPos++; } else { s1 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e30); } + if (peg$silentFails === 0) { peg$fail(peg$e27); } } if (s1 !== peg$FAILED) { s2 = peg$parseslice(); @@ -1357,11 +1294,11 @@ function peg$parse(input, options) { s0 = peg$currPos; if (input.charCodeAt(peg$currPos) === 42) { - s1 = peg$c23; + s1 = peg$c17; peg$currPos++; } else { s1 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e31); } + if (peg$silentFails === 0) { peg$fail(peg$e28); } } if (s1 !== peg$FAILED) { s2 = peg$parseslice(); @@ -1385,11 +1322,11 @@ function peg$parse(input, options) { s0 = peg$currPos; if (input.charCodeAt(peg$currPos) === 63) { - s1 = peg$c24; + s1 = peg$c18; peg$currPos++; } else { s1 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e32); } + if (peg$silentFails === 0) { peg$fail(peg$e29); } } if (s1 !== peg$FAILED) { s2 = peg$parsenumber(); @@ -1411,11 +1348,11 @@ function peg$parse(input, options) { s0 = peg$currPos; if (input.charCodeAt(peg$currPos) === 58) { - s1 = peg$c25; + s1 = peg$c19; peg$currPos++; } else { s1 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e33); } + if (peg$silentFails === 0) { peg$fail(peg$e30); } } if (s1 !== peg$FAILED) { s2 = peg$parseslice(); @@ -1438,12 +1375,12 @@ function peg$parse(input, options) { var s0, s1, s2; s0 = peg$currPos; - if (input.substr(peg$currPos, 2) === peg$c26) { - s1 = peg$c26; + if (input.substr(peg$currPos, 2) === peg$c20) { + s1 = peg$c20; peg$currPos += 2; } else { s1 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e34); } + if (peg$silentFails === 0) { peg$fail(peg$e31); } } if (s1 !== peg$FAILED) { s2 = peg$parseslice(); @@ -1489,11 +1426,11 @@ function peg$parse(input, options) { s0 = peg$currPos; if (input.charCodeAt(peg$currPos) === 94) { - s1 = peg$c9; + s1 = peg$c21; peg$currPos++; } else { s1 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e17); } + if (peg$silentFails === 0) { peg$fail(peg$e32); } } if (s1 === peg$FAILED) { s1 = null; @@ -1776,12 +1713,12 @@ function peg$parse(input, options) { var s0, s1, s2, s3; s0 = peg$currPos; - if (input.substr(peg$currPos, 6) === peg$c27) { - s1 = peg$c27; + if (input.substr(peg$currPos, 6) === peg$c22) { + s1 = peg$c22; peg$currPos += 6; } else { s1 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e35); } + if (peg$silentFails === 0) { peg$fail(peg$e33); } } if (s1 !== peg$FAILED) { s2 = peg$parsews(); @@ -1805,12 +1742,12 @@ function peg$parse(input, options) { var s0, s1, s2, s3, s4, s5; s0 = peg$currPos; - if (input.substr(peg$currPos, 6) === peg$c28) { - s1 = peg$c28; + if (input.substr(peg$currPos, 6) === peg$c23) { + s1 = peg$c23; peg$currPos += 6; } else { s1 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e36); } + if (peg$silentFails === 0) { peg$fail(peg$e34); } } if (s1 !== peg$FAILED) { s2 = peg$parsews(); @@ -1846,12 +1783,12 @@ function peg$parse(input, options) { var s0, s1, s2, s3, s4, s5, s6, s7; s0 = peg$currPos; - if (input.substr(peg$currPos, 6) === peg$c29) { - s1 = peg$c29; + if (input.substr(peg$currPos, 6) === peg$c24) { + s1 = peg$c24; peg$currPos += 6; } else { s1 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e37); } + if (peg$silentFails === 0) { peg$fail(peg$e35); } } if (s1 !== peg$FAILED) { s2 = peg$parsews(); @@ -1887,12 +1824,12 @@ function peg$parse(input, options) { var s0, s1, s2, s3; s0 = peg$currPos; - if (input.substr(peg$currPos, 4) === peg$c30) { - s1 = peg$c30; + if (input.substr(peg$currPos, 4) === peg$c25) { + s1 = peg$c25; peg$currPos += 4; } else { s1 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e38); } + if (peg$silentFails === 0) { peg$fail(peg$e36); } } if (s1 !== peg$FAILED) { s2 = peg$parsews(); @@ -1916,12 +1853,12 @@ function peg$parse(input, options) { var s0, s1, s2, s3; s0 = peg$currPos; - if (input.substr(peg$currPos, 4) === peg$c31) { - s1 = peg$c31; + if (input.substr(peg$currPos, 4) === peg$c26) { + s1 = peg$c26; peg$currPos += 4; } else { s1 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e39); } + if (peg$silentFails === 0) { peg$fail(peg$e37); } } if (s1 !== peg$FAILED) { s2 = peg$parsews(); @@ -1945,12 +1882,12 @@ function peg$parse(input, options) { var s0, s1, s2, s3; s0 = peg$currPos; - if (input.substr(peg$currPos, 4) === peg$c32) { - s1 = peg$c32; + if (input.substr(peg$currPos, 4) === peg$c27) { + s1 = peg$c27; peg$currPos += 4; } else { s1 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e40); } + if (peg$silentFails === 0) { peg$fail(peg$e38); } } if (s1 !== peg$FAILED) { s2 = peg$parsews(); @@ -1974,12 +1911,12 @@ function peg$parse(input, options) { var s0, s1, s2, s3; s0 = peg$currPos; - if (input.substr(peg$currPos, 4) === peg$c33) { - s1 = peg$c33; + if (input.substr(peg$currPos, 4) === peg$c28) { + s1 = peg$c28; peg$currPos += 4; } else { s1 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e41); } + if (peg$silentFails === 0) { peg$fail(peg$e39); } } if (s1 !== peg$FAILED) { s2 = peg$parsews(); @@ -2003,12 +1940,12 @@ function peg$parse(input, options) { var s0, s1, s2, s3, s4, s5; s0 = peg$currPos; - if (input.substr(peg$currPos, 5) === peg$c34) { - s1 = peg$c34; + if (input.substr(peg$currPos, 5) === peg$c29) { + s1 = peg$c29; peg$currPos += 5; } else { s1 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e42); } + if (peg$silentFails === 0) { peg$fail(peg$e40); } } if (s1 !== peg$FAILED) { s2 = peg$parsews(); @@ -2053,30 +1990,30 @@ function peg$parse(input, options) { var s0, s1, s2, s3; s0 = peg$currPos; - if (input.substr(peg$currPos, 2) === peg$c35) { - s1 = peg$c35; + if (input.substr(peg$currPos, 2) === peg$c30) { + s1 = peg$c30; peg$currPos += 2; } else { s1 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e43); } + if (peg$silentFails === 0) { peg$fail(peg$e41); } } if (s1 !== peg$FAILED) { s2 = []; - if (peg$r5.test(input.charAt(peg$currPos))) { - s3 = input.charAt(peg$currPos); + s3 = input.charAt(peg$currPos); + if (peg$r8.test(s3)) { peg$currPos++; } else { s3 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e44); } + if (peg$silentFails === 0) { peg$fail(peg$e42); } } while (s3 !== peg$FAILED) { s2.push(s3); - if (peg$r5.test(input.charAt(peg$currPos))) { - s3 = input.charAt(peg$currPos); + s3 = input.charAt(peg$currPos); + if (peg$r8.test(s3)) { peg$currPos++; } else { s3 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e44); } + if (peg$silentFails === 0) { peg$fail(peg$e42); } } } s1 = [s1, s2]; @@ -2093,21 +2030,21 @@ function peg$parse(input, options) { var s0, s1, s2, s3, s4, s5, s6, s7, s8, s9; s0 = peg$currPos; - if (input.substr(peg$currPos, 3) === peg$c36) { - s1 = peg$c36; + if (input.substr(peg$currPos, 3) === peg$c31) { + s1 = peg$c31; peg$currPos += 3; } else { s1 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e45); } + if (peg$silentFails === 0) { peg$fail(peg$e43); } } if (s1 !== peg$FAILED) { s2 = peg$parsews(); if (input.charCodeAt(peg$currPos) === 91) { - s3 = peg$c11; + s3 = peg$c6; peg$currPos++; } else { s3 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e19); } + if (peg$silentFails === 0) { peg$fail(peg$e16); } } if (s3 !== peg$FAILED) { s4 = peg$parsews(); @@ -2149,11 +2086,11 @@ function peg$parse(input, options) { } s7 = peg$parsews(); if (input.charCodeAt(peg$currPos) === 93) { - s8 = peg$c12; + s8 = peg$c7; peg$currPos++; } else { s8 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e20); } + if (peg$silentFails === 0) { peg$fail(peg$e17); } } if (s8 !== peg$FAILED) { peg$savedPos = s0; @@ -2214,11 +2151,11 @@ function peg$parse(input, options) { if (s1 !== peg$FAILED) { s2 = peg$parsews(); if (input.charCodeAt(peg$currPos) === 36) { - s3 = peg$c37; + s3 = peg$c32; peg$currPos++; } else { s3 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e46); } + if (peg$silentFails === 0) { peg$fail(peg$e44); } } if (s3 !== peg$FAILED) { s4 = peg$parsews(); @@ -2296,12 +2233,12 @@ function peg$parse(input, options) { var s0, s1, s2, s3; s0 = peg$currPos; - if (input.substr(peg$currPos, 6) === peg$c38) { - s1 = peg$c38; + if (input.substr(peg$currPos, 6) === peg$c33) { + s1 = peg$c33; peg$currPos += 6; } else { s1 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e47); } + if (peg$silentFails === 0) { peg$fail(peg$e45); } } if (s1 !== peg$FAILED) { s2 = peg$parsews(); @@ -2325,12 +2262,12 @@ function peg$parse(input, options) { var s0, s1, s2, s3; s0 = peg$currPos; - if (input.substr(peg$currPos, 6) === peg$c39) { - s1 = peg$c39; + if (input.substr(peg$currPos, 6) === peg$c34) { + s1 = peg$c34; peg$currPos += 6; } else { s1 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e48); } + if (peg$silentFails === 0) { peg$fail(peg$e46); } } if (s1 !== peg$FAILED) { s2 = peg$parsews(); @@ -2354,12 +2291,12 @@ function peg$parse(input, options) { var s0, s1; s0 = peg$currPos; - if (input.substr(peg$currPos, 4) === peg$c40) { - s1 = peg$c40; + if (input.substr(peg$currPos, 4) === peg$c35) { + s1 = peg$c35; peg$currPos += 4; } else { s1 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e49); } + if (peg$silentFails === 0) { peg$fail(peg$e47); } } if (s1 !== peg$FAILED) { peg$savedPos = s0; @@ -2384,21 +2321,12 @@ function peg$parse(input, options) { function peg$parseunicode_letter() { var s0; - s0 = peg$parseLu(); - if (s0 === peg$FAILED) { - s0 = peg$parseLl(); - if (s0 === peg$FAILED) { - s0 = peg$parseLt(); - if (s0 === peg$FAILED) { - s0 = peg$parseLm(); - if (s0 === peg$FAILED) { - s0 = peg$parseLo(); - if (s0 === peg$FAILED) { - s0 = peg$parseNl(); - } - } - } - } + s0 = input.charAt(peg$currPos); + if (peg$r9.test(s0)) { + peg$currPos++; + } else { + s0 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$e48); } } return s0; @@ -2407,8 +2335,22 @@ function peg$parse(input, options) { function peg$parseLl() { var s0; - if (peg$r6.test(input.charAt(peg$currPos))) { - s0 = input.charAt(peg$currPos); + s0 = input.charAt(peg$currPos); + if (peg$r10.test(s0)) { + peg$currPos++; + } else { + s0 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$e49); } + } + + return s0; + } + + function peg$parseLm() { + var s0; + + s0 = input.charAt(peg$currPos); + if (peg$r11.test(s0)) { peg$currPos++; } else { s0 = peg$FAILED; @@ -2418,11 +2360,11 @@ function peg$parse(input, options) { return s0; } - function peg$parseLm() { + function peg$parseLo() { var s0; - if (peg$r7.test(input.charAt(peg$currPos))) { - s0 = input.charAt(peg$currPos); + s0 = input.charAt(peg$currPos); + if (peg$r12.test(s0)) { peg$currPos++; } else { s0 = peg$FAILED; @@ -2432,11 +2374,11 @@ function peg$parse(input, options) { return s0; } - function peg$parseLo() { + function peg$parseLt() { var s0; - if (peg$r8.test(input.charAt(peg$currPos))) { - s0 = input.charAt(peg$currPos); + s0 = input.charAt(peg$currPos); + if (peg$r13.test(s0)) { peg$currPos++; } else { s0 = peg$FAILED; @@ -2446,11 +2388,11 @@ function peg$parse(input, options) { return s0; } - function peg$parseLt() { + function peg$parseLu() { var s0; - if (peg$r9.test(input.charAt(peg$currPos))) { - s0 = input.charAt(peg$currPos); + s0 = input.charAt(peg$currPos); + if (peg$r14.test(s0)) { peg$currPos++; } else { s0 = peg$FAILED; @@ -2460,11 +2402,11 @@ function peg$parse(input, options) { return s0; } - function peg$parseLu() { + function peg$parseNl() { var s0; - if (peg$r10.test(input.charAt(peg$currPos))) { - s0 = input.charAt(peg$currPos); + s0 = input.charAt(peg$currPos); + if (peg$r15.test(s0)) { peg$currPos++; } else { s0 = peg$FAILED; @@ -2474,20 +2416,6 @@ function peg$parse(input, options) { return s0; } - function peg$parseNl() { - var s0; - - if (peg$r11.test(input.charAt(peg$currPos))) { - s0 = input.charAt(peg$currPos); - peg$currPos++; - } else { - s0 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e55); } - } - - return s0; - } - var AtomStub = function(source) { @@ -2496,10 +2424,10 @@ function peg$parse(input, options) { this.location_ = location(); } - var PatternStub = function(source, alignment, seed, tactus) + var PatternStub = function(source, alignment, seed, _steps) { this.type_ = "pattern"; - this.arguments_ = { alignment: alignment, tactus: tactus }; + this.arguments_ = { alignment: alignment, _steps: _steps }; if (seed !== undefined) { this.arguments_.seed = seed; } @@ -2532,6 +2460,15 @@ function peg$parse(input, options) { peg$result = peg$startRuleFunction(); + if (options.peg$library) { + return /** @type {any} */ ({ + peg$result, + peg$currPos, + peg$FAILED, + peg$maxFailExpected, + peg$maxFailPos + }); + } if (peg$result !== peg$FAILED && peg$currPos === input.length) { return peg$result; } else { @@ -2549,8 +2486,12 @@ function peg$parse(input, options) { } } -export { - peg$SyntaxError as SyntaxError, +const peg$allowedStartRules = [ + "start" +]; +export { + peg$allowedStartRules as StartRules, + peg$SyntaxError as SyntaxError, peg$parse as parse }; diff --git a/packages/mini/krill.pegjs b/packages/mini/krill.pegjs index c1349ca5..8af82cae 100644 --- a/packages/mini/krill.pegjs +++ b/packages/mini/krill.pegjs @@ -1,6 +1,6 @@ /* krill.pegjs - -Copyright (C) 2022 Strudel contributors - see +Copyright (C) 2022 Strudel contributors - see 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 . */ @@ -19,10 +19,10 @@ This program is free software: you can redistribute it and/or modify it under th this.location_ = location(); } - var PatternStub = function(source, alignment, seed, tactus) + var PatternStub = function(source, alignment, seed, _steps) { this.type_ = "pattern"; - this.arguments_ = { alignment: alignment, tactus: tactus }; + this.arguments_ = { alignment: alignment, _steps: _steps }; if (seed !== undefined) { this.arguments_.seed = seed; } @@ -172,8 +172,8 @@ slice_with_ops = s:slice ops:slice_op* } // a sequence is a combination of one or more successive slices (as an array) -sequence = tactus:'^'? s:(slice_with_ops)+ - { return new PatternStub(s, 'fastcat', undefined, !!tactus); } +sequence = _steps:'^'? s:(slice_with_ops)+ + { return new PatternStub(s, 'fastcat', undefined, !!_steps); } // a stack is a series of vertically aligned sequence, separated by a comma stack_tail = tail:(comma @sequence)+ diff --git a/packages/mini/mini.mjs b/packages/mini/mini.mjs index 8d2276fb..d138d9fa 100644 --- a/packages/mini/mini.mjs +++ b/packages/mini/mini.mjs @@ -1,6 +1,6 @@ /* mini.mjs - -Copyright (C) 2022 Strudel contributors - see +Copyright (C) 2022 Strudel contributors - see 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 . */ @@ -14,7 +14,7 @@ const applyOptions = (parent, enter) => (pat, i) => { const ast = parent.source_[i]; const options = ast.options_; const ops = options?.ops; - + const steps_source = pat.__steps_source; if (ops) { for (const op of ops) { switch (op.type_) { @@ -69,7 +69,7 @@ const applyOptions = (parent, enter) => (pat, i) => { } } } - + pat.__steps_source = pat.__steps_source || steps_source; return pat; }; @@ -82,20 +82,20 @@ export function patternifyAST(ast, code, onEnter, offset = 0) { // resolveReplications(ast); const children = ast.source_.map((child) => enter(child)).map(applyOptions(ast, enter)); const alignment = ast.arguments_.alignment; - const with_tactus = children.filter((child) => child.__tactus_source); + const with_steps = children.filter((child) => child.__steps_source); let pat; switch (alignment) { case 'stack': { pat = strudel.stack(...children); - if (with_tactus.length) { - pat.tactus = lcm(...with_tactus.map((x) => Fraction(x.tactus))); + if (with_steps.length) { + pat._steps = lcm(...with_steps.map((x) => Fraction(x._steps))); } break; } case 'polymeter_slowcat': { pat = strudel.stack(...children.map((child) => child._slow(child.__weight))); - if (with_tactus.length) { - pat.tactus = lcm(...with_tactus.map((x) => Fraction(x.tactus))); + if (with_steps.length) { + pat._steps = lcm(...with_steps.map((x) => Fraction(x._steps))); } break; } @@ -111,8 +111,8 @@ export function patternifyAST(ast, code, onEnter, offset = 0) { } case 'rand': { pat = strudel.chooseInWith(strudel.rand.early(randOffset * ast.arguments_.seed).segment(1), children); - if (with_tactus.length) { - pat.tactus = lcm(...with_tactus.map((x) => Fraction(x.tactus))); + if (with_steps.length) { + pat._steps = lcm(...with_steps.map((x) => Fraction(x._steps))); } break; } @@ -131,21 +131,21 @@ export function patternifyAST(ast, code, onEnter, offset = 0) { ...ast.source_.map((child, i) => [child.options_?.weight || strudel.Fraction(1), children[i]]), ); pat.__weight = weightSum; // for polymeter - pat.tactus = weightSum; - if (with_tactus.length) { - pat.tactus = pat.tactus.mul(lcm(...with_tactus.map((x) => Fraction(x.tactus)))); + pat._steps = weightSum; + if (with_steps.length) { + pat._steps = pat._steps.mul(lcm(...with_steps.map((x) => Fraction(x._steps)))); } } else { pat = strudel.sequence(...children); - pat.tactus = children.length; + pat._steps = children.length; } - if (ast.arguments_.tactus) { - pat.__tactus_source = true; + if (ast.arguments_._steps) { + pat.__steps_source = true; } } } - if (with_tactus.length) { - pat.__tactus_source = true; + if (with_steps.length) { + pat.__steps_source = true; } return pat; } diff --git a/packages/mini/package.json b/packages/mini/package.json index 7bd73011..5d94301d 100644 --- a/packages/mini/package.json +++ b/packages/mini/package.json @@ -1,6 +1,6 @@ { "name": "@strudel/mini", - "version": "1.0.1", + "version": "1.2.2", "description": "Mini notation for strudel", "main": "index.mjs", "type": "module", @@ -16,7 +16,7 @@ }, "repository": { "type": "git", - "url": "git+https://github.com/tidalcycles/strudel.git" + "url": "git+https://codeberg.org/uzu/strudel.git" }, "keywords": [ "tidalcycles", @@ -28,15 +28,15 @@ "author": "Felix Roos ", "license": "AGPL-3.0-or-later", "bugs": { - "url": "https://github.com/tidalcycles/strudel/issues" + "url": "https://codeberg.org/uzu/strudel/issues" }, - "homepage": "https://github.com/tidalcycles/strudel#readme", + "homepage": "https://codeberg.org/uzu/strudel#readme", "dependencies": { "@strudel/core": "workspace:*" }, "devDependencies": { - "peggy": "^3.0.2", - "vite": "^5.0.10", - "vitest": "^1.1.0" + "peggy": "^4.2.0", + "vite": "^6.0.11", + "vitest": "^3.0.4" } } diff --git a/packages/mini/test/mini.test.mjs b/packages/mini/test/mini.test.mjs index 92aa6c12..c3899730 100644 --- a/packages/mini/test/mini.test.mjs +++ b/packages/mini/test/mini.test.mjs @@ -1,6 +1,6 @@ /* mini.test.mjs - -Copyright (C) 2022 Strudel contributors - see +Copyright (C) 2022 Strudel contributors - see 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 . */ @@ -208,14 +208,16 @@ describe('mini', () => { it('_ and @ are almost interchangeable', () => { expect(minS('a @ b @ @')).toEqual(minS('a _2 b _3')); }); - it('supports ^ tactus marking', () => { - expect(mini('a [^b c]').tactus).toEqual(Fraction(4)); - expect(mini('[a b c] [d [e f]]').tactus).toEqual(Fraction(2)); - expect(mini('^[a b c] [d [e f]]').tactus).toEqual(Fraction(2)); - expect(mini('[a b c] [d [^e f]]').tactus).toEqual(Fraction(8)); - expect(mini('[a b c] [^d [e f]]').tactus).toEqual(Fraction(4)); - expect(mini('[^a b c] [^d [e f]]').tactus).toEqual(Fraction(12)); - expect(mini('[^a b c] [d [^e f]]').tactus).toEqual(Fraction(24)); + it('supports ^ step marking', () => { + expect(mini('a [^b c]')._steps).toEqual(Fraction(4)); + expect(mini('[^b c]!3')._steps).toEqual(Fraction(6)); + expect(mini('[a b c] [d [e f]]')._steps).toEqual(Fraction(2)); + expect(mini('^[a b c] [d [e f]]')._steps).toEqual(Fraction(2)); + expect(mini('[a b c] [d [^e f]]')._steps).toEqual(Fraction(8)); + expect(mini('[a b c] [^d [e f]]')._steps).toEqual(Fraction(4)); + expect(mini('[^a b c] [^d [e f]]')._steps).toEqual(Fraction(12)); + expect(mini('[^a b c] [d [^e f]]')._steps).toEqual(Fraction(24)); + expect(mini('[^a b c d e]')._steps).toEqual(Fraction(5)); }); }); diff --git a/packages/mondo/README.md b/packages/mondo/README.md new file mode 100644 index 00000000..954f425a --- /dev/null +++ b/packages/mondo/README.md @@ -0,0 +1,39 @@ +# mondo + +a lisp-based language intended to be used as a custom dsl for patterns that can stand on its own feet. +see the `test` folder for usage examples + +more info: + +- [uzulang I](https://garten.salat.dev/uzu/uzulang1.html) +- [uzulang II](https://garten.salat.dev/uzu/uzulang2.html) + +## Example Usage + +```js +import { MondoRunner } from 'mondolang' +// define our library of functions and variables +let lib = { + add: (a, b) => a + b, + mul: (a, b) => a * b, + PI: Math.PI, +}; +// this function will evaluate nodes in the syntax tree +function evaluator(node) { + // check if node is a leaf node (!= list) + if (node.type !== 'list') { + // check lib if we find a match in the lib, otherwise return value + return lib[node.value] ?? node.value; + } + // now it can only be a list.. + const [fn, ...args] = node.children; + // children in a list will already be evaluated + // the first child is expected to be a function + if (typeof fn !== 'function') { + throw new Error(`"${fn}" is not a function`); + } + return fn(...args); +} +const runner = new MondoRunner({ evaluator }); +const pat = runner.run('add 1 (mul 2 PI)') // 7.283185307179586 +``` diff --git a/packages/mondo/mondo.mjs b/packages/mondo/mondo.mjs new file mode 100644 index 00000000..b879f24b --- /dev/null +++ b/packages/mondo/mondo.mjs @@ -0,0 +1,484 @@ +/* +mondo.mjs - +Copyright (C) 2022 Strudel contributors - see +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 . +*/ + +// evolved from https://garten.salat.dev/lisp/parser.html +export class MondoParser { + // these are the tokens we expect + token_types = { + comment: /^\/\/(.*?)(?=\n|$)/, + quotes_double: /^"(.*?)"/, + quotes_single: /^'(.*?)'/, + open_list: /^\(/, + close_list: /^\)/, + open_angle: /^/, + open_square: /^\[/, + close_square: /^\]/, + open_curly: /^\{/, + close_curly: /^\}/, + number: /^-?[0-9]*\.?[0-9]+/, // before pipe! + // TODO: better error handling when "-" is used as rest, e.g "s [- bd]" + op: /^[*/:!@%?+-]|^\.{2}/, // * / : ! @ % ? .. + // dollar: /^\$/, + pipe: /^#/, + stack: /^[,$]/, + or: /^[|]/, + plain: /^[a-zA-Z0-9-~_^#]+/, + }; + // matches next token + next_token(code, offset = 0) { + for (let type in this.token_types) { + const match = code.match(this.token_types[type]); + if (match) { + let token = { type, value: match[0] }; + if (offset !== -1) { + // add location + token.loc = [offset, offset + match[0].length]; + } + return token; + } + } + throw new Error(`mondo: could not match '${code}'`); + } + // takes code string, returns list of matched tokens (if valid) + tokenize(code, offset = 0) { + let tokens = []; + let locEnabled = offset !== -1; + let trim = () => { + // trim whitespace at start, update offset + offset += code.length - code.trimStart().length; + // trim start and end to not confuse parser + return code.trim(); + }; + code = trim(); + while (code.length > 0) { + code = trim(); + const token = this.next_token(code, locEnabled ? offset : -1); + code = code.slice(token.value.length); + offset += token.value.length; + tokens.push(token); + } + return tokens; + } + // take code, return abstract syntax tree + parse(code, offset) { + this.code = code; + this.offset = offset; + this.tokens = this.tokenize(code, offset); + const expressions = []; + while (this.tokens.length) { + expressions.push(this.parse_expr()); + } + if (expressions.length === 0) { + // empty case + return { type: 'list', children: [] }; + } + // do we have multiple top level expressions or a single non list? + if (expressions.length > 1 || expressions[0].type !== 'list') { + return { + type: 'list', + children: this.desugar(expressions), + }; + } + // we have a single list + return expressions[0]; + } + // parses any valid expression + parse_expr() { + if (!this.tokens[0]) { + throw new Error(`unexpected end of file`); + // TODO: could we allow that? like (((((((( s bd + // return { type: 'list', children: [] }; + } + let next = this.tokens[0]?.type; + if (next === 'open_list') { + return this.parse_list(); + } + if (next === 'open_angle') { + return this.parse_angle(); + } + if (next === 'open_square') { + return this.parse_square(); + } + if (next === 'open_curly') { + return this.parse_curly(); + } + return this.consume(next); + } + // Token[] => Token[][], e.g. (x , y z) => [['x'],['y','z']] + split_children(children, split_type) { + const chunks = []; + while (true) { + let splitIndex = children.findIndex((child) => child.type === split_type); + if (splitIndex === -1) break; + const chunk = children.slice(0, splitIndex); + chunks.push(chunk); + children = children.slice(splitIndex + 1); + } + chunks.push(children); + return chunks; + } + desugar_split(children, split_type, next) { + const chunks = this.split_children(children, split_type); + if (chunks.length === 1) { + return next(children); + } + // collect args of stack function + const args = chunks + .map((chunk) => { + if (!chunk.length) { + return; // useful for things like "$ s bd $ s hh*8" (first chunk is empty) + } + if (chunk.length === 1) { + // chunks of one element can be added to the stack as is + return chunk[0]; + } + // chunks of multiple args + chunk = next(chunk); + return { type: 'list', children: chunk }; + }) + .filter(Boolean); // ignore empty chunks + return [{ type: 'plain', value: split_type }, ...args]; + } + // prevents to get a list, e.g. ((x y)) => (x y) + unwrap_children(children) { + if (children.length === 1) { + return children[0].children; + } + return children; + } + desugar_ops(children) { + while (true) { + let opIndex = children.findIndex((child) => child.type === 'op'); + if (opIndex === -1) break; + const op = { type: 'plain', value: children[opIndex].value }; + if (opIndex === children.length - 1) { + //throw new Error(`cannot use operator as last child.`); + children[opIndex] = op; // ignore operator if last child.. e.g. "note [c -]" + continue; + } + if (opIndex === 0) { + // regular function call (assuming each operator exists as function) + children[opIndex] = op; + continue; + } + // convert infix to prefix notation + const left = children[opIndex - 1]; + const right = children[opIndex + 1]; + if (left.type === 'pipe') { + // "x !* 2" => (* 2 x) + children[opIndex] = op; + continue; + } + // some careful error handling + if (left.type === 'op') { + throw new Error(`got 2 ops in a row: "${left.value}${op.value}"`); + } + if (right.type === 'op') { + let err = `got 2 ops in a row: "${op.value}${right.value}"`; + if (op.value === '-') { + // yes i know this file is not supposed to know about rests x.X + err += '. you probably want a rest, which is "_" in mondo!'; + } + throw new Error(err); + } + const call = { type: 'list', children: [op, right, left] }; + // insert call while keeping other siblings + children = [...children.slice(0, opIndex - 1), call, ...children.slice(opIndex + 2)]; + children = this.unwrap_children(children); + } + return children; + } + get_lambda(args, children) { + // (.fast 2) = (fn (_) (fast _ 2)) + children = this.desugar(children); + const body = children.length === 1 ? children[0] : { type: 'list', children }; + return [{ type: 'plain', value: 'fn' }, { type: 'list', children: args }, body]; + } + // returns location range of given ast (even if desugared) + get_range(ast, range = [Infinity, 0]) { + let union = (a, b) => [Math.min(a[0], b[0]), Math.max(a[1], b[1])]; + if (ast.loc) { + return union(range, ast.loc); + } + if (ast.type !== 'list') { + return range; + } + return ast.children.reduce((range, child) => { + const childrange = this.get_range(child, range); + return union(range, childrange); + }, range); + } + errorhead(ast) { + return `[mondo ${this.get_range(ast)?.join(':') || '?'}]`; + } + // returns original user code where the given ast originates (even if desugared) + get_code_snippet(ast) { + const [min, max] = this.get_range(ast); + return this.code.slice(min - this.offset, max - this.offset); + } + desugar_pipes(children) { + let chunks = this.split_children(children, 'pipe'); + while (chunks.length > 1) { + let [left, right, ...rest] = chunks; + + if (!left.length) { + const arg = { type: 'plain', value: '_' }; + return this.get_lambda([arg], [arg, ...children]); + } + // s jazz hh.fast 2 => (fast 2 (s jazz hh)) + const call = left.length > 1 ? { type: 'list', children: left } : left[0]; + chunks = [[...right, call], ...rest]; + } + // return next(chunks[0]); + return chunks[0]; + } + parse_pair(open_type, close_type) { + const begin = this.tokens[0].loc?.[0]; + this.consume(open_type); + const children = []; + while (this.tokens[0]?.type !== close_type) { + children.push(this.parse_expr()); + } + const end = this.tokens[0].loc?.[1]; + this.consume(close_type); + const node = { type: 'list', children }; + if (begin !== undefined) { + node.loc = [begin, end]; + node.raw = this.code.slice(begin, end); + } + return node; + } + desugar(children, type) { + // if type is given, the first element is expected to contain it as plain value + // e.g. with (square a b, c), we want to split (a b, c) and ignore "square" + children = type ? children.slice(1) : children; + children = this.desugar_split(children, 'stack', (children) => + this.desugar_split(children, 'or', (children) => { + // chunks of multiple args + if (type) { + // the type we've removed before splitting needs to be added back + children = [{ type: 'plain', value: type }, ...children]; + } + children = this.desugar_ops(children); + // children = this.desugar_pipes(children, (children) => this.desugar_dollars(children)); + children = this.desugar_pipes(children); + return children; + }), + ); + return children; + } + parse_list() { + let node = this.parse_pair('open_list', 'close_list'); + node.children = this.desugar(node.children); + return node; + } + parse_angle() { + let node = this.parse_pair('open_angle', 'close_angle'); + node.children.unshift({ type: 'plain', value: 'angle' }); + node.children = this.desugar(node.children, 'angle'); + return node; + } + parse_square() { + let node = this.parse_pair('open_square', 'close_square'); + node.children.unshift({ type: 'plain', value: 'square' }); + node.children = this.desugar(node.children, 'square'); + return node; + } + parse_curly() { + let node = this.parse_pair('open_curly', 'close_curly'); + node.children.unshift({ type: 'plain', value: 'curly' }); + node.children = this.desugar(node.children, 'curly'); + return node; + } + consume(type) { + // shift removes first element and returns it + const token = this.tokens.shift(); + if (token.type !== type) { + throw new Error(`expected token type ${type}, got ${token.type}`); + } + return token; + } + get_locations(code, offset = 0) { + let walk = (ast, locations = []) => { + if (ast.type === 'list') { + return ast.children.forEach((child) => walk(child, locations)); + } + if (ast.loc) { + locations.push(ast.loc); + } + }; + const ast = this.parse(code, offset); + let locations = []; + walk(ast, locations); + return locations; + } +} + +export function printAst(ast, compact = false, lvl = 0) { + const br = compact ? '' : '\n'; + const spaces = compact ? '' : Array(lvl).fill(' ').join(''); + if (ast.type === 'list') { + return `${lvl ? br : ''}${spaces}(${ast.children.map((child) => printAst(child, compact, lvl + 1)).join(' ')}${ + ast.children.find((child) => child.type === 'list') ? `${br}${spaces})` : ')' + }`; + } + return `${ast.value}`; +} + +// lisp runner +export class MondoRunner { + constructor({ evaluator } = {}) { + this.parser = new MondoParser(); + this.evaluator = evaluator; + this.assert(typeof evaluator === 'function', `expected an evaluator function to be passed to new MondoRunner`); + } + // a helper to check conditions and throw if they are not met + assert(condition, error) { + if (!condition) { + throw new Error(error); + } + } + run(code, scope, offset = 0) { + const ast = this.parser.parse(code, offset); + //console.log(printAst(ast)); + return this.evaluate(ast, scope); + } + evaluate_let(ast, scope) { + // (let ((x 3) (y 4)) ...body) + // = ((fn (x y) ...body) 3 4) + const defs = ast.children[1].children; + const args = defs.map((pair) => pair.children[0]); + const vals = defs.map((pair) => pair.children[1]); + const body = ast.children.slice(2); + const lambda = { + type: 'list', + children: [{ type: 'plain', value: 'fn' }, { type: 'list', children: args }, ...body], + }; + return this.evaluate({ type: 'list', children: [lambda, ...vals] }, scope); + } + evaluate_def(ast, scope) { + // function definition special form? + if (ast.children[1].type === 'list') { + // (def (add a b) (+ a b)) + // => (def add (fn (a b) (+ a b)) ) + const args = ast.children[1].children.slice(1); + const lambda = { + // lambda + type: 'list', + children: [ + { type: 'plain', value: 'fn' }, + { type: 'list', children: args }, + ...ast.children.slice(2), // body + ], + }; + // we mutate to make sure the old ast wont make a mess later + ast.children[1] = ast.children[1].children[0]; + ast.children[2] = lambda; + ast.children = ast.children.slice(0, 3); // throw away rest + } + // (def name body) + if (ast.children.length !== 3) { + throw new Error(`expected "def" to have 3 children, but got ${ast.children.length}`); + } + const name = ast.children[1].value; + const body = this.evaluate(ast.children[2], scope); + scope[name] = body; + // def with fall through + } + evaluate_match(ast, scope) { + // (match (p1 e1) (p2 e2) ... (pn en)) + // = cond in lisp + if (ast.children.length < 2) { + return; + } + const [_, ...body] = ast.children; + for (let i = 0; i < body.length; ++i) { + const [predicate, exp] = body[i].children; + if (predicate.value === 'else') { + return this.evaluate(exp, scope); + } + const outcome = this.evaluate(predicate, scope); + if (outcome) { + return this.evaluate(exp, scope); + } + } + return undefined; // nothing was matched + } + evaluate_if(ast, scope) { + // if is a special case of match + if (ast.children.length !== 4) { + return; + } + // (if predicate consequent alternative) + const [_, predicate, consequent, alternative] = ast.children; + // (match (predicate consequent) (else alternative)) + const matcher = { + type: 'list', + children: [ + { type: 'plain', value: 'match' }, + { type: 'list', children: [predicate, consequent] }, + { type: 'list', children: [{ type: 'plain', value: 'else' }, alternative] }, + ], + }; + return this.evaluate_match(matcher, scope); + } + evaluate_lambda(ast, scope) { + // (fn (_) (ply 2 _) + // ^args ^ body + const [_, formalArgs, ...body] = ast.children; + return (...args) => { + const params = Object.fromEntries(formalArgs.children.map((arg, i) => [arg.value, args[i]])); + const closure = { + ...scope, + ...params, + }; + // body can have multiple expressions + const res = body.map((exp) => this.evaluate(exp, closure)); + // last expression is the return value + return res[res.length - 1]; + }; + } + evaluate_list(ast, scope) { + // evaluate all children before evaluating list (dont mutate!!!) + const args = ast.children + .filter((child) => child.type !== 'comment') // ignore comments + .map((arg) => this.evaluate(arg, scope)); + const node = { type: 'list', children: args }; + return this.evaluator(node, scope); + } + evaluate_leaf(ast, scope) { + if (ast.type === 'number') { + ast.value = Number(ast.value); + } else if (['quotes_double', 'quotes_single'].includes(ast.type)) { + ast.value = ast.value.slice(1, -1); + ast.type = 'string'; + } + return this.evaluator(ast, scope); + } + evaluate(ast, scope = {}) { + if (ast.type !== 'list') { + return this.evaluate_leaf(ast, scope); + } + const name = ast.children[0]?.value; + if (name === 'fn') { + return this.evaluate_lambda(ast, scope); + } + if (name === 'match') { + return this.evaluate_match(ast, scope); + } + if (name === 'if') { + return this.evaluate_if(ast, scope); + } + if (name === 'let') { + return this.evaluate_let(ast, scope); + } + if (name === 'def') { + this.evaluate_def(ast, scope); + } + return this.evaluate_list(ast, scope); + } +} diff --git a/packages/mondo/package.json b/packages/mondo/package.json new file mode 100644 index 00000000..277bddb1 --- /dev/null +++ b/packages/mondo/package.json @@ -0,0 +1,37 @@ +{ + "name": "mondolang", + "version": "1.1.0", + "description": "a language for functional composition that translates to js", + "main": "mondo.mjs", + "type": "module", + "publishConfig": { + "main": "dist/mondo.mjs" + }, + "scripts": { + "test": "vitest run", + "bench": "vitest bench", + "build": "vite build", + "prepublishOnly": "npm run build" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/tidalcycles/strudel.git" + }, + "keywords": [ + "tidalcycles", + "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/blob/main/packages/mondo/README.md", + "devDependencies": { + "vite": "^6.0.11", + "vitest": "^3.0.4" + } +} diff --git a/packages/mondo/test/mondo.test.mjs b/packages/mondo/test/mondo.test.mjs new file mode 100644 index 00000000..6393b10f --- /dev/null +++ b/packages/mondo/test/mondo.test.mjs @@ -0,0 +1,978 @@ +/* +mondo.test.mjs - +Copyright (C) 2022 Strudel contributors - see +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 . +*/ + +import { describe, expect, it } from 'vitest'; +import { MondoParser, printAst, MondoRunner } from '../mondo.mjs'; + +const parser = new MondoParser(); +const p = (code) => parser.parse(code, -1); + +describe('mondo tokenizer', () => { + const parser = new MondoParser(); + it('should tokenize with locations', () => + expect( + parser + .tokenize('(one two three)') + .map((t) => t.value + '=' + t.loc.join('-')) + .join(' '), + ).toEqual('(=0-1 one=1-4 two=5-8 three=9-14 )=14-15')); + // it('should parse with loangleions', () => expect(parser.parse('(one two three)')).toEqual()); + it('should get loangleions', () => + expect(parser.get_locations('s bd rim')).toEqual([ + [0, 1], + [2, 4], + [5, 8], + ])); +}); +describe('mondo s-expressions parser', () => { + it('should parse an empty string', () => expect(p('')).toEqual({ type: 'list', children: [] })); + it('should parse a single item', () => + expect(p('a')).toEqual({ type: 'list', children: [{ type: 'plain', value: 'a' }] })); + it('should parse an empty list', () => expect(p('()')).toEqual({ type: 'list', children: [] })); + it('should parse a list with 1 item', () => + expect(p('(a)')).toEqual({ type: 'list', children: [{ type: 'plain', value: 'a' }] })); + it('should parse a list with 2 items', () => + expect(p('(a b)')).toEqual({ + type: 'list', + children: [ + { type: 'plain', value: 'a' }, + { type: 'plain', value: 'b' }, + ], + })); + it('should parse a list with 2 items', () => + expect(p('(a (b c))')).toEqual({ + type: 'list', + children: [ + { type: 'plain', value: 'a' }, + { + type: 'list', + children: [ + { type: 'plain', value: 'b' }, + { type: 'plain', value: 'c' }, + ], + }, + ], + })); + it('should parse numbers', () => + expect(p('(1 .2 1.2 10 22.3)')).toEqual({ + type: 'list', + children: [ + { type: 'number', value: '1' }, + { type: 'number', value: '.2' }, + { type: 'number', value: '1.2' }, + { type: 'number', value: '10' }, + { type: 'number', value: '22.3' }, + ], + })); + it('should parse comments', () => + expect(p('a // hello')).toEqual({ + type: 'list', + children: [ + { type: 'plain', value: 'a' }, + { type: 'comment', value: '// hello' }, + ], + })); +}); + +let desguar = (a) => { + return printAst(parser.parse(a), true); +}; + +describe('mondo sugar', () => { + it('should desugar []', () => expect(desguar('[a b c]')).toEqual('(square a b c)')); + it('should desugar [] nested', () => expect(desguar('[a [b c] d]')).toEqual('(square a (square b c) d)')); + it('should desugar <>', () => expect(desguar('
')).toEqual('(angle a b c)')); + it('should desugar <> nested', () => expect(desguar(' d>')).toEqual('(angle a (angle b c) d)')); + it('should desugar mixed [] <>', () => expect(desguar('[a ]')).toEqual('(square a (angle b c))')); + it('should desugar mixed <> []', () => expect(desguar('')).toEqual('(angle a (square b c))')); + + it('should desugar #', () => expect(desguar('s jazz # fast 2')).toEqual('(fast 2 (s jazz))')); + it('should desugar # square', () => expect(desguar('[bd cp # fast 2]')).toEqual('(fast 2 (square bd cp))')); + it('should desugar # twice', () => expect(desguar('s jazz # fast 2 # slow 2')).toEqual('(slow 2 (fast 2 (s jazz)))')); + it('should desugar # nested', () => expect(desguar('(s cp # fast 2)')).toEqual('(fast 2 (s cp))')); + it('should desugar # within []', () => expect(desguar('[bd cp # fast 2]')).toEqual('(fast 2 (square bd cp))')); + it('should desugar # within , within []', () => + expect(desguar('[bd cp # fast 2, x]')).toEqual('(stack (fast 2 (square bd cp)) x)')); + + // it('should desugar .(.', () => expect(desguar('[jazz hh.(.fast 2)]')).toEqual('(square jazz (fast 2 hh))')); + + it('should desugar , |', () => expect(desguar('[bd, hh | oh]')).toEqual('(stack bd (or hh oh))')); + it('should desugar , | of []', () => + expect(desguar('[bd, hh | [oh rim]]')).toEqual('(stack bd (or hh (square oh rim)))')); + it('should desugar , square', () => expect(desguar('[bd, hh]')).toEqual('(stack bd hh)')); + it('should desugar , square 2', () => expect(desguar('[bd, hh oh]')).toEqual('(stack bd (square hh oh))')); + it('should desugar , square 3', () => + expect(desguar('[bd cp, hh oh]')).toEqual('(stack (square bd cp) (square hh oh))')); + it('should desugar , angle', () => expect(desguar('')).toEqual('(stack bd hh)')); + it('should desugar , angle 2', () => expect(desguar('')).toEqual('(stack bd (angle hh oh))')); + it('should desugar , angle 3', () => + expect(desguar('')).toEqual('(stack (angle bd cp) (angle hh oh))')); + it('should desugar , ()', () => expect(desguar('(s bd, s cp)')).toEqual('(stack (s bd) (s cp))')); + it('should desugar * /', () => expect(desguar('[a b*2 c d/3 e]')).toEqual('(square a (* 2 b) c (/ 3 d) e)')); + it('should desugar []*x', () => expect(desguar('[a [b c]*3]')).toEqual('(square a (* 3 (square b c)))')); + it('should desugar []*', () => expect(desguar('[a b*<2 3> c]')).toEqual('(square a (* (angle 2 3) b) c)')); + it('should desugar x:y', () => expect(desguar('x:y')).toEqual('(: y x)')); + it('should desugar x:y:z', () => expect(desguar('x:y:z')).toEqual('(: z (: y x))')); + it('should desugar x:y*x', () => expect(desguar('bd:0*2')).toEqual('(* 2 (: 0 bd))')); + it('should desugar a..b', () => expect(desguar('0..2')).toEqual('(.. 2 0)')); + /* it('should desugar x $ y', () => expect(desguar('x $ y')).toEqual('(x y)')); + it('should desugar x $ y z', () => expect(desguar('x $ y z')).toEqual('(x (y z))')); + it('should desugar x $ y . z', () => expect(desguar('x $ y . z')).toEqual('(z (x y))')); */ + + it('should desugar README example', () => + expect(desguar('s [bd hh*2 (cp # crush 4) ] # speed .8')).toEqual( + '(speed .8 (s (square bd (* 2 hh) (crush 4 cp) (angle mt ht lt))))', + )); + + it('should desugar (#)', () => expect(desguar('(#)')).toEqual('(fn (_) _)')); + it('should desugar lambda', () => expect(desguar('(# fast 2)')).toEqual('(fn (_) (fast 2 _))')); + it('should desugar lambda call', () => expect(desguar('((# mul 2) 2)')).toEqual('((fn (_) (mul 2 _)) 2)')); + it('should desugar lambda with pipe', () => + expect(desguar('(# fast 2 # room 1)')).toEqual('(fn (_) (room 1 (fast 2 _)))')); + /* const lambda = parser.parse('(lambda (_) (fast 2 _))'); + const target = { type: 'plain', value: 'xyz' }; + it('should desugar_lambda', () => + expect(printAst(parser.desugar_lambda(lambda.children, target))).toEqual('(fast 2 xyz)')); */ +}); + +describe('mondo arithmetic', () => { + let multi = + (op) => + (init, ...rest) => + rest.reduce((acc, arg) => op(acc, arg), init); + + let lib = { + '+': multi((a, b) => a + b), + add: multi((a, b) => a + b), + '-': multi((a, b) => a - b), + sub: multi((a, b) => a - b), + '*': multi((a, b) => a * b), + '/': multi((a, b) => a / b), + mod: multi((a, b) => a % b), + eq: (a, b) => a === b, + lt: (a, b) => a < b, + gt: (a, b) => a > b, + and: (a, b) => a && b, + or: (a, b) => a || b, + not: (a) => !a, + run: (...args) => args[args.length - 1], + def: () => 0, + sin: Math.sin, + cos: Math.cos, + PI: Math.PI, + cons: (a, b) => [a, ...(Array.isArray(b) ? b : [b])], + car: (pair) => pair[0], + cdr: (pair) => pair.slice(1), + list: (...items) => items, + nil: [], + isnull: (items) => items.length === 0, + concat: (...msgs) => msgs.join(''), + error: (...msgs) => { + throw new Error(msgs.join(' ')); + }, + }; + function evaluator(node, scope) { + if (node.type !== 'list') { + // is leaf + return scope[node.value] ?? lib[node.value] ?? node.value; + } + // is list + const [fn, ...args] = node.children; + if (typeof fn !== 'function') { + throw new Error(`"${fn}": expected function, got ${typeof fn} "${fn}"`); + } + return fn(...args); + } + const runner = new MondoRunner({ evaluator }); + let evaluate = (exp, scope) => runner.run(`run ${exp}`, scope); + let pretty = (exp) => printAst(runner.parser.parse(exp), false); + //it('should eval nested expression', () => expect(runner.run('add 1 (mul 2 PI)').toFixed(2)).toEqual('7.28')); + + it('eval number', () => expect(evaluate('2')).toEqual(2)); + it('eval string', () => expect(evaluate('abc')).toEqual('abc')); + it('eval list', () => expect(evaluate('(+ 1 2)')).toEqual(3)); + it('eval nested list', () => expect(evaluate('(+ 1 (+ 2 3))')).toEqual(6)); + it('def number', () => expect(evaluate('(def a 2) a')).toEqual(2)); + it('def + ref number', () => expect(evaluate('(def a 2) (* a a)')).toEqual(4)); + it('def + call lambda', () => expect(evaluate('(def sqr (fn (x) (* x x))) (sqr 3)')).toEqual(9)); + + // sicp + it('sicp 8.1', () => expect(evaluate('(+ 137 349)')).toEqual(486)); + it('sicp 8.2', () => expect(evaluate('(- 1000 334)')).toEqual(666)); + it('sicp 8.3', () => expect(evaluate('(* 5 99)')).toEqual(495)); + it('sicp 8.4', () => expect(evaluate('(/ 10 5)')).toEqual(2)); + it('sicp 8.5', () => expect(evaluate('(+ 2.7 10)')).toEqual(12.7)); + it('sicp 9.1', () => expect(evaluate('(+ 21 35 12 7)')).toEqual(75)); + it('sicp 9.2', () => expect(evaluate('(* 25 4 12)')).toEqual(1200)); + it('sicp 9.3', () => expect(evaluate('(+ (* 3 5) (- 10 6))')).toEqual(19)); + it('sicp 9.4', () => + expect(pretty('(+ (* 3 (+ (* 2 4) (+ 3 5))) (+ (- 10 7) 6))')).toEqual(`(+ + (* 3 + (+ + (* 2 4) + (+ 3 5) + ) + ) + (+ + (- 10 7) 6 + ) +)`)); // this is not exactly pretty printing by convention.. + + let scope = {}; + it('sicp 11.1', () => expect(evaluate('(def size 2) (* 5 size)', scope)).toEqual(10)); + it('sicp 11.2', () => + expect(evaluate('(def pi 3.14159) (def radius 10) (* pi (* radius radius))', scope)).toEqual(314.159)); + it('sicp 11.3', () => expect(evaluate('(def circumference (* 2 pi radius))', scope)).toEqual(0)); + it('sicp 11.4', () => expect(evaluate('circumference', scope)).toEqual(62.8318)); + it('sicp 13.1', () => expect(evaluate('(* (+ 2 (* 4 6)) (+ 3 5 7))')).toEqual(390)); + it('sicp 16.1', () => expect(evaluate('(def (square x) (* x x))', scope)).toEqual(0)); + // it('sicp 16.1', () => expect(evaluate('(def (square x) (* x x))', scope)).toEqual(0)); + it('sicp 17.1', () => expect(evaluate('(square 21)', scope)).toEqual(441)); + it('sicp 17.2', () => expect(evaluate('(square (+ 2 5))', scope)).toEqual(49)); + it('sicp 17.3', () => expect(evaluate('(square (square 3))', scope)).toEqual(81)); + it('sicp 17.4', () => expect(evaluate(`(def (sumofsquares x y) (+ (square x) (square y)))`, scope)).toEqual(0)); + it('sicp 17.5', () => expect(evaluate(`(sumofsquares 3 4)`, scope)).toEqual(25)); + it('sicp 17.6', () => expect(evaluate(`(def (f a) (sumofsquares (+ a 1) (* a 2))) (f 5)`, scope)).toEqual(136)); + it('sicp 21.1', () => expect(evaluate(`(sumofsquares (+ 5 1) (* 5 2))`, scope)).toEqual(136)); + + it('sicp 22.1', () => + expect( + evaluate( + `(def (abs x) + (match + ((gt x 0) x) + ((eq x 0) 0) + ((lt x 0) (- 0 x)) + ))`, // sicp was doing (- x), which doesnt work with our - + scope, + ), + ).toEqual(0)); + + it('sicp gt1', () => expect(evaluate(`(gt -12 0)`, scope)).toEqual(false)); + it('sicp gt2', () => expect(evaluate(`(gt 0 -12)`, scope)).toEqual(true)); + it('sicp lt1', () => expect(evaluate(`(lt -12 0)`, scope)).toEqual(true)); + it('sicp lt2', () => expect(evaluate(`(lt 0 -12)`, scope)).toEqual(false)); + + it('sicp 24.1', () => expect(evaluate(`(abs (- 3))`, scope)).toEqual(3)); + it('sicp 24.2', () => expect(evaluate(`(abs (+ 3))`, scope)).toEqual(3)); + it('sicp 24.3', () => expect(evaluate(`(abs -12)`, scope)).toEqual(12)); + + it('sicp 24.4', () => expect(evaluate(`(def (abs x) (if (lt x 0) (- 0 x) x))`, scope)).toEqual(0)); + it('sicp 24.5', () => expect(evaluate(`(abs -13)`, scope)).toEqual(13)); + it('sicp 25.1', () => expect(evaluate(`(and (gt 6 5) (lt 6 10))`, scope)).toEqual(true)); + it('sicp 25.2', () => expect(evaluate(`(and (gt 4 5) (lt 6 10))`, scope)).toEqual(false)); + + it('sicp ex1.1.1', () => expect(evaluate(`(def a 3)`, scope)).toEqual(0)); + it('sicp ex1.1.2', () => expect(evaluate(`(def b (+ a 1))`, scope)).toEqual(0)); + it('sicp ex1.1.3', () => expect(evaluate(`(+ a b (* a b))`, scope)).toEqual(19)); + it('sicp ex1.1.4', () => expect(evaluate(`(if (and (gt b a) (lt b (* a b))) b a)`, scope)).toEqual(4)); + it('sicp ex1.1.5', () => expect(evaluate(`(match ((eq a 4) 6) ((eq b 4) (+ 6 7 a)) (else 25))`, scope)).toEqual(16)); + it('sicp ex1.1.6', () => expect(evaluate(`(+ 2 (if (gt b a) b a))`, scope)).toEqual(6)); + it('sicp ex1.1.7', () => + expect(evaluate(`(* (match ((gt a b) a) ((lt a b) b) (else -1)) (+ a 1))`, scope)).toEqual(16)); + + // .. cant use "+" and "-" as standalone expressions, because they are parsed as operators... + it('sicp ex1.4.1', () => expect(evaluate(`(def (foo a b) ((if (gt b 0) add sub) a b))`, scope)).toEqual(0)); + it('sicp ex1.4.1', () => expect(evaluate(`(foo 3 1)`, scope)).toEqual(4)); + it('sicp ex1.4.2', () => expect(evaluate(`(foo 3 -1)`, scope)).toEqual(4)); + + // 1.1.7 Example: Square Roots by Newton’s Method + it('sicp 30.1', () => + expect(evaluate(`(def (goodenuf guess x) (lt (abs (- (square guess) x)) 0.001))`, scope)).toEqual(0)); + it('sicp 30.2', () => expect(evaluate(`(goodenuf 1 1.001)`, scope)).toEqual(true)); + it('sicp 30.3', () => expect(evaluate(`(goodenuf 1 1.002)`, scope)).toEqual(false)); + it('sicp 30.4', () => expect(evaluate(`(def (average x y) (/ (+ x y) 2))`, scope)).toEqual(0)); + it('sicp 30.5', () => expect(evaluate(`(average 18 20)`, scope)).toEqual(19)); + it('sicp 30.6', () => expect(evaluate(`(def (improve guess x) (average guess (/ x guess)))`, scope)).toEqual(0)); + it('sicp 31.1', () => + expect( + evaluate( + `(def (sqrtiter guess x) (if (goodenuf guess x) + guess + (sqrtiter (improve guess x) x)))`, + scope, + ), + ).toEqual(0)); + it('sicp 31.2', () => expect(evaluate(`(def (sqrt x) (sqrtiter 1.0 x))`, scope)).toEqual(0)); + it('sicp 31.3', () => expect(evaluate(`(sqrt 9)`, scope)).toEqual(3.00009155413138)); + it('sicp 31.4', () => expect(evaluate(`(sqrt (+ 100 37))`, scope)).toEqual(11.704699917758145)); + // eslint-disable-next-line no-loss-of-precision + it('sicp 31.5', () => expect(evaluate(`(sqrt (+ (sqrt 2) (sqrt 3)))`, scope)).toEqual(1.77392790232078925)); + it('sicp 31.6', () => expect(evaluate(`(square (sqrt 1000))`, scope)).toEqual(1000.000369924366)); + + // lexical scoping + it('sicp 39.1', () => + expect( + evaluate( + ` +(def (sqrt x) + (def (goodenough guess) + (lt (abs (- (square guess) x)) 0.001)) +(def (improve guess) + (average guess (/ x guess))) +(def (sqrt-iter guess) + (if (goodenough guess) guess (sqrt-iter (improve guess)))) +(sqrtiter 1.0)) + + `, + scope, + ), + ).toEqual(0)); + + // recursive fac + it('sicp 41.1', () => expect(evaluate(`(def (fac n) (if (eq n 1) 1 (* n (fac (- n 1)))))`, scope)).toEqual(0)); + it('sicp 41.2', () => expect(evaluate(`(fac 4)`, scope)).toEqual(24)); + + // iterative fac + it('sicp 41.3', () => + expect( + evaluate( + ` +(def (factorial n) (factiter 1 1 n)) +(def (factiter product counter maxcount) + (if (gt counter maxcount) + product + (factiter (* counter product) + (+ counter 1) + maxcount))) +`, + scope, + ), + ).toEqual(0)); + it('sicp 41.4', () => expect(evaluate(`(fac 4)`, scope)).toEqual(24)); + + // 46.1 + /* (def (+ a b) +(if (= a 0) b (inc (+ (dec a) b)))) +(def (+ a b) +(if (= a 0) b (+ (dec a) (inc b)))) */ + + // Exercise 1.10 + // Ackermann’s function + it('sicp 47.1', () => + expect( + evaluate( + ` +(def (A x y) (match ((eq y 0) 0) +((eq x 0) (* 2 y)) +((eq y 1) 2) +(else (A (- x 1) (A x (- y 1)))))) +`, + scope, + ), + ).toEqual(0)); + it('sicp 47.2', () => expect(evaluate(`(A 1 10)`, scope)).toEqual(1024)); + it('sicp 47.3', () => expect(evaluate(`(A 2 4)`, scope)).toEqual(65536)); + it('sicp 47.4', () => expect(evaluate(`(A 3 3)`, scope)).toEqual(65536)); + it('sicp 47.5', () => + expect( + evaluate( + ` +(def (f n) (A 0 n)) +(def (g n) (A 1 n))) +(def (h n) (A 2 n)) +(def (k n) (* 5 n n)) + `, + scope, + ), + ).toEqual(0)); + + // Tree Recursion + // recursive process + it('sicp 48.1', () => + expect( + evaluate( + ` +(def (fib n) (match ((eq n 0) 0) ((eq n 1) 1) +(else (+ (fib (- n 1)) (fib (- n 2)))))) +(fib 7) + `, + scope, + ), + ).toEqual(13)); + + // iterative process + it('sicp 48.2', () => + expect( + evaluate( + ` +(def (fib n) (fibiter 1 0 n)) +(def (fibiter a b count) (if (eq count 0) + b + (fibiter (+ a b) a (- count 1)))) +(fib 7) + `, + scope, + ), + ).toEqual(13)); + + // example: counting change + it('sicp 52.2', () => + expect( + evaluate( + ` +(def (countchange amount) (cc amount 5)) +(def (cc amount kindsofcoins) + (match + ((eq amount 0) 1) + ((or (lt amount 0) (eq kindsofcoins 0)) 0) + (else (+ + (cc amount (- kindsofcoins 1)) + (cc (- amount (firstdenomination kindsofcoins)) kindsofcoins))))) + +(def (firstdenomination kindsofcoins) +(match + ((eq kindsofcoins 1) 1) + ((eq kindsofcoins 2) 5) + ((eq kindsofcoins 3) 10) + ((eq kindsofcoins 4) 25) + ((eq kindsofcoins 5) 50))) + +(countchange 100) + `, + scope, + ), + ).toEqual(292)); + + // todo: pascals triangle + it('sicp 57.1', () => + expect( + evaluate( + ` +(def (cube x) (* x x x)) +(def (p x) (sub (* 3 x) (* 4 (cube x)))) +(def (sine angle) +(if (not (gt (abs angle) 0.1)) angle +(p (sine (/ angle 3.0))))) + +(sine 12.15) + `, + scope, + ), + ).toEqual(-0.39980345741334)); + + // exponentiation recursive + it('sicp 57.2', () => + expect( + evaluate( + ` +(def (expt b n) (if (eq n 0) 1 (* b (expt b (- n 1))))) +(expt 2 4) +`, + scope, + ), + ).toEqual(16)); + + // exponentiation iterative + it('sicp 58.1b', () => + expect( + evaluate( + ` +(def (expt b n) (exptiter b n 1)) +(def (exptiter b counter product) (if (eq counter 0) + product + (exptiter b (- counter 1) (* b product)))) +(expt 2 5) + `, + scope, + ), + ).toEqual(32)); + + // exponentiation fast + it('sicp 58.2', () => + expect( + evaluate( + ` +(def (fastexpt b n) (match ((eq n 0) 1) +((iseven n) (square (fastexpt b (/ n 2)))) (else (* b (fastexpt b (- n 1)))))) +(def (iseven n) +(eq (mod n 2) 0)) +(fastexpt 2 5) + `, + scope, + ), + ).toEqual(32)); + + // * = repeated addition + it('sicp 60.1', () => + expect( + evaluate( + `(def (mult a b) (if (eq b 0) + 0 + (+ a (* a (- b 1))))) + (mult 3 15) + `, + ), + ).toEqual(45)); + + // gcd / euclid + it('sicp 63.1', () => + expect( + evaluate( + `(def (gcd a b) (if (eq b 0) + a + (gcd b (mod a b)))) + (gcd 20 6) + `, + scope, + ), + ).toEqual(2)); + + // 65 smallest divisor + // 67 fermat test + // .... + + // higher order procedures + + it('sicp 77.1', () => + expect( + evaluate( + ` +(def (sum term a next b) +(if (gt a b) 0 (+ (term a) +(sum term (next a) next b)))) +`, + scope, + ), + ).toEqual(0)); + + it('sicp 78.1', () => + expect( + evaluate( + ` +(def (inc n) (+ n 1)) +(def (cube a) (* a a a)) +(def (sumcubes a b) +(sum cube a inc b)) +(sumcubes 1 10) + `, + scope, + ), + ).toEqual(3025)); + + it('sicp 78.2', () => + expect( + evaluate( + ` + (def (identity x) x) + (def (sumintegers a b) + (sum identity a inc b)) + (sumintegers 1 10) + `, + scope, + ), + ).toEqual(55)); + + // pisum + it('sicp 79.1', () => + expect( + evaluate( + ` +(def (pisum a b) + (def (piterm x) + (/ 1.0 (* x (+ x 2)))) +(def (pinext x) (+ x 4)) +(sum piterm a pinext b)) +(* 8 (pisum 1 1000)) +`, + scope, + ), + ).toEqual(3.139592655589783)); + + // integral + it('sicp 79.2', () => + expect( + evaluate( + ` +(def (integral f a b dx) + (def (adddx x) (+ x dx)) +(* (sum f (+ a (/ dx 2.0)) adddx b) dx)) +(integral cube 0 1 0.01) + `, + scope, + ), + ).toEqual(0.24998750000000042)); + // maximum callstack... + //it('sicp 79.3', () => expect(evaluate(`(integral cube 0 1 0.001)`, scope)).toEqual(0.249999875000001)); + + //lambdas + it('sicp 83.1', () => expect(evaluate(`((fn (x) (+ x 4)) 5)`)).toEqual(9)); + + it('sicp 83.2', () => + expect( + evaluate( + ` +(def (pisum a b) + (sum (fn (x) (/ 1.0 (* x (+ x 2)))) + a + (fn (x) (+ x 4)) + b)) +(* 8 (pisum 1 1000)) +`, + scope, + ), + ).toEqual(3.139592655589783)); + it('sicp 83.3', () => + expect( + evaluate( + ` +(def (integral f a b dx) + (* (sum f + (+ a (/ dx 2.0)) + (fn (x) (+ x dx)) + b) + dx)) +(integral cube 0 1 0.01) +`, + scope, + ), + ).toEqual(0.24998750000000042)); + it('sicp 84.1', () => expect(evaluate(`((fn (x y z) (+ x y (square z))) 1 2 3)`, scope)).toEqual(12)); + + // let expressions + it('sicp 87.1', () => + expect( + evaluate( + ` +(+ (let ((x 3)) +(+ x (* x 10))) x) +`, + { x: 5 }, + ), + ).toEqual(38)); + it('sicp 87.2', () => + expect( + evaluate( + ` +(let ((x 3) +(y (+ x 2))) +(* x y)) + `, + { x: 2 }, + ), + ).toEqual(12)); + it('sicp 88.1', () => + expect( + evaluate( + ` +(def (f g) (g 2)) +(f square) + `, + scope, + ), + ).toEqual(4)); + it('sicp 88.2', () => + expect( + evaluate( + ` + (def (f g) (g 2)) + (f (fn (z) (* z (+ z 1)))) + `, + scope, + ), + ).toEqual(6)); + + // Finding roots of equations by the half-interval method + it('sicp 89.1', () => + expect( + evaluate( + ` +(def (search f negpoint pospoint) + (let ((midpoint (average negpoint pospoint))) + (if (closeenough negpoint pospoint) + midpoint + (let ((testvalue (f midpoint))) + (match ((positive testvalue) + (search f negpoint midpoint)) + ((negative testvalue) + (search f midpoint pospoint)) + (else midpoint)))))) + +(def (closeenough x y) (lt (abs (- x y)) 0.001)) + +(def (negative x) (lt x 0)) +(def (positive x) (gt x 0)) + +(def (halfintervalmethod f a b) (let ((avalue (f a)) +(bvalue (f b))) +(match ((and (negative avalue) (positive bvalue)) +(search f a b)) +((and (negative bvalue) (positive avalue)) +(search f b a)) (else +(error "Values are not of opposite sign" a b))))) + +(halfintervalmethod sin 2.0 4.0) +`, + scope, + ), + ).toEqual(3.14111328125)); + + it('sicp 89.1', () => + expect(evaluate(`(halfintervalmethod (fn (x) (- (* x x x) (* 2 x) 3)) 1.0 2.0)`, scope)).toEqual(1.89306640625)); + + // Finding fixed points of functions + it('sicp 92.1', () => + expect( + evaluate( + ` +(def tolerance 0.00001) +(def (fixedpoint f first-guess) + (def (closeenough v1 v2) (lt (abs (- v1 v2)) tolerance)) + (def (try guess) + (let ((next (f guess))) + (if (closeenough guess next) next (try next)))) + (try first-guess)) + +(fixedpoint cos 1.0) +`, + scope, + ), + ).toEqual(0.7390822985224023)); + it('sicp 93.1', () => + expect(evaluate(`(fixedpoint (fn (y) (+ (sin y) (cos y))) 1.0)`, scope)).toEqual(1.2587315962971173)); + // Maximum call stack size exceeded (expected) + /* it('sicp 93.2', () => + expect(evaluate(`(def (sqrt x) (fixedpoint (fn (y) (/ x y)) 1.0)) (sqrt 4)`, scope)).toEqual(0)); */ + it('sicp 93.3', () => + expect(evaluate(`(def (sqrt x) (fixedpoint (fn (y) (average y (/ x y))) 1.0)) (sqrt 7)`, scope)).toEqual( + 2.6457513110645907, + )); + // Procedures as Returned Values + it('sicp 97.1', () => + expect(evaluate(`(def (averagedamp f) (fn (x) (average x (f x)))) ((averagedamp square) 10)`, scope)).toEqual(55)); + it('sicp 98.1', () => + expect(evaluate(`(def (sqrt x) (fixedpoint (averagedamp (fn (y) (/ x y))) 1.0)) (sqrt 7)`, scope)).toEqual( + 2.6457513110645907, + )); + it('sicp 98.2', () => + expect( + evaluate(`(def (cuberoot x) (fixedpoint (averagedamp (fn (y) (/ x (square y)))) 1.0)) (cuberoot 7)`, scope), + ).toEqual(1.912934258514886)); + it('sicp 99.1', () => + expect( + evaluate( + ` + (def (deriv g) (fn (x) (/ (- (g (+ x dx)) (g x)) dx))) + (def dx 0.00001) + (def (cube x) (* x x x)) + ((deriv cube) 5) + `, + scope, + ), + ).toEqual(75.00014999664018)); + // With the aid of deriv, we can express Newton’s method as a fixed-point process: + it('sicp 100.1', () => + expect( + evaluate( + ` +(def (newtontransform g) +(fn (x) (- x (/ (g x) ((deriv g) x))))) +(def (newtonsmethod g guess) (fixedpoint (newtontransform g) guess)) +(def (sqrt x) (newtonsmethod (fn (y) (- (square y) x)) 1.0)) +(sqrt 7) + `, + scope, + ), + ).toEqual(2.6457513110645907)); + // whatever this is + it('sicp 101.1', () => + expect( + evaluate( + ` + (def (fixedpointoftransform g transform guess) (fixedpoint (transform g) guess)) + (def (sqrt x) (fixedpointoftransform + (fn (y) (/ x y)) averagedamp 1.0)) + (sqrt 7) + `, + scope, + ), + ).toEqual(2.6457513110645907)); + it('sicp 101.2', () => + expect( + evaluate( + ` +(def (sqrt x) (fixedpointoftransform +(fn (y) (- (square y) x)) newtontransform 1.0)) +(sqrt 7) + `, + scope, + ), + ).toEqual(2.6457513110645907)); + + // data abstraction + + // rational arithmetic + it('sicp 114.1', () => + expect( + evaluate( + ` +(def (addrat x y) + (makerat (+ (* + (numer x) (denom y)) + (* (numer y) (denom x))) + (* (denom x) (denom y)))) +(def (subrat x y) + (makerat (- (* (numer x) (denom y)) + (* (numer y) (denom x))) + (* (denom x) (denom y)))) +(def (mulrat x y) + (makerat (* (numer x) (numer y)) + (* (denom x) (denom y)))) +(def (divrat x y) + (makerat (* (numer x) (denom y)) + (* (denom x) (numer y)))) +(def (equalrat x y) + (eq (* (numer x) (denom y)) + (* (numer y) (denom x)))) + `, + scope, + ), + ).toEqual(0)); + + // markerat number denom + it('sicp 117.1', () => + expect( + evaluate( + ` +(def (makerat n d) (cons n d)) +(def (numer x) (car x)) +(def (denom x) (cdr x)) +(def (printrat x) (concat (numer x) ':' (denom x))) + `, + scope, + ), + ).toEqual(0)); + + it('sicp 117.1', () => expect(evaluate(`(def onehalf (makerat 1 2)) (printrat onehalf)`, scope)).toEqual('1:2')); + it('sicp 117.2', () => + expect(evaluate(`(def onethird (makerat 1 3)) (printrat (addrat onehalf onethird))`, scope)).toEqual('5:6')); + it('sicp 117.3', () => expect(evaluate(`(printrat (mulrat onehalf onethird))`, scope)).toEqual('1:6')); + it('sicp 117.4', () => expect(evaluate(`(printrat (addrat onethird onethird))`, scope)).toEqual('6:9')); + it('sicp 118.1', () => + expect(evaluate(`(def (makerat n d) (let ((g (gcd n d))) (cons (/ n g) (/ d g))))`, scope)).toEqual(0)); + it('sicp 118.1', () => expect(evaluate(`(printrat (addrat onethird onethird))`, scope)).toEqual('2:3')); + + let lscope = {}; + // pairs with lambda + it('sicp 124.1', () => + expect( + evaluate( + ` +(def (cons x y) + (def (dispatch m) + (match + ((eq m 0) x) + ((eq m 1) y) + (else (error "argument not 0 or 1: CONS" m))) + ) dispatch) + (def (car z) (z 0)) + (def (cdr z) (z 1)) + `, + lscope, + ), + ).toEqual(0)); + it('sicp 124.1', () => expect(evaluate(`(car (cons first second))`, lscope)).toEqual('first')); + it('sicp 124.2', () => expect(evaluate(`(cdr (cons first second))`, lscope)).toEqual('second')); + // lists + it('sicp 135.1', () => expect(evaluate(`(list 1 2 3 4)`)).toEqual([1, 2, 3, 4])); + it('sicp 137.1', () => expect(evaluate(`(car (list 1 2 3 4))`)).toEqual(1)); + it('sicp 137.2', () => expect(evaluate(`(cdr (list 1 2 3 4))`)).toEqual([2, 3, 4])); + it('sicp 137.3', () => expect(evaluate(`(car (cdr (list 1 2 3 4)))`)).toEqual(2)); + it('sicp 137.4', () => expect(evaluate(`(cons 10 (list 1 2 3 4))`)).toEqual([10, 1, 2, 3, 4])); + // listref + it('sicp 138.1', () => + expect( + evaluate( + ` +(def (listref items n) (if (eq n 0) (car items) + (listref (cdr items) (- n 1)))) +(def squares (list 1 4 9 16 25)) +(listref squares 3)`, + scope, + ), + ).toEqual(16)); + // length recursive + it('sicp 138.2', () => + expect( + evaluate( + ` + (def (length items) + (if (isnull items) 0 + (+ 1 (length (cdr items))))) + (def odds (list 1 3 5 7)) + (length odds)`, + ), + ).toEqual(4)); + // length iterative + it('sicp 139.1', () => + expect( + evaluate( + ` + (def (length items) + (def (lengthiter a count) + (if (isnull a) count + (lengthiter (cdr a) (+ 1 count)))) + (lengthiter items 0)) + (def odds (list 1 3 5 7)) + (length odds) + `, + scope, + ), + ).toEqual(4)); + // append + it('sicp 139.1', () => + expect( + evaluate( + ` +(def (append list1 list2) +(if (isnull list1) + list2 + (cons (car list1) (append (cdr list1) list2)))) + (append squares odds) + `, + scope, + ), + ).toEqual([1, 4, 9, 16, 25, 1, 3, 5, 7])); + // (define (f x y . z) ⟨body⟩) <- tbd: variable argument count + // Mapping over lists + + it('sicp 143.1', () => + expect( + evaluate( + ` +(def (scalelist items factor) (if (isnull items) nil + (cons (* (car items) factor) + (scalelist (cdr items) factor)))) +(scalelist (list 1 2 3 4 5) 10) + `, + scope, + ), + ).toEqual([10, 20, 30, 40, 50])); + + it('sicp 143.1', () => + expect( + evaluate( + ` + (def (map proc items) (if (isnull items) nil + (cons (proc (car items)) + (map proc (cdr items))))) + (map abs (list -10 2.5 -11.6 17)) + `, + scope, + ), + ).toEqual([10, 2.5, 11.6, 17])); + it('sicp 143.1', () => expect(evaluate(`(map (fn (x) (* x x)) (list 1 2 3 4))`, scope)).toEqual([1, 4, 9, 16])); + it('sicp 143.1', () => + expect( + evaluate( + ` +(def (scalelist items factor) (map (fn (x) (* x factor)) items)) +(scalelist (list 1 2 3 4 5) 10) +`, + scope, + ), + ).toEqual([10, 20, 30, 40, 50])); +}); diff --git a/packages/mondo/vite.config.js b/packages/mondo/vite.config.js new file mode 100644 index 00000000..19e53d7f --- /dev/null +++ b/packages/mondo/vite.config.js @@ -0,0 +1,19 @@ +import { defineConfig } from 'vite'; +//import { dependencies } from './package.json'; +import { resolve } from 'path'; + +// https://vitejs.dev/config/ +export default defineConfig({ + plugins: [], + build: { + lib: { + entry: resolve(__dirname, 'mondo.mjs'), + formats: ['es'], + fileName: (ext) => ({ es: 'mondo.mjs' })[ext], + }, + rollupOptions: { + // external: [...Object.keys(dependencies)], + }, + target: 'esnext', + }, +}); diff --git a/packages/mondough/README.md b/packages/mondough/README.md new file mode 100644 index 00000000..3ae75891 --- /dev/null +++ b/packages/mondough/README.md @@ -0,0 +1,3 @@ +# @strudel/mondough + +connects mondo to strudel. diff --git a/packages/mondough/mondough.mjs b/packages/mondough/mondough.mjs new file mode 100644 index 00000000..6e827893 --- /dev/null +++ b/packages/mondough/mondough.mjs @@ -0,0 +1,131 @@ +import { + strudelScope, + reify, + fast, + slow, + seq, + stepcat, + extend, + expand, + pace, + chooseIn, + degradeBy, + silence, +} from '@strudel/core'; +import { registerLanguage } from '@strudel/transpiler'; +import { MondoRunner } from 'mondolang'; + +const tail = (friend, pat) => pat.fmap((a) => (b) => (Array.isArray(a) ? [...a, b] : [a, b])).appLeft(friend); + +const arrayRange = (start, stop, step = 1) => + Array.from({ length: Math.abs(stop - start) / step + 1 }, (_, index) => + start < stop ? start + index * step : start - index * step, + ); +const range = (max, min) => min.squeezeBind((a) => max.bind((b) => seq(...arrayRange(a, b)))); + +let nope = (...args) => args[args.length - 1]; + +let lib = {}; +lib['nope'] = nope; +lib['-'] = (a, b) => b.early(a); +lib['+'] = (a, b) => b.late(a); +lib['_'] = silence; +lib['~'] = silence; +lib.curly = stepcat; +lib.square = (...args) => stepcat(...args).setSteps(1); +lib.angle = (...args) => stepcat(...args).pace(1); +lib['*'] = fast; +lib['/'] = slow; +lib['!'] = extend; +lib['@'] = expand; +lib['%'] = pace; +lib['?'] = degradeBy; // todo: default 0.5 not working.. +lib[':'] = tail; +lib['..'] = range; +lib['or'] = (...children) => chooseIn(...children); // always has structure but is cyclewise.. e.g. "s oh*8.dec[.04 | .5]" +//lib['or'] = (...children) => chooseOut(...children); // "s oh*8.dec[.04 | .5]" is better but "dec[.04 | .5].s oh*8" has no struct + +function evaluator(node, scope) { + const { type } = node; + // node is list + if (type === 'list') { + const { children } = node; + const [name, ...args] = children; + // some functions wont be reified to make sure they work (e.g. see extend below) + if (typeof name === 'function') { + return name(...args); + } + if (name.value === 'def') { + return silence; + } + // name is expected to be a pattern of functions! + const first = name.firstCycle(true)[0]; + const type = typeof first?.value; + if (type !== 'function') { + throw new Error(`[mondough] expected function, got "${first?.value}"`); + } + return name + .fmap((fn) => { + if (typeof fn !== 'function') { + throw new Error(`[mondough] "${fn}" is not a function b`); + } + return fn(...args); + }) + .innerJoin(); + } + // node is leaf + let { value } = node; + if (type === 'plain' && scope[value]) { + return reify(scope[value]); // -> local scope has no location + } + const variable = lib[value] ?? strudelScope[value]; + // problem: collisions when we want a string that happens to also be a variable name + // example: "s sine" -> sine is also a variable + let pat; + if (type === 'plain' && typeof variable !== 'undefined') { + // some function names are not patternable, so we skip reification here + if (['!', 'extend', '@', 'expand', 'square', 'angle'].includes(value)) { + return variable; + } + pat = reify(variable); + } else { + pat = reify(value); + } + if (node.loc) { + pat = pat.withLoc(node.loc[0], node.loc[1]); + } + return pat; +} + +let runner = new MondoRunner({ evaluator }); + +export function mondo(code, offset = 0) { + if (Array.isArray(code)) { + code = code.join(''); + } + const pat = runner.run(code, undefined, offset); + return pat.markcss('color: var(--caret,--foreground);text-decoration:underline'); +} + +let getLocations = (code, offset) => runner.parser.get_locations(code, offset); + +export const mondi = (str, offset) => { + const code = `[${str}]`; + return mondo(code, offset); +}; + +// tell transpiler how to get locations for mondo`` calls +registerLanguage('mondo', { + getLocations, +}); + +// this is like mondo, but with a zero offset +export const mondolang = (code) => mondo(code, 0); +registerLanguage('mondolang', { + getLocations: (code) => getLocations(code, 0), +}); +// uncomment the following to use mondo as mini notation language +/* registerLanguage('minilang', { + name: 'mondi', + getLocations, +}); */ diff --git a/packages/mondough/package.json b/packages/mondough/package.json new file mode 100644 index 00000000..a034424c --- /dev/null +++ b/packages/mondough/package.json @@ -0,0 +1,44 @@ +{ + "name": "@strudel/mondo", + "version": "1.1.0", + "description": "mondo notation for strudel", + "main": "mondough.mjs", + "type": "module", + "publishConfig": { + "main": "dist/mondough.mjs" + }, + "scripts": { + "test": "vitest run", + "bench": "vitest bench", + "build:parser": "peggy -o krill-parser.js --format es ./krill.pegjs", + "build": "vite build", + "prepublishOnly": "npm run build" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/tidalcycles/strudel.git" + }, + "keywords": [ + "tidalcycles", + "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/core": "workspace:*", + "@strudel/transpiler": "workspace:*", + "mondolang": "workspace:*" + }, + "devDependencies": { + "mondo": "*", + "vite": "^6.0.11", + "vitest": "^3.0.4" + } +} diff --git a/packages/mondough/vite.config.js b/packages/mondough/vite.config.js new file mode 100644 index 00000000..c46972e9 --- /dev/null +++ b/packages/mondough/vite.config.js @@ -0,0 +1,19 @@ +import { defineConfig } from 'vite'; +//import { dependencies } from './package.json'; +import { resolve } from 'path'; + +// https://vitejs.dev/config/ +export default defineConfig({ + plugins: [], + build: { + lib: { + entry: resolve(__dirname, 'mondough.mjs'), + formats: ['es'], + fileName: (ext) => ({ es: 'mondough.mjs' })[ext], + }, + rollupOptions: { + // external: [...Object.keys(dependencies)], + }, + target: 'esnext', + }, +}); diff --git a/packages/motion/README.md b/packages/motion/README.md new file mode 100644 index 00000000..4fc343f9 --- /dev/null +++ b/packages/motion/README.md @@ -0,0 +1,72 @@ +# @strudel/motion + +This package adds device motion sensing functionality to strudel Patterns. + +## Install + +```sh +npm i @strudel/motion --save +``` + +## Usage + +| Motion | Long Names & Aliases | Description | +|----------------------------|-----------------------------------------------------------|------------------------------------------| +| Acceleration | accelerationX (accX), accelerationY (accY), accelerationZ (accZ) | X, Y, Z-axis acceleration values | +| Gravity | gravityX (gravX), gravityY (gravY), gravityZ (gravZ) | X, Y, Z-axis gravity values | +| Rotation | rotationAlpha (rotA, rotZ), rotationBeta (rotB, rotX), rotationGamma (rotG, rotY) | Rotation around alpha, beta, gamma axes and mapped to X, Y, Z | +| Orientation | orientationAlpha (oriA, oriZ), orientationBeta (oriB, oriX), orientationGamma (oriG, oriY) | Orientation alpha, beta, gamma values and mapped to X, Y, Z | +| Absolute Orientation | absoluteOrientationAlpha (absOriA, absOriZ), absoluteOrientationBeta (absOriB, absOriX), absoluteOrientationGamma (absOriG, absOriY) | Absolute orientation alpha, beta, gamma values and mapped to X, Y, Z | + +## Example + +```js +enableMotion() //enable DeviceMotion + +setcpm(200/4) + +$_: accX.segment(16).gain().log() + +$:n("0 1 3 1 5 4") + .scale("Bb:lydian") + .sometimesBy(0.5,sub(note(12))) + .lpf(gravityY.range(20,1000)) + .lpq(gravityZ.range(1,30)) + .lpenv(gravityX.range(2,2)) + .gain(oriX.range(0.2,0.8)) + .room(oriZ.range(0,0.5)) + .attack(oriY.range(0,0.3)) + .delay(rotG.range(0,1)) + .decay(rotA.range(0,1)) + .attack(rotB.range(0,0.1)) + .sound("sawtooth") +``` + +## Setup SSL for Local Development + +`DeviceMotionEvent` only works with HTTPS, so you'll need to enable SSL for local development. +Try installing an SSL plugin for Vite. + +```sh +cd website +pnpm install -D @vitejs/plugin-basic-ssl +``` + +add the basicSsl plugin to the defineConfig block in `strudel/website/astro.config.mjs` + +```js +vite: { + plugins: [basicSsl()], + server: { + host: '0.0.0.0', // Ensures it binds to all network interfaces + // https: { + // key: '../../key.pem', // + // cert: '../../cert.pem', + // }, + }, +}, +``` + +generate an SSL certificate to avoid security warnings. + +`openssl req -new -newkey rsa:2048 -days 365 -nodes -x509 -keyout key.pem -out cert.pem` diff --git a/packages/motion/docs/devicemotion.mdx b/packages/motion/docs/devicemotion.mdx new file mode 100644 index 00000000..9afccc89 --- /dev/null +++ b/packages/motion/docs/devicemotion.mdx @@ -0,0 +1,82 @@ +import { MiniRepl } from '../../../website/src/docs/MiniRepl'; +import { JsDoc } from '../../../website/src/docs/JsDoc'; + +# Device Motion + +Devicemotion module allows you to use your mobile device's motion sensors (accelerometer, gyroscope, and orientation sensors) to control musical parameters in real-time. This creates opportunities for expressive, movement-based musical interactions. + +## Basic Setup + +First, you need to enable device motion sensing: + + + +This will prompt the user for permission to access device motion sensors. + +## Available Motion Parameters + +You can access different types of motion data: + +| Motion | Long Names & Aliases | Description | +| -------------------- | ------------------------------------------------------------------------------------------------------------------------------------ | --------------------------------------------------------------------------------------------------------------------------------------------------- | +| Acceleration | accelerationX (accX), accelerationY (accY), accelerationZ (accZ) | Measures linear acceleration of the device, excluding gravity. Raw values are normalized from g-force. | +| Gravity | gravityX (gravX), gravityY (gravY), gravityZ (gravZ) | Indicates device's orientation relative to Earth's gravity. Raw values are normalized from ±9.81 m/s². | +| Rotation | rotationAlpha (rotA, rotZ), rotationBeta (rotB, rotX), rotationGamma (rotG, rotY) | Measures rotation rate around each axis. Raw values (±180°/s) are normalized. | +| Orientation | orientationAlpha (oriA, oriZ), orientationBeta (oriB, oriX), orientationGamma (oriG, oriY) | Relative orientation from its starting device position. Normalized from:
- Alpha: 0° to 360°
- Beta: -180° to 180°
- Gamma: -90° to 90° | +| Absolute Orientation | absoluteOrientationAlpha (absOriA, absOriZ), absoluteOrientationBeta (absOriB, absOriX), absoluteOrientationGamma (absOriG, absOriY) | **Not available for iOS**
Earth-referenced orientation using magnetometer. Same normalization as Orientation. | + +Note: + +- All motion values are normalized to a range of 0 to 1. +- Not all devices have the same sensors available + Check [DeviceMotionEvent API](https://developer.mozilla.org/en-US/docs/Web/API/DeviceMotionEvent) for browser compatibility +- Refer to [Oritentation and motion data explained](https://developer.mozilla.org/en-US/docs/Web/API/Device_orientation_events/Orientation_and_motion_data_explained) for more details + +### Orientation vs Absolute Orientation + +The key difference between regular orientation and absolute orientation is: + +- Regular orientation (`oriX/Y/Z`) measures relative changes in device orientation from its starting position +- Absolute orientation (`absOriX/Y/Z`) measures orientation relative to Earth's magnetic field and gravity, providing consistent absolute values regardless of starting position + +For example, if you rotate your device 90 degrees clockwise and then back: + +- Regular orientation will show a change during rotation but return to initial values +- Absolute orientation will show the actual compass heading throughout + +This makes absolute orientation particularly useful for creating direction-based musical interactions - for example, performers facing north could play one melody while those facing south play another, creating spatially-aware ensemble performances. Regular orientation, on the other hand, is better suited for detecting relative motion and gestures regardless of which direction the performer is facing. + +## Basic Example + +Here's a simple example that uses device motion to control a synthesizer: + + + +## Tips for Using Motion Controls + +1. Use `.range(min, max)` to map sensor values to musically useful ranges +2. Consider using `.segment()` to smooth out rapid changes in sensor values + +## Debugging + +You can use `segment(16).log()` to see the raw values from any motion sensor: + +```javascript +$_: accX.segment(16).log(); // logs acceleration values to the console +``` + +This is helpful when calibrating your ranges and understanding how your device responds to different movements. + +Remember that device motion works best on mobile devices and may not be available on all desktop browsers. Always test your motion-controlled pieces on the target device type! diff --git a/packages/motion/index.mjs b/packages/motion/index.mjs new file mode 100644 index 00000000..b315b617 --- /dev/null +++ b/packages/motion/index.mjs @@ -0,0 +1,3 @@ +import './motion.mjs'; + +export * from './motion.mjs'; diff --git a/packages/motion/motion.mjs b/packages/motion/motion.mjs new file mode 100644 index 00000000..875704ea --- /dev/null +++ b/packages/motion/motion.mjs @@ -0,0 +1,371 @@ +// motion.mjs + +import { signal } from '../core/signal.mjs'; + +/** + * The accelerometer's x-axis value ranges from 0 to 1. + * @name accelerationX + * @return {Pattern} + * @synonyms accX + * @example + * n(accelerationX.segment(4).range(0,7)).scale("C:minor") + * + */ + +/** + * The accelerometer's y-axis value ranges from 0 to 1. + * @name accelerationY + * @return {Pattern} + * @synonyms accY + * @example + * n(accelerationY.segment(4).range(0,7)).scale("C:minor") + * + */ + +/** + * The accelerometer's z-axis value ranges from 0 to 1. + * @name accelerationZ + * @return {Pattern} + * @synonyms accZ + * @example + * n(accelerationZ.segment(4).range(0,7)).scale("C:minor") + * + */ + +/** + * The device's gravity x-axis value ranges from 0 to 1. + * @name gravityX + * @return {Pattern} + * @synonyms gravX + * @example + * n(gravityX.segment(4).range(0,7)).scale("C:minor") + * + */ + +/** + * The device's gravity y-axis value ranges from 0 to 1. + * @name gravityY + * @return {Pattern} + * @synonyms gravY + * @example + * n(gravityY.segment(4).range(0,7)).scale("C:minor") + * + */ + +/** + * The device's gravity z-axis value ranges from 0 to 1. + * @name gravityZ + * @return {Pattern} + * @synonyms gravZ + * @example + * n(gravityZ.segment(4).range(0,7)).scale("C:minor") + * + */ + +/** + * The device's rotation around the alpha-axis value ranges from 0 to 1. + * @name rotationAlpha + * @return {Pattern} + * @synonyms rotA, rotZ, rotationZ + * @example + * n(rotationAlpha.segment(4).range(0,7)).scale("C:minor") + * + */ + +/** + * The device's rotation around the beta-axis value ranges from 0 to 1. + * @name rotationBeta + * @return {Pattern} + * @synonyms rotB, rotX, rotationX + * @example + * n(rotationBeta.segment(4).range(0,7)).scale("C:minor") + * + */ + +/** + * The device's rotation around the gamma-axis value ranges from 0 to 1. + * @name rotationGamma + * @return {Pattern} + * @synonyms rotG, rotY, rotationY + * @example + * n(rotationGamma.segment(4).range(0,7)).scale("C:minor") + * + */ + +/** + * The device's orientation alpha value ranges from 0 to 1. + * @name orientationAlpha + * @return {Pattern} + * @synonyms oriA, oriZ, orientationZ + * @example + * n(orientationAlpha.segment(4).range(0,7)).scale("C:minor") + * + */ + +/** + * The device's orientation beta value ranges from 0 to 1. + * @name orientationBeta + * @return {Pattern} + * @synonyms oriB, oriX, orientationX + * @example + * n(orientationBeta.segment(4).range(0,7)).scale("C:minor") + * + */ + +/** + * The device's orientation gamma value ranges from 0 to 1. + * @name orientationGamma + * @return {Pattern} + * @synonyms oriG, oriY, orientationY + * @example + * n(orientationGamma.segment(4).range(0,7)).scale("C:minor") + * + */ + +/** + * The device's absolute orientation alpha value ranges from 0 to 1. + * @name absoluteOrientationAlpha + * @return {Pattern} + * @synonyms absOriA, absOriZ, absoluteOrientationZ + * @example + * n(absoluteOrientationAlpha.segment(4).range(0,7)).scale("C:minor") + * + */ + +/** + * The device's absolute orientation beta value ranges from 0 to 1. + * @name absoluteOrientationBeta + * @return {Pattern} + * @synonyms absOriB, absOriX, absoluteOrientationX + * @example + * n(absoluteOrientationBeta.segment(4).range(0,7)).scale("C:minor") + * + */ + +/** + * The device's absolute orientation gamma value ranges from 0 to 1. + * @name absoluteOrientationGamma + * @return {Pattern} + * @synonyms absOriG, absOriY, absoluteOrientationY + * @example + * n(absoluteOrientationGamma.segment(4).range(0,7)).scale("C:minor") + * + */ + +class DeviceMotionHandler { + constructor() { + this.GRAVITY = 9.81; + + // Initialize sensor values + this._acceleration = { + x: 0, + y: 0, + z: 0, + }; + + this._gravity = { + x: 0, + y: 0, + z: 0, + }; + + this._rotation = { + alpha: 0, + beta: 0, + gamma: 0, + }; + + this._orientation = { + alpha: 0, + beta: 0, + gamma: 0, + }; + + this._absoluteOrientation = { + alpha: 0, + beta: 0, + gamma: 0, + }; + + this._permissionStatus = 'unknown'; + } + + async requestPermissions() { + if (typeof DeviceMotionEvent?.requestPermission === 'function') { + try { + // iOS requires explicit permission + const motionPermission = await DeviceMotionEvent.requestPermission(); + const orientationPermission = await DeviceOrientationEvent.requestPermission(); + + this._permissionStatus = + motionPermission === 'granted' && orientationPermission === 'granted' ? 'granted' : 'denied'; + this.setupEventListeners(); + } catch (error) { + console.error('Permission request failed:', error); + this._permissionStatus = 'denied'; + } + } else { + this._permissionStatus = 'granted'; + this.setupEventListeners(); + } + } + + setupEventListeners() { + if (this._permissionStatus === 'granted') { + // Device Motion handler + window.addEventListener('devicemotion', this.handleDeviceMotion.bind(this), true); + window.addEventListener('deviceorientation', this.handleDeviceOrientation.bind(this), true); + window.addEventListener('deviceorientationabsolute', this.handleAbsoluteDeviceOrientation.bind(this), true); + } + } + + handleDeviceMotion(event) { + //console.log(event); + if (event.acceleration) { + // Normalize acceleration values to 0-1 range + this._acceleration.x = (event.acceleration.x + 1) / 2; + this._acceleration.y = (event.acceleration.y + 1) / 2; + this._acceleration.z = (event.acceleration.z + 1) / 2; + } + + if (event.accelerationIncludingGravity) { + // Normalize acceleration values to 0-1 range + this._gravity.x = (event.accelerationIncludingGravity.x + this.GRAVITY) / (2 * this.GRAVITY); + this._gravity.y = (event.accelerationIncludingGravity.y + this.GRAVITY) / (2 * this.GRAVITY); + this._gravity.z = (event.accelerationIncludingGravity.z + this.GRAVITY) / (2 * this.GRAVITY); + } + + if (event.rotationRate) { + // Normalize rotation values to 0-1 range + this._rotation.alpha = (event.rotationRate.alpha + 180) / 360; + this._rotation.beta = (event.rotationRate.beta + 180) / 360; + this._rotation.gamma = (event.rotationRate.gamma + 180) / 360; + } + } + + handleDeviceOrientation(event) { + this._orientation.alpha = event.alpha / 360; //a(0~360) + this._orientation.beta = (event.beta + 180) / 360; //b(-180~180) + this._orientation.gamma = (event.gamma + 90) / 180; //g(-90~90) + } + + handleAbsoluteDeviceOrientation(event) { + this._absoluteOrientation.alpha = event.alpha / 360; //a(0~360) + this._absoluteOrientation.beta = (event.beta + 180) / 360; //b(-180~180) + this._absoluteOrientation.gamma = (event.gamma + 90) / 180; //g(-90~90) + } + + // Getter methods for current values + getAcceleration() { + return this._acceleration; + } + getGravity() { + return this._gravity; + } + getRotation() { + return this._rotation; + } + getOrientation() { + return this._orientation; + } + getAbsoluteOrientation() { + return this._absoluteOrientation; + } +} + +// Create singleton instance +const deviceMotion = new DeviceMotionHandler(); + +// Export a function to request permission +export async function enableMotion() { + return deviceMotion.requestPermissions(); +} + +// Create signals for acceleration +export const accelerationX = signal(() => deviceMotion.getAcceleration().x); +export const accelerationY = signal(() => deviceMotion.getAcceleration().y); +export const accelerationZ = signal(() => deviceMotion.getAcceleration().z); + +// Aliases for shorter names +export const accX = accelerationX; +export const accY = accelerationY; +export const accZ = accelerationZ; + +// Create signals for gravity +export const gravityX = signal(() => deviceMotion.getGravity().x); +export const gravityY = signal(() => deviceMotion.getGravity().y); +export const gravityZ = signal(() => deviceMotion.getGravity().z); + +// Aliases for shorter names +export const gravX = gravityX; +export const gravY = gravityY; +export const gravZ = gravityZ; + +// Create signals for orientation +export const orientationAlpha = signal(() => deviceMotion.getOrientation().alpha); +export const orientationBeta = signal(() => deviceMotion.getOrientation().beta); +export const orientationGamma = signal(() => deviceMotion.getOrientation().gamma); +// Aliases for shorter names +export const orientationA = orientationAlpha; +export const orientationB = orientationBeta; +export const orientationG = orientationGamma; + +// Aliases mapping to X,Y,Z coordinates +export const orientationX = orientationBeta; +export const orientationY = orientationGamma; +export const orientationZ = orientationAlpha; + +// Short aliases for A,B,G,X,Y,Z + +export const oriA = orientationAlpha; +export const oriB = orientationBeta; +export const oriG = orientationGamma; + +export const oriX = orientationX; +export const oriY = orientationY; +export const oriZ = orientationZ; + +// Create signals for absolute orientation +export const absoluteOrientationAlpha = signal(() => deviceMotion.getAbsoluteOrientation().alpha); +export const absoluteOrientationBeta = signal(() => deviceMotion.getAbsoluteOrientation().beta); +export const absoluteOrientationGamma = signal(() => deviceMotion.getAbsoluteOrientation().gamma); + +// Aliases for shorter names +export const absOriA = absoluteOrientationAlpha; +export const absOriB = absoluteOrientationBeta; +export const absOriG = absoluteOrientationGamma; + +// Aliases mapping to X,Y,Z coordinates +export const absoluteOrientationX = absoluteOrientationBeta; +export const absoluteOrientationY = absoluteOrientationGamma; +export const absoluteOrientationZ = absoluteOrientationAlpha; + +// Short aliases for X,Y,Z +export const absOriX = absoluteOrientationX; +export const absOriY = absoluteOrientationY; +export const absOriZ = absoluteOrientationZ; + +// Create signals for rotation +export const rotationAlpha = signal(() => deviceMotion.getRotation().alpha); +export const rotationBeta = signal(() => deviceMotion.getRotation().beta); +export const rotationGamma = signal(() => deviceMotion.getRotation().gamma); +export const rotationX = rotationBeta; +export const rotationY = rotationGamma; +export const rotationZ = rotationAlpha; + +// Aliases for shorter names +export const rotA = rotationAlpha; +export const rotB = rotationBeta; +export const rotG = rotationGamma; +export const rotX = rotationX; +export const rotY = rotationY; +export const rotZ = rotationZ; + +// // Bipolar versions (ranging from -1 to 1 instead of 0 to 1) +// export const accX2 = accX.toBipolar(); +// export const accY2 = accY.toBipolar(); +// export const accZ2 = accZ.toBipolar(); + +// export const rotA2 = rotA.toBipolar(); +// export const rotB2 = rotB.toBipolar(); +// export const rotG2 = rotG.toBipolar(); diff --git a/packages/motion/package.json b/packages/motion/package.json new file mode 100644 index 00000000..a7db0568 --- /dev/null +++ b/packages/motion/package.json @@ -0,0 +1,37 @@ +{ + "name": "@strudel/motion", + "version": "1.2.2", + "description": "DeviceMotion API for strudel", + "main": "index.mjs", + "type": "module", + "publishConfig": { + "main": "dist/index.mjs" + }, + "scripts": { + "build": "vite build", + "prepublishOnly": "npm run build" + }, + "repository": { + "type": "git", + "url": "git+https://codeberg.org/uzu/strudel.git" + }, + "keywords": [ + "titdalcycles", + "strudel", + "pattern", + "livecoding", + "algorave" + ], + "author": "Yuta Nakayama ", + "license": "AGPL-3.0-or-later", + "bugs": { + "url": "https://codeberg.org/uzu/strudel/issues" + }, + "homepage": "https://codeberg.org/uzu/strudel#readme", + "dependencies": { + "@strudel/core": "workspace:*" + }, + "devDependencies": { + "vite": "^6.0.11" + } +} diff --git a/packages/motion/vite.config.js b/packages/motion/vite.config.js new file mode 100644 index 00000000..5df3edc1 --- /dev/null +++ b/packages/motion/vite.config.js @@ -0,0 +1,19 @@ +import { defineConfig } from 'vite'; +import { dependencies } from './package.json'; +import { resolve } from 'path'; + +// https://vitejs.dev/config/ +export default defineConfig({ + plugins: [], + build: { + lib: { + entry: resolve(__dirname, 'index.mjs'), + formats: ['es'], + fileName: (ext) => ({ es: 'index.mjs' })[ext], + }, + rollupOptions: { + external: [...Object.keys(dependencies)], + }, + target: 'esnext', + }, +}); diff --git a/packages/mqtt/README.md b/packages/mqtt/README.md new file mode 100644 index 00000000..7952b553 --- /dev/null +++ b/packages/mqtt/README.md @@ -0,0 +1,3 @@ +# @strudel/serial + +This package adds webserial functionality to strudel Patterns, for e.g. sending messages to arduino microcontrollers. diff --git a/packages/mqtt/mqtt.mjs b/packages/mqtt/mqtt.mjs new file mode 100644 index 00000000..aef01bd9 --- /dev/null +++ b/packages/mqtt/mqtt.mjs @@ -0,0 +1,121 @@ +/* +mqtt.mjs - for patterning the internet of things from strudel +Copyright (C) 2022 Strudel contributors - see +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 . +*/ + +import { Pattern, isPattern } from '@strudel/core'; +import Paho from 'paho-mqtt'; + +const connections = {}; + +// Handle connection loss +function onConnectionLost(responseObject) { + if (responseObject.errorCode !== 0) { + console.error(' mqtt connection lost: ', responseObject.errorMessage); + } +} + +// Handle received messages +function onMessageArrived(message) { + console.log('incoming mqtt message: ', message.payloadString); // prettier-ignore +} + +function onFailure(err) { + console.error('Connection failed: ', err); + if (typeof window !== 'undefined') { + document.cookie = 'mqtt_pass='; + } +} + +Pattern.prototype.mqtt = function ( + username = undefined, + password = undefined, + topic = undefined, + host = 'wss://localhost:8883/', + client = undefined, + latency = 0, + add_meta = true, +) { + const key = host + '-' + client; + let password_entered = false; + + function onConnect() { + console.log('Connected to mqtt broker'); + if (password_entered) { + document.cookie = 'mqtt_pass=' + password; + } + } + + let cx; + if (connections[key]) { + cx = connections[key]; + } else { + if (!client) { + client = 'strudel-' + String(Math.floor(Math.random() * 1000000)); + } + cx = new Paho.Client(host, client); + connections[key] = cx; + cx.onConnectionLost = onConnectionLost; + cx.onMessageArrived = onMessageArrived; + const props = { + onSuccess: onConnect, + onFailure: onFailure, + useSSL: true, + }; + + if (username) { + props.userName = username; + if (typeof password === 'undefined' && typeof window !== 'undefined') { + const cookie = /mqtt_pass=(\w+)/.exec(window.document.cookie); + if (cookie) { + password = cookie[1]; + } + if (typeof password === 'undefined') { + password = prompt('Please enter MQTT server password'); + password_entered = true; + } + } + + props.password = password; + } + cx.connect(props); + } + return this.withHap((hap) => { + const onTrigger = (t_deprecate, hap, currentTime, cps, targetTime) => { + let msg_topic = topic; + if (!cx || !cx.isConnected()) { + return; + } + let message = ''; + if (typeof hap.value === 'object') { + let value = hap.value; + + // Try to take topic from pattern if it's not set + if (typeof msg_topic === 'undefined' && 'topic' in value) { + msg_topic = value.topic; + if (Array.isArray(msg_topic)) { + msg_topic = msg_topic.join('/'); + } + msg_topic = '/' + msg_topic; + } + if (add_meta) { + const duration = hap.duration.div(cps); + value = { ...value, duration: duration.valueOf(), cps: cps }; + } + message = JSON.stringify(value); + } else { + message = hap.value; + } + message = new Paho.Message(message); + message.destinationName = msg_topic; + + const offset = (targetTime - currentTime + latency) * 1000; + + window.setTimeout(function () { + cx.send(message); + }, offset); + }; + return hap.setContext({ ...hap.context, onTrigger, dominantTrigger: true }); + }); +}; diff --git a/packages/mqtt/package.json b/packages/mqtt/package.json new file mode 100644 index 00000000..f522e335 --- /dev/null +++ b/packages/mqtt/package.json @@ -0,0 +1,38 @@ +{ + "name": "@strudel/mqtt", + "version": "1.2.2", + "description": "MQTT API for strudel", + "main": "mqtt.mjs", + "type": "module", + "publishConfig": { + "main": "dist/index.mjs" + }, + "scripts": { + "build": "vite build", + "prepublishOnly": "npm run build" + }, + "repository": { + "type": "git", + "url": "git+https://codeberg.org/uzu/strudel.git" + }, + "keywords": [ + "titdalcycles", + "strudel", + "pattern", + "livecoding", + "algorave" + ], + "author": "Alex McLean ", + "license": "AGPL-3.0-or-later", + "bugs": { + "url": "https://codeberg.org/uzu/strudel/issues" + }, + "homepage": "https://codeberg.org/uzu/strudel#readme", + "dependencies": { + "@strudel/core": "workspace:*", + "paho-mqtt": "^1.1.0" + }, + "devDependencies": { + "vite": "^6.0.11" + } +} diff --git a/packages/mqtt/vite.config.js b/packages/mqtt/vite.config.js new file mode 100644 index 00000000..b45b7ca6 --- /dev/null +++ b/packages/mqtt/vite.config.js @@ -0,0 +1,19 @@ +import { defineConfig } from 'vite'; +import { dependencies } from './package.json'; +import { resolve } from 'path'; + +// https://vitejs.dev/config/ +export default defineConfig({ + plugins: [], + build: { + lib: { + entry: resolve(__dirname, 'mqtt.mjs'), + formats: ['es'], + fileName: (ext) => ({ es: 'index.mjs' })[ext], + }, + rollupOptions: { + external: [...Object.keys(dependencies)], + }, + target: 'esnext', + }, +}); diff --git a/packages/osc/osc.mjs b/packages/osc/osc.mjs index 5552a1c1..ac70b9e7 100644 --- a/packages/osc/osc.mjs +++ b/packages/osc/osc.mjs @@ -1,12 +1,12 @@ /* osc.mjs - -Copyright (C) 2022 Strudel contributors - see +Copyright (C) 2022 Strudel contributors - see 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 . */ import OSC from 'osc-js'; -import { logger, parseNumeral, Pattern, getEventOffsetMs } from '@strudel/core'; +import { logger, parseNumeral, Pattern, isNote, noteToMidi, ClockCollator } from '@strudel/core'; let connection; // Promise function connect() { @@ -34,6 +34,44 @@ function connect() { return connection; } +export function parseControlsFromHap(hap, cps) { + hap.ensureObjectValue(); + const cycle = hap.wholeOrPart().begin.valueOf(); + const delta = hap.duration.valueOf() / cps; + const controls = Object.assign({}, { cps, cycle, delta }, hap.value); + // make sure n and note are numbers + controls.n && (controls.n = parseNumeral(controls.n)); + 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)); + // speed adjustment for CPS is handled on the DSP side in superdirt and pattern side in Strudel, + // so we need to undo the adjustment before sending the message to superdirt. + controls.unit === 'c' && controls.speed != null && (controls.speed = controls.speed / cps); + const channels = controls.channels; + channels != undefined && (controls.channels = JSON.stringify(channels)); + return controls; +} + +const collator = new ClockCollator({}); + +export async function oscTrigger(t_deprecate, hap, currentTime, cps = 1, targetTime) { + const osc = await connect(); + const controls = parseControlsFromHap(hap, cps); + const keyvals = Object.entries(controls).flat(); + + const ts = Math.round(collator.calculateTimestamp(currentTime, targetTime) * 1000); + const message = new OSC.Message('/dirt/play', ...keyvals); + const bundle = new OSC.Bundle([message], ts); + bundle.timestamp(ts); // workaround for https://github.com/adzialocha/osc-js/issues/60 + osc.send(bundle); +} + /** * * Sends each hap as an OSC message, which can be picked up by SuperCollider or any other OSC-enabled software. @@ -44,25 +82,5 @@ function connect() { * @returns Pattern */ Pattern.prototype.osc = function () { - return this.onTrigger(async (time, hap, currentTime, cps = 1, targetTime) => { - hap.ensureObjectValue(); - const osc = await connect(); - const cycle = hap.wholeOrPart().begin.valueOf(); - const delta = hap.duration.valueOf(); - 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)); - const keyvals = Object.entries(controls).flat(); - // time should be audio time of onset - // currentTime should be current time of audio context (slightly before time) - const offset = getEventOffsetMs(targetTime, currentTime); - - // timestamp in milliseconds used to trigger the osc bundle at a precise moment - const ts = Math.floor(Date.now() + offset); - const message = new OSC.Message('/dirt/play', ...keyvals); - const bundle = new OSC.Bundle([message], ts); - bundle.timestamp(ts); // workaround for https://github.com/adzialocha/osc-js/issues/60 - osc.send(bundle); - }); + return this.onTrigger(oscTrigger); }; diff --git a/packages/osc/package.json b/packages/osc/package.json index 92725cd4..7d19fbbf 100644 --- a/packages/osc/package.json +++ b/packages/osc/package.json @@ -1,6 +1,6 @@ { "name": "@strudel/osc", - "version": "1.0.1", + "version": "1.2.2", "description": "OSC messaging for strudel", "main": "osc.mjs", "type": "module", @@ -17,7 +17,7 @@ }, "repository": { "type": "git", - "url": "git+https://github.com/tidalcycles/strudel.git" + "url": "git+https://codeberg.org/uzu/strudel.git" }, "keywords": [ "tidalcycles", @@ -32,15 +32,15 @@ ], "license": "AGPL-3.0-or-later", "bugs": { - "url": "https://github.com/tidalcycles/strudel/issues" + "url": "https://codeberg.org/uzu/strudel/issues" }, - "homepage": "https://github.com/tidalcycles/strudel#readme", + "homepage": "https://codeberg.org/uzu/strudel#readme", "dependencies": { "@strudel/core": "workspace:*", - "osc-js": "^2.4.0" + "osc-js": "^2.4.1" }, "devDependencies": { "pkg": "^5.8.1", - "vite": "^5.0.10" + "vite": "^6.0.11" } } diff --git a/packages/osc/server.js b/packages/osc/server.js index 7e0b9059..75fc5b1c 100644 --- a/packages/osc/server.js +++ b/packages/osc/server.js @@ -1,6 +1,6 @@ /* server.js - -Copyright (C) 2022 Strudel contributors - see +Copyright (C) 2022 Strudel contributors - see 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 . */ diff --git a/packages/osc/superdirtoutput.js b/packages/osc/superdirtoutput.js new file mode 100644 index 00000000..3f48e66b --- /dev/null +++ b/packages/osc/superdirtoutput.js @@ -0,0 +1,10 @@ +import { oscTriggerTauri } from '../desktopbridge/oscbridge.mjs'; +import { isTauri } from '../desktopbridge/utils.mjs'; +import { oscTrigger } from './osc.mjs'; + +const trigger = isTauri() ? oscTriggerTauri : oscTrigger; + +export const superdirtOutput = (hap, deadline, hapDuration, cps, targetTime) => { + const currentTime = performance.now() / 1000; + return trigger(null, hap, currentTime, cps, targetTime); +}; diff --git a/packages/osc/tidal-sniffer.js b/packages/osc/tidal-sniffer.js index 2cbb15e6..95e1fc32 100644 --- a/packages/osc/tidal-sniffer.js +++ b/packages/osc/tidal-sniffer.js @@ -1,10 +1,10 @@ /* tidal-sniffer.js - -Copyright (C) 2022 Strudel contributors - see +Copyright (C) 2022 Strudel contributors - see 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 . */ -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/reference/README.md b/packages/reference/README.md new file mode 100644 index 00000000..8ff16259 --- /dev/null +++ b/packages/reference/README.md @@ -0,0 +1,8 @@ +# @strudel/reference + +this package contains metadata for all documented strudel functions, useful to implement a reference. + +```js +import { reference } from '@strudel/reference'; +console.log(reference) +``` diff --git a/packages/reference/index.mjs b/packages/reference/index.mjs new file mode 100644 index 00000000..deeb6039 --- /dev/null +++ b/packages/reference/index.mjs @@ -0,0 +1,2 @@ +import jsdoc from '../../doc.json'; +export const reference = jsdoc; diff --git a/packages/reference/package.json b/packages/reference/package.json new file mode 100644 index 00000000..8dc966cc --- /dev/null +++ b/packages/reference/package.json @@ -0,0 +1,37 @@ +{ + "name": "@strudel/reference", + "version": "1.2.0", + "description": "Headless reference of all strudel functions", + "main": "index.mjs", + "type": "module", + "publishConfig": { + "main": "dist/index.mjs" + }, + "scripts": { + "build": "vite build", + "prepublishOnly": "npm run build" + }, + "repository": { + "type": "git", + "url": "git+https://codeberg.org/uzu/strudel.git" + }, + "keywords": [ + "tidalcycles", + "strudel", + "pattern", + "livecoding", + "algorave" + ], + "author": "Felix Roos ", + "contributors": [ + "Alex McLean " + ], + "license": "AGPL-3.0-or-later", + "bugs": { + "url": "https://codeberg.org/uzu/strudel/issues" + }, + "homepage": "https://codeberg.org/uzu/strudel#readme", + "devDependencies": { + "vite": "^6.0.11" + } +} diff --git a/packages/reference/vite.config.js b/packages/reference/vite.config.js new file mode 100644 index 00000000..44ff1e40 --- /dev/null +++ b/packages/reference/vite.config.js @@ -0,0 +1,15 @@ +import { defineConfig } from 'vite'; +import { resolve } from 'path'; + +// https://vitejs.dev/config/ +export default defineConfig({ + plugins: [], + build: { + lib: { + entry: resolve(__dirname, 'index.mjs'), + formats: ['es'], + fileName: (ext) => ({ es: 'index.mjs' })[ext], + }, + target: 'esnext', + }, +}); diff --git a/packages/repl/README.md b/packages/repl/README.md index b82f3434..5b43b5e7 100644 --- a/packages/repl/README.md +++ b/packages/repl/README.md @@ -17,7 +17,7 @@ You can also pin the version like this: ``` This has the advantage that your code will always work, regardless of potential breaking changes in the strudel codebase. -See [releases](https://github.com/tidalcycles/strudel/releases) for the latest versions. +See [releases](https://codeberg.org/uzu/strudel/releases) for the latest versions. ## Use Web Component @@ -91,6 +91,18 @@ or ``` -The `.editor` property on the `strudel-editor` web component gives you the instance of [StrudelMirror](https://github.com/tidalcycles/strudel/blob/a46bd9b36ea7d31c9f1d3fca484297c7da86893f/packages/codemirror/codemirror.mjs#L124) that runs the REPL. +The `.editor` property on the `strudel-editor` web component gives you the instance of [StrudelMirror](https://codeberg.org/uzu/strudel/src/branch/a46bd9b36ea7d31c9f1d3fca484297c7da86893f/packages/codemirror/codemirror.mjs#L124) that runs the REPL. For example, you could use `setCode` to change the code from the outside, `start` / `stop` to toggle playback or `evaluate` to evaluate the code. + +## Development: How to Test + +```sh +cd packages/repl +pnpm build +cd ../.. # back to root folder +# edit ./examples/buildless/web-component-no-iframe.html +# use +pnpx serve # from root folder +# go to http://localhost:3000/examples/buildless/web-component-no-iframe +``` diff --git a/packages/repl/package.json b/packages/repl/package.json index 70687d1c..bfa404c7 100644 --- a/packages/repl/package.json +++ b/packages/repl/package.json @@ -1,6 +1,6 @@ { "name": "@strudel/repl", - "version": "1.0.2", + "version": "1.2.3", "description": "Strudel REPL as a Web Component", "module": "index.mjs", "publishConfig": { @@ -14,7 +14,7 @@ "type": "module", "repository": { "type": "git", - "url": "git+https://github.com/tidalcycles/strudel.git" + "url": "git+https://codeberg.org/uzu/strudel.git" }, "keywords": [ "tidalcycles", @@ -29,9 +29,9 @@ ], "license": "AGPL-3.0-or-later", "bugs": { - "url": "https://github.com/tidalcycles/strudel/issues" + "url": "https://codeberg.org/uzu/strudel/issues" }, - "homepage": "https://github.com/tidalcycles/strudel#readme", + "homepage": "https://codeberg.org/uzu/strudel#readme", "dependencies": { "@strudel/codemirror": "workspace:*", "@strudel/core": "workspace:*", @@ -45,8 +45,8 @@ "@strudel/webaudio": "workspace:*" }, "devDependencies": { - "@rollup/plugin-replace": "^5.0.5", - "rollup-plugin-visualizer": "^5.12.0", - "vite": "^5.0.10" + "@rollup/plugin-replace": "^6.0.2", + "vite": "^6.0.11", + "vite-plugin-bundle-audioworklet": "workspace:*" } } diff --git a/packages/repl/prebake.mjs b/packages/repl/prebake.mjs index 9fc1c881..dd0023fb 100644 --- a/packages/repl/prebake.mjs +++ b/packages/repl/prebake.mjs @@ -1,5 +1,5 @@ import { noteToMidi, valueToMidi, Pattern, evalScope } from '@strudel/core'; -import { registerSynthSounds, registerZZFXSounds, samples } from '@strudel/webaudio'; +import { aliasBank, registerSynthSounds, registerZZFXSounds, samples } from '@strudel/webaudio'; import * as core from '@strudel/core'; export async function prebake() { @@ -21,6 +21,9 @@ export async function prebake() { ); // load samples const ds = 'https://raw.githubusercontent.com/felixroos/dough-samples/main/'; + + // TODO: move this onto the strudel repo + const ts = 'https://raw.githubusercontent.com/todepond/samples/main/'; await Promise.all([ modulesLoading, registerSynthSounds(), @@ -35,7 +38,10 @@ export async function prebake() { samples(`${ds}/Dirt-Samples.json`), samples(`${ds}/EmuSP12.json`), samples(`${ds}/vcsl.json`), + samples(`${ds}/mridangam.json`), ]); + + aliasBank(`${ts}/tidal-drum-machines-alias.json`); } const maxPan = noteToMidi('C8'); diff --git a/packages/repl/repl-component.mjs b/packages/repl/repl-component.mjs index e6e0ee0e..36208413 100644 --- a/packages/repl/repl-component.mjs +++ b/packages/repl/repl-component.mjs @@ -10,6 +10,8 @@ if (typeof HTMLElement !== 'undefined') { static observedAttributes = ['code']; settings = codemirrorSettings.get(); editor = null; + sync = false; + solo = true; constructor() { super(); } @@ -49,6 +51,8 @@ if (typeof HTMLElement !== 'undefined') { }); this.dispatchEvent(event); }, + solo: this.solo, + sync: this.sync, }); // init settings this.editor.updateSettings(this.settings); diff --git a/packages/repl/vite.config.js b/packages/repl/vite.config.js index ca209b4e..c1ef1bf7 100644 --- a/packages/repl/vite.config.js +++ b/packages/repl/vite.config.js @@ -1,12 +1,12 @@ import { defineConfig } from 'vite'; -import { dependencies } from './package.json'; import { resolve } from 'path'; -// import { visualizer } from 'rollup-plugin-visualizer'; import replace from '@rollup/plugin-replace'; +import bundleAudioWorkletPlugin from 'vite-plugin-bundle-audioworklet'; // https://vitejs.dev/config/ export default defineConfig({ - plugins: [], + base: './', + plugins: [bundleAudioWorkletPlugin()], build: { lib: { entry: resolve(__dirname, 'index.mjs'), diff --git a/packages/sampler/package.json b/packages/sampler/package.json index 58c7db6b..b0f27f86 100644 --- a/packages/sampler/package.json +++ b/packages/sampler/package.json @@ -1,6 +1,6 @@ { "name": "@strudel/sampler", - "version": "0.0.9", + "version": "0.2.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..d1e56108 100644 --- a/packages/sampler/sample-server.mjs +++ b/packages/sampler/sample-server.mjs @@ -1,10 +1,10 @@ #!/usr/bin/env node import cowsay from 'cowsay'; -import { createReadStream } from 'fs'; +import { createReadStream, existsSync } 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 }; @@ -69,12 +70,15 @@ const server = http.createServer(async (req, res) => { return res.end(JSON.stringify(banks)); } let subpath = decodeURIComponent(req.url); - if (!files.includes(subpath)) { + const filePath = join(directory, subpath.split('/').join(sep)); + + //console.log('GET:', filePath); + const isFound = existsSync(filePath); + if (!isFound) { res.statusCode = 404; res.end('File not found'); return; } - const filePath = join(directory, subpath); const readStream = createReadStream(filePath); readStream.on('error', (err) => { res.statusCode = 500; @@ -98,12 +102,6 @@ Object.keys(networkInterfaces).forEach((key) => { }); }); -if (!IP) { - console.error("Unable to determine server's IP address."); - // eslint-disable-next-line - process.exit(1); -} - server.listen(PORT, IP_ADDRESS, () => { console.log(`@strudel/sampler is now serving audio files from: ${directory} @@ -112,6 +110,6 @@ To use them in the Strudel REPL, run: samples('http://localhost:${PORT}') Or on a machine in the same network: - samples('http://${IP}:${PORT}') + ${IP ? `samples('http://${IP}:${PORT}')` : `Unable to determine server's IP address.`} `); }); diff --git a/packages/serial/package.json b/packages/serial/package.json index 9a98a253..c04a69cd 100644 --- a/packages/serial/package.json +++ b/packages/serial/package.json @@ -1,6 +1,6 @@ { "name": "@strudel/serial", - "version": "1.0.1", + "version": "1.2.2", "description": "Webserial API for strudel", "main": "serial.mjs", "type": "module", @@ -13,7 +13,7 @@ }, "repository": { "type": "git", - "url": "git+https://github.com/tidalcycles/strudel.git" + "url": "git+https://codeberg.org/uzu/strudel.git" }, "keywords": [ "titdalcycles", @@ -25,13 +25,13 @@ "author": "Alex McLean ", "license": "AGPL-3.0-or-later", "bugs": { - "url": "https://github.com/tidalcycles/strudel/issues" + "url": "https://codeberg.org/uzu/strudel/issues" }, - "homepage": "https://github.com/tidalcycles/strudel#readme", + "homepage": "https://codeberg.org/uzu/strudel#readme", "dependencies": { "@strudel/core": "workspace:*" }, "devDependencies": { - "vite": "^5.0.10" + "vite": "^6.0.11" } } diff --git a/packages/serial/serial.mjs b/packages/serial/serial.mjs index 81eb42f2..69210952 100644 --- a/packages/serial/serial.mjs +++ b/packages/serial/serial.mjs @@ -1,6 +1,6 @@ /* serial.mjs - -Copyright (C) 2022 Strudel contributors - see +Copyright (C) 2022 Strudel contributors - see 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 . */ @@ -68,7 +68,7 @@ Pattern.prototype.serial = function (br = 115200, sendcrc = false, singlecharids if (!(name in writeMessagers)) { getWriter(name, br); } - const onTrigger = (time, hap, currentTime) => { + const onTrigger = (t_deprecate, hap, currentTime, cps, targetTime) => { var message = ''; var chk = 0; if (typeof hap.value === 'object') { @@ -105,7 +105,7 @@ Pattern.prototype.serial = function (br = 115200, sendcrc = false, singlecharids } else { message = hap.value; } - const offset = (time - currentTime + latency) * 1000; + const offset = (targetTime - currentTime + latency) * 1000; window.setTimeout(function () { writeMessagers[name](message, chk); diff --git a/packages/soundfonts/fontloader.mjs b/packages/soundfonts/fontloader.mjs index 8cbe3e81..427f57e3 100644 --- a/packages/soundfonts/fontloader.mjs +++ b/packages/soundfonts/fontloader.mjs @@ -9,6 +9,13 @@ import { } from '@strudel/webaudio'; import gm from './gm.mjs'; +let defaultSoundfontUrl = 'https://felixroos.github.io/webaudiofontdata/sound'; +let soundfontUrl = defaultSoundfontUrl; + +export function setSoundfontUrl(value) { + soundfontUrl = value; +} + let loadCache = {}; async function loadFont(name) { if (loadCache[name]) { @@ -16,7 +23,7 @@ async function loadFont(name) { } const load = async () => { // TODO: make soundfont source configurable - const url = `https://felixroos.github.io/webaudiofontdata/sound/${name}.js`; + const url = `${soundfontUrl}/${name}.js`; const preset = await fetch(url).then((res) => res.text()); let [_, data] = preset.split('={'); return eval('{' + data); diff --git a/packages/soundfonts/index.mjs b/packages/soundfonts/index.mjs index c54297b5..31792603 100644 --- a/packages/soundfonts/index.mjs +++ b/packages/soundfonts/index.mjs @@ -1,6 +1,6 @@ -import { getFontBufferSource, registerSoundfonts } from './fontloader.mjs'; +import { getFontBufferSource, registerSoundfonts, setSoundfontUrl } from './fontloader.mjs'; import * as soundfontList from './list.mjs'; import { startPresetNote } from 'sfumato'; import { loadSoundfont } from './sfumato.mjs'; -export { loadSoundfont, startPresetNote, getFontBufferSource, soundfontList, registerSoundfonts }; +export { loadSoundfont, startPresetNote, getFontBufferSource, soundfontList, registerSoundfonts, setSoundfontUrl }; diff --git a/packages/soundfonts/package.json b/packages/soundfonts/package.json index db8370c3..2c87a6e0 100644 --- a/packages/soundfonts/package.json +++ b/packages/soundfonts/package.json @@ -1,6 +1,6 @@ { "name": "@strudel/soundfonts", - "version": "1.0.1", + "version": "1.2.3", "description": "Soundsfont support for strudel", "main": "index.mjs", "publishConfig": { @@ -13,7 +13,7 @@ "type": "module", "repository": { "type": "git", - "url": "git+https://github.com/tidalcycles/strudel.git" + "url": "git+https://codeberg.org/uzu/strudel.git" }, "keywords": [ "tidalcycles", @@ -25,17 +25,17 @@ "author": "Felix Roos ", "license": "AGPL-3.0-or-later", "bugs": { - "url": "https://github.com/tidalcycles/strudel/issues" + "url": "https://codeberg.org/uzu/strudel/issues" }, - "homepage": "https://github.com/tidalcycles/strudel#readme", + "homepage": "https://codeberg.org/uzu/strudel#readme", "dependencies": { "@strudel/core": "workspace:*", "@strudel/webaudio": "workspace:*", "sfumato": "^0.1.2", - "soundfont2": "^0.4.0" + "soundfont2": "^0.5.0" }, "devDependencies": { "node-fetch": "^3.3.2", - "vite": "^5.0.10" + "vite": "^6.0.11" } } diff --git a/packages/soundfonts/sfumato.mjs b/packages/soundfonts/sfumato.mjs index 871ee67d..6d60f80d 100644 --- a/packages/soundfonts/sfumato.mjs +++ b/packages/soundfonts/sfumato.mjs @@ -3,11 +3,11 @@ import { getAudioContext, registerSound } from '@strudel/webaudio'; import { loadSoundfont as _loadSoundfont, startPresetNote } from 'sfumato'; Pattern.prototype.soundfont = function (sf, n = 0) { - return this.onTrigger((t, h, ct) => { + return this.onTrigger((time_deprecate, h, ct, cps, targetTime) => { const ctx = getAudioContext(); const note = getPlayableNoteValue(h); const preset = sf.presets[n % sf.presets.length]; - const deadline = ctx.currentTime + t - ct; + const deadline = targetTime; const args = [ctx, preset, noteToMidi(note), deadline]; const stop = startPresetNote(...args); stop(deadline + h.duration); diff --git a/packages/superdough/fft.js b/packages/superdough/fft.js new file mode 100644 index 00000000..38294952 --- /dev/null +++ b/packages/superdough/fft.js @@ -0,0 +1,488 @@ +'use strict'; +// sourced from https://github.com/indutny/fft.js/ +// LICENSE +// This software is licensed under the MIT License. +// Copyright Fedor Indutny, 2017. +// Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: +// The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +export default class FFT { + constructor(size) { + this.size = size | 0; + if (this.size <= 1 || (this.size & (this.size - 1)) !== 0) + throw new Error('FFT size must be a power of two and bigger than 1'); + + this._csize = size << 1; + + // NOTE: Use of `var` is intentional for old V8 versions + var table = new Array(this.size * 2); + for (var i = 0; i < table.length; i += 2) { + const angle = (Math.PI * i) / this.size; + table[i] = Math.cos(angle); + table[i + 1] = -Math.sin(angle); + } + this.table = table; + + // Find size's power of two + var power = 0; + for (var t = 1; this.size > t; t <<= 1) power++; + + // Calculate initial step's width: + // * If we are full radix-4 - it is 2x smaller to give inital len=8 + // * Otherwise it is the same as `power` to give len=4 + this._width = power % 2 === 0 ? power - 1 : power; + + // Pre-compute bit-reversal patterns + this._bitrev = new Array(1 << this._width); + for (var j = 0; j < this._bitrev.length; j++) { + this._bitrev[j] = 0; + for (var shift = 0; shift < this._width; shift += 2) { + var revShift = this._width - shift - 2; + this._bitrev[j] |= ((j >>> shift) & 3) << revShift; + } + } + + this._out = null; + this._data = null; + this._inv = 0; + } + fromComplexArray(complex, storage) { + var res = storage || new Array(complex.length >>> 1); + for (var i = 0; i < complex.length; i += 2) res[i >>> 1] = complex[i]; + return res; + } + createComplexArray() { + const res = new Array(this._csize); + for (var i = 0; i < res.length; i++) res[i] = 0; + return res; + } + toComplexArray(input, storage) { + var res = storage || this.createComplexArray(); + for (var i = 0; i < res.length; i += 2) { + res[i] = input[i >>> 1]; + res[i + 1] = 0; + } + return res; + } + completeSpectrum(spectrum) { + var size = this._csize; + var half = size >>> 1; + for (var i = 2; i < half; i += 2) { + spectrum[size - i] = spectrum[i]; + spectrum[size - i + 1] = -spectrum[i + 1]; + } + } + transform(out, data) { + if (out === data) throw new Error('Input and output buffers must be different'); + + this._out = out; + this._data = data; + this._inv = 0; + this._transform4(); + this._out = null; + this._data = null; + } + realTransform(out, data) { + if (out === data) throw new Error('Input and output buffers must be different'); + + this._out = out; + this._data = data; + this._inv = 0; + this._realTransform4(); + this._out = null; + this._data = null; + } + inverseTransform(out, data) { + if (out === data) throw new Error('Input and output buffers must be different'); + + this._out = out; + this._data = data; + this._inv = 1; + this._transform4(); + for (var i = 0; i < out.length; i++) out[i] /= this.size; + this._out = null; + this._data = null; + } + // radix-4 implementation + // + // NOTE: Uses of `var` are intentional for older V8 version that do not + // support both `let compound assignments` and `const phi` + _transform4() { + var out = this._out; + var size = this._csize; + + // Initial step (permute and transform) + var width = this._width; + var step = 1 << width; + var len = (size / step) << 1; + + var outOff; + var t; + var bitrev = this._bitrev; + if (len === 4) { + for (outOff = 0, t = 0; outOff < size; outOff += len, t++) { + const off = bitrev[t]; + this._singleTransform2(outOff, off, step); + } + } else { + // len === 8 + for (outOff = 0, t = 0; outOff < size; outOff += len, t++) { + const off = bitrev[t]; + this._singleTransform4(outOff, off, step); + } + } + + // Loop through steps in decreasing order + var inv = this._inv ? -1 : 1; + var table = this.table; + for (step >>= 2; step >= 2; step >>= 2) { + len = (size / step) << 1; + var quarterLen = len >>> 2; + + // Loop through offsets in the data + for (outOff = 0; outOff < size; outOff += len) { + // Full case + var limit = outOff + quarterLen; + for (var i = outOff, k = 0; i < limit; i += 2, k += step) { + const A = i; + const B = A + quarterLen; + const C = B + quarterLen; + const D = C + quarterLen; + + // Original values + const Ar = out[A]; + const Ai = out[A + 1]; + const Br = out[B]; + const Bi = out[B + 1]; + const Cr = out[C]; + const Ci = out[C + 1]; + const Dr = out[D]; + const Di = out[D + 1]; + + // Middle values + const MAr = Ar; + const MAi = Ai; + + const tableBr = table[k]; + const tableBi = inv * table[k + 1]; + const MBr = Br * tableBr - Bi * tableBi; + const MBi = Br * tableBi + Bi * tableBr; + + const tableCr = table[2 * k]; + const tableCi = inv * table[2 * k + 1]; + const MCr = Cr * tableCr - Ci * tableCi; + const MCi = Cr * tableCi + Ci * tableCr; + + const tableDr = table[3 * k]; + const tableDi = inv * table[3 * k + 1]; + const MDr = Dr * tableDr - Di * tableDi; + const MDi = Dr * tableDi + Di * tableDr; + + // Pre-Final values + const T0r = MAr + MCr; + const T0i = MAi + MCi; + const T1r = MAr - MCr; + const T1i = MAi - MCi; + const T2r = MBr + MDr; + const T2i = MBi + MDi; + const T3r = inv * (MBr - MDr); + const T3i = inv * (MBi - MDi); + + // Final values + const FAr = T0r + T2r; + const FAi = T0i + T2i; + + const FCr = T0r - T2r; + const FCi = T0i - T2i; + + const FBr = T1r + T3i; + const FBi = T1i - T3r; + + const FDr = T1r - T3i; + const FDi = T1i + T3r; + + out[A] = FAr; + out[A + 1] = FAi; + out[B] = FBr; + out[B + 1] = FBi; + out[C] = FCr; + out[C + 1] = FCi; + out[D] = FDr; + out[D + 1] = FDi; + } + } + } + } + // radix-2 implementation + // + // NOTE: Only called for len=4 + _singleTransform2(outOff, off, step) { + const out = this._out; + const data = this._data; + + const evenR = data[off]; + const evenI = data[off + 1]; + const oddR = data[off + step]; + const oddI = data[off + step + 1]; + + const leftR = evenR + oddR; + const leftI = evenI + oddI; + const rightR = evenR - oddR; + const rightI = evenI - oddI; + + out[outOff] = leftR; + out[outOff + 1] = leftI; + out[outOff + 2] = rightR; + out[outOff + 3] = rightI; + } + // radix-4 + // + // NOTE: Only called for len=8 + _singleTransform4(outOff, off, step) { + const out = this._out; + const data = this._data; + const inv = this._inv ? -1 : 1; + const step2 = step * 2; + const step3 = step * 3; + + // Original values + const Ar = data[off]; + const Ai = data[off + 1]; + const Br = data[off + step]; + const Bi = data[off + step + 1]; + const Cr = data[off + step2]; + const Ci = data[off + step2 + 1]; + const Dr = data[off + step3]; + const Di = data[off + step3 + 1]; + + // Pre-Final values + const T0r = Ar + Cr; + const T0i = Ai + Ci; + const T1r = Ar - Cr; + const T1i = Ai - Ci; + const T2r = Br + Dr; + const T2i = Bi + Di; + const T3r = inv * (Br - Dr); + const T3i = inv * (Bi - Di); + + // Final values + const FAr = T0r + T2r; + const FAi = T0i + T2i; + + const FBr = T1r + T3i; + const FBi = T1i - T3r; + + const FCr = T0r - T2r; + const FCi = T0i - T2i; + + const FDr = T1r - T3i; + const FDi = T1i + T3r; + + out[outOff] = FAr; + out[outOff + 1] = FAi; + out[outOff + 2] = FBr; + out[outOff + 3] = FBi; + out[outOff + 4] = FCr; + out[outOff + 5] = FCi; + out[outOff + 6] = FDr; + out[outOff + 7] = FDi; + } + // Real input radix-4 implementation + _realTransform4() { + var out = this._out; + var size = this._csize; + + // Initial step (permute and transform) + var width = this._width; + var step = 1 << width; + var len = (size / step) << 1; + + var outOff; + var t; + var bitrev = this._bitrev; + if (len === 4) { + for (outOff = 0, t = 0; outOff < size; outOff += len, t++) { + const off = bitrev[t]; + this._singleRealTransform2(outOff, off >>> 1, step >>> 1); + } + } else { + // len === 8 + for (outOff = 0, t = 0; outOff < size; outOff += len, t++) { + const off = bitrev[t]; + this._singleRealTransform4(outOff, off >>> 1, step >>> 1); + } + } + + // Loop through steps in decreasing order + var inv = this._inv ? -1 : 1; + var table = this.table; + for (step >>= 2; step >= 2; step >>= 2) { + len = (size / step) << 1; + var halfLen = len >>> 1; + var quarterLen = halfLen >>> 1; + var hquarterLen = quarterLen >>> 1; + + // Loop through offsets in the data + for (outOff = 0; outOff < size; outOff += len) { + for (var i = 0, k = 0; i <= hquarterLen; i += 2, k += step) { + var A = outOff + i; + var B = A + quarterLen; + var C = B + quarterLen; + var D = C + quarterLen; + + // Original values + var Ar = out[A]; + var Ai = out[A + 1]; + var Br = out[B]; + var Bi = out[B + 1]; + var Cr = out[C]; + var Ci = out[C + 1]; + var Dr = out[D]; + var Di = out[D + 1]; + + // Middle values + var MAr = Ar; + var MAi = Ai; + + var tableBr = table[k]; + var tableBi = inv * table[k + 1]; + var MBr = Br * tableBr - Bi * tableBi; + var MBi = Br * tableBi + Bi * tableBr; + + var tableCr = table[2 * k]; + var tableCi = inv * table[2 * k + 1]; + var MCr = Cr * tableCr - Ci * tableCi; + var MCi = Cr * tableCi + Ci * tableCr; + + var tableDr = table[3 * k]; + var tableDi = inv * table[3 * k + 1]; + var MDr = Dr * tableDr - Di * tableDi; + var MDi = Dr * tableDi + Di * tableDr; + + // Pre-Final values + var T0r = MAr + MCr; + var T0i = MAi + MCi; + var T1r = MAr - MCr; + var T1i = MAi - MCi; + var T2r = MBr + MDr; + var T2i = MBi + MDi; + var T3r = inv * (MBr - MDr); + var T3i = inv * (MBi - MDi); + + // Final values + var FAr = T0r + T2r; + var FAi = T0i + T2i; + + var FBr = T1r + T3i; + var FBi = T1i - T3r; + + out[A] = FAr; + out[A + 1] = FAi; + out[B] = FBr; + out[B + 1] = FBi; + + // Output final middle point + if (i === 0) { + var FCr = T0r - T2r; + var FCi = T0i - T2i; + out[C] = FCr; + out[C + 1] = FCi; + continue; + } + + // Do not overwrite ourselves + if (i === hquarterLen) continue; + + // In the flipped case: + // MAi = -MAi + // MBr=-MBi, MBi=-MBr + // MCr=-MCr + // MDr=MDi, MDi=MDr + var ST0r = T1r; + var ST0i = -T1i; + var ST1r = T0r; + var ST1i = -T0i; + var ST2r = -inv * T3i; + var ST2i = -inv * T3r; + var ST3r = -inv * T2i; + var ST3i = -inv * T2r; + + var SFAr = ST0r + ST2r; + var SFAi = ST0i + ST2i; + + var SFBr = ST1r + ST3i; + var SFBi = ST1i - ST3r; + + var SA = outOff + quarterLen - i; + var SB = outOff + halfLen - i; + + out[SA] = SFAr; + out[SA + 1] = SFAi; + out[SB] = SFBr; + out[SB + 1] = SFBi; + } + } + } + } + // radix-2 implementation + // + // NOTE: Only called for len=4 + _singleRealTransform2(outOff, off, step) { + const out = this._out; + const data = this._data; + + const evenR = data[off]; + const oddR = data[off + step]; + + const leftR = evenR + oddR; + const rightR = evenR - oddR; + + out[outOff] = leftR; + out[outOff + 1] = 0; + out[outOff + 2] = rightR; + out[outOff + 3] = 0; + } + // radix-4 + // + // NOTE: Only called for len=8 + _singleRealTransform4(outOff, off, step) { + const out = this._out; + const data = this._data; + const inv = this._inv ? -1 : 1; + const step2 = step * 2; + const step3 = step * 3; + + // Original values + const Ar = data[off]; + const Br = data[off + step]; + const Cr = data[off + step2]; + const Dr = data[off + step3]; + + // Pre-Final values + const T0r = Ar + Cr; + const T1r = Ar - Cr; + const T2r = Br + Dr; + const T3r = inv * (Br - Dr); + + // Final values + const FAr = T0r + T2r; + + const FBr = T1r; + const FBi = -T3r; + + const FCr = T0r - T2r; + + const FDr = T1r; + const FDi = T3r; + + out[outOff] = FAr; + out[outOff + 1] = 0; + out[outOff + 2] = FBr; + out[outOff + 3] = FBi; + out[outOff + 4] = FCr; + out[outOff + 5] = 0; + out[outOff + 6] = FDr; + out[outOff + 7] = FDi; + } +} diff --git a/packages/superdough/helpers.mjs b/packages/superdough/helpers.mjs index f5f3ad68..6bde6937 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; @@ -195,6 +212,7 @@ export function webAudioTimeout(audioContext, onComplete, startTime, stopTime) { constantNode.onended = () => { onComplete(); }; + return constantNode; } const mod = (freq, range = 1, type = 'sine') => { const ctx = getAudioContext(); diff --git a/packages/superdough/index.mjs b/packages/superdough/index.mjs index 3247c5b4..fd49fe33 100644 --- a/packages/superdough/index.mjs +++ b/packages/superdough/index.mjs @@ -1,6 +1,6 @@ /* index.mjs - -Copyright (C) 2022 Strudel contributors - see +Copyright (C) 2022 Strudel contributors - see 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 . */ diff --git a/packages/superdough/ola-processor.js b/packages/superdough/ola-processor.js new file mode 100644 index 00000000..38d45a25 --- /dev/null +++ b/packages/superdough/ola-processor.js @@ -0,0 +1,185 @@ +'use strict'; + +// sourced from https://github.com/olvb/phaze/tree/master?tab=readme-ov-file +const WEBAUDIO_BLOCK_SIZE = 128; + +/** Overlap-Add Node */ +class OLAProcessor extends AudioWorkletProcessor { + constructor(options) { + super(options); + this.started = false; + this.nbInputs = options.numberOfInputs; + this.nbOutputs = options.numberOfOutputs; + + this.blockSize = options.processorOptions.blockSize; + // TODO for now, the only support hop size is the size of a web audio block + this.hopSize = WEBAUDIO_BLOCK_SIZE; + + this.nbOverlaps = this.blockSize / this.hopSize; + + // pre-allocate input buffers (will be reallocated if needed) + this.inputBuffers = new Array(this.nbInputs); + this.inputBuffersHead = new Array(this.nbInputs); + this.inputBuffersToSend = new Array(this.nbInputs); + // default to 1 channel per input until we know more + for (let i = 0; i < this.nbInputs; i++) { + this.allocateInputChannels(i, 1); + } + // pre-allocate input buffers (will be reallocated if needed) + this.outputBuffers = new Array(this.nbOutputs); + this.outputBuffersToRetrieve = new Array(this.nbOutputs); + // default to 1 channel per output until we know more + for (let i = 0; i < this.nbOutputs; i++) { + this.allocateOutputChannels(i, 1); + } + } + + /** Handles dynamic reallocation of input/output channels buffer + (channel numbers may lety during lifecycle) **/ + reallocateChannelsIfNeeded(inputs, outputs) { + for (let i = 0; i < this.nbInputs; i++) { + let nbChannels = inputs[i].length; + if (nbChannels != this.inputBuffers[i].length) { + this.allocateInputChannels(i, nbChannels); + } + } + + for (let i = 0; i < this.nbOutputs; i++) { + let nbChannels = outputs[i].length; + if (nbChannels != this.outputBuffers[i].length) { + this.allocateOutputChannels(i, nbChannels); + } + } + } + + allocateInputChannels(inputIndex, nbChannels) { + // allocate input buffers + + this.inputBuffers[inputIndex] = new Array(nbChannels); + for (let i = 0; i < nbChannels; i++) { + this.inputBuffers[inputIndex][i] = new Float32Array(this.blockSize + WEBAUDIO_BLOCK_SIZE); + this.inputBuffers[inputIndex][i].fill(0); + } + + // allocate input buffers to send and head pointers to copy from + // (cannot directly send a pointer/subarray because input may be modified) + this.inputBuffersHead[inputIndex] = new Array(nbChannels); + this.inputBuffersToSend[inputIndex] = new Array(nbChannels); + for (let i = 0; i < nbChannels; i++) { + this.inputBuffersHead[inputIndex][i] = this.inputBuffers[inputIndex][i].subarray(0, this.blockSize); + this.inputBuffersToSend[inputIndex][i] = new Float32Array(this.blockSize); + } + } + + allocateOutputChannels(outputIndex, nbChannels) { + // allocate output buffers + this.outputBuffers[outputIndex] = new Array(nbChannels); + for (let i = 0; i < nbChannels; i++) { + this.outputBuffers[outputIndex][i] = new Float32Array(this.blockSize); + this.outputBuffers[outputIndex][i].fill(0); + } + + // allocate output buffers to retrieve + // (cannot send a pointer/subarray because new output has to be add to exising output) + this.outputBuffersToRetrieve[outputIndex] = new Array(nbChannels); + for (let i = 0; i < nbChannels; i++) { + this.outputBuffersToRetrieve[outputIndex][i] = new Float32Array(this.blockSize); + this.outputBuffersToRetrieve[outputIndex][i].fill(0); + } + } + + /** Read next web audio block to input buffers **/ + readInputs(inputs) { + // when playback is paused, we may stop receiving new samples + if (inputs[0].length && inputs[0][0].length == 0) { + for (let i = 0; i < this.nbInputs; i++) { + for (let j = 0; j < this.inputBuffers[i].length; j++) { + this.inputBuffers[i][j].fill(0, this.blockSize); + } + } + return; + } + + for (let i = 0; i < this.nbInputs; i++) { + for (let j = 0; j < this.inputBuffers[i].length; j++) { + let webAudioBlock = inputs[i][j]; + this.inputBuffers[i][j].set(webAudioBlock, this.blockSize); + } + } + } + + /** Write next web audio block from output buffers **/ + writeOutputs(outputs) { + for (let i = 0; i < this.nbInputs; i++) { + for (let j = 0; j < this.inputBuffers[i].length; j++) { + let webAudioBlock = this.outputBuffers[i][j].subarray(0, WEBAUDIO_BLOCK_SIZE); + outputs[i][j].set(webAudioBlock); + } + } + } + + /** Shift left content of input buffers to receive new web audio block **/ + shiftInputBuffers() { + for (let i = 0; i < this.nbInputs; i++) { + for (let j = 0; j < this.inputBuffers[i].length; j++) { + this.inputBuffers[i][j].copyWithin(0, WEBAUDIO_BLOCK_SIZE); + } + } + } + + /** Shift left content of output buffers to receive new web audio block **/ + shiftOutputBuffers() { + for (let i = 0; i < this.nbOutputs; i++) { + for (let j = 0; j < this.outputBuffers[i].length; j++) { + this.outputBuffers[i][j].copyWithin(0, WEBAUDIO_BLOCK_SIZE); + this.outputBuffers[i][j].subarray(this.blockSize - WEBAUDIO_BLOCK_SIZE).fill(0); + } + } + } + + /** Copy contents of input buffers to buffer actually sent to process **/ + prepareInputBuffersToSend() { + for (let i = 0; i < this.nbInputs; i++) { + for (let j = 0; j < this.inputBuffers[i].length; j++) { + this.inputBuffersToSend[i][j].set(this.inputBuffersHead[i][j]); + } + } + } + + /** Add contents of output buffers just processed to output buffers **/ + handleOutputBuffersToRetrieve() { + for (let i = 0; i < this.nbOutputs; i++) { + for (let j = 0; j < this.outputBuffers[i].length; j++) { + for (let k = 0; k < this.blockSize; k++) { + this.outputBuffers[i][j][k] += this.outputBuffersToRetrieve[i][j][k] / this.nbOverlaps; + } + } + } + } + + process(inputs, outputs, params) { + const input = inputs[0]; + const hasInput = !(input[0] === undefined); + if (this.started && !hasInput) { + return false; + } + this.started = hasInput; + this.reallocateChannelsIfNeeded(inputs, outputs); + + this.readInputs(inputs); + this.shiftInputBuffers(); + this.prepareInputBuffersToSend(); + this.processOLA(this.inputBuffersToSend, this.outputBuffersToRetrieve, params); + this.handleOutputBuffersToRetrieve(); + this.writeOutputs(outputs); + this.shiftOutputBuffers(); + + return true; + } + + processOLA(inputs, outputs, params) { + console.assert(false, 'Not overriden'); + } +} + +export default OLAProcessor; diff --git a/packages/superdough/package.json b/packages/superdough/package.json index f1abd95b..439b8371 100644 --- a/packages/superdough/package.json +++ b/packages/superdough/package.json @@ -1,6 +1,6 @@ { "name": "superdough", - "version": "1.0.1", + "version": "1.2.3", "description": "simple web audio synth and sampler intended for live coding. inspired by superdirt and webdirt.", "main": "index.mjs", "type": "module", @@ -16,7 +16,7 @@ }, "repository": { "type": "git", - "url": "git+https://github.com/tidalcycles/strudel.git" + "url": "git+https://codeberg.org/uzu/strudel.git" }, "keywords": [ "tidalcycles", @@ -28,13 +28,14 @@ "author": "Felix Roos ", "license": "AGPL-3.0-or-later", "bugs": { - "url": "https://github.com/tidalcycles/strudel/issues" + "url": "https://codeberg.org/uzu/strudel/issues" }, - "homepage": "https://github.com/tidalcycles/strudel#readme", + "homepage": "https://codeberg.org/uzu/strudel#readme", "devDependencies": { - "vite": "^5.0.10" + "vite": "^6.0.11", + "vite-plugin-bundle-audioworklet": "workspace:*" }, "dependencies": { - "nanostores": "^0.9.5" + "nanostores": "^0.11.3" } } diff --git a/packages/superdough/sampler.mjs b/packages/superdough/sampler.mjs index 10087fc6..18d1b779 100644 --- a/packages/superdough/sampler.mjs +++ b/packages/superdough/sampler.mjs @@ -22,16 +22,13 @@ function humanFileSize(bytes, si) { return bytes.toFixed(1) + ' ' + units[u]; } -export const getSampleBufferSource = async (s, n, note, speed, freq, bank, resolveUrl) => { - let transpose = 0; - if (freq !== undefined && note !== undefined) { - logger('[sampler] hap has note and freq. ignoring note', 'warning'); - } - let midi = valueToMidi({ freq, note }, 36); - transpose = midi - 36; // C3 is middle C - - const ac = getAudioContext(); - +// deduces relevant info for sample loading from hap.value and sample definition +// it encapsulates the core sampler logic into a pure and synchronous function +// hapValue: Hap.value, bank: sample bank definition for sound "s" (values in strudel.json format) +export function getSampleInfo(hapValue, bank) { + const { s, n = 0, speed = 1.0 } = hapValue; + let midi = valueToMidi(hapValue, 36); + let transpose = midi - 36; // C3 is middle C; let sampleUrl; let index = 0; if (Array.isArray(bank)) { @@ -50,19 +47,54 @@ export const getSampleBufferSource = async (s, n, note, speed, freq, bank, resol index = getSoundIndex(n, bank[closest].length); sampleUrl = bank[closest][index]; } + const label = `${s}:${index}`; + let playbackRate = Math.abs(speed) * Math.pow(2, transpose / 12); + return { transpose, sampleUrl, index, midi, label, playbackRate }; +} + +// takes hapValue and returns buffer + playbackRate. +export const getSampleBuffer = async (hapValue, bank, resolveUrl) => { + let { sampleUrl, label, playbackRate } = getSampleInfo(hapValue, bank); if (resolveUrl) { sampleUrl = await resolveUrl(sampleUrl); } - let buffer = await loadBuffer(sampleUrl, ac, s, index); - if (speed < 0) { + const ac = getAudioContext(); + const buffer = await loadBuffer(sampleUrl, ac, label); + + if (hapValue.unit === 'c') { + playbackRate = playbackRate * buffer.duration; + } + return { buffer, playbackRate }; +}; + +// creates playback ready AudioBufferSourceNode from hapValue +export const getSampleBufferSource = async (hapValue, bank, resolveUrl) => { + let { buffer, playbackRate } = await getSampleBuffer(hapValue, bank, resolveUrl); + if (hapValue.speed < 0) { // should this be cached? buffer = reverseBuffer(buffer); } + const ac = getAudioContext(); const bufferSource = ac.createBufferSource(); bufferSource.buffer = buffer; - const playbackRate = 1.0 * Math.pow(2, transpose / 12); bufferSource.playbackRate.value = playbackRate; - return bufferSource; + + const { s, loopBegin = 0, loopEnd = 1, begin = 0, end = 1 } = hapValue; + + // "The computation of the offset into the sound is performed using the sound buffer's natural sample rate, + // rather than the current playback rate, so even if the sound is playing at twice its normal speed, + // the midway point through a 10-second audio buffer is still 5." + const offset = begin * bufferSource.buffer.duration; + + const loop = s.startsWith('wt_') ? 1 : hapValue.loop; + if (loop) { + bufferSource.loop = true; + bufferSource.loopStart = loopBegin * bufferSource.buffer.duration - offset; + bufferSource.loopEnd = loopEnd * bufferSource.buffer.duration - offset; + } + const bufferDuration = bufferSource.buffer.duration / bufferSource.playbackRate.value; + const sliceDuration = (end - begin) * bufferDuration; + return { bufferSource, offset, bufferDuration, sliceDuration }; }; export const loadBuffer = (url, ac, s, n = 0) => { @@ -232,10 +264,10 @@ export const samples = async (sampleMap, baseUrl = sampleMap._base || '', option const { prebake, tag } = options; processSampleMap( sampleMap, - (key, value) => - registerSound(key, (t, hapValue, onended) => onTriggerSample(t, hapValue, onended, value), { + (key, bank) => + registerSound(key, (t, hapValue, onended) => onTriggerSample(t, hapValue, onended, bank), { type: 'sample', - samples: value, + samples: bank, baseUrl, prebake, tag, @@ -249,38 +281,26 @@ const cutGroups = []; export async function onTriggerSample(t, value, onended, bank, resolveUrl) { let { s, - freq, - unit, nudge = 0, // TODO: is this in seconds? cut, loop, clip = undefined, // if set, samples will be cut off when the hap ends n = 0, - note, speed = 1, // sample playback speed - loopBegin = 0, - begin = 0, - loopEnd = 1, - end = 1, duration, } = value; + // load sample if (speed === 0) { // no playback return; } - loop = s.startsWith('wt_') ? 1 : value.loop; const ac = getAudioContext(); + // destructure adsr here, because the default should be different for synths and samples - let [attack, decay, sustain, release] = getADSRValues([value.attack, value.decay, value.sustain, value.release]); - //const soundfont = getSoundfontKey(s); - const time = t + nudge; - const bufferSource = await getSampleBufferSource(s, n, note, speed, freq, bank, resolveUrl); - - // vibrato - let vibratoOscillator = getVibratoOscillator(bufferSource.detune, value, t); + const { bufferSource, sliceDuration, offset } = await getSampleBufferSource(value, bank, resolveUrl); // asny stuff above took too long? if (ac.currentTime > t) { @@ -292,26 +312,19 @@ export async function onTriggerSample(t, value, onended, bank, resolveUrl) { logger(`[sampler] could not load "${s}:${n}"`, 'error'); return; } - bufferSource.playbackRate.value = Math.abs(speed) * bufferSource.playbackRate.value; - if (unit === 'c') { - // are there other units? - bufferSource.playbackRate.value = bufferSource.playbackRate.value * bufferSource.buffer.duration * 1; //cps; - } - // "The computation of the offset into the sound is performed using the sound buffer's natural sample rate, - // rather than the current playback rate, so even if the sound is playing at twice its normal speed, - // the midway point through a 10-second audio buffer is still 5." - const offset = begin * bufferSource.buffer.duration; - if (loop) { - bufferSource.loop = true; - bufferSource.loopStart = loopBegin * bufferSource.buffer.duration - offset; - bufferSource.loopEnd = loopEnd * bufferSource.buffer.duration - offset; - } + + // vibrato + let vibratoOscillator = getVibratoOscillator(bufferSource.detune, value, t); + + const time = t + nudge; bufferSource.start(time, offset); + const envGain = ac.createGain(); const node = bufferSource.connect(envGain); + + // if none of these controls is set, the duration of the sound will be set to the duration of the sample slice if (clip == null && loop == null && value.release == null) { - const bufferDuration = bufferSource.buffer.duration / bufferSource.playbackRate.value; - duration = (end - begin) * bufferDuration; + duration = sliceDuration; } let holdEnd = t + duration; @@ -331,7 +344,9 @@ export async function onTriggerSample(t, value, onended, bank, resolveUrl) { }; let envEnd = holdEnd + release + 0.01; bufferSource.stop(envEnd); - const stop = (endTime, playWholeBuffer) => {}; + const stop = (endTime) => { + bufferSource.stop(endTime); + }; const handle = { node: out, bufferSource, stop }; // cut groups diff --git a/packages/superdough/superdough.mjs b/packages/superdough/superdough.mjs index 25859278..c59a5c0d 100644 --- a/packages/superdough/superdough.mjs +++ b/packages/superdough/superdough.mjs @@ -1,27 +1,176 @@ /* superdough.mjs - -Copyright (C) 2022 Strudel contributors - see +Copyright (C) 2022 Strudel contributors - see 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 . */ import './feedbackdelay.mjs'; import './reverb.mjs'; import './vowel.mjs'; -import { clamp, nanFallback } from './util.mjs'; -import workletsUrl from './worklets.mjs?url'; -import { createFilter, gainNode, getCompressor } from './helpers.mjs'; +import { clamp, nanFallback, _mod, cycleToSeconds } from './util.mjs'; +import workletsUrl from './worklets.mjs?audioworklet'; +import { createFilter, gainNode, getCompressor, getWorklet } from './helpers.mjs'; import { map } from 'nanostores'; import { logger } from './logger.mjs'; import { loadBuffer } from './sampler.mjs'; +export const DEFAULT_MAX_POLYPHONY = 128; +const DEFAULT_AUDIO_DEVICE_NAME = 'System Standard'; + +let maxPolyphony = DEFAULT_MAX_POLYPHONY; + +export function setMaxPolyphony(polyphony) { + maxPolyphony = parseInt(polyphony) ?? DEFAULT_MAX_POLYPHONY; +} + +let multiChannelOrbits = false; +export function setMultiChannelOrbits(bool) { + multiChannelOrbits = bool == true; +} + export const soundMap = map(); export function registerSound(key, onTrigger, data = {}) { + key = key.toLowerCase().replace(/\s+/g, '_'); soundMap.setKey(key, { onTrigger, data }); } +let gainCurveFunc = (val) => val; + +export function applyGainCurve(val) { + return gainCurveFunc(val); +} + +export function setGainCurve(newGainCurveFunc) { + gainCurveFunc = newGainCurveFunc; +} + +function aliasBankMap(aliasMap) { + // Make all bank keys lower case for case insensitivity + for (const key in aliasMap) { + aliasMap[key.toLowerCase()] = aliasMap[key]; + } + + // Look through every sound... + const soundDictionary = soundMap.get(); + for (const key in soundDictionary) { + // Check if the sound is part of a bank... + const [bank, suffix] = key.split('_'); + if (!suffix) continue; + + // Check if the bank is aliased... + const aliasValue = aliasMap[bank]; + if (aliasValue) { + if (typeof aliasValue === 'string') { + // Alias a single alias + soundDictionary[`${aliasValue}_${suffix}`.toLowerCase()] = soundDictionary[key]; + } else if (Array.isArray(aliasValue)) { + // Alias multiple aliases + for (const alias of aliasValue) { + soundDictionary[`${alias}_${suffix}`.toLowerCase()] = soundDictionary[key]; + } + } + } + } + + // Update the sound map! + // We need to destructure here to trigger the update + soundMap.set({ ...soundDictionary }); +} + +async function aliasBankPath(path) { + const response = await fetch(path); + const aliasMap = await response.json(); + aliasBankMap(aliasMap); +} + +/** + * Register an alias for a bank of sounds. + * Optionally accepts a single argument map of bank aliases. + * Optionally accepts a single argument string of a path to a JSON file containing bank aliases. + * @param {string} bank - The bank to alias + * @param {string} alias - The alias to use for the bank + */ +export async function aliasBank(...args) { + switch (args.length) { + case 1: + if (typeof args[0] === 'string') { + return aliasBankPath(args[0]); + } else { + return aliasBankMap(args[0]); + } + case 2: + return aliasBankMap({ [args[0]]: args[1] }); + default: + throw new Error('aliasMap expects 1 or 2 arguments, received ' + args.length); + } +} + export function getSound(s) { - return soundMap.get()[s]; + if (typeof s !== 'string') { + console.warn(`getSound: expected string got "${s}". fall back to triangle`); + return soundMap.get().triangle; // is this good? + } + return soundMap.get()[s.toLowerCase()]; +} + +export const getAudioDevices = async () => { + await navigator.mediaDevices.getUserMedia({ audio: true }); + let mediaDevices = await navigator.mediaDevices.enumerateDevices(); + mediaDevices = mediaDevices.filter((device) => device.kind === 'audiooutput' && device.deviceId !== 'default'); + const devicesMap = new Map(); + devicesMap.set(DEFAULT_AUDIO_DEVICE_NAME, ''); + mediaDevices.forEach((device) => { + devicesMap.set(device.label, device.deviceId); + }); + return devicesMap; +}; + +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, + byteBeatExpression: '0', + delayfeedback: 0.5, + delaysync: 3 / 16, + 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({}); @@ -37,50 +186,82 @@ export const getAudioContext = () => { if (!audioContext) { return setDefaultAudioContext(); } + return audioContext; }; -let workletsLoading; - -function loadWorklets() { - if (workletsLoading) { - return workletsLoading; - } - workletsLoading = getAudioContext().audioWorklet.addModule(workletsUrl); - return workletsLoading; +export function getAudioContextCurrentTime() { + return getAudioContext().currentTime; } -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; +let workletsLoading; +function loadWorklets() { + if (!workletsLoading) { + const audioCtx = getAudioContext(); + workletsLoading = audioCtx.audioWorklet.addModule(workletsUrl); + } + + return workletsLoading; } // 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!'); + const { + disableWorklets = false, + maxPolyphony, + audioDeviceName = DEFAULT_AUDIO_DEVICE_NAME, + multiChannelOrbits = false, + } = options; + + setMaxPolyphony(maxPolyphony); + setMultiChannelOrbits(multiChannelOrbits); + if (typeof window === 'undefined') { + return; + } + + const audioCtx = getAudioContext(); + + if (audioDeviceName != null && audioDeviceName != DEFAULT_AUDIO_DEVICE_NAME) { + try { + const devices = await getAudioDevices(); + const id = devices.get(audioDeviceName); + const isValidID = (id ?? '').length > 0; + if (audioCtx.sinkId !== id && isValidID) { + await audioCtx.setSinkId(id); + } + logger( + `[superdough] Audio Device set to ${audioDeviceName}, it might take a few seconds before audio plays on all output channels`, + ); + } catch { + logger('[superdough] failed to set audio interface', 'warning'); } } -} + await audioCtx.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 = {}; @@ -114,7 +295,7 @@ export const connectToDestination = (input, channels = [0, 1]) => { }); stereoMix.connect(splitter); channels.forEach((ch, i) => { - splitter.connect(channelMerger, i % stereoMix.channelCount, clamp(ch, 0, ctx.destination.channelCount - 1)); + splitter.connect(channelMerger, i % stereoMix.channelCount, ch % ctx.destination.channelCount); }); }; @@ -127,7 +308,7 @@ export const panic = () => { channelMerger == null; }; -function getDelay(orbit, delaytime, delayfeedback, t) { +function getDelay(orbit, delaytime, delayfeedback, t, channels) { if (delayfeedback > maxfeedback) { //logger(`delayfeedback was clamped to ${maxfeedback} to save your ears`); } @@ -136,7 +317,7 @@ function getDelay(orbit, delaytime, delayfeedback, t) { const ac = getAudioContext(); const dly = ac.createFeedbackDelay(1, delaytime, delayfeedback); dly.start?.(t); // for some reason, this throws when audion extension is installed.. - connectToDestination(dly, [0, 1]); + connectToDestination(dly, channels); delays[orbit] = dly; } delays[orbit].delayTime.value !== delaytime && delays[orbit].delayTime.setValueAtTime(delaytime, t); @@ -144,26 +325,23 @@ 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) { - //gain +export function getLfo(audioContext, time, end, properties = {}) { + return getWorklet(audioContext, 'lfo-processor', { + frequency: 1, + depth: 1, + skew: 0, + phaseoffset: 0, + time, + end, + shape: 1, + dcoffset: -0.5, + ...properties, + }); +} + +function getPhaser(time, end, frequency = 1, depth = 0.5, centerFrequency = 1000, sweep = 2000) { const ac = getAudioContext(); - const lfoGain = ac.createGain(); - lfoGain.gain.value = sweep; - - //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 lfoGain = getLfo(ac, time, end, { frequency, depth: sweep * 2 }); //filters const numStages = 2; //num of filters in series @@ -186,16 +364,20 @@ 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) { +function getReverb(orbit, duration, fade, lp, dim, ir, channels) { // If no reverb has been created for a given orbit, create one if (!reverbs[orbit]) { const ac = getAudioContext(); const reverb = ac.createReverb(duration, fade, lp, dim, ir); - connectToDestination(reverb, [0, 1]); + connectToDestination(reverb, channels); reverbs[orbit] = reverb; } if ( @@ -218,11 +400,12 @@ function getReverb(orbit, duration, fade, lp, dim, ir) { export let analysers = {}, analysersData = {}; -export function getAnalyserById(id, fftSize = 1024) { +export function getAnalyserById(id, fftSize = 1024, smoothingTimeConstant = 0.5) { if (!analysers[id]) { // make sure this doesn't happen too often as it piles up garbage const analyserNode = getAudioContext().createAnalyser(); analyserNode.fftSize = fftSize; + analyserNode.smoothingTimeConstant = smoothingTimeConstant; // getDestination().connect(analyserNode); analysers[id] = analyserNode; analysersData[id] = new Float32Array(analysers[id].frequencyBinCount); @@ -260,8 +443,22 @@ export function resetGlobalEffects() { analysersData = {}; } -export const superdough = async (value, t, hapDuration, cps, cycle) => { +let activeSoundSources = new Map(); +//music programs/audio gear usually increments inputs/outputs from 1, we need to subtract 1 from the input because the webaudio API channels start at 0 + +function mapChannelNumbers(channels) { + return (Array.isArray(channels) ? channels : [channels]).map((ch) => ch - 1); +} + +export const superdough = async (value, t, hapDuration, cps = 0.5) => { const ac = getAudioContext(); + t = typeof t === 'string' && t.startsWith('=') ? Number(t.slice(1)) : ac.currentTime + t; + let { stretch } = value; + if (stretch != null) { + //account for phase vocoder latency + const latency = 0.04; + t = t - latency; + } if (typeof value !== 'object') { throw new Error( `expected hap.value to be an object, but got "${value}". Hint: append .note() or .s() to the end`, @@ -272,7 +469,7 @@ export const superdough = async (value, t, hapDuration, cps, cycle) => { // duration is passed as value too.. value.duration = hapDuration; // calculate absolute time - t = typeof t === 'string' && t.startsWith('=') ? Number(t.slice(1)) : ac.currentTime + t; + if (t < ac.currentTime) { console.warn( `[superdough]: cannot schedule sounds in the past (target: ${t.toFixed(2)}, now: ${ac.currentTime.toFixed(2)})`, @@ -285,15 +482,15 @@ export const superdough = async (value, t, hapDuration, cps, cycle) => { amdepth = 1, amskew = 0.5, amphase = 0, - 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, @@ -301,7 +498,7 @@ export const superdough = async (value, t, hapDuration, cps, cycle) => { lpdecay, lpsustain, lprelease, - resonance = 1, + resonance = getDefaultValue('resonance'), // high pass hpenv, hcutoff, @@ -309,7 +506,7 @@ export const superdough = async (value, t, hapDuration, cps, cycle) => { hpdecay, hpsustain, hprelease, - hresonance = 1, + hresonance = getDefaultValue('hresonance'), // band pass bpenv, bandf, @@ -317,11 +514,11 @@ export const superdough = async (value, t, hapDuration, cps, cycle) => { bpdecay, bpsustain, bprelease, - bandq = 1, - channels = [1, 2], + bandq = getDefaultValue('bandq'), + //phaser - phaser, - phaserdepth = 0.75, + phaserrate: phaser, + phaserdepth = getDefaultValue('phaserdepth'), phasersweep, phasercenter, // @@ -329,26 +526,26 @@ export const superdough = async (value, t, hapDuration, cps, cycle) => { 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'), + delaysync = getDefaultValue('delaysync'), + 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, @@ -356,30 +553,59 @@ export const superdough = async (value, t, hapDuration, cps, cycle) => { compressorRelease, } = value; - gain = nanFallback(gain, 1); + delaytime = delaytime ?? cycleToSeconds(delaysync, cps); - //music programs/audio gear usually increments inputs/outputs from 1, so imitate that behavior - channels = (Array.isArray(channels) ? channels : [channels]).map((ch) => ch - 1); + const orbitChannels = mapChannelNumbers( + multiChannelOrbits && orbit > 0 ? [orbit * 2 - 1, orbit * 2] : getDefaultValue('channels'), + ); + const channels = value.channels != null ? mapChannelNumbers(value.channels) : orbitChannels; + gain = applyGainCurve(nanFallback(gain, 1)); + postgain = applyGainCurve(postgain); + shapevol = applyGainCurve(shapevol); + distortvol = applyGainCurve(distortvol); + delay = applyGainCurve(delay); + velocity = applyGainCurve(velocity); gain *= velocity; // velocity currently only multiplies with gain. it might do other things in the future - let toDisconnect = []; // audio nodes that will be disconnected when the source has ended - const onended = () => { - toDisconnect.forEach((n) => n?.disconnect()); - }; + + const chainID = Math.round(Math.random() * 1000000); + + // oldest audio nodes will be destroyed if maximum polyphony is exceeded + for (let i = 0; i <= activeSoundSources.size - maxPolyphony; i++) { + const ch = activeSoundSources.entries().next(); + const source = ch.value[1]; + const chainID = ch.value[0]; + const endTime = t + 0.25; + source?.node?.gain?.linearRampToValueAtTime(0, endTime); + source?.stop?.(endTime); + activeSoundSources.delete(chainID); + } + + let audioNodes = []; + + if (['-', '~', '_'].includes(s)) { + return; + } if (bank && s) { s = `${bank}_${s}`; + value.s = s; } // get source AudioNode let sourceNode; if (source) { - sourceNode = source(t, value, hapDuration); + sourceNode = source(t, value, hapDuration, cps); } else if (getSound(s)) { const { onTrigger } = getSound(s); - const soundHandle = await onTrigger(t, value, onended); + const onEnded = () => { + audioNodes.forEach((n) => n?.disconnect()); + activeSoundSources.delete(chainID); + }; + const soundHandle = await onTrigger(t, value, onEnded); + if (soundHandle) { sourceNode = soundHandle.node; - soundHandle.stop(t + hapDuration); + activeSoundSources.set(chainID, soundHandle); } } else { throw new Error(`sound ${s} not found! Is it loaded?`); @@ -396,10 +622,13 @@ export const superdough = async (value, t, hapDuration, cps, cycle) => { } const chain = []; // audio nodes that will be connected to each other sequentially chain.push(sourceNode); + stretch !== undefined && chain.push(getWorklet(ac, 'phase-vocoder-processor', { pitchFactor: stretch })); // gain stage chain.push(gainNode(gain)); + //filter + const ftype = getFilterType(value.ftype); if (cutoff !== undefined) { let lp = () => createFilter( @@ -415,6 +644,8 @@ export const superdough = async (value, t, hapDuration, cps, cycle) => { t, t + hapDuration, fanchor, + ftype, + drive, ); chain.push(lp()); if (ftype === '24db') { @@ -503,7 +734,7 @@ export const superdough = async (value, t, hapDuration, cps, cycle) => { } // 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); } @@ -515,8 +746,9 @@ export const superdough = async (value, t, hapDuration, cps, cycle) => { // delay let delaySend; if (delay > 0 && delaytime > 0 && delayfeedback > 0) { - const delyNode = getDelay(orbit, delaytime, delayfeedback, t); - delaySend = effectSend(post, delyNode, delay); + const delayNode = getDelay(orbit, delaytime, delayfeedback, t, orbitChannels); + delaySend = effectSend(post, delayNode, delay); + audioNodes.push(delaySend); } // reverb let reverbSend; @@ -532,8 +764,9 @@ export const superdough = async (value, t, hapDuration, cps, cycle) => { } roomIR = await loadBuffer(url, ac, ir, 0); } - const reverbNode = getReverb(orbit, roomsize, roomfade, roomlp, roomdim, roomIR); + const reverbNode = getReverb(orbit, roomsize, roomfade, roomlp, roomdim, roomIR, orbitChannels); reverbSend = effectSend(post, reverbNode, room); + audioNodes.push(reverbSend); } // analyser @@ -541,14 +774,14 @@ export const superdough = async (value, t, hapDuration, cps, cycle) => { if (analyze) { const analyserNode = getAnalyserById(analyze, 2 ** (fft + 5)); analyserSend = effectSend(post, analyserNode, 1); + audioNodes.push(analyserSend); } // connect chain elements together chain.slice(1).reduce((last, current) => last.connect(current), chain[0]); - - // toDisconnect = all the node that should be disconnected in onended callback - // this is crucial for performance - toDisconnect = chain.concat([delaySend, reverbSend, analyserSend]); + audioNodes = audioNodes.concat(chain); }; -export const superdoughTrigger = (t, hap, ct, cps) => superdough(hap, t - ct, hap.duration / cps, cps); +export const superdoughTrigger = (t, hap, ct, cps) => { + superdough(hap, t - ct, hap.duration / cps, cps); +}; diff --git a/packages/superdough/synth.mjs b/packages/superdough/synth.mjs index 55ecc83f..13cfa13a 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, soundMap, getLfo } from './superdough.mjs'; import { applyFM, gainNode, @@ -8,6 +8,7 @@ import { getPitchEnvelope, getVibratoOscillator, webAudioTimeout, + getWorklet, } from './helpers.mjs'; import { getNoiseMix, getNoiseOscillator } from './noise.mjs'; @@ -24,8 +25,21 @@ const getFrequencyFromValue = (value) => { return Number(freq); }; +function destroyAudioWorkletNode(node) { + if (node == null) { + return; + } + node.disconnect(); + node.parameters.get('end')?.setValueAtTime(0, 0); +} const waveforms = ['triangle', 'square', 'sawtooth', 'sine']; +const waveformAliases = [ + ['tri', 'triangle'], + ['sqr', 'square'], + ['saw', 'sawtooth'], + ['sin', 'sine'], +]; const noises = ['pink', 'white', 'brown', 'crackle']; export function registerSynthSounds() { @@ -62,7 +76,9 @@ export function registerSynthSounds() { stop(envEnd); return { node, - stop: (releaseTime) => {}, + stop: (endTime) => { + stop(endTime); + }, }; }, { type: 'synth', prebake: true }, @@ -109,10 +125,12 @@ export function registerSynthSounds() { let envGain = gainNode(1); envGain = o.connect(envGain); - webAudioTimeout( + getParamADSR(envGain.gain, attack, decay, sustain, release, 0, 0.3 * gainAdjustment, begin, holdend, 'linear'); + + let timeoutNode = webAudioTimeout( ac, () => { - o.disconnect(); + destroyAudioWorkletNode(o); envGain.disconnect(); onended(); fm?.stop(); @@ -122,11 +140,164 @@ export function registerSynthSounds() { end, ); - getParamADSR(envGain.gain, attack, decay, sustain, release, 0, 0.3 * gainAdjustment, begin, holdend, 'linear'); + return { + node: envGain, + stop: (time) => { + timeoutNode.stop(time); + }, + }; + }, + { prebake: true, type: 'synth' }, + ); + + registerSound( + 'bytebeat', + (begin, value, onended) => { + const defaultBeats = [ + '(t%255 >= t/255%255)*255', + '(t*(t*8%60 <= 300)|(-t)*(t*4%512 < 256))+t/400', + 't', + 't*(t >> 10^t)', + 't&128', + 't&t>>8', + '((t%255+t%128+t%64+t%32+t%16+t%127.8+t%64.8+t%32.8+t%16.8)/3)', + '((t%64+t%63.8+t%64.15+t%64.35+t%63.5)/1.25)', + '(t&(t>>7)-t)', + '(sin(t*PI/128)*127+127)', + '((t^t/2+t+64*(sin((t*PI/64)+(t*PI/32768))+64))%128*2)', + '((t^t/2+t+64*(cos >> 0))%127.85*2)', + '((t^t/2+t+64)%128*2)', + '(((t * .25)^(t * .25)/100+(t * .25))%128)*2', + '((t^t/2+t+64)%7 * 24)', + ]; + const { n = 0 } = value; + const frequency = getFrequencyFromValue(value); + const { byteBeatExpression = defaultBeats[n % defaultBeats.length], byteBeatStartTime } = value; + + const ac = getAudioContext(); + + let { duration } = value; + const [attack, decay, sustain, release] = getADSRValues( + [value.attack, value.decay, value.sustain, value.release], + 'linear', + [0.001, 0.05, 0.6, 0.01], + ); + const holdend = begin + duration; + const end = holdend + release + 0.01; + + let o = getWorklet( + ac, + 'byte-beat-processor', + { + frequency, + begin, + end, + }, + { + outputChannelCount: [2], + }, + ); + + o.port.postMessage({ codeText: byteBeatExpression, byteBeatStartTime, frequency }); + + let envGain = gainNode(1); + envGain = o.connect(envGain); + + getParamADSR(envGain.gain, attack, decay, sustain, release, 0, 1, begin, holdend, 'linear'); + + let timeoutNode = webAudioTimeout( + ac, + () => { + destroyAudioWorkletNode(o); + envGain.disconnect(); + onended(); + }, + begin, + end, + ); return { node: envGain, - stop: (time) => {}, + stop: (time) => { + timeoutNode.stop(time); + }, + }; + }, + { prebake: true, type: 'synth' }, + ); + + registerSound( + 'pulse', + (begin, value, onended) => { + const ac = getAudioContext(); + let { pwrate, pwsweep } = value; + if (pwsweep == null) { + if (pwrate != null) { + pwsweep = 0.3; + } else { + pwsweep = 0; + } + } + + if (pwrate == null && pwsweep != null) { + pwrate = 1; + } + + let { duration, pw: pulsewidth = 0.5 } = value; + const frequency = getFrequencyFromValue(value); + + const [attack, decay, sustain, release] = getADSRValues( + [value.attack, value.decay, value.sustain, value.release], + 'linear', + [0.001, 0.05, 0.6, 0.01], + ); + const holdend = begin + duration; + const end = holdend + release + 0.01; + let o = getWorklet( + ac, + 'pulse-oscillator', + { + frequency, + begin, + end, + pulsewidth, + }, + { + outputChannelCount: [2], + }, + ); + + getPitchEnvelope(o.parameters.get('detune'), value, begin, holdend); + const vibratoOscillator = getVibratoOscillator(o.parameters.get('detune'), value, begin); + const fm = applyFM(o.parameters.get('frequency'), value, begin); + let envGain = gainNode(1); + envGain = o.connect(envGain); + + getParamADSR(envGain.gain, attack, decay, sustain, release, 0, 1, begin, holdend, 'linear'); + let lfo; + if (pwsweep != 0) { + lfo = getLfo(ac, begin, end, { frequency: pwrate, depth: pwsweep }); + lfo.connect(o.parameters.get('pulsewidth')); + } + let timeoutNode = webAudioTimeout( + ac, + () => { + destroyAudioWorkletNode(o); + destroyAudioWorkletNode(lfo); + envGain.disconnect(); + onended(); + fm?.stop(); + vibratoOscillator?.stop(); + }, + begin, + end, + ); + + return { + node: envGain, + stop: (time) => { + timeoutNode.stop(time); + }, }; }, { prebake: true, type: 'synth' }, @@ -169,12 +340,15 @@ export function registerSynthSounds() { stop(envEnd); return { node, - stop: (releaseTime) => {}, + stop: (endTime) => { + stop(endTime); + }, }; }, { type: 'synth', prebake: true }, ); }); + waveformAliases.forEach(([alias, actual]) => soundMap.set({ ...soundMap.get(), [alias]: soundMap.get()[actual] })); } export function waveformN(partials, type) { diff --git a/packages/superdough/util.mjs b/packages/superdough/util.mjs index 4e3c7e41..ea63a16f 100644 --- a/packages/superdough/util.mjs +++ b/packages/superdough/util.mjs @@ -68,3 +68,7 @@ export const _mod = (n, m) => ((n % m) + m) % m; export const getSoundIndex = (n, numSounds) => { return _mod(Math.round(nanFallback(n, 0)), numSounds); }; + +export function cycleToSeconds(cycle, cps) { + return cycle / cps; +} diff --git a/packages/superdough/vite.config.js b/packages/superdough/vite.config.js index d94e37f4..10ac0f06 100644 --- a/packages/superdough/vite.config.js +++ b/packages/superdough/vite.config.js @@ -1,10 +1,11 @@ import { defineConfig } from 'vite'; import { dependencies } from './package.json'; import { resolve } from 'path'; +import bundleAudioWorkletPlugin from 'vite-plugin-bundle-audioworklet'; // https://vitejs.dev/config/ export default defineConfig({ - plugins: [], + plugins: [bundleAudioWorkletPlugin()], build: { lib: { entry: resolve(__dirname, 'index.mjs'), diff --git a/packages/superdough/worklets.mjs b/packages/superdough/worklets.mjs index 81a9c908..ffa2165b 100644 --- a/packages/superdough/worklets.mjs +++ b/packages/superdough/worklets.mjs @@ -1,7 +1,13 @@ // 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 -import { clamp, _mod } from './util.mjs'; -// const clamp = (num, min, max) => Math.min(Math.max(num, min), max); +// TOFIX: THIS FILE DOES NOT SUPPORT IMPORTS ON DEPOLYMENT + +import OLAProcessor from './ola-processor'; +import FFT from './fft.js'; + +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 @@ -27,8 +33,28 @@ function polyBlep(phase, dt) { } 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); + 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; @@ -48,43 +74,31 @@ const waveshapes = { const v = 2 * phase - 1; return v - polyBlep(phase, dt); }, - ramp(phase) { - return phase; - }, - saw(phase) { - return 1 - phase; - }, - tri(phase, skew = 0.5) { - const x = 1 - skew; - if (phase >= skew) { - return 1 / x - phase / x; - } - return phase / skew; - }, - square(phase, skew = 0.5) { - if (phase >= skew) { - return 0; - } - return 1; - }, }; - -class AMProcessor extends AudioWorkletProcessor { +function getParamValue(block, param) { + if (param.length > 1) { + return param[block]; + } + return param[0]; +} +const waveShapeNames = Object.keys(waveshapes); +class LFOProcessor extends AudioWorkletProcessor { static get parameterDescriptors() { return [ - { name: 'cps', defaultValue: 0.5 }, - { name: 'speed', defaultValue: 0.5 }, - { name: 'cycle', defaultValue: 0 }, + { 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; - this.started = false; } incrementPhase(dt) { @@ -95,39 +109,41 @@ class AMProcessor extends AudioWorkletProcessor { } process(inputs, outputs, parameters) { - const input = inputs[0]; - const output = outputs[0]; - const hasInput = !(input[0] === undefined); - if (this.started && !hasInput) { + // eslint-disable-next-line no-undef + if (currentTime >= parameters.end[0]) { return false; } - this.started = hasInput; - const speed = parameters['speed'][0]; - const cps = parameters['cps'][0]; - const cycle = parameters['cycle'][0]; + 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 frequency = speed * cps; + const dcoffset = parameters['dcoffset'][0]; + const shape = waveShapeNames[parameters['shape'][0]]; + + const blockSize = output[0].length ?? 0; + if (this.phase == null) { - const secondsPassed = cycle / cps; - this.phase = _mod(secondsPassed * frequency + phaseoffset, 1); + 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 < input.length; i++) { - const modval = clamp(waveshapes.tri(this.phase, skew) * depth + (1 - depth), 0, 1); - output[i][n] = input[i][n] * modval; + 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('am-processor', AMProcessor); +registerProcessor('lfo-processor', LFOProcessor); class CoarseProcessor extends AudioWorkletProcessor { static get parameterDescriptors() { @@ -233,6 +249,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.13); + // 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 [ @@ -280,6 +367,11 @@ function getUnisonDetune(unison, detune, voiceIndex) { } return lerp(-detune * 0.5, detune * 0.5, voiceIndex / (unison - 1)); } + +function applySemitoneDetuneToFrequency(frequency, detune) { + return frequency * Math.pow(2, detune / 12); +} + class SuperSawOscillatorProcessor extends AudioWorkletProcessor { constructor() { super(); @@ -356,7 +448,7 @@ class SuperSawOscillatorProcessor extends AudioWorkletProcessor { const isOdd = (n & 1) == 1; //applies unison "spread" detune in semitones - const freq = frequency * Math.pow(2, getUnisonDetune(voices, freqspread, n) / 12); + const freq = applySemitoneDetuneToFrequency(frequency, getUnisonDetune(voices, freqspread, n)); let gainL = gain1; let gainR = gain2; // invert right and left gain @@ -386,3 +478,480 @@ class SuperSawOscillatorProcessor extends AudioWorkletProcessor { } registerProcessor('supersaw-oscillator', SuperSawOscillatorProcessor); + +// Phase Vocoder sourced from // sourced from https://github.com/olvb/phaze/tree/master?tab=readme-ov-file +const BUFFERED_BLOCK_SIZE = 2048; + +function genHannWindow(length) { + let win = new Float32Array(length); + for (var i = 0; i < length; i++) { + win[i] = 0.5 * (1 - Math.cos((2 * Math.PI * i) / length)); + } + return win; +} + +class PhaseVocoderProcessor extends OLAProcessor { + static get parameterDescriptors() { + return [ + { + name: 'pitchFactor', + defaultValue: 1.0, + }, + ]; + } + + constructor(options) { + options.processorOptions = { + blockSize: BUFFERED_BLOCK_SIZE, + }; + super(options); + + this.fftSize = this.blockSize; + this.timeCursor = 0; + + this.hannWindow = genHannWindow(this.blockSize); + // prepare FFT and pre-allocate buffers + this.fft = new FFT(this.fftSize); + this.freqComplexBuffer = this.fft.createComplexArray(); + this.freqComplexBufferShifted = this.fft.createComplexArray(); + this.timeComplexBuffer = this.fft.createComplexArray(); + this.magnitudes = new Float32Array(this.fftSize / 2 + 1); + this.peakIndexes = new Int32Array(this.magnitudes.length); + this.nbPeaks = 0; + } + + processOLA(inputs, outputs, parameters) { + // no automation, take last value + + let pitchFactor = parameters.pitchFactor[parameters.pitchFactor.length - 1]; + + if (pitchFactor < 0) { + pitchFactor = pitchFactor * 0.25; + } + pitchFactor = Math.max(0, pitchFactor + 1); + + for (var i = 0; i < this.nbInputs; i++) { + for (var j = 0; j < inputs[i].length; j++) { + // big assumption here: output is symetric to input + var input = inputs[i][j]; + var output = outputs[i][j]; + + this.applyHannWindow(input); + + this.fft.realTransform(this.freqComplexBuffer, input); + + this.computeMagnitudes(); + this.findPeaks(); + this.shiftPeaks(pitchFactor); + + this.fft.completeSpectrum(this.freqComplexBufferShifted); + this.fft.inverseTransform(this.timeComplexBuffer, this.freqComplexBufferShifted); + this.fft.fromComplexArray(this.timeComplexBuffer, output); + this.applyHannWindow(output); + } + } + + this.timeCursor += this.hopSize; + } + + /** Apply Hann window in-place */ + applyHannWindow(input) { + for (var i = 0; i < this.blockSize; i++) { + input[i] = input[i] * this.hannWindow[i] * 1.62; + } + } + + /** Compute squared magnitudes for peak finding **/ + computeMagnitudes() { + var i = 0, + j = 0; + while (i < this.magnitudes.length) { + let real = this.freqComplexBuffer[j]; + let imag = this.freqComplexBuffer[j + 1]; + // no need to sqrt for peak finding + this.magnitudes[i] = real ** 2 + imag ** 2; + i += 1; + j += 2; + } + } + + /** Find peaks in spectrum magnitudes **/ + findPeaks() { + this.nbPeaks = 0; + var i = 2; + let end = this.magnitudes.length - 2; + + while (i < end) { + let mag = this.magnitudes[i]; + + if (this.magnitudes[i - 1] >= mag || this.magnitudes[i - 2] >= mag) { + i++; + continue; + } + if (this.magnitudes[i + 1] >= mag || this.magnitudes[i + 2] >= mag) { + i++; + continue; + } + + this.peakIndexes[this.nbPeaks] = i; + this.nbPeaks++; + i += 2; + } + } + + /** Shift peaks and regions of influence by pitchFactor into new specturm */ + shiftPeaks(pitchFactor) { + // zero-fill new spectrum + this.freqComplexBufferShifted.fill(0); + + for (var i = 0; i < this.nbPeaks; i++) { + let peakIndex = this.peakIndexes[i]; + let peakIndexShifted = Math.round(peakIndex * pitchFactor); + + if (peakIndexShifted > this.magnitudes.length) { + break; + } + + // find region of influence + var startIndex = 0; + var endIndex = this.fftSize; + if (i > 0) { + let peakIndexBefore = this.peakIndexes[i - 1]; + startIndex = peakIndex - Math.floor((peakIndex - peakIndexBefore) / 2); + } + if (i < this.nbPeaks - 1) { + let peakIndexAfter = this.peakIndexes[i + 1]; + endIndex = peakIndex + Math.ceil((peakIndexAfter - peakIndex) / 2); + } + + // shift whole region of influence around peak to shifted peak + let startOffset = startIndex - peakIndex; + let endOffset = endIndex - peakIndex; + for (var j = startOffset; j < endOffset; j++) { + let binIndex = peakIndex + j; + let binIndexShifted = peakIndexShifted + j; + + if (binIndexShifted >= this.magnitudes.length) { + break; + } + + // apply phase correction + let omegaDelta = (2 * Math.PI * (binIndexShifted - binIndex)) / this.fftSize; + let phaseShiftReal = Math.cos(omegaDelta * this.timeCursor); + let phaseShiftImag = Math.sin(omegaDelta * this.timeCursor); + + let indexReal = binIndex * 2; + let indexImag = indexReal + 1; + let valueReal = this.freqComplexBuffer[indexReal]; + let valueImag = this.freqComplexBuffer[indexImag]; + + let valueShiftedReal = valueReal * phaseShiftReal - valueImag * phaseShiftImag; + let valueShiftedImag = valueReal * phaseShiftImag + valueImag * phaseShiftReal; + + let indexShiftedReal = binIndexShifted * 2; + let indexShiftedImag = indexShiftedReal + 1; + this.freqComplexBufferShifted[indexShiftedReal] += valueShiftedReal; + this.freqComplexBufferShifted[indexShiftedImag] += valueShiftedImag; + } + } + } +} + +registerProcessor('phase-vocoder-processor', PhaseVocoderProcessor); + +// Adapted from https://www.musicdsp.org/en/latest/Effects/221-band-limited-pwm-generator.html +class PulseOscillatorProcessor extends AudioWorkletProcessor { + constructor() { + super(); + this.pi = _PI; + this.phi = -this.pi; // phase + this.Y0 = 0; // feedback memories + this.Y1 = 0; + this.PW = this.pi; // pulse width + this.B = 2.3; // feedback coefficient + this.dphif = 0; // filtered phase increment + this.envf = 0; // filtered envelope + } + + static get parameterDescriptors() { + return [ + { + name: 'begin', + defaultValue: 0, + max: Number.POSITIVE_INFINITY, + min: 0, + }, + + { + name: 'end', + defaultValue: 0, + max: Number.POSITIVE_INFINITY, + min: 0, + }, + + { + name: 'frequency', + defaultValue: 440, + min: Number.EPSILON, + }, + { + name: 'detune', + defaultValue: 0, + min: Number.NEGATIVE_INFINITY, + max: Number.POSITIVE_INFINITY, + }, + { + name: 'pulsewidth', + defaultValue: 1, + min: 0, + max: Number.POSITIVE_INFINITY, + }, + ]; + } + + process(inputs, outputs, params) { + if (this.disconnected) { + return false; + } + if (currentTime <= params.begin[0]) { + return true; + } + if (currentTime >= params.end[0]) { + return false; + } + const output = outputs[0]; + let env = 1, + dphi; + + for (let i = 0; i < (output[0].length ?? 0); i++) { + const pw = (1 - clamp(getParamValue(i, params.pulsewidth), -0.99, 0.99)) * this.pi; + const detune = getParamValue(i, params.detune); + const freq = applySemitoneDetuneToFrequency(getParamValue(i, params.frequency), detune / 100); + + dphi = freq * (this.pi / (sampleRate * 0.5)); // phase increment + this.dphif += 0.1 * (dphi - this.dphif); + + env *= 0.9998; // exponential decay envelope + this.envf += 0.1 * (env - this.envf); + + // Feedback coefficient control + this.B = 2.3 * (1 - 0.0001 * freq); // feedback limitation + if (this.B < 0) this.B = 0; + + // Waveform generation (half-Tomisawa oscillators) + this.phi += this.dphif; // phase increment + if (this.phi >= this.pi) this.phi -= 2 * this.pi; // phase wrapping + + // First half-Tomisawa generator + let out0 = Math.cos(this.phi + this.B * this.Y0); // self-phase modulation + this.Y0 = 0.5 * (out0 + this.Y0); // anti-hunting filter + + // Second half-Tomisawa generator (with phase offset for pulse width) + let out1 = Math.cos(this.phi + this.B * this.Y1 + pw); + this.Y1 = 0.5 * (out1 + this.Y1); // anti-hunting filter + + for (let o = 0; o < output.length; o++) { + // Combination of both oscillators with envelope applied + output[o][i] = 0.15 * (out0 - out1) * this.envf; + } + } + + return true; // keep the audio processing going + } +} + +registerProcessor('pulse-oscillator', PulseOscillatorProcessor); + +/** BYTE BEATS */ +const chyx = { + /*bit*/ bitC: function (x, y, z) { + return x & y ? z : 0; + }, + /*bit reverse*/ br: function (x, size = 8) { + if (size > 32) { + throw new Error('br() Size cannot be greater than 32'); + } else { + let result = 0; + for (let idx = 0; idx < size - 0; idx++) { + result += chyx.bitC(x, 2 ** idx, 2 ** (size - (idx + 1))); + } + return result; + } + }, + /*sin that loops every 128 "steps", instead of every pi steps*/ sinf: function (x) { + return Math.sin(x / (128 / Math.PI)); + }, + /*cos that loops every 128 "steps", instead of every pi steps*/ cosf: function (x) { + return Math.cos(x / (128 / Math.PI)); + }, + /*tan that loops every 128 "steps", instead of every pi steps*/ tanf: function (x) { + return Math.tan(x / (128 / Math.PI)); + }, + /*converts t into a string composed of it's bits, regex's that*/ regG: function (t, X) { + return X.test(t.toString(2)); + }, +}; + +// Create shortened Math functions +let mathParams, byteBeatHelperFuncs; +function getByteBeatFunc(codetext) { + if ((mathParams || byteBeatHelperFuncs) == null) { + mathParams = Object.getOwnPropertyNames(Math); + byteBeatHelperFuncs = mathParams.map((k) => Math[k]); + const chyxNames = Object.getOwnPropertyNames(chyx); + const chyxFuncs = chyxNames.map((k) => chyx[k]); + mathParams.push('int', 'window', ...chyxNames); + byteBeatHelperFuncs.push(Math.floor, globalThis, ...chyxFuncs); + } + return new Function(...mathParams, 't', `return 0,\n${codetext || 0};`).bind(globalThis, ...byteBeatHelperFuncs); +} + +class ByteBeatProcessor extends AudioWorkletProcessor { + constructor() { + super(); + this.port.onmessage = (event) => { + let { codeText } = event.data; + const { byteBeatStartTime } = event.data; + if (byteBeatStartTime != null) { + this.t = 0; + this.initialOffset = Math.floor(byteBeatStartTime); + } + + //Optimization pulled from dollchan.net: https://github.com/Chasyxx/EnBeat_NEW, it seemed important + //Optimize code like eval(unescape(escape`XXXX`.replace(/u(..)/g,"$1%"))) + codeText = codeText + .trim() + .replace( + /^eval\(unescape\(escape(?:`|\('|\("|\(`)(.*?)(?:`|'\)|"\)|`\)).replace\(\/u\(\.\.\)\/g,["'`]\$1%["'`]\)\)\)$/, + (match, m1) => unescape(escape(m1).replace(/u(..)/g, '$1%')), + ); + + this.func = getByteBeatFunc(codeText); + }; + this.initialOffset = null; + this.t = null; + this.func = null; + } + + static get parameterDescriptors() { + return [ + { + name: 'begin', + defaultValue: 0, + max: Number.POSITIVE_INFINITY, + min: 0, + }, + { + name: 'frequency', + defaultValue: 440, + min: Number.EPSILON, + }, + { + name: 'detune', + defaultValue: 0, + min: Number.NEGATIVE_INFINITY, + max: Number.POSITIVE_INFINITY, + }, + { + name: 'end', + defaultValue: 0, + max: Number.POSITIVE_INFINITY, + min: 0, + }, + ]; + } + + process(inputs, outputs, params) { + if (this.disconnected) { + return false; + } + if (currentTime <= params.begin[0]) { + return true; + } + if (currentTime >= params.end[0]) { + return false; + } + if (this.t == null) { + this.t = params.begin[0] * sampleRate; + } + const output = outputs[0]; + for (let i = 0; i < output[0].length; i++) { + const detune = getParamValue(i, params.detune); + const freq = applySemitoneDetuneToFrequency(getParamValue(i, params.frequency), detune / 100); + let local_t = (this.t / (sampleRate / 256)) * freq + this.initialOffset; + const funcValue = this.func(local_t); + let signal = (funcValue & 255) / 127.5 - 1; + const out = signal * 0.2; + for (let c = 0; c < output.length; c++) { + //prevent speaker blowout via clipping if threshold exceeds + output[c][i] = clamp(out, -0.4, 0.4); + } + this.t = this.t + 1; + } + + return true; // keep the audio processing going + } +} + +registerProcessor('byte-beat-processor', ByteBeatProcessor); + + +class AMProcessor extends AudioWorkletProcessor { + static get parameterDescriptors() { + return [ + { name: 'cps', defaultValue: 0.5 }, + { name: 'speed', defaultValue: 0.5 }, + { name: 'cycle', defaultValue: 0 }, + { name: 'skew', defaultValue: 0.5 }, + { name: 'depth', defaultValue: 1 }, + { name: 'phaseoffset', defaultValue: 0 }, + ]; + } + + constructor() { + super(); + this.phase; + this.started = false; + } + + incrementPhase(dt) { + this.phase += dt; + if (this.phase > 1.0) { + this.phase = this.phase - 1; + } + } + + 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 speed = parameters['speed'][0]; + const cps = parameters['cps'][0]; + const cycle = parameters['cycle'][0]; + const depth = parameters['depth'][0]; + const skew = parameters['skew'][0]; + const phaseoffset = parameters['phaseoffset'][0]; + + const frequency = speed * cps; + if (this.phase == null) { + const secondsPassed = cycle / cps; + this.phase = _mod(secondsPassed * 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 < input.length; i++) { + const modval = clamp(waveshapes.tri(this.phase, skew) * depth + (1 - depth), 0, 1); + output[i][n] = input[i][n] * modval; + } + this.incrementPhase(dt); + } + return true; + } +} +registerProcessor('am-processor', AMProcessor); diff --git a/packages/tidal/package.json b/packages/tidal/package.json new file mode 100644 index 00000000..960b0900 --- /dev/null +++ b/packages/tidal/package.json @@ -0,0 +1,29 @@ +{ + "name": "@strudel/tidal", + "version": "0.2.0", + "private": true, + "description": "Experimental Tidal Code interpreter", + "module": "tidal.mjs", + "repository": { + "type": "git", + "url": "git+https://codeberg.org/uzu/strudel/src/branch/main/packages/tidal" + }, + "keywords": [ + "haskell", + "javascript" + ], + "author": "Felix Roos ", + "license": "AGPL-3.0-or-later", + "bugs": { + "url": "https://codeberg.org/uzu/strudel/issues" + }, + "homepage": "https://codeberg.org/uzu/strudel/src/branch/main/packages/hs2js", + "dependencies": { + "@strudel/core": "workspace:*", + "@strudel/mini": "workspace:*", + "hs2js": "workspace:*" + }, + "devDependencies": { + "vite": "^6.0.11" + } +} 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..614e86f7 100644 --- a/packages/tonal/package.json +++ b/packages/tonal/package.json @@ -1,6 +1,6 @@ { "name": "@strudel/tonal", - "version": "1.0.1", + "version": "1.2.2", "description": "Tonal functions for strudel", "main": "index.mjs", "publishConfig": { @@ -14,7 +14,7 @@ "type": "module", "repository": { "type": "git", - "url": "git+https://github.com/tidalcycles/strudel.git" + "url": "git+https://codeberg.org/uzu/strudel.git" }, "keywords": [ "tidalcycles", @@ -26,17 +26,17 @@ "author": "Felix Roos ", "license": "AGPL-3.0-or-later", "bugs": { - "url": "https://github.com/tidalcycles/strudel/issues" + "url": "https://codeberg.org/uzu/strudel/issues" }, - "homepage": "https://github.com/tidalcycles/strudel#readme", + "homepage": "https://codeberg.org/uzu/strudel#readme", "dependencies": { "@strudel/core": "workspace:*", - "@tonaljs/tonal": "^4.7.2", + "@tonaljs/tonal": "^4.10.0", "chord-voicings": "^0.0.1", - "webmidi": "^3.1.8" + "webmidi": "^3.1.12" }, "devDependencies": { - "vite": "^5.0.10", - "vitest": "^1.1.0" + "vite": "^6.0.11", + "vitest": "^3.0.4" } } diff --git a/packages/tonal/test/tonal.test.mjs b/packages/tonal/test/tonal.test.mjs index 8dd0e186..cd8b3c88 100644 --- a/packages/tonal/test/tonal.test.mjs +++ b/packages/tonal/test/tonal.test.mjs @@ -1,6 +1,6 @@ /* tonal.test.mjs - -Copyright (C) 2022 Strudel contributors - see +Copyright (C) 2022 Strudel contributors - see 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 . */ @@ -25,28 +25,35 @@ describe('tonal', () => { }); it('scale with n values', () => { expect( - n(0, 1, 2) + n(seq(0, 1, 2)) .scale('C major') .firstCycleValues.map((h) => h.note), ).toEqual(['C3', 'D3', 'E3']); }); it('scale with colon', () => { expect( - n(0, 1, 2) + n(seq(0, 1, 2)) .scale('C:major') .firstCycleValues.map((h) => h.note), ).toEqual(['C3', 'D3', 'E3']); }); + it('scale without tonic', () => { + expect( + n(seq(0, 1, 2)) + .scale('major') + .firstCycleValues.map((h) => h.note), + ).toEqual(['C3', 'D3', 'E3']); + }); it('scale with mininotation colon', () => { expect( - n(0, 1, 2) + n(seq(0, 1, 2)) .scale(mini('C:major')) .firstCycleValues.map((h) => h.note), ).toEqual(['C3', 'D3', 'E3']); }); it('transposes note numbers with interval numbers', () => { expect( - note(40, 40, 40) + note(seq(40, 40, 40)) .transpose(0, 1, 2) .firstCycleValues.map((h) => h.note), ).toEqual([40, 41, 42]); @@ -54,7 +61,7 @@ describe('tonal', () => { }); it('transposes note numbers with interval strings', () => { expect( - note(40, 40, 40) + note(seq(40, 40, 40)) .transpose('1P', '2M', '3m') .firstCycleValues.map((h) => h.note), ).toEqual([40, 42, 43]); @@ -62,7 +69,7 @@ describe('tonal', () => { }); it('transposes note strings with interval numbers', () => { expect( - note('c', 'c', 'c') + note(seq('c', 'c', 'c')) .transpose(0, 1, 2) .firstCycleValues.map((h) => h.note), ).toEqual(['C', 'Db', 'D']); @@ -70,7 +77,7 @@ describe('tonal', () => { }); it('transposes note strings with interval strings', () => { expect( - note('c', 'c', 'c') + note(seq('c', 'c', 'c')) .transpose('1P', '2M', '3m') .firstCycleValues.map((h) => h.note), ).toEqual(['C', 'D', 'Eb']); diff --git a/packages/tonal/test/tonleiter.test.mjs b/packages/tonal/test/tonleiter.test.mjs index e1a69357..b53a8f40 100644 --- a/packages/tonal/test/tonleiter.test.mjs +++ b/packages/tonal/test/tonleiter.test.mjs @@ -1,6 +1,6 @@ /* tonleiter.test.mjs - -Copyright (C) 2022 Strudel contributors - see +Copyright (C) 2022 Strudel contributors - see 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 . */ diff --git a/packages/tonal/tonal.mjs b/packages/tonal/tonal.mjs index 4c25d23e..a425782d 100644 --- a/packages/tonal/tonal.mjs +++ b/packages/tonal/tonal.mjs @@ -1,6 +1,6 @@ /* tonal.mjs - -Copyright (C) 2022 Strudel contributors - see +Copyright (C) 2022 Strudel contributors - see 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 . */ @@ -14,7 +14,7 @@ function scaleStep(step, scale) { scale = scale.replaceAll(':', ' '); step = Math.ceil(step); let { intervals, tonic, empty } = Scale.get(scale); - if ((empty && isNote(scale)) || (!empty && !tonic)) { + if ((empty && isNote(scale)) || (empty && !tonic)) { throw new Error(`incomplete scale. Make sure to use ":" instead of spaces, example: .scale("C:major")`); } else if (empty) { throw new Error(`invalid scale "${scale}"`); @@ -249,5 +249,5 @@ export const scale = register( ); }, true, - true, // preserve tactus + true, // preserve step count ); diff --git a/packages/tonal/tonleiter.mjs b/packages/tonal/tonleiter.mjs index 15288fcc..3814394f 100644 --- a/packages/tonal/tonleiter.mjs +++ b/packages/tonal/tonleiter.mjs @@ -178,7 +178,7 @@ export function renderVoicing({ chord, dictionary, offset = 0, n, mode = 'below' return notes; } -// https://github.com/tidalcycles/strudel/blob/14184993d0ee7d69c47df57ac864a1a0f99a893f/packages/tonal/tonleiter.mjs +// https://codeberg.org/uzu/strudel/blob/14184993d0ee7d69c47df57ac864a1a0f99a893f/packages/tonal/tonleiter.mjs const steps = [1, 0, 2, 0, 3, 4, 0, 5, 0, 6, 0, 7]; const notes = ['C', '', 'D', '', 'E', 'F', '', 'G', '', 'A', '', 'B']; const noteLetters = ['C', 'D', 'E', 'F', 'G', 'A', 'B']; diff --git a/packages/tonal/voicings.mjs b/packages/tonal/voicings.mjs index 0a08575d..d81911e0 100644 --- a/packages/tonal/voicings.mjs +++ b/packages/tonal/voicings.mjs @@ -1,6 +1,6 @@ /* voicings.mjs - -Copyright (C) 2022 Strudel contributors - see +Copyright (C) 2022 Strudel contributors - see 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 . */ diff --git a/packages/transpiler/package.json b/packages/transpiler/package.json index 12038fc4..2a5e3977 100644 --- a/packages/transpiler/package.json +++ b/packages/transpiler/package.json @@ -1,6 +1,6 @@ { "name": "@strudel/transpiler", - "version": "1.0.1", + "version": "1.2.2", "description": "Transpiler for strudel user code. Converts syntactically correct but semantically meaningless JS into evaluatable strudel code.", "main": "index.mjs", "type": "module", @@ -14,7 +14,7 @@ }, "repository": { "type": "git", - "url": "git+https://github.com/tidalcycles/strudel.git" + "url": "git+https://codeberg.org/uzu/strudel.git" }, "keywords": [ "tidalcycles", @@ -26,18 +26,18 @@ "author": "Felix Roos ", "license": "AGPL-3.0-or-later", "bugs": { - "url": "https://github.com/tidalcycles/strudel/issues" + "url": "https://codeberg.org/uzu/strudel/issues" }, - "homepage": "https://github.com/tidalcycles/strudel#readme", + "homepage": "https://codeberg.org/uzu/strudel#readme", "dependencies": { "@strudel/core": "workspace:*", "@strudel/mini": "workspace:*", - "acorn": "^8.11.3", + "acorn": "^8.14.0", "escodegen": "^2.1.0", - "estree-walker": "^3.0.1" + "estree-walker": "^3.0.3" }, "devDependencies": { - "vite": "^5.0.10", - "vitest": "^1.1.0" + "vite": "^6.0.11", + "vitest": "^3.0.4" } } diff --git a/packages/transpiler/test/transpiler.test.mjs b/packages/transpiler/test/transpiler.test.mjs index 988479b4..02970cf4 100644 --- a/packages/transpiler/test/transpiler.test.mjs +++ b/packages/transpiler/test/transpiler.test.mjs @@ -1,6 +1,6 @@ /* transpiler.test.mjs - -Copyright (C) 2022 Strudel contributors - see +Copyright (C) 2022 Strudel contributors - see 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 . */ diff --git a/packages/transpiler/transpiler.mjs b/packages/transpiler/transpiler.mjs index 95156664..fea6bad4 100644 --- a/packages/transpiler/transpiler.mjs +++ b/packages/transpiler/transpiler.mjs @@ -8,6 +8,16 @@ export function registerWidgetType(type) { widgetMethods.push(type); } +let languages = new Map(); +// config = { getLocations: (code: string, offset?: number) => number[][] } +// see mondough.mjs for example use +// the language will kick in when the code contains a template literal of type +// example: mondo`...` will use language of type "mondo" +// TODO: refactor tidal.mjs to use this +export function registerLanguage(type, config) { + languages.set(type, config); +} + export function transpiler(input, options = {}) { const { wrapAsync = false, addReturn = true, emitMiniLocations = true, emitWidgets = true } = options; @@ -19,13 +29,42 @@ export function transpiler(input, options = {}) { let miniLocations = []; const collectMiniLocations = (value, node) => { - const leafLocs = getLeafLocations(`"${value}"`, node.start, input); - miniLocations = miniLocations.concat(leafLocs); + const minilang = languages.get('minilang'); + if (minilang) { + const code = `[${value}]`; + const locs = minilang.getLocations(code, node.start); + miniLocations = miniLocations.concat(locs); + } else { + const leafLocs = getLeafLocations(`"${value}"`, node.start, input); + miniLocations = miniLocations.concat(leafLocs); + } }; let widgets = []; walk(ast, { enter(node, parent /* , prop, index */) { + if (isLanguageLiteral(node)) { + const { name } = node.tag; + const language = languages.get(name); + const code = node.quasi.quasis[0].value.raw; + const offset = node.quasi.start + 1; + if (emitMiniLocations) { + const locs = language.getLocations(code, offset); + miniLocations = miniLocations.concat(locs); + } + this.skip(); + return this.replace(languageWithLocation(name, code, offset)); + } + if (isTemplateLiteral(node, 'tidal')) { + 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; @@ -59,6 +98,7 @@ export function transpiler(input, options = {}) { to: node.end, index, type, + id: options.id, }; emitWidgets && widgets.push(widgetConfig); return this.replace(widgetWithLocation(node, widgetConfig)); @@ -73,8 +113,18 @@ export function transpiler(input, options = {}) { leave(node, parent, prop, index) {}, }); - const { body } = ast; - if (!body?.[body.length - 1]?.expression) { + let { body } = ast; + + if (!body.length) { + console.warn('empty body -> fallback to silence'); + body.push({ + type: 'ExpressionStatement', + expression: { + type: 'Identifier', + name: 'silence', + }, + }); + } else if (!body?.[body.length - 1]?.expression) { throw new Error('unexpected ast format without body expression'); } @@ -109,11 +159,18 @@ function isBackTickString(node, parent) { function miniWithLocation(value, node) { const { start: fromOffset } = node; + + const minilang = languages.get('minilang'); + let name = 'm'; + if (minilang && minilang.name) { + name = minilang.name; // name is expected to be exported from the package of the minilang + } + return { type: 'CallExpression', callee: { type: 'Identifier', - name: 'm', + name, }, arguments: [ { type: 'Literal', value }, @@ -152,7 +209,7 @@ export function getWidgetID(widgetConfig) { // that means, if we use the index index of line position as id, less garbage is generated // return `widget_${widgetConfig.to}`; // more gargabe //return `widget_${widgetConfig.index}_${widgetConfig.to}`; // also more garbage - return `widget_${widgetConfig.type}_${widgetConfig.index}`; // less garbage + return `${widgetConfig.id || ''}_widget_${widgetConfig.type}_${widgetConfig.index}`; // less garbage } function widgetWithLocation(node, widgetConfig) { @@ -183,7 +240,7 @@ function isLabelStatement(node) { } // converts label expressions to p calls: "x: y" to "y.p('x')" -// see https://github.com/tidalcycles/strudel/issues/990 +// see https://codeberg.org/uzu/strudel/issues/990 function labelToP(node) { return { type: 'ExpressionStatement', @@ -207,3 +264,66 @@ function labelToP(node) { }, }; } + +function isLanguageLiteral(node) { + return node.type === 'TaggedTemplateExpression' && languages.has(node.tag.name); +} + +// 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 isTemplateLiteral(node, value) { + return node.type === 'TaggedTemplateExpression' && node.tag.name === value; +} + +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, + }; +} + +function languageWithLocation(name, value, offset) { + return { + type: 'CallExpression', + callee: { + type: 'Identifier', + name: name, + }, + arguments: [ + { type: 'Literal', value }, + { type: 'Literal', value: offset }, + ], + optional: false, + }; +} diff --git a/packages/vite-plugin-bundle-audioworklet/package.json b/packages/vite-plugin-bundle-audioworklet/package.json new file mode 100644 index 00000000..f803ae06 --- /dev/null +++ b/packages/vite-plugin-bundle-audioworklet/package.json @@ -0,0 +1,16 @@ +{ + "name": "vite-plugin-bundle-audioworklet", + "main": "./vite-plugin-bundle-audioworklet.js", + "version": "0.1.1", + "description": "", + "keywords": [ + "vite", + "audioworklet" + ], + "author": "Felix Roos ", + "license": "MIT", + "type": "module", + "devDependencies": { + "vite": "^6.0.11" + } +} diff --git a/packages/vite-plugin-bundle-audioworklet/vite-plugin-bundle-audioworklet.js b/packages/vite-plugin-bundle-audioworklet/vite-plugin-bundle-audioworklet.js new file mode 100644 index 00000000..4c5634ba --- /dev/null +++ b/packages/vite-plugin-bundle-audioworklet/vite-plugin-bundle-audioworklet.js @@ -0,0 +1,48 @@ +import { createLogger, build } from 'vite'; + +const end = '?audioworklet'; + +function bundleAudioWorkletPlugin() /* : PluginOption */ { + let viteConfig /* : UserConfig */; + + return { + name: 'vite-plugin-bundle-audioworklet', + /* apply: 'build', */ + enforce: 'post', + + config(config) { + viteConfig = config; + }, + + async transform(_code, id) { + if (!id.endsWith(end)) { + return; + } + const entry = id.replace(end, ''); + const quietLogger = createLogger(); + quietLogger.info = () => undefined; + + const output = await build({ + configFile: false, + clearScreen: false, + customLogger: quietLogger, + build: { + lib: { + entry, + name: '_', + formats: ['iife'], + }, + write: false, + }, + }); + if (!(output instanceof Array)) { + throw new Error('Expected output to be Array'); + } + const iife = output[0].output[0].code; + const encoded = Buffer.from(iife, 'utf8').toString('base64'); + return `export default "data:text/javascript;base64,${encoded}";`; + }, + }; +} + +export default bundleAudioWorkletPlugin; 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..0feddc82 100644 --- a/packages/web/package.json +++ b/packages/web/package.json @@ -1,6 +1,6 @@ { "name": "@strudel/web", - "version": "1.0.3", + "version": "1.2.3", "description": "Easy to setup, opiniated bundle of Strudel for the browser.", "module": "web.mjs", "publishConfig": { @@ -14,7 +14,7 @@ "type": "module", "repository": { "type": "git", - "url": "git+https://github.com/tidalcycles/strudel.git" + "url": "git+https://codeberg.org/uzu/strudel.git" }, "keywords": [ "tidalcycles", @@ -29,9 +29,9 @@ ], "license": "AGPL-3.0-or-later", "bugs": { - "url": "https://github.com/tidalcycles/strudel/issues" + "url": "https://codeberg.org/uzu/strudel/issues" }, - "homepage": "https://github.com/tidalcycles/strudel#readme", + "homepage": "https://codeberg.org/uzu/strudel#readme", "dependencies": { "@strudel/core": "workspace:*", "@strudel/mini": "workspace:*", @@ -40,7 +40,8 @@ "@strudel/webaudio": "workspace:*" }, "devDependencies": { - "vite": "^5.0.10", - "@rollup/plugin-replace": "^5.0.5" + "@rollup/plugin-replace": "^6.0.2", + "vite": "^6.0.11", + "vite-plugin-bundle-audioworklet": "workspace:*" } } diff --git a/packages/web/vite.config.js b/packages/web/vite.config.js index bd14f5a9..671bf282 100644 --- a/packages/web/vite.config.js +++ b/packages/web/vite.config.js @@ -2,10 +2,12 @@ import { defineConfig } from 'vite'; import { dependencies } from './package.json'; import { resolve } from 'path'; import replace from '@rollup/plugin-replace'; +import bundleAudioWorkletPlugin from 'vite-plugin-bundle-audioworklet'; // https://vitejs.dev/config/ export default defineConfig({ - plugins: [], + base: './', + plugins: [bundleAudioWorkletPlugin()], build: { lib: { entry: resolve(__dirname, 'web.mjs'), 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/index.mjs b/packages/webaudio/index.mjs index a425e683..362e61c4 100644 --- a/packages/webaudio/index.mjs +++ b/packages/webaudio/index.mjs @@ -1,9 +1,10 @@ /* index.mjs - -Copyright (C) 2022 Strudel contributors - see +Copyright (C) 2022 Strudel contributors - see 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 . */ export * from './webaudio.mjs'; export * from './scope.mjs'; +export * from './spectrum.mjs'; export * from 'superdough'; diff --git a/packages/webaudio/package.json b/packages/webaudio/package.json index f9cd7cc7..5cc0a553 100644 --- a/packages/webaudio/package.json +++ b/packages/webaudio/package.json @@ -1,6 +1,6 @@ { "name": "@strudel/webaudio", - "version": "1.0.1", + "version": "1.2.3", "description": "Web Audio helpers for Strudel", "main": "index.mjs", "type": "module", @@ -17,7 +17,7 @@ }, "repository": { "type": "git", - "url": "git+https://github.com/tidalcycles/strudel.git" + "url": "git+https://codeberg.org/uzu/strudel.git" }, "keywords": [ "tidalcycles", @@ -29,15 +29,15 @@ "author": "Felix Roos ", "license": "AGPL-3.0-or-later", "bugs": { - "url": "https://github.com/tidalcycles/strudel/issues" + "url": "https://codeberg.org/uzu/strudel/issues" }, - "homepage": "https://github.com/tidalcycles/strudel#readme", + "homepage": "https://codeberg.org/uzu/strudel#readme", "dependencies": { "@strudel/core": "workspace:*", "@strudel/draw": "workspace:*", "superdough": "workspace:*" }, "devDependencies": { - "vite": "^5.0.10" + "vite": "^6.0.11" } } diff --git a/packages/webaudio/scope.mjs b/packages/webaudio/scope.mjs index fbf4c8fc..e423b20f 100644 --- a/packages/webaudio/scope.mjs +++ b/packages/webaudio/scope.mjs @@ -130,7 +130,7 @@ Pattern.prototype.fscope = function (config = {}) { * @param {number} pos y-position relative to screen height. 0 = top, 1 = bottom of screen * @param {number} trigger amplitude value that is used to align the scope. defaults to 0. * @example - * s("sawtooth").scope() + * s("sawtooth")._scope() */ let latestColor = {}; Pattern.prototype.tscope = function (config = {}) { diff --git a/packages/webaudio/spectrum.mjs b/packages/webaudio/spectrum.mjs new file mode 100644 index 00000000..2ddd214f --- /dev/null +++ b/packages/webaudio/spectrum.mjs @@ -0,0 +1,69 @@ +import { Pattern, clamp } from '@strudel/core'; +import { getDrawContext, getTheme } from '@strudel/draw'; +import { analysers, getAnalyzerData } from 'superdough'; + +/** + * Renders a spectrum analyzer for the incoming audio signal. + * @name spectrum + * @param {object} config optional config with options: + * @param {integer} thickness line thickness in px (default 3) + * @param {integer} speed scroll speed (default 1) + * @param {integer} min min db (default -80) + * @param {integer} max max db (default 0) + * @example + * n("<0 4 <2 3> 1>*3") + * .off(1/8, add(n(5))) + * .off(1/5, add(n(7))) + * .scale("d3:minor:pentatonic") + * .s('sine') + * .dec(.3).room(.5) + * ._spectrum() + */ +let latestColor = {}; +Pattern.prototype.spectrum = function (config = {}) { + let id = config.id ?? 1; + return this.analyze(id).draw( + (haps) => { + config.color = haps[0]?.value?.color || latestColor[id] || getTheme().foreground; + latestColor[id] = config.color; + drawSpectrum(analysers[id], config); + }, + { id }, + ); +}; + +Pattern.prototype.scope = Pattern.prototype.tscope; + +const lastFrames = new Map(); + +function drawSpectrum( + analyser, + { thickness = 3, speed = 1, min = -80, max = 0, ctx = getDrawContext(), id = 1, color } = {}, +) { + ctx.lineWidth = thickness; + ctx.strokeStyle = color; + + if (!analyser) { + // if analyser is undefined, draw straight line + // it may be undefined when no sound has been played yet + return; + } + const scrollSize = speed; + const dataArray = getAnalyzerData('frequency', id); + const canvas = ctx.canvas; + ctx.fillStyle = color; + const bufferSize = analyser.frequencyBinCount; + let imageData = lastFrames.get(id) || ctx.getImageData(0, 0, canvas.width, canvas.height); + lastFrames.set(id, imageData); + ctx.clearRect(0, 0, ctx.canvas.width, ctx.canvas.height); + ctx.putImageData(imageData, -scrollSize, 0); + let q = canvas.width - speed; + for (let i = 0; i < bufferSize; i++) { + const normalized = clamp((dataArray[i] - min) / (max - min), 0, 1); + ctx.globalAlpha = normalized; + const next = (Math.log(i + 1) / Math.log(bufferSize)) * canvas.height; + const size = 2; //next - pos; + ctx.fillRect(q, canvas.height - next, scrollSize, size); + } + lastFrames.set(id, ctx.getImageData(0, 0, canvas.width, canvas.height)); +} diff --git a/packages/webaudio/webaudio.mjs b/packages/webaudio/webaudio.mjs index 36d11b09..91e28def 100644 --- a/packages/webaudio/webaudio.mjs +++ b/packages/webaudio/webaudio.mjs @@ -1,12 +1,12 @@ /* webaudio.mjs - -Copyright (C) 2022 Strudel contributors - see +Copyright (C) 2022 Strudel contributors - see 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 . */ import * as strudel from '@strudel/core'; import { superdough, getAudioContext, setLogger, doughTrigger } from 'superdough'; -const { Pattern, logger } = strudel; +const { Pattern, logger, repl } = strudel; setLogger(logger); @@ -17,25 +17,21 @@ const hap2value = (hap) => { export const webaudioOutputTrigger = (t, hap, ct, cps) => superdough(hap2value(hap), t - ct, hap.duration / cps, cps); // uses more precise, absolute t if available, see https://github.com/tidalcycles/strudel/pull/1004 -export const webaudioOutput = (hap, deadline, hapDuration, cps, t, cycle) => { - return superdough(hap2value(hap), t ? `=${t}` : deadline, hapDuration, cps, cycle); +export const webaudioOutput = (hap, deadline, hapDuration, cps, t) => { + return superdough(hap2value(hap), t ? `=${t}` : deadline, hapDuration, cps); }; + 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..88c2bb08 100644 --- a/packages/xen/package.json +++ b/packages/xen/package.json @@ -1,6 +1,6 @@ { "name": "@strudel/xen", - "version": "1.0.1", + "version": "1.2.2", "description": "Xenharmonic API for strudel", "main": "index.mjs", "type": "module", @@ -14,7 +14,7 @@ }, "repository": { "type": "git", - "url": "git+https://github.com/tidalcycles/strudel.git" + "url": "git+https://codeberg.org/uzu/strudel.git" }, "keywords": [ "tidalcycles", @@ -26,14 +26,14 @@ "author": "Felix Roos ", "license": "AGPL-3.0-or-later", "bugs": { - "url": "https://github.com/tidalcycles/strudel/issues" + "url": "https://codeberg.org/uzu/strudel/issues" }, - "homepage": "https://github.com/tidalcycles/strudel#readme", + "homepage": "https://codeberg.org/uzu/strudel#readme", "dependencies": { "@strudel/core": "workspace:*" }, "devDependencies": { - "vite": "^5.0.10", - "vitest": "^1.1.0" + "vite": "^6.0.11", + "vitest": "^3.0.4" } } diff --git a/packages/xen/test/xen.test.mjs b/packages/xen/test/xen.test.mjs index 977b0f69..a0982208 100644 --- a/packages/xen/test/xen.test.mjs +++ b/packages/xen/test/xen.test.mjs @@ -1,6 +1,6 @@ /* xen.test.mjs - -Copyright (C) 2022 Strudel contributors - see +Copyright (C) 2022 Strudel contributors - see 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 . */ diff --git a/packages/xen/tune.mjs b/packages/xen/tune.mjs index feed38f4..01303bf5 100644 --- a/packages/xen/tune.mjs +++ b/packages/xen/tune.mjs @@ -1,6 +1,6 @@ /* tune.mjs - -Copyright (C) 2022 Strudel contributors - see +Copyright (C) 2022 Strudel contributors - see 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 . */ diff --git a/packages/xen/tunejs.js b/packages/xen/tunejs.js index 7b1a804a..6b5e7cb7 100644 --- a/packages/xen/tunejs.js +++ b/packages/xen/tunejs.js @@ -1,6 +1,6 @@ /* tunejs.js - -Copyright (C) 2022 Strudel contributors - see +Copyright (C) 2022 Strudel contributors - see 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 . */ diff --git a/packages/xen/xen.mjs b/packages/xen/xen.mjs index 4077632a..cc96f411 100644 --- a/packages/xen/xen.mjs +++ b/packages/xen/xen.mjs @@ -1,6 +1,6 @@ /* xen.mjs - -Copyright (C) 2022 Strudel contributors - see +Copyright (C) 2022 Strudel contributors - see 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 . */ diff --git a/paper/iclc2023.html b/paper/iclc2023.html deleted file mode 100644 index a83e075a..00000000 --- a/paper/iclc2023.html +++ /dev/null @@ -1,818 +0,0 @@ - - - - - - - - Strudel: live coding patterns on the Web - - - - - - - -

Abstract

-
-

This paper introduces Strudel, which brings the TidalCycles approach -to live coding algorithmic patterns to native JavaScript and the web. We -begin by giving a little background of the first year of development, -before sharing some detail about its implementation and examples of use. -We go on to outline the wide range of synthesis and other outputs -available in Strudel, including WebAudio, MIDI, OSC (for SuperDirt), -WebSerial and CSound, and introduce Strudel’s REPL live editor, -including its built-in visualisations. We then compare Strudel with -Tidal, the trade-offs involved between JavaScript and Haskell, and the -unique capabilities offered by Strudel for aligning patterns.

-
- -

1 Introduction

-

In the following paper, we introduce Strudel, an alternative -implementation of the TidalCycles (or ‘Tidal’ for short) live coding -system, using the JavaScript programming language. Strudel is an attempt -to make live coding more accessible, by creating a system that runs -entirely in the browser, while opening Tidal’s approach to algorithmic -patterns (Mclean 2020) up to -modern audio/visual web technologies. The Strudel REPL is a live code -editor dedicated to manipulating patterns while they play, with builtin -visual feedback. While Strudel is written in JavaScript, the API is -optimized for simplicity and readability by applying code -transformations on the syntax tree level, allowing language operations -that would otherwise be impossible. The application supports multiple -ways to output sound, including Tone.js, Web Audio Nodes, OSC (Open -Sound Control) messages, Web Serial, Web MIDI and Csound. The project is -split into multiple packages, allowing granular reuse in other -applications. Apart from TidalCycles, Strudel draws inspiration from -many prior existing projects like TidalVortex (McLean et al. 2022), -Gibber (Roberts and Kuchera-morin -2012), Estuary (Ogborn et al. -2017), Hydra (Jack [2022] 2022), Ocarina (Solomon -[2021] 2022) and Feedforward (McLean 2020). This paper -expands the Strudel Demo paper for the Web Audio Conference 2022 (Roos and McLean -2022).

-

The first tentative commit to the Strudel project was on 22nd January -2022 by Alex McLean, with the core representation implemented over the -following few days. Although this was his first attempt at a -JavaScript-based application, by 27th January, Alex had managed to -upload the initial version to the ‘npm’ javascript package database, -sharing with the wider community for comment. By 4th February, Felix -Roos had discovered Strudel and contributed a ‘REPL’ user interface to -it, and then contributed a scheduler the next day, so that Strudel could -already make sound. At this point, Alex and Felix shared ownership to -the repository, and the project has since proved to be a productive -confluence of Felix’s own work into music representation and -visualisation, with Alex’s experience with making Tidal. Felix has since -become the primary contributor to Strudel, with Alex continuing to jump -between developing both Strudel and Tidal. Aspects of Strudel’s -development have therefore fed back into TidalCycles, and both systems -have maintained a shared conceptual underpinning. We plan to continue -working towards feature parity between these systems, although within -the syntactical trade-offs and library ecosystems of JavaScript and -Haskell, some divergence is inevitable and healthy.

-

Over the first year of its life, Strudel is now a fully-fledged live -coding environment, porting Tidal’s core represention of patterns, -pattern transformations, and mininotation for polymetric sequences, -combined with a wealth of features for synthesising and visualising -those patterns.

-

2 From Tidal to Strudel and -back

-

As mentioned above, the original Tidal is implemented as a domain -specific language (DSL) embedded in the Haskell pure functional -programming language, and takes advantage of Haskell’s terse syntax and -advanced, ‘strong’ type system. JavaScript on the other hand, is a -multi-paradigm programming language, with a dynamic type system. Because -Tidal leans heavily on many of Haskell’s more unique features, it was -not always clear that it could meaningfully be ported to a -multi-paradigm scripting language. However, this possibility was already -demonstrated with an earlier port to Python [TidalVortex; McLean et al. -(2022)], and we have now successfully implemented Tidal’s pure -functional representation of patterns in Strudel, including partial -application, currying, and the functor, applicative and monadic -structures that underlie Tidal’s expressive pattern transformations. The -result is a terse and highly composable system, where everything is -either a pattern, or a function for combining and manipulating patterns, -offering a rich creative ground for exploration.

-

This development process has been far from a one-way port, however. -The process of porting Tidal’s concepts has also opened up new -possibilities, some just from revisiting every design decision, and some -from the particular affordances and constraints offered by JavaScript. -This has lead to new features (and indeed bugfixes) that have found -their way back to Tidal where appropriate, and ongoing work that we will -return to in the conclusion of this paper.

-

3 Representing Patterns

-

Patterns are the essence of Tidal. Its patterns are abstract entities -that represent flows of time as functions, adapting a technique called -pure functional reactive programming. Taking a time span as its input, a -Pattern can output a set of events that happen within that time span. It -depends on the structure of the Pattern how the events are located in -time. From now on, this process of generating events from a time span -will be called querying. Example:

-
const pattern = sequence(c3, [e3, g3])
-const events = pattern.queryArc(0, 1)
-console.log(events.map(e => e.show()))
-

In this example, we create a pattern using the sequence -function and query it for the time span from -0 to 1. Those numbers represent units of time -called cycles. The length of one cycle depends on the -tempo, which defaults to one cycle per second. The resulting events -are:

-
[{ value: 'c3', begin: 0, end: 1/2 },
-{ value: 'e3', begin: 1/2, end: 3/4 },
-{ value: 'g3', begin: 3/4, end: 1 }]
-

Each event has a value, a begin time and an end time, where time is -represented as a fraction. In the above case, the events are placed in -sequential order, where c3 takes the first half, and e3 and g3 together -take the second half. This temporal placement is the result of the -sequence function, which divides its arguments equally over -one cycle. If an argument is an array, the same rule applies to that -part of the cycle. In the example, e3 and g3 are divided equally over -the second half of the whole cycle.

-

The above examples do not represent how Strudel is used in practice. -In the live coding editor, the user only has to type in the pattern -itself, the querying will be handled by the scheduler. The scheduler -will repeatedly query the pattern for events, which are then scheduled -as sound synthesis or other event triggers. Also, the above event data -structure has been simplified for readability.

-
- - -
-

4 Making Patterns

-

In practice, the end-user live coder will not deal with constructing -patterns directly, but will rather build patterns using Strudel’s -extensive combinator library to create, combine and transform -patterns.

-

The live coder will rarely use the sequence function as -seen above, as sequencing is implicit in many functions. For example in -the following, the note function constructs a pattern of -notes, sequencing its arguments in the same manner as the previous -example.

-
note(c3, [e3, g3])
-

Perhaps more often, they will use the mini-notation for even terser -notation of rhythmic sequences: [^This last example is also valid Tidal -code, albeit the parenthesis is not required in its Haskell syntax in -this case. Tidal does not support passing sequences as lists directly to -the note function, however.].

-
note("c3 [e3 g3]")
-

Such sequences are often treated only a starting point for -manipulation, where they then undergo pattern transformations such as -repetition, symmetry, interference/combination or randomisation, -potentially at multiple timescales. Because Strudel patterns are -represented as pure functions of time rather than as data structures, -very long and complex generative results can be represented and -manipulated without having to store the resulting sequences in -memory.

-

5 Pattern Example

-

The following example showcases how patterns can be utilized to -create musical complexity from simple parts, using repetition and -interference:

-
"<0 2 [4 6](3,4,1) 3>"
-.off(1/4, add(2))
-.off(1/2, add(6))
-.scale('D minor')
-.legato(.25)
-.note().s("sawtooth square")
-.delay(.8).delaytime(.125)
-

The pattern starts with a rhythm of numbers in mini notation, which -are later interpreted inside the scale of D minor. The first line could -also be expressed without mini notation:

-
cat(0, 2, [4, 6].euclid(3, 4, 1), 3)
-

These numbers then undergo various pattern transformations. Here is a -short description of all the functions used:

-
    -
  • cat: play elements sequentially, where each lasts one -cycle
  • -
  • brackets: elements inside brackets are divided equally -over the time of their parent
  • -
  • .euclid(p, s, o): place p pulses evenly over s steps, -with offset o (Toussaint -2005)
  • -
  • .off(n, f): layers a pattern on top of itself, with the -new layer offset by n cycles, and with function f applied
  • -
  • .legato(n): multiply the duration of all events in a -pattern by a factor of n
  • -
  • .echo(t, n, v): copy each event t times, with n cycles -in between each copy, decreasing velocity by v
  • -
  • .note(): interpretes values as notes
  • -
  • .s(name): play back each event with the given -sound
  • -
  • .delay(wet): add delay
  • -
  • .delaytime(t): set delay time
  • -
-

Much of the above will be familiar to Tidal users.

- -

6 Ways to make Sound (and other -events)

-

To generate sound, Strudel supports bindings for different -outputs:

-
    -
  • Tone.js (deprecated)
  • -
  • Web Audio API
  • -
  • WebDirt, a js recreation of Tidal’s Dirt sample engine -(deprecated)
  • -
  • OSC via osc-js, compatible with superdirt
  • -
  • Csound via the Csound WebAssembly build
  • -
  • MIDI via WebMIDI
  • -
  • Serial via WebSerial
  • -
-

At first, we used Tone.js as sound output, but it proved to be -limited for the use case of Strudel, where each individual event could -potentially have a completely different audio graph. While the Web Audio -API takes a fire-and-forget approach, creating a lot of Tone.js -instruments and effects causes performance issues quickly. For that -reason, we chose to search for alternatives.

-

Strudel’s new default output uses the Web Audio API to create a new -audio graph for each event. It currently supports basic oscillators, -sample playback, various effects and an experimental support for -soundfonts.

-

WebDirt (Ogborn [2016] 2022) was -created as part of the Estuary Live Coding System (Ogborn et al. -2017), and proved to be a solid choice for handling samples in -Strudel as well. We are however focused on working more directly with -the Web Audio API to be able to integrate new features more tightly.

-

Using the OSC protocol via Strudel’s provided Node.js-based OSC proxy -server, it is possible to send network messages to trigger events. This -is mainly used to render sound using SuperDirt (SuperDirt [2015] 2022), -which is the well-developed Supercollider-based synthesis framework that -Tidal live coders generally use as standard.

-

Recently, the experimental integration of Csound proved to bring a -new dimension of sound design capabilities to Strudel. Thanks to the -WebAssembly distribution of this classic system (Yi, Lazzarini, and Costello -2018), Csound ‘orchestra’ synthesisers can be embedded in and -then patterned with Strudel code.

-

MIDI output can also be used to send MIDI messages to either external -instruments or to other programs on the same device. Unlike OSC, Strudel -is able to send MIDI directly without requiring additional proxy -software, but only from web browsers that support it (at the time of -writing, this means Chromium-based browsers).

-

Finally, Strudel supports Serial output, for example to trigger -events via microcontrollers. This has already been explored for robot -choreography by Kate Sicchio and Alex McLean, via a performance -presented at the International Conference on Live Interfaces 2022.

-

7 The Strudel REPL

-

While Strudel can be used as a library in any JavaScript codebase, -its main, reference user interface is the Strudel REPL[^REPL stands for -read, evaluate, print/play, loop. It is friendly jargon for an -interactive programming interface from computing heritage, usually for a -commandline interface but also applied to live coding editors.], which -is a browser-based live coding environment. This live code editor is -dedicated to manipulating Strudel patterns while they play. The REPL -features built-in visual feedback, which highlights which elements in -the patterned (mini-notation) sequences are influencing the event that -is currently being played. This feedback is designed to support both -learning and live use of Strudel.

-

Besides a UI for playback control and meta information, the main part -of the REPL interface is the code editor powered by CodeMirror. In it, -the user can edit and evaluate pattern code live, using one of the -available synthesis outputs to create music and/or sound art. The -control flow of the REPL follows 3 basic steps:

-
    -
  1. The user writes and updates code. Each update transpiles and -evaluates it to create a Pattern instance
  2. -
  3. While the REPL is running, the Scheduler queries the -active Pattern by a regular interval, generating -Events (also known as Haps in Strudel) for the -next time span.
  4. -
  5. For each scheduling tick, all generated Events are -triggered by calling their onTrigger method, which is set -by the output.
  6. -
-
-REPL control flow - -
-

7.1 User Code

-

To create a Pattern from the user code, two steps are -needed:

-
    -
  1. Transpile the JS input code to make it functional
  2. -
  3. Evaluate the transpiled code
  4. -
-

7.1.1 Transpilation & -Evaluation

-

In the JavaScript world, using transpilation is a common practise to -be able to use language features that are not supported by the base -language. Tools like babel will transpile code that -contains unsupported language features into a version of the code -without those features.

-

In the same tradition, Strudel can add a transpilation step to -simplify the user code in the context of live coding. For example, the -Strudel REPL lets the user create mini notation patterns using just -double quoted strings, while single quoted strings remain what they -are:

-
"c3 [e3 g3]*2"
-

is transpiled to:

-
mini("c3 [e3 g3]*2").withMiniLocation([1,0,0],[1,14,14])
-

Here, the string is wrapped in mini, which will create a -pattern from a mini notation string. Additionally, the -withMiniLocation method passes the original source code -location of the string to the pattern, which enables highlighting active -events.

-

Other convenient features like pseudo variables, operator overloading -and top level await are possible with transpilation.

-

After the transpilation, the code is ready to be evaluated into a -Pattern.

-

Behind the scenes, the user code string is parsed with -acorn, turning it into an Abstract Syntax Tree (AST). The -AST allows changing the structure of the code before generating the -transpiled version using escodegen.

-

7.1.2 Mini Notation

-

While the transpilation allows JavaScript to express Patterns in a -less verbose way, it is still preferable to use the Mini Notation as a -more compact way to express rhythm. Strudel aims to provide the same -Mini Notation features and syntax as used in Tidal.

-

The Mini Notation parser is implemented using peggy, -which allows generating performant parsers for Domain Specific Languages -(DSLs) using a concise grammar notation. The generated parser turns the -Mini Notation string into an AST which is used to call the respective -Strudel functions with the given structure. For example, -"c3 [e3 g3]*2" will result in the following calls:

-
seq(
-  reify('c3').withLocation([1,1,1], [1,4,4]),
-  seq(
-    reify('e3').withLocation([1,5,5], [1,8,8]),
-    reify('g3').withLocation([1,8,8], [1,10,10]),
-  ).fast(2)
-)
-

7.1.3 Highlighting Locations

-

As seen in the examples above, both the JS and the Mini Notation -parser add source code locations using withMiniLocation and -withLocation methods. While the JS parser adds locations -relative to the user code as a whole, the Mini Notation adds locations -relative to the position of the mini notation string. The absolute -location of elements within Mini Notation can be calculated by simply -adding both locations together. This absolute location can be used to -highlight active events in real time.

-

7.2 Scheduling Events

-

After an instance of Pattern is obtained from the user -code, it is used by the scheduler to get queried for events. Once -started, the scheduler runs at a fixed interval to query active pattern -for events withing the current interval’s time span. A simplified -implementation looks like this:

-
let pattern = seq('c3', ['e3', 'g3']); // pattern from user
-let interval = 0.5; // query interval in seconds
-let time = 0; // beginning of current time span
-let minLatency = .1; // min time before a hap should trigger
-setInterval(() => {
-  const haps = pattern.queryArc(time, time + interval);
-  time += interval; // increment time
-  haps.forEach((hap) => {
-    const deadline = hap.whole.begin - time + minLatency;
-    onTrigger(hap, deadline, duration);
-  });
-}, interval * 1000); // query each "interval" seconds
-

Note that the above code is simplified for illustrative purposes. The -actual implementation has to work around imprecise callbacks of -setInterval. More about the implementation details can be -read in this -blog post.

-

The fact that Pattern.queryArc is a pure function that -maps a time span to a set of events allows us to choose any interval we -like without changing the resulting output. It also means that when the -pattern is changed from outside, the next scheduling callback will work -with the new pattern, keeping its clock running.

-

The latency between the time the pattern is evaluated and the change -is heard is between minLatency and -interval + minLatency, in our example between 100ms and -600ms. In Strudel, the current query interval is 50ms with a minLatency -of 100ms, meaning the latency is between 50ms and 150ms.

-

7.3 Output

-

The last step is to trigger each event in the chosen output. This is -where the given time and value of each event is used to generate audio -or any other form of time based output. The default output of the -Strudel REPL is the WebAudio output. To understand what an output does, -we first have to understand what control parameters are.

-

7.3.1 Control Parameters

-

To be able to manipulate multiple aspects of sound in parallel, so -called control parameters are used to shape the value of each event. -Example:

-
note("c3 e3").cutoff(1000).s('sawtooth')
-  .queryArc(0, 1).map(hap => hap.value)
-/* [
-  { note: 'c3', cutoff: 1000, s: 'sawtooth' }
-  { note: 'e3', cutoff: 1000, s: 'sawtooth' }
-] */
-

Here, the control parameter functions note, -cutoff and s are used, where each controls a -different property in the value object. Each control parameter function -accepts a primitive value, a list of values to be sequenced into a -Pattern, or a Pattern. In the example, -note gets a Pattern from a Mini Notation -expression (double quoted), while cutoff and s -are given a Number and a (single quoted) -String respectively.

-

Strudel comes with a large default set of control parameter functions -that are based on the ones used by Tidal and SuperDirt, focusing on -music and audio terminology. It is however possible to create custom -control paramters for any purpose:

-
const { x, y } = createParams('x', 'y')
-x(sine.range(0, 200)).y(cosine.range(0,200))
-

This example creates the custom control parameters x and -y which are then used to form a pattern that descibes the -coordinates of a circle.

-

7.3.2 Outputs

-

Now that we know how the value of an event is manipulated using -control parameters, we can look at how outputs can use that value to -generate anything. The scheduler above was calling the -onTrigger function which is used to implement the output. A -very simple version of the web audio output could look like this:

-
function onTrigger(hap, deadline, duration) {
-  const { note } = hap.value;
-  const time = getAudioContext().currentTime + deadline;
-  const o = getAudioContext().createOscillator();
-  o.frequency.value = getFreq(note);
-  o.start(time);
-  o.stop(time + event.duration);
-  o.connect(getAudioContext().destination);
-}
-

The above example will create an OscillatorNode for each -event, where the frequency is controlled by the note param. -In essence, this is how the WebAudio API output of Strudel works, only -with many more parameters to control synths, samples and effects.

-

8 Pattern alignment and -combination

-

One core aspect of Strudel, inherited from Tidal, is the flexible way -that patterns can be combined, irrespective of their structure. Its -declarative approach means a live coder does not have to think about the -details of how this is done, only what is to be -done.

-

As a simple example, consider two number patterns -"0 [1 2] 3", and "10 20". The first has three -contiguous steps of equal lengths, with the second step broken down into -two substeps, giving four events in total. There are a very large number -of ways in which the structure of these two patterns could be combined, -but the default method in both Strudel and Tidal is to line up the -cycles of the two patterns, and then take events from the first pattern -and match them with those in the second pattern. Therefore, the -following two lines are equivalent:

-
"0 [1 2] 3".add("10 20")
-"10 [11 22] 23"
-

Where the events only partially overlap, they are treated as -fragments of the event in the first pattern. This is a little difficult -to conceptualise, but lets start by comparing the two patterns in the -following example:

-
"0 1 2".add("10 20")
-"10 [11 21] 20"
-

They are similar to the previous example in that the number -1 is split in two, with its two halves added to -10 and 20 respectively. However, the -11 ‘remembers’ that it is a fragment of that original -1 event, and so is treated as having a duration of a third -of a cycle, despite only being active for a sixth of a cycle. Likewise, -the 21 is also a fragment of that original 1 -event, but a fragment of its second half. Because the start of its event -is missing, it wouldn’t actually trigger a sound (unless it underwent -further pattern transformations/combinations).

-

In practice, the effect of this default, implicit method for -combining two patterns is that the second pattern is added in -to the first one, and indeed this can be made explicit:

-
"0 1 2".add.in("10 20")
-

This makes way for other ways to align the pattern, and several are -already defined, in particular:

-
    -
  • in - as explained above, aligns cycles, and applies -values from the pattern on the right in to the pattern on the -left.
  • -
  • out - as with in, but values are applied -out of the pattern on the left (i.e. in to the one on -the right).
  • -
  • mix - structures from both patterns are combined, so -that the new events are not fragments but are created at intersections -of events from both sides.
  • -
  • squeeze - cycles from the pattern on the right are -squeezed into events on the left. So that -e.g. "0 1 2".add.squeeze("10 20") is equivalent to -"[10 20] [11 21] [12 22]".
  • -
  • squeezeout - as with squeeze, but cycles -from the left are squeezed into events on the right. So, -"0 1 2".add.squeezeout("10 20") is equivalent to -[10 11 12] [20 21 22].
  • -
  • trig is similar to squeezeout in that -cycles from the right are aligned with events on the left. However those -cycles are not ‘squeezed’, rather they are truncated to fit the event. -So "0 1 2 3 4 5 6 7".add.trig("10 [20 30]") would be -equivalent to 10 11 12 13 20 21 30 31. In effect, events on -the right ‘trigger’ cycles on the left.
  • -
  • trigzero is similar to trig, but the -pattern is ‘triggered’ from its very first cycle, rather than from the -current cycle. trig and trigzero therefore -only give different results where the leftmost pattern differs from one -cycle to the next.
  • -
-

We will save going deeper into the background, design and -practicalities of these alignment functions for future publications. -However in the next section, we take them as a case study for looking at -the different design affordances offered by Haskell to Tidal, and -JavaScript to Strudel.

-

9 Comparing Strudel and Haskell in -use

-

Unlike Haskell, JavaScript lacks the ability to define custom infix -operators, or change the meaning of existing ones. So the above Strudel -example of "0 1 2".add.out("10 20") is equivalent to the -Tidal expression "0 1 2" +| "10 20", where the vertical bar -in the operator +| stands for out (where -a |+ b would be equivalent of -a.add.in(b)).

-

From this we can already see that Tidal tends towards brevity through -mixing infix operators with functions, and Strudel tends towards -spelling out operations which are joined together with the -. operator. This then is the design trade-off of Tidal’s -tersity, versus Strudel’s simplicity.

-

To demonstrate this, consider the following Tidal pattern:

-
iter 4 $ every 3 (||+ n "10 20") $ (n "0 1 3") # s "triangle" # crush 4
-

This can be directly translated to the Strudel equivalent:

-
iter(4, every(3, add.squeeze("10 20"), n("0 1 3").s("triangle").crush(4)))
-

Although for a more canonical Strudel expression, we would reorder it -as:

-
n("0 1 3").every(3, add.squeeze("10 20")).iter(4).s("triangle").crush(4)
-

The Strudel example uses the . method call operator for -all operations and combinations, whereas the Tidal example has -# for the default method for combining patterns and uses -infix operators for other methods. The lack of parenthesis in the Tidal -example is partly due to the way that arguments are applied to Haskell’s -functions, and partly due to the use of the $ operator as -an alternative way to establish precedence and control the order of -evaluation.

-

Considering the above, we argue that the Haskell syntax is a little -cleaner, but that the Strudel syntax is easier to learn. Our informal -observation is that while Haskell’s dollar $ operator is -very useful in making code easier to work with, it is one of the most -difficult aspects of Tidal use for beginners to learn. On the other -hand, the deeper levels of parenthesis in Strudel code can be difficult -to keep track of, especially while coding under pressure of live musical -performance. However this difficulty can be largely be mitigated by -reordering expressions, and further mitigated by supporting editor -features.

-

With Strudel, we have little choice but to embrace the affordances -and constraints offered by JavaScript, and while designing a -domain-specific language entirely based on method calls is a challenge, -through creative adoption of functional programming techniques like -partial application, we are so far very happy with the results. Tidal’s -functional reactive approach to pattern-making has in general translated -well to JavaScript, and opportunities and constraints have overall -traded off to create a very approachable and useable live coding -environment.

-

9.1 The trade-off of flexible -typing

-

We have identified one problem with porting Tidal to JavaScript where -we have missed Haskell’s strict typing and type inference. In both Tidal -and Strudel, time is rational, where any point in time is represented as -the ratio of two integers. This allows representation of musical ratios -such that are impossible to represent accurately using the more common -floating point numbers. However while libraries are available that -support rational numbers in JavaScript, the lack of strict typing means -that it is easy to implement pattern methods where computationally -expensive conversion from floating point to rational numbers are -performed late, and therefore often enough to overload the CPUs, due to -the large number of iterative calculations required to estimate a ratio -for a given floating point number. To mitigate this problem, we might -consider moving to TypeScript in the future.

-

10 Future Outlook

-

The project is still young, with many features on the horizon. As -general guiding principles, Strudel aims to be

-
    -
  1. accessible
  2. -
  3. consistent with Tidal’s approach to pattern
  4. -
  5. modular and extensible
  6. -
-

While Haskell’s type system makes it a great language for the ongoing -development of Tidal’s inner representation of pattern, JavaScript’s -vibrant ecosystem, flexibility and accessibility makes it a great host -for more ad-hoc experiments, including interface design. For the future, -it is planned to integrate additional alternative sound engines such as -Glicol (Lan -[2020] 2022) and Faust (Faust - Programming -Language for Audio Applications and Plugins [2016] 2022). -Strudel is already approaching feature parity with Tidal, but there are -more Tidal functions to be ported, and work to be done to improve -compatibility with Tidal’s mininotation. Tidal version 2.0 is under -development, which brings a new representation for sequences to its -patterns, which will then be brought to Strudel. Besides sound, other -ways to render events are being explored, such as graphical, and -choreographic output. We are also looking into alternative ways of -editing patterns, including multi-user editing for network music, -parsing a novel syntax to escape the constraints of javascript, and -developing hardware/e-textile interfaces. In summary, there is a lot of -fun ahead.

-

11 Links

-

The Strudel REPL is available at https://strudel.cc, including an -interactive tutorial. The repository is at https://github.com/tidalcycles/strudel, all the code is -open source under the AGPL-3.0 License.

-

12 Acknowledgments

-

Thanks to the Strudel and wider Tidal, live coding, WebAudio and -free/open source software communities for inspiration and support. Alex -McLean’s work on this project is supported by a UKRI Future Leaders -Fellowship [grant number MR/V025260/1].

-

References

-
-
-Faust - Programming Language for Audio Applications and -Plugins. (2016) 2022. C++. GRAME. https://github.com/grame-cncm/faust. -
-
-Jack, Olivia. (2022) 2022. Hydra. https://github.com/ojack/hydra. -
-
-Lan, Qichao. (2020) 2022. Chaosprint/Glicol. Rust. https://github.com/chaosprint/glicol. -
-
-Mclean, Alex. 2020. “Algorithmic Pattern.” In -Proceedings of the International Conference on New Interfaces for -Musical Expression, 265--270. Birmingham, UK. https://zenodo.org/record/4813352. -
-
-McLean, Alex. 2020. “Feedforward.” In Proceedings of -New Interfaces for Musical Expression. Birmingham. https://zenodo.org/record/6353969. -
-
-McLean, Alex, Raphaël Forment, Sylvain Le Beux, and Damián Silvani. -2022. “TidalVortex Zero.” In Proceedings of the 7th -International Conference on Live Coding. Limerick, Ireland: Zenodo. -https://doi.org/10.5281/zenodo.6456380. -
-
-Ogborn, David. (2016) 2022. Dktr0/WebDirt. JavaScript. https://github.com/dktr0/WebDirt. -
-
-Ogborn, David, Jamie Beverley, Luis Navarro del Angel, Eldad Tsabary, -and Alex McLean. 2017. “Estuary: Browser-Based Collaborative -Projectional Live Coding of Musical Patterns.” In Proceedings -of the International Conference on Live Coding, 11. Morelia. -
-
-Roberts, Charles, and Joann Kuchera-morin. 2012. “Gibber: Live -Coding Audio in the Browser.” In In Proceedings of the 2012 -International Computer Music Conference. -
-
-Roos, Felix, and Alex McLean. 2022. “Strudel: Algorithmic Patterns -for the Web.” In. Zenodo. https://doi.org/10.5281/zenodo.6768844. -
-
-Solomon, Mike. (2021) 2022. Purescript-Ocarina. PureScript. https://github.com/mikesol/purescript-ocarina. -
-
-SuperDirt. (2015) 2022. SuperCollider. musikinformatik. https://github.com/musikinformatik/SuperDirt. -
-
-Toussaint, Godfried. 2005. “The Euclidean Algorithm Generates -Traditional Musical Rhythms.” In In Proceedings of BRIDGES: -Mathematical Connections in Art, Music and Science, 47–56. http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.62.231. -
-
-Yi, Steven, Victor Lazzarini, and Edward Costello. 2018. -“WebAssembly AudioWorklet Csound.” In. Berlin, Germany. https://mural.maynoothuniversity.ie/16018/. -
-
- - diff --git a/paper/pandoc/iclc.html b/paper/pandoc/iclc.html deleted file mode 100755 index 90406b16..00000000 --- a/paper/pandoc/iclc.html +++ /dev/null @@ -1,80 +0,0 @@ -$if(false)$ - -This is a pandoc template and should not be edited. - -$endif$ - - - - - - -$for(author-meta)$ - -$endfor$ -$if(date-meta)$ - -$endif$ - $if(title-prefix)$$title-prefix$ - $endif$$pagetitle$ - -$if(quotes)$ - -$endif$ -$if(highlighting-css)$ - -$endif$ - -$for(css)$ - -$endfor$ -$if(math)$ - $math$ -$endif$ -$for(header-includes)$ - $header-includes$ -$endfor$ - - -$for(include-before)$ -$include-before$ -$endfor$ -$if(title)$ -
-

$title$

-$if(subtitle)$ -

$subtitle$

-$endif$ -
    -$for(author)$ -
  • $author$
  • -$endfor$ -
-$if(date)$ -

$date$

-$endif$ -
-$endif$ -$if(toc)$ -
-$toc$ -
-$endif$ - -

Abstract

-
-$if(abstract)$ -$abstract$ -$else$ -Please provide an abstract in the metadata block at the top of your -markdown document. Refer to template.txt for details. -$endif$ -
- -$body$ -$for(include-after)$ -$include-after$ -$endfor$ - - diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 74697ee6..7aecd35b 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -1,4 +1,4 @@ -lockfileVersion: '6.0' +lockfileVersion: '9.0' settings: autoInstallPeers: true @@ -27,48 +27,60 @@ importers: specifier: workspace:* version: link:packages/xen devDependencies: + '@eslint/compat': + specifier: ^1.2.5 + version: 1.2.5(eslint@9.19.0(jiti@2.4.2)) + '@eslint/eslintrc': + specifier: ^3.2.0 + version: 3.2.0 + '@eslint/js': + specifier: ^9.19.0 + version: 9.19.0 '@tauri-apps/cli': - specifier: ^1.5.9 - version: 1.5.9 + specifier: ^2.2.7 + version: 2.2.7 + '@vitest/coverage-v8': + specifier: 3.0.4 + version: 3.0.4(vitest@3.0.4) '@vitest/ui': - specifier: ^1.1.0 - version: 1.1.0(vitest@1.1.0) + specifier: ^3.0.4 + version: 3.0.4(vitest@3.0.4) acorn: - specifier: ^8.11.3 - version: 8.11.3 + specifier: ^8.14.0 + version: 8.14.0 dependency-tree: - specifier: ^10.0.9 - version: 10.0.9 + specifier: ^11.0.1 + version: 11.0.1 eslint: - specifier: ^8.56.0 - version: 8.56.0 + specifier: ^9.19.0 + version: 9.19.0(jiti@2.4.2) eslint-plugin-import: - specifier: ^2.29.1 - version: 2.29.1(eslint@8.56.0) + specifier: ^2.31.0 + version: 2.31.0(eslint@9.19.0(jiti@2.4.2)) events: specifier: ^3.3.0 version: 3.3.0 + globals: + specifier: ^15.14.0 + version: 15.14.0 jsdoc: - specifier: ^4.0.2 - version: 4.0.2 + specifier: ^4.0.4 + version: 4.0.4 jsdoc-json: specifier: ^2.0.2 version: 2.0.2 - jsdoc-to-markdown: - specifier: ^8.0.0 - version: 8.0.0 lerna: - specifier: ^8.0.1 - version: 8.0.1 + specifier: ^8.1.9 + version: 8.1.9(encoding@0.1.13) prettier: - specifier: ^3.1.1 - version: 3.1.1 - rollup-plugin-visualizer: - specifier: ^5.12.0 - version: 5.12.0 + specifier: ^3.4.2 + version: 3.4.2 + vite-plugin-bundle-audioworklet: + specifier: workspace:* + version: link:packages/vite-plugin-bundle-audioworklet vitest: - specifier: ^1.1.0 - version: 1.1.0(@vitest/ui@1.1.0) + specifier: ^3.0.4 + version: 3.0.4(@types/debug@4.1.12)(@types/node@22.10.10)(@vitest/ui@3.0.4)(jiti@2.4.2)(lightningcss@1.29.1)(terser@5.37.0)(yaml@2.7.0) examples/codemirror-repl: dependencies: @@ -78,6 +90,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 @@ -95,8 +110,8 @@ importers: version: link:../../packages/webaudio devDependencies: vite: - specifier: ^5.0.10 - version: 5.0.10 + specifier: ^6.0.11 + version: 6.0.11(@types/node@22.10.10)(jiti@2.4.2)(lightningcss@1.29.1)(terser@5.37.0)(yaml@2.7.0) examples/headless-repl: dependencies: @@ -105,8 +120,8 @@ importers: version: link:../../packages/web devDependencies: vite: - specifier: ^5.0.10 - version: 5.0.10 + specifier: ^6.0.11 + version: 6.0.11(@types/node@22.10.10)(jiti@2.4.2)(lightningcss@1.29.1)(terser@5.37.0)(yaml@2.7.0) examples/minimal-repl: dependencies: @@ -127,8 +142,8 @@ importers: version: link:../../packages/webaudio devDependencies: vite: - specifier: ^5.0.10 - version: 5.0.10 + specifier: ^6.0.11 + version: 6.0.11(@types/node@22.10.10)(jiti@2.4.2)(lightningcss@1.29.1)(terser@5.37.0)(yaml@2.7.0) examples/superdough: dependencies: @@ -137,47 +152,60 @@ importers: version: link:../../packages/superdough devDependencies: vite: - specifier: ^5.0.10 - version: 5.0.10 + specifier: ^6.0.11 + version: 6.0.11(@types/node@22.10.10)(jiti@2.4.2)(lightningcss@1.29.1)(terser@5.37.0)(yaml@2.7.0) + + examples/tidal-repl: + dependencies: + '@strudel/web': + specifier: workspace:* + version: link:../../packages/web + hs2js: + specifier: workspace:* + version: link:../../packages/hs2js + devDependencies: + vite: + specifier: ^6.0.11 + version: 6.0.11(@types/node@22.10.10)(jiti@2.4.2)(lightningcss@1.29.1)(terser@5.37.0)(yaml@2.7.0) packages/codemirror: dependencies: '@codemirror/autocomplete': - specifier: ^6.11.1 - version: 6.11.1(@codemirror/language@6.10.0)(@codemirror/state@6.4.0)(@codemirror/view@6.23.0)(@lezer/common@1.2.0) + specifier: ^6.18.4 + version: 6.18.4 '@codemirror/commands': - specifier: ^6.3.3 - version: 6.3.3 + specifier: ^6.8.0 + version: 6.8.0 '@codemirror/lang-javascript': - specifier: ^6.2.1 - version: 6.2.1 + specifier: ^6.2.2 + version: 6.2.2 '@codemirror/language': - specifier: ^6.10.0 - version: 6.10.0 + specifier: ^6.10.8 + version: 6.10.8 '@codemirror/search': - specifier: ^6.5.5 - version: 6.5.5 + specifier: ^6.5.8 + version: 6.5.8 '@codemirror/state': - specifier: ^6.4.0 - version: 6.4.0 + specifier: ^6.5.1 + version: 6.5.1 '@codemirror/view': - specifier: ^6.23.0 - version: 6.23.0 + specifier: ^6.36.2 + version: 6.36.2 '@lezer/highlight': - specifier: ^1.2.0 - version: 1.2.0 + specifier: ^1.2.1 + version: 1.2.1 '@nanostores/persistent': - specifier: ^0.9.1 - version: 0.9.1(nanostores@0.9.5) + specifier: ^0.10.2 + version: 0.10.2(nanostores@0.11.3) '@replit/codemirror-emacs': - specifier: ^6.0.1 - version: 6.0.1(@codemirror/autocomplete@6.11.1)(@codemirror/commands@6.3.3)(@codemirror/search@6.5.5)(@codemirror/state@6.4.0)(@codemirror/view@6.23.0) - '@replit/codemirror-vim': specifier: ^6.1.0 - version: 6.1.0(@codemirror/commands@6.3.3)(@codemirror/language@6.10.0)(@codemirror/search@6.5.5)(@codemirror/state@6.4.0)(@codemirror/view@6.23.0) + version: 6.1.0(@codemirror/autocomplete@6.18.4)(@codemirror/commands@6.8.0)(@codemirror/search@6.5.8)(@codemirror/state@6.5.1)(@codemirror/view@6.36.2) + '@replit/codemirror-vim': + specifier: ^6.2.1 + version: 6.2.1(@codemirror/commands@6.8.0)(@codemirror/language@6.10.8)(@codemirror/search@6.5.8)(@codemirror/state@6.5.1)(@codemirror/view@6.36.2) '@replit/codemirror-vscode-keymap': specifier: ^6.0.2 - version: 6.0.2(@codemirror/autocomplete@6.11.1)(@codemirror/commands@6.3.3)(@codemirror/language@6.10.0)(@codemirror/lint@6.4.2)(@codemirror/search@6.5.5)(@codemirror/state@6.4.0)(@codemirror/view@6.23.0) + version: 6.0.2(@codemirror/autocomplete@6.18.4)(@codemirror/commands@6.8.0)(@codemirror/language@6.10.8)(@codemirror/lint@6.8.4)(@codemirror/search@6.5.8)(@codemirror/state@6.5.1)(@codemirror/view@6.36.2) '@strudel/core': specifier: workspace:* version: link:../core @@ -187,38 +215,32 @@ importers: '@strudel/transpiler': specifier: workspace:* version: link:../transpiler - '@uiw/codemirror-themes': - specifier: ^4.21.21 - version: 4.21.21(@codemirror/language@6.10.0)(@codemirror/state@6.4.0)(@codemirror/view@6.23.0) - '@uiw/codemirror-themes-all': - specifier: ^4.21.21 - version: 4.21.21(@codemirror/language@6.10.0)(@codemirror/state@6.4.0)(@codemirror/view@6.23.0) nanostores: - specifier: ^0.9.5 - version: 0.9.5 + specifier: ^0.11.3 + version: 0.11.3 devDependencies: vite: - specifier: ^5.0.10 - version: 5.0.10 + specifier: ^6.0.11 + version: 6.0.11(@types/node@22.10.10)(jiti@2.4.2)(lightningcss@1.29.1)(terser@5.37.0)(yaml@2.7.0) packages/core: dependencies: fraction.js: - specifier: ^4.3.7 - version: 4.3.7 + specifier: ^5.2.1 + version: 5.2.1 devDependencies: vite: - specifier: ^5.0.10 - version: 5.0.10 + specifier: ^6.0.11 + version: 6.0.11(@types/node@22.10.10)(jiti@2.4.2)(lightningcss@1.29.1)(terser@5.37.0)(yaml@2.7.0) vitest: - specifier: ^1.1.0 - version: 1.1.0(@vitest/ui@1.1.0) + specifier: ^3.0.4 + version: 3.0.4(@types/debug@4.1.12)(@types/node@22.10.10)(@vitest/ui@3.0.4)(jiti@2.4.2)(lightningcss@1.29.1)(terser@5.37.0)(yaml@2.7.0) packages/csound: dependencies: '@csound/browser': specifier: 6.18.7 - version: 6.18.7(eslint@8.56.0) + version: 6.18.7(eslint@9.19.0(jiti@2.4.2)) '@strudel/core': specifier: workspace:* version: link:../core @@ -227,8 +249,8 @@ importers: version: link:../webaudio devDependencies: vite: - specifier: ^5.0.10 - version: 5.0.10 + specifier: ^6.0.11 + version: 6.0.11(@types/node@22.10.10)(jiti@2.4.2)(lightningcss@1.29.1)(terser@5.37.0)(yaml@2.7.0) packages/desktopbridge: dependencies: @@ -236,8 +258,8 @@ importers: specifier: workspace:* version: link:../core '@tauri-apps/api': - specifier: ^1.5.3 - version: 1.5.3 + specifier: ^2.2.0 + version: 2.2.0 packages/draw: dependencies: @@ -246,11 +268,34 @@ importers: version: link:../core devDependencies: vite: - specifier: ^5.0.10 - version: 5.0.11 + specifier: ^6.0.11 + version: 6.0.11(@types/node@22.10.10)(jiti@2.4.2)(lightningcss@1.29.1)(terser@5.37.0)(yaml@2.7.0) packages/embed: {} + packages/gamepad: + dependencies: + '@strudel/core': + specifier: workspace:* + version: link:../core + devDependencies: + vite: + specifier: ^6.0.11 + version: 6.0.11(@types/node@22.10.10)(jiti@2.4.2)(lightningcss@1.29.1)(terser@5.37.0)(yaml@2.7.0) + + packages/hs2js: + dependencies: + web-tree-sitter: + specifier: ^0.24.7 + version: 0.24.7 + devDependencies: + tree-sitter-haskell: + specifier: ^0.23.1 + version: 0.23.1(tree-sitter@0.21.1) + vite: + specifier: ^6.0.11 + version: 6.0.11(@types/node@22.10.10)(jiti@2.4.2)(lightningcss@1.29.1)(terser@5.37.0)(yaml@2.7.0) + packages/hydra: dependencies: '@strudel/core': @@ -261,14 +306,14 @@ importers: version: link:../draw hydra-synth: specifier: ^1.3.29 - version: 1.3.29 + version: 1.3.29(rollup@4.32.0) devDependencies: pkg: specifier: ^5.8.1 - version: 5.8.1 + version: 5.8.1(encoding@0.1.13) vite: - specifier: ^5.0.10 - version: 5.0.10 + specifier: ^6.0.11 + version: 6.0.11(@types/node@22.10.10)(jiti@2.4.2)(lightningcss@1.29.1)(terser@5.37.0)(yaml@2.7.0) packages/midi: dependencies: @@ -279,12 +324,12 @@ importers: specifier: workspace:* version: link:../webaudio webmidi: - specifier: ^3.1.8 - version: 3.1.8 + specifier: ^3.1.12 + version: 3.1.12 devDependencies: vite: - specifier: ^5.0.10 - version: 5.0.10 + specifier: ^6.0.11 + version: 6.0.11(@types/node@22.10.10)(jiti@2.4.2)(lightningcss@1.29.1)(terser@5.37.0)(yaml@2.7.0) packages/mini: dependencies: @@ -293,14 +338,68 @@ importers: version: link:../core devDependencies: peggy: - specifier: ^3.0.2 - version: 3.0.2 + specifier: ^4.2.0 + version: 4.2.0 vite: - specifier: ^5.0.10 - version: 5.0.10 + specifier: ^6.0.11 + version: 6.0.11(@types/node@22.10.10)(jiti@2.4.2)(lightningcss@1.29.1)(terser@5.37.0)(yaml@2.7.0) vitest: + specifier: ^3.0.4 + version: 3.0.4(@types/debug@4.1.12)(@types/node@22.10.10)(@vitest/ui@3.0.4)(jiti@2.4.2)(lightningcss@1.29.1)(terser@5.37.0)(yaml@2.7.0) + + packages/mondo: + devDependencies: + vite: + specifier: ^6.0.11 + version: 6.0.11(@types/node@22.10.10)(jiti@2.4.2)(lightningcss@1.29.1)(terser@5.37.0)(yaml@2.7.0) + vitest: + specifier: ^3.0.4 + version: 3.0.4(@types/debug@4.1.12)(@types/node@22.10.10)(@vitest/ui@3.0.4)(jiti@2.4.2)(lightningcss@1.29.1)(terser@5.37.0)(yaml@2.7.0) + + packages/mondough: + dependencies: + '@strudel/core': + specifier: workspace:* + version: link:../core + '@strudel/transpiler': + specifier: workspace:* + version: link:../transpiler + mondolang: + specifier: workspace:* + version: link:../mondo + devDependencies: + mondo: + specifier: '*' + version: 0.4.4 + vite: + specifier: ^6.0.11 + version: 6.0.11(@types/node@22.10.10)(jiti@2.4.2)(lightningcss@1.29.1)(terser@5.37.0)(yaml@2.7.0) + vitest: + specifier: ^3.0.4 + version: 3.0.4(@types/debug@4.1.12)(@types/node@22.10.10)(@vitest/ui@3.0.4)(jiti@2.4.2)(lightningcss@1.29.1)(terser@5.37.0)(yaml@2.7.0) + + packages/motion: + dependencies: + '@strudel/core': + specifier: workspace:* + version: link:../core + devDependencies: + vite: + specifier: ^6.0.11 + version: 6.0.11(@types/node@22.10.10)(jiti@2.4.2)(lightningcss@1.29.1)(terser@5.37.0)(yaml@2.7.0) + + packages/mqtt: + dependencies: + '@strudel/core': + specifier: workspace:* + version: link:../core + paho-mqtt: specifier: ^1.1.0 - version: 1.1.0(@vitest/ui@1.1.0) + version: 1.1.0 + devDependencies: + vite: + specifier: ^6.0.11 + version: 6.0.11(@types/node@22.10.10)(jiti@2.4.2)(lightningcss@1.29.1)(terser@5.37.0)(yaml@2.7.0) packages/osc: dependencies: @@ -308,15 +407,21 @@ importers: specifier: workspace:* version: link:../core osc-js: - specifier: ^2.4.0 - version: 2.4.0 + specifier: ^2.4.1 + version: 2.4.1 devDependencies: pkg: specifier: ^5.8.1 - version: 5.8.1 + version: 5.8.1(encoding@0.1.13) vite: - specifier: ^5.0.10 - version: 5.0.10 + specifier: ^6.0.11 + version: 6.0.11(@types/node@22.10.10)(jiti@2.4.2)(lightningcss@1.29.1)(terser@5.37.0)(yaml@2.7.0) + + packages/reference: + devDependencies: + vite: + specifier: ^6.0.11 + version: 6.0.11(@types/node@22.10.10)(jiti@2.4.2)(lightningcss@1.29.1)(terser@5.37.0)(yaml@2.7.0) packages/repl: dependencies: @@ -352,14 +457,14 @@ importers: version: link:../webaudio devDependencies: '@rollup/plugin-replace': - specifier: ^5.0.5 - version: 5.0.5 - rollup-plugin-visualizer: - specifier: ^5.12.0 - version: 5.12.0 + specifier: ^6.0.2 + version: 6.0.2(rollup@4.32.0) vite: - specifier: ^5.0.10 - version: 5.0.10 + specifier: ^6.0.11 + version: 6.0.11(@types/node@22.10.10)(jiti@2.4.2)(lightningcss@1.29.1)(terser@5.37.0)(yaml@2.7.0) + vite-plugin-bundle-audioworklet: + specifier: workspace:* + version: link:../vite-plugin-bundle-audioworklet packages/sampler: dependencies: @@ -374,8 +479,8 @@ importers: version: link:../core devDependencies: vite: - specifier: ^5.0.10 - version: 5.0.10 + specifier: ^6.0.11 + version: 6.0.11(@types/node@22.10.10)(jiti@2.4.2)(lightningcss@1.29.1)(terser@5.37.0)(yaml@2.7.0) packages/soundfonts: dependencies: @@ -389,25 +494,44 @@ importers: specifier: ^0.1.2 version: 0.1.2 soundfont2: - specifier: ^0.4.0 - version: 0.4.0 + specifier: ^0.5.0 + version: 0.5.0 devDependencies: node-fetch: specifier: ^3.3.2 version: 3.3.2 vite: - specifier: ^5.0.10 - version: 5.0.10 + specifier: ^6.0.11 + version: 6.0.11(@types/node@22.10.10)(jiti@2.4.2)(lightningcss@1.29.1)(terser@5.37.0)(yaml@2.7.0) packages/superdough: dependencies: nanostores: - specifier: ^0.9.5 - version: 0.9.5 + specifier: ^0.11.3 + version: 0.11.3 devDependencies: vite: - specifier: ^5.0.10 - version: 5.0.10 + specifier: ^6.0.11 + version: 6.0.11(@types/node@22.10.10)(jiti@2.4.2)(lightningcss@1.29.1)(terser@5.37.0)(yaml@2.7.0) + vite-plugin-bundle-audioworklet: + specifier: workspace:* + version: link:../vite-plugin-bundle-audioworklet + + 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: ^6.0.11 + version: 6.0.11(@types/node@22.10.10)(jiti@2.4.2)(lightningcss@1.29.1)(terser@5.37.0)(yaml@2.7.0) packages/tonal: dependencies: @@ -415,21 +539,21 @@ importers: specifier: workspace:* version: link:../core '@tonaljs/tonal': - specifier: ^4.7.2 + specifier: ^4.10.0 version: 4.10.0 chord-voicings: specifier: ^0.0.1 version: 0.0.1 webmidi: - specifier: ^3.1.8 - version: 3.1.8 + specifier: ^3.1.12 + version: 3.1.12 devDependencies: vite: - specifier: ^5.0.10 - version: 5.0.10 + specifier: ^6.0.11 + version: 6.0.11(@types/node@22.10.10)(jiti@2.4.2)(lightningcss@1.29.1)(terser@5.37.0)(yaml@2.7.0) vitest: - specifier: ^1.1.0 - version: 1.1.0(@vitest/ui@1.1.0) + specifier: ^3.0.4 + version: 3.0.4(@types/debug@4.1.12)(@types/node@22.10.10)(@vitest/ui@3.0.4)(jiti@2.4.2)(lightningcss@1.29.1)(terser@5.37.0)(yaml@2.7.0) packages/transpiler: dependencies: @@ -440,21 +564,27 @@ importers: specifier: workspace:* version: link:../mini acorn: - specifier: ^8.11.3 - version: 8.11.3 + specifier: ^8.14.0 + version: 8.14.0 escodegen: specifier: ^2.1.0 version: 2.1.0 estree-walker: - specifier: ^3.0.1 + specifier: ^3.0.3 version: 3.0.3 devDependencies: vite: - specifier: ^5.0.10 - version: 5.0.10 + specifier: ^6.0.11 + version: 6.0.11(@types/node@22.10.10)(jiti@2.4.2)(lightningcss@1.29.1)(terser@5.37.0)(yaml@2.7.0) vitest: - specifier: ^1.1.0 - version: 1.1.0(@vitest/ui@1.1.0) + specifier: ^3.0.4 + version: 3.0.4(@types/debug@4.1.12)(@types/node@22.10.10)(@vitest/ui@3.0.4)(jiti@2.4.2)(lightningcss@1.29.1)(terser@5.37.0)(yaml@2.7.0) + + packages/vite-plugin-bundle-audioworklet: + devDependencies: + vite: + specifier: ^6.0.11 + version: 6.0.11(@types/node@22.10.10)(jiti@2.4.2)(lightningcss@1.29.1)(terser@5.37.0)(yaml@2.7.0) packages/web: dependencies: @@ -475,11 +605,14 @@ importers: version: link:../webaudio devDependencies: '@rollup/plugin-replace': - specifier: ^5.0.5 - version: 5.0.5 + specifier: ^6.0.2 + version: 6.0.2(rollup@4.32.0) vite: - specifier: ^5.0.10 - version: 5.0.10 + specifier: ^6.0.11 + version: 6.0.11(@types/node@22.10.10)(jiti@2.4.2)(lightningcss@1.29.1)(terser@5.37.0)(yaml@2.7.0) + vite-plugin-bundle-audioworklet: + specifier: workspace:* + version: link:../vite-plugin-bundle-audioworklet packages/webaudio: dependencies: @@ -494,8 +627,8 @@ importers: version: link:../superdough devDependencies: vite: - specifier: ^5.0.10 - version: 5.0.10 + specifier: ^6.0.11 + version: 6.0.11(@types/node@22.10.10)(jiti@2.4.2)(lightningcss@1.29.1)(terser@5.37.0)(yaml@2.7.0) packages/xen: dependencies: @@ -504,56 +637,56 @@ importers: version: link:../core devDependencies: vite: - specifier: ^5.0.10 - version: 5.0.10 + specifier: ^6.0.11 + version: 6.0.11(@types/node@22.10.10)(jiti@2.4.2)(lightningcss@1.29.1)(terser@5.37.0)(yaml@2.7.0) vitest: - specifier: ^1.1.0 - version: 1.1.0(@vitest/ui@1.1.0) + specifier: ^3.0.4 + version: 3.0.4(@types/debug@4.1.12)(@types/node@22.10.10)(@vitest/ui@3.0.4)(jiti@2.4.2)(lightningcss@1.29.1)(terser@5.37.0)(yaml@2.7.0) tools/dbpatch: dependencies: csv: - specifier: ^6.3.6 - version: 6.3.6 + specifier: ^6.3.11 + version: 6.3.11 website: dependencies: '@algolia/client-search': - specifier: ^4.22.0 - version: 4.22.0 + specifier: ^5.20.0 + version: 5.20.0 '@astro-community/astro-embed-youtube': - specifier: ^0.4.4 - version: 0.4.4(astro@4.0.8) + specifier: ^0.5.6 + version: 0.5.6(astro@5.1.9(@types/node@22.10.10)(jiti@2.4.2)(lightningcss@1.29.1)(rollup@2.79.2)(terser@5.37.0)(typescript@5.7.3)(yaml@2.7.0)) '@astrojs/mdx': - specifier: ^2.0.3 - version: 2.2.1(astro@4.0.8) + specifier: ^4.0.7 + version: 4.0.7(astro@5.1.9(@types/node@22.10.10)(jiti@2.4.2)(lightningcss@1.29.1)(rollup@2.79.2)(terser@5.37.0)(typescript@5.7.3)(yaml@2.7.0)) '@astrojs/react': - specifier: ^3.0.9 - version: 3.0.9(@types/react-dom@18.2.18)(@types/react@18.2.46)(react-dom@18.2.0)(react@18.2.0)(vite@5.2.2) + specifier: ^4.1.6 + version: 4.1.6(@types/node@22.10.10)(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(jiti@2.4.2)(lightningcss@1.29.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(terser@5.37.0)(yaml@2.7.0) '@astrojs/rss': - specifier: ^4.0.2 - version: 4.0.2 + specifier: ^4.0.11 + version: 4.0.11 '@astrojs/tailwind': - specifier: ^5.1.0 - version: 5.1.0(astro@4.0.8)(tailwindcss@3.4.0) + specifier: ^5.1.5 + version: 5.1.5(astro@5.1.9(@types/node@22.10.10)(jiti@2.4.2)(lightningcss@1.29.1)(rollup@2.79.2)(terser@5.37.0)(typescript@5.7.3)(yaml@2.7.0))(tailwindcss@3.4.17) '@docsearch/css': - specifier: ^3.5.2 - version: 3.5.2 + specifier: ^3.8.3 + version: 3.8.3 '@docsearch/react': - specifier: ^3.5.2 - version: 3.5.2(@algolia/client-search@4.22.0)(@types/react@18.2.46)(react-dom@18.2.0)(react@18.2.0)(search-insights@2.13.0) + specifier: ^3.8.3 + version: 3.8.3(@algolia/client-search@5.20.0)(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(search-insights@2.13.0) '@headlessui/react': - specifier: ^1.7.17 - version: 1.7.17(react-dom@18.2.0)(react@18.2.0) + specifier: ^2.2.0 + version: 2.2.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0) '@heroicons/react': - specifier: ^2.1.1 - version: 2.1.1(react@18.2.0) + specifier: ^2.2.0 + version: 2.2.0(react@19.0.0) '@nanostores/persistent': - specifier: ^0.9.1 - version: 0.9.1(nanostores@0.9.5) + specifier: ^0.10.2 + version: 0.10.2(nanostores@0.11.3) '@nanostores/react': - specifier: ^0.7.1 - version: 0.7.1(nanostores@0.9.5)(react@18.2.0) + specifier: ^0.8.4 + version: 0.8.4(nanostores@0.11.3)(react@19.0.0) '@strudel/codemirror': specifier: workspace:* version: link:../packages/codemirror @@ -569,6 +702,9 @@ importers: '@strudel/draw': specifier: workspace:* version: link:../packages/draw + '@strudel/gamepad': + specifier: workspace:* + version: link:../packages/gamepad '@strudel/hydra': specifier: workspace:* version: link:../packages/hydra @@ -578,6 +714,15 @@ importers: '@strudel/mini': specifier: workspace:* version: link:../packages/mini + '@strudel/mondo': + specifier: workspace:* + version: link:../packages/mondough + '@strudel/motion': + specifier: workspace:* + version: link:../packages/motion + '@strudel/mqtt': + specifier: workspace:* + version: link:../packages/mqtt '@strudel/osc': specifier: workspace:* version: link:../packages/osc @@ -587,6 +732,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 @@ -600,53 +748,62 @@ importers: specifier: workspace:* version: link:../packages/xen '@supabase/supabase-js': - specifier: ^2.39.1 - version: 2.39.1 + specifier: ^2.48.1 + version: 2.48.1 '@tailwindcss/forms': - specifier: ^0.5.7 - version: 0.5.7(tailwindcss@3.4.0) - '@tailwindcss/typography': specifier: ^0.5.10 - version: 0.5.10(tailwindcss@3.4.0) + version: 0.5.10(tailwindcss@3.4.17) + '@tailwindcss/postcss': + specifier: ^4.0.0 + version: 4.0.0 + '@tailwindcss/typography': + specifier: ^0.5.16 + version: 0.5.16(tailwindcss@3.4.17) '@tauri-apps/api': - specifier: ^1.5.3 - version: 1.5.3 + specifier: ^2.2.0 + version: 2.2.0 + '@tauri-apps/plugin-clipboard-manager': + specifier: ^2.2.0 + version: 2.2.0 '@types/node': - specifier: ^20.10.6 - version: 20.10.6 + specifier: ^22.10.10 + version: 22.10.10 '@types/react': - specifier: ^18.2.46 - version: 18.2.46 + specifier: ^19.0.8 + version: 19.0.8 '@types/react-dom': - specifier: ^18.2.18 - version: 18.2.18 + specifier: ^19.0.3 + version: 19.0.3(@types/react@19.0.8) astro: - specifier: ^4.0.8 - version: 4.0.8(@types/node@20.10.6)(typescript@5.3.3) + specifier: ^5.1.9 + version: 5.1.9(@types/node@22.10.10)(jiti@2.4.2)(lightningcss@1.29.1)(rollup@2.79.2)(terser@5.37.0)(typescript@5.7.3)(yaml@2.7.0) claviature: specifier: ^0.1.0 version: 0.1.0 date-fns: - specifier: ^3.2.0 - version: 3.2.0 + specifier: ^4.1.0 + version: 4.1.0 + hs2js: + specifier: 0.1.0 + version: 0.1.0 nanoid: - specifier: ^5.0.4 - version: 5.0.4 + specifier: ^5.0.9 + version: 5.0.9 nanostores: - specifier: ^0.9.5 - version: 0.9.5 + specifier: ^0.11.3 + version: 0.11.3 react: - specifier: ^18.2.0 - version: 18.2.0 + specifier: ^19.0.0 + version: 19.0.0 react-dom: - specifier: ^18.2.0 - version: 18.2.0(react@18.2.0) + specifier: ^19.0.0 + version: 19.0.0(react@19.0.0) react-hook-inview: - specifier: ^4.5.0 - version: 4.5.0(react-dom@18.2.0)(react@18.2.0) + specifier: ^4.5.1 + version: 4.5.1(react-dom@19.0.0(react@19.0.0))(react@19.0.0) react-lite-youtube-embed: specifier: ^2.4.0 - version: 2.4.0(react-dom@18.2.0)(react@18.2.0) + version: 2.4.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0) rehype-autolink-headings: specifier: ^7.1.0 version: 7.1.0 @@ -660,1727 +817,712 @@ importers: specifier: ^9.0.0 version: 9.0.0 tailwindcss: - specifier: ^3.4.0 - version: 3.4.0 + specifier: ^3.4.17 + version: 3.4.17 worker-timers: - specifier: ^7.1.4 - version: 7.1.4 + specifier: ^8.0.13 + version: 8.0.13 devDependencies: '@vite-pwa/astro': - specifier: ^0.2.0 - version: 0.2.0(astro@4.0.8)(vite-plugin-pwa@0.17.4) + specifier: ^0.5.0 + version: 0.5.0(astro@5.1.9(@types/node@22.10.10)(jiti@2.4.2)(lightningcss@1.29.1)(rollup@2.79.2)(terser@5.37.0)(typescript@5.7.3)(yaml@2.7.0))(vite-plugin-pwa@0.21.1(vite@6.0.11(@types/node@22.10.10)(jiti@2.4.2)(lightningcss@1.29.1)(terser@5.37.0)(yaml@2.7.0))(workbox-build@7.0.0(@types/babel__core@7.20.5))(workbox-window@7.3.0)) html-escaper: specifier: ^3.0.3 version: 3.0.3 sharp: - specifier: ^0.33.1 - version: 0.33.1 - vite-plugin-pwa: - specifier: ^0.17.4 - version: 0.17.4(vite@5.2.2)(workbox-build@7.0.0)(workbox-window@7.0.0) + specifier: ^0.33.5 + version: 0.33.5 + vite-plugin-bundle-audioworklet: + specifier: workspace:* + version: link:../packages/vite-plugin-bundle-audioworklet workbox-window: - specifier: ^7.0.0 - version: 7.0.0 + specifier: ^7.3.0 + version: 7.3.0 packages: - /@aashutoshrathi/word-wrap@1.2.6: - resolution: {integrity: sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==} - engines: {node: '>=0.10.0'} + '@algolia/autocomplete-core@1.17.9': + resolution: {integrity: sha512-O7BxrpLDPJWWHv/DLA9DRFWs+iY1uOJZkqUwjS5HSZAGcl0hIVCQ97LTLewiZmZ402JYUrun+8NqFP+hCknlbQ==} - /@algolia/autocomplete-core@1.9.3(@algolia/client-search@4.22.0)(algoliasearch@4.22.0)(search-insights@2.13.0): - resolution: {integrity: sha512-009HdfugtGCdC4JdXUbVJClA0q0zh24yyePn+KUGk3rP7j8FEe/m5Yo/z65gn6nP/cM39PxpzqKrL7A6fP6PPw==} - dependencies: - '@algolia/autocomplete-plugin-algolia-insights': 1.9.3(@algolia/client-search@4.22.0)(algoliasearch@4.22.0)(search-insights@2.13.0) - '@algolia/autocomplete-shared': 1.9.3(@algolia/client-search@4.22.0)(algoliasearch@4.22.0) - transitivePeerDependencies: - - '@algolia/client-search' - - algoliasearch - - search-insights - dev: false - - /@algolia/autocomplete-plugin-algolia-insights@1.9.3(@algolia/client-search@4.22.0)(algoliasearch@4.22.0)(search-insights@2.13.0): - resolution: {integrity: sha512-a/yTUkcO/Vyy+JffmAnTWbr4/90cLzw+CC3bRbhnULr/EM0fGNvM13oQQ14f2moLMcVDyAx/leczLlAOovhSZg==} + '@algolia/autocomplete-plugin-algolia-insights@1.17.9': + resolution: {integrity: sha512-u1fEHkCbWF92DBeB/KHeMacsjsoI0wFhjZtlCq2ddZbAehshbZST6Hs0Avkc0s+4UyBGbMDnSuXHLuvRWK5iDQ==} peerDependencies: search-insights: '>= 1 < 3' - dependencies: - '@algolia/autocomplete-shared': 1.9.3(@algolia/client-search@4.22.0)(algoliasearch@4.22.0) - search-insights: 2.13.0 - transitivePeerDependencies: - - '@algolia/client-search' - - algoliasearch - dev: false - /@algolia/autocomplete-preset-algolia@1.9.3(@algolia/client-search@4.22.0)(algoliasearch@4.22.0): - resolution: {integrity: sha512-d4qlt6YmrLMYy95n5TB52wtNDr6EgAIPH81dvvvW8UmuWRgxEtY0NJiPwl/h95JtG2vmRM804M0DSwMCNZlzRA==} + '@algolia/autocomplete-preset-algolia@1.17.9': + resolution: {integrity: sha512-Na1OuceSJeg8j7ZWn5ssMu/Ax3amtOwk76u4h5J4eK2Nx2KB5qt0Z4cOapCsxot9VcEN11ADV5aUSlQF4RhGjQ==} peerDependencies: '@algolia/client-search': '>= 4.9.1 < 6' algoliasearch: '>= 4.9.1 < 6' - dependencies: - '@algolia/autocomplete-shared': 1.9.3(@algolia/client-search@4.22.0)(algoliasearch@4.22.0) - '@algolia/client-search': 4.22.0 - algoliasearch: 4.22.0 - dev: false - /@algolia/autocomplete-shared@1.9.3(@algolia/client-search@4.22.0)(algoliasearch@4.22.0): - resolution: {integrity: sha512-Wnm9E4Ye6Rl6sTTqjoymD+l8DjSTHsHboVRYrKgEt8Q7UHm9nYbqhN/i0fhUYA3OAEH7WA8x3jfpnmJm3rKvaQ==} + '@algolia/autocomplete-shared@1.17.9': + resolution: {integrity: sha512-iDf05JDQ7I0b7JEA/9IektxN/80a2MZ1ToohfmNS3rfeuQnIKI3IJlIafD0xu4StbtQTghx9T3Maa97ytkXenQ==} peerDependencies: '@algolia/client-search': '>= 4.9.1 < 6' algoliasearch: '>= 4.9.1 < 6' - dependencies: - '@algolia/client-search': 4.22.0 - algoliasearch: 4.22.0 - dev: false - /@algolia/cache-browser-local-storage@4.22.0: - resolution: {integrity: sha512-uZ1uZMLDZb4qODLfTSNHxSi4fH9RdrQf7DXEzW01dS8XK7QFtFh29N5NGKa9S+Yudf1vUMIF+/RiL4i/J0pWlQ==} - dependencies: - '@algolia/cache-common': 4.22.0 - dev: false + '@algolia/client-abtesting@5.20.0': + resolution: {integrity: sha512-YaEoNc1Xf2Yk6oCfXXkZ4+dIPLulCx8Ivqj0OsdkHWnsI3aOJChY5qsfyHhDBNSOhqn2ilgHWxSfyZrjxBcAww==} + engines: {node: '>= 14.0.0'} - /@algolia/cache-common@4.22.0: - resolution: {integrity: sha512-TPwUMlIGPN16eW67qamNQUmxNiGHg/WBqWcrOoCddhqNTqGDPVqmgfaM85LPbt24t3r1z0zEz/tdsmuq3Q6oaA==} - dev: false + '@algolia/client-analytics@5.20.0': + resolution: {integrity: sha512-CIT9ni0+5sYwqehw+t5cesjho3ugKQjPVy/iPiJvtJX4g8Cdb6je6SPt2uX72cf2ISiXCAX9U3cY0nN0efnRDw==} + engines: {node: '>= 14.0.0'} - /@algolia/cache-in-memory@4.22.0: - resolution: {integrity: sha512-kf4Cio9NpPjzp1+uXQgL4jsMDeck7MP89BYThSvXSjf2A6qV/0KeqQf90TL2ECS02ovLOBXkk98P7qVarM+zGA==} - dependencies: - '@algolia/cache-common': 4.22.0 - dev: false + '@algolia/client-common@5.20.0': + resolution: {integrity: sha512-iSTFT3IU8KNpbAHcBUJw2HUrPnMXeXLyGajmCL7gIzWOsYM4GabZDHXOFx93WGiXMti1dymz8k8R+bfHv1YZmA==} + engines: {node: '>= 14.0.0'} - /@algolia/client-account@4.22.0: - resolution: {integrity: sha512-Bjb5UXpWmJT+yGWiqAJL0prkENyEZTBzdC+N1vBuHjwIJcjLMjPB6j1hNBRbT12Lmwi55uzqeMIKS69w+0aPzA==} - dependencies: - '@algolia/client-common': 4.22.0 - '@algolia/client-search': 4.22.0 - '@algolia/transporter': 4.22.0 - dev: false + '@algolia/client-insights@5.20.0': + resolution: {integrity: sha512-w9RIojD45z1csvW1vZmAko82fqE/Dm+Ovsy2ElTsjFDB0HMAiLh2FO86hMHbEXDPz6GhHKgGNmBRiRP8dDPgJg==} + engines: {node: '>= 14.0.0'} - /@algolia/client-analytics@4.22.0: - resolution: {integrity: sha512-os2K+kHUcwwRa4ArFl5p/3YbF9lN3TLOPkbXXXxOvDpqFh62n9IRZuzfxpHxMPKAQS3Et1s0BkKavnNP02E9Hg==} - dependencies: - '@algolia/client-common': 4.22.0 - '@algolia/client-search': 4.22.0 - '@algolia/requester-common': 4.22.0 - '@algolia/transporter': 4.22.0 - dev: false + '@algolia/client-personalization@5.20.0': + resolution: {integrity: sha512-p/hftHhrbiHaEcxubYOzqVV4gUqYWLpTwK+nl2xN3eTrSW9SNuFlAvUBFqPXSVBqc6J5XL9dNKn3y8OA1KElSQ==} + engines: {node: '>= 14.0.0'} - /@algolia/client-common@4.22.0: - resolution: {integrity: sha512-BlbkF4qXVWuwTmYxVWvqtatCR3lzXwxx628p1wj1Q7QP2+LsTmGt1DiUYRuy9jG7iMsnlExby6kRMOOlbhv2Ag==} - dependencies: - '@algolia/requester-common': 4.22.0 - '@algolia/transporter': 4.22.0 - dev: false + '@algolia/client-query-suggestions@5.20.0': + resolution: {integrity: sha512-m4aAuis5vZi7P4gTfiEs6YPrk/9hNTESj3gEmGFgfJw3hO2ubdS4jSId1URd6dGdt0ax2QuapXufcrN58hPUcw==} + engines: {node: '>= 14.0.0'} - /@algolia/client-personalization@4.22.0: - resolution: {integrity: sha512-pEOftCxeBdG5pL97WngOBi9w5Vxr5KCV2j2D+xMVZH8MuU/JX7CglDSDDb0ffQWYqcUN+40Ry+xtXEYaGXTGow==} - dependencies: - '@algolia/client-common': 4.22.0 - '@algolia/requester-common': 4.22.0 - '@algolia/transporter': 4.22.0 - dev: false + '@algolia/client-search@5.20.0': + resolution: {integrity: sha512-KL1zWTzrlN4MSiaK1ea560iCA/UewMbS4ZsLQRPoDTWyrbDKVbztkPwwv764LAqgXk0fvkNZvJ3IelcK7DqhjQ==} + engines: {node: '>= 14.0.0'} - /@algolia/client-search@4.22.0: - resolution: {integrity: sha512-bn4qQiIdRPBGCwsNuuqB8rdHhGKKWIij9OqidM1UkQxnSG8yzxHdb7CujM30pvp5EnV7jTqDZRbxacbjYVW20Q==} - dependencies: - '@algolia/client-common': 4.22.0 - '@algolia/requester-common': 4.22.0 - '@algolia/transporter': 4.22.0 - dev: false + '@algolia/ingestion@1.20.0': + resolution: {integrity: sha512-shj2lTdzl9un4XJblrgqg54DoK6JeKFO8K8qInMu4XhE2JuB8De6PUuXAQwiRigZupbI0xq8aM0LKdc9+qiLQA==} + engines: {node: '>= 14.0.0'} - /@algolia/logger-common@4.22.0: - resolution: {integrity: sha512-HMUQTID0ucxNCXs5d1eBJ5q/HuKg8rFVE/vOiLaM4Abfeq1YnTtGV3+rFEhOPWhRQxNDd+YHa4q864IMc0zHpQ==} - dev: false + '@algolia/monitoring@1.20.0': + resolution: {integrity: sha512-aF9blPwOhKtWvkjyyXh9P5peqmhCA1XxLBRgItT+K6pbT0q4hBDQrCid+pQZJYy4HFUKjB/NDDwyzFhj/rwKhw==} + engines: {node: '>= 14.0.0'} - /@algolia/logger-console@4.22.0: - resolution: {integrity: sha512-7JKb6hgcY64H7CRm3u6DRAiiEVXMvCJV5gRE672QFOUgDxo4aiDpfU61g6Uzy8NKjlEzHMmgG4e2fklELmPXhQ==} - dependencies: - '@algolia/logger-common': 4.22.0 - dev: false + '@algolia/recommend@5.20.0': + resolution: {integrity: sha512-T6B/WPdZR3b89/F9Vvk6QCbt/wrLAtrGoL8z4qPXDFApQ8MuTFWbleN/4rHn6APWO3ps+BUePIEbue2rY5MlRw==} + engines: {node: '>= 14.0.0'} - /@algolia/requester-browser-xhr@4.22.0: - resolution: {integrity: sha512-BHfv1h7P9/SyvcDJDaRuIwDu2yrDLlXlYmjvaLZTtPw6Ok/ZVhBR55JqW832XN/Fsl6k3LjdkYHHR7xnsa5Wvg==} - dependencies: - '@algolia/requester-common': 4.22.0 - dev: false + '@algolia/requester-browser-xhr@5.20.0': + resolution: {integrity: sha512-t6//lXsq8E85JMenHrI6mhViipUT5riNhEfCcvtRsTV+KIBpC6Od18eK864dmBhoc5MubM0f+sGpKOqJIlBSCg==} + engines: {node: '>= 14.0.0'} - /@algolia/requester-common@4.22.0: - resolution: {integrity: sha512-Y9cEH/cKjIIZgzvI1aI0ARdtR/xRrOR13g5psCxkdhpgRN0Vcorx+zePhmAa4jdQNqexpxtkUdcKYugBzMZJgQ==} - dev: false + '@algolia/requester-fetch@5.20.0': + resolution: {integrity: sha512-FHxYGqRY+6bgjKsK4aUsTAg6xMs2S21elPe4Y50GB0Y041ihvw41Vlwy2QS6K9ldoftX4JvXodbKTcmuQxywdQ==} + engines: {node: '>= 14.0.0'} - /@algolia/requester-node-http@4.22.0: - resolution: {integrity: sha512-8xHoGpxVhz3u2MYIieHIB6MsnX+vfd5PS4REgglejJ6lPigftRhTdBCToe6zbwq4p0anZXjjPDvNWMlgK2+xYA==} - dependencies: - '@algolia/requester-common': 4.22.0 - dev: false + '@algolia/requester-node-http@5.20.0': + resolution: {integrity: sha512-kmtQClq/w3vtPteDSPvaW9SPZL/xrIgMrxZyAgsFwrJk0vJxqyC5/hwHmrCraDnStnGSADnLpBf4SpZnwnkwWw==} + engines: {node: '>= 14.0.0'} - /@algolia/transporter@4.22.0: - resolution: {integrity: sha512-ieO1k8x2o77GNvOoC+vAkFKppydQSVfbjM3YrSjLmgywiBejPTvU1R1nEvG59JIIUvtSLrZsLGPkd6vL14zopA==} - dependencies: - '@algolia/cache-common': 4.22.0 - '@algolia/logger-common': 4.22.0 - '@algolia/requester-common': 4.22.0 - dev: false - - /@alloc/quick-lru@5.2.0: + '@alloc/quick-lru@5.2.0': resolution: {integrity: sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==} engines: {node: '>=10'} - dev: false - /@ampproject/remapping@2.2.0: - resolution: {integrity: sha512-qRmjj8nj9qmLTQXXmaR1cck3UXSRMPrbsLJAasZpF+t3riI71BXed5ebIOYwQntykeZuhjsdweEc9BxH5Jc26w==} + '@ampproject/remapping@2.3.0': + resolution: {integrity: sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==} engines: {node: '>=6.0.0'} - dependencies: - '@jridgewell/gen-mapping': 0.1.1 - '@jridgewell/trace-mapping': 0.3.20 - /@apideck/better-ajv-errors@0.3.6(ajv@8.12.0): + '@apideck/better-ajv-errors@0.3.6': resolution: {integrity: sha512-P+ZygBLZtkp0qqOAJJVX4oX/sFo5JR3eBWwwuqHHhK0GIgQOKWrAfiAaWX0aArHkRWHMuggFEgAZNxVPwPZYaA==} engines: {node: '>=10'} peerDependencies: ajv: '>=8' - dependencies: - ajv: 8.12.0 - json-schema: 0.4.0 - jsonpointer: 5.0.1 - leven: 3.1.0 - dev: true - /@astro-community/astro-embed-youtube@0.4.4(astro@4.0.8): - resolution: {integrity: sha512-fYlycLrJFNnibZ9VHPSJO766kO2IgqYQU4mBd4iaDMaicL0gGX9cVZ80QdnpzGrI6w0XOJOY7prx86eWEVBy8w==} + '@astro-community/astro-embed-youtube@0.5.6': + resolution: {integrity: sha512-/mRfCl/eTBUz0kmjD1psOy0qoDDBorVp0QumUacjFcIkBullYtbeFQ2ZGZ+3N/tA6cR/OIyzr2QA4dQXlY6USg==} peerDependencies: - astro: ^2.0.0 || ^3.0.0-beta || ^4.0.0-beta - dependencies: - astro: 4.0.8(@types/node@20.10.6)(typescript@5.3.3) - lite-youtube-embed: 0.2.0 - dev: false + astro: ^2.0.0 || ^3.0.0-beta || ^4.0.0-beta || ^5.0.0-beta - /@astrojs/compiler@2.3.4: - resolution: {integrity: sha512-33/YtWoBCE0cBUNy1kh78FCDXBoBANX87ShgATlAHECYbG2+buNTAgq4Xgz4t5NgnEHPN21GIBC2Mvvwisoutw==} + '@astrojs/compiler@2.10.3': + resolution: {integrity: sha512-bL/O7YBxsFt55YHU021oL+xz+B/9HvGNId3F9xURN16aeqDK9juHGktdkCSXz+U4nqFACq6ZFvWomOzhV+zfPw==} - /@astrojs/internal-helpers@0.2.1: - resolution: {integrity: sha512-06DD2ZnItMwUnH81LBLco3tWjcZ1lGU9rLCCBaeUCGYe9cI0wKyY2W3kDyoW1I6GmcWgt1fu+D1CTvz+FIKf8A==} + '@astrojs/internal-helpers@0.4.2': + resolution: {integrity: sha512-EdDWkC3JJVcpGpqJAU/5hSk2LKXyG3mNGkzGoAuyK+xoPHbaVdSuIWoN1QTnmK3N/gGfaaAfM8gO2KDCAW7S3w==} - /@astrojs/markdown-remark@4.0.1: - resolution: {integrity: sha512-RU4ESnqvyLpj8WZs0n5elS6idaDdtIIm7mIpMaRNPCebpxMjfcfdwcmBwz83ktAj5d2eO5bC3z92TcGdli+lRw==} - dependencies: - '@astrojs/prism': 3.0.0 - github-slugger: 2.0.0 - import-meta-resolve: 4.0.0 - mdast-util-definitions: 6.0.0 - rehype-raw: 7.0.0 - rehype-stringify: 10.0.0 - remark-gfm: 4.0.0 - remark-parse: 11.0.0 - remark-rehype: 11.0.0 - remark-smartypants: 2.0.0 - shikiji: 0.6.13 - unified: 11.0.4 - unist-util-visit: 5.0.0 - vfile: 6.0.1 - transitivePeerDependencies: - - supports-color + '@astrojs/markdown-remark@6.0.2': + resolution: {integrity: sha512-aAoHGVRK3rebCYbaLjyyR+3VeAuTz4q49syUxJP29Oo5yZHdy4cCAXRqLBdr9mJVlxCUUjZiF0Dau6YBf65SGg==} - /@astrojs/markdown-remark@4.3.1: - resolution: {integrity: sha512-eJFi600tkRjTFiwzY9oD8AgCgB7gFqyWCKWuZ33dATVBgLiROD+zlMZ8STZzU7+ZALvmiUAun/K7umTmP5YfVQ==} - dependencies: - '@astrojs/prism': 3.0.0 - github-slugger: 2.0.0 - hast-util-from-html: 2.0.1 - hast-util-to-text: 4.0.0 - import-meta-resolve: 4.0.0 - mdast-util-definitions: 6.0.0 - rehype-raw: 7.0.0 - rehype-stringify: 10.0.0 - remark-gfm: 4.0.0 - remark-parse: 11.0.0 - remark-rehype: 11.0.0 - remark-smartypants: 2.0.0 - shiki: 1.2.0 - unified: 11.0.4 - unist-util-remove-position: 5.0.0 - unist-util-visit: 5.0.0 - unist-util-visit-parents: 6.0.1 - vfile: 6.0.1 - transitivePeerDependencies: - - supports-color - dev: false - - /@astrojs/mdx@2.2.1(astro@4.0.8): - resolution: {integrity: sha512-bSr/AkvGieD9Pc5ZzMnAk7IHnw0vyt/aOujuYUmYT+NHiWahAUy/+ywNNMhTMmea0irdMYnBVC1AEKMQ/oXxow==} - engines: {node: '>=18.14.1'} + '@astrojs/mdx@4.0.7': + resolution: {integrity: sha512-d3PopBTbbCoX3QOmSLYXW6YCZ0dkhNaeP9/Liz9BhEekflMc9IvBjbtNFf1WCEatsl4LLGftyDisfMM3F3LGMA==} + engines: {node: ^18.17.1 || ^20.3.0 || >=22.0.0} peerDependencies: - astro: ^4.0.0 - dependencies: - '@astrojs/markdown-remark': 4.3.1 - '@mdx-js/mdx': 3.0.0 - acorn: 8.11.3 - astro: 4.0.8(@types/node@20.10.6)(typescript@5.3.3) - es-module-lexer: 1.4.1 - estree-util-visit: 2.0.0 - github-slugger: 2.0.0 - gray-matter: 4.0.3 - hast-util-to-html: 9.0.0 - kleur: 4.1.5 - rehype-raw: 7.0.0 - remark-gfm: 4.0.0 - remark-smartypants: 2.0.0 - source-map: 0.7.4 - unist-util-visit: 5.0.0 - vfile: 6.0.1 - transitivePeerDependencies: - - supports-color - dev: false + astro: ^5.0.0 - /@astrojs/prism@3.0.0: - resolution: {integrity: sha512-g61lZupWq1bYbcBnYZqdjndShr/J3l/oFobBKPA3+qMat146zce3nz2kdO4giGbhYDt4gYdhmoBz0vZJ4sIurQ==} - engines: {node: '>=18.14.1'} - dependencies: - prismjs: 1.29.0 + '@astrojs/prism@3.2.0': + resolution: {integrity: sha512-GilTHKGCW6HMq7y3BUv9Ac7GMe/MO9gi9GW62GzKtth0SwukCu/qp2wLiGpEujhY+VVhaG9v7kv/5vFzvf4NYw==} + engines: {node: ^18.17.1 || ^20.3.0 || >=22.0.0} - /@astrojs/react@3.0.9(@types/react-dom@18.2.18)(@types/react@18.2.46)(react-dom@18.2.0)(react@18.2.0)(vite@5.2.2): - resolution: {integrity: sha512-31J5yF5p9yBFV1axBooLA9PB4B2+MYm7swWhtlezSsJiUNXRFo5Is9qI3teJ7cKgmaCv+ZA593Smskko0NGaDQ==} - engines: {node: '>=18.14.1'} + '@astrojs/react@4.1.6': + resolution: {integrity: sha512-lMBO+Va4JbLsXviagT9/ZmliwfQGmsiw4rvI4yusPZijQek3q5yfEnQor5XWNcErrkazjjNxY9BFO5f/eSfqmw==} + engines: {node: ^18.17.1 || ^20.3.0 || >=22.0.0} peerDependencies: - '@types/react': ^17.0.50 || ^18.0.21 - '@types/react-dom': ^17.0.17 || ^18.0.6 - react: ^17.0.2 || ^18.0.0 - react-dom: ^17.0.2 || ^18.0.0 - dependencies: - '@types/react': 18.2.46 - '@types/react-dom': 18.2.18 - '@vitejs/plugin-react': 4.2.1(vite@5.2.2) - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) - ultrahtml: 1.5.2 - transitivePeerDependencies: - - supports-color - - vite - dev: false + '@types/react': ^17.0.50 || ^18.0.21 || ^19.0.0 + '@types/react-dom': ^17.0.17 || ^18.0.6 || ^19.0.0 + react: ^17.0.2 || ^18.0.0 || ^19.0.0 + react-dom: ^17.0.2 || ^18.0.0 || ^19.0.0 - /@astrojs/rss@4.0.2: - resolution: {integrity: sha512-Hb9GKAyvsn5EUjZtB6SniesBScMQe7SQinEHLY5EFa74QEvgcWaXTmA0Mb0P3vqDSN3d/NTYbGivprrSAawfnA==} - dependencies: - fast-xml-parser: 4.3.3 - kleur: 4.1.5 - dev: false + '@astrojs/rss@4.0.11': + resolution: {integrity: sha512-3e3H8i6kc97KGnn9iaZBJpIkdoQi8MmR5zH5R+dWsfCM44lLTszOqy1OBfGGxDt56mpQkYVtZJWoxMyWuUZBfw==} - /@astrojs/tailwind@5.1.0(astro@4.0.8)(tailwindcss@3.4.0): - resolution: {integrity: sha512-BJoCDKuWhU9FT2qYg+fr6Nfb3qP4ShtyjXGHKA/4mHN94z7BGcmauQK23iy+YH5qWvTnhqkd6mQPQ1yTZTe9Ig==} + '@astrojs/tailwind@5.1.5': + resolution: {integrity: sha512-1diguZEau7FZ9vIjzE4BwavGdhD3+JkdS8zmibl1ene+EHgIU5hI0NMgRYG3yea+Niaf7cyMwjeWeLvzq/maxg==} peerDependencies: - astro: ^3.0.0 || ^4.0.0 + astro: ^3.0.0 || ^4.0.0 || ^5.0.0 tailwindcss: ^3.0.24 - dependencies: - astro: 4.0.8(@types/node@20.10.6)(typescript@5.3.3) - autoprefixer: 10.4.16(postcss@8.4.32) - postcss: 8.4.32 - postcss-load-config: 4.0.2(postcss@8.4.32) - tailwindcss: 3.4.0 - transitivePeerDependencies: - - ts-node - dev: false - /@astrojs/telemetry@3.0.4: - resolution: {integrity: sha512-A+0c7k/Xy293xx6odsYZuXiaHO0PL+bnDoXOc47sGDF5ffIKdKQGRPFl2NMlCF4L0NqN4Ynbgnaip+pPF0s7pQ==} - engines: {node: '>=18.14.1'} - dependencies: - ci-info: 3.9.0 - debug: 4.3.4 - dlv: 1.1.3 - dset: 3.1.3 - is-docker: 3.0.0 - is-wsl: 3.1.0 - which-pm-runs: 1.1.0 - transitivePeerDependencies: - - supports-color + '@astrojs/telemetry@3.2.0': + resolution: {integrity: sha512-wxhSKRfKugLwLlr4OFfcqovk+LIFtKwLyGPqMsv+9/ibqqnW3Gv7tBhtKEb0gAyUAC4G9BTVQeQahqnQAhd6IQ==} + engines: {node: ^18.17.1 || ^20.3.0 || >=22.0.0} - /@babel/code-frame@7.23.5: - resolution: {integrity: sha512-CgH3s1a96LipHCmSUmYFPwY7MNx8C3avkq7i4Wl3cfa662ldtUe4VM1TPXX70pfmrlWTb6jLqTYrZyT2ZTJBgA==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/highlight': 7.23.4 - chalk: 2.4.2 - - /@babel/compat-data@7.23.5: - resolution: {integrity: sha512-uU27kfDRlhfKl+w1U6vp16IuvSLtjAxdArVXPa9BvLkrr7CYIsxH5adpHObeAGY/41+syctUWOZ140a2Rvkgjw==} + '@babel/code-frame@7.26.2': + resolution: {integrity: sha512-RJlIHRueQgwWitWgF8OdFYGZX328Ax5BCemNGlqHfplnRT9ESi8JkFlvaVYbS+UubVY6dpv87Fs2u5M29iNFVQ==} engines: {node: '>=6.9.0'} - /@babel/core@7.23.7: - resolution: {integrity: sha512-+UpDgowcmqe36d4NwqvKsyPMlOLNGMsfMmQ5WGCu+siCe3t3dfe9njrzGfdN4qq+bcNUt0+Vw6haRxBOycs4dw==} + '@babel/compat-data@7.26.5': + resolution: {integrity: sha512-XvcZi1KWf88RVbF9wn8MN6tYFloU5qX8KjuF3E1PVBmJ9eypXfs4GRiJwLuTZL0iSnJUKn1BFPa5BPZZJyFzPg==} engines: {node: '>=6.9.0'} - dependencies: - '@ampproject/remapping': 2.2.0 - '@babel/code-frame': 7.23.5 - '@babel/generator': 7.23.6 - '@babel/helper-compilation-targets': 7.23.6 - '@babel/helper-module-transforms': 7.23.3(@babel/core@7.23.7) - '@babel/helpers': 7.23.7 - '@babel/parser': 7.23.6 - '@babel/template': 7.22.15 - '@babel/traverse': 7.23.7 - '@babel/types': 7.23.6 - convert-source-map: 2.0.0 - debug: 4.3.4 - gensync: 1.0.0-beta.2 - json5: 2.2.3 - semver: 6.3.1 - transitivePeerDependencies: - - supports-color - /@babel/generator@7.18.2: + '@babel/core@7.26.7': + resolution: {integrity: sha512-SRijHmF0PSPgLIBYlWnG0hyeJLwXE2CgpsXaMOrtt2yp9/86ALw6oUlj9KYuZ0JN07T4eBMVIW4li/9S1j2BGA==} + engines: {node: '>=6.9.0'} + + '@babel/generator@7.18.2': resolution: {integrity: sha512-W1lG5vUwFvfMd8HVXqdfbuG7RuaSrTCCD8cl8fP8wOivdbtbIg2Db3IWUcgvfxKbbn6ZBGYRW/Zk1MIwK49mgw==} engines: {node: '>=6.9.0'} - dependencies: - '@babel/types': 7.21.5 - '@jridgewell/gen-mapping': 0.3.2 - jsesc: 2.5.2 - dev: true - /@babel/generator@7.23.6: - resolution: {integrity: sha512-qrSfCYxYQB5owCmGLbl8XRpX1ytXlpueOb0N0UmQwA073KZxejgQTzAmJezxvpwQD9uGtK2shHdi55QT+MbjIw==} + '@babel/generator@7.26.5': + resolution: {integrity: sha512-2caSP6fN9I7HOe6nqhtft7V4g7/V/gfDsC3Ag4W7kEzzvRGKqiv0pu0HogPiZ3KaVSoNDhUws6IJjDjpfmYIXw==} engines: {node: '>=6.9.0'} - dependencies: - '@babel/types': 7.23.6 - '@jridgewell/gen-mapping': 0.3.2 - '@jridgewell/trace-mapping': 0.3.17 - jsesc: 2.5.2 - /@babel/helper-annotate-as-pure@7.22.5: - resolution: {integrity: sha512-LvBTxu8bQSQkcyKOU+a1btnNFQ1dMAd0R6PyW3arXes06F6QLWLIrd681bxRPIXlrMGR3XYnW9JyML7dP3qgxg==} + '@babel/helper-annotate-as-pure@7.25.9': + resolution: {integrity: sha512-gv7320KBUFJz1RnylIg5WWYPRXKZ884AGkYpgpWW02TH66Dl+HaC1t1CKd0z3R4b6hdYEcmrNZHUmfCP+1u3/g==} engines: {node: '>=6.9.0'} - dependencies: - '@babel/types': 7.23.6 - /@babel/helper-builder-binary-assignment-operator-visitor@7.22.15: - resolution: {integrity: sha512-QkBXwGgaoC2GtGZRoma6kv7Szfv06khvhFav67ZExau2RaXzy8MpHSMO2PNoP2XtmQphJQRHFfg77Bq731Yizw==} + '@babel/helper-compilation-targets@7.26.5': + resolution: {integrity: sha512-IXuyn5EkouFJscIDuFF5EsiSolseme1s0CZB+QxVugqJLYmKdxI1VfIBOst0SUu4rnk2Z7kqTwmoO1lp3HIfnA==} engines: {node: '>=6.9.0'} - dependencies: - '@babel/types': 7.23.6 - dev: true - /@babel/helper-compilation-targets@7.23.6: - resolution: {integrity: sha512-9JB548GZoQVmzrFgp8o7KxdgkTGm6xs9DW0o/Pim72UDjzr5ObUQ6ZzYPqA+g9OTS2bBQoctLJrky0RDCAWRgQ==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/compat-data': 7.23.5 - '@babel/helper-validator-option': 7.23.5 - browserslist: 4.22.2 - lru-cache: 5.1.1 - semver: 6.3.1 - - /@babel/helper-create-class-features-plugin@7.23.7(@babel/core@7.23.7): - resolution: {integrity: sha512-xCoqR/8+BoNnXOY7RVSgv6X+o7pmT5q1d+gGcRlXYkI+9B31glE4jeejhKVpA04O1AtzOt7OSQ6VYKP5FcRl9g==} + '@babel/helper-create-class-features-plugin@7.25.9': + resolution: {integrity: sha512-UTZQMvt0d/rSz6KI+qdu7GQze5TIajwTS++GUozlw8VBJDEOAqSXwm1WvmYEZwqdqSGQshRocPDqrt4HBZB3fQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 - dependencies: - '@babel/core': 7.23.7 - '@babel/helper-annotate-as-pure': 7.22.5 - '@babel/helper-environment-visitor': 7.22.20 - '@babel/helper-function-name': 7.23.0 - '@babel/helper-member-expression-to-functions': 7.23.0 - '@babel/helper-optimise-call-expression': 7.22.5 - '@babel/helper-replace-supers': 7.22.20(@babel/core@7.23.7) - '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 - '@babel/helper-split-export-declaration': 7.22.6 - semver: 6.3.1 - dev: true - /@babel/helper-create-regexp-features-plugin@7.22.15(@babel/core@7.23.7): - resolution: {integrity: sha512-29FkPLFjn4TPEa3RE7GpW+qbE8tlsu3jntNYNfcGsc49LphF1PQIiD+vMZ1z1xVOKt+93khA9tc2JBs3kBjA7w==} + '@babel/helper-create-regexp-features-plugin@7.26.3': + resolution: {integrity: sha512-G7ZRb40uUgdKOQqPLjfD12ZmGA54PzqDFUv2BKImnC9QIfGhIHKvVML0oN8IUiDq4iRqpq74ABpvOaerfWdong==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 - dependencies: - '@babel/core': 7.23.7 - '@babel/helper-annotate-as-pure': 7.22.5 - regexpu-core: 5.3.2 - semver: 6.3.1 - dev: true - /@babel/helper-define-polyfill-provider@0.4.4(@babel/core@7.23.7): - resolution: {integrity: sha512-QcJMILQCu2jm5TFPGA3lCpJJTeEP+mqeXooG/NZbg/h5FTFi6V0+99ahlRsW8/kRLyb24LZVCCiclDedhLKcBA==} + '@babel/helper-define-polyfill-provider@0.6.3': + resolution: {integrity: sha512-HK7Bi+Hj6H+VTHA3ZvBis7V/6hu9QuTrnMXNybfUf2iiuU/N97I8VjB+KbhFF8Rld/Lx5MzoCwPCpPjfK+n8Cg==} peerDependencies: '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 - dependencies: - '@babel/core': 7.23.7 - '@babel/helper-compilation-targets': 7.23.6 - '@babel/helper-plugin-utils': 7.22.5 - debug: 4.3.4 - lodash.debounce: 4.0.8 - resolve: 1.22.8 - transitivePeerDependencies: - - supports-color - dev: true - /@babel/helper-environment-visitor@7.22.20: - resolution: {integrity: sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==} + '@babel/helper-member-expression-to-functions@7.25.9': + resolution: {integrity: sha512-wbfdZ9w5vk0C0oyHqAJbc62+vet5prjj01jjJ8sKn3j9h3MQQlflEdXYvuqRWjHnM12coDEqiC1IRCi0U/EKwQ==} engines: {node: '>=6.9.0'} - /@babel/helper-function-name@7.23.0: - resolution: {integrity: sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==} + '@babel/helper-module-imports@7.25.9': + resolution: {integrity: sha512-tnUA4RsrmflIM6W6RFTLFSXITtl0wKjgpnLgXyowocVPrbYrLUXSBXDgTs8BlbmIzIdlBySRQjINYs2BAkiLtw==} engines: {node: '>=6.9.0'} - dependencies: - '@babel/template': 7.22.15 - '@babel/types': 7.23.6 - /@babel/helper-hoist-variables@7.22.5: - resolution: {integrity: sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/types': 7.23.6 - - /@babel/helper-member-expression-to-functions@7.23.0: - resolution: {integrity: sha512-6gfrPwh7OuT6gZyJZvd6WbTfrqAo7vm4xCzAXOusKqq/vWdKXphTpj5klHKNmRUU6/QRGlBsyU9mAIPaWHlqJA==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/types': 7.23.6 - dev: true - - /@babel/helper-module-imports@7.22.15: - resolution: {integrity: sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/types': 7.23.6 - - /@babel/helper-module-transforms@7.23.3(@babel/core@7.23.7): - resolution: {integrity: sha512-7bBs4ED9OmswdfDzpz4MpWgSrV7FXlc3zIagvLFjS5H+Mk7Snr21vQ6QwrsoCGMfNC4e4LQPdoULEt4ykz0SRQ==} + '@babel/helper-module-transforms@7.26.0': + resolution: {integrity: sha512-xO+xu6B5K2czEnQye6BHA7DolFFmS3LB7stHZFaOLb1pAwO1HWLS8fXA+eh0A2yIvltPVmx3eNNDBJA2SLHXFw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 - dependencies: - '@babel/core': 7.23.7 - '@babel/helper-environment-visitor': 7.22.20 - '@babel/helper-module-imports': 7.22.15 - '@babel/helper-simple-access': 7.22.5 - '@babel/helper-split-export-declaration': 7.22.6 - '@babel/helper-validator-identifier': 7.22.20 - /@babel/helper-optimise-call-expression@7.22.5: - resolution: {integrity: sha512-HBwaojN0xFRx4yIvpwGqxiV2tUfl7401jlok564NgB9EHS1y6QT17FmKWm4ztqjeVdXLuC4fSvHc5ePpQjoTbw==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/types': 7.23.6 - dev: true - - /@babel/helper-plugin-utils@7.22.5: - resolution: {integrity: sha512-uLls06UVKgFG9QD4OeFYLEGteMIAa5kpTPcFL28yuCIIzsf6ZyKZMllKVOCZFhiZ5ptnwX4mtKdWCBE/uT4amg==} + '@babel/helper-optimise-call-expression@7.25.9': + resolution: {integrity: sha512-FIpuNaz5ow8VyrYcnXQTDRGvV6tTjkNtCK/RYNDXGSLlUD6cBuQTSw43CShGxjvfBTfcUA/r6UhUCbtYqkhcuQ==} engines: {node: '>=6.9.0'} - /@babel/helper-remap-async-to-generator@7.22.20(@babel/core@7.23.7): - resolution: {integrity: sha512-pBGyV4uBqOns+0UvhsTO8qgl8hO89PmiDYv+/COyp1aeMcmfrfruz+/nCMFiYyFF/Knn0yfrC85ZzNFjembFTw==} + '@babel/helper-plugin-utils@7.26.5': + resolution: {integrity: sha512-RS+jZcRdZdRFzMyr+wcsaqOmld1/EqTghfaBGQQd/WnRdzdlvSZ//kF7U8VQTxf1ynZ4cjUcYgjVGx13ewNPMg==} + engines: {node: '>=6.9.0'} + + '@babel/helper-remap-async-to-generator@7.25.9': + resolution: {integrity: sha512-IZtukuUeBbhgOcaW2s06OXTzVNJR0ybm4W5xC1opWFFJMZbwRj5LCk+ByYH7WdZPZTt8KnFwA8pvjN2yqcPlgw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 - dependencies: - '@babel/core': 7.23.7 - '@babel/helper-annotate-as-pure': 7.22.5 - '@babel/helper-environment-visitor': 7.22.20 - '@babel/helper-wrap-function': 7.22.20 - dev: true - /@babel/helper-replace-supers@7.22.20(@babel/core@7.23.7): - resolution: {integrity: sha512-qsW0In3dbwQUbK8kejJ4R7IHVGwHJlV6lpG6UA7a9hSa2YEiAib+N1T2kr6PEeUT+Fl7najmSOS6SmAwCHK6Tw==} + '@babel/helper-replace-supers@7.26.5': + resolution: {integrity: sha512-bJ6iIVdYX1YooY2X7w1q6VITt+LnUILtNk7zT78ykuwStx8BauCzxvFqFaHjOpW1bVnSUM1PN1f0p5P21wHxvg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 - dependencies: - '@babel/core': 7.23.7 - '@babel/helper-environment-visitor': 7.22.20 - '@babel/helper-member-expression-to-functions': 7.23.0 - '@babel/helper-optimise-call-expression': 7.22.5 - dev: true - /@babel/helper-simple-access@7.22.5: - resolution: {integrity: sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/types': 7.23.6 - - /@babel/helper-skip-transparent-expression-wrappers@7.22.5: - resolution: {integrity: sha512-tK14r66JZKiC43p8Ki33yLBVJKlQDFoA8GYN67lWCDCqoL6EMMSuM9b+Iff2jHaM/RRFYl7K+iiru7hbRqNx8Q==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/types': 7.23.6 - dev: true - - /@babel/helper-split-export-declaration@7.22.6: - resolution: {integrity: sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/types': 7.23.6 - - /@babel/helper-string-parser@7.19.4: - resolution: {integrity: sha512-nHtDoQcuqFmwYNYPz3Rah5ph2p8PFeFCsZk9A/48dPc/rGocJ5J3hAAZ7pb76VWX3fZKu+uEr/FhH5jLx7umrw==} - engines: {node: '>=6.9.0'} - dev: true - - /@babel/helper-string-parser@7.21.5: - resolution: {integrity: sha512-5pTUx3hAJaZIdW99sJ6ZUUgWq/Y+Hja7TowEnLNMm1VivRgZQL3vpBY3qUACVsvw+yQU6+YgfBVmcbLaZtrA1w==} - engines: {node: '>=6.9.0'} - dev: true - - /@babel/helper-string-parser@7.23.4: - resolution: {integrity: sha512-803gmbQdqwdf4olxrX4AJyFBV/RTr3rSmOj0rKwesmzlfhYNDEs+/iOcznzpNWlJlIlTJC2QfPFcHB6DlzdVLQ==} + '@babel/helper-skip-transparent-expression-wrappers@7.25.9': + resolution: {integrity: sha512-K4Du3BFa3gvyhzgPcntrkDgZzQaq6uozzcpGbOO1OEJaI+EJdqWIMTLgFgQf6lrfiDFo5FU+BxKepI9RmZqahA==} engines: {node: '>=6.9.0'} - /@babel/helper-validator-identifier@7.19.1: - resolution: {integrity: sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w==} - engines: {node: '>=6.9.0'} - dev: true - - /@babel/helper-validator-identifier@7.22.20: - resolution: {integrity: sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==} + '@babel/helper-string-parser@7.25.9': + resolution: {integrity: sha512-4A/SCr/2KLd5jrtOMFzaKjVtAei3+2r/NChoBNoZ3EyP/+GlhoaEGoWOZUmFmoITP7zOJyHIMm+DYRd8o3PvHA==} engines: {node: '>=6.9.0'} - /@babel/helper-validator-option@7.23.5: - resolution: {integrity: sha512-85ttAOMLsr53VgXkTbkx8oA6YTfT4q7/HzXSLEYmjcSTJPMPQtvq1BD79Byep5xMUYbGRzEpDsjUf3dyp54IKw==} + '@babel/helper-validator-identifier@7.25.9': + resolution: {integrity: sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ==} engines: {node: '>=6.9.0'} - /@babel/helper-wrap-function@7.22.20: - resolution: {integrity: sha512-pms/UwkOpnQe/PDAEdV/d7dVCoBbB+R4FvYoHGZz+4VPcg7RtYy2KP7S2lbuWM6FCSgob5wshfGESbC/hzNXZw==} + '@babel/helper-validator-option@7.25.9': + resolution: {integrity: sha512-e/zv1co8pp55dNdEcCynfj9X7nyUKUXoUEwfXqaZt0omVOmDe9oOTdKStH4GmAw6zxMFs50ZayuMfHDKlO7Tfw==} engines: {node: '>=6.9.0'} - dependencies: - '@babel/helper-function-name': 7.23.0 - '@babel/template': 7.22.15 - '@babel/types': 7.23.6 - dev: true - /@babel/helpers@7.23.7: - resolution: {integrity: sha512-6AMnjCoC8wjqBzDHkuqpa7jAKwvMo4dC+lr/TFBz+ucfulO1XMpDnwWPGBNwClOKZ8h6xn5N81W/R5OrcKtCbQ==} + '@babel/helper-wrap-function@7.25.9': + resolution: {integrity: sha512-ETzz9UTjQSTmw39GboatdymDq4XIQbR8ySgVrylRhPOFpsd+JrKHIuF0de7GCWmem+T4uC5z7EZguod7Wj4A4g==} engines: {node: '>=6.9.0'} - dependencies: - '@babel/template': 7.22.15 - '@babel/traverse': 7.23.7 - '@babel/types': 7.23.6 - transitivePeerDependencies: - - supports-color - /@babel/highlight@7.23.4: - resolution: {integrity: sha512-acGdbYSfp2WheJoJm/EBBBLh/ID8KDc64ISZ9DYtBmC8/Q204PZJLHyzeB5qMzJ5trcOkybd78M4x2KWsUq++A==} + '@babel/helpers@7.26.7': + resolution: {integrity: sha512-8NHiL98vsi0mbPQmYAGWwfcFaOy4j2HY49fXJCfuDcdE7fMIsH9a7GdaeXpIBsbT7307WU8KCMp5pUVDNL4f9A==} engines: {node: '>=6.9.0'} - dependencies: - '@babel/helper-validator-identifier': 7.22.20 - chalk: 2.4.2 - js-tokens: 4.0.0 - /@babel/parser@7.18.4: + '@babel/parser@7.18.4': resolution: {integrity: sha512-FDge0dFazETFcxGw/EXzOkN8uJp0PC7Qbm+Pe9T+av2zlBpOgunFHkQPPn+eRuClU73JF+98D531UgayY89tow==} engines: {node: '>=6.0.0'} hasBin: true - dependencies: - '@babel/types': 7.21.5 - dev: true - /@babel/parser@7.21.4: - resolution: {integrity: sha512-alVJj7k7zIxqBZ7BTRhz0IqJFxW1VJbm6N8JbcYhQ186df9ZBPbZBmWSqAMXwHGsCJdYks7z/voa3ibiS5bCIw==} + '@babel/parser@7.26.7': + resolution: {integrity: sha512-kEvgGGgEjRUutvdVvZhbn/BxVt+5VSpwXz1j3WYXQbXDo8KzFOPNG2GQbdAiNq8g6wn1yKk7C/qrke03a84V+w==} engines: {node: '>=6.0.0'} hasBin: true - dependencies: - '@babel/types': 7.20.7 - dev: true - /@babel/parser@7.23.6: - resolution: {integrity: sha512-Z2uID7YJ7oNvAI20O9X0bblw7Qqs8Q2hFy0R9tAfnfLkp5MW0UH9eUvnDSnFwKZ0AvgS1ucqR4KzvVHgnke1VQ==} - engines: {node: '>=6.0.0'} - hasBin: true - dependencies: - '@babel/types': 7.23.6 - - /@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.23.3(@babel/core@7.23.7): - resolution: {integrity: sha512-iRkKcCqb7iGnq9+3G6rZ+Ciz5VywC4XNRHe57lKM+jOeYAoR0lVqdeeDRfh0tQcTfw/+vBhHn926FmQhLtlFLQ==} + '@babel/plugin-bugfix-firefox-class-in-computed-class-key@7.25.9': + resolution: {integrity: sha512-ZkRyVkThtxQ/J6nv3JFYv1RYY+JT5BvU0y3k5bWrmuG4woXypRa4PXmm9RhOwodRkYFWqC0C0cqcJ4OqR7kW+g==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 - dependencies: - '@babel/core': 7.23.7 - '@babel/helper-plugin-utils': 7.22.5 - dev: true - /@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.23.3(@babel/core@7.23.7): - resolution: {integrity: sha512-WwlxbfMNdVEpQjZmK5mhm7oSwD3dS6eU+Iwsi4Knl9wAletWem7kaRsGOG+8UEbRyqxY4SS5zvtfXwX+jMxUwQ==} + '@babel/plugin-bugfix-safari-class-field-initializer-scope@7.25.9': + resolution: {integrity: sha512-MrGRLZxLD/Zjj0gdU15dfs+HH/OXvnw/U4jJD8vpcP2CJQapPEv1IWwjc/qMg7ItBlPwSv1hRBbb7LeuANdcnw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + + '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.25.9': + resolution: {integrity: sha512-2qUwwfAFpJLZqxd02YW9btUCZHl+RFvdDkNfZwaIJrvB8Tesjsk8pEQkTvGwZXLqXUx/2oyY3ySRhm6HOXuCug==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + + '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.25.9': + resolution: {integrity: sha512-6xWgLZTJXwilVjlnV7ospI3xi+sl8lN8rXXbBD6vYn3UYDlGsag8wrZkKcSI8G6KgqKP7vNFaDgeDnfAABq61g==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.13.0 - dependencies: - '@babel/core': 7.23.7 - '@babel/helper-plugin-utils': 7.22.5 - '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 - '@babel/plugin-transform-optional-chaining': 7.23.4(@babel/core@7.23.7) - dev: true - /@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@7.23.7(@babel/core@7.23.7): - resolution: {integrity: sha512-LlRT7HgaifEpQA1ZgLVOIJZZFVPWN5iReq/7/JixwBtwcoeVGDBD53ZV28rrsLYOZs1Y/EHhA8N/Z6aazHR8cw==} + '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@7.25.9': + resolution: {integrity: sha512-aLnMXYPnzwwqhYSCyXfKkIkYgJ8zv9RK+roo9DkTXz38ynIhd9XCbN08s3MGvqL2MYGVUGdRQLL/JqBIeJhJBg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 - dependencies: - '@babel/core': 7.23.7 - '@babel/helper-environment-visitor': 7.22.20 - '@babel/helper-plugin-utils': 7.22.5 - dev: true - /@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2(@babel/core@7.23.7): + '@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2': resolution: {integrity: sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.7 - dev: true - /@babel/plugin-syntax-async-generators@7.8.4(@babel/core@7.23.7): - resolution: {integrity: sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.7 - '@babel/helper-plugin-utils': 7.22.5 - dev: true - - /@babel/plugin-syntax-class-properties@7.12.13(@babel/core@7.23.7): - resolution: {integrity: sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.7 - '@babel/helper-plugin-utils': 7.22.5 - dev: true - - /@babel/plugin-syntax-class-static-block@7.14.5(@babel/core@7.23.7): - resolution: {integrity: sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==} + '@babel/plugin-syntax-import-assertions@7.26.0': + resolution: {integrity: sha512-QCWT5Hh830hK5EQa7XzuqIkQU9tT/whqbDz7kuaZMHFl1inRRg7JnuAEOQ0Ur0QUl0NufCk1msK2BeY79Aj/eg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.7 - '@babel/helper-plugin-utils': 7.22.5 - dev: true - /@babel/plugin-syntax-dynamic-import@7.8.3(@babel/core@7.23.7): - resolution: {integrity: sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.7 - '@babel/helper-plugin-utils': 7.22.5 - dev: true - - /@babel/plugin-syntax-export-namespace-from@7.8.3(@babel/core@7.23.7): - resolution: {integrity: sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.7 - '@babel/helper-plugin-utils': 7.22.5 - dev: true - - /@babel/plugin-syntax-import-assertions@7.23.3(@babel/core@7.23.7): - resolution: {integrity: sha512-lPgDSU+SJLK3xmFDTV2ZRQAiM7UuUjGidwBywFavObCiZc1BeAAcMtHJKUya92hPHO+at63JJPLygilZard8jw==} + '@babel/plugin-syntax-import-attributes@7.26.0': + resolution: {integrity: sha512-e2dttdsJ1ZTpi3B9UYGLw41hifAubg19AtCu/2I/F1QNVclOBr1dYpTdmdyZ84Xiz43BS/tCUkMAZNLv12Pi+A==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.7 - '@babel/helper-plugin-utils': 7.22.5 - dev: true - /@babel/plugin-syntax-import-attributes@7.23.3(@babel/core@7.23.7): - resolution: {integrity: sha512-pawnE0P9g10xgoP7yKr6CK63K2FMsTE+FZidZO/1PwRdzmAPVs+HS1mAURUsgaoxammTJvULUdIkEK0gOcU2tA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.7 - '@babel/helper-plugin-utils': 7.22.5 - dev: true - - /@babel/plugin-syntax-import-meta@7.10.4(@babel/core@7.23.7): - resolution: {integrity: sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.7 - '@babel/helper-plugin-utils': 7.22.5 - dev: true - - /@babel/plugin-syntax-json-strings@7.8.3(@babel/core@7.23.7): - resolution: {integrity: sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.7 - '@babel/helper-plugin-utils': 7.22.5 - dev: true - - /@babel/plugin-syntax-jsx@7.22.5(@babel/core@7.23.7): - resolution: {integrity: sha512-gvyP4hZrgrs/wWMaocvxZ44Hw0b3W8Pe+cMxc8V1ULQ07oh8VNbIRaoD1LRZVTvD+0nieDKjfgKg89sD7rrKrg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.7 - '@babel/helper-plugin-utils': 7.22.5 - - /@babel/plugin-syntax-logical-assignment-operators@7.10.4(@babel/core@7.23.7): - resolution: {integrity: sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.7 - '@babel/helper-plugin-utils': 7.22.5 - dev: true - - /@babel/plugin-syntax-nullish-coalescing-operator@7.8.3(@babel/core@7.23.7): - resolution: {integrity: sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.7 - '@babel/helper-plugin-utils': 7.22.5 - dev: true - - /@babel/plugin-syntax-numeric-separator@7.10.4(@babel/core@7.23.7): - resolution: {integrity: sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.7 - '@babel/helper-plugin-utils': 7.22.5 - dev: true - - /@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.23.7): - resolution: {integrity: sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.7 - '@babel/helper-plugin-utils': 7.22.5 - dev: true - - /@babel/plugin-syntax-optional-catch-binding@7.8.3(@babel/core@7.23.7): - resolution: {integrity: sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.7 - '@babel/helper-plugin-utils': 7.22.5 - dev: true - - /@babel/plugin-syntax-optional-chaining@7.8.3(@babel/core@7.23.7): - resolution: {integrity: sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.7 - '@babel/helper-plugin-utils': 7.22.5 - dev: true - - /@babel/plugin-syntax-private-property-in-object@7.14.5(@babel/core@7.23.7): - resolution: {integrity: sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.7 - '@babel/helper-plugin-utils': 7.22.5 - dev: true - - /@babel/plugin-syntax-top-level-await@7.14.5(@babel/core@7.23.7): - resolution: {integrity: sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.7 - '@babel/helper-plugin-utils': 7.22.5 - dev: true - - /@babel/plugin-syntax-unicode-sets-regex@7.18.6(@babel/core@7.23.7): + '@babel/plugin-syntax-unicode-sets-regex@7.18.6': resolution: {integrity: sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 - dependencies: - '@babel/core': 7.23.7 - '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.23.7) - '@babel/helper-plugin-utils': 7.22.5 - dev: true - /@babel/plugin-transform-arrow-functions@7.23.3(@babel/core@7.23.7): - resolution: {integrity: sha512-NzQcQrzaQPkaEwoTm4Mhyl8jI1huEL/WWIEvudjTCMJ9aBZNpsJbMASx7EQECtQQPS/DcnFpo0FIh3LvEO9cxQ==} + '@babel/plugin-transform-arrow-functions@7.25.9': + resolution: {integrity: sha512-6jmooXYIwn9ca5/RylZADJ+EnSxVUS5sjeJ9UPk6RWRzXCmOJCy6dqItPJFpw2cuCangPK4OYr5uhGKcmrm5Qg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.7 - '@babel/helper-plugin-utils': 7.22.5 - dev: true - /@babel/plugin-transform-async-generator-functions@7.23.7(@babel/core@7.23.7): - resolution: {integrity: sha512-PdxEpL71bJp1byMG0va5gwQcXHxuEYC/BgI/e88mGTtohbZN28O5Yit0Plkkm/dBzCF/BxmbNcses1RH1T+urA==} + '@babel/plugin-transform-async-generator-functions@7.25.9': + resolution: {integrity: sha512-RXV6QAzTBbhDMO9fWwOmwwTuYaiPbggWQ9INdZqAYeSHyG7FzQ+nOZaUUjNwKv9pV3aE4WFqFm1Hnbci5tBCAw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.7 - '@babel/helper-environment-visitor': 7.22.20 - '@babel/helper-plugin-utils': 7.22.5 - '@babel/helper-remap-async-to-generator': 7.22.20(@babel/core@7.23.7) - '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.23.7) - dev: true - /@babel/plugin-transform-async-to-generator@7.23.3(@babel/core@7.23.7): - resolution: {integrity: sha512-A7LFsKi4U4fomjqXJlZg/u0ft/n8/7n7lpffUP/ZULx/DtV9SGlNKZolHH6PE8Xl1ngCc0M11OaeZptXVkfKSw==} + '@babel/plugin-transform-async-to-generator@7.25.9': + resolution: {integrity: sha512-NT7Ejn7Z/LjUH0Gv5KsBCxh7BH3fbLTV0ptHvpeMvrt3cPThHfJfst9Wrb7S8EvJ7vRTFI7z+VAvFVEQn/m5zQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.7 - '@babel/helper-module-imports': 7.22.15 - '@babel/helper-plugin-utils': 7.22.5 - '@babel/helper-remap-async-to-generator': 7.22.20(@babel/core@7.23.7) - dev: true - /@babel/plugin-transform-block-scoped-functions@7.23.3(@babel/core@7.23.7): - resolution: {integrity: sha512-vI+0sIaPIO6CNuM9Kk5VmXcMVRiOpDh7w2zZt9GXzmE/9KD70CUEVhvPR/etAeNK/FAEkhxQtXOzVF3EuRL41A==} + '@babel/plugin-transform-block-scoped-functions@7.26.5': + resolution: {integrity: sha512-chuTSY+hq09+/f5lMj8ZSYgCFpppV2CbYrhNFJ1BFoXpiWPnnAb7R0MqrafCpN8E1+YRrtM1MXZHJdIx8B6rMQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.7 - '@babel/helper-plugin-utils': 7.22.5 - dev: true - /@babel/plugin-transform-block-scoping@7.23.4(@babel/core@7.23.7): - resolution: {integrity: sha512-0QqbP6B6HOh7/8iNR4CQU2Th/bbRtBp4KS9vcaZd1fZ0wSh5Fyssg0UCIHwxh+ka+pNDREbVLQnHCMHKZfPwfw==} + '@babel/plugin-transform-block-scoping@7.25.9': + resolution: {integrity: sha512-1F05O7AYjymAtqbsFETboN1NvBdcnzMerO+zlMyJBEz6WkMdejvGWw9p05iTSjC85RLlBseHHQpYaM4gzJkBGg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.7 - '@babel/helper-plugin-utils': 7.22.5 - dev: true - /@babel/plugin-transform-class-properties@7.23.3(@babel/core@7.23.7): - resolution: {integrity: sha512-uM+AN8yCIjDPccsKGlw271xjJtGii+xQIF/uMPS8H15L12jZTsLfF4o5vNO7d/oUguOyfdikHGc/yi9ge4SGIg==} + '@babel/plugin-transform-class-properties@7.25.9': + resolution: {integrity: sha512-bbMAII8GRSkcd0h0b4X+36GksxuheLFjP65ul9w6C3KgAamI3JqErNgSrosX6ZPj+Mpim5VvEbawXxJCyEUV3Q==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.7 - '@babel/helper-create-class-features-plugin': 7.23.7(@babel/core@7.23.7) - '@babel/helper-plugin-utils': 7.22.5 - dev: true - /@babel/plugin-transform-class-static-block@7.23.4(@babel/core@7.23.7): - resolution: {integrity: sha512-nsWu/1M+ggti1SOALj3hfx5FXzAY06fwPJsUZD4/A5e1bWi46VUIWtD+kOX6/IdhXGsXBWllLFDSnqSCdUNydQ==} + '@babel/plugin-transform-class-static-block@7.26.0': + resolution: {integrity: sha512-6J2APTs7BDDm+UMqP1useWqhcRAXo0WIoVj26N7kPFB6S73Lgvyka4KTZYIxtgYXiN5HTyRObA72N2iu628iTQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.12.0 - dependencies: - '@babel/core': 7.23.7 - '@babel/helper-create-class-features-plugin': 7.23.7(@babel/core@7.23.7) - '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.23.7) - dev: true - /@babel/plugin-transform-classes@7.23.5(@babel/core@7.23.7): - resolution: {integrity: sha512-jvOTR4nicqYC9yzOHIhXG5emiFEOpappSJAl73SDSEDcybD+Puuze8Tnpb9p9qEyYup24tq891gkaygIFvWDqg==} + '@babel/plugin-transform-classes@7.25.9': + resolution: {integrity: sha512-mD8APIXmseE7oZvZgGABDyM34GUmK45Um2TXiBUt7PnuAxrgoSVf123qUzPxEr/+/BHrRn5NMZCdE2m/1F8DGg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.7 - '@babel/helper-annotate-as-pure': 7.22.5 - '@babel/helper-compilation-targets': 7.23.6 - '@babel/helper-environment-visitor': 7.22.20 - '@babel/helper-function-name': 7.23.0 - '@babel/helper-optimise-call-expression': 7.22.5 - '@babel/helper-plugin-utils': 7.22.5 - '@babel/helper-replace-supers': 7.22.20(@babel/core@7.23.7) - '@babel/helper-split-export-declaration': 7.22.6 - globals: 11.12.0 - dev: true - /@babel/plugin-transform-computed-properties@7.23.3(@babel/core@7.23.7): - resolution: {integrity: sha512-dTj83UVTLw/+nbiHqQSFdwO9CbTtwq1DsDqm3CUEtDrZNET5rT5E6bIdTlOftDTDLMYxvxHNEYO4B9SLl8SLZw==} + '@babel/plugin-transform-computed-properties@7.25.9': + resolution: {integrity: sha512-HnBegGqXZR12xbcTHlJ9HGxw1OniltT26J5YpfruGqtUHlz/xKf/G2ak9e+t0rVqrjXa9WOhvYPz1ERfMj23AA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.7 - '@babel/helper-plugin-utils': 7.22.5 - '@babel/template': 7.22.15 - dev: true - /@babel/plugin-transform-destructuring@7.23.3(@babel/core@7.23.7): - resolution: {integrity: sha512-n225npDqjDIr967cMScVKHXJs7rout1q+tt50inyBCPkyZ8KxeI6d+GIbSBTT/w/9WdlWDOej3V9HE5Lgk57gw==} + '@babel/plugin-transform-destructuring@7.25.9': + resolution: {integrity: sha512-WkCGb/3ZxXepmMiX101nnGiU+1CAdut8oHyEOHxkKuS1qKpU2SMXE2uSvfz8PBuLd49V6LEsbtyPhWC7fnkgvQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.7 - '@babel/helper-plugin-utils': 7.22.5 - dev: true - /@babel/plugin-transform-dotall-regex@7.23.3(@babel/core@7.23.7): - resolution: {integrity: sha512-vgnFYDHAKzFaTVp+mneDsIEbnJ2Np/9ng9iviHw3P/KVcgONxpNULEW/51Z/BaFojG2GI2GwwXck5uV1+1NOYQ==} + '@babel/plugin-transform-dotall-regex@7.25.9': + resolution: {integrity: sha512-t7ZQ7g5trIgSRYhI9pIJtRl64KHotutUJsh4Eze5l7olJv+mRSg4/MmbZ0tv1eeqRbdvo/+trvJD/Oc5DmW2cA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.7 - '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.23.7) - '@babel/helper-plugin-utils': 7.22.5 - dev: true - /@babel/plugin-transform-duplicate-keys@7.23.3(@babel/core@7.23.7): - resolution: {integrity: sha512-RrqQ+BQmU3Oyav3J+7/myfvRCq7Tbz+kKLLshUmMwNlDHExbGL7ARhajvoBJEvc+fCguPPu887N+3RRXBVKZUA==} + '@babel/plugin-transform-duplicate-keys@7.25.9': + resolution: {integrity: sha512-LZxhJ6dvBb/f3x8xwWIuyiAHy56nrRG3PeYTpBkkzkYRRQ6tJLu68lEF5VIqMUZiAV7a8+Tb78nEoMCMcqjXBw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.7 - '@babel/helper-plugin-utils': 7.22.5 - dev: true - /@babel/plugin-transform-dynamic-import@7.23.4(@babel/core@7.23.7): - resolution: {integrity: sha512-V6jIbLhdJK86MaLh4Jpghi8ho5fGzt3imHOBu/x0jlBaPYqDoWz4RDXjmMOfnh+JWNaQleEAByZLV0QzBT4YQQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.7 - '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.23.7) - dev: true - - /@babel/plugin-transform-exponentiation-operator@7.23.3(@babel/core@7.23.7): - resolution: {integrity: sha512-5fhCsl1odX96u7ILKHBj4/Y8vipoqwsJMh4csSA8qFfxrZDEA4Ssku2DyNvMJSmZNOEBT750LfFPbtrnTP90BQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.7 - '@babel/helper-builder-binary-assignment-operator-visitor': 7.22.15 - '@babel/helper-plugin-utils': 7.22.5 - dev: true - - /@babel/plugin-transform-export-namespace-from@7.23.4(@babel/core@7.23.7): - resolution: {integrity: sha512-GzuSBcKkx62dGzZI1WVgTWvkkz84FZO5TC5T8dl/Tht/rAla6Dg/Mz9Yhypg+ezVACf/rgDuQt3kbWEv7LdUDQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.7 - '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-export-namespace-from': 7.8.3(@babel/core@7.23.7) - dev: true - - /@babel/plugin-transform-for-of@7.23.6(@babel/core@7.23.7): - resolution: {integrity: sha512-aYH4ytZ0qSuBbpfhuofbg/e96oQ7U2w1Aw/UQmKT+1l39uEhUPoFS3fHevDc1G0OvewyDudfMKY1OulczHzWIw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.7 - '@babel/helper-plugin-utils': 7.22.5 - '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 - dev: true - - /@babel/plugin-transform-function-name@7.23.3(@babel/core@7.23.7): - resolution: {integrity: sha512-I1QXp1LxIvt8yLaib49dRW5Okt7Q4oaxao6tFVKS/anCdEOMtYwWVKoiOA1p34GOWIZjUK0E+zCp7+l1pfQyiw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.7 - '@babel/helper-compilation-targets': 7.23.6 - '@babel/helper-function-name': 7.23.0 - '@babel/helper-plugin-utils': 7.22.5 - dev: true - - /@babel/plugin-transform-json-strings@7.23.4(@babel/core@7.23.7): - resolution: {integrity: sha512-81nTOqM1dMwZ/aRXQ59zVubN9wHGqk6UtqRK+/q+ciXmRy8fSolhGVvG09HHRGo4l6fr/c4ZhXUQH0uFW7PZbg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.7 - '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.23.7) - dev: true - - /@babel/plugin-transform-literals@7.23.3(@babel/core@7.23.7): - resolution: {integrity: sha512-wZ0PIXRxnwZvl9AYpqNUxpZ5BiTGrYt7kueGQ+N5FiQ7RCOD4cm8iShd6S6ggfVIWaJf2EMk8eRzAh52RfP4rQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.7 - '@babel/helper-plugin-utils': 7.22.5 - dev: true - - /@babel/plugin-transform-logical-assignment-operators@7.23.4(@babel/core@7.23.7): - resolution: {integrity: sha512-Mc/ALf1rmZTP4JKKEhUwiORU+vcfarFVLfcFiolKUo6sewoxSEgl36ak5t+4WamRsNr6nzjZXQjM35WsU+9vbg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.7 - '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.23.7) - dev: true - - /@babel/plugin-transform-member-expression-literals@7.23.3(@babel/core@7.23.7): - resolution: {integrity: sha512-sC3LdDBDi5x96LA+Ytekz2ZPk8i/Ck+DEuDbRAll5rknJ5XRTSaPKEYwomLcs1AA8wg9b3KjIQRsnApj+q51Ag==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.7 - '@babel/helper-plugin-utils': 7.22.5 - dev: true - - /@babel/plugin-transform-modules-amd@7.23.3(@babel/core@7.23.7): - resolution: {integrity: sha512-vJYQGxeKM4t8hYCKVBlZX/gtIY2I7mRGFNcm85sgXGMTBcoV3QdVtdpbcWEbzbfUIUZKwvgFT82mRvaQIebZzw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.7 - '@babel/helper-module-transforms': 7.23.3(@babel/core@7.23.7) - '@babel/helper-plugin-utils': 7.22.5 - dev: true - - /@babel/plugin-transform-modules-commonjs@7.23.3(@babel/core@7.23.7): - resolution: {integrity: sha512-aVS0F65LKsdNOtcz6FRCpE4OgsP2OFnW46qNxNIX9h3wuzaNcSQsJysuMwqSibC98HPrf2vCgtxKNwS0DAlgcA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.7 - '@babel/helper-module-transforms': 7.23.3(@babel/core@7.23.7) - '@babel/helper-plugin-utils': 7.22.5 - '@babel/helper-simple-access': 7.22.5 - dev: true - - /@babel/plugin-transform-modules-systemjs@7.23.3(@babel/core@7.23.7): - resolution: {integrity: sha512-ZxyKGTkF9xT9YJuKQRo19ewf3pXpopuYQd8cDXqNzc3mUNbOME0RKMoZxviQk74hwzfQsEe66dE92MaZbdHKNQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.7 - '@babel/helper-hoist-variables': 7.22.5 - '@babel/helper-module-transforms': 7.23.3(@babel/core@7.23.7) - '@babel/helper-plugin-utils': 7.22.5 - '@babel/helper-validator-identifier': 7.22.20 - dev: true - - /@babel/plugin-transform-modules-umd@7.23.3(@babel/core@7.23.7): - resolution: {integrity: sha512-zHsy9iXX2nIsCBFPud3jKn1IRPWg3Ing1qOZgeKV39m1ZgIdpJqvlWVeiHBZC6ITRG0MfskhYe9cLgntfSFPIg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.7 - '@babel/helper-module-transforms': 7.23.3(@babel/core@7.23.7) - '@babel/helper-plugin-utils': 7.22.5 - dev: true - - /@babel/plugin-transform-named-capturing-groups-regex@7.22.5(@babel/core@7.23.7): - resolution: {integrity: sha512-YgLLKmS3aUBhHaxp5hi1WJTgOUb/NCuDHzGT9z9WTt3YG+CPRhJs6nprbStx6DnWM4dh6gt7SU3sZodbZ08adQ==} + '@babel/plugin-transform-duplicate-named-capturing-groups-regex@7.25.9': + resolution: {integrity: sha512-0UfuJS0EsXbRvKnwcLjFtJy/Sxc5J5jhLHnFhy7u4zih97Hz6tJkLU+O+FMMrNZrosUPxDi6sYxJ/EA8jDiAog==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 - dependencies: - '@babel/core': 7.23.7 - '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.23.7) - '@babel/helper-plugin-utils': 7.22.5 - dev: true - /@babel/plugin-transform-new-target@7.23.3(@babel/core@7.23.7): - resolution: {integrity: sha512-YJ3xKqtJMAT5/TIZnpAR3I+K+WaDowYbN3xyxI8zxx/Gsypwf9B9h0VB+1Nh6ACAAPRS5NSRje0uVv5i79HYGQ==} + '@babel/plugin-transform-dynamic-import@7.25.9': + resolution: {integrity: sha512-GCggjexbmSLaFhqsojeugBpeaRIgWNTcgKVq/0qIteFEqY2A+b9QidYadrWlnbWQUrW5fn+mCvf3tr7OeBFTyg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.7 - '@babel/helper-plugin-utils': 7.22.5 - dev: true - /@babel/plugin-transform-nullish-coalescing-operator@7.23.4(@babel/core@7.23.7): - resolution: {integrity: sha512-jHE9EVVqHKAQx+VePv5LLGHjmHSJR76vawFPTdlxR/LVJPfOEGxREQwQfjuZEOPTwG92X3LINSh3M40Rv4zpVA==} + '@babel/plugin-transform-exponentiation-operator@7.26.3': + resolution: {integrity: sha512-7CAHcQ58z2chuXPWblnn1K6rLDnDWieghSOEmqQsrBenH0P9InCUtOJYD89pvngljmZlJcz3fcmgYsXFNGa1ZQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.7 - '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.23.7) - dev: true - /@babel/plugin-transform-numeric-separator@7.23.4(@babel/core@7.23.7): - resolution: {integrity: sha512-mps6auzgwjRrwKEZA05cOwuDc9FAzoyFS4ZsG/8F43bTLf/TgkJg7QXOrPO1JO599iA3qgK9MXdMGOEC8O1h6Q==} + '@babel/plugin-transform-export-namespace-from@7.25.9': + resolution: {integrity: sha512-2NsEz+CxzJIVOPx2o9UsW1rXLqtChtLoVnwYHHiB04wS5sgn7mrV45fWMBX0Kk+ub9uXytVYfNP2HjbVbCB3Ww==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.7 - '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.23.7) - dev: true - /@babel/plugin-transform-object-rest-spread@7.23.4(@babel/core@7.23.7): - resolution: {integrity: sha512-9x9K1YyeQVw0iOXJlIzwm8ltobIIv7j2iLyP2jIhEbqPRQ7ScNgwQufU2I0Gq11VjyG4gI4yMXt2VFags+1N3g==} + '@babel/plugin-transform-for-of@7.25.9': + resolution: {integrity: sha512-LqHxduHoaGELJl2uhImHwRQudhCM50pT46rIBNvtT/Oql3nqiS3wOwP+5ten7NpYSXrrVLgtZU3DZmPtWZo16A==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - dependencies: - '@babel/compat-data': 7.23.5 - '@babel/core': 7.23.7 - '@babel/helper-compilation-targets': 7.23.6 - '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.23.7) - '@babel/plugin-transform-parameters': 7.23.3(@babel/core@7.23.7) - dev: true - /@babel/plugin-transform-object-super@7.23.3(@babel/core@7.23.7): - resolution: {integrity: sha512-BwQ8q0x2JG+3lxCVFohg+KbQM7plfpBwThdW9A6TMtWwLsbDA01Ek2Zb/AgDN39BiZsExm4qrXxjk+P1/fzGrA==} + '@babel/plugin-transform-function-name@7.25.9': + resolution: {integrity: sha512-8lP+Yxjv14Vc5MuWBpJsoUCd3hD6V9DgBon2FVYL4jJgbnVQ9fTgYmonchzZJOVNgzEgbxp4OwAf6xz6M/14XA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.7 - '@babel/helper-plugin-utils': 7.22.5 - '@babel/helper-replace-supers': 7.22.20(@babel/core@7.23.7) - dev: true - /@babel/plugin-transform-optional-catch-binding@7.23.4(@babel/core@7.23.7): - resolution: {integrity: sha512-XIq8t0rJPHf6Wvmbn9nFxU6ao4c7WhghTR5WyV8SrJfUFzyxhCm4nhC+iAp3HFhbAKLfYpgzhJ6t4XCtVwqO5A==} + '@babel/plugin-transform-json-strings@7.25.9': + resolution: {integrity: sha512-xoTMk0WXceiiIvsaquQQUaLLXSW1KJ159KP87VilruQm0LNNGxWzahxSS6T6i4Zg3ezp4vA4zuwiNUR53qmQAw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.7 - '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.23.7) - dev: true - /@babel/plugin-transform-optional-chaining@7.23.4(@babel/core@7.23.7): - resolution: {integrity: sha512-ZU8y5zWOfjM5vZ+asjgAPwDaBjJzgufjES89Rs4Lpq63O300R/kOz30WCLo6BxxX6QVEilwSlpClnG5cZaikTA==} + '@babel/plugin-transform-literals@7.25.9': + resolution: {integrity: sha512-9N7+2lFziW8W9pBl2TzaNht3+pgMIRP74zizeCSrtnSKVdUl8mAjjOP2OOVQAfZ881P2cNjDj1uAMEdeD50nuQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.7 - '@babel/helper-plugin-utils': 7.22.5 - '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 - '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.23.7) - dev: true - /@babel/plugin-transform-parameters@7.23.3(@babel/core@7.23.7): - resolution: {integrity: sha512-09lMt6UsUb3/34BbECKVbVwrT9bO6lILWln237z7sLaWnMsTi7Yc9fhX5DLpkJzAGfaReXI22wP41SZmnAA3Vw==} + '@babel/plugin-transform-logical-assignment-operators@7.25.9': + resolution: {integrity: sha512-wI4wRAzGko551Y8eVf6iOY9EouIDTtPb0ByZx+ktDGHwv6bHFimrgJM/2T021txPZ2s4c7bqvHbd+vXG6K948Q==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.7 - '@babel/helper-plugin-utils': 7.22.5 - dev: true - /@babel/plugin-transform-private-methods@7.23.3(@babel/core@7.23.7): - resolution: {integrity: sha512-UzqRcRtWsDMTLrRWFvUBDwmw06tCQH9Rl1uAjfh6ijMSmGYQ+fpdB+cnqRC8EMh5tuuxSv0/TejGL+7vyj+50g==} + '@babel/plugin-transform-member-expression-literals@7.25.9': + resolution: {integrity: sha512-PYazBVfofCQkkMzh2P6IdIUaCEWni3iYEerAsRWuVd8+jlM1S9S9cz1dF9hIzyoZ8IA3+OwVYIp9v9e+GbgZhA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.7 - '@babel/helper-create-class-features-plugin': 7.23.7(@babel/core@7.23.7) - '@babel/helper-plugin-utils': 7.22.5 - dev: true - /@babel/plugin-transform-private-property-in-object@7.23.4(@babel/core@7.23.7): - resolution: {integrity: sha512-9G3K1YqTq3F4Vt88Djx1UZ79PDyj+yKRnUy7cZGSMe+a7jkwD259uKKuUzQlPkGam7R+8RJwh5z4xO27fA1o2A==} + '@babel/plugin-transform-modules-amd@7.25.9': + resolution: {integrity: sha512-g5T11tnI36jVClQlMlt4qKDLlWnG5pP9CSM4GhdRciTNMRgkfpo5cR6b4rGIOYPgRRuFAvwjPQ/Yk+ql4dyhbw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.7 - '@babel/helper-annotate-as-pure': 7.22.5 - '@babel/helper-create-class-features-plugin': 7.23.7(@babel/core@7.23.7) - '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.23.7) - dev: true - /@babel/plugin-transform-property-literals@7.23.3(@babel/core@7.23.7): - resolution: {integrity: sha512-jR3Jn3y7cZp4oEWPFAlRsSWjxKe4PZILGBSd4nis1TsC5qeSpb+nrtihJuDhNI7QHiVbUaiXa0X2RZY3/TI6Nw==} + '@babel/plugin-transform-modules-commonjs@7.26.3': + resolution: {integrity: sha512-MgR55l4q9KddUDITEzEFYn5ZsGDXMSsU9E+kh7fjRXTIC3RHqfCo8RPRbyReYJh44HQ/yomFkqbOFohXvDCiIQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.7 - '@babel/helper-plugin-utils': 7.22.5 - dev: true - /@babel/plugin-transform-react-jsx-self@7.23.3(@babel/core@7.23.7): - resolution: {integrity: sha512-qXRvbeKDSfwnlJnanVRp0SfuWE5DQhwQr5xtLBzp56Wabyo+4CMosF6Kfp+eOD/4FYpql64XVJ2W0pVLlJZxOQ==} + '@babel/plugin-transform-modules-systemjs@7.25.9': + resolution: {integrity: sha512-hyss7iIlH/zLHaehT+xwiymtPOpsiwIIRlCAOwBB04ta5Tt+lNItADdlXw3jAWZ96VJ2jlhl/c+PNIQPKNfvcA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.7 - '@babel/helper-plugin-utils': 7.22.5 - dev: false - /@babel/plugin-transform-react-jsx-source@7.23.3(@babel/core@7.23.7): - resolution: {integrity: sha512-91RS0MDnAWDNvGC6Wio5XYkyWI39FMFO+JK9+4AlgaTH+yWwVTsw7/sn6LK0lH7c5F+TFkpv/3LfCJ1Ydwof/g==} + '@babel/plugin-transform-modules-umd@7.25.9': + resolution: {integrity: sha512-bS9MVObUgE7ww36HEfwe6g9WakQ0KF07mQF74uuXdkoziUPfKyu/nIm663kz//e5O1nPInPFx36z7WJmJ4yNEw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.7 - '@babel/helper-plugin-utils': 7.22.5 - dev: false - /@babel/plugin-transform-react-jsx@7.22.15(@babel/core@7.23.7): - resolution: {integrity: sha512-oKckg2eZFa8771O/5vi7XeTvmM6+O9cxZu+kanTU7tD4sin5nO/G8jGJhq8Hvt2Z0kUoEDRayuZLaUlYl8QuGA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.7 - '@babel/helper-annotate-as-pure': 7.22.5 - '@babel/helper-module-imports': 7.22.15 - '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-jsx': 7.22.5(@babel/core@7.23.7) - '@babel/types': 7.23.6 - - /@babel/plugin-transform-regenerator@7.23.3(@babel/core@7.23.7): - resolution: {integrity: sha512-KP+75h0KghBMcVpuKisx3XTu9Ncut8Q8TuvGO4IhY+9D5DFEckQefOuIsB/gQ2tG71lCke4NMrtIPS8pOj18BQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.7 - '@babel/helper-plugin-utils': 7.22.5 - regenerator-transform: 0.15.2 - dev: true - - /@babel/plugin-transform-reserved-words@7.23.3(@babel/core@7.23.7): - resolution: {integrity: sha512-QnNTazY54YqgGxwIexMZva9gqbPa15t/x9VS+0fsEFWplwVpXYZivtgl43Z1vMpc1bdPP2PP8siFeVcnFvA3Cg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.7 - '@babel/helper-plugin-utils': 7.22.5 - dev: true - - /@babel/plugin-transform-shorthand-properties@7.23.3(@babel/core@7.23.7): - resolution: {integrity: sha512-ED2fgqZLmexWiN+YNFX26fx4gh5qHDhn1O2gvEhreLW2iI63Sqm4llRLCXALKrCnbN4Jy0VcMQZl/SAzqug/jg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.7 - '@babel/helper-plugin-utils': 7.22.5 - dev: true - - /@babel/plugin-transform-spread@7.23.3(@babel/core@7.23.7): - resolution: {integrity: sha512-VvfVYlrlBVu+77xVTOAoxQ6mZbnIq5FM0aGBSFEcIh03qHf+zNqA4DC/3XMUozTg7bZV3e3mZQ0i13VB6v5yUg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.7 - '@babel/helper-plugin-utils': 7.22.5 - '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 - dev: true - - /@babel/plugin-transform-sticky-regex@7.23.3(@babel/core@7.23.7): - resolution: {integrity: sha512-HZOyN9g+rtvnOU3Yh7kSxXrKbzgrm5X4GncPY1QOquu7epga5MxKHVpYu2hvQnry/H+JjckSYRb93iNfsioAGg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.7 - '@babel/helper-plugin-utils': 7.22.5 - dev: true - - /@babel/plugin-transform-template-literals@7.23.3(@babel/core@7.23.7): - resolution: {integrity: sha512-Flok06AYNp7GV2oJPZZcP9vZdszev6vPBkHLwxwSpaIqx75wn6mUd3UFWsSsA0l8nXAKkyCmL/sR02m8RYGeHg==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.7 - '@babel/helper-plugin-utils': 7.22.5 - dev: true - - /@babel/plugin-transform-typeof-symbol@7.23.3(@babel/core@7.23.7): - resolution: {integrity: sha512-4t15ViVnaFdrPC74be1gXBSMzXk3B4Us9lP7uLRQHTFpV5Dvt33pn+2MyyNxmN3VTTm3oTrZVMUmuw3oBnQ2oQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.7 - '@babel/helper-plugin-utils': 7.22.5 - dev: true - - /@babel/plugin-transform-unicode-escapes@7.23.3(@babel/core@7.23.7): - resolution: {integrity: sha512-OMCUx/bU6ChE3r4+ZdylEqAjaQgHAgipgW8nsCfu5pGqDcFytVd91AwRvUJSBZDz0exPGgnjoqhgRYLRjFZc9Q==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.7 - '@babel/helper-plugin-utils': 7.22.5 - dev: true - - /@babel/plugin-transform-unicode-property-regex@7.23.3(@babel/core@7.23.7): - resolution: {integrity: sha512-KcLIm+pDZkWZQAFJ9pdfmh89EwVfmNovFBcXko8szpBeF8z68kWIPeKlmSOkT9BXJxs2C0uk+5LxoxIv62MROA==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.7 - '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.23.7) - '@babel/helper-plugin-utils': 7.22.5 - dev: true - - /@babel/plugin-transform-unicode-regex@7.23.3(@babel/core@7.23.7): - resolution: {integrity: sha512-wMHpNA4x2cIA32b/ci3AfwNgheiva2W0WUKWTK7vBHBhDKfPsc5cFGNWm69WBqpwd86u1qwZ9PWevKqm1A3yAw==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.7 - '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.23.7) - '@babel/helper-plugin-utils': 7.22.5 - dev: true - - /@babel/plugin-transform-unicode-sets-regex@7.23.3(@babel/core@7.23.7): - resolution: {integrity: sha512-W7lliA/v9bNR83Qc3q1ip9CQMZ09CcHDbHfbLRDNuAhn1Mvkr1ZNF7hPmztMQvtTGVLJ9m8IZqWsTkXOml8dbw==} + '@babel/plugin-transform-named-capturing-groups-regex@7.25.9': + resolution: {integrity: sha512-oqB6WHdKTGl3q/ItQhpLSnWWOpjUJLsOCLVyeFgeTktkBSCiurvPOsyt93gibI9CmuKvTUEtWmG5VhZD+5T/KA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 - dependencies: - '@babel/core': 7.23.7 - '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.23.7) - '@babel/helper-plugin-utils': 7.22.5 - dev: true - /@babel/preset-env@7.23.7(@babel/core@7.23.7): - resolution: {integrity: sha512-SY27X/GtTz/L4UryMNJ6p4fH4nsgWbz84y9FE0bQeWJP6O5BhgVCt53CotQKHCOeXJel8VyhlhujhlltKms/CA==} + '@babel/plugin-transform-new-target@7.25.9': + resolution: {integrity: sha512-U/3p8X1yCSoKyUj2eOBIx3FOn6pElFOKvAAGf8HTtItuPyB+ZeOqfn+mvTtg9ZlOAjsPdK3ayQEjqHjU/yLeVQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - dependencies: - '@babel/compat-data': 7.23.5 - '@babel/core': 7.23.7 - '@babel/helper-compilation-targets': 7.23.6 - '@babel/helper-plugin-utils': 7.22.5 - '@babel/helper-validator-option': 7.23.5 - '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression': 7.23.3(@babel/core@7.23.7) - '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining': 7.23.3(@babel/core@7.23.7) - '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly': 7.23.7(@babel/core@7.23.7) - '@babel/plugin-proposal-private-property-in-object': 7.21.0-placeholder-for-preset-env.2(@babel/core@7.23.7) - '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.23.7) - '@babel/plugin-syntax-class-properties': 7.12.13(@babel/core@7.23.7) - '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.23.7) - '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.23.7) - '@babel/plugin-syntax-export-namespace-from': 7.8.3(@babel/core@7.23.7) - '@babel/plugin-syntax-import-assertions': 7.23.3(@babel/core@7.23.7) - '@babel/plugin-syntax-import-attributes': 7.23.3(@babel/core@7.23.7) - '@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@7.23.7) - '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.23.7) - '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.23.7) - '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.23.7) - '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.23.7) - '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.23.7) - '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.23.7) - '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.23.7) - '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.23.7) - '@babel/plugin-syntax-top-level-await': 7.14.5(@babel/core@7.23.7) - '@babel/plugin-syntax-unicode-sets-regex': 7.18.6(@babel/core@7.23.7) - '@babel/plugin-transform-arrow-functions': 7.23.3(@babel/core@7.23.7) - '@babel/plugin-transform-async-generator-functions': 7.23.7(@babel/core@7.23.7) - '@babel/plugin-transform-async-to-generator': 7.23.3(@babel/core@7.23.7) - '@babel/plugin-transform-block-scoped-functions': 7.23.3(@babel/core@7.23.7) - '@babel/plugin-transform-block-scoping': 7.23.4(@babel/core@7.23.7) - '@babel/plugin-transform-class-properties': 7.23.3(@babel/core@7.23.7) - '@babel/plugin-transform-class-static-block': 7.23.4(@babel/core@7.23.7) - '@babel/plugin-transform-classes': 7.23.5(@babel/core@7.23.7) - '@babel/plugin-transform-computed-properties': 7.23.3(@babel/core@7.23.7) - '@babel/plugin-transform-destructuring': 7.23.3(@babel/core@7.23.7) - '@babel/plugin-transform-dotall-regex': 7.23.3(@babel/core@7.23.7) - '@babel/plugin-transform-duplicate-keys': 7.23.3(@babel/core@7.23.7) - '@babel/plugin-transform-dynamic-import': 7.23.4(@babel/core@7.23.7) - '@babel/plugin-transform-exponentiation-operator': 7.23.3(@babel/core@7.23.7) - '@babel/plugin-transform-export-namespace-from': 7.23.4(@babel/core@7.23.7) - '@babel/plugin-transform-for-of': 7.23.6(@babel/core@7.23.7) - '@babel/plugin-transform-function-name': 7.23.3(@babel/core@7.23.7) - '@babel/plugin-transform-json-strings': 7.23.4(@babel/core@7.23.7) - '@babel/plugin-transform-literals': 7.23.3(@babel/core@7.23.7) - '@babel/plugin-transform-logical-assignment-operators': 7.23.4(@babel/core@7.23.7) - '@babel/plugin-transform-member-expression-literals': 7.23.3(@babel/core@7.23.7) - '@babel/plugin-transform-modules-amd': 7.23.3(@babel/core@7.23.7) - '@babel/plugin-transform-modules-commonjs': 7.23.3(@babel/core@7.23.7) - '@babel/plugin-transform-modules-systemjs': 7.23.3(@babel/core@7.23.7) - '@babel/plugin-transform-modules-umd': 7.23.3(@babel/core@7.23.7) - '@babel/plugin-transform-named-capturing-groups-regex': 7.22.5(@babel/core@7.23.7) - '@babel/plugin-transform-new-target': 7.23.3(@babel/core@7.23.7) - '@babel/plugin-transform-nullish-coalescing-operator': 7.23.4(@babel/core@7.23.7) - '@babel/plugin-transform-numeric-separator': 7.23.4(@babel/core@7.23.7) - '@babel/plugin-transform-object-rest-spread': 7.23.4(@babel/core@7.23.7) - '@babel/plugin-transform-object-super': 7.23.3(@babel/core@7.23.7) - '@babel/plugin-transform-optional-catch-binding': 7.23.4(@babel/core@7.23.7) - '@babel/plugin-transform-optional-chaining': 7.23.4(@babel/core@7.23.7) - '@babel/plugin-transform-parameters': 7.23.3(@babel/core@7.23.7) - '@babel/plugin-transform-private-methods': 7.23.3(@babel/core@7.23.7) - '@babel/plugin-transform-private-property-in-object': 7.23.4(@babel/core@7.23.7) - '@babel/plugin-transform-property-literals': 7.23.3(@babel/core@7.23.7) - '@babel/plugin-transform-regenerator': 7.23.3(@babel/core@7.23.7) - '@babel/plugin-transform-reserved-words': 7.23.3(@babel/core@7.23.7) - '@babel/plugin-transform-shorthand-properties': 7.23.3(@babel/core@7.23.7) - '@babel/plugin-transform-spread': 7.23.3(@babel/core@7.23.7) - '@babel/plugin-transform-sticky-regex': 7.23.3(@babel/core@7.23.7) - '@babel/plugin-transform-template-literals': 7.23.3(@babel/core@7.23.7) - '@babel/plugin-transform-typeof-symbol': 7.23.3(@babel/core@7.23.7) - '@babel/plugin-transform-unicode-escapes': 7.23.3(@babel/core@7.23.7) - '@babel/plugin-transform-unicode-property-regex': 7.23.3(@babel/core@7.23.7) - '@babel/plugin-transform-unicode-regex': 7.23.3(@babel/core@7.23.7) - '@babel/plugin-transform-unicode-sets-regex': 7.23.3(@babel/core@7.23.7) - '@babel/preset-modules': 0.1.6-no-external-plugins(@babel/core@7.23.7) - babel-plugin-polyfill-corejs2: 0.4.7(@babel/core@7.23.7) - babel-plugin-polyfill-corejs3: 0.8.7(@babel/core@7.23.7) - babel-plugin-polyfill-regenerator: 0.5.4(@babel/core@7.23.7) - core-js-compat: 3.35.0 - semver: 6.3.1 - transitivePeerDependencies: - - supports-color - dev: true - /@babel/preset-modules@0.1.6-no-external-plugins(@babel/core@7.23.7): + '@babel/plugin-transform-nullish-coalescing-operator@7.26.6': + resolution: {integrity: sha512-CKW8Vu+uUZneQCPtXmSBUC6NCAUdya26hWCElAWh5mVSlSRsmiCPUUDKb3Z0szng1hiAJa098Hkhg9o4SE35Qw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-numeric-separator@7.25.9': + resolution: {integrity: sha512-TlprrJ1GBZ3r6s96Yq8gEQv82s8/5HnCVHtEJScUj90thHQbwe+E5MLhi2bbNHBEJuzrvltXSru+BUxHDoog7Q==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-object-rest-spread@7.25.9': + resolution: {integrity: sha512-fSaXafEE9CVHPweLYw4J0emp1t8zYTXyzN3UuG+lylqkvYd7RMrsOQ8TYx5RF231be0vqtFC6jnx3UmpJmKBYg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-object-super@7.25.9': + resolution: {integrity: sha512-Kj/Gh+Rw2RNLbCK1VAWj2U48yxxqL2x0k10nPtSdRa0O2xnHXalD0s+o1A6a0W43gJ00ANo38jxkQreckOzv5A==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-optional-catch-binding@7.25.9': + resolution: {integrity: sha512-qM/6m6hQZzDcZF3onzIhZeDHDO43bkNNlOX0i8n3lR6zLbu0GN2d8qfM/IERJZYauhAHSLHy39NF0Ctdvcid7g==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-optional-chaining@7.25.9': + resolution: {integrity: sha512-6AvV0FsLULbpnXeBjrY4dmWF8F7gf8QnvTEoO/wX/5xm/xE1Xo8oPuD3MPS+KS9f9XBEAWN7X1aWr4z9HdOr7A==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-parameters@7.25.9': + resolution: {integrity: sha512-wzz6MKwpnshBAiRmn4jR8LYz/g8Ksg0o80XmwZDlordjwEk9SxBzTWC7F5ef1jhbrbOW2DJ5J6ayRukrJmnr0g==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-private-methods@7.25.9': + resolution: {integrity: sha512-D/JUozNpQLAPUVusvqMxyvjzllRaF8/nSrP1s2YGQT/W4LHK4xxsMcHjhOGTS01mp9Hda8nswb+FblLdJornQw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-private-property-in-object@7.25.9': + resolution: {integrity: sha512-Evf3kcMqzXA3xfYJmZ9Pg1OvKdtqsDMSWBDzZOPLvHiTt36E75jLDQo5w1gtRU95Q4E5PDttrTf25Fw8d/uWLw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-property-literals@7.25.9': + resolution: {integrity: sha512-IvIUeV5KrS/VPavfSM/Iu+RE6llrHrYIKY1yfCzyO/lMXHQ+p7uGhonmGVisv6tSBSVgWzMBohTcvkC9vQcQFA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-react-jsx-self@7.25.9': + resolution: {integrity: sha512-y8quW6p0WHkEhmErnfe58r7x0A70uKphQm8Sp8cV7tjNQwK56sNVK0M73LK3WuYmsuyrftut4xAkjjgU0twaMg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-react-jsx-source@7.25.9': + resolution: {integrity: sha512-+iqjT8xmXhhYv4/uiYd8FNQsraMFZIfxVSqxxVSZP0WbbSAWvBXAul0m/zu+7Vv4O/3WtApy9pmaTMiumEZgfg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-regenerator@7.25.9': + resolution: {integrity: sha512-vwDcDNsgMPDGP0nMqzahDWE5/MLcX8sv96+wfX7as7LoF/kr97Bo/7fI00lXY4wUXYfVmwIIyG80fGZ1uvt2qg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-regexp-modifiers@7.26.0': + resolution: {integrity: sha512-vN6saax7lrA2yA/Pak3sCxuD6F5InBjn9IcrIKQPjpsLvuHYLVroTxjdlVRHjjBWxKOqIwpTXDkOssYT4BFdRw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + + '@babel/plugin-transform-reserved-words@7.25.9': + resolution: {integrity: sha512-7DL7DKYjn5Su++4RXu8puKZm2XBPHyjWLUidaPEkCUBbE7IPcsrkRHggAOOKydH1dASWdcUBxrkOGNxUv5P3Jg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-shorthand-properties@7.25.9': + resolution: {integrity: sha512-MUv6t0FhO5qHnS/W8XCbHmiRWOphNufpE1IVxhK5kuN3Td9FT1x4rx4K42s3RYdMXCXpfWkGSbCSd0Z64xA7Ng==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-spread@7.25.9': + resolution: {integrity: sha512-oNknIB0TbURU5pqJFVbOOFspVlrpVwo2H1+HUIsVDvp5VauGGDP1ZEvO8Nn5xyMEs3dakajOxlmkNW7kNgSm6A==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-sticky-regex@7.25.9': + resolution: {integrity: sha512-WqBUSgeVwucYDP9U/xNRQam7xV8W5Zf+6Eo7T2SRVUFlhRiMNFdFz58u0KZmCVVqs2i7SHgpRnAhzRNmKfi2uA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-template-literals@7.25.9': + resolution: {integrity: sha512-o97AE4syN71M/lxrCtQByzphAdlYluKPDBzDVzMmfCobUjjhAryZV0AIpRPrxN0eAkxXO6ZLEScmt+PNhj2OTw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-typeof-symbol@7.26.7': + resolution: {integrity: sha512-jfoTXXZTgGg36BmhqT3cAYK5qkmqvJpvNrPhaK/52Vgjhw4Rq29s9UqpWWV0D6yuRmgiFH/BUVlkl96zJWqnaw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-unicode-escapes@7.25.9': + resolution: {integrity: sha512-s5EDrE6bW97LtxOcGj1Khcx5AaXwiMmi4toFWRDP9/y0Woo6pXC+iyPu/KuhKtfSrNFd7jJB+/fkOtZy6aIC6Q==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-unicode-property-regex@7.25.9': + resolution: {integrity: sha512-Jt2d8Ga+QwRluxRQ307Vlxa6dMrYEMZCgGxoPR8V52rxPyldHu3hdlHspxaqYmE7oID5+kB+UKUB/eWS+DkkWg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-unicode-regex@7.25.9': + resolution: {integrity: sha512-yoxstj7Rg9dlNn9UQxzk4fcNivwv4nUYz7fYXBaKxvw/lnmPuOm/ikoELygbYq68Bls3D/D+NBPHiLwZdZZ4HA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-unicode-sets-regex@7.25.9': + resolution: {integrity: sha512-8BYqO3GeVNHtx69fdPshN3fnzUNLrWdHhk/icSwigksJGczKSizZ+Z6SBCxTs723Fr5VSNorTIK7a+R2tISvwQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + + '@babel/preset-env@7.26.7': + resolution: {integrity: sha512-Ycg2tnXwixaXOVb29rana8HNPgLVBof8qqtNQ9LE22IoyZboQbGSxI6ZySMdW3K5nAe6gu35IaJefUJflhUFTQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/preset-modules@0.1.6-no-external-plugins': resolution: {integrity: sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA==} peerDependencies: '@babel/core': ^7.0.0-0 || ^8.0.0-0 <8.0.0 - dependencies: - '@babel/core': 7.23.7 - '@babel/helper-plugin-utils': 7.22.5 - '@babel/types': 7.23.6 - esutils: 2.0.3 - dev: true - /@babel/regjsgen@0.8.0: - resolution: {integrity: sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA==} - dev: true - - /@babel/runtime@7.20.13: - resolution: {integrity: sha512-gt3PKXs0DBoL9xCvOIIZ2NEqAGZqHjAnmVbfQtB620V0uReIQutpel14KcneZuer7UioY8ALKZ7iocavvzTNFA==} + '@babel/runtime@7.26.7': + resolution: {integrity: sha512-AOPI3D+a8dXnja+iwsUqGRjr1BbZIe771sXdapOtYI531gSqpi92vXivKcq2asu/DFpdl1ceFAKZyRzK2PCVcQ==} engines: {node: '>=6.9.0'} - dependencies: - regenerator-runtime: 0.13.11 - dev: false - /@babel/runtime@7.24.1: - resolution: {integrity: sha512-+BIznRzyqBf+2wCTxcKE3wDjfGeCoVE61KSHGpkzqrLi8qxqFwBeUFyId2cxkTmm55fzDGnm0+yCxaxygrLUnQ==} + '@babel/template@7.25.9': + resolution: {integrity: sha512-9DGttpmPvIxBb/2uwpVo3dqJ+O6RooAFOS+lB+xDqoE2PVCE8nfoHMdZLpfCQRLwvohzXISPZcgxt80xLfsuwg==} engines: {node: '>=6.9.0'} - dependencies: - regenerator-runtime: 0.14.1 - /@babel/template@7.22.15: - resolution: {integrity: sha512-QPErUVm4uyJa60rkI73qneDacvdvzxshT3kksGqlGWYdOTIUOwJ7RDUL8sGqslY1uXWSL6xMFKEXDS3ox2uF0w==} + '@babel/traverse@7.26.7': + resolution: {integrity: sha512-1x1sgeyRLC3r5fQOM0/xtQKsYjyxmFjaOrLJNtZ81inNjyJHGIolTULPiSc/2qe1/qfpFLisLQYFnnZl7QoedA==} engines: {node: '>=6.9.0'} - dependencies: - '@babel/code-frame': 7.23.5 - '@babel/parser': 7.23.6 - '@babel/types': 7.23.6 - /@babel/traverse@7.23.7: - resolution: {integrity: sha512-tY3mM8rH9jM0YHFGyfC0/xf+SB5eKUu7HPj7/k3fpi9dAlsMc5YbQvDi0Sh2QTPXqMhyaAtzAr807TIyfQrmyg==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/code-frame': 7.23.5 - '@babel/generator': 7.23.6 - '@babel/helper-environment-visitor': 7.22.20 - '@babel/helper-function-name': 7.23.0 - '@babel/helper-hoist-variables': 7.22.5 - '@babel/helper-split-export-declaration': 7.22.6 - '@babel/parser': 7.23.6 - '@babel/types': 7.23.6 - debug: 4.3.4 - globals: 11.12.0 - transitivePeerDependencies: - - supports-color - - /@babel/types@7.19.0: + '@babel/types@7.19.0': resolution: {integrity: sha512-YuGopBq3ke25BVSiS6fgF49Ul9gH1x70Bcr6bqRLjWCkcX8Hre1/5+z+IiWOIerRMSSEfGZVB9z9kyq7wVs9YA==} engines: {node: '>=6.9.0'} - dependencies: - '@babel/helper-string-parser': 7.21.5 - '@babel/helper-validator-identifier': 7.19.1 - to-fast-properties: 2.0.0 - dev: true - /@babel/types@7.20.7: - resolution: {integrity: sha512-69OnhBxSSgK0OzTJai4kyPDiKTIe3j+ctaHdIGVbRahTLAT7L3R9oeXHC2aVSuGYt3cVnoAMDmOCgJ2yaiLMvg==} + '@babel/types@7.26.7': + resolution: {integrity: sha512-t8kDRGrKXyp6+tjUh7hw2RLyclsW4TRoRvRHtSyAX9Bb5ldlFh+90YAYY6awRXrlB4G5G2izNeGySpATlFzmOg==} engines: {node: '>=6.9.0'} - dependencies: - '@babel/helper-string-parser': 7.19.4 - '@babel/helper-validator-identifier': 7.19.1 - to-fast-properties: 2.0.0 - dev: true - /@babel/types@7.21.5: - resolution: {integrity: sha512-m4AfNvVF2mVC/F7fDEdH2El3HzUg9It/XsCxZiOTTA3m3qYfcSVSbTfM6Q9xG+hYDniZssYhlXKKUMD5m8tF4Q==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/helper-string-parser': 7.21.5 - '@babel/helper-validator-identifier': 7.19.1 - to-fast-properties: 2.0.0 - dev: true + '@bcoe/v8-coverage@1.0.2': + resolution: {integrity: sha512-6zABk/ECA/QYSCQ1NGiVwwbQerUCZ+TQbp64Q3AgmfNvurHH0j8TtXa1qbShXA6qqkpAj4V5W8pP6mLe1mcMqA==} + engines: {node: '>=18'} - /@babel/types@7.23.6: - resolution: {integrity: sha512-+uarb83brBzPKN38NX1MkB6vb6+mwvR6amUulqAE7ccQw1pEl+bCia9TbdG1lsnFP7lZySvUn37CHyXQdfTwzg==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/helper-string-parser': 7.23.4 - '@babel/helper-validator-identifier': 7.22.20 - to-fast-properties: 2.0.0 + '@codemirror/autocomplete@6.18.4': + resolution: {integrity: sha512-sFAphGQIqyQZfP2ZBsSHV7xQvo9Py0rV0dW7W3IMRdS+zDuNb2l3no78CvUaWKGfzFjI4FTrLdUSj86IGb2hRA==} - /@codemirror/autocomplete@6.11.1(@codemirror/language@6.10.0)(@codemirror/state@6.4.0)(@codemirror/view@6.23.0)(@lezer/common@1.0.2): - resolution: {integrity: sha512-L5UInv8Ffd6BPw0P3EF7JLYAMeEbclY7+6Q11REt8vhih8RuLreKtPy/xk8wPxs4EQgYqzI7cdgpiYwWlbS/ow==} - peerDependencies: - '@codemirror/language': ^6.0.0 - '@codemirror/state': ^6.0.0 - '@codemirror/view': ^6.0.0 - '@lezer/common': ^1.0.0 - dependencies: - '@codemirror/language': 6.10.0 - '@codemirror/state': 6.4.0 - '@codemirror/view': 6.23.0 - '@lezer/common': 1.0.2 - dev: false + '@codemirror/commands@6.8.0': + resolution: {integrity: sha512-q8VPEFaEP4ikSlt6ZxjB3zW72+7osfAYW9i8Zu943uqbKuz6utc1+F170hyLUCUltXORjQXRyYQNfkckzA/bPQ==} - /@codemirror/autocomplete@6.11.1(@codemirror/language@6.10.0)(@codemirror/state@6.4.0)(@codemirror/view@6.23.0)(@lezer/common@1.2.0): - resolution: {integrity: sha512-L5UInv8Ffd6BPw0P3EF7JLYAMeEbclY7+6Q11REt8vhih8RuLreKtPy/xk8wPxs4EQgYqzI7cdgpiYwWlbS/ow==} - peerDependencies: - '@codemirror/language': ^6.0.0 - '@codemirror/state': ^6.0.0 - '@codemirror/view': ^6.0.0 - '@lezer/common': ^1.0.0 - dependencies: - '@codemirror/language': 6.10.0 - '@codemirror/state': 6.4.0 - '@codemirror/view': 6.23.0 - '@lezer/common': 1.2.0 - dev: false + '@codemirror/lang-javascript@6.2.2': + resolution: {integrity: sha512-VGQfY+FCc285AhWuwjYxQyUQcYurWlxdKYT4bqwr3Twnd5wP5WSeu52t4tvvuWmljT4EmgEgZCqSieokhtY8hg==} - /@codemirror/commands@6.3.3: - resolution: {integrity: sha512-dO4hcF0fGT9tu1Pj1D2PvGvxjeGkbC6RGcZw6Qs74TH+Ed1gw98jmUgd2axWvIZEqTeTuFrg1lEB1KV6cK9h1A==} - dependencies: - '@codemirror/language': 6.10.0 - '@codemirror/state': 6.4.0 - '@codemirror/view': 6.23.0 - '@lezer/common': 1.2.0 - dev: false + '@codemirror/language@6.10.8': + resolution: {integrity: sha512-wcP8XPPhDH2vTqf181U8MbZnW+tDyPYy0UzVOa+oHORjyT+mhhom9vBd7dApJwoDz9Nb/a8kHjJIsuA/t8vNFw==} - /@codemirror/lang-javascript@6.2.1: - resolution: {integrity: sha512-jlFOXTejVyiQCW3EQwvKH0m99bUYIw40oPmFjSX2VS78yzfe0HELZ+NEo9Yfo1MkGRpGlj3Gnu4rdxV1EnAs5A==} - dependencies: - '@codemirror/autocomplete': 6.11.1(@codemirror/language@6.10.0)(@codemirror/state@6.4.0)(@codemirror/view@6.23.0)(@lezer/common@1.0.2) - '@codemirror/language': 6.10.0 - '@codemirror/lint': 6.1.0 - '@codemirror/state': 6.4.0 - '@codemirror/view': 6.23.0 - '@lezer/common': 1.0.2 - '@lezer/javascript': 1.4.1 - dev: false + '@codemirror/lint@6.8.4': + resolution: {integrity: sha512-u4q7PnZlJUojeRe8FJa/njJcMctISGgPQ4PnWsd9268R4ZTtU+tfFYmwkBvgcrK2+QQ8tYFVALVb5fVJykKc5A==} - /@codemirror/language@6.10.0: - resolution: {integrity: sha512-2vaNn9aPGCRFKWcHPFksctzJ8yS5p7YoaT+jHpc0UGKzNuAIx4qy6R5wiqbP+heEEdyaABA582mNqSHzSoYdmg==} - dependencies: - '@codemirror/state': 6.4.0 - '@codemirror/view': 6.23.0 - '@lezer/common': 1.2.0 - '@lezer/highlight': 1.2.0 - '@lezer/lr': 1.3.1 - style-mod: 4.0.0 - dev: false + '@codemirror/search@6.5.8': + resolution: {integrity: sha512-PoWtZvo7c1XFeZWmmyaOp2G0XVbOnm+fJzvghqGAktBW3cufwJUWvSCcNG0ppXiBEM05mZu6RhMtXPv2hpllig==} - /@codemirror/lint@6.1.0: - resolution: {integrity: sha512-mdvDQrjRmYPvQ3WrzF6Ewaao+NWERYtpthJvoQ3tK3t/44Ynhk8ZGjTSL9jMEv8CgSMogmt75X8ceOZRDSXHtQ==} - dependencies: - '@codemirror/state': 6.4.0 - '@codemirror/view': 6.23.0 - crelt: 1.0.5 - dev: false + '@codemirror/state@6.5.1': + resolution: {integrity: sha512-3rA9lcwciEB47ZevqvD8qgbzhM9qMb8vCcQCNmDfVRPQG4JT9mSb0Jg8H7YjKGGQcFnLN323fj9jdnG59Kx6bg==} - /@codemirror/lint@6.4.2: - resolution: {integrity: sha512-wzRkluWb1ptPKdzlsrbwwjYCPLgzU6N88YBAmlZi8WFyuiEduSd05MnJYNogzyc8rPK7pj6m95ptUApc8sHKVA==} - dependencies: - '@codemirror/state': 6.4.0 - '@codemirror/view': 6.23.0 - crelt: 1.0.6 - dev: false + '@codemirror/view@6.36.2': + resolution: {integrity: sha512-DZ6ONbs8qdJK0fdN7AB82CgI6tYXf4HWk1wSVa0+9bhVznCuuvhQtX8bFBoy3dv8rZSQqUd8GvhVAcielcidrA==} - /@codemirror/search@6.5.5: - resolution: {integrity: sha512-PIEN3Ke1buPod2EHbJsoQwlbpkz30qGZKcnmH1eihq9+bPQx8gelauUwLYaY4vBOuBAuEhmpDLii4rj/uO0yMA==} - dependencies: - '@codemirror/state': 6.4.0 - '@codemirror/view': 6.23.0 - crelt: 1.0.5 - dev: false - - /@codemirror/state@6.4.0: - resolution: {integrity: sha512-hm8XshYj5Fo30Bb922QX9hXB/bxOAVH+qaqHBzw5TKa72vOeslyGwd4X8M0c1dJ9JqxlaMceOQ8RsL9tC7gU0A==} - dev: false - - /@codemirror/view@6.23.0: - resolution: {integrity: sha512-/51px9N4uW8NpuWkyUX+iam5+PM6io2fm+QmRnzwqBy5v/pwGg9T0kILFtYeum8hjuvENtgsGNKluOfqIICmeQ==} - dependencies: - '@codemirror/state': 6.4.0 - style-mod: 4.1.0 - w3c-keyname: 2.2.6 - dev: false - - /@csound/browser@6.18.7(eslint@8.56.0): + '@csound/browser@6.18.7': resolution: {integrity: sha512-pHC83n1fzV9xp7hkFNBTWYsqkBnOS3qNAA9AJNnu3ZCG35a4rMZ5ydOuFi3qqfkLwRTd+frazabxM/lu0+u0qw==} - dependencies: - comlink: 4.3.1 - eslint-plugin-n: 15.6.1(eslint@8.56.0) - eventemitter3: 4.0.7 - google-closure-compiler: 20221102.0.1 - google-closure-library: 20221102.0.0 - path-browserify: 1.0.1 - rambda: 7.4.0 - rimraf: 3.0.2 - standardized-audio-context: 25.3.37 - text-encoding-shim: 1.0.5 - unmute-ios-audio: 3.3.0 - web-midi-api: 2.2.2 - transitivePeerDependencies: - - eslint - dev: false - /@dependents/detective-less@4.1.0: - resolution: {integrity: sha512-KrkT6qO5NxqNfy68sBl6CTSoJ4SNDIS5iQArkibhlbGU4LaDukZ3q2HIkh8aUKDio6o4itU4xDR7t82Y2eP1Bg==} - engines: {node: '>=14'} - dependencies: - gonzales-pe: 4.3.0 - node-source-walk: 6.0.2 - dev: true + '@dependents/detective-less@5.0.0': + resolution: {integrity: sha512-D/9dozteKcutI5OdxJd8rU+fL6XgaaRg60sPPJWkT33OCiRfkCu5wO5B/yXTaaL2e6EB0lcCBGe5E0XscZCvvQ==} + engines: {node: '>=18'} - /@docsearch/css@3.5.2: - resolution: {integrity: sha512-SPiDHaWKQZpwR2siD0KQUwlStvIAnEyK6tAE2h2Wuoq8ue9skzhlyVQ1ddzOxX6khULnAALDiR/isSF3bnuciA==} - dev: false + '@docsearch/css@3.8.3': + resolution: {integrity: sha512-1nELpMV40JDLJ6rpVVFX48R1jsBFIQ6RnEQDsLFGmzOjPWTOMlZqUcXcvRx8VmYV/TqnS1l784Ofz+ZEb+wEOQ==} - /@docsearch/react@3.5.2(@algolia/client-search@4.22.0)(@types/react@18.2.46)(react-dom@18.2.0)(react@18.2.0)(search-insights@2.13.0): - resolution: {integrity: sha512-9Ahcrs5z2jq/DcAvYtvlqEBHImbm4YJI8M9y0x6Tqg598P40HTEkX7hsMcIuThI+hTFxRGZ9hll0Wygm2yEjng==} + '@docsearch/react@3.8.3': + resolution: {integrity: sha512-6UNrg88K7lJWmuS6zFPL/xgL+n326qXqZ7Ybyy4E8P/6Rcblk3GE8RXxeol4Pd5pFpKMhOhBhzABKKwHtbJCIg==} peerDependencies: '@types/react': '>= 16.8.0 < 19.0.0' react: '>= 16.8.0 < 19.0.0' @@ -2395,1475 +1537,711 @@ packages: optional: true search-insights: optional: true - dependencies: - '@algolia/autocomplete-core': 1.9.3(@algolia/client-search@4.22.0)(algoliasearch@4.22.0)(search-insights@2.13.0) - '@algolia/autocomplete-preset-algolia': 1.9.3(@algolia/client-search@4.22.0)(algoliasearch@4.22.0) - '@docsearch/css': 3.5.2 - '@types/react': 18.2.46 - algoliasearch: 4.22.0 - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) - search-insights: 2.13.0 - transitivePeerDependencies: - - '@algolia/client-search' - dev: false - /@emnapi/runtime@0.44.0: - resolution: {integrity: sha512-ZX/etZEZw8DR7zAB1eVQT40lNo0jeqpb6dCgOvctB6FIQ5PoXfMuNY8+ayQfu8tNQbAB8gQWSSJupR8NxeiZXw==} - requiresBuild: true - dependencies: - tslib: 2.6.2 - optional: true + '@emnapi/core@1.3.1': + resolution: {integrity: sha512-pVGjBIt1Y6gg3EJN8jTcfpP/+uuRksIo055oE/OBkDNcjZqVbfkWCksG1Jp4yZnj3iKWyWX8fdG/j6UDYPbFog==} - /@esbuild/aix-ppc64@0.19.11: - resolution: {integrity: sha512-FnzU0LyE3ySQk7UntJO4+qIiQgI7KoODnZg5xzXIrFJlKd2P2gwHsHY4927xj9y5PJmJSzULiUCWmv7iWnNa7g==} - engines: {node: '>=12'} + '@emnapi/runtime@1.3.1': + resolution: {integrity: sha512-kEBmG8KyqtxJZv+ygbEim+KCGtIq1fC22Ms3S4ziXmYKm8uyoLX0MHONVKwp+9opg390VaKRNt4a7A9NwmpNhw==} + + '@emnapi/wasi-threads@1.0.1': + resolution: {integrity: sha512-iIBu7mwkq4UQGeMEM8bLwNK962nXdhodeScX4slfQnRhEMMzvYivHhutCIk8uojvmASXXPC2WNEjwxFWk72Oqw==} + + '@esbuild/aix-ppc64@0.24.2': + resolution: {integrity: sha512-thpVCb/rhxE/BnMLQ7GReQLLN8q9qbHmI55F4489/ByVg2aQaQ6kbcLb6FHkocZzQhxc4gx0sCk0tJkKBFzDhA==} + engines: {node: '>=18'} cpu: [ppc64] os: [aix] - requiresBuild: true - optional: true - /@esbuild/aix-ppc64@0.20.2: - resolution: {integrity: sha512-D+EBOJHXdNZcLJRBkhENNG8Wji2kgc9AZ9KiPr1JuZjsNtyHzrsfLRrY0tk2H2aoFu6RANO1y1iPPUCDYWkb5g==} - engines: {node: '>=12'} - cpu: [ppc64] - os: [aix] - requiresBuild: true - optional: true - - /@esbuild/android-arm64@0.19.11: - resolution: {integrity: sha512-aiu7K/5JnLj//KOnOfEZ0D90obUkRzDMyqd/wNAUQ34m4YUPVhRZpnqKV9uqDGxT7cToSDnIHsGooyIczu9T+Q==} - engines: {node: '>=12'} + '@esbuild/android-arm64@0.24.2': + resolution: {integrity: sha512-cNLgeqCqV8WxfcTIOeL4OAtSmL8JjcN6m09XIgro1Wi7cF4t/THaWEa7eL5CMoMBdjoHOTh/vwTO/o2TRXIyzg==} + engines: {node: '>=18'} cpu: [arm64] os: [android] - requiresBuild: true - optional: true - /@esbuild/android-arm64@0.19.5: - resolution: {integrity: sha512-5d1OkoJxnYQfmC+Zd8NBFjkhyCNYwM4n9ODrycTFY6Jk1IGiZ+tjVJDDSwDt77nK+tfpGP4T50iMtVi4dEGzhQ==} - engines: {node: '>=12'} - cpu: [arm64] - os: [android] - 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 - optional: true - - /@esbuild/android-arm@0.19.11: - resolution: {integrity: sha512-5OVapq0ClabvKvQ58Bws8+wkLCV+Rxg7tUVbo9xu034Nm536QTII4YzhaFriQ7rMrorfnFKUsArD2lqKbFY4vw==} - engines: {node: '>=12'} + '@esbuild/android-arm@0.24.2': + resolution: {integrity: sha512-tmwl4hJkCfNHwFB3nBa8z1Uy3ypZpxqxfTQOcHX+xRByyYgunVbZ9MzUUfb0RxaHIMnbHagwAxuTL+tnNM+1/Q==} + engines: {node: '>=18'} cpu: [arm] os: [android] - requiresBuild: true - optional: true - /@esbuild/android-arm@0.19.5: - resolution: {integrity: sha512-bhvbzWFF3CwMs5tbjf3ObfGqbl/17ict2/uwOSfr3wmxDE6VdS2GqY/FuzIPe0q0bdhj65zQsvqfArI9MY6+AA==} - engines: {node: '>=12'} - cpu: [arm] - 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 - optional: true - - /@esbuild/android-x64@0.19.11: - resolution: {integrity: sha512-eccxjlfGw43WYoY9QgB82SgGgDbibcqyDTlk3l3C0jOVHKxrjdc9CTwDUQd0vkvYg5um0OH+GpxYvp39r+IPOg==} - engines: {node: '>=12'} + '@esbuild/android-x64@0.24.2': + resolution: {integrity: sha512-B6Q0YQDqMx9D7rvIcsXfmJfvUYLoP722bgfBlO5cGvNVb5V/+Y7nhBE3mHV9OpxBf4eAS2S68KZztiPaWq4XYw==} + engines: {node: '>=18'} cpu: [x64] os: [android] - requiresBuild: true - optional: true - /@esbuild/android-x64@0.19.5: - resolution: {integrity: sha512-9t+28jHGL7uBdkBjL90QFxe7DVA+KGqWlHCF8ChTKyaKO//VLuoBricQCgwhOjA1/qOczsw843Fy4cbs4H3DVA==} - engines: {node: '>=12'} - cpu: [x64] - 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 - optional: true - - /@esbuild/darwin-arm64@0.19.11: - resolution: {integrity: sha512-ETp87DRWuSt9KdDVkqSoKoLFHYTrkyz2+65fj9nfXsaV3bMhTCjtQfw3y+um88vGRKRiF7erPrh/ZuIdLUIVxQ==} - engines: {node: '>=12'} + '@esbuild/darwin-arm64@0.24.2': + resolution: {integrity: sha512-kj3AnYWc+CekmZnS5IPu9D+HWtUI49hbnyqk0FLEJDbzCIQt7hg7ucF1SQAilhtYpIujfaHr6O0UHlzzSPdOeA==} + engines: {node: '>=18'} cpu: [arm64] os: [darwin] - requiresBuild: true - optional: true - /@esbuild/darwin-arm64@0.19.5: - resolution: {integrity: sha512-mvXGcKqqIqyKoxq26qEDPHJuBYUA5KizJncKOAf9eJQez+L9O+KfvNFu6nl7SCZ/gFb2QPaRqqmG0doSWlgkqw==} - engines: {node: '>=12'} - cpu: [arm64] - os: [darwin] - 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 - optional: true - - /@esbuild/darwin-x64@0.19.11: - resolution: {integrity: sha512-fkFUiS6IUK9WYUO/+22omwetaSNl5/A8giXvQlcinLIjVkxwTLSktbF5f/kJMftM2MJp9+fXqZ5ezS7+SALp4g==} - engines: {node: '>=12'} + '@esbuild/darwin-x64@0.24.2': + resolution: {integrity: sha512-WeSrmwwHaPkNR5H3yYfowhZcbriGqooyu3zI/3GGpF8AyUdsrrP0X6KumITGA9WOyiJavnGZUwPGvxvwfWPHIA==} + engines: {node: '>=18'} cpu: [x64] os: [darwin] - requiresBuild: true - optional: true - /@esbuild/darwin-x64@0.19.5: - resolution: {integrity: sha512-Ly8cn6fGLNet19s0X4unjcniX24I0RqjPv+kurpXabZYSXGM4Pwpmf85WHJN3lAgB8GSth7s5A0r856S+4DyiA==} - engines: {node: '>=12'} - cpu: [x64] - 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 - optional: true - - /@esbuild/freebsd-arm64@0.19.11: - resolution: {integrity: sha512-lhoSp5K6bxKRNdXUtHoNc5HhbXVCS8V0iZmDvyWvYq9S5WSfTIHU2UGjcGt7UeS6iEYp9eeymIl5mJBn0yiuxA==} - engines: {node: '>=12'} + '@esbuild/freebsd-arm64@0.24.2': + resolution: {integrity: sha512-UN8HXjtJ0k/Mj6a9+5u6+2eZ2ERD7Edt1Q9IZiB5UZAIdPnVKDoG7mdTVGhHJIeEml60JteamR3qhsr1r8gXvg==} + engines: {node: '>=18'} cpu: [arm64] os: [freebsd] - requiresBuild: true - optional: true - /@esbuild/freebsd-arm64@0.19.5: - resolution: {integrity: sha512-GGDNnPWTmWE+DMchq1W8Sd0mUkL+APvJg3b11klSGUDvRXh70JqLAO56tubmq1s2cgpVCSKYywEiKBfju8JztQ==} - engines: {node: '>=12'} - cpu: [arm64] - os: [freebsd] - 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 - optional: true - - /@esbuild/freebsd-x64@0.19.11: - resolution: {integrity: sha512-JkUqn44AffGXitVI6/AbQdoYAq0TEullFdqcMY/PCUZ36xJ9ZJRtQabzMA+Vi7r78+25ZIBosLTOKnUXBSi1Kw==} - engines: {node: '>=12'} + '@esbuild/freebsd-x64@0.24.2': + resolution: {integrity: sha512-TvW7wE/89PYW+IevEJXZ5sF6gJRDY/14hyIGFXdIucxCsbRmLUcjseQu1SyTko+2idmCw94TgyaEZi9HUSOe3Q==} + engines: {node: '>=18'} cpu: [x64] os: [freebsd] - requiresBuild: true - optional: true - /@esbuild/freebsd-x64@0.19.5: - resolution: {integrity: sha512-1CCwDHnSSoA0HNwdfoNY0jLfJpd7ygaLAp5EHFos3VWJCRX9DMwWODf96s9TSse39Br7oOTLryRVmBoFwXbuuQ==} - engines: {node: '>=12'} - cpu: [x64] - 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 - optional: true - - /@esbuild/linux-arm64@0.19.11: - resolution: {integrity: sha512-LneLg3ypEeveBSMuoa0kwMpCGmpu8XQUh+mL8XXwoYZ6Be2qBnVtcDI5azSvh7vioMDhoJFZzp9GWp9IWpYoUg==} - engines: {node: '>=12'} + '@esbuild/linux-arm64@0.24.2': + resolution: {integrity: sha512-7HnAD6074BW43YvvUmE/35Id9/NB7BeX5EoNkK9obndmZBUk8xmJJeU7DwmUeN7tkysslb2eSl6CTrYz6oEMQg==} + engines: {node: '>=18'} cpu: [arm64] os: [linux] - requiresBuild: true - optional: true - /@esbuild/linux-arm64@0.19.5: - resolution: {integrity: sha512-o3vYippBmSrjjQUCEEiTZ2l+4yC0pVJD/Dl57WfPwwlvFkrxoSO7rmBZFii6kQB3Wrn/6GwJUPLU5t52eq2meA==} - engines: {node: '>=12'} - cpu: [arm64] - os: [linux] - 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 - optional: true - - /@esbuild/linux-arm@0.19.11: - resolution: {integrity: sha512-3CRkr9+vCV2XJbjwgzjPtO8T0SZUmRZla+UL1jw+XqHZPkPgZiyWvbDvl9rqAN8Zl7qJF0O/9ycMtjU67HN9/Q==} - engines: {node: '>=12'} + '@esbuild/linux-arm@0.24.2': + resolution: {integrity: sha512-n0WRM/gWIdU29J57hJyUdIsk0WarGd6To0s+Y+LwvlC55wt+GT/OgkwoXCXvIue1i1sSNWblHEig00GBWiJgfA==} + engines: {node: '>=18'} cpu: [arm] os: [linux] - requiresBuild: true - optional: true - /@esbuild/linux-arm@0.19.5: - resolution: {integrity: sha512-lrWXLY/vJBzCPC51QN0HM71uWgIEpGSjSZZADQhq7DKhPcI6NH1IdzjfHkDQws2oNpJKpR13kv7/pFHBbDQDwQ==} - engines: {node: '>=12'} - cpu: [arm] - 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 - optional: true - - /@esbuild/linux-ia32@0.19.11: - resolution: {integrity: sha512-caHy++CsD8Bgq2V5CodbJjFPEiDPq8JJmBdeyZ8GWVQMjRD0sU548nNdwPNvKjVpamYYVL40AORekgfIubwHoA==} - engines: {node: '>=12'} + '@esbuild/linux-ia32@0.24.2': + resolution: {integrity: sha512-sfv0tGPQhcZOgTKO3oBE9xpHuUqguHvSo4jl+wjnKwFpapx+vUDcawbwPNuBIAYdRAvIDBfZVvXprIj3HA+Ugw==} + engines: {node: '>=18'} cpu: [ia32] os: [linux] - requiresBuild: true - optional: true - /@esbuild/linux-ia32@0.19.5: - resolution: {integrity: sha512-MkjHXS03AXAkNp1KKkhSKPOCYztRtK+KXDNkBa6P78F8Bw0ynknCSClO/ztGszILZtyO/lVKpa7MolbBZ6oJtQ==} - engines: {node: '>=12'} - cpu: [ia32] - 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 - optional: true - - /@esbuild/linux-loong64@0.19.11: - resolution: {integrity: sha512-ppZSSLVpPrwHccvC6nQVZaSHlFsvCQyjnvirnVjbKSHuE5N24Yl8F3UwYUUR1UEPaFObGD2tSvVKbvR+uT1Nrg==} - engines: {node: '>=12'} + '@esbuild/linux-loong64@0.24.2': + resolution: {integrity: sha512-CN9AZr8kEndGooS35ntToZLTQLHEjtVB5n7dl8ZcTZMonJ7CCfStrYhrzF97eAecqVbVJ7APOEe18RPI4KLhwQ==} + engines: {node: '>=18'} cpu: [loong64] os: [linux] - requiresBuild: true - optional: true - /@esbuild/linux-loong64@0.19.5: - resolution: {integrity: sha512-42GwZMm5oYOD/JHqHska3Jg0r+XFb/fdZRX+WjADm3nLWLcIsN27YKtqxzQmGNJgu0AyXg4HtcSK9HuOk3v1Dw==} - engines: {node: '>=12'} - cpu: [loong64] - 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 - optional: true - - /@esbuild/linux-mips64el@0.19.11: - resolution: {integrity: sha512-B5x9j0OgjG+v1dF2DkH34lr+7Gmv0kzX6/V0afF41FkPMMqaQ77pH7CrhWeR22aEeHKaeZVtZ6yFwlxOKPVFyg==} - engines: {node: '>=12'} + '@esbuild/linux-mips64el@0.24.2': + resolution: {integrity: sha512-iMkk7qr/wl3exJATwkISxI7kTcmHKE+BlymIAbHO8xanq/TjHaaVThFF6ipWzPHryoFsesNQJPE/3wFJw4+huw==} + engines: {node: '>=18'} cpu: [mips64el] os: [linux] - requiresBuild: true - optional: true - /@esbuild/linux-mips64el@0.19.5: - resolution: {integrity: sha512-kcjndCSMitUuPJobWCnwQ9lLjiLZUR3QLQmlgaBfMX23UEa7ZOrtufnRds+6WZtIS9HdTXqND4yH8NLoVVIkcg==} - engines: {node: '>=12'} - cpu: [mips64el] - 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 - optional: true - - /@esbuild/linux-ppc64@0.19.11: - resolution: {integrity: sha512-MHrZYLeCG8vXblMetWyttkdVRjQlQUb/oMgBNurVEnhj4YWOr4G5lmBfZjHYQHHN0g6yDmCAQRR8MUHldvvRDA==} - engines: {node: '>=12'} + '@esbuild/linux-ppc64@0.24.2': + resolution: {integrity: sha512-shsVrgCZ57Vr2L8mm39kO5PPIb+843FStGt7sGGoqiiWYconSxwTiuswC1VJZLCjNiMLAMh34jg4VSEQb+iEbw==} + engines: {node: '>=18'} cpu: [ppc64] os: [linux] - requiresBuild: true - optional: true - /@esbuild/linux-ppc64@0.19.5: - resolution: {integrity: sha512-yJAxJfHVm0ZbsiljbtFFP1BQKLc8kUF6+17tjQ78QjqjAQDnhULWiTA6u0FCDmYT1oOKS9PzZ2z0aBI+Mcyj7Q==} - engines: {node: '>=12'} - cpu: [ppc64] - 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 - optional: true - - /@esbuild/linux-riscv64@0.19.11: - resolution: {integrity: sha512-f3DY++t94uVg141dozDu4CCUkYW+09rWtaWfnb3bqe4w5NqmZd6nPVBm+qbz7WaHZCoqXqHz5p6CM6qv3qnSSQ==} - engines: {node: '>=12'} + '@esbuild/linux-riscv64@0.24.2': + resolution: {integrity: sha512-4eSFWnU9Hhd68fW16GD0TINewo1L6dRrB+oLNNbYyMUAeOD2yCK5KXGK1GH4qD/kT+bTEXjsyTCiJGHPZ3eM9Q==} + engines: {node: '>=18'} cpu: [riscv64] os: [linux] - requiresBuild: true - optional: true - /@esbuild/linux-riscv64@0.19.5: - resolution: {integrity: sha512-5u8cIR/t3gaD6ad3wNt1MNRstAZO+aNyBxu2We8X31bA8XUNyamTVQwLDA1SLoPCUehNCymhBhK3Qim1433Zag==} - engines: {node: '>=12'} - cpu: [riscv64] - 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 - optional: true - - /@esbuild/linux-s390x@0.19.11: - resolution: {integrity: sha512-A5xdUoyWJHMMlcSMcPGVLzYzpcY8QP1RtYzX5/bS4dvjBGVxdhuiYyFwp7z74ocV7WDc0n1harxmpq2ePOjI0Q==} - engines: {node: '>=12'} + '@esbuild/linux-s390x@0.24.2': + resolution: {integrity: sha512-S0Bh0A53b0YHL2XEXC20bHLuGMOhFDO6GN4b3YjRLK//Ep3ql3erpNcPlEFed93hsQAjAQDNsvcK+hV90FubSw==} + engines: {node: '>=18'} cpu: [s390x] os: [linux] - requiresBuild: true - optional: true - /@esbuild/linux-s390x@0.19.5: - resolution: {integrity: sha512-Z6JrMyEw/EmZBD/OFEFpb+gao9xJ59ATsoTNlj39jVBbXqoZm4Xntu6wVmGPB/OATi1uk/DB+yeDPv2E8PqZGw==} - engines: {node: '>=12'} - cpu: [s390x] - 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 - optional: true - - /@esbuild/linux-x64@0.19.11: - resolution: {integrity: sha512-grbyMlVCvJSfxFQUndw5mCtWs5LO1gUlwP4CDi4iJBbVpZcqLVT29FxgGuBJGSzyOxotFG4LoO5X+M1350zmPA==} - engines: {node: '>=12'} + '@esbuild/linux-x64@0.24.2': + resolution: {integrity: sha512-8Qi4nQcCTbLnK9WoMjdC9NiTG6/E38RNICU6sUNqK0QFxCYgoARqVqxdFmWkdonVsvGqWhmm7MO0jyTqLqwj0Q==} + engines: {node: '>=18'} cpu: [x64] os: [linux] - requiresBuild: true - optional: true - /@esbuild/linux-x64@0.19.5: - resolution: {integrity: sha512-psagl+2RlK1z8zWZOmVdImisMtrUxvwereIdyJTmtmHahJTKb64pAcqoPlx6CewPdvGvUKe2Jw+0Z/0qhSbG1A==} - engines: {node: '>=12'} - cpu: [x64] - os: [linux] - requiresBuild: true - dev: true - optional: true + '@esbuild/netbsd-arm64@0.24.2': + resolution: {integrity: sha512-wuLK/VztRRpMt9zyHSazyCVdCXlpHkKm34WUyinD2lzK07FAHTq0KQvZZlXikNWkDGoT6x3TD51jKQ7gMVpopw==} + engines: {node: '>=18'} + cpu: [arm64] + os: [netbsd] - /@esbuild/linux-x64@0.20.2: - resolution: {integrity: sha512-1MdwI6OOTsfQfek8sLwgyjOXAu+wKhLEoaOLTjbijk6E2WONYpH9ZU2mNtR+lZ2B4uwr+usqGuVfFT9tMtGvGw==} - engines: {node: '>=12'} - cpu: [x64] - os: [linux] - requiresBuild: true - optional: true - - /@esbuild/netbsd-x64@0.19.11: - resolution: {integrity: sha512-13jvrQZJc3P230OhU8xgwUnDeuC/9egsjTkXN49b3GcS5BKvJqZn86aGM8W9pd14Kd+u7HuFBMVtrNGhh6fHEQ==} - engines: {node: '>=12'} + '@esbuild/netbsd-x64@0.24.2': + resolution: {integrity: sha512-VefFaQUc4FMmJuAxmIHgUmfNiLXY438XrL4GDNV1Y1H/RW3qow68xTwjZKfj/+Plp9NANmzbH5R40Meudu8mmw==} + engines: {node: '>=18'} cpu: [x64] os: [netbsd] - requiresBuild: true - optional: true - /@esbuild/netbsd-x64@0.19.5: - resolution: {integrity: sha512-kL2l+xScnAy/E/3119OggX8SrWyBEcqAh8aOY1gr4gPvw76la2GlD4Ymf832UCVbmuWeTf2adkZDK+h0Z/fB4g==} - engines: {node: '>=12'} - cpu: [x64] - os: [netbsd] - requiresBuild: true - dev: true - optional: true + '@esbuild/openbsd-arm64@0.24.2': + resolution: {integrity: sha512-YQbi46SBct6iKnszhSvdluqDmxCJA+Pu280Av9WICNwQmMxV7nLRHZfjQzwbPs3jeWnuAhE9Jy0NrnJ12Oz+0A==} + engines: {node: '>=18'} + cpu: [arm64] + os: [openbsd] - /@esbuild/netbsd-x64@0.20.2: - resolution: {integrity: sha512-K8/DhBxcVQkzYc43yJXDSyjlFeHQJBiowJ0uVL6Tor3jGQfSGHNNJcWxNbOI8v5k82prYqzPuwkzHt3J1T1iZQ==} - engines: {node: '>=12'} - cpu: [x64] - os: [netbsd] - requiresBuild: true - optional: true - - /@esbuild/openbsd-x64@0.19.11: - resolution: {integrity: sha512-ysyOGZuTp6SNKPE11INDUeFVVQFrhcNDVUgSQVDzqsqX38DjhPEPATpid04LCoUr2WXhQTEZ8ct/EgJCUDpyNw==} - engines: {node: '>=12'} + '@esbuild/openbsd-x64@0.24.2': + resolution: {integrity: sha512-+iDS6zpNM6EnJyWv0bMGLWSWeXGN/HTaF/LXHXHwejGsVi+ooqDfMCCTerNFxEkM3wYVcExkeGXNqshc9iMaOA==} + engines: {node: '>=18'} cpu: [x64] os: [openbsd] - requiresBuild: true - optional: true - /@esbuild/openbsd-x64@0.19.5: - resolution: {integrity: sha512-sPOfhtzFufQfTBgRnE1DIJjzsXukKSvZxloZbkJDG383q0awVAq600pc1nfqBcl0ice/WN9p4qLc39WhBShRTA==} - engines: {node: '>=12'} - cpu: [x64] - os: [openbsd] - 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 - optional: true - - /@esbuild/sunos-x64@0.19.11: - resolution: {integrity: sha512-Hf+Sad9nVwvtxy4DXCZQqLpgmRTQqyFyhT3bZ4F2XlJCjxGmRFF0Shwn9rzhOYRB61w9VMXUkxlBy56dk9JJiQ==} - engines: {node: '>=12'} + '@esbuild/sunos-x64@0.24.2': + resolution: {integrity: sha512-hTdsW27jcktEvpwNHJU4ZwWFGkz2zRJUz8pvddmXPtXDzVKTTINmlmga3ZzwcuMpUvLw7JkLy9QLKyGpD2Yxig==} + engines: {node: '>=18'} cpu: [x64] os: [sunos] - requiresBuild: true - optional: true - /@esbuild/sunos-x64@0.19.5: - resolution: {integrity: sha512-dGZkBXaafuKLpDSjKcB0ax0FL36YXCvJNnztjKV+6CO82tTYVDSH2lifitJ29jxRMoUhgkg9a+VA/B03WK5lcg==} - engines: {node: '>=12'} - cpu: [x64] - os: [sunos] - 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 - optional: true - - /@esbuild/win32-arm64@0.19.11: - resolution: {integrity: sha512-0P58Sbi0LctOMOQbpEOvOL44Ne0sqbS0XWHMvvrg6NE5jQ1xguCSSw9jQeUk2lfrXYsKDdOe6K+oZiwKPilYPQ==} - engines: {node: '>=12'} + '@esbuild/win32-arm64@0.24.2': + resolution: {integrity: sha512-LihEQ2BBKVFLOC9ZItT9iFprsE9tqjDjnbulhHoFxYQtQfai7qfluVODIYxt1PgdoyQkz23+01rzwNwYfutxUQ==} + engines: {node: '>=18'} cpu: [arm64] os: [win32] - requiresBuild: true - optional: true - /@esbuild/win32-arm64@0.19.5: - resolution: {integrity: sha512-dWVjD9y03ilhdRQ6Xig1NWNgfLtf2o/STKTS+eZuF90fI2BhbwD6WlaiCGKptlqXlURVB5AUOxUj09LuwKGDTg==} - engines: {node: '>=12'} - cpu: [arm64] - os: [win32] - 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 - optional: true - - /@esbuild/win32-ia32@0.19.11: - resolution: {integrity: sha512-6YOrWS+sDJDmshdBIQU+Uoyh7pQKrdykdefC1avn76ss5c+RN6gut3LZA4E2cH5xUEp5/cA0+YxRaVtRAb0xBg==} - engines: {node: '>=12'} + '@esbuild/win32-ia32@0.24.2': + resolution: {integrity: sha512-q+iGUwfs8tncmFC9pcnD5IvRHAzmbwQ3GPS5/ceCyHdjXubwQWI12MKWSNSMYLJMq23/IUCvJMS76PDqXe1fxA==} + engines: {node: '>=18'} cpu: [ia32] os: [win32] - requiresBuild: true - optional: true - /@esbuild/win32-ia32@0.19.5: - resolution: {integrity: sha512-4liggWIA4oDgUxqpZwrDhmEfAH4d0iljanDOK7AnVU89T6CzHon/ony8C5LeOdfgx60x5cnQJFZwEydVlYx4iw==} - engines: {node: '>=12'} - cpu: [ia32] - 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 - optional: true - - /@esbuild/win32-x64@0.19.11: - resolution: {integrity: sha512-vfkhltrjCAb603XaFhqhAF4LGDi2M4OrCRrFusyQ+iTLQ/o60QQXxc9cZC/FFpihBI9N1Grn6SMKVJ4KP7Fuiw==} - engines: {node: '>=12'} + '@esbuild/win32-x64@0.24.2': + resolution: {integrity: sha512-7VTgWzgMGvup6aSqDPLiW5zHaxYJGTO4OokMjIlrCtf+VpEL+cXKtCvg723iguPYI5oaUNdS+/V7OU2gvXVWEg==} + engines: {node: '>=18'} cpu: [x64] os: [win32] - requiresBuild: true - optional: true - /@esbuild/win32-x64@0.19.5: - resolution: {integrity: sha512-czTrygUsB/jlM8qEW5MD8bgYU2Xg14lo6kBDXW6HdxKjh8M5PzETGiSHaz9MtbXBYDloHNUAUW2tMiKW4KM9Mw==} - engines: {node: '>=12'} - cpu: [x64] - 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 - optional: true - - /@eslint-community/eslint-utils@4.4.0(eslint@8.56.0): - resolution: {integrity: sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==} + '@eslint-community/eslint-utils@4.4.1': + resolution: {integrity: sha512-s3O3waFUrMV8P/XaF/+ZTp1X9XBZW1a4B97ZnjQF2KYWaFD2A8KyFBsrsfSjEmjn3RGWAIuvlneuZm3CUK3jbA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 - dependencies: - eslint: 8.56.0 - eslint-visitor-keys: 3.4.3 - /@eslint-community/regexpp@4.10.0: - resolution: {integrity: sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA==} + '@eslint-community/regexpp@4.12.1': + resolution: {integrity: sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ==} engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} - /@eslint/eslintrc@2.1.4: - resolution: {integrity: sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - dependencies: - ajv: 6.12.6 - debug: 4.3.4 - espree: 9.6.1 - globals: 13.20.0 - ignore: 5.2.4 - import-fresh: 3.3.0 - js-yaml: 4.1.0 - minimatch: 3.1.2 - strip-json-comments: 3.1.1 - transitivePeerDependencies: - - supports-color + '@eslint/compat@1.2.5': + resolution: {integrity: sha512-5iuG/StT+7OfvhoBHPlmxkPA9om6aDUFgmD4+mWKAGsYt4vCe8rypneG03AuseyRHBmcCLXQtIH5S26tIoggLg==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + eslint: ^9.10.0 + peerDependenciesMeta: + eslint: + optional: true - /@eslint/js@8.56.0: - resolution: {integrity: sha512-gMsVel9D7f2HLkBma9VbtzZRehRogVRfbr++f06nL2vnCGCNlzOD+/MUov/F4p8myyAHspEhVobgjpX64q5m6A==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + '@eslint/config-array@0.19.1': + resolution: {integrity: sha512-fo6Mtm5mWyKjA/Chy1BYTdn5mGJoDNjC7C64ug20ADsRDGrA85bN3uK3MaKbeRkRuuIEAR5N33Jr1pbm411/PA==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - /@headlessui/react@1.7.17(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-4am+tzvkqDSSgiwrsEpGWqgGo9dz8qU5M3znCkC4PgkpY4HcCZzEDEvozltGGGHIKl9jbXbZPSH5TWn4sWJdow==} + '@eslint/core@0.10.0': + resolution: {integrity: sha512-gFHJ+xBOo4G3WRlR1e/3G8A6/KZAH6zcE/hkLRCZTi/B9avAG365QhFA8uOGzTMqgTghpn7/fSnscW++dpMSAw==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@eslint/eslintrc@3.2.0': + resolution: {integrity: sha512-grOjVNN8P3hjJn/eIETF1wwd12DdnwFDoyceUJLYYdkpbwq3nLi+4fqrTAONx7XDALqlL220wC/RHSC/QTI/0w==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@eslint/js@9.19.0': + resolution: {integrity: sha512-rbq9/g38qjfqFLOVPvwjIvFFdNziEC5S65jmjPw5r6A//QH+W91akh9irMwjDN8zKUTak6W9EsAv4m/7Wnw0UQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@eslint/object-schema@2.1.5': + resolution: {integrity: sha512-o0bhxnL89h5Bae5T318nFoFzGy+YE5i/gGkoPAgkmTVdRKTiv3p8JHevPiPaMwoloKfEiiaHlawCqaZMqRm+XQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@eslint/plugin-kit@0.2.5': + resolution: {integrity: sha512-lB05FkqEdUg2AA0xEbUz0SnkXT1LcCTa438W4IWTUh4hdOnVbQyOJ81OrDXsJk/LSiJHubgGEFoR5EHq1NsH1A==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@floating-ui/core@1.6.9': + resolution: {integrity: sha512-uMXCuQ3BItDUbAMhIXw7UPXRfAlOAvZzdK9BWpE60MCn+Svt3aLn9jsPTi/WNGlRUu2uI0v5S7JiIUsbsvh3fw==} + + '@floating-ui/dom@1.6.13': + resolution: {integrity: sha512-umqzocjDgNRGTuO7Q8CU32dkHkECqI8ZdMZ5Swb6QAM0t5rnlrN3lGo1hdpscRd3WS8T6DKYK4ephgIH9iRh3w==} + + '@floating-ui/react-dom@2.1.2': + resolution: {integrity: sha512-06okr5cgPzMNBy+Ycse2A6udMi4bqwW/zgBF/rwjcNqWkyr82Mcg8b0vjX8OJpZFy/FKjJmw6wV7t44kK6kW7A==} + peerDependencies: + react: '>=16.8.0' + react-dom: '>=16.8.0' + + '@floating-ui/react@0.26.28': + resolution: {integrity: sha512-yORQuuAtVpiRjpMhdc0wJj06b9JFjrYF4qp96j++v2NBpbi6SEGF7donUJ3TMieerQ6qVkAv1tgr7L4r5roTqw==} + peerDependencies: + react: '>=16.8.0' + react-dom: '>=16.8.0' + + '@floating-ui/utils@0.2.9': + resolution: {integrity: sha512-MDWhGtE+eHw5JW7lq4qhc5yRLS11ERl1c7Z6Xd0a58DozHES6EnNNwUWbMiG4J9Cgj053Bhk8zvlhFYKVhULwg==} + + '@headlessui/react@2.2.0': + resolution: {integrity: sha512-RzCEg+LXsuI7mHiSomsu/gBJSjpupm6A1qIZ5sWjd7JhARNlMiSA4kKfJpCKwU9tE+zMRterhhrP74PvfJrpXQ==} engines: {node: '>=10'} peerDependencies: - react: ^16 || ^17 || ^18 - react-dom: ^16 || ^17 || ^18 - dependencies: - client-only: 0.0.1 - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) - dev: false + react: ^18 || ^19 || ^19.0.0-rc + react-dom: ^18 || ^19 || ^19.0.0-rc - /@heroicons/react@2.1.1(react@18.2.0): - resolution: {integrity: sha512-JyyN9Lo66kirbCMuMMRPtJxtKJoIsXKS569ebHGGRKbl8s4CtUfLnyKJxteA+vIKySocO4s1SkTkGS4xtG/yEA==} + '@heroicons/react@2.2.0': + resolution: {integrity: sha512-LMcepvRaS9LYHJGsF0zzmgKCUim/X3N/DQKc4jepAXJ7l8QxJ1PmxJzqplF2Z3FE4PqBAIGyJAQ/w4B5dsqbtQ==} peerDependencies: - react: '>= 16' - dependencies: - react: 18.2.0 - dev: false + react: '>= 16 || ^19.0.0-rc' - /@humanwhocodes/config-array@0.11.13: - resolution: {integrity: sha512-JSBDMiDKSzQVngfRjOdFXgFfklaXI4K9nLF49Auh21lmBWRLIK3+xTErTWD4KU54pb6coM6ESE7Awz/FNU3zgQ==} - engines: {node: '>=10.10.0'} - dependencies: - '@humanwhocodes/object-schema': 2.0.1 - debug: 4.3.4 - minimatch: 3.1.2 - transitivePeerDependencies: - - supports-color + '@humanfs/core@0.19.1': + resolution: {integrity: sha512-5DyQ4+1JEUzejeK1JGICcideyfUbGixgS9jNgex5nqkW+cY7WZhxBigmieN5Qnw9ZosSNVC9KQKyb+GUaGyKUA==} + engines: {node: '>=18.18.0'} - /@humanwhocodes/module-importer@1.0.1: + '@humanfs/node@0.16.6': + resolution: {integrity: sha512-YuI2ZHQL78Q5HbhDiBA1X4LmYdXCKCMQIfw0pw7piHJwyREFebJUvrQN4cMssyES6x+vfUbx1CIpaQUKYdQZOw==} + engines: {node: '>=18.18.0'} + + '@humanwhocodes/module-importer@1.0.1': resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==} engines: {node: '>=12.22'} - /@humanwhocodes/object-schema@2.0.1: - resolution: {integrity: sha512-dvuCeX5fC9dXgJn9t+X5atfmgQAzUOWqS1254Gh0m6i8wKd10ebXkfNKiRK+1GWi/yTvvLDHpoxLr0xxxeslWw==} + '@humanwhocodes/retry@0.3.1': + resolution: {integrity: sha512-JBxkERygn7Bv/GbN5Rv8Ul6LVknS+5Bp6RgDC/O8gEBU/yeH5Ui5C/OlWrTb6qct7LjjfT6Re2NxB0ln0yYybA==} + engines: {node: '>=18.18'} - /@hutson/parse-repository-url@3.0.2: + '@humanwhocodes/retry@0.4.1': + resolution: {integrity: sha512-c7hNEllBlenFTHBky65mhq8WD2kbN9Q6gk0bTk8lSBvc554jpXSkST1iePudpt7+A/AQvuHs9EMqjHDXMY1lrA==} + engines: {node: '>=18.18'} + + '@hutson/parse-repository-url@3.0.2': resolution: {integrity: sha512-H9XAx3hc0BQHY6l+IFSWHDySypcXsvsuLhgYLUGywmJ5pswRVQJUHpOsobnLYp2ZUaUlKiKDrgWWhosOwAEM8Q==} engines: {node: '>=6.9.0'} - dev: true - /@img/sharp-darwin-arm64@0.33.1: - resolution: {integrity: sha512-esr2BZ1x0bo+wl7Gx2hjssYhjrhUsD88VQulI0FrG8/otRQUOxLWHMBd1Y1qo2Gfg2KUvXNpT0ASnV9BzJCexw==} - engines: {glibc: '>=2.26', node: ^18.17.0 || ^20.3.0 || >=21.0.0, npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'} + '@img/sharp-darwin-arm64@0.33.5': + resolution: {integrity: sha512-UT4p+iz/2H4twwAoLCqfA9UH5pI6DggwKEGuaPy7nCVQ8ZsiY5PIcrRvD1DzuY3qYL07NtIQcWnBSY/heikIFQ==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [arm64] os: [darwin] - requiresBuild: true - optionalDependencies: - '@img/sharp-libvips-darwin-arm64': 1.0.0 - optional: true - /@img/sharp-darwin-x64@0.33.1: - resolution: {integrity: sha512-YrnuB3bXuWdG+hJlXtq7C73lF8ampkhU3tMxg5Hh+E7ikxbUVOU9nlNtVTloDXz6pRHt2y2oKJq7DY/yt+UXYw==} - engines: {glibc: '>=2.26', node: ^18.17.0 || ^20.3.0 || >=21.0.0, npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'} + '@img/sharp-darwin-x64@0.33.5': + resolution: {integrity: sha512-fyHac4jIc1ANYGRDxtiqelIbdWkIuQaI84Mv45KvGRRxSAa7o7d1ZKAOBaYbnepLC1WqxfpimdeWfvqqSGwR2Q==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [x64] os: [darwin] - requiresBuild: true - optionalDependencies: - '@img/sharp-libvips-darwin-x64': 1.0.0 - optional: true - /@img/sharp-libvips-darwin-arm64@1.0.0: - resolution: {integrity: sha512-VzYd6OwnUR81sInf3alj1wiokY50DjsHz5bvfnsFpxs5tqQxESoHtJO6xyksDs3RIkyhMWq2FufXo6GNSU9BMw==} - engines: {macos: '>=11', npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'} + '@img/sharp-libvips-darwin-arm64@1.0.4': + resolution: {integrity: sha512-XblONe153h0O2zuFfTAbQYAX2JhYmDHeWikp1LM9Hul9gVPjFY427k6dFEcOL72O01QxQsWi761svJ/ev9xEDg==} cpu: [arm64] os: [darwin] - requiresBuild: true - optional: true - /@img/sharp-libvips-darwin-x64@1.0.0: - resolution: {integrity: sha512-dD9OznTlHD6aovRswaPNEy8dKtSAmNo4++tO7uuR4o5VxbVAOoEQ1uSmN4iFAdQneTHws1lkTZeiXPrcCkh6IA==} - engines: {macos: '>=10.13', npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'} + '@img/sharp-libvips-darwin-x64@1.0.4': + resolution: {integrity: sha512-xnGR8YuZYfJGmWPvmlunFaWJsb9T/AO2ykoP3Fz/0X5XV2aoYBPkX6xqCQvUTKKiLddarLaxpzNe+b1hjeWHAQ==} cpu: [x64] os: [darwin] - requiresBuild: true - optional: true - /@img/sharp-libvips-linux-arm64@1.0.0: - resolution: {integrity: sha512-xTYThiqEZEZc0PRU90yVtM3KE7lw1bKdnDQ9kCTHWbqWyHOe4NpPOtMGy27YnN51q0J5dqRrvicfPbALIOeAZA==} - engines: {glibc: '>=2.26', npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'} + '@img/sharp-libvips-linux-arm64@1.0.4': + resolution: {integrity: sha512-9B+taZ8DlyyqzZQnoeIvDVR/2F4EbMepXMc/NdVbkzsJbzkUjhXv/70GQJ7tdLA4YJgNP25zukcxpX2/SueNrA==} cpu: [arm64] os: [linux] - requiresBuild: true - optional: true - /@img/sharp-libvips-linux-arm@1.0.0: - resolution: {integrity: sha512-VwgD2eEikDJUk09Mn9Dzi1OW2OJFRQK+XlBTkUNmAWPrtj8Ly0yq05DFgu1VCMx2/DqCGQVi5A1dM9hTmxf3uw==} - engines: {glibc: '>=2.28', npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'} + '@img/sharp-libvips-linux-arm@1.0.5': + resolution: {integrity: sha512-gvcC4ACAOPRNATg/ov8/MnbxFDJqf/pDePbBnuBDcjsI8PssmjoKMAz4LtLaVi+OnSb5FK/yIOamqDwGmXW32g==} cpu: [arm] os: [linux] - requiresBuild: true - optional: true - /@img/sharp-libvips-linux-s390x@1.0.0: - resolution: {integrity: sha512-o9E46WWBC6JsBlwU4QyU9578G77HBDT1NInd+aERfxeOPbk0qBZHgoDsQmA2v9TbqJRWzoBPx1aLOhprBMgPjw==} - engines: {glibc: '>=2.28', npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'} + '@img/sharp-libvips-linux-s390x@1.0.4': + resolution: {integrity: sha512-u7Wz6ntiSSgGSGcjZ55im6uvTrOxSIS8/dgoVMoiGE9I6JAfU50yH5BoDlYA1tcuGS7g/QNtetJnxA6QEsCVTA==} cpu: [s390x] os: [linux] - requiresBuild: true - optional: true - /@img/sharp-libvips-linux-x64@1.0.0: - resolution: {integrity: sha512-naldaJy4hSVhWBgEjfdBY85CAa4UO+W1nx6a1sWStHZ7EUfNiuBTTN2KUYT5dH1+p/xij1t2QSXfCiFJoC5S/Q==} - engines: {glibc: '>=2.26', npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'} + '@img/sharp-libvips-linux-x64@1.0.4': + resolution: {integrity: sha512-MmWmQ3iPFZr0Iev+BAgVMb3ZyC4KeFc3jFxnNbEPas60e1cIfevbtuyf9nDGIzOaW9PdnDciJm+wFFaTlj5xYw==} cpu: [x64] os: [linux] - requiresBuild: true - optional: true - /@img/sharp-libvips-linuxmusl-arm64@1.0.0: - resolution: {integrity: sha512-OdorplCyvmSAPsoJLldtLh3nLxRrkAAAOHsGWGDYfN0kh730gifK+UZb3dWORRa6EusNqCTjfXV4GxvgJ/nPDQ==} - engines: {musl: '>=1.2.2', npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'} + '@img/sharp-libvips-linuxmusl-arm64@1.0.4': + resolution: {integrity: sha512-9Ti+BbTYDcsbp4wfYib8Ctm1ilkugkA/uscUn6UXK1ldpC1JjiXbLfFZtRlBhjPZ5o1NCLiDbg8fhUPKStHoTA==} cpu: [arm64] os: [linux] - requiresBuild: true - optional: true - /@img/sharp-libvips-linuxmusl-x64@1.0.0: - resolution: {integrity: sha512-FW8iK6rJrg+X2jKD0Ajhjv6y74lToIBEvkZhl42nZt563FfxkCYacrXZtd+q/sRQDypQLzY5WdLkVTbJoPyqNg==} - engines: {musl: '>=1.2.2', npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'} + '@img/sharp-libvips-linuxmusl-x64@1.0.4': + resolution: {integrity: sha512-viYN1KX9m+/hGkJtvYYp+CCLgnJXwiQB39damAO7WMdKWlIhmYTfHjwSbQeUK/20vY154mwezd9HflVFM1wVSw==} cpu: [x64] os: [linux] - requiresBuild: true - optional: true - /@img/sharp-linux-arm64@0.33.1: - resolution: {integrity: sha512-59B5GRO2d5N3tIfeGHAbJps7cLpuWEQv/8ySd9109ohQ3kzyCACENkFVAnGPX00HwPTQcaBNF7HQYEfZyZUFfw==} - engines: {glibc: '>=2.26', node: ^18.17.0 || ^20.3.0 || >=21.0.0, npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'} + '@img/sharp-linux-arm64@0.33.5': + resolution: {integrity: sha512-JMVv+AMRyGOHtO1RFBiJy/MBsgz0x4AWrT6QoEVVTyh1E39TrCUpTRI7mx9VksGX4awWASxqCYLCV4wBZHAYxA==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [arm64] os: [linux] - requiresBuild: true - optionalDependencies: - '@img/sharp-libvips-linux-arm64': 1.0.0 - optional: true - /@img/sharp-linux-arm@0.33.1: - resolution: {integrity: sha512-Ii4X1vnzzI4j0+cucsrYA5ctrzU9ciXERfJR633S2r39CiD8npqH2GMj63uFZRCFt3E687IenAdbwIpQOJ5BNA==} - engines: {glibc: '>=2.28', node: ^18.17.0 || ^20.3.0 || >=21.0.0, npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'} + '@img/sharp-linux-arm@0.33.5': + resolution: {integrity: sha512-JTS1eldqZbJxjvKaAkxhZmBqPRGmxgu+qFKSInv8moZ2AmT5Yib3EQ1c6gp493HvrvV8QgdOXdyaIBrhvFhBMQ==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [arm] os: [linux] - requiresBuild: true - optionalDependencies: - '@img/sharp-libvips-linux-arm': 1.0.0 - optional: true - /@img/sharp-linux-s390x@0.33.1: - resolution: {integrity: sha512-tRGrb2pHnFUXpOAj84orYNxHADBDIr0J7rrjwQrTNMQMWA4zy3StKmMvwsI7u3dEZcgwuMMooIIGWEWOjnmG8A==} - engines: {glibc: '>=2.28', node: ^18.17.0 || ^20.3.0 || >=21.0.0, npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'} + '@img/sharp-linux-s390x@0.33.5': + resolution: {integrity: sha512-y/5PCd+mP4CA/sPDKl2961b+C9d+vPAveS33s6Z3zfASk2j5upL6fXVPZi7ztePZ5CuH+1kW8JtvxgbuXHRa4Q==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [s390x] os: [linux] - requiresBuild: true - optionalDependencies: - '@img/sharp-libvips-linux-s390x': 1.0.0 - optional: true - /@img/sharp-linux-x64@0.33.1: - resolution: {integrity: sha512-4y8osC0cAc1TRpy02yn5omBeloZZwS62fPZ0WUAYQiLhSFSpWJfY/gMrzKzLcHB9ulUV6ExFiu2elMaixKDbeg==} - engines: {glibc: '>=2.26', node: ^18.17.0 || ^20.3.0 || >=21.0.0, npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'} + '@img/sharp-linux-x64@0.33.5': + resolution: {integrity: sha512-opC+Ok5pRNAzuvq1AG0ar+1owsu842/Ab+4qvU879ippJBHvyY5n2mxF1izXqkPYlGuP/M556uh53jRLJmzTWA==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [x64] os: [linux] - requiresBuild: true - optionalDependencies: - '@img/sharp-libvips-linux-x64': 1.0.0 - optional: true - /@img/sharp-linuxmusl-arm64@0.33.1: - resolution: {integrity: sha512-D3lV6clkqIKUizNS8K6pkuCKNGmWoKlBGh5p0sLO2jQERzbakhu4bVX1Gz+RS4vTZBprKlWaf+/Rdp3ni2jLfA==} - engines: {musl: '>=1.2.2', node: ^18.17.0 || ^20.3.0 || >=21.0.0, npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'} + '@img/sharp-linuxmusl-arm64@0.33.5': + resolution: {integrity: sha512-XrHMZwGQGvJg2V/oRSUfSAfjfPxO+4DkiRh6p2AFjLQztWUuY/o8Mq0eMQVIY7HJ1CDQUJlxGGZRw1a5bqmd1g==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [arm64] os: [linux] - requiresBuild: true - optionalDependencies: - '@img/sharp-libvips-linuxmusl-arm64': 1.0.0 - optional: true - /@img/sharp-linuxmusl-x64@0.33.1: - resolution: {integrity: sha512-LOGKNu5w8uu1evVqUAUKTix2sQu1XDRIYbsi5Q0c/SrXhvJ4QyOx+GaajxmOg5PZSsSnCYPSmhjHHsRBx06/wQ==} - engines: {musl: '>=1.2.2', node: ^18.17.0 || ^20.3.0 || >=21.0.0, npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'} + '@img/sharp-linuxmusl-x64@0.33.5': + resolution: {integrity: sha512-WT+d/cgqKkkKySYmqoZ8y3pxx7lx9vVejxW/W4DOFMYVSkErR+w7mf2u8m/y4+xHe7yY9DAXQMWQhpnMuFfScw==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [x64] os: [linux] - requiresBuild: true - optionalDependencies: - '@img/sharp-libvips-linuxmusl-x64': 1.0.0 - optional: true - /@img/sharp-wasm32@0.33.1: - resolution: {integrity: sha512-vWI/sA+0p+92DLkpAMb5T6I8dg4z2vzCUnp8yvxHlwBpzN8CIcO3xlSXrLltSvK6iMsVMNswAv+ub77rsf25lA==} - engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0, npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'} + '@img/sharp-wasm32@0.33.5': + resolution: {integrity: sha512-ykUW4LVGaMcU9lu9thv85CbRMAwfeadCJHRsg2GmeRa/cJxsVY9Rbd57JcMxBkKHag5U/x7TSBpScF4U8ElVzg==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [wasm32] - requiresBuild: true - dependencies: - '@emnapi/runtime': 0.44.0 - optional: true - /@img/sharp-win32-ia32@0.33.1: - resolution: {integrity: sha512-/xhYkylsKL05R+NXGJc9xr2Tuw6WIVl2lubFJaFYfW4/MQ4J+dgjIo/T4qjNRizrqs/szF/lC9a5+updmY9jaQ==} - engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0, npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'} + '@img/sharp-win32-ia32@0.33.5': + resolution: {integrity: sha512-T36PblLaTwuVJ/zw/LaH0PdZkRz5rd3SmMHX8GSmR7vtNSP5Z6bQkExdSK7xGWyxLw4sUknBuugTelgw2faBbQ==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [ia32] os: [win32] - requiresBuild: true - optional: true - /@img/sharp-win32-x64@0.33.1: - resolution: {integrity: sha512-XaM69X0n6kTEsp9tVYYLhXdg7Qj32vYJlAKRutxUsm1UlgQNx6BOhHwZPwukCGXBU2+tH87ip2eV1I/E8MQnZg==} - engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0, npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'} + '@img/sharp-win32-x64@0.33.5': + resolution: {integrity: sha512-MpY/o8/8kj+EcnxwvrP4aTJSWw/aZ7JIGR4aBeZkZw5B7/Jn+tY9/VNwtcoGmdT7GfggGIU4kygOMSbYnOrAbg==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [x64] os: [win32] - requiresBuild: true - optional: true - /@isaacs/cliui@8.0.2: + '@isaacs/cliui@8.0.2': resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==} engines: {node: '>=12'} - dependencies: - string-width: 5.1.2 - string-width-cjs: /string-width@4.2.3 - strip-ansi: 7.1.0 - strip-ansi-cjs: /strip-ansi@6.0.1 - wrap-ansi: 8.1.0 - wrap-ansi-cjs: /wrap-ansi@7.0.0 - dev: true - /@jest/schemas@29.6.3: + '@isaacs/string-locale-compare@1.1.0': + resolution: {integrity: sha512-SQ7Kzhh9+D+ZW9MA0zkYv3VXhIDNx+LzM6EJ+/65I3QY+enU6Itte7E5XX7EWrqLW2FN4n06GWzBnPoC3th2aQ==} + + '@istanbuljs/schema@0.1.3': + resolution: {integrity: sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==} + engines: {node: '>=8'} + + '@jest/schemas@29.6.3': resolution: {integrity: sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - dependencies: - '@sinclair/typebox': 0.27.8 - dev: true - /@jridgewell/gen-mapping@0.1.1: - resolution: {integrity: sha512-sQXCasFk+U8lWYEe66WxRDOE9PjVz4vSM51fTu3Hw+ClTpUSQb718772vH3pyS5pShp6lvQM7SxgIDXXXmOX7w==} - engines: {node: '>=6.0.0'} - dependencies: - '@jridgewell/set-array': 1.1.2 - '@jridgewell/sourcemap-codec': 1.4.15 - - /@jridgewell/gen-mapping@0.3.2: - resolution: {integrity: sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==} - engines: {node: '>=6.0.0'} - dependencies: - '@jridgewell/set-array': 1.1.2 - '@jridgewell/sourcemap-codec': 1.4.15 - '@jridgewell/trace-mapping': 0.3.17 - - /@jridgewell/gen-mapping@0.3.3: - resolution: {integrity: sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==} - engines: {node: '>=6.0.0'} - dependencies: - '@jridgewell/set-array': 1.1.2 - '@jridgewell/sourcemap-codec': 1.4.15 - '@jridgewell/trace-mapping': 0.3.20 - dev: true - - /@jridgewell/resolve-uri@3.1.0: - resolution: {integrity: sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==} + '@jridgewell/gen-mapping@0.3.8': + resolution: {integrity: sha512-imAbBGkb+ebQyxKgzv5Hu2nmROxoDOXHh80evxdoXNOrvAnVx7zimzc1Oo5h9RlfV4vPXaE2iM5pOFbvOCClWA==} engines: {node: '>=6.0.0'} - /@jridgewell/resolve-uri@3.1.1: - resolution: {integrity: sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==} + '@jridgewell/resolve-uri@3.1.2': + resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==} engines: {node: '>=6.0.0'} - /@jridgewell/set-array@1.1.2: - resolution: {integrity: sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==} + '@jridgewell/set-array@1.2.1': + resolution: {integrity: sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==} engines: {node: '>=6.0.0'} - /@jridgewell/source-map@0.3.5: - resolution: {integrity: sha512-UTYAUj/wviwdsMfzoSJspJxbkH5o1snzwX0//0ENX1u/55kkZZkcTZP6u9bwKGkv+dkk9at4m1Cpt0uY80kcpQ==} - dependencies: - '@jridgewell/gen-mapping': 0.3.3 - '@jridgewell/trace-mapping': 0.3.20 - dev: true + '@jridgewell/source-map@0.3.6': + resolution: {integrity: sha512-1ZJTZebgqllO79ue2bm3rIGud/bOe0pP5BjSRCRxxYkEZS8STV7zN84UBbiYu7jy+eCKSnVIUgoWWE/tt+shMQ==} - /@jridgewell/sourcemap-codec@1.4.14: - resolution: {integrity: sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==} + '@jridgewell/sourcemap-codec@1.5.0': + resolution: {integrity: sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==} - /@jridgewell/sourcemap-codec@1.4.15: - resolution: {integrity: sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==} + '@jridgewell/trace-mapping@0.3.25': + resolution: {integrity: sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==} - /@jridgewell/trace-mapping@0.3.17: - resolution: {integrity: sha512-MCNzAp77qzKca9+W/+I0+sEpaUnZoeasnghNeVc41VZCEKaCH73Vq3BZZ/SzWIgrqE4H4ceI+p+b6C0mHf9T4g==} - dependencies: - '@jridgewell/resolve-uri': 3.1.0 - '@jridgewell/sourcemap-codec': 1.4.14 - - /@jridgewell/trace-mapping@0.3.20: - resolution: {integrity: sha512-R8LcPeWZol2zR8mmH3JeKQ6QRCFb7XgUhV9ZlGhHLGyg4wpPiPZNQOOWhFZhxKw8u//yTbNGI42Bx/3paXEQ+Q==} - dependencies: - '@jridgewell/resolve-uri': 3.1.1 - '@jridgewell/sourcemap-codec': 1.4.15 - - /@jsdoc/salty@0.2.3: - resolution: {integrity: sha512-bbtCxCkxcnWhi50I+4Lj6mdz9w3pOXOgEQrID8TCZ/DF51fW7M9GCQW2y45SpBDdHd1Eirm1X/Cf6CkAAe8HPg==} + '@jsdoc/salty@0.2.9': + resolution: {integrity: sha512-yYxMVH7Dqw6nO0d5NIV8OQWnitU8k6vXH8NtgqAfIa/IUqRMxRv/NUJJ08VEKbAakwxlgBl5PJdrU0dMPStsnw==} engines: {node: '>=v12.0.0'} - dependencies: - lodash: 4.17.21 - dev: true - /@lerna/create@8.0.1(typescript@5.3.3): - resolution: {integrity: sha512-PDYNUF8Nv5j7DbGvVbizEuYuQbNFZ0+wVOtRPvBQOkC2dMNryi3dJjktEd1QeDX6Wa/JkJWvZ5SMHyr+7H3Rtg==} + '@lerna/create@8.1.9': + resolution: {integrity: sha512-DPnl5lPX4v49eVxEbJnAizrpMdMTBz1qykZrAbBul9rfgk531v8oAt+Pm6O/rpAleRombNM7FJb5rYGzBJatOQ==} engines: {node: '>=18.0.0'} - dependencies: - '@npmcli/run-script': 7.0.2 - '@nx/devkit': 17.2.8(nx@17.2.8) - '@octokit/plugin-enterprise-rest': 6.0.1 - '@octokit/rest': 19.0.11 - byte-size: 8.1.1 - chalk: 4.1.0 - clone-deep: 4.0.1 - cmd-shim: 6.0.1 - columnify: 1.6.0 - conventional-changelog-core: 5.0.1 - conventional-recommended-bump: 7.0.1 - cosmiconfig: 8.3.6(typescript@5.3.3) - dedent: 0.7.0 - execa: 5.0.0 - fs-extra: 11.1.1 - get-stream: 6.0.0 - git-url-parse: 13.1.0 - glob-parent: 5.1.2 - globby: 11.1.0 - graceful-fs: 4.2.11 - has-unicode: 2.0.1 - ini: 1.3.8 - init-package-json: 5.0.0 - inquirer: 8.2.5 - is-ci: 3.0.1 - is-stream: 2.0.0 - js-yaml: 4.1.0 - libnpmpublish: 7.3.0 - load-json-file: 6.2.0 - lodash: 4.17.21 - make-dir: 4.0.0 - minimatch: 3.0.5 - multimatch: 5.0.0 - node-fetch: 2.6.7 - npm-package-arg: 8.1.1 - npm-packlist: 5.1.1 - npm-registry-fetch: 14.0.5 - npmlog: 6.0.2 - nx: 17.2.8 - p-map: 4.0.0 - p-map-series: 2.1.0 - p-queue: 6.6.2 - p-reduce: 2.1.0 - pacote: 17.0.5 - pify: 5.0.0 - read-cmd-shim: 4.0.0 - read-package-json: 6.0.4 - resolve-from: 5.0.0 - rimraf: 4.4.1 - semver: 7.5.4 - signal-exit: 3.0.7 - slash: 3.0.0 - ssri: 9.0.1 - strong-log-transformer: 2.1.0 - tar: 6.1.11 - temp-dir: 1.0.0 - upath: 2.0.1 - uuid: 9.0.1 - validate-npm-package-license: 3.0.4 - validate-npm-package-name: 5.0.0 - write-file-atomic: 5.0.1 - write-pkg: 4.0.0 - yargs: 17.7.2 - yargs-parser: 21.1.1 - transitivePeerDependencies: - - '@swc-node/register' - - '@swc/core' - - bluebird - - debug - - encoding - - supports-color - - typescript - dev: true - /@lezer/common@1.0.2: - resolution: {integrity: sha512-SVgiGtMnMnW3ActR8SXgsDhw7a0w0ChHSYAyAUxxrOiJ1OqYWEKk/xJd84tTSPo1mo6DXLObAJALNnd0Hrv7Ng==} - dev: false + '@lezer/common@1.2.3': + resolution: {integrity: sha512-w7ojc8ejBqr2REPsWxJjrMFsA/ysDCFICn8zEOR9mrqzOu2amhITYuLD8ag6XZf0CFXDrhKqw7+tW8cX66NaDA==} - /@lezer/common@1.2.0: - resolution: {integrity: sha512-Wmvlm4q6tRpwiy20TnB3yyLTZim38Tkc50dPY8biQRwqE+ati/wD84rm3N15hikvdT4uSg9phs9ubjvcLmkpKg==} - dev: false + '@lezer/highlight@1.2.1': + resolution: {integrity: sha512-Z5duk4RN/3zuVO7Jq0pGLJ3qynpxUVsh7IbUbGj88+uV2ApSAn6kWg2au3iJb+0Zi7kKtqffIESgNcRXWZWmSA==} - /@lezer/highlight@1.2.0: - resolution: {integrity: sha512-WrS5Mw51sGrpqjlh3d4/fOwpEV2Hd3YOkp9DBt4k8XZQcoTHZFB7sx030A6OcahF4J1nDQAa3jXlTVVYH50IFA==} - dependencies: - '@lezer/common': 1.2.0 - dev: false + '@lezer/javascript@1.4.21': + resolution: {integrity: sha512-lL+1fcuxWYPURMM/oFZLEDm0XuLN128QPV+VuGtKpeaOGdcl9F2LYC3nh1S9LkPqx9M0mndZFdXCipNAZpzIkQ==} - /@lezer/javascript@1.4.1: - resolution: {integrity: sha512-Hqx36DJeYhKtdpc7wBYPR0XF56ZzIp0IkMO/zNNj80xcaFOV4Oj/P7TQc/8k2TxNhzl7tV5tXS8ZOCPbT4L3nA==} - dependencies: - '@lezer/highlight': 1.2.0 - '@lezer/lr': 1.3.1 - dev: false + '@lezer/lr@1.4.2': + resolution: {integrity: sha512-pu0K1jCIdnQ12aWNaAVU5bzi7Bd1w54J3ECgANPmYLtQKP0HBj2cE/5coBD66MT10xbtIuUr7tg0Shbsvk0mDA==} - /@lezer/lr@1.3.1: - resolution: {integrity: sha512-+GymJB/+3gThkk2zHwseaJTI5oa4AuOuj1I2LCslAVq1dFZLSX8SAe4ZlJq1TjezteDXtF/+d4qeWz9JvnrG9Q==} - dependencies: - '@lezer/common': 1.2.0 - dev: false + '@marijn/find-cluster-break@1.0.2': + resolution: {integrity: sha512-l0h88YhZFyKdXIFNfSWpyjStDjGHwZ/U7iobcK1cQQD8sejsONdQtTVU+1wVN1PBw40PiiHB1vA5S7VTfQiP9g==} - /@mdx-js/mdx@3.0.0: - resolution: {integrity: sha512-Icm0TBKBLYqroYbNW3BPnzMGn+7mwpQOK310aZ7+fkCtiU3aqv2cdcX+nd0Ydo3wI5Rx8bX2Z2QmGb/XcAClCw==} - dependencies: - '@types/estree': 1.0.0 - '@types/estree-jsx': 1.0.0 - '@types/hast': 3.0.2 - '@types/mdx': 2.0.3 - collapse-white-space: 2.1.0 - devlop: 1.1.0 - estree-util-build-jsx: 3.0.1 - estree-util-is-identifier-name: 3.0.0 - estree-util-to-js: 2.0.0 - estree-walker: 3.0.3 - hast-util-to-estree: 3.1.0 - hast-util-to-jsx-runtime: 2.3.0 - markdown-extensions: 2.0.0 - periscopic: 3.1.0 - remark-mdx: 3.0.0 - remark-parse: 11.0.0 - remark-rehype: 11.0.0 - source-map: 0.7.4 - unified: 11.0.4 - unist-util-position-from-estree: 2.0.0 - unist-util-stringify-position: 4.0.0 - unist-util-visit: 5.0.0 - vfile: 6.0.1 - transitivePeerDependencies: - - supports-color - dev: false + '@mdx-js/mdx@3.1.0': + resolution: {integrity: sha512-/QxEhPAvGwbQmy1Px8F899L5Uc2KZ6JtXwlCgJmjSTBedwOZkByYcBG4GceIGPXRDsmfxhHazuS+hlOShRLeDw==} - /@nanostores/persistent@0.9.1(nanostores@0.9.5): - resolution: {integrity: sha512-ow57Hxm5VMaI5GHET/cVk8hX/iKMmbhcGrB9owfN8p8OHiiJgUlYxe1giacwlAALJXAh2t8bxXh42hHb64BCEA==} - engines: {node: ^16.0.0 || ^18.0.0 || >=20.0.0} + '@nanostores/persistent@0.10.2': + resolution: {integrity: sha512-BEndnLhRC+yP7gXTESepBbSj8XNl8OXK9hu4xAgKC7MWJHKXnEqJMqY47LUyHxK6vYgFnisyHmqq+vq8AUFyIg==} + engines: {node: ^18.0.0 || >=20.0.0} peerDependencies: - nanostores: ^0.9.0 - dependencies: - nanostores: 0.9.5 - dev: false + nanostores: ^0.9.0 || ^0.10.0 || ^0.11.0 - /@nanostores/react@0.7.1(nanostores@0.9.5)(react@18.2.0): - resolution: {integrity: sha512-EXQg9N4MdI4eJQz/AZLIx3hxQ6BuBmV4Q55bCd5YCSgEOAW7tGTsIZxpRXxvxLXzflNvHTBvfrDNY38TlSVBkQ==} - engines: {node: ^16.0.0 || ^18.0.0 || >=20.0.0} + '@nanostores/react@0.8.4': + resolution: {integrity: sha512-EciHSzDXg7GmGODjegGG1VldPEinbAK+12/Uz5+MAdHmxf082Rl6eXqKFxAAu4pZAcr5dNTpv6wMfEe7XacjkQ==} + engines: {node: ^18.0.0 || >=20.0.0} peerDependencies: - nanostores: ^0.9.0 + nanostores: ^0.9.0 || ^0.10.0 || ^0.11.0 react: '>=18.0.0' - dependencies: - nanostores: 0.9.5 - react: 18.2.0 - dev: false - /@nodelib/fs.scandir@2.1.5: + '@napi-rs/wasm-runtime@0.2.4': + resolution: {integrity: sha512-9zESzOO5aDByvhIAsOy9TbpZ0Ur2AJbUI7UT73kcUTS2mxAMHOBaa1st/jAymNoCtvrit99kkzT1FZuXVcgfIQ==} + + '@nodelib/fs.scandir@2.1.5': resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} engines: {node: '>= 8'} - dependencies: - '@nodelib/fs.stat': 2.0.5 - run-parallel: 1.2.0 - /@nodelib/fs.stat@2.0.5: + '@nodelib/fs.stat@2.0.5': resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==} engines: {node: '>= 8'} - /@nodelib/fs.walk@1.2.8: + '@nodelib/fs.walk@1.2.8': resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} engines: {node: '>= 8'} - dependencies: - '@nodelib/fs.scandir': 2.1.5 - fastq: 1.15.0 - /@npmcli/agent@2.2.0: - resolution: {integrity: sha512-2yThA1Es98orMkpSLVqlDZAMPK3jHJhifP2gnNUdk1754uZ8yI5c+ulCoVG+WlntQA6MzhrURMXjSd9Z7dJ2/Q==} + '@npmcli/agent@2.2.2': + resolution: {integrity: sha512-OrcNPXdpSl9UX7qPVRWbmWMCSXrcDa2M9DvrbOTj7ao1S4PlqVFYv9/yLKMkrJKZ/V5A/kDBC690or307i26Og==} engines: {node: ^16.14.0 || >=18.0.0} - dependencies: - agent-base: 7.1.0 - http-proxy-agent: 7.0.0 - https-proxy-agent: 7.0.2 - lru-cache: 10.1.0 - socks-proxy-agent: 8.0.2 - transitivePeerDependencies: - - supports-color - dev: true - /@npmcli/fs@3.1.0: - resolution: {integrity: sha512-7kZUAaLscfgbwBQRbvdMYaZOWyMEcPTH/tJjnyAWJ/dvvs9Ef+CERx/qJb9GExJpl1qipaDGn7KqHnFGGixd0w==} + '@npmcli/arborist@7.5.4': + resolution: {integrity: sha512-nWtIc6QwwoUORCRNzKx4ypHqCk3drI+5aeYdMTQQiRCcn4lOOgfQh7WyZobGYTxXPSq1VwV53lkpN/BRlRk08g==} + engines: {node: ^16.14.0 || >=18.0.0} + hasBin: true + + '@npmcli/fs@3.1.1': + resolution: {integrity: sha512-q9CRWjpHCMIh5sVyefoD1cA7PkvILqCZsnSOEUUivORLjxCO/Irmue2DprETiNgEqktDBZaM1Bi+jrarx1XdCg==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - dependencies: - semver: 7.5.4 - dev: true - /@npmcli/git@5.0.3: - resolution: {integrity: sha512-UZp9NwK+AynTrKvHn5k3KviW/hA5eENmFsu3iAPe7sWRt0lFUdsY/wXIYjpDFe7cdSNwOIzbObfwgt6eL5/2zw==} + '@npmcli/git@5.0.8': + resolution: {integrity: sha512-liASfw5cqhjNW9UFd+ruwwdEf/lbOAQjLL2XY2dFW/bkJheXDYZgOyul/4gVvEV4BWkTXjYGmDqMw9uegdbJNQ==} engines: {node: ^16.14.0 || >=18.0.0} - dependencies: - '@npmcli/promise-spawn': 7.0.0 - lru-cache: 10.1.0 - npm-pick-manifest: 9.0.0 - proc-log: 3.0.0 - promise-inflight: 1.0.1 - promise-retry: 2.0.1 - semver: 7.5.4 - which: 4.0.0 - transitivePeerDependencies: - - bluebird - dev: true - /@npmcli/installed-package-contents@2.0.2: - resolution: {integrity: sha512-xACzLPhnfD51GKvTOOuNX2/V4G4mz9/1I2MfDoye9kBM3RYe5g2YbscsaGoTlaWqkxeiapBWyseULVKpSVHtKQ==} + '@npmcli/installed-package-contents@2.1.0': + resolution: {integrity: sha512-c8UuGLeZpm69BryRykLuKRyKFZYJsZSCT4aVY5ds4omyZqJ172ApzgfKJ5eV/r3HgLdUYgFVe54KSFVjKoe27w==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} hasBin: true - dependencies: - npm-bundled: 3.0.0 - npm-normalize-package-bin: 3.0.0 - dev: true - /@npmcli/node-gyp@3.0.0: + '@npmcli/map-workspaces@3.0.6': + resolution: {integrity: sha512-tkYs0OYnzQm6iIRdfy+LcLBjcKuQCeE5YLb8KnrIlutJfheNaPvPpgoFEyEFgbjzl5PLZ3IA/BWAwRU0eHuQDA==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + + '@npmcli/metavuln-calculator@7.1.1': + resolution: {integrity: sha512-Nkxf96V0lAx3HCpVda7Vw4P23RILgdi/5K1fmj2tZkWIYLpXAN8k2UVVOsW16TsS5F8Ws2I7Cm+PU1/rsVF47g==} + engines: {node: ^16.14.0 || >=18.0.0} + + '@npmcli/name-from-folder@2.0.0': + resolution: {integrity: sha512-pwK+BfEBZJbKdNYpHHRTNBwBoqrN/iIMO0AiGvYsp3Hoaq0WbgGSWQR6SCldZovoDpY3yje5lkFUe6gsDgJ2vg==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + + '@npmcli/node-gyp@3.0.0': resolution: {integrity: sha512-gp8pRXC2oOxu0DUE1/M3bYtb1b3/DbJ5aM113+XJBgfXdussRAsX0YOrOhdd8WvnAR6auDBvJomGAkLKA5ydxA==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - dev: true - /@npmcli/promise-spawn@7.0.0: - resolution: {integrity: sha512-wBqcGsMELZna0jDblGd7UXgOby45TQaMWmbFwWX+SEotk4HV6zG2t6rT9siyLhPk4P6YYqgfL1UO8nMWDBVJXQ==} + '@npmcli/package-json@5.2.0': + resolution: {integrity: sha512-qe/kiqqkW0AGtvBjL8TJKZk/eBBSpnJkUWvHdQ9jM2lKHXRYYJuyNpJPlJw3c8QjC2ow6NZYiLExhUaeJelbxQ==} engines: {node: ^16.14.0 || >=18.0.0} - dependencies: - which: 4.0.0 - dev: true - /@npmcli/run-script@7.0.2: - resolution: {integrity: sha512-Omu0rpA8WXvcGeY6DDzyRoY1i5DkCBkzyJ+m2u7PD6quzb0TvSqdIPOkTn8ZBOj7LbbcbMfZ3c5skwSu6m8y2w==} + '@npmcli/promise-spawn@7.0.2': + resolution: {integrity: sha512-xhfYPXoV5Dy4UkY0D+v2KkwvnDfiA/8Mt3sWCGI/hM03NsYIH8ZaG6QzS9x7pje5vHZBZJ2v6VRFVTWACnqcmQ==} engines: {node: ^16.14.0 || >=18.0.0} - dependencies: - '@npmcli/node-gyp': 3.0.0 - '@npmcli/promise-spawn': 7.0.0 - node-gyp: 10.0.1 - read-package-json-fast: 3.0.2 - which: 4.0.0 - transitivePeerDependencies: - - supports-color - dev: true - /@nrwl/devkit@17.2.8(nx@17.2.8): - resolution: {integrity: sha512-l2dFy5LkWqSA45s6pee6CoqJeluH+sjRdVnAAQfjLHRNSx6mFAKblyzq5h1f4P0EUCVVVqLs+kVqmNx5zxYqvw==} - dependencies: - '@nx/devkit': 17.2.8(nx@17.2.8) - transitivePeerDependencies: - - nx - dev: true + '@npmcli/query@3.1.0': + resolution: {integrity: sha512-C/iR0tk7KSKGldibYIB9x8GtO/0Bd0I2mhOaDb8ucQL/bQVTmGoeREaFj64Z5+iCBRf3dQfed0CjJL7I8iTkiQ==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - /@nrwl/tao@17.2.8: - resolution: {integrity: sha512-Qpk5YKeJ+LppPL/wtoDyNGbJs2MsTi6qyX/RdRrEc8lc4bk6Cw3Oul1qTXCI6jT0KzTz+dZtd0zYD/G7okkzvg==} - hasBin: true - dependencies: - nx: 17.2.8 - tslib: 2.5.0 - transitivePeerDependencies: - - '@swc-node/register' - - '@swc/core' - - debug - dev: true + '@npmcli/redact@2.0.1': + resolution: {integrity: sha512-YgsR5jCQZhVmTJvjduTOIHph0L73pK8xwMVaDY0PatySqVM9AZj93jpoXYSJqfHFxFkN9dmqTw6OiqExsS3LPw==} + engines: {node: ^16.14.0 || >=18.0.0} - /@nx/devkit@17.2.8(nx@17.2.8): - resolution: {integrity: sha512-6LtiQihtZwqz4hSrtT5cCG5XMCWppG6/B8c1kNksg97JuomELlWyUyVF+sxmeERkcLYFaKPTZytP0L3dmCFXaw==} + '@npmcli/run-script@8.1.0': + resolution: {integrity: sha512-y7efHHwghQfk28G2z3tlZ67pLG0XdfYbcVG26r7YIXALRsrVQcTq4/tdenSmdOrEsNahIYA/eh8aEVROWGFUDg==} + engines: {node: ^16.14.0 || >=18.0.0} + + '@nx/devkit@20.3.3': + resolution: {integrity: sha512-YwVQQpyeMpQeXzu4/Yv6Ng3ZZxJ45RGbGqbb+VWQfDKkZIHcyR7iLLQDaLpyl34HkrLYdZez9BB8wnyn3IaxqA==} peerDependencies: - nx: '>= 16 <= 18' - dependencies: - '@nrwl/devkit': 17.2.8(nx@17.2.8) - ejs: 3.1.8 - enquirer: 2.3.6 - ignore: 5.2.4 - nx: 17.2.8 - semver: 7.5.3 - tmp: 0.2.1 - tslib: 2.5.0 - dev: true + nx: '>= 19 <= 21' - /@nx/nx-darwin-arm64@17.2.8: - resolution: {integrity: sha512-dMb0uxug4hM7tusISAU1TfkDK3ixYmzc1zhHSZwpR7yKJIyKLtUpBTbryt8nyso37AS1yH+dmfh2Fj2WxfBHTg==} + '@nx/nx-darwin-arm64@20.3.3': + resolution: {integrity: sha512-4C7ShMrqp1vbH1ZgvSlkt0f35hJcqKtRcf8n/tCck46rnMkj4egXi3K1dE6uQcOorwiD1ttAr0DHcI1TTqcNXw==} engines: {node: '>= 10'} cpu: [arm64] os: [darwin] - requiresBuild: true - dev: true - optional: true - /@nx/nx-darwin-x64@17.2.8: - resolution: {integrity: sha512-0cXzp1tGr7/6lJel102QiLA4NkaLCkQJj6VzwbwuvmuCDxPbpmbz7HC1tUteijKBtOcdXit1/MEoEU007To8Bw==} + '@nx/nx-darwin-x64@20.3.3': + resolution: {integrity: sha512-OUtJ7gA09pJC+a+RcZf1bGbMM4T7a/IcPb97z1xOoxr5Wm2s8BGBQUW2CKJ5gCp5iI1pGo44F12u0G9gbYClow==} engines: {node: '>= 10'} cpu: [x64] os: [darwin] - requiresBuild: true - dev: true - optional: true - /@nx/nx-freebsd-x64@17.2.8: - resolution: {integrity: sha512-YFMgx5Qpp2btCgvaniDGdu7Ctj56bfFvbbaHQWmOeBPK1krNDp2mqp8HK6ZKOfEuDJGOYAp7HDtCLvdZKvJxzA==} + '@nx/nx-freebsd-x64@20.3.3': + resolution: {integrity: sha512-q4SABgKYWPGOcdfRZne6n8HF4CzltRL5nJ3q093jQAUO93yPXtWzhQBaKZIZr6aPoqq0/NuH6xY4gNo4w9F8Bg==} engines: {node: '>= 10'} cpu: [x64] os: [freebsd] - requiresBuild: true - dev: true - optional: true - /@nx/nx-linux-arm-gnueabihf@17.2.8: - resolution: {integrity: sha512-iN2my6MrhLRkVDtdivQHugK8YmR7URo1wU9UDuHQ55z3tEcny7LV3W9NSsY9UYPK/FrxdDfevj0r2hgSSdhnzA==} + '@nx/nx-linux-arm-gnueabihf@20.3.3': + resolution: {integrity: sha512-e07PJcVsBT/Aelo/Vj6hLplDZamGCZ3zOJpW3XVBhdG4DC4sn+jodsdrIASoEpmF70VB89lzQsm9GrAgQPaWOA==} engines: {node: '>= 10'} cpu: [arm] os: [linux] - requiresBuild: true - dev: true - optional: true - /@nx/nx-linux-arm64-gnu@17.2.8: - resolution: {integrity: sha512-Iy8BjoW6mOKrSMiTGujUcNdv+xSM1DALTH6y3iLvNDkGbjGK1Re6QNnJAzqcXyDpv32Q4Fc57PmuexyysZxIGg==} + '@nx/nx-linux-arm64-gnu@20.3.3': + resolution: {integrity: sha512-1Z9chlN0/hWzliMer7TvdLT8cb6BKpGjZ15a+rQuUbO/CyLhY21Ct+lXtnaBERnNPYJpNOJlrbBDuF/9wpZ4CQ==} engines: {node: '>= 10'} cpu: [arm64] os: [linux] - requiresBuild: true - dev: true - optional: true - /@nx/nx-linux-arm64-musl@17.2.8: - resolution: {integrity: sha512-9wkAxWzknjpzdofL1xjtU6qPFF1PHlvKCZI3hgEYJDo4mQiatGI+7Ttko+lx/ZMP6v4+Umjtgq7+qWrApeKamQ==} + '@nx/nx-linux-arm64-musl@20.3.3': + resolution: {integrity: sha512-RrLgujPU5NfDrsDRa7Y2isxGb8XkoQeJkTMUl1xmBK2Qnf4jAUn0PH0ULWrRMNgChi4nYUTn/Sf+2m6Uyoqcfw==} engines: {node: '>= 10'} cpu: [arm64] os: [linux] - requiresBuild: true - dev: true - optional: true - /@nx/nx-linux-x64-gnu@17.2.8: - resolution: {integrity: sha512-sjG1bwGsjLxToasZ3lShildFsF0eyeGu+pOQZIp9+gjFbeIkd19cTlCnHrOV9hoF364GuKSXQyUlwtFYFR4VTQ==} + '@nx/nx-linux-x64-gnu@20.3.3': + resolution: {integrity: sha512-/WmCnPxv1eR8tyYiFp4XoMbcXrJ8a/OIw1rpZZ5ceMKgH8lPaF2/KFf04JZZygrCKletEdqqIojBXz4AHoaueQ==} engines: {node: '>= 10'} cpu: [x64] os: [linux] - requiresBuild: true - dev: true - optional: true - /@nx/nx-linux-x64-musl@17.2.8: - resolution: {integrity: sha512-QiakXZ1xBCIptmkGEouLHQbcM4klQkcr+kEaz2PlNwy/sW3gH1b/1c0Ed5J1AN9xgQxWspriAONpScYBRgxdhA==} + '@nx/nx-linux-x64-musl@20.3.3': + resolution: {integrity: sha512-y4BJsR0fgJrXY3P7GkWfUZAeQEHMTXvaRHvzJfBSBPmnVcVZDYNTfEQYnslp8m8ahKdlJwtflxzykJ4Bwf55fw==} engines: {node: '>= 10'} cpu: [x64] os: [linux] - requiresBuild: true - dev: true - optional: true - /@nx/nx-win32-arm64-msvc@17.2.8: - resolution: {integrity: sha512-XBWUY/F/GU3vKN9CAxeI15gM4kr3GOBqnzFZzoZC4qJt2hKSSUEWsMgeZtsMgeqEClbi4ZyCCkY7YJgU32WUGA==} + '@nx/nx-win32-arm64-msvc@20.3.3': + resolution: {integrity: sha512-BHqZitBaGT9ybv386B5QKxP5N66+xpTiYlKClzQ44o6Ca8QxnkugI64exBdcQyj+DRiL6HJhN14kaPJ1KrsKRA==} engines: {node: '>= 10'} cpu: [arm64] os: [win32] - requiresBuild: true - dev: true - optional: true - /@nx/nx-win32-x64-msvc@17.2.8: - resolution: {integrity: sha512-HTqDv+JThlLzbcEm/3f+LbS5/wYQWzb5YDXbP1wi7nlCTihNZOLNqGOkEmwlrR5tAdNHPRpHSmkYg4305W0CtA==} + '@nx/nx-win32-x64-msvc@20.3.3': + resolution: {integrity: sha512-6HcbAKghEypt4aMAoDjPn2sa6FG0MyiDabpV/cVLKokK09ngyy6qQDa5vSCUSDwI542XBxqtcv0AcZi7Ez+XUQ==} engines: {node: '>= 10'} cpu: [x64] os: [win32] - requiresBuild: true - dev: true - optional: true - /@octokit/auth-token@3.0.3: - resolution: {integrity: sha512-/aFM2M4HVDBT/jjDBa84sJniv1t9Gm/rLkalaz9htOm+L+8JMj1k9w0CkUdcxNyNxZPlTxKPVko+m1VlM58ZVA==} + '@octokit/auth-token@3.0.4': + resolution: {integrity: sha512-TWFX7cZF2LXoCvdmJWY7XVPi74aSY0+FfBZNSXEXFkMpjcqsQwDSYVv5FhRFaI0V1ECnwbz4j59T/G+rXNWaIQ==} engines: {node: '>= 14'} - dependencies: - '@octokit/types': 9.0.0 - dev: true - /@octokit/core@4.2.4: + '@octokit/core@4.2.4': resolution: {integrity: sha512-rYKilwgzQ7/imScn3M9/pFfUf4I1AZEH3KhyJmtPdE2zfaXAn2mFfUy4FbKewzc2We5y/LlKLj36fWJLKC2SIQ==} engines: {node: '>= 14'} - dependencies: - '@octokit/auth-token': 3.0.3 - '@octokit/graphql': 5.0.5 - '@octokit/request': 6.2.3 - '@octokit/request-error': 3.0.3 - '@octokit/types': 9.0.0 - before-after-hook: 2.2.3 - universal-user-agent: 6.0.0 - transitivePeerDependencies: - - encoding - dev: true - /@octokit/endpoint@7.0.5: - resolution: {integrity: sha512-LG4o4HMY1Xoaec87IqQ41TQ+glvIeTKqfjkCEmt5AIwDZJwQeVZFIEYXrYY6yLwK+pAScb9Gj4q+Nz2qSw1roA==} + '@octokit/endpoint@7.0.6': + resolution: {integrity: sha512-5L4fseVRUsDFGR00tMWD/Trdeeihn999rTMGRMC1G/Ldi1uWlWJzI98H4Iak5DB/RVvQuyMYKqSK/R6mbSOQyg==} engines: {node: '>= 14'} - dependencies: - '@octokit/types': 9.0.0 - is-plain-object: 5.0.0 - universal-user-agent: 6.0.0 - dev: true - /@octokit/graphql@5.0.5: - resolution: {integrity: sha512-Qwfvh3xdqKtIznjX9lz2D458r7dJPP8l6r4GQkIdWQouZwHQK0mVT88uwiU2bdTU2OtT1uOlKpRciUWldpG0yQ==} + '@octokit/graphql@5.0.6': + resolution: {integrity: sha512-Fxyxdy/JH0MnIB5h+UQ3yCoh1FG4kWXfFKkpWqjZHw/p+Kc8Y44Hu/kCgNBT6nU1shNumEchmW/sUO1JuQnPcw==} engines: {node: '>= 14'} - dependencies: - '@octokit/request': 6.2.3 - '@octokit/types': 9.0.0 - universal-user-agent: 6.0.0 - transitivePeerDependencies: - - encoding - dev: true - /@octokit/openapi-types@16.0.0: - resolution: {integrity: sha512-JbFWOqTJVLHZSUUoF4FzAZKYtqdxWu9Z5m2QQnOyEa04fOFljvyh7D3GYKbfuaSWisqehImiVIMG4eyJeP5VEA==} - dev: true - - /@octokit/openapi-types@18.1.1: + '@octokit/openapi-types@18.1.1': resolution: {integrity: sha512-VRaeH8nCDtF5aXWnjPuEMIYf1itK/s3JYyJcWFJT8X9pSNnBtriDf7wlEWsGuhPLl4QIH4xM8fqTXDwJ3Mu6sw==} - dev: true - /@octokit/plugin-enterprise-rest@6.0.1: + '@octokit/plugin-enterprise-rest@6.0.1': resolution: {integrity: sha512-93uGjlhUD+iNg1iWhUENAtJata6w5nE+V4urXOAlIXdco6xNZtUSfYY8dzp3Udy74aqO/B5UZL80x/YMa5PKRw==} - dev: true - /@octokit/plugin-paginate-rest@6.1.2(@octokit/core@4.2.4): + '@octokit/plugin-paginate-rest@6.1.2': resolution: {integrity: sha512-qhrmtQeHU/IivxucOV1bbI/xZyC/iOBhclokv7Sut5vnejAIAEXVcGQeRpQlU39E0WwK9lNvJHphHri/DB6lbQ==} engines: {node: '>= 14'} peerDependencies: '@octokit/core': '>=4' - dependencies: - '@octokit/core': 4.2.4 - '@octokit/tsconfig': 1.0.2 - '@octokit/types': 9.3.2 - dev: true - /@octokit/plugin-request-log@1.0.4(@octokit/core@4.2.4): + '@octokit/plugin-request-log@1.0.4': resolution: {integrity: sha512-mLUsMkgP7K/cnFEw07kWqXGF5LKrOkD+lhCrKvPHXWDywAwuDUeDwWBpc69XK3pNX0uKiVt8g5z96PJ6z9xCFA==} peerDependencies: '@octokit/core': '>=3' - dependencies: - '@octokit/core': 4.2.4 - dev: true - /@octokit/plugin-rest-endpoint-methods@7.2.3(@octokit/core@4.2.4): + '@octokit/plugin-rest-endpoint-methods@7.2.3': resolution: {integrity: sha512-I5Gml6kTAkzVlN7KCtjOM+Ruwe/rQppp0QU372K1GP7kNOYEKe8Xn5BW4sE62JAHdwpq95OQK/qGNyKQMUzVgA==} engines: {node: '>= 14'} peerDependencies: '@octokit/core': '>=3' - dependencies: - '@octokit/core': 4.2.4 - '@octokit/types': 10.0.0 - dev: true - /@octokit/request-error@3.0.3: + '@octokit/request-error@3.0.3': resolution: {integrity: sha512-crqw3V5Iy2uOU5Np+8M/YexTlT8zxCfI+qu+LxUB7SZpje4Qmx3mub5DfEKSO8Ylyk0aogi6TYdf6kxzh2BguQ==} engines: {node: '>= 14'} - dependencies: - '@octokit/types': 9.0.0 - deprecation: 2.3.1 - once: 1.4.0 - dev: true - /@octokit/request@6.2.3: - resolution: {integrity: sha512-TNAodj5yNzrrZ/VxP+H5HiYaZep0H3GU0O7PaF+fhDrt8FPrnkei9Aal/txsN/1P7V3CPiThG0tIvpPDYUsyAA==} + '@octokit/request@6.2.8': + resolution: {integrity: sha512-ow4+pkVQ+6XVVsekSYBzJC0VTVvh/FCTUUgTsboGq+DTeWdyIFV8WSCdo0RIxk6wSkBTHqIK1mYuY7nOBXOchw==} engines: {node: '>= 14'} - dependencies: - '@octokit/endpoint': 7.0.5 - '@octokit/request-error': 3.0.3 - '@octokit/types': 9.0.0 - is-plain-object: 5.0.0 - node-fetch: 2.6.8 - universal-user-agent: 6.0.0 - transitivePeerDependencies: - - encoding - dev: true - /@octokit/rest@19.0.11: + '@octokit/rest@19.0.11': resolution: {integrity: sha512-m2a9VhaP5/tUw8FwfnW2ICXlXpLPIqxtg3XcAiGMLj/Xhw3RSBfZ8le/466ktO1Gcjr8oXudGnHhxV1TXJgFxw==} engines: {node: '>= 14'} - dependencies: - '@octokit/core': 4.2.4 - '@octokit/plugin-paginate-rest': 6.1.2(@octokit/core@4.2.4) - '@octokit/plugin-request-log': 1.0.4(@octokit/core@4.2.4) - '@octokit/plugin-rest-endpoint-methods': 7.2.3(@octokit/core@4.2.4) - transitivePeerDependencies: - - encoding - dev: true - /@octokit/tsconfig@1.0.2: + '@octokit/tsconfig@1.0.2': resolution: {integrity: sha512-I0vDR0rdtP8p2lGMzvsJzbhdOWy405HcGovrspJ8RRibHnyRgggUSNO5AIox5LmqiwmatHKYsvj6VGFHkqS7lA==} - dev: true - /@octokit/types@10.0.0: + '@octokit/types@10.0.0': resolution: {integrity: sha512-Vm8IddVmhCgU1fxC1eyinpwqzXPEYu0NrYzD3YZjlGjyftdLBTeqNblRC0jmJmgxbJIsQlyogVeGnrNaaMVzIg==} - dependencies: - '@octokit/openapi-types': 18.1.1 - dev: true - /@octokit/types@9.0.0: - resolution: {integrity: sha512-LUewfj94xCMH2rbD5YJ+6AQ4AVjFYTgpp6rboWM5T7N3IsIF65SBEOVcYMGAEzO/kKNiNaW4LoWtoThOhH06gw==} - dependencies: - '@octokit/openapi-types': 16.0.0 - dev: true - - /@octokit/types@9.3.2: + '@octokit/types@9.3.2': resolution: {integrity: sha512-D4iHGTdAnEEVsB8fl95m1hiz7D5YiRdQ9b/OEb3BYRVwbLsGHcRVPz+u+BgRLNk0Q0/4iZCBqDN96j2XNxfXrA==} - dependencies: - '@octokit/openapi-types': 18.1.1 - dev: true - /@pkgjs/parseargs@0.11.0: + '@oslojs/encoding@1.1.0': + resolution: {integrity: sha512-70wQhgYmndg4GCPxPPxPGevRKqTIJ2Nh4OkiMWmDAVYsTQ+Ta7Sq+rPevXyXGdzr30/qZBnyOalCszoMxlyldQ==} + + '@peggyjs/from-mem@1.3.5': + resolution: {integrity: sha512-oRyzXE7nirAn+5yYjCdWQHg3EG2XXcYRoYNOK8Quqnmm+9FyK/2YWVunwudlYl++M3xY+gIAdf0vAYS+p0nKfQ==} + engines: {node: '>=18'} + + '@pkgjs/parseargs@0.11.0': resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==} engines: {node: '>=14'} - requiresBuild: true - dev: true - optional: true - /@polka/url@1.0.0-next.24: - resolution: {integrity: sha512-2LuNTFBIO0m7kKIQvvPHN6UE63VjpmL9rnEEaOOaiSPbZK+zUOYIzBAWcED+3XYzhYsd/0mD57VdxAEqqV52CQ==} - dev: true + '@polka/url@1.0.0-next.28': + resolution: {integrity: sha512-8LduaNlMZGwdZ6qWrKlfa+2M4gahzFkprZiAt2TF8uS0qQgBizKXpXURqvTJ4WtmupWxaLqjRb2UCTe72mu+Aw==} - /@replit/codemirror-emacs@6.0.1(@codemirror/autocomplete@6.11.1)(@codemirror/commands@6.3.3)(@codemirror/search@6.5.5)(@codemirror/state@6.4.0)(@codemirror/view@6.23.0): - resolution: {integrity: sha512-2WYkODZGH1QVAXWuOxTMCwktkoZyv/BjYdJi2A5w4fRrmOQFuIACzb6pO9dgU3J+Pm2naeiX2C8veZr/3/r6AA==} + '@react-aria/focus@3.19.1': + resolution: {integrity: sha512-bix9Bu1Ue7RPcYmjwcjhB14BMu2qzfJ3tMQLqDc9pweJA66nOw8DThy3IfVr8Z7j2PHktOLf9kcbiZpydKHqzg==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + + '@react-aria/interactions@3.23.0': + resolution: {integrity: sha512-0qR1atBIWrb7FzQ+Tmr3s8uH5mQdyRH78n0krYaG8tng9+u1JlSi8DGRSaC9ezKyNB84m7vHT207xnHXGeJ3Fg==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + + '@react-aria/ssr@3.9.7': + resolution: {integrity: sha512-GQygZaGlmYjmYM+tiNBA5C6acmiDWF52Nqd40bBp0Znk4M4hP+LTmI0lpI1BuKMw45T8RIhrAsICIfKwZvi2Gg==} + engines: {node: '>= 12'} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + + '@react-aria/utils@3.27.0': + resolution: {integrity: sha512-p681OtApnKOdbeN8ITfnnYqfdHS0z7GE+4l8EXlfLnr70Rp/9xicBO6d2rU+V/B3JujDw2gPWxYKEnEeh0CGCw==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + + '@react-stately/utils@3.10.5': + resolution: {integrity: sha512-iMQSGcpaecghDIh3mZEpZfoFH3ExBwTtuBEcvZ2XnGzCgQjeYXcMdIUwAfVQLXFTdHUHGF6Gu6/dFrYsCzySBQ==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + + '@react-types/shared@3.27.0': + resolution: {integrity: sha512-gvznmLhi6JPEf0bsq7SwRYTHAKKq/wcmKqFez9sRdbED+SPMUmK5omfZ6w3EwUFQHbYUa4zPBYedQ7Knv70RMw==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + + '@replit/codemirror-emacs@6.1.0': + resolution: {integrity: sha512-74DITnht6Cs6sHg02PQ169IKb1XgtyhI9sLD0JeOFco6Ds18PT+dkD8+DgXBDokne9UIFKsBbKPnpFRAz60/Lw==} peerDependencies: '@codemirror/autocomplete': ^6.0.2 '@codemirror/commands': ^6.0.0 '@codemirror/search': ^6.0.0 '@codemirror/state': ^6.0.1 '@codemirror/view': ^6.3.0 - dependencies: - '@codemirror/autocomplete': 6.11.1(@codemirror/language@6.10.0)(@codemirror/state@6.4.0)(@codemirror/view@6.23.0)(@lezer/common@1.2.0) - '@codemirror/commands': 6.3.3 - '@codemirror/search': 6.5.5 - '@codemirror/state': 6.4.0 - '@codemirror/view': 6.23.0 - dev: false - /@replit/codemirror-vim@6.1.0(@codemirror/commands@6.3.3)(@codemirror/language@6.10.0)(@codemirror/search@6.5.5)(@codemirror/state@6.4.0)(@codemirror/view@6.23.0): - resolution: {integrity: sha512-XATcrMBYphSgTTDHaL5cTdBKA+/kwg8x0kHpX9xFHkI8c2G9+nXdkIzFCtk76x1VDYQSlT6orNhudNt+9H9zOA==} + '@replit/codemirror-vim@6.2.1': + resolution: {integrity: sha512-qDAcGSHBYU5RrdO//qCmD8K9t6vbP327iCj/iqrkVnjbrpFhrjOt92weGXGHmTNRh16cUtkUZ7Xq7rZf+8HVow==} peerDependencies: '@codemirror/commands': ^6.0.0 '@codemirror/language': ^6.1.0 '@codemirror/search': ^6.2.0 '@codemirror/state': ^6.0.1 '@codemirror/view': ^6.0.3 - dependencies: - '@codemirror/commands': 6.3.3 - '@codemirror/language': 6.10.0 - '@codemirror/search': 6.5.5 - '@codemirror/state': 6.4.0 - '@codemirror/view': 6.23.0 - dev: false - /@replit/codemirror-vscode-keymap@6.0.2(@codemirror/autocomplete@6.11.1)(@codemirror/commands@6.3.3)(@codemirror/language@6.10.0)(@codemirror/lint@6.4.2)(@codemirror/search@6.5.5)(@codemirror/state@6.4.0)(@codemirror/view@6.23.0): + '@replit/codemirror-vscode-keymap@6.0.2': resolution: {integrity: sha512-j45qTwGxzpsv82lMD/NreGDORFKSctMDVkGRopaP+OrzSzv+pXDQuU3LnFvKpasyjVT0lf+PKG1v2DSCn/vxxg==} peerDependencies: '@codemirror/autocomplete': ^6.0.0 @@ -3873,17 +2251,8 @@ packages: '@codemirror/search': ^6.0.0 '@codemirror/state': ^6.0.0 '@codemirror/view': ^6.0.0 - dependencies: - '@codemirror/autocomplete': 6.11.1(@codemirror/language@6.10.0)(@codemirror/state@6.4.0)(@codemirror/view@6.23.0)(@lezer/common@1.2.0) - '@codemirror/commands': 6.3.3 - '@codemirror/language': 6.10.0 - '@codemirror/lint': 6.4.2 - '@codemirror/search': 6.5.5 - '@codemirror/state': 6.4.0 - '@codemirror/view': 6.23.0 - dev: false - /@rollup/plugin-babel@5.3.1(@babel/core@7.23.7)(rollup@2.79.1): + '@rollup/plugin-babel@5.3.1': resolution: {integrity: sha512-WFfdLWU/xVWKeRQnKmIAQULUI7Il0gZnBIH/ZFO069wYIfPu+8zrfp/KMW0atmELoRDq8FbiP3VCss9MhCut7Q==} engines: {node: '>= 10.0.0'} peerDependencies: @@ -3893,3365 +2262,1726 @@ packages: peerDependenciesMeta: '@types/babel__core': optional: true - dependencies: - '@babel/core': 7.23.7 - '@babel/helper-module-imports': 7.22.15 - '@rollup/pluginutils': 3.1.0(rollup@2.79.1) - rollup: 2.79.1 - dev: true - /@rollup/plugin-node-resolve@11.2.1(rollup@2.79.1): + '@rollup/plugin-node-resolve@11.2.1': resolution: {integrity: sha512-yc2n43jcqVyGE2sqV5/YCmocy9ArjVAP/BeXyTtADTBBX6V0e5UMqwO8CdQ0kzjb6zu5P1qMzsScCMRvE9OlVg==} engines: {node: '>= 10.0.0'} peerDependencies: rollup: ^1.20.0||^2.0.0 - dependencies: - '@rollup/pluginutils': 3.1.0(rollup@2.79.1) - '@types/resolve': 1.17.1 - builtin-modules: 3.3.0 - deepmerge: 4.3.1 - is-module: 1.0.0 - resolve: 1.22.8 - rollup: 2.79.1 - dev: true - /@rollup/plugin-replace@2.4.2(rollup@2.79.1): + '@rollup/plugin-node-resolve@15.3.1': + resolution: {integrity: sha512-tgg6b91pAybXHJQMAAwW9VuWBO6Thi+q7BCNARLwSqlmsHz0XYURtGvh/AuwSADXSI4h/2uHbs7s4FzlZDGSGA==} + engines: {node: '>=14.0.0'} + peerDependencies: + rollup: ^2.78.0||^3.0.0||^4.0.0 + peerDependenciesMeta: + rollup: + optional: true + + '@rollup/plugin-replace@2.4.2': resolution: {integrity: sha512-IGcu+cydlUMZ5En85jxHH4qj2hta/11BHq95iHEyb2sbgiN0eCdzvUcHw5gt9pBL5lTi4JDYJ1acCoMGpTvEZg==} peerDependencies: rollup: ^1.20.0 || ^2.0.0 - dependencies: - '@rollup/pluginutils': 3.1.0(rollup@2.79.1) - magic-string: 0.25.9 - rollup: 2.79.1 - dev: true - /@rollup/plugin-replace@5.0.5: - resolution: {integrity: sha512-rYO4fOi8lMaTg/z5Jb+hKnrHHVn8j2lwkqwyS4kTRhKyWOLf2wST2sWXr4WzWiTcoHTp2sTjqUbqIj2E39slKQ==} + '@rollup/plugin-replace@6.0.2': + resolution: {integrity: sha512-7QaYCf8bqF04dOy7w/eHmJeNExxTYwvKAmlSAH/EaWWUzbT0h5sbF6bktFoX/0F/0qwng5/dWFMyf3gzaM8DsQ==} engines: {node: '>=14.0.0'} peerDependencies: rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0 peerDependenciesMeta: rollup: optional: true - dependencies: - '@rollup/pluginutils': 5.1.0 - magic-string: 0.30.5 - dev: true - /@rollup/pluginutils@3.1.0(rollup@2.79.1): + '@rollup/pluginutils@3.1.0': resolution: {integrity: sha512-GksZ6pr6TpIjHm8h9lSQ8pi8BE9VeubNT0OMJ3B5uZJ8pz73NPiqOtCog/x2/QzM1ENChPKxMDhiQuRHsqc+lg==} engines: {node: '>= 8.0.0'} peerDependencies: rollup: ^1.20.0||^2.0.0 - dependencies: - '@types/estree': 0.0.39 - estree-walker: 1.0.1 - picomatch: 2.3.1 - rollup: 2.79.1 - dev: true - /@rollup/pluginutils@5.1.0: - resolution: {integrity: sha512-XTIWOPPcpvyKI6L1NHo0lFlCyznUEyPmPY1mc3KpPVDYulHSTvyeLNVW00QTLIAFNhR3kYnJTQHeGqU4M3n09g==} + '@rollup/pluginutils@5.1.4': + resolution: {integrity: sha512-USm05zrsFxYLPdWWq+K3STlWiT/3ELn3RcV5hJMghpeAIhxfsUIg6mt12CBJBInWMV4VneoV7SfGv8xIwo2qNQ==} engines: {node: '>=14.0.0'} peerDependencies: rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0 peerDependenciesMeta: rollup: optional: true - dependencies: - '@types/estree': 1.0.0 - estree-walker: 2.0.2 - picomatch: 2.3.1 - dev: true - /@rollup/rollup-android-arm-eabi@4.13.0: - resolution: {integrity: sha512-5ZYPOuaAqEH/W3gYsRkxQATBW3Ii1MfaT4EQstTnLKViLi2gLSQmlmtTpGucNP3sXEpOiI5tdGhjdE111ekyEg==} + '@rollup/rollup-android-arm-eabi@4.32.0': + resolution: {integrity: sha512-G2fUQQANtBPsNwiVFg4zKiPQyjVKZCUdQUol53R8E71J7AsheRMV/Yv/nB8giOcOVqP7//eB5xPqieBYZe9bGg==} cpu: [arm] os: [android] - requiresBuild: true - optional: true - /@rollup/rollup-android-arm-eabi@4.9.2: - resolution: {integrity: sha512-RKzxFxBHq9ysZ83fn8Iduv3A283K7zPPYuhL/z9CQuyFrjwpErJx0h4aeb/bnJ+q29GRLgJpY66ceQ/Wcsn3wA==} - cpu: [arm] - os: [android] - requiresBuild: true - dev: true - optional: true - - /@rollup/rollup-android-arm64@4.13.0: - resolution: {integrity: sha512-BSbaCmn8ZadK3UAQdlauSvtaJjhlDEjS5hEVVIN3A4bbl3X+otyf/kOJV08bYiRxfejP3DXFzO2jz3G20107+Q==} + '@rollup/rollup-android-arm64@4.32.0': + resolution: {integrity: sha512-qhFwQ+ljoymC+j5lXRv8DlaJYY/+8vyvYmVx074zrLsu5ZGWYsJNLjPPVJJjhZQpyAKUGPydOq9hRLLNvh1s3A==} cpu: [arm64] os: [android] - requiresBuild: true - optional: true - /@rollup/rollup-android-arm64@4.9.2: - resolution: {integrity: sha512-yZ+MUbnwf3SHNWQKJyWh88ii2HbuHCFQnAYTeeO1Nb8SyEiWASEi5dQUygt3ClHWtA9My9RQAYkjvrsZ0WK8Xg==} - cpu: [arm64] - os: [android] - requiresBuild: true - dev: true - optional: true - - /@rollup/rollup-darwin-arm64@4.13.0: - resolution: {integrity: sha512-Ovf2evVaP6sW5Ut0GHyUSOqA6tVKfrTHddtmxGQc1CTQa1Cw3/KMCDEEICZBbyppcwnhMwcDce9ZRxdWRpVd6g==} + '@rollup/rollup-darwin-arm64@4.32.0': + resolution: {integrity: sha512-44n/X3lAlWsEY6vF8CzgCx+LQaoqWGN7TzUfbJDiTIOjJm4+L2Yq+r5a8ytQRGyPqgJDs3Rgyo8eVL7n9iW6AQ==} cpu: [arm64] os: [darwin] - requiresBuild: true - optional: true - /@rollup/rollup-darwin-arm64@4.9.2: - resolution: {integrity: sha512-vqJ/pAUh95FLc/G/3+xPqlSBgilPnauVf2EXOQCZzhZJCXDXt/5A8mH/OzU6iWhb3CNk5hPJrh8pqJUPldN5zw==} - cpu: [arm64] - os: [darwin] - requiresBuild: true - dev: true - optional: true - - /@rollup/rollup-darwin-x64@4.13.0: - resolution: {integrity: sha512-U+Jcxm89UTK592vZ2J9st9ajRv/hrwHdnvyuJpa5A2ngGSVHypigidkQJP+YiGL6JODiUeMzkqQzbCG3At81Gg==} + '@rollup/rollup-darwin-x64@4.32.0': + resolution: {integrity: sha512-F9ct0+ZX5Np6+ZDztxiGCIvlCaW87HBdHcozUfsHnj1WCUTBUubAoanhHUfnUHZABlElyRikI0mgcw/qdEm2VQ==} cpu: [x64] os: [darwin] - requiresBuild: true - optional: true - /@rollup/rollup-darwin-x64@4.9.2: - resolution: {integrity: sha512-otPHsN5LlvedOprd3SdfrRNhOahhVBwJpepVKUN58L0RnC29vOAej1vMEaVU6DadnpjivVsNTM5eNt0CcwTahw==} + '@rollup/rollup-freebsd-arm64@4.32.0': + resolution: {integrity: sha512-JpsGxLBB2EFXBsTLHfkZDsXSpSmKD3VxXCgBQtlPcuAqB8TlqtLcbeMhxXQkCDv1avgwNjF8uEIbq5p+Cee0PA==} + cpu: [arm64] + os: [freebsd] + + '@rollup/rollup-freebsd-x64@4.32.0': + resolution: {integrity: sha512-wegiyBT6rawdpvnD9lmbOpx5Sph+yVZKHbhnSP9MqUEDX08G4UzMU+D87jrazGE7lRSyTRs6NEYHtzfkJ3FjjQ==} cpu: [x64] - os: [darwin] - requiresBuild: true - dev: true - optional: true + os: [freebsd] - /@rollup/rollup-linux-arm-gnueabihf@4.13.0: - resolution: {integrity: sha512-8wZidaUJUTIR5T4vRS22VkSMOVooG0F4N+JSwQXWSRiC6yfEsFMLTYRFHvby5mFFuExHa/yAp9juSphQQJAijQ==} + '@rollup/rollup-linux-arm-gnueabihf@4.32.0': + resolution: {integrity: sha512-3pA7xecItbgOs1A5H58dDvOUEboG5UfpTq3WzAdF54acBbUM+olDJAPkgj1GRJ4ZqE12DZ9/hNS2QZk166v92A==} cpu: [arm] os: [linux] - requiresBuild: true - optional: true - /@rollup/rollup-linux-arm-gnueabihf@4.9.2: - resolution: {integrity: sha512-ewG5yJSp+zYKBYQLbd1CUA7b1lSfIdo9zJShNTyc2ZP1rcPrqyZcNlsHgs7v1zhgfdS+kW0p5frc0aVqhZCiYQ==} + '@rollup/rollup-linux-arm-musleabihf@4.32.0': + resolution: {integrity: sha512-Y7XUZEVISGyge51QbYyYAEHwpGgmRrAxQXO3siyYo2kmaj72USSG8LtlQQgAtlGfxYiOwu+2BdbPjzEpcOpRmQ==} cpu: [arm] os: [linux] - requiresBuild: true - dev: true - optional: true - /@rollup/rollup-linux-arm64-gnu@4.13.0: - resolution: {integrity: sha512-Iu0Kno1vrD7zHQDxOmvweqLkAzjxEVqNhUIXBsZ8hu8Oak7/5VTPrxOEZXYC1nmrBVJp0ZcL2E7lSuuOVaE3+w==} + '@rollup/rollup-linux-arm64-gnu@4.32.0': + resolution: {integrity: sha512-r7/OTF5MqeBrZo5omPXcTnjvv1GsrdH8a8RerARvDFiDwFpDVDnJyByYM/nX+mvks8XXsgPUxkwe/ltaX2VH7w==} cpu: [arm64] os: [linux] - requiresBuild: true - optional: true - /@rollup/rollup-linux-arm64-gnu@4.9.2: - resolution: {integrity: sha512-pL6QtV26W52aCWTG1IuFV3FMPL1m4wbsRG+qijIvgFO/VBsiXJjDPE/uiMdHBAO6YcpV4KvpKtd0v3WFbaxBtg==} + '@rollup/rollup-linux-arm64-musl@4.32.0': + resolution: {integrity: sha512-HJbifC9vex9NqnlodV2BHVFNuzKL5OnsV2dvTw6e1dpZKkNjPG6WUq+nhEYV6Hv2Bv++BXkwcyoGlXnPrjAKXw==} cpu: [arm64] os: [linux] - requiresBuild: true - dev: true - optional: true - /@rollup/rollup-linux-arm64-musl@4.13.0: - resolution: {integrity: sha512-C31QrW47llgVyrRjIwiOwsHFcaIwmkKi3PCroQY5aVq4H0A5v/vVVAtFsI1nfBngtoRpeREvZOkIhmRwUKkAdw==} - cpu: [arm64] + '@rollup/rollup-linux-loongarch64-gnu@4.32.0': + resolution: {integrity: sha512-VAEzZTD63YglFlWwRj3taofmkV1V3xhebDXffon7msNz4b14xKsz7utO6F8F4cqt8K/ktTl9rm88yryvDpsfOw==} + cpu: [loong64] os: [linux] - requiresBuild: true - optional: true - /@rollup/rollup-linux-arm64-musl@4.9.2: - resolution: {integrity: sha512-On+cc5EpOaTwPSNetHXBuqylDW+765G/oqB9xGmWU3npEhCh8xu0xqHGUA+4xwZLqBbIZNcBlKSIYfkBm6ko7g==} - cpu: [arm64] + '@rollup/rollup-linux-powerpc64le-gnu@4.32.0': + resolution: {integrity: sha512-Sts5DST1jXAc9YH/iik1C9QRsLcCoOScf3dfbY5i4kH9RJpKxiTBXqm7qU5O6zTXBTEZry69bGszr3SMgYmMcQ==} + cpu: [ppc64] os: [linux] - requiresBuild: true - dev: true - optional: true - /@rollup/rollup-linux-riscv64-gnu@4.13.0: - resolution: {integrity: sha512-Oq90dtMHvthFOPMl7pt7KmxzX7E71AfyIhh+cPhLY9oko97Zf2C9tt/XJD4RgxhaGeAraAXDtqxvKE1y/j35lA==} + '@rollup/rollup-linux-riscv64-gnu@4.32.0': + resolution: {integrity: sha512-qhlXeV9AqxIyY9/R1h1hBD6eMvQCO34ZmdYvry/K+/MBs6d1nRFLm6BOiITLVI+nFAAB9kUB6sdJRKyVHXnqZw==} cpu: [riscv64] os: [linux] - requiresBuild: true - optional: true - /@rollup/rollup-linux-riscv64-gnu@4.9.2: - resolution: {integrity: sha512-Wnx/IVMSZ31D/cO9HSsU46FjrPWHqtdF8+0eyZ1zIB5a6hXaZXghUKpRrC4D5DcRTZOjml2oBhXoqfGYyXKipw==} - cpu: [riscv64] + '@rollup/rollup-linux-s390x-gnu@4.32.0': + resolution: {integrity: sha512-8ZGN7ExnV0qjXa155Rsfi6H8M4iBBwNLBM9lcVS+4NcSzOFaNqmt7djlox8pN1lWrRPMRRQ8NeDlozIGx3Omsw==} + cpu: [s390x] os: [linux] - requiresBuild: true - dev: true - optional: true - /@rollup/rollup-linux-x64-gnu@4.13.0: - resolution: {integrity: sha512-yUD/8wMffnTKuiIsl6xU+4IA8UNhQ/f1sAnQebmE/lyQ8abjsVyDkyRkWop0kdMhKMprpNIhPmYlCxgHrPoXoA==} + '@rollup/rollup-linux-x64-gnu@4.32.0': + resolution: {integrity: sha512-VDzNHtLLI5s7xd/VubyS10mq6TxvZBp+4NRWoW+Hi3tgV05RtVm4qK99+dClwTN1McA6PHwob6DEJ6PlXbY83A==} cpu: [x64] os: [linux] - requiresBuild: true - optional: true - /@rollup/rollup-linux-x64-gnu@4.9.2: - resolution: {integrity: sha512-ym5x1cj4mUAMBummxxRkI4pG5Vht1QMsJexwGP8547TZ0sox9fCLDHw9KCH9c1FO5d9GopvkaJsBIOkTKxksdw==} + '@rollup/rollup-linux-x64-musl@4.32.0': + resolution: {integrity: sha512-qcb9qYDlkxz9DxJo7SDhWxTWV1gFuwznjbTiov289pASxlfGbaOD54mgbs9+z94VwrXtKTu+2RqwlSTbiOqxGg==} cpu: [x64] os: [linux] - requiresBuild: true - dev: true - optional: true - /@rollup/rollup-linux-x64-musl@4.13.0: - resolution: {integrity: sha512-9RyNqoFNdF0vu/qqX63fKotBh43fJQeYC98hCaf89DYQpv+xu0D8QFSOS0biA7cGuqJFOc1bJ+m2rhhsKcw1hw==} - cpu: [x64] - os: [linux] - requiresBuild: true - optional: true - - /@rollup/rollup-linux-x64-musl@4.9.2: - resolution: {integrity: sha512-m0hYELHGXdYx64D6IDDg/1vOJEaiV8f1G/iO+tejvRCJNSwK4jJ15e38JQy5Q6dGkn1M/9KcyEOwqmlZ2kqaZg==} - cpu: [x64] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /@rollup/rollup-win32-arm64-msvc@4.13.0: - resolution: {integrity: sha512-46ue8ymtm/5PUU6pCvjlic0z82qWkxv54GTJZgHrQUuZnVH+tvvSP0LsozIDsCBFO4VjJ13N68wqrKSeScUKdA==} + '@rollup/rollup-win32-arm64-msvc@4.32.0': + resolution: {integrity: sha512-pFDdotFDMXW2AXVbfdUEfidPAk/OtwE/Hd4eYMTNVVaCQ6Yl8et0meDaKNL63L44Haxv4UExpv9ydSf3aSayDg==} cpu: [arm64] os: [win32] - requiresBuild: true - optional: true - /@rollup/rollup-win32-arm64-msvc@4.9.2: - resolution: {integrity: sha512-x1CWburlbN5JjG+juenuNa4KdedBdXLjZMp56nHFSHTOsb/MI2DYiGzLtRGHNMyydPGffGId+VgjOMrcltOksA==} - cpu: [arm64] - os: [win32] - requiresBuild: true - dev: true - optional: true - - /@rollup/rollup-win32-ia32-msvc@4.13.0: - resolution: {integrity: sha512-P5/MqLdLSlqxbeuJ3YDeX37srC8mCflSyTrUsgbU1c/U9j6l2g2GiIdYaGD9QjdMQPMSgYm7hgg0551wHyIluw==} + '@rollup/rollup-win32-ia32-msvc@4.32.0': + resolution: {integrity: sha512-/TG7WfrCAjeRNDvI4+0AAMoHxea/USWhAzf9PVDFHbcqrQ7hMMKp4jZIy4VEjk72AAfN5k4TiSMRXRKf/0akSw==} cpu: [ia32] os: [win32] - requiresBuild: true - optional: true - /@rollup/rollup-win32-ia32-msvc@4.9.2: - resolution: {integrity: sha512-VVzCB5yXR1QlfsH1Xw1zdzQ4Pxuzv+CPr5qpElpKhVxlxD3CRdfubAG9mJROl6/dmj5gVYDDWk8sC+j9BI9/kQ==} - cpu: [ia32] - os: [win32] - requiresBuild: true - dev: true - optional: true - - /@rollup/rollup-win32-x64-msvc@4.13.0: - resolution: {integrity: sha512-UKXUQNbO3DOhzLRwHSpa0HnhhCgNODvfoPWv2FCXme8N/ANFfhIPMGuOT+QuKd16+B5yxZ0HdpNlqPvTMS1qfw==} + '@rollup/rollup-win32-x64-msvc@4.32.0': + resolution: {integrity: sha512-5hqO5S3PTEO2E5VjCePxv40gIgyS2KvO7E7/vvC/NbIW4SIRamkMr1hqj+5Y67fbBWv/bQLB6KelBQmXlyCjWA==} cpu: [x64] os: [win32] - requiresBuild: true - optional: true - /@rollup/rollup-win32-x64-msvc@4.9.2: - resolution: {integrity: sha512-SYRedJi+mweatroB+6TTnJYLts0L0bosg531xnQWtklOI6dezEagx4Q0qDyvRdK+qgdA3YZpjjGuPFtxBmddBA==} - cpu: [x64] - os: [win32] - requiresBuild: true - dev: true - optional: true + '@rtsao/scc@1.1.0': + resolution: {integrity: sha512-zt6OdqaDoOnJ1ZYsCYGt9YmWzDXl4vQdKTyJev62gFhRGKdx7mcT54V9KIjg+d2wi9EXsPvAPKe7i7WjfVWB8g==} - /@shikijs/core@1.2.0: - resolution: {integrity: sha512-OlFvx+nyr5C8zpcMBnSGir0YPD6K11uYhouqhNmm1qLiis4GA7SsGtu07r9gKS9omks8RtQqHrJL4S+lqWK01A==} - dev: false + '@shikijs/core@1.29.1': + resolution: {integrity: sha512-Mo1gGGkuOYjDu5H8YwzmOuly9vNr8KDVkqj9xiKhhhFS8jisAtDSEWB9hzqRHLVQgFdA310e8XRJcW4tYhRB2A==} - /@sigstore/bundle@2.1.0: - resolution: {integrity: sha512-89uOo6yh/oxaU8AeOUnVrTdVMcGk9Q1hJa7Hkvalc6G3Z3CupWk4Xe9djSgJm9fMkH69s0P0cVHUoKSOemLdng==} + '@shikijs/engine-javascript@1.29.1': + resolution: {integrity: sha512-Hpi8k9x77rCQ7F/7zxIOUruNkNidMyBnP5qAGbLFqg4kRrg1HZhkB8btib5EXbQWTtLb5gBHOdBwshk20njD7Q==} + + '@shikijs/engine-oniguruma@1.29.1': + resolution: {integrity: sha512-gSt2WhLNgEeLstcweQOSp+C+MhOpTsgdNXRqr3zP6M+BUBZ8Md9OU2BYwUYsALBxHza7hwaIWtFHjQ/aOOychw==} + + '@shikijs/langs@1.29.1': + resolution: {integrity: sha512-iERn4HlyuT044/FgrvLOaZgKVKf3PozjKjyV/RZ5GnlyYEAZFcgwHGkYboeBv2IybQG1KVS/e7VGgiAU4JY2Gw==} + + '@shikijs/themes@1.29.1': + resolution: {integrity: sha512-lb11zf72Vc9uxkl+aec2oW1HVTHJ2LtgZgumb4Rr6By3y/96VmlU44bkxEb8WBWH3RUtbqAJEN0jljD9cF7H7g==} + + '@shikijs/types@1.29.1': + resolution: {integrity: sha512-aBqAuhYRp5vSir3Pc9+QPu9WESBOjUo03ao0IHLC4TyTioSsp/SkbAZSrIH4ghYYC1T1KTEpRSBa83bas4RnPA==} + + '@shikijs/vscode-textmate@10.0.1': + resolution: {integrity: sha512-fTIQwLF+Qhuws31iw7Ncl1R3HUDtGwIipiJ9iU+UsDUwMhegFcQKQHd51nZjb7CArq0MvON8rbgCGQYWHUKAdg==} + + '@sigstore/bundle@2.3.2': + resolution: {integrity: sha512-wueKWDk70QixNLB363yHc2D2ItTgYiMTdPwK8D9dKQMR3ZQ0c35IxP5xnwQ8cNLoCgCRcHf14kE+CLIvNX1zmA==} engines: {node: ^16.14.0 || >=18.0.0} - dependencies: - '@sigstore/protobuf-specs': 0.2.1 - dev: true - /@sigstore/protobuf-specs@0.1.0: - resolution: {integrity: sha512-a31EnjuIDSX8IXBUib3cYLDRlPMU36AWX4xS8ysLaNu4ZzUesDiPt83pgrW2X1YLMe5L2HbDyaKK5BrL4cNKaQ==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - dev: true - - /@sigstore/protobuf-specs@0.2.1: - resolution: {integrity: sha512-XTWVxnWJu+c1oCshMLwnKvz8ZQJJDVOlciMfgpJBQbThVjKTCG8dwyhgLngBD2KN0ap9F/gOV8rFDEx8uh7R2A==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - dev: true - - /@sigstore/sign@2.2.0: - resolution: {integrity: sha512-AAbmnEHDQv6CSfrWA5wXslGtzLPtAtHZleKOgxdQYvx/s76Fk6T6ZVt7w2IGV9j1UrFeBocTTQxaXG2oRrDhYA==} + '@sigstore/core@1.1.0': + resolution: {integrity: sha512-JzBqdVIyqm2FRQCulY6nbQzMpJJpSiJ8XXWMhtOX9eKgaXXpfNOF53lzQEjIydlStnd/eFtuC1dW4VYdD93oRg==} engines: {node: ^16.14.0 || >=18.0.0} - dependencies: - '@sigstore/bundle': 2.1.0 - '@sigstore/protobuf-specs': 0.2.1 - make-fetch-happen: 13.0.0 - transitivePeerDependencies: - - supports-color - dev: true - /@sigstore/tuf@2.2.0: - resolution: {integrity: sha512-KKATZ5orWfqd9ZG6MN8PtCIx4eevWSuGRKQvofnWXRpyMyUEpmrzg5M5BrCpjM+NfZ0RbNGOh5tCz/P2uoRqOA==} + '@sigstore/protobuf-specs@0.3.3': + resolution: {integrity: sha512-RpacQhBlwpBWd7KEJsRKcBQalbV28fvkxwTOJIqhIuDysMMaJW47V4OqW30iJB9uRpqOSxxEAQFdr8tTattReQ==} + engines: {node: ^18.17.0 || >=20.5.0} + + '@sigstore/sign@2.3.2': + resolution: {integrity: sha512-5Vz5dPVuunIIvC5vBb0APwo7qKA4G9yM48kPWJT+OEERs40md5GoUR1yedwpekWZ4m0Hhw44m6zU+ObsON+iDA==} engines: {node: ^16.14.0 || >=18.0.0} - dependencies: - '@sigstore/protobuf-specs': 0.2.1 - tuf-js: 2.1.0 - transitivePeerDependencies: - - supports-color - dev: true - /@sinclair/typebox@0.27.8: + '@sigstore/tuf@2.3.4': + resolution: {integrity: sha512-44vtsveTPUpqhm9NCrbU8CWLe3Vck2HO1PNLw7RIajbB7xhtn5RBPm1VNSCMwqGYHhDsBJG8gDF0q4lgydsJvw==} + engines: {node: ^16.14.0 || >=18.0.0} + + '@sigstore/verify@1.2.1': + resolution: {integrity: sha512-8iKx79/F73DKbGfRf7+t4dqrc0bRr0thdPrxAtCKWRm/F0tG71i6O1rvlnScncJLLBZHn3h8M3c1BSUAb9yu8g==} + engines: {node: ^16.14.0 || >=18.0.0} + + '@sinclair/typebox@0.27.8': resolution: {integrity: sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==} - dev: true - /@supabase/functions-js@2.1.5: - resolution: {integrity: sha512-BNzC5XhCzzCaggJ8s53DP+WeHHGT/NfTsx2wUSSGKR2/ikLFQTBCDzMvGz/PxYMqRko/LwncQtKXGOYp1PkPaw==} - dependencies: - '@supabase/node-fetch': 2.6.15 - dev: false + '@supabase/auth-js@2.67.3': + resolution: {integrity: sha512-NJDaW8yXs49xMvWVOkSIr8j46jf+tYHV0wHhrwOaLLMZSFO4g6kKAf+MfzQ2RaD06OCUkUHIzctLAxjTgEVpzw==} - /@supabase/gotrue-js@2.62.0: - resolution: {integrity: sha512-4eBuZNXGOk7ewqJuHPYMnk8clCtEx6Hfnu6yHLjZlx7w18TqcojcTRUBZagErtpgwwdfzUwKbquexhbrpH/ysw==} - dependencies: - '@supabase/node-fetch': 2.6.15 - dev: false + '@supabase/functions-js@2.4.4': + resolution: {integrity: sha512-WL2p6r4AXNGwop7iwvul2BvOtuJ1YQy8EbOd0dhG1oN1q8el/BIRSFCFnWAMM/vJJlHWLi4ad22sKbKr9mvjoA==} - /@supabase/node-fetch@2.6.15: + '@supabase/node-fetch@2.6.15': resolution: {integrity: sha512-1ibVeYUacxWYi9i0cf5efil6adJ9WRyZBLivgjs+AUpewx1F3xPi7gLgaASI2SmIQxPoCEjAsLAzKPgMJVgOUQ==} engines: {node: 4.x || >=6.0.0} - dependencies: - whatwg-url: 5.0.0 - dev: false - /@supabase/postgrest-js@1.9.0: - resolution: {integrity: sha512-axP6cU69jDrLbfihJKQ6vU27tklD0gzb9idkMN363MtTXeJVt5DQNT3JnJ58JVNBdL74hgm26rAsFNvHk+tnSw==} - dependencies: - '@supabase/node-fetch': 2.6.15 - dev: false + '@supabase/postgrest-js@1.18.1': + resolution: {integrity: sha512-dWDnoC0MoDHKhaEOrsEKTadWQcBNknZVQcSgNE/Q2wXh05mhCL1ut/jthRUrSbYcqIw/CEjhaeIPp7dLarT0bg==} - /@supabase/realtime-js@2.9.1: - resolution: {integrity: sha512-OxmY2qj+y6+KI4ifTL92j5+WYP+u5/PdThlYxVb0GMcMiMHfA7yIku9yaQNC5/oRdIvhuRpTMG/8/R40eB+8pA==} - dependencies: - '@supabase/node-fetch': 2.6.15 - '@types/phoenix': 1.5.4 - ws: 8.16.0 - transitivePeerDependencies: - - bufferutil - - utf-8-validate - dev: false + '@supabase/realtime-js@2.11.2': + resolution: {integrity: sha512-u/XeuL2Y0QEhXSoIPZZwR6wMXgB+RQbJzG9VErA3VghVt7uRfSVsjeqd7m5GhX3JR6dM/WRmLbVR8URpDWG4+w==} - /@supabase/storage-js@2.5.5: - resolution: {integrity: sha512-OpLoDRjFwClwc2cjTJZG8XviTiQH4Ik8sCiMK5v7et0MDu2QlXjCAW3ljxJB5+z/KazdMOTnySi+hysxWUPu3w==} - dependencies: - '@supabase/node-fetch': 2.6.15 - dev: false + '@supabase/storage-js@2.7.1': + resolution: {integrity: sha512-asYHcyDR1fKqrMpytAS1zjyEfvxuOIp1CIXX7ji4lHHcJKqyk+sLl/Vxgm4sN6u8zvuUtae9e4kDxQP2qrwWBA==} - /@supabase/supabase-js@2.39.1: - resolution: {integrity: sha512-nz0aQPButJWjChX+bLXqvhHutfiOuiJwzibyJs0uhFrQ6JRDZZsl9+nX2jgyox2v2V+e4PEwbn/eaEOFVUr8iA==} - dependencies: - '@supabase/functions-js': 2.1.5 - '@supabase/gotrue-js': 2.62.0 - '@supabase/node-fetch': 2.6.15 - '@supabase/postgrest-js': 1.9.0 - '@supabase/realtime-js': 2.9.1 - '@supabase/storage-js': 2.5.5 - transitivePeerDependencies: - - bufferutil - - utf-8-validate - dev: false + '@supabase/supabase-js@2.48.1': + resolution: {integrity: sha512-VMD+CYk/KxfwGbI4fqwSUVA7CLr1izXpqfFerhnYPSi6LEKD8GoR4kuO5Cc8a+N43LnfSQwLJu4kVm2e4etEmA==} - /@surma/rollup-plugin-off-main-thread@2.2.3: + '@surma/rollup-plugin-off-main-thread@2.2.3': resolution: {integrity: sha512-lR8q/9W7hZpMWweNiAKU7NQerBnzQQLvi8qnTDU/fxItPhtZVMbPV3lbCwjhIlNBe9Bbr5V+KHshvWmVSG9cxQ==} - dependencies: - ejs: 3.1.9 - json5: 2.2.3 - magic-string: 0.25.9 - string.prototype.matchall: 4.0.10 - dev: true - /@tailwindcss/forms@0.5.7(tailwindcss@3.4.0): - resolution: {integrity: sha512-QE7X69iQI+ZXwldE+rzasvbJiyV/ju1FGHH0Qn2W3FKbuYtqp8LKcy6iSw79fVUT5/Vvf+0XgLCeYVG+UV6hOw==} + '@swc/helpers@0.5.15': + resolution: {integrity: sha512-JQ5TuMi45Owi4/BIMAJBoSQoOJu12oOk/gADqlcUL9JEdHB8vyjUSsxqeNXnmXHjYKMi2WcYtezGEEhqUI/E2g==} + + '@tailwindcss/forms@0.5.10': + resolution: {integrity: sha512-utI1ONF6uf/pPNO68kmN1b8rEwNXv3czukalo8VtJH8ksIkZXr3Q3VYudZLkCsDd4Wku120uF02hYK25XGPorw==} peerDependencies: - tailwindcss: '>=3.0.0 || >= 3.0.0-alpha.1' - dependencies: - mini-svg-data-uri: 1.4.4 - tailwindcss: 3.4.0 - dev: false + tailwindcss: '>=3.0.0 || >= 3.0.0-alpha.1 || >= 4.0.0-alpha.20 || >= 4.0.0-beta.1' - /@tailwindcss/typography@0.5.10(tailwindcss@3.4.0): - resolution: {integrity: sha512-Pe8BuPJQJd3FfRnm6H0ulKIGoMEQS+Vq01R6M5aCrFB/ccR/shT+0kXLjouGC1gFLm9hopTFN+DMP0pfwRWzPw==} - peerDependencies: - tailwindcss: '>=3.0.0 || insiders' - dependencies: - lodash.castarray: 4.4.0 - lodash.isplainobject: 4.0.6 - lodash.merge: 4.6.2 - postcss-selector-parser: 6.0.10 - tailwindcss: 3.4.0 - dev: false + '@tailwindcss/node@4.0.0': + resolution: {integrity: sha512-tfG2uBvo6j6kDIPmntxwXggCOZAt7SkpAXJ6pTIYirNdk5FBqh/CZZ9BZPpgcl/tNFLs6zc4yghM76sqiELG9g==} - /@tauri-apps/api@1.5.3: - resolution: {integrity: sha512-zxnDjHHKjOsrIzZm6nO5Xapb/BxqUq1tc7cGkFXsFkGTsSWgCPH1D8mm0XS9weJY2OaR73I3k3S+b7eSzJDfqA==} - engines: {node: '>= 14.6.0', npm: '>= 6.6.0', yarn: '>= 1.19.1'} - dev: false + '@tailwindcss/oxide-android-arm64@4.0.0': + resolution: {integrity: sha512-EAhjU0+FIdyGPR+7MbBWubLLPtmOu+p7c2egTTFBRk/n//zYjNvVK0WhcBK5Y7oUB5mo4EjA2mCbY7dcEMWSRw==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [android] - /@tauri-apps/cli-darwin-arm64@1.5.9: - resolution: {integrity: sha512-7C2Jf8f0gzv778mLYb7Eszqqv1bm9Wzews81MRTqKrUIcC+eZEtDXLex+JaEkEzFEUrgIafdOvMBVEavF030IA==} + '@tailwindcss/oxide-darwin-arm64@4.0.0': + resolution: {integrity: sha512-hdz4xnSWS11cIp+7ye+3dGHqs0X33z+BXXTtgPOguDWVa+TdXUzwxonklSzf5wlJFuot3dv5eWzhlNai0oYYQg==} engines: {node: '>= 10'} cpu: [arm64] os: [darwin] - requiresBuild: true - dev: true - optional: true - /@tauri-apps/cli-darwin-x64@1.5.9: - resolution: {integrity: sha512-LHKytpkofPYgH8RShWvwDa3hD1ws131x7g7zNasJPfOiCWLqYVQFUuQVmjEUt8+dpHe/P/err5h4z+YZru2d0A==} + '@tailwindcss/oxide-darwin-x64@4.0.0': + resolution: {integrity: sha512-+dOUUaXTkPKKhtUI9QtVaYg+MpmLh2CN0dHohiYXaBirEyPMkjaT0zbRgzQlNnQWjCVVXPQluIEb0OMEjSTH+Q==} engines: {node: '>= 10'} cpu: [x64] os: [darwin] - requiresBuild: true - dev: true - optional: true - /@tauri-apps/cli-linux-arm-gnueabihf@1.5.9: - resolution: {integrity: sha512-teGK20IYKx+dVn8wFq/Lg57Q9ce7foq1KHSfyHi464LVt1T0V1rsmULSgZpQPPj/NYPF5BG78PcWYv64yH86jw==} + '@tailwindcss/oxide-freebsd-x64@4.0.0': + resolution: {integrity: sha512-CJhGDhxnrmu4SwyC62fA+wP24MhA/TZlIhRHqg1kRuIHoGoVR2uSSm1qxTxU37tSSZj8Up0q6jsBJCAP4k7rgQ==} + engines: {node: '>= 10'} + cpu: [x64] + os: [freebsd] + + '@tailwindcss/oxide-linux-arm-gnueabihf@4.0.0': + resolution: {integrity: sha512-Wy7Av0xzXfY2ujZBcYy4+7GQm25/J1iHvlQU2CfwdDCuPWfIjYzR6kggz+uVdSJyKV2s64znchBxRE8kV4uXSA==} engines: {node: '>= 10'} cpu: [arm] os: [linux] - requiresBuild: true - dev: true - optional: true - /@tauri-apps/cli-linux-arm64-gnu@1.5.9: - resolution: {integrity: sha512-onJ/DW5Crw38qVx+wquY4uBbfCxVhzhdJmlCYqnYyXsZZmSiPUfSyhV58y+5TYB0q1hG8eYdB5x8VAwzByhGzw==} + '@tailwindcss/oxide-linux-arm64-gnu@4.0.0': + resolution: {integrity: sha512-srwBo2l6pvM0swBntc1ucuhGsfFOLkqPRFQ3dWARRTfSkL1U9nAsob2MKc/n47Eva/W9pZZgMOuf7rDw8pK1Ew==} engines: {node: '>= 10'} cpu: [arm64] os: [linux] - requiresBuild: true - dev: true - optional: true - /@tauri-apps/cli-linux-arm64-musl@1.5.9: - resolution: {integrity: sha512-23AYoLD3acakLp9NtheKQDJl8F66eTOflxoPzdJNRy13hUSxb+W9qpz4rRA+CIzkjICFvO2i3UWjeV9QwDVpsQ==} + '@tailwindcss/oxide-linux-arm64-musl@4.0.0': + resolution: {integrity: sha512-abhusswkduYWuezkBmgo0K0/erGq3M4Se5xP0fhc/0dKs0X/rJUYYCFWntHb3IGh3aVzdQ0SXJs93P76DbUqtw==} engines: {node: '>= 10'} cpu: [arm64] os: [linux] - requiresBuild: true - dev: true - optional: true - /@tauri-apps/cli-linux-x64-gnu@1.5.9: - resolution: {integrity: sha512-9PQA1rE7gh41W2ylyKd5qOGOds55ymaYPml9KOpM0g+cxmCXa+8Wf9K5NKvACnJldJJ6cekWzIyB4eN6o5T+yQ==} + '@tailwindcss/oxide-linux-x64-gnu@4.0.0': + resolution: {integrity: sha512-hGtRYIUEx377/HlU49+jvVKKwU1MDSKYSMMs0JFO2Wp7LGxk5+0j5+RBk9NFnmp/lbp32yPTgIOO5m1BmDq36A==} engines: {node: '>= 10'} cpu: [x64] os: [linux] - requiresBuild: true - dev: true - optional: true - /@tauri-apps/cli-linux-x64-musl@1.5.9: - resolution: {integrity: sha512-5hdbNFeDsrJ/pXZ4cSQV4bJwUXPPxXxN3/pAtNUqIph7q+vLcBXOXIMoS64iuyaluJC59lhEwlWZFz+EPv0Hqg==} + '@tailwindcss/oxide-linux-x64-musl@4.0.0': + resolution: {integrity: sha512-7xgQgSAThs0I14VAgmxpJnK6XFSZBxHMGoDXkLyYkEnu+8WRQMbCP93dkCUn2PIv+Q+JulRgc00PJ09uORSLXQ==} engines: {node: '>= 10'} cpu: [x64] os: [linux] - requiresBuild: true - dev: true - optional: true - /@tauri-apps/cli-win32-arm64-msvc@1.5.9: - resolution: {integrity: sha512-O18JufjSB3hSJYu5WWByONouGeX7DraLAtXLErsG1r/VS3zHd/zyuzycrVUaObNXk5bfGlIP0Ypt+RvZJILN2w==} + '@tailwindcss/oxide-win32-arm64-msvc@4.0.0': + resolution: {integrity: sha512-qEcgTIPcWY5ZE7f6VxQ/JPrSFMcehzVIlZj7sGE3mVd5YWreAT+Fl1vSP8q2pjnWXn0avZG3Iw7a2hJQAm+fTQ==} engines: {node: '>= 10'} cpu: [arm64] os: [win32] - requiresBuild: true - dev: true - optional: true - /@tauri-apps/cli-win32-ia32-msvc@1.5.9: - resolution: {integrity: sha512-FQxtxTZu0JVBihfd/lmpxo7jyMOesjWQehfyVUqtgMfm5+Pvvw0Y+ZioeDi1TZkFVrT3QDYy8R4LqDLSZVMQRA==} + '@tailwindcss/oxide-win32-x64-msvc@4.0.0': + resolution: {integrity: sha512-bqT0AY8RXb8GMDy28JtngvqaOSB2YixbLPLvUo6I6lkvvUwA6Eqh2Tj60e2Lh7O/k083f8tYiB0WEK4wmTI7Jg==} + engines: {node: '>= 10'} + cpu: [x64] + os: [win32] + + '@tailwindcss/oxide@4.0.0': + resolution: {integrity: sha512-W3FjpJgy4VV1JiL7iBYDf2n/WkeDg1Il+0Q7eWnqPyvkPPCo/Mbwc5BiaT7dfBNV6tQKAhVE34rU5xl8pSl50w==} + engines: {node: '>= 10'} + + '@tailwindcss/postcss@4.0.0': + resolution: {integrity: sha512-lI2bPk4TvwavHdehjr5WiC6HnZ59hacM6ySEo4RM/H7tsjWd8JpqiNW9ThH7rO/yKtrn4mGBoXshpvn8clXjPg==} + + '@tailwindcss/typography@0.5.16': + resolution: {integrity: sha512-0wDLwCVF5V3x3b1SGXPCDcdsbDHMBe+lkFzBRaHeLvNi+nrrnZ1lA18u+OTWO8iSWU2GxUOCvlXtDuqftc1oiA==} + peerDependencies: + tailwindcss: '>=3.0.0 || insiders || >=4.0.0-alpha.20 || >=4.0.0-beta.1' + + '@tanstack/react-virtual@3.11.2': + resolution: {integrity: sha512-OuFzMXPF4+xZgx8UzJha0AieuMihhhaWG0tCqpp6tDzlFwOmNBPYMuLOtMJ1Tr4pXLHmgjcWhG6RlknY2oNTdQ==} + peerDependencies: + react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 + react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 + + '@tanstack/virtual-core@3.11.2': + resolution: {integrity: sha512-vTtpNt7mKCiZ1pwU9hfKPhpdVO2sVzFQsxoVBGtOSHxlrRRzYr8iQ2TlwbAcRYCcEiZ9ECAM8kBzH0v2+VzfKw==} + + '@tauri-apps/api@2.2.0': + resolution: {integrity: sha512-R8epOeZl1eJEl603aUMIGb4RXlhPjpgxbGVEaqY+0G5JG9vzV/clNlzTeqc+NLYXVqXcn8mb4c5b9pJIUDEyAg==} + + '@tauri-apps/cli-darwin-arm64@2.2.7': + resolution: {integrity: sha512-54kcpxZ3X1Rq+pPTzk3iIcjEVY4yv493uRx/80rLoAA95vAC0c//31Whz75UVddDjJfZvXlXZ3uSZ+bnCOnt0A==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [darwin] + + '@tauri-apps/cli-darwin-x64@2.2.7': + resolution: {integrity: sha512-Vgu2XtBWemLnarB+6LqQeLanDlRj7CeFN//H8bVVdjbNzxcSxsvbLYMBP8+3boa7eBnjDrqMImRySSgL6IrwTw==} + engines: {node: '>= 10'} + cpu: [x64] + os: [darwin] + + '@tauri-apps/cli-linux-arm-gnueabihf@2.2.7': + resolution: {integrity: sha512-+Clha2iQAiK9zoY/KKW0KLHkR0k36O78YLx5Sl98tWkwI3OBZFg5H5WT1plH/4sbZIS2aLFN6dw58/JlY9Bu/g==} + engines: {node: '>= 10'} + cpu: [arm] + os: [linux] + + '@tauri-apps/cli-linux-arm64-gnu@2.2.7': + resolution: {integrity: sha512-Z/Lp4SQe6BUEOays9BQAEum2pvZF4w9igyXijP+WbkOejZx4cDvarFJ5qXrqSLmBh7vxrdZcLwoLk9U//+yQrg==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [linux] + + '@tauri-apps/cli-linux-arm64-musl@2.2.7': + resolution: {integrity: sha512-+8HZ+txff/Y3YjAh80XcLXcX8kpGXVdr1P8AfjLHxHdS6QD4Md+acSxGTTNbplmHuBaSHJvuTvZf9tU1eDCTDg==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [linux] + + '@tauri-apps/cli-linux-x64-gnu@2.2.7': + resolution: {integrity: sha512-ahlSnuCnUntblp9dG7/w5ZWZOdzRFi3zl0oScgt7GF4KNAOEa7duADsxPA4/FT2hLRa0SvpqtD4IYFvCxoVv3Q==} + engines: {node: '>= 10'} + cpu: [x64] + os: [linux] + + '@tauri-apps/cli-linux-x64-musl@2.2.7': + resolution: {integrity: sha512-+qKAWnJRSX+pjjRbKAQgTdFY8ecdcu8UdJ69i7wn3ZcRn2nMMzOO2LOMOTQV42B7/Q64D1pIpmZj9yblTMvadA==} + engines: {node: '>= 10'} + cpu: [x64] + os: [linux] + + '@tauri-apps/cli-win32-arm64-msvc@2.2.7': + resolution: {integrity: sha512-aa86nRnrwT04u9D9fhf5JVssuAZlUCCc8AjqQjqODQjMd4BMA2+d4K9qBMpEG/1kVh95vZaNsLogjEaqSTTw4A==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [win32] + + '@tauri-apps/cli-win32-ia32-msvc@2.2.7': + resolution: {integrity: sha512-EiJ5/25tLSQOSGvv+t6o3ZBfOTKB5S3vb+hHQuKbfmKdRF0XQu2YPdIi1CQw1DU97ZAE0Dq4frvnyYEKWgMzVQ==} engines: {node: '>= 10'} cpu: [ia32] os: [win32] - requiresBuild: true - dev: true - optional: true - /@tauri-apps/cli-win32-x64-msvc@1.5.9: - resolution: {integrity: sha512-EeI1+L518cIBLKw0qUFwnLIySBeSmPQjPLIlNwSukHSro4tAQPHycEVGgKrdToiCWgaZJBA0e5aRSds0Du2TWg==} + '@tauri-apps/cli-win32-x64-msvc@2.2.7': + resolution: {integrity: sha512-ZB8Kw90j8Ld+9tCWyD2fWCYfIrzbQohJ4DJSidNwbnehlZzP7wAz6Z3xjsvUdKtQ3ibtfoeTqVInzCCEpI+pWg==} engines: {node: '>= 10'} cpu: [x64] os: [win32] - requiresBuild: true - dev: true - optional: true - /@tauri-apps/cli@1.5.9: - resolution: {integrity: sha512-knSt/9AvCTeyfC6wkyeouF9hBW/0Mzuw+5vBKEvzaGPQsfFJo1ZCp5FkdiZpGBBfnm09BhugasGRTGofzatfqQ==} + '@tauri-apps/cli@2.2.7': + resolution: {integrity: sha512-ZnsS2B4BplwXP37celanNANiIy8TCYhvg5RT09n72uR/o+navFZtGpFSqljV8fy1Y4ixIPds8FrGSXJCN2BerA==} engines: {node: '>= 10'} hasBin: true - optionalDependencies: - '@tauri-apps/cli-darwin-arm64': 1.5.9 - '@tauri-apps/cli-darwin-x64': 1.5.9 - '@tauri-apps/cli-linux-arm-gnueabihf': 1.5.9 - '@tauri-apps/cli-linux-arm64-gnu': 1.5.9 - '@tauri-apps/cli-linux-arm64-musl': 1.5.9 - '@tauri-apps/cli-linux-x64-gnu': 1.5.9 - '@tauri-apps/cli-linux-x64-musl': 1.5.9 - '@tauri-apps/cli-win32-arm64-msvc': 1.5.9 - '@tauri-apps/cli-win32-ia32-msvc': 1.5.9 - '@tauri-apps/cli-win32-x64-msvc': 1.5.9 - dev: true - /@tonaljs/abc-notation@4.8.0: - resolution: {integrity: sha512-JggT/DW4rMxu+q1WkeACrg52is3acp9zaW4LJmCheFi3CmLa63sy7/6mgKnlScTOvcpAyTcSytu0VbQHRXyBDA==} - dependencies: - '@tonaljs/core': 4.10.0 - dev: false + '@tauri-apps/plugin-clipboard-manager@2.2.0': + resolution: {integrity: sha512-sIBrW/HioKq2vqomwwcU/Y8ygAv3DlS32yKPBX5XijCc0IyQKiDxYpGqmvE9DC5Y0lNJ/G53dfS961B31wjJ1g==} - /@tonaljs/array@4.8.0: - resolution: {integrity: sha512-lWCUBRUVWtDV0kl/fjOgICRWzBYWZdJEk1h0vVzpuPaXW6Yz3JfjyKPtLbzYTkgSr1PqcjxVGNwxilz9c2NNkQ==} - dependencies: - '@tonaljs/core': 4.10.0 - dev: false + '@tonaljs/abc-notation@4.9.1': + resolution: {integrity: sha512-2fDUdPsFDdgZgyIiZCTYGKy30QiwIQxSXCSN2thGrSMXbQKCp8iTC8haStYcrA+25MPWhWlmvC/pz3tGcTNAqQ==} - /@tonaljs/chord-detect@4.8.0: - resolution: {integrity: sha512-rpBHS2FKitIIodWI32LszeUfpq0of+0zqnU3CBc2/2UiYoyO9PmSs8UjzupKTIX/mHxOxq0ncDheT/ItB7QdNg==} - dependencies: - '@tonaljs/chord-type': 4.8.0 - '@tonaljs/core': 4.10.0 - '@tonaljs/pcset': 4.8.1 - dev: false + '@tonaljs/array@4.8.4': + resolution: {integrity: sha512-97HVdpZy82PqNBDMM9PRSbO2DUrnxNg3++N4xqLpfby70fKHAHhTWrMXWZK+Dzs76HDPQLd+qhd4cq28eBZzjw==} - /@tonaljs/chord-type@4.8.0: - resolution: {integrity: sha512-NQYvTziV5HiY+fuNWHB85ZFJgKFge3iBcmcJSDI4kguxSHqDDscM1fE+tb6q4mi6RKERtw3oeGWjV5ScL1UKWQ==} - dependencies: - '@tonaljs/core': 4.10.0 - '@tonaljs/pcset': 4.8.1 - dev: false + '@tonaljs/chord-detect@4.9.1': + resolution: {integrity: sha512-rV/9+R7aZ9cQorQ3jdNMMMh63onosglYZM71Q0n7KKcWMAGrxF66MzxBG82xy+w1QDMJQslB3iHfDHUiS6wRjA==} - /@tonaljs/chord@4.10.0: - resolution: {integrity: sha512-PyR17WYtgk0Yi1KRPeK5dVKoCCBf+LA23pRndN9RFWUkQR/zuRgmTyXpS7JRfzNqDu4GLGVCzS37QUdHRD5FvA==} - dependencies: - '@tonaljs/chord-detect': 4.8.0 - '@tonaljs/chord-type': 4.8.0 - '@tonaljs/collection': 4.8.0 - '@tonaljs/core': 4.10.0 - '@tonaljs/pcset': 4.8.1 - '@tonaljs/scale-type': 4.8.1 - dev: false + '@tonaljs/chord-type@4.8.2': + resolution: {integrity: sha512-GzSTjQmZjkUdPhyesFDeJbxpW8R7L/bAE34E8ApGAh9FMcKYpRdX3Tn+gkluRsXOiRMfW07p3E0Adx4bjtyN+Q==} - /@tonaljs/collection@4.8.0: - resolution: {integrity: sha512-NSnqUDqnCZajYGPH4+27y6UAflX+RrAZQdP9YNBuJoTFtdSDrqV3cJoPdr2DRpGCK3Nuzw1dU8DlGsyWwNwlmg==} - dev: false + '@tonaljs/chord-type@5.1.1': + resolution: {integrity: sha512-ti4WzRYvvjH7to0G3zlJFq7WsjHqmcqbk8Jv98aZSR5YumLdY/ua2yOPPyoPq82n6vfgjZsacnAZ3v8/SodOcw==} - /@tonaljs/core@4.10.0: - resolution: {integrity: sha512-+AH7NP9iiAGil+X7NlKGlQvls/KByQmxR51d5O+y6IjHltOkVUXk74oZuxW7zF0IsKchFn8Okr0sxqFmgsQmpA==} - dev: false + '@tonaljs/chord@4.10.2': + resolution: {integrity: sha512-Zlqtq6c6T4y+EqvwHRQp9icEjHqyniCpnIwwCFg5amgAQwXmWzarouOOSmcdJ1Is92eEvcPVuCoLiVUtajS30A==} - /@tonaljs/duration-value@4.8.0: - resolution: {integrity: sha512-ewWVKtYCzNkSNaFoEn6NqL5vCmHTqoN+qngoUG2Sy2ZvGCk1pwx3ckJVUkJmYrkxP4PbQASPgJi0y+0fjgVJug==} - dev: false + '@tonaljs/chord@6.1.1': + resolution: {integrity: sha512-gsLyGGkOt0g5L/uF4ICpYQengahW3WAMjckyvyzvqMYpvH7fokmtcymOfbltDQzaVuYuL0TsVmbfjbah2rKEww==} - /@tonaljs/interval@4.8.0: - resolution: {integrity: sha512-R+1OvqRS0lFqzmzorbL0cwqZLVRnDw2kmwNtgF17A2vqcZI9aDDH/XELPLLUcZ7ykeIu4X9t/v+yTwREj+nUrA==} - dependencies: - '@tonaljs/core': 4.10.0 - dev: false + '@tonaljs/collection@4.9.0': + resolution: {integrity: sha512-Mk0h7O54nT6PgNVcUYauzxa5KOB23+0AOKudWzRH7JhJIN9vhVIC7PtwZXE+/G051UTbHSFIcN/afkgF4nB/8A==} - /@tonaljs/key@4.9.1: - resolution: {integrity: sha512-WL/8raLnrcv6qpBog0HNp16/ifleeapZjU2PVTnIJ2DhuVgqtI8ccCyZHAURFdMmwYmn1Gf1VnvUAmG7RmqHJg==} - dependencies: - '@tonaljs/core': 4.10.0 - '@tonaljs/note': 4.10.0 - '@tonaljs/roman-numeral': 4.8.0 - dev: false + '@tonaljs/core@4.10.4': + resolution: {integrity: sha512-PhGlQ2Js6rFQ6CufkSiBpEJoPS8QIIhbXSXhT4U+5ffqckli+YBZRN24vjZ4AEKuX8xoYDmCCbl+r6agauvzmw==} - /@tonaljs/midi@4.9.0: - resolution: {integrity: sha512-zi6lK2OC2EA8E1Nl011erWAZgOSlrfstJMgnrbm4/nLDegotg5ALbMnfX/s+SIfSSFcXn/Og1d8xwPeAwoaUyg==} - dependencies: - '@tonaljs/core': 4.10.0 - dev: false + '@tonaljs/duration-value@4.9.0': + resolution: {integrity: sha512-Muz54HyIe0nMYKWx6wyTa4y17ma29DtpJF4/oqJphy6A124rAVDe/SKit8JGOvDYAQj71FUXqs17sXBxO/ExVw==} - /@tonaljs/mode@4.8.0: - resolution: {integrity: sha512-hyaj2RWcnA7h6+jzc074JzE8GFFYg2FaRxXJHLBIYXXlqrLnudnSHOAfHUNRySQKEMR6h4oIerf9LW6+z9sPjQ==} - dependencies: - '@tonaljs/collection': 4.8.0 - '@tonaljs/core': 4.10.0 - '@tonaljs/interval': 4.8.0 - '@tonaljs/pcset': 4.8.1 - '@tonaljs/scale-type': 4.8.1 - dev: false + '@tonaljs/interval@4.8.2': + resolution: {integrity: sha512-9SEuJuqFdmu9lnvMmJtxbReQcQvZ1YHXhCcxaF6Re23/w+BqiJvvkvNZhfWH+n1+g0uaSdTsuvMfamp7hAvPMw==} - /@tonaljs/note@4.10.0: - resolution: {integrity: sha512-jWyxk9Dom+vsucj3dWG9z4j6WhZqbY7gkKsS14fHeo7g8qUZTVZFsr8ulpHyLPXN3EhLwHDU7CxIQ1klkPE33A==} - dependencies: - '@tonaljs/core': 4.10.0 - '@tonaljs/midi': 4.9.0 - dev: false + '@tonaljs/interval@5.1.0': + resolution: {integrity: sha512-GR9dUjn0j7yhjwjRh8HQxZYXOiVl05WfY3AFyMB9rfg807K4dSJmWfPTULPQXyHJ6NiZOPXcwRs8MxMLDxgdbg==} - /@tonaljs/pcset@4.8.1: - resolution: {integrity: sha512-Ir+xHQHBqhSlOEeIMsPwz6A9MRdeKYajKFFwhnGLzU42HcHfe0MKyttzVO+iSIenLtiYk5TyW9ADdo6y85sJeA==} - dependencies: - '@tonaljs/collection': 4.8.0 - '@tonaljs/core': 4.10.0 - dev: false + '@tonaljs/key@4.11.1': + resolution: {integrity: sha512-bZGKhSR+ThYS4CHVR3gS4aVkAM9PYqQPjNvsqwSRDzpuPynuGqIJbEXxx2sTmoendSOQYQXh5OaiDCQZAbk66w==} - /@tonaljs/progression@4.8.0: - resolution: {integrity: sha512-JS5xDox5pN3rRAIIC7ACumGmSwMpIRPvQpUePTmfQS0YMjFofzXeAjH/7WZN0328VK4vk8OAWu5N18pVxqJqQw==} - dependencies: - '@tonaljs/chord': 4.10.0 - '@tonaljs/core': 4.10.0 - '@tonaljs/roman-numeral': 4.8.0 - dev: false + '@tonaljs/midi@4.10.1': + resolution: {integrity: sha512-8epOg4fFArpoR94fkWiPf60kPwFnTi2ZSxYTfueTVOI9l/TIaMk9oEBfw8ZKuuJygGU2LMk27/hKW2rQI5zFNg==} - /@tonaljs/range@4.8.1: - resolution: {integrity: sha512-UAyHBPh1SfqOo2w/BA6Rji3Sl1V0z/ggoE9+gS5aig13qUaVM8B3p2eanEgrxsRTN+yARPSE83CiWWbVqLKzWA==} - dependencies: - '@tonaljs/collection': 4.8.0 - '@tonaljs/midi': 4.9.0 - dev: false + '@tonaljs/mode@4.9.1': + resolution: {integrity: sha512-h+K7eOUKpyX7kMRCwCew6cV1oN0sZYD5LLeKD7zEERNd/6wvGBfGCdMZECGqzpFUmjUyCY87IOntem6EPbKVCg==} - /@tonaljs/roman-numeral@4.8.0: - resolution: {integrity: sha512-jktwfGXcs4qp5A0jy5pyWxgYkeGDcaldV9tiv7XnNR5yLwDm0D6S9rRlNlSo3n0wyDo3+Kh80hd3Mps+Gsf81w==} - dependencies: - '@tonaljs/core': 4.10.0 - dev: false + '@tonaljs/note@4.12.0': + resolution: {integrity: sha512-MgHeSTRldgPteucHI+gKzFkqJ8eVPHelxCNeAFr+hTryLoottr/rfqI93GeJkriH3r8jG81LQBxKRbzN4m3Qeg==} - /@tonaljs/scale-type@4.8.1: - resolution: {integrity: sha512-XlSCFnEmiv7olj8mQBnQOBP9l1CtKFju3BqIILvLCacc6nrWSfSOSi8Y08FujSdvnU6i2fJmK/AYqlqFNoR1rA==} - dependencies: - '@tonaljs/core': 4.10.0 - '@tonaljs/pcset': 4.8.1 - dev: false + '@tonaljs/pcset@4.10.1': + resolution: {integrity: sha512-CZG1rpKc38yMfpEJsbDTvsTmQqsek9xxcuMgK64Tr6sP1lEiDuZJbQeKVWWRnreBF2FQ1cEGLmfOpvSO+40csA==} - /@tonaljs/scale@4.12.0: - resolution: {integrity: sha512-1XxGoNqOFRgHWtpGH1Ery/AObnlnHp8+Yxe2FSE7J1BzUFej1XpJJyRvR4sOFVGr603xze+9IOXVgGTADcy/IQ==} - dependencies: - '@tonaljs/chord-type': 4.8.0 - '@tonaljs/collection': 4.8.0 - '@tonaljs/core': 4.10.0 - '@tonaljs/note': 4.10.0 - '@tonaljs/pcset': 4.8.1 - '@tonaljs/scale-type': 4.8.1 - dev: false + '@tonaljs/pitch-distance@5.0.2': + resolution: {integrity: sha512-DPxfGJCf4BvfIVRxl2v142tuCKIziM6PomOBT0/s7U5o+Z5qFAIW0tNx/MKyL83guV74p+XIf5VI0w1flmXxDA==} - /@tonaljs/time-signature@4.8.0: - resolution: {integrity: sha512-ES5WoBC3aA5qQcVxh3GUc/Z1XAlnul/PCdlYrmTNAAJ4hgv4H5WHu15fWk7xRcCC6LZz6chfQNbSIXl9sNRdZQ==} - dev: false + '@tonaljs/pitch-distance@5.0.5': + resolution: {integrity: sha512-dTfjsU0zyrj5YmiFio5prPaD5w7sBmHp4nnmlEg70nHY+SerAH0KiO9HM9usttVgRFUaXl0Gc7OI8YMGfSFmug==} - /@tonaljs/tonal@4.10.0: + '@tonaljs/pitch-interval@5.0.2': + resolution: {integrity: sha512-bQmxeenRFNuuABs9mDc+bSUp3ySGw8I49pHMoGDdCcro9n3MDN8IsSwhvKoGOYErFMx76rNn1t+7WL8ukpvX5w==} + + '@tonaljs/pitch-interval@6.1.0': + resolution: {integrity: sha512-9ZMxA7V4UgySnOKPIG6HECzhDb8mbiTCIdNNIzCIfz5XpjUmohku2YZpVVWMacLHgyeQicJzNoRiPel5oSAn4A==} + + '@tonaljs/pitch-note@5.0.3': + resolution: {integrity: sha512-JsPgqPa8VZdZtfwvgoHJz996BZqzvlnRxUF6c/Q9q8E0iq30UHBEid0Y6XldK+h6tuIENsG3a9jyvNNxRqIeYw==} + + '@tonaljs/pitch-note@6.1.0': + resolution: {integrity: sha512-A4OSLo8DjM38u73862LnDmL4YInDDRBmg0fojXcvu4cyU3oOlqndyeHOra1OVoH/WW46uNIxNs1wJDZNPWL5KQ==} + + '@tonaljs/pitch@5.0.1': + resolution: {integrity: sha512-5HYkF4hGY0jS2y5V3Hf5gNFXX46kT4cAcI7JLEn+qQb9N1dU9Gz9koI9di0mD1Tbam+kviceiCsJl4WX/FqYjA==} + + '@tonaljs/pitch@5.0.2': + resolution: {integrity: sha512-mxaXJPPe+LIJdjzpZEl8I8Wx3dEvlzkBbsr2Ltwc2dTAdnErAZ5R0TxVq2egF27lMvQN2QPQPWI9iDPPdVUmrg==} + + '@tonaljs/progression@4.9.1': + resolution: {integrity: sha512-jHdZUNlXRmjrvbZrvjoW6syW7dO9ilhgvyouB6YuVM5lGShwTN9dsSuQYsugso9jYHkwQBgYj5SaXTTY0/0nHw==} + + '@tonaljs/range@4.9.1': + resolution: {integrity: sha512-7afFvdcdseqiG/kkCL3LuOc9rTNBR4+3H5lKx9MttAHVJq8uRJMooO1GdEziQ5f7UYZPmXd17e6ZXd0AdnkXrA==} + + '@tonaljs/roman-numeral@4.9.1': + resolution: {integrity: sha512-dJGKBNHdPrNTE97ZDk4t6wpNmgYcpHyLkAvWkRP9I/HsDkeTFFQqNXosYIvspPWrFySlRpeqqFwcqV74MYoOag==} + + '@tonaljs/scale-type@4.9.1': + resolution: {integrity: sha512-Nz2wThzz5NmWNx0vazX7MqNbF8kT1g5BEcbZcWjgkc67zhwosfZE0LEn7W9XcVDEws71b8CqQqDPKUEEybC9Rw==} + + '@tonaljs/scale@4.13.1': + resolution: {integrity: sha512-lJwXxIa3MldMWfvGBlcqu+D/2CRarSb9L2a/McvOFBF3G3rhrrxI6rHsH7uWFbI3D5SEvTjXV9ke4eICQZLLNA==} + + '@tonaljs/time-signature@4.9.0': + resolution: {integrity: sha512-zRo8CBqg/2guzTlF2vxyVIuB5gmwWQaxlknJPUSDII8CTdQ/x3a1LlNoMKkvTUnqwCihe3WrNPZ5XUfOOTthYA==} + + '@tonaljs/tonal@4.10.0': resolution: {integrity: sha512-F2T9Fiy+j0MVped89kCrX1XF68mQOLUnny4pDOHrIf+OkrjtLQOzzaSOrX1tx0o72WUwQm1knz6D1d57b9X1HA==} - dependencies: - '@tonaljs/abc-notation': 4.8.0 - '@tonaljs/array': 4.8.0 - '@tonaljs/chord': 4.10.0 - '@tonaljs/chord-type': 4.8.0 - '@tonaljs/collection': 4.8.0 - '@tonaljs/core': 4.10.0 - '@tonaljs/duration-value': 4.8.0 - '@tonaljs/interval': 4.8.0 - '@tonaljs/key': 4.9.1 - '@tonaljs/midi': 4.9.0 - '@tonaljs/mode': 4.8.0 - '@tonaljs/note': 4.10.0 - '@tonaljs/pcset': 4.8.1 - '@tonaljs/progression': 4.8.0 - '@tonaljs/range': 4.8.1 - '@tonaljs/roman-numeral': 4.8.0 - '@tonaljs/scale': 4.12.0 - '@tonaljs/scale-type': 4.8.1 - '@tonaljs/time-signature': 4.8.0 - dev: false - /@tootallnate/once@2.0.0: - resolution: {integrity: sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==} - engines: {node: '>= 10'} - dev: true - - /@tufjs/canonical-json@1.0.0: - resolution: {integrity: sha512-QTnf++uxunWvG2z3UFNzAoQPHxnSXOwtaI3iJ+AohhV+5vONuArPjJE7aPXPVXfXJsqrVbZBu9b81AJoSd09IQ==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - dev: true - - /@tufjs/canonical-json@2.0.0: + '@tufjs/canonical-json@2.0.0': resolution: {integrity: sha512-yVtV8zsdo8qFHe+/3kw81dSLyF7D576A5cCFCi4X7B39tWT7SekaEFUnvnWJHz+9qO7qJTah1JbrDjWKqFtdWA==} engines: {node: ^16.14.0 || >=18.0.0} - dev: true - /@tufjs/models@1.0.3: - resolution: {integrity: sha512-mkFEqqRisi13DmR5pX4x+Zk97EiU8djTtpNW1GeuX410y/raAsq/T3ZCjwoRIZ8/cIBfW0olK/sywlAiWevDVw==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - dependencies: - '@tufjs/canonical-json': 1.0.0 - minimatch: 7.4.6 - dev: true - - /@tufjs/models@2.0.0: - resolution: {integrity: sha512-c8nj8BaOExmZKO2DXhDfegyhSGcG9E/mPN3U13L+/PsoWm1uaGiHHjxqSHQiasDBQwDA3aHuw9+9spYAP1qvvg==} + '@tufjs/models@2.0.1': + resolution: {integrity: sha512-92F7/SFyufn4DXsha9+QfKnN03JGqtMFMXgSHbZOo8JG59WkTni7UzAouNQDf7AuP9OAMxVOPQcqG3sB7w+kkg==} engines: {node: ^16.14.0 || >=18.0.0} - dependencies: - '@tufjs/canonical-json': 2.0.0 - minimatch: 9.0.3 - dev: true - /@types/acorn@4.0.6: + '@tybys/wasm-util@0.9.0': + resolution: {integrity: sha512-6+7nlbMVX/PVDCwaIQ8nTOPveOcFLSt8GcXdx8hD0bt39uWxYT88uXzqTd4fTvqta7oeUJqudepapKNt2DYJFw==} + + '@types/acorn@4.0.6': resolution: {integrity: sha512-veQTnWP+1D/xbxVrPC3zHnCZRjSrKfhbMUlEA43iMZLu7EsnTtkJklIuwrCPbOi8YkvDQAiW05VQQFvvz9oieQ==} - dependencies: - '@types/estree': 1.0.0 - dev: false - /@types/babel__core@7.20.5: + '@types/babel__core@7.20.5': resolution: {integrity: sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==} - dependencies: - '@babel/parser': 7.23.6 - '@babel/types': 7.23.6 - '@types/babel__generator': 7.6.4 - '@types/babel__template': 7.4.1 - '@types/babel__traverse': 7.18.3 - /@types/babel__generator@7.6.4: - resolution: {integrity: sha512-tFkciB9j2K755yrTALxD44McOrk+gfpIpvC3sxHjRawj6PfnQxrse4Clq5y/Rq+G3mrBurMax/lG8Qn2t9mSsg==} - dependencies: - '@babel/types': 7.23.6 + '@types/babel__generator@7.6.8': + resolution: {integrity: sha512-ASsj+tpEDsEiFr1arWrlN6V3mdfjRMZt6LtK/Vp/kreFLnr5QH5+DhvD5nINYZXzwJvXeGq+05iUXcAzVrqWtw==} - /@types/babel__template@7.4.1: - resolution: {integrity: sha512-azBFKemX6kMg5Io+/rdGT0dkGreboUVR0Cdm3fz9QJWpaQGJRQXl7C+6hOTCZcMll7KFyEQpgbYI2lHdsS4U7g==} - dependencies: - '@babel/parser': 7.23.6 - '@babel/types': 7.23.6 + '@types/babel__template@7.4.4': + resolution: {integrity: sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==} - /@types/babel__traverse@7.18.3: - resolution: {integrity: sha512-1kbcJ40lLB7MHsj39U4Sh1uTd2E7rLEa79kmDpI6cy+XiXsteB3POdQomoq4FxszMrO3ZYchkhYJw7A2862b3w==} - dependencies: - '@babel/types': 7.23.6 + '@types/babel__traverse@7.20.6': + resolution: {integrity: sha512-r1bzfrm0tomOI8g1SzvCaQHo6Lcv6zu0EA+W2kHrt8dyrHQxGzBBL4kdkzIS+jBMV+EYcMAEAqXqYaLJq5rOZg==} - /@types/debug@4.1.7: - resolution: {integrity: sha512-9AonUzyTjXXhEOa0DnqpzZi6VHlqKMswga9EXjpXnnqxwLtdvPPtlO8evrI5D9S6asFRCQ6v+wpiUKbw+vKqyg==} - dependencies: - '@types/ms': 0.7.31 + '@types/cookie@0.6.0': + resolution: {integrity: sha512-4Kh9a6B2bQciAhf7FSuMRRkUWecJgJu9nPnx3yzpsfXX/c50REIqpHY4C82bXP90qrLtXtkDxTZosYO3UpOwlA==} - /@types/estree-jsx@1.0.0: - resolution: {integrity: sha512-3qvGd0z8F2ENTGr/GG1yViqfiKmRfrXVx5sJyHGFu3z7m5g5utCQtGp/g29JnjflhtQJBv1WDQukHiT58xPcYQ==} - dependencies: - '@types/estree': 1.0.0 - dev: false + '@types/debug@4.1.12': + resolution: {integrity: sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ==} - /@types/estree@0.0.39: + '@types/estree-jsx@1.0.5': + resolution: {integrity: sha512-52CcUVNFyfb1A2ALocQw/Dd1BQFNmSdkuC3BkZ6iqhdMfQz7JWOFRuJFloOzjk+6WijU56m9oKXFAXc7o3Towg==} + + '@types/estree@0.0.39': resolution: {integrity: sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw==} - dev: true - /@types/estree@1.0.0: - resolution: {integrity: sha512-WulqXMDUTYAXCjZnk6JtIHPigp55cVtDgDrO2gHRwhyJto21+1zbVCtOYB2L1F9w4qCQ0rOGWBnBe0FNTiEJIQ==} + '@types/estree@1.0.6': + resolution: {integrity: sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==} - /@types/estree@1.0.5: - resolution: {integrity: sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==} + '@types/hast@3.0.4': + resolution: {integrity: sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ==} - /@types/hast@3.0.2: - resolution: {integrity: sha512-B5hZHgHsXvfCoO3xgNJvBnX7N8p86TqQeGKXcokW4XXi+qY4vxxPSFYofytvVmpFxzPv7oxDQzjg5Un5m2/xiw==} - dependencies: - '@types/unist': 3.0.1 + '@types/json-schema@7.0.15': + resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==} - /@types/json5@0.0.29: + '@types/json5@0.0.29': resolution: {integrity: sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==} - dev: true - /@types/linkify-it@3.0.2: - resolution: {integrity: sha512-HZQYqbiFVWufzCwexrvh694SOim8z2d+xJl5UNamcvQFejLY/2YUtzXHYi3cHdI7PMlS8ejH2slRAOJQ32aNbA==} - dev: true + '@types/linkify-it@5.0.0': + resolution: {integrity: sha512-sVDA58zAw4eWAffKOaQH5/5j3XeayukzDk+ewSsnv3p4yJEZHCCzMDiZM8e0OUrRvmpGZ85jf4yDHkHsgBNr9Q==} - /@types/markdown-it@12.2.3: - resolution: {integrity: sha512-GKMHFfv3458yYy+v/N8gjufHO6MSZKCOXpZc5GXIWWy8uldwfmPn98vp81gZ5f9SVw8YYBctgfJ22a2d7AOMeQ==} - dependencies: - '@types/linkify-it': 3.0.2 - '@types/mdurl': 1.0.2 - dev: true + '@types/markdown-it@14.1.2': + resolution: {integrity: sha512-promo4eFwuiW+TfGxhi+0x3czqTYJkG8qB17ZUJiVF10Xm7NLVRSLUsfRTU/6h1e24VvRnXCx+hG7li58lkzog==} - /@types/mdast@4.0.2: - resolution: {integrity: sha512-tYR83EignvhYO9iU3kDg8V28M0jqyh9zzp5GV+EO+AYnyUl3P5ltkTeJuTiFZQFz670FSb3EwT/6LQdX+UdKfw==} - dependencies: - '@types/unist': 3.0.1 + '@types/mdast@4.0.4': + resolution: {integrity: sha512-kGaNbPh1k7AFzgpud/gMdvIm5xuECykRR+JnWKQno9TAXVa6WIVCGTPvYGekIDL4uwCZQSYbUxNBSb1aUo79oA==} - /@types/mdurl@1.0.2: - resolution: {integrity: sha512-eC4U9MlIcu2q0KQmXszyn5Akca/0jrQmwDRgpAMJai7qBWq4amIQhZyNau4VYGtCeALvW1/NtjzJJ567aZxfKA==} - dev: true + '@types/mdurl@2.0.0': + resolution: {integrity: sha512-RGdgjQUZba5p6QEFAVx2OGb8rQDL/cPRG7GiedRzMcJ1tYnUANBncjbSB1NRGwbvjcPeikRABz2nshyPk1bhWg==} - /@types/mdx@2.0.3: - resolution: {integrity: sha512-IgHxcT3RC8LzFLhKwP3gbMPeaK7BM9eBH46OdapPA7yvuIUJ8H6zHZV53J8hGZcTSnt95jANt+rTBNUUc22ACQ==} - dev: false + '@types/mdx@2.0.13': + resolution: {integrity: sha512-+OWZQfAYyio6YkJb3HLxDrvnx6SWWDbC0zVPfBRzUk0/nqoDyf6dNxQi3eArPe8rJ473nobTMQ/8Zk+LxJ+Yuw==} - /@types/minimatch@3.0.5: + '@types/minimatch@3.0.5': resolution: {integrity: sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ==} - dev: true - /@types/minimist@1.2.2: - resolution: {integrity: sha512-jhuKLIRrhvCPLqwPcx6INqmKeiA5EWrsCOPhrlFSrbrmU4ZMPjj5Ul/oLCMDO98XRUIwVm78xICz4EPCektzeQ==} - dev: true + '@types/minimist@1.2.5': + resolution: {integrity: sha512-hov8bUuiLiyFPGyFPE1lwWhmzYbirOXQNNo40+y3zow8aFVTeyn3VWL0VFFfdNddA8S4Vf0Tc062rzyNr7Paag==} - /@types/ms@0.7.31: - resolution: {integrity: sha512-iiUgKzV9AuaEkZqkOLDIvlQiL6ltuZd9tGcW3gwpnX8JbuiuhFlEGmmFXEXkN50Cvq7Os88IY2v0dkDqXYWVgA==} + '@types/ms@2.1.0': + resolution: {integrity: sha512-GsCCIZDE/p3i96vtEqx+7dBUGXrc7zeSK3wwPHIaRThS+9OhWIXRqzs4d6k1SVU8g91DrNRWxWUGhp5KXQb2VA==} - /@types/nlcst@1.0.0: - resolution: {integrity: sha512-3TGCfOcy8R8mMQ4CNSNOe3PG66HttvjcLzCoOpvXvDtfWOTi+uT/rxeOKm/qEwbM4SNe1O/PjdiBK2YcTjU4OQ==} - dependencies: - '@types/unist': 3.0.1 + '@types/nlcst@2.0.3': + resolution: {integrity: sha512-vSYNSDe6Ix3q+6Z7ri9lyWqgGhJTmzRjZRqyq15N0Z/1/UnVsno9G/N40NBijoYx2seFDIl0+B2mgAb9mezUCA==} - /@types/node@20.10.6: - resolution: {integrity: sha512-Vac8H+NlRNNlAmDfGUP7b5h/KA+AtWIzuXy0E6OyP8f1tCLYAtPvKRRDJjAPqhpCb0t6U2j7/xqAuLEebW2kiw==} - dependencies: - undici-types: 5.26.5 + '@types/node@22.10.10': + resolution: {integrity: sha512-X47y/mPNzxviAGY5TcYPtYL8JsY3kAq2n8fMmKoRCxq/c4v4pyGNCzM2R6+M5/umG4ZfHuT+sgqDYqWc9rJ6ww==} - /@types/normalize-package-data@2.4.1: - resolution: {integrity: sha512-Gj7cI7z+98M282Tqmp2K5EIsoouUEzbBJhQQzDE3jSIRk6r9gsz0oUokqIUR4u1R3dMHo0pDHM7sNOHyhulypw==} - dev: true + '@types/normalize-package-data@2.4.4': + resolution: {integrity: sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==} - /@types/phoenix@1.5.4: - resolution: {integrity: sha512-L5eZmzw89eXBKkiqVBcJfU1QGx9y+wurRIEgt0cuLH0hwNtVUxtx+6cu0R2STwWj468sjXyBYPYDtGclUd1kjQ==} - dev: false + '@types/phoenix@1.6.6': + resolution: {integrity: sha512-PIzZZlEppgrpoT2QgbnDU+MMzuR6BbCjllj0bM70lWoejMeNJAxCchxnv7J3XFkI8MpygtRpzXrIlmWUBclP5A==} - /@types/prop-types@15.7.5: - resolution: {integrity: sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w==} - dev: false + '@types/react-dom@19.0.3': + resolution: {integrity: sha512-0Knk+HJiMP/qOZgMyNFamlIjw9OFCsyC2ZbigmEEyXXixgre6IQpm/4V+r3qH4GC1JPvRJKInw+on2rV6YZLeA==} + peerDependencies: + '@types/react': ^19.0.0 - /@types/react-dom@18.2.18: - resolution: {integrity: sha512-TJxDm6OfAX2KJWJdMEVTwWke5Sc/E/RlnPGvGfS0W7+6ocy2xhDVQVh/KvC2Uf7kACs+gDytdusDSdWfWkaNzw==} - dependencies: - '@types/react': 18.2.46 - dev: false + '@types/react@19.0.8': + resolution: {integrity: sha512-9P/o1IGdfmQxrujGbIMDyYaaCykhLKc0NGCtYcECNUr9UAaDe4gwvV9bR6tvd5Br1SG0j+PBpbKr2UYY8CwqSw==} - /@types/react@18.2.46: - resolution: {integrity: sha512-nNCvVBcZlvX4NU1nRRNV/mFl1nNRuTuslAJglQsq+8ldXe5Xv0Wd2f7WTE3jOxhLH2BFfiZGC6GCp+kHQbgG+w==} - dependencies: - '@types/prop-types': 15.7.5 - '@types/scheduler': 0.16.2 - csstype: 3.1.1 - dev: false - - /@types/resolve@1.17.1: + '@types/resolve@1.17.1': resolution: {integrity: sha512-yy7HuzQhj0dhGpD8RLXSZWEkLsV9ibvxvi6EiJ3bkqLAO1RGo0WbkWQiwpRlSFymTJRz0d3k5LM3kkx8ArDbLw==} - dependencies: - '@types/node': 20.10.6 - dev: true - /@types/scheduler@0.16.2: - resolution: {integrity: sha512-hppQEBDmlwhFAXKJX2KnWLYu5yMfi91yazPb2l+lbJiwW+wdo1gNeRA+3RgNSO39WYX2euey41KEwnqesU2Jew==} - dev: false + '@types/resolve@1.20.2': + resolution: {integrity: sha512-60BCwRFOZCQhDncwQdxxeOEEkbc5dIMccYLwbxsS4TUNeVECQ/pBJ0j09mrHOl/JJvpRPGwO9SvE4nR2Nb/a4Q==} - /@types/trusted-types@2.0.2: - resolution: {integrity: sha512-F5DIZ36YVLE+PN+Zwws4kJogq47hNgX3Nx6WyDJ3kcplxyke3XIzB8uK5n/Lpm1HBsbGzd6nmGehL8cPekP+Tg==} - dev: true + '@types/trusted-types@2.0.7': + resolution: {integrity: sha512-ScaPdn1dQczgbl0QFTeTOmVHFULt394XJgOQNoyVhZ6r2vLnMLJfBPd53SB52T/3G36VI1/g2MZaX0cwDuXsfw==} - /@types/ungap__structured-clone@0.3.3: - resolution: {integrity: sha512-RNmhIPwoip6K/zZOv3ypksTAqaqLEXvlNSXKyrC93xMSOAHZCR7PifW6xKZCwkbbnbM9dwB9X56PPoNTlNwEqw==} - dev: false + '@types/ungap__structured-clone@1.2.0': + resolution: {integrity: sha512-ZoaihZNLeZSxESbk9PUAPZOlSpcKx81I1+4emtULDVmBLkYutTcMlCj2K9VNlf9EWODxdO6gkAqEaLorXwZQVA==} - /@types/unist@2.0.6: - resolution: {integrity: sha512-PBjIUxZHOuj0R15/xuwJYjFi+KZdNFrehocChv4g5hu6aFroHue8m0lBP0POdK2nKzbw0cgV1mws8+V/JAcEkQ==} + '@types/unist@2.0.11': + resolution: {integrity: sha512-CmBKiL6NNo/OqgmMn95Fk9Whlp2mtvIv+KNpQKN2F4SjvrEesubTRWGYSg+BnWZOnlCaSTU1sMpsBOzgbYhnsA==} - /@types/unist@3.0.1: - resolution: {integrity: sha512-ue/hDUpPjC85m+PM9OQDMZr3LywT+CT6mPsQq8OJtCLiERkGRcQUFvu9XASF5XWqyZFXbf15lvb3JFJ4dRLWPg==} + '@types/unist@3.0.3': + resolution: {integrity: sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==} - /@types/webmidi@2.0.10: - resolution: {integrity: sha512-4RmTFMB6mN2h8XbJa1x3cOs9IOkXvFyHGcPUpUvWfmATuKg/J+dsFiMVgCE2EkpS+/8a8AP2tE3rQT1mLG7vEg==} - requiresBuild: true - dev: false - optional: true + '@types/webmidi@2.1.0': + resolution: {integrity: sha512-k898MjEUSHB+6rSeCPQk/kLgie0wgWZ2t78GlWj86HbTQ+XmtbBafYg5LNjn8bVHfItEhPGZPf579Xfc6keV6w==} - /@types/webmidi@2.0.6: - resolution: {integrity: sha512-sfS0A5IryqmBrUpcGPipEPeFdpqmZzP6b6lZFxHKgz5n2Vhzh4yJ5P2TvoDUhDjqJyv0Y25ng0Qodgo2Vu08ug==} - dev: false + '@types/ws@8.5.14': + resolution: {integrity: sha512-bd/YFLW+URhBzMXurx7lWByOu+xzU9+kb3RboOteXYDfW+tr+JZa99OyNmPINEGB/ahzKrEuc8rcv4gnpJmxTw==} - /@typescript-eslint/types@5.62.0: - resolution: {integrity: sha512-87NVngcbVXUahrRTqIK27gD2t5Cu1yuCXxbLcFtCzZGlfyVWWh8mLHkoxzjsB6DDNnvdL+fW8MiwPEJyGJQDgQ==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - dev: true + '@typescript-eslint/types@7.18.0': + resolution: {integrity: sha512-iZqi+Ds1y4EDYUtlOOC+aUmxnE9xS/yCigkjA7XpTKV6nCBd3Hp/PRGGmdwnfkV2ThMyYldP1wRpm/id99spTQ==} + engines: {node: ^18.18.0 || >=20.0.0} - /@typescript-eslint/typescript-estree@5.62.0(typescript@5.3.3): - resolution: {integrity: sha512-CmcQ6uY7b9y694lKdRB8FEel7JbU/40iSAPomu++SjLMntB+2Leay2LO6i8VnJk58MtE9/nQSFIH6jpyRWyYzA==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + '@typescript-eslint/typescript-estree@7.18.0': + resolution: {integrity: sha512-aP1v/BSPnnyhMHts8cf1qQ6Q1IFwwRvAQGRvBFkWlo3/lH29OXA3Pts+c10nxRxIBrDnoMqzhgdwVe5f2D6OzA==} + engines: {node: ^18.18.0 || >=20.0.0} peerDependencies: typescript: '*' peerDependenciesMeta: typescript: optional: true - dependencies: - '@typescript-eslint/types': 5.62.0 - '@typescript-eslint/visitor-keys': 5.62.0 - debug: 4.3.4 - globby: 11.1.0 - is-glob: 4.0.3 - semver: 7.5.4 - tsutils: 3.21.0(typescript@5.3.3) - typescript: 5.3.3 - transitivePeerDependencies: - - supports-color - dev: true - /@typescript-eslint/visitor-keys@5.62.0: - resolution: {integrity: sha512-07ny+LHRzQXepkGg6w0mFY41fVUNBrL2Roj/++7V1txKugfjm/Ci/qSND03r2RhlJhJYMcTn9AhhSSqQp0Ysyw==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - dependencies: - '@typescript-eslint/types': 5.62.0 - eslint-visitor-keys: 3.4.0 - dev: true + '@typescript-eslint/visitor-keys@7.18.0': + resolution: {integrity: sha512-cDF0/Gf81QpY3xYyJKDV14Zwdmid5+uuENhjH2EqFaF0ni+yAyq/LzMaIJdhNJXZI7uLzwIlA+V7oWoyn6Curg==} + engines: {node: ^18.18.0 || >=20.0.0} - /@uiw/codemirror-theme-abcdef@4.21.21(@codemirror/language@6.10.0)(@codemirror/state@6.4.0)(@codemirror/view@6.23.0): - resolution: {integrity: sha512-5gHVFyrcOC6ejQeNz7eoSXq46ODYnjFHX8VIzs5Z8oqVqOKIkquI6jL3frP2jN2wdm9EEwa1w4W1zX4nyag9Tg==} - dependencies: - '@uiw/codemirror-themes': 4.21.21(@codemirror/language@6.10.0)(@codemirror/state@6.4.0)(@codemirror/view@6.23.0) - transitivePeerDependencies: - - '@codemirror/language' - - '@codemirror/state' - - '@codemirror/view' - dev: false + '@ungap/structured-clone@1.3.0': + resolution: {integrity: sha512-WmoN8qaIAo7WTYWbAZuG8PYEhn5fkz7dZrqTBZ7dtt//lL2Gwms1IcnQ5yHqjDfX8Ft5j4YzDM23f87zBfDe9g==} - /@uiw/codemirror-theme-abyss@4.21.21(@codemirror/language@6.10.0)(@codemirror/state@6.4.0)(@codemirror/view@6.23.0): - resolution: {integrity: sha512-/I9BI9tfhGgHv0TY0x9NQAdimR+ztipS35bxY+49GnGzKTzdY8D4CvYnk7UHQ2Mu0z4LMk0t9B4uh6R0pJ2rrA==} - dependencies: - '@uiw/codemirror-themes': 4.21.21(@codemirror/language@6.10.0)(@codemirror/state@6.4.0)(@codemirror/view@6.23.0) - transitivePeerDependencies: - - '@codemirror/language' - - '@codemirror/state' - - '@codemirror/view' - dev: false - - /@uiw/codemirror-theme-androidstudio@4.21.21(@codemirror/language@6.10.0)(@codemirror/state@6.4.0)(@codemirror/view@6.23.0): - resolution: {integrity: sha512-ehd7ZGFO9a6WGUi0lKH0pQ7I7bSLXo4mdeDGzgI4boyOx3PGXAmtiy6TJZuNejyPiCs4WVmb2KVBQLYM0dBbkw==} - dependencies: - '@uiw/codemirror-themes': 4.21.21(@codemirror/language@6.10.0)(@codemirror/state@6.4.0)(@codemirror/view@6.23.0) - transitivePeerDependencies: - - '@codemirror/language' - - '@codemirror/state' - - '@codemirror/view' - dev: false - - /@uiw/codemirror-theme-andromeda@4.21.21(@codemirror/language@6.10.0)(@codemirror/state@6.4.0)(@codemirror/view@6.23.0): - resolution: {integrity: sha512-4iDbO6CQqVm+nK+3Fq0rsUmyOT8gqA05zMCWDAva/mJ+N3AzFCkygDyq87qSZw1kO3u6weThdNxqoukhyIT8Gg==} - dependencies: - '@uiw/codemirror-themes': 4.21.21(@codemirror/language@6.10.0)(@codemirror/state@6.4.0)(@codemirror/view@6.23.0) - transitivePeerDependencies: - - '@codemirror/language' - - '@codemirror/state' - - '@codemirror/view' - dev: false - - /@uiw/codemirror-theme-atomone@4.21.21(@codemirror/language@6.10.0)(@codemirror/state@6.4.0)(@codemirror/view@6.23.0): - resolution: {integrity: sha512-dtbbcLsw6boCxo77H7tJwBv1xgyxwMa5R50/ay5cuBV2MnruE6nCEn0NKgyF5dXf3RN1Hn5Z+rEZOMbkbnAqHA==} - dependencies: - '@uiw/codemirror-themes': 4.21.21(@codemirror/language@6.10.0)(@codemirror/state@6.4.0)(@codemirror/view@6.23.0) - transitivePeerDependencies: - - '@codemirror/language' - - '@codemirror/state' - - '@codemirror/view' - dev: false - - /@uiw/codemirror-theme-aura@4.21.21(@codemirror/language@6.10.0)(@codemirror/state@6.4.0)(@codemirror/view@6.23.0): - resolution: {integrity: sha512-Pa/tEB7+KMmWsgeJtlKkRrqWT1/oB1Vdi9xk+9zFuzuaV8XauZPloXYaHv+K7n7XUTKOECS5Yw+BCULKtnqJNQ==} - dependencies: - '@uiw/codemirror-themes': 4.21.21(@codemirror/language@6.10.0)(@codemirror/state@6.4.0)(@codemirror/view@6.23.0) - transitivePeerDependencies: - - '@codemirror/language' - - '@codemirror/state' - - '@codemirror/view' - dev: false - - /@uiw/codemirror-theme-basic@4.21.21(@codemirror/language@6.10.0)(@codemirror/state@6.4.0)(@codemirror/view@6.23.0): - resolution: {integrity: sha512-xWDxch2Gkltsj5GTKmRoRga2fe+tw2a2mIIJARHWM5oyE3FfAF8J8Tgx4acaU6hlXRgQa4qPLaYA5kK43yj1hg==} - dependencies: - '@uiw/codemirror-themes': 4.21.21(@codemirror/language@6.10.0)(@codemirror/state@6.4.0)(@codemirror/view@6.23.0) - transitivePeerDependencies: - - '@codemirror/language' - - '@codemirror/state' - - '@codemirror/view' - dev: false - - /@uiw/codemirror-theme-bbedit@4.21.21(@codemirror/language@6.10.0)(@codemirror/state@6.4.0)(@codemirror/view@6.23.0): - resolution: {integrity: sha512-EH5fGyU3oepRLhVwPdqaShIgypPUG3FbwxB7cqH3TgGlDUIQtCK9u5MFo0br84kE+ZXIqqphlOb9d/5gawDVRw==} - dependencies: - '@uiw/codemirror-themes': 4.21.21(@codemirror/language@6.10.0)(@codemirror/state@6.4.0)(@codemirror/view@6.23.0) - transitivePeerDependencies: - - '@codemirror/language' - - '@codemirror/state' - - '@codemirror/view' - dev: false - - /@uiw/codemirror-theme-bespin@4.21.21(@codemirror/language@6.10.0)(@codemirror/state@6.4.0)(@codemirror/view@6.23.0): - resolution: {integrity: sha512-iQ5l4GaR9i43Nez3ZB94qwBUhLMfL5t95gKc+s0as20eprFpMO3XeHf4lcxcXZCqWV0OKYp+0OGmq0d9ugYQHg==} - dependencies: - '@uiw/codemirror-themes': 4.21.21(@codemirror/language@6.10.0)(@codemirror/state@6.4.0)(@codemirror/view@6.23.0) - transitivePeerDependencies: - - '@codemirror/language' - - '@codemirror/state' - - '@codemirror/view' - dev: false - - /@uiw/codemirror-theme-copilot@4.21.21(@codemirror/language@6.10.0)(@codemirror/state@6.4.0)(@codemirror/view@6.23.0): - resolution: {integrity: sha512-1AhVILVqnczOEsn2vKU6GF7Ka+/hU0kPgwx0nkHrhjg5en0Bjz7YRglG/iVLr31A7CxvAR6csmdABqdjVxV5ng==} - dependencies: - '@uiw/codemirror-themes': 4.21.21(@codemirror/language@6.10.0)(@codemirror/state@6.4.0)(@codemirror/view@6.23.0) - transitivePeerDependencies: - - '@codemirror/language' - - '@codemirror/state' - - '@codemirror/view' - dev: false - - /@uiw/codemirror-theme-darcula@4.21.21(@codemirror/language@6.10.0)(@codemirror/state@6.4.0)(@codemirror/view@6.23.0): - resolution: {integrity: sha512-Dycs92ET0SZ5G9SblpYSmQDqQvD1jHgp4Sn3r1rlonkR/gcX0T7kEaNTLKI4EDG4E7WJYizHkRkKSR7gusqTFQ==} - dependencies: - '@uiw/codemirror-themes': 4.21.21(@codemirror/language@6.10.0)(@codemirror/state@6.4.0)(@codemirror/view@6.23.0) - transitivePeerDependencies: - - '@codemirror/language' - - '@codemirror/state' - - '@codemirror/view' - dev: false - - /@uiw/codemirror-theme-dracula@4.21.21(@codemirror/language@6.10.0)(@codemirror/state@6.4.0)(@codemirror/view@6.23.0): - resolution: {integrity: sha512-7NAznBZ/DgRuc8FOMmRRI7NAZv4RgARVX86b9MYxU4HcINgGrk+tnJCxOVwJbAyQQ/LjsFLzNLIK23HrjM5AtA==} - dependencies: - '@uiw/codemirror-themes': 4.21.21(@codemirror/language@6.10.0)(@codemirror/state@6.4.0)(@codemirror/view@6.23.0) - transitivePeerDependencies: - - '@codemirror/language' - - '@codemirror/state' - - '@codemirror/view' - dev: false - - /@uiw/codemirror-theme-duotone@4.21.21(@codemirror/language@6.10.0)(@codemirror/state@6.4.0)(@codemirror/view@6.23.0): - resolution: {integrity: sha512-RiJDUMIR9B8/fxs5g7WqCC1Sryv845ypoeoJjTNVCtb6m6e4jX+hDZXFpvkXyy4q1nT/3KNBKYsWT/x3VIV30g==} - dependencies: - '@uiw/codemirror-themes': 4.21.21(@codemirror/language@6.10.0)(@codemirror/state@6.4.0)(@codemirror/view@6.23.0) - transitivePeerDependencies: - - '@codemirror/language' - - '@codemirror/state' - - '@codemirror/view' - dev: false - - /@uiw/codemirror-theme-eclipse@4.21.21(@codemirror/language@6.10.0)(@codemirror/state@6.4.0)(@codemirror/view@6.23.0): - resolution: {integrity: sha512-Dp5j4mFPH8UOoH37b2Wc45khNGcyusCDbfRw0jeBAGW258xH4UbHBlEIY+1/z4bloIfoguCyE3nPQnsa/M59Qg==} - dependencies: - '@uiw/codemirror-themes': 4.21.21(@codemirror/language@6.10.0)(@codemirror/state@6.4.0)(@codemirror/view@6.23.0) - transitivePeerDependencies: - - '@codemirror/language' - - '@codemirror/state' - - '@codemirror/view' - dev: false - - /@uiw/codemirror-theme-github@4.21.21(@codemirror/language@6.10.0)(@codemirror/state@6.4.0)(@codemirror/view@6.23.0): - resolution: {integrity: sha512-msrpNrKk/CZQHk58TshI8aH7FpEyL404m/vWlGUdL2jGW7IRKm0nXn1lXXQ/snzk65h88GO6u9fiiv0pxRuZfQ==} - dependencies: - '@uiw/codemirror-themes': 4.21.21(@codemirror/language@6.10.0)(@codemirror/state@6.4.0)(@codemirror/view@6.23.0) - transitivePeerDependencies: - - '@codemirror/language' - - '@codemirror/state' - - '@codemirror/view' - dev: false - - /@uiw/codemirror-theme-gruvbox-dark@4.21.21(@codemirror/language@6.10.0)(@codemirror/state@6.4.0)(@codemirror/view@6.23.0): - resolution: {integrity: sha512-Igebc4v8nmfdH+vjx16nbDsj3+zxvTGkYzfvdqJ19mNSXwOwRbjTvfdsMHR24/5rtiE98JGr40kfXilmuzSiTg==} - dependencies: - '@uiw/codemirror-themes': 4.21.21(@codemirror/language@6.10.0)(@codemirror/state@6.4.0)(@codemirror/view@6.23.0) - transitivePeerDependencies: - - '@codemirror/language' - - '@codemirror/state' - - '@codemirror/view' - dev: false - - /@uiw/codemirror-theme-kimbie@4.21.21(@codemirror/language@6.10.0)(@codemirror/state@6.4.0)(@codemirror/view@6.23.0): - resolution: {integrity: sha512-dhWqIz1nsFzqoe5U3jIPeCJ9/c534YMmsGvNq3JJgRjD/KZeV8TSOJfuJNxI6jCskXh149Z5wghKE+FnNp/eUA==} - dependencies: - '@uiw/codemirror-themes': 4.21.21(@codemirror/language@6.10.0)(@codemirror/state@6.4.0)(@codemirror/view@6.23.0) - transitivePeerDependencies: - - '@codemirror/language' - - '@codemirror/state' - - '@codemirror/view' - dev: false - - /@uiw/codemirror-theme-material@4.21.21(@codemirror/language@6.10.0)(@codemirror/state@6.4.0)(@codemirror/view@6.23.0): - resolution: {integrity: sha512-Xdd2uI7kdKCD7xbgNhOjL7ksZsw8D+nw66QXAvyLUaBBGOFmObV7yJhCU7DGx9yAHO4eRMz6eRMuSolNnidgsg==} - dependencies: - '@uiw/codemirror-themes': 4.21.21(@codemirror/language@6.10.0)(@codemirror/state@6.4.0)(@codemirror/view@6.23.0) - transitivePeerDependencies: - - '@codemirror/language' - - '@codemirror/state' - - '@codemirror/view' - dev: false - - /@uiw/codemirror-theme-monokai-dimmed@4.21.21(@codemirror/language@6.10.0)(@codemirror/state@6.4.0)(@codemirror/view@6.23.0): - resolution: {integrity: sha512-+L/fJiTEgJqsukLtTOIo3x+Jk7tS1OmHrr6+6p+bA37NiTGkG1hxpOKvM0UINPFN0zyuvNHGQodW7NacvgxYWA==} - dependencies: - '@uiw/codemirror-themes': 4.21.21(@codemirror/language@6.10.0)(@codemirror/state@6.4.0)(@codemirror/view@6.23.0) - transitivePeerDependencies: - - '@codemirror/language' - - '@codemirror/state' - - '@codemirror/view' - dev: false - - /@uiw/codemirror-theme-monokai@4.21.21(@codemirror/language@6.10.0)(@codemirror/state@6.4.0)(@codemirror/view@6.23.0): - resolution: {integrity: sha512-ztPj09vlBhkAxF6Ns1iXMFnTUlvmMGs6y0empFXffKV9QnErcCjUsvaOiqzNkmn9RiRR+mAjqN4oMimtmchP8A==} - dependencies: - '@uiw/codemirror-themes': 4.21.21(@codemirror/language@6.10.0)(@codemirror/state@6.4.0)(@codemirror/view@6.23.0) - transitivePeerDependencies: - - '@codemirror/language' - - '@codemirror/state' - - '@codemirror/view' - dev: false - - /@uiw/codemirror-theme-noctis-lilac@4.21.21(@codemirror/language@6.10.0)(@codemirror/state@6.4.0)(@codemirror/view@6.23.0): - resolution: {integrity: sha512-k2QjlufmV6aGlkafTFqtAr2IsfZ0s8KzZfeDIFqBCjpRT+DRuVFYgu/IlPVK8uPNneLe1Hzr5IAH+X8rd7LUsw==} - dependencies: - '@uiw/codemirror-themes': 4.21.21(@codemirror/language@6.10.0)(@codemirror/state@6.4.0)(@codemirror/view@6.23.0) - transitivePeerDependencies: - - '@codemirror/language' - - '@codemirror/state' - - '@codemirror/view' - dev: false - - /@uiw/codemirror-theme-nord@4.21.21(@codemirror/language@6.10.0)(@codemirror/state@6.4.0)(@codemirror/view@6.23.0): - resolution: {integrity: sha512-VOTWCPbkZjxPE5FZUp/WYgKXELZ0LNnfRwBz6iPAD3u4dVXfnGzHDIzVx406R0SaJ8MO42zAoee7PQiRFRsMBw==} - dependencies: - '@uiw/codemirror-themes': 4.21.21(@codemirror/language@6.10.0)(@codemirror/state@6.4.0)(@codemirror/view@6.23.0) - transitivePeerDependencies: - - '@codemirror/language' - - '@codemirror/state' - - '@codemirror/view' - dev: false - - /@uiw/codemirror-theme-okaidia@4.21.21(@codemirror/language@6.10.0)(@codemirror/state@6.4.0)(@codemirror/view@6.23.0): - resolution: {integrity: sha512-jZQ3YV+taTroqGmnAnFwU1uhAc+BZmuN1vjOJ9of7b6nmav1cohd8pdinZgDLag/ZrJt6TVr/KYBH8NF1Sm//g==} - dependencies: - '@uiw/codemirror-themes': 4.21.21(@codemirror/language@6.10.0)(@codemirror/state@6.4.0)(@codemirror/view@6.23.0) - transitivePeerDependencies: - - '@codemirror/language' - - '@codemirror/state' - - '@codemirror/view' - dev: false - - /@uiw/codemirror-theme-quietlight@4.21.21(@codemirror/language@6.10.0)(@codemirror/state@6.4.0)(@codemirror/view@6.23.0): - resolution: {integrity: sha512-s1QZXCpsT8+6NMMl3es1OWC6x50AaoXiEfwJdahpV37MqLUuMgYSf2/QLidgmQ0CL/ygsiO2wPbkSz004uKQtw==} - dependencies: - '@uiw/codemirror-themes': 4.21.21(@codemirror/language@6.10.0)(@codemirror/state@6.4.0)(@codemirror/view@6.23.0) - transitivePeerDependencies: - - '@codemirror/language' - - '@codemirror/state' - - '@codemirror/view' - dev: false - - /@uiw/codemirror-theme-red@4.21.21(@codemirror/language@6.10.0)(@codemirror/state@6.4.0)(@codemirror/view@6.23.0): - resolution: {integrity: sha512-IaOMm4O7pCbJ+iJe2lOq2ZzO+2tsZ5E7jSvF7t2IWyMiANswlQpcdea0yATr2xm54GyB/gNRU9D3t7jpwn8sew==} - dependencies: - '@uiw/codemirror-themes': 4.21.21(@codemirror/language@6.10.0)(@codemirror/state@6.4.0)(@codemirror/view@6.23.0) - transitivePeerDependencies: - - '@codemirror/language' - - '@codemirror/state' - - '@codemirror/view' - dev: false - - /@uiw/codemirror-theme-solarized@4.21.21(@codemirror/language@6.10.0)(@codemirror/state@6.4.0)(@codemirror/view@6.23.0): - resolution: {integrity: sha512-L+KSl9v6Lzt1Tt4A6jhGlMuDL09Iwnjyn05i17JhsuofSMcH5RVeb7YPO1iqBBRh9uLMVzvjL8vbItXjS9DeSg==} - dependencies: - '@uiw/codemirror-themes': 4.21.21(@codemirror/language@6.10.0)(@codemirror/state@6.4.0)(@codemirror/view@6.23.0) - transitivePeerDependencies: - - '@codemirror/language' - - '@codemirror/state' - - '@codemirror/view' - dev: false - - /@uiw/codemirror-theme-sublime@4.21.21(@codemirror/language@6.10.0)(@codemirror/state@6.4.0)(@codemirror/view@6.23.0): - resolution: {integrity: sha512-wqr+1NFM1VjfCglB/AhgwJXmRCwo8/1rrdkIzhOTrD2AXqmOyppt9hAtvN2h+OA2OBkhqH90dco1aNJUQKcTuw==} - dependencies: - '@uiw/codemirror-themes': 4.21.21(@codemirror/language@6.10.0)(@codemirror/state@6.4.0)(@codemirror/view@6.23.0) - transitivePeerDependencies: - - '@codemirror/language' - - '@codemirror/state' - - '@codemirror/view' - dev: false - - /@uiw/codemirror-theme-tokyo-night-day@4.21.21(@codemirror/language@6.10.0)(@codemirror/state@6.4.0)(@codemirror/view@6.23.0): - resolution: {integrity: sha512-2HknKZdadg2wZ93rC0SrhR4Z4AJiKI/HGLQDF5XheMoxXeX/7bta/6Dblw3zGJmfoESNtRGBU3pHGiAgT6MjNw==} - dependencies: - '@uiw/codemirror-themes': 4.21.21(@codemirror/language@6.10.0)(@codemirror/state@6.4.0)(@codemirror/view@6.23.0) - transitivePeerDependencies: - - '@codemirror/language' - - '@codemirror/state' - - '@codemirror/view' - dev: false - - /@uiw/codemirror-theme-tokyo-night-storm@4.21.21(@codemirror/language@6.10.0)(@codemirror/state@6.4.0)(@codemirror/view@6.23.0): - resolution: {integrity: sha512-LJK/bR/jTt2PEJthnHu3feDwh+NYrCKE8SL4sp4iKZ12WRJh5/jmLY1EiPtPf9tWpK2SGhr9aJ3yLS5nQ0vrrw==} - dependencies: - '@uiw/codemirror-themes': 4.21.21(@codemirror/language@6.10.0)(@codemirror/state@6.4.0)(@codemirror/view@6.23.0) - transitivePeerDependencies: - - '@codemirror/language' - - '@codemirror/state' - - '@codemirror/view' - dev: false - - /@uiw/codemirror-theme-tokyo-night@4.21.21(@codemirror/language@6.10.0)(@codemirror/state@6.4.0)(@codemirror/view@6.23.0): - resolution: {integrity: sha512-zkQct/hRZdmcyjtwQvsqz9VsUB4V/MmlkSTbYhBsP4ZZKhkxYOdr0nDhNMXPbo8h6nWxvkUvre0NjM1GcMwBtg==} - dependencies: - '@uiw/codemirror-themes': 4.21.21(@codemirror/language@6.10.0)(@codemirror/state@6.4.0)(@codemirror/view@6.23.0) - transitivePeerDependencies: - - '@codemirror/language' - - '@codemirror/state' - - '@codemirror/view' - dev: false - - /@uiw/codemirror-theme-tomorrow-night-blue@4.21.21(@codemirror/language@6.10.0)(@codemirror/state@6.4.0)(@codemirror/view@6.23.0): - resolution: {integrity: sha512-Ubg/3/+ED8uNC6RR3hCri23Re0BFYjagZbqy1/YT1p1Bx/4BooDlv4hbxw7nORnXxfQtnPq9gGc1ZJFFQXF1ww==} - dependencies: - '@uiw/codemirror-themes': 4.21.21(@codemirror/language@6.10.0)(@codemirror/state@6.4.0)(@codemirror/view@6.23.0) - transitivePeerDependencies: - - '@codemirror/language' - - '@codemirror/state' - - '@codemirror/view' - dev: false - - /@uiw/codemirror-theme-vscode@4.21.21(@codemirror/language@6.10.0)(@codemirror/state@6.4.0)(@codemirror/view@6.23.0): - resolution: {integrity: sha512-NUD2l/PqnvzNtxscXk99hm5a5avFsE4lxG2MUtPRuOZRRNXHxNsYeXGlab6R5hUO+v/Lxy6mrMmTRyL0Gj6dIw==} - dependencies: - '@uiw/codemirror-themes': 4.21.21(@codemirror/language@6.10.0)(@codemirror/state@6.4.0)(@codemirror/view@6.23.0) - transitivePeerDependencies: - - '@codemirror/language' - - '@codemirror/state' - - '@codemirror/view' - dev: false - - /@uiw/codemirror-theme-white@4.21.21(@codemirror/language@6.10.0)(@codemirror/state@6.4.0)(@codemirror/view@6.23.0): - resolution: {integrity: sha512-nX4iuiZXPkR0WaNelaLpx6JAcPQ1TPoMoeYEDV8XSbMvlBZgHAgFwi2KSIexwSG5Fihywpv+mkusAPrOHNF3zw==} - dependencies: - '@uiw/codemirror-themes': 4.21.21(@codemirror/language@6.10.0)(@codemirror/state@6.4.0)(@codemirror/view@6.23.0) - transitivePeerDependencies: - - '@codemirror/language' - - '@codemirror/state' - - '@codemirror/view' - dev: false - - /@uiw/codemirror-theme-xcode@4.21.21(@codemirror/language@6.10.0)(@codemirror/state@6.4.0)(@codemirror/view@6.23.0): - resolution: {integrity: sha512-nmzqZ0v5GNWzAQSh0vgAN6XZ+OXeJpHn73fNfMiWzo4ZHzO1ZB5DAFRs8TJYdl6IXkp1RAcxIZ6OdmZ8tXF1CA==} - dependencies: - '@uiw/codemirror-themes': 4.21.21(@codemirror/language@6.10.0)(@codemirror/state@6.4.0)(@codemirror/view@6.23.0) - transitivePeerDependencies: - - '@codemirror/language' - - '@codemirror/state' - - '@codemirror/view' - dev: false - - /@uiw/codemirror-themes-all@4.21.21(@codemirror/language@6.10.0)(@codemirror/state@6.4.0)(@codemirror/view@6.23.0): - resolution: {integrity: sha512-rwJB/pNBLutpQ2hPWV50FoaFv7eh8GEyK+2NIPY3SKiNAiJLWtXp3yN73Re3jY0XxOdTyi9jPnvCXJLGrxrxXw==} - dependencies: - '@uiw/codemirror-theme-abcdef': 4.21.21(@codemirror/language@6.10.0)(@codemirror/state@6.4.0)(@codemirror/view@6.23.0) - '@uiw/codemirror-theme-abyss': 4.21.21(@codemirror/language@6.10.0)(@codemirror/state@6.4.0)(@codemirror/view@6.23.0) - '@uiw/codemirror-theme-androidstudio': 4.21.21(@codemirror/language@6.10.0)(@codemirror/state@6.4.0)(@codemirror/view@6.23.0) - '@uiw/codemirror-theme-andromeda': 4.21.21(@codemirror/language@6.10.0)(@codemirror/state@6.4.0)(@codemirror/view@6.23.0) - '@uiw/codemirror-theme-atomone': 4.21.21(@codemirror/language@6.10.0)(@codemirror/state@6.4.0)(@codemirror/view@6.23.0) - '@uiw/codemirror-theme-aura': 4.21.21(@codemirror/language@6.10.0)(@codemirror/state@6.4.0)(@codemirror/view@6.23.0) - '@uiw/codemirror-theme-basic': 4.21.21(@codemirror/language@6.10.0)(@codemirror/state@6.4.0)(@codemirror/view@6.23.0) - '@uiw/codemirror-theme-bbedit': 4.21.21(@codemirror/language@6.10.0)(@codemirror/state@6.4.0)(@codemirror/view@6.23.0) - '@uiw/codemirror-theme-bespin': 4.21.21(@codemirror/language@6.10.0)(@codemirror/state@6.4.0)(@codemirror/view@6.23.0) - '@uiw/codemirror-theme-copilot': 4.21.21(@codemirror/language@6.10.0)(@codemirror/state@6.4.0)(@codemirror/view@6.23.0) - '@uiw/codemirror-theme-darcula': 4.21.21(@codemirror/language@6.10.0)(@codemirror/state@6.4.0)(@codemirror/view@6.23.0) - '@uiw/codemirror-theme-dracula': 4.21.21(@codemirror/language@6.10.0)(@codemirror/state@6.4.0)(@codemirror/view@6.23.0) - '@uiw/codemirror-theme-duotone': 4.21.21(@codemirror/language@6.10.0)(@codemirror/state@6.4.0)(@codemirror/view@6.23.0) - '@uiw/codemirror-theme-eclipse': 4.21.21(@codemirror/language@6.10.0)(@codemirror/state@6.4.0)(@codemirror/view@6.23.0) - '@uiw/codemirror-theme-github': 4.21.21(@codemirror/language@6.10.0)(@codemirror/state@6.4.0)(@codemirror/view@6.23.0) - '@uiw/codemirror-theme-gruvbox-dark': 4.21.21(@codemirror/language@6.10.0)(@codemirror/state@6.4.0)(@codemirror/view@6.23.0) - '@uiw/codemirror-theme-kimbie': 4.21.21(@codemirror/language@6.10.0)(@codemirror/state@6.4.0)(@codemirror/view@6.23.0) - '@uiw/codemirror-theme-material': 4.21.21(@codemirror/language@6.10.0)(@codemirror/state@6.4.0)(@codemirror/view@6.23.0) - '@uiw/codemirror-theme-monokai': 4.21.21(@codemirror/language@6.10.0)(@codemirror/state@6.4.0)(@codemirror/view@6.23.0) - '@uiw/codemirror-theme-monokai-dimmed': 4.21.21(@codemirror/language@6.10.0)(@codemirror/state@6.4.0)(@codemirror/view@6.23.0) - '@uiw/codemirror-theme-noctis-lilac': 4.21.21(@codemirror/language@6.10.0)(@codemirror/state@6.4.0)(@codemirror/view@6.23.0) - '@uiw/codemirror-theme-nord': 4.21.21(@codemirror/language@6.10.0)(@codemirror/state@6.4.0)(@codemirror/view@6.23.0) - '@uiw/codemirror-theme-okaidia': 4.21.21(@codemirror/language@6.10.0)(@codemirror/state@6.4.0)(@codemirror/view@6.23.0) - '@uiw/codemirror-theme-quietlight': 4.21.21(@codemirror/language@6.10.0)(@codemirror/state@6.4.0)(@codemirror/view@6.23.0) - '@uiw/codemirror-theme-red': 4.21.21(@codemirror/language@6.10.0)(@codemirror/state@6.4.0)(@codemirror/view@6.23.0) - '@uiw/codemirror-theme-solarized': 4.21.21(@codemirror/language@6.10.0)(@codemirror/state@6.4.0)(@codemirror/view@6.23.0) - '@uiw/codemirror-theme-sublime': 4.21.21(@codemirror/language@6.10.0)(@codemirror/state@6.4.0)(@codemirror/view@6.23.0) - '@uiw/codemirror-theme-tokyo-night': 4.21.21(@codemirror/language@6.10.0)(@codemirror/state@6.4.0)(@codemirror/view@6.23.0) - '@uiw/codemirror-theme-tokyo-night-day': 4.21.21(@codemirror/language@6.10.0)(@codemirror/state@6.4.0)(@codemirror/view@6.23.0) - '@uiw/codemirror-theme-tokyo-night-storm': 4.21.21(@codemirror/language@6.10.0)(@codemirror/state@6.4.0)(@codemirror/view@6.23.0) - '@uiw/codemirror-theme-tomorrow-night-blue': 4.21.21(@codemirror/language@6.10.0)(@codemirror/state@6.4.0)(@codemirror/view@6.23.0) - '@uiw/codemirror-theme-vscode': 4.21.21(@codemirror/language@6.10.0)(@codemirror/state@6.4.0)(@codemirror/view@6.23.0) - '@uiw/codemirror-theme-white': 4.21.21(@codemirror/language@6.10.0)(@codemirror/state@6.4.0)(@codemirror/view@6.23.0) - '@uiw/codemirror-theme-xcode': 4.21.21(@codemirror/language@6.10.0)(@codemirror/state@6.4.0)(@codemirror/view@6.23.0) - '@uiw/codemirror-themes': 4.21.21(@codemirror/language@6.10.0)(@codemirror/state@6.4.0)(@codemirror/view@6.23.0) - transitivePeerDependencies: - - '@codemirror/language' - - '@codemirror/state' - - '@codemirror/view' - dev: false - - /@uiw/codemirror-themes@4.21.21(@codemirror/language@6.10.0)(@codemirror/state@6.4.0)(@codemirror/view@6.23.0): - resolution: {integrity: sha512-ljVcMGdaxo75UaH+EqxJ+jLyMVVgeSfW2AKyT1VeLy+4SDpuqNQ7wq5XVxktsG6LH+OvgSFndWXgPANf4+gQcA==} + '@vite-pwa/astro@0.5.0': + resolution: {integrity: sha512-Yd3Pug/c1EUQJXWvzYh6eTtoqzmSKcdCqWCcNquZeaD13tLWpBb2FIPJ4HMULVY6+GfxMvrT+OBuMrbHQCvftw==} peerDependencies: - '@codemirror/language': '>=6.0.0' - '@codemirror/state': '>=6.0.0' - '@codemirror/view': '>=6.0.0' - dependencies: - '@codemirror/language': 6.10.0 - '@codemirror/state': 6.4.0 - '@codemirror/view': 6.23.0 - dev: false + '@vite-pwa/assets-generator': ^0.2.6 + astro: ^1.6.0 || ^2.0.0 || ^3.0.0 || ^4.0.0 || ^5.0.0 + vite-plugin-pwa: '>=0.21.1 <1' + peerDependenciesMeta: + '@vite-pwa/assets-generator': + optional: true - /@ungap/structured-clone@1.2.0: - resolution: {integrity: sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==} - - /@vite-pwa/astro@0.2.0(astro@4.0.8)(vite-plugin-pwa@0.17.4): - resolution: {integrity: sha512-1MBNbRo9I9fp9sUSoaQfI/xHVDRKRoUsWETDJMVoKoctZYfm4fZgb7EN76WJdejW/vup+3+uoFlDMCnca+vZzA==} - peerDependencies: - astro: ^1.6.0 || ^2.0.0 || ^3.0.0 || ^4.0.0 - vite-plugin-pwa: '>=0.17.3 <1' - dependencies: - astro: 4.0.8(@types/node@20.10.6)(typescript@5.3.3) - vite-plugin-pwa: 0.17.4(vite@5.2.2)(workbox-build@7.0.0)(workbox-window@7.0.0) - dev: true - - /@vitejs/plugin-react@4.2.1(vite@5.2.2): - resolution: {integrity: sha512-oojO9IDc4nCUUi8qIR11KoQm0XFFLIwsRBwHRR4d/88IWghn1y6ckz/bJ8GHDCsYEJee8mDzqtJxh15/cisJNQ==} + '@vitejs/plugin-react@4.3.4': + resolution: {integrity: sha512-SCCPBJtYLdE8PX/7ZQAs1QAZ8Jqwih+0VBLum1EGqmCCQal+MIUqLCzj3ZUy8ufbC0cAM4LRlSTm7IQJwWT4ug==} engines: {node: ^14.18.0 || >=16.0.0} peerDependencies: - vite: ^4.2.0 || ^5.0.0 - dependencies: - '@babel/core': 7.23.7 - '@babel/plugin-transform-react-jsx-self': 7.23.3(@babel/core@7.23.7) - '@babel/plugin-transform-react-jsx-source': 7.23.3(@babel/core@7.23.7) - '@types/babel__core': 7.20.5 - react-refresh: 0.14.0 - vite: 5.2.2(@types/node@20.10.6) - transitivePeerDependencies: - - supports-color - dev: false + vite: ^4.2.0 || ^5.0.0 || ^6.0.0 - /@vitest/expect@1.1.0: - resolution: {integrity: sha512-9IE2WWkcJo2BR9eqtY5MIo3TPmS50Pnwpm66A6neb2hvk/QSLfPXBz2qdiwUOQkwyFuuXEUj5380CbwfzW4+/w==} - dependencies: - '@vitest/spy': 1.1.0 - '@vitest/utils': 1.1.0 - chai: 4.3.10 - dev: true - - /@vitest/runner@1.1.0: - resolution: {integrity: sha512-zdNLJ00pm5z/uhbWF6aeIJCGMSyTyWImy3Fcp9piRGvueERFlQFbUwCpzVce79OLm2UHk9iwaMSOaU9jVHgNVw==} - dependencies: - '@vitest/utils': 1.1.0 - p-limit: 5.0.0 - pathe: 1.1.1 - dev: true - - /@vitest/snapshot@1.1.0: - resolution: {integrity: sha512-5O/wyZg09V5qmNmAlUgCBqflvn2ylgsWJRRuPrnHEfDNT6tQpQ8O1isNGgo+VxofISHqz961SG3iVvt3SPK/QQ==} - dependencies: - magic-string: 0.30.5 - pathe: 1.1.1 - pretty-format: 29.7.0 - dev: true - - /@vitest/spy@1.1.0: - resolution: {integrity: sha512-sNOVSU/GE+7+P76qYo+VXdXhXffzWZcYIPQfmkiRxaNCSPiLANvQx5Mx6ZURJ/ndtEkUJEpvKLXqAYTKEY+lTg==} - dependencies: - tinyspy: 2.2.0 - dev: true - - /@vitest/ui@1.1.0(vitest@1.1.0): - resolution: {integrity: sha512-7yU1QRFBplz0xJqcgt+agcbrNFdBmLo8UUppdKkFmYx+Ih0+yMYQOyr7kOB+YoggJY/p5ZzXxdbiOz7NBX2y+w==} + '@vitest/coverage-v8@3.0.4': + resolution: {integrity: sha512-f0twgRCHgbs24Dp8cLWagzcObXMcuKtAwgxjJV/nnysPAJJk1JiKu/W0gIehZLmkljhJXU/E0/dmuQzsA/4jhA==} peerDependencies: - vitest: ^1.0.0 - dependencies: - '@vitest/utils': 1.1.0 - fast-glob: 3.3.2 - fflate: 0.8.1 - flatted: 3.2.9 - pathe: 1.1.1 - picocolors: 1.0.0 - sirv: 2.0.4 - vitest: 1.1.0(@vitest/ui@1.1.0) - dev: true + '@vitest/browser': 3.0.4 + vitest: 3.0.4 + peerDependenciesMeta: + '@vitest/browser': + optional: true - /@vitest/utils@1.1.0: - resolution: {integrity: sha512-z+s510fKmYz4Y41XhNs3vcuFTFhcij2YF7F8VQfMEYAAUfqQh0Zfg7+w9xdgFGhPf3tX3TicAe+8BDITk6ampQ==} - dependencies: - diff-sequences: 29.6.3 - loupe: 2.3.7 - pretty-format: 29.7.0 - dev: true + '@vitest/expect@3.0.4': + resolution: {integrity: sha512-Nm5kJmYw6P2BxhJPkO3eKKhGYKRsnqJqf+r0yOGRKpEP+bSCBDsjXgiu1/5QFrnPMEgzfC38ZEjvCFgaNBC0Eg==} - /@yarnpkg/lockfile@1.1.0: + '@vitest/mocker@3.0.4': + resolution: {integrity: sha512-gEef35vKafJlfQbnyOXZ0Gcr9IBUsMTyTLXsEQwuyYAerpHqvXhzdBnDFuHLpFqth3F7b6BaFr4qV/Cs1ULx5A==} + peerDependencies: + msw: ^2.4.9 + vite: ^5.0.0 || ^6.0.0 + peerDependenciesMeta: + msw: + optional: true + vite: + optional: true + + '@vitest/pretty-format@3.0.4': + resolution: {integrity: sha512-ts0fba+dEhK2aC9PFuZ9LTpULHpY/nd6jhAQ5IMU7Gaj7crPCTdCFfgvXxruRBLFS+MLraicCuFXxISEq8C93g==} + + '@vitest/runner@3.0.4': + resolution: {integrity: sha512-dKHzTQ7n9sExAcWH/0sh1elVgwc7OJ2lMOBrAm73J7AH6Pf9T12Zh3lNE1TETZaqrWFXtLlx3NVrLRb5hCK+iw==} + + '@vitest/snapshot@3.0.4': + resolution: {integrity: sha512-+p5knMLwIk7lTQkM3NonZ9zBewzVp9EVkVpvNta0/PlFWpiqLaRcF4+33L1it3uRUCh0BGLOaXPPGEjNKfWb4w==} + + '@vitest/spy@3.0.4': + resolution: {integrity: sha512-sXIMF0oauYyUy2hN49VFTYodzEAu744MmGcPR3ZBsPM20G+1/cSW/n1U+3Yu/zHxX2bIDe1oJASOkml+osTU6Q==} + + '@vitest/ui@3.0.4': + resolution: {integrity: sha512-e+s2F9e9FUURkZ5aFIe1Fi3Y8M7UF6gEuShcaV/ur7y/Ldri+1tzWQ1TJq9Vas42NXnXvCAIrU39Z4U2RyET6g==} + peerDependencies: + vitest: 3.0.4 + + '@vitest/utils@3.0.4': + resolution: {integrity: sha512-8BqC1ksYsHtbWH+DfpOAKrFw3jl3Uf9J7yeFh85Pz52IWuh1hBBtyfEbRNNZNjl8H8A5yMLH9/t+k7HIKzQcZQ==} + + '@vue/compiler-core@3.5.13': + resolution: {integrity: sha512-oOdAkwqUfW1WqpwSYJce06wvt6HljgY3fGeM9NcVA1HaYOij3mZG9Rkysn0OHuyUAGMbEbARIpsG+LPVlBJ5/Q==} + + '@vue/compiler-dom@3.5.13': + resolution: {integrity: sha512-ZOJ46sMOKUjO3e94wPdCzQ6P1Lx/vhp2RSvfaab88Ajexs0AHeV0uasYhi99WPaogmBlRHNRuly8xV75cNTMDA==} + + '@vue/compiler-sfc@3.5.13': + resolution: {integrity: sha512-6VdaljMpD82w6c2749Zhf5T9u5uLBWKnVue6XWxprDobftnletJ8+oel7sexFfM3qIxNmVE7LSFGTpv6obNyaQ==} + + '@vue/compiler-ssr@3.5.13': + resolution: {integrity: sha512-wMH6vrYHxQl/IybKJagqbquvxpWCuVYpoUJfCqFZwa/JY1GdATAQ+TgVtgrwwMZ0D07QhA99rs/EAAWfvG6KpA==} + + '@vue/shared@3.5.13': + resolution: {integrity: sha512-/hnE/qP5ZoGpol0a5mDi45bOd7t3tjYJBjsgCsivow7D48cJeV5l05RD82lPqi7gRiphZM37rnhW1l6ZoCNNnQ==} + + '@yarnpkg/lockfile@1.1.0': resolution: {integrity: sha512-GpSwvyXOcOOlV70vbnzjj4fW5xW/FdUF6nQEt1ENy7m4ZCczi1+/buVUPAqmGfqznsORNFzUMjctTIp8a9tuCQ==} - dev: true - /@yarnpkg/parsers@3.0.0-rc.46: - resolution: {integrity: sha512-aiATs7pSutzda/rq8fnuPwTglyVwjM22bNnK2ZgjrpAjQHSSl3lztd2f9evst1W/qnC58DRz7T7QndUDumAR4Q==} - engines: {node: '>=14.15.0'} - dependencies: - js-yaml: 3.14.1 - tslib: 2.5.0 - dev: true + '@yarnpkg/parsers@3.0.2': + resolution: {integrity: sha512-/HcYgtUSiJiot/XWGLOlGxPYUG65+/31V8oqk17vZLW1xlCoR4PampyePljOxY2n8/3jz9+tIFzICsyGujJZoA==} + engines: {node: '>=18.12.0'} - /@zkochan/js-yaml@0.0.6: - resolution: {integrity: sha512-nzvgl3VfhcELQ8LyVrYOru+UtAy1nrygk2+AGbTm8a5YcO6o8lSjAT+pfg3vJWxIoZKOUhrK6UU7xW/+00kQrg==} + '@zkochan/js-yaml@0.0.7': + resolution: {integrity: sha512-nrUSn7hzt7J6JWgWGz78ZYI8wj+gdIJdk0Ynjpp8l+trkn58Uqsf6RYrYkEK+3X18EX+TNdtJI0WxAtc+L84SQ==} hasBin: true - dependencies: - argparse: 2.0.1 - dev: true - /JSONStream@1.3.5: + JSONStream@1.3.5: resolution: {integrity: sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==} hasBin: true - dependencies: - jsonparse: 1.3.1 - through: 2.3.8 - dev: true - /abbrev@2.0.0: + abbrev@2.0.0: resolution: {integrity: sha512-6/mh1E2u2YgEsCHdY0Yx5oW+61gZU+1vXaoiHHrpKeuRNNgFvS+/jrwHiQhB5apAf5oB7UB7E19ol2R2LKH8hQ==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - dev: true - /acorn-jsx@5.3.2(acorn@8.11.3): + acorn-jsx@5.3.2: resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} peerDependencies: acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 - dependencies: - acorn: 8.11.3 - /acorn-walk@8.3.1: - resolution: {integrity: sha512-TgUZgYvqZprrl7YldZNoa9OciCAyZR+Ejm9eXzKCmjsF5IKp/wgQ7Z/ZpjpGTIUPwrHQIcYeI8qDh4PsEwxMbw==} - engines: {node: '>=0.4.0'} - dev: true - - /acorn@8.11.3: - resolution: {integrity: sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==} + acorn@8.14.0: + resolution: {integrity: sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA==} engines: {node: '>=0.4.0'} hasBin: true - /add-stream@1.0.0: + add-stream@1.0.0: resolution: {integrity: sha512-qQLMr+8o0WC4FZGQTcJiKBVC59JylcPSrTtk6usvmIDFUOCKegapy1VHQwRbFMOFyb/inzUVqHs+eMYKDM1YeQ==} - dev: true - /agent-base@6.0.2: + agent-base@6.0.2: resolution: {integrity: sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==} engines: {node: '>= 6.0.0'} - dependencies: - debug: 4.3.4 - transitivePeerDependencies: - - supports-color - dev: true - /agent-base@7.1.0: - resolution: {integrity: sha512-o/zjMZRhJxny7OyEF+Op8X+efiELC7k7yOjMzgfzVqOzXqkBkWI79YoTdOtsuWd5BWhAGAuOY/Xa6xpiaWXiNg==} + agent-base@7.1.3: + resolution: {integrity: sha512-jRR5wdylq8CkOe6hei19GGZnxM6rBGwFl3Bg0YItGDimvjGtAvdZk4Pu6Cl4u4Igsws4a1fd1Vq3ezrhn4KmFw==} engines: {node: '>= 14'} - dependencies: - debug: 4.3.4 - transitivePeerDependencies: - - supports-color - dev: true - /agentkeepalive@4.2.1: - resolution: {integrity: sha512-Zn4cw2NEqd+9fiSVWMscnjyQ1a8Yfoc5oBajLeo5w+YBHgDUcEBY2hS4YpTz6iN5f/2zQiktcuM6tS8x1p9dpA==} - engines: {node: '>= 8.0.0'} - dependencies: - debug: 4.3.4 - depd: 1.1.2 - humanize-ms: 1.2.1 - transitivePeerDependencies: - - supports-color - dev: true - - /aggregate-error@3.1.0: + aggregate-error@3.1.0: resolution: {integrity: sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==} engines: {node: '>=8'} - dependencies: - clean-stack: 2.2.0 - indent-string: 4.0.0 - dev: true - /ajv@6.12.6: + ajv@6.12.6: resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==} - dependencies: - fast-deep-equal: 3.1.3 - fast-json-stable-stringify: 2.1.0 - json-schema-traverse: 0.4.1 - uri-js: 4.4.1 - /ajv@8.12.0: - resolution: {integrity: sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==} - dependencies: - fast-deep-equal: 3.1.3 - json-schema-traverse: 1.0.0 - require-from-string: 2.0.2 - uri-js: 4.4.1 - dev: true + ajv@8.17.1: + resolution: {integrity: sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==} - /algoliasearch@4.22.0: - resolution: {integrity: sha512-gfceltjkwh7PxXwtkS8KVvdfK+TSNQAWUeNSxf4dA29qW5tf2EGwa8jkJujlT9jLm17cixMVoGNc+GJFO1Mxhg==} - dependencies: - '@algolia/cache-browser-local-storage': 4.22.0 - '@algolia/cache-common': 4.22.0 - '@algolia/cache-in-memory': 4.22.0 - '@algolia/client-account': 4.22.0 - '@algolia/client-analytics': 4.22.0 - '@algolia/client-common': 4.22.0 - '@algolia/client-personalization': 4.22.0 - '@algolia/client-search': 4.22.0 - '@algolia/logger-common': 4.22.0 - '@algolia/logger-console': 4.22.0 - '@algolia/requester-browser-xhr': 4.22.0 - '@algolia/requester-common': 4.22.0 - '@algolia/requester-node-http': 4.22.0 - '@algolia/transporter': 4.22.0 - dev: false + algoliasearch@5.20.0: + resolution: {integrity: sha512-groO71Fvi5SWpxjI9Ia+chy0QBwT61mg6yxJV27f5YFf+Mw+STT75K6SHySpP8Co5LsCrtsbCH5dJZSRtkSKaQ==} + engines: {node: '>= 14.0.0'} - /ansi-align@3.0.1: + amdefine@1.0.1: + resolution: {integrity: sha512-S2Hw0TtNkMJhIabBwIojKL9YHO5T0n5eNqWJ7Lrlel/zDbftQpxpapi8tZs3X1HWa+u+QeydGmzzNU0m09+Rcg==} + engines: {node: '>=0.4.2'} + + ansi-align@3.0.1: resolution: {integrity: sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w==} - dependencies: - string-width: 4.2.3 - /ansi-colors@4.1.3: + ansi-colors@4.1.3: resolution: {integrity: sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==} engines: {node: '>=6'} - dev: true - /ansi-escape-sequences@4.1.0: - resolution: {integrity: sha512-dzW9kHxH011uBsidTXd14JXgzye/YLb2LzeKZ4bsgl/Knwx8AtbSFkkGxagdNOoh0DlqHCmfiEjWKBaqjOanVw==} - engines: {node: '>=8.0.0'} - dependencies: - array-back: 3.1.0 - dev: true - - /ansi-escapes@4.3.2: + ansi-escapes@4.3.2: resolution: {integrity: sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==} engines: {node: '>=8'} - dependencies: - type-fest: 0.21.3 - dev: true - /ansi-regex@3.0.1: + ansi-regex@3.0.1: resolution: {integrity: sha512-+O9Jct8wf++lXxxFc4hc8LsjaSq0HFzzL7cVsw8pRDIPdjKD2mT4ytDZlLuSBZ4cLKZFXIrMGO7DbQCtMJJMKw==} engines: {node: '>=4'} - dev: false - /ansi-regex@5.0.1: + ansi-regex@5.0.1: resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} engines: {node: '>=8'} - /ansi-regex@6.0.1: - resolution: {integrity: sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==} + ansi-regex@6.1.0: + resolution: {integrity: sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==} engines: {node: '>=12'} - /ansi-styles@3.2.1: - resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==} - engines: {node: '>=4'} - dependencies: - color-convert: 1.9.3 - - /ansi-styles@4.3.0: + ansi-styles@4.3.0: resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} engines: {node: '>=8'} - dependencies: - color-convert: 2.0.1 - /ansi-styles@5.2.0: + ansi-styles@5.2.0: resolution: {integrity: sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==} engines: {node: '>=10'} - dev: true - /ansi-styles@6.2.1: + ansi-styles@6.2.1: resolution: {integrity: sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==} engines: {node: '>=12'} - /any-promise@1.3.0: + any-promise@1.3.0: resolution: {integrity: sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==} - dev: false - /anymatch@3.1.3: + anymatch@3.1.3: resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} engines: {node: '>= 8'} - dependencies: - normalize-path: 3.0.0 - picomatch: 2.3.1 - /app-module-path@2.2.0: + app-module-path@2.2.0: resolution: {integrity: sha512-gkco+qxENJV+8vFcDiiFhuoSvRXb2a/QPqpSoWhVz829VNJfOTnELbBmPmNKFxf3xdNnw4DWCkzkDaavcX/1YQ==} - dev: true - /aproba@2.0.0: + aproba@2.0.0: resolution: {integrity: sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ==} - dev: true - /are-we-there-yet@3.0.1: - resolution: {integrity: sha512-QZW4EDmGwlYur0Yyf/b2uGucHQMa8aFUP7eu9ddR73vvhFyt4V0Vl3QHPcTNJ8l6qYOBdxgXdnBXQrHilfRQBg==} - engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} - dependencies: - delegates: 1.0.0 - readable-stream: 3.6.0 - dev: true - - /arg@5.0.2: + arg@5.0.2: resolution: {integrity: sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==} - dev: false - /argparse@1.0.10: + argparse@1.0.10: resolution: {integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==} - dependencies: - sprintf-js: 1.0.3 - /argparse@2.0.1: + argparse@2.0.1: resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} - /array-back@1.0.4: - resolution: {integrity: sha512-1WxbZvrmyhkNoeYcizokbmh5oiOCIfyvGtcqbK3Ls1v1fKcquzxnQSceOx6tzq7jmai2kFLWIpGND2cLhH6TPw==} - engines: {node: '>=0.12.0'} - dependencies: - typical: 2.6.1 - dev: true + aria-query@5.3.2: + resolution: {integrity: sha512-COROpnaoap1E2F000S62r6A60uHZnmlvomhfyT2DlTcrY1OrBKn2UhH7qn5wTC9zMvD0AY7csdPSNwKP+7WiQw==} + engines: {node: '>= 0.4'} - /array-back@2.0.0: - resolution: {integrity: sha512-eJv4pLLufP3g5kcZry0j6WXpIbzYw9GUB4mVJZno9wfwiBxbizTnHCw3VJb07cBihbFX48Y7oSrW9y+gt4glyw==} - engines: {node: '>=4'} - dependencies: - typical: 2.6.1 - dev: true + array-buffer-byte-length@1.0.2: + resolution: {integrity: sha512-LHE+8BuR7RYGDKvnrmcuSq3tDcKv9OFEXQt/HpbZhY7V6h0zlUXutnAD82GiFx9rdieCMjkvtcsPqBwgUl1Iiw==} + engines: {node: '>= 0.4'} - /array-back@3.1.0: - resolution: {integrity: sha512-TkuxA4UCOvxuDK6NZYXCalszEzj+TLszyASooky+i742l9TqsOdYCMJJupxRic61hwquNtppB3hgcuq9SVSH1Q==} - engines: {node: '>=6'} - dev: true - - /array-back@4.0.2: - resolution: {integrity: sha512-NbdMezxqf94cnNfWLL7V/im0Ub+Anbb0IoZhvzie8+4HJ4nMQuzHuy49FkGYCJK2yAloZ3meiB6AVMClbrI1vg==} - engines: {node: '>=8'} - dev: true - - /array-back@5.0.0: - resolution: {integrity: sha512-kgVWwJReZWmVuWOQKEOohXKJX+nD02JAZ54D1RRWlv8L0NebauKAaFxACKzB74RTclt1+WNz5KHaLRDAPZbDEw==} - engines: {node: '>=10'} - dev: true - - /array-back@6.2.2: - resolution: {integrity: sha512-gUAZ7HPyb4SJczXAMUXMGAvI976JoK3qEx9v1FTmeYuJj0IBiaKttG1ydtGKdkfqWkIkouke7nG8ufGy77+Cvw==} - engines: {node: '>=12.17'} - dev: true - - /array-buffer-byte-length@1.0.0: - resolution: {integrity: sha512-LPuwb2P+NrQw3XhxGc36+XSvuBPopovXYTR9Ew++Du9Yb/bx5AzBfrIsBoj0EZUifjQU+sHL21sseZ3jerWO/A==} - dependencies: - call-bind: 1.0.5 - is-array-buffer: 3.0.2 - dev: true - - /array-differ@3.0.0: + array-differ@3.0.0: resolution: {integrity: sha512-THtfYS6KtME/yIAhKjZ2ul7XI96lQGHRputJQHO80LAWQnuGP4iCIN8vdMRboGbIEYBwU33q8Tch1os2+X0kMg==} engines: {node: '>=8'} - dev: true - /array-ify@1.0.0: + array-ify@1.0.0: resolution: {integrity: sha512-c5AMf34bKdvPhQ7tBGhqkgKNUzMr4WUs+WDtC2ZUGOUncbxKMTvqxYctiseW3+L4bA8ec+GcZ6/A/FW4m8ukng==} - dev: true - /array-includes@3.1.7: - resolution: {integrity: sha512-dlcsNBIiWhPkHdOEEKnehA+RNUWDc4UqFtnIXU4uuYDPtA4LDkr7qip2p0VvFAEXNDr0yWZ9PJyIRiGjRLQzwQ==} + array-includes@3.1.8: + resolution: {integrity: sha512-itaWrbYbqpGXkGhZPGUulwnhVf5Hpy1xiCFsGqyIGglbBxmG5vSjxQen3/WGOjPpNEv1RtBLKxbmVXm8HpJStQ==} engines: {node: '>= 0.4'} - dependencies: - call-bind: 1.0.2 - define-properties: 1.2.1 - es-abstract: 1.22.3 - get-intrinsic: 1.2.2 - is-string: 1.0.7 - dev: true - /array-iterate@2.0.1: + array-iterate@2.0.1: resolution: {integrity: sha512-I1jXZMjAgCMmxT4qxXfPXa6SthSoE8h6gkSI9BGGNv8mP8G/v0blc+qFnZu6K42vTOiuME596QaLO0TP3Lk0xg==} - /array-union@2.1.0: + array-union@2.1.0: resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==} engines: {node: '>=8'} - dev: true - /array.prototype.findlastindex@1.2.3: - resolution: {integrity: sha512-LzLoiOMAxvy+Gd3BAq3B7VeIgPdo+Q8hthvKtXybMvRV0jrXfJM/t8mw7nNlpEcVlVUnCnM2KSX4XU5HmpodOA==} + array.prototype.findlastindex@1.2.5: + resolution: {integrity: sha512-zfETvRFA8o7EiNn++N5f/kaCw221hrpGsDmcpndVupkPzEc1Wuf3VgC0qby1BbHs7f5DVYjgtEU2LLh5bqeGfQ==} engines: {node: '>= 0.4'} - dependencies: - call-bind: 1.0.2 - define-properties: 1.2.1 - es-abstract: 1.22.3 - es-shim-unscopables: 1.0.0 - get-intrinsic: 1.2.2 - dev: true - /array.prototype.flat@1.3.2: - resolution: {integrity: sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA==} + array.prototype.flat@1.3.3: + resolution: {integrity: sha512-rwG/ja1neyLqCuGZ5YYrznA62D4mZXg0i1cIskIUKSiqF3Cje9/wXAls9B9s1Wa2fomMsIv8czB8jZcPmxCXFg==} engines: {node: '>= 0.4'} - dependencies: - call-bind: 1.0.2 - define-properties: 1.2.1 - es-abstract: 1.22.3 - es-shim-unscopables: 1.0.0 - dev: true - /array.prototype.flatmap@1.3.2: - resolution: {integrity: sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ==} + array.prototype.flatmap@1.3.3: + resolution: {integrity: sha512-Y7Wt51eKJSyi80hFrJCePGGNo5ktJCslFuboqJsbf57CCPcm5zztluPlc4/aD8sWsKvlwatezpV4U1efk8kpjg==} engines: {node: '>= 0.4'} - dependencies: - call-bind: 1.0.2 - define-properties: 1.2.1 - es-abstract: 1.22.3 - es-shim-unscopables: 1.0.0 - dev: true - /arraybuffer.prototype.slice@1.0.2: - resolution: {integrity: sha512-yMBKppFur/fbHu9/6USUe03bZ4knMYiwFBcyiaXB8Go0qNehwX6inYPzK9U0NeQvGxKthcmHcaR8P5MStSRBAw==} + arraybuffer.prototype.slice@1.0.4: + resolution: {integrity: sha512-BNoCY6SXXPQ7gF2opIP4GBE+Xw7U+pHMYKuzjgCN3GwiaIR09UUeKfheyIry77QtrCBlC0KK0q5/TER/tYh3PQ==} engines: {node: '>= 0.4'} - dependencies: - array-buffer-byte-length: 1.0.0 - call-bind: 1.0.5 - define-properties: 1.2.1 - es-abstract: 1.22.3 - get-intrinsic: 1.2.2 - is-array-buffer: 3.0.2 - is-shared-array-buffer: 1.0.2 - dev: true - /arrify@1.0.1: + arrify@1.0.1: resolution: {integrity: sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA==} engines: {node: '>=0.10.0'} - dev: true - /arrify@2.0.1: + arrify@2.0.1: resolution: {integrity: sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug==} engines: {node: '>=8'} - dev: true - /assertion-error@1.1.0: - resolution: {integrity: sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==} - dev: true + assertion-error@2.0.1: + resolution: {integrity: sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA==} + engines: {node: '>=12'} - /ast-module-types@5.0.0: - resolution: {integrity: sha512-JvqziE0Wc0rXQfma0HZC/aY7URXHFuZV84fJRtP8u+lhp0JYCNd5wJzVXP45t0PH0Mej3ynlzvdyITYIu0G4LQ==} - engines: {node: '>=14'} - dev: true + ast-module-types@6.0.0: + resolution: {integrity: sha512-LFRg7178Fw5R4FAEwZxVqiRI8IxSM+Ay2UBrHoCerXNme+kMMMfz7T3xDGV/c2fer87hcrtgJGsnSOfUrPK6ng==} + engines: {node: '>=18'} - /astring@1.8.4: - resolution: {integrity: sha512-97a+l2LBU3Op3bBQEff79i/E4jMD2ZLFD8rHx9B6mXyB2uQwhJQYfiDqUwtfjF4QA1F2qs//N6Cw8LetMbQjcw==} + astring@1.9.0: + resolution: {integrity: sha512-LElXdjswlqjWrPpJFg1Fx4wpkOCxj1TDHlSV4PlaRxHGWko024xICaa97ZkMfs6DRKlCguiAI+rbXv5GWwXIkg==} hasBin: true - dev: false - /astro@4.0.8(@types/node@20.10.6)(typescript@5.3.3): - resolution: {integrity: sha512-LwbYUfdrfys5mtI6cA5V8UvPRUVVTRQ68uF1ylrEge6BkPcHHJ7qCYLNdjnNPxZDR9bWi1awILJESB6j+w0P4w==} - engines: {node: '>=18.14.1', npm: '>=6.14.0'} + astro@5.1.9: + resolution: {integrity: sha512-QB3MH7Ul3gEvmHXEfvPkGpTZyyB/TBKQbm0kTHpo0BTEB7BvaY+wrcWiGEJBVDpVdEAKY9fM3zrJ0c7hZSXVlw==} + engines: {node: ^18.17.1 || ^20.3.0 || >=22.0.0, npm: '>=9.6.5', pnpm: '>=7.1.0'} hasBin: true - dependencies: - '@astrojs/compiler': 2.3.4 - '@astrojs/internal-helpers': 0.2.1 - '@astrojs/markdown-remark': 4.0.1 - '@astrojs/telemetry': 3.0.4 - '@babel/core': 7.23.7 - '@babel/generator': 7.23.6 - '@babel/parser': 7.23.6 - '@babel/plugin-transform-react-jsx': 7.22.15(@babel/core@7.23.7) - '@babel/traverse': 7.23.7 - '@babel/types': 7.23.6 - '@types/babel__core': 7.20.5 - acorn: 8.11.3 - boxen: 7.1.1 - chokidar: 3.5.3 - ci-info: 4.0.0 - clsx: 2.0.0 - common-ancestor-path: 1.0.1 - cookie: 0.6.0 - debug: 4.3.4 - deterministic-object-hash: 2.0.2 - devalue: 4.3.2 - diff: 5.1.0 - dlv: 1.1.3 - dset: 3.1.3 - es-module-lexer: 1.4.1 - esbuild: 0.19.11 - estree-walker: 3.0.3 - execa: 8.0.1 - fast-glob: 3.3.2 - flattie: 1.1.0 - github-slugger: 2.0.0 - gray-matter: 4.0.3 - html-escaper: 3.0.3 - http-cache-semantics: 4.1.1 - js-yaml: 4.1.0 - kleur: 4.1.5 - magic-string: 0.30.5 - mdast-util-to-hast: 13.0.2 - mime: 3.0.0 - ora: 7.0.1 - p-limit: 5.0.0 - p-queue: 8.0.1 - path-to-regexp: 6.2.1 - preferred-pm: 3.1.2 - probe-image-size: 7.2.3 - prompts: 2.4.2 - rehype: 13.0.1 - resolve: 1.22.8 - semver: 7.5.4 - server-destroy: 1.0.1 - shikiji: 0.6.13 - string-width: 7.0.0 - strip-ansi: 7.1.0 - tsconfck: 3.0.0(typescript@5.3.3) - unist-util-visit: 5.0.0 - vfile: 6.0.1 - vite: 5.2.2(@types/node@20.10.6) - vitefu: 0.2.5(vite@5.2.2) - which-pm: 2.1.1 - yargs-parser: 21.1.1 - zod: 3.22.4 - optionalDependencies: - sharp: 0.33.1 - transitivePeerDependencies: - - '@types/node' - - less - - lightningcss - - sass - - stylus - - sugarss - - supports-color - - terser - - typescript - /async@3.2.4: - resolution: {integrity: sha512-iAB+JbDEGXhyIUavoDl9WP/Jj106Kz9DEn1DPgYw5ruDn0e3Wgi3sKFm55sASdGBNOQB8F59d9qQ7deqrHA8wQ==} - dev: true + async-function@1.0.0: + resolution: {integrity: sha512-hsU18Ae8CDTR6Kgu9DYf0EbCr/a5iGL0rytQDobUcdpYOKokk8LEjVphnXkDkgpi0wYVsqrXuP0bZxJaTqdgoA==} + engines: {node: '>= 0.4'} - /async@3.2.5: - resolution: {integrity: sha512-baNZyqaaLhyLVKm/DlvdW051MSgO6b8eVfIezl9E5PqWxFgzLm/wQntEW4zOytVburDEr0JlALEpdOFwvErLsg==} - dev: true + async@0.2.10: + resolution: {integrity: sha512-eAkdoKxU6/LkKDBzLpT+t6Ff5EtfSF4wx1WfJiPEEV7WNLnDaRXk0oVysiEPm262roaachGexwUv94WhSgN5TQ==} - /asynckit@0.4.0: + async@3.2.6: + resolution: {integrity: sha512-htCUDlxyyCLMgaM3xXg0C0LW2xqfuQ6p05pCEIsXuyQ+a1koYKTuBMzRNwmybfLgvJDMd0r1LTn4+E0Ti6C2AA==} + + asynckit@0.4.0: resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==} - dev: true - /at-least-node@1.0.0: + at-least-node@1.0.0: resolution: {integrity: sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==} engines: {node: '>= 4.0.0'} - dev: true - /automation-events@5.0.0: - resolution: {integrity: sha512-SkYa2YBwgRUJNsR5v6GxeJwP5IGnYtOMW37coplTOWMUpDYYrk5j8gGOhYa765rchRln/HssFzMAck/2P6zTFw==} - engines: {node: '>=14.15.4'} - dependencies: - '@babel/runtime': 7.20.13 - tslib: 2.5.0 - dev: false + automation-events@7.1.5: + resolution: {integrity: sha512-1t/XcUE/nhHtAyePNZHQMU3/Ka9E0CB1aA8FpzSwc1EBHMsZBtX6H5sBNngCL7pmlxoaDrpcwwHE7Kd6lkYoWA==} + engines: {node: '>=18.2.0'} - /autoprefixer@10.4.16(postcss@8.4.32): - resolution: {integrity: sha512-7vd3UC6xKp0HLfua5IjZlcXvGAGy7cBAXTg2lyQ/8WpNhd6SiZ8Be+xm3FyBSYJx5GKcpRCzBh7RH4/0dnY+uQ==} + autoprefixer@10.4.20: + resolution: {integrity: sha512-XY25y5xSv/wEoqzDyXXME4AFfkZI0P23z6Fs3YgymDnKJkCGOnkL0iTxCa85UTqaSgfcqyf3UA6+c7wUvx/16g==} engines: {node: ^10 || ^12 || >=14} hasBin: true peerDependencies: postcss: ^8.1.0 - dependencies: - browserslist: 4.22.1 - caniuse-lite: 1.0.30001559 - fraction.js: 4.3.7 - normalize-range: 0.1.2 - picocolors: 1.0.0 - postcss: 8.4.32 - postcss-value-parser: 4.2.0 - dev: false - /available-typed-arrays@1.0.5: - resolution: {integrity: sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==} + available-typed-arrays@1.0.7: + resolution: {integrity: sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==} engines: {node: '>= 0.4'} - dev: true - /axios@1.6.3: - resolution: {integrity: sha512-fWyNdeawGam70jXSVlKl+SUNVcL6j6W79CuSIPfi6HnDUmSCH6gyUys/HrqHeA/wU0Az41rRgean494d0Jb+ww==} - dependencies: - follow-redirects: 1.15.2 - form-data: 4.0.0 - proxy-from-env: 1.1.0 - transitivePeerDependencies: - - debug - dev: true + axios@1.7.9: + resolution: {integrity: sha512-LhLcE7Hbiryz8oMDdDptSrWowmB4Bl6RCt6sIJKpRB4XtVf0iEgewX3au/pJqm+Py1kCASkb/FFKjxQaLtxJvw==} - /babel-plugin-add-module-exports@0.2.1: + axobject-query@4.1.0: + resolution: {integrity: sha512-qIj0G9wZbMGNLjLmg1PT6v2mE9AH2zlnADJD/2tC6E00hgmhUOfEB6greHPAfLRSufHqROIUTkw6E+M3lH0PTQ==} + engines: {node: '>= 0.4'} + + babel-plugin-add-module-exports@0.2.1: resolution: {integrity: sha512-3AN/9V/rKuv90NG65m4tTHsI04XrCKsWbztIcW7a8H5iIN7WlvWucRtVV0V/rT4QvtA11n5Vmp20fLwfMWqp6g==} - dev: false - /babel-plugin-polyfill-corejs2@0.4.7(@babel/core@7.23.7): - resolution: {integrity: sha512-LidDk/tEGDfuHW2DWh/Hgo4rmnw3cduK6ZkOI1NPFceSK3n/yAGeOsNT7FLnSGHkXj3RHGSEVkN3FsCTY6w2CQ==} + babel-plugin-polyfill-corejs2@0.4.12: + resolution: {integrity: sha512-CPWT6BwvhrTO2d8QVorhTCQw9Y43zOu7G9HigcfxvepOU6b8o3tcWad6oVgZIsZCTt42FFv97aA7ZJsbM4+8og==} peerDependencies: '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 - dependencies: - '@babel/compat-data': 7.23.5 - '@babel/core': 7.23.7 - '@babel/helper-define-polyfill-provider': 0.4.4(@babel/core@7.23.7) - semver: 6.3.1 - transitivePeerDependencies: - - supports-color - dev: true - /babel-plugin-polyfill-corejs3@0.8.7(@babel/core@7.23.7): - resolution: {integrity: sha512-KyDvZYxAzkC0Aj2dAPyDzi2Ym15e5JKZSK+maI7NAwSqofvuFglbSsxE7wUOvTg9oFVnHMzVzBKcqEb4PJgtOA==} + babel-plugin-polyfill-corejs3@0.10.6: + resolution: {integrity: sha512-b37+KR2i/khY5sKmWNVQAnitvquQbNdWy6lJdsr0kmquCKEEUgMKK4SboVM3HtfnZilfjr4MMQ7vY58FVWDtIA==} peerDependencies: '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 - dependencies: - '@babel/core': 7.23.7 - '@babel/helper-define-polyfill-provider': 0.4.4(@babel/core@7.23.7) - core-js-compat: 3.35.0 - transitivePeerDependencies: - - supports-color - dev: true - /babel-plugin-polyfill-regenerator@0.5.4(@babel/core@7.23.7): - resolution: {integrity: sha512-S/x2iOCvDaCASLYsOOgWOq4bCfKYVqvO/uxjkaYyZ3rVsVE3CeAI/c84NpyuBBymEgNvHgjEot3a9/Z/kXvqsg==} + babel-plugin-polyfill-regenerator@0.6.3: + resolution: {integrity: sha512-LiWSbl4CRSIa5x/JAU6jZiG9eit9w6mz+yVMFwDE83LAWvt0AfGBoZ7HS/mkhrKuh2ZlzfVZYKoLjXdqw6Yt7Q==} peerDependencies: '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 - dependencies: - '@babel/core': 7.23.7 - '@babel/helper-define-polyfill-provider': 0.4.4(@babel/core@7.23.7) - transitivePeerDependencies: - - supports-color - dev: true - /bail@2.0.2: + bail@2.0.2: resolution: {integrity: sha512-0xO6mYd7JB2YesxDKplafRpsiOzPt9V02ddPCLbY1xYGPOX24NTyN50qnUxgCPcSoYMhKpAuBTjQoRZCAkUDRw==} - /balanced-match@1.0.2: + balanced-match@1.0.2: resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} - /base-64@1.0.0: + base-64@1.0.0: resolution: {integrity: sha512-kwDPIFCGx0NZHog36dj+tHiwP4QMzsZ3AgMViUBKI0+V5n4U0ufTCUMhnQ04diaRI8EX/QcPfql7zlhZ7j4zgg==} - /base64-js@1.5.1: + base64-js@1.5.1: resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==} - /before-after-hook@2.2.3: + before-after-hook@2.2.3: resolution: {integrity: sha512-NzUnlZexiaH/46WDhANlyR2bXRopNg4F/zuSA3OpZnllCUgRaOF2znDioDWrmbNVsuZk6l9pMquQB38cfBZwkQ==} - dev: true - /binary-extensions@2.2.0: - resolution: {integrity: sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==} + bin-links@4.0.4: + resolution: {integrity: sha512-cMtq4W5ZsEwcutJrVId+a/tjt8GSbS+h0oNkdl6+6rBuEv8Ot33Bevj5KPm40t309zuhVic8NjpuL42QCiJWWA==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + + binary-extensions@2.3.0: + resolution: {integrity: sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==} engines: {node: '>=8'} - /bl@4.1.0: + bl@4.1.0: resolution: {integrity: sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==} - dependencies: - buffer: 5.7.1 - inherits: 2.0.4 - readable-stream: 3.6.0 - dev: true - /bl@5.1.0: - resolution: {integrity: sha512-tv1ZJHLfTDnXE6tMHv73YgSJaWR2AFuPwMntBe7XL/GBFHnT0CLnsHMogfk5+GzCDC5ZWarSCYaIGATZt9dNsQ==} - dependencies: - buffer: 6.0.3 - inherits: 2.0.4 - readable-stream: 3.6.0 - - /bluebird@3.7.2: + bluebird@3.7.2: resolution: {integrity: sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==} - dev: true - /boxen@7.1.1: - resolution: {integrity: sha512-2hCgjEmP8YLWQ130n2FerGv7rYpfBmnmp9Uy2Le1vge6X3gZIfSmEzP5QTDElFxcvVcXlEn8Aq6MU/PZygIOog==} - engines: {node: '>=14.16'} - dependencies: - ansi-align: 3.0.1 - camelcase: 7.0.1 - chalk: 5.3.0 - cli-boxes: 3.0.0 - string-width: 5.1.2 - type-fest: 2.19.0 - widest-line: 4.0.1 - wrap-ansi: 8.1.0 + boxen@8.0.1: + resolution: {integrity: sha512-F3PH5k5juxom4xktynS7MoFY+NUWH5LC4CnH11YB8NPew+HLpmBLCybSAEyb2F+4pRXhuhWqFesoQd6DAyc2hw==} + engines: {node: '>=18'} - /brace-expansion@1.1.11: + brace-expansion@1.1.11: resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} - dependencies: - balanced-match: 1.0.2 - concat-map: 0.0.1 - /brace-expansion@2.0.1: + brace-expansion@2.0.1: resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==} - dependencies: - balanced-match: 1.0.2 - dev: true - /braces@3.0.2: - resolution: {integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==} + braces@3.0.3: + resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==} engines: {node: '>=8'} - dependencies: - fill-range: 7.0.1 - /browserslist@4.22.1: - resolution: {integrity: sha512-FEVc202+2iuClEhZhrWy6ZiAcRLvNMyYcxZ8raemul1DYVOVdFsbqckWLdsixQZCpJlwe77Z3UTalE7jsjnKfQ==} + browserslist@4.24.4: + resolution: {integrity: sha512-KDi1Ny1gSePi1vm0q4oxSF8b4DR44GF4BbmS2YdhPLOEqd8pDviZOGH/GsmRwoWJ2+5Lr085X7naowMwKHDG1A==} engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} hasBin: true - dependencies: - caniuse-lite: 1.0.30001559 - electron-to-chromium: 1.4.574 - node-releases: 2.0.13 - update-browserslist-db: 1.0.13(browserslist@4.22.1) - dev: false - /browserslist@4.22.2: - resolution: {integrity: sha512-0UgcrvQmBDvZHFGdYUehrCNIazki7/lUP3kkoi/r3YB2amZbFM9J43ZRkJTXBUZK4gmx56+Sqk9+Vs9mwZx9+A==} - engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} - hasBin: true - dependencies: - caniuse-lite: 1.0.30001572 - electron-to-chromium: 1.4.616 - node-releases: 2.0.14 - update-browserslist-db: 1.0.13(browserslist@4.22.2) - - /buffer-alloc-unsafe@1.1.0: + buffer-alloc-unsafe@1.1.0: resolution: {integrity: sha512-TEM2iMIEQdJ2yjPJoSIsldnleVaAk1oW3DBVUykyOLsEsFmEc9kn+SFFPz+gl54KQNxlDnAwCXosOS9Okx2xAg==} - dev: false - /buffer-alloc@1.2.0: + buffer-alloc@1.2.0: resolution: {integrity: sha512-CFsHQgjtW1UChdXgbyJGtnm+O/uLQeZdtbDo8mfUgYXCHSM1wgrVxXm6bSyrUuErEb+4sYVGCzASBRot7zyrow==} - dependencies: - buffer-alloc-unsafe: 1.1.0 - buffer-fill: 1.0.0 - dev: false - /buffer-fill@1.0.0: + buffer-fill@1.0.0: resolution: {integrity: sha512-T7zexNBwiiaCOGDg9xNX9PBmjrubblRkENuptryuI64URkXDFum9il/JGL8Lm8wYfAXpredVXXZz7eMHilimiQ==} - dev: false - /buffer-from@1.1.2: + buffer-from@1.1.2: resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==} - /buffer@5.7.1: + buffer@5.7.1: resolution: {integrity: sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==} - dependencies: - base64-js: 1.5.1 - ieee754: 1.2.1 - dev: true - /buffer@6.0.3: - resolution: {integrity: sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==} - dependencies: - base64-js: 1.5.1 - ieee754: 1.2.1 - - /builtin-modules@3.3.0: + builtin-modules@3.3.0: resolution: {integrity: sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==} engines: {node: '>=6'} - dev: true - /builtins@1.0.3: - resolution: {integrity: sha512-uYBjakWipfaO/bXI7E8rq6kpwHRZK5cNYrUv2OzZSI/FvmdMyXJ2tG9dKcjEC5YHmHpUAwsargWIZNWdxb/bnQ==} - dev: true + builtins@5.1.0: + resolution: {integrity: sha512-SW9lzGTLvWTP1AY8xeAMZimqDrIaSdLQUcVr9DMef51niJ022Ri87SwRRKYm4A6iHfkPaiVUu/Duw2Wc4J7kKg==} - /builtins@5.0.1: - resolution: {integrity: sha512-qwVpFEHNfhYJIzNRBvd2C1kyo6jz3ZSMPyyuR47OPdiKWlbYnZNyDWuyR175qDnAJLiCo5fBBqPb3RiXgWlkOQ==} - dependencies: - semver: 7.5.4 - - /byte-size@8.1.1: + byte-size@8.1.1: resolution: {integrity: sha512-tUkzZWK0M/qdoLEqikxBWe4kumyuwjl3HO6zHTr4yEI23EojPtLYXdG1+AQY7MN0cGyNDvEaJ8wiYQm6P2bPxg==} engines: {node: '>=12.17'} - dev: true - /cac@6.7.14: + cac@6.7.14: resolution: {integrity: sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==} engines: {node: '>=8'} - dev: true - /cacache@17.0.6: - resolution: {integrity: sha512-ixcYmEBExFa/+ajIPjcwypxL97CjJyOsH9A/W+4qgEPIpJvKlC+HmVY8nkIck6n3PwUTdgq9c489niJGwl+5Cw==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - dependencies: - '@npmcli/fs': 3.1.0 - fs-minipass: 3.0.2 - glob: 10.2.2 - lru-cache: 7.18.3 - minipass: 5.0.0 - minipass-collect: 1.0.2 - minipass-flush: 1.0.5 - minipass-pipeline: 1.2.4 - p-map: 4.0.0 - promise-inflight: 1.0.1 - ssri: 10.0.4 - tar: 6.1.13 - unique-filename: 3.0.0 - transitivePeerDependencies: - - bluebird - dev: true - - /cacache@18.0.1: - resolution: {integrity: sha512-g4Uf2CFZPaxtJKre6qr4zqLDOOPU7bNVhWjlNhvzc51xaTOx2noMOLhfFkTAqwtrAZAKQUuDfyjitzilpA8WsQ==} + cacache@18.0.4: + resolution: {integrity: sha512-B+L5iIa9mgcjLbliir2th36yEwPftrzteHYujzsx3dFP/31GCHcIeS8f5MGd80odLOjaOvSpU3EEAmRQptkxLQ==} engines: {node: ^16.14.0 || >=18.0.0} - dependencies: - '@npmcli/fs': 3.1.0 - fs-minipass: 3.0.2 - glob: 10.2.2 - lru-cache: 10.1.0 - minipass: 7.0.4 - minipass-collect: 2.0.1 - minipass-flush: 1.0.5 - minipass-pipeline: 1.2.4 - p-map: 4.0.0 - ssri: 10.0.4 - tar: 6.1.13 - unique-filename: 3.0.0 - dev: true - /cache-point@2.0.0: - resolution: {integrity: sha512-4gkeHlFpSKgm3vm2gJN5sPqfmijYRFYCQ6tv5cLw0xVmT6r1z1vd4FNnpuOREco3cBs1G709sZ72LdgddKvL5w==} - engines: {node: '>=8'} - dependencies: - array-back: 4.0.2 - fs-then-native: 2.0.0 - mkdirp2: 1.0.5 - dev: true + call-bind-apply-helpers@1.0.1: + resolution: {integrity: sha512-BhYE+WDaywFg2TBWYNXAE+8B1ATnThNBqXHP5nQu0jWJdVvY2hvkpyB3qOmtmDePiS5/BDQ8wASEWGMWRG148g==} + engines: {node: '>= 0.4'} - /call-bind@1.0.2: - resolution: {integrity: sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==} - dependencies: - function-bind: 1.1.2 - get-intrinsic: 1.2.2 - dev: true + call-bind@1.0.8: + resolution: {integrity: sha512-oKlSFMcMwpUg2ednkhQ454wfWiU/ul3CkJe/PEHcTKuiX6RpbehUiFMXu13HalGZxfUwCQzZG747YXBn1im9ww==} + engines: {node: '>= 0.4'} - /call-bind@1.0.5: - resolution: {integrity: sha512-C3nQxfFZxFRVoJoGKKI8y3MOEo129NQ+FgQ08iye+Mk4zNZZGdjfs06bVTr+DBSlA66Q2VEcMki/cUCP4SercQ==} - dependencies: - function-bind: 1.1.2 - get-intrinsic: 1.2.2 - set-function-length: 1.1.1 - dev: true + call-bound@1.0.3: + resolution: {integrity: sha512-YTd+6wGlNlPxSuri7Y6X8tY2dmm12UMH66RpKMhiX6rsk5wXXnYgbUcOt8kiS31/AjfoTOvCsE+w8nZQLQnzHA==} + engines: {node: '>= 0.4'} - /callsites@3.1.0: + callsites@3.1.0: resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} engines: {node: '>=6'} - /camelcase-css@2.0.1: + camelcase-css@2.0.1: resolution: {integrity: sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==} engines: {node: '>= 6'} - dev: false - /camelcase-keys@6.2.2: + camelcase-keys@6.2.2: resolution: {integrity: sha512-YrwaA0vEKazPBkn0ipTiMpSajYDSe+KjQfrjhcBMxJt/znbvlHd8Pw/Vamaz5EB4Wfhs3SUR3Z9mwRu/P3s3Yg==} engines: {node: '>=8'} - dependencies: - camelcase: 5.3.1 - map-obj: 4.3.0 - quick-lru: 4.0.1 - dev: true - /camelcase@5.3.1: + camelcase@5.3.1: resolution: {integrity: sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==} engines: {node: '>=6'} - /camelcase@7.0.1: - resolution: {integrity: sha512-xlx1yCK2Oc1APsPXDL2LdlNP6+uu8OCDdhOBSVT279M/S+y75O30C2VuD8T2ogdePBBl7PfPF4504tnLgX3zfw==} - engines: {node: '>=14.16'} + camelcase@8.0.0: + resolution: {integrity: sha512-8WB3Jcas3swSvjIeA2yvCJ+Miyz5l1ZmB6HFb9R1317dt9LCQoswg/BGrmAmkWVEszSrrg4RwmO46qIm2OEnSA==} + engines: {node: '>=16'} - /caniuse-lite@1.0.30001559: - resolution: {integrity: sha512-cPiMKZgqgkg5LY3/ntGeLFUpi6tzddBNS58A4tnTgQw1zON7u2sZMU7SzOeVH4tj20++9ggL+V6FDOFMTaFFYA==} - dev: false + caniuse-lite@1.0.30001695: + resolution: {integrity: sha512-vHyLade6wTgI2u1ec3WQBxv+2BrTERV28UXQu9LO6lZ9pYeMk34vjXFLOxo1A4UBA8XTL4njRQZdno/yYaSmWw==} - /caniuse-lite@1.0.30001572: - resolution: {integrity: sha512-1Pbh5FLmn5y4+QhNyJE9j3/7dK44dGB83/ZMjv/qJk86TvDbjk0LosiZo0i0WB0Vx607qMX9jYrn1VLHCkN4rw==} - - /catharsis@0.9.0: + catharsis@0.9.0: resolution: {integrity: sha512-prMTQVpcns/tzFgFVkVp6ak6RykZyWb3gu8ckUpd6YkTlacOd3DXGJjIpD4Q6zJirizvaiAjSSHlOsA+6sNh2A==} engines: {node: '>= 10'} - dependencies: - lodash: 4.17.21 - dev: true - /ccount@2.0.1: + ccount@2.0.1: resolution: {integrity: sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==} - /chai@4.3.10: - resolution: {integrity: sha512-0UXG04VuVbruMUYbJ6JctvH0YnC/4q3/AkT18q4NaITo91CUm0liMS9VqzT9vZhVQ/1eqPanMWjBM+Juhfb/9g==} - engines: {node: '>=4'} - dependencies: - assertion-error: 1.1.0 - check-error: 1.0.3 - deep-eql: 4.1.3 - get-func-name: 2.0.2 - loupe: 2.3.7 - pathval: 1.1.1 - type-detect: 4.0.8 - dev: true + chai@5.1.2: + resolution: {integrity: sha512-aGtmf24DW6MLHHG5gCx4zaI3uBq3KRtxeVs0DjFH6Z0rDNbsvTxFASFvdj79pxjxZ8/5u3PIiN3IwEIQkiiuPw==} + engines: {node: '>=12'} - /chalk@2.4.2: - resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==} - engines: {node: '>=4'} - dependencies: - ansi-styles: 3.2.1 - escape-string-regexp: 1.0.5 - supports-color: 5.5.0 - - /chalk@4.1.0: + chalk@4.1.0: resolution: {integrity: sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==} engines: {node: '>=10'} - dependencies: - ansi-styles: 4.3.0 - supports-color: 7.2.0 - dev: true - /chalk@4.1.2: + chalk@4.1.2: resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} engines: {node: '>=10'} - dependencies: - ansi-styles: 4.3.0 - supports-color: 7.2.0 - /chalk@5.3.0: - resolution: {integrity: sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==} + chalk@5.4.1: + resolution: {integrity: sha512-zgVZuo2WcZgfUEmsn6eO3kINexW8RAE4maiQ8QNs8CtpPCSyMiYsULR3HQYkm3w8FIA3SberyMJMSldGsW+U3w==} engines: {node: ^12.17.0 || ^14.13 || >=16.0.0} - /character-entities-html4@2.1.0: + character-entities-html4@2.1.0: resolution: {integrity: sha512-1v7fgQRj6hnSwFpq1Eu0ynr/CDEw0rXo2B61qXrLNdHZmPKgb7fqS1a2JwF0rISo9q77jDI8VMEHoApn8qDoZA==} - /character-entities-legacy@3.0.0: + character-entities-legacy@3.0.0: resolution: {integrity: sha512-RpPp0asT/6ufRm//AJVwpViZbGM/MkjQFxJccQRHmISF/22NBtsHqAWmL+/pmkPWoIUJdWyeVleTl1wydHATVQ==} - /character-entities@2.0.2: + character-entities@2.0.2: resolution: {integrity: sha512-shx7oQ0Awen/BRIdkjkvz54PnEEI/EjwXDSIZp86/KKdbafHh1Df/RYGBhn4hbe2+uKC9FnT5UCEdyPz3ai9hQ==} - /character-reference-invalid@2.0.1: + character-reference-invalid@2.0.1: resolution: {integrity: sha512-iBZ4F4wRbyORVsu0jPV7gXkOsGYjGHPmAyv+HiHG8gi5PtC9KI2j1+v8/tlibRvjoWX027ypmG/n0HtO5t7unw==} - dev: false - /chardet@0.7.0: + chardet@0.7.0: resolution: {integrity: sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==} - dev: true - /check-error@1.0.3: - resolution: {integrity: sha512-iKEoDYaRmd1mxM90a2OEfWhjsjPpYPuQ+lMYsoxB126+t8fw7ySEO48nmDg5COTjxDI65/Y2OWpeEHk3ZOe8zg==} - dependencies: - get-func-name: 2.0.2 - dev: true + check-error@2.1.1: + resolution: {integrity: sha512-OAlb+T7V4Op9OwdkjmguYRqncdlx5JiofwOAUkmTF+jNdHwzTaTs4sRAGpzLF3oOz5xAyDGrPgeIDFQmDOTiJw==} + engines: {node: '>= 16'} - /chokidar@3.5.3: - resolution: {integrity: sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==} + chokidar@3.6.0: + resolution: {integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==} engines: {node: '>= 8.10.0'} - dependencies: - anymatch: 3.1.3 - braces: 3.0.2 - glob-parent: 5.1.2 - is-binary-path: 2.1.0 - is-glob: 4.0.3 - normalize-path: 3.0.0 - readdirp: 3.6.0 - optionalDependencies: - fsevents: 2.3.3 - /chord-voicings@0.0.1: + chord-voicings@0.0.1: resolution: {integrity: sha512-SutgB/4ynkkuiK6qdQ/k3QvCFcH0Vj8Ch4t6LbRyRQbVzP/TOztiCk3kvXd516UZ6fqk7ijDRELEFcKN+6V8sA==} - dependencies: - '@tonaljs/tonal': 4.10.0 - dev: false - /chownr@1.1.4: + chownr@1.1.4: resolution: {integrity: sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==} - dev: true - /chownr@2.0.0: + chownr@2.0.0: resolution: {integrity: sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==} engines: {node: '>=10'} - dev: true - /ci-info@3.9.0: + ci-info@3.9.0: resolution: {integrity: sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==} engines: {node: '>=8'} - /ci-info@4.0.0: - resolution: {integrity: sha512-TdHqgGf9odd8SXNuxtUBVx8Nv+qZOejE6qyqiy5NtbYYQOeFa6zmHkxlPzmaLxWWHsU6nJmB7AETdVPi+2NBUg==} + ci-info@4.1.0: + resolution: {integrity: sha512-HutrvTNsF48wnxkzERIXOe5/mlcfFcbfCmwcg6CJnizbSue78AbDt+1cgl26zwn61WFxhcPykPfZrbqjGmBb4A==} engines: {node: '>=8'} - /claviature@0.1.0: + claviature@0.1.0: resolution: {integrity: sha512-Ai12axNwQ7x/F9QAj64RYKsgvi5Y33+X3GUSKAC/9s/adEws8TSSc0efeiqhKNGKBo6rT/c+CSCwSXzXxwxZzQ==} - dev: false - /clean-stack@2.2.0: + cldr-plurals@1.0.0: + resolution: {integrity: sha512-xGkehDsjj/ng1LtYiAzdiqDgqTQ/qmWafDlB6R8CfXbpXe4Ge2Tl4l7gxiA+yaD1WCTP3EVfwerdmVwfco7vxw==} + + clean-stack@2.2.0: resolution: {integrity: sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==} engines: {node: '>=6'} - dev: true - /cli-boxes@3.0.0: + cli-boxes@3.0.0: resolution: {integrity: sha512-/lzGpEWL/8PfI0BmBOPRwp0c/wFNX1RdUML3jK/RcSBA9T8mZDdQpqYBKtCFTOfQbwPqWEOpjqW+Fnayc0969g==} engines: {node: '>=10'} - /cli-cursor@3.1.0: + cli-cursor@3.1.0: resolution: {integrity: sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==} engines: {node: '>=8'} - dependencies: - restore-cursor: 3.1.0 - dev: true - /cli-cursor@4.0.0: - resolution: {integrity: sha512-VGtlMu3x/4DOtIUwEkRezxUZ2lBacNJCHash0N0WeZDBS+7Ux1dm3XWAgWYxLJFMMdOeXMHXorshEFhbMSGelg==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - dependencies: - restore-cursor: 4.0.0 - - /cli-spinners@2.6.1: + cli-spinners@2.6.1: resolution: {integrity: sha512-x/5fWmGMnbKQAaNwN+UZlV79qBLM9JFnJuJ03gIi5whrob0xV0ofNVHy9DhwGdsMJQc2OKv0oGmLzvaqvAVv+g==} engines: {node: '>=6'} - dev: true - /cli-spinners@2.9.1: - resolution: {integrity: sha512-jHgecW0pxkonBJdrKsqxgRX9AcG+u/5k0Q7WPDfi8AogLAdwxEkyYYNWwZ5GvVFoFx2uiY1eNcSK00fh+1+FyQ==} + cli-spinners@2.9.2: + resolution: {integrity: sha512-ywqV+5MmyL4E7ybXgKys4DugZbX0FC6LnwrhjuykIjnK9k8OQacQ7axGKnjDXWNhns0xot3bZI5h55H8yo9cJg==} engines: {node: '>=6'} - /cli-width@3.0.0: + cli-width@3.0.0: resolution: {integrity: sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw==} engines: {node: '>= 10'} - dev: true - /client-only@0.0.1: - resolution: {integrity: sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA==} - dev: false - - /cliui@6.0.0: + cliui@6.0.0: resolution: {integrity: sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==} - dependencies: - string-width: 4.2.3 - strip-ansi: 6.0.1 - wrap-ansi: 6.2.0 - dev: false - /cliui@7.0.4: + cliui@7.0.4: resolution: {integrity: sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==} - dependencies: - string-width: 4.2.3 - strip-ansi: 6.0.1 - wrap-ansi: 7.0.0 - dev: true - /cliui@8.0.1: + cliui@8.0.1: resolution: {integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==} engines: {node: '>=12'} - dependencies: - string-width: 4.2.3 - strip-ansi: 6.0.1 - wrap-ansi: 7.0.0 - dev: true - /clone-buffer@1.0.0: + clone-buffer@1.0.0: resolution: {integrity: sha512-KLLTJWrvwIP+OPfMn0x2PheDEP20RPUcGXj/ERegTgdmPEZylALQldygiqrPPu8P45uNuPs7ckmReLY6v/iA5g==} engines: {node: '>= 0.10'} - dev: false - /clone-deep@4.0.1: + clone-deep@4.0.1: resolution: {integrity: sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==} engines: {node: '>=6'} - dependencies: - is-plain-object: 2.0.4 - kind-of: 6.0.3 - shallow-clone: 3.0.1 - dev: true - /clone-stats@1.0.0: + clone-stats@1.0.0: resolution: {integrity: sha512-au6ydSpg6nsrigcZ4m8Bc9hxjeW+GJ8xh5G3BJCMt4WXe1H10UNaVOamqQTmrx1kjVuxAHIQSNU6hY4Nsn9/ag==} - dev: false - /clone@1.0.4: + clone@1.0.4: resolution: {integrity: sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==} engines: {node: '>=0.8'} - dev: true - /clone@2.1.2: + clone@2.1.2: resolution: {integrity: sha512-3Pe/CF1Nn94hyhIYpjtiLhdCoEoz0DqQ+988E9gmeEdQZlojxnOb74wctFyuwWQHzqyf9X7C7MG8juUpqBJT8w==} engines: {node: '>=0.8'} - dev: false - /cloneable-readable@1.1.3: + cloneable-readable@1.1.3: resolution: {integrity: sha512-2EF8zTQOxYq70Y4XKtorQupqF0m49MBz2/yf5Bj+MHjvpG3Hy7sImifnqD6UA+TKYxeSV+u6qqQPawN5UvnpKQ==} - dependencies: - inherits: 2.0.4 - process-nextick-args: 2.0.1 - readable-stream: 2.3.7 - dev: false - /clsx@2.0.0: - resolution: {integrity: sha512-rQ1+kcj+ttHG0MKVGBUXwayCCF1oh39BF5COIpRzuCEv8Mwjv0XucrI2ExNTOn9IlLifGClWQcU9BrZORvtw6Q==} + clsx@2.1.1: + resolution: {integrity: sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==} engines: {node: '>=6'} - /cmd-shim@6.0.1: - resolution: {integrity: sha512-S9iI9y0nKR4hwEQsVWpyxld/6kRfGepGfzff83FcaiEBpmvlbA2nnGe7Cylgrx2f/p1P5S5wpRm9oL8z1PbS3Q==} + cmd-shim@6.0.3: + resolution: {integrity: sha512-FMabTRlc5t5zjdenF6mS0MBeFZm0XqHqeOkcskKFb/LYCcRQ5fVgLOHVc4Lq9CqABd9zhjwPjMBCJvMCziSVtA==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - dev: true - /collapse-white-space@2.1.0: + collapse-white-space@2.1.0: resolution: {integrity: sha512-loKTxY1zCOuG4j9f6EPnuyyYkf58RnhhWTvRoZEokgB+WbdXehfjFviyOVYkqzEWz1Q5kRiZdBYS5SwxbQYwzw==} - dev: false - /collect-all@1.0.4: - resolution: {integrity: sha512-RKZhRwJtJEP5FWul+gkSMEnaK6H3AGPTTWOiRimCcs+rc/OmQE3Yhy1Q7A7KsdkG3ZXVdZq68Y6ONSdvkeEcKA==} - engines: {node: '>=0.10.0'} - dependencies: - stream-connect: 1.0.2 - stream-via: 1.0.4 - dev: true - - /color-convert@1.9.3: - resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==} - dependencies: - color-name: 1.1.3 - - /color-convert@2.0.1: + color-convert@2.0.1: resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} engines: {node: '>=7.0.0'} - dependencies: - color-name: 1.1.4 - /color-name@1.1.3: - resolution: {integrity: sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==} - - /color-name@1.1.4: + color-name@1.1.4: resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} - /color-string@1.9.1: + color-string@1.9.1: resolution: {integrity: sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==} - requiresBuild: true - dependencies: - color-name: 1.1.4 - simple-swizzle: 0.2.2 - /color-support@1.1.3: + color-support@1.1.3: resolution: {integrity: sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==} hasBin: true - dev: true - /color@4.2.3: + color@4.2.3: resolution: {integrity: sha512-1rXeuUUiGGrykh+CeBdu5Ie7OJwinCgQY0bc7GCRxy5xVHy+moaqkpL/jqQq0MtQOeYcrqEz4abc5f0KtU7W4A==} engines: {node: '>=12.5.0'} - requiresBuild: true - dependencies: - color-convert: 2.0.1 - color-string: 1.9.1 - /columnify@1.6.0: + columnify@1.6.0: resolution: {integrity: sha512-lomjuFZKfM6MSAnV9aCZC9sc0qGbmZdfygNv+nCpqVkSKdCxCklLtd16O0EILGkImHw9ZpHkAnHaB+8Zxq5W6Q==} engines: {node: '>=8.0.0'} - dependencies: - strip-ansi: 6.0.1 - wcwidth: 1.0.1 - dev: true - /combined-stream@1.0.8: + combined-stream@1.0.8: resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==} engines: {node: '>= 0.8'} - dependencies: - delayed-stream: 1.0.0 - dev: true - /comlink@4.3.1: - resolution: {integrity: sha512-+YbhUdNrpBZggBAHWcgQMLPLH1KDF3wJpeqrCKieWQ8RL7atmgsgTQko1XEBK6PsecfopWNntopJ+ByYG1lRaA==} - dev: false + comlink@4.4.2: + resolution: {integrity: sha512-OxGdvBmJuNKSCMO4NTl1L47VRp6xn2wG4F/2hYzB6tiCb709otOxtEYCSvK80PtjODfXXZu8ds+Nw5kVCjqd2g==} - /comma-separated-tokens@2.0.3: + comma-separated-tokens@2.0.3: resolution: {integrity: sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg==} - /command-line-args@5.2.1: - resolution: {integrity: sha512-H4UfQhZyakIjC74I9d34fGYDwk3XpSr17QhEd0Q3I9Xq1CETHo4Hcuo87WyWHpAF1aSLjLRf5lD9ZGX2qStUvg==} - engines: {node: '>=4.0.0'} - dependencies: - array-back: 3.1.0 - find-replace: 3.0.0 - lodash.camelcase: 4.3.0 - typical: 4.0.0 - dev: true + commander@12.1.0: + resolution: {integrity: sha512-Vw8qHK3bZM9y/P10u3Vib8o/DdkvA2OtPtZvD871QKjy74Wj1WSKFILMPRPSdUSx5RFK1arlJzEtA4PkFgnbuA==} + engines: {node: '>=18'} - /command-line-tool@0.8.0: - resolution: {integrity: sha512-Xw18HVx/QzQV3Sc5k1vy3kgtOeGmsKIqwtFFoyjI4bbcpSgnw2CWVULvtakyw4s6fhyAdI6soQQhXc2OzJy62g==} - engines: {node: '>=4.0.0'} - dependencies: - ansi-escape-sequences: 4.1.0 - array-back: 2.0.0 - command-line-args: 5.2.1 - command-line-usage: 4.1.0 - typical: 2.6.1 - dev: true - - /command-line-usage@4.1.0: - resolution: {integrity: sha512-MxS8Ad995KpdAC0Jopo/ovGIroV/m0KHwzKfXxKag6FHOkGsH8/lv5yjgablcRxCJJC0oJeUMuO/gmaq+Wq46g==} - engines: {node: '>=4.0.0'} - dependencies: - ansi-escape-sequences: 4.1.0 - array-back: 2.0.0 - table-layout: 0.4.5 - typical: 2.6.1 - dev: true - - /commander@10.0.1: - resolution: {integrity: sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==} - engines: {node: '>=14'} - dev: true - - /commander@2.20.3: + commander@2.20.3: resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==} - dev: true - /commander@4.1.1: + commander@4.1.1: resolution: {integrity: sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==} engines: {node: '>= 6'} - dev: false - /common-ancestor-path@1.0.1: + common-ancestor-path@1.0.1: resolution: {integrity: sha512-L3sHRo1pXXEqX8VU28kfgUY+YGsk09hPqZiZmLacNib6XNTCM8ubYeT7ryXQw8asB1sKgcU5lkB7ONug08aB8w==} - /common-sequence@2.0.2: - resolution: {integrity: sha512-jAg09gkdkrDO9EWTdXfv80WWH3yeZl5oT69fGfedBNS9pXUKYInVJ1bJ+/ht2+Moeei48TmSbQDYMc8EOx9G0g==} - engines: {node: '>=8'} - dev: true - - /common-tags@1.8.2: + common-tags@1.8.2: resolution: {integrity: sha512-gk/Z852D2Wtb//0I+kRFNKKE9dIIVirjoqPoA1wJU+XePVXZfGeBpk45+A1rKO4Q43prqWBNY/MiIeRLbPWUaA==} engines: {node: '>=4.0.0'} - dev: true - /compare-func@2.0.0: + compare-func@2.0.0: resolution: {integrity: sha512-zHig5N+tPWARooBnb0Zx1MFcdfpyJrfTJ3Y5L+IFvUm8rM74hHz66z0gw0x4tijh5CorKkKUCnW82R2vmpeCRA==} - dependencies: - array-ify: 1.0.0 - dot-prop: 5.3.0 - dev: true - /concat-map@0.0.1: + concat-map@0.0.1: resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} - /concat-stream@2.0.0: + concat-stream@2.0.0: resolution: {integrity: sha512-MWufYdFw53ccGjCA+Ol7XJYpAlW6/prSMzuPOTRnJGcGzuhLn4Scrz7qf6o8bROZ514ltazcIFJZevcfbo0x7A==} engines: {'0': node >= 6.0} - dependencies: - buffer-from: 1.1.2 - inherits: 2.0.4 - readable-stream: 3.6.0 - typedarray: 0.0.6 - dev: true - /config-master@3.1.0: - resolution: {integrity: sha512-n7LBL1zBzYdTpF1mx5DNcZnZn05CWIdsdvtPL4MosvqbBUK3Rq6VWEtGUuF3Y0s9/CIhMejezqlSkP6TnCJ/9g==} - dependencies: - walk-back: 2.0.1 - dev: true + consola@3.4.0: + resolution: {integrity: sha512-EiPU8G6dQG0GFHNR8ljnZFki/8a+cQwEQ+7wpxdChl02Q8HXlwEZWD5lqAF8vC2sEC3Tehr8hy7vErz88LHyUA==} + engines: {node: ^14.18.0 || >=16.10.0} - /console-control-strings@1.1.0: + console-control-strings@1.1.0: resolution: {integrity: sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ==} - dev: true - /conventional-changelog-angular@7.0.0: + conventional-changelog-angular@7.0.0: resolution: {integrity: sha512-ROjNchA9LgfNMTTFSIWPzebCwOGFdgkEq45EnvvrmSLvCtAw0HSmrCs7/ty+wAeYUZyNay0YMUNYFTRL72PkBQ==} engines: {node: '>=16'} - dependencies: - compare-func: 2.0.0 - dev: true - /conventional-changelog-core@5.0.1: + conventional-changelog-core@5.0.1: resolution: {integrity: sha512-Rvi5pH+LvgsqGwZPZ3Cq/tz4ty7mjijhr3qR4m9IBXNbxGGYgTVVO+duXzz9aArmHxFtwZ+LRkrNIMDQzgoY4A==} engines: {node: '>=14'} - dependencies: - add-stream: 1.0.0 - conventional-changelog-writer: 6.0.1 - conventional-commits-parser: 4.0.0 - dateformat: 3.0.3 - get-pkg-repo: 4.2.1 - git-raw-commits: 3.0.0 - git-remote-origin-url: 2.0.0 - git-semver-tags: 5.0.1 - normalize-package-data: 3.0.3 - read-pkg: 3.0.0 - read-pkg-up: 3.0.0 - dev: true - /conventional-changelog-preset-loader@3.0.0: + conventional-changelog-preset-loader@3.0.0: resolution: {integrity: sha512-qy9XbdSLmVnwnvzEisjxdDiLA4OmV3o8db+Zdg4WiFw14fP3B6XNz98X0swPPpkTd/pc1K7+adKgEDM1JCUMiA==} engines: {node: '>=14'} - dev: true - /conventional-changelog-writer@6.0.1: + conventional-changelog-writer@6.0.1: resolution: {integrity: sha512-359t9aHorPw+U+nHzUXHS5ZnPBOizRxfQsWT5ZDHBfvfxQOAik+yfuhKXG66CN5LEWPpMNnIMHUTCKeYNprvHQ==} engines: {node: '>=14'} hasBin: true - dependencies: - conventional-commits-filter: 3.0.0 - dateformat: 3.0.3 - handlebars: 4.7.7 - json-stringify-safe: 5.0.1 - meow: 8.1.2 - semver: 7.5.4 - split: 1.0.1 - dev: true - /conventional-commits-filter@3.0.0: + conventional-commits-filter@3.0.0: resolution: {integrity: sha512-1ymej8b5LouPx9Ox0Dw/qAO2dVdfpRFq28e5Y0jJEU8ZrLdy0vOSkkIInwmxErFGhg6SALro60ZrwYFVTUDo4Q==} engines: {node: '>=14'} - dependencies: - lodash.ismatch: 4.4.0 - modify-values: 1.0.1 - dev: true - /conventional-commits-parser@4.0.0: + conventional-commits-parser@4.0.0: resolution: {integrity: sha512-WRv5j1FsVM5FISJkoYMR6tPk07fkKT0UodruX4je86V4owk451yjXAKzKAPOs9l7y59E2viHUS9eQ+dfUA9NSg==} engines: {node: '>=14'} hasBin: true - dependencies: - JSONStream: 1.3.5 - is-text-path: 1.0.1 - meow: 8.1.2 - split2: 3.2.2 - dev: true - /conventional-recommended-bump@7.0.1: + conventional-recommended-bump@7.0.1: resolution: {integrity: sha512-Ft79FF4SlOFvX4PkwFDRnaNiIVX7YbmqGU0RwccUaiGvgp3S0a8ipR2/Qxk31vclDNM+GSdJOVs2KrsUCjblVA==} engines: {node: '>=14'} hasBin: true - dependencies: - concat-stream: 2.0.0 - conventional-changelog-preset-loader: 3.0.0 - conventional-commits-filter: 3.0.0 - conventional-commits-parser: 4.0.0 - git-raw-commits: 3.0.0 - git-semver-tags: 5.0.1 - meow: 8.1.2 - dev: true - /convert-source-map@2.0.0: + convert-source-map@2.0.0: resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==} - /cookie@0.6.0: - resolution: {integrity: sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw==} + cookie-es@1.2.2: + resolution: {integrity: sha512-+W7VmiVINB+ywl1HGXJXmrqkOhpKrIiVZV6tQuV54ZyQC7MMuBt81Vc336GMLoHBq5hV/F9eXgt5Mnx0Rha5Fg==} + + cookie@0.7.2: + resolution: {integrity: sha512-yki5XnKuf750l50uGTllt6kKILY4nQ1eNIQatoXEByZ5dWgnKqbnqmTrBE5B4N7lrMJKQ2ytWMiTO2o0v6Ew/w==} engines: {node: '>= 0.6'} - /core-js-compat@3.35.0: - resolution: {integrity: sha512-5blwFAddknKeNgsjBzilkdQ0+YK8L1PfqPYq40NOYMYFSS38qj+hpTcLLWwpIwA2A5bje/x5jmVn2tzUMg9IVw==} - dependencies: - browserslist: 4.22.2 - dev: true + core-js-compat@3.40.0: + resolution: {integrity: sha512-0XEDpr5y5mijvw8Lbc6E5AkjrHfp7eEoPlu36SWeAbcL8fn1G1ANe8DBlo2XoNN89oVpxWwOjYIPVzR4ZvsKCQ==} - /core-util-is@1.0.3: + core-util-is@1.0.3: resolution: {integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==} - /cosmiconfig@8.3.6(typescript@5.3.3): - resolution: {integrity: sha512-kcZ6+W5QzcJ3P1Mt+83OUv/oHFqZHIx8DuxG6eZ5RGMERoLqp4BuGjhHLYGK+Kf5XVkQvqBSmAy/nGWN3qDgEA==} + cosmiconfig@9.0.0: + resolution: {integrity: sha512-itvL5h8RETACmOTFc4UfIyB2RfEHi71Ax6E/PivVxq9NseKbOWpeyHEOIbmAw1rs8Ak0VursQNww7lf7YtUwzg==} engines: {node: '>=14'} peerDependencies: typescript: '>=4.9.5' peerDependenciesMeta: typescript: optional: true - dependencies: - import-fresh: 3.3.0 - js-yaml: 4.1.0 - parse-json: 5.2.0 - path-type: 4.0.0 - typescript: 5.3.3 - dev: true - /cowsay@1.6.0: + cowsay@1.6.0: resolution: {integrity: sha512-8C4H1jdrgNusTQr3Yu4SCm+ZKsAlDFbpa0KS0Z3im8ueag+9pGOf3CrioruvmeaW/A5oqg9L0ar6qeftAh03jw==} engines: {node: '>= 4'} hasBin: true - dependencies: - get-stdin: 8.0.0 - string-width: 2.1.1 - strip-final-newline: 2.0.0 - yargs: 15.4.1 - dev: false - /crelt@1.0.5: - resolution: {integrity: sha512-+BO9wPPi+DWTDcNYhr/W90myha8ptzftZT+LwcmUbbok0rcP/fequmFYCw8NMoH7pkAZQzU78b3kYrlua5a9eA==} - dev: false - - /crelt@1.0.6: + crelt@1.0.6: resolution: {integrity: sha512-VQ2MBenTq1fWZUH9DJNGti7kKv6EeAuYr3cLwxUWhIu1baTaXh4Ib5W2CqHVqib4/MqbYGJqiL3Zb8GJZr3l4g==} - dev: false - /cross-spawn@7.0.3: - resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==} + cross-spawn@7.0.6: + resolution: {integrity: sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==} engines: {node: '>= 8'} - dependencies: - path-key: 3.1.1 - shebang-command: 2.0.0 - which: 2.0.2 - /crypto-random-string@2.0.0: + crossws@0.3.3: + resolution: {integrity: sha512-/71DJT3xJlqSnBr83uGJesmVHSzZEvgxHt/fIKxBAAngqMHmnBWQNxCphVxxJ2XL3xleu5+hJD6IQ3TglBedcw==} + + crypto-random-string@2.0.0: resolution: {integrity: sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==} engines: {node: '>=8'} - dev: true - /cssesc@3.0.0: + cssesc@3.0.0: resolution: {integrity: sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==} engines: {node: '>=4'} hasBin: true - dev: false - /csstype@3.1.1: - resolution: {integrity: sha512-DJR/VvkAvSZW9bTouZue2sSxDwdTN92uHjqeKVm+0dAqdfNykRzQ95tay8aXMBAAPpUiq4Qcug2L7neoRh2Egw==} - dev: false + csstype@3.1.3: + resolution: {integrity: sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==} - /csv-generate@4.3.1: - resolution: {integrity: sha512-7YeeJq+44/I/O5N2sr2qBMcHZXhpfe38eh7DOFxyMtYO+Pir7kIfgFkW5MPksqKqqR6+/wX7UGoZm1Ot11151w==} - dev: false + csv-generate@4.4.2: + resolution: {integrity: sha512-W6nVsf+rz0J3yo9FOjeer7tmzBJKaTTxf7K0uw6GZgRocZYPVpuSWWa5/aoWWrjQZj4/oNIKTYapOM7hiNjVMA==} - /csv-parse@5.5.3: - resolution: {integrity: sha512-v0KW6C0qlZzoGjk6u5tLmVfyZxNgPGXZsWTXshpAgKVGmGXzaVWGdlCFxNx5iuzcXT/oJN1HHM9DZKwtAtYa+A==} - dev: false + csv-parse@5.6.0: + resolution: {integrity: sha512-l3nz3euub2QMg5ouu5U09Ew9Wf6/wQ8I++ch1loQ0ljmzhmfZYrH9fflS22i/PQEvsPvxCwxgz5q7UB8K1JO4Q==} - /csv-stringify@6.4.5: - resolution: {integrity: sha512-SPu1Vnh8U5EnzpNOi1NDBL5jU5Rx7DVHr15DNg9LXDTAbQlAVAmEbVt16wZvEW9Fu9Qt4Ji8kmeCJ2B1+4rFTQ==} - dev: false + csv-stringify@6.5.2: + resolution: {integrity: sha512-RFPahj0sXcmUyjrObAK+DOWtMvMIFV328n4qZJhgX3x2RqkQgOTU2mCUmiFR0CzM6AzChlRSUErjiJeEt8BaQA==} - /csv@6.3.6: - resolution: {integrity: sha512-jsEsX2HhGp7xiwrJu5srQavKsh+HUJcCi78Ar3m4jlmFKRoTkkMy7ZZPP+LnQChmaztW+uj44oyfMb59daAs/Q==} + csv@6.3.11: + resolution: {integrity: sha512-a8bhT76Q546jOElHcTrkzWY7Py925mfLO/jqquseH61ThOebYwOjLbWHBqdRB4K1VpU36sTyIei6Jwj7QdEZ7g==} engines: {node: '>= 0.1.90'} - dependencies: - csv-generate: 4.3.1 - csv-parse: 5.5.3 - csv-stringify: 6.4.5 - stream-transform: 3.3.0 - dev: false - /dargs@7.0.0: + dargs@7.0.0: resolution: {integrity: sha512-2iy1EkLdlBzQGvbweYRFxmFath8+K7+AKB0TlhHWkNuH+TmovaMH/Wp7V7R4u7f4SnX3OgLsU9t1NI9ioDnUpg==} engines: {node: '>=8'} - dev: true - /data-uri-to-buffer@4.0.1: + data-uri-to-buffer@4.0.1: resolution: {integrity: sha512-0R9ikRb668HB7QDxT1vkpuUBtqc53YyAwMwGeUFKRojY/NWKvdZ+9UYtRfGmhqNbRkTSVpMbmyhXipFFv2cb/A==} engines: {node: '>= 12'} - dev: true - /date-fns@3.2.0: - resolution: {integrity: sha512-E4KWKavANzeuusPi0jUjpuI22SURAznGkx7eZV+4i6x2A+IZxAMcajgkvuDAU1bg40+xuhW1zRdVIIM/4khuIg==} - dev: false + data-view-buffer@1.0.2: + resolution: {integrity: sha512-EmKO5V3OLXh1rtK2wgXRansaK1/mtVdTUEiEI0W8RkvgT05kfxaH29PliLnpLP73yYO6142Q72QNa8Wx/A5CqQ==} + engines: {node: '>= 0.4'} - /dateformat@3.0.3: + data-view-byte-length@1.0.2: + resolution: {integrity: sha512-tuhGbE6CfTM9+5ANGf+oQb72Ky/0+s3xKUpHvShfiz2RxMFgFPjsXuRLBVMtvMs15awe45SRb83D6wH4ew6wlQ==} + engines: {node: '>= 0.4'} + + data-view-byte-offset@1.0.1: + resolution: {integrity: sha512-BS8PfmtDGnrgYdOonGZQdLZslWIeCGFP9tpan0hi1Co2Zr2NKADsvGYA8XxuG/4UWgJ6Cjtv+YJnB6MM69QGlQ==} + engines: {node: '>= 0.4'} + + date-fns@4.1.0: + resolution: {integrity: sha512-Ukq0owbQXxa/U3EGtsdVBkR1w7KOQ5gIBqdH2hkvknzZPYvBxb/aa6E8L7tmjFtkwZBu3UXBbjIgPo/Ez4xaNg==} + + dateformat@3.0.3: resolution: {integrity: sha512-jyCETtSl3VMZMWeRo7iY1FL19ges1t55hMo5yaam4Jrsm5EPL89UQkoQRyiI+Yf4k8r2ZpdngkV8hr1lIdjb3Q==} - dev: true - /dct@0.1.0: + dct@0.1.0: resolution: {integrity: sha512-/uUtEniuMq1aUxvLAoDtAduyl12oM1zhA/le2f83UFN/9+4KDHXFB6znEfoj5SDDLiTpUTr26NpxC7t8IFOYhQ==} engines: {node: '>=0.12.0'} - dev: false - /debug@2.6.9: + debug@2.6.9: resolution: {integrity: sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==} peerDependencies: supports-color: '*' peerDependenciesMeta: supports-color: optional: true - dependencies: - ms: 2.0.0 - /debug@3.2.7: + debug@3.2.7: resolution: {integrity: sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==} peerDependencies: supports-color: '*' peerDependenciesMeta: supports-color: optional: true - dependencies: - ms: 2.1.3 - /debug@4.3.4: - resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==} + debug@4.4.0: + resolution: {integrity: sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==} engines: {node: '>=6.0'} peerDependencies: supports-color: '*' peerDependenciesMeta: supports-color: optional: true - dependencies: - ms: 2.1.2 - /decamelize-keys@1.1.1: + decamelize-keys@1.1.1: resolution: {integrity: sha512-WiPxgEirIV0/eIOMcnFBA3/IJZAZqKnwAwWyvvdi4lsr1WCN22nhdf/3db3DoZcUjTV2SqfzIwNyp6y2xs3nmg==} engines: {node: '>=0.10.0'} - dependencies: - decamelize: 1.2.0 - map-obj: 1.0.1 - dev: true - /decamelize@1.2.0: + decamelize@1.2.0: resolution: {integrity: sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==} engines: {node: '>=0.10.0'} - /decode-named-character-reference@1.0.2: + decode-named-character-reference@1.0.2: resolution: {integrity: sha512-O8x12RzrUF8xyVcY0KJowWsmaJxQbmy0/EtnNtHRpsOcT7dFk5W598coHqBVpmWo1oQQfsCqfCmkZN5DJrZVdg==} - dependencies: - character-entities: 2.0.2 - /decompress-response@6.0.0: + decompress-response@6.0.0: resolution: {integrity: sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==} engines: {node: '>=10'} - dependencies: - mimic-response: 3.1.0 - dev: true - /dedent@0.7.0: - resolution: {integrity: sha512-Q6fKUPqnAHAyhiUgFU7BUzLiv0kd8saH9al7tnu5Q/okj6dnupxyTgFIBjVzJATdfIAm9NAsvXNzjaKa+bxVyA==} - dev: true + dedent@1.5.3: + resolution: {integrity: sha512-NHQtfOOW68WD8lgypbLA5oT+Bt0xXJhiYvoR6SmmNXZfpzOGXwdKWmcwG8N7PwVVWV3eF/68nmD9BaJSsTBhyQ==} + peerDependencies: + babel-plugin-macros: ^3.1.0 + peerDependenciesMeta: + babel-plugin-macros: + optional: true - /deep-eql@4.1.3: - resolution: {integrity: sha512-WaEtAOpRA1MQ0eohqZjpGD8zdI0Ovsm8mmFhaDN8dvDZzyoUMcYDnf5Y6iu7HTXxf8JDS23qWa4a+hKCDyOPzw==} + deep-eql@5.0.2: + resolution: {integrity: sha512-h5k/5U50IJJFpzfL6nO9jaaumfjO/f2NjK/oYB2Djzm4p9L+3T9qWpZqZ2hAbLPuuYq9wrU08WQyBTL5GbPk5Q==} engines: {node: '>=6'} - dependencies: - type-detect: 4.0.8 - dev: true - /deep-extend@0.6.0: + deep-extend@0.6.0: resolution: {integrity: sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==} engines: {node: '>=4.0.0'} - dev: true - /deep-is@0.1.4: + deep-is@0.1.4: resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==} - /deepmerge@4.3.1: + deepmerge@4.3.1: resolution: {integrity: sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==} engines: {node: '>=0.10.0'} - dev: true - /defaults@1.0.4: + defaults@1.0.4: resolution: {integrity: sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==} - dependencies: - clone: 1.0.4 - dev: true - /define-data-property@1.1.1: - resolution: {integrity: sha512-E7uGkTzkk1d0ByLeSc6ZsFS79Axg+m1P/VsgYsxHgiuc3tFSj+MjMIwe90FC4lOAZzNBdY7kkO2P2wKdsQ1vgQ==} + define-data-property@1.1.4: + resolution: {integrity: sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==} engines: {node: '>= 0.4'} - dependencies: - get-intrinsic: 1.2.2 - gopd: 1.0.1 - has-property-descriptors: 1.0.0 - dev: true - /define-lazy-prop@2.0.0: + define-lazy-prop@2.0.0: resolution: {integrity: sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==} engines: {node: '>=8'} - dev: true - /define-properties@1.2.1: + define-properties@1.2.1: resolution: {integrity: sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==} engines: {node: '>= 0.4'} - dependencies: - define-data-property: 1.1.1 - has-property-descriptors: 1.0.0 - object-keys: 1.1.1 - dev: true - /delayed-stream@1.0.0: + defu@6.1.4: + resolution: {integrity: sha512-mEQCMmwJu317oSz8CwdIOdwf3xMif1ttiM8LTufzc3g6kR+9Pe236twL8j3IYT1F7GfRgGcW6MWxzZjLIkuHIg==} + + delayed-stream@1.0.0: resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==} engines: {node: '>=0.4.0'} - dev: true - /delegates@1.0.0: - resolution: {integrity: sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ==} - dev: true - - /depd@1.1.2: - resolution: {integrity: sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==} - engines: {node: '>= 0.6'} - dev: true - - /dependency-tree@10.0.9: - resolution: {integrity: sha512-dwc59FRIsht+HfnTVM0BCjJaEWxdq2YAvEDy4/Hn6CwS3CBWMtFnL3aZGAkQn3XCYxk/YcTDE4jX2Q7bFTwCjA==} - engines: {node: '>=14'} + dependency-tree@11.0.1: + resolution: {integrity: sha512-eCt7HSKIC9NxgIykG2DRq3Aewn9UhVS14MB3rEn6l/AsEI1FBg6ZGSlCU0SZ6Tjm2kkhj6/8c2pViinuyKELhg==} + engines: {node: '>=18'} hasBin: true - dependencies: - commander: 10.0.1 - filing-cabinet: 4.1.6 - precinct: 11.0.5 - typescript: 5.3.3 - transitivePeerDependencies: - - supports-color - dev: true - /deprecation@2.3.1: + deprecation@2.3.1: resolution: {integrity: sha512-xmHIy4F3scKVwMsQ4WnVaS8bHOx0DmVwRywosKhaILI0ywMDWPtBSku2HNxRvF7jtwDRsoEwYQSfbxj8b7RlJQ==} - dev: true - /dequal@2.0.3: + dequal@2.0.3: resolution: {integrity: sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==} engines: {node: '>=6'} - /detect-indent@5.0.0: + destr@2.0.3: + resolution: {integrity: sha512-2N3BOUU4gYMpTP24s5rF5iP7BDr7uNTCs4ozw3kf/eKfvWSIu93GEBi5m427YoyJoeOzQ5smuu4nNAPGb8idSQ==} + + detect-indent@5.0.0: resolution: {integrity: sha512-rlpvsxUtM0PQvy9iZe640/IWwWYyBsTApREbA1pHOpmOUIl9MkP/U4z7vTtg4Oaojvqhxt7sdufnT0EzGaR31g==} engines: {node: '>=4'} - dev: true - /detect-libc@2.0.1: - resolution: {integrity: sha512-463v3ZeIrcWtdgIg6vI6XUncguvr2TnGl4SzDXinkt9mSLpBJKXT3mW6xT3VQdDN11+WVs29pgvivTc4Lp8v+w==} - engines: {node: '>=8'} - dev: true - - /detect-libc@2.0.2: - resolution: {integrity: sha512-UX6sGumvvqSaXgdKGUsgZWqcUyIXZ/vZTrlRT/iobiKhGL0zL4d3osHj3uqllWJK+i+sixDS/3COVEOFbupFyw==} - engines: {node: '>=8'} - requiresBuild: true - - /detective-amd@5.0.2: - resolution: {integrity: sha512-XFd/VEQ76HSpym80zxM68ieB77unNuoMwopU2TFT/ErUk5n4KvUTwW4beafAVUugrjV48l4BmmR0rh2MglBaiA==} - engines: {node: '>=14'} + detect-libc@1.0.3: + resolution: {integrity: sha512-pGjwhsmsp4kL2RTz08wcOlGN83otlqHeD/Z5T8GXZB+/YcpQ/dgo+lbU8ZsGxV0HIvqqxo9l7mqYwyYMD9bKDg==} + engines: {node: '>=0.10'} hasBin: true - dependencies: - ast-module-types: 5.0.0 - escodegen: 2.1.0 - get-amd-module-type: 5.0.1 - node-source-walk: 6.0.2 - dev: true - /detective-cjs@5.0.1: - resolution: {integrity: sha512-6nTvAZtpomyz/2pmEmGX1sXNjaqgMplhQkskq2MLrar0ZAIkHMrDhLXkRiK2mvbu9wSWr0V5/IfiTrZqAQMrmQ==} - engines: {node: '>=14'} - dependencies: - ast-module-types: 5.0.0 - node-source-walk: 6.0.2 - dev: true + detect-libc@2.0.3: + resolution: {integrity: sha512-bwy0MGW55bG41VqxxypOsdSdGqLwXPI/focwgTYCFMbdUiBAxLg9CFzG08sz2aqzknwiX7Hkl0bQENjg8iLByw==} + engines: {node: '>=8'} - /detective-es6@4.0.1: - resolution: {integrity: sha512-k3Z5tB4LQ8UVHkuMrFOlvb3GgFWdJ9NqAa2YLUU/jTaWJIm+JJnEh4PsMc+6dfT223Y8ACKOaC0qcj7diIhBKw==} - engines: {node: '>=14'} - dependencies: - node-source-walk: 6.0.2 - dev: true + detective-amd@6.0.0: + resolution: {integrity: sha512-NTqfYfwNsW7AQltKSEaWR66hGkTeD52Kz3eRQ+nfkA9ZFZt3iifRCWh+yZ/m6t3H42JFwVFTrml/D64R2PAIOA==} + engines: {node: '>=18'} + hasBin: true - /detective-postcss@6.1.3: - resolution: {integrity: sha512-7BRVvE5pPEvk2ukUWNQ+H2XOq43xENWbH0LcdCE14mwgTBEAMoAx+Fc1rdp76SmyZ4Sp48HlV7VedUnP6GA1Tw==} - engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} - dependencies: - is-url: 1.2.4 - postcss: 8.4.32 - postcss-values-parser: 6.0.2(postcss@8.4.32) - dev: true + detective-cjs@6.0.0: + resolution: {integrity: sha512-R55jTS6Kkmy6ukdrbzY4x+I7KkXiuDPpFzUViFV/tm2PBGtTCjkh9ZmTuJc1SaziMHJOe636dtiZLEuzBL9drg==} + engines: {node: '>=18'} - /detective-sass@5.0.3: - resolution: {integrity: sha512-YsYT2WuA8YIafp2RVF5CEfGhhyIVdPzlwQgxSjK+TUm3JoHP+Tcorbk3SfG0cNZ7D7+cYWa0ZBcvOaR0O8+LlA==} - engines: {node: '>=14'} - dependencies: - gonzales-pe: 4.3.0 - node-source-walk: 6.0.2 - dev: true + detective-es6@5.0.0: + resolution: {integrity: sha512-NGTnzjvgeMW1khUSEXCzPDoraLenWbUjCFjwxReH+Ir+P6LGjYtaBbAvITWn2H0VSC+eM7/9LFOTAkrta6hNYg==} + engines: {node: '>=18'} - /detective-scss@4.0.3: - resolution: {integrity: sha512-VYI6cHcD0fLokwqqPFFtDQhhSnlFWvU614J42eY6G0s8c+MBhi9QAWycLwIOGxlmD8I/XvGSOUV1kIDhJ70ZPg==} - engines: {node: '>=14'} - dependencies: - gonzales-pe: 4.3.0 - node-source-walk: 6.0.2 - dev: true + detective-postcss@7.0.0: + resolution: {integrity: sha512-pSXA6dyqmBPBuERpoOKKTUUjQCZwZPLRbd1VdsTbt6W+m/+6ROl4BbE87yQBUtLoK7yX8pvXHdKyM/xNIW9F7A==} + engines: {node: ^14.0.0 || >=16.0.0} + peerDependencies: + postcss: ^8.4.38 - /detective-stylus@4.0.0: - resolution: {integrity: sha512-TfPotjhszKLgFBzBhTOxNHDsutIxx9GTWjrL5Wh7Qx/ydxKhwUrlSFeLIn+ZaHPF+h0siVBkAQSuy6CADyTxgQ==} - engines: {node: '>=14'} - dev: true + detective-sass@6.0.0: + resolution: {integrity: sha512-h5GCfFMkPm4ZUUfGHVPKNHKT8jV7cSmgK+s4dgQH4/dIUNh9/huR1fjEQrblOQNDalSU7k7g+tiW9LJ+nVEUhg==} + engines: {node: '>=18'} - /detective-typescript@11.1.0: - resolution: {integrity: sha512-Mq8egjnW2NSCkzEb/Az15/JnBI/Ryyl6Po0Y+0mABTFvOS6DAyUGRZqz1nyhu4QJmWWe0zaGs/ITIBeWkvCkGw==} + detective-scss@5.0.0: + resolution: {integrity: sha512-Y64HyMqntdsCh1qAH7ci95dk0nnpA29g319w/5d/oYcHolcGUVJbIhOirOFjfN1KnMAXAFm5FIkZ4l2EKFGgxg==} + engines: {node: '>=18'} + + detective-stylus@5.0.0: + resolution: {integrity: sha512-KMHOsPY6aq3196WteVhkY5FF+6Nnc/r7q741E+Gq+Ax9mhE2iwj8Hlw8pl+749hPDRDBHZ2WlgOjP+twIG61vQ==} + engines: {node: '>=18'} + + detective-typescript@13.0.0: + resolution: {integrity: sha512-tcMYfiFWoUejSbvSblw90NDt76/4mNftYCX0SMnVRYzSXv8Fvo06hi4JOPdNvVNxRtCAKg3MJ3cBJh+ygEMH+A==} engines: {node: ^14.14.0 || >=16.0.0} - dependencies: - '@typescript-eslint/typescript-estree': 5.62.0(typescript@5.3.3) - ast-module-types: 5.0.0 - node-source-walk: 6.0.2 - typescript: 5.3.3 - transitivePeerDependencies: - - supports-color - dev: true + peerDependencies: + typescript: ^5.4.4 - /deterministic-object-hash@2.0.2: + detective-vue2@2.1.1: + resolution: {integrity: sha512-/TQ+cs4qmSyhgESjyBXxoUuh36XjS06+UhCItWcGGOpXmU3KBRGRknG+tDzv2dASn1+UJUm2rhpDFa9TWT0dFw==} + engines: {node: '>=18'} + peerDependencies: + typescript: ^5.4.4 + + deterministic-object-hash@2.0.2: resolution: {integrity: sha512-KxektNH63SrbfUyDiwXqRb1rLwKt33AmMv+5Nhsw1kqZ13SJBRTgZHtGbE+hH3a1mVW1cz+4pqSWVPAtLVXTzQ==} engines: {node: '>=18'} - dependencies: - base-64: 1.0.0 - /devalue@4.3.2: - resolution: {integrity: sha512-KqFl6pOgOW+Y6wJgu80rHpo2/3H07vr8ntR9rkkFIRETewbf5GaYYcakYfiKz89K+sLsuPkQIZaXDMjUObZwWg==} + devalue@5.1.1: + resolution: {integrity: sha512-maua5KUiapvEwiEAe+XnlZ3Rh0GD+qI1J/nb9vrJc3muPXvcF/8gXYTWF76+5DAqHyDUtOIImEuo0YKE9mshVw==} - /devlop@1.1.0: + devlop@1.1.0: resolution: {integrity: sha512-RWmIqhcFf1lRYBvNmr7qTNuyCt/7/ns2jbpp1+PalgE/rDQcBT0fioSMUpJ93irlUhC5hrg4cYqe6U+0ImW0rA==} - dependencies: - dequal: 2.0.3 - /didyoumean@1.2.2: + didyoumean@1.2.2: resolution: {integrity: sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==} - dev: false - /diff-sequences@29.6.3: + diff-sequences@29.6.3: resolution: {integrity: sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - dev: true - /diff@5.1.0: - resolution: {integrity: sha512-D+mk+qE8VC/PAUrlAU34N+VfXev0ghe5ywmpqrawphmVZc1bEfn56uo9qpyGp1p4xpzOHkSW4ztBd6L7Xx4ACw==} + diff@5.2.0: + resolution: {integrity: sha512-uIFDxqpRZGZ6ThOk84hEfqWoHx2devRFvpTZcTHur85vImfaxUbTW9Ryh4CpCuDnToOP1CEtXKIgytHBPVff5A==} engines: {node: '>=0.3.1'} - /dir-glob@3.0.1: + dir-glob@3.0.1: resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==} engines: {node: '>=8'} - dependencies: - path-type: 4.0.0 - dev: true - /djipevents@2.0.7: + djipevents@2.0.7: resolution: {integrity: sha512-KNFYaU85imxOCKOUsIR70Iz9E19r96/X7LSH+u0tSoZdpWcBdzoqtTsU+wuLhc6GMpSFob+KInkZAbfKi01Bjg==} - dependencies: - '@babel/runtime': 7.20.13 - dev: false - /dlv@1.1.3: + dlv@1.1.3: resolution: {integrity: sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==} - /dmd@6.2.0: - resolution: {integrity: sha512-uXWxLF1H7TkUAuoHK59/h/ts5cKavm2LnhrIgJWisip4BVzPoXavlwyoprFFn2CzcahKYgvkfaebS6oxzgflkg==} - engines: {node: '>=12'} - dependencies: - array-back: 6.2.2 - cache-point: 2.0.0 - common-sequence: 2.0.2 - file-set: 4.0.2 - handlebars: 4.7.7 - marked: 4.2.12 - object-get: 2.1.1 - reduce-flatten: 3.0.1 - reduce-unique: 2.0.1 - reduce-without: 1.0.1 - test-value: 3.0.0 - walk-back: 5.1.0 - dev: true - - /doctrine@2.1.0: + doctrine@2.1.0: resolution: {integrity: sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==} engines: {node: '>=0.10.0'} - dependencies: - esutils: 2.0.3 - dev: true - /doctrine@3.0.0: - resolution: {integrity: sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==} - engines: {node: '>=6.0.0'} - dependencies: - esutils: 2.0.3 - - /dot-prop@5.3.0: + dot-prop@5.3.0: resolution: {integrity: sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==} engines: {node: '>=8'} - dependencies: - is-obj: 2.0.0 - dev: true - /dotenv-expand@10.0.0: - resolution: {integrity: sha512-GopVGCpVS1UKH75VKHGuQFqS1Gusej0z4FyQkPdwjil2gNIv+LNsqBlboOzpJFZKVT95GkCyWJbBSdFEFUWI2A==} + dotenv-expand@11.0.7: + resolution: {integrity: sha512-zIHwmZPRshsCdpMDyVsqGmgyP0yT8GAgXUnkdAoJisxvf33k7yO6OuoKmcTGuXPWSsm8Oh88nZicRLA9Y0rUeA==} engines: {node: '>=12'} - dev: true - /dotenv@16.3.1: - resolution: {integrity: sha512-IPzF4w4/Rd94bA9imS68tZBaYyBWSCE47V1RGuMrB94iyTOIEwRmVL2x/4An+6mETpLrKJ5hQkB8W4kFAadeIQ==} + dotenv@16.4.7: + resolution: {integrity: sha512-47qPchRCykZC03FhkYAhrvwU4xDBFIj1QPqaarj6mdM/hgUzfPHcpkHJOn3mJAufFeeAxAzeGsr5X0M4k6fLZQ==} engines: {node: '>=12'} - dev: true - /dset@3.1.3: - resolution: {integrity: sha512-20TuZZHCEZ2O71q9/+8BwKwZ0QtD9D8ObhrihJPr+vLLYlSuAU3/zL4cSlgbfeoGHTjCSJBa7NGcrF9/Bx/WJQ==} + dset@3.1.4: + resolution: {integrity: sha512-2QF/g9/zTaPDc3BjNcVTGoBbXBgYfMTTceLaYcFJ/W9kggFUkhxD/hMEeuLKbugyef9SqAx8cpgwlIP/jinUTA==} engines: {node: '>=4'} - /duplexer@0.1.2: - resolution: {integrity: sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==} - dev: true + dunder-proto@1.0.1: + resolution: {integrity: sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==} + engines: {node: '>= 0.4'} - /eastasianwidth@0.2.0: + duplexer@0.1.2: + resolution: {integrity: sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==} + + eastasianwidth@0.2.0: resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==} - /ejs@3.1.8: - resolution: {integrity: sha512-/sXZeMlhS0ArkfX2Aw780gJzXSMPnKjtspYZv+f3NiKLlubezAHDU5+9xz6gd3/NhG3txQCo6xlglmTS+oTGEQ==} + ejs@3.1.10: + resolution: {integrity: sha512-UeJmFfOrAQS8OJWPZ4qtgHyWExa088/MtK5UEyoJGFH67cDEXkZSviOiKRCZ4Xij0zxI3JECgYs3oKx+AizQBA==} engines: {node: '>=0.10.0'} hasBin: true - dependencies: - jake: 10.8.5 - dev: true - /ejs@3.1.9: - resolution: {integrity: sha512-rC+QVNMJWv+MtPgkt0y+0rVEIdbtxVADApW9JXrUVlzHetgcyczP/E7DJmWJ4fJCZF2cPcBk0laWO9ZHMG3DmQ==} - engines: {node: '>=0.10.0'} - hasBin: true - dependencies: - jake: 10.8.7 - dev: true + electron-to-chromium@1.5.88: + resolution: {integrity: sha512-K3C2qf1o+bGzbilTDCTBhTQcMS9KW60yTAaTeeXsfvQuTDDwlokLam/AdqlqcSy9u4UainDgsHV23ksXAOgamw==} - /electron-to-chromium@1.4.574: - resolution: {integrity: sha512-bg1m8L0n02xRzx4LsTTMbBPiUd9yIR+74iPtS/Ao65CuXvhVZHP0ym1kSdDG3yHFDXqHQQBKujlN1AQ8qZnyFg==} - dev: false + emoji-regex-xs@1.0.0: + resolution: {integrity: sha512-LRlerrMYoIDrT6jgpeZ2YYl/L8EulRTt5hQcYjy5AInh7HWXKimpqx68aknBFpGL2+/IcogTcaydJEgaTmOpDg==} - /electron-to-chromium@1.4.616: - resolution: {integrity: sha512-1n7zWYh8eS0L9Uy+GskE0lkBUNK83cXTVJI0pU3mGprFsbfSdAc15VTFbo+A+Bq4pwstmL30AVcEU3Fo463lNg==} + emoji-regex@10.4.0: + resolution: {integrity: sha512-EC+0oUMY1Rqm4O6LLrgjtYDvcVYTy7chDnM4Q7030tP4Kwj3u/pR6gP9ygnp2CJMK5Gq+9Q2oqmrFJAz01DXjw==} - /emoji-regex@10.3.0: - resolution: {integrity: sha512-QpLs9D9v9kArv4lfDEgg1X/gN5XLnf/A6l9cs8SPZLRZR3ZkY9+kwIQTxm+fsSej5UMYGE8fdoaZVIBlqG0XTw==} - - /emoji-regex@8.0.0: + emoji-regex@8.0.0: resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} - /emoji-regex@9.2.2: + emoji-regex@9.2.2: resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==} - /encoding@0.1.13: + encoding@0.1.13: resolution: {integrity: sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==} - requiresBuild: true - dependencies: - iconv-lite: 0.6.3 - dev: true - optional: true - /end-of-stream@1.4.4: + end-of-stream@1.4.4: resolution: {integrity: sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==} - dependencies: - once: 1.4.0 - dev: true - /enhanced-resolve@5.15.0: - resolution: {integrity: sha512-LXYT42KJ7lpIKECr2mAXIaMldcNCh/7E0KBKOu4KSfkHmP+mZmSs+8V5gBAqisWBy0OO4W5Oyys0GO1Y8KtdKg==} + enhanced-resolve@5.18.0: + resolution: {integrity: sha512-0/r0MySGYG8YqlayBZ6MuCfECmHFdJ5qyPh8s8wa5Hnm6SaFLSK1VYCbj+NKp090Nm1caZhD+QTnmxO7esYGyQ==} engines: {node: '>=10.13.0'} - dependencies: - graceful-fs: 4.2.10 - tapable: 2.2.1 - dev: true - /enquirer@2.3.6: + enquirer@2.3.6: resolution: {integrity: sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==} engines: {node: '>=8.6'} - dependencies: - ansi-colors: 4.1.3 - dev: true - /entities@2.1.0: - resolution: {integrity: sha512-hCx1oky9PFrJ611mf0ifBLBRW8lUUVRlFolb5gWRfIELabBlbp9xZvrqZLZAs+NxFnbfQoeGd8wDkygjg7U85w==} - dev: true - - /entities@4.5.0: + entities@4.5.0: resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==} engines: {node: '>=0.12'} - /env-paths@2.2.1: + env-paths@2.2.1: resolution: {integrity: sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==} engines: {node: '>=6'} - dev: true - /envinfo@7.8.1: - resolution: {integrity: sha512-/o+BXHmB7ocbHEAs6F2EnG0ogybVVUdkRunTT2glZU9XAaGmhqskrvKwqXuDfNjEO0LZKWdejEEpnq8aM0tOaw==} + envinfo@7.13.0: + resolution: {integrity: sha512-cvcaMr7KqXVh4nyzGTVqTum+gAiL265x5jUWQIDLq//zOGbW+gSW/C+OWLleY/rs9Qole6AZLMXPbtIFQbqu+Q==} engines: {node: '>=4'} hasBin: true - dev: true - /err-code@2.0.3: + err-code@2.0.3: resolution: {integrity: sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA==} - dev: true - /error-ex@1.3.2: + error-ex@1.3.2: resolution: {integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==} - dependencies: - is-arrayish: 0.2.1 - dev: true - /es-abstract@1.22.3: - resolution: {integrity: sha512-eiiY8HQeYfYH2Con2berK+To6GrK2RxbPawDkGq4UiCQQfZHb6wX9qQqkbpPqaxQFcl8d9QzZqo0tGE0VcrdwA==} + es-abstract@1.23.9: + resolution: {integrity: sha512-py07lI0wjxAC/DcfK1S6G7iANonniZwTISvdPzk9hzeH0IZIshbuuFxLIU96OyF89Yb9hiqWn8M/bY83KY5vzA==} engines: {node: '>= 0.4'} - dependencies: - array-buffer-byte-length: 1.0.0 - arraybuffer.prototype.slice: 1.0.2 - available-typed-arrays: 1.0.5 - call-bind: 1.0.5 - es-set-tostringtag: 2.0.1 - es-to-primitive: 1.2.1 - function.prototype.name: 1.1.6 - get-intrinsic: 1.2.2 - get-symbol-description: 1.0.0 - globalthis: 1.0.3 - gopd: 1.0.1 - has-property-descriptors: 1.0.0 - has-proto: 1.0.1 - has-symbols: 1.0.3 - hasown: 2.0.0 - internal-slot: 1.0.6 - is-array-buffer: 3.0.2 - is-callable: 1.2.7 - is-negative-zero: 2.0.2 - is-regex: 1.1.4 - is-shared-array-buffer: 1.0.2 - is-string: 1.0.7 - is-typed-array: 1.1.12 - is-weakref: 1.0.2 - object-inspect: 1.13.1 - object-keys: 1.1.1 - object.assign: 4.1.4 - regexp.prototype.flags: 1.5.1 - safe-array-concat: 1.0.1 - safe-regex-test: 1.0.0 - string.prototype.trim: 1.2.8 - string.prototype.trimend: 1.0.7 - string.prototype.trimstart: 1.0.7 - typed-array-buffer: 1.0.0 - typed-array-byte-length: 1.0.0 - typed-array-byte-offset: 1.0.0 - typed-array-length: 1.0.4 - unbox-primitive: 1.0.2 - which-typed-array: 1.1.13 - dev: true - /es-module-lexer@1.4.1: - resolution: {integrity: sha512-cXLGjP0c4T3flZJKQSuziYoq7MlT+rnvfZjfp7h+I7K9BNX54kP9nyWvdbwjQ4u1iWbOL4u96fgeZLToQlZC7w==} - - /es-set-tostringtag@2.0.1: - resolution: {integrity: sha512-g3OMbtlwY3QewlqAiMLI47KywjWZoEytKr8pf6iTC8uJq5bIAH52Z9pnQ8pVL6whrCto53JZDuUIsifGeLorTg==} + es-define-property@1.0.1: + resolution: {integrity: sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==} engines: {node: '>= 0.4'} - dependencies: - get-intrinsic: 1.2.2 - has: 1.0.3 - has-tostringtag: 1.0.0 - dev: true - /es-shim-unscopables@1.0.0: - resolution: {integrity: sha512-Jm6GPcCdC30eMLbZ2x8z2WuRwAws3zTBBKuusffYVUrNj/GVSUAZ+xKMaUpfNDR5IbyNA5LJbaecoUVbmUcB1w==} - dependencies: - has: 1.0.3 - dev: true - - /es-to-primitive@1.2.1: - resolution: {integrity: sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==} + es-errors@1.3.0: + resolution: {integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==} engines: {node: '>= 0.4'} - dependencies: - is-callable: 1.2.7 - is-date-object: 1.0.5 - is-symbol: 1.0.4 - dev: true - /esbuild@0.19.11: - resolution: {integrity: sha512-HJ96Hev2hX/6i5cDVwcqiJBBtuo9+FeIJOtZ9W1kA5M6AMJRHUZlpYZ1/SbEwtO0ioNAW8rUooVpC/WehY2SfA==} - engines: {node: '>=12'} + es-module-lexer@1.6.0: + resolution: {integrity: sha512-qqnD1yMU6tk/jnaMosogGySTZP8YtUgAffA9nMN+E/rjxcfRQ6IEk7IiozUjgxKoFHBGjTLnrHB/YC45r/59EQ==} + + es-object-atoms@1.1.1: + resolution: {integrity: sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==} + engines: {node: '>= 0.4'} + + es-set-tostringtag@2.1.0: + resolution: {integrity: sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==} + engines: {node: '>= 0.4'} + + es-shim-unscopables@1.0.2: + resolution: {integrity: sha512-J3yBRXCzDu4ULnQwxyToo/OjdMx6akgVC7K6few0a7F/0wLtmKKN7I73AH5T2836UuXRqN7Qg+IIUw/+YJksRw==} + + es-to-primitive@1.3.0: + resolution: {integrity: sha512-w+5mJ3GuFL+NjVtJlvydShqE1eN3h3PbI7/5LAsYJP/2qtuMXjfL2LpHSRqo4b4eSF5K/DH1JXKUAHSB2UW50g==} + engines: {node: '>= 0.4'} + + esast-util-from-estree@2.0.0: + resolution: {integrity: sha512-4CyanoAudUSBAn5K13H4JhsMH6L9ZP7XbLVe/dKybkxMO7eDyLsT8UHl9TRNrU2Gr9nz+FovfSIjuXWJ81uVwQ==} + + esast-util-from-js@2.0.1: + resolution: {integrity: sha512-8Ja+rNJ0Lt56Pcf3TAmpBZjmx8ZcK5Ts4cAzIOjsjevg9oSXJnl6SUQ2EevU8tv3h6ZLWmoKL5H4fgWvdvfETw==} + + esbuild@0.24.2: + resolution: {integrity: sha512-+9egpBW8I3CD5XPe0n6BfT5fxLzxrlDzqydF3aviG+9ni1lDC/OvMHcxqEFV0+LANZG5R1bFMWfUrjVsdwxJvA==} + engines: {node: '>=18'} hasBin: true - requiresBuild: true - optionalDependencies: - '@esbuild/aix-ppc64': 0.19.11 - '@esbuild/android-arm': 0.19.11 - '@esbuild/android-arm64': 0.19.11 - '@esbuild/android-x64': 0.19.11 - '@esbuild/darwin-arm64': 0.19.11 - '@esbuild/darwin-x64': 0.19.11 - '@esbuild/freebsd-arm64': 0.19.11 - '@esbuild/freebsd-x64': 0.19.11 - '@esbuild/linux-arm': 0.19.11 - '@esbuild/linux-arm64': 0.19.11 - '@esbuild/linux-ia32': 0.19.11 - '@esbuild/linux-loong64': 0.19.11 - '@esbuild/linux-mips64el': 0.19.11 - '@esbuild/linux-ppc64': 0.19.11 - '@esbuild/linux-riscv64': 0.19.11 - '@esbuild/linux-s390x': 0.19.11 - '@esbuild/linux-x64': 0.19.11 - '@esbuild/netbsd-x64': 0.19.11 - '@esbuild/openbsd-x64': 0.19.11 - '@esbuild/sunos-x64': 0.19.11 - '@esbuild/win32-arm64': 0.19.11 - '@esbuild/win32-ia32': 0.19.11 - '@esbuild/win32-x64': 0.19.11 - /esbuild@0.19.5: - resolution: {integrity: sha512-bUxalY7b1g8vNhQKdB24QDmHeY4V4tw/s6Ak5z+jJX9laP5MoQseTOMemAr0gxssjNcH0MCViG8ONI2kksvfFQ==} - engines: {node: '>=12'} - hasBin: true - requiresBuild: true - optionalDependencies: - '@esbuild/android-arm': 0.19.5 - '@esbuild/android-arm64': 0.19.5 - '@esbuild/android-x64': 0.19.5 - '@esbuild/darwin-arm64': 0.19.5 - '@esbuild/darwin-x64': 0.19.5 - '@esbuild/freebsd-arm64': 0.19.5 - '@esbuild/freebsd-x64': 0.19.5 - '@esbuild/linux-arm': 0.19.5 - '@esbuild/linux-arm64': 0.19.5 - '@esbuild/linux-ia32': 0.19.5 - '@esbuild/linux-loong64': 0.19.5 - '@esbuild/linux-mips64el': 0.19.5 - '@esbuild/linux-ppc64': 0.19.5 - '@esbuild/linux-riscv64': 0.19.5 - '@esbuild/linux-s390x': 0.19.5 - '@esbuild/linux-x64': 0.19.5 - '@esbuild/netbsd-x64': 0.19.5 - '@esbuild/openbsd-x64': 0.19.5 - '@esbuild/sunos-x64': 0.19.5 - '@esbuild/win32-arm64': 0.19.5 - '@esbuild/win32-ia32': 0.19.5 - '@esbuild/win32-x64': 0.19.5 - 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 - - /escalade@3.1.1: - resolution: {integrity: sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==} + escalade@3.2.0: + resolution: {integrity: sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==} engines: {node: '>=6'} - /escape-string-regexp@1.0.5: + escape-string-regexp@1.0.5: resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==} engines: {node: '>=0.8.0'} - /escape-string-regexp@2.0.0: + escape-string-regexp@2.0.0: resolution: {integrity: sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==} engines: {node: '>=8'} - dev: true - /escape-string-regexp@4.0.0: + escape-string-regexp@4.0.0: resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} engines: {node: '>=10'} - /escape-string-regexp@5.0.0: + escape-string-regexp@5.0.0: resolution: {integrity: sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==} engines: {node: '>=12'} - /escodegen@2.1.0: + escodegen@2.1.0: resolution: {integrity: sha512-2NlIDTwUWJN0mRPQOdtQBzbUHvdGY2P1VXSyU83Q3xKxM7WHX2Ql8dKq782Q9TgQUNOLEzEYu9bzLNj1q88I5w==} engines: {node: '>=6.0'} hasBin: true - dependencies: - esprima: 4.0.1 - estraverse: 5.3.0 - esutils: 2.0.3 - optionalDependencies: - source-map: 0.6.1 - /eslint-import-resolver-node@0.3.9: + eslint-import-resolver-node@0.3.9: resolution: {integrity: sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==} - dependencies: - debug: 3.2.7 - is-core-module: 2.13.1 - resolve: 1.22.8 - transitivePeerDependencies: - - supports-color - dev: true - /eslint-module-utils@2.8.0(eslint-import-resolver-node@0.3.9)(eslint@8.56.0): - resolution: {integrity: sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw==} + eslint-module-utils@2.12.0: + resolution: {integrity: sha512-wALZ0HFoytlyh/1+4wuZ9FJCD/leWHQzzrxJ8+rebyReSLk7LApMyd3WJaLVoN+D5+WIdJyDK1c6JnE65V4Zyg==} engines: {node: '>=4'} peerDependencies: '@typescript-eslint/parser': '*' @@ -7270,3379 +4000,1725 @@ packages: optional: true eslint-import-resolver-webpack: optional: true - dependencies: - debug: 3.2.7 - eslint: 8.56.0 - eslint-import-resolver-node: 0.3.9 - transitivePeerDependencies: - - supports-color - dev: true - /eslint-plugin-es@4.1.0(eslint@8.56.0): + eslint-plugin-es@4.1.0: resolution: {integrity: sha512-GILhQTnjYE2WorX5Jyi5i4dz5ALWxBIdQECVQavL6s7cI76IZTDWleTHkxz/QT3kvcs2QlGHvKLYsSlPOlPXnQ==} engines: {node: '>=8.10.0'} peerDependencies: eslint: '>=4.19.1' - dependencies: - eslint: 8.56.0 - eslint-utils: 2.1.0 - regexpp: 3.2.0 - dev: false - /eslint-plugin-import@2.29.1(eslint@8.56.0): - resolution: {integrity: sha512-BbPC0cuExzhiMo4Ff1BTVwHpjjv28C5R+btTOGaCRC7UEz801up0JadwkeSk5Ued6TG34uaczuVuH6qyy5YUxw==} + eslint-plugin-import@2.31.0: + resolution: {integrity: sha512-ixmkI62Rbc2/w8Vfxyh1jQRTdRTF52VxwRVHl/ykPAmqG+Nb7/kNn+byLP0LxPgI7zWA16Jt82SybJInmMia3A==} engines: {node: '>=4'} peerDependencies: '@typescript-eslint/parser': '*' - eslint: ^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 + eslint: ^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 || ^9 peerDependenciesMeta: '@typescript-eslint/parser': optional: true - dependencies: - array-includes: 3.1.7 - array.prototype.findlastindex: 1.2.3 - array.prototype.flat: 1.3.2 - array.prototype.flatmap: 1.3.2 - debug: 3.2.7 - doctrine: 2.1.0 - eslint: 8.56.0 - eslint-import-resolver-node: 0.3.9 - eslint-module-utils: 2.8.0(eslint-import-resolver-node@0.3.9)(eslint@8.56.0) - hasown: 2.0.0 - is-core-module: 2.13.1 - is-glob: 4.0.3 - minimatch: 3.1.2 - object.fromentries: 2.0.7 - object.groupby: 1.0.1 - object.values: 1.1.7 - semver: 6.3.1 - tsconfig-paths: 3.15.0 - transitivePeerDependencies: - - eslint-import-resolver-typescript - - eslint-import-resolver-webpack - - supports-color - dev: true - /eslint-plugin-n@15.6.1(eslint@8.56.0): - resolution: {integrity: sha512-R9xw9OtCRxxaxaszTQmQAlPgM+RdGjaL1akWuY/Fv9fRAi8Wj4CUKc6iYVG8QNRjRuo8/BqVYIpfqberJUEacA==} + eslint-plugin-n@15.7.0: + resolution: {integrity: sha512-jDex9s7D/Qial8AGVIHq4W7NswpUD5DPDL2RH8Lzd9EloWUuvUkHfv4FRLMipH5q2UtyurorBkPeNi1wVWNh3Q==} engines: {node: '>=12.22.0'} peerDependencies: eslint: '>=7.0.0' - dependencies: - builtins: 5.0.1 - eslint: 8.56.0 - eslint-plugin-es: 4.1.0(eslint@8.56.0) - eslint-utils: 3.0.0(eslint@8.56.0) - ignore: 5.2.4 - is-core-module: 2.11.0 - minimatch: 3.1.2 - resolve: 1.22.2 - semver: 7.3.8 - dev: false - /eslint-scope@7.2.2: - resolution: {integrity: sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - dependencies: - esrecurse: 4.3.0 - estraverse: 5.3.0 + eslint-scope@8.2.0: + resolution: {integrity: sha512-PHlWUfG6lvPc3yvP5A4PNyBL1W8fkDUccmI21JUu/+GKZBoH/W5u6usENXUrWFRsyoW5ACUjFGgAFQp5gUlb/A==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - /eslint-utils@2.1.0: + eslint-utils@2.1.0: resolution: {integrity: sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==} engines: {node: '>=6'} - dependencies: - eslint-visitor-keys: 1.3.0 - dev: false - /eslint-utils@3.0.0(eslint@8.56.0): + eslint-utils@3.0.0: resolution: {integrity: sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==} engines: {node: ^10.0.0 || ^12.0.0 || >= 14.0.0} peerDependencies: eslint: '>=5' - dependencies: - eslint: 8.56.0 - eslint-visitor-keys: 2.1.0 - dev: false - /eslint-visitor-keys@1.3.0: + eslint-visitor-keys@1.3.0: resolution: {integrity: sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==} engines: {node: '>=4'} - dev: false - /eslint-visitor-keys@2.1.0: + eslint-visitor-keys@2.1.0: resolution: {integrity: sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==} engines: {node: '>=10'} - dev: false - /eslint-visitor-keys@3.4.0: - resolution: {integrity: sha512-HPpKPUBQcAsZOsHAFwTtIKcYlCje62XB7SEAcxjtmW6TD1WVpkS6i6/hOVtTZIl4zGj/mBqpFVGvaDneik+VoQ==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - dev: true - - /eslint-visitor-keys@3.4.3: + eslint-visitor-keys@3.4.3: resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - /eslint@8.56.0: - resolution: {integrity: sha512-Go19xM6T9puCOWntie1/P997aXxFsOi37JIHRWI514Hc6ZnaHGKY9xFhrU65RT6CcBEzZoGG1e6Nq+DT04ZtZQ==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + eslint-visitor-keys@4.2.0: + resolution: {integrity: sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + eslint@9.19.0: + resolution: {integrity: sha512-ug92j0LepKlbbEv6hD911THhoRHmbdXt2gX+VDABAW/Ir7D3nqKdv5Pf5vtlyY6HQMTEP2skXY43ueqTCWssEA==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} hasBin: true - dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.56.0) - '@eslint-community/regexpp': 4.10.0 - '@eslint/eslintrc': 2.1.4 - '@eslint/js': 8.56.0 - '@humanwhocodes/config-array': 0.11.13 - '@humanwhocodes/module-importer': 1.0.1 - '@nodelib/fs.walk': 1.2.8 - '@ungap/structured-clone': 1.2.0 - ajv: 6.12.6 - chalk: 4.1.2 - cross-spawn: 7.0.3 - debug: 4.3.4 - doctrine: 3.0.0 - escape-string-regexp: 4.0.0 - eslint-scope: 7.2.2 - eslint-visitor-keys: 3.4.3 - espree: 9.6.1 - esquery: 1.5.0 - esutils: 2.0.3 - fast-deep-equal: 3.1.3 - file-entry-cache: 6.0.1 - find-up: 5.0.0 - glob-parent: 6.0.2 - globals: 13.20.0 - graphemer: 1.4.0 - ignore: 5.2.4 - imurmurhash: 0.1.4 - is-glob: 4.0.3 - is-path-inside: 3.0.3 - js-yaml: 4.1.0 - json-stable-stringify-without-jsonify: 1.0.1 - levn: 0.4.1 - lodash.merge: 4.6.2 - minimatch: 3.1.2 - natural-compare: 1.4.0 - optionator: 0.9.3 - strip-ansi: 6.0.1 - text-table: 0.2.0 - transitivePeerDependencies: - - supports-color + peerDependencies: + jiti: '*' + peerDependenciesMeta: + jiti: + optional: true - /espree@9.6.1: - resolution: {integrity: sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - dependencies: - acorn: 8.11.3 - acorn-jsx: 5.3.2(acorn@8.11.3) - eslint-visitor-keys: 3.4.3 + espree@10.3.0: + resolution: {integrity: sha512-0QYC8b24HWY8zjRnDTL6RiHfDbAWn63qb4LMj1Z4b076A4une81+z03Kg7l7mn/48PUTqoLptSXez8oknU8Clg==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - /esprima@4.0.1: + esprima@4.0.1: resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==} engines: {node: '>=4'} hasBin: true - /esquery@1.5.0: - resolution: {integrity: sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==} + esquery@1.6.0: + resolution: {integrity: sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==} engines: {node: '>=0.10'} - dependencies: - estraverse: 5.3.0 - /esrecurse@4.3.0: + esrecurse@4.3.0: resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==} engines: {node: '>=4.0'} - dependencies: - estraverse: 5.3.0 - /estraverse@5.3.0: + estraverse@5.3.0: resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==} engines: {node: '>=4.0'} - /estree-util-attach-comments@3.0.0: + estree-util-attach-comments@3.0.0: resolution: {integrity: sha512-cKUwm/HUcTDsYh/9FgnuFqpfquUbwIqwKM26BVCGDPVgvaCl/nDCCjUfiLlx6lsEZ3Z4RFxNbOQ60pkaEwFxGw==} - dependencies: - '@types/estree': 1.0.0 - dev: false - /estree-util-build-jsx@3.0.1: + estree-util-build-jsx@3.0.1: resolution: {integrity: sha512-8U5eiL6BTrPxp/CHbs2yMgP8ftMhR5ww1eIKoWRMlqvltHF8fZn5LRDvTKuxD3DUn+shRbLGqXemcP51oFCsGQ==} - dependencies: - '@types/estree-jsx': 1.0.0 - devlop: 1.1.0 - estree-util-is-identifier-name: 3.0.0 - estree-walker: 3.0.3 - dev: false - /estree-util-is-identifier-name@3.0.0: + estree-util-is-identifier-name@3.0.0: resolution: {integrity: sha512-hFtqIDZTIUZ9BXLb8y4pYGyk6+wekIivNVTcmvk8NoOh+VeRn5y6cEHzbURrWbfp1fIqdVipilzj+lfaadNZmg==} - dev: false - /estree-util-to-js@2.0.0: + estree-util-scope@1.0.0: + resolution: {integrity: sha512-2CAASclonf+JFWBNJPndcOpA8EMJwa0Q8LUFJEKqXLW6+qBvbFZuF5gItbQOs/umBUkjviCSDCbBwU2cXbmrhQ==} + + estree-util-to-js@2.0.0: resolution: {integrity: sha512-WDF+xj5rRWmD5tj6bIqRi6CkLIXbbNQUcxQHzGysQzvHmdYG2G7p/Tf0J0gpxGgkeMZNTIjT/AoSvC9Xehcgdg==} - dependencies: - '@types/estree-jsx': 1.0.0 - astring: 1.8.4 - source-map: 0.7.4 - dev: false - /estree-util-visit@2.0.0: + estree-util-visit@2.0.0: resolution: {integrity: sha512-m5KgiH85xAhhW8Wta0vShLcUvOsh3LLPI2YVwcbio1l7E09NTLL1EyMZFM1OyWowoH0skScNbhOPl4kcBgzTww==} - dependencies: - '@types/estree-jsx': 1.0.0 - '@types/unist': 3.0.1 - dev: false - /estree-walker@1.0.1: + estree-walker@1.0.1: resolution: {integrity: sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg==} - dev: true - /estree-walker@2.0.2: + estree-walker@2.0.2: resolution: {integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==} - dev: true - /estree-walker@3.0.3: + estree-walker@3.0.3: resolution: {integrity: sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==} - dependencies: - '@types/estree': 1.0.0 - /esutils@2.0.3: + esutils@2.0.3: resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} engines: {node: '>=0.10.0'} - /eventemitter3@4.0.7: + eventemitter3@4.0.7: resolution: {integrity: sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==} - /eventemitter3@5.0.1: + eventemitter3@5.0.1: resolution: {integrity: sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==} - /events@1.1.1: + events@1.1.1: resolution: {integrity: sha512-kEcvvCBByWXGnZy6JUlgAp2gBIUjfCAV6P6TgT1/aaQKcmuAEC4OZTV1I4EWQLz2gxZw76atuVyvHhTxvi0Flw==} engines: {node: '>=0.4.x'} - dev: false - /events@3.3.0: + events@3.3.0: resolution: {integrity: sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==} engines: {node: '>=0.8.x'} - dev: true - /execa@5.0.0: + execa@5.0.0: resolution: {integrity: sha512-ov6w/2LCiuyO4RLYGdpFGjkcs0wMTgGE8PrkTHikeUy5iJekXyPIKUjifk5CsE0pt7sMCrMZ3YNqoCj6idQOnQ==} engines: {node: '>=10'} - dependencies: - cross-spawn: 7.0.3 - get-stream: 6.0.1 - human-signals: 2.1.0 - is-stream: 2.0.1 - merge-stream: 2.0.0 - npm-run-path: 4.0.1 - onetime: 5.1.2 - signal-exit: 3.0.7 - strip-final-newline: 2.0.0 - dev: true - /execa@8.0.1: - resolution: {integrity: sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==} - engines: {node: '>=16.17'} - dependencies: - cross-spawn: 7.0.3 - get-stream: 8.0.1 - human-signals: 5.0.0 - is-stream: 3.0.0 - merge-stream: 2.0.0 - npm-run-path: 5.1.0 - onetime: 6.0.0 - signal-exit: 4.1.0 - strip-final-newline: 3.0.0 - - /expand-template@2.0.3: + expand-template@2.0.3: resolution: {integrity: sha512-XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg==} engines: {node: '>=6'} - dev: true - /exponential-backoff@3.1.1: + expect-type@1.1.0: + resolution: {integrity: sha512-bFi65yM+xZgk+u/KRIpekdSYkTB5W1pEf0Lt8Q8Msh7b+eQ7LXVtIB1Bkm4fvclDEL1b2CZkMhv2mOeF8tMdkA==} + engines: {node: '>=12.0.0'} + + exponential-backoff@3.1.1: resolution: {integrity: sha512-dX7e/LHVJ6W3DE1MHWi9S1EYzDESENfLrYohG2G++ovZrYOkm4Knwa0mc1cn84xJOR4KEU0WSchhLbd0UklbHw==} - dev: true - /extend-shallow@2.0.1: - resolution: {integrity: sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==} - engines: {node: '>=0.10.0'} - dependencies: - is-extendable: 0.1.1 - - /extend@3.0.2: + extend@3.0.2: resolution: {integrity: sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==} - /external-editor@3.1.0: + external-editor@3.1.0: resolution: {integrity: sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==} engines: {node: '>=4'} - dependencies: - chardet: 0.7.0 - iconv-lite: 0.4.24 - tmp: 0.0.33 - dev: true - /fast-deep-equal@3.1.3: + fast-deep-equal@3.1.3: resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} - /fast-glob@3.3.2: - resolution: {integrity: sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==} + fast-glob@3.3.3: + resolution: {integrity: sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==} engines: {node: '>=8.6.0'} - dependencies: - '@nodelib/fs.stat': 2.0.5 - '@nodelib/fs.walk': 1.2.8 - glob-parent: 5.1.2 - merge2: 1.4.1 - micromatch: 4.0.5 - /fast-json-stable-stringify@2.1.0: + fast-json-stable-stringify@2.1.0: resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} - /fast-levenshtein@2.0.6: + fast-levenshtein@2.0.6: resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==} - /fast-unique-numbers@8.0.13: - resolution: {integrity: sha512-7OnTFAVPefgw2eBJ1xj2PGGR9FwYzSUso9decayHgCDX4sJkHLdcsYTytTg+tYv+wKF3U8gJuSBz2jJpQV4u/g==} - engines: {node: '>=16.1.0'} - dependencies: - '@babel/runtime': 7.24.1 - tslib: 2.6.2 - dev: false + fast-unique-numbers@9.0.15: + resolution: {integrity: sha512-vHj0sfq6yB37b/RAAsAJ2DzIp0LR5NlUit7nYFp2YfTUcKL9m/Yk0f0kvYPV4oiuFYXdtO5scs3LQX7qiPAVYQ==} + engines: {node: '>=18.2.0'} - /fast-xml-parser@4.3.3: - resolution: {integrity: sha512-coV/D1MhrShMvU6D0I+VAK3umz6hUaxxhL0yp/9RjfiYUfAv14rDhGQL+PLForhMdr0wq3PiV07WtkkNjJjNHg==} + fast-uri@3.0.6: + resolution: {integrity: sha512-Atfo14OibSv5wAp4VWNsFYE1AchQRTv9cBGWET4pZWHzYshFSS9NQI6I57rdKn9croWVMbYFbLhJ+yJvmZIIHw==} + + fast-xml-parser@4.5.1: + resolution: {integrity: sha512-y655CeyUQ+jj7KBbYMc4FG01V8ZQqjN+gDYGJ50RtfsUB8iG9AmwmwoAgeKLJdmueKKMrH1RJ7yXHTSoczdv5w==} hasBin: true - dependencies: - strnum: 1.0.5 - dev: false - /fastq@1.15.0: - resolution: {integrity: sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==} - dependencies: - reusify: 1.0.4 + fastq@1.18.0: + resolution: {integrity: sha512-QKHXPW0hD8g4UET03SdOdunzSouc9N4AuHdsX8XNcTsuz+yYFILVNIX4l9yHABMhiEI9Db0JTTIpu0wB+Y1QQw==} - /fetch-blob@3.2.0: + fdir@6.4.3: + resolution: {integrity: sha512-PMXmW2y1hDDfTSRc9gaXIuCCRpuoz3Kaz8cUelp3smouvfT632ozg2vrT6lJsHKKOF59YLbOGfAWGUcKEfRMQw==} + peerDependencies: + picomatch: ^3 || ^4 + peerDependenciesMeta: + picomatch: + optional: true + + fetch-blob@3.2.0: resolution: {integrity: sha512-7yAQpD2UMJzLi1Dqv7qFYnPbaPx7ZfFK6PiIxQ4PfkGPyNyl2Ugx+a/umUonmKqjhM4DnfbMvdX6otXq83soQQ==} engines: {node: ^12.20 || >= 14.13} - dependencies: - node-domexception: 1.0.0 - web-streams-polyfill: 3.2.1 - dev: true - /fflate@0.8.1: - resolution: {integrity: sha512-/exOvEuc+/iaUm105QIiOt4LpBdMTWsXxqR0HDF35vx3fmaKzw7354gTilCh5rkzEt8WYyG//ku3h3nRmd7CHQ==} - dev: true + fflate@0.8.2: + resolution: {integrity: sha512-cPJU47OaAoCbg0pBvzsgpTPhmhqI5eJjh/JIu8tPj5q+T7iLvW/JAYUqmE7KOB4R1ZyEhzBaIQpQpardBF5z8A==} - /fftjs@0.0.4: + fftjs@0.0.4: resolution: {integrity: sha512-nIWxQyth1LVD6NH8a+YZUv+McjzbOY6dMe4wv6Pq5cGfP+c8Rd1T8Dsd50DCWlNgzSqA3y9lOkpD6dZD3qHa1A==} - dependencies: - babel-plugin-add-module-exports: 0.2.1 - dev: false - /figures@3.2.0: + figures@3.2.0: resolution: {integrity: sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==} engines: {node: '>=8'} - dependencies: - escape-string-regexp: 1.0.5 - dev: true - /file-entry-cache@6.0.1: - resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==} - engines: {node: ^10.12.0 || >=12.0.0} - dependencies: - flat-cache: 3.0.4 + file-entry-cache@8.0.0: + resolution: {integrity: sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==} + engines: {node: '>=16.0.0'} - /file-set@4.0.2: - resolution: {integrity: sha512-fuxEgzk4L8waGXaAkd8cMr73Pm0FxOVkn8hztzUW7BAHhOGH90viQNXbiOsnecCWmfInqU6YmAMwxRMdKETceQ==} - engines: {node: '>=10'} - dependencies: - array-back: 5.0.0 - glob: 7.2.3 - dev: true - - /filelist@1.0.4: + filelist@1.0.4: resolution: {integrity: sha512-w1cEuf3S+DrLCQL7ET6kz+gmlJdbq9J7yXCSjK/OZCPA+qEN1WyF4ZAf0YYJa4/shHJra2t/d/r8SV4Ji+x+8Q==} - dependencies: - minimatch: 5.1.6 - dev: true - /filing-cabinet@4.1.6: - resolution: {integrity: sha512-C+HZbuQTER36sKzGtUhrAPAoK6+/PrrUhYDBQEh3kBRdsyEhkLbp1ML8S0+6e6gCUrUlid+XmubxJrhvL2g/Zw==} - engines: {node: '>=14'} + filing-cabinet@5.0.2: + resolution: {integrity: sha512-RZlFj8lzyu6jqtFBeXNqUjjNG6xm+gwXue3T70pRxw1W40kJwlgq0PSWAmh0nAnn5DHuBIecLXk9+1VKS9ICXA==} + engines: {node: '>=18'} hasBin: true - dependencies: - app-module-path: 2.2.0 - commander: 10.0.1 - enhanced-resolve: 5.15.0 - is-relative-path: 1.0.2 - module-definition: 5.0.1 - module-lookup-amd: 8.0.5 - resolve: 1.22.8 - resolve-dependency-path: 3.0.2 - sass-lookup: 5.0.1 - stylus-lookup: 5.0.1 - tsconfig-paths: 4.2.0 - typescript: 5.3.3 - dev: true - /fill-range@7.0.1: - resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==} + fill-range@7.1.1: + resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==} engines: {node: '>=8'} - dependencies: - to-regex-range: 5.0.1 - /find-replace@3.0.0: - resolution: {integrity: sha512-6Tb2myMioCAgv5kfvP5/PkZZ/ntTpVK39fHY7WkWBgvbeE+VHd/tZuZ4mrC+bxh4cfOZeYKVPaJIZtZXV7GNCQ==} - engines: {node: '>=4.0.0'} - dependencies: - array-back: 3.1.0 - dev: true + find-up-simple@1.0.0: + resolution: {integrity: sha512-q7Us7kcjj2VMePAa02hDAF6d+MzsdsAWEwYyOpwUtlerRBkOEPBCRZrAV4XfcSN8fHAgaD0hP7miwoay6DCprw==} + engines: {node: '>=18'} - /find-up@2.1.0: + find-up@2.1.0: resolution: {integrity: sha512-NWzkk0jSJtTt08+FBFMvXoeZnOJD+jTtsRmBYbAIzJdX6l7dLgR7CTubCM5/eDdPUBvLCeVasP1brfVR/9/EZQ==} engines: {node: '>=4'} - dependencies: - locate-path: 2.0.0 - dev: true - /find-up@4.1.0: + find-up@4.1.0: resolution: {integrity: sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==} engines: {node: '>=8'} - dependencies: - locate-path: 5.0.0 - path-exists: 4.0.0 - /find-up@5.0.0: + find-up@5.0.0: resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==} engines: {node: '>=10'} - dependencies: - locate-path: 6.0.0 - path-exists: 4.0.0 - /find-yarn-workspace-root2@1.2.16: + find-yarn-workspace-root2@1.2.16: resolution: {integrity: sha512-hr6hb1w8ePMpPVUK39S4RlwJzi+xPLuVuG8XlwXU3KD5Yn3qgBWVfy3AzNlDhWvE1EORCE65/Qm26rFQt3VLVA==} - dependencies: - micromatch: 4.0.5 - pkg-dir: 4.2.0 - /flat-cache@3.0.4: - resolution: {integrity: sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==} - engines: {node: ^10.12.0 || >=12.0.0} - dependencies: - flatted: 3.2.9 - rimraf: 3.0.2 + flat-cache@4.0.1: + resolution: {integrity: sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==} + engines: {node: '>=16'} - /flat@5.0.2: + flat@5.0.2: resolution: {integrity: sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==} hasBin: true - dev: true - /flatted@3.2.9: - resolution: {integrity: sha512-36yxDn5H7OFZQla0/jFJmbIKTdZAQHngCedGxiMmpNfEZM0sdEeT+WczLQrjK6D7o2aiyLYDnkw0R3JK0Qv1RQ==} + flatted@3.3.2: + resolution: {integrity: sha512-AiwGJM8YcNOaobumgtng+6NHuOqC3A7MixFeDafM3X9cIUM+xUXoS5Vfgf+OihAYe20fxqNM9yPBXJzRtZ/4eA==} - /flattie@1.1.0: - resolution: {integrity: sha512-xU99gDEnciIwJdGcBmNHnzTJ/w5AT+VFJOu6sTB6WM8diOYNA3Sa+K1DiEBQ7XH4QikQq3iFW1U+jRVcotQnBw==} + flattie@1.1.1: + resolution: {integrity: sha512-9UbaD6XdAL97+k/n+N7JwX46K/M6Zc6KcFYskrYL8wbBV/Uyk0CTAMY0VT+qiK5PM7AIc9aTWYtq65U7T+aCNQ==} engines: {node: '>=8'} - /follow-redirects@1.15.2: - resolution: {integrity: sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==} + follow-redirects@1.15.9: + resolution: {integrity: sha512-gew4GsXizNgdoRyqmyfMHyAmXsZDk6mHkSxZFCzW9gwlbtOW44CDtYavM+y+72qD/Vq2l550kMF52DT8fOLJqQ==} engines: {node: '>=4.0'} peerDependencies: debug: '*' peerDependenciesMeta: debug: optional: true - dev: true - /for-each@0.3.3: - resolution: {integrity: sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==} - dependencies: - is-callable: 1.2.7 - dev: true + for-each@0.3.4: + resolution: {integrity: sha512-kKaIINnFpzW6ffJNDjjyjrk21BkDx38c0xa/klsT8VzLCaMEefv4ZTacrcVR4DmgTeBra++jMDAfS/tS799YDw==} + engines: {node: '>= 0.4'} - /foreground-child@3.1.1: - resolution: {integrity: sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==} + foreground-child@3.3.0: + resolution: {integrity: sha512-Ld2g8rrAyMYFXBhEqMz8ZAHBi4J4uS1i/CxGMDnjyFWddMXLVcDp051DZfu+t7+ab7Wv6SMqpWmyFIj5UbfFvg==} engines: {node: '>=14'} - dependencies: - cross-spawn: 7.0.3 - signal-exit: 4.1.0 - dev: true - /form-data@4.0.0: - resolution: {integrity: sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==} + form-data@4.0.1: + resolution: {integrity: sha512-tzN8e4TX8+kkxGPK8D5u0FNmjPUjw3lwC9lSLxxoB/+GtsJG91CO8bSWy73APlgAZzZbXEYZJuxjkHH2w+Ezhw==} engines: {node: '>= 6'} - dependencies: - asynckit: 0.4.0 - combined-stream: 1.0.8 - mime-types: 2.1.35 - dev: true - /formdata-polyfill@4.0.10: + formdata-polyfill@4.0.10: resolution: {integrity: sha512-buewHzMvYL29jdeQTVILecSaZKnt/RJWjoZCF5OW60Z67/GmSLBkOFM7qh1PI3zFNtJbaZL5eQu1vLfazOwj4g==} engines: {node: '>=12.20.0'} - dependencies: - fetch-blob: 3.2.0 - dev: true - /fraction.js@4.3.7: + fraction.js@4.3.7: resolution: {integrity: sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==} - dev: false - /from2@2.3.0: + fraction.js@5.2.1: + resolution: {integrity: sha512-Ah6t/7YCYjrPUFUFsOsRLMXAdnYM+aQwmojD2Ayb/Ezr82SwES0vuyQ8qZ3QO8n9j7W14VJuVZZet8U3bhSdQQ==} + engines: {node: '>= 12'} + + from2@2.3.0: resolution: {integrity: sha512-OMcX/4IC/uqEPVgGeyfN22LJk6AZrMkRZHxcHBMBvHScDGgwTm2GT2Wkgtocyd3JfZffjj2kYUDXXII0Fk9W0g==} - dependencies: - inherits: 2.0.4 - readable-stream: 2.3.7 - dev: true - /fs-constants@1.0.0: + front-matter@4.0.2: + resolution: {integrity: sha512-I8ZuJ/qG92NWX8i5x1Y8qyj3vizhXS31OxjKDu3LKP+7/qBgfIKValiZIEwoVoJKUHlhWtYrktkxV1XsX+pPlg==} + + fs-constants@1.0.0: resolution: {integrity: sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==} - dev: true - /fs-extra@11.1.1: - resolution: {integrity: sha512-MGIE4HOvQCeUCzmlHs0vXpih4ysz4wg9qiSAu6cd42lVwPbTM1TjV7RusoyQqMmk/95gdQZX72u+YW+c3eEpFQ==} + fs-extra@11.3.0: + resolution: {integrity: sha512-Z4XaCL6dUDHfP/jT25jJKMmtxvuwbkrD1vNSMFlo9lNLY2c5FHYSQgHPRZUjAB26TpDEoW9HCOgplrdbaPV/ew==} engines: {node: '>=14.14'} - dependencies: - graceful-fs: 4.2.11 - jsonfile: 6.1.0 - universalify: 2.0.0 - dev: true - /fs-extra@9.1.0: + fs-extra@9.1.0: resolution: {integrity: sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==} engines: {node: '>=10'} - dependencies: - at-least-node: 1.0.0 - graceful-fs: 4.2.10 - jsonfile: 6.1.0 - universalify: 2.0.0 - dev: true - /fs-minipass@2.1.0: + fs-minipass@2.1.0: resolution: {integrity: sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==} engines: {node: '>= 8'} - dependencies: - minipass: 3.3.6 - dev: true - /fs-minipass@3.0.2: - resolution: {integrity: sha512-2GAfyfoaCDRrM6jaOS3UsBts8yJ55VioXdWcOL7dK9zdAuKT71+WBA4ifnNYqVjYv+4SsPxjK0JT4yIIn4cA/g==} + fs-minipass@3.0.3: + resolution: {integrity: sha512-XUBA9XClHbnJWSfBzjkm6RvPsyg3sryZt06BEQoXcF7EK/xpGaQYJgQKDJSUH5SGZ76Y7pFx1QBnXz09rU5Fbw==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - dependencies: - minipass: 5.0.0 - dev: true - /fs-then-native@2.0.0: - resolution: {integrity: sha512-X712jAOaWXkemQCAmWeg5rOT2i+KOpWz1Z/txk/cW0qlOu2oQ9H61vc5w3X/iyuUEfq/OyaFJ78/cZAQD1/bgA==} - engines: {node: '>=4.0.0'} - dev: true - - /fs.realpath@1.0.0: + fs.realpath@1.0.0: resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} - /fsevents@2.3.3: + 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 - optional: true - /function-bind@1.1.1: - resolution: {integrity: sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==} - - /function-bind@1.1.2: + function-bind@1.1.2: resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==} - /function.prototype.name@1.1.6: - resolution: {integrity: sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==} + function.prototype.name@1.1.8: + resolution: {integrity: sha512-e5iwyodOHhbMr/yNrc7fDYG4qlbIvI5gajyzPnb5TCwyhjApznQh1BMFou9b30SevY43gCJKXycoCBjMbsuW0Q==} engines: {node: '>= 0.4'} - dependencies: - call-bind: 1.0.5 - define-properties: 1.2.1 - es-abstract: 1.22.3 - functions-have-names: 1.2.3 - dev: true - /functions-have-names@1.2.3: + functions-have-names@1.2.3: resolution: {integrity: sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==} - dev: true - /gauge@4.0.4: - resolution: {integrity: sha512-f9m+BEN5jkg6a0fZjleidjN51VE1X+mPFQ2DJ0uv1V39oCLCbsGe6yjbBnp7eK7z/+GAon99a3nHuqbuuthyPg==} - engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} - dependencies: - aproba: 2.0.0 - color-support: 1.1.3 - console-control-strings: 1.1.0 - has-unicode: 2.0.1 - signal-exit: 3.0.7 - string-width: 4.2.3 - strip-ansi: 6.0.1 - wide-align: 1.1.5 - dev: true - - /gensync@1.0.0-beta.2: + gensync@1.0.0-beta.2: resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==} engines: {node: '>=6.9.0'} - /get-amd-module-type@5.0.1: - resolution: {integrity: sha512-jb65zDeHyDjFR1loOVk0HQGM5WNwoGB8aLWy3LKCieMKol0/ProHkhO2X1JxojuN10vbz1qNn09MJ7tNp7qMzw==} - engines: {node: '>=14'} - dependencies: - ast-module-types: 5.0.0 - node-source-walk: 6.0.2 - dev: true + get-amd-module-type@6.0.0: + resolution: {integrity: sha512-hFM7oivtlgJ3d6XWD6G47l8Wyh/C6vFw5G24Kk1Tbq85yh5gcM8Fne5/lFhiuxB+RT6+SI7I1ThB9lG4FBh3jw==} + engines: {node: '>=18'} - /get-caller-file@2.0.5: + get-caller-file@2.0.5: resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} engines: {node: 6.* || 8.* || >= 10.*} - /get-east-asian-width@1.2.0: - resolution: {integrity: sha512-2nk+7SIVb14QrgXFHcm84tD4bKQz0RxPuMT8Ag5KPOq7J5fEmAg0UbXdTOSHqNuHSU28k55qnceesxXRZGzKWA==} + get-east-asian-width@1.3.0: + resolution: {integrity: sha512-vpeMIQKxczTD/0s2CdEWHcb0eeJe6TFjxb+J5xgX7hScxqrGuyjmv4c1D4A/gelKfyox0gJJwIHF+fLjeaM8kQ==} engines: {node: '>=18'} - /get-func-name@2.0.2: - resolution: {integrity: sha512-8vXOvuE167CtIc3OyItco7N/dpRtBbYOsPsXCz7X/PMnlGjYjSGuZJgM1Y7mmew7BKf9BqvLX2tnOVy1BBUsxQ==} - dev: true + get-intrinsic@1.2.7: + resolution: {integrity: sha512-VW6Pxhsrk0KAOqs3WEd0klDiF/+V7gQOpAvY1jVU/LHmaD/kQO4523aiJuikX/QAKYiW6x8Jh+RJej1almdtCA==} + engines: {node: '>= 0.4'} - /get-intrinsic@1.2.2: - resolution: {integrity: sha512-0gSo4ml/0j98Y3lngkFEot/zhiCeWsbYIlZ+uZOVgzLyLaUw7wxUL+nCTP0XJvJg1AXulJRI3UJi8GsbDuxdGA==} - dependencies: - function-bind: 1.1.2 - has-proto: 1.0.1 - has-symbols: 1.0.3 - hasown: 2.0.0 - dev: true - - /get-own-enumerable-property-symbols@3.0.2: + get-own-enumerable-property-symbols@3.0.2: resolution: {integrity: sha512-I0UBV/XOz1XkIJHEUDMZAbzCThU/H8DxmSfmdGcKPnVhu2VfFqr34jr9777IyaTYvxjedWhqVIilEDsCdP5G6g==} - dev: true - /get-pkg-repo@4.2.1: + get-pkg-repo@4.2.1: resolution: {integrity: sha512-2+QbHjFRfGB74v/pYWjd5OhU3TDIC2Gv/YKUTk/tCvAz0pkn/Mz6P3uByuBimLOcPvN2jYdScl3xGFSrx0jEcA==} engines: {node: '>=6.9.0'} hasBin: true - dependencies: - '@hutson/parse-repository-url': 3.0.2 - hosted-git-info: 4.1.0 - through2: 2.0.5 - yargs: 16.2.0 - dev: true - /get-port@5.1.1: + get-port@5.1.1: resolution: {integrity: sha512-g/Q1aTSDOxFpchXC4i8ZWvxA1lnPqx/JHqcpIw0/LX9T8x/GBbi6YnlN5nhaKIFkT8oFsscUKgDJYxfwfS6QsQ==} engines: {node: '>=8'} - dev: true - /get-stdin@8.0.0: + get-proto@1.0.1: + resolution: {integrity: sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==} + engines: {node: '>= 0.4'} + + get-stdin@8.0.0: resolution: {integrity: sha512-sY22aA6xchAzprjyqmSEQv4UbAAzRN0L2dQB0NlN5acTTK9Don6nhoc3eAbUnpZiCANAMfd/+40kVdKfFygohg==} engines: {node: '>=10'} - dev: false - /get-stream@6.0.0: + get-stream@6.0.0: resolution: {integrity: sha512-A1B3Bh1UmL0bidM/YX2NsCOTnGJePL9rO/M+Mw3m9f2gUpfokS0hi5Eah0WSUEWZdZhIZtMjkIYS7mDfOqNHbg==} engines: {node: '>=10'} - dev: true - /get-stream@6.0.1: - resolution: {integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==} - engines: {node: '>=10'} - dev: true - - /get-stream@8.0.1: - resolution: {integrity: sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==} - engines: {node: '>=16'} - - /get-symbol-description@1.0.0: - resolution: {integrity: sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==} + get-symbol-description@1.1.0: + resolution: {integrity: sha512-w9UMqWwJxHNOvoNzSJ2oPF5wvYcvP7jUvYzhp67yEhTi17ZDBBC1z9pTdGuzjD+EFIqLSYRweZjqfiPzQ06Ebg==} engines: {node: '>= 0.4'} - dependencies: - call-bind: 1.0.5 - get-intrinsic: 1.2.2 - dev: true - /git-raw-commits@3.0.0: + git-raw-commits@3.0.0: resolution: {integrity: sha512-b5OHmZ3vAgGrDn/X0kS+9qCfNKWe4K/jFnhwzVWWg0/k5eLa3060tZShrRg8Dja5kPc+YjS0Gc6y7cRr44Lpjw==} engines: {node: '>=14'} hasBin: true - dependencies: - dargs: 7.0.0 - meow: 8.1.2 - split2: 3.2.2 - dev: true - /git-remote-origin-url@2.0.0: + git-remote-origin-url@2.0.0: resolution: {integrity: sha512-eU+GGrZgccNJcsDH5LkXR3PB9M958hxc7sbA8DFJjrv9j4L2P/eZfKhM+QD6wyzpiv+b1BpK0XrYCxkovtjSLw==} engines: {node: '>=4'} - dependencies: - gitconfiglocal: 1.0.0 - pify: 2.3.0 - dev: true - /git-semver-tags@5.0.1: + git-semver-tags@5.0.1: resolution: {integrity: sha512-hIvOeZwRbQ+7YEUmCkHqo8FOLQZCEn18yevLHADlFPZY02KJGsu5FZt9YW/lybfK2uhWFI7Qg/07LekJiTv7iA==} engines: {node: '>=14'} hasBin: true - dependencies: - meow: 8.1.2 - semver: 7.5.4 - dev: true - /git-up@7.0.0: + git-up@7.0.0: resolution: {integrity: sha512-ONdIrbBCFusq1Oy0sC71F5azx8bVkvtZtMJAsv+a6lz5YAmbNnLD6HAB4gptHZVLPR8S2/kVN6Gab7lryq5+lQ==} - dependencies: - is-ssh: 1.4.0 - parse-url: 8.1.0 - dev: true - /git-url-parse@13.1.0: - resolution: {integrity: sha512-5FvPJP/70WkIprlUZ33bm4UAaFdjcLkJLpWft1BeZKqwR0uhhNGoKwlUaPtVb4LxCSQ++erHapRak9kWGj+FCA==} - dependencies: - git-up: 7.0.0 - dev: true + git-url-parse@14.0.0: + resolution: {integrity: sha512-NnLweV+2A4nCvn4U/m2AoYu0pPKlsmhK9cknG7IMwsjFY1S2jxM+mAhsDxyxfCIGfGaD+dozsyX4b6vkYc83yQ==} - /gitconfiglocal@1.0.0: + gitconfiglocal@1.0.0: resolution: {integrity: sha512-spLUXeTAVHxDtKsJc8FkFVgFtMdEN9qPGpL23VfSHx4fP4+Ds097IXLvymbnDH8FnmxX5Nr9bPw3A+AQ6mWEaQ==} - dependencies: - ini: 1.3.8 - dev: true - /github-from-package@0.0.0: + github-from-package@0.0.0: resolution: {integrity: sha512-SyHy3T1v2NUXn29OsWdxmK6RwHD+vkj3v8en8AOBZ1wBQ/hCAQ5bAQTD02kW4W9tUp/3Qh6J8r9EvntiyCmOOw==} - dev: true - /github-slugger@2.0.0: + github-slugger@2.0.0: resolution: {integrity: sha512-IaOQ9puYtjrkq7Y0Ygl9KDZnrf/aiUJYUpVf89y8kyaxbRG7Y1SrX/jaumrv81vc61+kiMempujsM3Yw7w5qcw==} - /glob-parent@5.1.2: + glob-parent@5.1.2: resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} engines: {node: '>= 6'} - dependencies: - is-glob: 4.0.3 - /glob-parent@6.0.2: + glob-parent@6.0.2: resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==} engines: {node: '>=10.13.0'} - dependencies: - is-glob: 4.0.3 - /glob@10.2.2: - resolution: {integrity: sha512-Xsa0BcxIC6th9UwNjZkhrMtNo/MnyRL8jGCP+uEwhA5oFOCY1f2s1/oNKY47xQ0Bg5nkjsfAEIej1VeH62bDDQ==} - engines: {node: '>=16 || 14 >=14.17'} + glob@10.4.5: + resolution: {integrity: sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==} hasBin: true - dependencies: - foreground-child: 3.1.1 - jackspeak: 2.1.1 - minimatch: 9.0.0 - minipass: 5.0.0 - path-scurry: 1.7.0 - dev: true - /glob@10.3.10: - resolution: {integrity: sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g==} - engines: {node: '>=16 || 14 >=14.17'} - hasBin: true - dependencies: - foreground-child: 3.1.1 - jackspeak: 2.3.6 - minimatch: 9.0.3 - minipass: 5.0.0 - path-scurry: 1.10.1 - dev: true - - /glob@7.1.4: - resolution: {integrity: sha512-hkLPepehmnKk41pUGm3sYxoFs/umurYfYJCerbXEyFIWcAzvpipAgVkBqqT9RBKMGjnq6kMuyYwha6csxbiM1A==} - dependencies: - fs.realpath: 1.0.0 - inflight: 1.0.6 - inherits: 2.0.4 - minimatch: 3.1.2 - once: 1.4.0 - path-is-absolute: 1.0.1 - dev: true - - /glob@7.1.6: - resolution: {integrity: sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==} - dependencies: - fs.realpath: 1.0.0 - inflight: 1.0.6 - inherits: 2.0.4 - minimatch: 3.1.2 - once: 1.4.0 - path-is-absolute: 1.0.1 - dev: false - - /glob@7.2.3: + glob@7.2.3: resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} - dependencies: - fs.realpath: 1.0.0 - inflight: 1.0.6 - inherits: 2.0.4 - minimatch: 3.1.2 - once: 1.4.0 - path-is-absolute: 1.0.1 + deprecated: Glob versions prior to v9 are no longer supported - /glob@8.1.0: - resolution: {integrity: sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==} - engines: {node: '>=12'} - dependencies: - fs.realpath: 1.0.0 - inflight: 1.0.6 - inherits: 2.0.4 - minimatch: 5.1.6 - once: 1.4.0 - dev: true - - /glob@9.3.5: + glob@9.3.5: resolution: {integrity: sha512-e1LleDykUz2Iu+MTYdkSsuWX8lvAjAcs0Xef0lNIu0S2wOAzuTxCJtcd9S3cijlwYF18EsU3rzb8jPVobxDh9Q==} engines: {node: '>=16 || 14 >=14.17'} - dependencies: - fs.realpath: 1.0.0 - minimatch: 8.0.4 - minipass: 4.2.8 - path-scurry: 1.7.0 - dev: true - /globals@11.12.0: + globalize@0.1.1: + resolution: {integrity: sha512-5e01v8eLGfuQSOvx2MsDMOWS0GFtCx1wPzQSmcHw4hkxFzrQDBO3Xwg/m8Hr/7qXMrHeOIE29qWVzyv06u1TZA==} + + globals@11.12.0: resolution: {integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==} engines: {node: '>=4'} - /globals@13.20.0: - resolution: {integrity: sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ==} - engines: {node: '>=8'} - dependencies: - type-fest: 0.20.2 + globals@14.0.0: + resolution: {integrity: sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==} + engines: {node: '>=18'} - /globalthis@1.0.3: - resolution: {integrity: sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==} + globals@15.14.0: + resolution: {integrity: sha512-OkToC372DtlQeje9/zHIo5CT8lRP/FUgEOKBEhU4e0abL7J7CD24fD9ohiLN5hagG/kWCYj4K5oaxxtj2Z0Dig==} + engines: {node: '>=18'} + + globalthis@1.0.4: + resolution: {integrity: sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==} engines: {node: '>= 0.4'} - dependencies: - define-properties: 1.2.1 - dev: true - /globby@11.1.0: + globby@11.1.0: resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==} engines: {node: '>=10'} - dependencies: - array-union: 2.1.0 - dir-glob: 3.0.1 - fast-glob: 3.3.2 - ignore: 5.2.4 - merge2: 1.4.1 - slash: 3.0.0 - dev: true - /gonzales-pe@4.3.0: + gonzales-pe@4.3.0: resolution: {integrity: sha512-otgSPpUmdWJ43VXyiNgEYE4luzHCL2pz4wQ0OnDluC6Eg4Ko3Vexy/SrSynglw/eR+OhkzmqFCZa/OFa/RgAOQ==} engines: {node: '>=0.6.0'} hasBin: true - dependencies: - minimist: 1.2.7 - dev: true - /google-closure-compiler-java@20221102.0.1: + google-closure-compiler-java@20221102.0.1: resolution: {integrity: sha512-rMKLEma3uSe/6MGHtivDezTv4u5iaDEyxoy9No+1WruPSZ5h1gBZLONcfCA8JaoGojFPdHZI1qbwT0EveEWnAg==} - dev: false - /google-closure-compiler-linux@20221102.0.1: + google-closure-compiler-linux@20221102.0.1: resolution: {integrity: sha512-rj1E1whT4j/giidQ44v4RoO8GcvU81VU9YB5RlRM0hWDvCGWjQasDABGnF/YLWLl5PXAAfJpa/hy8ckv5/r97g==} cpu: [x32, x64] os: [linux] - requiresBuild: true - dev: false - optional: true - /google-closure-compiler-osx@20221102.0.1: + google-closure-compiler-osx@20221102.0.1: resolution: {integrity: sha512-Cv993yr9a2DLFgYnsv4m6dNUk5jousd6W6la12x2fDbhxTLewYrw7CrCaVEVw1SU3XErVmdHOZQjFsVMhcZjCw==} cpu: [x32, x64, arm64] os: [darwin] - requiresBuild: true - dev: false - optional: true - /google-closure-compiler-windows@20221102.0.1: + google-closure-compiler-windows@20221102.0.1: resolution: {integrity: sha512-jRwHGekG/oDihHdKAEiYN5z0cBF+brL0bYtuEOXx4fAmq5tHe4OxKtSEEprCnVZZL0aG/boGprACPvsDRsXT7Q==} cpu: [x32, x64] os: [win32] - requiresBuild: true - dev: false - optional: true - /google-closure-compiler@20221102.0.1: + google-closure-compiler@20221102.0.1: resolution: {integrity: sha512-edAlsyJEsy2I983xWBlBfdSme16uyY007HM2OwPOoWPEFgmR100ggUabJbIegXZgbSLH51kyeJMQKuWhiHgzcA==} engines: {node: '>=10'} hasBin: true - dependencies: - chalk: 4.1.2 - google-closure-compiler-java: 20221102.0.1 - minimist: 1.2.7 - vinyl: 2.2.1 - vinyl-sourcemaps-apply: 0.2.1 - optionalDependencies: - google-closure-compiler-linux: 20221102.0.1 - google-closure-compiler-osx: 20221102.0.1 - google-closure-compiler-windows: 20221102.0.1 - dev: false - /google-closure-library@20221102.0.0: + google-closure-library@20221102.0.0: resolution: {integrity: sha512-M5+LWPS99tMB9dOGpZjLT9CdIYpnwBZiwB+dCmZFOOvwJiOWytntzJ/a/hoNF6zxD15l3GWwRJiEkL636D6DRQ==} - dev: false - /gopd@1.0.1: - resolution: {integrity: sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==} - dependencies: - get-intrinsic: 1.2.2 - dev: true + gopd@1.2.0: + resolution: {integrity: sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==} + engines: {node: '>= 0.4'} - /graceful-fs@4.2.10: - resolution: {integrity: sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==} - - /graceful-fs@4.2.11: + graceful-fs@4.2.11: resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} - dev: true - /graphemer@1.4.0: - resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==} + h3@1.14.0: + resolution: {integrity: sha512-ao22eiONdgelqcnknw0iD645qW0s9NnrJHr5OBz4WOMdBdycfSas1EQf1wXRsm+PcB2Yoj43pjBPwqIpJQTeWg==} - /gray-matter@4.0.3: - resolution: {integrity: sha512-5v6yZd4JK3eMI3FqqCouswVqwugaA9r4dNZB1wwcmrD02QkV5H0y7XBQW8QwQqEaZY1pM9aqORSORhJRdNK44Q==} - engines: {node: '>=6.0'} - dependencies: - js-yaml: 3.14.1 - kind-of: 6.0.3 - section-matter: 1.0.0 - strip-bom-string: 1.0.0 - - /handlebars@4.7.7: - resolution: {integrity: sha512-aAcXm5OAfE/8IXkcZvCepKU3VzW1/39Fb5ZuqMtgI/hT8X2YgoMvBY5dLhq/cpOvw7Lk1nK/UF71aLG/ZnVYRA==} + handlebars@1.1.2: + resolution: {integrity: sha512-6lekK3aSHE7XnEqEs+JWQJRSRdCqJYHEVjEfWWZv9pjLUYZNeP26EtlgOrpDCSX+k5N1m74urTbztgBOCko1Kg==} engines: {node: '>=0.4.7'} hasBin: true - dependencies: - minimist: 1.2.7 - neo-async: 2.6.2 - source-map: 0.6.1 - wordwrap: 1.0.0 - optionalDependencies: - uglify-js: 3.17.4 - dev: true - /hard-rejection@2.1.0: + handlebars@4.7.8: + resolution: {integrity: sha512-vafaFqs8MZkRrSX7sFVUdo3ap/eNiLnb4IakshzvP56X5Nr1iGKAIqdX6tMlm6HcNRIkr6AxO5jFEoJzzpT8aQ==} + engines: {node: '>=0.4.7'} + hasBin: true + + hard-rejection@2.1.0: resolution: {integrity: sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA==} engines: {node: '>=6'} - dev: true - /has-bigints@1.0.2: - resolution: {integrity: sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==} - dev: true + has-bigints@1.1.0: + resolution: {integrity: sha512-R3pbpkcIqv2Pm3dUwgjclDRVmWpTJW2DcMzcIhEXEx1oh/CEMObMm3KLmRJOdvhM7o4uQBnwr8pzRK2sJWIqfg==} + engines: {node: '>= 0.4'} - /has-flag@3.0.0: - resolution: {integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==} - engines: {node: '>=4'} - - /has-flag@4.0.0: + has-flag@4.0.0: resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} engines: {node: '>=8'} - /has-property-descriptors@1.0.0: - resolution: {integrity: sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==} - dependencies: - get-intrinsic: 1.2.2 - dev: true + has-property-descriptors@1.0.2: + resolution: {integrity: sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==} - /has-proto@1.0.1: - resolution: {integrity: sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==} + has-proto@1.2.0: + resolution: {integrity: sha512-KIL7eQPfHQRC8+XluaIw7BHUwwqL19bQn4hzNgdr+1wXoU0KKj6rufu47lhY7KbJR2C6T6+PfyN0Ea7wkSS+qQ==} engines: {node: '>= 0.4'} - dev: true - /has-symbols@1.0.3: - resolution: {integrity: sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==} + has-symbols@1.1.0: + resolution: {integrity: sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==} engines: {node: '>= 0.4'} - dev: true - /has-tostringtag@1.0.0: - resolution: {integrity: sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==} + has-tostringtag@1.0.2: + resolution: {integrity: sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==} engines: {node: '>= 0.4'} - dependencies: - has-symbols: 1.0.3 - dev: true - /has-unicode@2.0.1: + has-unicode@2.0.1: resolution: {integrity: sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ==} - dev: true - /has@1.0.3: - resolution: {integrity: sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==} + has@1.0.4: + resolution: {integrity: sha512-qdSAmqLF6209RFj4VVItywPMbm3vWylknmB3nvNiUIs72xAimcM8nVYxYr7ncvZq5qzk9MKIZR8ijqD/1QuYjQ==} engines: {node: '>= 0.4.0'} - dependencies: - function-bind: 1.1.1 - /hasown@2.0.0: - resolution: {integrity: sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA==} + hasown@2.0.2: + resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==} engines: {node: '>= 0.4'} - dependencies: - function-bind: 1.1.2 - /hast-util-from-html@2.0.1: - resolution: {integrity: sha512-RXQBLMl9kjKVNkJTIO6bZyb2n+cUH8LFaSSzo82jiLT6Tfc+Pt7VQCS+/h3YwG4jaNE2TA2sdJisGWR+aJrp0g==} - dependencies: - '@types/hast': 3.0.2 - devlop: 1.1.0 - hast-util-from-parse5: 8.0.1 - parse5: 7.1.2 - vfile: 6.0.1 - vfile-message: 4.0.2 + hast-util-from-html@2.0.3: + resolution: {integrity: sha512-CUSRHXyKjzHov8yKsQjGOElXy/3EKpyX56ELnkHH34vDVw1N1XSQ1ZcAvTyAPtGqLTuKP/uxM+aLkSPqF/EtMw==} - /hast-util-from-parse5@8.0.1: - resolution: {integrity: sha512-Er/Iixbc7IEa7r/XLtuG52zoqn/b3Xng/w6aZQ0xGVxzhw5xUFxcRqdPzP6yFi/4HBYRaifaI5fQ1RH8n0ZeOQ==} - dependencies: - '@types/hast': 3.0.2 - '@types/unist': 3.0.1 - devlop: 1.1.0 - hastscript: 8.0.0 - property-information: 6.2.0 - vfile: 6.0.1 - vfile-location: 5.0.2 - web-namespaces: 2.0.1 + hast-util-from-parse5@8.0.2: + resolution: {integrity: sha512-SfMzfdAi/zAoZ1KkFEyyeXBn7u/ShQrfd675ZEE9M3qj+PMFX05xubzRyF76CCSJu8au9jgVxDV1+okFvgZU4A==} - /hast-util-has-property@1.0.4: + hast-util-has-property@1.0.4: resolution: {integrity: sha512-ghHup2voGfgFoHMGnaLHOjbYFACKrRh9KFttdCzMCbFoBMJXiNi2+XTrPP8+q6cDJM/RSqlCfVWrjp1H201rZg==} - dev: false - /hast-util-heading-rank@3.0.0: + hast-util-heading-rank@3.0.0: resolution: {integrity: sha512-EJKb8oMUXVHcWZTDepnr+WNbfnXKFNf9duMesmr4S8SXTJBJ9M4Yok08pu9vxdJwdlGRhVumk9mEhkEvKGifwA==} - dependencies: - '@types/hast': 3.0.2 - dev: false - /hast-util-is-element@3.0.0: + hast-util-is-element@3.0.0: resolution: {integrity: sha512-Val9mnv2IWpLbNPqc/pUem+a7Ipj2aHacCwgNfTiK0vJKl0LF+4Ba4+v1oPHFpf3bLYmreq0/l3Gud9S5OH42g==} - dependencies: - '@types/hast': 3.0.2 - dev: false - /hast-util-parse-selector@4.0.0: + hast-util-parse-selector@4.0.0: resolution: {integrity: sha512-wkQCkSYoOGCRKERFWcxMVMOcYE2K1AaNLU8DXS9arxnLOUEWbOXKXiJUNzEpqZ3JOKpnha3jkFrumEjVliDe7A==} - dependencies: - '@types/hast': 3.0.2 - /hast-util-raw@9.0.1: - resolution: {integrity: sha512-5m1gmba658Q+lO5uqL5YNGQWeh1MYWZbZmWrM5lncdcuiXuo5E2HT/CIOp0rLF8ksfSwiCVJ3twlgVRyTGThGA==} - dependencies: - '@types/hast': 3.0.2 - '@types/unist': 3.0.1 - '@ungap/structured-clone': 1.2.0 - hast-util-from-parse5: 8.0.1 - hast-util-to-parse5: 8.0.0 - html-void-elements: 3.0.0 - mdast-util-to-hast: 13.0.2 - parse5: 7.1.2 - unist-util-position: 5.0.0 - unist-util-visit: 5.0.0 - vfile: 6.0.1 - web-namespaces: 2.0.1 - zwitch: 2.0.4 + hast-util-raw@9.1.0: + resolution: {integrity: sha512-Y8/SBAHkZGoNkpzqqfCldijcuUKh7/su31kEBp67cFY09Wy0mTRgtsLYsiIxMJxlu0f6AA5SUTbDR8K0rxnbUw==} - /hast-util-to-estree@3.1.0: - resolution: {integrity: sha512-lfX5g6hqVh9kjS/B9E2gSkvHH4SZNiQFiqWS0x9fENzEl+8W12RqdRxX6d/Cwxi30tPQs3bIO+aolQJNp1bIyw==} - dependencies: - '@types/estree': 1.0.0 - '@types/estree-jsx': 1.0.0 - '@types/hast': 3.0.2 - comma-separated-tokens: 2.0.3 - devlop: 1.1.0 - estree-util-attach-comments: 3.0.0 - estree-util-is-identifier-name: 3.0.0 - hast-util-whitespace: 3.0.0 - mdast-util-mdx-expression: 2.0.0 - mdast-util-mdx-jsx: 3.0.0 - mdast-util-mdxjs-esm: 2.0.1 - property-information: 6.2.0 - space-separated-tokens: 2.0.2 - style-to-object: 0.4.1 - unist-util-position: 5.0.0 - zwitch: 2.0.4 - transitivePeerDependencies: - - supports-color - dev: false + hast-util-to-estree@3.1.1: + resolution: {integrity: sha512-IWtwwmPskfSmma9RpzCappDUitC8t5jhAynHhc1m2+5trOgsrp7txscUSavc5Ic8PATyAjfrCK1wgtxh2cICVQ==} - /hast-util-to-html@9.0.0: - resolution: {integrity: sha512-IVGhNgg7vANuUA2XKrT6sOIIPgaYZnmLx3l/CCOAK0PtgfoHrZwX7jCSYyFxHTrGmC6S9q8aQQekjp4JPZF+cw==} - dependencies: - '@types/hast': 3.0.2 - '@types/unist': 3.0.1 - ccount: 2.0.1 - comma-separated-tokens: 2.0.3 - hast-util-raw: 9.0.1 - hast-util-whitespace: 3.0.0 - html-void-elements: 3.0.0 - mdast-util-to-hast: 13.0.2 - property-information: 6.2.0 - space-separated-tokens: 2.0.2 - stringify-entities: 4.0.3 - zwitch: 2.0.4 + hast-util-to-html@9.0.4: + resolution: {integrity: sha512-wxQzXtdbhiwGAUKrnQJXlOPmHnEehzphwkK7aluUPQ+lEc1xefC8pblMgpp2w5ldBTEfveRIrADcrhGIWrlTDA==} - /hast-util-to-jsx-runtime@2.3.0: - resolution: {integrity: sha512-H/y0+IWPdsLLS738P8tDnrQ8Z+dj12zQQ6WC11TIM21C8WFVoIxcqWXf2H3hiTVZjF1AWqoimGwrTWecWrnmRQ==} - dependencies: - '@types/estree': 1.0.0 - '@types/hast': 3.0.2 - '@types/unist': 3.0.1 - comma-separated-tokens: 2.0.3 - devlop: 1.1.0 - estree-util-is-identifier-name: 3.0.0 - hast-util-whitespace: 3.0.0 - mdast-util-mdx-expression: 2.0.0 - mdast-util-mdx-jsx: 3.0.0 - mdast-util-mdxjs-esm: 2.0.1 - property-information: 6.2.0 - space-separated-tokens: 2.0.2 - style-to-object: 1.0.5 - unist-util-position: 5.0.0 - vfile-message: 4.0.2 - transitivePeerDependencies: - - supports-color - dev: false + hast-util-to-jsx-runtime@2.3.2: + resolution: {integrity: sha512-1ngXYb+V9UT5h+PxNRa1O1FYguZK/XL+gkeqvp7EdHlB9oHUG0eYRo/vY5inBdcqo3RkPMC58/H94HvkbfGdyg==} - /hast-util-to-parse5@8.0.0: + hast-util-to-parse5@8.0.0: resolution: {integrity: sha512-3KKrV5ZVI8if87DVSi1vDeByYrkGzg4mEfeu4alwgmmIeARiBLKCZS2uw5Gb6nU9x9Yufyj3iudm6i7nl52PFw==} - dependencies: - '@types/hast': 3.0.2 - comma-separated-tokens: 2.0.3 - devlop: 1.1.0 - property-information: 6.2.0 - space-separated-tokens: 2.0.2 - web-namespaces: 2.0.1 - zwitch: 2.0.4 - /hast-util-to-string@3.0.0: - resolution: {integrity: sha512-OGkAxX1Ua3cbcW6EJ5pT/tslVb90uViVkcJ4ZZIMW/R33DX/AkcJcRrPebPwJkHYwlDHXz4aIwvAAaAdtrACFA==} - dependencies: - '@types/hast': 3.0.2 - dev: false + hast-util-to-string@3.0.1: + resolution: {integrity: sha512-XelQVTDWvqcl3axRfI0xSeoVKzyIFPwsAGSLIsKdJKQMXDYJS4WYrBNF/8J7RdhIcFI2BOHgAifggsvsxp/3+A==} - /hast-util-to-text@4.0.0: - resolution: {integrity: sha512-EWiE1FSArNBPUo1cKWtzqgnuRQwEeQbQtnFJRYV1hb1BWDgrAlBU0ExptvZMM/KSA82cDpm2sFGf3Dmc5Mza3w==} - dependencies: - '@types/hast': 3.0.2 - '@types/unist': 3.0.1 - hast-util-is-element: 3.0.0 - unist-util-find-after: 5.0.0 - dev: false + hast-util-to-text@4.0.2: + resolution: {integrity: sha512-KK6y/BN8lbaq654j7JgBydev7wuNMcID54lkRav1P0CaE1e47P72AWWPiGKXTJU271ooYzcvTAn/Zt0REnvc7A==} - /hast-util-whitespace@3.0.0: + hast-util-whitespace@3.0.0: resolution: {integrity: sha512-88JUN06ipLwsnv+dVn+OIYOvAuvBMy/Qoi6O7mQHxdPXpjy+Cd6xRkWwux7DKO+4sYILtLBRIKgsdpS2gQc7qw==} - dependencies: - '@types/hast': 3.0.2 - /hastscript@8.0.0: - resolution: {integrity: sha512-dMOtzCEd3ABUeSIISmrETiKuyydk1w0pa+gE/uormcTpSYuaNJPbX1NU3JLyscSLjwAQM8bWMhhIlnCqnRvDTw==} - dependencies: - '@types/hast': 3.0.2 - comma-separated-tokens: 2.0.3 - hast-util-parse-selector: 4.0.0 - property-information: 6.2.0 - space-separated-tokens: 2.0.2 + hastscript@9.0.0: + resolution: {integrity: sha512-jzaLBGavEDKHrc5EfFImKN7nZKKBdSLIdGvCwDZ9TfzbF2ffXiov8CKE445L2Z1Ek2t/m4SKQ2j6Ipv7NyUolw==} - /hosted-git-info@2.8.9: + hosted-git-info@2.8.9: resolution: {integrity: sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==} - dev: true - /hosted-git-info@3.0.8: - resolution: {integrity: sha512-aXpmwoOhRBrw6X3j0h5RloK4x1OzsxMPyxqIHyNfSe2pypkVTZFpEiRoSipPEPlMrh0HW/XsjkJ5WgnCirpNUw==} - engines: {node: '>=10'} - dependencies: - lru-cache: 6.0.0 - dev: true - - /hosted-git-info@4.1.0: + hosted-git-info@4.1.0: resolution: {integrity: sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==} engines: {node: '>=10'} - dependencies: - lru-cache: 6.0.0 - dev: true - /hosted-git-info@6.1.1: - resolution: {integrity: sha512-r0EI+HBMcXadMrugk0GCQ+6BQV39PiWAZVfq7oIckeGiN7sjRGyQxPdft3nQekFTCQbYxLBH+/axZMeH8UX6+w==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - dependencies: - lru-cache: 7.18.3 - dev: true - - /hosted-git-info@7.0.1: - resolution: {integrity: sha512-+K84LB1DYwMHoHSgaOY/Jfhw3ucPmSET5v98Ke/HdNSw4a0UktWzyW1mjhjpuxxTqOOsfWT/7iVshHmVZ4IpOA==} + hosted-git-info@7.0.2: + resolution: {integrity: sha512-puUZAUKT5m8Zzvs72XWy3HtvVbTWljRE66cP60bxJzAqf2DgICo7lYTY2IHUmLnNpjYvw5bvmoHvPc0QO2a62w==} engines: {node: ^16.14.0 || >=18.0.0} - dependencies: - lru-cache: 10.1.0 - dev: true - /html-escaper@3.0.3: + hs2js@0.1.0: + resolution: {integrity: sha512-THlUIMX8tZf6gtbz5RUZ8xQUyKJEItsx7bxEBcouFIEWjeo90376WMocj3JEz6qTv5nM+tjo3vNvLf89XruMvg==} + + html-escaper@2.0.2: + resolution: {integrity: sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==} + + html-escaper@3.0.3: resolution: {integrity: sha512-RuMffC89BOWQoY0WKGpIhn5gX3iI54O6nRA0yC124NYVtzjmFWBIiFd8M0x+ZdX0P9R4lADg1mgP8C7PxGOWuQ==} - /html-void-elements@3.0.0: + html-void-elements@3.0.0: resolution: {integrity: sha512-bEqo66MRXsUGxWHV5IP0PUiAWwoEjba4VCzg0LjFJBpchPaTfyfCKTG6bc5F8ucKec3q5y6qOdGyYTSBEvhCrg==} - /http-cache-semantics@4.1.1: + http-cache-semantics@4.1.1: resolution: {integrity: sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==} - /http-proxy-agent@5.0.0: - resolution: {integrity: sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==} - engines: {node: '>= 6'} - dependencies: - '@tootallnate/once': 2.0.0 - agent-base: 6.0.2 - debug: 4.3.4 - transitivePeerDependencies: - - supports-color - dev: true - - /http-proxy-agent@7.0.0: - resolution: {integrity: sha512-+ZT+iBxVUQ1asugqnD6oWoRiS25AkjNfG085dKJGtGxkdwLQrMKU5wJr2bOOFAXzKcTuqq+7fZlTMgG3SRfIYQ==} + http-proxy-agent@7.0.2: + resolution: {integrity: sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==} engines: {node: '>= 14'} - dependencies: - agent-base: 7.1.0 - debug: 4.3.4 - transitivePeerDependencies: - - supports-color - dev: true - /https-proxy-agent@5.0.1: + https-proxy-agent@5.0.1: resolution: {integrity: sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==} engines: {node: '>= 6'} - dependencies: - agent-base: 6.0.2 - debug: 4.3.4 - transitivePeerDependencies: - - supports-color - dev: true - /https-proxy-agent@7.0.2: - resolution: {integrity: sha512-NmLNjm6ucYwtcUmL7JQC1ZQ57LmHP4lT15FQ8D61nak1rO6DH+fz5qNK2Ap5UN4ZapYICE3/0KodcLYSPsPbaA==} + https-proxy-agent@7.0.6: + resolution: {integrity: sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw==} engines: {node: '>= 14'} - dependencies: - agent-base: 7.1.0 - debug: 4.3.4 - transitivePeerDependencies: - - supports-color - dev: true - /human-signals@2.1.0: + human-signals@2.1.0: resolution: {integrity: sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==} engines: {node: '>=10.17.0'} - dev: true - /human-signals@5.0.0: - resolution: {integrity: sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==} - engines: {node: '>=16.17.0'} - - /humanize-ms@1.2.1: - resolution: {integrity: sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ==} - dependencies: - ms: 2.1.3 - dev: true - - /hydra-synth@1.3.29: + hydra-synth@1.3.29: resolution: {integrity: sha512-KK1wMGpo9AuVivvD9SP7ukPS7T/rMaYA7XMlnRF3oFbTw9u4l4aVTyexG+KmCd5XDD/4GulR1jVzySZlAuGPCw==} - dependencies: - meyda: 5.6.2 - raf-loop: 1.1.3 - regl: 1.7.0 - transitivePeerDependencies: - - supports-color - dev: false - /iconv-lite@0.4.24: + iconv-lite@0.4.24: resolution: {integrity: sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==} engines: {node: '>=0.10.0'} - dependencies: - safer-buffer: 2.1.2 - /iconv-lite@0.6.3: + iconv-lite@0.6.3: resolution: {integrity: sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==} engines: {node: '>=0.10.0'} - requiresBuild: true - dependencies: - safer-buffer: 2.1.2 - dev: true - optional: true - /idb@7.1.1: + idb@7.1.1: resolution: {integrity: sha512-gchesWBzyvGHRO9W8tzUWFDycow5gwjvFKfyV9FF32Y7F50yZMp7mP+T2mJIWFx49zicqyC4uefHM17o6xKIVQ==} - dev: true - /ieee754@1.2.1: + ieee754@1.2.1: resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==} - /ignore-walk@5.0.1: - resolution: {integrity: sha512-yemi4pMf51WKT7khInJqAvsIGzoqYXblnsz0ql8tM+yi1EKYTY1evX4NAbJrLL/Aanr2HyZeluqU+Oi7MGHokw==} - engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} - dependencies: - minimatch: 5.1.6 - dev: true - - /ignore-walk@6.0.4: - resolution: {integrity: sha512-t7sv42WkwFkyKbivUCglsQW5YWMskWtbEf4MNKX5u/CCWHKSPzN4FtBQGsQZgCLbxOzpVlcbWVK5KB3auIOjSw==} + ignore-walk@6.0.5: + resolution: {integrity: sha512-VuuG0wCnjhnylG1ABXT3dAuIpTNDs/G8jlpmwXY03fXoXy/8ZK8/T+hMzt8L4WnrLCJgdybqgPagnF/f97cg3A==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - dependencies: - minimatch: 9.0.0 - dev: true - /ignore@5.2.4: - resolution: {integrity: sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==} + ignore@5.3.2: + resolution: {integrity: sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==} engines: {node: '>= 4'} - /import-fresh@3.3.0: + import-fresh@3.3.0: resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==} engines: {node: '>=6'} - dependencies: - parent-module: 1.0.1 - resolve-from: 4.0.0 - /import-local@3.1.0: + import-local@3.1.0: resolution: {integrity: sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==} engines: {node: '>=8'} hasBin: true - dependencies: - pkg-dir: 4.2.0 - resolve-cwd: 3.0.0 - dev: true - /import-meta-resolve@4.0.0: - resolution: {integrity: sha512-okYUR7ZQPH+efeuMJGlq4f8ubUgO50kByRPyt/Cy1Io4PSRsPjxME+YlVaCOx+NIToW7hCsZNFJyTPFFKepRSA==} + import-meta-resolve@4.1.0: + resolution: {integrity: sha512-I6fiaX09Xivtk+THaMfAwnA3MVA5Big1WHF1Dfx9hFuvNIWpXnorlkzhcQf6ehrqQiiZECRt1poOAkPmer3ruw==} - /imurmurhash@0.1.4: + imurmurhash@0.1.4: resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==} engines: {node: '>=0.8.19'} - /indent-string@4.0.0: + indent-string@4.0.0: resolution: {integrity: sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==} engines: {node: '>=8'} - dev: true - /inflight@1.0.6: + inflight@1.0.6: resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==} - dependencies: - once: 1.4.0 - wrappy: 1.0.2 + deprecated: This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful. - /inherits@2.0.4: + inherits@2.0.4: resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} - /ini@1.3.8: + ini@1.3.8: resolution: {integrity: sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==} - dev: true - /init-package-json@5.0.0: - resolution: {integrity: sha512-kBhlSheBfYmq3e0L1ii+VKe3zBTLL5lDCDWR+f9dLmEGSB3MqLlMlsolubSsyI88Bg6EA+BIMlomAnQ1SwgQBw==} + ini@4.1.3: + resolution: {integrity: sha512-X7rqawQBvfdjS10YU1y1YVreA3SsLrW9dX2CewP2EbBJM4ypVNLDkO5y04gejPwKIY9lR+7r9gn3rFPt/kmWFg==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - dependencies: - npm-package-arg: 10.1.0 - promzard: 1.0.0 - read: 2.1.0 - read-package-json: 6.0.4 - semver: 7.5.4 - validate-npm-package-license: 3.0.4 - validate-npm-package-name: 5.0.0 - dev: true - /inline-style-parser@0.1.1: - resolution: {integrity: sha512-7NXolsK4CAS5+xvdj5OMMbI962hU/wvwoxk+LWR9Ek9bVtyuuYScDN6eS0rUm6TxApFpw7CX1o4uJzcd4AyD3Q==} - dev: false + init-package-json@6.0.3: + resolution: {integrity: sha512-Zfeb5ol+H+eqJWHTaGca9BovufyGeIfr4zaaBorPmJBMrJ+KBnN+kQx2ZtXdsotUTgldHmHQV44xvUWOUA7E2w==} + engines: {node: ^16.14.0 || >=18.0.0} - /inline-style-parser@0.2.2: - resolution: {integrity: sha512-EcKzdTHVe8wFVOGEYXiW9WmJXPjqi1T+234YpJr98RiFYKHV3cdy1+3mkTE+KHTHxFFLH51SfaGOoUdW+v7ViQ==} - dev: false + inline-style-parser@0.2.4: + resolution: {integrity: sha512-0aO8FkhNZlj/ZIbNi7Lxxr12obT7cL1moPfE4tg1LkX7LlLfC6DeX4l2ZEud1ukP9jNQyNnfzQVqwbwmAATY4Q==} - /inquirer@8.2.5: - resolution: {integrity: sha512-QAgPDQMEgrDssk1XiwwHoOGYF9BAbUcc1+j+FhEvaOt8/cKRqyLn0U5qA6F74fGhTMGxf92pOvPBeh29jQJDTQ==} + inquirer@8.2.6: + resolution: {integrity: sha512-M1WuAmb7pn9zdFRtQYk26ZBoY043Sse0wVDdk4Bppr+JOXyQYybdtvK+l9wUibhtjdjvtoiNy8tk+EgsYIUqKg==} engines: {node: '>=12.0.0'} - dependencies: - ansi-escapes: 4.3.2 - chalk: 4.1.2 - cli-cursor: 3.1.0 - cli-width: 3.0.0 - external-editor: 3.1.0 - figures: 3.2.0 - lodash: 4.17.21 - mute-stream: 0.0.8 - ora: 5.4.1 - run-async: 2.4.1 - rxjs: 7.8.0 - string-width: 4.2.3 - strip-ansi: 6.0.1 - through: 2.3.8 - wrap-ansi: 7.0.0 - dev: true - /internal-slot@1.0.6: - resolution: {integrity: sha512-Xj6dv+PsbtwyPpEflsejS+oIZxmMlV44zAhG479uYu89MsjcYOhCFnNyKrkJrihbsiasQyY0afoCl/9BLR65bg==} + internal-slot@1.1.0: + resolution: {integrity: sha512-4gd7VpWNQNB4UKKCFFVcp1AVv+FMOgs9NKzjHKusc8jTMhd5eL1NqQqOpE0KzMds804/yHlglp3uxgluOqAPLw==} engines: {node: '>= 0.4'} - dependencies: - get-intrinsic: 1.2.2 - hasown: 2.0.0 - side-channel: 1.0.4 - dev: true - /into-stream@6.0.0: + into-stream@6.0.0: resolution: {integrity: sha512-XHbaOAvP+uFKUFsOgoNPRjLkwB+I22JFPFe5OjTkQ0nwgj6+pSjb4NmB6VMxaPshLiOf+zcpOCBQuLwC1KHhZA==} engines: {node: '>=10'} - dependencies: - from2: 2.3.0 - p-is-promise: 3.0.0 - dev: true - /ip@2.0.0: - resolution: {integrity: sha512-WKa+XuLG1A1R0UWhl2+1XQSi+fZWMsYKffMZTTYsiZaUD8k2yDAj5atimTUD2TZkyCkNEeYE5NhFZmupOGtjYQ==} - dev: true + ip-address@9.0.5: + resolution: {integrity: sha512-zHtQzGojZXTwZTHQqra+ETKd4Sn3vgi7uBmlPoXVWZqYvuKmtI0l/VZTjqGmJY9x88GGOaZ9+G9ES8hC4T4X8g==} + engines: {node: '>= 12'} - /is-alphabetical@2.0.1: + iron-webcrypto@1.2.1: + resolution: {integrity: sha512-feOM6FaSr6rEABp/eDfVseKyTMDt+KGpeB35SkVn9Tyn0CqvVsY3EwI0v5i8nMHyJnzCIQf7nsy3p41TPkJZhg==} + + is-alphabetical@2.0.1: resolution: {integrity: sha512-FWyyY60MeTNyeSRpkM2Iry0G9hpr7/9kD40mD/cGQEuilcZYS4okz8SN2Q6rLCJ8gbCt6fN+rC+6tMGS99LaxQ==} - dev: false - /is-alphanumerical@2.0.1: + is-alphanumerical@2.0.1: resolution: {integrity: sha512-hmbYhX/9MUMF5uh7tOXyK/n0ZvWpad5caBA17GsC6vyuCqaWliRG5K1qS9inmUhEMaOBIW7/whAnSwveW/LtZw==} - dependencies: - is-alphabetical: 2.0.1 - is-decimal: 2.0.1 - dev: false - /is-array-buffer@3.0.2: - resolution: {integrity: sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w==} - dependencies: - call-bind: 1.0.5 - get-intrinsic: 1.2.2 - is-typed-array: 1.1.12 - dev: true + is-array-buffer@3.0.5: + resolution: {integrity: sha512-DDfANUiiG2wC1qawP66qlTugJeL5HyzMpfr8lLK+jMQirGzNod0B12cFB/9q838Ru27sBwfw78/rdoU7RERz6A==} + engines: {node: '>= 0.4'} - /is-arrayish@0.2.1: + is-arrayish@0.2.1: resolution: {integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==} - dev: true - /is-arrayish@0.3.2: + is-arrayish@0.3.2: resolution: {integrity: sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==} - /is-bigint@1.0.4: - resolution: {integrity: sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==} - dependencies: - has-bigints: 1.0.2 - dev: true + is-async-function@2.1.1: + resolution: {integrity: sha512-9dgM/cZBnNvjzaMYHVoxxfPj2QXt22Ev7SuuPrs+xav0ukGB0S6d4ydZdEiM48kLx5kDV+QBPrpVnFyefL8kkQ==} + engines: {node: '>= 0.4'} - /is-binary-path@2.1.0: + is-bigint@1.1.0: + resolution: {integrity: sha512-n4ZT37wG78iz03xPRKJrHTdZbe3IicyucEtdRsV5yglwc3GyUfbAfpSeD0FJ41NbUNSt5wbhqfp1fS+BgnvDFQ==} + engines: {node: '>= 0.4'} + + is-binary-path@2.1.0: resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==} engines: {node: '>=8'} - dependencies: - binary-extensions: 2.2.0 - /is-boolean-object@1.1.2: - resolution: {integrity: sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==} + is-boolean-object@1.2.1: + resolution: {integrity: sha512-l9qO6eFlUETHtuihLcYOaLKByJ1f+N4kthcU9YjHy3N+B3hWv0y/2Nd0mu/7lTFnRQHTrSdXF50HQ3bl5fEnng==} engines: {node: '>= 0.4'} - dependencies: - call-bind: 1.0.5 - has-tostringtag: 1.0.0 - dev: true - /is-buffer@2.0.5: - resolution: {integrity: sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ==} - engines: {node: '>=4'} - - /is-callable@1.2.7: + is-callable@1.2.7: resolution: {integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==} engines: {node: '>= 0.4'} - dev: true - /is-ci@3.0.1: + is-ci@3.0.1: resolution: {integrity: sha512-ZYvCgrefwqoQ6yTyYUbQu64HsITZ3NfKX1lzaEYdkTDcfKzzCI/wthRRYKkdjHKFVgNiXKAKm65Zo1pk2as/QQ==} hasBin: true - dependencies: - ci-info: 3.9.0 - dev: true - /is-core-module@2.11.0: - resolution: {integrity: sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw==} - dependencies: - has: 1.0.3 - - /is-core-module@2.13.1: - resolution: {integrity: sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==} - dependencies: - hasown: 2.0.0 - - /is-core-module@2.9.0: - resolution: {integrity: sha512-+5FPy5PnwmO3lvfMb0AsoPaBG+5KHUI0wYFXOtYPnVVVspTFUuMZNfNaNVRt3FZadstu2c8x23vykRW/NBoU6A==} - dependencies: - has: 1.0.3 - dev: true - - /is-date-object@1.0.5: - resolution: {integrity: sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==} + is-core-module@2.16.1: + resolution: {integrity: sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==} engines: {node: '>= 0.4'} - dependencies: - has-tostringtag: 1.0.0 - dev: true - /is-decimal@2.0.1: + is-core-module@2.9.0: + resolution: {integrity: sha512-+5FPy5PnwmO3lvfMb0AsoPaBG+5KHUI0wYFXOtYPnVVVspTFUuMZNfNaNVRt3FZadstu2c8x23vykRW/NBoU6A==} + + is-data-view@1.0.2: + resolution: {integrity: sha512-RKtWF8pGmS87i2D6gqQu/l7EYRlVdfzemCJN/P3UOs//x1QE7mfhvzHIApBTRf7axvT6DMGwSwBXYCT0nfB9xw==} + engines: {node: '>= 0.4'} + + is-date-object@1.1.0: + resolution: {integrity: sha512-PwwhEakHVKTdRNVOw+/Gyh0+MzlCl4R6qKvkhuvLtPMggI1WAHt9sOwZxQLSGpUaDnrdyDsomoRgNnCfKNSXXg==} + engines: {node: '>= 0.4'} + + is-decimal@2.0.1: resolution: {integrity: sha512-AAB9hiomQs5DXWcRB1rqsxGUstbRroFOPPVAomNk/3XHR5JyEZChOyTWe2oayKnsSsr/kcGqF+z6yuH6HHpN0A==} - dev: false - /is-docker@2.2.1: + is-docker@2.2.1: resolution: {integrity: sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==} engines: {node: '>=8'} hasBin: true - dev: true - /is-docker@3.0.0: + is-docker@3.0.0: resolution: {integrity: sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} hasBin: true - /is-extendable@0.1.1: - resolution: {integrity: sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==} - engines: {node: '>=0.10.0'} - - /is-extglob@2.1.1: + is-extglob@2.1.1: resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} engines: {node: '>=0.10.0'} - /is-fullwidth-code-point@2.0.0: + is-finalizationregistry@1.1.1: + resolution: {integrity: sha512-1pC6N8qWJbWoPtEjgcL2xyhQOP491EQjeUo3qTKcmV8YSDDJrOepfG8pcC7h/QgnQHYSv0mJ3Z/ZWxmatVrysg==} + engines: {node: '>= 0.4'} + + is-fullwidth-code-point@2.0.0: resolution: {integrity: sha512-VHskAKYM8RfSFXwee5t5cbN5PZeq1Wrh6qd5bkyiXIf6UQcN6w/A0eXM9r6t8d+GYOh+o6ZhiEnb88LN/Y8m2w==} engines: {node: '>=4'} - dev: false - /is-fullwidth-code-point@3.0.0: + is-fullwidth-code-point@3.0.0: resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} engines: {node: '>=8'} - /is-glob@4.0.3: + is-generator-function@1.1.0: + resolution: {integrity: sha512-nPUB5km40q9e8UfN/Zc24eLlzdSf9OfKByBw9CIdw4H1giPMeA0OIJvbchsCu4npfI2QcMVBsGEBHKZ7wLTWmQ==} + engines: {node: '>= 0.4'} + + is-glob@4.0.3: resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} engines: {node: '>=0.10.0'} - dependencies: - is-extglob: 2.1.1 - /is-hexadecimal@2.0.1: + is-hexadecimal@2.0.1: resolution: {integrity: sha512-DgZQp241c8oO6cA1SbTEWiXeoxV42vlcJxgH+B3hi1AiqqKruZR3ZGF8In3fj4+/y/7rHvlOZLZtgJ/4ttYGZg==} - dev: false - /is-inside-container@1.0.0: + is-inside-container@1.0.0: resolution: {integrity: sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA==} engines: {node: '>=14.16'} hasBin: true - dependencies: - is-docker: 3.0.0 - /is-interactive@1.0.0: + is-interactive@1.0.0: resolution: {integrity: sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==} engines: {node: '>=8'} - dev: true - /is-interactive@2.0.0: - resolution: {integrity: sha512-qP1vozQRI+BMOPcjFzrjXuQvdak2pHNUMZoeG2eRbiSqyvbEf/wQtEOTOX1guk6E3t36RkaqiSt8A/6YElNxLQ==} - engines: {node: '>=12'} - - /is-lambda@1.0.1: + is-lambda@1.0.1: resolution: {integrity: sha512-z7CMFGNrENq5iFB9Bqo64Xk6Y9sg+epq1myIcdHaGnbMTYOxvzsEtdYqQUylB7LxfkvgrrjP32T6Ywciio9UIQ==} - dev: true - /is-module@1.0.0: + is-map@2.0.3: + resolution: {integrity: sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==} + engines: {node: '>= 0.4'} + + is-module@1.0.0: resolution: {integrity: sha512-51ypPSPCoTEIN9dy5Oy+h4pShgJmPCygKfyRCISBI+JoWT/2oJvK8QPxmwv7b/p239jXrm9M1mlQbyKJ5A152g==} - dev: true - /is-negative-zero@2.0.2: - resolution: {integrity: sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==} + is-number-object@1.1.1: + resolution: {integrity: sha512-lZhclumE1G6VYD8VHe35wFaIif+CTy5SJIi5+3y4psDgWu4wPDoBhF8NxUOinEc7pHgiTsT6MaBb92rKhhD+Xw==} engines: {node: '>= 0.4'} - dev: true - /is-number-object@1.0.7: - resolution: {integrity: sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==} - engines: {node: '>= 0.4'} - dependencies: - has-tostringtag: 1.0.0 - dev: true - - /is-number@7.0.0: + is-number@7.0.0: resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} engines: {node: '>=0.12.0'} - /is-obj@1.0.1: + is-obj@1.0.1: resolution: {integrity: sha512-l4RyHgRqGN4Y3+9JHVrNqO+tN0rV5My76uW5/nuO4K1b6vw5G8d/cmFjP9tRfEsdhZNt0IFdZuK/c2Vr4Nb+Qg==} engines: {node: '>=0.10.0'} - dev: true - /is-obj@2.0.0: + is-obj@2.0.0: resolution: {integrity: sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==} engines: {node: '>=8'} - dev: true - /is-path-inside@3.0.3: - resolution: {integrity: sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==} - engines: {node: '>=8'} - - /is-plain-obj@1.1.0: + is-plain-obj@1.1.0: resolution: {integrity: sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg==} engines: {node: '>=0.10.0'} - dev: true - /is-plain-obj@4.1.0: + is-plain-obj@4.1.0: resolution: {integrity: sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==} engines: {node: '>=12'} - /is-plain-object@2.0.4: + is-plain-object@2.0.4: resolution: {integrity: sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==} engines: {node: '>=0.10.0'} - dependencies: - isobject: 3.0.1 - dev: true - /is-plain-object@5.0.0: + is-plain-object@5.0.0: resolution: {integrity: sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==} engines: {node: '>=0.10.0'} - dev: true - /is-reference@3.0.1: - resolution: {integrity: sha512-baJJdQLiYaJdvFbJqXrcGv3WU3QCzBlUcI5QhbesIm6/xPsvmO+2CDoi/GMOFBQEQm+PXkwOPrp9KK5ozZsp2w==} - dependencies: - '@types/estree': 1.0.0 - dev: false - - /is-regex@1.1.4: - resolution: {integrity: sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==} + is-regex@1.2.1: + resolution: {integrity: sha512-MjYsKHO5O7mCsmRGxWcLWheFqN9DJ/2TmngvjKXihe6efViPqc274+Fx/4fYj/r03+ESvBdTXK0V6tA3rgez1g==} engines: {node: '>= 0.4'} - dependencies: - call-bind: 1.0.5 - has-tostringtag: 1.0.0 - dev: true - /is-regexp@1.0.0: + is-regexp@1.0.0: resolution: {integrity: sha512-7zjFAPO4/gwyQAAgRRmqeEeyIICSdmCqa3tsVHMdBzaXXRiqopZL4Cyghg/XulGWrtABTpbnYYzzIRffLkP4oA==} engines: {node: '>=0.10.0'} - dev: true - /is-relative-path@1.0.2: - resolution: {integrity: sha512-i1h+y50g+0hRbBD+dbnInl3JlJ702aar58snAeX+MxBAPvzXGej7sYoPMhlnykabt0ZzCJNBEyzMlekuQZN7fA==} - dev: true + is-set@2.0.3: + resolution: {integrity: sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg==} + engines: {node: '>= 0.4'} - /is-shared-array-buffer@1.0.2: - resolution: {integrity: sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==} - dependencies: - call-bind: 1.0.5 - dev: true + is-shared-array-buffer@1.0.4: + resolution: {integrity: sha512-ISWac8drv4ZGfwKl5slpHG9OwPNty4jOWPRIhBpxOoD+hqITiwuipOQ2bNthAzwA3B4fIjO4Nln74N0S9byq8A==} + engines: {node: '>= 0.4'} - /is-ssh@1.4.0: + is-ssh@1.4.0: resolution: {integrity: sha512-x7+VxdxOdlV3CYpjvRLBv5Lo9OJerlYanjwFrPR9fuGPjCiNiCzFgAWpiLAohSbsnH4ZAys3SBh+hq5rJosxUQ==} - dependencies: - protocols: 2.0.1 - dev: true - /is-stream@2.0.0: + is-stream@2.0.0: resolution: {integrity: sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw==} engines: {node: '>=8'} - dev: true - /is-stream@2.0.1: + is-stream@2.0.1: resolution: {integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==} engines: {node: '>=8'} - dev: true - /is-stream@3.0.0: - resolution: {integrity: sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - - /is-string@1.0.7: - resolution: {integrity: sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==} + is-string@1.1.1: + resolution: {integrity: sha512-BtEeSsoaQjlSPBemMQIrY1MY0uM6vnS1g5fmufYOtnxLGUZM2178PKbhsk7Ffv58IX+ZtcvoGwccYsh0PglkAA==} engines: {node: '>= 0.4'} - dependencies: - has-tostringtag: 1.0.0 - dev: true - /is-symbol@1.0.4: - resolution: {integrity: sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==} + is-symbol@1.1.1: + resolution: {integrity: sha512-9gGx6GTtCQM73BgmHQXfDmLtfjjTUDSyoxTCbp5WtoixAhfgsDirWIcVQ/IHpvI5Vgd5i/J5F7B9cN/WlVbC/w==} engines: {node: '>= 0.4'} - dependencies: - has-symbols: 1.0.3 - dev: true - /is-text-path@1.0.1: + is-text-path@1.0.1: resolution: {integrity: sha512-xFuJpne9oFz5qDaodwmmG08e3CawH/2ZV8Qqza1Ko7Sk8POWbkRdwIoAWVhqvq0XeUzANEhKo2n0IXUGBm7A/w==} engines: {node: '>=0.10.0'} - dependencies: - text-extensions: 1.9.0 - dev: true - /is-typed-array@1.1.12: - resolution: {integrity: sha512-Z14TF2JNG8Lss5/HMqt0//T9JeHXttXy5pH/DBU4vi98ozO2btxzq9MwYDZYnKwU8nRsz/+GVFVRDq3DkVuSPg==} + is-typed-array@1.1.15: + resolution: {integrity: sha512-p3EcsicXjit7SaskXHs1hA91QxgTw46Fv6EFKKGS5DRFLD8yKnohjF3hxoju94b/OcMZoQukzpPpBE9uLVKzgQ==} engines: {node: '>= 0.4'} - dependencies: - which-typed-array: 1.1.13 - dev: true - /is-unicode-supported@0.1.0: + is-unicode-supported@0.1.0: resolution: {integrity: sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==} engines: {node: '>=10'} - dev: true - /is-unicode-supported@1.3.0: - resolution: {integrity: sha512-43r2mRvz+8JRIKnWJ+3j8JtjRKZ6GmjzfaE/qiBJnikNnYv/6bagRJ1kUhNk8R5EX/GkobD+r+sfxCPJsiKBLQ==} - engines: {node: '>=12'} - - /is-url-superb@4.0.0: + is-url-superb@4.0.0: resolution: {integrity: sha512-GI+WjezhPPcbM+tqE9LnmsY5qqjwHzTvjJ36wxYX5ujNXefSUJ/T17r5bqDV8yLhcgB59KTPNOc9O9cmHTPWsA==} engines: {node: '>=10'} - dev: true - /is-url@1.2.4: + is-url@1.2.4: resolution: {integrity: sha512-ITvGim8FhRiYe4IQ5uHSkj7pVaPDrCTkNd3yq3cV7iZAcJdHTUMPMEHcqSOy9xZ9qFenQCvi+2wjH9a1nXqHww==} - dev: true - /is-weakref@1.0.2: - resolution: {integrity: sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==} - dependencies: - call-bind: 1.0.5 - dev: true + is-weakmap@2.0.2: + resolution: {integrity: sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w==} + engines: {node: '>= 0.4'} - /is-wsl@2.2.0: + is-weakref@1.1.0: + resolution: {integrity: sha512-SXM8Nwyys6nT5WP6pltOwKytLV7FqQ4UiibxVmW+EIosHcmCqkkjViTb5SNssDlkCiEYRP1/pdWUKVvZBmsR2Q==} + engines: {node: '>= 0.4'} + + is-weakset@2.0.4: + resolution: {integrity: sha512-mfcwb6IzQyOKTs84CQMrOwW4gQcaTOAWJ0zzJCl2WSPDrWk/OzDaImWFH3djXhb24g4eudZfLRozAvPGw4d9hQ==} + engines: {node: '>= 0.4'} + + is-wsl@2.2.0: resolution: {integrity: sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==} engines: {node: '>=8'} - dependencies: - is-docker: 2.2.1 - dev: true - /is-wsl@3.1.0: + is-wsl@3.1.0: resolution: {integrity: sha512-UcVfVfaK4Sc4m7X3dUSoHoozQGBEFeDC+zVo06t98xe8CzHSZZBekNXH+tu0NalHolcJ/QAGqS46Hef7QXBIMw==} engines: {node: '>=16'} - dependencies: - is-inside-container: 1.0.0 - /isarray@0.0.1: + isarray@0.0.1: resolution: {integrity: sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==} - dev: false - /isarray@1.0.0: + isarray@1.0.0: resolution: {integrity: sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==} - /isarray@2.0.5: + isarray@2.0.5: resolution: {integrity: sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==} - dev: true - /isexe@2.0.0: + isexe@2.0.0: resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} - /isexe@3.1.1: + isexe@3.1.1: resolution: {integrity: sha512-LpB/54B+/2J5hqQ7imZHfdU31OlgQqx7ZicVlkm9kzg9/w8GKLEcFfJl/t7DCEDueOyBAD6zCCwTO6Fzs0NoEQ==} engines: {node: '>=16'} - dev: true - /isobject@3.0.1: + isobject@3.0.1: resolution: {integrity: sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==} engines: {node: '>=0.10.0'} - dev: true - /jackspeak@2.1.1: - resolution: {integrity: sha512-juf9stUEwUaILepraGOWIJTLwg48bUnBmRqd2ln2Os1sW987zeoj/hzhbvRB95oMuS2ZTpjULmdwHNX4rzZIZw==} - engines: {node: '>=14'} - dependencies: - cliui: 8.0.1 - optionalDependencies: - '@pkgjs/parseargs': 0.11.0 - dev: true + istanbul-lib-coverage@3.2.2: + resolution: {integrity: sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==} + engines: {node: '>=8'} - /jackspeak@2.3.6: - resolution: {integrity: sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ==} - engines: {node: '>=14'} - dependencies: - '@isaacs/cliui': 8.0.2 - optionalDependencies: - '@pkgjs/parseargs': 0.11.0 - dev: true + istanbul-lib-report@3.0.1: + resolution: {integrity: sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==} + engines: {node: '>=10'} - /jake@10.8.5: - resolution: {integrity: sha512-sVpxYeuAhWt0OTWITwT98oyV0GsXyMlXCF+3L1SuafBVUIr/uILGRB+NqwkzhgXKvoJpDIpQvqkUALgdmQsQxw==} + istanbul-lib-source-maps@5.0.6: + resolution: {integrity: sha512-yg2d+Em4KizZC5niWhQaIomgf5WlL4vOOjZ5xGCmF8SnPE/mDWWXgvRExdcpCgh9lLRRa1/fSYp2ymmbJ1pI+A==} + engines: {node: '>=10'} + + istanbul-reports@3.1.7: + resolution: {integrity: sha512-BewmUXImeuRk2YY0PVbxgKAysvhRPUQE0h5QRM++nVWyubKGV0l8qQ5op8+B2DOmwSe63Jivj0BjkPQVf8fP5g==} + engines: {node: '>=8'} + + jackspeak@3.4.3: + resolution: {integrity: sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==} + + jake@10.9.2: + resolution: {integrity: sha512-2P4SQ0HrLQ+fw6llpLnOaGAvN2Zu6778SJMrCUwns4fOoG9ayrTiZk3VV8sCPkVZF8ab0zksVpS8FDY5pRCNBA==} engines: {node: '>=10'} hasBin: true - dependencies: - async: 3.2.4 - chalk: 4.1.2 - filelist: 1.0.4 - minimatch: 3.1.2 - dev: true - /jake@10.8.7: - resolution: {integrity: sha512-ZDi3aP+fG/LchyBzUM804VjddnwfSfsdeYkwt8NcbKRvo4rFkjhs456iLFn3k2ZUWvNe4i48WACDbza8fhq2+w==} - engines: {node: '>=10'} - hasBin: true - dependencies: - async: 3.2.5 - chalk: 4.1.2 - filelist: 1.0.4 - minimatch: 3.1.2 - dev: true - - /jazz-midi@1.7.9: + jazz-midi@1.7.9: resolution: {integrity: sha512-c8c4BBgwxdsIr1iVm53nadCrtH7BUlnX3V95ciK/gbvXN/ndE5+POskBalXgqlc/r9p2XUbdLTrgrC6fou5p9w==} engines: {node: '>=10.0.0'} - dev: false - /jest-diff@29.7.0: + jest-diff@29.7.0: resolution: {integrity: sha512-LMIgiIrhigmPrs03JHpxUh2yISK3vLFPkAodPeo0+BuF7wA2FoQbkEg1u8gBYBThncu7e1oEDUfIXVuTqLRUjw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - dependencies: - chalk: 4.1.2 - diff-sequences: 29.6.3 - jest-get-type: 29.6.3 - pretty-format: 29.7.0 - dev: true - /jest-get-type@29.6.3: + jest-get-type@29.6.3: resolution: {integrity: sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - dev: true - /jest-worker@26.6.2: + jest-worker@26.6.2: resolution: {integrity: sha512-KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ==} engines: {node: '>= 10.13.0'} - dependencies: - '@types/node': 20.10.6 - merge-stream: 2.0.0 - supports-color: 7.2.0 - dev: true - /jiti@1.21.0: - resolution: {integrity: sha512-gFqAIbuKyyso/3G2qhiO2OM6shY6EPP/R0+mkDbyspxKazh8BXDC5FiFsUjlczgdNz/vfra0da2y+aHrusLG/Q==} + jiti@1.21.7: + resolution: {integrity: sha512-/imKNG4EbWNrVjoNC/1H5/9GFy+tqjGBHCaSsN+P2RnPqjsLmv6UD3Ej+Kj8nBWaRAwyk7kK5ZUc+OEatnTR3A==} hasBin: true - dev: false - /js-tokens@4.0.0: + jiti@2.4.2: + resolution: {integrity: sha512-rg9zJN+G4n2nfJl5MW3BMygZX56zKPNVEYYqq7adpmMh4Jn2QNEwhvQlFy6jPVdcod7txZtKHWnyZiA3a0zP7A==} + hasBin: true + + js-tokens@4.0.0: resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} - /js-yaml@3.14.1: + js-yaml@3.14.1: resolution: {integrity: sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==} hasBin: true - dependencies: - argparse: 1.0.10 - esprima: 4.0.1 - /js-yaml@4.1.0: + js-yaml@4.1.0: resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==} hasBin: true - dependencies: - argparse: 2.0.1 - /js2xmlparser@4.0.2: + js2xmlparser@4.0.2: resolution: {integrity: sha512-6n4D8gLlLf1n5mNLQPRfViYzu9RATblzPEtm1SthMX1Pjao0r9YI9nw7ZIfRxQMERS87mcswrg+r/OYrPRX6jA==} - dependencies: - xmlcreate: 2.0.4 - dev: true - /jsdoc-api@8.0.0: - resolution: {integrity: sha512-Rnhor0suB1Ds1abjmFkFfKeD+kSMRN9oHMTMZoJVUrmtCGDwXty+sWMA9sa4xbe4UyxuPjhC7tavZ40mDKK6QQ==} - engines: {node: '>=12.17'} - dependencies: - array-back: 6.2.2 - cache-point: 2.0.0 - collect-all: 1.0.4 - file-set: 4.0.2 - fs-then-native: 2.0.0 - jsdoc: 4.0.2 - object-to-spawn-args: 2.0.1 - temp-path: 1.0.0 - walk-back: 5.1.0 - dev: true + jsbn@1.1.0: + resolution: {integrity: sha512-4bYVV3aAMtDTTu4+xsDYa6sy9GyJ69/amsu9sYF2zqjiEoZA5xJi3BrfX3uY+/IekIu7MwdObdbDWpoZdBv3/A==} - /jsdoc-json@2.0.2: + jsdoc-json@2.0.2: resolution: {integrity: sha512-n0vVkWvBMHFNUsW6HUhMrVCk+nJZwW3kpd9/JiCgdYvjjZV3NcP5fV3+lTgOkOA/bTKJxbCKT8Au92FHII3pnA==} - dev: true - /jsdoc-parse@6.2.0: - resolution: {integrity: sha512-Afu1fQBEb7QHt6QWX/6eUWvYHJofB90Fjx7FuJYF7mnG9z5BkAIpms1wsnvYLytfmqpEENHs/fax9p8gvMj7dw==} - engines: {node: '>=12'} - dependencies: - array-back: 6.2.2 - lodash.omit: 4.5.0 - lodash.pick: 4.4.0 - reduce-extract: 1.0.0 - sort-array: 4.1.5 - test-value: 3.0.0 - dev: true - - /jsdoc-to-markdown@8.0.0: - resolution: {integrity: sha512-2FQvYkg491+FP6s15eFlgSSWs69CvQrpbABGYBtvAvGWy/lWo8IKKToarT283w59rQFrpcjHl3YdhHCa3l7gXg==} - engines: {node: '>=12.17'} - hasBin: true - dependencies: - array-back: 6.2.2 - command-line-tool: 0.8.0 - config-master: 3.1.0 - dmd: 6.2.0 - jsdoc-api: 8.0.0 - jsdoc-parse: 6.2.0 - walk-back: 5.1.0 - dev: true - - /jsdoc@4.0.2: - resolution: {integrity: sha512-e8cIg2z62InH7azBBi3EsSEqrKx+nUtAS5bBcYTSpZFA+vhNPyhv8PTFZ0WsjOPDj04/dOLlm08EDcQJDqaGQg==} + jsdoc@4.0.4: + resolution: {integrity: sha512-zeFezwyXeG4syyYHbvh1A967IAqq/67yXtXvuL5wnqCkFZe8I0vKfm+EO+YEvLguo6w9CDUbrAXVtJSHh2E8rw==} engines: {node: '>=12.0.0'} hasBin: true - dependencies: - '@babel/parser': 7.21.4 - '@jsdoc/salty': 0.2.3 - '@types/markdown-it': 12.2.3 - bluebird: 3.7.2 - catharsis: 0.9.0 - escape-string-regexp: 2.0.0 - js2xmlparser: 4.0.2 - klaw: 3.0.0 - markdown-it: 12.3.2 - markdown-it-anchor: 8.6.6(@types/markdown-it@12.2.3)(markdown-it@12.3.2) - marked: 4.2.12 - mkdirp: 1.0.4 - requizzle: 0.2.4 - strip-json-comments: 3.1.1 - underscore: 1.13.6 - dev: true - /jsesc@0.5.0: - resolution: {integrity: sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==} - hasBin: true - dev: true - - /jsesc@2.5.2: + jsesc@2.5.2: resolution: {integrity: sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==} engines: {node: '>=4'} hasBin: true - /json-parse-better-errors@1.0.2: + jsesc@3.0.2: + resolution: {integrity: sha512-xKqzzWXDttJuOcawBt4KnKHHIf5oQ/Cxax+0PWFG+DFDgHNAdi+TXECADI+RYiFUMmx8792xsMbbgXj4CwnP4g==} + engines: {node: '>=6'} + hasBin: true + + jsesc@3.1.0: + resolution: {integrity: sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==} + engines: {node: '>=6'} + hasBin: true + + json-buffer@3.0.1: + resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==} + + json-parse-better-errors@1.0.2: resolution: {integrity: sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==} - dev: true - /json-parse-even-better-errors@2.3.1: + json-parse-even-better-errors@2.3.1: resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==} - dev: true - /json-parse-even-better-errors@3.0.0: - resolution: {integrity: sha512-iZbGHafX/59r39gPwVPRBGw0QQKnA7tte5pSMrhWOW7swGsVvVTjmfyAV9pNqk8YGT7tRCdxRu8uzcgZwoDooA==} + json-parse-even-better-errors@3.0.2: + resolution: {integrity: sha512-fi0NG4bPjCHunUJffmLd0gxssIgkNmArMvis4iNah6Owg1MCJjWhEcDLmsK6iGkJq3tHwbDkTlce70/tmXN4cQ==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - dev: true - /json-schema-traverse@0.4.1: + json-schema-traverse@0.4.1: resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==} - /json-schema-traverse@1.0.0: + json-schema-traverse@1.0.0: resolution: {integrity: sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==} - dev: true - /json-schema@0.4.0: + json-schema@0.4.0: resolution: {integrity: sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==} - dev: true - /json-stable-stringify-without-jsonify@1.0.1: + json-stable-stringify-without-jsonify@1.0.1: resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==} - /json-stringify-safe@5.0.1: - resolution: {integrity: sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==} - dev: true + json-stringify-nice@1.1.4: + resolution: {integrity: sha512-5Z5RFW63yxReJ7vANgW6eZFGWaQvnPE3WNmZoOJrSkGju2etKA2L5rrOa1sm877TVTFt57A80BH1bArcmlLfPw==} - /json5@1.0.2: + json-stringify-safe@5.0.1: + resolution: {integrity: sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==} + + json5@1.0.2: resolution: {integrity: sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==} hasBin: true - dependencies: - minimist: 1.2.7 - dev: true - /json5@2.2.3: + json5@2.2.3: resolution: {integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==} engines: {node: '>=6'} hasBin: true - /jsonc-parser@3.2.0: + jsonc-parser@3.2.0: resolution: {integrity: sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w==} - dev: true - /jsonfile@6.1.0: + jsonfile@6.1.0: resolution: {integrity: sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==} - dependencies: - universalify: 2.0.0 - optionalDependencies: - graceful-fs: 4.2.11 - dev: true - /jsonparse@1.3.1: + jsonparse@1.3.1: resolution: {integrity: sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg==} engines: {'0': node >= 0.2.0} - dev: true - /jsonpointer@5.0.1: + jsonpointer@5.0.1: resolution: {integrity: sha512-p/nXbhSEcu3pZRdkW1OfJhpsVtW1gd4Wa1fnQc9YLiTfAjn0312eMKimbdIQzuZl9aa9xUGaRlP9T/CJE/ditQ==} engines: {node: '>=0.10.0'} - dev: true - /jzz@1.5.9: - resolution: {integrity: sha512-cqH+tSBtuFGrYinQnhdqn4zzGSLMkuLcX4ahGigH9vONAzCM1hoPmvwDJaM50BJFh5ok49cHfFlfvAGZtUIRQw==} - requiresBuild: true - dependencies: - '@types/webmidi': 2.0.6 - jazz-midi: 1.7.9 - dev: false + just-diff-apply@5.5.0: + resolution: {integrity: sha512-OYTthRfSh55WOItVqwpefPtNt2VdKsq5AnAK6apdtR6yCH8pr0CmSr710J0Mf+WdQy7K/OzMy7K2MgAfdQURDw==} - /jzz@1.7.7: - resolution: {integrity: sha512-fh7Qxb7G4q+7XqmayINHtGj2WpXtQTm+crFK0kg/s7JDhXLKg97MV0MXpADWNFJrNNVb9mkwNzW9sQlkRlfyug==} - requiresBuild: true - dependencies: - '@types/webmidi': 2.0.10 - jazz-midi: 1.7.9 - dev: false - optional: true + just-diff@6.0.2: + resolution: {integrity: sha512-S59eriX5u3/QhMNq3v/gm8Kd0w8OS6Tz2FS1NG4blv+z0MuQcBRJyFWjdovM0Rad4/P4aUPFtnkNjMjyMlMSYA==} - /kind-of@6.0.3: + jzz@1.8.8: + resolution: {integrity: sha512-Oupj8xbUtJbP6s1KJWr1ZiGgU1JlUocetHqwVyGKuPhXjvPWOj5+SCirEr/OIVUXsG3iz04Unlu8uUm5EhtIDA==} + + keyv@4.5.4: + resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==} + + kind-of@6.0.3: resolution: {integrity: sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==} engines: {node: '>=0.10.0'} - /klaw@3.0.0: + klaw@3.0.0: resolution: {integrity: sha512-0Fo5oir+O9jnXu5EefYbVK+mHMBeEVEy2cmctR1O1NECcCkPRreJKrS6Qt/j3KC2C148Dfo9i3pCmCMsdqGr0g==} - dependencies: - graceful-fs: 4.2.10 - dev: true - /kleur@3.0.3: + kleur@3.0.3: resolution: {integrity: sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==} engines: {node: '>=6'} - /kleur@4.1.5: + kleur@4.1.5: resolution: {integrity: sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==} engines: {node: '>=6'} - /lerna@8.0.1: - resolution: {integrity: sha512-ZxFMmOqwkP4e+q6BrMzxkAhixi6n0GVD2jAAnAfDkIFnwumB4/7X5/If6fqTlXXshtB2dQtN5OAtzafqVq8cwA==} + lerna@8.1.9: + resolution: {integrity: sha512-ZRFlRUBB2obm+GkbTR7EbgTMuAdni6iwtTQTMy7LIrQ4UInG44LyfRepljtgUxh4HA0ltzsvWfPkd5J1DKGCeQ==} engines: {node: '>=18.0.0'} hasBin: true - dependencies: - '@lerna/create': 8.0.1(typescript@5.3.3) - '@npmcli/run-script': 7.0.2 - '@nx/devkit': 17.2.8(nx@17.2.8) - '@octokit/plugin-enterprise-rest': 6.0.1 - '@octokit/rest': 19.0.11 - byte-size: 8.1.1 - chalk: 4.1.0 - clone-deep: 4.0.1 - cmd-shim: 6.0.1 - columnify: 1.6.0 - conventional-changelog-angular: 7.0.0 - conventional-changelog-core: 5.0.1 - conventional-recommended-bump: 7.0.1 - cosmiconfig: 8.3.6(typescript@5.3.3) - dedent: 0.7.0 - envinfo: 7.8.1 - execa: 5.0.0 - fs-extra: 11.1.1 - get-port: 5.1.1 - get-stream: 6.0.0 - git-url-parse: 13.1.0 - glob-parent: 5.1.2 - globby: 11.1.0 - graceful-fs: 4.2.11 - has-unicode: 2.0.1 - import-local: 3.1.0 - ini: 1.3.8 - init-package-json: 5.0.0 - inquirer: 8.2.5 - is-ci: 3.0.1 - is-stream: 2.0.0 - jest-diff: 29.7.0 - js-yaml: 4.1.0 - libnpmaccess: 7.0.2 - libnpmpublish: 7.3.0 - load-json-file: 6.2.0 - lodash: 4.17.21 - make-dir: 4.0.0 - minimatch: 3.0.5 - multimatch: 5.0.0 - node-fetch: 2.6.7 - npm-package-arg: 8.1.1 - npm-packlist: 5.1.1 - npm-registry-fetch: 14.0.5 - npmlog: 6.0.2 - nx: 17.2.8 - p-map: 4.0.0 - p-map-series: 2.1.0 - p-pipe: 3.1.0 - p-queue: 6.6.2 - p-reduce: 2.1.0 - p-waterfall: 2.1.1 - pacote: 17.0.5 - pify: 5.0.0 - read-cmd-shim: 4.0.0 - read-package-json: 6.0.4 - resolve-from: 5.0.0 - rimraf: 4.4.1 - semver: 7.5.4 - signal-exit: 3.0.7 - slash: 3.0.0 - ssri: 9.0.1 - strong-log-transformer: 2.1.0 - tar: 6.1.11 - temp-dir: 1.0.0 - typescript: 5.3.3 - upath: 2.0.1 - uuid: 9.0.1 - validate-npm-package-license: 3.0.4 - validate-npm-package-name: 5.0.0 - write-file-atomic: 5.0.1 - write-pkg: 4.0.0 - yargs: 17.7.2 - yargs-parser: 21.1.1 - transitivePeerDependencies: - - '@swc-node/register' - - '@swc/core' - - bluebird - - debug - - encoding - - supports-color - dev: true - /leven@3.1.0: + leven@3.1.0: resolution: {integrity: sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==} engines: {node: '>=6'} - dev: true - /levn@0.4.1: + levn@0.4.1: resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==} engines: {node: '>= 0.8.0'} - dependencies: - prelude-ls: 1.2.1 - type-check: 0.4.0 - /libnpmaccess@7.0.2: - resolution: {integrity: sha512-vHBVMw1JFMTgEk15zRsJuSAg7QtGGHpUSEfnbcRL1/gTBag9iEfJbyjpDmdJmwMhvpoLoNBtdAUCdGnaP32hhw==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - dependencies: - npm-package-arg: 10.1.0 - npm-registry-fetch: 14.0.5 - transitivePeerDependencies: - - bluebird - - supports-color - dev: true + libnpmaccess@8.0.6: + resolution: {integrity: sha512-uM8DHDEfYG6G5gVivVl+yQd4pH3uRclHC59lzIbSvy7b5FEwR+mU49Zq1jEyRtRFv7+M99mUW9S0wL/4laT4lw==} + engines: {node: ^16.14.0 || >=18.0.0} - /libnpmpublish@7.3.0: - resolution: {integrity: sha512-fHUxw5VJhZCNSls0KLNEG0mCD2PN1i14gH5elGOgiVnU3VgTcRahagYP2LKI1m0tFCJ+XrAm0zVYyF5RCbXzcg==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - dependencies: - ci-info: 3.9.0 - normalize-package-data: 5.0.0 - npm-package-arg: 10.1.0 - npm-registry-fetch: 14.0.5 - proc-log: 3.0.0 - semver: 7.5.4 - sigstore: 1.4.0 - ssri: 10.0.4 - transitivePeerDependencies: - - bluebird - - supports-color - dev: true + libnpmpublish@9.0.9: + resolution: {integrity: sha512-26zzwoBNAvX9AWOPiqqF6FG4HrSCPsHFkQm7nT+xU1ggAujL/eae81RnCv4CJ2In9q9fh10B88sYSzKCUh/Ghg==} + engines: {node: ^16.14.0 || >=18.0.0} - /lilconfig@2.1.0: - resolution: {integrity: sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==} - engines: {node: '>=10'} - dev: false + lightningcss-darwin-arm64@1.29.1: + resolution: {integrity: sha512-HtR5XJ5A0lvCqYAoSv2QdZZyoHNttBpa5EP9aNuzBQeKGfbyH5+UipLWvVzpP4Uml5ej4BYs5I9Lco9u1fECqw==} + engines: {node: '>= 12.0.0'} + cpu: [arm64] + os: [darwin] - /lilconfig@3.0.0: - resolution: {integrity: sha512-K2U4W2Ff5ibV7j7ydLr+zLAkIg5JJ4lPn1Ltsdt+Tz/IjQ8buJ55pZAxoP34lqIiwtF9iAvtLv3JGv7CAyAg+g==} + lightningcss-darwin-x64@1.29.1: + resolution: {integrity: sha512-k33G9IzKUpHy/J/3+9MCO4e+PzaFblsgBjSGlpAaFikeBFm8B/CkO3cKU9oI4g+fjS2KlkLM/Bza9K/aw8wsNA==} + engines: {node: '>= 12.0.0'} + cpu: [x64] + os: [darwin] + + lightningcss-freebsd-x64@1.29.1: + resolution: {integrity: sha512-0SUW22fv/8kln2LnIdOCmSuXnxgxVC276W5KLTwoehiO0hxkacBxjHOL5EtHD8BAXg2BvuhsJPmVMasvby3LiQ==} + engines: {node: '>= 12.0.0'} + cpu: [x64] + os: [freebsd] + + lightningcss-linux-arm-gnueabihf@1.29.1: + resolution: {integrity: sha512-sD32pFvlR0kDlqsOZmYqH/68SqUMPNj+0pucGxToXZi4XZgZmqeX/NkxNKCPsswAXU3UeYgDSpGhu05eAufjDg==} + engines: {node: '>= 12.0.0'} + cpu: [arm] + os: [linux] + + lightningcss-linux-arm64-gnu@1.29.1: + resolution: {integrity: sha512-0+vClRIZ6mmJl/dxGuRsE197o1HDEeeRk6nzycSy2GofC2JsY4ifCRnvUWf/CUBQmlrvMzt6SMQNMSEu22csWQ==} + engines: {node: '>= 12.0.0'} + cpu: [arm64] + os: [linux] + + lightningcss-linux-arm64-musl@1.29.1: + resolution: {integrity: sha512-UKMFrG4rL/uHNgelBsDwJcBqVpzNJbzsKkbI3Ja5fg00sgQnHw/VrzUTEc4jhZ+AN2BvQYz/tkHu4vt1kLuJyw==} + engines: {node: '>= 12.0.0'} + cpu: [arm64] + os: [linux] + + lightningcss-linux-x64-gnu@1.29.1: + resolution: {integrity: sha512-u1S+xdODy/eEtjADqirA774y3jLcm8RPtYztwReEXoZKdzgsHYPl0s5V52Tst+GKzqjebkULT86XMSxejzfISw==} + engines: {node: '>= 12.0.0'} + cpu: [x64] + os: [linux] + + lightningcss-linux-x64-musl@1.29.1: + resolution: {integrity: sha512-L0Tx0DtaNUTzXv0lbGCLB/c/qEADanHbu4QdcNOXLIe1i8i22rZRpbT3gpWYsCh9aSL9zFujY/WmEXIatWvXbw==} + engines: {node: '>= 12.0.0'} + cpu: [x64] + os: [linux] + + lightningcss-win32-arm64-msvc@1.29.1: + resolution: {integrity: sha512-QoOVnkIEFfbW4xPi+dpdft/zAKmgLgsRHfJalEPYuJDOWf7cLQzYg0DEh8/sn737FaeMJxHZRc1oBreiwZCjog==} + engines: {node: '>= 12.0.0'} + cpu: [arm64] + os: [win32] + + lightningcss-win32-x64-msvc@1.29.1: + resolution: {integrity: sha512-NygcbThNBe4JElP+olyTI/doBNGJvLs3bFCRPdvuCcxZCcCZ71B858IHpdm7L1btZex0FvCmM17FK98Y9MRy1Q==} + engines: {node: '>= 12.0.0'} + cpu: [x64] + os: [win32] + + lightningcss@1.29.1: + resolution: {integrity: sha512-FmGoeD4S05ewj+AkhTY+D+myDvXI6eL27FjHIjoyUkO/uw7WZD1fBVs0QxeYWa7E17CUHJaYX/RUGISCtcrG4Q==} + engines: {node: '>= 12.0.0'} + + lilconfig@3.1.3: + resolution: {integrity: sha512-/vlFKAoH5Cgt3Ie+JLhRbwOsCQePABiU3tJ1egGvyQ+33R/vcwM2Zl2QR/LzjsBeItPt3oSVXapn+m4nQDvpzw==} engines: {node: '>=14'} - dev: false - /lines-and-columns@1.2.4: + lines-and-columns@1.2.4: resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} - /lines-and-columns@2.0.3: + lines-and-columns@2.0.3: resolution: {integrity: sha512-cNOjgCnLB+FnvWWtyRTzmB3POJ+cXxTA81LoW7u8JdmhfXzriropYwpjShnz1QLLWsQwY7nIxoDmcPTwphDK9w==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - dev: true - /linkify-it@3.0.3: - resolution: {integrity: sha512-ynTsyrFSdE5oZ/O9GEf00kPngmOfVwazR5GKDq6EYfhlpFug3J2zybX56a2PRRpc9P+FuSoGNAwjlbDs9jJBPQ==} - dependencies: - uc.micro: 1.0.6 - dev: true + linkify-it@5.0.0: + resolution: {integrity: sha512-5aHCbzQRADcdP+ATqnDuhhJ/MRIqDkZX5pyjFHRRysS8vZ5AbqGEoFIb6pYHPZ+L/OC2Lc+xT8uHVVR5CAK/wQ==} - /lite-youtube-embed@0.2.0: - resolution: {integrity: sha512-XXXAk5sbvtjjwbie3XG+6HppgTm1HTGL/Uk9z9NkJH53o7puZLur434heHzAjkS60hZB3vT4ls25zl5rMiX4EA==} - dev: false + lite-youtube-embed@0.3.3: + resolution: {integrity: sha512-gFfVVnj6NRjxVfJKo3qoLtpi0v5mn3AcR4eKD45wrxQuxzveFJUb+7Cr6uV6n+DjO8X3p0UzPPquhGt0H/y+NA==} - /load-json-file@4.0.0: + load-json-file@4.0.0: resolution: {integrity: sha512-Kx8hMakjX03tiGTLAIdJ+lL0htKnXjEZN6hk/tozf/WOuYGdZBJrZ+rCJRbVCugsjB3jMLn9746NsQIf5VjBMw==} engines: {node: '>=4'} - dependencies: - graceful-fs: 4.2.11 - parse-json: 4.0.0 - pify: 3.0.0 - strip-bom: 3.0.0 - dev: true - /load-json-file@6.2.0: + load-json-file@6.2.0: resolution: {integrity: sha512-gUD/epcRms75Cw8RT1pUdHugZYM5ce64ucs2GEISABwkRsOQr0q2wm/MV2TKThycIe5e0ytRweW2RZxclogCdQ==} engines: {node: '>=8'} - dependencies: - graceful-fs: 4.2.11 - parse-json: 5.2.0 - strip-bom: 4.0.0 - type-fest: 0.6.0 - dev: true - /load-yaml-file@0.2.0: + load-yaml-file@0.2.0: resolution: {integrity: sha512-OfCBkGEw4nN6JLtgRidPX6QxjBQGQf72q3si2uvqyFEMbycSFFHwAZeXx6cJgFM9wmLrf9zBwCP3Ivqa+LLZPw==} engines: {node: '>=6'} - dependencies: - graceful-fs: 4.2.10 - js-yaml: 3.14.1 - pify: 4.0.1 - strip-bom: 3.0.0 - /local-pkg@0.5.0: - resolution: {integrity: sha512-ok6z3qlYyCDS4ZEU27HaU6x/xZa9Whf8jD4ptH5UZTQYZVYeb9bnZ3ojVhiJNLiXK1Hfc0GNbLXcmZ5plLDDBg==} - engines: {node: '>=14'} - dependencies: - mlly: 1.4.2 - pkg-types: 1.0.3 - dev: true - - /locate-path@2.0.0: + locate-path@2.0.0: resolution: {integrity: sha512-NCI2kiDkyR7VeEKm27Kda/iQHyKJe1Bu0FlTbYp3CqJu+9IFe9bLyAjMxf5ZDDbEg+iMPzB5zYyUTSm8wVTKmA==} engines: {node: '>=4'} - dependencies: - p-locate: 2.0.0 - path-exists: 3.0.0 - dev: true - /locate-path@5.0.0: + locate-path@5.0.0: resolution: {integrity: sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==} engines: {node: '>=8'} - dependencies: - p-locate: 4.1.0 - /locate-path@6.0.0: + locate-path@6.0.0: resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==} engines: {node: '>=10'} - dependencies: - p-locate: 5.0.0 - /lodash.camelcase@4.3.0: - resolution: {integrity: sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==} - dev: true - - /lodash.castarray@4.4.0: + lodash.castarray@4.4.0: resolution: {integrity: sha512-aVx8ztPv7/2ULbArGJ2Y42bG1mEQ5mGjpdvrbJcJFU3TbYybe+QlLS4pst9zV52ymy2in1KpFPiZnAOATxD4+Q==} - dev: false - /lodash.debounce@4.0.8: + lodash.debounce@4.0.8: resolution: {integrity: sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==} - dev: true - /lodash.ismatch@4.4.0: + lodash.ismatch@4.4.0: resolution: {integrity: sha512-fPMfXjGQEV9Xsq/8MTSgUf255gawYRbjwMyDbcvDhXgV7enSZA0hynz6vMPnpAb5iONEzBHBPsT+0zes5Z301g==} - dev: true - /lodash.isplainobject@4.0.6: + lodash.isplainobject@4.0.6: resolution: {integrity: sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==} - dev: false - /lodash.merge@4.6.2: + lodash.merge@4.6.2: resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==} - /lodash.omit@4.5.0: - resolution: {integrity: sha512-XeqSp49hNGmlkj2EJlfrQFIzQ6lXdNro9sddtQzcJY8QaoC2GO0DT7xaIokHeyM+mIT0mPMlPvkYzg2xCuHdZg==} - dev: true - - /lodash.padend@4.6.1: - resolution: {integrity: sha512-sOQs2aqGpbl27tmCS1QNZA09Uqp01ZzWfDUoD+xzTii0E7dSQfRKcRetFwa+uXaxaqL+TKm7CgD2JdKP7aZBSw==} - dev: true - - /lodash.pick@4.4.0: - resolution: {integrity: sha512-hXt6Ul/5yWjfklSGvLQl8vM//l3FtyHZeuelpzK6mm99pNvN9yTDruNZPEJZD1oWrqo+izBmB7oUfWgcCX7s4Q==} - dev: true - - /lodash.sortby@4.7.0: + lodash.sortby@4.7.0: resolution: {integrity: sha512-HDWXG8isMntAyRF5vZ7xKuEvOhT4AhlRt/3czTSjvGUxjYCBVRQY48ViDHyfYz9VIoBkW4TMGQNapx+l3RUwdA==} - dev: true - /lodash@4.17.21: + lodash@4.17.21: resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==} - dev: true - /log-symbols@4.1.0: + log-symbols@4.1.0: resolution: {integrity: sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==} engines: {node: '>=10'} - dependencies: - chalk: 4.1.2 - is-unicode-supported: 0.1.0 - dev: true - /log-symbols@5.1.0: - resolution: {integrity: sha512-l0x2DvrW294C9uDCoQe1VSU4gf529FkSZ6leBl4TiqZH/e+0R7hSfHQBNut2mNygDgHwvYHfFLn6Oxb3VWj2rA==} - engines: {node: '>=12'} - dependencies: - chalk: 5.3.0 - is-unicode-supported: 1.3.0 - - /longest-streak@3.1.0: + longest-streak@3.1.0: resolution: {integrity: sha512-9Ri+o0JYgehTaVBBDoMqIl8GXtbWg711O3srftcHhZ0dqnETqLaoIK0x17fUw9rFSlK/0NlsKe0Ahhyl5pXE2g==} - /loose-envify@1.4.0: - resolution: {integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==} - hasBin: true - dependencies: - js-tokens: 4.0.0 - dev: false + loupe@3.1.2: + resolution: {integrity: sha512-23I4pFZHmAemUnz8WZXbYRSKYj801VDaNv9ETuMh7IrMc7VuVVSo+Z9iLE3ni30+U48iDWfi30d3twAXBYmnCg==} - /loupe@2.3.7: - resolution: {integrity: sha512-zSMINGVYkdpYSOBmLi0D1Uo7JU9nVdQKrHxC8eYlV+9YKK9WePqAlL7lSlorG/U2Fw1w0hTBmaa/jrQ3UbPHtA==} - dependencies: - get-func-name: 2.0.2 - dev: true + lru-cache@10.4.3: + resolution: {integrity: sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==} - /lru-cache@10.1.0: - resolution: {integrity: sha512-/1clY/ui8CzjKFyjdvwPWJUYKiFVXG2I2cY0ssG7h4+hwk+XOIX7ZSG9Q7TW8TW3Kp3BUSqgFWBLgL4PJ+Blag==} - engines: {node: 14 || >=16.14} - dev: true - - /lru-cache@5.1.1: + lru-cache@5.1.1: resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==} - dependencies: - yallist: 3.1.1 - /lru-cache@6.0.0: + lru-cache@6.0.0: resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==} engines: {node: '>=10'} - dependencies: - yallist: 4.0.0 - /lru-cache@7.18.3: - resolution: {integrity: sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==} - engines: {node: '>=12'} - dev: true - - /lru-cache@9.1.1: - resolution: {integrity: sha512-65/Jky17UwSb0BuB9V+MyDpsOtXKmYwzhyl+cOa9XUiI4uV2Ouy/2voFP3+al0BjZbJgMBD8FojMpAf+Z+qn4A==} - engines: {node: 14 || >=16.14} - dev: true - - /magic-string@0.25.9: + magic-string@0.25.9: resolution: {integrity: sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==} - dependencies: - sourcemap-codec: 1.4.8 - dev: true - /magic-string@0.30.5: - resolution: {integrity: sha512-7xlpfBaQaP/T6Vh8MO/EqXSW5En6INHEvEXQiuff7Gku0PWjU3uf6w/j9o7O+SpB5fOAkrI5HeoNgwjEO0pFsA==} - engines: {node: '>=12'} - dependencies: - '@jridgewell/sourcemap-codec': 1.4.15 + magic-string@0.30.17: + resolution: {integrity: sha512-sNPKHvyjVf7gyjwS4xGTaW/mCnF8wnjtifKBEhxfZ7E/S8tQ0rssrwGNn6q8JH/ohItJfSQp9mBtQYuTlH5QnA==} - /make-dir@2.1.0: + magicast@0.3.5: + resolution: {integrity: sha512-L0WhttDl+2BOsybvEOLK7fW3UA0OQ0IQ2d6Zl2x/a6vVRs3bAY0ECOSHHeL5jD+SbOpOCUEi0y1DgHEn9Qn1AQ==} + + make-dir@2.1.0: resolution: {integrity: sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==} engines: {node: '>=6'} - dependencies: - pify: 4.0.1 - semver: 5.7.1 - dev: true - /make-dir@4.0.0: + make-dir@4.0.0: resolution: {integrity: sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==} engines: {node: '>=10'} - dependencies: - semver: 7.5.4 - dev: true - /make-fetch-happen@11.1.1: - resolution: {integrity: sha512-rLWS7GCSTcEujjVBs2YqG7Y4643u8ucvCJeSRqiLYhesrDuzeuFIk37xREzAsfQaqzl8b9rNCE4m6J8tvX4Q8w==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - dependencies: - agentkeepalive: 4.2.1 - cacache: 17.0.6 - http-cache-semantics: 4.1.1 - http-proxy-agent: 5.0.0 - https-proxy-agent: 5.0.1 - is-lambda: 1.0.1 - lru-cache: 7.18.3 - minipass: 5.0.0 - minipass-fetch: 3.0.3 - minipass-flush: 1.0.5 - minipass-pipeline: 1.2.4 - negotiator: 0.6.3 - promise-retry: 2.0.1 - socks-proxy-agent: 7.0.0 - ssri: 10.0.4 - transitivePeerDependencies: - - bluebird - - supports-color - dev: true - - /make-fetch-happen@13.0.0: - resolution: {integrity: sha512-7ThobcL8brtGo9CavByQrQi+23aIfgYU++wg4B87AIS8Rb2ZBt/MEaDqzA00Xwv/jUjAjYkLHjVolYuTLKda2A==} + make-fetch-happen@13.0.1: + resolution: {integrity: sha512-cKTUFc/rbKUd/9meOvgrpJ2WrNzymt6jfRDdwg5UCnVzv9dTpEj9JS5m3wtziXVCjluIXyL8pcaukYqezIzZQA==} engines: {node: ^16.14.0 || >=18.0.0} - dependencies: - '@npmcli/agent': 2.2.0 - cacache: 18.0.1 - http-cache-semantics: 4.1.1 - is-lambda: 1.0.1 - minipass: 7.0.4 - minipass-fetch: 3.0.3 - minipass-flush: 1.0.5 - minipass-pipeline: 1.2.4 - negotiator: 0.6.3 - promise-retry: 2.0.1 - ssri: 10.0.4 - transitivePeerDependencies: - - supports-color - dev: true - /map-obj@1.0.1: + map-obj@1.0.1: resolution: {integrity: sha512-7N/q3lyZ+LVCp7PzuxrJr4KMbBE2hW7BT7YNia330OFxIf4d3r5zVpicP2650l7CPN6RM9zOJRl3NGpqSiw3Eg==} engines: {node: '>=0.10.0'} - dev: true - /map-obj@4.3.0: + map-obj@4.3.0: resolution: {integrity: sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ==} engines: {node: '>=8'} - dev: true - /markdown-extensions@2.0.0: + markdown-extensions@2.0.0: resolution: {integrity: sha512-o5vL7aDWatOTX8LzaS1WMoaoxIiLRQJuIKKe2wAw6IeULDHaqbiqiggmx+pKvZDb1Sj+pE46Sn1T7lCqfFtg1Q==} engines: {node: '>=16'} - dev: false - /markdown-it-anchor@8.6.6(@types/markdown-it@12.2.3)(markdown-it@12.3.2): - resolution: {integrity: sha512-jRW30YGywD2ESXDc+l17AiritL0uVaSnWsb26f+68qaW9zgbIIr1f4v2Nsvc0+s0Z2N3uX6t/yAw7BwCQ1wMsA==} + markdown-it-anchor@8.6.7: + resolution: {integrity: sha512-FlCHFwNnutLgVTflOYHPW2pPcl2AACqVzExlkGQNsi4CJgqOHN7YTgDd4LuhgN1BFO3TS0vLAruV1Td6dwWPJA==} peerDependencies: '@types/markdown-it': '*' markdown-it: '*' - dependencies: - '@types/markdown-it': 12.2.3 - markdown-it: 12.3.2 - dev: true - /markdown-it@12.3.2: - resolution: {integrity: sha512-TchMembfxfNVpHkbtriWltGWc+m3xszaRD0CZup7GFFhzIgQqxIfn3eGj1yZpfuflzPvfkt611B2Q/Bsk1YnGg==} + markdown-it@14.1.0: + resolution: {integrity: sha512-a54IwgWPaeBCAAsv13YgmALOF1elABB08FxO9i+r4VFk5Vl4pKokRPeX8u5TCgSsPi6ec1otfLjdOpVcgbpshg==} hasBin: true - dependencies: - argparse: 2.0.1 - entities: 2.1.0 - linkify-it: 3.0.3 - mdurl: 1.0.1 - uc.micro: 1.0.6 - dev: true - /markdown-table@3.0.3: - resolution: {integrity: sha512-Z1NL3Tb1M9wH4XESsCDEksWoKTdlUafKc4pt0GRwjUyXaCFZ+dc3g2erqB6zm3szA2IUSi7VnPI+o/9jnxh9hw==} + markdown-table@3.0.4: + resolution: {integrity: sha512-wiYz4+JrLyb/DqW2hkFJxP7Vd7JuTDm77fvbM8VfEQdmSMqcImWeeRbHwZjBjIFki/VaMK2BhFi7oUUZeM5bqw==} - /marked@4.2.12: - resolution: {integrity: sha512-yr8hSKa3Fv4D3jdZmtMMPghgVt6TWbk86WQaWhDloQjRSQhMMYCAro7jP7VDJrjjdV8pxVxMssXS8B8Y5DZ5aw==} + marked@4.3.0: + resolution: {integrity: sha512-PRsaiG84bK+AMvxziE/lCFss8juXjNaWzVbN5tXAm4XjeaS9NAHhop+PjQxz2A9h8Q4M/xGmzP8vqNwy6JeK0A==} engines: {node: '>= 12'} hasBin: true - dev: true - /mdast-util-definitions@6.0.0: + math-intrinsics@1.1.0: + resolution: {integrity: sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==} + engines: {node: '>= 0.4'} + + mdast-util-definitions@6.0.0: resolution: {integrity: sha512-scTllyX6pnYNZH/AIp/0ePz6s4cZtARxImwoPJ7kS42n+MnVsI4XbnG6d4ibehRIldYMWM2LD7ImQblVhUejVQ==} - dependencies: - '@types/mdast': 4.0.2 - '@types/unist': 3.0.1 - unist-util-visit: 5.0.0 - /mdast-util-find-and-replace@3.0.1: - resolution: {integrity: sha512-SG21kZHGC3XRTSUhtofZkBzZTJNM5ecCi0SK2IMKmSXR8vO3peL+kb1O0z7Zl83jKtutG4k5Wv/W7V3/YHvzPA==} - dependencies: - '@types/mdast': 4.0.2 - escape-string-regexp: 5.0.0 - unist-util-is: 6.0.0 - unist-util-visit-parents: 6.0.1 + mdast-util-find-and-replace@3.0.2: + resolution: {integrity: sha512-Tmd1Vg/m3Xz43afeNxDIhWRtFZgM2VLyaf4vSTYwudTyeuTneoL3qtWMA5jeLyz/O1vDJmmV4QuScFCA2tBPwg==} - /mdast-util-from-markdown@2.0.0: - resolution: {integrity: sha512-n7MTOr/z+8NAX/wmhhDji8O3bRvPTV/U0oTCaZJkjhPSKTPhS3xufVhKGF8s1pJ7Ox4QgoIU7KHseh09S+9rTA==} - dependencies: - '@types/mdast': 4.0.2 - '@types/unist': 3.0.1 - decode-named-character-reference: 1.0.2 - devlop: 1.1.0 - mdast-util-to-string: 4.0.0 - micromark: 4.0.0 - micromark-util-decode-numeric-character-reference: 2.0.1 - micromark-util-decode-string: 2.0.0 - micromark-util-normalize-identifier: 2.0.0 - micromark-util-symbol: 2.0.0 - micromark-util-types: 2.0.0 - unist-util-stringify-position: 4.0.0 - transitivePeerDependencies: - - supports-color + mdast-util-from-markdown@2.0.2: + resolution: {integrity: sha512-uZhTV/8NBuw0WHkPTrCqDOl0zVe1BIng5ZtHoDk49ME1qqcjYmmLmOf0gELgcRMxN4w2iuIeVso5/6QymSrgmA==} - /mdast-util-gfm-autolink-literal@2.0.0: - resolution: {integrity: sha512-FyzMsduZZHSc3i0Px3PQcBT4WJY/X/RCtEJKuybiC6sjPqLv7h1yqAkmILZtuxMSsUyaLUWNp71+vQH2zqp5cg==} - dependencies: - '@types/mdast': 4.0.2 - ccount: 2.0.1 - devlop: 1.1.0 - mdast-util-find-and-replace: 3.0.1 - micromark-util-character: 2.0.1 + mdast-util-gfm-autolink-literal@2.0.1: + resolution: {integrity: sha512-5HVP2MKaP6L+G6YaxPNjuL0BPrq9orG3TsrZ9YXbA3vDw/ACI4MEsnoDpn6ZNm7GnZgtAcONJyPhOP8tNJQavQ==} - /mdast-util-gfm-footnote@2.0.0: + mdast-util-gfm-footnote@2.0.0: resolution: {integrity: sha512-5jOT2boTSVkMnQ7LTrd6n/18kqwjmuYqo7JUPe+tRCY6O7dAuTFMtTPauYYrMPpox9hlN0uOx/FL8XvEfG9/mQ==} - dependencies: - '@types/mdast': 4.0.2 - devlop: 1.1.0 - mdast-util-from-markdown: 2.0.0 - mdast-util-to-markdown: 2.1.0 - micromark-util-normalize-identifier: 2.0.0 - transitivePeerDependencies: - - supports-color - /mdast-util-gfm-strikethrough@2.0.0: + mdast-util-gfm-strikethrough@2.0.0: resolution: {integrity: sha512-mKKb915TF+OC5ptj5bJ7WFRPdYtuHv0yTRxK2tJvi+BDqbkiG7h7u/9SI89nRAYcmap2xHQL9D+QG/6wSrTtXg==} - dependencies: - '@types/mdast': 4.0.2 - mdast-util-from-markdown: 2.0.0 - mdast-util-to-markdown: 2.1.0 - transitivePeerDependencies: - - supports-color - /mdast-util-gfm-table@2.0.0: + mdast-util-gfm-table@2.0.0: resolution: {integrity: sha512-78UEvebzz/rJIxLvE7ZtDd/vIQ0RHv+3Mh5DR96p7cS7HsBhYIICDBCu8csTNWNO6tBWfqXPWekRuj2FNOGOZg==} - dependencies: - '@types/mdast': 4.0.2 - devlop: 1.1.0 - markdown-table: 3.0.3 - mdast-util-from-markdown: 2.0.0 - mdast-util-to-markdown: 2.1.0 - transitivePeerDependencies: - - supports-color - /mdast-util-gfm-task-list-item@2.0.0: + mdast-util-gfm-task-list-item@2.0.0: resolution: {integrity: sha512-IrtvNvjxC1o06taBAVJznEnkiHxLFTzgonUdy8hzFVeDun0uTjxxrRGVaNFqkU1wJR3RBPEfsxmU6jDWPofrTQ==} - dependencies: - '@types/mdast': 4.0.2 - devlop: 1.1.0 - mdast-util-from-markdown: 2.0.0 - mdast-util-to-markdown: 2.1.0 - transitivePeerDependencies: - - supports-color - /mdast-util-gfm@3.0.0: + mdast-util-gfm@3.0.0: resolution: {integrity: sha512-dgQEX5Amaq+DuUqf26jJqSK9qgixgd6rYDHAv4aTBuA92cTknZlKpPfa86Z/s8Dj8xsAQpFfBmPUHWJBWqS4Bw==} - dependencies: - mdast-util-from-markdown: 2.0.0 - mdast-util-gfm-autolink-literal: 2.0.0 - mdast-util-gfm-footnote: 2.0.0 - mdast-util-gfm-strikethrough: 2.0.0 - mdast-util-gfm-table: 2.0.0 - mdast-util-gfm-task-list-item: 2.0.0 - mdast-util-to-markdown: 2.1.0 - transitivePeerDependencies: - - supports-color - /mdast-util-mdx-expression@2.0.0: - resolution: {integrity: sha512-fGCu8eWdKUKNu5mohVGkhBXCXGnOTLuFqOvGMvdikr+J1w7lDJgxThOKpwRWzzbyXAU2hhSwsmssOY4yTokluw==} - dependencies: - '@types/estree-jsx': 1.0.0 - '@types/hast': 3.0.2 - '@types/mdast': 4.0.2 - devlop: 1.1.0 - mdast-util-from-markdown: 2.0.0 - mdast-util-to-markdown: 2.1.0 - transitivePeerDependencies: - - supports-color - dev: false + mdast-util-mdx-expression@2.0.1: + resolution: {integrity: sha512-J6f+9hUp+ldTZqKRSg7Vw5V6MqjATc+3E4gf3CFNcuZNWD8XdyI6zQ8GqH7f8169MM6P7hMBRDVGnn7oHB9kXQ==} - /mdast-util-mdx-jsx@3.0.0: - resolution: {integrity: sha512-XZuPPzQNBPAlaqsTTgRrcJnyFbSOBovSadFgbFu8SnuNgm+6Bdx1K+IWoitsmj6Lq6MNtI+ytOqwN70n//NaBA==} - dependencies: - '@types/estree-jsx': 1.0.0 - '@types/hast': 3.0.2 - '@types/mdast': 4.0.2 - '@types/unist': 3.0.1 - ccount: 2.0.1 - devlop: 1.1.0 - mdast-util-from-markdown: 2.0.0 - mdast-util-to-markdown: 2.1.0 - parse-entities: 4.0.0 - stringify-entities: 4.0.3 - unist-util-remove-position: 5.0.0 - unist-util-stringify-position: 4.0.0 - vfile-message: 4.0.2 - transitivePeerDependencies: - - supports-color - dev: false + mdast-util-mdx-jsx@3.2.0: + resolution: {integrity: sha512-lj/z8v0r6ZtsN/cGNNtemmmfoLAFZnjMbNyLzBafjzikOM+glrjNHPlf6lQDOTccj9n5b0PPihEBbhneMyGs1Q==} - /mdast-util-mdx@3.0.0: + mdast-util-mdx@3.0.0: resolution: {integrity: sha512-JfbYLAW7XnYTTbUsmpu0kdBUVe+yKVJZBItEjwyYJiDJuZ9w4eeaqks4HQO+R7objWgS2ymV60GYpI14Ug554w==} - dependencies: - mdast-util-from-markdown: 2.0.0 - mdast-util-mdx-expression: 2.0.0 - mdast-util-mdx-jsx: 3.0.0 - mdast-util-mdxjs-esm: 2.0.1 - mdast-util-to-markdown: 2.1.0 - transitivePeerDependencies: - - supports-color - dev: false - /mdast-util-mdxjs-esm@2.0.1: + mdast-util-mdxjs-esm@2.0.1: resolution: {integrity: sha512-EcmOpxsZ96CvlP03NghtH1EsLtr0n9Tm4lPUJUBccV9RwUOneqSycg19n5HGzCf+10LozMRSObtVr3ee1WoHtg==} - dependencies: - '@types/estree-jsx': 1.0.0 - '@types/hast': 3.0.2 - '@types/mdast': 4.0.2 - devlop: 1.1.0 - mdast-util-from-markdown: 2.0.0 - mdast-util-to-markdown: 2.1.0 - transitivePeerDependencies: - - supports-color - dev: false - /mdast-util-phrasing@4.0.0: - resolution: {integrity: sha512-xadSsJayQIucJ9n053dfQwVu1kuXg7jCTdYsMK8rqzKZh52nLfSH/k0sAxE0u+pj/zKZX+o5wB+ML5mRayOxFA==} - dependencies: - '@types/mdast': 4.0.2 - unist-util-is: 6.0.0 + mdast-util-phrasing@4.1.0: + resolution: {integrity: sha512-TqICwyvJJpBwvGAMZjj4J2n0X8QWp21b9l0o7eXyVJ25YNWYbJDVIyD1bZXE6WtV6RmKJVYmQAKWa0zWOABz2w==} - /mdast-util-to-hast@13.0.2: - resolution: {integrity: sha512-U5I+500EOOw9e3ZrclN3Is3fRpw8c19SMyNZlZ2IS+7vLsNzb2Om11VpIVOR+/0137GhZsFEF6YiKD5+0Hr2Og==} - dependencies: - '@types/hast': 3.0.2 - '@types/mdast': 4.0.2 - '@ungap/structured-clone': 1.2.0 - devlop: 1.1.0 - micromark-util-sanitize-uri: 2.0.0 - trim-lines: 3.0.1 - unist-util-position: 5.0.0 - unist-util-visit: 5.0.0 + mdast-util-to-hast@13.2.0: + resolution: {integrity: sha512-QGYKEuUsYT9ykKBCMOEDLsU5JRObWQusAolFMeko/tYPufNkRffBAQjIE+99jbA87xv6FgmjLtwjh9wBWajwAA==} - /mdast-util-to-markdown@2.1.0: - resolution: {integrity: sha512-SR2VnIEdVNCJbP6y7kVTJgPLifdr8WEU440fQec7qHoHOUz/oJ2jmNRqdDQ3rbiStOXb2mCDGTuwsK5OPUgYlQ==} - dependencies: - '@types/mdast': 4.0.2 - '@types/unist': 3.0.1 - longest-streak: 3.1.0 - mdast-util-phrasing: 4.0.0 - mdast-util-to-string: 4.0.0 - micromark-util-decode-string: 2.0.0 - unist-util-visit: 5.0.0 - zwitch: 2.0.4 + mdast-util-to-markdown@2.1.2: + resolution: {integrity: sha512-xj68wMTvGXVOKonmog6LwyJKrYXZPvlwabaryTjLh9LuvovB/KAH+kvi8Gjj+7rJjsFi23nkUxRQv1KqSroMqA==} - /mdast-util-to-string@4.0.0: + mdast-util-to-string@4.0.0: resolution: {integrity: sha512-0H44vDimn51F0YwvxSJSm0eCDOJTRlmN0R1yBh4HLj9wiV1Dn0QoXGbvFAWj2hSItVTlCmBF1hqKlIyUBVFLPg==} - dependencies: - '@types/mdast': 4.0.2 - /mdast-util-toc@7.0.0: - resolution: {integrity: sha512-C28UcSqjmnWuvgT8d97qpaItHKvySqVPAECUzqQ51xuMyNFFJwcFoKW77KoMjtXrclTidLQFDzLUmTmrshRweA==} - dependencies: - '@types/mdast': 4.0.2 - '@types/ungap__structured-clone': 0.3.3 - '@ungap/structured-clone': 1.2.0 - github-slugger: 2.0.0 - mdast-util-to-string: 4.0.0 - unist-util-is: 6.0.0 - unist-util-visit: 5.0.0 - dev: false + mdast-util-toc@7.1.0: + resolution: {integrity: sha512-2TVKotOQzqdY7THOdn2gGzS9d1Sdd66bvxUyw3aNpWfcPXCLYSJCCgfPy30sEtuzkDraJgqF35dzgmz6xlvH/w==} - /mdurl@1.0.1: - resolution: {integrity: sha512-/sKlQJCBYVY9Ers9hqzKou4H6V5UWc/M59TH2dvkt+84itfnq7uFOMLpOiOS4ujvHP4etln18fmIxA5R5fll0g==} - dev: true + mdurl@2.0.0: + resolution: {integrity: sha512-Lf+9+2r+Tdp5wXDXC4PcIBjTDtq4UKjCPMQhKIuzpJNW0b96kVqSwW0bT7FhRSfmAiFYgP+SCRvdrDozfh0U5w==} - /meow@8.1.2: + meow@8.1.2: resolution: {integrity: sha512-r85E3NdZ+mpYk1C6RjPFEMSE+s1iZMuHtsHAqY0DT3jZczl0diWUZ8g6oU7h0M9cD2EL+PzaYghhCLzR0ZNn5Q==} engines: {node: '>=10'} - dependencies: - '@types/minimist': 1.2.2 - camelcase-keys: 6.2.2 - decamelize-keys: 1.1.1 - hard-rejection: 2.1.0 - minimist-options: 4.1.0 - normalize-package-data: 3.0.3 - read-pkg-up: 7.0.1 - redent: 3.0.0 - trim-newlines: 3.0.1 - type-fest: 0.18.1 - yargs-parser: 20.2.9 - dev: true - /merge-stream@2.0.0: + merge-stream@2.0.0: resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==} - /merge2@1.4.1: + merge2@1.4.1: resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} engines: {node: '>= 8'} - /meyda@5.6.2: - resolution: {integrity: sha512-FSHo8XDdmhIDeBJ2nht9WYRj0VIQ8wbzcfken0YIHUuuxVMnpDcvzVfXyY2m6YkA7q6ypzKROUNV4yoXG0uogQ==} + meyda@5.6.3: + resolution: {integrity: sha512-fAdwfzIi1WDoL0idUQvCD7dZ7EN74FYH83G+jZQO3Nr9yOEBtzFvcMg2KLdLlu6psSP8XFlO0kYynG5o/E681Q==} hasBin: true - dependencies: - dct: 0.1.0 - fftjs: 0.0.4 - node-getopt: 0.3.2 - wav: 1.0.2 - transitivePeerDependencies: - - supports-color - dev: false - /micromark-core-commonmark@2.0.0: - resolution: {integrity: sha512-jThOz/pVmAYUtkroV3D5c1osFXAMv9e0ypGDOIZuCeAe91/sD6BoE2Sjzt30yuXtwOYUmySOhMas/PVyh02itA==} - dependencies: - decode-named-character-reference: 1.0.2 - devlop: 1.1.0 - micromark-factory-destination: 2.0.0 - micromark-factory-label: 2.0.0 - micromark-factory-space: 2.0.0 - micromark-factory-title: 2.0.0 - micromark-factory-whitespace: 2.0.0 - micromark-util-character: 2.0.1 - micromark-util-chunked: 2.0.0 - micromark-util-classify-character: 2.0.0 - micromark-util-html-tag-name: 2.0.0 - micromark-util-normalize-identifier: 2.0.0 - micromark-util-resolve-all: 2.0.0 - micromark-util-subtokenize: 2.0.0 - micromark-util-symbol: 2.0.0 - micromark-util-types: 2.0.0 + micromark-core-commonmark@2.0.2: + resolution: {integrity: sha512-FKjQKbxd1cibWMM1P9N+H8TwlgGgSkWZMmfuVucLCHaYqeSvJ0hFeHsIa65pA2nYbes0f8LDHPMrd9X7Ujxg9w==} - /micromark-extension-gfm-autolink-literal@2.0.0: - resolution: {integrity: sha512-rTHfnpt/Q7dEAK1Y5ii0W8bhfJlVJFnJMHIPisfPK3gpVNuOP0VnRl96+YJ3RYWV/P4gFeQoGKNlT3RhuvpqAg==} - dependencies: - micromark-util-character: 2.0.1 - micromark-util-sanitize-uri: 2.0.0 - micromark-util-symbol: 2.0.0 - micromark-util-types: 2.0.0 + micromark-extension-gfm-autolink-literal@2.1.0: + resolution: {integrity: sha512-oOg7knzhicgQ3t4QCjCWgTmfNhvQbDDnJeVu9v81r7NltNCVmhPy1fJRX27pISafdjL+SVc4d3l48Gb6pbRypw==} - /micromark-extension-gfm-footnote@2.0.0: - resolution: {integrity: sha512-6Rzu0CYRKDv3BfLAUnZsSlzx3ak6HAoI85KTiijuKIz5UxZxbUI+pD6oHgw+6UtQuiRwnGRhzMmPRv4smcz0fg==} - dependencies: - devlop: 1.1.0 - micromark-core-commonmark: 2.0.0 - micromark-factory-space: 2.0.0 - micromark-util-character: 2.0.1 - micromark-util-normalize-identifier: 2.0.0 - micromark-util-sanitize-uri: 2.0.0 - micromark-util-symbol: 2.0.0 - micromark-util-types: 2.0.0 + micromark-extension-gfm-footnote@2.1.0: + resolution: {integrity: sha512-/yPhxI1ntnDNsiHtzLKYnE3vf9JZ6cAisqVDauhp4CEHxlb4uoOTxOCJ+9s51bIB8U1N1FJ1RXOKTIlD5B/gqw==} - /micromark-extension-gfm-strikethrough@2.0.0: - resolution: {integrity: sha512-c3BR1ClMp5fxxmwP6AoOY2fXO9U8uFMKs4ADD66ahLTNcwzSCyRVU4k7LPV5Nxo/VJiR4TdzxRQY2v3qIUceCw==} - dependencies: - devlop: 1.1.0 - micromark-util-chunked: 2.0.0 - micromark-util-classify-character: 2.0.0 - micromark-util-resolve-all: 2.0.0 - micromark-util-symbol: 2.0.0 - micromark-util-types: 2.0.0 + micromark-extension-gfm-strikethrough@2.1.0: + resolution: {integrity: sha512-ADVjpOOkjz1hhkZLlBiYA9cR2Anf8F4HqZUO6e5eDcPQd0Txw5fxLzzxnEkSkfnD0wziSGiv7sYhk/ktvbf1uw==} - /micromark-extension-gfm-table@2.0.0: - resolution: {integrity: sha512-PoHlhypg1ItIucOaHmKE8fbin3vTLpDOUg8KAr8gRCF1MOZI9Nquq2i/44wFvviM4WuxJzc3demT8Y3dkfvYrw==} - dependencies: - devlop: 1.1.0 - micromark-factory-space: 2.0.0 - micromark-util-character: 2.0.1 - micromark-util-symbol: 2.0.0 - micromark-util-types: 2.0.0 + micromark-extension-gfm-table@2.1.1: + resolution: {integrity: sha512-t2OU/dXXioARrC6yWfJ4hqB7rct14e8f7m0cbI5hUmDyyIlwv5vEtooptH8INkbLzOatzKuVbQmAYcbWoyz6Dg==} - /micromark-extension-gfm-tagfilter@2.0.0: + micromark-extension-gfm-tagfilter@2.0.0: resolution: {integrity: sha512-xHlTOmuCSotIA8TW1mDIM6X2O1SiX5P9IuDtqGonFhEK0qgRI4yeC6vMxEV2dgyr2TiD+2PQ10o+cOhdVAcwfg==} - dependencies: - micromark-util-types: 2.0.0 - /micromark-extension-gfm-task-list-item@2.0.1: - resolution: {integrity: sha512-cY5PzGcnULaN5O7T+cOzfMoHjBW7j+T9D2sucA5d/KbsBTPcYdebm9zUd9zzdgJGCwahV+/W78Z3nbulBYVbTw==} - dependencies: - devlop: 1.1.0 - micromark-factory-space: 2.0.0 - micromark-util-character: 2.0.1 - micromark-util-symbol: 2.0.0 - micromark-util-types: 2.0.0 + micromark-extension-gfm-task-list-item@2.1.0: + resolution: {integrity: sha512-qIBZhqxqI6fjLDYFTBIa4eivDMnP+OZqsNwmQ3xNLE4Cxwc+zfQEfbs6tzAo2Hjq+bh6q5F+Z8/cksrLFYWQQw==} - /micromark-extension-gfm@3.0.0: + micromark-extension-gfm@3.0.0: resolution: {integrity: sha512-vsKArQsicm7t0z2GugkCKtZehqUm31oeGBV/KVSorWSy8ZlNAv7ytjFhvaryUiCUJYqs+NoE6AFhpQvBTM6Q4w==} - dependencies: - micromark-extension-gfm-autolink-literal: 2.0.0 - micromark-extension-gfm-footnote: 2.0.0 - micromark-extension-gfm-strikethrough: 2.0.0 - micromark-extension-gfm-table: 2.0.0 - micromark-extension-gfm-tagfilter: 2.0.0 - micromark-extension-gfm-task-list-item: 2.0.1 - micromark-util-combine-extensions: 2.0.0 - micromark-util-types: 2.0.0 - /micromark-extension-mdx-expression@3.0.0: + micromark-extension-mdx-expression@3.0.0: resolution: {integrity: sha512-sI0nwhUDz97xyzqJAbHQhp5TfaxEvZZZ2JDqUo+7NvyIYG6BZ5CPPqj2ogUoPJlmXHBnyZUzISg9+oUmU6tUjQ==} - dependencies: - '@types/estree': 1.0.0 - devlop: 1.1.0 - micromark-factory-mdx-expression: 2.0.1 - micromark-factory-space: 2.0.0 - micromark-util-character: 2.0.1 - micromark-util-events-to-acorn: 2.0.2 - micromark-util-symbol: 2.0.0 - micromark-util-types: 2.0.0 - dev: false - /micromark-extension-mdx-jsx@3.0.0: - resolution: {integrity: sha512-uvhhss8OGuzR4/N17L1JwvmJIpPhAd8oByMawEKx6NVdBCbesjH4t+vjEp3ZXft9DwvlKSD07fCeI44/N0Vf2w==} - dependencies: - '@types/acorn': 4.0.6 - '@types/estree': 1.0.0 - devlop: 1.1.0 - estree-util-is-identifier-name: 3.0.0 - micromark-factory-mdx-expression: 2.0.1 - micromark-factory-space: 2.0.0 - micromark-util-character: 2.0.1 - micromark-util-symbol: 2.0.0 - micromark-util-types: 2.0.0 - vfile-message: 4.0.2 - dev: false + micromark-extension-mdx-jsx@3.0.1: + resolution: {integrity: sha512-vNuFb9czP8QCtAQcEJn0UJQJZA8Dk6DXKBqx+bg/w0WGuSxDxNr7hErW89tHUY31dUW4NqEOWwmEUNhjTFmHkg==} - /micromark-extension-mdx-md@2.0.0: + micromark-extension-mdx-md@2.0.0: resolution: {integrity: sha512-EpAiszsB3blw4Rpba7xTOUptcFeBFi+6PY8VnJ2hhimH+vCQDirWgsMpz7w1XcZE7LVrSAUGb9VJpG9ghlYvYQ==} - dependencies: - micromark-util-types: 2.0.0 - dev: false - /micromark-extension-mdxjs-esm@3.0.0: + micromark-extension-mdxjs-esm@3.0.0: resolution: {integrity: sha512-DJFl4ZqkErRpq/dAPyeWp15tGrcrrJho1hKK5uBS70BCtfrIFg81sqcTVu3Ta+KD1Tk5vAtBNElWxtAa+m8K9A==} - dependencies: - '@types/estree': 1.0.0 - devlop: 1.1.0 - micromark-core-commonmark: 2.0.0 - micromark-util-character: 2.0.1 - micromark-util-events-to-acorn: 2.0.2 - micromark-util-symbol: 2.0.0 - micromark-util-types: 2.0.0 - unist-util-position-from-estree: 2.0.0 - vfile-message: 4.0.2 - dev: false - /micromark-extension-mdxjs@3.0.0: + micromark-extension-mdxjs@3.0.0: resolution: {integrity: sha512-A873fJfhnJ2siZyUrJ31l34Uqwy4xIFmvPY1oj+Ean5PHcPBYzEsvqvWGaWcfEIr11O5Dlw3p2y0tZWpKHDejQ==} - dependencies: - acorn: 8.11.3 - acorn-jsx: 5.3.2(acorn@8.11.3) - micromark-extension-mdx-expression: 3.0.0 - micromark-extension-mdx-jsx: 3.0.0 - micromark-extension-mdx-md: 2.0.0 - micromark-extension-mdxjs-esm: 3.0.0 - micromark-util-combine-extensions: 2.0.0 - micromark-util-types: 2.0.0 - dev: false - /micromark-factory-destination@2.0.0: - resolution: {integrity: sha512-j9DGrQLm/Uhl2tCzcbLhy5kXsgkHUrjJHg4fFAeoMRwJmJerT9aw4FEhIbZStWN8A3qMwOp1uzHr4UL8AInxtA==} - dependencies: - micromark-util-character: 2.0.1 - micromark-util-symbol: 2.0.0 - micromark-util-types: 2.0.0 + micromark-factory-destination@2.0.1: + resolution: {integrity: sha512-Xe6rDdJlkmbFRExpTOmRj9N3MaWmbAgdpSrBQvCFqhezUn4AHqJHbaEnfbVYYiexVSs//tqOdY/DxhjdCiJnIA==} - /micromark-factory-label@2.0.0: - resolution: {integrity: sha512-RR3i96ohZGde//4WSe/dJsxOX6vxIg9TimLAS3i4EhBAFx8Sm5SmqVfR8E87DPSR31nEAjZfbt91OMZWcNgdZw==} - dependencies: - devlop: 1.1.0 - micromark-util-character: 2.0.1 - micromark-util-symbol: 2.0.0 - micromark-util-types: 2.0.0 + micromark-factory-label@2.0.1: + resolution: {integrity: sha512-VFMekyQExqIW7xIChcXn4ok29YE3rnuyveW3wZQWWqF4Nv9Wk5rgJ99KzPvHjkmPXF93FXIbBp6YdW3t71/7Vg==} - /micromark-factory-mdx-expression@2.0.1: - resolution: {integrity: sha512-F0ccWIUHRLRrYp5TC9ZYXmZo+p2AM13ggbsW4T0b5CRKP8KHVRB8t4pwtBgTxtjRmwrK0Irwm7vs2JOZabHZfg==} - dependencies: - '@types/estree': 1.0.0 - devlop: 1.1.0 - micromark-util-character: 2.0.1 - micromark-util-events-to-acorn: 2.0.2 - micromark-util-symbol: 2.0.0 - micromark-util-types: 2.0.0 - unist-util-position-from-estree: 2.0.0 - vfile-message: 4.0.2 - dev: false + micromark-factory-mdx-expression@2.0.2: + resolution: {integrity: sha512-5E5I2pFzJyg2CtemqAbcyCktpHXuJbABnsb32wX2U8IQKhhVFBqkcZR5LRm1WVoFqa4kTueZK4abep7wdo9nrw==} - /micromark-factory-space@2.0.0: - resolution: {integrity: sha512-TKr+LIDX2pkBJXFLzpyPyljzYK3MtmllMUMODTQJIUfDGncESaqB90db9IAUcz4AZAJFdd8U9zOp9ty1458rxg==} - dependencies: - micromark-util-character: 2.0.1 - micromark-util-types: 2.0.0 + micromark-factory-space@2.0.1: + resolution: {integrity: sha512-zRkxjtBxxLd2Sc0d+fbnEunsTj46SWXgXciZmHq0kDYGnck/ZSGj9/wULTV95uoeYiK5hRXP2mJ98Uo4cq/LQg==} - /micromark-factory-title@2.0.0: - resolution: {integrity: sha512-jY8CSxmpWLOxS+t8W+FG3Xigc0RDQA9bKMY/EwILvsesiRniiVMejYTE4wumNc2f4UbAa4WsHqe3J1QS1sli+A==} - dependencies: - micromark-factory-space: 2.0.0 - micromark-util-character: 2.0.1 - micromark-util-symbol: 2.0.0 - micromark-util-types: 2.0.0 + micromark-factory-title@2.0.1: + resolution: {integrity: sha512-5bZ+3CjhAd9eChYTHsjy6TGxpOFSKgKKJPJxr293jTbfry2KDoWkhBb6TcPVB4NmzaPhMs1Frm9AZH7OD4Cjzw==} - /micromark-factory-whitespace@2.0.0: - resolution: {integrity: sha512-28kbwaBjc5yAI1XadbdPYHX/eDnqaUFVikLwrO7FDnKG7lpgxnvk/XGRhX/PN0mOZ+dBSZ+LgunHS+6tYQAzhA==} - dependencies: - micromark-factory-space: 2.0.0 - micromark-util-character: 2.0.1 - micromark-util-symbol: 2.0.0 - micromark-util-types: 2.0.0 + micromark-factory-whitespace@2.0.1: + resolution: {integrity: sha512-Ob0nuZ3PKt/n0hORHyvoD9uZhr+Za8sFoP+OnMcnWK5lngSzALgQYKMr9RJVOWLqQYuyn6ulqGWSXdwf6F80lQ==} - /micromark-util-character@2.0.1: - resolution: {integrity: sha512-3wgnrmEAJ4T+mGXAUfMvMAbxU9RDG43XmGce4j6CwPtVxB3vfwXSZ6KhFwDzZ3mZHhmPimMAXg71veiBGzeAZw==} - dependencies: - micromark-util-symbol: 2.0.0 - micromark-util-types: 2.0.0 + micromark-util-character@2.1.1: + resolution: {integrity: sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q==} - /micromark-util-chunked@2.0.0: - resolution: {integrity: sha512-anK8SWmNphkXdaKgz5hJvGa7l00qmcaUQoMYsBwDlSKFKjc6gjGXPDw3FNL3Nbwq5L8gE+RCbGqTw49FK5Qyvg==} - dependencies: - micromark-util-symbol: 2.0.0 + micromark-util-chunked@2.0.1: + resolution: {integrity: sha512-QUNFEOPELfmvv+4xiNg2sRYeS/P84pTW0TCgP5zc9FpXetHY0ab7SxKyAQCNCc1eK0459uoLI1y5oO5Vc1dbhA==} - /micromark-util-classify-character@2.0.0: - resolution: {integrity: sha512-S0ze2R9GH+fu41FA7pbSqNWObo/kzwf8rN/+IGlW/4tC6oACOs8B++bh+i9bVyNnwCcuksbFwsBme5OCKXCwIw==} - dependencies: - micromark-util-character: 2.0.1 - micromark-util-symbol: 2.0.0 - micromark-util-types: 2.0.0 + micromark-util-classify-character@2.0.1: + resolution: {integrity: sha512-K0kHzM6afW/MbeWYWLjoHQv1sgg2Q9EccHEDzSkxiP/EaagNzCm7T/WMKZ3rjMbvIpvBiZgwR3dKMygtA4mG1Q==} - /micromark-util-combine-extensions@2.0.0: - resolution: {integrity: sha512-vZZio48k7ON0fVS3CUgFatWHoKbbLTK/rT7pzpJ4Bjp5JjkZeasRfrS9wsBdDJK2cJLHMckXZdzPSSr1B8a4oQ==} - dependencies: - micromark-util-chunked: 2.0.0 - micromark-util-types: 2.0.0 + micromark-util-combine-extensions@2.0.1: + resolution: {integrity: sha512-OnAnH8Ujmy59JcyZw8JSbK9cGpdVY44NKgSM7E9Eh7DiLS2E9RNQf0dONaGDzEG9yjEl5hcqeIsj4hfRkLH/Bg==} - /micromark-util-decode-numeric-character-reference@2.0.1: - resolution: {integrity: sha512-bmkNc7z8Wn6kgjZmVHOX3SowGmVdhYS7yBpMnuMnPzDq/6xwVA604DuOXMZTO1lvq01g+Adfa0pE2UKGlxL1XQ==} - dependencies: - micromark-util-symbol: 2.0.0 + micromark-util-decode-numeric-character-reference@2.0.2: + resolution: {integrity: sha512-ccUbYk6CwVdkmCQMyr64dXz42EfHGkPQlBj5p7YVGzq8I7CtjXZJrubAYezf7Rp+bjPseiROqe7G6foFd+lEuw==} - /micromark-util-decode-string@2.0.0: - resolution: {integrity: sha512-r4Sc6leeUTn3P6gk20aFMj2ntPwn6qpDZqWvYmAG6NgvFTIlj4WtrAudLi65qYoaGdXYViXYw2pkmn7QnIFasA==} - dependencies: - decode-named-character-reference: 1.0.2 - micromark-util-character: 2.0.1 - micromark-util-decode-numeric-character-reference: 2.0.1 - micromark-util-symbol: 2.0.0 + micromark-util-decode-string@2.0.1: + resolution: {integrity: sha512-nDV/77Fj6eH1ynwscYTOsbK7rR//Uj0bZXBwJZRfaLEJ1iGBR6kIfNmlNqaqJf649EP0F3NWNdeJi03elllNUQ==} - /micromark-util-encode@2.0.0: - resolution: {integrity: sha512-pS+ROfCXAGLWCOc8egcBvT0kf27GoWMqtdarNfDcjb6YLuV5cM3ioG45Ys2qOVqeqSbjaKg72vU+Wby3eddPsA==} + micromark-util-encode@2.0.1: + resolution: {integrity: sha512-c3cVx2y4KqUnwopcO9b/SCdo2O67LwJJ/UyqGfbigahfegL9myoEFoDYZgkT7f36T0bLrM9hZTAaAyH+PCAXjw==} - /micromark-util-events-to-acorn@2.0.2: + micromark-util-events-to-acorn@2.0.2: resolution: {integrity: sha512-Fk+xmBrOv9QZnEDguL9OI9/NQQp6Hz4FuQ4YmCb/5V7+9eAh1s6AYSvL20kHkD67YIg7EpE54TiSlcsf3vyZgA==} - dependencies: - '@types/acorn': 4.0.6 - '@types/estree': 1.0.0 - '@types/unist': 3.0.1 - devlop: 1.1.0 - estree-util-visit: 2.0.0 - micromark-util-symbol: 2.0.0 - micromark-util-types: 2.0.0 - vfile-message: 4.0.2 - dev: false - /micromark-util-html-tag-name@2.0.0: - resolution: {integrity: sha512-xNn4Pqkj2puRhKdKTm8t1YHC/BAjx6CEwRFXntTaRf/x16aqka6ouVoutm+QdkISTlT7e2zU7U4ZdlDLJd2Mcw==} + micromark-util-html-tag-name@2.0.1: + resolution: {integrity: sha512-2cNEiYDhCWKI+Gs9T0Tiysk136SnR13hhO8yW6BGNyhOC4qYFnwF1nKfD3HFAIXA5c45RrIG1ub11GiXeYd1xA==} - /micromark-util-normalize-identifier@2.0.0: - resolution: {integrity: sha512-2xhYT0sfo85FMrUPtHcPo2rrp1lwbDEEzpx7jiH2xXJLqBuy4H0GgXk5ToU8IEwoROtXuL8ND0ttVa4rNqYK3w==} - dependencies: - micromark-util-symbol: 2.0.0 + micromark-util-normalize-identifier@2.0.1: + resolution: {integrity: sha512-sxPqmo70LyARJs0w2UclACPUUEqltCkJ6PhKdMIDuJ3gSf/Q+/GIe3WKl0Ijb/GyH9lOpUkRAO2wp0GVkLvS9Q==} - /micromark-util-resolve-all@2.0.0: - resolution: {integrity: sha512-6KU6qO7DZ7GJkaCgwBNtplXCvGkJToU86ybBAUdavvgsCiG8lSSvYxr9MhwmQ+udpzywHsl4RpGJsYWG1pDOcA==} - dependencies: - micromark-util-types: 2.0.0 + micromark-util-resolve-all@2.0.1: + resolution: {integrity: sha512-VdQyxFWFT2/FGJgwQnJYbe1jjQoNTS4RjglmSjTUlpUMa95Htx9NHeYW4rGDJzbjvCsl9eLjMQwGeElsqmzcHg==} - /micromark-util-sanitize-uri@2.0.0: - resolution: {integrity: sha512-WhYv5UEcZrbAtlsnPuChHUAsu/iBPOVaEVsntLBIdpibO0ddy8OzavZz3iL2xVvBZOpolujSliP65Kq0/7KIYw==} - dependencies: - micromark-util-character: 2.0.1 - micromark-util-encode: 2.0.0 - micromark-util-symbol: 2.0.0 + micromark-util-sanitize-uri@2.0.1: + resolution: {integrity: sha512-9N9IomZ/YuGGZZmQec1MbgxtlgougxTodVwDzzEouPKo3qFWvymFHWcnDi2vzV1ff6kas9ucW+o3yzJK9YB1AQ==} - /micromark-util-subtokenize@2.0.0: - resolution: {integrity: sha512-vc93L1t+gpR3p8jxeVdaYlbV2jTYteDje19rNSS/H5dlhxUYll5Fy6vJ2cDwP8RnsXi818yGty1ayP55y3W6fg==} - dependencies: - devlop: 1.1.0 - micromark-util-chunked: 2.0.0 - micromark-util-symbol: 2.0.0 - micromark-util-types: 2.0.0 + micromark-util-subtokenize@2.0.4: + resolution: {integrity: sha512-N6hXjrin2GTJDe3MVjf5FuXpm12PGm80BrUAeub9XFXca8JZbP+oIwY4LJSVwFUCL1IPm/WwSVUN7goFHmSGGQ==} - /micromark-util-symbol@2.0.0: - resolution: {integrity: sha512-8JZt9ElZ5kyTnO94muPxIGS8oyElRJaiJO8EzV6ZSyGQ1Is8xwl4Q45qU5UOg+bGH4AikWziz0iN4sFLWs8PGw==} + micromark-util-symbol@2.0.1: + resolution: {integrity: sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==} - /micromark-util-types@2.0.0: - resolution: {integrity: sha512-oNh6S2WMHWRZrmutsRmDDfkzKtxF+bc2VxLC9dvtrDIRFln627VsFP6fLMgTryGDljgLPjkrzQSDcPrjPyDJ5w==} + micromark-util-types@2.0.1: + resolution: {integrity: sha512-534m2WhVTddrcKVepwmVEVnUAmtrx9bfIjNoQHRqfnvdaHQiFytEhJoTgpWJvDEXCO5gLTQh3wYC1PgOJA4NSQ==} - /micromark@4.0.0: - resolution: {integrity: sha512-o/sd0nMof8kYff+TqcDx3VSrgBTcZpSvYcAHIfHhv5VAuNmisCxjhx6YmxS8PFEpb9z5WKWKPdzf0jM23ro3RQ==} - dependencies: - '@types/debug': 4.1.7 - debug: 4.3.4 - decode-named-character-reference: 1.0.2 - devlop: 1.1.0 - micromark-core-commonmark: 2.0.0 - micromark-factory-space: 2.0.0 - micromark-util-character: 2.0.1 - micromark-util-chunked: 2.0.0 - micromark-util-combine-extensions: 2.0.0 - micromark-util-decode-numeric-character-reference: 2.0.1 - micromark-util-encode: 2.0.0 - micromark-util-normalize-identifier: 2.0.0 - micromark-util-resolve-all: 2.0.0 - micromark-util-sanitize-uri: 2.0.0 - micromark-util-subtokenize: 2.0.0 - micromark-util-symbol: 2.0.0 - micromark-util-types: 2.0.0 - transitivePeerDependencies: - - supports-color + micromark@4.0.1: + resolution: {integrity: sha512-eBPdkcoCNvYcxQOAKAlceo5SNdzZWfF+FcSupREAzdAh9rRmE239CEQAiTwIgblwnoM8zzj35sZ5ZwvSEOF6Kw==} - /micromatch@4.0.5: - resolution: {integrity: sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==} + micromatch@4.0.8: + resolution: {integrity: sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==} engines: {node: '>=8.6'} - dependencies: - braces: 3.0.2 - picomatch: 2.3.1 - /mime-db@1.52.0: + mime-db@1.52.0: resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==} engines: {node: '>= 0.6'} - dev: true - /mime-types@2.1.35: + mime-types@2.1.35: resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==} engines: {node: '>= 0.6'} - dependencies: - mime-db: 1.52.0 - dev: true - /mime@3.0.0: + mime@3.0.0: resolution: {integrity: sha512-jSCU7/VB1loIWBZe14aEYHU/+1UMEHoaO7qxCOVJOw9GgH72VAWppxNcjU+x9a2k3GSIBXNKxXQFqRvvZ7vr3A==} engines: {node: '>=10.0.0'} hasBin: true - /mimic-fn@2.1.0: + mimic-fn@2.1.0: resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==} engines: {node: '>=6'} - /mimic-fn@4.0.0: - resolution: {integrity: sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==} - engines: {node: '>=12'} - - /mimic-response@3.1.0: + mimic-response@3.1.0: resolution: {integrity: sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==} engines: {node: '>=10'} - dev: true - /min-indent@1.0.1: + min-indent@1.0.1: resolution: {integrity: sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==} engines: {node: '>=4'} - dev: true - /mini-svg-data-uri@1.4.4: + mini-svg-data-uri@1.4.4: resolution: {integrity: sha512-r9deDe9p5FJUPZAk3A59wGH7Ii9YrjjWw0jmw/liSbHl2CHiyXj6FcDXDu2K3TjVAXqiJdaw3xxwlZZr9E6nHg==} hasBin: true - dev: false - /minimatch@3.0.5: + minimatch@3.0.5: resolution: {integrity: sha512-tUpxzX0VAzJHjLu0xUfFv1gwVp9ba3IOuRAVH2EGuRW8a5emA2FlACLqiT/lDVtS1W+TGNwqz3sWaNyLgDJWuw==} - dependencies: - brace-expansion: 1.1.11 - dev: true - /minimatch@3.1.2: + minimatch@3.1.2: resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} - dependencies: - brace-expansion: 1.1.11 - /minimatch@5.1.6: + minimatch@5.1.6: resolution: {integrity: sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==} engines: {node: '>=10'} - dependencies: - brace-expansion: 2.0.1 - dev: true - /minimatch@7.4.6: - resolution: {integrity: sha512-sBz8G/YjVniEz6lKPNpKxXwazJe4c19fEfV2GDMX6AjFz+MX9uDWIZW8XreVhkFW3fkIdTv/gxWr/Kks5FFAVw==} - engines: {node: '>=10'} - dependencies: - brace-expansion: 2.0.1 - dev: true - - /minimatch@8.0.4: + minimatch@8.0.4: resolution: {integrity: sha512-W0Wvr9HyFXZRGIDgCicunpQ299OKXs9RgZfaukz4qAW/pJhcpUfupc9c+OObPOFueNy8VSrZgEmDtk6Kh4WzDA==} engines: {node: '>=16 || 14 >=14.17'} - dependencies: - brace-expansion: 2.0.1 - dev: true - /minimatch@9.0.0: - resolution: {integrity: sha512-0jJj8AvgKqWN05mrwuqi8QYKx1WmYSUoKSxu5Qhs9prezTz10sxAHGNZe9J9cqIJzta8DWsleh2KaVaLl6Ru2w==} - engines: {node: '>=16 || 14 >=14.17'} - dependencies: - brace-expansion: 2.0.1 - dev: true - - /minimatch@9.0.3: + minimatch@9.0.3: resolution: {integrity: sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==} engines: {node: '>=16 || 14 >=14.17'} - dependencies: - brace-expansion: 2.0.1 - dev: true - /minimist-options@4.1.0: + minimatch@9.0.5: + resolution: {integrity: sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==} + engines: {node: '>=16 || 14 >=14.17'} + + minimist-options@4.1.0: resolution: {integrity: sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A==} engines: {node: '>= 6'} - dependencies: - arrify: 1.0.1 - is-plain-obj: 1.1.0 - kind-of: 6.0.3 - dev: true - /minimist@1.2.7: - resolution: {integrity: sha512-bzfL1YUZsP41gmu/qjrEk0Q6i2ix/cVeAhbCbqH9u3zYutS1cLg00qhrD0M2MVdCcx4Sc0UpP2eBWo9rotpq6g==} + minimist@1.2.8: + resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==} - /minipass-collect@1.0.2: - resolution: {integrity: sha512-6T6lH0H8OG9kITm/Jm6tdooIbogG9e0tLgpY6mphXSm/A9u8Nq1ryBG+Qspiub9LjWlBPsPS3tWQ/Botq4FdxA==} - engines: {node: '>= 8'} - dependencies: - minipass: 3.3.6 - dev: true - - /minipass-collect@2.0.1: + minipass-collect@2.0.1: resolution: {integrity: sha512-D7V8PO9oaz7PWGLbCACuI1qEOsq7UKfLotx/C0Aet43fCUB/wfQ7DYeq2oR/svFJGYDHPr38SHATeaj/ZoKHKw==} engines: {node: '>=16 || 14 >=14.17'} - dependencies: - minipass: 7.0.4 - dev: true - /minipass-fetch@3.0.3: - resolution: {integrity: sha512-n5ITsTkDqYkYJZjcRWzZt9qnZKCT7nKCosJhHoj7S7zD+BP4jVbWs+odsniw5TA3E0sLomhTKOKjF86wf11PuQ==} + minipass-fetch@3.0.5: + resolution: {integrity: sha512-2N8elDQAtSnFV0Dk7gt15KHsS0Fyz6CbYZ360h0WTYV1Ty46li3rAXVOQj1THMNLdmrD9Vt5pBPtWtVkpwGBqg==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - dependencies: - minipass: 5.0.0 - minipass-sized: 1.0.3 - minizlib: 2.1.2 - optionalDependencies: - encoding: 0.1.13 - dev: true - /minipass-flush@1.0.5: + minipass-flush@1.0.5: resolution: {integrity: sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw==} engines: {node: '>= 8'} - dependencies: - minipass: 3.3.6 - dev: true - /minipass-json-stream@1.0.1: - resolution: {integrity: sha512-ODqY18UZt/I8k+b7rl2AENgbWE8IDYam+undIJONvigAz8KR5GWblsFTEfQs0WODsjbSXWlm+JHEv8Gr6Tfdbg==} - dependencies: - jsonparse: 1.3.1 - minipass: 3.3.6 - dev: true - - /minipass-pipeline@1.2.4: + minipass-pipeline@1.2.4: resolution: {integrity: sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A==} engines: {node: '>=8'} - dependencies: - minipass: 3.3.6 - dev: true - /minipass-sized@1.0.3: + minipass-sized@1.0.3: resolution: {integrity: sha512-MbkQQ2CTiBMlA2Dm/5cY+9SWFEN8pzzOXi6rlM5Xxq0Yqbda5ZQy9sU75a673FE9ZK0Zsbr6Y5iP6u9nktfg2g==} engines: {node: '>=8'} - dependencies: - minipass: 3.3.6 - dev: true - /minipass@3.3.6: + minipass@3.3.6: resolution: {integrity: sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==} engines: {node: '>=8'} - dependencies: - yallist: 4.0.0 - dev: true - /minipass@4.0.0: - resolution: {integrity: sha512-g2Uuh2jEKoht+zvO6vJqXmYpflPqzRBT+Th2h01DKh5z7wbY/AZ2gCQ78cP70YoHPyFdY30YBV5WxgLOEwOykw==} - engines: {node: '>=8'} - dependencies: - yallist: 4.0.0 - dev: true - - /minipass@4.2.8: + minipass@4.2.8: resolution: {integrity: sha512-fNzuVyifolSLFL4NzpF+wEF4qrgqaaKX0haXPQEdQ7NKAN+WecoKMHV09YcuL/DHxrUsYQOK3MiuDf7Ip2OXfQ==} engines: {node: '>=8'} - dev: true - /minipass@5.0.0: + minipass@5.0.0: resolution: {integrity: sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==} engines: {node: '>=8'} - dev: true - /minipass@7.0.4: - resolution: {integrity: sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==} + minipass@7.1.2: + resolution: {integrity: sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==} engines: {node: '>=16 || 14 >=14.17'} - dev: true - /minizlib@2.1.2: + minizlib@2.1.2: resolution: {integrity: sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==} engines: {node: '>= 8'} - dependencies: - minipass: 3.3.6 - yallist: 4.0.0 - dev: true - /mkdirp-classic@0.5.3: + mkdirp-classic@0.5.3: resolution: {integrity: sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==} - dev: true - /mkdirp2@1.0.5: - resolution: {integrity: sha512-xOE9xbICroUDmG1ye2h4bZ8WBie9EGmACaco8K8cx6RlkJJrxGIqjGqztAI+NMhexXBcdGbSEzI6N3EJPevxZw==} - dev: true - - /mkdirp@1.0.4: + mkdirp@1.0.4: resolution: {integrity: sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==} engines: {node: '>=10'} hasBin: true - dev: true - /mlly@1.4.0: - resolution: {integrity: sha512-ua8PAThnTwpprIaU47EPeZ/bPUVp2QYBbWMphUQpVdBI3Lgqzm5KZQ45Agm3YJedHXaIHl6pBGabaLSUPPSptg==} - dependencies: - acorn: 8.11.3 - pathe: 1.1.1 - pkg-types: 1.0.3 - ufo: 1.1.2 - dev: true - - /mlly@1.4.2: - resolution: {integrity: sha512-i/Ykufi2t1EZ6NaPLdfnZk2AX8cs0d+mTzVKuPfqPKPatxLApaBoxJQ9x1/uckXtrS/U5oisPMDkNs0yQTaBRg==} - dependencies: - acorn: 8.11.3 - pathe: 1.1.1 - pkg-types: 1.0.3 - ufo: 1.3.2 - dev: true - - /modify-values@1.0.1: + modify-values@1.0.1: resolution: {integrity: sha512-xV2bxeN6F7oYjZWTe/YPAy6MN2M+sL4u/Rlm2AHCIVGfo2p1yGmBHQ6vHehl4bRTZBdHu3TSkWdYgkwpYzAGSw==} engines: {node: '>=0.10.0'} - dev: true - /module-definition@5.0.1: - resolution: {integrity: sha512-kvw3B4G19IXk+BOXnYq/D/VeO9qfHaapMeuS7w7sNUqmGaA6hywdFHMi+VWeR9wUScXM7XjoryTffCZ5B0/8IA==} - engines: {node: '>=14'} + module-definition@6.0.0: + resolution: {integrity: sha512-sEGP5nKEXU7fGSZUML/coJbrO+yQtxcppDAYWRE9ovWsTbFoUHB2qDUx564WUzDaBHXsD46JBbIK5WVTwCyu3w==} + engines: {node: '>=18'} hasBin: true - dependencies: - ast-module-types: 5.0.0 - node-source-walk: 6.0.2 - dev: true - /module-lookup-amd@8.0.5: - resolution: {integrity: sha512-vc3rYLjDo5Frjox8NZpiyLXsNWJ5BWshztc/5KSOMzpg9k5cHH652YsJ7VKKmtM4SvaxuE9RkrYGhiSjH3Ehow==} - engines: {node: '>=14'} + module-lookup-amd@9.0.2: + resolution: {integrity: sha512-p7PzSVEWiW9fHRX9oM+V4aV5B2nCVddVNv4DZ/JB6t9GsXY4E+ZVhPpnwUX7bbJyGeeVZqhS8q/JZ/H77IqPFA==} + engines: {node: '>=18'} hasBin: true - dependencies: - commander: 10.0.1 - glob: 7.2.3 - requirejs: 2.3.6 - requirejs-config-file: 4.0.0 - dev: true - /mrmime@2.0.0: + mondo@0.4.4: + resolution: {integrity: sha512-3ot6iKwC9KZvwmyZ9dgPCnlt0O1GuBnK8QZyhnoJdtkIiRL9X/cmQuu88CbFSznQx6bq19xQdwJHpv8hggH62Q==} + deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info. + + mrmime@2.0.0: resolution: {integrity: sha512-eu38+hdgojoyq63s+yTpN4XMBdt5l8HhMhc4VKLO9KM5caLIBvUm4thi7fFaxyTmCKeNnXZ5pAlBwCUnhA09uw==} engines: {node: '>=10'} - dev: true - /ms@2.0.0: + ms@2.0.0: resolution: {integrity: sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==} - /ms@2.1.2: - resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} - - /ms@2.1.3: + ms@2.1.3: resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} - /multimatch@5.0.0: + multimatch@5.0.0: resolution: {integrity: sha512-ypMKuglUrZUD99Tk2bUQ+xNQj43lPEfAeX2o9cTteAmShXy2VHDJpuwu1o0xqoKCt9jLVAvwyFKdLTPXKAfJyA==} engines: {node: '>=10'} - dependencies: - '@types/minimatch': 3.0.5 - array-differ: 3.0.0 - array-union: 2.1.0 - arrify: 2.0.1 - minimatch: 3.1.2 - dev: true - /multistream@4.1.0: + multistream@4.1.0: resolution: {integrity: sha512-J1XDiAmmNpRCBfIWJv+n0ymC4ABcf/Pl+5YvC5B/D2f/2+8PtHvCNxMPKiQcZyi922Hq69J2YOpb1pTywfifyw==} - dependencies: - once: 1.4.0 - readable-stream: 3.6.0 - dev: true - /mute-stream@0.0.8: + mute-stream@0.0.8: resolution: {integrity: sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==} - dev: true - /mute-stream@1.0.0: + mute-stream@1.0.0: resolution: {integrity: sha512-avsJQhyd+680gKXyG/sQc0nXaC6rBkPOfyHYcFb9+hdkqQkR9bdnkJ0AMZhke0oesPqIO+mFFJ+IdBc7mst4IA==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - dev: true - /mz@2.7.0: + mz@2.7.0: resolution: {integrity: sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==} - dependencies: - any-promise: 1.3.0 - object-assign: 4.1.1 - thenify-all: 1.6.0 - dev: false - /nanoid@3.3.7: - resolution: {integrity: sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==} + nanoid@3.3.8: + resolution: {integrity: sha512-WNLf5Sd8oZxOm+TzppcYk8gVOgP+l58xNy58D0nbUnOxOWRWvlcCV4kUF7ltmI6PsrLl/BgKEyS4mqsGChFN0w==} engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} hasBin: true - /nanoid@5.0.4: - resolution: {integrity: sha512-vAjmBf13gsmhXSgBrtIclinISzFFy22WwCYoyilZlsrRXNIHSwgFQ1bEdjRwMT3aoadeIF6HMuDRlOxzfXV8ig==} + nanoid@5.0.9: + resolution: {integrity: sha512-Aooyr6MXU6HpvvWXKoVoXwKMs/KyVakWwg7xQfv5/S/RIgJMy0Ifa45H9qqYy7pTCszrHzP21Uk4PZq2HpEM8Q==} engines: {node: ^18 || >=20} hasBin: true - dev: false - /nanostores@0.9.5: - resolution: {integrity: sha512-Z+p+g8E7yzaWwOe5gEUB2Ox0rCEeXWYIZWmYvw/ajNYX8DlXdMvMDj8DWfM/subqPAcsf8l8Td4iAwO1DeIIRQ==} - engines: {node: ^16.0.0 || ^18.0.0 || >=20.0.0} - dev: false + nanostores@0.11.3: + resolution: {integrity: sha512-TUes3xKIX33re4QzdxwZ6tdbodjmn3tWXCEc1uokiEmo14sI1EaGYNs2k3bU2pyyGNmBqFGAVl6jAGWd06AVIg==} + engines: {node: ^18.0.0 || >=20.0.0} - /napi-build-utils@1.0.2: + napi-build-utils@1.0.2: resolution: {integrity: sha512-ONmRUqK7zj7DWX0D9ADe03wbwOBZxNAfF20PlGfCWQcD3+/MakShIHrMqx9YwPTfxDdF1zLeL+RGZiR9kGMLdg==} - dev: true - /natural-compare@1.4.0: + natural-compare@1.4.0: resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} - /needle@2.9.1: - resolution: {integrity: sha512-6R9fqJ5Zcmf+uYaFgdIHmLwNldn5HbK8L5ybn7Uz+ylX/rnOsSp1AHcvQSrCaFN+qNM1wpymHqD7mVasEOlHGQ==} - engines: {node: '>= 4.4.x'} - hasBin: true - dependencies: - debug: 3.2.7 - iconv-lite: 0.4.24 - sax: 1.3.0 - transitivePeerDependencies: - - supports-color - - /negotiator@0.6.3: - resolution: {integrity: sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==} + negotiator@0.6.4: + resolution: {integrity: sha512-myRT3DiWPHqho5PrJaIRyaMv2kgYf0mUVgBNOYMuCH5Ki1yEiQaf/ZJuQ62nvpc44wL5WDbTX7yGJi1Neevw8w==} engines: {node: '>= 0.6'} - dev: true - /neo-async@2.6.2: + neo-async@2.6.2: resolution: {integrity: sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==} - dev: true - /nlcst-to-string@3.1.1: - resolution: {integrity: sha512-63mVyqaqt0cmn2VcI2aH6kxe1rLAmSROqHMA0i4qqg1tidkfExgpb0FGMikMCn86mw5dFtBtEANfmSSK7TjNHw==} - dependencies: - '@types/nlcst': 1.0.0 + neotraverse@0.6.18: + resolution: {integrity: sha512-Z4SmBUweYa09+o6pG+eASabEpP6QkQ70yHj351pQoEXIs8uHbaU2DWVmzBANKgflPa47A50PtB2+NgRpQvr7vA==} + engines: {node: '>= 10'} - /node-abi@3.40.0: - resolution: {integrity: sha512-zNy02qivjjRosswoYmPi8hIKJRr8MpQyeKT6qlcq/OnOgA3Rhoae+IYOqsM9V5+JnHWmxKnWOT2GxvtqdtOCXA==} + nlcst-to-string@4.0.0: + resolution: {integrity: sha512-YKLBCcUYKAg0FNlOBT6aI91qFmSiFKiluk655WzPF+DDMA02qIyy8uiRqI8QXtcFpEvll12LpL5MXqEmAZ+dcA==} + + node-abi@3.73.0: + resolution: {integrity: sha512-z8iYzQGBu35ZkTQ9mtR8RqugJZ9RCLn8fv3d7LsgDBzOijGQP3RdKTX4LA7LXw03ZhU5z0l4xfhIMgSES31+cg==} engines: {node: '>=10'} - dependencies: - semver: 7.5.4 - dev: true - /node-domexception@1.0.0: + node-addon-api@8.3.0: + resolution: {integrity: sha512-8VOpLHFrOQlAH+qA0ZzuGRlALRA6/LVh8QJldbrC4DY0hXoMP0l4Acq8TzFC018HztWiRqyCEj2aTWY2UvnJUg==} + engines: {node: ^18 || ^20 || >= 21} + + node-domexception@1.0.0: resolution: {integrity: sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==} engines: {node: '>=10.5.0'} - dev: true - /node-fetch@2.6.7: + node-fetch-native@1.6.6: + resolution: {integrity: sha512-8Mc2HhqPdlIfedsuZoc3yioPuzp6b+L5jRCRY1QzuWZh2EGJVQrGppC6V6cF0bLdbW0+O2YpqCA25aF/1lvipQ==} + + node-fetch@2.6.7: resolution: {integrity: sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==} engines: {node: 4.x || >=6.0.0} peerDependencies: @@ -10650,833 +5726,403 @@ packages: peerDependenciesMeta: encoding: optional: true - dependencies: - whatwg-url: 5.0.0 - dev: true - /node-fetch@2.6.8: - resolution: {integrity: sha512-RZ6dBYuj8dRSfxpUSu+NsdF1dpPpluJxwOp+6IoDp/sH2QNDSvurYsAa+F1WxY2RjA1iP93xhcsUoYbF2XBqVg==} + node-fetch@2.7.0: + resolution: {integrity: sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==} engines: {node: 4.x || >=6.0.0} peerDependencies: encoding: ^0.1.0 peerDependenciesMeta: encoding: optional: true - dependencies: - whatwg-url: 5.0.0 - dev: true - /node-fetch@3.3.2: + node-fetch@3.3.2: resolution: {integrity: sha512-dRB78srN/l6gqWulah9SrxeYnxeddIG30+GOqK/9OlLVyLg3HPnr6SqOWTWOXKRwC2eGYCkZ59NNuSgvSrpgOA==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - dependencies: - data-uri-to-buffer: 4.0.1 - fetch-blob: 3.2.0 - formdata-polyfill: 4.0.10 - dev: true - /node-getopt@0.3.2: + node-getopt@0.3.2: resolution: {integrity: sha512-yqkmYrMbK1wPrfz7mgeYvA4tBperLg9FQ4S3Sau3nSAkpOA0x0zC8nQ1siBwozy1f4SE8vq2n1WKv99r+PCa1Q==} engines: {node: '>= 0.6.0'} - dev: false - /node-gyp@10.0.1: - resolution: {integrity: sha512-gg3/bHehQfZivQVfqIyy8wTdSymF9yTyP4CJifK73imyNMU8AIGQE2pUa7dNWfmMeG9cDVF2eehiRMv0LC1iAg==} + node-gyp-build@4.8.4: + resolution: {integrity: sha512-LA4ZjwlnUblHVgq0oBF3Jl/6h/Nvs5fzBLwdEF4nuxnFdsfajde4WfxtJr3CaiH+F6ewcIB/q4jQ4UzPyid+CQ==} + hasBin: true + + node-gyp@10.3.1: + resolution: {integrity: sha512-Pp3nFHBThHzVtNY7U6JfPjvT/DTE8+o/4xKsLQtBoU+j2HLsGlhcfzflAoUreaJbNmYnX+LlLi0qjV8kpyO6xQ==} engines: {node: ^16.14.0 || >=18.0.0} hasBin: true - dependencies: - env-paths: 2.2.1 - exponential-backoff: 3.1.1 - glob: 10.3.10 - graceful-fs: 4.2.11 - make-fetch-happen: 13.0.0 - nopt: 7.1.0 - proc-log: 3.0.0 - semver: 7.5.4 - tar: 6.1.13 - which: 4.0.0 - transitivePeerDependencies: - - supports-color - dev: true - /node-machine-id@1.1.12: + node-machine-id@1.1.12: resolution: {integrity: sha512-QNABxbrPa3qEIfrE6GOJ7BYIuignnJw7iQ2YPbc3Nla1HzRJjXzZOiikfF8m7eAMfichLt3M4VgLOetqgDmgGQ==} - dev: true - /node-releases@2.0.13: - resolution: {integrity: sha512-uYr7J37ae/ORWdZeQ1xxMJe3NtdmqMC/JZK+geofDrkLUApKRHPd18/TxtBOJ4A0/+uUIliorNrfYV6s1b02eQ==} - dev: false + node-releases@2.0.19: + resolution: {integrity: sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw==} - /node-releases@2.0.14: - resolution: {integrity: sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==} + node-source-walk@7.0.0: + resolution: {integrity: sha512-1uiY543L+N7Og4yswvlm5NCKgPKDEXd9AUR9Jh3gen6oOeBsesr6LqhXom1er3eRzSUcVRWXzhv8tSNrIfGHKw==} + engines: {node: '>=18'} - /node-source-walk@6.0.2: - resolution: {integrity: sha512-jn9vOIK/nfqoFCcpK89/VCVaLg1IHE6UVfDOzvqmANaJ/rWCTEdH8RZ1V278nv2jr36BJdyQXIAavBLXpzdlag==} - engines: {node: '>=14'} - dependencies: - '@babel/parser': 7.23.6 - dev: true - - /nopt@7.1.0: - resolution: {integrity: sha512-ZFPLe9Iu0tnx7oWhFxAo4s7QTn8+NNDDxYNaKLjE7Dp0tbakQ3M1QhQzsnzXHQBTUO3K9BmwaxnyO8Ayn2I95Q==} + nopt@7.2.1: + resolution: {integrity: sha512-taM24ViiimT/XntxbPyJQzCG+p4EKOpgD3mxFwW38mGjVUrfERQOeY4EDHjdnptttfHuHQXFx+lTP08Q+mLa/w==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} hasBin: true - dependencies: - abbrev: 2.0.0 - dev: true - /normalize-package-data@2.5.0: + normalize-package-data@2.5.0: resolution: {integrity: sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==} - dependencies: - hosted-git-info: 2.8.9 - resolve: 1.22.8 - semver: 5.7.1 - validate-npm-package-license: 3.0.4 - dev: true - /normalize-package-data@3.0.3: + normalize-package-data@3.0.3: resolution: {integrity: sha512-p2W1sgqij3zMMyRC067Dg16bfzVH+w7hyegmpIvZ4JNjqtGOVAIvLmjBx3yP7YTe9vKJgkoNOPjwQGogDoMXFA==} engines: {node: '>=10'} - dependencies: - hosted-git-info: 4.1.0 - is-core-module: 2.13.1 - semver: 7.5.4 - validate-npm-package-license: 3.0.4 - dev: true - /normalize-package-data@5.0.0: - resolution: {integrity: sha512-h9iPVIfrVZ9wVYQnxFgtw1ugSvGEMOlyPWWtm8BMJhnwyEL/FLbYbTY3V3PpjI/BUK67n9PEWDu6eHzu1fB15Q==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - dependencies: - hosted-git-info: 6.1.1 - is-core-module: 2.13.1 - semver: 7.5.4 - validate-npm-package-license: 3.0.4 - dev: true - - /normalize-package-data@6.0.0: - resolution: {integrity: sha512-UL7ELRVxYBHBgYEtZCXjxuD5vPxnmvMGq0jp/dGPKKrN7tfsBh2IY7TlJ15WWwdjRWD3RJbnsygUurTK3xkPkg==} + normalize-package-data@6.0.2: + resolution: {integrity: sha512-V6gygoYb/5EmNI+MEGrWkC+e6+Rr7mTmfHrxDbLzxQogBkgzo76rkok0Am6thgSF7Mv2nLOajAJj5vDJZEFn7g==} engines: {node: ^16.14.0 || >=18.0.0} - dependencies: - hosted-git-info: 7.0.1 - is-core-module: 2.13.1 - semver: 7.5.4 - validate-npm-package-license: 3.0.4 - dev: true - /normalize-path@3.0.0: + normalize-path@3.0.0: resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} engines: {node: '>=0.10.0'} - /normalize-range@0.1.2: + normalize-range@0.1.2: resolution: {integrity: sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==} engines: {node: '>=0.10.0'} - dev: false - /npm-bundled@1.1.2: - resolution: {integrity: sha512-x5DHup0SuyQcmL3s7Rx/YQ8sbw/Hzg0rj48eN0dV7hf5cmQq5PXIeioroH3raV1QC1yh3uTYuMThvEQF3iKgGQ==} - dependencies: - npm-normalize-package-bin: 1.0.1 - dev: true - - /npm-bundled@3.0.0: - resolution: {integrity: sha512-Vq0eyEQy+elFpzsKjMss9kxqb9tG3YHg4dsyWuUENuzvSUWe1TCnW/vV9FkhvBk/brEDoDiVd+M1Btosa6ImdQ==} + npm-bundled@3.0.1: + resolution: {integrity: sha512-+AvaheE/ww1JEwRHOrn4WHNzOxGtVp+adrg2AeZS/7KuxGUYFuBta98wYpfHBbJp6Tg6j1NKSEVHNcfZzJHQwQ==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - dependencies: - npm-normalize-package-bin: 3.0.0 - dev: true - /npm-install-checks@6.1.1: - resolution: {integrity: sha512-dH3GmQL4vsPtld59cOn8uY0iOqRmqKvV+DLGwNXV/Q7MDgD2QfOADWd/mFXcIE5LVhYYGjA3baz6W9JneqnuCw==} + npm-install-checks@6.3.0: + resolution: {integrity: sha512-W29RiK/xtpCGqn6f3ixfRYGk+zRyr+Ew9F2E20BfXxT5/euLdA/Nm7fO7OeTGuAmTs30cpgInyJ0cYe708YTZw==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - dependencies: - semver: 7.5.4 - dev: true - /npm-normalize-package-bin@1.0.1: - resolution: {integrity: sha512-EPfafl6JL5/rU+ot6P3gRSCpPDW5VmIzX959Ob1+ySFUuuYHWHekXpwdUZcKP5C+DS4GEtdJluwBjnsNDl+fSA==} - dev: true - - /npm-normalize-package-bin@3.0.0: - resolution: {integrity: sha512-g+DPQSkusnk7HYXr75NtzkIP4+N81i3RPsGFidF3DzHd9MT9wWngmqoeg/fnHFz5MNdtG4w03s+QnhewSLTT2Q==} + npm-normalize-package-bin@3.0.1: + resolution: {integrity: sha512-dMxCf+zZ+3zeQZXKxmyuCKlIDPGuv8EF940xbkC4kQVDTtqoh6rJFO+JTKSA6/Rwi0getWmtuy4Itup0AMcaDQ==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - dev: true - /npm-package-arg@10.1.0: - resolution: {integrity: sha512-uFyyCEmgBfZTtrKk/5xDfHp6+MdrqGotX/VoOyEEl3mBwiEE5FlBaePanazJSVMPT7vKepcjYBY2ztg9A3yPIA==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - dependencies: - hosted-git-info: 6.1.1 - proc-log: 3.0.0 - semver: 7.5.4 - validate-npm-package-name: 5.0.0 - dev: true - - /npm-package-arg@11.0.1: - resolution: {integrity: sha512-M7s1BD4NxdAvBKUPqqRW957Xwcl/4Zvo8Aj+ANrzvIPzGJZElrH7Z//rSaec2ORcND6FHHLnZeY8qgTpXDMFQQ==} + npm-package-arg@11.0.2: + resolution: {integrity: sha512-IGN0IAwmhDJwy13Wc8k+4PEbTPhpJnMtfR53ZbOyjkvmEcLS4nCwp6mvMWjS5sUjeiW3mpx6cHmuhKEu9XmcQw==} engines: {node: ^16.14.0 || >=18.0.0} - dependencies: - hosted-git-info: 7.0.1 - proc-log: 3.0.0 - semver: 7.5.4 - validate-npm-package-name: 5.0.0 - dev: true - /npm-package-arg@8.1.1: - resolution: {integrity: sha512-CsP95FhWQDwNqiYS+Q0mZ7FAEDytDZAkNxQqea6IaAFJTAY9Lhhqyl0irU/6PMc7BGfUmnsbHcqxJD7XuVM/rg==} - engines: {node: '>=10'} - dependencies: - hosted-git-info: 3.0.8 - semver: 7.5.4 - validate-npm-package-name: 3.0.0 - dev: true - - /npm-packlist@5.1.1: - resolution: {integrity: sha512-UfpSvQ5YKwctmodvPPkK6Fwk603aoVsf8AEbmVKAEECrfvL8SSe1A2YIwrJ6xmTHAITKPwwZsWo7WwEbNk0kxw==} - engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} - hasBin: true - dependencies: - glob: 8.1.0 - ignore-walk: 5.0.1 - npm-bundled: 1.1.2 - npm-normalize-package-bin: 1.0.1 - dev: true - - /npm-packlist@8.0.1: - resolution: {integrity: sha512-MQpL27ZrsJQ2kiAuQPpZb5LtJwydNRnI15QWXsf3WHERu4rzjRj6Zju/My2fov7tLuu3Gle/uoIX/DDZ3u4O4Q==} + npm-packlist@8.0.2: + resolution: {integrity: sha512-shYrPFIS/JLP4oQmAwDyk5HcyysKW8/JLTEA32S0Z5TzvpaeeX2yMFfoK1fjEBnCBvVyIB/Jj/GBFdm0wsgzbA==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - dependencies: - ignore-walk: 6.0.4 - dev: true - /npm-pick-manifest@9.0.0: - resolution: {integrity: sha512-VfvRSs/b6n9ol4Qb+bDwNGUXutpy76x6MARw/XssevE0TnctIKcmklJZM5Z7nqs5z5aW+0S63pgCNbpkUNNXBg==} + npm-pick-manifest@9.1.0: + resolution: {integrity: sha512-nkc+3pIIhqHVQr085X9d2JzPzLyjzQS96zbruppqC9aZRm/x8xx6xhI98gHtsfELP2bE+loHq8ZaHFHhe+NauA==} engines: {node: ^16.14.0 || >=18.0.0} - dependencies: - npm-install-checks: 6.1.1 - npm-normalize-package-bin: 3.0.0 - npm-package-arg: 11.0.1 - semver: 7.5.4 - dev: true - /npm-registry-fetch@14.0.5: - resolution: {integrity: sha512-kIDMIo4aBm6xg7jOttupWZamsZRkAqMqwqqbVXnUqstY5+tapvv6bkH/qMR76jdgV+YljEUCyWx3hRYMrJiAgA==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - dependencies: - make-fetch-happen: 11.1.1 - minipass: 5.0.0 - minipass-fetch: 3.0.3 - minipass-json-stream: 1.0.1 - minizlib: 2.1.2 - npm-package-arg: 10.1.0 - proc-log: 3.0.0 - transitivePeerDependencies: - - bluebird - - supports-color - dev: true - - /npm-registry-fetch@16.1.0: - resolution: {integrity: sha512-PQCELXKt8Azvxnt5Y85GseQDJJlglTFM9L9U9gkv2y4e9s0k3GVDdOx3YoB6gm2Do0hlkzC39iCGXby+Wve1Bw==} + npm-registry-fetch@17.1.0: + resolution: {integrity: sha512-5+bKQRH0J1xG1uZ1zMNvxW0VEyoNWgJpY9UDuluPFLKDfJ9u2JmmjmTJV1srBGQOROfdBMiVvnH2Zvpbm+xkVA==} engines: {node: ^16.14.0 || >=18.0.0} - dependencies: - make-fetch-happen: 13.0.0 - minipass: 7.0.4 - minipass-fetch: 3.0.3 - minipass-json-stream: 1.0.1 - minizlib: 2.1.2 - npm-package-arg: 11.0.1 - proc-log: 3.0.0 - transitivePeerDependencies: - - supports-color - dev: true - /npm-run-path@4.0.1: + npm-run-path@4.0.1: resolution: {integrity: sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==} engines: {node: '>=8'} - dependencies: - path-key: 3.1.1 - dev: true - /npm-run-path@5.1.0: - resolution: {integrity: sha512-sJOdmRGrY2sjNTRMbSvluQqg+8X7ZK61yvzBEIDhz4f8z1TZFYABsqjjCBd/0PUNE9M6QDgHJXQkGUEm7Q+l9Q==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - dependencies: - path-key: 4.0.0 - - /npmlog@6.0.2: - resolution: {integrity: sha512-/vBvz5Jfr9dT/aFWd0FIRf+T/Q2WBsLENygUaFUqstqsycmZAP/t5BvFJTK0viFmSUxiUKTUplWy5vt+rvKIxg==} - engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} - dependencies: - are-we-there-yet: 3.0.1 - console-control-strings: 1.1.0 - gauge: 4.0.4 - set-blocking: 2.0.0 - dev: true - - /nx@17.2.8: - resolution: {integrity: sha512-rM5zXbuXLEuqQqcjVjClyvHwRJwt+NVImR2A6KFNG40Z60HP6X12wAxxeLHF5kXXTDRU0PFhf/yACibrpbPrAw==} + nx@20.3.3: + resolution: {integrity: sha512-IUu2D8/bVa7aSr3ViRcrmpTGO2FKqzJoio6gjeq/YbyUHyjrrq5HUmHFx30Wm2vmC1BGm0MeyakTNUJzQvfAog==} hasBin: true - requiresBuild: true peerDependencies: - '@swc-node/register': ^1.6.7 + '@swc-node/register': ^1.8.0 '@swc/core': ^1.3.85 peerDependenciesMeta: '@swc-node/register': optional: true '@swc/core': optional: true - dependencies: - '@nrwl/tao': 17.2.8 - '@yarnpkg/lockfile': 1.1.0 - '@yarnpkg/parsers': 3.0.0-rc.46 - '@zkochan/js-yaml': 0.0.6 - axios: 1.6.3 - chalk: 4.1.2 - cli-cursor: 3.1.0 - cli-spinners: 2.6.1 - cliui: 8.0.1 - dotenv: 16.3.1 - dotenv-expand: 10.0.0 - enquirer: 2.3.6 - figures: 3.2.0 - flat: 5.0.2 - fs-extra: 11.1.1 - glob: 7.1.4 - ignore: 5.2.4 - jest-diff: 29.7.0 - js-yaml: 4.1.0 - jsonc-parser: 3.2.0 - lines-and-columns: 2.0.3 - minimatch: 3.0.5 - node-machine-id: 1.1.12 - npm-run-path: 4.0.1 - open: 8.4.0 - semver: 7.5.3 - string-width: 4.2.3 - strong-log-transformer: 2.1.0 - tar-stream: 2.2.0 - tmp: 0.2.1 - tsconfig-paths: 4.2.0 - tslib: 2.5.0 - yargs: 17.7.2 - yargs-parser: 21.1.1 - optionalDependencies: - '@nx/nx-darwin-arm64': 17.2.8 - '@nx/nx-darwin-x64': 17.2.8 - '@nx/nx-freebsd-x64': 17.2.8 - '@nx/nx-linux-arm-gnueabihf': 17.2.8 - '@nx/nx-linux-arm64-gnu': 17.2.8 - '@nx/nx-linux-arm64-musl': 17.2.8 - '@nx/nx-linux-x64-gnu': 17.2.8 - '@nx/nx-linux-x64-musl': 17.2.8 - '@nx/nx-win32-arm64-msvc': 17.2.8 - '@nx/nx-win32-x64-msvc': 17.2.8 - transitivePeerDependencies: - - debug - dev: true - /object-assign@4.1.1: + object-assign@4.1.1: resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} engines: {node: '>=0.10.0'} - dev: false - /object-get@2.1.1: - resolution: {integrity: sha512-7n4IpLMzGGcLEMiQKsNR7vCe+N5E9LORFrtNUVy4sO3dj9a3HedZCxEL2T7QuLhcHN1NBuBsMOKaOsAYI9IIvg==} - dev: true - - /object-hash@3.0.0: + object-hash@3.0.0: resolution: {integrity: sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==} engines: {node: '>= 6'} - dev: false - /object-inspect@1.13.1: - resolution: {integrity: sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==} - dev: true + object-inspect@1.13.3: + resolution: {integrity: sha512-kDCGIbxkDSXE3euJZZXzc6to7fCrKHNI/hSRQnRuQ+BWjFNzZwiFF8fj/6o2t2G9/jTj8PSIYTfCLelLZEeRpA==} + engines: {node: '>= 0.4'} - /object-keys@1.1.1: + object-keys@1.1.1: resolution: {integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==} engines: {node: '>= 0.4'} - dev: true - /object-to-spawn-args@2.0.1: - resolution: {integrity: sha512-6FuKFQ39cOID+BMZ3QaphcC8Y4cw6LXBLyIgPU+OhIYwviJamPAn+4mITapnSBQrejB+NNp+FMskhD8Cq+Ys3w==} - engines: {node: '>=8.0.0'} - dev: true - - /object.assign@4.1.4: - resolution: {integrity: sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==} + object.assign@4.1.7: + resolution: {integrity: sha512-nK28WOo+QIjBkDduTINE4JkF/UJJKyf2EJxvJKfblDpyg0Q+pkOHNTL0Qwy6NP6FhE/EnzV73BxxqcJaXY9anw==} engines: {node: '>= 0.4'} - dependencies: - call-bind: 1.0.5 - define-properties: 1.2.1 - has-symbols: 1.0.3 - object-keys: 1.1.1 - dev: true - /object.fromentries@2.0.7: - resolution: {integrity: sha512-UPbPHML6sL8PI/mOqPwsH4G6iyXcCGzLin8KvEPenOZN5lpCNBZZQ+V62vdjB1mQHrmqGQt5/OJzemUA+KJmEA==} + object.fromentries@2.0.8: + resolution: {integrity: sha512-k6E21FzySsSK5a21KRADBd/NGneRegFO5pLHfdQLpRDETUNJueLXs3WCzyQ3tFRDYgbq3KHGXfTbi2bs8WQ6rQ==} engines: {node: '>= 0.4'} - dependencies: - call-bind: 1.0.2 - define-properties: 1.2.1 - es-abstract: 1.22.3 - dev: true - /object.groupby@1.0.1: - resolution: {integrity: sha512-HqaQtqLnp/8Bn4GL16cj+CUYbnpe1bh0TtEaWvybszDG4tgxCJuRpV8VGuvNaI1fAnI4lUJzDG55MXcOH4JZcQ==} - dependencies: - call-bind: 1.0.2 - define-properties: 1.2.1 - es-abstract: 1.22.3 - get-intrinsic: 1.2.2 - dev: true - - /object.values@1.1.7: - resolution: {integrity: sha512-aU6xnDFYT3x17e/f0IiiwlGPTy2jzMySGfUB4fq6z7CV8l85CWHDk5ErhyhpfDHhrOMwGFhSQkhMGHaIotA6Ng==} + object.groupby@1.0.3: + resolution: {integrity: sha512-+Lhy3TQTuzXI5hevh8sBGqbmurHbbIjAi0Z4S63nthVLmLxfbj4T54a4CfZrXIrt9iP4mVAPYMo/v99taj3wjQ==} engines: {node: '>= 0.4'} - dependencies: - call-bind: 1.0.2 - define-properties: 1.2.1 - es-abstract: 1.22.3 - dev: true - /once@1.4.0: + object.values@1.2.1: + resolution: {integrity: sha512-gXah6aZrcUxjWg2zR2MwouP2eHlCBzdV4pygudehaKXSGW4v2AsRQUK+lwwXhii6KFZcunEnmSUoYp5CXibxtA==} + engines: {node: '>= 0.4'} + + ofetch@1.4.1: + resolution: {integrity: sha512-QZj2DfGplQAr2oj9KzceK9Hwz6Whxazmn85yYeVuS3u9XTMOGMRx0kO95MQ+vLsj/S/NwBDMMLU5hpxvI6Tklw==} + + ohash@1.1.4: + resolution: {integrity: sha512-FlDryZAahJmEF3VR3w1KogSEdWX3WhA5GPakFx4J81kEAiHyLMpdLLElS8n8dfNadMgAne/MywcvmogzscVt4g==} + + once@1.4.0: resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} - dependencies: - wrappy: 1.0.2 - /onetime@5.1.2: + onetime@5.1.2: resolution: {integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==} engines: {node: '>=6'} - dependencies: - mimic-fn: 2.1.0 - /onetime@6.0.0: - resolution: {integrity: sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==} + oniguruma-to-es@2.3.0: + resolution: {integrity: sha512-bwALDxriqfKGfUufKGGepCzu9x7nJQuoRoAFp4AnwehhC2crqrDIAP/uN2qdlsAvSMpeRC3+Yzhqc7hLmle5+g==} + + open@8.4.2: + resolution: {integrity: sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==} engines: {node: '>=12'} - dependencies: - mimic-fn: 4.0.0 - /open@8.4.0: - resolution: {integrity: sha512-XgFPPM+B28FtCCgSb9I+s9szOC1vZRSwgWsRUA5ylIxRTgKozqjOCrVOqGsYABPYK5qnfqClxZTFBa8PKt2v6Q==} - engines: {node: '>=12'} - dependencies: - define-lazy-prop: 2.0.0 - is-docker: 2.2.1 - is-wsl: 2.2.0 - dev: true + optimist@0.3.7: + resolution: {integrity: sha512-TCx0dXQzVtSCg2OgY/bO9hjM9cV4XYx09TVK+s3+FhkjT6LovsLe+pPMzpWf+6yXK/hUizs2gUoTw3jHM0VaTQ==} - /optionator@0.9.3: - resolution: {integrity: sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==} + optionator@0.9.4: + resolution: {integrity: sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==} engines: {node: '>= 0.8.0'} - dependencies: - '@aashutoshrathi/word-wrap': 1.2.6 - deep-is: 0.1.4 - fast-levenshtein: 2.0.6 - levn: 0.4.1 - prelude-ls: 1.2.1 - type-check: 0.4.0 - /ora@5.4.1: + ora@5.3.0: + resolution: {integrity: sha512-zAKMgGXUim0Jyd6CXK9lraBnD3H5yPGBPPOkC23a2BG6hsm4Zu6OQSjQuEtV0BHDf4aKHcUFvJiGRrFuW3MG8g==} + engines: {node: '>=10'} + + ora@5.4.1: resolution: {integrity: sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==} engines: {node: '>=10'} - dependencies: - bl: 4.1.0 - chalk: 4.1.2 - cli-cursor: 3.1.0 - cli-spinners: 2.9.1 - is-interactive: 1.0.0 - is-unicode-supported: 0.1.0 - log-symbols: 4.1.0 - strip-ansi: 6.0.1 - wcwidth: 1.0.1 - dev: true - /ora@7.0.1: - resolution: {integrity: sha512-0TUxTiFJWv+JnjWm4o9yvuskpEJLXTcng8MJuKd+SzAzp2o+OP3HWqNhB4OdJRt1Vsd9/mR0oyaEYlOnL7XIRw==} - engines: {node: '>=16'} - dependencies: - chalk: 5.3.0 - cli-cursor: 4.0.0 - cli-spinners: 2.9.1 - is-interactive: 2.0.0 - is-unicode-supported: 1.3.0 - log-symbols: 5.1.0 - stdin-discarder: 0.1.0 - string-width: 6.1.0 - strip-ansi: 7.1.0 - - /os-tmpdir@1.0.2: + os-tmpdir@1.0.2: resolution: {integrity: sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==} engines: {node: '>=0.10.0'} - dev: true - /osc-js@2.4.0: - resolution: {integrity: sha512-9cvB8m6zt/iCsmeDdFJaD4mjC8preB1Gio+NVmjT0S3qxiejTfJ8vGudyTQciL9yqQHEuINNYS5Kb94+Ceqekg==} - dependencies: - ws: 8.12.0 - transitivePeerDependencies: - - bufferutil - - utf-8-validate - dev: false + osc-js@2.4.1: + resolution: {integrity: sha512-QlSeRKJclL47FNvO1MUCAAp9frmCF9zcYbnf6R9HpcklAst8ZyX3ISsk1v/Vghr/5GmXn0bhVjFXF9h+hfnl4Q==} - /p-finally@1.0.0: + own-keys@1.0.1: + resolution: {integrity: sha512-qFOyK5PjiWZd+QQIh+1jhdb9LpxTF0qs7Pm8o5QHYZ0M3vKqSqzsZaEB6oWlxZ+q2sJBMI/Ktgd2N5ZwQoRHfg==} + engines: {node: '>= 0.4'} + + p-finally@1.0.0: resolution: {integrity: sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow==} engines: {node: '>=4'} - dev: true - /p-is-promise@3.0.0: + p-is-promise@3.0.0: resolution: {integrity: sha512-Wo8VsW4IRQSKVXsJCn7TomUaVtyfjVDn3nUP7kE967BQk0CwFpdbZs0X0uk5sW9mkBa9eNM7hCMaG93WUAwxYQ==} engines: {node: '>=8'} - dev: true - /p-limit@1.3.0: + p-limit@1.3.0: resolution: {integrity: sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==} engines: {node: '>=4'} - dependencies: - p-try: 1.0.0 - dev: true - /p-limit@2.3.0: + p-limit@2.3.0: resolution: {integrity: sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==} engines: {node: '>=6'} - dependencies: - p-try: 2.2.0 - /p-limit@3.1.0: + p-limit@3.1.0: resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==} engines: {node: '>=10'} - dependencies: - yocto-queue: 0.1.0 - /p-limit@5.0.0: - resolution: {integrity: sha512-/Eaoq+QyLSiXQ4lyYV23f14mZRQcXnxfHrN0vCai+ak9G0pp9iEQukIIZq5NccEvwRB8PUnZT0KsOoDCINS1qQ==} + p-limit@6.2.0: + resolution: {integrity: sha512-kuUqqHNUqoIWp/c467RI4X6mmyuojY5jGutNU0wVTmEOOfcuwLqyMVoAi9MKi2Ak+5i9+nhmrK4ufZE8069kHA==} engines: {node: '>=18'} - dependencies: - yocto-queue: 1.0.0 - /p-locate@2.0.0: + p-locate@2.0.0: resolution: {integrity: sha512-nQja7m7gSKuewoVRen45CtVfODR3crN3goVQ0DDZ9N3yHxgpkuBhZqsaiotSQRrADUrne346peY7kT3TSACykg==} engines: {node: '>=4'} - dependencies: - p-limit: 1.3.0 - dev: true - /p-locate@4.1.0: + p-locate@4.1.0: resolution: {integrity: sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==} engines: {node: '>=8'} - dependencies: - p-limit: 2.3.0 - /p-locate@5.0.0: + p-locate@5.0.0: resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==} engines: {node: '>=10'} - dependencies: - p-limit: 3.1.0 - /p-map-series@2.1.0: + p-map-series@2.1.0: resolution: {integrity: sha512-RpYIIK1zXSNEOdwxcfe7FdvGcs7+y5n8rifMhMNWvaxRNMPINJHF5GDeuVxWqnfrcHPSCnp7Oo5yNXHId9Av2Q==} engines: {node: '>=8'} - dev: true - /p-map@4.0.0: + p-map@4.0.0: resolution: {integrity: sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==} engines: {node: '>=10'} - dependencies: - aggregate-error: 3.1.0 - dev: true - /p-pipe@3.1.0: + p-pipe@3.1.0: resolution: {integrity: sha512-08pj8ATpzMR0Y80x50yJHn37NF6vjrqHutASaX5LiH5npS9XPvrUmscd9MF5R4fuYRHOxQR1FfMIlF7AzwoPqw==} engines: {node: '>=8'} - dev: true - /p-queue@6.6.2: + p-queue@6.6.2: resolution: {integrity: sha512-RwFpb72c/BhQLEXIZ5K2e+AhgNVmIejGlTgiB9MzZ0e93GRvqZ7uSi0dvRF7/XIXDeNkra2fNHBxTyPDGySpjQ==} engines: {node: '>=8'} - dependencies: - eventemitter3: 4.0.7 - p-timeout: 3.2.0 - dev: true - /p-queue@8.0.1: - resolution: {integrity: sha512-NXzu9aQJTAzbBqOt2hwsR63ea7yvxJc0PwN/zobNAudYfb1B7R08SzB4TsLeSbUCuG467NhnoT0oO6w1qRO+BA==} + p-queue@8.1.0: + resolution: {integrity: sha512-mxLDbbGIBEXTJL0zEx8JIylaj3xQ7Z/7eEVjcF9fJX4DBiH9oqe+oahYnlKKxm0Ci9TlWTyhSHgygxMxjIB2jw==} engines: {node: '>=18'} - dependencies: - eventemitter3: 5.0.1 - p-timeout: 6.1.2 - /p-reduce@2.1.0: + p-reduce@2.1.0: resolution: {integrity: sha512-2USApvnsutq8uoxZBGbbWM0JIYLiEMJ9RlaN7fAzVNb9OZN0SHjjTTfIcb667XynS5Y1VhwDJVDa72TnPzAYWw==} engines: {node: '>=8'} - dev: true - /p-timeout@3.2.0: + p-timeout@3.2.0: resolution: {integrity: sha512-rhIwUycgwwKcP9yTOOFK/AKsAopjjCakVqLHePO3CC6Mir1Z99xT+R63jZxAT5lFZLa2inS5h+ZS2GvR99/FBg==} engines: {node: '>=8'} - dependencies: - p-finally: 1.0.0 - dev: true - /p-timeout@6.1.2: - resolution: {integrity: sha512-UbD77BuZ9Bc9aABo74gfXhNvzC9Tx7SxtHSh1fxvx3jTLLYvmVhiQZZrJzqqU0jKbN32kb5VOKiLEQI/3bIjgQ==} + p-timeout@6.1.4: + resolution: {integrity: sha512-MyIV3ZA/PmyBN/ud8vV9XzwTrNtR4jFrObymZYnZqMmW0zA8Z17vnT0rBgFE/TlohB+YCHqXMgZzb3Csp49vqg==} engines: {node: '>=14.16'} - /p-try@1.0.0: + p-try@1.0.0: resolution: {integrity: sha512-U1etNYuMJoIz3ZXSrrySFjsXQTWOx2/jdi86L+2pRvph/qMKL6sbcCYdH23fqsbm8TH2Gn0OybpT4eSFlCVHww==} engines: {node: '>=4'} - dev: true - /p-try@2.2.0: + p-try@2.2.0: resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==} engines: {node: '>=6'} - /p-waterfall@2.1.1: + p-waterfall@2.1.1: resolution: {integrity: sha512-RRTnDb2TBG/epPRI2yYXsimO0v3BXC8Yd3ogr1545IaqKK17VGhbWVeGGN+XfCm/08OK8635nH31c8bATkHuSw==} engines: {node: '>=8'} - dependencies: - p-reduce: 2.1.0 - dev: true - /pacote@17.0.5: - resolution: {integrity: sha512-TAE0m20zSDMnchPja9vtQjri19X3pZIyRpm2TJVeI+yU42leJBBDTRYhOcWFsPhaMxf+3iwQkFiKz16G9AEeeA==} + package-json-from-dist@1.0.1: + resolution: {integrity: sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==} + + pacote@18.0.6: + resolution: {integrity: sha512-+eK3G27SMwsB8kLIuj4h1FUhHtwiEUo21Tw8wNjmvdlpOEr613edv+8FUsTj/4F/VN5ywGE19X18N7CC2EJk6A==} engines: {node: ^16.14.0 || >=18.0.0} hasBin: true - dependencies: - '@npmcli/git': 5.0.3 - '@npmcli/installed-package-contents': 2.0.2 - '@npmcli/promise-spawn': 7.0.0 - '@npmcli/run-script': 7.0.2 - cacache: 18.0.1 - fs-minipass: 3.0.2 - minipass: 7.0.4 - npm-package-arg: 11.0.1 - npm-packlist: 8.0.1 - npm-pick-manifest: 9.0.0 - npm-registry-fetch: 16.1.0 - proc-log: 3.0.0 - promise-retry: 2.0.1 - read-package-json: 7.0.0 - read-package-json-fast: 3.0.2 - sigstore: 2.1.0 - ssri: 10.0.4 - tar: 6.1.13 - transitivePeerDependencies: - - bluebird - - supports-color - dev: true - /parent-module@1.0.1: + paho-mqtt@1.1.0: + resolution: {integrity: sha512-KPbL9KAB0ASvhSDbOrZBaccXS+/s7/LIofbPyERww8hM5Ko71GUJQ6Nmg0BWqj8phAIT8zdf/Sd/RftHU9i2HA==} + + parent-module@1.0.1: resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} engines: {node: '>=6'} - dependencies: - callsites: 3.1.0 - /parse-entities@4.0.0: - resolution: {integrity: sha512-5nk9Fn03x3rEhGaX1FU6IDwG/k+GxLXlFAkgrbM1asuAFl3BhdQWvASaIsmwWypRNcZKHPYnIuOSfIWEyEQnPQ==} - dependencies: - '@types/unist': 2.0.6 - character-entities: 2.0.2 - character-entities-legacy: 3.0.0 - character-reference-invalid: 2.0.1 - decode-named-character-reference: 1.0.2 - is-alphanumerical: 2.0.1 - is-decimal: 2.0.1 - is-hexadecimal: 2.0.1 - dev: false + parse-conflict-json@3.0.1: + resolution: {integrity: sha512-01TvEktc68vwbJOtWZluyWeVGWjP+bZwXtPDMQVbBKzbJ/vZBif0L69KH1+cHv1SZ6e0FKLvjyHe8mqsIqYOmw==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - /parse-json@4.0.0: + parse-entities@4.0.2: + resolution: {integrity: sha512-GG2AQYWoLgL877gQIKeRPGO1xF9+eG1ujIb5soS5gPvLQ1y2o8FL90w2QWNdf9I361Mpp7726c+lj3U0qK1uGw==} + + parse-json@4.0.0: resolution: {integrity: sha512-aOIos8bujGN93/8Ox/jPLh7RwVnPEysynVFE+fQZyg6jKELEHwzgKdLRFHUgXJL6kylijVSBC4BvN9OmsB48Rw==} engines: {node: '>=4'} - dependencies: - error-ex: 1.3.2 - json-parse-better-errors: 1.0.2 - dev: true - /parse-json@5.2.0: + parse-json@5.2.0: resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==} engines: {node: '>=8'} - dependencies: - '@babel/code-frame': 7.23.5 - error-ex: 1.3.2 - json-parse-even-better-errors: 2.3.1 - lines-and-columns: 1.2.4 - dev: true - /parse-latin@5.0.1: - resolution: {integrity: sha512-b/K8ExXaWC9t34kKeDV8kGXBkXZ1HCSAZRYE7HR14eA1GlXX5L8iWhs8USJNhQU9q5ci413jCKF0gOyovvyRBg==} - dependencies: - nlcst-to-string: 3.1.1 - unist-util-modify-children: 3.1.1 - unist-util-visit-children: 2.0.2 + parse-latin@7.0.0: + resolution: {integrity: sha512-mhHgobPPua5kZ98EF4HWiH167JWBfl4pvAIXXdbaVohtK7a6YBOy56kvhCqduqyo/f3yrHFWmqmiMg/BkBkYYQ==} - /parse-path@7.0.0: + parse-path@7.0.0: resolution: {integrity: sha512-Euf9GG8WT9CdqwuWJGdf3RkUcTBArppHABkO7Lm8IzRQp0e2r/kkFnmhu4TSK30Wcu5rVAZLmfPKSBBi9tWFog==} - dependencies: - protocols: 2.0.1 - dev: true - /parse-url@8.1.0: + parse-url@8.1.0: resolution: {integrity: sha512-xDvOoLU5XRrcOZvnI6b8zA6n9O9ejNk/GExuz1yBuWUGn9KA97GI6HTs6u02wKara1CeVmZhH+0TZFdWScR89w==} - dependencies: - parse-path: 7.0.0 - dev: true - /parse5@7.1.2: - resolution: {integrity: sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw==} - dependencies: - entities: 4.5.0 + parse5@7.2.1: + resolution: {integrity: sha512-BuBYQYlv1ckiPdQi/ohiivi9Sagc9JG+Ozs0r7b/0iK3sKmrb0b9FdWdBbOdx6hBCM/F9Ir82ofnBhtZOjCRPQ==} - /path-browserify@1.0.1: + path-browserify@1.0.1: resolution: {integrity: sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==} - dev: false - /path-exists@3.0.0: + path-exists@3.0.0: resolution: {integrity: sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==} engines: {node: '>=4'} - dev: true - /path-exists@4.0.0: + path-exists@4.0.0: resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} engines: {node: '>=8'} - /path-is-absolute@1.0.1: + path-is-absolute@1.0.1: resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==} engines: {node: '>=0.10.0'} - /path-key@3.1.1: + path-key@3.1.1: resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} engines: {node: '>=8'} - /path-key@4.0.0: - resolution: {integrity: sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==} - engines: {node: '>=12'} - - /path-parse@1.0.7: + path-parse@1.0.7: resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} - /path-scurry@1.10.1: - resolution: {integrity: sha512-MkhCqzzBEpPvxxQ71Md0b1Kk51W01lrYvlMzSUaIzNsODdd7mqhiimSZlr+VegAz5Z6Vzt9Xg2ttE//XBhH3EQ==} - engines: {node: '>=16 || 14 >=14.17'} - dependencies: - lru-cache: 9.1.1 - minipass: 5.0.0 - dev: true + path-scurry@1.11.1: + resolution: {integrity: sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==} + engines: {node: '>=16 || 14 >=14.18'} - /path-scurry@1.7.0: - resolution: {integrity: sha512-UkZUeDjczjYRE495+9thsgcVgsaCPkaw80slmfVFgllxY+IO8ubTsOpFVjDPROBqJdHfVPUFRHPBV/WciOVfWg==} - engines: {node: '>=16 || 14 >=14.17'} - dependencies: - lru-cache: 9.1.1 - minipass: 5.0.0 - dev: true - - /path-to-regexp@6.2.1: - resolution: {integrity: sha512-JLyh7xT1kizaEvcaXOQwOc2/Yhw6KZOvPf1S8401UyLk86CU79LN3vl7ztXGm/pZ+YjoyAJ4rxmHwbkBXJX+yw==} - - /path-type@3.0.0: + path-type@3.0.0: resolution: {integrity: sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==} engines: {node: '>=4'} - dependencies: - pify: 3.0.0 - dev: true - /path-type@4.0.0: + path-type@4.0.0: resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} engines: {node: '>=8'} - dev: true - /pathe@1.1.1: - resolution: {integrity: sha512-d+RQGp0MAYTIaDBIMmOfMwz3E+LOZnxx1HZd5R18mmCZY0QBlK0LDZfPc8FW8Ed2DlvsuE6PRjroDY+wg4+j/Q==} - dev: true + pathe@1.1.2: + resolution: {integrity: sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ==} - /pathval@1.1.1: - resolution: {integrity: sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==} - dev: true + pathe@2.0.2: + resolution: {integrity: sha512-15Ztpk+nov8DR524R4BF7uEuzESgzUEAV4Ah7CUMNGXdE5ELuvxElxGXndBl32vMSsWa1jpNf22Z+Er3sKwq+w==} - /peggy@3.0.2: - resolution: {integrity: sha512-n7chtCbEoGYRwZZ0i/O3t1cPr6o+d9Xx4Zwy2LYfzv0vjchMBU0tO+qYYyvZloBPcgRgzYvALzGWHe609JjEpg==} - engines: {node: '>=14'} + pathval@2.0.0: + resolution: {integrity: sha512-vE7JKRyES09KiunauX7nd2Q9/L7lhok4smP9RZTDeD4MVs72Dp2qNFVz39Nz5a0FVEW0BJR6C0DYrq6unoziZA==} + engines: {node: '>= 14.16'} + + peggy@4.2.0: + resolution: {integrity: sha512-ZjzyJYY8NqW8JOZr2PbS/J0UH/hnfGALxSDsBUVQg5Y/I+ZaPuGeBJ7EclUX2RvWjhlsi4pnuL1C/K/3u+cDeg==} + engines: {node: '>=18'} hasBin: true - dependencies: - commander: 10.0.1 - source-map-generator: 0.8.0 - dev: true - /performance-now@2.1.0: + performance-now@2.1.0: resolution: {integrity: sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow==} - dev: false - /periscopic@3.1.0: - resolution: {integrity: sha512-vKiQ8RRtkl9P+r/+oefh25C3fhybptkHKCZSPlcXiJux2tJF55GnEj3BVn4A5gKfq9NWWXXrxkHBwVPUfH0opw==} - dependencies: - '@types/estree': 1.0.0 - estree-walker: 3.0.3 - is-reference: 3.0.1 - dev: false + picocolors@1.1.1: + resolution: {integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==} - /picocolors@1.0.0: - resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==} - - /picomatch@2.3.1: + picomatch@2.3.1: resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} engines: {node: '>=8.6'} - /pify@2.3.0: + picomatch@4.0.2: + resolution: {integrity: sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==} + engines: {node: '>=12'} + + pify@2.3.0: resolution: {integrity: sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==} engines: {node: '>=0.10.0'} - /pify@3.0.0: + pify@3.0.0: resolution: {integrity: sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==} engines: {node: '>=4'} - dev: true - /pify@4.0.1: + pify@4.0.1: resolution: {integrity: sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==} engines: {node: '>=6'} - /pify@5.0.0: + pify@5.0.0: resolution: {integrity: sha512-eW/gHNMlxdSP6dmG6uJip6FXN0EQBwm2clYYd8Wul42Cwu/DK8HEftzsapcNdYe2MfLiIwZqsDk2RDEsTE79hA==} engines: {node: '>=10'} - dev: true - /pirates@4.0.5: - resolution: {integrity: sha512-8V9+HQPupnaXMA23c5hvl69zXvTwTzyAYasnkb0Tts4XvO4CliqONMOnvlq26rkhLC3nWDFBJf73LU1e1VZLaQ==} + pirates@4.0.6: + resolution: {integrity: sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==} engines: {node: '>= 6'} - dev: false - /pkg-dir@4.2.0: + pkg-dir@4.2.0: resolution: {integrity: sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==} engines: {node: '>=8'} - dependencies: - find-up: 4.1.0 - /pkg-fetch@3.4.2: + pkg-fetch@3.4.2: resolution: {integrity: sha512-0+uijmzYcnhC0hStDjm/cl2VYdrmVVBpe7Q8k9YBojxmR5tG8mvR9/nooQq3QSXiQqORDVOTY3XqMEqJVIzkHA==} hasBin: true - dependencies: - chalk: 4.1.2 - fs-extra: 9.1.0 - https-proxy-agent: 5.0.1 - node-fetch: 2.6.8 - progress: 2.0.3 - semver: 7.3.8 - tar-fs: 2.1.1 - yargs: 16.2.0 - transitivePeerDependencies: - - encoding - - supports-color - dev: true - /pkg-types@1.0.3: - resolution: {integrity: sha512-nN7pYi0AQqJnoLPC9eHFQ8AcyaixBUOwvqc5TDnIKCMEE6I0y8P7OKA7fPexsXGCGxQDl/cmrLAp26LhcwxZ4A==} - dependencies: - jsonc-parser: 3.2.0 - mlly: 1.4.0 - pathe: 1.1.1 - dev: true - - /pkg@5.8.1: + pkg@5.8.1: resolution: {integrity: sha512-CjBWtFStCfIiT4Bde9QpJy0KeH19jCfwZRJqHFDFXfhUklCx8JoFmMj3wgnEYIwGmZVNkhsStPHEOnrtrQhEXA==} hasBin: true peerDependencies: @@ -11484,49 +6130,24 @@ packages: peerDependenciesMeta: node-notifier: optional: true - dependencies: - '@babel/generator': 7.18.2 - '@babel/parser': 7.18.4 - '@babel/types': 7.19.0 - chalk: 4.1.2 - fs-extra: 9.1.0 - globby: 11.1.0 - into-stream: 6.0.0 - is-core-module: 2.9.0 - minimist: 1.2.7 - multistream: 4.1.0 - pkg-fetch: 3.4.2 - prebuild-install: 7.1.1 - resolve: 1.22.2 - stream-meter: 1.0.4 - transitivePeerDependencies: - - encoding - - supports-color - dev: true - /postcss-import@15.1.0(postcss@8.4.32): + possible-typed-array-names@1.0.0: + resolution: {integrity: sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q==} + engines: {node: '>= 0.4'} + + postcss-import@15.1.0: resolution: {integrity: sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==} engines: {node: '>=14.0.0'} peerDependencies: postcss: ^8.0.0 - dependencies: - postcss: 8.4.32 - postcss-value-parser: 4.2.0 - read-cache: 1.0.0 - resolve: 1.22.8 - dev: false - /postcss-js@4.0.1(postcss@8.4.32): + postcss-js@4.0.1: resolution: {integrity: sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw==} engines: {node: ^12 || ^14 || >= 16} peerDependencies: postcss: ^8.4.21 - dependencies: - camelcase-css: 2.0.1 - postcss: 8.4.32 - dev: false - /postcss-load-config@4.0.2(postcss@8.4.32): + postcss-load-config@4.0.2: resolution: {integrity: sha512-bSVhyJGL00wMVoPUzAVAnbEoWyqRxkjv64tUl427SKnPrENtq6hJwUojroMz2VB+Q1edmi4IfrAPpami5VVgMQ==} engines: {node: '>= 14'} peerDependencies: @@ -11537,1878 +6158,979 @@ packages: optional: true ts-node: optional: true - dependencies: - lilconfig: 3.0.0 - postcss: 8.4.32 - yaml: 2.3.4 - dev: false - /postcss-nested@6.0.1(postcss@8.4.32): - resolution: {integrity: sha512-mEp4xPMi5bSWiMbsgoPfcP74lsWLHkQbZc3sY+jWYd65CUwXrUaTp0fmNpa01ZcETKlIgUdFN/MpS2xZtqL9dQ==} + postcss-nested@6.2.0: + resolution: {integrity: sha512-HQbt28KulC5AJzG+cZtj9kvKB93CFCdLvog1WFLf1D+xmMvPGlBstkpTEZfK5+AN9hfJocyBFCNiqyS48bpgzQ==} engines: {node: '>=12.0'} peerDependencies: postcss: ^8.2.14 - dependencies: - postcss: 8.4.32 - postcss-selector-parser: 6.0.11 - dev: false - /postcss-selector-parser@6.0.10: + postcss-selector-parser@6.0.10: resolution: {integrity: sha512-IQ7TZdoaqbT+LCpShg46jnZVlhWD2w6iQYAcYXfHARZ7X1t/UGhhceQDs5X0cGqKvYlHNOuv7Oa1xmb0oQuA3w==} engines: {node: '>=4'} - dependencies: - cssesc: 3.0.0 - util-deprecate: 1.0.2 - dev: false - /postcss-selector-parser@6.0.11: - resolution: {integrity: sha512-zbARubNdogI9j7WY4nQJBiNqQf3sLS3wCP4WfOidu+p28LofJqDH1tcXypGrcmMHhDk2t9wGhCsYe/+szLTy1g==} + postcss-selector-parser@6.1.2: + resolution: {integrity: sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg==} engines: {node: '>=4'} - dependencies: - cssesc: 3.0.0 - util-deprecate: 1.0.2 - dev: false - /postcss-value-parser@4.2.0: + postcss-value-parser@4.2.0: resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==} - dev: false - /postcss-values-parser@6.0.2(postcss@8.4.32): + postcss-values-parser@6.0.2: resolution: {integrity: sha512-YLJpK0N1brcNJrs9WatuJFtHaV9q5aAOj+S4DI5S7jgHlRfm0PIbDCAFRYMQD5SHq7Fy6xsDhyutgS0QOAs0qw==} engines: {node: '>=10'} peerDependencies: postcss: ^8.2.9 - dependencies: - color-name: 1.1.4 - is-url-superb: 4.0.0 - postcss: 8.4.32 - quote-unquote: 1.0.0 - dev: true - /postcss@8.4.32: - resolution: {integrity: sha512-D/kj5JNu6oo2EIy+XL/26JEDTlIbB8hw85G8StOE6L74RQAVVP5rej6wxCNqyMbR4RkPfqvezVbPw81Ngd6Kcw==} + postcss@8.5.1: + resolution: {integrity: sha512-6oz2beyjc5VMn/KV1pPw8fliQkhBXrVn1Z3TVyqZxU8kZpzEKhBdmCFqI6ZbmGtamQvQGuU1sgPTk8ZrXDD7jQ==} engines: {node: ^10 || ^12 || >=14} - dependencies: - nanoid: 3.3.7 - picocolors: 1.0.0 - source-map-js: 1.0.2 - /postcss@8.4.38: - resolution: {integrity: sha512-Wglpdk03BSfXkHoQa3b/oulrotAkwrlLDRSOb9D0bN86FdRyE9lppSp33aHNPgBa0JKCoB+drFLZkQoRRYae5A==} - engines: {node: ^10 || ^12 || >=14} - dependencies: - nanoid: 3.3.7 - picocolors: 1.0.0 - source-map-js: 1.2.0 - - /prebuild-install@7.1.1: + prebuild-install@7.1.1: resolution: {integrity: sha512-jAXscXWMcCK8GgCoHOfIr0ODh5ai8mj63L2nWrjuAgXE6tDyYGnx4/8o/rCgU+B4JSyZBKbeZqzhtwtC3ovxjw==} engines: {node: '>=10'} hasBin: true - dependencies: - detect-libc: 2.0.1 - expand-template: 2.0.3 - github-from-package: 0.0.0 - minimist: 1.2.7 - mkdirp-classic: 0.5.3 - napi-build-utils: 1.0.2 - node-abi: 3.40.0 - pump: 3.0.0 - rc: 1.2.8 - simple-get: 4.0.1 - tar-fs: 2.1.1 - tunnel-agent: 0.6.0 - dev: true - /precinct@11.0.5: - resolution: {integrity: sha512-oHSWLC8cL/0znFhvln26D14KfCQFFn4KOLSw6hmLhd+LQ2SKt9Ljm89but76Pc7flM9Ty1TnXyrA2u16MfRV3w==} - engines: {node: ^14.14.0 || >=16.0.0} + precinct@12.1.2: + resolution: {integrity: sha512-x2qVN3oSOp3D05ihCd8XdkIPuEQsyte7PSxzLqiRgktu79S5Dr1I75/S+zAup8/0cwjoiJTQztE9h0/sWp9bJQ==} + engines: {node: '>=18'} hasBin: true - dependencies: - '@dependents/detective-less': 4.1.0 - commander: 10.0.1 - detective-amd: 5.0.2 - detective-cjs: 5.0.1 - detective-es6: 4.0.1 - detective-postcss: 6.1.3 - detective-sass: 5.0.3 - detective-scss: 4.0.3 - detective-stylus: 4.0.0 - detective-typescript: 11.1.0 - module-definition: 5.0.1 - node-source-walk: 6.0.2 - transitivePeerDependencies: - - supports-color - dev: true - /preferred-pm@3.1.2: - resolution: {integrity: sha512-nk7dKrcW8hfCZ4H6klWcdRknBOXWzNQByJ0oJyX97BOupsYD+FzLS4hflgEu/uPUEHZCuRfMxzCBsuWd7OzT8Q==} - engines: {node: '>=10'} - dependencies: - find-up: 5.0.0 - find-yarn-workspace-root2: 1.2.16 - path-exists: 4.0.0 - which-pm: 2.0.0 + preferred-pm@4.0.0: + resolution: {integrity: sha512-gYBeFTZLu055D8Vv3cSPox/0iTPtkzxpLroSYYA7WXgRi31WCJ51Uyl8ZiPeUUjyvs2MBzK+S8v9JVUgHU/Sqw==} + engines: {node: '>=18.12'} - /prelude-ls@1.2.1: + prelude-ls@1.2.1: resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} engines: {node: '>= 0.8.0'} - /prettier@3.1.1: - resolution: {integrity: sha512-22UbSzg8luF4UuZtzgiUOfcGM8s4tjBv6dJRT7j275NXsy2jb4aJa4NNveul5x4eqlF1wuhuR2RElK71RvmVaw==} + prettier@3.4.2: + resolution: {integrity: sha512-e9MewbtFo+Fevyuxn/4rrcDAaq0IYxPGLvObpQjiZBMAzB9IGmzlnG9RZy3FFas+eBMu2vA0CszMeduow5dIuQ==} engines: {node: '>=14'} hasBin: true - dev: true - /pretty-bytes@5.6.0: + pretty-bytes@5.6.0: resolution: {integrity: sha512-FFw039TmrBqFK8ma/7OL3sDz/VytdtJr044/QUJtH0wK9lb9jLq9tJyIxUwtQJHwar2BqtiA4iCWSwo9JLkzFg==} engines: {node: '>=6'} - dev: true - /pretty-bytes@6.1.1: + pretty-bytes@6.1.1: resolution: {integrity: sha512-mQUvGU6aUFQ+rNvTIAcZuWGRT9a6f6Yrg9bHs4ImKF+HZCEK+plBvnAZYSIQztknZF2qnzNtr6F8s0+IuptdlQ==} engines: {node: ^14.13.1 || >=16.0.0} - dev: true - /pretty-format@29.7.0: + pretty-format@29.7.0: resolution: {integrity: sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - dependencies: - '@jest/schemas': 29.6.3 - ansi-styles: 5.2.0 - react-is: 18.2.0 - dev: true - /prismjs@1.29.0: + prismjs@1.29.0: resolution: {integrity: sha512-Kx/1w86q/epKcmte75LNrEoT+lX8pBpavuAbvJWRXar7Hz8jrtF+e3vY751p0R8H9HdArwaCTNDDzHg/ScJK1Q==} engines: {node: '>=6'} - /probe-image-size@7.2.3: - resolution: {integrity: sha512-HubhG4Rb2UH8YtV4ba0Vp5bQ7L78RTONYu/ujmCu5nBI8wGv24s4E9xSKBi0N1MowRpxk76pFCpJtW0KPzOK0w==} - dependencies: - lodash.merge: 4.6.2 - needle: 2.9.1 - stream-parser: 0.3.1 - transitivePeerDependencies: - - supports-color - - /proc-log@3.0.0: - resolution: {integrity: sha512-++Vn7NS4Xf9NacaU9Xq3URUuqZETPsf8L4j5/ckhaRYsfPeRyzGw+iDjFhV/Jr3uNmTvvddEJFWh5R1gRgUH8A==} + proc-log@4.2.0: + resolution: {integrity: sha512-g8+OnU/L2v+wyiVK+D5fA34J7EH8jZ8DDlvwhRCMxmMj7UCBvxiO1mGeN+36JXIKF4zevU4kRBd8lVgG9vLelA==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - dev: true - /process-nextick-args@2.0.1: + process-nextick-args@2.0.1: resolution: {integrity: sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==} - /progress@2.0.3: + proggy@2.0.0: + resolution: {integrity: sha512-69agxLtnI8xBs9gUGqEnK26UfiexpHy+KUpBQWabiytQjnn5wFY8rklAi7GRfABIuPNnQ/ik48+LGLkYYJcy4A==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + + progress@2.0.3: resolution: {integrity: sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==} engines: {node: '>=0.4.0'} - dev: true - /promise-inflight@1.0.1: + promise-all-reject-late@1.0.1: + resolution: {integrity: sha512-vuf0Lf0lOxyQREH7GDIOUMLS7kz+gs8i6B+Yi8dC68a2sychGrHTJYghMBD6k7eUcH0H5P73EckCA48xijWqXw==} + + promise-call-limit@3.0.2: + resolution: {integrity: sha512-mRPQO2T1QQVw11E7+UdCJu7S61eJVWknzml9sC1heAdj1jxl0fWMBypIt9ZOcLFf8FkG995ZD7RnVk7HH72fZw==} + + promise-inflight@1.0.1: resolution: {integrity: sha512-6zWPyEOFaQBJYcGMHBKTKJ3u6TBsnMFOIZSa6ce1e/ZrrsOlnHRHbabMjLiBYKp+n44X9eUI6VUPaukCXHuG4g==} peerDependencies: bluebird: '*' peerDependenciesMeta: bluebird: optional: true - dev: true - /promise-retry@2.0.1: + promise-retry@2.0.1: resolution: {integrity: sha512-y+WKFlBR8BGXnsNlIHFGPZmyDf3DFMoLhaflAnyZgV6rG6xu+JwesTo2Q9R6XwYmtmwAFCkAk3e35jEdoeh/3g==} engines: {node: '>=10'} - dependencies: - err-code: 2.0.3 - retry: 0.12.0 - dev: true - /prompts@2.4.2: + prompts@2.4.2: resolution: {integrity: sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==} engines: {node: '>= 6'} - dependencies: - kleur: 3.0.3 - sisteransi: 1.0.5 - /promzard@1.0.0: - resolution: {integrity: sha512-KQVDEubSUHGSt5xLakaToDFrSoZhStB8dXLzk2xvwR67gJktrHFvpR63oZgHyK19WKbHFLXJqCPXdVR3aBP8Ig==} + promzard@1.0.2: + resolution: {integrity: sha512-2FPputGL+mP3jJ3UZg/Dl9YOkovB7DX0oOr+ck5QbZ5MtORtds8k/BZdn+02peDLI8/YWbmzx34k5fA+fHvCVQ==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - dependencies: - read: 2.1.0 - dev: true - /property-information@6.2.0: - resolution: {integrity: sha512-kma4U7AFCTwpqq5twzC1YVIDXSqg6qQK6JN0smOw8fgRy1OkMi0CYSzFmsy6dnqSenamAtj0CyXMUJ1Mf6oROg==} + property-information@6.5.0: + resolution: {integrity: sha512-PgTgs/BlvHxOu8QuEN7wi5A0OmXaBcHpmCSTehcs6Uuu9IkDIEo13Hy7n898RHfrQ49vKCoGeWZSaAK01nwVig==} - /protocols@2.0.1: + protocols@2.0.1: resolution: {integrity: sha512-/XJ368cyBJ7fzLMwLKv1e4vLxOju2MNAIokcr7meSaNcVbWz/CPcW22cP04mwxOErdA5mwjA8Q6w/cdAQxVn7Q==} - dev: true - /proxy-from-env@1.1.0: + proxy-from-env@1.1.0: resolution: {integrity: sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==} - dev: true - /pump@3.0.0: - resolution: {integrity: sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==} - dependencies: - end-of-stream: 1.4.4 - once: 1.4.0 - dev: true + pump@3.0.2: + resolution: {integrity: sha512-tUPXtzlGM8FE3P0ZL6DVs/3P58k9nk8/jZeQCurTJylQA8qFYzHFfhBJkuqyE0FifOsQ0uKWekiZ5g8wtr28cw==} - /punycode@2.3.0: - resolution: {integrity: sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==} + punycode.js@2.3.1: + resolution: {integrity: sha512-uxFIHU0YlHYhDQtV4R9J6a52SLx28BCjT+4ieh7IGbgwVJWO+km431c4yRlREUAsAmt/uMjQUyQHNEPf0M39CA==} engines: {node: '>=6'} - /punycode@2.3.1: + punycode@2.3.1: resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} engines: {node: '>=6'} - dev: true - /queue-microtask@1.2.3: + queue-microtask@1.2.3: resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} - /quick-lru@4.0.1: + quick-lru@4.0.1: resolution: {integrity: sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g==} engines: {node: '>=8'} - dev: true - /quote-unquote@1.0.0: + quote-unquote@1.0.0: resolution: {integrity: sha512-twwRO/ilhlG/FIgYeKGFqyHhoEhqgnKVkcmqMKi2r524gz3ZbDTcyFt38E9xjJI2vT+KbRNHVbnJ/e0I25Azwg==} - dev: true - /raf-loop@1.1.3: + radix3@1.1.2: + resolution: {integrity: sha512-b484I/7b8rDEdSDKckSSBA8knMpcdsXudlE/LNL639wFoHKwLbEkQFZHWEYwDC0wa0FKUcCY+GAF73Z7wxNVFA==} + + raf-loop@1.1.3: resolution: {integrity: sha512-fcIuuIdjbD6OB0IFw4d+cjqdrzDorKkIpwOiSnfU4Tht5PTFiJutR8hnCOGslYqZDyIzwpF5WnwbnTTuo9uUUA==} - dependencies: - events: 1.1.1 - inherits: 2.0.4 - raf: 3.4.1 - right-now: 1.0.0 - dev: false - /raf@3.4.1: + raf@3.4.1: resolution: {integrity: sha512-Sq4CW4QhwOHE8ucn6J34MqtZCeWFP2aQSmrlroYgqAV1PjStIhJXxYuTgUIfkEk7zTLjmIjLmU5q+fbD1NnOJA==} - dependencies: - performance-now: 2.1.0 - dev: false - /rambda@7.4.0: - resolution: {integrity: sha512-A9hihu7dUTLOUCM+I8E61V4kRXnN4DwYeK0DwCBydC1MqNI1PidyAtbtpsJlBBzK4icSctEcCQ1bGcLpBuETUQ==} - dev: false + rambda@7.5.0: + resolution: {integrity: sha512-y/M9weqWAH4iopRd7EHDEQQvpFPHj1AA3oHozE9tfITHUtTR7Z9PSlIRRG2l1GuW7sefC1cXFfIcF+cgnShdBA==} - /randombytes@2.1.0: + randombytes@2.1.0: resolution: {integrity: sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==} - dependencies: - safe-buffer: 5.2.1 - dev: true - /rc@1.2.8: + rc@1.2.8: resolution: {integrity: sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==} hasBin: true - dependencies: - deep-extend: 0.6.0 - ini: 1.3.8 - minimist: 1.2.7 - strip-json-comments: 2.0.1 - dev: true - /react-dom@18.2.0(react@18.2.0): - resolution: {integrity: sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g==} + react-dom@19.0.0: + resolution: {integrity: sha512-4GV5sHFG0e/0AD4X+ySy6UJd3jVl1iNsNHdpad0qhABJ11twS3TTBnseqsKurKcsNqCEFeGL3uLpVChpIO3QfQ==} peerDependencies: - react: ^18.2.0 - dependencies: - loose-envify: 1.4.0 - react: 18.2.0 - scheduler: 0.23.0 - dev: false + react: ^19.0.0 - /react-hook-inview@4.5.0(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-Hm61BK32/K2Cc3bjBe2bQkndHbQP6NhHvWVX7zYitaitB6T28uUV+wlgxbXU9twxUt7+17HyHq6aezpMUCijQQ==} + react-hook-inview@4.5.1: + resolution: {integrity: sha512-ceb2tjSNnBIQ19TphSlxrjy85dfWEoqCb1kTquOM0li+Myzn0cBDi6WzItFf9vyQbZAXJR7LaoESLBXvMu6clA==} peerDependencies: - react: ^16.8.0 || ^17.0.0 || ^18.0.0 - react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 - dependencies: - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) - dev: false + react: '>= 16.8.0' + react-dom: '>= 16.8.0' - /react-is@18.2.0: - resolution: {integrity: sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==} - dev: true + react-is@18.3.1: + resolution: {integrity: sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==} - /react-lite-youtube-embed@2.4.0(react-dom@18.2.0)(react@18.2.0): + react-lite-youtube-embed@2.4.0: resolution: {integrity: sha512-Xo6cM1zPlROvvM97JkqQIoXstlQDaC4+DawmM7BB7Hh1cXrkBHEGq1iJlQxBTUWAUklmpcC7ph7qg7CztXtABQ==} peerDependencies: react: '>=18.2.0' react-dom: '>=18.2.0' - dependencies: - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) - dev: false - /react-refresh@0.14.0: - resolution: {integrity: sha512-wViHqhAd8OHeLS/IRMJjTSDHF3U9eWi62F/MledQGPdJGDhodXJ9PBLNGr6WWL7qlH12Mt3TyTpbS+hGXMjCzQ==} + react-refresh@0.14.2: + resolution: {integrity: sha512-jCvmsr+1IUSMUyzOkRcvnVbX3ZYC6g9TDrDbFuFmRDq7PD4yaGbLKNQL6k2jnArV8hjYxh7hVhAZB6s9HDGpZA==} engines: {node: '>=0.10.0'} - dev: false - /react@18.2.0: - resolution: {integrity: sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ==} + react@19.0.0: + resolution: {integrity: sha512-V8AVnmPIICiWpGfm6GLzCR/W5FXLchHop40W4nXBmdlEceh16rCN8O8LNWm5bh5XUX91fh7KpA+W0TgMKmgTpQ==} engines: {node: '>=0.10.0'} - dependencies: - loose-envify: 1.4.0 - dev: false - /read-cache@1.0.0: + read-cache@1.0.0: resolution: {integrity: sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==} - dependencies: - pify: 2.3.0 - dev: false - /read-cmd-shim@4.0.0: + read-cmd-shim@4.0.0: resolution: {integrity: sha512-yILWifhaSEEytfXI76kB9xEEiG1AiozaCJZ83A87ytjRiN+jVibXjedjCRNjoZviinhG+4UkalO3mWTd8u5O0Q==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - dev: true - /read-package-json-fast@3.0.2: + read-package-json-fast@3.0.2: resolution: {integrity: sha512-0J+Msgym3vrLOUB3hzQCuZHII0xkNGCtz/HJH9xZshwv9DbDwkw1KaE3gx/e2J5rpEY5rtOy6cyhKOPrkP7FZw==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - dependencies: - json-parse-even-better-errors: 3.0.0 - npm-normalize-package-bin: 3.0.0 - dev: true - /read-package-json@6.0.4: - resolution: {integrity: sha512-AEtWXYfopBj2z5N5PbkAOeNHRPUg5q+Nen7QLxV8M2zJq1ym6/lCz3fYNTCXe19puu2d06jfHhrP7v/S2PtMMw==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - dependencies: - glob: 10.2.2 - json-parse-even-better-errors: 3.0.0 - normalize-package-data: 5.0.0 - npm-normalize-package-bin: 3.0.0 - dev: true - - /read-package-json@7.0.0: - resolution: {integrity: sha512-uL4Z10OKV4p6vbdvIXB+OzhInYtIozl/VxUBPgNkBuUi2DeRonnuspmaVAMcrkmfjKGNmRndyQAbE7/AmzGwFg==} - engines: {node: ^16.14.0 || >=18.0.0} - dependencies: - glob: 10.2.2 - json-parse-even-better-errors: 3.0.0 - normalize-package-data: 6.0.0 - npm-normalize-package-bin: 3.0.0 - dev: true - - /read-pkg-up@3.0.0: + read-pkg-up@3.0.0: resolution: {integrity: sha512-YFzFrVvpC6frF1sz8psoHDBGF7fLPc+llq/8NB43oagqWkx8ar5zYtsTORtOjw9W2RHLpWP+zTWwBvf1bCmcSw==} engines: {node: '>=4'} - dependencies: - find-up: 2.1.0 - read-pkg: 3.0.0 - dev: true - /read-pkg-up@7.0.1: + read-pkg-up@7.0.1: resolution: {integrity: sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==} engines: {node: '>=8'} - dependencies: - find-up: 4.1.0 - read-pkg: 5.2.0 - type-fest: 0.8.1 - dev: true - /read-pkg@3.0.0: + read-pkg@3.0.0: resolution: {integrity: sha512-BLq/cCO9two+lBgiTYNqD6GdtK8s4NpaWrl6/rCO9w0TUS8oJl7cmToOZfRYllKTISY6nt1U7jQ53brmKqY6BA==} engines: {node: '>=4'} - dependencies: - load-json-file: 4.0.0 - normalize-package-data: 2.5.0 - path-type: 3.0.0 - dev: true - /read-pkg@5.2.0: + read-pkg@5.2.0: resolution: {integrity: sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==} engines: {node: '>=8'} - dependencies: - '@types/normalize-package-data': 2.4.1 - normalize-package-data: 2.5.0 - parse-json: 5.2.0 - type-fest: 0.6.0 - dev: true - /read@2.1.0: - resolution: {integrity: sha512-bvxi1QLJHcaywCAEsAk4DG3nVoqiY2Csps3qzWalhj5hFqRn1d/OixkFXtLO1PrgHUcAP0FNaSY/5GYNfENFFQ==} + read@3.0.1: + resolution: {integrity: sha512-SLBrDU/Srs/9EoWhU5GdbAoxG1GzpQHo/6qiGItaoLJ1thmYpcNIM1qISEUvyHBzfGlWIyd6p2DNi1oV1VmAuw==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - dependencies: - mute-stream: 1.0.0 - dev: true - /readable-stream@1.1.14: + readable-stream@1.1.14: resolution: {integrity: sha512-+MeVjFf4L44XUkhM1eYbD8fyEsxcV81pqMSR5gblfcLCHfZvbrqy4/qYHE+/R5HoBUT11WV5O08Cr1n3YXkWVQ==} - dependencies: - core-util-is: 1.0.3 - inherits: 2.0.4 - isarray: 0.0.1 - string_decoder: 0.10.31 - dev: false - /readable-stream@2.3.7: - resolution: {integrity: sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==} - dependencies: - core-util-is: 1.0.3 - inherits: 2.0.4 - isarray: 1.0.0 - process-nextick-args: 2.0.1 - safe-buffer: 5.1.2 - string_decoder: 1.1.1 - util-deprecate: 1.0.2 + readable-stream@2.3.8: + resolution: {integrity: sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==} - /readable-stream@3.6.0: - resolution: {integrity: sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==} + readable-stream@3.6.2: + resolution: {integrity: sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==} engines: {node: '>= 6'} - dependencies: - inherits: 2.0.4 - string_decoder: 1.3.0 - util-deprecate: 1.0.2 - /readdirp@3.6.0: + readdirp@3.6.0: resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} engines: {node: '>=8.10.0'} - dependencies: - picomatch: 2.3.1 - /redent@3.0.0: + recma-build-jsx@1.0.0: + resolution: {integrity: sha512-8GtdyqaBcDfva+GUKDr3nev3VpKAhup1+RvkMvUxURHpW7QyIvk9F5wz7Vzo06CEMSilw6uArgRqhpiUcWp8ew==} + + recma-jsx@1.0.0: + resolution: {integrity: sha512-5vwkv65qWwYxg+Atz95acp8DMu1JDSqdGkA2Of1j6rCreyFUE/gp15fC8MnGEuG1W68UKjM6x6+YTWIh7hZM/Q==} + + recma-parse@1.0.0: + resolution: {integrity: sha512-OYLsIGBB5Y5wjnSnQW6t3Xg7q3fQ7FWbw/vcXtORTnyaSFscOtABg+7Pnz6YZ6c27fG1/aN8CjfwoUEUIdwqWQ==} + + recma-stringify@1.0.0: + resolution: {integrity: sha512-cjwII1MdIIVloKvC9ErQ+OgAtwHBmcZ0Bg4ciz78FtbT8In39aAYbaA7zvxQ61xVMSPE8WxhLwLbhif4Js2C+g==} + + redent@3.0.0: resolution: {integrity: sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==} engines: {node: '>=8'} - dependencies: - indent-string: 4.0.0 - strip-indent: 3.0.0 - dev: true - /reduce-extract@1.0.0: - resolution: {integrity: sha512-QF8vjWx3wnRSL5uFMyCjDeDc5EBMiryoT9tz94VvgjKfzecHAVnqmXAwQDcr7X4JmLc2cjkjFGCVzhMqDjgR9g==} - engines: {node: '>=0.10.0'} - dependencies: - test-value: 1.1.0 - dev: true + reflect.getprototypeof@1.0.10: + resolution: {integrity: sha512-00o4I+DVrefhv+nX0ulyi3biSHCPDe+yLv5o/p6d/UVlirijB8E16FtfwSAi4g3tcqrQ4lRAqQSoFEZJehYEcw==} + engines: {node: '>= 0.4'} - /reduce-flatten@1.0.1: - resolution: {integrity: sha512-j5WfFJfc9CoXv/WbwVLHq74i/hdTUpy+iNC534LxczMRP67vJeK3V9JOdnL0N1cIRbn9mYhE2yVjvvKXDxvNXQ==} - engines: {node: '>=0.10.0'} - dev: true - - /reduce-flatten@3.0.1: - resolution: {integrity: sha512-bYo+97BmUUOzg09XwfkwALt4PQH1M5L0wzKerBt6WLm3Fhdd43mMS89HiT1B9pJIqko/6lWx3OnV4J9f2Kqp5Q==} - engines: {node: '>=8'} - dev: true - - /reduce-unique@2.0.1: - resolution: {integrity: sha512-x4jH/8L1eyZGR785WY+ePtyMNhycl1N2XOLxhCbzZFaqF4AXjLzqSxa2UHgJ2ZVR/HHyPOvl1L7xRnW8ye5MdA==} - engines: {node: '>=6'} - dev: true - - /reduce-without@1.0.1: - resolution: {integrity: sha512-zQv5y/cf85sxvdrKPlfcRzlDn/OqKFThNimYmsS3flmkioKvkUGn2Qg9cJVoQiEvdxFGLE0MQER/9fZ9sUqdxg==} - engines: {node: '>=0.10.0'} - dependencies: - test-value: 2.1.0 - dev: true - - /regenerate-unicode-properties@10.1.1: - resolution: {integrity: sha512-X007RyZLsCJVVrjgEFVpLUTZwyOZk3oiL75ZcuYjlIWd6rNJtOjkBwQc5AsRrpbKVkxN6sklw/k/9m2jJYOf8Q==} + regenerate-unicode-properties@10.2.0: + resolution: {integrity: sha512-DqHn3DwbmmPVzeKj9woBadqmXxLvQoQIwu7nopMc72ztvxVmVk2SBhSnx67zuye5TP+lJsb/TBQsjLKhnDf3MA==} engines: {node: '>=4'} - dependencies: - regenerate: 1.4.2 - dev: true - /regenerate@1.4.2: + regenerate@1.4.2: resolution: {integrity: sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==} - dev: true - /regenerator-runtime@0.13.11: - resolution: {integrity: sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==} - dev: false - - /regenerator-runtime@0.14.1: + regenerator-runtime@0.14.1: resolution: {integrity: sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==} - /regenerator-transform@0.15.2: + regenerator-transform@0.15.2: resolution: {integrity: sha512-hfMp2BoF0qOk3uc5V20ALGDS2ddjQaLrdl7xrGXvAIow7qeWRM2VA2HuCHkUKk9slq3VwEwLNK3DFBqDfPGYtg==} - dependencies: - '@babel/runtime': 7.24.1 - dev: true - /regexp.prototype.flags@1.5.1: - resolution: {integrity: sha512-sy6TXMN+hnP/wMy+ISxg3krXx7BAtWVO4UouuCN/ziM9UEne0euamVNafDfvC83bRNr95y0V5iijeDQFUNpvrg==} + regex-recursion@5.1.1: + resolution: {integrity: sha512-ae7SBCbzVNrIjgSbh7wMznPcQel1DNlDtzensnFxpiNpXt1U2ju/bHugH422r+4LAVS1FpW1YCwilmnNsjum9w==} + + regex-utilities@2.3.0: + resolution: {integrity: sha512-8VhliFJAWRaUiVvREIiW2NXXTmHs4vMNnSzuJVhscgmGav3g9VDxLrQndI3dZZVVdp0ZO/5v0xmX516/7M9cng==} + + regex@5.1.1: + resolution: {integrity: sha512-dN5I359AVGPnwzJm2jN1k0W9LPZ+ePvoOeVMMfqIMFz53sSwXkxaJoxr50ptnsC771lK95BnTrVSZxq0b9yCGw==} + + regexp.prototype.flags@1.5.4: + resolution: {integrity: sha512-dYqgNSZbDwkaJ2ceRd9ojCGjBq+mOm9LmtXnAnEGyHhN/5R7iDW2TRw3h+o/jCFxus3P2LfWIIiwowAjANm7IA==} engines: {node: '>= 0.4'} - dependencies: - call-bind: 1.0.5 - define-properties: 1.2.1 - set-function-name: 2.0.1 - dev: true - /regexpp@3.2.0: + regexpp@3.2.0: resolution: {integrity: sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==} engines: {node: '>=8'} - dev: false - /regexpu-core@5.3.2: - resolution: {integrity: sha512-RAM5FlZz+Lhmo7db9L298p2vHP5ZywrVXmVXpmAD9GuL5MPH6t9ROw1iA/wfHkQ76Qe7AaPF0nGuim96/IrQMQ==} + regexpu-core@6.2.0: + resolution: {integrity: sha512-H66BPQMrv+V16t8xtmq+UC0CBpiTBA60V8ibS1QVReIp8T1z8hwFxqcGzm9K6lgsN7sB5edVH8a+ze6Fqm4weA==} engines: {node: '>=4'} - dependencies: - '@babel/regjsgen': 0.8.0 - regenerate: 1.4.2 - regenerate-unicode-properties: 10.1.1 - regjsparser: 0.9.1 - unicode-match-property-ecmascript: 2.0.0 - unicode-match-property-value-ecmascript: 2.1.0 - dev: true - /regjsparser@0.9.1: - resolution: {integrity: sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ==} + regjsgen@0.8.0: + resolution: {integrity: sha512-RvwtGe3d7LvWiDQXeQw8p5asZUmfU1G/l6WbUXeHta7Y2PEIvBTwH6E2EfmYUK8pxcxEdEmaomqyp0vZZ7C+3Q==} + + regjsparser@0.12.0: + resolution: {integrity: sha512-cnE+y8bz4NhMjISKbgeVJtqNbtf5QpjZP+Bslo+UqkIt9QPnX9q095eiRRASJG1/tz6dlNr6Z5NsBiWYokp6EQ==} hasBin: true - dependencies: - jsesc: 0.5.0 - dev: true - /regl@1.7.0: + regl@1.7.0: resolution: {integrity: sha512-bEAtp/qrtKucxXSJkD4ebopFZYP0q1+3Vb2WECWv/T8yQEgKxDxJ7ztO285tAMaYZVR6mM1GgI6CCn8FROtL1w==} - dev: false - /rehype-autolink-headings@7.1.0: + rehype-autolink-headings@7.1.0: resolution: {integrity: sha512-rItO/pSdvnvsP4QRB1pmPiNHUskikqtPojZKJPPPAVx9Hj8i8TwMBhofrrAYRhYOOBZH9tgmG5lPqDLuIWPWmw==} - dependencies: - '@types/hast': 3.0.2 - '@ungap/structured-clone': 1.2.0 - hast-util-heading-rank: 3.0.0 - hast-util-is-element: 3.0.0 - unified: 11.0.4 - unist-util-visit: 5.0.0 - dev: false - /rehype-parse@9.0.0: - resolution: {integrity: sha512-WG7nfvmWWkCR++KEkZevZb/uw41E8TsH4DsY9UxsTbIXCVGbAs4S+r8FrQ+OtH5EEQAs+5UxKC42VinkmpA1Yw==} - dependencies: - '@types/hast': 3.0.2 - hast-util-from-html: 2.0.1 - unified: 11.0.4 + rehype-parse@9.0.1: + resolution: {integrity: sha512-ksCzCD0Fgfh7trPDxr2rSylbwq9iYDkSn8TCDmEJ49ljEUBxDVCzCHv7QNzZOfODanX4+bWQ4WZqLCRWYLfhag==} - /rehype-raw@7.0.0: + rehype-raw@7.0.0: resolution: {integrity: sha512-/aE8hCfKlQeA8LmyeyQvQF3eBiLRGNlfBJEvWH7ivp9sBqs7TNqBL5X3v157rM4IFETqDnIOO+z5M/biZbo9Ww==} - dependencies: - '@types/hast': 3.0.2 - hast-util-raw: 9.0.1 - vfile: 6.0.1 - /rehype-slug@6.0.0: + rehype-recma@1.0.0: + resolution: {integrity: sha512-lqA4rGUf1JmacCNWWZx0Wv1dHqMwxzsDWYMTowuplHF3xH0N/MmrZ/G3BDZnzAkRmxDadujCjaKM2hqYdCBOGw==} + + rehype-slug@6.0.0: resolution: {integrity: sha512-lWyvf/jwu+oS5+hL5eClVd3hNdmwM1kAC0BUvEGD19pajQMIzcNUd/k9GsfQ+FfECvX+JE+e9/btsKH0EjJT6A==} - dependencies: - '@types/hast': 3.0.2 - github-slugger: 2.0.0 - hast-util-heading-rank: 3.0.0 - hast-util-to-string: 3.0.0 - unist-util-visit: 5.0.0 - dev: false - /rehype-stringify@10.0.0: - resolution: {integrity: sha512-1TX1i048LooI9QoecrXy7nGFFbFSufxVRAfc6Y9YMRAi56l+oB0zP51mLSV312uRuvVLPV1opSlJmslozR1XHQ==} - dependencies: - '@types/hast': 3.0.2 - hast-util-to-html: 9.0.0 - unified: 11.0.4 + rehype-stringify@10.0.1: + resolution: {integrity: sha512-k9ecfXHmIPuFVI61B9DeLPN0qFHfawM6RsuX48hoqlaKSF61RskNjSm1lI8PhBEM0MRdLxVVm4WmTqJQccH9mA==} - /rehype-urls@1.2.0: + rehype-urls@1.2.0: resolution: {integrity: sha512-+ygQd999ts0DxhTqttYmH0w0jK2ysE5lLjaJkSI4xd63XUB+g+TYXZtwXngr38QDMIVizquB2Bo35JNVggCL3A==} - dependencies: - hast-util-has-property: 1.0.4 - stdopt: 2.2.0 - unist-util-visit: 1.4.1 - dev: false - /rehype@13.0.1: - resolution: {integrity: sha512-AcSLS2mItY+0fYu9xKxOu1LhUZeBZZBx8//5HKzF+0XP+eP8+6a5MXn2+DW2kfXR6Dtp1FEXMVrjyKAcvcU8vg==} - dependencies: - '@types/hast': 3.0.2 - rehype-parse: 9.0.0 - rehype-stringify: 10.0.0 - unified: 11.0.4 + rehype@13.0.2: + resolution: {integrity: sha512-j31mdaRFrwFRUIlxGeuPXXKWQxet52RBQRvCmzl5eCefn/KGbomK5GMHNMsOJf55fgo3qw5tST5neDuarDYR2A==} - /remark-gfm@4.0.0: + remark-gfm@4.0.0: resolution: {integrity: sha512-U92vJgBPkbw4Zfu/IiW2oTZLSL3Zpv+uI7My2eq8JxKgqraFdU8YUGicEJCEgSbeaG+QDFqIcwwfMTOEelPxuA==} - dependencies: - '@types/mdast': 4.0.2 - mdast-util-gfm: 3.0.0 - micromark-extension-gfm: 3.0.0 - remark-parse: 11.0.0 - remark-stringify: 11.0.0 - unified: 11.0.4 - transitivePeerDependencies: - - supports-color - /remark-mdx@3.0.0: - resolution: {integrity: sha512-O7yfjuC6ra3NHPbRVxfflafAj3LTwx3b73aBvkEFU5z4PsD6FD4vrqJAkE5iNGLz71GdjXfgRqm3SQ0h0VuE7g==} - dependencies: - mdast-util-mdx: 3.0.0 - micromark-extension-mdxjs: 3.0.0 - transitivePeerDependencies: - - supports-color - dev: false + remark-mdx@3.1.0: + resolution: {integrity: sha512-Ngl/H3YXyBV9RcRNdlYsZujAmhsxwzxpDzpDEhFBVAGthS4GDgnctpDjgFl/ULx5UEDzqtW1cyBSNKqYYrqLBA==} - /remark-parse@11.0.0: + remark-parse@11.0.0: resolution: {integrity: sha512-FCxlKLNGknS5ba/1lmpYijMUzX2esxW5xQqjWxw2eHFfS2MSdaHVINFmhjo+qN1WhZhNimq0dZATN9pH0IDrpA==} - dependencies: - '@types/mdast': 4.0.2 - mdast-util-from-markdown: 2.0.0 - micromark-util-types: 2.0.0 - unified: 11.0.4 - transitivePeerDependencies: - - supports-color - /remark-rehype@11.0.0: - resolution: {integrity: sha512-vx8x2MDMcxuE4lBmQ46zYUDfcFMmvg80WYX+UNLeG6ixjdCCLcw1lrgAukwBTuOFsS78eoAedHGn9sNM0w7TPw==} - dependencies: - '@types/hast': 3.0.2 - '@types/mdast': 4.0.2 - mdast-util-to-hast: 13.0.2 - unified: 11.0.4 - vfile: 6.0.1 + remark-rehype@11.1.1: + resolution: {integrity: sha512-g/osARvjkBXb6Wo0XvAeXQohVta8i84ACbenPpoSsxTOQH/Ae0/RGP4WZgnMH5pMLpsj4FG7OHmcIcXxpza8eQ==} - /remark-smartypants@2.0.0: - resolution: {integrity: sha512-Rc0VDmr/yhnMQIz8n2ACYXlfw/P/XZev884QU1I5u+5DgJls32o97Vc1RbK3pfumLsJomS2yy8eT4Fxj/2MDVA==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - dependencies: - retext: 8.1.0 - retext-smartypants: 5.2.0 - unist-util-visit: 4.1.2 + remark-smartypants@3.0.2: + resolution: {integrity: sha512-ILTWeOriIluwEvPjv67v7Blgrcx+LZOkAUVtKI3putuhlZm84FnqDORNXPPm+HY3NdZOMhyDwZ1E+eZB/Df5dA==} + engines: {node: '>=16.0.0'} - /remark-stringify@11.0.0: + remark-stringify@11.0.0: resolution: {integrity: sha512-1OSmLd3awB/t8qdoEOMazZkNsfVTeY4fTsgzcQFdXNq8ToTN4ZGwrMnlda4K6smTFKD+GRV6O48i6Z4iKgPPpw==} - dependencies: - '@types/mdast': 4.0.2 - mdast-util-to-markdown: 2.1.0 - unified: 11.0.4 - /remark-toc@9.0.0: + remark-toc@9.0.0: resolution: {integrity: sha512-KJ9txbo33GjDAV1baHFze7ij4G8c7SGYoY8Kzsm2gzFpbhL/bSoVpMMzGa3vrNDSWASNd/3ppAqL7cP2zD6JIA==} - dependencies: - '@types/mdast': 4.0.2 - mdast-util-toc: 7.0.0 - dev: false - /remove-trailing-separator@1.1.0: + remove-trailing-separator@1.1.0: resolution: {integrity: sha512-/hS+Y0u3aOfIETiaiirUFwDBDzmXPvO+jAfKTitUngIPzdKc6Z0LoFjM/CK5PL4C+eKwHohlHAb6H0VFfmmUsw==} - dev: false - /replace-ext@1.0.1: + replace-ext@1.0.1: resolution: {integrity: sha512-yD5BHCe7quCgBph4rMQ+0KkIRKwWCrHDOX1p1Gp6HwjPM5kVoCdKGNhN7ydqqsX6lJEnQDKZ/tFMiEdQ1dvPEw==} engines: {node: '>= 0.10'} - dev: false - /require-directory@2.1.1: + require-directory@2.1.1: resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==} engines: {node: '>=0.10.0'} - /require-from-string@2.0.2: + require-from-string@2.0.2: resolution: {integrity: sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==} engines: {node: '>=0.10.0'} - dev: true - /require-main-filename@2.0.0: + require-main-filename@2.0.0: resolution: {integrity: sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==} - dev: false - /requirejs-config-file@4.0.0: + requirejs-config-file@4.0.0: resolution: {integrity: sha512-jnIre8cbWOyvr8a5F2KuqBnY+SDA4NXr/hzEZJG79Mxm2WiFQz2dzhC8ibtPJS7zkmBEl1mxSwp5HhC1W4qpxw==} engines: {node: '>=10.13.0'} - dependencies: - esprima: 4.0.1 - stringify-object: 3.3.0 - dev: true - /requirejs@2.3.6: - resolution: {integrity: sha512-ipEzlWQe6RK3jkzikgCupiTbTvm4S0/CAU5GlgptkN5SO6F3u0UD0K18wy6ErDqiCyP4J4YYe1HuAShvsxePLg==} + requirejs@2.3.7: + resolution: {integrity: sha512-DouTG8T1WanGok6Qjg2SXuCMzszOo0eHeH9hDZ5Y4x8Je+9JB38HdTLT4/VA8OaUhBa0JPVHJ0pyBkM1z+pDsw==} engines: {node: '>=0.4.0'} hasBin: true - dev: true - /requizzle@0.2.4: + requizzle@0.2.4: resolution: {integrity: sha512-JRrFk1D4OQ4SqovXOgdav+K8EAhSB/LJZqCz8tbX0KObcdeM15Ss59ozWMBWmmINMagCwmqn4ZNryUGpBsl6Jw==} - dependencies: - lodash: 4.17.21 - dev: true - /resolve-cwd@3.0.0: + resolve-cwd@3.0.0: resolution: {integrity: sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==} engines: {node: '>=8'} - dependencies: - resolve-from: 5.0.0 - dev: true - /resolve-dependency-path@3.0.2: - resolution: {integrity: sha512-Tz7zfjhLfsvR39ADOSk9us4421J/1ztVBo4rWUkF38hgHK5m0OCZ3NxFVpqHRkjctnwVa15igEUHFJp8MCS7vA==} - engines: {node: '>=14'} - dev: true + resolve-dependency-path@4.0.0: + resolution: {integrity: sha512-hlY1SybBGm5aYN3PC4rp15MzsJLM1w+MEA/4KU3UBPfz4S0lL3FL6mgv7JgaA8a+ZTeEQAiF1a1BuN2nkqiIlg==} + engines: {node: '>=18'} - /resolve-from@4.0.0: + resolve-from@4.0.0: resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} engines: {node: '>=4'} - /resolve-from@5.0.0: + resolve-from@5.0.0: resolution: {integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==} engines: {node: '>=8'} - dev: true - /resolve@1.22.2: - resolution: {integrity: sha512-Sb+mjNHOULsBv818T40qSPeRiuWLyaGMa5ewydRLFimneixmVy2zdivRl+AF6jaYPC8ERxGDmFSiqui6SfPd+g==} + resolve.exports@2.0.3: + resolution: {integrity: sha512-OcXjMsGdhL4XnbShKpAcSqPMzQoYkYyhbEaeSko47MjRP9NfEQMhZkXL1DoFlt9LWQn4YttrdnV6X2OiyzBi+A==} + engines: {node: '>=10'} + + resolve@1.22.10: + resolution: {integrity: sha512-NPRy+/ncIMeDlTAsuqwKIiferiawhefFJtkNSW0qZJEqMEb+qBt/77B/jGeeek+F0uOeN05CDa6HXbbIgtVX4w==} + engines: {node: '>= 0.4'} hasBin: true - dependencies: - is-core-module: 2.11.0 - path-parse: 1.0.7 - supports-preserve-symlinks-flag: 1.0.0 - /resolve@1.22.8: - resolution: {integrity: sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==} - hasBin: true - dependencies: - is-core-module: 2.13.1 - path-parse: 1.0.7 - supports-preserve-symlinks-flag: 1.0.0 - - /restore-cursor@3.1.0: + restore-cursor@3.1.0: resolution: {integrity: sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==} engines: {node: '>=8'} - dependencies: - onetime: 5.1.2 - signal-exit: 3.0.7 - dev: true - /restore-cursor@4.0.0: - resolution: {integrity: sha512-I9fPXU9geO9bHOt9pHHOhOkYerIMsmVaWB0rA2AI9ERh/+x/i7MV5HKBNrg+ljO5eoPVgCcnFuRjJ9uH6I/3eg==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - dependencies: - onetime: 5.1.2 - signal-exit: 3.0.7 + retext-latin@4.0.0: + resolution: {integrity: sha512-hv9woG7Fy0M9IlRQloq/N6atV82NxLGveq+3H2WOi79dtIYWN8OaxogDm77f8YnVXJL2VD3bbqowu5E3EMhBYA==} - /retext-latin@3.1.0: - resolution: {integrity: sha512-5MrD1tuebzO8ppsja5eEu+ZbBeUNCjoEarn70tkXOS7Bdsdf6tNahsv2bY0Z8VooFF6cw7/6S+d3yI/TMlMVVQ==} - dependencies: - '@types/nlcst': 1.0.0 - parse-latin: 5.0.1 - unherit: 3.0.1 - unified: 10.1.2 + retext-smartypants@6.2.0: + resolution: {integrity: sha512-kk0jOU7+zGv//kfjXEBjdIryL1Acl4i9XNkHxtM7Tm5lFiCog576fjNC9hjoR7LTKQ0DsPWy09JummSsH1uqfQ==} - /retext-smartypants@5.2.0: - resolution: {integrity: sha512-Do8oM+SsjrbzT2UNIKgheP0hgUQTDDQYyZaIY3kfq0pdFzoPk+ZClYJ+OERNXveog4xf1pZL4PfRxNoVL7a/jw==} - dependencies: - '@types/nlcst': 1.0.0 - nlcst-to-string: 3.1.1 - unified: 10.1.2 - unist-util-visit: 4.1.2 + retext-stringify@4.0.0: + resolution: {integrity: sha512-rtfN/0o8kL1e+78+uxPTqu1Klt0yPzKuQ2BfWwwfgIUSayyzxpM1PJzkKt4V8803uB9qSy32MvI7Xep9khTpiA==} - /retext-stringify@3.1.0: - resolution: {integrity: sha512-767TLOaoXFXyOnjx/EggXlb37ZD2u4P1n0GJqVdpipqACsQP+20W+BNpMYrlJkq7hxffnFk+jc6mAK9qrbuB8w==} - dependencies: - '@types/nlcst': 1.0.0 - nlcst-to-string: 3.1.1 - unified: 10.1.2 + retext@9.0.0: + resolution: {integrity: sha512-sbMDcpHCNjvlheSgMfEcVrZko3cDzdbe1x/e7G66dFp0Ff7Mldvi2uv6JkJQzdRcvLYE8CA8Oe8siQx8ZOgTcA==} - /retext@8.1.0: - resolution: {integrity: sha512-N9/Kq7YTn6ZpzfiGW45WfEGJqFf1IM1q8OsRa1CGzIebCJBNCANDRmOrholiDRGKo/We7ofKR4SEvcGAWEMD3Q==} - dependencies: - '@types/nlcst': 1.0.0 - retext-latin: 3.1.0 - retext-stringify: 3.1.0 - unified: 10.1.2 - - /retry@0.12.0: + retry@0.12.0: resolution: {integrity: sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow==} engines: {node: '>= 4'} - dev: true - /reusify@1.0.4: + reusify@1.0.4: resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} engines: {iojs: '>=1.0.0', node: '>=0.10.0'} - /right-now@1.0.0: + right-now@1.0.0: resolution: {integrity: sha512-DA8+YS+sMIVpbsuKgy+Z67L9Lxb1p05mNxRpDPNksPDEFir4vmBlUtuN9jkTGn9YMMdlBuK7XQgFiz6ws+yhSg==} - dev: false - /rimraf@3.0.2: + rimraf@3.0.2: resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==} + deprecated: Rimraf versions prior to v4 are no longer supported hasBin: true - dependencies: - glob: 7.2.3 - /rimraf@4.4.1: + rimraf@4.4.1: resolution: {integrity: sha512-Gk8NlF062+T9CqNGn6h4tls3k6T1+/nXdOcSZVikNVtlRdYpA7wRJJMoXmuvOnLW844rPjdQ7JgXCYM6PPC/og==} engines: {node: '>=14'} hasBin: true - dependencies: - glob: 9.3.5 - dev: true - /rollup-plugin-terser@7.0.2(rollup@2.79.1): + rollup-plugin-terser@7.0.2: resolution: {integrity: sha512-w3iIaU4OxcF52UUXiZNsNeuXIMDvFrr+ZXK6bFZ0Q60qyVfq4uLptoS4bbq3paG3x216eQllFZX7zt6TIImguQ==} deprecated: This package has been deprecated and is no longer maintained. Please use @rollup/plugin-terser peerDependencies: rollup: ^2.0.0 - dependencies: - '@babel/code-frame': 7.23.5 - jest-worker: 26.6.2 - rollup: 2.79.1 - serialize-javascript: 4.0.0 - terser: 5.26.0 - dev: true - /rollup-plugin-visualizer@5.12.0: - resolution: {integrity: sha512-8/NU9jXcHRs7Nnj07PF2o4gjxmm9lXIrZ8r175bT9dK8qoLlvKTwRMArRCMgpMGlq8CTLugRvEmyMeMXIU2pNQ==} - engines: {node: '>=14'} - hasBin: true - peerDependencies: - rollup: 2.x || 3.x || 4.x - peerDependenciesMeta: - rollup: - optional: true - dependencies: - open: 8.4.0 - picomatch: 2.3.1 - source-map: 0.7.4 - yargs: 17.7.2 - dev: true - - /rollup@2.79.1: - resolution: {integrity: sha512-uKxbd0IhMZOhjAiD5oAFp7BqvkA4Dv47qpOCtaNvng4HBwdbWtdOh8f5nZNuk2rp51PMGk3bzfWu5oayNEuYnw==} + rollup@2.79.2: + resolution: {integrity: sha512-fS6iqSPZDs3dr/y7Od6y5nha8dW1YnbgtsyotCVvoFGKbERG++CVRFv1meyGDE1SNItQA8BrnCw7ScdAhRJ3XQ==} engines: {node: '>=10.0.0'} hasBin: true - optionalDependencies: - fsevents: 2.3.3 - dev: true - /rollup@4.13.0: - resolution: {integrity: sha512-3YegKemjoQnYKmsBlOHfMLVPPA5xLkQ8MHLLSw/fBrFaVkEayL51DilPpNNLq1exr98F2B1TzrV0FUlN3gWRPg==} + rollup@4.32.0: + resolution: {integrity: sha512-JmrhfQR31Q4AuNBjjAX4s+a/Pu/Q8Q9iwjWBsjRH1q52SPFE2NqRMK6fUZKKnvKO6id+h7JIRf0oYsph53eATg==} engines: {node: '>=18.0.0', npm: '>=8.0.0'} hasBin: true - dependencies: - '@types/estree': 1.0.5 - optionalDependencies: - '@rollup/rollup-android-arm-eabi': 4.13.0 - '@rollup/rollup-android-arm64': 4.13.0 - '@rollup/rollup-darwin-arm64': 4.13.0 - '@rollup/rollup-darwin-x64': 4.13.0 - '@rollup/rollup-linux-arm-gnueabihf': 4.13.0 - '@rollup/rollup-linux-arm64-gnu': 4.13.0 - '@rollup/rollup-linux-arm64-musl': 4.13.0 - '@rollup/rollup-linux-riscv64-gnu': 4.13.0 - '@rollup/rollup-linux-x64-gnu': 4.13.0 - '@rollup/rollup-linux-x64-musl': 4.13.0 - '@rollup/rollup-win32-arm64-msvc': 4.13.0 - '@rollup/rollup-win32-ia32-msvc': 4.13.0 - '@rollup/rollup-win32-x64-msvc': 4.13.0 - fsevents: 2.3.3 - /rollup@4.9.2: - resolution: {integrity: sha512-66RB8OtFKUTozmVEh3qyNfH+b+z2RXBVloqO2KCC/pjFaGaHtxP9fVfOQKPSGXg2mElmjmxjW/fZ7iKrEpMH5Q==} - engines: {node: '>=18.0.0', npm: '>=8.0.0'} - hasBin: true - optionalDependencies: - '@rollup/rollup-android-arm-eabi': 4.9.2 - '@rollup/rollup-android-arm64': 4.9.2 - '@rollup/rollup-darwin-arm64': 4.9.2 - '@rollup/rollup-darwin-x64': 4.9.2 - '@rollup/rollup-linux-arm-gnueabihf': 4.9.2 - '@rollup/rollup-linux-arm64-gnu': 4.9.2 - '@rollup/rollup-linux-arm64-musl': 4.9.2 - '@rollup/rollup-linux-riscv64-gnu': 4.9.2 - '@rollup/rollup-linux-x64-gnu': 4.9.2 - '@rollup/rollup-linux-x64-musl': 4.9.2 - '@rollup/rollup-win32-arm64-msvc': 4.9.2 - '@rollup/rollup-win32-ia32-msvc': 4.9.2 - '@rollup/rollup-win32-x64-msvc': 4.9.2 - fsevents: 2.3.3 - dev: true - - /run-async@2.4.1: + run-async@2.4.1: resolution: {integrity: sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==} engines: {node: '>=0.12.0'} - dev: true - /run-parallel@1.2.0: + run-parallel@1.2.0: resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} - dependencies: - queue-microtask: 1.2.3 - /rxjs@7.8.0: - resolution: {integrity: sha512-F2+gxDshqmIub1KdvZkaEfGDwLNpPvk9Fs6LD/MyQxNgMds/WH9OdDDXOmxUZpME+iSK3rQCctkL0DYyytUqMg==} - dependencies: - tslib: 2.5.0 - dev: true + rxjs@7.8.1: + resolution: {integrity: sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==} - /safe-array-concat@1.0.1: - resolution: {integrity: sha512-6XbUAseYE2KtOuGueyeobCySj9L4+66Tn6KQMOPQJrAJEowYKW/YR/MGJZl7FdydUdaFu4LYyDZjxf4/Nmo23Q==} + safe-array-concat@1.1.3: + resolution: {integrity: sha512-AURm5f0jYEOydBj7VQlVvDrjeFgthDdEF5H1dP+6mNpoXOMo1quQqJ4wvJDyRZ9+pO3kGWoOdmV08cSv2aJV6Q==} engines: {node: '>=0.4'} - dependencies: - call-bind: 1.0.5 - get-intrinsic: 1.2.2 - has-symbols: 1.0.3 - isarray: 2.0.5 - dev: true - /safe-buffer@5.1.2: + safe-buffer@5.1.2: resolution: {integrity: sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==} - /safe-buffer@5.2.1: + safe-buffer@5.2.1: resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} - /safe-regex-test@1.0.0: - resolution: {integrity: sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA==} - dependencies: - call-bind: 1.0.5 - get-intrinsic: 1.2.2 - is-regex: 1.1.4 - dev: true + safe-push-apply@1.0.0: + resolution: {integrity: sha512-iKE9w/Z7xCzUMIZqdBsp6pEQvwuEebH4vdpjcDWnyzaI6yl6O9FHvVpmGelvEHNsoY6wGblkxR6Zty/h00WiSA==} + engines: {node: '>= 0.4'} - /safer-buffer@2.1.2: + safe-regex-test@1.1.0: + resolution: {integrity: sha512-x/+Cz4YrimQxQccJf5mKEbIa1NzeCRNI5Ecl/ekmlYaampdNLPalVyIcCZNNH3MvmqBugV5TMYZXv0ljslUlaw==} + engines: {node: '>= 0.4'} + + safer-buffer@2.1.2: resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} - /sass-lookup@5.0.1: - resolution: {integrity: sha512-t0X5PaizPc2H4+rCwszAqHZRtr4bugo4pgiCvrBFvIX0XFxnr29g77LJcpyj9A0DcKf7gXMLcgvRjsonYI6x4g==} - engines: {node: '>=14'} + sass-lookup@6.0.1: + resolution: {integrity: sha512-nl9Wxbj9RjEJA5SSV0hSDoU2zYGtE+ANaDS4OFUR7nYrquvBFvPKZZtQHe3lvnxCcylEDV00KUijjdMTUElcVQ==} + engines: {node: '>=18'} hasBin: true - dependencies: - commander: 10.0.1 - dev: true - /sax@1.3.0: - resolution: {integrity: sha512-0s+oAmw9zLl1V1cS9BtZN7JAd0cW5e0QH4W3LWEK6a4LaLEA2OTpGYWDY+6XasBLtz6wkm3u1xRw95mRuJ59WA==} + scheduler@0.25.0: + resolution: {integrity: sha512-xFVuu11jh+xcO7JOAGJNOXld8/TcEHK/4CituBUeUb5hqxJLj9YuemAEuvm9gQ/+pgXYfbQuqAkiYu+u7YEsNA==} - /scheduler@0.23.0: - resolution: {integrity: sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw==} - dependencies: - loose-envify: 1.4.0 - dev: false - - /search-insights@2.13.0: + search-insights@2.13.0: resolution: {integrity: sha512-Orrsjf9trHHxFRuo9/rzm0KIWmgzE8RMlZMzuhZOJ01Rnz3D0YBAe+V6473t6/H6c7irs6Lt48brULAiRWb3Vw==} - dev: false - /section-matter@1.0.0: - resolution: {integrity: sha512-vfD3pmTzGpufjScBh50YHKzEu2lxBWhVEHsNGoEXmCmn2hKGfeNLYMzCJpe8cD7gqX7TJluOVpBkAequ6dgMmA==} - engines: {node: '>=4'} - dependencies: - extend-shallow: 2.0.1 - kind-of: 6.0.3 - - /semver@5.7.1: - resolution: {integrity: sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==} + semver@5.7.2: + resolution: {integrity: sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==} hasBin: true - dev: true - /semver@6.3.1: + semver@6.3.1: resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==} hasBin: true - /semver@7.3.8: - resolution: {integrity: sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==} + semver@7.6.3: + resolution: {integrity: sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==} engines: {node: '>=10'} hasBin: true - dependencies: - lru-cache: 6.0.0 - /semver@7.5.3: - resolution: {integrity: sha512-QBlUtyVk/5EeHbi7X0fw6liDZc7BBmEaSYn01fMU1OUYbf6GPsbTtd8WmnqbI20SeycoHSeiybkE/q1Q+qlThQ==} - engines: {node: '>=10'} - hasBin: true - dependencies: - lru-cache: 6.0.0 - dev: true - - /semver@7.5.4: - resolution: {integrity: sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==} - engines: {node: '>=10'} - hasBin: true - dependencies: - lru-cache: 6.0.0 - - /serialize-javascript@4.0.0: + serialize-javascript@4.0.0: resolution: {integrity: sha512-GaNA54380uFefWghODBWEGisLZFj00nS5ACs6yHa9nLqlLpVLO8ChDGeKRjZnV4Nh4n0Qi7nhYZD/9fCPzEqkw==} - dependencies: - randombytes: 2.1.0 - dev: true - /server-destroy@1.0.1: - resolution: {integrity: sha512-rb+9B5YBIEzYcD6x2VKidaa+cqYBJQKnU4oe4E3ANwRRN56yk/ua1YCJT1n21NTS8w6CcOclAKNP3PhdCXKYtQ==} - - /set-blocking@2.0.0: + set-blocking@2.0.0: resolution: {integrity: sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==} - /set-function-length@1.1.1: - resolution: {integrity: sha512-VoaqjbBJKiWtg4yRcKBQ7g7wnGnLV3M8oLvVWwOk2PdYY6PEFegR1vezXR0tw6fZGF9csVakIRjrJiy2veSBFQ==} + set-function-length@1.2.2: + resolution: {integrity: sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==} engines: {node: '>= 0.4'} - dependencies: - define-data-property: 1.1.1 - get-intrinsic: 1.2.2 - gopd: 1.0.1 - has-property-descriptors: 1.0.0 - dev: true - /set-function-name@2.0.1: - resolution: {integrity: sha512-tMNCiqYVkXIZgc2Hnoy2IvC/f8ezc5koaRFkCjrpWzGpCd3qbZXPzVy9MAZzK1ch/X0jvSkojys3oqJN0qCmdA==} + set-function-name@2.0.2: + resolution: {integrity: sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==} engines: {node: '>= 0.4'} - dependencies: - define-data-property: 1.1.1 - functions-have-names: 1.2.3 - has-property-descriptors: 1.0.0 - dev: true - /sfumato@0.1.2: + set-proto@1.0.0: + resolution: {integrity: sha512-RJRdvCo6IAnPdsvP/7m6bsQqNnn1FCBX5ZNtFL98MmFF/4xAIJTIg1YbHW5DC2W5SKZanrC6i4HsJqlajw/dZw==} + engines: {node: '>= 0.4'} + + sfumato@0.1.2: resolution: {integrity: sha512-j2s5BLUS5VUNtaK1l+v+yal3XjjV7JXCQIwE5Xs4yiQ3HJ+2Fc/dd3IkkrVHn0AJO2epShSWVoP3GnE0TvPdMg==} - dependencies: - soundfont2: 0.4.0 - dev: false - /shallow-clone@3.0.1: + shallow-clone@3.0.1: resolution: {integrity: sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==} engines: {node: '>=8'} - dependencies: - kind-of: 6.0.3 - dev: true - /sharp@0.33.1: - resolution: {integrity: sha512-iAYUnOdTqqZDb3QjMneBKINTllCJDZ3em6WaWy7NPECM4aHncvqHRm0v0bN9nqJxMiwamv5KIdauJ6lUzKDpTQ==} - engines: {libvips: '>=8.15.0', node: ^18.17.0 || ^20.3.0 || >=21.0.0} - requiresBuild: true - dependencies: - color: 4.2.3 - detect-libc: 2.0.2 - semver: 7.5.4 - optionalDependencies: - '@img/sharp-darwin-arm64': 0.33.1 - '@img/sharp-darwin-x64': 0.33.1 - '@img/sharp-libvips-darwin-arm64': 1.0.0 - '@img/sharp-libvips-darwin-x64': 1.0.0 - '@img/sharp-libvips-linux-arm': 1.0.0 - '@img/sharp-libvips-linux-arm64': 1.0.0 - '@img/sharp-libvips-linux-s390x': 1.0.0 - '@img/sharp-libvips-linux-x64': 1.0.0 - '@img/sharp-libvips-linuxmusl-arm64': 1.0.0 - '@img/sharp-libvips-linuxmusl-x64': 1.0.0 - '@img/sharp-linux-arm': 0.33.1 - '@img/sharp-linux-arm64': 0.33.1 - '@img/sharp-linux-s390x': 0.33.1 - '@img/sharp-linux-x64': 0.33.1 - '@img/sharp-linuxmusl-arm64': 0.33.1 - '@img/sharp-linuxmusl-x64': 0.33.1 - '@img/sharp-wasm32': 0.33.1 - '@img/sharp-win32-ia32': 0.33.1 - '@img/sharp-win32-x64': 0.33.1 + sharp@0.33.5: + resolution: {integrity: sha512-haPVm1EkS9pgvHrQ/F3Xy+hgcuMV0Wm9vfIBSiwZ05k+xgb0PkBQpGsAA/oWdDobNaZTH5ppvHtzCFbnSEwHVw==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} - /shebang-command@2.0.0: + shebang-command@2.0.0: resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} engines: {node: '>=8'} - dependencies: - shebang-regex: 3.0.0 - /shebang-regex@3.0.0: + shebang-regex@3.0.0: resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} engines: {node: '>=8'} - /shiki@1.2.0: - resolution: {integrity: sha512-xLhiTMOIUXCv5DqJ4I70GgQCtdlzsTqFLZWcMHHG3TAieBUbvEGthdrlPDlX4mL/Wszx9C6rEcxU6kMlg4YlxA==} - dependencies: - '@shikijs/core': 1.2.0 - dev: false + shiki@1.29.1: + resolution: {integrity: sha512-TghWKV9pJTd/N+IgAIVJtr0qZkB7FfFCUrrEJc0aRmZupo3D1OCVRknQWVRVA7AX/M0Ld7QfoAruPzr3CnUJuw==} - /shikiji@0.6.13: - resolution: {integrity: sha512-4T7X39csvhT0p7GDnq9vysWddf2b6BeioiN3Ymhnt3xcy9tXmDcnsEFVxX18Z4YcQgEE/w48dLJ4pPPUcG9KkA==} - dependencies: - hast-util-to-html: 9.0.0 + side-channel-list@1.0.0: + resolution: {integrity: sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==} + engines: {node: '>= 0.4'} - /side-channel@1.0.4: - resolution: {integrity: sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==} - dependencies: - call-bind: 1.0.5 - get-intrinsic: 1.2.2 - object-inspect: 1.13.1 - dev: true + side-channel-map@1.0.1: + resolution: {integrity: sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==} + engines: {node: '>= 0.4'} - /siginfo@2.0.0: + side-channel-weakmap@1.0.2: + resolution: {integrity: sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==} + engines: {node: '>= 0.4'} + + side-channel@1.1.0: + resolution: {integrity: sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==} + engines: {node: '>= 0.4'} + + siginfo@2.0.0: resolution: {integrity: sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==} - dev: true - /signal-exit@3.0.7: + signal-exit@3.0.7: resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==} - /signal-exit@4.1.0: + signal-exit@4.1.0: resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==} engines: {node: '>=14'} - /sigstore@1.4.0: - resolution: {integrity: sha512-N7TRpSbFjY/TrFDg6yGAQSYBrQ5s6qmPiq4pD6fkv1LoyfMsLG0NwZWG2s5q+uttLHgyVyTa0Rogx2P78rN8kQ==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - hasBin: true - dependencies: - '@sigstore/protobuf-specs': 0.1.0 - make-fetch-happen: 11.1.1 - tuf-js: 1.1.4 - transitivePeerDependencies: - - bluebird - - supports-color - dev: true - - /sigstore@2.1.0: - resolution: {integrity: sha512-kPIj+ZLkyI3QaM0qX8V/nSsweYND3W448pwkDgS6CQ74MfhEkIR8ToK5Iyx46KJYRjseVcD3Rp9zAmUAj6ZjPw==} + sigstore@2.3.1: + resolution: {integrity: sha512-8G+/XDU8wNsJOQS5ysDVO0Etg9/2uA5gR9l4ZwijjlwxBcrU6RPfwi2+jJmbP+Ap1Hlp/nVAaEO4Fj22/SL2gQ==} engines: {node: ^16.14.0 || >=18.0.0} - dependencies: - '@sigstore/bundle': 2.1.0 - '@sigstore/protobuf-specs': 0.2.1 - '@sigstore/sign': 2.2.0 - '@sigstore/tuf': 2.2.0 - transitivePeerDependencies: - - supports-color - dev: true - /simple-concat@1.0.1: + simple-concat@1.0.1: resolution: {integrity: sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q==} - dev: true - /simple-get@4.0.1: + simple-get@4.0.1: resolution: {integrity: sha512-brv7p5WgH0jmQJr1ZDDfKDOSeWWg+OVypG99A/5vYGPqJ6pxiaHLy8nxtFjBA7oMa01ebA9gfh1uMCFqOuXxvA==} - dependencies: - decompress-response: 6.0.0 - once: 1.4.0 - simple-concat: 1.0.1 - dev: true - /simple-swizzle@0.2.2: + simple-swizzle@0.2.2: resolution: {integrity: sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==} - requiresBuild: true - dependencies: - is-arrayish: 0.3.2 - /sirv@2.0.4: - resolution: {integrity: sha512-94Bdh3cC2PKrbgSOUqTiGPWVZeSiXfKOVZNJniWoqrWrRkB1CJzBU3NEbiTsPcYy1lDsANA/THzS+9WBiy5nfQ==} - engines: {node: '>= 10'} - dependencies: - '@polka/url': 1.0.0-next.24 - mrmime: 2.0.0 - totalist: 3.0.0 - dev: true + sirv@3.0.0: + resolution: {integrity: sha512-BPwJGUeDaDCHihkORDchNyyTvWFhcusy1XMmhEVTQTwGeybFbp8YEmB+njbPnth1FibULBSBVwCQni25XlCUDg==} + engines: {node: '>=18'} - /sisteransi@1.0.5: + sisteransi@1.0.5: resolution: {integrity: sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==} - /slash@3.0.0: + slash@3.0.0: resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} engines: {node: '>=8'} - dev: true - /smart-buffer@4.2.0: + smart-buffer@4.2.0: resolution: {integrity: sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==} engines: {node: '>= 6.0.0', npm: '>= 3.0.0'} - dev: true - /socks-proxy-agent@7.0.0: - resolution: {integrity: sha512-Fgl0YPZ902wEsAyiQ+idGd1A7rSFx/ayC1CQVMw5P+EQx2V0SgpGtf6OKFhVjPflPUl9YMmEOnmfjCdMUsygww==} - engines: {node: '>= 10'} - dependencies: - agent-base: 6.0.2 - debug: 4.3.4 - socks: 2.7.1 - transitivePeerDependencies: - - supports-color - dev: true - - /socks-proxy-agent@8.0.2: - resolution: {integrity: sha512-8zuqoLv1aP/66PHF5TqwJ7Czm3Yv32urJQHrVyhD7mmA6d61Zv8cIXQYPTWwmg6qlupnPvs/QKDmfa4P/qct2g==} + socks-proxy-agent@8.0.5: + resolution: {integrity: sha512-HehCEsotFqbPW9sJ8WVYB6UbmIMv7kUUORIF2Nncq4VQvBfNBLibW9YZR5dlYCSUhwcD628pRllm7n+E+YTzJw==} engines: {node: '>= 14'} - dependencies: - agent-base: 7.1.0 - debug: 4.3.4 - socks: 2.7.1 - transitivePeerDependencies: - - supports-color - dev: true - /socks@2.7.1: - resolution: {integrity: sha512-7maUZy1N7uo6+WVEX6psASxtNlKaNVMlGQKkG/63nEDdLOWNbiUMoLK7X4uYoLhQstau72mLgfEWcXcwsaHbYQ==} - engines: {node: '>= 10.13.0', npm: '>= 3.0.0'} - dependencies: - ip: 2.0.0 - smart-buffer: 4.2.0 - dev: true + socks@2.8.3: + resolution: {integrity: sha512-l5x7VUUWbjVFbafGLxPWkYsHIhEvmF85tbIeFZWc8ZPtoMyybuEhL7Jye/ooC4/d48FgOjSJXgsF/AJPYCW8Zw==} + engines: {node: '>= 10.0.0', npm: '>= 3.0.0'} - /sort-array@4.1.5: - resolution: {integrity: sha512-Ya4peoS1fgFN42RN1REk2FgdNOeLIEMKFGJvs7VTP3OklF8+kl2SkpVliZ4tk/PurWsrWRsdNdU+tgyOBkB9sA==} - engines: {node: '>=10'} - dependencies: - array-back: 5.0.0 - typical: 6.0.1 - dev: true - - /sort-keys@2.0.0: + sort-keys@2.0.0: resolution: {integrity: sha512-/dPCrG1s3ePpWm6yBbxZq5Be1dXGLyLn9Z791chDC3NFrpkVbWGzkBwPN1knaciexFXgRJ7hzdnwZ4stHSDmjg==} engines: {node: '>=4'} - dependencies: - is-plain-obj: 1.1.0 - dev: true - /soundfont2@0.4.0: + soundfont2@0.4.0: resolution: {integrity: sha512-537WiurDBRbDLVhJMxXLE06D6yWxJCidfPClnibZ0f8dKMDpv+0fIfwCQ8pELE0JqKX05SOJosNJgKzQobaAEA==} - dev: false - /source-map-generator@0.8.0: + soundfont2@0.5.0: + resolution: {integrity: sha512-dcmNVtHT/Y8BOOrtmjt7hn6Bk6bB1g+O2bWB9fa6emW7kfwiEiEL4VvGQfwVt8g0m58LyoqVyuQ4ZFukMLwGHQ==} + + source-map-generator@0.8.0: resolution: {integrity: sha512-psgxdGMwl5MZM9S3FWee4EgsEaIjahYV5AzGnwUvPhWeITz/j6rKpysQHlQ4USdxvINlb8lKfWGIXwfkrgtqkA==} engines: {node: '>= 10'} - dev: true - /source-map-js@1.0.2: - resolution: {integrity: sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==} + source-map-js@1.2.1: + resolution: {integrity: sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==} engines: {node: '>=0.10.0'} - /source-map-js@1.2.0: - resolution: {integrity: sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==} - engines: {node: '>=0.10.0'} - - /source-map-support@0.5.21: + source-map-support@0.5.21: resolution: {integrity: sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==} - dependencies: - buffer-from: 1.1.2 - source-map: 0.6.1 - dev: true - /source-map@0.5.7: + source-map@0.1.43: + resolution: {integrity: sha512-VtCvB9SIQhk3aF6h+N85EaqIaBFIAfZ9Cu+NJHHVvc8BbEcnvDcFw6sqQ2dQrT6SlOrZq3tIvyD9+EGq/lJryQ==} + engines: {node: '>=0.8.0'} + + source-map@0.5.7: resolution: {integrity: sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==} engines: {node: '>=0.10.0'} - dev: false - /source-map@0.6.1: + source-map@0.6.1: resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==} engines: {node: '>=0.10.0'} - /source-map@0.7.4: + source-map@0.7.4: resolution: {integrity: sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==} engines: {node: '>= 8'} - /source-map@0.8.0-beta.0: + source-map@0.8.0-beta.0: resolution: {integrity: sha512-2ymg6oRBpebeZi9UUNsgQ89bhx01TcTkmNTGnNO88imTmbSgy4nfujrgVEFKWpMTEGA11EDkTt7mqObTPdigIA==} engines: {node: '>= 8'} - dependencies: - whatwg-url: 7.1.0 - dev: true - /sourcemap-codec@1.4.8: + sourcemap-codec@1.4.8: resolution: {integrity: sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==} deprecated: Please use @jridgewell/sourcemap-codec instead - dev: true - /space-separated-tokens@2.0.2: + space-separated-tokens@2.0.2: resolution: {integrity: sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q==} - /spdx-correct@3.1.1: - resolution: {integrity: sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==} - dependencies: - spdx-expression-parse: 3.0.1 - spdx-license-ids: 3.0.12 - dev: true + spdx-correct@3.2.0: + resolution: {integrity: sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==} - /spdx-exceptions@2.3.0: - resolution: {integrity: sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==} - dev: true + spdx-exceptions@2.5.0: + resolution: {integrity: sha512-PiU42r+xO4UbUS1buo3LPJkjlO7430Xn5SVAhdpzzsPHsjbYVflnnFdATgabnLude+Cqu25p6N+g2lw/PFsa4w==} - /spdx-expression-parse@3.0.1: + spdx-expression-parse@3.0.1: resolution: {integrity: sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==} - dependencies: - spdx-exceptions: 2.3.0 - spdx-license-ids: 3.0.12 - dev: true - /spdx-license-ids@3.0.12: - resolution: {integrity: sha512-rr+VVSXtRhO4OHbXUiAF7xW3Bo9DuuF6C5jH+q/x15j2jniycgKbxU09Hr0WqlSLUs4i4ltHGXqTe7VHclYWyA==} - dev: true + spdx-license-ids@3.0.21: + resolution: {integrity: sha512-Bvg/8F5XephndSK3JffaRqdT+gyhfqIPwDHpX80tJrF8QQRYMo8sNMeaZ2Dp5+jhwKnUmIOyFFQfHRkjJm5nXg==} - /split2@3.2.2: + split2@3.2.2: resolution: {integrity: sha512-9NThjpgZnifTkJpzTZ7Eue85S49QwpNhZTq6GRJwObb6jnLFNGB7Qm73V5HewTROPyxD0C29xqmaI68bQtV+hg==} - dependencies: - readable-stream: 3.6.0 - dev: true - /split@1.0.1: + split@1.0.1: resolution: {integrity: sha512-mTyOoPbrivtXnwnIxZRFYRrPNtEFKlpB2fvjSnCQUiAA6qAZzqwna5envK4uk6OIeP17CsdF3rSBGYVBsU0Tkg==} - dependencies: - through: 2.3.8 - dev: true - /sprintf-js@1.0.3: + sprintf-js@1.0.3: resolution: {integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==} - /ssri@10.0.4: - resolution: {integrity: sha512-12+IR2CB2C28MMAw0Ncqwj5QbTcs0nGIhgJzYWzDkb21vWmfNI83KS4f3Ci6GI98WreIfG7o9UXp3C0qbpA8nQ==} + sprintf-js@1.1.3: + resolution: {integrity: sha512-Oo+0REFV59/rz3gfJNKQiBlwfHaSESl1pcGyABQsnnIfWOFt6JNj5gCog2U6MLZ//IGYD+nA8nI+mTShREReaA==} + + ssri@10.0.6: + resolution: {integrity: sha512-MGrFH9Z4NP9Iyhqn16sDtBpRRNJ0Y2hNa6D65h736fVSaPCHr4DM4sWUNvVaSuC+0OBGhwsrydQwmgfg5LncqQ==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - dependencies: - minipass: 5.0.0 - dev: true - /ssri@9.0.1: - resolution: {integrity: sha512-o57Wcn66jMQvfHG1FlYbWeZWW/dHZhJXjpIcTfXldXEk5nz5lStPo3mK0OJQfGR3RbZUlbISexbljkJzuEj/8Q==} - engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} - dependencies: - minipass: 3.3.6 - dev: true - - /stackback@0.0.2: + stackback@0.0.2: resolution: {integrity: sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==} - dev: true - /standardized-audio-context@25.3.37: - resolution: {integrity: sha512-lr0+RH/IJXYMts95oYKIJ+orTmstOZN3GXWVGmlkbMj8OLahREkRh7DhNGLYgBGDkBkhhc4ev5pYGSFN3gltHw==} - dependencies: - '@babel/runtime': 7.20.13 - automation-events: 5.0.0 - tslib: 2.5.0 - dev: false + standardized-audio-context@25.3.77: + resolution: {integrity: sha512-Ki9zNz6pKcC5Pi+QPjPyVsD9GwJIJWgryji0XL9cAJXMGyn+dPOf6Qik1AHei0+UNVcc4BOCa0hWLBzlwqsW/A==} - /std-env@3.7.0: - resolution: {integrity: sha512-JPbdCEQLj1w5GilpiHAx3qJvFndqybBysA3qUOnznweH4QbNYUsW/ea8QzSrnh0vNsezMMw5bcVool8lM0gwzg==} - dev: true + std-env@3.8.0: + resolution: {integrity: sha512-Bc3YwwCB+OzldMxOXJIIvC6cPRWr/LxOp48CdQTOkPyk/t4JWWJbrilwBd7RJzKV8QW7tJkcgAmeuLLJugl5/w==} - /stdin-discarder@0.1.0: - resolution: {integrity: sha512-xhV7w8S+bUwlPTb4bAOUQhv8/cSS5offJuX8GQGq32ONF0ZtDWKfkdomM3HMRA+LhX6um/FZ0COqlwsjD53LeQ==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - dependencies: - bl: 5.1.0 - - /stdopt@2.2.0: + stdopt@2.2.0: resolution: {integrity: sha512-D/p41NgXOkcj1SeGhfXOwv9z1K6EV3sjAUY5aeepVbgEHv7DpKWLTjhjScyzMWAQCAgUQys1mjH0eArm4cjRGw==} - dependencies: - is-arrayish: 0.3.2 - dev: false - /stream-connect@1.0.2: - resolution: {integrity: sha512-68Kl+79cE0RGKemKkhxTSg8+6AGrqBt+cbZAXevg2iJ6Y3zX4JhA/sZeGzLpxW9cXhmqAcE7KnJCisUmIUfnFQ==} - engines: {node: '>=0.10.0'} - dependencies: - array-back: 1.0.4 - dev: true - - /stream-meter@1.0.4: + stream-meter@1.0.4: resolution: {integrity: sha512-4sOEtrbgFotXwnEuzzsQBYEV1elAeFSO8rSGeTwabuX1RRn/kEq9JVH7I0MRBhKVRR0sJkr0M0QCH7yOLf9fhQ==} - dependencies: - readable-stream: 2.3.7 - dev: true - /stream-parser@0.3.1: + stream-parser@0.3.1: resolution: {integrity: sha512-bJ/HgKq41nlKvlhccD5kaCr/P+Hu0wPNKPJOH7en+YrJu/9EgqUF+88w5Jb6KNcjOFMhfX4B2asfeAtIGuHObQ==} - dependencies: - debug: 2.6.9 - transitivePeerDependencies: - - supports-color - /stream-transform@3.3.0: - resolution: {integrity: sha512-pG1NeDdmErNYKtvTpFayrEueAmL0xVU5wd22V7InGnatl4Ocq3HY7dcXIKj629kXvYQvglCC7CeDIGAlx1RNGA==} - dev: false + stream-transform@3.3.3: + resolution: {integrity: sha512-dALXrXe+uq4aO5oStdHKlfCM/b3NBdouigvxVPxCdrMRAU6oHh3KNss20VbTPQNQmjAHzZGKGe66vgwegFEIog==} - /stream-via@1.0.4: - resolution: {integrity: sha512-DBp0lSvX5G9KGRDTkR/R+a29H+Wk2xItOF+MpZLLNDWbEV9tGPnqLPxHEYjmiz8xGtJHRIqmI+hCjmNzqoA4nQ==} - engines: {node: '>=0.10.0'} - dev: true - - /string-width@2.1.1: + string-width@2.1.1: resolution: {integrity: sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==} engines: {node: '>=4'} - dependencies: - is-fullwidth-code-point: 2.0.0 - strip-ansi: 4.0.0 - dev: false - /string-width@4.2.3: + string-width@4.2.3: resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} engines: {node: '>=8'} - dependencies: - emoji-regex: 8.0.0 - is-fullwidth-code-point: 3.0.0 - strip-ansi: 6.0.1 - /string-width@5.1.2: + string-width@5.1.2: resolution: {integrity: sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==} engines: {node: '>=12'} - dependencies: - eastasianwidth: 0.2.0 - emoji-regex: 9.2.2 - strip-ansi: 7.1.0 - /string-width@6.1.0: - resolution: {integrity: sha512-k01swCJAgQmuADB0YIc+7TuatfNvTBVOoaUWJjTB9R4VJzR5vNWzf5t42ESVZFPS8xTySF7CAdV4t/aaIm3UnQ==} - engines: {node: '>=16'} - dependencies: - eastasianwidth: 0.2.0 - emoji-regex: 10.3.0 - strip-ansi: 7.1.0 - - /string-width@7.0.0: - resolution: {integrity: sha512-GPQHj7row82Hjo9hKZieKcHIhaAIKOJvFSIZXuCU9OASVZrMNUaZuz++SPVrBjnLsnk4k+z9f2EIypgxf2vNFw==} + string-width@7.2.0: + resolution: {integrity: sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ==} engines: {node: '>=18'} - dependencies: - emoji-regex: 10.3.0 - get-east-asian-width: 1.2.0 - strip-ansi: 7.1.0 - /string.prototype.matchall@4.0.10: - resolution: {integrity: sha512-rGXbGmOEosIQi6Qva94HUjgPs9vKW+dkG7Y8Q5O2OYkWL6wFaTRZO8zM4mhP94uX55wgyrXzfS2aGtGzUL7EJQ==} - dependencies: - call-bind: 1.0.5 - define-properties: 1.2.1 - es-abstract: 1.22.3 - get-intrinsic: 1.2.2 - has-symbols: 1.0.3 - internal-slot: 1.0.6 - regexp.prototype.flags: 1.5.1 - set-function-name: 2.0.1 - side-channel: 1.0.4 - dev: true - - /string.prototype.trim@1.2.8: - resolution: {integrity: sha512-lfjY4HcixfQXOfaqCvcBuOIapyaroTXhbkfJN3gcB1OtyupngWK4sEET9Knd0cXd28kTUqu/kHoV4HKSJdnjiQ==} + string.prototype.matchall@4.0.12: + resolution: {integrity: sha512-6CC9uyBL+/48dYizRf7H7VAYCMCNTBeM78x/VTUe9bFEaxBepPJDa1Ow99LqI/1yF7kuy7Q3cQsYMrcjGUcskA==} engines: {node: '>= 0.4'} - dependencies: - call-bind: 1.0.5 - define-properties: 1.2.1 - es-abstract: 1.22.3 - dev: true - /string.prototype.trimend@1.0.7: - resolution: {integrity: sha512-Ni79DqeB72ZFq1uH/L6zJ+DKZTkOtPIHovb3YZHQViE+HDouuU4mBrLOLDn5Dde3RF8qw5qVETEjhu9locMLvA==} - dependencies: - call-bind: 1.0.5 - define-properties: 1.2.1 - es-abstract: 1.22.3 - dev: true + string.prototype.trim@1.2.10: + resolution: {integrity: sha512-Rs66F0P/1kedk5lyYyH9uBzuiI/kNRmwJAR9quK6VOtIpZ2G+hMZd+HQbbv25MgCA6gEffoMZYxlTod4WcdrKA==} + engines: {node: '>= 0.4'} - /string.prototype.trimstart@1.0.7: - resolution: {integrity: sha512-NGhtDFu3jCEm7B4Fy0DpLewdJQOZcQ0rGbwQ/+stjnrp2i+rlKeCvos9hOIeCmqwratM47OBxY7uFZzjxHXmrg==} - dependencies: - call-bind: 1.0.5 - define-properties: 1.2.1 - es-abstract: 1.22.3 - dev: true + string.prototype.trimend@1.0.9: + resolution: {integrity: sha512-G7Ok5C6E/j4SGfyLCloXTrngQIQU3PWtXGst3yM7Bea9FRURf1S42ZHlZZtsNque2FN2PoUhfZXYLNWwEr4dLQ==} + engines: {node: '>= 0.4'} - /string_decoder@0.10.31: + string.prototype.trimstart@1.0.8: + resolution: {integrity: sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==} + engines: {node: '>= 0.4'} + + string_decoder@0.10.31: resolution: {integrity: sha512-ev2QzSzWPYmy9GuqfIVildA4OdcGLeFZQrq5ys6RtiuF+RQQiZWr8TZNyAcuVXyQRYfEO+MsoB/1BuQVhOJuoQ==} - dev: false - /string_decoder@1.1.1: + string_decoder@1.1.1: resolution: {integrity: sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==} - dependencies: - safe-buffer: 5.1.2 - /string_decoder@1.3.0: + string_decoder@1.3.0: resolution: {integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==} - dependencies: - safe-buffer: 5.2.1 - /stringify-entities@4.0.3: - resolution: {integrity: sha512-BP9nNHMhhfcMbiuQKCqMjhDP5yBCAxsPu4pHFFzJ6Alo9dZgY4VLDPutXqIjpRiMoKdp7Av85Gr73Q5uH9k7+g==} - dependencies: - character-entities-html4: 2.1.0 - character-entities-legacy: 3.0.0 + stringify-entities@4.0.4: + resolution: {integrity: sha512-IwfBptatlO+QCJUo19AqvrPNqlVMpW9YEL2LIVY+Rpv2qsjCGxaDLNRgeGsQWJhfItebuJhsGSLjaBbNSQ+ieg==} - /stringify-object@3.3.0: + stringify-object@3.3.0: resolution: {integrity: sha512-rHqiFh1elqCQ9WPLIC8I0Q/g/wj5J1eMkyoiD6eoQApWHP0FtlK7rqnhmabL5VUY9JQCcqwwvlOaSuutekgyrw==} engines: {node: '>=4'} - dependencies: - get-own-enumerable-property-symbols: 3.0.2 - is-obj: 1.0.1 - is-regexp: 1.0.0 - dev: true - /strip-ansi@4.0.0: + strip-ansi@4.0.0: resolution: {integrity: sha512-4XaJ2zQdCzROZDivEVIDPkcQn8LMFSa8kj8Gxb/Lnwzv9A8VctNZ+lfivC/sV3ivW8ElJTERXZoPBRrZKkNKow==} engines: {node: '>=4'} - dependencies: - ansi-regex: 3.0.1 - dev: false - /strip-ansi@6.0.1: + strip-ansi@6.0.1: resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} engines: {node: '>=8'} - dependencies: - ansi-regex: 5.0.1 - /strip-ansi@7.1.0: + strip-ansi@7.1.0: resolution: {integrity: sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==} engines: {node: '>=12'} - dependencies: - ansi-regex: 6.0.1 - /strip-bom-string@1.0.0: - resolution: {integrity: sha512-uCC2VHvQRYu+lMh4My/sFNmF2klFymLX1wHJeXnbEJERpV/ZsVuonzerjfrGpIGF7LBVa1O7i9kjiWvJiFck8g==} - engines: {node: '>=0.10.0'} - - /strip-bom@3.0.0: + strip-bom@3.0.0: resolution: {integrity: sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==} engines: {node: '>=4'} - /strip-bom@4.0.0: + strip-bom@4.0.0: resolution: {integrity: sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==} engines: {node: '>=8'} - dev: true - /strip-comments@2.0.1: + strip-comments@2.0.1: resolution: {integrity: sha512-ZprKx+bBLXv067WTCALv8SSz5l2+XhpYCsVtSqlMnkAXMWDq+/ekVbl1ghqP9rUHTzv6sm/DwCOiYutU/yp1fw==} engines: {node: '>=10'} - dev: true - /strip-final-newline@2.0.0: + strip-final-newline@2.0.0: resolution: {integrity: sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==} engines: {node: '>=6'} - /strip-final-newline@3.0.0: - resolution: {integrity: sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==} - engines: {node: '>=12'} - - /strip-indent@3.0.0: + strip-indent@3.0.0: resolution: {integrity: sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==} engines: {node: '>=8'} - dependencies: - min-indent: 1.0.1 - dev: true - /strip-json-comments@2.0.1: + strip-json-comments@2.0.1: resolution: {integrity: sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==} engines: {node: '>=0.10.0'} - dev: true - /strip-json-comments@3.1.1: + strip-json-comments@3.1.1: resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} engines: {node: '>=8'} - /strip-literal@1.3.0: - resolution: {integrity: sha512-PugKzOsyXpArk0yWmUwqOZecSO0GH0bPoctLcqNDH9J04pVW3lflYE0ujElBGTloevcxF5MofAOZ7C5l2b+wLg==} - dependencies: - acorn: 8.11.3 - dev: true - - /strnum@1.0.5: + strnum@1.0.5: resolution: {integrity: sha512-J8bbNyKKXl5qYcR36TIO8W3mVGVHrmmxsd5PAItGkmyzwJvybiw2IVq5nqd0i4LSNSkB/sx9VHllbfFdr9k1JA==} - dev: false - /strong-log-transformer@2.1.0: + strong-log-transformer@2.1.0: resolution: {integrity: sha512-B3Hgul+z0L9a236FAUC9iZsL+nVHgoCJnqCbN588DjYxvGXaXaaFbfmQ/JhvKjZwsOukuR72XbHv71Qkug0HxA==} engines: {node: '>=4'} hasBin: true - dependencies: - duplexer: 0.1.2 - minimist: 1.2.7 - through: 2.3.8 - dev: true - /style-mod@4.0.0: - resolution: {integrity: sha512-OPhtyEjyyN9x3nhPsu76f52yUGXiZcgvsrFVtvTkyGRQJ0XK+GPc6ov1z+lRpbeabka+MYEQxOYRnt5nF30aMw==} - dev: false + style-mod@4.1.2: + resolution: {integrity: sha512-wnD1HyVqpJUI2+eKZ+eo1UwghftP6yuFheBqqe+bWCotBjC2K1YnteJILRMs3SM4V/0dLEW1SC27MWP5y+mwmw==} - /style-mod@4.1.0: - resolution: {integrity: sha512-Ca5ib8HrFn+f+0n4N4ScTIA9iTOQ7MaGS1ylHcoVqW9J7w2w8PzN6g9gKmTYgGEBH8e120+RCmhpje6jC5uGWA==} - dev: false + style-to-object@1.0.8: + resolution: {integrity: sha512-xT47I/Eo0rwJmaXC4oilDGDWLohVhR6o/xAQcPQN8q6QBuZVL8qMYL85kLmST5cPjAorwvqIA4qXTRQoYHaL6g==} - /style-to-object@0.4.1: - resolution: {integrity: sha512-HFpbb5gr2ypci7Qw+IOhnP2zOU7e77b+rzM+wTzXzfi1PrtBCX0E7Pk4wL4iTLnhzZ+JgEGAhX81ebTg/aYjQw==} - dependencies: - inline-style-parser: 0.1.1 - dev: false - - /style-to-object@1.0.5: - resolution: {integrity: sha512-rDRwHtoDD3UMMrmZ6BzOW0naTjMsVZLIjsGleSKS/0Oz+cgCfAPRspaqJuE8rDzpKha/nEvnM0IF4seEAZUTKQ==} - dependencies: - inline-style-parser: 0.2.2 - dev: false - - /stylus-lookup@5.0.1: - resolution: {integrity: sha512-tLtJEd5AGvnVy4f9UHQMw4bkJJtaAcmo54N+ovQBjDY3DuWyK9Eltxzr5+KG0q4ew6v2EHyuWWNnHeiw/Eo7rQ==} - engines: {node: '>=14'} + stylus-lookup@6.0.0: + resolution: {integrity: sha512-RaWKxAvPnIXrdby+UWCr1WRfa+lrPMSJPySte4Q6a+rWyjeJyFOLJxr5GrAVfcMCsfVlCuzTAJ/ysYT8p8do7Q==} + engines: {node: '>=18'} hasBin: true - dependencies: - commander: 10.0.1 - dev: true - /sucrase@3.32.0: - resolution: {integrity: sha512-ydQOU34rpSyj2TGyz4D2p8rbktIOZ8QY9s+DGLvFU1i5pWJE8vkpruCjGCMHsdXwnD7JDcS+noSwM/a7zyNFDQ==} - engines: {node: '>=8'} + sucrase@3.35.0: + resolution: {integrity: sha512-8EbVDiu9iN/nESwxeSxDKe0dunta1GOlHufmSSXxMD2z2/tMZpDMpvXQGsc+ajGo8y2uYUmixaSRUc/QPoQ0GA==} + engines: {node: '>=16 || 14 >=14.17'} hasBin: true - dependencies: - '@jridgewell/gen-mapping': 0.3.2 - commander: 4.1.1 - glob: 7.1.6 - lines-and-columns: 1.2.4 - mz: 2.7.0 - pirates: 4.0.5 - ts-interface-checker: 0.1.13 - dev: false - /supports-color@5.5.0: - resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==} - engines: {node: '>=4'} - dependencies: - has-flag: 3.0.0 - - /supports-color@7.2.0: + supports-color@7.2.0: resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} engines: {node: '>=8'} - dependencies: - has-flag: 4.0.0 - /supports-preserve-symlinks-flag@1.0.0: + supports-preserve-symlinks-flag@1.0.0: resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} engines: {node: '>= 0.4'} - /table-layout@0.4.5: - resolution: {integrity: sha512-zTvf0mcggrGeTe/2jJ6ECkJHAQPIYEwDoqsiqBjI24mvRmQbInK5jq33fyypaCBxX08hMkfmdOqj6haT33EqWw==} - engines: {node: '>=4.0.0'} - dependencies: - array-back: 2.0.0 - deep-extend: 0.6.0 - lodash.padend: 4.6.1 - typical: 2.6.1 - wordwrapjs: 3.0.0 - dev: true + tabbable@6.2.0: + resolution: {integrity: sha512-Cat63mxsVJlzYvN51JmVXIgNoUokrIaT2zLclCXjRd8boZ0004U4KCs/sToJ75C6sdlByWxpYnb5Boif1VSFew==} - /tailwindcss@3.4.0: - resolution: {integrity: sha512-VigzymniH77knD1dryXbyxR+ePHihHociZbXnLZHUyzf2MMs2ZVqlUrZ3FvpXP8pno9JzmILt1sZPD19M3IxtA==} + tailwindcss@3.4.17: + resolution: {integrity: sha512-w33E2aCvSDP0tW9RZuNXadXlkHXqFzSkQew/aIa2i/Sj8fThxwovwlXHSPXTbAHwEIhBFXAedUhP2tueAKP8Og==} engines: {node: '>=14.0.0'} hasBin: true - dependencies: - '@alloc/quick-lru': 5.2.0 - arg: 5.0.2 - chokidar: 3.5.3 - didyoumean: 1.2.2 - dlv: 1.1.3 - fast-glob: 3.3.2 - glob-parent: 6.0.2 - is-glob: 4.0.3 - jiti: 1.21.0 - lilconfig: 2.1.0 - micromatch: 4.0.5 - normalize-path: 3.0.0 - object-hash: 3.0.0 - picocolors: 1.0.0 - postcss: 8.4.32 - postcss-import: 15.1.0(postcss@8.4.32) - postcss-js: 4.0.1(postcss@8.4.32) - postcss-load-config: 4.0.2(postcss@8.4.32) - postcss-nested: 6.0.1(postcss@8.4.32) - postcss-selector-parser: 6.0.11 - resolve: 1.22.8 - sucrase: 3.32.0 - transitivePeerDependencies: - - ts-node - dev: false - /tapable@2.2.1: + tailwindcss@4.0.0: + resolution: {integrity: sha512-ULRPI3A+e39T7pSaf1xoi58AqqJxVCLg8F/uM5A3FadUbnyDTgltVnXJvdkTjwCOGA6NazqHVcwPJC5h2vRYVQ==} + + tapable@2.2.1: resolution: {integrity: sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==} engines: {node: '>=6'} - dev: true - /tar-fs@2.1.1: - resolution: {integrity: sha512-V0r2Y9scmbDRLCNex/+hYzvp/zyYjvFbHPNgVTKfQvVrb6guiE/fxP+XblDNR011utopbkex2nM4dHNV6GDsng==} - dependencies: - chownr: 1.1.4 - mkdirp-classic: 0.5.3 - pump: 3.0.0 - tar-stream: 2.2.0 - dev: true + tar-fs@2.1.2: + resolution: {integrity: sha512-EsaAXwxmx8UB7FRKqeozqEPop69DXcmYwTQwXvyAPF352HJsPdkVhvTaDPYqfNgruveJIJy3TA2l+2zj8LJIJA==} - /tar-stream@2.2.0: + tar-stream@2.2.0: resolution: {integrity: sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==} engines: {node: '>=6'} - dependencies: - bl: 4.1.0 - end-of-stream: 1.4.4 - fs-constants: 1.0.0 - inherits: 2.0.4 - readable-stream: 3.6.0 - dev: true - /tar@6.1.11: - resolution: {integrity: sha512-an/KZQzQUkZCkuoAA64hM92X0Urb6VpRhAFllDzz44U2mcD5scmT3zBc4VgVpkugF580+DQn8eAFSyoQt0tznA==} - engines: {node: '>= 10'} - dependencies: - chownr: 2.0.0 - fs-minipass: 2.1.0 - minipass: 3.3.6 - minizlib: 2.1.2 - mkdirp: 1.0.4 - yallist: 4.0.0 - dev: true - - /tar@6.1.13: - resolution: {integrity: sha512-jdIBIN6LTIe2jqzay/2vtYLlBHa3JF42ot3h1dW8Q0PaAG4v8rm0cvpVePtau5C6OKXGGcgO9q2AMNSWxiLqKw==} + tar@6.2.1: + resolution: {integrity: sha512-DZ4yORTwrbTj/7MZYq2w+/ZFdI6OZ/f9SFHR+71gIVUZhOQPHzVCLpvRnPgyaMpfWxxk/4ONva3GQSyNIKRv6A==} engines: {node: '>=10'} - dependencies: - chownr: 2.0.0 - fs-minipass: 2.1.0 - minipass: 4.0.0 - minizlib: 2.1.2 - mkdirp: 1.0.4 - yallist: 4.0.0 - dev: true - /temp-dir@1.0.0: + temp-dir@1.0.0: resolution: {integrity: sha512-xZFXEGbG7SNC3itwBzI3RYjq/cEhBkx2hJuKGIUOcEULmkQExXiHat2z/qkISYsuR+IKumhEfKKbV5qXmhICFQ==} engines: {node: '>=4'} - dev: true - /temp-dir@2.0.0: + temp-dir@2.0.0: resolution: {integrity: sha512-aoBAniQmmwtcKp/7BzsH8Cxzv8OL736p7v1ihGb5e9DJ9kTwGWHrQrVB5+lfVDzfGrdRzXch+ig7LHaY1JTOrg==} engines: {node: '>=8'} - dev: true - /temp-path@1.0.0: - resolution: {integrity: sha512-TvmyH7kC6ZVTYkqCODjJIbgvu0FKiwQpZ4D1aknE7xpcDf/qEOB8KZEK5ef2pfbVoiBhNWs3yx4y+ESMtNYmlg==} - dev: true - - /tempy@0.6.0: + tempy@0.6.0: resolution: {integrity: sha512-G13vtMYPT/J8A4X2SjdtBTphZlrp1gKv6hZiOjw14RCWg6GbHuQBGtjlx75xLbYV/wEc0D7G5K4rxKP/cXk8Bw==} engines: {node: '>=10'} - dependencies: - is-stream: 2.0.1 - temp-dir: 2.0.0 - type-fest: 0.16.0 - unique-string: 2.0.0 - dev: true - /terser@5.26.0: - resolution: {integrity: sha512-dytTGoE2oHgbNV9nTzgBEPaqAWvcJNl66VZ0BkJqlvp71IjO8CxdBx/ykCNb47cLnCmCvRZ6ZR0tLkqvZCdVBQ==} + terser@5.37.0: + resolution: {integrity: sha512-B8wRRkmre4ERucLM/uXx4MOV5cbnOlVAqUst+1+iLKPI0dOgFO28f84ptoQt9HEI537PMzfYa/d+GEPKTRXmYA==} engines: {node: '>=10'} hasBin: true - dependencies: - '@jridgewell/source-map': 0.3.5 - acorn: 8.11.3 - commander: 2.20.3 - source-map-support: 0.5.21 - dev: true - /test-value@1.1.0: - resolution: {integrity: sha512-wrsbRo7qP+2Je8x8DsK8ovCGyxe3sYfQwOraIY/09A2gFXU9DYKiTF14W4ki/01AEh56kMzAmlj9CaHGDDUBJA==} - engines: {node: '>=0.10.0'} - dependencies: - array-back: 1.0.4 - typical: 2.6.1 - dev: true + test-exclude@7.0.1: + resolution: {integrity: sha512-pFYqmTw68LXVjeWJMST4+borgQP2AyMNbg1BpZh9LbyhUeNkeaPF9gzfPGUAnSMV3qPYdWUwDIjjCLiSDOl7vg==} + engines: {node: '>=18'} - /test-value@2.1.0: - resolution: {integrity: sha512-+1epbAxtKeXttkGFMTX9H42oqzOTufR1ceCF+GYA5aOmvaPq9wd4PUS8329fn2RRLGNeUkgRLnVpycjx8DsO2w==} - engines: {node: '>=0.10.0'} - dependencies: - array-back: 1.0.4 - typical: 2.6.1 - dev: true - - /test-value@3.0.0: - resolution: {integrity: sha512-sVACdAWcZkSU9x7AOmJo5TqE+GyNJknHaHsMrR6ZnhjVlVN9Yx6FjHrsKZ3BjIpPCT68zYesPWkakrNupwfOTQ==} - engines: {node: '>=4.0.0'} - dependencies: - array-back: 2.0.0 - typical: 2.6.1 - dev: true - - /text-encoding-shim@1.0.5: + text-encoding-shim@1.0.5: resolution: {integrity: sha512-H7yYW+jRn4yhu60ygZ2f/eMhXPITRt4QSUTKzLm+eCaDsdX8avmgWpmtmHAzesjBVUTAypz9odu5RKUjX5HNYA==} - dev: false - /text-extensions@1.9.0: + text-extensions@1.9.0: resolution: {integrity: sha512-wiBrwC1EhBelW12Zy26JeOUkQ5mRu+5o8rpsJk5+2t+Y5vE7e842qtZDQ2g1NpX/29HdyFeJ4nSIhI47ENSxlQ==} engines: {node: '>=0.10'} - dev: true - /text-table@0.2.0: - resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==} - - /thenify-all@1.6.0: + thenify-all@1.6.0: resolution: {integrity: sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==} engines: {node: '>=0.8'} - dependencies: - thenify: 3.3.1 - dev: false - /thenify@3.3.1: + thenify@3.3.1: resolution: {integrity: sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==} - dependencies: - any-promise: 1.3.0 - dev: false - /through2@2.0.5: + through2@2.0.5: resolution: {integrity: sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==} - dependencies: - readable-stream: 2.3.7 - xtend: 4.0.2 - dev: true - /through@2.3.8: + through@2.3.8: resolution: {integrity: sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==} - dev: true - /tinybench@2.5.1: - resolution: {integrity: sha512-65NKvSuAVDP/n4CqH+a9w2kTlLReS9vhsAP06MWx+/89nMinJyB2icyl58RIcqCmIggpojIGeuJGhjU1aGMBSg==} - dev: true + tinybench@2.9.0: + resolution: {integrity: sha512-0+DUvqWMValLmha6lr4kD8iAMK1HzV0/aKnCtWb9v9641TnP/MFb7Pc2bxoxQjTXAErryXVgUOfv2YqNllqGeg==} - /tinypool@0.8.1: - resolution: {integrity: sha512-zBTCK0cCgRROxvs9c0CGK838sPkeokNGdQVUUwHAbynHFlmyJYj825f/oRs528HaIJ97lo0pLIlDUzwN+IorWg==} + tinyexec@0.3.2: + resolution: {integrity: sha512-KQQR9yN7R5+OSwaK0XQoj22pwHoTlgYqmUscPYoknOoWCWfj/5/ABTMRi69FrKU5ffPVh5QcFikpWJI/P1ocHA==} + + tinyglobby@0.2.10: + resolution: {integrity: sha512-Zc+8eJlFMvgatPZTl6A9L/yht8QqdmUNtURHaKZLmKBE12hNPSrqNkUp2cs3M/UKmNVVAMFQYSjYIVHDjW5zew==} + engines: {node: '>=12.0.0'} + + tinypool@1.0.2: + resolution: {integrity: sha512-al6n+QEANGFOMf/dmUMsuS5/r9B06uwlyNjZZql/zv8J7ybHCgoihBNORZCY2mzUuAnomQa2JdhyHKzZxPCrFA==} + engines: {node: ^18.0.0 || >=20.0.0} + + tinyrainbow@2.0.0: + resolution: {integrity: sha512-op4nsTR47R6p0vMUUoYl/a+ljLFVtlfaXkLQmqfLR1qHma1h/ysYk4hEXZ880bf2CYgTskvTa/e196Vd5dDQXw==} engines: {node: '>=14.0.0'} - dev: true - /tinyspy@2.2.0: - resolution: {integrity: sha512-d2eda04AN/cPOR89F7Xv5bK/jrQEhmcLFe6HFldoeO9AJtps+fqEnh486vnT/8y4bw38pSyxDcTCAq+Ks2aJTg==} + tinyspy@3.0.2: + resolution: {integrity: sha512-n1cw8k1k0x4pgA2+9XrOkFydTerNcJ1zWCO5Nn9scWHTD+5tp8dghT2x1uduQePZTZgd3Tupf+x9BxJjeJi77Q==} engines: {node: '>=14.0.0'} - dev: true - /tmp@0.0.33: + tmp@0.0.33: resolution: {integrity: sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==} engines: {node: '>=0.6.0'} - dependencies: - os-tmpdir: 1.0.2 - dev: true - /tmp@0.2.1: - resolution: {integrity: sha512-76SUhtfqR2Ijn+xllcI5P1oyannHNHByD80W1q447gU3mp9G9PSpGdWmjUOHRDPiHYacIk66W7ubDTuPF3BEtQ==} - engines: {node: '>=8.17.0'} - dependencies: - rimraf: 3.0.2 - dev: true + tmp@0.2.3: + resolution: {integrity: sha512-nZD7m9iCPC5g0pYmcaxogYKggSfLsdxl8of3Q/oIbqCqLLIO9IAF0GWjX1z9NZRHPiXv8Wex4yDCaZsgEw0Y8w==} + engines: {node: '>=14.14'} - /to-fast-properties@2.0.0: + to-fast-properties@2.0.0: resolution: {integrity: sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==} engines: {node: '>=4'} - /to-regex-range@5.0.1: + to-regex-range@5.0.1: resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} engines: {node: '>=8.0'} - dependencies: - is-number: 7.0.0 - /totalist@3.0.0: - resolution: {integrity: sha512-eM+pCBxXO/njtF7vdFsHuqb+ElbxqtI4r5EAvk6grfAFyJ6IvWlSkfZ5T9ozC6xWw3Fj1fGoSmrl0gUs46JVIw==} + totalist@3.0.1: + resolution: {integrity: sha512-sf4i37nQ2LBx4m3wB74y+ubopq6W/dIzXg0FDGjsYnZHVa1Da8FH853wlL2gtUhg+xJXjfk3kUZS3BRoQeoQBQ==} engines: {node: '>=6'} - dev: true - /tr46@0.0.3: + tr46@0.0.3: resolution: {integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==} - /tr46@1.0.1: + tr46@1.0.1: resolution: {integrity: sha512-dTpowEjclQ7Kgx5SdBkqRzVhERQXov8/l9Ft9dVM9fmg0W0KQSVaXX9T4i6twCPNtYiZM53lpSSUAwJbFPOHxA==} - dependencies: - punycode: 2.3.1 - dev: true - /trim-lines@3.0.1: + tree-sitter-haskell@0.23.1: + resolution: {integrity: sha512-qG4CYhejveu9DLMLEGBz/n9/TTeGSFLC6wniwOgG6m8/v7Dng8qR0ob0EVG7+XH+9WiOxohpGA23EhceWuxY4w==} + peerDependencies: + tree-sitter: ^0.21.1 + peerDependenciesMeta: + tree-sitter: + optional: true + + tree-sitter@0.21.1: + resolution: {integrity: sha512-7dxoA6kYvtgWw80265MyqJlkRl4yawIjO7S5MigytjELkX43fV2WsAXzsNfO7sBpPPCF5Gp0+XzHk0DwLCq3xQ==} + + treeverse@3.0.0: + resolution: {integrity: sha512-gcANaAnd2QDZFmHFEOF4k7uc1J/6a6z3DJMd/QwEyxLoKGiptJRwid582r7QIsFlFMIZ3SnxfS52S4hm2DHkuQ==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + + trim-lines@3.0.1: resolution: {integrity: sha512-kRj8B+YHZCc9kQYdWfJB2/oUl9rA99qbowYYBtr4ui4mZyAQ2JpvVBd/6U2YloATfqBhBTSMhTpgBHtU0Mf3Rg==} - /trim-newlines@3.0.1: + trim-newlines@3.0.1: resolution: {integrity: sha512-c1PTsA3tYrIsLGkJkzHF+w9F2EyxfXGo4UyJc4pFL++FMjnq0HJS69T3M7d//gKrFKwy429bouPescbjecU+Zw==} engines: {node: '>=8'} - dev: true - /trough@2.1.0: - resolution: {integrity: sha512-AqTiAOLcj85xS7vQ8QkAV41hPDIJ71XJB4RCUrzo/1GM2CQwhkJGaf9Hgr7BOugMRpgGUrqRg/DrBDl4H40+8g==} + trough@2.2.0: + resolution: {integrity: sha512-tmMpK00BjZiUyVyvrBK7knerNgmgvcV/KLVyuma/SC+TQN167GrMRciANTz09+k3zW8L8t60jWO1GpfkZdjTaw==} - /ts-interface-checker@0.1.13: + ts-api-utils@1.4.3: + resolution: {integrity: sha512-i3eMG77UTMD0hZhgRS562pv83RC6ukSAC2GMNWc+9dieh/+jDM5u5YG+NHX6VNDRHQcHwmsTHctP9LhbC3WxVw==} + engines: {node: '>=16'} + peerDependencies: + typescript: '>=4.2.0' + + ts-interface-checker@0.1.13: resolution: {integrity: sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==} - dev: false - /tsconfck@3.0.0(typescript@5.3.3): - resolution: {integrity: sha512-w3wnsIrJNi7avf4Zb0VjOoodoO0woEqGgZGQm+LHH9przdUI+XDKsWAXwxHA1DaRTjeuZNcregSzr7RaA8zG9A==} + tsconfck@3.1.4: + resolution: {integrity: sha512-kdqWFGVJqe+KGYvlSO9NIaWn9jT1Ny4oKVzAJsKii5eoE9snzTJzL4+MMVOMn+fikWGFmKEylcXL710V/kIPJQ==} engines: {node: ^18 || >=20} hasBin: true peerDependencies: @@ -13416,613 +7138,349 @@ packages: peerDependenciesMeta: typescript: optional: true - dependencies: - typescript: 5.3.3 - /tsconfig-paths@3.15.0: + tsconfig-paths@3.15.0: resolution: {integrity: sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg==} - dependencies: - '@types/json5': 0.0.29 - json5: 1.0.2 - minimist: 1.2.7 - strip-bom: 3.0.0 - dev: true - /tsconfig-paths@4.2.0: + tsconfig-paths@4.2.0: resolution: {integrity: sha512-NoZ4roiN7LnbKn9QqE1amc9DJfzvZXxF4xDavcOWt1BPkdx+m+0gJuPM+S0vCe7zTJMYUP0R8pO2XMr+Y8oLIg==} engines: {node: '>=6'} - dependencies: - json5: 2.2.3 - minimist: 1.2.7 - strip-bom: 3.0.0 - dev: true - /tslib@1.14.1: - resolution: {integrity: sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==} - dev: true + tslib@2.8.1: + resolution: {integrity: sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==} - /tslib@2.5.0: - resolution: {integrity: sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg==} - - /tslib@2.6.2: - resolution: {integrity: sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==} - requiresBuild: true - - /tsutils@3.21.0(typescript@5.3.3): - resolution: {integrity: sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==} - engines: {node: '>= 6'} - peerDependencies: - typescript: '>=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta' - dependencies: - tslib: 1.14.1 - typescript: 5.3.3 - dev: true - - /tuf-js@1.1.4: - resolution: {integrity: sha512-Lw2JRM3HTYhEtQJM2Th3aNCPbnXirtWMl065BawwmM2pX6XStH/ZO9e8T2hh0zk/HUa+1i6j+Lv6eDitKTau6A==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - dependencies: - '@tufjs/models': 1.0.3 - make-fetch-happen: 11.1.1 - transitivePeerDependencies: - - bluebird - - supports-color - dev: true - - /tuf-js@2.1.0: - resolution: {integrity: sha512-eD7YPPjVlMzdggrOeE8zwoegUaG/rt6Bt3jwoQPunRiNVzgcCE009UDFJKJjG+Gk9wFu6W/Vi+P5d/5QpdD9jA==} + tuf-js@2.2.1: + resolution: {integrity: sha512-GwIJau9XaA8nLVbUXsN3IlFi7WmQ48gBUrl3FTkkL/XLu/POhBzfmX9hd33FNMX1qAsfl6ozO1iMmW9NC8YniA==} engines: {node: ^16.14.0 || >=18.0.0} - dependencies: - '@tufjs/models': 2.0.0 - debug: 4.3.4 - make-fetch-happen: 13.0.0 - transitivePeerDependencies: - - supports-color - dev: true - /tunnel-agent@0.6.0: + tunnel-agent@0.6.0: resolution: {integrity: sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==} - dependencies: - safe-buffer: 5.2.1 - dev: true - /type-check@0.4.0: + type-check@0.4.0: resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} engines: {node: '>= 0.8.0'} - dependencies: - prelude-ls: 1.2.1 - /type-detect@4.0.8: - resolution: {integrity: sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==} - engines: {node: '>=4'} - dev: true - - /type-fest@0.16.0: + type-fest@0.16.0: resolution: {integrity: sha512-eaBzG6MxNzEn9kiwvtre90cXaNLkmadMWa1zQMs3XORCXNbsH/OewwbxC5ia9dCxIxnTAsSxXJaa/p5y8DlvJg==} engines: {node: '>=10'} - dev: true - /type-fest@0.18.1: + type-fest@0.18.1: resolution: {integrity: sha512-OIAYXk8+ISY+qTOwkHtKqzAuxchoMiD9Udx+FSGQDuiRR+PJKJHc2NJAXlbhkGwTt/4/nKZxELY1w3ReWOL8mw==} engines: {node: '>=10'} - dev: true - /type-fest@0.20.2: - resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==} - engines: {node: '>=10'} - - /type-fest@0.21.3: + type-fest@0.21.3: resolution: {integrity: sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==} engines: {node: '>=10'} - dev: true - /type-fest@0.4.1: + type-fest@0.4.1: resolution: {integrity: sha512-IwzA/LSfD2vC1/YDYMv/zHP4rDF1usCwllsDpbolT3D4fUepIO7f9K70jjmUewU/LmGUKJcwcVtDCpnKk4BPMw==} engines: {node: '>=6'} - dev: true - /type-fest@0.6.0: + type-fest@0.6.0: resolution: {integrity: sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==} engines: {node: '>=8'} - dev: true - /type-fest@0.8.1: + type-fest@0.8.1: resolution: {integrity: sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==} engines: {node: '>=8'} - dev: true - /type-fest@2.19.0: - resolution: {integrity: sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==} - engines: {node: '>=12.20'} + type-fest@4.33.0: + resolution: {integrity: sha512-s6zVrxuyKbbAsSAD5ZPTB77q4YIdRctkTbJ2/Dqlinwz+8ooH2gd+YA7VA6Pa93KML9GockVvoxjZ2vHP+mu8g==} + engines: {node: '>=16'} - /typed-array-buffer@1.0.0: - resolution: {integrity: sha512-Y8KTSIglk9OZEr8zywiIHG/kmQ7KWyjseXs1CbSo8vC42w7hg2HgYTxSWwP0+is7bWDc1H+Fo026CpHFwm8tkw==} + typed-array-buffer@1.0.3: + resolution: {integrity: sha512-nAYYwfY3qnzX30IkA6AQZjVbtK6duGontcQm1WSG1MD94YLqK0515GNApXkoxKOWMusVssAHWLh9SeaoefYFGw==} engines: {node: '>= 0.4'} - dependencies: - call-bind: 1.0.5 - get-intrinsic: 1.2.2 - is-typed-array: 1.1.12 - dev: true - /typed-array-byte-length@1.0.0: - resolution: {integrity: sha512-Or/+kvLxNpeQ9DtSydonMxCx+9ZXOswtwJn17SNLvhptaXYDJvkFFP5zbfU/uLmvnBJlI4yrnXRxpdWH/M5tNA==} + typed-array-byte-length@1.0.3: + resolution: {integrity: sha512-BaXgOuIxz8n8pIq3e7Atg/7s+DpiYrxn4vdot3w9KbnBhcRQq6o3xemQdIfynqSeXeDrF32x+WvfzmOjPiY9lg==} engines: {node: '>= 0.4'} - dependencies: - call-bind: 1.0.5 - for-each: 0.3.3 - has-proto: 1.0.1 - is-typed-array: 1.1.12 - dev: true - /typed-array-byte-offset@1.0.0: - resolution: {integrity: sha512-RD97prjEt9EL8YgAgpOkf3O4IF9lhJFr9g0htQkm0rchFp/Vx7LW5Q8fSXXub7BXAODyUQohRMyOc3faCPd0hg==} + typed-array-byte-offset@1.0.4: + resolution: {integrity: sha512-bTlAFB/FBYMcuX81gbL4OcpH5PmlFHqlCCpAl8AlEzMz5k53oNDvN8p1PNOWLEmI2x4orp3raOFB51tv9X+MFQ==} engines: {node: '>= 0.4'} - dependencies: - available-typed-arrays: 1.0.5 - call-bind: 1.0.5 - for-each: 0.3.3 - has-proto: 1.0.1 - is-typed-array: 1.1.12 - dev: true - /typed-array-length@1.0.4: - resolution: {integrity: sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng==} - dependencies: - call-bind: 1.0.5 - for-each: 0.3.3 - is-typed-array: 1.1.12 - dev: true + typed-array-length@1.0.7: + resolution: {integrity: sha512-3KS2b+kL7fsuk/eJZ7EQdnEmQoaho/r6KUef7hxvltNA5DR8NAUM+8wJMbJyZ4G9/7i3v5zPBIMN5aybAh2/Jg==} + engines: {node: '>= 0.4'} - /typedarray@0.0.6: + typedarray@0.0.6: resolution: {integrity: sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==} - dev: true - /typescript@5.3.3: - resolution: {integrity: sha512-pXWcraxM0uxAS+tN0AG/BF2TyqmHO014Z070UsJ+pFvYuRSq8KH8DmWpnbXe0pEPDHXZV3FcAbJkijJ5oNEnWw==} + typescript@5.7.3: + resolution: {integrity: sha512-84MVSjMEHP+FQRPy3pX9sTVV/INIex71s9TL2Gm5FG/WG1SqXeKyZ0k7/blY/4FdOzI12CBy1vGc4og/eus0fw==} engines: {node: '>=14.17'} hasBin: true - /typical@2.6.1: - resolution: {integrity: sha512-ofhi8kjIje6npGozTip9Fr8iecmYfEbS06i0JnIg+rh51KakryWF4+jX8lLKZVhy6N+ID45WYSFCxPOdTWCzNg==} - dev: true + uc.micro@2.1.0: + resolution: {integrity: sha512-ARDJmphmdvUk6Glw7y9DQ2bFkKBHwQHLi2lsaH6PPmz/Ka9sFOBsBluozhDltWmnv9u/cF6Rt87znRTPV+yp/A==} - /typical@4.0.0: - resolution: {integrity: sha512-VAH4IvQ7BDFYglMd7BPRDfLgxZZX4O4TFcRDA6EN5X7erNJJq+McIEp8np9aVtxrCJ6qx4GTYVfOWNjcqwZgRw==} - engines: {node: '>=8'} - dev: true + ufo@1.5.4: + resolution: {integrity: sha512-UsUk3byDzKd04EyoZ7U4DOlxQaD14JUKQl6/P7wiX4FNvUfm3XL246n9W5AmqwW5RSFJ27NAuM0iLscAOYUiGQ==} - /typical@6.0.1: - resolution: {integrity: sha512-+g3NEp7fJLe9DPa1TArHm9QAA7YciZmWnfAqEaFrBihQ7epOv9i99rjtgb6Iz0wh3WuQDjsCTDfgRoGnmHN81A==} - engines: {node: '>=10'} - dev: true + uglify-js@2.3.6: + resolution: {integrity: sha512-T2LWWydxf5+Btpb0S/Gg/yKFmYjnX9jtQ4mdN9YRq73BhN21EhU0Dvw3wYDLqd3TooGUJlCKf3Gfyjjy/RTcWA==} + engines: {node: '>=0.4.0'} + hasBin: true - /uc.micro@1.0.6: - resolution: {integrity: sha512-8Y75pvTYkLJW2hWQHXxoqRgV7qb9B+9vFEtidML+7koHUFapnVJAZ6cKs+Qjz5Aw3aZWHMC6u0wJE3At+nSGwA==} - dev: true - - /ufo@1.1.2: - resolution: {integrity: sha512-TrY6DsjTQQgyS3E3dBaOXf0TpPD8u9FVrVYmKVegJuFw51n/YB9XPt+U6ydzFG5ZIN7+DIjPbNmXoBj9esYhgQ==} - dev: true - - /ufo@1.3.2: - resolution: {integrity: sha512-o+ORpgGwaYQXgqGDwd+hkS4PuZ3QnmqMMxRuajK/a38L6fTpcE5GPIfrf+L/KemFzfUpeUQc1rRS1iDBozvnFA==} - dev: true - - /uglify-js@3.17.4: - resolution: {integrity: sha512-T9q82TJI9e/C1TAxYvfb16xO120tMVFZrGA3f9/P4424DNu6ypK103y0GPFVa17yotwSyZW5iYXgjYHkGrJW/g==} + uglify-js@3.19.3: + resolution: {integrity: sha512-v3Xu+yuwBXisp6QYTcH4UbH+xYJXqnq2m/LtQVWKWzYc1iehYnLixoQDN9FH6/j9/oybfd6W9Ghwkl8+UMKTKQ==} engines: {node: '>=0.8.0'} hasBin: true - requiresBuild: true - dev: true - optional: true - /ultrahtml@1.5.2: - resolution: {integrity: sha512-qh4mBffhlkiXwDAOxvSGxhL0QEQsTbnP9BozOK3OYPEGvPvdWzvAUaXNtUSMdNsKDtuyjEbyVUPFZ52SSLhLqw==} - dev: false + ultrahtml@1.5.3: + resolution: {integrity: sha512-GykOvZwgDWZlTQMtp5jrD4BVL+gNn2NVlVafjcFUJ7taY20tqYdwdoWBFy6GBJsNTZe1GkGPkSl5knQAjtgceg==} - /unbox-primitive@1.0.2: - resolution: {integrity: sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==} - dependencies: - call-bind: 1.0.5 - has-bigints: 1.0.2 - has-symbols: 1.0.3 - which-boxed-primitive: 1.0.2 - dev: true + unbox-primitive@1.1.0: + resolution: {integrity: sha512-nWJ91DjeOkej/TA8pXQ3myruKpKEYgqvpw9lz4OPHj/NWFNluYrjbz9j01CJ8yKQd2g4jFoOkINCTW2I5LEEyw==} + engines: {node: '>= 0.4'} - /underscore@1.13.6: - resolution: {integrity: sha512-+A5Sja4HP1M08MaXya7p5LvjuM7K6q/2EaC0+iovj/wOcMsTzMvDFbasi/oSapiwOlt252IqsKqPjCl7huKS0A==} - dev: true + uncrypto@0.1.3: + resolution: {integrity: sha512-Ql87qFHB3s/De2ClA9e0gsnS6zXG27SkTiSJwjCc9MebbfapQfuPzumMIUMi38ezPZVNFcHI9sUIepeQfw8J8Q==} - /undici-types@5.26.5: - resolution: {integrity: sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==} + underscore@1.13.7: + resolution: {integrity: sha512-GMXzWtsc57XAtguZgaQViUOzs0KTkk8ojr3/xAxXLITqf/3EMwxC0inyETfDFjH/Krbhuep0HNbbjI9i/q3F3g==} - /unherit@3.0.1: - resolution: {integrity: sha512-akOOQ/Yln8a2sgcLj4U0Jmx0R5jpIg2IUyRrWOzmEbjBtGzBdHtSeFKgoEcoH4KYIG/Pb8GQ/BwtYm0GCq1Sqg==} + underscore@1.5.2: + resolution: {integrity: sha512-yejOFsRnTJs0N9CK5Apzf6maDO2djxGoLLrlZlvGs2o9ZQuhIhDL18rtFyy4FBIbOkzA6+4hDgXbgz5EvDQCXQ==} - /unicode-canonical-property-names-ecmascript@2.0.0: - resolution: {integrity: sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==} + undici-types@6.20.0: + resolution: {integrity: sha512-Ny6QZ2Nju20vw1SRHe3d9jVu6gJ+4e3+MMpqu7pqE5HT6WsTSlce++GQmK5UXS8mzV8DSYHrQH+Xrf2jVcuKNg==} + + unenv@1.10.0: + resolution: {integrity: sha512-wY5bskBQFL9n3Eca5XnhH6KbUo/tfvkwm9OpcdCvLaeA7piBNbavbOKJySEwQ1V0RH6HvNlSAFRTpvTqgKRQXQ==} + + unicode-canonical-property-names-ecmascript@2.0.1: + resolution: {integrity: sha512-dA8WbNeb2a6oQzAQ55YlT5vQAWGV9WXOsi3SskE3bcCdM0P4SDd+24zS/OCacdRq5BkdsRj9q3Pg6YyQoxIGqg==} engines: {node: '>=4'} - dev: true - /unicode-match-property-ecmascript@2.0.0: + unicode-match-property-ecmascript@2.0.0: resolution: {integrity: sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==} engines: {node: '>=4'} - dependencies: - unicode-canonical-property-names-ecmascript: 2.0.0 - unicode-property-aliases-ecmascript: 2.1.0 - dev: true - /unicode-match-property-value-ecmascript@2.1.0: - resolution: {integrity: sha512-qxkjQt6qjg/mYscYMC0XKRn3Rh0wFPlfxB0xkt9CfyTvpX1Ra0+rAmdX2QyAobptSEvuy4RtpPRui6XkV+8wjA==} + unicode-match-property-value-ecmascript@2.2.0: + resolution: {integrity: sha512-4IehN3V/+kkr5YeSSDDQG8QLqO26XpL2XP3GQtqwlT/QYSECAwFztxVHjlbh0+gjJ3XmNLS0zDsbgs9jWKExLg==} engines: {node: '>=4'} - dev: true - /unicode-property-aliases-ecmascript@2.1.0: + unicode-property-aliases-ecmascript@2.1.0: resolution: {integrity: sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w==} engines: {node: '>=4'} - dev: true - /unified@10.1.2: - resolution: {integrity: sha512-pUSWAi/RAnVy1Pif2kAoeWNBa3JVrx0MId2LASj8G+7AiHWoKZNTomq6LG326T68U7/e263X6fTdcXIy7XnF7Q==} - dependencies: - '@types/unist': 2.0.6 - bail: 2.0.2 - extend: 3.0.2 - is-buffer: 2.0.5 - is-plain-obj: 4.1.0 - trough: 2.1.0 - vfile: 5.3.6 + unified@11.0.5: + resolution: {integrity: sha512-xKvGhPWw3k84Qjh8bI3ZeJjqnyadK+GEFtazSfZv/rKeTkTjOJho6mFqh2SM96iIcZokxiOpg78GazTSg8+KHA==} - /unified@11.0.4: - resolution: {integrity: sha512-apMPnyLjAX+ty4OrNap7yumyVAMlKx5IWU2wlzzUdYJO9A8f1p9m/gywF/GM2ZDFcjQPrx59Mc90KwmxsoklxQ==} - dependencies: - '@types/unist': 3.0.1 - bail: 2.0.2 - devlop: 1.1.0 - extend: 3.0.2 - is-plain-obj: 4.1.0 - trough: 2.1.0 - vfile: 6.0.1 - - /unique-filename@3.0.0: + unique-filename@3.0.0: resolution: {integrity: sha512-afXhuC55wkAmZ0P18QsVE6kp8JaxrEokN2HGIoIVv2ijHQd419H0+6EigAFcIzXeMIkcIkNBpB3L/DXB3cTS/g==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - dependencies: - unique-slug: 4.0.0 - dev: true - /unique-slug@4.0.0: + unique-slug@4.0.0: resolution: {integrity: sha512-WrcA6AyEfqDX5bWige/4NQfPZMtASNVxdmWR76WESYQVAACSgWcR6e9i0mofqqBxYFtL4oAxPIptY73/0YE1DQ==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - dependencies: - imurmurhash: 0.1.4 - dev: true - /unique-string@2.0.0: + unique-string@2.0.0: resolution: {integrity: sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg==} engines: {node: '>=8'} - dependencies: - crypto-random-string: 2.0.0 - dev: true - /unist-util-find-after@5.0.0: + unist-util-find-after@5.0.0: resolution: {integrity: sha512-amQa0Ep2m6hE2g72AugUItjbuM8X8cGQnFoHk0pGfrFeT9GZhzN5SW8nRsiGKK7Aif4CrACPENkA6P/Lw6fHGQ==} - dependencies: - '@types/unist': 3.0.1 - unist-util-is: 6.0.0 - dev: false - /unist-util-is@3.0.0: + unist-util-is@3.0.0: resolution: {integrity: sha512-sVZZX3+kspVNmLWBPAB6r+7D9ZgAFPNWm66f7YNb420RlQSbn+n8rG8dGZSkrER7ZIXGQYNm5pqC3v3HopH24A==} - dev: false - /unist-util-is@5.2.0: - resolution: {integrity: sha512-Glt17jWwZeyqrFqOK0pF1Ded5U3yzJnFr8CG1GMjCWTp9zDo2p+cmD6pWbZU8AgM5WU3IzRv6+rBwhzsGh6hBQ==} - - /unist-util-is@6.0.0: + unist-util-is@6.0.0: resolution: {integrity: sha512-2qCTHimwdxLfz+YzdGfkqNlH0tLi9xjTnHddPmJwtIG9MGsdbutfTc4P+haPD7l7Cjxf/WZj+we5qfVPvvxfYw==} - dependencies: - '@types/unist': 3.0.1 - /unist-util-modify-children@3.1.1: - resolution: {integrity: sha512-yXi4Lm+TG5VG+qvokP6tpnk+r1EPwyYL04JWDxLvgvPV40jANh7nm3udk65OOWquvbMDe+PL9+LmkxDpTv/7BA==} - dependencies: - '@types/unist': 2.0.6 - array-iterate: 2.0.1 + unist-util-modify-children@4.0.0: + resolution: {integrity: sha512-+tdN5fGNddvsQdIzUF3Xx82CU9sMM+fA0dLgR9vOmT0oPT2jH+P1nd5lSqfCfXAw+93NhcXNY2qqvTUtE4cQkw==} - /unist-util-position-from-estree@2.0.0: + unist-util-position-from-estree@2.0.0: resolution: {integrity: sha512-KaFVRjoqLyF6YXCbVLNad/eS4+OfPQQn2yOd7zF/h5T/CSL2v8NpN6a5TPvtbXthAGw5nG+PuTtq+DdIZr+cRQ==} - dependencies: - '@types/unist': 3.0.1 - dev: false - /unist-util-position@5.0.0: + unist-util-position@5.0.0: resolution: {integrity: sha512-fucsC7HjXvkB5R3kTCO7kUjRdrS0BJt3M/FPxmHMBOm8JQi2BsHAHFsy27E0EolP8rp0NzXsJ+jNPyDWvOJZPA==} - dependencies: - '@types/unist': 3.0.1 - /unist-util-remove-position@5.0.0: + unist-util-remove-position@5.0.0: resolution: {integrity: sha512-Hp5Kh3wLxv0PHj9m2yZhhLt58KzPtEYKQQ4yxfYFEO7EvHwzyDYnduhHnY1mDxoqr7VUwVuHXk9RXKIiYS1N8Q==} - dependencies: - '@types/unist': 3.0.1 - unist-util-visit: 5.0.0 - dev: false - /unist-util-stringify-position@3.0.3: - resolution: {integrity: sha512-k5GzIBZ/QatR8N5X2y+drfpWG8IDBzdnVj6OInRNWm1oXrzydiaAT2OQiA8DPRRZyAKb9b6I2a6PxYklZD0gKg==} - dependencies: - '@types/unist': 2.0.6 - - /unist-util-stringify-position@4.0.0: + unist-util-stringify-position@4.0.0: resolution: {integrity: sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==} - dependencies: - '@types/unist': 3.0.1 - /unist-util-visit-children@2.0.2: - resolution: {integrity: sha512-+LWpMFqyUwLGpsQxpumsQ9o9DG2VGLFrpz+rpVXYIEdPy57GSy5HioC0g3bg/8WP9oCLlapQtklOzQ8uLS496Q==} - dependencies: - '@types/unist': 2.0.6 + unist-util-visit-children@3.0.0: + resolution: {integrity: sha512-RgmdTfSBOg04sdPcpTSD1jzoNBjt9a80/ZCzp5cI9n1qPzLZWF9YdvWGN2zmTumP1HWhXKdUWexjy/Wy/lJ7tA==} - /unist-util-visit-parents@2.1.2: + unist-util-visit-parents@2.1.2: resolution: {integrity: sha512-DyN5vD4NE3aSeB+PXYNKxzGsfocxp6asDc2XXE3b0ekO2BaRUpBicbbUygfSvYfUz1IkmjFR1YF7dPklraMZ2g==} - dependencies: - unist-util-is: 3.0.0 - dev: false - /unist-util-visit-parents@5.1.3: - resolution: {integrity: sha512-x6+y8g7wWMyQhL1iZfhIPhDAs7Xwbn9nRosDXl7qoPTSCy0yNxnKc+hWokFifWQIDGi154rdUqKvbCa4+1kLhg==} - dependencies: - '@types/unist': 2.0.6 - unist-util-is: 5.2.0 - - /unist-util-visit-parents@6.0.1: + unist-util-visit-parents@6.0.1: resolution: {integrity: sha512-L/PqWzfTP9lzzEa6CKs0k2nARxTdZduw3zyh8d2NVBnsyvHjSX4TWse388YrrQKbvI8w20fGjGlhgT96WwKykw==} - dependencies: - '@types/unist': 3.0.1 - unist-util-is: 6.0.0 - /unist-util-visit@1.4.1: + unist-util-visit@1.4.1: resolution: {integrity: sha512-AvGNk7Bb//EmJZyhtRUnNMEpId/AZ5Ph/KUpTI09WHQuDZHKovQ1oEv3mfmKpWKtoMzyMC4GLBm1Zy5k12fjIw==} - dependencies: - unist-util-visit-parents: 2.1.2 - dev: false - /unist-util-visit@4.1.2: - resolution: {integrity: sha512-MSd8OUGISqHdVvfY9TPhyK2VdUrPgxkUtWSuMHF6XAAFuL4LokseigBnZtPnJMu+FbynTkFNnFlyjxpVKujMRg==} - dependencies: - '@types/unist': 2.0.6 - unist-util-is: 5.2.0 - unist-util-visit-parents: 5.1.3 - - /unist-util-visit@5.0.0: + unist-util-visit@5.0.0: resolution: {integrity: sha512-MR04uvD+07cwl/yhVuVWAtw+3GOR/knlL55Nd/wAdblk27GCVt3lqpTivy/tkJcZoNPzTwS1Y+KMojlLDhoTzg==} - dependencies: - '@types/unist': 3.0.1 - unist-util-is: 6.0.0 - unist-util-visit-parents: 6.0.1 - /universal-user-agent@6.0.0: - resolution: {integrity: sha512-isyNax3wXoKaulPDZWHQqbmIx1k2tb9fb3GGDBRxCscfYV2Ch7WxPArBsFEG8s/safwXTT7H4QGhaIkTp9447w==} - dev: true + universal-user-agent@6.0.1: + resolution: {integrity: sha512-yCzhz6FN2wU1NiiQRogkTQszlQSlpWaw8SvVegAc+bDxbzHgh1vX8uIe8OYyMH6DwH+sdTJsgMl36+mSMdRJIQ==} - /universalify@2.0.0: - resolution: {integrity: sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==} + universalify@2.0.1: + resolution: {integrity: sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==} engines: {node: '>= 10.0.0'} - dev: true - /unmute-ios-audio@3.3.0: + unmute-ios-audio@3.3.0: resolution: {integrity: sha512-MmoCOrsS2gn3wLT2tT+hF56Q4V4kksIKn2LHrwAtX6umzQwQHDWSh1slMzH+0WuxTZ62s3w8/wsfIII1FQ7ACg==} - dev: false - /upath@1.2.0: + unstorage@1.14.4: + resolution: {integrity: sha512-1SYeamwuYeQJtJ/USE1x4l17LkmQBzg7deBJ+U9qOBoHo15d1cDxG4jM31zKRgF7pG0kirZy4wVMX6WL6Zoscg==} + peerDependencies: + '@azure/app-configuration': ^1.8.0 + '@azure/cosmos': ^4.2.0 + '@azure/data-tables': ^13.3.0 + '@azure/identity': ^4.5.0 + '@azure/keyvault-secrets': ^4.9.0 + '@azure/storage-blob': ^12.26.0 + '@capacitor/preferences': ^6.0.3 + '@deno/kv': '>=0.8.4' + '@netlify/blobs': ^6.5.0 || ^7.0.0 || ^8.1.0 + '@planetscale/database': ^1.19.0 + '@upstash/redis': ^1.34.3 + '@vercel/blob': '>=0.27.0' + '@vercel/kv': ^1.0.1 + aws4fetch: ^1.0.20 + db0: '>=0.2.1' + idb-keyval: ^6.2.1 + ioredis: ^5.4.2 + uploadthing: ^7.4.1 + peerDependenciesMeta: + '@azure/app-configuration': + optional: true + '@azure/cosmos': + optional: true + '@azure/data-tables': + optional: true + '@azure/identity': + optional: true + '@azure/keyvault-secrets': + optional: true + '@azure/storage-blob': + optional: true + '@capacitor/preferences': + optional: true + '@deno/kv': + optional: true + '@netlify/blobs': + optional: true + '@planetscale/database': + optional: true + '@upstash/redis': + optional: true + '@vercel/blob': + optional: true + '@vercel/kv': + optional: true + aws4fetch: + optional: true + db0: + optional: true + idb-keyval: + optional: true + ioredis: + optional: true + uploadthing: + optional: true + + upath@1.2.0: resolution: {integrity: sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==} engines: {node: '>=4'} - dev: true - /upath@2.0.1: + upath@2.0.1: resolution: {integrity: sha512-1uEe95xksV1O0CYKXo8vQvN1JEbtJp7lb7C5U9HMsIp6IVwntkH/oNUzyVNQSd4S1sYk2FpSSW44FqMc8qee5w==} engines: {node: '>=4'} - dev: true - /update-browserslist-db@1.0.13(browserslist@4.22.1): - resolution: {integrity: sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==} + update-browserslist-db@1.1.2: + resolution: {integrity: sha512-PPypAm5qvlD7XMZC3BujecnaOxwhrtoFR+Dqkk5Aa/6DssiH0ibKoketaj9w8LP7Bont1rYeoV5plxD7RTEPRg==} hasBin: true peerDependencies: browserslist: '>= 4.21.0' - dependencies: - browserslist: 4.22.1 - escalade: 3.1.1 - picocolors: 1.0.0 - dev: false - /update-browserslist-db@1.0.13(browserslist@4.22.2): - resolution: {integrity: sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==} - hasBin: true - peerDependencies: - browserslist: '>= 4.21.0' - dependencies: - browserslist: 4.22.2 - escalade: 3.1.1 - picocolors: 1.0.0 - - /uri-js@4.4.1: + uri-js@4.4.1: resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} - dependencies: - punycode: 2.3.0 - /util-deprecate@1.0.2: + util-deprecate@1.0.2: resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} - /uuid@9.0.1: - resolution: {integrity: sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==} + uuid@10.0.0: + resolution: {integrity: sha512-8XkAphELsDnEGrDxUOHB3RGvXz6TeuYSGEZBOjtTtPm2lwhGBjLgOzLHB63IUWfBpNucQjND6d3AOudO+H3RWQ==} hasBin: true - dev: true - /validate-npm-package-license@3.0.4: + validate-npm-package-license@3.0.4: resolution: {integrity: sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==} - dependencies: - spdx-correct: 3.1.1 - spdx-expression-parse: 3.0.1 - dev: true - /validate-npm-package-name@3.0.0: - resolution: {integrity: sha512-M6w37eVCMMouJ9V/sdPGnC5H4uDr73/+xdq0FBLO3TFFX1+7wiUY6Es328NN+y43tmY+doUdN9g9J21vqB7iLw==} - dependencies: - builtins: 1.0.3 - dev: true - - /validate-npm-package-name@5.0.0: - resolution: {integrity: sha512-YuKoXDAhBYxY7SfOKxHBDoSyENFeW5VvIIQp2TGQuit8gpK6MnWaQelBKxso72DoxTZfZdcP3W90LqpSkgPzLQ==} + validate-npm-package-name@5.0.1: + resolution: {integrity: sha512-OljLrQ9SQdOUqTaQxqL5dEfZWrXExyyWsozYlAWFawPVNuD83igl7uJD2RTkNMbniIYgt8l81eCJGIdQF7avLQ==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - dependencies: - builtins: 5.0.1 - dev: true - /vfile-location@5.0.2: - resolution: {integrity: sha512-NXPYyxyBSH7zB5U6+3uDdd6Nybz6o6/od9rk8bp9H8GR3L+cm/fC0uUTbqBmUTnMCUDslAGBOIKNfvvb+gGlDg==} - dependencies: - '@types/unist': 3.0.1 - vfile: 6.0.1 + vfile-location@5.0.3: + resolution: {integrity: sha512-5yXvWDEgqeiYiBe1lbxYF7UMAIm/IcopxMHrMQDq3nvKcjPKIhZklUKL+AE7J7uApI4kwe2snsK+eI6UTj9EHg==} - /vfile-message@3.1.3: - resolution: {integrity: sha512-0yaU+rj2gKAyEk12ffdSbBfjnnj+b1zqTBv3OQCTn8yEB02bsPizwdBPrLJjHnK+cU9EMMcUnNv938XcZIkmdA==} - dependencies: - '@types/unist': 2.0.6 - unist-util-stringify-position: 3.0.3 - - /vfile-message@4.0.2: + vfile-message@4.0.2: resolution: {integrity: sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==} - dependencies: - '@types/unist': 3.0.1 - unist-util-stringify-position: 4.0.0 - /vfile@5.3.6: - resolution: {integrity: sha512-ADBsmerdGBs2WYckrLBEmuETSPyTD4TuLxTrw0DvjirxW1ra4ZwkbzG8ndsv3Q57smvHxo677MHaQrY9yxH8cA==} - dependencies: - '@types/unist': 2.0.6 - is-buffer: 2.0.5 - unist-util-stringify-position: 3.0.3 - vfile-message: 3.1.3 + vfile@6.0.3: + resolution: {integrity: sha512-KzIbH/9tXat2u30jf+smMwFCsno4wHVdNmzFyL+T/L3UGqqk6JKfVqOFOZEpZSHADH1k40ab6NUIXZq422ov3Q==} - /vfile@6.0.1: - resolution: {integrity: sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==} - dependencies: - '@types/unist': 3.0.1 - unist-util-stringify-position: 4.0.0 - vfile-message: 4.0.2 - - /vinyl-sourcemaps-apply@0.2.1: + vinyl-sourcemaps-apply@0.2.1: resolution: {integrity: sha512-+oDh3KYZBoZC8hfocrbrxbLUeaYtQK7J5WU5Br9VqWqmCll3tFJqKp97GC9GmMsVIL0qnx2DgEDVxdo5EZ5sSw==} - dependencies: - source-map: 0.5.7 - dev: false - /vinyl@2.2.1: + vinyl@2.2.1: resolution: {integrity: sha512-LII3bXRFBZLlezoG5FfZVcXflZgWP/4dCwKtxd5ky9+LOtM4CS3bIRQsmR1KMnMW07jpE8fqR2lcxPZ+8sJIcw==} engines: {node: '>= 0.10'} - dependencies: - clone: 2.1.2 - clone-buffer: 1.0.0 - clone-stats: 1.0.0 - cloneable-readable: 1.1.3 - remove-trailing-separator: 1.1.0 - replace-ext: 1.0.1 - dev: false - /vite-node@1.1.0: - resolution: {integrity: sha512-jV48DDUxGLEBdHCQvxL1mEh7+naVy+nhUUUaPAZLd3FJgXuxQiewHcfeZebbJ6onDqNGkP4r3MhQ342PRlG81Q==} - engines: {node: ^18.0.0 || >=20.0.0} + vite-node@3.0.4: + resolution: {integrity: sha512-7JZKEzcYV2Nx3u6rlvN8qdo3QV7Fxyt6hx+CCKz9fbWxdX5IvUOmTWEAxMrWxaiSf7CKGLJQ5rFu8prb/jBjOA==} + engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0} hasBin: true - dependencies: - cac: 6.7.14 - debug: 4.3.4 - pathe: 1.1.1 - picocolors: 1.0.0 - vite: 5.2.2(@types/node@20.10.6) - transitivePeerDependencies: - - '@types/node' - - less - - lightningcss - - sass - - stylus - - sugarss - - supports-color - - terser - dev: true - /vite-plugin-pwa@0.17.4(vite@5.2.2)(workbox-build@7.0.0)(workbox-window@7.0.0): - resolution: {integrity: sha512-j9iiyinFOYyof4Zk3Q+DtmYyDVBDAi6PuMGNGq6uGI0pw7E+LNm9e+nQ2ep9obMP/kjdWwzilqUrlfVRj9OobA==} + vite-plugin-pwa@0.21.1: + resolution: {integrity: sha512-rkTbKFbd232WdiRJ9R3u+hZmf5SfQljX1b45NF6oLA6DSktEKpYllgTo1l2lkiZWMWV78pABJtFjNXfBef3/3Q==} engines: {node: '>=16.0.0'} peerDependencies: - vite: ^3.1.0 || ^4.0.0 || ^5.0.0 - workbox-build: ^7.0.0 - workbox-window: ^7.0.0 - dependencies: - debug: 4.3.4 - fast-glob: 3.3.2 - pretty-bytes: 6.1.1 - vite: 5.2.2(@types/node@20.10.6) - workbox-build: 7.0.0 - workbox-window: 7.0.0 - transitivePeerDependencies: - - supports-color - dev: true + '@vite-pwa/assets-generator': ^0.2.6 + vite: ^3.1.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 + workbox-build: ^7.3.0 + workbox-window: ^7.3.0 + peerDependenciesMeta: + '@vite-pwa/assets-generator': + optional: true - /vite@5.0.10: - resolution: {integrity: sha512-2P8J7WWgmc355HUMlFrwofacvr98DAjoE52BfdbwQtyLH06XKwaL/FMnmKM2crF0iX4MpmMKoDlNCB1ok7zHCw==} - engines: {node: ^18.0.0 || >=20.0.0} + vite@6.0.11: + resolution: {integrity: sha512-4VL9mQPKoHy4+FE0NnRE/kbY51TOfaknxAjt3fJbGJxhIpBZiqVzlZDEesWWsuREXHwNdAoOFZ9MkPEVXczHwg==} + engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0} hasBin: true peerDependencies: - '@types/node': ^18.0.0 || >=20.0.0 + '@types/node': ^18.0.0 || ^20.0.0 || >=22.0.0 + jiti: '>=1.21.0' less: '*' lightningcss: ^1.21.0 sass: '*' + sass-embedded: '*' stylus: '*' sugarss: '*' - terser: ^5.4.0 + terser: ^5.16.0 + tsx: ^4.8.1 + yaml: ^2.4.2 peerDependenciesMeta: '@types/node': optional: true + jiti: + optional: true less: optional: true lightningcss: optional: true sass: optional: true - stylus: - optional: true - sugarss: - optional: true - terser: - optional: true - dependencies: - esbuild: 0.19.5 - postcss: 8.4.32 - rollup: 4.9.2 - optionalDependencies: - fsevents: 2.3.3 - dev: true - - /vite@5.0.11: - resolution: {integrity: sha512-XBMnDjZcNAw/G1gEiskiM1v6yzM4GE5aMGvhWTlHAYYhxb7S3/V1s3m2LDHa8Vh6yIWYYB0iJwsEaS523c4oYA==} - 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: + sass-embedded: optional: true stylus: optional: true @@ -14030,73 +7488,36 @@ packages: optional: true terser: optional: true - dependencies: - esbuild: 0.19.11 - postcss: 8.4.32 - rollup: 4.9.2 - optionalDependencies: - fsevents: 2.3.3 - dev: true + tsx: + optional: true + yaml: + optional: true - /vite@5.2.2(@types/node@20.10.6): - resolution: {integrity: sha512-FWZbz0oSdLq5snUI0b6sULbz58iXFXdvkZfZWR/F0ZJuKTSPO7v72QPXt6KqYeMFb0yytNp6kZosxJ96Nr/wDQ==} - engines: {node: ^18.0.0 || >=20.0.0} - hasBin: true + vitefu@1.0.5: + resolution: {integrity: sha512-h4Vflt9gxODPFNGPwp4zAMZRpZR7eslzwH2c5hn5kNZ5rhnKyRJ50U+yGCdc2IRaBs8O4haIgLNGrV5CrpMsCA==} 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: - '@types/node': 20.10.6 - esbuild: 0.20.2 - postcss: 8.4.38 - rollup: 4.13.0 - optionalDependencies: - fsevents: 2.3.3 - - /vitefu@0.2.5(vite@5.2.2): - resolution: {integrity: sha512-SgHtMLoqaeeGnd2evZ849ZbACbnwQCIwRH57t18FxcXoZop0uQu0uzlIhJBlF/eWVzuce0sHeqPcDo+evVcg8Q==} - peerDependencies: - vite: ^3.0.0 || ^4.0.0 || ^5.0.0 + vite: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 peerDependenciesMeta: vite: optional: true - dependencies: - vite: 5.2.2(@types/node@20.10.6) - /vitest@1.1.0(@vitest/ui@1.1.0): - resolution: {integrity: sha512-oDFiCrw7dd3Jf06HoMtSRARivvyjHJaTxikFxuqJjO76U436PqlVw1uLn7a8OSPrhSfMGVaRakKpA2lePdw79A==} - engines: {node: ^18.0.0 || >=20.0.0} + vitest@3.0.4: + resolution: {integrity: sha512-6XG8oTKy2gnJIFTHP6LD7ExFeNLxiTkK3CfMvT7IfR8IN+BYICCf0lXUQmX7i7JoxUP8QmeP4mTnWXgflu4yjw==} + engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0} hasBin: true peerDependencies: '@edge-runtime/vm': '*' - '@types/node': ^18.0.0 || >=20.0.0 - '@vitest/browser': ^1.0.0 - '@vitest/ui': ^1.0.0 + '@types/debug': ^4.1.12 + '@types/node': ^18.0.0 || ^20.0.0 || >=22.0.0 + '@vitest/browser': 3.0.4 + '@vitest/ui': 3.0.4 happy-dom: '*' jsdom: '*' peerDependenciesMeta: '@edge-runtime/vm': optional: true + '@types/debug': + optional: true '@types/node': optional: true '@vitest/browser': @@ -14107,55 +7528,8434 @@ packages: optional: true jsdom: optional: true + + w3c-keyname@2.2.8: + resolution: {integrity: sha512-dpojBhNsCNN7T82Tm7k26A6G9ML3NkhDsnw9n/eoxSRlVBB4CEtIQ/KTCLI2Fwf3ataSXRhYFkQi3SlnFwPvPQ==} + + walk-up-path@3.0.1: + resolution: {integrity: sha512-9YlCL/ynK3CTlrSRrDxZvUauLzAswPCrsaCgilqFevUYpeEW0/3ScEjaa3kbW/T0ghhkEr7mv+fpjqn1Y1YuTA==} + + wav@1.0.2: + resolution: {integrity: sha512-viHtz3cDd/Tcr/HbNqzQCofKdF6kWUymH9LGDdskfWFoIy/HJ+RTihgjEcHfnsy1PO4e9B+y4HwgTwMrByquhg==} + + wcwidth@1.0.1: + resolution: {integrity: sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==} + + web-midi-api@2.3.5: + resolution: {integrity: sha512-gbLl0u0I9lVE3V7XeJ5GfG1XFoZFzTEJOyROLmfdA4KJYOSCWHTTYOp7/p7truo5XizTgj5DpRwGLuKrY7wwww==} + + web-namespaces@2.0.1: + resolution: {integrity: sha512-bKr1DkiNa2krS7qxNtdrtHAmzuYGFQLiQ13TsorsdT6ULTkPLKuu5+GsFpDlg6JFjUTwX2DyhMPG2be8uPrqsQ==} + + web-streams-polyfill@3.3.3: + resolution: {integrity: sha512-d2JWLCivmZYTSIoge9MsgFCZrt571BikcWGYkjC1khllbTeDlGqZ2D8vD8E/lJa8WGWbb7Plm8/XJYV7IJHZZw==} + engines: {node: '>= 8'} + + web-tree-sitter@0.20.8: + resolution: {integrity: sha512-weOVgZ3aAARgdnb220GqYuh7+rZU0Ka9k9yfKtGAzEYMa6GgiCzW9JjQRJyCJakvibQW+dfjJdihjInKuuCAUQ==} + + web-tree-sitter@0.24.7: + resolution: {integrity: sha512-CdC/TqVFbXqR+C51v38hv6wOPatKEUGxa39scAeFSm98wIhZxAYonhRQPSMmfZ2w7JDI0zQDdzdmgtNk06/krQ==} + + webidl-conversions@3.0.1: + resolution: {integrity: sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==} + + webidl-conversions@4.0.2: + resolution: {integrity: sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==} + + webmidi@3.1.12: + resolution: {integrity: sha512-X1lACggXm2BxuAPdx5wleh8S2kygduHbtR2ti5sGhivLkX6Muv/sLAYmPuIaNLOUddyxr71+3tsq8m5dKXoT4A==} + engines: {node: '>=8.5'} + + whatwg-url@5.0.0: + resolution: {integrity: sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==} + + whatwg-url@7.1.0: + resolution: {integrity: sha512-WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg==} + + which-boxed-primitive@1.1.1: + resolution: {integrity: sha512-TbX3mj8n0odCBFVlY8AxkqcHASw3L60jIuF8jFP78az3C2YhmGvqbHBpAjTRH2/xqYunrJ9g1jSyjCjpoWzIAA==} + engines: {node: '>= 0.4'} + + which-builtin-type@1.2.1: + resolution: {integrity: sha512-6iBczoX+kDQ7a3+YJBnh3T+KZRxM/iYNPXicqk66/Qfm1b93iu+yOImkg0zHbj5LNOcNv1TEADiZ0xa34B4q6Q==} + engines: {node: '>= 0.4'} + + which-collection@1.0.2: + resolution: {integrity: sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw==} + engines: {node: '>= 0.4'} + + which-module@2.0.1: + resolution: {integrity: sha512-iBdZ57RDvnOR9AGBhML2vFZf7h8vmBjhoaZqODJBFWHVtKkDmKuHai3cx5PgVMrX5YDNp27AofYbAwctSS+vhQ==} + + which-pm-runs@1.1.0: + resolution: {integrity: sha512-n1brCuqClxfFfq/Rb0ICg9giSZqCS+pLtccdag6C2HyufBrh3fBOiy9nb6ggRMvWOVH5GrdJskj5iGTZNxd7SA==} + engines: {node: '>=4'} + + which-pm@3.0.0: + resolution: {integrity: sha512-ysVYmw6+ZBhx3+ZkcPwRuJi38ZOTLJJ33PSHaitLxSKUMsh0LkKd0nC69zZCwt5D+AYUcMK2hhw4yWny20vSGg==} + engines: {node: '>=18.12'} + + which-typed-array@1.1.18: + resolution: {integrity: sha512-qEcY+KJYlWyLH9vNbsr6/5j59AXk5ni5aakf8ldzBvGde6Iz4sxZGkJyWSAueTG7QhOvNRYb1lDdFmL5Td0QKA==} + engines: {node: '>= 0.4'} + + which@2.0.2: + resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} + engines: {node: '>= 8'} + hasBin: true + + which@4.0.0: + resolution: {integrity: sha512-GlaYyEb07DPxYCKhKzplCWBJtvxZcZMrL+4UkrTSJHHPyZU4mYYTv3qaOe77H7EODLSSopAUFAc6W8U4yqvscg==} + engines: {node: ^16.13.0 || >=18.0.0} + hasBin: true + + why-is-node-running@2.3.0: + resolution: {integrity: sha512-hUrmaWBdVDcxvYqnyh09zunKzROWjbZTiNy8dBEjkS7ehEDQibXJ7XvlmtbwuTclUiIyN+CyXQD4Vmko8fNm8w==} + engines: {node: '>=8'} + hasBin: true + + wide-align@1.1.5: + resolution: {integrity: sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==} + + widest-line@5.0.0: + resolution: {integrity: sha512-c9bZp7b5YtRj2wOe6dlj32MK+Bx/M/d+9VB2SHM1OtsUHR0aV0tdP6DWh/iMt0kWi1t5g1Iudu6hQRNd1A4PVA==} + engines: {node: '>=18'} + + word-wrap@1.2.5: + resolution: {integrity: sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==} + engines: {node: '>=0.10.0'} + + wordwrap@0.0.3: + resolution: {integrity: sha512-1tMA907+V4QmxV7dbRvb4/8MaRALK6q9Abid3ndMYnbyo8piisCmeONVqVSXqQA3KaP4SLt5b7ud6E2sqP8TFw==} + engines: {node: '>=0.4.0'} + + wordwrap@1.0.0: + resolution: {integrity: sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==} + + workbox-background-sync@7.0.0: + resolution: {integrity: sha512-S+m1+84gjdueM+jIKZ+I0Lx0BDHkk5Nu6a3kTVxP4fdj3gKouRNmhO8H290ybnJTOPfBDtTMXSQA/QLTvr7PeA==} + + workbox-broadcast-update@7.0.0: + resolution: {integrity: sha512-oUuh4jzZrLySOo0tC0WoKiSg90bVAcnE98uW7F8GFiSOXnhogfNDGZelPJa+6KpGBO5+Qelv04Hqx2UD+BJqNQ==} + + workbox-build@7.0.0: + resolution: {integrity: sha512-CttE7WCYW9sZC+nUYhQg3WzzGPr4IHmrPnjKiu3AMXsiNQKx+l4hHl63WTrnicLmKEKHScWDH8xsGBdrYgtBzg==} + engines: {node: '>=16.0.0'} + + workbox-cacheable-response@7.0.0: + resolution: {integrity: sha512-0lrtyGHn/LH8kKAJVOQfSu3/80WDc9Ma8ng0p2i/5HuUndGttH+mGMSvOskjOdFImLs2XZIimErp7tSOPmu/6g==} + + workbox-core@7.0.0: + resolution: {integrity: sha512-81JkAAZtfVP8darBpfRTovHg8DGAVrKFgHpOArZbdFd78VqHr5Iw65f2guwjE2NlCFbPFDoez3D3/6ZvhI/rwQ==} + + workbox-core@7.3.0: + resolution: {integrity: sha512-Z+mYrErfh4t3zi7NVTvOuACB0A/jA3bgxUN3PwtAVHvfEsZxV9Iju580VEETug3zYJRc0Dmii/aixI/Uxj8fmw==} + + workbox-expiration@7.0.0: + resolution: {integrity: sha512-MLK+fogW+pC3IWU9SFE+FRStvDVutwJMR5if1g7oBJx3qwmO69BNoJQVaMXq41R0gg3MzxVfwOGKx3i9P6sOLQ==} + + workbox-google-analytics@7.0.0: + resolution: {integrity: sha512-MEYM1JTn/qiC3DbpvP2BVhyIH+dV/5BjHk756u9VbwuAhu0QHyKscTnisQuz21lfRpOwiS9z4XdqeVAKol0bzg==} + + workbox-navigation-preload@7.0.0: + resolution: {integrity: sha512-juWCSrxo/fiMz3RsvDspeSLGmbgC0U9tKqcUPZBCf35s64wlaLXyn2KdHHXVQrb2cqF7I0Hc9siQalainmnXJA==} + + workbox-precaching@7.0.0: + resolution: {integrity: sha512-EC0vol623LJqTJo1mkhD9DZmMP604vHqni3EohhQVwhJlTgyKyOkMrZNy5/QHfOby+39xqC01gv4LjOm4HSfnA==} + + workbox-range-requests@7.0.0: + resolution: {integrity: sha512-SxAzoVl9j/zRU9OT5+IQs7pbJBOUOlriB8Gn9YMvi38BNZRbM+RvkujHMo8FOe9IWrqqwYgDFBfv6sk76I1yaQ==} + + workbox-recipes@7.0.0: + resolution: {integrity: sha512-DntcK9wuG3rYQOONWC0PejxYYIDHyWWZB/ueTbOUDQgefaeIj1kJ7pdP3LZV2lfrj8XXXBWt+JDRSw1lLLOnww==} + + workbox-routing@7.0.0: + resolution: {integrity: sha512-8YxLr3xvqidnbVeGyRGkaV4YdlKkn5qZ1LfEePW3dq+ydE73hUUJJuLmGEykW3fMX8x8mNdL0XrWgotcuZjIvA==} + + workbox-strategies@7.0.0: + resolution: {integrity: sha512-dg3qJU7tR/Gcd/XXOOo7x9QoCI9nk74JopaJaYAQ+ugLi57gPsXycVdBnYbayVj34m6Y8ppPwIuecrzkpBVwbA==} + + workbox-streams@7.0.0: + resolution: {integrity: sha512-moVsh+5to//l6IERWceYKGiftc+prNnqOp2sgALJJFbnNVpTXzKISlTIsrWY+ogMqt+x1oMazIdHj25kBSq/HQ==} + + workbox-sw@7.0.0: + resolution: {integrity: sha512-SWfEouQfjRiZ7GNABzHUKUyj8pCoe+RwjfOIajcx6J5mtgKkN+t8UToHnpaJL5UVVOf5YhJh+OHhbVNIHe+LVA==} + + workbox-window@7.0.0: + resolution: {integrity: sha512-j7P/bsAWE/a7sxqTzXo3P2ALb1reTfZdvVp6OJ/uLr/C2kZAMvjeWGm8V4htQhor7DOvYg0sSbFN2+flT5U0qA==} + + workbox-window@7.3.0: + resolution: {integrity: sha512-qW8PDy16OV1UBaUNGlTVcepzrlzyzNW/ZJvFQQs2j2TzGsg6IKjcpZC1RSquqQnTOafl5pCj5bGfAHlCjOOjdA==} + + worker-timers-broker@7.1.9: + resolution: {integrity: sha512-YPql2CMZwAqPlCHoxXWsERLJChb8r9YvjRiAR0KSQ8iyNbckmSXdw4UCttrMbntwQLWxz5msO0oiUX2VA3WyTQ==} + + worker-timers-worker@8.0.10: + resolution: {integrity: sha512-wmdEMhn70li//pFNDT3pcjQ8kcuZOIuD6vrt9RBCwdTcnwvnsAmdSKSHiZSGwhNYwTJd+dvuhb81G05TGpTHcg==} + + worker-timers@8.0.13: + resolution: {integrity: sha512-ggT5TBkuZC+EySptNS61Z5nuwa/8klCyKBv0+Wa0HPLjp13nluIrdUXX9zdYGwJKwNuVPp1wPMUnFuSKw5Hxsg==} + + wrap-ansi@6.2.0: + resolution: {integrity: sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==} + engines: {node: '>=8'} + + wrap-ansi@7.0.0: + resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} + engines: {node: '>=10'} + + wrap-ansi@8.1.0: + resolution: {integrity: sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==} + engines: {node: '>=12'} + + wrap-ansi@9.0.0: + resolution: {integrity: sha512-G8ura3S+3Z2G+mkgNRq8dqaFZAuxfsxpBB8OCTGRTCtp+l/v9nbFNmCUP1BZMts3G1142MsZfn6eeUKrr4PD1Q==} + engines: {node: '>=18'} + + wrappy@1.0.2: + resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} + + write-file-atomic@2.4.3: + resolution: {integrity: sha512-GaETH5wwsX+GcnzhPgKcKjJ6M2Cq3/iZp1WyY/X1CSqrW+jVNM9Y7D8EC2sM4ZG/V8wZlSniJnCKWPmBYAucRQ==} + + write-file-atomic@5.0.1: + resolution: {integrity: sha512-+QU2zd6OTD8XWIJCbffaiQeH9U73qIqafo1x6V1snCWYGJf6cVE0cDR4D8xRzcEnfI21IFrUPzPGtcPf8AC+Rw==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + + write-json-file@3.2.0: + resolution: {integrity: sha512-3xZqT7Byc2uORAatYiP3DHUUAVEkNOswEWNs9H5KXiicRTvzYzYqKjYc4G7p+8pltvAw641lVByKVtMpf+4sYQ==} + engines: {node: '>=6'} + + write-pkg@4.0.0: + resolution: {integrity: sha512-v2UQ+50TNf2rNHJ8NyWttfm/EJUBWMJcx6ZTYZr6Qp52uuegWw/lBkCtCbnYZEmPRNL61m+u67dAmGxo+HTULA==} + engines: {node: '>=8'} + + ws@8.18.0: + resolution: {integrity: sha512-8VbfWfHLbbwu3+N6OKsOMpBdT4kXPDDB9cJk2bJ6mh9ucxdlnNvH1e+roYkKmN9Nxw2yjz7VzeO9oOz2zJ04Pw==} + engines: {node: '>=10.0.0'} + peerDependencies: + bufferutil: ^4.0.1 + utf-8-validate: '>=5.0.2' + peerDependenciesMeta: + bufferutil: + optional: true + utf-8-validate: + optional: true + + xmlcreate@2.0.4: + resolution: {integrity: sha512-nquOebG4sngPmGPICTS5EnxqhKbCmz5Ox5hsszI2T6U5qdrJizBc+0ilYSEjTSzU0yZcmvppztXe/5Al5fUwdg==} + + xtend@4.0.2: + resolution: {integrity: sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==} + engines: {node: '>=0.4'} + + xxhash-wasm@1.1.0: + resolution: {integrity: sha512-147y/6YNh+tlp6nd/2pWq38i9h6mz/EuQ6njIrmW8D1BS5nCqs0P6DG+m6zTGnNz5I+uhZ0SHxBs9BsPrwcKDA==} + + y18n@4.0.3: + resolution: {integrity: sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==} + + y18n@5.0.8: + resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==} + engines: {node: '>=10'} + + yallist@3.1.1: + resolution: {integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==} + + yallist@4.0.0: + resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==} + + yaml@2.7.0: + resolution: {integrity: sha512-+hSoy/QHluxmC9kCIJyL/uyFmLmc+e5CFR5Wa+bpIhIj85LVb9ZH2nVnqrHoSvKogwODv0ClqZkmiSSaIH5LTA==} + engines: {node: '>= 14'} + hasBin: true + + yargs-parser@18.1.3: + resolution: {integrity: sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==} + engines: {node: '>=6'} + + yargs-parser@20.2.9: + resolution: {integrity: sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==} + engines: {node: '>=10'} + + yargs-parser@21.1.1: + resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==} + engines: {node: '>=12'} + + yargs@15.4.1: + resolution: {integrity: sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==} + engines: {node: '>=8'} + + yargs@16.2.0: + resolution: {integrity: sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==} + engines: {node: '>=10'} + + yargs@17.7.2: + resolution: {integrity: sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==} + engines: {node: '>=12'} + + yocto-queue@0.1.0: + resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} + engines: {node: '>=10'} + + yocto-queue@1.1.1: + resolution: {integrity: sha512-b4JR1PFR10y1mKjhHY9LaGo6tmrgjit7hxVIeAmyMw3jegXR4dhYqLaQF5zMXZxY7tLpMyJeLjr1C4rLmkVe8g==} + engines: {node: '>=12.20'} + + yocto-spinner@0.1.2: + resolution: {integrity: sha512-VfmLIh/ZSZOJnVRQZc/dvpPP90lWL4G0bmxQMP0+U/2vKBA8GSpcBuWv17y7F+CZItRuO97HN1wdbb4p10uhOg==} + engines: {node: '>=18.19'} + + yoctocolors@2.1.1: + resolution: {integrity: sha512-GQHQqAopRhwU8Kt1DDM8NjibDXHC8eoh1erhGAJPEyveY9qqVeXvVikNKrDz69sHowPMorbPUrH/mx8c50eiBQ==} + engines: {node: '>=18'} + + zod-to-json-schema@3.24.1: + resolution: {integrity: sha512-3h08nf3Vw3Wl3PK+q3ow/lIil81IT2Oa7YpQyUUDsEWbXveMesdfK1xBd2RhCkynwZndAxixji/7SYJJowr62w==} + peerDependencies: + zod: ^3.24.1 + + zod-to-ts@1.2.0: + resolution: {integrity: sha512-x30XE43V+InwGpvTySRNz9kB7qFU8DlyEy7BsSTCHPH1R0QasMmHWZDCzYm6bVXtj/9NNJAZF3jW8rzFvH5OFA==} + peerDependencies: + typescript: ^4.9.4 || ^5.0.2 + zod: ^3 + + zod@3.24.1: + resolution: {integrity: sha512-muH7gBL9sI1nciMZV67X5fTKKBLtwpZ5VBp1vsOQzj1MhrBZ4wlVCm3gedKZWLp0Oyel8sIGfeiz54Su+OVT+A==} + + zwitch@2.0.4: + resolution: {integrity: sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A==} + +snapshots: + + '@algolia/autocomplete-core@1.17.9(@algolia/client-search@5.20.0)(algoliasearch@5.20.0)(search-insights@2.13.0)': dependencies: - '@vitest/expect': 1.1.0 - '@vitest/runner': 1.1.0 - '@vitest/snapshot': 1.1.0 - '@vitest/spy': 1.1.0 - '@vitest/ui': 1.1.0(vitest@1.1.0) - '@vitest/utils': 1.1.0 - acorn-walk: 8.3.1 - cac: 6.7.14 - chai: 4.3.10 - debug: 4.3.4 - execa: 8.0.1 - local-pkg: 0.5.0 - magic-string: 0.30.5 - pathe: 1.1.1 - picocolors: 1.0.0 - std-env: 3.7.0 - strip-literal: 1.3.0 - tinybench: 2.5.1 - tinypool: 0.8.1 - vite: 5.0.11 - vite-node: 1.1.0 - why-is-node-running: 2.2.2 + '@algolia/autocomplete-plugin-algolia-insights': 1.17.9(@algolia/client-search@5.20.0)(algoliasearch@5.20.0)(search-insights@2.13.0) + '@algolia/autocomplete-shared': 1.17.9(@algolia/client-search@5.20.0)(algoliasearch@5.20.0) transitivePeerDependencies: + - '@algolia/client-search' + - algoliasearch + - search-insights + + '@algolia/autocomplete-plugin-algolia-insights@1.17.9(@algolia/client-search@5.20.0)(algoliasearch@5.20.0)(search-insights@2.13.0)': + dependencies: + '@algolia/autocomplete-shared': 1.17.9(@algolia/client-search@5.20.0)(algoliasearch@5.20.0) + search-insights: 2.13.0 + transitivePeerDependencies: + - '@algolia/client-search' + - algoliasearch + + '@algolia/autocomplete-preset-algolia@1.17.9(@algolia/client-search@5.20.0)(algoliasearch@5.20.0)': + dependencies: + '@algolia/autocomplete-shared': 1.17.9(@algolia/client-search@5.20.0)(algoliasearch@5.20.0) + '@algolia/client-search': 5.20.0 + algoliasearch: 5.20.0 + + '@algolia/autocomplete-shared@1.17.9(@algolia/client-search@5.20.0)(algoliasearch@5.20.0)': + dependencies: + '@algolia/client-search': 5.20.0 + algoliasearch: 5.20.0 + + '@algolia/client-abtesting@5.20.0': + dependencies: + '@algolia/client-common': 5.20.0 + '@algolia/requester-browser-xhr': 5.20.0 + '@algolia/requester-fetch': 5.20.0 + '@algolia/requester-node-http': 5.20.0 + + '@algolia/client-analytics@5.20.0': + dependencies: + '@algolia/client-common': 5.20.0 + '@algolia/requester-browser-xhr': 5.20.0 + '@algolia/requester-fetch': 5.20.0 + '@algolia/requester-node-http': 5.20.0 + + '@algolia/client-common@5.20.0': {} + + '@algolia/client-insights@5.20.0': + dependencies: + '@algolia/client-common': 5.20.0 + '@algolia/requester-browser-xhr': 5.20.0 + '@algolia/requester-fetch': 5.20.0 + '@algolia/requester-node-http': 5.20.0 + + '@algolia/client-personalization@5.20.0': + dependencies: + '@algolia/client-common': 5.20.0 + '@algolia/requester-browser-xhr': 5.20.0 + '@algolia/requester-fetch': 5.20.0 + '@algolia/requester-node-http': 5.20.0 + + '@algolia/client-query-suggestions@5.20.0': + dependencies: + '@algolia/client-common': 5.20.0 + '@algolia/requester-browser-xhr': 5.20.0 + '@algolia/requester-fetch': 5.20.0 + '@algolia/requester-node-http': 5.20.0 + + '@algolia/client-search@5.20.0': + dependencies: + '@algolia/client-common': 5.20.0 + '@algolia/requester-browser-xhr': 5.20.0 + '@algolia/requester-fetch': 5.20.0 + '@algolia/requester-node-http': 5.20.0 + + '@algolia/ingestion@1.20.0': + dependencies: + '@algolia/client-common': 5.20.0 + '@algolia/requester-browser-xhr': 5.20.0 + '@algolia/requester-fetch': 5.20.0 + '@algolia/requester-node-http': 5.20.0 + + '@algolia/monitoring@1.20.0': + dependencies: + '@algolia/client-common': 5.20.0 + '@algolia/requester-browser-xhr': 5.20.0 + '@algolia/requester-fetch': 5.20.0 + '@algolia/requester-node-http': 5.20.0 + + '@algolia/recommend@5.20.0': + dependencies: + '@algolia/client-common': 5.20.0 + '@algolia/requester-browser-xhr': 5.20.0 + '@algolia/requester-fetch': 5.20.0 + '@algolia/requester-node-http': 5.20.0 + + '@algolia/requester-browser-xhr@5.20.0': + dependencies: + '@algolia/client-common': 5.20.0 + + '@algolia/requester-fetch@5.20.0': + dependencies: + '@algolia/client-common': 5.20.0 + + '@algolia/requester-node-http@5.20.0': + dependencies: + '@algolia/client-common': 5.20.0 + + '@alloc/quick-lru@5.2.0': {} + + '@ampproject/remapping@2.3.0': + dependencies: + '@jridgewell/gen-mapping': 0.3.8 + '@jridgewell/trace-mapping': 0.3.25 + + '@apideck/better-ajv-errors@0.3.6(ajv@8.17.1)': + dependencies: + ajv: 8.17.1 + json-schema: 0.4.0 + jsonpointer: 5.0.1 + leven: 3.1.0 + + '@astro-community/astro-embed-youtube@0.5.6(astro@5.1.9(@types/node@22.10.10)(jiti@2.4.2)(lightningcss@1.29.1)(rollup@2.79.2)(terser@5.37.0)(typescript@5.7.3)(yaml@2.7.0))': + dependencies: + astro: 5.1.9(@types/node@22.10.10)(jiti@2.4.2)(lightningcss@1.29.1)(rollup@2.79.2)(terser@5.37.0)(typescript@5.7.3)(yaml@2.7.0) + lite-youtube-embed: 0.3.3 + + '@astrojs/compiler@2.10.3': {} + + '@astrojs/internal-helpers@0.4.2': {} + + '@astrojs/markdown-remark@6.0.2': + dependencies: + '@astrojs/prism': 3.2.0 + github-slugger: 2.0.0 + hast-util-from-html: 2.0.3 + hast-util-to-text: 4.0.2 + import-meta-resolve: 4.1.0 + js-yaml: 4.1.0 + mdast-util-definitions: 6.0.0 + rehype-raw: 7.0.0 + rehype-stringify: 10.0.1 + remark-gfm: 4.0.0 + remark-parse: 11.0.0 + remark-rehype: 11.1.1 + remark-smartypants: 3.0.2 + shiki: 1.29.1 + unified: 11.0.5 + unist-util-remove-position: 5.0.0 + unist-util-visit: 5.0.0 + unist-util-visit-parents: 6.0.1 + vfile: 6.0.3 + transitivePeerDependencies: + - supports-color + + '@astrojs/mdx@4.0.7(astro@5.1.9(@types/node@22.10.10)(jiti@2.4.2)(lightningcss@1.29.1)(rollup@2.79.2)(terser@5.37.0)(typescript@5.7.3)(yaml@2.7.0))': + dependencies: + '@astrojs/markdown-remark': 6.0.2 + '@mdx-js/mdx': 3.1.0(acorn@8.14.0) + acorn: 8.14.0 + astro: 5.1.9(@types/node@22.10.10)(jiti@2.4.2)(lightningcss@1.29.1)(rollup@2.79.2)(terser@5.37.0)(typescript@5.7.3)(yaml@2.7.0) + es-module-lexer: 1.6.0 + estree-util-visit: 2.0.0 + hast-util-to-html: 9.0.4 + kleur: 4.1.5 + rehype-raw: 7.0.0 + remark-gfm: 4.0.0 + remark-smartypants: 3.0.2 + source-map: 0.7.4 + unist-util-visit: 5.0.0 + vfile: 6.0.3 + transitivePeerDependencies: + - supports-color + + '@astrojs/prism@3.2.0': + dependencies: + prismjs: 1.29.0 + + '@astrojs/react@4.1.6(@types/node@22.10.10)(@types/react-dom@19.0.3(@types/react@19.0.8))(@types/react@19.0.8)(jiti@2.4.2)(lightningcss@1.29.1)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(terser@5.37.0)(yaml@2.7.0)': + dependencies: + '@types/react': 19.0.8 + '@types/react-dom': 19.0.3(@types/react@19.0.8) + '@vitejs/plugin-react': 4.3.4(vite@6.0.11(@types/node@22.10.10)(jiti@2.4.2)(lightningcss@1.29.1)(terser@5.37.0)(yaml@2.7.0)) + react: 19.0.0 + react-dom: 19.0.0(react@19.0.0) + ultrahtml: 1.5.3 + vite: 6.0.11(@types/node@22.10.10)(jiti@2.4.2)(lightningcss@1.29.1)(terser@5.37.0)(yaml@2.7.0) + transitivePeerDependencies: + - '@types/node' + - jiti - less - lightningcss - sass + - sass-embedded - stylus - sugarss - supports-color - terser - dev: true + - tsx + - yaml - /w3c-keyname@2.2.6: - resolution: {integrity: sha512-f+fciywl1SJEniZHD6H+kUO8gOnwIr7f4ijKA6+ZvJFjeGi1r4PDLl53Ayud9O/rk64RqgoQine0feoeOU0kXg==} - dev: false + '@astrojs/rss@4.0.11': + dependencies: + fast-xml-parser: 4.5.1 + kleur: 4.1.5 - /walk-back@2.0.1: - resolution: {integrity: sha512-Nb6GvBR8UWX1D+Le+xUq0+Q1kFmRBIWVrfLnQAOmcpEzA9oAxwJ9gIr36t9TWYfzvWRvuMtjHiVsJYEkXWaTAQ==} - engines: {node: '>=0.10.0'} - dev: true + '@astrojs/tailwind@5.1.5(astro@5.1.9(@types/node@22.10.10)(jiti@2.4.2)(lightningcss@1.29.1)(rollup@2.79.2)(terser@5.37.0)(typescript@5.7.3)(yaml@2.7.0))(tailwindcss@3.4.17)': + dependencies: + astro: 5.1.9(@types/node@22.10.10)(jiti@2.4.2)(lightningcss@1.29.1)(rollup@2.79.2)(terser@5.37.0)(typescript@5.7.3)(yaml@2.7.0) + autoprefixer: 10.4.20(postcss@8.5.1) + postcss: 8.5.1 + postcss-load-config: 4.0.2(postcss@8.5.1) + tailwindcss: 3.4.17 + transitivePeerDependencies: + - ts-node - /walk-back@5.1.0: - resolution: {integrity: sha512-Uhxps5yZcVNbLEAnb+xaEEMdgTXl9qAQDzKYejG2AZ7qPwRQ81lozY9ECDbjLPNWm7YsO1IK5rsP1KoQzXAcGA==} - engines: {node: '>=12.17'} - dev: true + '@astrojs/telemetry@3.2.0': + dependencies: + ci-info: 4.1.0 + debug: 4.4.0 + dlv: 1.1.3 + dset: 3.1.4 + is-docker: 3.0.0 + is-wsl: 3.1.0 + which-pm-runs: 1.1.0 + transitivePeerDependencies: + - supports-color - /wav@1.0.2: - resolution: {integrity: sha512-viHtz3cDd/Tcr/HbNqzQCofKdF6kWUymH9LGDdskfWFoIy/HJ+RTihgjEcHfnsy1PO4e9B+y4HwgTwMrByquhg==} + '@babel/code-frame@7.26.2': + dependencies: + '@babel/helper-validator-identifier': 7.25.9 + js-tokens: 4.0.0 + picocolors: 1.1.1 + + '@babel/compat-data@7.26.5': {} + + '@babel/core@7.26.7': + dependencies: + '@ampproject/remapping': 2.3.0 + '@babel/code-frame': 7.26.2 + '@babel/generator': 7.26.5 + '@babel/helper-compilation-targets': 7.26.5 + '@babel/helper-module-transforms': 7.26.0(@babel/core@7.26.7) + '@babel/helpers': 7.26.7 + '@babel/parser': 7.26.7 + '@babel/template': 7.25.9 + '@babel/traverse': 7.26.7 + '@babel/types': 7.26.7 + convert-source-map: 2.0.0 + debug: 4.4.0 + gensync: 1.0.0-beta.2 + json5: 2.2.3 + semver: 6.3.1 + transitivePeerDependencies: + - supports-color + + '@babel/generator@7.18.2': + dependencies: + '@babel/types': 7.19.0 + '@jridgewell/gen-mapping': 0.3.8 + jsesc: 2.5.2 + + '@babel/generator@7.26.5': + dependencies: + '@babel/parser': 7.26.7 + '@babel/types': 7.26.7 + '@jridgewell/gen-mapping': 0.3.8 + '@jridgewell/trace-mapping': 0.3.25 + jsesc: 3.1.0 + + '@babel/helper-annotate-as-pure@7.25.9': + dependencies: + '@babel/types': 7.26.7 + + '@babel/helper-compilation-targets@7.26.5': + dependencies: + '@babel/compat-data': 7.26.5 + '@babel/helper-validator-option': 7.25.9 + browserslist: 4.24.4 + lru-cache: 5.1.1 + semver: 6.3.1 + + '@babel/helper-create-class-features-plugin@7.25.9(@babel/core@7.26.7)': + dependencies: + '@babel/core': 7.26.7 + '@babel/helper-annotate-as-pure': 7.25.9 + '@babel/helper-member-expression-to-functions': 7.25.9 + '@babel/helper-optimise-call-expression': 7.25.9 + '@babel/helper-replace-supers': 7.26.5(@babel/core@7.26.7) + '@babel/helper-skip-transparent-expression-wrappers': 7.25.9 + '@babel/traverse': 7.26.7 + semver: 6.3.1 + transitivePeerDependencies: + - supports-color + + '@babel/helper-create-regexp-features-plugin@7.26.3(@babel/core@7.26.7)': + dependencies: + '@babel/core': 7.26.7 + '@babel/helper-annotate-as-pure': 7.25.9 + regexpu-core: 6.2.0 + semver: 6.3.1 + + '@babel/helper-define-polyfill-provider@0.6.3(@babel/core@7.26.7)': + dependencies: + '@babel/core': 7.26.7 + '@babel/helper-compilation-targets': 7.26.5 + '@babel/helper-plugin-utils': 7.26.5 + debug: 4.4.0 + lodash.debounce: 4.0.8 + resolve: 1.22.10 + transitivePeerDependencies: + - supports-color + + '@babel/helper-member-expression-to-functions@7.25.9': + dependencies: + '@babel/traverse': 7.26.7 + '@babel/types': 7.26.7 + transitivePeerDependencies: + - supports-color + + '@babel/helper-module-imports@7.25.9': + dependencies: + '@babel/traverse': 7.26.7 + '@babel/types': 7.26.7 + transitivePeerDependencies: + - supports-color + + '@babel/helper-module-transforms@7.26.0(@babel/core@7.26.7)': + dependencies: + '@babel/core': 7.26.7 + '@babel/helper-module-imports': 7.25.9 + '@babel/helper-validator-identifier': 7.25.9 + '@babel/traverse': 7.26.7 + transitivePeerDependencies: + - supports-color + + '@babel/helper-optimise-call-expression@7.25.9': + dependencies: + '@babel/types': 7.26.7 + + '@babel/helper-plugin-utils@7.26.5': {} + + '@babel/helper-remap-async-to-generator@7.25.9(@babel/core@7.26.7)': + dependencies: + '@babel/core': 7.26.7 + '@babel/helper-annotate-as-pure': 7.25.9 + '@babel/helper-wrap-function': 7.25.9 + '@babel/traverse': 7.26.7 + transitivePeerDependencies: + - supports-color + + '@babel/helper-replace-supers@7.26.5(@babel/core@7.26.7)': + dependencies: + '@babel/core': 7.26.7 + '@babel/helper-member-expression-to-functions': 7.25.9 + '@babel/helper-optimise-call-expression': 7.25.9 + '@babel/traverse': 7.26.7 + transitivePeerDependencies: + - supports-color + + '@babel/helper-skip-transparent-expression-wrappers@7.25.9': + dependencies: + '@babel/traverse': 7.26.7 + '@babel/types': 7.26.7 + transitivePeerDependencies: + - supports-color + + '@babel/helper-string-parser@7.25.9': {} + + '@babel/helper-validator-identifier@7.25.9': {} + + '@babel/helper-validator-option@7.25.9': {} + + '@babel/helper-wrap-function@7.25.9': + dependencies: + '@babel/template': 7.25.9 + '@babel/traverse': 7.26.7 + '@babel/types': 7.26.7 + transitivePeerDependencies: + - supports-color + + '@babel/helpers@7.26.7': + dependencies: + '@babel/template': 7.25.9 + '@babel/types': 7.26.7 + + '@babel/parser@7.18.4': + dependencies: + '@babel/types': 7.19.0 + + '@babel/parser@7.26.7': + dependencies: + '@babel/types': 7.26.7 + + '@babel/plugin-bugfix-firefox-class-in-computed-class-key@7.25.9(@babel/core@7.26.7)': + dependencies: + '@babel/core': 7.26.7 + '@babel/helper-plugin-utils': 7.26.5 + '@babel/traverse': 7.26.7 + transitivePeerDependencies: + - supports-color + + '@babel/plugin-bugfix-safari-class-field-initializer-scope@7.25.9(@babel/core@7.26.7)': + dependencies: + '@babel/core': 7.26.7 + '@babel/helper-plugin-utils': 7.26.5 + + '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.25.9(@babel/core@7.26.7)': + dependencies: + '@babel/core': 7.26.7 + '@babel/helper-plugin-utils': 7.26.5 + + '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.25.9(@babel/core@7.26.7)': + dependencies: + '@babel/core': 7.26.7 + '@babel/helper-plugin-utils': 7.26.5 + '@babel/helper-skip-transparent-expression-wrappers': 7.25.9 + '@babel/plugin-transform-optional-chaining': 7.25.9(@babel/core@7.26.7) + transitivePeerDependencies: + - supports-color + + '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@7.25.9(@babel/core@7.26.7)': + dependencies: + '@babel/core': 7.26.7 + '@babel/helper-plugin-utils': 7.26.5 + '@babel/traverse': 7.26.7 + transitivePeerDependencies: + - supports-color + + '@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2(@babel/core@7.26.7)': + dependencies: + '@babel/core': 7.26.7 + + '@babel/plugin-syntax-import-assertions@7.26.0(@babel/core@7.26.7)': + dependencies: + '@babel/core': 7.26.7 + '@babel/helper-plugin-utils': 7.26.5 + + '@babel/plugin-syntax-import-attributes@7.26.0(@babel/core@7.26.7)': + dependencies: + '@babel/core': 7.26.7 + '@babel/helper-plugin-utils': 7.26.5 + + '@babel/plugin-syntax-unicode-sets-regex@7.18.6(@babel/core@7.26.7)': + dependencies: + '@babel/core': 7.26.7 + '@babel/helper-create-regexp-features-plugin': 7.26.3(@babel/core@7.26.7) + '@babel/helper-plugin-utils': 7.26.5 + + '@babel/plugin-transform-arrow-functions@7.25.9(@babel/core@7.26.7)': + dependencies: + '@babel/core': 7.26.7 + '@babel/helper-plugin-utils': 7.26.5 + + '@babel/plugin-transform-async-generator-functions@7.25.9(@babel/core@7.26.7)': + dependencies: + '@babel/core': 7.26.7 + '@babel/helper-plugin-utils': 7.26.5 + '@babel/helper-remap-async-to-generator': 7.25.9(@babel/core@7.26.7) + '@babel/traverse': 7.26.7 + transitivePeerDependencies: + - supports-color + + '@babel/plugin-transform-async-to-generator@7.25.9(@babel/core@7.26.7)': + dependencies: + '@babel/core': 7.26.7 + '@babel/helper-module-imports': 7.25.9 + '@babel/helper-plugin-utils': 7.26.5 + '@babel/helper-remap-async-to-generator': 7.25.9(@babel/core@7.26.7) + transitivePeerDependencies: + - supports-color + + '@babel/plugin-transform-block-scoped-functions@7.26.5(@babel/core@7.26.7)': + dependencies: + '@babel/core': 7.26.7 + '@babel/helper-plugin-utils': 7.26.5 + + '@babel/plugin-transform-block-scoping@7.25.9(@babel/core@7.26.7)': + dependencies: + '@babel/core': 7.26.7 + '@babel/helper-plugin-utils': 7.26.5 + + '@babel/plugin-transform-class-properties@7.25.9(@babel/core@7.26.7)': + dependencies: + '@babel/core': 7.26.7 + '@babel/helper-create-class-features-plugin': 7.25.9(@babel/core@7.26.7) + '@babel/helper-plugin-utils': 7.26.5 + transitivePeerDependencies: + - supports-color + + '@babel/plugin-transform-class-static-block@7.26.0(@babel/core@7.26.7)': + dependencies: + '@babel/core': 7.26.7 + '@babel/helper-create-class-features-plugin': 7.25.9(@babel/core@7.26.7) + '@babel/helper-plugin-utils': 7.26.5 + transitivePeerDependencies: + - supports-color + + '@babel/plugin-transform-classes@7.25.9(@babel/core@7.26.7)': + dependencies: + '@babel/core': 7.26.7 + '@babel/helper-annotate-as-pure': 7.25.9 + '@babel/helper-compilation-targets': 7.26.5 + '@babel/helper-plugin-utils': 7.26.5 + '@babel/helper-replace-supers': 7.26.5(@babel/core@7.26.7) + '@babel/traverse': 7.26.7 + globals: 11.12.0 + transitivePeerDependencies: + - supports-color + + '@babel/plugin-transform-computed-properties@7.25.9(@babel/core@7.26.7)': + dependencies: + '@babel/core': 7.26.7 + '@babel/helper-plugin-utils': 7.26.5 + '@babel/template': 7.25.9 + + '@babel/plugin-transform-destructuring@7.25.9(@babel/core@7.26.7)': + dependencies: + '@babel/core': 7.26.7 + '@babel/helper-plugin-utils': 7.26.5 + + '@babel/plugin-transform-dotall-regex@7.25.9(@babel/core@7.26.7)': + dependencies: + '@babel/core': 7.26.7 + '@babel/helper-create-regexp-features-plugin': 7.26.3(@babel/core@7.26.7) + '@babel/helper-plugin-utils': 7.26.5 + + '@babel/plugin-transform-duplicate-keys@7.25.9(@babel/core@7.26.7)': + dependencies: + '@babel/core': 7.26.7 + '@babel/helper-plugin-utils': 7.26.5 + + '@babel/plugin-transform-duplicate-named-capturing-groups-regex@7.25.9(@babel/core@7.26.7)': + dependencies: + '@babel/core': 7.26.7 + '@babel/helper-create-regexp-features-plugin': 7.26.3(@babel/core@7.26.7) + '@babel/helper-plugin-utils': 7.26.5 + + '@babel/plugin-transform-dynamic-import@7.25.9(@babel/core@7.26.7)': + dependencies: + '@babel/core': 7.26.7 + '@babel/helper-plugin-utils': 7.26.5 + + '@babel/plugin-transform-exponentiation-operator@7.26.3(@babel/core@7.26.7)': + dependencies: + '@babel/core': 7.26.7 + '@babel/helper-plugin-utils': 7.26.5 + + '@babel/plugin-transform-export-namespace-from@7.25.9(@babel/core@7.26.7)': + dependencies: + '@babel/core': 7.26.7 + '@babel/helper-plugin-utils': 7.26.5 + + '@babel/plugin-transform-for-of@7.25.9(@babel/core@7.26.7)': + dependencies: + '@babel/core': 7.26.7 + '@babel/helper-plugin-utils': 7.26.5 + '@babel/helper-skip-transparent-expression-wrappers': 7.25.9 + transitivePeerDependencies: + - supports-color + + '@babel/plugin-transform-function-name@7.25.9(@babel/core@7.26.7)': + dependencies: + '@babel/core': 7.26.7 + '@babel/helper-compilation-targets': 7.26.5 + '@babel/helper-plugin-utils': 7.26.5 + '@babel/traverse': 7.26.7 + transitivePeerDependencies: + - supports-color + + '@babel/plugin-transform-json-strings@7.25.9(@babel/core@7.26.7)': + dependencies: + '@babel/core': 7.26.7 + '@babel/helper-plugin-utils': 7.26.5 + + '@babel/plugin-transform-literals@7.25.9(@babel/core@7.26.7)': + dependencies: + '@babel/core': 7.26.7 + '@babel/helper-plugin-utils': 7.26.5 + + '@babel/plugin-transform-logical-assignment-operators@7.25.9(@babel/core@7.26.7)': + dependencies: + '@babel/core': 7.26.7 + '@babel/helper-plugin-utils': 7.26.5 + + '@babel/plugin-transform-member-expression-literals@7.25.9(@babel/core@7.26.7)': + dependencies: + '@babel/core': 7.26.7 + '@babel/helper-plugin-utils': 7.26.5 + + '@babel/plugin-transform-modules-amd@7.25.9(@babel/core@7.26.7)': + dependencies: + '@babel/core': 7.26.7 + '@babel/helper-module-transforms': 7.26.0(@babel/core@7.26.7) + '@babel/helper-plugin-utils': 7.26.5 + transitivePeerDependencies: + - supports-color + + '@babel/plugin-transform-modules-commonjs@7.26.3(@babel/core@7.26.7)': + dependencies: + '@babel/core': 7.26.7 + '@babel/helper-module-transforms': 7.26.0(@babel/core@7.26.7) + '@babel/helper-plugin-utils': 7.26.5 + transitivePeerDependencies: + - supports-color + + '@babel/plugin-transform-modules-systemjs@7.25.9(@babel/core@7.26.7)': + dependencies: + '@babel/core': 7.26.7 + '@babel/helper-module-transforms': 7.26.0(@babel/core@7.26.7) + '@babel/helper-plugin-utils': 7.26.5 + '@babel/helper-validator-identifier': 7.25.9 + '@babel/traverse': 7.26.7 + transitivePeerDependencies: + - supports-color + + '@babel/plugin-transform-modules-umd@7.25.9(@babel/core@7.26.7)': + dependencies: + '@babel/core': 7.26.7 + '@babel/helper-module-transforms': 7.26.0(@babel/core@7.26.7) + '@babel/helper-plugin-utils': 7.26.5 + transitivePeerDependencies: + - supports-color + + '@babel/plugin-transform-named-capturing-groups-regex@7.25.9(@babel/core@7.26.7)': + dependencies: + '@babel/core': 7.26.7 + '@babel/helper-create-regexp-features-plugin': 7.26.3(@babel/core@7.26.7) + '@babel/helper-plugin-utils': 7.26.5 + + '@babel/plugin-transform-new-target@7.25.9(@babel/core@7.26.7)': + dependencies: + '@babel/core': 7.26.7 + '@babel/helper-plugin-utils': 7.26.5 + + '@babel/plugin-transform-nullish-coalescing-operator@7.26.6(@babel/core@7.26.7)': + dependencies: + '@babel/core': 7.26.7 + '@babel/helper-plugin-utils': 7.26.5 + + '@babel/plugin-transform-numeric-separator@7.25.9(@babel/core@7.26.7)': + dependencies: + '@babel/core': 7.26.7 + '@babel/helper-plugin-utils': 7.26.5 + + '@babel/plugin-transform-object-rest-spread@7.25.9(@babel/core@7.26.7)': + dependencies: + '@babel/core': 7.26.7 + '@babel/helper-compilation-targets': 7.26.5 + '@babel/helper-plugin-utils': 7.26.5 + '@babel/plugin-transform-parameters': 7.25.9(@babel/core@7.26.7) + + '@babel/plugin-transform-object-super@7.25.9(@babel/core@7.26.7)': + dependencies: + '@babel/core': 7.26.7 + '@babel/helper-plugin-utils': 7.26.5 + '@babel/helper-replace-supers': 7.26.5(@babel/core@7.26.7) + transitivePeerDependencies: + - supports-color + + '@babel/plugin-transform-optional-catch-binding@7.25.9(@babel/core@7.26.7)': + dependencies: + '@babel/core': 7.26.7 + '@babel/helper-plugin-utils': 7.26.5 + + '@babel/plugin-transform-optional-chaining@7.25.9(@babel/core@7.26.7)': + dependencies: + '@babel/core': 7.26.7 + '@babel/helper-plugin-utils': 7.26.5 + '@babel/helper-skip-transparent-expression-wrappers': 7.25.9 + transitivePeerDependencies: + - supports-color + + '@babel/plugin-transform-parameters@7.25.9(@babel/core@7.26.7)': + dependencies: + '@babel/core': 7.26.7 + '@babel/helper-plugin-utils': 7.26.5 + + '@babel/plugin-transform-private-methods@7.25.9(@babel/core@7.26.7)': + dependencies: + '@babel/core': 7.26.7 + '@babel/helper-create-class-features-plugin': 7.25.9(@babel/core@7.26.7) + '@babel/helper-plugin-utils': 7.26.5 + transitivePeerDependencies: + - supports-color + + '@babel/plugin-transform-private-property-in-object@7.25.9(@babel/core@7.26.7)': + dependencies: + '@babel/core': 7.26.7 + '@babel/helper-annotate-as-pure': 7.25.9 + '@babel/helper-create-class-features-plugin': 7.25.9(@babel/core@7.26.7) + '@babel/helper-plugin-utils': 7.26.5 + transitivePeerDependencies: + - supports-color + + '@babel/plugin-transform-property-literals@7.25.9(@babel/core@7.26.7)': + dependencies: + '@babel/core': 7.26.7 + '@babel/helper-plugin-utils': 7.26.5 + + '@babel/plugin-transform-react-jsx-self@7.25.9(@babel/core@7.26.7)': + dependencies: + '@babel/core': 7.26.7 + '@babel/helper-plugin-utils': 7.26.5 + + '@babel/plugin-transform-react-jsx-source@7.25.9(@babel/core@7.26.7)': + dependencies: + '@babel/core': 7.26.7 + '@babel/helper-plugin-utils': 7.26.5 + + '@babel/plugin-transform-regenerator@7.25.9(@babel/core@7.26.7)': + dependencies: + '@babel/core': 7.26.7 + '@babel/helper-plugin-utils': 7.26.5 + regenerator-transform: 0.15.2 + + '@babel/plugin-transform-regexp-modifiers@7.26.0(@babel/core@7.26.7)': + dependencies: + '@babel/core': 7.26.7 + '@babel/helper-create-regexp-features-plugin': 7.26.3(@babel/core@7.26.7) + '@babel/helper-plugin-utils': 7.26.5 + + '@babel/plugin-transform-reserved-words@7.25.9(@babel/core@7.26.7)': + dependencies: + '@babel/core': 7.26.7 + '@babel/helper-plugin-utils': 7.26.5 + + '@babel/plugin-transform-shorthand-properties@7.25.9(@babel/core@7.26.7)': + dependencies: + '@babel/core': 7.26.7 + '@babel/helper-plugin-utils': 7.26.5 + + '@babel/plugin-transform-spread@7.25.9(@babel/core@7.26.7)': + dependencies: + '@babel/core': 7.26.7 + '@babel/helper-plugin-utils': 7.26.5 + '@babel/helper-skip-transparent-expression-wrappers': 7.25.9 + transitivePeerDependencies: + - supports-color + + '@babel/plugin-transform-sticky-regex@7.25.9(@babel/core@7.26.7)': + dependencies: + '@babel/core': 7.26.7 + '@babel/helper-plugin-utils': 7.26.5 + + '@babel/plugin-transform-template-literals@7.25.9(@babel/core@7.26.7)': + dependencies: + '@babel/core': 7.26.7 + '@babel/helper-plugin-utils': 7.26.5 + + '@babel/plugin-transform-typeof-symbol@7.26.7(@babel/core@7.26.7)': + dependencies: + '@babel/core': 7.26.7 + '@babel/helper-plugin-utils': 7.26.5 + + '@babel/plugin-transform-unicode-escapes@7.25.9(@babel/core@7.26.7)': + dependencies: + '@babel/core': 7.26.7 + '@babel/helper-plugin-utils': 7.26.5 + + '@babel/plugin-transform-unicode-property-regex@7.25.9(@babel/core@7.26.7)': + dependencies: + '@babel/core': 7.26.7 + '@babel/helper-create-regexp-features-plugin': 7.26.3(@babel/core@7.26.7) + '@babel/helper-plugin-utils': 7.26.5 + + '@babel/plugin-transform-unicode-regex@7.25.9(@babel/core@7.26.7)': + dependencies: + '@babel/core': 7.26.7 + '@babel/helper-create-regexp-features-plugin': 7.26.3(@babel/core@7.26.7) + '@babel/helper-plugin-utils': 7.26.5 + + '@babel/plugin-transform-unicode-sets-regex@7.25.9(@babel/core@7.26.7)': + dependencies: + '@babel/core': 7.26.7 + '@babel/helper-create-regexp-features-plugin': 7.26.3(@babel/core@7.26.7) + '@babel/helper-plugin-utils': 7.26.5 + + '@babel/preset-env@7.26.7(@babel/core@7.26.7)': + dependencies: + '@babel/compat-data': 7.26.5 + '@babel/core': 7.26.7 + '@babel/helper-compilation-targets': 7.26.5 + '@babel/helper-plugin-utils': 7.26.5 + '@babel/helper-validator-option': 7.25.9 + '@babel/plugin-bugfix-firefox-class-in-computed-class-key': 7.25.9(@babel/core@7.26.7) + '@babel/plugin-bugfix-safari-class-field-initializer-scope': 7.25.9(@babel/core@7.26.7) + '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression': 7.25.9(@babel/core@7.26.7) + '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining': 7.25.9(@babel/core@7.26.7) + '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly': 7.25.9(@babel/core@7.26.7) + '@babel/plugin-proposal-private-property-in-object': 7.21.0-placeholder-for-preset-env.2(@babel/core@7.26.7) + '@babel/plugin-syntax-import-assertions': 7.26.0(@babel/core@7.26.7) + '@babel/plugin-syntax-import-attributes': 7.26.0(@babel/core@7.26.7) + '@babel/plugin-syntax-unicode-sets-regex': 7.18.6(@babel/core@7.26.7) + '@babel/plugin-transform-arrow-functions': 7.25.9(@babel/core@7.26.7) + '@babel/plugin-transform-async-generator-functions': 7.25.9(@babel/core@7.26.7) + '@babel/plugin-transform-async-to-generator': 7.25.9(@babel/core@7.26.7) + '@babel/plugin-transform-block-scoped-functions': 7.26.5(@babel/core@7.26.7) + '@babel/plugin-transform-block-scoping': 7.25.9(@babel/core@7.26.7) + '@babel/plugin-transform-class-properties': 7.25.9(@babel/core@7.26.7) + '@babel/plugin-transform-class-static-block': 7.26.0(@babel/core@7.26.7) + '@babel/plugin-transform-classes': 7.25.9(@babel/core@7.26.7) + '@babel/plugin-transform-computed-properties': 7.25.9(@babel/core@7.26.7) + '@babel/plugin-transform-destructuring': 7.25.9(@babel/core@7.26.7) + '@babel/plugin-transform-dotall-regex': 7.25.9(@babel/core@7.26.7) + '@babel/plugin-transform-duplicate-keys': 7.25.9(@babel/core@7.26.7) + '@babel/plugin-transform-duplicate-named-capturing-groups-regex': 7.25.9(@babel/core@7.26.7) + '@babel/plugin-transform-dynamic-import': 7.25.9(@babel/core@7.26.7) + '@babel/plugin-transform-exponentiation-operator': 7.26.3(@babel/core@7.26.7) + '@babel/plugin-transform-export-namespace-from': 7.25.9(@babel/core@7.26.7) + '@babel/plugin-transform-for-of': 7.25.9(@babel/core@7.26.7) + '@babel/plugin-transform-function-name': 7.25.9(@babel/core@7.26.7) + '@babel/plugin-transform-json-strings': 7.25.9(@babel/core@7.26.7) + '@babel/plugin-transform-literals': 7.25.9(@babel/core@7.26.7) + '@babel/plugin-transform-logical-assignment-operators': 7.25.9(@babel/core@7.26.7) + '@babel/plugin-transform-member-expression-literals': 7.25.9(@babel/core@7.26.7) + '@babel/plugin-transform-modules-amd': 7.25.9(@babel/core@7.26.7) + '@babel/plugin-transform-modules-commonjs': 7.26.3(@babel/core@7.26.7) + '@babel/plugin-transform-modules-systemjs': 7.25.9(@babel/core@7.26.7) + '@babel/plugin-transform-modules-umd': 7.25.9(@babel/core@7.26.7) + '@babel/plugin-transform-named-capturing-groups-regex': 7.25.9(@babel/core@7.26.7) + '@babel/plugin-transform-new-target': 7.25.9(@babel/core@7.26.7) + '@babel/plugin-transform-nullish-coalescing-operator': 7.26.6(@babel/core@7.26.7) + '@babel/plugin-transform-numeric-separator': 7.25.9(@babel/core@7.26.7) + '@babel/plugin-transform-object-rest-spread': 7.25.9(@babel/core@7.26.7) + '@babel/plugin-transform-object-super': 7.25.9(@babel/core@7.26.7) + '@babel/plugin-transform-optional-catch-binding': 7.25.9(@babel/core@7.26.7) + '@babel/plugin-transform-optional-chaining': 7.25.9(@babel/core@7.26.7) + '@babel/plugin-transform-parameters': 7.25.9(@babel/core@7.26.7) + '@babel/plugin-transform-private-methods': 7.25.9(@babel/core@7.26.7) + '@babel/plugin-transform-private-property-in-object': 7.25.9(@babel/core@7.26.7) + '@babel/plugin-transform-property-literals': 7.25.9(@babel/core@7.26.7) + '@babel/plugin-transform-regenerator': 7.25.9(@babel/core@7.26.7) + '@babel/plugin-transform-regexp-modifiers': 7.26.0(@babel/core@7.26.7) + '@babel/plugin-transform-reserved-words': 7.25.9(@babel/core@7.26.7) + '@babel/plugin-transform-shorthand-properties': 7.25.9(@babel/core@7.26.7) + '@babel/plugin-transform-spread': 7.25.9(@babel/core@7.26.7) + '@babel/plugin-transform-sticky-regex': 7.25.9(@babel/core@7.26.7) + '@babel/plugin-transform-template-literals': 7.25.9(@babel/core@7.26.7) + '@babel/plugin-transform-typeof-symbol': 7.26.7(@babel/core@7.26.7) + '@babel/plugin-transform-unicode-escapes': 7.25.9(@babel/core@7.26.7) + '@babel/plugin-transform-unicode-property-regex': 7.25.9(@babel/core@7.26.7) + '@babel/plugin-transform-unicode-regex': 7.25.9(@babel/core@7.26.7) + '@babel/plugin-transform-unicode-sets-regex': 7.25.9(@babel/core@7.26.7) + '@babel/preset-modules': 0.1.6-no-external-plugins(@babel/core@7.26.7) + babel-plugin-polyfill-corejs2: 0.4.12(@babel/core@7.26.7) + babel-plugin-polyfill-corejs3: 0.10.6(@babel/core@7.26.7) + babel-plugin-polyfill-regenerator: 0.6.3(@babel/core@7.26.7) + core-js-compat: 3.40.0 + semver: 6.3.1 + transitivePeerDependencies: + - supports-color + + '@babel/preset-modules@0.1.6-no-external-plugins(@babel/core@7.26.7)': + dependencies: + '@babel/core': 7.26.7 + '@babel/helper-plugin-utils': 7.26.5 + '@babel/types': 7.26.7 + esutils: 2.0.3 + + '@babel/runtime@7.26.7': + dependencies: + regenerator-runtime: 0.14.1 + + '@babel/template@7.25.9': + dependencies: + '@babel/code-frame': 7.26.2 + '@babel/parser': 7.26.7 + '@babel/types': 7.26.7 + + '@babel/traverse@7.26.7': + dependencies: + '@babel/code-frame': 7.26.2 + '@babel/generator': 7.26.5 + '@babel/parser': 7.26.7 + '@babel/template': 7.25.9 + '@babel/types': 7.26.7 + debug: 4.4.0 + globals: 11.12.0 + transitivePeerDependencies: + - supports-color + + '@babel/types@7.19.0': + dependencies: + '@babel/helper-string-parser': 7.25.9 + '@babel/helper-validator-identifier': 7.25.9 + to-fast-properties: 2.0.0 + + '@babel/types@7.26.7': + dependencies: + '@babel/helper-string-parser': 7.25.9 + '@babel/helper-validator-identifier': 7.25.9 + + '@bcoe/v8-coverage@1.0.2': {} + + '@codemirror/autocomplete@6.18.4': + dependencies: + '@codemirror/language': 6.10.8 + '@codemirror/state': 6.5.1 + '@codemirror/view': 6.36.2 + '@lezer/common': 1.2.3 + + '@codemirror/commands@6.8.0': + dependencies: + '@codemirror/language': 6.10.8 + '@codemirror/state': 6.5.1 + '@codemirror/view': 6.36.2 + '@lezer/common': 1.2.3 + + '@codemirror/lang-javascript@6.2.2': + dependencies: + '@codemirror/autocomplete': 6.18.4 + '@codemirror/language': 6.10.8 + '@codemirror/lint': 6.8.4 + '@codemirror/state': 6.5.1 + '@codemirror/view': 6.36.2 + '@lezer/common': 1.2.3 + '@lezer/javascript': 1.4.21 + + '@codemirror/language@6.10.8': + dependencies: + '@codemirror/state': 6.5.1 + '@codemirror/view': 6.36.2 + '@lezer/common': 1.2.3 + '@lezer/highlight': 1.2.1 + '@lezer/lr': 1.4.2 + style-mod: 4.1.2 + + '@codemirror/lint@6.8.4': + dependencies: + '@codemirror/state': 6.5.1 + '@codemirror/view': 6.36.2 + crelt: 1.0.6 + + '@codemirror/search@6.5.8': + dependencies: + '@codemirror/state': 6.5.1 + '@codemirror/view': 6.36.2 + crelt: 1.0.6 + + '@codemirror/state@6.5.1': + dependencies: + '@marijn/find-cluster-break': 1.0.2 + + '@codemirror/view@6.36.2': + dependencies: + '@codemirror/state': 6.5.1 + style-mod: 4.1.2 + w3c-keyname: 2.2.8 + + '@csound/browser@6.18.7(eslint@9.19.0(jiti@2.4.2))': + dependencies: + comlink: 4.4.2 + eslint-plugin-n: 15.7.0(eslint@9.19.0(jiti@2.4.2)) + eventemitter3: 4.0.7 + google-closure-compiler: 20221102.0.1 + google-closure-library: 20221102.0.0 + path-browserify: 1.0.1 + rambda: 7.5.0 + rimraf: 3.0.2 + standardized-audio-context: 25.3.77 + text-encoding-shim: 1.0.5 + unmute-ios-audio: 3.3.0 + web-midi-api: 2.3.5 + transitivePeerDependencies: + - eslint + + '@dependents/detective-less@5.0.0': + dependencies: + gonzales-pe: 4.3.0 + node-source-walk: 7.0.0 + + '@docsearch/css@3.8.3': {} + + '@docsearch/react@3.8.3(@algolia/client-search@5.20.0)(@types/react@19.0.8)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)(search-insights@2.13.0)': + dependencies: + '@algolia/autocomplete-core': 1.17.9(@algolia/client-search@5.20.0)(algoliasearch@5.20.0)(search-insights@2.13.0) + '@algolia/autocomplete-preset-algolia': 1.17.9(@algolia/client-search@5.20.0)(algoliasearch@5.20.0) + '@docsearch/css': 3.8.3 + algoliasearch: 5.20.0 + optionalDependencies: + '@types/react': 19.0.8 + react: 19.0.0 + react-dom: 19.0.0(react@19.0.0) + search-insights: 2.13.0 + transitivePeerDependencies: + - '@algolia/client-search' + + '@emnapi/core@1.3.1': + dependencies: + '@emnapi/wasi-threads': 1.0.1 + tslib: 2.8.1 + + '@emnapi/runtime@1.3.1': + dependencies: + tslib: 2.8.1 + + '@emnapi/wasi-threads@1.0.1': + dependencies: + tslib: 2.8.1 + + '@esbuild/aix-ppc64@0.24.2': + optional: true + + '@esbuild/android-arm64@0.24.2': + optional: true + + '@esbuild/android-arm@0.24.2': + optional: true + + '@esbuild/android-x64@0.24.2': + optional: true + + '@esbuild/darwin-arm64@0.24.2': + optional: true + + '@esbuild/darwin-x64@0.24.2': + optional: true + + '@esbuild/freebsd-arm64@0.24.2': + optional: true + + '@esbuild/freebsd-x64@0.24.2': + optional: true + + '@esbuild/linux-arm64@0.24.2': + optional: true + + '@esbuild/linux-arm@0.24.2': + optional: true + + '@esbuild/linux-ia32@0.24.2': + optional: true + + '@esbuild/linux-loong64@0.24.2': + optional: true + + '@esbuild/linux-mips64el@0.24.2': + optional: true + + '@esbuild/linux-ppc64@0.24.2': + optional: true + + '@esbuild/linux-riscv64@0.24.2': + optional: true + + '@esbuild/linux-s390x@0.24.2': + optional: true + + '@esbuild/linux-x64@0.24.2': + optional: true + + '@esbuild/netbsd-arm64@0.24.2': + optional: true + + '@esbuild/netbsd-x64@0.24.2': + optional: true + + '@esbuild/openbsd-arm64@0.24.2': + optional: true + + '@esbuild/openbsd-x64@0.24.2': + optional: true + + '@esbuild/sunos-x64@0.24.2': + optional: true + + '@esbuild/win32-arm64@0.24.2': + optional: true + + '@esbuild/win32-ia32@0.24.2': + optional: true + + '@esbuild/win32-x64@0.24.2': + optional: true + + '@eslint-community/eslint-utils@4.4.1(eslint@9.19.0(jiti@2.4.2))': + dependencies: + eslint: 9.19.0(jiti@2.4.2) + eslint-visitor-keys: 3.4.3 + + '@eslint-community/regexpp@4.12.1': {} + + '@eslint/compat@1.2.5(eslint@9.19.0(jiti@2.4.2))': + optionalDependencies: + eslint: 9.19.0(jiti@2.4.2) + + '@eslint/config-array@0.19.1': + dependencies: + '@eslint/object-schema': 2.1.5 + debug: 4.4.0 + minimatch: 3.1.2 + transitivePeerDependencies: + - supports-color + + '@eslint/core@0.10.0': + dependencies: + '@types/json-schema': 7.0.15 + + '@eslint/eslintrc@3.2.0': + dependencies: + ajv: 6.12.6 + debug: 4.4.0 + espree: 10.3.0 + globals: 14.0.0 + ignore: 5.3.2 + import-fresh: 3.3.0 + js-yaml: 4.1.0 + minimatch: 3.1.2 + strip-json-comments: 3.1.1 + transitivePeerDependencies: + - supports-color + + '@eslint/js@9.19.0': {} + + '@eslint/object-schema@2.1.5': {} + + '@eslint/plugin-kit@0.2.5': + dependencies: + '@eslint/core': 0.10.0 + levn: 0.4.1 + + '@floating-ui/core@1.6.9': + dependencies: + '@floating-ui/utils': 0.2.9 + + '@floating-ui/dom@1.6.13': + dependencies: + '@floating-ui/core': 1.6.9 + '@floating-ui/utils': 0.2.9 + + '@floating-ui/react-dom@2.1.2(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': + dependencies: + '@floating-ui/dom': 1.6.13 + react: 19.0.0 + react-dom: 19.0.0(react@19.0.0) + + '@floating-ui/react@0.26.28(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': + dependencies: + '@floating-ui/react-dom': 2.1.2(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@floating-ui/utils': 0.2.9 + react: 19.0.0 + react-dom: 19.0.0(react@19.0.0) + tabbable: 6.2.0 + + '@floating-ui/utils@0.2.9': {} + + '@headlessui/react@2.2.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': + dependencies: + '@floating-ui/react': 0.26.28(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@react-aria/focus': 3.19.1(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@react-aria/interactions': 3.23.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@tanstack/react-virtual': 3.11.2(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + react: 19.0.0 + react-dom: 19.0.0(react@19.0.0) + + '@heroicons/react@2.2.0(react@19.0.0)': + dependencies: + react: 19.0.0 + + '@humanfs/core@0.19.1': {} + + '@humanfs/node@0.16.6': + dependencies: + '@humanfs/core': 0.19.1 + '@humanwhocodes/retry': 0.3.1 + + '@humanwhocodes/module-importer@1.0.1': {} + + '@humanwhocodes/retry@0.3.1': {} + + '@humanwhocodes/retry@0.4.1': {} + + '@hutson/parse-repository-url@3.0.2': {} + + '@img/sharp-darwin-arm64@0.33.5': + optionalDependencies: + '@img/sharp-libvips-darwin-arm64': 1.0.4 + optional: true + + '@img/sharp-darwin-x64@0.33.5': + optionalDependencies: + '@img/sharp-libvips-darwin-x64': 1.0.4 + optional: true + + '@img/sharp-libvips-darwin-arm64@1.0.4': + optional: true + + '@img/sharp-libvips-darwin-x64@1.0.4': + optional: true + + '@img/sharp-libvips-linux-arm64@1.0.4': + optional: true + + '@img/sharp-libvips-linux-arm@1.0.5': + optional: true + + '@img/sharp-libvips-linux-s390x@1.0.4': + optional: true + + '@img/sharp-libvips-linux-x64@1.0.4': + optional: true + + '@img/sharp-libvips-linuxmusl-arm64@1.0.4': + optional: true + + '@img/sharp-libvips-linuxmusl-x64@1.0.4': + optional: true + + '@img/sharp-linux-arm64@0.33.5': + optionalDependencies: + '@img/sharp-libvips-linux-arm64': 1.0.4 + optional: true + + '@img/sharp-linux-arm@0.33.5': + optionalDependencies: + '@img/sharp-libvips-linux-arm': 1.0.5 + optional: true + + '@img/sharp-linux-s390x@0.33.5': + optionalDependencies: + '@img/sharp-libvips-linux-s390x': 1.0.4 + optional: true + + '@img/sharp-linux-x64@0.33.5': + optionalDependencies: + '@img/sharp-libvips-linux-x64': 1.0.4 + optional: true + + '@img/sharp-linuxmusl-arm64@0.33.5': + optionalDependencies: + '@img/sharp-libvips-linuxmusl-arm64': 1.0.4 + optional: true + + '@img/sharp-linuxmusl-x64@0.33.5': + optionalDependencies: + '@img/sharp-libvips-linuxmusl-x64': 1.0.4 + optional: true + + '@img/sharp-wasm32@0.33.5': + dependencies: + '@emnapi/runtime': 1.3.1 + optional: true + + '@img/sharp-win32-ia32@0.33.5': + optional: true + + '@img/sharp-win32-x64@0.33.5': + optional: true + + '@isaacs/cliui@8.0.2': + dependencies: + string-width: 5.1.2 + string-width-cjs: string-width@4.2.3 + strip-ansi: 7.1.0 + strip-ansi-cjs: strip-ansi@6.0.1 + wrap-ansi: 8.1.0 + wrap-ansi-cjs: wrap-ansi@7.0.0 + + '@isaacs/string-locale-compare@1.1.0': {} + + '@istanbuljs/schema@0.1.3': {} + + '@jest/schemas@29.6.3': + dependencies: + '@sinclair/typebox': 0.27.8 + + '@jridgewell/gen-mapping@0.3.8': + dependencies: + '@jridgewell/set-array': 1.2.1 + '@jridgewell/sourcemap-codec': 1.5.0 + '@jridgewell/trace-mapping': 0.3.25 + + '@jridgewell/resolve-uri@3.1.2': {} + + '@jridgewell/set-array@1.2.1': {} + + '@jridgewell/source-map@0.3.6': + dependencies: + '@jridgewell/gen-mapping': 0.3.8 + '@jridgewell/trace-mapping': 0.3.25 + + '@jridgewell/sourcemap-codec@1.5.0': {} + + '@jridgewell/trace-mapping@0.3.25': + dependencies: + '@jridgewell/resolve-uri': 3.1.2 + '@jridgewell/sourcemap-codec': 1.5.0 + + '@jsdoc/salty@0.2.9': + dependencies: + lodash: 4.17.21 + + '@lerna/create@8.1.9(encoding@0.1.13)(typescript@5.7.3)': + dependencies: + '@npmcli/arborist': 7.5.4 + '@npmcli/package-json': 5.2.0 + '@npmcli/run-script': 8.1.0 + '@nx/devkit': 20.3.3(nx@20.3.3) + '@octokit/plugin-enterprise-rest': 6.0.1 + '@octokit/rest': 19.0.11(encoding@0.1.13) + aproba: 2.0.0 + byte-size: 8.1.1 + chalk: 4.1.0 + clone-deep: 4.0.1 + cmd-shim: 6.0.3 + color-support: 1.1.3 + columnify: 1.6.0 + console-control-strings: 1.1.0 + conventional-changelog-core: 5.0.1 + conventional-recommended-bump: 7.0.1 + cosmiconfig: 9.0.0(typescript@5.7.3) + dedent: 1.5.3 + execa: 5.0.0 + fs-extra: 11.3.0 + get-stream: 6.0.0 + git-url-parse: 14.0.0 + glob-parent: 6.0.2 + globby: 11.1.0 + graceful-fs: 4.2.11 + has-unicode: 2.0.1 + ini: 1.3.8 + init-package-json: 6.0.3 + inquirer: 8.2.6 + is-ci: 3.0.1 + is-stream: 2.0.0 + js-yaml: 4.1.0 + libnpmpublish: 9.0.9 + load-json-file: 6.2.0 + lodash: 4.17.21 + make-dir: 4.0.0 + minimatch: 3.0.5 + multimatch: 5.0.0 + node-fetch: 2.6.7(encoding@0.1.13) + npm-package-arg: 11.0.2 + npm-packlist: 8.0.2 + npm-registry-fetch: 17.1.0 + nx: 20.3.3 + p-map: 4.0.0 + p-map-series: 2.1.0 + p-queue: 6.6.2 + p-reduce: 2.1.0 + pacote: 18.0.6 + pify: 5.0.0 + read-cmd-shim: 4.0.0 + resolve-from: 5.0.0 + rimraf: 4.4.1 + semver: 7.6.3 + set-blocking: 2.0.0 + signal-exit: 3.0.7 + slash: 3.0.0 + ssri: 10.0.6 + string-width: 4.2.3 + strip-ansi: 6.0.1 + strong-log-transformer: 2.1.0 + tar: 6.2.1 + temp-dir: 1.0.0 + upath: 2.0.1 + uuid: 10.0.0 + validate-npm-package-license: 3.0.4 + validate-npm-package-name: 5.0.1 + wide-align: 1.1.5 + write-file-atomic: 5.0.1 + write-pkg: 4.0.0 + yargs: 17.7.2 + yargs-parser: 21.1.1 + transitivePeerDependencies: + - '@swc-node/register' + - '@swc/core' + - babel-plugin-macros + - bluebird + - debug + - encoding + - supports-color + - typescript + + '@lezer/common@1.2.3': {} + + '@lezer/highlight@1.2.1': + dependencies: + '@lezer/common': 1.2.3 + + '@lezer/javascript@1.4.21': + dependencies: + '@lezer/common': 1.2.3 + '@lezer/highlight': 1.2.1 + '@lezer/lr': 1.4.2 + + '@lezer/lr@1.4.2': + dependencies: + '@lezer/common': 1.2.3 + + '@marijn/find-cluster-break@1.0.2': {} + + '@mdx-js/mdx@3.1.0(acorn@8.14.0)': + dependencies: + '@types/estree': 1.0.6 + '@types/estree-jsx': 1.0.5 + '@types/hast': 3.0.4 + '@types/mdx': 2.0.13 + collapse-white-space: 2.1.0 + devlop: 1.1.0 + estree-util-is-identifier-name: 3.0.0 + estree-util-scope: 1.0.0 + estree-walker: 3.0.3 + hast-util-to-jsx-runtime: 2.3.2 + markdown-extensions: 2.0.0 + recma-build-jsx: 1.0.0 + recma-jsx: 1.0.0(acorn@8.14.0) + recma-stringify: 1.0.0 + rehype-recma: 1.0.0 + remark-mdx: 3.1.0 + remark-parse: 11.0.0 + remark-rehype: 11.1.1 + source-map: 0.7.4 + unified: 11.0.5 + unist-util-position-from-estree: 2.0.0 + unist-util-stringify-position: 4.0.0 + unist-util-visit: 5.0.0 + vfile: 6.0.3 + transitivePeerDependencies: + - acorn + - supports-color + + '@nanostores/persistent@0.10.2(nanostores@0.11.3)': + dependencies: + nanostores: 0.11.3 + + '@nanostores/react@0.8.4(nanostores@0.11.3)(react@19.0.0)': + dependencies: + nanostores: 0.11.3 + react: 19.0.0 + + '@napi-rs/wasm-runtime@0.2.4': + dependencies: + '@emnapi/core': 1.3.1 + '@emnapi/runtime': 1.3.1 + '@tybys/wasm-util': 0.9.0 + + '@nodelib/fs.scandir@2.1.5': + dependencies: + '@nodelib/fs.stat': 2.0.5 + run-parallel: 1.2.0 + + '@nodelib/fs.stat@2.0.5': {} + + '@nodelib/fs.walk@1.2.8': + dependencies: + '@nodelib/fs.scandir': 2.1.5 + fastq: 1.18.0 + + '@npmcli/agent@2.2.2': + dependencies: + agent-base: 7.1.3 + http-proxy-agent: 7.0.2 + https-proxy-agent: 7.0.6 + lru-cache: 10.4.3 + socks-proxy-agent: 8.0.5 + transitivePeerDependencies: + - supports-color + + '@npmcli/arborist@7.5.4': + dependencies: + '@isaacs/string-locale-compare': 1.1.0 + '@npmcli/fs': 3.1.1 + '@npmcli/installed-package-contents': 2.1.0 + '@npmcli/map-workspaces': 3.0.6 + '@npmcli/metavuln-calculator': 7.1.1 + '@npmcli/name-from-folder': 2.0.0 + '@npmcli/node-gyp': 3.0.0 + '@npmcli/package-json': 5.2.0 + '@npmcli/query': 3.1.0 + '@npmcli/redact': 2.0.1 + '@npmcli/run-script': 8.1.0 + bin-links: 4.0.4 + cacache: 18.0.4 + common-ancestor-path: 1.0.1 + hosted-git-info: 7.0.2 + json-parse-even-better-errors: 3.0.2 + json-stringify-nice: 1.1.4 + lru-cache: 10.4.3 + minimatch: 9.0.5 + nopt: 7.2.1 + npm-install-checks: 6.3.0 + npm-package-arg: 11.0.2 + npm-pick-manifest: 9.1.0 + npm-registry-fetch: 17.1.0 + pacote: 18.0.6 + parse-conflict-json: 3.0.1 + proc-log: 4.2.0 + proggy: 2.0.0 + promise-all-reject-late: 1.0.1 + promise-call-limit: 3.0.2 + read-package-json-fast: 3.0.2 + semver: 7.6.3 + ssri: 10.0.6 + treeverse: 3.0.0 + walk-up-path: 3.0.1 + transitivePeerDependencies: + - bluebird + - supports-color + + '@npmcli/fs@3.1.1': + dependencies: + semver: 7.6.3 + + '@npmcli/git@5.0.8': + dependencies: + '@npmcli/promise-spawn': 7.0.2 + ini: 4.1.3 + lru-cache: 10.4.3 + npm-pick-manifest: 9.1.0 + proc-log: 4.2.0 + promise-inflight: 1.0.1 + promise-retry: 2.0.1 + semver: 7.6.3 + which: 4.0.0 + transitivePeerDependencies: + - bluebird + + '@npmcli/installed-package-contents@2.1.0': + dependencies: + npm-bundled: 3.0.1 + npm-normalize-package-bin: 3.0.1 + + '@npmcli/map-workspaces@3.0.6': + dependencies: + '@npmcli/name-from-folder': 2.0.0 + glob: 10.4.5 + minimatch: 9.0.5 + read-package-json-fast: 3.0.2 + + '@npmcli/metavuln-calculator@7.1.1': + dependencies: + cacache: 18.0.4 + json-parse-even-better-errors: 3.0.2 + pacote: 18.0.6 + proc-log: 4.2.0 + semver: 7.6.3 + transitivePeerDependencies: + - bluebird + - supports-color + + '@npmcli/name-from-folder@2.0.0': {} + + '@npmcli/node-gyp@3.0.0': {} + + '@npmcli/package-json@5.2.0': + dependencies: + '@npmcli/git': 5.0.8 + glob: 10.4.5 + hosted-git-info: 7.0.2 + json-parse-even-better-errors: 3.0.2 + normalize-package-data: 6.0.2 + proc-log: 4.2.0 + semver: 7.6.3 + transitivePeerDependencies: + - bluebird + + '@npmcli/promise-spawn@7.0.2': + dependencies: + which: 4.0.0 + + '@npmcli/query@3.1.0': + dependencies: + postcss-selector-parser: 6.1.2 + + '@npmcli/redact@2.0.1': {} + + '@npmcli/run-script@8.1.0': + dependencies: + '@npmcli/node-gyp': 3.0.0 + '@npmcli/package-json': 5.2.0 + '@npmcli/promise-spawn': 7.0.2 + node-gyp: 10.3.1 + proc-log: 4.2.0 + which: 4.0.0 + transitivePeerDependencies: + - bluebird + - supports-color + + '@nx/devkit@20.3.3(nx@20.3.3)': + dependencies: + ejs: 3.1.10 + enquirer: 2.3.6 + ignore: 5.3.2 + minimatch: 9.0.3 + nx: 20.3.3 + semver: 7.6.3 + tmp: 0.2.3 + tslib: 2.8.1 + yargs-parser: 21.1.1 + + '@nx/nx-darwin-arm64@20.3.3': + optional: true + + '@nx/nx-darwin-x64@20.3.3': + optional: true + + '@nx/nx-freebsd-x64@20.3.3': + optional: true + + '@nx/nx-linux-arm-gnueabihf@20.3.3': + optional: true + + '@nx/nx-linux-arm64-gnu@20.3.3': + optional: true + + '@nx/nx-linux-arm64-musl@20.3.3': + optional: true + + '@nx/nx-linux-x64-gnu@20.3.3': + optional: true + + '@nx/nx-linux-x64-musl@20.3.3': + optional: true + + '@nx/nx-win32-arm64-msvc@20.3.3': + optional: true + + '@nx/nx-win32-x64-msvc@20.3.3': + optional: true + + '@octokit/auth-token@3.0.4': {} + + '@octokit/core@4.2.4(encoding@0.1.13)': + dependencies: + '@octokit/auth-token': 3.0.4 + '@octokit/graphql': 5.0.6(encoding@0.1.13) + '@octokit/request': 6.2.8(encoding@0.1.13) + '@octokit/request-error': 3.0.3 + '@octokit/types': 9.3.2 + before-after-hook: 2.2.3 + universal-user-agent: 6.0.1 + transitivePeerDependencies: + - encoding + + '@octokit/endpoint@7.0.6': + dependencies: + '@octokit/types': 9.3.2 + is-plain-object: 5.0.0 + universal-user-agent: 6.0.1 + + '@octokit/graphql@5.0.6(encoding@0.1.13)': + dependencies: + '@octokit/request': 6.2.8(encoding@0.1.13) + '@octokit/types': 9.3.2 + universal-user-agent: 6.0.1 + transitivePeerDependencies: + - encoding + + '@octokit/openapi-types@18.1.1': {} + + '@octokit/plugin-enterprise-rest@6.0.1': {} + + '@octokit/plugin-paginate-rest@6.1.2(@octokit/core@4.2.4(encoding@0.1.13))': + dependencies: + '@octokit/core': 4.2.4(encoding@0.1.13) + '@octokit/tsconfig': 1.0.2 + '@octokit/types': 9.3.2 + + '@octokit/plugin-request-log@1.0.4(@octokit/core@4.2.4(encoding@0.1.13))': + dependencies: + '@octokit/core': 4.2.4(encoding@0.1.13) + + '@octokit/plugin-rest-endpoint-methods@7.2.3(@octokit/core@4.2.4(encoding@0.1.13))': + dependencies: + '@octokit/core': 4.2.4(encoding@0.1.13) + '@octokit/types': 10.0.0 + + '@octokit/request-error@3.0.3': + dependencies: + '@octokit/types': 9.3.2 + deprecation: 2.3.1 + once: 1.4.0 + + '@octokit/request@6.2.8(encoding@0.1.13)': + dependencies: + '@octokit/endpoint': 7.0.6 + '@octokit/request-error': 3.0.3 + '@octokit/types': 9.3.2 + is-plain-object: 5.0.0 + node-fetch: 2.6.7(encoding@0.1.13) + universal-user-agent: 6.0.1 + transitivePeerDependencies: + - encoding + + '@octokit/rest@19.0.11(encoding@0.1.13)': + dependencies: + '@octokit/core': 4.2.4(encoding@0.1.13) + '@octokit/plugin-paginate-rest': 6.1.2(@octokit/core@4.2.4(encoding@0.1.13)) + '@octokit/plugin-request-log': 1.0.4(@octokit/core@4.2.4(encoding@0.1.13)) + '@octokit/plugin-rest-endpoint-methods': 7.2.3(@octokit/core@4.2.4(encoding@0.1.13)) + transitivePeerDependencies: + - encoding + + '@octokit/tsconfig@1.0.2': {} + + '@octokit/types@10.0.0': + dependencies: + '@octokit/openapi-types': 18.1.1 + + '@octokit/types@9.3.2': + dependencies: + '@octokit/openapi-types': 18.1.1 + + '@oslojs/encoding@1.1.0': {} + + '@peggyjs/from-mem@1.3.5': + dependencies: + semver: 7.6.3 + + '@pkgjs/parseargs@0.11.0': + optional: true + + '@polka/url@1.0.0-next.28': {} + + '@react-aria/focus@3.19.1(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': + dependencies: + '@react-aria/interactions': 3.23.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@react-aria/utils': 3.27.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@react-types/shared': 3.27.0(react@19.0.0) + '@swc/helpers': 0.5.15 + clsx: 2.1.1 + react: 19.0.0 + react-dom: 19.0.0(react@19.0.0) + + '@react-aria/interactions@3.23.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': + dependencies: + '@react-aria/ssr': 3.9.7(react@19.0.0) + '@react-aria/utils': 3.27.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@react-types/shared': 3.27.0(react@19.0.0) + '@swc/helpers': 0.5.15 + react: 19.0.0 + react-dom: 19.0.0(react@19.0.0) + + '@react-aria/ssr@3.9.7(react@19.0.0)': + dependencies: + '@swc/helpers': 0.5.15 + react: 19.0.0 + + '@react-aria/utils@3.27.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': + dependencies: + '@react-aria/ssr': 3.9.7(react@19.0.0) + '@react-stately/utils': 3.10.5(react@19.0.0) + '@react-types/shared': 3.27.0(react@19.0.0) + '@swc/helpers': 0.5.15 + clsx: 2.1.1 + react: 19.0.0 + react-dom: 19.0.0(react@19.0.0) + + '@react-stately/utils@3.10.5(react@19.0.0)': + dependencies: + '@swc/helpers': 0.5.15 + react: 19.0.0 + + '@react-types/shared@3.27.0(react@19.0.0)': + dependencies: + react: 19.0.0 + + '@replit/codemirror-emacs@6.1.0(@codemirror/autocomplete@6.18.4)(@codemirror/commands@6.8.0)(@codemirror/search@6.5.8)(@codemirror/state@6.5.1)(@codemirror/view@6.36.2)': + dependencies: + '@codemirror/autocomplete': 6.18.4 + '@codemirror/commands': 6.8.0 + '@codemirror/search': 6.5.8 + '@codemirror/state': 6.5.1 + '@codemirror/view': 6.36.2 + + '@replit/codemirror-vim@6.2.1(@codemirror/commands@6.8.0)(@codemirror/language@6.10.8)(@codemirror/search@6.5.8)(@codemirror/state@6.5.1)(@codemirror/view@6.36.2)': + dependencies: + '@codemirror/commands': 6.8.0 + '@codemirror/language': 6.10.8 + '@codemirror/search': 6.5.8 + '@codemirror/state': 6.5.1 + '@codemirror/view': 6.36.2 + + '@replit/codemirror-vscode-keymap@6.0.2(@codemirror/autocomplete@6.18.4)(@codemirror/commands@6.8.0)(@codemirror/language@6.10.8)(@codemirror/lint@6.8.4)(@codemirror/search@6.5.8)(@codemirror/state@6.5.1)(@codemirror/view@6.36.2)': + dependencies: + '@codemirror/autocomplete': 6.18.4 + '@codemirror/commands': 6.8.0 + '@codemirror/language': 6.10.8 + '@codemirror/lint': 6.8.4 + '@codemirror/search': 6.5.8 + '@codemirror/state': 6.5.1 + '@codemirror/view': 6.36.2 + + '@rollup/plugin-babel@5.3.1(@babel/core@7.26.7)(@types/babel__core@7.20.5)(rollup@2.79.2)': + dependencies: + '@babel/core': 7.26.7 + '@babel/helper-module-imports': 7.25.9 + '@rollup/pluginutils': 3.1.0(rollup@2.79.2) + rollup: 2.79.2 + optionalDependencies: + '@types/babel__core': 7.20.5 + transitivePeerDependencies: + - supports-color + + '@rollup/plugin-node-resolve@11.2.1(rollup@2.79.2)': + dependencies: + '@rollup/pluginutils': 3.1.0(rollup@2.79.2) + '@types/resolve': 1.17.1 + builtin-modules: 3.3.0 + deepmerge: 4.3.1 + is-module: 1.0.0 + resolve: 1.22.10 + rollup: 2.79.2 + + '@rollup/plugin-node-resolve@15.3.1(rollup@4.32.0)': + dependencies: + '@rollup/pluginutils': 5.1.4(rollup@4.32.0) + '@types/resolve': 1.20.2 + deepmerge: 4.3.1 + is-module: 1.0.0 + resolve: 1.22.10 + optionalDependencies: + rollup: 4.32.0 + + '@rollup/plugin-replace@2.4.2(rollup@2.79.2)': + dependencies: + '@rollup/pluginutils': 3.1.0(rollup@2.79.2) + magic-string: 0.25.9 + rollup: 2.79.2 + + '@rollup/plugin-replace@6.0.2(rollup@4.32.0)': + dependencies: + '@rollup/pluginutils': 5.1.4(rollup@4.32.0) + magic-string: 0.30.17 + optionalDependencies: + rollup: 4.32.0 + + '@rollup/pluginutils@3.1.0(rollup@2.79.2)': + dependencies: + '@types/estree': 0.0.39 + estree-walker: 1.0.1 + picomatch: 2.3.1 + rollup: 2.79.2 + + '@rollup/pluginutils@5.1.4(rollup@2.79.2)': + dependencies: + '@types/estree': 1.0.6 + estree-walker: 2.0.2 + picomatch: 4.0.2 + optionalDependencies: + rollup: 2.79.2 + + '@rollup/pluginutils@5.1.4(rollup@4.32.0)': + dependencies: + '@types/estree': 1.0.6 + estree-walker: 2.0.2 + picomatch: 4.0.2 + optionalDependencies: + rollup: 4.32.0 + + '@rollup/rollup-android-arm-eabi@4.32.0': + optional: true + + '@rollup/rollup-android-arm64@4.32.0': + optional: true + + '@rollup/rollup-darwin-arm64@4.32.0': + optional: true + + '@rollup/rollup-darwin-x64@4.32.0': + optional: true + + '@rollup/rollup-freebsd-arm64@4.32.0': + optional: true + + '@rollup/rollup-freebsd-x64@4.32.0': + optional: true + + '@rollup/rollup-linux-arm-gnueabihf@4.32.0': + optional: true + + '@rollup/rollup-linux-arm-musleabihf@4.32.0': + optional: true + + '@rollup/rollup-linux-arm64-gnu@4.32.0': + optional: true + + '@rollup/rollup-linux-arm64-musl@4.32.0': + optional: true + + '@rollup/rollup-linux-loongarch64-gnu@4.32.0': + optional: true + + '@rollup/rollup-linux-powerpc64le-gnu@4.32.0': + optional: true + + '@rollup/rollup-linux-riscv64-gnu@4.32.0': + optional: true + + '@rollup/rollup-linux-s390x-gnu@4.32.0': + optional: true + + '@rollup/rollup-linux-x64-gnu@4.32.0': + optional: true + + '@rollup/rollup-linux-x64-musl@4.32.0': + optional: true + + '@rollup/rollup-win32-arm64-msvc@4.32.0': + optional: true + + '@rollup/rollup-win32-ia32-msvc@4.32.0': + optional: true + + '@rollup/rollup-win32-x64-msvc@4.32.0': + optional: true + + '@rtsao/scc@1.1.0': {} + + '@shikijs/core@1.29.1': + dependencies: + '@shikijs/engine-javascript': 1.29.1 + '@shikijs/engine-oniguruma': 1.29.1 + '@shikijs/types': 1.29.1 + '@shikijs/vscode-textmate': 10.0.1 + '@types/hast': 3.0.4 + hast-util-to-html: 9.0.4 + + '@shikijs/engine-javascript@1.29.1': + dependencies: + '@shikijs/types': 1.29.1 + '@shikijs/vscode-textmate': 10.0.1 + oniguruma-to-es: 2.3.0 + + '@shikijs/engine-oniguruma@1.29.1': + dependencies: + '@shikijs/types': 1.29.1 + '@shikijs/vscode-textmate': 10.0.1 + + '@shikijs/langs@1.29.1': + dependencies: + '@shikijs/types': 1.29.1 + + '@shikijs/themes@1.29.1': + dependencies: + '@shikijs/types': 1.29.1 + + '@shikijs/types@1.29.1': + dependencies: + '@shikijs/vscode-textmate': 10.0.1 + '@types/hast': 3.0.4 + + '@shikijs/vscode-textmate@10.0.1': {} + + '@sigstore/bundle@2.3.2': + dependencies: + '@sigstore/protobuf-specs': 0.3.3 + + '@sigstore/core@1.1.0': {} + + '@sigstore/protobuf-specs@0.3.3': {} + + '@sigstore/sign@2.3.2': + dependencies: + '@sigstore/bundle': 2.3.2 + '@sigstore/core': 1.1.0 + '@sigstore/protobuf-specs': 0.3.3 + make-fetch-happen: 13.0.1 + proc-log: 4.2.0 + promise-retry: 2.0.1 + transitivePeerDependencies: + - supports-color + + '@sigstore/tuf@2.3.4': + dependencies: + '@sigstore/protobuf-specs': 0.3.3 + tuf-js: 2.2.1 + transitivePeerDependencies: + - supports-color + + '@sigstore/verify@1.2.1': + dependencies: + '@sigstore/bundle': 2.3.2 + '@sigstore/core': 1.1.0 + '@sigstore/protobuf-specs': 0.3.3 + + '@sinclair/typebox@0.27.8': {} + + '@supabase/auth-js@2.67.3': + dependencies: + '@supabase/node-fetch': 2.6.15 + + '@supabase/functions-js@2.4.4': + dependencies: + '@supabase/node-fetch': 2.6.15 + + '@supabase/node-fetch@2.6.15': + dependencies: + whatwg-url: 5.0.0 + + '@supabase/postgrest-js@1.18.1': + dependencies: + '@supabase/node-fetch': 2.6.15 + + '@supabase/realtime-js@2.11.2': + dependencies: + '@supabase/node-fetch': 2.6.15 + '@types/phoenix': 1.6.6 + '@types/ws': 8.5.14 + ws: 8.18.0 + transitivePeerDependencies: + - bufferutil + - utf-8-validate + + '@supabase/storage-js@2.7.1': + dependencies: + '@supabase/node-fetch': 2.6.15 + + '@supabase/supabase-js@2.48.1': + dependencies: + '@supabase/auth-js': 2.67.3 + '@supabase/functions-js': 2.4.4 + '@supabase/node-fetch': 2.6.15 + '@supabase/postgrest-js': 1.18.1 + '@supabase/realtime-js': 2.11.2 + '@supabase/storage-js': 2.7.1 + transitivePeerDependencies: + - bufferutil + - utf-8-validate + + '@surma/rollup-plugin-off-main-thread@2.2.3': + dependencies: + ejs: 3.1.10 + json5: 2.2.3 + magic-string: 0.25.9 + string.prototype.matchall: 4.0.12 + + '@swc/helpers@0.5.15': + dependencies: + tslib: 2.8.1 + + '@tailwindcss/forms@0.5.10(tailwindcss@3.4.17)': + dependencies: + mini-svg-data-uri: 1.4.4 + tailwindcss: 3.4.17 + + '@tailwindcss/node@4.0.0': + dependencies: + enhanced-resolve: 5.18.0 + jiti: 2.4.2 + tailwindcss: 4.0.0 + + '@tailwindcss/oxide-android-arm64@4.0.0': + optional: true + + '@tailwindcss/oxide-darwin-arm64@4.0.0': + optional: true + + '@tailwindcss/oxide-darwin-x64@4.0.0': + optional: true + + '@tailwindcss/oxide-freebsd-x64@4.0.0': + optional: true + + '@tailwindcss/oxide-linux-arm-gnueabihf@4.0.0': + optional: true + + '@tailwindcss/oxide-linux-arm64-gnu@4.0.0': + optional: true + + '@tailwindcss/oxide-linux-arm64-musl@4.0.0': + optional: true + + '@tailwindcss/oxide-linux-x64-gnu@4.0.0': + optional: true + + '@tailwindcss/oxide-linux-x64-musl@4.0.0': + optional: true + + '@tailwindcss/oxide-win32-arm64-msvc@4.0.0': + optional: true + + '@tailwindcss/oxide-win32-x64-msvc@4.0.0': + optional: true + + '@tailwindcss/oxide@4.0.0': + optionalDependencies: + '@tailwindcss/oxide-android-arm64': 4.0.0 + '@tailwindcss/oxide-darwin-arm64': 4.0.0 + '@tailwindcss/oxide-darwin-x64': 4.0.0 + '@tailwindcss/oxide-freebsd-x64': 4.0.0 + '@tailwindcss/oxide-linux-arm-gnueabihf': 4.0.0 + '@tailwindcss/oxide-linux-arm64-gnu': 4.0.0 + '@tailwindcss/oxide-linux-arm64-musl': 4.0.0 + '@tailwindcss/oxide-linux-x64-gnu': 4.0.0 + '@tailwindcss/oxide-linux-x64-musl': 4.0.0 + '@tailwindcss/oxide-win32-arm64-msvc': 4.0.0 + '@tailwindcss/oxide-win32-x64-msvc': 4.0.0 + + '@tailwindcss/postcss@4.0.0': + dependencies: + '@alloc/quick-lru': 5.2.0 + '@tailwindcss/node': 4.0.0 + '@tailwindcss/oxide': 4.0.0 + lightningcss: 1.29.1 + postcss: 8.5.1 + tailwindcss: 4.0.0 + + '@tailwindcss/typography@0.5.16(tailwindcss@3.4.17)': + dependencies: + lodash.castarray: 4.4.0 + lodash.isplainobject: 4.0.6 + lodash.merge: 4.6.2 + postcss-selector-parser: 6.0.10 + tailwindcss: 3.4.17 + + '@tanstack/react-virtual@3.11.2(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': + dependencies: + '@tanstack/virtual-core': 3.11.2 + react: 19.0.0 + react-dom: 19.0.0(react@19.0.0) + + '@tanstack/virtual-core@3.11.2': {} + + '@tauri-apps/api@2.2.0': {} + + '@tauri-apps/cli-darwin-arm64@2.2.7': + optional: true + + '@tauri-apps/cli-darwin-x64@2.2.7': + optional: true + + '@tauri-apps/cli-linux-arm-gnueabihf@2.2.7': + optional: true + + '@tauri-apps/cli-linux-arm64-gnu@2.2.7': + optional: true + + '@tauri-apps/cli-linux-arm64-musl@2.2.7': + optional: true + + '@tauri-apps/cli-linux-x64-gnu@2.2.7': + optional: true + + '@tauri-apps/cli-linux-x64-musl@2.2.7': + optional: true + + '@tauri-apps/cli-win32-arm64-msvc@2.2.7': + optional: true + + '@tauri-apps/cli-win32-ia32-msvc@2.2.7': + optional: true + + '@tauri-apps/cli-win32-x64-msvc@2.2.7': + optional: true + + '@tauri-apps/cli@2.2.7': + optionalDependencies: + '@tauri-apps/cli-darwin-arm64': 2.2.7 + '@tauri-apps/cli-darwin-x64': 2.2.7 + '@tauri-apps/cli-linux-arm-gnueabihf': 2.2.7 + '@tauri-apps/cli-linux-arm64-gnu': 2.2.7 + '@tauri-apps/cli-linux-arm64-musl': 2.2.7 + '@tauri-apps/cli-linux-x64-gnu': 2.2.7 + '@tauri-apps/cli-linux-x64-musl': 2.2.7 + '@tauri-apps/cli-win32-arm64-msvc': 2.2.7 + '@tauri-apps/cli-win32-ia32-msvc': 2.2.7 + '@tauri-apps/cli-win32-x64-msvc': 2.2.7 + + '@tauri-apps/plugin-clipboard-manager@2.2.0': + dependencies: + '@tauri-apps/api': 2.2.0 + + '@tonaljs/abc-notation@4.9.1': + dependencies: + '@tonaljs/pitch-distance': 5.0.5 + '@tonaljs/pitch-note': 6.1.0 + + '@tonaljs/array@4.8.4': + dependencies: + '@tonaljs/pitch-note': 6.1.0 + + '@tonaljs/chord-detect@4.9.1': + dependencies: + '@tonaljs/chord-type': 5.1.1 + '@tonaljs/pcset': 4.10.1 + '@tonaljs/pitch-note': 6.1.0 + + '@tonaljs/chord-type@4.8.2': + dependencies: + '@tonaljs/core': 4.10.4 + '@tonaljs/pcset': 4.10.1 + + '@tonaljs/chord-type@5.1.1': + dependencies: + '@tonaljs/pcset': 4.10.1 + + '@tonaljs/chord@4.10.2': + dependencies: + '@tonaljs/chord-detect': 4.9.1 + '@tonaljs/chord-type': 4.8.2 + '@tonaljs/collection': 4.9.0 + '@tonaljs/core': 4.10.4 + '@tonaljs/pcset': 4.10.1 + '@tonaljs/scale-type': 4.9.1 + + '@tonaljs/chord@6.1.1': + dependencies: + '@tonaljs/chord-detect': 4.9.1 + '@tonaljs/chord-type': 5.1.1 + '@tonaljs/collection': 4.9.0 + '@tonaljs/interval': 5.1.0 + '@tonaljs/pcset': 4.10.1 + '@tonaljs/pitch-distance': 5.0.5 + '@tonaljs/pitch-note': 6.1.0 + '@tonaljs/scale-type': 4.9.1 + + '@tonaljs/collection@4.9.0': {} + + '@tonaljs/core@4.10.4': + dependencies: + '@tonaljs/pitch': 5.0.1 + '@tonaljs/pitch-distance': 5.0.2 + '@tonaljs/pitch-interval': 5.0.2 + '@tonaljs/pitch-note': 5.0.3 + + '@tonaljs/duration-value@4.9.0': {} + + '@tonaljs/interval@4.8.2': + dependencies: + '@tonaljs/pitch': 5.0.2 + '@tonaljs/pitch-distance': 5.0.5 + '@tonaljs/pitch-interval': 5.0.2 + + '@tonaljs/interval@5.1.0': + dependencies: + '@tonaljs/pitch': 5.0.2 + '@tonaljs/pitch-distance': 5.0.5 + '@tonaljs/pitch-interval': 6.1.0 + + '@tonaljs/key@4.11.1': + dependencies: + '@tonaljs/note': 4.12.0 + '@tonaljs/pitch-note': 6.1.0 + '@tonaljs/roman-numeral': 4.9.1 + + '@tonaljs/midi@4.10.1': + dependencies: + '@tonaljs/pitch-note': 6.1.0 + + '@tonaljs/mode@4.9.1': + dependencies: + '@tonaljs/collection': 4.9.0 + '@tonaljs/interval': 5.1.0 + '@tonaljs/pcset': 4.10.1 + '@tonaljs/pitch-distance': 5.0.5 + '@tonaljs/pitch-note': 6.1.0 + '@tonaljs/scale-type': 4.9.1 + + '@tonaljs/note@4.12.0': + dependencies: + '@tonaljs/midi': 4.10.1 + '@tonaljs/pitch': 5.0.2 + '@tonaljs/pitch-distance': 5.0.5 + '@tonaljs/pitch-interval': 6.1.0 + '@tonaljs/pitch-note': 6.1.0 + + '@tonaljs/pcset@4.10.1': + dependencies: + '@tonaljs/collection': 4.9.0 + '@tonaljs/pitch': 5.0.2 + '@tonaljs/pitch-distance': 5.0.5 + '@tonaljs/pitch-interval': 6.1.0 + '@tonaljs/pitch-note': 6.1.0 + + '@tonaljs/pitch-distance@5.0.2': + dependencies: + '@tonaljs/pitch': 5.0.1 + '@tonaljs/pitch-interval': 5.0.2 + '@tonaljs/pitch-note': 5.0.3 + + '@tonaljs/pitch-distance@5.0.5': + dependencies: + '@tonaljs/pitch': 5.0.2 + '@tonaljs/pitch-interval': 6.1.0 + '@tonaljs/pitch-note': 6.1.0 + + '@tonaljs/pitch-interval@5.0.2': + dependencies: + '@tonaljs/pitch': 5.0.1 + + '@tonaljs/pitch-interval@6.1.0': + dependencies: + '@tonaljs/pitch': 5.0.2 + + '@tonaljs/pitch-note@5.0.3': + dependencies: + '@tonaljs/pitch': 5.0.1 + + '@tonaljs/pitch-note@6.1.0': + dependencies: + '@tonaljs/pitch': 5.0.2 + + '@tonaljs/pitch@5.0.1': {} + + '@tonaljs/pitch@5.0.2': {} + + '@tonaljs/progression@4.9.1': + dependencies: + '@tonaljs/chord': 6.1.1 + '@tonaljs/pitch-distance': 5.0.5 + '@tonaljs/pitch-interval': 6.1.0 + '@tonaljs/pitch-note': 6.1.0 + '@tonaljs/roman-numeral': 4.9.1 + + '@tonaljs/range@4.9.1': + dependencies: + '@tonaljs/collection': 4.9.0 + '@tonaljs/midi': 4.10.1 + + '@tonaljs/roman-numeral@4.9.1': + dependencies: + '@tonaljs/pitch': 5.0.2 + '@tonaljs/pitch-interval': 6.1.0 + '@tonaljs/pitch-note': 6.1.0 + + '@tonaljs/scale-type@4.9.1': + dependencies: + '@tonaljs/pcset': 4.10.1 + + '@tonaljs/scale@4.13.1': + dependencies: + '@tonaljs/chord-type': 5.1.1 + '@tonaljs/collection': 4.9.0 + '@tonaljs/note': 4.12.0 + '@tonaljs/pcset': 4.10.1 + '@tonaljs/pitch-distance': 5.0.5 + '@tonaljs/pitch-note': 6.1.0 + '@tonaljs/scale-type': 4.9.1 + + '@tonaljs/time-signature@4.9.0': {} + + '@tonaljs/tonal@4.10.0': + dependencies: + '@tonaljs/abc-notation': 4.9.1 + '@tonaljs/array': 4.8.4 + '@tonaljs/chord': 4.10.2 + '@tonaljs/chord-type': 4.8.2 + '@tonaljs/collection': 4.9.0 + '@tonaljs/core': 4.10.4 + '@tonaljs/duration-value': 4.9.0 + '@tonaljs/interval': 4.8.2 + '@tonaljs/key': 4.11.1 + '@tonaljs/midi': 4.10.1 + '@tonaljs/mode': 4.9.1 + '@tonaljs/note': 4.12.0 + '@tonaljs/pcset': 4.10.1 + '@tonaljs/progression': 4.9.1 + '@tonaljs/range': 4.9.1 + '@tonaljs/roman-numeral': 4.9.1 + '@tonaljs/scale': 4.13.1 + '@tonaljs/scale-type': 4.9.1 + '@tonaljs/time-signature': 4.9.0 + + '@tufjs/canonical-json@2.0.0': {} + + '@tufjs/models@2.0.1': + dependencies: + '@tufjs/canonical-json': 2.0.0 + minimatch: 9.0.5 + + '@tybys/wasm-util@0.9.0': + dependencies: + tslib: 2.8.1 + + '@types/acorn@4.0.6': + dependencies: + '@types/estree': 1.0.6 + + '@types/babel__core@7.20.5': + dependencies: + '@babel/parser': 7.26.7 + '@babel/types': 7.26.7 + '@types/babel__generator': 7.6.8 + '@types/babel__template': 7.4.4 + '@types/babel__traverse': 7.20.6 + + '@types/babel__generator@7.6.8': + dependencies: + '@babel/types': 7.26.7 + + '@types/babel__template@7.4.4': + dependencies: + '@babel/parser': 7.26.7 + '@babel/types': 7.26.7 + + '@types/babel__traverse@7.20.6': + dependencies: + '@babel/types': 7.26.7 + + '@types/cookie@0.6.0': {} + + '@types/debug@4.1.12': + dependencies: + '@types/ms': 2.1.0 + + '@types/estree-jsx@1.0.5': + dependencies: + '@types/estree': 1.0.6 + + '@types/estree@0.0.39': {} + + '@types/estree@1.0.6': {} + + '@types/hast@3.0.4': + dependencies: + '@types/unist': 3.0.3 + + '@types/json-schema@7.0.15': {} + + '@types/json5@0.0.29': {} + + '@types/linkify-it@5.0.0': {} + + '@types/markdown-it@14.1.2': + dependencies: + '@types/linkify-it': 5.0.0 + '@types/mdurl': 2.0.0 + + '@types/mdast@4.0.4': + dependencies: + '@types/unist': 3.0.3 + + '@types/mdurl@2.0.0': {} + + '@types/mdx@2.0.13': {} + + '@types/minimatch@3.0.5': {} + + '@types/minimist@1.2.5': {} + + '@types/ms@2.1.0': {} + + '@types/nlcst@2.0.3': + dependencies: + '@types/unist': 3.0.3 + + '@types/node@22.10.10': + dependencies: + undici-types: 6.20.0 + + '@types/normalize-package-data@2.4.4': {} + + '@types/phoenix@1.6.6': {} + + '@types/react-dom@19.0.3(@types/react@19.0.8)': + dependencies: + '@types/react': 19.0.8 + + '@types/react@19.0.8': + dependencies: + csstype: 3.1.3 + + '@types/resolve@1.17.1': + dependencies: + '@types/node': 22.10.10 + + '@types/resolve@1.20.2': {} + + '@types/trusted-types@2.0.7': {} + + '@types/ungap__structured-clone@1.2.0': {} + + '@types/unist@2.0.11': {} + + '@types/unist@3.0.3': {} + + '@types/webmidi@2.1.0': {} + + '@types/ws@8.5.14': + dependencies: + '@types/node': 22.10.10 + + '@typescript-eslint/types@7.18.0': {} + + '@typescript-eslint/typescript-estree@7.18.0(typescript@5.7.3)': + dependencies: + '@typescript-eslint/types': 7.18.0 + '@typescript-eslint/visitor-keys': 7.18.0 + debug: 4.4.0 + globby: 11.1.0 + is-glob: 4.0.3 + minimatch: 9.0.5 + semver: 7.6.3 + ts-api-utils: 1.4.3(typescript@5.7.3) + optionalDependencies: + typescript: 5.7.3 + transitivePeerDependencies: + - supports-color + + '@typescript-eslint/visitor-keys@7.18.0': + dependencies: + '@typescript-eslint/types': 7.18.0 + eslint-visitor-keys: 3.4.3 + + '@ungap/structured-clone@1.3.0': {} + + '@vite-pwa/astro@0.5.0(astro@5.1.9(@types/node@22.10.10)(jiti@2.4.2)(lightningcss@1.29.1)(rollup@2.79.2)(terser@5.37.0)(typescript@5.7.3)(yaml@2.7.0))(vite-plugin-pwa@0.21.1(vite@6.0.11(@types/node@22.10.10)(jiti@2.4.2)(lightningcss@1.29.1)(terser@5.37.0)(yaml@2.7.0))(workbox-build@7.0.0(@types/babel__core@7.20.5))(workbox-window@7.3.0))': + dependencies: + astro: 5.1.9(@types/node@22.10.10)(jiti@2.4.2)(lightningcss@1.29.1)(rollup@2.79.2)(terser@5.37.0)(typescript@5.7.3)(yaml@2.7.0) + vite-plugin-pwa: 0.21.1(vite@6.0.11(@types/node@22.10.10)(jiti@2.4.2)(lightningcss@1.29.1)(terser@5.37.0)(yaml@2.7.0))(workbox-build@7.0.0(@types/babel__core@7.20.5))(workbox-window@7.3.0) + + '@vitejs/plugin-react@4.3.4(vite@6.0.11(@types/node@22.10.10)(jiti@2.4.2)(lightningcss@1.29.1)(terser@5.37.0)(yaml@2.7.0))': + dependencies: + '@babel/core': 7.26.7 + '@babel/plugin-transform-react-jsx-self': 7.25.9(@babel/core@7.26.7) + '@babel/plugin-transform-react-jsx-source': 7.25.9(@babel/core@7.26.7) + '@types/babel__core': 7.20.5 + react-refresh: 0.14.2 + vite: 6.0.11(@types/node@22.10.10)(jiti@2.4.2)(lightningcss@1.29.1)(terser@5.37.0)(yaml@2.7.0) + transitivePeerDependencies: + - supports-color + + '@vitest/coverage-v8@3.0.4(vitest@3.0.4)': + dependencies: + '@ampproject/remapping': 2.3.0 + '@bcoe/v8-coverage': 1.0.2 + debug: 4.4.0 + istanbul-lib-coverage: 3.2.2 + istanbul-lib-report: 3.0.1 + istanbul-lib-source-maps: 5.0.6 + istanbul-reports: 3.1.7 + magic-string: 0.30.17 + magicast: 0.3.5 + std-env: 3.8.0 + test-exclude: 7.0.1 + tinyrainbow: 2.0.0 + vitest: 3.0.4(@types/debug@4.1.12)(@types/node@22.10.10)(@vitest/ui@3.0.4)(jiti@2.4.2)(lightningcss@1.29.1)(terser@5.37.0)(yaml@2.7.0) + transitivePeerDependencies: + - supports-color + + '@vitest/expect@3.0.4': + dependencies: + '@vitest/spy': 3.0.4 + '@vitest/utils': 3.0.4 + chai: 5.1.2 + tinyrainbow: 2.0.0 + + '@vitest/mocker@3.0.4(vite@6.0.11(@types/node@22.10.10)(jiti@2.4.2)(lightningcss@1.29.1)(terser@5.37.0)(yaml@2.7.0))': + dependencies: + '@vitest/spy': 3.0.4 + estree-walker: 3.0.3 + magic-string: 0.30.17 + optionalDependencies: + vite: 6.0.11(@types/node@22.10.10)(jiti@2.4.2)(lightningcss@1.29.1)(terser@5.37.0)(yaml@2.7.0) + + '@vitest/pretty-format@3.0.4': + dependencies: + tinyrainbow: 2.0.0 + + '@vitest/runner@3.0.4': + dependencies: + '@vitest/utils': 3.0.4 + pathe: 2.0.2 + + '@vitest/snapshot@3.0.4': + dependencies: + '@vitest/pretty-format': 3.0.4 + magic-string: 0.30.17 + pathe: 2.0.2 + + '@vitest/spy@3.0.4': + dependencies: + tinyspy: 3.0.2 + + '@vitest/ui@3.0.4(vitest@3.0.4)': + dependencies: + '@vitest/utils': 3.0.4 + fflate: 0.8.2 + flatted: 3.3.2 + pathe: 2.0.2 + sirv: 3.0.0 + tinyglobby: 0.2.10 + tinyrainbow: 2.0.0 + vitest: 3.0.4(@types/debug@4.1.12)(@types/node@22.10.10)(@vitest/ui@3.0.4)(jiti@2.4.2)(lightningcss@1.29.1)(terser@5.37.0)(yaml@2.7.0) + + '@vitest/utils@3.0.4': + dependencies: + '@vitest/pretty-format': 3.0.4 + loupe: 3.1.2 + tinyrainbow: 2.0.0 + + '@vue/compiler-core@3.5.13': + dependencies: + '@babel/parser': 7.26.7 + '@vue/shared': 3.5.13 + entities: 4.5.0 + estree-walker: 2.0.2 + source-map-js: 1.2.1 + + '@vue/compiler-dom@3.5.13': + dependencies: + '@vue/compiler-core': 3.5.13 + '@vue/shared': 3.5.13 + + '@vue/compiler-sfc@3.5.13': + dependencies: + '@babel/parser': 7.26.7 + '@vue/compiler-core': 3.5.13 + '@vue/compiler-dom': 3.5.13 + '@vue/compiler-ssr': 3.5.13 + '@vue/shared': 3.5.13 + estree-walker: 2.0.2 + magic-string: 0.30.17 + postcss: 8.5.1 + source-map-js: 1.2.1 + + '@vue/compiler-ssr@3.5.13': + dependencies: + '@vue/compiler-dom': 3.5.13 + '@vue/shared': 3.5.13 + + '@vue/shared@3.5.13': {} + + '@yarnpkg/lockfile@1.1.0': {} + + '@yarnpkg/parsers@3.0.2': + dependencies: + js-yaml: 3.14.1 + tslib: 2.8.1 + + '@zkochan/js-yaml@0.0.7': + dependencies: + argparse: 2.0.1 + + JSONStream@1.3.5: + dependencies: + jsonparse: 1.3.1 + through: 2.3.8 + + abbrev@2.0.0: {} + + acorn-jsx@5.3.2(acorn@8.14.0): + dependencies: + acorn: 8.14.0 + + acorn@8.14.0: {} + + add-stream@1.0.0: {} + + agent-base@6.0.2: + dependencies: + debug: 4.4.0 + transitivePeerDependencies: + - supports-color + + agent-base@7.1.3: {} + + aggregate-error@3.1.0: + dependencies: + clean-stack: 2.2.0 + indent-string: 4.0.0 + + ajv@6.12.6: + dependencies: + fast-deep-equal: 3.1.3 + fast-json-stable-stringify: 2.1.0 + json-schema-traverse: 0.4.1 + uri-js: 4.4.1 + + ajv@8.17.1: + dependencies: + fast-deep-equal: 3.1.3 + fast-uri: 3.0.6 + json-schema-traverse: 1.0.0 + require-from-string: 2.0.2 + + algoliasearch@5.20.0: + dependencies: + '@algolia/client-abtesting': 5.20.0 + '@algolia/client-analytics': 5.20.0 + '@algolia/client-common': 5.20.0 + '@algolia/client-insights': 5.20.0 + '@algolia/client-personalization': 5.20.0 + '@algolia/client-query-suggestions': 5.20.0 + '@algolia/client-search': 5.20.0 + '@algolia/ingestion': 1.20.0 + '@algolia/monitoring': 1.20.0 + '@algolia/recommend': 5.20.0 + '@algolia/requester-browser-xhr': 5.20.0 + '@algolia/requester-fetch': 5.20.0 + '@algolia/requester-node-http': 5.20.0 + + amdefine@1.0.1: + optional: true + + ansi-align@3.0.1: + dependencies: + string-width: 4.2.3 + + ansi-colors@4.1.3: {} + + ansi-escapes@4.3.2: + dependencies: + type-fest: 0.21.3 + + ansi-regex@3.0.1: {} + + ansi-regex@5.0.1: {} + + ansi-regex@6.1.0: {} + + ansi-styles@4.3.0: + dependencies: + color-convert: 2.0.1 + + ansi-styles@5.2.0: {} + + ansi-styles@6.2.1: {} + + any-promise@1.3.0: {} + + anymatch@3.1.3: + dependencies: + normalize-path: 3.0.0 + picomatch: 2.3.1 + + app-module-path@2.2.0: {} + + aproba@2.0.0: {} + + arg@5.0.2: {} + + argparse@1.0.10: + dependencies: + sprintf-js: 1.0.3 + + argparse@2.0.1: {} + + aria-query@5.3.2: {} + + array-buffer-byte-length@1.0.2: + dependencies: + call-bound: 1.0.3 + is-array-buffer: 3.0.5 + + array-differ@3.0.0: {} + + array-ify@1.0.0: {} + + array-includes@3.1.8: + dependencies: + call-bind: 1.0.8 + define-properties: 1.2.1 + es-abstract: 1.23.9 + es-object-atoms: 1.1.1 + get-intrinsic: 1.2.7 + is-string: 1.1.1 + + array-iterate@2.0.1: {} + + array-union@2.1.0: {} + + array.prototype.findlastindex@1.2.5: + dependencies: + call-bind: 1.0.8 + define-properties: 1.2.1 + es-abstract: 1.23.9 + es-errors: 1.3.0 + es-object-atoms: 1.1.1 + es-shim-unscopables: 1.0.2 + + array.prototype.flat@1.3.3: + dependencies: + call-bind: 1.0.8 + define-properties: 1.2.1 + es-abstract: 1.23.9 + es-shim-unscopables: 1.0.2 + + array.prototype.flatmap@1.3.3: + dependencies: + call-bind: 1.0.8 + define-properties: 1.2.1 + es-abstract: 1.23.9 + es-shim-unscopables: 1.0.2 + + arraybuffer.prototype.slice@1.0.4: + dependencies: + array-buffer-byte-length: 1.0.2 + call-bind: 1.0.8 + define-properties: 1.2.1 + es-abstract: 1.23.9 + es-errors: 1.3.0 + get-intrinsic: 1.2.7 + is-array-buffer: 3.0.5 + + arrify@1.0.1: {} + + arrify@2.0.1: {} + + assertion-error@2.0.1: {} + + ast-module-types@6.0.0: {} + + astring@1.9.0: {} + + astro@5.1.9(@types/node@22.10.10)(jiti@2.4.2)(lightningcss@1.29.1)(rollup@2.79.2)(terser@5.37.0)(typescript@5.7.3)(yaml@2.7.0): + dependencies: + '@astrojs/compiler': 2.10.3 + '@astrojs/internal-helpers': 0.4.2 + '@astrojs/markdown-remark': 6.0.2 + '@astrojs/telemetry': 3.2.0 + '@oslojs/encoding': 1.1.0 + '@rollup/pluginutils': 5.1.4(rollup@2.79.2) + '@types/cookie': 0.6.0 + acorn: 8.14.0 + aria-query: 5.3.2 + axobject-query: 4.1.0 + boxen: 8.0.1 + ci-info: 4.1.0 + clsx: 2.1.1 + common-ancestor-path: 1.0.1 + cookie: 0.7.2 + cssesc: 3.0.0 + debug: 4.4.0 + deterministic-object-hash: 2.0.2 + devalue: 5.1.1 + diff: 5.2.0 + dlv: 1.1.3 + dset: 3.1.4 + es-module-lexer: 1.6.0 + esbuild: 0.24.2 + estree-walker: 3.0.3 + fast-glob: 3.3.3 + flattie: 1.1.1 + github-slugger: 2.0.0 + html-escaper: 3.0.3 + http-cache-semantics: 4.1.1 + js-yaml: 4.1.0 + kleur: 4.1.5 + magic-string: 0.30.17 + magicast: 0.3.5 + micromatch: 4.0.8 + mrmime: 2.0.0 + neotraverse: 0.6.18 + p-limit: 6.2.0 + p-queue: 8.1.0 + preferred-pm: 4.0.0 + prompts: 2.4.2 + rehype: 13.0.2 + semver: 7.6.3 + shiki: 1.29.1 + tinyexec: 0.3.2 + tsconfck: 3.1.4(typescript@5.7.3) + ultrahtml: 1.5.3 + unist-util-visit: 5.0.0 + unstorage: 1.14.4 + vfile: 6.0.3 + vite: 6.0.11(@types/node@22.10.10)(jiti@2.4.2)(lightningcss@1.29.1)(terser@5.37.0)(yaml@2.7.0) + vitefu: 1.0.5(vite@6.0.11(@types/node@22.10.10)(jiti@2.4.2)(lightningcss@1.29.1)(terser@5.37.0)(yaml@2.7.0)) + which-pm: 3.0.0 + xxhash-wasm: 1.1.0 + yargs-parser: 21.1.1 + yocto-spinner: 0.1.2 + zod: 3.24.1 + zod-to-json-schema: 3.24.1(zod@3.24.1) + zod-to-ts: 1.2.0(typescript@5.7.3)(zod@3.24.1) + optionalDependencies: + sharp: 0.33.5 + transitivePeerDependencies: + - '@azure/app-configuration' + - '@azure/cosmos' + - '@azure/data-tables' + - '@azure/identity' + - '@azure/keyvault-secrets' + - '@azure/storage-blob' + - '@capacitor/preferences' + - '@deno/kv' + - '@netlify/blobs' + - '@planetscale/database' + - '@types/node' + - '@upstash/redis' + - '@vercel/blob' + - '@vercel/kv' + - aws4fetch + - db0 + - idb-keyval + - ioredis + - jiti + - less + - lightningcss + - rollup + - sass + - sass-embedded + - stylus + - sugarss + - supports-color + - terser + - tsx + - typescript + - uploadthing + - yaml + + async-function@1.0.0: {} + + async@0.2.10: + optional: true + + async@3.2.6: {} + + asynckit@0.4.0: {} + + at-least-node@1.0.0: {} + + automation-events@7.1.5: + dependencies: + '@babel/runtime': 7.26.7 + tslib: 2.8.1 + + autoprefixer@10.4.20(postcss@8.5.1): + dependencies: + browserslist: 4.24.4 + caniuse-lite: 1.0.30001695 + fraction.js: 4.3.7 + normalize-range: 0.1.2 + picocolors: 1.1.1 + postcss: 8.5.1 + postcss-value-parser: 4.2.0 + + available-typed-arrays@1.0.7: + dependencies: + possible-typed-array-names: 1.0.0 + + axios@1.7.9: + dependencies: + follow-redirects: 1.15.9 + form-data: 4.0.1 + proxy-from-env: 1.1.0 + transitivePeerDependencies: + - debug + + axobject-query@4.1.0: {} + + babel-plugin-add-module-exports@0.2.1: {} + + babel-plugin-polyfill-corejs2@0.4.12(@babel/core@7.26.7): + dependencies: + '@babel/compat-data': 7.26.5 + '@babel/core': 7.26.7 + '@babel/helper-define-polyfill-provider': 0.6.3(@babel/core@7.26.7) + semver: 6.3.1 + transitivePeerDependencies: + - supports-color + + babel-plugin-polyfill-corejs3@0.10.6(@babel/core@7.26.7): + dependencies: + '@babel/core': 7.26.7 + '@babel/helper-define-polyfill-provider': 0.6.3(@babel/core@7.26.7) + core-js-compat: 3.40.0 + transitivePeerDependencies: + - supports-color + + babel-plugin-polyfill-regenerator@0.6.3(@babel/core@7.26.7): + dependencies: + '@babel/core': 7.26.7 + '@babel/helper-define-polyfill-provider': 0.6.3(@babel/core@7.26.7) + transitivePeerDependencies: + - supports-color + + bail@2.0.2: {} + + balanced-match@1.0.2: {} + + base-64@1.0.0: {} + + base64-js@1.5.1: {} + + before-after-hook@2.2.3: {} + + bin-links@4.0.4: + dependencies: + cmd-shim: 6.0.3 + npm-normalize-package-bin: 3.0.1 + read-cmd-shim: 4.0.0 + write-file-atomic: 5.0.1 + + binary-extensions@2.3.0: {} + + bl@4.1.0: + dependencies: + buffer: 5.7.1 + inherits: 2.0.4 + readable-stream: 3.6.2 + + bluebird@3.7.2: {} + + boxen@8.0.1: + dependencies: + ansi-align: 3.0.1 + camelcase: 8.0.0 + chalk: 5.4.1 + cli-boxes: 3.0.0 + string-width: 7.2.0 + type-fest: 4.33.0 + widest-line: 5.0.0 + wrap-ansi: 9.0.0 + + brace-expansion@1.1.11: + dependencies: + balanced-match: 1.0.2 + concat-map: 0.0.1 + + brace-expansion@2.0.1: + dependencies: + balanced-match: 1.0.2 + + braces@3.0.3: + dependencies: + fill-range: 7.1.1 + + browserslist@4.24.4: + dependencies: + caniuse-lite: 1.0.30001695 + electron-to-chromium: 1.5.88 + node-releases: 2.0.19 + update-browserslist-db: 1.1.2(browserslist@4.24.4) + + buffer-alloc-unsafe@1.1.0: {} + + buffer-alloc@1.2.0: + dependencies: + buffer-alloc-unsafe: 1.1.0 + buffer-fill: 1.0.0 + + buffer-fill@1.0.0: {} + + buffer-from@1.1.2: {} + + buffer@5.7.1: + dependencies: + base64-js: 1.5.1 + ieee754: 1.2.1 + + builtin-modules@3.3.0: {} + + builtins@5.1.0: + dependencies: + semver: 7.6.3 + + byte-size@8.1.1: {} + + cac@6.7.14: {} + + cacache@18.0.4: + dependencies: + '@npmcli/fs': 3.1.1 + fs-minipass: 3.0.3 + glob: 10.4.5 + lru-cache: 10.4.3 + minipass: 7.1.2 + minipass-collect: 2.0.1 + minipass-flush: 1.0.5 + minipass-pipeline: 1.2.4 + p-map: 4.0.0 + ssri: 10.0.6 + tar: 6.2.1 + unique-filename: 3.0.0 + + call-bind-apply-helpers@1.0.1: + dependencies: + es-errors: 1.3.0 + function-bind: 1.1.2 + + call-bind@1.0.8: + dependencies: + call-bind-apply-helpers: 1.0.1 + es-define-property: 1.0.1 + get-intrinsic: 1.2.7 + set-function-length: 1.2.2 + + call-bound@1.0.3: + dependencies: + call-bind-apply-helpers: 1.0.1 + get-intrinsic: 1.2.7 + + callsites@3.1.0: {} + + camelcase-css@2.0.1: {} + + camelcase-keys@6.2.2: + dependencies: + camelcase: 5.3.1 + map-obj: 4.3.0 + quick-lru: 4.0.1 + + camelcase@5.3.1: {} + + camelcase@8.0.0: {} + + caniuse-lite@1.0.30001695: {} + + catharsis@0.9.0: + dependencies: + lodash: 4.17.21 + + ccount@2.0.1: {} + + chai@5.1.2: + dependencies: + assertion-error: 2.0.1 + check-error: 2.1.1 + deep-eql: 5.0.2 + loupe: 3.1.2 + pathval: 2.0.0 + + chalk@4.1.0: + dependencies: + ansi-styles: 4.3.0 + supports-color: 7.2.0 + + chalk@4.1.2: + dependencies: + ansi-styles: 4.3.0 + supports-color: 7.2.0 + + chalk@5.4.1: {} + + character-entities-html4@2.1.0: {} + + character-entities-legacy@3.0.0: {} + + character-entities@2.0.2: {} + + character-reference-invalid@2.0.1: {} + + chardet@0.7.0: {} + + check-error@2.1.1: {} + + chokidar@3.6.0: + dependencies: + anymatch: 3.1.3 + braces: 3.0.3 + glob-parent: 5.1.2 + is-binary-path: 2.1.0 + is-glob: 4.0.3 + normalize-path: 3.0.0 + readdirp: 3.6.0 + optionalDependencies: + fsevents: 2.3.3 + + chord-voicings@0.0.1: + dependencies: + '@tonaljs/tonal': 4.10.0 + + chownr@1.1.4: {} + + chownr@2.0.0: {} + + ci-info@3.9.0: {} + + ci-info@4.1.0: {} + + claviature@0.1.0: {} + + cldr-plurals@1.0.0: {} + + clean-stack@2.2.0: {} + + cli-boxes@3.0.0: {} + + cli-cursor@3.1.0: + dependencies: + restore-cursor: 3.1.0 + + cli-spinners@2.6.1: {} + + cli-spinners@2.9.2: {} + + cli-width@3.0.0: {} + + cliui@6.0.0: + dependencies: + string-width: 4.2.3 + strip-ansi: 6.0.1 + wrap-ansi: 6.2.0 + + cliui@7.0.4: + dependencies: + string-width: 4.2.3 + strip-ansi: 6.0.1 + wrap-ansi: 7.0.0 + + cliui@8.0.1: + dependencies: + string-width: 4.2.3 + strip-ansi: 6.0.1 + wrap-ansi: 7.0.0 + + clone-buffer@1.0.0: {} + + clone-deep@4.0.1: + dependencies: + is-plain-object: 2.0.4 + kind-of: 6.0.3 + shallow-clone: 3.0.1 + + clone-stats@1.0.0: {} + + clone@1.0.4: {} + + clone@2.1.2: {} + + cloneable-readable@1.1.3: + dependencies: + inherits: 2.0.4 + process-nextick-args: 2.0.1 + readable-stream: 2.3.8 + + clsx@2.1.1: {} + + cmd-shim@6.0.3: {} + + collapse-white-space@2.1.0: {} + + color-convert@2.0.1: + dependencies: + color-name: 1.1.4 + + color-name@1.1.4: {} + + color-string@1.9.1: + dependencies: + color-name: 1.1.4 + simple-swizzle: 0.2.2 + + color-support@1.1.3: {} + + color@4.2.3: + dependencies: + color-convert: 2.0.1 + color-string: 1.9.1 + + columnify@1.6.0: + dependencies: + strip-ansi: 6.0.1 + wcwidth: 1.0.1 + + combined-stream@1.0.8: + dependencies: + delayed-stream: 1.0.0 + + comlink@4.4.2: {} + + comma-separated-tokens@2.0.3: {} + + commander@12.1.0: {} + + commander@2.20.3: {} + + commander@4.1.1: {} + + common-ancestor-path@1.0.1: {} + + common-tags@1.8.2: {} + + compare-func@2.0.0: + dependencies: + array-ify: 1.0.0 + dot-prop: 5.3.0 + + concat-map@0.0.1: {} + + concat-stream@2.0.0: + dependencies: + buffer-from: 1.1.2 + inherits: 2.0.4 + readable-stream: 3.6.2 + typedarray: 0.0.6 + + consola@3.4.0: {} + + console-control-strings@1.1.0: {} + + conventional-changelog-angular@7.0.0: + dependencies: + compare-func: 2.0.0 + + conventional-changelog-core@5.0.1: + dependencies: + add-stream: 1.0.0 + conventional-changelog-writer: 6.0.1 + conventional-commits-parser: 4.0.0 + dateformat: 3.0.3 + get-pkg-repo: 4.2.1 + git-raw-commits: 3.0.0 + git-remote-origin-url: 2.0.0 + git-semver-tags: 5.0.1 + normalize-package-data: 3.0.3 + read-pkg: 3.0.0 + read-pkg-up: 3.0.0 + + conventional-changelog-preset-loader@3.0.0: {} + + conventional-changelog-writer@6.0.1: + dependencies: + conventional-commits-filter: 3.0.0 + dateformat: 3.0.3 + handlebars: 4.7.8 + json-stringify-safe: 5.0.1 + meow: 8.1.2 + semver: 7.6.3 + split: 1.0.1 + + conventional-commits-filter@3.0.0: + dependencies: + lodash.ismatch: 4.4.0 + modify-values: 1.0.1 + + conventional-commits-parser@4.0.0: + dependencies: + JSONStream: 1.3.5 + is-text-path: 1.0.1 + meow: 8.1.2 + split2: 3.2.2 + + conventional-recommended-bump@7.0.1: + dependencies: + concat-stream: 2.0.0 + conventional-changelog-preset-loader: 3.0.0 + conventional-commits-filter: 3.0.0 + conventional-commits-parser: 4.0.0 + git-raw-commits: 3.0.0 + git-semver-tags: 5.0.1 + meow: 8.1.2 + + convert-source-map@2.0.0: {} + + cookie-es@1.2.2: {} + + cookie@0.7.2: {} + + core-js-compat@3.40.0: + dependencies: + browserslist: 4.24.4 + + core-util-is@1.0.3: {} + + cosmiconfig@9.0.0(typescript@5.7.3): + dependencies: + env-paths: 2.2.1 + import-fresh: 3.3.0 + js-yaml: 4.1.0 + parse-json: 5.2.0 + optionalDependencies: + typescript: 5.7.3 + + cowsay@1.6.0: + dependencies: + get-stdin: 8.0.0 + string-width: 2.1.1 + strip-final-newline: 2.0.0 + yargs: 15.4.1 + + crelt@1.0.6: {} + + cross-spawn@7.0.6: + dependencies: + path-key: 3.1.1 + shebang-command: 2.0.0 + which: 2.0.2 + + crossws@0.3.3: + dependencies: + uncrypto: 0.1.3 + + crypto-random-string@2.0.0: {} + + cssesc@3.0.0: {} + + csstype@3.1.3: {} + + csv-generate@4.4.2: {} + + csv-parse@5.6.0: {} + + csv-stringify@6.5.2: {} + + csv@6.3.11: + dependencies: + csv-generate: 4.4.2 + csv-parse: 5.6.0 + csv-stringify: 6.5.2 + stream-transform: 3.3.3 + + dargs@7.0.0: {} + + data-uri-to-buffer@4.0.1: {} + + data-view-buffer@1.0.2: + dependencies: + call-bound: 1.0.3 + es-errors: 1.3.0 + is-data-view: 1.0.2 + + data-view-byte-length@1.0.2: + dependencies: + call-bound: 1.0.3 + es-errors: 1.3.0 + is-data-view: 1.0.2 + + data-view-byte-offset@1.0.1: + dependencies: + call-bound: 1.0.3 + es-errors: 1.3.0 + is-data-view: 1.0.2 + + date-fns@4.1.0: {} + + dateformat@3.0.3: {} + + dct@0.1.0: {} + + debug@2.6.9: + dependencies: + ms: 2.0.0 + + debug@3.2.7: + dependencies: + ms: 2.1.3 + + debug@4.4.0: + dependencies: + ms: 2.1.3 + + decamelize-keys@1.1.1: + dependencies: + decamelize: 1.2.0 + map-obj: 1.0.1 + + decamelize@1.2.0: {} + + decode-named-character-reference@1.0.2: + dependencies: + character-entities: 2.0.2 + + decompress-response@6.0.0: + dependencies: + mimic-response: 3.1.0 + + dedent@1.5.3: {} + + deep-eql@5.0.2: {} + + deep-extend@0.6.0: {} + + deep-is@0.1.4: {} + + deepmerge@4.3.1: {} + + defaults@1.0.4: + dependencies: + clone: 1.0.4 + + define-data-property@1.1.4: + dependencies: + es-define-property: 1.0.1 + es-errors: 1.3.0 + gopd: 1.2.0 + + define-lazy-prop@2.0.0: {} + + define-properties@1.2.1: + dependencies: + define-data-property: 1.1.4 + has-property-descriptors: 1.0.2 + object-keys: 1.1.1 + + defu@6.1.4: {} + + delayed-stream@1.0.0: {} + + dependency-tree@11.0.1: + dependencies: + commander: 12.1.0 + filing-cabinet: 5.0.2 + precinct: 12.1.2 + typescript: 5.7.3 + transitivePeerDependencies: + - supports-color + + deprecation@2.3.1: {} + + dequal@2.0.3: {} + + destr@2.0.3: {} + + detect-indent@5.0.0: {} + + detect-libc@1.0.3: {} + + detect-libc@2.0.3: {} + + detective-amd@6.0.0: + dependencies: + ast-module-types: 6.0.0 + escodegen: 2.1.0 + get-amd-module-type: 6.0.0 + node-source-walk: 7.0.0 + + detective-cjs@6.0.0: + dependencies: + ast-module-types: 6.0.0 + node-source-walk: 7.0.0 + + detective-es6@5.0.0: + dependencies: + node-source-walk: 7.0.0 + + detective-postcss@7.0.0(postcss@8.5.1): + dependencies: + is-url: 1.2.4 + postcss: 8.5.1 + postcss-values-parser: 6.0.2(postcss@8.5.1) + + detective-sass@6.0.0: + dependencies: + gonzales-pe: 4.3.0 + node-source-walk: 7.0.0 + + detective-scss@5.0.0: + dependencies: + gonzales-pe: 4.3.0 + node-source-walk: 7.0.0 + + detective-stylus@5.0.0: {} + + detective-typescript@13.0.0(typescript@5.7.3): + dependencies: + '@typescript-eslint/typescript-estree': 7.18.0(typescript@5.7.3) + ast-module-types: 6.0.0 + node-source-walk: 7.0.0 + typescript: 5.7.3 + transitivePeerDependencies: + - supports-color + + detective-vue2@2.1.1(typescript@5.7.3): + dependencies: + '@dependents/detective-less': 5.0.0 + '@vue/compiler-sfc': 3.5.13 + detective-es6: 5.0.0 + detective-sass: 6.0.0 + detective-scss: 5.0.0 + detective-stylus: 5.0.0 + detective-typescript: 13.0.0(typescript@5.7.3) + typescript: 5.7.3 + transitivePeerDependencies: + - supports-color + + deterministic-object-hash@2.0.2: + dependencies: + base-64: 1.0.0 + + devalue@5.1.1: {} + + devlop@1.1.0: + dependencies: + dequal: 2.0.3 + + didyoumean@1.2.2: {} + + diff-sequences@29.6.3: {} + + diff@5.2.0: {} + + dir-glob@3.0.1: + dependencies: + path-type: 4.0.0 + + djipevents@2.0.7: + dependencies: + '@babel/runtime': 7.26.7 + + dlv@1.1.3: {} + + doctrine@2.1.0: + dependencies: + esutils: 2.0.3 + + dot-prop@5.3.0: + dependencies: + is-obj: 2.0.0 + + dotenv-expand@11.0.7: + dependencies: + dotenv: 16.4.7 + + dotenv@16.4.7: {} + + dset@3.1.4: {} + + dunder-proto@1.0.1: + dependencies: + call-bind-apply-helpers: 1.0.1 + es-errors: 1.3.0 + gopd: 1.2.0 + + duplexer@0.1.2: {} + + eastasianwidth@0.2.0: {} + + ejs@3.1.10: + dependencies: + jake: 10.9.2 + + electron-to-chromium@1.5.88: {} + + emoji-regex-xs@1.0.0: {} + + emoji-regex@10.4.0: {} + + emoji-regex@8.0.0: {} + + emoji-regex@9.2.2: {} + + encoding@0.1.13: + dependencies: + iconv-lite: 0.6.3 + optional: true + + end-of-stream@1.4.4: + dependencies: + once: 1.4.0 + + enhanced-resolve@5.18.0: + dependencies: + graceful-fs: 4.2.11 + tapable: 2.2.1 + + enquirer@2.3.6: + dependencies: + ansi-colors: 4.1.3 + + entities@4.5.0: {} + + env-paths@2.2.1: {} + + envinfo@7.13.0: {} + + err-code@2.0.3: {} + + error-ex@1.3.2: + dependencies: + is-arrayish: 0.2.1 + + es-abstract@1.23.9: + dependencies: + array-buffer-byte-length: 1.0.2 + arraybuffer.prototype.slice: 1.0.4 + available-typed-arrays: 1.0.7 + call-bind: 1.0.8 + call-bound: 1.0.3 + data-view-buffer: 1.0.2 + data-view-byte-length: 1.0.2 + data-view-byte-offset: 1.0.1 + es-define-property: 1.0.1 + es-errors: 1.3.0 + es-object-atoms: 1.1.1 + es-set-tostringtag: 2.1.0 + es-to-primitive: 1.3.0 + function.prototype.name: 1.1.8 + get-intrinsic: 1.2.7 + get-proto: 1.0.1 + get-symbol-description: 1.1.0 + globalthis: 1.0.4 + gopd: 1.2.0 + has-property-descriptors: 1.0.2 + has-proto: 1.2.0 + has-symbols: 1.1.0 + hasown: 2.0.2 + internal-slot: 1.1.0 + is-array-buffer: 3.0.5 + is-callable: 1.2.7 + is-data-view: 1.0.2 + is-regex: 1.2.1 + is-shared-array-buffer: 1.0.4 + is-string: 1.1.1 + is-typed-array: 1.1.15 + is-weakref: 1.1.0 + math-intrinsics: 1.1.0 + object-inspect: 1.13.3 + object-keys: 1.1.1 + object.assign: 4.1.7 + own-keys: 1.0.1 + regexp.prototype.flags: 1.5.4 + safe-array-concat: 1.1.3 + safe-push-apply: 1.0.0 + safe-regex-test: 1.1.0 + set-proto: 1.0.0 + string.prototype.trim: 1.2.10 + string.prototype.trimend: 1.0.9 + string.prototype.trimstart: 1.0.8 + typed-array-buffer: 1.0.3 + typed-array-byte-length: 1.0.3 + typed-array-byte-offset: 1.0.4 + typed-array-length: 1.0.7 + unbox-primitive: 1.1.0 + which-typed-array: 1.1.18 + + es-define-property@1.0.1: {} + + es-errors@1.3.0: {} + + es-module-lexer@1.6.0: {} + + es-object-atoms@1.1.1: + dependencies: + es-errors: 1.3.0 + + es-set-tostringtag@2.1.0: + dependencies: + es-errors: 1.3.0 + get-intrinsic: 1.2.7 + has-tostringtag: 1.0.2 + hasown: 2.0.2 + + es-shim-unscopables@1.0.2: + dependencies: + hasown: 2.0.2 + + es-to-primitive@1.3.0: + dependencies: + is-callable: 1.2.7 + is-date-object: 1.1.0 + is-symbol: 1.1.1 + + esast-util-from-estree@2.0.0: + dependencies: + '@types/estree-jsx': 1.0.5 + devlop: 1.1.0 + estree-util-visit: 2.0.0 + unist-util-position-from-estree: 2.0.0 + + esast-util-from-js@2.0.1: + dependencies: + '@types/estree-jsx': 1.0.5 + acorn: 8.14.0 + esast-util-from-estree: 2.0.0 + vfile-message: 4.0.2 + + esbuild@0.24.2: + optionalDependencies: + '@esbuild/aix-ppc64': 0.24.2 + '@esbuild/android-arm': 0.24.2 + '@esbuild/android-arm64': 0.24.2 + '@esbuild/android-x64': 0.24.2 + '@esbuild/darwin-arm64': 0.24.2 + '@esbuild/darwin-x64': 0.24.2 + '@esbuild/freebsd-arm64': 0.24.2 + '@esbuild/freebsd-x64': 0.24.2 + '@esbuild/linux-arm': 0.24.2 + '@esbuild/linux-arm64': 0.24.2 + '@esbuild/linux-ia32': 0.24.2 + '@esbuild/linux-loong64': 0.24.2 + '@esbuild/linux-mips64el': 0.24.2 + '@esbuild/linux-ppc64': 0.24.2 + '@esbuild/linux-riscv64': 0.24.2 + '@esbuild/linux-s390x': 0.24.2 + '@esbuild/linux-x64': 0.24.2 + '@esbuild/netbsd-arm64': 0.24.2 + '@esbuild/netbsd-x64': 0.24.2 + '@esbuild/openbsd-arm64': 0.24.2 + '@esbuild/openbsd-x64': 0.24.2 + '@esbuild/sunos-x64': 0.24.2 + '@esbuild/win32-arm64': 0.24.2 + '@esbuild/win32-ia32': 0.24.2 + '@esbuild/win32-x64': 0.24.2 + + escalade@3.2.0: {} + + escape-string-regexp@1.0.5: {} + + escape-string-regexp@2.0.0: {} + + escape-string-regexp@4.0.0: {} + + escape-string-regexp@5.0.0: {} + + escodegen@2.1.0: + dependencies: + esprima: 4.0.1 + estraverse: 5.3.0 + esutils: 2.0.3 + optionalDependencies: + source-map: 0.6.1 + + eslint-import-resolver-node@0.3.9: + dependencies: + debug: 3.2.7 + is-core-module: 2.16.1 + resolve: 1.22.10 + transitivePeerDependencies: + - supports-color + + eslint-module-utils@2.12.0(eslint-import-resolver-node@0.3.9)(eslint@9.19.0(jiti@2.4.2)): + dependencies: + debug: 3.2.7 + optionalDependencies: + eslint: 9.19.0(jiti@2.4.2) + eslint-import-resolver-node: 0.3.9 + transitivePeerDependencies: + - supports-color + + eslint-plugin-es@4.1.0(eslint@9.19.0(jiti@2.4.2)): + dependencies: + eslint: 9.19.0(jiti@2.4.2) + eslint-utils: 2.1.0 + regexpp: 3.2.0 + + eslint-plugin-import@2.31.0(eslint@9.19.0(jiti@2.4.2)): + dependencies: + '@rtsao/scc': 1.1.0 + array-includes: 3.1.8 + array.prototype.findlastindex: 1.2.5 + array.prototype.flat: 1.3.3 + array.prototype.flatmap: 1.3.3 + debug: 3.2.7 + doctrine: 2.1.0 + eslint: 9.19.0(jiti@2.4.2) + eslint-import-resolver-node: 0.3.9 + eslint-module-utils: 2.12.0(eslint-import-resolver-node@0.3.9)(eslint@9.19.0(jiti@2.4.2)) + hasown: 2.0.2 + is-core-module: 2.16.1 + is-glob: 4.0.3 + minimatch: 3.1.2 + object.fromentries: 2.0.8 + object.groupby: 1.0.3 + object.values: 1.2.1 + semver: 6.3.1 + string.prototype.trimend: 1.0.9 + tsconfig-paths: 3.15.0 + transitivePeerDependencies: + - eslint-import-resolver-typescript + - eslint-import-resolver-webpack + - supports-color + + eslint-plugin-n@15.7.0(eslint@9.19.0(jiti@2.4.2)): + dependencies: + builtins: 5.1.0 + eslint: 9.19.0(jiti@2.4.2) + eslint-plugin-es: 4.1.0(eslint@9.19.0(jiti@2.4.2)) + eslint-utils: 3.0.0(eslint@9.19.0(jiti@2.4.2)) + ignore: 5.3.2 + is-core-module: 2.16.1 + minimatch: 3.1.2 + resolve: 1.22.10 + semver: 7.6.3 + + eslint-scope@8.2.0: + dependencies: + esrecurse: 4.3.0 + estraverse: 5.3.0 + + eslint-utils@2.1.0: + dependencies: + eslint-visitor-keys: 1.3.0 + + eslint-utils@3.0.0(eslint@9.19.0(jiti@2.4.2)): + dependencies: + eslint: 9.19.0(jiti@2.4.2) + eslint-visitor-keys: 2.1.0 + + eslint-visitor-keys@1.3.0: {} + + eslint-visitor-keys@2.1.0: {} + + eslint-visitor-keys@3.4.3: {} + + eslint-visitor-keys@4.2.0: {} + + eslint@9.19.0(jiti@2.4.2): + dependencies: + '@eslint-community/eslint-utils': 4.4.1(eslint@9.19.0(jiti@2.4.2)) + '@eslint-community/regexpp': 4.12.1 + '@eslint/config-array': 0.19.1 + '@eslint/core': 0.10.0 + '@eslint/eslintrc': 3.2.0 + '@eslint/js': 9.19.0 + '@eslint/plugin-kit': 0.2.5 + '@humanfs/node': 0.16.6 + '@humanwhocodes/module-importer': 1.0.1 + '@humanwhocodes/retry': 0.4.1 + '@types/estree': 1.0.6 + '@types/json-schema': 7.0.15 + ajv: 6.12.6 + chalk: 4.1.2 + cross-spawn: 7.0.6 + debug: 4.4.0 + escape-string-regexp: 4.0.0 + eslint-scope: 8.2.0 + eslint-visitor-keys: 4.2.0 + espree: 10.3.0 + esquery: 1.6.0 + esutils: 2.0.3 + fast-deep-equal: 3.1.3 + file-entry-cache: 8.0.0 + find-up: 5.0.0 + glob-parent: 6.0.2 + ignore: 5.3.2 + imurmurhash: 0.1.4 + is-glob: 4.0.3 + json-stable-stringify-without-jsonify: 1.0.1 + lodash.merge: 4.6.2 + minimatch: 3.1.2 + natural-compare: 1.4.0 + optionator: 0.9.4 + optionalDependencies: + jiti: 2.4.2 + transitivePeerDependencies: + - supports-color + + espree@10.3.0: + dependencies: + acorn: 8.14.0 + acorn-jsx: 5.3.2(acorn@8.14.0) + eslint-visitor-keys: 4.2.0 + + esprima@4.0.1: {} + + esquery@1.6.0: + dependencies: + estraverse: 5.3.0 + + esrecurse@4.3.0: + dependencies: + estraverse: 5.3.0 + + estraverse@5.3.0: {} + + estree-util-attach-comments@3.0.0: + dependencies: + '@types/estree': 1.0.6 + + estree-util-build-jsx@3.0.1: + dependencies: + '@types/estree-jsx': 1.0.5 + devlop: 1.1.0 + estree-util-is-identifier-name: 3.0.0 + estree-walker: 3.0.3 + + estree-util-is-identifier-name@3.0.0: {} + + estree-util-scope@1.0.0: + dependencies: + '@types/estree': 1.0.6 + devlop: 1.1.0 + + estree-util-to-js@2.0.0: + dependencies: + '@types/estree-jsx': 1.0.5 + astring: 1.9.0 + source-map: 0.7.4 + + estree-util-visit@2.0.0: + dependencies: + '@types/estree-jsx': 1.0.5 + '@types/unist': 3.0.3 + + estree-walker@1.0.1: {} + + estree-walker@2.0.2: {} + + estree-walker@3.0.3: + dependencies: + '@types/estree': 1.0.6 + + esutils@2.0.3: {} + + eventemitter3@4.0.7: {} + + eventemitter3@5.0.1: {} + + events@1.1.1: {} + + events@3.3.0: {} + + execa@5.0.0: + dependencies: + cross-spawn: 7.0.6 + get-stream: 6.0.0 + human-signals: 2.1.0 + is-stream: 2.0.0 + merge-stream: 2.0.0 + npm-run-path: 4.0.1 + onetime: 5.1.2 + signal-exit: 3.0.7 + strip-final-newline: 2.0.0 + + expand-template@2.0.3: {} + + expect-type@1.1.0: {} + + exponential-backoff@3.1.1: {} + + extend@3.0.2: {} + + external-editor@3.1.0: + dependencies: + chardet: 0.7.0 + iconv-lite: 0.4.24 + tmp: 0.0.33 + + fast-deep-equal@3.1.3: {} + + fast-glob@3.3.3: + dependencies: + '@nodelib/fs.stat': 2.0.5 + '@nodelib/fs.walk': 1.2.8 + glob-parent: 5.1.2 + merge2: 1.4.1 + micromatch: 4.0.8 + + fast-json-stable-stringify@2.1.0: {} + + fast-levenshtein@2.0.6: {} + + fast-unique-numbers@9.0.15: + dependencies: + '@babel/runtime': 7.26.7 + tslib: 2.8.1 + + fast-uri@3.0.6: {} + + fast-xml-parser@4.5.1: + dependencies: + strnum: 1.0.5 + + fastq@1.18.0: + dependencies: + reusify: 1.0.4 + + fdir@6.4.3(picomatch@4.0.2): + optionalDependencies: + picomatch: 4.0.2 + + fetch-blob@3.2.0: + dependencies: + node-domexception: 1.0.0 + web-streams-polyfill: 3.3.3 + + fflate@0.8.2: {} + + fftjs@0.0.4: + dependencies: + babel-plugin-add-module-exports: 0.2.1 + + figures@3.2.0: + dependencies: + escape-string-regexp: 1.0.5 + + file-entry-cache@8.0.0: + dependencies: + flat-cache: 4.0.1 + + filelist@1.0.4: + dependencies: + minimatch: 5.1.6 + + filing-cabinet@5.0.2: + dependencies: + app-module-path: 2.2.0 + commander: 12.1.0 + enhanced-resolve: 5.18.0 + module-definition: 6.0.0 + module-lookup-amd: 9.0.2 + resolve: 1.22.10 + resolve-dependency-path: 4.0.0 + sass-lookup: 6.0.1 + stylus-lookup: 6.0.0 + tsconfig-paths: 4.2.0 + typescript: 5.7.3 + + fill-range@7.1.1: + dependencies: + to-regex-range: 5.0.1 + + find-up-simple@1.0.0: {} + + find-up@2.1.0: + dependencies: + locate-path: 2.0.0 + + find-up@4.1.0: + dependencies: + locate-path: 5.0.0 + path-exists: 4.0.0 + + find-up@5.0.0: + dependencies: + locate-path: 6.0.0 + path-exists: 4.0.0 + + find-yarn-workspace-root2@1.2.16: + dependencies: + micromatch: 4.0.8 + pkg-dir: 4.2.0 + + flat-cache@4.0.1: + dependencies: + flatted: 3.3.2 + keyv: 4.5.4 + + flat@5.0.2: {} + + flatted@3.3.2: {} + + flattie@1.1.1: {} + + follow-redirects@1.15.9: {} + + for-each@0.3.4: + dependencies: + is-callable: 1.2.7 + + foreground-child@3.3.0: + dependencies: + cross-spawn: 7.0.6 + signal-exit: 4.1.0 + + form-data@4.0.1: + dependencies: + asynckit: 0.4.0 + combined-stream: 1.0.8 + mime-types: 2.1.35 + + formdata-polyfill@4.0.10: + dependencies: + fetch-blob: 3.2.0 + + fraction.js@4.3.7: {} + + fraction.js@5.2.1: {} + + from2@2.3.0: + dependencies: + inherits: 2.0.4 + readable-stream: 2.3.8 + + front-matter@4.0.2: + dependencies: + js-yaml: 3.14.1 + + fs-constants@1.0.0: {} + + fs-extra@11.3.0: + dependencies: + graceful-fs: 4.2.11 + jsonfile: 6.1.0 + universalify: 2.0.1 + + fs-extra@9.1.0: + dependencies: + at-least-node: 1.0.0 + graceful-fs: 4.2.11 + jsonfile: 6.1.0 + universalify: 2.0.1 + + fs-minipass@2.1.0: + dependencies: + minipass: 3.3.6 + + fs-minipass@3.0.3: + dependencies: + minipass: 7.1.2 + + fs.realpath@1.0.0: {} + + fsevents@2.3.3: + optional: true + + function-bind@1.1.2: {} + + function.prototype.name@1.1.8: + dependencies: + call-bind: 1.0.8 + call-bound: 1.0.3 + define-properties: 1.2.1 + functions-have-names: 1.2.3 + hasown: 2.0.2 + is-callable: 1.2.7 + + functions-have-names@1.2.3: {} + + gensync@1.0.0-beta.2: {} + + get-amd-module-type@6.0.0: + dependencies: + ast-module-types: 6.0.0 + node-source-walk: 7.0.0 + + get-caller-file@2.0.5: {} + + get-east-asian-width@1.3.0: {} + + get-intrinsic@1.2.7: + dependencies: + call-bind-apply-helpers: 1.0.1 + es-define-property: 1.0.1 + es-errors: 1.3.0 + es-object-atoms: 1.1.1 + function-bind: 1.1.2 + get-proto: 1.0.1 + gopd: 1.2.0 + has-symbols: 1.1.0 + hasown: 2.0.2 + math-intrinsics: 1.1.0 + + get-own-enumerable-property-symbols@3.0.2: {} + + get-pkg-repo@4.2.1: + dependencies: + '@hutson/parse-repository-url': 3.0.2 + hosted-git-info: 4.1.0 + through2: 2.0.5 + yargs: 16.2.0 + + get-port@5.1.1: {} + + get-proto@1.0.1: + dependencies: + dunder-proto: 1.0.1 + es-object-atoms: 1.1.1 + + get-stdin@8.0.0: {} + + get-stream@6.0.0: {} + + get-symbol-description@1.1.0: + dependencies: + call-bound: 1.0.3 + es-errors: 1.3.0 + get-intrinsic: 1.2.7 + + git-raw-commits@3.0.0: + dependencies: + dargs: 7.0.0 + meow: 8.1.2 + split2: 3.2.2 + + git-remote-origin-url@2.0.0: + dependencies: + gitconfiglocal: 1.0.0 + pify: 2.3.0 + + git-semver-tags@5.0.1: + dependencies: + meow: 8.1.2 + semver: 7.6.3 + + git-up@7.0.0: + dependencies: + is-ssh: 1.4.0 + parse-url: 8.1.0 + + git-url-parse@14.0.0: + dependencies: + git-up: 7.0.0 + + gitconfiglocal@1.0.0: + dependencies: + ini: 1.3.8 + + github-from-package@0.0.0: {} + + github-slugger@2.0.0: {} + + glob-parent@5.1.2: + dependencies: + is-glob: 4.0.3 + + glob-parent@6.0.2: + dependencies: + is-glob: 4.0.3 + + glob@10.4.5: + dependencies: + foreground-child: 3.3.0 + jackspeak: 3.4.3 + minimatch: 9.0.5 + minipass: 7.1.2 + package-json-from-dist: 1.0.1 + path-scurry: 1.11.1 + + glob@7.2.3: + dependencies: + fs.realpath: 1.0.0 + inflight: 1.0.6 + inherits: 2.0.4 + minimatch: 3.1.2 + once: 1.4.0 + path-is-absolute: 1.0.1 + + glob@9.3.5: + dependencies: + fs.realpath: 1.0.0 + minimatch: 8.0.4 + minipass: 4.2.8 + path-scurry: 1.11.1 + + globalize@0.1.1: {} + + globals@11.12.0: {} + + globals@14.0.0: {} + + globals@15.14.0: {} + + globalthis@1.0.4: + dependencies: + define-properties: 1.2.1 + gopd: 1.2.0 + + globby@11.1.0: + dependencies: + array-union: 2.1.0 + dir-glob: 3.0.1 + fast-glob: 3.3.3 + ignore: 5.3.2 + merge2: 1.4.1 + slash: 3.0.0 + + gonzales-pe@4.3.0: + dependencies: + minimist: 1.2.8 + + google-closure-compiler-java@20221102.0.1: {} + + google-closure-compiler-linux@20221102.0.1: + optional: true + + google-closure-compiler-osx@20221102.0.1: + optional: true + + google-closure-compiler-windows@20221102.0.1: + optional: true + + google-closure-compiler@20221102.0.1: + dependencies: + chalk: 4.1.2 + google-closure-compiler-java: 20221102.0.1 + minimist: 1.2.8 + vinyl: 2.2.1 + vinyl-sourcemaps-apply: 0.2.1 + optionalDependencies: + google-closure-compiler-linux: 20221102.0.1 + google-closure-compiler-osx: 20221102.0.1 + google-closure-compiler-windows: 20221102.0.1 + + google-closure-library@20221102.0.0: {} + + gopd@1.2.0: {} + + graceful-fs@4.2.11: {} + + h3@1.14.0: + dependencies: + cookie-es: 1.2.2 + crossws: 0.3.3 + defu: 6.1.4 + destr: 2.0.3 + iron-webcrypto: 1.2.1 + ohash: 1.1.4 + radix3: 1.1.2 + ufo: 1.5.4 + uncrypto: 0.1.3 + unenv: 1.10.0 + + handlebars@1.1.2: + dependencies: + optimist: 0.3.7 + optionalDependencies: + uglify-js: 2.3.6 + + handlebars@4.7.8: + dependencies: + minimist: 1.2.8 + neo-async: 2.6.2 + source-map: 0.6.1 + wordwrap: 1.0.0 + optionalDependencies: + uglify-js: 3.19.3 + + hard-rejection@2.1.0: {} + + has-bigints@1.1.0: {} + + has-flag@4.0.0: {} + + has-property-descriptors@1.0.2: + dependencies: + es-define-property: 1.0.1 + + has-proto@1.2.0: + dependencies: + dunder-proto: 1.0.1 + + has-symbols@1.1.0: {} + + has-tostringtag@1.0.2: + dependencies: + has-symbols: 1.1.0 + + has-unicode@2.0.1: {} + + has@1.0.4: {} + + hasown@2.0.2: + dependencies: + function-bind: 1.1.2 + + hast-util-from-html@2.0.3: + dependencies: + '@types/hast': 3.0.4 + devlop: 1.1.0 + hast-util-from-parse5: 8.0.2 + parse5: 7.2.1 + vfile: 6.0.3 + vfile-message: 4.0.2 + + hast-util-from-parse5@8.0.2: + dependencies: + '@types/hast': 3.0.4 + '@types/unist': 3.0.3 + devlop: 1.1.0 + hastscript: 9.0.0 + property-information: 6.5.0 + vfile: 6.0.3 + vfile-location: 5.0.3 + web-namespaces: 2.0.1 + + hast-util-has-property@1.0.4: {} + + hast-util-heading-rank@3.0.0: + dependencies: + '@types/hast': 3.0.4 + + hast-util-is-element@3.0.0: + dependencies: + '@types/hast': 3.0.4 + + hast-util-parse-selector@4.0.0: + dependencies: + '@types/hast': 3.0.4 + + hast-util-raw@9.1.0: + dependencies: + '@types/hast': 3.0.4 + '@types/unist': 3.0.3 + '@ungap/structured-clone': 1.3.0 + hast-util-from-parse5: 8.0.2 + hast-util-to-parse5: 8.0.0 + html-void-elements: 3.0.0 + mdast-util-to-hast: 13.2.0 + parse5: 7.2.1 + unist-util-position: 5.0.0 + unist-util-visit: 5.0.0 + vfile: 6.0.3 + web-namespaces: 2.0.1 + zwitch: 2.0.4 + + hast-util-to-estree@3.1.1: + dependencies: + '@types/estree': 1.0.6 + '@types/estree-jsx': 1.0.5 + '@types/hast': 3.0.4 + comma-separated-tokens: 2.0.3 + devlop: 1.1.0 + estree-util-attach-comments: 3.0.0 + estree-util-is-identifier-name: 3.0.0 + hast-util-whitespace: 3.0.0 + mdast-util-mdx-expression: 2.0.1 + mdast-util-mdx-jsx: 3.2.0 + mdast-util-mdxjs-esm: 2.0.1 + property-information: 6.5.0 + space-separated-tokens: 2.0.2 + style-to-object: 1.0.8 + unist-util-position: 5.0.0 + zwitch: 2.0.4 + transitivePeerDependencies: + - supports-color + + hast-util-to-html@9.0.4: + dependencies: + '@types/hast': 3.0.4 + '@types/unist': 3.0.3 + ccount: 2.0.1 + comma-separated-tokens: 2.0.3 + hast-util-whitespace: 3.0.0 + html-void-elements: 3.0.0 + mdast-util-to-hast: 13.2.0 + property-information: 6.5.0 + space-separated-tokens: 2.0.2 + stringify-entities: 4.0.4 + zwitch: 2.0.4 + + hast-util-to-jsx-runtime@2.3.2: + dependencies: + '@types/estree': 1.0.6 + '@types/hast': 3.0.4 + '@types/unist': 3.0.3 + comma-separated-tokens: 2.0.3 + devlop: 1.1.0 + estree-util-is-identifier-name: 3.0.0 + hast-util-whitespace: 3.0.0 + mdast-util-mdx-expression: 2.0.1 + mdast-util-mdx-jsx: 3.2.0 + mdast-util-mdxjs-esm: 2.0.1 + property-information: 6.5.0 + space-separated-tokens: 2.0.2 + style-to-object: 1.0.8 + unist-util-position: 5.0.0 + vfile-message: 4.0.2 + transitivePeerDependencies: + - supports-color + + hast-util-to-parse5@8.0.0: + dependencies: + '@types/hast': 3.0.4 + comma-separated-tokens: 2.0.3 + devlop: 1.1.0 + property-information: 6.5.0 + space-separated-tokens: 2.0.2 + web-namespaces: 2.0.1 + zwitch: 2.0.4 + + hast-util-to-string@3.0.1: + dependencies: + '@types/hast': 3.0.4 + + hast-util-to-text@4.0.2: + dependencies: + '@types/hast': 3.0.4 + '@types/unist': 3.0.3 + hast-util-is-element: 3.0.0 + unist-util-find-after: 5.0.0 + + hast-util-whitespace@3.0.0: + dependencies: + '@types/hast': 3.0.4 + + hastscript@9.0.0: + dependencies: + '@types/hast': 3.0.4 + comma-separated-tokens: 2.0.3 + hast-util-parse-selector: 4.0.0 + property-information: 6.5.0 + space-separated-tokens: 2.0.2 + + hosted-git-info@2.8.9: {} + + hosted-git-info@4.1.0: + dependencies: + lru-cache: 6.0.0 + + hosted-git-info@7.0.2: + dependencies: + lru-cache: 10.4.3 + + hs2js@0.1.0: + dependencies: + web-tree-sitter: 0.20.8 + + html-escaper@2.0.2: {} + + html-escaper@3.0.3: {} + + html-void-elements@3.0.0: {} + + http-cache-semantics@4.1.1: {} + + http-proxy-agent@7.0.2: + dependencies: + agent-base: 7.1.3 + debug: 4.4.0 + transitivePeerDependencies: + - supports-color + + https-proxy-agent@5.0.1: + dependencies: + agent-base: 6.0.2 + debug: 4.4.0 + transitivePeerDependencies: + - supports-color + + https-proxy-agent@7.0.6: + dependencies: + agent-base: 7.1.3 + debug: 4.4.0 + transitivePeerDependencies: + - supports-color + + human-signals@2.1.0: {} + + hydra-synth@1.3.29(rollup@4.32.0): + dependencies: + meyda: 5.6.3(rollup@4.32.0) + raf-loop: 1.1.3 + regl: 1.7.0 + transitivePeerDependencies: + - rollup + - supports-color + + iconv-lite@0.4.24: + dependencies: + safer-buffer: 2.1.2 + + iconv-lite@0.6.3: + dependencies: + safer-buffer: 2.1.2 + optional: true + + idb@7.1.1: {} + + ieee754@1.2.1: {} + + ignore-walk@6.0.5: + dependencies: + minimatch: 9.0.5 + + ignore@5.3.2: {} + + import-fresh@3.3.0: + dependencies: + parent-module: 1.0.1 + resolve-from: 4.0.0 + + import-local@3.1.0: + dependencies: + pkg-dir: 4.2.0 + resolve-cwd: 3.0.0 + + import-meta-resolve@4.1.0: {} + + imurmurhash@0.1.4: {} + + indent-string@4.0.0: {} + + inflight@1.0.6: + dependencies: + once: 1.4.0 + wrappy: 1.0.2 + + inherits@2.0.4: {} + + ini@1.3.8: {} + + ini@4.1.3: {} + + init-package-json@6.0.3: + dependencies: + '@npmcli/package-json': 5.2.0 + npm-package-arg: 11.0.2 + promzard: 1.0.2 + read: 3.0.1 + semver: 7.6.3 + validate-npm-package-license: 3.0.4 + validate-npm-package-name: 5.0.1 + transitivePeerDependencies: + - bluebird + + inline-style-parser@0.2.4: {} + + inquirer@8.2.6: + dependencies: + ansi-escapes: 4.3.2 + chalk: 4.1.2 + cli-cursor: 3.1.0 + cli-width: 3.0.0 + external-editor: 3.1.0 + figures: 3.2.0 + lodash: 4.17.21 + mute-stream: 0.0.8 + ora: 5.4.1 + run-async: 2.4.1 + rxjs: 7.8.1 + string-width: 4.2.3 + strip-ansi: 6.0.1 + through: 2.3.8 + wrap-ansi: 6.2.0 + + internal-slot@1.1.0: + dependencies: + es-errors: 1.3.0 + hasown: 2.0.2 + side-channel: 1.1.0 + + into-stream@6.0.0: + dependencies: + from2: 2.3.0 + p-is-promise: 3.0.0 + + ip-address@9.0.5: + dependencies: + jsbn: 1.1.0 + sprintf-js: 1.1.3 + + iron-webcrypto@1.2.1: {} + + is-alphabetical@2.0.1: {} + + is-alphanumerical@2.0.1: + dependencies: + is-alphabetical: 2.0.1 + is-decimal: 2.0.1 + + is-array-buffer@3.0.5: + dependencies: + call-bind: 1.0.8 + call-bound: 1.0.3 + get-intrinsic: 1.2.7 + + is-arrayish@0.2.1: {} + + is-arrayish@0.3.2: {} + + is-async-function@2.1.1: + dependencies: + async-function: 1.0.0 + call-bound: 1.0.3 + get-proto: 1.0.1 + has-tostringtag: 1.0.2 + safe-regex-test: 1.1.0 + + is-bigint@1.1.0: + dependencies: + has-bigints: 1.1.0 + + is-binary-path@2.1.0: + dependencies: + binary-extensions: 2.3.0 + + is-boolean-object@1.2.1: + dependencies: + call-bound: 1.0.3 + has-tostringtag: 1.0.2 + + is-callable@1.2.7: {} + + is-ci@3.0.1: + dependencies: + ci-info: 3.9.0 + + is-core-module@2.16.1: + dependencies: + hasown: 2.0.2 + + is-core-module@2.9.0: + dependencies: + has: 1.0.4 + + is-data-view@1.0.2: + dependencies: + call-bound: 1.0.3 + get-intrinsic: 1.2.7 + is-typed-array: 1.1.15 + + is-date-object@1.1.0: + dependencies: + call-bound: 1.0.3 + has-tostringtag: 1.0.2 + + is-decimal@2.0.1: {} + + is-docker@2.2.1: {} + + is-docker@3.0.0: {} + + is-extglob@2.1.1: {} + + is-finalizationregistry@1.1.1: + dependencies: + call-bound: 1.0.3 + + is-fullwidth-code-point@2.0.0: {} + + is-fullwidth-code-point@3.0.0: {} + + is-generator-function@1.1.0: + dependencies: + call-bound: 1.0.3 + get-proto: 1.0.1 + has-tostringtag: 1.0.2 + safe-regex-test: 1.1.0 + + is-glob@4.0.3: + dependencies: + is-extglob: 2.1.1 + + is-hexadecimal@2.0.1: {} + + is-inside-container@1.0.0: + dependencies: + is-docker: 3.0.0 + + is-interactive@1.0.0: {} + + is-lambda@1.0.1: {} + + is-map@2.0.3: {} + + is-module@1.0.0: {} + + is-number-object@1.1.1: + dependencies: + call-bound: 1.0.3 + has-tostringtag: 1.0.2 + + is-number@7.0.0: {} + + is-obj@1.0.1: {} + + is-obj@2.0.0: {} + + is-plain-obj@1.1.0: {} + + is-plain-obj@4.1.0: {} + + is-plain-object@2.0.4: + dependencies: + isobject: 3.0.1 + + is-plain-object@5.0.0: {} + + is-regex@1.2.1: + dependencies: + call-bound: 1.0.3 + gopd: 1.2.0 + has-tostringtag: 1.0.2 + hasown: 2.0.2 + + is-regexp@1.0.0: {} + + is-set@2.0.3: {} + + is-shared-array-buffer@1.0.4: + dependencies: + call-bound: 1.0.3 + + is-ssh@1.4.0: + dependencies: + protocols: 2.0.1 + + is-stream@2.0.0: {} + + is-stream@2.0.1: {} + + is-string@1.1.1: + dependencies: + call-bound: 1.0.3 + has-tostringtag: 1.0.2 + + is-symbol@1.1.1: + dependencies: + call-bound: 1.0.3 + has-symbols: 1.1.0 + safe-regex-test: 1.1.0 + + is-text-path@1.0.1: + dependencies: + text-extensions: 1.9.0 + + is-typed-array@1.1.15: + dependencies: + which-typed-array: 1.1.18 + + is-unicode-supported@0.1.0: {} + + is-url-superb@4.0.0: {} + + is-url@1.2.4: {} + + is-weakmap@2.0.2: {} + + is-weakref@1.1.0: + dependencies: + call-bound: 1.0.3 + + is-weakset@2.0.4: + dependencies: + call-bound: 1.0.3 + get-intrinsic: 1.2.7 + + is-wsl@2.2.0: + dependencies: + is-docker: 2.2.1 + + is-wsl@3.1.0: + dependencies: + is-inside-container: 1.0.0 + + isarray@0.0.1: {} + + isarray@1.0.0: {} + + isarray@2.0.5: {} + + isexe@2.0.0: {} + + isexe@3.1.1: {} + + isobject@3.0.1: {} + + istanbul-lib-coverage@3.2.2: {} + + istanbul-lib-report@3.0.1: + dependencies: + istanbul-lib-coverage: 3.2.2 + make-dir: 4.0.0 + supports-color: 7.2.0 + + istanbul-lib-source-maps@5.0.6: + dependencies: + '@jridgewell/trace-mapping': 0.3.25 + debug: 4.4.0 + istanbul-lib-coverage: 3.2.2 + transitivePeerDependencies: + - supports-color + + istanbul-reports@3.1.7: + dependencies: + html-escaper: 2.0.2 + istanbul-lib-report: 3.0.1 + + jackspeak@3.4.3: + dependencies: + '@isaacs/cliui': 8.0.2 + optionalDependencies: + '@pkgjs/parseargs': 0.11.0 + + jake@10.9.2: + dependencies: + async: 3.2.6 + chalk: 4.1.0 + filelist: 1.0.4 + minimatch: 3.1.2 + + jazz-midi@1.7.9: {} + + jest-diff@29.7.0: + dependencies: + chalk: 4.1.0 + diff-sequences: 29.6.3 + jest-get-type: 29.6.3 + pretty-format: 29.7.0 + + jest-get-type@29.6.3: {} + + jest-worker@26.6.2: + dependencies: + '@types/node': 22.10.10 + merge-stream: 2.0.0 + supports-color: 7.2.0 + + jiti@1.21.7: {} + + jiti@2.4.2: {} + + js-tokens@4.0.0: {} + + js-yaml@3.14.1: + dependencies: + argparse: 1.0.10 + esprima: 4.0.1 + + js-yaml@4.1.0: + dependencies: + argparse: 2.0.1 + + js2xmlparser@4.0.2: + dependencies: + xmlcreate: 2.0.4 + + jsbn@1.1.0: {} + + jsdoc-json@2.0.2: {} + + jsdoc@4.0.4: + dependencies: + '@babel/parser': 7.26.7 + '@jsdoc/salty': 0.2.9 + '@types/markdown-it': 14.1.2 + bluebird: 3.7.2 + catharsis: 0.9.0 + escape-string-regexp: 2.0.0 + js2xmlparser: 4.0.2 + klaw: 3.0.0 + markdown-it: 14.1.0 + markdown-it-anchor: 8.6.7(@types/markdown-it@14.1.2)(markdown-it@14.1.0) + marked: 4.3.0 + mkdirp: 1.0.4 + requizzle: 0.2.4 + strip-json-comments: 3.1.1 + underscore: 1.13.7 + + jsesc@2.5.2: {} + + jsesc@3.0.2: {} + + jsesc@3.1.0: {} + + json-buffer@3.0.1: {} + + json-parse-better-errors@1.0.2: {} + + json-parse-even-better-errors@2.3.1: {} + + json-parse-even-better-errors@3.0.2: {} + + json-schema-traverse@0.4.1: {} + + json-schema-traverse@1.0.0: {} + + json-schema@0.4.0: {} + + json-stable-stringify-without-jsonify@1.0.1: {} + + json-stringify-nice@1.1.4: {} + + json-stringify-safe@5.0.1: {} + + json5@1.0.2: + dependencies: + minimist: 1.2.8 + + json5@2.2.3: {} + + jsonc-parser@3.2.0: {} + + jsonfile@6.1.0: + dependencies: + universalify: 2.0.1 + optionalDependencies: + graceful-fs: 4.2.11 + + jsonparse@1.3.1: {} + + jsonpointer@5.0.1: {} + + just-diff-apply@5.5.0: {} + + just-diff@6.0.2: {} + + jzz@1.8.8: + dependencies: + '@types/webmidi': 2.1.0 + jazz-midi: 1.7.9 + + keyv@4.5.4: + dependencies: + json-buffer: 3.0.1 + + kind-of@6.0.3: {} + + klaw@3.0.0: + dependencies: + graceful-fs: 4.2.11 + + kleur@3.0.3: {} + + kleur@4.1.5: {} + + lerna@8.1.9(encoding@0.1.13): + dependencies: + '@lerna/create': 8.1.9(encoding@0.1.13)(typescript@5.7.3) + '@npmcli/arborist': 7.5.4 + '@npmcli/package-json': 5.2.0 + '@npmcli/run-script': 8.1.0 + '@nx/devkit': 20.3.3(nx@20.3.3) + '@octokit/plugin-enterprise-rest': 6.0.1 + '@octokit/rest': 19.0.11(encoding@0.1.13) + aproba: 2.0.0 + byte-size: 8.1.1 + chalk: 4.1.0 + clone-deep: 4.0.1 + cmd-shim: 6.0.3 + color-support: 1.1.3 + columnify: 1.6.0 + console-control-strings: 1.1.0 + conventional-changelog-angular: 7.0.0 + conventional-changelog-core: 5.0.1 + conventional-recommended-bump: 7.0.1 + cosmiconfig: 9.0.0(typescript@5.7.3) + dedent: 1.5.3 + envinfo: 7.13.0 + execa: 5.0.0 + fs-extra: 11.3.0 + get-port: 5.1.1 + get-stream: 6.0.0 + git-url-parse: 14.0.0 + glob-parent: 6.0.2 + globby: 11.1.0 + graceful-fs: 4.2.11 + has-unicode: 2.0.1 + import-local: 3.1.0 + ini: 1.3.8 + init-package-json: 6.0.3 + inquirer: 8.2.6 + is-ci: 3.0.1 + is-stream: 2.0.0 + jest-diff: 29.7.0 + js-yaml: 4.1.0 + libnpmaccess: 8.0.6 + libnpmpublish: 9.0.9 + load-json-file: 6.2.0 + lodash: 4.17.21 + make-dir: 4.0.0 + minimatch: 3.0.5 + multimatch: 5.0.0 + node-fetch: 2.6.7(encoding@0.1.13) + npm-package-arg: 11.0.2 + npm-packlist: 8.0.2 + npm-registry-fetch: 17.1.0 + nx: 20.3.3 + p-map: 4.0.0 + p-map-series: 2.1.0 + p-pipe: 3.1.0 + p-queue: 6.6.2 + p-reduce: 2.1.0 + p-waterfall: 2.1.1 + pacote: 18.0.6 + pify: 5.0.0 + read-cmd-shim: 4.0.0 + resolve-from: 5.0.0 + rimraf: 4.4.1 + semver: 7.6.3 + set-blocking: 2.0.0 + signal-exit: 3.0.7 + slash: 3.0.0 + ssri: 10.0.6 + string-width: 4.2.3 + strip-ansi: 6.0.1 + strong-log-transformer: 2.1.0 + tar: 6.2.1 + temp-dir: 1.0.0 + typescript: 5.7.3 + upath: 2.0.1 + uuid: 10.0.0 + validate-npm-package-license: 3.0.4 + validate-npm-package-name: 5.0.1 + wide-align: 1.1.5 + write-file-atomic: 5.0.1 + write-pkg: 4.0.0 + yargs: 17.7.2 + yargs-parser: 21.1.1 + transitivePeerDependencies: + - '@swc-node/register' + - '@swc/core' + - babel-plugin-macros + - bluebird + - debug + - encoding + - supports-color + + leven@3.1.0: {} + + levn@0.4.1: + dependencies: + prelude-ls: 1.2.1 + type-check: 0.4.0 + + libnpmaccess@8.0.6: + dependencies: + npm-package-arg: 11.0.2 + npm-registry-fetch: 17.1.0 + transitivePeerDependencies: + - supports-color + + libnpmpublish@9.0.9: + dependencies: + ci-info: 4.1.0 + normalize-package-data: 6.0.2 + npm-package-arg: 11.0.2 + npm-registry-fetch: 17.1.0 + proc-log: 4.2.0 + semver: 7.6.3 + sigstore: 2.3.1 + ssri: 10.0.6 + transitivePeerDependencies: + - supports-color + + lightningcss-darwin-arm64@1.29.1: + optional: true + + lightningcss-darwin-x64@1.29.1: + optional: true + + lightningcss-freebsd-x64@1.29.1: + optional: true + + lightningcss-linux-arm-gnueabihf@1.29.1: + optional: true + + lightningcss-linux-arm64-gnu@1.29.1: + optional: true + + lightningcss-linux-arm64-musl@1.29.1: + optional: true + + lightningcss-linux-x64-gnu@1.29.1: + optional: true + + lightningcss-linux-x64-musl@1.29.1: + optional: true + + lightningcss-win32-arm64-msvc@1.29.1: + optional: true + + lightningcss-win32-x64-msvc@1.29.1: + optional: true + + lightningcss@1.29.1: + dependencies: + detect-libc: 1.0.3 + optionalDependencies: + lightningcss-darwin-arm64: 1.29.1 + lightningcss-darwin-x64: 1.29.1 + lightningcss-freebsd-x64: 1.29.1 + lightningcss-linux-arm-gnueabihf: 1.29.1 + lightningcss-linux-arm64-gnu: 1.29.1 + lightningcss-linux-arm64-musl: 1.29.1 + lightningcss-linux-x64-gnu: 1.29.1 + lightningcss-linux-x64-musl: 1.29.1 + lightningcss-win32-arm64-msvc: 1.29.1 + lightningcss-win32-x64-msvc: 1.29.1 + + lilconfig@3.1.3: {} + + lines-and-columns@1.2.4: {} + + lines-and-columns@2.0.3: {} + + linkify-it@5.0.0: + dependencies: + uc.micro: 2.1.0 + + lite-youtube-embed@0.3.3: {} + + load-json-file@4.0.0: + dependencies: + graceful-fs: 4.2.11 + parse-json: 4.0.0 + pify: 3.0.0 + strip-bom: 3.0.0 + + load-json-file@6.2.0: + dependencies: + graceful-fs: 4.2.11 + parse-json: 5.2.0 + strip-bom: 4.0.0 + type-fest: 0.6.0 + + load-yaml-file@0.2.0: + dependencies: + graceful-fs: 4.2.11 + js-yaml: 3.14.1 + pify: 4.0.1 + strip-bom: 3.0.0 + + locate-path@2.0.0: + dependencies: + p-locate: 2.0.0 + path-exists: 3.0.0 + + locate-path@5.0.0: + dependencies: + p-locate: 4.1.0 + + locate-path@6.0.0: + dependencies: + p-locate: 5.0.0 + + lodash.castarray@4.4.0: {} + + lodash.debounce@4.0.8: {} + + lodash.ismatch@4.4.0: {} + + lodash.isplainobject@4.0.6: {} + + lodash.merge@4.6.2: {} + + lodash.sortby@4.7.0: {} + + lodash@4.17.21: {} + + log-symbols@4.1.0: + dependencies: + chalk: 4.1.2 + is-unicode-supported: 0.1.0 + + longest-streak@3.1.0: {} + + loupe@3.1.2: {} + + lru-cache@10.4.3: {} + + lru-cache@5.1.1: + dependencies: + yallist: 3.1.1 + + lru-cache@6.0.0: + dependencies: + yallist: 4.0.0 + + magic-string@0.25.9: + dependencies: + sourcemap-codec: 1.4.8 + + magic-string@0.30.17: + dependencies: + '@jridgewell/sourcemap-codec': 1.5.0 + + magicast@0.3.5: + dependencies: + '@babel/parser': 7.26.7 + '@babel/types': 7.26.7 + source-map-js: 1.2.1 + + make-dir@2.1.0: + dependencies: + pify: 4.0.1 + semver: 5.7.2 + + make-dir@4.0.0: + dependencies: + semver: 7.6.3 + + make-fetch-happen@13.0.1: + dependencies: + '@npmcli/agent': 2.2.2 + cacache: 18.0.4 + http-cache-semantics: 4.1.1 + is-lambda: 1.0.1 + minipass: 7.1.2 + minipass-fetch: 3.0.5 + minipass-flush: 1.0.5 + minipass-pipeline: 1.2.4 + negotiator: 0.6.4 + proc-log: 4.2.0 + promise-retry: 2.0.1 + ssri: 10.0.6 + transitivePeerDependencies: + - supports-color + + map-obj@1.0.1: {} + + map-obj@4.3.0: {} + + markdown-extensions@2.0.0: {} + + markdown-it-anchor@8.6.7(@types/markdown-it@14.1.2)(markdown-it@14.1.0): + dependencies: + '@types/markdown-it': 14.1.2 + markdown-it: 14.1.0 + + markdown-it@14.1.0: + dependencies: + argparse: 2.0.1 + entities: 4.5.0 + linkify-it: 5.0.0 + mdurl: 2.0.0 + punycode.js: 2.3.1 + uc.micro: 2.1.0 + + markdown-table@3.0.4: {} + + marked@4.3.0: {} + + math-intrinsics@1.1.0: {} + + mdast-util-definitions@6.0.0: + dependencies: + '@types/mdast': 4.0.4 + '@types/unist': 3.0.3 + unist-util-visit: 5.0.0 + + mdast-util-find-and-replace@3.0.2: + dependencies: + '@types/mdast': 4.0.4 + escape-string-regexp: 5.0.0 + unist-util-is: 6.0.0 + unist-util-visit-parents: 6.0.1 + + mdast-util-from-markdown@2.0.2: + dependencies: + '@types/mdast': 4.0.4 + '@types/unist': 3.0.3 + decode-named-character-reference: 1.0.2 + devlop: 1.1.0 + mdast-util-to-string: 4.0.0 + micromark: 4.0.1 + micromark-util-decode-numeric-character-reference: 2.0.2 + micromark-util-decode-string: 2.0.1 + micromark-util-normalize-identifier: 2.0.1 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.1 + unist-util-stringify-position: 4.0.0 + transitivePeerDependencies: + - supports-color + + mdast-util-gfm-autolink-literal@2.0.1: + dependencies: + '@types/mdast': 4.0.4 + ccount: 2.0.1 + devlop: 1.1.0 + mdast-util-find-and-replace: 3.0.2 + micromark-util-character: 2.1.1 + + mdast-util-gfm-footnote@2.0.0: + dependencies: + '@types/mdast': 4.0.4 + devlop: 1.1.0 + mdast-util-from-markdown: 2.0.2 + mdast-util-to-markdown: 2.1.2 + micromark-util-normalize-identifier: 2.0.1 + transitivePeerDependencies: + - supports-color + + mdast-util-gfm-strikethrough@2.0.0: + dependencies: + '@types/mdast': 4.0.4 + mdast-util-from-markdown: 2.0.2 + mdast-util-to-markdown: 2.1.2 + transitivePeerDependencies: + - supports-color + + mdast-util-gfm-table@2.0.0: + dependencies: + '@types/mdast': 4.0.4 + devlop: 1.1.0 + markdown-table: 3.0.4 + mdast-util-from-markdown: 2.0.2 + mdast-util-to-markdown: 2.1.2 + transitivePeerDependencies: + - supports-color + + mdast-util-gfm-task-list-item@2.0.0: + dependencies: + '@types/mdast': 4.0.4 + devlop: 1.1.0 + mdast-util-from-markdown: 2.0.2 + mdast-util-to-markdown: 2.1.2 + transitivePeerDependencies: + - supports-color + + mdast-util-gfm@3.0.0: + dependencies: + mdast-util-from-markdown: 2.0.2 + mdast-util-gfm-autolink-literal: 2.0.1 + mdast-util-gfm-footnote: 2.0.0 + mdast-util-gfm-strikethrough: 2.0.0 + mdast-util-gfm-table: 2.0.0 + mdast-util-gfm-task-list-item: 2.0.0 + mdast-util-to-markdown: 2.1.2 + transitivePeerDependencies: + - supports-color + + mdast-util-mdx-expression@2.0.1: + dependencies: + '@types/estree-jsx': 1.0.5 + '@types/hast': 3.0.4 + '@types/mdast': 4.0.4 + devlop: 1.1.0 + mdast-util-from-markdown: 2.0.2 + mdast-util-to-markdown: 2.1.2 + transitivePeerDependencies: + - supports-color + + mdast-util-mdx-jsx@3.2.0: + dependencies: + '@types/estree-jsx': 1.0.5 + '@types/hast': 3.0.4 + '@types/mdast': 4.0.4 + '@types/unist': 3.0.3 + ccount: 2.0.1 + devlop: 1.1.0 + mdast-util-from-markdown: 2.0.2 + mdast-util-to-markdown: 2.1.2 + parse-entities: 4.0.2 + stringify-entities: 4.0.4 + unist-util-stringify-position: 4.0.0 + vfile-message: 4.0.2 + transitivePeerDependencies: + - supports-color + + mdast-util-mdx@3.0.0: + dependencies: + mdast-util-from-markdown: 2.0.2 + mdast-util-mdx-expression: 2.0.1 + mdast-util-mdx-jsx: 3.2.0 + mdast-util-mdxjs-esm: 2.0.1 + mdast-util-to-markdown: 2.1.2 + transitivePeerDependencies: + - supports-color + + mdast-util-mdxjs-esm@2.0.1: + dependencies: + '@types/estree-jsx': 1.0.5 + '@types/hast': 3.0.4 + '@types/mdast': 4.0.4 + devlop: 1.1.0 + mdast-util-from-markdown: 2.0.2 + mdast-util-to-markdown: 2.1.2 + transitivePeerDependencies: + - supports-color + + mdast-util-phrasing@4.1.0: + dependencies: + '@types/mdast': 4.0.4 + unist-util-is: 6.0.0 + + mdast-util-to-hast@13.2.0: + dependencies: + '@types/hast': 3.0.4 + '@types/mdast': 4.0.4 + '@ungap/structured-clone': 1.3.0 + devlop: 1.1.0 + micromark-util-sanitize-uri: 2.0.1 + trim-lines: 3.0.1 + unist-util-position: 5.0.0 + unist-util-visit: 5.0.0 + vfile: 6.0.3 + + mdast-util-to-markdown@2.1.2: + dependencies: + '@types/mdast': 4.0.4 + '@types/unist': 3.0.3 + longest-streak: 3.1.0 + mdast-util-phrasing: 4.1.0 + mdast-util-to-string: 4.0.0 + micromark-util-classify-character: 2.0.1 + micromark-util-decode-string: 2.0.1 + unist-util-visit: 5.0.0 + zwitch: 2.0.4 + + mdast-util-to-string@4.0.0: + dependencies: + '@types/mdast': 4.0.4 + + mdast-util-toc@7.1.0: + dependencies: + '@types/mdast': 4.0.4 + '@types/ungap__structured-clone': 1.2.0 + '@ungap/structured-clone': 1.3.0 + github-slugger: 2.0.0 + mdast-util-to-string: 4.0.0 + unist-util-is: 6.0.0 + unist-util-visit: 5.0.0 + + mdurl@2.0.0: {} + + meow@8.1.2: + dependencies: + '@types/minimist': 1.2.5 + camelcase-keys: 6.2.2 + decamelize-keys: 1.1.1 + hard-rejection: 2.1.0 + minimist-options: 4.1.0 + normalize-package-data: 3.0.3 + read-pkg-up: 7.0.1 + redent: 3.0.0 + trim-newlines: 3.0.1 + type-fest: 0.18.1 + yargs-parser: 20.2.9 + + merge-stream@2.0.0: {} + + merge2@1.4.1: {} + + meyda@5.6.3(rollup@4.32.0): + dependencies: + '@rollup/plugin-node-resolve': 15.3.1(rollup@4.32.0) + dct: 0.1.0 + fftjs: 0.0.4 + node-getopt: 0.3.2 + wav: 1.0.2 + transitivePeerDependencies: + - rollup + - supports-color + + micromark-core-commonmark@2.0.2: + dependencies: + decode-named-character-reference: 1.0.2 + devlop: 1.1.0 + micromark-factory-destination: 2.0.1 + micromark-factory-label: 2.0.1 + micromark-factory-space: 2.0.1 + micromark-factory-title: 2.0.1 + micromark-factory-whitespace: 2.0.1 + micromark-util-character: 2.1.1 + micromark-util-chunked: 2.0.1 + micromark-util-classify-character: 2.0.1 + micromark-util-html-tag-name: 2.0.1 + micromark-util-normalize-identifier: 2.0.1 + micromark-util-resolve-all: 2.0.1 + micromark-util-subtokenize: 2.0.4 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.1 + + micromark-extension-gfm-autolink-literal@2.1.0: + dependencies: + micromark-util-character: 2.1.1 + micromark-util-sanitize-uri: 2.0.1 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.1 + + micromark-extension-gfm-footnote@2.1.0: + dependencies: + devlop: 1.1.0 + micromark-core-commonmark: 2.0.2 + micromark-factory-space: 2.0.1 + micromark-util-character: 2.1.1 + micromark-util-normalize-identifier: 2.0.1 + micromark-util-sanitize-uri: 2.0.1 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.1 + + micromark-extension-gfm-strikethrough@2.1.0: + dependencies: + devlop: 1.1.0 + micromark-util-chunked: 2.0.1 + micromark-util-classify-character: 2.0.1 + micromark-util-resolve-all: 2.0.1 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.1 + + micromark-extension-gfm-table@2.1.1: + dependencies: + devlop: 1.1.0 + micromark-factory-space: 2.0.1 + micromark-util-character: 2.1.1 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.1 + + micromark-extension-gfm-tagfilter@2.0.0: + dependencies: + micromark-util-types: 2.0.1 + + micromark-extension-gfm-task-list-item@2.1.0: + dependencies: + devlop: 1.1.0 + micromark-factory-space: 2.0.1 + micromark-util-character: 2.1.1 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.1 + + micromark-extension-gfm@3.0.0: + dependencies: + micromark-extension-gfm-autolink-literal: 2.1.0 + micromark-extension-gfm-footnote: 2.1.0 + micromark-extension-gfm-strikethrough: 2.1.0 + micromark-extension-gfm-table: 2.1.1 + micromark-extension-gfm-tagfilter: 2.0.0 + micromark-extension-gfm-task-list-item: 2.1.0 + micromark-util-combine-extensions: 2.0.1 + micromark-util-types: 2.0.1 + + micromark-extension-mdx-expression@3.0.0: + dependencies: + '@types/estree': 1.0.6 + devlop: 1.1.0 + micromark-factory-mdx-expression: 2.0.2 + micromark-factory-space: 2.0.1 + micromark-util-character: 2.1.1 + micromark-util-events-to-acorn: 2.0.2 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.1 + + micromark-extension-mdx-jsx@3.0.1: + dependencies: + '@types/acorn': 4.0.6 + '@types/estree': 1.0.6 + devlop: 1.1.0 + estree-util-is-identifier-name: 3.0.0 + micromark-factory-mdx-expression: 2.0.2 + micromark-factory-space: 2.0.1 + micromark-util-character: 2.1.1 + micromark-util-events-to-acorn: 2.0.2 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.1 + vfile-message: 4.0.2 + + micromark-extension-mdx-md@2.0.0: + dependencies: + micromark-util-types: 2.0.1 + + micromark-extension-mdxjs-esm@3.0.0: + dependencies: + '@types/estree': 1.0.6 + devlop: 1.1.0 + micromark-core-commonmark: 2.0.2 + micromark-util-character: 2.1.1 + micromark-util-events-to-acorn: 2.0.2 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.1 + unist-util-position-from-estree: 2.0.0 + vfile-message: 4.0.2 + + micromark-extension-mdxjs@3.0.0: + dependencies: + acorn: 8.14.0 + acorn-jsx: 5.3.2(acorn@8.14.0) + micromark-extension-mdx-expression: 3.0.0 + micromark-extension-mdx-jsx: 3.0.1 + micromark-extension-mdx-md: 2.0.0 + micromark-extension-mdxjs-esm: 3.0.0 + micromark-util-combine-extensions: 2.0.1 + micromark-util-types: 2.0.1 + + micromark-factory-destination@2.0.1: + dependencies: + micromark-util-character: 2.1.1 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.1 + + micromark-factory-label@2.0.1: + dependencies: + devlop: 1.1.0 + micromark-util-character: 2.1.1 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.1 + + micromark-factory-mdx-expression@2.0.2: + dependencies: + '@types/estree': 1.0.6 + devlop: 1.1.0 + micromark-factory-space: 2.0.1 + micromark-util-character: 2.1.1 + micromark-util-events-to-acorn: 2.0.2 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.1 + unist-util-position-from-estree: 2.0.0 + vfile-message: 4.0.2 + + micromark-factory-space@2.0.1: + dependencies: + micromark-util-character: 2.1.1 + micromark-util-types: 2.0.1 + + micromark-factory-title@2.0.1: + dependencies: + micromark-factory-space: 2.0.1 + micromark-util-character: 2.1.1 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.1 + + micromark-factory-whitespace@2.0.1: + dependencies: + micromark-factory-space: 2.0.1 + micromark-util-character: 2.1.1 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.1 + + micromark-util-character@2.1.1: + dependencies: + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.1 + + micromark-util-chunked@2.0.1: + dependencies: + micromark-util-symbol: 2.0.1 + + micromark-util-classify-character@2.0.1: + dependencies: + micromark-util-character: 2.1.1 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.1 + + micromark-util-combine-extensions@2.0.1: + dependencies: + micromark-util-chunked: 2.0.1 + micromark-util-types: 2.0.1 + + micromark-util-decode-numeric-character-reference@2.0.2: + dependencies: + micromark-util-symbol: 2.0.1 + + micromark-util-decode-string@2.0.1: + dependencies: + decode-named-character-reference: 1.0.2 + micromark-util-character: 2.1.1 + micromark-util-decode-numeric-character-reference: 2.0.2 + micromark-util-symbol: 2.0.1 + + micromark-util-encode@2.0.1: {} + + micromark-util-events-to-acorn@2.0.2: + dependencies: + '@types/acorn': 4.0.6 + '@types/estree': 1.0.6 + '@types/unist': 3.0.3 + devlop: 1.1.0 + estree-util-visit: 2.0.0 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.1 + vfile-message: 4.0.2 + + micromark-util-html-tag-name@2.0.1: {} + + micromark-util-normalize-identifier@2.0.1: + dependencies: + micromark-util-symbol: 2.0.1 + + micromark-util-resolve-all@2.0.1: + dependencies: + micromark-util-types: 2.0.1 + + micromark-util-sanitize-uri@2.0.1: + dependencies: + micromark-util-character: 2.1.1 + micromark-util-encode: 2.0.1 + micromark-util-symbol: 2.0.1 + + micromark-util-subtokenize@2.0.4: + dependencies: + devlop: 1.1.0 + micromark-util-chunked: 2.0.1 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.1 + + micromark-util-symbol@2.0.1: {} + + micromark-util-types@2.0.1: {} + + micromark@4.0.1: + dependencies: + '@types/debug': 4.1.12 + debug: 4.4.0 + decode-named-character-reference: 1.0.2 + devlop: 1.1.0 + micromark-core-commonmark: 2.0.2 + micromark-factory-space: 2.0.1 + micromark-util-character: 2.1.1 + micromark-util-chunked: 2.0.1 + micromark-util-combine-extensions: 2.0.1 + micromark-util-decode-numeric-character-reference: 2.0.2 + micromark-util-encode: 2.0.1 + micromark-util-normalize-identifier: 2.0.1 + micromark-util-resolve-all: 2.0.1 + micromark-util-sanitize-uri: 2.0.1 + micromark-util-subtokenize: 2.0.4 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.1 + transitivePeerDependencies: + - supports-color + + micromatch@4.0.8: + dependencies: + braces: 3.0.3 + picomatch: 2.3.1 + + mime-db@1.52.0: {} + + mime-types@2.1.35: + dependencies: + mime-db: 1.52.0 + + mime@3.0.0: {} + + mimic-fn@2.1.0: {} + + mimic-response@3.1.0: {} + + min-indent@1.0.1: {} + + mini-svg-data-uri@1.4.4: {} + + minimatch@3.0.5: + dependencies: + brace-expansion: 1.1.11 + + minimatch@3.1.2: + dependencies: + brace-expansion: 1.1.11 + + minimatch@5.1.6: + dependencies: + brace-expansion: 2.0.1 + + minimatch@8.0.4: + dependencies: + brace-expansion: 2.0.1 + + minimatch@9.0.3: + dependencies: + brace-expansion: 2.0.1 + + minimatch@9.0.5: + dependencies: + brace-expansion: 2.0.1 + + minimist-options@4.1.0: + dependencies: + arrify: 1.0.1 + is-plain-obj: 1.1.0 + kind-of: 6.0.3 + + minimist@1.2.8: {} + + minipass-collect@2.0.1: + dependencies: + minipass: 7.1.2 + + minipass-fetch@3.0.5: + dependencies: + minipass: 7.1.2 + minipass-sized: 1.0.3 + minizlib: 2.1.2 + optionalDependencies: + encoding: 0.1.13 + + minipass-flush@1.0.5: + dependencies: + minipass: 3.3.6 + + minipass-pipeline@1.2.4: + dependencies: + minipass: 3.3.6 + + minipass-sized@1.0.3: + dependencies: + minipass: 3.3.6 + + minipass@3.3.6: + dependencies: + yallist: 4.0.0 + + minipass@4.2.8: {} + + minipass@5.0.0: {} + + minipass@7.1.2: {} + + minizlib@2.1.2: + dependencies: + minipass: 3.3.6 + yallist: 4.0.0 + + mkdirp-classic@0.5.3: {} + + mkdirp@1.0.4: {} + + modify-values@1.0.1: {} + + module-definition@6.0.0: + dependencies: + ast-module-types: 6.0.0 + node-source-walk: 7.0.0 + + module-lookup-amd@9.0.2: + dependencies: + commander: 12.1.0 + glob: 7.2.3 + requirejs: 2.3.7 + requirejs-config-file: 4.0.0 + + mondo@0.4.4: + dependencies: + cldr-plurals: 1.0.0 + globalize: 0.1.1 + handlebars: 1.1.2 + underscore: 1.5.2 + + mrmime@2.0.0: {} + + ms@2.0.0: {} + + ms@2.1.3: {} + + multimatch@5.0.0: + dependencies: + '@types/minimatch': 3.0.5 + array-differ: 3.0.0 + array-union: 2.1.0 + arrify: 2.0.1 + minimatch: 3.0.5 + + multistream@4.1.0: + dependencies: + once: 1.4.0 + readable-stream: 3.6.2 + + mute-stream@0.0.8: {} + + mute-stream@1.0.0: {} + + mz@2.7.0: + dependencies: + any-promise: 1.3.0 + object-assign: 4.1.1 + thenify-all: 1.6.0 + + nanoid@3.3.8: {} + + nanoid@5.0.9: {} + + nanostores@0.11.3: {} + + napi-build-utils@1.0.2: {} + + natural-compare@1.4.0: {} + + negotiator@0.6.4: {} + + neo-async@2.6.2: {} + + neotraverse@0.6.18: {} + + nlcst-to-string@4.0.0: + dependencies: + '@types/nlcst': 2.0.3 + + node-abi@3.73.0: + dependencies: + semver: 7.6.3 + + node-addon-api@8.3.0: {} + + node-domexception@1.0.0: {} + + node-fetch-native@1.6.6: {} + + node-fetch@2.6.7(encoding@0.1.13): + dependencies: + whatwg-url: 5.0.0 + optionalDependencies: + encoding: 0.1.13 + + node-fetch@2.7.0(encoding@0.1.13): + dependencies: + whatwg-url: 5.0.0 + optionalDependencies: + encoding: 0.1.13 + + node-fetch@3.3.2: + dependencies: + data-uri-to-buffer: 4.0.1 + fetch-blob: 3.2.0 + formdata-polyfill: 4.0.10 + + node-getopt@0.3.2: {} + + node-gyp-build@4.8.4: {} + + node-gyp@10.3.1: + dependencies: + env-paths: 2.2.1 + exponential-backoff: 3.1.1 + glob: 10.4.5 + graceful-fs: 4.2.11 + make-fetch-happen: 13.0.1 + nopt: 7.2.1 + proc-log: 4.2.0 + semver: 7.6.3 + tar: 6.2.1 + which: 4.0.0 + transitivePeerDependencies: + - supports-color + + node-machine-id@1.1.12: {} + + node-releases@2.0.19: {} + + node-source-walk@7.0.0: + dependencies: + '@babel/parser': 7.26.7 + + nopt@7.2.1: + dependencies: + abbrev: 2.0.0 + + normalize-package-data@2.5.0: + dependencies: + hosted-git-info: 2.8.9 + resolve: 1.22.10 + semver: 5.7.2 + validate-npm-package-license: 3.0.4 + + normalize-package-data@3.0.3: + dependencies: + hosted-git-info: 4.1.0 + is-core-module: 2.16.1 + semver: 7.6.3 + validate-npm-package-license: 3.0.4 + + normalize-package-data@6.0.2: + dependencies: + hosted-git-info: 7.0.2 + semver: 7.6.3 + validate-npm-package-license: 3.0.4 + + normalize-path@3.0.0: {} + + normalize-range@0.1.2: {} + + npm-bundled@3.0.1: + dependencies: + npm-normalize-package-bin: 3.0.1 + + npm-install-checks@6.3.0: + dependencies: + semver: 7.6.3 + + npm-normalize-package-bin@3.0.1: {} + + npm-package-arg@11.0.2: + dependencies: + hosted-git-info: 7.0.2 + proc-log: 4.2.0 + semver: 7.6.3 + validate-npm-package-name: 5.0.1 + + npm-packlist@8.0.2: + dependencies: + ignore-walk: 6.0.5 + + npm-pick-manifest@9.1.0: + dependencies: + npm-install-checks: 6.3.0 + npm-normalize-package-bin: 3.0.1 + npm-package-arg: 11.0.2 + semver: 7.6.3 + + npm-registry-fetch@17.1.0: + dependencies: + '@npmcli/redact': 2.0.1 + jsonparse: 1.3.1 + make-fetch-happen: 13.0.1 + minipass: 7.1.2 + minipass-fetch: 3.0.5 + minizlib: 2.1.2 + npm-package-arg: 11.0.2 + proc-log: 4.2.0 + transitivePeerDependencies: + - supports-color + + npm-run-path@4.0.1: + dependencies: + path-key: 3.1.1 + + nx@20.3.3: + dependencies: + '@napi-rs/wasm-runtime': 0.2.4 + '@yarnpkg/lockfile': 1.1.0 + '@yarnpkg/parsers': 3.0.2 + '@zkochan/js-yaml': 0.0.7 + axios: 1.7.9 + chalk: 4.1.0 + cli-cursor: 3.1.0 + cli-spinners: 2.6.1 + cliui: 8.0.1 + dotenv: 16.4.7 + dotenv-expand: 11.0.7 + enquirer: 2.3.6 + figures: 3.2.0 + flat: 5.0.2 + front-matter: 4.0.2 + ignore: 5.3.2 + jest-diff: 29.7.0 + jsonc-parser: 3.2.0 + lines-and-columns: 2.0.3 + minimatch: 9.0.3 + node-machine-id: 1.1.12 + npm-run-path: 4.0.1 + open: 8.4.2 + ora: 5.3.0 + resolve.exports: 2.0.3 + semver: 7.6.3 + string-width: 4.2.3 + tar-stream: 2.2.0 + tmp: 0.2.3 + tsconfig-paths: 4.2.0 + tslib: 2.8.1 + yaml: 2.7.0 + yargs: 17.7.2 + yargs-parser: 21.1.1 + optionalDependencies: + '@nx/nx-darwin-arm64': 20.3.3 + '@nx/nx-darwin-x64': 20.3.3 + '@nx/nx-freebsd-x64': 20.3.3 + '@nx/nx-linux-arm-gnueabihf': 20.3.3 + '@nx/nx-linux-arm64-gnu': 20.3.3 + '@nx/nx-linux-arm64-musl': 20.3.3 + '@nx/nx-linux-x64-gnu': 20.3.3 + '@nx/nx-linux-x64-musl': 20.3.3 + '@nx/nx-win32-arm64-msvc': 20.3.3 + '@nx/nx-win32-x64-msvc': 20.3.3 + transitivePeerDependencies: + - debug + + object-assign@4.1.1: {} + + object-hash@3.0.0: {} + + object-inspect@1.13.3: {} + + object-keys@1.1.1: {} + + object.assign@4.1.7: + dependencies: + call-bind: 1.0.8 + call-bound: 1.0.3 + define-properties: 1.2.1 + es-object-atoms: 1.1.1 + has-symbols: 1.1.0 + object-keys: 1.1.1 + + object.fromentries@2.0.8: + dependencies: + call-bind: 1.0.8 + define-properties: 1.2.1 + es-abstract: 1.23.9 + es-object-atoms: 1.1.1 + + object.groupby@1.0.3: + dependencies: + call-bind: 1.0.8 + define-properties: 1.2.1 + es-abstract: 1.23.9 + + object.values@1.2.1: + dependencies: + call-bind: 1.0.8 + call-bound: 1.0.3 + define-properties: 1.2.1 + es-object-atoms: 1.1.1 + + ofetch@1.4.1: + dependencies: + destr: 2.0.3 + node-fetch-native: 1.6.6 + ufo: 1.5.4 + + ohash@1.1.4: {} + + once@1.4.0: + dependencies: + wrappy: 1.0.2 + + onetime@5.1.2: + dependencies: + mimic-fn: 2.1.0 + + oniguruma-to-es@2.3.0: + dependencies: + emoji-regex-xs: 1.0.0 + regex: 5.1.1 + regex-recursion: 5.1.1 + + open@8.4.2: + dependencies: + define-lazy-prop: 2.0.0 + is-docker: 2.2.1 + is-wsl: 2.2.0 + + optimist@0.3.7: + dependencies: + wordwrap: 0.0.3 + + optionator@0.9.4: + dependencies: + deep-is: 0.1.4 + fast-levenshtein: 2.0.6 + levn: 0.4.1 + prelude-ls: 1.2.1 + type-check: 0.4.0 + word-wrap: 1.2.5 + + ora@5.3.0: + dependencies: + bl: 4.1.0 + chalk: 4.1.0 + cli-cursor: 3.1.0 + cli-spinners: 2.6.1 + is-interactive: 1.0.0 + log-symbols: 4.1.0 + strip-ansi: 6.0.1 + wcwidth: 1.0.1 + + ora@5.4.1: + dependencies: + bl: 4.1.0 + chalk: 4.1.2 + cli-cursor: 3.1.0 + cli-spinners: 2.9.2 + is-interactive: 1.0.0 + is-unicode-supported: 0.1.0 + log-symbols: 4.1.0 + strip-ansi: 6.0.1 + wcwidth: 1.0.1 + + os-tmpdir@1.0.2: {} + + osc-js@2.4.1: + dependencies: + ws: 8.18.0 + transitivePeerDependencies: + - bufferutil + - utf-8-validate + + own-keys@1.0.1: + dependencies: + get-intrinsic: 1.2.7 + object-keys: 1.1.1 + safe-push-apply: 1.0.0 + + p-finally@1.0.0: {} + + p-is-promise@3.0.0: {} + + p-limit@1.3.0: + dependencies: + p-try: 1.0.0 + + p-limit@2.3.0: + dependencies: + p-try: 2.2.0 + + p-limit@3.1.0: + dependencies: + yocto-queue: 0.1.0 + + p-limit@6.2.0: + dependencies: + yocto-queue: 1.1.1 + + p-locate@2.0.0: + dependencies: + p-limit: 1.3.0 + + p-locate@4.1.0: + dependencies: + p-limit: 2.3.0 + + p-locate@5.0.0: + dependencies: + p-limit: 3.1.0 + + p-map-series@2.1.0: {} + + p-map@4.0.0: + dependencies: + aggregate-error: 3.1.0 + + p-pipe@3.1.0: {} + + p-queue@6.6.2: + dependencies: + eventemitter3: 4.0.7 + p-timeout: 3.2.0 + + p-queue@8.1.0: + dependencies: + eventemitter3: 5.0.1 + p-timeout: 6.1.4 + + p-reduce@2.1.0: {} + + p-timeout@3.2.0: + dependencies: + p-finally: 1.0.0 + + p-timeout@6.1.4: {} + + p-try@1.0.0: {} + + p-try@2.2.0: {} + + p-waterfall@2.1.1: + dependencies: + p-reduce: 2.1.0 + + package-json-from-dist@1.0.1: {} + + pacote@18.0.6: + dependencies: + '@npmcli/git': 5.0.8 + '@npmcli/installed-package-contents': 2.1.0 + '@npmcli/package-json': 5.2.0 + '@npmcli/promise-spawn': 7.0.2 + '@npmcli/run-script': 8.1.0 + cacache: 18.0.4 + fs-minipass: 3.0.3 + minipass: 7.1.2 + npm-package-arg: 11.0.2 + npm-packlist: 8.0.2 + npm-pick-manifest: 9.1.0 + npm-registry-fetch: 17.1.0 + proc-log: 4.2.0 + promise-retry: 2.0.1 + sigstore: 2.3.1 + ssri: 10.0.6 + tar: 6.2.1 + transitivePeerDependencies: + - bluebird + - supports-color + + paho-mqtt@1.1.0: {} + + parent-module@1.0.1: + dependencies: + callsites: 3.1.0 + + parse-conflict-json@3.0.1: + dependencies: + json-parse-even-better-errors: 3.0.2 + just-diff: 6.0.2 + just-diff-apply: 5.5.0 + + parse-entities@4.0.2: + dependencies: + '@types/unist': 2.0.11 + character-entities-legacy: 3.0.0 + character-reference-invalid: 2.0.1 + decode-named-character-reference: 1.0.2 + is-alphanumerical: 2.0.1 + is-decimal: 2.0.1 + is-hexadecimal: 2.0.1 + + parse-json@4.0.0: + dependencies: + error-ex: 1.3.2 + json-parse-better-errors: 1.0.2 + + parse-json@5.2.0: + dependencies: + '@babel/code-frame': 7.26.2 + error-ex: 1.3.2 + json-parse-even-better-errors: 2.3.1 + lines-and-columns: 1.2.4 + + parse-latin@7.0.0: + dependencies: + '@types/nlcst': 2.0.3 + '@types/unist': 3.0.3 + nlcst-to-string: 4.0.0 + unist-util-modify-children: 4.0.0 + unist-util-visit-children: 3.0.0 + vfile: 6.0.3 + + parse-path@7.0.0: + dependencies: + protocols: 2.0.1 + + parse-url@8.1.0: + dependencies: + parse-path: 7.0.0 + + parse5@7.2.1: + dependencies: + entities: 4.5.0 + + path-browserify@1.0.1: {} + + path-exists@3.0.0: {} + + path-exists@4.0.0: {} + + path-is-absolute@1.0.1: {} + + path-key@3.1.1: {} + + path-parse@1.0.7: {} + + path-scurry@1.11.1: + dependencies: + lru-cache: 10.4.3 + minipass: 7.1.2 + + path-type@3.0.0: + dependencies: + pify: 3.0.0 + + path-type@4.0.0: {} + + pathe@1.1.2: {} + + pathe@2.0.2: {} + + pathval@2.0.0: {} + + peggy@4.2.0: + dependencies: + '@peggyjs/from-mem': 1.3.5 + commander: 12.1.0 + source-map-generator: 0.8.0 + + performance-now@2.1.0: {} + + picocolors@1.1.1: {} + + picomatch@2.3.1: {} + + picomatch@4.0.2: {} + + pify@2.3.0: {} + + pify@3.0.0: {} + + pify@4.0.1: {} + + pify@5.0.0: {} + + pirates@4.0.6: {} + + pkg-dir@4.2.0: + dependencies: + find-up: 4.1.0 + + pkg-fetch@3.4.2(encoding@0.1.13): + dependencies: + chalk: 4.1.2 + fs-extra: 9.1.0 + https-proxy-agent: 5.0.1 + node-fetch: 2.7.0(encoding@0.1.13) + progress: 2.0.3 + semver: 7.6.3 + tar-fs: 2.1.2 + yargs: 16.2.0 + transitivePeerDependencies: + - encoding + - supports-color + + pkg@5.8.1(encoding@0.1.13): + dependencies: + '@babel/generator': 7.18.2 + '@babel/parser': 7.18.4 + '@babel/types': 7.19.0 + chalk: 4.1.2 + fs-extra: 9.1.0 + globby: 11.1.0 + into-stream: 6.0.0 + is-core-module: 2.9.0 + minimist: 1.2.8 + multistream: 4.1.0 + pkg-fetch: 3.4.2(encoding@0.1.13) + prebuild-install: 7.1.1 + resolve: 1.22.10 + stream-meter: 1.0.4 + transitivePeerDependencies: + - encoding + - supports-color + + possible-typed-array-names@1.0.0: {} + + postcss-import@15.1.0(postcss@8.5.1): + dependencies: + postcss: 8.5.1 + postcss-value-parser: 4.2.0 + read-cache: 1.0.0 + resolve: 1.22.10 + + postcss-js@4.0.1(postcss@8.5.1): + dependencies: + camelcase-css: 2.0.1 + postcss: 8.5.1 + + postcss-load-config@4.0.2(postcss@8.5.1): + dependencies: + lilconfig: 3.1.3 + yaml: 2.7.0 + optionalDependencies: + postcss: 8.5.1 + + postcss-nested@6.2.0(postcss@8.5.1): + dependencies: + postcss: 8.5.1 + postcss-selector-parser: 6.1.2 + + postcss-selector-parser@6.0.10: + dependencies: + cssesc: 3.0.0 + util-deprecate: 1.0.2 + + postcss-selector-parser@6.1.2: + dependencies: + cssesc: 3.0.0 + util-deprecate: 1.0.2 + + postcss-value-parser@4.2.0: {} + + postcss-values-parser@6.0.2(postcss@8.5.1): + dependencies: + color-name: 1.1.4 + is-url-superb: 4.0.0 + postcss: 8.5.1 + quote-unquote: 1.0.0 + + postcss@8.5.1: + dependencies: + nanoid: 3.3.8 + picocolors: 1.1.1 + source-map-js: 1.2.1 + + prebuild-install@7.1.1: + dependencies: + detect-libc: 2.0.3 + expand-template: 2.0.3 + github-from-package: 0.0.0 + minimist: 1.2.8 + mkdirp-classic: 0.5.3 + napi-build-utils: 1.0.2 + node-abi: 3.73.0 + pump: 3.0.2 + rc: 1.2.8 + simple-get: 4.0.1 + tar-fs: 2.1.2 + tunnel-agent: 0.6.0 + + precinct@12.1.2: + dependencies: + '@dependents/detective-less': 5.0.0 + commander: 12.1.0 + detective-amd: 6.0.0 + detective-cjs: 6.0.0 + detective-es6: 5.0.0 + detective-postcss: 7.0.0(postcss@8.5.1) + detective-sass: 6.0.0 + detective-scss: 5.0.0 + detective-stylus: 5.0.0 + detective-typescript: 13.0.0(typescript@5.7.3) + detective-vue2: 2.1.1(typescript@5.7.3) + module-definition: 6.0.0 + node-source-walk: 7.0.0 + postcss: 8.5.1 + typescript: 5.7.3 + transitivePeerDependencies: + - supports-color + + preferred-pm@4.0.0: + dependencies: + find-up-simple: 1.0.0 + find-yarn-workspace-root2: 1.2.16 + which-pm: 3.0.0 + + prelude-ls@1.2.1: {} + + prettier@3.4.2: {} + + pretty-bytes@5.6.0: {} + + pretty-bytes@6.1.1: {} + + pretty-format@29.7.0: + dependencies: + '@jest/schemas': 29.6.3 + ansi-styles: 5.2.0 + react-is: 18.3.1 + + prismjs@1.29.0: {} + + proc-log@4.2.0: {} + + process-nextick-args@2.0.1: {} + + proggy@2.0.0: {} + + progress@2.0.3: {} + + promise-all-reject-late@1.0.1: {} + + promise-call-limit@3.0.2: {} + + promise-inflight@1.0.1: {} + + promise-retry@2.0.1: + dependencies: + err-code: 2.0.3 + retry: 0.12.0 + + prompts@2.4.2: + dependencies: + kleur: 3.0.3 + sisteransi: 1.0.5 + + promzard@1.0.2: + dependencies: + read: 3.0.1 + + property-information@6.5.0: {} + + protocols@2.0.1: {} + + proxy-from-env@1.1.0: {} + + pump@3.0.2: + dependencies: + end-of-stream: 1.4.4 + once: 1.4.0 + + punycode.js@2.3.1: {} + + punycode@2.3.1: {} + + queue-microtask@1.2.3: {} + + quick-lru@4.0.1: {} + + quote-unquote@1.0.0: {} + + radix3@1.1.2: {} + + raf-loop@1.1.3: + dependencies: + events: 1.1.1 + inherits: 2.0.4 + raf: 3.4.1 + right-now: 1.0.0 + + raf@3.4.1: + dependencies: + performance-now: 2.1.0 + + rambda@7.5.0: {} + + randombytes@2.1.0: + dependencies: + safe-buffer: 5.2.1 + + rc@1.2.8: + dependencies: + deep-extend: 0.6.0 + ini: 1.3.8 + minimist: 1.2.8 + strip-json-comments: 2.0.1 + + react-dom@19.0.0(react@19.0.0): + dependencies: + react: 19.0.0 + scheduler: 0.25.0 + + react-hook-inview@4.5.1(react-dom@19.0.0(react@19.0.0))(react@19.0.0): + dependencies: + react: 19.0.0 + react-dom: 19.0.0(react@19.0.0) + + react-is@18.3.1: {} + + react-lite-youtube-embed@2.4.0(react-dom@19.0.0(react@19.0.0))(react@19.0.0): + dependencies: + react: 19.0.0 + react-dom: 19.0.0(react@19.0.0) + + react-refresh@0.14.2: {} + + react@19.0.0: {} + + read-cache@1.0.0: + dependencies: + pify: 2.3.0 + + read-cmd-shim@4.0.0: {} + + read-package-json-fast@3.0.2: + dependencies: + json-parse-even-better-errors: 3.0.2 + npm-normalize-package-bin: 3.0.1 + + read-pkg-up@3.0.0: + dependencies: + find-up: 2.1.0 + read-pkg: 3.0.0 + + read-pkg-up@7.0.1: + dependencies: + find-up: 4.1.0 + read-pkg: 5.2.0 + type-fest: 0.8.1 + + read-pkg@3.0.0: + dependencies: + load-json-file: 4.0.0 + normalize-package-data: 2.5.0 + path-type: 3.0.0 + + read-pkg@5.2.0: + dependencies: + '@types/normalize-package-data': 2.4.4 + normalize-package-data: 2.5.0 + parse-json: 5.2.0 + type-fest: 0.6.0 + + read@3.0.1: + dependencies: + mute-stream: 1.0.0 + + readable-stream@1.1.14: + dependencies: + core-util-is: 1.0.3 + inherits: 2.0.4 + isarray: 0.0.1 + string_decoder: 0.10.31 + + readable-stream@2.3.8: + dependencies: + core-util-is: 1.0.3 + inherits: 2.0.4 + isarray: 1.0.0 + process-nextick-args: 2.0.1 + safe-buffer: 5.1.2 + string_decoder: 1.1.1 + util-deprecate: 1.0.2 + + readable-stream@3.6.2: + dependencies: + inherits: 2.0.4 + string_decoder: 1.3.0 + util-deprecate: 1.0.2 + + readdirp@3.6.0: + dependencies: + picomatch: 2.3.1 + + recma-build-jsx@1.0.0: + dependencies: + '@types/estree': 1.0.6 + estree-util-build-jsx: 3.0.1 + vfile: 6.0.3 + + recma-jsx@1.0.0(acorn@8.14.0): + dependencies: + acorn-jsx: 5.3.2(acorn@8.14.0) + estree-util-to-js: 2.0.0 + recma-parse: 1.0.0 + recma-stringify: 1.0.0 + unified: 11.0.5 + transitivePeerDependencies: + - acorn + + recma-parse@1.0.0: + dependencies: + '@types/estree': 1.0.6 + esast-util-from-js: 2.0.1 + unified: 11.0.5 + vfile: 6.0.3 + + recma-stringify@1.0.0: + dependencies: + '@types/estree': 1.0.6 + estree-util-to-js: 2.0.0 + unified: 11.0.5 + vfile: 6.0.3 + + redent@3.0.0: + dependencies: + indent-string: 4.0.0 + strip-indent: 3.0.0 + + reflect.getprototypeof@1.0.10: + dependencies: + call-bind: 1.0.8 + define-properties: 1.2.1 + es-abstract: 1.23.9 + es-errors: 1.3.0 + es-object-atoms: 1.1.1 + get-intrinsic: 1.2.7 + get-proto: 1.0.1 + which-builtin-type: 1.2.1 + + regenerate-unicode-properties@10.2.0: + dependencies: + regenerate: 1.4.2 + + regenerate@1.4.2: {} + + regenerator-runtime@0.14.1: {} + + regenerator-transform@0.15.2: + dependencies: + '@babel/runtime': 7.26.7 + + regex-recursion@5.1.1: + dependencies: + regex: 5.1.1 + regex-utilities: 2.3.0 + + regex-utilities@2.3.0: {} + + regex@5.1.1: + dependencies: + regex-utilities: 2.3.0 + + regexp.prototype.flags@1.5.4: + dependencies: + call-bind: 1.0.8 + define-properties: 1.2.1 + es-errors: 1.3.0 + get-proto: 1.0.1 + gopd: 1.2.0 + set-function-name: 2.0.2 + + regexpp@3.2.0: {} + + regexpu-core@6.2.0: + dependencies: + regenerate: 1.4.2 + regenerate-unicode-properties: 10.2.0 + regjsgen: 0.8.0 + regjsparser: 0.12.0 + unicode-match-property-ecmascript: 2.0.0 + unicode-match-property-value-ecmascript: 2.2.0 + + regjsgen@0.8.0: {} + + regjsparser@0.12.0: + dependencies: + jsesc: 3.0.2 + + regl@1.7.0: {} + + rehype-autolink-headings@7.1.0: + dependencies: + '@types/hast': 3.0.4 + '@ungap/structured-clone': 1.3.0 + hast-util-heading-rank: 3.0.0 + hast-util-is-element: 3.0.0 + unified: 11.0.5 + unist-util-visit: 5.0.0 + + rehype-parse@9.0.1: + dependencies: + '@types/hast': 3.0.4 + hast-util-from-html: 2.0.3 + unified: 11.0.5 + + rehype-raw@7.0.0: + dependencies: + '@types/hast': 3.0.4 + hast-util-raw: 9.1.0 + vfile: 6.0.3 + + rehype-recma@1.0.0: + dependencies: + '@types/estree': 1.0.6 + '@types/hast': 3.0.4 + hast-util-to-estree: 3.1.1 + transitivePeerDependencies: + - supports-color + + rehype-slug@6.0.0: + dependencies: + '@types/hast': 3.0.4 + github-slugger: 2.0.0 + hast-util-heading-rank: 3.0.0 + hast-util-to-string: 3.0.1 + unist-util-visit: 5.0.0 + + rehype-stringify@10.0.1: + dependencies: + '@types/hast': 3.0.4 + hast-util-to-html: 9.0.4 + unified: 11.0.5 + + rehype-urls@1.2.0: + dependencies: + hast-util-has-property: 1.0.4 + stdopt: 2.2.0 + unist-util-visit: 1.4.1 + + rehype@13.0.2: + dependencies: + '@types/hast': 3.0.4 + rehype-parse: 9.0.1 + rehype-stringify: 10.0.1 + unified: 11.0.5 + + remark-gfm@4.0.0: + dependencies: + '@types/mdast': 4.0.4 + mdast-util-gfm: 3.0.0 + micromark-extension-gfm: 3.0.0 + remark-parse: 11.0.0 + remark-stringify: 11.0.0 + unified: 11.0.5 + transitivePeerDependencies: + - supports-color + + remark-mdx@3.1.0: + dependencies: + mdast-util-mdx: 3.0.0 + micromark-extension-mdxjs: 3.0.0 + transitivePeerDependencies: + - supports-color + + remark-parse@11.0.0: + dependencies: + '@types/mdast': 4.0.4 + mdast-util-from-markdown: 2.0.2 + micromark-util-types: 2.0.1 + unified: 11.0.5 + transitivePeerDependencies: + - supports-color + + remark-rehype@11.1.1: + dependencies: + '@types/hast': 3.0.4 + '@types/mdast': 4.0.4 + mdast-util-to-hast: 13.2.0 + unified: 11.0.5 + vfile: 6.0.3 + + remark-smartypants@3.0.2: + dependencies: + retext: 9.0.0 + retext-smartypants: 6.2.0 + unified: 11.0.5 + unist-util-visit: 5.0.0 + + remark-stringify@11.0.0: + dependencies: + '@types/mdast': 4.0.4 + mdast-util-to-markdown: 2.1.2 + unified: 11.0.5 + + remark-toc@9.0.0: + dependencies: + '@types/mdast': 4.0.4 + mdast-util-toc: 7.1.0 + + remove-trailing-separator@1.1.0: {} + + replace-ext@1.0.1: {} + + require-directory@2.1.1: {} + + require-from-string@2.0.2: {} + + require-main-filename@2.0.0: {} + + requirejs-config-file@4.0.0: + dependencies: + esprima: 4.0.1 + stringify-object: 3.3.0 + + requirejs@2.3.7: {} + + requizzle@0.2.4: + dependencies: + lodash: 4.17.21 + + resolve-cwd@3.0.0: + dependencies: + resolve-from: 5.0.0 + + resolve-dependency-path@4.0.0: {} + + resolve-from@4.0.0: {} + + resolve-from@5.0.0: {} + + resolve.exports@2.0.3: {} + + resolve@1.22.10: + dependencies: + is-core-module: 2.16.1 + path-parse: 1.0.7 + supports-preserve-symlinks-flag: 1.0.0 + + restore-cursor@3.1.0: + dependencies: + onetime: 5.1.2 + signal-exit: 3.0.7 + + retext-latin@4.0.0: + dependencies: + '@types/nlcst': 2.0.3 + parse-latin: 7.0.0 + unified: 11.0.5 + + retext-smartypants@6.2.0: + dependencies: + '@types/nlcst': 2.0.3 + nlcst-to-string: 4.0.0 + unist-util-visit: 5.0.0 + + retext-stringify@4.0.0: + dependencies: + '@types/nlcst': 2.0.3 + nlcst-to-string: 4.0.0 + unified: 11.0.5 + + retext@9.0.0: + dependencies: + '@types/nlcst': 2.0.3 + retext-latin: 4.0.0 + retext-stringify: 4.0.0 + unified: 11.0.5 + + retry@0.12.0: {} + + reusify@1.0.4: {} + + right-now@1.0.0: {} + + rimraf@3.0.2: + dependencies: + glob: 7.2.3 + + rimraf@4.4.1: + dependencies: + glob: 9.3.5 + + rollup-plugin-terser@7.0.2(rollup@2.79.2): + dependencies: + '@babel/code-frame': 7.26.2 + jest-worker: 26.6.2 + rollup: 2.79.2 + serialize-javascript: 4.0.0 + terser: 5.37.0 + + rollup@2.79.2: + optionalDependencies: + fsevents: 2.3.3 + + rollup@4.32.0: + dependencies: + '@types/estree': 1.0.6 + optionalDependencies: + '@rollup/rollup-android-arm-eabi': 4.32.0 + '@rollup/rollup-android-arm64': 4.32.0 + '@rollup/rollup-darwin-arm64': 4.32.0 + '@rollup/rollup-darwin-x64': 4.32.0 + '@rollup/rollup-freebsd-arm64': 4.32.0 + '@rollup/rollup-freebsd-x64': 4.32.0 + '@rollup/rollup-linux-arm-gnueabihf': 4.32.0 + '@rollup/rollup-linux-arm-musleabihf': 4.32.0 + '@rollup/rollup-linux-arm64-gnu': 4.32.0 + '@rollup/rollup-linux-arm64-musl': 4.32.0 + '@rollup/rollup-linux-loongarch64-gnu': 4.32.0 + '@rollup/rollup-linux-powerpc64le-gnu': 4.32.0 + '@rollup/rollup-linux-riscv64-gnu': 4.32.0 + '@rollup/rollup-linux-s390x-gnu': 4.32.0 + '@rollup/rollup-linux-x64-gnu': 4.32.0 + '@rollup/rollup-linux-x64-musl': 4.32.0 + '@rollup/rollup-win32-arm64-msvc': 4.32.0 + '@rollup/rollup-win32-ia32-msvc': 4.32.0 + '@rollup/rollup-win32-x64-msvc': 4.32.0 + fsevents: 2.3.3 + + run-async@2.4.1: {} + + run-parallel@1.2.0: + dependencies: + queue-microtask: 1.2.3 + + rxjs@7.8.1: + dependencies: + tslib: 2.8.1 + + safe-array-concat@1.1.3: + dependencies: + call-bind: 1.0.8 + call-bound: 1.0.3 + get-intrinsic: 1.2.7 + has-symbols: 1.1.0 + isarray: 2.0.5 + + safe-buffer@5.1.2: {} + + safe-buffer@5.2.1: {} + + safe-push-apply@1.0.0: + dependencies: + es-errors: 1.3.0 + isarray: 2.0.5 + + safe-regex-test@1.1.0: + dependencies: + call-bound: 1.0.3 + es-errors: 1.3.0 + is-regex: 1.2.1 + + safer-buffer@2.1.2: {} + + sass-lookup@6.0.1: + dependencies: + commander: 12.1.0 + + scheduler@0.25.0: {} + + search-insights@2.13.0: {} + + semver@5.7.2: {} + + semver@6.3.1: {} + + semver@7.6.3: {} + + serialize-javascript@4.0.0: + dependencies: + randombytes: 2.1.0 + + set-blocking@2.0.0: {} + + set-function-length@1.2.2: + dependencies: + define-data-property: 1.1.4 + es-errors: 1.3.0 + function-bind: 1.1.2 + get-intrinsic: 1.2.7 + gopd: 1.2.0 + has-property-descriptors: 1.0.2 + + set-function-name@2.0.2: + dependencies: + define-data-property: 1.1.4 + es-errors: 1.3.0 + functions-have-names: 1.2.3 + has-property-descriptors: 1.0.2 + + set-proto@1.0.0: + dependencies: + dunder-proto: 1.0.1 + es-errors: 1.3.0 + es-object-atoms: 1.1.1 + + sfumato@0.1.2: + dependencies: + soundfont2: 0.4.0 + + shallow-clone@3.0.1: + dependencies: + kind-of: 6.0.3 + + sharp@0.33.5: + dependencies: + color: 4.2.3 + detect-libc: 2.0.3 + semver: 7.6.3 + optionalDependencies: + '@img/sharp-darwin-arm64': 0.33.5 + '@img/sharp-darwin-x64': 0.33.5 + '@img/sharp-libvips-darwin-arm64': 1.0.4 + '@img/sharp-libvips-darwin-x64': 1.0.4 + '@img/sharp-libvips-linux-arm': 1.0.5 + '@img/sharp-libvips-linux-arm64': 1.0.4 + '@img/sharp-libvips-linux-s390x': 1.0.4 + '@img/sharp-libvips-linux-x64': 1.0.4 + '@img/sharp-libvips-linuxmusl-arm64': 1.0.4 + '@img/sharp-libvips-linuxmusl-x64': 1.0.4 + '@img/sharp-linux-arm': 0.33.5 + '@img/sharp-linux-arm64': 0.33.5 + '@img/sharp-linux-s390x': 0.33.5 + '@img/sharp-linux-x64': 0.33.5 + '@img/sharp-linuxmusl-arm64': 0.33.5 + '@img/sharp-linuxmusl-x64': 0.33.5 + '@img/sharp-wasm32': 0.33.5 + '@img/sharp-win32-ia32': 0.33.5 + '@img/sharp-win32-x64': 0.33.5 + + shebang-command@2.0.0: + dependencies: + shebang-regex: 3.0.0 + + shebang-regex@3.0.0: {} + + shiki@1.29.1: + dependencies: + '@shikijs/core': 1.29.1 + '@shikijs/engine-javascript': 1.29.1 + '@shikijs/engine-oniguruma': 1.29.1 + '@shikijs/langs': 1.29.1 + '@shikijs/themes': 1.29.1 + '@shikijs/types': 1.29.1 + '@shikijs/vscode-textmate': 10.0.1 + '@types/hast': 3.0.4 + + side-channel-list@1.0.0: + dependencies: + es-errors: 1.3.0 + object-inspect: 1.13.3 + + side-channel-map@1.0.1: + dependencies: + call-bound: 1.0.3 + es-errors: 1.3.0 + get-intrinsic: 1.2.7 + object-inspect: 1.13.3 + + side-channel-weakmap@1.0.2: + dependencies: + call-bound: 1.0.3 + es-errors: 1.3.0 + get-intrinsic: 1.2.7 + object-inspect: 1.13.3 + side-channel-map: 1.0.1 + + side-channel@1.1.0: + dependencies: + es-errors: 1.3.0 + object-inspect: 1.13.3 + side-channel-list: 1.0.0 + side-channel-map: 1.0.1 + side-channel-weakmap: 1.0.2 + + siginfo@2.0.0: {} + + signal-exit@3.0.7: {} + + signal-exit@4.1.0: {} + + sigstore@2.3.1: + dependencies: + '@sigstore/bundle': 2.3.2 + '@sigstore/core': 1.1.0 + '@sigstore/protobuf-specs': 0.3.3 + '@sigstore/sign': 2.3.2 + '@sigstore/tuf': 2.3.4 + '@sigstore/verify': 1.2.1 + transitivePeerDependencies: + - supports-color + + simple-concat@1.0.1: {} + + simple-get@4.0.1: + dependencies: + decompress-response: 6.0.0 + once: 1.4.0 + simple-concat: 1.0.1 + + simple-swizzle@0.2.2: + dependencies: + is-arrayish: 0.3.2 + + sirv@3.0.0: + dependencies: + '@polka/url': 1.0.0-next.28 + mrmime: 2.0.0 + totalist: 3.0.1 + + sisteransi@1.0.5: {} + + slash@3.0.0: {} + + smart-buffer@4.2.0: {} + + socks-proxy-agent@8.0.5: + dependencies: + agent-base: 7.1.3 + debug: 4.4.0 + socks: 2.8.3 + transitivePeerDependencies: + - supports-color + + socks@2.8.3: + dependencies: + ip-address: 9.0.5 + smart-buffer: 4.2.0 + + sort-keys@2.0.0: + dependencies: + is-plain-obj: 1.1.0 + + soundfont2@0.4.0: {} + + soundfont2@0.5.0: {} + + source-map-generator@0.8.0: {} + + source-map-js@1.2.1: {} + + source-map-support@0.5.21: + dependencies: + buffer-from: 1.1.2 + source-map: 0.6.1 + + source-map@0.1.43: + dependencies: + amdefine: 1.0.1 + optional: true + + source-map@0.5.7: {} + + source-map@0.6.1: {} + + source-map@0.7.4: {} + + source-map@0.8.0-beta.0: + dependencies: + whatwg-url: 7.1.0 + + sourcemap-codec@1.4.8: {} + + space-separated-tokens@2.0.2: {} + + spdx-correct@3.2.0: + dependencies: + spdx-expression-parse: 3.0.1 + spdx-license-ids: 3.0.21 + + spdx-exceptions@2.5.0: {} + + spdx-expression-parse@3.0.1: + dependencies: + spdx-exceptions: 2.5.0 + spdx-license-ids: 3.0.21 + + spdx-license-ids@3.0.21: {} + + split2@3.2.2: + dependencies: + readable-stream: 3.6.2 + + split@1.0.1: + dependencies: + through: 2.3.8 + + sprintf-js@1.0.3: {} + + sprintf-js@1.1.3: {} + + ssri@10.0.6: + dependencies: + minipass: 7.1.2 + + stackback@0.0.2: {} + + standardized-audio-context@25.3.77: + dependencies: + '@babel/runtime': 7.26.7 + automation-events: 7.1.5 + tslib: 2.8.1 + + std-env@3.8.0: {} + + stdopt@2.2.0: + dependencies: + is-arrayish: 0.3.2 + + stream-meter@1.0.4: + dependencies: + readable-stream: 2.3.8 + + stream-parser@0.3.1: + dependencies: + debug: 2.6.9 + transitivePeerDependencies: + - supports-color + + stream-transform@3.3.3: {} + + string-width@2.1.1: + dependencies: + is-fullwidth-code-point: 2.0.0 + strip-ansi: 4.0.0 + + string-width@4.2.3: + dependencies: + emoji-regex: 8.0.0 + is-fullwidth-code-point: 3.0.0 + strip-ansi: 6.0.1 + + string-width@5.1.2: + dependencies: + eastasianwidth: 0.2.0 + emoji-regex: 9.2.2 + strip-ansi: 7.1.0 + + string-width@7.2.0: + dependencies: + emoji-regex: 10.4.0 + get-east-asian-width: 1.3.0 + strip-ansi: 7.1.0 + + string.prototype.matchall@4.0.12: + dependencies: + call-bind: 1.0.8 + call-bound: 1.0.3 + define-properties: 1.2.1 + es-abstract: 1.23.9 + es-errors: 1.3.0 + es-object-atoms: 1.1.1 + get-intrinsic: 1.2.7 + gopd: 1.2.0 + has-symbols: 1.1.0 + internal-slot: 1.1.0 + regexp.prototype.flags: 1.5.4 + set-function-name: 2.0.2 + side-channel: 1.1.0 + + string.prototype.trim@1.2.10: + dependencies: + call-bind: 1.0.8 + call-bound: 1.0.3 + define-data-property: 1.1.4 + define-properties: 1.2.1 + es-abstract: 1.23.9 + es-object-atoms: 1.1.1 + has-property-descriptors: 1.0.2 + + string.prototype.trimend@1.0.9: + dependencies: + call-bind: 1.0.8 + call-bound: 1.0.3 + define-properties: 1.2.1 + es-object-atoms: 1.1.1 + + string.prototype.trimstart@1.0.8: + dependencies: + call-bind: 1.0.8 + define-properties: 1.2.1 + es-object-atoms: 1.1.1 + + string_decoder@0.10.31: {} + + string_decoder@1.1.1: + dependencies: + safe-buffer: 5.1.2 + + string_decoder@1.3.0: + dependencies: + safe-buffer: 5.2.1 + + stringify-entities@4.0.4: + dependencies: + character-entities-html4: 2.1.0 + character-entities-legacy: 3.0.0 + + stringify-object@3.3.0: + dependencies: + get-own-enumerable-property-symbols: 3.0.2 + is-obj: 1.0.1 + is-regexp: 1.0.0 + + strip-ansi@4.0.0: + dependencies: + ansi-regex: 3.0.1 + + strip-ansi@6.0.1: + dependencies: + ansi-regex: 5.0.1 + + strip-ansi@7.1.0: + dependencies: + ansi-regex: 6.1.0 + + strip-bom@3.0.0: {} + + strip-bom@4.0.0: {} + + strip-comments@2.0.1: {} + + strip-final-newline@2.0.0: {} + + strip-indent@3.0.0: + dependencies: + min-indent: 1.0.1 + + strip-json-comments@2.0.1: {} + + strip-json-comments@3.1.1: {} + + strnum@1.0.5: {} + + strong-log-transformer@2.1.0: + dependencies: + duplexer: 0.1.2 + minimist: 1.2.8 + through: 2.3.8 + + style-mod@4.1.2: {} + + style-to-object@1.0.8: + dependencies: + inline-style-parser: 0.2.4 + + stylus-lookup@6.0.0: + dependencies: + commander: 12.1.0 + + sucrase@3.35.0: + dependencies: + '@jridgewell/gen-mapping': 0.3.8 + commander: 4.1.1 + glob: 10.4.5 + lines-and-columns: 1.2.4 + mz: 2.7.0 + pirates: 4.0.6 + ts-interface-checker: 0.1.13 + + supports-color@7.2.0: + dependencies: + has-flag: 4.0.0 + + supports-preserve-symlinks-flag@1.0.0: {} + + tabbable@6.2.0: {} + + tailwindcss@3.4.17: + dependencies: + '@alloc/quick-lru': 5.2.0 + arg: 5.0.2 + chokidar: 3.6.0 + didyoumean: 1.2.2 + dlv: 1.1.3 + fast-glob: 3.3.3 + glob-parent: 6.0.2 + is-glob: 4.0.3 + jiti: 1.21.7 + lilconfig: 3.1.3 + micromatch: 4.0.8 + normalize-path: 3.0.0 + object-hash: 3.0.0 + picocolors: 1.1.1 + postcss: 8.5.1 + postcss-import: 15.1.0(postcss@8.5.1) + postcss-js: 4.0.1(postcss@8.5.1) + postcss-load-config: 4.0.2(postcss@8.5.1) + postcss-nested: 6.2.0(postcss@8.5.1) + postcss-selector-parser: 6.1.2 + resolve: 1.22.10 + sucrase: 3.35.0 + transitivePeerDependencies: + - ts-node + + tailwindcss@4.0.0: {} + + tapable@2.2.1: {} + + tar-fs@2.1.2: + dependencies: + chownr: 1.1.4 + mkdirp-classic: 0.5.3 + pump: 3.0.2 + tar-stream: 2.2.0 + + tar-stream@2.2.0: + dependencies: + bl: 4.1.0 + end-of-stream: 1.4.4 + fs-constants: 1.0.0 + inherits: 2.0.4 + readable-stream: 3.6.2 + + tar@6.2.1: + dependencies: + chownr: 2.0.0 + fs-minipass: 2.1.0 + minipass: 5.0.0 + minizlib: 2.1.2 + mkdirp: 1.0.4 + yallist: 4.0.0 + + temp-dir@1.0.0: {} + + temp-dir@2.0.0: {} + + tempy@0.6.0: + dependencies: + is-stream: 2.0.1 + temp-dir: 2.0.0 + type-fest: 0.16.0 + unique-string: 2.0.0 + + terser@5.37.0: + dependencies: + '@jridgewell/source-map': 0.3.6 + acorn: 8.14.0 + commander: 2.20.3 + source-map-support: 0.5.21 + + test-exclude@7.0.1: + dependencies: + '@istanbuljs/schema': 0.1.3 + glob: 10.4.5 + minimatch: 9.0.5 + + text-encoding-shim@1.0.5: {} + + text-extensions@1.9.0: {} + + thenify-all@1.6.0: + dependencies: + thenify: 3.3.1 + + thenify@3.3.1: + dependencies: + any-promise: 1.3.0 + + through2@2.0.5: + dependencies: + readable-stream: 2.3.8 + xtend: 4.0.2 + + through@2.3.8: {} + + tinybench@2.9.0: {} + + tinyexec@0.3.2: {} + + tinyglobby@0.2.10: + dependencies: + fdir: 6.4.3(picomatch@4.0.2) + picomatch: 4.0.2 + + tinypool@1.0.2: {} + + tinyrainbow@2.0.0: {} + + tinyspy@3.0.2: {} + + tmp@0.0.33: + dependencies: + os-tmpdir: 1.0.2 + + tmp@0.2.3: {} + + to-fast-properties@2.0.0: {} + + to-regex-range@5.0.1: + dependencies: + is-number: 7.0.0 + + totalist@3.0.1: {} + + tr46@0.0.3: {} + + tr46@1.0.1: + dependencies: + punycode: 2.3.1 + + tree-sitter-haskell@0.23.1(tree-sitter@0.21.1): + dependencies: + node-addon-api: 8.3.0 + node-gyp-build: 4.8.4 + optionalDependencies: + tree-sitter: 0.21.1 + + tree-sitter@0.21.1: + dependencies: + node-addon-api: 8.3.0 + node-gyp-build: 4.8.4 + optional: true + + treeverse@3.0.0: {} + + trim-lines@3.0.1: {} + + trim-newlines@3.0.1: {} + + trough@2.2.0: {} + + ts-api-utils@1.4.3(typescript@5.7.3): + dependencies: + typescript: 5.7.3 + + ts-interface-checker@0.1.13: {} + + tsconfck@3.1.4(typescript@5.7.3): + optionalDependencies: + typescript: 5.7.3 + + tsconfig-paths@3.15.0: + dependencies: + '@types/json5': 0.0.29 + json5: 1.0.2 + minimist: 1.2.8 + strip-bom: 3.0.0 + + tsconfig-paths@4.2.0: + dependencies: + json5: 2.2.3 + minimist: 1.2.8 + strip-bom: 3.0.0 + + tslib@2.8.1: {} + + tuf-js@2.2.1: + dependencies: + '@tufjs/models': 2.0.1 + debug: 4.4.0 + make-fetch-happen: 13.0.1 + transitivePeerDependencies: + - supports-color + + tunnel-agent@0.6.0: + dependencies: + safe-buffer: 5.2.1 + + type-check@0.4.0: + dependencies: + prelude-ls: 1.2.1 + + type-fest@0.16.0: {} + + type-fest@0.18.1: {} + + type-fest@0.21.3: {} + + type-fest@0.4.1: {} + + type-fest@0.6.0: {} + + type-fest@0.8.1: {} + + type-fest@4.33.0: {} + + typed-array-buffer@1.0.3: + dependencies: + call-bound: 1.0.3 + es-errors: 1.3.0 + is-typed-array: 1.1.15 + + typed-array-byte-length@1.0.3: + dependencies: + call-bind: 1.0.8 + for-each: 0.3.4 + gopd: 1.2.0 + has-proto: 1.2.0 + is-typed-array: 1.1.15 + + typed-array-byte-offset@1.0.4: + dependencies: + available-typed-arrays: 1.0.7 + call-bind: 1.0.8 + for-each: 0.3.4 + gopd: 1.2.0 + has-proto: 1.2.0 + is-typed-array: 1.1.15 + reflect.getprototypeof: 1.0.10 + + typed-array-length@1.0.7: + dependencies: + call-bind: 1.0.8 + for-each: 0.3.4 + gopd: 1.2.0 + is-typed-array: 1.1.15 + possible-typed-array-names: 1.0.0 + reflect.getprototypeof: 1.0.10 + + typedarray@0.0.6: {} + + typescript@5.7.3: {} + + uc.micro@2.1.0: {} + + ufo@1.5.4: {} + + uglify-js@2.3.6: + dependencies: + async: 0.2.10 + optimist: 0.3.7 + source-map: 0.1.43 + optional: true + + uglify-js@3.19.3: + optional: true + + ultrahtml@1.5.3: {} + + unbox-primitive@1.1.0: + dependencies: + call-bound: 1.0.3 + has-bigints: 1.1.0 + has-symbols: 1.1.0 + which-boxed-primitive: 1.1.1 + + uncrypto@0.1.3: {} + + underscore@1.13.7: {} + + underscore@1.5.2: {} + + undici-types@6.20.0: {} + + unenv@1.10.0: + dependencies: + consola: 3.4.0 + defu: 6.1.4 + mime: 3.0.0 + node-fetch-native: 1.6.6 + pathe: 1.1.2 + + unicode-canonical-property-names-ecmascript@2.0.1: {} + + unicode-match-property-ecmascript@2.0.0: + dependencies: + unicode-canonical-property-names-ecmascript: 2.0.1 + unicode-property-aliases-ecmascript: 2.1.0 + + unicode-match-property-value-ecmascript@2.2.0: {} + + unicode-property-aliases-ecmascript@2.1.0: {} + + unified@11.0.5: + dependencies: + '@types/unist': 3.0.3 + bail: 2.0.2 + devlop: 1.1.0 + extend: 3.0.2 + is-plain-obj: 4.1.0 + trough: 2.2.0 + vfile: 6.0.3 + + unique-filename@3.0.0: + dependencies: + unique-slug: 4.0.0 + + unique-slug@4.0.0: + dependencies: + imurmurhash: 0.1.4 + + unique-string@2.0.0: + dependencies: + crypto-random-string: 2.0.0 + + unist-util-find-after@5.0.0: + dependencies: + '@types/unist': 3.0.3 + unist-util-is: 6.0.0 + + unist-util-is@3.0.0: {} + + unist-util-is@6.0.0: + dependencies: + '@types/unist': 3.0.3 + + unist-util-modify-children@4.0.0: + dependencies: + '@types/unist': 3.0.3 + array-iterate: 2.0.1 + + unist-util-position-from-estree@2.0.0: + dependencies: + '@types/unist': 3.0.3 + + unist-util-position@5.0.0: + dependencies: + '@types/unist': 3.0.3 + + unist-util-remove-position@5.0.0: + dependencies: + '@types/unist': 3.0.3 + unist-util-visit: 5.0.0 + + unist-util-stringify-position@4.0.0: + dependencies: + '@types/unist': 3.0.3 + + unist-util-visit-children@3.0.0: + dependencies: + '@types/unist': 3.0.3 + + unist-util-visit-parents@2.1.2: + dependencies: + unist-util-is: 3.0.0 + + unist-util-visit-parents@6.0.1: + dependencies: + '@types/unist': 3.0.3 + unist-util-is: 6.0.0 + + unist-util-visit@1.4.1: + dependencies: + unist-util-visit-parents: 2.1.2 + + unist-util-visit@5.0.0: + dependencies: + '@types/unist': 3.0.3 + unist-util-is: 6.0.0 + unist-util-visit-parents: 6.0.1 + + universal-user-agent@6.0.1: {} + + universalify@2.0.1: {} + + unmute-ios-audio@3.3.0: {} + + unstorage@1.14.4: + dependencies: + anymatch: 3.1.3 + chokidar: 3.6.0 + destr: 2.0.3 + h3: 1.14.0 + lru-cache: 10.4.3 + node-fetch-native: 1.6.6 + ofetch: 1.4.1 + ufo: 1.5.4 + + upath@1.2.0: {} + + upath@2.0.1: {} + + update-browserslist-db@1.1.2(browserslist@4.24.4): + dependencies: + browserslist: 4.24.4 + escalade: 3.2.0 + picocolors: 1.1.1 + + uri-js@4.4.1: + dependencies: + punycode: 2.3.1 + + util-deprecate@1.0.2: {} + + uuid@10.0.0: {} + + validate-npm-package-license@3.0.4: + dependencies: + spdx-correct: 3.2.0 + spdx-expression-parse: 3.0.1 + + validate-npm-package-name@5.0.1: {} + + vfile-location@5.0.3: + dependencies: + '@types/unist': 3.0.3 + vfile: 6.0.3 + + vfile-message@4.0.2: + dependencies: + '@types/unist': 3.0.3 + unist-util-stringify-position: 4.0.0 + + vfile@6.0.3: + dependencies: + '@types/unist': 3.0.3 + vfile-message: 4.0.2 + + vinyl-sourcemaps-apply@0.2.1: + dependencies: + source-map: 0.5.7 + + vinyl@2.2.1: + dependencies: + clone: 2.1.2 + clone-buffer: 1.0.0 + clone-stats: 1.0.0 + cloneable-readable: 1.1.3 + remove-trailing-separator: 1.1.0 + replace-ext: 1.0.1 + + vite-node@3.0.4(@types/node@22.10.10)(jiti@2.4.2)(lightningcss@1.29.1)(terser@5.37.0)(yaml@2.7.0): + dependencies: + cac: 6.7.14 + debug: 4.4.0 + es-module-lexer: 1.6.0 + pathe: 2.0.2 + vite: 6.0.11(@types/node@22.10.10)(jiti@2.4.2)(lightningcss@1.29.1)(terser@5.37.0)(yaml@2.7.0) + transitivePeerDependencies: + - '@types/node' + - jiti + - less + - lightningcss + - sass + - sass-embedded + - stylus + - sugarss + - supports-color + - terser + - tsx + - yaml + + vite-plugin-pwa@0.21.1(vite@6.0.11(@types/node@22.10.10)(jiti@2.4.2)(lightningcss@1.29.1)(terser@5.37.0)(yaml@2.7.0))(workbox-build@7.0.0(@types/babel__core@7.20.5))(workbox-window@7.3.0): + dependencies: + debug: 4.4.0 + pretty-bytes: 6.1.1 + tinyglobby: 0.2.10 + vite: 6.0.11(@types/node@22.10.10)(jiti@2.4.2)(lightningcss@1.29.1)(terser@5.37.0)(yaml@2.7.0) + workbox-build: 7.0.0(@types/babel__core@7.20.5) + workbox-window: 7.3.0 + transitivePeerDependencies: + - supports-color + + vite@6.0.11(@types/node@22.10.10)(jiti@2.4.2)(lightningcss@1.29.1)(terser@5.37.0)(yaml@2.7.0): + dependencies: + esbuild: 0.24.2 + postcss: 8.5.1 + rollup: 4.32.0 + optionalDependencies: + '@types/node': 22.10.10 + fsevents: 2.3.3 + jiti: 2.4.2 + lightningcss: 1.29.1 + terser: 5.37.0 + yaml: 2.7.0 + + vitefu@1.0.5(vite@6.0.11(@types/node@22.10.10)(jiti@2.4.2)(lightningcss@1.29.1)(terser@5.37.0)(yaml@2.7.0)): + optionalDependencies: + vite: 6.0.11(@types/node@22.10.10)(jiti@2.4.2)(lightningcss@1.29.1)(terser@5.37.0)(yaml@2.7.0) + + vitest@3.0.4(@types/debug@4.1.12)(@types/node@22.10.10)(@vitest/ui@3.0.4)(jiti@2.4.2)(lightningcss@1.29.1)(terser@5.37.0)(yaml@2.7.0): + dependencies: + '@vitest/expect': 3.0.4 + '@vitest/mocker': 3.0.4(vite@6.0.11(@types/node@22.10.10)(jiti@2.4.2)(lightningcss@1.29.1)(terser@5.37.0)(yaml@2.7.0)) + '@vitest/pretty-format': 3.0.4 + '@vitest/runner': 3.0.4 + '@vitest/snapshot': 3.0.4 + '@vitest/spy': 3.0.4 + '@vitest/utils': 3.0.4 + chai: 5.1.2 + debug: 4.4.0 + expect-type: 1.1.0 + magic-string: 0.30.17 + pathe: 2.0.2 + std-env: 3.8.0 + tinybench: 2.9.0 + tinyexec: 0.3.2 + tinypool: 1.0.2 + tinyrainbow: 2.0.0 + vite: 6.0.11(@types/node@22.10.10)(jiti@2.4.2)(lightningcss@1.29.1)(terser@5.37.0)(yaml@2.7.0) + vite-node: 3.0.4(@types/node@22.10.10)(jiti@2.4.2)(lightningcss@1.29.1)(terser@5.37.0)(yaml@2.7.0) + why-is-node-running: 2.3.0 + optionalDependencies: + '@types/debug': 4.1.12 + '@types/node': 22.10.10 + '@vitest/ui': 3.0.4(vitest@3.0.4) + transitivePeerDependencies: + - jiti + - less + - lightningcss + - msw + - sass + - sass-embedded + - stylus + - sugarss + - supports-color + - terser + - tsx + - yaml + + w3c-keyname@2.2.8: {} + + walk-up-path@3.0.1: {} + + wav@1.0.2: dependencies: buffer-alloc: 1.2.0 buffer-from: 1.1.2 @@ -14164,183 +15964,147 @@ packages: stream-parser: 0.3.1 transitivePeerDependencies: - supports-color - dev: false - /wcwidth@1.0.1: - resolution: {integrity: sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==} + wcwidth@1.0.1: dependencies: defaults: 1.0.4 - dev: true - /web-midi-api@2.2.2: - resolution: {integrity: sha512-lQFqcdmzoxLx1833DOC4bavfk9Cp5bjkC5SlZAceqsuUoc2j+fYSbqv45XwJqeECkCUXzB9UQ8wyWr40ppINhw==} + web-midi-api@2.3.5: dependencies: - jzz: 1.5.9 - dev: false + jzz: 1.8.8 - /web-namespaces@2.0.1: - resolution: {integrity: sha512-bKr1DkiNa2krS7qxNtdrtHAmzuYGFQLiQ13TsorsdT6ULTkPLKuu5+GsFpDlg6JFjUTwX2DyhMPG2be8uPrqsQ==} + web-namespaces@2.0.1: {} - /web-streams-polyfill@3.2.1: - resolution: {integrity: sha512-e0MO3wdXWKrLbL0DgGnUV7WHVuw9OUvL4hjgnPkIeEvESk74gAITi5G606JtZPp39cd8HA9VQzCIvA49LpPN5Q==} - engines: {node: '>= 8'} - dev: true + web-streams-polyfill@3.3.3: {} - /webidl-conversions@3.0.1: - resolution: {integrity: sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==} + web-tree-sitter@0.20.8: {} - /webidl-conversions@4.0.2: - resolution: {integrity: sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==} - dev: true + web-tree-sitter@0.24.7: {} - /webmidi@3.1.8: - resolution: {integrity: sha512-PCRic1iTpKxeheb888G0mDe6MBdz/u+s/xfdV6+1ZhZnS6dKtV9gMBth5cpmMip2Livv5lL+ep4/S9DCzHfumg==} - engines: {node: '>=8.5'} + webidl-conversions@3.0.1: {} + + webidl-conversions@4.0.2: {} + + webmidi@3.1.12: dependencies: djipevents: 2.0.7 optionalDependencies: - jzz: 1.7.7 - dev: false + jzz: 1.8.8 - /whatwg-url@5.0.0: - resolution: {integrity: sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==} + whatwg-url@5.0.0: dependencies: tr46: 0.0.3 webidl-conversions: 3.0.1 - /whatwg-url@7.1.0: - resolution: {integrity: sha512-WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg==} + whatwg-url@7.1.0: dependencies: lodash.sortby: 4.7.0 tr46: 1.0.1 webidl-conversions: 4.0.2 - dev: true - /which-boxed-primitive@1.0.2: - resolution: {integrity: sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==} + which-boxed-primitive@1.1.1: dependencies: - is-bigint: 1.0.4 - is-boolean-object: 1.1.2 - is-number-object: 1.0.7 - is-string: 1.0.7 - is-symbol: 1.0.4 - dev: true + is-bigint: 1.1.0 + is-boolean-object: 1.2.1 + is-number-object: 1.1.1 + is-string: 1.1.1 + is-symbol: 1.1.1 - /which-module@2.0.1: - resolution: {integrity: sha512-iBdZ57RDvnOR9AGBhML2vFZf7h8vmBjhoaZqODJBFWHVtKkDmKuHai3cx5PgVMrX5YDNp27AofYbAwctSS+vhQ==} - dev: false + which-builtin-type@1.2.1: + dependencies: + call-bound: 1.0.3 + function.prototype.name: 1.1.8 + has-tostringtag: 1.0.2 + is-async-function: 2.1.1 + is-date-object: 1.1.0 + is-finalizationregistry: 1.1.1 + is-generator-function: 1.1.0 + is-regex: 1.2.1 + is-weakref: 1.1.0 + isarray: 2.0.5 + which-boxed-primitive: 1.1.1 + which-collection: 1.0.2 + which-typed-array: 1.1.18 - /which-pm-runs@1.1.0: - resolution: {integrity: sha512-n1brCuqClxfFfq/Rb0ICg9giSZqCS+pLtccdag6C2HyufBrh3fBOiy9nb6ggRMvWOVH5GrdJskj5iGTZNxd7SA==} - engines: {node: '>=4'} + which-collection@1.0.2: + dependencies: + is-map: 2.0.3 + is-set: 2.0.3 + is-weakmap: 2.0.2 + is-weakset: 2.0.4 - /which-pm@2.0.0: - resolution: {integrity: sha512-Lhs9Pmyph0p5n5Z3mVnN0yWcbQYUAD7rbQUiMsQxOJ3T57k7RFe35SUwWMf7dsbDZks1uOmw4AecB/JMDj3v/w==} - engines: {node: '>=8.15'} + which-module@2.0.1: {} + + which-pm-runs@1.1.0: {} + + which-pm@3.0.0: dependencies: load-yaml-file: 0.2.0 - path-exists: 4.0.0 - /which-pm@2.1.1: - resolution: {integrity: sha512-xzzxNw2wMaoCWXiGE8IJ9wuPMU+EYhFksjHxrRT8kMT5SnocBPRg69YAMtyV4D12fP582RA+k3P8H9J5EMdIxQ==} - engines: {node: '>=8.15'} + which-typed-array@1.1.18: dependencies: - load-yaml-file: 0.2.0 - path-exists: 4.0.0 + available-typed-arrays: 1.0.7 + call-bind: 1.0.8 + call-bound: 1.0.3 + for-each: 0.3.4 + gopd: 1.2.0 + has-tostringtag: 1.0.2 - /which-typed-array@1.1.13: - resolution: {integrity: sha512-P5Nra0qjSncduVPEAr7xhoF5guty49ArDTwzJ/yNuPIbZppyRxFQsRCWrocxIY+CnMVG+qfbU2FmDKyvSGClow==} - engines: {node: '>= 0.4'} - dependencies: - available-typed-arrays: 1.0.5 - call-bind: 1.0.5 - for-each: 0.3.3 - gopd: 1.0.1 - has-tostringtag: 1.0.0 - dev: true - - /which@2.0.2: - resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} - engines: {node: '>= 8'} - hasBin: true + which@2.0.2: dependencies: isexe: 2.0.0 - /which@4.0.0: - resolution: {integrity: sha512-GlaYyEb07DPxYCKhKzplCWBJtvxZcZMrL+4UkrTSJHHPyZU4mYYTv3qaOe77H7EODLSSopAUFAc6W8U4yqvscg==} - engines: {node: ^16.13.0 || >=18.0.0} - hasBin: true + which@4.0.0: dependencies: isexe: 3.1.1 - dev: true - /why-is-node-running@2.2.2: - resolution: {integrity: sha512-6tSwToZxTOcotxHeA+qGCq1mVzKR3CwcJGmVcY+QE8SHy6TnpFnh8PAvPNHYr7EcuVeG0QSMxtYCuO1ta/G/oA==} - engines: {node: '>=8'} - hasBin: true + why-is-node-running@2.3.0: dependencies: siginfo: 2.0.0 stackback: 0.0.2 - dev: true - /wide-align@1.1.5: - resolution: {integrity: sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==} + wide-align@1.1.5: dependencies: string-width: 4.2.3 - dev: true - /widest-line@4.0.1: - resolution: {integrity: sha512-o0cyEG0e8GPzT4iGHphIOh0cJOV8fivsXxddQasHPHfoZf1ZexrfeA21w2NaEN1RHE+fXlfISmOE8R9N3u3Qig==} - engines: {node: '>=12'} + widest-line@5.0.0: dependencies: - string-width: 5.1.2 + string-width: 7.2.0 - /wordwrap@1.0.0: - resolution: {integrity: sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==} - dev: true + word-wrap@1.2.5: {} - /wordwrapjs@3.0.0: - resolution: {integrity: sha512-mO8XtqyPvykVCsrwj5MlOVWvSnCdT+C+QVbm6blradR7JExAhbkZ7hZ9A+9NUtwzSqrlUo9a67ws0EiILrvRpw==} - engines: {node: '>=4.0.0'} - dependencies: - reduce-flatten: 1.0.1 - typical: 2.6.1 - dev: true + wordwrap@0.0.3: {} - /workbox-background-sync@7.0.0: - resolution: {integrity: sha512-S+m1+84gjdueM+jIKZ+I0Lx0BDHkk5Nu6a3kTVxP4fdj3gKouRNmhO8H290ybnJTOPfBDtTMXSQA/QLTvr7PeA==} + wordwrap@1.0.0: {} + + workbox-background-sync@7.0.0: dependencies: idb: 7.1.1 workbox-core: 7.0.0 - dev: true - /workbox-broadcast-update@7.0.0: - resolution: {integrity: sha512-oUuh4jzZrLySOo0tC0WoKiSg90bVAcnE98uW7F8GFiSOXnhogfNDGZelPJa+6KpGBO5+Qelv04Hqx2UD+BJqNQ==} + workbox-broadcast-update@7.0.0: dependencies: workbox-core: 7.0.0 - dev: true - /workbox-build@7.0.0: - resolution: {integrity: sha512-CttE7WCYW9sZC+nUYhQg3WzzGPr4IHmrPnjKiu3AMXsiNQKx+l4hHl63WTrnicLmKEKHScWDH8xsGBdrYgtBzg==} - engines: {node: '>=16.0.0'} + workbox-build@7.0.0(@types/babel__core@7.20.5): dependencies: - '@apideck/better-ajv-errors': 0.3.6(ajv@8.12.0) - '@babel/core': 7.23.7 - '@babel/preset-env': 7.23.7(@babel/core@7.23.7) - '@babel/runtime': 7.24.1 - '@rollup/plugin-babel': 5.3.1(@babel/core@7.23.7)(rollup@2.79.1) - '@rollup/plugin-node-resolve': 11.2.1(rollup@2.79.1) - '@rollup/plugin-replace': 2.4.2(rollup@2.79.1) + '@apideck/better-ajv-errors': 0.3.6(ajv@8.17.1) + '@babel/core': 7.26.7 + '@babel/preset-env': 7.26.7(@babel/core@7.26.7) + '@babel/runtime': 7.26.7 + '@rollup/plugin-babel': 5.3.1(@babel/core@7.26.7)(@types/babel__core@7.20.5)(rollup@2.79.2) + '@rollup/plugin-node-resolve': 11.2.1(rollup@2.79.2) + '@rollup/plugin-replace': 2.4.2(rollup@2.79.2) '@surma/rollup-plugin-off-main-thread': 2.2.3 - ajv: 8.12.0 + ajv: 8.17.1 common-tags: 1.8.2 fast-json-stable-stringify: 2.1.0 fs-extra: 9.1.0 glob: 7.2.3 lodash: 4.17.21 pretty-bytes: 5.6.0 - rollup: 2.79.1 - rollup-plugin-terser: 7.0.2(rollup@2.79.1) + rollup: 2.79.2 + rollup-plugin-terser: 7.0.2(rollup@2.79.2) source-map: 0.8.0-beta.0 stringify-object: 3.3.0 strip-comments: 2.0.1 @@ -14364,56 +16128,42 @@ packages: transitivePeerDependencies: - '@types/babel__core' - supports-color - dev: true - /workbox-cacheable-response@7.0.0: - resolution: {integrity: sha512-0lrtyGHn/LH8kKAJVOQfSu3/80WDc9Ma8ng0p2i/5HuUndGttH+mGMSvOskjOdFImLs2XZIimErp7tSOPmu/6g==} + workbox-cacheable-response@7.0.0: dependencies: workbox-core: 7.0.0 - dev: true - /workbox-core@7.0.0: - resolution: {integrity: sha512-81JkAAZtfVP8darBpfRTovHg8DGAVrKFgHpOArZbdFd78VqHr5Iw65f2guwjE2NlCFbPFDoez3D3/6ZvhI/rwQ==} - dev: true + workbox-core@7.0.0: {} - /workbox-expiration@7.0.0: - resolution: {integrity: sha512-MLK+fogW+pC3IWU9SFE+FRStvDVutwJMR5if1g7oBJx3qwmO69BNoJQVaMXq41R0gg3MzxVfwOGKx3i9P6sOLQ==} + workbox-core@7.3.0: {} + + workbox-expiration@7.0.0: dependencies: idb: 7.1.1 workbox-core: 7.0.0 - dev: true - /workbox-google-analytics@7.0.0: - resolution: {integrity: sha512-MEYM1JTn/qiC3DbpvP2BVhyIH+dV/5BjHk756u9VbwuAhu0QHyKscTnisQuz21lfRpOwiS9z4XdqeVAKol0bzg==} + workbox-google-analytics@7.0.0: dependencies: workbox-background-sync: 7.0.0 workbox-core: 7.0.0 workbox-routing: 7.0.0 workbox-strategies: 7.0.0 - dev: true - /workbox-navigation-preload@7.0.0: - resolution: {integrity: sha512-juWCSrxo/fiMz3RsvDspeSLGmbgC0U9tKqcUPZBCf35s64wlaLXyn2KdHHXVQrb2cqF7I0Hc9siQalainmnXJA==} + workbox-navigation-preload@7.0.0: dependencies: workbox-core: 7.0.0 - dev: true - /workbox-precaching@7.0.0: - resolution: {integrity: sha512-EC0vol623LJqTJo1mkhD9DZmMP604vHqni3EohhQVwhJlTgyKyOkMrZNy5/QHfOby+39xqC01gv4LjOm4HSfnA==} + workbox-precaching@7.0.0: dependencies: workbox-core: 7.0.0 workbox-routing: 7.0.0 workbox-strategies: 7.0.0 - dev: true - /workbox-range-requests@7.0.0: - resolution: {integrity: sha512-SxAzoVl9j/zRU9OT5+IQs7pbJBOUOlriB8Gn9YMvi38BNZRbM+RvkujHMo8FOe9IWrqqwYgDFBfv6sk76I1yaQ==} + workbox-range-requests@7.0.0: dependencies: workbox-core: 7.0.0 - dev: true - /workbox-recipes@7.0.0: - resolution: {integrity: sha512-DntcK9wuG3rYQOONWC0PejxYYIDHyWWZB/ueTbOUDQgefaeIj1kJ7pdP3LZV2lfrj8XXXBWt+JDRSw1lLLOnww==} + workbox-recipes@7.0.0: dependencies: workbox-cacheable-response: 7.0.0 workbox-core: 7.0.0 @@ -14421,111 +16171,89 @@ packages: workbox-precaching: 7.0.0 workbox-routing: 7.0.0 workbox-strategies: 7.0.0 - dev: true - /workbox-routing@7.0.0: - resolution: {integrity: sha512-8YxLr3xvqidnbVeGyRGkaV4YdlKkn5qZ1LfEePW3dq+ydE73hUUJJuLmGEykW3fMX8x8mNdL0XrWgotcuZjIvA==} + workbox-routing@7.0.0: dependencies: workbox-core: 7.0.0 - dev: true - /workbox-strategies@7.0.0: - resolution: {integrity: sha512-dg3qJU7tR/Gcd/XXOOo7x9QoCI9nk74JopaJaYAQ+ugLi57gPsXycVdBnYbayVj34m6Y8ppPwIuecrzkpBVwbA==} + workbox-strategies@7.0.0: dependencies: workbox-core: 7.0.0 - dev: true - /workbox-streams@7.0.0: - resolution: {integrity: sha512-moVsh+5to//l6IERWceYKGiftc+prNnqOp2sgALJJFbnNVpTXzKISlTIsrWY+ogMqt+x1oMazIdHj25kBSq/HQ==} + workbox-streams@7.0.0: dependencies: workbox-core: 7.0.0 workbox-routing: 7.0.0 - dev: true - /workbox-sw@7.0.0: - resolution: {integrity: sha512-SWfEouQfjRiZ7GNABzHUKUyj8pCoe+RwjfOIajcx6J5mtgKkN+t8UToHnpaJL5UVVOf5YhJh+OHhbVNIHe+LVA==} - dev: true + workbox-sw@7.0.0: {} - /workbox-window@7.0.0: - resolution: {integrity: sha512-j7P/bsAWE/a7sxqTzXo3P2ALb1reTfZdvVp6OJ/uLr/C2kZAMvjeWGm8V4htQhor7DOvYg0sSbFN2+flT5U0qA==} + workbox-window@7.0.0: dependencies: - '@types/trusted-types': 2.0.2 + '@types/trusted-types': 2.0.7 workbox-core: 7.0.0 - dev: true - /worker-timers-broker@6.1.4: - resolution: {integrity: sha512-y3D+Yfj37lrItEMIlcfCm/IRueYtYKgpLlTG2wgTIZ9PSw0n/K4kweilgk3gTC4ahbQNVGT90lU+Rf7W4M5bsw==} + workbox-window@7.3.0: dependencies: - '@babel/runtime': 7.24.1 - fast-unique-numbers: 8.0.13 - tslib: 2.6.2 - worker-timers-worker: 7.0.67 - dev: false + '@types/trusted-types': 2.0.7 + workbox-core: 7.3.0 - /worker-timers-worker@7.0.67: - resolution: {integrity: sha512-0ZP2+v2fyiiiGaCEdWxMRUk5YxGFwWdRGB12ZfQy13vw8/27Xd+MW3ua56qlcM30nzjpddXXzLuEpHhGW+Pz7w==} + worker-timers-broker@7.1.9: dependencies: - '@babel/runtime': 7.24.1 - tslib: 2.6.2 - dev: false + '@babel/runtime': 7.26.7 + fast-unique-numbers: 9.0.15 + tslib: 2.8.1 + worker-timers-worker: 8.0.10 - /worker-timers@7.1.4: - resolution: {integrity: sha512-8PRtiPAyeYukrY+iOUL+0tq4Zn5qyCHrTqFTtHxcESfIxGyulxNwyzQkybrYBKhnMWmx0bku3wxRfE1hts5R6Q==} + worker-timers-worker@8.0.10: dependencies: - '@babel/runtime': 7.24.1 - tslib: 2.6.2 - worker-timers-broker: 6.1.4 - worker-timers-worker: 7.0.67 - dev: false + '@babel/runtime': 7.26.7 + tslib: 2.8.1 - /wrap-ansi@6.2.0: - resolution: {integrity: sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==} - engines: {node: '>=8'} + worker-timers@8.0.13: + dependencies: + '@babel/runtime': 7.26.7 + tslib: 2.8.1 + worker-timers-broker: 7.1.9 + worker-timers-worker: 8.0.10 + + wrap-ansi@6.2.0: dependencies: ansi-styles: 4.3.0 string-width: 4.2.3 strip-ansi: 6.0.1 - dev: false - /wrap-ansi@7.0.0: - resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} - engines: {node: '>=10'} + wrap-ansi@7.0.0: dependencies: ansi-styles: 4.3.0 string-width: 4.2.3 strip-ansi: 6.0.1 - dev: true - /wrap-ansi@8.1.0: - resolution: {integrity: sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==} - engines: {node: '>=12'} + wrap-ansi@8.1.0: dependencies: ansi-styles: 6.2.1 string-width: 5.1.2 strip-ansi: 7.1.0 - /wrappy@1.0.2: - resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} + wrap-ansi@9.0.0: + dependencies: + ansi-styles: 6.2.1 + string-width: 7.2.0 + strip-ansi: 7.1.0 - /write-file-atomic@2.4.3: - resolution: {integrity: sha512-GaETH5wwsX+GcnzhPgKcKjJ6M2Cq3/iZp1WyY/X1CSqrW+jVNM9Y7D8EC2sM4ZG/V8wZlSniJnCKWPmBYAucRQ==} + wrappy@1.0.2: {} + + write-file-atomic@2.4.3: dependencies: graceful-fs: 4.2.11 imurmurhash: 0.1.4 signal-exit: 3.0.7 - dev: true - /write-file-atomic@5.0.1: - resolution: {integrity: sha512-+QU2zd6OTD8XWIJCbffaiQeH9U73qIqafo1x6V1snCWYGJf6cVE0cDR4D8xRzcEnfI21IFrUPzPGtcPf8AC+Rw==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + write-file-atomic@5.0.1: dependencies: imurmurhash: 0.1.4 signal-exit: 4.1.0 - dev: true - /write-json-file@3.2.0: - resolution: {integrity: sha512-3xZqT7Byc2uORAatYiP3DHUUAVEkNOswEWNs9H5KXiicRTvzYzYqKjYc4G7p+8pltvAw641lVByKVtMpf+4sYQ==} - engines: {node: '>=6'} + write-json-file@3.2.0: dependencies: detect-indent: 5.0.0 graceful-fs: 4.2.11 @@ -14533,92 +16261,41 @@ packages: pify: 4.0.1 sort-keys: 2.0.0 write-file-atomic: 2.4.3 - dev: true - /write-pkg@4.0.0: - resolution: {integrity: sha512-v2UQ+50TNf2rNHJ8NyWttfm/EJUBWMJcx6ZTYZr6Qp52uuegWw/lBkCtCbnYZEmPRNL61m+u67dAmGxo+HTULA==} - engines: {node: '>=8'} + write-pkg@4.0.0: dependencies: sort-keys: 2.0.0 type-fest: 0.4.1 write-json-file: 3.2.0 - dev: true - /ws@8.12.0: - resolution: {integrity: sha512-kU62emKIdKVeEIOIKVegvqpXMSTAMLJozpHZaJNDYqBjzlSYXQGviYwN1osDLJ9av68qHd4a2oSjd7yD4pacig==} - engines: {node: '>=10.0.0'} - peerDependencies: - bufferutil: ^4.0.1 - utf-8-validate: '>=5.0.2' - peerDependenciesMeta: - bufferutil: - optional: true - utf-8-validate: - optional: true - dev: false + ws@8.18.0: {} - /ws@8.16.0: - resolution: {integrity: sha512-HS0c//TP7Ina87TfiPUz1rQzMhHrl/SG2guqRcTOIUYD2q8uhUdNHZYJUaQ8aTGPzCh+c6oawMKW35nFl1dxyQ==} - engines: {node: '>=10.0.0'} - peerDependencies: - bufferutil: ^4.0.1 - utf-8-validate: '>=5.0.2' - peerDependenciesMeta: - bufferutil: - optional: true - utf-8-validate: - optional: true - dev: false + xmlcreate@2.0.4: {} - /xmlcreate@2.0.4: - resolution: {integrity: sha512-nquOebG4sngPmGPICTS5EnxqhKbCmz5Ox5hsszI2T6U5qdrJizBc+0ilYSEjTSzU0yZcmvppztXe/5Al5fUwdg==} - dev: true + xtend@4.0.2: {} - /xtend@4.0.2: - resolution: {integrity: sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==} - engines: {node: '>=0.4'} - dev: true + xxhash-wasm@1.1.0: {} - /y18n@4.0.3: - resolution: {integrity: sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==} - dev: false + y18n@4.0.3: {} - /y18n@5.0.8: - resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==} - engines: {node: '>=10'} - dev: true + y18n@5.0.8: {} - /yallist@3.1.1: - resolution: {integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==} + yallist@3.1.1: {} - /yallist@4.0.0: - resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==} + yallist@4.0.0: {} - /yaml@2.3.4: - resolution: {integrity: sha512-8aAvwVUSHpfEqTQ4w/KMlf3HcRdt50E5ODIQJBw1fQ5RL34xabzxtUlzTXVqc4rkZsPbvrXKWnABCD7kWSmocA==} - engines: {node: '>= 14'} - dev: false + yaml@2.7.0: {} - /yargs-parser@18.1.3: - resolution: {integrity: sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==} - engines: {node: '>=6'} + yargs-parser@18.1.3: dependencies: camelcase: 5.3.1 decamelize: 1.2.0 - dev: false - /yargs-parser@20.2.9: - resolution: {integrity: sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==} - engines: {node: '>=10'} - dev: true + yargs-parser@20.2.9: {} - /yargs-parser@21.1.1: - resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==} - engines: {node: '>=12'} + yargs-parser@21.1.1: {} - /yargs@15.4.1: - resolution: {integrity: sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==} - engines: {node: '>=8'} + yargs@15.4.1: dependencies: cliui: 6.0.0 decamelize: 1.2.0 @@ -14631,44 +16308,46 @@ packages: which-module: 2.0.1 y18n: 4.0.3 yargs-parser: 18.1.3 - dev: false - /yargs@16.2.0: - resolution: {integrity: sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==} - engines: {node: '>=10'} + yargs@16.2.0: dependencies: cliui: 7.0.4 - escalade: 3.1.1 + escalade: 3.2.0 get-caller-file: 2.0.5 require-directory: 2.1.1 string-width: 4.2.3 y18n: 5.0.8 yargs-parser: 20.2.9 - dev: true - /yargs@17.7.2: - resolution: {integrity: sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==} - engines: {node: '>=12'} + yargs@17.7.2: dependencies: cliui: 8.0.1 - escalade: 3.1.1 + escalade: 3.2.0 get-caller-file: 2.0.5 require-directory: 2.1.1 string-width: 4.2.3 y18n: 5.0.8 yargs-parser: 21.1.1 - dev: true - /yocto-queue@0.1.0: - resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} - engines: {node: '>=10'} + yocto-queue@0.1.0: {} - /yocto-queue@1.0.0: - resolution: {integrity: sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g==} - engines: {node: '>=12.20'} + yocto-queue@1.1.1: {} - /zod@3.22.4: - resolution: {integrity: sha512-iC+8Io04lddc+mVqQ9AZ7OQ2MrUKGN+oIQyq1vemgt46jwCwLfhq7/pwnBnNXXXZb8VTVLKwp9EDkx+ryxIWmg==} + yocto-spinner@0.1.2: + dependencies: + yoctocolors: 2.1.1 - /zwitch@2.0.4: - resolution: {integrity: sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A==} + yoctocolors@2.1.1: {} + + zod-to-json-schema@3.24.1(zod@3.24.1): + dependencies: + zod: 3.24.1 + + zod-to-ts@1.2.0(typescript@5.7.3)(zod@3.24.1): + dependencies: + typescript: 5.7.3 + zod: 3.24.1 + + zod@3.24.1: {} + + zwitch@2.0.4: {} diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml index ef8cc99d..a4fca9ff 100644 --- a/pnpm-workspace.yaml +++ b/pnpm-workspace.yaml @@ -1,6 +1,12 @@ packages: - # all packages in direct subdirs of packages/ - - "packages/*" - - "examples/*" - - "tools/dbpatch" - - "website/" + - packages/* + - examples/* + - tools/dbpatch + - website/ + +onlyBuiltDependencies: + - esbuild + - nx + - sharp + - tree-sitter + - tree-sitter-haskell diff --git a/src-tauri/Cargo.toml b/src-tauri/Cargo.toml index ece4f6c4..1167193f 100644 --- a/src-tauri/Cargo.toml +++ b/src-tauri/Cargo.toml @@ -21,6 +21,7 @@ tauri = { version = "1.4.0", features = [ "dialog-all", "clipboard-write-text", midir = "0.9.1" tokio = { version = "1.29.0", features = ["full"] } rosc = "0.10.1" +tauri-plugin-clipboard-manager = "2" [features] # this feature is used for production builds or when `devPath` points to the filesystem and the built-in dev server is disabled. diff --git a/src-tauri/src/oscbridge.rs b/src-tauri/src/oscbridge.rs index c8dcf03a..f6ac84a7 100644 --- a/src-tauri/src/oscbridge.rs +++ b/src-tauri/src/oscbridge.rs @@ -6,13 +6,13 @@ use std::net::UdpSocket; use serde::Deserialize; use std::sync::Arc; use std::thread::sleep; -use std::time::Duration; +use std::time::{Duration}; use tokio::sync::{mpsc, Mutex}; use crate::loggerbridge::Logger; pub struct OscMsg { pub msg_buf: Vec, - pub timestamp: u64, + pub timestamp: f64, } pub struct AsyncInputTransmit { @@ -106,7 +106,7 @@ pub struct Param { #[derive(Deserialize)] pub struct MessageFromJS { params: Vec, - timestamp: u64, + timestamp: f64, target: String, } // Called from JS @@ -127,9 +127,11 @@ pub async fn sendosc( args.push(OscType::String(p.value)); } } + // let start = SystemTime::now().duration_since(UNIX_EPOCH).unwrap(); + let time_delay = Duration::from_secs_f64(m.timestamp); let duration_since_epoch = - Duration::from_millis(m.timestamp) + Duration::new(UNIX_OFFSET, 0); + time_delay + Duration::new(UNIX_OFFSET, 0); let seconds = u32::try_from(duration_since_epoch.as_secs()) .map_err(|_| "bit conversion failed for osc message timetag")?; diff --git a/test/__snapshots__/examples.test.mjs.snap b/test/__snapshots__/examples.test.mjs.snap index 4c98231e..4ddf79ef 100644 --- a/test/__snapshots__/examples.test.mjs.snap +++ b/test/__snapshots__/examples.test.mjs.snap @@ -686,8 +686,8 @@ exports[`runs examples > example "almostAlways" example index 0 1`] = ` "[ 13/8 → 7/4 | s:hh speed:0.5 ]", "[ 7/4 → 15/8 | s:hh speed:0.5 ]", "[ 15/8 → 2/1 | s:hh speed:0.5 ]", - "[ 2/1 → 17/8 | s:hh speed:0.5 ]", - "[ 17/8 → 9/4 | s:hh speed:0.5 ]", + "[ 2/1 → 17/8 | s:hh ]", + "[ 17/8 → 9/4 | s:hh ]", "[ 9/4 → 19/8 | s:hh speed:0.5 ]", "[ 19/8 → 5/2 | s:hh speed:0.5 ]", "[ 5/2 → 21/8 | s:hh speed:0.5 ]", @@ -695,8 +695,8 @@ exports[`runs examples > example "almostAlways" example index 0 1`] = ` "[ 11/4 → 23/8 | s:hh speed:0.5 ]", "[ 23/8 → 3/1 | s:hh speed:0.5 ]", "[ 3/1 → 25/8 | s:hh speed:0.5 ]", - "[ 25/8 → 13/4 | s:hh ]", - "[ 13/4 → 27/8 | s:hh speed:0.5 ]", + "[ 25/8 → 13/4 | s:hh speed:0.5 ]", + "[ 13/4 → 27/8 | s:hh ]", "[ 27/8 → 7/2 | s:hh speed:0.5 ]", "[ 7/2 → 29/8 | s:hh speed:0.5 ]", "[ 29/8 → 15/4 | s:hh ]", @@ -707,7 +707,7 @@ exports[`runs examples > example "almostAlways" example index 0 1`] = ` exports[`runs examples > example "almostNever" example index 0 1`] = ` [ - "[ 0/1 → 1/8 | s:hh ]", + "[ 0/1 → 1/8 | s:hh speed:0.5 ]", "[ 1/8 → 1/4 | s:hh ]", "[ 1/4 → 3/8 | s:hh ]", "[ 3/8 → 1/2 | s:hh ]", @@ -716,22 +716,22 @@ exports[`runs examples > example "almostNever" example index 0 1`] = ` "[ 3/4 → 7/8 | s:hh ]", "[ 7/8 → 1/1 | s:hh ]", "[ 1/1 → 9/8 | s:hh ]", - "[ 9/8 → 5/4 | s:hh speed:0.5 ]", - "[ 5/4 → 11/8 | s:hh speed:0.5 ]", + "[ 9/8 → 5/4 | s:hh ]", + "[ 5/4 → 11/8 | s:hh ]", "[ 11/8 → 3/2 | s:hh ]", "[ 3/2 → 13/8 | s:hh ]", "[ 13/8 → 7/4 | s:hh ]", "[ 7/4 → 15/8 | s:hh ]", "[ 15/8 → 2/1 | s:hh ]", "[ 2/1 → 17/8 | s:hh ]", - "[ 17/8 → 9/4 | s:hh speed:0.5 ]", + "[ 17/8 → 9/4 | s:hh ]", "[ 9/4 → 19/8 | s:hh ]", "[ 19/8 → 5/2 | s:hh ]", "[ 5/2 → 21/8 | s:hh ]", "[ 21/8 → 11/4 | s:hh ]", "[ 11/4 → 23/8 | s:hh ]", - "[ 23/8 → 3/1 | s:hh ]", - "[ 3/1 → 25/8 | s:hh speed:0.5 ]", + "[ 23/8 → 3/1 | s:hh speed:0.5 ]", + "[ 3/1 → 25/8 | s:hh ]", "[ 25/8 → 13/4 | s:hh ]", "[ 13/4 → 27/8 | s:hh ]", "[ 27/8 → 7/2 | s:hh ]", @@ -1137,6 +1137,60 @@ exports[`runs examples > example "arrange" example index 0 1`] = ` ] `; +exports[`runs examples > example "as" example index 0 1`] = ` +[ + "[ 0/1 → 1/4 | note:c clip:0.5 ]", + "[ 1/4 → 1/2 | note:a clip:1 ]", + "[ 1/2 → 3/4 | note:f clip:0.25 ]", + "[ 3/4 → 1/1 | note:e clip:0.8 ]", + "[ 1/1 → 5/4 | note:c clip:0.5 ]", + "[ 5/4 → 3/2 | note:a clip:1 ]", + "[ 3/2 → 7/4 | note:f clip:0.25 ]", + "[ 7/4 → 2/1 | note:e clip:0.8 ]", + "[ 2/1 → 9/4 | note:c clip:0.5 ]", + "[ 9/4 → 5/2 | note:a clip:1 ]", + "[ 5/2 → 11/4 | note:f clip:0.25 ]", + "[ 11/4 → 3/1 | note:e clip:0.8 ]", + "[ 3/1 → 13/4 | note:c clip:0.5 ]", + "[ 13/4 → 7/2 | note:a clip:1 ]", + "[ 7/2 → 15/4 | note:f clip:0.25 ]", + "[ 15/4 → 4/1 | note:e clip:0.8 ]", +] +`; + +exports[`runs examples > example "as" example index 1 1`] = ` +[ + "[ 0/1 → 1/4 | begin:0 s:sax_vib clip:1 ]", + "[ 1/4 → 3/8 | begin:0.25 s:sax_vib clip:1 ]", + "[ 3/8 → 1/2 | begin:0 s:sax_vib clip:1 ]", + "[ 1/2 → 5/8 | begin:0.5 s:sax_vib clip:1 ]", + "[ 5/8 → 3/4 | begin:0.3 s:sax_vib clip:1 ]", + "[ 3/4 → 7/8 | begin:0.5 s:sax_vib clip:1 ]", + "[ (7/8 → 1/1) ⇝ 9/8 | begin:0 s:sax_vib clip:1 ]", + "[ 7/8 ⇜ (1/1 → 9/8) | begin:0 s:sax_vib clip:1 ]", + "[ 9/8 → 5/4 | begin:0.25 s:sax_vib clip:1 ]", + "[ 5/4 → 11/8 | begin:0 s:sax_vib clip:1 ]", + "[ 11/8 → 3/2 | begin:0.5 s:sax_vib clip:1 ]", + "[ 3/2 → 13/8 | begin:0.3 s:sax_vib clip:1 ]", + "[ 13/8 → 7/4 | begin:0.5 s:sax_vib clip:1 ]", + "[ 7/4 → 2/1 | begin:0 s:sax_vib clip:1 ]", + "[ 2/1 → 17/8 | begin:0.25 s:sax_vib clip:1 ]", + "[ 17/8 → 9/4 | begin:0 s:sax_vib clip:1 ]", + "[ 9/4 → 19/8 | begin:0.5 s:sax_vib clip:1 ]", + "[ 19/8 → 5/2 | begin:0.3 s:sax_vib clip:1 ]", + "[ 5/2 → 21/8 | begin:0.5 s:sax_vib clip:1 ]", + "[ 21/8 → 23/8 | begin:0 s:sax_vib clip:1 ]", + "[ 23/8 → 3/1 | begin:0.25 s:sax_vib clip:1 ]", + "[ 3/1 → 25/8 | begin:0 s:sax_vib clip:1 ]", + "[ 25/8 → 13/4 | begin:0.5 s:sax_vib clip:1 ]", + "[ 13/4 → 27/8 | begin:0.3 s:sax_vib clip:1 ]", + "[ 27/8 → 7/2 | begin:0.5 s:sax_vib clip:1 ]", + "[ 7/2 → 15/4 | begin:0 s:sax_vib clip:1 ]", + "[ 15/4 → 31/8 | begin:0.25 s:sax_vib clip:1 ]", + "[ 31/8 → 4/1 | begin:0 s:sax_vib clip:1 ]", +] +`; + exports[`runs examples > example "attack" example index 0 1`] = ` [ "[ 0/1 → 1/4 | note:c3 attack:0 ]", @@ -1179,6 +1233,36 @@ exports[`runs examples > example "bank" example index 0 1`] = ` ] `; +exports[`runs examples > example "beat" example index 0 1`] = ` +[ + "[ 0/1 → 1/16 | s:bd ]", + "[ 7/16 → 1/2 | s:bd ]", + "[ 5/8 → 11/16 | s:bd ]", + "[ 1/1 → 17/16 | s:bd ]", + "[ 23/16 → 3/2 | s:bd ]", + "[ 13/8 → 27/16 | s:bd ]", + "[ 2/1 → 33/16 | s:bd ]", + "[ 39/16 → 5/2 | s:bd ]", + "[ 21/8 → 43/16 | s:bd ]", + "[ 3/1 → 49/16 | s:bd ]", + "[ 55/16 → 7/2 | s:bd ]", + "[ 29/8 → 59/16 | s:bd ]", +] +`; + +exports[`runs examples > example "beat" example index 1 1`] = ` +[ + "[ 1/4 → 5/16 | s:sd ]", + "[ 3/4 → 13/16 | s:sd ]", + "[ 5/4 → 21/16 | s:sd ]", + "[ 7/4 → 29/16 | s:sd ]", + "[ 9/4 → 37/16 | s:sd ]", + "[ 11/4 → 45/16 | s:sd ]", + "[ 13/4 → 53/16 | s:sd ]", + "[ 15/4 → 61/16 | s:sd ]", +] +`; + exports[`runs examples > example "begin" example index 0 1`] = ` [ "[ 0/1 → 1/2 | s:rave begin:0 ]", @@ -1192,6 +1276,279 @@ exports[`runs examples > example "begin" example index 0 1`] = ` ] `; +exports[`runs examples > example "berlin" example index 0 1`] = ` +[ + "[ 0/1 → 1/16 | note:D3 ]", + "[ 1/16 → 1/8 | note:E3 ]", + "[ 1/8 → 3/16 | note:F3 ]", + "[ 3/16 → 1/4 | note:G3 ]", + "[ 1/4 → 5/16 | note:A3 ]", + "[ 5/16 → 3/8 | note:C4 ]", + "[ 3/8 → 7/16 | note:D4 ]", + "[ 7/16 → 1/2 | note:F4 ]", + "[ 1/2 → 9/16 | note:D4 ]", + "[ 9/16 → 5/8 | note:E4 ]", + "[ 5/8 → 11/16 | note:E4 ]", + "[ 11/16 → 3/4 | note:E4 ]", + "[ 3/4 → 13/16 | note:F3 ]", + "[ 13/16 → 7/8 | note:F3 ]", + "[ 7/8 → 15/16 | note:F3 ]", + "[ 15/16 → 1/1 | note:F3 ]", + "[ 1/1 → 17/16 | note:E3 ]", + "[ 17/16 → 9/8 | note:E3 ]", + "[ 9/8 → 19/16 | note:E3 ]", + "[ 19/16 → 5/4 | note:F3 ]", + "[ 5/4 → 21/16 | note:E3 ]", + "[ 21/16 → 11/8 | note:F3 ]", + "[ 11/8 → 23/16 | note:G3 ]", + "[ 23/16 → 3/2 | note:A3 ]", + "[ 3/2 → 25/16 | note:A3 ]", + "[ 25/16 → 13/8 | note:Bb3 ]", + "[ 13/8 → 27/16 | note:Bb3 ]", + "[ 27/16 → 7/4 | note:Bb3 ]", + "[ 7/4 → 29/16 | note:F3 ]", + "[ 29/16 → 15/8 | note:G3 ]", + "[ 15/8 → 31/16 | note:Bb3 ]", + "[ 31/16 → 2/1 | note:C4 ]", + "[ 2/1 → 33/16 | note:C4 ]", + "[ 33/16 → 17/8 | note:D4 ]", + "[ 17/8 → 35/16 | note:F4 ]", + "[ 35/16 → 9/4 | note:G4 ]", + "[ 9/4 → 37/16 | note:Bb3 ]", + "[ 37/16 → 19/8 | note:Bb3 ]", + "[ 19/8 → 39/16 | note:Bb3 ]", + "[ 39/16 → 5/2 | note:C4 ]", + "[ 5/2 → 41/16 | note:F3 ]", + "[ 41/16 → 21/8 | note:F3 ]", + "[ 21/8 → 43/16 | note:G3 ]", + "[ 43/16 → 11/4 | note:A3 ]", + "[ 11/4 → 45/16 | note:A3 ]", + "[ 45/16 → 23/8 | note:A3 ]", + "[ 23/8 → 47/16 | note:A3 ]", + "[ 47/16 → 3/1 | note:A3 ]", + "[ 3/1 → 49/16 | note:E3 ]", + "[ 49/16 → 25/8 | note:G3 ]", + "[ 25/8 → 51/16 | note:Bb3 ]", + "[ 51/16 → 13/4 | note:C4 ]", + "[ 13/4 → 53/16 | note:D4 ]", + "[ 53/16 → 27/8 | note:E4 ]", + "[ 27/8 → 55/16 | note:G4 ]", + "[ 55/16 → 7/2 | note:A4 ]", + "[ 7/2 → 57/16 | note:Bb3 ]", + "[ 57/16 → 29/8 | note:Bb3 ]", + "[ 29/8 → 59/16 | note:C4 ]", + "[ 59/16 → 15/4 | note:C4 ]", + "[ 15/4 → 61/16 | note:F3 ]", + "[ 61/16 → 31/8 | note:G3 ]", + "[ 31/8 → 63/16 | note:G3 ]", + "[ 63/16 → 4/1 | note:A3 ]", +] +`; + +exports[`runs examples > example "binary" example index 0 1`] = ` +[ + "[ 0/1 → 1/3 | s:hh ]", + "[ 2/3 → 1/1 | s:hh ]", + "[ 1/1 → 4/3 | s:hh ]", + "[ 5/3 → 2/1 | s:hh ]", + "[ 2/1 → 7/3 | s:hh ]", + "[ 8/3 → 3/1 | s:hh ]", + "[ 3/1 → 10/3 | s:hh ]", + "[ 11/3 → 4/1 | s:hh ]", +] +`; + +exports[`runs examples > example "binaryN" example index 0 1`] = ` +[ + "[ 0/1 → 1/16 | s:hh ]", + "[ 1/16 → 1/8 | s:hh ]", + "[ 3/16 → 1/4 | s:hh ]", + "[ 1/4 → 5/16 | s:hh ]", + "[ 1/2 → 9/16 | s:hh ]", + "[ 9/16 → 5/8 | s:hh ]", + "[ 5/8 → 11/16 | s:hh ]", + "[ 3/4 → 13/16 | s:hh ]", + "[ 13/16 → 7/8 | s:hh ]", + "[ 1/1 → 17/16 | s:hh ]", + "[ 17/16 → 9/8 | s:hh ]", + "[ 19/16 → 5/4 | s:hh ]", + "[ 5/4 → 21/16 | s:hh ]", + "[ 3/2 → 25/16 | s:hh ]", + "[ 25/16 → 13/8 | s:hh ]", + "[ 13/8 → 27/16 | s:hh ]", + "[ 7/4 → 29/16 | s:hh ]", + "[ 29/16 → 15/8 | s:hh ]", + "[ 2/1 → 33/16 | s:hh ]", + "[ 33/16 → 17/8 | s:hh ]", + "[ 35/16 → 9/4 | s:hh ]", + "[ 9/4 → 37/16 | s:hh ]", + "[ 5/2 → 41/16 | s:hh ]", + "[ 41/16 → 21/8 | s:hh ]", + "[ 21/8 → 43/16 | s:hh ]", + "[ 11/4 → 45/16 | s:hh ]", + "[ 45/16 → 23/8 | s:hh ]", + "[ 3/1 → 49/16 | s:hh ]", + "[ 49/16 → 25/8 | s:hh ]", + "[ 51/16 → 13/4 | s:hh ]", + "[ 13/4 → 53/16 | s:hh ]", + "[ 7/2 → 57/16 | s:hh ]", + "[ 57/16 → 29/8 | s:hh ]", + "[ 29/8 → 59/16 | s:hh ]", + "[ 15/4 → 61/16 | s:hh ]", + "[ 61/16 → 31/8 | s:hh ]", +] +`; + +exports[`runs examples > example "bite" example index 0 1`] = ` +[ + "[ 0/1 → 1/8 | note:Bb3 ]", + "[ 1/8 → 1/4 | note:C4 ]", + "[ 1/4 → 3/8 | note:G3 ]", + "[ 3/8 → 1/2 | note:A3 ]", + "[ 1/2 → 5/8 | note:E3 ]", + "[ 5/8 → 3/4 | note:F3 ]", + "[ 3/4 → 7/8 | note:C3 ]", + "[ 7/8 → 1/1 | note:D3 ]", + "[ 1/1 → 9/8 | note:Bb3 ]", + "[ 9/8 → 5/4 | note:C4 ]", + "[ 5/4 → 11/8 | note:G3 ]", + "[ 11/8 → 3/2 | note:A3 ]", + "[ 3/2 → 13/8 | note:E3 ]", + "[ 13/8 → 7/4 | note:F3 ]", + "[ 7/4 → 15/8 | note:C3 ]", + "[ 15/8 → 2/1 | note:D3 ]", + "[ 2/1 → 17/8 | note:Bb3 ]", + "[ 17/8 → 9/4 | note:C4 ]", + "[ 9/4 → 19/8 | note:G3 ]", + "[ 19/8 → 5/2 | note:A3 ]", + "[ 5/2 → 21/8 | note:E3 ]", + "[ 21/8 → 11/4 | note:F3 ]", + "[ 11/4 → 23/8 | note:C3 ]", + "[ 23/8 → 3/1 | note:D3 ]", + "[ 3/1 → 25/8 | note:Bb3 ]", + "[ 25/8 → 13/4 | note:C4 ]", + "[ 13/4 → 27/8 | note:G3 ]", + "[ 27/8 → 7/2 | note:A3 ]", + "[ 7/2 → 29/8 | note:E3 ]", + "[ 29/8 → 15/4 | note:F3 ]", + "[ 15/4 → 31/8 | note:C3 ]", + "[ 31/8 → 4/1 | note:D3 ]", +] +`; + +exports[`runs examples > example "bite" example index 1 1`] = ` +[ + "[ 0/1 → 1/8 | s:bd bank:RolandTR909 speed:1.2 ]", + "[ 0/1 → 1/8 | s:hh bank:RolandTR909 speed:1.2 ]", + "[ 1/16 → 1/8 | s:sd n:6 bank:RolandTR909 speed:1.2 ]", + "[ 1/8 → 1/4 | s:bd bank:RolandTR909 speed:1.2 ]", + "[ 1/8 → 1/4 | s:hh bank:RolandTR909 speed:1.2 ]", + "[ 3/16 → 1/4 | s:sd n:6 bank:RolandTR909 speed:1.2 ]", + "[ 1/4 → 5/16 | s:hh bank:RolandTR909 speed:1.2 ]", + "[ 9/32 → 5/16 | s:sd n:5 bank:RolandTR909 speed:1.2 ]", + "[ 5/16 → 11/32 | s:sd n:1 bank:RolandTR909 speed:1.2 ]", + "[ 5/16 → 3/8 | s:bd bank:RolandTR909 speed:1.2 ]", + "[ 3/8 → 7/16 | s:bd bank:RolandTR909 speed:1.2 ]", + "[ 3/8 → 1/2 | s:cp n:7 bank:RolandTR909 speed:1.2 ]", + "[ 13/32 → 7/16 | s:sd n:2 bank:RolandTR909 speed:1.2 ]", + "[ 7/16 → 1/2 | s:bd bank:RolandTR909 speed:1.2 ]", + "[ 1/2 → 5/8 | s:bd bank:RolandTR909 speed:1.2 ]", + "[ 1/2 → 5/8 | s:hh bank:RolandTR909 speed:1.2 ]", + "[ 9/16 → 5/8 | s:sd n:6 bank:RolandTR909 speed:1.2 ]", + "[ 5/8 → 3/4 | s:bd bank:RolandTR909 speed:1.2 ]", + "[ 5/8 → 3/4 | s:hh bank:RolandTR909 speed:1.2 ]", + "[ 11/16 → 3/4 | s:sd n:6 bank:RolandTR909 speed:1.2 ]", + "[ 3/4 → 25/32 | s:sd n:1 bank:RolandTR909 speed:1.2 ]", + "[ 3/4 → 13/16 | s:bd bank:RolandTR909 speed:1.2 ]", + "[ 13/16 → 7/8 | s:hh bank:RolandTR909 speed:1.2 ]", + "[ 27/32 → 7/8 | s:sd n:5 bank:RolandTR909 speed:1.2 ]", + "[ 7/8 → 15/16 | s:bd bank:RolandTR909 speed:1.2 ]", + "[ 7/8 → 1/1 | s:cp n:7 bank:RolandTR909 speed:1.2 ]", + "[ 29/32 → 15/16 | s:sd n:2 bank:RolandTR909 speed:1.2 ]", + "[ 15/16 → 1/1 | s:bd bank:RolandTR909 speed:1.2 ]", + "[ 1/1 → 9/8 | s:bd bank:RolandTR909 speed:1.2 ]", + "[ 1/1 → 9/8 | s:hh bank:RolandTR909 speed:1.2 ]", + "[ 17/16 → 9/8 | s:sd n:6 bank:RolandTR909 speed:1.2 ]", + "[ 9/8 → 5/4 | s:bd bank:RolandTR909 speed:1.2 ]", + "[ 9/8 → 5/4 | s:hh bank:RolandTR909 speed:1.2 ]", + "[ 19/16 → 5/4 | s:sd n:6 bank:RolandTR909 speed:1.2 ]", + "[ 5/4 → 21/16 | s:hh bank:RolandTR909 speed:1.2 ]", + "[ 41/32 → 21/16 | s:sd n:5 bank:RolandTR909 speed:1.2 ]", + "[ 21/16 → 43/32 | s:sd n:1 bank:RolandTR909 speed:1.2 ]", + "[ 21/16 → 11/8 | s:bd bank:RolandTR909 speed:1.2 ]", + "[ 11/8 → 23/16 | s:sd n:1 bank:RolandTR909 speed:1.2 ]", + "[ 11/8 → 3/2 | s:bd bank:RolandTR909 speed:1.2 ]", + "[ 3/2 → 13/8 | s:bd bank:RolandTR909 speed:1.2 ]", + "[ 3/2 → 13/8 | s:hh bank:RolandTR909 speed:1.2 ]", + "[ 25/16 → 13/8 | s:sd n:6 bank:RolandTR909 speed:1.2 ]", + "[ 13/8 → 7/4 | s:bd bank:RolandTR909 speed:1.2 ]", + "[ 13/8 → 7/4 | s:hh bank:RolandTR909 speed:1.2 ]", + "[ 27/16 → 7/4 | s:sd n:6 bank:RolandTR909 speed:1.2 ]", + "[ 7/4 → 57/32 | s:sd n:1 bank:RolandTR909 speed:1.2 ]", + "[ 7/4 → 29/16 | s:bd bank:RolandTR909 speed:1.2 ]", + "[ 29/16 → 15/8 | s:hh bank:RolandTR909 speed:1.2 ]", + "[ 59/32 → 15/8 | s:sd n:5 bank:RolandTR909 speed:1.2 ]", + "[ 15/8 → 31/16 | s:bd bank:RolandTR909 speed:1.2 ]", + "[ 15/8 → 2/1 | s:cp n:7 bank:RolandTR909 speed:1.2 ]", + "[ 61/32 → 31/16 | s:sd n:2 bank:RolandTR909 speed:1.2 ]", + "[ 31/16 → 2/1 | s:bd bank:RolandTR909 speed:1.2 ]", + "[ 2/1 → 17/8 | s:bd bank:RolandTR909 speed:1.2 ]", + "[ 2/1 → 17/8 | s:hh bank:RolandTR909 speed:1.2 ]", + "[ 33/16 → 17/8 | s:sd n:6 bank:RolandTR909 speed:1.2 ]", + "[ 17/8 → 9/4 | s:bd bank:RolandTR909 speed:1.2 ]", + "[ 17/8 → 9/4 | s:hh bank:RolandTR909 speed:1.2 ]", + "[ 35/16 → 9/4 | s:sd n:6 bank:RolandTR909 speed:1.2 ]", + "[ 9/4 → 37/16 | s:hh bank:RolandTR909 speed:1.2 ]", + "[ 73/32 → 37/16 | s:sd n:5 bank:RolandTR909 speed:1.2 ]", + "[ 37/16 → 75/32 | s:sd n:1 bank:RolandTR909 speed:1.2 ]", + "[ 37/16 → 19/8 | s:bd bank:RolandTR909 speed:1.2 ]", + "[ 19/8 → 39/16 | s:bd bank:RolandTR909 speed:1.2 ]", + "[ 19/8 → 5/2 | s:cp n:7 bank:RolandTR909 speed:1.2 ]", + "[ 77/32 → 39/16 | s:sd n:2 bank:RolandTR909 speed:1.2 ]", + "[ 39/16 → 5/2 | s:bd bank:RolandTR909 speed:1.2 ]", + "[ 5/2 → 21/8 | s:bd bank:RolandTR909 speed:1.2 ]", + "[ 5/2 → 21/8 | s:hh bank:RolandTR909 speed:1.2 ]", + "[ 41/16 → 21/8 | s:sd n:6 bank:RolandTR909 speed:1.2 ]", + "[ 21/8 → 11/4 | s:bd bank:RolandTR909 speed:1.2 ]", + "[ 21/8 → 11/4 | s:hh bank:RolandTR909 speed:1.2 ]", + "[ 43/16 → 11/4 | s:sd n:6 bank:RolandTR909 speed:1.2 ]", + "[ 11/4 → 89/32 | s:sd n:1 bank:RolandTR909 speed:1.2 ]", + "[ 11/4 → 45/16 | s:bd bank:RolandTR909 speed:1.2 ]", + "[ 45/16 → 23/8 | s:hh bank:RolandTR909 speed:1.2 ]", + "[ 91/32 → 23/8 | s:sd n:5 bank:RolandTR909 speed:1.2 ]", + "[ 23/8 → 47/16 | s:bd bank:RolandTR909 speed:1.2 ]", + "[ 23/8 → 3/1 | s:cp n:7 bank:RolandTR909 speed:1.2 ]", + "[ 93/32 → 47/16 | s:sd n:2 bank:RolandTR909 speed:1.2 ]", + "[ 47/16 → 3/1 | s:bd bank:RolandTR909 speed:1.2 ]", + "[ 3/1 → 25/8 | s:bd bank:RolandTR909 speed:1.2 ]", + "[ 3/1 → 25/8 | s:hh bank:RolandTR909 speed:1.2 ]", + "[ 49/16 → 25/8 | s:sd n:6 bank:RolandTR909 speed:1.2 ]", + "[ 25/8 → 13/4 | s:bd bank:RolandTR909 speed:1.2 ]", + "[ 25/8 → 13/4 | s:hh bank:RolandTR909 speed:1.2 ]", + "[ 51/16 → 13/4 | s:sd n:6 bank:RolandTR909 speed:1.2 ]", + "[ 13/4 → 53/16 | s:hh bank:RolandTR909 speed:1.2 ]", + "[ 105/32 → 53/16 | s:sd n:5 bank:RolandTR909 speed:1.2 ]", + "[ 53/16 → 107/32 | s:sd n:1 bank:RolandTR909 speed:1.2 ]", + "[ 53/16 → 27/8 | s:bd bank:RolandTR909 speed:1.2 ]", + "[ 27/8 → 55/16 | s:sd n:1 bank:RolandTR909 speed:1.2 ]", + "[ 27/8 → 7/2 | s:bd bank:RolandTR909 speed:1.2 ]", + "[ 7/2 → 29/8 | s:bd bank:RolandTR909 speed:1.2 ]", + "[ 7/2 → 29/8 | s:hh bank:RolandTR909 speed:1.2 ]", + "[ 57/16 → 29/8 | s:sd n:6 bank:RolandTR909 speed:1.2 ]", + "[ 29/8 → 15/4 | s:bd bank:RolandTR909 speed:1.2 ]", + "[ 29/8 → 15/4 | s:hh bank:RolandTR909 speed:1.2 ]", + "[ 59/16 → 15/4 | s:sd n:6 bank:RolandTR909 speed:1.2 ]", + "[ 15/4 → 121/32 | s:sd n:1 bank:RolandTR909 speed:1.2 ]", + "[ 15/4 → 61/16 | s:bd bank:RolandTR909 speed:1.2 ]", + "[ 61/16 → 31/8 | s:hh bank:RolandTR909 speed:1.2 ]", + "[ 123/32 → 31/8 | s:sd n:5 bank:RolandTR909 speed:1.2 ]", + "[ 31/8 → 63/16 | s:bd bank:RolandTR909 speed:1.2 ]", + "[ 31/8 → 4/1 | s:cp n:7 bank:RolandTR909 speed:1.2 ]", + "[ 125/32 → 63/16 | s:sd n:2 bank:RolandTR909 speed:1.2 ]", + "[ 63/16 → 4/1 | s:bd bank:RolandTR909 speed:1.2 ]", +] +`; + exports[`runs examples > example "bpattack" example index 0 1`] = ` [ "[ 0/1 → 1/4 | note:c2 s:sawtooth bandf:500 bpattack:0.5 bpenv:4 ]", @@ -1365,71 +1722,71 @@ exports[`runs examples > example "bpsustain" example index 0 1`] = ` exports[`runs examples > example "brand" example index 0 1`] = ` [ - "[ 0/1 → 1/10 | s:hh pan:false ]", - "[ 1/10 → 1/5 | s:hh pan:false ]", - "[ 1/5 → 3/10 | s:hh pan:true ]", - "[ 3/10 → 2/5 | s:hh pan:true ]", + "[ 0/1 → 1/10 | s:hh pan:true ]", + "[ 1/10 → 1/5 | s:hh pan:true ]", + "[ 1/5 → 3/10 | s:hh pan:false ]", + "[ 3/10 → 2/5 | s:hh pan:false ]", "[ 2/5 → 1/2 | s:hh pan:false ]", "[ 1/2 → 3/5 | s:hh pan:true ]", "[ 3/5 → 7/10 | s:hh pan:false ]", - "[ 7/10 → 4/5 | s:hh pan:true ]", - "[ 4/5 → 9/10 | s:hh pan:false ]", - "[ 9/10 → 1/1 | s:hh pan:true ]", - "[ 1/1 → 11/10 | s:hh pan:true ]", + "[ 7/10 → 4/5 | s:hh pan:false ]", + "[ 4/5 → 9/10 | s:hh pan:true ]", + "[ 9/10 → 1/1 | s:hh pan:false ]", + "[ 1/1 → 11/10 | s:hh pan:false ]", "[ 11/10 → 6/5 | s:hh pan:false ]", - "[ 6/5 → 13/10 | s:hh pan:false ]", - "[ 13/10 → 7/5 | s:hh pan:false ]", + "[ 6/5 → 13/10 | s:hh pan:true ]", + "[ 13/10 → 7/5 | s:hh pan:true ]", "[ 7/5 → 3/2 | s:hh pan:true ]", - "[ 3/2 → 8/5 | s:hh pan:true ]", + "[ 3/2 → 8/5 | s:hh pan:false ]", "[ 8/5 → 17/10 | s:hh pan:true ]", "[ 17/10 → 9/5 | s:hh pan:true ]", "[ 9/5 → 19/10 | s:hh pan:true ]", - "[ 19/10 → 2/1 | s:hh pan:false ]", + "[ 19/10 → 2/1 | s:hh pan:true ]", "[ 2/1 → 21/10 | s:hh pan:false ]", - "[ 21/10 → 11/5 | s:hh pan:false ]", - "[ 11/5 → 23/10 | s:hh pan:true ]", + "[ 21/10 → 11/5 | s:hh pan:true ]", + "[ 11/5 → 23/10 | s:hh pan:false ]", "[ 23/10 → 12/5 | s:hh pan:false ]", "[ 12/5 → 5/2 | s:hh pan:false ]", - "[ 5/2 → 13/5 | s:hh pan:false ]", - "[ 13/5 → 27/10 | s:hh pan:false ]", - "[ 27/10 → 14/5 | s:hh pan:false ]", - "[ 14/5 → 29/10 | s:hh pan:true ]", + "[ 5/2 → 13/5 | s:hh pan:true ]", + "[ 13/5 → 27/10 | s:hh pan:true ]", + "[ 27/10 → 14/5 | s:hh pan:true ]", + "[ 14/5 → 29/10 | s:hh pan:false ]", "[ 29/10 → 3/1 | s:hh pan:true ]", "[ 3/1 → 31/10 | s:hh pan:true ]", "[ 31/10 → 16/5 | s:hh pan:true ]", - "[ 16/5 → 33/10 | s:hh pan:false ]", + "[ 16/5 → 33/10 | s:hh pan:true ]", "[ 33/10 → 17/5 | s:hh pan:false ]", "[ 17/5 → 7/2 | s:hh pan:false ]", "[ 7/2 → 18/5 | s:hh pan:true ]", - "[ 18/5 → 37/10 | s:hh pan:true ]", + "[ 18/5 → 37/10 | s:hh pan:false ]", "[ 37/10 → 19/5 | s:hh pan:false ]", - "[ 19/5 → 39/10 | s:hh pan:false ]", + "[ 19/5 → 39/10 | s:hh pan:true ]", "[ 39/10 → 4/1 | s:hh pan:true ]", ] `; exports[`runs examples > example "brandBy" example index 0 1`] = ` [ - "[ 0/1 → 1/10 | s:hh pan:false ]", - "[ 1/10 → 1/5 | s:hh pan:false ]", + "[ 0/1 → 1/10 | s:hh pan:true ]", + "[ 1/10 → 1/5 | s:hh pan:true ]", "[ 1/5 → 3/10 | s:hh pan:false ]", "[ 3/10 → 2/5 | s:hh pan:false ]", "[ 2/5 → 1/2 | s:hh pan:false ]", "[ 1/2 → 3/5 | s:hh pan:false ]", "[ 3/5 → 7/10 | s:hh pan:false ]", - "[ 7/10 → 4/5 | s:hh pan:true ]", + "[ 7/10 → 4/5 | s:hh pan:false ]", "[ 4/5 → 9/10 | s:hh pan:false ]", - "[ 9/10 → 1/1 | s:hh pan:true ]", - "[ 1/1 → 11/10 | s:hh pan:true ]", + "[ 9/10 → 1/1 | s:hh pan:false ]", + "[ 1/1 → 11/10 | s:hh pan:false ]", "[ 11/10 → 6/5 | s:hh pan:false ]", "[ 6/5 → 13/10 | s:hh pan:false ]", "[ 13/10 → 7/5 | s:hh pan:false ]", "[ 7/5 → 3/2 | s:hh pan:false ]", - "[ 3/2 → 8/5 | s:hh pan:true ]", - "[ 8/5 → 17/10 | s:hh pan:true ]", + "[ 3/2 → 8/5 | s:hh pan:false ]", + "[ 8/5 → 17/10 | s:hh pan:false ]", "[ 17/10 → 9/5 | s:hh pan:false ]", "[ 9/5 → 19/10 | s:hh pan:false ]", - "[ 19/10 → 2/1 | s:hh pan:false ]", + "[ 19/10 → 2/1 | s:hh pan:true ]", "[ 2/1 → 21/10 | s:hh pan:false ]", "[ 21/10 → 11/5 | s:hh pan:false ]", "[ 11/5 → 23/10 | s:hh pan:false ]", @@ -1442,18 +1799,74 @@ exports[`runs examples > example "brandBy" example index 0 1`] = ` "[ 29/10 → 3/1 | s:hh pan:false ]", "[ 3/1 → 31/10 | s:hh pan:false ]", "[ 31/10 → 16/5 | s:hh pan:true ]", - "[ 16/5 → 33/10 | s:hh pan:false ]", + "[ 16/5 → 33/10 | s:hh pan:true ]", "[ 33/10 → 17/5 | s:hh pan:false ]", "[ 17/5 → 7/2 | s:hh pan:false ]", "[ 7/2 → 18/5 | s:hh pan:false ]", "[ 18/5 → 37/10 | s:hh pan:false ]", "[ 37/10 → 19/5 | s:hh pan:false ]", - "[ 19/5 → 39/10 | s:hh pan:false ]", - "[ 39/10 → 4/1 | s:hh pan:true ]", + "[ 19/5 → 39/10 | s:hh pan:true ]", + "[ 39/10 → 4/1 | s:hh pan:false ]", +] +`; + +exports[`runs examples > example "byteBeatExpression" example index 0 1`] = ` +[ + "[ 0/1 → 1/1 | s:bytebeat byteBeatExpression:t*(t>>15^t>>66) ]", + "[ 1/1 → 2/1 | s:bytebeat byteBeatExpression:t*(t>>15^t>>66) ]", + "[ 2/1 → 3/1 | s:bytebeat byteBeatExpression:t*(t>>15^t>>66) ]", + "[ 3/1 → 4/1 | s:bytebeat byteBeatExpression:t*(t>>15^t>>66) ]", +] +`; + +exports[`runs examples > example "byteBeatStartTime" example index 0 1`] = ` +[ + "[ 0/1 → 1/8 | note:48 s:bytebeat n:5 byteBeatStartTime:30000 ]", + "[ 1/8 → 1/4 | note:48 s:bytebeat n:5 byteBeatStartTime:30000 ]", + "[ 1/4 → 3/8 | note:60 s:bytebeat n:5 byteBeatStartTime:30000 ]", + "[ 3/8 → 1/2 | note:48 s:bytebeat n:5 byteBeatStartTime:30000 ]", + "[ 1/2 → 5/8 | note:55 s:bytebeat n:5 byteBeatStartTime:30000 ]", + "[ 5/8 → 3/4 | note:53 s:bytebeat n:5 byteBeatStartTime:30000 ]", + "[ 3/4 → 7/8 | note:51 s:bytebeat n:5 byteBeatStartTime:30000 ]", + "[ 7/8 → 1/1 | note:48 s:bytebeat n:5 byteBeatStartTime:30000 ]", + "[ 1/1 → 9/8 | note:48 s:bytebeat n:5 byteBeatStartTime:10000 ]", + "[ 9/8 → 5/4 | note:60 s:bytebeat n:5 byteBeatStartTime:10000 ]", + "[ 5/4 → 11/8 | note:48 s:bytebeat n:5 byteBeatStartTime:10000 ]", + "[ 11/8 → 3/2 | note:55 s:bytebeat n:5 byteBeatStartTime:10000 ]", + "[ 3/2 → 13/8 | note:53 s:bytebeat n:5 byteBeatStartTime:10000 ]", + "[ 13/8 → 7/4 | note:51 s:bytebeat n:5 byteBeatStartTime:10000 ]", + "[ 7/4 → 15/8 | note:48 s:bytebeat n:5 byteBeatStartTime:10000 ]", + "[ 15/8 → 2/1 | note:48 s:bytebeat n:5 byteBeatStartTime:10000 ]", + "[ 2/1 → 17/8 | note:60 s:bytebeat n:5 byteBeatStartTime:30000 ]", + "[ 17/8 → 9/4 | note:48 s:bytebeat n:5 byteBeatStartTime:30000 ]", + "[ 9/4 → 19/8 | note:55 s:bytebeat n:5 byteBeatStartTime:30000 ]", + "[ 19/8 → 5/2 | note:53 s:bytebeat n:5 byteBeatStartTime:30000 ]", + "[ 5/2 → 21/8 | note:51 s:bytebeat n:5 byteBeatStartTime:30000 ]", + "[ 21/8 → 11/4 | note:48 s:bytebeat n:5 byteBeatStartTime:30000 ]", + "[ 11/4 → 23/8 | note:48 s:bytebeat n:5 byteBeatStartTime:30000 ]", + "[ 23/8 → 3/1 | note:60 s:bytebeat n:5 byteBeatStartTime:30000 ]", + "[ 3/1 → 25/8 | note:48 s:bytebeat n:5 byteBeatStartTime:10000 ]", + "[ 25/8 → 13/4 | note:55 s:bytebeat n:5 byteBeatStartTime:10000 ]", + "[ 13/4 → 27/8 | note:53 s:bytebeat n:5 byteBeatStartTime:10000 ]", + "[ 27/8 → 7/2 | note:51 s:bytebeat n:5 byteBeatStartTime:10000 ]", + "[ 7/2 → 29/8 | note:48 s:bytebeat n:5 byteBeatStartTime:10000 ]", + "[ 29/8 → 15/4 | note:48 s:bytebeat n:5 byteBeatStartTime:10000 ]", + "[ 15/4 → 31/8 | note:60 s:bytebeat n:5 byteBeatStartTime:10000 ]", + "[ 31/8 → 4/1 | note:48 s:bytebeat n:5 byteBeatStartTime:10000 ]", ] `; exports[`runs examples > example "cat" example index 0 1`] = ` +[ + "[ 0/1 → 1/1 | note:e5 ]", + "[ 1/1 → 2/1 | note:b4 ]", + "[ 2/1 → 5/2 | note:d5 ]", + "[ 5/2 → 3/1 | note:c5 ]", + "[ 3/1 → 4/1 | note:e5 ]", +] +`; + +exports[`runs examples > example "cat" example index 1 1`] = ` [ "[ 0/1 → 1/4 | s:hh ]", "[ 1/4 → 1/2 | s:hh ]", @@ -1476,16 +1889,6 @@ exports[`runs examples > example "cat" example index 0 1`] = ` ] `; -exports[`runs examples > example "cat" example index 0 2`] = ` -[ - "[ 0/1 → 1/1 | note:e5 ]", - "[ 1/1 → 2/1 | note:b4 ]", - "[ 2/1 → 5/2 | note:d5 ]", - "[ 5/2 → 3/1 | note:c5 ]", - "[ 3/1 → 4/1 | note:e5 ]", -] -`; - exports[`runs examples > example "ceil" example index 0 1`] = ` [ "[ 0/1 → 1/4 | note:42 ]", @@ -1536,21 +1939,21 @@ exports[`runs examples > example "choose" example index 0 1`] = ` [ "[ 0/1 → 1/5 | note:c2 s:sine ]", "[ 1/5 → 2/5 | note:g2 s:bd n:6 ]", - "[ 2/5 → 3/5 | note:g2 s:sine ]", - "[ 3/5 → 4/5 | note:d2 s:triangle ]", - "[ 4/5 → 1/1 | note:f1 s:bd n:6 ]", - "[ 1/1 → 6/5 | note:c2 s:bd n:6 ]", + "[ 2/5 → 3/5 | note:g2 s:triangle ]", + "[ 3/5 → 4/5 | note:d2 s:bd n:6 ]", + "[ 4/5 → 1/1 | note:f1 s:sine ]", + "[ 1/1 → 6/5 | note:c2 s:triangle ]", "[ 6/5 → 7/5 | note:g2 s:triangle ]", - "[ 7/5 → 8/5 | note:g2 s:triangle ]", - "[ 8/5 → 9/5 | note:d2 s:sine ]", + "[ 7/5 → 8/5 | note:g2 s:sine ]", + "[ 8/5 → 9/5 | note:d2 s:triangle ]", "[ 9/5 → 2/1 | note:f1 s:sine ]", - "[ 2/1 → 11/5 | note:c2 s:triangle ]", + "[ 2/1 → 11/5 | note:c2 s:bd n:6 ]", "[ 11/5 → 12/5 | note:g2 s:bd n:6 ]", - "[ 12/5 → 13/5 | note:g2 s:triangle ]", + "[ 12/5 → 13/5 | note:g2 s:bd n:6 ]", "[ 13/5 → 14/5 | note:d2 s:sine ]", "[ 14/5 → 3/1 | note:f1 s:triangle ]", "[ 3/1 → 16/5 | note:c2 s:sine ]", - "[ 16/5 → 17/5 | note:g2 s:bd n:6 ]", + "[ 16/5 → 17/5 | note:g2 s:sine ]", "[ 17/5 → 18/5 | note:g2 s:triangle ]", "[ 18/5 → 19/5 | note:d2 s:triangle ]", "[ 19/5 → 4/1 | note:f1 s:sine ]", @@ -1561,36 +1964,36 @@ exports[`runs examples > example "chooseCycles" example index 0 1`] = ` [ "[ 0/1 → 1/8 | s:bd ]", "[ 1/8 → 1/4 | s:hh ]", - "[ 1/4 → 3/8 | s:hh ]", - "[ 3/8 → 1/2 | s:hh ]", + "[ 1/4 → 3/8 | s:sd ]", + "[ 3/8 → 1/2 | s:bd ]", "[ 1/2 → 5/8 | s:bd ]", "[ 5/8 → 3/4 | s:bd ]", - "[ 3/4 → 7/8 | s:sd ]", - "[ 7/8 → 1/1 | s:hh ]", - "[ 1/1 → 9/8 | s:hh ]", + "[ 3/4 → 7/8 | s:hh ]", + "[ 7/8 → 1/1 | s:bd ]", + "[ 1/1 → 9/8 | s:sd ]", "[ 9/8 → 5/4 | s:hh ]", - "[ 5/4 → 11/8 | s:hh ]", - "[ 11/8 → 3/2 | s:sd ]", - "[ 3/2 → 13/8 | s:hh ]", - "[ 13/8 → 7/4 | s:hh ]", - "[ 7/4 → 15/8 | s:sd ]", + "[ 5/4 → 11/8 | s:bd ]", + "[ 11/8 → 3/2 | s:hh ]", + "[ 3/2 → 13/8 | s:bd ]", + "[ 13/8 → 7/4 | s:sd ]", + "[ 7/4 → 15/8 | s:hh ]", "[ 15/8 → 2/1 | s:bd ]", - "[ 2/1 → 17/8 | s:hh ]", - "[ 17/8 → 9/4 | s:bd ]", + "[ 2/1 → 17/8 | s:bd ]", + "[ 17/8 → 9/4 | s:sd ]", "[ 9/4 → 19/8 | s:sd ]", "[ 19/8 → 5/2 | s:bd ]", - "[ 5/2 → 21/8 | s:bd ]", - "[ 21/8 → 11/4 | s:sd ]", + "[ 5/2 → 21/8 | s:hh ]", + "[ 21/8 → 11/4 | s:bd ]", "[ 11/4 → 23/8 | s:sd ]", "[ 23/8 → 3/1 | s:bd ]", - "[ 3/1 → 25/8 | s:bd ]", + "[ 3/1 → 25/8 | s:sd ]", "[ 25/8 → 13/4 | s:sd ]", - "[ 13/4 → 27/8 | s:hh ]", - "[ 27/8 → 7/2 | s:sd ]", - "[ 7/2 → 29/8 | s:hh ]", - "[ 29/8 → 15/4 | s:bd ]", - "[ 15/4 → 31/8 | s:sd ]", - "[ 31/8 → 4/1 | s:hh ]", + "[ 13/4 → 27/8 | s:bd ]", + "[ 27/8 → 7/2 | s:bd ]", + "[ 7/2 → 29/8 | s:bd ]", + "[ 29/8 → 15/4 | s:hh ]", + "[ 15/4 → 31/8 | s:hh ]", + "[ 31/8 → 4/1 | s:bd ]", ] `; @@ -1598,59 +2001,59 @@ exports[`runs examples > example "chooseCycles" example index 1 1`] = ` [ "[ 0/1 → 1/8 | s:bd ]", "[ 1/8 → 1/4 | s:hh ]", - "[ 1/4 → 3/8 | s:hh ]", - "[ 3/8 → 1/2 | s:hh ]", + "[ 1/4 → 3/8 | s:sd ]", + "[ 3/8 → 1/2 | s:bd ]", "[ 1/2 → 5/8 | s:bd ]", "[ 5/8 → 3/4 | s:bd ]", - "[ 3/4 → 7/8 | s:sd ]", - "[ 7/8 → 1/1 | s:hh ]", - "[ 1/1 → 9/8 | s:hh ]", + "[ 3/4 → 7/8 | s:hh ]", + "[ 7/8 → 1/1 | s:bd ]", + "[ 1/1 → 9/8 | s:sd ]", "[ 9/8 → 5/4 | s:hh ]", - "[ 5/4 → 11/8 | s:hh ]", - "[ 11/8 → 3/2 | s:sd ]", - "[ 3/2 → 13/8 | s:hh ]", - "[ 13/8 → 7/4 | s:hh ]", - "[ 7/4 → 15/8 | s:sd ]", + "[ 5/4 → 11/8 | s:bd ]", + "[ 11/8 → 3/2 | s:hh ]", + "[ 3/2 → 13/8 | s:bd ]", + "[ 13/8 → 7/4 | s:sd ]", + "[ 7/4 → 15/8 | s:hh ]", "[ 15/8 → 2/1 | s:bd ]", - "[ 2/1 → 17/8 | s:hh ]", - "[ 17/8 → 9/4 | s:bd ]", + "[ 2/1 → 17/8 | s:bd ]", + "[ 17/8 → 9/4 | s:sd ]", "[ 9/4 → 19/8 | s:sd ]", "[ 19/8 → 5/2 | s:bd ]", - "[ 5/2 → 21/8 | s:bd ]", - "[ 21/8 → 11/4 | s:sd ]", + "[ 5/2 → 21/8 | s:hh ]", + "[ 21/8 → 11/4 | s:bd ]", "[ 11/4 → 23/8 | s:sd ]", "[ 23/8 → 3/1 | s:bd ]", - "[ 3/1 → 25/8 | s:bd ]", + "[ 3/1 → 25/8 | s:sd ]", "[ 25/8 → 13/4 | s:sd ]", - "[ 13/4 → 27/8 | s:hh ]", - "[ 27/8 → 7/2 | s:sd ]", - "[ 7/2 → 29/8 | s:hh ]", - "[ 29/8 → 15/4 | s:bd ]", - "[ 15/4 → 31/8 | s:sd ]", - "[ 31/8 → 4/1 | s:hh ]", + "[ 13/4 → 27/8 | s:bd ]", + "[ 27/8 → 7/2 | s:bd ]", + "[ 7/2 → 29/8 | s:bd ]", + "[ 29/8 → 15/4 | s:hh ]", + "[ 15/4 → 31/8 | s:hh ]", + "[ 31/8 → 4/1 | s:bd ]", ] `; exports[`runs examples > example "chooseWith" example index 0 1`] = ` [ - "[ 0/1 → 1/5 | note:c2 s:bd n:6 ]", - "[ 1/5 → 2/5 | note:g2 s:sawtooth ]", - "[ 2/5 → 3/5 | note:g2 s:triangle ]", + "[ 0/1 → 1/5 | note:c2 s:triangle ]", + "[ 1/5 → 2/5 | note:g2 s:bd n:6 ]", + "[ 2/5 → 3/5 | note:g2 s:sawtooth ]", "[ 3/5 → 4/5 | note:d2 s:bd n:6 ]", "[ 4/5 → 1/1 | note:f1 s:sawtooth ]", - "[ 1/1 → 6/5 | note:c2 s:bd n:6 ]", - "[ 6/5 → 7/5 | note:g2 s:sawtooth ]", - "[ 7/5 → 8/5 | note:g2 s:triangle ]", + "[ 1/1 → 6/5 | note:c2 s:triangle ]", + "[ 6/5 → 7/5 | note:g2 s:bd n:6 ]", + "[ 7/5 → 8/5 | note:g2 s:sawtooth ]", "[ 8/5 → 9/5 | note:d2 s:bd n:6 ]", "[ 9/5 → 2/1 | note:f1 s:sawtooth ]", - "[ 2/1 → 11/5 | note:c2 s:bd n:6 ]", - "[ 11/5 → 12/5 | note:g2 s:sawtooth ]", - "[ 12/5 → 13/5 | note:g2 s:triangle ]", + "[ 2/1 → 11/5 | note:c2 s:triangle ]", + "[ 11/5 → 12/5 | note:g2 s:bd n:6 ]", + "[ 12/5 → 13/5 | note:g2 s:sawtooth ]", "[ 13/5 → 14/5 | note:d2 s:bd n:6 ]", "[ 14/5 → 3/1 | note:f1 s:sawtooth ]", - "[ 3/1 → 16/5 | note:c2 s:bd n:6 ]", - "[ 16/5 → 17/5 | note:g2 s:sawtooth ]", - "[ 17/5 → 18/5 | note:g2 s:triangle ]", + "[ 3/1 → 16/5 | note:c2 s:triangle ]", + "[ 16/5 → 17/5 | note:g2 s:bd n:6 ]", + "[ 17/5 → 18/5 | note:g2 s:sawtooth ]", "[ 18/5 → 19/5 | note:d2 s:bd n:6 ]", "[ 19/5 → 4/1 | note:f1 s:sawtooth ]", ] @@ -1711,6 +2114,86 @@ exports[`runs examples > example "chunkBack" example index 0 1`] = ` ] `; +exports[`runs examples > example "chunkBackInto" example index 0 1`] = ` +[ + "[ 0/1 → 1/16 | s:bd speed:2 bank:tr909 ]", + "[ 1/16 → 1/8 | s:sd speed:2 bank:tr909 ]", + "[ 1/8 → 3/16 | s:bd speed:2 bank:tr909 ]", + "[ 3/16 → 1/4 | s:sd speed:2 bank:tr909 ]", + "[ 1/4 → 3/8 | s:ht bank:tr909 ]", + "[ 3/8 → 1/2 | s:lt bank:tr909 ]", + "[ 1/2 → 5/8 | s:bd bank:tr909 ]", + "[ 3/4 → 7/8 | s:cp bank:tr909 ]", + "[ 7/8 → 1/1 | s:lt bank:tr909 ]", + "[ 1/1 → 9/8 | s:bd bank:tr909 ]", + "[ 9/8 → 5/4 | s:sd bank:tr909 ]", + "[ 5/4 → 21/16 | s:ht speed:2 bank:tr909 ]", + "[ 21/16 → 11/8 | s:lt speed:2 bank:tr909 ]", + "[ 11/8 → 23/16 | s:ht speed:2 bank:tr909 ]", + "[ 23/16 → 3/2 | s:lt speed:2 bank:tr909 ]", + "[ 3/2 → 13/8 | s:bd bank:tr909 ]", + "[ 7/4 → 15/8 | s:cp bank:tr909 ]", + "[ 15/8 → 2/1 | s:lt bank:tr909 ]", + "[ 2/1 → 17/8 | s:bd bank:tr909 ]", + "[ 17/8 → 9/4 | s:sd bank:tr909 ]", + "[ 9/4 → 19/8 | s:ht bank:tr909 ]", + "[ 19/8 → 5/2 | s:lt bank:tr909 ]", + "[ 5/2 → 41/16 | s:bd speed:2 bank:tr909 ]", + "[ 21/8 → 43/16 | s:bd speed:2 bank:tr909 ]", + "[ 11/4 → 23/8 | s:cp bank:tr909 ]", + "[ 23/8 → 3/1 | s:lt bank:tr909 ]", + "[ 3/1 → 25/8 | s:bd bank:tr909 ]", + "[ 25/8 → 13/4 | s:sd bank:tr909 ]", + "[ 13/4 → 27/8 | s:ht bank:tr909 ]", + "[ 27/8 → 7/2 | s:lt bank:tr909 ]", + "[ 7/2 → 29/8 | s:bd bank:tr909 ]", + "[ 15/4 → 61/16 | s:cp speed:2 bank:tr909 ]", + "[ 61/16 → 31/8 | s:lt speed:2 bank:tr909 ]", + "[ 31/8 → 63/16 | s:cp speed:2 bank:tr909 ]", + "[ 63/16 → 4/1 | s:lt speed:2 bank:tr909 ]", +] +`; + +exports[`runs examples > example "chunkInto" example index 0 1`] = ` +[ + "[ 0/1 → 1/16 | s:bd speed:2 bank:tr909 ]", + "[ 1/16 → 1/8 | s:sd speed:2 bank:tr909 ]", + "[ 1/8 → 3/16 | s:bd speed:2 bank:tr909 ]", + "[ 3/16 → 1/4 | s:sd speed:2 bank:tr909 ]", + "[ 1/4 → 3/8 | s:ht bank:tr909 ]", + "[ 3/8 → 1/2 | s:lt bank:tr909 ]", + "[ 1/2 → 5/8 | s:bd bank:tr909 ]", + "[ 3/4 → 7/8 | s:cp bank:tr909 ]", + "[ 7/8 → 1/1 | s:lt bank:tr909 ]", + "[ 1/1 → 9/8 | s:bd bank:tr909 ]", + "[ 9/8 → 5/4 | s:sd bank:tr909 ]", + "[ 5/4 → 21/16 | s:ht speed:2 bank:tr909 ]", + "[ 21/16 → 11/8 | s:lt speed:2 bank:tr909 ]", + "[ 11/8 → 23/16 | s:ht speed:2 bank:tr909 ]", + "[ 23/16 → 3/2 | s:lt speed:2 bank:tr909 ]", + "[ 3/2 → 13/8 | s:bd bank:tr909 ]", + "[ 7/4 → 15/8 | s:cp bank:tr909 ]", + "[ 15/8 → 2/1 | s:lt bank:tr909 ]", + "[ 2/1 → 17/8 | s:bd bank:tr909 ]", + "[ 17/8 → 9/4 | s:sd bank:tr909 ]", + "[ 9/4 → 19/8 | s:ht bank:tr909 ]", + "[ 19/8 → 5/2 | s:lt bank:tr909 ]", + "[ 5/2 → 41/16 | s:bd speed:2 bank:tr909 ]", + "[ 21/8 → 43/16 | s:bd speed:2 bank:tr909 ]", + "[ 11/4 → 23/8 | s:cp bank:tr909 ]", + "[ 23/8 → 3/1 | s:lt bank:tr909 ]", + "[ 3/1 → 25/8 | s:bd bank:tr909 ]", + "[ 25/8 → 13/4 | s:sd bank:tr909 ]", + "[ 13/4 → 27/8 | s:ht bank:tr909 ]", + "[ 27/8 → 7/2 | s:lt bank:tr909 ]", + "[ 7/2 → 29/8 | s:bd bank:tr909 ]", + "[ 15/4 → 61/16 | s:cp speed:2 bank:tr909 ]", + "[ 61/16 → 31/8 | s:lt speed:2 bank:tr909 ]", + "[ 31/8 → 63/16 | s:cp speed:2 bank:tr909 ]", + "[ 63/16 → 4/1 | s:lt speed:2 bank:tr909 ]", +] +`; + exports[`runs examples > example "clip" example index 0 1`] = ` [ "[ 0/1 → 1/4 | note:c s:piano clip:0.5 ]", @@ -1851,135 +2334,195 @@ exports[`runs examples > example "compressor" example index 0 1`] = ` ] `; +exports[`runs examples > example "contract" example index 0 1`] = ` +[ + "[ 0/1 → 1/24 | s:tha bank:mridangam ]", + "[ 1/24 → 1/12 | s:dhi bank:mridangam ]", + "[ 1/12 → 1/8 | s:thom bank:mridangam ]", + "[ 1/8 → 1/6 | s:nam bank:mridangam ]", + "[ 1/6 → 11/48 | s:tha bank:mridangam ]", + "[ 11/48 → 7/24 | s:dhi bank:mridangam ]", + "[ 7/24 → 17/48 | s:thom bank:mridangam ]", + "[ 17/48 → 5/12 | s:nam bank:mridangam ]", + "[ 5/12 → 13/24 | s:tha bank:mridangam ]", + "[ 13/24 → 2/3 | s:dhi bank:mridangam ]", + "[ 2/3 → 19/24 | s:thom bank:mridangam ]", + "[ 19/24 → 11/12 | s:nam bank:mridangam ]", + "[ 11/12 → 25/24 | s:tha bank:mridangam ]", + "[ 25/24 → 7/6 | s:dhi bank:mridangam ]", + "[ 7/6 → 31/24 | s:thom bank:mridangam ]", + "[ 31/24 → 17/12 | s:nam bank:mridangam ]", + "[ 17/12 → 71/48 | s:tha bank:mridangam ]", + "[ 71/48 → 37/24 | s:dhi bank:mridangam ]", + "[ 37/24 → 77/48 | s:thom bank:mridangam ]", + "[ 77/48 → 5/3 | s:nam bank:mridangam ]", + "[ 5/3 → 41/24 | s:tha bank:mridangam ]", + "[ 41/24 → 7/4 | s:dhi bank:mridangam ]", + "[ 7/4 → 43/24 | s:thom bank:mridangam ]", + "[ 43/24 → 11/6 | s:nam bank:mridangam ]", + "[ 11/6 → 15/8 | s:tha bank:mridangam ]", + "[ 15/8 → 23/12 | s:dhi bank:mridangam ]", + "[ 23/12 → 47/24 | s:thom bank:mridangam ]", + "[ 47/24 → 2/1 | s:nam bank:mridangam ]", + "[ 2/1 → 33/16 | s:tha bank:mridangam ]", + "[ 33/16 → 17/8 | s:dhi bank:mridangam ]", + "[ 17/8 → 35/16 | s:thom bank:mridangam ]", + "[ 35/16 → 9/4 | s:nam bank:mridangam ]", + "[ 9/4 → 19/8 | s:tha bank:mridangam ]", + "[ 19/8 → 5/2 | s:dhi bank:mridangam ]", + "[ 5/2 → 21/8 | s:thom bank:mridangam ]", + "[ 21/8 → 11/4 | s:nam bank:mridangam ]", + "[ 11/4 → 23/8 | s:tha bank:mridangam ]", + "[ 23/8 → 3/1 | s:dhi bank:mridangam ]", + "[ 3/1 → 25/8 | s:thom bank:mridangam ]", + "[ 25/8 → 13/4 | s:nam bank:mridangam ]", + "[ 13/4 → 53/16 | s:tha bank:mridangam ]", + "[ 53/16 → 27/8 | s:dhi bank:mridangam ]", + "[ 27/8 → 55/16 | s:thom bank:mridangam ]", + "[ 55/16 → 7/2 | s:nam bank:mridangam ]", + "[ 7/2 → 85/24 | s:tha bank:mridangam ]", + "[ 85/24 → 43/12 | s:dhi bank:mridangam ]", + "[ 43/12 → 29/8 | s:thom bank:mridangam ]", + "[ 29/8 → 11/3 | s:nam bank:mridangam ]", + "[ 11/3 → 89/24 | s:tha bank:mridangam ]", + "[ 89/24 → 15/4 | s:dhi bank:mridangam ]", + "[ 15/4 → 91/24 | s:thom bank:mridangam ]", + "[ 91/24 → 23/6 | s:nam bank:mridangam ]", + "[ 23/6 → 187/48 | s:tha bank:mridangam ]", + "[ 187/48 → 95/24 | s:dhi bank:mridangam ]", + "[ (95/24 → 4/1) ⇝ 193/48 | s:thom bank:mridangam ]", +] +`; + exports[`runs examples > example "cosine" example index 0 1`] = ` [ - "[ 0/1 → 1/16 | note:Eb4 ]", + "[ 0/1 → 1/16 | note:D4 ]", "[ 0/1 → 1/16 | note:D5 ]", - "[ 1/16 → 1/8 | note:Ab4 ]", - "[ 1/16 → 1/8 | note:C5 ]", - "[ 1/8 → 3/16 | note:C5 ]", - "[ 1/8 → 3/16 | note:Ab4 ]", + "[ 1/16 → 1/8 | note:G4 ]", + "[ 1/16 → 1/8 | note:D5 ]", + "[ 1/8 → 3/16 | note:Bb4 ]", + "[ 1/8 → 3/16 | note:Bb4 ]", "[ 3/16 → 1/4 | note:D5 ]", - "[ 3/16 → 1/4 | note:Eb4 ]", + "[ 3/16 → 1/4 | note:G4 ]", "[ 1/4 → 5/16 | note:D5 ]", - "[ 1/4 → 5/16 | note:C4 ]", - "[ 5/16 → 3/8 | note:C5 ]", - "[ 5/16 → 3/8 | note:G3 ]", - "[ 3/8 → 7/16 | note:Ab4 ]", - "[ 3/8 → 7/16 | note:Eb3 ]", - "[ 7/16 → 1/2 | note:Eb4 ]", + "[ 1/4 → 5/16 | note:D4 ]", + "[ 5/16 → 3/8 | note:D5 ]", + "[ 5/16 → 3/8 | note:Ab3 ]", + "[ 3/8 → 7/16 | note:Bb4 ]", + "[ 3/8 → 7/16 | note:F3 ]", + "[ 7/16 → 1/2 | note:G4 ]", "[ 7/16 → 1/2 | note:D3 ]", - "[ 1/2 → 9/16 | note:C4 ]", - "[ 1/2 → 9/16 | note:D3 ]", - "[ 9/16 → 5/8 | note:G3 ]", - "[ 9/16 → 5/8 | note:Eb3 ]", - "[ 5/8 → 11/16 | note:Eb3 ]", - "[ 5/8 → 11/16 | note:G3 ]", + "[ 1/2 → 9/16 | note:D4 ]", + "[ 1/2 → 9/16 | note:C3 ]", + "[ 9/16 → 5/8 | note:Ab3 ]", + "[ 9/16 → 5/8 | note:D3 ]", + "[ 5/8 → 11/16 | note:F3 ]", + "[ 5/8 → 11/16 | note:F3 ]", "[ 11/16 → 3/4 | note:D3 ]", - "[ 11/16 → 3/4 | note:C4 ]", - "[ 3/4 → 13/16 | note:D3 ]", - "[ 3/4 → 13/16 | note:Eb4 ]", - "[ 13/16 → 7/8 | note:Eb3 ]", - "[ 13/16 → 7/8 | note:Ab4 ]", - "[ 7/8 → 15/16 | note:G3 ]", - "[ 7/8 → 15/16 | note:C5 ]", - "[ 15/16 → 1/1 | note:C4 ]", + "[ 11/16 → 3/4 | note:Ab3 ]", + "[ 3/4 → 13/16 | note:C3 ]", + "[ 3/4 → 13/16 | note:D4 ]", + "[ 13/16 → 7/8 | note:D3 ]", + "[ 13/16 → 7/8 | note:G4 ]", + "[ 7/8 → 15/16 | note:F3 ]", + "[ 7/8 → 15/16 | note:Bb4 ]", + "[ 15/16 → 1/1 | note:Ab3 ]", "[ 15/16 → 1/1 | note:D5 ]", - "[ 1/1 → 17/16 | note:Eb4 ]", + "[ 1/1 → 17/16 | note:D4 ]", "[ 1/1 → 17/16 | note:D5 ]", - "[ 17/16 → 9/8 | note:Ab4 ]", - "[ 17/16 → 9/8 | note:C5 ]", - "[ 9/8 → 19/16 | note:C5 ]", - "[ 9/8 → 19/16 | note:Ab4 ]", + "[ 17/16 → 9/8 | note:G4 ]", + "[ 17/16 → 9/8 | note:D5 ]", + "[ 9/8 → 19/16 | note:Bb4 ]", + "[ 9/8 → 19/16 | note:Bb4 ]", "[ 19/16 → 5/4 | note:D5 ]", - "[ 19/16 → 5/4 | note:Eb4 ]", + "[ 19/16 → 5/4 | note:G4 ]", "[ 5/4 → 21/16 | note:D5 ]", - "[ 5/4 → 21/16 | note:C4 ]", - "[ 21/16 → 11/8 | note:C5 ]", - "[ 21/16 → 11/8 | note:G3 ]", - "[ 11/8 → 23/16 | note:Ab4 ]", - "[ 11/8 → 23/16 | note:Eb3 ]", - "[ 23/16 → 3/2 | note:Eb4 ]", + "[ 5/4 → 21/16 | note:D4 ]", + "[ 21/16 → 11/8 | note:D5 ]", + "[ 21/16 → 11/8 | note:Ab3 ]", + "[ 11/8 → 23/16 | note:Bb4 ]", + "[ 11/8 → 23/16 | note:F3 ]", + "[ 23/16 → 3/2 | note:G4 ]", "[ 23/16 → 3/2 | note:D3 ]", - "[ 3/2 → 25/16 | note:C4 ]", - "[ 3/2 → 25/16 | note:D3 ]", - "[ 25/16 → 13/8 | note:G3 ]", - "[ 25/16 → 13/8 | note:Eb3 ]", - "[ 13/8 → 27/16 | note:Eb3 ]", - "[ 13/8 → 27/16 | note:G3 ]", + "[ 3/2 → 25/16 | note:D4 ]", + "[ 3/2 → 25/16 | note:C3 ]", + "[ 25/16 → 13/8 | note:Ab3 ]", + "[ 25/16 → 13/8 | note:D3 ]", + "[ 13/8 → 27/16 | note:F3 ]", + "[ 13/8 → 27/16 | note:F3 ]", "[ 27/16 → 7/4 | note:D3 ]", - "[ 27/16 → 7/4 | note:C4 ]", - "[ 7/4 → 29/16 | note:D3 ]", - "[ 7/4 → 29/16 | note:Eb4 ]", - "[ 29/16 → 15/8 | note:Eb3 ]", - "[ 29/16 → 15/8 | note:Ab4 ]", - "[ 15/8 → 31/16 | note:G3 ]", - "[ 15/8 → 31/16 | note:C5 ]", - "[ 31/16 → 2/1 | note:C4 ]", + "[ 27/16 → 7/4 | note:Ab3 ]", + "[ 7/4 → 29/16 | note:C3 ]", + "[ 7/4 → 29/16 | note:D4 ]", + "[ 29/16 → 15/8 | note:D3 ]", + "[ 29/16 → 15/8 | note:G4 ]", + "[ 15/8 → 31/16 | note:F3 ]", + "[ 15/8 → 31/16 | note:Bb4 ]", + "[ 31/16 → 2/1 | note:Ab3 ]", "[ 31/16 → 2/1 | note:D5 ]", - "[ 2/1 → 33/16 | note:Eb4 ]", + "[ 2/1 → 33/16 | note:D4 ]", "[ 2/1 → 33/16 | note:D5 ]", - "[ 33/16 → 17/8 | note:Ab4 ]", - "[ 33/16 → 17/8 | note:C5 ]", - "[ 17/8 → 35/16 | note:C5 ]", - "[ 17/8 → 35/16 | note:Ab4 ]", + "[ 33/16 → 17/8 | note:G4 ]", + "[ 33/16 → 17/8 | note:D5 ]", + "[ 17/8 → 35/16 | note:Bb4 ]", + "[ 17/8 → 35/16 | note:Bb4 ]", "[ 35/16 → 9/4 | note:D5 ]", - "[ 35/16 → 9/4 | note:Eb4 ]", + "[ 35/16 → 9/4 | note:G4 ]", "[ 9/4 → 37/16 | note:D5 ]", - "[ 9/4 → 37/16 | note:C4 ]", - "[ 37/16 → 19/8 | note:C5 ]", - "[ 37/16 → 19/8 | note:G3 ]", - "[ 19/8 → 39/16 | note:Ab4 ]", - "[ 19/8 → 39/16 | note:Eb3 ]", - "[ 39/16 → 5/2 | note:Eb4 ]", + "[ 9/4 → 37/16 | note:D4 ]", + "[ 37/16 → 19/8 | note:D5 ]", + "[ 37/16 → 19/8 | note:Ab3 ]", + "[ 19/8 → 39/16 | note:Bb4 ]", + "[ 19/8 → 39/16 | note:F3 ]", + "[ 39/16 → 5/2 | note:G4 ]", "[ 39/16 → 5/2 | note:D3 ]", - "[ 5/2 → 41/16 | note:C4 ]", - "[ 5/2 → 41/16 | note:D3 ]", - "[ 41/16 → 21/8 | note:G3 ]", - "[ 41/16 → 21/8 | note:Eb3 ]", - "[ 21/8 → 43/16 | note:Eb3 ]", - "[ 21/8 → 43/16 | note:G3 ]", + "[ 5/2 → 41/16 | note:D4 ]", + "[ 5/2 → 41/16 | note:C3 ]", + "[ 41/16 → 21/8 | note:Ab3 ]", + "[ 41/16 → 21/8 | note:D3 ]", + "[ 21/8 → 43/16 | note:F3 ]", + "[ 21/8 → 43/16 | note:F3 ]", "[ 43/16 → 11/4 | note:D3 ]", - "[ 43/16 → 11/4 | note:C4 ]", - "[ 11/4 → 45/16 | note:D3 ]", - "[ 11/4 → 45/16 | note:Eb4 ]", - "[ 45/16 → 23/8 | note:Eb3 ]", - "[ 45/16 → 23/8 | note:Ab4 ]", - "[ 23/8 → 47/16 | note:G3 ]", - "[ 23/8 → 47/16 | note:C5 ]", - "[ 47/16 → 3/1 | note:C4 ]", + "[ 43/16 → 11/4 | note:Ab3 ]", + "[ 11/4 → 45/16 | note:C3 ]", + "[ 11/4 → 45/16 | note:D4 ]", + "[ 45/16 → 23/8 | note:D3 ]", + "[ 45/16 → 23/8 | note:G4 ]", + "[ 23/8 → 47/16 | note:F3 ]", + "[ 23/8 → 47/16 | note:Bb4 ]", + "[ 47/16 → 3/1 | note:Ab3 ]", "[ 47/16 → 3/1 | note:D5 ]", - "[ 3/1 → 49/16 | note:Eb4 ]", + "[ 3/1 → 49/16 | note:D4 ]", "[ 3/1 → 49/16 | note:D5 ]", - "[ 49/16 → 25/8 | note:Ab4 ]", - "[ 49/16 → 25/8 | note:C5 ]", - "[ 25/8 → 51/16 | note:C5 ]", - "[ 25/8 → 51/16 | note:Ab4 ]", + "[ 49/16 → 25/8 | note:G4 ]", + "[ 49/16 → 25/8 | note:D5 ]", + "[ 25/8 → 51/16 | note:Bb4 ]", + "[ 25/8 → 51/16 | note:Bb4 ]", "[ 51/16 → 13/4 | note:D5 ]", - "[ 51/16 → 13/4 | note:Eb4 ]", + "[ 51/16 → 13/4 | note:G4 ]", "[ 13/4 → 53/16 | note:D5 ]", - "[ 13/4 → 53/16 | note:C4 ]", - "[ 53/16 → 27/8 | note:C5 ]", - "[ 53/16 → 27/8 | note:G3 ]", - "[ 27/8 → 55/16 | note:Ab4 ]", - "[ 27/8 → 55/16 | note:Eb3 ]", - "[ 55/16 → 7/2 | note:Eb4 ]", + "[ 13/4 → 53/16 | note:D4 ]", + "[ 53/16 → 27/8 | note:D5 ]", + "[ 53/16 → 27/8 | note:Ab3 ]", + "[ 27/8 → 55/16 | note:Bb4 ]", + "[ 27/8 → 55/16 | note:F3 ]", + "[ 55/16 → 7/2 | note:G4 ]", "[ 55/16 → 7/2 | note:D3 ]", - "[ 7/2 → 57/16 | note:C4 ]", - "[ 7/2 → 57/16 | note:D3 ]", - "[ 57/16 → 29/8 | note:G3 ]", - "[ 57/16 → 29/8 | note:Eb3 ]", - "[ 29/8 → 59/16 | note:Eb3 ]", - "[ 29/8 → 59/16 | note:G3 ]", + "[ 7/2 → 57/16 | note:D4 ]", + "[ 7/2 → 57/16 | note:C3 ]", + "[ 57/16 → 29/8 | note:Ab3 ]", + "[ 57/16 → 29/8 | note:D3 ]", + "[ 29/8 → 59/16 | note:F3 ]", + "[ 29/8 → 59/16 | note:F3 ]", "[ 59/16 → 15/4 | note:D3 ]", - "[ 59/16 → 15/4 | note:C4 ]", - "[ 15/4 → 61/16 | note:D3 ]", - "[ 15/4 → 61/16 | note:Eb4 ]", - "[ 61/16 → 31/8 | note:Eb3 ]", - "[ 61/16 → 31/8 | note:Ab4 ]", - "[ 31/8 → 63/16 | note:G3 ]", - "[ 31/8 → 63/16 | note:C5 ]", - "[ 63/16 → 4/1 | note:C4 ]", + "[ 59/16 → 15/4 | note:Ab3 ]", + "[ 15/4 → 61/16 | note:C3 ]", + "[ 15/4 → 61/16 | note:D4 ]", + "[ 61/16 → 31/8 | note:D3 ]", + "[ 61/16 → 31/8 | note:G4 ]", + "[ 31/8 → 63/16 | note:F3 ]", + "[ 31/8 → 63/16 | note:Bb4 ]", + "[ 63/16 → 4/1 | note:Ab3 ]", "[ 63/16 → 4/1 | note:D5 ]", ] `; @@ -2104,96 +2647,63 @@ exports[`runs examples > example "decay" example index 0 1`] = ` exports[`runs examples > example "degrade" example index 0 1`] = ` [ - "[ 0/1 → 1/8 | s:hh ]", - "[ 1/4 → 3/8 | s:hh ]", - "[ 3/4 → 7/8 | s:hh ]", - "[ 7/8 → 1/1 | s:hh ]", + "[ 1/8 → 1/4 | s:hh ]", "[ 1/1 → 9/8 | s:hh ]", - "[ 11/8 → 3/2 | s:hh ]", + "[ 9/8 → 5/4 | s:hh ]", + "[ 5/4 → 11/8 | s:hh ]", + "[ 3/2 → 13/8 | s:hh ]", "[ 15/8 → 2/1 | s:hh ]", - "[ 9/4 → 19/8 | s:hh ]", - "[ 5/2 → 21/8 | s:hh ]", - "[ 21/8 → 11/4 | s:hh ]", + "[ 2/1 → 17/8 | s:hh ]", + "[ 17/8 → 9/4 | s:hh ]", + "[ 19/8 → 5/2 | s:hh ]", "[ 11/4 → 23/8 | s:hh ]", - "[ 25/8 → 13/4 | s:hh ]", - "[ 27/8 → 7/2 | s:hh ]", - "[ 7/2 → 29/8 | s:hh ]", + "[ 13/4 → 27/8 | s:hh ]", "[ 29/8 → 15/4 | s:hh ]", + "[ 15/4 → 31/8 | s:hh ]", + "[ 31/8 → 4/1 | s:hh ]", ] `; exports[`runs examples > example "degrade" example index 1 1`] = ` [ "[ 1/8 → 1/4 | s:hh ]", + "[ 1/4 → 3/8 | s:hh ]", "[ 3/4 → 7/8 | s:hh ]", "[ 1/1 → 9/8 | s:hh ]", "[ 9/8 → 5/4 | s:hh ]", - "[ 5/4 → 11/8 | s:hh ]", - "[ 11/8 → 3/2 | s:hh ]", + "[ 13/8 → 7/4 | s:hh ]", "[ 7/4 → 15/8 | s:hh ]", - "[ 2/1 → 17/8 | s:hh ]", + "[ 17/8 → 9/4 | s:hh ]", "[ 9/4 → 19/8 | s:hh ]", - "[ 21/8 → 11/4 | s:hh ]", + "[ 5/2 → 21/8 | s:hh ]", "[ 11/4 → 23/8 | s:hh ]", + "[ 3/1 → 25/8 | s:hh ]", "[ 25/8 → 13/4 | s:hh ]", - "[ 13/4 → 27/8 | s:hh ]", - "[ 27/8 → 7/2 | s:hh ]", "[ 15/4 → 31/8 | s:hh ]", ] `; exports[`runs examples > example "degradeBy" example index 0 1`] = ` [ - "[ 0/1 → 1/8 | s:hh ]", - "[ 1/8 → 1/4 | s:hh ]", - "[ 1/4 → 3/8 | s:hh ]", - "[ 3/8 → 1/2 | s:hh ]", - "[ 5/8 → 3/4 | s:hh ]", - "[ 3/4 → 7/8 | s:hh ]", - "[ 7/8 → 1/1 | s:hh ]", - "[ 1/1 → 9/8 | s:hh ]", - "[ 11/8 → 3/2 | s:hh ]", - "[ 13/8 → 7/4 | s:hh ]", - "[ 7/4 → 15/8 | s:hh ]", - "[ 15/8 → 2/1 | s:hh ]", - "[ 2/1 → 17/8 | s:hh ]", - "[ 9/4 → 19/8 | s:hh ]", - "[ 5/2 → 21/8 | s:hh ]", - "[ 21/8 → 11/4 | s:hh ]", - "[ 11/4 → 23/8 | s:hh ]", - "[ 23/8 → 3/1 | s:hh ]", - "[ 25/8 → 13/4 | s:hh ]", - "[ 13/4 → 27/8 | s:hh ]", - "[ 27/8 → 7/2 | s:hh ]", - "[ 7/2 → 29/8 | s:hh ]", - "[ 29/8 → 15/4 | s:hh ]", - "[ 31/8 → 4/1 | s:hh ]", -] -`; - -exports[`runs examples > example "degradeBy" example index 1 1`] = ` -[ - "[ 0/1 → 1/8 | s:hh ]", "[ 1/8 → 1/4 | s:hh ]", "[ 1/4 → 3/8 | s:hh ]", "[ 3/8 → 1/2 | s:hh ]", "[ 1/2 → 5/8 | s:hh ]", - "[ 5/8 → 3/4 | s:hh ]", - "[ 3/4 → 7/8 | s:hh ]", "[ 7/8 → 1/1 | s:hh ]", "[ 1/1 → 9/8 | s:hh ]", "[ 9/8 → 5/4 | s:hh ]", "[ 5/4 → 11/8 | s:hh ]", - "[ 11/8 → 3/2 | s:hh ]", "[ 3/2 → 13/8 | s:hh ]", "[ 13/8 → 7/4 | s:hh ]", "[ 7/4 → 15/8 | s:hh ]", + "[ 15/8 → 2/1 | s:hh ]", "[ 2/1 → 17/8 | s:hh ]", "[ 17/8 → 9/4 | s:hh ]", "[ 9/4 → 19/8 | s:hh ]", - "[ 21/8 → 11/4 | s:hh ]", + "[ 19/8 → 5/2 | s:hh ]", + "[ 5/2 → 21/8 | s:hh ]", "[ 11/4 → 23/8 | s:hh ]", - "[ 23/8 → 3/1 | s:hh ]", + "[ 3/1 → 25/8 | s:hh ]", "[ 25/8 → 13/4 | s:hh ]", "[ 13/4 → 27/8 | s:hh ]", "[ 27/8 → 7/2 | s:hh ]", @@ -2204,6 +2714,67 @@ exports[`runs examples > example "degradeBy" example index 1 1`] = ` ] `; +exports[`runs examples > example "degradeBy" example index 1 1`] = ` +[ + "[ 1/8 → 1/4 | s:hh ]", + "[ 1/4 → 3/8 | s:hh ]", + "[ 3/8 → 1/2 | s:hh ]", + "[ 3/4 → 7/8 | s:hh ]", + "[ 1/1 → 9/8 | s:hh ]", + "[ 9/8 → 5/4 | s:hh ]", + "[ 11/8 → 3/2 | s:hh ]", + "[ 13/8 → 7/4 | s:hh ]", + "[ 7/4 → 15/8 | s:hh ]", + "[ 15/8 → 2/1 | s:hh ]", + "[ 2/1 → 17/8 | s:hh ]", + "[ 17/8 → 9/4 | s:hh ]", + "[ 9/4 → 19/8 | s:hh ]", + "[ 19/8 → 5/2 | s:hh ]", + "[ 5/2 → 21/8 | s:hh ]", + "[ 21/8 → 11/4 | s:hh ]", + "[ 11/4 → 23/8 | s:hh ]", + "[ 3/1 → 25/8 | s:hh ]", + "[ 25/8 → 13/4 | s:hh ]", + "[ 27/8 → 7/2 | s:hh ]", + "[ 7/2 → 29/8 | s:hh ]", + "[ 29/8 → 15/4 | s:hh ]", + "[ 15/4 → 31/8 | s:hh ]", +] +`; + +exports[`runs examples > example "degradeBy" example index 2 1`] = ` +[ + "[ 1/8 → 3/16 | s:bd ]", + "[ 1/4 → 5/16 | s:bd ]", + "[ 5/16 → 3/8 | s:bd ]", + "[ 1/2 → 9/16 | s:bd ]", + "[ 9/16 → 5/8 | s:bd ]", + "[ 11/16 → 3/4 | s:bd ]", + "[ 15/16 → 1/1 | s:bd ]", + "[ 9/8 → 19/16 | s:bd ]", + "[ 5/4 → 21/16 | s:bd ]", + "[ 21/16 → 11/8 | s:bd ]", + "[ 3/2 → 25/16 | s:bd ]", + "[ 25/16 → 13/8 | s:bd ]", + "[ 27/16 → 7/4 | s:bd ]", + "[ 31/16 → 2/1 | s:bd ]", + "[ 17/8 → 35/16 | s:bd ]", + "[ 9/4 → 37/16 | s:bd ]", + "[ 37/16 → 19/8 | s:bd ]", + "[ 5/2 → 41/16 | s:bd ]", + "[ 41/16 → 21/8 | s:bd ]", + "[ 43/16 → 11/4 | s:bd ]", + "[ 47/16 → 3/1 | s:bd ]", + "[ 25/8 → 51/16 | s:bd ]", + "[ 13/4 → 53/16 | s:bd ]", + "[ 53/16 → 27/8 | s:bd ]", + "[ 7/2 → 57/16 | s:bd ]", + "[ 57/16 → 29/8 | s:bd ]", + "[ 59/16 → 15/4 | s:bd ]", + "[ 63/16 → 4/1 | s:bd ]", +] +`; + exports[`runs examples > example "delay" example index 0 1`] = ` [ "[ 0/1 → 1/2 | s:bd delay:0 ]", @@ -2239,6 +2810,19 @@ exports[`runs examples > example "delayfeedback" example index 0 1`] = ` ] `; +exports[`runs examples > example "delaysync" example index 0 1`] = ` +[ + "[ 0/1 → 1/2 | s:bd delay:0.25 delaysync:0.125 ]", + "[ 1/2 → 1/1 | s:bd delay:0.25 delaysync:0.125 ]", + "[ 1/1 → 3/2 | s:bd delay:0.25 delaysync:0.25 ]", + "[ 3/2 → 2/1 | s:bd delay:0.25 delaysync:0.25 ]", + "[ 2/1 → 5/2 | s:bd delay:0.25 delaysync:0.375 ]", + "[ 5/2 → 3/1 | s:bd delay:0.25 delaysync:0.375 ]", + "[ 3/1 → 7/2 | s:bd delay:0.25 delaysync:0.625 ]", + "[ 7/2 → 4/1 | s:bd delay:0.25 delaysync:0.625 ]", +] +`; + exports[`runs examples > example "delaytime" example index 0 1`] = ` [ "[ 0/1 → 1/2 | s:bd delay:0.25 delaytime:0.125 ]", @@ -2252,6 +2836,27 @@ exports[`runs examples > example "delaytime" example index 0 1`] = ` ] `; +exports[`runs examples > example "density" example index 0 1`] = ` +[ + "[ 0/1 → 1/4 | s:crackle density:0.01 ]", + "[ 1/4 → 1/2 | s:crackle density:0.01 ]", + "[ 1/2 → 3/4 | s:crackle density:0.01 ]", + "[ 3/4 → 1/1 | s:crackle density:0.01 ]", + "[ 1/1 → 5/4 | s:crackle density:0.01 ]", + "[ 5/4 → 3/2 | s:crackle density:0.01 ]", + "[ 3/2 → 7/4 | s:crackle density:0.01 ]", + "[ 7/4 → 2/1 | s:crackle density:0.01 ]", + "[ 2/1 → 9/4 | s:crackle density:0.01 ]", + "[ 9/4 → 5/2 | s:crackle density:0.01 ]", + "[ 5/2 → 11/4 | s:crackle density:0.01 ]", + "[ 11/4 → 3/1 | s:crackle density:0.01 ]", + "[ 3/1 → 13/4 | s:crackle density:0.01 ]", + "[ 13/4 → 7/2 | s:crackle density:0.01 ]", + "[ 7/2 → 15/4 | s:crackle density:0.01 ]", + "[ 15/4 → 4/1 | s:crackle density:0.01 ]", +] +`; + exports[`runs examples > example "detune" example index 0 1`] = ` [ "[ 0/1 → 1/12 | note:d s:supersaw detune:0.1 ]", @@ -2422,6 +3027,199 @@ 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 "drop" example index 0 1`] = ` +[ + "[ 0/1 → 1/3 | s:dhi bank:mridangam ]", + "[ 1/3 → 2/3 | s:thom bank:mridangam ]", + "[ 2/3 → 1/1 | s:nam bank:mridangam ]", + "[ 1/1 → 4/3 | s:dhi bank:mridangam ]", + "[ 4/3 → 5/3 | s:thom bank:mridangam ]", + "[ 5/3 → 2/1 | s:nam bank:mridangam ]", + "[ 2/1 → 7/3 | s:dhi bank:mridangam ]", + "[ 7/3 → 8/3 | s:thom bank:mridangam ]", + "[ 8/3 → 3/1 | s:nam bank:mridangam ]", + "[ 3/1 → 10/3 | s:dhi bank:mridangam ]", + "[ 10/3 → 11/3 | s:thom bank:mridangam ]", + "[ 11/3 → 4/1 | s:nam bank:mridangam ]", +] +`; + +exports[`runs examples > example "drop" example index 1 1`] = ` +[ + "[ 0/1 → 1/3 | s:tha bank:mridangam ]", + "[ 1/3 → 2/3 | s:dhi bank:mridangam ]", + "[ 2/3 → 1/1 | s:thom bank:mridangam ]", + "[ 1/1 → 4/3 | s:tha bank:mridangam ]", + "[ 4/3 → 5/3 | s:dhi bank:mridangam ]", + "[ 5/3 → 2/1 | s:thom bank:mridangam ]", + "[ 2/1 → 7/3 | s:tha bank:mridangam ]", + "[ 7/3 → 8/3 | s:dhi bank:mridangam ]", + "[ 8/3 → 3/1 | s:thom bank:mridangam ]", + "[ 3/1 → 10/3 | s:tha bank:mridangam ]", + "[ 10/3 → 11/3 | s:dhi bank:mridangam ]", + "[ 11/3 → 4/1 | s:thom bank:mridangam ]", +] +`; + +exports[`runs examples > example "drop" example index 2 1`] = ` +[ + "[ 0/1 → 1/10 | s:tha bank:mridangam ]", + "[ 1/10 → 1/5 | s:dhi bank:mridangam ]", + "[ 1/5 → 3/10 | s:thom bank:mridangam ]", + "[ 3/10 → 2/5 | s:nam bank:mridangam ]", + "[ 2/5 → 1/2 | s:dhi bank:mridangam ]", + "[ 1/2 → 3/5 | s:thom bank:mridangam ]", + "[ 3/5 → 7/10 | s:nam bank:mridangam ]", + "[ 7/10 → 4/5 | s:thom bank:mridangam ]", + "[ 4/5 → 9/10 | s:nam bank:mridangam ]", + "[ 9/10 → 1/1 | s:nam bank:mridangam ]", + "[ 1/1 → 11/10 | s:tha bank:mridangam ]", + "[ 11/10 → 6/5 | s:dhi bank:mridangam ]", + "[ 6/5 → 13/10 | s:thom bank:mridangam ]", + "[ 13/10 → 7/5 | s:nam bank:mridangam ]", + "[ 7/5 → 3/2 | s:dhi bank:mridangam ]", + "[ 3/2 → 8/5 | s:thom bank:mridangam ]", + "[ 8/5 → 17/10 | s:nam bank:mridangam ]", + "[ 17/10 → 9/5 | s:thom bank:mridangam ]", + "[ 9/5 → 19/10 | s:nam bank:mridangam ]", + "[ 19/10 → 2/1 | s:nam bank:mridangam ]", + "[ 2/1 → 21/10 | s:tha bank:mridangam ]", + "[ 21/10 → 11/5 | s:dhi bank:mridangam ]", + "[ 11/5 → 23/10 | s:thom bank:mridangam ]", + "[ 23/10 → 12/5 | s:nam bank:mridangam ]", + "[ 12/5 → 5/2 | s:dhi bank:mridangam ]", + "[ 5/2 → 13/5 | s:thom bank:mridangam ]", + "[ 13/5 → 27/10 | s:nam bank:mridangam ]", + "[ 27/10 → 14/5 | s:thom bank:mridangam ]", + "[ 14/5 → 29/10 | s:nam bank:mridangam ]", + "[ 29/10 → 3/1 | s:nam bank:mridangam ]", + "[ 3/1 → 31/10 | s:tha bank:mridangam ]", + "[ 31/10 → 16/5 | s:dhi bank:mridangam ]", + "[ 16/5 → 33/10 | s:thom bank:mridangam ]", + "[ 33/10 → 17/5 | s:nam bank:mridangam ]", + "[ 17/5 → 7/2 | s:dhi bank:mridangam ]", + "[ 7/2 → 18/5 | s:thom bank:mridangam ]", + "[ 18/5 → 37/10 | s:nam bank:mridangam ]", + "[ 37/10 → 19/5 | s:thom bank:mridangam ]", + "[ 19/5 → 39/10 | s:nam bank:mridangam ]", + "[ 39/10 → 4/1 | s:nam bank:mridangam ]", +] +`; + +exports[`runs examples > example "drop" example index 3 1`] = ` +[ + "[ 0/1 → 1/10 | s:tha bank:mridangam ]", + "[ 1/10 → 1/5 | s:dhi bank:mridangam ]", + "[ 1/5 → 3/10 | s:thom bank:mridangam ]", + "[ 3/10 → 2/5 | s:nam bank:mridangam ]", + "[ 2/5 → 1/2 | s:tha bank:mridangam ]", + "[ 1/2 → 3/5 | s:dhi bank:mridangam ]", + "[ 3/5 → 7/10 | s:thom bank:mridangam ]", + "[ 7/10 → 4/5 | s:tha bank:mridangam ]", + "[ 4/5 → 9/10 | s:dhi bank:mridangam ]", + "[ 9/10 → 1/1 | s:tha bank:mridangam ]", + "[ 1/1 → 11/10 | s:tha bank:mridangam ]", + "[ 11/10 → 6/5 | s:dhi bank:mridangam ]", + "[ 6/5 → 13/10 | s:thom bank:mridangam ]", + "[ 13/10 → 7/5 | s:nam bank:mridangam ]", + "[ 7/5 → 3/2 | s:tha bank:mridangam ]", + "[ 3/2 → 8/5 | s:dhi bank:mridangam ]", + "[ 8/5 → 17/10 | s:thom bank:mridangam ]", + "[ 17/10 → 9/5 | s:tha bank:mridangam ]", + "[ 9/5 → 19/10 | s:dhi bank:mridangam ]", + "[ 19/10 → 2/1 | s:tha bank:mridangam ]", + "[ 2/1 → 21/10 | s:tha bank:mridangam ]", + "[ 21/10 → 11/5 | s:dhi bank:mridangam ]", + "[ 11/5 → 23/10 | s:thom bank:mridangam ]", + "[ 23/10 → 12/5 | s:nam bank:mridangam ]", + "[ 12/5 → 5/2 | s:tha bank:mridangam ]", + "[ 5/2 → 13/5 | s:dhi bank:mridangam ]", + "[ 13/5 → 27/10 | s:thom bank:mridangam ]", + "[ 27/10 → 14/5 | s:tha bank:mridangam ]", + "[ 14/5 → 29/10 | s:dhi bank:mridangam ]", + "[ 29/10 → 3/1 | s:tha bank:mridangam ]", + "[ 3/1 → 31/10 | s:tha bank:mridangam ]", + "[ 31/10 → 16/5 | s:dhi bank:mridangam ]", + "[ 16/5 → 33/10 | s:thom bank:mridangam ]", + "[ 33/10 → 17/5 | s:nam bank:mridangam ]", + "[ 17/5 → 7/2 | s:tha bank:mridangam ]", + "[ 7/2 → 18/5 | s:dhi bank:mridangam ]", + "[ 18/5 → 37/10 | s:thom bank:mridangam ]", + "[ 37/10 → 19/5 | s:tha bank:mridangam ]", + "[ 19/5 → 39/10 | s:dhi bank:mridangam ]", + "[ 39/10 → 4/1 | s:tha bank:mridangam ]", +] +`; + exports[`runs examples > example "dry" example index 0 1`] = ` [ "[ 0/1 → 1/8 | n:0 s:superpiano room:0.7 dry:0 ]", @@ -2665,18 +3463,19 @@ exports[`runs examples > example "euclidLegato" example index 0 1`] = ` exports[`runs examples > example "euclidLegatoRot" example index 0 1`] = ` [ - "[ 0/1 → 1/4 | note:c3 ]", - "[ 1/4 → 3/4 | note:c3 ]", - "[ 3/4 → 1/1 | note:c3 ]", - "[ 1/1 → 5/4 | note:c3 ]", - "[ 5/4 → 7/4 | note:c3 ]", - "[ 7/4 → 2/1 | note:c3 ]", - "[ 2/1 → 9/4 | note:c3 ]", - "[ 9/4 → 11/4 | note:c3 ]", - "[ 11/4 → 3/1 | note:c3 ]", - "[ 3/1 → 13/4 | note:c3 ]", - "[ 13/4 → 15/4 | note:c3 ]", - "[ 15/4 → 4/1 | note:c3 ]", + "[ -1/5 ⇜ (0/1 → 1/5) | note:c3 ]", + "[ 1/5 → 2/5 | note:c3 ]", + "[ 2/5 → 4/5 | note:c3 ]", + "[ 4/5 → 6/5 | note:c3 ]", + "[ 6/5 → 7/5 | note:c3 ]", + "[ 7/5 → 9/5 | note:c3 ]", + "[ 9/5 → 11/5 | note:c3 ]", + "[ 11/5 → 12/5 | note:c3 ]", + "[ 12/5 → 14/5 | note:c3 ]", + "[ 14/5 → 16/5 | note:c3 ]", + "[ 16/5 → 17/5 | note:c3 ]", + "[ 17/5 → 19/5 | note:c3 ]", + "[ (19/5 → 4/1) ⇝ 21/5 | note:c3 ]", ] `; @@ -2718,6 +3517,93 @@ exports[`runs examples > example "every" example index 0 1`] = ` ] `; +exports[`runs examples > example "expand" example index 0 1`] = ` +[ + "[ 0/1 → 3/8 | s:tha bank:mridangam ]", + "[ 3/8 → 3/4 | s:dhi bank:mridangam ]", + "[ 3/4 → 9/8 | s:thom bank:mridangam ]", + "[ 9/8 → 3/2 | s:nam bank:mridangam ]", + "[ 3/2 → 7/4 | s:tha bank:mridangam ]", + "[ 7/4 → 2/1 | s:dhi bank:mridangam ]", + "[ 2/1 → 9/4 | s:thom bank:mridangam ]", + "[ 9/4 → 5/2 | s:nam bank:mridangam ]", + "[ 5/2 → 21/8 | s:tha bank:mridangam ]", + "[ 21/8 → 11/4 | s:dhi bank:mridangam ]", + "[ 11/4 → 23/8 | s:thom bank:mridangam ]", + "[ 23/8 → 3/1 | s:nam bank:mridangam ]", + "[ 3/1 → 25/8 | s:tha bank:mridangam ]", + "[ 25/8 → 13/4 | s:dhi bank:mridangam ]", + "[ 13/4 → 27/8 | s:thom bank:mridangam ]", + "[ 27/8 → 7/2 | s:nam bank:mridangam ]", + "[ 7/2 → 15/4 | s:tha bank:mridangam ]", + "[ 15/4 → 4/1 | s:dhi bank:mridangam ]", +] +`; + +exports[`runs examples > example "extend" example index 0 1`] = ` +[ + "[ 0/1 → 1/8 | s:bd ]", + "[ 1/8 → 1/4 | s:bd ]", + "[ 3/8 → 1/2 | s:cp ]", + "[ 1/2 → 5/8 | s:bd ]", + "[ 5/8 → 3/4 | s:bd ]", + "[ 7/8 → 1/1 | s:cp ]", + "[ 1/1 → 9/8 | s:bd ]", + "[ 5/4 → 11/8 | s:sd ]", + "[ 3/2 → 13/8 | s:bd ]", + "[ 13/8 → 7/4 | s:bd ]", + "[ 15/8 → 2/1 | s:cp ]", + "[ 2/1 → 17/8 | s:bd ]", + "[ 17/8 → 9/4 | s:bd ]", + "[ 19/8 → 5/2 | s:cp ]", + "[ 5/2 → 21/8 | s:bd ]", + "[ 11/4 → 23/8 | s:sd ]", + "[ 3/1 → 25/8 | s:bd ]", + "[ 25/8 → 13/4 | s:bd ]", + "[ 27/8 → 7/2 | s:cp ]", + "[ 7/2 → 29/8 | s:bd ]", + "[ 29/8 → 15/4 | s:bd ]", + "[ 31/8 → 4/1 | s:cp ]", +] +`; + +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 ]", @@ -2785,6 +3671,43 @@ exports[`runs examples > example "fastGap" example index 0 1`] = ` ] `; +exports[`runs examples > example "filter" example index 0 1`] = ` +[ + "[ 0/1 → 1/8 | s:hh ]", + "[ 1/8 → 1/4 | s:hh ]", + "[ 1/4 → 3/8 | s:hh ]", + "[ 3/8 → 1/2 | s:hh ]", + "[ 1/2 → 5/8 | s:hh ]", + "[ 5/8 → 3/4 | s:hh ]", + "[ 3/4 → 7/8 | s:hh ]", + "[ 7/8 → 1/1 | s:oh ]", + "[ 1/1 → 9/8 | s:hh ]", + "[ 9/8 → 5/4 | s:hh ]", + "[ 5/4 → 11/8 | s:hh ]", + "[ 11/8 → 3/2 | s:hh ]", + "[ 3/2 → 13/8 | s:hh ]", + "[ 13/8 → 7/4 | s:hh ]", + "[ 7/4 → 15/8 | s:hh ]", + "[ 15/8 → 2/1 | s:oh ]", + "[ 2/1 → 17/8 | s:hh ]", + "[ 17/8 → 9/4 | s:hh ]", + "[ 9/4 → 19/8 | s:hh ]", + "[ 19/8 → 5/2 | s:hh ]", + "[ 5/2 → 21/8 | s:hh ]", + "[ 21/8 → 11/4 | s:hh ]", + "[ 11/4 → 23/8 | s:hh ]", + "[ 23/8 → 3/1 | s:oh ]", + "[ 3/1 → 25/8 | s:hh ]", + "[ 25/8 → 13/4 | s:hh ]", + "[ 13/4 → 27/8 | s:hh ]", + "[ 27/8 → 7/2 | s:hh ]", + "[ 7/2 → 29/8 | s:hh ]", + "[ 29/8 → 15/4 | s:hh ]", + "[ 15/4 → 31/8 | s:hh ]", + "[ 31/8 → 4/1 | s:oh ]", +] +`; + exports[`runs examples > example "firstOf" example index 0 1`] = ` [ "[ 0/1 → 1/4 | note:g3 ]", @@ -2836,175 +3759,175 @@ exports[`runs examples > example "floor" example index 0 1`] = ` exports[`runs examples > example "fm" example index 0 1`] = ` [ - "[ 0/1 → 1/6 | note:c fmi:0 analyze:1 ]", - "[ 1/6 → 1/3 | note:e fmi:0 analyze:1 ]", - "[ 1/3 → 1/2 | note:g fmi:0 analyze:1 ]", - "[ 1/2 → 2/3 | note:b fmi:0 analyze:1 ]", - "[ 2/3 → 5/6 | note:g fmi:0 analyze:1 ]", - "[ 5/6 → 1/1 | note:e fmi:0 analyze:1 ]", - "[ 1/1 → 7/6 | note:c fmi:1 analyze:1 ]", - "[ 7/6 → 4/3 | note:e fmi:1 analyze:1 ]", - "[ 4/3 → 3/2 | note:g fmi:1 analyze:1 ]", - "[ 3/2 → 5/3 | note:b fmi:1 analyze:1 ]", - "[ 5/3 → 11/6 | note:g fmi:1 analyze:1 ]", - "[ 11/6 → 2/1 | note:e fmi:1 analyze:1 ]", - "[ 2/1 → 13/6 | note:c fmi:2 analyze:1 ]", - "[ 13/6 → 7/3 | note:e fmi:2 analyze:1 ]", - "[ 7/3 → 5/2 | note:g fmi:2 analyze:1 ]", - "[ 5/2 → 8/3 | note:b fmi:2 analyze:1 ]", - "[ 8/3 → 17/6 | note:g fmi:2 analyze:1 ]", - "[ 17/6 → 3/1 | note:e fmi:2 analyze:1 ]", - "[ 3/1 → 19/6 | note:c fmi:8 analyze:1 ]", - "[ 19/6 → 10/3 | note:e fmi:8 analyze:1 ]", - "[ 10/3 → 7/2 | note:g fmi:8 analyze:1 ]", - "[ 7/2 → 11/3 | note:b fmi:8 analyze:1 ]", - "[ 11/3 → 23/6 | note:g fmi:8 analyze:1 ]", - "[ 23/6 → 4/1 | note:e fmi:8 analyze:1 ]", + "[ 0/1 → 1/6 | note:c fmi:0 ]", + "[ 1/6 → 1/3 | note:e fmi:0 ]", + "[ 1/3 → 1/2 | note:g fmi:0 ]", + "[ 1/2 → 2/3 | note:b fmi:0 ]", + "[ 2/3 → 5/6 | note:g fmi:0 ]", + "[ 5/6 → 1/1 | note:e fmi:0 ]", + "[ 1/1 → 7/6 | note:c fmi:1 ]", + "[ 7/6 → 4/3 | note:e fmi:1 ]", + "[ 4/3 → 3/2 | note:g fmi:1 ]", + "[ 3/2 → 5/3 | note:b fmi:1 ]", + "[ 5/3 → 11/6 | note:g fmi:1 ]", + "[ 11/6 → 2/1 | note:e fmi:1 ]", + "[ 2/1 → 13/6 | note:c fmi:2 ]", + "[ 13/6 → 7/3 | note:e fmi:2 ]", + "[ 7/3 → 5/2 | note:g fmi:2 ]", + "[ 5/2 → 8/3 | note:b fmi:2 ]", + "[ 8/3 → 17/6 | note:g fmi:2 ]", + "[ 17/6 → 3/1 | note:e fmi:2 ]", + "[ 3/1 → 19/6 | note:c fmi:8 ]", + "[ 19/6 → 10/3 | note:e fmi:8 ]", + "[ 10/3 → 7/2 | note:g fmi:8 ]", + "[ 7/2 → 11/3 | note:b fmi:8 ]", + "[ 11/3 → 23/6 | note:g fmi:8 ]", + "[ 23/6 → 4/1 | note:e fmi:8 ]", ] `; exports[`runs examples > example "fmattack" example index 0 1`] = ` [ - "[ 0/1 → 1/6 | note:c fmi:4 fmattack:0 analyze:1 ]", - "[ 1/6 → 1/3 | note:e fmi:4 fmattack:0 analyze:1 ]", - "[ 1/3 → 1/2 | note:g fmi:4 fmattack:0 analyze:1 ]", - "[ 1/2 → 2/3 | note:b fmi:4 fmattack:0 analyze:1 ]", - "[ 2/3 → 5/6 | note:g fmi:4 fmattack:0 analyze:1 ]", - "[ 5/6 → 1/1 | note:e fmi:4 fmattack:0 analyze:1 ]", - "[ 1/1 → 7/6 | note:c fmi:4 fmattack:0.05 analyze:1 ]", - "[ 7/6 → 4/3 | note:e fmi:4 fmattack:0.05 analyze:1 ]", - "[ 4/3 → 3/2 | note:g fmi:4 fmattack:0.05 analyze:1 ]", - "[ 3/2 → 5/3 | note:b fmi:4 fmattack:0.05 analyze:1 ]", - "[ 5/3 → 11/6 | note:g fmi:4 fmattack:0.05 analyze:1 ]", - "[ 11/6 → 2/1 | note:e fmi:4 fmattack:0.05 analyze:1 ]", - "[ 2/1 → 13/6 | note:c fmi:4 fmattack:0.1 analyze:1 ]", - "[ 13/6 → 7/3 | note:e fmi:4 fmattack:0.1 analyze:1 ]", - "[ 7/3 → 5/2 | note:g fmi:4 fmattack:0.1 analyze:1 ]", - "[ 5/2 → 8/3 | note:b fmi:4 fmattack:0.1 analyze:1 ]", - "[ 8/3 → 17/6 | note:g fmi:4 fmattack:0.1 analyze:1 ]", - "[ 17/6 → 3/1 | note:e fmi:4 fmattack:0.1 analyze:1 ]", - "[ 3/1 → 19/6 | note:c fmi:4 fmattack:0.2 analyze:1 ]", - "[ 19/6 → 10/3 | note:e fmi:4 fmattack:0.2 analyze:1 ]", - "[ 10/3 → 7/2 | note:g fmi:4 fmattack:0.2 analyze:1 ]", - "[ 7/2 → 11/3 | note:b fmi:4 fmattack:0.2 analyze:1 ]", - "[ 11/3 → 23/6 | note:g fmi:4 fmattack:0.2 analyze:1 ]", - "[ 23/6 → 4/1 | note:e fmi:4 fmattack:0.2 analyze:1 ]", + "[ 0/1 → 1/6 | note:c fmi:4 fmattack:0 ]", + "[ 1/6 → 1/3 | note:e fmi:4 fmattack:0 ]", + "[ 1/3 → 1/2 | note:g fmi:4 fmattack:0 ]", + "[ 1/2 → 2/3 | note:b fmi:4 fmattack:0 ]", + "[ 2/3 → 5/6 | note:g fmi:4 fmattack:0 ]", + "[ 5/6 → 1/1 | note:e fmi:4 fmattack:0 ]", + "[ 1/1 → 7/6 | note:c fmi:4 fmattack:0.05 ]", + "[ 7/6 → 4/3 | note:e fmi:4 fmattack:0.05 ]", + "[ 4/3 → 3/2 | note:g fmi:4 fmattack:0.05 ]", + "[ 3/2 → 5/3 | note:b fmi:4 fmattack:0.05 ]", + "[ 5/3 → 11/6 | note:g fmi:4 fmattack:0.05 ]", + "[ 11/6 → 2/1 | note:e fmi:4 fmattack:0.05 ]", + "[ 2/1 → 13/6 | note:c fmi:4 fmattack:0.1 ]", + "[ 13/6 → 7/3 | note:e fmi:4 fmattack:0.1 ]", + "[ 7/3 → 5/2 | note:g fmi:4 fmattack:0.1 ]", + "[ 5/2 → 8/3 | note:b fmi:4 fmattack:0.1 ]", + "[ 8/3 → 17/6 | note:g fmi:4 fmattack:0.1 ]", + "[ 17/6 → 3/1 | note:e fmi:4 fmattack:0.1 ]", + "[ 3/1 → 19/6 | note:c fmi:4 fmattack:0.2 ]", + "[ 19/6 → 10/3 | note:e fmi:4 fmattack:0.2 ]", + "[ 10/3 → 7/2 | note:g fmi:4 fmattack:0.2 ]", + "[ 7/2 → 11/3 | note:b fmi:4 fmattack:0.2 ]", + "[ 11/3 → 23/6 | note:g fmi:4 fmattack:0.2 ]", + "[ 23/6 → 4/1 | note:e fmi:4 fmattack:0.2 ]", ] `; exports[`runs examples > example "fmdecay" example index 0 1`] = ` [ - "[ 0/1 → 1/6 | note:c fmi:4 fmdecay:0.01 fmsustain:0.4 analyze:1 ]", - "[ 1/6 → 1/3 | note:e fmi:4 fmdecay:0.01 fmsustain:0.4 analyze:1 ]", - "[ 1/3 → 1/2 | note:g fmi:4 fmdecay:0.01 fmsustain:0.4 analyze:1 ]", - "[ 1/2 → 2/3 | note:b fmi:4 fmdecay:0.01 fmsustain:0.4 analyze:1 ]", - "[ 2/3 → 5/6 | note:g fmi:4 fmdecay:0.01 fmsustain:0.4 analyze:1 ]", - "[ 5/6 → 1/1 | note:e fmi:4 fmdecay:0.01 fmsustain:0.4 analyze:1 ]", - "[ 1/1 → 7/6 | note:c fmi:4 fmdecay:0.05 fmsustain:0.4 analyze:1 ]", - "[ 7/6 → 4/3 | note:e fmi:4 fmdecay:0.05 fmsustain:0.4 analyze:1 ]", - "[ 4/3 → 3/2 | note:g fmi:4 fmdecay:0.05 fmsustain:0.4 analyze:1 ]", - "[ 3/2 → 5/3 | note:b fmi:4 fmdecay:0.05 fmsustain:0.4 analyze:1 ]", - "[ 5/3 → 11/6 | note:g fmi:4 fmdecay:0.05 fmsustain:0.4 analyze:1 ]", - "[ 11/6 → 2/1 | note:e fmi:4 fmdecay:0.05 fmsustain:0.4 analyze:1 ]", - "[ 2/1 → 13/6 | note:c fmi:4 fmdecay:0.1 fmsustain:0.4 analyze:1 ]", - "[ 13/6 → 7/3 | note:e fmi:4 fmdecay:0.1 fmsustain:0.4 analyze:1 ]", - "[ 7/3 → 5/2 | note:g fmi:4 fmdecay:0.1 fmsustain:0.4 analyze:1 ]", - "[ 5/2 → 8/3 | note:b fmi:4 fmdecay:0.1 fmsustain:0.4 analyze:1 ]", - "[ 8/3 → 17/6 | note:g fmi:4 fmdecay:0.1 fmsustain:0.4 analyze:1 ]", - "[ 17/6 → 3/1 | note:e fmi:4 fmdecay:0.1 fmsustain:0.4 analyze:1 ]", - "[ 3/1 → 19/6 | note:c fmi:4 fmdecay:0.2 fmsustain:0.4 analyze:1 ]", - "[ 19/6 → 10/3 | note:e fmi:4 fmdecay:0.2 fmsustain:0.4 analyze:1 ]", - "[ 10/3 → 7/2 | note:g fmi:4 fmdecay:0.2 fmsustain:0.4 analyze:1 ]", - "[ 7/2 → 11/3 | note:b fmi:4 fmdecay:0.2 fmsustain:0.4 analyze:1 ]", - "[ 11/3 → 23/6 | note:g fmi:4 fmdecay:0.2 fmsustain:0.4 analyze:1 ]", - "[ 23/6 → 4/1 | note:e fmi:4 fmdecay:0.2 fmsustain:0.4 analyze:1 ]", + "[ 0/1 → 1/6 | note:c fmi:4 fmdecay:0.01 fmsustain:0.4 ]", + "[ 1/6 → 1/3 | note:e fmi:4 fmdecay:0.01 fmsustain:0.4 ]", + "[ 1/3 → 1/2 | note:g fmi:4 fmdecay:0.01 fmsustain:0.4 ]", + "[ 1/2 → 2/3 | note:b fmi:4 fmdecay:0.01 fmsustain:0.4 ]", + "[ 2/3 → 5/6 | note:g fmi:4 fmdecay:0.01 fmsustain:0.4 ]", + "[ 5/6 → 1/1 | note:e fmi:4 fmdecay:0.01 fmsustain:0.4 ]", + "[ 1/1 → 7/6 | note:c fmi:4 fmdecay:0.05 fmsustain:0.4 ]", + "[ 7/6 → 4/3 | note:e fmi:4 fmdecay:0.05 fmsustain:0.4 ]", + "[ 4/3 → 3/2 | note:g fmi:4 fmdecay:0.05 fmsustain:0.4 ]", + "[ 3/2 → 5/3 | note:b fmi:4 fmdecay:0.05 fmsustain:0.4 ]", + "[ 5/3 → 11/6 | note:g fmi:4 fmdecay:0.05 fmsustain:0.4 ]", + "[ 11/6 → 2/1 | note:e fmi:4 fmdecay:0.05 fmsustain:0.4 ]", + "[ 2/1 → 13/6 | note:c fmi:4 fmdecay:0.1 fmsustain:0.4 ]", + "[ 13/6 → 7/3 | note:e fmi:4 fmdecay:0.1 fmsustain:0.4 ]", + "[ 7/3 → 5/2 | note:g fmi:4 fmdecay:0.1 fmsustain:0.4 ]", + "[ 5/2 → 8/3 | note:b fmi:4 fmdecay:0.1 fmsustain:0.4 ]", + "[ 8/3 → 17/6 | note:g fmi:4 fmdecay:0.1 fmsustain:0.4 ]", + "[ 17/6 → 3/1 | note:e fmi:4 fmdecay:0.1 fmsustain:0.4 ]", + "[ 3/1 → 19/6 | note:c fmi:4 fmdecay:0.2 fmsustain:0.4 ]", + "[ 19/6 → 10/3 | note:e fmi:4 fmdecay:0.2 fmsustain:0.4 ]", + "[ 10/3 → 7/2 | note:g fmi:4 fmdecay:0.2 fmsustain:0.4 ]", + "[ 7/2 → 11/3 | note:b fmi:4 fmdecay:0.2 fmsustain:0.4 ]", + "[ 11/3 → 23/6 | note:g fmi:4 fmdecay:0.2 fmsustain:0.4 ]", + "[ 23/6 → 4/1 | note:e fmi:4 fmdecay:0.2 fmsustain:0.4 ]", ] `; exports[`runs examples > example "fmenv" example index 0 1`] = ` [ - "[ 0/1 → 1/6 | note:c fmi:4 fmdecay:0.2 fmsustain:0 fmenv:exp analyze:1 ]", - "[ 1/6 → 1/3 | note:e fmi:4 fmdecay:0.2 fmsustain:0 fmenv:exp analyze:1 ]", - "[ 1/3 → 1/2 | note:g fmi:4 fmdecay:0.2 fmsustain:0 fmenv:exp analyze:1 ]", - "[ 1/2 → 2/3 | note:b fmi:4 fmdecay:0.2 fmsustain:0 fmenv:exp analyze:1 ]", - "[ 2/3 → 5/6 | note:g fmi:4 fmdecay:0.2 fmsustain:0 fmenv:exp analyze:1 ]", - "[ 5/6 → 1/1 | note:e fmi:4 fmdecay:0.2 fmsustain:0 fmenv:exp analyze:1 ]", - "[ 1/1 → 7/6 | note:c fmi:4 fmdecay:0.2 fmsustain:0 fmenv:lin analyze:1 ]", - "[ 7/6 → 4/3 | note:e fmi:4 fmdecay:0.2 fmsustain:0 fmenv:lin analyze:1 ]", - "[ 4/3 → 3/2 | note:g fmi:4 fmdecay:0.2 fmsustain:0 fmenv:lin analyze:1 ]", - "[ 3/2 → 5/3 | note:b fmi:4 fmdecay:0.2 fmsustain:0 fmenv:lin analyze:1 ]", - "[ 5/3 → 11/6 | note:g fmi:4 fmdecay:0.2 fmsustain:0 fmenv:lin analyze:1 ]", - "[ 11/6 → 2/1 | note:e fmi:4 fmdecay:0.2 fmsustain:0 fmenv:lin analyze:1 ]", - "[ 2/1 → 13/6 | note:c fmi:4 fmdecay:0.2 fmsustain:0 fmenv:exp analyze:1 ]", - "[ 13/6 → 7/3 | note:e fmi:4 fmdecay:0.2 fmsustain:0 fmenv:exp analyze:1 ]", - "[ 7/3 → 5/2 | note:g fmi:4 fmdecay:0.2 fmsustain:0 fmenv:exp analyze:1 ]", - "[ 5/2 → 8/3 | note:b fmi:4 fmdecay:0.2 fmsustain:0 fmenv:exp analyze:1 ]", - "[ 8/3 → 17/6 | note:g fmi:4 fmdecay:0.2 fmsustain:0 fmenv:exp analyze:1 ]", - "[ 17/6 → 3/1 | note:e fmi:4 fmdecay:0.2 fmsustain:0 fmenv:exp analyze:1 ]", - "[ 3/1 → 19/6 | note:c fmi:4 fmdecay:0.2 fmsustain:0 fmenv:lin analyze:1 ]", - "[ 19/6 → 10/3 | note:e fmi:4 fmdecay:0.2 fmsustain:0 fmenv:lin analyze:1 ]", - "[ 10/3 → 7/2 | note:g fmi:4 fmdecay:0.2 fmsustain:0 fmenv:lin analyze:1 ]", - "[ 7/2 → 11/3 | note:b fmi:4 fmdecay:0.2 fmsustain:0 fmenv:lin analyze:1 ]", - "[ 11/3 → 23/6 | note:g fmi:4 fmdecay:0.2 fmsustain:0 fmenv:lin analyze:1 ]", - "[ 23/6 → 4/1 | note:e fmi:4 fmdecay:0.2 fmsustain:0 fmenv:lin analyze:1 ]", + "[ 0/1 → 1/6 | note:c fmi:4 fmdecay:0.2 fmsustain:0 fmenv:exp ]", + "[ 1/6 → 1/3 | note:e fmi:4 fmdecay:0.2 fmsustain:0 fmenv:exp ]", + "[ 1/3 → 1/2 | note:g fmi:4 fmdecay:0.2 fmsustain:0 fmenv:exp ]", + "[ 1/2 → 2/3 | note:b fmi:4 fmdecay:0.2 fmsustain:0 fmenv:exp ]", + "[ 2/3 → 5/6 | note:g fmi:4 fmdecay:0.2 fmsustain:0 fmenv:exp ]", + "[ 5/6 → 1/1 | note:e fmi:4 fmdecay:0.2 fmsustain:0 fmenv:exp ]", + "[ 1/1 → 7/6 | note:c fmi:4 fmdecay:0.2 fmsustain:0 fmenv:lin ]", + "[ 7/6 → 4/3 | note:e fmi:4 fmdecay:0.2 fmsustain:0 fmenv:lin ]", + "[ 4/3 → 3/2 | note:g fmi:4 fmdecay:0.2 fmsustain:0 fmenv:lin ]", + "[ 3/2 → 5/3 | note:b fmi:4 fmdecay:0.2 fmsustain:0 fmenv:lin ]", + "[ 5/3 → 11/6 | note:g fmi:4 fmdecay:0.2 fmsustain:0 fmenv:lin ]", + "[ 11/6 → 2/1 | note:e fmi:4 fmdecay:0.2 fmsustain:0 fmenv:lin ]", + "[ 2/1 → 13/6 | note:c fmi:4 fmdecay:0.2 fmsustain:0 fmenv:exp ]", + "[ 13/6 → 7/3 | note:e fmi:4 fmdecay:0.2 fmsustain:0 fmenv:exp ]", + "[ 7/3 → 5/2 | note:g fmi:4 fmdecay:0.2 fmsustain:0 fmenv:exp ]", + "[ 5/2 → 8/3 | note:b fmi:4 fmdecay:0.2 fmsustain:0 fmenv:exp ]", + "[ 8/3 → 17/6 | note:g fmi:4 fmdecay:0.2 fmsustain:0 fmenv:exp ]", + "[ 17/6 → 3/1 | note:e fmi:4 fmdecay:0.2 fmsustain:0 fmenv:exp ]", + "[ 3/1 → 19/6 | note:c fmi:4 fmdecay:0.2 fmsustain:0 fmenv:lin ]", + "[ 19/6 → 10/3 | note:e fmi:4 fmdecay:0.2 fmsustain:0 fmenv:lin ]", + "[ 10/3 → 7/2 | note:g fmi:4 fmdecay:0.2 fmsustain:0 fmenv:lin ]", + "[ 7/2 → 11/3 | note:b fmi:4 fmdecay:0.2 fmsustain:0 fmenv:lin ]", + "[ 11/3 → 23/6 | note:g fmi:4 fmdecay:0.2 fmsustain:0 fmenv:lin ]", + "[ 23/6 → 4/1 | note:e fmi:4 fmdecay:0.2 fmsustain:0 fmenv:lin ]", ] `; exports[`runs examples > example "fmh" example index 0 1`] = ` [ - "[ 0/1 → 1/6 | note:c fmi:4 fmh:1 analyze:1 ]", - "[ 1/6 → 1/3 | note:e fmi:4 fmh:1 analyze:1 ]", - "[ 1/3 → 1/2 | note:g fmi:4 fmh:1 analyze:1 ]", - "[ 1/2 → 2/3 | note:b fmi:4 fmh:1 analyze:1 ]", - "[ 2/3 → 5/6 | note:g fmi:4 fmh:1 analyze:1 ]", - "[ 5/6 → 1/1 | note:e fmi:4 fmh:1 analyze:1 ]", - "[ 1/1 → 7/6 | note:c fmi:4 fmh:2 analyze:1 ]", - "[ 7/6 → 4/3 | note:e fmi:4 fmh:2 analyze:1 ]", - "[ 4/3 → 3/2 | note:g fmi:4 fmh:2 analyze:1 ]", - "[ 3/2 → 5/3 | note:b fmi:4 fmh:2 analyze:1 ]", - "[ 5/3 → 11/6 | note:g fmi:4 fmh:2 analyze:1 ]", - "[ 11/6 → 2/1 | note:e fmi:4 fmh:2 analyze:1 ]", - "[ 2/1 → 13/6 | note:c fmi:4 fmh:1.5 analyze:1 ]", - "[ 13/6 → 7/3 | note:e fmi:4 fmh:1.5 analyze:1 ]", - "[ 7/3 → 5/2 | note:g fmi:4 fmh:1.5 analyze:1 ]", - "[ 5/2 → 8/3 | note:b fmi:4 fmh:1.5 analyze:1 ]", - "[ 8/3 → 17/6 | note:g fmi:4 fmh:1.5 analyze:1 ]", - "[ 17/6 → 3/1 | note:e fmi:4 fmh:1.5 analyze:1 ]", - "[ 3/1 → 19/6 | note:c fmi:4 fmh:1.61 analyze:1 ]", - "[ 19/6 → 10/3 | note:e fmi:4 fmh:1.61 analyze:1 ]", - "[ 10/3 → 7/2 | note:g fmi:4 fmh:1.61 analyze:1 ]", - "[ 7/2 → 11/3 | note:b fmi:4 fmh:1.61 analyze:1 ]", - "[ 11/3 → 23/6 | note:g fmi:4 fmh:1.61 analyze:1 ]", - "[ 23/6 → 4/1 | note:e fmi:4 fmh:1.61 analyze:1 ]", + "[ 0/1 → 1/6 | note:c fmi:4 fmh:1 ]", + "[ 1/6 → 1/3 | note:e fmi:4 fmh:1 ]", + "[ 1/3 → 1/2 | note:g fmi:4 fmh:1 ]", + "[ 1/2 → 2/3 | note:b fmi:4 fmh:1 ]", + "[ 2/3 → 5/6 | note:g fmi:4 fmh:1 ]", + "[ 5/6 → 1/1 | note:e fmi:4 fmh:1 ]", + "[ 1/1 → 7/6 | note:c fmi:4 fmh:2 ]", + "[ 7/6 → 4/3 | note:e fmi:4 fmh:2 ]", + "[ 4/3 → 3/2 | note:g fmi:4 fmh:2 ]", + "[ 3/2 → 5/3 | note:b fmi:4 fmh:2 ]", + "[ 5/3 → 11/6 | note:g fmi:4 fmh:2 ]", + "[ 11/6 → 2/1 | note:e fmi:4 fmh:2 ]", + "[ 2/1 → 13/6 | note:c fmi:4 fmh:1.5 ]", + "[ 13/6 → 7/3 | note:e fmi:4 fmh:1.5 ]", + "[ 7/3 → 5/2 | note:g fmi:4 fmh:1.5 ]", + "[ 5/2 → 8/3 | note:b fmi:4 fmh:1.5 ]", + "[ 8/3 → 17/6 | note:g fmi:4 fmh:1.5 ]", + "[ 17/6 → 3/1 | note:e fmi:4 fmh:1.5 ]", + "[ 3/1 → 19/6 | note:c fmi:4 fmh:1.61 ]", + "[ 19/6 → 10/3 | note:e fmi:4 fmh:1.61 ]", + "[ 10/3 → 7/2 | note:g fmi:4 fmh:1.61 ]", + "[ 7/2 → 11/3 | note:b fmi:4 fmh:1.61 ]", + "[ 11/3 → 23/6 | note:g fmi:4 fmh:1.61 ]", + "[ 23/6 → 4/1 | note:e fmi:4 fmh:1.61 ]", ] `; exports[`runs examples > example "fmsustain" example index 0 1`] = ` [ - "[ 0/1 → 1/6 | note:c fmi:4 fmdecay:0.1 fmsustain:1 analyze:1 ]", - "[ 1/6 → 1/3 | note:e fmi:4 fmdecay:0.1 fmsustain:1 analyze:1 ]", - "[ 1/3 → 1/2 | note:g fmi:4 fmdecay:0.1 fmsustain:1 analyze:1 ]", - "[ 1/2 → 2/3 | note:b fmi:4 fmdecay:0.1 fmsustain:1 analyze:1 ]", - "[ 2/3 → 5/6 | note:g fmi:4 fmdecay:0.1 fmsustain:1 analyze:1 ]", - "[ 5/6 → 1/1 | note:e fmi:4 fmdecay:0.1 fmsustain:1 analyze:1 ]", - "[ 1/1 → 7/6 | note:c fmi:4 fmdecay:0.1 fmsustain:0.75 analyze:1 ]", - "[ 7/6 → 4/3 | note:e fmi:4 fmdecay:0.1 fmsustain:0.75 analyze:1 ]", - "[ 4/3 → 3/2 | note:g fmi:4 fmdecay:0.1 fmsustain:0.75 analyze:1 ]", - "[ 3/2 → 5/3 | note:b fmi:4 fmdecay:0.1 fmsustain:0.75 analyze:1 ]", - "[ 5/3 → 11/6 | note:g fmi:4 fmdecay:0.1 fmsustain:0.75 analyze:1 ]", - "[ 11/6 → 2/1 | note:e fmi:4 fmdecay:0.1 fmsustain:0.75 analyze:1 ]", - "[ 2/1 → 13/6 | note:c fmi:4 fmdecay:0.1 fmsustain:0.5 analyze:1 ]", - "[ 13/6 → 7/3 | note:e fmi:4 fmdecay:0.1 fmsustain:0.5 analyze:1 ]", - "[ 7/3 → 5/2 | note:g fmi:4 fmdecay:0.1 fmsustain:0.5 analyze:1 ]", - "[ 5/2 → 8/3 | note:b fmi:4 fmdecay:0.1 fmsustain:0.5 analyze:1 ]", - "[ 8/3 → 17/6 | note:g fmi:4 fmdecay:0.1 fmsustain:0.5 analyze:1 ]", - "[ 17/6 → 3/1 | note:e fmi:4 fmdecay:0.1 fmsustain:0.5 analyze:1 ]", - "[ 3/1 → 19/6 | note:c fmi:4 fmdecay:0.1 fmsustain:0 analyze:1 ]", - "[ 19/6 → 10/3 | note:e fmi:4 fmdecay:0.1 fmsustain:0 analyze:1 ]", - "[ 10/3 → 7/2 | note:g fmi:4 fmdecay:0.1 fmsustain:0 analyze:1 ]", - "[ 7/2 → 11/3 | note:b fmi:4 fmdecay:0.1 fmsustain:0 analyze:1 ]", - "[ 11/3 → 23/6 | note:g fmi:4 fmdecay:0.1 fmsustain:0 analyze:1 ]", - "[ 23/6 → 4/1 | note:e fmi:4 fmdecay:0.1 fmsustain:0 analyze:1 ]", + "[ 0/1 → 1/6 | note:c fmi:4 fmdecay:0.1 fmsustain:1 ]", + "[ 1/6 → 1/3 | note:e fmi:4 fmdecay:0.1 fmsustain:1 ]", + "[ 1/3 → 1/2 | note:g fmi:4 fmdecay:0.1 fmsustain:1 ]", + "[ 1/2 → 2/3 | note:b fmi:4 fmdecay:0.1 fmsustain:1 ]", + "[ 2/3 → 5/6 | note:g fmi:4 fmdecay:0.1 fmsustain:1 ]", + "[ 5/6 → 1/1 | note:e fmi:4 fmdecay:0.1 fmsustain:1 ]", + "[ 1/1 → 7/6 | note:c fmi:4 fmdecay:0.1 fmsustain:0.75 ]", + "[ 7/6 → 4/3 | note:e fmi:4 fmdecay:0.1 fmsustain:0.75 ]", + "[ 4/3 → 3/2 | note:g fmi:4 fmdecay:0.1 fmsustain:0.75 ]", + "[ 3/2 → 5/3 | note:b fmi:4 fmdecay:0.1 fmsustain:0.75 ]", + "[ 5/3 → 11/6 | note:g fmi:4 fmdecay:0.1 fmsustain:0.75 ]", + "[ 11/6 → 2/1 | note:e fmi:4 fmdecay:0.1 fmsustain:0.75 ]", + "[ 2/1 → 13/6 | note:c fmi:4 fmdecay:0.1 fmsustain:0.5 ]", + "[ 13/6 → 7/3 | note:e fmi:4 fmdecay:0.1 fmsustain:0.5 ]", + "[ 7/3 → 5/2 | note:g fmi:4 fmdecay:0.1 fmsustain:0.5 ]", + "[ 5/2 → 8/3 | note:b fmi:4 fmdecay:0.1 fmsustain:0.5 ]", + "[ 8/3 → 17/6 | note:g fmi:4 fmdecay:0.1 fmsustain:0.5 ]", + "[ 17/6 → 3/1 | note:e fmi:4 fmdecay:0.1 fmsustain:0.5 ]", + "[ 3/1 → 19/6 | note:c fmi:4 fmdecay:0.1 fmsustain:0 ]", + "[ 19/6 → 10/3 | note:e fmi:4 fmdecay:0.1 fmsustain:0 ]", + "[ 10/3 → 7/2 | note:g fmi:4 fmdecay:0.1 fmsustain:0 ]", + "[ 7/2 → 11/3 | note:b fmi:4 fmdecay:0.1 fmsustain:0 ]", + "[ 11/3 → 23/6 | note:g fmi:4 fmdecay:0.1 fmsustain:0 ]", + "[ 23/6 → 4/1 | note:e fmi:4 fmdecay:0.1 fmsustain:0 ]", ] `; @@ -3102,22 +4025,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 ]", ] `; @@ -3192,6 +4192,154 @@ exports[`runs examples > example "gain" example index 0 1`] = ` exports[`runs examples > example "gap" example index 0 1`] = `[]`; +exports[`runs examples > example "grow" example index 0 1`] = ` +[ + "[ 0/1 → 1/10 | s:tha bank:mridangam ]", + "[ 1/10 → 1/5 | s:tha bank:mridangam ]", + "[ 1/5 → 3/10 | s:dhi bank:mridangam ]", + "[ 3/10 → 2/5 | s:tha bank:mridangam ]", + "[ 2/5 → 1/2 | s:dhi bank:mridangam ]", + "[ 1/2 → 3/5 | s:thom bank:mridangam ]", + "[ 3/5 → 7/10 | s:tha bank:mridangam ]", + "[ 7/10 → 4/5 | s:dhi bank:mridangam ]", + "[ 4/5 → 9/10 | s:thom bank:mridangam ]", + "[ 9/10 → 1/1 | s:nam bank:mridangam ]", + "[ 1/1 → 11/10 | s:tha bank:mridangam ]", + "[ 11/10 → 6/5 | s:tha bank:mridangam ]", + "[ 6/5 → 13/10 | s:dhi bank:mridangam ]", + "[ 13/10 → 7/5 | s:tha bank:mridangam ]", + "[ 7/5 → 3/2 | s:dhi bank:mridangam ]", + "[ 3/2 → 8/5 | s:thom bank:mridangam ]", + "[ 8/5 → 17/10 | s:tha bank:mridangam ]", + "[ 17/10 → 9/5 | s:dhi bank:mridangam ]", + "[ 9/5 → 19/10 | s:thom bank:mridangam ]", + "[ 19/10 → 2/1 | s:nam bank:mridangam ]", + "[ 2/1 → 21/10 | s:tha bank:mridangam ]", + "[ 21/10 → 11/5 | s:tha bank:mridangam ]", + "[ 11/5 → 23/10 | s:dhi bank:mridangam ]", + "[ 23/10 → 12/5 | s:tha bank:mridangam ]", + "[ 12/5 → 5/2 | s:dhi bank:mridangam ]", + "[ 5/2 → 13/5 | s:thom bank:mridangam ]", + "[ 13/5 → 27/10 | s:tha bank:mridangam ]", + "[ 27/10 → 14/5 | s:dhi bank:mridangam ]", + "[ 14/5 → 29/10 | s:thom bank:mridangam ]", + "[ 29/10 → 3/1 | s:nam bank:mridangam ]", + "[ 3/1 → 31/10 | s:tha bank:mridangam ]", + "[ 31/10 → 16/5 | s:tha bank:mridangam ]", + "[ 16/5 → 33/10 | s:dhi bank:mridangam ]", + "[ 33/10 → 17/5 | s:tha bank:mridangam ]", + "[ 17/5 → 7/2 | s:dhi bank:mridangam ]", + "[ 7/2 → 18/5 | s:thom bank:mridangam ]", + "[ 18/5 → 37/10 | s:tha bank:mridangam ]", + "[ 37/10 → 19/5 | s:dhi bank:mridangam ]", + "[ 19/5 → 39/10 | s:thom bank:mridangam ]", + "[ 39/10 → 4/1 | s:nam bank:mridangam ]", +] +`; + +exports[`runs examples > example "grow" example index 1 1`] = ` +[ + "[ 0/1 → 1/10 | s:nam bank:mridangam ]", + "[ 1/10 → 1/5 | s:thom bank:mridangam ]", + "[ 1/5 → 3/10 | s:nam bank:mridangam ]", + "[ 3/10 → 2/5 | s:dhi bank:mridangam ]", + "[ 2/5 → 1/2 | s:thom bank:mridangam ]", + "[ 1/2 → 3/5 | s:nam bank:mridangam ]", + "[ 3/5 → 7/10 | s:tha bank:mridangam ]", + "[ 7/10 → 4/5 | s:dhi bank:mridangam ]", + "[ 4/5 → 9/10 | s:thom bank:mridangam ]", + "[ 9/10 → 1/1 | s:nam bank:mridangam ]", + "[ 1/1 → 11/10 | s:nam bank:mridangam ]", + "[ 11/10 → 6/5 | s:thom bank:mridangam ]", + "[ 6/5 → 13/10 | s:nam bank:mridangam ]", + "[ 13/10 → 7/5 | s:dhi bank:mridangam ]", + "[ 7/5 → 3/2 | s:thom bank:mridangam ]", + "[ 3/2 → 8/5 | s:nam bank:mridangam ]", + "[ 8/5 → 17/10 | s:tha bank:mridangam ]", + "[ 17/10 → 9/5 | s:dhi bank:mridangam ]", + "[ 9/5 → 19/10 | s:thom bank:mridangam ]", + "[ 19/10 → 2/1 | s:nam bank:mridangam ]", + "[ 2/1 → 21/10 | s:nam bank:mridangam ]", + "[ 21/10 → 11/5 | s:thom bank:mridangam ]", + "[ 11/5 → 23/10 | s:nam bank:mridangam ]", + "[ 23/10 → 12/5 | s:dhi bank:mridangam ]", + "[ 12/5 → 5/2 | s:thom bank:mridangam ]", + "[ 5/2 → 13/5 | s:nam bank:mridangam ]", + "[ 13/5 → 27/10 | s:tha bank:mridangam ]", + "[ 27/10 → 14/5 | s:dhi bank:mridangam ]", + "[ 14/5 → 29/10 | s:thom bank:mridangam ]", + "[ 29/10 → 3/1 | s:nam bank:mridangam ]", + "[ 3/1 → 31/10 | s:nam bank:mridangam ]", + "[ 31/10 → 16/5 | s:thom bank:mridangam ]", + "[ 16/5 → 33/10 | s:nam bank:mridangam ]", + "[ 33/10 → 17/5 | s:dhi bank:mridangam ]", + "[ 17/5 → 7/2 | s:thom bank:mridangam ]", + "[ 7/2 → 18/5 | s:nam bank:mridangam ]", + "[ 18/5 → 37/10 | s:tha bank:mridangam ]", + "[ 37/10 → 19/5 | s:dhi bank:mridangam ]", + "[ 19/5 → 39/10 | s:thom bank:mridangam ]", + "[ 39/10 → 4/1 | s:nam bank:mridangam ]", +] +`; + +exports[`runs examples > example "grow" example index 2 1`] = ` +[ + "[ 0/1 → 1/4 | s:tha bank:mridangam ]", + "[ 1/4 → 1/2 | s:tha bank:mridangam ]", + "[ 1/2 → 3/4 | s:dhi bank:mridangam ]", + "[ 3/4 → 1/1 | s:tha bank:mridangam ]", + "[ 1/1 → 5/4 | s:dhi bank:mridangam ]", + "[ 5/4 → 3/2 | s:thom bank:mridangam ]", + "[ 3/2 → 7/4 | s:tha bank:mridangam ]", + "[ 7/4 → 2/1 | s:dhi bank:mridangam ]", + "[ 2/1 → 9/4 | s:thom bank:mridangam ]", + "[ 9/4 → 5/2 | s:nam bank:mridangam ]", + "[ 5/2 → 11/4 | s:nam bank:mridangam ]", + "[ 11/4 → 3/1 | s:thom bank:mridangam ]", + "[ 3/1 → 13/4 | s:nam bank:mridangam ]", + "[ 13/4 → 7/2 | s:dhi bank:mridangam ]", + "[ 7/2 → 15/4 | s:thom bank:mridangam ]", + "[ 15/4 → 4/1 | s:nam bank:mridangam ]", +] +`; + +exports[`runs examples > example "grow" example index 3 1`] = ` +[ + "[ 0/1 → 1/8 | note:C3 s:folkharp ]", + "[ 1/8 → 1/4 | note:C3 s:folkharp ]", + "[ 1/4 → 3/8 | note:D3 s:folkharp ]", + "[ 3/8 → 1/2 | note:C3 s:folkharp ]", + "[ 1/2 → 5/8 | note:D3 s:folkharp ]", + "[ 5/8 → 3/4 | note:F3 s:folkharp ]", + "[ 3/4 → 7/8 | note:C3 s:folkharp ]", + "[ 7/8 → 1/1 | note:D3 s:folkharp ]", + "[ 1/1 → 9/8 | note:F3 s:folkharp ]", + "[ 9/8 → 5/4 | note:G3 s:folkharp ]", + "[ 5/4 → 11/8 | note:C3 s:folkharp ]", + "[ 11/8 → 3/2 | note:D3 s:folkharp ]", + "[ 3/2 → 13/8 | note:F3 s:folkharp ]", + "[ 13/8 → 7/4 | note:G3 s:folkharp ]", + "[ 7/4 → 15/8 | note:A3 s:folkharp ]", + "[ 15/8 → 2/1 | note:C3 s:folkharp ]", + "[ 2/1 → 17/8 | note:D3 s:folkharp ]", + "[ 17/8 → 9/4 | note:F3 s:folkharp ]", + "[ 9/4 → 19/8 | note:G3 s:folkharp ]", + "[ 19/8 → 5/2 | note:A3 s:folkharp ]", + "[ 5/2 → 21/8 | note:C4 s:folkharp ]", + "[ 21/8 → 11/4 | note:C3 s:folkharp ]", + "[ 11/4 → 23/8 | note:D3 s:folkharp ]", + "[ 23/8 → 3/1 | note:F3 s:folkharp ]", + "[ 3/1 → 25/8 | note:G3 s:folkharp ]", + "[ 25/8 → 13/4 | note:A3 s:folkharp ]", + "[ 13/4 → 27/8 | note:C4 s:folkharp ]", + "[ 27/8 → 7/2 | note:D4 s:folkharp ]", + "[ 7/2 → 29/8 | note:C3 s:folkharp ]", + "[ 29/8 → 15/4 | note:D3 s:folkharp ]", + "[ 15/4 → 31/8 | note:F3 s:folkharp ]", + "[ 31/8 → 4/1 | note:G3 s:folkharp ]", +] +`; + exports[`runs examples > example "hpattack" example index 0 1`] = ` [ "[ 0/1 → 1/4 | note:c2 s:sawtooth hcutoff:500 hpattack:0.5 hpenv:4 ]", @@ -3561,6 +4709,35 @@ exports[`runs examples > example "inside" example index 0 1`] = ` ] `; +exports[`runs examples > example "into" example index 0 1`] = ` +[ + "[ 0/1 → 1/8 | s:bd speed:2 ]", + "[ 1/8 → 1/4 | s:sd speed:2 ]", + "[ 1/4 → 3/8 | s:bd speed:2 ]", + "[ 3/8 → 1/2 | s:sd speed:2 ]", + "[ 1/2 → 3/4 | s:ht ]", + "[ 3/4 → 1/1 | s:lt ]", + "[ 1/1 → 9/8 | s:bd speed:2 ]", + "[ 9/8 → 5/4 | s:sd speed:2 ]", + "[ 5/4 → 11/8 | s:bd speed:2 ]", + "[ 11/8 → 3/2 | s:sd speed:2 ]", + "[ 3/2 → 7/4 | s:ht ]", + "[ 7/4 → 2/1 | s:lt ]", + "[ 2/1 → 17/8 | s:bd speed:2 ]", + "[ 17/8 → 9/4 | s:sd speed:2 ]", + "[ 9/4 → 19/8 | s:bd speed:2 ]", + "[ 19/8 → 5/2 | s:sd speed:2 ]", + "[ 5/2 → 11/4 | s:ht ]", + "[ 11/4 → 3/1 | s:lt ]", + "[ 3/1 → 25/8 | s:bd speed:2 ]", + "[ 25/8 → 13/4 | s:sd speed:2 ]", + "[ 13/4 → 27/8 | s:bd speed:2 ]", + "[ 27/8 → 7/2 | s:sd speed:2 ]", + "[ 7/2 → 15/4 | s:ht ]", + "[ 15/4 → 4/1 | s:lt ]", +] +`; + exports[`runs examples > example "invert" example index 0 1`] = ` [ "[ 0/1 → 1/8 | s:bd ]", @@ -3582,34 +4759,34 @@ exports[`runs examples > example "invert" example index 0 1`] = ` exports[`runs examples > example "irand" example index 0 1`] = ` [ - "[ 0/1 → 1/4 | note:Ab3 ]", - "[ 1/4 → 3/8 | note:G3 ]", - "[ 3/8 → 1/2 | note:Eb3 ]", - "[ 1/2 → 3/4 | note:D3 ]", - "[ 3/4 → 5/6 | note:Ab3 ]", - "[ 5/6 → 11/12 | note:F3 ]", - "[ 11/12 → 1/1 | note:Ab3 ]", - "[ 1/1 → 5/4 | note:Ab3 ]", - "[ 5/4 → 11/8 | note:C3 ]", - "[ 11/8 → 3/2 | note:G3 ]", - "[ 3/2 → 7/4 | note:F3 ]", - "[ 7/4 → 11/6 | note:Ab3 ]", - "[ 11/6 → 23/12 | note:G3 ]", - "[ 23/12 → 2/1 | note:F3 ]", + "[ 0/1 → 1/4 | note:C3 ]", + "[ 1/4 → 3/8 | note:Eb3 ]", + "[ 3/8 → 1/2 | note:F3 ]", + "[ 1/2 → 3/4 | note:Eb3 ]", + "[ 3/4 → 5/6 | note:D3 ]", + "[ 5/6 → 11/12 | note:C3 ]", + "[ 11/12 → 1/1 | note:C4 ]", + "[ 1/1 → 5/4 | note:G3 ]", + "[ 5/4 → 11/8 | note:Ab3 ]", + "[ 11/8 → 3/2 | note:D3 ]", + "[ 3/2 → 7/4 | note:G3 ]", + "[ 7/4 → 11/6 | note:D3 ]", + "[ 11/6 → 23/12 | note:Bb3 ]", + "[ 23/12 → 2/1 | note:Eb3 ]", "[ 2/1 → 9/4 | note:C4 ]", - "[ 9/4 → 19/8 | note:Ab3 ]", - "[ 19/8 → 5/2 | note:D3 ]", - "[ 5/2 → 11/4 | note:D3 ]", - "[ 11/4 → 17/6 | note:C3 ]", - "[ 17/6 → 35/12 | note:C3 ]", - "[ 35/12 → 3/1 | note:G3 ]", - "[ 3/1 → 13/4 | note:Eb3 ]", - "[ 13/4 → 27/8 | note:Eb3 ]", - "[ 27/8 → 7/2 | note:Bb3 ]", - "[ 7/2 → 15/4 | note:C4 ]", - "[ 15/4 → 23/6 | note:D3 ]", + "[ 9/4 → 19/8 | note:Eb3 ]", + "[ 19/8 → 5/2 | note:Bb3 ]", + "[ 5/2 → 11/4 | note:F3 ]", + "[ 11/4 → 17/6 | note:Ab3 ]", + "[ 17/6 → 35/12 | note:D3 ]", + "[ 35/12 → 3/1 | note:F3 ]", + "[ 3/1 → 13/4 | note:D3 ]", + "[ 13/4 → 27/8 | note:C4 ]", + "[ 27/8 → 7/2 | note:F3 ]", + "[ 7/2 → 15/4 | note:F3 ]", + "[ 15/4 → 23/6 | note:Bb3 ]", "[ 23/6 → 47/12 | note:Ab3 ]", - "[ 47/12 → 4/1 | note:Eb3 ]", + "[ 47/12 → 4/1 | note:C3 ]", ] `; @@ -3634,6 +4811,96 @@ exports[`runs examples > example "iresponse" example index 0 1`] = ` ] `; +exports[`runs examples > example "isaw" example index 0 1`] = ` +[ + "[ 0/1 → 1/8 | note:c3 clip:1 ]", + "[ 1/8 → 1/4 | note:eb3 clip:0.9375 ]", + "[ 1/8 → 1/4 | note:g3 clip:0.9375 ]", + "[ 1/4 → 3/8 | note:g2 clip:0.875 ]", + "[ 3/8 → 1/2 | note:g3 clip:0.8125 ]", + "[ 3/8 → 1/2 | note:bb3 clip:0.8125 ]", + "[ 1/2 → 5/8 | note:c3 clip:0.75 ]", + "[ 5/8 → 3/4 | note:eb3 clip:0.6875 ]", + "[ 5/8 → 3/4 | note:g3 clip:0.6875 ]", + "[ 3/4 → 7/8 | note:g2 clip:0.625 ]", + "[ 7/8 → 1/1 | note:g3 clip:0.5625 ]", + "[ 7/8 → 1/1 | note:bb3 clip:0.5625 ]", + "[ 1/1 → 9/8 | note:c3 clip:0.5 ]", + "[ 9/8 → 5/4 | note:eb3 clip:0.4375 ]", + "[ 9/8 → 5/4 | note:g3 clip:0.4375 ]", + "[ 5/4 → 11/8 | note:g2 clip:0.375 ]", + "[ 11/8 → 3/2 | note:g3 clip:0.3125 ]", + "[ 11/8 → 3/2 | note:bb3 clip:0.3125 ]", + "[ 3/2 → 13/8 | note:c3 clip:0.25 ]", + "[ 13/8 → 7/4 | note:eb3 clip:0.1875 ]", + "[ 13/8 → 7/4 | note:g3 clip:0.1875 ]", + "[ 7/4 → 15/8 | note:g2 clip:0.125 ]", + "[ 15/8 → 2/1 | note:g3 clip:0.0625 ]", + "[ 15/8 → 2/1 | note:bb3 clip:0.0625 ]", + "[ 2/1 → 17/8 | note:c3 clip:1 ]", + "[ 17/8 → 9/4 | note:eb3 clip:0.9375 ]", + "[ 17/8 → 9/4 | note:g3 clip:0.9375 ]", + "[ 9/4 → 19/8 | note:g2 clip:0.875 ]", + "[ 19/8 → 5/2 | note:g3 clip:0.8125 ]", + "[ 19/8 → 5/2 | note:bb3 clip:0.8125 ]", + "[ 5/2 → 21/8 | note:c3 clip:0.75 ]", + "[ 21/8 → 11/4 | note:eb3 clip:0.6875 ]", + "[ 21/8 → 11/4 | note:g3 clip:0.6875 ]", + "[ 11/4 → 23/8 | note:g2 clip:0.625 ]", + "[ 23/8 → 3/1 | note:g3 clip:0.5625 ]", + "[ 23/8 → 3/1 | note:bb3 clip:0.5625 ]", + "[ 3/1 → 25/8 | note:c3 clip:0.5 ]", + "[ 25/8 → 13/4 | note:eb3 clip:0.4375 ]", + "[ 25/8 → 13/4 | note:g3 clip:0.4375 ]", + "[ 13/4 → 27/8 | note:g2 clip:0.375 ]", + "[ 27/8 → 7/2 | note:g3 clip:0.3125 ]", + "[ 27/8 → 7/2 | note:bb3 clip:0.3125 ]", + "[ 7/2 → 29/8 | note:c3 clip:0.25 ]", + "[ 29/8 → 15/4 | note:eb3 clip:0.1875 ]", + "[ 29/8 → 15/4 | note:g3 clip:0.1875 ]", + "[ 15/4 → 31/8 | note:g2 clip:0.125 ]", + "[ 31/8 → 4/1 | note:g3 clip:0.0625 ]", + "[ 31/8 → 4/1 | note:bb3 clip:0.0625 ]", +] +`; + +exports[`runs examples > example "isaw" example index 1 1`] = ` +[ + "[ 0/1 → 1/8 | note:D4 ]", + "[ 1/8 → 1/4 | note:C4 ]", + "[ 1/4 → 3/8 | note:B3 ]", + "[ 3/8 → 1/2 | note:A3 ]", + "[ 1/2 → 5/8 | note:G3 ]", + "[ 5/8 → 3/4 | note:F3 ]", + "[ 3/4 → 7/8 | note:E3 ]", + "[ 7/8 → 1/1 | note:D3 ]", + "[ 1/1 → 9/8 | note:D4 ]", + "[ 9/8 → 5/4 | note:C4 ]", + "[ 5/4 → 11/8 | note:B3 ]", + "[ 11/8 → 3/2 | note:A3 ]", + "[ 3/2 → 13/8 | note:G3 ]", + "[ 13/8 → 7/4 | note:F3 ]", + "[ 7/4 → 15/8 | note:E3 ]", + "[ 15/8 → 2/1 | note:D3 ]", + "[ 2/1 → 17/8 | note:D4 ]", + "[ 17/8 → 9/4 | note:C4 ]", + "[ 9/4 → 19/8 | note:B3 ]", + "[ 19/8 → 5/2 | note:A3 ]", + "[ 5/2 → 21/8 | note:G3 ]", + "[ 21/8 → 11/4 | note:F3 ]", + "[ 11/4 → 23/8 | note:E3 ]", + "[ 23/8 → 3/1 | note:D3 ]", + "[ 3/1 → 25/8 | note:D4 ]", + "[ 25/8 → 13/4 | note:C4 ]", + "[ 13/4 → 27/8 | note:B3 ]", + "[ 27/8 → 7/2 | note:A3 ]", + "[ 7/2 → 29/8 | note:G3 ]", + "[ 29/8 → 15/4 | note:F3 ]", + "[ 15/4 → 31/8 | note:E3 ]", + "[ 31/8 → 4/1 | note:D3 ]", +] +`; + exports[`runs examples > example "iter" example index 0 1`] = ` [ "[ 0/1 → 1/4 | note:A3 ]", @@ -3676,6 +4943,43 @@ exports[`runs examples > example "iterBack" example index 0 1`] = ` ] `; +exports[`runs examples > example "itri" example index 0 1`] = ` +[ + "[ 0/1 → 1/8 | note:C4 ]", + "[ 1/8 → 1/4 | note:Bb3 ]", + "[ 1/4 → 3/8 | note:G3 ]", + "[ 3/8 → 1/2 | note:Eb3 ]", + "[ 1/2 → 5/8 | note:C3 ]", + "[ 5/8 → 3/4 | note:Eb3 ]", + "[ 3/4 → 7/8 | note:G3 ]", + "[ 7/8 → 1/1 | note:Bb3 ]", + "[ 1/1 → 9/8 | note:C4 ]", + "[ 9/8 → 5/4 | note:Bb3 ]", + "[ 5/4 → 11/8 | note:G3 ]", + "[ 11/8 → 3/2 | note:Eb3 ]", + "[ 3/2 → 13/8 | note:C3 ]", + "[ 13/8 → 7/4 | note:Eb3 ]", + "[ 7/4 → 15/8 | note:G3 ]", + "[ 15/8 → 2/1 | note:Bb3 ]", + "[ 2/1 → 17/8 | note:C4 ]", + "[ 17/8 → 9/4 | note:Bb3 ]", + "[ 9/4 → 19/8 | note:G3 ]", + "[ 19/8 → 5/2 | note:Eb3 ]", + "[ 5/2 → 21/8 | note:C3 ]", + "[ 21/8 → 11/4 | note:Eb3 ]", + "[ 11/4 → 23/8 | note:G3 ]", + "[ 23/8 → 3/1 | note:Bb3 ]", + "[ 3/1 → 25/8 | note:C4 ]", + "[ 25/8 → 13/4 | note:Bb3 ]", + "[ 13/4 → 27/8 | note:G3 ]", + "[ 27/8 → 7/2 | note:Eb3 ]", + "[ 7/2 → 29/8 | note:C3 ]", + "[ 29/8 → 15/4 | note:Eb3 ]", + "[ 15/4 → 31/8 | note:G3 ]", + "[ 31/8 → 4/1 | note:Bb3 ]", +] +`; + exports[`runs examples > example "jux" example index 0 1`] = ` [ "[ 0/1 → 1/8 | s:bd pan:0 ]", @@ -3920,6 +5224,8 @@ exports[`runs examples > example "juxBy" example index 0 1`] = ` ] `; +exports[`runs examples > example "keyDown" example index 0 1`] = `[]`; + exports[`runs examples > example "lastOf" example index 0 1`] = ` [ "[ 0/1 → 1/4 | note:c3 ]", @@ -4057,6 +5363,15 @@ exports[`runs examples > example "linger" example index 0 1`] = ` ] `; +exports[`runs examples > example "lock" example index 0 1`] = ` +[ + "[ 0/1 → 1/1 | delay:{s:sd} lock:1 ]", + "[ 1/1 → 2/1 | delay:{s:sd} lock:1 ]", + "[ 2/1 → 3/1 | delay:{s:sd} lock:1 ]", + "[ 3/1 → 4/1 | delay:{s:sd} lock:1 ]", +] +`; + exports[`runs examples > example "loop" example index 0 1`] = ` [ "[ 0/1 → 1/1 | s:casio loop:1 ]", @@ -4084,82 +5399,82 @@ exports[`runs examples > example "loopAtCps" example index 0 1`] = ` exports[`runs examples > example "loopBegin" example index 0 1`] = ` [ - "[ 0/1 → 1/1 | s:space loop:1 loopBegin:0 analyze:1 ]", - "[ 1/1 → 2/1 | s:space loop:1 loopBegin:0.125 analyze:1 ]", - "[ 2/1 → 3/1 | s:space loop:1 loopBegin:0.25 analyze:1 ]", - "[ 3/1 → 4/1 | s:space loop:1 loopBegin:0 analyze:1 ]", + "[ 0/1 → 1/1 | s:space loop:1 loopBegin:0 ]", + "[ 1/1 → 2/1 | s:space loop:1 loopBegin:0.125 ]", + "[ 2/1 → 3/1 | s:space loop:1 loopBegin:0.25 ]", + "[ 3/1 → 4/1 | s:space loop:1 loopBegin:0 ]", ] `; exports[`runs examples > example "loopEnd" example index 0 1`] = ` [ - "[ 0/1 → 1/1 | s:space loop:1 loopEnd:1 analyze:1 ]", - "[ 1/1 → 2/1 | s:space loop:1 loopEnd:0.75 analyze:1 ]", - "[ 2/1 → 3/1 | s:space loop:1 loopEnd:0.5 analyze:1 ]", - "[ 3/1 → 4/1 | s:space loop:1 loopEnd:0.25 analyze:1 ]", + "[ 0/1 → 1/1 | s:space loop:1 loopEnd:1 ]", + "[ 1/1 → 2/1 | s:space loop:1 loopEnd:0.75 ]", + "[ 2/1 → 3/1 | s:space loop:1 loopEnd:0.5 ]", + "[ 3/1 → 4/1 | s:space loop:1 loopEnd:0.25 ]", ] `; 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 ]", ] `; @@ -4332,43 +5647,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 ]", ] `; @@ -4406,6 +5721,27 @@ exports[`runs examples > example "lsize" example index 0 1`] = ` ] `; +exports[`runs examples > example "markcss" example index 0 1`] = ` +[ + "[ 0/1 → 1/4 | note:c ]", + "[ 1/4 → 1/2 | note:a ]", + "[ 1/2 → 3/4 | note:f ]", + "[ 3/4 → 1/1 | note:e ]", + "[ 1/1 → 5/4 | note:c ]", + "[ 5/4 → 3/2 | note:a ]", + "[ 3/2 → 7/4 | note:f ]", + "[ 7/4 → 2/1 | note:e ]", + "[ 2/1 → 9/4 | note:c ]", + "[ 9/4 → 5/2 | note:a ]", + "[ 5/2 → 11/4 | note:f ]", + "[ 11/4 → 3/1 | note:e ]", + "[ 3/1 → 13/4 | note:c ]", + "[ 13/4 → 7/2 | note:a ]", + "[ 7/2 → 15/4 | note:f ]", + "[ 15/4 → 4/1 | note:e ]", +] +`; + exports[`runs examples > example "mask" example index 0 1`] = ` [ "[ 0/1 → 1/4 | note:c ]", @@ -4429,6 +5765,334 @@ exports[`runs examples > example "mask" example index 0 1`] = ` ] `; +exports[`runs examples > example "midi" example index 0 1`] = ` +[ + "[ 0/1 → 1/1 | note:c4 midichan:1 ]", + "[ 1/1 → 2/1 | note:c4 midichan:1 ]", + "[ 2/1 → 3/1 | note:c4 midichan:1 ]", + "[ 3/1 → 4/1 | note:c4 midichan:1 ]", +] +`; + +exports[`runs examples > example "midi" example index 1 1`] = ` +[ + "[ 0/1 → 1/1 | note:c4 midichan:1 ]", + "[ 1/1 → 2/1 | note:c4 midichan:1 ]", + "[ 2/1 → 3/1 | note:c4 midichan:1 ]", + "[ 3/1 → 4/1 | note:c4 midichan:1 ]", +] +`; + +exports[`runs examples > example "midibend" example index 0 1`] = ` +[ + "[ 0/1 → 1/1 | note:c4 midibend:0 ]", + "[ 1/1 → 2/1 | note:c4 midibend:0.4 ]", + "[ 2/1 → 3/1 | note:c4 midibend:1.1102230246251565e-16 ]", + "[ 3/1 → 4/1 | note:c4 midibend:-0.4 ]", +] +`; + +exports[`runs examples > example "midichan" example index 0 1`] = ` +[ + "[ 0/1 → 1/1 | note:c4 midichan:1 ]", + "[ 1/1 → 2/1 | note:c4 midichan:1 ]", + "[ 2/1 → 3/1 | note:c4 midichan:1 ]", + "[ 3/1 → 4/1 | note:c4 midichan:1 ]", +] +`; + +exports[`runs examples > example "midicmd" example index 0 1`] = ` +[ + "[ 0/1 → 1/48 | midicmd:clock ]", + "[ 0/1 → 2/1 | midicmd:start ]", + "[ 1/48 → 1/24 | midicmd:clock ]", + "[ 1/24 → 1/16 | midicmd:clock ]", + "[ 1/16 → 1/12 | midicmd:clock ]", + "[ 1/12 → 5/48 | midicmd:clock ]", + "[ 5/48 → 1/8 | midicmd:clock ]", + "[ 1/8 → 7/48 | midicmd:clock ]", + "[ 7/48 → 1/6 | midicmd:clock ]", + "[ 1/6 → 3/16 | midicmd:clock ]", + "[ 3/16 → 5/24 | midicmd:clock ]", + "[ 5/24 → 11/48 | midicmd:clock ]", + "[ 11/48 → 1/4 | midicmd:clock ]", + "[ 1/4 → 13/48 | midicmd:clock ]", + "[ 13/48 → 7/24 | midicmd:clock ]", + "[ 7/24 → 5/16 | midicmd:clock ]", + "[ 5/16 → 1/3 | midicmd:clock ]", + "[ 1/3 → 17/48 | midicmd:clock ]", + "[ 17/48 → 3/8 | midicmd:clock ]", + "[ 3/8 → 19/48 | midicmd:clock ]", + "[ 19/48 → 5/12 | midicmd:clock ]", + "[ 5/12 → 7/16 | midicmd:clock ]", + "[ 7/16 → 11/24 | midicmd:clock ]", + "[ 11/24 → 23/48 | midicmd:clock ]", + "[ 23/48 → 1/2 | midicmd:clock ]", + "[ 1/2 → 25/48 | midicmd:clock ]", + "[ 25/48 → 13/24 | midicmd:clock ]", + "[ 13/24 → 9/16 | midicmd:clock ]", + "[ 9/16 → 7/12 | midicmd:clock ]", + "[ 7/12 → 29/48 | midicmd:clock ]", + "[ 29/48 → 5/8 | midicmd:clock ]", + "[ 5/8 → 31/48 | midicmd:clock ]", + "[ 31/48 → 2/3 | midicmd:clock ]", + "[ 2/3 → 11/16 | midicmd:clock ]", + "[ 11/16 → 17/24 | midicmd:clock ]", + "[ 17/24 → 35/48 | midicmd:clock ]", + "[ 35/48 → 3/4 | midicmd:clock ]", + "[ 3/4 → 37/48 | midicmd:clock ]", + "[ 37/48 → 19/24 | midicmd:clock ]", + "[ 19/24 → 13/16 | midicmd:clock ]", + "[ 13/16 → 5/6 | midicmd:clock ]", + "[ 5/6 → 41/48 | midicmd:clock ]", + "[ 41/48 → 7/8 | midicmd:clock ]", + "[ 7/8 → 43/48 | midicmd:clock ]", + "[ 43/48 → 11/12 | midicmd:clock ]", + "[ 11/12 → 15/16 | midicmd:clock ]", + "[ 15/16 → 23/24 | midicmd:clock ]", + "[ 23/24 → 47/48 | midicmd:clock ]", + "[ 47/48 → 1/1 | midicmd:clock ]", + "[ 1/1 → 49/48 | midicmd:clock ]", + "[ 49/48 → 25/24 | midicmd:clock ]", + "[ 25/24 → 17/16 | midicmd:clock ]", + "[ 17/16 → 13/12 | midicmd:clock ]", + "[ 13/12 → 53/48 | midicmd:clock ]", + "[ 53/48 → 9/8 | midicmd:clock ]", + "[ 9/8 → 55/48 | midicmd:clock ]", + "[ 55/48 → 7/6 | midicmd:clock ]", + "[ 7/6 → 19/16 | midicmd:clock ]", + "[ 19/16 → 29/24 | midicmd:clock ]", + "[ 29/24 → 59/48 | midicmd:clock ]", + "[ 59/48 → 5/4 | midicmd:clock ]", + "[ 5/4 → 61/48 | midicmd:clock ]", + "[ 61/48 → 31/24 | midicmd:clock ]", + "[ 31/24 → 21/16 | midicmd:clock ]", + "[ 21/16 → 4/3 | midicmd:clock ]", + "[ 4/3 → 65/48 | midicmd:clock ]", + "[ 65/48 → 11/8 | midicmd:clock ]", + "[ 11/8 → 67/48 | midicmd:clock ]", + "[ 67/48 → 17/12 | midicmd:clock ]", + "[ 17/12 → 23/16 | midicmd:clock ]", + "[ 23/16 → 35/24 | midicmd:clock ]", + "[ 35/24 → 71/48 | midicmd:clock ]", + "[ 71/48 → 3/2 | midicmd:clock ]", + "[ 3/2 → 73/48 | midicmd:clock ]", + "[ 73/48 → 37/24 | midicmd:clock ]", + "[ 37/24 → 25/16 | midicmd:clock ]", + "[ 25/16 → 19/12 | midicmd:clock ]", + "[ 19/12 → 77/48 | midicmd:clock ]", + "[ 77/48 → 13/8 | midicmd:clock ]", + "[ 13/8 → 79/48 | midicmd:clock ]", + "[ 79/48 → 5/3 | midicmd:clock ]", + "[ 5/3 → 27/16 | midicmd:clock ]", + "[ 27/16 → 41/24 | midicmd:clock ]", + "[ 41/24 → 83/48 | midicmd:clock ]", + "[ 83/48 → 7/4 | midicmd:clock ]", + "[ 7/4 → 85/48 | midicmd:clock ]", + "[ 85/48 → 43/24 | midicmd:clock ]", + "[ 43/24 → 29/16 | midicmd:clock ]", + "[ 29/16 → 11/6 | midicmd:clock ]", + "[ 11/6 → 89/48 | midicmd:clock ]", + "[ 89/48 → 15/8 | midicmd:clock ]", + "[ 15/8 → 91/48 | midicmd:clock ]", + "[ 91/48 → 23/12 | midicmd:clock ]", + "[ 23/12 → 31/16 | midicmd:clock ]", + "[ 31/16 → 47/24 | midicmd:clock ]", + "[ 47/24 → 95/48 | midicmd:clock ]", + "[ 95/48 → 2/1 | midicmd:clock ]", + "[ 2/1 → 97/48 | midicmd:clock ]", + "[ 2/1 → 4/1 | midicmd:stop ]", + "[ 97/48 → 49/24 | midicmd:clock ]", + "[ 49/24 → 33/16 | midicmd:clock ]", + "[ 33/16 → 25/12 | midicmd:clock ]", + "[ 25/12 → 101/48 | midicmd:clock ]", + "[ 101/48 → 17/8 | midicmd:clock ]", + "[ 17/8 → 103/48 | midicmd:clock ]", + "[ 103/48 → 13/6 | midicmd:clock ]", + "[ 13/6 → 35/16 | midicmd:clock ]", + "[ 35/16 → 53/24 | midicmd:clock ]", + "[ 53/24 → 107/48 | midicmd:clock ]", + "[ 107/48 → 9/4 | midicmd:clock ]", + "[ 9/4 → 109/48 | midicmd:clock ]", + "[ 109/48 → 55/24 | midicmd:clock ]", + "[ 55/24 → 37/16 | midicmd:clock ]", + "[ 37/16 → 7/3 | midicmd:clock ]", + "[ 7/3 → 113/48 | midicmd:clock ]", + "[ 113/48 → 19/8 | midicmd:clock ]", + "[ 19/8 → 115/48 | midicmd:clock ]", + "[ 115/48 → 29/12 | midicmd:clock ]", + "[ 29/12 → 39/16 | midicmd:clock ]", + "[ 39/16 → 59/24 | midicmd:clock ]", + "[ 59/24 → 119/48 | midicmd:clock ]", + "[ 119/48 → 5/2 | midicmd:clock ]", + "[ 5/2 → 121/48 | midicmd:clock ]", + "[ 121/48 → 61/24 | midicmd:clock ]", + "[ 61/24 → 41/16 | midicmd:clock ]", + "[ 41/16 → 31/12 | midicmd:clock ]", + "[ 31/12 → 125/48 | midicmd:clock ]", + "[ 125/48 → 21/8 | midicmd:clock ]", + "[ 21/8 → 127/48 | midicmd:clock ]", + "[ 127/48 → 8/3 | midicmd:clock ]", + "[ 8/3 → 43/16 | midicmd:clock ]", + "[ 43/16 → 65/24 | midicmd:clock ]", + "[ 65/24 → 131/48 | midicmd:clock ]", + "[ 131/48 → 11/4 | midicmd:clock ]", + "[ 11/4 → 133/48 | midicmd:clock ]", + "[ 133/48 → 67/24 | midicmd:clock ]", + "[ 67/24 → 45/16 | midicmd:clock ]", + "[ 45/16 → 17/6 | midicmd:clock ]", + "[ 17/6 → 137/48 | midicmd:clock ]", + "[ 137/48 → 23/8 | midicmd:clock ]", + "[ 23/8 → 139/48 | midicmd:clock ]", + "[ 139/48 → 35/12 | midicmd:clock ]", + "[ 35/12 → 47/16 | midicmd:clock ]", + "[ 47/16 → 71/24 | midicmd:clock ]", + "[ 71/24 → 143/48 | midicmd:clock ]", + "[ 143/48 → 3/1 | midicmd:clock ]", + "[ 3/1 → 145/48 | midicmd:clock ]", + "[ 145/48 → 73/24 | midicmd:clock ]", + "[ 73/24 → 49/16 | midicmd:clock ]", + "[ 49/16 → 37/12 | midicmd:clock ]", + "[ 37/12 → 149/48 | midicmd:clock ]", + "[ 149/48 → 25/8 | midicmd:clock ]", + "[ 25/8 → 151/48 | midicmd:clock ]", + "[ 151/48 → 19/6 | midicmd:clock ]", + "[ 19/6 → 51/16 | midicmd:clock ]", + "[ 51/16 → 77/24 | midicmd:clock ]", + "[ 77/24 → 155/48 | midicmd:clock ]", + "[ 155/48 → 13/4 | midicmd:clock ]", + "[ 13/4 → 157/48 | midicmd:clock ]", + "[ 157/48 → 79/24 | midicmd:clock ]", + "[ 79/24 → 53/16 | midicmd:clock ]", + "[ 53/16 → 10/3 | midicmd:clock ]", + "[ 10/3 → 161/48 | midicmd:clock ]", + "[ 161/48 → 27/8 | midicmd:clock ]", + "[ 27/8 → 163/48 | midicmd:clock ]", + "[ 163/48 → 41/12 | midicmd:clock ]", + "[ 41/12 → 55/16 | midicmd:clock ]", + "[ 55/16 → 83/24 | midicmd:clock ]", + "[ 83/24 → 167/48 | midicmd:clock ]", + "[ 167/48 → 7/2 | midicmd:clock ]", + "[ 7/2 → 169/48 | midicmd:clock ]", + "[ 169/48 → 85/24 | midicmd:clock ]", + "[ 85/24 → 57/16 | midicmd:clock ]", + "[ 57/16 → 43/12 | midicmd:clock ]", + "[ 43/12 → 173/48 | midicmd:clock ]", + "[ 173/48 → 29/8 | midicmd:clock ]", + "[ 29/8 → 175/48 | midicmd:clock ]", + "[ 175/48 → 11/3 | midicmd:clock ]", + "[ 11/3 → 59/16 | midicmd:clock ]", + "[ 59/16 → 89/24 | midicmd:clock ]", + "[ 89/24 → 179/48 | midicmd:clock ]", + "[ 179/48 → 15/4 | midicmd:clock ]", + "[ 15/4 → 181/48 | midicmd:clock ]", + "[ 181/48 → 91/24 | midicmd:clock ]", + "[ 91/24 → 61/16 | midicmd:clock ]", + "[ 61/16 → 23/6 | midicmd:clock ]", + "[ 23/6 → 185/48 | midicmd:clock ]", + "[ 185/48 → 31/8 | midicmd:clock ]", + "[ 31/8 → 187/48 | midicmd:clock ]", + "[ 187/48 → 47/12 | midicmd:clock ]", + "[ 47/12 → 63/16 | midicmd:clock ]", + "[ 63/16 → 95/24 | midicmd:clock ]", + "[ 95/24 → 191/48 | midicmd:clock ]", + "[ 191/48 → 4/1 | midicmd:clock ]", +] +`; + +exports[`runs examples > example "midin" example index 0 1`] = ` +[ + "[ 0/1 → 1/4 | note:c cutoff:0 resonance:0 s:sawtooth ]", + "[ 1/4 → 1/2 | note:a cutoff:0 resonance:0 s:sawtooth ]", + "[ 1/2 → 3/4 | note:f cutoff:0 resonance:0 s:sawtooth ]", + "[ 3/4 → 1/1 | note:e cutoff:0 resonance:0 s:sawtooth ]", + "[ 1/1 → 5/4 | note:c cutoff:0 resonance:0 s:sawtooth ]", + "[ 5/4 → 3/2 | note:a cutoff:0 resonance:0 s:sawtooth ]", + "[ 3/2 → 7/4 | note:f cutoff:0 resonance:0 s:sawtooth ]", + "[ 7/4 → 2/1 | note:e cutoff:0 resonance:0 s:sawtooth ]", + "[ 2/1 → 9/4 | note:c cutoff:0 resonance:0 s:sawtooth ]", + "[ 9/4 → 5/2 | note:a cutoff:0 resonance:0 s:sawtooth ]", + "[ 5/2 → 11/4 | note:f cutoff:0 resonance:0 s:sawtooth ]", + "[ 11/4 → 3/1 | note:e cutoff:0 resonance:0 s:sawtooth ]", + "[ 3/1 → 13/4 | note:c cutoff:0 resonance:0 s:sawtooth ]", + "[ 13/4 → 7/2 | note:a cutoff:0 resonance:0 s:sawtooth ]", + "[ 7/2 → 15/4 | note:f cutoff:0 resonance:0 s:sawtooth ]", + "[ 15/4 → 4/1 | note:e cutoff:0 resonance:0 s:sawtooth ]", +] +`; + +exports[`runs examples > example "midiport" example index 0 1`] = ` +[ + "[ 0/1 → 1/4 | note:c midiport:0 ]", + "[ 1/4 → 1/2 | note:a midiport:0 ]", + "[ 1/2 → 3/4 | note:f midiport:0 ]", + "[ 3/4 → 1/1 | note:e midiport:0 ]", + "[ 1/1 → 5/4 | note:c midiport:1 ]", + "[ 5/4 → 3/2 | note:a midiport:1 ]", + "[ 3/2 → 7/4 | note:f midiport:1 ]", + "[ 7/4 → 2/1 | note:e midiport:1 ]", + "[ 2/1 → 9/4 | note:c midiport:2 ]", + "[ 9/4 → 5/2 | note:a midiport:2 ]", + "[ 5/2 → 11/4 | note:f midiport:2 ]", + "[ 11/4 → 3/1 | note:e midiport:2 ]", + "[ 3/1 → 13/4 | note:c midiport:3 ]", + "[ 13/4 → 7/2 | note:a midiport:3 ]", + "[ 7/2 → 15/4 | note:f midiport:3 ]", + "[ 15/4 → 4/1 | note:e midiport:3 ]", +] +`; + +exports[`runs examples > example "miditouch" example index 0 1`] = ` +[ + "[ 0/1 → 1/1 | note:c4 miditouch:0.5 ]", + "[ 1/1 → 2/1 | note:c4 miditouch:1 ]", + "[ 2/1 → 3/1 | note:c4 miditouch:0.5000000000000001 ]", + "[ 3/1 → 4/1 | note:c4 miditouch:0 ]", +] +`; + +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 ]", @@ -4607,6 +6271,24 @@ exports[`runs examples > example "note" example index 2 1`] = ` ] `; +exports[`runs examples > example "nrpnn" example index 0 1`] = ` +[ + "[ 0/1 → 1/1 | note:c4 nrpnn:[1 8] nrpv:123 midichan:1 ]", + "[ 1/1 → 2/1 | note:c4 nrpnn:[1 8] nrpv:123 midichan:1 ]", + "[ 2/1 → 3/1 | note:c4 nrpnn:[1 8] nrpv:123 midichan:1 ]", + "[ 3/1 → 4/1 | note:c4 nrpnn:[1 8] nrpv:123 midichan:1 ]", +] +`; + +exports[`runs examples > example "nrpv" example index 0 1`] = ` +[ + "[ 0/1 → 1/1 | note:c4 nrpnn:[1 8] nrpv:123 midichan:1 ]", + "[ 1/1 → 2/1 | note:c4 nrpnn:[1 8] nrpv:123 midichan:1 ]", + "[ 2/1 → 3/1 | note:c4 nrpnn:[1 8] nrpv:123 midichan:1 ]", + "[ 3/1 → 4/1 | note:c4 nrpnn:[1 8] nrpv:123 midichan:1 ]", +] +`; + exports[`runs examples > example "octave" example index 0 1`] = ` [ "[ 0/1 → 1/1 | n:0 s:supersquare octave:3 ]", @@ -4659,13 +6341,13 @@ exports[`runs examples > example "off" example index 0 1`] = ` exports[`runs examples > example "often" example index 0 1`] = ` [ - "[ 0/1 → 1/8 | s:hh ]", + "[ 0/1 → 1/8 | s:hh speed:0.5 ]", "[ 1/8 → 1/4 | s:hh speed:0.5 ]", "[ 1/4 → 3/8 | s:hh speed:0.5 ]", "[ 3/8 → 1/2 | s:hh speed:0.5 ]", "[ 1/2 → 5/8 | s:hh speed:0.5 ]", "[ 5/8 → 3/4 | s:hh speed:0.5 ]", - "[ 3/4 → 7/8 | s:hh ]", + "[ 3/4 → 7/8 | s:hh speed:0.5 ]", "[ 7/8 → 1/1 | s:hh speed:0.5 ]", "[ 1/1 → 9/8 | s:hh speed:0.5 ]", "[ 9/8 → 5/4 | s:hh speed:0.5 ]", @@ -4674,26 +6356,63 @@ exports[`runs examples > example "often" example index 0 1`] = ` "[ 3/2 → 13/8 | s:hh speed:0.5 ]", "[ 13/8 → 7/4 | s:hh speed:0.5 ]", "[ 7/4 → 15/8 | s:hh speed:0.5 ]", - "[ 15/8 → 2/1 | s:hh ]", - "[ 2/1 → 17/8 | s:hh speed:0.5 ]", - "[ 17/8 → 9/4 | s:hh speed:0.5 ]", + "[ 15/8 → 2/1 | s:hh speed:0.5 ]", + "[ 2/1 → 17/8 | s:hh ]", + "[ 17/8 → 9/4 | s:hh ]", "[ 9/4 → 19/8 | s:hh speed:0.5 ]", - "[ 19/8 → 5/2 | s:hh speed:0.5 ]", + "[ 19/8 → 5/2 | s:hh ]", "[ 5/2 → 21/8 | s:hh speed:0.5 ]", "[ 21/8 → 11/4 | s:hh speed:0.5 ]", - "[ 11/4 → 23/8 | s:hh ]", + "[ 11/4 → 23/8 | s:hh speed:0.5 ]", "[ 23/8 → 3/1 | s:hh speed:0.5 ]", "[ 3/1 → 25/8 | s:hh speed:0.5 ]", - "[ 25/8 → 13/4 | s:hh ]", - "[ 13/4 → 27/8 | s:hh speed:0.5 ]", - "[ 27/8 → 7/2 | s:hh ]", - "[ 7/2 → 29/8 | s:hh ]", + "[ 25/8 → 13/4 | s:hh speed:0.5 ]", + "[ 13/4 → 27/8 | s:hh ]", + "[ 27/8 → 7/2 | s:hh speed:0.5 ]", + "[ 7/2 → 29/8 | s:hh speed:0.5 ]", "[ 29/8 → 15/4 | s:hh ]", - "[ 15/4 → 31/8 | s:hh speed:0.5 ]", + "[ 15/4 → 31/8 | s:hh ]", "[ 31/8 → 4/1 | s:hh speed:0.5 ]", ] `; +exports[`runs examples > example "onTriggerTime" example index 0 1`] = ` +[ + "[ 0/1 → 1/8 | s:bd ]", + "[ 1/8 → 1/4 | s:bd ]", + "[ 1/4 → 3/8 | s:bd ]", + "[ 3/8 → 1/2 | s:bd ]", + "[ 1/2 → 5/8 | s:bd ]", + "[ 5/8 → 3/4 | s:bd ]", + "[ 3/4 → 7/8 | s:bd ]", + "[ 7/8 → 1/1 | s:bd ]", + "[ 1/1 → 9/8 | s:bd ]", + "[ 9/8 → 5/4 | s:bd ]", + "[ 5/4 → 11/8 | s:bd ]", + "[ 11/8 → 3/2 | s:bd ]", + "[ 3/2 → 13/8 | s:bd ]", + "[ 13/8 → 7/4 | s:bd ]", + "[ 7/4 → 15/8 | s:bd ]", + "[ 15/8 → 2/1 | s:bd ]", + "[ 2/1 → 17/8 | s:bd ]", + "[ 17/8 → 9/4 | s:bd ]", + "[ 9/4 → 19/8 | s:bd ]", + "[ 19/8 → 5/2 | s:bd ]", + "[ 5/2 → 21/8 | s:bd ]", + "[ 21/8 → 11/4 | s:bd ]", + "[ 11/4 → 23/8 | s:bd ]", + "[ 23/8 → 3/1 | s:bd ]", + "[ 3/1 → 25/8 | s:bd ]", + "[ 25/8 → 13/4 | s:bd ]", + "[ 13/4 → 27/8 | s:bd ]", + "[ 27/8 → 7/2 | s:bd ]", + "[ 7/2 → 29/8 | s:bd ]", + "[ 29/8 → 15/4 | s:bd ]", + "[ 15/4 → 31/8 | s:bd ]", + "[ 31/8 → 4/1 | s:bd ]", +] +`; + exports[`runs examples > example "orbit" example index 0 1`] = ` [ "[ 0/1 → 1/6 | s:hh delay:0.5 delaytime:0.25 orbit:1 ]", @@ -4742,6 +6461,27 @@ exports[`runs examples > example "outside" example index 0 1`] = ` ] `; +exports[`runs examples > example "pace" 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 "palindrome" example index 0 1`] = ` [ "[ 0/1 → 1/4 | note:c ]", @@ -4786,34 +6526,34 @@ exports[`runs examples > example "pan" example index 0 1`] = ` exports[`runs examples > example "pan" example index 1 1`] = ` [ - "[ 0/1 → 1/8 | s:bd pan:0.5975451610080641 ]", - "[ 1/8 → 1/4 | s:rim pan:0.7777851165098011 ]", - "[ 1/4 → 3/8 | s:sd pan:0.9157348061512727 ]", - "[ 3/8 → 1/2 | s:rim pan:0.9903926402016152 ]", - "[ 1/2 → 5/8 | s:bd pan:0.9903926402016152 ]", - "[ 3/4 → 7/8 | s:cp pan:0.7777851165098011 ]", - "[ 7/8 → 1/1 | s:rim pan:0.5975451610080643 ]", - "[ 1/1 → 9/8 | s:bd pan:0.4024548389919358 ]", - "[ 9/8 → 5/4 | s:rim pan:0.22221488349019902 ]", - "[ 5/4 → 11/8 | s:sd pan:0.08426519384872738 ]", - "[ 11/8 → 3/2 | s:rim pan:0.00960735979838484 ]", - "[ 3/2 → 13/8 | s:bd pan:0.009607359798384785 ]", - "[ 7/4 → 15/8 | s:cp pan:0.2222148834901989 ]", - "[ 15/8 → 2/1 | s:rim pan:0.4024548389919356 ]", - "[ 2/1 → 17/8 | s:bd pan:0.5975451610080641 ]", - "[ 17/8 → 9/4 | s:rim pan:0.7777851165098009 ]", - "[ 9/4 → 19/8 | s:sd pan:0.9157348061512727 ]", - "[ 19/8 → 5/2 | s:rim pan:0.9903926402016152 ]", - "[ 5/2 → 21/8 | s:bd pan:0.9903926402016153 ]", - "[ 11/4 → 23/8 | s:cp pan:0.7777851165098011 ]", - "[ 23/8 → 3/1 | s:rim pan:0.597545161008064 ]", - "[ 3/1 → 25/8 | s:bd pan:0.40245483899193635 ]", - "[ 25/8 → 13/4 | s:rim pan:0.22221488349019913 ]", - "[ 13/4 → 27/8 | s:sd pan:0.08426519384872744 ]", - "[ 27/8 → 7/2 | s:rim pan:0.00960735979838473 ]", - "[ 7/2 → 29/8 | s:bd pan:0.009607359798384674 ]", - "[ 15/4 → 31/8 | s:cp pan:0.2222148834901988 ]", - "[ 31/8 → 4/1 | s:rim pan:0.40245483899193596 ]", + "[ 0/1 → 1/8 | s:bd pan:0.5 ]", + "[ 1/8 → 1/4 | s:rim pan:0.6913417161825449 ]", + "[ 1/4 → 3/8 | s:sd pan:0.8535533905932737 ]", + "[ 3/8 → 1/2 | s:rim pan:0.9619397662556434 ]", + "[ 1/2 → 5/8 | s:bd pan:1 ]", + "[ 3/4 → 7/8 | s:cp pan:0.8535533905932737 ]", + "[ 7/8 → 1/1 | s:rim pan:0.6913417161825449 ]", + "[ 1/1 → 9/8 | s:bd pan:0.5000000000000001 ]", + "[ 9/8 → 5/4 | s:rim pan:0.3086582838174552 ]", + "[ 5/4 → 11/8 | s:sd pan:0.14644660940672627 ]", + "[ 11/8 → 3/2 | s:rim pan:0.03806023374435674 ]", + "[ 3/2 → 13/8 | s:bd pan:0 ]", + "[ 7/4 → 15/8 | s:cp pan:0.14644660940672616 ]", + "[ 15/8 → 2/1 | s:rim pan:0.3086582838174548 ]", + "[ 2/1 → 17/8 | s:bd pan:0.4999999999999999 ]", + "[ 17/8 → 9/4 | s:rim pan:0.691341716182545 ]", + "[ 9/4 → 19/8 | s:sd pan:0.8535533905932737 ]", + "[ 19/8 → 5/2 | s:rim pan:0.9619397662556433 ]", + "[ 5/2 → 21/8 | s:bd pan:1 ]", + "[ 11/4 → 23/8 | s:cp pan:0.8535533905932742 ]", + "[ 23/8 → 3/1 | s:rim pan:0.6913417161825453 ]", + "[ 3/1 → 25/8 | s:bd pan:0.5000000000000002 ]", + "[ 25/8 → 13/4 | s:rim pan:0.3086582838174551 ]", + "[ 13/4 → 27/8 | s:sd pan:0.14644660940672605 ]", + "[ 27/8 → 7/2 | s:rim pan:0.0380602337443568 ]", + "[ 7/2 → 29/8 | s:bd pan:0 ]", + "[ 15/4 → 31/8 | s:cp pan:0.14644660940672577 ]", + "[ 31/8 → 4/1 | s:rim pan:0.3086582838174547 ]", ] `; @@ -4884,235 +6624,235 @@ exports[`runs examples > example "penv" example index 0 1`] = ` exports[`runs examples > example "perlin" example index 0 1`] = ` [ - "[ 0/1 → 1/8 | s:hh cutoff:508.6435442640109 ]", - "[ 0/1 → 1/4 | s:bd cutoff:562.5486401770559 ]", - "[ 1/8 → 1/4 | s:hh cutoff:690.0316279333581 ]", - "[ 1/4 → 3/8 | s:hh cutoff:1201.405408354283 ]", - "[ 1/4 → 1/2 | s:bd cutoff:1572.364329119182 ]", - "[ 3/8 → 1/2 | s:hh cutoff:1996.3885173346725 ]", - "[ 1/2 → 5/8 | s:hh cutoff:2900.177720919636 ]", - "[ 1/2 → 3/4 | s:bd cutoff:3324.2019091351267 ]", - "[ 5/8 → 3/4 | s:hh cutoff:3695.1608299000254 ]", - "[ 3/4 → 7/8 | s:hh cutoff:4206.53461032095 ]", - "[ 3/4 → 1/1 | s:bd cutoff:4334.017598077253 ]", - "[ 7/8 → 1/1 | s:hh cutoff:4387.922693990298 ]", - "[ 1/1 → 9/8 | s:hh cutoff:4403.886201269024 ]", - "[ 1/1 → 5/4 | s:bd cutoff:4449.536839055554 ]", - "[ 9/8 → 5/4 | s:hh cutoff:4557.49842597853 ]", - "[ 5/4 → 11/8 | s:hh cutoff:4990.565816512096 ]", - "[ 5/4 → 3/2 | s:bd cutoff:5304.71999875931 ]", - "[ 11/8 → 3/2 | s:hh cutoff:5663.813592807962 ]", - "[ 3/2 → 13/8 | s:hh cutoff:6429.206045402573 ]", - "[ 3/2 → 7/4 | s:bd cutoff:6788.299639451225 ]", - "[ 13/8 → 7/4 | s:hh cutoff:7102.453821698439 ]", - "[ 7/4 → 15/8 | s:hh cutoff:7535.521212232005 ]", - "[ 7/4 → 2/1 | s:bd cutoff:7643.482799154981 ]", - "[ 15/8 → 2/1 | s:hh cutoff:7689.133436941511 ]", - "[ 2/1 → 17/8 | s:hh cutoff:7684.104898681083 ]", - "[ 2/1 → 9/4 | s:bd cutoff:7607.093996059746 ]", - "[ 17/8 → 9/4 | s:hh cutoff:7424.966874501246 ]", - "[ 9/4 → 19/8 | s:hh cutoff:6694.398535088075 ]", - "[ 9/4 → 5/2 | s:bd cutoff:6164.432289046601 ]", - "[ 19/8 → 5/2 | s:hh cutoff:5558.654951771659 ]", - "[ 5/2 → 21/8 | s:hh cutoff:4267.466778026956 ]", - "[ 5/2 → 11/4 | s:bd cutoff:3661.6894407520135 ]", - "[ 21/8 → 11/4 | s:hh cutoff:3131.72319471054 ]", - "[ 11/4 → 23/8 | s:hh cutoff:2401.154855297369 ]", - "[ 11/4 → 3/1 | s:bd cutoff:2219.0277337388693 ]", - "[ 23/8 → 3/1 | s:hh cutoff:2142.016831117532 ]", - "[ 3/1 → 25/8 | s:hh cutoff:2127.4000061807656 ]", - "[ 3/1 → 13/4 | s:bd cutoff:2113.2537022102156 ]", - "[ 25/8 → 13/4 | s:hh cutoff:2079.7983662103743 ]", - "[ 13/4 → 27/8 | s:hh cutoff:1945.5986431995261 ]", - "[ 13/4 → 7/2 | s:bd cutoff:1848.2479648482126 ]", - "[ 27/8 → 7/2 | s:hh cutoff:1736.9713785485014 ]", - "[ 7/2 → 29/8 | s:hh cutoff:1499.7901513814345 ]", - "[ 7/2 → 15/4 | s:bd cutoff:1388.5135650817233 ]", - "[ 29/8 → 15/4 | s:hh cutoff:1291.1628867304098 ]", - "[ 15/4 → 31/8 | s:hh cutoff:1156.9631637195616 ]", - "[ 15/4 → 4/1 | s:bd cutoff:1123.5078277197204 ]", - "[ 31/8 → 4/1 | s:hh cutoff:1109.36152374917 ]", + "[ 0/1 → 1/8 | s:hh cutoff:500 ]", + "[ 0/1 → 1/4 | s:bd cutoff:500 ]", + "[ 1/8 → 1/4 | s:hh cutoff:562.5486401770559 ]", + "[ 1/4 → 3/8 | s:hh cutoff:903.3554895067937 ]", + "[ 1/4 → 1/2 | s:bd cutoff:903.3554895067937 ]", + "[ 3/8 → 1/2 | s:hh cutoff:1572.364329119182 ]", + "[ 1/2 → 5/8 | s:hh cutoff:2448.2831191271544 ]", + "[ 1/2 → 3/4 | s:bd cutoff:2448.2831191271544 ]", + "[ 5/8 → 3/4 | s:hh cutoff:3324.2019091351267 ]", + "[ 3/4 → 7/8 | s:hh cutoff:3993.210748747515 ]", + "[ 3/4 → 1/1 | s:bd cutoff:3993.210748747515 ]", + "[ 7/8 → 1/1 | s:hh cutoff:4334.017598077253 ]", + "[ 1/1 → 9/8 | s:hh cutoff:4396.566238254309 ]", + "[ 1/1 → 5/4 | s:bd cutoff:4396.566238254309 ]", + "[ 9/8 → 5/4 | s:hh cutoff:4449.536839055554 ]", + "[ 5/4 → 11/8 | s:hh cutoff:4738.156120227359 ]", + "[ 5/4 → 3/2 | s:bd cutoff:4738.156120227359 ]", + "[ 11/8 → 3/2 | s:hh cutoff:5304.71999875931 ]", + "[ 3/2 → 13/8 | s:hh cutoff:6046.5098191052675 ]", + "[ 3/2 → 7/4 | s:bd cutoff:6046.5098191052675 ]", + "[ 13/8 → 7/4 | s:hh cutoff:6788.299639451225 ]", + "[ 7/4 → 15/8 | s:hh cutoff:7354.863517983176 ]", + "[ 7/4 → 2/1 | s:bd cutoff:7354.863517983176 ]", + "[ 15/8 → 2/1 | s:hh cutoff:7643.482799154981 ]", + "[ 2/1 → 17/8 | s:hh cutoff:7696.453399956226 ]", + "[ 2/1 → 9/4 | s:bd cutoff:7696.453399956226 ]", + "[ 17/8 → 9/4 | s:hh cutoff:7607.093996059746 ]", + "[ 9/4 → 19/8 | s:hh cutoff:7120.204164182724 ]", + "[ 9/4 → 5/2 | s:bd cutoff:7120.204164182724 ]", + "[ 19/8 → 5/2 | s:hh cutoff:6164.432289046601 ]", + "[ 5/2 → 21/8 | s:hh cutoff:4913.0608648993075 ]", + "[ 5/2 → 11/4 | s:bd cutoff:4913.0608648993075 ]", + "[ 21/8 → 11/4 | s:hh cutoff:3661.6894407520135 ]", + "[ 11/4 → 23/8 | s:hh cutoff:2705.9175656158914 ]", + "[ 11/4 → 3/1 | s:bd cutoff:2705.9175656158914 ]", + "[ 23/8 → 3/1 | s:hh cutoff:2219.0277337388693 ]", + "[ 3/1 → 25/8 | s:hh cutoff:2129.6683298423886 ]", + "[ 3/1 → 13/4 | s:bd cutoff:2129.6683298423886 ]", + "[ 25/8 → 13/4 | s:hh cutoff:2113.2537022102156 ]", + "[ 13/4 → 27/8 | s:hh cutoff:2023.8158261763601 ]", + "[ 13/4 → 7/2 | s:bd cutoff:2023.8158261763601 ]", + "[ 27/8 → 7/2 | s:hh cutoff:1848.2479648482126 ]", + "[ 7/2 → 29/8 | s:hh cutoff:1618.380764964968 ]", + "[ 7/2 → 15/4 | s:bd cutoff:1618.380764964968 ]", + "[ 29/8 → 15/4 | s:hh cutoff:1388.5135650817233 ]", + "[ 15/4 → 31/8 | s:hh cutoff:1212.9457037535758 ]", + "[ 15/4 → 4/1 | s:bd cutoff:1212.9457037535758 ]", + "[ 31/8 → 4/1 | s:hh cutoff:1123.5078277197204 ]", ] `; exports[`runs examples > example "phaser" example index 0 1`] = ` [ - "[ 0/1 → 1/8 | note:D3 s:sawtooth release:0.5 phaser:1 ]", - "[ 1/8 → 1/4 | note:E3 s:sawtooth release:0.5 phaser:1 ]", - "[ 1/4 → 3/8 | note:F#3 s:sawtooth release:0.5 phaser:1 ]", - "[ 3/8 → 1/2 | note:A3 s:sawtooth release:0.5 phaser:1 ]", - "[ 1/2 → 5/8 | note:B3 s:sawtooth release:0.5 phaser:1 ]", - "[ 5/8 → 3/4 | note:D4 s:sawtooth release:0.5 phaser:1 ]", - "[ 3/4 → 7/8 | note:E4 s:sawtooth release:0.5 phaser:1 ]", - "[ 7/8 → 1/1 | note:F#4 s:sawtooth release:0.5 phaser:1 ]", - "[ 1/1 → 9/8 | note:D3 s:sawtooth release:0.5 phaser:2 ]", - "[ 9/8 → 5/4 | note:E3 s:sawtooth release:0.5 phaser:2 ]", - "[ 5/4 → 11/8 | note:F#3 s:sawtooth release:0.5 phaser:2 ]", - "[ 11/8 → 3/2 | note:A3 s:sawtooth release:0.5 phaser:2 ]", - "[ 3/2 → 13/8 | note:B3 s:sawtooth release:0.5 phaser:2 ]", - "[ 13/8 → 7/4 | note:D4 s:sawtooth release:0.5 phaser:2 ]", - "[ 7/4 → 15/8 | note:E4 s:sawtooth release:0.5 phaser:2 ]", - "[ 15/8 → 2/1 | note:F#4 s:sawtooth release:0.5 phaser:2 ]", - "[ 2/1 → 17/8 | note:D3 s:sawtooth release:0.5 phaser:4 ]", - "[ 17/8 → 9/4 | note:E3 s:sawtooth release:0.5 phaser:4 ]", - "[ 9/4 → 19/8 | note:F#3 s:sawtooth release:0.5 phaser:4 ]", - "[ 19/8 → 5/2 | note:A3 s:sawtooth release:0.5 phaser:4 ]", - "[ 5/2 → 21/8 | note:B3 s:sawtooth release:0.5 phaser:4 ]", - "[ 21/8 → 11/4 | note:D4 s:sawtooth release:0.5 phaser:4 ]", - "[ 11/4 → 23/8 | note:E4 s:sawtooth release:0.5 phaser:4 ]", - "[ 23/8 → 3/1 | note:F#4 s:sawtooth release:0.5 phaser:4 ]", - "[ 3/1 → 25/8 | note:D3 s:sawtooth release:0.5 phaser:8 ]", - "[ 25/8 → 13/4 | note:E3 s:sawtooth release:0.5 phaser:8 ]", - "[ 13/4 → 27/8 | note:F#3 s:sawtooth release:0.5 phaser:8 ]", - "[ 27/8 → 7/2 | note:A3 s:sawtooth release:0.5 phaser:8 ]", - "[ 7/2 → 29/8 | note:B3 s:sawtooth release:0.5 phaser:8 ]", - "[ 29/8 → 15/4 | note:D4 s:sawtooth release:0.5 phaser:8 ]", - "[ 15/4 → 31/8 | note:E4 s:sawtooth release:0.5 phaser:8 ]", - "[ 31/8 → 4/1 | note:F#4 s:sawtooth release:0.5 phaser:8 ]", + "[ 0/1 → 1/8 | note:D3 s:sawtooth release:0.5 phaserrate:1 ]", + "[ 1/8 → 1/4 | note:E3 s:sawtooth release:0.5 phaserrate:1 ]", + "[ 1/4 → 3/8 | note:F#3 s:sawtooth release:0.5 phaserrate:1 ]", + "[ 3/8 → 1/2 | note:A3 s:sawtooth release:0.5 phaserrate:1 ]", + "[ 1/2 → 5/8 | note:B3 s:sawtooth release:0.5 phaserrate:1 ]", + "[ 5/8 → 3/4 | note:D4 s:sawtooth release:0.5 phaserrate:1 ]", + "[ 3/4 → 7/8 | note:E4 s:sawtooth release:0.5 phaserrate:1 ]", + "[ 7/8 → 1/1 | note:F#4 s:sawtooth release:0.5 phaserrate:1 ]", + "[ 1/1 → 9/8 | note:D3 s:sawtooth release:0.5 phaserrate:2 ]", + "[ 9/8 → 5/4 | note:E3 s:sawtooth release:0.5 phaserrate:2 ]", + "[ 5/4 → 11/8 | note:F#3 s:sawtooth release:0.5 phaserrate:2 ]", + "[ 11/8 → 3/2 | note:A3 s:sawtooth release:0.5 phaserrate:2 ]", + "[ 3/2 → 13/8 | note:B3 s:sawtooth release:0.5 phaserrate:2 ]", + "[ 13/8 → 7/4 | note:D4 s:sawtooth release:0.5 phaserrate:2 ]", + "[ 7/4 → 15/8 | note:E4 s:sawtooth release:0.5 phaserrate:2 ]", + "[ 15/8 → 2/1 | note:F#4 s:sawtooth release:0.5 phaserrate:2 ]", + "[ 2/1 → 17/8 | note:D3 s:sawtooth release:0.5 phaserrate:4 ]", + "[ 17/8 → 9/4 | note:E3 s:sawtooth release:0.5 phaserrate:4 ]", + "[ 9/4 → 19/8 | note:F#3 s:sawtooth release:0.5 phaserrate:4 ]", + "[ 19/8 → 5/2 | note:A3 s:sawtooth release:0.5 phaserrate:4 ]", + "[ 5/2 → 21/8 | note:B3 s:sawtooth release:0.5 phaserrate:4 ]", + "[ 21/8 → 11/4 | note:D4 s:sawtooth release:0.5 phaserrate:4 ]", + "[ 11/4 → 23/8 | note:E4 s:sawtooth release:0.5 phaserrate:4 ]", + "[ 23/8 → 3/1 | note:F#4 s:sawtooth release:0.5 phaserrate:4 ]", + "[ 3/1 → 25/8 | note:D3 s:sawtooth release:0.5 phaserrate:8 ]", + "[ 25/8 → 13/4 | note:E3 s:sawtooth release:0.5 phaserrate:8 ]", + "[ 13/4 → 27/8 | note:F#3 s:sawtooth release:0.5 phaserrate:8 ]", + "[ 27/8 → 7/2 | note:A3 s:sawtooth release:0.5 phaserrate:8 ]", + "[ 7/2 → 29/8 | note:B3 s:sawtooth release:0.5 phaserrate:8 ]", + "[ 29/8 → 15/4 | note:D4 s:sawtooth release:0.5 phaserrate:8 ]", + "[ 15/4 → 31/8 | note:E4 s:sawtooth release:0.5 phaserrate:8 ]", + "[ 31/8 → 4/1 | note:F#4 s:sawtooth release:0.5 phaserrate:8 ]", ] `; exports[`runs examples > example "phasercenter" example index 0 1`] = ` [ - "[ 0/1 → 1/8 | note:D3 s:sawtooth release:0.5 phaser:2 phasercenter:800 ]", - "[ 1/8 → 1/4 | note:E3 s:sawtooth release:0.5 phaser:2 phasercenter:800 ]", - "[ 1/4 → 3/8 | note:F#3 s:sawtooth release:0.5 phaser:2 phasercenter:800 ]", - "[ 3/8 → 1/2 | note:A3 s:sawtooth release:0.5 phaser:2 phasercenter:800 ]", - "[ 1/2 → 5/8 | note:B3 s:sawtooth release:0.5 phaser:2 phasercenter:800 ]", - "[ 5/8 → 3/4 | note:D4 s:sawtooth release:0.5 phaser:2 phasercenter:800 ]", - "[ 3/4 → 7/8 | note:E4 s:sawtooth release:0.5 phaser:2 phasercenter:800 ]", - "[ 7/8 → 1/1 | note:F#4 s:sawtooth release:0.5 phaser:2 phasercenter:800 ]", - "[ 1/1 → 9/8 | note:D3 s:sawtooth release:0.5 phaser:2 phasercenter:2000 ]", - "[ 9/8 → 5/4 | note:E3 s:sawtooth release:0.5 phaser:2 phasercenter:2000 ]", - "[ 5/4 → 11/8 | note:F#3 s:sawtooth release:0.5 phaser:2 phasercenter:2000 ]", - "[ 11/8 → 3/2 | note:A3 s:sawtooth release:0.5 phaser:2 phasercenter:2000 ]", - "[ 3/2 → 13/8 | note:B3 s:sawtooth release:0.5 phaser:2 phasercenter:2000 ]", - "[ 13/8 → 7/4 | note:D4 s:sawtooth release:0.5 phaser:2 phasercenter:2000 ]", - "[ 7/4 → 15/8 | note:E4 s:sawtooth release:0.5 phaser:2 phasercenter:2000 ]", - "[ 15/8 → 2/1 | note:F#4 s:sawtooth release:0.5 phaser:2 phasercenter:2000 ]", - "[ 2/1 → 17/8 | note:D3 s:sawtooth release:0.5 phaser:2 phasercenter:4000 ]", - "[ 17/8 → 9/4 | note:E3 s:sawtooth release:0.5 phaser:2 phasercenter:4000 ]", - "[ 9/4 → 19/8 | note:F#3 s:sawtooth release:0.5 phaser:2 phasercenter:4000 ]", - "[ 19/8 → 5/2 | note:A3 s:sawtooth release:0.5 phaser:2 phasercenter:4000 ]", - "[ 5/2 → 21/8 | note:B3 s:sawtooth release:0.5 phaser:2 phasercenter:4000 ]", - "[ 21/8 → 11/4 | note:D4 s:sawtooth release:0.5 phaser:2 phasercenter:4000 ]", - "[ 11/4 → 23/8 | note:E4 s:sawtooth release:0.5 phaser:2 phasercenter:4000 ]", - "[ 23/8 → 3/1 | note:F#4 s:sawtooth release:0.5 phaser:2 phasercenter:4000 ]", - "[ 3/1 → 25/8 | note:D3 s:sawtooth release:0.5 phaser:2 phasercenter:800 ]", - "[ 25/8 → 13/4 | note:E3 s:sawtooth release:0.5 phaser:2 phasercenter:800 ]", - "[ 13/4 → 27/8 | note:F#3 s:sawtooth release:0.5 phaser:2 phasercenter:800 ]", - "[ 27/8 → 7/2 | note:A3 s:sawtooth release:0.5 phaser:2 phasercenter:800 ]", - "[ 7/2 → 29/8 | note:B3 s:sawtooth release:0.5 phaser:2 phasercenter:800 ]", - "[ 29/8 → 15/4 | note:D4 s:sawtooth release:0.5 phaser:2 phasercenter:800 ]", - "[ 15/4 → 31/8 | note:E4 s:sawtooth release:0.5 phaser:2 phasercenter:800 ]", - "[ 31/8 → 4/1 | note:F#4 s:sawtooth release:0.5 phaser:2 phasercenter:800 ]", + "[ 0/1 → 1/8 | note:D3 s:sawtooth release:0.5 phaserrate:2 phasercenter:800 ]", + "[ 1/8 → 1/4 | note:E3 s:sawtooth release:0.5 phaserrate:2 phasercenter:800 ]", + "[ 1/4 → 3/8 | note:F#3 s:sawtooth release:0.5 phaserrate:2 phasercenter:800 ]", + "[ 3/8 → 1/2 | note:A3 s:sawtooth release:0.5 phaserrate:2 phasercenter:800 ]", + "[ 1/2 → 5/8 | note:B3 s:sawtooth release:0.5 phaserrate:2 phasercenter:800 ]", + "[ 5/8 → 3/4 | note:D4 s:sawtooth release:0.5 phaserrate:2 phasercenter:800 ]", + "[ 3/4 → 7/8 | note:E4 s:sawtooth release:0.5 phaserrate:2 phasercenter:800 ]", + "[ 7/8 → 1/1 | note:F#4 s:sawtooth release:0.5 phaserrate:2 phasercenter:800 ]", + "[ 1/1 → 9/8 | note:D3 s:sawtooth release:0.5 phaserrate:2 phasercenter:2000 ]", + "[ 9/8 → 5/4 | note:E3 s:sawtooth release:0.5 phaserrate:2 phasercenter:2000 ]", + "[ 5/4 → 11/8 | note:F#3 s:sawtooth release:0.5 phaserrate:2 phasercenter:2000 ]", + "[ 11/8 → 3/2 | note:A3 s:sawtooth release:0.5 phaserrate:2 phasercenter:2000 ]", + "[ 3/2 → 13/8 | note:B3 s:sawtooth release:0.5 phaserrate:2 phasercenter:2000 ]", + "[ 13/8 → 7/4 | note:D4 s:sawtooth release:0.5 phaserrate:2 phasercenter:2000 ]", + "[ 7/4 → 15/8 | note:E4 s:sawtooth release:0.5 phaserrate:2 phasercenter:2000 ]", + "[ 15/8 → 2/1 | note:F#4 s:sawtooth release:0.5 phaserrate:2 phasercenter:2000 ]", + "[ 2/1 → 17/8 | note:D3 s:sawtooth release:0.5 phaserrate:2 phasercenter:4000 ]", + "[ 17/8 → 9/4 | note:E3 s:sawtooth release:0.5 phaserrate:2 phasercenter:4000 ]", + "[ 9/4 → 19/8 | note:F#3 s:sawtooth release:0.5 phaserrate:2 phasercenter:4000 ]", + "[ 19/8 → 5/2 | note:A3 s:sawtooth release:0.5 phaserrate:2 phasercenter:4000 ]", + "[ 5/2 → 21/8 | note:B3 s:sawtooth release:0.5 phaserrate:2 phasercenter:4000 ]", + "[ 21/8 → 11/4 | note:D4 s:sawtooth release:0.5 phaserrate:2 phasercenter:4000 ]", + "[ 11/4 → 23/8 | note:E4 s:sawtooth release:0.5 phaserrate:2 phasercenter:4000 ]", + "[ 23/8 → 3/1 | note:F#4 s:sawtooth release:0.5 phaserrate:2 phasercenter:4000 ]", + "[ 3/1 → 25/8 | note:D3 s:sawtooth release:0.5 phaserrate:2 phasercenter:800 ]", + "[ 25/8 → 13/4 | note:E3 s:sawtooth release:0.5 phaserrate:2 phasercenter:800 ]", + "[ 13/4 → 27/8 | note:F#3 s:sawtooth release:0.5 phaserrate:2 phasercenter:800 ]", + "[ 27/8 → 7/2 | note:A3 s:sawtooth release:0.5 phaserrate:2 phasercenter:800 ]", + "[ 7/2 → 29/8 | note:B3 s:sawtooth release:0.5 phaserrate:2 phasercenter:800 ]", + "[ 29/8 → 15/4 | note:D4 s:sawtooth release:0.5 phaserrate:2 phasercenter:800 ]", + "[ 15/4 → 31/8 | note:E4 s:sawtooth release:0.5 phaserrate:2 phasercenter:800 ]", + "[ 31/8 → 4/1 | note:F#4 s:sawtooth release:0.5 phaserrate:2 phasercenter:800 ]", ] `; exports[`runs examples > example "phaserdepth" example index 0 1`] = ` [ - "[ 0/1 → 1/8 | note:D3 s:sawtooth release:0.5 phaser:2 phaserdepth:0 ]", - "[ 1/8 → 1/4 | note:E3 s:sawtooth release:0.5 phaser:2 phaserdepth:0 ]", - "[ 1/4 → 3/8 | note:F#3 s:sawtooth release:0.5 phaser:2 phaserdepth:0 ]", - "[ 3/8 → 1/2 | note:A3 s:sawtooth release:0.5 phaser:2 phaserdepth:0 ]", - "[ 1/2 → 5/8 | note:B3 s:sawtooth release:0.5 phaser:2 phaserdepth:0 ]", - "[ 5/8 → 3/4 | note:D4 s:sawtooth release:0.5 phaser:2 phaserdepth:0 ]", - "[ 3/4 → 7/8 | note:E4 s:sawtooth release:0.5 phaser:2 phaserdepth:0 ]", - "[ 7/8 → 1/1 | note:F#4 s:sawtooth release:0.5 phaser:2 phaserdepth:0 ]", - "[ 1/1 → 9/8 | note:D3 s:sawtooth release:0.5 phaser:2 phaserdepth:0.5 ]", - "[ 9/8 → 5/4 | note:E3 s:sawtooth release:0.5 phaser:2 phaserdepth:0.5 ]", - "[ 5/4 → 11/8 | note:F#3 s:sawtooth release:0.5 phaser:2 phaserdepth:0.5 ]", - "[ 11/8 → 3/2 | note:A3 s:sawtooth release:0.5 phaser:2 phaserdepth:0.5 ]", - "[ 3/2 → 13/8 | note:B3 s:sawtooth release:0.5 phaser:2 phaserdepth:0.5 ]", - "[ 13/8 → 7/4 | note:D4 s:sawtooth release:0.5 phaser:2 phaserdepth:0.5 ]", - "[ 7/4 → 15/8 | note:E4 s:sawtooth release:0.5 phaser:2 phaserdepth:0.5 ]", - "[ 15/8 → 2/1 | note:F#4 s:sawtooth release:0.5 phaser:2 phaserdepth:0.5 ]", - "[ 2/1 → 17/8 | note:D3 s:sawtooth release:0.5 phaser:2 phaserdepth:0.75 ]", - "[ 17/8 → 9/4 | note:E3 s:sawtooth release:0.5 phaser:2 phaserdepth:0.75 ]", - "[ 9/4 → 19/8 | note:F#3 s:sawtooth release:0.5 phaser:2 phaserdepth:0.75 ]", - "[ 19/8 → 5/2 | note:A3 s:sawtooth release:0.5 phaser:2 phaserdepth:0.75 ]", - "[ 5/2 → 21/8 | note:B3 s:sawtooth release:0.5 phaser:2 phaserdepth:0.75 ]", - "[ 21/8 → 11/4 | note:D4 s:sawtooth release:0.5 phaser:2 phaserdepth:0.75 ]", - "[ 11/4 → 23/8 | note:E4 s:sawtooth release:0.5 phaser:2 phaserdepth:0.75 ]", - "[ 23/8 → 3/1 | note:F#4 s:sawtooth release:0.5 phaser:2 phaserdepth:0.75 ]", - "[ 3/1 → 25/8 | note:D3 s:sawtooth release:0.5 phaser:2 phaserdepth:1 ]", - "[ 25/8 → 13/4 | note:E3 s:sawtooth release:0.5 phaser:2 phaserdepth:1 ]", - "[ 13/4 → 27/8 | note:F#3 s:sawtooth release:0.5 phaser:2 phaserdepth:1 ]", - "[ 27/8 → 7/2 | note:A3 s:sawtooth release:0.5 phaser:2 phaserdepth:1 ]", - "[ 7/2 → 29/8 | note:B3 s:sawtooth release:0.5 phaser:2 phaserdepth:1 ]", - "[ 29/8 → 15/4 | note:D4 s:sawtooth release:0.5 phaser:2 phaserdepth:1 ]", - "[ 15/4 → 31/8 | note:E4 s:sawtooth release:0.5 phaser:2 phaserdepth:1 ]", - "[ 31/8 → 4/1 | note:F#4 s:sawtooth release:0.5 phaser:2 phaserdepth:1 ]", + "[ 0/1 → 1/8 | note:D3 s:sawtooth release:0.5 phaserrate:2 phaserdepth:0 ]", + "[ 1/8 → 1/4 | note:E3 s:sawtooth release:0.5 phaserrate:2 phaserdepth:0 ]", + "[ 1/4 → 3/8 | note:F#3 s:sawtooth release:0.5 phaserrate:2 phaserdepth:0 ]", + "[ 3/8 → 1/2 | note:A3 s:sawtooth release:0.5 phaserrate:2 phaserdepth:0 ]", + "[ 1/2 → 5/8 | note:B3 s:sawtooth release:0.5 phaserrate:2 phaserdepth:0 ]", + "[ 5/8 → 3/4 | note:D4 s:sawtooth release:0.5 phaserrate:2 phaserdepth:0 ]", + "[ 3/4 → 7/8 | note:E4 s:sawtooth release:0.5 phaserrate:2 phaserdepth:0 ]", + "[ 7/8 → 1/1 | note:F#4 s:sawtooth release:0.5 phaserrate:2 phaserdepth:0 ]", + "[ 1/1 → 9/8 | note:D3 s:sawtooth release:0.5 phaserrate:2 phaserdepth:0.5 ]", + "[ 9/8 → 5/4 | note:E3 s:sawtooth release:0.5 phaserrate:2 phaserdepth:0.5 ]", + "[ 5/4 → 11/8 | note:F#3 s:sawtooth release:0.5 phaserrate:2 phaserdepth:0.5 ]", + "[ 11/8 → 3/2 | note:A3 s:sawtooth release:0.5 phaserrate:2 phaserdepth:0.5 ]", + "[ 3/2 → 13/8 | note:B3 s:sawtooth release:0.5 phaserrate:2 phaserdepth:0.5 ]", + "[ 13/8 → 7/4 | note:D4 s:sawtooth release:0.5 phaserrate:2 phaserdepth:0.5 ]", + "[ 7/4 → 15/8 | note:E4 s:sawtooth release:0.5 phaserrate:2 phaserdepth:0.5 ]", + "[ 15/8 → 2/1 | note:F#4 s:sawtooth release:0.5 phaserrate:2 phaserdepth:0.5 ]", + "[ 2/1 → 17/8 | note:D3 s:sawtooth release:0.5 phaserrate:2 phaserdepth:0.75 ]", + "[ 17/8 → 9/4 | note:E3 s:sawtooth release:0.5 phaserrate:2 phaserdepth:0.75 ]", + "[ 9/4 → 19/8 | note:F#3 s:sawtooth release:0.5 phaserrate:2 phaserdepth:0.75 ]", + "[ 19/8 → 5/2 | note:A3 s:sawtooth release:0.5 phaserrate:2 phaserdepth:0.75 ]", + "[ 5/2 → 21/8 | note:B3 s:sawtooth release:0.5 phaserrate:2 phaserdepth:0.75 ]", + "[ 21/8 → 11/4 | note:D4 s:sawtooth release:0.5 phaserrate:2 phaserdepth:0.75 ]", + "[ 11/4 → 23/8 | note:E4 s:sawtooth release:0.5 phaserrate:2 phaserdepth:0.75 ]", + "[ 23/8 → 3/1 | note:F#4 s:sawtooth release:0.5 phaserrate:2 phaserdepth:0.75 ]", + "[ 3/1 → 25/8 | note:D3 s:sawtooth release:0.5 phaserrate:2 phaserdepth:1 ]", + "[ 25/8 → 13/4 | note:E3 s:sawtooth release:0.5 phaserrate:2 phaserdepth:1 ]", + "[ 13/4 → 27/8 | note:F#3 s:sawtooth release:0.5 phaserrate:2 phaserdepth:1 ]", + "[ 27/8 → 7/2 | note:A3 s:sawtooth release:0.5 phaserrate:2 phaserdepth:1 ]", + "[ 7/2 → 29/8 | note:B3 s:sawtooth release:0.5 phaserrate:2 phaserdepth:1 ]", + "[ 29/8 → 15/4 | note:D4 s:sawtooth release:0.5 phaserrate:2 phaserdepth:1 ]", + "[ 15/4 → 31/8 | note:E4 s:sawtooth release:0.5 phaserrate:2 phaserdepth:1 ]", + "[ 31/8 → 4/1 | note:F#4 s:sawtooth release:0.5 phaserrate:2 phaserdepth:1 ]", ] `; exports[`runs examples > example "phasersweep" example index 0 1`] = ` [ - "[ 0/1 → 1/8 | note:D3 s:sawtooth release:0.5 phaser:2 phasersweep:800 ]", - "[ 1/8 → 1/4 | note:E3 s:sawtooth release:0.5 phaser:2 phasersweep:800 ]", - "[ 1/4 → 3/8 | note:F#3 s:sawtooth release:0.5 phaser:2 phasersweep:800 ]", - "[ 3/8 → 1/2 | note:A3 s:sawtooth release:0.5 phaser:2 phasersweep:800 ]", - "[ 1/2 → 5/8 | note:B3 s:sawtooth release:0.5 phaser:2 phasersweep:800 ]", - "[ 5/8 → 3/4 | note:D4 s:sawtooth release:0.5 phaser:2 phasersweep:800 ]", - "[ 3/4 → 7/8 | note:E4 s:sawtooth release:0.5 phaser:2 phasersweep:800 ]", - "[ 7/8 → 1/1 | note:F#4 s:sawtooth release:0.5 phaser:2 phasersweep:800 ]", - "[ 1/1 → 9/8 | note:D3 s:sawtooth release:0.5 phaser:2 phasersweep:2000 ]", - "[ 9/8 → 5/4 | note:E3 s:sawtooth release:0.5 phaser:2 phasersweep:2000 ]", - "[ 5/4 → 11/8 | note:F#3 s:sawtooth release:0.5 phaser:2 phasersweep:2000 ]", - "[ 11/8 → 3/2 | note:A3 s:sawtooth release:0.5 phaser:2 phasersweep:2000 ]", - "[ 3/2 → 13/8 | note:B3 s:sawtooth release:0.5 phaser:2 phasersweep:2000 ]", - "[ 13/8 → 7/4 | note:D4 s:sawtooth release:0.5 phaser:2 phasersweep:2000 ]", - "[ 7/4 → 15/8 | note:E4 s:sawtooth release:0.5 phaser:2 phasersweep:2000 ]", - "[ 15/8 → 2/1 | note:F#4 s:sawtooth release:0.5 phaser:2 phasersweep:2000 ]", - "[ 2/1 → 17/8 | note:D3 s:sawtooth release:0.5 phaser:2 phasersweep:4000 ]", - "[ 17/8 → 9/4 | note:E3 s:sawtooth release:0.5 phaser:2 phasersweep:4000 ]", - "[ 9/4 → 19/8 | note:F#3 s:sawtooth release:0.5 phaser:2 phasersweep:4000 ]", - "[ 19/8 → 5/2 | note:A3 s:sawtooth release:0.5 phaser:2 phasersweep:4000 ]", - "[ 5/2 → 21/8 | note:B3 s:sawtooth release:0.5 phaser:2 phasersweep:4000 ]", - "[ 21/8 → 11/4 | note:D4 s:sawtooth release:0.5 phaser:2 phasersweep:4000 ]", - "[ 11/4 → 23/8 | note:E4 s:sawtooth release:0.5 phaser:2 phasersweep:4000 ]", - "[ 23/8 → 3/1 | note:F#4 s:sawtooth release:0.5 phaser:2 phasersweep:4000 ]", - "[ 3/1 → 25/8 | note:D3 s:sawtooth release:0.5 phaser:2 phasersweep:800 ]", - "[ 25/8 → 13/4 | note:E3 s:sawtooth release:0.5 phaser:2 phasersweep:800 ]", - "[ 13/4 → 27/8 | note:F#3 s:sawtooth release:0.5 phaser:2 phasersweep:800 ]", - "[ 27/8 → 7/2 | note:A3 s:sawtooth release:0.5 phaser:2 phasersweep:800 ]", - "[ 7/2 → 29/8 | note:B3 s:sawtooth release:0.5 phaser:2 phasersweep:800 ]", - "[ 29/8 → 15/4 | note:D4 s:sawtooth release:0.5 phaser:2 phasersweep:800 ]", - "[ 15/4 → 31/8 | note:E4 s:sawtooth release:0.5 phaser:2 phasersweep:800 ]", - "[ 31/8 → 4/1 | note:F#4 s:sawtooth release:0.5 phaser:2 phasersweep:800 ]", + "[ 0/1 → 1/8 | note:D3 s:sawtooth release:0.5 phaserrate:2 phasersweep:800 ]", + "[ 1/8 → 1/4 | note:E3 s:sawtooth release:0.5 phaserrate:2 phasersweep:800 ]", + "[ 1/4 → 3/8 | note:F#3 s:sawtooth release:0.5 phaserrate:2 phasersweep:800 ]", + "[ 3/8 → 1/2 | note:A3 s:sawtooth release:0.5 phaserrate:2 phasersweep:800 ]", + "[ 1/2 → 5/8 | note:B3 s:sawtooth release:0.5 phaserrate:2 phasersweep:800 ]", + "[ 5/8 → 3/4 | note:D4 s:sawtooth release:0.5 phaserrate:2 phasersweep:800 ]", + "[ 3/4 → 7/8 | note:E4 s:sawtooth release:0.5 phaserrate:2 phasersweep:800 ]", + "[ 7/8 → 1/1 | note:F#4 s:sawtooth release:0.5 phaserrate:2 phasersweep:800 ]", + "[ 1/1 → 9/8 | note:D3 s:sawtooth release:0.5 phaserrate:2 phasersweep:2000 ]", + "[ 9/8 → 5/4 | note:E3 s:sawtooth release:0.5 phaserrate:2 phasersweep:2000 ]", + "[ 5/4 → 11/8 | note:F#3 s:sawtooth release:0.5 phaserrate:2 phasersweep:2000 ]", + "[ 11/8 → 3/2 | note:A3 s:sawtooth release:0.5 phaserrate:2 phasersweep:2000 ]", + "[ 3/2 → 13/8 | note:B3 s:sawtooth release:0.5 phaserrate:2 phasersweep:2000 ]", + "[ 13/8 → 7/4 | note:D4 s:sawtooth release:0.5 phaserrate:2 phasersweep:2000 ]", + "[ 7/4 → 15/8 | note:E4 s:sawtooth release:0.5 phaserrate:2 phasersweep:2000 ]", + "[ 15/8 → 2/1 | note:F#4 s:sawtooth release:0.5 phaserrate:2 phasersweep:2000 ]", + "[ 2/1 → 17/8 | note:D3 s:sawtooth release:0.5 phaserrate:2 phasersweep:4000 ]", + "[ 17/8 → 9/4 | note:E3 s:sawtooth release:0.5 phaserrate:2 phasersweep:4000 ]", + "[ 9/4 → 19/8 | note:F#3 s:sawtooth release:0.5 phaserrate:2 phasersweep:4000 ]", + "[ 19/8 → 5/2 | note:A3 s:sawtooth release:0.5 phaserrate:2 phasersweep:4000 ]", + "[ 5/2 → 21/8 | note:B3 s:sawtooth release:0.5 phaserrate:2 phasersweep:4000 ]", + "[ 21/8 → 11/4 | note:D4 s:sawtooth release:0.5 phaserrate:2 phasersweep:4000 ]", + "[ 11/4 → 23/8 | note:E4 s:sawtooth release:0.5 phaserrate:2 phasersweep:4000 ]", + "[ 23/8 → 3/1 | note:F#4 s:sawtooth release:0.5 phaserrate:2 phasersweep:4000 ]", + "[ 3/1 → 25/8 | note:D3 s:sawtooth release:0.5 phaserrate:2 phasersweep:800 ]", + "[ 25/8 → 13/4 | note:E3 s:sawtooth release:0.5 phaserrate:2 phasersweep:800 ]", + "[ 13/4 → 27/8 | note:F#3 s:sawtooth release:0.5 phaserrate:2 phasersweep:800 ]", + "[ 27/8 → 7/2 | note:A3 s:sawtooth release:0.5 phaserrate:2 phasersweep:800 ]", + "[ 7/2 → 29/8 | note:B3 s:sawtooth release:0.5 phaserrate:2 phasersweep:800 ]", + "[ 29/8 → 15/4 | note:D4 s:sawtooth release:0.5 phaserrate:2 phasersweep:800 ]", + "[ 15/4 → 31/8 | note:E4 s:sawtooth release:0.5 phaserrate:2 phasersweep:800 ]", + "[ 31/8 → 4/1 | note:F#4 s:sawtooth release:0.5 phaserrate:2 phasersweep:800 ]", ] `; exports[`runs examples > example "pianoroll" example index 0 1`] = ` [ - "[ 0/1 → 1/8 | note:C2 s:piano clip:1 color:salmon ]", - "[ (1/4 → 1/3) ⇝ 3/8 | note:C2 s:piano clip:1 color:salmon ]", - "[ 1/4 ⇜ (1/3 → 3/8) | note:A2 s:piano clip:1 color:salmon ]", - "[ 3/8 → 1/2 | note:A2 s:piano clip:1 color:salmon ]", - "[ (5/8 → 2/3) ⇝ 3/4 | note:A2 s:piano clip:1 color:salmon ]", - "[ 5/8 ⇜ (2/3 → 3/4) | note:G2 s:piano clip:1 color:salmon ]", - "[ 3/4 → 7/8 | note:G2 s:piano clip:1 color:salmon ]", - "[ 1/1 → 9/8 | note:C2 s:piano clip:1 color:salmon ]", - "[ (5/4 → 4/3) ⇝ 11/8 | note:C2 s:piano clip:1 color:salmon ]", - "[ 5/4 ⇜ (4/3 → 11/8) | note:A2 s:piano clip:1 color:salmon ]", - "[ 11/8 → 3/2 | note:A2 s:piano clip:1 color:salmon ]", - "[ (13/8 → 5/3) ⇝ 7/4 | note:A2 s:piano clip:1 color:salmon ]", - "[ 13/8 ⇜ (5/3 → 7/4) | note:G2 s:piano clip:1 color:salmon ]", - "[ 7/4 → 15/8 | note:G2 s:piano clip:1 color:salmon ]", - "[ 2/1 → 17/8 | note:C2 s:piano clip:1 color:salmon ]", - "[ (9/4 → 7/3) ⇝ 19/8 | note:C2 s:piano clip:1 color:salmon ]", - "[ 9/4 ⇜ (7/3 → 19/8) | note:A2 s:piano clip:1 color:salmon ]", - "[ 19/8 → 5/2 | note:A2 s:piano clip:1 color:salmon ]", - "[ (21/8 → 8/3) ⇝ 11/4 | note:A2 s:piano clip:1 color:salmon ]", - "[ 21/8 ⇜ (8/3 → 11/4) | note:G2 s:piano clip:1 color:salmon ]", - "[ 11/4 → 23/8 | note:G2 s:piano clip:1 color:salmon ]", - "[ 3/1 → 25/8 | note:C2 s:piano clip:1 color:salmon ]", - "[ (13/4 → 10/3) ⇝ 27/8 | note:C2 s:piano clip:1 color:salmon ]", - "[ 13/4 ⇜ (10/3 → 27/8) | note:A2 s:piano clip:1 color:salmon ]", - "[ 27/8 → 7/2 | note:A2 s:piano clip:1 color:salmon ]", - "[ (29/8 → 11/3) ⇝ 15/4 | note:A2 s:piano clip:1 color:salmon ]", - "[ 29/8 ⇜ (11/3 → 15/4) | note:G2 s:piano clip:1 color:salmon ]", - "[ 15/4 → 31/8 | note:G2 s:piano clip:1 color:salmon ]", + "[ 0/1 → 1/8 | note:c2 s:sawtooth lpenv:4 cutoff:300 ]", + "[ (1/4 → 1/3) ⇝ 3/8 | note:c2 s:sawtooth lpenv:4 cutoff:300 ]", + "[ 1/4 ⇜ (1/3 → 3/8) | note:a2 s:sawtooth lpenv:4 cutoff:300 ]", + "[ 3/8 → 1/2 | note:a2 s:sawtooth lpenv:4 cutoff:300 ]", + "[ (5/8 → 2/3) ⇝ 3/4 | note:a2 s:sawtooth lpenv:4 cutoff:300 ]", + "[ 5/8 ⇜ (2/3 → 3/4) | note:eb2 s:sawtooth lpenv:4 cutoff:300 ]", + "[ 3/4 → 7/8 | note:eb2 s:sawtooth lpenv:4 cutoff:300 ]", + "[ 1/1 → 9/8 | note:c2 s:sawtooth lpenv:4 cutoff:300 ]", + "[ (5/4 → 4/3) ⇝ 11/8 | note:c2 s:sawtooth lpenv:4 cutoff:300 ]", + "[ 5/4 ⇜ (4/3 → 11/8) | note:a2 s:sawtooth lpenv:4 cutoff:300 ]", + "[ 11/8 → 3/2 | note:a2 s:sawtooth lpenv:4 cutoff:300 ]", + "[ (13/8 → 5/3) ⇝ 7/4 | note:a2 s:sawtooth lpenv:4 cutoff:300 ]", + "[ 13/8 ⇜ (5/3 → 7/4) | note:eb2 s:sawtooth lpenv:4 cutoff:300 ]", + "[ 7/4 → 15/8 | note:eb2 s:sawtooth lpenv:4 cutoff:300 ]", + "[ 2/1 → 17/8 | note:c2 s:sawtooth lpenv:4 cutoff:300 ]", + "[ (9/4 → 7/3) ⇝ 19/8 | note:c2 s:sawtooth lpenv:4 cutoff:300 ]", + "[ 9/4 ⇜ (7/3 → 19/8) | note:a2 s:sawtooth lpenv:4 cutoff:300 ]", + "[ 19/8 → 5/2 | note:a2 s:sawtooth lpenv:4 cutoff:300 ]", + "[ (21/8 → 8/3) ⇝ 11/4 | note:a2 s:sawtooth lpenv:4 cutoff:300 ]", + "[ 21/8 ⇜ (8/3 → 11/4) | note:eb2 s:sawtooth lpenv:4 cutoff:300 ]", + "[ 11/4 → 23/8 | note:eb2 s:sawtooth lpenv:4 cutoff:300 ]", + "[ 3/1 → 25/8 | note:c2 s:sawtooth lpenv:4 cutoff:300 ]", + "[ (13/4 → 10/3) ⇝ 27/8 | note:c2 s:sawtooth lpenv:4 cutoff:300 ]", + "[ 13/4 ⇜ (10/3 → 27/8) | note:a2 s:sawtooth lpenv:4 cutoff:300 ]", + "[ 27/8 → 7/2 | note:a2 s:sawtooth lpenv:4 cutoff:300 ]", + "[ (29/8 → 11/3) ⇝ 15/4 | note:a2 s:sawtooth lpenv:4 cutoff:300 ]", + "[ 29/8 ⇜ (11/3 → 15/4) | note:eb2 s:sawtooth lpenv:4 cutoff:300 ]", + "[ 15/4 → 31/8 | note:eb2 s:sawtooth lpenv:4 cutoff:300 ]", ] `; @@ -5234,6 +6974,82 @@ exports[`runs examples > example "pickF" example index 1 1`] = ` ] `; +exports[`runs examples > example "pickmodRestart" example index 0 1`] = ` +[ + "[ 0/1 → 1/4 | note:C3 s:piano ]", + "[ 1/4 → 1/2 | note:D3 s:piano ]", + "[ 1/2 → 3/4 | note:E3 s:piano ]", + "[ 3/4 → 1/1 | note:C3 s:piano ]", + "[ 1/1 → 5/4 | note:C3 s:piano ]", + "[ 5/4 → 3/2 | note:D3 s:piano ]", + "[ 3/2 → 7/4 | note:E3 s:piano ]", + "[ 7/4 → 2/1 | note:C3 s:piano ]", + "[ 2/1 → 9/4 | note:E3 s:piano ]", + "[ 9/4 → 5/2 | note:F3 s:piano ]", + "[ 5/2 → 11/4 | note:G3 s:piano ]", + "[ 3/1 → 13/4 | note:E3 s:piano ]", + "[ 13/4 → 7/2 | note:F3 s:piano ]", + "[ 7/2 → 15/4 | note:G3 s:piano ]", +] +`; + +exports[`runs examples > example "pitchwheel" example index 0 1`] = ` +[ + "[ 0/1 → 1/13 | note:C3 s:sawtooth cutoff:500 ]", + "[ 1/13 → 2/13 | note:Db3 s:sawtooth cutoff:500 ]", + "[ 2/13 → 3/13 | note:D3 s:sawtooth cutoff:500 ]", + "[ 3/13 → 4/13 | note:Eb3 s:sawtooth cutoff:500 ]", + "[ 4/13 → 5/13 | note:E3 s:sawtooth cutoff:500 ]", + "[ 5/13 → 6/13 | note:F3 s:sawtooth cutoff:500 ]", + "[ 6/13 → 7/13 | note:Gb3 s:sawtooth cutoff:500 ]", + "[ 7/13 → 8/13 | note:G3 s:sawtooth cutoff:500 ]", + "[ 8/13 → 9/13 | note:Ab3 s:sawtooth cutoff:500 ]", + "[ 9/13 → 10/13 | note:A3 s:sawtooth cutoff:500 ]", + "[ 10/13 → 11/13 | note:Bb3 s:sawtooth cutoff:500 ]", + "[ 11/13 → 12/13 | note:B3 s:sawtooth cutoff:500 ]", + "[ 12/13 → 1/1 | note:C4 s:sawtooth cutoff:500 ]", + "[ 1/1 → 14/13 | note:C3 s:sawtooth cutoff:500 ]", + "[ 14/13 → 15/13 | note:Db3 s:sawtooth cutoff:500 ]", + "[ 15/13 → 16/13 | note:D3 s:sawtooth cutoff:500 ]", + "[ 16/13 → 17/13 | note:Eb3 s:sawtooth cutoff:500 ]", + "[ 17/13 → 18/13 | note:E3 s:sawtooth cutoff:500 ]", + "[ 18/13 → 19/13 | note:F3 s:sawtooth cutoff:500 ]", + "[ 19/13 → 20/13 | note:Gb3 s:sawtooth cutoff:500 ]", + "[ 20/13 → 21/13 | note:G3 s:sawtooth cutoff:500 ]", + "[ 21/13 → 22/13 | note:Ab3 s:sawtooth cutoff:500 ]", + "[ 22/13 → 23/13 | note:A3 s:sawtooth cutoff:500 ]", + "[ 23/13 → 24/13 | note:Bb3 s:sawtooth cutoff:500 ]", + "[ 24/13 → 25/13 | note:B3 s:sawtooth cutoff:500 ]", + "[ 25/13 → 2/1 | note:C4 s:sawtooth cutoff:500 ]", + "[ 2/1 → 27/13 | note:C3 s:sawtooth cutoff:500 ]", + "[ 27/13 → 28/13 | note:Db3 s:sawtooth cutoff:500 ]", + "[ 28/13 → 29/13 | note:D3 s:sawtooth cutoff:500 ]", + "[ 29/13 → 30/13 | note:Eb3 s:sawtooth cutoff:500 ]", + "[ 30/13 → 31/13 | note:E3 s:sawtooth cutoff:500 ]", + "[ 31/13 → 32/13 | note:F3 s:sawtooth cutoff:500 ]", + "[ 32/13 → 33/13 | note:Gb3 s:sawtooth cutoff:500 ]", + "[ 33/13 → 34/13 | note:G3 s:sawtooth cutoff:500 ]", + "[ 34/13 → 35/13 | note:Ab3 s:sawtooth cutoff:500 ]", + "[ 35/13 → 36/13 | note:A3 s:sawtooth cutoff:500 ]", + "[ 36/13 → 37/13 | note:Bb3 s:sawtooth cutoff:500 ]", + "[ 37/13 → 38/13 | note:B3 s:sawtooth cutoff:500 ]", + "[ 38/13 → 3/1 | note:C4 s:sawtooth cutoff:500 ]", + "[ 3/1 → 40/13 | note:C3 s:sawtooth cutoff:500 ]", + "[ 40/13 → 41/13 | note:Db3 s:sawtooth cutoff:500 ]", + "[ 41/13 → 42/13 | note:D3 s:sawtooth cutoff:500 ]", + "[ 42/13 → 43/13 | note:Eb3 s:sawtooth cutoff:500 ]", + "[ 43/13 → 44/13 | note:E3 s:sawtooth cutoff:500 ]", + "[ 44/13 → 45/13 | note:F3 s:sawtooth cutoff:500 ]", + "[ 45/13 → 46/13 | note:Gb3 s:sawtooth cutoff:500 ]", + "[ 46/13 → 47/13 | note:G3 s:sawtooth cutoff:500 ]", + "[ 47/13 → 48/13 | note:Ab3 s:sawtooth cutoff:500 ]", + "[ 48/13 → 49/13 | note:A3 s:sawtooth cutoff:500 ]", + "[ 49/13 → 50/13 | note:Bb3 s:sawtooth cutoff:500 ]", + "[ 50/13 → 51/13 | note:B3 s:sawtooth cutoff:500 ]", + "[ 51/13 → 4/1 | note:C4 s:sawtooth cutoff:500 ]", +] +`; + exports[`runs examples > example "ply" example index 0 1`] = ` [ "[ 0/1 → 1/4 | s:bd ]", @@ -5260,6 +7076,62 @@ exports[`runs examples > example "ply" example index 0 1`] = ` ] `; +<<<<<<< HEAD +======= +exports[`runs examples > example "polymeter" example index 0 1`] = ` +[ + "[ 0/1 → 1/6 | note:c ]", + "[ 0/1 → 1/6 | note:c2 ]", + "[ 1/6 → 1/3 | note:eb ]", + "[ 1/6 → 1/3 | note:g2 ]", + "[ 1/3 → 1/2 | note:g ]", + "[ 1/3 → 1/2 | note:c2 ]", + "[ 1/2 → 2/3 | note:c ]", + "[ 1/2 → 2/3 | note:g2 ]", + "[ 2/3 → 5/6 | note:eb ]", + "[ 2/3 → 5/6 | note:c2 ]", + "[ 5/6 → 1/1 | note:g ]", + "[ 5/6 → 1/1 | note:g2 ]", + "[ 1/1 → 7/6 | note:c ]", + "[ 1/1 → 7/6 | note:c2 ]", + "[ 7/6 → 4/3 | note:eb ]", + "[ 7/6 → 4/3 | note:g2 ]", + "[ 4/3 → 3/2 | note:g ]", + "[ 4/3 → 3/2 | note:c2 ]", + "[ 3/2 → 5/3 | note:c ]", + "[ 3/2 → 5/3 | note:g2 ]", + "[ 5/3 → 11/6 | note:eb ]", + "[ 5/3 → 11/6 | note:c2 ]", + "[ 11/6 → 2/1 | note:g ]", + "[ 11/6 → 2/1 | note:g2 ]", + "[ 2/1 → 13/6 | note:c ]", + "[ 2/1 → 13/6 | note:c2 ]", + "[ 13/6 → 7/3 | note:eb ]", + "[ 13/6 → 7/3 | note:g2 ]", + "[ 7/3 → 5/2 | note:g ]", + "[ 7/3 → 5/2 | note:c2 ]", + "[ 5/2 → 8/3 | note:c ]", + "[ 5/2 → 8/3 | note:g2 ]", + "[ 8/3 → 17/6 | note:eb ]", + "[ 8/3 → 17/6 | note:c2 ]", + "[ 17/6 → 3/1 | note:g ]", + "[ 17/6 → 3/1 | note:g2 ]", + "[ 3/1 → 19/6 | note:c ]", + "[ 3/1 → 19/6 | note:c2 ]", + "[ 19/6 → 10/3 | note:eb ]", + "[ 19/6 → 10/3 | note:g2 ]", + "[ 10/3 → 7/2 | note:g ]", + "[ 10/3 → 7/2 | note:c2 ]", + "[ 7/2 → 11/3 | note:c ]", + "[ 7/2 → 11/3 | note:g2 ]", + "[ 11/3 → 23/6 | note:eb ]", + "[ 11/3 → 23/6 | note:c2 ]", + "[ 23/6 → 4/1 | note:g ]", + "[ 23/6 → 4/1 | note:g2 ]", +] +`; + +>>>>>>> main 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 ]", @@ -5364,6 +7236,15 @@ exports[`runs examples > example "pressBy" example index 0 1`] = ` ] `; +exports[`runs examples > example "progNum" example index 0 1`] = ` +[ + "[ 0/1 → 1/1 | note:c4 progNum:10 midichan:1 ]", + "[ 1/1 → 2/1 | note:c4 progNum:10 midichan:1 ]", + "[ 2/1 → 3/1 | note:c4 progNum:10 midichan:1 ]", + "[ 3/1 → 4/1 | note:c4 progNum:10 midichan:1 ]", +] +`; + exports[`runs examples > example "pure" example index 0 1`] = ` [ "[ 0/1 → 1/1 | e4 ]", @@ -5373,253 +7254,433 @@ exports[`runs examples > example "pure" example index 0 1`] = ` ] `; +exports[`runs examples > example "pw" example index 0 1`] = ` +[ + "[ 0/1 → 1/16 | note:f s:pulse pw:0.8 pwrate:1 pwsweep:0.2 ]", + "[ 1/16 → 1/8 | note:a s:pulse pw:0.8 pwrate:1 pwsweep:0.2 ]", + "[ 1/8 → 3/16 | note:c s:pulse pw:0.8 pwrate:1 pwsweep:0.2 ]", + "[ 3/16 → 1/4 | note:e s:pulse pw:0.8 pwrate:1 pwsweep:0.2 ]", + "[ 1/4 → 5/16 | note:f s:pulse pw:0.8 pwrate:1 pwsweep:0.2 ]", + "[ 5/16 → 3/8 | note:a s:pulse pw:0.8 pwrate:1 pwsweep:0.2 ]", + "[ 3/8 → 7/16 | note:c s:pulse pw:0.8 pwrate:1 pwsweep:0.2 ]", + "[ 7/16 → 1/2 | note:e s:pulse pw:0.8 pwrate:1 pwsweep:0.2 ]", + "[ 1/2 → 9/16 | note:f s:pulse pw:0.8 pwrate:1 pwsweep:0.2 ]", + "[ 9/16 → 5/8 | note:a s:pulse pw:0.8 pwrate:1 pwsweep:0.2 ]", + "[ 5/8 → 11/16 | note:c s:pulse pw:0.8 pwrate:1 pwsweep:0.2 ]", + "[ 11/16 → 3/4 | note:e s:pulse pw:0.8 pwrate:1 pwsweep:0.2 ]", + "[ 3/4 → 13/16 | note:f s:pulse pw:0.8 pwrate:1 pwsweep:0.2 ]", + "[ 13/16 → 7/8 | note:a s:pulse pw:0.8 pwrate:1 pwsweep:0.2 ]", + "[ 7/8 → 15/16 | note:c s:pulse pw:0.8 pwrate:1 pwsweep:0.2 ]", + "[ 15/16 → 1/1 | note:e s:pulse pw:0.8 pwrate:1 pwsweep:0.2 ]", + "[ 1/1 → 17/16 | note:f s:pulse pw:0.8 pwrate:1 pwsweep:0.2 ]", + "[ 17/16 → 9/8 | note:a s:pulse pw:0.8 pwrate:1 pwsweep:0.2 ]", + "[ 9/8 → 19/16 | note:c s:pulse pw:0.8 pwrate:1 pwsweep:0.2 ]", + "[ 19/16 → 5/4 | note:e s:pulse pw:0.8 pwrate:1 pwsweep:0.2 ]", + "[ 5/4 → 21/16 | note:f s:pulse pw:0.8 pwrate:1 pwsweep:0.2 ]", + "[ 21/16 → 11/8 | note:a s:pulse pw:0.8 pwrate:1 pwsweep:0.2 ]", + "[ 11/8 → 23/16 | note:c s:pulse pw:0.8 pwrate:1 pwsweep:0.2 ]", + "[ 23/16 → 3/2 | note:e s:pulse pw:0.8 pwrate:1 pwsweep:0.2 ]", + "[ 3/2 → 25/16 | note:f s:pulse pw:0.8 pwrate:1 pwsweep:0.2 ]", + "[ 25/16 → 13/8 | note:a s:pulse pw:0.8 pwrate:1 pwsweep:0.2 ]", + "[ 13/8 → 27/16 | note:c s:pulse pw:0.8 pwrate:1 pwsweep:0.2 ]", + "[ 27/16 → 7/4 | note:e s:pulse pw:0.8 pwrate:1 pwsweep:0.2 ]", + "[ 7/4 → 29/16 | note:f s:pulse pw:0.8 pwrate:1 pwsweep:0.2 ]", + "[ 29/16 → 15/8 | note:a s:pulse pw:0.8 pwrate:1 pwsweep:0.2 ]", + "[ 15/8 → 31/16 | note:c s:pulse pw:0.8 pwrate:1 pwsweep:0.2 ]", + "[ 31/16 → 2/1 | note:e s:pulse pw:0.8 pwrate:1 pwsweep:0.2 ]", + "[ 2/1 → 33/16 | note:f s:pulse pw:0.8 pwrate:1 pwsweep:0.2 ]", + "[ 33/16 → 17/8 | note:a s:pulse pw:0.8 pwrate:1 pwsweep:0.2 ]", + "[ 17/8 → 35/16 | note:c s:pulse pw:0.8 pwrate:1 pwsweep:0.2 ]", + "[ 35/16 → 9/4 | note:e s:pulse pw:0.8 pwrate:1 pwsweep:0.2 ]", + "[ 9/4 → 37/16 | note:f s:pulse pw:0.8 pwrate:1 pwsweep:0.2 ]", + "[ 37/16 → 19/8 | note:a s:pulse pw:0.8 pwrate:1 pwsweep:0.2 ]", + "[ 19/8 → 39/16 | note:c s:pulse pw:0.8 pwrate:1 pwsweep:0.2 ]", + "[ 39/16 → 5/2 | note:e s:pulse pw:0.8 pwrate:1 pwsweep:0.2 ]", + "[ 5/2 → 41/16 | note:f s:pulse pw:0.8 pwrate:1 pwsweep:0.2 ]", + "[ 41/16 → 21/8 | note:a s:pulse pw:0.8 pwrate:1 pwsweep:0.2 ]", + "[ 21/8 → 43/16 | note:c s:pulse pw:0.8 pwrate:1 pwsweep:0.2 ]", + "[ 43/16 → 11/4 | note:e s:pulse pw:0.8 pwrate:1 pwsweep:0.2 ]", + "[ 11/4 → 45/16 | note:f s:pulse pw:0.8 pwrate:1 pwsweep:0.2 ]", + "[ 45/16 → 23/8 | note:a s:pulse pw:0.8 pwrate:1 pwsweep:0.2 ]", + "[ 23/8 → 47/16 | note:c s:pulse pw:0.8 pwrate:1 pwsweep:0.2 ]", + "[ 47/16 → 3/1 | note:e s:pulse pw:0.8 pwrate:1 pwsweep:0.2 ]", + "[ 3/1 → 49/16 | note:f s:pulse pw:0.8 pwrate:1 pwsweep:0.2 ]", + "[ 49/16 → 25/8 | note:a s:pulse pw:0.8 pwrate:1 pwsweep:0.2 ]", + "[ 25/8 → 51/16 | note:c s:pulse pw:0.8 pwrate:1 pwsweep:0.2 ]", + "[ 51/16 → 13/4 | note:e s:pulse pw:0.8 pwrate:1 pwsweep:0.2 ]", + "[ 13/4 → 53/16 | note:f s:pulse pw:0.8 pwrate:1 pwsweep:0.2 ]", + "[ 53/16 → 27/8 | note:a s:pulse pw:0.8 pwrate:1 pwsweep:0.2 ]", + "[ 27/8 → 55/16 | note:c s:pulse pw:0.8 pwrate:1 pwsweep:0.2 ]", + "[ 55/16 → 7/2 | note:e s:pulse pw:0.8 pwrate:1 pwsweep:0.2 ]", + "[ 7/2 → 57/16 | note:f s:pulse pw:0.8 pwrate:1 pwsweep:0.2 ]", + "[ 57/16 → 29/8 | note:a s:pulse pw:0.8 pwrate:1 pwsweep:0.2 ]", + "[ 29/8 → 59/16 | note:c s:pulse pw:0.8 pwrate:1 pwsweep:0.2 ]", + "[ 59/16 → 15/4 | note:e s:pulse pw:0.8 pwrate:1 pwsweep:0.2 ]", + "[ 15/4 → 61/16 | note:f s:pulse pw:0.8 pwrate:1 pwsweep:0.2 ]", + "[ 61/16 → 31/8 | note:a s:pulse pw:0.8 pwrate:1 pwsweep:0.2 ]", + "[ 31/8 → 63/16 | note:c s:pulse pw:0.8 pwrate:1 pwsweep:0.2 ]", + "[ 63/16 → 4/1 | note:e s:pulse pw:0.8 pwrate:1 pwsweep:0.2 ]", +] +`; + +exports[`runs examples > example "pw" example index 1 1`] = ` +[ + "[ 0/1 → 1/8 | note:D3 s:pulse pw:0 ]", + "[ 1/8 → 1/4 | note:E3 s:pulse pw:0 ]", + "[ 1/4 → 3/8 | note:F#3 s:pulse pw:0.75 ]", + "[ 3/8 → 1/2 | note:A3 s:pulse pw:0.75 ]", + "[ 1/2 → 5/8 | note:B3 s:pulse pw:0.5 ]", + "[ 5/8 → 3/4 | note:D4 s:pulse pw:0.5 ]", + "[ 3/4 → 7/8 | note:E4 s:pulse pw:1 ]", + "[ 7/8 → 1/1 | note:F#4 s:pulse pw:1 ]", + "[ 1/1 → 9/8 | note:D3 s:pulse pw:0 ]", + "[ 9/8 → 5/4 | note:E3 s:pulse pw:0 ]", + "[ 5/4 → 11/8 | note:F#3 s:pulse pw:0.75 ]", + "[ 11/8 → 3/2 | note:A3 s:pulse pw:0.75 ]", + "[ 3/2 → 13/8 | note:B3 s:pulse pw:0.5 ]", + "[ 13/8 → 7/4 | note:D4 s:pulse pw:0.5 ]", + "[ 7/4 → 15/8 | note:E4 s:pulse pw:1 ]", + "[ 15/8 → 2/1 | note:F#4 s:pulse pw:1 ]", + "[ 2/1 → 17/8 | note:D3 s:pulse pw:0 ]", + "[ 17/8 → 9/4 | note:E3 s:pulse pw:0 ]", + "[ 9/4 → 19/8 | note:F#3 s:pulse pw:0.75 ]", + "[ 19/8 → 5/2 | note:A3 s:pulse pw:0.75 ]", + "[ 5/2 → 21/8 | note:B3 s:pulse pw:0.5 ]", + "[ 21/8 → 11/4 | note:D4 s:pulse pw:0.5 ]", + "[ 11/4 → 23/8 | note:E4 s:pulse pw:1 ]", + "[ 23/8 → 3/1 | note:F#4 s:pulse pw:1 ]", + "[ 3/1 → 25/8 | note:D3 s:pulse pw:0 ]", + "[ 25/8 → 13/4 | note:E3 s:pulse pw:0 ]", + "[ 13/4 → 27/8 | note:F#3 s:pulse pw:0.75 ]", + "[ 27/8 → 7/2 | note:A3 s:pulse pw:0.75 ]", + "[ 7/2 → 29/8 | note:B3 s:pulse pw:0.5 ]", + "[ 29/8 → 15/4 | note:D4 s:pulse pw:0.5 ]", + "[ 15/4 → 31/8 | note:E4 s:pulse pw:1 ]", + "[ 31/8 → 4/1 | note:F#4 s:pulse pw:1 ]", +] +`; + +exports[`runs examples > example "pwrate" example index 0 1`] = ` +[ + "[ 0/1 → 1/8 | note:D3 s:pulse pw:0.5 pwrate:5 pwsweep:0.3 ]", + "[ 1/8 → 1/4 | note:E3 s:pulse pw:0.5 pwrate:5 pwsweep:0.3 ]", + "[ 1/4 → 3/8 | note:F#3 s:pulse pw:0.5 pwrate:5 pwsweep:0.3 ]", + "[ 3/8 → 1/2 | note:A3 s:pulse pw:0.5 pwrate:5 pwsweep:0.3 ]", + "[ 1/2 → 5/8 | note:B3 s:pulse pw:0.5 pwrate:5 pwsweep:0.3 ]", + "[ 5/8 → 3/4 | note:D4 s:pulse pw:0.5 pwrate:5 pwsweep:0.3 ]", + "[ 3/4 → 7/8 | note:E4 s:pulse pw:0.5 pwrate:5 pwsweep:0.3 ]", + "[ 7/8 → 1/1 | note:F#4 s:pulse pw:0.5 pwrate:5 pwsweep:0.3 ]", + "[ 1/1 → 9/8 | note:D3 s:pulse pw:0.5 pwrate:0.1 pwsweep:0.8 ]", + "[ 9/8 → 5/4 | note:E3 s:pulse pw:0.5 pwrate:0.1 pwsweep:0.8 ]", + "[ 5/4 → 11/8 | note:F#3 s:pulse pw:0.5 pwrate:0.1 pwsweep:0.8 ]", + "[ 11/8 → 3/2 | note:A3 s:pulse pw:0.5 pwrate:0.1 pwsweep:0.8 ]", + "[ 3/2 → 13/8 | note:B3 s:pulse pw:0.5 pwrate:0.1 pwsweep:0.8 ]", + "[ 13/8 → 7/4 | note:D4 s:pulse pw:0.5 pwrate:0.1 pwsweep:0.8 ]", + "[ 7/4 → 15/8 | note:E4 s:pulse pw:0.5 pwrate:0.1 pwsweep:0.8 ]", + "[ 15/8 → 2/1 | note:F#4 s:pulse pw:0.5 pwrate:0.1 pwsweep:0.8 ]", + "[ 2/1 → 17/8 | note:D3 s:pulse pw:0.5 pwrate:25 pwsweep:0.3 ]", + "[ 17/8 → 9/4 | note:E3 s:pulse pw:0.5 pwrate:25 pwsweep:0.3 ]", + "[ 9/4 → 19/8 | note:F#3 s:pulse pw:0.5 pwrate:25 pwsweep:0.3 ]", + "[ 19/8 → 5/2 | note:A3 s:pulse pw:0.5 pwrate:25 pwsweep:0.3 ]", + "[ 5/2 → 21/8 | note:B3 s:pulse pw:0.5 pwrate:25 pwsweep:0.3 ]", + "[ 21/8 → 11/4 | note:D4 s:pulse pw:0.5 pwrate:25 pwsweep:0.3 ]", + "[ 11/4 → 23/8 | note:E4 s:pulse pw:0.5 pwrate:25 pwsweep:0.3 ]", + "[ 23/8 → 3/1 | note:F#4 s:pulse pw:0.5 pwrate:25 pwsweep:0.3 ]", + "[ 3/1 → 25/8 | note:D3 s:pulse pw:0.5 pwrate:5 pwsweep:0.8 ]", + "[ 25/8 → 13/4 | note:E3 s:pulse pw:0.5 pwrate:5 pwsweep:0.8 ]", + "[ 13/4 → 27/8 | note:F#3 s:pulse pw:0.5 pwrate:5 pwsweep:0.8 ]", + "[ 27/8 → 7/2 | note:A3 s:pulse pw:0.5 pwrate:5 pwsweep:0.8 ]", + "[ 7/2 → 29/8 | note:B3 s:pulse pw:0.5 pwrate:5 pwsweep:0.8 ]", + "[ 29/8 → 15/4 | note:D4 s:pulse pw:0.5 pwrate:5 pwsweep:0.8 ]", + "[ 15/4 → 31/8 | note:E4 s:pulse pw:0.5 pwrate:5 pwsweep:0.8 ]", + "[ 31/8 → 4/1 | note:F#4 s:pulse pw:0.5 pwrate:5 pwsweep:0.8 ]", +] +`; + +exports[`runs examples > example "pwsweep" example index 0 1`] = ` +[ + "[ 0/1 → 1/8 | note:D3 s:pulse pw:0.5 pwrate:5 pwsweep:0.3 ]", + "[ 1/8 → 1/4 | note:E3 s:pulse pw:0.5 pwrate:5 pwsweep:0.3 ]", + "[ 1/4 → 3/8 | note:F#3 s:pulse pw:0.5 pwrate:5 pwsweep:0.3 ]", + "[ 3/8 → 1/2 | note:A3 s:pulse pw:0.5 pwrate:5 pwsweep:0.3 ]", + "[ 1/2 → 5/8 | note:B3 s:pulse pw:0.5 pwrate:5 pwsweep:0.3 ]", + "[ 5/8 → 3/4 | note:D4 s:pulse pw:0.5 pwrate:5 pwsweep:0.3 ]", + "[ 3/4 → 7/8 | note:E4 s:pulse pw:0.5 pwrate:5 pwsweep:0.3 ]", + "[ 7/8 → 1/1 | note:F#4 s:pulse pw:0.5 pwrate:5 pwsweep:0.3 ]", + "[ 1/1 → 9/8 | note:D3 s:pulse pw:0.5 pwrate:0.1 pwsweep:0.8 ]", + "[ 9/8 → 5/4 | note:E3 s:pulse pw:0.5 pwrate:0.1 pwsweep:0.8 ]", + "[ 5/4 → 11/8 | note:F#3 s:pulse pw:0.5 pwrate:0.1 pwsweep:0.8 ]", + "[ 11/8 → 3/2 | note:A3 s:pulse pw:0.5 pwrate:0.1 pwsweep:0.8 ]", + "[ 3/2 → 13/8 | note:B3 s:pulse pw:0.5 pwrate:0.1 pwsweep:0.8 ]", + "[ 13/8 → 7/4 | note:D4 s:pulse pw:0.5 pwrate:0.1 pwsweep:0.8 ]", + "[ 7/4 → 15/8 | note:E4 s:pulse pw:0.5 pwrate:0.1 pwsweep:0.8 ]", + "[ 15/8 → 2/1 | note:F#4 s:pulse pw:0.5 pwrate:0.1 pwsweep:0.8 ]", + "[ 2/1 → 17/8 | note:D3 s:pulse pw:0.5 pwrate:25 pwsweep:0.3 ]", + "[ 17/8 → 9/4 | note:E3 s:pulse pw:0.5 pwrate:25 pwsweep:0.3 ]", + "[ 9/4 → 19/8 | note:F#3 s:pulse pw:0.5 pwrate:25 pwsweep:0.3 ]", + "[ 19/8 → 5/2 | note:A3 s:pulse pw:0.5 pwrate:25 pwsweep:0.3 ]", + "[ 5/2 → 21/8 | note:B3 s:pulse pw:0.5 pwrate:25 pwsweep:0.3 ]", + "[ 21/8 → 11/4 | note:D4 s:pulse pw:0.5 pwrate:25 pwsweep:0.3 ]", + "[ 11/4 → 23/8 | note:E4 s:pulse pw:0.5 pwrate:25 pwsweep:0.3 ]", + "[ 23/8 → 3/1 | note:F#4 s:pulse pw:0.5 pwrate:25 pwsweep:0.3 ]", + "[ 3/1 → 25/8 | note:D3 s:pulse pw:0.5 pwrate:5 pwsweep:0.8 ]", + "[ 25/8 → 13/4 | note:E3 s:pulse pw:0.5 pwrate:5 pwsweep:0.8 ]", + "[ 13/4 → 27/8 | note:F#3 s:pulse pw:0.5 pwrate:5 pwsweep:0.8 ]", + "[ 27/8 → 7/2 | note:A3 s:pulse pw:0.5 pwrate:5 pwsweep:0.8 ]", + "[ 7/2 → 29/8 | note:B3 s:pulse pw:0.5 pwrate:5 pwsweep:0.8 ]", + "[ 29/8 → 15/4 | note:D4 s:pulse pw:0.5 pwrate:5 pwsweep:0.8 ]", + "[ 15/4 → 31/8 | note:E4 s:pulse pw:0.5 pwrate:5 pwsweep:0.8 ]", + "[ 31/8 → 4/1 | note:F#4 s:pulse pw:0.5 pwrate:5 pwsweep:0.8 ]", +] +`; + exports[`runs examples > example "queryArc" example index 0 1`] = `[]`; exports[`runs examples > example "rand" example index 0 1`] = ` [ - "[ 0/1 → 1/8 | s:hh cutoff:6819.558387622237 ]", - "[ 0/1 → 1/4 | s:bd cutoff:5639.116775244474 ]", - "[ 1/8 → 1/4 | s:hh cutoff:2004.9930522218347 ]", - "[ 1/4 → 3/8 | s:hh cutoff:4756.746228784323 ]", - "[ 1/4 → 1/2 | s:bd cutoff:3510.4438681155443 ]", - "[ 3/8 → 1/2 | s:hh cutoff:2761.9159147143364 ]", - "[ 1/2 → 5/8 | s:hh cutoff:1729.9383850768209 ]", - "[ 1/2 → 3/4 | s:bd cutoff:1517.2690078616142 ]", - "[ 5/8 → 3/4 | s:hh cutoff:3566.087872721255 ]", - "[ 3/4 → 7/8 | s:hh cutoff:6137.170048430562 ]", - "[ 3/4 → 1/1 | s:bd cutoff:3482.2331061586738 ]", - "[ 7/8 → 1/1 | s:hh cutoff:5772.184181958437 ]", - "[ 1/1 → 9/8 | s:hh cutoff:4614.746660925448 ]", - "[ 1/1 → 5/4 | s:bd cutoff:5543.671359308064 ]", - "[ 9/8 → 5/4 | s:hh cutoff:1113.0998814478517 ]", - "[ 5/4 → 11/8 | s:hh cutoff:1107.8209029510617 ]", - "[ 5/4 → 3/2 | s:bd cutoff:1871.028139255941 ]", - "[ 11/8 → 3/2 | s:hh cutoff:4310.953143984079 ]", - "[ 3/2 → 13/8 | s:hh cutoff:1781.9574819877744 ]", - "[ 3/2 → 7/4 | s:bd cutoff:4225.660336203873 ]", - "[ 13/8 → 7/4 | s:hh cutoff:2719.179579988122 ]", - "[ 7/4 → 15/8 | s:hh cutoff:4021.807170473039 ]", - "[ 7/4 → 2/1 | s:bd cutoff:4959.178843535483 ]", - "[ 15/8 → 2/1 | s:hh cutoff:7004.444479942322 ]", - "[ 2/1 → 17/8 | s:hh cutoff:2993.588156066835 ]", - "[ 2/1 → 9/4 | s:bd cutoff:7275.427204556763 ]", - "[ 17/8 → 9/4 | s:hh cutoff:777.5058569386601 ]", - "[ 9/4 → 19/8 | s:hh cutoff:5487.157452851534 ]", - "[ 9/4 → 5/2 | s:bd cutoff:6773.7998040392995 ]", - "[ 19/8 → 5/2 | s:hh cutoff:1567.3565790057182 ]", - "[ 5/2 → 21/8 | s:hh cutoff:5051.505241543055 ]", - "[ 5/2 → 11/4 | s:bd cutoff:1701.4511320739985 ]", - "[ 21/8 → 11/4 | s:hh cutoff:4535.26512440294 ]", - "[ 11/4 → 23/8 | s:hh cutoff:7184.7053822129965 ]", - "[ 11/4 → 3/1 | s:bd cutoff:621.9062879681587 ]", - "[ 23/8 → 3/1 | s:hh cutoff:2622.942116111517 ]", - "[ 3/1 → 25/8 | s:hh cutoff:593.8915926963091 ]", - "[ 3/1 → 13/4 | s:bd cutoff:3074.329087510705 ]", - "[ 25/8 → 13/4 | s:hh cutoff:7293.169681914151 ]", - "[ 13/4 → 27/8 | s:hh cutoff:2926.4930188655853 ]", - "[ 13/4 → 7/2 | s:bd cutoff:3565.1885084807873 ]", - "[ 27/8 → 7/2 | s:hh cutoff:6317.582858726382 ]", - "[ 7/2 → 29/8 | s:hh cutoff:6600.099291652441 ]", - "[ 7/2 → 15/4 | s:bd cutoff:7543.614340946078 ]", - "[ 29/8 → 15/4 | s:hh cutoff:7798.531164415181 ]", - "[ 15/4 → 31/8 | s:hh cutoff:1256.6942740231752 ]", - "[ 15/4 → 4/1 | s:bd cutoff:6021.249040029943 ]", - "[ 31/8 → 4/1 | s:hh cutoff:2792.31677018106 ]", + "[ 0/1 → 1/8 | s:hh cutoff:500 ]", + "[ 0/1 → 1/4 | s:bd cutoff:500 ]", + "[ 1/8 → 1/4 | s:hh cutoff:5639.116775244474 ]", + "[ 1/4 → 3/8 | s:hh cutoff:3273.1976890936494 ]", + "[ 1/4 → 1/2 | s:bd cutoff:3273.1976890936494 ]", + "[ 3/8 → 1/2 | s:hh cutoff:3510.4438681155443 ]", + "[ 1/2 → 5/8 | s:hh cutoff:2453.604621812701 ]", + "[ 1/2 → 3/4 | s:bd cutoff:2453.604621812701 ]", + "[ 5/8 → 3/4 | s:hh cutoff:1517.2690078616142 ]", + "[ 3/4 → 7/8 | s:hh cutoff:1968.6986012384295 ]", + "[ 3/4 → 1/1 | s:bd cutoff:1968.6986012384295 ]", + "[ 7/8 → 1/1 | s:hh cutoff:3482.2331061586738 ]", + "[ 1/1 → 9/8 | s:hh cutoff:4396.566238254309 ]", + "[ 1/1 → 5/4 | s:bd cutoff:4396.566238254309 ]", + "[ 9/8 → 5/4 | s:hh cutoff:5543.671359308064 ]", + "[ 5/4 → 11/8 | s:hh cutoff:5965.461523272097 ]", + "[ 5/4 → 3/2 | s:bd cutoff:5965.461523272097 ]", + "[ 11/8 → 3/2 | s:hh cutoff:1871.028139255941 ]", + "[ 3/2 → 13/8 | s:hh cutoff:5063.060561195016 ]", + "[ 3/2 → 7/4 | s:bd cutoff:5063.060561195016 ]", + "[ 13/8 → 7/4 | s:hh cutoff:4225.660336203873 ]", + "[ 7/4 → 15/8 | s:hh cutoff:2035.5342207476497 ]", + "[ 7/4 → 2/1 | s:bd cutoff:2035.5342207476497 ]", + "[ 15/8 → 2/1 | s:hh cutoff:4959.178843535483 ]", + "[ 2/1 → 17/8 | s:hh cutoff:7696.453399956226 ]", + "[ 2/1 → 9/4 | s:bd cutoff:7696.453399956226 ]", + "[ 17/8 → 9/4 | s:hh cutoff:7275.427204556763 ]", + "[ 9/4 → 19/8 | s:hh cutoff:3091.1188358440995 ]", + "[ 9/4 → 5/2 | s:bd cutoff:3091.1188358440995 ]", + "[ 19/8 → 5/2 | s:hh cutoff:6773.7998040392995 ]", + "[ 5/2 → 21/8 | s:hh cutoff:3939.620556309819 ]", + "[ 5/2 → 11/4 | s:bd cutoff:3939.620556309819 ]", + "[ 21/8 → 11/4 | s:hh cutoff:1701.4511320739985 ]", + "[ 11/4 → 23/8 | s:hh cutoff:5249.245778657496 ]", + "[ 11/4 → 3/1 | s:bd cutoff:5249.245778657496 ]", + "[ 23/8 → 3/1 | s:hh cutoff:621.9062879681587 ]", + "[ 3/1 → 25/8 | s:hh cutoff:2129.6683298423886 ]", + "[ 3/1 → 13/4 | s:bd cutoff:2129.6683298423886 ]", + "[ 25/8 → 13/4 | s:hh cutoff:3074.329087510705 ]", + "[ 13/4 → 27/8 | s:hh cutoff:7942.738036625087 ]", + "[ 13/4 → 7/2 | s:bd cutoff:7942.738036625087 ]", + "[ 27/8 → 7/2 | s:hh cutoff:3565.1885084807873 ]", + "[ 7/2 → 29/8 | s:hh cutoff:3574.6161099523306 ]", + "[ 7/2 → 15/4 | s:bd cutoff:3574.6161099523306 ]", + "[ 29/8 → 15/4 | s:hh cutoff:7543.614340946078 ]", + "[ 15/4 → 31/8 | s:hh cutoff:6591.254916973412 ]", + "[ 15/4 → 4/1 | s:bd cutoff:6591.254916973412 ]", + "[ 31/8 → 4/1 | s:hh cutoff:6021.249040029943 ]", ] `; exports[`runs examples > example "range" example index 0 1`] = ` [ - "[ 0/1 → 1/8 | s:hh cutoff:2919.6960066389074 ]", - "[ 0/1 → 1/4 | s:bd cutoff:3487.436867076458 ]", - "[ 1/8 → 1/4 | s:hh cutoff:3866.789181894752 ]", - "[ 1/4 → 3/8 | s:hh cutoff:3866.789181894752 ]", - "[ 1/4 → 1/2 | s:sd cutoff:3487.436867076458 ]", - "[ 3/8 → 1/2 | s:hh cutoff:2919.6960066389074 ]", - "[ 1/2 → 5/8 | s:hh cutoff:1580.3039933610933 ]", - "[ 1/2 → 3/4 | s:bd cutoff:1012.563132923542 ]", - "[ 5/8 → 3/4 | s:hh cutoff:633.2108181052486 ]", - "[ 3/4 → 7/8 | s:hh cutoff:633.2108181052483 ]", - "[ 3/4 → 1/1 | s:sd cutoff:1012.5631329235415 ]", - "[ 7/8 → 1/1 | s:hh cutoff:1580.303993361092 ]", - "[ 1/1 → 9/8 | s:hh cutoff:2919.6960066389074 ]", - "[ 1/1 → 5/4 | s:bd cutoff:3487.436867076458 ]", - "[ 9/8 → 5/4 | s:hh cutoff:3866.7891818947514 ]", - "[ 5/4 → 11/8 | s:hh cutoff:3866.789181894752 ]", - "[ 5/4 → 3/2 | s:sd cutoff:3487.4368670764597 ]", - "[ 11/8 → 3/2 | s:hh cutoff:2919.6960066389083 ]", - "[ 3/2 → 13/8 | s:hh cutoff:1580.3039933610928 ]", - "[ 3/2 → 7/4 | s:bd cutoff:1012.5631329235412 ]", - "[ 13/8 → 7/4 | s:hh cutoff:633.2108181052488 ]", - "[ 7/4 → 15/8 | s:hh cutoff:633.2108181052482 ]", - "[ 7/4 → 2/1 | s:sd cutoff:1012.5631329235401 ]", - "[ 15/8 → 2/1 | s:hh cutoff:1580.3039933610914 ]", - "[ 2/1 → 17/8 | s:hh cutoff:2919.696006638907 ]", - "[ 2/1 → 9/4 | s:bd cutoff:3487.436867076459 ]", - "[ 17/8 → 9/4 | s:hh cutoff:3866.7891818947514 ]", - "[ 9/4 → 19/8 | s:hh cutoff:3866.7891818947523 ]", - "[ 9/4 → 5/2 | s:sd cutoff:3487.43686707646 ]", - "[ 19/8 → 5/2 | s:hh cutoff:2919.696006638909 ]", - "[ 5/2 → 21/8 | s:hh cutoff:1580.303993361096 ]", - "[ 5/2 → 11/4 | s:bd cutoff:1012.5631329235415 ]", - "[ 21/8 → 11/4 | s:hh cutoff:633.210818105249 ]", - "[ 11/4 → 23/8 | s:hh cutoff:633.210818105248 ]", - "[ 11/4 → 3/1 | s:sd cutoff:1012.5631329235398 ]", - "[ 23/8 → 3/1 | s:hh cutoff:1580.303993361094 ]", - "[ 3/1 → 25/8 | s:hh cutoff:2919.696006638904 ]", - "[ 3/1 → 13/4 | s:bd cutoff:3487.4368670764584 ]", - "[ 25/8 → 13/4 | s:hh cutoff:3866.789181894751 ]", - "[ 13/4 → 27/8 | s:hh cutoff:3866.7891818947523 ]", - "[ 13/4 → 7/2 | s:sd cutoff:3487.43686707646 ]", - "[ 27/8 → 7/2 | s:hh cutoff:2919.6960066389065 ]", - "[ 7/2 → 29/8 | s:hh cutoff:1580.3039933610964 ]", - "[ 7/2 → 15/4 | s:bd cutoff:1012.5631329235417 ]", - "[ 29/8 → 15/4 | s:hh cutoff:633.210818105249 ]", - "[ 15/4 → 31/8 | s:hh cutoff:633.2108181052479 ]", - "[ 15/4 → 4/1 | s:sd cutoff:1012.5631329235396 ]", - "[ 31/8 → 4/1 | s:hh cutoff:1580.3039933610935 ]", + "[ 0/1 → 1/8 | s:hh cutoff:2250 ]", + "[ 0/1 → 1/4 | s:bd cutoff:2250 ]", + "[ 1/8 → 1/4 | s:hh cutoff:3487.436867076458 ]", + "[ 1/4 → 3/8 | s:hh cutoff:4000 ]", + "[ 1/4 → 1/2 | s:sd cutoff:4000 ]", + "[ 3/8 → 1/2 | s:hh cutoff:3487.436867076458 ]", + "[ 1/2 → 5/8 | s:hh cutoff:2250.0000000000005 ]", + "[ 1/2 → 3/4 | s:bd cutoff:2250.0000000000005 ]", + "[ 5/8 → 3/4 | s:hh cutoff:1012.563132923542 ]", + "[ 3/4 → 7/8 | s:hh cutoff:500 ]", + "[ 3/4 → 1/1 | s:sd cutoff:500 ]", + "[ 7/8 → 1/1 | s:hh cutoff:1012.5631329235415 ]", + "[ 1/1 → 9/8 | s:hh cutoff:2249.9999999999995 ]", + "[ 1/1 → 5/4 | s:bd cutoff:2249.9999999999995 ]", + "[ 9/8 → 5/4 | s:hh cutoff:3487.436867076458 ]", + "[ 5/4 → 11/8 | s:hh cutoff:4000 ]", + "[ 5/4 → 3/2 | s:sd cutoff:4000 ]", + "[ 11/8 → 3/2 | s:hh cutoff:3487.4368670764597 ]", + "[ 3/2 → 13/8 | s:hh cutoff:2250.000000000001 ]", + "[ 3/2 → 7/4 | s:bd cutoff:2250.000000000001 ]", + "[ 13/8 → 7/4 | s:hh cutoff:1012.5631329235412 ]", + "[ 7/4 → 15/8 | s:hh cutoff:500 ]", + "[ 7/4 → 2/1 | s:sd cutoff:500 ]", + "[ 15/8 → 2/1 | s:hh cutoff:1012.5631329235401 ]", + "[ 2/1 → 17/8 | s:hh cutoff:2249.999999999999 ]", + "[ 2/1 → 9/4 | s:bd cutoff:2249.999999999999 ]", + "[ 17/8 → 9/4 | s:hh cutoff:3487.436867076459 ]", + "[ 9/4 → 19/8 | s:hh cutoff:4000 ]", + "[ 9/4 → 5/2 | s:sd cutoff:4000 ]", + "[ 19/8 → 5/2 | s:hh cutoff:3487.43686707646 ]", + "[ 5/2 → 21/8 | s:hh cutoff:2250.000000000001 ]", + "[ 5/2 → 11/4 | s:bd cutoff:2250.000000000001 ]", + "[ 21/8 → 11/4 | s:hh cutoff:1012.5631329235415 ]", + "[ 11/4 → 23/8 | s:hh cutoff:500 ]", + "[ 11/4 → 3/1 | s:sd cutoff:500 ]", + "[ 23/8 → 3/1 | s:hh cutoff:1012.5631329235398 ]", + "[ 3/1 → 25/8 | s:hh cutoff:2249.9999999999986 ]", + "[ 3/1 → 13/4 | s:bd cutoff:2249.9999999999986 ]", + "[ 25/8 → 13/4 | s:hh cutoff:3487.4368670764584 ]", + "[ 13/4 → 27/8 | s:hh cutoff:4000 ]", + "[ 13/4 → 7/2 | s:sd cutoff:4000 ]", + "[ 27/8 → 7/2 | s:hh cutoff:3487.43686707646 ]", + "[ 7/2 → 29/8 | s:hh cutoff:2250.000000000002 ]", + "[ 7/2 → 15/4 | s:bd cutoff:2250.000000000002 ]", + "[ 29/8 → 15/4 | s:hh cutoff:1012.5631329235417 ]", + "[ 15/4 → 31/8 | s:hh cutoff:500 ]", + "[ 15/4 → 4/1 | s:sd cutoff:500 ]", + "[ 31/8 → 4/1 | s:hh cutoff:1012.5631329235396 ]", ] `; exports[`runs examples > example "range2" example index 0 1`] = ` [ - "[ 0/1 → 1/8 | s:hh cutoff:2919.6960066389074 ]", - "[ 0/1 → 1/4 | s:bd cutoff:3487.436867076458 ]", - "[ 1/8 → 1/4 | s:hh cutoff:3866.789181894752 ]", - "[ 1/4 → 3/8 | s:hh cutoff:3866.789181894752 ]", - "[ 1/4 → 1/2 | s:sd cutoff:3487.436867076458 ]", - "[ 3/8 → 1/2 | s:hh cutoff:2919.6960066389074 ]", - "[ 1/2 → 5/8 | s:hh cutoff:1580.3039933610933 ]", - "[ 1/2 → 3/4 | s:bd cutoff:1012.563132923542 ]", - "[ 5/8 → 3/4 | s:hh cutoff:633.2108181052486 ]", - "[ 3/4 → 7/8 | s:hh cutoff:633.2108181052483 ]", - "[ 3/4 → 1/1 | s:sd cutoff:1012.5631329235415 ]", - "[ 7/8 → 1/1 | s:hh cutoff:1580.303993361092 ]", - "[ 1/1 → 9/8 | s:hh cutoff:2919.6960066389074 ]", - "[ 1/1 → 5/4 | s:bd cutoff:3487.436867076458 ]", - "[ 9/8 → 5/4 | s:hh cutoff:3866.7891818947514 ]", - "[ 5/4 → 11/8 | s:hh cutoff:3866.789181894752 ]", - "[ 5/4 → 3/2 | s:sd cutoff:3487.4368670764597 ]", - "[ 11/8 → 3/2 | s:hh cutoff:2919.6960066389083 ]", - "[ 3/2 → 13/8 | s:hh cutoff:1580.3039933610928 ]", - "[ 3/2 → 7/4 | s:bd cutoff:1012.5631329235412 ]", - "[ 13/8 → 7/4 | s:hh cutoff:633.2108181052488 ]", - "[ 7/4 → 15/8 | s:hh cutoff:633.2108181052482 ]", - "[ 7/4 → 2/1 | s:sd cutoff:1012.5631329235401 ]", - "[ 15/8 → 2/1 | s:hh cutoff:1580.3039933610914 ]", - "[ 2/1 → 17/8 | s:hh cutoff:2919.696006638907 ]", - "[ 2/1 → 9/4 | s:bd cutoff:3487.436867076459 ]", - "[ 17/8 → 9/4 | s:hh cutoff:3866.7891818947514 ]", - "[ 9/4 → 19/8 | s:hh cutoff:3866.7891818947523 ]", - "[ 9/4 → 5/2 | s:sd cutoff:3487.43686707646 ]", - "[ 19/8 → 5/2 | s:hh cutoff:2919.696006638909 ]", - "[ 5/2 → 21/8 | s:hh cutoff:1580.303993361096 ]", - "[ 5/2 → 11/4 | s:bd cutoff:1012.5631329235415 ]", - "[ 21/8 → 11/4 | s:hh cutoff:633.210818105249 ]", - "[ 11/4 → 23/8 | s:hh cutoff:633.210818105248 ]", - "[ 11/4 → 3/1 | s:sd cutoff:1012.5631329235398 ]", - "[ 23/8 → 3/1 | s:hh cutoff:1580.303993361094 ]", - "[ 3/1 → 25/8 | s:hh cutoff:2919.696006638904 ]", - "[ 3/1 → 13/4 | s:bd cutoff:3487.4368670764584 ]", - "[ 25/8 → 13/4 | s:hh cutoff:3866.789181894751 ]", - "[ 13/4 → 27/8 | s:hh cutoff:3866.7891818947523 ]", - "[ 13/4 → 7/2 | s:sd cutoff:3487.43686707646 ]", - "[ 27/8 → 7/2 | s:hh cutoff:2919.6960066389065 ]", - "[ 7/2 → 29/8 | s:hh cutoff:1580.3039933610964 ]", - "[ 7/2 → 15/4 | s:bd cutoff:1012.5631329235417 ]", - "[ 29/8 → 15/4 | s:hh cutoff:633.210818105249 ]", - "[ 15/4 → 31/8 | s:hh cutoff:633.2108181052479 ]", - "[ 15/4 → 4/1 | s:sd cutoff:1012.5631329235396 ]", - "[ 31/8 → 4/1 | s:hh cutoff:1580.3039933610935 ]", + "[ 0/1 → 1/8 | s:hh cutoff:2250 ]", + "[ 0/1 → 1/4 | s:bd cutoff:2250 ]", + "[ 1/8 → 1/4 | s:hh cutoff:3487.436867076458 ]", + "[ 1/4 → 3/8 | s:hh cutoff:4000 ]", + "[ 1/4 → 1/2 | s:sd cutoff:4000 ]", + "[ 3/8 → 1/2 | s:hh cutoff:3487.436867076458 ]", + "[ 1/2 → 5/8 | s:hh cutoff:2250.0000000000005 ]", + "[ 1/2 → 3/4 | s:bd cutoff:2250.0000000000005 ]", + "[ 5/8 → 3/4 | s:hh cutoff:1012.563132923542 ]", + "[ 3/4 → 7/8 | s:hh cutoff:500 ]", + "[ 3/4 → 1/1 | s:sd cutoff:500 ]", + "[ 7/8 → 1/1 | s:hh cutoff:1012.5631329235415 ]", + "[ 1/1 → 9/8 | s:hh cutoff:2249.9999999999995 ]", + "[ 1/1 → 5/4 | s:bd cutoff:2249.9999999999995 ]", + "[ 9/8 → 5/4 | s:hh cutoff:3487.436867076458 ]", + "[ 5/4 → 11/8 | s:hh cutoff:4000 ]", + "[ 5/4 → 3/2 | s:sd cutoff:4000 ]", + "[ 11/8 → 3/2 | s:hh cutoff:3487.4368670764597 ]", + "[ 3/2 → 13/8 | s:hh cutoff:2250.000000000001 ]", + "[ 3/2 → 7/4 | s:bd cutoff:2250.000000000001 ]", + "[ 13/8 → 7/4 | s:hh cutoff:1012.5631329235412 ]", + "[ 7/4 → 15/8 | s:hh cutoff:500 ]", + "[ 7/4 → 2/1 | s:sd cutoff:500 ]", + "[ 15/8 → 2/1 | s:hh cutoff:1012.5631329235401 ]", + "[ 2/1 → 17/8 | s:hh cutoff:2249.999999999999 ]", + "[ 2/1 → 9/4 | s:bd cutoff:2249.999999999999 ]", + "[ 17/8 → 9/4 | s:hh cutoff:3487.436867076459 ]", + "[ 9/4 → 19/8 | s:hh cutoff:4000 ]", + "[ 9/4 → 5/2 | s:sd cutoff:4000 ]", + "[ 19/8 → 5/2 | s:hh cutoff:3487.43686707646 ]", + "[ 5/2 → 21/8 | s:hh cutoff:2250.000000000001 ]", + "[ 5/2 → 11/4 | s:bd cutoff:2250.000000000001 ]", + "[ 21/8 → 11/4 | s:hh cutoff:1012.5631329235415 ]", + "[ 11/4 → 23/8 | s:hh cutoff:500 ]", + "[ 11/4 → 3/1 | s:sd cutoff:500 ]", + "[ 23/8 → 3/1 | s:hh cutoff:1012.5631329235398 ]", + "[ 3/1 → 25/8 | s:hh cutoff:2249.9999999999986 ]", + "[ 3/1 → 13/4 | s:bd cutoff:2249.9999999999986 ]", + "[ 25/8 → 13/4 | s:hh cutoff:3487.4368670764584 ]", + "[ 13/4 → 27/8 | s:hh cutoff:4000 ]", + "[ 13/4 → 7/2 | s:sd cutoff:4000 ]", + "[ 27/8 → 7/2 | s:hh cutoff:3487.43686707646 ]", + "[ 7/2 → 29/8 | s:hh cutoff:2250.000000000002 ]", + "[ 7/2 → 15/4 | s:bd cutoff:2250.000000000002 ]", + "[ 29/8 → 15/4 | s:hh cutoff:1012.5631329235417 ]", + "[ 15/4 → 31/8 | s:hh cutoff:500 ]", + "[ 15/4 → 4/1 | s:sd cutoff:500 ]", + "[ 31/8 → 4/1 | s:hh cutoff:1012.5631329235396 ]", ] `; exports[`runs examples > example "rangex" example index 0 1`] = ` [ - "[ 0/1 → 1/8 | s:hh cutoff:2105.2990079237074 ]", - "[ 0/1 → 1/4 | s:bd cutoff:2949.8879833392693 ]", - "[ 1/8 → 1/4 | s:hh cutoff:3695.6273740439246 ]", - "[ 1/4 → 3/8 | s:hh cutoff:3695.6273740439246 ]", - "[ 1/4 → 1/2 | s:sd cutoff:2949.8879833392693 ]", - "[ 3/8 → 1/2 | s:hh cutoff:2105.2990079237074 ]", - "[ 1/2 → 5/8 | s:hh cutoff:949.9838229499019 ]", - "[ 1/2 → 3/4 | s:bd cutoff:677.9918462313955 ]", - "[ 5/8 → 3/4 | s:hh cutoff:541.1801022058963 ]", - "[ 3/4 → 7/8 | s:hh cutoff:541.1801022058963 ]", - "[ 3/4 → 1/1 | s:sd cutoff:677.9918462313955 ]", - "[ 7/8 → 1/1 | s:hh cutoff:949.9838229499011 ]", - "[ 1/1 → 9/8 | s:hh cutoff:2105.2990079237093 ]", - "[ 1/1 → 5/4 | s:bd cutoff:2949.8879833392693 ]", - "[ 9/8 → 5/4 | s:hh cutoff:3695.6273740439246 ]", - "[ 5/4 → 11/8 | s:hh cutoff:3695.6273740439246 ]", - "[ 5/4 → 3/2 | s:sd cutoff:2949.887983339272 ]", - "[ 11/8 → 3/2 | s:hh cutoff:2105.2990079237093 ]", - "[ 3/2 → 13/8 | s:hh cutoff:949.9838229499019 ]", - "[ 3/2 → 7/4 | s:bd cutoff:677.9918462313955 ]", - "[ 13/8 → 7/4 | s:hh cutoff:541.1801022058963 ]", - "[ 7/4 → 15/8 | s:hh cutoff:541.1801022058963 ]", - "[ 7/4 → 2/1 | s:sd cutoff:677.9918462313948 ]", - "[ 15/8 → 2/1 | s:hh cutoff:949.9838229499011 ]", - "[ 2/1 → 17/8 | s:hh cutoff:2105.2990079237074 ]", - "[ 2/1 → 9/4 | s:bd cutoff:2949.8879833392693 ]", - "[ 17/8 → 9/4 | s:hh cutoff:3695.6273740439246 ]", - "[ 9/4 → 19/8 | s:hh cutoff:3695.6273740439246 ]", - "[ 9/4 → 5/2 | s:sd cutoff:2949.887983339272 ]", - "[ 19/8 → 5/2 | s:hh cutoff:2105.2990079237093 ]", - "[ 5/2 → 21/8 | s:hh cutoff:949.9838229499036 ]", - "[ 5/2 → 11/4 | s:bd cutoff:677.9918462313955 ]", - "[ 21/8 → 11/4 | s:hh cutoff:541.1801022058963 ]", - "[ 11/4 → 23/8 | s:hh cutoff:541.1801022058963 ]", - "[ 11/4 → 3/1 | s:sd cutoff:677.9918462313948 ]", - "[ 23/8 → 3/1 | s:hh cutoff:949.9838229499028 ]", - "[ 3/1 → 25/8 | s:hh cutoff:2105.2990079237034 ]", - "[ 3/1 → 13/4 | s:bd cutoff:2949.8879833392693 ]", - "[ 25/8 → 13/4 | s:hh cutoff:3695.6273740439246 ]", - "[ 13/4 → 27/8 | s:hh cutoff:3695.6273740439246 ]", - "[ 13/4 → 7/2 | s:sd cutoff:2949.887983339272 ]", - "[ 27/8 → 7/2 | s:hh cutoff:2105.2990079237074 ]", - "[ 7/2 → 29/8 | s:hh cutoff:949.9838229499036 ]", - "[ 7/2 → 15/4 | s:bd cutoff:677.9918462313955 ]", - "[ 29/8 → 15/4 | s:hh cutoff:541.1801022058963 ]", - "[ 15/4 → 31/8 | s:hh cutoff:541.1801022058959 ]", - "[ 15/4 → 4/1 | s:sd cutoff:677.9918462313948 ]", - "[ 31/8 → 4/1 | s:hh cutoff:949.9838229499019 ]", + "[ 0/1 → 1/8 | s:hh cutoff:1414.2135623730946 ]", + "[ 0/1 → 1/4 | s:bd cutoff:1414.2135623730946 ]", + "[ 1/8 → 1/4 | s:hh cutoff:2949.8879833392693 ]", + "[ 1/4 → 3/8 | s:hh cutoff:3999.9999999999995 ]", + "[ 1/4 → 1/2 | s:sd cutoff:3999.9999999999995 ]", + "[ 3/8 → 1/2 | s:hh cutoff:2949.8879833392693 ]", + "[ 1/2 → 5/8 | s:hh cutoff:1414.2135623730946 ]", + "[ 1/2 → 3/4 | s:bd cutoff:1414.2135623730946 ]", + "[ 5/8 → 3/4 | s:hh cutoff:677.9918462313955 ]", + "[ 3/4 → 7/8 | s:hh cutoff:499.99999999999983 ]", + "[ 3/4 → 1/1 | s:sd cutoff:499.99999999999983 ]", + "[ 7/8 → 1/1 | s:hh cutoff:677.9918462313955 ]", + "[ 1/1 → 9/8 | s:hh cutoff:1414.2135623730946 ]", + "[ 1/1 → 5/4 | s:bd cutoff:1414.2135623730946 ]", + "[ 9/8 → 5/4 | s:hh cutoff:2949.8879833392693 ]", + "[ 5/4 → 11/8 | s:hh cutoff:3999.9999999999995 ]", + "[ 5/4 → 3/2 | s:sd cutoff:3999.9999999999995 ]", + "[ 11/8 → 3/2 | s:hh cutoff:2949.887983339272 ]", + "[ 3/2 → 13/8 | s:hh cutoff:1414.213562373096 ]", + "[ 3/2 → 7/4 | s:bd cutoff:1414.213562373096 ]", + "[ 13/8 → 7/4 | s:hh cutoff:677.9918462313955 ]", + "[ 7/4 → 15/8 | s:hh cutoff:499.99999999999983 ]", + "[ 7/4 → 2/1 | s:sd cutoff:499.99999999999983 ]", + "[ 15/8 → 2/1 | s:hh cutoff:677.9918462313948 ]", + "[ 2/1 → 17/8 | s:hh cutoff:1414.2135623730935 ]", + "[ 2/1 → 9/4 | s:bd cutoff:1414.2135623730935 ]", + "[ 17/8 → 9/4 | s:hh cutoff:2949.8879833392693 ]", + "[ 9/4 → 19/8 | s:hh cutoff:3999.9999999999995 ]", + "[ 9/4 → 5/2 | s:sd cutoff:3999.9999999999995 ]", + "[ 19/8 → 5/2 | s:hh cutoff:2949.887983339272 ]", + "[ 5/2 → 21/8 | s:hh cutoff:1414.213562373096 ]", + "[ 5/2 → 11/4 | s:bd cutoff:1414.213562373096 ]", + "[ 21/8 → 11/4 | s:hh cutoff:677.9918462313955 ]", + "[ 11/4 → 23/8 | s:hh cutoff:499.99999999999983 ]", + "[ 11/4 → 3/1 | s:sd cutoff:499.99999999999983 ]", + "[ 23/8 → 3/1 | s:hh cutoff:677.9918462313948 ]", + "[ 3/1 → 25/8 | s:hh cutoff:1414.2135623730935 ]", + "[ 3/1 → 13/4 | s:bd cutoff:1414.2135623730935 ]", + "[ 25/8 → 13/4 | s:hh cutoff:2949.8879833392693 ]", + "[ 13/4 → 27/8 | s:hh cutoff:3999.9999999999995 ]", + "[ 13/4 → 7/2 | s:sd cutoff:3999.9999999999995 ]", + "[ 27/8 → 7/2 | s:hh cutoff:2949.887983339272 ]", + "[ 7/2 → 29/8 | s:hh cutoff:1414.213562373096 ]", + "[ 7/2 → 15/4 | s:bd cutoff:1414.213562373096 ]", + "[ 29/8 → 15/4 | s:hh cutoff:677.9918462313955 ]", + "[ 15/4 → 31/8 | s:hh cutoff:499.99999999999983 ]", + "[ 15/4 → 4/1 | s:sd cutoff:499.99999999999983 ]", + "[ 31/8 → 4/1 | s:hh cutoff:677.9918462313948 ]", ] `; exports[`runs examples > example "rarely" example index 0 1`] = ` [ - "[ 0/1 → 1/8 | s:hh ]", - "[ 1/8 → 1/4 | s:hh speed:0.5 ]", + "[ 0/1 → 1/8 | s:hh speed:0.5 ]", + "[ 1/8 → 1/4 | s:hh ]", "[ 1/4 → 3/8 | s:hh ]", "[ 3/8 → 1/2 | s:hh ]", - "[ 1/2 → 5/8 | s:hh speed:0.5 ]", - "[ 5/8 → 3/4 | s:hh ]", - "[ 3/4 → 7/8 | s:hh ]", + "[ 1/2 → 5/8 | s:hh ]", + "[ 5/8 → 3/4 | s:hh speed:0.5 ]", + "[ 3/4 → 7/8 | s:hh speed:0.5 ]", "[ 7/8 → 1/1 | s:hh ]", "[ 1/1 → 9/8 | s:hh ]", - "[ 9/8 → 5/4 | s:hh speed:0.5 ]", - "[ 5/4 → 11/8 | s:hh speed:0.5 ]", - "[ 11/8 → 3/2 | s:hh ]", - "[ 3/2 → 13/8 | s:hh speed:0.5 ]", + "[ 9/8 → 5/4 | s:hh ]", + "[ 5/4 → 11/8 | s:hh ]", + "[ 11/8 → 3/2 | s:hh speed:0.5 ]", + "[ 3/2 → 13/8 | s:hh ]", "[ 13/8 → 7/4 | s:hh ]", - "[ 7/4 → 15/8 | s:hh ]", + "[ 7/4 → 15/8 | s:hh speed:0.5 ]", "[ 15/8 → 2/1 | s:hh ]", "[ 2/1 → 17/8 | s:hh ]", - "[ 17/8 → 9/4 | s:hh speed:0.5 ]", + "[ 17/8 → 9/4 | s:hh ]", "[ 9/4 → 19/8 | s:hh ]", - "[ 19/8 → 5/2 | s:hh speed:0.5 ]", + "[ 19/8 → 5/2 | s:hh ]", "[ 5/2 → 21/8 | s:hh ]", - "[ 21/8 → 11/4 | s:hh ]", + "[ 21/8 → 11/4 | s:hh speed:0.5 ]", "[ 11/4 → 23/8 | s:hh ]", - "[ 23/8 → 3/1 | s:hh ]", + "[ 23/8 → 3/1 | s:hh speed:0.5 ]", "[ 3/1 → 25/8 | s:hh speed:0.5 ]", "[ 25/8 → 13/4 | s:hh ]", "[ 13/4 → 27/8 | s:hh ]", "[ 27/8 → 7/2 | s:hh ]", "[ 7/2 → 29/8 | s:hh ]", "[ 29/8 → 15/4 | s:hh ]", - "[ 15/4 → 31/8 | s:hh speed:0.5 ]", + "[ 15/4 → 31/8 | s:hh ]", "[ 31/8 → 4/1 | s:hh ]", ] `; @@ -5664,22 +7725,22 @@ exports[`runs examples > example "release" example index 0 1`] = ` exports[`runs examples > example "repeatCycles" example index 0 1`] = ` [ - "[ 0/1 → 1/4 | note:42 s:gm_acoustic_guitar_nylon ]", + "[ 0/1 → 1/4 | note:34 s:gm_acoustic_guitar_nylon ]", "[ 1/4 → 1/2 | note:38 s:gm_acoustic_guitar_nylon ]", - "[ 1/2 → 3/4 | note:35 s:gm_acoustic_guitar_nylon ]", - "[ 3/4 → 1/1 | note:38 s:gm_acoustic_guitar_nylon ]", - "[ 1/1 → 5/4 | note:42 s:gm_acoustic_guitar_nylon ]", + "[ 1/2 → 3/4 | note:37 s:gm_acoustic_guitar_nylon ]", + "[ 3/4 → 1/1 | note:36 s:gm_acoustic_guitar_nylon ]", + "[ 1/1 → 5/4 | note:34 s:gm_acoustic_guitar_nylon ]", "[ 5/4 → 3/2 | note:38 s:gm_acoustic_guitar_nylon ]", - "[ 3/2 → 7/4 | note:35 s:gm_acoustic_guitar_nylon ]", - "[ 7/4 → 2/1 | note:38 s:gm_acoustic_guitar_nylon ]", - "[ 2/1 → 9/4 | note:42 s:gm_acoustic_guitar_nylon ]", - "[ 9/4 → 5/2 | note:36 s:gm_acoustic_guitar_nylon ]", - "[ 5/2 → 11/4 | note:39 s:gm_acoustic_guitar_nylon ]", - "[ 11/4 → 3/1 | note:41 s:gm_acoustic_guitar_nylon ]", - "[ 3/1 → 13/4 | note:42 s:gm_acoustic_guitar_nylon ]", - "[ 13/4 → 7/2 | note:36 s:gm_acoustic_guitar_nylon ]", - "[ 7/2 → 15/4 | note:39 s:gm_acoustic_guitar_nylon ]", - "[ 15/4 → 4/1 | note:41 s:gm_acoustic_guitar_nylon ]", + "[ 3/2 → 7/4 | note:37 s:gm_acoustic_guitar_nylon ]", + "[ 7/4 → 2/1 | note:36 s:gm_acoustic_guitar_nylon ]", + "[ 2/1 → 9/4 | note:40 s:gm_acoustic_guitar_nylon ]", + "[ 9/4 → 5/2 | note:42 s:gm_acoustic_guitar_nylon ]", + "[ 5/2 → 11/4 | note:41 s:gm_acoustic_guitar_nylon ]", + "[ 11/4 → 3/1 | note:36 s:gm_acoustic_guitar_nylon ]", + "[ 3/1 → 13/4 | note:40 s:gm_acoustic_guitar_nylon ]", + "[ 13/4 → 7/2 | note:42 s:gm_acoustic_guitar_nylon ]", + "[ 7/2 → 15/4 | note:41 s:gm_acoustic_guitar_nylon ]", + "[ 15/4 → 4/1 | note:36 s:gm_acoustic_guitar_nylon ]", ] `; @@ -5808,35 +7869,76 @@ exports[`runs examples > example "rev" example index 0 1`] = ` exports[`runs examples > example "ribbon" example index 0 1`] = ` [ - "[ 0/1 → 1/2 | note:d ]", - "[ 1/2 → 1/1 | note:e ]", - "[ 1/1 → 3/2 | note:d ]", - "[ 3/2 → 2/1 | note:e ]", - "[ 2/1 → 5/2 | note:d ]", - "[ 5/2 → 3/1 | note:e ]", - "[ 3/1 → 7/2 | note:d ]", - "[ 7/2 → 4/1 | note:e ]", + "[ 0/1 → 1/1 | note:d ]", + "[ 1/1 → 2/1 | note:e ]", + "[ 2/1 → 3/1 | note:d ]", + "[ 3/1 → 4/1 | note:e ]", ] `; exports[`runs examples > example "ribbon" example index 1 1`] = ` [ - "[ 0/1 → 1/4 | note:C3 ]", - "[ 1/4 → 1/2 | note:G3 ]", - "[ 1/2 → 3/4 | note:Eb3 ]", - "[ 3/4 → 1/1 | note:Bb3 ]", - "[ 1/1 → 5/4 | note:C3 ]", - "[ 5/4 → 3/2 | note:D3 ]", - "[ 3/2 → 7/4 | note:G3 ]", - "[ 7/4 → 2/1 | note:Eb3 ]", - "[ 2/1 → 9/4 | note:C3 ]", - "[ 9/4 → 5/2 | note:G3 ]", - "[ 5/2 → 11/4 | note:Eb3 ]", - "[ 11/4 → 3/1 | note:Bb3 ]", - "[ 3/1 → 13/4 | note:C3 ]", - "[ 13/4 → 7/2 | note:D3 ]", - "[ 7/2 → 15/4 | note:G3 ]", - "[ 15/4 → 4/1 | note:Eb3 ]", + "[ 0/1 → 1/4 | note:A3 ]", + "[ 1/4 → 1/2 | note:C3 ]", + "[ 1/2 → 3/4 | note:D3 ]", + "[ 3/4 → 1/1 | note:G3 ]", + "[ 1/1 → 5/4 | note:E3 ]", + "[ 5/4 → 3/2 | note:C4 ]", + "[ 3/2 → 7/4 | note:A3 ]", + "[ 7/4 → 2/1 | note:E4 ]", + "[ 2/1 → 9/4 | note:A3 ]", + "[ 9/4 → 5/2 | note:C3 ]", + "[ 5/2 → 11/4 | note:D3 ]", + "[ 11/4 → 3/1 | note:G3 ]", + "[ 3/1 → 13/4 | note:E3 ]", + "[ 13/4 → 7/2 | note:C4 ]", + "[ 7/2 → 15/4 | note:A3 ]", + "[ 15/4 → 4/1 | note:E4 ]", +] +`; + +exports[`runs examples > example "ribbon" example index 2 1`] = ` +[ + "[ 1/16 → 1/8 | s:bd ]", + "[ 1/8 → 3/16 | s:bd ]", + "[ 3/16 → 1/4 | s:bd ]", + "[ 1/4 → 5/16 | s:bd ]", + "[ 3/8 → 7/16 | s:bd ]", + "[ 9/16 → 5/8 | s:bd ]", + "[ 5/8 → 11/16 | s:bd ]", + "[ 11/16 → 3/4 | s:bd ]", + "[ 3/4 → 13/16 | s:bd ]", + "[ 7/8 → 15/16 | s:bd ]", + "[ 17/16 → 9/8 | s:bd ]", + "[ 9/8 → 19/16 | s:bd ]", + "[ 19/16 → 5/4 | s:bd ]", + "[ 5/4 → 21/16 | s:bd ]", + "[ 11/8 → 23/16 | s:bd ]", + "[ 25/16 → 13/8 | s:bd ]", + "[ 13/8 → 27/16 | s:bd ]", + "[ 27/16 → 7/4 | s:bd ]", + "[ 7/4 → 29/16 | s:bd ]", + "[ 15/8 → 31/16 | s:bd ]", + "[ 33/16 → 17/8 | s:bd ]", + "[ 17/8 → 35/16 | s:bd ]", + "[ 35/16 → 9/4 | s:bd ]", + "[ 9/4 → 37/16 | s:bd ]", + "[ 19/8 → 39/16 | s:bd ]", + "[ 41/16 → 21/8 | s:bd ]", + "[ 21/8 → 43/16 | s:bd ]", + "[ 43/16 → 11/4 | s:bd ]", + "[ 11/4 → 45/16 | s:bd ]", + "[ 23/8 → 47/16 | s:bd ]", + "[ 49/16 → 25/8 | s:bd ]", + "[ 25/8 → 51/16 | s:bd ]", + "[ 51/16 → 13/4 | s:bd ]", + "[ 13/4 → 53/16 | s:bd ]", + "[ 27/8 → 55/16 | s:bd ]", + "[ 57/16 → 29/8 | s:bd ]", + "[ 29/8 → 59/16 | s:bd ]", + "[ 59/16 → 15/4 | s:bd ]", + "[ 15/4 → 61/16 | s:bd ]", + "[ 31/8 → 63/16 | s:bd ]", ] `; @@ -6131,135 +8233,6 @@ exports[`runs examples > example "s" example index 1 1`] = ` ] `; -exports[`runs examples > example "s_alt" 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 "s_cat" 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 "s_cat" 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 "s_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 "s_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 "samples" example index 0 1`] = ` [ "[ 0/1 → 1/4 | s:bd ]", @@ -6348,91 +8321,91 @@ exports[`runs examples > example "samples" example index 3 1`] = ` exports[`runs examples > example "saw" example index 0 1`] = ` [ - "[ 0/1 → 1/8 | note:c3 clip:0.03125 ]", - "[ 1/8 → 1/4 | note:eb3 clip:0.09375 ]", - "[ 1/8 → 1/4 | note:g3 clip:0.09375 ]", - "[ 1/4 → 3/8 | note:g2 clip:0.15625 ]", - "[ 3/8 → 1/2 | note:g3 clip:0.21875 ]", - "[ 3/8 → 1/2 | note:bb3 clip:0.21875 ]", - "[ 1/2 → 5/8 | note:c3 clip:0.28125 ]", - "[ 5/8 → 3/4 | note:eb3 clip:0.34375 ]", - "[ 5/8 → 3/4 | note:g3 clip:0.34375 ]", - "[ 3/4 → 7/8 | note:g2 clip:0.40625 ]", - "[ 7/8 → 1/1 | note:g3 clip:0.46875 ]", - "[ 7/8 → 1/1 | note:bb3 clip:0.46875 ]", - "[ 1/1 → 9/8 | note:c3 clip:0.53125 ]", - "[ 9/8 → 5/4 | note:eb3 clip:0.59375 ]", - "[ 9/8 → 5/4 | note:g3 clip:0.59375 ]", - "[ 5/4 → 11/8 | note:g2 clip:0.65625 ]", - "[ 11/8 → 3/2 | note:g3 clip:0.71875 ]", - "[ 11/8 → 3/2 | note:bb3 clip:0.71875 ]", - "[ 3/2 → 13/8 | note:c3 clip:0.78125 ]", - "[ 13/8 → 7/4 | note:eb3 clip:0.84375 ]", - "[ 13/8 → 7/4 | note:g3 clip:0.84375 ]", - "[ 7/4 → 15/8 | note:g2 clip:0.90625 ]", - "[ 15/8 → 2/1 | note:g3 clip:0.96875 ]", - "[ 15/8 → 2/1 | note:bb3 clip:0.96875 ]", - "[ 2/1 → 17/8 | note:c3 clip:0.03125 ]", - "[ 17/8 → 9/4 | note:eb3 clip:0.09375 ]", - "[ 17/8 → 9/4 | note:g3 clip:0.09375 ]", - "[ 9/4 → 19/8 | note:g2 clip:0.15625 ]", - "[ 19/8 → 5/2 | note:g3 clip:0.21875 ]", - "[ 19/8 → 5/2 | note:bb3 clip:0.21875 ]", - "[ 5/2 → 21/8 | note:c3 clip:0.28125 ]", - "[ 21/8 → 11/4 | note:eb3 clip:0.34375 ]", - "[ 21/8 → 11/4 | note:g3 clip:0.34375 ]", - "[ 11/4 → 23/8 | note:g2 clip:0.40625 ]", - "[ 23/8 → 3/1 | note:g3 clip:0.46875 ]", - "[ 23/8 → 3/1 | note:bb3 clip:0.46875 ]", - "[ 3/1 → 25/8 | note:c3 clip:0.53125 ]", - "[ 25/8 → 13/4 | note:eb3 clip:0.59375 ]", - "[ 25/8 → 13/4 | note:g3 clip:0.59375 ]", - "[ 13/4 → 27/8 | note:g2 clip:0.65625 ]", - "[ 27/8 → 7/2 | note:g3 clip:0.71875 ]", - "[ 27/8 → 7/2 | note:bb3 clip:0.71875 ]", - "[ 7/2 → 29/8 | note:c3 clip:0.78125 ]", - "[ 29/8 → 15/4 | note:eb3 clip:0.84375 ]", - "[ 29/8 → 15/4 | note:g3 clip:0.84375 ]", - "[ 15/4 → 31/8 | note:g2 clip:0.90625 ]", - "[ 31/8 → 4/1 | note:g3 clip:0.96875 ]", - "[ 31/8 → 4/1 | note:bb3 clip:0.96875 ]", + "[ 0/1 → 1/8 | note:c3 clip:0 ]", + "[ 1/8 → 1/4 | note:eb3 clip:0.0625 ]", + "[ 1/8 → 1/4 | note:g3 clip:0.0625 ]", + "[ 1/4 → 3/8 | note:g2 clip:0.125 ]", + "[ 3/8 → 1/2 | note:g3 clip:0.1875 ]", + "[ 3/8 → 1/2 | note:bb3 clip:0.1875 ]", + "[ 1/2 → 5/8 | note:c3 clip:0.25 ]", + "[ 5/8 → 3/4 | note:eb3 clip:0.3125 ]", + "[ 5/8 → 3/4 | note:g3 clip:0.3125 ]", + "[ 3/4 → 7/8 | note:g2 clip:0.375 ]", + "[ 7/8 → 1/1 | note:g3 clip:0.4375 ]", + "[ 7/8 → 1/1 | note:bb3 clip:0.4375 ]", + "[ 1/1 → 9/8 | note:c3 clip:0.5 ]", + "[ 9/8 → 5/4 | note:eb3 clip:0.5625 ]", + "[ 9/8 → 5/4 | note:g3 clip:0.5625 ]", + "[ 5/4 → 11/8 | note:g2 clip:0.625 ]", + "[ 11/8 → 3/2 | note:g3 clip:0.6875 ]", + "[ 11/8 → 3/2 | note:bb3 clip:0.6875 ]", + "[ 3/2 → 13/8 | note:c3 clip:0.75 ]", + "[ 13/8 → 7/4 | note:eb3 clip:0.8125 ]", + "[ 13/8 → 7/4 | note:g3 clip:0.8125 ]", + "[ 7/4 → 15/8 | note:g2 clip:0.875 ]", + "[ 15/8 → 2/1 | note:g3 clip:0.9375 ]", + "[ 15/8 → 2/1 | note:bb3 clip:0.9375 ]", + "[ 2/1 → 17/8 | note:c3 clip:0 ]", + "[ 17/8 → 9/4 | note:eb3 clip:0.0625 ]", + "[ 17/8 → 9/4 | note:g3 clip:0.0625 ]", + "[ 9/4 → 19/8 | note:g2 clip:0.125 ]", + "[ 19/8 → 5/2 | note:g3 clip:0.1875 ]", + "[ 19/8 → 5/2 | note:bb3 clip:0.1875 ]", + "[ 5/2 → 21/8 | note:c3 clip:0.25 ]", + "[ 21/8 → 11/4 | note:eb3 clip:0.3125 ]", + "[ 21/8 → 11/4 | note:g3 clip:0.3125 ]", + "[ 11/4 → 23/8 | note:g2 clip:0.375 ]", + "[ 23/8 → 3/1 | note:g3 clip:0.4375 ]", + "[ 23/8 → 3/1 | note:bb3 clip:0.4375 ]", + "[ 3/1 → 25/8 | note:c3 clip:0.5 ]", + "[ 25/8 → 13/4 | note:eb3 clip:0.5625 ]", + "[ 25/8 → 13/4 | note:g3 clip:0.5625 ]", + "[ 13/4 → 27/8 | note:g2 clip:0.625 ]", + "[ 27/8 → 7/2 | note:g3 clip:0.6875 ]", + "[ 27/8 → 7/2 | note:bb3 clip:0.6875 ]", + "[ 7/2 → 29/8 | note:c3 clip:0.75 ]", + "[ 29/8 → 15/4 | note:eb3 clip:0.8125 ]", + "[ 29/8 → 15/4 | note:g3 clip:0.8125 ]", + "[ 15/4 → 31/8 | note:g2 clip:0.875 ]", + "[ 31/8 → 4/1 | note:g3 clip:0.9375 ]", + "[ 31/8 → 4/1 | note:bb3 clip:0.9375 ]", ] `; exports[`runs examples > example "saw" example index 1 1`] = ` [ - "[ 0/1 → 1/8 | note:D3 ]", - "[ 1/8 → 1/4 | note:E3 ]", - "[ 1/4 → 3/8 | note:F3 ]", - "[ 3/8 → 1/2 | note:G3 ]", - "[ 1/2 → 5/8 | note:A3 ]", - "[ 5/8 → 3/4 | note:B3 ]", - "[ 3/4 → 7/8 | note:C4 ]", - "[ 7/8 → 1/1 | note:D4 ]", - "[ 1/1 → 9/8 | note:D3 ]", - "[ 9/8 → 5/4 | note:E3 ]", - "[ 5/4 → 11/8 | note:F3 ]", - "[ 11/8 → 3/2 | note:G3 ]", - "[ 3/2 → 13/8 | note:A3 ]", - "[ 13/8 → 7/4 | note:B3 ]", - "[ 7/4 → 15/8 | note:C4 ]", - "[ 15/8 → 2/1 | note:D4 ]", - "[ 2/1 → 17/8 | note:D3 ]", - "[ 17/8 → 9/4 | note:E3 ]", - "[ 9/4 → 19/8 | note:F3 ]", - "[ 19/8 → 5/2 | note:G3 ]", - "[ 5/2 → 21/8 | note:A3 ]", - "[ 21/8 → 11/4 | note:B3 ]", - "[ 11/4 → 23/8 | note:C4 ]", - "[ 23/8 → 3/1 | note:D4 ]", - "[ 3/1 → 25/8 | note:D3 ]", - "[ 25/8 → 13/4 | note:E3 ]", - "[ 13/4 → 27/8 | note:F3 ]", - "[ 27/8 → 7/2 | note:G3 ]", - "[ 7/2 → 29/8 | note:A3 ]", - "[ 29/8 → 15/4 | note:B3 ]", - "[ 15/4 → 31/8 | note:C4 ]", - "[ 31/8 → 4/1 | note:D4 ]", + "[ 0/1 → 1/8 | note:C3 ]", + "[ 1/8 → 1/4 | note:D3 ]", + "[ 1/4 → 3/8 | note:E3 ]", + "[ 3/8 → 1/2 | note:F3 ]", + "[ 1/2 → 5/8 | note:G3 ]", + "[ 5/8 → 3/4 | note:A3 ]", + "[ 3/4 → 7/8 | note:B3 ]", + "[ 7/8 → 1/1 | note:C4 ]", + "[ 1/1 → 9/8 | note:C3 ]", + "[ 9/8 → 5/4 | note:D3 ]", + "[ 5/4 → 11/8 | note:E3 ]", + "[ 11/8 → 3/2 | note:F3 ]", + "[ 3/2 → 13/8 | note:G3 ]", + "[ 13/8 → 7/4 | note:A3 ]", + "[ 7/4 → 15/8 | note:B3 ]", + "[ 15/8 → 2/1 | note:C4 ]", + "[ 2/1 → 17/8 | note:C3 ]", + "[ 17/8 → 9/4 | note:D3 ]", + "[ 9/4 → 19/8 | note:E3 ]", + "[ 19/8 → 5/2 | note:F3 ]", + "[ 5/2 → 21/8 | note:G3 ]", + "[ 21/8 → 11/4 | note:A3 ]", + "[ 11/4 → 23/8 | note:B3 ]", + "[ 23/8 → 3/1 | note:C4 ]", + "[ 3/1 → 25/8 | note:C3 ]", + "[ 25/8 → 13/4 | note:D3 ]", + "[ 13/4 → 27/8 | note:E3 ]", + "[ 27/8 → 7/2 | note:F3 ]", + "[ 7/2 → 29/8 | note:G3 ]", + "[ 29/8 → 15/4 | note:A3 ]", + "[ 15/4 → 31/8 | note:B3 ]", + "[ 31/8 → 4/1 | note:C4 ]", ] `; @@ -6496,38 +8469,38 @@ exports[`runs examples > example "scale" example index 1 1`] = ` exports[`runs examples > example "scale" example index 2 1`] = ` [ - "[ 0/1 → 1/8 | note:D5 s:piano ]", - "[ 1/8 → 1/4 | note:G3 s:piano ]", - "[ 1/4 → 3/8 | note:F4 s:piano ]", - "[ 3/8 → 1/2 | note:A3 s:piano ]", - "[ 1/2 → 5/8 | note:F3 s:piano ]", - "[ 5/8 → 3/4 | note:C4 s:piano ]", - "[ 3/4 → 7/8 | note:C5 s:piano ]", - "[ 7/8 → 1/1 | note:A4 s:piano ]", + "[ 0/1 → 1/8 | note:C3 s:piano ]", + "[ 1/8 → 1/4 | note:A4 s:piano ]", + "[ 1/4 → 3/8 | note:C4 s:piano ]", + "[ 3/8 → 1/2 | note:C4 s:piano ]", + "[ 1/2 → 5/8 | note:A3 s:piano ]", + "[ 5/8 → 3/4 | note:F3 s:piano ]", + "[ 3/4 → 7/8 | note:G3 s:piano ]", + "[ 7/8 → 1/1 | note:C4 s:piano ]", "[ 1/1 → 9/8 | note:F4 s:piano ]", - "[ 9/8 → 5/4 | note:D3 s:piano ]", - "[ 5/4 → 11/8 | note:D3 s:piano ]", - "[ 11/8 → 3/2 | note:F4 s:piano ]", - "[ 3/2 → 13/8 | note:G3 s:piano ]", - "[ 13/8 → 7/4 | note:A3 s:piano ]", - "[ 7/4 → 15/8 | note:D4 s:piano ]", - "[ 15/8 → 2/1 | note:D5 s:piano ]", - "[ 2/1 → 17/8 | note:A3 s:piano ]", - "[ 17/8 → 9/4 | note:D3 s:piano ]", - "[ 9/4 → 19/8 | note:G4 s:piano ]", - "[ 19/8 → 5/2 | note:F3 s:piano ]", - "[ 5/2 → 21/8 | note:G4 s:piano ]", - "[ 21/8 → 11/4 | note:F4 s:piano ]", - "[ 11/4 → 23/8 | note:D5 s:piano ]", - "[ 23/8 → 3/1 | note:A3 s:piano ]", - "[ 3/1 → 25/8 | note:D3 s:piano ]", - "[ 25/8 → 13/4 | note:D5 s:piano ]", - "[ 13/4 → 27/8 | note:A3 s:piano ]", - "[ 27/8 → 7/2 | note:C5 s:piano ]", - "[ 7/2 → 29/8 | note:C5 s:piano ]", + "[ 9/8 → 5/4 | note:A4 s:piano ]", + "[ 5/4 → 11/8 | note:A4 s:piano ]", + "[ 11/8 → 3/2 | note:G3 s:piano ]", + "[ 3/2 → 13/8 | note:G4 s:piano ]", + "[ 13/8 → 7/4 | note:D4 s:piano ]", + "[ 7/4 → 15/8 | note:G3 s:piano ]", + "[ 15/8 → 2/1 | note:G4 s:piano ]", + "[ 2/1 → 17/8 | note:F5 s:piano ]", + "[ 17/8 → 9/4 | note:D5 s:piano ]", + "[ 9/4 → 19/8 | note:C4 s:piano ]", + "[ 19/8 → 5/2 | note:D5 s:piano ]", + "[ 5/2 → 21/8 | note:D4 s:piano ]", + "[ 21/8 → 11/4 | note:F3 s:piano ]", + "[ 11/4 → 23/8 | note:G4 s:piano ]", + "[ 23/8 → 3/1 | note:D3 s:piano ]", + "[ 3/1 → 25/8 | note:G3 s:piano ]", + "[ 25/8 → 13/4 | note:C4 s:piano ]", + "[ 13/4 → 27/8 | note:F5 s:piano ]", + "[ 27/8 → 7/2 | note:C4 s:piano ]", + "[ 7/2 → 29/8 | note:C4 s:piano ]", "[ 29/8 → 15/4 | note:F5 s:piano ]", - "[ 15/4 → 31/8 | note:F3 s:piano ]", - "[ 31/8 → 4/1 | note:A3 s:piano ]", + "[ 15/4 → 31/8 | note:C5 s:piano ]", + "[ 31/8 → 4/1 | note:A4 s:piano ]", ] `; @@ -6554,115 +8527,228 @@ exports[`runs examples > example "scaleTranspose" example index 0 1`] = ` exports[`runs examples > example "scope" example index 0 1`] = ` [ - "[ 0/1 → 1/1 | s:sawtooth analyze:1 ]", - "[ 1/1 → 2/1 | s:sawtooth analyze:1 ]", - "[ 2/1 → 3/1 | s:sawtooth analyze:1 ]", - "[ 3/1 → 4/1 | s:sawtooth analyze:1 ]", + "[ 0/1 → 1/1 | s:sawtooth ]", + "[ 1/1 → 2/1 | s:sawtooth ]", + "[ 2/1 → 3/1 | s:sawtooth ]", + "[ 3/1 → 4/1 | s:sawtooth ]", +] +`; + +exports[`runs examples > example "scramble" example index 0 1`] = ` +[ + "[ 0/1 → 1/4 | note:c s:piano ]", + "[ 1/4 → 1/2 | note:d s:piano ]", + "[ 1/2 → 3/4 | note:d s:piano ]", + "[ 3/4 → 1/1 | note:c s:piano ]", + "[ 1/1 → 5/4 | note:e s:piano ]", + "[ 5/4 → 3/2 | note:e s:piano ]", + "[ 3/2 → 7/4 | note:e s:piano ]", + "[ 7/4 → 2/1 | note:c s:piano ]", + "[ 2/1 → 9/4 | note:f s:piano ]", + "[ 9/4 → 5/2 | note:d s:piano ]", + "[ 5/2 → 11/4 | note:d s:piano ]", + "[ 11/4 → 3/1 | note:e s:piano ]", + "[ 3/1 → 13/4 | note:c s:piano ]", + "[ 13/4 → 7/2 | note:f s:piano ]", + "[ 7/2 → 15/4 | note:d s:piano ]", + "[ 15/4 → 4/1 | note:f s:piano ]", +] +`; + +exports[`runs examples > example "scramble" example index 1 1`] = ` +[ + "[ 0/1 → 1/8 | note:c s:piano ]", + "[ 1/8 → 1/4 | note:d s:piano ]", + "[ 1/4 → 3/8 | note:d s:piano ]", + "[ 3/8 → 1/2 | note:c s:piano ]", + "[ 1/2 → 1/1 | note:g s:piano ]", + "[ 1/1 → 9/8 | note:e s:piano ]", + "[ 9/8 → 5/4 | note:e s:piano ]", + "[ 5/4 → 11/8 | note:e s:piano ]", + "[ 11/8 → 3/2 | note:c s:piano ]", + "[ 3/2 → 2/1 | note:g s:piano ]", + "[ 2/1 → 17/8 | note:f s:piano ]", + "[ 17/8 → 9/4 | note:d s:piano ]", + "[ 9/4 → 19/8 | note:d s:piano ]", + "[ 19/8 → 5/2 | note:e s:piano ]", + "[ 5/2 → 3/1 | note:g s:piano ]", + "[ 3/1 → 25/8 | note:c s:piano ]", + "[ 25/8 → 13/4 | note:f s:piano ]", + "[ 13/4 → 27/8 | note:d s:piano ]", + "[ 27/8 → 7/2 | note:f s:piano ]", + "[ 7/2 → 4/1 | note:g s:piano ]", +] +`; + +exports[`runs examples > example "scrub" example index 0 1`] = ` +[ + "[ 0/1 → 1/8 | s:swpad n:0 begin:0.1 speed:1 clip:1 ]", + "[ 1/8 → 1/4 | s:swpad n:0 begin:0.1 speed:1 clip:1 ]", + "[ 1/4 → 5/8 | s:swpad n:0 begin:0.25 speed:1 clip:1 ]", + "[ 5/8 → 3/4 | s:swpad n:0 begin:0.7 speed:1 clip:1 ]", + "[ 3/4 → 7/8 | s:swpad n:0 begin:0.7 speed:1 clip:1 ]", + "[ 7/8 → 1/1 | s:swpad n:0 begin:0.8 speed:1.5 clip:1 ]", + "[ 1/1 → 9/8 | s:swpad n:0 begin:0.1 speed:1 clip:1 ]", + "[ 9/8 → 5/4 | s:swpad n:0 begin:0.1 speed:1 clip:1 ]", + "[ 5/4 → 13/8 | s:swpad n:0 begin:0.25 speed:1 clip:1 ]", + "[ 13/8 → 7/4 | s:swpad n:0 begin:0.7 speed:1 clip:1 ]", + "[ 7/4 → 15/8 | s:swpad n:0 begin:0.7 speed:1 clip:1 ]", + "[ 15/8 → 2/1 | s:swpad n:0 begin:0.8 speed:1.5 clip:1 ]", + "[ 2/1 → 17/8 | s:swpad n:0 begin:0.1 speed:1 clip:1 ]", + "[ 17/8 → 9/4 | s:swpad n:0 begin:0.1 speed:1 clip:1 ]", + "[ 9/4 → 21/8 | s:swpad n:0 begin:0.25 speed:1 clip:1 ]", + "[ 21/8 → 11/4 | s:swpad n:0 begin:0.7 speed:1 clip:1 ]", + "[ 11/4 → 23/8 | s:swpad n:0 begin:0.7 speed:1 clip:1 ]", + "[ 23/8 → 3/1 | s:swpad n:0 begin:0.8 speed:1.5 clip:1 ]", + "[ 3/1 → 25/8 | s:swpad n:0 begin:0.1 speed:1 clip:1 ]", + "[ 25/8 → 13/4 | s:swpad n:0 begin:0.1 speed:1 clip:1 ]", + "[ 13/4 → 29/8 | s:swpad n:0 begin:0.25 speed:1 clip:1 ]", + "[ 29/8 → 15/4 | s:swpad n:0 begin:0.7 speed:1 clip:1 ]", + "[ 15/4 → 31/8 | s:swpad n:0 begin:0.7 speed:1 clip:1 ]", + "[ 31/8 → 4/1 | s:swpad n:0 begin:0.8 speed:1.5 clip:1 ]", +] +`; + +exports[`runs examples > example "scrub" example index 1 1`] = ` +[ + "[ 0/1 → 3/8 | s:amen speed:0.25 unit:c begin:0 clip:1 ]", + "[ 3/8 → 5/8 | s:amen speed:0.25 unit:c begin:0 clip:1 ]", + "[ 5/8 → 1/1 | s:amen speed:0.25 unit:c begin:0.25 clip:1 ]", + "[ 1/1 → 11/8 | s:amen speed:0.25 unit:c begin:0 clip:1 ]", + "[ 11/8 → 13/8 | s:amen speed:0.25 unit:c begin:0 clip:1 ]", + "[ 13/8 → 2/1 | s:amen speed:0.25 unit:c begin:0.25 clip:1 ]", + "[ 2/1 → 19/8 | s:amen speed:0.25 unit:c begin:0 clip:1 ]", + "[ 19/8 → 21/8 | s:amen speed:0.25 unit:c begin:0 clip:1 ]", + "[ 21/8 → 3/1 | s:amen speed:0.25 unit:c begin:0.25 clip:1 ]", + "[ 3/1 → 27/8 | s:amen speed:0.25 unit:c begin:0 clip:1 ]", + "[ 27/8 → 29/8 | s:amen speed:0.25 unit:c begin:0 clip:1 ]", + "[ 29/8 → 4/1 | s:amen speed:0.25 unit:c begin:0.25 clip:1 ]", ] `; exports[`runs examples > example "segment" example index 0 1`] = ` [ - "[ 0/1 → 1/24 | note:40.25 ]", - "[ 1/24 → 1/12 | note:40.75 ]", - "[ 1/12 → 1/8 | note:41.25 ]", - "[ 1/8 → 1/6 | note:41.75 ]", - "[ 1/6 → 5/24 | note:42.25 ]", - "[ 5/24 → 1/4 | note:42.75 ]", - "[ 1/4 → 7/24 | note:43.25 ]", - "[ 7/24 → 1/3 | note:43.75 ]", - "[ 1/3 → 3/8 | note:44.25 ]", - "[ 3/8 → 5/12 | note:44.75 ]", - "[ 5/12 → 11/24 | note:45.25 ]", - "[ 11/24 → 1/2 | note:45.75 ]", - "[ 1/2 → 13/24 | note:46.25 ]", - "[ 13/24 → 7/12 | note:46.75 ]", - "[ 7/12 → 5/8 | note:47.25 ]", - "[ 5/8 → 2/3 | note:47.75 ]", - "[ 2/3 → 17/24 | note:48.25 ]", - "[ 17/24 → 3/4 | note:48.75 ]", - "[ 3/4 → 19/24 | note:49.25 ]", - "[ 19/24 → 5/6 | note:49.75 ]", - "[ 5/6 → 7/8 | note:50.25 ]", - "[ 7/8 → 11/12 | note:50.75 ]", - "[ 11/12 → 23/24 | note:51.25 ]", - "[ 23/24 → 1/1 | note:51.75 ]", - "[ 1/1 → 25/24 | note:40.25 ]", - "[ 25/24 → 13/12 | note:40.75 ]", - "[ 13/12 → 9/8 | note:41.25 ]", - "[ 9/8 → 7/6 | note:41.75 ]", - "[ 7/6 → 29/24 | note:42.25 ]", - "[ 29/24 → 5/4 | note:42.75 ]", - "[ 5/4 → 31/24 | note:43.25 ]", - "[ 31/24 → 4/3 | note:43.75 ]", - "[ 4/3 → 11/8 | note:44.25 ]", - "[ 11/8 → 17/12 | note:44.75 ]", - "[ 17/12 → 35/24 | note:45.25 ]", - "[ 35/24 → 3/2 | note:45.75 ]", - "[ 3/2 → 37/24 | note:46.25 ]", - "[ 37/24 → 19/12 | note:46.75 ]", - "[ 19/12 → 13/8 | note:47.25 ]", - "[ 13/8 → 5/3 | note:47.75 ]", - "[ 5/3 → 41/24 | note:48.25 ]", - "[ 41/24 → 7/4 | note:48.75 ]", - "[ 7/4 → 43/24 | note:49.25 ]", - "[ 43/24 → 11/6 | note:49.75 ]", - "[ 11/6 → 15/8 | note:50.25 ]", - "[ 15/8 → 23/12 | note:50.75 ]", - "[ 23/12 → 47/24 | note:51.25 ]", - "[ 47/24 → 2/1 | note:51.75 ]", - "[ 2/1 → 49/24 | note:40.25 ]", - "[ 49/24 → 25/12 | note:40.75 ]", - "[ 25/12 → 17/8 | note:41.25 ]", - "[ 17/8 → 13/6 | note:41.75 ]", - "[ 13/6 → 53/24 | note:42.25 ]", - "[ 53/24 → 9/4 | note:42.75 ]", - "[ 9/4 → 55/24 | note:43.25 ]", - "[ 55/24 → 7/3 | note:43.75 ]", - "[ 7/3 → 19/8 | note:44.25 ]", - "[ 19/8 → 29/12 | note:44.75 ]", - "[ 29/12 → 59/24 | note:45.25 ]", - "[ 59/24 → 5/2 | note:45.75 ]", - "[ 5/2 → 61/24 | note:46.25 ]", - "[ 61/24 → 31/12 | note:46.75 ]", - "[ 31/12 → 21/8 | note:47.25 ]", - "[ 21/8 → 8/3 | note:47.75 ]", - "[ 8/3 → 65/24 | note:48.25 ]", - "[ 65/24 → 11/4 | note:48.75 ]", - "[ 11/4 → 67/24 | note:49.25 ]", - "[ 67/24 → 17/6 | note:49.75 ]", - "[ 17/6 → 23/8 | note:50.25 ]", - "[ 23/8 → 35/12 | note:50.75 ]", - "[ 35/12 → 71/24 | note:51.25 ]", - "[ 71/24 → 3/1 | note:51.75 ]", - "[ 3/1 → 73/24 | note:40.25 ]", - "[ 73/24 → 37/12 | note:40.75 ]", - "[ 37/12 → 25/8 | note:41.25 ]", - "[ 25/8 → 19/6 | note:41.75 ]", - "[ 19/6 → 77/24 | note:42.25 ]", - "[ 77/24 → 13/4 | note:42.75 ]", - "[ 13/4 → 79/24 | note:43.25 ]", - "[ 79/24 → 10/3 | note:43.75 ]", - "[ 10/3 → 27/8 | note:44.25 ]", - "[ 27/8 → 41/12 | note:44.75 ]", - "[ 41/12 → 83/24 | note:45.25 ]", - "[ 83/24 → 7/2 | note:45.75 ]", - "[ 7/2 → 85/24 | note:46.25 ]", - "[ 85/24 → 43/12 | note:46.75 ]", - "[ 43/12 → 29/8 | note:47.25 ]", - "[ 29/8 → 11/3 | note:47.75 ]", - "[ 11/3 → 89/24 | note:48.25 ]", - "[ 89/24 → 15/4 | note:48.75 ]", - "[ 15/4 → 91/24 | note:49.25 ]", - "[ 91/24 → 23/6 | note:49.75 ]", - "[ 23/6 → 31/8 | note:50.25 ]", - "[ 31/8 → 47/12 | note:50.75 ]", - "[ 47/12 → 95/24 | note:51.25 ]", - "[ 95/24 → 4/1 | note:51.75 ]", + "[ 0/1 → 1/24 | note:40 ]", + "[ 1/24 → 1/12 | note:40.5 ]", + "[ 1/12 → 1/8 | note:41 ]", + "[ 1/8 → 1/6 | note:41.5 ]", + "[ 1/6 → 5/24 | note:42 ]", + "[ 5/24 → 1/4 | note:42.5 ]", + "[ 1/4 → 7/24 | note:43 ]", + "[ 7/24 → 1/3 | note:43.5 ]", + "[ 1/3 → 3/8 | note:44 ]", + "[ 3/8 → 5/12 | note:44.5 ]", + "[ 5/12 → 11/24 | note:45 ]", + "[ 11/24 → 1/2 | note:45.5 ]", + "[ 1/2 → 13/24 | note:46 ]", + "[ 13/24 → 7/12 | note:46.5 ]", + "[ 7/12 → 5/8 | note:47 ]", + "[ 5/8 → 2/3 | note:47.5 ]", + "[ 2/3 → 17/24 | note:48 ]", + "[ 17/24 → 3/4 | note:48.5 ]", + "[ 3/4 → 19/24 | note:49 ]", + "[ 19/24 → 5/6 | note:49.5 ]", + "[ 5/6 → 7/8 | note:50 ]", + "[ 7/8 → 11/12 | note:50.5 ]", + "[ 11/12 → 23/24 | note:51 ]", + "[ 23/24 → 1/1 | note:51.5 ]", + "[ 1/1 → 25/24 | note:40 ]", + "[ 25/24 → 13/12 | note:40.5 ]", + "[ 13/12 → 9/8 | note:41 ]", + "[ 9/8 → 7/6 | note:41.5 ]", + "[ 7/6 → 29/24 | note:42 ]", + "[ 29/24 → 5/4 | note:42.5 ]", + "[ 5/4 → 31/24 | note:43 ]", + "[ 31/24 → 4/3 | note:43.5 ]", + "[ 4/3 → 11/8 | note:44 ]", + "[ 11/8 → 17/12 | note:44.5 ]", + "[ 17/12 → 35/24 | note:45 ]", + "[ 35/24 → 3/2 | note:45.5 ]", + "[ 3/2 → 37/24 | note:46 ]", + "[ 37/24 → 19/12 | note:46.5 ]", + "[ 19/12 → 13/8 | note:47 ]", + "[ 13/8 → 5/3 | note:47.5 ]", + "[ 5/3 → 41/24 | note:48 ]", + "[ 41/24 → 7/4 | note:48.5 ]", + "[ 7/4 → 43/24 | note:49 ]", + "[ 43/24 → 11/6 | note:49.5 ]", + "[ 11/6 → 15/8 | note:50 ]", + "[ 15/8 → 23/12 | note:50.5 ]", + "[ 23/12 → 47/24 | note:51 ]", + "[ 47/24 → 2/1 | note:51.5 ]", + "[ 2/1 → 49/24 | note:40 ]", + "[ 49/24 → 25/12 | note:40.5 ]", + "[ 25/12 → 17/8 | note:41 ]", + "[ 17/8 → 13/6 | note:41.5 ]", + "[ 13/6 → 53/24 | note:42 ]", + "[ 53/24 → 9/4 | note:42.5 ]", + "[ 9/4 → 55/24 | note:43 ]", + "[ 55/24 → 7/3 | note:43.5 ]", + "[ 7/3 → 19/8 | note:44 ]", + "[ 19/8 → 29/12 | note:44.5 ]", + "[ 29/12 → 59/24 | note:45 ]", + "[ 59/24 → 5/2 | note:45.5 ]", + "[ 5/2 → 61/24 | note:46 ]", + "[ 61/24 → 31/12 | note:46.5 ]", + "[ 31/12 → 21/8 | note:47 ]", + "[ 21/8 → 8/3 | note:47.5 ]", + "[ 8/3 → 65/24 | note:48 ]", + "[ 65/24 → 11/4 | note:48.5 ]", + "[ 11/4 → 67/24 | note:49 ]", + "[ 67/24 → 17/6 | note:49.5 ]", + "[ 17/6 → 23/8 | note:50 ]", + "[ 23/8 → 35/12 | note:50.5 ]", + "[ 35/12 → 71/24 | note:51 ]", + "[ 71/24 → 3/1 | note:51.5 ]", + "[ 3/1 → 73/24 | note:40 ]", + "[ 73/24 → 37/12 | note:40.5 ]", + "[ 37/12 → 25/8 | note:41 ]", + "[ 25/8 → 19/6 | note:41.5 ]", + "[ 19/6 → 77/24 | note:42 ]", + "[ 77/24 → 13/4 | note:42.5 ]", + "[ 13/4 → 79/24 | note:43 ]", + "[ 79/24 → 10/3 | note:43.5 ]", + "[ 10/3 → 27/8 | note:44 ]", + "[ 27/8 → 41/12 | note:44.5 ]", + "[ 41/12 → 83/24 | note:45 ]", + "[ 83/24 → 7/2 | note:45.5 ]", + "[ 7/2 → 85/24 | note:46 ]", + "[ 85/24 → 43/12 | note:46.5 ]", + "[ 43/12 → 29/8 | note:47 ]", + "[ 29/8 → 11/3 | note:47.5 ]", + "[ 11/3 → 89/24 | note:48 ]", + "[ 89/24 → 15/4 | note:48.5 ]", + "[ 15/4 → 91/24 | note:49 ]", + "[ 91/24 → 23/6 | note:49.5 ]", + "[ 23/6 → 31/8 | note:50 ]", + "[ 31/8 → 47/12 | note:50.5 ]", + "[ 47/12 → 95/24 | note:51 ]", + "[ 95/24 → 4/1 | note:51.5 ]", ] `; exports[`runs examples > example "seq" example index 0 1`] = ` +[ + "[ 0/1 → 1/3 | note:e5 ]", + "[ 1/3 → 2/3 | note:b4 ]", + "[ 2/3 → 5/6 | note:d5 ]", + "[ 5/6 → 1/1 | note:c5 ]", + "[ 1/1 → 4/3 | note:e5 ]", + "[ 4/3 → 5/3 | note:b4 ]", + "[ 5/3 → 11/6 | note:d5 ]", + "[ 11/6 → 2/1 | note:c5 ]", + "[ 2/1 → 7/3 | note:e5 ]", + "[ 7/3 → 8/3 | note:b4 ]", + "[ 8/3 → 17/6 | note:d5 ]", + "[ 17/6 → 3/1 | note:c5 ]", + "[ 3/1 → 10/3 | note:e5 ]", + "[ 10/3 → 11/3 | note:b4 ]", + "[ 11/3 → 23/6 | note:d5 ]", + "[ 23/6 → 4/1 | note:c5 ]", +] +`; + +exports[`runs examples > example "seq" example index 1 1`] = ` [ "[ 0/1 → 1/8 | s:hh ]", "[ 1/8 → 1/4 | s:hh ]", @@ -6703,24 +8789,52 @@ exports[`runs examples > example "seq" example index 0 1`] = ` ] `; -exports[`runs examples > example "seq" example index 0 2`] = ` +exports[`runs examples > example "seqPLoop" example index 0 1`] = ` [ - "[ 0/1 → 1/3 | note:e5 ]", - "[ 1/3 → 2/3 | note:b4 ]", - "[ 2/3 → 5/6 | note:d5 ]", - "[ 5/6 → 1/1 | note:c5 ]", - "[ 1/1 → 4/3 | note:e5 ]", - "[ 4/3 → 5/3 | note:b4 ]", - "[ 5/3 → 11/6 | note:d5 ]", - "[ 11/6 → 2/1 | note:c5 ]", - "[ 2/1 → 7/3 | note:e5 ]", - "[ 7/3 → 8/3 | note:b4 ]", - "[ 8/3 → 17/6 | note:d5 ]", - "[ 17/6 → 3/1 | note:c5 ]", - "[ 3/1 → 10/3 | note:e5 ]", - "[ 10/3 → 11/3 | note:b4 ]", - "[ 11/3 → 23/6 | note:d5 ]", - "[ 23/6 → 4/1 | note:c5 ]", + "[ 0/1 → 1/8 | s:bd ]", + "[ 3/8 → 1/2 | s:bd ]", + "[ 3/4 → 7/8 | s:bd ]", + "[ 1/1 → 9/8 | s:bd ]", + "[ 1/1 → 9/8 | s:cp ]", + "[ 11/8 → 3/2 | s:bd ]", + "[ 11/8 → 3/2 | s:cp ]", + "[ 7/4 → 15/8 | s:bd ]", + "[ 7/4 → 15/8 | s:cp ]", + "[ 2/1 → 17/8 | s:cp ]", + "[ 19/8 → 5/2 | s:cp ]", + "[ 11/4 → 23/8 | s:cp ]", + "[ 3/1 → 25/8 | s:bd ]", + "[ 27/8 → 7/2 | s:bd ]", + "[ 15/4 → 31/8 | s:bd ]", +] +`; + +exports[`runs examples > example "setcpm" example index 0 1`] = ` +[ + "[ 0/1 → 1/4 | s:bd bank:tr707 ]", + "[ 1/4 → 1/2 | s:bd bank:tr707 ]", + "[ 1/4 → 1/2 | s:sd bank:tr707 ]", + "[ 1/2 → 3/4 | s:bd bank:tr707 ]", + "[ 3/4 → 1/1 | s:bd bank:tr707 ]", + "[ 3/4 → 1/1 | s:sd bank:tr707 ]", + "[ 1/1 → 5/4 | s:bd bank:tr707 ]", + "[ 5/4 → 3/2 | s:bd bank:tr707 ]", + "[ 5/4 → 3/2 | s:sd bank:tr707 ]", + "[ 3/2 → 7/4 | s:bd bank:tr707 ]", + "[ 7/4 → 2/1 | s:bd bank:tr707 ]", + "[ 7/4 → 2/1 | s:sd bank:tr707 ]", + "[ 2/1 → 9/4 | s:bd bank:tr707 ]", + "[ 9/4 → 5/2 | s:bd bank:tr707 ]", + "[ 9/4 → 5/2 | s:sd bank:tr707 ]", + "[ 5/2 → 11/4 | s:bd bank:tr707 ]", + "[ 11/4 → 3/1 | s:bd bank:tr707 ]", + "[ 11/4 → 3/1 | s:sd bank:tr707 ]", + "[ 3/1 → 13/4 | s:bd bank:tr707 ]", + "[ 13/4 → 7/2 | s:bd bank:tr707 ]", + "[ 13/4 → 7/2 | s:sd bank:tr707 ]", + "[ 7/2 → 15/4 | s:bd bank:tr707 ]", + "[ 15/4 → 4/1 | s:bd bank:tr707 ]", + "[ 15/4 → 4/1 | s:sd bank:tr707 ]", ] `; @@ -6777,74 +8891,268 @@ exports[`runs examples > example "shape" example index 0 1`] = ` ] `; +exports[`runs examples > example "shrink" example index 0 1`] = ` +[ + "[ 0/1 → 1/10 | s:tha bank:mridangam ]", + "[ 1/10 → 1/5 | s:dhi bank:mridangam ]", + "[ 1/5 → 3/10 | s:thom bank:mridangam ]", + "[ 3/10 → 2/5 | s:nam bank:mridangam ]", + "[ 2/5 → 1/2 | s:dhi bank:mridangam ]", + "[ 1/2 → 3/5 | s:thom bank:mridangam ]", + "[ 3/5 → 7/10 | s:nam bank:mridangam ]", + "[ 7/10 → 4/5 | s:thom bank:mridangam ]", + "[ 4/5 → 9/10 | s:nam bank:mridangam ]", + "[ 9/10 → 1/1 | s:nam bank:mridangam ]", + "[ 1/1 → 11/10 | s:tha bank:mridangam ]", + "[ 11/10 → 6/5 | s:dhi bank:mridangam ]", + "[ 6/5 → 13/10 | s:thom bank:mridangam ]", + "[ 13/10 → 7/5 | s:nam bank:mridangam ]", + "[ 7/5 → 3/2 | s:dhi bank:mridangam ]", + "[ 3/2 → 8/5 | s:thom bank:mridangam ]", + "[ 8/5 → 17/10 | s:nam bank:mridangam ]", + "[ 17/10 → 9/5 | s:thom bank:mridangam ]", + "[ 9/5 → 19/10 | s:nam bank:mridangam ]", + "[ 19/10 → 2/1 | s:nam bank:mridangam ]", + "[ 2/1 → 21/10 | s:tha bank:mridangam ]", + "[ 21/10 → 11/5 | s:dhi bank:mridangam ]", + "[ 11/5 → 23/10 | s:thom bank:mridangam ]", + "[ 23/10 → 12/5 | s:nam bank:mridangam ]", + "[ 12/5 → 5/2 | s:dhi bank:mridangam ]", + "[ 5/2 → 13/5 | s:thom bank:mridangam ]", + "[ 13/5 → 27/10 | s:nam bank:mridangam ]", + "[ 27/10 → 14/5 | s:thom bank:mridangam ]", + "[ 14/5 → 29/10 | s:nam bank:mridangam ]", + "[ 29/10 → 3/1 | s:nam bank:mridangam ]", + "[ 3/1 → 31/10 | s:tha bank:mridangam ]", + "[ 31/10 → 16/5 | s:dhi bank:mridangam ]", + "[ 16/5 → 33/10 | s:thom bank:mridangam ]", + "[ 33/10 → 17/5 | s:nam bank:mridangam ]", + "[ 17/5 → 7/2 | s:dhi bank:mridangam ]", + "[ 7/2 → 18/5 | s:thom bank:mridangam ]", + "[ 18/5 → 37/10 | s:nam bank:mridangam ]", + "[ 37/10 → 19/5 | s:thom bank:mridangam ]", + "[ 19/5 → 39/10 | s:nam bank:mridangam ]", + "[ 39/10 → 4/1 | s:nam bank:mridangam ]", +] +`; + +exports[`runs examples > example "shrink" example index 1 1`] = ` +[ + "[ 0/1 → 1/10 | s:tha bank:mridangam ]", + "[ 1/10 → 1/5 | s:dhi bank:mridangam ]", + "[ 1/5 → 3/10 | s:thom bank:mridangam ]", + "[ 3/10 → 2/5 | s:nam bank:mridangam ]", + "[ 2/5 → 1/2 | s:tha bank:mridangam ]", + "[ 1/2 → 3/5 | s:dhi bank:mridangam ]", + "[ 3/5 → 7/10 | s:thom bank:mridangam ]", + "[ 7/10 → 4/5 | s:tha bank:mridangam ]", + "[ 4/5 → 9/10 | s:dhi bank:mridangam ]", + "[ 9/10 → 1/1 | s:tha bank:mridangam ]", + "[ 1/1 → 11/10 | s:tha bank:mridangam ]", + "[ 11/10 → 6/5 | s:dhi bank:mridangam ]", + "[ 6/5 → 13/10 | s:thom bank:mridangam ]", + "[ 13/10 → 7/5 | s:nam bank:mridangam ]", + "[ 7/5 → 3/2 | s:tha bank:mridangam ]", + "[ 3/2 → 8/5 | s:dhi bank:mridangam ]", + "[ 8/5 → 17/10 | s:thom bank:mridangam ]", + "[ 17/10 → 9/5 | s:tha bank:mridangam ]", + "[ 9/5 → 19/10 | s:dhi bank:mridangam ]", + "[ 19/10 → 2/1 | s:tha bank:mridangam ]", + "[ 2/1 → 21/10 | s:tha bank:mridangam ]", + "[ 21/10 → 11/5 | s:dhi bank:mridangam ]", + "[ 11/5 → 23/10 | s:thom bank:mridangam ]", + "[ 23/10 → 12/5 | s:nam bank:mridangam ]", + "[ 12/5 → 5/2 | s:tha bank:mridangam ]", + "[ 5/2 → 13/5 | s:dhi bank:mridangam ]", + "[ 13/5 → 27/10 | s:thom bank:mridangam ]", + "[ 27/10 → 14/5 | s:tha bank:mridangam ]", + "[ 14/5 → 29/10 | s:dhi bank:mridangam ]", + "[ 29/10 → 3/1 | s:tha bank:mridangam ]", + "[ 3/1 → 31/10 | s:tha bank:mridangam ]", + "[ 31/10 → 16/5 | s:dhi bank:mridangam ]", + "[ 16/5 → 33/10 | s:thom bank:mridangam ]", + "[ 33/10 → 17/5 | s:nam bank:mridangam ]", + "[ 17/5 → 7/2 | s:tha bank:mridangam ]", + "[ 7/2 → 18/5 | s:dhi bank:mridangam ]", + "[ 18/5 → 37/10 | s:thom bank:mridangam ]", + "[ 37/10 → 19/5 | s:tha bank:mridangam ]", + "[ 19/5 → 39/10 | s:dhi bank:mridangam ]", + "[ 39/10 → 4/1 | s:tha bank:mridangam ]", +] +`; + +exports[`runs examples > example "shrink" example index 2 1`] = ` +[ + "[ 0/1 → 1/4 | s:tha bank:mridangam ]", + "[ 1/4 → 1/2 | s:dhi bank:mridangam ]", + "[ 1/2 → 3/4 | s:thom bank:mridangam ]", + "[ 3/4 → 1/1 | s:nam bank:mridangam ]", + "[ 1/1 → 5/4 | s:dhi bank:mridangam ]", + "[ 5/4 → 3/2 | s:thom bank:mridangam ]", + "[ 3/2 → 7/4 | s:nam bank:mridangam ]", + "[ 7/4 → 2/1 | s:thom bank:mridangam ]", + "[ 2/1 → 9/4 | s:nam bank:mridangam ]", + "[ 9/4 → 5/2 | s:nam bank:mridangam ]", + "[ 5/2 → 11/4 | s:tha bank:mridangam ]", + "[ 11/4 → 3/1 | s:dhi bank:mridangam ]", + "[ 3/1 → 13/4 | s:thom bank:mridangam ]", + "[ 13/4 → 7/2 | s:nam bank:mridangam ]", + "[ 7/2 → 15/4 | s:tha bank:mridangam ]", + "[ 15/4 → 4/1 | s:dhi bank:mridangam ]", +] +`; + +exports[`runs examples > example "shrink" example index 3 1`] = ` +[ + "[ 0/1 → 1/8 | note:C3 s:folkharp ]", + "[ 1/8 → 1/4 | note:D3 s:folkharp ]", + "[ 1/4 → 3/8 | note:F3 s:folkharp ]", + "[ 3/8 → 1/2 | note:G3 s:folkharp ]", + "[ 1/2 → 5/8 | note:A3 s:folkharp ]", + "[ 5/8 → 3/4 | note:C4 s:folkharp ]", + "[ 3/4 → 7/8 | note:D4 s:folkharp ]", + "[ 7/8 → 1/1 | note:F4 s:folkharp ]", + "[ 1/1 → 9/8 | note:D3 s:folkharp ]", + "[ 9/8 → 5/4 | note:F3 s:folkharp ]", + "[ 5/4 → 11/8 | note:G3 s:folkharp ]", + "[ 11/8 → 3/2 | note:A3 s:folkharp ]", + "[ 3/2 → 13/8 | note:C4 s:folkharp ]", + "[ 13/8 → 7/4 | note:D4 s:folkharp ]", + "[ 7/4 → 15/8 | note:F4 s:folkharp ]", + "[ 15/8 → 2/1 | note:F3 s:folkharp ]", + "[ 2/1 → 17/8 | note:G3 s:folkharp ]", + "[ 17/8 → 9/4 | note:A3 s:folkharp ]", + "[ 9/4 → 19/8 | note:C4 s:folkharp ]", + "[ 19/8 → 5/2 | note:D4 s:folkharp ]", + "[ 5/2 → 21/8 | note:F4 s:folkharp ]", + "[ 21/8 → 11/4 | note:G3 s:folkharp ]", + "[ 11/4 → 23/8 | note:A3 s:folkharp ]", + "[ 23/8 → 3/1 | note:C4 s:folkharp ]", + "[ 3/1 → 25/8 | note:D4 s:folkharp ]", + "[ 25/8 → 13/4 | note:F4 s:folkharp ]", + "[ 13/4 → 27/8 | note:A3 s:folkharp ]", + "[ 27/8 → 7/2 | note:C4 s:folkharp ]", + "[ 7/2 → 29/8 | note:D4 s:folkharp ]", + "[ 29/8 → 15/4 | note:F4 s:folkharp ]", + "[ 15/4 → 31/8 | note:C4 s:folkharp ]", + "[ 31/8 → 4/1 | note:D4 s:folkharp ]", +] +`; + +exports[`runs examples > example "shuffle" example index 0 1`] = ` +[ + "[ 0/1 → 1/4 | note:c s:piano ]", + "[ 1/4 → 1/2 | note:d s:piano ]", + "[ 1/2 → 3/4 | note:e s:piano ]", + "[ 3/4 → 1/1 | note:f s:piano ]", + "[ 1/1 → 5/4 | note:c s:piano ]", + "[ 5/4 → 3/2 | note:d s:piano ]", + "[ 3/2 → 7/4 | note:e s:piano ]", + "[ 7/4 → 2/1 | note:f s:piano ]", + "[ 2/1 → 9/4 | note:c s:piano ]", + "[ 9/4 → 5/2 | note:d s:piano ]", + "[ 5/2 → 11/4 | note:e s:piano ]", + "[ 11/4 → 3/1 | note:f s:piano ]", + "[ 3/1 → 13/4 | note:c s:piano ]", + "[ 13/4 → 7/2 | note:d s:piano ]", + "[ 7/2 → 15/4 | note:e s:piano ]", + "[ 15/4 → 4/1 | note:f s:piano ]", +] +`; + +exports[`runs examples > example "shuffle" example index 1 1`] = ` +[ + "[ 0/1 → 1/8 | note:c s:piano ]", + "[ 1/8 → 1/4 | note:d s:piano ]", + "[ 1/4 → 3/8 | note:e s:piano ]", + "[ 3/8 → 1/2 | note:f s:piano ]", + "[ 1/2 → 1/1 | note:g s:piano ]", + "[ 1/1 → 9/8 | note:c s:piano ]", + "[ 9/8 → 5/4 | note:d s:piano ]", + "[ 5/4 → 11/8 | note:e s:piano ]", + "[ 11/8 → 3/2 | note:f s:piano ]", + "[ 3/2 → 2/1 | note:g s:piano ]", + "[ 2/1 → 17/8 | note:c s:piano ]", + "[ 17/8 → 9/4 | note:d s:piano ]", + "[ 9/4 → 19/8 | note:e s:piano ]", + "[ 19/8 → 5/2 | note:f s:piano ]", + "[ 5/2 → 3/1 | note:g s:piano ]", + "[ 3/1 → 25/8 | note:c s:piano ]", + "[ 25/8 → 13/4 | note:d s:piano ]", + "[ 13/4 → 27/8 | note:e s:piano ]", + "[ 27/8 → 7/2 | note:f s:piano ]", + "[ 7/2 → 4/1 | note:g s:piano ]", +] +`; + exports[`runs examples > example "silence" example index 0 1`] = `[]`; exports[`runs examples > example "sine" example index 0 1`] = ` [ - "[ 0/1 → 1/16 | note:Eb4 ]", - "[ 1/16 → 1/8 | note:Ab4 ]", - "[ 1/8 → 3/16 | note:C5 ]", + "[ 0/1 → 1/16 | note:D4 ]", + "[ 1/16 → 1/8 | note:G4 ]", + "[ 1/8 → 3/16 | note:Bb4 ]", "[ 3/16 → 1/4 | note:D5 ]", "[ 1/4 → 5/16 | note:D5 ]", - "[ 5/16 → 3/8 | note:C5 ]", - "[ 3/8 → 7/16 | note:Ab4 ]", - "[ 7/16 → 1/2 | note:Eb4 ]", - "[ 1/2 → 9/16 | note:C4 ]", - "[ 9/16 → 5/8 | note:G3 ]", - "[ 5/8 → 11/16 | note:Eb3 ]", + "[ 5/16 → 3/8 | note:D5 ]", + "[ 3/8 → 7/16 | note:Bb4 ]", + "[ 7/16 → 1/2 | note:G4 ]", + "[ 1/2 → 9/16 | note:D4 ]", + "[ 9/16 → 5/8 | note:Ab3 ]", + "[ 5/8 → 11/16 | note:F3 ]", "[ 11/16 → 3/4 | note:D3 ]", - "[ 3/4 → 13/16 | note:D3 ]", - "[ 13/16 → 7/8 | note:Eb3 ]", - "[ 7/8 → 15/16 | note:G3 ]", - "[ 15/16 → 1/1 | note:C4 ]", - "[ 1/1 → 17/16 | note:Eb4 ]", - "[ 17/16 → 9/8 | note:Ab4 ]", - "[ 9/8 → 19/16 | note:C5 ]", + "[ 3/4 → 13/16 | note:C3 ]", + "[ 13/16 → 7/8 | note:D3 ]", + "[ 7/8 → 15/16 | note:F3 ]", + "[ 15/16 → 1/1 | note:Ab3 ]", + "[ 1/1 → 17/16 | note:D4 ]", + "[ 17/16 → 9/8 | note:G4 ]", + "[ 9/8 → 19/16 | note:Bb4 ]", "[ 19/16 → 5/4 | note:D5 ]", "[ 5/4 → 21/16 | note:D5 ]", - "[ 21/16 → 11/8 | note:C5 ]", - "[ 11/8 → 23/16 | note:Ab4 ]", - "[ 23/16 → 3/2 | note:Eb4 ]", - "[ 3/2 → 25/16 | note:C4 ]", - "[ 25/16 → 13/8 | note:G3 ]", - "[ 13/8 → 27/16 | note:Eb3 ]", + "[ 21/16 → 11/8 | note:D5 ]", + "[ 11/8 → 23/16 | note:Bb4 ]", + "[ 23/16 → 3/2 | note:G4 ]", + "[ 3/2 → 25/16 | note:D4 ]", + "[ 25/16 → 13/8 | note:Ab3 ]", + "[ 13/8 → 27/16 | note:F3 ]", "[ 27/16 → 7/4 | note:D3 ]", - "[ 7/4 → 29/16 | note:D3 ]", - "[ 29/16 → 15/8 | note:Eb3 ]", - "[ 15/8 → 31/16 | note:G3 ]", - "[ 31/16 → 2/1 | note:C4 ]", - "[ 2/1 → 33/16 | note:Eb4 ]", - "[ 33/16 → 17/8 | note:Ab4 ]", - "[ 17/8 → 35/16 | note:C5 ]", + "[ 7/4 → 29/16 | note:C3 ]", + "[ 29/16 → 15/8 | note:D3 ]", + "[ 15/8 → 31/16 | note:F3 ]", + "[ 31/16 → 2/1 | note:Ab3 ]", + "[ 2/1 → 33/16 | note:D4 ]", + "[ 33/16 → 17/8 | note:G4 ]", + "[ 17/8 → 35/16 | note:Bb4 ]", "[ 35/16 → 9/4 | note:D5 ]", "[ 9/4 → 37/16 | note:D5 ]", - "[ 37/16 → 19/8 | note:C5 ]", - "[ 19/8 → 39/16 | note:Ab4 ]", - "[ 39/16 → 5/2 | note:Eb4 ]", - "[ 5/2 → 41/16 | note:C4 ]", - "[ 41/16 → 21/8 | note:G3 ]", - "[ 21/8 → 43/16 | note:Eb3 ]", + "[ 37/16 → 19/8 | note:D5 ]", + "[ 19/8 → 39/16 | note:Bb4 ]", + "[ 39/16 → 5/2 | note:G4 ]", + "[ 5/2 → 41/16 | note:D4 ]", + "[ 41/16 → 21/8 | note:Ab3 ]", + "[ 21/8 → 43/16 | note:F3 ]", "[ 43/16 → 11/4 | note:D3 ]", - "[ 11/4 → 45/16 | note:D3 ]", - "[ 45/16 → 23/8 | note:Eb3 ]", - "[ 23/8 → 47/16 | note:G3 ]", - "[ 47/16 → 3/1 | note:C4 ]", - "[ 3/1 → 49/16 | note:Eb4 ]", - "[ 49/16 → 25/8 | note:Ab4 ]", - "[ 25/8 → 51/16 | note:C5 ]", + "[ 11/4 → 45/16 | note:C3 ]", + "[ 45/16 → 23/8 | note:D3 ]", + "[ 23/8 → 47/16 | note:F3 ]", + "[ 47/16 → 3/1 | note:Ab3 ]", + "[ 3/1 → 49/16 | note:D4 ]", + "[ 49/16 → 25/8 | note:G4 ]", + "[ 25/8 → 51/16 | note:Bb4 ]", "[ 51/16 → 13/4 | note:D5 ]", "[ 13/4 → 53/16 | note:D5 ]", - "[ 53/16 → 27/8 | note:C5 ]", - "[ 27/8 → 55/16 | note:Ab4 ]", - "[ 55/16 → 7/2 | note:Eb4 ]", - "[ 7/2 → 57/16 | note:C4 ]", - "[ 57/16 → 29/8 | note:G3 ]", - "[ 29/8 → 59/16 | note:Eb3 ]", + "[ 53/16 → 27/8 | note:D5 ]", + "[ 27/8 → 55/16 | note:Bb4 ]", + "[ 55/16 → 7/2 | note:G4 ]", + "[ 7/2 → 57/16 | note:D4 ]", + "[ 57/16 → 29/8 | note:Ab3 ]", + "[ 29/8 → 59/16 | note:F3 ]", "[ 59/16 → 15/4 | note:D3 ]", - "[ 15/4 → 61/16 | note:D3 ]", - "[ 61/16 → 31/8 | note:Eb3 ]", - "[ 31/8 → 63/16 | note:G3 ]", - "[ 63/16 → 4/1 | note:C4 ]", + "[ 15/4 → 61/16 | note:C3 ]", + "[ 61/16 → 31/8 | note:D3 ]", + "[ 31/8 → 63/16 | note:F3 ]", + "[ 63/16 → 4/1 | note:Ab3 ]", ] `; @@ -6968,15 +9276,15 @@ exports[`runs examples > example "someCycles" example index 0 1`] = ` "[ 13/8 → 7/4 | s:hh ]", "[ 7/4 → 15/8 | s:hh ]", "[ 15/8 → 2/1 | s:hh ]", - "[ 2/1 → 17/8 | s:hh speed:0.5 ]", - "[ 2/1 → 3/1 | s:bd speed:0.5 ]", - "[ 17/8 → 9/4 | s:hh speed:0.5 ]", - "[ 9/4 → 19/8 | s:hh speed:0.5 ]", - "[ 19/8 → 5/2 | s:hh speed:0.5 ]", - "[ 5/2 → 21/8 | s:hh speed:0.5 ]", - "[ 21/8 → 11/4 | s:hh speed:0.5 ]", - "[ 11/4 → 23/8 | s:hh speed:0.5 ]", - "[ 23/8 → 3/1 | s:hh speed:0.5 ]", + "[ 2/1 → 17/8 | s:hh ]", + "[ 2/1 → 3/1 | s:bd ]", + "[ 17/8 → 9/4 | s:hh ]", + "[ 9/4 → 19/8 | s:hh ]", + "[ 19/8 → 5/2 | s:hh ]", + "[ 5/2 → 21/8 | s:hh ]", + "[ 21/8 → 11/4 | s:hh ]", + "[ 11/4 → 23/8 | s:hh ]", + "[ 23/8 → 3/1 | s:hh ]", "[ 3/1 → 25/8 | s:hh speed:0.5 ]", "[ 3/1 → 4/1 | s:bd speed:0.5 ]", "[ 25/8 → 13/4 | s:hh speed:0.5 ]", @@ -7018,9 +9326,83 @@ exports[`runs examples > example "someCyclesBy" example index 0 1`] = ` "[ 21/8 → 11/4 | s:hh ]", "[ 11/4 → 23/8 | s:hh ]", "[ 23/8 → 3/1 | s:hh ]", - "[ 3/1 → 25/8 | s:hh ]", - "[ 3/1 → 4/1 | s:bd ]", - "[ 25/8 → 13/4 | s:hh ]", + "[ 3/1 → 25/8 | s:hh speed:0.5 ]", + "[ 3/1 → 4/1 | s:bd speed:0.5 ]", + "[ 25/8 → 13/4 | s:hh speed:0.5 ]", + "[ 13/4 → 27/8 | s:hh speed:0.5 ]", + "[ 27/8 → 7/2 | s:hh speed:0.5 ]", + "[ 7/2 → 29/8 | s:hh speed:0.5 ]", + "[ 29/8 → 15/4 | s:hh speed:0.5 ]", + "[ 15/4 → 31/8 | s:hh speed:0.5 ]", + "[ 31/8 → 4/1 | s:hh speed:0.5 ]", +] +`; + +exports[`runs examples > example "sometimes" example index 0 1`] = ` +[ + "[ 0/1 → 1/8 | s:hh speed:0.5 ]", + "[ 1/8 → 1/4 | s:hh ]", + "[ 1/4 → 3/8 | s:hh speed:0.5 ]", + "[ 3/8 → 1/2 | s:hh speed:0.5 ]", + "[ 1/2 → 5/8 | s:hh speed:0.5 ]", + "[ 5/8 → 3/4 | s:hh speed:0.5 ]", + "[ 3/4 → 7/8 | s:hh speed:0.5 ]", + "[ 7/8 → 1/1 | s:hh speed:0.5 ]", + "[ 1/1 → 9/8 | s:hh ]", + "[ 9/8 → 5/4 | s:hh ]", + "[ 5/4 → 11/8 | s:hh ]", + "[ 11/8 → 3/2 | s:hh speed:0.5 ]", + "[ 3/2 → 13/8 | s:hh ]", + "[ 13/8 → 7/4 | s:hh speed:0.5 ]", + "[ 7/4 → 15/8 | s:hh speed:0.5 ]", + "[ 15/8 → 2/1 | s:hh ]", + "[ 2/1 → 17/8 | s:hh ]", + "[ 17/8 → 9/4 | s:hh ]", + "[ 9/4 → 19/8 | s:hh speed:0.5 ]", + "[ 19/8 → 5/2 | s:hh ]", + "[ 5/2 → 21/8 | s:hh speed:0.5 ]", + "[ 21/8 → 11/4 | s:hh speed:0.5 ]", + "[ 11/4 → 23/8 | s:hh ]", + "[ 23/8 → 3/1 | s:hh speed:0.5 ]", + "[ 3/1 → 25/8 | s:hh speed:0.5 ]", + "[ 25/8 → 13/4 | s:hh speed:0.5 ]", + "[ 13/4 → 27/8 | s:hh ]", + "[ 27/8 → 7/2 | s:hh speed:0.5 ]", + "[ 7/2 → 29/8 | s:hh speed:0.5 ]", + "[ 29/8 → 15/4 | s:hh ]", + "[ 15/4 → 31/8 | s:hh ]", + "[ 31/8 → 4/1 | s:hh ]", +] +`; + +exports[`runs examples > example "sometimesBy" example index 0 1`] = ` +[ + "[ 0/1 → 1/8 | s:hh speed:0.5 ]", + "[ 1/8 → 1/4 | s:hh ]", + "[ 1/4 → 3/8 | s:hh speed:0.5 ]", + "[ 3/8 → 1/2 | s:hh ]", + "[ 1/2 → 5/8 | s:hh speed:0.5 ]", + "[ 5/8 → 3/4 | s:hh speed:0.5 ]", + "[ 3/4 → 7/8 | s:hh speed:0.5 ]", + "[ 7/8 → 1/1 | s:hh speed:0.5 ]", + "[ 1/1 → 9/8 | s:hh ]", + "[ 9/8 → 5/4 | s:hh ]", + "[ 5/4 → 11/8 | s:hh ]", + "[ 11/8 → 3/2 | s:hh speed:0.5 ]", + "[ 3/2 → 13/8 | s:hh ]", + "[ 13/8 → 7/4 | s:hh ]", + "[ 7/4 → 15/8 | s:hh speed:0.5 ]", + "[ 15/8 → 2/1 | s:hh ]", + "[ 2/1 → 17/8 | s:hh ]", + "[ 17/8 → 9/4 | s:hh ]", + "[ 9/4 → 19/8 | s:hh speed:0.5 ]", + "[ 19/8 → 5/2 | s:hh ]", + "[ 5/2 → 21/8 | s:hh ]", + "[ 21/8 → 11/4 | s:hh speed:0.5 ]", + "[ 11/4 → 23/8 | s:hh ]", + "[ 23/8 → 3/1 | s:hh speed:0.5 ]", + "[ 3/1 → 25/8 | s:hh speed:0.5 ]", + "[ 25/8 → 13/4 | s:hh speed:0.5 ]", "[ 13/4 → 27/8 | s:hh ]", "[ 27/8 → 7/2 | s:hh ]", "[ 7/2 → 29/8 | s:hh ]", @@ -7030,77 +9412,72 @@ exports[`runs examples > example "someCyclesBy" example index 0 1`] = ` ] `; -exports[`runs examples > example "sometimes" example index 0 1`] = ` +exports[`runs examples > example "spectrum" example index 0 1`] = ` [ - "[ 0/1 → 1/8 | s:hh ]", - "[ 1/8 → 1/4 | s:hh speed:0.5 ]", - "[ 1/4 → 3/8 | s:hh ]", - "[ 3/8 → 1/2 | s:hh speed:0.5 ]", - "[ 1/2 → 5/8 | s:hh speed:0.5 ]", - "[ 5/8 → 3/4 | s:hh speed:0.5 ]", - "[ 3/4 → 7/8 | s:hh ]", - "[ 7/8 → 1/1 | s:hh ]", - "[ 1/1 → 9/8 | s:hh ]", - "[ 9/8 → 5/4 | s:hh speed:0.5 ]", - "[ 5/4 → 11/8 | s:hh speed:0.5 ]", - "[ 11/8 → 3/2 | s:hh ]", - "[ 3/2 → 13/8 | s:hh speed:0.5 ]", - "[ 13/8 → 7/4 | s:hh speed:0.5 ]", - "[ 7/4 → 15/8 | s:hh speed:0.5 ]", - "[ 15/8 → 2/1 | s:hh ]", - "[ 2/1 → 17/8 | s:hh speed:0.5 ]", - "[ 17/8 → 9/4 | s:hh speed:0.5 ]", - "[ 9/4 → 19/8 | s:hh ]", - "[ 19/8 → 5/2 | s:hh speed:0.5 ]", - "[ 5/2 → 21/8 | s:hh ]", - "[ 21/8 → 11/4 | s:hh ]", - "[ 11/4 → 23/8 | s:hh ]", - "[ 23/8 → 3/1 | s:hh speed:0.5 ]", - "[ 3/1 → 25/8 | s:hh speed:0.5 ]", - "[ 25/8 → 13/4 | s:hh ]", - "[ 13/4 → 27/8 | s:hh speed:0.5 ]", - "[ 27/8 → 7/2 | s:hh ]", - "[ 7/2 → 29/8 | s:hh ]", - "[ 29/8 → 15/4 | s:hh ]", - "[ 15/4 → 31/8 | s:hh speed:0.5 ]", - "[ 31/8 → 4/1 | s:hh speed:0.5 ]", -] -`; - -exports[`runs examples > example "sometimesBy" example index 0 1`] = ` -[ - "[ 0/1 → 1/8 | s:hh ]", - "[ 1/8 → 1/4 | s:hh speed:0.5 ]", - "[ 1/4 → 3/8 | s:hh ]", - "[ 3/8 → 1/2 | s:hh speed:0.5 ]", - "[ 1/2 → 5/8 | s:hh speed:0.5 ]", - "[ 5/8 → 3/4 | s:hh ]", - "[ 3/4 → 7/8 | s:hh ]", - "[ 7/8 → 1/1 | s:hh ]", - "[ 1/1 → 9/8 | s:hh ]", - "[ 9/8 → 5/4 | s:hh speed:0.5 ]", - "[ 5/4 → 11/8 | s:hh speed:0.5 ]", - "[ 11/8 → 3/2 | s:hh ]", - "[ 3/2 → 13/8 | s:hh speed:0.5 ]", - "[ 13/8 → 7/4 | s:hh speed:0.5 ]", - "[ 7/4 → 15/8 | s:hh ]", - "[ 15/8 → 2/1 | s:hh ]", - "[ 2/1 → 17/8 | s:hh speed:0.5 ]", - "[ 17/8 → 9/4 | s:hh speed:0.5 ]", - "[ 9/4 → 19/8 | s:hh ]", - "[ 19/8 → 5/2 | s:hh speed:0.5 ]", - "[ 5/2 → 21/8 | s:hh ]", - "[ 21/8 → 11/4 | s:hh ]", - "[ 11/4 → 23/8 | s:hh ]", - "[ 23/8 → 3/1 | s:hh speed:0.5 ]", - "[ 3/1 → 25/8 | s:hh speed:0.5 ]", - "[ 25/8 → 13/4 | s:hh ]", - "[ 13/4 → 27/8 | s:hh speed:0.5 ]", - "[ 27/8 → 7/2 | s:hh ]", - "[ 7/2 → 29/8 | s:hh ]", - "[ 29/8 → 15/4 | s:hh ]", - "[ 15/4 → 31/8 | s:hh speed:0.5 ]", - "[ 31/8 → 4/1 | s:hh speed:0.5 ]", + "[ -5/24 ⇜ (0/1 → 1/8) | note:F4 s:sine decay:0.3 room:0.5 ]", + "[ -2/15 ⇜ (0/1 → 1/5) | note:A4 s:sine decay:0.3 room:0.5 ]", + "[ -1/120 ⇜ (0/1 → 1/5) ⇝ 13/40 | note:A5 s:sine decay:0.3 room:0.5 ]", + "[ 0/1 → 1/3 | note:D3 s:sine decay:0.3 room:0.5 ]", + "[ 1/8 → 11/24 | note:D4 s:sine decay:0.3 room:0.5 ]", + "[ -1/120 ⇜ (1/5 → 13/40) | note:A5 s:sine decay:0.3 room:0.5 ]", + "[ 1/5 → 8/15 | note:G4 s:sine decay:0.3 room:0.5 ]", + "[ 13/40 → 79/120 | note:G5 s:sine decay:0.3 room:0.5 ]", + "[ 1/3 → 2/3 | note:C4 s:sine decay:0.3 room:0.5 ]", + "[ 11/24 → 19/24 | note:C5 s:sine decay:0.3 room:0.5 ]", + "[ 8/15 → 13/15 | note:F5 s:sine decay:0.3 room:0.5 ]", + "[ 79/120 → 119/120 | note:F6 s:sine decay:0.3 room:0.5 ]", + "[ 2/3 → 1/1 | note:G3 s:sine decay:0.3 room:0.5 ]", + "[ (19/24 → 1/1) ⇝ 9/8 | note:G4 s:sine decay:0.3 room:0.5 ]", + "[ (13/15 → 1/1) ⇝ 6/5 | note:C5 s:sine decay:0.3 room:0.5 ]", + "[ (119/120 → 1/1) ⇝ 53/40 | note:C6 s:sine decay:0.3 room:0.5 ]", + "[ 19/24 ⇜ (1/1 → 9/8) | note:G4 s:sine decay:0.3 room:0.5 ]", + "[ 13/15 ⇜ (1/1 → 6/5) | note:C5 s:sine decay:0.3 room:0.5 ]", + "[ 119/120 ⇜ (1/1 → 6/5) ⇝ 53/40 | note:C6 s:sine decay:0.3 room:0.5 ]", + "[ 1/1 → 4/3 | note:F3 s:sine decay:0.3 room:0.5 ]", + "[ 9/8 → 35/24 | note:F4 s:sine decay:0.3 room:0.5 ]", + "[ 119/120 ⇜ (6/5 → 53/40) | note:C6 s:sine decay:0.3 room:0.5 ]", + "[ 6/5 → 23/15 | note:A4 s:sine decay:0.3 room:0.5 ]", + "[ 53/40 → 199/120 | note:A5 s:sine decay:0.3 room:0.5 ]", + "[ 4/3 → 5/3 | note:D3 s:sine decay:0.3 room:0.5 ]", + "[ 35/24 → 43/24 | note:D4 s:sine decay:0.3 room:0.5 ]", + "[ 23/15 → 28/15 | note:G4 s:sine decay:0.3 room:0.5 ]", + "[ 199/120 → 239/120 | note:G5 s:sine decay:0.3 room:0.5 ]", + "[ 5/3 → 2/1 | note:C4 s:sine decay:0.3 room:0.5 ]", + "[ (43/24 → 2/1) ⇝ 17/8 | note:C5 s:sine decay:0.3 room:0.5 ]", + "[ (28/15 → 2/1) ⇝ 11/5 | note:F5 s:sine decay:0.3 room:0.5 ]", + "[ (239/120 → 2/1) ⇝ 93/40 | note:F6 s:sine decay:0.3 room:0.5 ]", + "[ 43/24 ⇜ (2/1 → 17/8) | note:C5 s:sine decay:0.3 room:0.5 ]", + "[ 28/15 ⇜ (2/1 → 11/5) | note:F5 s:sine decay:0.3 room:0.5 ]", + "[ 239/120 ⇜ (2/1 → 11/5) ⇝ 93/40 | note:F6 s:sine decay:0.3 room:0.5 ]", + "[ 2/1 → 7/3 | note:A3 s:sine decay:0.3 room:0.5 ]", + "[ 17/8 → 59/24 | note:A4 s:sine decay:0.3 room:0.5 ]", + "[ 239/120 ⇜ (11/5 → 93/40) | note:F6 s:sine decay:0.3 room:0.5 ]", + "[ 11/5 → 38/15 | note:D5 s:sine decay:0.3 room:0.5 ]", + "[ 93/40 → 319/120 | note:D6 s:sine decay:0.3 room:0.5 ]", + "[ 7/3 → 8/3 | note:F3 s:sine decay:0.3 room:0.5 ]", + "[ 59/24 → 67/24 | note:F4 s:sine decay:0.3 room:0.5 ]", + "[ 38/15 → 43/15 | note:A4 s:sine decay:0.3 room:0.5 ]", + "[ 319/120 → 359/120 | note:A5 s:sine decay:0.3 room:0.5 ]", + "[ 8/3 → 3/1 | note:D3 s:sine decay:0.3 room:0.5 ]", + "[ (67/24 → 3/1) ⇝ 25/8 | note:D4 s:sine decay:0.3 room:0.5 ]", + "[ (43/15 → 3/1) ⇝ 16/5 | note:G4 s:sine decay:0.3 room:0.5 ]", + "[ (359/120 → 3/1) ⇝ 133/40 | note:G5 s:sine decay:0.3 room:0.5 ]", + "[ 67/24 ⇜ (3/1 → 25/8) | note:D4 s:sine decay:0.3 room:0.5 ]", + "[ 43/15 ⇜ (3/1 → 16/5) | note:G4 s:sine decay:0.3 room:0.5 ]", + "[ 359/120 ⇜ (3/1 → 16/5) ⇝ 133/40 | note:G5 s:sine decay:0.3 room:0.5 ]", + "[ 3/1 → 10/3 | note:C4 s:sine decay:0.3 room:0.5 ]", + "[ 25/8 → 83/24 | note:C5 s:sine decay:0.3 room:0.5 ]", + "[ 359/120 ⇜ (16/5 → 133/40) | note:G5 s:sine decay:0.3 room:0.5 ]", + "[ 16/5 → 53/15 | note:F5 s:sine decay:0.3 room:0.5 ]", + "[ 133/40 → 439/120 | note:F6 s:sine decay:0.3 room:0.5 ]", + "[ 10/3 → 11/3 | note:G3 s:sine decay:0.3 room:0.5 ]", + "[ 83/24 → 91/24 | note:G4 s:sine decay:0.3 room:0.5 ]", + "[ 53/15 → 58/15 | note:C5 s:sine decay:0.3 room:0.5 ]", + "[ 439/120 → 479/120 | note:C6 s:sine decay:0.3 room:0.5 ]", + "[ 11/3 → 4/1 | note:F3 s:sine decay:0.3 room:0.5 ]", + "[ (91/24 → 4/1) ⇝ 33/8 | note:F4 s:sine decay:0.3 room:0.5 ]", + "[ (58/15 → 4/1) ⇝ 21/5 | note:A4 s:sine decay:0.3 room:0.5 ]", + "[ (479/120 → 4/1) ⇝ 173/40 | note:A5 s:sine decay:0.3 room:0.5 ]", ] `; @@ -7158,6 +9535,39 @@ exports[`runs examples > example "speed" example index 1 1`] = ` ] `; +exports[`runs examples > example "spiral" example index 0 1`] = ` +[ + "[ 0/1 → 1/8 | note:c2 s:sawtooth lpenv:4 cutoff:300 ]", + "[ (1/4 → 1/3) ⇝ 3/8 | note:c2 s:sawtooth lpenv:4 cutoff:300 ]", + "[ 1/4 ⇜ (1/3 → 3/8) | note:a2 s:sawtooth lpenv:4 cutoff:300 ]", + "[ 3/8 → 1/2 | note:a2 s:sawtooth lpenv:4 cutoff:300 ]", + "[ (5/8 → 2/3) ⇝ 3/4 | note:a2 s:sawtooth lpenv:4 cutoff:300 ]", + "[ 5/8 ⇜ (2/3 → 3/4) | note:eb2 s:sawtooth lpenv:4 cutoff:300 ]", + "[ 3/4 → 7/8 | note:eb2 s:sawtooth lpenv:4 cutoff:300 ]", + "[ 1/1 → 9/8 | note:c2 s:sawtooth lpenv:4 cutoff:300 ]", + "[ (5/4 → 4/3) ⇝ 11/8 | note:c2 s:sawtooth lpenv:4 cutoff:300 ]", + "[ 5/4 ⇜ (4/3 → 11/8) | note:a2 s:sawtooth lpenv:4 cutoff:300 ]", + "[ 11/8 → 3/2 | note:a2 s:sawtooth lpenv:4 cutoff:300 ]", + "[ (13/8 → 5/3) ⇝ 7/4 | note:a2 s:sawtooth lpenv:4 cutoff:300 ]", + "[ 13/8 ⇜ (5/3 → 7/4) | note:eb2 s:sawtooth lpenv:4 cutoff:300 ]", + "[ 7/4 → 15/8 | note:eb2 s:sawtooth lpenv:4 cutoff:300 ]", + "[ 2/1 → 17/8 | note:c2 s:sawtooth lpenv:4 cutoff:300 ]", + "[ (9/4 → 7/3) ⇝ 19/8 | note:c2 s:sawtooth lpenv:4 cutoff:300 ]", + "[ 9/4 ⇜ (7/3 → 19/8) | note:a2 s:sawtooth lpenv:4 cutoff:300 ]", + "[ 19/8 → 5/2 | note:a2 s:sawtooth lpenv:4 cutoff:300 ]", + "[ (21/8 → 8/3) ⇝ 11/4 | note:a2 s:sawtooth lpenv:4 cutoff:300 ]", + "[ 21/8 ⇜ (8/3 → 11/4) | note:eb2 s:sawtooth lpenv:4 cutoff:300 ]", + "[ 11/4 → 23/8 | note:eb2 s:sawtooth lpenv:4 cutoff:300 ]", + "[ 3/1 → 25/8 | note:c2 s:sawtooth lpenv:4 cutoff:300 ]", + "[ (13/4 → 10/3) ⇝ 27/8 | note:c2 s:sawtooth lpenv:4 cutoff:300 ]", + "[ 13/4 ⇜ (10/3 → 27/8) | note:a2 s:sawtooth lpenv:4 cutoff:300 ]", + "[ 27/8 → 7/2 | note:a2 s:sawtooth lpenv:4 cutoff:300 ]", + "[ (29/8 → 11/3) ⇝ 15/4 | note:a2 s:sawtooth lpenv:4 cutoff:300 ]", + "[ 29/8 ⇜ (11/3 → 15/4) | note:eb2 s:sawtooth lpenv:4 cutoff:300 ]", + "[ 15/4 → 31/8 | note:eb2 s:sawtooth lpenv:4 cutoff:300 ]", +] +`; + exports[`runs examples > example "splice" example index 0 1`] = ` [ "[ 0/1 → 1/8 | speed:1 unit:c begin:0 end:0.125 _slices:8 s:breaks165 ]", @@ -7314,6 +9724,27 @@ exports[`runs examples > example "squiz" example index 0 1`] = ` `; exports[`runs examples > example "stack" example index 0 1`] = ` +[ + "[ 0/1 → 1/2 | note:e4 ]", + "[ 0/1 → 1/1 | note:g3 ]", + "[ 0/1 → 1/1 | note:b3 ]", + "[ 1/2 → 1/1 | note:d4 ]", + "[ 1/1 → 3/2 | note:e4 ]", + "[ 1/1 → 2/1 | note:g3 ]", + "[ 1/1 → 2/1 | note:b3 ]", + "[ 3/2 → 2/1 | note:d4 ]", + "[ 2/1 → 5/2 | note:e4 ]", + "[ 2/1 → 3/1 | note:g3 ]", + "[ 2/1 → 3/1 | note:b3 ]", + "[ 5/2 → 3/1 | note:d4 ]", + "[ 3/1 → 7/2 | note:e4 ]", + "[ 3/1 → 4/1 | note:g3 ]", + "[ 3/1 → 4/1 | note:b3 ]", + "[ 7/2 → 4/1 | note:d4 ]", +] +`; + +exports[`runs examples > example "stack" example index 1 1`] = ` [ "[ 0/1 → 1/8 | note:c4 ]", "[ 0/1 → 1/4 | s:hh ]", @@ -7354,6 +9785,7 @@ exports[`runs examples > example "stack" example index 0 1`] = ` ] `; +<<<<<<< HEAD exports[`runs examples > example "stack" example index 0 2`] = ` [ "[ 0/1 → 1/2 | note:e4 ]", @@ -7376,23 +9808,85 @@ exports[`runs examples > example "stack" example index 0 2`] = ` `; exports[`runs examples > example "steps" example index 0 1`] = ` +======= +exports[`runs examples > example "stepalt" 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 ]", + "[ 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 "stepcat" example index 0 1`] = ` +>>>>>>> main +[ + "[ 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 "stepcat" 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 "stretch" example index 0 1`] = ` +[ + "[ (0/1 → 1/3) ⇝ 1/1 | s:gm_flute stretch:1 ]", + "[ 0/1 ⇜ (1/3 → 2/3) ⇝ 1/1 | s:gm_flute stretch:2 ]", + "[ 0/1 ⇜ (2/3 → 1/1) | s:gm_flute stretch:0.5 ]", + "[ (1/1 → 4/3) ⇝ 2/1 | s:gm_flute stretch:1 ]", + "[ 1/1 ⇜ (4/3 → 5/3) ⇝ 2/1 | s:gm_flute stretch:2 ]", + "[ 1/1 ⇜ (5/3 → 2/1) | s:gm_flute stretch:0.5 ]", + "[ (2/1 → 7/3) ⇝ 3/1 | s:gm_flute stretch:1 ]", + "[ 2/1 ⇜ (7/3 → 8/3) ⇝ 3/1 | s:gm_flute stretch:2 ]", + "[ 2/1 ⇜ (8/3 → 3/1) | s:gm_flute stretch:0.5 ]", + "[ (3/1 → 10/3) ⇝ 4/1 | s:gm_flute stretch:1 ]", + "[ 3/1 ⇜ (10/3 → 11/3) ⇝ 4/1 | s:gm_flute stretch:2 ]", + "[ 3/1 ⇜ (11/3 → 4/1) | s:gm_flute stretch:0.5 ]", ] `; @@ -7688,6 +10182,148 @@ exports[`runs examples > example "swingBy" example index 0 1`] = ` ] `; +<<<<<<< HEAD +======= +exports[`runs examples > example "sysex" example index 0 1`] = ` +[ + "[ 0/1 → 1/1 | note:c4 sysexid:119 sysexdata:[1 2 3 4] midichan:1 ]", + "[ 1/1 → 2/1 | note:c4 sysexid:119 sysexdata:[1 2 3 4] midichan:1 ]", + "[ 2/1 → 3/1 | note:c4 sysexid:119 sysexdata:[1 2 3 4] midichan:1 ]", + "[ 3/1 → 4/1 | note:c4 sysexid:119 sysexdata:[1 2 3 4] midichan:1 ]", +] +`; + +exports[`runs examples > example "sysexdata" example index 0 1`] = ` +[ + "[ 0/1 → 1/1 | note:c4 sysexid:119 sysexdata:[1 2 3 4] midichan:1 ]", + "[ 1/1 → 2/1 | note:c4 sysexid:119 sysexdata:[1 2 3 4] midichan:1 ]", + "[ 2/1 → 3/1 | note:c4 sysexid:119 sysexdata:[1 2 3 4] midichan:1 ]", + "[ 3/1 → 4/1 | note:c4 sysexid:119 sysexdata:[1 2 3 4] midichan:1 ]", +] +`; + +exports[`runs examples > example "sysexid" example index 0 1`] = ` +[ + "[ 0/1 → 1/1 | note:c4 sysexid:119 sysexdata:[1 2 3 4] midichan:1 ]", + "[ 1/1 → 2/1 | note:c4 sysexid:119 sysexdata:[1 2 3 4] midichan:1 ]", + "[ 2/1 → 3/1 | note:c4 sysexid:119 sysexdata:[1 2 3 4] midichan:1 ]", + "[ 3/1 → 4/1 | note:c4 sysexid:119 sysexdata:[1 2 3 4] midichan:1 ]", +] +`; + +exports[`runs examples > example "take" example index 0 1`] = ` +[ + "[ 0/1 → 1/2 | s:bd ]", + "[ 1/2 → 1/1 | s:cp ]", + "[ 1/1 → 3/2 | s:bd ]", + "[ 3/2 → 2/1 | s:cp ]", + "[ 2/1 → 5/2 | s:bd ]", + "[ 5/2 → 3/1 | s:cp ]", + "[ 3/1 → 7/2 | s:bd ]", + "[ 7/2 → 4/1 | s:cp ]", +] +`; + +exports[`runs examples > example "take" example index 1 1`] = ` +[ + "[ 0/1 → 1/6 | s:bd ]", + "[ 1/6 → 1/3 | s:bd ]", + "[ 1/3 → 1/2 | s:cp ]", + "[ 1/2 → 2/3 | s:bd ]", + "[ 2/3 → 5/6 | s:cp ]", + "[ 5/6 → 1/1 | s:ht ]", + "[ 1/1 → 7/6 | s:bd ]", + "[ 7/6 → 4/3 | s:bd ]", + "[ 4/3 → 3/2 | s:cp ]", + "[ 3/2 → 5/3 | s:bd ]", + "[ 5/3 → 11/6 | s:cp ]", + "[ 11/6 → 2/1 | s:ht ]", + "[ 2/1 → 13/6 | s:bd ]", + "[ 13/6 → 7/3 | s:bd ]", + "[ 7/3 → 5/2 | s:cp ]", + "[ 5/2 → 8/3 | s:bd ]", + "[ 8/3 → 17/6 | s:cp ]", + "[ 17/6 → 3/1 | s:ht ]", + "[ 3/1 → 19/6 | s:bd ]", + "[ 19/6 → 10/3 | s:bd ]", + "[ 10/3 → 7/2 | s:cp ]", + "[ 7/2 → 11/3 | s:bd ]", + "[ 11/3 → 23/6 | s:cp ]", + "[ 23/6 → 4/1 | s:ht ]", +] +`; + +exports[`runs examples > example "take" example index 2 1`] = ` +[ + "[ 0/1 → 1/6 | s:mt ]", + "[ 1/6 → 1/3 | s:ht ]", + "[ 1/3 → 1/2 | s:mt ]", + "[ 1/2 → 2/3 | s:cp ]", + "[ 2/3 → 5/6 | s:ht ]", + "[ 5/6 → 1/1 | s:mt ]", + "[ 1/1 → 7/6 | s:mt ]", + "[ 7/6 → 4/3 | s:ht ]", + "[ 4/3 → 3/2 | s:mt ]", + "[ 3/2 → 5/3 | s:cp ]", + "[ 5/3 → 11/6 | s:ht ]", + "[ 11/6 → 2/1 | s:mt ]", + "[ 2/1 → 13/6 | s:mt ]", + "[ 13/6 → 7/3 | s:ht ]", + "[ 7/3 → 5/2 | s:mt ]", + "[ 5/2 → 8/3 | s:cp ]", + "[ 8/3 → 17/6 | s:ht ]", + "[ 17/6 → 3/1 | s:mt ]", + "[ 3/1 → 19/6 | s:mt ]", + "[ 19/6 → 10/3 | s:ht ]", + "[ 10/3 → 7/2 | s:mt ]", + "[ 7/2 → 11/3 | s:cp ]", + "[ 11/3 → 23/6 | s:ht ]", + "[ 23/6 → 4/1 | s:mt ]", +] +`; + +exports[`runs examples > example "tour" example index 0 1`] = ` +[ + "[ 0/1 → 1/8 | note:e s:folkharp ]", + "[ 1/8 → 1/4 | note:f s:folkharp ]", + "[ 1/4 → 3/8 | note:e s:folkharp ]", + "[ 3/8 → 1/2 | note:f s:folkharp ]", + "[ 1/2 → 5/8 | note:g s:folkharp ]", + "[ 5/8 → 3/4 | note:g s:folkharp ]", + "[ 3/4 → 7/8 | note:f s:folkharp ]", + "[ 7/8 → 1/1 | note:e s:folkharp ]", + "[ 1/1 → 9/8 | note:c s:folkharp ]", + "[ 9/8 → 19/16 | note:c s:folkharp ]", + "[ 19/16 → 5/4 | note:g s:folkharp ]", + "[ 5/4 → 11/8 | note:e s:folkharp ]", + "[ 11/8 → 3/2 | note:f s:folkharp ]", + "[ 3/2 → 13/8 | note:e s:folkharp ]", + "[ 13/8 → 7/4 | note:f s:folkharp ]", + "[ 7/4 → 15/8 | note:g s:folkharp ]", + "[ 15/8 → 31/16 | note:c s:folkharp ]", + "[ 31/16 → 2/1 | note:g s:folkharp ]", + "[ 2/1 → 17/8 | note:g s:folkharp ]", + "[ 17/8 → 9/4 | note:f s:folkharp ]", + "[ 9/4 → 19/8 | note:e s:folkharp ]", + "[ 19/8 → 5/2 | note:c s:folkharp ]", + "[ 5/2 → 21/8 | note:e s:folkharp ]", + "[ 21/8 → 11/4 | note:f s:folkharp ]", + "[ 11/4 → 45/16 | note:c s:folkharp ]", + "[ 45/16 → 23/8 | note:g s:folkharp ]", + "[ 23/8 → 3/1 | note:e s:folkharp ]", + "[ 3/1 → 25/8 | note:f s:folkharp ]", + "[ 25/8 → 13/4 | note:g s:folkharp ]", + "[ 13/4 → 27/8 | note:g s:folkharp ]", + "[ 27/8 → 7/2 | note:f s:folkharp ]", + "[ 7/2 → 29/8 | note:e s:folkharp ]", + "[ 29/8 → 15/4 | note:c s:folkharp ]", + "[ 15/4 → 61/16 | note:c s:folkharp ]", + "[ 61/16 → 31/8 | note:g s:folkharp ]", + "[ 31/8 → 4/1 | note:e s:folkharp ]", +] +`; + +>>>>>>> main exports[`runs examples > example "transpose" example index 0 1`] = ` [ "[ 0/1 → 1/4 | note:C2 ]", @@ -7732,110 +10368,112 @@ exports[`runs examples > example "transpose" example index 1 1`] = ` exports[`runs examples > example "tri" example index 0 1`] = ` [ - "[ 0/1 → 1/8 | note:C4 ]", - "[ 1/8 → 1/4 | note:Ab3 ]", - "[ 1/4 → 3/8 | note:F3 ]", - "[ 3/8 → 1/2 | note:D3 ]", - "[ 1/2 → 5/8 | note:D3 ]", - "[ 5/8 → 3/4 | note:F3 ]", - "[ 3/4 → 7/8 | note:Ab3 ]", - "[ 7/8 → 1/1 | note:C4 ]", - "[ 1/1 → 9/8 | note:C4 ]", - "[ 9/8 → 5/4 | note:Ab3 ]", - "[ 5/4 → 11/8 | note:F3 ]", - "[ 11/8 → 3/2 | note:D3 ]", - "[ 3/2 → 13/8 | note:D3 ]", - "[ 13/8 → 7/4 | note:F3 ]", - "[ 7/4 → 15/8 | note:Ab3 ]", - "[ 15/8 → 2/1 | note:C4 ]", - "[ 2/1 → 17/8 | note:C4 ]", - "[ 17/8 → 9/4 | note:Ab3 ]", - "[ 9/4 → 19/8 | note:F3 ]", - "[ 19/8 → 5/2 | note:D3 ]", - "[ 5/2 → 21/8 | note:D3 ]", - "[ 21/8 → 11/4 | note:F3 ]", - "[ 11/4 → 23/8 | note:Ab3 ]", - "[ 23/8 → 3/1 | note:C4 ]", - "[ 3/1 → 25/8 | note:C4 ]", - "[ 25/8 → 13/4 | note:Ab3 ]", - "[ 13/4 → 27/8 | note:F3 ]", - "[ 27/8 → 7/2 | note:D3 ]", - "[ 7/2 → 29/8 | note:D3 ]", - "[ 29/8 → 15/4 | note:F3 ]", - "[ 15/4 → 31/8 | note:Ab3 ]", - "[ 31/8 → 4/1 | note:C4 ]", + "[ 0/1 → 1/8 | note:C3 ]", + "[ 1/8 → 1/4 | note:Eb3 ]", + "[ 1/4 → 3/8 | note:G3 ]", + "[ 3/8 → 1/2 | note:Bb3 ]", + "[ 1/2 → 5/8 | note:C4 ]", + "[ 5/8 → 3/4 | note:Bb3 ]", + "[ 3/4 → 7/8 | note:G3 ]", + "[ 7/8 → 1/1 | note:Eb3 ]", + "[ 1/1 → 9/8 | note:C3 ]", + "[ 9/8 → 5/4 | note:Eb3 ]", + "[ 5/4 → 11/8 | note:G3 ]", + "[ 11/8 → 3/2 | note:Bb3 ]", + "[ 3/2 → 13/8 | note:C4 ]", + "[ 13/8 → 7/4 | note:Bb3 ]", + "[ 7/4 → 15/8 | note:G3 ]", + "[ 15/8 → 2/1 | note:Eb3 ]", + "[ 2/1 → 17/8 | note:C3 ]", + "[ 17/8 → 9/4 | note:Eb3 ]", + "[ 9/4 → 19/8 | note:G3 ]", + "[ 19/8 → 5/2 | note:Bb3 ]", + "[ 5/2 → 21/8 | note:C4 ]", + "[ 21/8 → 11/4 | note:Bb3 ]", + "[ 11/4 → 23/8 | note:G3 ]", + "[ 23/8 → 3/1 | note:Eb3 ]", + "[ 3/1 → 25/8 | note:C3 ]", + "[ 25/8 → 13/4 | note:Eb3 ]", + "[ 13/4 → 27/8 | note:G3 ]", + "[ 27/8 → 7/2 | note:Bb3 ]", + "[ 7/2 → 29/8 | note:C4 ]", + "[ 29/8 → 15/4 | note:Bb3 ]", + "[ 15/4 → 31/8 | note:G3 ]", + "[ 31/8 → 4/1 | note:Eb3 ]", ] `; exports[`runs examples > example "undegrade" example index 0 1`] = ` [ - "[ 1/8 → 1/4 | s:hh ]", + "[ 0/1 → 1/8 | s:hh ]", + "[ 1/4 → 3/8 | s:hh ]", "[ 3/8 → 1/2 | s:hh ]", "[ 1/2 → 5/8 | s:hh ]", "[ 5/8 → 3/4 | s:hh ]", - "[ 9/8 → 5/4 | s:hh ]", - "[ 5/4 → 11/8 | s:hh ]", - "[ 3/2 → 13/8 | s:hh ]", + "[ 3/4 → 7/8 | s:hh ]", + "[ 7/8 → 1/1 | s:hh ]", + "[ 11/8 → 3/2 | s:hh ]", "[ 13/8 → 7/4 | s:hh ]", "[ 7/4 → 15/8 | s:hh ]", - "[ 2/1 → 17/8 | s:hh ]", - "[ 17/8 → 9/4 | s:hh ]", - "[ 19/8 → 5/2 | s:hh ]", + "[ 9/4 → 19/8 | s:hh ]", + "[ 5/2 → 21/8 | s:hh ]", + "[ 21/8 → 11/4 | s:hh ]", "[ 23/8 → 3/1 | s:hh ]", "[ 3/1 → 25/8 | s:hh ]", - "[ 13/4 → 27/8 | s:hh ]", - "[ 15/4 → 31/8 | s:hh ]", - "[ 31/8 → 4/1 | s:hh ]", + "[ 25/8 → 13/4 | s:hh ]", + "[ 27/8 → 7/2 | s:hh ]", + "[ 7/2 → 29/8 | s:hh ]", ] `; exports[`runs examples > example "undegrade" example index 1 1`] = ` [ - "[ 0/1 → 1/10 | s:hh pan:0 ]", - "[ 1/10 → 1/5 | s:hh pan:0 ]", - "[ 1/5 → 3/10 | s:hh pan:1 ]", - "[ 3/10 → 2/5 | s:hh pan:1 ]", + "[ 0/1 → 1/10 | s:hh pan:1 ]", + "[ 1/10 → 1/5 | s:hh pan:1 ]", + "[ 1/5 → 3/10 | s:hh pan:0 ]", + "[ 3/10 → 2/5 | s:hh pan:0 ]", "[ 2/5 → 1/2 | s:hh pan:0 ]", "[ 1/2 → 3/5 | s:hh pan:1 ]", "[ 3/5 → 7/10 | s:hh pan:0 ]", - "[ 7/10 → 4/5 | s:hh pan:1 ]", - "[ 4/5 → 9/10 | s:hh pan:0 ]", - "[ 9/10 → 1/1 | s:hh pan:1 ]", - "[ 1/1 → 11/10 | s:hh pan:1 ]", + "[ 7/10 → 4/5 | s:hh pan:0 ]", + "[ 4/5 → 9/10 | s:hh pan:1 ]", + "[ 9/10 → 1/1 | s:hh pan:0 ]", + "[ 1/1 → 11/10 | s:hh pan:0 ]", "[ 11/10 → 6/5 | s:hh pan:0 ]", - "[ 6/5 → 13/10 | s:hh pan:0 ]", - "[ 13/10 → 7/5 | s:hh pan:0 ]", + "[ 6/5 → 13/10 | s:hh pan:1 ]", + "[ 13/10 → 7/5 | s:hh pan:1 ]", "[ 7/5 → 3/2 | s:hh pan:1 ]", - "[ 3/2 → 8/5 | s:hh pan:1 ]", + "[ 3/2 → 8/5 | s:hh pan:0 ]", "[ 8/5 → 17/10 | s:hh pan:1 ]", "[ 17/10 → 9/5 | s:hh pan:1 ]", "[ 9/5 → 19/10 | s:hh pan:1 ]", - "[ 19/10 → 2/1 | s:hh pan:0 ]", + "[ 19/10 → 2/1 | s:hh pan:1 ]", "[ 2/1 → 21/10 | s:hh pan:0 ]", - "[ 21/10 → 11/5 | s:hh pan:0 ]", - "[ 11/5 → 23/10 | s:hh pan:1 ]", + "[ 21/10 → 11/5 | s:hh pan:1 ]", + "[ 11/5 → 23/10 | s:hh pan:0 ]", "[ 23/10 → 12/5 | s:hh pan:0 ]", "[ 12/5 → 5/2 | s:hh pan:0 ]", - "[ 5/2 → 13/5 | s:hh pan:0 ]", - "[ 13/5 → 27/10 | s:hh pan:0 ]", - "[ 27/10 → 14/5 | s:hh pan:0 ]", - "[ 14/5 → 29/10 | s:hh pan:1 ]", + "[ 5/2 → 13/5 | s:hh pan:1 ]", + "[ 13/5 → 27/10 | s:hh pan:1 ]", + "[ 27/10 → 14/5 | s:hh pan:1 ]", + "[ 14/5 → 29/10 | s:hh pan:0 ]", "[ 29/10 → 3/1 | s:hh pan:1 ]", "[ 3/1 → 31/10 | s:hh pan:1 ]", "[ 31/10 → 16/5 | s:hh pan:1 ]", - "[ 16/5 → 33/10 | s:hh pan:0 ]", + "[ 16/5 → 33/10 | s:hh pan:1 ]", "[ 33/10 → 17/5 | s:hh pan:0 ]", "[ 17/5 → 7/2 | s:hh pan:0 ]", "[ 7/2 → 18/5 | s:hh pan:1 ]", - "[ 18/5 → 37/10 | s:hh pan:1 ]", + "[ 18/5 → 37/10 | s:hh pan:0 ]", "[ 37/10 → 19/5 | s:hh pan:0 ]", - "[ 19/5 → 39/10 | s:hh pan:0 ]", + "[ 19/5 → 39/10 | s:hh pan:1 ]", "[ 39/10 → 4/1 | s:hh pan:1 ]", ] `; exports[`runs examples > example "undegradeBy" example index 0 1`] = ` [ + "[ 0/1 → 1/8 | s:hh ]", "[ 1/8 → 1/4 | s:hh ]", "[ 1/4 → 3/8 | s:hh ]", "[ 3/8 → 1/2 | s:hh ]", @@ -7850,43 +10488,42 @@ exports[`runs examples > example "undegradeBy" example index 0 1`] = ` "[ 3/2 → 13/8 | s:hh ]", "[ 13/8 → 7/4 | s:hh ]", "[ 7/4 → 15/8 | s:hh ]", - "[ 2/1 → 17/8 | s:hh ]", - "[ 17/8 → 9/4 | s:hh ]", + "[ 15/8 → 2/1 | s:hh ]", "[ 9/4 → 19/8 | s:hh ]", - "[ 19/8 → 5/2 | s:hh ]", "[ 5/2 → 21/8 | s:hh ]", "[ 21/8 → 11/4 | s:hh ]", + "[ 11/4 → 23/8 | s:hh ]", "[ 23/8 → 3/1 | s:hh ]", "[ 3/1 → 25/8 | s:hh ]", - "[ 13/4 → 27/8 | s:hh ]", + "[ 25/8 → 13/4 | s:hh ]", "[ 27/8 → 7/2 | s:hh ]", - "[ 15/4 → 31/8 | s:hh ]", + "[ 7/2 → 29/8 | s:hh ]", "[ 31/8 → 4/1 | s:hh ]", ] `; exports[`runs examples > example "undegradeBy" example index 1 1`] = ` [ - "[ 0/1 → 1/10 | s:hh pan:0 ]", - "[ 1/10 → 1/5 | s:hh pan:0 ]", + "[ 0/1 → 1/10 | s:hh pan:1 ]", + "[ 1/10 → 1/5 | s:hh pan:1 ]", "[ 1/5 → 3/10 | s:hh pan:0 ]", "[ 3/10 → 2/5 | s:hh pan:0 ]", "[ 2/5 → 1/2 | s:hh pan:0 ]", "[ 1/2 → 3/5 | s:hh pan:0 ]", "[ 3/5 → 7/10 | s:hh pan:0 ]", - "[ 7/10 → 4/5 | s:hh pan:1 ]", + "[ 7/10 → 4/5 | s:hh pan:0 ]", "[ 4/5 → 9/10 | s:hh pan:0 ]", - "[ 9/10 → 1/1 | s:hh pan:1 ]", - "[ 1/1 → 11/10 | s:hh pan:1 ]", + "[ 9/10 → 1/1 | s:hh pan:0 ]", + "[ 1/1 → 11/10 | s:hh pan:0 ]", "[ 11/10 → 6/5 | s:hh pan:0 ]", "[ 6/5 → 13/10 | s:hh pan:0 ]", "[ 13/10 → 7/5 | s:hh pan:0 ]", "[ 7/5 → 3/2 | s:hh pan:0 ]", - "[ 3/2 → 8/5 | s:hh pan:1 ]", - "[ 8/5 → 17/10 | s:hh pan:1 ]", + "[ 3/2 → 8/5 | s:hh pan:0 ]", + "[ 8/5 → 17/10 | s:hh pan:0 ]", "[ 17/10 → 9/5 | s:hh pan:0 ]", "[ 9/5 → 19/10 | s:hh pan:0 ]", - "[ 19/10 → 2/1 | s:hh pan:0 ]", + "[ 19/10 → 2/1 | s:hh pan:1 ]", "[ 2/1 → 21/10 | s:hh pan:0 ]", "[ 21/10 → 11/5 | s:hh pan:0 ]", "[ 11/5 → 23/10 | s:hh pan:0 ]", @@ -7899,14 +10536,14 @@ exports[`runs examples > example "undegradeBy" example index 1 1`] = ` "[ 29/10 → 3/1 | s:hh pan:0 ]", "[ 3/1 → 31/10 | s:hh pan:0 ]", "[ 31/10 → 16/5 | s:hh pan:1 ]", - "[ 16/5 → 33/10 | s:hh pan:0 ]", + "[ 16/5 → 33/10 | s:hh pan:1 ]", "[ 33/10 → 17/5 | s:hh pan:0 ]", "[ 17/5 → 7/2 | s:hh pan:0 ]", "[ 7/2 → 18/5 | s:hh pan:0 ]", "[ 18/5 → 37/10 | s:hh pan:0 ]", "[ 37/10 → 19/5 | s:hh pan:0 ]", - "[ 19/5 → 39/10 | s:hh pan:0 ]", - "[ 39/10 → 4/1 | s:hh pan:1 ]", + "[ 19/5 → 39/10 | s:hh pan:1 ]", + "[ 39/10 → 4/1 | s:hh pan:0 ]", ] `; @@ -8142,56 +10779,56 @@ exports[`runs examples > example "vowel" example index 0 1`] = ` exports[`runs examples > example "vowel" example index 1 1`] = ` [ - "[ 0/1 → 1/8 | s:bd vowel:e ]", - "[ 1/8 → 1/4 | s:sd vowel:e ]", - "[ 1/4 → 3/8 | s:mt vowel:e ]", - "[ 3/8 → 1/2 | s:ht vowel:e ]", - "[ 1/2 → 5/8 | s:bd vowel:e ]", - "[ 11/16 → 3/4 | s:cp vowel:e ]", - "[ 3/4 → 7/8 | s:ht vowel:e ]", - "[ 7/8 → 1/1 | s:lt vowel:e ]", - "[ 1/1 → 9/8 | s:bd vowel:o ]", - "[ 9/8 → 5/4 | s:sd vowel:o ]", - "[ 5/4 → 11/8 | s:mt vowel:o ]", - "[ 11/8 → 3/2 | s:ht vowel:o ]", - "[ 3/2 → 13/8 | s:bd vowel:o ]", - "[ 27/16 → 7/4 | s:cp vowel:o ]", - "[ 7/4 → 15/8 | s:ht vowel:o ]", - "[ 15/8 → 2/1 | s:lt vowel:o ]", - "[ 2/1 → 17/8 | s:bd vowel:i ]", - "[ 17/8 → 9/4 | s:sd vowel:i ]", - "[ 9/4 → 19/8 | s:mt vowel:i ]", - "[ 19/8 → 5/2 | s:ht vowel:i ]", - "[ 5/2 → 21/8 | s:bd vowel:i ]", - "[ 43/16 → 11/4 | s:cp vowel:i ]", - "[ 11/4 → 23/8 | s:ht vowel:i ]", - "[ 23/8 → 3/1 | s:lt vowel:i ]", - "[ 3/1 → 25/8 | s:bd vowel:i ]", - "[ 25/8 → 13/4 | s:sd vowel:i ]", - "[ 13/4 → 27/8 | s:mt vowel:i ]", - "[ 27/8 → 7/2 | s:ht vowel:i ]", - "[ 7/2 → 29/8 | s:bd vowel:i ]", - "[ 59/16 → 15/4 | s:cp vowel:i ]", - "[ 15/4 → 31/8 | s:ht vowel:i ]", - "[ 31/8 → 4/1 | s:lt vowel:i ]", + "[ 0/1 → 1/8 | s:bd vowel:a ]", + "[ 1/8 → 1/4 | s:sd vowel:a ]", + "[ 1/4 → 3/8 | s:mt vowel:a ]", + "[ 3/8 → 1/2 | s:ht vowel:a ]", + "[ 1/2 → 5/8 | s:bd vowel:a ]", + "[ 11/16 → 3/4 | s:cp vowel:a ]", + "[ 3/4 → 7/8 | s:ht vowel:a ]", + "[ 7/8 → 1/1 | s:lt vowel:a ]", + "[ 1/1 → 9/8 | s:bd vowel:i ]", + "[ 9/8 → 5/4 | s:sd vowel:i ]", + "[ 5/4 → 11/8 | s:mt vowel:i ]", + "[ 11/8 → 3/2 | s:ht vowel:i ]", + "[ 3/2 → 13/8 | s:bd vowel:i ]", + "[ 27/16 → 7/4 | s:cp vowel:i ]", + "[ 7/4 → 15/8 | s:ht vowel:i ]", + "[ 15/8 → 2/1 | s:lt vowel:i ]", + "[ 2/1 → 17/8 | s:bd vowel:u ]", + "[ 17/8 → 9/4 | s:sd vowel:u ]", + "[ 9/4 → 19/8 | s:mt vowel:u ]", + "[ 19/8 → 5/2 | s:ht vowel:u ]", + "[ 5/2 → 21/8 | s:bd vowel:u ]", + "[ 43/16 → 11/4 | s:cp vowel:u ]", + "[ 11/4 → 23/8 | s:ht vowel:u ]", + "[ 23/8 → 3/1 | s:lt vowel:u ]", + "[ 3/1 → 25/8 | s:bd vowel:e ]", + "[ 25/8 → 13/4 | s:sd vowel:e ]", + "[ 13/4 → 27/8 | s:mt vowel:e ]", + "[ 27/8 → 7/2 | s:ht vowel:e ]", + "[ 7/2 → 29/8 | s:bd vowel:e ]", + "[ 59/16 → 15/4 | s:cp vowel:e ]", + "[ 15/4 → 31/8 | s:ht vowel:e ]", + "[ 31/8 → 4/1 | s:lt vowel:e ]", ] `; exports[`runs examples > example "wchoose" example index 0 1`] = ` [ "[ 0/1 → 1/5 | note:c2 s:sine ]", - "[ 1/5 → 2/5 | note:g2 s:triangle ]", + "[ 1/5 → 2/5 | note:g2 s:sine ]", "[ 2/5 → 3/5 | note:g2 s:sine ]", "[ 3/5 → 4/5 | note:d2 s:sine ]", - "[ 4/5 → 1/1 | note:f1 s:triangle ]", - "[ 1/1 → 6/5 | note:c2 s:triangle ]", + "[ 4/5 → 1/1 | note:f1 s:sine ]", + "[ 1/1 → 6/5 | note:c2 s:sine ]", "[ 6/5 → 7/5 | note:g2 s:sine ]", "[ 7/5 → 8/5 | note:g2 s:sine ]", "[ 8/5 → 9/5 | note:d2 s:sine ]", "[ 9/5 → 2/1 | note:f1 s:sine ]", - "[ 2/1 → 11/5 | note:c2 s:sine ]", + "[ 2/1 → 11/5 | note:c2 s:bd n:6 ]", "[ 11/5 → 12/5 | note:g2 s:sine ]", - "[ 12/5 → 13/5 | note:g2 s:sine ]", + "[ 12/5 → 13/5 | note:g2 s:bd n:6 ]", "[ 13/5 → 14/5 | note:d2 s:sine ]", "[ 14/5 → 3/1 | note:f1 s:sine ]", "[ 3/1 → 16/5 | note:c2 s:sine ]", @@ -8206,18 +10843,18 @@ exports[`runs examples > example "wchooseCycles" example index 0 1`] = ` [ "[ 0/1 → 1/8 | s:bd ]", "[ 1/8 → 1/4 | s:bd ]", - "[ 1/4 → 3/8 | s:bd ]", + "[ 1/4 → 3/8 | s:sd ]", "[ 3/8 → 1/2 | s:bd ]", "[ 1/2 → 5/8 | s:bd ]", "[ 5/8 → 3/4 | s:bd ]", - "[ 3/4 → 7/8 | s:sd ]", + "[ 3/4 → 7/8 | s:bd ]", "[ 7/8 → 1/1 | s:bd ]", - "[ 1/1 → 9/8 | s:bd ]", + "[ 1/1 → 9/8 | s:hh ]", "[ 9/8 → 5/4 | s:bd ]", "[ 5/4 → 11/8 | s:bd ]", - "[ 11/8 → 3/2 | s:sd ]", + "[ 11/8 → 3/2 | s:bd ]", "[ 3/2 → 13/8 | s:bd ]", - "[ 13/8 → 7/4 | s:bd ]", + "[ 13/8 → 7/4 | s:sd ]", "[ 7/4 → 15/8 | s:bd ]", "[ 15/8 → 2/1 | s:bd ]", "[ 2/1 → 17/8 | s:bd ]", @@ -8226,7 +10863,7 @@ exports[`runs examples > example "wchooseCycles" example index 0 1`] = ` "[ 19/8 → 5/2 | s:bd ]", "[ 5/2 → 21/8 | s:bd ]", "[ 21/8 → 11/4 | s:bd ]", - "[ 11/4 → 23/8 | s:hh ]", + "[ 11/4 → 23/8 | s:sd ]", "[ 23/8 → 3/1 | s:bd ]", "[ 3/1 → 25/8 | s:bd ]", "[ 25/8 → 13/4 | s:bd ]", @@ -8244,12 +10881,12 @@ exports[`runs examples > example "wchooseCycles" example index 1 1`] = ` "[ 0/1 → 1/12 | s:bd ]", "[ 1/12 → 1/6 | s:bd ]", "[ 1/6 → 1/4 | s:bd ]", - "[ 1/4 → 1/3 | s:hh ]", - "[ 1/3 → 5/12 | s:hh ]", - "[ 5/12 → 1/2 | s:hh ]", - "[ 1/2 → 7/12 | s:bd ]", - "[ 7/12 → 2/3 | s:bd ]", - "[ 2/3 → 3/4 | s:bd ]", + "[ 1/4 → 1/3 | s:bd ]", + "[ 1/3 → 5/12 | s:bd ]", + "[ 5/12 → 1/2 | s:bd ]", + "[ 1/2 → 7/12 | s:sd ]", + "[ 7/12 → 2/3 | s:sd ]", + "[ 2/3 → 3/4 | s:sd ]", "[ 3/4 → 5/6 | s:bd ]", "[ 5/6 → 11/12 | s:bd ]", "[ 11/12 → 1/1 | s:bd ]", @@ -8259,9 +10896,9 @@ exports[`runs examples > example "wchooseCycles" example index 1 1`] = ` "[ 5/4 → 4/3 | s:bd ]", "[ 4/3 → 17/12 | s:bd ]", "[ 17/12 → 3/2 | s:bd ]", - "[ 3/2 → 19/12 | s:sd ]", - "[ 19/12 → 5/3 | s:sd ]", - "[ 5/3 → 7/4 | s:sd ]", + "[ 3/2 → 19/12 | s:hh ]", + "[ 19/12 → 5/3 | s:hh ]", + "[ 5/3 → 7/4 | s:hh ]", "[ 7/4 → 11/6 | s:bd ]", "[ 11/6 → 23/12 | s:bd ]", "[ 23/12 → 2/1 | s:bd ]", @@ -8271,18 +10908,18 @@ exports[`runs examples > example "wchooseCycles" example index 1 1`] = ` "[ 9/4 → 7/3 | s:hh ]", "[ 7/3 → 29/12 | s:hh ]", "[ 29/12 → 5/2 | s:hh ]", - "[ 5/2 → 31/12 | s:hh ]", - "[ 31/12 → 8/3 | s:hh ]", - "[ 8/3 → 11/4 | s:hh ]", - "[ 11/4 → 17/6 | s:sd ]", - "[ 17/6 → 35/12 | s:sd ]", - "[ 35/12 → 3/1 | s:sd ]", + "[ 5/2 → 31/12 | s:bd ]", + "[ 31/12 → 8/3 | s:bd ]", + "[ 8/3 → 11/4 | s:bd ]", + "[ 11/4 → 17/6 | s:bd ]", + "[ 17/6 → 35/12 | s:bd ]", + "[ 35/12 → 3/1 | s:bd ]", "[ 3/1 → 37/12 | s:bd ]", "[ 37/12 → 19/6 | s:bd ]", "[ 19/6 → 13/4 | s:bd ]", - "[ 13/4 → 10/3 | s:bd ]", - "[ 10/3 → 41/12 | s:bd ]", - "[ 41/12 → 7/2 | s:bd ]", + "[ 13/4 → 10/3 | s:sd ]", + "[ 10/3 → 41/12 | s:sd ]", + "[ 41/12 → 7/2 | s:sd ]", "[ 7/2 → 43/12 | s:hh ]", "[ 43/12 → 11/3 | s:hh ]", "[ 11/3 → 15/4 | s:hh ]", @@ -8292,6 +10929,59 @@ exports[`runs examples > example "wchooseCycles" example index 1 1`] = ` ] `; +exports[`runs examples > example "wchooseCycles" example index 2 1`] = ` +[ + "[ 0/1 → 1/32 | s:bd ]", + "[ 3/32 → 1/8 | s:bd ]", + "[ 3/16 → 7/32 | s:bd ]", + "[ 1/4 → 1/3 | s:hh ]", + "[ 1/3 → 5/12 | s:hh ]", + "[ 5/12 → 1/2 | 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 ]", + "[ 1/1 → 33/32 | s:bd ]", + "[ 35/32 → 9/8 | s:bd ]", + "[ 19/16 → 39/32 | s:bd ]", + "[ 5/4 → 4/3 | s:hh ]", + "[ 4/3 → 17/12 | s:hh ]", + "[ 17/12 → 3/2 | s:hh ]", + "[ 3/2 → 49/32 | s:bd ]", + "[ 51/32 → 13/8 | s:bd ]", + "[ 27/16 → 55/32 | s:bd ]", + "[ 7/4 → 11/6 | s:hh ]", + "[ 11/6 → 23/12 | s:hh ]", + "[ 23/12 → 2/1 | s:hh ]", + "[ 2/1 → 25/12 | s:hh ]", + "[ 25/12 → 13/6 | s:hh ]", + "[ 13/6 → 9/4 | s:hh ]", + "[ 9/4 → 7/3 | s:hh ]", + "[ 7/3 → 29/12 | s:hh ]", + "[ 29/12 → 5/2 | s:hh ]", + "[ 5/2 → 81/32 | s:bd ]", + "[ 83/32 → 21/8 | s:bd ]", + "[ 43/16 → 87/32 | s:bd ]", + "[ 11/4 → 17/6 | s:hh ]", + "[ 17/6 → 35/12 | s:hh ]", + "[ 35/12 → 3/1 | s:hh ]", + "[ 3/1 → 97/32 | s:bd ]", + "[ 99/32 → 25/8 | s:bd ]", + "[ 51/16 → 103/32 | s:bd ]", + "[ 13/4 → 10/3 | s:hh ]", + "[ 10/3 → 41/12 | s:hh ]", + "[ 41/12 → 7/2 | s:hh ]", + "[ 7/2 → 43/12 | s:hh ]", + "[ 43/12 → 11/3 | s:hh ]", + "[ 11/3 → 15/4 | s:hh ]", + "[ 15/4 → 23/6 | s:hh ]", + "[ 23/6 → 47/12 | s:hh ]", + "[ 47/12 → 4/1 | s:hh ]", +] +`; + exports[`runs examples > example "when" example index 0 1`] = ` [ "[ 0/1 → 1/3 | note:c3 ]", @@ -8309,6 +10999,8 @@ exports[`runs examples > example "when" example index 0 1`] = ` ] `; +exports[`runs examples > example "whenKey" example index 0 1`] = `[]`; + exports[`runs examples > example "withValue" example index 0 1`] = ` [ "[ 0/1 → 1/3 | 10 ]", @@ -8371,6 +11063,45 @@ exports[`runs examples > example "xfade" example index 0 1`] = ` ] `; +exports[`runs examples > example "zip" example index 0 1`] = ` +[ + "[ 0/1 → 1/8 | note:e s:folkharp ]", + "[ 1/8 → 1/4 | note:e s:folkharp ]", + "[ 1/4 → 3/8 | note:g s:folkharp ]", + "[ 3/8 → 1/2 | note:f s:folkharp ]", + "[ 1/2 → 5/8 | note:f s:folkharp ]", + "[ 5/8 → 11/16 | note:f s:folkharp ]", + "[ 11/16 → 3/4 | note:e s:folkharp ]", + "[ 3/4 → 7/8 | note:e s:folkharp ]", + "[ 7/8 → 1/1 | note:g s:folkharp ]", + "[ 1/1 → 9/8 | note:a s:folkharp ]", + "[ 9/8 → 5/4 | note:f s:folkharp ]", + "[ 5/4 → 11/8 | note:e s:folkharp ]", + "[ 11/8 → 3/2 | note:f4 s:folkharp ]", + "[ 3/2 → 13/8 | note:e s:folkharp ]", + "[ 13/8 → 7/4 | note:f s:folkharp ]", + "[ 7/4 → 15/8 | note:c s:folkharp ]", + "[ 15/8 → 2/1 | note:f s:folkharp ]", + "[ 2/1 → 17/8 | note:g s:folkharp ]", + "[ 17/8 → 9/4 | note:g s:folkharp ]", + "[ 9/4 → 19/8 | note:e s:folkharp ]", + "[ 19/8 → 5/2 | note:e s:folkharp ]", + "[ 5/2 → 41/16 | note:f s:folkharp ]", + "[ 41/16 → 21/8 | note:e s:folkharp ]", + "[ 21/8 → 11/4 | note:f s:folkharp ]", + "[ 11/4 → 23/8 | note:f s:folkharp ]", + "[ 23/8 → 3/1 | note:a s:folkharp ]", + "[ 3/1 → 25/8 | note:e s:folkharp ]", + "[ 25/8 → 13/4 | note:g s:folkharp ]", + "[ 13/4 → 27/8 | note:f4 s:folkharp ]", + "[ 27/8 → 7/2 | note:f s:folkharp ]", + "[ 7/2 → 29/8 | note:e s:folkharp ]", + "[ 29/8 → 15/4 | note:c s:folkharp ]", + "[ 15/4 → 31/8 | note:e s:folkharp ]", + "[ 31/8 → 4/1 | note:f s:folkharp ]", +] +`; + exports[`runs examples > example "zoom" example index 0 1`] = ` [ "[ 0/1 → 1/6 | s:hh ]", 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/test/__snapshots__/tunes.test.mjs.snap b/test/__snapshots__/tunes.test.mjs.snap index f851077a..4a0ddd53 100644 --- a/test/__snapshots__/tunes.test.mjs.snap +++ b/test/__snapshots__/tunes.test.mjs.snap @@ -3,60 +3,58 @@ exports[`renders tunes > tune: amensister 1`] = ` [ "[ 0/1 → 1/16 | s:breath room:1 shape:0.6 begin:0.9375 end:1 ]", - "[ 0/1 → 1/8 | note:Eb1 s:sawtooth gain:0.4 decay:0.1 sustain:0 lpattack:0.1 lpenv:-4 resonance:10 cutoff:300.0066107586751 ]", - "[ 0/1 → 1/8 | note:F1 s:sawtooth gain:0.4 decay:0.1 sustain:0 lpattack:0.1 lpenv:-4 resonance:10 cutoff:300.0066107586751 ]", - "[ 0/1 → 1/4 | n:0 s:amencutup room:0.5 ]", + "[ 0/1 → 1/8 | n:0 speed:2 delay:0.5 s:amencutup room:0.5 ]", "[ 1/16 → 1/8 | s:breath room:1 shape:0.6 begin:0.875 end:0.9375 ]", "[ 1/8 → 3/16 | s:breath room:1 shape:0.6 begin:0.8125 end:0.875 ]", - "[ 1/8 → 1/4 | note:45 s:sawtooth gain:0.4 decay:0.1 sustain:0 lpattack:0.1 lpenv:-4 resonance:10 cutoff:300.174310575404 ]", - "[ 1/8 → 1/4 | note:45 s:sawtooth gain:0.4 decay:0.1 sustain:0 lpattack:0.1 lpenv:-4 resonance:10 cutoff:300.174310575404 ]", + "[ 1/8 → 1/4 | n:0 s:amencutup room:0.5 ]", + "[ 1/8 → 1/4 | note:G1 s:sawtooth gain:0.4 decay:0.1 sustain:0 lpattack:0.1 lpenv:-4 resonance:10 cutoff:300.0522648640107 ]", + "[ 1/8 → 1/4 | note:G1 s:sawtooth gain:0.4 decay:0.1 sustain:0 lpattack:0.1 lpenv:-4 resonance:10 cutoff:300.0522648640107 ]", "[ 3/16 → 1/4 | s:breath room:1 shape:0.6 begin:0.75 end:0.8125 ]", "[ 1/4 → 5/16 | s:breath room:1 shape:0.6 begin:0.6875 end:0.75 ]", - "[ 1/4 → 3/8 | n:1 speed:2 delay:0.5 s:amencutup room:0.5 ]", - "[ 1/4 → 3/8 | note:A1 s:sawtooth gain:0.4 decay:0.1 sustain:0 lpattack:0.1 lpenv:-4 resonance:10 cutoff:300.7878869297153 ]", - "[ 1/4 → 3/8 | note:A1 s:sawtooth gain:0.4 decay:0.1 sustain:0 lpattack:0.1 lpenv:-4 resonance:10 cutoff:300.7878869297153 ]", + "[ 1/4 → 3/8 | note:A1 s:sawtooth gain:0.4 decay:0.1 sustain:0 lpattack:0.1 lpenv:-4 resonance:10 cutoff:300.4082736884894 ]", + "[ 1/4 → 3/8 | note:A1 s:sawtooth gain:0.4 decay:0.1 sustain:0 lpattack:0.1 lpenv:-4 resonance:10 cutoff:300.4082736884894 ]", + "[ 1/4 → 1/2 | n:1 s:amencutup room:0.5 ]", "[ 5/16 → 3/8 | s:breath room:1 shape:0.6 begin:0.625 end:0.6875 ]", "[ 3/8 → 7/16 | s:breath room:1 shape:0.6 begin:0.5625 end:0.625 ]", - "[ 3/8 → 1/2 | n:1 s:amencutup room:0.5 ]", - "[ 3/8 → 1/2 | note:F1 s:sawtooth gain:0.4 decay:0.1 sustain:0 lpattack:0.1 lpenv:-4 resonance:10 cutoff:302.11020572391345 ]", - "[ 3/8 → 1/2 | note:F1 s:sawtooth gain:0.4 decay:0.1 sustain:0 lpattack:0.1 lpenv:-4 resonance:10 cutoff:302.11020572391345 ]", + "[ 3/8 → 1/2 | note:G1 s:sawtooth gain:0.4 decay:0.1 sustain:0 lpattack:0.1 lpenv:-4 resonance:10 cutoff:301.345119350921 ]", + "[ 3/8 → 1/2 | note:G1 s:sawtooth gain:0.4 decay:0.1 sustain:0 lpattack:0.1 lpenv:-4 resonance:10 cutoff:301.345119350921 ]", "[ 7/16 → 1/2 | s:breath room:1 shape:0.6 begin:0.5 end:0.5625 ]", "[ 1/2 → 9/16 | s:breath room:1 shape:0.6 begin:0.4375 end:0.5 ]", - "[ 1/2 → 3/4 | n:2 s:amencutup room:0.5 ]", + "[ 1/2 → 5/8 | n:2 delay:0.5 s:amencutup room:0.5 ]", "[ 9/16 → 5/8 | s:breath room:1 shape:0.6 begin:0.375 end:0.4375 ]", "[ 5/8 → 11/16 | s:breath room:1 shape:0.6 begin:0.3125 end:0.375 ]", + "[ 5/8 → 3/4 | n:2 s:amencutup room:0.5 ]", "[ 11/16 → 3/4 | s:breath room:1 shape:0.6 begin:0.25 end:0.3125 ]", "[ 3/4 → 13/16 | s:breath room:1 shape:0.6 begin:0.1875 end:0.25 ]", "[ 3/4 → 7/8 | n:3 s:amencutup room:0.5 ]", - "[ 3/4 → 7/8 | note:Bb0 s:sawtooth gain:0.4 decay:0.1 sustain:0 lpattack:0.1 lpenv:-4 resonance:10 cutoff:312.54769231985796 ]", - "[ 3/4 → 7/8 | note:Bb0 s:sawtooth gain:0.4 decay:0.1 sustain:0 lpattack:0.1 lpenv:-4 resonance:10 cutoff:312.54769231985796 ]", + "[ 3/4 → 7/8 | note:34 s:sawtooth gain:0.4 decay:0.1 sustain:0 lpattack:0.1 lpenv:-4 resonance:10 cutoff:309.9939679933326 ]", + "[ 3/4 → 7/8 | note:34 s:sawtooth gain:0.4 decay:0.1 sustain:0 lpattack:0.1 lpenv:-4 resonance:10 cutoff:309.9939679933326 ]", "[ 13/16 → 7/8 | s:breath room:1 shape:0.6 begin:0.125 end:0.1875 ]", "[ 7/8 → 15/16 | s:breath room:1 shape:0.6 begin:0.0625 end:0.125 ]", - "[ 7/8 → 1/1 | n:3 s:amencutup room:0.5 ]", - "[ 7/8 → 1/1 | note:D1 s:sawtooth gain:0.4 decay:0.1 sustain:0 lpattack:0.1 lpenv:-4 resonance:10 cutoff:318.7927796831686 ]", - "[ 7/8 → 1/1 | note:D1 s:sawtooth gain:0.4 decay:0.1 sustain:0 lpattack:0.1 lpenv:-4 resonance:10 cutoff:318.7927796831686 ]", + "[ 7/8 → 1/1 | n:3 delay:0.5 s:amencutup room:0.5 ]", + "[ 7/8 → 1/1 | note:C1 s:sawtooth gain:0.4 decay:0.1 sustain:0 lpattack:0.1 lpenv:-4 resonance:10 cutoff:315.47482330436543 ]", + "[ 7/8 → 1/1 | note:C1 s:sawtooth gain:0.4 decay:0.1 sustain:0 lpattack:0.1 lpenv:-4 resonance:10 cutoff:315.47482330436543 ]", "[ 15/16 → 1/1 | s:breath room:1 shape:0.6 begin:0 end:0.0625 ]", ] `; exports[`renders tunes > tune: arpoon 1`] = ` [ - "[ (0/1 → 1/4) ⇝ 1/3 | note:55.000070545713186 clip:2 cutoff:501.2345499807435 resonance:12 gain:0.5 decay:0.16 sustain:0.5 delay:0.2 room:0.5 pan:0.48882285676537807 s:piano ]", - "[ (0/1 → 1/4) ⇝ 1/3 | note:64.00007054571319 clip:2 cutoff:501.2345499807435 resonance:12 gain:0.5 decay:0.16 sustain:0.5 delay:0.2 room:0.5 pan:0.48882285676537807 s:piano ]", + "[ (0/1 → 1/4) ⇝ 1/3 | note:55 clip:2 cutoff:500 resonance:12 gain:0.5 decay:0.16 sustain:0.5 delay:0.2 room:0.5 pan:0.44999999999999996 s:piano ]", + "[ (0/1 → 1/4) ⇝ 1/3 | note:64 clip:2 cutoff:500 resonance:12 gain:0.5 decay:0.16 sustain:0.5 delay:0.2 room:0.5 pan:0.44999999999999996 s:piano ]", "[ 0/1 → 1/2 | s:bd bank:RolandTR909 gain:0.5 ]", "[ 0/1 → 1/1 | note:33 s:sawtooth cutoff:180 lpattack:0.1 lpenv:2 ]", "[ 0/1 → 1/1 | note:33.12 s:sawtooth cutoff:180 lpattack:0.1 lpenv:2 ]", - "[ 0/1 ⇜ (1/4 → 1/3) | note:55.000070545713186 clip:2 cutoff:501.2345499807435 resonance:12 gain:0.8 decay:0.16 sustain:0.5 delay:0.2 room:0.5 pan:0.48882285676537807 s:piano ]", - "[ 0/1 ⇜ (1/4 → 1/3) | note:64.00007054571319 clip:2 cutoff:501.2345499807435 resonance:12 gain:0.8 decay:0.16 sustain:0.5 delay:0.2 room:0.5 pan:0.48882285676537807 s:piano ]", - "[ (1/3 → 1/2) ⇝ 2/3 | note:60.00166796373806 clip:2 cutoff:529.1893654159594 resonance:12 gain:0.8 decay:0.16 sustain:0.5 delay:0.2 room:0.5 pan:0.5560660171779821 s:piano ]", - "[ 1/3 ⇜ (1/2 → 2/3) | note:60.00166796373806 clip:2 cutoff:529.1893654159594 resonance:12 gain:0.5 decay:0.16 sustain:0.5 delay:0.2 room:0.5 pan:0.5560660171779821 s:piano ]", + "[ 0/1 ⇜ (1/4 → 1/3) | note:55 clip:2 cutoff:500 resonance:12 gain:0.8 decay:0.16 sustain:0.5 delay:0.2 room:0.5 pan:0.44999999999999996 s:piano ]", + "[ 0/1 ⇜ (1/4 → 1/3) | note:64 clip:2 cutoff:500 resonance:12 gain:0.8 decay:0.16 sustain:0.5 delay:0.2 room:0.5 pan:0.44999999999999996 s:piano ]", + "[ (1/3 → 1/2) ⇝ 2/3 | note:60.00052866221468 clip:2 cutoff:509.2515887569149 resonance:12 gain:0.8 decay:0.16 sustain:0.5 delay:0.2 room:0.5 pan:0.5249999999999999 s:piano ]", + "[ 1/3 ⇜ (1/2 → 2/3) | note:60.00052866221468 clip:2 cutoff:509.2515887569149 resonance:12 gain:0.5 decay:0.16 sustain:0.5 delay:0.2 room:0.5 pan:0.5249999999999999 s:piano ]", "[ 1/2 → 2/3 | s:hh bank:RolandTR909 gain:0.5 ]", "[ 1/2 → 1/1 | s:bd bank:RolandTR909 gain:0.5 ]", - "[ (2/3 → 3/4) ⇝ 1/1 | note:59.00670419166647 clip:2 cutoff:617.3233541633349 resonance:12 gain:0.5 decay:0.16 sustain:0.5 delay:0.2 room:0.5 pan:0.5948888739433602 s:piano ]", - "[ (2/3 → 3/4) ⇝ 1/1 | note:64.00670419166647 clip:2 cutoff:617.3233541633349 resonance:12 gain:0.5 decay:0.16 sustain:0.5 delay:0.2 room:0.5 pan:0.5948888739433602 s:piano ]", - "[ 2/3 ⇜ (3/4 → 1/1) | note:59.00670419166647 clip:2 cutoff:617.3233541633349 resonance:12 gain:0.8 decay:0.16 sustain:0.5 delay:0.2 room:0.5 pan:0.5948888739433602 s:piano ]", - "[ 2/3 ⇜ (3/4 → 1/1) | note:64.00670419166647 clip:2 cutoff:617.3233541633349 resonance:12 gain:0.8 decay:0.16 sustain:0.5 delay:0.2 room:0.5 pan:0.5948888739433602 s:piano ]", - "[ 5/6 → 1/1 | s:hh bank:RolandTR909 gain:0.5 ]", + "[ (2/3 → 3/4) ⇝ 1/1 | note:59.003688107962134 clip:2 cutoff:564.5418893373399 resonance:12 gain:0.5 decay:0.16 sustain:0.5 delay:0.2 room:0.5 pan:0.5799038105676657 s:piano ]", + "[ (2/3 → 3/4) ⇝ 1/1 | note:64.00368810796213 clip:2 cutoff:564.5418893373399 resonance:12 gain:0.5 decay:0.16 sustain:0.5 delay:0.2 room:0.5 pan:0.5799038105676657 s:piano ]", + "[ 2/3 ⇜ (3/4 → 1/1) | note:59.003688107962134 clip:2 cutoff:564.5418893373399 resonance:12 gain:0.8 decay:0.16 sustain:0.5 delay:0.2 room:0.5 pan:0.5799038105676657 s:piano ]", + "[ 2/3 ⇜ (3/4 → 1/1) | note:64.00368810796213 clip:2 cutoff:564.5418893373399 resonance:12 gain:0.8 decay:0.16 sustain:0.5 delay:0.2 room:0.5 pan:0.5799038105676657 s:piano ]", ] `; @@ -259,63 +257,64 @@ exports[`renders tunes > tune: barryHarris 1`] = ` exports[`renders tunes > tune: bassFuge 1`] = ` [ - "[ 0/1 → 1/8 | note:A2 s:flbass n:0 gain:0.3 cutoff:2206.5338497506646 resonance:10 clip:1 ]", - "[ -7/4 ⇜ (0/1 → 1/4) | note:C4 s:flbass n:0 gain:0.3 cutoff:915.3693764684064 resonance:10 clip:1 ]", - "[ -7/4 ⇜ (0/1 → 1/4) | note:E4 s:flbass n:0 gain:0.3 cutoff:915.3693764684064 resonance:10 clip:1 ]", - "[ -3/2 ⇜ (0/1 → 1/4) ⇝ 1/2 | gain:0.3 note:A4 s:flbass n:0 cutoff:1275.6208956766397 resonance:10 clip:1 ]", - "[ -3/2 ⇜ (0/1 → 1/4) ⇝ 1/2 | gain:0.3 note:C5 s:flbass n:0 cutoff:1275.6208956766397 resonance:10 clip:1 ]", - "[ -5/4 ⇜ (0/1 → 1/4) ⇝ 3/4 | gain:0.15 note:A4 s:flbass n:0 cutoff:1677.2102254830027 resonance:10 clip:1 ]", - "[ -5/4 ⇜ (0/1 → 1/4) ⇝ 3/4 | gain:0.15 note:C5 s:flbass n:0 cutoff:1677.2102254830027 resonance:10 clip:1 ]", - "[ 0/1 → 1/4 | note:A3 s:flbass n:0 gain:0.3 cutoff:2312.732504596285 resonance:10 clip:1 ]", - "[ -1/1 ⇜ (0/1 → 1/2) ⇝ 1/1 | gain:0.075 note:A4 s:flbass n:0 cutoff:2100 resonance:10 clip:1 ]", - "[ -1/1 ⇜ (0/1 → 1/2) ⇝ 1/1 | gain:0.075 note:C5 s:flbass n:0 cutoff:2100 resonance:10 clip:1 ]", + "[ 0/1 → 1/8 | note:A2 s:flbass n:0 gain:0.3 cutoff:2100 resonance:10 clip:1 ]", + "[ -7/4 ⇜ (0/1 → 1/4) | note:C4 s:flbass n:0 gain:0.3 cutoff:200 resonance:10 clip:1 ]", + "[ -7/4 ⇜ (0/1 → 1/4) | note:E4 s:flbass n:0 gain:0.3 cutoff:200 resonance:10 clip:1 ]", + "[ -3/2 ⇜ (0/1 → 1/4) ⇝ 1/2 | gain:0.3 note:A4 s:flbass n:0 cutoff:247.63696685453513 resonance:10 clip:1 ]", + "[ -3/2 ⇜ (0/1 → 1/4) ⇝ 1/2 | gain:0.3 note:C5 s:flbass n:0 cutoff:247.63696685453513 resonance:10 clip:1 ]", + "[ -5/4 ⇜ (0/1 → 1/4) ⇝ 3/4 | gain:0.15 note:A4 s:flbass n:0 cutoff:388.1591509854036 resonance:10 clip:1 ]", + "[ -5/4 ⇜ (0/1 → 1/4) ⇝ 3/4 | gain:0.15 note:C5 s:flbass n:0 cutoff:388.1591509854036 resonance:10 clip:1 ]", + "[ 0/1 → 1/4 | note:A3 s:flbass n:0 gain:0.3 cutoff:2100 resonance:10 clip:1 ]", + "[ -1/1 ⇜ (0/1 → 1/2) ⇝ 1/1 | gain:0.075 note:A4 s:flbass n:0 cutoff:614.5201833107434 resonance:10 clip:1 ]", + "[ -1/1 ⇜ (0/1 → 1/2) ⇝ 1/1 | gain:0.075 note:C5 s:flbass n:0 cutoff:614.5201833107434 resonance:10 clip:1 ]", "[ 0/1 → 1/2 | s:bd n:1 ]", - "[ -3/4 ⇜ (0/1 → 3/4) ⇝ 5/4 | gain:0.0375 note:A4 s:flbass n:0 cutoff:2522.789774516997 resonance:10 clip:1 ]", - "[ -3/4 ⇜ (0/1 → 3/4) ⇝ 5/4 | gain:0.0375 note:C5 s:flbass n:0 cutoff:2522.789774516997 resonance:10 clip:1 ]", - "[ -3/2 ⇜ (1/4 → 1/2) | gain:0.3 note:A4 s:flbass n:0 cutoff:1275.6208956766397 resonance:10 clip:1 ]", - "[ -3/2 ⇜ (1/4 → 1/2) | gain:0.3 note:C5 s:flbass n:0 cutoff:1275.6208956766397 resonance:10 clip:1 ]", - "[ -5/4 ⇜ (1/4 → 1/2) ⇝ 3/4 | gain:0.15 note:A4 s:flbass n:0 cutoff:1677.2102254830027 resonance:10 clip:1 ]", - "[ -5/4 ⇜ (1/4 → 1/2) ⇝ 3/4 | gain:0.15 note:C5 s:flbass n:0 cutoff:1677.2102254830027 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/4 ⇜ (0/1 → 3/4) ⇝ 5/4 | gain:0.0375 note:A4 s:flbass n:0 cutoff:915.3693764684064 resonance:10 clip:1 ]", + "[ -3/4 ⇜ (0/1 → 3/4) ⇝ 5/4 | gain:0.0375 note:C5 s:flbass n:0 cutoff:915.3693764684064 resonance:10 clip:1 ]", + "[ -3/2 ⇜ (1/4 → 1/2) | gain:0.3 note:A4 s:flbass n:0 cutoff:247.63696685453513 resonance:10 clip:1 ]", + "[ -3/2 ⇜ (1/4 → 1/2) | gain:0.3 note:C5 s:flbass n:0 cutoff:247.63696685453513 resonance:10 clip:1 ]", + "[ -5/4 ⇜ (1/4 → 1/2) ⇝ 3/4 | gain:0.15 note:A4 s:flbass n:0 cutoff:388.1591509854036 resonance:10 clip:1 ]", + "[ -5/4 ⇜ (1/4 → 1/2) ⇝ 3/4 | gain:0.15 note:C5 s:flbass n:0 cutoff:388.1591509854036 resonance:10 clip:1 ]", + "[ 1/4 → 1/2 | note:C4 s:flbass n:0 gain:0.3 cutoff:2522.789774516997 resonance:10 clip:1 ]", + "[ 1/4 → 1/2 | note:E4 s:flbass n:0 gain:0.3 cutoff:2522.789774516997 resonance:10 clip:1 ]", "[ 1/4 → 1/2 | s:hh n:0 ]", - "[ 3/8 → 1/2 | note:A2 s:flbass n:0 gain:0.3 cutoff:2827.098521493671 resonance:10 clip:1 ]", - "[ -5/4 ⇜ (1/2 → 3/4) | gain:0.15 note:A4 s:flbass n:0 cutoff:1677.2102254830027 resonance:10 clip:1 ]", - "[ -5/4 ⇜ (1/2 → 3/4) | gain:0.15 note:C5 s:flbass n:0 cutoff:1677.2102254830027 resonance:10 clip:1 ]", - "[ -1/1 ⇜ (1/2 → 3/4) ⇝ 1/1 | gain:0.075 note:A4 s:flbass n:0 cutoff:2100 resonance:10 clip:1 ]", - "[ -1/1 ⇜ (1/2 → 3/4) ⇝ 1/1 | gain:0.075 note:C5 s:flbass n:0 cutoff:2100 resonance:10 clip:1 ]", - "[ 1/2 → 3/4 | gain:0.3 note:A4 s:flbass n:0 cutoff:3110.8609453791396 resonance:10 clip:1 ]", - "[ 1/2 → 3/4 | gain:0.3 note:C5 s:flbass n:0 cutoff:3110.8609453791396 resonance:10 clip:1 ]", + "[ 3/8 → 1/2 | note:A2 s:flbass n:0 gain:0.3 cutoff:2727.5302177148174 resonance:10 clip:1 ]", + "[ -5/4 ⇜ (1/2 → 3/4) | gain:0.15 note:A4 s:flbass n:0 cutoff:388.1591509854036 resonance:10 clip:1 ]", + "[ -5/4 ⇜ (1/2 → 3/4) | gain:0.15 note:C5 s:flbass n:0 cutoff:388.1591509854036 resonance:10 clip:1 ]", + "[ -1/1 ⇜ (1/2 → 3/4) ⇝ 1/1 | gain:0.075 note:A4 s:flbass n:0 cutoff:614.5201833107434 resonance:10 clip:1 ]", + "[ -1/1 ⇜ (1/2 → 3/4) ⇝ 1/1 | gain:0.075 note:C5 s:flbass n:0 cutoff:614.5201833107434 resonance:10 clip:1 ]", + "[ 1/2 → 3/4 | gain:0.3 note:A4 s:flbass n:0 cutoff:2924.3791043233605 resonance:10 clip:1 ]", + "[ 1/2 → 3/4 | gain:0.3 note:C5 s:flbass n:0 cutoff:2924.3791043233605 resonance:10 clip:1 ]", "[ 1/2 → 1/1 | s:bd n:1 ]", "[ 1/2 → 1/1 | s:sd n:0 ]", - "[ 3/4 → 7/8 | note:A2 s:flbass n:0 gain:0.3 cutoff:3366.0584981088073 resonance:10 clip:1 ]", - "[ -1/1 ⇜ (3/4 → 1/1) | gain:0.075 note:A4 s:flbass n:0 cutoff:2100 resonance:10 clip:1 ]", - "[ -1/1 ⇜ (3/4 → 1/1) | gain:0.075 note:C5 s:flbass n:0 cutoff:2100 resonance:10 clip:1 ]", - "[ -3/4 ⇜ (3/4 → 1/1) ⇝ 5/4 | gain:0.0375 note:A4 s:flbass n:0 cutoff:2522.789774516997 resonance:10 clip:1 ]", - "[ -3/4 ⇜ (3/4 → 1/1) ⇝ 5/4 | gain:0.0375 note:C5 s:flbass n:0 cutoff:2522.789774516997 resonance:10 clip:1 ]", - "[ 3/4 → 1/1 | note:A3 s:flbass n:0 gain:0.3 cutoff:3443.5028842544402 resonance:10 clip:1 ]", - "[ 3/4 → 1/1 | gain:0.15 note:A4 s:flbass n:0 cutoff:3443.5028842544402 resonance:10 clip:1 ]", - "[ 3/4 → 1/1 | gain:0.15 note:C5 s:flbass n:0 cutoff:3443.5028842544402 resonance:10 clip:1 ]", + "[ 3/4 → 7/8 | note:A2 s:flbass n:0 gain:0.3 cutoff:3284.6306235315933 resonance:10 clip:1 ]", + "[ -1/1 ⇜ (3/4 → 1/1) | gain:0.075 note:A4 s:flbass n:0 cutoff:614.5201833107434 resonance:10 clip:1 ]", + "[ -1/1 ⇜ (3/4 → 1/1) | gain:0.075 note:C5 s:flbass n:0 cutoff:614.5201833107434 resonance:10 clip:1 ]", + "[ -3/4 ⇜ (3/4 → 1/1) ⇝ 5/4 | gain:0.0375 note:A4 s:flbass n:0 cutoff:915.3693764684064 resonance:10 clip:1 ]", + "[ -3/4 ⇜ (3/4 → 1/1) ⇝ 5/4 | gain:0.0375 note:C5 s:flbass n:0 cutoff:915.3693764684064 resonance:10 clip:1 ]", + "[ 3/4 → 1/1 | note:A3 s:flbass n:0 gain:0.3 cutoff:3284.6306235315933 resonance:10 clip:1 ]", + "[ 3/4 → 1/1 | gain:0.15 note:A4 s:flbass n:0 cutoff:3284.6306235315933 resonance:10 clip:1 ]", + "[ 3/4 → 1/1 | gain:0.15 note:C5 s:flbass n:0 cutoff:3284.6306235315933 resonance:10 clip:1 ]", "[ 3/4 → 1/1 | s:hh n:0 ]", ] `; exports[`renders tunes > tune: belldub 1`] = ` [ - "[ 0/1 → 5/16 | s:mt gain:0.5 room:0.5 ]", + "[ 0/1 → 5/16 | s:mt gain:0.5 room:0.5 speed:0.5 ]", "[ 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 ]", "[ (0/1 → 1/1) ⇝ 5/1 | s:misc n:2 speed:1 delay:0.5 delaytime:0.3333333333333333 gain:0.4 ]", - "[ (5/8 → 1/1) ⇝ 5/4 | s:hh room:0 end:0.04483079938329212 ]", - "[ (5/8 → 1/1) ⇝ 5/4 | note:58 s:sawtooth gain:0.8 cutoff:400.16785462816676 decay:0.05380063255866716 sustain:0 delay:0.9 room:1 ]", - "[ (5/8 → 1/1) ⇝ 5/4 | note:58.1 s:sawtooth gain:0.8 cutoff:400.16785462816676 decay:0.05380063255866716 sustain:0 delay:0.9 room:1 ]", - "[ (5/8 → 1/1) ⇝ 5/4 | note:62 s:sawtooth gain:0.8 cutoff:400.16785462816676 decay:0.05380063255866716 sustain:0 delay:0.9 room:1 ]", - "[ (5/8 → 1/1) ⇝ 5/4 | note:62.1 s:sawtooth gain:0.8 cutoff:400.16785462816676 decay:0.05380063255866716 sustain:0 delay:0.9 room:1 ]", - "[ (5/8 → 1/1) ⇝ 5/4 | note:65 s:sawtooth gain:0.8 cutoff:400.16785462816676 decay:0.05380063255866716 sustain:0 delay:0.9 room:1 ]", - "[ (5/8 → 1/1) ⇝ 5/4 | note:65.1 s:sawtooth gain:0.8 cutoff:400.16785462816676 decay:0.05380063255866716 sustain:0 delay:0.9 room:1 ]", - "[ (5/8 → 1/1) ⇝ 5/4 | note:69 s:sawtooth gain:0.8 cutoff:400.16785462816676 decay:0.05380063255866716 sustain:0 delay:0.9 room:1 ]", - "[ (5/8 → 1/1) ⇝ 5/4 | note:69.1 s:sawtooth gain:0.8 cutoff:400.16785462816676 decay:0.05380063255866716 sustain:0 delay:0.9 room:1 ]", - "[ (15/16 → 1/1) ⇝ 5/4 | s:lt gain:0.5 room:0.5 ]", + "[ (5/8 → 1/1) ⇝ 5/4 | s:hh room:0 end:0.028173022316468635 ]", + "[ (5/8 → 1/1) ⇝ 5/4 | note:58 s:sawtooth gain:0.8 cutoff:400.0503291283066 decay:0.05125097280354112 sustain:0 delay:0.9 room:1 ]", + "[ (5/8 → 1/1) ⇝ 5/4 | note:58.1 s:sawtooth gain:0.8 cutoff:400.0503291283066 decay:0.05125097280354112 sustain:0 delay:0.9 room:1 ]", + "[ (5/8 → 1/1) ⇝ 5/4 | note:62 s:sawtooth gain:0.8 cutoff:400.0503291283066 decay:0.05125097280354112 sustain:0 delay:0.9 room:1 ]", + "[ (5/8 → 1/1) ⇝ 5/4 | note:62.1 s:sawtooth gain:0.8 cutoff:400.0503291283066 decay:0.05125097280354112 sustain:0 delay:0.9 room:1 ]", + "[ (5/8 → 1/1) ⇝ 5/4 | note:65 s:sawtooth gain:0.8 cutoff:400.0503291283066 decay:0.05125097280354112 sustain:0 delay:0.9 room:1 ]", + "[ (5/8 → 1/1) ⇝ 5/4 | note:65.1 s:sawtooth gain:0.8 cutoff:400.0503291283066 decay:0.05125097280354112 sustain:0 delay:0.9 room:1 ]", + "[ (5/8 → 1/1) ⇝ 5/4 | note:69 s:sawtooth gain:0.8 cutoff:400.0503291283066 decay:0.05125097280354112 sustain:0 delay:0.9 room:1 ]", + "[ (5/8 → 1/1) ⇝ 5/4 | note:69.1 s:sawtooth gain:0.8 cutoff:400.0503291283066 decay:0.05125097280354112 sustain:0 delay:0.9 room:1 ]", + "[ (5/8 → 1/1) ⇝ 5/4 | note:F4 s:bell begin:0.05 delay:0.2 gain:0.4 ]", + "[ (15/16 → 1/1) ⇝ 5/4 | s:lt gain:0.5 room:0.5 speed:0.5 ]", ] `; @@ -1132,8 +1131,6 @@ exports[`renders tunes > tune: delay 1`] = ` exports[`renders tunes > tune: dinofunk 1`] = ` [ "[ 0/1 → 1/4 | s:hh ]", - "[ 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 ]", "[ 0/1 → 1/2 | s:bd ]", "[ (0/1 → 1/1) ⇝ 8/1 | s:bass speed:0.0625 unit:c clip:1 ]", "[ (0/1 → 1/1) ⇝ 8/1 | note:b4 s:dino delay:0.8 room:0.5 ]", @@ -1142,8 +1139,6 @@ exports[`renders tunes > tune: dinofunk 1`] = ` "[ 1/4 → 1/2 | note:Bb3 ]", "[ 1/4 → 1/2 | note:B3 ]", "[ 1/4 → 1/2 | note:Eb4 ]", - "[ 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 ]", "[ 1/2 → 3/4 | s:hh ]", "[ 1/2 → 1/1 | s:bd ]", "[ 1/2 → 1/1 | s:sd ]", @@ -1546,5378 +1541,5376 @@ exports[`renders tunes > tune: echoPiano 1`] = ` exports[`renders tunes > tune: festivalOfFingers 1`] = ` [ - "[ (0/1 → 1/64) ⇝ 1/4 | note:C2 gain:0.516536686473018 clip:1 s:piano release:0.1 pan:0.41666666666666663 ]", - "[ 0/1 ⇜ (1/64 → 1/32) ⇝ 1/4 | note:C2 gain:0.6247759065022573 clip:1 s:piano release:0.1 pan:0.41666666666666663 ]", - "[ 0/1 ⇜ (1/32 → 3/64) ⇝ 1/4 | note:C2 gain:0.6247759065022573 clip:1 s:piano release:0.1 pan:0.41666666666666663 ]", - "[ (1/28 → 3/64) ⇝ 2/7 | note:70 gain:0.062477590650225734 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", - "[ (1/28 → 3/64) ⇝ 2/7 | note:75 gain:0.062477590650225734 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", - "[ (1/28 → 3/64) ⇝ 2/7 | note:76 gain:0.062477590650225734 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", - "[ (1/28 → 3/64) ⇝ 2/7 | note:80 gain:0.062477590650225734 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", - "[ 0/1 ⇜ (3/64 → 1/16) ⇝ 1/4 | note:C2 gain:0.516536686473018 clip:1 s:piano release:0.1 pan:0.41666666666666663 ]", - "[ 1/28 ⇜ (3/64 → 1/16) ⇝ 2/7 | note:70 gain:0.0516536686473018 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", - "[ 1/28 ⇜ (3/64 → 1/16) ⇝ 2/7 | note:75 gain:0.0516536686473018 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", - "[ 1/28 ⇜ (3/64 → 1/16) ⇝ 2/7 | note:76 gain:0.0516536686473018 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", - "[ 1/28 ⇜ (3/64 → 1/16) ⇝ 2/7 | note:80 gain:0.0516536686473018 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", - "[ 0/1 ⇜ (1/16 → 5/64) ⇝ 1/4 | note:C2 gain:0.3634633135269821 clip:1 s:piano release:0.1 pan:0.41666666666666663 ]", - "[ 1/28 ⇜ (1/16 → 5/64) ⇝ 2/7 | note:70 gain:0.036346331352698207 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", - "[ 1/28 ⇜ (1/16 → 5/64) ⇝ 2/7 | note:75 gain:0.036346331352698207 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", - "[ 1/28 ⇜ (1/16 → 5/64) ⇝ 2/7 | note:76 gain:0.036346331352698207 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", - "[ 1/28 ⇜ (1/16 → 5/64) ⇝ 2/7 | note:80 gain:0.036346331352698207 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", - "[ 0/1 ⇜ (5/64 → 3/32) ⇝ 1/4 | note:C2 gain:0.2552240934977427 clip:1 s:piano release:0.1 pan:0.41666666666666663 ]", - "[ 1/28 ⇜ (5/64 → 3/32) ⇝ 2/7 | note:70 gain:0.025522409349774275 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", - "[ 1/28 ⇜ (5/64 → 3/32) ⇝ 2/7 | note:75 gain:0.025522409349774275 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", - "[ 1/28 ⇜ (5/64 → 3/32) ⇝ 2/7 | note:76 gain:0.025522409349774275 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", - "[ 1/28 ⇜ (5/64 → 3/32) ⇝ 2/7 | note:80 gain:0.025522409349774275 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", - "[ 0/1 ⇜ (3/32 → 7/64) ⇝ 1/4 | note:C2 gain:0.25522409349774267 clip:1 s:piano release:0.1 pan:0.41666666666666663 ]", - "[ 1/28 ⇜ (3/32 → 7/64) ⇝ 2/7 | note:70 gain:0.025522409349774268 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", - "[ 1/28 ⇜ (3/32 → 7/64) ⇝ 2/7 | note:75 gain:0.025522409349774268 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", - "[ 1/28 ⇜ (3/32 → 7/64) ⇝ 2/7 | note:76 gain:0.025522409349774268 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", - "[ 1/28 ⇜ (3/32 → 7/64) ⇝ 2/7 | note:80 gain:0.025522409349774268 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", - "[ 0/1 ⇜ (7/64 → 1/8) ⇝ 1/4 | note:C2 gain:0.36346331352698197 clip:1 s:piano release:0.1 pan:0.41666666666666663 ]", - "[ 1/28 ⇜ (7/64 → 1/8) ⇝ 2/7 | note:70 gain:0.0363463313526982 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", - "[ 1/28 ⇜ (7/64 → 1/8) ⇝ 2/7 | note:75 gain:0.0363463313526982 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", - "[ 1/28 ⇜ (7/64 → 1/8) ⇝ 2/7 | note:76 gain:0.0363463313526982 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", - "[ 1/28 ⇜ (7/64 → 1/8) ⇝ 2/7 | note:80 gain:0.0363463313526982 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", - "[ 0/1 ⇜ (1/8 → 9/64) ⇝ 1/4 | note:C2 gain:0.516536686473018 clip:1 s:piano release:0.1 pan:0.41666666666666663 ]", - "[ 1/28 ⇜ (1/8 → 9/64) ⇝ 2/7 | note:70 gain:0.0516536686473018 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", - "[ 1/28 ⇜ (1/8 → 9/64) ⇝ 2/7 | note:75 gain:0.0516536686473018 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", - "[ 1/28 ⇜ (1/8 → 9/64) ⇝ 2/7 | note:76 gain:0.0516536686473018 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", - "[ 1/28 ⇜ (1/8 → 9/64) ⇝ 2/7 | note:80 gain:0.0516536686473018 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", - "[ (1/8 → 9/64) ⇝ 1/4 | note:C4 gain:0.516536686473018 clip:1 s:piano release:0.1 pan:0.5277777777777778 ]", - "[ (1/8 → 9/64) ⇝ 1/4 | note:Eb4 gain:0.516536686473018 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", - "[ 0/1 ⇜ (9/64 → 5/32) ⇝ 1/4 | note:C2 gain:0.6247759065022573 clip:1 s:piano release:0.1 pan:0.41666666666666663 ]", - "[ 1/28 ⇜ (9/64 → 5/32) ⇝ 2/7 | note:70 gain:0.062477590650225734 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", - "[ 1/28 ⇜ (9/64 → 5/32) ⇝ 2/7 | note:75 gain:0.062477590650225734 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", - "[ 1/28 ⇜ (9/64 → 5/32) ⇝ 2/7 | note:76 gain:0.062477590650225734 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", - "[ 1/28 ⇜ (9/64 → 5/32) ⇝ 2/7 | note:80 gain:0.062477590650225734 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", - "[ 1/8 ⇜ (9/64 → 5/32) ⇝ 1/4 | note:C4 gain:0.6247759065022573 clip:1 s:piano release:0.1 pan:0.5277777777777778 ]", - "[ 1/8 ⇜ (9/64 → 5/32) ⇝ 1/4 | note:Eb4 gain:0.6247759065022573 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", - "[ 0/1 ⇜ (5/32 → 11/64) ⇝ 1/4 | note:C2 gain:0.6247759065022573 clip:1 s:piano release:0.1 pan:0.41666666666666663 ]", - "[ 1/28 ⇜ (5/32 → 11/64) ⇝ 2/7 | note:70 gain:0.062477590650225734 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", - "[ 1/28 ⇜ (5/32 → 11/64) ⇝ 2/7 | note:75 gain:0.062477590650225734 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", - "[ 1/28 ⇜ (5/32 → 11/64) ⇝ 2/7 | note:76 gain:0.062477590650225734 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", - "[ 1/28 ⇜ (5/32 → 11/64) ⇝ 2/7 | note:80 gain:0.062477590650225734 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", - "[ 1/8 ⇜ (5/32 → 11/64) ⇝ 1/4 | note:C4 gain:0.6247759065022573 clip:1 s:piano release:0.1 pan:0.5277777777777778 ]", - "[ 1/8 ⇜ (5/32 → 11/64) ⇝ 1/4 | note:Eb4 gain:0.6247759065022573 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", - "[ 0/1 ⇜ (11/64 → 3/16) ⇝ 1/4 | note:C2 gain:0.5165366864730182 clip:1 s:piano release:0.1 pan:0.41666666666666663 ]", - "[ 1/28 ⇜ (11/64 → 3/16) ⇝ 2/7 | note:70 gain:0.05165366864730182 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", - "[ 1/28 ⇜ (11/64 → 3/16) ⇝ 2/7 | note:75 gain:0.05165366864730182 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", - "[ 1/28 ⇜ (11/64 → 3/16) ⇝ 2/7 | note:76 gain:0.05165366864730182 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", - "[ 1/28 ⇜ (11/64 → 3/16) ⇝ 2/7 | note:80 gain:0.05165366864730182 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", - "[ 1/8 ⇜ (11/64 → 3/16) ⇝ 1/4 | note:C4 gain:0.5165366864730182 clip:1 s:piano release:0.1 pan:0.5277777777777778 ]", - "[ 1/8 ⇜ (11/64 → 3/16) ⇝ 1/4 | note:Eb4 gain:0.5165366864730182 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", - "[ 0/1 ⇜ (3/16 → 13/64) ⇝ 1/4 | note:C2 gain:0.363463313526982 clip:1 s:piano release:0.1 pan:0.41666666666666663 ]", - "[ 1/28 ⇜ (3/16 → 13/64) ⇝ 2/7 | note:70 gain:0.036346331352698207 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", - "[ 1/28 ⇜ (3/16 → 13/64) ⇝ 2/7 | note:75 gain:0.036346331352698207 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", - "[ 1/28 ⇜ (3/16 → 13/64) ⇝ 2/7 | note:76 gain:0.036346331352698207 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", - "[ 1/28 ⇜ (3/16 → 13/64) ⇝ 2/7 | note:80 gain:0.036346331352698207 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", - "[ 1/8 ⇜ (3/16 → 13/64) ⇝ 1/4 | note:C4 gain:0.363463313526982 clip:1 s:piano release:0.1 pan:0.5277777777777778 ]", - "[ 1/8 ⇜ (3/16 → 13/64) ⇝ 1/4 | note:Eb4 gain:0.363463313526982 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", - "[ 0/1 ⇜ (13/64 → 7/32) ⇝ 1/4 | note:C2 gain:0.2552240934977427 clip:1 s:piano release:0.1 pan:0.41666666666666663 ]", - "[ 1/28 ⇜ (13/64 → 7/32) ⇝ 2/7 | note:70 gain:0.025522409349774275 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", - "[ 1/28 ⇜ (13/64 → 7/32) ⇝ 2/7 | note:75 gain:0.025522409349774275 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", - "[ 1/28 ⇜ (13/64 → 7/32) ⇝ 2/7 | note:76 gain:0.025522409349774275 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", - "[ 1/28 ⇜ (13/64 → 7/32) ⇝ 2/7 | note:80 gain:0.025522409349774275 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", - "[ 1/8 ⇜ (13/64 → 7/32) ⇝ 1/4 | note:C4 gain:0.2552240934977427 clip:1 s:piano release:0.1 pan:0.5277777777777778 ]", - "[ 1/8 ⇜ (13/64 → 7/32) ⇝ 1/4 | note:Eb4 gain:0.2552240934977427 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", - "[ 0/1 ⇜ (7/32 → 15/64) ⇝ 1/4 | note:C2 gain:0.25522409349774267 clip:1 s:piano release:0.1 pan:0.41666666666666663 ]", - "[ 1/28 ⇜ (7/32 → 15/64) ⇝ 2/7 | note:70 gain:0.025522409349774268 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", - "[ 1/28 ⇜ (7/32 → 15/64) ⇝ 2/7 | note:75 gain:0.025522409349774268 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", - "[ 1/28 ⇜ (7/32 → 15/64) ⇝ 2/7 | note:76 gain:0.025522409349774268 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", - "[ 1/28 ⇜ (7/32 → 15/64) ⇝ 2/7 | note:80 gain:0.025522409349774268 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", - "[ 1/8 ⇜ (7/32 → 15/64) ⇝ 1/4 | note:C4 gain:0.25522409349774267 clip:1 s:piano release:0.1 pan:0.5277777777777778 ]", - "[ 1/8 ⇜ (7/32 → 15/64) ⇝ 1/4 | note:Eb4 gain:0.25522409349774267 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", - "[ 0/1 ⇜ (15/64 → 1/4) | note:C2 gain:0.36346331352698186 clip:1 s:piano release:0.1 pan:0.41666666666666663 ]", - "[ 1/28 ⇜ (15/64 → 1/4) ⇝ 2/7 | note:70 gain:0.036346331352698186 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", - "[ 1/28 ⇜ (15/64 → 1/4) ⇝ 2/7 | note:75 gain:0.036346331352698186 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", - "[ 1/28 ⇜ (15/64 → 1/4) ⇝ 2/7 | note:76 gain:0.036346331352698186 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", - "[ 1/28 ⇜ (15/64 → 1/4) ⇝ 2/7 | note:80 gain:0.036346331352698186 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", - "[ 1/8 ⇜ (15/64 → 1/4) | note:C4 gain:0.36346331352698186 clip:1 s:piano release:0.1 pan:0.5277777777777778 ]", - "[ 1/8 ⇜ (15/64 → 1/4) | note:Eb4 gain:0.36346331352698186 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", - "[ 1/28 ⇜ (1/4 → 17/64) ⇝ 2/7 | note:70 gain:0.0516536686473018 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", - "[ 1/28 ⇜ (1/4 → 17/64) ⇝ 2/7 | note:75 gain:0.0516536686473018 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", - "[ 1/28 ⇜ (1/4 → 17/64) ⇝ 2/7 | note:76 gain:0.0516536686473018 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", - "[ 1/28 ⇜ (1/4 → 17/64) ⇝ 2/7 | note:80 gain:0.0516536686473018 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", - "[ 1/28 ⇜ (17/64 → 9/32) ⇝ 2/7 | note:70 gain:0.062477590650225734 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", - "[ 1/28 ⇜ (17/64 → 9/32) ⇝ 2/7 | note:75 gain:0.062477590650225734 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", - "[ 1/28 ⇜ (17/64 → 9/32) ⇝ 2/7 | note:76 gain:0.062477590650225734 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", - "[ 1/28 ⇜ (17/64 → 9/32) ⇝ 2/7 | note:80 gain:0.062477590650225734 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", - "[ 1/28 ⇜ (9/32 → 2/7) | note:70 gain:0.06247759065022575 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", - "[ 1/28 ⇜ (9/32 → 2/7) | note:75 gain:0.06247759065022575 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", - "[ 1/28 ⇜ (9/32 → 2/7) | note:76 gain:0.06247759065022575 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", - "[ 1/28 ⇜ (9/32 → 2/7) | note:80 gain:0.06247759065022575 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", - "[ (1/2 → 33/64) ⇝ 5/8 | note:G4 gain:0.5165366864730175 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", - "[ (1/2 → 33/64) ⇝ 5/8 | note:Bb4 gain:0.5165366864730175 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", - "[ (1/2 → 33/64) ⇝ 3/4 | note:Bb3 gain:0.25826834323650877 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", - "[ (1/2 → 33/64) ⇝ 3/4 | note:D4 gain:0.25826834323650877 clip:1 s:piano release:0.1 pan:0.537037037037037 ]", - "[ (1/2 → 33/64) ⇝ 3/4 | note:Eb4 gain:0.25826834323650877 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", - "[ (1/2 → 33/64) ⇝ 3/4 | note:G4 gain:0.25826834323650877 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", - "[ (1/2 → 33/64) ⇝ 3/4 | note:C2 gain:0.5165366864730175 clip:1 s:piano release:0.1 pan:0.41666666666666663 ]", - "[ 1/2 ⇜ (33/64 → 17/32) ⇝ 5/8 | note:G4 gain:0.6247759065022573 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", - "[ 1/2 ⇜ (33/64 → 17/32) ⇝ 5/8 | note:Bb4 gain:0.6247759065022573 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", - "[ 1/2 ⇜ (33/64 → 17/32) ⇝ 3/4 | note:Bb3 gain:0.31238795325112867 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", - "[ 1/2 ⇜ (33/64 → 17/32) ⇝ 3/4 | note:D4 gain:0.31238795325112867 clip:1 s:piano release:0.1 pan:0.537037037037037 ]", - "[ 1/2 ⇜ (33/64 → 17/32) ⇝ 3/4 | note:Eb4 gain:0.31238795325112867 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", - "[ 1/2 ⇜ (33/64 → 17/32) ⇝ 3/4 | note:G4 gain:0.31238795325112867 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", - "[ 1/2 ⇜ (33/64 → 17/32) ⇝ 3/4 | note:C2 gain:0.6247759065022573 clip:1 s:piano release:0.1 pan:0.41666666666666663 ]", - "[ 1/2 ⇜ (17/32 → 35/64) ⇝ 5/8 | note:G4 gain:0.6247759065022574 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", - "[ 1/2 ⇜ (17/32 → 35/64) ⇝ 5/8 | note:Bb4 gain:0.6247759065022574 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", - "[ 1/2 ⇜ (17/32 → 35/64) ⇝ 3/4 | note:Bb3 gain:0.3123879532511287 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", - "[ 1/2 ⇜ (17/32 → 35/64) ⇝ 3/4 | note:D4 gain:0.3123879532511287 clip:1 s:piano release:0.1 pan:0.537037037037037 ]", - "[ 1/2 ⇜ (17/32 → 35/64) ⇝ 3/4 | note:Eb4 gain:0.3123879532511287 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", - "[ 1/2 ⇜ (17/32 → 35/64) ⇝ 3/4 | note:G4 gain:0.3123879532511287 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", - "[ 1/2 ⇜ (17/32 → 35/64) ⇝ 3/4 | note:C2 gain:0.6247759065022574 clip:1 s:piano release:0.1 pan:0.41666666666666663 ]", - "[ 1/2 ⇜ (35/64 → 9/16) ⇝ 5/8 | note:G4 gain:0.516536686473018 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", - "[ 1/2 ⇜ (35/64 → 9/16) ⇝ 5/8 | note:Bb4 gain:0.516536686473018 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", - "[ 1/2 ⇜ (35/64 → 9/16) ⇝ 3/4 | note:Bb3 gain:0.258268343236509 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", - "[ 1/2 ⇜ (35/64 → 9/16) ⇝ 3/4 | note:D4 gain:0.258268343236509 clip:1 s:piano release:0.1 pan:0.537037037037037 ]", - "[ 1/2 ⇜ (35/64 → 9/16) ⇝ 3/4 | note:Eb4 gain:0.258268343236509 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", - "[ 1/2 ⇜ (35/64 → 9/16) ⇝ 3/4 | note:G4 gain:0.258268343236509 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", - "[ 1/2 ⇜ (35/64 → 9/16) ⇝ 3/4 | note:C2 gain:0.516536686473018 clip:1 s:piano release:0.1 pan:0.41666666666666663 ]", - "[ 1/2 ⇜ (9/16 → 37/64) ⇝ 5/8 | note:G4 gain:0.36346331352698247 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", - "[ 1/2 ⇜ (9/16 → 37/64) ⇝ 5/8 | note:Bb4 gain:0.36346331352698247 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", - "[ 1/2 ⇜ (9/16 → 37/64) ⇝ 3/4 | note:Bb3 gain:0.18173165676349123 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", - "[ 1/2 ⇜ (9/16 → 37/64) ⇝ 3/4 | note:D4 gain:0.18173165676349123 clip:1 s:piano release:0.1 pan:0.537037037037037 ]", - "[ 1/2 ⇜ (9/16 → 37/64) ⇝ 3/4 | note:Eb4 gain:0.18173165676349123 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", - "[ 1/2 ⇜ (9/16 → 37/64) ⇝ 3/4 | note:G4 gain:0.18173165676349123 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", - "[ 1/2 ⇜ (9/16 → 37/64) ⇝ 3/4 | note:C2 gain:0.36346331352698247 clip:1 s:piano release:0.1 pan:0.41666666666666663 ]", - "[ 1/2 ⇜ (37/64 → 19/32) ⇝ 5/8 | note:G4 gain:0.2552240934977427 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", - "[ 1/2 ⇜ (37/64 → 19/32) ⇝ 5/8 | note:Bb4 gain:0.2552240934977427 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", - "[ 1/2 ⇜ (37/64 → 19/32) ⇝ 3/4 | note:Bb3 gain:0.12761204674887136 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", - "[ 1/2 ⇜ (37/64 → 19/32) ⇝ 3/4 | note:D4 gain:0.12761204674887136 clip:1 s:piano release:0.1 pan:0.537037037037037 ]", - "[ 1/2 ⇜ (37/64 → 19/32) ⇝ 3/4 | note:Eb4 gain:0.12761204674887136 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", - "[ 1/2 ⇜ (37/64 → 19/32) ⇝ 3/4 | note:G4 gain:0.12761204674887136 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", - "[ 1/2 ⇜ (37/64 → 19/32) ⇝ 3/4 | note:C2 gain:0.2552240934977427 clip:1 s:piano release:0.1 pan:0.41666666666666663 ]", - "[ 1/2 ⇜ (19/32 → 39/64) ⇝ 5/8 | note:G4 gain:0.25522409349774255 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", - "[ 1/2 ⇜ (19/32 → 39/64) ⇝ 5/8 | note:Bb4 gain:0.25522409349774255 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", - "[ 1/2 ⇜ (19/32 → 39/64) ⇝ 3/4 | note:Bb3 gain:0.12761204674887128 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", - "[ 1/2 ⇜ (19/32 → 39/64) ⇝ 3/4 | note:D4 gain:0.12761204674887128 clip:1 s:piano release:0.1 pan:0.537037037037037 ]", - "[ 1/2 ⇜ (19/32 → 39/64) ⇝ 3/4 | note:Eb4 gain:0.12761204674887128 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", - "[ 1/2 ⇜ (19/32 → 39/64) ⇝ 3/4 | note:G4 gain:0.12761204674887128 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", - "[ 1/2 ⇜ (19/32 → 39/64) ⇝ 3/4 | note:C2 gain:0.25522409349774255 clip:1 s:piano release:0.1 pan:0.41666666666666663 ]", - "[ 1/2 ⇜ (39/64 → 5/8) | note:G4 gain:0.3634633135269821 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", - "[ 1/2 ⇜ (39/64 → 5/8) | note:Bb4 gain:0.3634633135269821 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", - "[ 1/2 ⇜ (39/64 → 5/8) ⇝ 3/4 | note:Bb3 gain:0.18173165676349104 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", - "[ 1/2 ⇜ (39/64 → 5/8) ⇝ 3/4 | note:D4 gain:0.18173165676349104 clip:1 s:piano release:0.1 pan:0.537037037037037 ]", - "[ 1/2 ⇜ (39/64 → 5/8) ⇝ 3/4 | note:Eb4 gain:0.18173165676349104 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", - "[ 1/2 ⇜ (39/64 → 5/8) ⇝ 3/4 | note:G4 gain:0.18173165676349104 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", - "[ 1/2 ⇜ (39/64 → 5/8) ⇝ 3/4 | note:C2 gain:0.3634633135269821 clip:1 s:piano release:0.1 pan:0.41666666666666663 ]", - "[ 1/2 ⇜ (5/8 → 41/64) ⇝ 3/4 | note:Bb3 gain:0.2582683432365087 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", - "[ 1/2 ⇜ (5/8 → 41/64) ⇝ 3/4 | note:D4 gain:0.2582683432365087 clip:1 s:piano release:0.1 pan:0.537037037037037 ]", - "[ 1/2 ⇜ (5/8 → 41/64) ⇝ 3/4 | note:Eb4 gain:0.2582683432365087 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", - "[ 1/2 ⇜ (5/8 → 41/64) ⇝ 3/4 | note:G4 gain:0.2582683432365087 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", - "[ 1/2 ⇜ (5/8 → 41/64) ⇝ 3/4 | note:C2 gain:0.5165366864730174 clip:1 s:piano release:0.1 pan:0.41666666666666663 ]", - "[ 1/2 ⇜ (41/64 → 21/32) ⇝ 3/4 | note:Bb3 gain:0.3123879532511287 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", - "[ 1/2 ⇜ (41/64 → 21/32) ⇝ 3/4 | note:D4 gain:0.3123879532511287 clip:1 s:piano release:0.1 pan:0.537037037037037 ]", - "[ 1/2 ⇜ (41/64 → 21/32) ⇝ 3/4 | note:Eb4 gain:0.3123879532511287 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", - "[ 1/2 ⇜ (41/64 → 21/32) ⇝ 3/4 | note:G4 gain:0.3123879532511287 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", - "[ 1/2 ⇜ (41/64 → 21/32) ⇝ 3/4 | note:C2 gain:0.6247759065022574 clip:1 s:piano release:0.1 pan:0.41666666666666663 ]", - "[ 1/2 ⇜ (21/32 → 43/64) ⇝ 3/4 | note:Bb3 gain:0.3123879532511287 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", - "[ 1/2 ⇜ (21/32 → 43/64) ⇝ 3/4 | note:D4 gain:0.3123879532511287 clip:1 s:piano release:0.1 pan:0.537037037037037 ]", - "[ 1/2 ⇜ (21/32 → 43/64) ⇝ 3/4 | note:Eb4 gain:0.3123879532511287 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", - "[ 1/2 ⇜ (21/32 → 43/64) ⇝ 3/4 | note:G4 gain:0.3123879532511287 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", - "[ 1/2 ⇜ (21/32 → 43/64) ⇝ 3/4 | note:C2 gain:0.6247759065022574 clip:1 s:piano release:0.1 pan:0.41666666666666663 ]", - "[ 1/2 ⇜ (43/64 → 11/16) ⇝ 3/4 | note:Bb3 gain:0.2582683432365093 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", - "[ 1/2 ⇜ (43/64 → 11/16) ⇝ 3/4 | note:D4 gain:0.2582683432365093 clip:1 s:piano release:0.1 pan:0.537037037037037 ]", - "[ 1/2 ⇜ (43/64 → 11/16) ⇝ 3/4 | note:Eb4 gain:0.2582683432365093 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", - "[ 1/2 ⇜ (43/64 → 11/16) ⇝ 3/4 | note:G4 gain:0.2582683432365093 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", - "[ 1/2 ⇜ (43/64 → 11/16) ⇝ 3/4 | note:C2 gain:0.5165366864730186 clip:1 s:piano release:0.1 pan:0.41666666666666663 ]", - "[ 1/2 ⇜ (11/16 → 45/64) ⇝ 3/4 | note:Bb3 gain:0.18173165676349096 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", - "[ 1/2 ⇜ (11/16 → 45/64) ⇝ 3/4 | note:D4 gain:0.18173165676349096 clip:1 s:piano release:0.1 pan:0.537037037037037 ]", - "[ 1/2 ⇜ (11/16 → 45/64) ⇝ 3/4 | note:Eb4 gain:0.18173165676349096 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", - "[ 1/2 ⇜ (11/16 → 45/64) ⇝ 3/4 | note:G4 gain:0.18173165676349096 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", - "[ 1/2 ⇜ (11/16 → 45/64) ⇝ 3/4 | note:C2 gain:0.3634633135269819 clip:1 s:piano release:0.1 pan:0.41666666666666663 ]", - "[ 1/2 ⇜ (45/64 → 23/32) ⇝ 3/4 | note:Bb3 gain:0.1276120467488714 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", - "[ 1/2 ⇜ (45/64 → 23/32) ⇝ 3/4 | note:D4 gain:0.1276120467488714 clip:1 s:piano release:0.1 pan:0.537037037037037 ]", - "[ 1/2 ⇜ (45/64 → 23/32) ⇝ 3/4 | note:Eb4 gain:0.1276120467488714 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", - "[ 1/2 ⇜ (45/64 → 23/32) ⇝ 3/4 | note:G4 gain:0.1276120467488714 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", - "[ 1/2 ⇜ (45/64 → 23/32) ⇝ 3/4 | note:C2 gain:0.2552240934977428 clip:1 s:piano release:0.1 pan:0.41666666666666663 ]", - "[ 1/2 ⇜ (23/32 → 47/64) ⇝ 3/4 | note:Bb3 gain:0.12761204674887114 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", - "[ 1/2 ⇜ (23/32 → 47/64) ⇝ 3/4 | note:D4 gain:0.12761204674887114 clip:1 s:piano release:0.1 pan:0.537037037037037 ]", - "[ 1/2 ⇜ (23/32 → 47/64) ⇝ 3/4 | note:Eb4 gain:0.12761204674887114 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", - "[ 1/2 ⇜ (23/32 → 47/64) ⇝ 3/4 | note:G4 gain:0.12761204674887114 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", - "[ 1/2 ⇜ (23/32 → 47/64) ⇝ 3/4 | note:C2 gain:0.2552240934977423 clip:1 s:piano release:0.1 pan:0.41666666666666663 ]", - "[ 1/2 ⇜ (47/64 → 3/4) | note:Bb3 gain:0.181731656763491 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", - "[ 1/2 ⇜ (47/64 → 3/4) | note:D4 gain:0.181731656763491 clip:1 s:piano release:0.1 pan:0.537037037037037 ]", - "[ 1/2 ⇜ (47/64 → 3/4) | note:Eb4 gain:0.181731656763491 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", - "[ 1/2 ⇜ (47/64 → 3/4) | note:G4 gain:0.181731656763491 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", - "[ 1/2 ⇜ (47/64 → 3/4) | note:C2 gain:0.363463313526982 clip:1 s:piano release:0.1 pan:0.41666666666666663 ]", - "[ (3/4 → 49/64) ⇝ 7/8 | note:C4 gain:0.5165366864730174 clip:1 s:piano release:0.1 pan:0.5277777777777778 ]", - "[ (3/4 → 49/64) ⇝ 7/8 | note:Eb4 gain:0.5165366864730174 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", - "[ 3/4 ⇜ (49/64 → 25/32) ⇝ 7/8 | note:C4 gain:0.6247759065022574 clip:1 s:piano release:0.1 pan:0.5277777777777778 ]", - "[ 3/4 ⇜ (49/64 → 25/32) ⇝ 7/8 | note:Eb4 gain:0.6247759065022574 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", - "[ 3/4 ⇜ (25/32 → 51/64) ⇝ 7/8 | note:C4 gain:0.6247759065022574 clip:1 s:piano release:0.1 pan:0.5277777777777778 ]", - "[ 3/4 ⇜ (25/32 → 51/64) ⇝ 7/8 | note:Eb4 gain:0.6247759065022574 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", - "[ (11/14 → 51/64) ⇝ 29/28 | note:70 gain:0.06247759065022575 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", - "[ (11/14 → 51/64) ⇝ 29/28 | note:74 gain:0.06247759065022575 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", - "[ (11/14 → 51/64) ⇝ 29/28 | note:75 gain:0.06247759065022575 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", - "[ (11/14 → 51/64) ⇝ 29/28 | note:79 gain:0.06247759065022575 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", - "[ 3/4 ⇜ (51/64 → 13/16) ⇝ 7/8 | note:C4 gain:0.5165366864730186 clip:1 s:piano release:0.1 pan:0.5277777777777778 ]", - "[ 3/4 ⇜ (51/64 → 13/16) ⇝ 7/8 | note:Eb4 gain:0.5165366864730186 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", - "[ 11/14 ⇜ (51/64 → 13/16) ⇝ 29/28 | note:70 gain:0.051653668647301865 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", - "[ 11/14 ⇜ (51/64 → 13/16) ⇝ 29/28 | note:74 gain:0.051653668647301865 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", - "[ 11/14 ⇜ (51/64 → 13/16) ⇝ 29/28 | note:75 gain:0.051653668647301865 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", - "[ 11/14 ⇜ (51/64 → 13/16) ⇝ 29/28 | note:79 gain:0.051653668647301865 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", - "[ 3/4 ⇜ (13/16 → 53/64) ⇝ 7/8 | note:C4 gain:0.36346331352698197 clip:1 s:piano release:0.1 pan:0.5277777777777778 ]", - "[ 3/4 ⇜ (13/16 → 53/64) ⇝ 7/8 | note:Eb4 gain:0.36346331352698197 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", - "[ 11/14 ⇜ (13/16 → 53/64) ⇝ 29/28 | note:70 gain:0.0363463313526982 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", - "[ 11/14 ⇜ (13/16 → 53/64) ⇝ 29/28 | note:74 gain:0.0363463313526982 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", - "[ 11/14 ⇜ (13/16 → 53/64) ⇝ 29/28 | note:75 gain:0.0363463313526982 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", - "[ 11/14 ⇜ (13/16 → 53/64) ⇝ 29/28 | note:79 gain:0.0363463313526982 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", - "[ 3/4 ⇜ (53/64 → 27/32) ⇝ 7/8 | note:C4 gain:0.25522409349774283 clip:1 s:piano release:0.1 pan:0.5277777777777778 ]", - "[ 3/4 ⇜ (53/64 → 27/32) ⇝ 7/8 | note:Eb4 gain:0.25522409349774283 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", - "[ 11/14 ⇜ (53/64 → 27/32) ⇝ 29/28 | note:70 gain:0.025522409349774285 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", - "[ 11/14 ⇜ (53/64 → 27/32) ⇝ 29/28 | note:74 gain:0.025522409349774285 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", - "[ 11/14 ⇜ (53/64 → 27/32) ⇝ 29/28 | note:75 gain:0.025522409349774285 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", - "[ 11/14 ⇜ (53/64 → 27/32) ⇝ 29/28 | note:79 gain:0.025522409349774285 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", - "[ 3/4 ⇜ (27/32 → 55/64) ⇝ 7/8 | note:C4 gain:0.2552240934977423 clip:1 s:piano release:0.1 pan:0.5277777777777778 ]", - "[ 3/4 ⇜ (27/32 → 55/64) ⇝ 7/8 | note:Eb4 gain:0.2552240934977423 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", - "[ 11/14 ⇜ (27/32 → 55/64) ⇝ 29/28 | note:70 gain:0.02552240934977423 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", - "[ 11/14 ⇜ (27/32 → 55/64) ⇝ 29/28 | note:74 gain:0.02552240934977423 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", - "[ 11/14 ⇜ (27/32 → 55/64) ⇝ 29/28 | note:75 gain:0.02552240934977423 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", - "[ 11/14 ⇜ (27/32 → 55/64) ⇝ 29/28 | note:79 gain:0.02552240934977423 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", - "[ 3/4 ⇜ (55/64 → 7/8) | note:C4 gain:0.363463313526982 clip:1 s:piano release:0.1 pan:0.5277777777777778 ]", - "[ 3/4 ⇜ (55/64 → 7/8) | note:Eb4 gain:0.363463313526982 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", - "[ 11/14 ⇜ (55/64 → 7/8) ⇝ 29/28 | note:70 gain:0.036346331352698207 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", - "[ 11/14 ⇜ (55/64 → 7/8) ⇝ 29/28 | note:74 gain:0.036346331352698207 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", - "[ 11/14 ⇜ (55/64 → 7/8) ⇝ 29/28 | note:75 gain:0.036346331352698207 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", - "[ 11/14 ⇜ (55/64 → 7/8) ⇝ 29/28 | note:79 gain:0.036346331352698207 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", - "[ 11/14 ⇜ (7/8 → 57/64) ⇝ 29/28 | note:70 gain:0.05165366864730175 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", - "[ 11/14 ⇜ (7/8 → 57/64) ⇝ 29/28 | note:74 gain:0.05165366864730175 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", - "[ 11/14 ⇜ (7/8 → 57/64) ⇝ 29/28 | note:75 gain:0.05165366864730175 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", - "[ 11/14 ⇜ (7/8 → 57/64) ⇝ 29/28 | note:79 gain:0.05165366864730175 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", - "[ 11/14 ⇜ (57/64 → 29/32) ⇝ 29/28 | note:70 gain:0.06247759065022575 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", - "[ 11/14 ⇜ (57/64 → 29/32) ⇝ 29/28 | note:74 gain:0.06247759065022575 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", - "[ 11/14 ⇜ (57/64 → 29/32) ⇝ 29/28 | note:75 gain:0.06247759065022575 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", - "[ 11/14 ⇜ (57/64 → 29/32) ⇝ 29/28 | note:79 gain:0.06247759065022575 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", - "[ 11/14 ⇜ (29/32 → 59/64) ⇝ 29/28 | note:70 gain:0.06247759065022575 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", - "[ 11/14 ⇜ (29/32 → 59/64) ⇝ 29/28 | note:74 gain:0.06247759065022575 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", - "[ 11/14 ⇜ (29/32 → 59/64) ⇝ 29/28 | note:75 gain:0.06247759065022575 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", - "[ 11/14 ⇜ (29/32 → 59/64) ⇝ 29/28 | note:79 gain:0.06247759065022575 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", - "[ 11/14 ⇜ (59/64 → 15/16) ⇝ 29/28 | note:70 gain:0.051653668647301865 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", - "[ 11/14 ⇜ (59/64 → 15/16) ⇝ 29/28 | note:74 gain:0.051653668647301865 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", - "[ 11/14 ⇜ (59/64 → 15/16) ⇝ 29/28 | note:75 gain:0.051653668647301865 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", - "[ 11/14 ⇜ (59/64 → 15/16) ⇝ 29/28 | note:79 gain:0.051653668647301865 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", - "[ 11/14 ⇜ (15/16 → 61/64) ⇝ 29/28 | note:70 gain:0.036346331352698207 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", - "[ 11/14 ⇜ (15/16 → 61/64) ⇝ 29/28 | note:74 gain:0.036346331352698207 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", - "[ 11/14 ⇜ (15/16 → 61/64) ⇝ 29/28 | note:75 gain:0.036346331352698207 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", - "[ 11/14 ⇜ (15/16 → 61/64) ⇝ 29/28 | note:79 gain:0.036346331352698207 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", - "[ 11/14 ⇜ (61/64 → 31/32) ⇝ 29/28 | note:70 gain:0.025522409349774285 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", - "[ 11/14 ⇜ (61/64 → 31/32) ⇝ 29/28 | note:74 gain:0.025522409349774285 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", - "[ 11/14 ⇜ (61/64 → 31/32) ⇝ 29/28 | note:75 gain:0.025522409349774285 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", - "[ 11/14 ⇜ (61/64 → 31/32) ⇝ 29/28 | note:79 gain:0.025522409349774285 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", - "[ 11/14 ⇜ (31/32 → 63/64) ⇝ 29/28 | note:70 gain:0.02552240934977423 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", - "[ 11/14 ⇜ (31/32 → 63/64) ⇝ 29/28 | note:74 gain:0.02552240934977423 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", - "[ 11/14 ⇜ (31/32 → 63/64) ⇝ 29/28 | note:75 gain:0.02552240934977423 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", - "[ 11/14 ⇜ (31/32 → 63/64) ⇝ 29/28 | note:79 gain:0.02552240934977423 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", - "[ 11/14 ⇜ (63/64 → 1/1) ⇝ 29/28 | note:70 gain:0.0363463313526982 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", - "[ 11/14 ⇜ (63/64 → 1/1) ⇝ 29/28 | note:74 gain:0.0363463313526982 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", - "[ 11/14 ⇜ (63/64 → 1/1) ⇝ 29/28 | note:75 gain:0.0363463313526982 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", - "[ 11/14 ⇜ (63/64 → 1/1) ⇝ 29/28 | note:79 gain:0.0363463313526982 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", - "[ 11/14 ⇜ (1/1 → 65/64) ⇝ 29/28 | note:70 gain:0.05165366864730173 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", - "[ 11/14 ⇜ (1/1 → 65/64) ⇝ 29/28 | note:74 gain:0.05165366864730173 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", - "[ 11/14 ⇜ (1/1 → 65/64) ⇝ 29/28 | note:75 gain:0.05165366864730173 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", - "[ 11/14 ⇜ (1/1 → 65/64) ⇝ 29/28 | note:79 gain:0.05165366864730173 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", - "[ (1/1 → 65/64) ⇝ 5/4 | note:C2 gain:0.5165366864730173 clip:1 s:piano release:0.1 pan:0.41666666666666663 ]", - "[ 11/14 ⇜ (65/64 → 33/32) ⇝ 29/28 | note:70 gain:0.06247759065022575 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", - "[ 11/14 ⇜ (65/64 → 33/32) ⇝ 29/28 | note:74 gain:0.06247759065022575 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", - "[ 11/14 ⇜ (65/64 → 33/32) ⇝ 29/28 | note:75 gain:0.06247759065022575 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", - "[ 11/14 ⇜ (65/64 → 33/32) ⇝ 29/28 | note:79 gain:0.06247759065022575 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", - "[ 1/1 ⇜ (65/64 → 33/32) ⇝ 5/4 | note:C2 gain:0.6247759065022574 clip:1 s:piano release:0.1 pan:0.41666666666666663 ]", - "[ 11/14 ⇜ (33/32 → 29/28) | note:70 gain:0.06247759065022575 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", - "[ 11/14 ⇜ (33/32 → 29/28) | note:74 gain:0.06247759065022575 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", - "[ 11/14 ⇜ (33/32 → 29/28) | note:75 gain:0.06247759065022575 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", - "[ 11/14 ⇜ (33/32 → 29/28) | note:79 gain:0.06247759065022575 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", - "[ 1/1 ⇜ (33/32 → 67/64) ⇝ 5/4 | note:C2 gain:0.6247759065022574 clip:1 s:piano release:0.1 pan:0.41666666666666663 ]", - "[ 1/1 ⇜ (67/64 → 17/16) ⇝ 5/4 | note:C2 gain:0.5165366864730186 clip:1 s:piano release:0.1 pan:0.41666666666666663 ]", - "[ 1/1 ⇜ (17/16 → 69/64) ⇝ 5/4 | note:C2 gain:0.363463313526982 clip:1 s:piano release:0.1 pan:0.41666666666666663 ]", - "[ 1/1 ⇜ (69/64 → 35/32) ⇝ 5/4 | note:C2 gain:0.25522409349774283 clip:1 s:piano release:0.1 pan:0.41666666666666663 ]", - "[ 1/1 ⇜ (35/32 → 71/64) ⇝ 5/4 | note:C2 gain:0.2552240934977423 clip:1 s:piano release:0.1 pan:0.41666666666666663 ]", - "[ 1/1 ⇜ (71/64 → 9/8) ⇝ 5/4 | note:C2 gain:0.3634633135269819 clip:1 s:piano release:0.1 pan:0.41666666666666663 ]", - "[ 1/1 ⇜ (9/8 → 73/64) ⇝ 5/4 | note:C2 gain:0.5165366864730173 clip:1 s:piano release:0.1 pan:0.41666666666666663 ]", - "[ (9/8 → 73/64) ⇝ 5/4 | note:C4 gain:0.5165366864730173 clip:1 s:piano release:0.1 pan:0.5277777777777778 ]", - "[ (9/8 → 73/64) ⇝ 5/4 | note:Eb4 gain:0.5165366864730173 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", - "[ 1/1 ⇜ (73/64 → 37/32) ⇝ 5/4 | note:C2 gain:0.6247759065022574 clip:1 s:piano release:0.1 pan:0.41666666666666663 ]", - "[ 9/8 ⇜ (73/64 → 37/32) ⇝ 5/4 | note:C4 gain:0.6247759065022574 clip:1 s:piano release:0.1 pan:0.5277777777777778 ]", - "[ 9/8 ⇜ (73/64 → 37/32) ⇝ 5/4 | note:Eb4 gain:0.6247759065022574 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", - "[ 1/1 ⇜ (37/32 → 75/64) ⇝ 5/4 | note:C2 gain:0.6247759065022574 clip:1 s:piano release:0.1 pan:0.41666666666666663 ]", - "[ 9/8 ⇜ (37/32 → 75/64) ⇝ 5/4 | note:C4 gain:0.6247759065022574 clip:1 s:piano release:0.1 pan:0.5277777777777778 ]", - "[ 9/8 ⇜ (37/32 → 75/64) ⇝ 5/4 | note:Eb4 gain:0.6247759065022574 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", - "[ 1/1 ⇜ (75/64 → 19/16) ⇝ 5/4 | note:C2 gain:0.5165366864730189 clip:1 s:piano release:0.1 pan:0.41666666666666663 ]", - "[ 9/8 ⇜ (75/64 → 19/16) ⇝ 5/4 | note:C4 gain:0.5165366864730189 clip:1 s:piano release:0.1 pan:0.5277777777777778 ]", - "[ 9/8 ⇜ (75/64 → 19/16) ⇝ 5/4 | note:Eb4 gain:0.5165366864730189 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", - "[ 1/1 ⇜ (19/16 → 77/64) ⇝ 5/4 | note:C2 gain:0.3634633135269821 clip:1 s:piano release:0.1 pan:0.41666666666666663 ]", - "[ 9/8 ⇜ (19/16 → 77/64) ⇝ 5/4 | note:C4 gain:0.3634633135269821 clip:1 s:piano release:0.1 pan:0.5277777777777778 ]", - "[ 9/8 ⇜ (19/16 → 77/64) ⇝ 5/4 | note:Eb4 gain:0.3634633135269821 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", - "[ 1/1 ⇜ (77/64 → 39/32) ⇝ 5/4 | note:C2 gain:0.2552240934977429 clip:1 s:piano release:0.1 pan:0.41666666666666663 ]", - "[ 9/8 ⇜ (77/64 → 39/32) ⇝ 5/4 | note:C4 gain:0.2552240934977429 clip:1 s:piano release:0.1 pan:0.5277777777777778 ]", - "[ 9/8 ⇜ (77/64 → 39/32) ⇝ 5/4 | note:Eb4 gain:0.2552240934977429 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", - "[ 1/1 ⇜ (39/32 → 79/64) ⇝ 5/4 | note:C2 gain:0.2552240934977422 clip:1 s:piano release:0.1 pan:0.41666666666666663 ]", - "[ 9/8 ⇜ (39/32 → 79/64) ⇝ 5/4 | note:C4 gain:0.2552240934977422 clip:1 s:piano release:0.1 pan:0.5277777777777778 ]", - "[ 9/8 ⇜ (39/32 → 79/64) ⇝ 5/4 | note:Eb4 gain:0.2552240934977422 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", - "[ 1/1 ⇜ (79/64 → 5/4) | note:C2 gain:0.36346331352698186 clip:1 s:piano release:0.1 pan:0.41666666666666663 ]", - "[ 9/8 ⇜ (79/64 → 5/4) | note:C4 gain:0.36346331352698186 clip:1 s:piano release:0.1 pan:0.5277777777777778 ]", - "[ 9/8 ⇜ (79/64 → 5/4) | note:Eb4 gain:0.36346331352698186 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", - "[ (5/4 → 81/64) ⇝ 3/2 | note:Bb3 gain:0.25826834323650866 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", - "[ (5/4 → 81/64) ⇝ 3/2 | note:D4 gain:0.25826834323650866 clip:1 s:piano release:0.1 pan:0.537037037037037 ]", - "[ (5/4 → 81/64) ⇝ 3/2 | note:Eb4 gain:0.25826834323650866 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", - "[ (5/4 → 81/64) ⇝ 3/2 | note:G4 gain:0.25826834323650866 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", - "[ 5/4 ⇜ (81/64 → 41/32) ⇝ 3/2 | note:Bb3 gain:0.31238795325112845 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", - "[ 5/4 ⇜ (81/64 → 41/32) ⇝ 3/2 | note:D4 gain:0.31238795325112845 clip:1 s:piano release:0.1 pan:0.537037037037037 ]", - "[ 5/4 ⇜ (81/64 → 41/32) ⇝ 3/2 | note:Eb4 gain:0.31238795325112845 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", - "[ 5/4 ⇜ (81/64 → 41/32) ⇝ 3/2 | note:G4 gain:0.31238795325112845 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", - "[ 5/4 ⇜ (41/32 → 83/64) ⇝ 3/2 | note:Bb3 gain:0.31238795325112906 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", - "[ 5/4 ⇜ (41/32 → 83/64) ⇝ 3/2 | note:D4 gain:0.31238795325112906 clip:1 s:piano release:0.1 pan:0.537037037037037 ]", - "[ 5/4 ⇜ (41/32 → 83/64) ⇝ 3/2 | note:Eb4 gain:0.31238795325112906 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", - "[ 5/4 ⇜ (41/32 → 83/64) ⇝ 3/2 | note:G4 gain:0.31238795325112906 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", - "[ 5/4 ⇜ (83/64 → 21/16) ⇝ 3/2 | note:Bb3 gain:0.25826834323650877 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", - "[ 5/4 ⇜ (83/64 → 21/16) ⇝ 3/2 | note:D4 gain:0.25826834323650877 clip:1 s:piano release:0.1 pan:0.537037037037037 ]", - "[ 5/4 ⇜ (83/64 → 21/16) ⇝ 3/2 | note:Eb4 gain:0.25826834323650877 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", - "[ 5/4 ⇜ (83/64 → 21/16) ⇝ 3/2 | note:G4 gain:0.25826834323650877 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", - "[ 5/4 ⇜ (21/16 → 85/64) ⇝ 3/2 | note:Bb3 gain:0.18173165676349107 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", - "[ 5/4 ⇜ (21/16 → 85/64) ⇝ 3/2 | note:D4 gain:0.18173165676349107 clip:1 s:piano release:0.1 pan:0.537037037037037 ]", - "[ 5/4 ⇜ (21/16 → 85/64) ⇝ 3/2 | note:Eb4 gain:0.18173165676349107 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", - "[ 5/4 ⇜ (21/16 → 85/64) ⇝ 3/2 | note:G4 gain:0.18173165676349107 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", - "[ 5/4 ⇜ (85/64 → 43/32) ⇝ 3/2 | note:Bb3 gain:0.12761204674887144 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", - "[ 5/4 ⇜ (85/64 → 43/32) ⇝ 3/2 | note:D4 gain:0.12761204674887144 clip:1 s:piano release:0.1 pan:0.537037037037037 ]", - "[ 5/4 ⇜ (85/64 → 43/32) ⇝ 3/2 | note:Eb4 gain:0.12761204674887144 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", - "[ 5/4 ⇜ (85/64 → 43/32) ⇝ 3/2 | note:G4 gain:0.12761204674887144 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", - "[ 5/4 ⇜ (43/32 → 87/64) ⇝ 3/2 | note:Bb3 gain:0.1276120467488711 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", - "[ 5/4 ⇜ (43/32 → 87/64) ⇝ 3/2 | note:D4 gain:0.1276120467488711 clip:1 s:piano release:0.1 pan:0.537037037037037 ]", - "[ 5/4 ⇜ (43/32 → 87/64) ⇝ 3/2 | note:Eb4 gain:0.1276120467488711 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", - "[ 5/4 ⇜ (43/32 → 87/64) ⇝ 3/2 | note:G4 gain:0.1276120467488711 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", - "[ 5/4 ⇜ (87/64 → 11/8) ⇝ 3/2 | note:Bb3 gain:0.18173165676349023 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", - "[ 5/4 ⇜ (87/64 → 11/8) ⇝ 3/2 | note:D4 gain:0.18173165676349023 clip:1 s:piano release:0.1 pan:0.537037037037037 ]", - "[ 5/4 ⇜ (87/64 → 11/8) ⇝ 3/2 | note:Eb4 gain:0.18173165676349023 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", - "[ 5/4 ⇜ (87/64 → 11/8) ⇝ 3/2 | note:G4 gain:0.18173165676349023 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", - "[ 5/4 ⇜ (11/8 → 89/64) ⇝ 3/2 | note:Bb3 gain:0.25826834323650927 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", - "[ 5/4 ⇜ (11/8 → 89/64) ⇝ 3/2 | note:D4 gain:0.25826834323650927 clip:1 s:piano release:0.1 pan:0.537037037037037 ]", - "[ 5/4 ⇜ (11/8 → 89/64) ⇝ 3/2 | note:Eb4 gain:0.25826834323650927 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", - "[ 5/4 ⇜ (11/8 → 89/64) ⇝ 3/2 | note:G4 gain:0.25826834323650927 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", - "[ 5/4 ⇜ (89/64 → 45/32) ⇝ 3/2 | note:Bb3 gain:0.3123879532511287 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", - "[ 5/4 ⇜ (89/64 → 45/32) ⇝ 3/2 | note:D4 gain:0.3123879532511287 clip:1 s:piano release:0.1 pan:0.537037037037037 ]", - "[ 5/4 ⇜ (89/64 → 45/32) ⇝ 3/2 | note:Eb4 gain:0.3123879532511287 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", - "[ 5/4 ⇜ (89/64 → 45/32) ⇝ 3/2 | note:G4 gain:0.3123879532511287 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", - "[ 5/4 ⇜ (45/32 → 91/64) ⇝ 3/2 | note:Bb3 gain:0.3123879532511288 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", - "[ 5/4 ⇜ (45/32 → 91/64) ⇝ 3/2 | note:D4 gain:0.3123879532511288 clip:1 s:piano release:0.1 pan:0.537037037037037 ]", - "[ 5/4 ⇜ (45/32 → 91/64) ⇝ 3/2 | note:Eb4 gain:0.3123879532511288 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", - "[ 5/4 ⇜ (45/32 → 91/64) ⇝ 3/2 | note:G4 gain:0.3123879532511288 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", - "[ 5/4 ⇜ (91/64 → 23/16) ⇝ 3/2 | note:Bb3 gain:0.25826834323650943 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", - "[ 5/4 ⇜ (91/64 → 23/16) ⇝ 3/2 | note:D4 gain:0.25826834323650943 clip:1 s:piano release:0.1 pan:0.537037037037037 ]", - "[ 5/4 ⇜ (91/64 → 23/16) ⇝ 3/2 | note:Eb4 gain:0.25826834323650943 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", - "[ 5/4 ⇜ (91/64 → 23/16) ⇝ 3/2 | note:G4 gain:0.25826834323650943 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", - "[ 5/4 ⇜ (23/16 → 93/64) ⇝ 3/2 | note:Bb3 gain:0.18173165676349173 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", - "[ 5/4 ⇜ (23/16 → 93/64) ⇝ 3/2 | note:D4 gain:0.18173165676349173 clip:1 s:piano release:0.1 pan:0.537037037037037 ]", - "[ 5/4 ⇜ (23/16 → 93/64) ⇝ 3/2 | note:Eb4 gain:0.18173165676349173 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", - "[ 5/4 ⇜ (23/16 → 93/64) ⇝ 3/2 | note:G4 gain:0.18173165676349173 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", - "[ 5/4 ⇜ (93/64 → 47/32) ⇝ 3/2 | note:Bb3 gain:0.1276120467488712 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", - "[ 5/4 ⇜ (93/64 → 47/32) ⇝ 3/2 | note:D4 gain:0.1276120467488712 clip:1 s:piano release:0.1 pan:0.537037037037037 ]", - "[ 5/4 ⇜ (93/64 → 47/32) ⇝ 3/2 | note:Eb4 gain:0.1276120467488712 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", - "[ 5/4 ⇜ (93/64 → 47/32) ⇝ 3/2 | note:G4 gain:0.1276120467488712 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", - "[ 5/4 ⇜ (47/32 → 95/64) ⇝ 3/2 | note:Bb3 gain:0.12761204674887136 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", - "[ 5/4 ⇜ (47/32 → 95/64) ⇝ 3/2 | note:D4 gain:0.12761204674887136 clip:1 s:piano release:0.1 pan:0.537037037037037 ]", - "[ 5/4 ⇜ (47/32 → 95/64) ⇝ 3/2 | note:Eb4 gain:0.12761204674887136 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", - "[ 5/4 ⇜ (47/32 → 95/64) ⇝ 3/2 | note:G4 gain:0.12761204674887136 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", - "[ 5/4 ⇜ (95/64 → 3/2) | note:Bb3 gain:0.1817316567634909 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", - "[ 5/4 ⇜ (95/64 → 3/2) | note:D4 gain:0.1817316567634909 clip:1 s:piano release:0.1 pan:0.537037037037037 ]", - "[ 5/4 ⇜ (95/64 → 3/2) | note:Eb4 gain:0.1817316567634909 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", - "[ 5/4 ⇜ (95/64 → 3/2) | note:G4 gain:0.1817316567634909 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", - "[ (3/2 → 97/64) ⇝ 13/8 | note:G4 gain:0.5165366864730172 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", - "[ (3/2 → 97/64) ⇝ 13/8 | note:Bb4 gain:0.5165366864730172 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", - "[ (3/2 → 97/64) ⇝ 7/4 | note:C2 gain:0.5165366864730172 clip:1 s:piano release:0.1 pan:0.41666666666666663 ]", - "[ 3/2 ⇜ (97/64 → 49/32) ⇝ 13/8 | note:G4 gain:0.6247759065022569 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", - "[ 3/2 ⇜ (97/64 → 49/32) ⇝ 13/8 | note:Bb4 gain:0.6247759065022569 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", - "[ 3/2 ⇜ (97/64 → 49/32) ⇝ 7/4 | note:C2 gain:0.6247759065022569 clip:1 s:piano release:0.1 pan:0.41666666666666663 ]", - "[ 3/2 ⇜ (49/32 → 99/64) ⇝ 13/8 | note:G4 gain:0.6247759065022582 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", - "[ 3/2 ⇜ (49/32 → 99/64) ⇝ 13/8 | note:Bb4 gain:0.6247759065022582 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", - "[ 3/2 ⇜ (49/32 → 99/64) ⇝ 7/4 | note:C2 gain:0.6247759065022582 clip:1 s:piano release:0.1 pan:0.41666666666666663 ]", - "[ (43/28 → 99/64) ⇝ 25/14 | note:70 gain:0.062477590650225824 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", - "[ (43/28 → 99/64) ⇝ 25/14 | note:74 gain:0.062477590650225824 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", - "[ (43/28 → 99/64) ⇝ 25/14 | note:75 gain:0.062477590650225824 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", - "[ (43/28 → 99/64) ⇝ 25/14 | note:79 gain:0.062477590650225824 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", - "[ 3/2 ⇜ (99/64 → 25/16) ⇝ 13/8 | note:G4 gain:0.5165366864730176 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", - "[ 3/2 ⇜ (99/64 → 25/16) ⇝ 13/8 | note:Bb4 gain:0.5165366864730176 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", - "[ 3/2 ⇜ (99/64 → 25/16) ⇝ 7/4 | note:C2 gain:0.5165366864730176 clip:1 s:piano release:0.1 pan:0.41666666666666663 ]", - "[ 43/28 ⇜ (99/64 → 25/16) ⇝ 25/14 | note:70 gain:0.05165366864730177 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", - "[ 43/28 ⇜ (99/64 → 25/16) ⇝ 25/14 | note:74 gain:0.05165366864730177 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", - "[ 43/28 ⇜ (99/64 → 25/16) ⇝ 25/14 | note:75 gain:0.05165366864730177 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", - "[ 43/28 ⇜ (99/64 → 25/16) ⇝ 25/14 | note:79 gain:0.05165366864730177 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", - "[ 3/2 ⇜ (25/16 → 101/64) ⇝ 13/8 | note:G4 gain:0.36346331352698225 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", - "[ 3/2 ⇜ (25/16 → 101/64) ⇝ 13/8 | note:Bb4 gain:0.36346331352698225 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", - "[ 3/2 ⇜ (25/16 → 101/64) ⇝ 7/4 | note:C2 gain:0.36346331352698225 clip:1 s:piano release:0.1 pan:0.41666666666666663 ]", - "[ 43/28 ⇜ (25/16 → 101/64) ⇝ 25/14 | note:70 gain:0.03634633135269823 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", - "[ 43/28 ⇜ (25/16 → 101/64) ⇝ 25/14 | note:74 gain:0.03634633135269823 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", - "[ 43/28 ⇜ (25/16 → 101/64) ⇝ 25/14 | note:75 gain:0.03634633135269823 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", - "[ 43/28 ⇜ (25/16 → 101/64) ⇝ 25/14 | note:79 gain:0.03634633135269823 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", - "[ 3/2 ⇜ (101/64 → 51/32) ⇝ 13/8 | note:G4 gain:0.25522409349774294 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", - "[ 3/2 ⇜ (101/64 → 51/32) ⇝ 13/8 | note:Bb4 gain:0.25522409349774294 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", - "[ 3/2 ⇜ (101/64 → 51/32) ⇝ 7/4 | note:C2 gain:0.25522409349774294 clip:1 s:piano release:0.1 pan:0.41666666666666663 ]", - "[ 43/28 ⇜ (101/64 → 51/32) ⇝ 25/14 | note:70 gain:0.025522409349774296 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", - "[ 43/28 ⇜ (101/64 → 51/32) ⇝ 25/14 | note:74 gain:0.025522409349774296 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", - "[ 43/28 ⇜ (101/64 → 51/32) ⇝ 25/14 | note:75 gain:0.025522409349774296 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", - "[ 43/28 ⇜ (101/64 → 51/32) ⇝ 25/14 | note:79 gain:0.025522409349774296 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", - "[ 3/2 ⇜ (51/32 → 103/64) ⇝ 13/8 | note:G4 gain:0.25522409349774217 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", - "[ 3/2 ⇜ (51/32 → 103/64) ⇝ 13/8 | note:Bb4 gain:0.25522409349774217 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", - "[ 3/2 ⇜ (51/32 → 103/64) ⇝ 7/4 | note:C2 gain:0.25522409349774217 clip:1 s:piano release:0.1 pan:0.41666666666666663 ]", - "[ 43/28 ⇜ (51/32 → 103/64) ⇝ 25/14 | note:70 gain:0.02552240934977422 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", - "[ 43/28 ⇜ (51/32 → 103/64) ⇝ 25/14 | note:74 gain:0.02552240934977422 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", - "[ 43/28 ⇜ (51/32 → 103/64) ⇝ 25/14 | note:75 gain:0.02552240934977422 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", - "[ 43/28 ⇜ (51/32 → 103/64) ⇝ 25/14 | note:79 gain:0.02552240934977422 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", - "[ 3/2 ⇜ (103/64 → 13/8) | note:G4 gain:0.3634633135269804 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", - "[ 3/2 ⇜ (103/64 → 13/8) | note:Bb4 gain:0.3634633135269804 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", - "[ 3/2 ⇜ (103/64 → 13/8) ⇝ 7/4 | note:C2 gain:0.3634633135269804 clip:1 s:piano release:0.1 pan:0.41666666666666663 ]", - "[ 43/28 ⇜ (103/64 → 13/8) ⇝ 25/14 | note:70 gain:0.03634633135269804 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", - "[ 43/28 ⇜ (103/64 → 13/8) ⇝ 25/14 | note:74 gain:0.03634633135269804 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", - "[ 43/28 ⇜ (103/64 → 13/8) ⇝ 25/14 | note:75 gain:0.03634633135269804 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", - "[ 43/28 ⇜ (103/64 → 13/8) ⇝ 25/14 | note:79 gain:0.03634633135269804 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", - "[ 3/2 ⇜ (13/8 → 105/64) ⇝ 7/4 | note:C2 gain:0.5165366864730185 clip:1 s:piano release:0.1 pan:0.41666666666666663 ]", - "[ 43/28 ⇜ (13/8 → 105/64) ⇝ 25/14 | note:70 gain:0.05165366864730186 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", - "[ 43/28 ⇜ (13/8 → 105/64) ⇝ 25/14 | note:74 gain:0.05165366864730186 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", - "[ 43/28 ⇜ (13/8 → 105/64) ⇝ 25/14 | note:75 gain:0.05165366864730186 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", - "[ 43/28 ⇜ (13/8 → 105/64) ⇝ 25/14 | note:79 gain:0.05165366864730186 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", - "[ 3/2 ⇜ (105/64 → 53/32) ⇝ 7/4 | note:C2 gain:0.6247759065022573 clip:1 s:piano release:0.1 pan:0.41666666666666663 ]", - "[ 43/28 ⇜ (105/64 → 53/32) ⇝ 25/14 | note:70 gain:0.062477590650225734 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", - "[ 43/28 ⇜ (105/64 → 53/32) ⇝ 25/14 | note:74 gain:0.062477590650225734 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", - "[ 43/28 ⇜ (105/64 → 53/32) ⇝ 25/14 | note:75 gain:0.062477590650225734 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", - "[ 43/28 ⇜ (105/64 → 53/32) ⇝ 25/14 | note:79 gain:0.062477590650225734 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", - "[ 3/2 ⇜ (53/32 → 107/64) ⇝ 7/4 | note:C2 gain:0.6247759065022577 clip:1 s:piano release:0.1 pan:0.41666666666666663 ]", - "[ 43/28 ⇜ (53/32 → 107/64) ⇝ 25/14 | note:70 gain:0.06247759065022577 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", - "[ 43/28 ⇜ (53/32 → 107/64) ⇝ 25/14 | note:74 gain:0.06247759065022577 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", - "[ 43/28 ⇜ (53/32 → 107/64) ⇝ 25/14 | note:75 gain:0.06247759065022577 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", - "[ 43/28 ⇜ (53/32 → 107/64) ⇝ 25/14 | note:79 gain:0.06247759065022577 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", - "[ 3/2 ⇜ (107/64 → 27/16) ⇝ 7/4 | note:C2 gain:0.5165366864730191 clip:1 s:piano release:0.1 pan:0.41666666666666663 ]", - "[ 43/28 ⇜ (107/64 → 27/16) ⇝ 25/14 | note:70 gain:0.05165366864730191 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", - "[ 43/28 ⇜ (107/64 → 27/16) ⇝ 25/14 | note:74 gain:0.05165366864730191 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", - "[ 43/28 ⇜ (107/64 → 27/16) ⇝ 25/14 | note:75 gain:0.05165366864730191 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", - "[ 43/28 ⇜ (107/64 → 27/16) ⇝ 25/14 | note:79 gain:0.05165366864730191 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", - "[ 3/2 ⇜ (27/16 → 109/64) ⇝ 7/4 | note:C2 gain:0.3634633135269836 clip:1 s:piano release:0.1 pan:0.41666666666666663 ]", - "[ 43/28 ⇜ (27/16 → 109/64) ⇝ 25/14 | note:70 gain:0.03634633135269836 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", - "[ 43/28 ⇜ (27/16 → 109/64) ⇝ 25/14 | note:74 gain:0.03634633135269836 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", - "[ 43/28 ⇜ (27/16 → 109/64) ⇝ 25/14 | note:75 gain:0.03634633135269836 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", - "[ 43/28 ⇜ (27/16 → 109/64) ⇝ 25/14 | note:79 gain:0.03634633135269836 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", - "[ 3/2 ⇜ (109/64 → 55/32) ⇝ 7/4 | note:C2 gain:0.2552240934977424 clip:1 s:piano release:0.1 pan:0.41666666666666663 ]", - "[ 43/28 ⇜ (109/64 → 55/32) ⇝ 25/14 | note:70 gain:0.02552240934977424 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", - "[ 43/28 ⇜ (109/64 → 55/32) ⇝ 25/14 | note:74 gain:0.02552240934977424 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", - "[ 43/28 ⇜ (109/64 → 55/32) ⇝ 25/14 | note:75 gain:0.02552240934977424 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", - "[ 43/28 ⇜ (109/64 → 55/32) ⇝ 25/14 | note:79 gain:0.02552240934977424 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", - "[ 3/2 ⇜ (55/32 → 111/64) ⇝ 7/4 | note:C2 gain:0.2552240934977427 clip:1 s:piano release:0.1 pan:0.41666666666666663 ]", - "[ 43/28 ⇜ (55/32 → 111/64) ⇝ 25/14 | note:70 gain:0.025522409349774275 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", - "[ 43/28 ⇜ (55/32 → 111/64) ⇝ 25/14 | note:74 gain:0.025522409349774275 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", - "[ 43/28 ⇜ (55/32 → 111/64) ⇝ 25/14 | note:75 gain:0.025522409349774275 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", - "[ 43/28 ⇜ (55/32 → 111/64) ⇝ 25/14 | note:79 gain:0.025522409349774275 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", - "[ 3/2 ⇜ (111/64 → 7/4) | note:C2 gain:0.3634633135269817 clip:1 s:piano release:0.1 pan:0.41666666666666663 ]", - "[ 43/28 ⇜ (111/64 → 7/4) ⇝ 25/14 | note:70 gain:0.03634633135269817 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", - "[ 43/28 ⇜ (111/64 → 7/4) ⇝ 25/14 | note:74 gain:0.03634633135269817 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", - "[ 43/28 ⇜ (111/64 → 7/4) ⇝ 25/14 | note:75 gain:0.03634633135269817 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", - "[ 43/28 ⇜ (111/64 → 7/4) ⇝ 25/14 | note:79 gain:0.03634633135269817 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", - "[ 43/28 ⇜ (7/4 → 113/64) ⇝ 25/14 | note:70 gain:0.05165366864730171 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", - "[ 43/28 ⇜ (7/4 → 113/64) ⇝ 25/14 | note:74 gain:0.05165366864730171 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", - "[ 43/28 ⇜ (7/4 → 113/64) ⇝ 25/14 | note:75 gain:0.05165366864730171 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", - "[ 43/28 ⇜ (7/4 → 113/64) ⇝ 25/14 | note:79 gain:0.05165366864730171 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", - "[ (7/4 → 113/64) ⇝ 15/8 | note:G4 gain:0.5165366864730171 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", - "[ (7/4 → 113/64) ⇝ 15/8 | note:Bb4 gain:0.5165366864730171 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", - "[ (7/4 → 113/64) ⇝ 2/1 | note:Bb3 gain:0.25826834323650855 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", - "[ (7/4 → 113/64) ⇝ 2/1 | note:D4 gain:0.25826834323650855 clip:1 s:piano release:0.1 pan:0.537037037037037 ]", - "[ (7/4 → 113/64) ⇝ 2/1 | note:Eb4 gain:0.25826834323650855 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", - "[ (7/4 → 113/64) ⇝ 2/1 | note:G4 gain:0.25826834323650855 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", - "[ 43/28 ⇜ (113/64 → 57/32) ⇝ 25/14 | note:70 gain:0.06247759065022568 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", - "[ 43/28 ⇜ (113/64 → 57/32) ⇝ 25/14 | note:74 gain:0.06247759065022568 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", - "[ 43/28 ⇜ (113/64 → 57/32) ⇝ 25/14 | note:75 gain:0.06247759065022568 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", - "[ 43/28 ⇜ (113/64 → 57/32) ⇝ 25/14 | note:79 gain:0.06247759065022568 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", - "[ 7/4 ⇜ (113/64 → 57/32) ⇝ 15/8 | note:G4 gain:0.6247759065022568 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", - "[ 7/4 ⇜ (113/64 → 57/32) ⇝ 15/8 | note:Bb4 gain:0.6247759065022568 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", - "[ 7/4 ⇜ (113/64 → 57/32) ⇝ 2/1 | note:Bb3 gain:0.3123879532511284 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", - "[ 7/4 ⇜ (113/64 → 57/32) ⇝ 2/1 | note:D4 gain:0.3123879532511284 clip:1 s:piano release:0.1 pan:0.537037037037037 ]", - "[ 7/4 ⇜ (113/64 → 57/32) ⇝ 2/1 | note:Eb4 gain:0.3123879532511284 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", - "[ 7/4 ⇜ (113/64 → 57/32) ⇝ 2/1 | note:G4 gain:0.3123879532511284 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", - "[ 43/28 ⇜ (57/32 → 25/14) | note:70 gain:0.062477590650225824 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", - "[ 43/28 ⇜ (57/32 → 25/14) | note:74 gain:0.062477590650225824 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", - "[ 43/28 ⇜ (57/32 → 25/14) | note:75 gain:0.062477590650225824 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", - "[ 43/28 ⇜ (57/32 → 25/14) | note:79 gain:0.062477590650225824 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", - "[ 7/4 ⇜ (57/32 → 115/64) ⇝ 15/8 | note:G4 gain:0.6247759065022582 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", - "[ 7/4 ⇜ (57/32 → 115/64) ⇝ 15/8 | note:Bb4 gain:0.6247759065022582 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", - "[ 7/4 ⇜ (57/32 → 115/64) ⇝ 2/1 | note:Bb3 gain:0.3123879532511291 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", - "[ 7/4 ⇜ (57/32 → 115/64) ⇝ 2/1 | note:D4 gain:0.3123879532511291 clip:1 s:piano release:0.1 pan:0.537037037037037 ]", - "[ 7/4 ⇜ (57/32 → 115/64) ⇝ 2/1 | note:Eb4 gain:0.3123879532511291 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", - "[ 7/4 ⇜ (57/32 → 115/64) ⇝ 2/1 | note:G4 gain:0.3123879532511291 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", - "[ 7/4 ⇜ (115/64 → 29/16) ⇝ 15/8 | note:G4 gain:0.5165366864730178 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", - "[ 7/4 ⇜ (115/64 → 29/16) ⇝ 15/8 | note:Bb4 gain:0.5165366864730178 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", - "[ 7/4 ⇜ (115/64 → 29/16) ⇝ 2/1 | note:Bb3 gain:0.2582683432365089 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", - "[ 7/4 ⇜ (115/64 → 29/16) ⇝ 2/1 | note:D4 gain:0.2582683432365089 clip:1 s:piano release:0.1 pan:0.537037037037037 ]", - "[ 7/4 ⇜ (115/64 → 29/16) ⇝ 2/1 | note:Eb4 gain:0.2582683432365089 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", - "[ 7/4 ⇜ (115/64 → 29/16) ⇝ 2/1 | note:G4 gain:0.2582683432365089 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", - "[ 7/4 ⇜ (29/16 → 117/64) ⇝ 15/8 | note:G4 gain:0.3634633135269823 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", - "[ 7/4 ⇜ (29/16 → 117/64) ⇝ 15/8 | note:Bb4 gain:0.3634633135269823 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", - "[ 7/4 ⇜ (29/16 → 117/64) ⇝ 2/1 | note:Bb3 gain:0.18173165676349115 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", - "[ 7/4 ⇜ (29/16 → 117/64) ⇝ 2/1 | note:D4 gain:0.18173165676349115 clip:1 s:piano release:0.1 pan:0.537037037037037 ]", - "[ 7/4 ⇜ (29/16 → 117/64) ⇝ 2/1 | note:Eb4 gain:0.18173165676349115 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", - "[ 7/4 ⇜ (29/16 → 117/64) ⇝ 2/1 | note:G4 gain:0.18173165676349115 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", - "[ 7/4 ⇜ (117/64 → 59/32) ⇝ 15/8 | note:G4 gain:0.25522409349774294 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", - "[ 7/4 ⇜ (117/64 → 59/32) ⇝ 15/8 | note:Bb4 gain:0.25522409349774294 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", - "[ 7/4 ⇜ (117/64 → 59/32) ⇝ 2/1 | note:Bb3 gain:0.12761204674887147 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", - "[ 7/4 ⇜ (117/64 → 59/32) ⇝ 2/1 | note:D4 gain:0.12761204674887147 clip:1 s:piano release:0.1 pan:0.537037037037037 ]", - "[ 7/4 ⇜ (117/64 → 59/32) ⇝ 2/1 | note:Eb4 gain:0.12761204674887147 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", - "[ 7/4 ⇜ (117/64 → 59/32) ⇝ 2/1 | note:G4 gain:0.12761204674887147 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", - "[ 7/4 ⇜ (59/32 → 119/64) ⇝ 15/8 | note:G4 gain:0.2552240934977421 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", - "[ 7/4 ⇜ (59/32 → 119/64) ⇝ 15/8 | note:Bb4 gain:0.2552240934977421 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", - "[ 7/4 ⇜ (59/32 → 119/64) ⇝ 2/1 | note:Bb3 gain:0.12761204674887106 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", - "[ 7/4 ⇜ (59/32 → 119/64) ⇝ 2/1 | note:D4 gain:0.12761204674887106 clip:1 s:piano release:0.1 pan:0.537037037037037 ]", - "[ 7/4 ⇜ (59/32 → 119/64) ⇝ 2/1 | note:Eb4 gain:0.12761204674887106 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", - "[ 7/4 ⇜ (59/32 → 119/64) ⇝ 2/1 | note:G4 gain:0.12761204674887106 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", - "[ 7/4 ⇜ (119/64 → 15/8) | note:G4 gain:0.3634633135269803 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", - "[ 7/4 ⇜ (119/64 → 15/8) | note:Bb4 gain:0.3634633135269803 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", - "[ 7/4 ⇜ (119/64 → 15/8) ⇝ 2/1 | note:Bb3 gain:0.18173165676349015 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", - "[ 7/4 ⇜ (119/64 → 15/8) ⇝ 2/1 | note:D4 gain:0.18173165676349015 clip:1 s:piano release:0.1 pan:0.537037037037037 ]", - "[ 7/4 ⇜ (119/64 → 15/8) ⇝ 2/1 | note:Eb4 gain:0.18173165676349015 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", - "[ 7/4 ⇜ (119/64 → 15/8) ⇝ 2/1 | note:G4 gain:0.18173165676349015 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", - "[ 7/4 ⇜ (15/8 → 121/64) ⇝ 2/1 | note:Bb3 gain:0.25826834323650916 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", - "[ 7/4 ⇜ (15/8 → 121/64) ⇝ 2/1 | note:D4 gain:0.25826834323650916 clip:1 s:piano release:0.1 pan:0.537037037037037 ]", - "[ 7/4 ⇜ (15/8 → 121/64) ⇝ 2/1 | note:Eb4 gain:0.25826834323650916 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", - "[ 7/4 ⇜ (15/8 → 121/64) ⇝ 2/1 | note:G4 gain:0.25826834323650916 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", - "[ 7/4 ⇜ (121/64 → 61/32) ⇝ 2/1 | note:Bb3 gain:0.31238795325112867 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", - "[ 7/4 ⇜ (121/64 → 61/32) ⇝ 2/1 | note:D4 gain:0.31238795325112867 clip:1 s:piano release:0.1 pan:0.537037037037037 ]", - "[ 7/4 ⇜ (121/64 → 61/32) ⇝ 2/1 | note:Eb4 gain:0.31238795325112867 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", - "[ 7/4 ⇜ (121/64 → 61/32) ⇝ 2/1 | note:G4 gain:0.31238795325112867 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", - "[ 7/4 ⇜ (61/32 → 123/64) ⇝ 2/1 | note:Bb3 gain:0.31238795325112884 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", - "[ 7/4 ⇜ (61/32 → 123/64) ⇝ 2/1 | note:D4 gain:0.31238795325112884 clip:1 s:piano release:0.1 pan:0.537037037037037 ]", - "[ 7/4 ⇜ (61/32 → 123/64) ⇝ 2/1 | note:Eb4 gain:0.31238795325112884 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", - "[ 7/4 ⇜ (61/32 → 123/64) ⇝ 2/1 | note:G4 gain:0.31238795325112884 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", - "[ 7/4 ⇜ (123/64 → 31/16) ⇝ 2/1 | note:Bb3 gain:0.25826834323650955 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", - "[ 7/4 ⇜ (123/64 → 31/16) ⇝ 2/1 | note:D4 gain:0.25826834323650955 clip:1 s:piano release:0.1 pan:0.537037037037037 ]", - "[ 7/4 ⇜ (123/64 → 31/16) ⇝ 2/1 | note:Eb4 gain:0.25826834323650955 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", - "[ 7/4 ⇜ (123/64 → 31/16) ⇝ 2/1 | note:G4 gain:0.25826834323650955 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", - "[ 7/4 ⇜ (31/16 → 125/64) ⇝ 2/1 | note:Bb3 gain:0.18173165676349182 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", - "[ 7/4 ⇜ (31/16 → 125/64) ⇝ 2/1 | note:D4 gain:0.18173165676349182 clip:1 s:piano release:0.1 pan:0.537037037037037 ]", - "[ 7/4 ⇜ (31/16 → 125/64) ⇝ 2/1 | note:Eb4 gain:0.18173165676349182 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", - "[ 7/4 ⇜ (31/16 → 125/64) ⇝ 2/1 | note:G4 gain:0.18173165676349182 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", - "[ 7/4 ⇜ (125/64 → 63/32) ⇝ 2/1 | note:Bb3 gain:0.12761204674887122 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", - "[ 7/4 ⇜ (125/64 → 63/32) ⇝ 2/1 | note:D4 gain:0.12761204674887122 clip:1 s:piano release:0.1 pan:0.537037037037037 ]", - "[ 7/4 ⇜ (125/64 → 63/32) ⇝ 2/1 | note:Eb4 gain:0.12761204674887122 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", - "[ 7/4 ⇜ (125/64 → 63/32) ⇝ 2/1 | note:G4 gain:0.12761204674887122 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", - "[ 7/4 ⇜ (63/32 → 127/64) ⇝ 2/1 | note:Bb3 gain:0.12761204674887133 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", - "[ 7/4 ⇜ (63/32 → 127/64) ⇝ 2/1 | note:D4 gain:0.12761204674887133 clip:1 s:piano release:0.1 pan:0.537037037037037 ]", - "[ 7/4 ⇜ (63/32 → 127/64) ⇝ 2/1 | note:Eb4 gain:0.12761204674887133 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", - "[ 7/4 ⇜ (63/32 → 127/64) ⇝ 2/1 | note:G4 gain:0.12761204674887133 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", - "[ 7/4 ⇜ (127/64 → 2/1) | note:Bb3 gain:0.1817316567634908 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", - "[ 7/4 ⇜ (127/64 → 2/1) | note:D4 gain:0.1817316567634908 clip:1 s:piano release:0.1 pan:0.537037037037037 ]", - "[ 7/4 ⇜ (127/64 → 2/1) | note:Eb4 gain:0.1817316567634908 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", - "[ 7/4 ⇜ (127/64 → 2/1) | note:G4 gain:0.1817316567634908 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", - "[ (2/1 → 129/64) ⇝ 9/4 | note:F2 gain:0.516536686473017 clip:1 s:piano release:0.1 pan:0.4398148148148148 ]", - "[ 2/1 ⇜ (129/64 → 65/32) ⇝ 9/4 | note:F2 gain:0.6247759065022568 clip:1 s:piano release:0.1 pan:0.4398148148148148 ]", - "[ 2/1 ⇜ (65/32 → 131/64) ⇝ 9/4 | note:F2 gain:0.6247759065022582 clip:1 s:piano release:0.1 pan:0.4398148148148148 ]", - "[ (57/28 → 131/64) ⇝ 16/7 | note:70 gain:0.062477590650225824 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", - "[ (57/28 → 131/64) ⇝ 16/7 | note:74 gain:0.062477590650225824 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", - "[ (57/28 → 131/64) ⇝ 16/7 | note:75 gain:0.062477590650225824 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", - "[ (57/28 → 131/64) ⇝ 16/7 | note:79 gain:0.062477590650225824 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", - "[ 2/1 ⇜ (131/64 → 33/16) ⇝ 9/4 | note:F2 gain:0.5165366864730178 clip:1 s:piano release:0.1 pan:0.4398148148148148 ]", - "[ 57/28 ⇜ (131/64 → 33/16) ⇝ 16/7 | note:70 gain:0.05165366864730178 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", - "[ 57/28 ⇜ (131/64 → 33/16) ⇝ 16/7 | note:74 gain:0.05165366864730178 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", - "[ 57/28 ⇜ (131/64 → 33/16) ⇝ 16/7 | note:75 gain:0.05165366864730178 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", - "[ 57/28 ⇜ (131/64 → 33/16) ⇝ 16/7 | note:79 gain:0.05165366864730178 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", - "[ 2/1 ⇜ (33/16 → 133/64) ⇝ 9/4 | note:F2 gain:0.3634633135269824 clip:1 s:piano release:0.1 pan:0.4398148148148148 ]", - "[ 57/28 ⇜ (33/16 → 133/64) ⇝ 16/7 | note:70 gain:0.03634633135269824 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", - "[ 57/28 ⇜ (33/16 → 133/64) ⇝ 16/7 | note:74 gain:0.03634633135269824 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", - "[ 57/28 ⇜ (33/16 → 133/64) ⇝ 16/7 | note:75 gain:0.03634633135269824 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", - "[ 57/28 ⇜ (33/16 → 133/64) ⇝ 16/7 | note:79 gain:0.03634633135269824 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", - "[ 2/1 ⇜ (133/64 → 67/32) ⇝ 9/4 | note:F2 gain:0.255224093497743 clip:1 s:piano release:0.1 pan:0.4398148148148148 ]", - "[ 57/28 ⇜ (133/64 → 67/32) ⇝ 16/7 | note:70 gain:0.025522409349774303 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", - "[ 57/28 ⇜ (133/64 → 67/32) ⇝ 16/7 | note:74 gain:0.025522409349774303 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", - "[ 57/28 ⇜ (133/64 → 67/32) ⇝ 16/7 | note:75 gain:0.025522409349774303 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", - "[ 57/28 ⇜ (133/64 → 67/32) ⇝ 16/7 | note:79 gain:0.025522409349774303 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", - "[ 2/1 ⇜ (67/32 → 135/64) ⇝ 9/4 | note:F2 gain:0.2552240934977421 clip:1 s:piano release:0.1 pan:0.4398148148148148 ]", - "[ 57/28 ⇜ (67/32 → 135/64) ⇝ 16/7 | note:70 gain:0.025522409349774212 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", - "[ 57/28 ⇜ (67/32 → 135/64) ⇝ 16/7 | note:74 gain:0.025522409349774212 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", - "[ 57/28 ⇜ (67/32 → 135/64) ⇝ 16/7 | note:75 gain:0.025522409349774212 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", - "[ 57/28 ⇜ (67/32 → 135/64) ⇝ 16/7 | note:79 gain:0.025522409349774212 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", - "[ 2/1 ⇜ (135/64 → 17/8) ⇝ 9/4 | note:F2 gain:0.36346331352698025 clip:1 s:piano release:0.1 pan:0.4398148148148148 ]", - "[ 57/28 ⇜ (135/64 → 17/8) ⇝ 16/7 | note:70 gain:0.036346331352698026 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", - "[ 57/28 ⇜ (135/64 → 17/8) ⇝ 16/7 | note:74 gain:0.036346331352698026 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", - "[ 57/28 ⇜ (135/64 → 17/8) ⇝ 16/7 | note:75 gain:0.036346331352698026 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", - "[ 57/28 ⇜ (135/64 → 17/8) ⇝ 16/7 | note:79 gain:0.036346331352698026 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", - "[ 2/1 ⇜ (17/8 → 137/64) ⇝ 9/4 | note:F2 gain:0.5165366864730182 clip:1 s:piano release:0.1 pan:0.4398148148148148 ]", - "[ 57/28 ⇜ (17/8 → 137/64) ⇝ 16/7 | note:70 gain:0.05165366864730182 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", - "[ 57/28 ⇜ (17/8 → 137/64) ⇝ 16/7 | note:74 gain:0.05165366864730182 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", - "[ 57/28 ⇜ (17/8 → 137/64) ⇝ 16/7 | note:75 gain:0.05165366864730182 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", - "[ 57/28 ⇜ (17/8 → 137/64) ⇝ 16/7 | note:79 gain:0.05165366864730182 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", - "[ (17/8 → 137/64) ⇝ 9/4 | note:F4 gain:0.5165366864730182 clip:1 s:piano release:0.1 pan:0.5509259259259259 ]", - "[ (17/8 → 137/64) ⇝ 9/4 | note:Ab4 gain:0.5165366864730182 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", - "[ 2/1 ⇜ (137/64 → 69/32) ⇝ 9/4 | note:F2 gain:0.6247759065022573 clip:1 s:piano release:0.1 pan:0.4398148148148148 ]", - "[ 57/28 ⇜ (137/64 → 69/32) ⇝ 16/7 | note:70 gain:0.062477590650225734 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", - "[ 57/28 ⇜ (137/64 → 69/32) ⇝ 16/7 | note:74 gain:0.062477590650225734 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", - "[ 57/28 ⇜ (137/64 → 69/32) ⇝ 16/7 | note:75 gain:0.062477590650225734 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", - "[ 57/28 ⇜ (137/64 → 69/32) ⇝ 16/7 | note:79 gain:0.062477590650225734 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", - "[ 17/8 ⇜ (137/64 → 69/32) ⇝ 9/4 | note:F4 gain:0.6247759065022573 clip:1 s:piano release:0.1 pan:0.5509259259259259 ]", - "[ 17/8 ⇜ (137/64 → 69/32) ⇝ 9/4 | note:Ab4 gain:0.6247759065022573 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", - "[ 2/1 ⇜ (69/32 → 139/64) ⇝ 9/4 | note:F2 gain:0.6247759065022577 clip:1 s:piano release:0.1 pan:0.4398148148148148 ]", - "[ 57/28 ⇜ (69/32 → 139/64) ⇝ 16/7 | note:70 gain:0.06247759065022577 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", - "[ 57/28 ⇜ (69/32 → 139/64) ⇝ 16/7 | note:74 gain:0.06247759065022577 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", - "[ 57/28 ⇜ (69/32 → 139/64) ⇝ 16/7 | note:75 gain:0.06247759065022577 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", - "[ 57/28 ⇜ (69/32 → 139/64) ⇝ 16/7 | note:79 gain:0.06247759065022577 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", - "[ 17/8 ⇜ (69/32 → 139/64) ⇝ 9/4 | note:F4 gain:0.6247759065022577 clip:1 s:piano release:0.1 pan:0.5509259259259259 ]", - "[ 17/8 ⇜ (69/32 → 139/64) ⇝ 9/4 | note:Ab4 gain:0.6247759065022577 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", - "[ 2/1 ⇜ (139/64 → 35/16) ⇝ 9/4 | note:F2 gain:0.5165366864730192 clip:1 s:piano release:0.1 pan:0.4398148148148148 ]", - "[ 57/28 ⇜ (139/64 → 35/16) ⇝ 16/7 | note:70 gain:0.05165366864730192 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", - "[ 57/28 ⇜ (139/64 → 35/16) ⇝ 16/7 | note:74 gain:0.05165366864730192 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", - "[ 57/28 ⇜ (139/64 → 35/16) ⇝ 16/7 | note:75 gain:0.05165366864730192 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", - "[ 57/28 ⇜ (139/64 → 35/16) ⇝ 16/7 | note:79 gain:0.05165366864730192 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", - "[ 17/8 ⇜ (139/64 → 35/16) ⇝ 9/4 | note:F4 gain:0.5165366864730192 clip:1 s:piano release:0.1 pan:0.5509259259259259 ]", - "[ 17/8 ⇜ (139/64 → 35/16) ⇝ 9/4 | note:Ab4 gain:0.5165366864730192 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", - "[ 2/1 ⇜ (35/16 → 141/64) ⇝ 9/4 | note:F2 gain:0.36346331352698374 clip:1 s:piano release:0.1 pan:0.4398148148148148 ]", - "[ 57/28 ⇜ (35/16 → 141/64) ⇝ 16/7 | note:70 gain:0.03634633135269837 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", - "[ 57/28 ⇜ (35/16 → 141/64) ⇝ 16/7 | note:74 gain:0.03634633135269837 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", - "[ 57/28 ⇜ (35/16 → 141/64) ⇝ 16/7 | note:75 gain:0.03634633135269837 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", - "[ 57/28 ⇜ (35/16 → 141/64) ⇝ 16/7 | note:79 gain:0.03634633135269837 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", - "[ 17/8 ⇜ (35/16 → 141/64) ⇝ 9/4 | note:F4 gain:0.36346331352698374 clip:1 s:piano release:0.1 pan:0.5509259259259259 ]", - "[ 17/8 ⇜ (35/16 → 141/64) ⇝ 9/4 | note:Ab4 gain:0.36346331352698374 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", - "[ 2/1 ⇜ (141/64 → 71/32) ⇝ 9/4 | note:F2 gain:0.2552240934977425 clip:1 s:piano release:0.1 pan:0.4398148148148148 ]", - "[ 57/28 ⇜ (141/64 → 71/32) ⇝ 16/7 | note:70 gain:0.02552240934977425 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", - "[ 57/28 ⇜ (141/64 → 71/32) ⇝ 16/7 | note:74 gain:0.02552240934977425 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", - "[ 57/28 ⇜ (141/64 → 71/32) ⇝ 16/7 | note:75 gain:0.02552240934977425 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", - "[ 57/28 ⇜ (141/64 → 71/32) ⇝ 16/7 | note:79 gain:0.02552240934977425 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", - "[ 17/8 ⇜ (141/64 → 71/32) ⇝ 9/4 | note:F4 gain:0.2552240934977425 clip:1 s:piano release:0.1 pan:0.5509259259259259 ]", - "[ 17/8 ⇜ (141/64 → 71/32) ⇝ 9/4 | note:Ab4 gain:0.2552240934977425 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", - "[ 2/1 ⇜ (71/32 → 143/64) ⇝ 9/4 | note:F2 gain:0.25522409349774267 clip:1 s:piano release:0.1 pan:0.4398148148148148 ]", - "[ 57/28 ⇜ (71/32 → 143/64) ⇝ 16/7 | note:70 gain:0.025522409349774268 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", - "[ 57/28 ⇜ (71/32 → 143/64) ⇝ 16/7 | note:74 gain:0.025522409349774268 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", - "[ 57/28 ⇜ (71/32 → 143/64) ⇝ 16/7 | note:75 gain:0.025522409349774268 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", - "[ 57/28 ⇜ (71/32 → 143/64) ⇝ 16/7 | note:79 gain:0.025522409349774268 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", - "[ 17/8 ⇜ (71/32 → 143/64) ⇝ 9/4 | note:F4 gain:0.25522409349774267 clip:1 s:piano release:0.1 pan:0.5509259259259259 ]", - "[ 17/8 ⇜ (71/32 → 143/64) ⇝ 9/4 | note:Ab4 gain:0.25522409349774267 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", - "[ 2/1 ⇜ (143/64 → 9/4) | note:F2 gain:0.3634633135269815 clip:1 s:piano release:0.1 pan:0.4398148148148148 ]", - "[ 57/28 ⇜ (143/64 → 9/4) ⇝ 16/7 | note:70 gain:0.03634633135269815 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", - "[ 57/28 ⇜ (143/64 → 9/4) ⇝ 16/7 | note:74 gain:0.03634633135269815 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", - "[ 57/28 ⇜ (143/64 → 9/4) ⇝ 16/7 | note:75 gain:0.03634633135269815 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", - "[ 57/28 ⇜ (143/64 → 9/4) ⇝ 16/7 | note:79 gain:0.03634633135269815 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", - "[ 17/8 ⇜ (143/64 → 9/4) | note:F4 gain:0.3634633135269815 clip:1 s:piano release:0.1 pan:0.5509259259259259 ]", - "[ 17/8 ⇜ (143/64 → 9/4) | note:Ab4 gain:0.3634633135269815 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", - "[ 57/28 ⇜ (9/4 → 145/64) ⇝ 16/7 | note:70 gain:0.05165366864730169 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", - "[ 57/28 ⇜ (9/4 → 145/64) ⇝ 16/7 | note:74 gain:0.05165366864730169 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", - "[ 57/28 ⇜ (9/4 → 145/64) ⇝ 16/7 | note:75 gain:0.05165366864730169 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", - "[ 57/28 ⇜ (9/4 → 145/64) ⇝ 16/7 | note:79 gain:0.05165366864730169 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", - "[ 57/28 ⇜ (145/64 → 73/32) ⇝ 16/7 | note:70 gain:0.06247759065022568 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", - "[ 57/28 ⇜ (145/64 → 73/32) ⇝ 16/7 | note:74 gain:0.06247759065022568 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", - "[ 57/28 ⇜ (145/64 → 73/32) ⇝ 16/7 | note:75 gain:0.06247759065022568 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", - "[ 57/28 ⇜ (145/64 → 73/32) ⇝ 16/7 | note:79 gain:0.06247759065022568 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", - "[ 57/28 ⇜ (73/32 → 16/7) | note:70 gain:0.062477590650225824 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", - "[ 57/28 ⇜ (73/32 → 16/7) | note:74 gain:0.062477590650225824 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", - "[ 57/28 ⇜ (73/32 → 16/7) | note:75 gain:0.062477590650225824 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", - "[ 57/28 ⇜ (73/32 → 16/7) | note:79 gain:0.062477590650225824 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", - "[ (5/2 → 161/64) ⇝ 21/8 | note:C5 gain:0.5165366864730169 clip:1 s:piano release:0.1 pan:0.5833333333333333 ]", - "[ (5/2 → 161/64) ⇝ 21/8 | note:Eb5 gain:0.5165366864730169 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", - "[ (5/2 → 161/64) ⇝ 11/4 | note:Eb4 gain:0.25826834323650844 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", - "[ (5/2 → 161/64) ⇝ 11/4 | note:G4 gain:0.25826834323650844 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", - "[ (5/2 → 161/64) ⇝ 11/4 | note:Ab4 gain:0.25826834323650844 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", - "[ (5/2 → 161/64) ⇝ 11/4 | note:C5 gain:0.25826834323650844 clip:1 s:piano release:0.1 pan:0.5833333333333333 ]", - "[ (5/2 → 161/64) ⇝ 11/4 | note:F2 gain:0.5165366864730169 clip:1 s:piano release:0.1 pan:0.4398148148148148 ]", - "[ 5/2 ⇜ (161/64 → 81/32) ⇝ 21/8 | note:C5 gain:0.6247759065022568 clip:1 s:piano release:0.1 pan:0.5833333333333333 ]", - "[ 5/2 ⇜ (161/64 → 81/32) ⇝ 21/8 | note:Eb5 gain:0.6247759065022568 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", - "[ 5/2 ⇜ (161/64 → 81/32) ⇝ 11/4 | note:Eb4 gain:0.3123879532511284 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", - "[ 5/2 ⇜ (161/64 → 81/32) ⇝ 11/4 | note:G4 gain:0.3123879532511284 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", - "[ 5/2 ⇜ (161/64 → 81/32) ⇝ 11/4 | note:Ab4 gain:0.3123879532511284 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", - "[ 5/2 ⇜ (161/64 → 81/32) ⇝ 11/4 | note:C5 gain:0.3123879532511284 clip:1 s:piano release:0.1 pan:0.5833333333333333 ]", - "[ 5/2 ⇜ (161/64 → 81/32) ⇝ 11/4 | note:F2 gain:0.6247759065022568 clip:1 s:piano release:0.1 pan:0.4398148148148148 ]", - "[ 5/2 ⇜ (81/32 → 163/64) ⇝ 21/8 | note:C5 gain:0.6247759065022582 clip:1 s:piano release:0.1 pan:0.5833333333333333 ]", - "[ 5/2 ⇜ (81/32 → 163/64) ⇝ 21/8 | note:Eb5 gain:0.6247759065022582 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", - "[ 5/2 ⇜ (81/32 → 163/64) ⇝ 11/4 | note:Eb4 gain:0.3123879532511291 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", - "[ 5/2 ⇜ (81/32 → 163/64) ⇝ 11/4 | note:G4 gain:0.3123879532511291 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", - "[ 5/2 ⇜ (81/32 → 163/64) ⇝ 11/4 | note:Ab4 gain:0.3123879532511291 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", - "[ 5/2 ⇜ (81/32 → 163/64) ⇝ 11/4 | note:C5 gain:0.3123879532511291 clip:1 s:piano release:0.1 pan:0.5833333333333333 ]", - "[ 5/2 ⇜ (81/32 → 163/64) ⇝ 11/4 | note:F2 gain:0.6247759065022582 clip:1 s:piano release:0.1 pan:0.4398148148148148 ]", - "[ 5/2 ⇜ (163/64 → 41/16) ⇝ 21/8 | note:C5 gain:0.516536686473018 clip:1 s:piano release:0.1 pan:0.5833333333333333 ]", - "[ 5/2 ⇜ (163/64 → 41/16) ⇝ 21/8 | note:Eb5 gain:0.516536686473018 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", - "[ 5/2 ⇜ (163/64 → 41/16) ⇝ 11/4 | note:Eb4 gain:0.258268343236509 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", - "[ 5/2 ⇜ (163/64 → 41/16) ⇝ 11/4 | note:G4 gain:0.258268343236509 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", - "[ 5/2 ⇜ (163/64 → 41/16) ⇝ 11/4 | note:Ab4 gain:0.258268343236509 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", - "[ 5/2 ⇜ (163/64 → 41/16) ⇝ 11/4 | note:C5 gain:0.258268343236509 clip:1 s:piano release:0.1 pan:0.5833333333333333 ]", - "[ 5/2 ⇜ (163/64 → 41/16) ⇝ 11/4 | note:F2 gain:0.516536686473018 clip:1 s:piano release:0.1 pan:0.4398148148148148 ]", - "[ 5/2 ⇜ (41/16 → 165/64) ⇝ 21/8 | note:C5 gain:0.3634633135269826 clip:1 s:piano release:0.1 pan:0.5833333333333333 ]", - "[ 5/2 ⇜ (41/16 → 165/64) ⇝ 21/8 | note:Eb5 gain:0.3634633135269826 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", - "[ 5/2 ⇜ (41/16 → 165/64) ⇝ 11/4 | note:Eb4 gain:0.1817316567634913 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", - "[ 5/2 ⇜ (41/16 → 165/64) ⇝ 11/4 | note:G4 gain:0.1817316567634913 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", - "[ 5/2 ⇜ (41/16 → 165/64) ⇝ 11/4 | note:Ab4 gain:0.1817316567634913 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", - "[ 5/2 ⇜ (41/16 → 165/64) ⇝ 11/4 | note:C5 gain:0.1817316567634913 clip:1 s:piano release:0.1 pan:0.5833333333333333 ]", - "[ 5/2 ⇜ (41/16 → 165/64) ⇝ 11/4 | note:F2 gain:0.3634633135269826 clip:1 s:piano release:0.1 pan:0.4398148148148148 ]", - "[ 5/2 ⇜ (165/64 → 83/32) ⇝ 21/8 | note:C5 gain:0.2552240934977431 clip:1 s:piano release:0.1 pan:0.5833333333333333 ]", - "[ 5/2 ⇜ (165/64 → 83/32) ⇝ 21/8 | note:Eb5 gain:0.2552240934977431 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", - "[ 5/2 ⇜ (165/64 → 83/32) ⇝ 11/4 | note:Eb4 gain:0.12761204674887155 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", - "[ 5/2 ⇜ (165/64 → 83/32) ⇝ 11/4 | note:G4 gain:0.12761204674887155 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", - "[ 5/2 ⇜ (165/64 → 83/32) ⇝ 11/4 | note:Ab4 gain:0.12761204674887155 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", - "[ 5/2 ⇜ (165/64 → 83/32) ⇝ 11/4 | note:C5 gain:0.12761204674887155 clip:1 s:piano release:0.1 pan:0.5833333333333333 ]", - "[ 5/2 ⇜ (165/64 → 83/32) ⇝ 11/4 | note:F2 gain:0.2552240934977431 clip:1 s:piano release:0.1 pan:0.4398148148148148 ]", - "[ 5/2 ⇜ (83/32 → 167/64) ⇝ 21/8 | note:C5 gain:0.25522409349774206 clip:1 s:piano release:0.1 pan:0.5833333333333333 ]", - "[ 5/2 ⇜ (83/32 → 167/64) ⇝ 21/8 | note:Eb5 gain:0.25522409349774206 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", - "[ 5/2 ⇜ (83/32 → 167/64) ⇝ 11/4 | note:Eb4 gain:0.12761204674887103 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", - "[ 5/2 ⇜ (83/32 → 167/64) ⇝ 11/4 | note:G4 gain:0.12761204674887103 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", - "[ 5/2 ⇜ (83/32 → 167/64) ⇝ 11/4 | note:Ab4 gain:0.12761204674887103 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", - "[ 5/2 ⇜ (83/32 → 167/64) ⇝ 11/4 | note:C5 gain:0.12761204674887103 clip:1 s:piano release:0.1 pan:0.5833333333333333 ]", - "[ 5/2 ⇜ (83/32 → 167/64) ⇝ 11/4 | note:F2 gain:0.25522409349774206 clip:1 s:piano release:0.1 pan:0.4398148148148148 ]", - "[ 5/2 ⇜ (167/64 → 21/8) | note:C5 gain:0.36346331352698 clip:1 s:piano release:0.1 pan:0.5833333333333333 ]", - "[ 5/2 ⇜ (167/64 → 21/8) | note:Eb5 gain:0.36346331352698 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", - "[ 5/2 ⇜ (167/64 → 21/8) ⇝ 11/4 | note:Eb4 gain:0.18173165676349 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", - "[ 5/2 ⇜ (167/64 → 21/8) ⇝ 11/4 | note:G4 gain:0.18173165676349 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", - "[ 5/2 ⇜ (167/64 → 21/8) ⇝ 11/4 | note:Ab4 gain:0.18173165676349 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", - "[ 5/2 ⇜ (167/64 → 21/8) ⇝ 11/4 | note:C5 gain:0.18173165676349 clip:1 s:piano release:0.1 pan:0.5833333333333333 ]", - "[ 5/2 ⇜ (167/64 → 21/8) ⇝ 11/4 | note:F2 gain:0.36346331352698 clip:1 s:piano release:0.1 pan:0.4398148148148148 ]", - "[ 5/2 ⇜ (21/8 → 169/64) ⇝ 11/4 | note:Eb4 gain:0.25826834323650777 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", - "[ 5/2 ⇜ (21/8 → 169/64) ⇝ 11/4 | note:G4 gain:0.25826834323650777 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", - "[ 5/2 ⇜ (21/8 → 169/64) ⇝ 11/4 | note:Ab4 gain:0.25826834323650777 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", - "[ 5/2 ⇜ (21/8 → 169/64) ⇝ 11/4 | note:C5 gain:0.25826834323650777 clip:1 s:piano release:0.1 pan:0.5833333333333333 ]", - "[ 5/2 ⇜ (21/8 → 169/64) ⇝ 11/4 | note:F2 gain:0.5165366864730155 clip:1 s:piano release:0.1 pan:0.4398148148148148 ]", - "[ 5/2 ⇜ (169/64 → 85/32) ⇝ 11/4 | note:Eb4 gain:0.31238795325112806 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", - "[ 5/2 ⇜ (169/64 → 85/32) ⇝ 11/4 | note:G4 gain:0.31238795325112806 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", - "[ 5/2 ⇜ (169/64 → 85/32) ⇝ 11/4 | note:Ab4 gain:0.31238795325112806 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", - "[ 5/2 ⇜ (169/64 → 85/32) ⇝ 11/4 | note:C5 gain:0.31238795325112806 clip:1 s:piano release:0.1 pan:0.5833333333333333 ]", - "[ 5/2 ⇜ (169/64 → 85/32) ⇝ 11/4 | note:F2 gain:0.6247759065022561 clip:1 s:piano release:0.1 pan:0.4398148148148148 ]", - "[ 5/2 ⇜ (85/32 → 171/64) ⇝ 11/4 | note:Eb4 gain:0.31238795325112945 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", - "[ 5/2 ⇜ (85/32 → 171/64) ⇝ 11/4 | note:G4 gain:0.31238795325112945 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", - "[ 5/2 ⇜ (85/32 → 171/64) ⇝ 11/4 | note:Ab4 gain:0.31238795325112945 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", - "[ 5/2 ⇜ (85/32 → 171/64) ⇝ 11/4 | note:C5 gain:0.31238795325112945 clip:1 s:piano release:0.1 pan:0.5833333333333333 ]", - "[ 5/2 ⇜ (85/32 → 171/64) ⇝ 11/4 | note:F2 gain:0.6247759065022589 clip:1 s:piano release:0.1 pan:0.4398148148148148 ]", - "[ 5/2 ⇜ (171/64 → 43/16) ⇝ 11/4 | note:Eb4 gain:0.2582683432365084 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", - "[ 5/2 ⇜ (171/64 → 43/16) ⇝ 11/4 | note:G4 gain:0.2582683432365084 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", - "[ 5/2 ⇜ (171/64 → 43/16) ⇝ 11/4 | note:Ab4 gain:0.2582683432365084 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", - "[ 5/2 ⇜ (171/64 → 43/16) ⇝ 11/4 | note:C5 gain:0.2582683432365084 clip:1 s:piano release:0.1 pan:0.5833333333333333 ]", - "[ 5/2 ⇜ (171/64 → 43/16) ⇝ 11/4 | note:F2 gain:0.5165366864730168 clip:1 s:piano release:0.1 pan:0.4398148148148148 ]", - "[ 5/2 ⇜ (43/16 → 173/64) ⇝ 11/4 | note:Eb4 gain:0.18173165676349068 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", - "[ 5/2 ⇜ (43/16 → 173/64) ⇝ 11/4 | note:G4 gain:0.18173165676349068 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", - "[ 5/2 ⇜ (43/16 → 173/64) ⇝ 11/4 | note:Ab4 gain:0.18173165676349068 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", - "[ 5/2 ⇜ (43/16 → 173/64) ⇝ 11/4 | note:C5 gain:0.18173165676349068 clip:1 s:piano release:0.1 pan:0.5833333333333333 ]", - "[ 5/2 ⇜ (43/16 → 173/64) ⇝ 11/4 | note:F2 gain:0.36346331352698136 clip:1 s:piano release:0.1 pan:0.4398148148148148 ]", - "[ 5/2 ⇜ (173/64 → 87/32) ⇝ 11/4 | note:Eb4 gain:0.12761204674887128 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", - "[ 5/2 ⇜ (173/64 → 87/32) ⇝ 11/4 | note:G4 gain:0.12761204674887128 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", - "[ 5/2 ⇜ (173/64 → 87/32) ⇝ 11/4 | note:Ab4 gain:0.12761204674887128 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", - "[ 5/2 ⇜ (173/64 → 87/32) ⇝ 11/4 | note:C5 gain:0.12761204674887128 clip:1 s:piano release:0.1 pan:0.5833333333333333 ]", - "[ 5/2 ⇜ (173/64 → 87/32) ⇝ 11/4 | note:F2 gain:0.25522409349774255 clip:1 s:piano release:0.1 pan:0.4398148148148148 ]", - "[ 5/2 ⇜ (87/32 → 175/64) ⇝ 11/4 | note:Eb4 gain:0.12761204674887128 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", - "[ 5/2 ⇜ (87/32 → 175/64) ⇝ 11/4 | note:G4 gain:0.12761204674887128 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", - "[ 5/2 ⇜ (87/32 → 175/64) ⇝ 11/4 | note:Ab4 gain:0.12761204674887128 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", - "[ 5/2 ⇜ (87/32 → 175/64) ⇝ 11/4 | note:C5 gain:0.12761204674887128 clip:1 s:piano release:0.1 pan:0.5833333333333333 ]", - "[ 5/2 ⇜ (87/32 → 175/64) ⇝ 11/4 | note:F2 gain:0.25522409349774255 clip:1 s:piano release:0.1 pan:0.4398148148148148 ]", - "[ 5/2 ⇜ (175/64 → 11/4) | note:Eb4 gain:0.18173165676349068 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", - "[ 5/2 ⇜ (175/64 → 11/4) | note:G4 gain:0.18173165676349068 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", - "[ 5/2 ⇜ (175/64 → 11/4) | note:Ab4 gain:0.18173165676349068 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", - "[ 5/2 ⇜ (175/64 → 11/4) | note:C5 gain:0.18173165676349068 clip:1 s:piano release:0.1 pan:0.5833333333333333 ]", - "[ 5/2 ⇜ (175/64 → 11/4) | note:F2 gain:0.36346331352698136 clip:1 s:piano release:0.1 pan:0.4398148148148148 ]", - "[ (11/4 → 177/64) ⇝ 23/8 | note:F4 gain:0.5165366864730168 clip:1 s:piano release:0.1 pan:0.5509259259259259 ]", - "[ (11/4 → 177/64) ⇝ 23/8 | note:Ab4 gain:0.5165366864730168 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", - "[ 11/4 ⇜ (177/64 → 89/32) ⇝ 23/8 | note:F4 gain:0.6247759065022567 clip:1 s:piano release:0.1 pan:0.5509259259259259 ]", - "[ 11/4 ⇜ (177/64 → 89/32) ⇝ 23/8 | note:Ab4 gain:0.6247759065022567 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", - "[ 11/4 ⇜ (89/32 → 179/64) ⇝ 23/8 | note:F4 gain:0.6247759065022583 clip:1 s:piano release:0.1 pan:0.5509259259259259 ]", - "[ 11/4 ⇜ (89/32 → 179/64) ⇝ 23/8 | note:Ab4 gain:0.6247759065022583 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", - "[ (39/14 → 179/64) ⇝ 85/28 | note:75 gain:0.06247759065022584 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", - "[ (39/14 → 179/64) ⇝ 85/28 | note:79 gain:0.06247759065022584 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", - "[ (39/14 → 179/64) ⇝ 85/28 | note:80 gain:0.06247759065022584 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", - "[ (39/14 → 179/64) ⇝ 85/28 | note:84 gain:0.06247759065022584 clip:1 s:piano release:0.1 pan:0.6388888888888888 ]", - "[ 11/4 ⇜ (179/64 → 45/16) ⇝ 23/8 | note:F4 gain:0.5165366864730206 clip:1 s:piano release:0.1 pan:0.5509259259259259 ]", - "[ 11/4 ⇜ (179/64 → 45/16) ⇝ 23/8 | note:Ab4 gain:0.5165366864730206 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", - "[ 39/14 ⇜ (179/64 → 45/16) ⇝ 85/28 | note:75 gain:0.051653668647302066 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", - "[ 39/14 ⇜ (179/64 → 45/16) ⇝ 85/28 | note:79 gain:0.051653668647302066 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", - "[ 39/14 ⇜ (179/64 → 45/16) ⇝ 85/28 | note:80 gain:0.051653668647302066 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", - "[ 39/14 ⇜ (179/64 → 45/16) ⇝ 85/28 | note:84 gain:0.051653668647302066 clip:1 s:piano release:0.1 pan:0.6388888888888888 ]", - "[ 11/4 ⇜ (45/16 → 181/64) ⇝ 23/8 | note:F4 gain:0.3634633135269853 clip:1 s:piano release:0.1 pan:0.5509259259259259 ]", - "[ 11/4 ⇜ (45/16 → 181/64) ⇝ 23/8 | note:Ab4 gain:0.3634633135269853 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", - "[ 39/14 ⇜ (45/16 → 181/64) ⇝ 85/28 | note:75 gain:0.03634633135269853 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", - "[ 39/14 ⇜ (45/16 → 181/64) ⇝ 85/28 | note:79 gain:0.03634633135269853 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", - "[ 39/14 ⇜ (45/16 → 181/64) ⇝ 85/28 | note:80 gain:0.03634633135269853 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", - "[ 39/14 ⇜ (45/16 → 181/64) ⇝ 85/28 | note:84 gain:0.03634633135269853 clip:1 s:piano release:0.1 pan:0.6388888888888888 ]", - "[ 11/4 ⇜ (181/64 → 91/32) ⇝ 23/8 | note:F4 gain:0.25522409349774206 clip:1 s:piano release:0.1 pan:0.5509259259259259 ]", - "[ 11/4 ⇜ (181/64 → 91/32) ⇝ 23/8 | note:Ab4 gain:0.25522409349774206 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", - "[ 39/14 ⇜ (181/64 → 91/32) ⇝ 85/28 | note:75 gain:0.025522409349774206 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", - "[ 39/14 ⇜ (181/64 → 91/32) ⇝ 85/28 | note:79 gain:0.025522409349774206 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", - "[ 39/14 ⇜ (181/64 → 91/32) ⇝ 85/28 | note:80 gain:0.025522409349774206 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", - "[ 39/14 ⇜ (181/64 → 91/32) ⇝ 85/28 | note:84 gain:0.025522409349774206 clip:1 s:piano release:0.1 pan:0.6388888888888888 ]", - "[ 11/4 ⇜ (91/32 → 183/64) ⇝ 23/8 | note:F4 gain:0.2552240934977431 clip:1 s:piano release:0.1 pan:0.5509259259259259 ]", - "[ 11/4 ⇜ (91/32 → 183/64) ⇝ 23/8 | note:Ab4 gain:0.2552240934977431 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", - "[ 39/14 ⇜ (91/32 → 183/64) ⇝ 85/28 | note:75 gain:0.025522409349774313 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", - "[ 39/14 ⇜ (91/32 → 183/64) ⇝ 85/28 | note:79 gain:0.025522409349774313 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", - "[ 39/14 ⇜ (91/32 → 183/64) ⇝ 85/28 | note:80 gain:0.025522409349774313 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", - "[ 39/14 ⇜ (91/32 → 183/64) ⇝ 85/28 | note:84 gain:0.025522409349774313 clip:1 s:piano release:0.1 pan:0.6388888888888888 ]", - "[ 11/4 ⇜ (183/64 → 23/8) | note:F4 gain:0.3634633135269826 clip:1 s:piano release:0.1 pan:0.5509259259259259 ]", - "[ 11/4 ⇜ (183/64 → 23/8) | note:Ab4 gain:0.3634633135269826 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", - "[ 39/14 ⇜ (183/64 → 23/8) ⇝ 85/28 | note:75 gain:0.03634633135269826 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", - "[ 39/14 ⇜ (183/64 → 23/8) ⇝ 85/28 | note:79 gain:0.03634633135269826 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", - "[ 39/14 ⇜ (183/64 → 23/8) ⇝ 85/28 | note:80 gain:0.03634633135269826 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", - "[ 39/14 ⇜ (183/64 → 23/8) ⇝ 85/28 | note:84 gain:0.03634633135269826 clip:1 s:piano release:0.1 pan:0.6388888888888888 ]", - "[ 39/14 ⇜ (23/8 → 185/64) ⇝ 85/28 | note:75 gain:0.0516536686473018 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", - "[ 39/14 ⇜ (23/8 → 185/64) ⇝ 85/28 | note:79 gain:0.0516536686473018 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", - "[ 39/14 ⇜ (23/8 → 185/64) ⇝ 85/28 | note:80 gain:0.0516536686473018 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", - "[ 39/14 ⇜ (23/8 → 185/64) ⇝ 85/28 | note:84 gain:0.0516536686473018 clip:1 s:piano release:0.1 pan:0.6388888888888888 ]", - "[ 39/14 ⇜ (185/64 → 93/32) ⇝ 85/28 | note:75 gain:0.06247759065022571 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", - "[ 39/14 ⇜ (185/64 → 93/32) ⇝ 85/28 | note:79 gain:0.06247759065022571 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", - "[ 39/14 ⇜ (185/64 → 93/32) ⇝ 85/28 | note:80 gain:0.06247759065022571 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", - "[ 39/14 ⇜ (185/64 → 93/32) ⇝ 85/28 | note:84 gain:0.06247759065022571 clip:1 s:piano release:0.1 pan:0.6388888888888888 ]", - "[ 39/14 ⇜ (93/32 → 187/64) ⇝ 85/28 | note:75 gain:0.06247759065022578 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", - "[ 39/14 ⇜ (93/32 → 187/64) ⇝ 85/28 | note:79 gain:0.06247759065022578 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", - "[ 39/14 ⇜ (93/32 → 187/64) ⇝ 85/28 | note:80 gain:0.06247759065022578 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", - "[ 39/14 ⇜ (93/32 → 187/64) ⇝ 85/28 | note:84 gain:0.06247759065022578 clip:1 s:piano release:0.1 pan:0.6388888888888888 ]", - "[ 39/14 ⇜ (187/64 → 47/16) ⇝ 85/28 | note:75 gain:0.05165366864730195 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", - "[ 39/14 ⇜ (187/64 → 47/16) ⇝ 85/28 | note:79 gain:0.05165366864730195 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", - "[ 39/14 ⇜ (187/64 → 47/16) ⇝ 85/28 | note:80 gain:0.05165366864730195 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", - "[ 39/14 ⇜ (187/64 → 47/16) ⇝ 85/28 | note:84 gain:0.05165366864730195 clip:1 s:piano release:0.1 pan:0.6388888888888888 ]", - "[ 39/14 ⇜ (47/16 → 189/64) ⇝ 85/28 | note:75 gain:0.0363463313526984 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", - "[ 39/14 ⇜ (47/16 → 189/64) ⇝ 85/28 | note:79 gain:0.0363463313526984 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", - "[ 39/14 ⇜ (47/16 → 189/64) ⇝ 85/28 | note:80 gain:0.0363463313526984 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", - "[ 39/14 ⇜ (47/16 → 189/64) ⇝ 85/28 | note:84 gain:0.0363463313526984 clip:1 s:piano release:0.1 pan:0.6388888888888888 ]", - "[ 39/14 ⇜ (189/64 → 95/32) ⇝ 85/28 | note:75 gain:0.02552240934977437 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", - "[ 39/14 ⇜ (189/64 → 95/32) ⇝ 85/28 | note:79 gain:0.02552240934977437 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", - "[ 39/14 ⇜ (189/64 → 95/32) ⇝ 85/28 | note:80 gain:0.02552240934977437 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", - "[ 39/14 ⇜ (189/64 → 95/32) ⇝ 85/28 | note:84 gain:0.02552240934977437 clip:1 s:piano release:0.1 pan:0.6388888888888888 ]", - "[ 39/14 ⇜ (95/32 → 191/64) ⇝ 85/28 | note:75 gain:0.02552240934977414 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", - "[ 39/14 ⇜ (95/32 → 191/64) ⇝ 85/28 | note:79 gain:0.02552240934977414 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", - "[ 39/14 ⇜ (95/32 → 191/64) ⇝ 85/28 | note:80 gain:0.02552240934977414 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", - "[ 39/14 ⇜ (95/32 → 191/64) ⇝ 85/28 | note:84 gain:0.02552240934977414 clip:1 s:piano release:0.1 pan:0.6388888888888888 ]", - "[ 39/14 ⇜ (191/64 → 3/1) ⇝ 85/28 | note:75 gain:0.03634633135269786 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", - "[ 39/14 ⇜ (191/64 → 3/1) ⇝ 85/28 | note:79 gain:0.03634633135269786 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", - "[ 39/14 ⇜ (191/64 → 3/1) ⇝ 85/28 | note:80 gain:0.03634633135269786 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", - "[ 39/14 ⇜ (191/64 → 3/1) ⇝ 85/28 | note:84 gain:0.03634633135269786 clip:1 s:piano release:0.1 pan:0.6388888888888888 ]", - "[ 39/14 ⇜ (3/1 → 193/64) ⇝ 85/28 | note:75 gain:0.05165366864730192 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", - "[ 39/14 ⇜ (3/1 → 193/64) ⇝ 85/28 | note:79 gain:0.05165366864730192 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", - "[ 39/14 ⇜ (3/1 → 193/64) ⇝ 85/28 | note:80 gain:0.05165366864730192 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", - "[ 39/14 ⇜ (3/1 → 193/64) ⇝ 85/28 | note:84 gain:0.05165366864730192 clip:1 s:piano release:0.1 pan:0.6388888888888888 ]", - "[ (3/1 → 193/64) ⇝ 13/4 | note:F2 gain:0.5165366864730192 clip:1 s:piano release:0.1 pan:0.4398148148148148 ]", - "[ 39/14 ⇜ (193/64 → 97/32) ⇝ 85/28 | note:75 gain:0.06247759065022577 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", - "[ 39/14 ⇜ (193/64 → 97/32) ⇝ 85/28 | note:79 gain:0.06247759065022577 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", - "[ 39/14 ⇜ (193/64 → 97/32) ⇝ 85/28 | note:80 gain:0.06247759065022577 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", - "[ 39/14 ⇜ (193/64 → 97/32) ⇝ 85/28 | note:84 gain:0.06247759065022577 clip:1 s:piano release:0.1 pan:0.6388888888888888 ]", - "[ 3/1 ⇜ (193/64 → 97/32) ⇝ 13/4 | note:F2 gain:0.6247759065022577 clip:1 s:piano release:0.1 pan:0.4398148148148148 ]", - "[ 39/14 ⇜ (97/32 → 85/28) | note:75 gain:0.062477590650225734 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", - "[ 39/14 ⇜ (97/32 → 85/28) | note:79 gain:0.062477590650225734 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", - "[ 39/14 ⇜ (97/32 → 85/28) | note:80 gain:0.062477590650225734 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", - "[ 39/14 ⇜ (97/32 → 85/28) | note:84 gain:0.062477590650225734 clip:1 s:piano release:0.1 pan:0.6388888888888888 ]", - "[ 3/1 ⇜ (97/32 → 195/64) ⇝ 13/4 | note:F2 gain:0.6247759065022573 clip:1 s:piano release:0.1 pan:0.4398148148148148 ]", - "[ 3/1 ⇜ (195/64 → 49/16) ⇝ 13/4 | note:F2 gain:0.5165366864730182 clip:1 s:piano release:0.1 pan:0.4398148148148148 ]", - "[ 3/1 ⇜ (49/16 → 197/64) ⇝ 13/4 | note:F2 gain:0.36346331352698275 clip:1 s:piano release:0.1 pan:0.4398148148148148 ]", - "[ 3/1 ⇜ (197/64 → 99/32) ⇝ 13/4 | note:F2 gain:0.25522409349774317 clip:1 s:piano release:0.1 pan:0.4398148148148148 ]", - "[ 3/1 ⇜ (99/32 → 199/64) ⇝ 13/4 | note:F2 gain:0.25522409349774194 clip:1 s:piano release:0.1 pan:0.4398148148148148 ]", - "[ 3/1 ⇜ (199/64 → 25/8) ⇝ 13/4 | note:F2 gain:0.36346331352697986 clip:1 s:piano release:0.1 pan:0.4398148148148148 ]", - "[ 3/1 ⇜ (25/8 → 201/64) ⇝ 13/4 | note:F2 gain:0.5165366864730153 clip:1 s:piano release:0.1 pan:0.4398148148148148 ]", - "[ (25/8 → 201/64) ⇝ 13/4 | note:F4 gain:0.5165366864730153 clip:1 s:piano release:0.1 pan:0.5509259259259259 ]", - "[ (25/8 → 201/64) ⇝ 13/4 | note:Ab4 gain:0.5165366864730153 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", - "[ 3/1 ⇜ (201/64 → 101/32) ⇝ 13/4 | note:F2 gain:0.624775906502256 clip:1 s:piano release:0.1 pan:0.4398148148148148 ]", - "[ 25/8 ⇜ (201/64 → 101/32) ⇝ 13/4 | note:F4 gain:0.624775906502256 clip:1 s:piano release:0.1 pan:0.5509259259259259 ]", - "[ 25/8 ⇜ (201/64 → 101/32) ⇝ 13/4 | note:Ab4 gain:0.624775906502256 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", - "[ 3/1 ⇜ (101/32 → 203/64) ⇝ 13/4 | note:F2 gain:0.6247759065022589 clip:1 s:piano release:0.1 pan:0.4398148148148148 ]", - "[ 25/8 ⇜ (101/32 → 203/64) ⇝ 13/4 | note:F4 gain:0.6247759065022589 clip:1 s:piano release:0.1 pan:0.5509259259259259 ]", - "[ 25/8 ⇜ (101/32 → 203/64) ⇝ 13/4 | note:Ab4 gain:0.6247759065022589 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", - "[ 3/1 ⇜ (203/64 → 51/16) ⇝ 13/4 | note:F2 gain:0.5165366864730169 clip:1 s:piano release:0.1 pan:0.4398148148148148 ]", - "[ 25/8 ⇜ (203/64 → 51/16) ⇝ 13/4 | note:F4 gain:0.5165366864730169 clip:1 s:piano release:0.1 pan:0.5509259259259259 ]", - "[ 25/8 ⇜ (203/64 → 51/16) ⇝ 13/4 | note:Ab4 gain:0.5165366864730169 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", - "[ 3/1 ⇜ (51/16 → 205/64) ⇝ 13/4 | note:F2 gain:0.3634633135269815 clip:1 s:piano release:0.1 pan:0.4398148148148148 ]", - "[ 25/8 ⇜ (51/16 → 205/64) ⇝ 13/4 | note:F4 gain:0.3634633135269815 clip:1 s:piano release:0.1 pan:0.5509259259259259 ]", - "[ 25/8 ⇜ (51/16 → 205/64) ⇝ 13/4 | note:Ab4 gain:0.3634633135269815 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", - "[ 3/1 ⇜ (205/64 → 103/32) ⇝ 13/4 | note:F2 gain:0.2552240934977426 clip:1 s:piano release:0.1 pan:0.4398148148148148 ]", - "[ 25/8 ⇜ (205/64 → 103/32) ⇝ 13/4 | note:F4 gain:0.2552240934977426 clip:1 s:piano release:0.1 pan:0.5509259259259259 ]", - "[ 25/8 ⇜ (205/64 → 103/32) ⇝ 13/4 | note:Ab4 gain:0.2552240934977426 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", - "[ 3/1 ⇜ (103/32 → 207/64) ⇝ 13/4 | note:F2 gain:0.2552240934977425 clip:1 s:piano release:0.1 pan:0.4398148148148148 ]", - "[ 25/8 ⇜ (103/32 → 207/64) ⇝ 13/4 | note:F4 gain:0.2552240934977425 clip:1 s:piano release:0.1 pan:0.5509259259259259 ]", - "[ 25/8 ⇜ (103/32 → 207/64) ⇝ 13/4 | note:Ab4 gain:0.2552240934977425 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", - "[ 3/1 ⇜ (207/64 → 13/4) | note:F2 gain:0.36346331352698114 clip:1 s:piano release:0.1 pan:0.4398148148148148 ]", - "[ 25/8 ⇜ (207/64 → 13/4) | note:F4 gain:0.36346331352698114 clip:1 s:piano release:0.1 pan:0.5509259259259259 ]", - "[ 25/8 ⇜ (207/64 → 13/4) | note:Ab4 gain:0.36346331352698114 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", - "[ (13/4 → 209/64) ⇝ 7/2 | note:Eb4 gain:0.25826834323650827 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", - "[ (13/4 → 209/64) ⇝ 7/2 | note:G4 gain:0.25826834323650827 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", - "[ (13/4 → 209/64) ⇝ 7/2 | note:Ab4 gain:0.25826834323650827 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", - "[ (13/4 → 209/64) ⇝ 7/2 | note:C5 gain:0.25826834323650827 clip:1 s:piano release:0.1 pan:0.5833333333333333 ]", - "[ 13/4 ⇜ (209/64 → 105/32) ⇝ 7/2 | note:Eb4 gain:0.3123879532511283 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", - "[ 13/4 ⇜ (209/64 → 105/32) ⇝ 7/2 | note:G4 gain:0.3123879532511283 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", - "[ 13/4 ⇜ (209/64 → 105/32) ⇝ 7/2 | note:Ab4 gain:0.3123879532511283 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", - "[ 13/4 ⇜ (209/64 → 105/32) ⇝ 7/2 | note:C5 gain:0.3123879532511283 clip:1 s:piano release:0.1 pan:0.5833333333333333 ]", - "[ 13/4 ⇜ (105/32 → 211/64) ⇝ 7/2 | note:Eb4 gain:0.31238795325112917 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", - "[ 13/4 ⇜ (105/32 → 211/64) ⇝ 7/2 | note:G4 gain:0.31238795325112917 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", - "[ 13/4 ⇜ (105/32 → 211/64) ⇝ 7/2 | note:Ab4 gain:0.31238795325112917 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", - "[ 13/4 ⇜ (105/32 → 211/64) ⇝ 7/2 | note:C5 gain:0.31238795325112917 clip:1 s:piano release:0.1 pan:0.5833333333333333 ]", - "[ 13/4 ⇜ (211/64 → 53/16) ⇝ 7/2 | note:Eb4 gain:0.25826834323651043 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", - "[ 13/4 ⇜ (211/64 → 53/16) ⇝ 7/2 | note:G4 gain:0.25826834323651043 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", - "[ 13/4 ⇜ (211/64 → 53/16) ⇝ 7/2 | note:Ab4 gain:0.25826834323651043 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", - "[ 13/4 ⇜ (211/64 → 53/16) ⇝ 7/2 | note:C5 gain:0.25826834323651043 clip:1 s:piano release:0.1 pan:0.5833333333333333 ]", - "[ 13/4 ⇜ (53/16 → 213/64) ⇝ 7/2 | note:Eb4 gain:0.18173165676349273 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", - "[ 13/4 ⇜ (53/16 → 213/64) ⇝ 7/2 | note:G4 gain:0.18173165676349273 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", - "[ 13/4 ⇜ (53/16 → 213/64) ⇝ 7/2 | note:Ab4 gain:0.18173165676349273 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", - "[ 13/4 ⇜ (53/16 → 213/64) ⇝ 7/2 | note:C5 gain:0.18173165676349273 clip:1 s:piano release:0.1 pan:0.5833333333333333 ]", - "[ 13/4 ⇜ (213/64 → 107/32) ⇝ 7/2 | note:Eb4 gain:0.12761204674887106 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", - "[ 13/4 ⇜ (213/64 → 107/32) ⇝ 7/2 | note:G4 gain:0.12761204674887106 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", - "[ 13/4 ⇜ (213/64 → 107/32) ⇝ 7/2 | note:Ab4 gain:0.12761204674887106 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", - "[ 13/4 ⇜ (213/64 → 107/32) ⇝ 7/2 | note:C5 gain:0.12761204674887106 clip:1 s:piano release:0.1 pan:0.5833333333333333 ]", - "[ 13/4 ⇜ (107/32 → 215/64) ⇝ 7/2 | note:Eb4 gain:0.1276120467488715 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", - "[ 13/4 ⇜ (107/32 → 215/64) ⇝ 7/2 | note:G4 gain:0.1276120467488715 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", - "[ 13/4 ⇜ (107/32 → 215/64) ⇝ 7/2 | note:Ab4 gain:0.1276120467488715 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", - "[ 13/4 ⇜ (107/32 → 215/64) ⇝ 7/2 | note:C5 gain:0.1276120467488715 clip:1 s:piano release:0.1 pan:0.5833333333333333 ]", - "[ 13/4 ⇜ (215/64 → 27/8) ⇝ 7/2 | note:Eb4 gain:0.1817316567634912 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", - "[ 13/4 ⇜ (215/64 → 27/8) ⇝ 7/2 | note:G4 gain:0.1817316567634912 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", - "[ 13/4 ⇜ (215/64 → 27/8) ⇝ 7/2 | note:Ab4 gain:0.1817316567634912 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", - "[ 13/4 ⇜ (215/64 → 27/8) ⇝ 7/2 | note:C5 gain:0.1817316567634912 clip:1 s:piano release:0.1 pan:0.5833333333333333 ]", - "[ 13/4 ⇜ (27/8 → 217/64) ⇝ 7/2 | note:Eb4 gain:0.2582683432365089 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", - "[ 13/4 ⇜ (27/8 → 217/64) ⇝ 7/2 | note:G4 gain:0.2582683432365089 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", - "[ 13/4 ⇜ (27/8 → 217/64) ⇝ 7/2 | note:Ab4 gain:0.2582683432365089 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", - "[ 13/4 ⇜ (27/8 → 217/64) ⇝ 7/2 | note:C5 gain:0.2582683432365089 clip:1 s:piano release:0.1 pan:0.5833333333333333 ]", - "[ 13/4 ⇜ (217/64 → 109/32) ⇝ 7/2 | note:Eb4 gain:0.31238795325112856 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", - "[ 13/4 ⇜ (217/64 → 109/32) ⇝ 7/2 | note:G4 gain:0.31238795325112856 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", - "[ 13/4 ⇜ (217/64 → 109/32) ⇝ 7/2 | note:Ab4 gain:0.31238795325112856 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", - "[ 13/4 ⇜ (217/64 → 109/32) ⇝ 7/2 | note:C5 gain:0.31238795325112856 clip:1 s:piano release:0.1 pan:0.5833333333333333 ]", - "[ 13/4 ⇜ (109/32 → 219/64) ⇝ 7/2 | note:Eb4 gain:0.3123879532511289 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", - "[ 13/4 ⇜ (109/32 → 219/64) ⇝ 7/2 | note:G4 gain:0.3123879532511289 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", - "[ 13/4 ⇜ (109/32 → 219/64) ⇝ 7/2 | note:Ab4 gain:0.3123879532511289 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", - "[ 13/4 ⇜ (109/32 → 219/64) ⇝ 7/2 | note:C5 gain:0.3123879532511289 clip:1 s:piano release:0.1 pan:0.5833333333333333 ]", - "[ 13/4 ⇜ (219/64 → 55/16) ⇝ 7/2 | note:Eb4 gain:0.25826834323650977 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", - "[ 13/4 ⇜ (219/64 → 55/16) ⇝ 7/2 | note:G4 gain:0.25826834323650977 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", - "[ 13/4 ⇜ (219/64 → 55/16) ⇝ 7/2 | note:Ab4 gain:0.25826834323650977 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", - "[ 13/4 ⇜ (219/64 → 55/16) ⇝ 7/2 | note:C5 gain:0.25826834323650977 clip:1 s:piano release:0.1 pan:0.5833333333333333 ]", - "[ 13/4 ⇜ (55/16 → 221/64) ⇝ 7/2 | note:Eb4 gain:0.18173165676349212 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", - "[ 13/4 ⇜ (55/16 → 221/64) ⇝ 7/2 | note:G4 gain:0.18173165676349212 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", - "[ 13/4 ⇜ (55/16 → 221/64) ⇝ 7/2 | note:Ab4 gain:0.18173165676349212 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", - "[ 13/4 ⇜ (55/16 → 221/64) ⇝ 7/2 | note:C5 gain:0.18173165676349212 clip:1 s:piano release:0.1 pan:0.5833333333333333 ]", - "[ 13/4 ⇜ (221/64 → 111/32) ⇝ 7/2 | note:Eb4 gain:0.12761204674887186 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", - "[ 13/4 ⇜ (221/64 → 111/32) ⇝ 7/2 | note:G4 gain:0.12761204674887186 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", - "[ 13/4 ⇜ (221/64 → 111/32) ⇝ 7/2 | note:Ab4 gain:0.12761204674887186 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", - "[ 13/4 ⇜ (221/64 → 111/32) ⇝ 7/2 | note:C5 gain:0.12761204674887186 clip:1 s:piano release:0.1 pan:0.5833333333333333 ]", - "[ 13/4 ⇜ (111/32 → 223/64) ⇝ 7/2 | note:Eb4 gain:0.12761204674887067 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", - "[ 13/4 ⇜ (111/32 → 223/64) ⇝ 7/2 | note:G4 gain:0.12761204674887067 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", - "[ 13/4 ⇜ (111/32 → 223/64) ⇝ 7/2 | note:Ab4 gain:0.12761204674887067 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", - "[ 13/4 ⇜ (111/32 → 223/64) ⇝ 7/2 | note:C5 gain:0.12761204674887067 clip:1 s:piano release:0.1 pan:0.5833333333333333 ]", - "[ 13/4 ⇜ (223/64 → 7/2) | note:Eb4 gain:0.1817316567634892 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", - "[ 13/4 ⇜ (223/64 → 7/2) | note:G4 gain:0.1817316567634892 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", - "[ 13/4 ⇜ (223/64 → 7/2) | note:Ab4 gain:0.1817316567634892 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", - "[ 13/4 ⇜ (223/64 → 7/2) | note:C5 gain:0.1817316567634892 clip:1 s:piano release:0.1 pan:0.5833333333333333 ]", - "[ (7/2 → 225/64) ⇝ 29/8 | note:C5 gain:0.5165366864730191 clip:1 s:piano release:0.1 pan:0.5833333333333333 ]", - "[ (7/2 → 225/64) ⇝ 29/8 | note:Eb5 gain:0.5165366864730191 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", - "[ (7/2 → 225/64) ⇝ 15/4 | note:F2 gain:0.5165366864730191 clip:1 s:piano release:0.1 pan:0.4398148148148148 ]", - "[ 7/2 ⇜ (225/64 → 113/32) ⇝ 29/8 | note:C5 gain:0.6247759065022577 clip:1 s:piano release:0.1 pan:0.5833333333333333 ]", - "[ 7/2 ⇜ (225/64 → 113/32) ⇝ 29/8 | note:Eb5 gain:0.6247759065022577 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", - "[ 7/2 ⇜ (225/64 → 113/32) ⇝ 15/4 | note:F2 gain:0.6247759065022577 clip:1 s:piano release:0.1 pan:0.4398148148148148 ]", - "[ 7/2 ⇜ (113/32 → 227/64) ⇝ 29/8 | note:C5 gain:0.6247759065022573 clip:1 s:piano release:0.1 pan:0.5833333333333333 ]", - "[ 7/2 ⇜ (113/32 → 227/64) ⇝ 29/8 | note:Eb5 gain:0.6247759065022573 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", - "[ 7/2 ⇜ (113/32 → 227/64) ⇝ 15/4 | note:F2 gain:0.6247759065022573 clip:1 s:piano release:0.1 pan:0.4398148148148148 ]", - "[ (99/28 → 227/64) ⇝ 53/14 | note:75 gain:0.062477590650225734 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", - "[ (99/28 → 227/64) ⇝ 53/14 | note:79 gain:0.062477590650225734 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", - "[ (99/28 → 227/64) ⇝ 53/14 | note:80 gain:0.062477590650225734 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", - "[ (99/28 → 227/64) ⇝ 53/14 | note:84 gain:0.062477590650225734 clip:1 s:piano release:0.1 pan:0.6388888888888888 ]", - "[ 7/2 ⇜ (227/64 → 57/16) ⇝ 29/8 | note:C5 gain:0.5165366864730183 clip:1 s:piano release:0.1 pan:0.5833333333333333 ]", - "[ 7/2 ⇜ (227/64 → 57/16) ⇝ 29/8 | note:Eb5 gain:0.5165366864730183 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", - "[ 7/2 ⇜ (227/64 → 57/16) ⇝ 15/4 | note:F2 gain:0.5165366864730183 clip:1 s:piano release:0.1 pan:0.4398148148148148 ]", - "[ 99/28 ⇜ (227/64 → 57/16) ⇝ 53/14 | note:75 gain:0.05165366864730184 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", - "[ 99/28 ⇜ (227/64 → 57/16) ⇝ 53/14 | note:79 gain:0.05165366864730184 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", - "[ 99/28 ⇜ (227/64 → 57/16) ⇝ 53/14 | note:80 gain:0.05165366864730184 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", - "[ 99/28 ⇜ (227/64 → 57/16) ⇝ 53/14 | note:84 gain:0.05165366864730184 clip:1 s:piano release:0.1 pan:0.6388888888888888 ]", - "[ 7/2 ⇜ (57/16 → 229/64) ⇝ 29/8 | note:C5 gain:0.3634633135269829 clip:1 s:piano release:0.1 pan:0.5833333333333333 ]", - "[ 7/2 ⇜ (57/16 → 229/64) ⇝ 29/8 | note:Eb5 gain:0.3634633135269829 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", - "[ 7/2 ⇜ (57/16 → 229/64) ⇝ 15/4 | note:F2 gain:0.3634633135269829 clip:1 s:piano release:0.1 pan:0.4398148148148148 ]", - "[ 99/28 ⇜ (57/16 → 229/64) ⇝ 53/14 | note:75 gain:0.03634633135269829 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", - "[ 99/28 ⇜ (57/16 → 229/64) ⇝ 53/14 | note:79 gain:0.03634633135269829 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", - "[ 99/28 ⇜ (57/16 → 229/64) ⇝ 53/14 | note:80 gain:0.03634633135269829 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", - "[ 99/28 ⇜ (57/16 → 229/64) ⇝ 53/14 | note:84 gain:0.03634633135269829 clip:1 s:piano release:0.1 pan:0.6388888888888888 ]", - "[ 7/2 ⇜ (229/64 → 115/32) ⇝ 29/8 | note:C5 gain:0.2552240934977432 clip:1 s:piano release:0.1 pan:0.5833333333333333 ]", - "[ 7/2 ⇜ (229/64 → 115/32) ⇝ 29/8 | note:Eb5 gain:0.2552240934977432 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", - "[ 7/2 ⇜ (229/64 → 115/32) ⇝ 15/4 | note:F2 gain:0.2552240934977432 clip:1 s:piano release:0.1 pan:0.4398148148148148 ]", - "[ 99/28 ⇜ (229/64 → 115/32) ⇝ 53/14 | note:75 gain:0.025522409349774323 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", - "[ 99/28 ⇜ (229/64 → 115/32) ⇝ 53/14 | note:79 gain:0.025522409349774323 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", - "[ 99/28 ⇜ (229/64 → 115/32) ⇝ 53/14 | note:80 gain:0.025522409349774323 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", - "[ 99/28 ⇜ (229/64 → 115/32) ⇝ 53/14 | note:84 gain:0.025522409349774323 clip:1 s:piano release:0.1 pan:0.6388888888888888 ]", - "[ 7/2 ⇜ (115/32 → 231/64) ⇝ 29/8 | note:C5 gain:0.25522409349774183 clip:1 s:piano release:0.1 pan:0.5833333333333333 ]", - "[ 7/2 ⇜ (115/32 → 231/64) ⇝ 29/8 | note:Eb5 gain:0.25522409349774183 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", - "[ 7/2 ⇜ (115/32 → 231/64) ⇝ 15/4 | note:F2 gain:0.25522409349774183 clip:1 s:piano release:0.1 pan:0.4398148148148148 ]", - "[ 99/28 ⇜ (115/32 → 231/64) ⇝ 53/14 | note:75 gain:0.025522409349774185 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", - "[ 99/28 ⇜ (115/32 → 231/64) ⇝ 53/14 | note:79 gain:0.025522409349774185 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", - "[ 99/28 ⇜ (115/32 → 231/64) ⇝ 53/14 | note:80 gain:0.025522409349774185 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", - "[ 99/28 ⇜ (115/32 → 231/64) ⇝ 53/14 | note:84 gain:0.025522409349774185 clip:1 s:piano release:0.1 pan:0.6388888888888888 ]", - "[ 7/2 ⇜ (231/64 → 29/8) | note:C5 gain:0.3634633135269797 clip:1 s:piano release:0.1 pan:0.5833333333333333 ]", - "[ 7/2 ⇜ (231/64 → 29/8) | note:Eb5 gain:0.3634633135269797 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", - "[ 7/2 ⇜ (231/64 → 29/8) ⇝ 15/4 | note:F2 gain:0.3634633135269797 clip:1 s:piano release:0.1 pan:0.4398148148148148 ]", - "[ 99/28 ⇜ (231/64 → 29/8) ⇝ 53/14 | note:75 gain:0.03634633135269797 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", - "[ 99/28 ⇜ (231/64 → 29/8) ⇝ 53/14 | note:79 gain:0.03634633135269797 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", - "[ 99/28 ⇜ (231/64 → 29/8) ⇝ 53/14 | note:80 gain:0.03634633135269797 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", - "[ 99/28 ⇜ (231/64 → 29/8) ⇝ 53/14 | note:84 gain:0.03634633135269797 clip:1 s:piano release:0.1 pan:0.6388888888888888 ]", - "[ 7/2 ⇜ (29/8 → 233/64) ⇝ 15/4 | note:F2 gain:0.5165366864730151 clip:1 s:piano release:0.1 pan:0.4398148148148148 ]", - "[ 99/28 ⇜ (29/8 → 233/64) ⇝ 53/14 | note:75 gain:0.05165366864730151 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", - "[ 99/28 ⇜ (29/8 → 233/64) ⇝ 53/14 | note:79 gain:0.05165366864730151 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", - "[ 99/28 ⇜ (29/8 → 233/64) ⇝ 53/14 | note:80 gain:0.05165366864730151 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", - "[ 99/28 ⇜ (29/8 → 233/64) ⇝ 53/14 | note:84 gain:0.05165366864730151 clip:1 s:piano release:0.1 pan:0.6388888888888888 ]", - "[ 7/2 ⇜ (233/64 → 117/32) ⇝ 15/4 | note:F2 gain:0.624775906502256 clip:1 s:piano release:0.1 pan:0.4398148148148148 ]", - "[ 99/28 ⇜ (233/64 → 117/32) ⇝ 53/14 | note:75 gain:0.0624775906502256 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", - "[ 99/28 ⇜ (233/64 → 117/32) ⇝ 53/14 | note:79 gain:0.0624775906502256 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", - "[ 99/28 ⇜ (233/64 → 117/32) ⇝ 53/14 | note:80 gain:0.0624775906502256 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", - "[ 99/28 ⇜ (233/64 → 117/32) ⇝ 53/14 | note:84 gain:0.0624775906502256 clip:1 s:piano release:0.1 pan:0.6388888888888888 ]", - "[ 7/2 ⇜ (117/32 → 235/64) ⇝ 15/4 | note:F2 gain:0.624775906502259 clip:1 s:piano release:0.1 pan:0.4398148148148148 ]", - "[ 99/28 ⇜ (117/32 → 235/64) ⇝ 53/14 | note:75 gain:0.0624775906502259 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", - "[ 99/28 ⇜ (117/32 → 235/64) ⇝ 53/14 | note:79 gain:0.0624775906502259 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", - "[ 99/28 ⇜ (117/32 → 235/64) ⇝ 53/14 | note:80 gain:0.0624775906502259 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", - "[ 99/28 ⇜ (117/32 → 235/64) ⇝ 53/14 | note:84 gain:0.0624775906502259 clip:1 s:piano release:0.1 pan:0.6388888888888888 ]", - "[ 7/2 ⇜ (235/64 → 59/16) ⇝ 15/4 | note:F2 gain:0.5165366864730171 clip:1 s:piano release:0.1 pan:0.4398148148148148 ]", - "[ 99/28 ⇜ (235/64 → 59/16) ⇝ 53/14 | note:75 gain:0.05165366864730171 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", - "[ 99/28 ⇜ (235/64 → 59/16) ⇝ 53/14 | note:79 gain:0.05165366864730171 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", - "[ 99/28 ⇜ (235/64 → 59/16) ⇝ 53/14 | note:80 gain:0.05165366864730171 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", - "[ 99/28 ⇜ (235/64 → 59/16) ⇝ 53/14 | note:84 gain:0.05165366864730171 clip:1 s:piano release:0.1 pan:0.6388888888888888 ]", - "[ 7/2 ⇜ (59/16 → 237/64) ⇝ 15/4 | note:F2 gain:0.3634633135269817 clip:1 s:piano release:0.1 pan:0.4398148148148148 ]", - "[ 99/28 ⇜ (59/16 → 237/64) ⇝ 53/14 | note:75 gain:0.03634633135269817 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", - "[ 99/28 ⇜ (59/16 → 237/64) ⇝ 53/14 | note:79 gain:0.03634633135269817 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", - "[ 99/28 ⇜ (59/16 → 237/64) ⇝ 53/14 | note:80 gain:0.03634633135269817 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", - "[ 99/28 ⇜ (59/16 → 237/64) ⇝ 53/14 | note:84 gain:0.03634633135269817 clip:1 s:piano release:0.1 pan:0.6388888888888888 ]", - "[ 7/2 ⇜ (237/64 → 119/32) ⇝ 15/4 | note:F2 gain:0.2552240934977427 clip:1 s:piano release:0.1 pan:0.4398148148148148 ]", - "[ 99/28 ⇜ (237/64 → 119/32) ⇝ 53/14 | note:75 gain:0.025522409349774275 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", - "[ 99/28 ⇜ (237/64 → 119/32) ⇝ 53/14 | note:79 gain:0.025522409349774275 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", - "[ 99/28 ⇜ (237/64 → 119/32) ⇝ 53/14 | note:80 gain:0.025522409349774275 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", - "[ 99/28 ⇜ (237/64 → 119/32) ⇝ 53/14 | note:84 gain:0.025522409349774275 clip:1 s:piano release:0.1 pan:0.6388888888888888 ]", - "[ 7/2 ⇜ (119/32 → 239/64) ⇝ 15/4 | note:F2 gain:0.2552240934977424 clip:1 s:piano release:0.1 pan:0.4398148148148148 ]", - "[ 99/28 ⇜ (119/32 → 239/64) ⇝ 53/14 | note:75 gain:0.02552240934977424 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", - "[ 99/28 ⇜ (119/32 → 239/64) ⇝ 53/14 | note:79 gain:0.02552240934977424 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", - "[ 99/28 ⇜ (119/32 → 239/64) ⇝ 53/14 | note:80 gain:0.02552240934977424 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", - "[ 99/28 ⇜ (119/32 → 239/64) ⇝ 53/14 | note:84 gain:0.02552240934977424 clip:1 s:piano release:0.1 pan:0.6388888888888888 ]", - "[ 7/2 ⇜ (239/64 → 15/4) | note:F2 gain:0.3634633135269809 clip:1 s:piano release:0.1 pan:0.4398148148148148 ]", - "[ 99/28 ⇜ (239/64 → 15/4) ⇝ 53/14 | note:75 gain:0.036346331352698096 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", - "[ 99/28 ⇜ (239/64 → 15/4) ⇝ 53/14 | note:79 gain:0.036346331352698096 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", - "[ 99/28 ⇜ (239/64 → 15/4) ⇝ 53/14 | note:80 gain:0.036346331352698096 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", - "[ 99/28 ⇜ (239/64 → 15/4) ⇝ 53/14 | note:84 gain:0.036346331352698096 clip:1 s:piano release:0.1 pan:0.6388888888888888 ]", - "[ 99/28 ⇜ (15/4 → 241/64) ⇝ 53/14 | note:75 gain:0.05165366864730164 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", - "[ 99/28 ⇜ (15/4 → 241/64) ⇝ 53/14 | note:79 gain:0.05165366864730164 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", - "[ 99/28 ⇜ (15/4 → 241/64) ⇝ 53/14 | note:80 gain:0.05165366864730164 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", - "[ 99/28 ⇜ (15/4 → 241/64) ⇝ 53/14 | note:84 gain:0.05165366864730164 clip:1 s:piano release:0.1 pan:0.6388888888888888 ]", - "[ (15/4 → 241/64) ⇝ 31/8 | note:C5 gain:0.5165366864730164 clip:1 s:piano release:0.1 pan:0.5833333333333333 ]", - "[ (15/4 → 241/64) ⇝ 31/8 | note:Eb5 gain:0.5165366864730164 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", - "[ (15/4 → 241/64) ⇝ 4/1 | note:Eb4 gain:0.2582683432365082 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", - "[ (15/4 → 241/64) ⇝ 4/1 | note:G4 gain:0.2582683432365082 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", - "[ (15/4 → 241/64) ⇝ 4/1 | note:Ab4 gain:0.2582683432365082 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", - "[ (15/4 → 241/64) ⇝ 4/1 | note:C5 gain:0.2582683432365082 clip:1 s:piano release:0.1 pan:0.5833333333333333 ]", - "[ 99/28 ⇜ (241/64 → 121/32) ⇝ 53/14 | note:75 gain:0.06247759065022566 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", - "[ 99/28 ⇜ (241/64 → 121/32) ⇝ 53/14 | note:79 gain:0.06247759065022566 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", - "[ 99/28 ⇜ (241/64 → 121/32) ⇝ 53/14 | note:80 gain:0.06247759065022566 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", - "[ 99/28 ⇜ (241/64 → 121/32) ⇝ 53/14 | note:84 gain:0.06247759065022566 clip:1 s:piano release:0.1 pan:0.6388888888888888 ]", - "[ 15/4 ⇜ (241/64 → 121/32) ⇝ 31/8 | note:C5 gain:0.6247759065022566 clip:1 s:piano release:0.1 pan:0.5833333333333333 ]", - "[ 15/4 ⇜ (241/64 → 121/32) ⇝ 31/8 | note:Eb5 gain:0.6247759065022566 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", - "[ 15/4 ⇜ (241/64 → 121/32) ⇝ 4/1 | note:Eb4 gain:0.3123879532511283 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", - "[ 15/4 ⇜ (241/64 → 121/32) ⇝ 4/1 | note:G4 gain:0.3123879532511283 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", - "[ 15/4 ⇜ (241/64 → 121/32) ⇝ 4/1 | note:Ab4 gain:0.3123879532511283 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", - "[ 15/4 ⇜ (241/64 → 121/32) ⇝ 4/1 | note:C5 gain:0.3123879532511283 clip:1 s:piano release:0.1 pan:0.5833333333333333 ]", - "[ 99/28 ⇜ (121/32 → 53/14) | note:75 gain:0.06247759065022586 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", - "[ 99/28 ⇜ (121/32 → 53/14) | note:79 gain:0.06247759065022586 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", - "[ 99/28 ⇜ (121/32 → 53/14) | note:80 gain:0.06247759065022586 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", - "[ 99/28 ⇜ (121/32 → 53/14) | note:84 gain:0.06247759065022586 clip:1 s:piano release:0.1 pan:0.6388888888888888 ]", - "[ 15/4 ⇜ (121/32 → 243/64) ⇝ 31/8 | note:C5 gain:0.6247759065022586 clip:1 s:piano release:0.1 pan:0.5833333333333333 ]", - "[ 15/4 ⇜ (121/32 → 243/64) ⇝ 31/8 | note:Eb5 gain:0.6247759065022586 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", - "[ 15/4 ⇜ (121/32 → 243/64) ⇝ 4/1 | note:Eb4 gain:0.3123879532511293 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", - "[ 15/4 ⇜ (121/32 → 243/64) ⇝ 4/1 | note:G4 gain:0.3123879532511293 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", - "[ 15/4 ⇜ (121/32 → 243/64) ⇝ 4/1 | note:Ab4 gain:0.3123879532511293 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", - "[ 15/4 ⇜ (121/32 → 243/64) ⇝ 4/1 | note:C5 gain:0.3123879532511293 clip:1 s:piano release:0.1 pan:0.5833333333333333 ]", - "[ 15/4 ⇜ (243/64 → 61/16) ⇝ 31/8 | note:C5 gain:0.516536686473021 clip:1 s:piano release:0.1 pan:0.5833333333333333 ]", - "[ 15/4 ⇜ (243/64 → 61/16) ⇝ 31/8 | note:Eb5 gain:0.516536686473021 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", - "[ 15/4 ⇜ (243/64 → 61/16) ⇝ 4/1 | note:Eb4 gain:0.2582683432365105 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", - "[ 15/4 ⇜ (243/64 → 61/16) ⇝ 4/1 | note:G4 gain:0.2582683432365105 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", - "[ 15/4 ⇜ (243/64 → 61/16) ⇝ 4/1 | note:Ab4 gain:0.2582683432365105 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", - "[ 15/4 ⇜ (243/64 → 61/16) ⇝ 4/1 | note:C5 gain:0.2582683432365105 clip:1 s:piano release:0.1 pan:0.5833333333333333 ]", - "[ 15/4 ⇜ (61/16 → 245/64) ⇝ 31/8 | note:C5 gain:0.36346331352698563 clip:1 s:piano release:0.1 pan:0.5833333333333333 ]", - "[ 15/4 ⇜ (61/16 → 245/64) ⇝ 31/8 | note:Eb5 gain:0.36346331352698563 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", - "[ 15/4 ⇜ (61/16 → 245/64) ⇝ 4/1 | note:Eb4 gain:0.18173165676349282 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", - "[ 15/4 ⇜ (61/16 → 245/64) ⇝ 4/1 | note:G4 gain:0.18173165676349282 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", - "[ 15/4 ⇜ (61/16 → 245/64) ⇝ 4/1 | note:Ab4 gain:0.18173165676349282 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", - "[ 15/4 ⇜ (61/16 → 245/64) ⇝ 4/1 | note:C5 gain:0.18173165676349282 clip:1 s:piano release:0.1 pan:0.5833333333333333 ]", - "[ 15/4 ⇜ (245/64 → 123/32) ⇝ 31/8 | note:C5 gain:0.25522409349774217 clip:1 s:piano release:0.1 pan:0.5833333333333333 ]", - "[ 15/4 ⇜ (245/64 → 123/32) ⇝ 31/8 | note:Eb5 gain:0.25522409349774217 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", - "[ 15/4 ⇜ (245/64 → 123/32) ⇝ 4/1 | note:Eb4 gain:0.12761204674887108 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", - "[ 15/4 ⇜ (245/64 → 123/32) ⇝ 4/1 | note:G4 gain:0.12761204674887108 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", - "[ 15/4 ⇜ (245/64 → 123/32) ⇝ 4/1 | note:Ab4 gain:0.12761204674887108 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", - "[ 15/4 ⇜ (245/64 → 123/32) ⇝ 4/1 | note:C5 gain:0.12761204674887108 clip:1 s:piano release:0.1 pan:0.5833333333333333 ]", - "[ 15/4 ⇜ (123/32 → 247/64) ⇝ 31/8 | note:C5 gain:0.25522409349774294 clip:1 s:piano release:0.1 pan:0.5833333333333333 ]", - "[ 15/4 ⇜ (123/32 → 247/64) ⇝ 31/8 | note:Eb5 gain:0.25522409349774294 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", - "[ 15/4 ⇜ (123/32 → 247/64) ⇝ 4/1 | note:Eb4 gain:0.12761204674887147 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", - "[ 15/4 ⇜ (123/32 → 247/64) ⇝ 4/1 | note:G4 gain:0.12761204674887147 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", - "[ 15/4 ⇜ (123/32 → 247/64) ⇝ 4/1 | note:Ab4 gain:0.12761204674887147 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", - "[ 15/4 ⇜ (123/32 → 247/64) ⇝ 4/1 | note:C5 gain:0.12761204674887147 clip:1 s:piano release:0.1 pan:0.5833333333333333 ]", - "[ 15/4 ⇜ (247/64 → 31/8) | note:C5 gain:0.36346331352698225 clip:1 s:piano release:0.1 pan:0.5833333333333333 ]", - "[ 15/4 ⇜ (247/64 → 31/8) | note:Eb5 gain:0.36346331352698225 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", - "[ 15/4 ⇜ (247/64 → 31/8) ⇝ 4/1 | note:Eb4 gain:0.18173165676349112 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", - "[ 15/4 ⇜ (247/64 → 31/8) ⇝ 4/1 | note:G4 gain:0.18173165676349112 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", - "[ 15/4 ⇜ (247/64 → 31/8) ⇝ 4/1 | note:Ab4 gain:0.18173165676349112 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", - "[ 15/4 ⇜ (247/64 → 31/8) ⇝ 4/1 | note:C5 gain:0.18173165676349112 clip:1 s:piano release:0.1 pan:0.5833333333333333 ]", - "[ 15/4 ⇜ (31/8 → 249/64) ⇝ 4/1 | note:Eb4 gain:0.2582683432365088 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", - "[ 15/4 ⇜ (31/8 → 249/64) ⇝ 4/1 | note:G4 gain:0.2582683432365088 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", - "[ 15/4 ⇜ (31/8 → 249/64) ⇝ 4/1 | note:Ab4 gain:0.2582683432365088 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", - "[ 15/4 ⇜ (31/8 → 249/64) ⇝ 4/1 | note:C5 gain:0.2582683432365088 clip:1 s:piano release:0.1 pan:0.5833333333333333 ]", - "[ 15/4 ⇜ (249/64 → 125/32) ⇝ 4/1 | note:Eb4 gain:0.3123879532511285 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", - "[ 15/4 ⇜ (249/64 → 125/32) ⇝ 4/1 | note:G4 gain:0.3123879532511285 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", - "[ 15/4 ⇜ (249/64 → 125/32) ⇝ 4/1 | note:Ab4 gain:0.3123879532511285 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", - "[ 15/4 ⇜ (249/64 → 125/32) ⇝ 4/1 | note:C5 gain:0.3123879532511285 clip:1 s:piano release:0.1 pan:0.5833333333333333 ]", - "[ 15/4 ⇜ (125/32 → 251/64) ⇝ 4/1 | note:Eb4 gain:0.312387953251129 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", - "[ 15/4 ⇜ (125/32 → 251/64) ⇝ 4/1 | note:G4 gain:0.312387953251129 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", - "[ 15/4 ⇜ (125/32 → 251/64) ⇝ 4/1 | note:Ab4 gain:0.312387953251129 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", - "[ 15/4 ⇜ (125/32 → 251/64) ⇝ 4/1 | note:C5 gain:0.312387953251129 clip:1 s:piano release:0.1 pan:0.5833333333333333 ]", - "[ 15/4 ⇜ (251/64 → 63/16) ⇝ 4/1 | note:Eb4 gain:0.2582683432365099 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", - "[ 15/4 ⇜ (251/64 → 63/16) ⇝ 4/1 | note:G4 gain:0.2582683432365099 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", - "[ 15/4 ⇜ (251/64 → 63/16) ⇝ 4/1 | note:Ab4 gain:0.2582683432365099 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", - "[ 15/4 ⇜ (251/64 → 63/16) ⇝ 4/1 | note:C5 gain:0.2582683432365099 clip:1 s:piano release:0.1 pan:0.5833333333333333 ]", - "[ 15/4 ⇜ (63/16 → 253/64) ⇝ 4/1 | note:Eb4 gain:0.1817316567634922 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", - "[ 15/4 ⇜ (63/16 → 253/64) ⇝ 4/1 | note:G4 gain:0.1817316567634922 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", - "[ 15/4 ⇜ (63/16 → 253/64) ⇝ 4/1 | note:Ab4 gain:0.1817316567634922 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", - "[ 15/4 ⇜ (63/16 → 253/64) ⇝ 4/1 | note:C5 gain:0.1817316567634922 clip:1 s:piano release:0.1 pan:0.5833333333333333 ]", - "[ 15/4 ⇜ (253/64 → 127/32) ⇝ 4/1 | note:Eb4 gain:0.12761204674887192 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", - "[ 15/4 ⇜ (253/64 → 127/32) ⇝ 4/1 | note:G4 gain:0.12761204674887192 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", - "[ 15/4 ⇜ (253/64 → 127/32) ⇝ 4/1 | note:Ab4 gain:0.12761204674887192 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", - "[ 15/4 ⇜ (253/64 → 127/32) ⇝ 4/1 | note:C5 gain:0.12761204674887192 clip:1 s:piano release:0.1 pan:0.5833333333333333 ]", - "[ 15/4 ⇜ (127/32 → 255/64) ⇝ 4/1 | note:Eb4 gain:0.12761204674887064 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", - "[ 15/4 ⇜ (127/32 → 255/64) ⇝ 4/1 | note:G4 gain:0.12761204674887064 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", - "[ 15/4 ⇜ (127/32 → 255/64) ⇝ 4/1 | note:Ab4 gain:0.12761204674887064 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", - "[ 15/4 ⇜ (127/32 → 255/64) ⇝ 4/1 | note:C5 gain:0.12761204674887064 clip:1 s:piano release:0.1 pan:0.5833333333333333 ]", - "[ 15/4 ⇜ (255/64 → 4/1) | note:Eb4 gain:0.18173165676348912 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", - "[ 15/4 ⇜ (255/64 → 4/1) | note:G4 gain:0.18173165676348912 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", - "[ 15/4 ⇜ (255/64 → 4/1) | note:Ab4 gain:0.18173165676348912 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", - "[ 15/4 ⇜ (255/64 → 4/1) | note:C5 gain:0.18173165676348912 clip:1 s:piano release:0.1 pan:0.5833333333333333 ]", - "[ (4/1 → 257/64) ⇝ 17/4 | note:G2 gain:0.5165366864730189 clip:1 s:piano release:0.1 pan:0.44907407407407407 ]", - "[ 4/1 ⇜ (257/64 → 129/32) ⇝ 17/4 | note:G2 gain:0.6247759065022576 clip:1 s:piano release:0.1 pan:0.44907407407407407 ]", - "[ 4/1 ⇜ (129/32 → 259/64) ⇝ 17/4 | note:G2 gain:0.6247759065022574 clip:1 s:piano release:0.1 pan:0.44907407407407407 ]", - "[ (113/28 → 259/64) ⇝ 30/7 | note:75 gain:0.06247759065022575 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", - "[ (113/28 → 259/64) ⇝ 30/7 | note:79 gain:0.06247759065022575 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", - "[ (113/28 → 259/64) ⇝ 30/7 | note:80 gain:0.06247759065022575 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", - "[ (113/28 → 259/64) ⇝ 30/7 | note:84 gain:0.06247759065022575 clip:1 s:piano release:0.1 pan:0.6388888888888888 ]", - "[ 4/1 ⇜ (259/64 → 65/16) ⇝ 17/4 | note:G2 gain:0.5165366864730185 clip:1 s:piano release:0.1 pan:0.44907407407407407 ]", - "[ 113/28 ⇜ (259/64 → 65/16) ⇝ 30/7 | note:75 gain:0.05165366864730186 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", - "[ 113/28 ⇜ (259/64 → 65/16) ⇝ 30/7 | note:79 gain:0.05165366864730186 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", - "[ 113/28 ⇜ (259/64 → 65/16) ⇝ 30/7 | note:80 gain:0.05165366864730186 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", - "[ 113/28 ⇜ (259/64 → 65/16) ⇝ 30/7 | note:84 gain:0.05165366864730186 clip:1 s:piano release:0.1 pan:0.6388888888888888 ]", - "[ 4/1 ⇜ (65/16 → 261/64) ⇝ 17/4 | note:G2 gain:0.36346331352698313 clip:1 s:piano release:0.1 pan:0.44907407407407407 ]", - "[ 113/28 ⇜ (65/16 → 261/64) ⇝ 30/7 | note:75 gain:0.03634633135269832 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", - "[ 113/28 ⇜ (65/16 → 261/64) ⇝ 30/7 | note:79 gain:0.03634633135269832 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", - "[ 113/28 ⇜ (65/16 → 261/64) ⇝ 30/7 | note:80 gain:0.03634633135269832 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", - "[ 113/28 ⇜ (65/16 → 261/64) ⇝ 30/7 | note:84 gain:0.03634633135269832 clip:1 s:piano release:0.1 pan:0.6388888888888888 ]", - "[ 4/1 ⇜ (261/64 → 131/32) ⇝ 17/4 | note:G2 gain:0.2552240934977433 clip:1 s:piano release:0.1 pan:0.44907407407407407 ]", - "[ 113/28 ⇜ (261/64 → 131/32) ⇝ 30/7 | note:75 gain:0.02552240934977433 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", - "[ 113/28 ⇜ (261/64 → 131/32) ⇝ 30/7 | note:79 gain:0.02552240934977433 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", - "[ 113/28 ⇜ (261/64 → 131/32) ⇝ 30/7 | note:80 gain:0.02552240934977433 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", - "[ 113/28 ⇜ (261/64 → 131/32) ⇝ 30/7 | note:84 gain:0.02552240934977433 clip:1 s:piano release:0.1 pan:0.6388888888888888 ]", - "[ 4/1 ⇜ (131/32 → 263/64) ⇝ 17/4 | note:G2 gain:0.2552240934977418 clip:1 s:piano release:0.1 pan:0.44907407407407407 ]", - "[ 113/28 ⇜ (131/32 → 263/64) ⇝ 30/7 | note:75 gain:0.025522409349774178 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", - "[ 113/28 ⇜ (131/32 → 263/64) ⇝ 30/7 | note:79 gain:0.025522409349774178 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", - "[ 113/28 ⇜ (131/32 → 263/64) ⇝ 30/7 | note:80 gain:0.025522409349774178 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", - "[ 113/28 ⇜ (131/32 → 263/64) ⇝ 30/7 | note:84 gain:0.025522409349774178 clip:1 s:piano release:0.1 pan:0.6388888888888888 ]", - "[ 4/1 ⇜ (263/64 → 33/8) ⇝ 17/4 | note:G2 gain:0.3634633135269795 clip:1 s:piano release:0.1 pan:0.44907407407407407 ]", - "[ 113/28 ⇜ (263/64 → 33/8) ⇝ 30/7 | note:75 gain:0.03634633135269796 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", - "[ 113/28 ⇜ (263/64 → 33/8) ⇝ 30/7 | note:79 gain:0.03634633135269796 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", - "[ 113/28 ⇜ (263/64 → 33/8) ⇝ 30/7 | note:80 gain:0.03634633135269796 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", - "[ 113/28 ⇜ (263/64 → 33/8) ⇝ 30/7 | note:84 gain:0.03634633135269796 clip:1 s:piano release:0.1 pan:0.6388888888888888 ]", - "[ 4/1 ⇜ (33/8 → 265/64) ⇝ 17/4 | note:G2 gain:0.516536686473015 clip:1 s:piano release:0.1 pan:0.44907407407407407 ]", - "[ 113/28 ⇜ (33/8 → 265/64) ⇝ 30/7 | note:75 gain:0.051653668647301504 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", - "[ 113/28 ⇜ (33/8 → 265/64) ⇝ 30/7 | note:79 gain:0.051653668647301504 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", - "[ 113/28 ⇜ (33/8 → 265/64) ⇝ 30/7 | note:80 gain:0.051653668647301504 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", - "[ 113/28 ⇜ (33/8 → 265/64) ⇝ 30/7 | note:84 gain:0.051653668647301504 clip:1 s:piano release:0.1 pan:0.6388888888888888 ]", - "[ (33/8 → 265/64) ⇝ 17/4 | note:G4 gain:0.516536686473015 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", - "[ (33/8 → 265/64) ⇝ 17/4 | note:Bb4 gain:0.516536686473015 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", - "[ 4/1 ⇜ (265/64 → 133/32) ⇝ 17/4 | note:G2 gain:0.6247759065022559 clip:1 s:piano release:0.1 pan:0.44907407407407407 ]", - "[ 113/28 ⇜ (265/64 → 133/32) ⇝ 30/7 | note:75 gain:0.062477590650225595 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", - "[ 113/28 ⇜ (265/64 → 133/32) ⇝ 30/7 | note:79 gain:0.062477590650225595 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", - "[ 113/28 ⇜ (265/64 → 133/32) ⇝ 30/7 | note:80 gain:0.062477590650225595 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", - "[ 113/28 ⇜ (265/64 → 133/32) ⇝ 30/7 | note:84 gain:0.062477590650225595 clip:1 s:piano release:0.1 pan:0.6388888888888888 ]", - "[ 33/8 ⇜ (265/64 → 133/32) ⇝ 17/4 | note:G4 gain:0.6247759065022559 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", - "[ 33/8 ⇜ (265/64 → 133/32) ⇝ 17/4 | note:Bb4 gain:0.6247759065022559 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", - "[ 4/1 ⇜ (133/32 → 267/64) ⇝ 17/4 | note:G2 gain:0.6247759065022591 clip:1 s:piano release:0.1 pan:0.44907407407407407 ]", - "[ 113/28 ⇜ (133/32 → 267/64) ⇝ 30/7 | note:75 gain:0.062477590650225914 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", - "[ 113/28 ⇜ (133/32 → 267/64) ⇝ 30/7 | note:79 gain:0.062477590650225914 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", - "[ 113/28 ⇜ (133/32 → 267/64) ⇝ 30/7 | note:80 gain:0.062477590650225914 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", - "[ 113/28 ⇜ (133/32 → 267/64) ⇝ 30/7 | note:84 gain:0.062477590650225914 clip:1 s:piano release:0.1 pan:0.6388888888888888 ]", - "[ 33/8 ⇜ (133/32 → 267/64) ⇝ 17/4 | note:G4 gain:0.6247759065022591 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", - "[ 33/8 ⇜ (133/32 → 267/64) ⇝ 17/4 | note:Bb4 gain:0.6247759065022591 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", - "[ 4/1 ⇜ (267/64 → 67/16) ⇝ 17/4 | note:G2 gain:0.5165366864730173 clip:1 s:piano release:0.1 pan:0.44907407407407407 ]", - "[ 113/28 ⇜ (267/64 → 67/16) ⇝ 30/7 | note:75 gain:0.05165366864730173 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", - "[ 113/28 ⇜ (267/64 → 67/16) ⇝ 30/7 | note:79 gain:0.05165366864730173 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", - "[ 113/28 ⇜ (267/64 → 67/16) ⇝ 30/7 | note:80 gain:0.05165366864730173 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", - "[ 113/28 ⇜ (267/64 → 67/16) ⇝ 30/7 | note:84 gain:0.05165366864730173 clip:1 s:piano release:0.1 pan:0.6388888888888888 ]", - "[ 33/8 ⇜ (267/64 → 67/16) ⇝ 17/4 | note:G4 gain:0.5165366864730173 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", - "[ 33/8 ⇜ (267/64 → 67/16) ⇝ 17/4 | note:Bb4 gain:0.5165366864730173 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", - "[ 4/1 ⇜ (67/16 → 269/64) ⇝ 17/4 | note:G2 gain:0.36346331352698186 clip:1 s:piano release:0.1 pan:0.44907407407407407 ]", - "[ 113/28 ⇜ (67/16 → 269/64) ⇝ 30/7 | note:75 gain:0.036346331352698186 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", - "[ 113/28 ⇜ (67/16 → 269/64) ⇝ 30/7 | note:79 gain:0.036346331352698186 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", - "[ 113/28 ⇜ (67/16 → 269/64) ⇝ 30/7 | note:80 gain:0.036346331352698186 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", - "[ 113/28 ⇜ (67/16 → 269/64) ⇝ 30/7 | note:84 gain:0.036346331352698186 clip:1 s:piano release:0.1 pan:0.6388888888888888 ]", - "[ 33/8 ⇜ (67/16 → 269/64) ⇝ 17/4 | note:G4 gain:0.36346331352698186 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", - "[ 33/8 ⇜ (67/16 → 269/64) ⇝ 17/4 | note:Bb4 gain:0.36346331352698186 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", - "[ 4/1 ⇜ (269/64 → 135/32) ⇝ 17/4 | note:G2 gain:0.2552240934977427 clip:1 s:piano release:0.1 pan:0.44907407407407407 ]", - "[ 113/28 ⇜ (269/64 → 135/32) ⇝ 30/7 | note:75 gain:0.025522409349774275 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", - "[ 113/28 ⇜ (269/64 → 135/32) ⇝ 30/7 | note:79 gain:0.025522409349774275 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", - "[ 113/28 ⇜ (269/64 → 135/32) ⇝ 30/7 | note:80 gain:0.025522409349774275 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", - "[ 113/28 ⇜ (269/64 → 135/32) ⇝ 30/7 | note:84 gain:0.025522409349774275 clip:1 s:piano release:0.1 pan:0.6388888888888888 ]", - "[ 33/8 ⇜ (269/64 → 135/32) ⇝ 17/4 | note:G4 gain:0.2552240934977427 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", - "[ 33/8 ⇜ (269/64 → 135/32) ⇝ 17/4 | note:Bb4 gain:0.2552240934977427 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", - "[ 4/1 ⇜ (135/32 → 271/64) ⇝ 17/4 | note:G2 gain:0.2552240934977423 clip:1 s:piano release:0.1 pan:0.44907407407407407 ]", - "[ 113/28 ⇜ (135/32 → 271/64) ⇝ 30/7 | note:75 gain:0.02552240934977423 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", - "[ 113/28 ⇜ (135/32 → 271/64) ⇝ 30/7 | note:79 gain:0.02552240934977423 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", - "[ 113/28 ⇜ (135/32 → 271/64) ⇝ 30/7 | note:80 gain:0.02552240934977423 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", - "[ 113/28 ⇜ (135/32 → 271/64) ⇝ 30/7 | note:84 gain:0.02552240934977423 clip:1 s:piano release:0.1 pan:0.6388888888888888 ]", - "[ 33/8 ⇜ (135/32 → 271/64) ⇝ 17/4 | note:G4 gain:0.2552240934977423 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", - "[ 33/8 ⇜ (135/32 → 271/64) ⇝ 17/4 | note:Bb4 gain:0.2552240934977423 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", - "[ 4/1 ⇜ (271/64 → 17/4) | note:G2 gain:0.36346331352698075 clip:1 s:piano release:0.1 pan:0.44907407407407407 ]", - "[ 113/28 ⇜ (271/64 → 17/4) ⇝ 30/7 | note:75 gain:0.036346331352698075 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", - "[ 113/28 ⇜ (271/64 → 17/4) ⇝ 30/7 | note:79 gain:0.036346331352698075 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", - "[ 113/28 ⇜ (271/64 → 17/4) ⇝ 30/7 | note:80 gain:0.036346331352698075 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", - "[ 113/28 ⇜ (271/64 → 17/4) ⇝ 30/7 | note:84 gain:0.036346331352698075 clip:1 s:piano release:0.1 pan:0.6388888888888888 ]", - "[ 33/8 ⇜ (271/64 → 17/4) | note:G4 gain:0.36346331352698075 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", - "[ 33/8 ⇜ (271/64 → 17/4) | note:Bb4 gain:0.36346331352698075 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", - "[ 113/28 ⇜ (17/4 → 273/64) ⇝ 30/7 | note:75 gain:0.05165366864730162 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", - "[ 113/28 ⇜ (17/4 → 273/64) ⇝ 30/7 | note:79 gain:0.05165366864730162 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", - "[ 113/28 ⇜ (17/4 → 273/64) ⇝ 30/7 | note:80 gain:0.05165366864730162 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", - "[ 113/28 ⇜ (17/4 → 273/64) ⇝ 30/7 | note:84 gain:0.05165366864730162 clip:1 s:piano release:0.1 pan:0.6388888888888888 ]", - "[ 113/28 ⇜ (273/64 → 137/32) ⇝ 30/7 | note:75 gain:0.06247759065022565 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", - "[ 113/28 ⇜ (273/64 → 137/32) ⇝ 30/7 | note:79 gain:0.06247759065022565 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", - "[ 113/28 ⇜ (273/64 → 137/32) ⇝ 30/7 | note:80 gain:0.06247759065022565 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", - "[ 113/28 ⇜ (273/64 → 137/32) ⇝ 30/7 | note:84 gain:0.06247759065022565 clip:1 s:piano release:0.1 pan:0.6388888888888888 ]", - "[ 113/28 ⇜ (137/32 → 30/7) | note:75 gain:0.06247759065022586 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", - "[ 113/28 ⇜ (137/32 → 30/7) | note:79 gain:0.06247759065022586 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", - "[ 113/28 ⇜ (137/32 → 30/7) | note:80 gain:0.06247759065022586 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", - "[ 113/28 ⇜ (137/32 → 30/7) | note:84 gain:0.06247759065022586 clip:1 s:piano release:0.1 pan:0.6388888888888888 ]", - "[ (9/2 → 289/64) ⇝ 37/8 | note:D5 gain:0.5165366864730186 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", - "[ (9/2 → 289/64) ⇝ 37/8 | note:F5 gain:0.5165366864730186 clip:1 s:piano release:0.1 pan:0.6064814814814814 ]", - "[ (9/2 → 289/64) ⇝ 19/4 | note:B3 gain:0.2582683432365093 clip:1 s:piano release:0.1 pan:0.5231481481481481 ]", - "[ (9/2 → 289/64) ⇝ 19/4 | note:E4 gain:0.2582683432365093 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", - "[ (9/2 → 289/64) ⇝ 19/4 | note:F4 gain:0.2582683432365093 clip:1 s:piano release:0.1 pan:0.5509259259259259 ]", - "[ (9/2 → 289/64) ⇝ 19/4 | note:A4 gain:0.2582683432365093 clip:1 s:piano release:0.1 pan:0.5694444444444444 ]", - "[ (9/2 → 289/64) ⇝ 19/4 | note:G2 gain:0.5165366864730186 clip:1 s:piano release:0.1 pan:0.44907407407407407 ]", - "[ 9/2 ⇜ (289/64 → 145/32) ⇝ 37/8 | note:D5 gain:0.6247759065022574 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", - "[ 9/2 ⇜ (289/64 → 145/32) ⇝ 37/8 | note:F5 gain:0.6247759065022574 clip:1 s:piano release:0.1 pan:0.6064814814814814 ]", - "[ 9/2 ⇜ (289/64 → 145/32) ⇝ 19/4 | note:B3 gain:0.3123879532511287 clip:1 s:piano release:0.1 pan:0.5231481481481481 ]", - "[ 9/2 ⇜ (289/64 → 145/32) ⇝ 19/4 | note:E4 gain:0.3123879532511287 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", - "[ 9/2 ⇜ (289/64 → 145/32) ⇝ 19/4 | note:F4 gain:0.3123879532511287 clip:1 s:piano release:0.1 pan:0.5509259259259259 ]", - "[ 9/2 ⇜ (289/64 → 145/32) ⇝ 19/4 | note:A4 gain:0.3123879532511287 clip:1 s:piano release:0.1 pan:0.5694444444444444 ]", - "[ 9/2 ⇜ (289/64 → 145/32) ⇝ 19/4 | note:G2 gain:0.6247759065022574 clip:1 s:piano release:0.1 pan:0.44907407407407407 ]", - "[ 9/2 ⇜ (145/32 → 291/64) ⇝ 37/8 | note:D5 gain:0.6247759065022574 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", - "[ 9/2 ⇜ (145/32 → 291/64) ⇝ 37/8 | note:F5 gain:0.6247759065022574 clip:1 s:piano release:0.1 pan:0.6064814814814814 ]", - "[ 9/2 ⇜ (145/32 → 291/64) ⇝ 19/4 | note:B3 gain:0.3123879532511287 clip:1 s:piano release:0.1 pan:0.5231481481481481 ]", - "[ 9/2 ⇜ (145/32 → 291/64) ⇝ 19/4 | note:E4 gain:0.3123879532511287 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", - "[ 9/2 ⇜ (145/32 → 291/64) ⇝ 19/4 | note:F4 gain:0.3123879532511287 clip:1 s:piano release:0.1 pan:0.5509259259259259 ]", - "[ 9/2 ⇜ (145/32 → 291/64) ⇝ 19/4 | note:A4 gain:0.3123879532511287 clip:1 s:piano release:0.1 pan:0.5694444444444444 ]", - "[ 9/2 ⇜ (145/32 → 291/64) ⇝ 19/4 | note:G2 gain:0.6247759065022574 clip:1 s:piano release:0.1 pan:0.44907407407407407 ]", - "[ 9/2 ⇜ (291/64 → 73/16) ⇝ 37/8 | note:D5 gain:0.5165366864730186 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", - "[ 9/2 ⇜ (291/64 → 73/16) ⇝ 37/8 | note:F5 gain:0.5165366864730186 clip:1 s:piano release:0.1 pan:0.6064814814814814 ]", - "[ 9/2 ⇜ (291/64 → 73/16) ⇝ 19/4 | note:B3 gain:0.2582683432365093 clip:1 s:piano release:0.1 pan:0.5231481481481481 ]", - "[ 9/2 ⇜ (291/64 → 73/16) ⇝ 19/4 | note:E4 gain:0.2582683432365093 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", - "[ 9/2 ⇜ (291/64 → 73/16) ⇝ 19/4 | note:F4 gain:0.2582683432365093 clip:1 s:piano release:0.1 pan:0.5509259259259259 ]", - "[ 9/2 ⇜ (291/64 → 73/16) ⇝ 19/4 | note:A4 gain:0.2582683432365093 clip:1 s:piano release:0.1 pan:0.5694444444444444 ]", - "[ 9/2 ⇜ (291/64 → 73/16) ⇝ 19/4 | note:G2 gain:0.5165366864730186 clip:1 s:piano release:0.1 pan:0.44907407407407407 ]", - "[ 9/2 ⇜ (73/16 → 293/64) ⇝ 37/8 | note:D5 gain:0.3634633135269833 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", - "[ 9/2 ⇜ (73/16 → 293/64) ⇝ 37/8 | note:F5 gain:0.3634633135269833 clip:1 s:piano release:0.1 pan:0.6064814814814814 ]", - "[ 9/2 ⇜ (73/16 → 293/64) ⇝ 19/4 | note:B3 gain:0.18173165676349165 clip:1 s:piano release:0.1 pan:0.5231481481481481 ]", - "[ 9/2 ⇜ (73/16 → 293/64) ⇝ 19/4 | note:E4 gain:0.18173165676349165 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", - "[ 9/2 ⇜ (73/16 → 293/64) ⇝ 19/4 | note:F4 gain:0.18173165676349165 clip:1 s:piano release:0.1 pan:0.5509259259259259 ]", - "[ 9/2 ⇜ (73/16 → 293/64) ⇝ 19/4 | note:A4 gain:0.18173165676349165 clip:1 s:piano release:0.1 pan:0.5694444444444444 ]", - "[ 9/2 ⇜ (73/16 → 293/64) ⇝ 19/4 | note:G2 gain:0.3634633135269833 clip:1 s:piano release:0.1 pan:0.44907407407407407 ]", - "[ 9/2 ⇜ (293/64 → 147/32) ⇝ 37/8 | note:D5 gain:0.2552240934977434 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", - "[ 9/2 ⇜ (293/64 → 147/32) ⇝ 37/8 | note:F5 gain:0.2552240934977434 clip:1 s:piano release:0.1 pan:0.6064814814814814 ]", - "[ 9/2 ⇜ (293/64 → 147/32) ⇝ 19/4 | note:B3 gain:0.1276120467488717 clip:1 s:piano release:0.1 pan:0.5231481481481481 ]", - "[ 9/2 ⇜ (293/64 → 147/32) ⇝ 19/4 | note:E4 gain:0.1276120467488717 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", - "[ 9/2 ⇜ (293/64 → 147/32) ⇝ 19/4 | note:F4 gain:0.1276120467488717 clip:1 s:piano release:0.1 pan:0.5509259259259259 ]", - "[ 9/2 ⇜ (293/64 → 147/32) ⇝ 19/4 | note:A4 gain:0.1276120467488717 clip:1 s:piano release:0.1 pan:0.5694444444444444 ]", - "[ 9/2 ⇜ (293/64 → 147/32) ⇝ 19/4 | note:G2 gain:0.2552240934977434 clip:1 s:piano release:0.1 pan:0.44907407407407407 ]", - "[ 9/2 ⇜ (147/32 → 295/64) ⇝ 37/8 | note:D5 gain:0.2552240934977417 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", - "[ 9/2 ⇜ (147/32 → 295/64) ⇝ 37/8 | note:F5 gain:0.2552240934977417 clip:1 s:piano release:0.1 pan:0.6064814814814814 ]", - "[ 9/2 ⇜ (147/32 → 295/64) ⇝ 19/4 | note:B3 gain:0.12761204674887086 clip:1 s:piano release:0.1 pan:0.5231481481481481 ]", - "[ 9/2 ⇜ (147/32 → 295/64) ⇝ 19/4 | note:E4 gain:0.12761204674887086 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", - "[ 9/2 ⇜ (147/32 → 295/64) ⇝ 19/4 | note:F4 gain:0.12761204674887086 clip:1 s:piano release:0.1 pan:0.5509259259259259 ]", - "[ 9/2 ⇜ (147/32 → 295/64) ⇝ 19/4 | note:A4 gain:0.12761204674887086 clip:1 s:piano release:0.1 pan:0.5694444444444444 ]", - "[ 9/2 ⇜ (147/32 → 295/64) ⇝ 19/4 | note:G2 gain:0.2552240934977417 clip:1 s:piano release:0.1 pan:0.44907407407407407 ]", - "[ 9/2 ⇜ (295/64 → 37/8) | note:D5 gain:0.36346331352697936 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", - "[ 9/2 ⇜ (295/64 → 37/8) | note:F5 gain:0.36346331352697936 clip:1 s:piano release:0.1 pan:0.6064814814814814 ]", - "[ 9/2 ⇜ (295/64 → 37/8) ⇝ 19/4 | note:B3 gain:0.18173165676348968 clip:1 s:piano release:0.1 pan:0.5231481481481481 ]", - "[ 9/2 ⇜ (295/64 → 37/8) ⇝ 19/4 | note:E4 gain:0.18173165676348968 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", - "[ 9/2 ⇜ (295/64 → 37/8) ⇝ 19/4 | note:F4 gain:0.18173165676348968 clip:1 s:piano release:0.1 pan:0.5509259259259259 ]", - "[ 9/2 ⇜ (295/64 → 37/8) ⇝ 19/4 | note:A4 gain:0.18173165676348968 clip:1 s:piano release:0.1 pan:0.5694444444444444 ]", - "[ 9/2 ⇜ (295/64 → 37/8) ⇝ 19/4 | note:G2 gain:0.36346331352697936 clip:1 s:piano release:0.1 pan:0.44907407407407407 ]", - "[ 9/2 ⇜ (37/8 → 297/64) ⇝ 19/4 | note:B3 gain:0.2582683432365074 clip:1 s:piano release:0.1 pan:0.5231481481481481 ]", - "[ 9/2 ⇜ (37/8 → 297/64) ⇝ 19/4 | note:E4 gain:0.2582683432365074 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", - "[ 9/2 ⇜ (37/8 → 297/64) ⇝ 19/4 | note:F4 gain:0.2582683432365074 clip:1 s:piano release:0.1 pan:0.5509259259259259 ]", - "[ 9/2 ⇜ (37/8 → 297/64) ⇝ 19/4 | note:A4 gain:0.2582683432365074 clip:1 s:piano release:0.1 pan:0.5694444444444444 ]", - "[ 9/2 ⇜ (37/8 → 297/64) ⇝ 19/4 | note:G2 gain:0.5165366864730148 clip:1 s:piano release:0.1 pan:0.44907407407407407 ]", - "[ 9/2 ⇜ (297/64 → 149/32) ⇝ 19/4 | note:B3 gain:0.31238795325112795 clip:1 s:piano release:0.1 pan:0.5231481481481481 ]", - "[ 9/2 ⇜ (297/64 → 149/32) ⇝ 19/4 | note:E4 gain:0.31238795325112795 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", - "[ 9/2 ⇜ (297/64 → 149/32) ⇝ 19/4 | note:F4 gain:0.31238795325112795 clip:1 s:piano release:0.1 pan:0.5509259259259259 ]", - "[ 9/2 ⇜ (297/64 → 149/32) ⇝ 19/4 | note:A4 gain:0.31238795325112795 clip:1 s:piano release:0.1 pan:0.5694444444444444 ]", - "[ 9/2 ⇜ (297/64 → 149/32) ⇝ 19/4 | note:G2 gain:0.6247759065022559 clip:1 s:piano release:0.1 pan:0.44907407407407407 ]", - "[ 9/2 ⇜ (149/32 → 299/64) ⇝ 19/4 | note:B3 gain:0.31238795325112956 clip:1 s:piano release:0.1 pan:0.5231481481481481 ]", - "[ 9/2 ⇜ (149/32 → 299/64) ⇝ 19/4 | note:E4 gain:0.31238795325112956 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", - "[ 9/2 ⇜ (149/32 → 299/64) ⇝ 19/4 | note:F4 gain:0.31238795325112956 clip:1 s:piano release:0.1 pan:0.5509259259259259 ]", - "[ 9/2 ⇜ (149/32 → 299/64) ⇝ 19/4 | note:A4 gain:0.31238795325112956 clip:1 s:piano release:0.1 pan:0.5694444444444444 ]", - "[ 9/2 ⇜ (149/32 → 299/64) ⇝ 19/4 | note:G2 gain:0.6247759065022591 clip:1 s:piano release:0.1 pan:0.44907407407407407 ]", - "[ 9/2 ⇜ (299/64 → 75/16) ⇝ 19/4 | note:B3 gain:0.2582683432365087 clip:1 s:piano release:0.1 pan:0.5231481481481481 ]", - "[ 9/2 ⇜ (299/64 → 75/16) ⇝ 19/4 | note:E4 gain:0.2582683432365087 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", - "[ 9/2 ⇜ (299/64 → 75/16) ⇝ 19/4 | note:F4 gain:0.2582683432365087 clip:1 s:piano release:0.1 pan:0.5509259259259259 ]", - "[ 9/2 ⇜ (299/64 → 75/16) ⇝ 19/4 | note:A4 gain:0.2582683432365087 clip:1 s:piano release:0.1 pan:0.5694444444444444 ]", - "[ 9/2 ⇜ (299/64 → 75/16) ⇝ 19/4 | note:G2 gain:0.5165366864730174 clip:1 s:piano release:0.1 pan:0.44907407407407407 ]", - "[ 9/2 ⇜ (75/16 → 301/64) ⇝ 19/4 | note:B3 gain:0.181731656763491 clip:1 s:piano release:0.1 pan:0.5231481481481481 ]", - "[ 9/2 ⇜ (75/16 → 301/64) ⇝ 19/4 | note:E4 gain:0.181731656763491 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", - "[ 9/2 ⇜ (75/16 → 301/64) ⇝ 19/4 | note:F4 gain:0.181731656763491 clip:1 s:piano release:0.1 pan:0.5509259259259259 ]", - "[ 9/2 ⇜ (75/16 → 301/64) ⇝ 19/4 | note:A4 gain:0.181731656763491 clip:1 s:piano release:0.1 pan:0.5694444444444444 ]", - "[ 9/2 ⇜ (75/16 → 301/64) ⇝ 19/4 | note:G2 gain:0.363463313526982 clip:1 s:piano release:0.1 pan:0.44907407407407407 ]", - "[ 9/2 ⇜ (301/64 → 151/32) ⇝ 19/4 | note:B3 gain:0.12761204674887142 clip:1 s:piano release:0.1 pan:0.5231481481481481 ]", - "[ 9/2 ⇜ (301/64 → 151/32) ⇝ 19/4 | note:E4 gain:0.12761204674887142 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", - "[ 9/2 ⇜ (301/64 → 151/32) ⇝ 19/4 | note:F4 gain:0.12761204674887142 clip:1 s:piano release:0.1 pan:0.5509259259259259 ]", - "[ 9/2 ⇜ (301/64 → 151/32) ⇝ 19/4 | note:A4 gain:0.12761204674887142 clip:1 s:piano release:0.1 pan:0.5694444444444444 ]", - "[ 9/2 ⇜ (301/64 → 151/32) ⇝ 19/4 | note:G2 gain:0.25522409349774283 clip:1 s:piano release:0.1 pan:0.44907407407407407 ]", - "[ 9/2 ⇜ (151/32 → 303/64) ⇝ 19/4 | note:B3 gain:0.12761204674887114 clip:1 s:piano release:0.1 pan:0.5231481481481481 ]", - "[ 9/2 ⇜ (151/32 → 303/64) ⇝ 19/4 | note:E4 gain:0.12761204674887114 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", - "[ 9/2 ⇜ (151/32 → 303/64) ⇝ 19/4 | note:F4 gain:0.12761204674887114 clip:1 s:piano release:0.1 pan:0.5509259259259259 ]", - "[ 9/2 ⇜ (151/32 → 303/64) ⇝ 19/4 | note:A4 gain:0.12761204674887114 clip:1 s:piano release:0.1 pan:0.5694444444444444 ]", - "[ 9/2 ⇜ (151/32 → 303/64) ⇝ 19/4 | note:G2 gain:0.2552240934977423 clip:1 s:piano release:0.1 pan:0.44907407407407407 ]", - "[ 9/2 ⇜ (303/64 → 19/4) | note:B3 gain:0.1817316567634903 clip:1 s:piano release:0.1 pan:0.5231481481481481 ]", - "[ 9/2 ⇜ (303/64 → 19/4) | note:E4 gain:0.1817316567634903 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", - "[ 9/2 ⇜ (303/64 → 19/4) | note:F4 gain:0.1817316567634903 clip:1 s:piano release:0.1 pan:0.5509259259259259 ]", - "[ 9/2 ⇜ (303/64 → 19/4) | note:A4 gain:0.1817316567634903 clip:1 s:piano release:0.1 pan:0.5694444444444444 ]", - "[ 9/2 ⇜ (303/64 → 19/4) | note:G2 gain:0.3634633135269806 clip:1 s:piano release:0.1 pan:0.44907407407407407 ]", - "[ (19/4 → 305/64) ⇝ 39/8 | note:G4 gain:0.516536686473016 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", - "[ (19/4 → 305/64) ⇝ 39/8 | note:Bb4 gain:0.516536686473016 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", - "[ 19/4 ⇜ (305/64 → 153/32) ⇝ 39/8 | note:G4 gain:0.6247759065022565 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", - "[ 19/4 ⇜ (305/64 → 153/32) ⇝ 39/8 | note:Bb4 gain:0.6247759065022565 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", - "[ 19/4 ⇜ (153/32 → 307/64) ⇝ 39/8 | note:G4 gain:0.6247759065022586 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", - "[ 19/4 ⇜ (153/32 → 307/64) ⇝ 39/8 | note:Bb4 gain:0.6247759065022586 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", - "[ (67/14 → 307/64) ⇝ 141/28 | note:71 gain:0.06247759065022586 clip:1 s:piano release:0.1 pan:0.5787037037037037 ]", - "[ (67/14 → 307/64) ⇝ 141/28 | note:76 gain:0.06247759065022586 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", - "[ (67/14 → 307/64) ⇝ 141/28 | note:77 gain:0.06247759065022586 clip:1 s:piano release:0.1 pan:0.6064814814814814 ]", - "[ (67/14 → 307/64) ⇝ 141/28 | note:81 gain:0.06247759065022586 clip:1 s:piano release:0.1 pan:0.625 ]", - "[ 19/4 ⇜ (307/64 → 77/16) ⇝ 39/8 | note:G4 gain:0.5165366864730214 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", - "[ 19/4 ⇜ (307/64 → 77/16) ⇝ 39/8 | note:Bb4 gain:0.5165366864730214 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", - "[ 67/14 ⇜ (307/64 → 77/16) ⇝ 141/28 | note:71 gain:0.05165366864730214 clip:1 s:piano release:0.1 pan:0.5787037037037037 ]", - "[ 67/14 ⇜ (307/64 → 77/16) ⇝ 141/28 | note:76 gain:0.05165366864730214 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", - "[ 67/14 ⇜ (307/64 → 77/16) ⇝ 141/28 | note:77 gain:0.05165366864730214 clip:1 s:piano release:0.1 pan:0.6064814814814814 ]", - "[ 67/14 ⇜ (307/64 → 77/16) ⇝ 141/28 | note:81 gain:0.05165366864730214 clip:1 s:piano release:0.1 pan:0.625 ]", - "[ 19/4 ⇜ (77/16 → 309/64) ⇝ 39/8 | note:G4 gain:0.363463313526986 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", - "[ 19/4 ⇜ (77/16 → 309/64) ⇝ 39/8 | note:Bb4 gain:0.363463313526986 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", - "[ 67/14 ⇜ (77/16 → 309/64) ⇝ 141/28 | note:71 gain:0.0363463313526986 clip:1 s:piano release:0.1 pan:0.5787037037037037 ]", - "[ 67/14 ⇜ (77/16 → 309/64) ⇝ 141/28 | note:76 gain:0.0363463313526986 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", - "[ 67/14 ⇜ (77/16 → 309/64) ⇝ 141/28 | note:77 gain:0.0363463313526986 clip:1 s:piano release:0.1 pan:0.6064814814814814 ]", - "[ 67/14 ⇜ (77/16 → 309/64) ⇝ 141/28 | note:81 gain:0.0363463313526986 clip:1 s:piano release:0.1 pan:0.625 ]", - "[ 19/4 ⇜ (309/64 → 155/32) ⇝ 39/8 | note:G4 gain:0.2552240934977423 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", - "[ 19/4 ⇜ (309/64 → 155/32) ⇝ 39/8 | note:Bb4 gain:0.2552240934977423 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", - "[ 67/14 ⇜ (309/64 → 155/32) ⇝ 141/28 | note:71 gain:0.02552240934977423 clip:1 s:piano release:0.1 pan:0.5787037037037037 ]", - "[ 67/14 ⇜ (309/64 → 155/32) ⇝ 141/28 | note:76 gain:0.02552240934977423 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", - "[ 67/14 ⇜ (309/64 → 155/32) ⇝ 141/28 | note:77 gain:0.02552240934977423 clip:1 s:piano release:0.1 pan:0.6064814814814814 ]", - "[ 67/14 ⇜ (309/64 → 155/32) ⇝ 141/28 | note:81 gain:0.02552240934977423 clip:1 s:piano release:0.1 pan:0.625 ]", - "[ 19/4 ⇜ (155/32 → 311/64) ⇝ 39/8 | note:G4 gain:0.2552240934977427 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", - "[ 19/4 ⇜ (155/32 → 311/64) ⇝ 39/8 | note:Bb4 gain:0.2552240934977427 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", - "[ 67/14 ⇜ (155/32 → 311/64) ⇝ 141/28 | note:71 gain:0.025522409349774275 clip:1 s:piano release:0.1 pan:0.5787037037037037 ]", - "[ 67/14 ⇜ (155/32 → 311/64) ⇝ 141/28 | note:76 gain:0.025522409349774275 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", - "[ 67/14 ⇜ (155/32 → 311/64) ⇝ 141/28 | note:77 gain:0.025522409349774275 clip:1 s:piano release:0.1 pan:0.6064814814814814 ]", - "[ 67/14 ⇜ (155/32 → 311/64) ⇝ 141/28 | note:81 gain:0.025522409349774275 clip:1 s:piano release:0.1 pan:0.625 ]", - "[ 19/4 ⇜ (311/64 → 39/8) | note:G4 gain:0.36346331352698186 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", - "[ 19/4 ⇜ (311/64 → 39/8) | note:Bb4 gain:0.36346331352698186 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", - "[ 67/14 ⇜ (311/64 → 39/8) ⇝ 141/28 | note:71 gain:0.036346331352698186 clip:1 s:piano release:0.1 pan:0.5787037037037037 ]", - "[ 67/14 ⇜ (311/64 → 39/8) ⇝ 141/28 | note:76 gain:0.036346331352698186 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", - "[ 67/14 ⇜ (311/64 → 39/8) ⇝ 141/28 | note:77 gain:0.036346331352698186 clip:1 s:piano release:0.1 pan:0.6064814814814814 ]", - "[ 67/14 ⇜ (311/64 → 39/8) ⇝ 141/28 | note:81 gain:0.036346331352698186 clip:1 s:piano release:0.1 pan:0.625 ]", - "[ 67/14 ⇜ (39/8 → 313/64) ⇝ 141/28 | note:71 gain:0.05165366864730173 clip:1 s:piano release:0.1 pan:0.5787037037037037 ]", - "[ 67/14 ⇜ (39/8 → 313/64) ⇝ 141/28 | note:76 gain:0.05165366864730173 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", - "[ 67/14 ⇜ (39/8 → 313/64) ⇝ 141/28 | note:77 gain:0.05165366864730173 clip:1 s:piano release:0.1 pan:0.6064814814814814 ]", - "[ 67/14 ⇜ (39/8 → 313/64) ⇝ 141/28 | note:81 gain:0.05165366864730173 clip:1 s:piano release:0.1 pan:0.625 ]", - "[ 67/14 ⇜ (313/64 → 157/32) ⇝ 141/28 | note:71 gain:0.06247759065022569 clip:1 s:piano release:0.1 pan:0.5787037037037037 ]", - "[ 67/14 ⇜ (313/64 → 157/32) ⇝ 141/28 | note:76 gain:0.06247759065022569 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", - "[ 67/14 ⇜ (313/64 → 157/32) ⇝ 141/28 | note:77 gain:0.06247759065022569 clip:1 s:piano release:0.1 pan:0.6064814814814814 ]", - "[ 67/14 ⇜ (313/64 → 157/32) ⇝ 141/28 | note:81 gain:0.06247759065022569 clip:1 s:piano release:0.1 pan:0.625 ]", - "[ 67/14 ⇜ (157/32 → 315/64) ⇝ 141/28 | note:71 gain:0.06247759065022582 clip:1 s:piano release:0.1 pan:0.5787037037037037 ]", - "[ 67/14 ⇜ (157/32 → 315/64) ⇝ 141/28 | note:76 gain:0.06247759065022582 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", - "[ 67/14 ⇜ (157/32 → 315/64) ⇝ 141/28 | note:77 gain:0.06247759065022582 clip:1 s:piano release:0.1 pan:0.6064814814814814 ]", - "[ 67/14 ⇜ (157/32 → 315/64) ⇝ 141/28 | note:81 gain:0.06247759065022582 clip:1 s:piano release:0.1 pan:0.625 ]", - "[ 67/14 ⇜ (315/64 → 79/16) ⇝ 141/28 | note:71 gain:0.05165366864730201 clip:1 s:piano release:0.1 pan:0.5787037037037037 ]", - "[ 67/14 ⇜ (315/64 → 79/16) ⇝ 141/28 | note:76 gain:0.05165366864730201 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", - "[ 67/14 ⇜ (315/64 → 79/16) ⇝ 141/28 | note:77 gain:0.05165366864730201 clip:1 s:piano release:0.1 pan:0.6064814814814814 ]", - "[ 67/14 ⇜ (315/64 → 79/16) ⇝ 141/28 | note:81 gain:0.05165366864730201 clip:1 s:piano release:0.1 pan:0.625 ]", - "[ 67/14 ⇜ (79/16 → 317/64) ⇝ 141/28 | note:71 gain:0.03634633135269848 clip:1 s:piano release:0.1 pan:0.5787037037037037 ]", - "[ 67/14 ⇜ (79/16 → 317/64) ⇝ 141/28 | note:76 gain:0.03634633135269848 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", - "[ 67/14 ⇜ (79/16 → 317/64) ⇝ 141/28 | note:77 gain:0.03634633135269848 clip:1 s:piano release:0.1 pan:0.6064814814814814 ]", - "[ 67/14 ⇜ (79/16 → 317/64) ⇝ 141/28 | note:81 gain:0.03634633135269848 clip:1 s:piano release:0.1 pan:0.625 ]", - "[ 67/14 ⇜ (317/64 → 159/32) ⇝ 141/28 | note:71 gain:0.0255224093497744 clip:1 s:piano release:0.1 pan:0.5787037037037037 ]", - "[ 67/14 ⇜ (317/64 → 159/32) ⇝ 141/28 | note:76 gain:0.0255224093497744 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", - "[ 67/14 ⇜ (317/64 → 159/32) ⇝ 141/28 | note:77 gain:0.0255224093497744 clip:1 s:piano release:0.1 pan:0.6064814814814814 ]", - "[ 67/14 ⇜ (317/64 → 159/32) ⇝ 141/28 | note:81 gain:0.0255224093497744 clip:1 s:piano release:0.1 pan:0.625 ]", - "[ 67/14 ⇜ (159/32 → 319/64) ⇝ 141/28 | note:71 gain:0.02552240934977412 clip:1 s:piano release:0.1 pan:0.5787037037037037 ]", - "[ 67/14 ⇜ (159/32 → 319/64) ⇝ 141/28 | note:76 gain:0.02552240934977412 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", - "[ 67/14 ⇜ (159/32 → 319/64) ⇝ 141/28 | note:77 gain:0.02552240934977412 clip:1 s:piano release:0.1 pan:0.6064814814814814 ]", - "[ 67/14 ⇜ (159/32 → 319/64) ⇝ 141/28 | note:81 gain:0.02552240934977412 clip:1 s:piano release:0.1 pan:0.625 ]", - "[ 67/14 ⇜ (319/64 → 5/1) ⇝ 141/28 | note:71 gain:0.03634633135269779 clip:1 s:piano release:0.1 pan:0.5787037037037037 ]", - "[ 67/14 ⇜ (319/64 → 5/1) ⇝ 141/28 | note:76 gain:0.03634633135269779 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", - "[ 67/14 ⇜ (319/64 → 5/1) ⇝ 141/28 | note:77 gain:0.03634633135269779 clip:1 s:piano release:0.1 pan:0.6064814814814814 ]", - "[ 67/14 ⇜ (319/64 → 5/1) ⇝ 141/28 | note:81 gain:0.03634633135269779 clip:1 s:piano release:0.1 pan:0.625 ]", - "[ 67/14 ⇜ (5/1 → 321/64) ⇝ 141/28 | note:71 gain:0.05165366864730186 clip:1 s:piano release:0.1 pan:0.5787037037037037 ]", - "[ 67/14 ⇜ (5/1 → 321/64) ⇝ 141/28 | note:76 gain:0.05165366864730186 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", - "[ 67/14 ⇜ (5/1 → 321/64) ⇝ 141/28 | note:77 gain:0.05165366864730186 clip:1 s:piano release:0.1 pan:0.6064814814814814 ]", - "[ 67/14 ⇜ (5/1 → 321/64) ⇝ 141/28 | note:81 gain:0.05165366864730186 clip:1 s:piano release:0.1 pan:0.625 ]", - "[ (5/1 → 321/64) ⇝ 21/4 | note:G2 gain:0.5165366864730185 clip:1 s:piano release:0.1 pan:0.44907407407407407 ]", - "[ 67/14 ⇜ (321/64 → 161/32) ⇝ 141/28 | note:71 gain:0.06247759065022575 clip:1 s:piano release:0.1 pan:0.5787037037037037 ]", - "[ 67/14 ⇜ (321/64 → 161/32) ⇝ 141/28 | note:76 gain:0.06247759065022575 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", - "[ 67/14 ⇜ (321/64 → 161/32) ⇝ 141/28 | note:77 gain:0.06247759065022575 clip:1 s:piano release:0.1 pan:0.6064814814814814 ]", - "[ 67/14 ⇜ (321/64 → 161/32) ⇝ 141/28 | note:81 gain:0.06247759065022575 clip:1 s:piano release:0.1 pan:0.625 ]", - "[ 5/1 ⇜ (321/64 → 161/32) ⇝ 21/4 | note:G2 gain:0.6247759065022574 clip:1 s:piano release:0.1 pan:0.44907407407407407 ]", - "[ 67/14 ⇜ (161/32 → 141/28) | note:71 gain:0.06247759065022576 clip:1 s:piano release:0.1 pan:0.5787037037037037 ]", - "[ 67/14 ⇜ (161/32 → 141/28) | note:76 gain:0.06247759065022576 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", - "[ 67/14 ⇜ (161/32 → 141/28) | note:77 gain:0.06247759065022576 clip:1 s:piano release:0.1 pan:0.6064814814814814 ]", - "[ 67/14 ⇜ (161/32 → 141/28) | note:81 gain:0.06247759065022576 clip:1 s:piano release:0.1 pan:0.625 ]", - "[ 5/1 ⇜ (161/32 → 323/64) ⇝ 21/4 | note:G2 gain:0.6247759065022576 clip:1 s:piano release:0.1 pan:0.44907407407407407 ]", - "[ 5/1 ⇜ (323/64 → 81/16) ⇝ 21/4 | note:G2 gain:0.5165366864730189 clip:1 s:piano release:0.1 pan:0.44907407407407407 ]", - "[ 5/1 ⇜ (81/16 → 325/64) ⇝ 21/4 | note:G2 gain:0.36346331352698347 clip:1 s:piano release:0.1 pan:0.44907407407407407 ]", - "[ 5/1 ⇜ (325/64 → 163/32) ⇝ 21/4 | note:G2 gain:0.25522409349774344 clip:1 s:piano release:0.1 pan:0.44907407407407407 ]", - "[ 5/1 ⇜ (163/32 → 327/64) ⇝ 21/4 | note:G2 gain:0.25522409349774383 clip:1 s:piano release:0.1 pan:0.44907407407407407 ]", - "[ 5/1 ⇜ (327/64 → 41/8) ⇝ 21/4 | note:G2 gain:0.36346331352697914 clip:1 s:piano release:0.1 pan:0.44907407407407407 ]", - "[ 5/1 ⇜ (41/8 → 329/64) ⇝ 21/4 | note:G2 gain:0.5165366864730198 clip:1 s:piano release:0.1 pan:0.44907407407407407 ]", - "[ (41/8 → 329/64) ⇝ 21/4 | note:G4 gain:0.5165366864730198 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", - "[ (41/8 → 329/64) ⇝ 21/4 | note:Bb4 gain:0.5165366864730198 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", - "[ 5/1 ⇜ (329/64 → 165/32) ⇝ 21/4 | note:G2 gain:0.6247759065022557 clip:1 s:piano release:0.1 pan:0.44907407407407407 ]", - "[ 41/8 ⇜ (329/64 → 165/32) ⇝ 21/4 | note:G4 gain:0.6247759065022557 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", - "[ 41/8 ⇜ (329/64 → 165/32) ⇝ 21/4 | note:Bb4 gain:0.6247759065022557 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", - "[ 5/1 ⇜ (165/32 → 331/64) ⇝ 21/4 | note:G2 gain:0.624775906502257 clip:1 s:piano release:0.1 pan:0.44907407407407407 ]", - "[ 41/8 ⇜ (165/32 → 331/64) ⇝ 21/4 | note:G4 gain:0.624775906502257 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", - "[ 41/8 ⇜ (165/32 → 331/64) ⇝ 21/4 | note:Bb4 gain:0.624775906502257 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", - "[ 5/1 ⇜ (331/64 → 83/16) ⇝ 21/4 | note:G2 gain:0.5165366864730229 clip:1 s:piano release:0.1 pan:0.44907407407407407 ]", - "[ 41/8 ⇜ (331/64 → 83/16) ⇝ 21/4 | note:G4 gain:0.5165366864730229 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", - "[ 41/8 ⇜ (331/64 → 83/16) ⇝ 21/4 | note:Bb4 gain:0.5165366864730229 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", - "[ 5/1 ⇜ (83/16 → 333/64) ⇝ 21/4 | note:G2 gain:0.36346331352698225 clip:1 s:piano release:0.1 pan:0.44907407407407407 ]", - "[ 41/8 ⇜ (83/16 → 333/64) ⇝ 21/4 | note:G4 gain:0.36346331352698225 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", - "[ 41/8 ⇜ (83/16 → 333/64) ⇝ 21/4 | note:Bb4 gain:0.36346331352698225 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", - "[ 5/1 ⇜ (333/64 → 167/32) ⇝ 21/4 | note:G2 gain:0.2552240934977451 clip:1 s:piano release:0.1 pan:0.44907407407407407 ]", - "[ 41/8 ⇜ (333/64 → 167/32) ⇝ 21/4 | note:G4 gain:0.2552240934977451 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", - "[ 41/8 ⇜ (333/64 → 167/32) ⇝ 21/4 | note:Bb4 gain:0.2552240934977451 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", - "[ 5/1 ⇜ (167/32 → 335/64) ⇝ 21/4 | note:G2 gain:0.25522409349774217 clip:1 s:piano release:0.1 pan:0.44907407407407407 ]", - "[ 41/8 ⇜ (167/32 → 335/64) ⇝ 21/4 | note:G4 gain:0.25522409349774217 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", - "[ 41/8 ⇜ (167/32 → 335/64) ⇝ 21/4 | note:Bb4 gain:0.25522409349774217 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", - "[ 5/1 ⇜ (335/64 → 21/4) | note:G2 gain:0.36346331352697514 clip:1 s:piano release:0.1 pan:0.44907407407407407 ]", - "[ 41/8 ⇜ (335/64 → 21/4) | note:G4 gain:0.36346331352697514 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", - "[ 41/8 ⇜ (335/64 → 21/4) | note:Bb4 gain:0.36346331352697514 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", - "[ (21/4 → 337/64) ⇝ 11/2 | note:B3 gain:0.25826834323650794 clip:1 s:piano release:0.1 pan:0.5231481481481481 ]", - "[ (21/4 → 337/64) ⇝ 11/2 | note:E4 gain:0.25826834323650794 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", - "[ (21/4 → 337/64) ⇝ 11/2 | note:F4 gain:0.25826834323650794 clip:1 s:piano release:0.1 pan:0.5509259259259259 ]", - "[ (21/4 → 337/64) ⇝ 11/2 | note:A4 gain:0.25826834323650794 clip:1 s:piano release:0.1 pan:0.5694444444444444 ]", - "[ 21/4 ⇜ (337/64 → 169/32) ⇝ 11/2 | note:B3 gain:0.3123879532511293 clip:1 s:piano release:0.1 pan:0.5231481481481481 ]", - "[ 21/4 ⇜ (337/64 → 169/32) ⇝ 11/2 | note:E4 gain:0.3123879532511293 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", - "[ 21/4 ⇜ (337/64 → 169/32) ⇝ 11/2 | note:F4 gain:0.3123879532511293 clip:1 s:piano release:0.1 pan:0.5509259259259259 ]", - "[ 21/4 ⇜ (337/64 → 169/32) ⇝ 11/2 | note:A4 gain:0.3123879532511293 clip:1 s:piano release:0.1 pan:0.5694444444444444 ]", - "[ 21/4 ⇜ (169/32 → 339/64) ⇝ 11/2 | note:B3 gain:0.31238795325112934 clip:1 s:piano release:0.1 pan:0.5231481481481481 ]", - "[ 21/4 ⇜ (169/32 → 339/64) ⇝ 11/2 | note:E4 gain:0.31238795325112934 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", - "[ 21/4 ⇜ (169/32 → 339/64) ⇝ 11/2 | note:F4 gain:0.31238795325112934 clip:1 s:piano release:0.1 pan:0.5509259259259259 ]", - "[ 21/4 ⇜ (169/32 → 339/64) ⇝ 11/2 | note:A4 gain:0.31238795325112934 clip:1 s:piano release:0.1 pan:0.5694444444444444 ]", - "[ 21/4 ⇜ (339/64 → 85/16) ⇝ 11/2 | note:B3 gain:0.2582683432365082 clip:1 s:piano release:0.1 pan:0.5231481481481481 ]", - "[ 21/4 ⇜ (339/64 → 85/16) ⇝ 11/2 | note:E4 gain:0.2582683432365082 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", - "[ 21/4 ⇜ (339/64 → 85/16) ⇝ 11/2 | note:F4 gain:0.2582683432365082 clip:1 s:piano release:0.1 pan:0.5509259259259259 ]", - "[ 21/4 ⇜ (339/64 → 85/16) ⇝ 11/2 | note:A4 gain:0.2582683432365082 clip:1 s:piano release:0.1 pan:0.5694444444444444 ]", - "[ 21/4 ⇜ (85/16 → 341/64) ⇝ 11/2 | note:B3 gain:0.18173165676349312 clip:1 s:piano release:0.1 pan:0.5231481481481481 ]", - "[ 21/4 ⇜ (85/16 → 341/64) ⇝ 11/2 | note:E4 gain:0.18173165676349312 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", - "[ 21/4 ⇜ (85/16 → 341/64) ⇝ 11/2 | note:F4 gain:0.18173165676349312 clip:1 s:piano release:0.1 pan:0.5509259259259259 ]", - "[ 21/4 ⇜ (85/16 → 341/64) ⇝ 11/2 | note:A4 gain:0.18173165676349312 clip:1 s:piano release:0.1 pan:0.5694444444444444 ]", - "[ 21/4 ⇜ (341/64 → 171/32) ⇝ 11/2 | note:B3 gain:0.1276120467488712 clip:1 s:piano release:0.1 pan:0.5231481481481481 ]", - "[ 21/4 ⇜ (341/64 → 171/32) ⇝ 11/2 | note:E4 gain:0.1276120467488712 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", - "[ 21/4 ⇜ (341/64 → 171/32) ⇝ 11/2 | note:F4 gain:0.1276120467488712 clip:1 s:piano release:0.1 pan:0.5509259259259259 ]", - "[ 21/4 ⇜ (341/64 → 171/32) ⇝ 11/2 | note:A4 gain:0.1276120467488712 clip:1 s:piano release:0.1 pan:0.5694444444444444 ]", - "[ 21/4 ⇜ (171/32 → 343/64) ⇝ 11/2 | note:B3 gain:0.12761204674887025 clip:1 s:piano release:0.1 pan:0.5231481481481481 ]", - "[ 21/4 ⇜ (171/32 → 343/64) ⇝ 11/2 | note:E4 gain:0.12761204674887025 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", - "[ 21/4 ⇜ (171/32 → 343/64) ⇝ 11/2 | note:F4 gain:0.12761204674887025 clip:1 s:piano release:0.1 pan:0.5509259259259259 ]", - "[ 21/4 ⇜ (171/32 → 343/64) ⇝ 11/2 | note:A4 gain:0.12761204674887025 clip:1 s:piano release:0.1 pan:0.5694444444444444 ]", - "[ 21/4 ⇜ (343/64 → 43/8) ⇝ 11/2 | note:B3 gain:0.18173165676349085 clip:1 s:piano release:0.1 pan:0.5231481481481481 ]", - "[ 21/4 ⇜ (343/64 → 43/8) ⇝ 11/2 | note:E4 gain:0.18173165676349085 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", - "[ 21/4 ⇜ (343/64 → 43/8) ⇝ 11/2 | note:F4 gain:0.18173165676349085 clip:1 s:piano release:0.1 pan:0.5509259259259259 ]", - "[ 21/4 ⇜ (343/64 → 43/8) ⇝ 11/2 | note:A4 gain:0.18173165676349085 clip:1 s:piano release:0.1 pan:0.5694444444444444 ]", - "[ 21/4 ⇜ (43/8 → 345/64) ⇝ 11/2 | note:B3 gain:0.2582683432365059 clip:1 s:piano release:0.1 pan:0.5231481481481481 ]", - "[ 21/4 ⇜ (43/8 → 345/64) ⇝ 11/2 | note:E4 gain:0.2582683432365059 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", - "[ 21/4 ⇜ (43/8 → 345/64) ⇝ 11/2 | note:F4 gain:0.2582683432365059 clip:1 s:piano release:0.1 pan:0.5509259259259259 ]", - "[ 21/4 ⇜ (43/8 → 345/64) ⇝ 11/2 | note:A4 gain:0.2582683432365059 clip:1 s:piano release:0.1 pan:0.5694444444444444 ]", - "[ 21/4 ⇜ (345/64 → 173/32) ⇝ 11/2 | note:B3 gain:0.3123879532511284 clip:1 s:piano release:0.1 pan:0.5231481481481481 ]", - "[ 21/4 ⇜ (345/64 → 173/32) ⇝ 11/2 | note:E4 gain:0.3123879532511284 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", - "[ 21/4 ⇜ (345/64 → 173/32) ⇝ 11/2 | note:F4 gain:0.3123879532511284 clip:1 s:piano release:0.1 pan:0.5509259259259259 ]", - "[ 21/4 ⇜ (345/64 → 173/32) ⇝ 11/2 | note:A4 gain:0.3123879532511284 clip:1 s:piano release:0.1 pan:0.5694444444444444 ]", - "[ 21/4 ⇜ (173/32 → 347/64) ⇝ 11/2 | note:B3 gain:0.31238795325113017 clip:1 s:piano release:0.1 pan:0.5231481481481481 ]", - "[ 21/4 ⇜ (173/32 → 347/64) ⇝ 11/2 | note:E4 gain:0.31238795325113017 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", - "[ 21/4 ⇜ (173/32 → 347/64) ⇝ 11/2 | note:F4 gain:0.31238795325113017 clip:1 s:piano release:0.1 pan:0.5509259259259259 ]", - "[ 21/4 ⇜ (173/32 → 347/64) ⇝ 11/2 | note:A4 gain:0.31238795325113017 clip:1 s:piano release:0.1 pan:0.5694444444444444 ]", - "[ 21/4 ⇜ (347/64 → 87/16) ⇝ 11/2 | note:B3 gain:0.25826834323651016 clip:1 s:piano release:0.1 pan:0.5231481481481481 ]", - "[ 21/4 ⇜ (347/64 → 87/16) ⇝ 11/2 | note:E4 gain:0.25826834323651016 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", - "[ 21/4 ⇜ (347/64 → 87/16) ⇝ 11/2 | note:F4 gain:0.25826834323651016 clip:1 s:piano release:0.1 pan:0.5509259259259259 ]", - "[ 21/4 ⇜ (347/64 → 87/16) ⇝ 11/2 | note:A4 gain:0.25826834323651016 clip:1 s:piano release:0.1 pan:0.5694444444444444 ]", - "[ 21/4 ⇜ (87/16 → 349/64) ⇝ 11/2 | note:B3 gain:0.18173165676348985 clip:1 s:piano release:0.1 pan:0.5231481481481481 ]", - "[ 21/4 ⇜ (87/16 → 349/64) ⇝ 11/2 | note:E4 gain:0.18173165676348985 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", - "[ 21/4 ⇜ (87/16 → 349/64) ⇝ 11/2 | note:F4 gain:0.18173165676348985 clip:1 s:piano release:0.1 pan:0.5509259259259259 ]", - "[ 21/4 ⇜ (87/16 → 349/64) ⇝ 11/2 | note:A4 gain:0.18173165676348985 clip:1 s:piano release:0.1 pan:0.5694444444444444 ]", - "[ 21/4 ⇜ (349/64 → 175/32) ⇝ 11/2 | note:B3 gain:0.12761204674887203 clip:1 s:piano release:0.1 pan:0.5231481481481481 ]", - "[ 21/4 ⇜ (349/64 → 175/32) ⇝ 11/2 | note:E4 gain:0.12761204674887203 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", - "[ 21/4 ⇜ (349/64 → 175/32) ⇝ 11/2 | note:F4 gain:0.12761204674887203 clip:1 s:piano release:0.1 pan:0.5509259259259259 ]", - "[ 21/4 ⇜ (349/64 → 175/32) ⇝ 11/2 | note:A4 gain:0.12761204674887203 clip:1 s:piano release:0.1 pan:0.5694444444444444 ]", - "[ 21/4 ⇜ (175/32 → 351/64) ⇝ 11/2 | note:B3 gain:0.1276120467488716 clip:1 s:piano release:0.1 pan:0.5231481481481481 ]", - "[ 21/4 ⇜ (175/32 → 351/64) ⇝ 11/2 | note:E4 gain:0.1276120467488716 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", - "[ 21/4 ⇜ (175/32 → 351/64) ⇝ 11/2 | note:F4 gain:0.1276120467488716 clip:1 s:piano release:0.1 pan:0.5509259259259259 ]", - "[ 21/4 ⇜ (175/32 → 351/64) ⇝ 11/2 | note:A4 gain:0.1276120467488716 clip:1 s:piano release:0.1 pan:0.5694444444444444 ]", - "[ 21/4 ⇜ (351/64 → 11/2) | note:B3 gain:0.18173165676348885 clip:1 s:piano release:0.1 pan:0.5231481481481481 ]", - "[ 21/4 ⇜ (351/64 → 11/2) | note:E4 gain:0.18173165676348885 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", - "[ 21/4 ⇜ (351/64 → 11/2) | note:F4 gain:0.18173165676348885 clip:1 s:piano release:0.1 pan:0.5509259259259259 ]", - "[ 21/4 ⇜ (351/64 → 11/2) | note:A4 gain:0.18173165676348885 clip:1 s:piano release:0.1 pan:0.5694444444444444 ]", - "[ (11/2 → 353/64) ⇝ 45/8 | note:D5 gain:0.5165366864730183 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", - "[ (11/2 → 353/64) ⇝ 45/8 | note:F5 gain:0.5165366864730183 clip:1 s:piano release:0.1 pan:0.6064814814814814 ]", - "[ (11/2 → 353/64) ⇝ 23/4 | note:G2 gain:0.5165366864730183 clip:1 s:piano release:0.1 pan:0.44907407407407407 ]", - "[ 11/2 ⇜ (353/64 → 177/32) ⇝ 45/8 | note:D5 gain:0.6247759065022551 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", - "[ 11/2 ⇜ (353/64 → 177/32) ⇝ 45/8 | note:F5 gain:0.6247759065022551 clip:1 s:piano release:0.1 pan:0.6064814814814814 ]", - "[ 11/2 ⇜ (353/64 → 177/32) ⇝ 23/4 | note:G2 gain:0.6247759065022551 clip:1 s:piano release:0.1 pan:0.44907407407407407 ]", - "[ 11/2 ⇜ (177/32 → 355/64) ⇝ 45/8 | note:D5 gain:0.6247759065022577 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", - "[ 11/2 ⇜ (177/32 → 355/64) ⇝ 45/8 | note:F5 gain:0.6247759065022577 clip:1 s:piano release:0.1 pan:0.6064814814814814 ]", - "[ 11/2 ⇜ (177/32 → 355/64) ⇝ 23/4 | note:G2 gain:0.6247759065022577 clip:1 s:piano release:0.1 pan:0.44907407407407407 ]", - "[ (155/28 → 355/64) ⇝ 81/14 | note:71 gain:0.06247759065022577 clip:1 s:piano release:0.1 pan:0.5787037037037037 ]", - "[ (155/28 → 355/64) ⇝ 81/14 | note:76 gain:0.06247759065022577 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", - "[ (155/28 → 355/64) ⇝ 81/14 | note:77 gain:0.06247759065022577 clip:1 s:piano release:0.1 pan:0.6064814814814814 ]", - "[ (155/28 → 355/64) ⇝ 81/14 | note:81 gain:0.06247759065022577 clip:1 s:piano release:0.1 pan:0.625 ]", - "[ 11/2 ⇜ (355/64 → 89/16) ⇝ 45/8 | note:D5 gain:0.5165366864730244 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", - "[ 11/2 ⇜ (355/64 → 89/16) ⇝ 45/8 | note:F5 gain:0.5165366864730244 clip:1 s:piano release:0.1 pan:0.6064814814814814 ]", - "[ 11/2 ⇜ (355/64 → 89/16) ⇝ 23/4 | note:G2 gain:0.5165366864730244 clip:1 s:piano release:0.1 pan:0.44907407407407407 ]", - "[ 155/28 ⇜ (355/64 → 89/16) ⇝ 81/14 | note:71 gain:0.05165366864730245 clip:1 s:piano release:0.1 pan:0.5787037037037037 ]", - "[ 155/28 ⇜ (355/64 → 89/16) ⇝ 81/14 | note:76 gain:0.05165366864730245 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", - "[ 155/28 ⇜ (355/64 → 89/16) ⇝ 81/14 | note:77 gain:0.05165366864730245 clip:1 s:piano release:0.1 pan:0.6064814814814814 ]", - "[ 155/28 ⇜ (355/64 → 89/16) ⇝ 81/14 | note:81 gain:0.05165366864730245 clip:1 s:piano release:0.1 pan:0.625 ]", - "[ 11/2 ⇜ (89/16 → 357/64) ⇝ 45/8 | note:D5 gain:0.36346331352698363 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", - "[ 11/2 ⇜ (89/16 → 357/64) ⇝ 45/8 | note:F5 gain:0.36346331352698363 clip:1 s:piano release:0.1 pan:0.6064814814814814 ]", - "[ 11/2 ⇜ (89/16 → 357/64) ⇝ 23/4 | note:G2 gain:0.36346331352698363 clip:1 s:piano release:0.1 pan:0.44907407407407407 ]", - "[ 155/28 ⇜ (89/16 → 357/64) ⇝ 81/14 | note:71 gain:0.036346331352698366 clip:1 s:piano release:0.1 pan:0.5787037037037037 ]", - "[ 155/28 ⇜ (89/16 → 357/64) ⇝ 81/14 | note:76 gain:0.036346331352698366 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", - "[ 155/28 ⇜ (89/16 → 357/64) ⇝ 81/14 | note:77 gain:0.036346331352698366 clip:1 s:piano release:0.1 pan:0.6064814814814814 ]", - "[ 155/28 ⇜ (89/16 → 357/64) ⇝ 81/14 | note:81 gain:0.036346331352698366 clip:1 s:piano release:0.1 pan:0.625 ]", - "[ 11/2 ⇜ (357/64 → 179/32) ⇝ 45/8 | note:D5 gain:0.25522409349774133 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", - "[ 11/2 ⇜ (357/64 → 179/32) ⇝ 45/8 | note:F5 gain:0.25522409349774133 clip:1 s:piano release:0.1 pan:0.6064814814814814 ]", - "[ 11/2 ⇜ (357/64 → 179/32) ⇝ 23/4 | note:G2 gain:0.25522409349774133 clip:1 s:piano release:0.1 pan:0.44907407407407407 ]", - "[ 155/28 ⇜ (357/64 → 179/32) ⇝ 81/14 | note:71 gain:0.025522409349774136 clip:1 s:piano release:0.1 pan:0.5787037037037037 ]", - "[ 155/28 ⇜ (357/64 → 179/32) ⇝ 81/14 | note:76 gain:0.025522409349774136 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", - "[ 155/28 ⇜ (357/64 → 179/32) ⇝ 81/14 | note:77 gain:0.025522409349774136 clip:1 s:piano release:0.1 pan:0.6064814814814814 ]", - "[ 155/28 ⇜ (357/64 → 179/32) ⇝ 81/14 | note:81 gain:0.025522409349774136 clip:1 s:piano release:0.1 pan:0.625 ]", - "[ 11/2 ⇜ (179/32 → 359/64) ⇝ 45/8 | note:D5 gain:0.2552240934977416 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", - "[ 11/2 ⇜ (179/32 → 359/64) ⇝ 45/8 | note:F5 gain:0.2552240934977416 clip:1 s:piano release:0.1 pan:0.6064814814814814 ]", - "[ 11/2 ⇜ (179/32 → 359/64) ⇝ 23/4 | note:G2 gain:0.2552240934977416 clip:1 s:piano release:0.1 pan:0.44907407407407407 ]", - "[ 155/28 ⇜ (179/32 → 359/64) ⇝ 81/14 | note:71 gain:0.025522409349774164 clip:1 s:piano release:0.1 pan:0.5787037037037037 ]", - "[ 155/28 ⇜ (179/32 → 359/64) ⇝ 81/14 | note:76 gain:0.025522409349774164 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", - "[ 155/28 ⇜ (179/32 → 359/64) ⇝ 81/14 | note:77 gain:0.025522409349774164 clip:1 s:piano release:0.1 pan:0.6064814814814814 ]", - "[ 155/28 ⇜ (179/32 → 359/64) ⇝ 81/14 | note:81 gain:0.025522409349774164 clip:1 s:piano release:0.1 pan:0.625 ]", - "[ 11/2 ⇜ (359/64 → 45/8) | note:D5 gain:0.36346331352698424 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", - "[ 11/2 ⇜ (359/64 → 45/8) | note:F5 gain:0.36346331352698424 clip:1 s:piano release:0.1 pan:0.6064814814814814 ]", - "[ 11/2 ⇜ (359/64 → 45/8) ⇝ 23/4 | note:G2 gain:0.36346331352698424 clip:1 s:piano release:0.1 pan:0.44907407407407407 ]", - "[ 155/28 ⇜ (359/64 → 45/8) ⇝ 81/14 | note:71 gain:0.03634633135269843 clip:1 s:piano release:0.1 pan:0.5787037037037037 ]", - "[ 155/28 ⇜ (359/64 → 45/8) ⇝ 81/14 | note:76 gain:0.03634633135269843 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", - "[ 155/28 ⇜ (359/64 → 45/8) ⇝ 81/14 | note:77 gain:0.03634633135269843 clip:1 s:piano release:0.1 pan:0.6064814814814814 ]", - "[ 155/28 ⇜ (359/64 → 45/8) ⇝ 81/14 | note:81 gain:0.03634633135269843 clip:1 s:piano release:0.1 pan:0.625 ]", - "[ 11/2 ⇜ (45/8 → 361/64) ⇝ 23/4 | note:G2 gain:0.5165366864730144 clip:1 s:piano release:0.1 pan:0.44907407407407407 ]", - "[ 155/28 ⇜ (45/8 → 361/64) ⇝ 81/14 | note:71 gain:0.05165366864730145 clip:1 s:piano release:0.1 pan:0.5787037037037037 ]", - "[ 155/28 ⇜ (45/8 → 361/64) ⇝ 81/14 | note:76 gain:0.05165366864730145 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", - "[ 155/28 ⇜ (45/8 → 361/64) ⇝ 81/14 | note:77 gain:0.05165366864730145 clip:1 s:piano release:0.1 pan:0.6064814814814814 ]", - "[ 155/28 ⇜ (45/8 → 361/64) ⇝ 81/14 | note:81 gain:0.05165366864730145 clip:1 s:piano release:0.1 pan:0.625 ]", - "[ 11/2 ⇜ (361/64 → 181/32) ⇝ 23/4 | note:G2 gain:0.6247759065022578 clip:1 s:piano release:0.1 pan:0.44907407407407407 ]", - "[ 155/28 ⇜ (361/64 → 181/32) ⇝ 81/14 | note:71 gain:0.06247759065022578 clip:1 s:piano release:0.1 pan:0.5787037037037037 ]", - "[ 155/28 ⇜ (361/64 → 181/32) ⇝ 81/14 | note:76 gain:0.06247759065022578 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", - "[ 155/28 ⇜ (361/64 → 181/32) ⇝ 81/14 | note:77 gain:0.06247759065022578 clip:1 s:piano release:0.1 pan:0.6064814814814814 ]", - "[ 155/28 ⇜ (361/64 → 181/32) ⇝ 81/14 | note:81 gain:0.06247759065022578 clip:1 s:piano release:0.1 pan:0.625 ]", - "[ 11/2 ⇜ (181/32 → 363/64) ⇝ 23/4 | note:G2 gain:0.6247759065022592 clip:1 s:piano release:0.1 pan:0.44907407407407407 ]", - "[ 155/28 ⇜ (181/32 → 363/64) ⇝ 81/14 | note:71 gain:0.06247759065022593 clip:1 s:piano release:0.1 pan:0.5787037037037037 ]", - "[ 155/28 ⇜ (181/32 → 363/64) ⇝ 81/14 | note:76 gain:0.06247759065022593 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", - "[ 155/28 ⇜ (181/32 → 363/64) ⇝ 81/14 | note:77 gain:0.06247759065022593 clip:1 s:piano release:0.1 pan:0.6064814814814814 ]", - "[ 155/28 ⇜ (181/32 → 363/64) ⇝ 81/14 | note:81 gain:0.06247759065022593 clip:1 s:piano release:0.1 pan:0.625 ]", - "[ 11/2 ⇜ (363/64 → 91/16) ⇝ 23/4 | note:G2 gain:0.5165366864730178 clip:1 s:piano release:0.1 pan:0.44907407407407407 ]", - "[ 155/28 ⇜ (363/64 → 91/16) ⇝ 81/14 | note:71 gain:0.05165366864730178 clip:1 s:piano release:0.1 pan:0.5787037037037037 ]", - "[ 155/28 ⇜ (363/64 → 91/16) ⇝ 81/14 | note:76 gain:0.05165366864730178 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", - "[ 155/28 ⇜ (363/64 → 91/16) ⇝ 81/14 | note:77 gain:0.05165366864730178 clip:1 s:piano release:0.1 pan:0.6064814814814814 ]", - "[ 155/28 ⇜ (363/64 → 91/16) ⇝ 81/14 | note:81 gain:0.05165366864730178 clip:1 s:piano release:0.1 pan:0.625 ]", - "[ 11/2 ⇜ (91/16 → 365/64) ⇝ 23/4 | note:G2 gain:0.36346331352698763 clip:1 s:piano release:0.1 pan:0.44907407407407407 ]", - "[ 155/28 ⇜ (91/16 → 365/64) ⇝ 81/14 | note:71 gain:0.03634633135269876 clip:1 s:piano release:0.1 pan:0.5787037037037037 ]", - "[ 155/28 ⇜ (91/16 → 365/64) ⇝ 81/14 | note:76 gain:0.03634633135269876 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", - "[ 155/28 ⇜ (91/16 → 365/64) ⇝ 81/14 | note:77 gain:0.03634633135269876 clip:1 s:piano release:0.1 pan:0.6064814814814814 ]", - "[ 155/28 ⇜ (91/16 → 365/64) ⇝ 81/14 | note:81 gain:0.03634633135269876 clip:1 s:piano release:0.1 pan:0.625 ]", - "[ 11/2 ⇜ (365/64 → 183/32) ⇝ 23/4 | note:G2 gain:0.255224093497743 clip:1 s:piano release:0.1 pan:0.44907407407407407 ]", - "[ 155/28 ⇜ (365/64 → 183/32) ⇝ 81/14 | note:71 gain:0.025522409349774303 clip:1 s:piano release:0.1 pan:0.5787037037037037 ]", - "[ 155/28 ⇜ (365/64 → 183/32) ⇝ 81/14 | note:76 gain:0.025522409349774303 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", - "[ 155/28 ⇜ (365/64 → 183/32) ⇝ 81/14 | note:77 gain:0.025522409349774303 clip:1 s:piano release:0.1 pan:0.6064814814814814 ]", - "[ 155/28 ⇜ (365/64 → 183/32) ⇝ 81/14 | note:81 gain:0.025522409349774303 clip:1 s:piano release:0.1 pan:0.625 ]", - "[ 11/2 ⇜ (183/32 → 367/64) ⇝ 23/4 | note:G2 gain:0.2552240934977399 clip:1 s:piano release:0.1 pan:0.44907407407407407 ]", - "[ 155/28 ⇜ (183/32 → 367/64) ⇝ 81/14 | note:71 gain:0.02552240934977399 clip:1 s:piano release:0.1 pan:0.5787037037037037 ]", - "[ 155/28 ⇜ (183/32 → 367/64) ⇝ 81/14 | note:76 gain:0.02552240934977399 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", - "[ 155/28 ⇜ (183/32 → 367/64) ⇝ 81/14 | note:77 gain:0.02552240934977399 clip:1 s:piano release:0.1 pan:0.6064814814814814 ]", - "[ 155/28 ⇜ (183/32 → 367/64) ⇝ 81/14 | note:81 gain:0.02552240934977399 clip:1 s:piano release:0.1 pan:0.625 ]", - "[ 11/2 ⇜ (367/64 → 23/4) | note:G2 gain:0.36346331352698025 clip:1 s:piano release:0.1 pan:0.44907407407407407 ]", - "[ 155/28 ⇜ (367/64 → 23/4) ⇝ 81/14 | note:71 gain:0.036346331352698026 clip:1 s:piano release:0.1 pan:0.5787037037037037 ]", - "[ 155/28 ⇜ (367/64 → 23/4) ⇝ 81/14 | note:76 gain:0.036346331352698026 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", - "[ 155/28 ⇜ (367/64 → 23/4) ⇝ 81/14 | note:77 gain:0.036346331352698026 clip:1 s:piano release:0.1 pan:0.6064814814814814 ]", - "[ 155/28 ⇜ (367/64 → 23/4) ⇝ 81/14 | note:81 gain:0.036346331352698026 clip:1 s:piano release:0.1 pan:0.625 ]", - "[ 155/28 ⇜ (23/4 → 369/64) ⇝ 81/14 | note:71 gain:0.05165366864730209 clip:1 s:piano release:0.1 pan:0.5787037037037037 ]", - "[ 155/28 ⇜ (23/4 → 369/64) ⇝ 81/14 | note:76 gain:0.05165366864730209 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", - "[ 155/28 ⇜ (23/4 → 369/64) ⇝ 81/14 | note:77 gain:0.05165366864730209 clip:1 s:piano release:0.1 pan:0.6064814814814814 ]", - "[ 155/28 ⇜ (23/4 → 369/64) ⇝ 81/14 | note:81 gain:0.05165366864730209 clip:1 s:piano release:0.1 pan:0.625 ]", - "[ (23/4 → 369/64) ⇝ 47/8 | note:D5 gain:0.5165366864730209 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", - "[ (23/4 → 369/64) ⇝ 47/8 | note:F5 gain:0.5165366864730209 clip:1 s:piano release:0.1 pan:0.6064814814814814 ]", - "[ (23/4 → 369/64) ⇝ 6/1 | note:B3 gain:0.25826834323651043 clip:1 s:piano release:0.1 pan:0.5231481481481481 ]", - "[ (23/4 → 369/64) ⇝ 6/1 | note:E4 gain:0.25826834323651043 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", - "[ (23/4 → 369/64) ⇝ 6/1 | note:F4 gain:0.25826834323651043 clip:1 s:piano release:0.1 pan:0.5509259259259259 ]", - "[ (23/4 → 369/64) ⇝ 6/1 | note:A4 gain:0.25826834323651043 clip:1 s:piano release:0.1 pan:0.5694444444444444 ]", - "[ 155/28 ⇜ (369/64 → 185/32) ⇝ 81/14 | note:71 gain:0.06247759065022562 clip:1 s:piano release:0.1 pan:0.5787037037037037 ]", - "[ 155/28 ⇜ (369/64 → 185/32) ⇝ 81/14 | note:76 gain:0.06247759065022562 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", - "[ 155/28 ⇜ (369/64 → 185/32) ⇝ 81/14 | note:77 gain:0.06247759065022562 clip:1 s:piano release:0.1 pan:0.6064814814814814 ]", - "[ 155/28 ⇜ (369/64 → 185/32) ⇝ 81/14 | note:81 gain:0.06247759065022562 clip:1 s:piano release:0.1 pan:0.625 ]", - "[ 23/4 ⇜ (369/64 → 185/32) ⇝ 47/8 | note:D5 gain:0.6247759065022562 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", - "[ 23/4 ⇜ (369/64 → 185/32) ⇝ 47/8 | note:F5 gain:0.6247759065022562 clip:1 s:piano release:0.1 pan:0.6064814814814814 ]", - "[ 23/4 ⇜ (369/64 → 185/32) ⇝ 6/1 | note:B3 gain:0.3123879532511281 clip:1 s:piano release:0.1 pan:0.5231481481481481 ]", - "[ 23/4 ⇜ (369/64 → 185/32) ⇝ 6/1 | note:E4 gain:0.3123879532511281 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", - "[ 23/4 ⇜ (369/64 → 185/32) ⇝ 6/1 | note:F4 gain:0.3123879532511281 clip:1 s:piano release:0.1 pan:0.5509259259259259 ]", - "[ 23/4 ⇜ (369/64 → 185/32) ⇝ 6/1 | note:A4 gain:0.3123879532511281 clip:1 s:piano release:0.1 pan:0.5694444444444444 ]", - "[ 155/28 ⇜ (185/32 → 81/14) | note:71 gain:0.06247759065022566 clip:1 s:piano release:0.1 pan:0.5787037037037037 ]", - "[ 155/28 ⇜ (185/32 → 81/14) | note:76 gain:0.06247759065022566 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", - "[ 155/28 ⇜ (185/32 → 81/14) | note:77 gain:0.06247759065022566 clip:1 s:piano release:0.1 pan:0.6064814814814814 ]", - "[ 155/28 ⇜ (185/32 → 81/14) | note:81 gain:0.06247759065022566 clip:1 s:piano release:0.1 pan:0.625 ]", - "[ 23/4 ⇜ (185/32 → 371/64) ⇝ 47/8 | note:D5 gain:0.6247759065022566 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", - "[ 23/4 ⇜ (185/32 → 371/64) ⇝ 47/8 | note:F5 gain:0.6247759065022566 clip:1 s:piano release:0.1 pan:0.6064814814814814 ]", - "[ 23/4 ⇜ (185/32 → 371/64) ⇝ 6/1 | note:B3 gain:0.3123879532511283 clip:1 s:piano release:0.1 pan:0.5231481481481481 ]", - "[ 23/4 ⇜ (185/32 → 371/64) ⇝ 6/1 | note:E4 gain:0.3123879532511283 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", - "[ 23/4 ⇜ (185/32 → 371/64) ⇝ 6/1 | note:F4 gain:0.3123879532511283 clip:1 s:piano release:0.1 pan:0.5509259259259259 ]", - "[ 23/4 ⇜ (185/32 → 371/64) ⇝ 6/1 | note:A4 gain:0.3123879532511283 clip:1 s:piano release:0.1 pan:0.5694444444444444 ]", - "[ 23/4 ⇜ (371/64 → 93/16) ⇝ 47/8 | note:D5 gain:0.5165366864730218 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", - "[ 23/4 ⇜ (371/64 → 93/16) ⇝ 47/8 | note:F5 gain:0.5165366864730218 clip:1 s:piano release:0.1 pan:0.6064814814814814 ]", - "[ 23/4 ⇜ (371/64 → 93/16) ⇝ 6/1 | note:B3 gain:0.2582683432365109 clip:1 s:piano release:0.1 pan:0.5231481481481481 ]", - "[ 23/4 ⇜ (371/64 → 93/16) ⇝ 6/1 | note:E4 gain:0.2582683432365109 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", - "[ 23/4 ⇜ (371/64 → 93/16) ⇝ 6/1 | note:F4 gain:0.2582683432365109 clip:1 s:piano release:0.1 pan:0.5509259259259259 ]", - "[ 23/4 ⇜ (371/64 → 93/16) ⇝ 6/1 | note:A4 gain:0.2582683432365109 clip:1 s:piano release:0.1 pan:0.5694444444444444 ]", - "[ 23/4 ⇜ (93/16 → 373/64) ⇝ 47/8 | note:D5 gain:0.36346331352698114 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", - "[ 23/4 ⇜ (93/16 → 373/64) ⇝ 47/8 | note:F5 gain:0.36346331352698114 clip:1 s:piano release:0.1 pan:0.6064814814814814 ]", - "[ 23/4 ⇜ (93/16 → 373/64) ⇝ 6/1 | note:B3 gain:0.18173165676349057 clip:1 s:piano release:0.1 pan:0.5231481481481481 ]", - "[ 23/4 ⇜ (93/16 → 373/64) ⇝ 6/1 | note:E4 gain:0.18173165676349057 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", - "[ 23/4 ⇜ (93/16 → 373/64) ⇝ 6/1 | note:F4 gain:0.18173165676349057 clip:1 s:piano release:0.1 pan:0.5509259259259259 ]", - "[ 23/4 ⇜ (93/16 → 373/64) ⇝ 6/1 | note:A4 gain:0.18173165676349057 clip:1 s:piano release:0.1 pan:0.5694444444444444 ]", - "[ 23/4 ⇜ (373/64 → 187/32) ⇝ 47/8 | note:D5 gain:0.25522409349774466 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", - "[ 23/4 ⇜ (373/64 → 187/32) ⇝ 47/8 | note:F5 gain:0.25522409349774466 clip:1 s:piano release:0.1 pan:0.6064814814814814 ]", - "[ 23/4 ⇜ (373/64 → 187/32) ⇝ 6/1 | note:B3 gain:0.12761204674887233 clip:1 s:piano release:0.1 pan:0.5231481481481481 ]", - "[ 23/4 ⇜ (373/64 → 187/32) ⇝ 6/1 | note:E4 gain:0.12761204674887233 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", - "[ 23/4 ⇜ (373/64 → 187/32) ⇝ 6/1 | note:F4 gain:0.12761204674887233 clip:1 s:piano release:0.1 pan:0.5509259259259259 ]", - "[ 23/4 ⇜ (373/64 → 187/32) ⇝ 6/1 | note:A4 gain:0.12761204674887233 clip:1 s:piano release:0.1 pan:0.5694444444444444 ]", - "[ 23/4 ⇜ (187/32 → 375/64) ⇝ 47/8 | note:D5 gain:0.25522409349774267 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", - "[ 23/4 ⇜ (187/32 → 375/64) ⇝ 47/8 | note:F5 gain:0.25522409349774267 clip:1 s:piano release:0.1 pan:0.6064814814814814 ]", - "[ 23/4 ⇜ (187/32 → 375/64) ⇝ 6/1 | note:B3 gain:0.12761204674887133 clip:1 s:piano release:0.1 pan:0.5231481481481481 ]", - "[ 23/4 ⇜ (187/32 → 375/64) ⇝ 6/1 | note:E4 gain:0.12761204674887133 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", - "[ 23/4 ⇜ (187/32 → 375/64) ⇝ 6/1 | note:F4 gain:0.12761204674887133 clip:1 s:piano release:0.1 pan:0.5509259259259259 ]", - "[ 23/4 ⇜ (187/32 → 375/64) ⇝ 6/1 | note:A4 gain:0.12761204674887133 clip:1 s:piano release:0.1 pan:0.5694444444444444 ]", - "[ 23/4 ⇜ (375/64 → 47/8) | note:D5 gain:0.36346331352697625 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", - "[ 23/4 ⇜ (375/64 → 47/8) | note:F5 gain:0.36346331352697625 clip:1 s:piano release:0.1 pan:0.6064814814814814 ]", - "[ 23/4 ⇜ (375/64 → 47/8) ⇝ 6/1 | note:B3 gain:0.18173165676348813 clip:1 s:piano release:0.1 pan:0.5231481481481481 ]", - "[ 23/4 ⇜ (375/64 → 47/8) ⇝ 6/1 | note:E4 gain:0.18173165676348813 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", - "[ 23/4 ⇜ (375/64 → 47/8) ⇝ 6/1 | note:F4 gain:0.18173165676348813 clip:1 s:piano release:0.1 pan:0.5509259259259259 ]", - "[ 23/4 ⇜ (375/64 → 47/8) ⇝ 6/1 | note:A4 gain:0.18173165676348813 clip:1 s:piano release:0.1 pan:0.5694444444444444 ]", - "[ 23/4 ⇜ (47/8 → 377/64) ⇝ 6/1 | note:B3 gain:0.25826834323650844 clip:1 s:piano release:0.1 pan:0.5231481481481481 ]", - "[ 23/4 ⇜ (47/8 → 377/64) ⇝ 6/1 | note:E4 gain:0.25826834323650844 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", - "[ 23/4 ⇜ (47/8 → 377/64) ⇝ 6/1 | note:F4 gain:0.25826834323650844 clip:1 s:piano release:0.1 pan:0.5509259259259259 ]", - "[ 23/4 ⇜ (47/8 → 377/64) ⇝ 6/1 | note:A4 gain:0.25826834323650844 clip:1 s:piano release:0.1 pan:0.5694444444444444 ]", - "[ 23/4 ⇜ (377/64 → 189/32) ⇝ 6/1 | note:B3 gain:0.31238795325112734 clip:1 s:piano release:0.1 pan:0.5231481481481481 ]", - "[ 23/4 ⇜ (377/64 → 189/32) ⇝ 6/1 | note:E4 gain:0.31238795325112734 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", - "[ 23/4 ⇜ (377/64 → 189/32) ⇝ 6/1 | note:F4 gain:0.31238795325112734 clip:1 s:piano release:0.1 pan:0.5509259259259259 ]", - "[ 23/4 ⇜ (377/64 → 189/32) ⇝ 6/1 | note:A4 gain:0.31238795325112734 clip:1 s:piano release:0.1 pan:0.5694444444444444 ]", - "[ 23/4 ⇜ (189/32 → 379/64) ⇝ 6/1 | note:B3 gain:0.3123879532511291 clip:1 s:piano release:0.1 pan:0.5231481481481481 ]", - "[ 23/4 ⇜ (189/32 → 379/64) ⇝ 6/1 | note:E4 gain:0.3123879532511291 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", - "[ 23/4 ⇜ (189/32 → 379/64) ⇝ 6/1 | note:F4 gain:0.3123879532511291 clip:1 s:piano release:0.1 pan:0.5509259259259259 ]", - "[ 23/4 ⇜ (189/32 → 379/64) ⇝ 6/1 | note:A4 gain:0.3123879532511291 clip:1 s:piano release:0.1 pan:0.5694444444444444 ]", - "[ 23/4 ⇜ (379/64 → 95/16) ⇝ 6/1 | note:B3 gain:0.25826834323650766 clip:1 s:piano release:0.1 pan:0.5231481481481481 ]", - "[ 23/4 ⇜ (379/64 → 95/16) ⇝ 6/1 | note:E4 gain:0.25826834323650766 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", - "[ 23/4 ⇜ (379/64 → 95/16) ⇝ 6/1 | note:F4 gain:0.25826834323650766 clip:1 s:piano release:0.1 pan:0.5509259259259259 ]", - "[ 23/4 ⇜ (379/64 → 95/16) ⇝ 6/1 | note:A4 gain:0.25826834323650766 clip:1 s:piano release:0.1 pan:0.5694444444444444 ]", - "[ 23/4 ⇜ (95/16 → 381/64) ⇝ 6/1 | note:B3 gain:0.18173165676349257 clip:1 s:piano release:0.1 pan:0.5231481481481481 ]", - "[ 23/4 ⇜ (95/16 → 381/64) ⇝ 6/1 | note:E4 gain:0.18173165676349257 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", - "[ 23/4 ⇜ (95/16 → 381/64) ⇝ 6/1 | note:F4 gain:0.18173165676349257 clip:1 s:piano release:0.1 pan:0.5509259259259259 ]", - "[ 23/4 ⇜ (95/16 → 381/64) ⇝ 6/1 | note:A4 gain:0.18173165676349257 clip:1 s:piano release:0.1 pan:0.5694444444444444 ]", - "[ 23/4 ⇜ (381/64 → 191/32) ⇝ 6/1 | note:B3 gain:0.12761204674887097 clip:1 s:piano release:0.1 pan:0.5231481481481481 ]", - "[ 23/4 ⇜ (381/64 → 191/32) ⇝ 6/1 | note:E4 gain:0.12761204674887097 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", - "[ 23/4 ⇜ (381/64 → 191/32) ⇝ 6/1 | note:F4 gain:0.12761204674887097 clip:1 s:piano release:0.1 pan:0.5509259259259259 ]", - "[ 23/4 ⇜ (381/64 → 191/32) ⇝ 6/1 | note:A4 gain:0.12761204674887097 clip:1 s:piano release:0.1 pan:0.5694444444444444 ]", - "[ 23/4 ⇜ (191/32 → 383/64) ⇝ 6/1 | note:B3 gain:0.12761204674887047 clip:1 s:piano release:0.1 pan:0.5231481481481481 ]", - "[ 23/4 ⇜ (191/32 → 383/64) ⇝ 6/1 | note:E4 gain:0.12761204674887047 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", - "[ 23/4 ⇜ (191/32 → 383/64) ⇝ 6/1 | note:F4 gain:0.12761204674887047 clip:1 s:piano release:0.1 pan:0.5509259259259259 ]", - "[ 23/4 ⇜ (191/32 → 383/64) ⇝ 6/1 | note:A4 gain:0.12761204674887047 clip:1 s:piano release:0.1 pan:0.5694444444444444 ]", - "[ 23/4 ⇜ (383/64 → 6/1) | note:B3 gain:0.18173165676349137 clip:1 s:piano release:0.1 pan:0.5231481481481481 ]", - "[ 23/4 ⇜ (383/64 → 6/1) | note:E4 gain:0.18173165676349137 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", - "[ 23/4 ⇜ (383/64 → 6/1) | note:F4 gain:0.18173165676349137 clip:1 s:piano release:0.1 pan:0.5509259259259259 ]", - "[ 23/4 ⇜ (383/64 → 6/1) | note:A4 gain:0.18173165676349137 clip:1 s:piano release:0.1 pan:0.5694444444444444 ]", - "[ (6/1 → 385/64) ⇝ 25/4 | note:F#2 gain:0.5165366864730129 clip:1 s:piano release:0.1 pan:0.4444444444444444 ]", - "[ 6/1 ⇜ (385/64 → 193/32) ⇝ 25/4 | note:F#2 gain:0.6247759065022573 clip:1 s:piano release:0.1 pan:0.4444444444444444 ]", - "[ 6/1 ⇜ (193/32 → 387/64) ⇝ 25/4 | note:F#2 gain:0.62477590650226 clip:1 s:piano release:0.1 pan:0.4444444444444444 ]", - "[ (169/28 → 387/64) ⇝ 44/7 | note:71 gain:0.062477590650226004 clip:1 s:piano release:0.1 pan:0.5787037037037037 ]", - "[ (169/28 → 387/64) ⇝ 44/7 | note:76 gain:0.062477590650226004 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", - "[ (169/28 → 387/64) ⇝ 44/7 | note:77 gain:0.062477590650226004 clip:1 s:piano release:0.1 pan:0.6064814814814814 ]", - "[ (169/28 → 387/64) ⇝ 44/7 | note:81 gain:0.062477590650226004 clip:1 s:piano release:0.1 pan:0.625 ]", - "[ 6/1 ⇜ (387/64 → 97/16) ⇝ 25/4 | note:F#2 gain:0.5165366864730192 clip:1 s:piano release:0.1 pan:0.4444444444444444 ]", - "[ 169/28 ⇜ (387/64 → 97/16) ⇝ 44/7 | note:71 gain:0.05165366864730192 clip:1 s:piano release:0.1 pan:0.5787037037037037 ]", - "[ 169/28 ⇜ (387/64 → 97/16) ⇝ 44/7 | note:76 gain:0.05165366864730192 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", - "[ 169/28 ⇜ (387/64 → 97/16) ⇝ 44/7 | note:77 gain:0.05165366864730192 clip:1 s:piano release:0.1 pan:0.6064814814814814 ]", - "[ 169/28 ⇜ (387/64 → 97/16) ⇝ 44/7 | note:81 gain:0.05165366864730192 clip:1 s:piano release:0.1 pan:0.625 ]", - "[ 6/1 ⇜ (97/16 → 389/64) ⇝ 25/4 | note:F#2 gain:0.36346331352698913 clip:1 s:piano release:0.1 pan:0.4444444444444444 ]", - "[ 169/28 ⇜ (97/16 → 389/64) ⇝ 44/7 | note:71 gain:0.036346331352698914 clip:1 s:piano release:0.1 pan:0.5787037037037037 ]", - "[ 169/28 ⇜ (97/16 → 389/64) ⇝ 44/7 | note:76 gain:0.036346331352698914 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", - "[ 169/28 ⇜ (97/16 → 389/64) ⇝ 44/7 | note:77 gain:0.036346331352698914 clip:1 s:piano release:0.1 pan:0.6064814814814814 ]", - "[ 169/28 ⇜ (97/16 → 389/64) ⇝ 44/7 | note:81 gain:0.036346331352698914 clip:1 s:piano release:0.1 pan:0.625 ]", - "[ 6/1 ⇜ (389/64 → 195/32) ⇝ 25/4 | note:F#2 gain:0.2552240934977436 clip:1 s:piano release:0.1 pan:0.4444444444444444 ]", - "[ 169/28 ⇜ (389/64 → 195/32) ⇝ 44/7 | note:71 gain:0.02552240934977436 clip:1 s:piano release:0.1 pan:0.5787037037037037 ]", - "[ 169/28 ⇜ (389/64 → 195/32) ⇝ 44/7 | note:76 gain:0.02552240934977436 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", - "[ 169/28 ⇜ (389/64 → 195/32) ⇝ 44/7 | note:77 gain:0.02552240934977436 clip:1 s:piano release:0.1 pan:0.6064814814814814 ]", - "[ 169/28 ⇜ (389/64 → 195/32) ⇝ 44/7 | note:81 gain:0.02552240934977436 clip:1 s:piano release:0.1 pan:0.625 ]", - "[ 6/1 ⇜ (195/32 → 391/64) ⇝ 25/4 | note:F#2 gain:0.25522409349774366 clip:1 s:piano release:0.1 pan:0.4444444444444444 ]", - "[ 169/28 ⇜ (195/32 → 391/64) ⇝ 44/7 | note:71 gain:0.02552240934977437 clip:1 s:piano release:0.1 pan:0.5787037037037037 ]", - "[ 169/28 ⇜ (195/32 → 391/64) ⇝ 44/7 | note:76 gain:0.02552240934977437 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", - "[ 169/28 ⇜ (195/32 → 391/64) ⇝ 44/7 | note:77 gain:0.02552240934977437 clip:1 s:piano release:0.1 pan:0.6064814814814814 ]", - "[ 169/28 ⇜ (195/32 → 391/64) ⇝ 44/7 | note:81 gain:0.02552240934977437 clip:1 s:piano release:0.1 pan:0.625 ]", - "[ 6/1 ⇜ (391/64 → 49/8) ⇝ 25/4 | note:F#2 gain:0.36346331352697875 clip:1 s:piano release:0.1 pan:0.4444444444444444 ]", - "[ 169/28 ⇜ (391/64 → 49/8) ⇝ 44/7 | note:71 gain:0.03634633135269787 clip:1 s:piano release:0.1 pan:0.5787037037037037 ]", - "[ 169/28 ⇜ (391/64 → 49/8) ⇝ 44/7 | note:76 gain:0.03634633135269787 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", - "[ 169/28 ⇜ (391/64 → 49/8) ⇝ 44/7 | note:77 gain:0.03634633135269787 clip:1 s:piano release:0.1 pan:0.6064814814814814 ]", - "[ 169/28 ⇜ (391/64 → 49/8) ⇝ 44/7 | note:81 gain:0.03634633135269787 clip:1 s:piano release:0.1 pan:0.625 ]", - "[ 6/1 ⇜ (49/8 → 393/64) ⇝ 25/4 | note:F#2 gain:0.5165366864730194 clip:1 s:piano release:0.1 pan:0.4444444444444444 ]", - "[ 169/28 ⇜ (49/8 → 393/64) ⇝ 44/7 | note:71 gain:0.05165366864730195 clip:1 s:piano release:0.1 pan:0.5787037037037037 ]", - "[ 169/28 ⇜ (49/8 → 393/64) ⇝ 44/7 | note:76 gain:0.05165366864730195 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", - "[ 169/28 ⇜ (49/8 → 393/64) ⇝ 44/7 | note:77 gain:0.05165366864730195 clip:1 s:piano release:0.1 pan:0.6064814814814814 ]", - "[ 169/28 ⇜ (49/8 → 393/64) ⇝ 44/7 | note:81 gain:0.05165366864730195 clip:1 s:piano release:0.1 pan:0.625 ]", - "[ (49/8 → 393/64) ⇝ 25/4 | note:F#4 gain:0.5165366864730194 clip:1 s:piano release:0.1 pan:0.5555555555555556 ]", - "[ (49/8 → 393/64) ⇝ 25/4 | note:A#4 gain:0.5165366864730194 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", - "[ 6/1 ⇜ (393/64 → 197/32) ⇝ 25/4 | note:F#2 gain:0.6247759065022556 clip:1 s:piano release:0.1 pan:0.4444444444444444 ]", - "[ 169/28 ⇜ (393/64 → 197/32) ⇝ 44/7 | note:71 gain:0.06247759065022556 clip:1 s:piano release:0.1 pan:0.5787037037037037 ]", - "[ 169/28 ⇜ (393/64 → 197/32) ⇝ 44/7 | note:76 gain:0.06247759065022556 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", - "[ 169/28 ⇜ (393/64 → 197/32) ⇝ 44/7 | note:77 gain:0.06247759065022556 clip:1 s:piano release:0.1 pan:0.6064814814814814 ]", - "[ 169/28 ⇜ (393/64 → 197/32) ⇝ 44/7 | note:81 gain:0.06247759065022556 clip:1 s:piano release:0.1 pan:0.625 ]", - "[ 49/8 ⇜ (393/64 → 197/32) ⇝ 25/4 | note:F#4 gain:0.6247759065022556 clip:1 s:piano release:0.1 pan:0.5555555555555556 ]", - "[ 49/8 ⇜ (393/64 → 197/32) ⇝ 25/4 | note:A#4 gain:0.6247759065022556 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", - "[ 6/1 ⇜ (197/32 → 395/64) ⇝ 25/4 | note:F#2 gain:0.6247759065022571 clip:1 s:piano release:0.1 pan:0.4444444444444444 ]", - "[ 169/28 ⇜ (197/32 → 395/64) ⇝ 44/7 | note:71 gain:0.06247759065022571 clip:1 s:piano release:0.1 pan:0.5787037037037037 ]", - "[ 169/28 ⇜ (197/32 → 395/64) ⇝ 44/7 | note:76 gain:0.06247759065022571 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", - "[ 169/28 ⇜ (197/32 → 395/64) ⇝ 44/7 | note:77 gain:0.06247759065022571 clip:1 s:piano release:0.1 pan:0.6064814814814814 ]", - "[ 169/28 ⇜ (197/32 → 395/64) ⇝ 44/7 | note:81 gain:0.06247759065022571 clip:1 s:piano release:0.1 pan:0.625 ]", - "[ 49/8 ⇜ (197/32 → 395/64) ⇝ 25/4 | note:F#4 gain:0.6247759065022571 clip:1 s:piano release:0.1 pan:0.5555555555555556 ]", - "[ 49/8 ⇜ (197/32 → 395/64) ⇝ 25/4 | note:A#4 gain:0.6247759065022571 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", - "[ 6/1 ⇜ (395/64 → 99/16) ⇝ 25/4 | note:F#2 gain:0.5165366864730233 clip:1 s:piano release:0.1 pan:0.4444444444444444 ]", - "[ 169/28 ⇜ (395/64 → 99/16) ⇝ 44/7 | note:71 gain:0.05165366864730234 clip:1 s:piano release:0.1 pan:0.5787037037037037 ]", - "[ 169/28 ⇜ (395/64 → 99/16) ⇝ 44/7 | note:76 gain:0.05165366864730234 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", - "[ 169/28 ⇜ (395/64 → 99/16) ⇝ 44/7 | note:77 gain:0.05165366864730234 clip:1 s:piano release:0.1 pan:0.6064814814814814 ]", - "[ 169/28 ⇜ (395/64 → 99/16) ⇝ 44/7 | note:81 gain:0.05165366864730234 clip:1 s:piano release:0.1 pan:0.625 ]", - "[ 49/8 ⇜ (395/64 → 99/16) ⇝ 25/4 | note:F#4 gain:0.5165366864730233 clip:1 s:piano release:0.1 pan:0.5555555555555556 ]", - "[ 49/8 ⇜ (395/64 → 99/16) ⇝ 25/4 | note:A#4 gain:0.5165366864730233 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", - "[ 6/1 ⇜ (99/16 → 397/64) ⇝ 25/4 | note:F#2 gain:0.3634633135269826 clip:1 s:piano release:0.1 pan:0.4444444444444444 ]", - "[ 169/28 ⇜ (99/16 → 397/64) ⇝ 44/7 | note:71 gain:0.03634633135269826 clip:1 s:piano release:0.1 pan:0.5787037037037037 ]", - "[ 169/28 ⇜ (99/16 → 397/64) ⇝ 44/7 | note:76 gain:0.03634633135269826 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", - "[ 169/28 ⇜ (99/16 → 397/64) ⇝ 44/7 | note:77 gain:0.03634633135269826 clip:1 s:piano release:0.1 pan:0.6064814814814814 ]", - "[ 169/28 ⇜ (99/16 → 397/64) ⇝ 44/7 | note:81 gain:0.03634633135269826 clip:1 s:piano release:0.1 pan:0.625 ]", - "[ 49/8 ⇜ (99/16 → 397/64) ⇝ 25/4 | note:F#4 gain:0.3634633135269826 clip:1 s:piano release:0.1 pan:0.5555555555555556 ]", - "[ 49/8 ⇜ (99/16 → 397/64) ⇝ 25/4 | note:A#4 gain:0.3634633135269826 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", - "[ 6/1 ⇜ (397/64 → 199/32) ⇝ 25/4 | note:F#2 gain:0.2552240934977452 clip:1 s:piano release:0.1 pan:0.4444444444444444 ]", - "[ 169/28 ⇜ (397/64 → 199/32) ⇝ 44/7 | note:71 gain:0.025522409349774525 clip:1 s:piano release:0.1 pan:0.5787037037037037 ]", - "[ 169/28 ⇜ (397/64 → 199/32) ⇝ 44/7 | note:76 gain:0.025522409349774525 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", - "[ 169/28 ⇜ (397/64 → 199/32) ⇝ 44/7 | note:77 gain:0.025522409349774525 clip:1 s:piano release:0.1 pan:0.6064814814814814 ]", - "[ 169/28 ⇜ (397/64 → 199/32) ⇝ 44/7 | note:81 gain:0.025522409349774525 clip:1 s:piano release:0.1 pan:0.625 ]", - "[ 49/8 ⇜ (397/64 → 199/32) ⇝ 25/4 | note:F#4 gain:0.2552240934977452 clip:1 s:piano release:0.1 pan:0.5555555555555556 ]", - "[ 49/8 ⇜ (397/64 → 199/32) ⇝ 25/4 | note:A#4 gain:0.2552240934977452 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", - "[ 6/1 ⇜ (199/32 → 399/64) ⇝ 25/4 | note:F#2 gain:0.25522409349774206 clip:1 s:piano release:0.1 pan:0.4444444444444444 ]", - "[ 169/28 ⇜ (199/32 → 399/64) ⇝ 44/7 | note:71 gain:0.025522409349774206 clip:1 s:piano release:0.1 pan:0.5787037037037037 ]", - "[ 169/28 ⇜ (199/32 → 399/64) ⇝ 44/7 | note:76 gain:0.025522409349774206 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", - "[ 169/28 ⇜ (199/32 → 399/64) ⇝ 44/7 | note:77 gain:0.025522409349774206 clip:1 s:piano release:0.1 pan:0.6064814814814814 ]", - "[ 169/28 ⇜ (199/32 → 399/64) ⇝ 44/7 | note:81 gain:0.025522409349774206 clip:1 s:piano release:0.1 pan:0.625 ]", - "[ 49/8 ⇜ (199/32 → 399/64) ⇝ 25/4 | note:F#4 gain:0.25522409349774206 clip:1 s:piano release:0.1 pan:0.5555555555555556 ]", - "[ 49/8 ⇜ (199/32 → 399/64) ⇝ 25/4 | note:A#4 gain:0.25522409349774206 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", - "[ 6/1 ⇜ (399/64 → 25/4) | note:F#2 gain:0.3634633135269748 clip:1 s:piano release:0.1 pan:0.4444444444444444 ]", - "[ 169/28 ⇜ (399/64 → 25/4) ⇝ 44/7 | note:71 gain:0.036346331352697485 clip:1 s:piano release:0.1 pan:0.5787037037037037 ]", - "[ 169/28 ⇜ (399/64 → 25/4) ⇝ 44/7 | note:76 gain:0.036346331352697485 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", - "[ 169/28 ⇜ (399/64 → 25/4) ⇝ 44/7 | note:77 gain:0.036346331352697485 clip:1 s:piano release:0.1 pan:0.6064814814814814 ]", - "[ 169/28 ⇜ (399/64 → 25/4) ⇝ 44/7 | note:81 gain:0.036346331352697485 clip:1 s:piano release:0.1 pan:0.625 ]", - "[ 49/8 ⇜ (399/64 → 25/4) | note:F#4 gain:0.3634633135269748 clip:1 s:piano release:0.1 pan:0.5555555555555556 ]", - "[ 49/8 ⇜ (399/64 → 25/4) | note:A#4 gain:0.3634633135269748 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", - "[ 169/28 ⇜ (25/4 → 401/64) ⇝ 44/7 | note:71 gain:0.05165366864730156 clip:1 s:piano release:0.1 pan:0.5787037037037037 ]", - "[ 169/28 ⇜ (25/4 → 401/64) ⇝ 44/7 | note:76 gain:0.05165366864730156 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", - "[ 169/28 ⇜ (25/4 → 401/64) ⇝ 44/7 | note:77 gain:0.05165366864730156 clip:1 s:piano release:0.1 pan:0.6064814814814814 ]", - "[ 169/28 ⇜ (25/4 → 401/64) ⇝ 44/7 | note:81 gain:0.05165366864730156 clip:1 s:piano release:0.1 pan:0.625 ]", - "[ 169/28 ⇜ (401/64 → 201/32) ⇝ 44/7 | note:71 gain:0.06247759065022584 clip:1 s:piano release:0.1 pan:0.5787037037037037 ]", - "[ 169/28 ⇜ (401/64 → 201/32) ⇝ 44/7 | note:76 gain:0.06247759065022584 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", - "[ 169/28 ⇜ (401/64 → 201/32) ⇝ 44/7 | note:77 gain:0.06247759065022584 clip:1 s:piano release:0.1 pan:0.6064814814814814 ]", - "[ 169/28 ⇜ (401/64 → 201/32) ⇝ 44/7 | note:81 gain:0.06247759065022584 clip:1 s:piano release:0.1 pan:0.625 ]", - "[ 169/28 ⇜ (201/32 → 44/7) | note:71 gain:0.062477590650225893 clip:1 s:piano release:0.1 pan:0.5787037037037037 ]", - "[ 169/28 ⇜ (201/32 → 44/7) | note:76 gain:0.062477590650225893 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", - "[ 169/28 ⇜ (201/32 → 44/7) | note:77 gain:0.062477590650225893 clip:1 s:piano release:0.1 pan:0.6064814814814814 ]", - "[ 169/28 ⇜ (201/32 → 44/7) | note:81 gain:0.062477590650225893 clip:1 s:piano release:0.1 pan:0.625 ]", - "[ (13/2 → 417/64) ⇝ 53/8 | note:C#5 gain:0.516536686473018 clip:1 s:piano release:0.1 pan:0.587962962962963 ]", - "[ (13/2 → 417/64) ⇝ 53/8 | note:E5 gain:0.516536686473018 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", - "[ (13/2 → 417/64) ⇝ 27/4 | note:Bb3 gain:0.258268343236509 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", - "[ (13/2 → 417/64) ⇝ 27/4 | note:Eb4 gain:0.258268343236509 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", - "[ (13/2 → 417/64) ⇝ 27/4 | note:E4 gain:0.258268343236509 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", - "[ (13/2 → 417/64) ⇝ 27/4 | note:Ab4 gain:0.258268343236509 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", - "[ (13/2 → 417/64) ⇝ 27/4 | note:F#2 gain:0.516536686473018 clip:1 s:piano release:0.1 pan:0.4444444444444444 ]", - "[ 13/2 ⇜ (417/64 → 209/32) ⇝ 53/8 | note:C#5 gain:0.624775906502255 clip:1 s:piano release:0.1 pan:0.587962962962963 ]", - "[ 13/2 ⇜ (417/64 → 209/32) ⇝ 53/8 | note:E5 gain:0.624775906502255 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", - "[ 13/2 ⇜ (417/64 → 209/32) ⇝ 27/4 | note:Bb3 gain:0.3123879532511275 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", - "[ 13/2 ⇜ (417/64 → 209/32) ⇝ 27/4 | note:Eb4 gain:0.3123879532511275 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", - "[ 13/2 ⇜ (417/64 → 209/32) ⇝ 27/4 | note:E4 gain:0.3123879532511275 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", - "[ 13/2 ⇜ (417/64 → 209/32) ⇝ 27/4 | note:Ab4 gain:0.3123879532511275 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", - "[ 13/2 ⇜ (417/64 → 209/32) ⇝ 27/4 | note:F#2 gain:0.624775906502255 clip:1 s:piano release:0.1 pan:0.4444444444444444 ]", - "[ 13/2 ⇜ (209/32 → 419/64) ⇝ 53/8 | note:C#5 gain:0.6247759065022578 clip:1 s:piano release:0.1 pan:0.587962962962963 ]", - "[ 13/2 ⇜ (209/32 → 419/64) ⇝ 53/8 | note:E5 gain:0.6247759065022578 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", - "[ 13/2 ⇜ (209/32 → 419/64) ⇝ 27/4 | note:Bb3 gain:0.3123879532511289 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", - "[ 13/2 ⇜ (209/32 → 419/64) ⇝ 27/4 | note:Eb4 gain:0.3123879532511289 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", - "[ 13/2 ⇜ (209/32 → 419/64) ⇝ 27/4 | note:E4 gain:0.3123879532511289 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", - "[ 13/2 ⇜ (209/32 → 419/64) ⇝ 27/4 | note:Ab4 gain:0.3123879532511289 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", - "[ 13/2 ⇜ (209/32 → 419/64) ⇝ 27/4 | note:F#2 gain:0.6247759065022578 clip:1 s:piano release:0.1 pan:0.4444444444444444 ]", - "[ 13/2 ⇜ (419/64 → 105/16) ⇝ 53/8 | note:C#5 gain:0.5165366864730248 clip:1 s:piano release:0.1 pan:0.587962962962963 ]", - "[ 13/2 ⇜ (419/64 → 105/16) ⇝ 53/8 | note:E5 gain:0.5165366864730248 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", - "[ 13/2 ⇜ (419/64 → 105/16) ⇝ 27/4 | note:Bb3 gain:0.2582683432365124 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", - "[ 13/2 ⇜ (419/64 → 105/16) ⇝ 27/4 | note:Eb4 gain:0.2582683432365124 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", - "[ 13/2 ⇜ (419/64 → 105/16) ⇝ 27/4 | note:E4 gain:0.2582683432365124 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", - "[ 13/2 ⇜ (419/64 → 105/16) ⇝ 27/4 | note:Ab4 gain:0.2582683432365124 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", - "[ 13/2 ⇜ (419/64 → 105/16) ⇝ 27/4 | note:F#2 gain:0.5165366864730248 clip:1 s:piano release:0.1 pan:0.4444444444444444 ]", - "[ 13/2 ⇜ (105/16 → 421/64) ⇝ 53/8 | note:C#5 gain:0.363463313526984 clip:1 s:piano release:0.1 pan:0.587962962962963 ]", - "[ 13/2 ⇜ (105/16 → 421/64) ⇝ 53/8 | note:E5 gain:0.363463313526984 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", - "[ 13/2 ⇜ (105/16 → 421/64) ⇝ 27/4 | note:Bb3 gain:0.181731656763492 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", - "[ 13/2 ⇜ (105/16 → 421/64) ⇝ 27/4 | note:Eb4 gain:0.181731656763492 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", - "[ 13/2 ⇜ (105/16 → 421/64) ⇝ 27/4 | note:E4 gain:0.181731656763492 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", - "[ 13/2 ⇜ (105/16 → 421/64) ⇝ 27/4 | note:Ab4 gain:0.181731656763492 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", - "[ 13/2 ⇜ (105/16 → 421/64) ⇝ 27/4 | note:F#2 gain:0.363463313526984 clip:1 s:piano release:0.1 pan:0.4444444444444444 ]", - "[ 13/2 ⇜ (421/64 → 211/32) ⇝ 53/8 | note:C#5 gain:0.2552240934977415 clip:1 s:piano release:0.1 pan:0.587962962962963 ]", - "[ 13/2 ⇜ (421/64 → 211/32) ⇝ 53/8 | note:E5 gain:0.2552240934977415 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", - "[ 13/2 ⇜ (421/64 → 211/32) ⇝ 27/4 | note:Bb3 gain:0.12761204674887075 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", - "[ 13/2 ⇜ (421/64 → 211/32) ⇝ 27/4 | note:Eb4 gain:0.12761204674887075 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", - "[ 13/2 ⇜ (421/64 → 211/32) ⇝ 27/4 | note:E4 gain:0.12761204674887075 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", - "[ 13/2 ⇜ (421/64 → 211/32) ⇝ 27/4 | note:Ab4 gain:0.12761204674887075 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", - "[ 13/2 ⇜ (421/64 → 211/32) ⇝ 27/4 | note:F#2 gain:0.2552240934977415 clip:1 s:piano release:0.1 pan:0.4444444444444444 ]", - "[ 13/2 ⇜ (211/32 → 423/64) ⇝ 53/8 | note:C#5 gain:0.2552240934977414 clip:1 s:piano release:0.1 pan:0.587962962962963 ]", - "[ 13/2 ⇜ (211/32 → 423/64) ⇝ 53/8 | note:E5 gain:0.2552240934977414 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", - "[ 13/2 ⇜ (211/32 → 423/64) ⇝ 27/4 | note:Bb3 gain:0.1276120467488707 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", - "[ 13/2 ⇜ (211/32 → 423/64) ⇝ 27/4 | note:Eb4 gain:0.1276120467488707 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", - "[ 13/2 ⇜ (211/32 → 423/64) ⇝ 27/4 | note:E4 gain:0.1276120467488707 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", - "[ 13/2 ⇜ (211/32 → 423/64) ⇝ 27/4 | note:Ab4 gain:0.1276120467488707 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", - "[ 13/2 ⇜ (211/32 → 423/64) ⇝ 27/4 | note:F#2 gain:0.2552240934977414 clip:1 s:piano release:0.1 pan:0.4444444444444444 ]", - "[ 13/2 ⇜ (423/64 → 53/8) | note:C#5 gain:0.3634633135269838 clip:1 s:piano release:0.1 pan:0.587962962962963 ]", - "[ 13/2 ⇜ (423/64 → 53/8) | note:E5 gain:0.3634633135269838 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", - "[ 13/2 ⇜ (423/64 → 53/8) ⇝ 27/4 | note:Bb3 gain:0.1817316567634919 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", - "[ 13/2 ⇜ (423/64 → 53/8) ⇝ 27/4 | note:Eb4 gain:0.1817316567634919 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", - "[ 13/2 ⇜ (423/64 → 53/8) ⇝ 27/4 | note:E4 gain:0.1817316567634919 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", - "[ 13/2 ⇜ (423/64 → 53/8) ⇝ 27/4 | note:Ab4 gain:0.1817316567634919 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", - "[ 13/2 ⇜ (423/64 → 53/8) ⇝ 27/4 | note:F#2 gain:0.3634633135269838 clip:1 s:piano release:0.1 pan:0.4444444444444444 ]", - "[ 13/2 ⇜ (53/8 → 425/64) ⇝ 27/4 | note:Bb3 gain:0.25826834323650705 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", - "[ 13/2 ⇜ (53/8 → 425/64) ⇝ 27/4 | note:Eb4 gain:0.25826834323650705 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", - "[ 13/2 ⇜ (53/8 → 425/64) ⇝ 27/4 | note:E4 gain:0.25826834323650705 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", - "[ 13/2 ⇜ (53/8 → 425/64) ⇝ 27/4 | note:Ab4 gain:0.25826834323650705 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", - "[ 13/2 ⇜ (53/8 → 425/64) ⇝ 27/4 | note:F#2 gain:0.5165366864730141 clip:1 s:piano release:0.1 pan:0.4444444444444444 ]", - "[ 13/2 ⇜ (425/64 → 213/32) ⇝ 27/4 | note:Bb3 gain:0.31238795325112884 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", - "[ 13/2 ⇜ (425/64 → 213/32) ⇝ 27/4 | note:Eb4 gain:0.31238795325112884 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", - "[ 13/2 ⇜ (425/64 → 213/32) ⇝ 27/4 | note:E4 gain:0.31238795325112884 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", - "[ 13/2 ⇜ (425/64 → 213/32) ⇝ 27/4 | note:Ab4 gain:0.31238795325112884 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", - "[ 13/2 ⇜ (425/64 → 213/32) ⇝ 27/4 | note:F#2 gain:0.6247759065022577 clip:1 s:piano release:0.1 pan:0.4444444444444444 ]", - "[ 13/2 ⇜ (213/32 → 427/64) ⇝ 27/4 | note:Bb3 gain:0.3123879532511297 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", - "[ 13/2 ⇜ (213/32 → 427/64) ⇝ 27/4 | note:Eb4 gain:0.3123879532511297 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", - "[ 13/2 ⇜ (213/32 → 427/64) ⇝ 27/4 | note:E4 gain:0.3123879532511297 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", - "[ 13/2 ⇜ (213/32 → 427/64) ⇝ 27/4 | note:Ab4 gain:0.3123879532511297 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", - "[ 13/2 ⇜ (213/32 → 427/64) ⇝ 27/4 | note:F#2 gain:0.6247759065022594 clip:1 s:piano release:0.1 pan:0.4444444444444444 ]", - "[ 13/2 ⇜ (427/64 → 107/16) ⇝ 27/4 | note:Bb3 gain:0.2582683432365091 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", - "[ 13/2 ⇜ (427/64 → 107/16) ⇝ 27/4 | note:Eb4 gain:0.2582683432365091 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", - "[ 13/2 ⇜ (427/64 → 107/16) ⇝ 27/4 | note:E4 gain:0.2582683432365091 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", - "[ 13/2 ⇜ (427/64 → 107/16) ⇝ 27/4 | note:Ab4 gain:0.2582683432365091 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", - "[ 13/2 ⇜ (427/64 → 107/16) ⇝ 27/4 | note:F#2 gain:0.5165366864730182 clip:1 s:piano release:0.1 pan:0.4444444444444444 ]", - "[ 13/2 ⇜ (107/16 → 429/64) ⇝ 27/4 | note:Bb3 gain:0.181731656763494 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", - "[ 13/2 ⇜ (107/16 → 429/64) ⇝ 27/4 | note:Eb4 gain:0.181731656763494 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", - "[ 13/2 ⇜ (107/16 → 429/64) ⇝ 27/4 | note:E4 gain:0.181731656763494 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", - "[ 13/2 ⇜ (107/16 → 429/64) ⇝ 27/4 | note:Ab4 gain:0.181731656763494 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", - "[ 13/2 ⇜ (107/16 → 429/64) ⇝ 27/4 | note:F#2 gain:0.363463313526988 clip:1 s:piano release:0.1 pan:0.4444444444444444 ]", - "[ 13/2 ⇜ (429/64 → 215/32) ⇝ 27/4 | note:Bb3 gain:0.12761204674887158 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", - "[ 13/2 ⇜ (429/64 → 215/32) ⇝ 27/4 | note:Eb4 gain:0.12761204674887158 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", - "[ 13/2 ⇜ (429/64 → 215/32) ⇝ 27/4 | note:E4 gain:0.12761204674887158 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", - "[ 13/2 ⇜ (429/64 → 215/32) ⇝ 27/4 | note:Ab4 gain:0.12761204674887158 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", - "[ 13/2 ⇜ (429/64 → 215/32) ⇝ 27/4 | note:F#2 gain:0.25522409349774317 clip:1 s:piano release:0.1 pan:0.4444444444444444 ]", - "[ 13/2 ⇜ (215/32 → 431/64) ⇝ 27/4 | note:Bb3 gain:0.1276120467488699 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", - "[ 13/2 ⇜ (215/32 → 431/64) ⇝ 27/4 | note:Eb4 gain:0.1276120467488699 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", - "[ 13/2 ⇜ (215/32 → 431/64) ⇝ 27/4 | note:E4 gain:0.1276120467488699 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", - "[ 13/2 ⇜ (215/32 → 431/64) ⇝ 27/4 | note:Ab4 gain:0.1276120467488699 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", - "[ 13/2 ⇜ (215/32 → 431/64) ⇝ 27/4 | note:F#2 gain:0.2552240934977398 clip:1 s:piano release:0.1 pan:0.4444444444444444 ]", - "[ 13/2 ⇜ (431/64 → 27/4) | note:Bb3 gain:0.18173165676348993 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", - "[ 13/2 ⇜ (431/64 → 27/4) | note:Eb4 gain:0.18173165676348993 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", - "[ 13/2 ⇜ (431/64 → 27/4) | note:E4 gain:0.18173165676348993 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", - "[ 13/2 ⇜ (431/64 → 27/4) | note:Ab4 gain:0.18173165676348993 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", - "[ 13/2 ⇜ (431/64 → 27/4) | note:F#2 gain:0.36346331352697986 clip:1 s:piano release:0.1 pan:0.4444444444444444 ]", - "[ (27/4 → 433/64) ⇝ 55/8 | note:F#4 gain:0.5165366864730204 clip:1 s:piano release:0.1 pan:0.5555555555555556 ]", - "[ (27/4 → 433/64) ⇝ 55/8 | note:A#4 gain:0.5165366864730204 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", - "[ 27/4 ⇜ (433/64 → 217/32) ⇝ 55/8 | note:F#4 gain:0.624775906502256 clip:1 s:piano release:0.1 pan:0.5555555555555556 ]", - "[ 27/4 ⇜ (433/64 → 217/32) ⇝ 55/8 | note:A#4 gain:0.624775906502256 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", - "[ 27/4 ⇜ (217/32 → 435/64) ⇝ 55/8 | note:F#4 gain:0.6247759065022568 clip:1 s:piano release:0.1 pan:0.5555555555555556 ]", - "[ 27/4 ⇜ (217/32 → 435/64) ⇝ 55/8 | note:A#4 gain:0.6247759065022568 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", - "[ (95/14 → 435/64) ⇝ 197/28 | note:70 gain:0.06247759065022568 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", - "[ (95/14 → 435/64) ⇝ 197/28 | note:75 gain:0.06247759065022568 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", - "[ (95/14 → 435/64) ⇝ 197/28 | note:76 gain:0.06247759065022568 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", - "[ (95/14 → 435/64) ⇝ 197/28 | note:80 gain:0.06247759065022568 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", - "[ 27/4 ⇜ (435/64 → 109/16) ⇝ 55/8 | note:F#4 gain:0.5165366864730222 clip:1 s:piano release:0.1 pan:0.5555555555555556 ]", - "[ 27/4 ⇜ (435/64 → 109/16) ⇝ 55/8 | note:A#4 gain:0.5165366864730222 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", - "[ 95/14 ⇜ (435/64 → 109/16) ⇝ 197/28 | note:70 gain:0.051653668647302226 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", - "[ 95/14 ⇜ (435/64 → 109/16) ⇝ 197/28 | note:75 gain:0.051653668647302226 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", - "[ 95/14 ⇜ (435/64 → 109/16) ⇝ 197/28 | note:76 gain:0.051653668647302226 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", - "[ 95/14 ⇜ (435/64 → 109/16) ⇝ 197/28 | note:80 gain:0.051653668647302226 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", - "[ 27/4 ⇜ (109/16 → 437/64) ⇝ 55/8 | note:F#4 gain:0.3634633135269815 clip:1 s:piano release:0.1 pan:0.5555555555555556 ]", - "[ 27/4 ⇜ (109/16 → 437/64) ⇝ 55/8 | note:A#4 gain:0.3634633135269815 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", - "[ 95/14 ⇜ (109/16 → 437/64) ⇝ 197/28 | note:70 gain:0.03634633135269815 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", - "[ 95/14 ⇜ (109/16 → 437/64) ⇝ 197/28 | note:75 gain:0.03634633135269815 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", - "[ 95/14 ⇜ (109/16 → 437/64) ⇝ 197/28 | note:76 gain:0.03634633135269815 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", - "[ 95/14 ⇜ (109/16 → 437/64) ⇝ 197/28 | note:80 gain:0.03634633135269815 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", - "[ 27/4 ⇜ (437/64 → 219/32) ⇝ 55/8 | note:F#4 gain:0.2552240934977448 clip:1 s:piano release:0.1 pan:0.5555555555555556 ]", - "[ 27/4 ⇜ (437/64 → 219/32) ⇝ 55/8 | note:A#4 gain:0.2552240934977448 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", - "[ 95/14 ⇜ (437/64 → 219/32) ⇝ 197/28 | note:70 gain:0.02552240934977448 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", - "[ 95/14 ⇜ (437/64 → 219/32) ⇝ 197/28 | note:75 gain:0.02552240934977448 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", - "[ 95/14 ⇜ (437/64 → 219/32) ⇝ 197/28 | note:76 gain:0.02552240934977448 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", - "[ 95/14 ⇜ (437/64 → 219/32) ⇝ 197/28 | note:80 gain:0.02552240934977448 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", - "[ 27/4 ⇜ (219/32 → 439/64) ⇝ 55/8 | note:F#4 gain:0.2552240934977425 clip:1 s:piano release:0.1 pan:0.5555555555555556 ]", - "[ 27/4 ⇜ (219/32 → 439/64) ⇝ 55/8 | note:A#4 gain:0.2552240934977425 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", - "[ 95/14 ⇜ (219/32 → 439/64) ⇝ 197/28 | note:70 gain:0.02552240934977425 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", - "[ 95/14 ⇜ (219/32 → 439/64) ⇝ 197/28 | note:75 gain:0.02552240934977425 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", - "[ 95/14 ⇜ (219/32 → 439/64) ⇝ 197/28 | note:76 gain:0.02552240934977425 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", - "[ 95/14 ⇜ (219/32 → 439/64) ⇝ 197/28 | note:80 gain:0.02552240934977425 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", - "[ 27/4 ⇜ (439/64 → 55/8) | note:F#4 gain:0.36346331352697586 clip:1 s:piano release:0.1 pan:0.5555555555555556 ]", - "[ 27/4 ⇜ (439/64 → 55/8) | note:A#4 gain:0.36346331352697586 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", - "[ 95/14 ⇜ (439/64 → 55/8) ⇝ 197/28 | note:70 gain:0.03634633135269759 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", - "[ 95/14 ⇜ (439/64 → 55/8) ⇝ 197/28 | note:75 gain:0.03634633135269759 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", - "[ 95/14 ⇜ (439/64 → 55/8) ⇝ 197/28 | note:76 gain:0.03634633135269759 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", - "[ 95/14 ⇜ (439/64 → 55/8) ⇝ 197/28 | note:80 gain:0.03634633135269759 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", - "[ 95/14 ⇜ (55/8 → 441/64) ⇝ 197/28 | note:70 gain:0.051653668647301657 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", - "[ 95/14 ⇜ (55/8 → 441/64) ⇝ 197/28 | note:75 gain:0.051653668647301657 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", - "[ 95/14 ⇜ (55/8 → 441/64) ⇝ 197/28 | note:76 gain:0.051653668647301657 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", - "[ 95/14 ⇜ (55/8 → 441/64) ⇝ 197/28 | note:80 gain:0.051653668647301657 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", - "[ 95/14 ⇜ (441/64 → 221/32) ⇝ 197/28 | note:70 gain:0.06247759065022545 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", - "[ 95/14 ⇜ (441/64 → 221/32) ⇝ 197/28 | note:75 gain:0.06247759065022545 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", - "[ 95/14 ⇜ (441/64 → 221/32) ⇝ 197/28 | note:76 gain:0.06247759065022545 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", - "[ 95/14 ⇜ (441/64 → 221/32) ⇝ 197/28 | note:80 gain:0.06247759065022545 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", - "[ 95/14 ⇜ (221/32 → 443/64) ⇝ 197/28 | note:70 gain:0.06247759065022584 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", - "[ 95/14 ⇜ (221/32 → 443/64) ⇝ 197/28 | note:75 gain:0.06247759065022584 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", - "[ 95/14 ⇜ (221/32 → 443/64) ⇝ 197/28 | note:76 gain:0.06247759065022584 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", - "[ 95/14 ⇜ (221/32 → 443/64) ⇝ 197/28 | note:80 gain:0.06247759065022584 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", - "[ 95/14 ⇜ (443/64 → 111/16) ⇝ 197/28 | note:70 gain:0.051653668647301566 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", - "[ 95/14 ⇜ (443/64 → 111/16) ⇝ 197/28 | note:75 gain:0.051653668647301566 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", - "[ 95/14 ⇜ (443/64 → 111/16) ⇝ 197/28 | note:76 gain:0.051653668647301566 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", - "[ 95/14 ⇜ (443/64 → 111/16) ⇝ 197/28 | note:80 gain:0.051653668647301566 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", - "[ 95/14 ⇜ (111/16 → 445/64) ⇝ 197/28 | note:70 gain:0.03634633135269855 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", - "[ 95/14 ⇜ (111/16 → 445/64) ⇝ 197/28 | note:75 gain:0.03634633135269855 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", - "[ 95/14 ⇜ (111/16 → 445/64) ⇝ 197/28 | note:76 gain:0.03634633135269855 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", - "[ 95/14 ⇜ (111/16 → 445/64) ⇝ 197/28 | note:80 gain:0.03634633135269855 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", - "[ 95/14 ⇜ (445/64 → 223/32) ⇝ 197/28 | note:70 gain:0.025522409349774212 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", - "[ 95/14 ⇜ (445/64 → 223/32) ⇝ 197/28 | note:75 gain:0.025522409349774212 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", - "[ 95/14 ⇜ (445/64 → 223/32) ⇝ 197/28 | note:76 gain:0.025522409349774212 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", - "[ 95/14 ⇜ (445/64 → 223/32) ⇝ 197/28 | note:80 gain:0.025522409349774212 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", - "[ 95/14 ⇜ (223/32 → 447/64) ⇝ 197/28 | note:70 gain:0.02552240934977408 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", - "[ 95/14 ⇜ (223/32 → 447/64) ⇝ 197/28 | note:75 gain:0.02552240934977408 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", - "[ 95/14 ⇜ (223/32 → 447/64) ⇝ 197/28 | note:76 gain:0.02552240934977408 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", - "[ 95/14 ⇜ (223/32 → 447/64) ⇝ 197/28 | note:80 gain:0.02552240934977408 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", - "[ 95/14 ⇜ (447/64 → 7/1) ⇝ 197/28 | note:70 gain:0.03634633135269824 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", - "[ 95/14 ⇜ (447/64 → 7/1) ⇝ 197/28 | note:75 gain:0.03634633135269824 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", - "[ 95/14 ⇜ (447/64 → 7/1) ⇝ 197/28 | note:76 gain:0.03634633135269824 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", - "[ 95/14 ⇜ (447/64 → 7/1) ⇝ 197/28 | note:80 gain:0.03634633135269824 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", - "[ 95/14 ⇜ (7/1 → 449/64) ⇝ 197/28 | note:70 gain:0.051653668647301254 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", - "[ 95/14 ⇜ (7/1 → 449/64) ⇝ 197/28 | note:75 gain:0.051653668647301254 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", - "[ 95/14 ⇜ (7/1 → 449/64) ⇝ 197/28 | note:76 gain:0.051653668647301254 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", - "[ 95/14 ⇜ (7/1 → 449/64) ⇝ 197/28 | note:80 gain:0.051653668647301254 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", - "[ (7/1 → 449/64) ⇝ 29/4 | note:F#2 gain:0.5165366864730125 clip:1 s:piano release:0.1 pan:0.4444444444444444 ]", - "[ 95/14 ⇜ (449/64 → 225/32) ⇝ 197/28 | note:70 gain:0.06247759065022571 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", - "[ 95/14 ⇜ (449/64 → 225/32) ⇝ 197/28 | note:75 gain:0.06247759065022571 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", - "[ 95/14 ⇜ (449/64 → 225/32) ⇝ 197/28 | note:76 gain:0.06247759065022571 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", - "[ 95/14 ⇜ (449/64 → 225/32) ⇝ 197/28 | note:80 gain:0.06247759065022571 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", - "[ 7/1 ⇜ (449/64 → 225/32) ⇝ 29/4 | note:F#2 gain:0.6247759065022571 clip:1 s:piano release:0.1 pan:0.4444444444444444 ]", - "[ 95/14 ⇜ (225/32 → 197/28) | note:70 gain:0.062477590650226004 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", - "[ 95/14 ⇜ (225/32 → 197/28) | note:75 gain:0.062477590650226004 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", - "[ 95/14 ⇜ (225/32 → 197/28) | note:76 gain:0.062477590650226004 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", - "[ 95/14 ⇜ (225/32 → 197/28) | note:80 gain:0.062477590650226004 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", - "[ 7/1 ⇜ (225/32 → 451/64) ⇝ 29/4 | note:F#2 gain:0.62477590650226 clip:1 s:piano release:0.1 pan:0.4444444444444444 ]", - "[ 7/1 ⇜ (451/64 → 113/16) ⇝ 29/4 | note:F#2 gain:0.5165366864730195 clip:1 s:piano release:0.1 pan:0.4444444444444444 ]", - "[ 7/1 ⇜ (113/16 → 453/64) ⇝ 29/4 | note:F#2 gain:0.36346331352698946 clip:1 s:piano release:0.1 pan:0.4444444444444444 ]", - "[ 7/1 ⇜ (453/64 → 227/32) ⇝ 29/4 | note:F#2 gain:0.2552240934977437 clip:1 s:piano release:0.1 pan:0.4444444444444444 ]", - "[ 7/1 ⇜ (227/32 → 455/64) ⇝ 29/4 | note:F#2 gain:0.25522409349774355 clip:1 s:piano release:0.1 pan:0.4444444444444444 ]", - "[ 7/1 ⇜ (455/64 → 57/8) ⇝ 29/4 | note:F#2 gain:0.3634633135269784 clip:1 s:piano release:0.1 pan:0.4444444444444444 ]", - "[ 7/1 ⇜ (57/8 → 457/64) ⇝ 29/4 | note:F#2 gain:0.5165366864730191 clip:1 s:piano release:0.1 pan:0.4444444444444444 ]", - "[ (57/8 → 457/64) ⇝ 29/4 | note:F#4 gain:0.5165366864730191 clip:1 s:piano release:0.1 pan:0.5555555555555556 ]", - "[ (57/8 → 457/64) ⇝ 29/4 | note:A#4 gain:0.5165366864730191 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", - "[ 7/1 ⇜ (457/64 → 229/32) ⇝ 29/4 | note:F#2 gain:0.6247759065022556 clip:1 s:piano release:0.1 pan:0.4444444444444444 ]", - "[ 57/8 ⇜ (457/64 → 229/32) ⇝ 29/4 | note:F#4 gain:0.6247759065022556 clip:1 s:piano release:0.1 pan:0.5555555555555556 ]", - "[ 57/8 ⇜ (457/64 → 229/32) ⇝ 29/4 | note:A#4 gain:0.6247759065022556 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", - "[ 7/1 ⇜ (229/32 → 459/64) ⇝ 29/4 | note:F#2 gain:0.6247759065022573 clip:1 s:piano release:0.1 pan:0.4444444444444444 ]", - "[ 57/8 ⇜ (229/32 → 459/64) ⇝ 29/4 | note:F#4 gain:0.6247759065022573 clip:1 s:piano release:0.1 pan:0.5555555555555556 ]", - "[ 57/8 ⇜ (229/32 → 459/64) ⇝ 29/4 | note:A#4 gain:0.6247759065022573 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", - "[ 7/1 ⇜ (459/64 → 115/16) ⇝ 29/4 | note:F#2 gain:0.5165366864730236 clip:1 s:piano release:0.1 pan:0.4444444444444444 ]", - "[ 57/8 ⇜ (459/64 → 115/16) ⇝ 29/4 | note:F#4 gain:0.5165366864730236 clip:1 s:piano release:0.1 pan:0.5555555555555556 ]", - "[ 57/8 ⇜ (459/64 → 115/16) ⇝ 29/4 | note:A#4 gain:0.5165366864730236 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", - "[ 7/1 ⇜ (115/16 → 461/64) ⇝ 29/4 | note:F#2 gain:0.3634633135269829 clip:1 s:piano release:0.1 pan:0.4444444444444444 ]", - "[ 57/8 ⇜ (115/16 → 461/64) ⇝ 29/4 | note:F#4 gain:0.3634633135269829 clip:1 s:piano release:0.1 pan:0.5555555555555556 ]", - "[ 57/8 ⇜ (115/16 → 461/64) ⇝ 29/4 | note:A#4 gain:0.3634633135269829 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", - "[ 7/1 ⇜ (461/64 → 231/32) ⇝ 29/4 | note:F#2 gain:0.2552240934977454 clip:1 s:piano release:0.1 pan:0.4444444444444444 ]", - "[ 57/8 ⇜ (461/64 → 231/32) ⇝ 29/4 | note:F#4 gain:0.2552240934977454 clip:1 s:piano release:0.1 pan:0.5555555555555556 ]", - "[ 57/8 ⇜ (461/64 → 231/32) ⇝ 29/4 | note:A#4 gain:0.2552240934977454 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", - "[ 7/1 ⇜ (231/32 → 463/64) ⇝ 29/4 | note:F#2 gain:0.25522409349774183 clip:1 s:piano release:0.1 pan:0.4444444444444444 ]", - "[ 57/8 ⇜ (231/32 → 463/64) ⇝ 29/4 | note:F#4 gain:0.25522409349774183 clip:1 s:piano release:0.1 pan:0.5555555555555556 ]", - "[ 57/8 ⇜ (231/32 → 463/64) ⇝ 29/4 | note:A#4 gain:0.25522409349774183 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", - "[ 7/1 ⇜ (463/64 → 29/4) | note:F#2 gain:0.3634633135269744 clip:1 s:piano release:0.1 pan:0.4444444444444444 ]", - "[ 57/8 ⇜ (463/64 → 29/4) | note:F#4 gain:0.3634633135269744 clip:1 s:piano release:0.1 pan:0.5555555555555556 ]", - "[ 57/8 ⇜ (463/64 → 29/4) | note:A#4 gain:0.3634633135269744 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", - "[ (29/4 → 465/64) ⇝ 15/2 | note:Bb3 gain:0.25826834323650755 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", - "[ (29/4 → 465/64) ⇝ 15/2 | note:Eb4 gain:0.25826834323650755 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", - "[ (29/4 → 465/64) ⇝ 15/2 | note:E4 gain:0.25826834323650755 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", - "[ (29/4 → 465/64) ⇝ 15/2 | note:Ab4 gain:0.25826834323650755 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", - "[ 29/4 ⇜ (465/64 → 233/32) ⇝ 15/2 | note:Bb3 gain:0.3123879532511291 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", - "[ 29/4 ⇜ (465/64 → 233/32) ⇝ 15/2 | note:Eb4 gain:0.3123879532511291 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", - "[ 29/4 ⇜ (465/64 → 233/32) ⇝ 15/2 | note:E4 gain:0.3123879532511291 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", - "[ 29/4 ⇜ (465/64 → 233/32) ⇝ 15/2 | note:Ab4 gain:0.3123879532511291 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", - "[ 29/4 ⇜ (233/32 → 467/64) ⇝ 15/2 | note:Bb3 gain:0.3123879532511295 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", - "[ 29/4 ⇜ (233/32 → 467/64) ⇝ 15/2 | note:Eb4 gain:0.3123879532511295 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", - "[ 29/4 ⇜ (233/32 → 467/64) ⇝ 15/2 | note:E4 gain:0.3123879532511295 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", - "[ 29/4 ⇜ (233/32 → 467/64) ⇝ 15/2 | note:Ab4 gain:0.3123879532511295 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", - "[ 29/4 ⇜ (467/64 → 117/16) ⇝ 15/2 | note:Bb3 gain:0.25826834323650855 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", - "[ 29/4 ⇜ (467/64 → 117/16) ⇝ 15/2 | note:Eb4 gain:0.25826834323650855 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", - "[ 29/4 ⇜ (467/64 → 117/16) ⇝ 15/2 | note:E4 gain:0.25826834323650855 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", - "[ 29/4 ⇜ (467/64 → 117/16) ⇝ 15/2 | note:Ab4 gain:0.25826834323650855 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", - "[ 29/4 ⇜ (117/16 → 469/64) ⇝ 15/2 | note:Bb3 gain:0.18173165676349345 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", - "[ 29/4 ⇜ (117/16 → 469/64) ⇝ 15/2 | note:Eb4 gain:0.18173165676349345 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", - "[ 29/4 ⇜ (117/16 → 469/64) ⇝ 15/2 | note:E4 gain:0.18173165676349345 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", - "[ 29/4 ⇜ (117/16 → 469/64) ⇝ 15/2 | note:Ab4 gain:0.18173165676349345 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", - "[ 29/4 ⇜ (469/64 → 235/32) ⇝ 15/2 | note:Bb3 gain:0.12761204674887136 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", - "[ 29/4 ⇜ (469/64 → 235/32) ⇝ 15/2 | note:Eb4 gain:0.12761204674887136 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", - "[ 29/4 ⇜ (469/64 → 235/32) ⇝ 15/2 | note:E4 gain:0.12761204674887136 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", - "[ 29/4 ⇜ (469/64 → 235/32) ⇝ 15/2 | note:Ab4 gain:0.12761204674887136 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", - "[ 29/4 ⇜ (235/32 → 471/64) ⇝ 15/2 | note:Bb3 gain:0.1276120467488701 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", - "[ 29/4 ⇜ (235/32 → 471/64) ⇝ 15/2 | note:Eb4 gain:0.1276120467488701 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", - "[ 29/4 ⇜ (235/32 → 471/64) ⇝ 15/2 | note:E4 gain:0.1276120467488701 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", - "[ 29/4 ⇜ (235/32 → 471/64) ⇝ 15/2 | note:Ab4 gain:0.1276120467488701 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", - "[ 29/4 ⇜ (471/64 → 59/8) ⇝ 15/2 | note:Bb3 gain:0.18173165676349046 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", - "[ 29/4 ⇜ (471/64 → 59/8) ⇝ 15/2 | note:Eb4 gain:0.18173165676349046 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", - "[ 29/4 ⇜ (471/64 → 59/8) ⇝ 15/2 | note:E4 gain:0.18173165676349046 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", - "[ 29/4 ⇜ (471/64 → 59/8) ⇝ 15/2 | note:Ab4 gain:0.18173165676349046 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", - "[ 29/4 ⇜ (59/8 → 473/64) ⇝ 15/2 | note:Bb3 gain:0.25826834323650555 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", - "[ 29/4 ⇜ (59/8 → 473/64) ⇝ 15/2 | note:Eb4 gain:0.25826834323650555 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", - "[ 29/4 ⇜ (59/8 → 473/64) ⇝ 15/2 | note:E4 gain:0.25826834323650555 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", - "[ 29/4 ⇜ (59/8 → 473/64) ⇝ 15/2 | note:Ab4 gain:0.25826834323650555 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", - "[ 29/4 ⇜ (473/64 → 237/32) ⇝ 15/2 | note:Bb3 gain:0.3123879532511283 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", - "[ 29/4 ⇜ (473/64 → 237/32) ⇝ 15/2 | note:Eb4 gain:0.3123879532511283 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", - "[ 29/4 ⇜ (473/64 → 237/32) ⇝ 15/2 | note:E4 gain:0.3123879532511283 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", - "[ 29/4 ⇜ (473/64 → 237/32) ⇝ 15/2 | note:Ab4 gain:0.3123879532511283 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", - "[ 29/4 ⇜ (237/32 → 475/64) ⇝ 15/2 | note:Bb3 gain:0.31238795325113033 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", - "[ 29/4 ⇜ (237/32 → 475/64) ⇝ 15/2 | note:Eb4 gain:0.31238795325113033 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", - "[ 29/4 ⇜ (237/32 → 475/64) ⇝ 15/2 | note:E4 gain:0.31238795325113033 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", - "[ 29/4 ⇜ (237/32 → 475/64) ⇝ 15/2 | note:Ab4 gain:0.31238795325113033 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", - "[ 29/4 ⇜ (475/64 → 119/16) ⇝ 15/2 | note:Bb3 gain:0.2582683432365105 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", - "[ 29/4 ⇜ (475/64 → 119/16) ⇝ 15/2 | note:Eb4 gain:0.2582683432365105 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", - "[ 29/4 ⇜ (475/64 → 119/16) ⇝ 15/2 | note:E4 gain:0.2582683432365105 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", - "[ 29/4 ⇜ (475/64 → 119/16) ⇝ 15/2 | note:Ab4 gain:0.2582683432365105 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", - "[ 29/4 ⇜ (119/16 → 477/64) ⇝ 15/2 | note:Bb3 gain:0.1817316567634902 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", - "[ 29/4 ⇜ (119/16 → 477/64) ⇝ 15/2 | note:Eb4 gain:0.1817316567634902 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", - "[ 29/4 ⇜ (119/16 → 477/64) ⇝ 15/2 | note:E4 gain:0.1817316567634902 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", - "[ 29/4 ⇜ (119/16 → 477/64) ⇝ 15/2 | note:Ab4 gain:0.1817316567634902 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", - "[ 29/4 ⇜ (477/64 → 239/32) ⇝ 15/2 | note:Bb3 gain:0.12761204674887217 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", - "[ 29/4 ⇜ (477/64 → 239/32) ⇝ 15/2 | note:Eb4 gain:0.12761204674887217 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", - "[ 29/4 ⇜ (477/64 → 239/32) ⇝ 15/2 | note:E4 gain:0.12761204674887217 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", - "[ 29/4 ⇜ (477/64 → 239/32) ⇝ 15/2 | note:Ab4 gain:0.12761204674887217 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", - "[ 29/4 ⇜ (239/32 → 479/64) ⇝ 15/2 | note:Bb3 gain:0.12761204674887147 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", - "[ 29/4 ⇜ (239/32 → 479/64) ⇝ 15/2 | note:Eb4 gain:0.12761204674887147 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", - "[ 29/4 ⇜ (239/32 → 479/64) ⇝ 15/2 | note:E4 gain:0.12761204674887147 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", - "[ 29/4 ⇜ (239/32 → 479/64) ⇝ 15/2 | note:Ab4 gain:0.12761204674887147 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", - "[ 29/4 ⇜ (479/64 → 15/2) | note:Bb3 gain:0.18173165676348849 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", - "[ 29/4 ⇜ (479/64 → 15/2) | note:Eb4 gain:0.18173165676348849 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", - "[ 29/4 ⇜ (479/64 → 15/2) | note:E4 gain:0.18173165676348849 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", - "[ 29/4 ⇜ (479/64 → 15/2) | note:Ab4 gain:0.18173165676348849 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", - "[ (15/2 → 481/64) ⇝ 61/8 | note:C#5 gain:0.5165366864730176 clip:1 s:piano release:0.1 pan:0.587962962962963 ]", - "[ (15/2 → 481/64) ⇝ 61/8 | note:E5 gain:0.5165366864730176 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", - "[ (15/2 → 481/64) ⇝ 31/4 | note:F#2 gain:0.5165366864730176 clip:1 s:piano release:0.1 pan:0.4444444444444444 ]", - "[ 15/2 ⇜ (481/64 → 241/32) ⇝ 61/8 | note:C#5 gain:0.6247759065022548 clip:1 s:piano release:0.1 pan:0.587962962962963 ]", - "[ 15/2 ⇜ (481/64 → 241/32) ⇝ 61/8 | note:E5 gain:0.6247759065022548 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", - "[ 15/2 ⇜ (481/64 → 241/32) ⇝ 31/4 | note:F#2 gain:0.6247759065022548 clip:1 s:piano release:0.1 pan:0.4444444444444444 ]", - "[ 15/2 ⇜ (241/32 → 483/64) ⇝ 61/8 | note:C#5 gain:0.624775906502258 clip:1 s:piano release:0.1 pan:0.587962962962963 ]", - "[ 15/2 ⇜ (241/32 → 483/64) ⇝ 61/8 | note:E5 gain:0.624775906502258 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", - "[ 15/2 ⇜ (241/32 → 483/64) ⇝ 31/4 | note:F#2 gain:0.624775906502258 clip:1 s:piano release:0.1 pan:0.4444444444444444 ]", - "[ (211/28 → 483/64) ⇝ 109/14 | note:70 gain:0.0624775906502258 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", - "[ (211/28 → 483/64) ⇝ 109/14 | note:75 gain:0.0624775906502258 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", - "[ (211/28 → 483/64) ⇝ 109/14 | note:76 gain:0.0624775906502258 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", - "[ (211/28 → 483/64) ⇝ 109/14 | note:80 gain:0.0624775906502258 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", - "[ 15/2 ⇜ (483/64 → 121/16) ⇝ 61/8 | note:C#5 gain:0.5165366864730251 clip:1 s:piano release:0.1 pan:0.587962962962963 ]", - "[ 15/2 ⇜ (483/64 → 121/16) ⇝ 61/8 | note:E5 gain:0.5165366864730251 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", - "[ 15/2 ⇜ (483/64 → 121/16) ⇝ 31/4 | note:F#2 gain:0.5165366864730251 clip:1 s:piano release:0.1 pan:0.4444444444444444 ]", - "[ 211/28 ⇜ (483/64 → 121/16) ⇝ 109/14 | note:70 gain:0.05165366864730251 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", - "[ 211/28 ⇜ (483/64 → 121/16) ⇝ 109/14 | note:75 gain:0.05165366864730251 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", - "[ 211/28 ⇜ (483/64 → 121/16) ⇝ 109/14 | note:76 gain:0.05165366864730251 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", - "[ 211/28 ⇜ (483/64 → 121/16) ⇝ 109/14 | note:80 gain:0.05165366864730251 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", - "[ 15/2 ⇜ (121/16 → 485/64) ⇝ 61/8 | note:C#5 gain:0.3634633135269844 clip:1 s:piano release:0.1 pan:0.587962962962963 ]", - "[ 15/2 ⇜ (121/16 → 485/64) ⇝ 61/8 | note:E5 gain:0.3634633135269844 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", - "[ 15/2 ⇜ (121/16 → 485/64) ⇝ 31/4 | note:F#2 gain:0.3634633135269844 clip:1 s:piano release:0.1 pan:0.4444444444444444 ]", - "[ 211/28 ⇜ (121/16 → 485/64) ⇝ 109/14 | note:70 gain:0.03634633135269844 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", - "[ 211/28 ⇜ (121/16 → 485/64) ⇝ 109/14 | note:75 gain:0.03634633135269844 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", - "[ 211/28 ⇜ (121/16 → 485/64) ⇝ 109/14 | note:76 gain:0.03634633135269844 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", - "[ 211/28 ⇜ (121/16 → 485/64) ⇝ 109/14 | note:80 gain:0.03634633135269844 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", - "[ 15/2 ⇜ (485/64 → 243/32) ⇝ 61/8 | note:C#5 gain:0.25522409349774167 clip:1 s:piano release:0.1 pan:0.587962962962963 ]", - "[ 15/2 ⇜ (485/64 → 243/32) ⇝ 61/8 | note:E5 gain:0.25522409349774167 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", - "[ 15/2 ⇜ (485/64 → 243/32) ⇝ 31/4 | note:F#2 gain:0.25522409349774167 clip:1 s:piano release:0.1 pan:0.4444444444444444 ]", - "[ 211/28 ⇜ (485/64 → 243/32) ⇝ 109/14 | note:70 gain:0.025522409349774167 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", - "[ 211/28 ⇜ (485/64 → 243/32) ⇝ 109/14 | note:75 gain:0.025522409349774167 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", - "[ 211/28 ⇜ (485/64 → 243/32) ⇝ 109/14 | note:76 gain:0.025522409349774167 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", - "[ 211/28 ⇜ (485/64 → 243/32) ⇝ 109/14 | note:80 gain:0.025522409349774167 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", - "[ 15/2 ⇜ (243/32 → 487/64) ⇝ 61/8 | note:C#5 gain:0.2552240934977413 clip:1 s:piano release:0.1 pan:0.587962962962963 ]", - "[ 15/2 ⇜ (243/32 → 487/64) ⇝ 61/8 | note:E5 gain:0.2552240934977413 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", - "[ 15/2 ⇜ (243/32 → 487/64) ⇝ 31/4 | note:F#2 gain:0.2552240934977413 clip:1 s:piano release:0.1 pan:0.4444444444444444 ]", - "[ 211/28 ⇜ (243/32 → 487/64) ⇝ 109/14 | note:70 gain:0.02552240934977413 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", - "[ 211/28 ⇜ (243/32 → 487/64) ⇝ 109/14 | note:75 gain:0.02552240934977413 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", - "[ 211/28 ⇜ (243/32 → 487/64) ⇝ 109/14 | note:76 gain:0.02552240934977413 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", - "[ 211/28 ⇜ (243/32 → 487/64) ⇝ 109/14 | note:80 gain:0.02552240934977413 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", - "[ 15/2 ⇜ (487/64 → 61/8) | note:C#5 gain:0.36346331352698347 clip:1 s:piano release:0.1 pan:0.587962962962963 ]", - "[ 15/2 ⇜ (487/64 → 61/8) | note:E5 gain:0.36346331352698347 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", - "[ 15/2 ⇜ (487/64 → 61/8) ⇝ 31/4 | note:F#2 gain:0.36346331352698347 clip:1 s:piano release:0.1 pan:0.4444444444444444 ]", - "[ 211/28 ⇜ (487/64 → 61/8) ⇝ 109/14 | note:70 gain:0.036346331352698345 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", - "[ 211/28 ⇜ (487/64 → 61/8) ⇝ 109/14 | note:75 gain:0.036346331352698345 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", - "[ 211/28 ⇜ (487/64 → 61/8) ⇝ 109/14 | note:76 gain:0.036346331352698345 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", - "[ 211/28 ⇜ (487/64 → 61/8) ⇝ 109/14 | note:80 gain:0.036346331352698345 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", - "[ 15/2 ⇜ (61/8 → 489/64) ⇝ 31/4 | note:F#2 gain:0.5165366864730137 clip:1 s:piano release:0.1 pan:0.4444444444444444 ]", - "[ 211/28 ⇜ (61/8 → 489/64) ⇝ 109/14 | note:70 gain:0.051653668647301365 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", - "[ 211/28 ⇜ (61/8 → 489/64) ⇝ 109/14 | note:75 gain:0.051653668647301365 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", - "[ 211/28 ⇜ (61/8 → 489/64) ⇝ 109/14 | note:76 gain:0.051653668647301365 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", - "[ 211/28 ⇜ (61/8 → 489/64) ⇝ 109/14 | note:80 gain:0.051653668647301365 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", - "[ 15/2 ⇜ (489/64 → 245/32) ⇝ 31/4 | note:F#2 gain:0.6247759065022576 clip:1 s:piano release:0.1 pan:0.4444444444444444 ]", - "[ 211/28 ⇜ (489/64 → 245/32) ⇝ 109/14 | note:70 gain:0.06247759065022576 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", - "[ 211/28 ⇜ (489/64 → 245/32) ⇝ 109/14 | note:75 gain:0.06247759065022576 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", - "[ 211/28 ⇜ (489/64 → 245/32) ⇝ 109/14 | note:76 gain:0.06247759065022576 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", - "[ 211/28 ⇜ (489/64 → 245/32) ⇝ 109/14 | note:80 gain:0.06247759065022576 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", - "[ 15/2 ⇜ (245/32 → 491/64) ⇝ 31/4 | note:F#2 gain:0.6247759065022596 clip:1 s:piano release:0.1 pan:0.4444444444444444 ]", - "[ 211/28 ⇜ (245/32 → 491/64) ⇝ 109/14 | note:70 gain:0.062477590650225956 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", - "[ 211/28 ⇜ (245/32 → 491/64) ⇝ 109/14 | note:75 gain:0.062477590650225956 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", - "[ 211/28 ⇜ (245/32 → 491/64) ⇝ 109/14 | note:76 gain:0.062477590650225956 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", - "[ 211/28 ⇜ (245/32 → 491/64) ⇝ 109/14 | note:80 gain:0.062477590650225956 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", - "[ 15/2 ⇜ (491/64 → 123/16) ⇝ 31/4 | note:F#2 gain:0.5165366864730185 clip:1 s:piano release:0.1 pan:0.4444444444444444 ]", - "[ 211/28 ⇜ (491/64 → 123/16) ⇝ 109/14 | note:70 gain:0.05165366864730186 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", - "[ 211/28 ⇜ (491/64 → 123/16) ⇝ 109/14 | note:75 gain:0.05165366864730186 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", - "[ 211/28 ⇜ (491/64 → 123/16) ⇝ 109/14 | note:76 gain:0.05165366864730186 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", - "[ 211/28 ⇜ (491/64 → 123/16) ⇝ 109/14 | note:80 gain:0.05165366864730186 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", - "[ 15/2 ⇜ (123/16 → 493/64) ⇝ 31/4 | note:F#2 gain:0.36346331352698835 clip:1 s:piano release:0.1 pan:0.4444444444444444 ]", - "[ 211/28 ⇜ (123/16 → 493/64) ⇝ 109/14 | note:70 gain:0.03634633135269884 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", - "[ 211/28 ⇜ (123/16 → 493/64) ⇝ 109/14 | note:75 gain:0.03634633135269884 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", - "[ 211/28 ⇜ (123/16 → 493/64) ⇝ 109/14 | note:76 gain:0.03634633135269884 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", - "[ 211/28 ⇜ (123/16 → 493/64) ⇝ 109/14 | note:80 gain:0.03634633135269884 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", - "[ 15/2 ⇜ (493/64 → 247/32) ⇝ 31/4 | note:F#2 gain:0.2552240934977433 clip:1 s:piano release:0.1 pan:0.4444444444444444 ]", - "[ 211/28 ⇜ (493/64 → 247/32) ⇝ 109/14 | note:70 gain:0.02552240934977433 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", - "[ 211/28 ⇜ (493/64 → 247/32) ⇝ 109/14 | note:75 gain:0.02552240934977433 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", - "[ 211/28 ⇜ (493/64 → 247/32) ⇝ 109/14 | note:76 gain:0.02552240934977433 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", - "[ 211/28 ⇜ (493/64 → 247/32) ⇝ 109/14 | note:80 gain:0.02552240934977433 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", - "[ 15/2 ⇜ (247/32 → 495/64) ⇝ 31/4 | note:F#2 gain:0.2552240934977396 clip:1 s:piano release:0.1 pan:0.4444444444444444 ]", - "[ 211/28 ⇜ (247/32 → 495/64) ⇝ 109/14 | note:70 gain:0.025522409349773963 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", - "[ 211/28 ⇜ (247/32 → 495/64) ⇝ 109/14 | note:75 gain:0.025522409349773963 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", - "[ 211/28 ⇜ (247/32 → 495/64) ⇝ 109/14 | note:76 gain:0.025522409349773963 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", - "[ 211/28 ⇜ (247/32 → 495/64) ⇝ 109/14 | note:80 gain:0.025522409349773963 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", - "[ 15/2 ⇜ (495/64 → 31/4) | note:F#2 gain:0.3634633135269795 clip:1 s:piano release:0.1 pan:0.4444444444444444 ]", - "[ 211/28 ⇜ (495/64 → 31/4) ⇝ 109/14 | note:70 gain:0.03634633135269796 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", - "[ 211/28 ⇜ (495/64 → 31/4) ⇝ 109/14 | note:75 gain:0.03634633135269796 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", - "[ 211/28 ⇜ (495/64 → 31/4) ⇝ 109/14 | note:76 gain:0.03634633135269796 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", - "[ 211/28 ⇜ (495/64 → 31/4) ⇝ 109/14 | note:80 gain:0.03634633135269796 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", - "[ 211/28 ⇜ (31/4 → 497/64) ⇝ 109/14 | note:70 gain:0.05165366864730201 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", - "[ 211/28 ⇜ (31/4 → 497/64) ⇝ 109/14 | note:75 gain:0.05165366864730201 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", - "[ 211/28 ⇜ (31/4 → 497/64) ⇝ 109/14 | note:76 gain:0.05165366864730201 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", - "[ 211/28 ⇜ (31/4 → 497/64) ⇝ 109/14 | note:80 gain:0.05165366864730201 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", - "[ (31/4 → 497/64) ⇝ 63/8 | note:C#5 gain:0.5165366864730201 clip:1 s:piano release:0.1 pan:0.587962962962963 ]", - "[ (31/4 → 497/64) ⇝ 63/8 | note:E5 gain:0.5165366864730201 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", - "[ (31/4 → 497/64) ⇝ 8/1 | note:Bb3 gain:0.25826834323651005 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", - "[ (31/4 → 497/64) ⇝ 8/1 | note:Eb4 gain:0.25826834323651005 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", - "[ (31/4 → 497/64) ⇝ 8/1 | note:E4 gain:0.25826834323651005 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", - "[ (31/4 → 497/64) ⇝ 8/1 | note:Ab4 gain:0.25826834323651005 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", - "[ 211/28 ⇜ (497/64 → 249/32) ⇝ 109/14 | note:70 gain:0.062477590650225595 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", - "[ 211/28 ⇜ (497/64 → 249/32) ⇝ 109/14 | note:75 gain:0.062477590650225595 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", - "[ 211/28 ⇜ (497/64 → 249/32) ⇝ 109/14 | note:76 gain:0.062477590650225595 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", - "[ 211/28 ⇜ (497/64 → 249/32) ⇝ 109/14 | note:80 gain:0.062477590650225595 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", - "[ 31/4 ⇜ (497/64 → 249/32) ⇝ 63/8 | note:C#5 gain:0.6247759065022559 clip:1 s:piano release:0.1 pan:0.587962962962963 ]", - "[ 31/4 ⇜ (497/64 → 249/32) ⇝ 63/8 | note:E5 gain:0.6247759065022559 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", - "[ 31/4 ⇜ (497/64 → 249/32) ⇝ 8/1 | note:Bb3 gain:0.31238795325112795 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", - "[ 31/4 ⇜ (497/64 → 249/32) ⇝ 8/1 | note:Eb4 gain:0.31238795325112795 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", - "[ 31/4 ⇜ (497/64 → 249/32) ⇝ 8/1 | note:E4 gain:0.31238795325112795 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", - "[ 31/4 ⇜ (497/64 → 249/32) ⇝ 8/1 | note:Ab4 gain:0.31238795325112795 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", - "[ 211/28 ⇜ (249/32 → 109/14) | note:70 gain:0.06247759065022569 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", - "[ 211/28 ⇜ (249/32 → 109/14) | note:75 gain:0.06247759065022569 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", - "[ 211/28 ⇜ (249/32 → 109/14) | note:76 gain:0.06247759065022569 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", - "[ 211/28 ⇜ (249/32 → 109/14) | note:80 gain:0.06247759065022569 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", - "[ 31/4 ⇜ (249/32 → 499/64) ⇝ 63/8 | note:C#5 gain:0.6247759065022569 clip:1 s:piano release:0.1 pan:0.587962962962963 ]", - "[ 31/4 ⇜ (249/32 → 499/64) ⇝ 63/8 | note:E5 gain:0.6247759065022569 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", - "[ 31/4 ⇜ (249/32 → 499/64) ⇝ 8/1 | note:Bb3 gain:0.31238795325112845 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", - "[ 31/4 ⇜ (249/32 → 499/64) ⇝ 8/1 | note:Eb4 gain:0.31238795325112845 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", - "[ 31/4 ⇜ (249/32 → 499/64) ⇝ 8/1 | note:E4 gain:0.31238795325112845 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", - "[ 31/4 ⇜ (249/32 → 499/64) ⇝ 8/1 | note:Ab4 gain:0.31238795325112845 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", - "[ 31/4 ⇜ (499/64 → 125/16) ⇝ 63/8 | note:C#5 gain:0.5165366864730225 clip:1 s:piano release:0.1 pan:0.587962962962963 ]", - "[ 31/4 ⇜ (499/64 → 125/16) ⇝ 63/8 | note:E5 gain:0.5165366864730225 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", - "[ 31/4 ⇜ (499/64 → 125/16) ⇝ 8/1 | note:Bb3 gain:0.25826834323651127 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", - "[ 31/4 ⇜ (499/64 → 125/16) ⇝ 8/1 | note:Eb4 gain:0.25826834323651127 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", - "[ 31/4 ⇜ (499/64 → 125/16) ⇝ 8/1 | note:E4 gain:0.25826834323651127 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", - "[ 31/4 ⇜ (499/64 → 125/16) ⇝ 8/1 | note:Ab4 gain:0.25826834323651127 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", - "[ 31/4 ⇜ (125/16 → 501/64) ⇝ 63/8 | note:C#5 gain:0.36346331352698186 clip:1 s:piano release:0.1 pan:0.587962962962963 ]", - "[ 31/4 ⇜ (125/16 → 501/64) ⇝ 63/8 | note:E5 gain:0.36346331352698186 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", - "[ 31/4 ⇜ (125/16 → 501/64) ⇝ 8/1 | note:Bb3 gain:0.18173165676349093 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", - "[ 31/4 ⇜ (125/16 → 501/64) ⇝ 8/1 | note:Eb4 gain:0.18173165676349093 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", - "[ 31/4 ⇜ (125/16 → 501/64) ⇝ 8/1 | note:E4 gain:0.18173165676349093 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", - "[ 31/4 ⇜ (125/16 → 501/64) ⇝ 8/1 | note:Ab4 gain:0.18173165676349093 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", - "[ 31/4 ⇜ (501/64 → 251/32) ⇝ 63/8 | note:C#5 gain:0.25522409349774494 clip:1 s:piano release:0.1 pan:0.587962962962963 ]", - "[ 31/4 ⇜ (501/64 → 251/32) ⇝ 63/8 | note:E5 gain:0.25522409349774494 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", - "[ 31/4 ⇜ (501/64 → 251/32) ⇝ 8/1 | note:Bb3 gain:0.12761204674887247 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", - "[ 31/4 ⇜ (501/64 → 251/32) ⇝ 8/1 | note:Eb4 gain:0.12761204674887247 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", - "[ 31/4 ⇜ (501/64 → 251/32) ⇝ 8/1 | note:E4 gain:0.12761204674887247 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", - "[ 31/4 ⇜ (501/64 → 251/32) ⇝ 8/1 | note:Ab4 gain:0.12761204674887247 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", - "[ 31/4 ⇜ (251/32 → 503/64) ⇝ 63/8 | note:C#5 gain:0.2552240934977423 clip:1 s:piano release:0.1 pan:0.587962962962963 ]", - "[ 31/4 ⇜ (251/32 → 503/64) ⇝ 63/8 | note:E5 gain:0.2552240934977423 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", - "[ 31/4 ⇜ (251/32 → 503/64) ⇝ 8/1 | note:Bb3 gain:0.12761204674887114 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", - "[ 31/4 ⇜ (251/32 → 503/64) ⇝ 8/1 | note:Eb4 gain:0.12761204674887114 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", - "[ 31/4 ⇜ (251/32 → 503/64) ⇝ 8/1 | note:E4 gain:0.12761204674887114 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", - "[ 31/4 ⇜ (251/32 → 503/64) ⇝ 8/1 | note:Ab4 gain:0.12761204674887114 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", - "[ 31/4 ⇜ (503/64 → 63/8) | note:C#5 gain:0.36346331352697553 clip:1 s:piano release:0.1 pan:0.587962962962963 ]", - "[ 31/4 ⇜ (503/64 → 63/8) | note:E5 gain:0.36346331352697553 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", - "[ 31/4 ⇜ (503/64 → 63/8) ⇝ 8/1 | note:Bb3 gain:0.18173165676348776 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", - "[ 31/4 ⇜ (503/64 → 63/8) ⇝ 8/1 | note:Eb4 gain:0.18173165676348776 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", - "[ 31/4 ⇜ (503/64 → 63/8) ⇝ 8/1 | note:E4 gain:0.18173165676348776 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", - "[ 31/4 ⇜ (503/64 → 63/8) ⇝ 8/1 | note:Ab4 gain:0.18173165676348776 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", - "[ 31/4 ⇜ (63/8 → 505/64) ⇝ 8/1 | note:Bb3 gain:0.2582683432365081 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", - "[ 31/4 ⇜ (63/8 → 505/64) ⇝ 8/1 | note:Eb4 gain:0.2582683432365081 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", - "[ 31/4 ⇜ (63/8 → 505/64) ⇝ 8/1 | note:E4 gain:0.2582683432365081 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", - "[ 31/4 ⇜ (63/8 → 505/64) ⇝ 8/1 | note:Ab4 gain:0.2582683432365081 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", - "[ 31/4 ⇜ (505/64 → 253/32) ⇝ 8/1 | note:Bb3 gain:0.3123879532511271 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", - "[ 31/4 ⇜ (505/64 → 253/32) ⇝ 8/1 | note:Eb4 gain:0.3123879532511271 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", - "[ 31/4 ⇜ (505/64 → 253/32) ⇝ 8/1 | note:E4 gain:0.3123879532511271 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", - "[ 31/4 ⇜ (505/64 → 253/32) ⇝ 8/1 | note:Ab4 gain:0.3123879532511271 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", - "[ 31/4 ⇜ (253/32 → 507/64) ⇝ 8/1 | note:Bb3 gain:0.3123879532511293 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", - "[ 31/4 ⇜ (253/32 → 507/64) ⇝ 8/1 | note:Eb4 gain:0.3123879532511293 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", - "[ 31/4 ⇜ (253/32 → 507/64) ⇝ 8/1 | note:E4 gain:0.3123879532511293 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", - "[ 31/4 ⇜ (253/32 → 507/64) ⇝ 8/1 | note:Ab4 gain:0.3123879532511293 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", - "[ 31/4 ⇜ (507/64 → 127/16) ⇝ 8/1 | note:Bb3 gain:0.258268343236508 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", - "[ 31/4 ⇜ (507/64 → 127/16) ⇝ 8/1 | note:Eb4 gain:0.258268343236508 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", - "[ 31/4 ⇜ (507/64 → 127/16) ⇝ 8/1 | note:E4 gain:0.258268343236508 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", - "[ 31/4 ⇜ (507/64 → 127/16) ⇝ 8/1 | note:Ab4 gain:0.258268343236508 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", - "[ 31/4 ⇜ (127/16 → 509/64) ⇝ 8/1 | note:Bb3 gain:0.18173165676349293 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", - "[ 31/4 ⇜ (127/16 → 509/64) ⇝ 8/1 | note:Eb4 gain:0.18173165676349293 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", - "[ 31/4 ⇜ (127/16 → 509/64) ⇝ 8/1 | note:E4 gain:0.18173165676349293 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", - "[ 31/4 ⇜ (127/16 → 509/64) ⇝ 8/1 | note:Ab4 gain:0.18173165676349293 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", - "[ 31/4 ⇜ (509/64 → 255/32) ⇝ 8/1 | note:Bb3 gain:0.12761204674887114 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", - "[ 31/4 ⇜ (509/64 → 255/32) ⇝ 8/1 | note:Eb4 gain:0.12761204674887114 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", - "[ 31/4 ⇜ (509/64 → 255/32) ⇝ 8/1 | note:E4 gain:0.12761204674887114 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", - "[ 31/4 ⇜ (509/64 → 255/32) ⇝ 8/1 | note:Ab4 gain:0.12761204674887114 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", - "[ 31/4 ⇜ (255/32 → 511/64) ⇝ 8/1 | note:Bb3 gain:0.12761204674887036 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", - "[ 31/4 ⇜ (255/32 → 511/64) ⇝ 8/1 | note:Eb4 gain:0.12761204674887036 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", - "[ 31/4 ⇜ (255/32 → 511/64) ⇝ 8/1 | note:E4 gain:0.12761204674887036 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", - "[ 31/4 ⇜ (255/32 → 511/64) ⇝ 8/1 | note:Ab4 gain:0.12761204674887036 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", - "[ 31/4 ⇜ (511/64 → 8/1) | note:Bb3 gain:0.181731656763491 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", - "[ 31/4 ⇜ (511/64 → 8/1) | note:Eb4 gain:0.181731656763491 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", - "[ 31/4 ⇜ (511/64 → 8/1) | note:E4 gain:0.181731656763491 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", - "[ 31/4 ⇜ (511/64 → 8/1) | note:Ab4 gain:0.181731656763491 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", - "[ (8/1 → 513/64) ⇝ 33/4 | note:C2 gain:0.5165366864730122 clip:1 s:piano release:0.1 pan:0.41666666666666663 ]", - "[ 8/1 ⇜ (513/64 → 257/32) ⇝ 33/4 | note:C2 gain:0.6247759065022569 clip:1 s:piano release:0.1 pan:0.41666666666666663 ]", - "[ 8/1 ⇜ (257/32 → 515/64) ⇝ 33/4 | note:C2 gain:0.6247759065022601 clip:1 s:piano release:0.1 pan:0.41666666666666663 ]", - "[ (225/28 → 515/64) ⇝ 58/7 | note:70 gain:0.06247759065022601 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", - "[ (225/28 → 515/64) ⇝ 58/7 | note:75 gain:0.06247759065022601 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", - "[ (225/28 → 515/64) ⇝ 58/7 | note:76 gain:0.06247759065022601 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", - "[ (225/28 → 515/64) ⇝ 58/7 | note:80 gain:0.06247759065022601 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", - "[ 8/1 ⇜ (515/64 → 129/16) ⇝ 33/4 | note:C2 gain:0.51653668647302 clip:1 s:piano release:0.1 pan:0.41666666666666663 ]", - "[ 225/28 ⇜ (515/64 → 129/16) ⇝ 58/7 | note:70 gain:0.051653668647302 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", - "[ 225/28 ⇜ (515/64 → 129/16) ⇝ 58/7 | note:75 gain:0.051653668647302 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", - "[ 225/28 ⇜ (515/64 → 129/16) ⇝ 58/7 | note:76 gain:0.051653668647302 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", - "[ 225/28 ⇜ (515/64 → 129/16) ⇝ 58/7 | note:80 gain:0.051653668647302 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", - "[ 8/1 ⇜ (129/16 → 517/64) ⇝ 33/4 | note:C2 gain:0.3634633135269898 clip:1 s:piano release:0.1 pan:0.41666666666666663 ]", - "[ 225/28 ⇜ (129/16 → 517/64) ⇝ 58/7 | note:70 gain:0.036346331352698984 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", - "[ 225/28 ⇜ (129/16 → 517/64) ⇝ 58/7 | note:75 gain:0.036346331352698984 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", - "[ 225/28 ⇜ (129/16 → 517/64) ⇝ 58/7 | note:76 gain:0.036346331352698984 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", - "[ 225/28 ⇜ (129/16 → 517/64) ⇝ 58/7 | note:80 gain:0.036346331352698984 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", - "[ 8/1 ⇜ (517/64 → 259/32) ⇝ 33/4 | note:C2 gain:0.2552240934977439 clip:1 s:piano release:0.1 pan:0.41666666666666663 ]", - "[ 225/28 ⇜ (517/64 → 259/32) ⇝ 58/7 | note:70 gain:0.02552240934977439 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", - "[ 225/28 ⇜ (517/64 → 259/32) ⇝ 58/7 | note:75 gain:0.02552240934977439 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", - "[ 225/28 ⇜ (517/64 → 259/32) ⇝ 58/7 | note:76 gain:0.02552240934977439 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", - "[ 225/28 ⇜ (517/64 → 259/32) ⇝ 58/7 | note:80 gain:0.02552240934977439 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", - "[ 8/1 ⇜ (259/32 → 519/64) ⇝ 33/4 | note:C2 gain:0.2552240934977434 clip:1 s:piano release:0.1 pan:0.41666666666666663 ]", - "[ 225/28 ⇜ (259/32 → 519/64) ⇝ 58/7 | note:70 gain:0.02552240934977434 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", - "[ 225/28 ⇜ (259/32 → 519/64) ⇝ 58/7 | note:75 gain:0.02552240934977434 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", - "[ 225/28 ⇜ (259/32 → 519/64) ⇝ 58/7 | note:76 gain:0.02552240934977434 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", - "[ 225/28 ⇜ (259/32 → 519/64) ⇝ 58/7 | note:80 gain:0.02552240934977434 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", - "[ 8/1 ⇜ (519/64 → 65/8) ⇝ 33/4 | note:C2 gain:0.363463313526978 clip:1 s:piano release:0.1 pan:0.41666666666666663 ]", - "[ 225/28 ⇜ (519/64 → 65/8) ⇝ 58/7 | note:70 gain:0.036346331352697804 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", - "[ 225/28 ⇜ (519/64 → 65/8) ⇝ 58/7 | note:75 gain:0.036346331352697804 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", - "[ 225/28 ⇜ (519/64 → 65/8) ⇝ 58/7 | note:76 gain:0.036346331352697804 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", - "[ 225/28 ⇜ (519/64 → 65/8) ⇝ 58/7 | note:80 gain:0.036346331352697804 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", - "[ 8/1 ⇜ (65/8 → 521/64) ⇝ 33/4 | note:C2 gain:0.5165366864730186 clip:1 s:piano release:0.1 pan:0.41666666666666663 ]", - "[ 225/28 ⇜ (65/8 → 521/64) ⇝ 58/7 | note:70 gain:0.051653668647301865 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", - "[ 225/28 ⇜ (65/8 → 521/64) ⇝ 58/7 | note:75 gain:0.051653668647301865 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", - "[ 225/28 ⇜ (65/8 → 521/64) ⇝ 58/7 | note:76 gain:0.051653668647301865 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", - "[ 225/28 ⇜ (65/8 → 521/64) ⇝ 58/7 | note:80 gain:0.051653668647301865 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", - "[ (65/8 → 521/64) ⇝ 33/4 | note:C4 gain:0.5165366864730186 clip:1 s:piano release:0.1 pan:0.5277777777777778 ]", - "[ (65/8 → 521/64) ⇝ 33/4 | note:G4 gain:0.5165366864730186 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", - "[ (65/8 → 521/64) ⇝ 33/4 | note:Bb4 gain:0.5165366864730186 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", - "[ 8/1 ⇜ (521/64 → 261/32) ⇝ 33/4 | note:C2 gain:0.6247759065022553 clip:1 s:piano release:0.1 pan:0.41666666666666663 ]", - "[ 225/28 ⇜ (521/64 → 261/32) ⇝ 58/7 | note:70 gain:0.06247759065022554 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", - "[ 225/28 ⇜ (521/64 → 261/32) ⇝ 58/7 | note:75 gain:0.06247759065022554 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", - "[ 225/28 ⇜ (521/64 → 261/32) ⇝ 58/7 | note:76 gain:0.06247759065022554 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", - "[ 225/28 ⇜ (521/64 → 261/32) ⇝ 58/7 | note:80 gain:0.06247759065022554 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", - "[ 65/8 ⇜ (521/64 → 261/32) ⇝ 33/4 | note:C4 gain:0.6247759065022553 clip:1 s:piano release:0.1 pan:0.5277777777777778 ]", - "[ 65/8 ⇜ (521/64 → 261/32) ⇝ 33/4 | note:G4 gain:0.6247759065022553 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", - "[ 65/8 ⇜ (521/64 → 261/32) ⇝ 33/4 | note:Bb4 gain:0.6247759065022553 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", - "[ 8/1 ⇜ (261/32 → 523/64) ⇝ 33/4 | note:C2 gain:0.6247759065022574 clip:1 s:piano release:0.1 pan:0.41666666666666663 ]", - "[ 225/28 ⇜ (261/32 → 523/64) ⇝ 58/7 | note:70 gain:0.06247759065022575 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", - "[ 225/28 ⇜ (261/32 → 523/64) ⇝ 58/7 | note:75 gain:0.06247759065022575 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", - "[ 225/28 ⇜ (261/32 → 523/64) ⇝ 58/7 | note:76 gain:0.06247759065022575 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", - "[ 225/28 ⇜ (261/32 → 523/64) ⇝ 58/7 | note:80 gain:0.06247759065022575 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", - "[ 65/8 ⇜ (261/32 → 523/64) ⇝ 33/4 | note:C4 gain:0.6247759065022574 clip:1 s:piano release:0.1 pan:0.5277777777777778 ]", - "[ 65/8 ⇜ (261/32 → 523/64) ⇝ 33/4 | note:G4 gain:0.6247759065022574 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", - "[ 65/8 ⇜ (261/32 → 523/64) ⇝ 33/4 | note:Bb4 gain:0.6247759065022574 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", - "[ 8/1 ⇜ (523/64 → 131/16) ⇝ 33/4 | note:C2 gain:0.516536686473024 clip:1 s:piano release:0.1 pan:0.41666666666666663 ]", - "[ 225/28 ⇜ (523/64 → 131/16) ⇝ 58/7 | note:70 gain:0.0516536686473024 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", - "[ 225/28 ⇜ (523/64 → 131/16) ⇝ 58/7 | note:75 gain:0.0516536686473024 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", - "[ 225/28 ⇜ (523/64 → 131/16) ⇝ 58/7 | note:76 gain:0.0516536686473024 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", - "[ 225/28 ⇜ (523/64 → 131/16) ⇝ 58/7 | note:80 gain:0.0516536686473024 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", - "[ 65/8 ⇜ (523/64 → 131/16) ⇝ 33/4 | note:C4 gain:0.516536686473024 clip:1 s:piano release:0.1 pan:0.5277777777777778 ]", - "[ 65/8 ⇜ (523/64 → 131/16) ⇝ 33/4 | note:G4 gain:0.516536686473024 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", - "[ 65/8 ⇜ (523/64 → 131/16) ⇝ 33/4 | note:Bb4 gain:0.516536686473024 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", - "[ 8/1 ⇜ (131/16 → 525/64) ⇝ 33/4 | note:C2 gain:0.3634633135269833 clip:1 s:piano release:0.1 pan:0.41666666666666663 ]", - "[ 225/28 ⇜ (131/16 → 525/64) ⇝ 58/7 | note:70 gain:0.03634633135269833 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", - "[ 225/28 ⇜ (131/16 → 525/64) ⇝ 58/7 | note:75 gain:0.03634633135269833 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", - "[ 225/28 ⇜ (131/16 → 525/64) ⇝ 58/7 | note:76 gain:0.03634633135269833 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", - "[ 225/28 ⇜ (131/16 → 525/64) ⇝ 58/7 | note:80 gain:0.03634633135269833 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", - "[ 65/8 ⇜ (131/16 → 525/64) ⇝ 33/4 | note:C4 gain:0.3634633135269833 clip:1 s:piano release:0.1 pan:0.5277777777777778 ]", - "[ 65/8 ⇜ (131/16 → 525/64) ⇝ 33/4 | note:G4 gain:0.3634633135269833 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", - "[ 65/8 ⇜ (131/16 → 525/64) ⇝ 33/4 | note:Bb4 gain:0.3634633135269833 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", - "[ 8/1 ⇜ (525/64 → 263/32) ⇝ 33/4 | note:C2 gain:0.25522409349774555 clip:1 s:piano release:0.1 pan:0.41666666666666663 ]", - "[ 225/28 ⇜ (525/64 → 263/32) ⇝ 58/7 | note:70 gain:0.025522409349774556 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", - "[ 225/28 ⇜ (525/64 → 263/32) ⇝ 58/7 | note:75 gain:0.025522409349774556 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", - "[ 225/28 ⇜ (525/64 → 263/32) ⇝ 58/7 | note:76 gain:0.025522409349774556 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", - "[ 225/28 ⇜ (525/64 → 263/32) ⇝ 58/7 | note:80 gain:0.025522409349774556 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", - "[ 65/8 ⇜ (525/64 → 263/32) ⇝ 33/4 | note:C4 gain:0.25522409349774555 clip:1 s:piano release:0.1 pan:0.5277777777777778 ]", - "[ 65/8 ⇜ (525/64 → 263/32) ⇝ 33/4 | note:G4 gain:0.25522409349774555 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", - "[ 65/8 ⇜ (525/64 → 263/32) ⇝ 33/4 | note:Bb4 gain:0.25522409349774555 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", - "[ 8/1 ⇜ (263/32 → 527/64) ⇝ 33/4 | note:C2 gain:0.2552240934977417 clip:1 s:piano release:0.1 pan:0.41666666666666663 ]", - "[ 225/28 ⇜ (263/32 → 527/64) ⇝ 58/7 | note:70 gain:0.025522409349774174 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", - "[ 225/28 ⇜ (263/32 → 527/64) ⇝ 58/7 | note:75 gain:0.025522409349774174 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", - "[ 225/28 ⇜ (263/32 → 527/64) ⇝ 58/7 | note:76 gain:0.025522409349774174 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", - "[ 225/28 ⇜ (263/32 → 527/64) ⇝ 58/7 | note:80 gain:0.025522409349774174 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", - "[ 65/8 ⇜ (263/32 → 527/64) ⇝ 33/4 | note:C4 gain:0.2552240934977417 clip:1 s:piano release:0.1 pan:0.5277777777777778 ]", - "[ 65/8 ⇜ (263/32 → 527/64) ⇝ 33/4 | note:G4 gain:0.2552240934977417 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", - "[ 65/8 ⇜ (263/32 → 527/64) ⇝ 33/4 | note:Bb4 gain:0.2552240934977417 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", - "[ 8/1 ⇜ (527/64 → 33/4) | note:C2 gain:0.36346331352697403 clip:1 s:piano release:0.1 pan:0.41666666666666663 ]", - "[ 225/28 ⇜ (527/64 → 33/4) ⇝ 58/7 | note:70 gain:0.0363463313526974 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", - "[ 225/28 ⇜ (527/64 → 33/4) ⇝ 58/7 | note:75 gain:0.0363463313526974 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", - "[ 225/28 ⇜ (527/64 → 33/4) ⇝ 58/7 | note:76 gain:0.0363463313526974 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", - "[ 225/28 ⇜ (527/64 → 33/4) ⇝ 58/7 | note:80 gain:0.0363463313526974 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", - "[ 65/8 ⇜ (527/64 → 33/4) | note:C4 gain:0.36346331352697403 clip:1 s:piano release:0.1 pan:0.5277777777777778 ]", - "[ 65/8 ⇜ (527/64 → 33/4) | note:G4 gain:0.36346331352697403 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", - "[ 65/8 ⇜ (527/64 → 33/4) | note:Bb4 gain:0.36346331352697403 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", - "[ 225/28 ⇜ (33/4 → 529/64) ⇝ 58/7 | note:70 gain:0.051653668647301476 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", - "[ 225/28 ⇜ (33/4 → 529/64) ⇝ 58/7 | note:75 gain:0.051653668647301476 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", - "[ 225/28 ⇜ (33/4 → 529/64) ⇝ 58/7 | note:76 gain:0.051653668647301476 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", - "[ 225/28 ⇜ (33/4 → 529/64) ⇝ 58/7 | note:80 gain:0.051653668647301476 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", - "[ 225/28 ⇜ (529/64 → 265/32) ⇝ 58/7 | note:70 gain:0.0624775906502258 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", - "[ 225/28 ⇜ (529/64 → 265/32) ⇝ 58/7 | note:75 gain:0.0624775906502258 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", - "[ 225/28 ⇜ (529/64 → 265/32) ⇝ 58/7 | note:76 gain:0.0624775906502258 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", - "[ 225/28 ⇜ (529/64 → 265/32) ⇝ 58/7 | note:80 gain:0.0624775906502258 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", - "[ 225/28 ⇜ (265/32 → 58/7) | note:70 gain:0.062477590650225914 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", - "[ 225/28 ⇜ (265/32 → 58/7) | note:75 gain:0.062477590650225914 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", - "[ 225/28 ⇜ (265/32 → 58/7) | note:76 gain:0.062477590650225914 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", - "[ 225/28 ⇜ (265/32 → 58/7) | note:80 gain:0.062477590650225914 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", - "[ (17/2 → 545/64) ⇝ 69/8 | note:G4 gain:0.5165366864730173 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", - "[ (17/2 → 545/64) ⇝ 69/8 | note:D5 gain:0.5165366864730173 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", - "[ (17/2 → 545/64) ⇝ 69/8 | note:F5 gain:0.5165366864730173 clip:1 s:piano release:0.1 pan:0.6064814814814814 ]", - "[ (17/2 → 545/64) ⇝ 35/4 | note:Bb3 gain:0.25826834323650866 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", - "[ (17/2 → 545/64) ⇝ 35/4 | note:D4 gain:0.25826834323650866 clip:1 s:piano release:0.1 pan:0.537037037037037 ]", - "[ (17/2 → 545/64) ⇝ 35/4 | note:Eb4 gain:0.25826834323650866 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", - "[ (17/2 → 545/64) ⇝ 35/4 | note:G4 gain:0.25826834323650866 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", - "[ (17/2 → 545/64) ⇝ 35/4 | note:C2 gain:0.5165366864730173 clip:1 s:piano release:0.1 pan:0.41666666666666663 ]", - "[ 17/2 ⇜ (545/64 → 273/32) ⇝ 69/8 | note:G4 gain:0.6247759065022547 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", - "[ 17/2 ⇜ (545/64 → 273/32) ⇝ 69/8 | note:D5 gain:0.6247759065022547 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", - "[ 17/2 ⇜ (545/64 → 273/32) ⇝ 69/8 | note:F5 gain:0.6247759065022547 clip:1 s:piano release:0.1 pan:0.6064814814814814 ]", - "[ 17/2 ⇜ (545/64 → 273/32) ⇝ 35/4 | note:Bb3 gain:0.31238795325112734 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", - "[ 17/2 ⇜ (545/64 → 273/32) ⇝ 35/4 | note:D4 gain:0.31238795325112734 clip:1 s:piano release:0.1 pan:0.537037037037037 ]", - "[ 17/2 ⇜ (545/64 → 273/32) ⇝ 35/4 | note:Eb4 gain:0.31238795325112734 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", - "[ 17/2 ⇜ (545/64 → 273/32) ⇝ 35/4 | note:G4 gain:0.31238795325112734 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", - "[ 17/2 ⇜ (545/64 → 273/32) ⇝ 35/4 | note:C2 gain:0.6247759065022547 clip:1 s:piano release:0.1 pan:0.41666666666666663 ]", - "[ 17/2 ⇜ (273/32 → 547/64) ⇝ 69/8 | note:G4 gain:0.6247759065022581 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", - "[ 17/2 ⇜ (273/32 → 547/64) ⇝ 69/8 | note:D5 gain:0.6247759065022581 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", - "[ 17/2 ⇜ (273/32 → 547/64) ⇝ 69/8 | note:F5 gain:0.6247759065022581 clip:1 s:piano release:0.1 pan:0.6064814814814814 ]", - "[ 17/2 ⇜ (273/32 → 547/64) ⇝ 35/4 | note:Bb3 gain:0.31238795325112906 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", - "[ 17/2 ⇜ (273/32 → 547/64) ⇝ 35/4 | note:D4 gain:0.31238795325112906 clip:1 s:piano release:0.1 pan:0.537037037037037 ]", - "[ 17/2 ⇜ (273/32 → 547/64) ⇝ 35/4 | note:Eb4 gain:0.31238795325112906 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", - "[ 17/2 ⇜ (273/32 → 547/64) ⇝ 35/4 | note:G4 gain:0.31238795325112906 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", - "[ 17/2 ⇜ (273/32 → 547/64) ⇝ 35/4 | note:C2 gain:0.6247759065022581 clip:1 s:piano release:0.1 pan:0.41666666666666663 ]", - "[ 17/2 ⇜ (547/64 → 137/16) ⇝ 69/8 | note:G4 gain:0.5165366864730254 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", - "[ 17/2 ⇜ (547/64 → 137/16) ⇝ 69/8 | note:D5 gain:0.5165366864730254 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", - "[ 17/2 ⇜ (547/64 → 137/16) ⇝ 69/8 | note:F5 gain:0.5165366864730254 clip:1 s:piano release:0.1 pan:0.6064814814814814 ]", - "[ 17/2 ⇜ (547/64 → 137/16) ⇝ 35/4 | note:Bb3 gain:0.2582683432365127 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", - "[ 17/2 ⇜ (547/64 → 137/16) ⇝ 35/4 | note:D4 gain:0.2582683432365127 clip:1 s:piano release:0.1 pan:0.537037037037037 ]", - "[ 17/2 ⇜ (547/64 → 137/16) ⇝ 35/4 | note:Eb4 gain:0.2582683432365127 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", - "[ 17/2 ⇜ (547/64 → 137/16) ⇝ 35/4 | note:G4 gain:0.2582683432365127 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", - "[ 17/2 ⇜ (547/64 → 137/16) ⇝ 35/4 | note:C2 gain:0.5165366864730254 clip:1 s:piano release:0.1 pan:0.41666666666666663 ]", - "[ 17/2 ⇜ (137/16 → 549/64) ⇝ 69/8 | note:G4 gain:0.36346331352698474 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", - "[ 17/2 ⇜ (137/16 → 549/64) ⇝ 69/8 | note:D5 gain:0.36346331352698474 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", - "[ 17/2 ⇜ (137/16 → 549/64) ⇝ 69/8 | note:F5 gain:0.36346331352698474 clip:1 s:piano release:0.1 pan:0.6064814814814814 ]", - "[ 17/2 ⇜ (137/16 → 549/64) ⇝ 35/4 | note:Bb3 gain:0.18173165676349237 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", - "[ 17/2 ⇜ (137/16 → 549/64) ⇝ 35/4 | note:D4 gain:0.18173165676349237 clip:1 s:piano release:0.1 pan:0.537037037037037 ]", - "[ 17/2 ⇜ (137/16 → 549/64) ⇝ 35/4 | note:Eb4 gain:0.18173165676349237 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", - "[ 17/2 ⇜ (137/16 → 549/64) ⇝ 35/4 | note:G4 gain:0.18173165676349237 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", - "[ 17/2 ⇜ (137/16 → 549/64) ⇝ 35/4 | note:C2 gain:0.36346331352698474 clip:1 s:piano release:0.1 pan:0.41666666666666663 ]", - "[ 17/2 ⇜ (549/64 → 275/32) ⇝ 69/8 | note:G4 gain:0.2552240934977418 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", - "[ 17/2 ⇜ (549/64 → 275/32) ⇝ 69/8 | note:D5 gain:0.2552240934977418 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", - "[ 17/2 ⇜ (549/64 → 275/32) ⇝ 69/8 | note:F5 gain:0.2552240934977418 clip:1 s:piano release:0.1 pan:0.6064814814814814 ]", - "[ 17/2 ⇜ (549/64 → 275/32) ⇝ 35/4 | note:Bb3 gain:0.1276120467488709 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", - "[ 17/2 ⇜ (549/64 → 275/32) ⇝ 35/4 | note:D4 gain:0.1276120467488709 clip:1 s:piano release:0.1 pan:0.537037037037037 ]", - "[ 17/2 ⇜ (549/64 → 275/32) ⇝ 35/4 | note:Eb4 gain:0.1276120467488709 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", - "[ 17/2 ⇜ (549/64 → 275/32) ⇝ 35/4 | note:G4 gain:0.1276120467488709 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", - "[ 17/2 ⇜ (549/64 → 275/32) ⇝ 35/4 | note:C2 gain:0.2552240934977418 clip:1 s:piano release:0.1 pan:0.41666666666666663 ]", - "[ 17/2 ⇜ (275/32 → 551/64) ⇝ 69/8 | note:G4 gain:0.25522409349774117 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", - "[ 17/2 ⇜ (275/32 → 551/64) ⇝ 69/8 | note:D5 gain:0.25522409349774117 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", - "[ 17/2 ⇜ (275/32 → 551/64) ⇝ 69/8 | note:F5 gain:0.25522409349774117 clip:1 s:piano release:0.1 pan:0.6064814814814814 ]", - "[ 17/2 ⇜ (275/32 → 551/64) ⇝ 35/4 | note:Bb3 gain:0.12761204674887058 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", - "[ 17/2 ⇜ (275/32 → 551/64) ⇝ 35/4 | note:D4 gain:0.12761204674887058 clip:1 s:piano release:0.1 pan:0.537037037037037 ]", - "[ 17/2 ⇜ (275/32 → 551/64) ⇝ 35/4 | note:Eb4 gain:0.12761204674887058 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", - "[ 17/2 ⇜ (275/32 → 551/64) ⇝ 35/4 | note:G4 gain:0.12761204674887058 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", - "[ 17/2 ⇜ (275/32 → 551/64) ⇝ 35/4 | note:C2 gain:0.25522409349774117 clip:1 s:piano release:0.1 pan:0.41666666666666663 ]", - "[ 17/2 ⇜ (551/64 → 69/8) | note:G4 gain:0.36346331352698313 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", - "[ 17/2 ⇜ (551/64 → 69/8) | note:D5 gain:0.36346331352698313 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", - "[ 17/2 ⇜ (551/64 → 69/8) | note:F5 gain:0.36346331352698313 clip:1 s:piano release:0.1 pan:0.6064814814814814 ]", - "[ 17/2 ⇜ (551/64 → 69/8) ⇝ 35/4 | note:Bb3 gain:0.18173165676349157 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", - "[ 17/2 ⇜ (551/64 → 69/8) ⇝ 35/4 | note:D4 gain:0.18173165676349157 clip:1 s:piano release:0.1 pan:0.537037037037037 ]", - "[ 17/2 ⇜ (551/64 → 69/8) ⇝ 35/4 | note:Eb4 gain:0.18173165676349157 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", - "[ 17/2 ⇜ (551/64 → 69/8) ⇝ 35/4 | note:G4 gain:0.18173165676349157 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", - "[ 17/2 ⇜ (551/64 → 69/8) ⇝ 35/4 | note:C2 gain:0.36346331352698313 clip:1 s:piano release:0.1 pan:0.41666666666666663 ]", - "[ 17/2 ⇜ (69/8 → 553/64) ⇝ 35/4 | note:Bb3 gain:0.25826834323650666 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", - "[ 17/2 ⇜ (69/8 → 553/64) ⇝ 35/4 | note:D4 gain:0.25826834323650666 clip:1 s:piano release:0.1 pan:0.537037037037037 ]", - "[ 17/2 ⇜ (69/8 → 553/64) ⇝ 35/4 | note:Eb4 gain:0.25826834323650666 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", - "[ 17/2 ⇜ (69/8 → 553/64) ⇝ 35/4 | note:G4 gain:0.25826834323650666 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", - "[ 17/2 ⇜ (69/8 → 553/64) ⇝ 35/4 | note:C2 gain:0.5165366864730133 clip:1 s:piano release:0.1 pan:0.41666666666666663 ]", - "[ 17/2 ⇜ (553/64 → 277/32) ⇝ 35/4 | note:Bb3 gain:0.3123879532511287 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", - "[ 17/2 ⇜ (553/64 → 277/32) ⇝ 35/4 | note:D4 gain:0.3123879532511287 clip:1 s:piano release:0.1 pan:0.537037037037037 ]", - "[ 17/2 ⇜ (553/64 → 277/32) ⇝ 35/4 | note:Eb4 gain:0.3123879532511287 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", - "[ 17/2 ⇜ (553/64 → 277/32) ⇝ 35/4 | note:G4 gain:0.3123879532511287 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", - "[ 17/2 ⇜ (553/64 → 277/32) ⇝ 35/4 | note:C2 gain:0.6247759065022574 clip:1 s:piano release:0.1 pan:0.41666666666666663 ]", - "[ 17/2 ⇜ (277/32 → 555/64) ⇝ 35/4 | note:Bb3 gain:0.3123879532511299 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", - "[ 17/2 ⇜ (277/32 → 555/64) ⇝ 35/4 | note:D4 gain:0.3123879532511299 clip:1 s:piano release:0.1 pan:0.537037037037037 ]", - "[ 17/2 ⇜ (277/32 → 555/64) ⇝ 35/4 | note:Eb4 gain:0.3123879532511299 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", - "[ 17/2 ⇜ (277/32 → 555/64) ⇝ 35/4 | note:G4 gain:0.3123879532511299 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", - "[ 17/2 ⇜ (277/32 → 555/64) ⇝ 35/4 | note:C2 gain:0.6247759065022598 clip:1 s:piano release:0.1 pan:0.41666666666666663 ]", - "[ 17/2 ⇜ (555/64 → 139/16) ⇝ 35/4 | note:Bb3 gain:0.25826834323650943 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", - "[ 17/2 ⇜ (555/64 → 139/16) ⇝ 35/4 | note:D4 gain:0.25826834323650943 clip:1 s:piano release:0.1 pan:0.537037037037037 ]", - "[ 17/2 ⇜ (555/64 → 139/16) ⇝ 35/4 | note:Eb4 gain:0.25826834323650943 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", - "[ 17/2 ⇜ (555/64 → 139/16) ⇝ 35/4 | note:G4 gain:0.25826834323650943 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", - "[ 17/2 ⇜ (555/64 → 139/16) ⇝ 35/4 | note:C2 gain:0.5165366864730189 clip:1 s:piano release:0.1 pan:0.41666666666666663 ]", - "[ 17/2 ⇜ (139/16 → 557/64) ⇝ 35/4 | note:Bb3 gain:0.18173165676349437 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", - "[ 17/2 ⇜ (139/16 → 557/64) ⇝ 35/4 | note:D4 gain:0.18173165676349437 clip:1 s:piano release:0.1 pan:0.537037037037037 ]", - "[ 17/2 ⇜ (139/16 → 557/64) ⇝ 35/4 | note:Eb4 gain:0.18173165676349437 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", - "[ 17/2 ⇜ (139/16 → 557/64) ⇝ 35/4 | note:G4 gain:0.18173165676349437 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", - "[ 17/2 ⇜ (139/16 → 557/64) ⇝ 35/4 | note:C2 gain:0.36346331352698874 clip:1 s:piano release:0.1 pan:0.41666666666666663 ]", - "[ 17/2 ⇜ (557/64 → 279/32) ⇝ 35/4 | note:Bb3 gain:0.12761204674887172 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", - "[ 17/2 ⇜ (557/64 → 279/32) ⇝ 35/4 | note:D4 gain:0.12761204674887172 clip:1 s:piano release:0.1 pan:0.537037037037037 ]", - "[ 17/2 ⇜ (557/64 → 279/32) ⇝ 35/4 | note:Eb4 gain:0.12761204674887172 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", - "[ 17/2 ⇜ (557/64 → 279/32) ⇝ 35/4 | note:G4 gain:0.12761204674887172 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", - "[ 17/2 ⇜ (557/64 → 279/32) ⇝ 35/4 | note:C2 gain:0.25522409349774344 clip:1 s:piano release:0.1 pan:0.41666666666666663 ]", - "[ 17/2 ⇜ (279/32 → 559/64) ⇝ 35/4 | note:Bb3 gain:0.12761204674886972 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", - "[ 17/2 ⇜ (279/32 → 559/64) ⇝ 35/4 | note:D4 gain:0.12761204674886972 clip:1 s:piano release:0.1 pan:0.537037037037037 ]", - "[ 17/2 ⇜ (279/32 → 559/64) ⇝ 35/4 | note:Eb4 gain:0.12761204674886972 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", - "[ 17/2 ⇜ (279/32 → 559/64) ⇝ 35/4 | note:G4 gain:0.12761204674886972 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", - "[ 17/2 ⇜ (279/32 → 559/64) ⇝ 35/4 | note:C2 gain:0.25522409349773945 clip:1 s:piano release:0.1 pan:0.41666666666666663 ]", - "[ 17/2 ⇜ (559/64 → 35/4) | note:Bb3 gain:0.18173165676348957 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", - "[ 17/2 ⇜ (559/64 → 35/4) | note:D4 gain:0.18173165676348957 clip:1 s:piano release:0.1 pan:0.537037037037037 ]", - "[ 17/2 ⇜ (559/64 → 35/4) | note:Eb4 gain:0.18173165676348957 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", - "[ 17/2 ⇜ (559/64 → 35/4) | note:G4 gain:0.18173165676348957 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", - "[ 17/2 ⇜ (559/64 → 35/4) | note:C2 gain:0.36346331352697914 clip:1 s:piano release:0.1 pan:0.41666666666666663 ]", - "[ (35/4 → 561/64) ⇝ 71/8 | note:C4 gain:0.5165366864730198 clip:1 s:piano release:0.1 pan:0.5277777777777778 ]", - "[ (35/4 → 561/64) ⇝ 71/8 | note:G4 gain:0.5165366864730198 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", - "[ (35/4 → 561/64) ⇝ 71/8 | note:Bb4 gain:0.5165366864730198 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", - "[ 35/4 ⇜ (561/64 → 281/32) ⇝ 71/8 | note:C4 gain:0.6247759065022557 clip:1 s:piano release:0.1 pan:0.5277777777777778 ]", - "[ 35/4 ⇜ (561/64 → 281/32) ⇝ 71/8 | note:G4 gain:0.6247759065022557 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", - "[ 35/4 ⇜ (561/64 → 281/32) ⇝ 71/8 | note:Bb4 gain:0.6247759065022557 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", - "[ 35/4 ⇜ (281/32 → 563/64) ⇝ 71/8 | note:C4 gain:0.624775906502257 clip:1 s:piano release:0.1 pan:0.5277777777777778 ]", - "[ 35/4 ⇜ (281/32 → 563/64) ⇝ 71/8 | note:G4 gain:0.624775906502257 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", - "[ 35/4 ⇜ (281/32 → 563/64) ⇝ 71/8 | note:Bb4 gain:0.624775906502257 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", - "[ (123/14 → 563/64) ⇝ 253/28 | note:70 gain:0.062477590650225706 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", - "[ (123/14 → 563/64) ⇝ 253/28 | note:74 gain:0.062477590650225706 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", - "[ (123/14 → 563/64) ⇝ 253/28 | note:75 gain:0.062477590650225706 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", - "[ (123/14 → 563/64) ⇝ 253/28 | note:79 gain:0.062477590650225706 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", - "[ 35/4 ⇜ (563/64 → 141/16) ⇝ 71/8 | note:C4 gain:0.5165366864730229 clip:1 s:piano release:0.1 pan:0.5277777777777778 ]", - "[ 35/4 ⇜ (563/64 → 141/16) ⇝ 71/8 | note:G4 gain:0.5165366864730229 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", - "[ 35/4 ⇜ (563/64 → 141/16) ⇝ 71/8 | note:Bb4 gain:0.5165366864730229 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", - "[ 123/14 ⇜ (563/64 → 141/16) ⇝ 253/28 | note:70 gain:0.05165366864730229 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", - "[ 123/14 ⇜ (563/64 → 141/16) ⇝ 253/28 | note:74 gain:0.05165366864730229 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", - "[ 123/14 ⇜ (563/64 → 141/16) ⇝ 253/28 | note:75 gain:0.05165366864730229 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", - "[ 123/14 ⇜ (563/64 → 141/16) ⇝ 253/28 | note:79 gain:0.05165366864730229 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", - "[ 35/4 ⇜ (141/16 → 565/64) ⇝ 71/8 | note:C4 gain:0.36346331352698225 clip:1 s:piano release:0.1 pan:0.5277777777777778 ]", - "[ 35/4 ⇜ (141/16 → 565/64) ⇝ 71/8 | note:G4 gain:0.36346331352698225 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", - "[ 35/4 ⇜ (141/16 → 565/64) ⇝ 71/8 | note:Bb4 gain:0.36346331352698225 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", - "[ 123/14 ⇜ (141/16 → 565/64) ⇝ 253/28 | note:70 gain:0.03634633135269823 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", - "[ 123/14 ⇜ (141/16 → 565/64) ⇝ 253/28 | note:74 gain:0.03634633135269823 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", - "[ 123/14 ⇜ (141/16 → 565/64) ⇝ 253/28 | note:75 gain:0.03634633135269823 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", - "[ 123/14 ⇜ (141/16 → 565/64) ⇝ 253/28 | note:79 gain:0.03634633135269823 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", - "[ 35/4 ⇜ (565/64 → 283/32) ⇝ 71/8 | note:C4 gain:0.2552240934977451 clip:1 s:piano release:0.1 pan:0.5277777777777778 ]", - "[ 35/4 ⇜ (565/64 → 283/32) ⇝ 71/8 | note:G4 gain:0.2552240934977451 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", - "[ 35/4 ⇜ (565/64 → 283/32) ⇝ 71/8 | note:Bb4 gain:0.2552240934977451 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", - "[ 123/14 ⇜ (565/64 → 283/32) ⇝ 253/28 | note:70 gain:0.02552240934977451 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", - "[ 123/14 ⇜ (565/64 → 283/32) ⇝ 253/28 | note:74 gain:0.02552240934977451 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", - "[ 123/14 ⇜ (565/64 → 283/32) ⇝ 253/28 | note:75 gain:0.02552240934977451 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", - "[ 123/14 ⇜ (565/64 → 283/32) ⇝ 253/28 | note:79 gain:0.02552240934977451 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", - "[ 35/4 ⇜ (283/32 → 567/64) ⇝ 71/8 | note:C4 gain:0.25522409349774217 clip:1 s:piano release:0.1 pan:0.5277777777777778 ]", - "[ 35/4 ⇜ (283/32 → 567/64) ⇝ 71/8 | note:G4 gain:0.25522409349774217 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", - "[ 35/4 ⇜ (283/32 → 567/64) ⇝ 71/8 | note:Bb4 gain:0.25522409349774217 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", - "[ 123/14 ⇜ (283/32 → 567/64) ⇝ 253/28 | note:70 gain:0.02552240934977422 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", - "[ 123/14 ⇜ (283/32 → 567/64) ⇝ 253/28 | note:74 gain:0.02552240934977422 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", - "[ 123/14 ⇜ (283/32 → 567/64) ⇝ 253/28 | note:75 gain:0.02552240934977422 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", - "[ 123/14 ⇜ (283/32 → 567/64) ⇝ 253/28 | note:79 gain:0.02552240934977422 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", - "[ 35/4 ⇜ (567/64 → 71/8) | note:C4 gain:0.36346331352697514 clip:1 s:piano release:0.1 pan:0.5277777777777778 ]", - "[ 35/4 ⇜ (567/64 → 71/8) | note:G4 gain:0.36346331352697514 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", - "[ 35/4 ⇜ (567/64 → 71/8) | note:Bb4 gain:0.36346331352697514 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", - "[ 123/14 ⇜ (567/64 → 71/8) ⇝ 253/28 | note:70 gain:0.03634633135269751 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", - "[ 123/14 ⇜ (567/64 → 71/8) ⇝ 253/28 | note:74 gain:0.03634633135269751 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", - "[ 123/14 ⇜ (567/64 → 71/8) ⇝ 253/28 | note:75 gain:0.03634633135269751 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", - "[ 123/14 ⇜ (567/64 → 71/8) ⇝ 253/28 | note:79 gain:0.03634633135269751 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", - "[ 123/14 ⇜ (71/8 → 569/64) ⇝ 253/28 | note:70 gain:0.05165366864730159 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", - "[ 123/14 ⇜ (71/8 → 569/64) ⇝ 253/28 | note:74 gain:0.05165366864730159 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", - "[ 123/14 ⇜ (71/8 → 569/64) ⇝ 253/28 | note:75 gain:0.05165366864730159 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", - "[ 123/14 ⇜ (71/8 → 569/64) ⇝ 253/28 | note:79 gain:0.05165366864730159 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", - "[ 123/14 ⇜ (569/64 → 285/32) ⇝ 253/28 | note:70 gain:0.062477590650225415 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", - "[ 123/14 ⇜ (569/64 → 285/32) ⇝ 253/28 | note:74 gain:0.062477590650225415 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", - "[ 123/14 ⇜ (569/64 → 285/32) ⇝ 253/28 | note:75 gain:0.062477590650225415 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", - "[ 123/14 ⇜ (569/64 → 285/32) ⇝ 253/28 | note:79 gain:0.062477590650225415 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", - "[ 123/14 ⇜ (285/32 → 571/64) ⇝ 253/28 | note:70 gain:0.06247759065022587 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", - "[ 123/14 ⇜ (285/32 → 571/64) ⇝ 253/28 | note:74 gain:0.06247759065022587 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", - "[ 123/14 ⇜ (285/32 → 571/64) ⇝ 253/28 | note:75 gain:0.06247759065022587 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", - "[ 123/14 ⇜ (285/32 → 571/64) ⇝ 253/28 | note:79 gain:0.06247759065022587 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", - "[ 123/14 ⇜ (571/64 → 143/16) ⇝ 253/28 | note:70 gain:0.05165366864730164 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", - "[ 123/14 ⇜ (571/64 → 143/16) ⇝ 253/28 | note:74 gain:0.05165366864730164 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", - "[ 123/14 ⇜ (571/64 → 143/16) ⇝ 253/28 | note:75 gain:0.05165366864730164 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", - "[ 123/14 ⇜ (571/64 → 143/16) ⇝ 253/28 | note:79 gain:0.05165366864730164 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", - "[ 123/14 ⇜ (143/16 → 573/64) ⇝ 253/28 | note:70 gain:0.03634633135269862 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", - "[ 123/14 ⇜ (143/16 → 573/64) ⇝ 253/28 | note:74 gain:0.03634633135269862 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", - "[ 123/14 ⇜ (143/16 → 573/64) ⇝ 253/28 | note:75 gain:0.03634633135269862 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", - "[ 123/14 ⇜ (143/16 → 573/64) ⇝ 253/28 | note:79 gain:0.03634633135269862 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", - "[ 123/14 ⇜ (573/64 → 287/32) ⇝ 253/28 | note:70 gain:0.02552240934977424 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", - "[ 123/14 ⇜ (573/64 → 287/32) ⇝ 253/28 | note:74 gain:0.02552240934977424 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", - "[ 123/14 ⇜ (573/64 → 287/32) ⇝ 253/28 | note:75 gain:0.02552240934977424 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", - "[ 123/14 ⇜ (573/64 → 287/32) ⇝ 253/28 | note:79 gain:0.02552240934977424 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", - "[ 123/14 ⇜ (287/32 → 575/64) ⇝ 253/28 | note:70 gain:0.025522409349774053 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", - "[ 123/14 ⇜ (287/32 → 575/64) ⇝ 253/28 | note:74 gain:0.025522409349774053 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", - "[ 123/14 ⇜ (287/32 → 575/64) ⇝ 253/28 | note:75 gain:0.025522409349774053 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", - "[ 123/14 ⇜ (287/32 → 575/64) ⇝ 253/28 | note:79 gain:0.025522409349774053 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", - "[ 123/14 ⇜ (575/64 → 9/1) ⇝ 253/28 | note:70 gain:0.03634633135269817 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", - "[ 123/14 ⇜ (575/64 → 9/1) ⇝ 253/28 | note:74 gain:0.03634633135269817 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", - "[ 123/14 ⇜ (575/64 → 9/1) ⇝ 253/28 | note:75 gain:0.03634633135269817 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", - "[ 123/14 ⇜ (575/64 → 9/1) ⇝ 253/28 | note:79 gain:0.03634633135269817 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", - "[ 123/14 ⇜ (9/1 → 577/64) ⇝ 253/28 | note:70 gain:0.05165366864730118 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", - "[ 123/14 ⇜ (9/1 → 577/64) ⇝ 253/28 | note:74 gain:0.05165366864730118 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", - "[ 123/14 ⇜ (9/1 → 577/64) ⇝ 253/28 | note:75 gain:0.05165366864730118 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", - "[ 123/14 ⇜ (9/1 → 577/64) ⇝ 253/28 | note:79 gain:0.05165366864730118 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", - "[ (9/1 → 577/64) ⇝ 37/4 | note:C2 gain:0.5165366864730118 clip:1 s:piano release:0.1 pan:0.41666666666666663 ]", - "[ 123/14 ⇜ (577/64 → 289/32) ⇝ 253/28 | note:70 gain:0.06247759065022568 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", - "[ 123/14 ⇜ (577/64 → 289/32) ⇝ 253/28 | note:74 gain:0.06247759065022568 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", - "[ 123/14 ⇜ (577/64 → 289/32) ⇝ 253/28 | note:75 gain:0.06247759065022568 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", - "[ 123/14 ⇜ (577/64 → 289/32) ⇝ 253/28 | note:79 gain:0.06247759065022568 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", - "[ 9/1 ⇜ (577/64 → 289/32) ⇝ 37/4 | note:C2 gain:0.6247759065022568 clip:1 s:piano release:0.1 pan:0.41666666666666663 ]", - "[ 123/14 ⇜ (289/32 → 253/28) | note:70 gain:0.06247759065022604 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", - "[ 123/14 ⇜ (289/32 → 253/28) | note:74 gain:0.06247759065022604 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", - "[ 123/14 ⇜ (289/32 → 253/28) | note:75 gain:0.06247759065022604 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", - "[ 123/14 ⇜ (289/32 → 253/28) | note:79 gain:0.06247759065022604 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", - "[ 9/1 ⇜ (289/32 → 579/64) ⇝ 37/4 | note:C2 gain:0.6247759065022603 clip:1 s:piano release:0.1 pan:0.41666666666666663 ]", - "[ 9/1 ⇜ (579/64 → 145/16) ⇝ 37/4 | note:C2 gain:0.5165366864730203 clip:1 s:piano release:0.1 pan:0.41666666666666663 ]", - "[ 9/1 ⇜ (145/16 → 581/64) ⇝ 37/4 | note:C2 gain:0.3634633135269902 clip:1 s:piano release:0.1 pan:0.41666666666666663 ]", - "[ 9/1 ⇜ (581/64 → 291/32) ⇝ 37/4 | note:C2 gain:0.25522409349774405 clip:1 s:piano release:0.1 pan:0.41666666666666663 ]", - "[ 9/1 ⇜ (291/32 → 583/64) ⇝ 37/4 | note:C2 gain:0.2552240934977432 clip:1 s:piano release:0.1 pan:0.41666666666666663 ]", - "[ 9/1 ⇜ (583/64 → 73/8) ⇝ 37/4 | note:C2 gain:0.3634633135269777 clip:1 s:piano release:0.1 pan:0.41666666666666663 ]", - "[ 9/1 ⇜ (73/8 → 585/64) ⇝ 37/4 | note:C2 gain:0.5165366864730183 clip:1 s:piano release:0.1 pan:0.41666666666666663 ]", - "[ (73/8 → 585/64) ⇝ 37/4 | note:C4 gain:0.5165366864730183 clip:1 s:piano release:0.1 pan:0.5277777777777778 ]", - "[ (73/8 → 585/64) ⇝ 37/4 | note:G4 gain:0.5165366864730183 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", - "[ (73/8 → 585/64) ⇝ 37/4 | note:Bb4 gain:0.5165366864730183 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", - "[ 9/1 ⇜ (585/64 → 293/32) ⇝ 37/4 | note:C2 gain:0.6247759065022551 clip:1 s:piano release:0.1 pan:0.41666666666666663 ]", - "[ 73/8 ⇜ (585/64 → 293/32) ⇝ 37/4 | note:C4 gain:0.6247759065022551 clip:1 s:piano release:0.1 pan:0.5277777777777778 ]", - "[ 73/8 ⇜ (585/64 → 293/32) ⇝ 37/4 | note:G4 gain:0.6247759065022551 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", - "[ 73/8 ⇜ (585/64 → 293/32) ⇝ 37/4 | note:Bb4 gain:0.6247759065022551 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", - "[ 9/1 ⇜ (293/32 → 587/64) ⇝ 37/4 | note:C2 gain:0.6247759065022577 clip:1 s:piano release:0.1 pan:0.41666666666666663 ]", - "[ 73/8 ⇜ (293/32 → 587/64) ⇝ 37/4 | note:C4 gain:0.6247759065022577 clip:1 s:piano release:0.1 pan:0.5277777777777778 ]", - "[ 73/8 ⇜ (293/32 → 587/64) ⇝ 37/4 | note:G4 gain:0.6247759065022577 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", - "[ 73/8 ⇜ (293/32 → 587/64) ⇝ 37/4 | note:Bb4 gain:0.6247759065022577 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", - "[ 9/1 ⇜ (587/64 → 147/16) ⇝ 37/4 | note:C2 gain:0.5165366864730244 clip:1 s:piano release:0.1 pan:0.41666666666666663 ]", - "[ 73/8 ⇜ (587/64 → 147/16) ⇝ 37/4 | note:C4 gain:0.5165366864730244 clip:1 s:piano release:0.1 pan:0.5277777777777778 ]", - "[ 73/8 ⇜ (587/64 → 147/16) ⇝ 37/4 | note:G4 gain:0.5165366864730244 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", - "[ 73/8 ⇜ (587/64 → 147/16) ⇝ 37/4 | note:Bb4 gain:0.5165366864730244 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", - "[ 9/1 ⇜ (147/16 → 589/64) ⇝ 37/4 | note:C2 gain:0.36346331352698363 clip:1 s:piano release:0.1 pan:0.41666666666666663 ]", - "[ 73/8 ⇜ (147/16 → 589/64) ⇝ 37/4 | note:C4 gain:0.36346331352698363 clip:1 s:piano release:0.1 pan:0.5277777777777778 ]", - "[ 73/8 ⇜ (147/16 → 589/64) ⇝ 37/4 | note:G4 gain:0.36346331352698363 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", - "[ 73/8 ⇜ (147/16 → 589/64) ⇝ 37/4 | note:Bb4 gain:0.36346331352698363 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", - "[ 9/1 ⇜ (589/64 → 295/32) ⇝ 37/4 | note:C2 gain:0.25522409349774566 clip:1 s:piano release:0.1 pan:0.41666666666666663 ]", - "[ 73/8 ⇜ (589/64 → 295/32) ⇝ 37/4 | note:C4 gain:0.25522409349774566 clip:1 s:piano release:0.1 pan:0.5277777777777778 ]", - "[ 73/8 ⇜ (589/64 → 295/32) ⇝ 37/4 | note:G4 gain:0.25522409349774566 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", - "[ 73/8 ⇜ (589/64 → 295/32) ⇝ 37/4 | note:Bb4 gain:0.25522409349774566 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", - "[ 9/1 ⇜ (295/32 → 591/64) ⇝ 37/4 | note:C2 gain:0.2552240934977416 clip:1 s:piano release:0.1 pan:0.41666666666666663 ]", - "[ 73/8 ⇜ (295/32 → 591/64) ⇝ 37/4 | note:C4 gain:0.2552240934977416 clip:1 s:piano release:0.1 pan:0.5277777777777778 ]", - "[ 73/8 ⇜ (295/32 → 591/64) ⇝ 37/4 | note:G4 gain:0.2552240934977416 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", - "[ 73/8 ⇜ (295/32 → 591/64) ⇝ 37/4 | note:Bb4 gain:0.2552240934977416 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", - "[ 9/1 ⇜ (591/64 → 37/4) | note:C2 gain:0.3634633135269737 clip:1 s:piano release:0.1 pan:0.41666666666666663 ]", - "[ 73/8 ⇜ (591/64 → 37/4) | note:C4 gain:0.3634633135269737 clip:1 s:piano release:0.1 pan:0.5277777777777778 ]", - "[ 73/8 ⇜ (591/64 → 37/4) | note:G4 gain:0.3634633135269737 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", - "[ 73/8 ⇜ (591/64 → 37/4) | note:Bb4 gain:0.3634633135269737 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", - "[ (37/4 → 593/64) ⇝ 19/2 | note:Bb3 gain:0.2582683432365072 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", - "[ (37/4 → 593/64) ⇝ 19/2 | note:D4 gain:0.2582683432365072 clip:1 s:piano release:0.1 pan:0.537037037037037 ]", - "[ (37/4 → 593/64) ⇝ 19/2 | note:Eb4 gain:0.2582683432365072 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", - "[ (37/4 → 593/64) ⇝ 19/2 | note:G4 gain:0.2582683432365072 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", - "[ 37/4 ⇜ (593/64 → 297/32) ⇝ 19/2 | note:Bb3 gain:0.3123879532511289 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", - "[ 37/4 ⇜ (593/64 → 297/32) ⇝ 19/2 | note:D4 gain:0.3123879532511289 clip:1 s:piano release:0.1 pan:0.537037037037037 ]", - "[ 37/4 ⇜ (593/64 → 297/32) ⇝ 19/2 | note:Eb4 gain:0.3123879532511289 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", - "[ 37/4 ⇜ (593/64 → 297/32) ⇝ 19/2 | note:G4 gain:0.3123879532511289 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", - "[ 37/4 ⇜ (297/32 → 595/64) ⇝ 19/2 | note:Bb3 gain:0.3123879532511296 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", - "[ 37/4 ⇜ (297/32 → 595/64) ⇝ 19/2 | note:D4 gain:0.3123879532511296 clip:1 s:piano release:0.1 pan:0.537037037037037 ]", - "[ 37/4 ⇜ (297/32 → 595/64) ⇝ 19/2 | note:Eb4 gain:0.3123879532511296 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", - "[ 37/4 ⇜ (297/32 → 595/64) ⇝ 19/2 | note:G4 gain:0.3123879532511296 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", - "[ 37/4 ⇜ (595/64 → 149/16) ⇝ 19/2 | note:Bb3 gain:0.2582683432365089 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", - "[ 37/4 ⇜ (595/64 → 149/16) ⇝ 19/2 | note:D4 gain:0.2582683432365089 clip:1 s:piano release:0.1 pan:0.537037037037037 ]", - "[ 37/4 ⇜ (595/64 → 149/16) ⇝ 19/2 | note:Eb4 gain:0.2582683432365089 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", - "[ 37/4 ⇜ (595/64 → 149/16) ⇝ 19/2 | note:G4 gain:0.2582683432365089 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", - "[ 37/4 ⇜ (149/16 → 597/64) ⇝ 19/2 | note:Bb3 gain:0.18173165676349382 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", - "[ 37/4 ⇜ (149/16 → 597/64) ⇝ 19/2 | note:D4 gain:0.18173165676349382 clip:1 s:piano release:0.1 pan:0.537037037037037 ]", - "[ 37/4 ⇜ (149/16 → 597/64) ⇝ 19/2 | note:Eb4 gain:0.18173165676349382 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", - "[ 37/4 ⇜ (149/16 → 597/64) ⇝ 19/2 | note:G4 gain:0.18173165676349382 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", - "[ 37/4 ⇜ (597/64 → 299/32) ⇝ 19/2 | note:Bb3 gain:0.1276120467488715 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", - "[ 37/4 ⇜ (597/64 → 299/32) ⇝ 19/2 | note:D4 gain:0.1276120467488715 clip:1 s:piano release:0.1 pan:0.537037037037037 ]", - "[ 37/4 ⇜ (597/64 → 299/32) ⇝ 19/2 | note:Eb4 gain:0.1276120467488715 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", - "[ 37/4 ⇜ (597/64 → 299/32) ⇝ 19/2 | note:G4 gain:0.1276120467488715 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", - "[ 37/4 ⇜ (299/32 → 599/64) ⇝ 19/2 | note:Bb3 gain:0.12761204674886995 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", - "[ 37/4 ⇜ (299/32 → 599/64) ⇝ 19/2 | note:D4 gain:0.12761204674886995 clip:1 s:piano release:0.1 pan:0.537037037037037 ]", - "[ 37/4 ⇜ (299/32 → 599/64) ⇝ 19/2 | note:Eb4 gain:0.12761204674886995 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", - "[ 37/4 ⇜ (299/32 → 599/64) ⇝ 19/2 | note:G4 gain:0.12761204674886995 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", - "[ 37/4 ⇜ (599/64 → 75/8) ⇝ 19/2 | note:Bb3 gain:0.18173165676349012 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", - "[ 37/4 ⇜ (599/64 → 75/8) ⇝ 19/2 | note:D4 gain:0.18173165676349012 clip:1 s:piano release:0.1 pan:0.537037037037037 ]", - "[ 37/4 ⇜ (599/64 → 75/8) ⇝ 19/2 | note:Eb4 gain:0.18173165676349012 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", - "[ 37/4 ⇜ (599/64 → 75/8) ⇝ 19/2 | note:G4 gain:0.18173165676349012 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", - "[ 37/4 ⇜ (75/8 → 601/64) ⇝ 19/2 | note:Bb3 gain:0.25826834323650516 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", - "[ 37/4 ⇜ (75/8 → 601/64) ⇝ 19/2 | note:D4 gain:0.25826834323650516 clip:1 s:piano release:0.1 pan:0.537037037037037 ]", - "[ 37/4 ⇜ (75/8 → 601/64) ⇝ 19/2 | note:Eb4 gain:0.25826834323650516 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", - "[ 37/4 ⇜ (75/8 → 601/64) ⇝ 19/2 | note:G4 gain:0.25826834323650516 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", - "[ 37/4 ⇜ (601/64 → 301/32) ⇝ 19/2 | note:Bb3 gain:0.3123879532511281 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", - "[ 37/4 ⇜ (601/64 → 301/32) ⇝ 19/2 | note:D4 gain:0.3123879532511281 clip:1 s:piano release:0.1 pan:0.537037037037037 ]", - "[ 37/4 ⇜ (601/64 → 301/32) ⇝ 19/2 | note:Eb4 gain:0.3123879532511281 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", - "[ 37/4 ⇜ (601/64 → 301/32) ⇝ 19/2 | note:G4 gain:0.3123879532511281 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", - "[ 37/4 ⇜ (301/32 → 603/64) ⇝ 19/2 | note:Bb3 gain:0.31238795325113045 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", - "[ 37/4 ⇜ (301/32 → 603/64) ⇝ 19/2 | note:D4 gain:0.31238795325113045 clip:1 s:piano release:0.1 pan:0.537037037037037 ]", - "[ 37/4 ⇜ (301/32 → 603/64) ⇝ 19/2 | note:Eb4 gain:0.31238795325113045 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", - "[ 37/4 ⇜ (301/32 → 603/64) ⇝ 19/2 | note:G4 gain:0.31238795325113045 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", - "[ 37/4 ⇜ (603/64 → 151/16) ⇝ 19/2 | note:Bb3 gain:0.2582683432365109 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", - "[ 37/4 ⇜ (603/64 → 151/16) ⇝ 19/2 | note:D4 gain:0.2582683432365109 clip:1 s:piano release:0.1 pan:0.537037037037037 ]", - "[ 37/4 ⇜ (603/64 → 151/16) ⇝ 19/2 | note:Eb4 gain:0.2582683432365109 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", - "[ 37/4 ⇜ (603/64 → 151/16) ⇝ 19/2 | note:G4 gain:0.2582683432365109 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", - "[ 37/4 ⇜ (151/16 → 605/64) ⇝ 19/2 | note:Bb3 gain:0.18173165676349057 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", - "[ 37/4 ⇜ (151/16 → 605/64) ⇝ 19/2 | note:D4 gain:0.18173165676349057 clip:1 s:piano release:0.1 pan:0.537037037037037 ]", - "[ 37/4 ⇜ (151/16 → 605/64) ⇝ 19/2 | note:Eb4 gain:0.18173165676349057 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", - "[ 37/4 ⇜ (151/16 → 605/64) ⇝ 19/2 | note:G4 gain:0.18173165676349057 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", - "[ 37/4 ⇜ (605/64 → 303/32) ⇝ 19/2 | note:Bb3 gain:0.12761204674887233 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", - "[ 37/4 ⇜ (605/64 → 303/32) ⇝ 19/2 | note:D4 gain:0.12761204674887233 clip:1 s:piano release:0.1 pan:0.537037037037037 ]", - "[ 37/4 ⇜ (605/64 → 303/32) ⇝ 19/2 | note:Eb4 gain:0.12761204674887233 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", - "[ 37/4 ⇜ (605/64 → 303/32) ⇝ 19/2 | note:G4 gain:0.12761204674887233 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", - "[ 37/4 ⇜ (303/32 → 607/64) ⇝ 19/2 | note:Bb3 gain:0.12761204674887133 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", - "[ 37/4 ⇜ (303/32 → 607/64) ⇝ 19/2 | note:D4 gain:0.12761204674887133 clip:1 s:piano release:0.1 pan:0.537037037037037 ]", - "[ 37/4 ⇜ (303/32 → 607/64) ⇝ 19/2 | note:Eb4 gain:0.12761204674887133 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", - "[ 37/4 ⇜ (303/32 → 607/64) ⇝ 19/2 | note:G4 gain:0.12761204674887133 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", - "[ 37/4 ⇜ (607/64 → 19/2) | note:Bb3 gain:0.18173165676348813 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", - "[ 37/4 ⇜ (607/64 → 19/2) | note:D4 gain:0.18173165676348813 clip:1 s:piano release:0.1 pan:0.537037037037037 ]", - "[ 37/4 ⇜ (607/64 → 19/2) | note:Eb4 gain:0.18173165676348813 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", - "[ 37/4 ⇜ (607/64 → 19/2) | note:G4 gain:0.18173165676348813 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", - "[ (19/2 → 609/64) ⇝ 77/8 | note:G4 gain:0.5165366864730169 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", - "[ (19/2 → 609/64) ⇝ 77/8 | note:D5 gain:0.5165366864730169 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", - "[ (19/2 → 609/64) ⇝ 77/8 | note:F5 gain:0.5165366864730169 clip:1 s:piano release:0.1 pan:0.6064814814814814 ]", - "[ (19/2 → 609/64) ⇝ 39/4 | note:C2 gain:0.5165366864730169 clip:1 s:piano release:0.1 pan:0.41666666666666663 ]", - "[ 19/2 ⇜ (609/64 → 305/32) ⇝ 77/8 | note:G4 gain:0.6247759065022547 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", - "[ 19/2 ⇜ (609/64 → 305/32) ⇝ 77/8 | note:D5 gain:0.6247759065022547 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", - "[ 19/2 ⇜ (609/64 → 305/32) ⇝ 77/8 | note:F5 gain:0.6247759065022547 clip:1 s:piano release:0.1 pan:0.6064814814814814 ]", - "[ 19/2 ⇜ (609/64 → 305/32) ⇝ 39/4 | note:C2 gain:0.6247759065022547 clip:1 s:piano release:0.1 pan:0.41666666666666663 ]", - "[ 19/2 ⇜ (305/32 → 611/64) ⇝ 77/8 | note:G4 gain:0.6247759065022582 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", - "[ 19/2 ⇜ (305/32 → 611/64) ⇝ 77/8 | note:D5 gain:0.6247759065022582 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", - "[ 19/2 ⇜ (305/32 → 611/64) ⇝ 77/8 | note:F5 gain:0.6247759065022582 clip:1 s:piano release:0.1 pan:0.6064814814814814 ]", - "[ 19/2 ⇜ (305/32 → 611/64) ⇝ 39/4 | note:C2 gain:0.6247759065022582 clip:1 s:piano release:0.1 pan:0.41666666666666663 ]", - "[ (267/28 → 611/64) ⇝ 137/14 | note:70 gain:0.062477590650225824 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", - "[ (267/28 → 611/64) ⇝ 137/14 | note:74 gain:0.062477590650225824 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", - "[ (267/28 → 611/64) ⇝ 137/14 | note:75 gain:0.062477590650225824 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", - "[ (267/28 → 611/64) ⇝ 137/14 | note:79 gain:0.062477590650225824 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", - "[ 19/2 ⇜ (611/64 → 153/16) ⇝ 77/8 | note:G4 gain:0.5165366864730258 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", - "[ 19/2 ⇜ (611/64 → 153/16) ⇝ 77/8 | note:D5 gain:0.5165366864730258 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", - "[ 19/2 ⇜ (611/64 → 153/16) ⇝ 77/8 | note:F5 gain:0.5165366864730258 clip:1 s:piano release:0.1 pan:0.6064814814814814 ]", - "[ 19/2 ⇜ (611/64 → 153/16) ⇝ 39/4 | note:C2 gain:0.5165366864730258 clip:1 s:piano release:0.1 pan:0.41666666666666663 ]", - "[ 267/28 ⇜ (611/64 → 153/16) ⇝ 137/14 | note:70 gain:0.05165366864730258 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", - "[ 267/28 ⇜ (611/64 → 153/16) ⇝ 137/14 | note:74 gain:0.05165366864730258 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", - "[ 267/28 ⇜ (611/64 → 153/16) ⇝ 137/14 | note:75 gain:0.05165366864730258 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", - "[ 267/28 ⇜ (611/64 → 153/16) ⇝ 137/14 | note:79 gain:0.05165366864730258 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", - "[ 19/2 ⇜ (153/16 → 613/64) ⇝ 77/8 | note:G4 gain:0.36346331352698513 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", - "[ 19/2 ⇜ (153/16 → 613/64) ⇝ 77/8 | note:D5 gain:0.36346331352698513 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", - "[ 19/2 ⇜ (153/16 → 613/64) ⇝ 77/8 | note:F5 gain:0.36346331352698513 clip:1 s:piano release:0.1 pan:0.6064814814814814 ]", - "[ 19/2 ⇜ (153/16 → 613/64) ⇝ 39/4 | note:C2 gain:0.36346331352698513 clip:1 s:piano release:0.1 pan:0.41666666666666663 ]", - "[ 267/28 ⇜ (153/16 → 613/64) ⇝ 137/14 | note:70 gain:0.03634633135269851 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", - "[ 267/28 ⇜ (153/16 → 613/64) ⇝ 137/14 | note:74 gain:0.03634633135269851 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", - "[ 267/28 ⇜ (153/16 → 613/64) ⇝ 137/14 | note:75 gain:0.03634633135269851 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", - "[ 267/28 ⇜ (153/16 → 613/64) ⇝ 137/14 | note:79 gain:0.03634633135269851 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", - "[ 19/2 ⇜ (613/64 → 307/32) ⇝ 77/8 | note:G4 gain:0.25522409349774194 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", - "[ 19/2 ⇜ (613/64 → 307/32) ⇝ 77/8 | note:D5 gain:0.25522409349774194 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", - "[ 19/2 ⇜ (613/64 → 307/32) ⇝ 77/8 | note:F5 gain:0.25522409349774194 clip:1 s:piano release:0.1 pan:0.6064814814814814 ]", - "[ 19/2 ⇜ (613/64 → 307/32) ⇝ 39/4 | note:C2 gain:0.25522409349774194 clip:1 s:piano release:0.1 pan:0.41666666666666663 ]", - "[ 267/28 ⇜ (613/64 → 307/32) ⇝ 137/14 | note:70 gain:0.025522409349774195 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", - "[ 267/28 ⇜ (613/64 → 307/32) ⇝ 137/14 | note:74 gain:0.025522409349774195 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", - "[ 267/28 ⇜ (613/64 → 307/32) ⇝ 137/14 | note:75 gain:0.025522409349774195 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", - "[ 267/28 ⇜ (613/64 → 307/32) ⇝ 137/14 | note:79 gain:0.025522409349774195 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", - "[ 19/2 ⇜ (307/32 → 615/64) ⇝ 77/8 | note:G4 gain:0.25522409349774094 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", - "[ 19/2 ⇜ (307/32 → 615/64) ⇝ 77/8 | note:D5 gain:0.25522409349774094 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", - "[ 19/2 ⇜ (307/32 → 615/64) ⇝ 77/8 | note:F5 gain:0.25522409349774094 clip:1 s:piano release:0.1 pan:0.6064814814814814 ]", - "[ 19/2 ⇜ (307/32 → 615/64) ⇝ 39/4 | note:C2 gain:0.25522409349774094 clip:1 s:piano release:0.1 pan:0.41666666666666663 ]", - "[ 267/28 ⇜ (307/32 → 615/64) ⇝ 137/14 | note:70 gain:0.025522409349774094 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", - "[ 267/28 ⇜ (307/32 → 615/64) ⇝ 137/14 | note:74 gain:0.025522409349774094 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", - "[ 267/28 ⇜ (307/32 → 615/64) ⇝ 137/14 | note:75 gain:0.025522409349774094 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", - "[ 267/28 ⇜ (307/32 → 615/64) ⇝ 137/14 | note:79 gain:0.025522409349774094 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", - "[ 19/2 ⇜ (615/64 → 77/8) | note:G4 gain:0.36346331352698275 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", - "[ 19/2 ⇜ (615/64 → 77/8) | note:D5 gain:0.36346331352698275 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", - "[ 19/2 ⇜ (615/64 → 77/8) | note:F5 gain:0.36346331352698275 clip:1 s:piano release:0.1 pan:0.6064814814814814 ]", - "[ 19/2 ⇜ (615/64 → 77/8) ⇝ 39/4 | note:C2 gain:0.36346331352698275 clip:1 s:piano release:0.1 pan:0.41666666666666663 ]", - "[ 267/28 ⇜ (615/64 → 77/8) ⇝ 137/14 | note:70 gain:0.036346331352698276 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", - "[ 267/28 ⇜ (615/64 → 77/8) ⇝ 137/14 | note:74 gain:0.036346331352698276 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", - "[ 267/28 ⇜ (615/64 → 77/8) ⇝ 137/14 | note:75 gain:0.036346331352698276 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", - "[ 267/28 ⇜ (615/64 → 77/8) ⇝ 137/14 | note:79 gain:0.036346331352698276 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", - "[ 19/2 ⇜ (77/8 → 617/64) ⇝ 39/4 | note:C2 gain:0.5165366864730129 clip:1 s:piano release:0.1 pan:0.41666666666666663 ]", - "[ 267/28 ⇜ (77/8 → 617/64) ⇝ 137/14 | note:70 gain:0.05165366864730129 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", - "[ 267/28 ⇜ (77/8 → 617/64) ⇝ 137/14 | note:74 gain:0.05165366864730129 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", - "[ 267/28 ⇜ (77/8 → 617/64) ⇝ 137/14 | note:75 gain:0.05165366864730129 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", - "[ 267/28 ⇜ (77/8 → 617/64) ⇝ 137/14 | note:79 gain:0.05165366864730129 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", - "[ 19/2 ⇜ (617/64 → 309/32) ⇝ 39/4 | note:C2 gain:0.6247759065022573 clip:1 s:piano release:0.1 pan:0.41666666666666663 ]", - "[ 267/28 ⇜ (617/64 → 309/32) ⇝ 137/14 | note:70 gain:0.062477590650225734 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", - "[ 267/28 ⇜ (617/64 → 309/32) ⇝ 137/14 | note:74 gain:0.062477590650225734 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", - "[ 267/28 ⇜ (617/64 → 309/32) ⇝ 137/14 | note:75 gain:0.062477590650225734 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", - "[ 267/28 ⇜ (617/64 → 309/32) ⇝ 137/14 | note:79 gain:0.062477590650225734 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", - "[ 19/2 ⇜ (309/32 → 619/64) ⇝ 39/4 | note:C2 gain:0.62477590650226 clip:1 s:piano release:0.1 pan:0.41666666666666663 ]", - "[ 267/28 ⇜ (309/32 → 619/64) ⇝ 137/14 | note:70 gain:0.062477590650226004 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", - "[ 267/28 ⇜ (309/32 → 619/64) ⇝ 137/14 | note:74 gain:0.062477590650226004 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", - "[ 267/28 ⇜ (309/32 → 619/64) ⇝ 137/14 | note:75 gain:0.062477590650226004 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", - "[ 267/28 ⇜ (309/32 → 619/64) ⇝ 137/14 | note:79 gain:0.062477590650226004 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", - "[ 19/2 ⇜ (619/64 → 155/16) ⇝ 39/4 | note:C2 gain:0.5165366864730192 clip:1 s:piano release:0.1 pan:0.41666666666666663 ]", - "[ 267/28 ⇜ (619/64 → 155/16) ⇝ 137/14 | note:70 gain:0.05165366864730192 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", - "[ 267/28 ⇜ (619/64 → 155/16) ⇝ 137/14 | note:74 gain:0.05165366864730192 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", - "[ 267/28 ⇜ (619/64 → 155/16) ⇝ 137/14 | note:75 gain:0.05165366864730192 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", - "[ 267/28 ⇜ (619/64 → 155/16) ⇝ 137/14 | note:79 gain:0.05165366864730192 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", - "[ 19/2 ⇜ (155/16 → 621/64) ⇝ 39/4 | note:C2 gain:0.36346331352698913 clip:1 s:piano release:0.1 pan:0.41666666666666663 ]", - "[ 267/28 ⇜ (155/16 → 621/64) ⇝ 137/14 | note:70 gain:0.036346331352698914 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", - "[ 267/28 ⇜ (155/16 → 621/64) ⇝ 137/14 | note:74 gain:0.036346331352698914 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", - "[ 267/28 ⇜ (155/16 → 621/64) ⇝ 137/14 | note:75 gain:0.036346331352698914 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", - "[ 267/28 ⇜ (155/16 → 621/64) ⇝ 137/14 | note:79 gain:0.036346331352698914 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", - "[ 19/2 ⇜ (621/64 → 311/32) ⇝ 39/4 | note:C2 gain:0.2552240934977436 clip:1 s:piano release:0.1 pan:0.41666666666666663 ]", - "[ 267/28 ⇜ (621/64 → 311/32) ⇝ 137/14 | note:70 gain:0.02552240934977436 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", - "[ 267/28 ⇜ (621/64 → 311/32) ⇝ 137/14 | note:74 gain:0.02552240934977436 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", - "[ 267/28 ⇜ (621/64 → 311/32) ⇝ 137/14 | note:75 gain:0.02552240934977436 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", - "[ 267/28 ⇜ (621/64 → 311/32) ⇝ 137/14 | note:79 gain:0.02552240934977436 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", - "[ 19/2 ⇜ (311/32 → 623/64) ⇝ 39/4 | note:C2 gain:0.25522409349773933 clip:1 s:piano release:0.1 pan:0.41666666666666663 ]", - "[ 267/28 ⇜ (311/32 → 623/64) ⇝ 137/14 | note:70 gain:0.025522409349773935 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", - "[ 267/28 ⇜ (311/32 → 623/64) ⇝ 137/14 | note:74 gain:0.025522409349773935 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", - "[ 267/28 ⇜ (311/32 → 623/64) ⇝ 137/14 | note:75 gain:0.025522409349773935 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", - "[ 267/28 ⇜ (311/32 → 623/64) ⇝ 137/14 | note:79 gain:0.025522409349773935 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", - "[ 19/2 ⇜ (623/64 → 39/4) | note:C2 gain:0.36346331352697875 clip:1 s:piano release:0.1 pan:0.41666666666666663 ]", - "[ 267/28 ⇜ (623/64 → 39/4) ⇝ 137/14 | note:70 gain:0.03634633135269787 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", - "[ 267/28 ⇜ (623/64 → 39/4) ⇝ 137/14 | note:74 gain:0.03634633135269787 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", - "[ 267/28 ⇜ (623/64 → 39/4) ⇝ 137/14 | note:75 gain:0.03634633135269787 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", - "[ 267/28 ⇜ (623/64 → 39/4) ⇝ 137/14 | note:79 gain:0.03634633135269787 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", - "[ 267/28 ⇜ (39/4 → 625/64) ⇝ 137/14 | note:70 gain:0.05165366864730195 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", - "[ 267/28 ⇜ (39/4 → 625/64) ⇝ 137/14 | note:74 gain:0.05165366864730195 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", - "[ 267/28 ⇜ (39/4 → 625/64) ⇝ 137/14 | note:75 gain:0.05165366864730195 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", - "[ 267/28 ⇜ (39/4 → 625/64) ⇝ 137/14 | note:79 gain:0.05165366864730195 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", - "[ (39/4 → 625/64) ⇝ 79/8 | note:G4 gain:0.5165366864730194 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", - "[ (39/4 → 625/64) ⇝ 79/8 | note:D5 gain:0.5165366864730194 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", - "[ (39/4 → 625/64) ⇝ 79/8 | note:F5 gain:0.5165366864730194 clip:1 s:piano release:0.1 pan:0.6064814814814814 ]", - "[ (39/4 → 625/64) ⇝ 10/1 | note:Bb3 gain:0.2582683432365097 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", - "[ (39/4 → 625/64) ⇝ 10/1 | note:D4 gain:0.2582683432365097 clip:1 s:piano release:0.1 pan:0.537037037037037 ]", - "[ (39/4 → 625/64) ⇝ 10/1 | note:Eb4 gain:0.2582683432365097 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", - "[ (39/4 → 625/64) ⇝ 10/1 | note:G4 gain:0.2582683432365097 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", - "[ 267/28 ⇜ (625/64 → 313/32) ⇝ 137/14 | note:70 gain:0.06247759065022556 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", - "[ 267/28 ⇜ (625/64 → 313/32) ⇝ 137/14 | note:74 gain:0.06247759065022556 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", - "[ 267/28 ⇜ (625/64 → 313/32) ⇝ 137/14 | note:75 gain:0.06247759065022556 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", - "[ 267/28 ⇜ (625/64 → 313/32) ⇝ 137/14 | note:79 gain:0.06247759065022556 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", - "[ 39/4 ⇜ (625/64 → 313/32) ⇝ 79/8 | note:G4 gain:0.6247759065022556 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", - "[ 39/4 ⇜ (625/64 → 313/32) ⇝ 79/8 | note:D5 gain:0.6247759065022556 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", - "[ 39/4 ⇜ (625/64 → 313/32) ⇝ 79/8 | note:F5 gain:0.6247759065022556 clip:1 s:piano release:0.1 pan:0.6064814814814814 ]", - "[ 39/4 ⇜ (625/64 → 313/32) ⇝ 10/1 | note:Bb3 gain:0.3123879532511278 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", - "[ 39/4 ⇜ (625/64 → 313/32) ⇝ 10/1 | note:D4 gain:0.3123879532511278 clip:1 s:piano release:0.1 pan:0.537037037037037 ]", - "[ 39/4 ⇜ (625/64 → 313/32) ⇝ 10/1 | note:Eb4 gain:0.3123879532511278 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", - "[ 39/4 ⇜ (625/64 → 313/32) ⇝ 10/1 | note:G4 gain:0.3123879532511278 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", - "[ 267/28 ⇜ (313/32 → 137/14) | note:70 gain:0.06247759065022571 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", - "[ 267/28 ⇜ (313/32 → 137/14) | note:74 gain:0.06247759065022571 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", - "[ 267/28 ⇜ (313/32 → 137/14) | note:75 gain:0.06247759065022571 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", - "[ 267/28 ⇜ (313/32 → 137/14) | note:79 gain:0.06247759065022571 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", - "[ 39/4 ⇜ (313/32 → 627/64) ⇝ 79/8 | note:G4 gain:0.6247759065022571 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", - "[ 39/4 ⇜ (313/32 → 627/64) ⇝ 79/8 | note:D5 gain:0.6247759065022571 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", - "[ 39/4 ⇜ (313/32 → 627/64) ⇝ 79/8 | note:F5 gain:0.6247759065022571 clip:1 s:piano release:0.1 pan:0.6064814814814814 ]", - "[ 39/4 ⇜ (313/32 → 627/64) ⇝ 10/1 | note:Bb3 gain:0.31238795325112856 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", - "[ 39/4 ⇜ (313/32 → 627/64) ⇝ 10/1 | note:D4 gain:0.31238795325112856 clip:1 s:piano release:0.1 pan:0.537037037037037 ]", - "[ 39/4 ⇜ (313/32 → 627/64) ⇝ 10/1 | note:Eb4 gain:0.31238795325112856 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", - "[ 39/4 ⇜ (313/32 → 627/64) ⇝ 10/1 | note:G4 gain:0.31238795325112856 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", - "[ 39/4 ⇜ (627/64 → 157/16) ⇝ 79/8 | note:G4 gain:0.5165366864730233 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", - "[ 39/4 ⇜ (627/64 → 157/16) ⇝ 79/8 | note:D5 gain:0.5165366864730233 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", - "[ 39/4 ⇜ (627/64 → 157/16) ⇝ 79/8 | note:F5 gain:0.5165366864730233 clip:1 s:piano release:0.1 pan:0.6064814814814814 ]", - "[ 39/4 ⇜ (627/64 → 157/16) ⇝ 10/1 | note:Bb3 gain:0.25826834323651165 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", - "[ 39/4 ⇜ (627/64 → 157/16) ⇝ 10/1 | note:D4 gain:0.25826834323651165 clip:1 s:piano release:0.1 pan:0.537037037037037 ]", - "[ 39/4 ⇜ (627/64 → 157/16) ⇝ 10/1 | note:Eb4 gain:0.25826834323651165 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", - "[ 39/4 ⇜ (627/64 → 157/16) ⇝ 10/1 | note:G4 gain:0.25826834323651165 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", - "[ 39/4 ⇜ (157/16 → 629/64) ⇝ 79/8 | note:G4 gain:0.3634633135269826 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", - "[ 39/4 ⇜ (157/16 → 629/64) ⇝ 79/8 | note:D5 gain:0.3634633135269826 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", - "[ 39/4 ⇜ (157/16 → 629/64) ⇝ 79/8 | note:F5 gain:0.3634633135269826 clip:1 s:piano release:0.1 pan:0.6064814814814814 ]", - "[ 39/4 ⇜ (157/16 → 629/64) ⇝ 10/1 | note:Bb3 gain:0.1817316567634913 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", - "[ 39/4 ⇜ (157/16 → 629/64) ⇝ 10/1 | note:D4 gain:0.1817316567634913 clip:1 s:piano release:0.1 pan:0.537037037037037 ]", - "[ 39/4 ⇜ (157/16 → 629/64) ⇝ 10/1 | note:Eb4 gain:0.1817316567634913 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", - "[ 39/4 ⇜ (157/16 → 629/64) ⇝ 10/1 | note:G4 gain:0.1817316567634913 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", - "[ 39/4 ⇜ (629/64 → 315/32) ⇝ 79/8 | note:G4 gain:0.2552240934977452 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", - "[ 39/4 ⇜ (629/64 → 315/32) ⇝ 79/8 | note:D5 gain:0.2552240934977452 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", - "[ 39/4 ⇜ (629/64 → 315/32) ⇝ 79/8 | note:F5 gain:0.2552240934977452 clip:1 s:piano release:0.1 pan:0.6064814814814814 ]", - "[ 39/4 ⇜ (629/64 → 315/32) ⇝ 10/1 | note:Bb3 gain:0.1276120467488726 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", - "[ 39/4 ⇜ (629/64 → 315/32) ⇝ 10/1 | note:D4 gain:0.1276120467488726 clip:1 s:piano release:0.1 pan:0.537037037037037 ]", - "[ 39/4 ⇜ (629/64 → 315/32) ⇝ 10/1 | note:Eb4 gain:0.1276120467488726 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", - "[ 39/4 ⇜ (629/64 → 315/32) ⇝ 10/1 | note:G4 gain:0.1276120467488726 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", - "[ 39/4 ⇜ (315/32 → 631/64) ⇝ 79/8 | note:G4 gain:0.25522409349774206 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", - "[ 39/4 ⇜ (315/32 → 631/64) ⇝ 79/8 | note:D5 gain:0.25522409349774206 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", - "[ 39/4 ⇜ (315/32 → 631/64) ⇝ 79/8 | note:F5 gain:0.25522409349774206 clip:1 s:piano release:0.1 pan:0.6064814814814814 ]", - "[ 39/4 ⇜ (315/32 → 631/64) ⇝ 10/1 | note:Bb3 gain:0.12761204674887103 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", - "[ 39/4 ⇜ (315/32 → 631/64) ⇝ 10/1 | note:D4 gain:0.12761204674887103 clip:1 s:piano release:0.1 pan:0.537037037037037 ]", - "[ 39/4 ⇜ (315/32 → 631/64) ⇝ 10/1 | note:Eb4 gain:0.12761204674887103 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", - "[ 39/4 ⇜ (315/32 → 631/64) ⇝ 10/1 | note:G4 gain:0.12761204674887103 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", - "[ 39/4 ⇜ (631/64 → 79/8) | note:G4 gain:0.3634633135269748 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", - "[ 39/4 ⇜ (631/64 → 79/8) | note:D5 gain:0.3634633135269748 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", - "[ 39/4 ⇜ (631/64 → 79/8) | note:F5 gain:0.3634633135269748 clip:1 s:piano release:0.1 pan:0.6064814814814814 ]", - "[ 39/4 ⇜ (631/64 → 79/8) ⇝ 10/1 | note:Bb3 gain:0.1817316567634874 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", - "[ 39/4 ⇜ (631/64 → 79/8) ⇝ 10/1 | note:D4 gain:0.1817316567634874 clip:1 s:piano release:0.1 pan:0.537037037037037 ]", - "[ 39/4 ⇜ (631/64 → 79/8) ⇝ 10/1 | note:Eb4 gain:0.1817316567634874 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", - "[ 39/4 ⇜ (631/64 → 79/8) ⇝ 10/1 | note:G4 gain:0.1817316567634874 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", - "[ 39/4 ⇜ (79/8 → 633/64) ⇝ 10/1 | note:Bb3 gain:0.25826834323650777 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", - "[ 39/4 ⇜ (79/8 → 633/64) ⇝ 10/1 | note:D4 gain:0.25826834323650777 clip:1 s:piano release:0.1 pan:0.537037037037037 ]", - "[ 39/4 ⇜ (79/8 → 633/64) ⇝ 10/1 | note:Eb4 gain:0.25826834323650777 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", - "[ 39/4 ⇜ (79/8 → 633/64) ⇝ 10/1 | note:G4 gain:0.25826834323650777 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", - "[ 39/4 ⇜ (633/64 → 317/32) ⇝ 10/1 | note:Bb3 gain:0.31238795325112695 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", - "[ 39/4 ⇜ (633/64 → 317/32) ⇝ 10/1 | note:D4 gain:0.31238795325112695 clip:1 s:piano release:0.1 pan:0.537037037037037 ]", - "[ 39/4 ⇜ (633/64 → 317/32) ⇝ 10/1 | note:Eb4 gain:0.31238795325112695 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", - "[ 39/4 ⇜ (633/64 → 317/32) ⇝ 10/1 | note:G4 gain:0.31238795325112695 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", - "[ 39/4 ⇜ (317/32 → 635/64) ⇝ 10/1 | note:Bb3 gain:0.31238795325112945 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", - "[ 39/4 ⇜ (317/32 → 635/64) ⇝ 10/1 | note:D4 gain:0.31238795325112945 clip:1 s:piano release:0.1 pan:0.537037037037037 ]", - "[ 39/4 ⇜ (317/32 → 635/64) ⇝ 10/1 | note:Eb4 gain:0.31238795325112945 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", - "[ 39/4 ⇜ (317/32 → 635/64) ⇝ 10/1 | note:G4 gain:0.31238795325112945 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", - "[ 39/4 ⇜ (635/64 → 159/16) ⇝ 10/1 | note:Bb3 gain:0.2582683432365084 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", - "[ 39/4 ⇜ (635/64 → 159/16) ⇝ 10/1 | note:D4 gain:0.2582683432365084 clip:1 s:piano release:0.1 pan:0.537037037037037 ]", - "[ 39/4 ⇜ (635/64 → 159/16) ⇝ 10/1 | note:Eb4 gain:0.2582683432365084 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", - "[ 39/4 ⇜ (635/64 → 159/16) ⇝ 10/1 | note:G4 gain:0.2582683432365084 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", - "[ 39/4 ⇜ (159/16 → 637/64) ⇝ 10/1 | note:Bb3 gain:0.1817316567634933 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", - "[ 39/4 ⇜ (159/16 → 637/64) ⇝ 10/1 | note:D4 gain:0.1817316567634933 clip:1 s:piano release:0.1 pan:0.537037037037037 ]", - "[ 39/4 ⇜ (159/16 → 637/64) ⇝ 10/1 | note:Eb4 gain:0.1817316567634933 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", - "[ 39/4 ⇜ (159/16 → 637/64) ⇝ 10/1 | note:G4 gain:0.1817316567634933 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", - "[ 39/4 ⇜ (637/64 → 319/32) ⇝ 10/1 | note:Bb3 gain:0.12761204674887128 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", - "[ 39/4 ⇜ (637/64 → 319/32) ⇝ 10/1 | note:D4 gain:0.12761204674887128 clip:1 s:piano release:0.1 pan:0.537037037037037 ]", - "[ 39/4 ⇜ (637/64 → 319/32) ⇝ 10/1 | note:Eb4 gain:0.12761204674887128 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", - "[ 39/4 ⇜ (637/64 → 319/32) ⇝ 10/1 | note:G4 gain:0.12761204674887128 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", - "[ 39/4 ⇜ (319/32 → 639/64) ⇝ 10/1 | note:Bb3 gain:0.12761204674887017 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", - "[ 39/4 ⇜ (319/32 → 639/64) ⇝ 10/1 | note:D4 gain:0.12761204674887017 clip:1 s:piano release:0.1 pan:0.537037037037037 ]", - "[ 39/4 ⇜ (319/32 → 639/64) ⇝ 10/1 | note:Eb4 gain:0.12761204674887017 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", - "[ 39/4 ⇜ (319/32 → 639/64) ⇝ 10/1 | note:G4 gain:0.12761204674887017 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", - "[ 39/4 ⇜ (639/64 → 10/1) | note:Bb3 gain:0.18173165676349068 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", - "[ 39/4 ⇜ (639/64 → 10/1) | note:D4 gain:0.18173165676349068 clip:1 s:piano release:0.1 pan:0.537037037037037 ]", - "[ 39/4 ⇜ (639/64 → 10/1) | note:Eb4 gain:0.18173165676349068 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", - "[ 39/4 ⇜ (639/64 → 10/1) | note:G4 gain:0.18173165676349068 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", - "[ (10/1 → 641/64) ⇝ 41/4 | note:F2 gain:0.5165366864730114 clip:1 s:piano release:0.1 pan:0.4398148148148148 ]", - "[ 10/1 ⇜ (641/64 → 321/32) ⇝ 41/4 | note:F2 gain:0.6247759065022567 clip:1 s:piano release:0.1 pan:0.4398148148148148 ]", - "[ 10/1 ⇜ (321/32 → 643/64) ⇝ 41/4 | note:F2 gain:0.6247759065022604 clip:1 s:piano release:0.1 pan:0.4398148148148148 ]", - "[ (281/28 → 643/64) ⇝ 72/7 | note:70 gain:0.062477590650226046 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", - "[ (281/28 → 643/64) ⇝ 72/7 | note:74 gain:0.062477590650226046 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", - "[ (281/28 → 643/64) ⇝ 72/7 | note:75 gain:0.062477590650226046 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", - "[ (281/28 → 643/64) ⇝ 72/7 | note:79 gain:0.062477590650226046 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", - "[ 10/1 ⇜ (643/64 → 161/16) ⇝ 41/4 | note:F2 gain:0.5165366864730206 clip:1 s:piano release:0.1 pan:0.4398148148148148 ]", - "[ 281/28 ⇜ (643/64 → 161/16) ⇝ 72/7 | note:70 gain:0.051653668647302066 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", - "[ 281/28 ⇜ (643/64 → 161/16) ⇝ 72/7 | note:74 gain:0.051653668647302066 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", - "[ 281/28 ⇜ (643/64 → 161/16) ⇝ 72/7 | note:75 gain:0.051653668647302066 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", - "[ 281/28 ⇜ (643/64 → 161/16) ⇝ 72/7 | note:79 gain:0.051653668647302066 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", - "[ 10/1 ⇜ (161/16 → 645/64) ⇝ 41/4 | note:F2 gain:0.3634633135269906 clip:1 s:piano release:0.1 pan:0.4398148148148148 ]", - "[ 281/28 ⇜ (161/16 → 645/64) ⇝ 72/7 | note:70 gain:0.03634633135269906 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", - "[ 281/28 ⇜ (161/16 → 645/64) ⇝ 72/7 | note:74 gain:0.03634633135269906 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", - "[ 281/28 ⇜ (161/16 → 645/64) ⇝ 72/7 | note:75 gain:0.03634633135269906 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", - "[ 281/28 ⇜ (161/16 → 645/64) ⇝ 72/7 | note:79 gain:0.03634633135269906 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", - "[ 10/1 ⇜ (645/64 → 323/32) ⇝ 41/4 | note:F2 gain:0.2552240934977442 clip:1 s:piano release:0.1 pan:0.4398148148148148 ]", - "[ 281/28 ⇜ (645/64 → 323/32) ⇝ 72/7 | note:70 gain:0.025522409349774424 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", - "[ 281/28 ⇜ (645/64 → 323/32) ⇝ 72/7 | note:74 gain:0.025522409349774424 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", - "[ 281/28 ⇜ (645/64 → 323/32) ⇝ 72/7 | note:75 gain:0.025522409349774424 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", - "[ 281/28 ⇜ (645/64 → 323/32) ⇝ 72/7 | note:79 gain:0.025522409349774424 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", - "[ 10/1 ⇜ (323/32 → 647/64) ⇝ 41/4 | note:F2 gain:0.2552240934977431 clip:1 s:piano release:0.1 pan:0.4398148148148148 ]", - "[ 281/28 ⇜ (323/32 → 647/64) ⇝ 72/7 | note:70 gain:0.025522409349774313 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", - "[ 281/28 ⇜ (323/32 → 647/64) ⇝ 72/7 | note:74 gain:0.025522409349774313 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", - "[ 281/28 ⇜ (323/32 → 647/64) ⇝ 72/7 | note:75 gain:0.025522409349774313 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", - "[ 281/28 ⇜ (323/32 → 647/64) ⇝ 72/7 | note:79 gain:0.025522409349774313 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", - "[ 10/1 ⇜ (647/64 → 81/8) ⇝ 41/4 | note:F2 gain:0.36346331352697736 clip:1 s:piano release:0.1 pan:0.4398148148148148 ]", - "[ 281/28 ⇜ (647/64 → 81/8) ⇝ 72/7 | note:70 gain:0.036346331352697735 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", - "[ 281/28 ⇜ (647/64 → 81/8) ⇝ 72/7 | note:74 gain:0.036346331352697735 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", - "[ 281/28 ⇜ (647/64 → 81/8) ⇝ 72/7 | note:75 gain:0.036346331352697735 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", - "[ 281/28 ⇜ (647/64 → 81/8) ⇝ 72/7 | note:79 gain:0.036346331352697735 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", - "[ 10/1 ⇜ (81/8 → 649/64) ⇝ 41/4 | note:F2 gain:0.516536686473018 clip:1 s:piano release:0.1 pan:0.4398148148148148 ]", - "[ 281/28 ⇜ (81/8 → 649/64) ⇝ 72/7 | note:70 gain:0.0516536686473018 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", - "[ 281/28 ⇜ (81/8 → 649/64) ⇝ 72/7 | note:74 gain:0.0516536686473018 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", - "[ 281/28 ⇜ (81/8 → 649/64) ⇝ 72/7 | note:75 gain:0.0516536686473018 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", - "[ 281/28 ⇜ (81/8 → 649/64) ⇝ 72/7 | note:79 gain:0.0516536686473018 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", - "[ (81/8 → 649/64) ⇝ 41/4 | note:F4 gain:0.516536686473018 clip:1 s:piano release:0.1 pan:0.5509259259259259 ]", - "[ (81/8 → 649/64) ⇝ 41/4 | note:C5 gain:0.516536686473018 clip:1 s:piano release:0.1 pan:0.5833333333333333 ]", - "[ (81/8 → 649/64) ⇝ 41/4 | note:Eb5 gain:0.516536686473018 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", - "[ 10/1 ⇜ (649/64 → 325/32) ⇝ 41/4 | note:F2 gain:0.624775906502255 clip:1 s:piano release:0.1 pan:0.4398148148148148 ]", - "[ 281/28 ⇜ (649/64 → 325/32) ⇝ 72/7 | note:70 gain:0.062477590650225505 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", - "[ 281/28 ⇜ (649/64 → 325/32) ⇝ 72/7 | note:74 gain:0.062477590650225505 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", - "[ 281/28 ⇜ (649/64 → 325/32) ⇝ 72/7 | note:75 gain:0.062477590650225505 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", - "[ 281/28 ⇜ (649/64 → 325/32) ⇝ 72/7 | note:79 gain:0.062477590650225505 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", - "[ 81/8 ⇜ (649/64 → 325/32) ⇝ 41/4 | note:F4 gain:0.624775906502255 clip:1 s:piano release:0.1 pan:0.5509259259259259 ]", - "[ 81/8 ⇜ (649/64 → 325/32) ⇝ 41/4 | note:C5 gain:0.624775906502255 clip:1 s:piano release:0.1 pan:0.5833333333333333 ]", - "[ 81/8 ⇜ (649/64 → 325/32) ⇝ 41/4 | note:Eb5 gain:0.624775906502255 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", - "[ 10/1 ⇜ (325/32 → 651/64) ⇝ 41/4 | note:F2 gain:0.6247759065022578 clip:1 s:piano release:0.1 pan:0.4398148148148148 ]", - "[ 281/28 ⇜ (325/32 → 651/64) ⇝ 72/7 | note:70 gain:0.06247759065022578 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", - "[ 281/28 ⇜ (325/32 → 651/64) ⇝ 72/7 | note:74 gain:0.06247759065022578 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", - "[ 281/28 ⇜ (325/32 → 651/64) ⇝ 72/7 | note:75 gain:0.06247759065022578 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", - "[ 281/28 ⇜ (325/32 → 651/64) ⇝ 72/7 | note:79 gain:0.06247759065022578 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", - "[ 81/8 ⇜ (325/32 → 651/64) ⇝ 41/4 | note:F4 gain:0.6247759065022578 clip:1 s:piano release:0.1 pan:0.5509259259259259 ]", - "[ 81/8 ⇜ (325/32 → 651/64) ⇝ 41/4 | note:C5 gain:0.6247759065022578 clip:1 s:piano release:0.1 pan:0.5833333333333333 ]", - "[ 81/8 ⇜ (325/32 → 651/64) ⇝ 41/4 | note:Eb5 gain:0.6247759065022578 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", - "[ 10/1 ⇜ (651/64 → 163/16) ⇝ 41/4 | note:F2 gain:0.5165366864730248 clip:1 s:piano release:0.1 pan:0.4398148148148148 ]", - "[ 281/28 ⇜ (651/64 → 163/16) ⇝ 72/7 | note:70 gain:0.051653668647302475 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", - "[ 281/28 ⇜ (651/64 → 163/16) ⇝ 72/7 | note:74 gain:0.051653668647302475 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", - "[ 281/28 ⇜ (651/64 → 163/16) ⇝ 72/7 | note:75 gain:0.051653668647302475 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", - "[ 281/28 ⇜ (651/64 → 163/16) ⇝ 72/7 | note:79 gain:0.051653668647302475 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", - "[ 81/8 ⇜ (651/64 → 163/16) ⇝ 41/4 | note:F4 gain:0.5165366864730248 clip:1 s:piano release:0.1 pan:0.5509259259259259 ]", - "[ 81/8 ⇜ (651/64 → 163/16) ⇝ 41/4 | note:C5 gain:0.5165366864730248 clip:1 s:piano release:0.1 pan:0.5833333333333333 ]", - "[ 81/8 ⇜ (651/64 → 163/16) ⇝ 41/4 | note:Eb5 gain:0.5165366864730248 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", - "[ 10/1 ⇜ (163/16 → 653/64) ⇝ 41/4 | note:F2 gain:0.363463313526984 clip:1 s:piano release:0.1 pan:0.4398148148148148 ]", - "[ 281/28 ⇜ (163/16 → 653/64) ⇝ 72/7 | note:70 gain:0.0363463313526984 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", - "[ 281/28 ⇜ (163/16 → 653/64) ⇝ 72/7 | note:74 gain:0.0363463313526984 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", - "[ 281/28 ⇜ (163/16 → 653/64) ⇝ 72/7 | note:75 gain:0.0363463313526984 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", - "[ 281/28 ⇜ (163/16 → 653/64) ⇝ 72/7 | note:79 gain:0.0363463313526984 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", - "[ 81/8 ⇜ (163/16 → 653/64) ⇝ 41/4 | note:F4 gain:0.363463313526984 clip:1 s:piano release:0.1 pan:0.5509259259259259 ]", - "[ 81/8 ⇜ (163/16 → 653/64) ⇝ 41/4 | note:C5 gain:0.363463313526984 clip:1 s:piano release:0.1 pan:0.5833333333333333 ]", - "[ 81/8 ⇜ (163/16 → 653/64) ⇝ 41/4 | note:Eb5 gain:0.363463313526984 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", - "[ 10/1 ⇜ (653/64 → 327/32) ⇝ 41/4 | note:F2 gain:0.25522409349774583 clip:1 s:piano release:0.1 pan:0.4398148148148148 ]", - "[ 281/28 ⇜ (653/64 → 327/32) ⇝ 72/7 | note:70 gain:0.025522409349774584 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", - "[ 281/28 ⇜ (653/64 → 327/32) ⇝ 72/7 | note:74 gain:0.025522409349774584 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", - "[ 281/28 ⇜ (653/64 → 327/32) ⇝ 72/7 | note:75 gain:0.025522409349774584 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", - "[ 281/28 ⇜ (653/64 → 327/32) ⇝ 72/7 | note:79 gain:0.025522409349774584 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", - "[ 81/8 ⇜ (653/64 → 327/32) ⇝ 41/4 | note:F4 gain:0.25522409349774583 clip:1 s:piano release:0.1 pan:0.5509259259259259 ]", - "[ 81/8 ⇜ (653/64 → 327/32) ⇝ 41/4 | note:C5 gain:0.25522409349774583 clip:1 s:piano release:0.1 pan:0.5833333333333333 ]", - "[ 81/8 ⇜ (653/64 → 327/32) ⇝ 41/4 | note:Eb5 gain:0.25522409349774583 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", - "[ 10/1 ⇜ (327/32 → 655/64) ⇝ 41/4 | note:F2 gain:0.25522409349773706 clip:1 s:piano release:0.1 pan:0.4398148148148148 ]", - "[ 281/28 ⇜ (327/32 → 655/64) ⇝ 72/7 | note:70 gain:0.025522409349773706 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", - "[ 281/28 ⇜ (327/32 → 655/64) ⇝ 72/7 | note:74 gain:0.025522409349773706 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", - "[ 281/28 ⇜ (327/32 → 655/64) ⇝ 72/7 | note:75 gain:0.025522409349773706 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", - "[ 281/28 ⇜ (327/32 → 655/64) ⇝ 72/7 | note:79 gain:0.025522409349773706 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", - "[ 81/8 ⇜ (327/32 → 655/64) ⇝ 41/4 | note:F4 gain:0.25522409349773706 clip:1 s:piano release:0.1 pan:0.5509259259259259 ]", - "[ 81/8 ⇜ (327/32 → 655/64) ⇝ 41/4 | note:C5 gain:0.25522409349773706 clip:1 s:piano release:0.1 pan:0.5833333333333333 ]", - "[ 81/8 ⇜ (327/32 → 655/64) ⇝ 41/4 | note:Eb5 gain:0.25522409349773706 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", - "[ 10/1 ⇜ (655/64 → 41/4) | note:F2 gain:0.3634633135269838 clip:1 s:piano release:0.1 pan:0.4398148148148148 ]", - "[ 281/28 ⇜ (655/64 → 41/4) ⇝ 72/7 | note:70 gain:0.03634633135269838 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", - "[ 281/28 ⇜ (655/64 → 41/4) ⇝ 72/7 | note:74 gain:0.03634633135269838 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", - "[ 281/28 ⇜ (655/64 → 41/4) ⇝ 72/7 | note:75 gain:0.03634633135269838 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", - "[ 281/28 ⇜ (655/64 → 41/4) ⇝ 72/7 | note:79 gain:0.03634633135269838 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", - "[ 81/8 ⇜ (655/64 → 41/4) | note:F4 gain:0.3634633135269838 clip:1 s:piano release:0.1 pan:0.5509259259259259 ]", - "[ 81/8 ⇜ (655/64 → 41/4) | note:C5 gain:0.3634633135269838 clip:1 s:piano release:0.1 pan:0.5833333333333333 ]", - "[ 81/8 ⇜ (655/64 → 41/4) | note:Eb5 gain:0.3634633135269838 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", - "[ 281/28 ⇜ (41/4 → 657/64) ⇝ 72/7 | note:70 gain:0.051653668647301414 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", - "[ 281/28 ⇜ (41/4 → 657/64) ⇝ 72/7 | note:74 gain:0.051653668647301414 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", - "[ 281/28 ⇜ (41/4 → 657/64) ⇝ 72/7 | note:75 gain:0.051653668647301414 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", - "[ 281/28 ⇜ (41/4 → 657/64) ⇝ 72/7 | note:79 gain:0.051653668647301414 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", - "[ 281/28 ⇜ (657/64 → 329/32) ⇝ 72/7 | note:70 gain:0.06247759065022534 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", - "[ 281/28 ⇜ (657/64 → 329/32) ⇝ 72/7 | note:74 gain:0.06247759065022534 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", - "[ 281/28 ⇜ (657/64 → 329/32) ⇝ 72/7 | note:75 gain:0.06247759065022534 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", - "[ 281/28 ⇜ (657/64 → 329/32) ⇝ 72/7 | note:79 gain:0.06247759065022534 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", - "[ 281/28 ⇜ (329/32 → 72/7) | note:70 gain:0.06247759065022551 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", - "[ 281/28 ⇜ (329/32 → 72/7) | note:74 gain:0.06247759065022551 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", - "[ 281/28 ⇜ (329/32 → 72/7) | note:75 gain:0.06247759065022551 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", - "[ 281/28 ⇜ (329/32 → 72/7) | note:79 gain:0.06247759065022551 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", - "[ (21/2 → 673/64) ⇝ 85/8 | note:C5 gain:0.5165366864730061 clip:1 s:piano release:0.1 pan:0.5833333333333333 ]", - "[ (21/2 → 673/64) ⇝ 85/8 | note:G5 gain:0.5165366864730061 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", - "[ (21/2 → 673/64) ⇝ 85/8 | note:Bb5 gain:0.5165366864730061 clip:1 s:piano release:0.1 pan:0.6296296296296297 ]", - "[ (21/2 → 673/64) ⇝ 43/4 | note:Eb4 gain:0.25826834323650305 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", - "[ (21/2 → 673/64) ⇝ 43/4 | note:G4 gain:0.25826834323650305 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", - "[ (21/2 → 673/64) ⇝ 43/4 | note:Ab4 gain:0.25826834323650305 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", - "[ (21/2 → 673/64) ⇝ 43/4 | note:C5 gain:0.25826834323650305 clip:1 s:piano release:0.1 pan:0.5833333333333333 ]", - "[ (21/2 → 673/64) ⇝ 43/4 | note:F2 gain:0.5165366864730061 clip:1 s:piano release:0.1 pan:0.4398148148148148 ]", - "[ 21/2 ⇜ (673/64 → 337/32) ⇝ 85/8 | note:C5 gain:0.6247759065022587 clip:1 s:piano release:0.1 pan:0.5833333333333333 ]", - "[ 21/2 ⇜ (673/64 → 337/32) ⇝ 85/8 | note:G5 gain:0.6247759065022587 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", - "[ 21/2 ⇜ (673/64 → 337/32) ⇝ 85/8 | note:Bb5 gain:0.6247759065022587 clip:1 s:piano release:0.1 pan:0.6296296296296297 ]", - "[ 21/2 ⇜ (673/64 → 337/32) ⇝ 43/4 | note:Eb4 gain:0.31238795325112934 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", - "[ 21/2 ⇜ (673/64 → 337/32) ⇝ 43/4 | note:G4 gain:0.31238795325112934 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", - "[ 21/2 ⇜ (673/64 → 337/32) ⇝ 43/4 | note:Ab4 gain:0.31238795325112934 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", - "[ 21/2 ⇜ (673/64 → 337/32) ⇝ 43/4 | note:C5 gain:0.31238795325112934 clip:1 s:piano release:0.1 pan:0.5833333333333333 ]", - "[ 21/2 ⇜ (673/64 → 337/32) ⇝ 43/4 | note:F2 gain:0.6247759065022587 clip:1 s:piano release:0.1 pan:0.4398148148148148 ]", - "[ 21/2 ⇜ (337/32 → 675/64) ⇝ 85/8 | note:C5 gain:0.6247759065022583 clip:1 s:piano release:0.1 pan:0.5833333333333333 ]", - "[ 21/2 ⇜ (337/32 → 675/64) ⇝ 85/8 | note:G5 gain:0.6247759065022583 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", - "[ 21/2 ⇜ (337/32 → 675/64) ⇝ 85/8 | note:Bb5 gain:0.6247759065022583 clip:1 s:piano release:0.1 pan:0.6296296296296297 ]", - "[ 21/2 ⇜ (337/32 → 675/64) ⇝ 43/4 | note:Eb4 gain:0.31238795325112917 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", - "[ 21/2 ⇜ (337/32 → 675/64) ⇝ 43/4 | note:G4 gain:0.31238795325112917 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", - "[ 21/2 ⇜ (337/32 → 675/64) ⇝ 43/4 | note:Ab4 gain:0.31238795325112917 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", - "[ 21/2 ⇜ (337/32 → 675/64) ⇝ 43/4 | note:C5 gain:0.31238795325112917 clip:1 s:piano release:0.1 pan:0.5833333333333333 ]", - "[ 21/2 ⇜ (337/32 → 675/64) ⇝ 43/4 | note:F2 gain:0.6247759065022583 clip:1 s:piano release:0.1 pan:0.4398148148148148 ]", - "[ 21/2 ⇜ (675/64 → 169/16) ⇝ 85/8 | note:C5 gain:0.5165366864730262 clip:1 s:piano release:0.1 pan:0.5833333333333333 ]", - "[ 21/2 ⇜ (675/64 → 169/16) ⇝ 85/8 | note:G5 gain:0.5165366864730262 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", - "[ 21/2 ⇜ (675/64 → 169/16) ⇝ 85/8 | note:Bb5 gain:0.5165366864730262 clip:1 s:piano release:0.1 pan:0.6296296296296297 ]", - "[ 21/2 ⇜ (675/64 → 169/16) ⇝ 43/4 | note:Eb4 gain:0.2582683432365131 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", - "[ 21/2 ⇜ (675/64 → 169/16) ⇝ 43/4 | note:G4 gain:0.2582683432365131 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", - "[ 21/2 ⇜ (675/64 → 169/16) ⇝ 43/4 | note:Ab4 gain:0.2582683432365131 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", - "[ 21/2 ⇜ (675/64 → 169/16) ⇝ 43/4 | note:C5 gain:0.2582683432365131 clip:1 s:piano release:0.1 pan:0.5833333333333333 ]", - "[ 21/2 ⇜ (675/64 → 169/16) ⇝ 43/4 | note:F2 gain:0.5165366864730262 clip:1 s:piano release:0.1 pan:0.4398148148148148 ]", - "[ 21/2 ⇜ (169/16 → 677/64) ⇝ 85/8 | note:C5 gain:0.363463313526996 clip:1 s:piano release:0.1 pan:0.5833333333333333 ]", - "[ 21/2 ⇜ (169/16 → 677/64) ⇝ 85/8 | note:G5 gain:0.363463313526996 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", - "[ 21/2 ⇜ (169/16 → 677/64) ⇝ 85/8 | note:Bb5 gain:0.363463313526996 clip:1 s:piano release:0.1 pan:0.6296296296296297 ]", - "[ 21/2 ⇜ (169/16 → 677/64) ⇝ 43/4 | note:Eb4 gain:0.181731656763498 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", - "[ 21/2 ⇜ (169/16 → 677/64) ⇝ 43/4 | note:G4 gain:0.181731656763498 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", - "[ 21/2 ⇜ (169/16 → 677/64) ⇝ 43/4 | note:Ab4 gain:0.181731656763498 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", - "[ 21/2 ⇜ (169/16 → 677/64) ⇝ 43/4 | note:C5 gain:0.181731656763498 clip:1 s:piano release:0.1 pan:0.5833333333333333 ]", - "[ 21/2 ⇜ (169/16 → 677/64) ⇝ 43/4 | note:F2 gain:0.363463313526996 clip:1 s:piano release:0.1 pan:0.4398148148148148 ]", - "[ 21/2 ⇜ (677/64 → 339/32) ⇝ 85/8 | note:C5 gain:0.2552240934977421 clip:1 s:piano release:0.1 pan:0.5833333333333333 ]", - "[ 21/2 ⇜ (677/64 → 339/32) ⇝ 85/8 | note:G5 gain:0.2552240934977421 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", - "[ 21/2 ⇜ (677/64 → 339/32) ⇝ 85/8 | note:Bb5 gain:0.2552240934977421 clip:1 s:piano release:0.1 pan:0.6296296296296297 ]", - "[ 21/2 ⇜ (677/64 → 339/32) ⇝ 43/4 | note:Eb4 gain:0.12761204674887106 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", - "[ 21/2 ⇜ (677/64 → 339/32) ⇝ 43/4 | note:G4 gain:0.12761204674887106 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", - "[ 21/2 ⇜ (677/64 → 339/32) ⇝ 43/4 | note:Ab4 gain:0.12761204674887106 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", - "[ 21/2 ⇜ (677/64 → 339/32) ⇝ 43/4 | note:C5 gain:0.12761204674887106 clip:1 s:piano release:0.1 pan:0.5833333333333333 ]", - "[ 21/2 ⇜ (677/64 → 339/32) ⇝ 43/4 | note:F2 gain:0.2552240934977421 clip:1 s:piano release:0.1 pan:0.4398148148148148 ]", - "[ 21/2 ⇜ (339/32 → 679/64) ⇝ 85/8 | note:C5 gain:0.2552240934977408 clip:1 s:piano release:0.1 pan:0.5833333333333333 ]", - "[ 21/2 ⇜ (339/32 → 679/64) ⇝ 85/8 | note:G5 gain:0.2552240934977408 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", - "[ 21/2 ⇜ (339/32 → 679/64) ⇝ 85/8 | note:Bb5 gain:0.2552240934977408 clip:1 s:piano release:0.1 pan:0.6296296296296297 ]", - "[ 21/2 ⇜ (339/32 → 679/64) ⇝ 43/4 | note:Eb4 gain:0.1276120467488704 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", - "[ 21/2 ⇜ (339/32 → 679/64) ⇝ 43/4 | note:G4 gain:0.1276120467488704 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", - "[ 21/2 ⇜ (339/32 → 679/64) ⇝ 43/4 | note:Ab4 gain:0.1276120467488704 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", - "[ 21/2 ⇜ (339/32 → 679/64) ⇝ 43/4 | note:C5 gain:0.1276120467488704 clip:1 s:piano release:0.1 pan:0.5833333333333333 ]", - "[ 21/2 ⇜ (339/32 → 679/64) ⇝ 43/4 | note:F2 gain:0.2552240934977408 clip:1 s:piano release:0.1 pan:0.4398148148148148 ]", - "[ 21/2 ⇜ (679/64 → 85/8) | note:C5 gain:0.3634633135269719 clip:1 s:piano release:0.1 pan:0.5833333333333333 ]", - "[ 21/2 ⇜ (679/64 → 85/8) | note:G5 gain:0.3634633135269719 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", - "[ 21/2 ⇜ (679/64 → 85/8) | note:Bb5 gain:0.3634633135269719 clip:1 s:piano release:0.1 pan:0.6296296296296297 ]", - "[ 21/2 ⇜ (679/64 → 85/8) ⇝ 43/4 | note:Eb4 gain:0.18173165676348596 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", - "[ 21/2 ⇜ (679/64 → 85/8) ⇝ 43/4 | note:G4 gain:0.18173165676348596 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", - "[ 21/2 ⇜ (679/64 → 85/8) ⇝ 43/4 | note:Ab4 gain:0.18173165676348596 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", - "[ 21/2 ⇜ (679/64 → 85/8) ⇝ 43/4 | note:C5 gain:0.18173165676348596 clip:1 s:piano release:0.1 pan:0.5833333333333333 ]", - "[ 21/2 ⇜ (679/64 → 85/8) ⇝ 43/4 | note:F2 gain:0.3634633135269719 clip:1 s:piano release:0.1 pan:0.4398148148148148 ]", - "[ 21/2 ⇜ (85/8 → 681/64) ⇝ 43/4 | note:Eb4 gain:0.25826834323651154 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", - "[ 21/2 ⇜ (85/8 → 681/64) ⇝ 43/4 | note:G4 gain:0.25826834323651154 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", - "[ 21/2 ⇜ (85/8 → 681/64) ⇝ 43/4 | note:Ab4 gain:0.25826834323651154 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", - "[ 21/2 ⇜ (85/8 → 681/64) ⇝ 43/4 | note:C5 gain:0.25826834323651154 clip:1 s:piano release:0.1 pan:0.5833333333333333 ]", - "[ 21/2 ⇜ (85/8 → 681/64) ⇝ 43/4 | note:F2 gain:0.5165366864730231 clip:1 s:piano release:0.1 pan:0.4398148148148148 ]", - "[ 21/2 ⇜ (681/64 → 341/32) ⇝ 43/4 | note:Eb4 gain:0.31238795325112856 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", - "[ 21/2 ⇜ (681/64 → 341/32) ⇝ 43/4 | note:G4 gain:0.31238795325112856 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", - "[ 21/2 ⇜ (681/64 → 341/32) ⇝ 43/4 | note:Ab4 gain:0.31238795325112856 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", - "[ 21/2 ⇜ (681/64 → 341/32) ⇝ 43/4 | note:C5 gain:0.31238795325112856 clip:1 s:piano release:0.1 pan:0.5833333333333333 ]", - "[ 21/2 ⇜ (681/64 → 341/32) ⇝ 43/4 | note:F2 gain:0.6247759065022571 clip:1 s:piano release:0.1 pan:0.4398148148148148 ]", - "[ 21/2 ⇜ (341/32 → 683/64) ⇝ 43/4 | note:Eb4 gain:0.31238795325113 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", - "[ 21/2 ⇜ (341/32 → 683/64) ⇝ 43/4 | note:G4 gain:0.31238795325113 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", - "[ 21/2 ⇜ (341/32 → 683/64) ⇝ 43/4 | note:Ab4 gain:0.31238795325113 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", - "[ 21/2 ⇜ (341/32 → 683/64) ⇝ 43/4 | note:C5 gain:0.31238795325113 clip:1 s:piano release:0.1 pan:0.5833333333333333 ]", - "[ 21/2 ⇜ (341/32 → 683/64) ⇝ 43/4 | note:F2 gain:0.62477590650226 clip:1 s:piano release:0.1 pan:0.4398148148148148 ]", - "[ 21/2 ⇜ (683/64 → 171/16) ⇝ 43/4 | note:Eb4 gain:0.25826834323651504 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", - "[ 21/2 ⇜ (683/64 → 171/16) ⇝ 43/4 | note:G4 gain:0.25826834323651504 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", - "[ 21/2 ⇜ (683/64 → 171/16) ⇝ 43/4 | note:Ab4 gain:0.25826834323651504 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", - "[ 21/2 ⇜ (683/64 → 171/16) ⇝ 43/4 | note:C5 gain:0.25826834323651504 clip:1 s:piano release:0.1 pan:0.5833333333333333 ]", - "[ 21/2 ⇜ (683/64 → 171/16) ⇝ 43/4 | note:F2 gain:0.5165366864730301 clip:1 s:piano release:0.1 pan:0.4398148148148148 ]", - "[ 21/2 ⇜ (171/16 → 685/64) ⇝ 43/4 | note:Eb4 gain:0.18173165676348946 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", - "[ 21/2 ⇜ (171/16 → 685/64) ⇝ 43/4 | note:G4 gain:0.18173165676348946 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", - "[ 21/2 ⇜ (171/16 → 685/64) ⇝ 43/4 | note:Ab4 gain:0.18173165676348946 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", - "[ 21/2 ⇜ (171/16 → 685/64) ⇝ 43/4 | note:C5 gain:0.18173165676348946 clip:1 s:piano release:0.1 pan:0.5833333333333333 ]", - "[ 21/2 ⇜ (171/16 → 685/64) ⇝ 43/4 | note:F2 gain:0.3634633135269789 clip:1 s:piano release:0.1 pan:0.4398148148148148 ]", - "[ 21/2 ⇜ (685/64 → 343/32) ⇝ 43/4 | note:Eb4 gain:0.12761204674887186 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", - "[ 21/2 ⇜ (685/64 → 343/32) ⇝ 43/4 | note:G4 gain:0.12761204674887186 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", - "[ 21/2 ⇜ (685/64 → 343/32) ⇝ 43/4 | note:Ab4 gain:0.12761204674887186 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", - "[ 21/2 ⇜ (685/64 → 343/32) ⇝ 43/4 | note:C5 gain:0.12761204674887186 clip:1 s:piano release:0.1 pan:0.5833333333333333 ]", - "[ 21/2 ⇜ (685/64 → 343/32) ⇝ 43/4 | note:F2 gain:0.2552240934977437 clip:1 s:piano release:0.1 pan:0.4398148148148148 ]", - "[ 21/2 ⇜ (343/32 → 687/64) ⇝ 43/4 | note:Eb4 gain:0.12761204674886958 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", - "[ 21/2 ⇜ (343/32 → 687/64) ⇝ 43/4 | note:G4 gain:0.12761204674886958 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", - "[ 21/2 ⇜ (343/32 → 687/64) ⇝ 43/4 | note:Ab4 gain:0.12761204674886958 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", - "[ 21/2 ⇜ (343/32 → 687/64) ⇝ 43/4 | note:C5 gain:0.12761204674886958 clip:1 s:piano release:0.1 pan:0.5833333333333333 ]", - "[ 21/2 ⇜ (343/32 → 687/64) ⇝ 43/4 | note:F2 gain:0.25522409349773917 clip:1 s:piano release:0.1 pan:0.4398148148148148 ]", - "[ 21/2 ⇜ (687/64 → 43/4) | note:Eb4 gain:0.18173165676348396 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", - "[ 21/2 ⇜ (687/64 → 43/4) | note:G4 gain:0.18173165676348396 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", - "[ 21/2 ⇜ (687/64 → 43/4) | note:Ab4 gain:0.18173165676348396 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", - "[ 21/2 ⇜ (687/64 → 43/4) | note:C5 gain:0.18173165676348396 clip:1 s:piano release:0.1 pan:0.5833333333333333 ]", - "[ 21/2 ⇜ (687/64 → 43/4) | note:F2 gain:0.3634633135269679 clip:1 s:piano release:0.1 pan:0.4398148148148148 ]", - "[ (43/4 → 689/64) ⇝ 87/8 | note:F4 gain:0.5165366864730191 clip:1 s:piano release:0.1 pan:0.5509259259259259 ]", - "[ (43/4 → 689/64) ⇝ 87/8 | note:C5 gain:0.5165366864730191 clip:1 s:piano release:0.1 pan:0.5833333333333333 ]", - "[ (43/4 → 689/64) ⇝ 87/8 | note:Eb5 gain:0.5165366864730191 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", - "[ 43/4 ⇜ (689/64 → 345/32) ⇝ 87/8 | note:F4 gain:0.6247759065022556 clip:1 s:piano release:0.1 pan:0.5509259259259259 ]", - "[ 43/4 ⇜ (689/64 → 345/32) ⇝ 87/8 | note:C5 gain:0.6247759065022556 clip:1 s:piano release:0.1 pan:0.5833333333333333 ]", - "[ 43/4 ⇜ (689/64 → 345/32) ⇝ 87/8 | note:Eb5 gain:0.6247759065022556 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", - "[ 43/4 ⇜ (345/32 → 691/64) ⇝ 87/8 | note:F4 gain:0.6247759065022618 clip:1 s:piano release:0.1 pan:0.5509259259259259 ]", - "[ 43/4 ⇜ (345/32 → 691/64) ⇝ 87/8 | note:C5 gain:0.6247759065022618 clip:1 s:piano release:0.1 pan:0.5833333333333333 ]", - "[ 43/4 ⇜ (345/32 → 691/64) ⇝ 87/8 | note:Eb5 gain:0.6247759065022618 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", - "[ (151/14 → 691/64) ⇝ 309/28 | note:75 gain:0.06247759065022618 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", - "[ (151/14 → 691/64) ⇝ 309/28 | note:79 gain:0.06247759065022618 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", - "[ (151/14 → 691/64) ⇝ 309/28 | note:80 gain:0.06247759065022618 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", - "[ (151/14 → 691/64) ⇝ 309/28 | note:84 gain:0.06247759065022618 clip:1 s:piano release:0.1 pan:0.6388888888888888 ]", - "[ 43/4 ⇜ (691/64 → 173/16) ⇝ 87/8 | note:F4 gain:0.5165366864730131 clip:1 s:piano release:0.1 pan:0.5509259259259259 ]", - "[ 43/4 ⇜ (691/64 → 173/16) ⇝ 87/8 | note:C5 gain:0.5165366864730131 clip:1 s:piano release:0.1 pan:0.5833333333333333 ]", - "[ 43/4 ⇜ (691/64 → 173/16) ⇝ 87/8 | note:Eb5 gain:0.5165366864730131 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", - "[ 151/14 ⇜ (691/64 → 173/16) ⇝ 309/28 | note:75 gain:0.05165366864730131 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", - "[ 151/14 ⇜ (691/64 → 173/16) ⇝ 309/28 | note:79 gain:0.05165366864730131 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", - "[ 151/14 ⇜ (691/64 → 173/16) ⇝ 309/28 | note:80 gain:0.05165366864730131 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", - "[ 151/14 ⇜ (691/64 → 173/16) ⇝ 309/28 | note:84 gain:0.05165366864730131 clip:1 s:piano release:0.1 pan:0.6388888888888888 ]", - "[ 43/4 ⇜ (173/16 → 693/64) ⇝ 87/8 | note:F4 gain:0.3634633135269829 clip:1 s:piano release:0.1 pan:0.5509259259259259 ]", - "[ 43/4 ⇜ (173/16 → 693/64) ⇝ 87/8 | note:C5 gain:0.3634633135269829 clip:1 s:piano release:0.1 pan:0.5833333333333333 ]", - "[ 43/4 ⇜ (173/16 → 693/64) ⇝ 87/8 | note:Eb5 gain:0.3634633135269829 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", - "[ 151/14 ⇜ (173/16 → 693/64) ⇝ 309/28 | note:75 gain:0.03634633135269829 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", - "[ 151/14 ⇜ (173/16 → 693/64) ⇝ 309/28 | note:79 gain:0.03634633135269829 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", - "[ 151/14 ⇜ (173/16 → 693/64) ⇝ 309/28 | note:80 gain:0.03634633135269829 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", - "[ 151/14 ⇜ (173/16 → 693/64) ⇝ 309/28 | note:84 gain:0.03634633135269829 clip:1 s:piano release:0.1 pan:0.6388888888888888 ]", - "[ 43/4 ⇜ (693/64 → 347/32) ⇝ 87/8 | note:F4 gain:0.2552240934977454 clip:1 s:piano release:0.1 pan:0.5509259259259259 ]", - "[ 43/4 ⇜ (693/64 → 347/32) ⇝ 87/8 | note:C5 gain:0.2552240934977454 clip:1 s:piano release:0.1 pan:0.5833333333333333 ]", - "[ 43/4 ⇜ (693/64 → 347/32) ⇝ 87/8 | note:Eb5 gain:0.2552240934977454 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", - "[ 151/14 ⇜ (693/64 → 347/32) ⇝ 309/28 | note:75 gain:0.02552240934977454 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", - "[ 151/14 ⇜ (693/64 → 347/32) ⇝ 309/28 | note:79 gain:0.02552240934977454 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", - "[ 151/14 ⇜ (693/64 → 347/32) ⇝ 309/28 | note:80 gain:0.02552240934977454 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", - "[ 151/14 ⇜ (693/64 → 347/32) ⇝ 309/28 | note:84 gain:0.02552240934977454 clip:1 s:piano release:0.1 pan:0.6388888888888888 ]", - "[ 43/4 ⇜ (347/32 → 695/64) ⇝ 87/8 | note:F4 gain:0.2552240934977375 clip:1 s:piano release:0.1 pan:0.5509259259259259 ]", - "[ 43/4 ⇜ (347/32 → 695/64) ⇝ 87/8 | note:C5 gain:0.2552240934977375 clip:1 s:piano release:0.1 pan:0.5833333333333333 ]", - "[ 43/4 ⇜ (347/32 → 695/64) ⇝ 87/8 | note:Eb5 gain:0.2552240934977375 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", - "[ 151/14 ⇜ (347/32 → 695/64) ⇝ 309/28 | note:75 gain:0.02552240934977375 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", - "[ 151/14 ⇜ (347/32 → 695/64) ⇝ 309/28 | note:79 gain:0.02552240934977375 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", - "[ 151/14 ⇜ (347/32 → 695/64) ⇝ 309/28 | note:80 gain:0.02552240934977375 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", - "[ 151/14 ⇜ (347/32 → 695/64) ⇝ 309/28 | note:84 gain:0.02552240934977375 clip:1 s:piano release:0.1 pan:0.6388888888888888 ]", - "[ 43/4 ⇜ (695/64 → 87/8) | note:F4 gain:0.3634633135269849 clip:1 s:piano release:0.1 pan:0.5509259259259259 ]", - "[ 43/4 ⇜ (695/64 → 87/8) | note:C5 gain:0.3634633135269849 clip:1 s:piano release:0.1 pan:0.5833333333333333 ]", - "[ 43/4 ⇜ (695/64 → 87/8) | note:Eb5 gain:0.3634633135269849 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", - "[ 151/14 ⇜ (695/64 → 87/8) ⇝ 309/28 | note:75 gain:0.03634633135269849 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", - "[ 151/14 ⇜ (695/64 → 87/8) ⇝ 309/28 | note:79 gain:0.03634633135269849 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", - "[ 151/14 ⇜ (695/64 → 87/8) ⇝ 309/28 | note:80 gain:0.03634633135269849 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", - "[ 151/14 ⇜ (695/64 → 87/8) ⇝ 309/28 | note:84 gain:0.03634633135269849 clip:1 s:piano release:0.1 pan:0.6388888888888888 ]", - "[ 151/14 ⇜ (87/8 → 697/64) ⇝ 309/28 | note:75 gain:0.05165366864730151 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", - "[ 151/14 ⇜ (87/8 → 697/64) ⇝ 309/28 | note:79 gain:0.05165366864730151 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", - "[ 151/14 ⇜ (87/8 → 697/64) ⇝ 309/28 | note:80 gain:0.05165366864730151 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", - "[ 151/14 ⇜ (87/8 → 697/64) ⇝ 309/28 | note:84 gain:0.05165366864730151 clip:1 s:piano release:0.1 pan:0.6388888888888888 ]", - "[ 151/14 ⇜ (697/64 → 349/32) ⇝ 309/28 | note:75 gain:0.06247759065022538 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", - "[ 151/14 ⇜ (697/64 → 349/32) ⇝ 309/28 | note:79 gain:0.06247759065022538 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", - "[ 151/14 ⇜ (697/64 → 349/32) ⇝ 309/28 | note:80 gain:0.06247759065022538 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", - "[ 151/14 ⇜ (697/64 → 349/32) ⇝ 309/28 | note:84 gain:0.06247759065022538 clip:1 s:piano release:0.1 pan:0.6388888888888888 ]", - "[ 151/14 ⇜ (349/32 → 699/64) ⇝ 309/28 | note:75 gain:0.06247759065022634 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", - "[ 151/14 ⇜ (349/32 → 699/64) ⇝ 309/28 | note:79 gain:0.06247759065022634 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", - "[ 151/14 ⇜ (349/32 → 699/64) ⇝ 309/28 | note:80 gain:0.06247759065022634 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", - "[ 151/14 ⇜ (349/32 → 699/64) ⇝ 309/28 | note:84 gain:0.06247759065022634 clip:1 s:piano release:0.1 pan:0.6388888888888888 ]", - "[ 151/14 ⇜ (699/64 → 175/16) ⇝ 309/28 | note:75 gain:0.05165366864730171 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", - "[ 151/14 ⇜ (699/64 → 175/16) ⇝ 309/28 | note:79 gain:0.05165366864730171 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", - "[ 151/14 ⇜ (699/64 → 175/16) ⇝ 309/28 | note:80 gain:0.05165366864730171 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", - "[ 151/14 ⇜ (699/64 → 175/16) ⇝ 309/28 | note:84 gain:0.05165366864730171 clip:1 s:piano release:0.1 pan:0.6388888888888888 ]", - "[ 151/14 ⇜ (175/16 → 701/64) ⇝ 309/28 | note:75 gain:0.03634633135269869 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", - "[ 151/14 ⇜ (175/16 → 701/64) ⇝ 309/28 | note:79 gain:0.03634633135269869 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", - "[ 151/14 ⇜ (175/16 → 701/64) ⇝ 309/28 | note:80 gain:0.03634633135269869 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", - "[ 151/14 ⇜ (175/16 → 701/64) ⇝ 309/28 | note:84 gain:0.03634633135269869 clip:1 s:piano release:0.1 pan:0.6388888888888888 ]", - "[ 151/14 ⇜ (701/64 → 351/32) ⇝ 309/28 | note:75 gain:0.025522409349774705 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", - "[ 151/14 ⇜ (701/64 → 351/32) ⇝ 309/28 | note:79 gain:0.025522409349774705 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", - "[ 151/14 ⇜ (701/64 → 351/32) ⇝ 309/28 | note:80 gain:0.025522409349774705 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", - "[ 151/14 ⇜ (701/64 → 351/32) ⇝ 309/28 | note:84 gain:0.025522409349774705 clip:1 s:piano release:0.1 pan:0.6388888888888888 ]", - "[ 151/14 ⇜ (351/32 → 703/64) ⇝ 309/28 | note:75 gain:0.025522409349774455 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", - "[ 151/14 ⇜ (351/32 → 703/64) ⇝ 309/28 | note:79 gain:0.025522409349774455 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", - "[ 151/14 ⇜ (351/32 → 703/64) ⇝ 309/28 | note:80 gain:0.025522409349774455 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", - "[ 151/14 ⇜ (351/32 → 703/64) ⇝ 309/28 | note:84 gain:0.025522409349774455 clip:1 s:piano release:0.1 pan:0.6388888888888888 ]", - "[ 151/14 ⇜ (703/64 → 11/1) ⇝ 309/28 | note:75 gain:0.036346331352698096 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", - "[ 151/14 ⇜ (703/64 → 11/1) ⇝ 309/28 | note:79 gain:0.036346331352698096 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", - "[ 151/14 ⇜ (703/64 → 11/1) ⇝ 309/28 | note:80 gain:0.036346331352698096 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", - "[ 151/14 ⇜ (703/64 → 11/1) ⇝ 309/28 | note:84 gain:0.036346331352698096 clip:1 s:piano release:0.1 pan:0.6388888888888888 ]", - "[ 151/14 ⇜ (11/1 → 705/64) ⇝ 309/28 | note:75 gain:0.051653668647301115 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", - "[ 151/14 ⇜ (11/1 → 705/64) ⇝ 309/28 | note:79 gain:0.051653668647301115 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", - "[ 151/14 ⇜ (11/1 → 705/64) ⇝ 309/28 | note:80 gain:0.051653668647301115 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", - "[ 151/14 ⇜ (11/1 → 705/64) ⇝ 309/28 | note:84 gain:0.051653668647301115 clip:1 s:piano release:0.1 pan:0.6388888888888888 ]", - "[ (11/1 → 705/64) ⇝ 45/4 | note:F2 gain:0.5165366864730111 clip:1 s:piano release:0.1 pan:0.4398148148148148 ]", - "[ 151/14 ⇜ (705/64 → 353/32) ⇝ 309/28 | note:75 gain:0.06247759065022521 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", - "[ 151/14 ⇜ (705/64 → 353/32) ⇝ 309/28 | note:79 gain:0.06247759065022521 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", - "[ 151/14 ⇜ (705/64 → 353/32) ⇝ 309/28 | note:80 gain:0.06247759065022521 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", - "[ 151/14 ⇜ (705/64 → 353/32) ⇝ 309/28 | note:84 gain:0.06247759065022521 clip:1 s:piano release:0.1 pan:0.6388888888888888 ]", - "[ 11/1 ⇜ (705/64 → 353/32) ⇝ 45/4 | note:F2 gain:0.6247759065022521 clip:1 s:piano release:0.1 pan:0.4398148148148148 ]", - "[ 151/14 ⇜ (353/32 → 309/28) | note:75 gain:0.06247759065022562 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", - "[ 151/14 ⇜ (353/32 → 309/28) | note:79 gain:0.06247759065022562 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", - "[ 151/14 ⇜ (353/32 → 309/28) | note:80 gain:0.06247759065022562 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", - "[ 151/14 ⇜ (353/32 → 309/28) | note:84 gain:0.06247759065022562 clip:1 s:piano release:0.1 pan:0.6388888888888888 ]", - "[ 11/1 ⇜ (353/32 → 707/64) ⇝ 45/4 | note:F2 gain:0.6247759065022562 clip:1 s:piano release:0.1 pan:0.4398148148148148 ]", - "[ 11/1 ⇜ (707/64 → 177/16) ⇝ 45/4 | note:F2 gain:0.516536686473021 clip:1 s:piano release:0.1 pan:0.4398148148148148 ]", - "[ 11/1 ⇜ (177/16 → 709/64) ⇝ 45/4 | note:F2 gain:0.3634633135269909 clip:1 s:piano release:0.1 pan:0.4398148148148148 ]", - "[ 11/1 ⇜ (709/64 → 355/32) ⇝ 45/4 | note:F2 gain:0.25522409349774 clip:1 s:piano release:0.1 pan:0.4398148148148148 ]", - "[ 11/1 ⇜ (355/32 → 711/64) ⇝ 45/4 | note:F2 gain:0.25522409349774294 clip:1 s:piano release:0.1 pan:0.4398148148148148 ]", - "[ 11/1 ⇜ (711/64 → 89/8) ⇝ 45/4 | note:F2 gain:0.36346331352697697 clip:1 s:piano release:0.1 pan:0.4398148148148148 ]", - "[ 11/1 ⇜ (89/8 → 713/64) ⇝ 45/4 | note:F2 gain:0.5165366864730071 clip:1 s:piano release:0.1 pan:0.4398148148148148 ]", - "[ (89/8 → 713/64) ⇝ 45/4 | note:F4 gain:0.5165366864730071 clip:1 s:piano release:0.1 pan:0.5509259259259259 ]", - "[ (89/8 → 713/64) ⇝ 45/4 | note:C5 gain:0.5165366864730071 clip:1 s:piano release:0.1 pan:0.5833333333333333 ]", - "[ (89/8 → 713/64) ⇝ 45/4 | note:Eb5 gain:0.5165366864730071 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", - "[ 11/1 ⇜ (713/64 → 357/32) ⇝ 45/4 | note:F2 gain:0.6247759065022592 clip:1 s:piano release:0.1 pan:0.4398148148148148 ]", - "[ 89/8 ⇜ (713/64 → 357/32) ⇝ 45/4 | note:F4 gain:0.6247759065022592 clip:1 s:piano release:0.1 pan:0.5509259259259259 ]", - "[ 89/8 ⇜ (713/64 → 357/32) ⇝ 45/4 | note:C5 gain:0.6247759065022592 clip:1 s:piano release:0.1 pan:0.5833333333333333 ]", - "[ 89/8 ⇜ (713/64 → 357/32) ⇝ 45/4 | note:Eb5 gain:0.6247759065022592 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", - "[ 11/1 ⇜ (357/32 → 715/64) ⇝ 45/4 | note:F2 gain:0.624775906502258 clip:1 s:piano release:0.1 pan:0.4398148148148148 ]", - "[ 89/8 ⇜ (357/32 → 715/64) ⇝ 45/4 | note:F4 gain:0.624775906502258 clip:1 s:piano release:0.1 pan:0.5509259259259259 ]", - "[ 89/8 ⇜ (357/32 → 715/64) ⇝ 45/4 | note:C5 gain:0.624775906502258 clip:1 s:piano release:0.1 pan:0.5833333333333333 ]", - "[ 89/8 ⇜ (357/32 → 715/64) ⇝ 45/4 | note:Eb5 gain:0.624775906502258 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", - "[ 11/1 ⇜ (715/64 → 179/16) ⇝ 45/4 | note:F2 gain:0.5165366864730251 clip:1 s:piano release:0.1 pan:0.4398148148148148 ]", - "[ 89/8 ⇜ (715/64 → 179/16) ⇝ 45/4 | note:F4 gain:0.5165366864730251 clip:1 s:piano release:0.1 pan:0.5509259259259259 ]", - "[ 89/8 ⇜ (715/64 → 179/16) ⇝ 45/4 | note:C5 gain:0.5165366864730251 clip:1 s:piano release:0.1 pan:0.5833333333333333 ]", - "[ 89/8 ⇜ (715/64 → 179/16) ⇝ 45/4 | note:Eb5 gain:0.5165366864730251 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", - "[ 11/1 ⇜ (179/16 → 717/64) ⇝ 45/4 | note:F2 gain:0.3634633135269949 clip:1 s:piano release:0.1 pan:0.4398148148148148 ]", - "[ 89/8 ⇜ (179/16 → 717/64) ⇝ 45/4 | note:F4 gain:0.3634633135269949 clip:1 s:piano release:0.1 pan:0.5509259259259259 ]", - "[ 89/8 ⇜ (179/16 → 717/64) ⇝ 45/4 | note:C5 gain:0.3634633135269949 clip:1 s:piano release:0.1 pan:0.5833333333333333 ]", - "[ 89/8 ⇜ (179/16 → 717/64) ⇝ 45/4 | note:Eb5 gain:0.3634633135269949 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", - "[ 11/1 ⇜ (717/64 → 359/32) ⇝ 45/4 | note:F2 gain:0.25522409349774167 clip:1 s:piano release:0.1 pan:0.4398148148148148 ]", - "[ 89/8 ⇜ (717/64 → 359/32) ⇝ 45/4 | note:F4 gain:0.25522409349774167 clip:1 s:piano release:0.1 pan:0.5509259259259259 ]", - "[ 89/8 ⇜ (717/64 → 359/32) ⇝ 45/4 | note:C5 gain:0.25522409349774167 clip:1 s:piano release:0.1 pan:0.5833333333333333 ]", - "[ 89/8 ⇜ (717/64 → 359/32) ⇝ 45/4 | note:Eb5 gain:0.25522409349774167 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", - "[ 11/1 ⇜ (359/32 → 719/64) ⇝ 45/4 | note:F2 gain:0.2552240934977413 clip:1 s:piano release:0.1 pan:0.4398148148148148 ]", - "[ 89/8 ⇜ (359/32 → 719/64) ⇝ 45/4 | note:F4 gain:0.2552240934977413 clip:1 s:piano release:0.1 pan:0.5509259259259259 ]", - "[ 89/8 ⇜ (359/32 → 719/64) ⇝ 45/4 | note:C5 gain:0.2552240934977413 clip:1 s:piano release:0.1 pan:0.5833333333333333 ]", - "[ 89/8 ⇜ (359/32 → 719/64) ⇝ 45/4 | note:Eb5 gain:0.2552240934977413 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", - "[ 11/1 ⇜ (719/64 → 45/4) | note:F2 gain:0.363463313526973 clip:1 s:piano release:0.1 pan:0.4398148148148148 ]", - "[ 89/8 ⇜ (719/64 → 45/4) | note:F4 gain:0.363463313526973 clip:1 s:piano release:0.1 pan:0.5509259259259259 ]", - "[ 89/8 ⇜ (719/64 → 45/4) | note:C5 gain:0.363463313526973 clip:1 s:piano release:0.1 pan:0.5833333333333333 ]", - "[ 89/8 ⇜ (719/64 → 45/4) | note:Eb5 gain:0.363463313526973 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", - "[ (45/4 → 721/64) ⇝ 23/2 | note:Eb4 gain:0.2582683432365121 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", - "[ (45/4 → 721/64) ⇝ 23/2 | note:G4 gain:0.2582683432365121 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", - "[ (45/4 → 721/64) ⇝ 23/2 | note:Ab4 gain:0.2582683432365121 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", - "[ (45/4 → 721/64) ⇝ 23/2 | note:C5 gain:0.2582683432365121 clip:1 s:piano release:0.1 pan:0.5833333333333333 ]", - "[ 45/4 ⇜ (721/64 → 361/32) ⇝ 23/2 | note:Eb4 gain:0.3123879532511288 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", - "[ 45/4 ⇜ (721/64 → 361/32) ⇝ 23/2 | note:G4 gain:0.3123879532511288 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", - "[ 45/4 ⇜ (721/64 → 361/32) ⇝ 23/2 | note:Ab4 gain:0.3123879532511288 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", - "[ 45/4 ⇜ (721/64 → 361/32) ⇝ 23/2 | note:C5 gain:0.3123879532511288 clip:1 s:piano release:0.1 pan:0.5833333333333333 ]", - "[ 45/4 ⇜ (361/32 → 723/64) ⇝ 23/2 | note:Eb4 gain:0.3123879532511298 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", - "[ 45/4 ⇜ (361/32 → 723/64) ⇝ 23/2 | note:G4 gain:0.3123879532511298 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", - "[ 45/4 ⇜ (361/32 → 723/64) ⇝ 23/2 | note:Ab4 gain:0.3123879532511298 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", - "[ 45/4 ⇜ (361/32 → 723/64) ⇝ 23/2 | note:C5 gain:0.3123879532511298 clip:1 s:piano release:0.1 pan:0.5833333333333333 ]", - "[ 45/4 ⇜ (723/64 → 181/16) ⇝ 23/2 | note:Eb4 gain:0.2582683432365145 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", - "[ 45/4 ⇜ (723/64 → 181/16) ⇝ 23/2 | note:G4 gain:0.2582683432365145 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", - "[ 45/4 ⇜ (723/64 → 181/16) ⇝ 23/2 | note:Ab4 gain:0.2582683432365145 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", - "[ 45/4 ⇜ (723/64 → 181/16) ⇝ 23/2 | note:C5 gain:0.2582683432365145 clip:1 s:piano release:0.1 pan:0.5833333333333333 ]", - "[ 45/4 ⇜ (181/16 → 725/64) ⇝ 23/2 | note:Eb4 gain:0.18173165676348893 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", - "[ 45/4 ⇜ (181/16 → 725/64) ⇝ 23/2 | note:G4 gain:0.18173165676348893 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", - "[ 45/4 ⇜ (181/16 → 725/64) ⇝ 23/2 | note:Ab4 gain:0.18173165676348893 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", - "[ 45/4 ⇜ (181/16 → 725/64) ⇝ 23/2 | note:C5 gain:0.18173165676348893 clip:1 s:piano release:0.1 pan:0.5833333333333333 ]", - "[ 45/4 ⇜ (725/64 → 363/32) ⇝ 23/2 | note:Eb4 gain:0.12761204674887164 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", - "[ 45/4 ⇜ (725/64 → 363/32) ⇝ 23/2 | note:G4 gain:0.12761204674887164 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", - "[ 45/4 ⇜ (725/64 → 363/32) ⇝ 23/2 | note:Ab4 gain:0.12761204674887164 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", - "[ 45/4 ⇜ (725/64 → 363/32) ⇝ 23/2 | note:C5 gain:0.12761204674887164 clip:1 s:piano release:0.1 pan:0.5833333333333333 ]", - "[ 45/4 ⇜ (363/32 → 727/64) ⇝ 23/2 | note:Eb4 gain:0.1276120467488698 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", - "[ 45/4 ⇜ (363/32 → 727/64) ⇝ 23/2 | note:G4 gain:0.1276120467488698 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", - "[ 45/4 ⇜ (363/32 → 727/64) ⇝ 23/2 | note:Ab4 gain:0.1276120467488698 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", - "[ 45/4 ⇜ (363/32 → 727/64) ⇝ 23/2 | note:C5 gain:0.1276120467488698 clip:1 s:piano release:0.1 pan:0.5833333333333333 ]", - "[ 45/4 ⇜ (727/64 → 91/8) ⇝ 23/2 | note:Eb4 gain:0.1817316567634845 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", - "[ 45/4 ⇜ (727/64 → 91/8) ⇝ 23/2 | note:G4 gain:0.1817316567634845 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", - "[ 45/4 ⇜ (727/64 → 91/8) ⇝ 23/2 | note:Ab4 gain:0.1817316567634845 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", - "[ 45/4 ⇜ (727/64 → 91/8) ⇝ 23/2 | note:C5 gain:0.1817316567634845 clip:1 s:piano release:0.1 pan:0.5833333333333333 ]", - "[ 45/4 ⇜ (91/8 → 729/64) ⇝ 23/2 | note:Eb4 gain:0.25826834323651005 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", - "[ 45/4 ⇜ (91/8 → 729/64) ⇝ 23/2 | note:G4 gain:0.25826834323651005 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", - "[ 45/4 ⇜ (91/8 → 729/64) ⇝ 23/2 | note:Ab4 gain:0.25826834323651005 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", - "[ 45/4 ⇜ (91/8 → 729/64) ⇝ 23/2 | note:C5 gain:0.25826834323651005 clip:1 s:piano release:0.1 pan:0.5833333333333333 ]", - "[ 45/4 ⇜ (729/64 → 365/32) ⇝ 23/2 | note:Eb4 gain:0.31238795325112795 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", - "[ 45/4 ⇜ (729/64 → 365/32) ⇝ 23/2 | note:G4 gain:0.31238795325112795 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", - "[ 45/4 ⇜ (729/64 → 365/32) ⇝ 23/2 | note:Ab4 gain:0.31238795325112795 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", - "[ 45/4 ⇜ (729/64 → 365/32) ⇝ 23/2 | note:C5 gain:0.31238795325112795 clip:1 s:piano release:0.1 pan:0.5833333333333333 ]", - "[ 45/4 ⇜ (365/32 → 731/64) ⇝ 23/2 | note:Eb4 gain:0.3123879532511306 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", - "[ 45/4 ⇜ (365/32 → 731/64) ⇝ 23/2 | note:G4 gain:0.3123879532511306 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", - "[ 45/4 ⇜ (365/32 → 731/64) ⇝ 23/2 | note:Ab4 gain:0.3123879532511306 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", - "[ 45/4 ⇜ (365/32 → 731/64) ⇝ 23/2 | note:C5 gain:0.3123879532511306 clip:1 s:piano release:0.1 pan:0.5833333333333333 ]", - "[ 45/4 ⇜ (731/64 → 183/16) ⇝ 23/2 | note:Eb4 gain:0.258268343236506 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", - "[ 45/4 ⇜ (731/64 → 183/16) ⇝ 23/2 | note:G4 gain:0.258268343236506 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", - "[ 45/4 ⇜ (731/64 → 183/16) ⇝ 23/2 | note:Ab4 gain:0.258268343236506 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", - "[ 45/4 ⇜ (731/64 → 183/16) ⇝ 23/2 | note:C5 gain:0.258268343236506 clip:1 s:piano release:0.1 pan:0.5833333333333333 ]", - "[ 45/4 ⇜ (183/16 → 733/64) ⇝ 23/2 | note:Eb4 gain:0.18173165676349093 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", - "[ 45/4 ⇜ (183/16 → 733/64) ⇝ 23/2 | note:G4 gain:0.18173165676349093 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", - "[ 45/4 ⇜ (183/16 → 733/64) ⇝ 23/2 | note:Ab4 gain:0.18173165676349093 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", - "[ 45/4 ⇜ (183/16 → 733/64) ⇝ 23/2 | note:C5 gain:0.18173165676349093 clip:1 s:piano release:0.1 pan:0.5833333333333333 ]", - "[ 45/4 ⇜ (733/64 → 367/32) ⇝ 23/2 | note:Eb4 gain:0.12761204674887247 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", - "[ 45/4 ⇜ (733/64 → 367/32) ⇝ 23/2 | note:G4 gain:0.12761204674887247 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", - "[ 45/4 ⇜ (733/64 → 367/32) ⇝ 23/2 | note:Ab4 gain:0.12761204674887247 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", - "[ 45/4 ⇜ (733/64 → 367/32) ⇝ 23/2 | note:C5 gain:0.12761204674887247 clip:1 s:piano release:0.1 pan:0.5833333333333333 ]", - "[ 45/4 ⇜ (367/32 → 735/64) ⇝ 23/2 | note:Eb4 gain:0.12761204674886897 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", - "[ 45/4 ⇜ (367/32 → 735/64) ⇝ 23/2 | note:G4 gain:0.12761204674886897 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", - "[ 45/4 ⇜ (367/32 → 735/64) ⇝ 23/2 | note:Ab4 gain:0.12761204674886897 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", - "[ 45/4 ⇜ (367/32 → 735/64) ⇝ 23/2 | note:C5 gain:0.12761204674886897 clip:1 s:piano release:0.1 pan:0.5833333333333333 ]", - "[ 45/4 ⇜ (735/64 → 23/2) | note:Eb4 gain:0.181731656763493 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", - "[ 45/4 ⇜ (735/64 → 23/2) | note:G4 gain:0.181731656763493 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", - "[ 45/4 ⇜ (735/64 → 23/2) | note:Ab4 gain:0.181731656763493 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", - "[ 45/4 ⇜ (735/64 → 23/2) | note:C5 gain:0.181731656763493 clip:1 s:piano release:0.1 pan:0.5833333333333333 ]", - "[ (23/2 → 737/64) ⇝ 93/8 | note:C5 gain:0.5165366864730162 clip:1 s:piano release:0.1 pan:0.5833333333333333 ]", - "[ (23/2 → 737/64) ⇝ 93/8 | note:G5 gain:0.5165366864730162 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", - "[ (23/2 → 737/64) ⇝ 93/8 | note:Bb5 gain:0.5165366864730162 clip:1 s:piano release:0.1 pan:0.6296296296296297 ]", - "[ (23/2 → 737/64) ⇝ 47/4 | note:F2 gain:0.5165366864730162 clip:1 s:piano release:0.1 pan:0.4398148148148148 ]", - "[ 23/2 ⇜ (737/64 → 369/32) ⇝ 93/8 | note:C5 gain:0.6247759065022542 clip:1 s:piano release:0.1 pan:0.5833333333333333 ]", - "[ 23/2 ⇜ (737/64 → 369/32) ⇝ 93/8 | note:G5 gain:0.6247759065022542 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", - "[ 23/2 ⇜ (737/64 → 369/32) ⇝ 93/8 | note:Bb5 gain:0.6247759065022542 clip:1 s:piano release:0.1 pan:0.6296296296296297 ]", - "[ 23/2 ⇜ (737/64 → 369/32) ⇝ 47/4 | note:F2 gain:0.6247759065022542 clip:1 s:piano release:0.1 pan:0.4398148148148148 ]", - "[ 23/2 ⇜ (369/32 → 739/64) ⇝ 93/8 | note:C5 gain:0.6247759065022629 clip:1 s:piano release:0.1 pan:0.5833333333333333 ]", - "[ 23/2 ⇜ (369/32 → 739/64) ⇝ 93/8 | note:G5 gain:0.6247759065022629 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", - "[ 23/2 ⇜ (369/32 → 739/64) ⇝ 93/8 | note:Bb5 gain:0.6247759065022629 clip:1 s:piano release:0.1 pan:0.6296296296296297 ]", - "[ 23/2 ⇜ (369/32 → 739/64) ⇝ 47/4 | note:F2 gain:0.6247759065022629 clip:1 s:piano release:0.1 pan:0.4398148148148148 ]", - "[ (323/28 → 739/64) ⇝ 165/14 | note:75 gain:0.06247759065022629 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", - "[ (323/28 → 739/64) ⇝ 165/14 | note:79 gain:0.06247759065022629 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", - "[ (323/28 → 739/64) ⇝ 165/14 | note:80 gain:0.06247759065022629 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", - "[ (323/28 → 739/64) ⇝ 165/14 | note:84 gain:0.06247759065022629 clip:1 s:piano release:0.1 pan:0.6388888888888888 ]", - "[ 23/2 ⇜ (739/64 → 185/16) ⇝ 93/8 | note:C5 gain:0.516536686473016 clip:1 s:piano release:0.1 pan:0.5833333333333333 ]", - "[ 23/2 ⇜ (739/64 → 185/16) ⇝ 93/8 | note:G5 gain:0.516536686473016 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", - "[ 23/2 ⇜ (739/64 → 185/16) ⇝ 93/8 | note:Bb5 gain:0.516536686473016 clip:1 s:piano release:0.1 pan:0.6296296296296297 ]", - "[ 23/2 ⇜ (739/64 → 185/16) ⇝ 47/4 | note:F2 gain:0.516536686473016 clip:1 s:piano release:0.1 pan:0.4398148148148148 ]", - "[ 323/28 ⇜ (739/64 → 185/16) ⇝ 165/14 | note:75 gain:0.0516536686473016 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", - "[ 323/28 ⇜ (739/64 → 185/16) ⇝ 165/14 | note:79 gain:0.0516536686473016 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", - "[ 323/28 ⇜ (739/64 → 185/16) ⇝ 165/14 | note:80 gain:0.0516536686473016 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", - "[ 323/28 ⇜ (739/64 → 185/16) ⇝ 165/14 | note:84 gain:0.0516536686473016 clip:1 s:piano release:0.1 pan:0.6388888888888888 ]", - "[ 23/2 ⇜ (185/16 → 741/64) ⇝ 93/8 | note:C5 gain:0.36346331352698585 clip:1 s:piano release:0.1 pan:0.5833333333333333 ]", - "[ 23/2 ⇜ (185/16 → 741/64) ⇝ 93/8 | note:G5 gain:0.36346331352698585 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", - "[ 23/2 ⇜ (185/16 → 741/64) ⇝ 93/8 | note:Bb5 gain:0.36346331352698585 clip:1 s:piano release:0.1 pan:0.6296296296296297 ]", - "[ 23/2 ⇜ (185/16 → 741/64) ⇝ 47/4 | note:F2 gain:0.36346331352698585 clip:1 s:piano release:0.1 pan:0.4398148148148148 ]", - "[ 323/28 ⇜ (185/16 → 741/64) ⇝ 165/14 | note:75 gain:0.03634633135269859 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", - "[ 323/28 ⇜ (185/16 → 741/64) ⇝ 165/14 | note:79 gain:0.03634633135269859 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", - "[ 323/28 ⇜ (185/16 → 741/64) ⇝ 165/14 | note:80 gain:0.03634633135269859 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", - "[ 323/28 ⇜ (185/16 → 741/64) ⇝ 165/14 | note:84 gain:0.03634633135269859 clip:1 s:piano release:0.1 pan:0.6388888888888888 ]", - "[ 23/2 ⇜ (741/64 → 371/32) ⇝ 93/8 | note:C5 gain:0.2552240934977466 clip:1 s:piano release:0.1 pan:0.5833333333333333 ]", - "[ 23/2 ⇜ (741/64 → 371/32) ⇝ 93/8 | note:G5 gain:0.2552240934977466 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", - "[ 23/2 ⇜ (741/64 → 371/32) ⇝ 93/8 | note:Bb5 gain:0.2552240934977466 clip:1 s:piano release:0.1 pan:0.6296296296296297 ]", - "[ 23/2 ⇜ (741/64 → 371/32) ⇝ 47/4 | note:F2 gain:0.2552240934977466 clip:1 s:piano release:0.1 pan:0.4398148148148148 ]", - "[ 323/28 ⇜ (741/64 → 371/32) ⇝ 165/14 | note:75 gain:0.025522409349774663 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", - "[ 323/28 ⇜ (741/64 → 371/32) ⇝ 165/14 | note:79 gain:0.025522409349774663 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", - "[ 323/28 ⇜ (741/64 → 371/32) ⇝ 165/14 | note:80 gain:0.025522409349774663 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", - "[ 323/28 ⇜ (741/64 → 371/32) ⇝ 165/14 | note:84 gain:0.025522409349774663 clip:1 s:piano release:0.1 pan:0.6388888888888888 ]", - "[ 23/2 ⇜ (371/32 → 743/64) ⇝ 93/8 | note:C5 gain:0.25522409349774505 clip:1 s:piano release:0.1 pan:0.5833333333333333 ]", - "[ 23/2 ⇜ (371/32 → 743/64) ⇝ 93/8 | note:G5 gain:0.25522409349774505 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", - "[ 23/2 ⇜ (371/32 → 743/64) ⇝ 93/8 | note:Bb5 gain:0.25522409349774505 clip:1 s:piano release:0.1 pan:0.6296296296296297 ]", - "[ 23/2 ⇜ (371/32 → 743/64) ⇝ 47/4 | note:F2 gain:0.25522409349774505 clip:1 s:piano release:0.1 pan:0.4398148148148148 ]", - "[ 323/28 ⇜ (371/32 → 743/64) ⇝ 165/14 | note:75 gain:0.025522409349774507 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", - "[ 323/28 ⇜ (371/32 → 743/64) ⇝ 165/14 | note:79 gain:0.025522409349774507 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", - "[ 323/28 ⇜ (371/32 → 743/64) ⇝ 165/14 | note:80 gain:0.025522409349774507 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", - "[ 323/28 ⇜ (371/32 → 743/64) ⇝ 165/14 | note:84 gain:0.025522409349774507 clip:1 s:piano release:0.1 pan:0.6388888888888888 ]", - "[ 23/2 ⇜ (743/64 → 93/8) | note:C5 gain:0.363463313526982 clip:1 s:piano release:0.1 pan:0.5833333333333333 ]", - "[ 23/2 ⇜ (743/64 → 93/8) | note:G5 gain:0.363463313526982 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", - "[ 23/2 ⇜ (743/64 → 93/8) | note:Bb5 gain:0.363463313526982 clip:1 s:piano release:0.1 pan:0.6296296296296297 ]", - "[ 23/2 ⇜ (743/64 → 93/8) ⇝ 47/4 | note:F2 gain:0.363463313526982 clip:1 s:piano release:0.1 pan:0.4398148148148148 ]", - "[ 323/28 ⇜ (743/64 → 93/8) ⇝ 165/14 | note:75 gain:0.036346331352698207 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", - "[ 323/28 ⇜ (743/64 → 93/8) ⇝ 165/14 | note:79 gain:0.036346331352698207 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", - "[ 323/28 ⇜ (743/64 → 93/8) ⇝ 165/14 | note:80 gain:0.036346331352698207 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", - "[ 323/28 ⇜ (743/64 → 93/8) ⇝ 165/14 | note:84 gain:0.036346331352698207 clip:1 s:piano release:0.1 pan:0.6388888888888888 ]", - "[ 23/2 ⇜ (93/8 → 745/64) ⇝ 47/4 | note:F2 gain:0.5165366864730122 clip:1 s:piano release:0.1 pan:0.4398148148148148 ]", - "[ 323/28 ⇜ (93/8 → 745/64) ⇝ 165/14 | note:75 gain:0.051653668647301226 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", - "[ 323/28 ⇜ (93/8 → 745/64) ⇝ 165/14 | note:79 gain:0.051653668647301226 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", - "[ 323/28 ⇜ (93/8 → 745/64) ⇝ 165/14 | note:80 gain:0.051653668647301226 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", - "[ 323/28 ⇜ (93/8 → 745/64) ⇝ 165/14 | note:84 gain:0.051653668647301226 clip:1 s:piano release:0.1 pan:0.6388888888888888 ]", - "[ 23/2 ⇜ (745/64 → 373/32) ⇝ 47/4 | note:F2 gain:0.6247759065022527 clip:1 s:piano release:0.1 pan:0.4398148148148148 ]", - "[ 323/28 ⇜ (745/64 → 373/32) ⇝ 165/14 | note:75 gain:0.06247759065022527 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", - "[ 323/28 ⇜ (745/64 → 373/32) ⇝ 165/14 | note:79 gain:0.06247759065022527 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", - "[ 323/28 ⇜ (745/64 → 373/32) ⇝ 165/14 | note:80 gain:0.06247759065022527 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", - "[ 323/28 ⇜ (745/64 → 373/32) ⇝ 165/14 | note:84 gain:0.06247759065022527 clip:1 s:piano release:0.1 pan:0.6388888888888888 ]", - "[ 23/2 ⇜ (373/32 → 747/64) ⇝ 47/4 | note:F2 gain:0.6247759065022559 clip:1 s:piano release:0.1 pan:0.4398148148148148 ]", - "[ 323/28 ⇜ (373/32 → 747/64) ⇝ 165/14 | note:75 gain:0.062477590650225595 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", - "[ 323/28 ⇜ (373/32 → 747/64) ⇝ 165/14 | note:79 gain:0.062477590650225595 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", - "[ 323/28 ⇜ (373/32 → 747/64) ⇝ 165/14 | note:80 gain:0.062477590650225595 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", - "[ 323/28 ⇜ (373/32 → 747/64) ⇝ 165/14 | note:84 gain:0.062477590650225595 clip:1 s:piano release:0.1 pan:0.6388888888888888 ]", - "[ 23/2 ⇜ (747/64 → 187/16) ⇝ 47/4 | note:F2 gain:0.51653668647302 clip:1 s:piano release:0.1 pan:0.4398148148148148 ]", - "[ 323/28 ⇜ (747/64 → 187/16) ⇝ 165/14 | note:75 gain:0.051653668647302 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", - "[ 323/28 ⇜ (747/64 → 187/16) ⇝ 165/14 | note:79 gain:0.051653668647302 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", - "[ 323/28 ⇜ (747/64 → 187/16) ⇝ 165/14 | note:80 gain:0.051653668647302 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", - "[ 323/28 ⇜ (747/64 → 187/16) ⇝ 165/14 | note:84 gain:0.051653668647302 clip:1 s:piano release:0.1 pan:0.6388888888888888 ]", - "[ 23/2 ⇜ (187/16 → 749/64) ⇝ 47/4 | note:F2 gain:0.3634633135269898 clip:1 s:piano release:0.1 pan:0.4398148148148148 ]", - "[ 323/28 ⇜ (187/16 → 749/64) ⇝ 165/14 | note:75 gain:0.036346331352698984 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", - "[ 323/28 ⇜ (187/16 → 749/64) ⇝ 165/14 | note:79 gain:0.036346331352698984 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", - "[ 323/28 ⇜ (187/16 → 749/64) ⇝ 165/14 | note:80 gain:0.036346331352698984 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", - "[ 323/28 ⇜ (187/16 → 749/64) ⇝ 165/14 | note:84 gain:0.036346331352698984 clip:1 s:piano release:0.1 pan:0.6388888888888888 ]", - "[ 23/2 ⇜ (749/64 → 375/32) ⇝ 47/4 | note:F2 gain:0.2552240934977483 clip:1 s:piano release:0.1 pan:0.4398148148148148 ]", - "[ 323/28 ⇜ (749/64 → 375/32) ⇝ 165/14 | note:75 gain:0.02552240934977483 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", - "[ 323/28 ⇜ (749/64 → 375/32) ⇝ 165/14 | note:79 gain:0.02552240934977483 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", - "[ 323/28 ⇜ (749/64 → 375/32) ⇝ 165/14 | note:80 gain:0.02552240934977483 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", - "[ 323/28 ⇜ (749/64 → 375/32) ⇝ 165/14 | note:84 gain:0.02552240934977483 clip:1 s:piano release:0.1 pan:0.6388888888888888 ]", - "[ 23/2 ⇜ (375/32 → 751/64) ⇝ 47/4 | note:F2 gain:0.2552240934977434 clip:1 s:piano release:0.1 pan:0.4398148148148148 ]", - "[ 323/28 ⇜ (375/32 → 751/64) ⇝ 165/14 | note:75 gain:0.02552240934977434 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", - "[ 323/28 ⇜ (375/32 → 751/64) ⇝ 165/14 | note:79 gain:0.02552240934977434 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", - "[ 323/28 ⇜ (375/32 → 751/64) ⇝ 165/14 | note:80 gain:0.02552240934977434 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", - "[ 323/28 ⇜ (375/32 → 751/64) ⇝ 165/14 | note:84 gain:0.02552240934977434 clip:1 s:piano release:0.1 pan:0.6388888888888888 ]", - "[ 23/2 ⇜ (751/64 → 47/4) | note:F2 gain:0.363463313526978 clip:1 s:piano release:0.1 pan:0.4398148148148148 ]", - "[ 323/28 ⇜ (751/64 → 47/4) ⇝ 165/14 | note:75 gain:0.036346331352697804 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", - "[ 323/28 ⇜ (751/64 → 47/4) ⇝ 165/14 | note:79 gain:0.036346331352697804 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", - "[ 323/28 ⇜ (751/64 → 47/4) ⇝ 165/14 | note:80 gain:0.036346331352697804 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", - "[ 323/28 ⇜ (751/64 → 47/4) ⇝ 165/14 | note:84 gain:0.036346331352697804 clip:1 s:piano release:0.1 pan:0.6388888888888888 ]", - "[ 323/28 ⇜ (47/4 → 753/64) ⇝ 165/14 | note:75 gain:0.051653668647300824 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", - "[ 323/28 ⇜ (47/4 → 753/64) ⇝ 165/14 | note:79 gain:0.051653668647300824 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", - "[ 323/28 ⇜ (47/4 → 753/64) ⇝ 165/14 | note:80 gain:0.051653668647300824 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", - "[ 323/28 ⇜ (47/4 → 753/64) ⇝ 165/14 | note:84 gain:0.051653668647300824 clip:1 s:piano release:0.1 pan:0.6388888888888888 ]", - "[ (47/4 → 753/64) ⇝ 95/8 | note:C5 gain:0.5165366864730082 clip:1 s:piano release:0.1 pan:0.5833333333333333 ]", - "[ (47/4 → 753/64) ⇝ 95/8 | note:G5 gain:0.5165366864730082 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", - "[ (47/4 → 753/64) ⇝ 95/8 | note:Bb5 gain:0.5165366864730082 clip:1 s:piano release:0.1 pan:0.6296296296296297 ]", - "[ (47/4 → 753/64) ⇝ 12/1 | note:Eb4 gain:0.2582683432365041 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", - "[ (47/4 → 753/64) ⇝ 12/1 | note:G4 gain:0.2582683432365041 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", - "[ (47/4 → 753/64) ⇝ 12/1 | note:Ab4 gain:0.2582683432365041 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", - "[ (47/4 → 753/64) ⇝ 12/1 | note:C5 gain:0.2582683432365041 clip:1 s:piano release:0.1 pan:0.5833333333333333 ]", - "[ 323/28 ⇜ (753/64 → 377/32) ⇝ 165/14 | note:75 gain:0.062477590650225956 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", - "[ 323/28 ⇜ (753/64 → 377/32) ⇝ 165/14 | note:79 gain:0.062477590650225956 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", - "[ 323/28 ⇜ (753/64 → 377/32) ⇝ 165/14 | note:80 gain:0.062477590650225956 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", - "[ 323/28 ⇜ (753/64 → 377/32) ⇝ 165/14 | note:84 gain:0.062477590650225956 clip:1 s:piano release:0.1 pan:0.6388888888888888 ]", - "[ 47/4 ⇜ (753/64 → 377/32) ⇝ 95/8 | note:C5 gain:0.6247759065022596 clip:1 s:piano release:0.1 pan:0.5833333333333333 ]", - "[ 47/4 ⇜ (753/64 → 377/32) ⇝ 95/8 | note:G5 gain:0.6247759065022596 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", - "[ 47/4 ⇜ (753/64 → 377/32) ⇝ 95/8 | note:Bb5 gain:0.6247759065022596 clip:1 s:piano release:0.1 pan:0.6296296296296297 ]", - "[ 47/4 ⇜ (753/64 → 377/32) ⇝ 12/1 | note:Eb4 gain:0.3123879532511298 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", - "[ 47/4 ⇜ (753/64 → 377/32) ⇝ 12/1 | note:G4 gain:0.3123879532511298 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", - "[ 47/4 ⇜ (753/64 → 377/32) ⇝ 12/1 | note:Ab4 gain:0.3123879532511298 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", - "[ 47/4 ⇜ (753/64 → 377/32) ⇝ 12/1 | note:C5 gain:0.3123879532511298 clip:1 s:piano release:0.1 pan:0.5833333333333333 ]", - "[ 323/28 ⇜ (377/32 → 165/14) | note:75 gain:0.06247759065022575 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", - "[ 323/28 ⇜ (377/32 → 165/14) | note:79 gain:0.06247759065022575 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", - "[ 323/28 ⇜ (377/32 → 165/14) | note:80 gain:0.06247759065022575 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", - "[ 323/28 ⇜ (377/32 → 165/14) | note:84 gain:0.06247759065022575 clip:1 s:piano release:0.1 pan:0.6388888888888888 ]", - "[ 47/4 ⇜ (377/32 → 755/64) ⇝ 95/8 | note:C5 gain:0.6247759065022574 clip:1 s:piano release:0.1 pan:0.5833333333333333 ]", - "[ 47/4 ⇜ (377/32 → 755/64) ⇝ 95/8 | note:G5 gain:0.6247759065022574 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", - "[ 47/4 ⇜ (377/32 → 755/64) ⇝ 95/8 | note:Bb5 gain:0.6247759065022574 clip:1 s:piano release:0.1 pan:0.6296296296296297 ]", - "[ 47/4 ⇜ (377/32 → 755/64) ⇝ 12/1 | note:Eb4 gain:0.3123879532511287 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", - "[ 47/4 ⇜ (377/32 → 755/64) ⇝ 12/1 | note:G4 gain:0.3123879532511287 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", - "[ 47/4 ⇜ (377/32 → 755/64) ⇝ 12/1 | note:Ab4 gain:0.3123879532511287 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", - "[ 47/4 ⇜ (377/32 → 755/64) ⇝ 12/1 | note:C5 gain:0.3123879532511287 clip:1 s:piano release:0.1 pan:0.5833333333333333 ]", - "[ 47/4 ⇜ (755/64 → 189/16) ⇝ 95/8 | note:C5 gain:0.516536686473024 clip:1 s:piano release:0.1 pan:0.5833333333333333 ]", - "[ 47/4 ⇜ (755/64 → 189/16) ⇝ 95/8 | note:G5 gain:0.516536686473024 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", - "[ 47/4 ⇜ (755/64 → 189/16) ⇝ 95/8 | note:Bb5 gain:0.516536686473024 clip:1 s:piano release:0.1 pan:0.6296296296296297 ]", - "[ 47/4 ⇜ (755/64 → 189/16) ⇝ 12/1 | note:Eb4 gain:0.258268343236512 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", - "[ 47/4 ⇜ (755/64 → 189/16) ⇝ 12/1 | note:G4 gain:0.258268343236512 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", - "[ 47/4 ⇜ (755/64 → 189/16) ⇝ 12/1 | note:Ab4 gain:0.258268343236512 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", - "[ 47/4 ⇜ (755/64 → 189/16) ⇝ 12/1 | note:C5 gain:0.258268343236512 clip:1 s:piano release:0.1 pan:0.5833333333333333 ]", - "[ 47/4 ⇜ (189/16 → 757/64) ⇝ 95/8 | note:C5 gain:0.3634633135269938 clip:1 s:piano release:0.1 pan:0.5833333333333333 ]", - "[ 47/4 ⇜ (189/16 → 757/64) ⇝ 95/8 | note:G5 gain:0.3634633135269938 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", - "[ 47/4 ⇜ (189/16 → 757/64) ⇝ 95/8 | note:Bb5 gain:0.3634633135269938 clip:1 s:piano release:0.1 pan:0.6296296296296297 ]", - "[ 47/4 ⇜ (189/16 → 757/64) ⇝ 12/1 | note:Eb4 gain:0.1817316567634969 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", - "[ 47/4 ⇜ (189/16 → 757/64) ⇝ 12/1 | note:G4 gain:0.1817316567634969 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", - "[ 47/4 ⇜ (189/16 → 757/64) ⇝ 12/1 | note:Ab4 gain:0.1817316567634969 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", - "[ 47/4 ⇜ (189/16 → 757/64) ⇝ 12/1 | note:C5 gain:0.1817316567634969 clip:1 s:piano release:0.1 pan:0.5833333333333333 ]", - "[ 47/4 ⇜ (757/64 → 379/32) ⇝ 95/8 | note:C5 gain:0.25522409349774117 clip:1 s:piano release:0.1 pan:0.5833333333333333 ]", - "[ 47/4 ⇜ (757/64 → 379/32) ⇝ 95/8 | note:G5 gain:0.25522409349774117 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", - "[ 47/4 ⇜ (757/64 → 379/32) ⇝ 95/8 | note:Bb5 gain:0.25522409349774117 clip:1 s:piano release:0.1 pan:0.6296296296296297 ]", - "[ 47/4 ⇜ (757/64 → 379/32) ⇝ 12/1 | note:Eb4 gain:0.12761204674887058 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", - "[ 47/4 ⇜ (757/64 → 379/32) ⇝ 12/1 | note:G4 gain:0.12761204674887058 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", - "[ 47/4 ⇜ (757/64 → 379/32) ⇝ 12/1 | note:Ab4 gain:0.12761204674887058 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", - "[ 47/4 ⇜ (757/64 → 379/32) ⇝ 12/1 | note:C5 gain:0.12761204674887058 clip:1 s:piano release:0.1 pan:0.5833333333333333 ]", - "[ 47/4 ⇜ (379/32 → 759/64) ⇝ 95/8 | note:C5 gain:0.2552240934977417 clip:1 s:piano release:0.1 pan:0.5833333333333333 ]", - "[ 47/4 ⇜ (379/32 → 759/64) ⇝ 95/8 | note:G5 gain:0.2552240934977417 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", - "[ 47/4 ⇜ (379/32 → 759/64) ⇝ 95/8 | note:Bb5 gain:0.2552240934977417 clip:1 s:piano release:0.1 pan:0.6296296296296297 ]", - "[ 47/4 ⇜ (379/32 → 759/64) ⇝ 12/1 | note:Eb4 gain:0.12761204674887086 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", - "[ 47/4 ⇜ (379/32 → 759/64) ⇝ 12/1 | note:G4 gain:0.12761204674887086 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", - "[ 47/4 ⇜ (379/32 → 759/64) ⇝ 12/1 | note:Ab4 gain:0.12761204674887086 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", - "[ 47/4 ⇜ (379/32 → 759/64) ⇝ 12/1 | note:C5 gain:0.12761204674887086 clip:1 s:piano release:0.1 pan:0.5833333333333333 ]", - "[ 47/4 ⇜ (759/64 → 95/8) | note:C5 gain:0.36346331352697403 clip:1 s:piano release:0.1 pan:0.5833333333333333 ]", - "[ 47/4 ⇜ (759/64 → 95/8) | note:G5 gain:0.36346331352697403 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", - "[ 47/4 ⇜ (759/64 → 95/8) | note:Bb5 gain:0.36346331352697403 clip:1 s:piano release:0.1 pan:0.6296296296296297 ]", - "[ 47/4 ⇜ (759/64 → 95/8) ⇝ 12/1 | note:Eb4 gain:0.18173165676348702 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", - "[ 47/4 ⇜ (759/64 → 95/8) ⇝ 12/1 | note:G4 gain:0.18173165676348702 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", - "[ 47/4 ⇜ (759/64 → 95/8) ⇝ 12/1 | note:Ab4 gain:0.18173165676348702 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", - "[ 47/4 ⇜ (759/64 → 95/8) ⇝ 12/1 | note:C5 gain:0.18173165676348702 clip:1 s:piano release:0.1 pan:0.5833333333333333 ]", - "[ 47/4 ⇜ (95/8 → 761/64) ⇝ 12/1 | note:Eb4 gain:0.2582683432365021 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", - "[ 47/4 ⇜ (95/8 → 761/64) ⇝ 12/1 | note:G4 gain:0.2582683432365021 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", - "[ 47/4 ⇜ (95/8 → 761/64) ⇝ 12/1 | note:Ab4 gain:0.2582683432365021 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", - "[ 47/4 ⇜ (95/8 → 761/64) ⇝ 12/1 | note:C5 gain:0.2582683432365021 clip:1 s:piano release:0.1 pan:0.5833333333333333 ]", - "[ 47/4 ⇜ (761/64 → 381/32) ⇝ 12/1 | note:Eb4 gain:0.312387953251129 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", - "[ 47/4 ⇜ (761/64 → 381/32) ⇝ 12/1 | note:G4 gain:0.312387953251129 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", - "[ 47/4 ⇜ (761/64 → 381/32) ⇝ 12/1 | note:Ab4 gain:0.312387953251129 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", - "[ 47/4 ⇜ (761/64 → 381/32) ⇝ 12/1 | note:C5 gain:0.312387953251129 clip:1 s:piano release:0.1 pan:0.5833333333333333 ]", - "[ 47/4 ⇜ (381/32 → 763/64) ⇝ 12/1 | note:Eb4 gain:0.31238795325112956 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", - "[ 47/4 ⇜ (381/32 → 763/64) ⇝ 12/1 | note:G4 gain:0.31238795325112956 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", - "[ 47/4 ⇜ (381/32 → 763/64) ⇝ 12/1 | note:Ab4 gain:0.31238795325112956 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", - "[ 47/4 ⇜ (381/32 → 763/64) ⇝ 12/1 | note:C5 gain:0.31238795325112956 clip:1 s:piano release:0.1 pan:0.5833333333333333 ]", - "[ 47/4 ⇜ (763/64 → 191/16) ⇝ 12/1 | note:Eb4 gain:0.258268343236514 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", - "[ 47/4 ⇜ (763/64 → 191/16) ⇝ 12/1 | note:G4 gain:0.258268343236514 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", - "[ 47/4 ⇜ (763/64 → 191/16) ⇝ 12/1 | note:Ab4 gain:0.258268343236514 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", - "[ 47/4 ⇜ (763/64 → 191/16) ⇝ 12/1 | note:C5 gain:0.258268343236514 clip:1 s:piano release:0.1 pan:0.5833333333333333 ]", - "[ 47/4 ⇜ (191/16 → 765/64) ⇝ 12/1 | note:Eb4 gain:0.1817316567634884 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", - "[ 47/4 ⇜ (191/16 → 765/64) ⇝ 12/1 | note:G4 gain:0.1817316567634884 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", - "[ 47/4 ⇜ (191/16 → 765/64) ⇝ 12/1 | note:Ab4 gain:0.1817316567634884 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", - "[ 47/4 ⇜ (191/16 → 765/64) ⇝ 12/1 | note:C5 gain:0.1817316567634884 clip:1 s:piano release:0.1 pan:0.5833333333333333 ]", - "[ 47/4 ⇜ (765/64 → 383/32) ⇝ 12/1 | note:Eb4 gain:0.12761204674887142 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", - "[ 47/4 ⇜ (765/64 → 383/32) ⇝ 12/1 | note:G4 gain:0.12761204674887142 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", - "[ 47/4 ⇜ (765/64 → 383/32) ⇝ 12/1 | note:Ab4 gain:0.12761204674887142 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", - "[ 47/4 ⇜ (765/64 → 383/32) ⇝ 12/1 | note:C5 gain:0.12761204674887142 clip:1 s:piano release:0.1 pan:0.5833333333333333 ]", - "[ 47/4 ⇜ (383/32 → 767/64) ⇝ 12/1 | note:Eb4 gain:0.12761204674887003 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", - "[ 47/4 ⇜ (383/32 → 767/64) ⇝ 12/1 | note:G4 gain:0.12761204674887003 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", - "[ 47/4 ⇜ (383/32 → 767/64) ⇝ 12/1 | note:Ab4 gain:0.12761204674887003 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", - "[ 47/4 ⇜ (383/32 → 767/64) ⇝ 12/1 | note:C5 gain:0.12761204674887003 clip:1 s:piano release:0.1 pan:0.5833333333333333 ]", - "[ 47/4 ⇜ (767/64 → 12/1) | note:Eb4 gain:0.18173165676348504 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", - "[ 47/4 ⇜ (767/64 → 12/1) | note:G4 gain:0.18173165676348504 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", - "[ 47/4 ⇜ (767/64 → 12/1) | note:Ab4 gain:0.18173165676348504 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", - "[ 47/4 ⇜ (767/64 → 12/1) | note:C5 gain:0.18173165676348504 clip:1 s:piano release:0.1 pan:0.5833333333333333 ]", - "[ (12/1 → 769/64) ⇝ 49/4 | note:G2 gain:0.5165366864730213 clip:1 s:piano release:0.1 pan:0.44907407407407407 ]", - "[ 12/1 ⇜ (769/64 → 385/32) ⇝ 49/4 | note:G2 gain:0.6247759065022565 clip:1 s:piano release:0.1 pan:0.44907407407407407 ]", - "[ 12/1 ⇜ (385/32 → 771/64) ⇝ 49/4 | note:G2 gain:0.6247759065022609 clip:1 s:piano release:0.1 pan:0.44907407407407407 ]", - "[ (337/28 → 771/64) ⇝ 86/7 | note:75 gain:0.062477590650226095 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", - "[ (337/28 → 771/64) ⇝ 86/7 | note:79 gain:0.062477590650226095 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", - "[ (337/28 → 771/64) ⇝ 86/7 | note:80 gain:0.062477590650226095 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", - "[ (337/28 → 771/64) ⇝ 86/7 | note:84 gain:0.062477590650226095 clip:1 s:piano release:0.1 pan:0.6388888888888888 ]", - "[ 12/1 ⇜ (771/64 → 193/16) ⇝ 49/4 | note:G2 gain:0.516536686473032 clip:1 s:piano release:0.1 pan:0.44907407407407407 ]", - "[ 337/28 ⇜ (771/64 → 193/16) ⇝ 86/7 | note:75 gain:0.0516536686473032 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", - "[ 337/28 ⇜ (771/64 → 193/16) ⇝ 86/7 | note:79 gain:0.0516536686473032 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", - "[ 337/28 ⇜ (771/64 → 193/16) ⇝ 86/7 | note:80 gain:0.0516536686473032 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", - "[ 337/28 ⇜ (771/64 → 193/16) ⇝ 86/7 | note:84 gain:0.0516536686473032 clip:1 s:piano release:0.1 pan:0.6388888888888888 ]", - "[ 12/1 ⇜ (193/16 → 773/64) ⇝ 49/4 | note:G2 gain:0.36346331352698075 clip:1 s:piano release:0.1 pan:0.44907407407407407 ]", - "[ 337/28 ⇜ (193/16 → 773/64) ⇝ 86/7 | note:75 gain:0.036346331352698075 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", - "[ 337/28 ⇜ (193/16 → 773/64) ⇝ 86/7 | note:79 gain:0.036346331352698075 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", - "[ 337/28 ⇜ (193/16 → 773/64) ⇝ 86/7 | note:80 gain:0.036346331352698075 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", - "[ 337/28 ⇜ (193/16 → 773/64) ⇝ 86/7 | note:84 gain:0.036346331352698075 clip:1 s:piano release:0.1 pan:0.6388888888888888 ]", - "[ 12/1 ⇜ (773/64 → 387/32) ⇝ 49/4 | note:G2 gain:0.2552240934977445 clip:1 s:piano release:0.1 pan:0.44907407407407407 ]", - "[ 337/28 ⇜ (773/64 → 387/32) ⇝ 86/7 | note:75 gain:0.025522409349774452 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", - "[ 337/28 ⇜ (773/64 → 387/32) ⇝ 86/7 | note:79 gain:0.025522409349774452 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", - "[ 337/28 ⇜ (773/64 → 387/32) ⇝ 86/7 | note:80 gain:0.025522409349774452 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", - "[ 337/28 ⇜ (773/64 → 387/32) ⇝ 86/7 | note:84 gain:0.025522409349774452 clip:1 s:piano release:0.1 pan:0.6388888888888888 ]", - "[ 12/1 ⇜ (387/32 → 775/64) ⇝ 49/4 | note:G2 gain:0.2552240934977384 clip:1 s:piano release:0.1 pan:0.44907407407407407 ]", - "[ 337/28 ⇜ (387/32 → 775/64) ⇝ 86/7 | note:75 gain:0.02552240934977384 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", - "[ 337/28 ⇜ (387/32 → 775/64) ⇝ 86/7 | note:79 gain:0.02552240934977384 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", - "[ 337/28 ⇜ (387/32 → 775/64) ⇝ 86/7 | note:80 gain:0.02552240934977384 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", - "[ 337/28 ⇜ (387/32 → 775/64) ⇝ 86/7 | note:84 gain:0.02552240934977384 clip:1 s:piano release:0.1 pan:0.6388888888888888 ]", - "[ 12/1 ⇜ (775/64 → 97/8) ⇝ 49/4 | note:G2 gain:0.36346331352698713 clip:1 s:piano release:0.1 pan:0.44907407407407407 ]", - "[ 337/28 ⇜ (775/64 → 97/8) ⇝ 86/7 | note:75 gain:0.03634633135269871 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", - "[ 337/28 ⇜ (775/64 → 97/8) ⇝ 86/7 | note:79 gain:0.03634633135269871 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", - "[ 337/28 ⇜ (775/64 → 97/8) ⇝ 86/7 | note:80 gain:0.03634633135269871 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", - "[ 337/28 ⇜ (775/64 → 97/8) ⇝ 86/7 | note:84 gain:0.03634633135269871 clip:1 s:piano release:0.1 pan:0.6388888888888888 ]", - "[ 12/1 ⇜ (97/8 → 777/64) ⇝ 49/4 | note:G2 gain:0.5165366864730173 clip:1 s:piano release:0.1 pan:0.44907407407407407 ]", - "[ 337/28 ⇜ (97/8 → 777/64) ⇝ 86/7 | note:75 gain:0.05165366864730173 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", - "[ 337/28 ⇜ (97/8 → 777/64) ⇝ 86/7 | note:79 gain:0.05165366864730173 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", - "[ 337/28 ⇜ (97/8 → 777/64) ⇝ 86/7 | note:80 gain:0.05165366864730173 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", - "[ 337/28 ⇜ (97/8 → 777/64) ⇝ 86/7 | note:84 gain:0.05165366864730173 clip:1 s:piano release:0.1 pan:0.6388888888888888 ]", - "[ (97/8 → 777/64) ⇝ 49/4 | note:G4 gain:0.5165366864730173 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", - "[ (97/8 → 777/64) ⇝ 49/4 | note:D5 gain:0.5165366864730173 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", - "[ (97/8 → 777/64) ⇝ 49/4 | note:F5 gain:0.5165366864730173 clip:1 s:piano release:0.1 pan:0.6064814814814814 ]", - "[ 12/1 ⇜ (777/64 → 389/32) ⇝ 49/4 | note:G2 gain:0.6247759065022547 clip:1 s:piano release:0.1 pan:0.44907407407407407 ]", - "[ 337/28 ⇜ (777/64 → 389/32) ⇝ 86/7 | note:75 gain:0.06247759065022547 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", - "[ 337/28 ⇜ (777/64 → 389/32) ⇝ 86/7 | note:79 gain:0.06247759065022547 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", - "[ 337/28 ⇜ (777/64 → 389/32) ⇝ 86/7 | note:80 gain:0.06247759065022547 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", - "[ 337/28 ⇜ (777/64 → 389/32) ⇝ 86/7 | note:84 gain:0.06247759065022547 clip:1 s:piano release:0.1 pan:0.6388888888888888 ]", - "[ 97/8 ⇜ (777/64 → 389/32) ⇝ 49/4 | note:G4 gain:0.6247759065022547 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", - "[ 97/8 ⇜ (777/64 → 389/32) ⇝ 49/4 | note:D5 gain:0.6247759065022547 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", - "[ 97/8 ⇜ (777/64 → 389/32) ⇝ 49/4 | note:F5 gain:0.6247759065022547 clip:1 s:piano release:0.1 pan:0.6064814814814814 ]", - "[ 12/1 ⇜ (389/32 → 779/64) ⇝ 49/4 | note:G2 gain:0.6247759065022624 clip:1 s:piano release:0.1 pan:0.44907407407407407 ]", - "[ 337/28 ⇜ (389/32 → 779/64) ⇝ 86/7 | note:75 gain:0.06247759065022625 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", - "[ 337/28 ⇜ (389/32 → 779/64) ⇝ 86/7 | note:79 gain:0.06247759065022625 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", - "[ 337/28 ⇜ (389/32 → 779/64) ⇝ 86/7 | note:80 gain:0.06247759065022625 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", - "[ 337/28 ⇜ (389/32 → 779/64) ⇝ 86/7 | note:84 gain:0.06247759065022625 clip:1 s:piano release:0.1 pan:0.6388888888888888 ]", - "[ 97/8 ⇜ (389/32 → 779/64) ⇝ 49/4 | note:G4 gain:0.6247759065022624 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", - "[ 97/8 ⇜ (389/32 → 779/64) ⇝ 49/4 | note:D5 gain:0.6247759065022624 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", - "[ 97/8 ⇜ (389/32 → 779/64) ⇝ 49/4 | note:F5 gain:0.6247759065022624 clip:1 s:piano release:0.1 pan:0.6064814814814814 ]", - "[ 12/1 ⇜ (779/64 → 195/16) ⇝ 49/4 | note:G2 gain:0.516536686473015 clip:1 s:piano release:0.1 pan:0.44907407407407407 ]", - "[ 337/28 ⇜ (779/64 → 195/16) ⇝ 86/7 | note:75 gain:0.051653668647301504 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", - "[ 337/28 ⇜ (779/64 → 195/16) ⇝ 86/7 | note:79 gain:0.051653668647301504 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", - "[ 337/28 ⇜ (779/64 → 195/16) ⇝ 86/7 | note:80 gain:0.051653668647301504 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", - "[ 337/28 ⇜ (779/64 → 195/16) ⇝ 86/7 | note:84 gain:0.051653668647301504 clip:1 s:piano release:0.1 pan:0.6388888888888888 ]", - "[ 97/8 ⇜ (779/64 → 195/16) ⇝ 49/4 | note:G4 gain:0.516536686473015 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", - "[ 97/8 ⇜ (779/64 → 195/16) ⇝ 49/4 | note:D5 gain:0.516536686473015 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", - "[ 97/8 ⇜ (779/64 → 195/16) ⇝ 49/4 | note:F5 gain:0.516536686473015 clip:1 s:piano release:0.1 pan:0.6064814814814814 ]", - "[ 12/1 ⇜ (195/16 → 781/64) ⇝ 49/4 | note:G2 gain:0.36346331352698474 clip:1 s:piano release:0.1 pan:0.44907407407407407 ]", - "[ 337/28 ⇜ (195/16 → 781/64) ⇝ 86/7 | note:75 gain:0.03634633135269848 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", - "[ 337/28 ⇜ (195/16 → 781/64) ⇝ 86/7 | note:79 gain:0.03634633135269848 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", - "[ 337/28 ⇜ (195/16 → 781/64) ⇝ 86/7 | note:80 gain:0.03634633135269848 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", - "[ 337/28 ⇜ (195/16 → 781/64) ⇝ 86/7 | note:84 gain:0.03634633135269848 clip:1 s:piano release:0.1 pan:0.6388888888888888 ]", - "[ 97/8 ⇜ (195/16 → 781/64) ⇝ 49/4 | note:G4 gain:0.36346331352698474 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", - "[ 97/8 ⇜ (195/16 → 781/64) ⇝ 49/4 | note:D5 gain:0.36346331352698474 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", - "[ 97/8 ⇜ (195/16 → 781/64) ⇝ 49/4 | note:F5 gain:0.36346331352698474 clip:1 s:piano release:0.1 pan:0.6064814814814814 ]", - "[ 12/1 ⇜ (781/64 → 391/32) ⇝ 49/4 | note:G2 gain:0.2552240934977461 clip:1 s:piano release:0.1 pan:0.44907407407407407 ]", - "[ 337/28 ⇜ (781/64 → 391/32) ⇝ 86/7 | note:75 gain:0.02552240934977461 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", - "[ 337/28 ⇜ (781/64 → 391/32) ⇝ 86/7 | note:79 gain:0.02552240934977461 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", - "[ 337/28 ⇜ (781/64 → 391/32) ⇝ 86/7 | note:80 gain:0.02552240934977461 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", - "[ 337/28 ⇜ (781/64 → 391/32) ⇝ 86/7 | note:84 gain:0.02552240934977461 clip:1 s:piano release:0.1 pan:0.6388888888888888 ]", - "[ 97/8 ⇜ (781/64 → 391/32) ⇝ 49/4 | note:G4 gain:0.2552240934977461 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", - "[ 97/8 ⇜ (781/64 → 391/32) ⇝ 49/4 | note:D5 gain:0.2552240934977461 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", - "[ 97/8 ⇜ (781/64 → 391/32) ⇝ 49/4 | note:F5 gain:0.2552240934977461 clip:1 s:piano release:0.1 pan:0.6064814814814814 ]", - "[ 12/1 ⇜ (391/32 → 783/64) ⇝ 49/4 | note:G2 gain:0.2552240934977368 clip:1 s:piano release:0.1 pan:0.44907407407407407 ]", - "[ 337/28 ⇜ (391/32 → 783/64) ⇝ 86/7 | note:75 gain:0.025522409349773678 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", - "[ 337/28 ⇜ (391/32 → 783/64) ⇝ 86/7 | note:79 gain:0.025522409349773678 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", - "[ 337/28 ⇜ (391/32 → 783/64) ⇝ 86/7 | note:80 gain:0.025522409349773678 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", - "[ 337/28 ⇜ (391/32 → 783/64) ⇝ 86/7 | note:84 gain:0.025522409349773678 clip:1 s:piano release:0.1 pan:0.6388888888888888 ]", - "[ 97/8 ⇜ (391/32 → 783/64) ⇝ 49/4 | note:G4 gain:0.2552240934977368 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", - "[ 97/8 ⇜ (391/32 → 783/64) ⇝ 49/4 | note:D5 gain:0.2552240934977368 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", - "[ 97/8 ⇜ (391/32 → 783/64) ⇝ 49/4 | note:F5 gain:0.2552240934977368 clip:1 s:piano release:0.1 pan:0.6064814814814814 ]", - "[ 12/1 ⇜ (783/64 → 49/4) | note:G2 gain:0.36346331352698313 clip:1 s:piano release:0.1 pan:0.44907407407407407 ]", - "[ 337/28 ⇜ (783/64 → 49/4) ⇝ 86/7 | note:75 gain:0.03634633135269832 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", - "[ 337/28 ⇜ (783/64 → 49/4) ⇝ 86/7 | note:79 gain:0.03634633135269832 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", - "[ 337/28 ⇜ (783/64 → 49/4) ⇝ 86/7 | note:80 gain:0.03634633135269832 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", - "[ 337/28 ⇜ (783/64 → 49/4) ⇝ 86/7 | note:84 gain:0.03634633135269832 clip:1 s:piano release:0.1 pan:0.6388888888888888 ]", - "[ 97/8 ⇜ (783/64 → 49/4) | note:G4 gain:0.36346331352698313 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", - "[ 97/8 ⇜ (783/64 → 49/4) | note:D5 gain:0.36346331352698313 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", - "[ 97/8 ⇜ (783/64 → 49/4) | note:F5 gain:0.36346331352698313 clip:1 s:piano release:0.1 pan:0.6064814814814814 ]", - "[ 337/28 ⇜ (49/4 → 785/64) ⇝ 86/7 | note:75 gain:0.05165366864730134 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", - "[ 337/28 ⇜ (49/4 → 785/64) ⇝ 86/7 | note:79 gain:0.05165366864730134 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", - "[ 337/28 ⇜ (49/4 → 785/64) ⇝ 86/7 | note:80 gain:0.05165366864730134 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", - "[ 337/28 ⇜ (49/4 → 785/64) ⇝ 86/7 | note:84 gain:0.05165366864730134 clip:1 s:piano release:0.1 pan:0.6388888888888888 ]", - "[ 337/28 ⇜ (785/64 → 393/32) ⇝ 86/7 | note:75 gain:0.062477590650225304 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", - "[ 337/28 ⇜ (785/64 → 393/32) ⇝ 86/7 | note:79 gain:0.062477590650225304 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", - "[ 337/28 ⇜ (785/64 → 393/32) ⇝ 86/7 | note:80 gain:0.062477590650225304 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", - "[ 337/28 ⇜ (785/64 → 393/32) ⇝ 86/7 | note:84 gain:0.062477590650225304 clip:1 s:piano release:0.1 pan:0.6388888888888888 ]", - "[ 337/28 ⇜ (393/32 → 86/7) | note:75 gain:0.06247759065022554 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", - "[ 337/28 ⇜ (393/32 → 86/7) | note:79 gain:0.06247759065022554 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", - "[ 337/28 ⇜ (393/32 → 86/7) | note:80 gain:0.06247759065022554 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", - "[ 337/28 ⇜ (393/32 → 86/7) | note:84 gain:0.06247759065022554 clip:1 s:piano release:0.1 pan:0.6388888888888888 ]", - "[ (25/2 → 801/64) ⇝ 101/8 | note:D5 gain:0.5165366864730053 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", - "[ (25/2 → 801/64) ⇝ 101/8 | note:A5 gain:0.5165366864730053 clip:1 s:piano release:0.1 pan:0.625 ]", - "[ (25/2 → 801/64) ⇝ 101/8 | note:C6 gain:0.5165366864730053 clip:1 s:piano release:0.1 pan:0.6388888888888888 ]", - "[ (25/2 → 801/64) ⇝ 51/4 | note:B3 gain:0.25826834323650266 clip:1 s:piano release:0.1 pan:0.5231481481481481 ]", - "[ (25/2 → 801/64) ⇝ 51/4 | note:E4 gain:0.25826834323650266 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", - "[ (25/2 → 801/64) ⇝ 51/4 | note:F4 gain:0.25826834323650266 clip:1 s:piano release:0.1 pan:0.5509259259259259 ]", - "[ (25/2 → 801/64) ⇝ 51/4 | note:A4 gain:0.25826834323650266 clip:1 s:piano release:0.1 pan:0.5694444444444444 ]", - "[ (25/2 → 801/64) ⇝ 51/4 | note:G2 gain:0.5165366864730053 clip:1 s:piano release:0.1 pan:0.44907407407407407 ]", - "[ 25/2 ⇜ (801/64 → 401/32) ⇝ 101/8 | note:D5 gain:0.6247759065022586 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", - "[ 25/2 ⇜ (801/64 → 401/32) ⇝ 101/8 | note:A5 gain:0.6247759065022586 clip:1 s:piano release:0.1 pan:0.625 ]", - "[ 25/2 ⇜ (801/64 → 401/32) ⇝ 101/8 | note:C6 gain:0.6247759065022586 clip:1 s:piano release:0.1 pan:0.6388888888888888 ]", - "[ 25/2 ⇜ (801/64 → 401/32) ⇝ 51/4 | note:B3 gain:0.3123879532511293 clip:1 s:piano release:0.1 pan:0.5231481481481481 ]", - "[ 25/2 ⇜ (801/64 → 401/32) ⇝ 51/4 | note:E4 gain:0.3123879532511293 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", - "[ 25/2 ⇜ (801/64 → 401/32) ⇝ 51/4 | note:F4 gain:0.3123879532511293 clip:1 s:piano release:0.1 pan:0.5509259259259259 ]", - "[ 25/2 ⇜ (801/64 → 401/32) ⇝ 51/4 | note:A4 gain:0.3123879532511293 clip:1 s:piano release:0.1 pan:0.5694444444444444 ]", - "[ 25/2 ⇜ (801/64 → 401/32) ⇝ 51/4 | note:G2 gain:0.6247759065022586 clip:1 s:piano release:0.1 pan:0.44907407407407407 ]", - "[ 25/2 ⇜ (401/32 → 803/64) ⇝ 101/8 | note:D5 gain:0.6247759065022587 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", - "[ 25/2 ⇜ (401/32 → 803/64) ⇝ 101/8 | note:A5 gain:0.6247759065022587 clip:1 s:piano release:0.1 pan:0.625 ]", - "[ 25/2 ⇜ (401/32 → 803/64) ⇝ 101/8 | note:C6 gain:0.6247759065022587 clip:1 s:piano release:0.1 pan:0.6388888888888888 ]", - "[ 25/2 ⇜ (401/32 → 803/64) ⇝ 51/4 | note:B3 gain:0.31238795325112934 clip:1 s:piano release:0.1 pan:0.5231481481481481 ]", - "[ 25/2 ⇜ (401/32 → 803/64) ⇝ 51/4 | note:E4 gain:0.31238795325112934 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", - "[ 25/2 ⇜ (401/32 → 803/64) ⇝ 51/4 | note:F4 gain:0.31238795325112934 clip:1 s:piano release:0.1 pan:0.5509259259259259 ]", - "[ 25/2 ⇜ (401/32 → 803/64) ⇝ 51/4 | note:A4 gain:0.31238795325112934 clip:1 s:piano release:0.1 pan:0.5694444444444444 ]", - "[ 25/2 ⇜ (401/32 → 803/64) ⇝ 51/4 | note:G2 gain:0.6247759065022587 clip:1 s:piano release:0.1 pan:0.44907407407407407 ]", - "[ 25/2 ⇜ (803/64 → 201/16) ⇝ 101/8 | note:D5 gain:0.5165366864730269 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", - "[ 25/2 ⇜ (803/64 → 201/16) ⇝ 101/8 | note:A5 gain:0.5165366864730269 clip:1 s:piano release:0.1 pan:0.625 ]", - "[ 25/2 ⇜ (803/64 → 201/16) ⇝ 101/8 | note:C6 gain:0.5165366864730269 clip:1 s:piano release:0.1 pan:0.6388888888888888 ]", - "[ 25/2 ⇜ (803/64 → 201/16) ⇝ 51/4 | note:B3 gain:0.25826834323651343 clip:1 s:piano release:0.1 pan:0.5231481481481481 ]", - "[ 25/2 ⇜ (803/64 → 201/16) ⇝ 51/4 | note:E4 gain:0.25826834323651343 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", - "[ 25/2 ⇜ (803/64 → 201/16) ⇝ 51/4 | note:F4 gain:0.25826834323651343 clip:1 s:piano release:0.1 pan:0.5509259259259259 ]", - "[ 25/2 ⇜ (803/64 → 201/16) ⇝ 51/4 | note:A4 gain:0.25826834323651343 clip:1 s:piano release:0.1 pan:0.5694444444444444 ]", - "[ 25/2 ⇜ (803/64 → 201/16) ⇝ 51/4 | note:G2 gain:0.5165366864730269 clip:1 s:piano release:0.1 pan:0.44907407407407407 ]", - "[ 25/2 ⇜ (201/16 → 805/64) ⇝ 101/8 | note:D5 gain:0.3634633135269967 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", - "[ 25/2 ⇜ (201/16 → 805/64) ⇝ 101/8 | note:A5 gain:0.3634633135269967 clip:1 s:piano release:0.1 pan:0.625 ]", - "[ 25/2 ⇜ (201/16 → 805/64) ⇝ 101/8 | note:C6 gain:0.3634633135269967 clip:1 s:piano release:0.1 pan:0.6388888888888888 ]", - "[ 25/2 ⇜ (201/16 → 805/64) ⇝ 51/4 | note:B3 gain:0.18173165676349834 clip:1 s:piano release:0.1 pan:0.5231481481481481 ]", - "[ 25/2 ⇜ (201/16 → 805/64) ⇝ 51/4 | note:E4 gain:0.18173165676349834 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", - "[ 25/2 ⇜ (201/16 → 805/64) ⇝ 51/4 | note:F4 gain:0.18173165676349834 clip:1 s:piano release:0.1 pan:0.5509259259259259 ]", - "[ 25/2 ⇜ (201/16 → 805/64) ⇝ 51/4 | note:A4 gain:0.18173165676349834 clip:1 s:piano release:0.1 pan:0.5694444444444444 ]", - "[ 25/2 ⇜ (201/16 → 805/64) ⇝ 51/4 | note:G2 gain:0.3634633135269967 clip:1 s:piano release:0.1 pan:0.44907407407407407 ]", - "[ 25/2 ⇜ (805/64 → 403/32) ⇝ 101/8 | note:D5 gain:0.2552240934977424 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", - "[ 25/2 ⇜ (805/64 → 403/32) ⇝ 101/8 | note:A5 gain:0.2552240934977424 clip:1 s:piano release:0.1 pan:0.625 ]", - "[ 25/2 ⇜ (805/64 → 403/32) ⇝ 101/8 | note:C6 gain:0.2552240934977424 clip:1 s:piano release:0.1 pan:0.6388888888888888 ]", - "[ 25/2 ⇜ (805/64 → 403/32) ⇝ 51/4 | note:B3 gain:0.1276120467488712 clip:1 s:piano release:0.1 pan:0.5231481481481481 ]", - "[ 25/2 ⇜ (805/64 → 403/32) ⇝ 51/4 | note:E4 gain:0.1276120467488712 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", - "[ 25/2 ⇜ (805/64 → 403/32) ⇝ 51/4 | note:F4 gain:0.1276120467488712 clip:1 s:piano release:0.1 pan:0.5509259259259259 ]", - "[ 25/2 ⇜ (805/64 → 403/32) ⇝ 51/4 | note:A4 gain:0.1276120467488712 clip:1 s:piano release:0.1 pan:0.5694444444444444 ]", - "[ 25/2 ⇜ (805/64 → 403/32) ⇝ 51/4 | note:G2 gain:0.2552240934977424 clip:1 s:piano release:0.1 pan:0.44907407407407407 ]", - "[ 25/2 ⇜ (403/32 → 807/64) ⇝ 101/8 | note:D5 gain:0.2552240934977405 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", - "[ 25/2 ⇜ (403/32 → 807/64) ⇝ 101/8 | note:A5 gain:0.2552240934977405 clip:1 s:piano release:0.1 pan:0.625 ]", - "[ 25/2 ⇜ (403/32 → 807/64) ⇝ 101/8 | note:C6 gain:0.2552240934977405 clip:1 s:piano release:0.1 pan:0.6388888888888888 ]", - "[ 25/2 ⇜ (403/32 → 807/64) ⇝ 51/4 | note:B3 gain:0.12761204674887025 clip:1 s:piano release:0.1 pan:0.5231481481481481 ]", - "[ 25/2 ⇜ (403/32 → 807/64) ⇝ 51/4 | note:E4 gain:0.12761204674887025 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", - "[ 25/2 ⇜ (403/32 → 807/64) ⇝ 51/4 | note:F4 gain:0.12761204674887025 clip:1 s:piano release:0.1 pan:0.5509259259259259 ]", - "[ 25/2 ⇜ (403/32 → 807/64) ⇝ 51/4 | note:A4 gain:0.12761204674887025 clip:1 s:piano release:0.1 pan:0.5694444444444444 ]", - "[ 25/2 ⇜ (403/32 → 807/64) ⇝ 51/4 | note:G2 gain:0.2552240934977405 clip:1 s:piano release:0.1 pan:0.44907407407407407 ]", - "[ 25/2 ⇜ (807/64 → 101/8) | note:D5 gain:0.36346331352697114 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", - "[ 25/2 ⇜ (807/64 → 101/8) | note:A5 gain:0.36346331352697114 clip:1 s:piano release:0.1 pan:0.625 ]", - "[ 25/2 ⇜ (807/64 → 101/8) | note:C6 gain:0.36346331352697114 clip:1 s:piano release:0.1 pan:0.6388888888888888 ]", - "[ 25/2 ⇜ (807/64 → 101/8) ⇝ 51/4 | note:B3 gain:0.18173165676348557 clip:1 s:piano release:0.1 pan:0.5231481481481481 ]", - "[ 25/2 ⇜ (807/64 → 101/8) ⇝ 51/4 | note:E4 gain:0.18173165676348557 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", - "[ 25/2 ⇜ (807/64 → 101/8) ⇝ 51/4 | note:F4 gain:0.18173165676348557 clip:1 s:piano release:0.1 pan:0.5509259259259259 ]", - "[ 25/2 ⇜ (807/64 → 101/8) ⇝ 51/4 | note:A4 gain:0.18173165676348557 clip:1 s:piano release:0.1 pan:0.5694444444444444 ]", - "[ 25/2 ⇜ (807/64 → 101/8) ⇝ 51/4 | note:G2 gain:0.36346331352697114 clip:1 s:piano release:0.1 pan:0.44907407407407407 ]", - "[ 25/2 ⇜ (101/8 → 809/64) ⇝ 51/4 | note:B3 gain:0.25826834323651116 clip:1 s:piano release:0.1 pan:0.5231481481481481 ]", - "[ 25/2 ⇜ (101/8 → 809/64) ⇝ 51/4 | note:E4 gain:0.25826834323651116 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", - "[ 25/2 ⇜ (101/8 → 809/64) ⇝ 51/4 | note:F4 gain:0.25826834323651116 clip:1 s:piano release:0.1 pan:0.5509259259259259 ]", - "[ 25/2 ⇜ (101/8 → 809/64) ⇝ 51/4 | note:A4 gain:0.25826834323651116 clip:1 s:piano release:0.1 pan:0.5694444444444444 ]", - "[ 25/2 ⇜ (101/8 → 809/64) ⇝ 51/4 | note:G2 gain:0.5165366864730223 clip:1 s:piano release:0.1 pan:0.44907407407407407 ]", - "[ 25/2 ⇜ (809/64 → 405/32) ⇝ 51/4 | note:B3 gain:0.3123879532511284 clip:1 s:piano release:0.1 pan:0.5231481481481481 ]", - "[ 25/2 ⇜ (809/64 → 405/32) ⇝ 51/4 | note:E4 gain:0.3123879532511284 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", - "[ 25/2 ⇜ (809/64 → 405/32) ⇝ 51/4 | note:F4 gain:0.3123879532511284 clip:1 s:piano release:0.1 pan:0.5509259259259259 ]", - "[ 25/2 ⇜ (809/64 → 405/32) ⇝ 51/4 | note:A4 gain:0.3123879532511284 clip:1 s:piano release:0.1 pan:0.5694444444444444 ]", - "[ 25/2 ⇜ (809/64 → 405/32) ⇝ 51/4 | note:G2 gain:0.6247759065022568 clip:1 s:piano release:0.1 pan:0.44907407407407407 ]", - "[ 25/2 ⇜ (405/32 → 811/64) ⇝ 51/4 | note:B3 gain:0.31238795325113017 clip:1 s:piano release:0.1 pan:0.5231481481481481 ]", - "[ 25/2 ⇜ (405/32 → 811/64) ⇝ 51/4 | note:E4 gain:0.31238795325113017 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", - "[ 25/2 ⇜ (405/32 → 811/64) ⇝ 51/4 | note:F4 gain:0.31238795325113017 clip:1 s:piano release:0.1 pan:0.5509259259259259 ]", - "[ 25/2 ⇜ (405/32 → 811/64) ⇝ 51/4 | note:A4 gain:0.31238795325113017 clip:1 s:piano release:0.1 pan:0.5694444444444444 ]", - "[ 25/2 ⇜ (405/32 → 811/64) ⇝ 51/4 | note:G2 gain:0.6247759065022603 clip:1 s:piano release:0.1 pan:0.44907407407407407 ]", - "[ 25/2 ⇜ (811/64 → 203/16) ⇝ 51/4 | note:B3 gain:0.25826834323651543 clip:1 s:piano release:0.1 pan:0.5231481481481481 ]", - "[ 25/2 ⇜ (811/64 → 203/16) ⇝ 51/4 | note:E4 gain:0.25826834323651543 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", - "[ 25/2 ⇜ (811/64 → 203/16) ⇝ 51/4 | note:F4 gain:0.25826834323651543 clip:1 s:piano release:0.1 pan:0.5509259259259259 ]", - "[ 25/2 ⇜ (811/64 → 203/16) ⇝ 51/4 | note:A4 gain:0.25826834323651543 clip:1 s:piano release:0.1 pan:0.5694444444444444 ]", - "[ 25/2 ⇜ (811/64 → 203/16) ⇝ 51/4 | note:G2 gain:0.5165366864730309 clip:1 s:piano release:0.1 pan:0.44907407407407407 ]", - "[ 25/2 ⇜ (203/16 → 813/64) ⇝ 51/4 | note:B3 gain:0.18173165676348985 clip:1 s:piano release:0.1 pan:0.5231481481481481 ]", - "[ 25/2 ⇜ (203/16 → 813/64) ⇝ 51/4 | note:E4 gain:0.18173165676348985 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", - "[ 25/2 ⇜ (203/16 → 813/64) ⇝ 51/4 | note:F4 gain:0.18173165676348985 clip:1 s:piano release:0.1 pan:0.5509259259259259 ]", - "[ 25/2 ⇜ (203/16 → 813/64) ⇝ 51/4 | note:A4 gain:0.18173165676348985 clip:1 s:piano release:0.1 pan:0.5694444444444444 ]", - "[ 25/2 ⇜ (203/16 → 813/64) ⇝ 51/4 | note:G2 gain:0.3634633135269797 clip:1 s:piano release:0.1 pan:0.44907407407407407 ]", - "[ 25/2 ⇜ (813/64 → 407/32) ⇝ 51/4 | note:B3 gain:0.12761204674887203 clip:1 s:piano release:0.1 pan:0.5231481481481481 ]", - "[ 25/2 ⇜ (813/64 → 407/32) ⇝ 51/4 | note:E4 gain:0.12761204674887203 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", - "[ 25/2 ⇜ (813/64 → 407/32) ⇝ 51/4 | note:F4 gain:0.12761204674887203 clip:1 s:piano release:0.1 pan:0.5509259259259259 ]", - "[ 25/2 ⇜ (813/64 → 407/32) ⇝ 51/4 | note:A4 gain:0.12761204674887203 clip:1 s:piano release:0.1 pan:0.5694444444444444 ]", - "[ 25/2 ⇜ (813/64 → 407/32) ⇝ 51/4 | note:G2 gain:0.25522409349774405 clip:1 s:piano release:0.1 pan:0.44907407407407407 ]", - "[ 25/2 ⇜ (407/32 → 815/64) ⇝ 51/4 | note:B3 gain:0.12761204674886945 clip:1 s:piano release:0.1 pan:0.5231481481481481 ]", - "[ 25/2 ⇜ (407/32 → 815/64) ⇝ 51/4 | note:E4 gain:0.12761204674886945 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", - "[ 25/2 ⇜ (407/32 → 815/64) ⇝ 51/4 | note:F4 gain:0.12761204674886945 clip:1 s:piano release:0.1 pan:0.5509259259259259 ]", - "[ 25/2 ⇜ (407/32 → 815/64) ⇝ 51/4 | note:A4 gain:0.12761204674886945 clip:1 s:piano release:0.1 pan:0.5694444444444444 ]", - "[ 25/2 ⇜ (407/32 → 815/64) ⇝ 51/4 | note:G2 gain:0.2552240934977389 clip:1 s:piano release:0.1 pan:0.44907407407407407 ]", - "[ 25/2 ⇜ (815/64 → 51/4) | note:B3 gain:0.1817316567634836 clip:1 s:piano release:0.1 pan:0.5231481481481481 ]", - "[ 25/2 ⇜ (815/64 → 51/4) | note:E4 gain:0.1817316567634836 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", - "[ 25/2 ⇜ (815/64 → 51/4) | note:F4 gain:0.1817316567634836 clip:1 s:piano release:0.1 pan:0.5509259259259259 ]", - "[ 25/2 ⇜ (815/64 → 51/4) | note:A4 gain:0.1817316567634836 clip:1 s:piano release:0.1 pan:0.5694444444444444 ]", - "[ 25/2 ⇜ (815/64 → 51/4) | note:G2 gain:0.3634633135269672 clip:1 s:piano release:0.1 pan:0.44907407407407407 ]", - "[ (51/4 → 817/64) ⇝ 103/8 | note:G4 gain:0.5165366864730183 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", - "[ (51/4 → 817/64) ⇝ 103/8 | note:D5 gain:0.5165366864730183 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", - "[ (51/4 → 817/64) ⇝ 103/8 | note:F5 gain:0.5165366864730183 clip:1 s:piano release:0.1 pan:0.6064814814814814 ]", - "[ 51/4 ⇜ (817/64 → 409/32) ⇝ 103/8 | note:G4 gain:0.6247759065022551 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", - "[ 51/4 ⇜ (817/64 → 409/32) ⇝ 103/8 | note:D5 gain:0.6247759065022551 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", - "[ 51/4 ⇜ (817/64 → 409/32) ⇝ 103/8 | note:F5 gain:0.6247759065022551 clip:1 s:piano release:0.1 pan:0.6064814814814814 ]", - "[ 51/4 ⇜ (409/32 → 819/64) ⇝ 103/8 | note:G4 gain:0.6247759065022619 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", - "[ 51/4 ⇜ (409/32 → 819/64) ⇝ 103/8 | note:D5 gain:0.6247759065022619 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", - "[ 51/4 ⇜ (409/32 → 819/64) ⇝ 103/8 | note:F5 gain:0.6247759065022619 clip:1 s:piano release:0.1 pan:0.6064814814814814 ]", - "[ (179/14 → 819/64) ⇝ 365/28 | note:71 gain:0.06247759065022619 clip:1 s:piano release:0.1 pan:0.5787037037037037 ]", - "[ (179/14 → 819/64) ⇝ 365/28 | note:76 gain:0.06247759065022619 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", - "[ (179/14 → 819/64) ⇝ 365/28 | note:77 gain:0.06247759065022619 clip:1 s:piano release:0.1 pan:0.6064814814814814 ]", - "[ (179/14 → 819/64) ⇝ 365/28 | note:81 gain:0.06247759065022619 clip:1 s:piano release:0.1 pan:0.625 ]", - "[ 51/4 ⇜ (819/64 → 205/16) ⇝ 103/8 | note:G4 gain:0.5165366864730139 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", - "[ 51/4 ⇜ (819/64 → 205/16) ⇝ 103/8 | note:D5 gain:0.5165366864730139 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", - "[ 51/4 ⇜ (819/64 → 205/16) ⇝ 103/8 | note:F5 gain:0.5165366864730139 clip:1 s:piano release:0.1 pan:0.6064814814814814 ]", - "[ 179/14 ⇜ (819/64 → 205/16) ⇝ 365/28 | note:71 gain:0.05165366864730139 clip:1 s:piano release:0.1 pan:0.5787037037037037 ]", - "[ 179/14 ⇜ (819/64 → 205/16) ⇝ 365/28 | note:76 gain:0.05165366864730139 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", - "[ 179/14 ⇜ (819/64 → 205/16) ⇝ 365/28 | note:77 gain:0.05165366864730139 clip:1 s:piano release:0.1 pan:0.6064814814814814 ]", - "[ 179/14 ⇜ (819/64 → 205/16) ⇝ 365/28 | note:81 gain:0.05165366864730139 clip:1 s:piano release:0.1 pan:0.625 ]", - "[ 51/4 ⇜ (205/16 → 821/64) ⇝ 103/8 | note:G4 gain:0.36346331352698363 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", - "[ 51/4 ⇜ (205/16 → 821/64) ⇝ 103/8 | note:D5 gain:0.36346331352698363 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", - "[ 51/4 ⇜ (205/16 → 821/64) ⇝ 103/8 | note:F5 gain:0.36346331352698363 clip:1 s:piano release:0.1 pan:0.6064814814814814 ]", - "[ 179/14 ⇜ (205/16 → 821/64) ⇝ 365/28 | note:71 gain:0.036346331352698366 clip:1 s:piano release:0.1 pan:0.5787037037037037 ]", - "[ 179/14 ⇜ (205/16 → 821/64) ⇝ 365/28 | note:76 gain:0.036346331352698366 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", - "[ 179/14 ⇜ (205/16 → 821/64) ⇝ 365/28 | note:77 gain:0.036346331352698366 clip:1 s:piano release:0.1 pan:0.6064814814814814 ]", - "[ 179/14 ⇜ (205/16 → 821/64) ⇝ 365/28 | note:81 gain:0.036346331352698366 clip:1 s:piano release:0.1 pan:0.625 ]", - "[ 51/4 ⇜ (821/64 → 411/32) ⇝ 103/8 | note:G4 gain:0.25522409349774566 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", - "[ 51/4 ⇜ (821/64 → 411/32) ⇝ 103/8 | note:D5 gain:0.25522409349774566 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", - "[ 51/4 ⇜ (821/64 → 411/32) ⇝ 103/8 | note:F5 gain:0.25522409349774566 clip:1 s:piano release:0.1 pan:0.6064814814814814 ]", - "[ 179/14 ⇜ (821/64 → 411/32) ⇝ 365/28 | note:71 gain:0.025522409349774566 clip:1 s:piano release:0.1 pan:0.5787037037037037 ]", - "[ 179/14 ⇜ (821/64 → 411/32) ⇝ 365/28 | note:76 gain:0.025522409349774566 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", - "[ 179/14 ⇜ (821/64 → 411/32) ⇝ 365/28 | note:77 gain:0.025522409349774566 clip:1 s:piano release:0.1 pan:0.6064814814814814 ]", - "[ 179/14 ⇜ (821/64 → 411/32) ⇝ 365/28 | note:81 gain:0.025522409349774566 clip:1 s:piano release:0.1 pan:0.625 ]", - "[ 51/4 ⇜ (411/32 → 823/64) ⇝ 103/8 | note:G4 gain:0.2552240934977372 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", - "[ 51/4 ⇜ (411/32 → 823/64) ⇝ 103/8 | note:D5 gain:0.2552240934977372 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", - "[ 51/4 ⇜ (411/32 → 823/64) ⇝ 103/8 | note:F5 gain:0.2552240934977372 clip:1 s:piano release:0.1 pan:0.6064814814814814 ]", - "[ 179/14 ⇜ (411/32 → 823/64) ⇝ 365/28 | note:71 gain:0.025522409349773723 clip:1 s:piano release:0.1 pan:0.5787037037037037 ]", - "[ 179/14 ⇜ (411/32 → 823/64) ⇝ 365/28 | note:76 gain:0.025522409349773723 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", - "[ 179/14 ⇜ (411/32 → 823/64) ⇝ 365/28 | note:77 gain:0.025522409349773723 clip:1 s:piano release:0.1 pan:0.6064814814814814 ]", - "[ 179/14 ⇜ (411/32 → 823/64) ⇝ 365/28 | note:81 gain:0.025522409349773723 clip:1 s:piano release:0.1 pan:0.625 ]", - "[ 51/4 ⇜ (823/64 → 103/8) | note:G4 gain:0.36346331352698424 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", - "[ 51/4 ⇜ (823/64 → 103/8) | note:D5 gain:0.36346331352698424 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", - "[ 51/4 ⇜ (823/64 → 103/8) | note:F5 gain:0.36346331352698424 clip:1 s:piano release:0.1 pan:0.6064814814814814 ]", - "[ 179/14 ⇜ (823/64 → 103/8) ⇝ 365/28 | note:71 gain:0.03634633135269843 clip:1 s:piano release:0.1 pan:0.5787037037037037 ]", - "[ 179/14 ⇜ (823/64 → 103/8) ⇝ 365/28 | note:76 gain:0.03634633135269843 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", - "[ 179/14 ⇜ (823/64 → 103/8) ⇝ 365/28 | note:77 gain:0.03634633135269843 clip:1 s:piano release:0.1 pan:0.6064814814814814 ]", - "[ 179/14 ⇜ (823/64 → 103/8) ⇝ 365/28 | note:81 gain:0.03634633135269843 clip:1 s:piano release:0.1 pan:0.625 ]", - "[ 179/14 ⇜ (103/8 → 825/64) ⇝ 365/28 | note:71 gain:0.05165366864730145 clip:1 s:piano release:0.1 pan:0.5787037037037037 ]", - "[ 179/14 ⇜ (103/8 → 825/64) ⇝ 365/28 | note:76 gain:0.05165366864730145 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", - "[ 179/14 ⇜ (103/8 → 825/64) ⇝ 365/28 | note:77 gain:0.05165366864730145 clip:1 s:piano release:0.1 pan:0.6064814814814814 ]", - "[ 179/14 ⇜ (103/8 → 825/64) ⇝ 365/28 | note:81 gain:0.05165366864730145 clip:1 s:piano release:0.1 pan:0.625 ]", - "[ 179/14 ⇜ (825/64 → 413/32) ⇝ 365/28 | note:71 gain:0.06247759065022536 clip:1 s:piano release:0.1 pan:0.5787037037037037 ]", - "[ 179/14 ⇜ (825/64 → 413/32) ⇝ 365/28 | note:76 gain:0.06247759065022536 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", - "[ 179/14 ⇜ (825/64 → 413/32) ⇝ 365/28 | note:77 gain:0.06247759065022536 clip:1 s:piano release:0.1 pan:0.6064814814814814 ]", - "[ 179/14 ⇜ (825/64 → 413/32) ⇝ 365/28 | note:81 gain:0.06247759065022536 clip:1 s:piano release:0.1 pan:0.625 ]", - "[ 179/14 ⇜ (413/32 → 827/64) ⇝ 365/28 | note:71 gain:0.06247759065022637 clip:1 s:piano release:0.1 pan:0.5787037037037037 ]", - "[ 179/14 ⇜ (413/32 → 827/64) ⇝ 365/28 | note:76 gain:0.06247759065022637 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", - "[ 179/14 ⇜ (413/32 → 827/64) ⇝ 365/28 | note:77 gain:0.06247759065022637 clip:1 s:piano release:0.1 pan:0.6064814814814814 ]", - "[ 179/14 ⇜ (413/32 → 827/64) ⇝ 365/28 | note:81 gain:0.06247759065022637 clip:1 s:piano release:0.1 pan:0.625 ]", - "[ 179/14 ⇜ (827/64 → 207/16) ⇝ 365/28 | note:71 gain:0.05165366864730178 clip:1 s:piano release:0.1 pan:0.5787037037037037 ]", - "[ 179/14 ⇜ (827/64 → 207/16) ⇝ 365/28 | note:76 gain:0.05165366864730178 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", - "[ 179/14 ⇜ (827/64 → 207/16) ⇝ 365/28 | note:77 gain:0.05165366864730178 clip:1 s:piano release:0.1 pan:0.6064814814814814 ]", - "[ 179/14 ⇜ (827/64 → 207/16) ⇝ 365/28 | note:81 gain:0.05165366864730178 clip:1 s:piano release:0.1 pan:0.625 ]", - "[ 179/14 ⇜ (207/16 → 829/64) ⇝ 365/28 | note:71 gain:0.03634633135269876 clip:1 s:piano release:0.1 pan:0.5787037037037037 ]", - "[ 179/14 ⇜ (207/16 → 829/64) ⇝ 365/28 | note:76 gain:0.03634633135269876 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", - "[ 179/14 ⇜ (207/16 → 829/64) ⇝ 365/28 | note:77 gain:0.03634633135269876 clip:1 s:piano release:0.1 pan:0.6064814814814814 ]", - "[ 179/14 ⇜ (207/16 → 829/64) ⇝ 365/28 | note:81 gain:0.03634633135269876 clip:1 s:piano release:0.1 pan:0.625 ]", - "[ 179/14 ⇜ (829/64 → 415/32) ⇝ 365/28 | note:71 gain:0.02552240934977474 clip:1 s:piano release:0.1 pan:0.5787037037037037 ]", - "[ 179/14 ⇜ (829/64 → 415/32) ⇝ 365/28 | note:76 gain:0.02552240934977474 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", - "[ 179/14 ⇜ (829/64 → 415/32) ⇝ 365/28 | note:77 gain:0.02552240934977474 clip:1 s:piano release:0.1 pan:0.6064814814814814 ]", - "[ 179/14 ⇜ (829/64 → 415/32) ⇝ 365/28 | note:81 gain:0.02552240934977474 clip:1 s:piano release:0.1 pan:0.625 ]", - "[ 179/14 ⇜ (415/32 → 831/64) ⇝ 365/28 | note:71 gain:0.025522409349774428 clip:1 s:piano release:0.1 pan:0.5787037037037037 ]", - "[ 179/14 ⇜ (415/32 → 831/64) ⇝ 365/28 | note:76 gain:0.025522409349774428 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", - "[ 179/14 ⇜ (415/32 → 831/64) ⇝ 365/28 | note:77 gain:0.025522409349774428 clip:1 s:piano release:0.1 pan:0.6064814814814814 ]", - "[ 179/14 ⇜ (415/32 → 831/64) ⇝ 365/28 | note:81 gain:0.025522409349774428 clip:1 s:piano release:0.1 pan:0.625 ]", - "[ 179/14 ⇜ (831/64 → 13/1) ⇝ 365/28 | note:71 gain:0.036346331352698026 clip:1 s:piano release:0.1 pan:0.5787037037037037 ]", - "[ 179/14 ⇜ (831/64 → 13/1) ⇝ 365/28 | note:76 gain:0.036346331352698026 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", - "[ 179/14 ⇜ (831/64 → 13/1) ⇝ 365/28 | note:77 gain:0.036346331352698026 clip:1 s:piano release:0.1 pan:0.6064814814814814 ]", - "[ 179/14 ⇜ (831/64 → 13/1) ⇝ 365/28 | note:81 gain:0.036346331352698026 clip:1 s:piano release:0.1 pan:0.625 ]", - "[ 179/14 ⇜ (13/1 → 833/64) ⇝ 365/28 | note:71 gain:0.05165366864730103 clip:1 s:piano release:0.1 pan:0.5787037037037037 ]", - "[ 179/14 ⇜ (13/1 → 833/64) ⇝ 365/28 | note:76 gain:0.05165366864730103 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", - "[ 179/14 ⇜ (13/1 → 833/64) ⇝ 365/28 | note:77 gain:0.05165366864730103 clip:1 s:piano release:0.1 pan:0.6064814814814814 ]", - "[ 179/14 ⇜ (13/1 → 833/64) ⇝ 365/28 | note:81 gain:0.05165366864730103 clip:1 s:piano release:0.1 pan:0.625 ]", - "[ (13/1 → 833/64) ⇝ 53/4 | note:G2 gain:0.5165366864730103 clip:1 s:piano release:0.1 pan:0.44907407407407407 ]", - "[ 179/14 ⇜ (833/64 → 417/32) ⇝ 365/28 | note:71 gain:0.06247759065022518 clip:1 s:piano release:0.1 pan:0.5787037037037037 ]", - "[ 179/14 ⇜ (833/64 → 417/32) ⇝ 365/28 | note:76 gain:0.06247759065022518 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", - "[ 179/14 ⇜ (833/64 → 417/32) ⇝ 365/28 | note:77 gain:0.06247759065022518 clip:1 s:piano release:0.1 pan:0.6064814814814814 ]", - "[ 179/14 ⇜ (833/64 → 417/32) ⇝ 365/28 | note:81 gain:0.06247759065022518 clip:1 s:piano release:0.1 pan:0.625 ]", - "[ 13/1 ⇜ (833/64 → 417/32) ⇝ 53/4 | note:G2 gain:0.6247759065022518 clip:1 s:piano release:0.1 pan:0.44907407407407407 ]", - "[ 179/14 ⇜ (417/32 → 365/28) | note:71 gain:0.06247759065022566 clip:1 s:piano release:0.1 pan:0.5787037037037037 ]", - "[ 179/14 ⇜ (417/32 → 365/28) | note:76 gain:0.06247759065022566 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", - "[ 179/14 ⇜ (417/32 → 365/28) | note:77 gain:0.06247759065022566 clip:1 s:piano release:0.1 pan:0.6064814814814814 ]", - "[ 179/14 ⇜ (417/32 → 365/28) | note:81 gain:0.06247759065022566 clip:1 s:piano release:0.1 pan:0.625 ]", - "[ 13/1 ⇜ (417/32 → 835/64) ⇝ 53/4 | note:G2 gain:0.6247759065022566 clip:1 s:piano release:0.1 pan:0.44907407407407407 ]", - "[ 13/1 ⇜ (835/64 → 209/16) ⇝ 53/4 | note:G2 gain:0.5165366864730218 clip:1 s:piano release:0.1 pan:0.44907407407407407 ]", - "[ 13/1 ⇜ (209/16 → 837/64) ⇝ 53/4 | note:G2 gain:0.3634633135269916 clip:1 s:piano release:0.1 pan:0.44907407407407407 ]", - "[ 13/1 ⇜ (837/64 → 419/32) ⇝ 53/4 | note:G2 gain:0.2552240934977403 clip:1 s:piano release:0.1 pan:0.44907407407407407 ]", - "[ 13/1 ⇜ (419/32 → 839/64) ⇝ 53/4 | note:G2 gain:0.25522409349774267 clip:1 s:piano release:0.1 pan:0.44907407407407407 ]", - "[ 13/1 ⇜ (839/64 → 105/8) ⇝ 53/4 | note:G2 gain:0.36346331352697625 clip:1 s:piano release:0.1 pan:0.44907407407407407 ]", - "[ 13/1 ⇜ (105/8 → 841/64) ⇝ 53/4 | note:G2 gain:0.5165366864730064 clip:1 s:piano release:0.1 pan:0.44907407407407407 ]", - "[ (105/8 → 841/64) ⇝ 53/4 | note:G4 gain:0.5165366864730064 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", - "[ (105/8 → 841/64) ⇝ 53/4 | note:D5 gain:0.5165366864730064 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", - "[ (105/8 → 841/64) ⇝ 53/4 | note:F5 gain:0.5165366864730064 clip:1 s:piano release:0.1 pan:0.6064814814814814 ]", - "[ 13/1 ⇜ (841/64 → 421/32) ⇝ 53/4 | note:G2 gain:0.6247759065022589 clip:1 s:piano release:0.1 pan:0.44907407407407407 ]", - "[ 105/8 ⇜ (841/64 → 421/32) ⇝ 53/4 | note:G4 gain:0.6247759065022589 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", - "[ 105/8 ⇜ (841/64 → 421/32) ⇝ 53/4 | note:D5 gain:0.6247759065022589 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", - "[ 105/8 ⇜ (841/64 → 421/32) ⇝ 53/4 | note:F5 gain:0.6247759065022589 clip:1 s:piano release:0.1 pan:0.6064814814814814 ]", - "[ 13/1 ⇜ (421/32 → 843/64) ⇝ 53/4 | note:G2 gain:0.6247759065022582 clip:1 s:piano release:0.1 pan:0.44907407407407407 ]", - "[ 105/8 ⇜ (421/32 → 843/64) ⇝ 53/4 | note:G4 gain:0.6247759065022582 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", - "[ 105/8 ⇜ (421/32 → 843/64) ⇝ 53/4 | note:D5 gain:0.6247759065022582 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", - "[ 105/8 ⇜ (421/32 → 843/64) ⇝ 53/4 | note:F5 gain:0.6247759065022582 clip:1 s:piano release:0.1 pan:0.6064814814814814 ]", - "[ 13/1 ⇜ (843/64 → 211/16) ⇝ 53/4 | note:G2 gain:0.5165366864730258 clip:1 s:piano release:0.1 pan:0.44907407407407407 ]", - "[ 105/8 ⇜ (843/64 → 211/16) ⇝ 53/4 | note:G4 gain:0.5165366864730258 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", - "[ 105/8 ⇜ (843/64 → 211/16) ⇝ 53/4 | note:D5 gain:0.5165366864730258 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", - "[ 105/8 ⇜ (843/64 → 211/16) ⇝ 53/4 | note:F5 gain:0.5165366864730258 clip:1 s:piano release:0.1 pan:0.6064814814814814 ]", - "[ 13/1 ⇜ (211/16 → 845/64) ⇝ 53/4 | note:G2 gain:0.3634633135269956 clip:1 s:piano release:0.1 pan:0.44907407407407407 ]", - "[ 105/8 ⇜ (211/16 → 845/64) ⇝ 53/4 | note:G4 gain:0.3634633135269956 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", - "[ 105/8 ⇜ (211/16 → 845/64) ⇝ 53/4 | note:D5 gain:0.3634633135269956 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", - "[ 105/8 ⇜ (211/16 → 845/64) ⇝ 53/4 | note:F5 gain:0.3634633135269956 clip:1 s:piano release:0.1 pan:0.6064814814814814 ]", - "[ 13/1 ⇜ (845/64 → 423/32) ⇝ 53/4 | note:G2 gain:0.25522409349774194 clip:1 s:piano release:0.1 pan:0.44907407407407407 ]", - "[ 105/8 ⇜ (845/64 → 423/32) ⇝ 53/4 | note:G4 gain:0.25522409349774194 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", - "[ 105/8 ⇜ (845/64 → 423/32) ⇝ 53/4 | note:D5 gain:0.25522409349774194 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", - "[ 105/8 ⇜ (845/64 → 423/32) ⇝ 53/4 | note:F5 gain:0.25522409349774194 clip:1 s:piano release:0.1 pan:0.6064814814814814 ]", - "[ 13/1 ⇜ (423/32 → 847/64) ⇝ 53/4 | note:G2 gain:0.25522409349774094 clip:1 s:piano release:0.1 pan:0.44907407407407407 ]", - "[ 105/8 ⇜ (423/32 → 847/64) ⇝ 53/4 | note:G4 gain:0.25522409349774094 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", - "[ 105/8 ⇜ (423/32 → 847/64) ⇝ 53/4 | note:D5 gain:0.25522409349774094 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", - "[ 105/8 ⇜ (423/32 → 847/64) ⇝ 53/4 | note:F5 gain:0.25522409349774094 clip:1 s:piano release:0.1 pan:0.6064814814814814 ]", - "[ 13/1 ⇜ (847/64 → 53/4) | note:G2 gain:0.36346331352697225 clip:1 s:piano release:0.1 pan:0.44907407407407407 ]", - "[ 105/8 ⇜ (847/64 → 53/4) | note:G4 gain:0.36346331352697225 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", - "[ 105/8 ⇜ (847/64 → 53/4) | note:D5 gain:0.36346331352697225 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", - "[ 105/8 ⇜ (847/64 → 53/4) | note:F5 gain:0.36346331352697225 clip:1 s:piano release:0.1 pan:0.6064814814814814 ]", - "[ (53/4 → 849/64) ⇝ 27/2 | note:B3 gain:0.25826834323651177 clip:1 s:piano release:0.1 pan:0.5231481481481481 ]", - "[ (53/4 → 849/64) ⇝ 27/2 | note:E4 gain:0.25826834323651177 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", - "[ (53/4 → 849/64) ⇝ 27/2 | note:F4 gain:0.25826834323651177 clip:1 s:piano release:0.1 pan:0.5509259259259259 ]", - "[ (53/4 → 849/64) ⇝ 27/2 | note:A4 gain:0.25826834323651177 clip:1 s:piano release:0.1 pan:0.5694444444444444 ]", - "[ 53/4 ⇜ (849/64 → 425/32) ⇝ 27/2 | note:B3 gain:0.31238795325112867 clip:1 s:piano release:0.1 pan:0.5231481481481481 ]", - "[ 53/4 ⇜ (849/64 → 425/32) ⇝ 27/2 | note:E4 gain:0.31238795325112867 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", - "[ 53/4 ⇜ (849/64 → 425/32) ⇝ 27/2 | note:F4 gain:0.31238795325112867 clip:1 s:piano release:0.1 pan:0.5509259259259259 ]", - "[ 53/4 ⇜ (849/64 → 425/32) ⇝ 27/2 | note:A4 gain:0.31238795325112867 clip:1 s:piano release:0.1 pan:0.5694444444444444 ]", - "[ 53/4 ⇜ (425/32 → 851/64) ⇝ 27/2 | note:B3 gain:0.31238795325113 clip:1 s:piano release:0.1 pan:0.5231481481481481 ]", - "[ 53/4 ⇜ (425/32 → 851/64) ⇝ 27/2 | note:E4 gain:0.31238795325113 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", - "[ 53/4 ⇜ (425/32 → 851/64) ⇝ 27/2 | note:F4 gain:0.31238795325113 clip:1 s:piano release:0.1 pan:0.5509259259259259 ]", - "[ 53/4 ⇜ (425/32 → 851/64) ⇝ 27/2 | note:A4 gain:0.31238795325113 clip:1 s:piano release:0.1 pan:0.5694444444444444 ]", - "[ 53/4 ⇜ (851/64 → 213/16) ⇝ 27/2 | note:B3 gain:0.2582683432365149 clip:1 s:piano release:0.1 pan:0.5231481481481481 ]", - "[ 53/4 ⇜ (851/64 → 213/16) ⇝ 27/2 | note:E4 gain:0.2582683432365149 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", - "[ 53/4 ⇜ (851/64 → 213/16) ⇝ 27/2 | note:F4 gain:0.2582683432365149 clip:1 s:piano release:0.1 pan:0.5509259259259259 ]", - "[ 53/4 ⇜ (851/64 → 213/16) ⇝ 27/2 | note:A4 gain:0.2582683432365149 clip:1 s:piano release:0.1 pan:0.5694444444444444 ]", - "[ 53/4 ⇜ (213/16 → 853/64) ⇝ 27/2 | note:B3 gain:0.1817316567634893 clip:1 s:piano release:0.1 pan:0.5231481481481481 ]", - "[ 53/4 ⇜ (213/16 → 853/64) ⇝ 27/2 | note:E4 gain:0.1817316567634893 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", - "[ 53/4 ⇜ (213/16 → 853/64) ⇝ 27/2 | note:F4 gain:0.1817316567634893 clip:1 s:piano release:0.1 pan:0.5509259259259259 ]", - "[ 53/4 ⇜ (213/16 → 853/64) ⇝ 27/2 | note:A4 gain:0.1817316567634893 clip:1 s:piano release:0.1 pan:0.5694444444444444 ]", - "[ 53/4 ⇜ (853/64 → 427/32) ⇝ 27/2 | note:B3 gain:0.1276120467488718 clip:1 s:piano release:0.1 pan:0.5231481481481481 ]", - "[ 53/4 ⇜ (853/64 → 427/32) ⇝ 27/2 | note:E4 gain:0.1276120467488718 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", - "[ 53/4 ⇜ (853/64 → 427/32) ⇝ 27/2 | note:F4 gain:0.1276120467488718 clip:1 s:piano release:0.1 pan:0.5509259259259259 ]", - "[ 53/4 ⇜ (853/64 → 427/32) ⇝ 27/2 | note:A4 gain:0.1276120467488718 clip:1 s:piano release:0.1 pan:0.5694444444444444 ]", - "[ 53/4 ⇜ (427/32 → 855/64) ⇝ 27/2 | note:B3 gain:0.12761204674886967 clip:1 s:piano release:0.1 pan:0.5231481481481481 ]", - "[ 53/4 ⇜ (427/32 → 855/64) ⇝ 27/2 | note:E4 gain:0.12761204674886967 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", - "[ 53/4 ⇜ (427/32 → 855/64) ⇝ 27/2 | note:F4 gain:0.12761204674886967 clip:1 s:piano release:0.1 pan:0.5509259259259259 ]", - "[ 53/4 ⇜ (427/32 → 855/64) ⇝ 27/2 | note:A4 gain:0.12761204674886967 clip:1 s:piano release:0.1 pan:0.5694444444444444 ]", - "[ 53/4 ⇜ (855/64 → 107/8) ⇝ 27/2 | note:B3 gain:0.18173165676348413 clip:1 s:piano release:0.1 pan:0.5231481481481481 ]", - "[ 53/4 ⇜ (855/64 → 107/8) ⇝ 27/2 | note:E4 gain:0.18173165676348413 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", - "[ 53/4 ⇜ (855/64 → 107/8) ⇝ 27/2 | note:F4 gain:0.18173165676348413 clip:1 s:piano release:0.1 pan:0.5509259259259259 ]", - "[ 53/4 ⇜ (855/64 → 107/8) ⇝ 27/2 | note:A4 gain:0.18173165676348413 clip:1 s:piano release:0.1 pan:0.5694444444444444 ]", - "[ 53/4 ⇜ (107/8 → 857/64) ⇝ 27/2 | note:B3 gain:0.2582683432365097 clip:1 s:piano release:0.1 pan:0.5231481481481481 ]", - "[ 53/4 ⇜ (107/8 → 857/64) ⇝ 27/2 | note:E4 gain:0.2582683432365097 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", - "[ 53/4 ⇜ (107/8 → 857/64) ⇝ 27/2 | note:F4 gain:0.2582683432365097 clip:1 s:piano release:0.1 pan:0.5509259259259259 ]", - "[ 53/4 ⇜ (107/8 → 857/64) ⇝ 27/2 | note:A4 gain:0.2582683432365097 clip:1 s:piano release:0.1 pan:0.5694444444444444 ]", - "[ 53/4 ⇜ (857/64 → 429/32) ⇝ 27/2 | note:B3 gain:0.3123879532511278 clip:1 s:piano release:0.1 pan:0.5231481481481481 ]", - "[ 53/4 ⇜ (857/64 → 429/32) ⇝ 27/2 | note:E4 gain:0.3123879532511278 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", - "[ 53/4 ⇜ (857/64 → 429/32) ⇝ 27/2 | note:F4 gain:0.3123879532511278 clip:1 s:piano release:0.1 pan:0.5509259259259259 ]", - "[ 53/4 ⇜ (857/64 → 429/32) ⇝ 27/2 | note:A4 gain:0.3123879532511278 clip:1 s:piano release:0.1 pan:0.5694444444444444 ]", - "[ 53/4 ⇜ (429/32 → 859/64) ⇝ 27/2 | note:B3 gain:0.3123879532511308 clip:1 s:piano release:0.1 pan:0.5231481481481481 ]", - "[ 53/4 ⇜ (429/32 → 859/64) ⇝ 27/2 | note:E4 gain:0.3123879532511308 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", - "[ 53/4 ⇜ (429/32 → 859/64) ⇝ 27/2 | note:F4 gain:0.3123879532511308 clip:1 s:piano release:0.1 pan:0.5509259259259259 ]", - "[ 53/4 ⇜ (429/32 → 859/64) ⇝ 27/2 | note:A4 gain:0.3123879532511308 clip:1 s:piano release:0.1 pan:0.5694444444444444 ]", - "[ 53/4 ⇜ (859/64 → 215/16) ⇝ 27/2 | note:B3 gain:0.2582683432365064 clip:1 s:piano release:0.1 pan:0.5231481481481481 ]", - "[ 53/4 ⇜ (859/64 → 215/16) ⇝ 27/2 | note:E4 gain:0.2582683432365064 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", - "[ 53/4 ⇜ (859/64 → 215/16) ⇝ 27/2 | note:F4 gain:0.2582683432365064 clip:1 s:piano release:0.1 pan:0.5509259259259259 ]", - "[ 53/4 ⇜ (859/64 → 215/16) ⇝ 27/2 | note:A4 gain:0.2582683432365064 clip:1 s:piano release:0.1 pan:0.5694444444444444 ]", - "[ 53/4 ⇜ (215/16 → 861/64) ⇝ 27/2 | note:B3 gain:0.1817316567634913 clip:1 s:piano release:0.1 pan:0.5231481481481481 ]", - "[ 53/4 ⇜ (215/16 → 861/64) ⇝ 27/2 | note:E4 gain:0.1817316567634913 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", - "[ 53/4 ⇜ (215/16 → 861/64) ⇝ 27/2 | note:F4 gain:0.1817316567634913 clip:1 s:piano release:0.1 pan:0.5509259259259259 ]", - "[ 53/4 ⇜ (215/16 → 861/64) ⇝ 27/2 | note:A4 gain:0.1817316567634913 clip:1 s:piano release:0.1 pan:0.5694444444444444 ]", - "[ 53/4 ⇜ (861/64 → 431/32) ⇝ 27/2 | note:B3 gain:0.1276120467488726 clip:1 s:piano release:0.1 pan:0.5231481481481481 ]", - "[ 53/4 ⇜ (861/64 → 431/32) ⇝ 27/2 | note:E4 gain:0.1276120467488726 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", - "[ 53/4 ⇜ (861/64 → 431/32) ⇝ 27/2 | note:F4 gain:0.1276120467488726 clip:1 s:piano release:0.1 pan:0.5509259259259259 ]", - "[ 53/4 ⇜ (861/64 → 431/32) ⇝ 27/2 | note:A4 gain:0.1276120467488726 clip:1 s:piano release:0.1 pan:0.5694444444444444 ]", - "[ 53/4 ⇜ (431/32 → 863/64) ⇝ 27/2 | note:B3 gain:0.12761204674886883 clip:1 s:piano release:0.1 pan:0.5231481481481481 ]", - "[ 53/4 ⇜ (431/32 → 863/64) ⇝ 27/2 | note:E4 gain:0.12761204674886883 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", - "[ 53/4 ⇜ (431/32 → 863/64) ⇝ 27/2 | note:F4 gain:0.12761204674886883 clip:1 s:piano release:0.1 pan:0.5509259259259259 ]", - "[ 53/4 ⇜ (431/32 → 863/64) ⇝ 27/2 | note:A4 gain:0.12761204674886883 clip:1 s:piano release:0.1 pan:0.5694444444444444 ]", - "[ 53/4 ⇜ (863/64 → 27/2) | note:B3 gain:0.18173165676349265 clip:1 s:piano release:0.1 pan:0.5231481481481481 ]", - "[ 53/4 ⇜ (863/64 → 27/2) | note:E4 gain:0.18173165676349265 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", - "[ 53/4 ⇜ (863/64 → 27/2) | note:F4 gain:0.18173165676349265 clip:1 s:piano release:0.1 pan:0.5509259259259259 ]", - "[ 53/4 ⇜ (863/64 → 27/2) | note:A4 gain:0.18173165676349265 clip:1 s:piano release:0.1 pan:0.5694444444444444 ]", - "[ (27/2 → 865/64) ⇝ 109/8 | note:D5 gain:0.5165366864730155 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", - "[ (27/2 → 865/64) ⇝ 109/8 | note:A5 gain:0.5165366864730155 clip:1 s:piano release:0.1 pan:0.625 ]", - "[ (27/2 → 865/64) ⇝ 109/8 | note:C6 gain:0.5165366864730155 clip:1 s:piano release:0.1 pan:0.6388888888888888 ]", - "[ (27/2 → 865/64) ⇝ 55/4 | note:G2 gain:0.5165366864730155 clip:1 s:piano release:0.1 pan:0.44907407407407407 ]", - "[ 27/2 ⇜ (865/64 → 433/32) ⇝ 109/8 | note:D5 gain:0.6247759065022539 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", - "[ 27/2 ⇜ (865/64 → 433/32) ⇝ 109/8 | note:A5 gain:0.6247759065022539 clip:1 s:piano release:0.1 pan:0.625 ]", - "[ 27/2 ⇜ (865/64 → 433/32) ⇝ 109/8 | note:C6 gain:0.6247759065022539 clip:1 s:piano release:0.1 pan:0.6388888888888888 ]", - "[ 27/2 ⇜ (865/64 → 433/32) ⇝ 55/4 | note:G2 gain:0.6247759065022539 clip:1 s:piano release:0.1 pan:0.44907407407407407 ]", - "[ 27/2 ⇜ (433/32 → 867/64) ⇝ 109/8 | note:D5 gain:0.6247759065022631 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", - "[ 27/2 ⇜ (433/32 → 867/64) ⇝ 109/8 | note:A5 gain:0.6247759065022631 clip:1 s:piano release:0.1 pan:0.625 ]", - "[ 27/2 ⇜ (433/32 → 867/64) ⇝ 109/8 | note:C6 gain:0.6247759065022631 clip:1 s:piano release:0.1 pan:0.6388888888888888 ]", - "[ 27/2 ⇜ (433/32 → 867/64) ⇝ 55/4 | note:G2 gain:0.6247759065022631 clip:1 s:piano release:0.1 pan:0.44907407407407407 ]", - "[ (379/28 → 867/64) ⇝ 193/14 | note:71 gain:0.06247759065022632 clip:1 s:piano release:0.1 pan:0.5787037037037037 ]", - "[ (379/28 → 867/64) ⇝ 193/14 | note:76 gain:0.06247759065022632 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", - "[ (379/28 → 867/64) ⇝ 193/14 | note:77 gain:0.06247759065022632 clip:1 s:piano release:0.1 pan:0.6064814814814814 ]", - "[ (379/28 → 867/64) ⇝ 193/14 | note:81 gain:0.06247759065022632 clip:1 s:piano release:0.1 pan:0.625 ]", - "[ 27/2 ⇜ (867/64 → 217/16) ⇝ 109/8 | note:D5 gain:0.5165366864730168 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", - "[ 27/2 ⇜ (867/64 → 217/16) ⇝ 109/8 | note:A5 gain:0.5165366864730168 clip:1 s:piano release:0.1 pan:0.625 ]", - "[ 27/2 ⇜ (867/64 → 217/16) ⇝ 109/8 | note:C6 gain:0.5165366864730168 clip:1 s:piano release:0.1 pan:0.6388888888888888 ]", - "[ 27/2 ⇜ (867/64 → 217/16) ⇝ 55/4 | note:G2 gain:0.5165366864730168 clip:1 s:piano release:0.1 pan:0.44907407407407407 ]", - "[ 379/28 ⇜ (867/64 → 217/16) ⇝ 193/14 | note:71 gain:0.05165366864730168 clip:1 s:piano release:0.1 pan:0.5787037037037037 ]", - "[ 379/28 ⇜ (867/64 → 217/16) ⇝ 193/14 | note:76 gain:0.05165366864730168 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", - "[ 379/28 ⇜ (867/64 → 217/16) ⇝ 193/14 | note:77 gain:0.05165366864730168 clip:1 s:piano release:0.1 pan:0.6064814814814814 ]", - "[ 379/28 ⇜ (867/64 → 217/16) ⇝ 193/14 | note:81 gain:0.05165366864730168 clip:1 s:piano release:0.1 pan:0.625 ]", - "[ 27/2 ⇜ (217/16 → 869/64) ⇝ 109/8 | note:D5 gain:0.3634633135269866 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", - "[ 27/2 ⇜ (217/16 → 869/64) ⇝ 109/8 | note:A5 gain:0.3634633135269866 clip:1 s:piano release:0.1 pan:0.625 ]", - "[ 27/2 ⇜ (217/16 → 869/64) ⇝ 109/8 | note:C6 gain:0.3634633135269866 clip:1 s:piano release:0.1 pan:0.6388888888888888 ]", - "[ 27/2 ⇜ (217/16 → 869/64) ⇝ 55/4 | note:G2 gain:0.3634633135269866 clip:1 s:piano release:0.1 pan:0.44907407407407407 ]", - "[ 379/28 ⇜ (217/16 → 869/64) ⇝ 193/14 | note:71 gain:0.03634633135269866 clip:1 s:piano release:0.1 pan:0.5787037037037037 ]", - "[ 379/28 ⇜ (217/16 → 869/64) ⇝ 193/14 | note:76 gain:0.03634633135269866 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", - "[ 379/28 ⇜ (217/16 → 869/64) ⇝ 193/14 | note:77 gain:0.03634633135269866 clip:1 s:piano release:0.1 pan:0.6064814814814814 ]", - "[ 379/28 ⇜ (217/16 → 869/64) ⇝ 193/14 | note:81 gain:0.03634633135269866 clip:1 s:piano release:0.1 pan:0.625 ]", - "[ 27/2 ⇜ (869/64 → 435/32) ⇝ 109/8 | note:D5 gain:0.25522409349774694 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", - "[ 27/2 ⇜ (869/64 → 435/32) ⇝ 109/8 | note:A5 gain:0.25522409349774694 clip:1 s:piano release:0.1 pan:0.625 ]", - "[ 27/2 ⇜ (869/64 → 435/32) ⇝ 109/8 | note:C6 gain:0.25522409349774694 clip:1 s:piano release:0.1 pan:0.6388888888888888 ]", - "[ 27/2 ⇜ (869/64 → 435/32) ⇝ 55/4 | note:G2 gain:0.25522409349774694 clip:1 s:piano release:0.1 pan:0.44907407407407407 ]", - "[ 379/28 ⇜ (869/64 → 435/32) ⇝ 193/14 | note:71 gain:0.025522409349774695 clip:1 s:piano release:0.1 pan:0.5787037037037037 ]", - "[ 379/28 ⇜ (869/64 → 435/32) ⇝ 193/14 | note:76 gain:0.025522409349774695 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", - "[ 379/28 ⇜ (869/64 → 435/32) ⇝ 193/14 | note:77 gain:0.025522409349774695 clip:1 s:piano release:0.1 pan:0.6064814814814814 ]", - "[ 379/28 ⇜ (869/64 → 435/32) ⇝ 193/14 | note:81 gain:0.025522409349774695 clip:1 s:piano release:0.1 pan:0.625 ]", - "[ 27/2 ⇜ (435/32 → 871/64) ⇝ 109/8 | note:D5 gain:0.2552240934977447 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", - "[ 27/2 ⇜ (435/32 → 871/64) ⇝ 109/8 | note:A5 gain:0.2552240934977447 clip:1 s:piano release:0.1 pan:0.625 ]", - "[ 27/2 ⇜ (435/32 → 871/64) ⇝ 109/8 | note:C6 gain:0.2552240934977447 clip:1 s:piano release:0.1 pan:0.6388888888888888 ]", - "[ 27/2 ⇜ (435/32 → 871/64) ⇝ 55/4 | note:G2 gain:0.2552240934977447 clip:1 s:piano release:0.1 pan:0.44907407407407407 ]", - "[ 379/28 ⇜ (435/32 → 871/64) ⇝ 193/14 | note:71 gain:0.025522409349774473 clip:1 s:piano release:0.1 pan:0.5787037037037037 ]", - "[ 379/28 ⇜ (435/32 → 871/64) ⇝ 193/14 | note:76 gain:0.025522409349774473 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", - "[ 379/28 ⇜ (435/32 → 871/64) ⇝ 193/14 | note:77 gain:0.025522409349774473 clip:1 s:piano release:0.1 pan:0.6064814814814814 ]", - "[ 379/28 ⇜ (435/32 → 871/64) ⇝ 193/14 | note:81 gain:0.025522409349774473 clip:1 s:piano release:0.1 pan:0.625 ]", - "[ 27/2 ⇜ (871/64 → 109/8) | note:D5 gain:0.36346331352698136 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", - "[ 27/2 ⇜ (871/64 → 109/8) | note:A5 gain:0.36346331352698136 clip:1 s:piano release:0.1 pan:0.625 ]", - "[ 27/2 ⇜ (871/64 → 109/8) | note:C6 gain:0.36346331352698136 clip:1 s:piano release:0.1 pan:0.6388888888888888 ]", - "[ 27/2 ⇜ (871/64 → 109/8) ⇝ 55/4 | note:G2 gain:0.36346331352698136 clip:1 s:piano release:0.1 pan:0.44907407407407407 ]", - "[ 379/28 ⇜ (871/64 → 109/8) ⇝ 193/14 | note:71 gain:0.03634633135269814 clip:1 s:piano release:0.1 pan:0.5787037037037037 ]", - "[ 379/28 ⇜ (871/64 → 109/8) ⇝ 193/14 | note:76 gain:0.03634633135269814 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", - "[ 379/28 ⇜ (871/64 → 109/8) ⇝ 193/14 | note:77 gain:0.03634633135269814 clip:1 s:piano release:0.1 pan:0.6064814814814814 ]", - "[ 379/28 ⇜ (871/64 → 109/8) ⇝ 193/14 | note:81 gain:0.03634633135269814 clip:1 s:piano release:0.1 pan:0.625 ]", - "[ 27/2 ⇜ (109/8 → 873/64) ⇝ 55/4 | note:G2 gain:0.5165366864730114 clip:1 s:piano release:0.1 pan:0.44907407407407407 ]", - "[ 379/28 ⇜ (109/8 → 873/64) ⇝ 193/14 | note:71 gain:0.05165366864730114 clip:1 s:piano release:0.1 pan:0.5787037037037037 ]", - "[ 379/28 ⇜ (109/8 → 873/64) ⇝ 193/14 | note:76 gain:0.05165366864730114 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", - "[ 379/28 ⇜ (109/8 → 873/64) ⇝ 193/14 | note:77 gain:0.05165366864730114 clip:1 s:piano release:0.1 pan:0.6064814814814814 ]", - "[ 379/28 ⇜ (109/8 → 873/64) ⇝ 193/14 | note:81 gain:0.05165366864730114 clip:1 s:piano release:0.1 pan:0.625 ]", - "[ 27/2 ⇜ (873/64 → 437/32) ⇝ 55/4 | note:G2 gain:0.6247759065022523 clip:1 s:piano release:0.1 pan:0.44907407407407407 ]", - "[ 379/28 ⇜ (873/64 → 437/32) ⇝ 193/14 | note:71 gain:0.062477590650225234 clip:1 s:piano release:0.1 pan:0.5787037037037037 ]", - "[ 379/28 ⇜ (873/64 → 437/32) ⇝ 193/14 | note:76 gain:0.062477590650225234 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", - "[ 379/28 ⇜ (873/64 → 437/32) ⇝ 193/14 | note:77 gain:0.062477590650225234 clip:1 s:piano release:0.1 pan:0.6064814814814814 ]", - "[ 379/28 ⇜ (873/64 → 437/32) ⇝ 193/14 | note:81 gain:0.062477590650225234 clip:1 s:piano release:0.1 pan:0.625 ]", - "[ 27/2 ⇜ (437/32 → 875/64) ⇝ 55/4 | note:G2 gain:0.6247759065022561 clip:1 s:piano release:0.1 pan:0.44907407407407407 ]", - "[ 379/28 ⇜ (437/32 → 875/64) ⇝ 193/14 | note:71 gain:0.062477590650225616 clip:1 s:piano release:0.1 pan:0.5787037037037037 ]", - "[ 379/28 ⇜ (437/32 → 875/64) ⇝ 193/14 | note:76 gain:0.062477590650225616 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", - "[ 379/28 ⇜ (437/32 → 875/64) ⇝ 193/14 | note:77 gain:0.062477590650225616 clip:1 s:piano release:0.1 pan:0.6064814814814814 ]", - "[ 379/28 ⇜ (437/32 → 875/64) ⇝ 193/14 | note:81 gain:0.062477590650225616 clip:1 s:piano release:0.1 pan:0.625 ]", - "[ 27/2 ⇜ (875/64 → 219/16) ⇝ 55/4 | note:G2 gain:0.5165366864730206 clip:1 s:piano release:0.1 pan:0.44907407407407407 ]", - "[ 379/28 ⇜ (875/64 → 219/16) ⇝ 193/14 | note:71 gain:0.051653668647302066 clip:1 s:piano release:0.1 pan:0.5787037037037037 ]", - "[ 379/28 ⇜ (875/64 → 219/16) ⇝ 193/14 | note:76 gain:0.051653668647302066 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", - "[ 379/28 ⇜ (875/64 → 219/16) ⇝ 193/14 | note:77 gain:0.051653668647302066 clip:1 s:piano release:0.1 pan:0.6064814814814814 ]", - "[ 379/28 ⇜ (875/64 → 219/16) ⇝ 193/14 | note:81 gain:0.051653668647302066 clip:1 s:piano release:0.1 pan:0.625 ]", - "[ 27/2 ⇜ (219/16 → 877/64) ⇝ 55/4 | note:G2 gain:0.3634633135269906 clip:1 s:piano release:0.1 pan:0.44907407407407407 ]", - "[ 379/28 ⇜ (219/16 → 877/64) ⇝ 193/14 | note:71 gain:0.03634633135269906 clip:1 s:piano release:0.1 pan:0.5787037037037037 ]", - "[ 379/28 ⇜ (219/16 → 877/64) ⇝ 193/14 | note:76 gain:0.03634633135269906 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", - "[ 379/28 ⇜ (219/16 → 877/64) ⇝ 193/14 | note:77 gain:0.03634633135269906 clip:1 s:piano release:0.1 pan:0.6064814814814814 ]", - "[ 379/28 ⇜ (219/16 → 877/64) ⇝ 193/14 | note:81 gain:0.03634633135269906 clip:1 s:piano release:0.1 pan:0.625 ]", - "[ 27/2 ⇜ (877/64 → 439/32) ⇝ 55/4 | note:G2 gain:0.2552240934977485 clip:1 s:piano release:0.1 pan:0.44907407407407407 ]", - "[ 379/28 ⇜ (877/64 → 439/32) ⇝ 193/14 | note:71 gain:0.02552240934977485 clip:1 s:piano release:0.1 pan:0.5787037037037037 ]", - "[ 379/28 ⇜ (877/64 → 439/32) ⇝ 193/14 | note:76 gain:0.02552240934977485 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", - "[ 379/28 ⇜ (877/64 → 439/32) ⇝ 193/14 | note:77 gain:0.02552240934977485 clip:1 s:piano release:0.1 pan:0.6064814814814814 ]", - "[ 379/28 ⇜ (877/64 → 439/32) ⇝ 193/14 | note:81 gain:0.02552240934977485 clip:1 s:piano release:0.1 pan:0.625 ]", - "[ 27/2 ⇜ (439/32 → 879/64) ⇝ 55/4 | note:G2 gain:0.2552240934977431 clip:1 s:piano release:0.1 pan:0.44907407407407407 ]", - "[ 379/28 ⇜ (439/32 → 879/64) ⇝ 193/14 | note:71 gain:0.025522409349774313 clip:1 s:piano release:0.1 pan:0.5787037037037037 ]", - "[ 379/28 ⇜ (439/32 → 879/64) ⇝ 193/14 | note:76 gain:0.025522409349774313 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", - "[ 379/28 ⇜ (439/32 → 879/64) ⇝ 193/14 | note:77 gain:0.025522409349774313 clip:1 s:piano release:0.1 pan:0.6064814814814814 ]", - "[ 379/28 ⇜ (439/32 → 879/64) ⇝ 193/14 | note:81 gain:0.025522409349774313 clip:1 s:piano release:0.1 pan:0.625 ]", - "[ 27/2 ⇜ (879/64 → 55/4) | note:G2 gain:0.36346331352697736 clip:1 s:piano release:0.1 pan:0.44907407407407407 ]", - "[ 379/28 ⇜ (879/64 → 55/4) ⇝ 193/14 | note:71 gain:0.036346331352697735 clip:1 s:piano release:0.1 pan:0.5787037037037037 ]", - "[ 379/28 ⇜ (879/64 → 55/4) ⇝ 193/14 | note:76 gain:0.036346331352697735 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", - "[ 379/28 ⇜ (879/64 → 55/4) ⇝ 193/14 | note:77 gain:0.036346331352697735 clip:1 s:piano release:0.1 pan:0.6064814814814814 ]", - "[ 379/28 ⇜ (879/64 → 55/4) ⇝ 193/14 | note:81 gain:0.036346331352697735 clip:1 s:piano release:0.1 pan:0.625 ]", - "[ 379/28 ⇜ (55/4 → 881/64) ⇝ 193/14 | note:71 gain:0.051653668647300754 clip:1 s:piano release:0.1 pan:0.5787037037037037 ]", - "[ 379/28 ⇜ (55/4 → 881/64) ⇝ 193/14 | note:76 gain:0.051653668647300754 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", - "[ 379/28 ⇜ (55/4 → 881/64) ⇝ 193/14 | note:77 gain:0.051653668647300754 clip:1 s:piano release:0.1 pan:0.6064814814814814 ]", - "[ 379/28 ⇜ (55/4 → 881/64) ⇝ 193/14 | note:81 gain:0.051653668647300754 clip:1 s:piano release:0.1 pan:0.625 ]", - "[ (55/4 → 881/64) ⇝ 111/8 | note:D5 gain:0.5165366864730075 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", - "[ (55/4 → 881/64) ⇝ 111/8 | note:A5 gain:0.5165366864730075 clip:1 s:piano release:0.1 pan:0.625 ]", - "[ (55/4 → 881/64) ⇝ 111/8 | note:C6 gain:0.5165366864730075 clip:1 s:piano release:0.1 pan:0.6388888888888888 ]", - "[ (55/4 → 881/64) ⇝ 14/1 | note:B3 gain:0.2582683432365038 clip:1 s:piano release:0.1 pan:0.5231481481481481 ]", - "[ (55/4 → 881/64) ⇝ 14/1 | note:E4 gain:0.2582683432365038 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", - "[ (55/4 → 881/64) ⇝ 14/1 | note:F4 gain:0.2582683432365038 clip:1 s:piano release:0.1 pan:0.5509259259259259 ]", - "[ (55/4 → 881/64) ⇝ 14/1 | note:A4 gain:0.2582683432365038 clip:1 s:piano release:0.1 pan:0.5694444444444444 ]", - "[ 379/28 ⇜ (881/64 → 441/32) ⇝ 193/14 | note:71 gain:0.06247759065022595 clip:1 s:piano release:0.1 pan:0.5787037037037037 ]", - "[ 379/28 ⇜ (881/64 → 441/32) ⇝ 193/14 | note:76 gain:0.06247759065022595 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", - "[ 379/28 ⇜ (881/64 → 441/32) ⇝ 193/14 | note:77 gain:0.06247759065022595 clip:1 s:piano release:0.1 pan:0.6064814814814814 ]", - "[ 379/28 ⇜ (881/64 → 441/32) ⇝ 193/14 | note:81 gain:0.06247759065022595 clip:1 s:piano release:0.1 pan:0.625 ]", - "[ 55/4 ⇜ (881/64 → 441/32) ⇝ 111/8 | note:D5 gain:0.6247759065022594 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", - "[ 55/4 ⇜ (881/64 → 441/32) ⇝ 111/8 | note:A5 gain:0.6247759065022594 clip:1 s:piano release:0.1 pan:0.625 ]", - "[ 55/4 ⇜ (881/64 → 441/32) ⇝ 111/8 | note:C6 gain:0.6247759065022594 clip:1 s:piano release:0.1 pan:0.6388888888888888 ]", - "[ 55/4 ⇜ (881/64 → 441/32) ⇝ 14/1 | note:B3 gain:0.3123879532511297 clip:1 s:piano release:0.1 pan:0.5231481481481481 ]", - "[ 55/4 ⇜ (881/64 → 441/32) ⇝ 14/1 | note:E4 gain:0.3123879532511297 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", - "[ 55/4 ⇜ (881/64 → 441/32) ⇝ 14/1 | note:F4 gain:0.3123879532511297 clip:1 s:piano release:0.1 pan:0.5509259259259259 ]", - "[ 55/4 ⇜ (881/64 → 441/32) ⇝ 14/1 | note:A4 gain:0.3123879532511297 clip:1 s:piano release:0.1 pan:0.5694444444444444 ]", - "[ 379/28 ⇜ (441/32 → 193/14) | note:71 gain:0.06247759065022578 clip:1 s:piano release:0.1 pan:0.5787037037037037 ]", - "[ 379/28 ⇜ (441/32 → 193/14) | note:76 gain:0.06247759065022578 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", - "[ 379/28 ⇜ (441/32 → 193/14) | note:77 gain:0.06247759065022578 clip:1 s:piano release:0.1 pan:0.6064814814814814 ]", - "[ 379/28 ⇜ (441/32 → 193/14) | note:81 gain:0.06247759065022578 clip:1 s:piano release:0.1 pan:0.625 ]", - "[ 55/4 ⇜ (441/32 → 883/64) ⇝ 111/8 | note:D5 gain:0.6247759065022578 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", - "[ 55/4 ⇜ (441/32 → 883/64) ⇝ 111/8 | note:A5 gain:0.6247759065022578 clip:1 s:piano release:0.1 pan:0.625 ]", - "[ 55/4 ⇜ (441/32 → 883/64) ⇝ 111/8 | note:C6 gain:0.6247759065022578 clip:1 s:piano release:0.1 pan:0.6388888888888888 ]", - "[ 55/4 ⇜ (441/32 → 883/64) ⇝ 14/1 | note:B3 gain:0.3123879532511289 clip:1 s:piano release:0.1 pan:0.5231481481481481 ]", - "[ 55/4 ⇜ (441/32 → 883/64) ⇝ 14/1 | note:E4 gain:0.3123879532511289 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", - "[ 55/4 ⇜ (441/32 → 883/64) ⇝ 14/1 | note:F4 gain:0.3123879532511289 clip:1 s:piano release:0.1 pan:0.5509259259259259 ]", - "[ 55/4 ⇜ (441/32 → 883/64) ⇝ 14/1 | note:A4 gain:0.3123879532511289 clip:1 s:piano release:0.1 pan:0.5694444444444444 ]", - "[ 55/4 ⇜ (883/64 → 221/16) ⇝ 111/8 | note:D5 gain:0.5165366864730248 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", - "[ 55/4 ⇜ (883/64 → 221/16) ⇝ 111/8 | note:A5 gain:0.5165366864730248 clip:1 s:piano release:0.1 pan:0.625 ]", - "[ 55/4 ⇜ (883/64 → 221/16) ⇝ 111/8 | note:C6 gain:0.5165366864730248 clip:1 s:piano release:0.1 pan:0.6388888888888888 ]", - "[ 55/4 ⇜ (883/64 → 221/16) ⇝ 14/1 | note:B3 gain:0.2582683432365124 clip:1 s:piano release:0.1 pan:0.5231481481481481 ]", - "[ 55/4 ⇜ (883/64 → 221/16) ⇝ 14/1 | note:E4 gain:0.2582683432365124 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", - "[ 55/4 ⇜ (883/64 → 221/16) ⇝ 14/1 | note:F4 gain:0.2582683432365124 clip:1 s:piano release:0.1 pan:0.5509259259259259 ]", - "[ 55/4 ⇜ (883/64 → 221/16) ⇝ 14/1 | note:A4 gain:0.2582683432365124 clip:1 s:piano release:0.1 pan:0.5694444444444444 ]", - "[ 55/4 ⇜ (221/16 → 885/64) ⇝ 111/8 | note:D5 gain:0.3634633135269945 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", - "[ 55/4 ⇜ (221/16 → 885/64) ⇝ 111/8 | note:A5 gain:0.3634633135269945 clip:1 s:piano release:0.1 pan:0.625 ]", - "[ 55/4 ⇜ (221/16 → 885/64) ⇝ 111/8 | note:C6 gain:0.3634633135269945 clip:1 s:piano release:0.1 pan:0.6388888888888888 ]", - "[ 55/4 ⇜ (221/16 → 885/64) ⇝ 14/1 | note:B3 gain:0.18173165676349726 clip:1 s:piano release:0.1 pan:0.5231481481481481 ]", - "[ 55/4 ⇜ (221/16 → 885/64) ⇝ 14/1 | note:E4 gain:0.18173165676349726 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", - "[ 55/4 ⇜ (221/16 → 885/64) ⇝ 14/1 | note:F4 gain:0.18173165676349726 clip:1 s:piano release:0.1 pan:0.5509259259259259 ]", - "[ 55/4 ⇜ (221/16 → 885/64) ⇝ 14/1 | note:A4 gain:0.18173165676349726 clip:1 s:piano release:0.1 pan:0.5694444444444444 ]", - "[ 55/4 ⇜ (885/64 → 443/32) ⇝ 111/8 | note:D5 gain:0.2552240934977415 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", - "[ 55/4 ⇜ (885/64 → 443/32) ⇝ 111/8 | note:A5 gain:0.2552240934977415 clip:1 s:piano release:0.1 pan:0.625 ]", - "[ 55/4 ⇜ (885/64 → 443/32) ⇝ 111/8 | note:C6 gain:0.2552240934977415 clip:1 s:piano release:0.1 pan:0.6388888888888888 ]", - "[ 55/4 ⇜ (885/64 → 443/32) ⇝ 14/1 | note:B3 gain:0.12761204674887075 clip:1 s:piano release:0.1 pan:0.5231481481481481 ]", - "[ 55/4 ⇜ (885/64 → 443/32) ⇝ 14/1 | note:E4 gain:0.12761204674887075 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", - "[ 55/4 ⇜ (885/64 → 443/32) ⇝ 14/1 | note:F4 gain:0.12761204674887075 clip:1 s:piano release:0.1 pan:0.5509259259259259 ]", - "[ 55/4 ⇜ (885/64 → 443/32) ⇝ 14/1 | note:A4 gain:0.12761204674887075 clip:1 s:piano release:0.1 pan:0.5694444444444444 ]", - "[ 55/4 ⇜ (443/32 → 887/64) ⇝ 111/8 | note:D5 gain:0.2552240934977414 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", - "[ 55/4 ⇜ (443/32 → 887/64) ⇝ 111/8 | note:A5 gain:0.2552240934977414 clip:1 s:piano release:0.1 pan:0.625 ]", - "[ 55/4 ⇜ (443/32 → 887/64) ⇝ 111/8 | note:C6 gain:0.2552240934977414 clip:1 s:piano release:0.1 pan:0.6388888888888888 ]", - "[ 55/4 ⇜ (443/32 → 887/64) ⇝ 14/1 | note:B3 gain:0.1276120467488707 clip:1 s:piano release:0.1 pan:0.5231481481481481 ]", - "[ 55/4 ⇜ (443/32 → 887/64) ⇝ 14/1 | note:E4 gain:0.1276120467488707 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", - "[ 55/4 ⇜ (443/32 → 887/64) ⇝ 14/1 | note:F4 gain:0.1276120467488707 clip:1 s:piano release:0.1 pan:0.5509259259259259 ]", - "[ 55/4 ⇜ (443/32 → 887/64) ⇝ 14/1 | note:A4 gain:0.1276120467488707 clip:1 s:piano release:0.1 pan:0.5694444444444444 ]", - "[ 55/4 ⇜ (887/64 → 111/8) | note:D5 gain:0.36346331352697336 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", - "[ 55/4 ⇜ (887/64 → 111/8) | note:A5 gain:0.36346331352697336 clip:1 s:piano release:0.1 pan:0.625 ]", - "[ 55/4 ⇜ (887/64 → 111/8) | note:C6 gain:0.36346331352697336 clip:1 s:piano release:0.1 pan:0.6388888888888888 ]", - "[ 55/4 ⇜ (887/64 → 111/8) ⇝ 14/1 | note:B3 gain:0.18173165676348668 clip:1 s:piano release:0.1 pan:0.5231481481481481 ]", - "[ 55/4 ⇜ (887/64 → 111/8) ⇝ 14/1 | note:E4 gain:0.18173165676348668 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", - "[ 55/4 ⇜ (887/64 → 111/8) ⇝ 14/1 | note:F4 gain:0.18173165676348668 clip:1 s:piano release:0.1 pan:0.5509259259259259 ]", - "[ 55/4 ⇜ (887/64 → 111/8) ⇝ 14/1 | note:A4 gain:0.18173165676348668 clip:1 s:piano release:0.1 pan:0.5694444444444444 ]", - "[ 55/4 ⇜ (111/8 → 889/64) ⇝ 14/1 | note:B3 gain:0.2582683432365018 clip:1 s:piano release:0.1 pan:0.5231481481481481 ]", - "[ 55/4 ⇜ (111/8 → 889/64) ⇝ 14/1 | note:E4 gain:0.2582683432365018 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", - "[ 55/4 ⇜ (111/8 → 889/64) ⇝ 14/1 | note:F4 gain:0.2582683432365018 clip:1 s:piano release:0.1 pan:0.5509259259259259 ]", - "[ 55/4 ⇜ (111/8 → 889/64) ⇝ 14/1 | note:A4 gain:0.2582683432365018 clip:1 s:piano release:0.1 pan:0.5694444444444444 ]", - "[ 55/4 ⇜ (889/64 → 445/32) ⇝ 14/1 | note:B3 gain:0.31238795325112884 clip:1 s:piano release:0.1 pan:0.5231481481481481 ]", - "[ 55/4 ⇜ (889/64 → 445/32) ⇝ 14/1 | note:E4 gain:0.31238795325112884 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", - "[ 55/4 ⇜ (889/64 → 445/32) ⇝ 14/1 | note:F4 gain:0.31238795325112884 clip:1 s:piano release:0.1 pan:0.5509259259259259 ]", - "[ 55/4 ⇜ (889/64 → 445/32) ⇝ 14/1 | note:A4 gain:0.31238795325112884 clip:1 s:piano release:0.1 pan:0.5694444444444444 ]", - "[ 55/4 ⇜ (445/32 → 891/64) ⇝ 14/1 | note:B3 gain:0.3123879532511297 clip:1 s:piano release:0.1 pan:0.5231481481481481 ]", - "[ 55/4 ⇜ (445/32 → 891/64) ⇝ 14/1 | note:E4 gain:0.3123879532511297 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", - "[ 55/4 ⇜ (445/32 → 891/64) ⇝ 14/1 | note:F4 gain:0.3123879532511297 clip:1 s:piano release:0.1 pan:0.5509259259259259 ]", - "[ 55/4 ⇜ (445/32 → 891/64) ⇝ 14/1 | note:A4 gain:0.3123879532511297 clip:1 s:piano release:0.1 pan:0.5694444444444444 ]", - "[ 55/4 ⇜ (891/64 → 223/16) ⇝ 14/1 | note:B3 gain:0.2582683432365143 clip:1 s:piano release:0.1 pan:0.5231481481481481 ]", - "[ 55/4 ⇜ (891/64 → 223/16) ⇝ 14/1 | note:E4 gain:0.2582683432365143 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", - "[ 55/4 ⇜ (891/64 → 223/16) ⇝ 14/1 | note:F4 gain:0.2582683432365143 clip:1 s:piano release:0.1 pan:0.5509259259259259 ]", - "[ 55/4 ⇜ (891/64 → 223/16) ⇝ 14/1 | note:A4 gain:0.2582683432365143 clip:1 s:piano release:0.1 pan:0.5694444444444444 ]", - "[ 55/4 ⇜ (223/16 → 893/64) ⇝ 14/1 | note:B3 gain:0.18173165676348876 clip:1 s:piano release:0.1 pan:0.5231481481481481 ]", - "[ 55/4 ⇜ (223/16 → 893/64) ⇝ 14/1 | note:E4 gain:0.18173165676348876 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", - "[ 55/4 ⇜ (223/16 → 893/64) ⇝ 14/1 | note:F4 gain:0.18173165676348876 clip:1 s:piano release:0.1 pan:0.5509259259259259 ]", - "[ 55/4 ⇜ (223/16 → 893/64) ⇝ 14/1 | note:A4 gain:0.18173165676348876 clip:1 s:piano release:0.1 pan:0.5694444444444444 ]", - "[ 55/4 ⇜ (893/64 → 447/32) ⇝ 14/1 | note:B3 gain:0.12761204674887158 clip:1 s:piano release:0.1 pan:0.5231481481481481 ]", - "[ 55/4 ⇜ (893/64 → 447/32) ⇝ 14/1 | note:E4 gain:0.12761204674887158 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", - "[ 55/4 ⇜ (893/64 → 447/32) ⇝ 14/1 | note:F4 gain:0.12761204674887158 clip:1 s:piano release:0.1 pan:0.5509259259259259 ]", - "[ 55/4 ⇜ (893/64 → 447/32) ⇝ 14/1 | note:A4 gain:0.12761204674887158 clip:1 s:piano release:0.1 pan:0.5694444444444444 ]", - "[ 55/4 ⇜ (447/32 → 895/64) ⇝ 14/1 | note:B3 gain:0.1276120467488699 clip:1 s:piano release:0.1 pan:0.5231481481481481 ]", - "[ 55/4 ⇜ (447/32 → 895/64) ⇝ 14/1 | note:E4 gain:0.1276120467488699 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", - "[ 55/4 ⇜ (447/32 → 895/64) ⇝ 14/1 | note:F4 gain:0.1276120467488699 clip:1 s:piano release:0.1 pan:0.5509259259259259 ]", - "[ 55/4 ⇜ (447/32 → 895/64) ⇝ 14/1 | note:A4 gain:0.1276120467488699 clip:1 s:piano release:0.1 pan:0.5694444444444444 ]", - "[ 55/4 ⇜ (895/64 → 14/1) | note:B3 gain:0.18173165676348468 clip:1 s:piano release:0.1 pan:0.5231481481481481 ]", - "[ 55/4 ⇜ (895/64 → 14/1) | note:E4 gain:0.18173165676348468 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", - "[ 55/4 ⇜ (895/64 → 14/1) | note:F4 gain:0.18173165676348468 clip:1 s:piano release:0.1 pan:0.5509259259259259 ]", - "[ 55/4 ⇜ (895/64 → 14/1) | note:A4 gain:0.18173165676348468 clip:1 s:piano release:0.1 pan:0.5694444444444444 ]", - "[ (14/1 → 897/64) ⇝ 57/4 | note:F#2 gain:0.5165366864730204 clip:1 s:piano release:0.1 pan:0.4444444444444444 ]", - "[ 14/1 ⇜ (897/64 → 449/32) ⇝ 57/4 | note:F#2 gain:0.624775906502256 clip:1 s:piano release:0.1 pan:0.4444444444444444 ]", - "[ 14/1 ⇜ (449/32 → 899/64) ⇝ 57/4 | note:F#2 gain:0.624775906502261 clip:1 s:piano release:0.1 pan:0.4444444444444444 ]", - "[ (393/28 → 899/64) ⇝ 100/7 | note:71 gain:0.0624775906502261 clip:1 s:piano release:0.1 pan:0.5787037037037037 ]", - "[ (393/28 → 899/64) ⇝ 100/7 | note:76 gain:0.0624775906502261 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", - "[ (393/28 → 899/64) ⇝ 100/7 | note:77 gain:0.0624775906502261 clip:1 s:piano release:0.1 pan:0.6064814814814814 ]", - "[ (393/28 → 899/64) ⇝ 100/7 | note:81 gain:0.0624775906502261 clip:1 s:piano release:0.1 pan:0.625 ]", - "[ 14/1 ⇜ (899/64 → 225/16) ⇝ 57/4 | note:F#2 gain:0.5165366864730327 clip:1 s:piano release:0.1 pan:0.4444444444444444 ]", - "[ 393/28 ⇜ (899/64 → 225/16) ⇝ 100/7 | note:71 gain:0.05165366864730328 clip:1 s:piano release:0.1 pan:0.5787037037037037 ]", - "[ 393/28 ⇜ (899/64 → 225/16) ⇝ 100/7 | note:76 gain:0.05165366864730328 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", - "[ 393/28 ⇜ (899/64 → 225/16) ⇝ 100/7 | note:77 gain:0.05165366864730328 clip:1 s:piano release:0.1 pan:0.6064814814814814 ]", - "[ 393/28 ⇜ (899/64 → 225/16) ⇝ 100/7 | note:81 gain:0.05165366864730328 clip:1 s:piano release:0.1 pan:0.625 ]", - "[ 14/1 ⇜ (225/16 → 901/64) ⇝ 57/4 | note:F#2 gain:0.3634633135269815 clip:1 s:piano release:0.1 pan:0.4444444444444444 ]", - "[ 393/28 ⇜ (225/16 → 901/64) ⇝ 100/7 | note:71 gain:0.03634633135269815 clip:1 s:piano release:0.1 pan:0.5787037037037037 ]", - "[ 393/28 ⇜ (225/16 → 901/64) ⇝ 100/7 | note:76 gain:0.03634633135269815 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", - "[ 393/28 ⇜ (225/16 → 901/64) ⇝ 100/7 | note:77 gain:0.03634633135269815 clip:1 s:piano release:0.1 pan:0.6064814814814814 ]", - "[ 393/28 ⇜ (225/16 → 901/64) ⇝ 100/7 | note:81 gain:0.03634633135269815 clip:1 s:piano release:0.1 pan:0.625 ]", - "[ 14/1 ⇜ (901/64 → 451/32) ⇝ 57/4 | note:F#2 gain:0.2552240934977448 clip:1 s:piano release:0.1 pan:0.4444444444444444 ]", - "[ 393/28 ⇜ (901/64 → 451/32) ⇝ 100/7 | note:71 gain:0.02552240934977448 clip:1 s:piano release:0.1 pan:0.5787037037037037 ]", - "[ 393/28 ⇜ (901/64 → 451/32) ⇝ 100/7 | note:76 gain:0.02552240934977448 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", - "[ 393/28 ⇜ (901/64 → 451/32) ⇝ 100/7 | note:77 gain:0.02552240934977448 clip:1 s:piano release:0.1 pan:0.6064814814814814 ]", - "[ 393/28 ⇜ (901/64 → 451/32) ⇝ 100/7 | note:81 gain:0.02552240934977448 clip:1 s:piano release:0.1 pan:0.625 ]", - "[ 14/1 ⇜ (451/32 → 903/64) ⇝ 57/4 | note:F#2 gain:0.2552240934977381 clip:1 s:piano release:0.1 pan:0.4444444444444444 ]", - "[ 393/28 ⇜ (451/32 → 903/64) ⇝ 100/7 | note:71 gain:0.025522409349773813 clip:1 s:piano release:0.1 pan:0.5787037037037037 ]", - "[ 393/28 ⇜ (451/32 → 903/64) ⇝ 100/7 | note:76 gain:0.025522409349773813 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", - "[ 393/28 ⇜ (451/32 → 903/64) ⇝ 100/7 | note:77 gain:0.025522409349773813 clip:1 s:piano release:0.1 pan:0.6064814814814814 ]", - "[ 393/28 ⇜ (451/32 → 903/64) ⇝ 100/7 | note:81 gain:0.025522409349773813 clip:1 s:piano release:0.1 pan:0.625 ]", - "[ 14/1 ⇜ (903/64 → 113/8) ⇝ 57/4 | note:F#2 gain:0.3634633135269864 clip:1 s:piano release:0.1 pan:0.4444444444444444 ]", - "[ 393/28 ⇜ (903/64 → 113/8) ⇝ 100/7 | note:71 gain:0.036346331352698644 clip:1 s:piano release:0.1 pan:0.5787037037037037 ]", - "[ 393/28 ⇜ (903/64 → 113/8) ⇝ 100/7 | note:76 gain:0.036346331352698644 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", - "[ 393/28 ⇜ (903/64 → 113/8) ⇝ 100/7 | note:77 gain:0.036346331352698644 clip:1 s:piano release:0.1 pan:0.6064814814814814 ]", - "[ 393/28 ⇜ (903/64 → 113/8) ⇝ 100/7 | note:81 gain:0.036346331352698644 clip:1 s:piano release:0.1 pan:0.625 ]", - "[ 14/1 ⇜ (113/8 → 905/64) ⇝ 57/4 | note:F#2 gain:0.5165366864730165 clip:1 s:piano release:0.1 pan:0.4444444444444444 ]", - "[ 393/28 ⇜ (113/8 → 905/64) ⇝ 100/7 | note:71 gain:0.051653668647301657 clip:1 s:piano release:0.1 pan:0.5787037037037037 ]", - "[ 393/28 ⇜ (113/8 → 905/64) ⇝ 100/7 | note:76 gain:0.051653668647301657 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", - "[ 393/28 ⇜ (113/8 → 905/64) ⇝ 100/7 | note:77 gain:0.051653668647301657 clip:1 s:piano release:0.1 pan:0.6064814814814814 ]", - "[ 393/28 ⇜ (113/8 → 905/64) ⇝ 100/7 | note:81 gain:0.051653668647301657 clip:1 s:piano release:0.1 pan:0.625 ]", - "[ (113/8 → 905/64) ⇝ 57/4 | note:F#4 gain:0.5165366864730165 clip:1 s:piano release:0.1 pan:0.5555555555555556 ]", - "[ (113/8 → 905/64) ⇝ 57/4 | note:C#5 gain:0.5165366864730165 clip:1 s:piano release:0.1 pan:0.587962962962963 ]", - "[ (113/8 → 905/64) ⇝ 57/4 | note:E5 gain:0.5165366864730165 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", - "[ 14/1 ⇜ (905/64 → 453/32) ⇝ 57/4 | note:F#2 gain:0.6247759065022545 clip:1 s:piano release:0.1 pan:0.4444444444444444 ]", - "[ 393/28 ⇜ (905/64 → 453/32) ⇝ 100/7 | note:71 gain:0.06247759065022545 clip:1 s:piano release:0.1 pan:0.5787037037037037 ]", - "[ 393/28 ⇜ (905/64 → 453/32) ⇝ 100/7 | note:76 gain:0.06247759065022545 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", - "[ 393/28 ⇜ (905/64 → 453/32) ⇝ 100/7 | note:77 gain:0.06247759065022545 clip:1 s:piano release:0.1 pan:0.6064814814814814 ]", - "[ 393/28 ⇜ (905/64 → 453/32) ⇝ 100/7 | note:81 gain:0.06247759065022545 clip:1 s:piano release:0.1 pan:0.625 ]", - "[ 113/8 ⇜ (905/64 → 453/32) ⇝ 57/4 | note:F#4 gain:0.6247759065022545 clip:1 s:piano release:0.1 pan:0.5555555555555556 ]", - "[ 113/8 ⇜ (905/64 → 453/32) ⇝ 57/4 | note:C#5 gain:0.6247759065022545 clip:1 s:piano release:0.1 pan:0.587962962962963 ]", - "[ 113/8 ⇜ (905/64 → 453/32) ⇝ 57/4 | note:E5 gain:0.6247759065022545 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", - "[ 14/1 ⇜ (453/32 → 907/64) ⇝ 57/4 | note:F#2 gain:0.6247759065022628 clip:1 s:piano release:0.1 pan:0.4444444444444444 ]", - "[ 393/28 ⇜ (453/32 → 907/64) ⇝ 100/7 | note:71 gain:0.06247759065022628 clip:1 s:piano release:0.1 pan:0.5787037037037037 ]", - "[ 393/28 ⇜ (453/32 → 907/64) ⇝ 100/7 | note:76 gain:0.06247759065022628 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", - "[ 393/28 ⇜ (453/32 → 907/64) ⇝ 100/7 | note:77 gain:0.06247759065022628 clip:1 s:piano release:0.1 pan:0.6064814814814814 ]", - "[ 393/28 ⇜ (453/32 → 907/64) ⇝ 100/7 | note:81 gain:0.06247759065022628 clip:1 s:piano release:0.1 pan:0.625 ]", - "[ 113/8 ⇜ (453/32 → 907/64) ⇝ 57/4 | note:F#4 gain:0.6247759065022628 clip:1 s:piano release:0.1 pan:0.5555555555555556 ]", - "[ 113/8 ⇜ (453/32 → 907/64) ⇝ 57/4 | note:C#5 gain:0.6247759065022628 clip:1 s:piano release:0.1 pan:0.587962962962963 ]", - "[ 113/8 ⇜ (453/32 → 907/64) ⇝ 57/4 | note:E5 gain:0.6247759065022628 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", - "[ 14/1 ⇜ (907/64 → 227/16) ⇝ 57/4 | note:F#2 gain:0.5165366864730156 clip:1 s:piano release:0.1 pan:0.4444444444444444 ]", - "[ 393/28 ⇜ (907/64 → 227/16) ⇝ 100/7 | note:71 gain:0.051653668647301566 clip:1 s:piano release:0.1 pan:0.5787037037037037 ]", - "[ 393/28 ⇜ (907/64 → 227/16) ⇝ 100/7 | note:76 gain:0.051653668647301566 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", - "[ 393/28 ⇜ (907/64 → 227/16) ⇝ 100/7 | note:77 gain:0.051653668647301566 clip:1 s:piano release:0.1 pan:0.6064814814814814 ]", - "[ 393/28 ⇜ (907/64 → 227/16) ⇝ 100/7 | note:81 gain:0.051653668647301566 clip:1 s:piano release:0.1 pan:0.625 ]", - "[ 113/8 ⇜ (907/64 → 227/16) ⇝ 57/4 | note:F#4 gain:0.5165366864730156 clip:1 s:piano release:0.1 pan:0.5555555555555556 ]", - "[ 113/8 ⇜ (907/64 → 227/16) ⇝ 57/4 | note:C#5 gain:0.5165366864730156 clip:1 s:piano release:0.1 pan:0.587962962962963 ]", - "[ 113/8 ⇜ (907/64 → 227/16) ⇝ 57/4 | note:E5 gain:0.5165366864730156 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", - "[ 14/1 ⇜ (227/16 → 909/64) ⇝ 57/4 | note:F#2 gain:0.36346331352698547 clip:1 s:piano release:0.1 pan:0.4444444444444444 ]", - "[ 393/28 ⇜ (227/16 → 909/64) ⇝ 100/7 | note:71 gain:0.03634633135269855 clip:1 s:piano release:0.1 pan:0.5787037037037037 ]", - "[ 393/28 ⇜ (227/16 → 909/64) ⇝ 100/7 | note:76 gain:0.03634633135269855 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", - "[ 393/28 ⇜ (227/16 → 909/64) ⇝ 100/7 | note:77 gain:0.03634633135269855 clip:1 s:piano release:0.1 pan:0.6064814814814814 ]", - "[ 393/28 ⇜ (227/16 → 909/64) ⇝ 100/7 | note:81 gain:0.03634633135269855 clip:1 s:piano release:0.1 pan:0.625 ]", - "[ 113/8 ⇜ (227/16 → 909/64) ⇝ 57/4 | note:F#4 gain:0.36346331352698547 clip:1 s:piano release:0.1 pan:0.5555555555555556 ]", - "[ 113/8 ⇜ (227/16 → 909/64) ⇝ 57/4 | note:C#5 gain:0.36346331352698547 clip:1 s:piano release:0.1 pan:0.587962962962963 ]", - "[ 113/8 ⇜ (227/16 → 909/64) ⇝ 57/4 | note:E5 gain:0.36346331352698547 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", - "[ 14/1 ⇜ (909/64 → 455/32) ⇝ 57/4 | note:F#2 gain:0.2552240934977465 clip:1 s:piano release:0.1 pan:0.4444444444444444 ]", - "[ 393/28 ⇜ (909/64 → 455/32) ⇝ 100/7 | note:71 gain:0.02552240934977465 clip:1 s:piano release:0.1 pan:0.5787037037037037 ]", - "[ 393/28 ⇜ (909/64 → 455/32) ⇝ 100/7 | note:76 gain:0.02552240934977465 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", - "[ 393/28 ⇜ (909/64 → 455/32) ⇝ 100/7 | note:77 gain:0.02552240934977465 clip:1 s:piano release:0.1 pan:0.6064814814814814 ]", - "[ 393/28 ⇜ (909/64 → 455/32) ⇝ 100/7 | note:81 gain:0.02552240934977465 clip:1 s:piano release:0.1 pan:0.625 ]", - "[ 113/8 ⇜ (909/64 → 455/32) ⇝ 57/4 | note:F#4 gain:0.2552240934977465 clip:1 s:piano release:0.1 pan:0.5555555555555556 ]", - "[ 113/8 ⇜ (909/64 → 455/32) ⇝ 57/4 | note:C#5 gain:0.2552240934977465 clip:1 s:piano release:0.1 pan:0.587962962962963 ]", - "[ 113/8 ⇜ (909/64 → 455/32) ⇝ 57/4 | note:E5 gain:0.2552240934977465 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", - "[ 14/1 ⇜ (455/32 → 911/64) ⇝ 57/4 | note:F#2 gain:0.2552240934977365 clip:1 s:piano release:0.1 pan:0.4444444444444444 ]", - "[ 393/28 ⇜ (455/32 → 911/64) ⇝ 100/7 | note:71 gain:0.02552240934977365 clip:1 s:piano release:0.1 pan:0.5787037037037037 ]", - "[ 393/28 ⇜ (455/32 → 911/64) ⇝ 100/7 | note:76 gain:0.02552240934977365 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", - "[ 393/28 ⇜ (455/32 → 911/64) ⇝ 100/7 | note:77 gain:0.02552240934977365 clip:1 s:piano release:0.1 pan:0.6064814814814814 ]", - "[ 393/28 ⇜ (455/32 → 911/64) ⇝ 100/7 | note:81 gain:0.02552240934977365 clip:1 s:piano release:0.1 pan:0.625 ]", - "[ 113/8 ⇜ (455/32 → 911/64) ⇝ 57/4 | note:F#4 gain:0.2552240934977365 clip:1 s:piano release:0.1 pan:0.5555555555555556 ]", - "[ 113/8 ⇜ (455/32 → 911/64) ⇝ 57/4 | note:C#5 gain:0.2552240934977365 clip:1 s:piano release:0.1 pan:0.587962962962963 ]", - "[ 113/8 ⇜ (455/32 → 911/64) ⇝ 57/4 | note:E5 gain:0.2552240934977365 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", - "[ 14/1 ⇜ (911/64 → 57/4) | note:F#2 gain:0.3634633135269824 clip:1 s:piano release:0.1 pan:0.4444444444444444 ]", - "[ 393/28 ⇜ (911/64 → 57/4) ⇝ 100/7 | note:71 gain:0.03634633135269824 clip:1 s:piano release:0.1 pan:0.5787037037037037 ]", - "[ 393/28 ⇜ (911/64 → 57/4) ⇝ 100/7 | note:76 gain:0.03634633135269824 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", - "[ 393/28 ⇜ (911/64 → 57/4) ⇝ 100/7 | note:77 gain:0.03634633135269824 clip:1 s:piano release:0.1 pan:0.6064814814814814 ]", - "[ 393/28 ⇜ (911/64 → 57/4) ⇝ 100/7 | note:81 gain:0.03634633135269824 clip:1 s:piano release:0.1 pan:0.625 ]", - "[ 113/8 ⇜ (911/64 → 57/4) | note:F#4 gain:0.3634633135269824 clip:1 s:piano release:0.1 pan:0.5555555555555556 ]", - "[ 113/8 ⇜ (911/64 → 57/4) | note:C#5 gain:0.3634633135269824 clip:1 s:piano release:0.1 pan:0.587962962962963 ]", - "[ 113/8 ⇜ (911/64 → 57/4) | note:E5 gain:0.3634633135269824 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", - "[ 393/28 ⇜ (57/4 → 913/64) ⇝ 100/7 | note:71 gain:0.051653668647301254 clip:1 s:piano release:0.1 pan:0.5787037037037037 ]", - "[ 393/28 ⇜ (57/4 → 913/64) ⇝ 100/7 | note:76 gain:0.051653668647301254 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", - "[ 393/28 ⇜ (57/4 → 913/64) ⇝ 100/7 | note:77 gain:0.051653668647301254 clip:1 s:piano release:0.1 pan:0.6064814814814814 ]", - "[ 393/28 ⇜ (57/4 → 913/64) ⇝ 100/7 | note:81 gain:0.051653668647301254 clip:1 s:piano release:0.1 pan:0.625 ]", - "[ 393/28 ⇜ (913/64 → 457/32) ⇝ 100/7 | note:71 gain:0.06247759065022528 clip:1 s:piano release:0.1 pan:0.5787037037037037 ]", - "[ 393/28 ⇜ (913/64 → 457/32) ⇝ 100/7 | note:76 gain:0.06247759065022528 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", - "[ 393/28 ⇜ (913/64 → 457/32) ⇝ 100/7 | note:77 gain:0.06247759065022528 clip:1 s:piano release:0.1 pan:0.6064814814814814 ]", - "[ 393/28 ⇜ (913/64 → 457/32) ⇝ 100/7 | note:81 gain:0.06247759065022528 clip:1 s:piano release:0.1 pan:0.625 ]", - "[ 393/28 ⇜ (457/32 → 100/7) | note:71 gain:0.06247759065022557 clip:1 s:piano release:0.1 pan:0.5787037037037037 ]", - "[ 393/28 ⇜ (457/32 → 100/7) | note:76 gain:0.06247759065022557 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", - "[ 393/28 ⇜ (457/32 → 100/7) | note:77 gain:0.06247759065022557 clip:1 s:piano release:0.1 pan:0.6064814814814814 ]", - "[ 393/28 ⇜ (457/32 → 100/7) | note:81 gain:0.06247759065022557 clip:1 s:piano release:0.1 pan:0.625 ]", - "[ (29/2 → 929/64) ⇝ 117/8 | note:C#5 gain:0.5165366864730047 clip:1 s:piano release:0.1 pan:0.587962962962963 ]", - "[ (29/2 → 929/64) ⇝ 117/8 | note:G#5 gain:0.5165366864730047 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", - "[ (29/2 → 929/64) ⇝ 117/8 | note:B5 gain:0.5165366864730047 clip:1 s:piano release:0.1 pan:0.6342592592592593 ]", - "[ (29/2 → 929/64) ⇝ 59/4 | note:Bb3 gain:0.25826834323650233 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", - "[ (29/2 → 929/64) ⇝ 59/4 | note:Eb4 gain:0.25826834323650233 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", - "[ (29/2 → 929/64) ⇝ 59/4 | note:E4 gain:0.25826834323650233 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", - "[ (29/2 → 929/64) ⇝ 59/4 | note:Ab4 gain:0.25826834323650233 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", - "[ (29/2 → 929/64) ⇝ 59/4 | note:F#2 gain:0.5165366864730047 clip:1 s:piano release:0.1 pan:0.4444444444444444 ]", - "[ 29/2 ⇜ (929/64 → 465/32) ⇝ 117/8 | note:C#5 gain:0.6247759065022582 clip:1 s:piano release:0.1 pan:0.587962962962963 ]", - "[ 29/2 ⇜ (929/64 → 465/32) ⇝ 117/8 | note:G#5 gain:0.6247759065022582 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", - "[ 29/2 ⇜ (929/64 → 465/32) ⇝ 117/8 | note:B5 gain:0.6247759065022582 clip:1 s:piano release:0.1 pan:0.6342592592592593 ]", - "[ 29/2 ⇜ (929/64 → 465/32) ⇝ 59/4 | note:Bb3 gain:0.3123879532511291 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", - "[ 29/2 ⇜ (929/64 → 465/32) ⇝ 59/4 | note:Eb4 gain:0.3123879532511291 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", - "[ 29/2 ⇜ (929/64 → 465/32) ⇝ 59/4 | note:E4 gain:0.3123879532511291 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", - "[ 29/2 ⇜ (929/64 → 465/32) ⇝ 59/4 | note:Ab4 gain:0.3123879532511291 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", - "[ 29/2 ⇜ (929/64 → 465/32) ⇝ 59/4 | note:F#2 gain:0.6247759065022582 clip:1 s:piano release:0.1 pan:0.4444444444444444 ]", - "[ 29/2 ⇜ (465/32 → 931/64) ⇝ 117/8 | note:C#5 gain:0.624775906502259 clip:1 s:piano release:0.1 pan:0.587962962962963 ]", - "[ 29/2 ⇜ (465/32 → 931/64) ⇝ 117/8 | note:G#5 gain:0.624775906502259 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", - "[ 29/2 ⇜ (465/32 → 931/64) ⇝ 117/8 | note:B5 gain:0.624775906502259 clip:1 s:piano release:0.1 pan:0.6342592592592593 ]", - "[ 29/2 ⇜ (465/32 → 931/64) ⇝ 59/4 | note:Bb3 gain:0.3123879532511295 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", - "[ 29/2 ⇜ (465/32 → 931/64) ⇝ 59/4 | note:Eb4 gain:0.3123879532511295 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", - "[ 29/2 ⇜ (465/32 → 931/64) ⇝ 59/4 | note:E4 gain:0.3123879532511295 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", - "[ 29/2 ⇜ (465/32 → 931/64) ⇝ 59/4 | note:Ab4 gain:0.3123879532511295 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", - "[ 29/2 ⇜ (465/32 → 931/64) ⇝ 59/4 | note:F#2 gain:0.624775906502259 clip:1 s:piano release:0.1 pan:0.4444444444444444 ]", - "[ 29/2 ⇜ (931/64 → 233/16) ⇝ 117/8 | note:C#5 gain:0.5165366864730275 clip:1 s:piano release:0.1 pan:0.587962962962963 ]", - "[ 29/2 ⇜ (931/64 → 233/16) ⇝ 117/8 | note:G#5 gain:0.5165366864730275 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", - "[ 29/2 ⇜ (931/64 → 233/16) ⇝ 117/8 | note:B5 gain:0.5165366864730275 clip:1 s:piano release:0.1 pan:0.6342592592592593 ]", - "[ 29/2 ⇜ (931/64 → 233/16) ⇝ 59/4 | note:Bb3 gain:0.25826834323651376 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", - "[ 29/2 ⇜ (931/64 → 233/16) ⇝ 59/4 | note:Eb4 gain:0.25826834323651376 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", - "[ 29/2 ⇜ (931/64 → 233/16) ⇝ 59/4 | note:E4 gain:0.25826834323651376 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", - "[ 29/2 ⇜ (931/64 → 233/16) ⇝ 59/4 | note:Ab4 gain:0.25826834323651376 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", - "[ 29/2 ⇜ (931/64 → 233/16) ⇝ 59/4 | note:F#2 gain:0.5165366864730275 clip:1 s:piano release:0.1 pan:0.4444444444444444 ]", - "[ 29/2 ⇜ (233/16 → 933/64) ⇝ 117/8 | note:C#5 gain:0.3634633135269974 clip:1 s:piano release:0.1 pan:0.587962962962963 ]", - "[ 29/2 ⇜ (233/16 → 933/64) ⇝ 117/8 | note:G#5 gain:0.3634633135269974 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", - "[ 29/2 ⇜ (233/16 → 933/64) ⇝ 117/8 | note:B5 gain:0.3634633135269974 clip:1 s:piano release:0.1 pan:0.6342592592592593 ]", - "[ 29/2 ⇜ (233/16 → 933/64) ⇝ 59/4 | note:Bb3 gain:0.1817316567634987 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", - "[ 29/2 ⇜ (233/16 → 933/64) ⇝ 59/4 | note:Eb4 gain:0.1817316567634987 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", - "[ 29/2 ⇜ (233/16 → 933/64) ⇝ 59/4 | note:E4 gain:0.1817316567634987 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", - "[ 29/2 ⇜ (233/16 → 933/64) ⇝ 59/4 | note:Ab4 gain:0.1817316567634987 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", - "[ 29/2 ⇜ (233/16 → 933/64) ⇝ 59/4 | note:F#2 gain:0.3634633135269974 clip:1 s:piano release:0.1 pan:0.4444444444444444 ]", - "[ 29/2 ⇜ (933/64 → 467/32) ⇝ 117/8 | note:C#5 gain:0.2552240934977427 clip:1 s:piano release:0.1 pan:0.587962962962963 ]", - "[ 29/2 ⇜ (933/64 → 467/32) ⇝ 117/8 | note:G#5 gain:0.2552240934977427 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", - "[ 29/2 ⇜ (933/64 → 467/32) ⇝ 117/8 | note:B5 gain:0.2552240934977427 clip:1 s:piano release:0.1 pan:0.6342592592592593 ]", - "[ 29/2 ⇜ (933/64 → 467/32) ⇝ 59/4 | note:Bb3 gain:0.12761204674887136 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", - "[ 29/2 ⇜ (933/64 → 467/32) ⇝ 59/4 | note:Eb4 gain:0.12761204674887136 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", - "[ 29/2 ⇜ (933/64 → 467/32) ⇝ 59/4 | note:E4 gain:0.12761204674887136 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", - "[ 29/2 ⇜ (933/64 → 467/32) ⇝ 59/4 | note:Ab4 gain:0.12761204674887136 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", - "[ 29/2 ⇜ (933/64 → 467/32) ⇝ 59/4 | note:F#2 gain:0.2552240934977427 clip:1 s:piano release:0.1 pan:0.4444444444444444 ]", - "[ 29/2 ⇜ (467/32 → 935/64) ⇝ 117/8 | note:C#5 gain:0.2552240934977402 clip:1 s:piano release:0.1 pan:0.587962962962963 ]", - "[ 29/2 ⇜ (467/32 → 935/64) ⇝ 117/8 | note:G#5 gain:0.2552240934977402 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", - "[ 29/2 ⇜ (467/32 → 935/64) ⇝ 117/8 | note:B5 gain:0.2552240934977402 clip:1 s:piano release:0.1 pan:0.6342592592592593 ]", - "[ 29/2 ⇜ (467/32 → 935/64) ⇝ 59/4 | note:Bb3 gain:0.1276120467488701 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", - "[ 29/2 ⇜ (467/32 → 935/64) ⇝ 59/4 | note:Eb4 gain:0.1276120467488701 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", - "[ 29/2 ⇜ (467/32 → 935/64) ⇝ 59/4 | note:E4 gain:0.1276120467488701 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", - "[ 29/2 ⇜ (467/32 → 935/64) ⇝ 59/4 | note:Ab4 gain:0.1276120467488701 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", - "[ 29/2 ⇜ (467/32 → 935/64) ⇝ 59/4 | note:F#2 gain:0.2552240934977402 clip:1 s:piano release:0.1 pan:0.4444444444444444 ]", - "[ 29/2 ⇜ (935/64 → 117/8) | note:C#5 gain:0.3634633135269705 clip:1 s:piano release:0.1 pan:0.587962962962963 ]", - "[ 29/2 ⇜ (935/64 → 117/8) | note:G#5 gain:0.3634633135269705 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", - "[ 29/2 ⇜ (935/64 → 117/8) | note:B5 gain:0.3634633135269705 clip:1 s:piano release:0.1 pan:0.6342592592592593 ]", - "[ 29/2 ⇜ (935/64 → 117/8) ⇝ 59/4 | note:Bb3 gain:0.18173165676348524 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", - "[ 29/2 ⇜ (935/64 → 117/8) ⇝ 59/4 | note:Eb4 gain:0.18173165676348524 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", - "[ 29/2 ⇜ (935/64 → 117/8) ⇝ 59/4 | note:E4 gain:0.18173165676348524 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", - "[ 29/2 ⇜ (935/64 → 117/8) ⇝ 59/4 | note:Ab4 gain:0.18173165676348524 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", - "[ 29/2 ⇜ (935/64 → 117/8) ⇝ 59/4 | note:F#2 gain:0.3634633135269705 clip:1 s:piano release:0.1 pan:0.4444444444444444 ]", - "[ 29/2 ⇜ (117/8 → 937/64) ⇝ 59/4 | note:Bb3 gain:0.2582683432365108 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", - "[ 29/2 ⇜ (117/8 → 937/64) ⇝ 59/4 | note:Eb4 gain:0.2582683432365108 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", - "[ 29/2 ⇜ (117/8 → 937/64) ⇝ 59/4 | note:E4 gain:0.2582683432365108 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", - "[ 29/2 ⇜ (117/8 → 937/64) ⇝ 59/4 | note:Ab4 gain:0.2582683432365108 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", - "[ 29/2 ⇜ (117/8 → 937/64) ⇝ 59/4 | note:F#2 gain:0.5165366864730216 clip:1 s:piano release:0.1 pan:0.4444444444444444 ]", - "[ 29/2 ⇜ (937/64 → 469/32) ⇝ 59/4 | note:Bb3 gain:0.3123879532511283 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", - "[ 29/2 ⇜ (937/64 → 469/32) ⇝ 59/4 | note:Eb4 gain:0.3123879532511283 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", - "[ 29/2 ⇜ (937/64 → 469/32) ⇝ 59/4 | note:E4 gain:0.3123879532511283 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", - "[ 29/2 ⇜ (937/64 → 469/32) ⇝ 59/4 | note:Ab4 gain:0.3123879532511283 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", - "[ 29/2 ⇜ (937/64 → 469/32) ⇝ 59/4 | note:F#2 gain:0.6247759065022566 clip:1 s:piano release:0.1 pan:0.4444444444444444 ]", - "[ 29/2 ⇜ (469/32 → 939/64) ⇝ 59/4 | note:Bb3 gain:0.31238795325113033 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", - "[ 29/2 ⇜ (469/32 → 939/64) ⇝ 59/4 | note:Eb4 gain:0.31238795325113033 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", - "[ 29/2 ⇜ (469/32 → 939/64) ⇝ 59/4 | note:E4 gain:0.31238795325113033 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", - "[ 29/2 ⇜ (469/32 → 939/64) ⇝ 59/4 | note:Ab4 gain:0.31238795325113033 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", - "[ 29/2 ⇜ (469/32 → 939/64) ⇝ 59/4 | note:F#2 gain:0.6247759065022607 clip:1 s:piano release:0.1 pan:0.4444444444444444 ]", - "[ 29/2 ⇜ (939/64 → 235/16) ⇝ 59/4 | note:Bb3 gain:0.25826834323651576 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", - "[ 29/2 ⇜ (939/64 → 235/16) ⇝ 59/4 | note:Eb4 gain:0.25826834323651576 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", - "[ 29/2 ⇜ (939/64 → 235/16) ⇝ 59/4 | note:E4 gain:0.25826834323651576 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", - "[ 29/2 ⇜ (939/64 → 235/16) ⇝ 59/4 | note:Ab4 gain:0.25826834323651576 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", - "[ 29/2 ⇜ (939/64 → 235/16) ⇝ 59/4 | note:F#2 gain:0.5165366864730315 clip:1 s:piano release:0.1 pan:0.4444444444444444 ]", - "[ 29/2 ⇜ (235/16 → 941/64) ⇝ 59/4 | note:Bb3 gain:0.1817316567634902 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", - "[ 29/2 ⇜ (235/16 → 941/64) ⇝ 59/4 | note:Eb4 gain:0.1817316567634902 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", - "[ 29/2 ⇜ (235/16 → 941/64) ⇝ 59/4 | note:E4 gain:0.1817316567634902 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", - "[ 29/2 ⇜ (235/16 → 941/64) ⇝ 59/4 | note:Ab4 gain:0.1817316567634902 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", - "[ 29/2 ⇜ (235/16 → 941/64) ⇝ 59/4 | note:F#2 gain:0.3634633135269804 clip:1 s:piano release:0.1 pan:0.4444444444444444 ]", - "[ 29/2 ⇜ (941/64 → 471/32) ⇝ 59/4 | note:Bb3 gain:0.12761204674887217 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", - "[ 29/2 ⇜ (941/64 → 471/32) ⇝ 59/4 | note:Eb4 gain:0.12761204674887217 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", - "[ 29/2 ⇜ (941/64 → 471/32) ⇝ 59/4 | note:E4 gain:0.12761204674887217 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", - "[ 29/2 ⇜ (941/64 → 471/32) ⇝ 59/4 | note:Ab4 gain:0.12761204674887217 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", - "[ 29/2 ⇜ (941/64 → 471/32) ⇝ 59/4 | note:F#2 gain:0.25522409349774433 clip:1 s:piano release:0.1 pan:0.4444444444444444 ]", - "[ 29/2 ⇜ (471/32 → 943/64) ⇝ 59/4 | note:Bb3 gain:0.12761204674886928 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", - "[ 29/2 ⇜ (471/32 → 943/64) ⇝ 59/4 | note:Eb4 gain:0.12761204674886928 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", - "[ 29/2 ⇜ (471/32 → 943/64) ⇝ 59/4 | note:E4 gain:0.12761204674886928 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", - "[ 29/2 ⇜ (471/32 → 943/64) ⇝ 59/4 | note:Ab4 gain:0.12761204674886928 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", - "[ 29/2 ⇜ (471/32 → 943/64) ⇝ 59/4 | note:F#2 gain:0.25522409349773856 clip:1 s:piano release:0.1 pan:0.4444444444444444 ]", - "[ 29/2 ⇜ (943/64 → 59/4) | note:Bb3 gain:0.18173165676348324 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", - "[ 29/2 ⇜ (943/64 → 59/4) | note:Eb4 gain:0.18173165676348324 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", - "[ 29/2 ⇜ (943/64 → 59/4) | note:E4 gain:0.18173165676348324 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", - "[ 29/2 ⇜ (943/64 → 59/4) | note:Ab4 gain:0.18173165676348324 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", - "[ 29/2 ⇜ (943/64 → 59/4) | note:F#2 gain:0.3634633135269665 clip:1 s:piano release:0.1 pan:0.4444444444444444 ]", - "[ (59/4 → 945/64) ⇝ 119/8 | note:F#4 gain:0.5165366864730176 clip:1 s:piano release:0.1 pan:0.5555555555555556 ]", - "[ (59/4 → 945/64) ⇝ 119/8 | note:C#5 gain:0.5165366864730176 clip:1 s:piano release:0.1 pan:0.587962962962963 ]", - "[ (59/4 → 945/64) ⇝ 119/8 | note:E5 gain:0.5165366864730176 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", - "[ 59/4 ⇜ (945/64 → 473/32) ⇝ 119/8 | note:F#4 gain:0.6247759065022548 clip:1 s:piano release:0.1 pan:0.5555555555555556 ]", - "[ 59/4 ⇜ (945/64 → 473/32) ⇝ 119/8 | note:C#5 gain:0.6247759065022548 clip:1 s:piano release:0.1 pan:0.587962962962963 ]", - "[ 59/4 ⇜ (945/64 → 473/32) ⇝ 119/8 | note:E5 gain:0.6247759065022548 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", - "[ 59/4 ⇜ (473/32 → 947/64) ⇝ 119/8 | note:F#4 gain:0.6247759065022622 clip:1 s:piano release:0.1 pan:0.5555555555555556 ]", - "[ 59/4 ⇜ (473/32 → 947/64) ⇝ 119/8 | note:C#5 gain:0.6247759065022622 clip:1 s:piano release:0.1 pan:0.587962962962963 ]", - "[ 59/4 ⇜ (473/32 → 947/64) ⇝ 119/8 | note:E5 gain:0.6247759065022622 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", - "[ (207/14 → 947/64) ⇝ 421/28 | note:70 gain:0.06247759065022623 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", - "[ (207/14 → 947/64) ⇝ 421/28 | note:75 gain:0.06247759065022623 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", - "[ (207/14 → 947/64) ⇝ 421/28 | note:76 gain:0.06247759065022623 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", - "[ (207/14 → 947/64) ⇝ 421/28 | note:80 gain:0.06247759065022623 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", - "[ 59/4 ⇜ (947/64 → 237/16) ⇝ 119/8 | note:F#4 gain:0.5165366864730147 clip:1 s:piano release:0.1 pan:0.5555555555555556 ]", - "[ 59/4 ⇜ (947/64 → 237/16) ⇝ 119/8 | note:C#5 gain:0.5165366864730147 clip:1 s:piano release:0.1 pan:0.587962962962963 ]", - "[ 59/4 ⇜ (947/64 → 237/16) ⇝ 119/8 | note:E5 gain:0.5165366864730147 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", - "[ 207/14 ⇜ (947/64 → 237/16) ⇝ 421/28 | note:70 gain:0.05165366864730147 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", - "[ 207/14 ⇜ (947/64 → 237/16) ⇝ 421/28 | note:75 gain:0.05165366864730147 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", - "[ 207/14 ⇜ (947/64 → 237/16) ⇝ 421/28 | note:76 gain:0.05165366864730147 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", - "[ 207/14 ⇜ (947/64 → 237/16) ⇝ 421/28 | note:80 gain:0.05165366864730147 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", - "[ 59/4 ⇜ (237/16 → 949/64) ⇝ 119/8 | note:F#4 gain:0.3634633135269844 clip:1 s:piano release:0.1 pan:0.5555555555555556 ]", - "[ 59/4 ⇜ (237/16 → 949/64) ⇝ 119/8 | note:C#5 gain:0.3634633135269844 clip:1 s:piano release:0.1 pan:0.587962962962963 ]", - "[ 59/4 ⇜ (237/16 → 949/64) ⇝ 119/8 | note:E5 gain:0.3634633135269844 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", - "[ 207/14 ⇜ (237/16 → 949/64) ⇝ 421/28 | note:70 gain:0.03634633135269844 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", - "[ 207/14 ⇜ (237/16 → 949/64) ⇝ 421/28 | note:75 gain:0.03634633135269844 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", - "[ 207/14 ⇜ (237/16 → 949/64) ⇝ 421/28 | note:76 gain:0.03634633135269844 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", - "[ 207/14 ⇜ (237/16 → 949/64) ⇝ 421/28 | note:80 gain:0.03634633135269844 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", - "[ 59/4 ⇜ (949/64 → 475/32) ⇝ 119/8 | note:F#4 gain:0.25522409349774605 clip:1 s:piano release:0.1 pan:0.5555555555555556 ]", - "[ 59/4 ⇜ (949/64 → 475/32) ⇝ 119/8 | note:C#5 gain:0.25522409349774605 clip:1 s:piano release:0.1 pan:0.587962962962963 ]", - "[ 59/4 ⇜ (949/64 → 475/32) ⇝ 119/8 | note:E5 gain:0.25522409349774605 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", - "[ 207/14 ⇜ (949/64 → 475/32) ⇝ 421/28 | note:70 gain:0.025522409349774608 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", - "[ 207/14 ⇜ (949/64 → 475/32) ⇝ 421/28 | note:75 gain:0.025522409349774608 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", - "[ 207/14 ⇜ (949/64 → 475/32) ⇝ 421/28 | note:76 gain:0.025522409349774608 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", - "[ 207/14 ⇜ (949/64 → 475/32) ⇝ 421/28 | note:80 gain:0.025522409349774608 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", - "[ 59/4 ⇜ (475/32 → 951/64) ⇝ 119/8 | note:F#4 gain:0.25522409349773695 clip:1 s:piano release:0.1 pan:0.5555555555555556 ]", - "[ 59/4 ⇜ (475/32 → 951/64) ⇝ 119/8 | note:C#5 gain:0.25522409349773695 clip:1 s:piano release:0.1 pan:0.587962962962963 ]", - "[ 59/4 ⇜ (475/32 → 951/64) ⇝ 119/8 | note:E5 gain:0.25522409349773695 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", - "[ 207/14 ⇜ (475/32 → 951/64) ⇝ 421/28 | note:70 gain:0.025522409349773695 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", - "[ 207/14 ⇜ (475/32 → 951/64) ⇝ 421/28 | note:75 gain:0.025522409349773695 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", - "[ 207/14 ⇜ (475/32 → 951/64) ⇝ 421/28 | note:76 gain:0.025522409349773695 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", - "[ 207/14 ⇜ (475/32 → 951/64) ⇝ 421/28 | note:80 gain:0.025522409349773695 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", - "[ 59/4 ⇜ (951/64 → 119/8) | note:F#4 gain:0.36346331352698347 clip:1 s:piano release:0.1 pan:0.5555555555555556 ]", - "[ 59/4 ⇜ (951/64 → 119/8) | note:C#5 gain:0.36346331352698347 clip:1 s:piano release:0.1 pan:0.587962962962963 ]", - "[ 59/4 ⇜ (951/64 → 119/8) | note:E5 gain:0.36346331352698347 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", - "[ 207/14 ⇜ (951/64 → 119/8) ⇝ 421/28 | note:70 gain:0.036346331352698345 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", - "[ 207/14 ⇜ (951/64 → 119/8) ⇝ 421/28 | note:75 gain:0.036346331352698345 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", - "[ 207/14 ⇜ (951/64 → 119/8) ⇝ 421/28 | note:76 gain:0.036346331352698345 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", - "[ 207/14 ⇜ (951/64 → 119/8) ⇝ 421/28 | note:80 gain:0.036346331352698345 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", - "[ 207/14 ⇜ (119/8 → 953/64) ⇝ 421/28 | note:70 gain:0.05165366864730138 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", - "[ 207/14 ⇜ (119/8 → 953/64) ⇝ 421/28 | note:75 gain:0.05165366864730138 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", - "[ 207/14 ⇜ (119/8 → 953/64) ⇝ 421/28 | note:76 gain:0.05165366864730138 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", - "[ 207/14 ⇜ (119/8 → 953/64) ⇝ 421/28 | note:80 gain:0.05165366864730138 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", - "[ 207/14 ⇜ (953/64 → 477/32) ⇝ 421/28 | note:70 gain:0.062477590650225324 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", - "[ 207/14 ⇜ (953/64 → 477/32) ⇝ 421/28 | note:75 gain:0.062477590650225324 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", - "[ 207/14 ⇜ (953/64 → 477/32) ⇝ 421/28 | note:76 gain:0.062477590650225324 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", - "[ 207/14 ⇜ (953/64 → 477/32) ⇝ 421/28 | note:80 gain:0.062477590650225324 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", - "[ 207/14 ⇜ (477/32 → 955/64) ⇝ 421/28 | note:70 gain:0.06247759065022639 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", - "[ 207/14 ⇜ (477/32 → 955/64) ⇝ 421/28 | note:75 gain:0.06247759065022639 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", - "[ 207/14 ⇜ (477/32 → 955/64) ⇝ 421/28 | note:76 gain:0.06247759065022639 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", - "[ 207/14 ⇜ (477/32 → 955/64) ⇝ 421/28 | note:80 gain:0.06247759065022639 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", - "[ 207/14 ⇜ (955/64 → 239/16) ⇝ 421/28 | note:70 gain:0.05165366864730186 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", - "[ 207/14 ⇜ (955/64 → 239/16) ⇝ 421/28 | note:75 gain:0.05165366864730186 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", - "[ 207/14 ⇜ (955/64 → 239/16) ⇝ 421/28 | note:76 gain:0.05165366864730186 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", - "[ 207/14 ⇜ (955/64 → 239/16) ⇝ 421/28 | note:80 gain:0.05165366864730186 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", - "[ 207/14 ⇜ (239/16 → 957/64) ⇝ 421/28 | note:70 gain:0.03634633135269884 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", - "[ 207/14 ⇜ (239/16 → 957/64) ⇝ 421/28 | note:75 gain:0.03634633135269884 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", - "[ 207/14 ⇜ (239/16 → 957/64) ⇝ 421/28 | note:76 gain:0.03634633135269884 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", - "[ 207/14 ⇜ (239/16 → 957/64) ⇝ 421/28 | note:80 gain:0.03634633135269884 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", - "[ 207/14 ⇜ (957/64 → 479/32) ⇝ 421/28 | note:70 gain:0.02552240934977476 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", - "[ 207/14 ⇜ (957/64 → 479/32) ⇝ 421/28 | note:75 gain:0.02552240934977476 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", - "[ 207/14 ⇜ (957/64 → 479/32) ⇝ 421/28 | note:76 gain:0.02552240934977476 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", - "[ 207/14 ⇜ (957/64 → 479/32) ⇝ 421/28 | note:80 gain:0.02552240934977476 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", - "[ 207/14 ⇜ (479/32 → 959/64) ⇝ 421/28 | note:70 gain:0.0255224093497744 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", - "[ 207/14 ⇜ (479/32 → 959/64) ⇝ 421/28 | note:75 gain:0.0255224093497744 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", - "[ 207/14 ⇜ (479/32 → 959/64) ⇝ 421/28 | note:76 gain:0.0255224093497744 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", - "[ 207/14 ⇜ (479/32 → 959/64) ⇝ 421/28 | note:80 gain:0.0255224093497744 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", - "[ 207/14 ⇜ (959/64 → 15/1) ⇝ 421/28 | note:70 gain:0.03634633135269796 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", - "[ 207/14 ⇜ (959/64 → 15/1) ⇝ 421/28 | note:75 gain:0.03634633135269796 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", - "[ 207/14 ⇜ (959/64 → 15/1) ⇝ 421/28 | note:76 gain:0.03634633135269796 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", - "[ 207/14 ⇜ (959/64 → 15/1) ⇝ 421/28 | note:80 gain:0.03634633135269796 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", - "[ 207/14 ⇜ (15/1 → 961/64) ⇝ 421/28 | note:70 gain:0.05165366864730097 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", - "[ 207/14 ⇜ (15/1 → 961/64) ⇝ 421/28 | note:75 gain:0.05165366864730097 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", - "[ 207/14 ⇜ (15/1 → 961/64) ⇝ 421/28 | note:76 gain:0.05165366864730097 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", - "[ 207/14 ⇜ (15/1 → 961/64) ⇝ 421/28 | note:80 gain:0.05165366864730097 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", - "[ (15/1 → 961/64) ⇝ 61/4 | note:F#2 gain:0.5165366864730097 clip:1 s:piano release:0.1 pan:0.4444444444444444 ]", - "[ 207/14 ⇜ (961/64 → 481/32) ⇝ 421/28 | note:70 gain:0.06247759065022516 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", - "[ 207/14 ⇜ (961/64 → 481/32) ⇝ 421/28 | note:75 gain:0.06247759065022516 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", - "[ 207/14 ⇜ (961/64 → 481/32) ⇝ 421/28 | note:76 gain:0.06247759065022516 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", - "[ 207/14 ⇜ (961/64 → 481/32) ⇝ 421/28 | note:80 gain:0.06247759065022516 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", - "[ 15/1 ⇜ (961/64 → 481/32) ⇝ 61/4 | note:F#2 gain:0.6247759065022516 clip:1 s:piano release:0.1 pan:0.4444444444444444 ]", - "[ 207/14 ⇜ (481/32 → 421/28) | note:70 gain:0.06247759065022569 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", - "[ 207/14 ⇜ (481/32 → 421/28) | note:75 gain:0.06247759065022569 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", - "[ 207/14 ⇜ (481/32 → 421/28) | note:76 gain:0.06247759065022569 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", - "[ 207/14 ⇜ (481/32 → 421/28) | note:80 gain:0.06247759065022569 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", - "[ 15/1 ⇜ (481/32 → 963/64) ⇝ 61/4 | note:F#2 gain:0.6247759065022569 clip:1 s:piano release:0.1 pan:0.4444444444444444 ]", - "[ 15/1 ⇜ (963/64 → 241/16) ⇝ 61/4 | note:F#2 gain:0.5165366864730225 clip:1 s:piano release:0.1 pan:0.4444444444444444 ]", - "[ 15/1 ⇜ (241/16 → 965/64) ⇝ 61/4 | note:F#2 gain:0.36346331352699235 clip:1 s:piano release:0.1 pan:0.4444444444444444 ]", - "[ 15/1 ⇜ (965/64 → 483/32) ⇝ 61/4 | note:F#2 gain:0.2552240934977406 clip:1 s:piano release:0.1 pan:0.4444444444444444 ]", - "[ 15/1 ⇜ (483/32 → 967/64) ⇝ 61/4 | note:F#2 gain:0.2552240934977423 clip:1 s:piano release:0.1 pan:0.4444444444444444 ]", - "[ 15/1 ⇜ (967/64 → 121/8) ⇝ 61/4 | note:F#2 gain:0.36346331352697553 clip:1 s:piano release:0.1 pan:0.4444444444444444 ]", - "[ 15/1 ⇜ (121/8 → 969/64) ⇝ 61/4 | note:F#2 gain:0.5165366864730058 clip:1 s:piano release:0.1 pan:0.4444444444444444 ]", - "[ (121/8 → 969/64) ⇝ 61/4 | note:F#4 gain:0.5165366864730058 clip:1 s:piano release:0.1 pan:0.5555555555555556 ]", - "[ (121/8 → 969/64) ⇝ 61/4 | note:C#5 gain:0.5165366864730058 clip:1 s:piano release:0.1 pan:0.587962962962963 ]", - "[ (121/8 → 969/64) ⇝ 61/4 | note:E5 gain:0.5165366864730058 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", - "[ 15/1 ⇜ (969/64 → 485/32) ⇝ 61/4 | note:F#2 gain:0.6247759065022587 clip:1 s:piano release:0.1 pan:0.4444444444444444 ]", - "[ 121/8 ⇜ (969/64 → 485/32) ⇝ 61/4 | note:F#4 gain:0.6247759065022587 clip:1 s:piano release:0.1 pan:0.5555555555555556 ]", - "[ 121/8 ⇜ (969/64 → 485/32) ⇝ 61/4 | note:C#5 gain:0.6247759065022587 clip:1 s:piano release:0.1 pan:0.587962962962963 ]", - "[ 121/8 ⇜ (969/64 → 485/32) ⇝ 61/4 | note:E5 gain:0.6247759065022587 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", - "[ 15/1 ⇜ (485/32 → 971/64) ⇝ 61/4 | note:F#2 gain:0.6247759065022586 clip:1 s:piano release:0.1 pan:0.4444444444444444 ]", - "[ 121/8 ⇜ (485/32 → 971/64) ⇝ 61/4 | note:F#4 gain:0.6247759065022586 clip:1 s:piano release:0.1 pan:0.5555555555555556 ]", - "[ 121/8 ⇜ (485/32 → 971/64) ⇝ 61/4 | note:C#5 gain:0.6247759065022586 clip:1 s:piano release:0.1 pan:0.587962962962963 ]", - "[ 121/8 ⇜ (485/32 → 971/64) ⇝ 61/4 | note:E5 gain:0.6247759065022586 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", - "[ 15/1 ⇜ (971/64 → 243/16) ⇝ 61/4 | note:F#2 gain:0.5165366864730265 clip:1 s:piano release:0.1 pan:0.4444444444444444 ]", - "[ 121/8 ⇜ (971/64 → 243/16) ⇝ 61/4 | note:F#4 gain:0.5165366864730265 clip:1 s:piano release:0.1 pan:0.5555555555555556 ]", - "[ 121/8 ⇜ (971/64 → 243/16) ⇝ 61/4 | note:C#5 gain:0.5165366864730265 clip:1 s:piano release:0.1 pan:0.587962962962963 ]", - "[ 121/8 ⇜ (971/64 → 243/16) ⇝ 61/4 | note:E5 gain:0.5165366864730265 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", - "[ 15/1 ⇜ (243/16 → 973/64) ⇝ 61/4 | note:F#2 gain:0.36346331352699635 clip:1 s:piano release:0.1 pan:0.4444444444444444 ]", - "[ 121/8 ⇜ (243/16 → 973/64) ⇝ 61/4 | note:F#4 gain:0.36346331352699635 clip:1 s:piano release:0.1 pan:0.5555555555555556 ]", - "[ 121/8 ⇜ (243/16 → 973/64) ⇝ 61/4 | note:C#5 gain:0.36346331352699635 clip:1 s:piano release:0.1 pan:0.587962962962963 ]", - "[ 121/8 ⇜ (243/16 → 973/64) ⇝ 61/4 | note:E5 gain:0.36346331352699635 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", - "[ 15/1 ⇜ (973/64 → 487/32) ⇝ 61/4 | note:F#2 gain:0.2552240934977423 clip:1 s:piano release:0.1 pan:0.4444444444444444 ]", - "[ 121/8 ⇜ (973/64 → 487/32) ⇝ 61/4 | note:F#4 gain:0.2552240934977423 clip:1 s:piano release:0.1 pan:0.5555555555555556 ]", - "[ 121/8 ⇜ (973/64 → 487/32) ⇝ 61/4 | note:C#5 gain:0.2552240934977423 clip:1 s:piano release:0.1 pan:0.587962962962963 ]", - "[ 121/8 ⇜ (973/64 → 487/32) ⇝ 61/4 | note:E5 gain:0.2552240934977423 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", - "[ 15/1 ⇜ (487/32 → 975/64) ⇝ 61/4 | note:F#2 gain:0.2552240934977407 clip:1 s:piano release:0.1 pan:0.4444444444444444 ]", - "[ 121/8 ⇜ (487/32 → 975/64) ⇝ 61/4 | note:F#4 gain:0.2552240934977407 clip:1 s:piano release:0.1 pan:0.5555555555555556 ]", - "[ 121/8 ⇜ (487/32 → 975/64) ⇝ 61/4 | note:C#5 gain:0.2552240934977407 clip:1 s:piano release:0.1 pan:0.587962962962963 ]", - "[ 121/8 ⇜ (487/32 → 975/64) ⇝ 61/4 | note:E5 gain:0.2552240934977407 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", - "[ 15/1 ⇜ (975/64 → 61/4) | note:F#2 gain:0.36346331352697153 clip:1 s:piano release:0.1 pan:0.4444444444444444 ]", - "[ 121/8 ⇜ (975/64 → 61/4) | note:F#4 gain:0.36346331352697153 clip:1 s:piano release:0.1 pan:0.5555555555555556 ]", - "[ 121/8 ⇜ (975/64 → 61/4) | note:C#5 gain:0.36346331352697153 clip:1 s:piano release:0.1 pan:0.587962962962963 ]", - "[ 121/8 ⇜ (975/64 → 61/4) | note:E5 gain:0.36346331352697153 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", - "[ (61/4 → 977/64) ⇝ 31/2 | note:Bb3 gain:0.2582683432365113 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", - "[ (61/4 → 977/64) ⇝ 31/2 | note:Eb4 gain:0.2582683432365113 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", - "[ (61/4 → 977/64) ⇝ 31/2 | note:E4 gain:0.2582683432365113 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", - "[ (61/4 → 977/64) ⇝ 31/2 | note:Ab4 gain:0.2582683432365113 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", - "[ 61/4 ⇜ (977/64 → 489/32) ⇝ 31/2 | note:Bb3 gain:0.31238795325112845 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", - "[ 61/4 ⇜ (977/64 → 489/32) ⇝ 31/2 | note:Eb4 gain:0.31238795325112845 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", - "[ 61/4 ⇜ (977/64 → 489/32) ⇝ 31/2 | note:E4 gain:0.31238795325112845 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", - "[ 61/4 ⇜ (977/64 → 489/32) ⇝ 31/2 | note:Ab4 gain:0.31238795325112845 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", - "[ 61/4 ⇜ (489/32 → 979/64) ⇝ 31/2 | note:Bb3 gain:0.31238795325113006 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", - "[ 61/4 ⇜ (489/32 → 979/64) ⇝ 31/2 | note:Eb4 gain:0.31238795325113006 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", - "[ 61/4 ⇜ (489/32 → 979/64) ⇝ 31/2 | note:E4 gain:0.31238795325113006 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", - "[ 61/4 ⇜ (489/32 → 979/64) ⇝ 31/2 | note:Ab4 gain:0.31238795325113006 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", - "[ 61/4 ⇜ (979/64 → 245/16) ⇝ 31/2 | note:Bb3 gain:0.2582683432365152 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", - "[ 61/4 ⇜ (979/64 → 245/16) ⇝ 31/2 | note:Eb4 gain:0.2582683432365152 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", - "[ 61/4 ⇜ (979/64 → 245/16) ⇝ 31/2 | note:E4 gain:0.2582683432365152 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", - "[ 61/4 ⇜ (979/64 → 245/16) ⇝ 31/2 | note:Ab4 gain:0.2582683432365152 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", - "[ 61/4 ⇜ (245/16 → 981/64) ⇝ 31/2 | note:Bb3 gain:0.18173165676348965 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", - "[ 61/4 ⇜ (245/16 → 981/64) ⇝ 31/2 | note:Eb4 gain:0.18173165676348965 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", - "[ 61/4 ⇜ (245/16 → 981/64) ⇝ 31/2 | note:E4 gain:0.18173165676348965 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", - "[ 61/4 ⇜ (245/16 → 981/64) ⇝ 31/2 | note:Ab4 gain:0.18173165676348965 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", - "[ 61/4 ⇜ (981/64 → 491/32) ⇝ 31/2 | note:Bb3 gain:0.12761204674887194 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", - "[ 61/4 ⇜ (981/64 → 491/32) ⇝ 31/2 | note:Eb4 gain:0.12761204674887194 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", - "[ 61/4 ⇜ (981/64 → 491/32) ⇝ 31/2 | note:E4 gain:0.12761204674887194 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", - "[ 61/4 ⇜ (981/64 → 491/32) ⇝ 31/2 | note:Ab4 gain:0.12761204674887194 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", - "[ 61/4 ⇜ (491/32 → 983/64) ⇝ 31/2 | note:Bb3 gain:0.1276120467488695 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", - "[ 61/4 ⇜ (491/32 → 983/64) ⇝ 31/2 | note:Eb4 gain:0.1276120467488695 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", - "[ 61/4 ⇜ (491/32 → 983/64) ⇝ 31/2 | note:E4 gain:0.1276120467488695 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", - "[ 61/4 ⇜ (491/32 → 983/64) ⇝ 31/2 | note:Ab4 gain:0.1276120467488695 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", - "[ 61/4 ⇜ (983/64 → 123/8) ⇝ 31/2 | note:Bb3 gain:0.1817316567634838 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", - "[ 61/4 ⇜ (983/64 → 123/8) ⇝ 31/2 | note:Eb4 gain:0.1817316567634838 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", - "[ 61/4 ⇜ (983/64 → 123/8) ⇝ 31/2 | note:E4 gain:0.1817316567634838 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", - "[ 61/4 ⇜ (983/64 → 123/8) ⇝ 31/2 | note:Ab4 gain:0.1817316567634838 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", - "[ 61/4 ⇜ (123/8 → 985/64) ⇝ 31/2 | note:Bb3 gain:0.2582683432365093 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", - "[ 61/4 ⇜ (123/8 → 985/64) ⇝ 31/2 | note:Eb4 gain:0.2582683432365093 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", - "[ 61/4 ⇜ (123/8 → 985/64) ⇝ 31/2 | note:E4 gain:0.2582683432365093 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", - "[ 61/4 ⇜ (123/8 → 985/64) ⇝ 31/2 | note:Ab4 gain:0.2582683432365093 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", - "[ 61/4 ⇜ (985/64 → 493/32) ⇝ 31/2 | note:Bb3 gain:0.31238795325112767 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", - "[ 61/4 ⇜ (985/64 → 493/32) ⇝ 31/2 | note:Eb4 gain:0.31238795325112767 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", - "[ 61/4 ⇜ (985/64 → 493/32) ⇝ 31/2 | note:E4 gain:0.31238795325112767 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", - "[ 61/4 ⇜ (985/64 → 493/32) ⇝ 31/2 | note:Ab4 gain:0.31238795325112767 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", - "[ 61/4 ⇜ (493/32 → 987/64) ⇝ 31/2 | note:Bb3 gain:0.31238795325113095 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", - "[ 61/4 ⇜ (493/32 → 987/64) ⇝ 31/2 | note:Eb4 gain:0.31238795325113095 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", - "[ 61/4 ⇜ (493/32 → 987/64) ⇝ 31/2 | note:E4 gain:0.31238795325113095 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", - "[ 61/4 ⇜ (493/32 → 987/64) ⇝ 31/2 | note:Ab4 gain:0.31238795325113095 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", - "[ 61/4 ⇜ (987/64 → 247/16) ⇝ 31/2 | note:Bb3 gain:0.2582683432365067 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", - "[ 61/4 ⇜ (987/64 → 247/16) ⇝ 31/2 | note:Eb4 gain:0.2582683432365067 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", - "[ 61/4 ⇜ (987/64 → 247/16) ⇝ 31/2 | note:E4 gain:0.2582683432365067 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", - "[ 61/4 ⇜ (987/64 → 247/16) ⇝ 31/2 | note:Ab4 gain:0.2582683432365067 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", - "[ 61/4 ⇜ (247/16 → 989/64) ⇝ 31/2 | note:Bb3 gain:0.18173165676349165 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", - "[ 61/4 ⇜ (247/16 → 989/64) ⇝ 31/2 | note:Eb4 gain:0.18173165676349165 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", - "[ 61/4 ⇜ (247/16 → 989/64) ⇝ 31/2 | note:E4 gain:0.18173165676349165 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", - "[ 61/4 ⇜ (247/16 → 989/64) ⇝ 31/2 | note:Ab4 gain:0.18173165676349165 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", - "[ 61/4 ⇜ (989/64 → 495/32) ⇝ 31/2 | note:Bb3 gain:0.12761204674887278 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", - "[ 61/4 ⇜ (989/64 → 495/32) ⇝ 31/2 | note:Eb4 gain:0.12761204674887278 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", - "[ 61/4 ⇜ (989/64 → 495/32) ⇝ 31/2 | note:E4 gain:0.12761204674887278 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", - "[ 61/4 ⇜ (989/64 → 495/32) ⇝ 31/2 | note:Ab4 gain:0.12761204674887278 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", - "[ 61/4 ⇜ (495/32 → 991/64) ⇝ 31/2 | note:Bb3 gain:0.1276120467488687 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", - "[ 61/4 ⇜ (495/32 → 991/64) ⇝ 31/2 | note:Eb4 gain:0.1276120467488687 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", - "[ 61/4 ⇜ (495/32 → 991/64) ⇝ 31/2 | note:E4 gain:0.1276120467488687 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", - "[ 61/4 ⇜ (495/32 → 991/64) ⇝ 31/2 | note:Ab4 gain:0.1276120467488687 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", - "[ 61/4 ⇜ (991/64 → 31/2) | note:Bb3 gain:0.1817316567634923 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", - "[ 61/4 ⇜ (991/64 → 31/2) | note:Eb4 gain:0.1817316567634923 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", - "[ 61/4 ⇜ (991/64 → 31/2) | note:E4 gain:0.1817316567634923 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", - "[ 61/4 ⇜ (991/64 → 31/2) | note:Ab4 gain:0.1817316567634923 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", - "[ (31/2 → 993/64) ⇝ 125/8 | note:C#5 gain:0.5165366864730148 clip:1 s:piano release:0.1 pan:0.587962962962963 ]", - "[ (31/2 → 993/64) ⇝ 125/8 | note:G#5 gain:0.5165366864730148 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", - "[ (31/2 → 993/64) ⇝ 125/8 | note:B5 gain:0.5165366864730148 clip:1 s:piano release:0.1 pan:0.6342592592592593 ]", - "[ (31/2 → 993/64) ⇝ 63/4 | note:F#2 gain:0.5165366864730148 clip:1 s:piano release:0.1 pan:0.4444444444444444 ]", - "[ 31/2 ⇜ (993/64 → 497/32) ⇝ 125/8 | note:C#5 gain:0.6247759065022538 clip:1 s:piano release:0.1 pan:0.587962962962963 ]", - "[ 31/2 ⇜ (993/64 → 497/32) ⇝ 125/8 | note:G#5 gain:0.6247759065022538 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", - "[ 31/2 ⇜ (993/64 → 497/32) ⇝ 125/8 | note:B5 gain:0.6247759065022538 clip:1 s:piano release:0.1 pan:0.6342592592592593 ]", - "[ 31/2 ⇜ (993/64 → 497/32) ⇝ 63/4 | note:F#2 gain:0.6247759065022538 clip:1 s:piano release:0.1 pan:0.4444444444444444 ]", - "[ 31/2 ⇜ (497/32 → 995/64) ⇝ 125/8 | note:C#5 gain:0.6247759065022636 clip:1 s:piano release:0.1 pan:0.587962962962963 ]", - "[ 31/2 ⇜ (497/32 → 995/64) ⇝ 125/8 | note:G#5 gain:0.6247759065022636 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", - "[ 31/2 ⇜ (497/32 → 995/64) ⇝ 125/8 | note:B5 gain:0.6247759065022636 clip:1 s:piano release:0.1 pan:0.6342592592592593 ]", - "[ 31/2 ⇜ (497/32 → 995/64) ⇝ 63/4 | note:F#2 gain:0.6247759065022636 clip:1 s:piano release:0.1 pan:0.4444444444444444 ]", - "[ (435/28 → 995/64) ⇝ 221/14 | note:70 gain:0.06247759065022636 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", - "[ (435/28 → 995/64) ⇝ 221/14 | note:75 gain:0.06247759065022636 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", - "[ (435/28 → 995/64) ⇝ 221/14 | note:76 gain:0.06247759065022636 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", - "[ (435/28 → 995/64) ⇝ 221/14 | note:80 gain:0.06247759065022636 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", - "[ 31/2 ⇜ (995/64 → 249/16) ⇝ 125/8 | note:C#5 gain:0.5165366864730174 clip:1 s:piano release:0.1 pan:0.587962962962963 ]", - "[ 31/2 ⇜ (995/64 → 249/16) ⇝ 125/8 | note:G#5 gain:0.5165366864730174 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", - "[ 31/2 ⇜ (995/64 → 249/16) ⇝ 125/8 | note:B5 gain:0.5165366864730174 clip:1 s:piano release:0.1 pan:0.6342592592592593 ]", - "[ 31/2 ⇜ (995/64 → 249/16) ⇝ 63/4 | note:F#2 gain:0.5165366864730174 clip:1 s:piano release:0.1 pan:0.4444444444444444 ]", - "[ 435/28 ⇜ (995/64 → 249/16) ⇝ 221/14 | note:70 gain:0.05165366864730175 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", - "[ 435/28 ⇜ (995/64 → 249/16) ⇝ 221/14 | note:75 gain:0.05165366864730175 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", - "[ 435/28 ⇜ (995/64 → 249/16) ⇝ 221/14 | note:76 gain:0.05165366864730175 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", - "[ 435/28 ⇜ (995/64 → 249/16) ⇝ 221/14 | note:80 gain:0.05165366864730175 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", - "[ 31/2 ⇜ (249/16 → 997/64) ⇝ 125/8 | note:C#5 gain:0.3634633135269873 clip:1 s:piano release:0.1 pan:0.587962962962963 ]", - "[ 31/2 ⇜ (249/16 → 997/64) ⇝ 125/8 | note:G#5 gain:0.3634633135269873 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", - "[ 31/2 ⇜ (249/16 → 997/64) ⇝ 125/8 | note:B5 gain:0.3634633135269873 clip:1 s:piano release:0.1 pan:0.6342592592592593 ]", - "[ 31/2 ⇜ (249/16 → 997/64) ⇝ 63/4 | note:F#2 gain:0.3634633135269873 clip:1 s:piano release:0.1 pan:0.4444444444444444 ]", - "[ 435/28 ⇜ (249/16 → 997/64) ⇝ 221/14 | note:70 gain:0.036346331352698734 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", - "[ 435/28 ⇜ (249/16 → 997/64) ⇝ 221/14 | note:75 gain:0.036346331352698734 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", - "[ 435/28 ⇜ (249/16 → 997/64) ⇝ 221/14 | note:76 gain:0.036346331352698734 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", - "[ 435/28 ⇜ (249/16 → 997/64) ⇝ 221/14 | note:80 gain:0.036346331352698734 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", - "[ 31/2 ⇜ (997/64 → 499/32) ⇝ 125/8 | note:C#5 gain:0.25522409349774716 clip:1 s:piano release:0.1 pan:0.587962962962963 ]", - "[ 31/2 ⇜ (997/64 → 499/32) ⇝ 125/8 | note:G#5 gain:0.25522409349774716 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", - "[ 31/2 ⇜ (997/64 → 499/32) ⇝ 125/8 | note:B5 gain:0.25522409349774716 clip:1 s:piano release:0.1 pan:0.6342592592592593 ]", - "[ 31/2 ⇜ (997/64 → 499/32) ⇝ 63/4 | note:F#2 gain:0.25522409349774716 clip:1 s:piano release:0.1 pan:0.4444444444444444 ]", - "[ 435/28 ⇜ (997/64 → 499/32) ⇝ 221/14 | note:70 gain:0.02552240934977472 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", - "[ 435/28 ⇜ (997/64 → 499/32) ⇝ 221/14 | note:75 gain:0.02552240934977472 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", - "[ 435/28 ⇜ (997/64 → 499/32) ⇝ 221/14 | note:76 gain:0.02552240934977472 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", - "[ 435/28 ⇜ (997/64 → 499/32) ⇝ 221/14 | note:80 gain:0.02552240934977472 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", - "[ 31/2 ⇜ (499/32 → 999/64) ⇝ 125/8 | note:C#5 gain:0.25522409349774444 clip:1 s:piano release:0.1 pan:0.587962962962963 ]", - "[ 31/2 ⇜ (499/32 → 999/64) ⇝ 125/8 | note:G#5 gain:0.25522409349774444 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", - "[ 31/2 ⇜ (499/32 → 999/64) ⇝ 125/8 | note:B5 gain:0.25522409349774444 clip:1 s:piano release:0.1 pan:0.6342592592592593 ]", - "[ 31/2 ⇜ (499/32 → 999/64) ⇝ 63/4 | note:F#2 gain:0.25522409349774444 clip:1 s:piano release:0.1 pan:0.4444444444444444 ]", - "[ 435/28 ⇜ (499/32 → 999/64) ⇝ 221/14 | note:70 gain:0.025522409349774445 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", - "[ 435/28 ⇜ (499/32 → 999/64) ⇝ 221/14 | note:75 gain:0.025522409349774445 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", - "[ 435/28 ⇜ (499/32 → 999/64) ⇝ 221/14 | note:76 gain:0.025522409349774445 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", - "[ 435/28 ⇜ (499/32 → 999/64) ⇝ 221/14 | note:80 gain:0.025522409349774445 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", - "[ 31/2 ⇜ (999/64 → 125/8) | note:C#5 gain:0.3634633135269806 clip:1 s:piano release:0.1 pan:0.587962962962963 ]", - "[ 31/2 ⇜ (999/64 → 125/8) | note:G#5 gain:0.3634633135269806 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", - "[ 31/2 ⇜ (999/64 → 125/8) | note:B5 gain:0.3634633135269806 clip:1 s:piano release:0.1 pan:0.6342592592592593 ]", - "[ 31/2 ⇜ (999/64 → 125/8) ⇝ 63/4 | note:F#2 gain:0.3634633135269806 clip:1 s:piano release:0.1 pan:0.4444444444444444 ]", - "[ 435/28 ⇜ (999/64 → 125/8) ⇝ 221/14 | note:70 gain:0.03634633135269806 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", - "[ 435/28 ⇜ (999/64 → 125/8) ⇝ 221/14 | note:75 gain:0.03634633135269806 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", - "[ 435/28 ⇜ (999/64 → 125/8) ⇝ 221/14 | note:76 gain:0.03634633135269806 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", - "[ 435/28 ⇜ (999/64 → 125/8) ⇝ 221/14 | note:80 gain:0.03634633135269806 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", - "[ 31/2 ⇜ (125/8 → 1001/64) ⇝ 63/4 | note:F#2 gain:0.5165366864730107 clip:1 s:piano release:0.1 pan:0.4444444444444444 ]", - "[ 435/28 ⇜ (125/8 → 1001/64) ⇝ 221/14 | note:70 gain:0.05165366864730107 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", - "[ 435/28 ⇜ (125/8 → 1001/64) ⇝ 221/14 | note:75 gain:0.05165366864730107 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", - "[ 435/28 ⇜ (125/8 → 1001/64) ⇝ 221/14 | note:76 gain:0.05165366864730107 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", - "[ 435/28 ⇜ (125/8 → 1001/64) ⇝ 221/14 | note:80 gain:0.05165366864730107 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", - "[ 31/2 ⇜ (1001/64 → 501/32) ⇝ 63/4 | note:F#2 gain:0.624775906502252 clip:1 s:piano release:0.1 pan:0.4444444444444444 ]", - "[ 435/28 ⇜ (1001/64 → 501/32) ⇝ 221/14 | note:70 gain:0.062477590650225207 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", - "[ 435/28 ⇜ (1001/64 → 501/32) ⇝ 221/14 | note:75 gain:0.062477590650225207 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", - "[ 435/28 ⇜ (1001/64 → 501/32) ⇝ 221/14 | note:76 gain:0.062477590650225207 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", - "[ 435/28 ⇜ (1001/64 → 501/32) ⇝ 221/14 | note:80 gain:0.062477590650225207 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", - "[ 31/2 ⇜ (501/32 → 1003/64) ⇝ 63/4 | note:F#2 gain:0.6247759065022565 clip:1 s:piano release:0.1 pan:0.4444444444444444 ]", - "[ 435/28 ⇜ (501/32 → 1003/64) ⇝ 221/14 | note:70 gain:0.06247759065022565 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", - "[ 435/28 ⇜ (501/32 → 1003/64) ⇝ 221/14 | note:75 gain:0.06247759065022565 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", - "[ 435/28 ⇜ (501/32 → 1003/64) ⇝ 221/14 | note:76 gain:0.06247759065022565 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", - "[ 435/28 ⇜ (501/32 → 1003/64) ⇝ 221/14 | note:80 gain:0.06247759065022565 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", - "[ 31/2 ⇜ (1003/64 → 251/16) ⇝ 63/4 | note:F#2 gain:0.5165366864730214 clip:1 s:piano release:0.1 pan:0.4444444444444444 ]", - "[ 435/28 ⇜ (1003/64 → 251/16) ⇝ 221/14 | note:70 gain:0.05165366864730214 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", - "[ 435/28 ⇜ (1003/64 → 251/16) ⇝ 221/14 | note:75 gain:0.05165366864730214 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", - "[ 435/28 ⇜ (1003/64 → 251/16) ⇝ 221/14 | note:76 gain:0.05165366864730214 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", - "[ 435/28 ⇜ (1003/64 → 251/16) ⇝ 221/14 | note:80 gain:0.05165366864730214 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", - "[ 31/2 ⇜ (251/16 → 1005/64) ⇝ 63/4 | note:F#2 gain:0.3634633135269913 clip:1 s:piano release:0.1 pan:0.4444444444444444 ]", - "[ 435/28 ⇜ (251/16 → 1005/64) ⇝ 221/14 | note:70 gain:0.03634633135269913 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", - "[ 435/28 ⇜ (251/16 → 1005/64) ⇝ 221/14 | note:75 gain:0.03634633135269913 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", - "[ 435/28 ⇜ (251/16 → 1005/64) ⇝ 221/14 | note:76 gain:0.03634633135269913 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", - "[ 435/28 ⇜ (251/16 → 1005/64) ⇝ 221/14 | note:80 gain:0.03634633135269913 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", - "[ 31/2 ⇜ (1005/64 → 503/32) ⇝ 63/4 | note:F#2 gain:0.2552240934977489 clip:1 s:piano release:0.1 pan:0.4444444444444444 ]", - "[ 435/28 ⇜ (1005/64 → 503/32) ⇝ 221/14 | note:70 gain:0.02552240934977489 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", - "[ 435/28 ⇜ (1005/64 → 503/32) ⇝ 221/14 | note:75 gain:0.02552240934977489 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", - "[ 435/28 ⇜ (1005/64 → 503/32) ⇝ 221/14 | note:76 gain:0.02552240934977489 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", - "[ 435/28 ⇜ (1005/64 → 503/32) ⇝ 221/14 | note:80 gain:0.02552240934977489 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", - "[ 31/2 ⇜ (503/32 → 1007/64) ⇝ 63/4 | note:F#2 gain:0.2552240934977427 clip:1 s:piano release:0.1 pan:0.4444444444444444 ]", - "[ 435/28 ⇜ (503/32 → 1007/64) ⇝ 221/14 | note:70 gain:0.025522409349774275 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", - "[ 435/28 ⇜ (503/32 → 1007/64) ⇝ 221/14 | note:75 gain:0.025522409349774275 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", - "[ 435/28 ⇜ (503/32 → 1007/64) ⇝ 221/14 | note:76 gain:0.025522409349774275 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", - "[ 435/28 ⇜ (503/32 → 1007/64) ⇝ 221/14 | note:80 gain:0.025522409349774275 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", - "[ 31/2 ⇜ (1007/64 → 63/4) | note:F#2 gain:0.36346331352697664 clip:1 s:piano release:0.1 pan:0.4444444444444444 ]", - "[ 435/28 ⇜ (1007/64 → 63/4) ⇝ 221/14 | note:70 gain:0.036346331352697665 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", - "[ 435/28 ⇜ (1007/64 → 63/4) ⇝ 221/14 | note:75 gain:0.036346331352697665 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", - "[ 435/28 ⇜ (1007/64 → 63/4) ⇝ 221/14 | note:76 gain:0.036346331352697665 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", - "[ 435/28 ⇜ (1007/64 → 63/4) ⇝ 221/14 | note:80 gain:0.036346331352697665 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", - "[ 435/28 ⇜ (63/4 → 1009/64) ⇝ 221/14 | note:70 gain:0.05165366864730068 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", - "[ 435/28 ⇜ (63/4 → 1009/64) ⇝ 221/14 | note:75 gain:0.05165366864730068 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", - "[ 435/28 ⇜ (63/4 → 1009/64) ⇝ 221/14 | note:76 gain:0.05165366864730068 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", - "[ 435/28 ⇜ (63/4 → 1009/64) ⇝ 221/14 | note:80 gain:0.05165366864730068 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", - "[ (63/4 → 1009/64) ⇝ 127/8 | note:C#5 gain:0.5165366864730068 clip:1 s:piano release:0.1 pan:0.587962962962963 ]", - "[ (63/4 → 1009/64) ⇝ 127/8 | note:G#5 gain:0.5165366864730068 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", - "[ (63/4 → 1009/64) ⇝ 127/8 | note:B5 gain:0.5165366864730068 clip:1 s:piano release:0.1 pan:0.6342592592592593 ]", - "[ (63/4 → 1009/64) ⇝ 16/1 | note:Bb3 gain:0.2582683432365034 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", - "[ (63/4 → 1009/64) ⇝ 16/1 | note:Eb4 gain:0.2582683432365034 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", - "[ (63/4 → 1009/64) ⇝ 16/1 | note:E4 gain:0.2582683432365034 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", - "[ (63/4 → 1009/64) ⇝ 16/1 | note:Ab4 gain:0.2582683432365034 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", - "[ 435/28 ⇜ (1009/64 → 505/32) ⇝ 221/14 | note:70 gain:0.062477590650225914 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", - "[ 435/28 ⇜ (1009/64 → 505/32) ⇝ 221/14 | note:75 gain:0.062477590650225914 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", - "[ 435/28 ⇜ (1009/64 → 505/32) ⇝ 221/14 | note:76 gain:0.062477590650225914 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", - "[ 435/28 ⇜ (1009/64 → 505/32) ⇝ 221/14 | note:80 gain:0.062477590650225914 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", - "[ 63/4 ⇜ (1009/64 → 505/32) ⇝ 127/8 | note:C#5 gain:0.6247759065022591 clip:1 s:piano release:0.1 pan:0.587962962962963 ]", - "[ 63/4 ⇜ (1009/64 → 505/32) ⇝ 127/8 | note:G#5 gain:0.6247759065022591 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", - "[ 63/4 ⇜ (1009/64 → 505/32) ⇝ 127/8 | note:B5 gain:0.6247759065022591 clip:1 s:piano release:0.1 pan:0.6342592592592593 ]", - "[ 63/4 ⇜ (1009/64 → 505/32) ⇝ 16/1 | note:Bb3 gain:0.31238795325112956 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", - "[ 63/4 ⇜ (1009/64 → 505/32) ⇝ 16/1 | note:Eb4 gain:0.31238795325112956 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", - "[ 63/4 ⇜ (1009/64 → 505/32) ⇝ 16/1 | note:E4 gain:0.31238795325112956 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", - "[ 63/4 ⇜ (1009/64 → 505/32) ⇝ 16/1 | note:Ab4 gain:0.31238795325112956 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", - "[ 435/28 ⇜ (505/32 → 221/14) | note:70 gain:0.06247759065022582 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", - "[ 435/28 ⇜ (505/32 → 221/14) | note:75 gain:0.06247759065022582 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", - "[ 435/28 ⇜ (505/32 → 221/14) | note:76 gain:0.06247759065022582 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", - "[ 435/28 ⇜ (505/32 → 221/14) | note:80 gain:0.06247759065022582 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", - "[ 63/4 ⇜ (505/32 → 1011/64) ⇝ 127/8 | note:C#5 gain:0.6247759065022581 clip:1 s:piano release:0.1 pan:0.587962962962963 ]", - "[ 63/4 ⇜ (505/32 → 1011/64) ⇝ 127/8 | note:G#5 gain:0.6247759065022581 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", - "[ 63/4 ⇜ (505/32 → 1011/64) ⇝ 127/8 | note:B5 gain:0.6247759065022581 clip:1 s:piano release:0.1 pan:0.6342592592592593 ]", - "[ 63/4 ⇜ (505/32 → 1011/64) ⇝ 16/1 | note:Bb3 gain:0.31238795325112906 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", - "[ 63/4 ⇜ (505/32 → 1011/64) ⇝ 16/1 | note:Eb4 gain:0.31238795325112906 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", - "[ 63/4 ⇜ (505/32 → 1011/64) ⇝ 16/1 | note:E4 gain:0.31238795325112906 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", - "[ 63/4 ⇜ (505/32 → 1011/64) ⇝ 16/1 | note:Ab4 gain:0.31238795325112906 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", - "[ 63/4 ⇜ (1011/64 → 253/16) ⇝ 127/8 | note:C#5 gain:0.5165366864730254 clip:1 s:piano release:0.1 pan:0.587962962962963 ]", - "[ 63/4 ⇜ (1011/64 → 253/16) ⇝ 127/8 | note:G#5 gain:0.5165366864730254 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", - "[ 63/4 ⇜ (1011/64 → 253/16) ⇝ 127/8 | note:B5 gain:0.5165366864730254 clip:1 s:piano release:0.1 pan:0.6342592592592593 ]", - "[ 63/4 ⇜ (1011/64 → 253/16) ⇝ 16/1 | note:Bb3 gain:0.2582683432365127 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", - "[ 63/4 ⇜ (1011/64 → 253/16) ⇝ 16/1 | note:Eb4 gain:0.2582683432365127 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", - "[ 63/4 ⇜ (1011/64 → 253/16) ⇝ 16/1 | note:E4 gain:0.2582683432365127 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", - "[ 63/4 ⇜ (1011/64 → 253/16) ⇝ 16/1 | note:Ab4 gain:0.2582683432365127 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", - "[ 63/4 ⇜ (253/16 → 1013/64) ⇝ 127/8 | note:C#5 gain:0.3634633135269953 clip:1 s:piano release:0.1 pan:0.587962962962963 ]", - "[ 63/4 ⇜ (253/16 → 1013/64) ⇝ 127/8 | note:G#5 gain:0.3634633135269953 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", - "[ 63/4 ⇜ (253/16 → 1013/64) ⇝ 127/8 | note:B5 gain:0.3634633135269953 clip:1 s:piano release:0.1 pan:0.6342592592592593 ]", - "[ 63/4 ⇜ (253/16 → 1013/64) ⇝ 16/1 | note:Bb3 gain:0.18173165676349765 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", - "[ 63/4 ⇜ (253/16 → 1013/64) ⇝ 16/1 | note:Eb4 gain:0.18173165676349765 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", - "[ 63/4 ⇜ (253/16 → 1013/64) ⇝ 16/1 | note:E4 gain:0.18173165676349765 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", - "[ 63/4 ⇜ (253/16 → 1013/64) ⇝ 16/1 | note:Ab4 gain:0.18173165676349765 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", - "[ 63/4 ⇜ (1013/64 → 507/32) ⇝ 127/8 | note:C#5 gain:0.2552240934977418 clip:1 s:piano release:0.1 pan:0.587962962962963 ]", - "[ 63/4 ⇜ (1013/64 → 507/32) ⇝ 127/8 | note:G#5 gain:0.2552240934977418 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", - "[ 63/4 ⇜ (1013/64 → 507/32) ⇝ 127/8 | note:B5 gain:0.2552240934977418 clip:1 s:piano release:0.1 pan:0.6342592592592593 ]", - "[ 63/4 ⇜ (1013/64 → 507/32) ⇝ 16/1 | note:Bb3 gain:0.1276120467488709 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", - "[ 63/4 ⇜ (1013/64 → 507/32) ⇝ 16/1 | note:Eb4 gain:0.1276120467488709 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", - "[ 63/4 ⇜ (1013/64 → 507/32) ⇝ 16/1 | note:E4 gain:0.1276120467488709 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", - "[ 63/4 ⇜ (1013/64 → 507/32) ⇝ 16/1 | note:Ab4 gain:0.1276120467488709 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", - "[ 63/4 ⇜ (507/32 → 1015/64) ⇝ 127/8 | note:C#5 gain:0.25522409349774117 clip:1 s:piano release:0.1 pan:0.587962962962963 ]", - "[ 63/4 ⇜ (507/32 → 1015/64) ⇝ 127/8 | note:G#5 gain:0.25522409349774117 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", - "[ 63/4 ⇜ (507/32 → 1015/64) ⇝ 127/8 | note:B5 gain:0.25522409349774117 clip:1 s:piano release:0.1 pan:0.6342592592592593 ]", - "[ 63/4 ⇜ (507/32 → 1015/64) ⇝ 16/1 | note:Bb3 gain:0.12761204674887058 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", - "[ 63/4 ⇜ (507/32 → 1015/64) ⇝ 16/1 | note:Eb4 gain:0.12761204674887058 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", - "[ 63/4 ⇜ (507/32 → 1015/64) ⇝ 16/1 | note:E4 gain:0.12761204674887058 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", - "[ 63/4 ⇜ (507/32 → 1015/64) ⇝ 16/1 | note:Ab4 gain:0.12761204674887058 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", - "[ 63/4 ⇜ (1015/64 → 127/8) | note:C#5 gain:0.36346331352697264 clip:1 s:piano release:0.1 pan:0.587962962962963 ]", - "[ 63/4 ⇜ (1015/64 → 127/8) | note:G#5 gain:0.36346331352697264 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", - "[ 63/4 ⇜ (1015/64 → 127/8) | note:B5 gain:0.36346331352697264 clip:1 s:piano release:0.1 pan:0.6342592592592593 ]", - "[ 63/4 ⇜ (1015/64 → 127/8) ⇝ 16/1 | note:Bb3 gain:0.18173165676348632 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", - "[ 63/4 ⇜ (1015/64 → 127/8) ⇝ 16/1 | note:Eb4 gain:0.18173165676348632 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", - "[ 63/4 ⇜ (1015/64 → 127/8) ⇝ 16/1 | note:E4 gain:0.18173165676348632 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", - "[ 63/4 ⇜ (1015/64 → 127/8) ⇝ 16/1 | note:Ab4 gain:0.18173165676348632 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", - "[ 63/4 ⇜ (127/8 → 1017/64) ⇝ 16/1 | note:Bb3 gain:0.2582683432365014 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", - "[ 63/4 ⇜ (127/8 → 1017/64) ⇝ 16/1 | note:Eb4 gain:0.2582683432365014 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", - "[ 63/4 ⇜ (127/8 → 1017/64) ⇝ 16/1 | note:E4 gain:0.2582683432365014 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", - "[ 63/4 ⇜ (127/8 → 1017/64) ⇝ 16/1 | note:Ab4 gain:0.2582683432365014 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", - "[ 63/4 ⇜ (1017/64 → 509/32) ⇝ 16/1 | note:Bb3 gain:0.3123879532511287 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", - "[ 63/4 ⇜ (1017/64 → 509/32) ⇝ 16/1 | note:Eb4 gain:0.3123879532511287 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", - "[ 63/4 ⇜ (1017/64 → 509/32) ⇝ 16/1 | note:E4 gain:0.3123879532511287 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", - "[ 63/4 ⇜ (1017/64 → 509/32) ⇝ 16/1 | note:Ab4 gain:0.3123879532511287 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", - "[ 63/4 ⇜ (509/32 → 1019/64) ⇝ 16/1 | note:Bb3 gain:0.3123879532511299 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", - "[ 63/4 ⇜ (509/32 → 1019/64) ⇝ 16/1 | note:Eb4 gain:0.3123879532511299 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", - "[ 63/4 ⇜ (509/32 → 1019/64) ⇝ 16/1 | note:E4 gain:0.3123879532511299 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", - "[ 63/4 ⇜ (509/32 → 1019/64) ⇝ 16/1 | note:Ab4 gain:0.3123879532511299 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", - "[ 63/4 ⇜ (1019/64 → 255/16) ⇝ 16/1 | note:Bb3 gain:0.25826834323651465 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", - "[ 63/4 ⇜ (1019/64 → 255/16) ⇝ 16/1 | note:Eb4 gain:0.25826834323651465 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", - "[ 63/4 ⇜ (1019/64 → 255/16) ⇝ 16/1 | note:E4 gain:0.25826834323651465 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", - "[ 63/4 ⇜ (1019/64 → 255/16) ⇝ 16/1 | note:Ab4 gain:0.25826834323651465 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", - "[ 63/4 ⇜ (255/16 → 1021/64) ⇝ 16/1 | note:Bb3 gain:0.18173165676348912 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", - "[ 63/4 ⇜ (255/16 → 1021/64) ⇝ 16/1 | note:Eb4 gain:0.18173165676348912 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", - "[ 63/4 ⇜ (255/16 → 1021/64) ⇝ 16/1 | note:E4 gain:0.18173165676348912 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", - "[ 63/4 ⇜ (255/16 → 1021/64) ⇝ 16/1 | note:Ab4 gain:0.18173165676348912 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", - "[ 63/4 ⇜ (1021/64 → 511/32) ⇝ 16/1 | note:Bb3 gain:0.12761204674887172 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", - "[ 63/4 ⇜ (1021/64 → 511/32) ⇝ 16/1 | note:Eb4 gain:0.12761204674887172 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", - "[ 63/4 ⇜ (1021/64 → 511/32) ⇝ 16/1 | note:E4 gain:0.12761204674887172 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", - "[ 63/4 ⇜ (1021/64 → 511/32) ⇝ 16/1 | note:Ab4 gain:0.12761204674887172 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", - "[ 63/4 ⇜ (511/32 → 1023/64) ⇝ 16/1 | note:Bb3 gain:0.12761204674886972 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", - "[ 63/4 ⇜ (511/32 → 1023/64) ⇝ 16/1 | note:Eb4 gain:0.12761204674886972 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", - "[ 63/4 ⇜ (511/32 → 1023/64) ⇝ 16/1 | note:E4 gain:0.12761204674886972 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", - "[ 63/4 ⇜ (511/32 → 1023/64) ⇝ 16/1 | note:Ab4 gain:0.12761204674886972 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", - "[ 63/4 ⇜ (1023/64 → 16/1) | note:Bb3 gain:0.18173165676348432 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", - "[ 63/4 ⇜ (1023/64 → 16/1) | note:Eb4 gain:0.18173165676348432 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", - "[ 63/4 ⇜ (1023/64 → 16/1) | note:E4 gain:0.18173165676348432 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", - "[ 63/4 ⇜ (1023/64 → 16/1) | note:Ab4 gain:0.18173165676348432 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", + "[ (0/1 → 1/64) ⇝ 1/4 | note:C2 gain:0.44000000000000006 clip:1 s:piano release:0.1 pan:0.41666666666666663 ]", + "[ 0/1 ⇜ (1/64 → 1/32) ⇝ 1/4 | note:C2 gain:0.5814213562373095 clip:1 s:piano release:0.1 pan:0.41666666666666663 ]", + "[ 0/1 ⇜ (1/32 → 3/64) ⇝ 1/4 | note:C2 gain:0.6400000000000001 clip:1 s:piano release:0.1 pan:0.41666666666666663 ]", + "[ (1/28 → 3/64) ⇝ 2/7 | note:70 gain:0.06400000000000002 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", + "[ (1/28 → 3/64) ⇝ 2/7 | note:75 gain:0.06400000000000002 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", + "[ (1/28 → 3/64) ⇝ 2/7 | note:76 gain:0.06400000000000002 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", + "[ (1/28 → 3/64) ⇝ 2/7 | note:80 gain:0.06400000000000002 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", + "[ 0/1 ⇜ (3/64 → 1/16) ⇝ 1/4 | note:C2 gain:0.5814213562373095 clip:1 s:piano release:0.1 pan:0.41666666666666663 ]", + "[ 1/28 ⇜ (3/64 → 1/16) ⇝ 2/7 | note:70 gain:0.05814213562373095 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", + "[ 1/28 ⇜ (3/64 → 1/16) ⇝ 2/7 | note:75 gain:0.05814213562373095 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", + "[ 1/28 ⇜ (3/64 → 1/16) ⇝ 2/7 | note:76 gain:0.05814213562373095 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", + "[ 1/28 ⇜ (3/64 → 1/16) ⇝ 2/7 | note:80 gain:0.05814213562373095 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", + "[ 0/1 ⇜ (1/16 → 5/64) ⇝ 1/4 | note:C2 gain:0.44000000000000006 clip:1 s:piano release:0.1 pan:0.41666666666666663 ]", + "[ 1/28 ⇜ (1/16 → 5/64) ⇝ 2/7 | note:70 gain:0.04400000000000001 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", + "[ 1/28 ⇜ (1/16 → 5/64) ⇝ 2/7 | note:75 gain:0.04400000000000001 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", + "[ 1/28 ⇜ (1/16 → 5/64) ⇝ 2/7 | note:76 gain:0.04400000000000001 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", + "[ 1/28 ⇜ (1/16 → 5/64) ⇝ 2/7 | note:80 gain:0.04400000000000001 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", + "[ 0/1 ⇜ (5/64 → 3/32) ⇝ 1/4 | note:C2 gain:0.2985786437626905 clip:1 s:piano release:0.1 pan:0.41666666666666663 ]", + "[ 1/28 ⇜ (5/64 → 3/32) ⇝ 2/7 | note:70 gain:0.029857864376269052 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", + "[ 1/28 ⇜ (5/64 → 3/32) ⇝ 2/7 | note:75 gain:0.029857864376269052 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", + "[ 1/28 ⇜ (5/64 → 3/32) ⇝ 2/7 | note:76 gain:0.029857864376269052 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", + "[ 1/28 ⇜ (5/64 → 3/32) ⇝ 2/7 | note:80 gain:0.029857864376269052 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", + "[ 0/1 ⇜ (3/32 → 7/64) ⇝ 1/4 | note:C2 gain:0.24 clip:1 s:piano release:0.1 pan:0.41666666666666663 ]", + "[ 1/28 ⇜ (3/32 → 7/64) ⇝ 2/7 | note:70 gain:0.024 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", + "[ 1/28 ⇜ (3/32 → 7/64) ⇝ 2/7 | note:75 gain:0.024 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", + "[ 1/28 ⇜ (3/32 → 7/64) ⇝ 2/7 | note:76 gain:0.024 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", + "[ 1/28 ⇜ (3/32 → 7/64) ⇝ 2/7 | note:80 gain:0.024 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", + "[ 0/1 ⇜ (7/64 → 1/8) ⇝ 1/4 | note:C2 gain:0.29857864376269044 clip:1 s:piano release:0.1 pan:0.41666666666666663 ]", + "[ 1/28 ⇜ (7/64 → 1/8) ⇝ 2/7 | note:70 gain:0.029857864376269045 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", + "[ 1/28 ⇜ (7/64 → 1/8) ⇝ 2/7 | note:75 gain:0.029857864376269045 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", + "[ 1/28 ⇜ (7/64 → 1/8) ⇝ 2/7 | note:76 gain:0.029857864376269045 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", + "[ 1/28 ⇜ (7/64 → 1/8) ⇝ 2/7 | note:80 gain:0.029857864376269045 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", + "[ 0/1 ⇜ (1/8 → 9/64) ⇝ 1/4 | note:C2 gain:0.43999999999999995 clip:1 s:piano release:0.1 pan:0.41666666666666663 ]", + "[ 1/28 ⇜ (1/8 → 9/64) ⇝ 2/7 | note:70 gain:0.044 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", + "[ 1/28 ⇜ (1/8 → 9/64) ⇝ 2/7 | note:75 gain:0.044 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", + "[ 1/28 ⇜ (1/8 → 9/64) ⇝ 2/7 | note:76 gain:0.044 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", + "[ 1/28 ⇜ (1/8 → 9/64) ⇝ 2/7 | note:80 gain:0.044 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", + "[ (1/8 → 9/64) ⇝ 1/4 | note:C4 gain:0.43999999999999995 clip:1 s:piano release:0.1 pan:0.5277777777777778 ]", + "[ (1/8 → 9/64) ⇝ 1/4 | note:Eb4 gain:0.43999999999999995 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", + "[ 0/1 ⇜ (9/64 → 5/32) ⇝ 1/4 | note:C2 gain:0.5814213562373095 clip:1 s:piano release:0.1 pan:0.41666666666666663 ]", + "[ 1/28 ⇜ (9/64 → 5/32) ⇝ 2/7 | note:70 gain:0.05814213562373095 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", + "[ 1/28 ⇜ (9/64 → 5/32) ⇝ 2/7 | note:75 gain:0.05814213562373095 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", + "[ 1/28 ⇜ (9/64 → 5/32) ⇝ 2/7 | note:76 gain:0.05814213562373095 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", + "[ 1/28 ⇜ (9/64 → 5/32) ⇝ 2/7 | note:80 gain:0.05814213562373095 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", + "[ 1/8 ⇜ (9/64 → 5/32) ⇝ 1/4 | note:C4 gain:0.5814213562373095 clip:1 s:piano release:0.1 pan:0.5277777777777778 ]", + "[ 1/8 ⇜ (9/64 → 5/32) ⇝ 1/4 | note:Eb4 gain:0.5814213562373095 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", + "[ 0/1 ⇜ (5/32 → 11/64) ⇝ 1/4 | note:C2 gain:0.6400000000000001 clip:1 s:piano release:0.1 pan:0.41666666666666663 ]", + "[ 1/28 ⇜ (5/32 → 11/64) ⇝ 2/7 | note:70 gain:0.06400000000000002 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", + "[ 1/28 ⇜ (5/32 → 11/64) ⇝ 2/7 | note:75 gain:0.06400000000000002 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", + "[ 1/28 ⇜ (5/32 → 11/64) ⇝ 2/7 | note:76 gain:0.06400000000000002 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", + "[ 1/28 ⇜ (5/32 → 11/64) ⇝ 2/7 | note:80 gain:0.06400000000000002 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", + "[ 1/8 ⇜ (5/32 → 11/64) ⇝ 1/4 | note:C4 gain:0.6400000000000001 clip:1 s:piano release:0.1 pan:0.5277777777777778 ]", + "[ 1/8 ⇜ (5/32 → 11/64) ⇝ 1/4 | note:Eb4 gain:0.6400000000000001 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", + "[ 0/1 ⇜ (11/64 → 3/16) ⇝ 1/4 | note:C2 gain:0.5814213562373096 clip:1 s:piano release:0.1 pan:0.41666666666666663 ]", + "[ 1/28 ⇜ (11/64 → 3/16) ⇝ 2/7 | note:70 gain:0.05814213562373097 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", + "[ 1/28 ⇜ (11/64 → 3/16) ⇝ 2/7 | note:75 gain:0.05814213562373097 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", + "[ 1/28 ⇜ (11/64 → 3/16) ⇝ 2/7 | note:76 gain:0.05814213562373097 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", + "[ 1/28 ⇜ (11/64 → 3/16) ⇝ 2/7 | note:80 gain:0.05814213562373097 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", + "[ 1/8 ⇜ (11/64 → 3/16) ⇝ 1/4 | note:C4 gain:0.5814213562373096 clip:1 s:piano release:0.1 pan:0.5277777777777778 ]", + "[ 1/8 ⇜ (11/64 → 3/16) ⇝ 1/4 | note:Eb4 gain:0.5814213562373096 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", + "[ 0/1 ⇜ (3/16 → 13/64) ⇝ 1/4 | note:C2 gain:0.44000000000000006 clip:1 s:piano release:0.1 pan:0.41666666666666663 ]", + "[ 1/28 ⇜ (3/16 → 13/64) ⇝ 2/7 | note:70 gain:0.04400000000000001 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", + "[ 1/28 ⇜ (3/16 → 13/64) ⇝ 2/7 | note:75 gain:0.04400000000000001 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", + "[ 1/28 ⇜ (3/16 → 13/64) ⇝ 2/7 | note:76 gain:0.04400000000000001 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", + "[ 1/28 ⇜ (3/16 → 13/64) ⇝ 2/7 | note:80 gain:0.04400000000000001 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", + "[ 1/8 ⇜ (3/16 → 13/64) ⇝ 1/4 | note:C4 gain:0.44000000000000006 clip:1 s:piano release:0.1 pan:0.5277777777777778 ]", + "[ 1/8 ⇜ (3/16 → 13/64) ⇝ 1/4 | note:Eb4 gain:0.44000000000000006 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", + "[ 0/1 ⇜ (13/64 → 7/32) ⇝ 1/4 | note:C2 gain:0.29857864376269044 clip:1 s:piano release:0.1 pan:0.41666666666666663 ]", + "[ 1/28 ⇜ (13/64 → 7/32) ⇝ 2/7 | note:70 gain:0.029857864376269045 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", + "[ 1/28 ⇜ (13/64 → 7/32) ⇝ 2/7 | note:75 gain:0.029857864376269045 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", + "[ 1/28 ⇜ (13/64 → 7/32) ⇝ 2/7 | note:76 gain:0.029857864376269045 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", + "[ 1/28 ⇜ (13/64 → 7/32) ⇝ 2/7 | note:80 gain:0.029857864376269045 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", + "[ 1/8 ⇜ (13/64 → 7/32) ⇝ 1/4 | note:C4 gain:0.29857864376269044 clip:1 s:piano release:0.1 pan:0.5277777777777778 ]", + "[ 1/8 ⇜ (13/64 → 7/32) ⇝ 1/4 | note:Eb4 gain:0.29857864376269044 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", + "[ 0/1 ⇜ (7/32 → 15/64) ⇝ 1/4 | note:C2 gain:0.24 clip:1 s:piano release:0.1 pan:0.41666666666666663 ]", + "[ 1/28 ⇜ (7/32 → 15/64) ⇝ 2/7 | note:70 gain:0.024 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", + "[ 1/28 ⇜ (7/32 → 15/64) ⇝ 2/7 | note:75 gain:0.024 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", + "[ 1/28 ⇜ (7/32 → 15/64) ⇝ 2/7 | note:76 gain:0.024 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", + "[ 1/28 ⇜ (7/32 → 15/64) ⇝ 2/7 | note:80 gain:0.024 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", + "[ 1/8 ⇜ (7/32 → 15/64) ⇝ 1/4 | note:C4 gain:0.24 clip:1 s:piano release:0.1 pan:0.5277777777777778 ]", + "[ 1/8 ⇜ (7/32 → 15/64) ⇝ 1/4 | note:Eb4 gain:0.24 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", + "[ 0/1 ⇜ (15/64 → 1/4) | note:C2 gain:0.2985786437626903 clip:1 s:piano release:0.1 pan:0.41666666666666663 ]", + "[ 1/28 ⇜ (15/64 → 1/4) ⇝ 2/7 | note:70 gain:0.029857864376269028 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", + "[ 1/28 ⇜ (15/64 → 1/4) ⇝ 2/7 | note:75 gain:0.029857864376269028 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", + "[ 1/28 ⇜ (15/64 → 1/4) ⇝ 2/7 | note:76 gain:0.029857864376269028 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", + "[ 1/28 ⇜ (15/64 → 1/4) ⇝ 2/7 | note:80 gain:0.029857864376269028 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", + "[ 1/8 ⇜ (15/64 → 1/4) | note:C4 gain:0.2985786437626903 clip:1 s:piano release:0.1 pan:0.5277777777777778 ]", + "[ 1/8 ⇜ (15/64 → 1/4) | note:Eb4 gain:0.2985786437626903 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", + "[ 1/28 ⇜ (1/4 → 17/64) ⇝ 2/7 | note:70 gain:0.04399999999999999 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", + "[ 1/28 ⇜ (1/4 → 17/64) ⇝ 2/7 | note:75 gain:0.04399999999999999 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", + "[ 1/28 ⇜ (1/4 → 17/64) ⇝ 2/7 | note:76 gain:0.04399999999999999 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", + "[ 1/28 ⇜ (1/4 → 17/64) ⇝ 2/7 | note:80 gain:0.04399999999999999 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", + "[ 1/28 ⇜ (17/64 → 9/32) ⇝ 2/7 | note:70 gain:0.05814213562373097 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", + "[ 1/28 ⇜ (17/64 → 9/32) ⇝ 2/7 | note:75 gain:0.05814213562373097 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", + "[ 1/28 ⇜ (17/64 → 9/32) ⇝ 2/7 | note:76 gain:0.05814213562373097 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", + "[ 1/28 ⇜ (17/64 → 9/32) ⇝ 2/7 | note:80 gain:0.05814213562373097 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", + "[ 1/28 ⇜ (9/32 → 2/7) | note:70 gain:0.06400000000000002 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", + "[ 1/28 ⇜ (9/32 → 2/7) | note:75 gain:0.06400000000000002 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", + "[ 1/28 ⇜ (9/32 → 2/7) | note:76 gain:0.06400000000000002 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", + "[ 1/28 ⇜ (9/32 → 2/7) | note:80 gain:0.06400000000000002 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", + "[ (1/2 → 33/64) ⇝ 5/8 | note:G4 gain:0.4399999999999998 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", + "[ (1/2 → 33/64) ⇝ 5/8 | note:Bb4 gain:0.4399999999999998 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", + "[ (1/2 → 33/64) ⇝ 3/4 | note:Bb3 gain:0.2199999999999999 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", + "[ (1/2 → 33/64) ⇝ 3/4 | note:D4 gain:0.2199999999999999 clip:1 s:piano release:0.1 pan:0.537037037037037 ]", + "[ (1/2 → 33/64) ⇝ 3/4 | note:Eb4 gain:0.2199999999999999 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", + "[ (1/2 → 33/64) ⇝ 3/4 | note:G4 gain:0.2199999999999999 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", + "[ (1/2 → 33/64) ⇝ 3/4 | note:C2 gain:0.4399999999999998 clip:1 s:piano release:0.1 pan:0.41666666666666663 ]", + "[ 1/2 ⇜ (33/64 → 17/32) ⇝ 5/8 | note:G4 gain:0.5814213562373095 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", + "[ 1/2 ⇜ (33/64 → 17/32) ⇝ 5/8 | note:Bb4 gain:0.5814213562373095 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", + "[ 1/2 ⇜ (33/64 → 17/32) ⇝ 3/4 | note:Bb3 gain:0.29071067811865475 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", + "[ 1/2 ⇜ (33/64 → 17/32) ⇝ 3/4 | note:D4 gain:0.29071067811865475 clip:1 s:piano release:0.1 pan:0.537037037037037 ]", + "[ 1/2 ⇜ (33/64 → 17/32) ⇝ 3/4 | note:Eb4 gain:0.29071067811865475 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", + "[ 1/2 ⇜ (33/64 → 17/32) ⇝ 3/4 | note:G4 gain:0.29071067811865475 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", + "[ 1/2 ⇜ (33/64 → 17/32) ⇝ 3/4 | note:C2 gain:0.5814213562373095 clip:1 s:piano release:0.1 pan:0.41666666666666663 ]", + "[ 1/2 ⇜ (17/32 → 35/64) ⇝ 5/8 | note:G4 gain:0.6400000000000001 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", + "[ 1/2 ⇜ (17/32 → 35/64) ⇝ 5/8 | note:Bb4 gain:0.6400000000000001 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", + "[ 1/2 ⇜ (17/32 → 35/64) ⇝ 3/4 | note:Bb3 gain:0.32000000000000006 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", + "[ 1/2 ⇜ (17/32 → 35/64) ⇝ 3/4 | note:D4 gain:0.32000000000000006 clip:1 s:piano release:0.1 pan:0.537037037037037 ]", + "[ 1/2 ⇜ (17/32 → 35/64) ⇝ 3/4 | note:Eb4 gain:0.32000000000000006 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", + "[ 1/2 ⇜ (17/32 → 35/64) ⇝ 3/4 | note:G4 gain:0.32000000000000006 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", + "[ 1/2 ⇜ (17/32 → 35/64) ⇝ 3/4 | note:C2 gain:0.6400000000000001 clip:1 s:piano release:0.1 pan:0.41666666666666663 ]", + "[ 1/2 ⇜ (35/64 → 9/16) ⇝ 5/8 | note:G4 gain:0.5814213562373098 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", + "[ 1/2 ⇜ (35/64 → 9/16) ⇝ 5/8 | note:Bb4 gain:0.5814213562373098 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", + "[ 1/2 ⇜ (35/64 → 9/16) ⇝ 3/4 | note:Bb3 gain:0.2907106781186549 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", + "[ 1/2 ⇜ (35/64 → 9/16) ⇝ 3/4 | note:D4 gain:0.2907106781186549 clip:1 s:piano release:0.1 pan:0.537037037037037 ]", + "[ 1/2 ⇜ (35/64 → 9/16) ⇝ 3/4 | note:Eb4 gain:0.2907106781186549 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", + "[ 1/2 ⇜ (35/64 → 9/16) ⇝ 3/4 | note:G4 gain:0.2907106781186549 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", + "[ 1/2 ⇜ (35/64 → 9/16) ⇝ 3/4 | note:C2 gain:0.5814213562373098 clip:1 s:piano release:0.1 pan:0.41666666666666663 ]", + "[ 1/2 ⇜ (9/16 → 37/64) ⇝ 5/8 | note:G4 gain:0.4400000000000002 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", + "[ 1/2 ⇜ (9/16 → 37/64) ⇝ 5/8 | note:Bb4 gain:0.4400000000000002 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", + "[ 1/2 ⇜ (9/16 → 37/64) ⇝ 3/4 | note:Bb3 gain:0.2200000000000001 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", + "[ 1/2 ⇜ (9/16 → 37/64) ⇝ 3/4 | note:D4 gain:0.2200000000000001 clip:1 s:piano release:0.1 pan:0.537037037037037 ]", + "[ 1/2 ⇜ (9/16 → 37/64) ⇝ 3/4 | note:Eb4 gain:0.2200000000000001 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", + "[ 1/2 ⇜ (9/16 → 37/64) ⇝ 3/4 | note:G4 gain:0.2200000000000001 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", + "[ 1/2 ⇜ (9/16 → 37/64) ⇝ 3/4 | note:C2 gain:0.4400000000000002 clip:1 s:piano release:0.1 pan:0.41666666666666663 ]", + "[ 1/2 ⇜ (37/64 → 19/32) ⇝ 5/8 | note:G4 gain:0.29857864376269055 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", + "[ 1/2 ⇜ (37/64 → 19/32) ⇝ 5/8 | note:Bb4 gain:0.29857864376269055 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", + "[ 1/2 ⇜ (37/64 → 19/32) ⇝ 3/4 | note:Bb3 gain:0.14928932188134528 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", + "[ 1/2 ⇜ (37/64 → 19/32) ⇝ 3/4 | note:D4 gain:0.14928932188134528 clip:1 s:piano release:0.1 pan:0.537037037037037 ]", + "[ 1/2 ⇜ (37/64 → 19/32) ⇝ 3/4 | note:Eb4 gain:0.14928932188134528 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", + "[ 1/2 ⇜ (37/64 → 19/32) ⇝ 3/4 | note:G4 gain:0.14928932188134528 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", + "[ 1/2 ⇜ (37/64 → 19/32) ⇝ 3/4 | note:C2 gain:0.29857864376269055 clip:1 s:piano release:0.1 pan:0.41666666666666663 ]", + "[ 1/2 ⇜ (19/32 → 39/64) ⇝ 5/8 | note:G4 gain:0.24 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", + "[ 1/2 ⇜ (19/32 → 39/64) ⇝ 5/8 | note:Bb4 gain:0.24 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", + "[ 1/2 ⇜ (19/32 → 39/64) ⇝ 3/4 | note:Bb3 gain:0.12 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", + "[ 1/2 ⇜ (19/32 → 39/64) ⇝ 3/4 | note:D4 gain:0.12 clip:1 s:piano release:0.1 pan:0.537037037037037 ]", + "[ 1/2 ⇜ (19/32 → 39/64) ⇝ 3/4 | note:Eb4 gain:0.12 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", + "[ 1/2 ⇜ (19/32 → 39/64) ⇝ 3/4 | note:G4 gain:0.12 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", + "[ 1/2 ⇜ (19/32 → 39/64) ⇝ 3/4 | note:C2 gain:0.24 clip:1 s:piano release:0.1 pan:0.41666666666666663 ]", + "[ 1/2 ⇜ (39/64 → 5/8) | note:G4 gain:0.2985786437626902 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", + "[ 1/2 ⇜ (39/64 → 5/8) | note:Bb4 gain:0.2985786437626902 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", + "[ 1/2 ⇜ (39/64 → 5/8) ⇝ 3/4 | note:Bb3 gain:0.1492893218813451 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", + "[ 1/2 ⇜ (39/64 → 5/8) ⇝ 3/4 | note:D4 gain:0.1492893218813451 clip:1 s:piano release:0.1 pan:0.537037037037037 ]", + "[ 1/2 ⇜ (39/64 → 5/8) ⇝ 3/4 | note:Eb4 gain:0.1492893218813451 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", + "[ 1/2 ⇜ (39/64 → 5/8) ⇝ 3/4 | note:G4 gain:0.1492893218813451 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", + "[ 1/2 ⇜ (39/64 → 5/8) ⇝ 3/4 | note:C2 gain:0.2985786437626902 clip:1 s:piano release:0.1 pan:0.41666666666666663 ]", + "[ 1/2 ⇜ (5/8 → 41/64) ⇝ 3/4 | note:Bb3 gain:0.2199999999999999 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", + "[ 1/2 ⇜ (5/8 → 41/64) ⇝ 3/4 | note:D4 gain:0.2199999999999999 clip:1 s:piano release:0.1 pan:0.537037037037037 ]", + "[ 1/2 ⇜ (5/8 → 41/64) ⇝ 3/4 | note:Eb4 gain:0.2199999999999999 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", + "[ 1/2 ⇜ (5/8 → 41/64) ⇝ 3/4 | note:G4 gain:0.2199999999999999 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", + "[ 1/2 ⇜ (5/8 → 41/64) ⇝ 3/4 | note:C2 gain:0.4399999999999998 clip:1 s:piano release:0.1 pan:0.41666666666666663 ]", + "[ 1/2 ⇜ (41/64 → 21/32) ⇝ 3/4 | note:Bb3 gain:0.2907106781186545 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", + "[ 1/2 ⇜ (41/64 → 21/32) ⇝ 3/4 | note:D4 gain:0.2907106781186545 clip:1 s:piano release:0.1 pan:0.537037037037037 ]", + "[ 1/2 ⇜ (41/64 → 21/32) ⇝ 3/4 | note:Eb4 gain:0.2907106781186545 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", + "[ 1/2 ⇜ (41/64 → 21/32) ⇝ 3/4 | note:G4 gain:0.2907106781186545 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", + "[ 1/2 ⇜ (41/64 → 21/32) ⇝ 3/4 | note:C2 gain:0.581421356237309 clip:1 s:piano release:0.1 pan:0.41666666666666663 ]", + "[ 1/2 ⇜ (21/32 → 43/64) ⇝ 3/4 | note:Bb3 gain:0.32000000000000006 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", + "[ 1/2 ⇜ (21/32 → 43/64) ⇝ 3/4 | note:D4 gain:0.32000000000000006 clip:1 s:piano release:0.1 pan:0.537037037037037 ]", + "[ 1/2 ⇜ (21/32 → 43/64) ⇝ 3/4 | note:Eb4 gain:0.32000000000000006 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", + "[ 1/2 ⇜ (21/32 → 43/64) ⇝ 3/4 | note:G4 gain:0.32000000000000006 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", + "[ 1/2 ⇜ (21/32 → 43/64) ⇝ 3/4 | note:C2 gain:0.6400000000000001 clip:1 s:piano release:0.1 pan:0.41666666666666663 ]", + "[ 1/2 ⇜ (43/64 → 11/16) ⇝ 3/4 | note:Bb3 gain:0.2907106781186549 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", + "[ 1/2 ⇜ (43/64 → 11/16) ⇝ 3/4 | note:D4 gain:0.2907106781186549 clip:1 s:piano release:0.1 pan:0.537037037037037 ]", + "[ 1/2 ⇜ (43/64 → 11/16) ⇝ 3/4 | note:Eb4 gain:0.2907106781186549 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", + "[ 1/2 ⇜ (43/64 → 11/16) ⇝ 3/4 | note:G4 gain:0.2907106781186549 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", + "[ 1/2 ⇜ (43/64 → 11/16) ⇝ 3/4 | note:C2 gain:0.5814213562373098 clip:1 s:piano release:0.1 pan:0.41666666666666663 ]", + "[ 1/2 ⇜ (11/16 → 45/64) ⇝ 3/4 | note:Bb3 gain:0.22000000000000047 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", + "[ 1/2 ⇜ (11/16 → 45/64) ⇝ 3/4 | note:D4 gain:0.22000000000000047 clip:1 s:piano release:0.1 pan:0.537037037037037 ]", + "[ 1/2 ⇜ (11/16 → 45/64) ⇝ 3/4 | note:Eb4 gain:0.22000000000000047 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", + "[ 1/2 ⇜ (11/16 → 45/64) ⇝ 3/4 | note:G4 gain:0.22000000000000047 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", + "[ 1/2 ⇜ (11/16 → 45/64) ⇝ 3/4 | note:C2 gain:0.44000000000000095 clip:1 s:piano release:0.1 pan:0.41666666666666663 ]", + "[ 1/2 ⇜ (45/64 → 23/32) ⇝ 3/4 | note:Bb3 gain:0.14928932188134528 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", + "[ 1/2 ⇜ (45/64 → 23/32) ⇝ 3/4 | note:D4 gain:0.14928932188134528 clip:1 s:piano release:0.1 pan:0.537037037037037 ]", + "[ 1/2 ⇜ (45/64 → 23/32) ⇝ 3/4 | note:Eb4 gain:0.14928932188134528 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", + "[ 1/2 ⇜ (45/64 → 23/32) ⇝ 3/4 | note:G4 gain:0.14928932188134528 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", + "[ 1/2 ⇜ (45/64 → 23/32) ⇝ 3/4 | note:C2 gain:0.29857864376269055 clip:1 s:piano release:0.1 pan:0.41666666666666663 ]", + "[ 1/2 ⇜ (23/32 → 47/64) ⇝ 3/4 | note:Bb3 gain:0.12 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", + "[ 1/2 ⇜ (23/32 → 47/64) ⇝ 3/4 | note:D4 gain:0.12 clip:1 s:piano release:0.1 pan:0.537037037037037 ]", + "[ 1/2 ⇜ (23/32 → 47/64) ⇝ 3/4 | note:Eb4 gain:0.12 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", + "[ 1/2 ⇜ (23/32 → 47/64) ⇝ 3/4 | note:G4 gain:0.12 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", + "[ 1/2 ⇜ (23/32 → 47/64) ⇝ 3/4 | note:C2 gain:0.24 clip:1 s:piano release:0.1 pan:0.41666666666666663 ]", + "[ 1/2 ⇜ (47/64 → 3/4) | note:Bb3 gain:0.14928932188134533 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", + "[ 1/2 ⇜ (47/64 → 3/4) | note:D4 gain:0.14928932188134533 clip:1 s:piano release:0.1 pan:0.537037037037037 ]", + "[ 1/2 ⇜ (47/64 → 3/4) | note:Eb4 gain:0.14928932188134533 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", + "[ 1/2 ⇜ (47/64 → 3/4) | note:G4 gain:0.14928932188134533 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", + "[ 1/2 ⇜ (47/64 → 3/4) | note:C2 gain:0.29857864376269067 clip:1 s:piano release:0.1 pan:0.41666666666666663 ]", + "[ (3/4 → 49/64) ⇝ 7/8 | note:C4 gain:0.4399999999999997 clip:1 s:piano release:0.1 pan:0.5277777777777778 ]", + "[ (3/4 → 49/64) ⇝ 7/8 | note:Eb4 gain:0.4399999999999997 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", + "[ 3/4 ⇜ (49/64 → 25/32) ⇝ 7/8 | note:C4 gain:0.581421356237309 clip:1 s:piano release:0.1 pan:0.5277777777777778 ]", + "[ 3/4 ⇜ (49/64 → 25/32) ⇝ 7/8 | note:Eb4 gain:0.581421356237309 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", + "[ 3/4 ⇜ (25/32 → 51/64) ⇝ 7/8 | note:C4 gain:0.6400000000000001 clip:1 s:piano release:0.1 pan:0.5277777777777778 ]", + "[ 3/4 ⇜ (25/32 → 51/64) ⇝ 7/8 | note:Eb4 gain:0.6400000000000001 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", + "[ (11/14 → 51/64) ⇝ 29/28 | note:70 gain:0.06400000000000002 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", + "[ (11/14 → 51/64) ⇝ 29/28 | note:74 gain:0.06400000000000002 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", + "[ (11/14 → 51/64) ⇝ 29/28 | note:75 gain:0.06400000000000002 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", + "[ (11/14 → 51/64) ⇝ 29/28 | note:79 gain:0.06400000000000002 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", + "[ 3/4 ⇜ (51/64 → 13/16) ⇝ 7/8 | note:C4 gain:0.5814213562373098 clip:1 s:piano release:0.1 pan:0.5277777777777778 ]", + "[ 3/4 ⇜ (51/64 → 13/16) ⇝ 7/8 | note:Eb4 gain:0.5814213562373098 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", + "[ 11/14 ⇜ (51/64 → 13/16) ⇝ 29/28 | note:70 gain:0.05814213562373099 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", + "[ 11/14 ⇜ (51/64 → 13/16) ⇝ 29/28 | note:74 gain:0.05814213562373099 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", + "[ 11/14 ⇜ (51/64 → 13/16) ⇝ 29/28 | note:75 gain:0.05814213562373099 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", + "[ 11/14 ⇜ (51/64 → 13/16) ⇝ 29/28 | note:79 gain:0.05814213562373099 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", + "[ 3/4 ⇜ (13/16 → 53/64) ⇝ 7/8 | note:C4 gain:0.4399999999999996 clip:1 s:piano release:0.1 pan:0.5277777777777778 ]", + "[ 3/4 ⇜ (13/16 → 53/64) ⇝ 7/8 | note:Eb4 gain:0.4399999999999996 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", + "[ 11/14 ⇜ (13/16 → 53/64) ⇝ 29/28 | note:70 gain:0.04399999999999996 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", + "[ 11/14 ⇜ (13/16 → 53/64) ⇝ 29/28 | note:74 gain:0.04399999999999996 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", + "[ 11/14 ⇜ (13/16 → 53/64) ⇝ 29/28 | note:75 gain:0.04399999999999996 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", + "[ 11/14 ⇜ (13/16 → 53/64) ⇝ 29/28 | note:79 gain:0.04399999999999996 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", + "[ 3/4 ⇜ (53/64 → 27/32) ⇝ 7/8 | note:C4 gain:0.2985786437626906 clip:1 s:piano release:0.1 pan:0.5277777777777778 ]", + "[ 3/4 ⇜ (53/64 → 27/32) ⇝ 7/8 | note:Eb4 gain:0.2985786437626906 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", + "[ 11/14 ⇜ (53/64 → 27/32) ⇝ 29/28 | note:70 gain:0.029857864376269062 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", + "[ 11/14 ⇜ (53/64 → 27/32) ⇝ 29/28 | note:74 gain:0.029857864376269062 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", + "[ 11/14 ⇜ (53/64 → 27/32) ⇝ 29/28 | note:75 gain:0.029857864376269062 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", + "[ 11/14 ⇜ (53/64 → 27/32) ⇝ 29/28 | note:79 gain:0.029857864376269062 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", + "[ 3/4 ⇜ (27/32 → 55/64) ⇝ 7/8 | note:C4 gain:0.24 clip:1 s:piano release:0.1 pan:0.5277777777777778 ]", + "[ 3/4 ⇜ (27/32 → 55/64) ⇝ 7/8 | note:Eb4 gain:0.24 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", + "[ 11/14 ⇜ (27/32 → 55/64) ⇝ 29/28 | note:70 gain:0.024 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", + "[ 11/14 ⇜ (27/32 → 55/64) ⇝ 29/28 | note:74 gain:0.024 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", + "[ 11/14 ⇜ (27/32 → 55/64) ⇝ 29/28 | note:75 gain:0.024 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", + "[ 11/14 ⇜ (27/32 → 55/64) ⇝ 29/28 | note:79 gain:0.024 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", + "[ 3/4 ⇜ (55/64 → 7/8) | note:C4 gain:0.29857864376269067 clip:1 s:piano release:0.1 pan:0.5277777777777778 ]", + "[ 3/4 ⇜ (55/64 → 7/8) | note:Eb4 gain:0.29857864376269067 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", + "[ 11/14 ⇜ (55/64 → 7/8) ⇝ 29/28 | note:70 gain:0.02985786437626907 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", + "[ 11/14 ⇜ (55/64 → 7/8) ⇝ 29/28 | note:74 gain:0.02985786437626907 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", + "[ 11/14 ⇜ (55/64 → 7/8) ⇝ 29/28 | note:75 gain:0.02985786437626907 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", + "[ 11/14 ⇜ (55/64 → 7/8) ⇝ 29/28 | note:79 gain:0.02985786437626907 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", + "[ 11/14 ⇜ (7/8 → 57/64) ⇝ 29/28 | note:70 gain:0.04399999999999998 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", + "[ 11/14 ⇜ (7/8 → 57/64) ⇝ 29/28 | note:74 gain:0.04399999999999998 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", + "[ 11/14 ⇜ (7/8 → 57/64) ⇝ 29/28 | note:75 gain:0.04399999999999998 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", + "[ 11/14 ⇜ (7/8 → 57/64) ⇝ 29/28 | note:79 gain:0.04399999999999998 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", + "[ 11/14 ⇜ (57/64 → 29/32) ⇝ 29/28 | note:70 gain:0.0581421356237309 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", + "[ 11/14 ⇜ (57/64 → 29/32) ⇝ 29/28 | note:74 gain:0.0581421356237309 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", + "[ 11/14 ⇜ (57/64 → 29/32) ⇝ 29/28 | note:75 gain:0.0581421356237309 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", + "[ 11/14 ⇜ (57/64 → 29/32) ⇝ 29/28 | note:79 gain:0.0581421356237309 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", + "[ 11/14 ⇜ (29/32 → 59/64) ⇝ 29/28 | note:70 gain:0.06400000000000002 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", + "[ 11/14 ⇜ (29/32 → 59/64) ⇝ 29/28 | note:74 gain:0.06400000000000002 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", + "[ 11/14 ⇜ (29/32 → 59/64) ⇝ 29/28 | note:75 gain:0.06400000000000002 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", + "[ 11/14 ⇜ (29/32 → 59/64) ⇝ 29/28 | note:79 gain:0.06400000000000002 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", + "[ 11/14 ⇜ (59/64 → 15/16) ⇝ 29/28 | note:70 gain:0.058142135623730995 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", + "[ 11/14 ⇜ (59/64 → 15/16) ⇝ 29/28 | note:74 gain:0.058142135623730995 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", + "[ 11/14 ⇜ (59/64 → 15/16) ⇝ 29/28 | note:75 gain:0.058142135623730995 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", + "[ 11/14 ⇜ (59/64 → 15/16) ⇝ 29/28 | note:79 gain:0.058142135623730995 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", + "[ 11/14 ⇜ (15/16 → 61/64) ⇝ 29/28 | note:70 gain:0.044000000000000115 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", + "[ 11/14 ⇜ (15/16 → 61/64) ⇝ 29/28 | note:74 gain:0.044000000000000115 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", + "[ 11/14 ⇜ (15/16 → 61/64) ⇝ 29/28 | note:75 gain:0.044000000000000115 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", + "[ 11/14 ⇜ (15/16 → 61/64) ⇝ 29/28 | note:79 gain:0.044000000000000115 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", + "[ 11/14 ⇜ (61/64 → 31/32) ⇝ 29/28 | note:70 gain:0.02985786437626907 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", + "[ 11/14 ⇜ (61/64 → 31/32) ⇝ 29/28 | note:74 gain:0.02985786437626907 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", + "[ 11/14 ⇜ (61/64 → 31/32) ⇝ 29/28 | note:75 gain:0.02985786437626907 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", + "[ 11/14 ⇜ (61/64 → 31/32) ⇝ 29/28 | note:79 gain:0.02985786437626907 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", + "[ 11/14 ⇜ (31/32 → 63/64) ⇝ 29/28 | note:70 gain:0.024 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", + "[ 11/14 ⇜ (31/32 → 63/64) ⇝ 29/28 | note:74 gain:0.024 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", + "[ 11/14 ⇜ (31/32 → 63/64) ⇝ 29/28 | note:75 gain:0.024 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", + "[ 11/14 ⇜ (31/32 → 63/64) ⇝ 29/28 | note:79 gain:0.024 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", + "[ 11/14 ⇜ (63/64 → 1/1) ⇝ 29/28 | note:70 gain:0.029857864376269062 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", + "[ 11/14 ⇜ (63/64 → 1/1) ⇝ 29/28 | note:74 gain:0.029857864376269062 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", + "[ 11/14 ⇜ (63/64 → 1/1) ⇝ 29/28 | note:75 gain:0.029857864376269062 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", + "[ 11/14 ⇜ (63/64 → 1/1) ⇝ 29/28 | note:79 gain:0.029857864376269062 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", + "[ 11/14 ⇜ (1/1 → 65/64) ⇝ 29/28 | note:70 gain:0.04399999999999996 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", + "[ 11/14 ⇜ (1/1 → 65/64) ⇝ 29/28 | note:74 gain:0.04399999999999996 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", + "[ 11/14 ⇜ (1/1 → 65/64) ⇝ 29/28 | note:75 gain:0.04399999999999996 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", + "[ 11/14 ⇜ (1/1 → 65/64) ⇝ 29/28 | note:79 gain:0.04399999999999996 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", + "[ (1/1 → 65/64) ⇝ 5/4 | note:C2 gain:0.4399999999999996 clip:1 s:piano release:0.1 pan:0.41666666666666663 ]", + "[ 11/14 ⇜ (65/64 → 33/32) ⇝ 29/28 | note:70 gain:0.0581421356237309 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", + "[ 11/14 ⇜ (65/64 → 33/32) ⇝ 29/28 | note:74 gain:0.0581421356237309 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", + "[ 11/14 ⇜ (65/64 → 33/32) ⇝ 29/28 | note:75 gain:0.0581421356237309 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", + "[ 11/14 ⇜ (65/64 → 33/32) ⇝ 29/28 | note:79 gain:0.0581421356237309 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", + "[ 1/1 ⇜ (65/64 → 33/32) ⇝ 5/4 | note:C2 gain:0.581421356237309 clip:1 s:piano release:0.1 pan:0.41666666666666663 ]", + "[ 11/14 ⇜ (33/32 → 29/28) | note:70 gain:0.06400000000000002 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", + "[ 11/14 ⇜ (33/32 → 29/28) | note:74 gain:0.06400000000000002 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", + "[ 11/14 ⇜ (33/32 → 29/28) | note:75 gain:0.06400000000000002 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", + "[ 11/14 ⇜ (33/32 → 29/28) | note:79 gain:0.06400000000000002 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", + "[ 1/1 ⇜ (33/32 → 67/64) ⇝ 5/4 | note:C2 gain:0.6400000000000001 clip:1 s:piano release:0.1 pan:0.41666666666666663 ]", + "[ 1/1 ⇜ (67/64 → 17/16) ⇝ 5/4 | note:C2 gain:0.58142135623731 clip:1 s:piano release:0.1 pan:0.41666666666666663 ]", + "[ 1/1 ⇜ (17/16 → 69/64) ⇝ 5/4 | note:C2 gain:0.4399999999999997 clip:1 s:piano release:0.1 pan:0.41666666666666663 ]", + "[ 1/1 ⇜ (69/64 → 35/32) ⇝ 5/4 | note:C2 gain:0.29857864376269067 clip:1 s:piano release:0.1 pan:0.41666666666666663 ]", + "[ 1/1 ⇜ (35/32 → 71/64) ⇝ 5/4 | note:C2 gain:0.24 clip:1 s:piano release:0.1 pan:0.41666666666666663 ]", + "[ 1/1 ⇜ (71/64 → 9/8) ⇝ 5/4 | note:C2 gain:0.29857864376269055 clip:1 s:piano release:0.1 pan:0.41666666666666663 ]", + "[ 1/1 ⇜ (9/8 → 73/64) ⇝ 5/4 | note:C2 gain:0.4399999999999995 clip:1 s:piano release:0.1 pan:0.41666666666666663 ]", + "[ (9/8 → 73/64) ⇝ 5/4 | note:C4 gain:0.4399999999999995 clip:1 s:piano release:0.1 pan:0.5277777777777778 ]", + "[ (9/8 → 73/64) ⇝ 5/4 | note:Eb4 gain:0.4399999999999995 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", + "[ 1/1 ⇜ (73/64 → 37/32) ⇝ 5/4 | note:C2 gain:0.5814213562373087 clip:1 s:piano release:0.1 pan:0.41666666666666663 ]", + "[ 9/8 ⇜ (73/64 → 37/32) ⇝ 5/4 | note:C4 gain:0.5814213562373087 clip:1 s:piano release:0.1 pan:0.5277777777777778 ]", + "[ 9/8 ⇜ (73/64 → 37/32) ⇝ 5/4 | note:Eb4 gain:0.5814213562373087 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", + "[ 1/1 ⇜ (37/32 → 75/64) ⇝ 5/4 | note:C2 gain:0.6400000000000001 clip:1 s:piano release:0.1 pan:0.41666666666666663 ]", + "[ 9/8 ⇜ (37/32 → 75/64) ⇝ 5/4 | note:C4 gain:0.6400000000000001 clip:1 s:piano release:0.1 pan:0.5277777777777778 ]", + "[ 9/8 ⇜ (37/32 → 75/64) ⇝ 5/4 | note:Eb4 gain:0.6400000000000001 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", + "[ 1/1 ⇜ (75/64 → 19/16) ⇝ 5/4 | note:C2 gain:0.58142135623731 clip:1 s:piano release:0.1 pan:0.41666666666666663 ]", + "[ 9/8 ⇜ (75/64 → 19/16) ⇝ 5/4 | note:C4 gain:0.58142135623731 clip:1 s:piano release:0.1 pan:0.5277777777777778 ]", + "[ 9/8 ⇜ (75/64 → 19/16) ⇝ 5/4 | note:Eb4 gain:0.58142135623731 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", + "[ 1/1 ⇜ (19/16 → 77/64) ⇝ 5/4 | note:C2 gain:0.4400000000000011 clip:1 s:piano release:0.1 pan:0.41666666666666663 ]", + "[ 9/8 ⇜ (19/16 → 77/64) ⇝ 5/4 | note:C4 gain:0.4400000000000011 clip:1 s:piano release:0.1 pan:0.5277777777777778 ]", + "[ 9/8 ⇜ (19/16 → 77/64) ⇝ 5/4 | note:Eb4 gain:0.4400000000000011 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", + "[ 1/1 ⇜ (77/64 → 39/32) ⇝ 5/4 | note:C2 gain:0.2985786437626907 clip:1 s:piano release:0.1 pan:0.41666666666666663 ]", + "[ 9/8 ⇜ (77/64 → 39/32) ⇝ 5/4 | note:C4 gain:0.2985786437626907 clip:1 s:piano release:0.1 pan:0.5277777777777778 ]", + "[ 9/8 ⇜ (77/64 → 39/32) ⇝ 5/4 | note:Eb4 gain:0.2985786437626907 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", + "[ 1/1 ⇜ (39/32 → 79/64) ⇝ 5/4 | note:C2 gain:0.24 clip:1 s:piano release:0.1 pan:0.41666666666666663 ]", + "[ 9/8 ⇜ (39/32 → 79/64) ⇝ 5/4 | note:C4 gain:0.24 clip:1 s:piano release:0.1 pan:0.5277777777777778 ]", + "[ 9/8 ⇜ (39/32 → 79/64) ⇝ 5/4 | note:Eb4 gain:0.24 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", + "[ 1/1 ⇜ (79/64 → 5/4) | note:C2 gain:0.29857864376269055 clip:1 s:piano release:0.1 pan:0.41666666666666663 ]", + "[ 9/8 ⇜ (79/64 → 5/4) | note:C4 gain:0.29857864376269055 clip:1 s:piano release:0.1 pan:0.5277777777777778 ]", + "[ 9/8 ⇜ (79/64 → 5/4) | note:Eb4 gain:0.29857864376269055 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", + "[ (5/4 → 81/64) ⇝ 3/2 | note:Bb3 gain:0.21999999999999975 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", + "[ (5/4 → 81/64) ⇝ 3/2 | note:D4 gain:0.21999999999999975 clip:1 s:piano release:0.1 pan:0.537037037037037 ]", + "[ (5/4 → 81/64) ⇝ 3/2 | note:Eb4 gain:0.21999999999999975 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", + "[ (5/4 → 81/64) ⇝ 3/2 | note:G4 gain:0.21999999999999975 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", + "[ 5/4 ⇜ (81/64 → 41/32) ⇝ 3/2 | note:Bb3 gain:0.29071067811865436 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", + "[ 5/4 ⇜ (81/64 → 41/32) ⇝ 3/2 | note:D4 gain:0.29071067811865436 clip:1 s:piano release:0.1 pan:0.537037037037037 ]", + "[ 5/4 ⇜ (81/64 → 41/32) ⇝ 3/2 | note:Eb4 gain:0.29071067811865436 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", + "[ 5/4 ⇜ (81/64 → 41/32) ⇝ 3/2 | note:G4 gain:0.29071067811865436 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", + "[ 5/4 ⇜ (41/32 → 83/64) ⇝ 3/2 | note:Bb3 gain:0.32000000000000006 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", + "[ 5/4 ⇜ (41/32 → 83/64) ⇝ 3/2 | note:D4 gain:0.32000000000000006 clip:1 s:piano release:0.1 pan:0.537037037037037 ]", + "[ 5/4 ⇜ (41/32 → 83/64) ⇝ 3/2 | note:Eb4 gain:0.32000000000000006 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", + "[ 5/4 ⇜ (41/32 → 83/64) ⇝ 3/2 | note:G4 gain:0.32000000000000006 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", + "[ 5/4 ⇜ (83/64 → 21/16) ⇝ 3/2 | note:Bb3 gain:0.2907106781186545 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", + "[ 5/4 ⇜ (83/64 → 21/16) ⇝ 3/2 | note:D4 gain:0.2907106781186545 clip:1 s:piano release:0.1 pan:0.537037037037037 ]", + "[ 5/4 ⇜ (83/64 → 21/16) ⇝ 3/2 | note:Eb4 gain:0.2907106781186545 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", + "[ 5/4 ⇜ (83/64 → 21/16) ⇝ 3/2 | note:G4 gain:0.2907106781186545 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", + "[ 5/4 ⇜ (21/16 → 85/64) ⇝ 3/2 | note:Bb3 gain:0.2199999999999999 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", + "[ 5/4 ⇜ (21/16 → 85/64) ⇝ 3/2 | note:D4 gain:0.2199999999999999 clip:1 s:piano release:0.1 pan:0.537037037037037 ]", + "[ 5/4 ⇜ (21/16 → 85/64) ⇝ 3/2 | note:Eb4 gain:0.2199999999999999 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", + "[ 5/4 ⇜ (21/16 → 85/64) ⇝ 3/2 | note:G4 gain:0.2199999999999999 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", + "[ 5/4 ⇜ (85/64 → 43/32) ⇝ 3/2 | note:Bb3 gain:0.14928932188134536 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", + "[ 5/4 ⇜ (85/64 → 43/32) ⇝ 3/2 | note:D4 gain:0.14928932188134536 clip:1 s:piano release:0.1 pan:0.537037037037037 ]", + "[ 5/4 ⇜ (85/64 → 43/32) ⇝ 3/2 | note:Eb4 gain:0.14928932188134536 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", + "[ 5/4 ⇜ (85/64 → 43/32) ⇝ 3/2 | note:G4 gain:0.14928932188134536 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", + "[ 5/4 ⇜ (43/32 → 87/64) ⇝ 3/2 | note:Bb3 gain:0.12 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", + "[ 5/4 ⇜ (43/32 → 87/64) ⇝ 3/2 | note:D4 gain:0.12 clip:1 s:piano release:0.1 pan:0.537037037037037 ]", + "[ 5/4 ⇜ (43/32 → 87/64) ⇝ 3/2 | note:Eb4 gain:0.12 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", + "[ 5/4 ⇜ (43/32 → 87/64) ⇝ 3/2 | note:G4 gain:0.12 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", + "[ 5/4 ⇜ (87/64 → 11/8) ⇝ 3/2 | note:Bb3 gain:0.14928932188134475 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", + "[ 5/4 ⇜ (87/64 → 11/8) ⇝ 3/2 | note:D4 gain:0.14928932188134475 clip:1 s:piano release:0.1 pan:0.537037037037037 ]", + "[ 5/4 ⇜ (87/64 → 11/8) ⇝ 3/2 | note:Eb4 gain:0.14928932188134475 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", + "[ 5/4 ⇜ (87/64 → 11/8) ⇝ 3/2 | note:G4 gain:0.14928932188134475 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", + "[ 5/4 ⇜ (11/8 → 89/64) ⇝ 3/2 | note:Bb3 gain:0.21999999999999906 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", + "[ 5/4 ⇜ (11/8 → 89/64) ⇝ 3/2 | note:D4 gain:0.21999999999999906 clip:1 s:piano release:0.1 pan:0.537037037037037 ]", + "[ 5/4 ⇜ (11/8 → 89/64) ⇝ 3/2 | note:Eb4 gain:0.21999999999999906 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", + "[ 5/4 ⇜ (11/8 → 89/64) ⇝ 3/2 | note:G4 gain:0.21999999999999906 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", + "[ 5/4 ⇜ (89/64 → 45/32) ⇝ 3/2 | note:Bb3 gain:0.2907106781186549 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", + "[ 5/4 ⇜ (89/64 → 45/32) ⇝ 3/2 | note:D4 gain:0.2907106781186549 clip:1 s:piano release:0.1 pan:0.537037037037037 ]", + "[ 5/4 ⇜ (89/64 → 45/32) ⇝ 3/2 | note:Eb4 gain:0.2907106781186549 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", + "[ 5/4 ⇜ (89/64 → 45/32) ⇝ 3/2 | note:G4 gain:0.2907106781186549 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", + "[ 5/4 ⇜ (45/32 → 91/64) ⇝ 3/2 | note:Bb3 gain:0.32000000000000006 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", + "[ 5/4 ⇜ (45/32 → 91/64) ⇝ 3/2 | note:D4 gain:0.32000000000000006 clip:1 s:piano release:0.1 pan:0.537037037037037 ]", + "[ 5/4 ⇜ (45/32 → 91/64) ⇝ 3/2 | note:Eb4 gain:0.32000000000000006 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", + "[ 5/4 ⇜ (45/32 → 91/64) ⇝ 3/2 | note:G4 gain:0.32000000000000006 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", + "[ 5/4 ⇜ (91/64 → 23/16) ⇝ 3/2 | note:Bb3 gain:0.290710678118655 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", + "[ 5/4 ⇜ (91/64 → 23/16) ⇝ 3/2 | note:D4 gain:0.290710678118655 clip:1 s:piano release:0.1 pan:0.537037037037037 ]", + "[ 5/4 ⇜ (91/64 → 23/16) ⇝ 3/2 | note:Eb4 gain:0.290710678118655 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", + "[ 5/4 ⇜ (91/64 → 23/16) ⇝ 3/2 | note:G4 gain:0.290710678118655 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", + "[ 5/4 ⇜ (23/16 → 93/64) ⇝ 3/2 | note:Bb3 gain:0.22000000000000064 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", + "[ 5/4 ⇜ (23/16 → 93/64) ⇝ 3/2 | note:D4 gain:0.22000000000000064 clip:1 s:piano release:0.1 pan:0.537037037037037 ]", + "[ 5/4 ⇜ (23/16 → 93/64) ⇝ 3/2 | note:Eb4 gain:0.22000000000000064 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", + "[ 5/4 ⇜ (23/16 → 93/64) ⇝ 3/2 | note:G4 gain:0.22000000000000064 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", + "[ 5/4 ⇜ (93/64 → 47/32) ⇝ 3/2 | note:Bb3 gain:0.1492893218813459 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", + "[ 5/4 ⇜ (93/64 → 47/32) ⇝ 3/2 | note:D4 gain:0.1492893218813459 clip:1 s:piano release:0.1 pan:0.537037037037037 ]", + "[ 5/4 ⇜ (93/64 → 47/32) ⇝ 3/2 | note:Eb4 gain:0.1492893218813459 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", + "[ 5/4 ⇜ (93/64 → 47/32) ⇝ 3/2 | note:G4 gain:0.1492893218813459 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", + "[ 5/4 ⇜ (47/32 → 95/64) ⇝ 3/2 | note:Bb3 gain:0.12 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", + "[ 5/4 ⇜ (47/32 → 95/64) ⇝ 3/2 | note:D4 gain:0.12 clip:1 s:piano release:0.1 pan:0.537037037037037 ]", + "[ 5/4 ⇜ (47/32 → 95/64) ⇝ 3/2 | note:Eb4 gain:0.12 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", + "[ 5/4 ⇜ (47/32 → 95/64) ⇝ 3/2 | note:G4 gain:0.12 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", + "[ 5/4 ⇜ (95/64 → 3/2) | note:Bb3 gain:0.14928932188134522 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", + "[ 5/4 ⇜ (95/64 → 3/2) | note:D4 gain:0.14928932188134522 clip:1 s:piano release:0.1 pan:0.537037037037037 ]", + "[ 5/4 ⇜ (95/64 → 3/2) | note:Eb4 gain:0.14928932188134522 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", + "[ 5/4 ⇜ (95/64 → 3/2) | note:G4 gain:0.14928932188134522 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", + "[ (3/2 → 97/64) ⇝ 13/8 | note:G4 gain:0.43999999999999945 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", + "[ (3/2 → 97/64) ⇝ 13/8 | note:Bb4 gain:0.43999999999999945 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", + "[ (3/2 → 97/64) ⇝ 7/4 | note:C2 gain:0.43999999999999945 clip:1 s:piano release:0.1 pan:0.41666666666666663 ]", + "[ 3/2 ⇜ (97/64 → 49/32) ⇝ 13/8 | note:G4 gain:0.5814213562373087 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", + "[ 3/2 ⇜ (97/64 → 49/32) ⇝ 13/8 | note:Bb4 gain:0.5814213562373087 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", + "[ 3/2 ⇜ (97/64 → 49/32) ⇝ 7/4 | note:C2 gain:0.5814213562373087 clip:1 s:piano release:0.1 pan:0.41666666666666663 ]", + "[ 3/2 ⇜ (49/32 → 99/64) ⇝ 13/8 | note:G4 gain:0.6400000000000001 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", + "[ 3/2 ⇜ (49/32 → 99/64) ⇝ 13/8 | note:Bb4 gain:0.6400000000000001 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", + "[ 3/2 ⇜ (49/32 → 99/64) ⇝ 7/4 | note:C2 gain:0.6400000000000001 clip:1 s:piano release:0.1 pan:0.41666666666666663 ]", + "[ (43/28 → 99/64) ⇝ 25/14 | note:70 gain:0.06400000000000002 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", + "[ (43/28 → 99/64) ⇝ 25/14 | note:74 gain:0.06400000000000002 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", + "[ (43/28 → 99/64) ⇝ 25/14 | note:75 gain:0.06400000000000002 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", + "[ (43/28 → 99/64) ⇝ 25/14 | note:79 gain:0.06400000000000002 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", + "[ 3/2 ⇜ (99/64 → 25/16) ⇝ 13/8 | note:G4 gain:0.5814213562373091 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", + "[ 3/2 ⇜ (99/64 → 25/16) ⇝ 13/8 | note:Bb4 gain:0.5814213562373091 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", + "[ 3/2 ⇜ (99/64 → 25/16) ⇝ 7/4 | note:C2 gain:0.5814213562373091 clip:1 s:piano release:0.1 pan:0.41666666666666663 ]", + "[ 43/28 ⇜ (99/64 → 25/16) ⇝ 25/14 | note:70 gain:0.05814213562373091 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", + "[ 43/28 ⇜ (99/64 → 25/16) ⇝ 25/14 | note:74 gain:0.05814213562373091 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", + "[ 43/28 ⇜ (99/64 → 25/16) ⇝ 25/14 | note:75 gain:0.05814213562373091 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", + "[ 43/28 ⇜ (99/64 → 25/16) ⇝ 25/14 | note:79 gain:0.05814213562373091 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", + "[ 3/2 ⇜ (25/16 → 101/64) ⇝ 13/8 | note:G4 gain:0.4399999999999999 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", + "[ 3/2 ⇜ (25/16 → 101/64) ⇝ 13/8 | note:Bb4 gain:0.4399999999999999 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", + "[ 3/2 ⇜ (25/16 → 101/64) ⇝ 7/4 | note:C2 gain:0.4399999999999999 clip:1 s:piano release:0.1 pan:0.41666666666666663 ]", + "[ 43/28 ⇜ (25/16 → 101/64) ⇝ 25/14 | note:70 gain:0.04399999999999999 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", + "[ 43/28 ⇜ (25/16 → 101/64) ⇝ 25/14 | note:74 gain:0.04399999999999999 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", + "[ 43/28 ⇜ (25/16 → 101/64) ⇝ 25/14 | note:75 gain:0.04399999999999999 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", + "[ 43/28 ⇜ (25/16 → 101/64) ⇝ 25/14 | note:79 gain:0.04399999999999999 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", + "[ 3/2 ⇜ (101/64 → 51/32) ⇝ 13/8 | note:G4 gain:0.29857864376269083 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", + "[ 3/2 ⇜ (101/64 → 51/32) ⇝ 13/8 | note:Bb4 gain:0.29857864376269083 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", + "[ 3/2 ⇜ (101/64 → 51/32) ⇝ 7/4 | note:C2 gain:0.29857864376269083 clip:1 s:piano release:0.1 pan:0.41666666666666663 ]", + "[ 43/28 ⇜ (101/64 → 51/32) ⇝ 25/14 | note:70 gain:0.029857864376269083 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", + "[ 43/28 ⇜ (101/64 → 51/32) ⇝ 25/14 | note:74 gain:0.029857864376269083 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", + "[ 43/28 ⇜ (101/64 → 51/32) ⇝ 25/14 | note:75 gain:0.029857864376269083 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", + "[ 43/28 ⇜ (101/64 → 51/32) ⇝ 25/14 | note:79 gain:0.029857864376269083 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", + "[ 3/2 ⇜ (51/32 → 103/64) ⇝ 13/8 | note:G4 gain:0.24 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", + "[ 3/2 ⇜ (51/32 → 103/64) ⇝ 13/8 | note:Bb4 gain:0.24 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", + "[ 3/2 ⇜ (51/32 → 103/64) ⇝ 7/4 | note:C2 gain:0.24 clip:1 s:piano release:0.1 pan:0.41666666666666663 ]", + "[ 43/28 ⇜ (51/32 → 103/64) ⇝ 25/14 | note:70 gain:0.024 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", + "[ 43/28 ⇜ (51/32 → 103/64) ⇝ 25/14 | note:74 gain:0.024 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", + "[ 43/28 ⇜ (51/32 → 103/64) ⇝ 25/14 | note:75 gain:0.024 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", + "[ 43/28 ⇜ (51/32 → 103/64) ⇝ 25/14 | note:79 gain:0.024 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", + "[ 3/2 ⇜ (103/64 → 13/8) | note:G4 gain:0.2985786437626894 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", + "[ 3/2 ⇜ (103/64 → 13/8) | note:Bb4 gain:0.2985786437626894 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", + "[ 3/2 ⇜ (103/64 → 13/8) ⇝ 7/4 | note:C2 gain:0.2985786437626894 clip:1 s:piano release:0.1 pan:0.41666666666666663 ]", + "[ 43/28 ⇜ (103/64 → 13/8) ⇝ 25/14 | note:70 gain:0.02985786437626894 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", + "[ 43/28 ⇜ (103/64 → 13/8) ⇝ 25/14 | note:74 gain:0.02985786437626894 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", + "[ 43/28 ⇜ (103/64 → 13/8) ⇝ 25/14 | note:75 gain:0.02985786437626894 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", + "[ 43/28 ⇜ (103/64 → 13/8) ⇝ 25/14 | note:79 gain:0.02985786437626894 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", + "[ 3/2 ⇜ (13/8 → 105/64) ⇝ 7/4 | note:C2 gain:0.4400000000000008 clip:1 s:piano release:0.1 pan:0.41666666666666663 ]", + "[ 43/28 ⇜ (13/8 → 105/64) ⇝ 25/14 | note:70 gain:0.04400000000000008 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", + "[ 43/28 ⇜ (13/8 → 105/64) ⇝ 25/14 | note:74 gain:0.04400000000000008 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", + "[ 43/28 ⇜ (13/8 → 105/64) ⇝ 25/14 | note:75 gain:0.04400000000000008 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", + "[ 43/28 ⇜ (13/8 → 105/64) ⇝ 25/14 | note:79 gain:0.04400000000000008 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", + "[ 3/2 ⇜ (105/64 → 53/32) ⇝ 7/4 | note:C2 gain:0.5814213562373096 clip:1 s:piano release:0.1 pan:0.41666666666666663 ]", + "[ 43/28 ⇜ (105/64 → 53/32) ⇝ 25/14 | note:70 gain:0.05814213562373097 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", + "[ 43/28 ⇜ (105/64 → 53/32) ⇝ 25/14 | note:74 gain:0.05814213562373097 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", + "[ 43/28 ⇜ (105/64 → 53/32) ⇝ 25/14 | note:75 gain:0.05814213562373097 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", + "[ 43/28 ⇜ (105/64 → 53/32) ⇝ 25/14 | note:79 gain:0.05814213562373097 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", + "[ 3/2 ⇜ (53/32 → 107/64) ⇝ 7/4 | note:C2 gain:0.6400000000000001 clip:1 s:piano release:0.1 pan:0.41666666666666663 ]", + "[ 43/28 ⇜ (53/32 → 107/64) ⇝ 25/14 | note:70 gain:0.06400000000000002 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", + "[ 43/28 ⇜ (53/32 → 107/64) ⇝ 25/14 | note:74 gain:0.06400000000000002 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", + "[ 43/28 ⇜ (53/32 → 107/64) ⇝ 25/14 | note:75 gain:0.06400000000000002 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", + "[ 43/28 ⇜ (53/32 → 107/64) ⇝ 25/14 | note:79 gain:0.06400000000000002 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", + "[ 3/2 ⇜ (107/64 → 27/16) ⇝ 7/4 | note:C2 gain:0.5814213562373102 clip:1 s:piano release:0.1 pan:0.41666666666666663 ]", + "[ 43/28 ⇜ (107/64 → 27/16) ⇝ 25/14 | note:70 gain:0.05814213562373102 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", + "[ 43/28 ⇜ (107/64 → 27/16) ⇝ 25/14 | note:74 gain:0.05814213562373102 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", + "[ 43/28 ⇜ (107/64 → 27/16) ⇝ 25/14 | note:75 gain:0.05814213562373102 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", + "[ 43/28 ⇜ (107/64 → 27/16) ⇝ 25/14 | note:79 gain:0.05814213562373102 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", + "[ 3/2 ⇜ (27/16 → 109/64) ⇝ 7/4 | note:C2 gain:0.4400000000000014 clip:1 s:piano release:0.1 pan:0.41666666666666663 ]", + "[ 43/28 ⇜ (27/16 → 109/64) ⇝ 25/14 | note:70 gain:0.04400000000000014 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", + "[ 43/28 ⇜ (27/16 → 109/64) ⇝ 25/14 | note:74 gain:0.04400000000000014 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", + "[ 43/28 ⇜ (27/16 → 109/64) ⇝ 25/14 | note:75 gain:0.04400000000000014 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", + "[ 43/28 ⇜ (27/16 → 109/64) ⇝ 25/14 | note:79 gain:0.04400000000000014 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", + "[ 3/2 ⇜ (109/64 → 55/32) ⇝ 7/4 | note:C2 gain:0.29857864376269183 clip:1 s:piano release:0.1 pan:0.41666666666666663 ]", + "[ 43/28 ⇜ (109/64 → 55/32) ⇝ 25/14 | note:70 gain:0.029857864376269184 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", + "[ 43/28 ⇜ (109/64 → 55/32) ⇝ 25/14 | note:74 gain:0.029857864376269184 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", + "[ 43/28 ⇜ (109/64 → 55/32) ⇝ 25/14 | note:75 gain:0.029857864376269184 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", + "[ 43/28 ⇜ (109/64 → 55/32) ⇝ 25/14 | note:79 gain:0.029857864376269184 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", + "[ 3/2 ⇜ (55/32 → 111/64) ⇝ 7/4 | note:C2 gain:0.24 clip:1 s:piano release:0.1 pan:0.41666666666666663 ]", + "[ 43/28 ⇜ (55/32 → 111/64) ⇝ 25/14 | note:70 gain:0.024 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", + "[ 43/28 ⇜ (55/32 → 111/64) ⇝ 25/14 | note:74 gain:0.024 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", + "[ 43/28 ⇜ (55/32 → 111/64) ⇝ 25/14 | note:75 gain:0.024 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", + "[ 43/28 ⇜ (55/32 → 111/64) ⇝ 25/14 | note:79 gain:0.024 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", + "[ 3/2 ⇜ (111/64 → 7/4) | note:C2 gain:0.2985786437626904 clip:1 s:piano release:0.1 pan:0.41666666666666663 ]", + "[ 43/28 ⇜ (111/64 → 7/4) ⇝ 25/14 | note:70 gain:0.02985786437626904 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", + "[ 43/28 ⇜ (111/64 → 7/4) ⇝ 25/14 | note:74 gain:0.02985786437626904 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", + "[ 43/28 ⇜ (111/64 → 7/4) ⇝ 25/14 | note:75 gain:0.02985786437626904 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", + "[ 43/28 ⇜ (111/64 → 7/4) ⇝ 25/14 | note:79 gain:0.02985786437626904 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", + "[ 43/28 ⇜ (7/4 → 113/64) ⇝ 25/14 | note:70 gain:0.043999999999999935 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", + "[ 43/28 ⇜ (7/4 → 113/64) ⇝ 25/14 | note:74 gain:0.043999999999999935 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", + "[ 43/28 ⇜ (7/4 → 113/64) ⇝ 25/14 | note:75 gain:0.043999999999999935 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", + "[ 43/28 ⇜ (7/4 → 113/64) ⇝ 25/14 | note:79 gain:0.043999999999999935 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", + "[ (7/4 → 113/64) ⇝ 15/8 | note:G4 gain:0.43999999999999934 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", + "[ (7/4 → 113/64) ⇝ 15/8 | note:Bb4 gain:0.43999999999999934 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", + "[ (7/4 → 113/64) ⇝ 2/1 | note:Bb3 gain:0.21999999999999967 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", + "[ (7/4 → 113/64) ⇝ 2/1 | note:D4 gain:0.21999999999999967 clip:1 s:piano release:0.1 pan:0.537037037037037 ]", + "[ (7/4 → 113/64) ⇝ 2/1 | note:Eb4 gain:0.21999999999999967 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", + "[ (7/4 → 113/64) ⇝ 2/1 | note:G4 gain:0.21999999999999967 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", + "[ 43/28 ⇜ (113/64 → 57/32) ⇝ 25/14 | note:70 gain:0.05814213562373086 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", + "[ 43/28 ⇜ (113/64 → 57/32) ⇝ 25/14 | note:74 gain:0.05814213562373086 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", + "[ 43/28 ⇜ (113/64 → 57/32) ⇝ 25/14 | note:75 gain:0.05814213562373086 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", + "[ 43/28 ⇜ (113/64 → 57/32) ⇝ 25/14 | note:79 gain:0.05814213562373086 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", + "[ 7/4 ⇜ (113/64 → 57/32) ⇝ 15/8 | note:G4 gain:0.5814213562373086 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", + "[ 7/4 ⇜ (113/64 → 57/32) ⇝ 15/8 | note:Bb4 gain:0.5814213562373086 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", + "[ 7/4 ⇜ (113/64 → 57/32) ⇝ 2/1 | note:Bb3 gain:0.2907106781186543 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", + "[ 7/4 ⇜ (113/64 → 57/32) ⇝ 2/1 | note:D4 gain:0.2907106781186543 clip:1 s:piano release:0.1 pan:0.537037037037037 ]", + "[ 7/4 ⇜ (113/64 → 57/32) ⇝ 2/1 | note:Eb4 gain:0.2907106781186543 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", + "[ 7/4 ⇜ (113/64 → 57/32) ⇝ 2/1 | note:G4 gain:0.2907106781186543 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", + "[ 43/28 ⇜ (57/32 → 25/14) | note:70 gain:0.06400000000000002 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", + "[ 43/28 ⇜ (57/32 → 25/14) | note:74 gain:0.06400000000000002 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", + "[ 43/28 ⇜ (57/32 → 25/14) | note:75 gain:0.06400000000000002 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", + "[ 43/28 ⇜ (57/32 → 25/14) | note:79 gain:0.06400000000000002 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", + "[ 7/4 ⇜ (57/32 → 115/64) ⇝ 15/8 | note:G4 gain:0.6400000000000001 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", + "[ 7/4 ⇜ (57/32 → 115/64) ⇝ 15/8 | note:Bb4 gain:0.6400000000000001 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", + "[ 7/4 ⇜ (57/32 → 115/64) ⇝ 2/1 | note:Bb3 gain:0.32000000000000006 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", + "[ 7/4 ⇜ (57/32 → 115/64) ⇝ 2/1 | note:D4 gain:0.32000000000000006 clip:1 s:piano release:0.1 pan:0.537037037037037 ]", + "[ 7/4 ⇜ (57/32 → 115/64) ⇝ 2/1 | note:Eb4 gain:0.32000000000000006 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", + "[ 7/4 ⇜ (57/32 → 115/64) ⇝ 2/1 | note:G4 gain:0.32000000000000006 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", + "[ 7/4 ⇜ (115/64 → 29/16) ⇝ 15/8 | note:G4 gain:0.5814213562373091 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", + "[ 7/4 ⇜ (115/64 → 29/16) ⇝ 15/8 | note:Bb4 gain:0.5814213562373091 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", + "[ 7/4 ⇜ (115/64 → 29/16) ⇝ 2/1 | note:Bb3 gain:0.29071067811865453 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", + "[ 7/4 ⇜ (115/64 → 29/16) ⇝ 2/1 | note:D4 gain:0.29071067811865453 clip:1 s:piano release:0.1 pan:0.537037037037037 ]", + "[ 7/4 ⇜ (115/64 → 29/16) ⇝ 2/1 | note:Eb4 gain:0.29071067811865453 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", + "[ 7/4 ⇜ (115/64 → 29/16) ⇝ 2/1 | note:G4 gain:0.29071067811865453 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", + "[ 7/4 ⇜ (29/16 → 117/64) ⇝ 15/8 | note:G4 gain:0.44000000000000006 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", + "[ 7/4 ⇜ (29/16 → 117/64) ⇝ 15/8 | note:Bb4 gain:0.44000000000000006 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", + "[ 7/4 ⇜ (29/16 → 117/64) ⇝ 2/1 | note:Bb3 gain:0.22000000000000003 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", + "[ 7/4 ⇜ (29/16 → 117/64) ⇝ 2/1 | note:D4 gain:0.22000000000000003 clip:1 s:piano release:0.1 pan:0.537037037037037 ]", + "[ 7/4 ⇜ (29/16 → 117/64) ⇝ 2/1 | note:Eb4 gain:0.22000000000000003 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", + "[ 7/4 ⇜ (29/16 → 117/64) ⇝ 2/1 | note:G4 gain:0.22000000000000003 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", + "[ 7/4 ⇜ (117/64 → 59/32) ⇝ 15/8 | note:G4 gain:0.2985786437626909 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", + "[ 7/4 ⇜ (117/64 → 59/32) ⇝ 15/8 | note:Bb4 gain:0.2985786437626909 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", + "[ 7/4 ⇜ (117/64 → 59/32) ⇝ 2/1 | note:Bb3 gain:0.14928932188134544 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", + "[ 7/4 ⇜ (117/64 → 59/32) ⇝ 2/1 | note:D4 gain:0.14928932188134544 clip:1 s:piano release:0.1 pan:0.537037037037037 ]", + "[ 7/4 ⇜ (117/64 → 59/32) ⇝ 2/1 | note:Eb4 gain:0.14928932188134544 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", + "[ 7/4 ⇜ (117/64 → 59/32) ⇝ 2/1 | note:G4 gain:0.14928932188134544 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", + "[ 7/4 ⇜ (59/32 → 119/64) ⇝ 15/8 | note:G4 gain:0.24 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", + "[ 7/4 ⇜ (59/32 → 119/64) ⇝ 15/8 | note:Bb4 gain:0.24 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", + "[ 7/4 ⇜ (59/32 → 119/64) ⇝ 2/1 | note:Bb3 gain:0.12 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", + "[ 7/4 ⇜ (59/32 → 119/64) ⇝ 2/1 | note:D4 gain:0.12 clip:1 s:piano release:0.1 pan:0.537037037037037 ]", + "[ 7/4 ⇜ (59/32 → 119/64) ⇝ 2/1 | note:Eb4 gain:0.12 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", + "[ 7/4 ⇜ (59/32 → 119/64) ⇝ 2/1 | note:G4 gain:0.12 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", + "[ 7/4 ⇜ (119/64 → 15/8) | note:G4 gain:0.29857864376268933 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", + "[ 7/4 ⇜ (119/64 → 15/8) | note:Bb4 gain:0.29857864376268933 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", + "[ 7/4 ⇜ (119/64 → 15/8) ⇝ 2/1 | note:Bb3 gain:0.14928932188134467 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", + "[ 7/4 ⇜ (119/64 → 15/8) ⇝ 2/1 | note:D4 gain:0.14928932188134467 clip:1 s:piano release:0.1 pan:0.537037037037037 ]", + "[ 7/4 ⇜ (119/64 → 15/8) ⇝ 2/1 | note:Eb4 gain:0.14928932188134467 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", + "[ 7/4 ⇜ (119/64 → 15/8) ⇝ 2/1 | note:G4 gain:0.14928932188134467 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", + "[ 7/4 ⇜ (15/8 → 121/64) ⇝ 2/1 | note:Bb3 gain:0.21999999999999892 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", + "[ 7/4 ⇜ (15/8 → 121/64) ⇝ 2/1 | note:D4 gain:0.21999999999999892 clip:1 s:piano release:0.1 pan:0.537037037037037 ]", + "[ 7/4 ⇜ (15/8 → 121/64) ⇝ 2/1 | note:Eb4 gain:0.21999999999999892 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", + "[ 7/4 ⇜ (15/8 → 121/64) ⇝ 2/1 | note:G4 gain:0.21999999999999892 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", + "[ 7/4 ⇜ (121/64 → 61/32) ⇝ 2/1 | note:Bb3 gain:0.2907106781186548 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", + "[ 7/4 ⇜ (121/64 → 61/32) ⇝ 2/1 | note:D4 gain:0.2907106781186548 clip:1 s:piano release:0.1 pan:0.537037037037037 ]", + "[ 7/4 ⇜ (121/64 → 61/32) ⇝ 2/1 | note:Eb4 gain:0.2907106781186548 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", + "[ 7/4 ⇜ (121/64 → 61/32) ⇝ 2/1 | note:G4 gain:0.2907106781186548 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", + "[ 7/4 ⇜ (61/32 → 123/64) ⇝ 2/1 | note:Bb3 gain:0.32000000000000006 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", + "[ 7/4 ⇜ (61/32 → 123/64) ⇝ 2/1 | note:D4 gain:0.32000000000000006 clip:1 s:piano release:0.1 pan:0.537037037037037 ]", + "[ 7/4 ⇜ (61/32 → 123/64) ⇝ 2/1 | note:Eb4 gain:0.32000000000000006 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", + "[ 7/4 ⇜ (61/32 → 123/64) ⇝ 2/1 | note:G4 gain:0.32000000000000006 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", + "[ 7/4 ⇜ (123/64 → 31/16) ⇝ 2/1 | note:Bb3 gain:0.2907106781186551 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", + "[ 7/4 ⇜ (123/64 → 31/16) ⇝ 2/1 | note:D4 gain:0.2907106781186551 clip:1 s:piano release:0.1 pan:0.537037037037037 ]", + "[ 7/4 ⇜ (123/64 → 31/16) ⇝ 2/1 | note:Eb4 gain:0.2907106781186551 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", + "[ 7/4 ⇜ (123/64 → 31/16) ⇝ 2/1 | note:G4 gain:0.2907106781186551 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", + "[ 7/4 ⇜ (31/16 → 125/64) ⇝ 2/1 | note:Bb3 gain:0.22000000000000075 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", + "[ 7/4 ⇜ (31/16 → 125/64) ⇝ 2/1 | note:D4 gain:0.22000000000000075 clip:1 s:piano release:0.1 pan:0.537037037037037 ]", + "[ 7/4 ⇜ (31/16 → 125/64) ⇝ 2/1 | note:Eb4 gain:0.22000000000000075 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", + "[ 7/4 ⇜ (31/16 → 125/64) ⇝ 2/1 | note:G4 gain:0.22000000000000075 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", + "[ 7/4 ⇜ (125/64 → 63/32) ⇝ 2/1 | note:Bb3 gain:0.14928932188134594 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", + "[ 7/4 ⇜ (125/64 → 63/32) ⇝ 2/1 | note:D4 gain:0.14928932188134594 clip:1 s:piano release:0.1 pan:0.537037037037037 ]", + "[ 7/4 ⇜ (125/64 → 63/32) ⇝ 2/1 | note:Eb4 gain:0.14928932188134594 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", + "[ 7/4 ⇜ (125/64 → 63/32) ⇝ 2/1 | note:G4 gain:0.14928932188134594 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", + "[ 7/4 ⇜ (63/32 → 127/64) ⇝ 2/1 | note:Bb3 gain:0.12 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", + "[ 7/4 ⇜ (63/32 → 127/64) ⇝ 2/1 | note:D4 gain:0.12 clip:1 s:piano release:0.1 pan:0.537037037037037 ]", + "[ 7/4 ⇜ (63/32 → 127/64) ⇝ 2/1 | note:Eb4 gain:0.12 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", + "[ 7/4 ⇜ (63/32 → 127/64) ⇝ 2/1 | note:G4 gain:0.12 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", + "[ 7/4 ⇜ (127/64 → 2/1) | note:Bb3 gain:0.14928932188134517 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", + "[ 7/4 ⇜ (127/64 → 2/1) | note:D4 gain:0.14928932188134517 clip:1 s:piano release:0.1 pan:0.537037037037037 ]", + "[ 7/4 ⇜ (127/64 → 2/1) | note:Eb4 gain:0.14928932188134517 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", + "[ 7/4 ⇜ (127/64 → 2/1) | note:G4 gain:0.14928932188134517 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", + "[ (2/1 → 129/64) ⇝ 9/4 | note:F2 gain:0.4399999999999993 clip:1 s:piano release:0.1 pan:0.4398148148148148 ]", + "[ 2/1 ⇜ (129/64 → 65/32) ⇝ 9/4 | note:F2 gain:0.5814213562373086 clip:1 s:piano release:0.1 pan:0.4398148148148148 ]", + "[ 2/1 ⇜ (65/32 → 131/64) ⇝ 9/4 | note:F2 gain:0.6400000000000001 clip:1 s:piano release:0.1 pan:0.4398148148148148 ]", + "[ (57/28 → 131/64) ⇝ 16/7 | note:70 gain:0.06400000000000002 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", + "[ (57/28 → 131/64) ⇝ 16/7 | note:74 gain:0.06400000000000002 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", + "[ (57/28 → 131/64) ⇝ 16/7 | note:75 gain:0.06400000000000002 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", + "[ (57/28 → 131/64) ⇝ 16/7 | note:79 gain:0.06400000000000002 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", + "[ 2/1 ⇜ (131/64 → 33/16) ⇝ 9/4 | note:F2 gain:0.5814213562373092 clip:1 s:piano release:0.1 pan:0.4398148148148148 ]", + "[ 57/28 ⇜ (131/64 → 33/16) ⇝ 16/7 | note:70 gain:0.05814213562373092 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", + "[ 57/28 ⇜ (131/64 → 33/16) ⇝ 16/7 | note:74 gain:0.05814213562373092 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", + "[ 57/28 ⇜ (131/64 → 33/16) ⇝ 16/7 | note:75 gain:0.05814213562373092 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", + "[ 57/28 ⇜ (131/64 → 33/16) ⇝ 16/7 | note:79 gain:0.05814213562373092 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", + "[ 2/1 ⇜ (33/16 → 133/64) ⇝ 9/4 | note:F2 gain:0.44000000000000006 clip:1 s:piano release:0.1 pan:0.4398148148148148 ]", + "[ 57/28 ⇜ (33/16 → 133/64) ⇝ 16/7 | note:70 gain:0.04400000000000001 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", + "[ 57/28 ⇜ (33/16 → 133/64) ⇝ 16/7 | note:74 gain:0.04400000000000001 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", + "[ 57/28 ⇜ (33/16 → 133/64) ⇝ 16/7 | note:75 gain:0.04400000000000001 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", + "[ 57/28 ⇜ (33/16 → 133/64) ⇝ 16/7 | note:79 gain:0.04400000000000001 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", + "[ 2/1 ⇜ (133/64 → 67/32) ⇝ 9/4 | note:F2 gain:0.2985786437626909 clip:1 s:piano release:0.1 pan:0.4398148148148148 ]", + "[ 57/28 ⇜ (133/64 → 67/32) ⇝ 16/7 | note:70 gain:0.02985786437626909 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", + "[ 57/28 ⇜ (133/64 → 67/32) ⇝ 16/7 | note:74 gain:0.02985786437626909 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", + "[ 57/28 ⇜ (133/64 → 67/32) ⇝ 16/7 | note:75 gain:0.02985786437626909 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", + "[ 57/28 ⇜ (133/64 → 67/32) ⇝ 16/7 | note:79 gain:0.02985786437626909 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", + "[ 2/1 ⇜ (67/32 → 135/64) ⇝ 9/4 | note:F2 gain:0.24 clip:1 s:piano release:0.1 pan:0.4398148148148148 ]", + "[ 57/28 ⇜ (67/32 → 135/64) ⇝ 16/7 | note:70 gain:0.024 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", + "[ 57/28 ⇜ (67/32 → 135/64) ⇝ 16/7 | note:74 gain:0.024 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", + "[ 57/28 ⇜ (67/32 → 135/64) ⇝ 16/7 | note:75 gain:0.024 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", + "[ 57/28 ⇜ (67/32 → 135/64) ⇝ 16/7 | note:79 gain:0.024 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", + "[ 2/1 ⇜ (135/64 → 17/8) ⇝ 9/4 | note:F2 gain:0.29857864376268933 clip:1 s:piano release:0.1 pan:0.4398148148148148 ]", + "[ 57/28 ⇜ (135/64 → 17/8) ⇝ 16/7 | note:70 gain:0.029857864376268934 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", + "[ 57/28 ⇜ (135/64 → 17/8) ⇝ 16/7 | note:74 gain:0.029857864376268934 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", + "[ 57/28 ⇜ (135/64 → 17/8) ⇝ 16/7 | note:75 gain:0.029857864376268934 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", + "[ 57/28 ⇜ (135/64 → 17/8) ⇝ 16/7 | note:79 gain:0.029857864376268934 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", + "[ 2/1 ⇜ (17/8 → 137/64) ⇝ 9/4 | note:F2 gain:0.4400000000000006 clip:1 s:piano release:0.1 pan:0.4398148148148148 ]", + "[ 57/28 ⇜ (17/8 → 137/64) ⇝ 16/7 | note:70 gain:0.04400000000000007 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", + "[ 57/28 ⇜ (17/8 → 137/64) ⇝ 16/7 | note:74 gain:0.04400000000000007 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", + "[ 57/28 ⇜ (17/8 → 137/64) ⇝ 16/7 | note:75 gain:0.04400000000000007 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", + "[ 57/28 ⇜ (17/8 → 137/64) ⇝ 16/7 | note:79 gain:0.04400000000000007 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", + "[ (17/8 → 137/64) ⇝ 9/4 | note:F4 gain:0.4400000000000006 clip:1 s:piano release:0.1 pan:0.5509259259259259 ]", + "[ (17/8 → 137/64) ⇝ 9/4 | note:Ab4 gain:0.4400000000000006 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", + "[ 2/1 ⇜ (137/64 → 69/32) ⇝ 9/4 | note:F2 gain:0.5814213562373095 clip:1 s:piano release:0.1 pan:0.4398148148148148 ]", + "[ 57/28 ⇜ (137/64 → 69/32) ⇝ 16/7 | note:70 gain:0.05814213562373095 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", + "[ 57/28 ⇜ (137/64 → 69/32) ⇝ 16/7 | note:74 gain:0.05814213562373095 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", + "[ 57/28 ⇜ (137/64 → 69/32) ⇝ 16/7 | note:75 gain:0.05814213562373095 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", + "[ 57/28 ⇜ (137/64 → 69/32) ⇝ 16/7 | note:79 gain:0.05814213562373095 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", + "[ 17/8 ⇜ (137/64 → 69/32) ⇝ 9/4 | note:F4 gain:0.5814213562373095 clip:1 s:piano release:0.1 pan:0.5509259259259259 ]", + "[ 17/8 ⇜ (137/64 → 69/32) ⇝ 9/4 | note:Ab4 gain:0.5814213562373095 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", + "[ 2/1 ⇜ (69/32 → 139/64) ⇝ 9/4 | note:F2 gain:0.6400000000000001 clip:1 s:piano release:0.1 pan:0.4398148148148148 ]", + "[ 57/28 ⇜ (69/32 → 139/64) ⇝ 16/7 | note:70 gain:0.06400000000000002 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", + "[ 57/28 ⇜ (69/32 → 139/64) ⇝ 16/7 | note:74 gain:0.06400000000000002 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", + "[ 57/28 ⇜ (69/32 → 139/64) ⇝ 16/7 | note:75 gain:0.06400000000000002 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", + "[ 57/28 ⇜ (69/32 → 139/64) ⇝ 16/7 | note:79 gain:0.06400000000000002 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", + "[ 17/8 ⇜ (69/32 → 139/64) ⇝ 9/4 | note:F4 gain:0.6400000000000001 clip:1 s:piano release:0.1 pan:0.5509259259259259 ]", + "[ 17/8 ⇜ (69/32 → 139/64) ⇝ 9/4 | note:Ab4 gain:0.6400000000000001 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", + "[ 2/1 ⇜ (139/64 → 35/16) ⇝ 9/4 | note:F2 gain:0.5814213562373102 clip:1 s:piano release:0.1 pan:0.4398148148148148 ]", + "[ 57/28 ⇜ (139/64 → 35/16) ⇝ 16/7 | note:70 gain:0.05814213562373102 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", + "[ 57/28 ⇜ (139/64 → 35/16) ⇝ 16/7 | note:74 gain:0.05814213562373102 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", + "[ 57/28 ⇜ (139/64 → 35/16) ⇝ 16/7 | note:75 gain:0.05814213562373102 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", + "[ 57/28 ⇜ (139/64 → 35/16) ⇝ 16/7 | note:79 gain:0.05814213562373102 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", + "[ 17/8 ⇜ (139/64 → 35/16) ⇝ 9/4 | note:F4 gain:0.5814213562373102 clip:1 s:piano release:0.1 pan:0.5509259259259259 ]", + "[ 17/8 ⇜ (139/64 → 35/16) ⇝ 9/4 | note:Ab4 gain:0.5814213562373102 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", + "[ 2/1 ⇜ (35/16 → 141/64) ⇝ 9/4 | note:F2 gain:0.44000000000000156 clip:1 s:piano release:0.1 pan:0.4398148148148148 ]", + "[ 57/28 ⇜ (35/16 → 141/64) ⇝ 16/7 | note:70 gain:0.04400000000000016 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", + "[ 57/28 ⇜ (35/16 → 141/64) ⇝ 16/7 | note:74 gain:0.04400000000000016 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", + "[ 57/28 ⇜ (35/16 → 141/64) ⇝ 16/7 | note:75 gain:0.04400000000000016 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", + "[ 57/28 ⇜ (35/16 → 141/64) ⇝ 16/7 | note:79 gain:0.04400000000000016 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", + "[ 17/8 ⇜ (35/16 → 141/64) ⇝ 9/4 | note:F4 gain:0.44000000000000156 clip:1 s:piano release:0.1 pan:0.5509259259259259 ]", + "[ 17/8 ⇜ (35/16 → 141/64) ⇝ 9/4 | note:Ab4 gain:0.44000000000000156 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", + "[ 2/1 ⇜ (141/64 → 71/32) ⇝ 9/4 | note:F2 gain:0.298578643762692 clip:1 s:piano release:0.1 pan:0.4398148148148148 ]", + "[ 57/28 ⇜ (141/64 → 71/32) ⇝ 16/7 | note:70 gain:0.0298578643762692 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", + "[ 57/28 ⇜ (141/64 → 71/32) ⇝ 16/7 | note:74 gain:0.0298578643762692 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", + "[ 57/28 ⇜ (141/64 → 71/32) ⇝ 16/7 | note:75 gain:0.0298578643762692 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", + "[ 57/28 ⇜ (141/64 → 71/32) ⇝ 16/7 | note:79 gain:0.0298578643762692 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", + "[ 17/8 ⇜ (141/64 → 71/32) ⇝ 9/4 | note:F4 gain:0.298578643762692 clip:1 s:piano release:0.1 pan:0.5509259259259259 ]", + "[ 17/8 ⇜ (141/64 → 71/32) ⇝ 9/4 | note:Ab4 gain:0.298578643762692 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", + "[ 2/1 ⇜ (71/32 → 143/64) ⇝ 9/4 | note:F2 gain:0.24 clip:1 s:piano release:0.1 pan:0.4398148148148148 ]", + "[ 57/28 ⇜ (71/32 → 143/64) ⇝ 16/7 | note:70 gain:0.024 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", + "[ 57/28 ⇜ (71/32 → 143/64) ⇝ 16/7 | note:74 gain:0.024 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", + "[ 57/28 ⇜ (71/32 → 143/64) ⇝ 16/7 | note:75 gain:0.024 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", + "[ 57/28 ⇜ (71/32 → 143/64) ⇝ 16/7 | note:79 gain:0.024 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", + "[ 17/8 ⇜ (71/32 → 143/64) ⇝ 9/4 | note:F4 gain:0.24 clip:1 s:piano release:0.1 pan:0.5509259259259259 ]", + "[ 17/8 ⇜ (71/32 → 143/64) ⇝ 9/4 | note:Ab4 gain:0.24 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", + "[ 2/1 ⇜ (143/64 → 9/4) | note:F2 gain:0.2985786437626902 clip:1 s:piano release:0.1 pan:0.4398148148148148 ]", + "[ 57/28 ⇜ (143/64 → 9/4) ⇝ 16/7 | note:70 gain:0.029857864376269024 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", + "[ 57/28 ⇜ (143/64 → 9/4) ⇝ 16/7 | note:74 gain:0.029857864376269024 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", + "[ 57/28 ⇜ (143/64 → 9/4) ⇝ 16/7 | note:75 gain:0.029857864376269024 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", + "[ 57/28 ⇜ (143/64 → 9/4) ⇝ 16/7 | note:79 gain:0.029857864376269024 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", + "[ 17/8 ⇜ (143/64 → 9/4) | note:F4 gain:0.2985786437626902 clip:1 s:piano release:0.1 pan:0.5509259259259259 ]", + "[ 17/8 ⇜ (143/64 → 9/4) | note:Ab4 gain:0.2985786437626902 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", + "[ 57/28 ⇜ (9/4 → 145/64) ⇝ 16/7 | note:70 gain:0.04399999999999992 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", + "[ 57/28 ⇜ (9/4 → 145/64) ⇝ 16/7 | note:74 gain:0.04399999999999992 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", + "[ 57/28 ⇜ (9/4 → 145/64) ⇝ 16/7 | note:75 gain:0.04399999999999992 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", + "[ 57/28 ⇜ (9/4 → 145/64) ⇝ 16/7 | note:79 gain:0.04399999999999992 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", + "[ 57/28 ⇜ (145/64 → 73/32) ⇝ 16/7 | note:70 gain:0.05814213562373086 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", + "[ 57/28 ⇜ (145/64 → 73/32) ⇝ 16/7 | note:74 gain:0.05814213562373086 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", + "[ 57/28 ⇜ (145/64 → 73/32) ⇝ 16/7 | note:75 gain:0.05814213562373086 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", + "[ 57/28 ⇜ (145/64 → 73/32) ⇝ 16/7 | note:79 gain:0.05814213562373086 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", + "[ 57/28 ⇜ (73/32 → 16/7) | note:70 gain:0.06400000000000002 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", + "[ 57/28 ⇜ (73/32 → 16/7) | note:74 gain:0.06400000000000002 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", + "[ 57/28 ⇜ (73/32 → 16/7) | note:75 gain:0.06400000000000002 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", + "[ 57/28 ⇜ (73/32 → 16/7) | note:79 gain:0.06400000000000002 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", + "[ (5/2 → 161/64) ⇝ 21/8 | note:C5 gain:0.439999999999999 clip:1 s:piano release:0.1 pan:0.5833333333333333 ]", + "[ (5/2 → 161/64) ⇝ 21/8 | note:Eb5 gain:0.439999999999999 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", + "[ (5/2 → 161/64) ⇝ 11/4 | note:Eb4 gain:0.2199999999999995 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", + "[ (5/2 → 161/64) ⇝ 11/4 | note:G4 gain:0.2199999999999995 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", + "[ (5/2 → 161/64) ⇝ 11/4 | note:Ab4 gain:0.2199999999999995 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", + "[ (5/2 → 161/64) ⇝ 11/4 | note:C5 gain:0.2199999999999995 clip:1 s:piano release:0.1 pan:0.5833333333333333 ]", + "[ (5/2 → 161/64) ⇝ 11/4 | note:F2 gain:0.439999999999999 clip:1 s:piano release:0.1 pan:0.4398148148148148 ]", + "[ 5/2 ⇜ (161/64 → 81/32) ⇝ 21/8 | note:C5 gain:0.5814213562373084 clip:1 s:piano release:0.1 pan:0.5833333333333333 ]", + "[ 5/2 ⇜ (161/64 → 81/32) ⇝ 21/8 | note:Eb5 gain:0.5814213562373084 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", + "[ 5/2 ⇜ (161/64 → 81/32) ⇝ 11/4 | note:Eb4 gain:0.2907106781186542 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", + "[ 5/2 ⇜ (161/64 → 81/32) ⇝ 11/4 | note:G4 gain:0.2907106781186542 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", + "[ 5/2 ⇜ (161/64 → 81/32) ⇝ 11/4 | note:Ab4 gain:0.2907106781186542 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", + "[ 5/2 ⇜ (161/64 → 81/32) ⇝ 11/4 | note:C5 gain:0.2907106781186542 clip:1 s:piano release:0.1 pan:0.5833333333333333 ]", + "[ 5/2 ⇜ (161/64 → 81/32) ⇝ 11/4 | note:F2 gain:0.5814213562373084 clip:1 s:piano release:0.1 pan:0.4398148148148148 ]", + "[ 5/2 ⇜ (81/32 → 163/64) ⇝ 21/8 | note:C5 gain:0.6400000000000001 clip:1 s:piano release:0.1 pan:0.5833333333333333 ]", + "[ 5/2 ⇜ (81/32 → 163/64) ⇝ 21/8 | note:Eb5 gain:0.6400000000000001 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", + "[ 5/2 ⇜ (81/32 → 163/64) ⇝ 11/4 | note:Eb4 gain:0.32000000000000006 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", + "[ 5/2 ⇜ (81/32 → 163/64) ⇝ 11/4 | note:G4 gain:0.32000000000000006 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", + "[ 5/2 ⇜ (81/32 → 163/64) ⇝ 11/4 | note:Ab4 gain:0.32000000000000006 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", + "[ 5/2 ⇜ (81/32 → 163/64) ⇝ 11/4 | note:C5 gain:0.32000000000000006 clip:1 s:piano release:0.1 pan:0.5833333333333333 ]", + "[ 5/2 ⇜ (81/32 → 163/64) ⇝ 11/4 | note:F2 gain:0.6400000000000001 clip:1 s:piano release:0.1 pan:0.4398148148148148 ]", + "[ 5/2 ⇜ (163/64 → 41/16) ⇝ 21/8 | note:C5 gain:0.5814213562373114 clip:1 s:piano release:0.1 pan:0.5833333333333333 ]", + "[ 5/2 ⇜ (163/64 → 41/16) ⇝ 21/8 | note:Eb5 gain:0.5814213562373114 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", + "[ 5/2 ⇜ (163/64 → 41/16) ⇝ 11/4 | note:Eb4 gain:0.2907106781186557 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", + "[ 5/2 ⇜ (163/64 → 41/16) ⇝ 11/4 | note:G4 gain:0.2907106781186557 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", + "[ 5/2 ⇜ (163/64 → 41/16) ⇝ 11/4 | note:Ab4 gain:0.2907106781186557 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", + "[ 5/2 ⇜ (163/64 → 41/16) ⇝ 11/4 | note:C5 gain:0.2907106781186557 clip:1 s:piano release:0.1 pan:0.5833333333333333 ]", + "[ 5/2 ⇜ (163/64 → 41/16) ⇝ 11/4 | note:F2 gain:0.5814213562373114 clip:1 s:piano release:0.1 pan:0.4398148148148148 ]", + "[ 5/2 ⇜ (41/16 → 165/64) ⇝ 21/8 | note:C5 gain:0.44000000000000317 clip:1 s:piano release:0.1 pan:0.5833333333333333 ]", + "[ 5/2 ⇜ (41/16 → 165/64) ⇝ 21/8 | note:Eb5 gain:0.44000000000000317 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", + "[ 5/2 ⇜ (41/16 → 165/64) ⇝ 11/4 | note:Eb4 gain:0.22000000000000158 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", + "[ 5/2 ⇜ (41/16 → 165/64) ⇝ 11/4 | note:G4 gain:0.22000000000000158 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", + "[ 5/2 ⇜ (41/16 → 165/64) ⇝ 11/4 | note:Ab4 gain:0.22000000000000158 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", + "[ 5/2 ⇜ (41/16 → 165/64) ⇝ 11/4 | note:C5 gain:0.22000000000000158 clip:1 s:piano release:0.1 pan:0.5833333333333333 ]", + "[ 5/2 ⇜ (41/16 → 165/64) ⇝ 11/4 | note:F2 gain:0.44000000000000317 clip:1 s:piano release:0.1 pan:0.4398148148148148 ]", + "[ 5/2 ⇜ (165/64 → 83/32) ⇝ 21/8 | note:C5 gain:0.2985786437626931 clip:1 s:piano release:0.1 pan:0.5833333333333333 ]", + "[ 5/2 ⇜ (165/64 → 83/32) ⇝ 21/8 | note:Eb5 gain:0.2985786437626931 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", + "[ 5/2 ⇜ (165/64 → 83/32) ⇝ 11/4 | note:Eb4 gain:0.14928932188134655 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", + "[ 5/2 ⇜ (165/64 → 83/32) ⇝ 11/4 | note:G4 gain:0.14928932188134655 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", + "[ 5/2 ⇜ (165/64 → 83/32) ⇝ 11/4 | note:Ab4 gain:0.14928932188134655 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", + "[ 5/2 ⇜ (165/64 → 83/32) ⇝ 11/4 | note:C5 gain:0.14928932188134655 clip:1 s:piano release:0.1 pan:0.5833333333333333 ]", + "[ 5/2 ⇜ (165/64 → 83/32) ⇝ 11/4 | note:F2 gain:0.2985786437626931 clip:1 s:piano release:0.1 pan:0.4398148148148148 ]", + "[ 5/2 ⇜ (83/32 → 167/64) ⇝ 21/8 | note:C5 gain:0.24 clip:1 s:piano release:0.1 pan:0.5833333333333333 ]", + "[ 5/2 ⇜ (83/32 → 167/64) ⇝ 21/8 | note:Eb5 gain:0.24 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", + "[ 5/2 ⇜ (83/32 → 167/64) ⇝ 11/4 | note:Eb4 gain:0.12 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", + "[ 5/2 ⇜ (83/32 → 167/64) ⇝ 11/4 | note:G4 gain:0.12 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", + "[ 5/2 ⇜ (83/32 → 167/64) ⇝ 11/4 | note:Ab4 gain:0.12 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", + "[ 5/2 ⇜ (83/32 → 167/64) ⇝ 11/4 | note:C5 gain:0.12 clip:1 s:piano release:0.1 pan:0.5833333333333333 ]", + "[ 5/2 ⇜ (83/32 → 167/64) ⇝ 11/4 | note:F2 gain:0.24 clip:1 s:piano release:0.1 pan:0.4398148148148148 ]", + "[ 5/2 ⇜ (167/64 → 21/8) | note:C5 gain:0.29857864376269116 clip:1 s:piano release:0.1 pan:0.5833333333333333 ]", + "[ 5/2 ⇜ (167/64 → 21/8) | note:Eb5 gain:0.29857864376269116 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", + "[ 5/2 ⇜ (167/64 → 21/8) ⇝ 11/4 | note:Eb4 gain:0.14928932188134558 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", + "[ 5/2 ⇜ (167/64 → 21/8) ⇝ 11/4 | note:G4 gain:0.14928932188134558 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", + "[ 5/2 ⇜ (167/64 → 21/8) ⇝ 11/4 | note:Ab4 gain:0.14928932188134558 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", + "[ 5/2 ⇜ (167/64 → 21/8) ⇝ 11/4 | note:C5 gain:0.14928932188134558 clip:1 s:piano release:0.1 pan:0.5833333333333333 ]", + "[ 5/2 ⇜ (167/64 → 21/8) ⇝ 11/4 | note:F2 gain:0.29857864376269116 clip:1 s:piano release:0.1 pan:0.4398148148148148 ]", + "[ 5/2 ⇜ (21/8 → 169/64) ⇝ 11/4 | note:Eb4 gain:0.2200000000000002 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", + "[ 5/2 ⇜ (21/8 → 169/64) ⇝ 11/4 | note:G4 gain:0.2200000000000002 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", + "[ 5/2 ⇜ (21/8 → 169/64) ⇝ 11/4 | note:Ab4 gain:0.2200000000000002 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", + "[ 5/2 ⇜ (21/8 → 169/64) ⇝ 11/4 | note:C5 gain:0.2200000000000002 clip:1 s:piano release:0.1 pan:0.5833333333333333 ]", + "[ 5/2 ⇜ (21/8 → 169/64) ⇝ 11/4 | note:F2 gain:0.4400000000000004 clip:1 s:piano release:0.1 pan:0.4398148148148148 ]", + "[ 5/2 ⇜ (169/64 → 85/32) ⇝ 11/4 | note:Eb4 gain:0.29071067811865475 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", + "[ 5/2 ⇜ (169/64 → 85/32) ⇝ 11/4 | note:G4 gain:0.29071067811865475 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", + "[ 5/2 ⇜ (169/64 → 85/32) ⇝ 11/4 | note:Ab4 gain:0.29071067811865475 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", + "[ 5/2 ⇜ (169/64 → 85/32) ⇝ 11/4 | note:C5 gain:0.29071067811865475 clip:1 s:piano release:0.1 pan:0.5833333333333333 ]", + "[ 5/2 ⇜ (169/64 → 85/32) ⇝ 11/4 | note:F2 gain:0.5814213562373095 clip:1 s:piano release:0.1 pan:0.4398148148148148 ]", + "[ 5/2 ⇜ (85/32 → 171/64) ⇝ 11/4 | note:Eb4 gain:0.32000000000000006 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", + "[ 5/2 ⇜ (85/32 → 171/64) ⇝ 11/4 | note:G4 gain:0.32000000000000006 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", + "[ 5/2 ⇜ (85/32 → 171/64) ⇝ 11/4 | note:Ab4 gain:0.32000000000000006 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", + "[ 5/2 ⇜ (85/32 → 171/64) ⇝ 11/4 | note:C5 gain:0.32000000000000006 clip:1 s:piano release:0.1 pan:0.5833333333333333 ]", + "[ 5/2 ⇜ (85/32 → 171/64) ⇝ 11/4 | note:F2 gain:0.6400000000000001 clip:1 s:piano release:0.1 pan:0.4398148148148148 ]", + "[ 5/2 ⇜ (171/64 → 43/16) ⇝ 11/4 | note:Eb4 gain:0.2907106781186552 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", + "[ 5/2 ⇜ (171/64 → 43/16) ⇝ 11/4 | note:G4 gain:0.2907106781186552 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", + "[ 5/2 ⇜ (171/64 → 43/16) ⇝ 11/4 | note:Ab4 gain:0.2907106781186552 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", + "[ 5/2 ⇜ (171/64 → 43/16) ⇝ 11/4 | note:C5 gain:0.2907106781186552 clip:1 s:piano release:0.1 pan:0.5833333333333333 ]", + "[ 5/2 ⇜ (171/64 → 43/16) ⇝ 11/4 | note:F2 gain:0.5814213562373104 clip:1 s:piano release:0.1 pan:0.4398148148148148 ]", + "[ 5/2 ⇜ (43/16 → 173/64) ⇝ 11/4 | note:Eb4 gain:0.22000000000000092 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", + "[ 5/2 ⇜ (43/16 → 173/64) ⇝ 11/4 | note:G4 gain:0.22000000000000092 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", + "[ 5/2 ⇜ (43/16 → 173/64) ⇝ 11/4 | note:Ab4 gain:0.22000000000000092 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", + "[ 5/2 ⇜ (43/16 → 173/64) ⇝ 11/4 | note:C5 gain:0.22000000000000092 clip:1 s:piano release:0.1 pan:0.5833333333333333 ]", + "[ 5/2 ⇜ (43/16 → 173/64) ⇝ 11/4 | note:F2 gain:0.44000000000000183 clip:1 s:piano release:0.1 pan:0.4398148148148148 ]", + "[ 5/2 ⇜ (173/64 → 87/32) ⇝ 11/4 | note:Eb4 gain:0.14928932188134608 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", + "[ 5/2 ⇜ (173/64 → 87/32) ⇝ 11/4 | note:G4 gain:0.14928932188134608 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", + "[ 5/2 ⇜ (173/64 → 87/32) ⇝ 11/4 | note:Ab4 gain:0.14928932188134608 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", + "[ 5/2 ⇜ (173/64 → 87/32) ⇝ 11/4 | note:C5 gain:0.14928932188134608 clip:1 s:piano release:0.1 pan:0.5833333333333333 ]", + "[ 5/2 ⇜ (173/64 → 87/32) ⇝ 11/4 | note:F2 gain:0.29857864376269216 clip:1 s:piano release:0.1 pan:0.4398148148148148 ]", + "[ 5/2 ⇜ (87/32 → 175/64) ⇝ 11/4 | note:Eb4 gain:0.12 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", + "[ 5/2 ⇜ (87/32 → 175/64) ⇝ 11/4 | note:G4 gain:0.12 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", + "[ 5/2 ⇜ (87/32 → 175/64) ⇝ 11/4 | note:Ab4 gain:0.12 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", + "[ 5/2 ⇜ (87/32 → 175/64) ⇝ 11/4 | note:C5 gain:0.12 clip:1 s:piano release:0.1 pan:0.5833333333333333 ]", + "[ 5/2 ⇜ (87/32 → 175/64) ⇝ 11/4 | note:F2 gain:0.24 clip:1 s:piano release:0.1 pan:0.4398148148148148 ]", + "[ 5/2 ⇜ (175/64 → 11/4) | note:Eb4 gain:0.14928932188134406 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", + "[ 5/2 ⇜ (175/64 → 11/4) | note:G4 gain:0.14928932188134406 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", + "[ 5/2 ⇜ (175/64 → 11/4) | note:Ab4 gain:0.14928932188134406 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", + "[ 5/2 ⇜ (175/64 → 11/4) | note:C5 gain:0.14928932188134406 clip:1 s:piano release:0.1 pan:0.5833333333333333 ]", + "[ 5/2 ⇜ (175/64 → 11/4) | note:F2 gain:0.2985786437626881 clip:1 s:piano release:0.1 pan:0.4398148148148148 ]", + "[ (11/4 → 177/64) ⇝ 23/8 | note:F4 gain:0.43999999999999606 clip:1 s:piano release:0.1 pan:0.5509259259259259 ]", + "[ (11/4 → 177/64) ⇝ 23/8 | note:Ab4 gain:0.43999999999999606 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", + "[ 11/4 ⇜ (177/64 → 89/32) ⇝ 23/8 | note:F4 gain:0.5814213562373104 clip:1 s:piano release:0.1 pan:0.5509259259259259 ]", + "[ 11/4 ⇜ (177/64 → 89/32) ⇝ 23/8 | note:Ab4 gain:0.5814213562373104 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", + "[ 11/4 ⇜ (89/32 → 179/64) ⇝ 23/8 | note:F4 gain:0.6400000000000001 clip:1 s:piano release:0.1 pan:0.5509259259259259 ]", + "[ 11/4 ⇜ (89/32 → 179/64) ⇝ 23/8 | note:Ab4 gain:0.6400000000000001 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", + "[ (39/14 → 179/64) ⇝ 85/28 | note:75 gain:0.06400000000000002 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", + "[ (39/14 → 179/64) ⇝ 85/28 | note:79 gain:0.06400000000000002 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", + "[ (39/14 → 179/64) ⇝ 85/28 | note:80 gain:0.06400000000000002 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", + "[ (39/14 → 179/64) ⇝ 85/28 | note:84 gain:0.06400000000000002 clip:1 s:piano release:0.1 pan:0.6388888888888888 ]", + "[ 11/4 ⇜ (179/64 → 45/16) ⇝ 23/8 | note:F4 gain:0.5814213562373095 clip:1 s:piano release:0.1 pan:0.5509259259259259 ]", + "[ 11/4 ⇜ (179/64 → 45/16) ⇝ 23/8 | note:Ab4 gain:0.5814213562373095 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", + "[ 39/14 ⇜ (179/64 → 45/16) ⇝ 85/28 | note:75 gain:0.05814213562373095 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", + "[ 39/14 ⇜ (179/64 → 45/16) ⇝ 85/28 | note:79 gain:0.05814213562373095 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", + "[ 39/14 ⇜ (179/64 → 45/16) ⇝ 85/28 | note:80 gain:0.05814213562373095 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", + "[ 39/14 ⇜ (179/64 → 45/16) ⇝ 85/28 | note:84 gain:0.05814213562373095 clip:1 s:piano release:0.1 pan:0.6388888888888888 ]", + "[ 11/4 ⇜ (45/16 → 181/64) ⇝ 23/8 | note:F4 gain:0.4400000000000004 clip:1 s:piano release:0.1 pan:0.5509259259259259 ]", + "[ 11/4 ⇜ (45/16 → 181/64) ⇝ 23/8 | note:Ab4 gain:0.4400000000000004 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", + "[ 39/14 ⇜ (45/16 → 181/64) ⇝ 85/28 | note:75 gain:0.04400000000000004 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", + "[ 39/14 ⇜ (45/16 → 181/64) ⇝ 85/28 | note:79 gain:0.04400000000000004 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", + "[ 39/14 ⇜ (45/16 → 181/64) ⇝ 85/28 | note:80 gain:0.04400000000000004 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", + "[ 39/14 ⇜ (45/16 → 181/64) ⇝ 85/28 | note:84 gain:0.04400000000000004 clip:1 s:piano release:0.1 pan:0.6388888888888888 ]", + "[ 11/4 ⇜ (181/64 → 91/32) ⇝ 23/8 | note:F4 gain:0.29857864376269116 clip:1 s:piano release:0.1 pan:0.5509259259259259 ]", + "[ 11/4 ⇜ (181/64 → 91/32) ⇝ 23/8 | note:Ab4 gain:0.29857864376269116 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", + "[ 39/14 ⇜ (181/64 → 91/32) ⇝ 85/28 | note:75 gain:0.029857864376269118 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", + "[ 39/14 ⇜ (181/64 → 91/32) ⇝ 85/28 | note:79 gain:0.029857864376269118 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", + "[ 39/14 ⇜ (181/64 → 91/32) ⇝ 85/28 | note:80 gain:0.029857864376269118 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", + "[ 39/14 ⇜ (181/64 → 91/32) ⇝ 85/28 | note:84 gain:0.029857864376269118 clip:1 s:piano release:0.1 pan:0.6388888888888888 ]", + "[ 11/4 ⇜ (91/32 → 183/64) ⇝ 23/8 | note:F4 gain:0.24 clip:1 s:piano release:0.1 pan:0.5509259259259259 ]", + "[ 11/4 ⇜ (91/32 → 183/64) ⇝ 23/8 | note:Ab4 gain:0.24 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", + "[ 39/14 ⇜ (91/32 → 183/64) ⇝ 85/28 | note:75 gain:0.024 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", + "[ 39/14 ⇜ (91/32 → 183/64) ⇝ 85/28 | note:79 gain:0.024 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", + "[ 39/14 ⇜ (91/32 → 183/64) ⇝ 85/28 | note:80 gain:0.024 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", + "[ 39/14 ⇜ (91/32 → 183/64) ⇝ 85/28 | note:84 gain:0.024 clip:1 s:piano release:0.1 pan:0.6388888888888888 ]", + "[ 11/4 ⇜ (183/64 → 23/8) | note:F4 gain:0.2985786437626891 clip:1 s:piano release:0.1 pan:0.5509259259259259 ]", + "[ 11/4 ⇜ (183/64 → 23/8) | note:Ab4 gain:0.2985786437626891 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", + "[ 39/14 ⇜ (183/64 → 23/8) ⇝ 85/28 | note:75 gain:0.029857864376268913 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", + "[ 39/14 ⇜ (183/64 → 23/8) ⇝ 85/28 | note:79 gain:0.029857864376268913 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", + "[ 39/14 ⇜ (183/64 → 23/8) ⇝ 85/28 | note:80 gain:0.029857864376268913 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", + "[ 39/14 ⇜ (183/64 → 23/8) ⇝ 85/28 | note:84 gain:0.029857864376268913 clip:1 s:piano release:0.1 pan:0.6388888888888888 ]", + "[ 39/14 ⇜ (23/8 → 185/64) ⇝ 85/28 | note:75 gain:0.043999999999999755 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", + "[ 39/14 ⇜ (23/8 → 185/64) ⇝ 85/28 | note:79 gain:0.043999999999999755 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", + "[ 39/14 ⇜ (23/8 → 185/64) ⇝ 85/28 | note:80 gain:0.043999999999999755 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", + "[ 39/14 ⇜ (23/8 → 185/64) ⇝ 85/28 | note:84 gain:0.043999999999999755 clip:1 s:piano release:0.1 pan:0.6388888888888888 ]", + "[ 39/14 ⇜ (185/64 → 93/32) ⇝ 85/28 | note:75 gain:0.05814213562373073 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", + "[ 39/14 ⇜ (185/64 → 93/32) ⇝ 85/28 | note:79 gain:0.05814213562373073 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", + "[ 39/14 ⇜ (185/64 → 93/32) ⇝ 85/28 | note:80 gain:0.05814213562373073 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", + "[ 39/14 ⇜ (185/64 → 93/32) ⇝ 85/28 | note:84 gain:0.05814213562373073 clip:1 s:piano release:0.1 pan:0.6388888888888888 ]", + "[ 39/14 ⇜ (93/32 → 187/64) ⇝ 85/28 | note:75 gain:0.06400000000000002 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", + "[ 39/14 ⇜ (93/32 → 187/64) ⇝ 85/28 | note:79 gain:0.06400000000000002 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", + "[ 39/14 ⇜ (93/32 → 187/64) ⇝ 85/28 | note:80 gain:0.06400000000000002 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", + "[ 39/14 ⇜ (93/32 → 187/64) ⇝ 85/28 | note:84 gain:0.06400000000000002 clip:1 s:piano release:0.1 pan:0.6388888888888888 ]", + "[ 39/14 ⇜ (187/64 → 47/16) ⇝ 85/28 | note:75 gain:0.05814213562373084 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", + "[ 39/14 ⇜ (187/64 → 47/16) ⇝ 85/28 | note:79 gain:0.05814213562373084 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", + "[ 39/14 ⇜ (187/64 → 47/16) ⇝ 85/28 | note:80 gain:0.05814213562373084 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", + "[ 39/14 ⇜ (187/64 → 47/16) ⇝ 85/28 | note:84 gain:0.05814213562373084 clip:1 s:piano release:0.1 pan:0.6388888888888888 ]", + "[ 39/14 ⇜ (47/16 → 189/64) ⇝ 85/28 | note:75 gain:0.0439999999999999 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", + "[ 39/14 ⇜ (47/16 → 189/64) ⇝ 85/28 | note:79 gain:0.0439999999999999 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", + "[ 39/14 ⇜ (47/16 → 189/64) ⇝ 85/28 | note:80 gain:0.0439999999999999 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", + "[ 39/14 ⇜ (47/16 → 189/64) ⇝ 85/28 | note:84 gain:0.0439999999999999 clip:1 s:piano release:0.1 pan:0.6388888888888888 ]", + "[ 39/14 ⇜ (189/64 → 95/32) ⇝ 85/28 | note:75 gain:0.029857864376269024 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", + "[ 39/14 ⇜ (189/64 → 95/32) ⇝ 85/28 | note:79 gain:0.029857864376269024 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", + "[ 39/14 ⇜ (189/64 → 95/32) ⇝ 85/28 | note:80 gain:0.029857864376269024 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", + "[ 39/14 ⇜ (189/64 → 95/32) ⇝ 85/28 | note:84 gain:0.029857864376269024 clip:1 s:piano release:0.1 pan:0.6388888888888888 ]", + "[ 39/14 ⇜ (95/32 → 191/64) ⇝ 85/28 | note:75 gain:0.024 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", + "[ 39/14 ⇜ (95/32 → 191/64) ⇝ 85/28 | note:79 gain:0.024 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", + "[ 39/14 ⇜ (95/32 → 191/64) ⇝ 85/28 | note:80 gain:0.024 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", + "[ 39/14 ⇜ (95/32 → 191/64) ⇝ 85/28 | note:84 gain:0.024 clip:1 s:piano release:0.1 pan:0.6388888888888888 ]", + "[ 39/14 ⇜ (191/64 → 3/1) ⇝ 85/28 | note:75 gain:0.029857864376269 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", + "[ 39/14 ⇜ (191/64 → 3/1) ⇝ 85/28 | note:79 gain:0.029857864376269 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", + "[ 39/14 ⇜ (191/64 → 3/1) ⇝ 85/28 | note:80 gain:0.029857864376269 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", + "[ 39/14 ⇜ (191/64 → 3/1) ⇝ 85/28 | note:84 gain:0.029857864376269 clip:1 s:piano release:0.1 pan:0.6388888888888888 ]", + "[ 39/14 ⇜ (3/1 → 193/64) ⇝ 85/28 | note:75 gain:0.043999999999999886 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", + "[ 39/14 ⇜ (3/1 → 193/64) ⇝ 85/28 | note:79 gain:0.043999999999999886 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", + "[ 39/14 ⇜ (3/1 → 193/64) ⇝ 85/28 | note:80 gain:0.043999999999999886 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", + "[ 39/14 ⇜ (3/1 → 193/64) ⇝ 85/28 | note:84 gain:0.043999999999999886 clip:1 s:piano release:0.1 pan:0.6388888888888888 ]", + "[ (3/1 → 193/64) ⇝ 13/4 | note:F2 gain:0.43999999999999884 clip:1 s:piano release:0.1 pan:0.4398148148148148 ]", + "[ 39/14 ⇜ (193/64 → 97/32) ⇝ 85/28 | note:75 gain:0.05814213562373083 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", + "[ 39/14 ⇜ (193/64 → 97/32) ⇝ 85/28 | note:79 gain:0.05814213562373083 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", + "[ 39/14 ⇜ (193/64 → 97/32) ⇝ 85/28 | note:80 gain:0.05814213562373083 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", + "[ 39/14 ⇜ (193/64 → 97/32) ⇝ 85/28 | note:84 gain:0.05814213562373083 clip:1 s:piano release:0.1 pan:0.6388888888888888 ]", + "[ 3/1 ⇜ (193/64 → 97/32) ⇝ 13/4 | note:F2 gain:0.5814213562373083 clip:1 s:piano release:0.1 pan:0.4398148148148148 ]", + "[ 39/14 ⇜ (97/32 → 85/28) | note:75 gain:0.06400000000000002 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", + "[ 39/14 ⇜ (97/32 → 85/28) | note:79 gain:0.06400000000000002 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", + "[ 39/14 ⇜ (97/32 → 85/28) | note:80 gain:0.06400000000000002 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", + "[ 39/14 ⇜ (97/32 → 85/28) | note:84 gain:0.06400000000000002 clip:1 s:piano release:0.1 pan:0.6388888888888888 ]", + "[ 3/1 ⇜ (97/32 → 195/64) ⇝ 13/4 | note:F2 gain:0.6400000000000001 clip:1 s:piano release:0.1 pan:0.4398148148148148 ]", + "[ 3/1 ⇜ (195/64 → 49/16) ⇝ 13/4 | note:F2 gain:0.5814213562373115 clip:1 s:piano release:0.1 pan:0.4398148148148148 ]", + "[ 3/1 ⇜ (49/16 → 197/64) ⇝ 13/4 | note:F2 gain:0.44000000000000333 clip:1 s:piano release:0.1 pan:0.4398148148148148 ]", + "[ 3/1 ⇜ (197/64 → 99/32) ⇝ 13/4 | note:F2 gain:0.2985786437626932 clip:1 s:piano release:0.1 pan:0.4398148148148148 ]", + "[ 3/1 ⇜ (99/32 → 199/64) ⇝ 13/4 | note:F2 gain:0.24 clip:1 s:piano release:0.1 pan:0.4398148148148148 ]", + "[ 3/1 ⇜ (199/64 → 25/8) ⇝ 13/4 | note:F2 gain:0.298578643762691 clip:1 s:piano release:0.1 pan:0.4398148148148148 ]", + "[ 3/1 ⇜ (25/8 → 201/64) ⇝ 13/4 | note:F2 gain:0.4400000000000002 clip:1 s:piano release:0.1 pan:0.4398148148148148 ]", + "[ (25/8 → 201/64) ⇝ 13/4 | note:F4 gain:0.4400000000000002 clip:1 s:piano release:0.1 pan:0.5509259259259259 ]", + "[ (25/8 → 201/64) ⇝ 13/4 | note:Ab4 gain:0.4400000000000002 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", + "[ 3/1 ⇜ (201/64 → 101/32) ⇝ 13/4 | note:F2 gain:0.5814213562373093 clip:1 s:piano release:0.1 pan:0.4398148148148148 ]", + "[ 25/8 ⇜ (201/64 → 101/32) ⇝ 13/4 | note:F4 gain:0.5814213562373093 clip:1 s:piano release:0.1 pan:0.5509259259259259 ]", + "[ 25/8 ⇜ (201/64 → 101/32) ⇝ 13/4 | note:Ab4 gain:0.5814213562373093 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", + "[ 3/1 ⇜ (101/32 → 203/64) ⇝ 13/4 | note:F2 gain:0.6400000000000001 clip:1 s:piano release:0.1 pan:0.4398148148148148 ]", + "[ 25/8 ⇜ (101/32 → 203/64) ⇝ 13/4 | note:F4 gain:0.6400000000000001 clip:1 s:piano release:0.1 pan:0.5509259259259259 ]", + "[ 25/8 ⇜ (101/32 → 203/64) ⇝ 13/4 | note:Ab4 gain:0.6400000000000001 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", + "[ 3/1 ⇜ (203/64 → 51/16) ⇝ 13/4 | note:F2 gain:0.5814213562373105 clip:1 s:piano release:0.1 pan:0.4398148148148148 ]", + "[ 25/8 ⇜ (203/64 → 51/16) ⇝ 13/4 | note:F4 gain:0.5814213562373105 clip:1 s:piano release:0.1 pan:0.5509259259259259 ]", + "[ 25/8 ⇜ (203/64 → 51/16) ⇝ 13/4 | note:Ab4 gain:0.5814213562373105 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", + "[ 3/1 ⇜ (51/16 → 205/64) ⇝ 13/4 | note:F2 gain:0.440000000000002 clip:1 s:piano release:0.1 pan:0.4398148148148148 ]", + "[ 25/8 ⇜ (51/16 → 205/64) ⇝ 13/4 | note:F4 gain:0.440000000000002 clip:1 s:piano release:0.1 pan:0.5509259259259259 ]", + "[ 25/8 ⇜ (51/16 → 205/64) ⇝ 13/4 | note:Ab4 gain:0.440000000000002 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", + "[ 3/1 ⇜ (205/64 → 103/32) ⇝ 13/4 | note:F2 gain:0.2985786437626922 clip:1 s:piano release:0.1 pan:0.4398148148148148 ]", + "[ 25/8 ⇜ (205/64 → 103/32) ⇝ 13/4 | note:F4 gain:0.2985786437626922 clip:1 s:piano release:0.1 pan:0.5509259259259259 ]", + "[ 25/8 ⇜ (205/64 → 103/32) ⇝ 13/4 | note:Ab4 gain:0.2985786437626922 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", + "[ 3/1 ⇜ (103/32 → 207/64) ⇝ 13/4 | note:F2 gain:0.24 clip:1 s:piano release:0.1 pan:0.4398148148148148 ]", + "[ 25/8 ⇜ (103/32 → 207/64) ⇝ 13/4 | note:F4 gain:0.24 clip:1 s:piano release:0.1 pan:0.5509259259259259 ]", + "[ 25/8 ⇜ (103/32 → 207/64) ⇝ 13/4 | note:Ab4 gain:0.24 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", + "[ 3/1 ⇜ (207/64 → 13/4) | note:F2 gain:0.298578643762688 clip:1 s:piano release:0.1 pan:0.4398148148148148 ]", + "[ 25/8 ⇜ (207/64 → 13/4) | note:F4 gain:0.298578643762688 clip:1 s:piano release:0.1 pan:0.5509259259259259 ]", + "[ 25/8 ⇜ (207/64 → 13/4) | note:Ab4 gain:0.298578643762688 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", + "[ (13/4 → 209/64) ⇝ 7/2 | note:Eb4 gain:0.22000000000000078 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", + "[ (13/4 → 209/64) ⇝ 7/2 | note:G4 gain:0.22000000000000078 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", + "[ (13/4 → 209/64) ⇝ 7/2 | note:Ab4 gain:0.22000000000000078 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", + "[ (13/4 → 209/64) ⇝ 7/2 | note:C5 gain:0.22000000000000078 clip:1 s:piano release:0.1 pan:0.5833333333333333 ]", + "[ 13/4 ⇜ (209/64 → 105/32) ⇝ 7/2 | note:Eb4 gain:0.2907106781186551 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", + "[ 13/4 ⇜ (209/64 → 105/32) ⇝ 7/2 | note:G4 gain:0.2907106781186551 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", + "[ 13/4 ⇜ (209/64 → 105/32) ⇝ 7/2 | note:Ab4 gain:0.2907106781186551 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", + "[ 13/4 ⇜ (209/64 → 105/32) ⇝ 7/2 | note:C5 gain:0.2907106781186551 clip:1 s:piano release:0.1 pan:0.5833333333333333 ]", + "[ 13/4 ⇜ (105/32 → 211/64) ⇝ 7/2 | note:Eb4 gain:0.32000000000000006 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", + "[ 13/4 ⇜ (105/32 → 211/64) ⇝ 7/2 | note:G4 gain:0.32000000000000006 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", + "[ 13/4 ⇜ (105/32 → 211/64) ⇝ 7/2 | note:Ab4 gain:0.32000000000000006 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", + "[ 13/4 ⇜ (105/32 → 211/64) ⇝ 7/2 | note:C5 gain:0.32000000000000006 clip:1 s:piano release:0.1 pan:0.5833333333333333 ]", + "[ 13/4 ⇜ (211/64 → 53/16) ⇝ 7/2 | note:Eb4 gain:0.29071067811865475 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", + "[ 13/4 ⇜ (211/64 → 53/16) ⇝ 7/2 | note:G4 gain:0.29071067811865475 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", + "[ 13/4 ⇜ (211/64 → 53/16) ⇝ 7/2 | note:Ab4 gain:0.29071067811865475 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", + "[ 13/4 ⇜ (211/64 → 53/16) ⇝ 7/2 | note:C5 gain:0.29071067811865475 clip:1 s:piano release:0.1 pan:0.5833333333333333 ]", + "[ 13/4 ⇜ (53/16 → 213/64) ⇝ 7/2 | note:Eb4 gain:0.2200000000000003 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", + "[ 13/4 ⇜ (53/16 → 213/64) ⇝ 7/2 | note:G4 gain:0.2200000000000003 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", + "[ 13/4 ⇜ (53/16 → 213/64) ⇝ 7/2 | note:Ab4 gain:0.2200000000000003 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", + "[ 13/4 ⇜ (53/16 → 213/64) ⇝ 7/2 | note:C5 gain:0.2200000000000003 clip:1 s:piano release:0.1 pan:0.5833333333333333 ]", + "[ 13/4 ⇜ (213/64 → 107/32) ⇝ 7/2 | note:Eb4 gain:0.14928932188134564 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", + "[ 13/4 ⇜ (213/64 → 107/32) ⇝ 7/2 | note:G4 gain:0.14928932188134564 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", + "[ 13/4 ⇜ (213/64 → 107/32) ⇝ 7/2 | note:Ab4 gain:0.14928932188134564 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", + "[ 13/4 ⇜ (213/64 → 107/32) ⇝ 7/2 | note:C5 gain:0.14928932188134564 clip:1 s:piano release:0.1 pan:0.5833333333333333 ]", + "[ 13/4 ⇜ (107/32 → 215/64) ⇝ 7/2 | note:Eb4 gain:0.12 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", + "[ 13/4 ⇜ (107/32 → 215/64) ⇝ 7/2 | note:G4 gain:0.12 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", + "[ 13/4 ⇜ (107/32 → 215/64) ⇝ 7/2 | note:Ab4 gain:0.12 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", + "[ 13/4 ⇜ (107/32 → 215/64) ⇝ 7/2 | note:C5 gain:0.12 clip:1 s:piano release:0.1 pan:0.5833333333333333 ]", + "[ 13/4 ⇜ (215/64 → 27/8) ⇝ 7/2 | note:Eb4 gain:0.14928932188134447 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", + "[ 13/4 ⇜ (215/64 → 27/8) ⇝ 7/2 | note:G4 gain:0.14928932188134447 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", + "[ 13/4 ⇜ (215/64 → 27/8) ⇝ 7/2 | note:Ab4 gain:0.14928932188134447 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", + "[ 13/4 ⇜ (215/64 → 27/8) ⇝ 7/2 | note:C5 gain:0.14928932188134447 clip:1 s:piano release:0.1 pan:0.5833333333333333 ]", + "[ 13/4 ⇜ (27/8 → 217/64) ⇝ 7/2 | note:Eb4 gain:0.2199999999999986 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", + "[ 13/4 ⇜ (27/8 → 217/64) ⇝ 7/2 | note:G4 gain:0.2199999999999986 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", + "[ 13/4 ⇜ (27/8 → 217/64) ⇝ 7/2 | note:Ab4 gain:0.2199999999999986 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", + "[ 13/4 ⇜ (27/8 → 217/64) ⇝ 7/2 | note:C5 gain:0.2199999999999986 clip:1 s:piano release:0.1 pan:0.5833333333333333 ]", + "[ 13/4 ⇜ (217/64 → 109/32) ⇝ 7/2 | note:Eb4 gain:0.2907106781186536 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", + "[ 13/4 ⇜ (217/64 → 109/32) ⇝ 7/2 | note:G4 gain:0.2907106781186536 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", + "[ 13/4 ⇜ (217/64 → 109/32) ⇝ 7/2 | note:Ab4 gain:0.2907106781186536 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", + "[ 13/4 ⇜ (217/64 → 109/32) ⇝ 7/2 | note:C5 gain:0.2907106781186536 clip:1 s:piano release:0.1 pan:0.5833333333333333 ]", + "[ 13/4 ⇜ (109/32 → 219/64) ⇝ 7/2 | note:Eb4 gain:0.32000000000000006 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", + "[ 13/4 ⇜ (109/32 → 219/64) ⇝ 7/2 | note:G4 gain:0.32000000000000006 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", + "[ 13/4 ⇜ (109/32 → 219/64) ⇝ 7/2 | note:Ab4 gain:0.32000000000000006 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", + "[ 13/4 ⇜ (109/32 → 219/64) ⇝ 7/2 | note:C5 gain:0.32000000000000006 clip:1 s:piano release:0.1 pan:0.5833333333333333 ]", + "[ 13/4 ⇜ (219/64 → 55/16) ⇝ 7/2 | note:Eb4 gain:0.2907106781186543 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", + "[ 13/4 ⇜ (219/64 → 55/16) ⇝ 7/2 | note:G4 gain:0.2907106781186543 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", + "[ 13/4 ⇜ (219/64 → 55/16) ⇝ 7/2 | note:Ab4 gain:0.2907106781186543 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", + "[ 13/4 ⇜ (219/64 → 55/16) ⇝ 7/2 | note:C5 gain:0.2907106781186543 clip:1 s:piano release:0.1 pan:0.5833333333333333 ]", + "[ 13/4 ⇜ (55/16 → 221/64) ⇝ 7/2 | note:Eb4 gain:0.21999999999999964 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", + "[ 13/4 ⇜ (55/16 → 221/64) ⇝ 7/2 | note:G4 gain:0.21999999999999964 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", + "[ 13/4 ⇜ (55/16 → 221/64) ⇝ 7/2 | note:Ab4 gain:0.21999999999999964 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", + "[ 13/4 ⇜ (55/16 → 221/64) ⇝ 7/2 | note:C5 gain:0.21999999999999964 clip:1 s:piano release:0.1 pan:0.5833333333333333 ]", + "[ 13/4 ⇜ (221/64 → 111/32) ⇝ 7/2 | note:Eb4 gain:0.14928932188134517 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", + "[ 13/4 ⇜ (221/64 → 111/32) ⇝ 7/2 | note:G4 gain:0.14928932188134517 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", + "[ 13/4 ⇜ (221/64 → 111/32) ⇝ 7/2 | note:Ab4 gain:0.14928932188134517 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", + "[ 13/4 ⇜ (221/64 → 111/32) ⇝ 7/2 | note:C5 gain:0.14928932188134517 clip:1 s:piano release:0.1 pan:0.5833333333333333 ]", + "[ 13/4 ⇜ (111/32 → 223/64) ⇝ 7/2 | note:Eb4 gain:0.12 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", + "[ 13/4 ⇜ (111/32 → 223/64) ⇝ 7/2 | note:G4 gain:0.12 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", + "[ 13/4 ⇜ (111/32 → 223/64) ⇝ 7/2 | note:Ab4 gain:0.12 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", + "[ 13/4 ⇜ (111/32 → 223/64) ⇝ 7/2 | note:C5 gain:0.12 clip:1 s:piano release:0.1 pan:0.5833333333333333 ]", + "[ 13/4 ⇜ (223/64 → 7/2) | note:Eb4 gain:0.14928932188134497 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", + "[ 13/4 ⇜ (223/64 → 7/2) | note:G4 gain:0.14928932188134497 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", + "[ 13/4 ⇜ (223/64 → 7/2) | note:Ab4 gain:0.14928932188134497 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", + "[ 13/4 ⇜ (223/64 → 7/2) | note:C5 gain:0.14928932188134497 clip:1 s:piano release:0.1 pan:0.5833333333333333 ]", + "[ (7/2 → 225/64) ⇝ 29/8 | note:C5 gain:0.4399999999999986 clip:1 s:piano release:0.1 pan:0.5833333333333333 ]", + "[ (7/2 → 225/64) ⇝ 29/8 | note:Eb5 gain:0.4399999999999986 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", + "[ (7/2 → 225/64) ⇝ 15/4 | note:F2 gain:0.4399999999999986 clip:1 s:piano release:0.1 pan:0.4398148148148148 ]", + "[ 7/2 ⇜ (225/64 → 113/32) ⇝ 29/8 | note:C5 gain:0.5814213562373082 clip:1 s:piano release:0.1 pan:0.5833333333333333 ]", + "[ 7/2 ⇜ (225/64 → 113/32) ⇝ 29/8 | note:Eb5 gain:0.5814213562373082 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", + "[ 7/2 ⇜ (225/64 → 113/32) ⇝ 15/4 | note:F2 gain:0.5814213562373082 clip:1 s:piano release:0.1 pan:0.4398148148148148 ]", + "[ 7/2 ⇜ (113/32 → 227/64) ⇝ 29/8 | note:C5 gain:0.6400000000000001 clip:1 s:piano release:0.1 pan:0.5833333333333333 ]", + "[ 7/2 ⇜ (113/32 → 227/64) ⇝ 29/8 | note:Eb5 gain:0.6400000000000001 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", + "[ 7/2 ⇜ (113/32 → 227/64) ⇝ 15/4 | note:F2 gain:0.6400000000000001 clip:1 s:piano release:0.1 pan:0.4398148148148148 ]", + "[ (99/28 → 227/64) ⇝ 53/14 | note:75 gain:0.06400000000000002 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", + "[ (99/28 → 227/64) ⇝ 53/14 | note:79 gain:0.06400000000000002 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", + "[ (99/28 → 227/64) ⇝ 53/14 | note:80 gain:0.06400000000000002 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", + "[ (99/28 → 227/64) ⇝ 53/14 | note:84 gain:0.06400000000000002 clip:1 s:piano release:0.1 pan:0.6388888888888888 ]", + "[ 7/2 ⇜ (227/64 → 57/16) ⇝ 29/8 | note:C5 gain:0.5814213562373116 clip:1 s:piano release:0.1 pan:0.5833333333333333 ]", + "[ 7/2 ⇜ (227/64 → 57/16) ⇝ 29/8 | note:Eb5 gain:0.5814213562373116 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", + "[ 7/2 ⇜ (227/64 → 57/16) ⇝ 15/4 | note:F2 gain:0.5814213562373116 clip:1 s:piano release:0.1 pan:0.4398148148148148 ]", + "[ 99/28 ⇜ (227/64 → 57/16) ⇝ 53/14 | note:75 gain:0.05814213562373116 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", + "[ 99/28 ⇜ (227/64 → 57/16) ⇝ 53/14 | note:79 gain:0.05814213562373116 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", + "[ 99/28 ⇜ (227/64 → 57/16) ⇝ 53/14 | note:80 gain:0.05814213562373116 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", + "[ 99/28 ⇜ (227/64 → 57/16) ⇝ 53/14 | note:84 gain:0.05814213562373116 clip:1 s:piano release:0.1 pan:0.6388888888888888 ]", + "[ 7/2 ⇜ (57/16 → 229/64) ⇝ 29/8 | note:C5 gain:0.4400000000000035 clip:1 s:piano release:0.1 pan:0.5833333333333333 ]", + "[ 7/2 ⇜ (57/16 → 229/64) ⇝ 29/8 | note:Eb5 gain:0.4400000000000035 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", + "[ 7/2 ⇜ (57/16 → 229/64) ⇝ 15/4 | note:F2 gain:0.4400000000000035 clip:1 s:piano release:0.1 pan:0.4398148148148148 ]", + "[ 99/28 ⇜ (57/16 → 229/64) ⇝ 53/14 | note:75 gain:0.04400000000000035 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", + "[ 99/28 ⇜ (57/16 → 229/64) ⇝ 53/14 | note:79 gain:0.04400000000000035 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", + "[ 99/28 ⇜ (57/16 → 229/64) ⇝ 53/14 | note:80 gain:0.04400000000000035 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", + "[ 99/28 ⇜ (57/16 → 229/64) ⇝ 53/14 | note:84 gain:0.04400000000000035 clip:1 s:piano release:0.1 pan:0.6388888888888888 ]", + "[ 7/2 ⇜ (229/64 → 115/32) ⇝ 29/8 | note:C5 gain:0.2985786437626934 clip:1 s:piano release:0.1 pan:0.5833333333333333 ]", + "[ 7/2 ⇜ (229/64 → 115/32) ⇝ 29/8 | note:Eb5 gain:0.2985786437626934 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", + "[ 7/2 ⇜ (229/64 → 115/32) ⇝ 15/4 | note:F2 gain:0.2985786437626934 clip:1 s:piano release:0.1 pan:0.4398148148148148 ]", + "[ 99/28 ⇜ (229/64 → 115/32) ⇝ 53/14 | note:75 gain:0.02985786437626934 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", + "[ 99/28 ⇜ (229/64 → 115/32) ⇝ 53/14 | note:79 gain:0.02985786437626934 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", + "[ 99/28 ⇜ (229/64 → 115/32) ⇝ 53/14 | note:80 gain:0.02985786437626934 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", + "[ 99/28 ⇜ (229/64 → 115/32) ⇝ 53/14 | note:84 gain:0.02985786437626934 clip:1 s:piano release:0.1 pan:0.6388888888888888 ]", + "[ 7/2 ⇜ (115/32 → 231/64) ⇝ 29/8 | note:C5 gain:0.24 clip:1 s:piano release:0.1 pan:0.5833333333333333 ]", + "[ 7/2 ⇜ (115/32 → 231/64) ⇝ 29/8 | note:Eb5 gain:0.24 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", + "[ 7/2 ⇜ (115/32 → 231/64) ⇝ 15/4 | note:F2 gain:0.24 clip:1 s:piano release:0.1 pan:0.4398148148148148 ]", + "[ 99/28 ⇜ (115/32 → 231/64) ⇝ 53/14 | note:75 gain:0.024 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", + "[ 99/28 ⇜ (115/32 → 231/64) ⇝ 53/14 | note:79 gain:0.024 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", + "[ 99/28 ⇜ (115/32 → 231/64) ⇝ 53/14 | note:80 gain:0.024 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", + "[ 99/28 ⇜ (115/32 → 231/64) ⇝ 53/14 | note:84 gain:0.024 clip:1 s:piano release:0.1 pan:0.6388888888888888 ]", + "[ 7/2 ⇜ (231/64 → 29/8) | note:C5 gain:0.2985786437626909 clip:1 s:piano release:0.1 pan:0.5833333333333333 ]", + "[ 7/2 ⇜ (231/64 → 29/8) | note:Eb5 gain:0.2985786437626909 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", + "[ 7/2 ⇜ (231/64 → 29/8) ⇝ 15/4 | note:F2 gain:0.2985786437626909 clip:1 s:piano release:0.1 pan:0.4398148148148148 ]", + "[ 99/28 ⇜ (231/64 → 29/8) ⇝ 53/14 | note:75 gain:0.02985786437626909 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", + "[ 99/28 ⇜ (231/64 → 29/8) ⇝ 53/14 | note:79 gain:0.02985786437626909 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", + "[ 99/28 ⇜ (231/64 → 29/8) ⇝ 53/14 | note:80 gain:0.02985786437626909 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", + "[ 99/28 ⇜ (231/64 → 29/8) ⇝ 53/14 | note:84 gain:0.02985786437626909 clip:1 s:piano release:0.1 pan:0.6388888888888888 ]", + "[ 7/2 ⇜ (29/8 → 233/64) ⇝ 15/4 | note:F2 gain:0.44000000000000006 clip:1 s:piano release:0.1 pan:0.4398148148148148 ]", + "[ 99/28 ⇜ (29/8 → 233/64) ⇝ 53/14 | note:75 gain:0.04400000000000001 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", + "[ 99/28 ⇜ (29/8 → 233/64) ⇝ 53/14 | note:79 gain:0.04400000000000001 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", + "[ 99/28 ⇜ (29/8 → 233/64) ⇝ 53/14 | note:80 gain:0.04400000000000001 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", + "[ 99/28 ⇜ (29/8 → 233/64) ⇝ 53/14 | note:84 gain:0.04400000000000001 clip:1 s:piano release:0.1 pan:0.6388888888888888 ]", + "[ 7/2 ⇜ (233/64 → 117/32) ⇝ 15/4 | note:F2 gain:0.5814213562373091 clip:1 s:piano release:0.1 pan:0.4398148148148148 ]", + "[ 99/28 ⇜ (233/64 → 117/32) ⇝ 53/14 | note:75 gain:0.05814213562373091 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", + "[ 99/28 ⇜ (233/64 → 117/32) ⇝ 53/14 | note:79 gain:0.05814213562373091 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", + "[ 99/28 ⇜ (233/64 → 117/32) ⇝ 53/14 | note:80 gain:0.05814213562373091 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", + "[ 99/28 ⇜ (233/64 → 117/32) ⇝ 53/14 | note:84 gain:0.05814213562373091 clip:1 s:piano release:0.1 pan:0.6388888888888888 ]", + "[ 7/2 ⇜ (117/32 → 235/64) ⇝ 15/4 | note:F2 gain:0.6400000000000001 clip:1 s:piano release:0.1 pan:0.4398148148148148 ]", + "[ 99/28 ⇜ (117/32 → 235/64) ⇝ 53/14 | note:75 gain:0.06400000000000002 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", + "[ 99/28 ⇜ (117/32 → 235/64) ⇝ 53/14 | note:79 gain:0.06400000000000002 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", + "[ 99/28 ⇜ (117/32 → 235/64) ⇝ 53/14 | note:80 gain:0.06400000000000002 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", + "[ 99/28 ⇜ (117/32 → 235/64) ⇝ 53/14 | note:84 gain:0.06400000000000002 clip:1 s:piano release:0.1 pan:0.6388888888888888 ]", + "[ 7/2 ⇜ (235/64 → 59/16) ⇝ 15/4 | note:F2 gain:0.5814213562373107 clip:1 s:piano release:0.1 pan:0.4398148148148148 ]", + "[ 99/28 ⇜ (235/64 → 59/16) ⇝ 53/14 | note:75 gain:0.05814213562373108 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", + "[ 99/28 ⇜ (235/64 → 59/16) ⇝ 53/14 | note:79 gain:0.05814213562373108 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", + "[ 99/28 ⇜ (235/64 → 59/16) ⇝ 53/14 | note:80 gain:0.05814213562373108 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", + "[ 99/28 ⇜ (235/64 → 59/16) ⇝ 53/14 | note:84 gain:0.05814213562373108 clip:1 s:piano release:0.1 pan:0.6388888888888888 ]", + "[ 7/2 ⇜ (59/16 → 237/64) ⇝ 15/4 | note:F2 gain:0.44000000000000217 clip:1 s:piano release:0.1 pan:0.4398148148148148 ]", + "[ 99/28 ⇜ (59/16 → 237/64) ⇝ 53/14 | note:75 gain:0.04400000000000022 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", + "[ 99/28 ⇜ (59/16 → 237/64) ⇝ 53/14 | note:79 gain:0.04400000000000022 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", + "[ 99/28 ⇜ (59/16 → 237/64) ⇝ 53/14 | note:80 gain:0.04400000000000022 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", + "[ 99/28 ⇜ (59/16 → 237/64) ⇝ 53/14 | note:84 gain:0.04400000000000022 clip:1 s:piano release:0.1 pan:0.6388888888888888 ]", + "[ 7/2 ⇜ (237/64 → 119/32) ⇝ 15/4 | note:F2 gain:0.29857864376269244 clip:1 s:piano release:0.1 pan:0.4398148148148148 ]", + "[ 99/28 ⇜ (237/64 → 119/32) ⇝ 53/14 | note:75 gain:0.029857864376269246 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", + "[ 99/28 ⇜ (237/64 → 119/32) ⇝ 53/14 | note:79 gain:0.029857864376269246 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", + "[ 99/28 ⇜ (237/64 → 119/32) ⇝ 53/14 | note:80 gain:0.029857864376269246 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", + "[ 99/28 ⇜ (237/64 → 119/32) ⇝ 53/14 | note:84 gain:0.029857864376269246 clip:1 s:piano release:0.1 pan:0.6388888888888888 ]", + "[ 7/2 ⇜ (119/32 → 239/64) ⇝ 15/4 | note:F2 gain:0.24 clip:1 s:piano release:0.1 pan:0.4398148148148148 ]", + "[ 99/28 ⇜ (119/32 → 239/64) ⇝ 53/14 | note:75 gain:0.024 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", + "[ 99/28 ⇜ (119/32 → 239/64) ⇝ 53/14 | note:79 gain:0.024 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", + "[ 99/28 ⇜ (119/32 → 239/64) ⇝ 53/14 | note:80 gain:0.024 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", + "[ 99/28 ⇜ (119/32 → 239/64) ⇝ 53/14 | note:84 gain:0.024 clip:1 s:piano release:0.1 pan:0.6388888888888888 ]", + "[ 7/2 ⇜ (239/64 → 15/4) | note:F2 gain:0.2985786437626878 clip:1 s:piano release:0.1 pan:0.4398148148148148 ]", + "[ 99/28 ⇜ (239/64 → 15/4) ⇝ 53/14 | note:75 gain:0.029857864376268778 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", + "[ 99/28 ⇜ (239/64 → 15/4) ⇝ 53/14 | note:79 gain:0.029857864376268778 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", + "[ 99/28 ⇜ (239/64 → 15/4) ⇝ 53/14 | note:80 gain:0.029857864376268778 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", + "[ 99/28 ⇜ (239/64 → 15/4) ⇝ 53/14 | note:84 gain:0.029857864376268778 clip:1 s:piano release:0.1 pan:0.6388888888888888 ]", + "[ 99/28 ⇜ (15/4 → 241/64) ⇝ 53/14 | note:75 gain:0.043999999999999574 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", + "[ 99/28 ⇜ (15/4 → 241/64) ⇝ 53/14 | note:79 gain:0.043999999999999574 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", + "[ 99/28 ⇜ (15/4 → 241/64) ⇝ 53/14 | note:80 gain:0.043999999999999574 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", + "[ 99/28 ⇜ (15/4 → 241/64) ⇝ 53/14 | note:84 gain:0.043999999999999574 clip:1 s:piano release:0.1 pan:0.6388888888888888 ]", + "[ (15/4 → 241/64) ⇝ 31/8 | note:C5 gain:0.43999999999999573 clip:1 s:piano release:0.1 pan:0.5833333333333333 ]", + "[ (15/4 → 241/64) ⇝ 31/8 | note:Eb5 gain:0.43999999999999573 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", + "[ (15/4 → 241/64) ⇝ 4/1 | note:Eb4 gain:0.21999999999999786 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", + "[ (15/4 → 241/64) ⇝ 4/1 | note:G4 gain:0.21999999999999786 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", + "[ (15/4 → 241/64) ⇝ 4/1 | note:Ab4 gain:0.21999999999999786 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", + "[ (15/4 → 241/64) ⇝ 4/1 | note:C5 gain:0.21999999999999786 clip:1 s:piano release:0.1 pan:0.5833333333333333 ]", + "[ 99/28 ⇜ (241/64 → 121/32) ⇝ 53/14 | note:75 gain:0.05814213562373102 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", + "[ 99/28 ⇜ (241/64 → 121/32) ⇝ 53/14 | note:79 gain:0.05814213562373102 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", + "[ 99/28 ⇜ (241/64 → 121/32) ⇝ 53/14 | note:80 gain:0.05814213562373102 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", + "[ 99/28 ⇜ (241/64 → 121/32) ⇝ 53/14 | note:84 gain:0.05814213562373102 clip:1 s:piano release:0.1 pan:0.6388888888888888 ]", + "[ 15/4 ⇜ (241/64 → 121/32) ⇝ 31/8 | note:C5 gain:0.5814213562373102 clip:1 s:piano release:0.1 pan:0.5833333333333333 ]", + "[ 15/4 ⇜ (241/64 → 121/32) ⇝ 31/8 | note:Eb5 gain:0.5814213562373102 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", + "[ 15/4 ⇜ (241/64 → 121/32) ⇝ 4/1 | note:Eb4 gain:0.2907106781186551 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", + "[ 15/4 ⇜ (241/64 → 121/32) ⇝ 4/1 | note:G4 gain:0.2907106781186551 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", + "[ 15/4 ⇜ (241/64 → 121/32) ⇝ 4/1 | note:Ab4 gain:0.2907106781186551 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", + "[ 15/4 ⇜ (241/64 → 121/32) ⇝ 4/1 | note:C5 gain:0.2907106781186551 clip:1 s:piano release:0.1 pan:0.5833333333333333 ]", + "[ 99/28 ⇜ (121/32 → 53/14) | note:75 gain:0.06400000000000002 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", + "[ 99/28 ⇜ (121/32 → 53/14) | note:79 gain:0.06400000000000002 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", + "[ 99/28 ⇜ (121/32 → 53/14) | note:80 gain:0.06400000000000002 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", + "[ 99/28 ⇜ (121/32 → 53/14) | note:84 gain:0.06400000000000002 clip:1 s:piano release:0.1 pan:0.6388888888888888 ]", + "[ 15/4 ⇜ (121/32 → 243/64) ⇝ 31/8 | note:C5 gain:0.6400000000000001 clip:1 s:piano release:0.1 pan:0.5833333333333333 ]", + "[ 15/4 ⇜ (121/32 → 243/64) ⇝ 31/8 | note:Eb5 gain:0.6400000000000001 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", + "[ 15/4 ⇜ (121/32 → 243/64) ⇝ 4/1 | note:Eb4 gain:0.32000000000000006 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", + "[ 15/4 ⇜ (121/32 → 243/64) ⇝ 4/1 | note:G4 gain:0.32000000000000006 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", + "[ 15/4 ⇜ (121/32 → 243/64) ⇝ 4/1 | note:Ab4 gain:0.32000000000000006 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", + "[ 15/4 ⇜ (121/32 → 243/64) ⇝ 4/1 | note:C5 gain:0.32000000000000006 clip:1 s:piano release:0.1 pan:0.5833333333333333 ]", + "[ 15/4 ⇜ (243/64 → 61/16) ⇝ 31/8 | note:C5 gain:0.5814213562373096 clip:1 s:piano release:0.1 pan:0.5833333333333333 ]", + "[ 15/4 ⇜ (243/64 → 61/16) ⇝ 31/8 | note:Eb5 gain:0.5814213562373096 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", + "[ 15/4 ⇜ (243/64 → 61/16) ⇝ 4/1 | note:Eb4 gain:0.2907106781186548 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", + "[ 15/4 ⇜ (243/64 → 61/16) ⇝ 4/1 | note:G4 gain:0.2907106781186548 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", + "[ 15/4 ⇜ (243/64 → 61/16) ⇝ 4/1 | note:Ab4 gain:0.2907106781186548 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", + "[ 15/4 ⇜ (243/64 → 61/16) ⇝ 4/1 | note:C5 gain:0.2907106781186548 clip:1 s:piano release:0.1 pan:0.5833333333333333 ]", + "[ 15/4 ⇜ (61/16 → 245/64) ⇝ 31/8 | note:C5 gain:0.4400000000000008 clip:1 s:piano release:0.1 pan:0.5833333333333333 ]", + "[ 15/4 ⇜ (61/16 → 245/64) ⇝ 31/8 | note:Eb5 gain:0.4400000000000008 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", + "[ 15/4 ⇜ (61/16 → 245/64) ⇝ 4/1 | note:Eb4 gain:0.2200000000000004 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", + "[ 15/4 ⇜ (61/16 → 245/64) ⇝ 4/1 | note:G4 gain:0.2200000000000004 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", + "[ 15/4 ⇜ (61/16 → 245/64) ⇝ 4/1 | note:Ab4 gain:0.2200000000000004 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", + "[ 15/4 ⇜ (61/16 → 245/64) ⇝ 4/1 | note:C5 gain:0.2200000000000004 clip:1 s:piano release:0.1 pan:0.5833333333333333 ]", + "[ 15/4 ⇜ (245/64 → 123/32) ⇝ 31/8 | note:C5 gain:0.29857864376269144 clip:1 s:piano release:0.1 pan:0.5833333333333333 ]", + "[ 15/4 ⇜ (245/64 → 123/32) ⇝ 31/8 | note:Eb5 gain:0.29857864376269144 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", + "[ 15/4 ⇜ (245/64 → 123/32) ⇝ 4/1 | note:Eb4 gain:0.14928932188134572 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", + "[ 15/4 ⇜ (245/64 → 123/32) ⇝ 4/1 | note:G4 gain:0.14928932188134572 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", + "[ 15/4 ⇜ (245/64 → 123/32) ⇝ 4/1 | note:Ab4 gain:0.14928932188134572 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", + "[ 15/4 ⇜ (245/64 → 123/32) ⇝ 4/1 | note:C5 gain:0.14928932188134572 clip:1 s:piano release:0.1 pan:0.5833333333333333 ]", + "[ 15/4 ⇜ (123/32 → 247/64) ⇝ 31/8 | note:C5 gain:0.24 clip:1 s:piano release:0.1 pan:0.5833333333333333 ]", + "[ 15/4 ⇜ (123/32 → 247/64) ⇝ 31/8 | note:Eb5 gain:0.24 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", + "[ 15/4 ⇜ (123/32 → 247/64) ⇝ 4/1 | note:Eb4 gain:0.12 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", + "[ 15/4 ⇜ (123/32 → 247/64) ⇝ 4/1 | note:G4 gain:0.12 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", + "[ 15/4 ⇜ (123/32 → 247/64) ⇝ 4/1 | note:Ab4 gain:0.12 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", + "[ 15/4 ⇜ (123/32 → 247/64) ⇝ 4/1 | note:C5 gain:0.12 clip:1 s:piano release:0.1 pan:0.5833333333333333 ]", + "[ 15/4 ⇜ (247/64 → 31/8) | note:C5 gain:0.2985786437626888 clip:1 s:piano release:0.1 pan:0.5833333333333333 ]", + "[ 15/4 ⇜ (247/64 → 31/8) | note:Eb5 gain:0.2985786437626888 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", + "[ 15/4 ⇜ (247/64 → 31/8) ⇝ 4/1 | note:Eb4 gain:0.1492893218813444 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", + "[ 15/4 ⇜ (247/64 → 31/8) ⇝ 4/1 | note:G4 gain:0.1492893218813444 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", + "[ 15/4 ⇜ (247/64 → 31/8) ⇝ 4/1 | note:Ab4 gain:0.1492893218813444 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", + "[ 15/4 ⇜ (247/64 → 31/8) ⇝ 4/1 | note:C5 gain:0.1492893218813444 clip:1 s:piano release:0.1 pan:0.5833333333333333 ]", + "[ 15/4 ⇜ (31/8 → 249/64) ⇝ 4/1 | note:Eb4 gain:0.21999999999999853 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", + "[ 15/4 ⇜ (31/8 → 249/64) ⇝ 4/1 | note:G4 gain:0.21999999999999853 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", + "[ 15/4 ⇜ (31/8 → 249/64) ⇝ 4/1 | note:Ab4 gain:0.21999999999999853 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", + "[ 15/4 ⇜ (31/8 → 249/64) ⇝ 4/1 | note:C5 gain:0.21999999999999853 clip:1 s:piano release:0.1 pan:0.5833333333333333 ]", + "[ 15/4 ⇜ (249/64 → 125/32) ⇝ 4/1 | note:Eb4 gain:0.29071067811865353 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", + "[ 15/4 ⇜ (249/64 → 125/32) ⇝ 4/1 | note:G4 gain:0.29071067811865353 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", + "[ 15/4 ⇜ (249/64 → 125/32) ⇝ 4/1 | note:Ab4 gain:0.29071067811865353 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", + "[ 15/4 ⇜ (249/64 → 125/32) ⇝ 4/1 | note:C5 gain:0.29071067811865353 clip:1 s:piano release:0.1 pan:0.5833333333333333 ]", + "[ 15/4 ⇜ (125/32 → 251/64) ⇝ 4/1 | note:Eb4 gain:0.32000000000000006 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", + "[ 15/4 ⇜ (125/32 → 251/64) ⇝ 4/1 | note:G4 gain:0.32000000000000006 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", + "[ 15/4 ⇜ (125/32 → 251/64) ⇝ 4/1 | note:Ab4 gain:0.32000000000000006 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", + "[ 15/4 ⇜ (125/32 → 251/64) ⇝ 4/1 | note:C5 gain:0.32000000000000006 clip:1 s:piano release:0.1 pan:0.5833333333333333 ]", + "[ 15/4 ⇜ (251/64 → 63/16) ⇝ 4/1 | note:Eb4 gain:0.29071067811865436 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", + "[ 15/4 ⇜ (251/64 → 63/16) ⇝ 4/1 | note:G4 gain:0.29071067811865436 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", + "[ 15/4 ⇜ (251/64 → 63/16) ⇝ 4/1 | note:Ab4 gain:0.29071067811865436 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", + "[ 15/4 ⇜ (251/64 → 63/16) ⇝ 4/1 | note:C5 gain:0.29071067811865436 clip:1 s:piano release:0.1 pan:0.5833333333333333 ]", + "[ 15/4 ⇜ (63/16 → 253/64) ⇝ 4/1 | note:Eb4 gain:0.21999999999999972 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", + "[ 15/4 ⇜ (63/16 → 253/64) ⇝ 4/1 | note:G4 gain:0.21999999999999972 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", + "[ 15/4 ⇜ (63/16 → 253/64) ⇝ 4/1 | note:Ab4 gain:0.21999999999999972 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", + "[ 15/4 ⇜ (63/16 → 253/64) ⇝ 4/1 | note:C5 gain:0.21999999999999972 clip:1 s:piano release:0.1 pan:0.5833333333333333 ]", + "[ 15/4 ⇜ (253/64 → 127/32) ⇝ 4/1 | note:Eb4 gain:0.14928932188134522 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", + "[ 15/4 ⇜ (253/64 → 127/32) ⇝ 4/1 | note:G4 gain:0.14928932188134522 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", + "[ 15/4 ⇜ (253/64 → 127/32) ⇝ 4/1 | note:Ab4 gain:0.14928932188134522 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", + "[ 15/4 ⇜ (253/64 → 127/32) ⇝ 4/1 | note:C5 gain:0.14928932188134522 clip:1 s:piano release:0.1 pan:0.5833333333333333 ]", + "[ 15/4 ⇜ (127/32 → 255/64) ⇝ 4/1 | note:Eb4 gain:0.12 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", + "[ 15/4 ⇜ (127/32 → 255/64) ⇝ 4/1 | note:G4 gain:0.12 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", + "[ 15/4 ⇜ (127/32 → 255/64) ⇝ 4/1 | note:Ab4 gain:0.12 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", + "[ 15/4 ⇜ (127/32 → 255/64) ⇝ 4/1 | note:C5 gain:0.12 clip:1 s:piano release:0.1 pan:0.5833333333333333 ]", + "[ 15/4 ⇜ (255/64 → 4/1) | note:Eb4 gain:0.1492893218813449 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", + "[ 15/4 ⇜ (255/64 → 4/1) | note:G4 gain:0.1492893218813449 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", + "[ 15/4 ⇜ (255/64 → 4/1) | note:Ab4 gain:0.1492893218813449 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", + "[ 15/4 ⇜ (255/64 → 4/1) | note:C5 gain:0.1492893218813449 clip:1 s:piano release:0.1 pan:0.5833333333333333 ]", + "[ (4/1 → 257/64) ⇝ 17/4 | note:G2 gain:0.43999999999999845 clip:1 s:piano release:0.1 pan:0.44907407407407407 ]", + "[ 4/1 ⇜ (257/64 → 129/32) ⇝ 17/4 | note:G2 gain:0.5814213562373081 clip:1 s:piano release:0.1 pan:0.44907407407407407 ]", + "[ 4/1 ⇜ (129/32 → 259/64) ⇝ 17/4 | note:G2 gain:0.6400000000000001 clip:1 s:piano release:0.1 pan:0.44907407407407407 ]", + "[ (113/28 → 259/64) ⇝ 30/7 | note:75 gain:0.06400000000000002 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", + "[ (113/28 → 259/64) ⇝ 30/7 | note:79 gain:0.06400000000000002 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", + "[ (113/28 → 259/64) ⇝ 30/7 | note:80 gain:0.06400000000000002 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", + "[ (113/28 → 259/64) ⇝ 30/7 | note:84 gain:0.06400000000000002 clip:1 s:piano release:0.1 pan:0.6388888888888888 ]", + "[ 4/1 ⇜ (259/64 → 65/16) ⇝ 17/4 | note:G2 gain:0.5814213562373117 clip:1 s:piano release:0.1 pan:0.44907407407407407 ]", + "[ 113/28 ⇜ (259/64 → 65/16) ⇝ 30/7 | note:75 gain:0.058142135623731175 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", + "[ 113/28 ⇜ (259/64 → 65/16) ⇝ 30/7 | note:79 gain:0.058142135623731175 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", + "[ 113/28 ⇜ (259/64 → 65/16) ⇝ 30/7 | note:80 gain:0.058142135623731175 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", + "[ 113/28 ⇜ (259/64 → 65/16) ⇝ 30/7 | note:84 gain:0.058142135623731175 clip:1 s:piano release:0.1 pan:0.6388888888888888 ]", + "[ 4/1 ⇜ (65/16 → 261/64) ⇝ 17/4 | note:G2 gain:0.4400000000000038 clip:1 s:piano release:0.1 pan:0.44907407407407407 ]", + "[ 113/28 ⇜ (65/16 → 261/64) ⇝ 30/7 | note:75 gain:0.04400000000000038 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", + "[ 113/28 ⇜ (65/16 → 261/64) ⇝ 30/7 | note:79 gain:0.04400000000000038 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", + "[ 113/28 ⇜ (65/16 → 261/64) ⇝ 30/7 | note:80 gain:0.04400000000000038 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", + "[ 113/28 ⇜ (65/16 → 261/64) ⇝ 30/7 | note:84 gain:0.04400000000000038 clip:1 s:piano release:0.1 pan:0.6388888888888888 ]", + "[ 4/1 ⇜ (261/64 → 131/32) ⇝ 17/4 | note:G2 gain:0.2985786437626935 clip:1 s:piano release:0.1 pan:0.44907407407407407 ]", + "[ 113/28 ⇜ (261/64 → 131/32) ⇝ 30/7 | note:75 gain:0.02985786437626935 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", + "[ 113/28 ⇜ (261/64 → 131/32) ⇝ 30/7 | note:79 gain:0.02985786437626935 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", + "[ 113/28 ⇜ (261/64 → 131/32) ⇝ 30/7 | note:80 gain:0.02985786437626935 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", + "[ 113/28 ⇜ (261/64 → 131/32) ⇝ 30/7 | note:84 gain:0.02985786437626935 clip:1 s:piano release:0.1 pan:0.6388888888888888 ]", + "[ 4/1 ⇜ (131/32 → 263/64) ⇝ 17/4 | note:G2 gain:0.24 clip:1 s:piano release:0.1 pan:0.44907407407407407 ]", + "[ 113/28 ⇜ (131/32 → 263/64) ⇝ 30/7 | note:75 gain:0.024 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", + "[ 113/28 ⇜ (131/32 → 263/64) ⇝ 30/7 | note:79 gain:0.024 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", + "[ 113/28 ⇜ (131/32 → 263/64) ⇝ 30/7 | note:80 gain:0.024 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", + "[ 113/28 ⇜ (131/32 → 263/64) ⇝ 30/7 | note:84 gain:0.024 clip:1 s:piano release:0.1 pan:0.6388888888888888 ]", + "[ 4/1 ⇜ (263/64 → 33/8) ⇝ 17/4 | note:G2 gain:0.2985786437626907 clip:1 s:piano release:0.1 pan:0.44907407407407407 ]", + "[ 113/28 ⇜ (263/64 → 33/8) ⇝ 30/7 | note:75 gain:0.029857864376269073 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", + "[ 113/28 ⇜ (263/64 → 33/8) ⇝ 30/7 | note:79 gain:0.029857864376269073 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", + "[ 113/28 ⇜ (263/64 → 33/8) ⇝ 30/7 | note:80 gain:0.029857864376269073 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", + "[ 113/28 ⇜ (263/64 → 33/8) ⇝ 30/7 | note:84 gain:0.029857864376269073 clip:1 s:piano release:0.1 pan:0.6388888888888888 ]", + "[ 4/1 ⇜ (33/8 → 265/64) ⇝ 17/4 | note:G2 gain:0.4399999999999998 clip:1 s:piano release:0.1 pan:0.44907407407407407 ]", + "[ 113/28 ⇜ (33/8 → 265/64) ⇝ 30/7 | note:75 gain:0.043999999999999984 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", + "[ 113/28 ⇜ (33/8 → 265/64) ⇝ 30/7 | note:79 gain:0.043999999999999984 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", + "[ 113/28 ⇜ (33/8 → 265/64) ⇝ 30/7 | note:80 gain:0.043999999999999984 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", + "[ 113/28 ⇜ (33/8 → 265/64) ⇝ 30/7 | note:84 gain:0.043999999999999984 clip:1 s:piano release:0.1 pan:0.6388888888888888 ]", + "[ (33/8 → 265/64) ⇝ 17/4 | note:G4 gain:0.4399999999999998 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", + "[ (33/8 → 265/64) ⇝ 17/4 | note:Bb4 gain:0.4399999999999998 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", + "[ 4/1 ⇜ (265/64 → 133/32) ⇝ 17/4 | note:G2 gain:0.581421356237309 clip:1 s:piano release:0.1 pan:0.44907407407407407 ]", + "[ 113/28 ⇜ (265/64 → 133/32) ⇝ 30/7 | note:75 gain:0.0581421356237309 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", + "[ 113/28 ⇜ (265/64 → 133/32) ⇝ 30/7 | note:79 gain:0.0581421356237309 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", + "[ 113/28 ⇜ (265/64 → 133/32) ⇝ 30/7 | note:80 gain:0.0581421356237309 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", + "[ 113/28 ⇜ (265/64 → 133/32) ⇝ 30/7 | note:84 gain:0.0581421356237309 clip:1 s:piano release:0.1 pan:0.6388888888888888 ]", + "[ 33/8 ⇜ (265/64 → 133/32) ⇝ 17/4 | note:G4 gain:0.581421356237309 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", + "[ 33/8 ⇜ (265/64 → 133/32) ⇝ 17/4 | note:Bb4 gain:0.581421356237309 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", + "[ 4/1 ⇜ (133/32 → 267/64) ⇝ 17/4 | note:G2 gain:0.6400000000000001 clip:1 s:piano release:0.1 pan:0.44907407407407407 ]", + "[ 113/28 ⇜ (133/32 → 267/64) ⇝ 30/7 | note:75 gain:0.06400000000000002 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", + "[ 113/28 ⇜ (133/32 → 267/64) ⇝ 30/7 | note:79 gain:0.06400000000000002 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", + "[ 113/28 ⇜ (133/32 → 267/64) ⇝ 30/7 | note:80 gain:0.06400000000000002 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", + "[ 113/28 ⇜ (133/32 → 267/64) ⇝ 30/7 | note:84 gain:0.06400000000000002 clip:1 s:piano release:0.1 pan:0.6388888888888888 ]", + "[ 33/8 ⇜ (133/32 → 267/64) ⇝ 17/4 | note:G4 gain:0.6400000000000001 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", + "[ 33/8 ⇜ (133/32 → 267/64) ⇝ 17/4 | note:Bb4 gain:0.6400000000000001 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", + "[ 4/1 ⇜ (267/64 → 67/16) ⇝ 17/4 | note:G2 gain:0.5814213562373108 clip:1 s:piano release:0.1 pan:0.44907407407407407 ]", + "[ 113/28 ⇜ (267/64 → 67/16) ⇝ 30/7 | note:75 gain:0.058142135623731085 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", + "[ 113/28 ⇜ (267/64 → 67/16) ⇝ 30/7 | note:79 gain:0.058142135623731085 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", + "[ 113/28 ⇜ (267/64 → 67/16) ⇝ 30/7 | note:80 gain:0.058142135623731085 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", + "[ 113/28 ⇜ (267/64 → 67/16) ⇝ 30/7 | note:84 gain:0.058142135623731085 clip:1 s:piano release:0.1 pan:0.6388888888888888 ]", + "[ 33/8 ⇜ (267/64 → 67/16) ⇝ 17/4 | note:G4 gain:0.5814213562373108 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", + "[ 33/8 ⇜ (267/64 → 67/16) ⇝ 17/4 | note:Bb4 gain:0.5814213562373108 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", + "[ 4/1 ⇜ (67/16 → 269/64) ⇝ 17/4 | note:G2 gain:0.4400000000000024 clip:1 s:piano release:0.1 pan:0.44907407407407407 ]", + "[ 113/28 ⇜ (67/16 → 269/64) ⇝ 30/7 | note:75 gain:0.04400000000000024 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", + "[ 113/28 ⇜ (67/16 → 269/64) ⇝ 30/7 | note:79 gain:0.04400000000000024 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", + "[ 113/28 ⇜ (67/16 → 269/64) ⇝ 30/7 | note:80 gain:0.04400000000000024 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", + "[ 113/28 ⇜ (67/16 → 269/64) ⇝ 30/7 | note:84 gain:0.04400000000000024 clip:1 s:piano release:0.1 pan:0.6388888888888888 ]", + "[ 33/8 ⇜ (67/16 → 269/64) ⇝ 17/4 | note:G4 gain:0.4400000000000024 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", + "[ 33/8 ⇜ (67/16 → 269/64) ⇝ 17/4 | note:Bb4 gain:0.4400000000000024 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", + "[ 4/1 ⇜ (269/64 → 135/32) ⇝ 17/4 | note:G2 gain:0.2985786437626925 clip:1 s:piano release:0.1 pan:0.44907407407407407 ]", + "[ 113/28 ⇜ (269/64 → 135/32) ⇝ 30/7 | note:75 gain:0.02985786437626925 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", + "[ 113/28 ⇜ (269/64 → 135/32) ⇝ 30/7 | note:79 gain:0.02985786437626925 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", + "[ 113/28 ⇜ (269/64 → 135/32) ⇝ 30/7 | note:80 gain:0.02985786437626925 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", + "[ 113/28 ⇜ (269/64 → 135/32) ⇝ 30/7 | note:84 gain:0.02985786437626925 clip:1 s:piano release:0.1 pan:0.6388888888888888 ]", + "[ 33/8 ⇜ (269/64 → 135/32) ⇝ 17/4 | note:G4 gain:0.2985786437626925 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", + "[ 33/8 ⇜ (269/64 → 135/32) ⇝ 17/4 | note:Bb4 gain:0.2985786437626925 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", + "[ 4/1 ⇜ (135/32 → 271/64) ⇝ 17/4 | note:G2 gain:0.24 clip:1 s:piano release:0.1 pan:0.44907407407407407 ]", + "[ 113/28 ⇜ (135/32 → 271/64) ⇝ 30/7 | note:75 gain:0.024 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", + "[ 113/28 ⇜ (135/32 → 271/64) ⇝ 30/7 | note:79 gain:0.024 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", + "[ 113/28 ⇜ (135/32 → 271/64) ⇝ 30/7 | note:80 gain:0.024 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", + "[ 113/28 ⇜ (135/32 → 271/64) ⇝ 30/7 | note:84 gain:0.024 clip:1 s:piano release:0.1 pan:0.6388888888888888 ]", + "[ 33/8 ⇜ (135/32 → 271/64) ⇝ 17/4 | note:G4 gain:0.24 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", + "[ 33/8 ⇜ (135/32 → 271/64) ⇝ 17/4 | note:Bb4 gain:0.24 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", + "[ 4/1 ⇜ (271/64 → 17/4) | note:G2 gain:0.2985786437626877 clip:1 s:piano release:0.1 pan:0.44907407407407407 ]", + "[ 113/28 ⇜ (271/64 → 17/4) ⇝ 30/7 | note:75 gain:0.029857864376268774 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", + "[ 113/28 ⇜ (271/64 → 17/4) ⇝ 30/7 | note:79 gain:0.029857864376268774 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", + "[ 113/28 ⇜ (271/64 → 17/4) ⇝ 30/7 | note:80 gain:0.029857864376268774 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", + "[ 113/28 ⇜ (271/64 → 17/4) ⇝ 30/7 | note:84 gain:0.029857864376268774 clip:1 s:piano release:0.1 pan:0.6388888888888888 ]", + "[ 33/8 ⇜ (271/64 → 17/4) | note:G4 gain:0.2985786437626877 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", + "[ 33/8 ⇜ (271/64 → 17/4) | note:Bb4 gain:0.2985786437626877 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", + "[ 113/28 ⇜ (17/4 → 273/64) ⇝ 30/7 | note:75 gain:0.044000000000000115 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", + "[ 113/28 ⇜ (17/4 → 273/64) ⇝ 30/7 | note:79 gain:0.044000000000000115 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", + "[ 113/28 ⇜ (17/4 → 273/64) ⇝ 30/7 | note:80 gain:0.044000000000000115 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", + "[ 113/28 ⇜ (17/4 → 273/64) ⇝ 30/7 | note:84 gain:0.044000000000000115 clip:1 s:piano release:0.1 pan:0.6388888888888888 ]", + "[ 113/28 ⇜ (273/64 → 137/32) ⇝ 30/7 | note:75 gain:0.058142135623730995 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", + "[ 113/28 ⇜ (273/64 → 137/32) ⇝ 30/7 | note:79 gain:0.058142135623730995 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", + "[ 113/28 ⇜ (273/64 → 137/32) ⇝ 30/7 | note:80 gain:0.058142135623730995 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", + "[ 113/28 ⇜ (273/64 → 137/32) ⇝ 30/7 | note:84 gain:0.058142135623730995 clip:1 s:piano release:0.1 pan:0.6388888888888888 ]", + "[ 113/28 ⇜ (137/32 → 30/7) | note:75 gain:0.06400000000000002 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", + "[ 113/28 ⇜ (137/32 → 30/7) | note:79 gain:0.06400000000000002 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", + "[ 113/28 ⇜ (137/32 → 30/7) | note:80 gain:0.06400000000000002 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", + "[ 113/28 ⇜ (137/32 → 30/7) | note:84 gain:0.06400000000000002 clip:1 s:piano release:0.1 pan:0.6388888888888888 ]", + "[ (9/2 → 289/64) ⇝ 37/8 | note:D5 gain:0.4399999999999983 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", + "[ (9/2 → 289/64) ⇝ 37/8 | note:F5 gain:0.4399999999999983 clip:1 s:piano release:0.1 pan:0.6064814814814814 ]", + "[ (9/2 → 289/64) ⇝ 19/4 | note:B3 gain:0.21999999999999914 clip:1 s:piano release:0.1 pan:0.5231481481481481 ]", + "[ (9/2 → 289/64) ⇝ 19/4 | note:E4 gain:0.21999999999999914 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", + "[ (9/2 → 289/64) ⇝ 19/4 | note:F4 gain:0.21999999999999914 clip:1 s:piano release:0.1 pan:0.5509259259259259 ]", + "[ (9/2 → 289/64) ⇝ 19/4 | note:A4 gain:0.21999999999999914 clip:1 s:piano release:0.1 pan:0.5694444444444444 ]", + "[ (9/2 → 289/64) ⇝ 19/4 | note:G2 gain:0.4399999999999983 clip:1 s:piano release:0.1 pan:0.44907407407407407 ]", + "[ 9/2 ⇜ (289/64 → 145/32) ⇝ 37/8 | note:D5 gain:0.5814213562373078 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", + "[ 9/2 ⇜ (289/64 → 145/32) ⇝ 37/8 | note:F5 gain:0.5814213562373078 clip:1 s:piano release:0.1 pan:0.6064814814814814 ]", + "[ 9/2 ⇜ (289/64 → 145/32) ⇝ 19/4 | note:B3 gain:0.2907106781186539 clip:1 s:piano release:0.1 pan:0.5231481481481481 ]", + "[ 9/2 ⇜ (289/64 → 145/32) ⇝ 19/4 | note:E4 gain:0.2907106781186539 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", + "[ 9/2 ⇜ (289/64 → 145/32) ⇝ 19/4 | note:F4 gain:0.2907106781186539 clip:1 s:piano release:0.1 pan:0.5509259259259259 ]", + "[ 9/2 ⇜ (289/64 → 145/32) ⇝ 19/4 | note:A4 gain:0.2907106781186539 clip:1 s:piano release:0.1 pan:0.5694444444444444 ]", + "[ 9/2 ⇜ (289/64 → 145/32) ⇝ 19/4 | note:G2 gain:0.5814213562373078 clip:1 s:piano release:0.1 pan:0.44907407407407407 ]", + "[ 9/2 ⇜ (145/32 → 291/64) ⇝ 37/8 | note:D5 gain:0.6400000000000001 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", + "[ 9/2 ⇜ (145/32 → 291/64) ⇝ 37/8 | note:F5 gain:0.6400000000000001 clip:1 s:piano release:0.1 pan:0.6064814814814814 ]", + "[ 9/2 ⇜ (145/32 → 291/64) ⇝ 19/4 | note:B3 gain:0.32000000000000006 clip:1 s:piano release:0.1 pan:0.5231481481481481 ]", + "[ 9/2 ⇜ (145/32 → 291/64) ⇝ 19/4 | note:E4 gain:0.32000000000000006 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", + "[ 9/2 ⇜ (145/32 → 291/64) ⇝ 19/4 | note:F4 gain:0.32000000000000006 clip:1 s:piano release:0.1 pan:0.5509259259259259 ]", + "[ 9/2 ⇜ (145/32 → 291/64) ⇝ 19/4 | note:A4 gain:0.32000000000000006 clip:1 s:piano release:0.1 pan:0.5694444444444444 ]", + "[ 9/2 ⇜ (145/32 → 291/64) ⇝ 19/4 | note:G2 gain:0.6400000000000001 clip:1 s:piano release:0.1 pan:0.44907407407407407 ]", + "[ 9/2 ⇜ (291/64 → 73/16) ⇝ 37/8 | note:D5 gain:0.581421356237312 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", + "[ 9/2 ⇜ (291/64 → 73/16) ⇝ 37/8 | note:F5 gain:0.581421356237312 clip:1 s:piano release:0.1 pan:0.6064814814814814 ]", + "[ 9/2 ⇜ (291/64 → 73/16) ⇝ 19/4 | note:B3 gain:0.290710678118656 clip:1 s:piano release:0.1 pan:0.5231481481481481 ]", + "[ 9/2 ⇜ (291/64 → 73/16) ⇝ 19/4 | note:E4 gain:0.290710678118656 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", + "[ 9/2 ⇜ (291/64 → 73/16) ⇝ 19/4 | note:F4 gain:0.290710678118656 clip:1 s:piano release:0.1 pan:0.5509259259259259 ]", + "[ 9/2 ⇜ (291/64 → 73/16) ⇝ 19/4 | note:A4 gain:0.290710678118656 clip:1 s:piano release:0.1 pan:0.5694444444444444 ]", + "[ 9/2 ⇜ (291/64 → 73/16) ⇝ 19/4 | note:G2 gain:0.581421356237312 clip:1 s:piano release:0.1 pan:0.44907407407407407 ]", + "[ 9/2 ⇜ (73/16 → 293/64) ⇝ 37/8 | note:D5 gain:0.44000000000000394 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", + "[ 9/2 ⇜ (73/16 → 293/64) ⇝ 37/8 | note:F5 gain:0.44000000000000394 clip:1 s:piano release:0.1 pan:0.6064814814814814 ]", + "[ 9/2 ⇜ (73/16 → 293/64) ⇝ 19/4 | note:B3 gain:0.22000000000000197 clip:1 s:piano release:0.1 pan:0.5231481481481481 ]", + "[ 9/2 ⇜ (73/16 → 293/64) ⇝ 19/4 | note:E4 gain:0.22000000000000197 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", + "[ 9/2 ⇜ (73/16 → 293/64) ⇝ 19/4 | note:F4 gain:0.22000000000000197 clip:1 s:piano release:0.1 pan:0.5509259259259259 ]", + "[ 9/2 ⇜ (73/16 → 293/64) ⇝ 19/4 | note:A4 gain:0.22000000000000197 clip:1 s:piano release:0.1 pan:0.5694444444444444 ]", + "[ 9/2 ⇜ (73/16 → 293/64) ⇝ 19/4 | note:G2 gain:0.44000000000000394 clip:1 s:piano release:0.1 pan:0.44907407407407407 ]", + "[ 9/2 ⇜ (293/64 → 147/32) ⇝ 37/8 | note:D5 gain:0.29857864376269366 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", + "[ 9/2 ⇜ (293/64 → 147/32) ⇝ 37/8 | note:F5 gain:0.29857864376269366 clip:1 s:piano release:0.1 pan:0.6064814814814814 ]", + "[ 9/2 ⇜ (293/64 → 147/32) ⇝ 19/4 | note:B3 gain:0.14928932188134683 clip:1 s:piano release:0.1 pan:0.5231481481481481 ]", + "[ 9/2 ⇜ (293/64 → 147/32) ⇝ 19/4 | note:E4 gain:0.14928932188134683 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", + "[ 9/2 ⇜ (293/64 → 147/32) ⇝ 19/4 | note:F4 gain:0.14928932188134683 clip:1 s:piano release:0.1 pan:0.5509259259259259 ]", + "[ 9/2 ⇜ (293/64 → 147/32) ⇝ 19/4 | note:A4 gain:0.14928932188134683 clip:1 s:piano release:0.1 pan:0.5694444444444444 ]", + "[ 9/2 ⇜ (293/64 → 147/32) ⇝ 19/4 | note:G2 gain:0.29857864376269366 clip:1 s:piano release:0.1 pan:0.44907407407407407 ]", + "[ 9/2 ⇜ (147/32 → 295/64) ⇝ 37/8 | note:D5 gain:0.24 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", + "[ 9/2 ⇜ (147/32 → 295/64) ⇝ 37/8 | note:F5 gain:0.24 clip:1 s:piano release:0.1 pan:0.6064814814814814 ]", + "[ 9/2 ⇜ (147/32 → 295/64) ⇝ 19/4 | note:B3 gain:0.12 clip:1 s:piano release:0.1 pan:0.5231481481481481 ]", + "[ 9/2 ⇜ (147/32 → 295/64) ⇝ 19/4 | note:E4 gain:0.12 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", + "[ 9/2 ⇜ (147/32 → 295/64) ⇝ 19/4 | note:F4 gain:0.12 clip:1 s:piano release:0.1 pan:0.5509259259259259 ]", + "[ 9/2 ⇜ (147/32 → 295/64) ⇝ 19/4 | note:A4 gain:0.12 clip:1 s:piano release:0.1 pan:0.5694444444444444 ]", + "[ 9/2 ⇜ (147/32 → 295/64) ⇝ 19/4 | note:G2 gain:0.24 clip:1 s:piano release:0.1 pan:0.44907407407407407 ]", + "[ 9/2 ⇜ (295/64 → 37/8) | note:D5 gain:0.2985786437626906 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", + "[ 9/2 ⇜ (295/64 → 37/8) | note:F5 gain:0.2985786437626906 clip:1 s:piano release:0.1 pan:0.6064814814814814 ]", + "[ 9/2 ⇜ (295/64 → 37/8) ⇝ 19/4 | note:B3 gain:0.1492893218813453 clip:1 s:piano release:0.1 pan:0.5231481481481481 ]", + "[ 9/2 ⇜ (295/64 → 37/8) ⇝ 19/4 | note:E4 gain:0.1492893218813453 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", + "[ 9/2 ⇜ (295/64 → 37/8) ⇝ 19/4 | note:F4 gain:0.1492893218813453 clip:1 s:piano release:0.1 pan:0.5509259259259259 ]", + "[ 9/2 ⇜ (295/64 → 37/8) ⇝ 19/4 | note:A4 gain:0.1492893218813453 clip:1 s:piano release:0.1 pan:0.5694444444444444 ]", + "[ 9/2 ⇜ (295/64 → 37/8) ⇝ 19/4 | note:G2 gain:0.2985786437626906 clip:1 s:piano release:0.1 pan:0.44907407407407407 ]", + "[ 9/2 ⇜ (37/8 → 297/64) ⇝ 19/4 | note:B3 gain:0.2199999999999998 clip:1 s:piano release:0.1 pan:0.5231481481481481 ]", + "[ 9/2 ⇜ (37/8 → 297/64) ⇝ 19/4 | note:E4 gain:0.2199999999999998 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", + "[ 9/2 ⇜ (37/8 → 297/64) ⇝ 19/4 | note:F4 gain:0.2199999999999998 clip:1 s:piano release:0.1 pan:0.5509259259259259 ]", + "[ 9/2 ⇜ (37/8 → 297/64) ⇝ 19/4 | note:A4 gain:0.2199999999999998 clip:1 s:piano release:0.1 pan:0.5694444444444444 ]", + "[ 9/2 ⇜ (37/8 → 297/64) ⇝ 19/4 | note:G2 gain:0.4399999999999996 clip:1 s:piano release:0.1 pan:0.44907407407407407 ]", + "[ 9/2 ⇜ (297/64 → 149/32) ⇝ 19/4 | note:B3 gain:0.2907106781186545 clip:1 s:piano release:0.1 pan:0.5231481481481481 ]", + "[ 9/2 ⇜ (297/64 → 149/32) ⇝ 19/4 | note:E4 gain:0.2907106781186545 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", + "[ 9/2 ⇜ (297/64 → 149/32) ⇝ 19/4 | note:F4 gain:0.2907106781186545 clip:1 s:piano release:0.1 pan:0.5509259259259259 ]", + "[ 9/2 ⇜ (297/64 → 149/32) ⇝ 19/4 | note:A4 gain:0.2907106781186545 clip:1 s:piano release:0.1 pan:0.5694444444444444 ]", + "[ 9/2 ⇜ (297/64 → 149/32) ⇝ 19/4 | note:G2 gain:0.581421356237309 clip:1 s:piano release:0.1 pan:0.44907407407407407 ]", + "[ 9/2 ⇜ (149/32 → 299/64) ⇝ 19/4 | note:B3 gain:0.32000000000000006 clip:1 s:piano release:0.1 pan:0.5231481481481481 ]", + "[ 9/2 ⇜ (149/32 → 299/64) ⇝ 19/4 | note:E4 gain:0.32000000000000006 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", + "[ 9/2 ⇜ (149/32 → 299/64) ⇝ 19/4 | note:F4 gain:0.32000000000000006 clip:1 s:piano release:0.1 pan:0.5509259259259259 ]", + "[ 9/2 ⇜ (149/32 → 299/64) ⇝ 19/4 | note:A4 gain:0.32000000000000006 clip:1 s:piano release:0.1 pan:0.5694444444444444 ]", + "[ 9/2 ⇜ (149/32 → 299/64) ⇝ 19/4 | note:G2 gain:0.6400000000000001 clip:1 s:piano release:0.1 pan:0.44907407407407407 ]", + "[ 9/2 ⇜ (299/64 → 75/16) ⇝ 19/4 | note:B3 gain:0.2907106781186554 clip:1 s:piano release:0.1 pan:0.5231481481481481 ]", + "[ 9/2 ⇜ (299/64 → 75/16) ⇝ 19/4 | note:E4 gain:0.2907106781186554 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", + "[ 9/2 ⇜ (299/64 → 75/16) ⇝ 19/4 | note:F4 gain:0.2907106781186554 clip:1 s:piano release:0.1 pan:0.5509259259259259 ]", + "[ 9/2 ⇜ (299/64 → 75/16) ⇝ 19/4 | note:A4 gain:0.2907106781186554 clip:1 s:piano release:0.1 pan:0.5694444444444444 ]", + "[ 9/2 ⇜ (299/64 → 75/16) ⇝ 19/4 | note:G2 gain:0.5814213562373108 clip:1 s:piano release:0.1 pan:0.44907407407407407 ]", + "[ 9/2 ⇜ (75/16 → 301/64) ⇝ 19/4 | note:B3 gain:0.22000000000000128 clip:1 s:piano release:0.1 pan:0.5231481481481481 ]", + "[ 9/2 ⇜ (75/16 → 301/64) ⇝ 19/4 | note:E4 gain:0.22000000000000128 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", + "[ 9/2 ⇜ (75/16 → 301/64) ⇝ 19/4 | note:F4 gain:0.22000000000000128 clip:1 s:piano release:0.1 pan:0.5509259259259259 ]", + "[ 9/2 ⇜ (75/16 → 301/64) ⇝ 19/4 | note:A4 gain:0.22000000000000128 clip:1 s:piano release:0.1 pan:0.5694444444444444 ]", + "[ 9/2 ⇜ (75/16 → 301/64) ⇝ 19/4 | note:G2 gain:0.44000000000000256 clip:1 s:piano release:0.1 pan:0.44907407407407407 ]", + "[ 9/2 ⇜ (301/64 → 151/32) ⇝ 19/4 | note:B3 gain:0.14928932188134633 clip:1 s:piano release:0.1 pan:0.5231481481481481 ]", + "[ 9/2 ⇜ (301/64 → 151/32) ⇝ 19/4 | note:E4 gain:0.14928932188134633 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", + "[ 9/2 ⇜ (301/64 → 151/32) ⇝ 19/4 | note:F4 gain:0.14928932188134633 clip:1 s:piano release:0.1 pan:0.5509259259259259 ]", + "[ 9/2 ⇜ (301/64 → 151/32) ⇝ 19/4 | note:A4 gain:0.14928932188134633 clip:1 s:piano release:0.1 pan:0.5694444444444444 ]", + "[ 9/2 ⇜ (301/64 → 151/32) ⇝ 19/4 | note:G2 gain:0.29857864376269266 clip:1 s:piano release:0.1 pan:0.44907407407407407 ]", + "[ 9/2 ⇜ (151/32 → 303/64) ⇝ 19/4 | note:B3 gain:0.12 clip:1 s:piano release:0.1 pan:0.5231481481481481 ]", + "[ 9/2 ⇜ (151/32 → 303/64) ⇝ 19/4 | note:E4 gain:0.12 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", + "[ 9/2 ⇜ (151/32 → 303/64) ⇝ 19/4 | note:F4 gain:0.12 clip:1 s:piano release:0.1 pan:0.5509259259259259 ]", + "[ 9/2 ⇜ (151/32 → 303/64) ⇝ 19/4 | note:A4 gain:0.12 clip:1 s:piano release:0.1 pan:0.5694444444444444 ]", + "[ 9/2 ⇜ (151/32 → 303/64) ⇝ 19/4 | note:G2 gain:0.24 clip:1 s:piano release:0.1 pan:0.44907407407407407 ]", + "[ 9/2 ⇜ (303/64 → 19/4) | note:B3 gain:0.14928932188134378 clip:1 s:piano release:0.1 pan:0.5231481481481481 ]", + "[ 9/2 ⇜ (303/64 → 19/4) | note:E4 gain:0.14928932188134378 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", + "[ 9/2 ⇜ (303/64 → 19/4) | note:F4 gain:0.14928932188134378 clip:1 s:piano release:0.1 pan:0.5509259259259259 ]", + "[ 9/2 ⇜ (303/64 → 19/4) | note:A4 gain:0.14928932188134378 clip:1 s:piano release:0.1 pan:0.5694444444444444 ]", + "[ 9/2 ⇜ (303/64 → 19/4) | note:G2 gain:0.29857864376268756 clip:1 s:piano release:0.1 pan:0.44907407407407407 ]", + "[ (19/4 → 305/64) ⇝ 39/8 | note:G4 gain:0.4399999999999953 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", + "[ (19/4 → 305/64) ⇝ 39/8 | note:Bb4 gain:0.4399999999999953 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", + "[ 19/4 ⇜ (305/64 → 153/32) ⇝ 39/8 | note:G4 gain:0.5814213562373098 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", + "[ 19/4 ⇜ (305/64 → 153/32) ⇝ 39/8 | note:Bb4 gain:0.5814213562373098 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", + "[ 19/4 ⇜ (153/32 → 307/64) ⇝ 39/8 | note:G4 gain:0.6400000000000001 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", + "[ 19/4 ⇜ (153/32 → 307/64) ⇝ 39/8 | note:Bb4 gain:0.6400000000000001 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", + "[ (67/14 → 307/64) ⇝ 141/28 | note:71 gain:0.06400000000000002 clip:1 s:piano release:0.1 pan:0.5787037037037037 ]", + "[ (67/14 → 307/64) ⇝ 141/28 | note:76 gain:0.06400000000000002 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", + "[ (67/14 → 307/64) ⇝ 141/28 | note:77 gain:0.06400000000000002 clip:1 s:piano release:0.1 pan:0.6064814814814814 ]", + "[ (67/14 → 307/64) ⇝ 141/28 | note:81 gain:0.06400000000000002 clip:1 s:piano release:0.1 pan:0.625 ]", + "[ 19/4 ⇜ (307/64 → 77/16) ⇝ 39/8 | note:G4 gain:0.58142135623731 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", + "[ 19/4 ⇜ (307/64 → 77/16) ⇝ 39/8 | note:Bb4 gain:0.58142135623731 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", + "[ 67/14 ⇜ (307/64 → 77/16) ⇝ 141/28 | note:71 gain:0.058142135623730995 clip:1 s:piano release:0.1 pan:0.5787037037037037 ]", + "[ 67/14 ⇜ (307/64 → 77/16) ⇝ 141/28 | note:76 gain:0.058142135623730995 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", + "[ 67/14 ⇜ (307/64 → 77/16) ⇝ 141/28 | note:77 gain:0.058142135623730995 clip:1 s:piano release:0.1 pan:0.6064814814814814 ]", + "[ 67/14 ⇜ (307/64 → 77/16) ⇝ 141/28 | note:81 gain:0.058142135623730995 clip:1 s:piano release:0.1 pan:0.625 ]", + "[ 19/4 ⇜ (77/16 → 309/64) ⇝ 39/8 | note:G4 gain:0.4400000000000011 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", + "[ 19/4 ⇜ (77/16 → 309/64) ⇝ 39/8 | note:Bb4 gain:0.4400000000000011 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", + "[ 67/14 ⇜ (77/16 → 309/64) ⇝ 141/28 | note:71 gain:0.044000000000000115 clip:1 s:piano release:0.1 pan:0.5787037037037037 ]", + "[ 67/14 ⇜ (77/16 → 309/64) ⇝ 141/28 | note:76 gain:0.044000000000000115 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", + "[ 67/14 ⇜ (77/16 → 309/64) ⇝ 141/28 | note:77 gain:0.044000000000000115 clip:1 s:piano release:0.1 pan:0.6064814814814814 ]", + "[ 67/14 ⇜ (77/16 → 309/64) ⇝ 141/28 | note:81 gain:0.044000000000000115 clip:1 s:piano release:0.1 pan:0.625 ]", + "[ 19/4 ⇜ (309/64 → 155/32) ⇝ 39/8 | note:G4 gain:0.2985786437626917 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", + "[ 19/4 ⇜ (309/64 → 155/32) ⇝ 39/8 | note:Bb4 gain:0.2985786437626917 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", + "[ 67/14 ⇜ (309/64 → 155/32) ⇝ 141/28 | note:71 gain:0.029857864376269173 clip:1 s:piano release:0.1 pan:0.5787037037037037 ]", + "[ 67/14 ⇜ (309/64 → 155/32) ⇝ 141/28 | note:76 gain:0.029857864376269173 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", + "[ 67/14 ⇜ (309/64 → 155/32) ⇝ 141/28 | note:77 gain:0.029857864376269173 clip:1 s:piano release:0.1 pan:0.6064814814814814 ]", + "[ 67/14 ⇜ (309/64 → 155/32) ⇝ 141/28 | note:81 gain:0.029857864376269173 clip:1 s:piano release:0.1 pan:0.625 ]", + "[ 19/4 ⇜ (155/32 → 311/64) ⇝ 39/8 | note:G4 gain:0.24 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", + "[ 19/4 ⇜ (155/32 → 311/64) ⇝ 39/8 | note:Bb4 gain:0.24 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", + "[ 67/14 ⇜ (155/32 → 311/64) ⇝ 141/28 | note:71 gain:0.024 clip:1 s:piano release:0.1 pan:0.5787037037037037 ]", + "[ 67/14 ⇜ (155/32 → 311/64) ⇝ 141/28 | note:76 gain:0.024 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", + "[ 67/14 ⇜ (155/32 → 311/64) ⇝ 141/28 | note:77 gain:0.024 clip:1 s:piano release:0.1 pan:0.6064814814814814 ]", + "[ 67/14 ⇜ (155/32 → 311/64) ⇝ 141/28 | note:81 gain:0.024 clip:1 s:piano release:0.1 pan:0.625 ]", + "[ 19/4 ⇜ (311/64 → 39/8) | note:G4 gain:0.2985786437626885 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", + "[ 19/4 ⇜ (311/64 → 39/8) | note:Bb4 gain:0.2985786437626885 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", + "[ 67/14 ⇜ (311/64 → 39/8) ⇝ 141/28 | note:71 gain:0.02985786437626885 clip:1 s:piano release:0.1 pan:0.5787037037037037 ]", + "[ 67/14 ⇜ (311/64 → 39/8) ⇝ 141/28 | note:76 gain:0.02985786437626885 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", + "[ 67/14 ⇜ (311/64 → 39/8) ⇝ 141/28 | note:77 gain:0.02985786437626885 clip:1 s:piano release:0.1 pan:0.6064814814814814 ]", + "[ 67/14 ⇜ (311/64 → 39/8) ⇝ 141/28 | note:81 gain:0.02985786437626885 clip:1 s:piano release:0.1 pan:0.625 ]", + "[ 67/14 ⇜ (39/8 → 313/64) ⇝ 141/28 | note:71 gain:0.04399999999999967 clip:1 s:piano release:0.1 pan:0.5787037037037037 ]", + "[ 67/14 ⇜ (39/8 → 313/64) ⇝ 141/28 | note:76 gain:0.04399999999999967 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", + "[ 67/14 ⇜ (39/8 → 313/64) ⇝ 141/28 | note:77 gain:0.04399999999999967 clip:1 s:piano release:0.1 pan:0.6064814814814814 ]", + "[ 67/14 ⇜ (39/8 → 313/64) ⇝ 141/28 | note:81 gain:0.04399999999999967 clip:1 s:piano release:0.1 pan:0.625 ]", + "[ 67/14 ⇜ (313/64 → 157/32) ⇝ 141/28 | note:71 gain:0.05814213562373069 clip:1 s:piano release:0.1 pan:0.5787037037037037 ]", + "[ 67/14 ⇜ (313/64 → 157/32) ⇝ 141/28 | note:76 gain:0.05814213562373069 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", + "[ 67/14 ⇜ (313/64 → 157/32) ⇝ 141/28 | note:77 gain:0.05814213562373069 clip:1 s:piano release:0.1 pan:0.6064814814814814 ]", + "[ 67/14 ⇜ (313/64 → 157/32) ⇝ 141/28 | note:81 gain:0.05814213562373069 clip:1 s:piano release:0.1 pan:0.625 ]", + "[ 67/14 ⇜ (157/32 → 315/64) ⇝ 141/28 | note:71 gain:0.06400000000000002 clip:1 s:piano release:0.1 pan:0.5787037037037037 ]", + "[ 67/14 ⇜ (157/32 → 315/64) ⇝ 141/28 | note:76 gain:0.06400000000000002 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", + "[ 67/14 ⇜ (157/32 → 315/64) ⇝ 141/28 | note:77 gain:0.06400000000000002 clip:1 s:piano release:0.1 pan:0.6064814814814814 ]", + "[ 67/14 ⇜ (157/32 → 315/64) ⇝ 141/28 | note:81 gain:0.06400000000000002 clip:1 s:piano release:0.1 pan:0.625 ]", + "[ 67/14 ⇜ (315/64 → 79/16) ⇝ 141/28 | note:71 gain:0.0581421356237309 clip:1 s:piano release:0.1 pan:0.5787037037037037 ]", + "[ 67/14 ⇜ (315/64 → 79/16) ⇝ 141/28 | note:76 gain:0.0581421356237309 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", + "[ 67/14 ⇜ (315/64 → 79/16) ⇝ 141/28 | note:77 gain:0.0581421356237309 clip:1 s:piano release:0.1 pan:0.6064814814814814 ]", + "[ 67/14 ⇜ (315/64 → 79/16) ⇝ 141/28 | note:81 gain:0.0581421356237309 clip:1 s:piano release:0.1 pan:0.625 ]", + "[ 67/14 ⇜ (79/16 → 317/64) ⇝ 141/28 | note:71 gain:0.043999999999999984 clip:1 s:piano release:0.1 pan:0.5787037037037037 ]", + "[ 67/14 ⇜ (79/16 → 317/64) ⇝ 141/28 | note:76 gain:0.043999999999999984 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", + "[ 67/14 ⇜ (79/16 → 317/64) ⇝ 141/28 | note:77 gain:0.043999999999999984 clip:1 s:piano release:0.1 pan:0.6064814814814814 ]", + "[ 67/14 ⇜ (79/16 → 317/64) ⇝ 141/28 | note:81 gain:0.043999999999999984 clip:1 s:piano release:0.1 pan:0.625 ]", + "[ 67/14 ⇜ (317/64 → 159/32) ⇝ 141/28 | note:71 gain:0.029857864376269073 clip:1 s:piano release:0.1 pan:0.5787037037037037 ]", + "[ 67/14 ⇜ (317/64 → 159/32) ⇝ 141/28 | note:76 gain:0.029857864376269073 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", + "[ 67/14 ⇜ (317/64 → 159/32) ⇝ 141/28 | note:77 gain:0.029857864376269073 clip:1 s:piano release:0.1 pan:0.6064814814814814 ]", + "[ 67/14 ⇜ (317/64 → 159/32) ⇝ 141/28 | note:81 gain:0.029857864376269073 clip:1 s:piano release:0.1 pan:0.625 ]", + "[ 67/14 ⇜ (159/32 → 319/64) ⇝ 141/28 | note:71 gain:0.024 clip:1 s:piano release:0.1 pan:0.5787037037037037 ]", + "[ 67/14 ⇜ (159/32 → 319/64) ⇝ 141/28 | note:76 gain:0.024 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", + "[ 67/14 ⇜ (159/32 → 319/64) ⇝ 141/28 | note:77 gain:0.024 clip:1 s:piano release:0.1 pan:0.6064814814814814 ]", + "[ 67/14 ⇜ (159/32 → 319/64) ⇝ 141/28 | note:81 gain:0.024 clip:1 s:piano release:0.1 pan:0.625 ]", + "[ 67/14 ⇜ (319/64 → 5/1) ⇝ 141/28 | note:71 gain:0.02985786437626895 clip:1 s:piano release:0.1 pan:0.5787037037037037 ]", + "[ 67/14 ⇜ (319/64 → 5/1) ⇝ 141/28 | note:76 gain:0.02985786437626895 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", + "[ 67/14 ⇜ (319/64 → 5/1) ⇝ 141/28 | note:77 gain:0.02985786437626895 clip:1 s:piano release:0.1 pan:0.6064814814814814 ]", + "[ 67/14 ⇜ (319/64 → 5/1) ⇝ 141/28 | note:81 gain:0.02985786437626895 clip:1 s:piano release:0.1 pan:0.625 ]", + "[ 67/14 ⇜ (5/1 → 321/64) ⇝ 141/28 | note:71 gain:0.04399999999999982 clip:1 s:piano release:0.1 pan:0.5787037037037037 ]", + "[ 67/14 ⇜ (5/1 → 321/64) ⇝ 141/28 | note:76 gain:0.04399999999999982 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", + "[ 67/14 ⇜ (5/1 → 321/64) ⇝ 141/28 | note:77 gain:0.04399999999999982 clip:1 s:piano release:0.1 pan:0.6064814814814814 ]", + "[ 67/14 ⇜ (5/1 → 321/64) ⇝ 141/28 | note:81 gain:0.04399999999999982 clip:1 s:piano release:0.1 pan:0.625 ]", + "[ (5/1 → 321/64) ⇝ 21/4 | note:G2 gain:0.4399999999999981 clip:1 s:piano release:0.1 pan:0.44907407407407407 ]", + "[ 67/14 ⇜ (321/64 → 161/32) ⇝ 141/28 | note:71 gain:0.05814213562373077 clip:1 s:piano release:0.1 pan:0.5787037037037037 ]", + "[ 67/14 ⇜ (321/64 → 161/32) ⇝ 141/28 | note:76 gain:0.05814213562373077 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", + "[ 67/14 ⇜ (321/64 → 161/32) ⇝ 141/28 | note:77 gain:0.05814213562373077 clip:1 s:piano release:0.1 pan:0.6064814814814814 ]", + "[ 67/14 ⇜ (321/64 → 161/32) ⇝ 141/28 | note:81 gain:0.05814213562373077 clip:1 s:piano release:0.1 pan:0.625 ]", + "[ 5/1 ⇜ (321/64 → 161/32) ⇝ 21/4 | note:G2 gain:0.5814213562373077 clip:1 s:piano release:0.1 pan:0.44907407407407407 ]", + "[ 67/14 ⇜ (161/32 → 141/28) | note:71 gain:0.06400000000000002 clip:1 s:piano release:0.1 pan:0.5787037037037037 ]", + "[ 67/14 ⇜ (161/32 → 141/28) | note:76 gain:0.06400000000000002 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", + "[ 67/14 ⇜ (161/32 → 141/28) | note:77 gain:0.06400000000000002 clip:1 s:piano release:0.1 pan:0.6064814814814814 ]", + "[ 67/14 ⇜ (161/32 → 141/28) | note:81 gain:0.06400000000000002 clip:1 s:piano release:0.1 pan:0.625 ]", + "[ 5/1 ⇜ (161/32 → 323/64) ⇝ 21/4 | note:G2 gain:0.6400000000000001 clip:1 s:piano release:0.1 pan:0.44907407407407407 ]", + "[ 5/1 ⇜ (323/64 → 81/16) ⇝ 21/4 | note:G2 gain:0.5814213562373121 clip:1 s:piano release:0.1 pan:0.44907407407407407 ]", + "[ 5/1 ⇜ (81/16 → 325/64) ⇝ 21/4 | note:G2 gain:0.44000000000000417 clip:1 s:piano release:0.1 pan:0.44907407407407407 ]", + "[ 5/1 ⇜ (325/64 → 163/32) ⇝ 21/4 | note:G2 gain:0.2985786437626938 clip:1 s:piano release:0.1 pan:0.44907407407407407 ]", + "[ 5/1 ⇜ (163/32 → 327/64) ⇝ 21/4 | note:G2 gain:0.24 clip:1 s:piano release:0.1 pan:0.44907407407407407 ]", + "[ 5/1 ⇜ (327/64 → 41/8) ⇝ 21/4 | note:G2 gain:0.29857864376269044 clip:1 s:piano release:0.1 pan:0.44907407407407407 ]", + "[ 5/1 ⇜ (41/8 → 329/64) ⇝ 21/4 | note:G2 gain:0.43999999999999373 clip:1 s:piano release:0.1 pan:0.44907407407407407 ]", + "[ (41/8 → 329/64) ⇝ 21/4 | note:G4 gain:0.43999999999999373 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", + "[ (41/8 → 329/64) ⇝ 21/4 | note:Bb4 gain:0.43999999999999373 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", + "[ 5/1 ⇜ (329/64 → 165/32) ⇝ 21/4 | note:G2 gain:0.5814213562373087 clip:1 s:piano release:0.1 pan:0.44907407407407407 ]", + "[ 41/8 ⇜ (329/64 → 165/32) ⇝ 21/4 | note:G4 gain:0.5814213562373087 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", + "[ 41/8 ⇜ (329/64 → 165/32) ⇝ 21/4 | note:Bb4 gain:0.5814213562373087 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", + "[ 5/1 ⇜ (165/32 → 331/64) ⇝ 21/4 | note:G2 gain:0.6400000000000001 clip:1 s:piano release:0.1 pan:0.44907407407407407 ]", + "[ 41/8 ⇜ (165/32 → 331/64) ⇝ 21/4 | note:G4 gain:0.6400000000000001 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", + "[ 41/8 ⇜ (165/32 → 331/64) ⇝ 21/4 | note:Bb4 gain:0.6400000000000001 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", + "[ 5/1 ⇜ (331/64 → 83/16) ⇝ 21/4 | note:G2 gain:0.5814213562373111 clip:1 s:piano release:0.1 pan:0.44907407407407407 ]", + "[ 41/8 ⇜ (331/64 → 83/16) ⇝ 21/4 | note:G4 gain:0.5814213562373111 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", + "[ 41/8 ⇜ (331/64 → 83/16) ⇝ 21/4 | note:Bb4 gain:0.5814213562373111 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", + "[ 5/1 ⇜ (83/16 → 333/64) ⇝ 21/4 | note:G2 gain:0.43999999999999706 clip:1 s:piano release:0.1 pan:0.44907407407407407 ]", + "[ 41/8 ⇜ (83/16 → 333/64) ⇝ 21/4 | note:G4 gain:0.43999999999999706 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", + "[ 41/8 ⇜ (83/16 → 333/64) ⇝ 21/4 | note:Bb4 gain:0.43999999999999706 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", + "[ 5/1 ⇜ (333/64 → 167/32) ⇝ 21/4 | note:G2 gain:0.29857864376269283 clip:1 s:piano release:0.1 pan:0.44907407407407407 ]", + "[ 41/8 ⇜ (333/64 → 167/32) ⇝ 21/4 | note:G4 gain:0.29857864376269283 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", + "[ 41/8 ⇜ (333/64 → 167/32) ⇝ 21/4 | note:Bb4 gain:0.29857864376269283 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", + "[ 5/1 ⇜ (167/32 → 335/64) ⇝ 21/4 | note:G2 gain:0.24 clip:1 s:piano release:0.1 pan:0.44907407407407407 ]", + "[ 41/8 ⇜ (167/32 → 335/64) ⇝ 21/4 | note:G4 gain:0.24 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", + "[ 41/8 ⇜ (167/32 → 335/64) ⇝ 21/4 | note:Bb4 gain:0.24 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", + "[ 5/1 ⇜ (335/64 → 21/4) | note:G2 gain:0.2985786437626874 clip:1 s:piano release:0.1 pan:0.44907407407407407 ]", + "[ 41/8 ⇜ (335/64 → 21/4) | note:G4 gain:0.2985786437626874 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", + "[ 41/8 ⇜ (335/64 → 21/4) | note:Bb4 gain:0.2985786437626874 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", + "[ (21/4 → 337/64) ⇝ 11/2 | note:B3 gain:0.2200000000000004 clip:1 s:piano release:0.1 pan:0.5231481481481481 ]", + "[ (21/4 → 337/64) ⇝ 11/2 | note:E4 gain:0.2200000000000004 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", + "[ (21/4 → 337/64) ⇝ 11/2 | note:F4 gain:0.2200000000000004 clip:1 s:piano release:0.1 pan:0.5509259259259259 ]", + "[ (21/4 → 337/64) ⇝ 11/2 | note:A4 gain:0.2200000000000004 clip:1 s:piano release:0.1 pan:0.5694444444444444 ]", + "[ 21/4 ⇜ (337/64 → 169/32) ⇝ 11/2 | note:B3 gain:0.29071067811865287 clip:1 s:piano release:0.1 pan:0.5231481481481481 ]", + "[ 21/4 ⇜ (337/64 → 169/32) ⇝ 11/2 | note:E4 gain:0.29071067811865287 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", + "[ 21/4 ⇜ (337/64 → 169/32) ⇝ 11/2 | note:F4 gain:0.29071067811865287 clip:1 s:piano release:0.1 pan:0.5509259259259259 ]", + "[ 21/4 ⇜ (337/64 → 169/32) ⇝ 11/2 | note:A4 gain:0.29071067811865287 clip:1 s:piano release:0.1 pan:0.5694444444444444 ]", + "[ 21/4 ⇜ (169/32 → 339/64) ⇝ 11/2 | note:B3 gain:0.32000000000000006 clip:1 s:piano release:0.1 pan:0.5231481481481481 ]", + "[ 21/4 ⇜ (169/32 → 339/64) ⇝ 11/2 | note:E4 gain:0.32000000000000006 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", + "[ 21/4 ⇜ (169/32 → 339/64) ⇝ 11/2 | note:F4 gain:0.32000000000000006 clip:1 s:piano release:0.1 pan:0.5509259259259259 ]", + "[ 21/4 ⇜ (169/32 → 339/64) ⇝ 11/2 | note:A4 gain:0.32000000000000006 clip:1 s:piano release:0.1 pan:0.5694444444444444 ]", + "[ 21/4 ⇜ (339/64 → 85/16) ⇝ 11/2 | note:B3 gain:0.29071067811865703 clip:1 s:piano release:0.1 pan:0.5231481481481481 ]", + "[ 21/4 ⇜ (339/64 → 85/16) ⇝ 11/2 | note:E4 gain:0.29071067811865703 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", + "[ 21/4 ⇜ (339/64 → 85/16) ⇝ 11/2 | note:F4 gain:0.29071067811865703 clip:1 s:piano release:0.1 pan:0.5509259259259259 ]", + "[ 21/4 ⇜ (339/64 → 85/16) ⇝ 11/2 | note:A4 gain:0.29071067811865703 clip:1 s:piano release:0.1 pan:0.5694444444444444 ]", + "[ 21/4 ⇜ (85/16 → 341/64) ⇝ 11/2 | note:B3 gain:0.2200000000000007 clip:1 s:piano release:0.1 pan:0.5231481481481481 ]", + "[ 21/4 ⇜ (85/16 → 341/64) ⇝ 11/2 | note:E4 gain:0.2200000000000007 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", + "[ 21/4 ⇜ (85/16 → 341/64) ⇝ 11/2 | note:F4 gain:0.2200000000000007 clip:1 s:piano release:0.1 pan:0.5509259259259259 ]", + "[ 21/4 ⇜ (85/16 → 341/64) ⇝ 11/2 | note:A4 gain:0.2200000000000007 clip:1 s:piano release:0.1 pan:0.5694444444444444 ]", + "[ 21/4 ⇜ (341/64 → 171/32) ⇝ 11/2 | note:B3 gain:0.14928932188134794 clip:1 s:piano release:0.1 pan:0.5231481481481481 ]", + "[ 21/4 ⇜ (341/64 → 171/32) ⇝ 11/2 | note:E4 gain:0.14928932188134794 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", + "[ 21/4 ⇜ (341/64 → 171/32) ⇝ 11/2 | note:F4 gain:0.14928932188134794 clip:1 s:piano release:0.1 pan:0.5509259259259259 ]", + "[ 21/4 ⇜ (341/64 → 171/32) ⇝ 11/2 | note:A4 gain:0.14928932188134794 clip:1 s:piano release:0.1 pan:0.5694444444444444 ]", + "[ 21/4 ⇜ (171/32 → 343/64) ⇝ 11/2 | note:B3 gain:0.12 clip:1 s:piano release:0.1 pan:0.5231481481481481 ]", + "[ 21/4 ⇜ (171/32 → 343/64) ⇝ 11/2 | note:E4 gain:0.12 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", + "[ 21/4 ⇜ (171/32 → 343/64) ⇝ 11/2 | note:F4 gain:0.12 clip:1 s:piano release:0.1 pan:0.5509259259259259 ]", + "[ 21/4 ⇜ (171/32 → 343/64) ⇝ 11/2 | note:A4 gain:0.12 clip:1 s:piano release:0.1 pan:0.5694444444444444 ]", + "[ 21/4 ⇜ (343/64 → 43/8) ⇝ 11/2 | note:B3 gain:0.14928932188134622 clip:1 s:piano release:0.1 pan:0.5231481481481481 ]", + "[ 21/4 ⇜ (343/64 → 43/8) ⇝ 11/2 | note:E4 gain:0.14928932188134622 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", + "[ 21/4 ⇜ (343/64 → 43/8) ⇝ 11/2 | note:F4 gain:0.14928932188134622 clip:1 s:piano release:0.1 pan:0.5509259259259259 ]", + "[ 21/4 ⇜ (343/64 → 43/8) ⇝ 11/2 | note:A4 gain:0.14928932188134622 clip:1 s:piano release:0.1 pan:0.5694444444444444 ]", + "[ 21/4 ⇜ (43/8 → 345/64) ⇝ 11/2 | note:B3 gain:0.21999999999999825 clip:1 s:piano release:0.1 pan:0.5231481481481481 ]", + "[ 21/4 ⇜ (43/8 → 345/64) ⇝ 11/2 | note:E4 gain:0.21999999999999825 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", + "[ 21/4 ⇜ (43/8 → 345/64) ⇝ 11/2 | note:F4 gain:0.21999999999999825 clip:1 s:piano release:0.1 pan:0.5509259259259259 ]", + "[ 21/4 ⇜ (43/8 → 345/64) ⇝ 11/2 | note:A4 gain:0.21999999999999825 clip:1 s:piano release:0.1 pan:0.5694444444444444 ]", + "[ 21/4 ⇜ (345/64 → 173/32) ⇝ 11/2 | note:B3 gain:0.29071067811865536 clip:1 s:piano release:0.1 pan:0.5231481481481481 ]", + "[ 21/4 ⇜ (345/64 → 173/32) ⇝ 11/2 | note:E4 gain:0.29071067811865536 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", + "[ 21/4 ⇜ (345/64 → 173/32) ⇝ 11/2 | note:F4 gain:0.29071067811865536 clip:1 s:piano release:0.1 pan:0.5509259259259259 ]", + "[ 21/4 ⇜ (345/64 → 173/32) ⇝ 11/2 | note:A4 gain:0.29071067811865536 clip:1 s:piano release:0.1 pan:0.5694444444444444 ]", + "[ 21/4 ⇜ (173/32 → 347/64) ⇝ 11/2 | note:B3 gain:0.32000000000000006 clip:1 s:piano release:0.1 pan:0.5231481481481481 ]", + "[ 21/4 ⇜ (173/32 → 347/64) ⇝ 11/2 | note:E4 gain:0.32000000000000006 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", + "[ 21/4 ⇜ (173/32 → 347/64) ⇝ 11/2 | note:F4 gain:0.32000000000000006 clip:1 s:piano release:0.1 pan:0.5509259259259259 ]", + "[ 21/4 ⇜ (173/32 → 347/64) ⇝ 11/2 | note:A4 gain:0.32000000000000006 clip:1 s:piano release:0.1 pan:0.5694444444444444 ]", + "[ 21/4 ⇜ (347/64 → 87/16) ⇝ 11/2 | note:B3 gain:0.29071067811865453 clip:1 s:piano release:0.1 pan:0.5231481481481481 ]", + "[ 21/4 ⇜ (347/64 → 87/16) ⇝ 11/2 | note:E4 gain:0.29071067811865453 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", + "[ 21/4 ⇜ (347/64 → 87/16) ⇝ 11/2 | note:F4 gain:0.29071067811865453 clip:1 s:piano release:0.1 pan:0.5509259259259259 ]", + "[ 21/4 ⇜ (347/64 → 87/16) ⇝ 11/2 | note:A4 gain:0.29071067811865453 clip:1 s:piano release:0.1 pan:0.5694444444444444 ]", + "[ 21/4 ⇜ (87/16 → 349/64) ⇝ 11/2 | note:B3 gain:0.22000000000000286 clip:1 s:piano release:0.1 pan:0.5231481481481481 ]", + "[ 21/4 ⇜ (87/16 → 349/64) ⇝ 11/2 | note:E4 gain:0.22000000000000286 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", + "[ 21/4 ⇜ (87/16 → 349/64) ⇝ 11/2 | note:F4 gain:0.22000000000000286 clip:1 s:piano release:0.1 pan:0.5509259259259259 ]", + "[ 21/4 ⇜ (87/16 → 349/64) ⇝ 11/2 | note:A4 gain:0.22000000000000286 clip:1 s:piano release:0.1 pan:0.5694444444444444 ]", + "[ 21/4 ⇜ (349/64 → 175/32) ⇝ 11/2 | note:B3 gain:0.14928932188134544 clip:1 s:piano release:0.1 pan:0.5231481481481481 ]", + "[ 21/4 ⇜ (349/64 → 175/32) ⇝ 11/2 | note:E4 gain:0.14928932188134544 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", + "[ 21/4 ⇜ (349/64 → 175/32) ⇝ 11/2 | note:F4 gain:0.14928932188134544 clip:1 s:piano release:0.1 pan:0.5509259259259259 ]", + "[ 21/4 ⇜ (349/64 → 175/32) ⇝ 11/2 | note:A4 gain:0.14928932188134544 clip:1 s:piano release:0.1 pan:0.5694444444444444 ]", + "[ 21/4 ⇜ (175/32 → 351/64) ⇝ 11/2 | note:B3 gain:0.12 clip:1 s:piano release:0.1 pan:0.5231481481481481 ]", + "[ 21/4 ⇜ (175/32 → 351/64) ⇝ 11/2 | note:E4 gain:0.12 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", + "[ 21/4 ⇜ (175/32 → 351/64) ⇝ 11/2 | note:F4 gain:0.12 clip:1 s:piano release:0.1 pan:0.5509259259259259 ]", + "[ 21/4 ⇜ (175/32 → 351/64) ⇝ 11/2 | note:A4 gain:0.12 clip:1 s:piano release:0.1 pan:0.5694444444444444 ]", + "[ 21/4 ⇜ (351/64 → 11/2) | note:B3 gain:0.14928932188134467 clip:1 s:piano release:0.1 pan:0.5231481481481481 ]", + "[ 21/4 ⇜ (351/64 → 11/2) | note:E4 gain:0.14928932188134467 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", + "[ 21/4 ⇜ (351/64 → 11/2) | note:F4 gain:0.14928932188134467 clip:1 s:piano release:0.1 pan:0.5509259259259259 ]", + "[ 21/4 ⇜ (351/64 → 11/2) | note:A4 gain:0.14928932188134467 clip:1 s:piano release:0.1 pan:0.5694444444444444 ]", + "[ (11/2 → 353/64) ⇝ 45/8 | note:D5 gain:0.4399999999999922 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", + "[ (11/2 → 353/64) ⇝ 45/8 | note:F5 gain:0.4399999999999922 clip:1 s:piano release:0.1 pan:0.6064814814814814 ]", + "[ (11/2 → 353/64) ⇝ 23/4 | note:G2 gain:0.4399999999999922 clip:1 s:piano release:0.1 pan:0.44907407407407407 ]", + "[ 11/2 ⇜ (353/64 → 177/32) ⇝ 45/8 | note:D5 gain:0.5814213562373077 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", + "[ 11/2 ⇜ (353/64 → 177/32) ⇝ 45/8 | note:F5 gain:0.5814213562373077 clip:1 s:piano release:0.1 pan:0.6064814814814814 ]", + "[ 11/2 ⇜ (353/64 → 177/32) ⇝ 23/4 | note:G2 gain:0.5814213562373077 clip:1 s:piano release:0.1 pan:0.44907407407407407 ]", + "[ 11/2 ⇜ (177/32 → 355/64) ⇝ 45/8 | note:D5 gain:0.6400000000000001 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", + "[ 11/2 ⇜ (177/32 → 355/64) ⇝ 45/8 | note:F5 gain:0.6400000000000001 clip:1 s:piano release:0.1 pan:0.6064814814814814 ]", + "[ 11/2 ⇜ (177/32 → 355/64) ⇝ 23/4 | note:G2 gain:0.6400000000000001 clip:1 s:piano release:0.1 pan:0.44907407407407407 ]", + "[ (155/28 → 355/64) ⇝ 81/14 | note:71 gain:0.06400000000000002 clip:1 s:piano release:0.1 pan:0.5787037037037037 ]", + "[ (155/28 → 355/64) ⇝ 81/14 | note:76 gain:0.06400000000000002 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", + "[ (155/28 → 355/64) ⇝ 81/14 | note:77 gain:0.06400000000000002 clip:1 s:piano release:0.1 pan:0.6064814814814814 ]", + "[ (155/28 → 355/64) ⇝ 81/14 | note:81 gain:0.06400000000000002 clip:1 s:piano release:0.1 pan:0.625 ]", + "[ 11/2 ⇜ (355/64 → 89/16) ⇝ 45/8 | note:D5 gain:0.5814213562373122 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", + "[ 11/2 ⇜ (355/64 → 89/16) ⇝ 45/8 | note:F5 gain:0.5814213562373122 clip:1 s:piano release:0.1 pan:0.6064814814814814 ]", + "[ 11/2 ⇜ (355/64 → 89/16) ⇝ 23/4 | note:G2 gain:0.5814213562373122 clip:1 s:piano release:0.1 pan:0.44907407407407407 ]", + "[ 155/28 ⇜ (355/64 → 89/16) ⇝ 81/14 | note:71 gain:0.05814213562373122 clip:1 s:piano release:0.1 pan:0.5787037037037037 ]", + "[ 155/28 ⇜ (355/64 → 89/16) ⇝ 81/14 | note:76 gain:0.05814213562373122 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", + "[ 155/28 ⇜ (355/64 → 89/16) ⇝ 81/14 | note:77 gain:0.05814213562373122 clip:1 s:piano release:0.1 pan:0.6064814814814814 ]", + "[ 155/28 ⇜ (355/64 → 89/16) ⇝ 81/14 | note:81 gain:0.05814213562373122 clip:1 s:piano release:0.1 pan:0.625 ]", + "[ 11/2 ⇜ (89/16 → 357/64) ⇝ 45/8 | note:D5 gain:0.4399999999999986 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", + "[ 11/2 ⇜ (89/16 → 357/64) ⇝ 45/8 | note:F5 gain:0.4399999999999986 clip:1 s:piano release:0.1 pan:0.6064814814814814 ]", + "[ 11/2 ⇜ (89/16 → 357/64) ⇝ 23/4 | note:G2 gain:0.4399999999999986 clip:1 s:piano release:0.1 pan:0.44907407407407407 ]", + "[ 155/28 ⇜ (89/16 → 357/64) ⇝ 81/14 | note:71 gain:0.043999999999999866 clip:1 s:piano release:0.1 pan:0.5787037037037037 ]", + "[ 155/28 ⇜ (89/16 → 357/64) ⇝ 81/14 | note:76 gain:0.043999999999999866 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", + "[ 155/28 ⇜ (89/16 → 357/64) ⇝ 81/14 | note:77 gain:0.043999999999999866 clip:1 s:piano release:0.1 pan:0.6064814814814814 ]", + "[ 155/28 ⇜ (89/16 → 357/64) ⇝ 81/14 | note:81 gain:0.043999999999999866 clip:1 s:piano release:0.1 pan:0.625 ]", + "[ 11/2 ⇜ (357/64 → 179/32) ⇝ 45/8 | note:D5 gain:0.29857864376269394 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", + "[ 11/2 ⇜ (357/64 → 179/32) ⇝ 45/8 | note:F5 gain:0.29857864376269394 clip:1 s:piano release:0.1 pan:0.6064814814814814 ]", + "[ 11/2 ⇜ (357/64 → 179/32) ⇝ 23/4 | note:G2 gain:0.29857864376269394 clip:1 s:piano release:0.1 pan:0.44907407407407407 ]", + "[ 155/28 ⇜ (357/64 → 179/32) ⇝ 81/14 | note:71 gain:0.029857864376269395 clip:1 s:piano release:0.1 pan:0.5787037037037037 ]", + "[ 155/28 ⇜ (357/64 → 179/32) ⇝ 81/14 | note:76 gain:0.029857864376269395 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", + "[ 155/28 ⇜ (357/64 → 179/32) ⇝ 81/14 | note:77 gain:0.029857864376269395 clip:1 s:piano release:0.1 pan:0.6064814814814814 ]", + "[ 155/28 ⇜ (357/64 → 179/32) ⇝ 81/14 | note:81 gain:0.029857864376269395 clip:1 s:piano release:0.1 pan:0.625 ]", + "[ 11/2 ⇜ (179/32 → 359/64) ⇝ 45/8 | note:D5 gain:0.24 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", + "[ 11/2 ⇜ (179/32 → 359/64) ⇝ 45/8 | note:F5 gain:0.24 clip:1 s:piano release:0.1 pan:0.6064814814814814 ]", + "[ 11/2 ⇜ (179/32 → 359/64) ⇝ 23/4 | note:G2 gain:0.24 clip:1 s:piano release:0.1 pan:0.44907407407407407 ]", + "[ 155/28 ⇜ (179/32 → 359/64) ⇝ 81/14 | note:71 gain:0.024 clip:1 s:piano release:0.1 pan:0.5787037037037037 ]", + "[ 155/28 ⇜ (179/32 → 359/64) ⇝ 81/14 | note:76 gain:0.024 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", + "[ 155/28 ⇜ (179/32 → 359/64) ⇝ 81/14 | note:77 gain:0.024 clip:1 s:piano release:0.1 pan:0.6064814814814814 ]", + "[ 155/28 ⇜ (179/32 → 359/64) ⇝ 81/14 | note:81 gain:0.024 clip:1 s:piano release:0.1 pan:0.625 ]", + "[ 11/2 ⇜ (359/64 → 45/8) | note:D5 gain:0.2985786437626863 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", + "[ 11/2 ⇜ (359/64 → 45/8) | note:F5 gain:0.2985786437626863 clip:1 s:piano release:0.1 pan:0.6064814814814814 ]", + "[ 11/2 ⇜ (359/64 → 45/8) ⇝ 23/4 | note:G2 gain:0.2985786437626863 clip:1 s:piano release:0.1 pan:0.44907407407407407 ]", + "[ 155/28 ⇜ (359/64 → 45/8) ⇝ 81/14 | note:71 gain:0.02985786437626863 clip:1 s:piano release:0.1 pan:0.5787037037037037 ]", + "[ 155/28 ⇜ (359/64 → 45/8) ⇝ 81/14 | note:76 gain:0.02985786437626863 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", + "[ 155/28 ⇜ (359/64 → 45/8) ⇝ 81/14 | note:77 gain:0.02985786437626863 clip:1 s:piano release:0.1 pan:0.6064814814814814 ]", + "[ 155/28 ⇜ (359/64 → 45/8) ⇝ 81/14 | note:81 gain:0.02985786437626863 clip:1 s:piano release:0.1 pan:0.625 ]", + "[ 11/2 ⇜ (45/8 → 361/64) ⇝ 23/4 | note:G2 gain:0.4399999999999993 clip:1 s:piano release:0.1 pan:0.44907407407407407 ]", + "[ 155/28 ⇜ (45/8 → 361/64) ⇝ 81/14 | note:71 gain:0.04399999999999993 clip:1 s:piano release:0.1 pan:0.5787037037037037 ]", + "[ 155/28 ⇜ (45/8 → 361/64) ⇝ 81/14 | note:76 gain:0.04399999999999993 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", + "[ 155/28 ⇜ (45/8 → 361/64) ⇝ 81/14 | note:77 gain:0.04399999999999993 clip:1 s:piano release:0.1 pan:0.6064814814814814 ]", + "[ 155/28 ⇜ (45/8 → 361/64) ⇝ 81/14 | note:81 gain:0.04399999999999993 clip:1 s:piano release:0.1 pan:0.625 ]", + "[ 11/2 ⇜ (361/64 → 181/32) ⇝ 23/4 | note:G2 gain:0.5814213562373046 clip:1 s:piano release:0.1 pan:0.44907407407407407 ]", + "[ 155/28 ⇜ (361/64 → 181/32) ⇝ 81/14 | note:71 gain:0.05814213562373047 clip:1 s:piano release:0.1 pan:0.5787037037037037 ]", + "[ 155/28 ⇜ (361/64 → 181/32) ⇝ 81/14 | note:76 gain:0.05814213562373047 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", + "[ 155/28 ⇜ (361/64 → 181/32) ⇝ 81/14 | note:77 gain:0.05814213562373047 clip:1 s:piano release:0.1 pan:0.6064814814814814 ]", + "[ 155/28 ⇜ (361/64 → 181/32) ⇝ 81/14 | note:81 gain:0.05814213562373047 clip:1 s:piano release:0.1 pan:0.625 ]", + "[ 11/2 ⇜ (181/32 → 363/64) ⇝ 23/4 | note:G2 gain:0.6400000000000001 clip:1 s:piano release:0.1 pan:0.44907407407407407 ]", + "[ 155/28 ⇜ (181/32 → 363/64) ⇝ 81/14 | note:71 gain:0.06400000000000002 clip:1 s:piano release:0.1 pan:0.5787037037037037 ]", + "[ 155/28 ⇜ (181/32 → 363/64) ⇝ 81/14 | note:76 gain:0.06400000000000002 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", + "[ 155/28 ⇜ (181/32 → 363/64) ⇝ 81/14 | note:77 gain:0.06400000000000002 clip:1 s:piano release:0.1 pan:0.6064814814814814 ]", + "[ 155/28 ⇜ (181/32 → 363/64) ⇝ 81/14 | note:81 gain:0.06400000000000002 clip:1 s:piano release:0.1 pan:0.625 ]", + "[ 11/2 ⇜ (363/64 → 91/16) ⇝ 23/4 | note:G2 gain:0.5814213562373072 clip:1 s:piano release:0.1 pan:0.44907407407407407 ]", + "[ 155/28 ⇜ (363/64 → 91/16) ⇝ 81/14 | note:71 gain:0.05814213562373072 clip:1 s:piano release:0.1 pan:0.5787037037037037 ]", + "[ 155/28 ⇜ (363/64 → 91/16) ⇝ 81/14 | note:76 gain:0.05814213562373072 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", + "[ 155/28 ⇜ (363/64 → 91/16) ⇝ 81/14 | note:77 gain:0.05814213562373072 clip:1 s:piano release:0.1 pan:0.6064814814814814 ]", + "[ 155/28 ⇜ (363/64 → 91/16) ⇝ 81/14 | note:81 gain:0.05814213562373072 clip:1 s:piano release:0.1 pan:0.625 ]", + "[ 11/2 ⇜ (91/16 → 365/64) ⇝ 23/4 | note:G2 gain:0.4400000000000029 clip:1 s:piano release:0.1 pan:0.44907407407407407 ]", + "[ 155/28 ⇜ (91/16 → 365/64) ⇝ 81/14 | note:71 gain:0.04400000000000029 clip:1 s:piano release:0.1 pan:0.5787037037037037 ]", + "[ 155/28 ⇜ (91/16 → 365/64) ⇝ 81/14 | note:76 gain:0.04400000000000029 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", + "[ 155/28 ⇜ (91/16 → 365/64) ⇝ 81/14 | note:77 gain:0.04400000000000029 clip:1 s:piano release:0.1 pan:0.6064814814814814 ]", + "[ 155/28 ⇜ (91/16 → 365/64) ⇝ 81/14 | note:81 gain:0.04400000000000029 clip:1 s:piano release:0.1 pan:0.625 ]", + "[ 11/2 ⇜ (365/64 → 183/32) ⇝ 23/4 | note:G2 gain:0.29857864376268894 clip:1 s:piano release:0.1 pan:0.44907407407407407 ]", + "[ 155/28 ⇜ (365/64 → 183/32) ⇝ 81/14 | note:71 gain:0.029857864376268896 clip:1 s:piano release:0.1 pan:0.5787037037037037 ]", + "[ 155/28 ⇜ (365/64 → 183/32) ⇝ 81/14 | note:76 gain:0.029857864376268896 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", + "[ 155/28 ⇜ (365/64 → 183/32) ⇝ 81/14 | note:77 gain:0.029857864376268896 clip:1 s:piano release:0.1 pan:0.6064814814814814 ]", + "[ 155/28 ⇜ (365/64 → 183/32) ⇝ 81/14 | note:81 gain:0.029857864376268896 clip:1 s:piano release:0.1 pan:0.625 ]", + "[ 11/2 ⇜ (183/32 → 367/64) ⇝ 23/4 | note:G2 gain:0.24 clip:1 s:piano release:0.1 pan:0.44907407407407407 ]", + "[ 155/28 ⇜ (183/32 → 367/64) ⇝ 81/14 | note:71 gain:0.024 clip:1 s:piano release:0.1 pan:0.5787037037037037 ]", + "[ 155/28 ⇜ (183/32 → 367/64) ⇝ 81/14 | note:76 gain:0.024 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", + "[ 155/28 ⇜ (183/32 → 367/64) ⇝ 81/14 | note:77 gain:0.024 clip:1 s:piano release:0.1 pan:0.6064814814814814 ]", + "[ 155/28 ⇜ (183/32 → 367/64) ⇝ 81/14 | note:81 gain:0.024 clip:1 s:piano release:0.1 pan:0.625 ]", + "[ 11/2 ⇜ (367/64 → 23/4) | note:G2 gain:0.2985786437626913 clip:1 s:piano release:0.1 pan:0.44907407407407407 ]", + "[ 155/28 ⇜ (367/64 → 23/4) ⇝ 81/14 | note:71 gain:0.02985786437626913 clip:1 s:piano release:0.1 pan:0.5787037037037037 ]", + "[ 155/28 ⇜ (367/64 → 23/4) ⇝ 81/14 | note:76 gain:0.02985786437626913 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", + "[ 155/28 ⇜ (367/64 → 23/4) ⇝ 81/14 | note:77 gain:0.02985786437626913 clip:1 s:piano release:0.1 pan:0.6064814814814814 ]", + "[ 155/28 ⇜ (367/64 → 23/4) ⇝ 81/14 | note:81 gain:0.02985786437626913 clip:1 s:piano release:0.1 pan:0.625 ]", + "[ 155/28 ⇜ (23/4 → 369/64) ⇝ 81/14 | note:71 gain:0.04399999999999949 clip:1 s:piano release:0.1 pan:0.5787037037037037 ]", + "[ 155/28 ⇜ (23/4 → 369/64) ⇝ 81/14 | note:76 gain:0.04399999999999949 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", + "[ 155/28 ⇜ (23/4 → 369/64) ⇝ 81/14 | note:77 gain:0.04399999999999949 clip:1 s:piano release:0.1 pan:0.6064814814814814 ]", + "[ 155/28 ⇜ (23/4 → 369/64) ⇝ 81/14 | note:81 gain:0.04399999999999949 clip:1 s:piano release:0.1 pan:0.625 ]", + "[ (23/4 → 369/64) ⇝ 47/8 | note:D5 gain:0.4399999999999949 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", + "[ (23/4 → 369/64) ⇝ 47/8 | note:F5 gain:0.4399999999999949 clip:1 s:piano release:0.1 pan:0.6064814814814814 ]", + "[ (23/4 → 369/64) ⇝ 6/1 | note:B3 gain:0.21999999999999745 clip:1 s:piano release:0.1 pan:0.5231481481481481 ]", + "[ (23/4 → 369/64) ⇝ 6/1 | note:E4 gain:0.21999999999999745 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", + "[ (23/4 → 369/64) ⇝ 6/1 | note:F4 gain:0.21999999999999745 clip:1 s:piano release:0.1 pan:0.5509259259259259 ]", + "[ (23/4 → 369/64) ⇝ 6/1 | note:A4 gain:0.21999999999999745 clip:1 s:piano release:0.1 pan:0.5694444444444444 ]", + "[ 155/28 ⇜ (369/64 → 185/32) ⇝ 81/14 | note:71 gain:0.05814213562373095 clip:1 s:piano release:0.1 pan:0.5787037037037037 ]", + "[ 155/28 ⇜ (369/64 → 185/32) ⇝ 81/14 | note:76 gain:0.05814213562373095 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", + "[ 155/28 ⇜ (369/64 → 185/32) ⇝ 81/14 | note:77 gain:0.05814213562373095 clip:1 s:piano release:0.1 pan:0.6064814814814814 ]", + "[ 155/28 ⇜ (369/64 → 185/32) ⇝ 81/14 | note:81 gain:0.05814213562373095 clip:1 s:piano release:0.1 pan:0.625 ]", + "[ 23/4 ⇜ (369/64 → 185/32) ⇝ 47/8 | note:D5 gain:0.5814213562373095 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", + "[ 23/4 ⇜ (369/64 → 185/32) ⇝ 47/8 | note:F5 gain:0.5814213562373095 clip:1 s:piano release:0.1 pan:0.6064814814814814 ]", + "[ 23/4 ⇜ (369/64 → 185/32) ⇝ 6/1 | note:B3 gain:0.29071067811865475 clip:1 s:piano release:0.1 pan:0.5231481481481481 ]", + "[ 23/4 ⇜ (369/64 → 185/32) ⇝ 6/1 | note:E4 gain:0.29071067811865475 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", + "[ 23/4 ⇜ (369/64 → 185/32) ⇝ 6/1 | note:F4 gain:0.29071067811865475 clip:1 s:piano release:0.1 pan:0.5509259259259259 ]", + "[ 23/4 ⇜ (369/64 → 185/32) ⇝ 6/1 | note:A4 gain:0.29071067811865475 clip:1 s:piano release:0.1 pan:0.5694444444444444 ]", + "[ 155/28 ⇜ (185/32 → 81/14) | note:71 gain:0.06400000000000002 clip:1 s:piano release:0.1 pan:0.5787037037037037 ]", + "[ 155/28 ⇜ (185/32 → 81/14) | note:76 gain:0.06400000000000002 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", + "[ 155/28 ⇜ (185/32 → 81/14) | note:77 gain:0.06400000000000002 clip:1 s:piano release:0.1 pan:0.6064814814814814 ]", + "[ 155/28 ⇜ (185/32 → 81/14) | note:81 gain:0.06400000000000002 clip:1 s:piano release:0.1 pan:0.625 ]", + "[ 23/4 ⇜ (185/32 → 371/64) ⇝ 47/8 | note:D5 gain:0.6400000000000001 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", + "[ 23/4 ⇜ (185/32 → 371/64) ⇝ 47/8 | note:F5 gain:0.6400000000000001 clip:1 s:piano release:0.1 pan:0.6064814814814814 ]", + "[ 23/4 ⇜ (185/32 → 371/64) ⇝ 6/1 | note:B3 gain:0.32000000000000006 clip:1 s:piano release:0.1 pan:0.5231481481481481 ]", + "[ 23/4 ⇜ (185/32 → 371/64) ⇝ 6/1 | note:E4 gain:0.32000000000000006 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", + "[ 23/4 ⇜ (185/32 → 371/64) ⇝ 6/1 | note:F4 gain:0.32000000000000006 clip:1 s:piano release:0.1 pan:0.5509259259259259 ]", + "[ 23/4 ⇜ (185/32 → 371/64) ⇝ 6/1 | note:A4 gain:0.32000000000000006 clip:1 s:piano release:0.1 pan:0.5694444444444444 ]", + "[ 23/4 ⇜ (371/64 → 93/16) ⇝ 47/8 | note:D5 gain:0.5814213562373102 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", + "[ 23/4 ⇜ (371/64 → 93/16) ⇝ 47/8 | note:F5 gain:0.5814213562373102 clip:1 s:piano release:0.1 pan:0.6064814814814814 ]", + "[ 23/4 ⇜ (371/64 → 93/16) ⇝ 6/1 | note:B3 gain:0.2907106781186551 clip:1 s:piano release:0.1 pan:0.5231481481481481 ]", + "[ 23/4 ⇜ (371/64 → 93/16) ⇝ 6/1 | note:E4 gain:0.2907106781186551 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", + "[ 23/4 ⇜ (371/64 → 93/16) ⇝ 6/1 | note:F4 gain:0.2907106781186551 clip:1 s:piano release:0.1 pan:0.5509259259259259 ]", + "[ 23/4 ⇜ (371/64 → 93/16) ⇝ 6/1 | note:A4 gain:0.2907106781186551 clip:1 s:piano release:0.1 pan:0.5694444444444444 ]", + "[ 23/4 ⇜ (93/16 → 373/64) ⇝ 47/8 | note:D5 gain:0.4400000000000073 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", + "[ 23/4 ⇜ (93/16 → 373/64) ⇝ 47/8 | note:F5 gain:0.4400000000000073 clip:1 s:piano release:0.1 pan:0.6064814814814814 ]", + "[ 23/4 ⇜ (93/16 → 373/64) ⇝ 6/1 | note:B3 gain:0.22000000000000364 clip:1 s:piano release:0.1 pan:0.5231481481481481 ]", + "[ 23/4 ⇜ (93/16 → 373/64) ⇝ 6/1 | note:E4 gain:0.22000000000000364 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", + "[ 23/4 ⇜ (93/16 → 373/64) ⇝ 6/1 | note:F4 gain:0.22000000000000364 clip:1 s:piano release:0.1 pan:0.5509259259259259 ]", + "[ 23/4 ⇜ (93/16 → 373/64) ⇝ 6/1 | note:A4 gain:0.22000000000000364 clip:1 s:piano release:0.1 pan:0.5694444444444444 ]", + "[ 23/4 ⇜ (373/64 → 187/32) ⇝ 47/8 | note:D5 gain:0.298578643762692 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", + "[ 23/4 ⇜ (373/64 → 187/32) ⇝ 47/8 | note:F5 gain:0.298578643762692 clip:1 s:piano release:0.1 pan:0.6064814814814814 ]", + "[ 23/4 ⇜ (373/64 → 187/32) ⇝ 6/1 | note:B3 gain:0.149289321881346 clip:1 s:piano release:0.1 pan:0.5231481481481481 ]", + "[ 23/4 ⇜ (373/64 → 187/32) ⇝ 6/1 | note:E4 gain:0.149289321881346 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", + "[ 23/4 ⇜ (373/64 → 187/32) ⇝ 6/1 | note:F4 gain:0.149289321881346 clip:1 s:piano release:0.1 pan:0.5509259259259259 ]", + "[ 23/4 ⇜ (373/64 → 187/32) ⇝ 6/1 | note:A4 gain:0.149289321881346 clip:1 s:piano release:0.1 pan:0.5694444444444444 ]", + "[ 23/4 ⇜ (187/32 → 375/64) ⇝ 47/8 | note:D5 gain:0.24 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", + "[ 23/4 ⇜ (187/32 → 375/64) ⇝ 47/8 | note:F5 gain:0.24 clip:1 s:piano release:0.1 pan:0.6064814814814814 ]", + "[ 23/4 ⇜ (187/32 → 375/64) ⇝ 6/1 | note:B3 gain:0.12 clip:1 s:piano release:0.1 pan:0.5231481481481481 ]", + "[ 23/4 ⇜ (187/32 → 375/64) ⇝ 6/1 | note:E4 gain:0.12 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", + "[ 23/4 ⇜ (187/32 → 375/64) ⇝ 6/1 | note:F4 gain:0.12 clip:1 s:piano release:0.1 pan:0.5509259259259259 ]", + "[ 23/4 ⇜ (187/32 → 375/64) ⇝ 6/1 | note:A4 gain:0.12 clip:1 s:piano release:0.1 pan:0.5694444444444444 ]", + "[ 23/4 ⇜ (375/64 → 47/8) | note:D5 gain:0.2985786437626882 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", + "[ 23/4 ⇜ (375/64 → 47/8) | note:F5 gain:0.2985786437626882 clip:1 s:piano release:0.1 pan:0.6064814814814814 ]", + "[ 23/4 ⇜ (375/64 → 47/8) ⇝ 6/1 | note:B3 gain:0.1492893218813441 clip:1 s:piano release:0.1 pan:0.5231481481481481 ]", + "[ 23/4 ⇜ (375/64 → 47/8) ⇝ 6/1 | note:E4 gain:0.1492893218813441 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", + "[ 23/4 ⇜ (375/64 → 47/8) ⇝ 6/1 | note:F4 gain:0.1492893218813441 clip:1 s:piano release:0.1 pan:0.5509259259259259 ]", + "[ 23/4 ⇜ (375/64 → 47/8) ⇝ 6/1 | note:A4 gain:0.1492893218813441 clip:1 s:piano release:0.1 pan:0.5694444444444444 ]", + "[ 23/4 ⇜ (47/8 → 377/64) ⇝ 6/1 | note:B3 gain:0.220000000000001 clip:1 s:piano release:0.1 pan:0.5231481481481481 ]", + "[ 23/4 ⇜ (47/8 → 377/64) ⇝ 6/1 | note:E4 gain:0.220000000000001 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", + "[ 23/4 ⇜ (47/8 → 377/64) ⇝ 6/1 | note:F4 gain:0.220000000000001 clip:1 s:piano release:0.1 pan:0.5509259259259259 ]", + "[ 23/4 ⇜ (47/8 → 377/64) ⇝ 6/1 | note:A4 gain:0.220000000000001 clip:1 s:piano release:0.1 pan:0.5694444444444444 ]", + "[ 23/4 ⇜ (377/64 → 189/32) ⇝ 6/1 | note:B3 gain:0.2907106781186532 clip:1 s:piano release:0.1 pan:0.5231481481481481 ]", + "[ 23/4 ⇜ (377/64 → 189/32) ⇝ 6/1 | note:E4 gain:0.2907106781186532 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", + "[ 23/4 ⇜ (377/64 → 189/32) ⇝ 6/1 | note:F4 gain:0.2907106781186532 clip:1 s:piano release:0.1 pan:0.5509259259259259 ]", + "[ 23/4 ⇜ (377/64 → 189/32) ⇝ 6/1 | note:A4 gain:0.2907106781186532 clip:1 s:piano release:0.1 pan:0.5694444444444444 ]", + "[ 23/4 ⇜ (189/32 → 379/64) ⇝ 6/1 | note:B3 gain:0.32000000000000006 clip:1 s:piano release:0.1 pan:0.5231481481481481 ]", + "[ 23/4 ⇜ (189/32 → 379/64) ⇝ 6/1 | note:E4 gain:0.32000000000000006 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", + "[ 23/4 ⇜ (189/32 → 379/64) ⇝ 6/1 | note:F4 gain:0.32000000000000006 clip:1 s:piano release:0.1 pan:0.5509259259259259 ]", + "[ 23/4 ⇜ (189/32 → 379/64) ⇝ 6/1 | note:A4 gain:0.32000000000000006 clip:1 s:piano release:0.1 pan:0.5694444444444444 ]", + "[ 23/4 ⇜ (379/64 → 95/16) ⇝ 6/1 | note:B3 gain:0.2907106781186567 clip:1 s:piano release:0.1 pan:0.5231481481481481 ]", + "[ 23/4 ⇜ (379/64 → 95/16) ⇝ 6/1 | note:E4 gain:0.2907106781186567 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", + "[ 23/4 ⇜ (379/64 → 95/16) ⇝ 6/1 | note:F4 gain:0.2907106781186567 clip:1 s:piano release:0.1 pan:0.5509259259259259 ]", + "[ 23/4 ⇜ (379/64 → 95/16) ⇝ 6/1 | note:A4 gain:0.2907106781186567 clip:1 s:piano release:0.1 pan:0.5694444444444444 ]", + "[ 23/4 ⇜ (95/16 → 381/64) ⇝ 6/1 | note:B3 gain:0.2200000000000001 clip:1 s:piano release:0.1 pan:0.5231481481481481 ]", + "[ 23/4 ⇜ (95/16 → 381/64) ⇝ 6/1 | note:E4 gain:0.2200000000000001 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", + "[ 23/4 ⇜ (95/16 → 381/64) ⇝ 6/1 | note:F4 gain:0.2200000000000001 clip:1 s:piano release:0.1 pan:0.5509259259259259 ]", + "[ 23/4 ⇜ (95/16 → 381/64) ⇝ 6/1 | note:A4 gain:0.2200000000000001 clip:1 s:piano release:0.1 pan:0.5694444444444444 ]", + "[ 23/4 ⇜ (381/64 → 191/32) ⇝ 6/1 | note:B3 gain:0.14928932188134753 clip:1 s:piano release:0.1 pan:0.5231481481481481 ]", + "[ 23/4 ⇜ (381/64 → 191/32) ⇝ 6/1 | note:E4 gain:0.14928932188134753 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", + "[ 23/4 ⇜ (381/64 → 191/32) ⇝ 6/1 | note:F4 gain:0.14928932188134753 clip:1 s:piano release:0.1 pan:0.5509259259259259 ]", + "[ 23/4 ⇜ (381/64 → 191/32) ⇝ 6/1 | note:A4 gain:0.14928932188134753 clip:1 s:piano release:0.1 pan:0.5694444444444444 ]", + "[ 23/4 ⇜ (191/32 → 383/64) ⇝ 6/1 | note:B3 gain:0.12 clip:1 s:piano release:0.1 pan:0.5231481481481481 ]", + "[ 23/4 ⇜ (191/32 → 383/64) ⇝ 6/1 | note:E4 gain:0.12 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", + "[ 23/4 ⇜ (191/32 → 383/64) ⇝ 6/1 | note:F4 gain:0.12 clip:1 s:piano release:0.1 pan:0.5509259259259259 ]", + "[ 23/4 ⇜ (191/32 → 383/64) ⇝ 6/1 | note:A4 gain:0.12 clip:1 s:piano release:0.1 pan:0.5694444444444444 ]", + "[ 23/4 ⇜ (383/64 → 6/1) | note:B3 gain:0.1492893218813426 clip:1 s:piano release:0.1 pan:0.5231481481481481 ]", + "[ 23/4 ⇜ (383/64 → 6/1) | note:E4 gain:0.1492893218813426 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", + "[ 23/4 ⇜ (383/64 → 6/1) | note:F4 gain:0.1492893218813426 clip:1 s:piano release:0.1 pan:0.5509259259259259 ]", + "[ 23/4 ⇜ (383/64 → 6/1) | note:A4 gain:0.1492893218813426 clip:1 s:piano release:0.1 pan:0.5694444444444444 ]", + "[ (6/1 → 385/64) ⇝ 25/4 | note:F#2 gain:0.43999999999999767 clip:1 s:piano release:0.1 pan:0.4444444444444444 ]", + "[ 6/1 ⇜ (385/64 → 193/32) ⇝ 25/4 | note:F#2 gain:0.5814213562373115 clip:1 s:piano release:0.1 pan:0.4444444444444444 ]", + "[ 6/1 ⇜ (193/32 → 387/64) ⇝ 25/4 | note:F#2 gain:0.6400000000000001 clip:1 s:piano release:0.1 pan:0.4444444444444444 ]", + "[ (169/28 → 387/64) ⇝ 44/7 | note:71 gain:0.06400000000000002 clip:1 s:piano release:0.1 pan:0.5787037037037037 ]", + "[ (169/28 → 387/64) ⇝ 44/7 | note:76 gain:0.06400000000000002 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", + "[ (169/28 → 387/64) ⇝ 44/7 | note:77 gain:0.06400000000000002 clip:1 s:piano release:0.1 pan:0.6064814814814814 ]", + "[ (169/28 → 387/64) ⇝ 44/7 | note:81 gain:0.06400000000000002 clip:1 s:piano release:0.1 pan:0.625 ]", + "[ 6/1 ⇜ (387/64 → 97/16) ⇝ 25/4 | note:F#2 gain:0.5814213562373083 clip:1 s:piano release:0.1 pan:0.4444444444444444 ]", + "[ 169/28 ⇜ (387/64 → 97/16) ⇝ 44/7 | note:71 gain:0.05814213562373083 clip:1 s:piano release:0.1 pan:0.5787037037037037 ]", + "[ 169/28 ⇜ (387/64 → 97/16) ⇝ 44/7 | note:76 gain:0.05814213562373083 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", + "[ 169/28 ⇜ (387/64 → 97/16) ⇝ 44/7 | note:77 gain:0.05814213562373083 clip:1 s:piano release:0.1 pan:0.6064814814814814 ]", + "[ 169/28 ⇜ (387/64 → 97/16) ⇝ 44/7 | note:81 gain:0.05814213562373083 clip:1 s:piano release:0.1 pan:0.625 ]", + "[ 6/1 ⇜ (97/16 → 389/64) ⇝ 25/4 | note:F#2 gain:0.4400000000000045 clip:1 s:piano release:0.1 pan:0.4444444444444444 ]", + "[ 169/28 ⇜ (97/16 → 389/64) ⇝ 44/7 | note:71 gain:0.044000000000000455 clip:1 s:piano release:0.1 pan:0.5787037037037037 ]", + "[ 169/28 ⇜ (97/16 → 389/64) ⇝ 44/7 | note:76 gain:0.044000000000000455 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", + "[ 169/28 ⇜ (97/16 → 389/64) ⇝ 44/7 | note:77 gain:0.044000000000000455 clip:1 s:piano release:0.1 pan:0.6064814814814814 ]", + "[ 169/28 ⇜ (97/16 → 389/64) ⇝ 44/7 | note:81 gain:0.044000000000000455 clip:1 s:piano release:0.1 pan:0.625 ]", + "[ 6/1 ⇜ (389/64 → 195/32) ⇝ 25/4 | note:F#2 gain:0.29857864376269 clip:1 s:piano release:0.1 pan:0.4444444444444444 ]", + "[ 169/28 ⇜ (389/64 → 195/32) ⇝ 44/7 | note:71 gain:0.029857864376269 clip:1 s:piano release:0.1 pan:0.5787037037037037 ]", + "[ 169/28 ⇜ (389/64 → 195/32) ⇝ 44/7 | note:76 gain:0.029857864376269 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", + "[ 169/28 ⇜ (389/64 → 195/32) ⇝ 44/7 | note:77 gain:0.029857864376269 clip:1 s:piano release:0.1 pan:0.6064814814814814 ]", + "[ 169/28 ⇜ (389/64 → 195/32) ⇝ 44/7 | note:81 gain:0.029857864376269 clip:1 s:piano release:0.1 pan:0.625 ]", + "[ 6/1 ⇜ (195/32 → 391/64) ⇝ 25/4 | note:F#2 gain:0.24 clip:1 s:piano release:0.1 pan:0.4444444444444444 ]", + "[ 169/28 ⇜ (195/32 → 391/64) ⇝ 44/7 | note:71 gain:0.024 clip:1 s:piano release:0.1 pan:0.5787037037037037 ]", + "[ 169/28 ⇜ (195/32 → 391/64) ⇝ 44/7 | note:76 gain:0.024 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", + "[ 169/28 ⇜ (195/32 → 391/64) ⇝ 44/7 | note:77 gain:0.024 clip:1 s:piano release:0.1 pan:0.6064814814814814 ]", + "[ 169/28 ⇜ (195/32 → 391/64) ⇝ 44/7 | note:81 gain:0.024 clip:1 s:piano release:0.1 pan:0.625 ]", + "[ 6/1 ⇜ (391/64 → 49/8) ⇝ 25/4 | note:F#2 gain:0.2985786437626902 clip:1 s:piano release:0.1 pan:0.4444444444444444 ]", + "[ 169/28 ⇜ (391/64 → 49/8) ⇝ 44/7 | note:71 gain:0.029857864376269024 clip:1 s:piano release:0.1 pan:0.5787037037037037 ]", + "[ 169/28 ⇜ (391/64 → 49/8) ⇝ 44/7 | note:76 gain:0.029857864376269024 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", + "[ 169/28 ⇜ (391/64 → 49/8) ⇝ 44/7 | note:77 gain:0.029857864376269024 clip:1 s:piano release:0.1 pan:0.6064814814814814 ]", + "[ 169/28 ⇜ (391/64 → 49/8) ⇝ 44/7 | note:81 gain:0.029857864376269024 clip:1 s:piano release:0.1 pan:0.625 ]", + "[ 6/1 ⇜ (49/8 → 393/64) ⇝ 25/4 | note:F#2 gain:0.4399999999999933 clip:1 s:piano release:0.1 pan:0.4444444444444444 ]", + "[ 169/28 ⇜ (49/8 → 393/64) ⇝ 44/7 | note:71 gain:0.04399999999999933 clip:1 s:piano release:0.1 pan:0.5787037037037037 ]", + "[ 169/28 ⇜ (49/8 → 393/64) ⇝ 44/7 | note:76 gain:0.04399999999999933 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", + "[ 169/28 ⇜ (49/8 → 393/64) ⇝ 44/7 | note:77 gain:0.04399999999999933 clip:1 s:piano release:0.1 pan:0.6064814814814814 ]", + "[ 169/28 ⇜ (49/8 → 393/64) ⇝ 44/7 | note:81 gain:0.04399999999999933 clip:1 s:piano release:0.1 pan:0.625 ]", + "[ (49/8 → 393/64) ⇝ 25/4 | note:F#4 gain:0.4399999999999933 clip:1 s:piano release:0.1 pan:0.5555555555555556 ]", + "[ (49/8 → 393/64) ⇝ 25/4 | note:A#4 gain:0.4399999999999933 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", + "[ 6/1 ⇜ (393/64 → 197/32) ⇝ 25/4 | note:F#2 gain:0.5814213562373084 clip:1 s:piano release:0.1 pan:0.4444444444444444 ]", + "[ 169/28 ⇜ (393/64 → 197/32) ⇝ 44/7 | note:71 gain:0.05814213562373084 clip:1 s:piano release:0.1 pan:0.5787037037037037 ]", + "[ 169/28 ⇜ (393/64 → 197/32) ⇝ 44/7 | note:76 gain:0.05814213562373084 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", + "[ 169/28 ⇜ (393/64 → 197/32) ⇝ 44/7 | note:77 gain:0.05814213562373084 clip:1 s:piano release:0.1 pan:0.6064814814814814 ]", + "[ 169/28 ⇜ (393/64 → 197/32) ⇝ 44/7 | note:81 gain:0.05814213562373084 clip:1 s:piano release:0.1 pan:0.625 ]", + "[ 49/8 ⇜ (393/64 → 197/32) ⇝ 25/4 | note:F#4 gain:0.5814213562373084 clip:1 s:piano release:0.1 pan:0.5555555555555556 ]", + "[ 49/8 ⇜ (393/64 → 197/32) ⇝ 25/4 | note:A#4 gain:0.5814213562373084 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", + "[ 6/1 ⇜ (197/32 → 395/64) ⇝ 25/4 | note:F#2 gain:0.6400000000000001 clip:1 s:piano release:0.1 pan:0.4444444444444444 ]", + "[ 169/28 ⇜ (197/32 → 395/64) ⇝ 44/7 | note:71 gain:0.06400000000000002 clip:1 s:piano release:0.1 pan:0.5787037037037037 ]", + "[ 169/28 ⇜ (197/32 → 395/64) ⇝ 44/7 | note:76 gain:0.06400000000000002 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", + "[ 169/28 ⇜ (197/32 → 395/64) ⇝ 44/7 | note:77 gain:0.06400000000000002 clip:1 s:piano release:0.1 pan:0.6064814814814814 ]", + "[ 169/28 ⇜ (197/32 → 395/64) ⇝ 44/7 | note:81 gain:0.06400000000000002 clip:1 s:piano release:0.1 pan:0.625 ]", + "[ 49/8 ⇜ (197/32 → 395/64) ⇝ 25/4 | note:F#4 gain:0.6400000000000001 clip:1 s:piano release:0.1 pan:0.5555555555555556 ]", + "[ 49/8 ⇜ (197/32 → 395/64) ⇝ 25/4 | note:A#4 gain:0.6400000000000001 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", + "[ 6/1 ⇜ (395/64 → 99/16) ⇝ 25/4 | note:F#2 gain:0.5814213562373114 clip:1 s:piano release:0.1 pan:0.4444444444444444 ]", + "[ 169/28 ⇜ (395/64 → 99/16) ⇝ 44/7 | note:71 gain:0.05814213562373114 clip:1 s:piano release:0.1 pan:0.5787037037037037 ]", + "[ 169/28 ⇜ (395/64 → 99/16) ⇝ 44/7 | note:76 gain:0.05814213562373114 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", + "[ 169/28 ⇜ (395/64 → 99/16) ⇝ 44/7 | note:77 gain:0.05814213562373114 clip:1 s:piano release:0.1 pan:0.6064814814814814 ]", + "[ 169/28 ⇜ (395/64 → 99/16) ⇝ 44/7 | note:81 gain:0.05814213562373114 clip:1 s:piano release:0.1 pan:0.625 ]", + "[ 49/8 ⇜ (395/64 → 99/16) ⇝ 25/4 | note:F#4 gain:0.5814213562373114 clip:1 s:piano release:0.1 pan:0.5555555555555556 ]", + "[ 49/8 ⇜ (395/64 → 99/16) ⇝ 25/4 | note:A#4 gain:0.5814213562373114 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", + "[ 6/1 ⇜ (99/16 → 397/64) ⇝ 25/4 | note:F#2 gain:0.4399999999999975 clip:1 s:piano release:0.1 pan:0.4444444444444444 ]", + "[ 169/28 ⇜ (99/16 → 397/64) ⇝ 44/7 | note:71 gain:0.043999999999999755 clip:1 s:piano release:0.1 pan:0.5787037037037037 ]", + "[ 169/28 ⇜ (99/16 → 397/64) ⇝ 44/7 | note:76 gain:0.043999999999999755 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", + "[ 169/28 ⇜ (99/16 → 397/64) ⇝ 44/7 | note:77 gain:0.043999999999999755 clip:1 s:piano release:0.1 pan:0.6064814814814814 ]", + "[ 169/28 ⇜ (99/16 → 397/64) ⇝ 44/7 | note:81 gain:0.043999999999999755 clip:1 s:piano release:0.1 pan:0.625 ]", + "[ 49/8 ⇜ (99/16 → 397/64) ⇝ 25/4 | note:F#4 gain:0.4399999999999975 clip:1 s:piano release:0.1 pan:0.5555555555555556 ]", + "[ 49/8 ⇜ (99/16 → 397/64) ⇝ 25/4 | note:A#4 gain:0.4399999999999975 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", + "[ 6/1 ⇜ (397/64 → 199/32) ⇝ 25/4 | note:F#2 gain:0.2985786437626931 clip:1 s:piano release:0.1 pan:0.4444444444444444 ]", + "[ 169/28 ⇜ (397/64 → 199/32) ⇝ 44/7 | note:71 gain:0.029857864376269312 clip:1 s:piano release:0.1 pan:0.5787037037037037 ]", + "[ 169/28 ⇜ (397/64 → 199/32) ⇝ 44/7 | note:76 gain:0.029857864376269312 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", + "[ 169/28 ⇜ (397/64 → 199/32) ⇝ 44/7 | note:77 gain:0.029857864376269312 clip:1 s:piano release:0.1 pan:0.6064814814814814 ]", + "[ 169/28 ⇜ (397/64 → 199/32) ⇝ 44/7 | note:81 gain:0.029857864376269312 clip:1 s:piano release:0.1 pan:0.625 ]", + "[ 49/8 ⇜ (397/64 → 199/32) ⇝ 25/4 | note:F#4 gain:0.2985786437626931 clip:1 s:piano release:0.1 pan:0.5555555555555556 ]", + "[ 49/8 ⇜ (397/64 → 199/32) ⇝ 25/4 | note:A#4 gain:0.2985786437626931 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", + "[ 6/1 ⇜ (199/32 → 399/64) ⇝ 25/4 | note:F#2 gain:0.24 clip:1 s:piano release:0.1 pan:0.4444444444444444 ]", + "[ 169/28 ⇜ (199/32 → 399/64) ⇝ 44/7 | note:71 gain:0.024 clip:1 s:piano release:0.1 pan:0.5787037037037037 ]", + "[ 169/28 ⇜ (199/32 → 399/64) ⇝ 44/7 | note:76 gain:0.024 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", + "[ 169/28 ⇜ (199/32 → 399/64) ⇝ 44/7 | note:77 gain:0.024 clip:1 s:piano release:0.1 pan:0.6064814814814814 ]", + "[ 169/28 ⇜ (199/32 → 399/64) ⇝ 44/7 | note:81 gain:0.024 clip:1 s:piano release:0.1 pan:0.625 ]", + "[ 49/8 ⇜ (199/32 → 399/64) ⇝ 25/4 | note:F#4 gain:0.24 clip:1 s:piano release:0.1 pan:0.5555555555555556 ]", + "[ 49/8 ⇜ (199/32 → 399/64) ⇝ 25/4 | note:A#4 gain:0.24 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", + "[ 6/1 ⇜ (399/64 → 25/4) | note:F#2 gain:0.2985786437626871 clip:1 s:piano release:0.1 pan:0.4444444444444444 ]", + "[ 169/28 ⇜ (399/64 → 25/4) ⇝ 44/7 | note:71 gain:0.029857864376268712 clip:1 s:piano release:0.1 pan:0.5787037037037037 ]", + "[ 169/28 ⇜ (399/64 → 25/4) ⇝ 44/7 | note:76 gain:0.029857864376268712 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", + "[ 169/28 ⇜ (399/64 → 25/4) ⇝ 44/7 | note:77 gain:0.029857864376268712 clip:1 s:piano release:0.1 pan:0.6064814814814814 ]", + "[ 169/28 ⇜ (399/64 → 25/4) ⇝ 44/7 | note:81 gain:0.029857864376268712 clip:1 s:piano release:0.1 pan:0.625 ]", + "[ 49/8 ⇜ (399/64 → 25/4) | note:F#4 gain:0.2985786437626871 clip:1 s:piano release:0.1 pan:0.5555555555555556 ]", + "[ 49/8 ⇜ (399/64 → 25/4) | note:A#4 gain:0.2985786437626871 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", + "[ 169/28 ⇜ (25/4 → 401/64) ⇝ 44/7 | note:71 gain:0.04400000000000004 clip:1 s:piano release:0.1 pan:0.5787037037037037 ]", + "[ 169/28 ⇜ (25/4 → 401/64) ⇝ 44/7 | note:76 gain:0.04400000000000004 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", + "[ 169/28 ⇜ (25/4 → 401/64) ⇝ 44/7 | note:77 gain:0.04400000000000004 clip:1 s:piano release:0.1 pan:0.6064814814814814 ]", + "[ 169/28 ⇜ (25/4 → 401/64) ⇝ 44/7 | note:81 gain:0.04400000000000004 clip:1 s:piano release:0.1 pan:0.625 ]", + "[ 169/28 ⇜ (401/64 → 201/32) ⇝ 44/7 | note:71 gain:0.058142135623730544 clip:1 s:piano release:0.1 pan:0.5787037037037037 ]", + "[ 169/28 ⇜ (401/64 → 201/32) ⇝ 44/7 | note:76 gain:0.058142135623730544 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", + "[ 169/28 ⇜ (401/64 → 201/32) ⇝ 44/7 | note:77 gain:0.058142135623730544 clip:1 s:piano release:0.1 pan:0.6064814814814814 ]", + "[ 169/28 ⇜ (401/64 → 201/32) ⇝ 44/7 | note:81 gain:0.058142135623730544 clip:1 s:piano release:0.1 pan:0.625 ]", + "[ 169/28 ⇜ (201/32 → 44/7) | note:71 gain:0.06400000000000002 clip:1 s:piano release:0.1 pan:0.5787037037037037 ]", + "[ 169/28 ⇜ (201/32 → 44/7) | note:76 gain:0.06400000000000002 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", + "[ 169/28 ⇜ (201/32 → 44/7) | note:77 gain:0.06400000000000002 clip:1 s:piano release:0.1 pan:0.6064814814814814 ]", + "[ 169/28 ⇜ (201/32 → 44/7) | note:81 gain:0.06400000000000002 clip:1 s:piano release:0.1 pan:0.625 ]", + "[ (13/2 → 417/64) ⇝ 53/8 | note:C#5 gain:0.44000000000000317 clip:1 s:piano release:0.1 pan:0.587962962962963 ]", + "[ (13/2 → 417/64) ⇝ 53/8 | note:E5 gain:0.44000000000000317 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", + "[ (13/2 → 417/64) ⇝ 27/4 | note:Bb3 gain:0.22000000000000158 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", + "[ (13/2 → 417/64) ⇝ 27/4 | note:Eb4 gain:0.22000000000000158 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", + "[ (13/2 → 417/64) ⇝ 27/4 | note:E4 gain:0.22000000000000158 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", + "[ (13/2 → 417/64) ⇝ 27/4 | note:Ab4 gain:0.22000000000000158 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", + "[ (13/2 → 417/64) ⇝ 27/4 | note:F#2 gain:0.44000000000000317 clip:1 s:piano release:0.1 pan:0.4444444444444444 ]", + "[ 13/2 ⇜ (417/64 → 209/32) ⇝ 53/8 | note:C#5 gain:0.5814213562373073 clip:1 s:piano release:0.1 pan:0.587962962962963 ]", + "[ 13/2 ⇜ (417/64 → 209/32) ⇝ 53/8 | note:E5 gain:0.5814213562373073 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", + "[ 13/2 ⇜ (417/64 → 209/32) ⇝ 27/4 | note:Bb3 gain:0.29071067811865364 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", + "[ 13/2 ⇜ (417/64 → 209/32) ⇝ 27/4 | note:Eb4 gain:0.29071067811865364 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", + "[ 13/2 ⇜ (417/64 → 209/32) ⇝ 27/4 | note:E4 gain:0.29071067811865364 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", + "[ 13/2 ⇜ (417/64 → 209/32) ⇝ 27/4 | note:Ab4 gain:0.29071067811865364 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", + "[ 13/2 ⇜ (417/64 → 209/32) ⇝ 27/4 | note:F#2 gain:0.5814213562373073 clip:1 s:piano release:0.1 pan:0.4444444444444444 ]", + "[ 13/2 ⇜ (209/32 → 419/64) ⇝ 53/8 | note:C#5 gain:0.6400000000000001 clip:1 s:piano release:0.1 pan:0.587962962962963 ]", + "[ 13/2 ⇜ (209/32 → 419/64) ⇝ 53/8 | note:E5 gain:0.6400000000000001 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", + "[ 13/2 ⇜ (209/32 → 419/64) ⇝ 27/4 | note:Bb3 gain:0.32000000000000006 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", + "[ 13/2 ⇜ (209/32 → 419/64) ⇝ 27/4 | note:Eb4 gain:0.32000000000000006 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", + "[ 13/2 ⇜ (209/32 → 419/64) ⇝ 27/4 | note:E4 gain:0.32000000000000006 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", + "[ 13/2 ⇜ (209/32 → 419/64) ⇝ 27/4 | note:Ab4 gain:0.32000000000000006 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", + "[ 13/2 ⇜ (209/32 → 419/64) ⇝ 27/4 | note:F#2 gain:0.6400000000000001 clip:1 s:piano release:0.1 pan:0.4444444444444444 ]", + "[ 13/2 ⇜ (419/64 → 105/16) ⇝ 53/8 | note:C#5 gain:0.5814213562373125 clip:1 s:piano release:0.1 pan:0.587962962962963 ]", + "[ 13/2 ⇜ (419/64 → 105/16) ⇝ 53/8 | note:E5 gain:0.5814213562373125 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", + "[ 13/2 ⇜ (419/64 → 105/16) ⇝ 27/4 | note:Bb3 gain:0.29071067811865625 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", + "[ 13/2 ⇜ (419/64 → 105/16) ⇝ 27/4 | note:Eb4 gain:0.29071067811865625 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", + "[ 13/2 ⇜ (419/64 → 105/16) ⇝ 27/4 | note:E4 gain:0.29071067811865625 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", + "[ 13/2 ⇜ (419/64 → 105/16) ⇝ 27/4 | note:Ab4 gain:0.29071067811865625 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", + "[ 13/2 ⇜ (419/64 → 105/16) ⇝ 27/4 | note:F#2 gain:0.5814213562373125 clip:1 s:piano release:0.1 pan:0.4444444444444444 ]", + "[ 13/2 ⇜ (105/16 → 421/64) ⇝ 53/8 | note:C#5 gain:0.439999999999999 clip:1 s:piano release:0.1 pan:0.587962962962963 ]", + "[ 13/2 ⇜ (105/16 → 421/64) ⇝ 53/8 | note:E5 gain:0.439999999999999 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", + "[ 13/2 ⇜ (105/16 → 421/64) ⇝ 27/4 | note:Bb3 gain:0.2199999999999995 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", + "[ 13/2 ⇜ (105/16 → 421/64) ⇝ 27/4 | note:Eb4 gain:0.2199999999999995 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", + "[ 13/2 ⇜ (105/16 → 421/64) ⇝ 27/4 | note:E4 gain:0.2199999999999995 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", + "[ 13/2 ⇜ (105/16 → 421/64) ⇝ 27/4 | note:Ab4 gain:0.2199999999999995 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", + "[ 13/2 ⇜ (105/16 → 421/64) ⇝ 27/4 | note:F#2 gain:0.439999999999999 clip:1 s:piano release:0.1 pan:0.4444444444444444 ]", + "[ 13/2 ⇜ (421/64 → 211/32) ⇝ 53/8 | note:C#5 gain:0.2985786437626942 clip:1 s:piano release:0.1 pan:0.587962962962963 ]", + "[ 13/2 ⇜ (421/64 → 211/32) ⇝ 53/8 | note:E5 gain:0.2985786437626942 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", + "[ 13/2 ⇜ (421/64 → 211/32) ⇝ 27/4 | note:Bb3 gain:0.1492893218813471 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", + "[ 13/2 ⇜ (421/64 → 211/32) ⇝ 27/4 | note:Eb4 gain:0.1492893218813471 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", + "[ 13/2 ⇜ (421/64 → 211/32) ⇝ 27/4 | note:E4 gain:0.1492893218813471 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", + "[ 13/2 ⇜ (421/64 → 211/32) ⇝ 27/4 | note:Ab4 gain:0.1492893218813471 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", + "[ 13/2 ⇜ (421/64 → 211/32) ⇝ 27/4 | note:F#2 gain:0.2985786437626942 clip:1 s:piano release:0.1 pan:0.4444444444444444 ]", + "[ 13/2 ⇜ (211/32 → 423/64) ⇝ 53/8 | note:C#5 gain:0.24 clip:1 s:piano release:0.1 pan:0.587962962962963 ]", + "[ 13/2 ⇜ (211/32 → 423/64) ⇝ 53/8 | note:E5 gain:0.24 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", + "[ 13/2 ⇜ (211/32 → 423/64) ⇝ 27/4 | note:Bb3 gain:0.12 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", + "[ 13/2 ⇜ (211/32 → 423/64) ⇝ 27/4 | note:Eb4 gain:0.12 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", + "[ 13/2 ⇜ (211/32 → 423/64) ⇝ 27/4 | note:E4 gain:0.12 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", + "[ 13/2 ⇜ (211/32 → 423/64) ⇝ 27/4 | note:Ab4 gain:0.12 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", + "[ 13/2 ⇜ (211/32 → 423/64) ⇝ 27/4 | note:F#2 gain:0.24 clip:1 s:piano release:0.1 pan:0.4444444444444444 ]", + "[ 13/2 ⇜ (423/64 → 53/8) | note:C#5 gain:0.298578643762686 clip:1 s:piano release:0.1 pan:0.587962962962963 ]", + "[ 13/2 ⇜ (423/64 → 53/8) | note:E5 gain:0.298578643762686 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", + "[ 13/2 ⇜ (423/64 → 53/8) ⇝ 27/4 | note:Bb3 gain:0.149289321881343 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", + "[ 13/2 ⇜ (423/64 → 53/8) ⇝ 27/4 | note:Eb4 gain:0.149289321881343 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", + "[ 13/2 ⇜ (423/64 → 53/8) ⇝ 27/4 | note:E4 gain:0.149289321881343 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", + "[ 13/2 ⇜ (423/64 → 53/8) ⇝ 27/4 | note:Ab4 gain:0.149289321881343 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", + "[ 13/2 ⇜ (423/64 → 53/8) ⇝ 27/4 | note:F#2 gain:0.298578643762686 clip:1 s:piano release:0.1 pan:0.4444444444444444 ]", + "[ 13/2 ⇜ (53/8 → 425/64) ⇝ 27/4 | note:Bb3 gain:0.21999999999999942 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", + "[ 13/2 ⇜ (53/8 → 425/64) ⇝ 27/4 | note:Eb4 gain:0.21999999999999942 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", + "[ 13/2 ⇜ (53/8 → 425/64) ⇝ 27/4 | note:E4 gain:0.21999999999999942 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", + "[ 13/2 ⇜ (53/8 → 425/64) ⇝ 27/4 | note:Ab4 gain:0.21999999999999942 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", + "[ 13/2 ⇜ (53/8 → 425/64) ⇝ 27/4 | note:F#2 gain:0.43999999999999884 clip:1 s:piano release:0.1 pan:0.4444444444444444 ]", + "[ 13/2 ⇜ (425/64 → 213/32) ⇝ 27/4 | note:Bb3 gain:0.29071067811865214 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", + "[ 13/2 ⇜ (425/64 → 213/32) ⇝ 27/4 | note:Eb4 gain:0.29071067811865214 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", + "[ 13/2 ⇜ (425/64 → 213/32) ⇝ 27/4 | note:E4 gain:0.29071067811865214 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", + "[ 13/2 ⇜ (425/64 → 213/32) ⇝ 27/4 | note:Ab4 gain:0.29071067811865214 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", + "[ 13/2 ⇜ (425/64 → 213/32) ⇝ 27/4 | note:F#2 gain:0.5814213562373043 clip:1 s:piano release:0.1 pan:0.4444444444444444 ]", + "[ 13/2 ⇜ (213/32 → 427/64) ⇝ 27/4 | note:Bb3 gain:0.32000000000000006 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", + "[ 13/2 ⇜ (213/32 → 427/64) ⇝ 27/4 | note:Eb4 gain:0.32000000000000006 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", + "[ 13/2 ⇜ (213/32 → 427/64) ⇝ 27/4 | note:E4 gain:0.32000000000000006 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", + "[ 13/2 ⇜ (213/32 → 427/64) ⇝ 27/4 | note:Ab4 gain:0.32000000000000006 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", + "[ 13/2 ⇜ (213/32 → 427/64) ⇝ 27/4 | note:F#2 gain:0.6400000000000001 clip:1 s:piano release:0.1 pan:0.4444444444444444 ]", + "[ 13/2 ⇜ (427/64 → 107/16) ⇝ 27/4 | note:Bb3 gain:0.29071067811865375 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", + "[ 13/2 ⇜ (427/64 → 107/16) ⇝ 27/4 | note:Eb4 gain:0.29071067811865375 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", + "[ 13/2 ⇜ (427/64 → 107/16) ⇝ 27/4 | note:E4 gain:0.29071067811865375 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", + "[ 13/2 ⇜ (427/64 → 107/16) ⇝ 27/4 | note:Ab4 gain:0.29071067811865375 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", + "[ 13/2 ⇜ (427/64 → 107/16) ⇝ 27/4 | note:F#2 gain:0.5814213562373075 clip:1 s:piano release:0.1 pan:0.4444444444444444 ]", + "[ 13/2 ⇜ (107/16 → 429/64) ⇝ 27/4 | note:Bb3 gain:0.22000000000000167 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", + "[ 13/2 ⇜ (107/16 → 429/64) ⇝ 27/4 | note:Eb4 gain:0.22000000000000167 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", + "[ 13/2 ⇜ (107/16 → 429/64) ⇝ 27/4 | note:E4 gain:0.22000000000000167 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", + "[ 13/2 ⇜ (107/16 → 429/64) ⇝ 27/4 | note:Ab4 gain:0.22000000000000167 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", + "[ 13/2 ⇜ (107/16 → 429/64) ⇝ 27/4 | note:F#2 gain:0.44000000000000333 clip:1 s:piano release:0.1 pan:0.4444444444444444 ]", + "[ 13/2 ⇜ (429/64 → 215/32) ⇝ 27/4 | note:Bb3 gain:0.1492893218813446 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", + "[ 13/2 ⇜ (429/64 → 215/32) ⇝ 27/4 | note:Eb4 gain:0.1492893218813446 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", + "[ 13/2 ⇜ (429/64 → 215/32) ⇝ 27/4 | note:E4 gain:0.1492893218813446 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", + "[ 13/2 ⇜ (429/64 → 215/32) ⇝ 27/4 | note:Ab4 gain:0.1492893218813446 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", + "[ 13/2 ⇜ (429/64 → 215/32) ⇝ 27/4 | note:F#2 gain:0.2985786437626892 clip:1 s:piano release:0.1 pan:0.4444444444444444 ]", + "[ 13/2 ⇜ (215/32 → 431/64) ⇝ 27/4 | note:Bb3 gain:0.12 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", + "[ 13/2 ⇜ (215/32 → 431/64) ⇝ 27/4 | note:Eb4 gain:0.12 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", + "[ 13/2 ⇜ (215/32 → 431/64) ⇝ 27/4 | note:E4 gain:0.12 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", + "[ 13/2 ⇜ (215/32 → 431/64) ⇝ 27/4 | note:Ab4 gain:0.12 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", + "[ 13/2 ⇜ (215/32 → 431/64) ⇝ 27/4 | note:F#2 gain:0.24 clip:1 s:piano release:0.1 pan:0.4444444444444444 ]", + "[ 13/2 ⇜ (431/64 → 27/4) | note:Bb3 gain:0.1492893218813455 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", + "[ 13/2 ⇜ (431/64 → 27/4) | note:Eb4 gain:0.1492893218813455 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", + "[ 13/2 ⇜ (431/64 → 27/4) | note:E4 gain:0.1492893218813455 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", + "[ 13/2 ⇜ (431/64 → 27/4) | note:Ab4 gain:0.1492893218813455 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", + "[ 13/2 ⇜ (431/64 → 27/4) | note:F#2 gain:0.298578643762691 clip:1 s:piano release:0.1 pan:0.4444444444444444 ]", + "[ (27/4 → 433/64) ⇝ 55/8 | note:F#4 gain:0.43999999999999456 clip:1 s:piano release:0.1 pan:0.5555555555555556 ]", + "[ (27/4 → 433/64) ⇝ 55/8 | note:A#4 gain:0.43999999999999456 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", + "[ 27/4 ⇜ (433/64 → 217/32) ⇝ 55/8 | note:F#4 gain:0.5814213562373093 clip:1 s:piano release:0.1 pan:0.5555555555555556 ]", + "[ 27/4 ⇜ (433/64 → 217/32) ⇝ 55/8 | note:A#4 gain:0.5814213562373093 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", + "[ 27/4 ⇜ (217/32 → 435/64) ⇝ 55/8 | note:F#4 gain:0.6400000000000001 clip:1 s:piano release:0.1 pan:0.5555555555555556 ]", + "[ 27/4 ⇜ (217/32 → 435/64) ⇝ 55/8 | note:A#4 gain:0.6400000000000001 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", + "[ (95/14 → 435/64) ⇝ 197/28 | note:70 gain:0.06400000000000002 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", + "[ (95/14 → 435/64) ⇝ 197/28 | note:75 gain:0.06400000000000002 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", + "[ (95/14 → 435/64) ⇝ 197/28 | note:76 gain:0.06400000000000002 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", + "[ (95/14 → 435/64) ⇝ 197/28 | note:80 gain:0.06400000000000002 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", + "[ 27/4 ⇜ (435/64 → 109/16) ⇝ 55/8 | note:F#4 gain:0.5814213562373105 clip:1 s:piano release:0.1 pan:0.5555555555555556 ]", + "[ 27/4 ⇜ (435/64 → 109/16) ⇝ 55/8 | note:A#4 gain:0.5814213562373105 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", + "[ 95/14 ⇜ (435/64 → 109/16) ⇝ 197/28 | note:70 gain:0.05814213562373105 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", + "[ 95/14 ⇜ (435/64 → 109/16) ⇝ 197/28 | note:75 gain:0.05814213562373105 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", + "[ 95/14 ⇜ (435/64 → 109/16) ⇝ 197/28 | note:76 gain:0.05814213562373105 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", + "[ 95/14 ⇜ (435/64 → 109/16) ⇝ 197/28 | note:80 gain:0.05814213562373105 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", + "[ 27/4 ⇜ (109/16 → 437/64) ⇝ 55/8 | note:F#4 gain:0.4400000000000077 clip:1 s:piano release:0.1 pan:0.5555555555555556 ]", + "[ 27/4 ⇜ (109/16 → 437/64) ⇝ 55/8 | note:A#4 gain:0.4400000000000077 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", + "[ 95/14 ⇜ (109/16 → 437/64) ⇝ 197/28 | note:70 gain:0.044000000000000775 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", + "[ 95/14 ⇜ (109/16 → 437/64) ⇝ 197/28 | note:75 gain:0.044000000000000775 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", + "[ 95/14 ⇜ (109/16 → 437/64) ⇝ 197/28 | note:76 gain:0.044000000000000775 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", + "[ 95/14 ⇜ (109/16 → 437/64) ⇝ 197/28 | note:80 gain:0.044000000000000775 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", + "[ 27/4 ⇜ (437/64 → 219/32) ⇝ 55/8 | note:F#4 gain:0.2985786437626922 clip:1 s:piano release:0.1 pan:0.5555555555555556 ]", + "[ 27/4 ⇜ (437/64 → 219/32) ⇝ 55/8 | note:A#4 gain:0.2985786437626922 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", + "[ 95/14 ⇜ (437/64 → 219/32) ⇝ 197/28 | note:70 gain:0.029857864376269222 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", + "[ 95/14 ⇜ (437/64 → 219/32) ⇝ 197/28 | note:75 gain:0.029857864376269222 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", + "[ 95/14 ⇜ (437/64 → 219/32) ⇝ 197/28 | note:76 gain:0.029857864376269222 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", + "[ 95/14 ⇜ (437/64 → 219/32) ⇝ 197/28 | note:80 gain:0.029857864376269222 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", + "[ 27/4 ⇜ (219/32 → 439/64) ⇝ 55/8 | note:F#4 gain:0.24 clip:1 s:piano release:0.1 pan:0.5555555555555556 ]", + "[ 27/4 ⇜ (219/32 → 439/64) ⇝ 55/8 | note:A#4 gain:0.24 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", + "[ 95/14 ⇜ (219/32 → 439/64) ⇝ 197/28 | note:70 gain:0.024 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", + "[ 95/14 ⇜ (219/32 → 439/64) ⇝ 197/28 | note:75 gain:0.024 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", + "[ 95/14 ⇜ (219/32 → 439/64) ⇝ 197/28 | note:76 gain:0.024 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", + "[ 95/14 ⇜ (219/32 → 439/64) ⇝ 197/28 | note:80 gain:0.024 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", + "[ 27/4 ⇜ (439/64 → 55/8) | note:F#4 gain:0.298578643762688 clip:1 s:piano release:0.1 pan:0.5555555555555556 ]", + "[ 27/4 ⇜ (439/64 → 55/8) | note:A#4 gain:0.298578643762688 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", + "[ 95/14 ⇜ (439/64 → 55/8) ⇝ 197/28 | note:70 gain:0.029857864376268802 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", + "[ 95/14 ⇜ (439/64 → 55/8) ⇝ 197/28 | note:75 gain:0.029857864376268802 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", + "[ 95/14 ⇜ (439/64 → 55/8) ⇝ 197/28 | note:76 gain:0.029857864376268802 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", + "[ 95/14 ⇜ (439/64 → 55/8) ⇝ 197/28 | note:80 gain:0.029857864376268802 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", + "[ 95/14 ⇜ (55/8 → 441/64) ⇝ 197/28 | note:70 gain:0.04400000000000016 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", + "[ 95/14 ⇜ (55/8 → 441/64) ⇝ 197/28 | note:75 gain:0.04400000000000016 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", + "[ 95/14 ⇜ (55/8 → 441/64) ⇝ 197/28 | note:76 gain:0.04400000000000016 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", + "[ 95/14 ⇜ (55/8 → 441/64) ⇝ 197/28 | note:80 gain:0.04400000000000016 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", + "[ 95/14 ⇜ (441/64 → 221/32) ⇝ 197/28 | note:70 gain:0.058142135623730634 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", + "[ 95/14 ⇜ (441/64 → 221/32) ⇝ 197/28 | note:75 gain:0.058142135623730634 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", + "[ 95/14 ⇜ (441/64 → 221/32) ⇝ 197/28 | note:76 gain:0.058142135623730634 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", + "[ 95/14 ⇜ (441/64 → 221/32) ⇝ 197/28 | note:80 gain:0.058142135623730634 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", + "[ 95/14 ⇜ (221/32 → 443/64) ⇝ 197/28 | note:70 gain:0.06400000000000002 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", + "[ 95/14 ⇜ (221/32 → 443/64) ⇝ 197/28 | note:75 gain:0.06400000000000002 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", + "[ 95/14 ⇜ (221/32 → 443/64) ⇝ 197/28 | note:76 gain:0.06400000000000002 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", + "[ 95/14 ⇜ (221/32 → 443/64) ⇝ 197/28 | note:80 gain:0.06400000000000002 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", + "[ 95/14 ⇜ (443/64 → 111/16) ⇝ 197/28 | note:70 gain:0.058142135623731356 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", + "[ 95/14 ⇜ (443/64 → 111/16) ⇝ 197/28 | note:75 gain:0.058142135623731356 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", + "[ 95/14 ⇜ (443/64 → 111/16) ⇝ 197/28 | note:76 gain:0.058142135623731356 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", + "[ 95/14 ⇜ (443/64 → 111/16) ⇝ 197/28 | note:80 gain:0.058142135623731356 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", + "[ 95/14 ⇜ (111/16 → 445/64) ⇝ 197/28 | note:70 gain:0.04400000000000007 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", + "[ 95/14 ⇜ (111/16 → 445/64) ⇝ 197/28 | note:75 gain:0.04400000000000007 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", + "[ 95/14 ⇜ (111/16 → 445/64) ⇝ 197/28 | note:76 gain:0.04400000000000007 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", + "[ 95/14 ⇜ (111/16 → 445/64) ⇝ 197/28 | note:80 gain:0.04400000000000007 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", + "[ 95/14 ⇜ (445/64 → 223/32) ⇝ 197/28 | note:70 gain:0.029857864376269534 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", + "[ 95/14 ⇜ (445/64 → 223/32) ⇝ 197/28 | note:75 gain:0.029857864376269534 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", + "[ 95/14 ⇜ (445/64 → 223/32) ⇝ 197/28 | note:76 gain:0.029857864376269534 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", + "[ 95/14 ⇜ (445/64 → 223/32) ⇝ 197/28 | note:80 gain:0.029857864376269534 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", + "[ 95/14 ⇜ (223/32 → 447/64) ⇝ 197/28 | note:70 gain:0.024 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", + "[ 95/14 ⇜ (223/32 → 447/64) ⇝ 197/28 | note:75 gain:0.024 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", + "[ 95/14 ⇜ (223/32 → 447/64) ⇝ 197/28 | note:76 gain:0.024 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", + "[ 95/14 ⇜ (223/32 → 447/64) ⇝ 197/28 | note:80 gain:0.024 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", + "[ 95/14 ⇜ (447/64 → 7/1) ⇝ 197/28 | note:70 gain:0.02985786437626849 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", + "[ 95/14 ⇜ (447/64 → 7/1) ⇝ 197/28 | note:75 gain:0.02985786437626849 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", + "[ 95/14 ⇜ (447/64 → 7/1) ⇝ 197/28 | note:76 gain:0.02985786437626849 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", + "[ 95/14 ⇜ (447/64 → 7/1) ⇝ 197/28 | note:80 gain:0.02985786437626849 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", + "[ 95/14 ⇜ (7/1 → 449/64) ⇝ 197/28 | note:70 gain:0.04399999999999973 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", + "[ 95/14 ⇜ (7/1 → 449/64) ⇝ 197/28 | note:75 gain:0.04399999999999973 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", + "[ 95/14 ⇜ (7/1 → 449/64) ⇝ 197/28 | note:76 gain:0.04399999999999973 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", + "[ 95/14 ⇜ (7/1 → 449/64) ⇝ 197/28 | note:80 gain:0.04399999999999973 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", + "[ (7/1 → 449/64) ⇝ 29/4 | note:F#2 gain:0.4399999999999972 clip:1 s:piano release:0.1 pan:0.4444444444444444 ]", + "[ 95/14 ⇜ (449/64 → 225/32) ⇝ 197/28 | note:70 gain:0.058142135623731134 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", + "[ 95/14 ⇜ (449/64 → 225/32) ⇝ 197/28 | note:75 gain:0.058142135623731134 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", + "[ 95/14 ⇜ (449/64 → 225/32) ⇝ 197/28 | note:76 gain:0.058142135623731134 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", + "[ 95/14 ⇜ (449/64 → 225/32) ⇝ 197/28 | note:80 gain:0.058142135623731134 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", + "[ 7/1 ⇜ (449/64 → 225/32) ⇝ 29/4 | note:F#2 gain:0.5814213562373113 clip:1 s:piano release:0.1 pan:0.4444444444444444 ]", + "[ 95/14 ⇜ (225/32 → 197/28) | note:70 gain:0.06400000000000002 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", + "[ 95/14 ⇜ (225/32 → 197/28) | note:75 gain:0.06400000000000002 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", + "[ 95/14 ⇜ (225/32 → 197/28) | note:76 gain:0.06400000000000002 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", + "[ 95/14 ⇜ (225/32 → 197/28) | note:80 gain:0.06400000000000002 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", + "[ 7/1 ⇜ (225/32 → 451/64) ⇝ 29/4 | note:F#2 gain:0.6400000000000001 clip:1 s:piano release:0.1 pan:0.4444444444444444 ]", + "[ 7/1 ⇜ (451/64 → 113/16) ⇝ 29/4 | note:F#2 gain:0.5814213562373086 clip:1 s:piano release:0.1 pan:0.4444444444444444 ]", + "[ 7/1 ⇜ (113/16 → 453/64) ⇝ 29/4 | note:F#2 gain:0.44000000000000483 clip:1 s:piano release:0.1 pan:0.4444444444444444 ]", + "[ 7/1 ⇜ (453/64 → 227/32) ⇝ 29/4 | note:F#2 gain:0.29857864376269033 clip:1 s:piano release:0.1 pan:0.4444444444444444 ]", + "[ 7/1 ⇜ (227/32 → 455/64) ⇝ 29/4 | note:F#2 gain:0.24 clip:1 s:piano release:0.1 pan:0.4444444444444444 ]", + "[ 7/1 ⇜ (455/64 → 57/8) ⇝ 29/4 | note:F#2 gain:0.29857864376268994 clip:1 s:piano release:0.1 pan:0.4444444444444444 ]", + "[ 7/1 ⇜ (57/8 → 457/64) ⇝ 29/4 | note:F#2 gain:0.43999999999999295 clip:1 s:piano release:0.1 pan:0.4444444444444444 ]", + "[ (57/8 → 457/64) ⇝ 29/4 | note:F#4 gain:0.43999999999999295 clip:1 s:piano release:0.1 pan:0.5555555555555556 ]", + "[ (57/8 → 457/64) ⇝ 29/4 | note:A#4 gain:0.43999999999999295 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", + "[ 7/1 ⇜ (457/64 → 229/32) ⇝ 29/4 | note:F#2 gain:0.5814213562373082 clip:1 s:piano release:0.1 pan:0.4444444444444444 ]", + "[ 57/8 ⇜ (457/64 → 229/32) ⇝ 29/4 | note:F#4 gain:0.5814213562373082 clip:1 s:piano release:0.1 pan:0.5555555555555556 ]", + "[ 57/8 ⇜ (457/64 → 229/32) ⇝ 29/4 | note:A#4 gain:0.5814213562373082 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", + "[ 7/1 ⇜ (229/32 → 459/64) ⇝ 29/4 | note:F#2 gain:0.6400000000000001 clip:1 s:piano release:0.1 pan:0.4444444444444444 ]", + "[ 57/8 ⇜ (229/32 → 459/64) ⇝ 29/4 | note:F#4 gain:0.6400000000000001 clip:1 s:piano release:0.1 pan:0.5555555555555556 ]", + "[ 57/8 ⇜ (229/32 → 459/64) ⇝ 29/4 | note:A#4 gain:0.6400000000000001 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", + "[ 7/1 ⇜ (459/64 → 115/16) ⇝ 29/4 | note:F#2 gain:0.5814213562373116 clip:1 s:piano release:0.1 pan:0.4444444444444444 ]", + "[ 57/8 ⇜ (459/64 → 115/16) ⇝ 29/4 | note:F#4 gain:0.5814213562373116 clip:1 s:piano release:0.1 pan:0.5555555555555556 ]", + "[ 57/8 ⇜ (459/64 → 115/16) ⇝ 29/4 | note:A#4 gain:0.5814213562373116 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", + "[ 7/1 ⇜ (115/16 → 461/64) ⇝ 29/4 | note:F#2 gain:0.43999999999999784 clip:1 s:piano release:0.1 pan:0.4444444444444444 ]", + "[ 57/8 ⇜ (115/16 → 461/64) ⇝ 29/4 | note:F#4 gain:0.43999999999999784 clip:1 s:piano release:0.1 pan:0.5555555555555556 ]", + "[ 57/8 ⇜ (115/16 → 461/64) ⇝ 29/4 | note:A#4 gain:0.43999999999999784 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", + "[ 7/1 ⇜ (461/64 → 231/32) ⇝ 29/4 | note:F#2 gain:0.2985786437626934 clip:1 s:piano release:0.1 pan:0.4444444444444444 ]", + "[ 57/8 ⇜ (461/64 → 231/32) ⇝ 29/4 | note:F#4 gain:0.2985786437626934 clip:1 s:piano release:0.1 pan:0.5555555555555556 ]", + "[ 57/8 ⇜ (461/64 → 231/32) ⇝ 29/4 | note:A#4 gain:0.2985786437626934 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", + "[ 7/1 ⇜ (231/32 → 463/64) ⇝ 29/4 | note:F#2 gain:0.24 clip:1 s:piano release:0.1 pan:0.4444444444444444 ]", + "[ 57/8 ⇜ (231/32 → 463/64) ⇝ 29/4 | note:F#4 gain:0.24 clip:1 s:piano release:0.1 pan:0.5555555555555556 ]", + "[ 57/8 ⇜ (231/32 → 463/64) ⇝ 29/4 | note:A#4 gain:0.24 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", + "[ 7/1 ⇜ (463/64 → 29/4) | note:F#2 gain:0.2985786437626869 clip:1 s:piano release:0.1 pan:0.4444444444444444 ]", + "[ 57/8 ⇜ (463/64 → 29/4) | note:F#4 gain:0.2985786437626869 clip:1 s:piano release:0.1 pan:0.5555555555555556 ]", + "[ 57/8 ⇜ (463/64 → 29/4) | note:A#4 gain:0.2985786437626869 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", + "[ (29/4 → 465/64) ⇝ 15/2 | note:Bb3 gain:0.22000000000000003 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", + "[ (29/4 → 465/64) ⇝ 15/2 | note:Eb4 gain:0.22000000000000003 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", + "[ (29/4 → 465/64) ⇝ 15/2 | note:E4 gain:0.22000000000000003 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", + "[ (29/4 → 465/64) ⇝ 15/2 | note:Ab4 gain:0.22000000000000003 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", + "[ 29/4 ⇜ (465/64 → 233/32) ⇝ 15/2 | note:Bb3 gain:0.2907106781186526 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", + "[ 29/4 ⇜ (465/64 → 233/32) ⇝ 15/2 | note:Eb4 gain:0.2907106781186526 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", + "[ 29/4 ⇜ (465/64 → 233/32) ⇝ 15/2 | note:E4 gain:0.2907106781186526 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", + "[ 29/4 ⇜ (465/64 → 233/32) ⇝ 15/2 | note:Ab4 gain:0.2907106781186526 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", + "[ 29/4 ⇜ (233/32 → 467/64) ⇝ 15/2 | note:Bb3 gain:0.32000000000000006 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", + "[ 29/4 ⇜ (233/32 → 467/64) ⇝ 15/2 | note:Eb4 gain:0.32000000000000006 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", + "[ 29/4 ⇜ (233/32 → 467/64) ⇝ 15/2 | note:E4 gain:0.32000000000000006 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", + "[ 29/4 ⇜ (233/32 → 467/64) ⇝ 15/2 | note:Ab4 gain:0.32000000000000006 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", + "[ 29/4 ⇜ (467/64 → 117/16) ⇝ 15/2 | note:Bb3 gain:0.2907106781186573 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", + "[ 29/4 ⇜ (467/64 → 117/16) ⇝ 15/2 | note:Eb4 gain:0.2907106781186573 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", + "[ 29/4 ⇜ (467/64 → 117/16) ⇝ 15/2 | note:E4 gain:0.2907106781186573 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", + "[ 29/4 ⇜ (467/64 → 117/16) ⇝ 15/2 | note:Ab4 gain:0.2907106781186573 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", + "[ 29/4 ⇜ (117/16 → 469/64) ⇝ 15/2 | note:Bb3 gain:0.22000000000000108 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", + "[ 29/4 ⇜ (117/16 → 469/64) ⇝ 15/2 | note:Eb4 gain:0.22000000000000108 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", + "[ 29/4 ⇜ (117/16 → 469/64) ⇝ 15/2 | note:E4 gain:0.22000000000000108 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", + "[ 29/4 ⇜ (117/16 → 469/64) ⇝ 15/2 | note:Ab4 gain:0.22000000000000108 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", + "[ 29/4 ⇜ (469/64 → 235/32) ⇝ 15/2 | note:Bb3 gain:0.14928932188134822 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", + "[ 29/4 ⇜ (469/64 → 235/32) ⇝ 15/2 | note:Eb4 gain:0.14928932188134822 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", + "[ 29/4 ⇜ (469/64 → 235/32) ⇝ 15/2 | note:E4 gain:0.14928932188134822 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", + "[ 29/4 ⇜ (469/64 → 235/32) ⇝ 15/2 | note:Ab4 gain:0.14928932188134822 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", + "[ 29/4 ⇜ (235/32 → 471/64) ⇝ 15/2 | note:Bb3 gain:0.12 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", + "[ 29/4 ⇜ (235/32 → 471/64) ⇝ 15/2 | note:Eb4 gain:0.12 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", + "[ 29/4 ⇜ (235/32 → 471/64) ⇝ 15/2 | note:E4 gain:0.12 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", + "[ 29/4 ⇜ (235/32 → 471/64) ⇝ 15/2 | note:Ab4 gain:0.12 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", + "[ 29/4 ⇜ (471/64 → 59/8) ⇝ 15/2 | note:Bb3 gain:0.14928932188134592 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", + "[ 29/4 ⇜ (471/64 → 59/8) ⇝ 15/2 | note:Eb4 gain:0.14928932188134592 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", + "[ 29/4 ⇜ (471/64 → 59/8) ⇝ 15/2 | note:E4 gain:0.14928932188134592 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", + "[ 29/4 ⇜ (471/64 → 59/8) ⇝ 15/2 | note:Ab4 gain:0.14928932188134592 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", + "[ 29/4 ⇜ (59/8 → 473/64) ⇝ 15/2 | note:Bb3 gain:0.21999999999999786 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", + "[ 29/4 ⇜ (59/8 → 473/64) ⇝ 15/2 | note:Eb4 gain:0.21999999999999786 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", + "[ 29/4 ⇜ (59/8 → 473/64) ⇝ 15/2 | note:E4 gain:0.21999999999999786 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", + "[ 29/4 ⇜ (59/8 → 473/64) ⇝ 15/2 | note:Ab4 gain:0.21999999999999786 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", + "[ 29/4 ⇜ (473/64 → 237/32) ⇝ 15/2 | note:Bb3 gain:0.2907106781186551 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", + "[ 29/4 ⇜ (473/64 → 237/32) ⇝ 15/2 | note:Eb4 gain:0.2907106781186551 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", + "[ 29/4 ⇜ (473/64 → 237/32) ⇝ 15/2 | note:E4 gain:0.2907106781186551 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", + "[ 29/4 ⇜ (473/64 → 237/32) ⇝ 15/2 | note:Ab4 gain:0.2907106781186551 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", + "[ 29/4 ⇜ (237/32 → 475/64) ⇝ 15/2 | note:Bb3 gain:0.32000000000000006 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", + "[ 29/4 ⇜ (237/32 → 475/64) ⇝ 15/2 | note:Eb4 gain:0.32000000000000006 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", + "[ 29/4 ⇜ (237/32 → 475/64) ⇝ 15/2 | note:E4 gain:0.32000000000000006 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", + "[ 29/4 ⇜ (237/32 → 475/64) ⇝ 15/2 | note:Ab4 gain:0.32000000000000006 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", + "[ 29/4 ⇜ (475/64 → 119/16) ⇝ 15/2 | note:Bb3 gain:0.2907106781186548 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", + "[ 29/4 ⇜ (475/64 → 119/16) ⇝ 15/2 | note:Eb4 gain:0.2907106781186548 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", + "[ 29/4 ⇜ (475/64 → 119/16) ⇝ 15/2 | note:E4 gain:0.2907106781186548 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", + "[ 29/4 ⇜ (475/64 → 119/16) ⇝ 15/2 | note:Ab4 gain:0.2907106781186548 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", + "[ 29/4 ⇜ (119/16 → 477/64) ⇝ 15/2 | note:Bb3 gain:0.22000000000000322 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", + "[ 29/4 ⇜ (119/16 → 477/64) ⇝ 15/2 | note:Eb4 gain:0.22000000000000322 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", + "[ 29/4 ⇜ (119/16 → 477/64) ⇝ 15/2 | note:E4 gain:0.22000000000000322 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", + "[ 29/4 ⇜ (119/16 → 477/64) ⇝ 15/2 | note:Ab4 gain:0.22000000000000322 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", + "[ 29/4 ⇜ (477/64 → 239/32) ⇝ 15/2 | note:Bb3 gain:0.14928932188134572 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", + "[ 29/4 ⇜ (477/64 → 239/32) ⇝ 15/2 | note:Eb4 gain:0.14928932188134572 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", + "[ 29/4 ⇜ (477/64 → 239/32) ⇝ 15/2 | note:E4 gain:0.14928932188134572 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", + "[ 29/4 ⇜ (477/64 → 239/32) ⇝ 15/2 | note:Ab4 gain:0.14928932188134572 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", + "[ 29/4 ⇜ (239/32 → 479/64) ⇝ 15/2 | note:Bb3 gain:0.12 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", + "[ 29/4 ⇜ (239/32 → 479/64) ⇝ 15/2 | note:Eb4 gain:0.12 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", + "[ 29/4 ⇜ (239/32 → 479/64) ⇝ 15/2 | note:E4 gain:0.12 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", + "[ 29/4 ⇜ (239/32 → 479/64) ⇝ 15/2 | note:Ab4 gain:0.12 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", + "[ 29/4 ⇜ (479/64 → 15/2) | note:Bb3 gain:0.1492893218813444 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", + "[ 29/4 ⇜ (479/64 → 15/2) | note:Eb4 gain:0.1492893218813444 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", + "[ 29/4 ⇜ (479/64 → 15/2) | note:E4 gain:0.1492893218813444 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", + "[ 29/4 ⇜ (479/64 → 15/2) | note:Ab4 gain:0.1492893218813444 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", + "[ (15/2 → 481/64) ⇝ 61/8 | note:C#5 gain:0.43999999999999134 clip:1 s:piano release:0.1 pan:0.587962962962963 ]", + "[ (15/2 → 481/64) ⇝ 61/8 | note:E5 gain:0.43999999999999134 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", + "[ (15/2 → 481/64) ⇝ 31/4 | note:F#2 gain:0.43999999999999134 clip:1 s:piano release:0.1 pan:0.4444444444444444 ]", + "[ 15/2 ⇜ (481/64 → 241/32) ⇝ 61/8 | note:C#5 gain:0.5814213562373071 clip:1 s:piano release:0.1 pan:0.587962962962963 ]", + "[ 15/2 ⇜ (481/64 → 241/32) ⇝ 61/8 | note:E5 gain:0.5814213562373071 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", + "[ 15/2 ⇜ (481/64 → 241/32) ⇝ 31/4 | note:F#2 gain:0.5814213562373071 clip:1 s:piano release:0.1 pan:0.4444444444444444 ]", + "[ 15/2 ⇜ (241/32 → 483/64) ⇝ 61/8 | note:C#5 gain:0.6400000000000001 clip:1 s:piano release:0.1 pan:0.587962962962963 ]", + "[ 15/2 ⇜ (241/32 → 483/64) ⇝ 61/8 | note:E5 gain:0.6400000000000001 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", + "[ 15/2 ⇜ (241/32 → 483/64) ⇝ 31/4 | note:F#2 gain:0.6400000000000001 clip:1 s:piano release:0.1 pan:0.4444444444444444 ]", + "[ (211/28 → 483/64) ⇝ 109/14 | note:70 gain:0.06400000000000002 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", + "[ (211/28 → 483/64) ⇝ 109/14 | note:75 gain:0.06400000000000002 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", + "[ (211/28 → 483/64) ⇝ 109/14 | note:76 gain:0.06400000000000002 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", + "[ (211/28 → 483/64) ⇝ 109/14 | note:80 gain:0.06400000000000002 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", + "[ 15/2 ⇜ (483/64 → 121/16) ⇝ 61/8 | note:C#5 gain:0.5814213562373127 clip:1 s:piano release:0.1 pan:0.587962962962963 ]", + "[ 15/2 ⇜ (483/64 → 121/16) ⇝ 61/8 | note:E5 gain:0.5814213562373127 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", + "[ 15/2 ⇜ (483/64 → 121/16) ⇝ 31/4 | note:F#2 gain:0.5814213562373127 clip:1 s:piano release:0.1 pan:0.4444444444444444 ]", + "[ 211/28 ⇜ (483/64 → 121/16) ⇝ 109/14 | note:70 gain:0.05814213562373127 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", + "[ 211/28 ⇜ (483/64 → 121/16) ⇝ 109/14 | note:75 gain:0.05814213562373127 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", + "[ 211/28 ⇜ (483/64 → 121/16) ⇝ 109/14 | note:76 gain:0.05814213562373127 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", + "[ 211/28 ⇜ (483/64 → 121/16) ⇝ 109/14 | note:80 gain:0.05814213562373127 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", + "[ 15/2 ⇜ (121/16 → 485/64) ⇝ 61/8 | note:C#5 gain:0.43999999999999945 clip:1 s:piano release:0.1 pan:0.587962962962963 ]", + "[ 15/2 ⇜ (121/16 → 485/64) ⇝ 61/8 | note:E5 gain:0.43999999999999945 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", + "[ 15/2 ⇜ (121/16 → 485/64) ⇝ 31/4 | note:F#2 gain:0.43999999999999945 clip:1 s:piano release:0.1 pan:0.4444444444444444 ]", + "[ 211/28 ⇜ (121/16 → 485/64) ⇝ 109/14 | note:70 gain:0.04399999999999995 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", + "[ 211/28 ⇜ (121/16 → 485/64) ⇝ 109/14 | note:75 gain:0.04399999999999995 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", + "[ 211/28 ⇜ (121/16 → 485/64) ⇝ 109/14 | note:76 gain:0.04399999999999995 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", + "[ 211/28 ⇜ (121/16 → 485/64) ⇝ 109/14 | note:80 gain:0.04399999999999995 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", + "[ 15/2 ⇜ (485/64 → 243/32) ⇝ 61/8 | note:C#5 gain:0.29857864376269444 clip:1 s:piano release:0.1 pan:0.587962962962963 ]", + "[ 15/2 ⇜ (485/64 → 243/32) ⇝ 61/8 | note:E5 gain:0.29857864376269444 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", + "[ 15/2 ⇜ (485/64 → 243/32) ⇝ 31/4 | note:F#2 gain:0.29857864376269444 clip:1 s:piano release:0.1 pan:0.4444444444444444 ]", + "[ 211/28 ⇜ (485/64 → 243/32) ⇝ 109/14 | note:70 gain:0.029857864376269444 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", + "[ 211/28 ⇜ (485/64 → 243/32) ⇝ 109/14 | note:75 gain:0.029857864376269444 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", + "[ 211/28 ⇜ (485/64 → 243/32) ⇝ 109/14 | note:76 gain:0.029857864376269444 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", + "[ 211/28 ⇜ (485/64 → 243/32) ⇝ 109/14 | note:80 gain:0.029857864376269444 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", + "[ 15/2 ⇜ (243/32 → 487/64) ⇝ 61/8 | note:C#5 gain:0.24 clip:1 s:piano release:0.1 pan:0.587962962962963 ]", + "[ 15/2 ⇜ (243/32 → 487/64) ⇝ 61/8 | note:E5 gain:0.24 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", + "[ 15/2 ⇜ (243/32 → 487/64) ⇝ 31/4 | note:F#2 gain:0.24 clip:1 s:piano release:0.1 pan:0.4444444444444444 ]", + "[ 211/28 ⇜ (243/32 → 487/64) ⇝ 109/14 | note:70 gain:0.024 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", + "[ 211/28 ⇜ (243/32 → 487/64) ⇝ 109/14 | note:75 gain:0.024 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", + "[ 211/28 ⇜ (243/32 → 487/64) ⇝ 109/14 | note:76 gain:0.024 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", + "[ 211/28 ⇜ (243/32 → 487/64) ⇝ 109/14 | note:80 gain:0.024 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", + "[ 15/2 ⇜ (487/64 → 61/8) | note:C#5 gain:0.2985786437626858 clip:1 s:piano release:0.1 pan:0.587962962962963 ]", + "[ 15/2 ⇜ (487/64 → 61/8) | note:E5 gain:0.2985786437626858 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", + "[ 15/2 ⇜ (487/64 → 61/8) ⇝ 31/4 | note:F#2 gain:0.2985786437626858 clip:1 s:piano release:0.1 pan:0.4444444444444444 ]", + "[ 211/28 ⇜ (487/64 → 61/8) ⇝ 109/14 | note:70 gain:0.02985786437626858 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", + "[ 211/28 ⇜ (487/64 → 61/8) ⇝ 109/14 | note:75 gain:0.02985786437626858 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", + "[ 211/28 ⇜ (487/64 → 61/8) ⇝ 109/14 | note:76 gain:0.02985786437626858 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", + "[ 211/28 ⇜ (487/64 → 61/8) ⇝ 109/14 | note:80 gain:0.02985786437626858 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", + "[ 15/2 ⇜ (61/8 → 489/64) ⇝ 31/4 | note:F#2 gain:0.43999999999999845 clip:1 s:piano release:0.1 pan:0.4444444444444444 ]", + "[ 211/28 ⇜ (61/8 → 489/64) ⇝ 109/14 | note:70 gain:0.043999999999999845 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", + "[ 211/28 ⇜ (61/8 → 489/64) ⇝ 109/14 | note:75 gain:0.043999999999999845 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", + "[ 211/28 ⇜ (61/8 → 489/64) ⇝ 109/14 | note:76 gain:0.043999999999999845 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", + "[ 211/28 ⇜ (61/8 → 489/64) ⇝ 109/14 | note:80 gain:0.043999999999999845 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", + "[ 15/2 ⇜ (489/64 → 245/32) ⇝ 31/4 | note:F#2 gain:0.581421356237304 clip:1 s:piano release:0.1 pan:0.4444444444444444 ]", + "[ 211/28 ⇜ (489/64 → 245/32) ⇝ 109/14 | note:70 gain:0.0581421356237304 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", + "[ 211/28 ⇜ (489/64 → 245/32) ⇝ 109/14 | note:75 gain:0.0581421356237304 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", + "[ 211/28 ⇜ (489/64 → 245/32) ⇝ 109/14 | note:76 gain:0.0581421356237304 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", + "[ 211/28 ⇜ (489/64 → 245/32) ⇝ 109/14 | note:80 gain:0.0581421356237304 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", + "[ 15/2 ⇜ (245/32 → 491/64) ⇝ 31/4 | note:F#2 gain:0.6400000000000001 clip:1 s:piano release:0.1 pan:0.4444444444444444 ]", + "[ 211/28 ⇜ (245/32 → 491/64) ⇝ 109/14 | note:70 gain:0.06400000000000002 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", + "[ 211/28 ⇜ (245/32 → 491/64) ⇝ 109/14 | note:75 gain:0.06400000000000002 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", + "[ 211/28 ⇜ (245/32 → 491/64) ⇝ 109/14 | note:76 gain:0.06400000000000002 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", + "[ 211/28 ⇜ (245/32 → 491/64) ⇝ 109/14 | note:80 gain:0.06400000000000002 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", + "[ 15/2 ⇜ (491/64 → 123/16) ⇝ 31/4 | note:F#2 gain:0.5814213562373077 clip:1 s:piano release:0.1 pan:0.4444444444444444 ]", + "[ 211/28 ⇜ (491/64 → 123/16) ⇝ 109/14 | note:70 gain:0.05814213562373077 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", + "[ 211/28 ⇜ (491/64 → 123/16) ⇝ 109/14 | note:75 gain:0.05814213562373077 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", + "[ 211/28 ⇜ (491/64 → 123/16) ⇝ 109/14 | note:76 gain:0.05814213562373077 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", + "[ 211/28 ⇜ (491/64 → 123/16) ⇝ 109/14 | note:80 gain:0.05814213562373077 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", + "[ 15/2 ⇜ (123/16 → 493/64) ⇝ 31/4 | note:F#2 gain:0.4400000000000038 clip:1 s:piano release:0.1 pan:0.4444444444444444 ]", + "[ 211/28 ⇜ (123/16 → 493/64) ⇝ 109/14 | note:70 gain:0.04400000000000038 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", + "[ 211/28 ⇜ (123/16 → 493/64) ⇝ 109/14 | note:75 gain:0.04400000000000038 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", + "[ 211/28 ⇜ (123/16 → 493/64) ⇝ 109/14 | note:76 gain:0.04400000000000038 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", + "[ 211/28 ⇜ (123/16 → 493/64) ⇝ 109/14 | note:80 gain:0.04400000000000038 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", + "[ 15/2 ⇜ (493/64 → 247/32) ⇝ 31/4 | note:F#2 gain:0.2985786437626895 clip:1 s:piano release:0.1 pan:0.4444444444444444 ]", + "[ 211/28 ⇜ (493/64 → 247/32) ⇝ 109/14 | note:70 gain:0.02985786437626895 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", + "[ 211/28 ⇜ (493/64 → 247/32) ⇝ 109/14 | note:75 gain:0.02985786437626895 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", + "[ 211/28 ⇜ (493/64 → 247/32) ⇝ 109/14 | note:76 gain:0.02985786437626895 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", + "[ 211/28 ⇜ (493/64 → 247/32) ⇝ 109/14 | note:80 gain:0.02985786437626895 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", + "[ 15/2 ⇜ (247/32 → 495/64) ⇝ 31/4 | note:F#2 gain:0.24 clip:1 s:piano release:0.1 pan:0.4444444444444444 ]", + "[ 211/28 ⇜ (247/32 → 495/64) ⇝ 109/14 | note:70 gain:0.024 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", + "[ 211/28 ⇜ (247/32 → 495/64) ⇝ 109/14 | note:75 gain:0.024 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", + "[ 211/28 ⇜ (247/32 → 495/64) ⇝ 109/14 | note:76 gain:0.024 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", + "[ 211/28 ⇜ (247/32 → 495/64) ⇝ 109/14 | note:80 gain:0.024 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", + "[ 15/2 ⇜ (495/64 → 31/4) | note:F#2 gain:0.2985786437626907 clip:1 s:piano release:0.1 pan:0.4444444444444444 ]", + "[ 211/28 ⇜ (495/64 → 31/4) ⇝ 109/14 | note:70 gain:0.029857864376269073 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", + "[ 211/28 ⇜ (495/64 → 31/4) ⇝ 109/14 | note:75 gain:0.029857864376269073 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", + "[ 211/28 ⇜ (495/64 → 31/4) ⇝ 109/14 | note:76 gain:0.029857864376269073 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", + "[ 211/28 ⇜ (495/64 → 31/4) ⇝ 109/14 | note:80 gain:0.029857864376269073 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", + "[ 211/28 ⇜ (31/4 → 497/64) ⇝ 109/14 | note:70 gain:0.043999999999999415 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", + "[ 211/28 ⇜ (31/4 → 497/64) ⇝ 109/14 | note:75 gain:0.043999999999999415 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", + "[ 211/28 ⇜ (31/4 → 497/64) ⇝ 109/14 | note:76 gain:0.043999999999999415 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", + "[ 211/28 ⇜ (31/4 → 497/64) ⇝ 109/14 | note:80 gain:0.043999999999999415 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", + "[ (31/4 → 497/64) ⇝ 63/8 | note:C#5 gain:0.4399999999999941 clip:1 s:piano release:0.1 pan:0.587962962962963 ]", + "[ (31/4 → 497/64) ⇝ 63/8 | note:E5 gain:0.4399999999999941 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", + "[ (31/4 → 497/64) ⇝ 8/1 | note:Bb3 gain:0.21999999999999706 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", + "[ (31/4 → 497/64) ⇝ 8/1 | note:Eb4 gain:0.21999999999999706 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", + "[ (31/4 → 497/64) ⇝ 8/1 | note:E4 gain:0.21999999999999706 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", + "[ (31/4 → 497/64) ⇝ 8/1 | note:Ab4 gain:0.21999999999999706 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", + "[ 211/28 ⇜ (497/64 → 249/32) ⇝ 109/14 | note:70 gain:0.0581421356237309 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", + "[ 211/28 ⇜ (497/64 → 249/32) ⇝ 109/14 | note:75 gain:0.0581421356237309 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", + "[ 211/28 ⇜ (497/64 → 249/32) ⇝ 109/14 | note:76 gain:0.0581421356237309 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", + "[ 211/28 ⇜ (497/64 → 249/32) ⇝ 109/14 | note:80 gain:0.0581421356237309 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", + "[ 31/4 ⇜ (497/64 → 249/32) ⇝ 63/8 | note:C#5 gain:0.581421356237309 clip:1 s:piano release:0.1 pan:0.587962962962963 ]", + "[ 31/4 ⇜ (497/64 → 249/32) ⇝ 63/8 | note:E5 gain:0.581421356237309 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", + "[ 31/4 ⇜ (497/64 → 249/32) ⇝ 8/1 | note:Bb3 gain:0.2907106781186545 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", + "[ 31/4 ⇜ (497/64 → 249/32) ⇝ 8/1 | note:Eb4 gain:0.2907106781186545 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", + "[ 31/4 ⇜ (497/64 → 249/32) ⇝ 8/1 | note:E4 gain:0.2907106781186545 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", + "[ 31/4 ⇜ (497/64 → 249/32) ⇝ 8/1 | note:Ab4 gain:0.2907106781186545 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", + "[ 211/28 ⇜ (249/32 → 109/14) | note:70 gain:0.06400000000000002 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", + "[ 211/28 ⇜ (249/32 → 109/14) | note:75 gain:0.06400000000000002 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", + "[ 211/28 ⇜ (249/32 → 109/14) | note:76 gain:0.06400000000000002 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", + "[ 211/28 ⇜ (249/32 → 109/14) | note:80 gain:0.06400000000000002 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", + "[ 31/4 ⇜ (249/32 → 499/64) ⇝ 63/8 | note:C#5 gain:0.6400000000000001 clip:1 s:piano release:0.1 pan:0.587962962962963 ]", + "[ 31/4 ⇜ (249/32 → 499/64) ⇝ 63/8 | note:E5 gain:0.6400000000000001 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", + "[ 31/4 ⇜ (249/32 → 499/64) ⇝ 8/1 | note:Bb3 gain:0.32000000000000006 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", + "[ 31/4 ⇜ (249/32 → 499/64) ⇝ 8/1 | note:Eb4 gain:0.32000000000000006 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", + "[ 31/4 ⇜ (249/32 → 499/64) ⇝ 8/1 | note:E4 gain:0.32000000000000006 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", + "[ 31/4 ⇜ (249/32 → 499/64) ⇝ 8/1 | note:Ab4 gain:0.32000000000000006 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", + "[ 31/4 ⇜ (499/64 → 125/16) ⇝ 63/8 | note:C#5 gain:0.5814213562373108 clip:1 s:piano release:0.1 pan:0.587962962962963 ]", + "[ 31/4 ⇜ (499/64 → 125/16) ⇝ 63/8 | note:E5 gain:0.5814213562373108 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", + "[ 31/4 ⇜ (499/64 → 125/16) ⇝ 8/1 | note:Bb3 gain:0.2907106781186554 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", + "[ 31/4 ⇜ (499/64 → 125/16) ⇝ 8/1 | note:Eb4 gain:0.2907106781186554 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", + "[ 31/4 ⇜ (499/64 → 125/16) ⇝ 8/1 | note:E4 gain:0.2907106781186554 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", + "[ 31/4 ⇜ (499/64 → 125/16) ⇝ 8/1 | note:Ab4 gain:0.2907106781186554 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", + "[ 31/4 ⇜ (125/16 → 501/64) ⇝ 63/8 | note:C#5 gain:0.44000000000000805 clip:1 s:piano release:0.1 pan:0.587962962962963 ]", + "[ 31/4 ⇜ (125/16 → 501/64) ⇝ 63/8 | note:E5 gain:0.44000000000000805 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", + "[ 31/4 ⇜ (125/16 → 501/64) ⇝ 8/1 | note:Bb3 gain:0.22000000000000403 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", + "[ 31/4 ⇜ (125/16 → 501/64) ⇝ 8/1 | note:Eb4 gain:0.22000000000000403 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", + "[ 31/4 ⇜ (125/16 → 501/64) ⇝ 8/1 | note:E4 gain:0.22000000000000403 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", + "[ 31/4 ⇜ (125/16 → 501/64) ⇝ 8/1 | note:Ab4 gain:0.22000000000000403 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", + "[ 31/4 ⇜ (501/64 → 251/32) ⇝ 63/8 | note:C#5 gain:0.2985786437626925 clip:1 s:piano release:0.1 pan:0.587962962962963 ]", + "[ 31/4 ⇜ (501/64 → 251/32) ⇝ 63/8 | note:E5 gain:0.2985786437626925 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", + "[ 31/4 ⇜ (501/64 → 251/32) ⇝ 8/1 | note:Bb3 gain:0.14928932188134625 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", + "[ 31/4 ⇜ (501/64 → 251/32) ⇝ 8/1 | note:Eb4 gain:0.14928932188134625 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", + "[ 31/4 ⇜ (501/64 → 251/32) ⇝ 8/1 | note:E4 gain:0.14928932188134625 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", + "[ 31/4 ⇜ (501/64 → 251/32) ⇝ 8/1 | note:Ab4 gain:0.14928932188134625 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", + "[ 31/4 ⇜ (251/32 → 503/64) ⇝ 63/8 | note:C#5 gain:0.24 clip:1 s:piano release:0.1 pan:0.587962962962963 ]", + "[ 31/4 ⇜ (251/32 → 503/64) ⇝ 63/8 | note:E5 gain:0.24 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", + "[ 31/4 ⇜ (251/32 → 503/64) ⇝ 8/1 | note:Bb3 gain:0.12 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", + "[ 31/4 ⇜ (251/32 → 503/64) ⇝ 8/1 | note:Eb4 gain:0.12 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", + "[ 31/4 ⇜ (251/32 → 503/64) ⇝ 8/1 | note:E4 gain:0.12 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", + "[ 31/4 ⇜ (251/32 → 503/64) ⇝ 8/1 | note:Ab4 gain:0.12 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", + "[ 31/4 ⇜ (503/64 → 63/8) | note:C#5 gain:0.2985786437626877 clip:1 s:piano release:0.1 pan:0.587962962962963 ]", + "[ 31/4 ⇜ (503/64 → 63/8) | note:E5 gain:0.2985786437626877 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", + "[ 31/4 ⇜ (503/64 → 63/8) ⇝ 8/1 | note:Bb3 gain:0.14928932188134386 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", + "[ 31/4 ⇜ (503/64 → 63/8) ⇝ 8/1 | note:Eb4 gain:0.14928932188134386 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", + "[ 31/4 ⇜ (503/64 → 63/8) ⇝ 8/1 | note:E4 gain:0.14928932188134386 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", + "[ 31/4 ⇜ (503/64 → 63/8) ⇝ 8/1 | note:Ab4 gain:0.14928932188134386 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", + "[ 31/4 ⇜ (63/8 → 505/64) ⇝ 8/1 | note:Bb3 gain:0.2200000000000006 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", + "[ 31/4 ⇜ (63/8 → 505/64) ⇝ 8/1 | note:Eb4 gain:0.2200000000000006 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", + "[ 31/4 ⇜ (63/8 → 505/64) ⇝ 8/1 | note:E4 gain:0.2200000000000006 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", + "[ 31/4 ⇜ (63/8 → 505/64) ⇝ 8/1 | note:Ab4 gain:0.2200000000000006 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", + "[ 31/4 ⇜ (505/64 → 253/32) ⇝ 8/1 | note:Bb3 gain:0.290710678118653 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", + "[ 31/4 ⇜ (505/64 → 253/32) ⇝ 8/1 | note:Eb4 gain:0.290710678118653 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", + "[ 31/4 ⇜ (505/64 → 253/32) ⇝ 8/1 | note:E4 gain:0.290710678118653 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", + "[ 31/4 ⇜ (505/64 → 253/32) ⇝ 8/1 | note:Ab4 gain:0.290710678118653 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", + "[ 31/4 ⇜ (253/32 → 507/64) ⇝ 8/1 | note:Bb3 gain:0.32000000000000006 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", + "[ 31/4 ⇜ (253/32 → 507/64) ⇝ 8/1 | note:Eb4 gain:0.32000000000000006 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", + "[ 31/4 ⇜ (253/32 → 507/64) ⇝ 8/1 | note:E4 gain:0.32000000000000006 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", + "[ 31/4 ⇜ (253/32 → 507/64) ⇝ 8/1 | note:Ab4 gain:0.32000000000000006 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", + "[ 31/4 ⇜ (507/64 → 127/16) ⇝ 8/1 | note:Bb3 gain:0.290710678118657 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", + "[ 31/4 ⇜ (507/64 → 127/16) ⇝ 8/1 | note:Eb4 gain:0.290710678118657 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", + "[ 31/4 ⇜ (507/64 → 127/16) ⇝ 8/1 | note:E4 gain:0.290710678118657 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", + "[ 31/4 ⇜ (507/64 → 127/16) ⇝ 8/1 | note:Ab4 gain:0.290710678118657 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", + "[ 31/4 ⇜ (127/16 → 509/64) ⇝ 8/1 | note:Bb3 gain:0.22000000000000047 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", + "[ 31/4 ⇜ (127/16 → 509/64) ⇝ 8/1 | note:Eb4 gain:0.22000000000000047 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", + "[ 31/4 ⇜ (127/16 → 509/64) ⇝ 8/1 | note:E4 gain:0.22000000000000047 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", + "[ 31/4 ⇜ (127/16 → 509/64) ⇝ 8/1 | note:Ab4 gain:0.22000000000000047 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", + "[ 31/4 ⇜ (509/64 → 255/32) ⇝ 8/1 | note:Bb3 gain:0.1492893218813478 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", + "[ 31/4 ⇜ (509/64 → 255/32) ⇝ 8/1 | note:Eb4 gain:0.1492893218813478 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", + "[ 31/4 ⇜ (509/64 → 255/32) ⇝ 8/1 | note:E4 gain:0.1492893218813478 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", + "[ 31/4 ⇜ (509/64 → 255/32) ⇝ 8/1 | note:Ab4 gain:0.1492893218813478 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", + "[ 31/4 ⇜ (255/32 → 511/64) ⇝ 8/1 | note:Bb3 gain:0.12 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", + "[ 31/4 ⇜ (255/32 → 511/64) ⇝ 8/1 | note:Eb4 gain:0.12 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", + "[ 31/4 ⇜ (255/32 → 511/64) ⇝ 8/1 | note:E4 gain:0.12 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", + "[ 31/4 ⇜ (255/32 → 511/64) ⇝ 8/1 | note:Ab4 gain:0.12 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", + "[ 31/4 ⇜ (511/64 → 8/1) | note:Bb3 gain:0.14928932188134234 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", + "[ 31/4 ⇜ (511/64 → 8/1) | note:Eb4 gain:0.14928932188134234 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", + "[ 31/4 ⇜ (511/64 → 8/1) | note:E4 gain:0.14928932188134234 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", + "[ 31/4 ⇜ (511/64 → 8/1) | note:Ab4 gain:0.14928932188134234 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", + "[ (8/1 → 513/64) ⇝ 33/4 | note:C2 gain:0.43999999999999684 clip:1 s:piano release:0.1 pan:0.41666666666666663 ]", + "[ 8/1 ⇜ (513/64 → 257/32) ⇝ 33/4 | note:C2 gain:0.5814213562373108 clip:1 s:piano release:0.1 pan:0.41666666666666663 ]", + "[ 8/1 ⇜ (257/32 → 515/64) ⇝ 33/4 | note:C2 gain:0.6400000000000001 clip:1 s:piano release:0.1 pan:0.41666666666666663 ]", + "[ (225/28 → 515/64) ⇝ 58/7 | note:70 gain:0.06400000000000002 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", + "[ (225/28 → 515/64) ⇝ 58/7 | note:75 gain:0.06400000000000002 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", + "[ (225/28 → 515/64) ⇝ 58/7 | note:76 gain:0.06400000000000002 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", + "[ (225/28 → 515/64) ⇝ 58/7 | note:80 gain:0.06400000000000002 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", + "[ 8/1 ⇜ (515/64 → 129/16) ⇝ 33/4 | note:C2 gain:0.581421356237309 clip:1 s:piano release:0.1 pan:0.41666666666666663 ]", + "[ 225/28 ⇜ (515/64 → 129/16) ⇝ 58/7 | note:70 gain:0.0581421356237309 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", + "[ 225/28 ⇜ (515/64 → 129/16) ⇝ 58/7 | note:75 gain:0.0581421356237309 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", + "[ 225/28 ⇜ (515/64 → 129/16) ⇝ 58/7 | note:76 gain:0.0581421356237309 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", + "[ 225/28 ⇜ (515/64 → 129/16) ⇝ 58/7 | note:80 gain:0.0581421356237309 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", + "[ 8/1 ⇜ (129/16 → 517/64) ⇝ 33/4 | note:C2 gain:0.4400000000000053 clip:1 s:piano release:0.1 pan:0.41666666666666663 ]", + "[ 225/28 ⇜ (129/16 → 517/64) ⇝ 58/7 | note:70 gain:0.04400000000000053 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", + "[ 225/28 ⇜ (129/16 → 517/64) ⇝ 58/7 | note:75 gain:0.04400000000000053 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", + "[ 225/28 ⇜ (129/16 → 517/64) ⇝ 58/7 | note:76 gain:0.04400000000000053 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", + "[ 225/28 ⇜ (129/16 → 517/64) ⇝ 58/7 | note:80 gain:0.04400000000000053 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", + "[ 8/1 ⇜ (517/64 → 259/32) ⇝ 33/4 | note:C2 gain:0.2985786437626906 clip:1 s:piano release:0.1 pan:0.41666666666666663 ]", + "[ 225/28 ⇜ (517/64 → 259/32) ⇝ 58/7 | note:70 gain:0.029857864376269062 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", + "[ 225/28 ⇜ (517/64 → 259/32) ⇝ 58/7 | note:75 gain:0.029857864376269062 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", + "[ 225/28 ⇜ (517/64 → 259/32) ⇝ 58/7 | note:76 gain:0.029857864376269062 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", + "[ 225/28 ⇜ (517/64 → 259/32) ⇝ 58/7 | note:80 gain:0.029857864376269062 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", + "[ 8/1 ⇜ (259/32 → 519/64) ⇝ 33/4 | note:C2 gain:0.24 clip:1 s:piano release:0.1 pan:0.41666666666666663 ]", + "[ 225/28 ⇜ (259/32 → 519/64) ⇝ 58/7 | note:70 gain:0.024 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", + "[ 225/28 ⇜ (259/32 → 519/64) ⇝ 58/7 | note:75 gain:0.024 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", + "[ 225/28 ⇜ (259/32 → 519/64) ⇝ 58/7 | note:76 gain:0.024 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", + "[ 225/28 ⇜ (259/32 → 519/64) ⇝ 58/7 | note:80 gain:0.024 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", + "[ 8/1 ⇜ (519/64 → 65/8) ⇝ 33/4 | note:C2 gain:0.2985786437626896 clip:1 s:piano release:0.1 pan:0.41666666666666663 ]", + "[ 225/28 ⇜ (519/64 → 65/8) ⇝ 58/7 | note:70 gain:0.029857864376268962 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", + "[ 225/28 ⇜ (519/64 → 65/8) ⇝ 58/7 | note:75 gain:0.029857864376268962 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", + "[ 225/28 ⇜ (519/64 → 65/8) ⇝ 58/7 | note:76 gain:0.029857864376268962 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", + "[ 225/28 ⇜ (519/64 → 65/8) ⇝ 58/7 | note:80 gain:0.029857864376268962 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", + "[ 8/1 ⇜ (65/8 → 521/64) ⇝ 33/4 | note:C2 gain:0.4399999999999926 clip:1 s:piano release:0.1 pan:0.41666666666666663 ]", + "[ 225/28 ⇜ (65/8 → 521/64) ⇝ 58/7 | note:70 gain:0.04399999999999926 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", + "[ 225/28 ⇜ (65/8 → 521/64) ⇝ 58/7 | note:75 gain:0.04399999999999926 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", + "[ 225/28 ⇜ (65/8 → 521/64) ⇝ 58/7 | note:76 gain:0.04399999999999926 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", + "[ 225/28 ⇜ (65/8 → 521/64) ⇝ 58/7 | note:80 gain:0.04399999999999926 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", + "[ (65/8 → 521/64) ⇝ 33/4 | note:C4 gain:0.4399999999999926 clip:1 s:piano release:0.1 pan:0.5277777777777778 ]", + "[ (65/8 → 521/64) ⇝ 33/4 | note:G4 gain:0.4399999999999926 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", + "[ (65/8 → 521/64) ⇝ 33/4 | note:Bb4 gain:0.4399999999999926 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", + "[ 8/1 ⇜ (521/64 → 261/32) ⇝ 33/4 | note:C2 gain:0.5814213562373078 clip:1 s:piano release:0.1 pan:0.41666666666666663 ]", + "[ 225/28 ⇜ (521/64 → 261/32) ⇝ 58/7 | note:70 gain:0.05814213562373079 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", + "[ 225/28 ⇜ (521/64 → 261/32) ⇝ 58/7 | note:75 gain:0.05814213562373079 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", + "[ 225/28 ⇜ (521/64 → 261/32) ⇝ 58/7 | note:76 gain:0.05814213562373079 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", + "[ 225/28 ⇜ (521/64 → 261/32) ⇝ 58/7 | note:80 gain:0.05814213562373079 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", + "[ 65/8 ⇜ (521/64 → 261/32) ⇝ 33/4 | note:C4 gain:0.5814213562373078 clip:1 s:piano release:0.1 pan:0.5277777777777778 ]", + "[ 65/8 ⇜ (521/64 → 261/32) ⇝ 33/4 | note:G4 gain:0.5814213562373078 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", + "[ 65/8 ⇜ (521/64 → 261/32) ⇝ 33/4 | note:Bb4 gain:0.5814213562373078 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", + "[ 8/1 ⇜ (261/32 → 523/64) ⇝ 33/4 | note:C2 gain:0.6400000000000001 clip:1 s:piano release:0.1 pan:0.41666666666666663 ]", + "[ 225/28 ⇜ (261/32 → 523/64) ⇝ 58/7 | note:70 gain:0.06400000000000002 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", + "[ 225/28 ⇜ (261/32 → 523/64) ⇝ 58/7 | note:75 gain:0.06400000000000002 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", + "[ 225/28 ⇜ (261/32 → 523/64) ⇝ 58/7 | note:76 gain:0.06400000000000002 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", + "[ 225/28 ⇜ (261/32 → 523/64) ⇝ 58/7 | note:80 gain:0.06400000000000002 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", + "[ 65/8 ⇜ (261/32 → 523/64) ⇝ 33/4 | note:C4 gain:0.6400000000000001 clip:1 s:piano release:0.1 pan:0.5277777777777778 ]", + "[ 65/8 ⇜ (261/32 → 523/64) ⇝ 33/4 | note:G4 gain:0.6400000000000001 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", + "[ 65/8 ⇜ (261/32 → 523/64) ⇝ 33/4 | note:Bb4 gain:0.6400000000000001 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", + "[ 8/1 ⇜ (523/64 → 131/16) ⇝ 33/4 | note:C2 gain:0.581421356237312 clip:1 s:piano release:0.1 pan:0.41666666666666663 ]", + "[ 225/28 ⇜ (523/64 → 131/16) ⇝ 58/7 | note:70 gain:0.058142135623731196 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", + "[ 225/28 ⇜ (523/64 → 131/16) ⇝ 58/7 | note:75 gain:0.058142135623731196 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", + "[ 225/28 ⇜ (523/64 → 131/16) ⇝ 58/7 | note:76 gain:0.058142135623731196 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", + "[ 225/28 ⇜ (523/64 → 131/16) ⇝ 58/7 | note:80 gain:0.058142135623731196 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", + "[ 65/8 ⇜ (523/64 → 131/16) ⇝ 33/4 | note:C4 gain:0.581421356237312 clip:1 s:piano release:0.1 pan:0.5277777777777778 ]", + "[ 65/8 ⇜ (523/64 → 131/16) ⇝ 33/4 | note:G4 gain:0.581421356237312 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", + "[ 65/8 ⇜ (523/64 → 131/16) ⇝ 33/4 | note:Bb4 gain:0.581421356237312 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", + "[ 8/1 ⇜ (131/16 → 525/64) ⇝ 33/4 | note:C2 gain:0.4399999999999983 clip:1 s:piano release:0.1 pan:0.41666666666666663 ]", + "[ 225/28 ⇜ (131/16 → 525/64) ⇝ 58/7 | note:70 gain:0.04399999999999983 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", + "[ 225/28 ⇜ (131/16 → 525/64) ⇝ 58/7 | note:75 gain:0.04399999999999983 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", + "[ 225/28 ⇜ (131/16 → 525/64) ⇝ 58/7 | note:76 gain:0.04399999999999983 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", + "[ 225/28 ⇜ (131/16 → 525/64) ⇝ 58/7 | note:80 gain:0.04399999999999983 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", + "[ 65/8 ⇜ (131/16 → 525/64) ⇝ 33/4 | note:C4 gain:0.4399999999999983 clip:1 s:piano release:0.1 pan:0.5277777777777778 ]", + "[ 65/8 ⇜ (131/16 → 525/64) ⇝ 33/4 | note:G4 gain:0.4399999999999983 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", + "[ 65/8 ⇜ (131/16 → 525/64) ⇝ 33/4 | note:Bb4 gain:0.4399999999999983 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", + "[ 8/1 ⇜ (525/64 → 263/32) ⇝ 33/4 | note:C2 gain:0.29857864376269366 clip:1 s:piano release:0.1 pan:0.41666666666666663 ]", + "[ 225/28 ⇜ (525/64 → 263/32) ⇝ 58/7 | note:70 gain:0.029857864376269368 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", + "[ 225/28 ⇜ (525/64 → 263/32) ⇝ 58/7 | note:75 gain:0.029857864376269368 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", + "[ 225/28 ⇜ (525/64 → 263/32) ⇝ 58/7 | note:76 gain:0.029857864376269368 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", + "[ 225/28 ⇜ (525/64 → 263/32) ⇝ 58/7 | note:80 gain:0.029857864376269368 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", + "[ 65/8 ⇜ (525/64 → 263/32) ⇝ 33/4 | note:C4 gain:0.29857864376269366 clip:1 s:piano release:0.1 pan:0.5277777777777778 ]", + "[ 65/8 ⇜ (525/64 → 263/32) ⇝ 33/4 | note:G4 gain:0.29857864376269366 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", + "[ 65/8 ⇜ (525/64 → 263/32) ⇝ 33/4 | note:Bb4 gain:0.29857864376269366 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", + "[ 8/1 ⇜ (263/32 → 527/64) ⇝ 33/4 | note:C2 gain:0.24 clip:1 s:piano release:0.1 pan:0.41666666666666663 ]", + "[ 225/28 ⇜ (263/32 → 527/64) ⇝ 58/7 | note:70 gain:0.024 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", + "[ 225/28 ⇜ (263/32 → 527/64) ⇝ 58/7 | note:75 gain:0.024 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", + "[ 225/28 ⇜ (263/32 → 527/64) ⇝ 58/7 | note:76 gain:0.024 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", + "[ 225/28 ⇜ (263/32 → 527/64) ⇝ 58/7 | note:80 gain:0.024 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", + "[ 65/8 ⇜ (263/32 → 527/64) ⇝ 33/4 | note:C4 gain:0.24 clip:1 s:piano release:0.1 pan:0.5277777777777778 ]", + "[ 65/8 ⇜ (263/32 → 527/64) ⇝ 33/4 | note:G4 gain:0.24 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", + "[ 65/8 ⇜ (263/32 → 527/64) ⇝ 33/4 | note:Bb4 gain:0.24 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", + "[ 8/1 ⇜ (527/64 → 33/4) | note:C2 gain:0.29857864376268656 clip:1 s:piano release:0.1 pan:0.41666666666666663 ]", + "[ 225/28 ⇜ (527/64 → 33/4) ⇝ 58/7 | note:70 gain:0.029857864376268656 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", + "[ 225/28 ⇜ (527/64 → 33/4) ⇝ 58/7 | note:75 gain:0.029857864376268656 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", + "[ 225/28 ⇜ (527/64 → 33/4) ⇝ 58/7 | note:76 gain:0.029857864376268656 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", + "[ 225/28 ⇜ (527/64 → 33/4) ⇝ 58/7 | note:80 gain:0.029857864376268656 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", + "[ 65/8 ⇜ (527/64 → 33/4) | note:C4 gain:0.29857864376268656 clip:1 s:piano release:0.1 pan:0.5277777777777778 ]", + "[ 65/8 ⇜ (527/64 → 33/4) | note:G4 gain:0.29857864376268656 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", + "[ 65/8 ⇜ (527/64 → 33/4) | note:Bb4 gain:0.29857864376268656 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", + "[ 225/28 ⇜ (33/4 → 529/64) ⇝ 58/7 | note:70 gain:0.04399999999999996 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", + "[ 225/28 ⇜ (33/4 → 529/64) ⇝ 58/7 | note:75 gain:0.04399999999999996 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", + "[ 225/28 ⇜ (33/4 → 529/64) ⇝ 58/7 | note:76 gain:0.04399999999999996 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", + "[ 225/28 ⇜ (33/4 → 529/64) ⇝ 58/7 | note:80 gain:0.04399999999999996 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", + "[ 225/28 ⇜ (529/64 → 265/32) ⇝ 58/7 | note:70 gain:0.05814213562373049 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", + "[ 225/28 ⇜ (529/64 → 265/32) ⇝ 58/7 | note:75 gain:0.05814213562373049 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", + "[ 225/28 ⇜ (529/64 → 265/32) ⇝ 58/7 | note:76 gain:0.05814213562373049 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", + "[ 225/28 ⇜ (529/64 → 265/32) ⇝ 58/7 | note:80 gain:0.05814213562373049 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", + "[ 225/28 ⇜ (265/32 → 58/7) | note:70 gain:0.06400000000000002 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", + "[ 225/28 ⇜ (265/32 → 58/7) | note:75 gain:0.06400000000000002 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", + "[ 225/28 ⇜ (265/32 → 58/7) | note:76 gain:0.06400000000000002 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", + "[ 225/28 ⇜ (265/32 → 58/7) | note:80 gain:0.06400000000000002 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", + "[ (17/2 → 545/64) ⇝ 69/8 | note:G4 gain:0.4400000000000024 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", + "[ (17/2 → 545/64) ⇝ 69/8 | note:D5 gain:0.4400000000000024 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", + "[ (17/2 → 545/64) ⇝ 69/8 | note:F5 gain:0.4400000000000024 clip:1 s:piano release:0.1 pan:0.6064814814814814 ]", + "[ (17/2 → 545/64) ⇝ 35/4 | note:Bb3 gain:0.2200000000000012 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", + "[ (17/2 → 545/64) ⇝ 35/4 | note:D4 gain:0.2200000000000012 clip:1 s:piano release:0.1 pan:0.537037037037037 ]", + "[ (17/2 → 545/64) ⇝ 35/4 | note:Eb4 gain:0.2200000000000012 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", + "[ (17/2 → 545/64) ⇝ 35/4 | note:G4 gain:0.2200000000000012 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", + "[ (17/2 → 545/64) ⇝ 35/4 | note:C2 gain:0.4400000000000024 clip:1 s:piano release:0.1 pan:0.41666666666666663 ]", + "[ 17/2 ⇜ (545/64 → 273/32) ⇝ 69/8 | note:G4 gain:0.5814213562373068 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", + "[ 17/2 ⇜ (545/64 → 273/32) ⇝ 69/8 | note:D5 gain:0.5814213562373068 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", + "[ 17/2 ⇜ (545/64 → 273/32) ⇝ 69/8 | note:F5 gain:0.5814213562373068 clip:1 s:piano release:0.1 pan:0.6064814814814814 ]", + "[ 17/2 ⇜ (545/64 → 273/32) ⇝ 35/4 | note:Bb3 gain:0.2907106781186534 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", + "[ 17/2 ⇜ (545/64 → 273/32) ⇝ 35/4 | note:D4 gain:0.2907106781186534 clip:1 s:piano release:0.1 pan:0.537037037037037 ]", + "[ 17/2 ⇜ (545/64 → 273/32) ⇝ 35/4 | note:Eb4 gain:0.2907106781186534 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", + "[ 17/2 ⇜ (545/64 → 273/32) ⇝ 35/4 | note:G4 gain:0.2907106781186534 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", + "[ 17/2 ⇜ (545/64 → 273/32) ⇝ 35/4 | note:C2 gain:0.5814213562373068 clip:1 s:piano release:0.1 pan:0.41666666666666663 ]", + "[ 17/2 ⇜ (273/32 → 547/64) ⇝ 69/8 | note:G4 gain:0.6400000000000001 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", + "[ 17/2 ⇜ (273/32 → 547/64) ⇝ 69/8 | note:D5 gain:0.6400000000000001 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", + "[ 17/2 ⇜ (273/32 → 547/64) ⇝ 69/8 | note:F5 gain:0.6400000000000001 clip:1 s:piano release:0.1 pan:0.6064814814814814 ]", + "[ 17/2 ⇜ (273/32 → 547/64) ⇝ 35/4 | note:Bb3 gain:0.32000000000000006 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", + "[ 17/2 ⇜ (273/32 → 547/64) ⇝ 35/4 | note:D4 gain:0.32000000000000006 clip:1 s:piano release:0.1 pan:0.537037037037037 ]", + "[ 17/2 ⇜ (273/32 → 547/64) ⇝ 35/4 | note:Eb4 gain:0.32000000000000006 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", + "[ 17/2 ⇜ (273/32 → 547/64) ⇝ 35/4 | note:G4 gain:0.32000000000000006 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", + "[ 17/2 ⇜ (273/32 → 547/64) ⇝ 35/4 | note:C2 gain:0.6400000000000001 clip:1 s:piano release:0.1 pan:0.41666666666666663 ]", + "[ 17/2 ⇜ (547/64 → 137/16) ⇝ 69/8 | note:G4 gain:0.5814213562373131 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", + "[ 17/2 ⇜ (547/64 → 137/16) ⇝ 69/8 | note:D5 gain:0.5814213562373131 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", + "[ 17/2 ⇜ (547/64 → 137/16) ⇝ 69/8 | note:F5 gain:0.5814213562373131 clip:1 s:piano release:0.1 pan:0.6064814814814814 ]", + "[ 17/2 ⇜ (547/64 → 137/16) ⇝ 35/4 | note:Bb3 gain:0.29071067811865653 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", + "[ 17/2 ⇜ (547/64 → 137/16) ⇝ 35/4 | note:D4 gain:0.29071067811865653 clip:1 s:piano release:0.1 pan:0.537037037037037 ]", + "[ 17/2 ⇜ (547/64 → 137/16) ⇝ 35/4 | note:Eb4 gain:0.29071067811865653 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", + "[ 17/2 ⇜ (547/64 → 137/16) ⇝ 35/4 | note:G4 gain:0.29071067811865653 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", + "[ 17/2 ⇜ (547/64 → 137/16) ⇝ 35/4 | note:C2 gain:0.5814213562373131 clip:1 s:piano release:0.1 pan:0.41666666666666663 ]", + "[ 17/2 ⇜ (137/16 → 549/64) ⇝ 69/8 | note:G4 gain:0.4399999999999998 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", + "[ 17/2 ⇜ (137/16 → 549/64) ⇝ 69/8 | note:D5 gain:0.4399999999999998 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", + "[ 17/2 ⇜ (137/16 → 549/64) ⇝ 69/8 | note:F5 gain:0.4399999999999998 clip:1 s:piano release:0.1 pan:0.6064814814814814 ]", + "[ 17/2 ⇜ (137/16 → 549/64) ⇝ 35/4 | note:Bb3 gain:0.2199999999999999 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", + "[ 17/2 ⇜ (137/16 → 549/64) ⇝ 35/4 | note:D4 gain:0.2199999999999999 clip:1 s:piano release:0.1 pan:0.537037037037037 ]", + "[ 17/2 ⇜ (137/16 → 549/64) ⇝ 35/4 | note:Eb4 gain:0.2199999999999999 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", + "[ 17/2 ⇜ (137/16 → 549/64) ⇝ 35/4 | note:G4 gain:0.2199999999999999 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", + "[ 17/2 ⇜ (137/16 → 549/64) ⇝ 35/4 | note:C2 gain:0.4399999999999998 clip:1 s:piano release:0.1 pan:0.41666666666666663 ]", + "[ 17/2 ⇜ (549/64 → 275/32) ⇝ 69/8 | note:G4 gain:0.2985786437626947 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", + "[ 17/2 ⇜ (549/64 → 275/32) ⇝ 69/8 | note:D5 gain:0.2985786437626947 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", + "[ 17/2 ⇜ (549/64 → 275/32) ⇝ 69/8 | note:F5 gain:0.2985786437626947 clip:1 s:piano release:0.1 pan:0.6064814814814814 ]", + "[ 17/2 ⇜ (549/64 → 275/32) ⇝ 35/4 | note:Bb3 gain:0.14928932188134736 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", + "[ 17/2 ⇜ (549/64 → 275/32) ⇝ 35/4 | note:D4 gain:0.14928932188134736 clip:1 s:piano release:0.1 pan:0.537037037037037 ]", + "[ 17/2 ⇜ (549/64 → 275/32) ⇝ 35/4 | note:Eb4 gain:0.14928932188134736 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", + "[ 17/2 ⇜ (549/64 → 275/32) ⇝ 35/4 | note:G4 gain:0.14928932188134736 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", + "[ 17/2 ⇜ (549/64 → 275/32) ⇝ 35/4 | note:C2 gain:0.2985786437626947 clip:1 s:piano release:0.1 pan:0.41666666666666663 ]", + "[ 17/2 ⇜ (275/32 → 551/64) ⇝ 69/8 | note:G4 gain:0.24 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", + "[ 17/2 ⇜ (275/32 → 551/64) ⇝ 69/8 | note:D5 gain:0.24 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", + "[ 17/2 ⇜ (275/32 → 551/64) ⇝ 69/8 | note:F5 gain:0.24 clip:1 s:piano release:0.1 pan:0.6064814814814814 ]", + "[ 17/2 ⇜ (275/32 → 551/64) ⇝ 35/4 | note:Bb3 gain:0.12 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", + "[ 17/2 ⇜ (275/32 → 551/64) ⇝ 35/4 | note:D4 gain:0.12 clip:1 s:piano release:0.1 pan:0.537037037037037 ]", + "[ 17/2 ⇜ (275/32 → 551/64) ⇝ 35/4 | note:Eb4 gain:0.12 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", + "[ 17/2 ⇜ (275/32 → 551/64) ⇝ 35/4 | note:G4 gain:0.12 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", + "[ 17/2 ⇜ (275/32 → 551/64) ⇝ 35/4 | note:C2 gain:0.24 clip:1 s:piano release:0.1 pan:0.41666666666666663 ]", + "[ 17/2 ⇜ (551/64 → 69/8) | note:G4 gain:0.2985786437626855 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", + "[ 17/2 ⇜ (551/64 → 69/8) | note:D5 gain:0.2985786437626855 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", + "[ 17/2 ⇜ (551/64 → 69/8) | note:F5 gain:0.2985786437626855 clip:1 s:piano release:0.1 pan:0.6064814814814814 ]", + "[ 17/2 ⇜ (551/64 → 69/8) ⇝ 35/4 | note:Bb3 gain:0.14928932188134275 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", + "[ 17/2 ⇜ (551/64 → 69/8) ⇝ 35/4 | note:D4 gain:0.14928932188134275 clip:1 s:piano release:0.1 pan:0.537037037037037 ]", + "[ 17/2 ⇜ (551/64 → 69/8) ⇝ 35/4 | note:Eb4 gain:0.14928932188134275 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", + "[ 17/2 ⇜ (551/64 → 69/8) ⇝ 35/4 | note:G4 gain:0.14928932188134275 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", + "[ 17/2 ⇜ (551/64 → 69/8) ⇝ 35/4 | note:C2 gain:0.2985786437626855 clip:1 s:piano release:0.1 pan:0.41666666666666663 ]", + "[ 17/2 ⇜ (69/8 → 553/64) ⇝ 35/4 | note:Bb3 gain:0.21999999999999906 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", + "[ 17/2 ⇜ (69/8 → 553/64) ⇝ 35/4 | note:D4 gain:0.21999999999999906 clip:1 s:piano release:0.1 pan:0.537037037037037 ]", + "[ 17/2 ⇜ (69/8 → 553/64) ⇝ 35/4 | note:Eb4 gain:0.21999999999999906 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", + "[ 17/2 ⇜ (69/8 → 553/64) ⇝ 35/4 | note:G4 gain:0.21999999999999906 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", + "[ 17/2 ⇜ (69/8 → 553/64) ⇝ 35/4 | note:C2 gain:0.4399999999999981 clip:1 s:piano release:0.1 pan:0.41666666666666663 ]", + "[ 17/2 ⇜ (553/64 → 277/32) ⇝ 35/4 | note:Bb3 gain:0.29071067811865187 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", + "[ 17/2 ⇜ (553/64 → 277/32) ⇝ 35/4 | note:D4 gain:0.29071067811865187 clip:1 s:piano release:0.1 pan:0.537037037037037 ]", + "[ 17/2 ⇜ (553/64 → 277/32) ⇝ 35/4 | note:Eb4 gain:0.29071067811865187 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", + "[ 17/2 ⇜ (553/64 → 277/32) ⇝ 35/4 | note:G4 gain:0.29071067811865187 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", + "[ 17/2 ⇜ (553/64 → 277/32) ⇝ 35/4 | note:C2 gain:0.5814213562373037 clip:1 s:piano release:0.1 pan:0.41666666666666663 ]", + "[ 17/2 ⇜ (277/32 → 555/64) ⇝ 35/4 | note:Bb3 gain:0.32000000000000006 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", + "[ 17/2 ⇜ (277/32 → 555/64) ⇝ 35/4 | note:D4 gain:0.32000000000000006 clip:1 s:piano release:0.1 pan:0.537037037037037 ]", + "[ 17/2 ⇜ (277/32 → 555/64) ⇝ 35/4 | note:Eb4 gain:0.32000000000000006 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", + "[ 17/2 ⇜ (277/32 → 555/64) ⇝ 35/4 | note:G4 gain:0.32000000000000006 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", + "[ 17/2 ⇜ (277/32 → 555/64) ⇝ 35/4 | note:C2 gain:0.6400000000000001 clip:1 s:piano release:0.1 pan:0.41666666666666663 ]", + "[ 17/2 ⇜ (555/64 → 139/16) ⇝ 35/4 | note:Bb3 gain:0.29071067811865403 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", + "[ 17/2 ⇜ (555/64 → 139/16) ⇝ 35/4 | note:D4 gain:0.29071067811865403 clip:1 s:piano release:0.1 pan:0.537037037037037 ]", + "[ 17/2 ⇜ (555/64 → 139/16) ⇝ 35/4 | note:Eb4 gain:0.29071067811865403 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", + "[ 17/2 ⇜ (555/64 → 139/16) ⇝ 35/4 | note:G4 gain:0.29071067811865403 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", + "[ 17/2 ⇜ (555/64 → 139/16) ⇝ 35/4 | note:C2 gain:0.5814213562373081 clip:1 s:piano release:0.1 pan:0.41666666666666663 ]", + "[ 17/2 ⇜ (139/16 → 557/64) ⇝ 35/4 | note:Bb3 gain:0.22000000000000208 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", + "[ 17/2 ⇜ (139/16 → 557/64) ⇝ 35/4 | note:D4 gain:0.22000000000000208 clip:1 s:piano release:0.1 pan:0.537037037037037 ]", + "[ 17/2 ⇜ (139/16 → 557/64) ⇝ 35/4 | note:Eb4 gain:0.22000000000000208 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", + "[ 17/2 ⇜ (139/16 → 557/64) ⇝ 35/4 | note:G4 gain:0.22000000000000208 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", + "[ 17/2 ⇜ (139/16 → 557/64) ⇝ 35/4 | note:C2 gain:0.44000000000000417 clip:1 s:piano release:0.1 pan:0.41666666666666663 ]", + "[ 17/2 ⇜ (557/64 → 279/32) ⇝ 35/4 | note:Bb3 gain:0.1492893218813449 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", + "[ 17/2 ⇜ (557/64 → 279/32) ⇝ 35/4 | note:D4 gain:0.1492893218813449 clip:1 s:piano release:0.1 pan:0.537037037037037 ]", + "[ 17/2 ⇜ (557/64 → 279/32) ⇝ 35/4 | note:Eb4 gain:0.1492893218813449 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", + "[ 17/2 ⇜ (557/64 → 279/32) ⇝ 35/4 | note:G4 gain:0.1492893218813449 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", + "[ 17/2 ⇜ (557/64 → 279/32) ⇝ 35/4 | note:C2 gain:0.2985786437626898 clip:1 s:piano release:0.1 pan:0.41666666666666663 ]", + "[ 17/2 ⇜ (279/32 → 559/64) ⇝ 35/4 | note:Bb3 gain:0.12 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", + "[ 17/2 ⇜ (279/32 → 559/64) ⇝ 35/4 | note:D4 gain:0.12 clip:1 s:piano release:0.1 pan:0.537037037037037 ]", + "[ 17/2 ⇜ (279/32 → 559/64) ⇝ 35/4 | note:Eb4 gain:0.12 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", + "[ 17/2 ⇜ (279/32 → 559/64) ⇝ 35/4 | note:G4 gain:0.12 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", + "[ 17/2 ⇜ (279/32 → 559/64) ⇝ 35/4 | note:C2 gain:0.24 clip:1 s:piano release:0.1 pan:0.41666666666666663 ]", + "[ 17/2 ⇜ (559/64 → 35/4) | note:Bb3 gain:0.14928932188134522 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", + "[ 17/2 ⇜ (559/64 → 35/4) | note:D4 gain:0.14928932188134522 clip:1 s:piano release:0.1 pan:0.537037037037037 ]", + "[ 17/2 ⇜ (559/64 → 35/4) | note:Eb4 gain:0.14928932188134522 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", + "[ 17/2 ⇜ (559/64 → 35/4) | note:G4 gain:0.14928932188134522 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", + "[ 17/2 ⇜ (559/64 → 35/4) | note:C2 gain:0.29857864376269044 clip:1 s:piano release:0.1 pan:0.41666666666666663 ]", + "[ (35/4 → 561/64) ⇝ 71/8 | note:C4 gain:0.43999999999999373 clip:1 s:piano release:0.1 pan:0.5277777777777778 ]", + "[ (35/4 → 561/64) ⇝ 71/8 | note:G4 gain:0.43999999999999373 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", + "[ (35/4 → 561/64) ⇝ 71/8 | note:Bb4 gain:0.43999999999999373 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", + "[ 35/4 ⇜ (561/64 → 281/32) ⇝ 71/8 | note:C4 gain:0.5814213562373087 clip:1 s:piano release:0.1 pan:0.5277777777777778 ]", + "[ 35/4 ⇜ (561/64 → 281/32) ⇝ 71/8 | note:G4 gain:0.5814213562373087 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", + "[ 35/4 ⇜ (561/64 → 281/32) ⇝ 71/8 | note:Bb4 gain:0.5814213562373087 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", + "[ 35/4 ⇜ (281/32 → 563/64) ⇝ 71/8 | note:C4 gain:0.6400000000000001 clip:1 s:piano release:0.1 pan:0.5277777777777778 ]", + "[ 35/4 ⇜ (281/32 → 563/64) ⇝ 71/8 | note:G4 gain:0.6400000000000001 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", + "[ 35/4 ⇜ (281/32 → 563/64) ⇝ 71/8 | note:Bb4 gain:0.6400000000000001 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", + "[ (123/14 → 563/64) ⇝ 253/28 | note:70 gain:0.06400000000000002 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", + "[ (123/14 → 563/64) ⇝ 253/28 | note:74 gain:0.06400000000000002 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", + "[ (123/14 → 563/64) ⇝ 253/28 | note:75 gain:0.06400000000000002 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", + "[ (123/14 → 563/64) ⇝ 253/28 | note:79 gain:0.06400000000000002 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", + "[ 35/4 ⇜ (563/64 → 141/16) ⇝ 71/8 | note:C4 gain:0.5814213562373111 clip:1 s:piano release:0.1 pan:0.5277777777777778 ]", + "[ 35/4 ⇜ (563/64 → 141/16) ⇝ 71/8 | note:G4 gain:0.5814213562373111 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", + "[ 35/4 ⇜ (563/64 → 141/16) ⇝ 71/8 | note:Bb4 gain:0.5814213562373111 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", + "[ 123/14 ⇜ (563/64 → 141/16) ⇝ 253/28 | note:70 gain:0.058142135623731106 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", + "[ 123/14 ⇜ (563/64 → 141/16) ⇝ 253/28 | note:74 gain:0.058142135623731106 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", + "[ 123/14 ⇜ (563/64 → 141/16) ⇝ 253/28 | note:75 gain:0.058142135623731106 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", + "[ 123/14 ⇜ (563/64 → 141/16) ⇝ 253/28 | note:79 gain:0.058142135623731106 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", + "[ 35/4 ⇜ (141/16 → 565/64) ⇝ 71/8 | note:C4 gain:0.4400000000000084 clip:1 s:piano release:0.1 pan:0.5277777777777778 ]", + "[ 35/4 ⇜ (141/16 → 565/64) ⇝ 71/8 | note:G4 gain:0.4400000000000084 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", + "[ 35/4 ⇜ (141/16 → 565/64) ⇝ 71/8 | note:Bb4 gain:0.4400000000000084 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", + "[ 123/14 ⇜ (141/16 → 565/64) ⇝ 253/28 | note:70 gain:0.044000000000000844 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", + "[ 123/14 ⇜ (141/16 → 565/64) ⇝ 253/28 | note:74 gain:0.044000000000000844 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", + "[ 123/14 ⇜ (141/16 → 565/64) ⇝ 253/28 | note:75 gain:0.044000000000000844 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", + "[ 123/14 ⇜ (141/16 → 565/64) ⇝ 253/28 | note:79 gain:0.044000000000000844 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", + "[ 35/4 ⇜ (565/64 → 283/32) ⇝ 71/8 | note:C4 gain:0.29857864376269283 clip:1 s:piano release:0.1 pan:0.5277777777777778 ]", + "[ 35/4 ⇜ (565/64 → 283/32) ⇝ 71/8 | note:G4 gain:0.29857864376269283 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", + "[ 35/4 ⇜ (565/64 → 283/32) ⇝ 71/8 | note:Bb4 gain:0.29857864376269283 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", + "[ 123/14 ⇜ (565/64 → 283/32) ⇝ 253/28 | note:70 gain:0.029857864376269284 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", + "[ 123/14 ⇜ (565/64 → 283/32) ⇝ 253/28 | note:74 gain:0.029857864376269284 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", + "[ 123/14 ⇜ (565/64 → 283/32) ⇝ 253/28 | note:75 gain:0.029857864376269284 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", + "[ 123/14 ⇜ (565/64 → 283/32) ⇝ 253/28 | note:79 gain:0.029857864376269284 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", + "[ 35/4 ⇜ (283/32 → 567/64) ⇝ 71/8 | note:C4 gain:0.24 clip:1 s:piano release:0.1 pan:0.5277777777777778 ]", + "[ 35/4 ⇜ (283/32 → 567/64) ⇝ 71/8 | note:G4 gain:0.24 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", + "[ 35/4 ⇜ (283/32 → 567/64) ⇝ 71/8 | note:Bb4 gain:0.24 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", + "[ 123/14 ⇜ (283/32 → 567/64) ⇝ 253/28 | note:70 gain:0.024 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", + "[ 123/14 ⇜ (283/32 → 567/64) ⇝ 253/28 | note:74 gain:0.024 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", + "[ 123/14 ⇜ (283/32 → 567/64) ⇝ 253/28 | note:75 gain:0.024 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", + "[ 123/14 ⇜ (283/32 → 567/64) ⇝ 253/28 | note:79 gain:0.024 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", + "[ 35/4 ⇜ (567/64 → 71/8) | note:C4 gain:0.2985786437626874 clip:1 s:piano release:0.1 pan:0.5277777777777778 ]", + "[ 35/4 ⇜ (567/64 → 71/8) | note:G4 gain:0.2985786437626874 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", + "[ 35/4 ⇜ (567/64 → 71/8) | note:Bb4 gain:0.2985786437626874 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", + "[ 123/14 ⇜ (567/64 → 71/8) ⇝ 253/28 | note:70 gain:0.02985786437626874 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", + "[ 123/14 ⇜ (567/64 → 71/8) ⇝ 253/28 | note:74 gain:0.02985786437626874 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", + "[ 123/14 ⇜ (567/64 → 71/8) ⇝ 253/28 | note:75 gain:0.02985786437626874 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", + "[ 123/14 ⇜ (567/64 → 71/8) ⇝ 253/28 | note:79 gain:0.02985786437626874 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", + "[ 123/14 ⇜ (71/8 → 569/64) ⇝ 253/28 | note:70 gain:0.04400000000000008 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", + "[ 123/14 ⇜ (71/8 → 569/64) ⇝ 253/28 | note:74 gain:0.04400000000000008 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", + "[ 123/14 ⇜ (71/8 → 569/64) ⇝ 253/28 | note:75 gain:0.04400000000000008 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", + "[ 123/14 ⇜ (71/8 → 569/64) ⇝ 253/28 | note:79 gain:0.04400000000000008 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", + "[ 123/14 ⇜ (569/64 → 285/32) ⇝ 253/28 | note:70 gain:0.05814213562373058 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", + "[ 123/14 ⇜ (569/64 → 285/32) ⇝ 253/28 | note:74 gain:0.05814213562373058 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", + "[ 123/14 ⇜ (569/64 → 285/32) ⇝ 253/28 | note:75 gain:0.05814213562373058 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", + "[ 123/14 ⇜ (569/64 → 285/32) ⇝ 253/28 | note:79 gain:0.05814213562373058 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", + "[ 123/14 ⇜ (285/32 → 571/64) ⇝ 253/28 | note:70 gain:0.06400000000000002 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", + "[ 123/14 ⇜ (285/32 → 571/64) ⇝ 253/28 | note:74 gain:0.06400000000000002 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", + "[ 123/14 ⇜ (285/32 → 571/64) ⇝ 253/28 | note:75 gain:0.06400000000000002 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", + "[ 123/14 ⇜ (285/32 → 571/64) ⇝ 253/28 | note:79 gain:0.06400000000000002 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", + "[ 123/14 ⇜ (571/64 → 143/16) ⇝ 253/28 | note:70 gain:0.05814213562373141 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", + "[ 123/14 ⇜ (571/64 → 143/16) ⇝ 253/28 | note:74 gain:0.05814213562373141 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", + "[ 123/14 ⇜ (571/64 → 143/16) ⇝ 253/28 | note:75 gain:0.05814213562373141 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", + "[ 123/14 ⇜ (571/64 → 143/16) ⇝ 253/28 | note:79 gain:0.05814213562373141 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", + "[ 123/14 ⇜ (143/16 → 573/64) ⇝ 253/28 | note:70 gain:0.04400000000000014 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", + "[ 123/14 ⇜ (143/16 → 573/64) ⇝ 253/28 | note:74 gain:0.04400000000000014 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", + "[ 123/14 ⇜ (143/16 → 573/64) ⇝ 253/28 | note:75 gain:0.04400000000000014 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", + "[ 123/14 ⇜ (143/16 → 573/64) ⇝ 253/28 | note:79 gain:0.04400000000000014 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", + "[ 123/14 ⇜ (573/64 → 287/32) ⇝ 253/28 | note:70 gain:0.02985786437626959 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", + "[ 123/14 ⇜ (573/64 → 287/32) ⇝ 253/28 | note:74 gain:0.02985786437626959 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", + "[ 123/14 ⇜ (573/64 → 287/32) ⇝ 253/28 | note:75 gain:0.02985786437626959 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", + "[ 123/14 ⇜ (573/64 → 287/32) ⇝ 253/28 | note:79 gain:0.02985786437626959 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", + "[ 123/14 ⇜ (287/32 → 575/64) ⇝ 253/28 | note:70 gain:0.024 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", + "[ 123/14 ⇜ (287/32 → 575/64) ⇝ 253/28 | note:74 gain:0.024 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", + "[ 123/14 ⇜ (287/32 → 575/64) ⇝ 253/28 | note:75 gain:0.024 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", + "[ 123/14 ⇜ (287/32 → 575/64) ⇝ 253/28 | note:79 gain:0.024 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", + "[ 123/14 ⇜ (575/64 → 9/1) ⇝ 253/28 | note:70 gain:0.029857864376268434 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", + "[ 123/14 ⇜ (575/64 → 9/1) ⇝ 253/28 | note:74 gain:0.029857864376268434 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", + "[ 123/14 ⇜ (575/64 → 9/1) ⇝ 253/28 | note:75 gain:0.029857864376268434 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", + "[ 123/14 ⇜ (575/64 → 9/1) ⇝ 253/28 | note:79 gain:0.029857864376268434 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", + "[ 123/14 ⇜ (9/1 → 577/64) ⇝ 253/28 | note:70 gain:0.04399999999999965 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", + "[ 123/14 ⇜ (9/1 → 577/64) ⇝ 253/28 | note:74 gain:0.04399999999999965 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", + "[ 123/14 ⇜ (9/1 → 577/64) ⇝ 253/28 | note:75 gain:0.04399999999999965 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", + "[ 123/14 ⇜ (9/1 → 577/64) ⇝ 253/28 | note:79 gain:0.04399999999999965 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", + "[ (9/1 → 577/64) ⇝ 37/4 | note:C2 gain:0.4399999999999965 clip:1 s:piano release:0.1 pan:0.41666666666666663 ]", + "[ 123/14 ⇜ (577/64 → 289/32) ⇝ 253/28 | note:70 gain:0.05814213562373108 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", + "[ 123/14 ⇜ (577/64 → 289/32) ⇝ 253/28 | note:74 gain:0.05814213562373108 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", + "[ 123/14 ⇜ (577/64 → 289/32) ⇝ 253/28 | note:75 gain:0.05814213562373108 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", + "[ 123/14 ⇜ (577/64 → 289/32) ⇝ 253/28 | note:79 gain:0.05814213562373108 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", + "[ 9/1 ⇜ (577/64 → 289/32) ⇝ 37/4 | note:C2 gain:0.5814213562373107 clip:1 s:piano release:0.1 pan:0.41666666666666663 ]", + "[ 123/14 ⇜ (289/32 → 253/28) | note:70 gain:0.06400000000000002 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", + "[ 123/14 ⇜ (289/32 → 253/28) | note:74 gain:0.06400000000000002 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", + "[ 123/14 ⇜ (289/32 → 253/28) | note:75 gain:0.06400000000000002 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", + "[ 123/14 ⇜ (289/32 → 253/28) | note:79 gain:0.06400000000000002 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", + "[ 9/1 ⇜ (289/32 → 579/64) ⇝ 37/4 | note:C2 gain:0.6400000000000001 clip:1 s:piano release:0.1 pan:0.41666666666666663 ]", + "[ 9/1 ⇜ (579/64 → 145/16) ⇝ 37/4 | note:C2 gain:0.5814213562373091 clip:1 s:piano release:0.1 pan:0.41666666666666663 ]", + "[ 9/1 ⇜ (145/16 → 581/64) ⇝ 37/4 | note:C2 gain:0.4400000000000057 clip:1 s:piano release:0.1 pan:0.41666666666666663 ]", + "[ 9/1 ⇜ (581/64 → 291/32) ⇝ 37/4 | note:C2 gain:0.2985786437626909 clip:1 s:piano release:0.1 pan:0.41666666666666663 ]", + "[ 9/1 ⇜ (291/32 → 583/64) ⇝ 37/4 | note:C2 gain:0.24 clip:1 s:piano release:0.1 pan:0.41666666666666663 ]", + "[ 9/1 ⇜ (583/64 → 73/8) ⇝ 37/4 | note:C2 gain:0.29857864376268933 clip:1 s:piano release:0.1 pan:0.41666666666666663 ]", + "[ 9/1 ⇜ (73/8 → 585/64) ⇝ 37/4 | note:C2 gain:0.4399999999999922 clip:1 s:piano release:0.1 pan:0.41666666666666663 ]", + "[ (73/8 → 585/64) ⇝ 37/4 | note:C4 gain:0.4399999999999922 clip:1 s:piano release:0.1 pan:0.5277777777777778 ]", + "[ (73/8 → 585/64) ⇝ 37/4 | note:G4 gain:0.4399999999999922 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", + "[ (73/8 → 585/64) ⇝ 37/4 | note:Bb4 gain:0.4399999999999922 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", + "[ 9/1 ⇜ (585/64 → 293/32) ⇝ 37/4 | note:C2 gain:0.5814213562373077 clip:1 s:piano release:0.1 pan:0.41666666666666663 ]", + "[ 73/8 ⇜ (585/64 → 293/32) ⇝ 37/4 | note:C4 gain:0.5814213562373077 clip:1 s:piano release:0.1 pan:0.5277777777777778 ]", + "[ 73/8 ⇜ (585/64 → 293/32) ⇝ 37/4 | note:G4 gain:0.5814213562373077 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", + "[ 73/8 ⇜ (585/64 → 293/32) ⇝ 37/4 | note:Bb4 gain:0.5814213562373077 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", + "[ 9/1 ⇜ (293/32 → 587/64) ⇝ 37/4 | note:C2 gain:0.6400000000000001 clip:1 s:piano release:0.1 pan:0.41666666666666663 ]", + "[ 73/8 ⇜ (293/32 → 587/64) ⇝ 37/4 | note:C4 gain:0.6400000000000001 clip:1 s:piano release:0.1 pan:0.5277777777777778 ]", + "[ 73/8 ⇜ (293/32 → 587/64) ⇝ 37/4 | note:G4 gain:0.6400000000000001 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", + "[ 73/8 ⇜ (293/32 → 587/64) ⇝ 37/4 | note:Bb4 gain:0.6400000000000001 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", + "[ 9/1 ⇜ (587/64 → 147/16) ⇝ 37/4 | note:C2 gain:0.5814213562373122 clip:1 s:piano release:0.1 pan:0.41666666666666663 ]", + "[ 73/8 ⇜ (587/64 → 147/16) ⇝ 37/4 | note:C4 gain:0.5814213562373122 clip:1 s:piano release:0.1 pan:0.5277777777777778 ]", + "[ 73/8 ⇜ (587/64 → 147/16) ⇝ 37/4 | note:G4 gain:0.5814213562373122 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", + "[ 73/8 ⇜ (587/64 → 147/16) ⇝ 37/4 | note:Bb4 gain:0.5814213562373122 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", + "[ 9/1 ⇜ (147/16 → 589/64) ⇝ 37/4 | note:C2 gain:0.4399999999999986 clip:1 s:piano release:0.1 pan:0.41666666666666663 ]", + "[ 73/8 ⇜ (147/16 → 589/64) ⇝ 37/4 | note:C4 gain:0.4399999999999986 clip:1 s:piano release:0.1 pan:0.5277777777777778 ]", + "[ 73/8 ⇜ (147/16 → 589/64) ⇝ 37/4 | note:G4 gain:0.4399999999999986 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", + "[ 73/8 ⇜ (147/16 → 589/64) ⇝ 37/4 | note:Bb4 gain:0.4399999999999986 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", + "[ 9/1 ⇜ (589/64 → 295/32) ⇝ 37/4 | note:C2 gain:0.29857864376269394 clip:1 s:piano release:0.1 pan:0.41666666666666663 ]", + "[ 73/8 ⇜ (589/64 → 295/32) ⇝ 37/4 | note:C4 gain:0.29857864376269394 clip:1 s:piano release:0.1 pan:0.5277777777777778 ]", + "[ 73/8 ⇜ (589/64 → 295/32) ⇝ 37/4 | note:G4 gain:0.29857864376269394 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", + "[ 73/8 ⇜ (589/64 → 295/32) ⇝ 37/4 | note:Bb4 gain:0.29857864376269394 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", + "[ 9/1 ⇜ (295/32 → 591/64) ⇝ 37/4 | note:C2 gain:0.24 clip:1 s:piano release:0.1 pan:0.41666666666666663 ]", + "[ 73/8 ⇜ (295/32 → 591/64) ⇝ 37/4 | note:C4 gain:0.24 clip:1 s:piano release:0.1 pan:0.5277777777777778 ]", + "[ 73/8 ⇜ (295/32 → 591/64) ⇝ 37/4 | note:G4 gain:0.24 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", + "[ 73/8 ⇜ (295/32 → 591/64) ⇝ 37/4 | note:Bb4 gain:0.24 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", + "[ 9/1 ⇜ (591/64 → 37/4) | note:C2 gain:0.2985786437626863 clip:1 s:piano release:0.1 pan:0.41666666666666663 ]", + "[ 73/8 ⇜ (591/64 → 37/4) | note:C4 gain:0.2985786437626863 clip:1 s:piano release:0.1 pan:0.5277777777777778 ]", + "[ 73/8 ⇜ (591/64 → 37/4) | note:G4 gain:0.2985786437626863 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", + "[ 73/8 ⇜ (591/64 → 37/4) | note:Bb4 gain:0.2985786437626863 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", + "[ (37/4 → 593/64) ⇝ 19/2 | note:Bb3 gain:0.21999999999999964 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", + "[ (37/4 → 593/64) ⇝ 19/2 | note:D4 gain:0.21999999999999964 clip:1 s:piano release:0.1 pan:0.537037037037037 ]", + "[ (37/4 → 593/64) ⇝ 19/2 | note:Eb4 gain:0.21999999999999964 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", + "[ (37/4 → 593/64) ⇝ 19/2 | note:G4 gain:0.21999999999999964 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", + "[ 37/4 ⇜ (593/64 → 297/32) ⇝ 19/2 | note:Bb3 gain:0.2907106781186523 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", + "[ 37/4 ⇜ (593/64 → 297/32) ⇝ 19/2 | note:D4 gain:0.2907106781186523 clip:1 s:piano release:0.1 pan:0.537037037037037 ]", + "[ 37/4 ⇜ (593/64 → 297/32) ⇝ 19/2 | note:Eb4 gain:0.2907106781186523 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", + "[ 37/4 ⇜ (593/64 → 297/32) ⇝ 19/2 | note:G4 gain:0.2907106781186523 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", + "[ 37/4 ⇜ (297/32 → 595/64) ⇝ 19/2 | note:Bb3 gain:0.32000000000000006 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", + "[ 37/4 ⇜ (297/32 → 595/64) ⇝ 19/2 | note:D4 gain:0.32000000000000006 clip:1 s:piano release:0.1 pan:0.537037037037037 ]", + "[ 37/4 ⇜ (297/32 → 595/64) ⇝ 19/2 | note:Eb4 gain:0.32000000000000006 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", + "[ 37/4 ⇜ (297/32 → 595/64) ⇝ 19/2 | note:G4 gain:0.32000000000000006 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", + "[ 37/4 ⇜ (595/64 → 149/16) ⇝ 19/2 | note:Bb3 gain:0.29071067811865764 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", + "[ 37/4 ⇜ (595/64 → 149/16) ⇝ 19/2 | note:D4 gain:0.29071067811865764 clip:1 s:piano release:0.1 pan:0.537037037037037 ]", + "[ 37/4 ⇜ (595/64 → 149/16) ⇝ 19/2 | note:Eb4 gain:0.29071067811865764 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", + "[ 37/4 ⇜ (595/64 → 149/16) ⇝ 19/2 | note:G4 gain:0.29071067811865764 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", + "[ 37/4 ⇜ (149/16 → 597/64) ⇝ 19/2 | note:Bb3 gain:0.22000000000000144 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", + "[ 37/4 ⇜ (149/16 → 597/64) ⇝ 19/2 | note:D4 gain:0.22000000000000144 clip:1 s:piano release:0.1 pan:0.537037037037037 ]", + "[ 37/4 ⇜ (149/16 → 597/64) ⇝ 19/2 | note:Eb4 gain:0.22000000000000144 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", + "[ 37/4 ⇜ (149/16 → 597/64) ⇝ 19/2 | note:G4 gain:0.22000000000000144 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", + "[ 37/4 ⇜ (597/64 → 299/32) ⇝ 19/2 | note:Bb3 gain:0.14928932188134847 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", + "[ 37/4 ⇜ (597/64 → 299/32) ⇝ 19/2 | note:D4 gain:0.14928932188134847 clip:1 s:piano release:0.1 pan:0.537037037037037 ]", + "[ 37/4 ⇜ (597/64 → 299/32) ⇝ 19/2 | note:Eb4 gain:0.14928932188134847 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", + "[ 37/4 ⇜ (597/64 → 299/32) ⇝ 19/2 | note:G4 gain:0.14928932188134847 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", + "[ 37/4 ⇜ (299/32 → 599/64) ⇝ 19/2 | note:Bb3 gain:0.12 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", + "[ 37/4 ⇜ (299/32 → 599/64) ⇝ 19/2 | note:D4 gain:0.12 clip:1 s:piano release:0.1 pan:0.537037037037037 ]", + "[ 37/4 ⇜ (299/32 → 599/64) ⇝ 19/2 | note:Eb4 gain:0.12 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", + "[ 37/4 ⇜ (299/32 → 599/64) ⇝ 19/2 | note:G4 gain:0.12 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", + "[ 37/4 ⇜ (599/64 → 75/8) ⇝ 19/2 | note:Bb3 gain:0.14928932188134564 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", + "[ 37/4 ⇜ (599/64 → 75/8) ⇝ 19/2 | note:D4 gain:0.14928932188134564 clip:1 s:piano release:0.1 pan:0.537037037037037 ]", + "[ 37/4 ⇜ (599/64 → 75/8) ⇝ 19/2 | note:Eb4 gain:0.14928932188134564 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", + "[ 37/4 ⇜ (599/64 → 75/8) ⇝ 19/2 | note:G4 gain:0.14928932188134564 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", + "[ 37/4 ⇜ (75/8 → 601/64) ⇝ 19/2 | note:Bb3 gain:0.21999999999999745 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", + "[ 37/4 ⇜ (75/8 → 601/64) ⇝ 19/2 | note:D4 gain:0.21999999999999745 clip:1 s:piano release:0.1 pan:0.537037037037037 ]", + "[ 37/4 ⇜ (75/8 → 601/64) ⇝ 19/2 | note:Eb4 gain:0.21999999999999745 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", + "[ 37/4 ⇜ (75/8 → 601/64) ⇝ 19/2 | note:G4 gain:0.21999999999999745 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", + "[ 37/4 ⇜ (601/64 → 301/32) ⇝ 19/2 | note:Bb3 gain:0.29071067811865475 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", + "[ 37/4 ⇜ (601/64 → 301/32) ⇝ 19/2 | note:D4 gain:0.29071067811865475 clip:1 s:piano release:0.1 pan:0.537037037037037 ]", + "[ 37/4 ⇜ (601/64 → 301/32) ⇝ 19/2 | note:Eb4 gain:0.29071067811865475 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", + "[ 37/4 ⇜ (601/64 → 301/32) ⇝ 19/2 | note:G4 gain:0.29071067811865475 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", + "[ 37/4 ⇜ (301/32 → 603/64) ⇝ 19/2 | note:Bb3 gain:0.32000000000000006 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", + "[ 37/4 ⇜ (301/32 → 603/64) ⇝ 19/2 | note:D4 gain:0.32000000000000006 clip:1 s:piano release:0.1 pan:0.537037037037037 ]", + "[ 37/4 ⇜ (301/32 → 603/64) ⇝ 19/2 | note:Eb4 gain:0.32000000000000006 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", + "[ 37/4 ⇜ (301/32 → 603/64) ⇝ 19/2 | note:G4 gain:0.32000000000000006 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", + "[ 37/4 ⇜ (603/64 → 151/16) ⇝ 19/2 | note:Bb3 gain:0.2907106781186551 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", + "[ 37/4 ⇜ (603/64 → 151/16) ⇝ 19/2 | note:D4 gain:0.2907106781186551 clip:1 s:piano release:0.1 pan:0.537037037037037 ]", + "[ 37/4 ⇜ (603/64 → 151/16) ⇝ 19/2 | note:Eb4 gain:0.2907106781186551 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", + "[ 37/4 ⇜ (603/64 → 151/16) ⇝ 19/2 | note:G4 gain:0.2907106781186551 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", + "[ 37/4 ⇜ (151/16 → 605/64) ⇝ 19/2 | note:Bb3 gain:0.22000000000000364 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", + "[ 37/4 ⇜ (151/16 → 605/64) ⇝ 19/2 | note:D4 gain:0.22000000000000364 clip:1 s:piano release:0.1 pan:0.537037037037037 ]", + "[ 37/4 ⇜ (151/16 → 605/64) ⇝ 19/2 | note:Eb4 gain:0.22000000000000364 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", + "[ 37/4 ⇜ (151/16 → 605/64) ⇝ 19/2 | note:G4 gain:0.22000000000000364 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", + "[ 37/4 ⇜ (605/64 → 303/32) ⇝ 19/2 | note:Bb3 gain:0.149289321881346 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", + "[ 37/4 ⇜ (605/64 → 303/32) ⇝ 19/2 | note:D4 gain:0.149289321881346 clip:1 s:piano release:0.1 pan:0.537037037037037 ]", + "[ 37/4 ⇜ (605/64 → 303/32) ⇝ 19/2 | note:Eb4 gain:0.149289321881346 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", + "[ 37/4 ⇜ (605/64 → 303/32) ⇝ 19/2 | note:G4 gain:0.149289321881346 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", + "[ 37/4 ⇜ (303/32 → 607/64) ⇝ 19/2 | note:Bb3 gain:0.12 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", + "[ 37/4 ⇜ (303/32 → 607/64) ⇝ 19/2 | note:D4 gain:0.12 clip:1 s:piano release:0.1 pan:0.537037037037037 ]", + "[ 37/4 ⇜ (303/32 → 607/64) ⇝ 19/2 | note:Eb4 gain:0.12 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", + "[ 37/4 ⇜ (303/32 → 607/64) ⇝ 19/2 | note:G4 gain:0.12 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", + "[ 37/4 ⇜ (607/64 → 19/2) | note:Bb3 gain:0.1492893218813441 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", + "[ 37/4 ⇜ (607/64 → 19/2) | note:D4 gain:0.1492893218813441 clip:1 s:piano release:0.1 pan:0.537037037037037 ]", + "[ 37/4 ⇜ (607/64 → 19/2) | note:Eb4 gain:0.1492893218813441 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", + "[ 37/4 ⇜ (607/64 → 19/2) | note:G4 gain:0.1492893218813441 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", + "[ (19/2 → 609/64) ⇝ 77/8 | note:G4 gain:0.4399999999999906 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", + "[ (19/2 → 609/64) ⇝ 77/8 | note:D5 gain:0.4399999999999906 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", + "[ (19/2 → 609/64) ⇝ 77/8 | note:F5 gain:0.4399999999999906 clip:1 s:piano release:0.1 pan:0.6064814814814814 ]", + "[ (19/2 → 609/64) ⇝ 39/4 | note:C2 gain:0.4399999999999906 clip:1 s:piano release:0.1 pan:0.41666666666666663 ]", + "[ 19/2 ⇜ (609/64 → 305/32) ⇝ 77/8 | note:G4 gain:0.5814213562373064 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", + "[ 19/2 ⇜ (609/64 → 305/32) ⇝ 77/8 | note:D5 gain:0.5814213562373064 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", + "[ 19/2 ⇜ (609/64 → 305/32) ⇝ 77/8 | note:F5 gain:0.5814213562373064 clip:1 s:piano release:0.1 pan:0.6064814814814814 ]", + "[ 19/2 ⇜ (609/64 → 305/32) ⇝ 39/4 | note:C2 gain:0.5814213562373064 clip:1 s:piano release:0.1 pan:0.41666666666666663 ]", + "[ 19/2 ⇜ (305/32 → 611/64) ⇝ 77/8 | note:G4 gain:0.6400000000000001 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", + "[ 19/2 ⇜ (305/32 → 611/64) ⇝ 77/8 | note:D5 gain:0.6400000000000001 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", + "[ 19/2 ⇜ (305/32 → 611/64) ⇝ 77/8 | note:F5 gain:0.6400000000000001 clip:1 s:piano release:0.1 pan:0.6064814814814814 ]", + "[ 19/2 ⇜ (305/32 → 611/64) ⇝ 39/4 | note:C2 gain:0.6400000000000001 clip:1 s:piano release:0.1 pan:0.41666666666666663 ]", + "[ (267/28 → 611/64) ⇝ 137/14 | note:70 gain:0.06400000000000002 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", + "[ (267/28 → 611/64) ⇝ 137/14 | note:74 gain:0.06400000000000002 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", + "[ (267/28 → 611/64) ⇝ 137/14 | note:75 gain:0.06400000000000002 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", + "[ (267/28 → 611/64) ⇝ 137/14 | note:79 gain:0.06400000000000002 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", + "[ 19/2 ⇜ (611/64 → 153/16) ⇝ 77/8 | note:G4 gain:0.5814213562373134 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", + "[ 19/2 ⇜ (611/64 → 153/16) ⇝ 77/8 | note:D5 gain:0.5814213562373134 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", + "[ 19/2 ⇜ (611/64 → 153/16) ⇝ 77/8 | note:F5 gain:0.5814213562373134 clip:1 s:piano release:0.1 pan:0.6064814814814814 ]", + "[ 19/2 ⇜ (611/64 → 153/16) ⇝ 39/4 | note:C2 gain:0.5814213562373134 clip:1 s:piano release:0.1 pan:0.41666666666666663 ]", + "[ 267/28 ⇜ (611/64 → 153/16) ⇝ 137/14 | note:70 gain:0.05814213562373134 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", + "[ 267/28 ⇜ (611/64 → 153/16) ⇝ 137/14 | note:74 gain:0.05814213562373134 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", + "[ 267/28 ⇜ (611/64 → 153/16) ⇝ 137/14 | note:75 gain:0.05814213562373134 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", + "[ 267/28 ⇜ (611/64 → 153/16) ⇝ 137/14 | note:79 gain:0.05814213562373134 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", + "[ 19/2 ⇜ (153/16 → 613/64) ⇝ 77/8 | note:G4 gain:0.4400000000000002 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", + "[ 19/2 ⇜ (153/16 → 613/64) ⇝ 77/8 | note:D5 gain:0.4400000000000002 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", + "[ 19/2 ⇜ (153/16 → 613/64) ⇝ 77/8 | note:F5 gain:0.4400000000000002 clip:1 s:piano release:0.1 pan:0.6064814814814814 ]", + "[ 19/2 ⇜ (153/16 → 613/64) ⇝ 39/4 | note:C2 gain:0.4400000000000002 clip:1 s:piano release:0.1 pan:0.41666666666666663 ]", + "[ 267/28 ⇜ (153/16 → 613/64) ⇝ 137/14 | note:70 gain:0.044000000000000025 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", + "[ 267/28 ⇜ (153/16 → 613/64) ⇝ 137/14 | note:74 gain:0.044000000000000025 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", + "[ 267/28 ⇜ (153/16 → 613/64) ⇝ 137/14 | note:75 gain:0.044000000000000025 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", + "[ 267/28 ⇜ (153/16 → 613/64) ⇝ 137/14 | note:79 gain:0.044000000000000025 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", + "[ 19/2 ⇜ (613/64 → 307/32) ⇝ 77/8 | note:G4 gain:0.29857864376269505 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", + "[ 19/2 ⇜ (613/64 → 307/32) ⇝ 77/8 | note:D5 gain:0.29857864376269505 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", + "[ 19/2 ⇜ (613/64 → 307/32) ⇝ 77/8 | note:F5 gain:0.29857864376269505 clip:1 s:piano release:0.1 pan:0.6064814814814814 ]", + "[ 19/2 ⇜ (613/64 → 307/32) ⇝ 39/4 | note:C2 gain:0.29857864376269505 clip:1 s:piano release:0.1 pan:0.41666666666666663 ]", + "[ 267/28 ⇜ (613/64 → 307/32) ⇝ 137/14 | note:70 gain:0.029857864376269506 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", + "[ 267/28 ⇜ (613/64 → 307/32) ⇝ 137/14 | note:74 gain:0.029857864376269506 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", + "[ 267/28 ⇜ (613/64 → 307/32) ⇝ 137/14 | note:75 gain:0.029857864376269506 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", + "[ 267/28 ⇜ (613/64 → 307/32) ⇝ 137/14 | note:79 gain:0.029857864376269506 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", + "[ 19/2 ⇜ (307/32 → 615/64) ⇝ 77/8 | note:G4 gain:0.24 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", + "[ 19/2 ⇜ (307/32 → 615/64) ⇝ 77/8 | note:D5 gain:0.24 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", + "[ 19/2 ⇜ (307/32 → 615/64) ⇝ 77/8 | note:F5 gain:0.24 clip:1 s:piano release:0.1 pan:0.6064814814814814 ]", + "[ 19/2 ⇜ (307/32 → 615/64) ⇝ 39/4 | note:C2 gain:0.24 clip:1 s:piano release:0.1 pan:0.41666666666666663 ]", + "[ 267/28 ⇜ (307/32 → 615/64) ⇝ 137/14 | note:70 gain:0.024 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", + "[ 267/28 ⇜ (307/32 → 615/64) ⇝ 137/14 | note:74 gain:0.024 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", + "[ 267/28 ⇜ (307/32 → 615/64) ⇝ 137/14 | note:75 gain:0.024 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", + "[ 267/28 ⇜ (307/32 → 615/64) ⇝ 137/14 | note:79 gain:0.024 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", + "[ 19/2 ⇜ (615/64 → 77/8) | note:G4 gain:0.2985786437626852 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", + "[ 19/2 ⇜ (615/64 → 77/8) | note:D5 gain:0.2985786437626852 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", + "[ 19/2 ⇜ (615/64 → 77/8) | note:F5 gain:0.2985786437626852 clip:1 s:piano release:0.1 pan:0.6064814814814814 ]", + "[ 19/2 ⇜ (615/64 → 77/8) ⇝ 39/4 | note:C2 gain:0.2985786437626852 clip:1 s:piano release:0.1 pan:0.41666666666666663 ]", + "[ 267/28 ⇜ (615/64 → 77/8) ⇝ 137/14 | note:70 gain:0.029857864376268525 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", + "[ 267/28 ⇜ (615/64 → 77/8) ⇝ 137/14 | note:74 gain:0.029857864376268525 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", + "[ 267/28 ⇜ (615/64 → 77/8) ⇝ 137/14 | note:75 gain:0.029857864376268525 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", + "[ 267/28 ⇜ (615/64 → 77/8) ⇝ 137/14 | note:79 gain:0.029857864376268525 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", + "[ 19/2 ⇜ (77/8 → 617/64) ⇝ 39/4 | note:C2 gain:0.43999999999999767 clip:1 s:piano release:0.1 pan:0.41666666666666663 ]", + "[ 267/28 ⇜ (77/8 → 617/64) ⇝ 137/14 | note:70 gain:0.04399999999999977 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", + "[ 267/28 ⇜ (77/8 → 617/64) ⇝ 137/14 | note:74 gain:0.04399999999999977 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", + "[ 267/28 ⇜ (77/8 → 617/64) ⇝ 137/14 | note:75 gain:0.04399999999999977 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", + "[ 267/28 ⇜ (77/8 → 617/64) ⇝ 137/14 | note:79 gain:0.04399999999999977 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", + "[ 19/2 ⇜ (617/64 → 309/32) ⇝ 39/4 | note:C2 gain:0.5814213562373034 clip:1 s:piano release:0.1 pan:0.41666666666666663 ]", + "[ 267/28 ⇜ (617/64 → 309/32) ⇝ 137/14 | note:70 gain:0.05814213562373034 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", + "[ 267/28 ⇜ (617/64 → 309/32) ⇝ 137/14 | note:74 gain:0.05814213562373034 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", + "[ 267/28 ⇜ (617/64 → 309/32) ⇝ 137/14 | note:75 gain:0.05814213562373034 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", + "[ 267/28 ⇜ (617/64 → 309/32) ⇝ 137/14 | note:79 gain:0.05814213562373034 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", + "[ 19/2 ⇜ (309/32 → 619/64) ⇝ 39/4 | note:C2 gain:0.6400000000000001 clip:1 s:piano release:0.1 pan:0.41666666666666663 ]", + "[ 267/28 ⇜ (309/32 → 619/64) ⇝ 137/14 | note:70 gain:0.06400000000000002 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", + "[ 267/28 ⇜ (309/32 → 619/64) ⇝ 137/14 | note:74 gain:0.06400000000000002 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", + "[ 267/28 ⇜ (309/32 → 619/64) ⇝ 137/14 | note:75 gain:0.06400000000000002 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", + "[ 267/28 ⇜ (309/32 → 619/64) ⇝ 137/14 | note:79 gain:0.06400000000000002 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", + "[ 19/2 ⇜ (619/64 → 155/16) ⇝ 39/4 | note:C2 gain:0.5814213562373083 clip:1 s:piano release:0.1 pan:0.41666666666666663 ]", + "[ 267/28 ⇜ (619/64 → 155/16) ⇝ 137/14 | note:70 gain:0.05814213562373083 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", + "[ 267/28 ⇜ (619/64 → 155/16) ⇝ 137/14 | note:74 gain:0.05814213562373083 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", + "[ 267/28 ⇜ (619/64 → 155/16) ⇝ 137/14 | note:75 gain:0.05814213562373083 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", + "[ 267/28 ⇜ (619/64 → 155/16) ⇝ 137/14 | note:79 gain:0.05814213562373083 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", + "[ 19/2 ⇜ (155/16 → 621/64) ⇝ 39/4 | note:C2 gain:0.4400000000000045 clip:1 s:piano release:0.1 pan:0.41666666666666663 ]", + "[ 267/28 ⇜ (155/16 → 621/64) ⇝ 137/14 | note:70 gain:0.044000000000000455 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", + "[ 267/28 ⇜ (155/16 → 621/64) ⇝ 137/14 | note:74 gain:0.044000000000000455 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", + "[ 267/28 ⇜ (155/16 → 621/64) ⇝ 137/14 | note:75 gain:0.044000000000000455 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", + "[ 267/28 ⇜ (155/16 → 621/64) ⇝ 137/14 | note:79 gain:0.044000000000000455 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", + "[ 19/2 ⇜ (621/64 → 311/32) ⇝ 39/4 | note:C2 gain:0.29857864376269 clip:1 s:piano release:0.1 pan:0.41666666666666663 ]", + "[ 267/28 ⇜ (621/64 → 311/32) ⇝ 137/14 | note:70 gain:0.029857864376269 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", + "[ 267/28 ⇜ (621/64 → 311/32) ⇝ 137/14 | note:74 gain:0.029857864376269 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", + "[ 267/28 ⇜ (621/64 → 311/32) ⇝ 137/14 | note:75 gain:0.029857864376269 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", + "[ 267/28 ⇜ (621/64 → 311/32) ⇝ 137/14 | note:79 gain:0.029857864376269 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", + "[ 19/2 ⇜ (311/32 → 623/64) ⇝ 39/4 | note:C2 gain:0.24 clip:1 s:piano release:0.1 pan:0.41666666666666663 ]", + "[ 267/28 ⇜ (311/32 → 623/64) ⇝ 137/14 | note:70 gain:0.024 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", + "[ 267/28 ⇜ (311/32 → 623/64) ⇝ 137/14 | note:74 gain:0.024 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", + "[ 267/28 ⇜ (311/32 → 623/64) ⇝ 137/14 | note:75 gain:0.024 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", + "[ 267/28 ⇜ (311/32 → 623/64) ⇝ 137/14 | note:79 gain:0.024 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", + "[ 19/2 ⇜ (623/64 → 39/4) | note:C2 gain:0.2985786437626902 clip:1 s:piano release:0.1 pan:0.41666666666666663 ]", + "[ 267/28 ⇜ (623/64 → 39/4) ⇝ 137/14 | note:70 gain:0.029857864376269024 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", + "[ 267/28 ⇜ (623/64 → 39/4) ⇝ 137/14 | note:74 gain:0.029857864376269024 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", + "[ 267/28 ⇜ (623/64 → 39/4) ⇝ 137/14 | note:75 gain:0.029857864376269024 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", + "[ 267/28 ⇜ (623/64 → 39/4) ⇝ 137/14 | note:79 gain:0.029857864376269024 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", + "[ 267/28 ⇜ (39/4 → 625/64) ⇝ 137/14 | note:70 gain:0.04399999999999933 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", + "[ 267/28 ⇜ (39/4 → 625/64) ⇝ 137/14 | note:74 gain:0.04399999999999933 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", + "[ 267/28 ⇜ (39/4 → 625/64) ⇝ 137/14 | note:75 gain:0.04399999999999933 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", + "[ 267/28 ⇜ (39/4 → 625/64) ⇝ 137/14 | note:79 gain:0.04399999999999933 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", + "[ (39/4 → 625/64) ⇝ 79/8 | note:G4 gain:0.4399999999999933 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", + "[ (39/4 → 625/64) ⇝ 79/8 | note:D5 gain:0.4399999999999933 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", + "[ (39/4 → 625/64) ⇝ 79/8 | note:F5 gain:0.4399999999999933 clip:1 s:piano release:0.1 pan:0.6064814814814814 ]", + "[ (39/4 → 625/64) ⇝ 10/1 | note:Bb3 gain:0.21999999999999664 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", + "[ (39/4 → 625/64) ⇝ 10/1 | note:D4 gain:0.21999999999999664 clip:1 s:piano release:0.1 pan:0.537037037037037 ]", + "[ (39/4 → 625/64) ⇝ 10/1 | note:Eb4 gain:0.21999999999999664 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", + "[ (39/4 → 625/64) ⇝ 10/1 | note:G4 gain:0.21999999999999664 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", + "[ 267/28 ⇜ (625/64 → 313/32) ⇝ 137/14 | note:70 gain:0.05814213562373084 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", + "[ 267/28 ⇜ (625/64 → 313/32) ⇝ 137/14 | note:74 gain:0.05814213562373084 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", + "[ 267/28 ⇜ (625/64 → 313/32) ⇝ 137/14 | note:75 gain:0.05814213562373084 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", + "[ 267/28 ⇜ (625/64 → 313/32) ⇝ 137/14 | note:79 gain:0.05814213562373084 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", + "[ 39/4 ⇜ (625/64 → 313/32) ⇝ 79/8 | note:G4 gain:0.5814213562373084 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", + "[ 39/4 ⇜ (625/64 → 313/32) ⇝ 79/8 | note:D5 gain:0.5814213562373084 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", + "[ 39/4 ⇜ (625/64 → 313/32) ⇝ 79/8 | note:F5 gain:0.5814213562373084 clip:1 s:piano release:0.1 pan:0.6064814814814814 ]", + "[ 39/4 ⇜ (625/64 → 313/32) ⇝ 10/1 | note:Bb3 gain:0.2907106781186542 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", + "[ 39/4 ⇜ (625/64 → 313/32) ⇝ 10/1 | note:D4 gain:0.2907106781186542 clip:1 s:piano release:0.1 pan:0.537037037037037 ]", + "[ 39/4 ⇜ (625/64 → 313/32) ⇝ 10/1 | note:Eb4 gain:0.2907106781186542 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", + "[ 39/4 ⇜ (625/64 → 313/32) ⇝ 10/1 | note:G4 gain:0.2907106781186542 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", + "[ 267/28 ⇜ (313/32 → 137/14) | note:70 gain:0.06400000000000002 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", + "[ 267/28 ⇜ (313/32 → 137/14) | note:74 gain:0.06400000000000002 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", + "[ 267/28 ⇜ (313/32 → 137/14) | note:75 gain:0.06400000000000002 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", + "[ 267/28 ⇜ (313/32 → 137/14) | note:79 gain:0.06400000000000002 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", + "[ 39/4 ⇜ (313/32 → 627/64) ⇝ 79/8 | note:G4 gain:0.6400000000000001 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", + "[ 39/4 ⇜ (313/32 → 627/64) ⇝ 79/8 | note:D5 gain:0.6400000000000001 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", + "[ 39/4 ⇜ (313/32 → 627/64) ⇝ 79/8 | note:F5 gain:0.6400000000000001 clip:1 s:piano release:0.1 pan:0.6064814814814814 ]", + "[ 39/4 ⇜ (313/32 → 627/64) ⇝ 10/1 | note:Bb3 gain:0.32000000000000006 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", + "[ 39/4 ⇜ (313/32 → 627/64) ⇝ 10/1 | note:D4 gain:0.32000000000000006 clip:1 s:piano release:0.1 pan:0.537037037037037 ]", + "[ 39/4 ⇜ (313/32 → 627/64) ⇝ 10/1 | note:Eb4 gain:0.32000000000000006 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", + "[ 39/4 ⇜ (313/32 → 627/64) ⇝ 10/1 | note:G4 gain:0.32000000000000006 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", + "[ 39/4 ⇜ (627/64 → 157/16) ⇝ 79/8 | note:G4 gain:0.5814213562373114 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", + "[ 39/4 ⇜ (627/64 → 157/16) ⇝ 79/8 | note:D5 gain:0.5814213562373114 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", + "[ 39/4 ⇜ (627/64 → 157/16) ⇝ 79/8 | note:F5 gain:0.5814213562373114 clip:1 s:piano release:0.1 pan:0.6064814814814814 ]", + "[ 39/4 ⇜ (627/64 → 157/16) ⇝ 10/1 | note:Bb3 gain:0.2907106781186557 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", + "[ 39/4 ⇜ (627/64 → 157/16) ⇝ 10/1 | note:D4 gain:0.2907106781186557 clip:1 s:piano release:0.1 pan:0.537037037037037 ]", + "[ 39/4 ⇜ (627/64 → 157/16) ⇝ 10/1 | note:Eb4 gain:0.2907106781186557 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", + "[ 39/4 ⇜ (627/64 → 157/16) ⇝ 10/1 | note:G4 gain:0.2907106781186557 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", + "[ 39/4 ⇜ (157/16 → 629/64) ⇝ 79/8 | note:G4 gain:0.44000000000000883 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", + "[ 39/4 ⇜ (157/16 → 629/64) ⇝ 79/8 | note:D5 gain:0.44000000000000883 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", + "[ 39/4 ⇜ (157/16 → 629/64) ⇝ 79/8 | note:F5 gain:0.44000000000000883 clip:1 s:piano release:0.1 pan:0.6064814814814814 ]", + "[ 39/4 ⇜ (157/16 → 629/64) ⇝ 10/1 | note:Bb3 gain:0.22000000000000441 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", + "[ 39/4 ⇜ (157/16 → 629/64) ⇝ 10/1 | note:D4 gain:0.22000000000000441 clip:1 s:piano release:0.1 pan:0.537037037037037 ]", + "[ 39/4 ⇜ (157/16 → 629/64) ⇝ 10/1 | note:Eb4 gain:0.22000000000000441 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", + "[ 39/4 ⇜ (157/16 → 629/64) ⇝ 10/1 | note:G4 gain:0.22000000000000441 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", + "[ 39/4 ⇜ (629/64 → 315/32) ⇝ 79/8 | note:G4 gain:0.2985786437626931 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", + "[ 39/4 ⇜ (629/64 → 315/32) ⇝ 79/8 | note:D5 gain:0.2985786437626931 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", + "[ 39/4 ⇜ (629/64 → 315/32) ⇝ 79/8 | note:F5 gain:0.2985786437626931 clip:1 s:piano release:0.1 pan:0.6064814814814814 ]", + "[ 39/4 ⇜ (629/64 → 315/32) ⇝ 10/1 | note:Bb3 gain:0.14928932188134655 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", + "[ 39/4 ⇜ (629/64 → 315/32) ⇝ 10/1 | note:D4 gain:0.14928932188134655 clip:1 s:piano release:0.1 pan:0.537037037037037 ]", + "[ 39/4 ⇜ (629/64 → 315/32) ⇝ 10/1 | note:Eb4 gain:0.14928932188134655 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", + "[ 39/4 ⇜ (629/64 → 315/32) ⇝ 10/1 | note:G4 gain:0.14928932188134655 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", + "[ 39/4 ⇜ (315/32 → 631/64) ⇝ 79/8 | note:G4 gain:0.24 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", + "[ 39/4 ⇜ (315/32 → 631/64) ⇝ 79/8 | note:D5 gain:0.24 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", + "[ 39/4 ⇜ (315/32 → 631/64) ⇝ 79/8 | note:F5 gain:0.24 clip:1 s:piano release:0.1 pan:0.6064814814814814 ]", + "[ 39/4 ⇜ (315/32 → 631/64) ⇝ 10/1 | note:Bb3 gain:0.12 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", + "[ 39/4 ⇜ (315/32 → 631/64) ⇝ 10/1 | note:D4 gain:0.12 clip:1 s:piano release:0.1 pan:0.537037037037037 ]", + "[ 39/4 ⇜ (315/32 → 631/64) ⇝ 10/1 | note:Eb4 gain:0.12 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", + "[ 39/4 ⇜ (315/32 → 631/64) ⇝ 10/1 | note:G4 gain:0.12 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", + "[ 39/4 ⇜ (631/64 → 79/8) | note:G4 gain:0.2985786437626871 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", + "[ 39/4 ⇜ (631/64 → 79/8) | note:D5 gain:0.2985786437626871 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", + "[ 39/4 ⇜ (631/64 → 79/8) | note:F5 gain:0.2985786437626871 clip:1 s:piano release:0.1 pan:0.6064814814814814 ]", + "[ 39/4 ⇜ (631/64 → 79/8) ⇝ 10/1 | note:Bb3 gain:0.14928932188134356 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", + "[ 39/4 ⇜ (631/64 → 79/8) ⇝ 10/1 | note:D4 gain:0.14928932188134356 clip:1 s:piano release:0.1 pan:0.537037037037037 ]", + "[ 39/4 ⇜ (631/64 → 79/8) ⇝ 10/1 | note:Eb4 gain:0.14928932188134356 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", + "[ 39/4 ⇜ (631/64 → 79/8) ⇝ 10/1 | note:G4 gain:0.14928932188134356 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", + "[ 39/4 ⇜ (79/8 → 633/64) ⇝ 10/1 | note:Bb3 gain:0.2200000000000002 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", + "[ 39/4 ⇜ (79/8 → 633/64) ⇝ 10/1 | note:D4 gain:0.2200000000000002 clip:1 s:piano release:0.1 pan:0.537037037037037 ]", + "[ 39/4 ⇜ (79/8 → 633/64) ⇝ 10/1 | note:Eb4 gain:0.2200000000000002 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", + "[ 39/4 ⇜ (79/8 → 633/64) ⇝ 10/1 | note:G4 gain:0.2200000000000002 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", + "[ 39/4 ⇜ (633/64 → 317/32) ⇝ 10/1 | note:Bb3 gain:0.2907106781186527 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", + "[ 39/4 ⇜ (633/64 → 317/32) ⇝ 10/1 | note:D4 gain:0.2907106781186527 clip:1 s:piano release:0.1 pan:0.537037037037037 ]", + "[ 39/4 ⇜ (633/64 → 317/32) ⇝ 10/1 | note:Eb4 gain:0.2907106781186527 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", + "[ 39/4 ⇜ (633/64 → 317/32) ⇝ 10/1 | note:G4 gain:0.2907106781186527 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", + "[ 39/4 ⇜ (317/32 → 635/64) ⇝ 10/1 | note:Bb3 gain:0.32000000000000006 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", + "[ 39/4 ⇜ (317/32 → 635/64) ⇝ 10/1 | note:D4 gain:0.32000000000000006 clip:1 s:piano release:0.1 pan:0.537037037037037 ]", + "[ 39/4 ⇜ (317/32 → 635/64) ⇝ 10/1 | note:Eb4 gain:0.32000000000000006 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", + "[ 39/4 ⇜ (317/32 → 635/64) ⇝ 10/1 | note:G4 gain:0.32000000000000006 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", + "[ 39/4 ⇜ (635/64 → 159/16) ⇝ 10/1 | note:Bb3 gain:0.2907106781186572 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", + "[ 39/4 ⇜ (635/64 → 159/16) ⇝ 10/1 | note:D4 gain:0.2907106781186572 clip:1 s:piano release:0.1 pan:0.537037037037037 ]", + "[ 39/4 ⇜ (635/64 → 159/16) ⇝ 10/1 | note:Eb4 gain:0.2907106781186572 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", + "[ 39/4 ⇜ (635/64 → 159/16) ⇝ 10/1 | note:G4 gain:0.2907106781186572 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", + "[ 39/4 ⇜ (159/16 → 637/64) ⇝ 10/1 | note:Bb3 gain:0.22000000000000092 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", + "[ 39/4 ⇜ (159/16 → 637/64) ⇝ 10/1 | note:D4 gain:0.22000000000000092 clip:1 s:piano release:0.1 pan:0.537037037037037 ]", + "[ 39/4 ⇜ (159/16 → 637/64) ⇝ 10/1 | note:Eb4 gain:0.22000000000000092 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", + "[ 39/4 ⇜ (159/16 → 637/64) ⇝ 10/1 | note:G4 gain:0.22000000000000092 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", + "[ 39/4 ⇜ (637/64 → 319/32) ⇝ 10/1 | note:Bb3 gain:0.14928932188134808 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", + "[ 39/4 ⇜ (637/64 → 319/32) ⇝ 10/1 | note:D4 gain:0.14928932188134808 clip:1 s:piano release:0.1 pan:0.537037037037037 ]", + "[ 39/4 ⇜ (637/64 → 319/32) ⇝ 10/1 | note:Eb4 gain:0.14928932188134808 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", + "[ 39/4 ⇜ (637/64 → 319/32) ⇝ 10/1 | note:G4 gain:0.14928932188134808 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", + "[ 39/4 ⇜ (319/32 → 639/64) ⇝ 10/1 | note:Bb3 gain:0.12 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", + "[ 39/4 ⇜ (319/32 → 639/64) ⇝ 10/1 | note:D4 gain:0.12 clip:1 s:piano release:0.1 pan:0.537037037037037 ]", + "[ 39/4 ⇜ (319/32 → 639/64) ⇝ 10/1 | note:Eb4 gain:0.12 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", + "[ 39/4 ⇜ (319/32 → 639/64) ⇝ 10/1 | note:G4 gain:0.12 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", + "[ 39/4 ⇜ (639/64 → 10/1) | note:Bb3 gain:0.14928932188134203 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", + "[ 39/4 ⇜ (639/64 → 10/1) | note:D4 gain:0.14928932188134203 clip:1 s:piano release:0.1 pan:0.537037037037037 ]", + "[ 39/4 ⇜ (639/64 → 10/1) | note:Eb4 gain:0.14928932188134203 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", + "[ 39/4 ⇜ (639/64 → 10/1) | note:G4 gain:0.14928932188134203 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", + "[ (10/1 → 641/64) ⇝ 41/4 | note:F2 gain:0.43999999999999617 clip:1 s:piano release:0.1 pan:0.4398148148148148 ]", + "[ 10/1 ⇜ (641/64 → 321/32) ⇝ 41/4 | note:F2 gain:0.5814213562373104 clip:1 s:piano release:0.1 pan:0.4398148148148148 ]", + "[ 10/1 ⇜ (321/32 → 643/64) ⇝ 41/4 | note:F2 gain:0.6400000000000001 clip:1 s:piano release:0.1 pan:0.4398148148148148 ]", + "[ (281/28 → 643/64) ⇝ 72/7 | note:70 gain:0.06400000000000002 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", + "[ (281/28 → 643/64) ⇝ 72/7 | note:74 gain:0.06400000000000002 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", + "[ (281/28 → 643/64) ⇝ 72/7 | note:75 gain:0.06400000000000002 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", + "[ (281/28 → 643/64) ⇝ 72/7 | note:79 gain:0.06400000000000002 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", + "[ 10/1 ⇜ (643/64 → 161/16) ⇝ 41/4 | note:F2 gain:0.5814213562373095 clip:1 s:piano release:0.1 pan:0.4398148148148148 ]", + "[ 281/28 ⇜ (643/64 → 161/16) ⇝ 72/7 | note:70 gain:0.05814213562373095 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", + "[ 281/28 ⇜ (643/64 → 161/16) ⇝ 72/7 | note:74 gain:0.05814213562373095 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", + "[ 281/28 ⇜ (643/64 → 161/16) ⇝ 72/7 | note:75 gain:0.05814213562373095 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", + "[ 281/28 ⇜ (643/64 → 161/16) ⇝ 72/7 | note:79 gain:0.05814213562373095 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", + "[ 10/1 ⇜ (161/16 → 645/64) ⇝ 41/4 | note:F2 gain:0.4400000000000061 clip:1 s:piano release:0.1 pan:0.4398148148148148 ]", + "[ 281/28 ⇜ (161/16 → 645/64) ⇝ 72/7 | note:70 gain:0.044000000000000615 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", + "[ 281/28 ⇜ (161/16 → 645/64) ⇝ 72/7 | note:74 gain:0.044000000000000615 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", + "[ 281/28 ⇜ (161/16 → 645/64) ⇝ 72/7 | note:75 gain:0.044000000000000615 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", + "[ 281/28 ⇜ (161/16 → 645/64) ⇝ 72/7 | note:79 gain:0.044000000000000615 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", + "[ 10/1 ⇜ (645/64 → 323/32) ⇝ 41/4 | note:F2 gain:0.29857864376269116 clip:1 s:piano release:0.1 pan:0.4398148148148148 ]", + "[ 281/28 ⇜ (645/64 → 323/32) ⇝ 72/7 | note:70 gain:0.029857864376269118 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", + "[ 281/28 ⇜ (645/64 → 323/32) ⇝ 72/7 | note:74 gain:0.029857864376269118 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", + "[ 281/28 ⇜ (645/64 → 323/32) ⇝ 72/7 | note:75 gain:0.029857864376269118 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", + "[ 281/28 ⇜ (645/64 → 323/32) ⇝ 72/7 | note:79 gain:0.029857864376269118 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", + "[ 10/1 ⇜ (323/32 → 647/64) ⇝ 41/4 | note:F2 gain:0.24 clip:1 s:piano release:0.1 pan:0.4398148148148148 ]", + "[ 281/28 ⇜ (323/32 → 647/64) ⇝ 72/7 | note:70 gain:0.024 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", + "[ 281/28 ⇜ (323/32 → 647/64) ⇝ 72/7 | note:74 gain:0.024 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", + "[ 281/28 ⇜ (323/32 → 647/64) ⇝ 72/7 | note:75 gain:0.024 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", + "[ 281/28 ⇜ (323/32 → 647/64) ⇝ 72/7 | note:79 gain:0.024 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", + "[ 10/1 ⇜ (647/64 → 81/8) ⇝ 41/4 | note:F2 gain:0.2985786437626891 clip:1 s:piano release:0.1 pan:0.4398148148148148 ]", + "[ 281/28 ⇜ (647/64 → 81/8) ⇝ 72/7 | note:70 gain:0.029857864376268913 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", + "[ 281/28 ⇜ (647/64 → 81/8) ⇝ 72/7 | note:74 gain:0.029857864376268913 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", + "[ 281/28 ⇜ (647/64 → 81/8) ⇝ 72/7 | note:75 gain:0.029857864376268913 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", + "[ 281/28 ⇜ (647/64 → 81/8) ⇝ 72/7 | note:79 gain:0.029857864376268913 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", + "[ 10/1 ⇜ (81/8 → 649/64) ⇝ 41/4 | note:F2 gain:0.4399999999999918 clip:1 s:piano release:0.1 pan:0.4398148148148148 ]", + "[ 281/28 ⇜ (81/8 → 649/64) ⇝ 72/7 | note:70 gain:0.04399999999999918 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", + "[ 281/28 ⇜ (81/8 → 649/64) ⇝ 72/7 | note:74 gain:0.04399999999999918 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", + "[ 281/28 ⇜ (81/8 → 649/64) ⇝ 72/7 | note:75 gain:0.04399999999999918 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", + "[ 281/28 ⇜ (81/8 → 649/64) ⇝ 72/7 | note:79 gain:0.04399999999999918 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", + "[ (81/8 → 649/64) ⇝ 41/4 | note:F4 gain:0.4399999999999918 clip:1 s:piano release:0.1 pan:0.5509259259259259 ]", + "[ (81/8 → 649/64) ⇝ 41/4 | note:C5 gain:0.4399999999999918 clip:1 s:piano release:0.1 pan:0.5833333333333333 ]", + "[ (81/8 → 649/64) ⇝ 41/4 | note:Eb5 gain:0.4399999999999918 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", + "[ 10/1 ⇜ (649/64 → 325/32) ⇝ 41/4 | note:F2 gain:0.5814213562373073 clip:1 s:piano release:0.1 pan:0.4398148148148148 ]", + "[ 281/28 ⇜ (649/64 → 325/32) ⇝ 72/7 | note:70 gain:0.05814213562373073 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", + "[ 281/28 ⇜ (649/64 → 325/32) ⇝ 72/7 | note:74 gain:0.05814213562373073 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", + "[ 281/28 ⇜ (649/64 → 325/32) ⇝ 72/7 | note:75 gain:0.05814213562373073 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", + "[ 281/28 ⇜ (649/64 → 325/32) ⇝ 72/7 | note:79 gain:0.05814213562373073 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", + "[ 81/8 ⇜ (649/64 → 325/32) ⇝ 41/4 | note:F4 gain:0.5814213562373073 clip:1 s:piano release:0.1 pan:0.5509259259259259 ]", + "[ 81/8 ⇜ (649/64 → 325/32) ⇝ 41/4 | note:C5 gain:0.5814213562373073 clip:1 s:piano release:0.1 pan:0.5833333333333333 ]", + "[ 81/8 ⇜ (649/64 → 325/32) ⇝ 41/4 | note:Eb5 gain:0.5814213562373073 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", + "[ 10/1 ⇜ (325/32 → 651/64) ⇝ 41/4 | note:F2 gain:0.6400000000000001 clip:1 s:piano release:0.1 pan:0.4398148148148148 ]", + "[ 281/28 ⇜ (325/32 → 651/64) ⇝ 72/7 | note:70 gain:0.06400000000000002 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", + "[ 281/28 ⇜ (325/32 → 651/64) ⇝ 72/7 | note:74 gain:0.06400000000000002 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", + "[ 281/28 ⇜ (325/32 → 651/64) ⇝ 72/7 | note:75 gain:0.06400000000000002 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", + "[ 281/28 ⇜ (325/32 → 651/64) ⇝ 72/7 | note:79 gain:0.06400000000000002 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", + "[ 81/8 ⇜ (325/32 → 651/64) ⇝ 41/4 | note:F4 gain:0.6400000000000001 clip:1 s:piano release:0.1 pan:0.5509259259259259 ]", + "[ 81/8 ⇜ (325/32 → 651/64) ⇝ 41/4 | note:C5 gain:0.6400000000000001 clip:1 s:piano release:0.1 pan:0.5833333333333333 ]", + "[ 81/8 ⇜ (325/32 → 651/64) ⇝ 41/4 | note:Eb5 gain:0.6400000000000001 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", + "[ 10/1 ⇜ (651/64 → 163/16) ⇝ 41/4 | note:F2 gain:0.5814213562373125 clip:1 s:piano release:0.1 pan:0.4398148148148148 ]", + "[ 281/28 ⇜ (651/64 → 163/16) ⇝ 72/7 | note:70 gain:0.05814213562373125 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", + "[ 281/28 ⇜ (651/64 → 163/16) ⇝ 72/7 | note:74 gain:0.05814213562373125 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", + "[ 281/28 ⇜ (651/64 → 163/16) ⇝ 72/7 | note:75 gain:0.05814213562373125 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", + "[ 281/28 ⇜ (651/64 → 163/16) ⇝ 72/7 | note:79 gain:0.05814213562373125 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", + "[ 81/8 ⇜ (651/64 → 163/16) ⇝ 41/4 | note:F4 gain:0.5814213562373125 clip:1 s:piano release:0.1 pan:0.5509259259259259 ]", + "[ 81/8 ⇜ (651/64 → 163/16) ⇝ 41/4 | note:C5 gain:0.5814213562373125 clip:1 s:piano release:0.1 pan:0.5833333333333333 ]", + "[ 81/8 ⇜ (651/64 → 163/16) ⇝ 41/4 | note:Eb5 gain:0.5814213562373125 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", + "[ 10/1 ⇜ (163/16 → 653/64) ⇝ 41/4 | note:F2 gain:0.4400000000000104 clip:1 s:piano release:0.1 pan:0.4398148148148148 ]", + "[ 281/28 ⇜ (163/16 → 653/64) ⇝ 72/7 | note:70 gain:0.04400000000000104 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", + "[ 281/28 ⇜ (163/16 → 653/64) ⇝ 72/7 | note:74 gain:0.04400000000000104 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", + "[ 281/28 ⇜ (163/16 → 653/64) ⇝ 72/7 | note:75 gain:0.04400000000000104 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", + "[ 281/28 ⇜ (163/16 → 653/64) ⇝ 72/7 | note:79 gain:0.04400000000000104 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", + "[ 81/8 ⇜ (163/16 → 653/64) ⇝ 41/4 | note:F4 gain:0.4400000000000104 clip:1 s:piano release:0.1 pan:0.5509259259259259 ]", + "[ 81/8 ⇜ (163/16 → 653/64) ⇝ 41/4 | note:C5 gain:0.4400000000000104 clip:1 s:piano release:0.1 pan:0.5833333333333333 ]", + "[ 81/8 ⇜ (163/16 → 653/64) ⇝ 41/4 | note:Eb5 gain:0.4400000000000104 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", + "[ 10/1 ⇜ (653/64 → 327/32) ⇝ 41/4 | note:F2 gain:0.29857864376268617 clip:1 s:piano release:0.1 pan:0.4398148148148148 ]", + "[ 281/28 ⇜ (653/64 → 327/32) ⇝ 72/7 | note:70 gain:0.02985786437626862 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", + "[ 281/28 ⇜ (653/64 → 327/32) ⇝ 72/7 | note:74 gain:0.02985786437626862 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", + "[ 281/28 ⇜ (653/64 → 327/32) ⇝ 72/7 | note:75 gain:0.02985786437626862 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", + "[ 281/28 ⇜ (653/64 → 327/32) ⇝ 72/7 | note:79 gain:0.02985786437626862 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", + "[ 81/8 ⇜ (653/64 → 327/32) ⇝ 41/4 | note:F4 gain:0.29857864376268617 clip:1 s:piano release:0.1 pan:0.5509259259259259 ]", + "[ 81/8 ⇜ (653/64 → 327/32) ⇝ 41/4 | note:C5 gain:0.29857864376268617 clip:1 s:piano release:0.1 pan:0.5833333333333333 ]", + "[ 81/8 ⇜ (653/64 → 327/32) ⇝ 41/4 | note:Eb5 gain:0.29857864376268617 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", + "[ 10/1 ⇜ (327/32 → 655/64) ⇝ 41/4 | note:F2 gain:0.24 clip:1 s:piano release:0.1 pan:0.4398148148148148 ]", + "[ 281/28 ⇜ (327/32 → 655/64) ⇝ 72/7 | note:70 gain:0.024 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", + "[ 281/28 ⇜ (327/32 → 655/64) ⇝ 72/7 | note:74 gain:0.024 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", + "[ 281/28 ⇜ (327/32 → 655/64) ⇝ 72/7 | note:75 gain:0.024 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", + "[ 281/28 ⇜ (327/32 → 655/64) ⇝ 72/7 | note:79 gain:0.024 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", + "[ 81/8 ⇜ (327/32 → 655/64) ⇝ 41/4 | note:F4 gain:0.24 clip:1 s:piano release:0.1 pan:0.5509259259259259 ]", + "[ 81/8 ⇜ (327/32 → 655/64) ⇝ 41/4 | note:C5 gain:0.24 clip:1 s:piano release:0.1 pan:0.5833333333333333 ]", + "[ 81/8 ⇜ (327/32 → 655/64) ⇝ 41/4 | note:Eb5 gain:0.24 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", + "[ 10/1 ⇜ (655/64 → 41/4) | note:F2 gain:0.298578643762686 clip:1 s:piano release:0.1 pan:0.4398148148148148 ]", + "[ 281/28 ⇜ (655/64 → 41/4) ⇝ 72/7 | note:70 gain:0.0298578643762686 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", + "[ 281/28 ⇜ (655/64 → 41/4) ⇝ 72/7 | note:74 gain:0.0298578643762686 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", + "[ 281/28 ⇜ (655/64 → 41/4) ⇝ 72/7 | note:75 gain:0.0298578643762686 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", + "[ 281/28 ⇜ (655/64 → 41/4) ⇝ 72/7 | note:79 gain:0.0298578643762686 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", + "[ 81/8 ⇜ (655/64 → 41/4) | note:F4 gain:0.298578643762686 clip:1 s:piano release:0.1 pan:0.5509259259259259 ]", + "[ 81/8 ⇜ (655/64 → 41/4) | note:C5 gain:0.298578643762686 clip:1 s:piano release:0.1 pan:0.5833333333333333 ]", + "[ 81/8 ⇜ (655/64 → 41/4) | note:Eb5 gain:0.298578643762686 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", + "[ 281/28 ⇜ (41/4 → 657/64) ⇝ 72/7 | note:70 gain:0.04399999999999875 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", + "[ 281/28 ⇜ (41/4 → 657/64) ⇝ 72/7 | note:74 gain:0.04399999999999875 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", + "[ 281/28 ⇜ (41/4 → 657/64) ⇝ 72/7 | note:75 gain:0.04399999999999875 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", + "[ 281/28 ⇜ (41/4 → 657/64) ⇝ 72/7 | note:79 gain:0.04399999999999875 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", + "[ 281/28 ⇜ (657/64 → 329/32) ⇝ 72/7 | note:70 gain:0.05814213562373123 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", + "[ 281/28 ⇜ (657/64 → 329/32) ⇝ 72/7 | note:74 gain:0.05814213562373123 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", + "[ 281/28 ⇜ (657/64 → 329/32) ⇝ 72/7 | note:75 gain:0.05814213562373123 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", + "[ 281/28 ⇜ (657/64 → 329/32) ⇝ 72/7 | note:79 gain:0.05814213562373123 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", + "[ 281/28 ⇜ (329/32 → 72/7) | note:70 gain:0.06400000000000002 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", + "[ 281/28 ⇜ (329/32 → 72/7) | note:74 gain:0.06400000000000002 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", + "[ 281/28 ⇜ (329/32 → 72/7) | note:75 gain:0.06400000000000002 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", + "[ 281/28 ⇜ (329/32 → 72/7) | note:79 gain:0.06400000000000002 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", + "[ (21/2 → 673/64) ⇝ 85/8 | note:C5 gain:0.44000000000000156 clip:1 s:piano release:0.1 pan:0.5833333333333333 ]", + "[ (21/2 → 673/64) ⇝ 85/8 | note:G5 gain:0.44000000000000156 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", + "[ (21/2 → 673/64) ⇝ 85/8 | note:Bb5 gain:0.44000000000000156 clip:1 s:piano release:0.1 pan:0.6296296296296297 ]", + "[ (21/2 → 673/64) ⇝ 43/4 | note:Eb4 gain:0.22000000000000078 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", + "[ (21/2 → 673/64) ⇝ 43/4 | note:G4 gain:0.22000000000000078 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", + "[ (21/2 → 673/64) ⇝ 43/4 | note:Ab4 gain:0.22000000000000078 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", + "[ (21/2 → 673/64) ⇝ 43/4 | note:C5 gain:0.22000000000000078 clip:1 s:piano release:0.1 pan:0.5833333333333333 ]", + "[ (21/2 → 673/64) ⇝ 43/4 | note:F2 gain:0.44000000000000156 clip:1 s:piano release:0.1 pan:0.4398148148148148 ]", + "[ 21/2 ⇜ (673/64 → 337/32) ⇝ 85/8 | note:C5 gain:0.5814213562373063 clip:1 s:piano release:0.1 pan:0.5833333333333333 ]", + "[ 21/2 ⇜ (673/64 → 337/32) ⇝ 85/8 | note:G5 gain:0.5814213562373063 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", + "[ 21/2 ⇜ (673/64 → 337/32) ⇝ 85/8 | note:Bb5 gain:0.5814213562373063 clip:1 s:piano release:0.1 pan:0.6296296296296297 ]", + "[ 21/2 ⇜ (673/64 → 337/32) ⇝ 43/4 | note:Eb4 gain:0.29071067811865314 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", + "[ 21/2 ⇜ (673/64 → 337/32) ⇝ 43/4 | note:G4 gain:0.29071067811865314 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", + "[ 21/2 ⇜ (673/64 → 337/32) ⇝ 43/4 | note:Ab4 gain:0.29071067811865314 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", + "[ 21/2 ⇜ (673/64 → 337/32) ⇝ 43/4 | note:C5 gain:0.29071067811865314 clip:1 s:piano release:0.1 pan:0.5833333333333333 ]", + "[ 21/2 ⇜ (673/64 → 337/32) ⇝ 43/4 | note:F2 gain:0.5814213562373063 clip:1 s:piano release:0.1 pan:0.4398148148148148 ]", + "[ 21/2 ⇜ (337/32 → 675/64) ⇝ 85/8 | note:C5 gain:0.6400000000000001 clip:1 s:piano release:0.1 pan:0.5833333333333333 ]", + "[ 21/2 ⇜ (337/32 → 675/64) ⇝ 85/8 | note:G5 gain:0.6400000000000001 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", + "[ 21/2 ⇜ (337/32 → 675/64) ⇝ 85/8 | note:Bb5 gain:0.6400000000000001 clip:1 s:piano release:0.1 pan:0.6296296296296297 ]", + "[ 21/2 ⇜ (337/32 → 675/64) ⇝ 43/4 | note:Eb4 gain:0.32000000000000006 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", + "[ 21/2 ⇜ (337/32 → 675/64) ⇝ 43/4 | note:G4 gain:0.32000000000000006 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", + "[ 21/2 ⇜ (337/32 → 675/64) ⇝ 43/4 | note:Ab4 gain:0.32000000000000006 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", + "[ 21/2 ⇜ (337/32 → 675/64) ⇝ 43/4 | note:C5 gain:0.32000000000000006 clip:1 s:piano release:0.1 pan:0.5833333333333333 ]", + "[ 21/2 ⇜ (337/32 → 675/64) ⇝ 43/4 | note:F2 gain:0.6400000000000001 clip:1 s:piano release:0.1 pan:0.4398148148148148 ]", + "[ 21/2 ⇜ (675/64 → 169/16) ⇝ 85/8 | note:C5 gain:0.5814213562373055 clip:1 s:piano release:0.1 pan:0.5833333333333333 ]", + "[ 21/2 ⇜ (675/64 → 169/16) ⇝ 85/8 | note:G5 gain:0.5814213562373055 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", + "[ 21/2 ⇜ (675/64 → 169/16) ⇝ 85/8 | note:Bb5 gain:0.5814213562373055 clip:1 s:piano release:0.1 pan:0.6296296296296297 ]", + "[ 21/2 ⇜ (675/64 → 169/16) ⇝ 43/4 | note:Eb4 gain:0.29071067811865275 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", + "[ 21/2 ⇜ (675/64 → 169/16) ⇝ 43/4 | note:G4 gain:0.29071067811865275 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", + "[ 21/2 ⇜ (675/64 → 169/16) ⇝ 43/4 | note:Ab4 gain:0.29071067811865275 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", + "[ 21/2 ⇜ (675/64 → 169/16) ⇝ 43/4 | note:C5 gain:0.29071067811865275 clip:1 s:piano release:0.1 pan:0.5833333333333333 ]", + "[ 21/2 ⇜ (675/64 → 169/16) ⇝ 43/4 | note:F2 gain:0.5814213562373055 clip:1 s:piano release:0.1 pan:0.4398148148148148 ]", + "[ 21/2 ⇜ (169/16 → 677/64) ⇝ 85/8 | note:C5 gain:0.4400000000000006 clip:1 s:piano release:0.1 pan:0.5833333333333333 ]", + "[ 21/2 ⇜ (169/16 → 677/64) ⇝ 85/8 | note:G5 gain:0.4400000000000006 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", + "[ 21/2 ⇜ (169/16 → 677/64) ⇝ 85/8 | note:Bb5 gain:0.4400000000000006 clip:1 s:piano release:0.1 pan:0.6296296296296297 ]", + "[ 21/2 ⇜ (169/16 → 677/64) ⇝ 43/4 | note:Eb4 gain:0.2200000000000003 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", + "[ 21/2 ⇜ (169/16 → 677/64) ⇝ 43/4 | note:G4 gain:0.2200000000000003 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", + "[ 21/2 ⇜ (169/16 → 677/64) ⇝ 43/4 | note:Ab4 gain:0.2200000000000003 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", + "[ 21/2 ⇜ (169/16 → 677/64) ⇝ 43/4 | note:C5 gain:0.2200000000000003 clip:1 s:piano release:0.1 pan:0.5833333333333333 ]", + "[ 21/2 ⇜ (169/16 → 677/64) ⇝ 43/4 | note:F2 gain:0.4400000000000006 clip:1 s:piano release:0.1 pan:0.4398148148148148 ]", + "[ 21/2 ⇜ (677/64 → 339/32) ⇝ 85/8 | note:C5 gain:0.29857864376269533 clip:1 s:piano release:0.1 pan:0.5833333333333333 ]", + "[ 21/2 ⇜ (677/64 → 339/32) ⇝ 85/8 | note:G5 gain:0.29857864376269533 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", + "[ 21/2 ⇜ (677/64 → 339/32) ⇝ 85/8 | note:Bb5 gain:0.29857864376269533 clip:1 s:piano release:0.1 pan:0.6296296296296297 ]", + "[ 21/2 ⇜ (677/64 → 339/32) ⇝ 43/4 | note:Eb4 gain:0.14928932188134766 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", + "[ 21/2 ⇜ (677/64 → 339/32) ⇝ 43/4 | note:G4 gain:0.14928932188134766 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", + "[ 21/2 ⇜ (677/64 → 339/32) ⇝ 43/4 | note:Ab4 gain:0.14928932188134766 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", + "[ 21/2 ⇜ (677/64 → 339/32) ⇝ 43/4 | note:C5 gain:0.14928932188134766 clip:1 s:piano release:0.1 pan:0.5833333333333333 ]", + "[ 21/2 ⇜ (677/64 → 339/32) ⇝ 43/4 | note:F2 gain:0.29857864376269533 clip:1 s:piano release:0.1 pan:0.4398148148148148 ]", + "[ 21/2 ⇜ (339/32 → 679/64) ⇝ 85/8 | note:C5 gain:0.24 clip:1 s:piano release:0.1 pan:0.5833333333333333 ]", + "[ 21/2 ⇜ (339/32 → 679/64) ⇝ 85/8 | note:G5 gain:0.24 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", + "[ 21/2 ⇜ (339/32 → 679/64) ⇝ 85/8 | note:Bb5 gain:0.24 clip:1 s:piano release:0.1 pan:0.6296296296296297 ]", + "[ 21/2 ⇜ (339/32 → 679/64) ⇝ 43/4 | note:Eb4 gain:0.12 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", + "[ 21/2 ⇜ (339/32 → 679/64) ⇝ 43/4 | note:G4 gain:0.12 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", + "[ 21/2 ⇜ (339/32 → 679/64) ⇝ 43/4 | note:Ab4 gain:0.12 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", + "[ 21/2 ⇜ (339/32 → 679/64) ⇝ 43/4 | note:C5 gain:0.12 clip:1 s:piano release:0.1 pan:0.5833333333333333 ]", + "[ 21/2 ⇜ (339/32 → 679/64) ⇝ 43/4 | note:F2 gain:0.24 clip:1 s:piano release:0.1 pan:0.4398148148148148 ]", + "[ 21/2 ⇜ (679/64 → 85/8) | note:C5 gain:0.29857864376269294 clip:1 s:piano release:0.1 pan:0.5833333333333333 ]", + "[ 21/2 ⇜ (679/64 → 85/8) | note:G5 gain:0.29857864376269294 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", + "[ 21/2 ⇜ (679/64 → 85/8) | note:Bb5 gain:0.29857864376269294 clip:1 s:piano release:0.1 pan:0.6296296296296297 ]", + "[ 21/2 ⇜ (679/64 → 85/8) ⇝ 43/4 | note:Eb4 gain:0.14928932188134647 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", + "[ 21/2 ⇜ (679/64 → 85/8) ⇝ 43/4 | note:G4 gain:0.14928932188134647 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", + "[ 21/2 ⇜ (679/64 → 85/8) ⇝ 43/4 | note:Ab4 gain:0.14928932188134647 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", + "[ 21/2 ⇜ (679/64 → 85/8) ⇝ 43/4 | note:C5 gain:0.14928932188134647 clip:1 s:piano release:0.1 pan:0.5833333333333333 ]", + "[ 21/2 ⇜ (679/64 → 85/8) ⇝ 43/4 | note:F2 gain:0.29857864376269294 clip:1 s:piano release:0.1 pan:0.4398148148148148 ]", + "[ 21/2 ⇜ (85/8 → 681/64) ⇝ 43/4 | note:Eb4 gain:0.2199999999999986 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", + "[ 21/2 ⇜ (85/8 → 681/64) ⇝ 43/4 | note:G4 gain:0.2199999999999986 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", + "[ 21/2 ⇜ (85/8 → 681/64) ⇝ 43/4 | note:Ab4 gain:0.2199999999999986 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", + "[ 21/2 ⇜ (85/8 → 681/64) ⇝ 43/4 | note:C5 gain:0.2199999999999986 clip:1 s:piano release:0.1 pan:0.5833333333333333 ]", + "[ 21/2 ⇜ (85/8 → 681/64) ⇝ 43/4 | note:F2 gain:0.4399999999999972 clip:1 s:piano release:0.1 pan:0.4398148148148148 ]", + "[ 21/2 ⇜ (681/64 → 341/32) ⇝ 43/4 | note:Eb4 gain:0.29071067811865164 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", + "[ 21/2 ⇜ (681/64 → 341/32) ⇝ 43/4 | note:G4 gain:0.29071067811865164 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", + "[ 21/2 ⇜ (681/64 → 341/32) ⇝ 43/4 | note:Ab4 gain:0.29071067811865164 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", + "[ 21/2 ⇜ (681/64 → 341/32) ⇝ 43/4 | note:C5 gain:0.29071067811865164 clip:1 s:piano release:0.1 pan:0.5833333333333333 ]", + "[ 21/2 ⇜ (681/64 → 341/32) ⇝ 43/4 | note:F2 gain:0.5814213562373033 clip:1 s:piano release:0.1 pan:0.4398148148148148 ]", + "[ 21/2 ⇜ (341/32 → 683/64) ⇝ 43/4 | note:Eb4 gain:0.32000000000000006 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", + "[ 21/2 ⇜ (341/32 → 683/64) ⇝ 43/4 | note:G4 gain:0.32000000000000006 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", + "[ 21/2 ⇜ (341/32 → 683/64) ⇝ 43/4 | note:Ab4 gain:0.32000000000000006 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", + "[ 21/2 ⇜ (341/32 → 683/64) ⇝ 43/4 | note:C5 gain:0.32000000000000006 clip:1 s:piano release:0.1 pan:0.5833333333333333 ]", + "[ 21/2 ⇜ (341/32 → 683/64) ⇝ 43/4 | note:F2 gain:0.6400000000000001 clip:1 s:piano release:0.1 pan:0.4398148148148148 ]", + "[ 21/2 ⇜ (683/64 → 171/16) ⇝ 43/4 | note:Eb4 gain:0.2907106781186543 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", + "[ 21/2 ⇜ (683/64 → 171/16) ⇝ 43/4 | note:G4 gain:0.2907106781186543 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", + "[ 21/2 ⇜ (683/64 → 171/16) ⇝ 43/4 | note:Ab4 gain:0.2907106781186543 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", + "[ 21/2 ⇜ (683/64 → 171/16) ⇝ 43/4 | note:C5 gain:0.2907106781186543 clip:1 s:piano release:0.1 pan:0.5833333333333333 ]", + "[ 21/2 ⇜ (683/64 → 171/16) ⇝ 43/4 | note:F2 gain:0.5814213562373086 clip:1 s:piano release:0.1 pan:0.4398148148148148 ]", + "[ 21/2 ⇜ (171/16 → 685/64) ⇝ 43/4 | note:Eb4 gain:0.22000000000000242 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", + "[ 21/2 ⇜ (171/16 → 685/64) ⇝ 43/4 | note:G4 gain:0.22000000000000242 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", + "[ 21/2 ⇜ (171/16 → 685/64) ⇝ 43/4 | note:Ab4 gain:0.22000000000000242 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", + "[ 21/2 ⇜ (171/16 → 685/64) ⇝ 43/4 | note:C5 gain:0.22000000000000242 clip:1 s:piano release:0.1 pan:0.5833333333333333 ]", + "[ 21/2 ⇜ (171/16 → 685/64) ⇝ 43/4 | note:F2 gain:0.44000000000000483 clip:1 s:piano release:0.1 pan:0.4398148148148148 ]", + "[ 21/2 ⇜ (685/64 → 343/32) ⇝ 43/4 | note:Eb4 gain:0.1492893218813492 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", + "[ 21/2 ⇜ (685/64 → 343/32) ⇝ 43/4 | note:G4 gain:0.1492893218813492 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", + "[ 21/2 ⇜ (685/64 → 343/32) ⇝ 43/4 | note:Ab4 gain:0.1492893218813492 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", + "[ 21/2 ⇜ (685/64 → 343/32) ⇝ 43/4 | note:C5 gain:0.1492893218813492 clip:1 s:piano release:0.1 pan:0.5833333333333333 ]", + "[ 21/2 ⇜ (685/64 → 343/32) ⇝ 43/4 | note:F2 gain:0.2985786437626984 clip:1 s:piano release:0.1 pan:0.4398148148148148 ]", + "[ 21/2 ⇜ (343/32 → 687/64) ⇝ 43/4 | note:Eb4 gain:0.12 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", + "[ 21/2 ⇜ (343/32 → 687/64) ⇝ 43/4 | note:G4 gain:0.12 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", + "[ 21/2 ⇜ (343/32 → 687/64) ⇝ 43/4 | note:Ab4 gain:0.12 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", + "[ 21/2 ⇜ (343/32 → 687/64) ⇝ 43/4 | note:C5 gain:0.12 clip:1 s:piano release:0.1 pan:0.5833333333333333 ]", + "[ 21/2 ⇜ (343/32 → 687/64) ⇝ 43/4 | note:F2 gain:0.24 clip:1 s:piano release:0.1 pan:0.4398148148148148 ]", + "[ 21/2 ⇜ (687/64 → 43/4) | note:Eb4 gain:0.14928932188134497 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", + "[ 21/2 ⇜ (687/64 → 43/4) | note:G4 gain:0.14928932188134497 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", + "[ 21/2 ⇜ (687/64 → 43/4) | note:Ab4 gain:0.14928932188134497 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", + "[ 21/2 ⇜ (687/64 → 43/4) | note:C5 gain:0.14928932188134497 clip:1 s:piano release:0.1 pan:0.5833333333333333 ]", + "[ 21/2 ⇜ (687/64 → 43/4) | note:F2 gain:0.29857864376268994 clip:1 s:piano release:0.1 pan:0.4398148148148148 ]", + "[ (43/4 → 689/64) ⇝ 87/8 | note:F4 gain:0.43999999999999295 clip:1 s:piano release:0.1 pan:0.5509259259259259 ]", + "[ (43/4 → 689/64) ⇝ 87/8 | note:C5 gain:0.43999999999999295 clip:1 s:piano release:0.1 pan:0.5833333333333333 ]", + "[ (43/4 → 689/64) ⇝ 87/8 | note:Eb5 gain:0.43999999999999295 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", + "[ 43/4 ⇜ (689/64 → 345/32) ⇝ 87/8 | note:F4 gain:0.5814213562373002 clip:1 s:piano release:0.1 pan:0.5509259259259259 ]", + "[ 43/4 ⇜ (689/64 → 345/32) ⇝ 87/8 | note:C5 gain:0.5814213562373002 clip:1 s:piano release:0.1 pan:0.5833333333333333 ]", + "[ 43/4 ⇜ (689/64 → 345/32) ⇝ 87/8 | note:Eb5 gain:0.5814213562373002 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", + "[ 43/4 ⇜ (345/32 → 691/64) ⇝ 87/8 | note:F4 gain:0.6400000000000001 clip:1 s:piano release:0.1 pan:0.5509259259259259 ]", + "[ 43/4 ⇜ (345/32 → 691/64) ⇝ 87/8 | note:C5 gain:0.6400000000000001 clip:1 s:piano release:0.1 pan:0.5833333333333333 ]", + "[ 43/4 ⇜ (345/32 → 691/64) ⇝ 87/8 | note:Eb5 gain:0.6400000000000001 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", + "[ (151/14 → 691/64) ⇝ 309/28 | note:75 gain:0.06400000000000002 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", + "[ (151/14 → 691/64) ⇝ 309/28 | note:79 gain:0.06400000000000002 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", + "[ (151/14 → 691/64) ⇝ 309/28 | note:80 gain:0.06400000000000002 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", + "[ (151/14 → 691/64) ⇝ 309/28 | note:84 gain:0.06400000000000002 clip:1 s:piano release:0.1 pan:0.6388888888888888 ]", + "[ 43/4 ⇜ (691/64 → 173/16) ⇝ 87/8 | note:F4 gain:0.5814213562373116 clip:1 s:piano release:0.1 pan:0.5509259259259259 ]", + "[ 43/4 ⇜ (691/64 → 173/16) ⇝ 87/8 | note:C5 gain:0.5814213562373116 clip:1 s:piano release:0.1 pan:0.5833333333333333 ]", + "[ 43/4 ⇜ (691/64 → 173/16) ⇝ 87/8 | note:Eb5 gain:0.5814213562373116 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", + "[ 151/14 ⇜ (691/64 → 173/16) ⇝ 309/28 | note:75 gain:0.05814213562373116 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", + "[ 151/14 ⇜ (691/64 → 173/16) ⇝ 309/28 | note:79 gain:0.05814213562373116 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", + "[ 151/14 ⇜ (691/64 → 173/16) ⇝ 309/28 | note:80 gain:0.05814213562373116 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", + "[ 151/14 ⇜ (691/64 → 173/16) ⇝ 309/28 | note:84 gain:0.05814213562373116 clip:1 s:piano release:0.1 pan:0.6388888888888888 ]", + "[ 43/4 ⇜ (173/16 → 693/64) ⇝ 87/8 | note:F4 gain:0.4400000000000092 clip:1 s:piano release:0.1 pan:0.5509259259259259 ]", + "[ 43/4 ⇜ (173/16 → 693/64) ⇝ 87/8 | note:C5 gain:0.4400000000000092 clip:1 s:piano release:0.1 pan:0.5833333333333333 ]", + "[ 43/4 ⇜ (173/16 → 693/64) ⇝ 87/8 | note:Eb5 gain:0.4400000000000092 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", + "[ 151/14 ⇜ (173/16 → 693/64) ⇝ 309/28 | note:75 gain:0.04400000000000093 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", + "[ 151/14 ⇜ (173/16 → 693/64) ⇝ 309/28 | note:79 gain:0.04400000000000093 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", + "[ 151/14 ⇜ (173/16 → 693/64) ⇝ 309/28 | note:80 gain:0.04400000000000093 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", + "[ 151/14 ⇜ (173/16 → 693/64) ⇝ 309/28 | note:84 gain:0.04400000000000093 clip:1 s:piano release:0.1 pan:0.6388888888888888 ]", + "[ 43/4 ⇜ (693/64 → 347/32) ⇝ 87/8 | note:F4 gain:0.2985786437627014 clip:1 s:piano release:0.1 pan:0.5509259259259259 ]", + "[ 43/4 ⇜ (693/64 → 347/32) ⇝ 87/8 | note:C5 gain:0.2985786437627014 clip:1 s:piano release:0.1 pan:0.5833333333333333 ]", + "[ 43/4 ⇜ (693/64 → 347/32) ⇝ 87/8 | note:Eb5 gain:0.2985786437627014 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", + "[ 151/14 ⇜ (693/64 → 347/32) ⇝ 309/28 | note:75 gain:0.029857864376270138 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", + "[ 151/14 ⇜ (693/64 → 347/32) ⇝ 309/28 | note:79 gain:0.029857864376270138 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", + "[ 151/14 ⇜ (693/64 → 347/32) ⇝ 309/28 | note:80 gain:0.029857864376270138 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", + "[ 151/14 ⇜ (693/64 → 347/32) ⇝ 309/28 | note:84 gain:0.029857864376270138 clip:1 s:piano release:0.1 pan:0.6388888888888888 ]", + "[ 43/4 ⇜ (347/32 → 695/64) ⇝ 87/8 | note:F4 gain:0.24 clip:1 s:piano release:0.1 pan:0.5509259259259259 ]", + "[ 43/4 ⇜ (347/32 → 695/64) ⇝ 87/8 | note:C5 gain:0.24 clip:1 s:piano release:0.1 pan:0.5833333333333333 ]", + "[ 43/4 ⇜ (347/32 → 695/64) ⇝ 87/8 | note:Eb5 gain:0.24 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", + "[ 151/14 ⇜ (347/32 → 695/64) ⇝ 309/28 | note:75 gain:0.024 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", + "[ 151/14 ⇜ (347/32 → 695/64) ⇝ 309/28 | note:79 gain:0.024 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", + "[ 151/14 ⇜ (347/32 → 695/64) ⇝ 309/28 | note:80 gain:0.024 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", + "[ 151/14 ⇜ (347/32 → 695/64) ⇝ 309/28 | note:84 gain:0.024 clip:1 s:piano release:0.1 pan:0.6388888888888888 ]", + "[ 43/4 ⇜ (695/64 → 87/8) | note:F4 gain:0.2985786437626869 clip:1 s:piano release:0.1 pan:0.5509259259259259 ]", + "[ 43/4 ⇜ (695/64 → 87/8) | note:C5 gain:0.2985786437626869 clip:1 s:piano release:0.1 pan:0.5833333333333333 ]", + "[ 43/4 ⇜ (695/64 → 87/8) | note:Eb5 gain:0.2985786437626869 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", + "[ 151/14 ⇜ (695/64 → 87/8) ⇝ 309/28 | note:75 gain:0.02985786437626869 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", + "[ 151/14 ⇜ (695/64 → 87/8) ⇝ 309/28 | note:79 gain:0.02985786437626869 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", + "[ 151/14 ⇜ (695/64 → 87/8) ⇝ 309/28 | note:80 gain:0.02985786437626869 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", + "[ 151/14 ⇜ (695/64 → 87/8) ⇝ 309/28 | note:84 gain:0.02985786437626869 clip:1 s:piano release:0.1 pan:0.6388888888888888 ]", + "[ 151/14 ⇜ (87/8 → 697/64) ⇝ 309/28 | note:75 gain:0.04399999999999887 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", + "[ 151/14 ⇜ (87/8 → 697/64) ⇝ 309/28 | note:79 gain:0.04399999999999887 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", + "[ 151/14 ⇜ (87/8 → 697/64) ⇝ 309/28 | note:80 gain:0.04399999999999887 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", + "[ 151/14 ⇜ (87/8 → 697/64) ⇝ 309/28 | note:84 gain:0.04399999999999887 clip:1 s:piano release:0.1 pan:0.6388888888888888 ]", + "[ 151/14 ⇜ (697/64 → 349/32) ⇝ 309/28 | note:75 gain:0.05814213562373132 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", + "[ 151/14 ⇜ (697/64 → 349/32) ⇝ 309/28 | note:79 gain:0.05814213562373132 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", + "[ 151/14 ⇜ (697/64 → 349/32) ⇝ 309/28 | note:80 gain:0.05814213562373132 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", + "[ 151/14 ⇜ (697/64 → 349/32) ⇝ 309/28 | note:84 gain:0.05814213562373132 clip:1 s:piano release:0.1 pan:0.6388888888888888 ]", + "[ 151/14 ⇜ (349/32 → 699/64) ⇝ 309/28 | note:75 gain:0.06400000000000002 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", + "[ 151/14 ⇜ (349/32 → 699/64) ⇝ 309/28 | note:79 gain:0.06400000000000002 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", + "[ 151/14 ⇜ (349/32 → 699/64) ⇝ 309/28 | note:80 gain:0.06400000000000002 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", + "[ 151/14 ⇜ (349/32 → 699/64) ⇝ 309/28 | note:84 gain:0.06400000000000002 clip:1 s:piano release:0.1 pan:0.6388888888888888 ]", + "[ 151/14 ⇜ (699/64 → 175/16) ⇝ 309/28 | note:75 gain:0.05814213562373147 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", + "[ 151/14 ⇜ (699/64 → 175/16) ⇝ 309/28 | note:79 gain:0.05814213562373147 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", + "[ 151/14 ⇜ (699/64 → 175/16) ⇝ 309/28 | note:80 gain:0.05814213562373147 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", + "[ 151/14 ⇜ (699/64 → 175/16) ⇝ 309/28 | note:84 gain:0.05814213562373147 clip:1 s:piano release:0.1 pan:0.6388888888888888 ]", + "[ 151/14 ⇜ (175/16 → 701/64) ⇝ 309/28 | note:75 gain:0.04400000000000136 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", + "[ 151/14 ⇜ (175/16 → 701/64) ⇝ 309/28 | note:79 gain:0.04400000000000136 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", + "[ 151/14 ⇜ (175/16 → 701/64) ⇝ 309/28 | note:80 gain:0.04400000000000136 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", + "[ 151/14 ⇜ (175/16 → 701/64) ⇝ 309/28 | note:84 gain:0.04400000000000136 clip:1 s:piano release:0.1 pan:0.6388888888888888 ]", + "[ 151/14 ⇜ (701/64 → 351/32) ⇝ 309/28 | note:75 gain:0.02985786437626884 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", + "[ 151/14 ⇜ (701/64 → 351/32) ⇝ 309/28 | note:79 gain:0.02985786437626884 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", + "[ 151/14 ⇜ (701/64 → 351/32) ⇝ 309/28 | note:80 gain:0.02985786437626884 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", + "[ 151/14 ⇜ (701/64 → 351/32) ⇝ 309/28 | note:84 gain:0.02985786437626884 clip:1 s:piano release:0.1 pan:0.6388888888888888 ]", + "[ 151/14 ⇜ (351/32 → 703/64) ⇝ 309/28 | note:75 gain:0.024 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", + "[ 151/14 ⇜ (351/32 → 703/64) ⇝ 309/28 | note:79 gain:0.024 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", + "[ 151/14 ⇜ (351/32 → 703/64) ⇝ 309/28 | note:80 gain:0.024 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", + "[ 151/14 ⇜ (351/32 → 703/64) ⇝ 309/28 | note:84 gain:0.024 clip:1 s:piano release:0.1 pan:0.6388888888888888 ]", + "[ 151/14 ⇜ (703/64 → 11/1) ⇝ 309/28 | note:75 gain:0.02985786437626838 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", + "[ 151/14 ⇜ (703/64 → 11/1) ⇝ 309/28 | note:79 gain:0.02985786437626838 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", + "[ 151/14 ⇜ (703/64 → 11/1) ⇝ 309/28 | note:80 gain:0.02985786437626838 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", + "[ 151/14 ⇜ (703/64 → 11/1) ⇝ 309/28 | note:84 gain:0.02985786437626838 clip:1 s:piano release:0.1 pan:0.6388888888888888 ]", + "[ 151/14 ⇜ (11/1 → 705/64) ⇝ 309/28 | note:75 gain:0.043999999999998436 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", + "[ 151/14 ⇜ (11/1 → 705/64) ⇝ 309/28 | note:79 gain:0.043999999999998436 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", + "[ 151/14 ⇜ (11/1 → 705/64) ⇝ 309/28 | note:80 gain:0.043999999999998436 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", + "[ 151/14 ⇜ (11/1 → 705/64) ⇝ 309/28 | note:84 gain:0.043999999999998436 clip:1 s:piano release:0.1 pan:0.6388888888888888 ]", + "[ (11/1 → 705/64) ⇝ 45/4 | note:F2 gain:0.43999999999998435 clip:1 s:piano release:0.1 pan:0.4398148148148148 ]", + "[ 151/14 ⇜ (705/64 → 353/32) ⇝ 309/28 | note:75 gain:0.05814213562373102 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", + "[ 151/14 ⇜ (705/64 → 353/32) ⇝ 309/28 | note:79 gain:0.05814213562373102 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", + "[ 151/14 ⇜ (705/64 → 353/32) ⇝ 309/28 | note:80 gain:0.05814213562373102 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", + "[ 151/14 ⇜ (705/64 → 353/32) ⇝ 309/28 | note:84 gain:0.05814213562373102 clip:1 s:piano release:0.1 pan:0.6388888888888888 ]", + "[ 11/1 ⇜ (705/64 → 353/32) ⇝ 45/4 | note:F2 gain:0.5814213562373102 clip:1 s:piano release:0.1 pan:0.4398148148148148 ]", + "[ 151/14 ⇜ (353/32 → 309/28) | note:75 gain:0.06400000000000002 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", + "[ 151/14 ⇜ (353/32 → 309/28) | note:79 gain:0.06400000000000002 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", + "[ 151/14 ⇜ (353/32 → 309/28) | note:80 gain:0.06400000000000002 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", + "[ 151/14 ⇜ (353/32 → 309/28) | note:84 gain:0.06400000000000002 clip:1 s:piano release:0.1 pan:0.6388888888888888 ]", + "[ 11/1 ⇜ (353/32 → 707/64) ⇝ 45/4 | note:F2 gain:0.6400000000000001 clip:1 s:piano release:0.1 pan:0.4398148148148148 ]", + "[ 11/1 ⇜ (707/64 → 177/16) ⇝ 45/4 | note:F2 gain:0.5814213562373177 clip:1 s:piano release:0.1 pan:0.4398148148148148 ]", + "[ 11/1 ⇜ (177/16 → 709/64) ⇝ 45/4 | note:F2 gain:0.43999999999999506 clip:1 s:piano release:0.1 pan:0.4398148148148148 ]", + "[ 11/1 ⇜ (709/64 → 355/32) ⇝ 45/4 | note:F2 gain:0.29857864376269144 clip:1 s:piano release:0.1 pan:0.4398148148148148 ]", + "[ 11/1 ⇜ (355/32 → 711/64) ⇝ 45/4 | note:F2 gain:0.24 clip:1 s:piano release:0.1 pan:0.4398148148148148 ]", + "[ 11/1 ⇜ (711/64 → 89/8) ⇝ 45/4 | note:F2 gain:0.2985786437626808 clip:1 s:piano release:0.1 pan:0.4398148148148148 ]", + "[ 11/1 ⇜ (89/8 → 713/64) ⇝ 45/4 | note:F2 gain:0.4400000000000027 clip:1 s:piano release:0.1 pan:0.4398148148148148 ]", + "[ (89/8 → 713/64) ⇝ 45/4 | note:F4 gain:0.4400000000000027 clip:1 s:piano release:0.1 pan:0.5509259259259259 ]", + "[ (89/8 → 713/64) ⇝ 45/4 | note:C5 gain:0.4400000000000027 clip:1 s:piano release:0.1 pan:0.5833333333333333 ]", + "[ (89/8 → 713/64) ⇝ 45/4 | note:Eb5 gain:0.4400000000000027 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", + "[ 11/1 ⇜ (713/64 → 357/32) ⇝ 45/4 | note:F2 gain:0.5814213562373071 clip:1 s:piano release:0.1 pan:0.4398148148148148 ]", + "[ 89/8 ⇜ (713/64 → 357/32) ⇝ 45/4 | note:F4 gain:0.5814213562373071 clip:1 s:piano release:0.1 pan:0.5509259259259259 ]", + "[ 89/8 ⇜ (713/64 → 357/32) ⇝ 45/4 | note:C5 gain:0.5814213562373071 clip:1 s:piano release:0.1 pan:0.5833333333333333 ]", + "[ 89/8 ⇜ (713/64 → 357/32) ⇝ 45/4 | note:Eb5 gain:0.5814213562373071 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", + "[ 11/1 ⇜ (357/32 → 715/64) ⇝ 45/4 | note:F2 gain:0.6400000000000001 clip:1 s:piano release:0.1 pan:0.4398148148148148 ]", + "[ 89/8 ⇜ (357/32 → 715/64) ⇝ 45/4 | note:F4 gain:0.6400000000000001 clip:1 s:piano release:0.1 pan:0.5509259259259259 ]", + "[ 89/8 ⇜ (357/32 → 715/64) ⇝ 45/4 | note:C5 gain:0.6400000000000001 clip:1 s:piano release:0.1 pan:0.5833333333333333 ]", + "[ 89/8 ⇜ (357/32 → 715/64) ⇝ 45/4 | note:Eb5 gain:0.6400000000000001 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", + "[ 11/1 ⇜ (715/64 → 179/16) ⇝ 45/4 | note:F2 gain:0.5814213562373046 clip:1 s:piano release:0.1 pan:0.4398148148148148 ]", + "[ 89/8 ⇜ (715/64 → 179/16) ⇝ 45/4 | note:F4 gain:0.5814213562373046 clip:1 s:piano release:0.1 pan:0.5509259259259259 ]", + "[ 89/8 ⇜ (715/64 → 179/16) ⇝ 45/4 | note:C5 gain:0.5814213562373046 clip:1 s:piano release:0.1 pan:0.5833333333333333 ]", + "[ 89/8 ⇜ (715/64 → 179/16) ⇝ 45/4 | note:Eb5 gain:0.5814213562373046 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", + "[ 11/1 ⇜ (179/16 → 717/64) ⇝ 45/4 | note:F2 gain:0.43999999999999945 clip:1 s:piano release:0.1 pan:0.4398148148148148 ]", + "[ 89/8 ⇜ (179/16 → 717/64) ⇝ 45/4 | note:F4 gain:0.43999999999999945 clip:1 s:piano release:0.1 pan:0.5509259259259259 ]", + "[ 89/8 ⇜ (179/16 → 717/64) ⇝ 45/4 | note:C5 gain:0.43999999999999945 clip:1 s:piano release:0.1 pan:0.5833333333333333 ]", + "[ 89/8 ⇜ (179/16 → 717/64) ⇝ 45/4 | note:Eb5 gain:0.43999999999999945 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", + "[ 11/1 ⇜ (717/64 → 359/32) ⇝ 45/4 | note:F2 gain:0.29857864376269444 clip:1 s:piano release:0.1 pan:0.4398148148148148 ]", + "[ 89/8 ⇜ (717/64 → 359/32) ⇝ 45/4 | note:F4 gain:0.29857864376269444 clip:1 s:piano release:0.1 pan:0.5509259259259259 ]", + "[ 89/8 ⇜ (717/64 → 359/32) ⇝ 45/4 | note:C5 gain:0.29857864376269444 clip:1 s:piano release:0.1 pan:0.5833333333333333 ]", + "[ 89/8 ⇜ (717/64 → 359/32) ⇝ 45/4 | note:Eb5 gain:0.29857864376269444 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", + "[ 11/1 ⇜ (359/32 → 719/64) ⇝ 45/4 | note:F2 gain:0.24 clip:1 s:piano release:0.1 pan:0.4398148148148148 ]", + "[ 89/8 ⇜ (359/32 → 719/64) ⇝ 45/4 | note:F4 gain:0.24 clip:1 s:piano release:0.1 pan:0.5509259259259259 ]", + "[ 89/8 ⇜ (359/32 → 719/64) ⇝ 45/4 | note:C5 gain:0.24 clip:1 s:piano release:0.1 pan:0.5833333333333333 ]", + "[ 89/8 ⇜ (359/32 → 719/64) ⇝ 45/4 | note:Eb5 gain:0.24 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", + "[ 11/1 ⇜ (719/64 → 45/4) | note:F2 gain:0.2985786437626938 clip:1 s:piano release:0.1 pan:0.4398148148148148 ]", + "[ 89/8 ⇜ (719/64 → 45/4) | note:F4 gain:0.2985786437626938 clip:1 s:piano release:0.1 pan:0.5509259259259259 ]", + "[ 89/8 ⇜ (719/64 → 45/4) | note:C5 gain:0.2985786437626938 clip:1 s:piano release:0.1 pan:0.5833333333333333 ]", + "[ 89/8 ⇜ (719/64 → 45/4) | note:Eb5 gain:0.2985786437626938 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", + "[ (45/4 → 721/64) ⇝ 23/2 | note:Eb4 gain:0.21999999999999922 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", + "[ (45/4 → 721/64) ⇝ 23/2 | note:G4 gain:0.21999999999999922 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", + "[ (45/4 → 721/64) ⇝ 23/2 | note:Ab4 gain:0.21999999999999922 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", + "[ (45/4 → 721/64) ⇝ 23/2 | note:C5 gain:0.21999999999999922 clip:1 s:piano release:0.1 pan:0.5833333333333333 ]", + "[ 45/4 ⇜ (721/64 → 361/32) ⇝ 23/2 | note:Eb4 gain:0.290710678118652 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", + "[ 45/4 ⇜ (721/64 → 361/32) ⇝ 23/2 | note:G4 gain:0.290710678118652 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", + "[ 45/4 ⇜ (721/64 → 361/32) ⇝ 23/2 | note:Ab4 gain:0.290710678118652 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", + "[ 45/4 ⇜ (721/64 → 361/32) ⇝ 23/2 | note:C5 gain:0.290710678118652 clip:1 s:piano release:0.1 pan:0.5833333333333333 ]", + "[ 45/4 ⇜ (361/32 → 723/64) ⇝ 23/2 | note:Eb4 gain:0.32000000000000006 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", + "[ 45/4 ⇜ (361/32 → 723/64) ⇝ 23/2 | note:G4 gain:0.32000000000000006 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", + "[ 45/4 ⇜ (361/32 → 723/64) ⇝ 23/2 | note:Ab4 gain:0.32000000000000006 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", + "[ 45/4 ⇜ (361/32 → 723/64) ⇝ 23/2 | note:C5 gain:0.32000000000000006 clip:1 s:piano release:0.1 pan:0.5833333333333333 ]", + "[ 45/4 ⇜ (723/64 → 181/16) ⇝ 23/2 | note:Eb4 gain:0.29071067811865386 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", + "[ 45/4 ⇜ (723/64 → 181/16) ⇝ 23/2 | note:G4 gain:0.29071067811865386 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", + "[ 45/4 ⇜ (723/64 → 181/16) ⇝ 23/2 | note:Ab4 gain:0.29071067811865386 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", + "[ 45/4 ⇜ (723/64 → 181/16) ⇝ 23/2 | note:C5 gain:0.29071067811865386 clip:1 s:piano release:0.1 pan:0.5833333333333333 ]", + "[ 45/4 ⇜ (181/16 → 725/64) ⇝ 23/2 | note:Eb4 gain:0.2200000000000019 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", + "[ 45/4 ⇜ (181/16 → 725/64) ⇝ 23/2 | note:G4 gain:0.2200000000000019 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", + "[ 45/4 ⇜ (181/16 → 725/64) ⇝ 23/2 | note:Ab4 gain:0.2200000000000019 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", + "[ 45/4 ⇜ (181/16 → 725/64) ⇝ 23/2 | note:C5 gain:0.2200000000000019 clip:1 s:piano release:0.1 pan:0.5833333333333333 ]", + "[ 45/4 ⇜ (725/64 → 363/32) ⇝ 23/2 | note:Eb4 gain:0.14928932188134877 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", + "[ 45/4 ⇜ (725/64 → 363/32) ⇝ 23/2 | note:G4 gain:0.14928932188134877 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", + "[ 45/4 ⇜ (725/64 → 363/32) ⇝ 23/2 | note:Ab4 gain:0.14928932188134877 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", + "[ 45/4 ⇜ (725/64 → 363/32) ⇝ 23/2 | note:C5 gain:0.14928932188134877 clip:1 s:piano release:0.1 pan:0.5833333333333333 ]", + "[ 45/4 ⇜ (363/32 → 727/64) ⇝ 23/2 | note:Eb4 gain:0.12 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", + "[ 45/4 ⇜ (363/32 → 727/64) ⇝ 23/2 | note:G4 gain:0.12 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", + "[ 45/4 ⇜ (363/32 → 727/64) ⇝ 23/2 | note:Ab4 gain:0.12 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", + "[ 45/4 ⇜ (363/32 → 727/64) ⇝ 23/2 | note:C5 gain:0.12 clip:1 s:piano release:0.1 pan:0.5833333333333333 ]", + "[ 45/4 ⇜ (727/64 → 91/8) ⇝ 23/2 | note:Eb4 gain:0.14928932188134536 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", + "[ 45/4 ⇜ (727/64 → 91/8) ⇝ 23/2 | note:G4 gain:0.14928932188134536 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", + "[ 45/4 ⇜ (727/64 → 91/8) ⇝ 23/2 | note:Ab4 gain:0.14928932188134536 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", + "[ 45/4 ⇜ (727/64 → 91/8) ⇝ 23/2 | note:C5 gain:0.14928932188134536 clip:1 s:piano release:0.1 pan:0.5833333333333333 ]", + "[ 45/4 ⇜ (91/8 → 729/64) ⇝ 23/2 | note:Eb4 gain:0.21999999999999706 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", + "[ 45/4 ⇜ (91/8 → 729/64) ⇝ 23/2 | note:G4 gain:0.21999999999999706 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", + "[ 45/4 ⇜ (91/8 → 729/64) ⇝ 23/2 | note:Ab4 gain:0.21999999999999706 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", + "[ 45/4 ⇜ (91/8 → 729/64) ⇝ 23/2 | note:C5 gain:0.21999999999999706 clip:1 s:piano release:0.1 pan:0.5833333333333333 ]", + "[ 45/4 ⇜ (729/64 → 365/32) ⇝ 23/2 | note:Eb4 gain:0.2907106781186505 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", + "[ 45/4 ⇜ (729/64 → 365/32) ⇝ 23/2 | note:G4 gain:0.2907106781186505 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", + "[ 45/4 ⇜ (729/64 → 365/32) ⇝ 23/2 | note:Ab4 gain:0.2907106781186505 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", + "[ 45/4 ⇜ (729/64 → 365/32) ⇝ 23/2 | note:C5 gain:0.2907106781186505 clip:1 s:piano release:0.1 pan:0.5833333333333333 ]", + "[ 45/4 ⇜ (365/32 → 731/64) ⇝ 23/2 | note:Eb4 gain:0.32000000000000006 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", + "[ 45/4 ⇜ (365/32 → 731/64) ⇝ 23/2 | note:G4 gain:0.32000000000000006 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", + "[ 45/4 ⇜ (365/32 → 731/64) ⇝ 23/2 | note:Ab4 gain:0.32000000000000006 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", + "[ 45/4 ⇜ (365/32 → 731/64) ⇝ 23/2 | note:C5 gain:0.32000000000000006 clip:1 s:piano release:0.1 pan:0.5833333333333333 ]", + "[ 45/4 ⇜ (731/64 → 183/16) ⇝ 23/2 | note:Eb4 gain:0.2907106781186554 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", + "[ 45/4 ⇜ (731/64 → 183/16) ⇝ 23/2 | note:G4 gain:0.2907106781186554 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", + "[ 45/4 ⇜ (731/64 → 183/16) ⇝ 23/2 | note:Ab4 gain:0.2907106781186554 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", + "[ 45/4 ⇜ (731/64 → 183/16) ⇝ 23/2 | note:C5 gain:0.2907106781186554 clip:1 s:piano release:0.1 pan:0.5833333333333333 ]", + "[ 45/4 ⇜ (183/16 → 733/64) ⇝ 23/2 | note:Eb4 gain:0.22000000000000403 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", + "[ 45/4 ⇜ (183/16 → 733/64) ⇝ 23/2 | note:G4 gain:0.22000000000000403 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", + "[ 45/4 ⇜ (183/16 → 733/64) ⇝ 23/2 | note:Ab4 gain:0.22000000000000403 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", + "[ 45/4 ⇜ (183/16 → 733/64) ⇝ 23/2 | note:C5 gain:0.22000000000000403 clip:1 s:piano release:0.1 pan:0.5833333333333333 ]", + "[ 45/4 ⇜ (733/64 → 367/32) ⇝ 23/2 | note:Eb4 gain:0.1492893218813503 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", + "[ 45/4 ⇜ (733/64 → 367/32) ⇝ 23/2 | note:G4 gain:0.1492893218813503 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", + "[ 45/4 ⇜ (733/64 → 367/32) ⇝ 23/2 | note:Ab4 gain:0.1492893218813503 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", + "[ 45/4 ⇜ (733/64 → 367/32) ⇝ 23/2 | note:C5 gain:0.1492893218813503 clip:1 s:piano release:0.1 pan:0.5833333333333333 ]", + "[ 45/4 ⇜ (367/32 → 735/64) ⇝ 23/2 | note:Eb4 gain:0.12 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", + "[ 45/4 ⇜ (367/32 → 735/64) ⇝ 23/2 | note:G4 gain:0.12 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", + "[ 45/4 ⇜ (367/32 → 735/64) ⇝ 23/2 | note:Ab4 gain:0.12 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", + "[ 45/4 ⇜ (367/32 → 735/64) ⇝ 23/2 | note:C5 gain:0.12 clip:1 s:piano release:0.1 pan:0.5833333333333333 ]", + "[ 45/4 ⇜ (735/64 → 23/2) | note:Eb4 gain:0.14928932188134386 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", + "[ 45/4 ⇜ (735/64 → 23/2) | note:G4 gain:0.14928932188134386 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", + "[ 45/4 ⇜ (735/64 → 23/2) | note:Ab4 gain:0.14928932188134386 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", + "[ 45/4 ⇜ (735/64 → 23/2) | note:C5 gain:0.14928932188134386 clip:1 s:piano release:0.1 pan:0.5833333333333333 ]", + "[ (23/2 → 737/64) ⇝ 93/8 | note:C5 gain:0.43999999999998984 clip:1 s:piano release:0.1 pan:0.5833333333333333 ]", + "[ (23/2 → 737/64) ⇝ 93/8 | note:G5 gain:0.43999999999998984 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", + "[ (23/2 → 737/64) ⇝ 93/8 | note:Bb5 gain:0.43999999999998984 clip:1 s:piano release:0.1 pan:0.6296296296296297 ]", + "[ (23/2 → 737/64) ⇝ 47/4 | note:F2 gain:0.43999999999998984 clip:1 s:piano release:0.1 pan:0.4398148148148148 ]", + "[ 23/2 ⇜ (737/64 → 369/32) ⇝ 93/8 | note:C5 gain:0.581421356237314 clip:1 s:piano release:0.1 pan:0.5833333333333333 ]", + "[ 23/2 ⇜ (737/64 → 369/32) ⇝ 93/8 | note:G5 gain:0.581421356237314 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", + "[ 23/2 ⇜ (737/64 → 369/32) ⇝ 93/8 | note:Bb5 gain:0.581421356237314 clip:1 s:piano release:0.1 pan:0.6296296296296297 ]", + "[ 23/2 ⇜ (737/64 → 369/32) ⇝ 47/4 | note:F2 gain:0.581421356237314 clip:1 s:piano release:0.1 pan:0.4398148148148148 ]", + "[ 23/2 ⇜ (369/32 → 739/64) ⇝ 93/8 | note:C5 gain:0.6400000000000001 clip:1 s:piano release:0.1 pan:0.5833333333333333 ]", + "[ 23/2 ⇜ (369/32 → 739/64) ⇝ 93/8 | note:G5 gain:0.6400000000000001 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", + "[ 23/2 ⇜ (369/32 → 739/64) ⇝ 93/8 | note:Bb5 gain:0.6400000000000001 clip:1 s:piano release:0.1 pan:0.6296296296296297 ]", + "[ 23/2 ⇜ (369/32 → 739/64) ⇝ 47/4 | note:F2 gain:0.6400000000000001 clip:1 s:piano release:0.1 pan:0.4398148148148148 ]", + "[ (323/28 → 739/64) ⇝ 165/14 | note:75 gain:0.06400000000000002 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", + "[ (323/28 → 739/64) ⇝ 165/14 | note:79 gain:0.06400000000000002 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", + "[ (323/28 → 739/64) ⇝ 165/14 | note:80 gain:0.06400000000000002 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", + "[ (323/28 → 739/64) ⇝ 165/14 | note:84 gain:0.06400000000000002 clip:1 s:piano release:0.1 pan:0.6388888888888888 ]", + "[ 23/2 ⇜ (739/64 → 185/16) ⇝ 93/8 | note:C5 gain:0.581421356237314 clip:1 s:piano release:0.1 pan:0.5833333333333333 ]", + "[ 23/2 ⇜ (739/64 → 185/16) ⇝ 93/8 | note:G5 gain:0.581421356237314 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", + "[ 23/2 ⇜ (739/64 → 185/16) ⇝ 93/8 | note:Bb5 gain:0.581421356237314 clip:1 s:piano release:0.1 pan:0.6296296296296297 ]", + "[ 23/2 ⇜ (739/64 → 185/16) ⇝ 47/4 | note:F2 gain:0.581421356237314 clip:1 s:piano release:0.1 pan:0.4398148148148148 ]", + "[ 323/28 ⇜ (739/64 → 185/16) ⇝ 165/14 | note:75 gain:0.0581421356237314 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", + "[ 323/28 ⇜ (739/64 → 185/16) ⇝ 165/14 | note:79 gain:0.0581421356237314 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", + "[ 323/28 ⇜ (739/64 → 185/16) ⇝ 165/14 | note:80 gain:0.0581421356237314 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", + "[ 323/28 ⇜ (739/64 → 185/16) ⇝ 165/14 | note:84 gain:0.0581421356237314 clip:1 s:piano release:0.1 pan:0.6388888888888888 ]", + "[ 23/2 ⇜ (185/16 → 741/64) ⇝ 93/8 | note:C5 gain:0.4400000000000123 clip:1 s:piano release:0.1 pan:0.5833333333333333 ]", + "[ 23/2 ⇜ (185/16 → 741/64) ⇝ 93/8 | note:G5 gain:0.4400000000000123 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", + "[ 23/2 ⇜ (185/16 → 741/64) ⇝ 93/8 | note:Bb5 gain:0.4400000000000123 clip:1 s:piano release:0.1 pan:0.6296296296296297 ]", + "[ 23/2 ⇜ (185/16 → 741/64) ⇝ 47/4 | note:F2 gain:0.4400000000000123 clip:1 s:piano release:0.1 pan:0.4398148148148148 ]", + "[ 323/28 ⇜ (185/16 → 741/64) ⇝ 165/14 | note:75 gain:0.04400000000000123 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", + "[ 323/28 ⇜ (185/16 → 741/64) ⇝ 165/14 | note:79 gain:0.04400000000000123 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", + "[ 323/28 ⇜ (185/16 → 741/64) ⇝ 165/14 | note:80 gain:0.04400000000000123 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", + "[ 323/28 ⇜ (185/16 → 741/64) ⇝ 165/14 | note:84 gain:0.04400000000000123 clip:1 s:piano release:0.1 pan:0.6388888888888888 ]", + "[ 23/2 ⇜ (741/64 → 371/32) ⇝ 93/8 | note:C5 gain:0.29857864376268756 clip:1 s:piano release:0.1 pan:0.5833333333333333 ]", + "[ 23/2 ⇜ (741/64 → 371/32) ⇝ 93/8 | note:G5 gain:0.29857864376268756 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", + "[ 23/2 ⇜ (741/64 → 371/32) ⇝ 93/8 | note:Bb5 gain:0.29857864376268756 clip:1 s:piano release:0.1 pan:0.6296296296296297 ]", + "[ 23/2 ⇜ (741/64 → 371/32) ⇝ 47/4 | note:F2 gain:0.29857864376268756 clip:1 s:piano release:0.1 pan:0.4398148148148148 ]", + "[ 323/28 ⇜ (741/64 → 371/32) ⇝ 165/14 | note:75 gain:0.029857864376268757 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", + "[ 323/28 ⇜ (741/64 → 371/32) ⇝ 165/14 | note:79 gain:0.029857864376268757 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", + "[ 323/28 ⇜ (741/64 → 371/32) ⇝ 165/14 | note:80 gain:0.029857864376268757 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", + "[ 323/28 ⇜ (741/64 → 371/32) ⇝ 165/14 | note:84 gain:0.029857864376268757 clip:1 s:piano release:0.1 pan:0.6388888888888888 ]", + "[ 23/2 ⇜ (371/32 → 743/64) ⇝ 93/8 | note:C5 gain:0.24 clip:1 s:piano release:0.1 pan:0.5833333333333333 ]", + "[ 23/2 ⇜ (371/32 → 743/64) ⇝ 93/8 | note:G5 gain:0.24 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", + "[ 23/2 ⇜ (371/32 → 743/64) ⇝ 93/8 | note:Bb5 gain:0.24 clip:1 s:piano release:0.1 pan:0.6296296296296297 ]", + "[ 23/2 ⇜ (371/32 → 743/64) ⇝ 47/4 | note:F2 gain:0.24 clip:1 s:piano release:0.1 pan:0.4398148148148148 ]", + "[ 323/28 ⇜ (371/32 → 743/64) ⇝ 165/14 | note:75 gain:0.024 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", + "[ 323/28 ⇜ (371/32 → 743/64) ⇝ 165/14 | note:79 gain:0.024 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", + "[ 323/28 ⇜ (371/32 → 743/64) ⇝ 165/14 | note:80 gain:0.024 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", + "[ 323/28 ⇜ (371/32 → 743/64) ⇝ 165/14 | note:84 gain:0.024 clip:1 s:piano release:0.1 pan:0.6388888888888888 ]", + "[ 23/2 ⇜ (743/64 → 93/8) | note:C5 gain:0.29857864376268467 clip:1 s:piano release:0.1 pan:0.5833333333333333 ]", + "[ 23/2 ⇜ (743/64 → 93/8) | note:G5 gain:0.29857864376268467 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", + "[ 23/2 ⇜ (743/64 → 93/8) | note:Bb5 gain:0.29857864376268467 clip:1 s:piano release:0.1 pan:0.6296296296296297 ]", + "[ 23/2 ⇜ (743/64 → 93/8) ⇝ 47/4 | note:F2 gain:0.29857864376268467 clip:1 s:piano release:0.1 pan:0.4398148148148148 ]", + "[ 323/28 ⇜ (743/64 → 93/8) ⇝ 165/14 | note:75 gain:0.02985786437626847 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", + "[ 323/28 ⇜ (743/64 → 93/8) ⇝ 165/14 | note:79 gain:0.02985786437626847 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", + "[ 323/28 ⇜ (743/64 → 93/8) ⇝ 165/14 | note:80 gain:0.02985786437626847 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", + "[ 323/28 ⇜ (743/64 → 93/8) ⇝ 165/14 | note:84 gain:0.02985786437626847 clip:1 s:piano release:0.1 pan:0.6388888888888888 ]", + "[ 23/2 ⇜ (93/8 → 745/64) ⇝ 47/4 | note:F2 gain:0.4399999999999855 clip:1 s:piano release:0.1 pan:0.4398148148148148 ]", + "[ 323/28 ⇜ (93/8 → 745/64) ⇝ 165/14 | note:75 gain:0.043999999999998554 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", + "[ 323/28 ⇜ (93/8 → 745/64) ⇝ 165/14 | note:79 gain:0.043999999999998554 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", + "[ 323/28 ⇜ (93/8 → 745/64) ⇝ 165/14 | note:80 gain:0.043999999999998554 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", + "[ 323/28 ⇜ (93/8 → 745/64) ⇝ 165/14 | note:84 gain:0.043999999999998554 clip:1 s:piano release:0.1 pan:0.6388888888888888 ]", + "[ 23/2 ⇜ (745/64 → 373/32) ⇝ 47/4 | note:F2 gain:0.5814213562373108 clip:1 s:piano release:0.1 pan:0.4398148148148148 ]", + "[ 323/28 ⇜ (745/64 → 373/32) ⇝ 165/14 | note:75 gain:0.058142135623731085 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", + "[ 323/28 ⇜ (745/64 → 373/32) ⇝ 165/14 | note:79 gain:0.058142135623731085 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", + "[ 323/28 ⇜ (745/64 → 373/32) ⇝ 165/14 | note:80 gain:0.058142135623731085 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", + "[ 323/28 ⇜ (745/64 → 373/32) ⇝ 165/14 | note:84 gain:0.058142135623731085 clip:1 s:piano release:0.1 pan:0.6388888888888888 ]", + "[ 23/2 ⇜ (373/32 → 747/64) ⇝ 47/4 | note:F2 gain:0.6400000000000001 clip:1 s:piano release:0.1 pan:0.4398148148148148 ]", + "[ 323/28 ⇜ (373/32 → 747/64) ⇝ 165/14 | note:75 gain:0.06400000000000002 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", + "[ 323/28 ⇜ (373/32 → 747/64) ⇝ 165/14 | note:79 gain:0.06400000000000002 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", + "[ 323/28 ⇜ (373/32 → 747/64) ⇝ 165/14 | note:80 gain:0.06400000000000002 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", + "[ 323/28 ⇜ (373/32 → 747/64) ⇝ 165/14 | note:84 gain:0.06400000000000002 clip:1 s:piano release:0.1 pan:0.6388888888888888 ]", + "[ 23/2 ⇜ (747/64 → 187/16) ⇝ 47/4 | note:F2 gain:0.5814213562373169 clip:1 s:piano release:0.1 pan:0.4398148148148148 ]", + "[ 323/28 ⇜ (747/64 → 187/16) ⇝ 165/14 | note:75 gain:0.058142135623731696 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", + "[ 323/28 ⇜ (747/64 → 187/16) ⇝ 165/14 | note:79 gain:0.058142135623731696 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", + "[ 323/28 ⇜ (747/64 → 187/16) ⇝ 165/14 | note:80 gain:0.058142135623731696 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", + "[ 323/28 ⇜ (747/64 → 187/16) ⇝ 165/14 | note:84 gain:0.058142135623731696 clip:1 s:piano release:0.1 pan:0.6388888888888888 ]", + "[ 23/2 ⇜ (187/16 → 749/64) ⇝ 47/4 | note:F2 gain:0.43999999999999395 clip:1 s:piano release:0.1 pan:0.4398148148148148 ]", + "[ 323/28 ⇜ (187/16 → 749/64) ⇝ 165/14 | note:75 gain:0.0439999999999994 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", + "[ 323/28 ⇜ (187/16 → 749/64) ⇝ 165/14 | note:79 gain:0.0439999999999994 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", + "[ 323/28 ⇜ (187/16 → 749/64) ⇝ 165/14 | note:80 gain:0.0439999999999994 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", + "[ 323/28 ⇜ (187/16 → 749/64) ⇝ 165/14 | note:84 gain:0.0439999999999994 clip:1 s:piano release:0.1 pan:0.6388888888888888 ]", + "[ 23/2 ⇜ (749/64 → 375/32) ⇝ 47/4 | note:F2 gain:0.2985786437626906 clip:1 s:piano release:0.1 pan:0.4398148148148148 ]", + "[ 323/28 ⇜ (749/64 → 375/32) ⇝ 165/14 | note:75 gain:0.029857864376269062 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", + "[ 323/28 ⇜ (749/64 → 375/32) ⇝ 165/14 | note:79 gain:0.029857864376269062 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", + "[ 323/28 ⇜ (749/64 → 375/32) ⇝ 165/14 | note:80 gain:0.029857864376269062 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", + "[ 323/28 ⇜ (749/64 → 375/32) ⇝ 165/14 | note:84 gain:0.029857864376269062 clip:1 s:piano release:0.1 pan:0.6388888888888888 ]", + "[ 23/2 ⇜ (375/32 → 751/64) ⇝ 47/4 | note:F2 gain:0.24 clip:1 s:piano release:0.1 pan:0.4398148148148148 ]", + "[ 323/28 ⇜ (375/32 → 751/64) ⇝ 165/14 | note:75 gain:0.024 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", + "[ 323/28 ⇜ (375/32 → 751/64) ⇝ 165/14 | note:79 gain:0.024 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", + "[ 323/28 ⇜ (375/32 → 751/64) ⇝ 165/14 | note:80 gain:0.024 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", + "[ 323/28 ⇜ (375/32 → 751/64) ⇝ 165/14 | note:84 gain:0.024 clip:1 s:piano release:0.1 pan:0.6388888888888888 ]", + "[ 23/2 ⇜ (751/64 → 47/4) | note:F2 gain:0.29857864376268156 clip:1 s:piano release:0.1 pan:0.4398148148148148 ]", + "[ 323/28 ⇜ (751/64 → 47/4) ⇝ 165/14 | note:75 gain:0.029857864376268157 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", + "[ 323/28 ⇜ (751/64 → 47/4) ⇝ 165/14 | note:79 gain:0.029857864376268157 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", + "[ 323/28 ⇜ (751/64 → 47/4) ⇝ 165/14 | note:80 gain:0.029857864376268157 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", + "[ 323/28 ⇜ (751/64 → 47/4) ⇝ 165/14 | note:84 gain:0.029857864376268157 clip:1 s:piano release:0.1 pan:0.6388888888888888 ]", + "[ 323/28 ⇜ (47/4 → 753/64) ⇝ 165/14 | note:75 gain:0.0440000000000004 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", + "[ 323/28 ⇜ (47/4 → 753/64) ⇝ 165/14 | note:79 gain:0.0440000000000004 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", + "[ 323/28 ⇜ (47/4 → 753/64) ⇝ 165/14 | note:80 gain:0.0440000000000004 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", + "[ 323/28 ⇜ (47/4 → 753/64) ⇝ 165/14 | note:84 gain:0.0440000000000004 clip:1 s:piano release:0.1 pan:0.6388888888888888 ]", + "[ (47/4 → 753/64) ⇝ 95/8 | note:C5 gain:0.44000000000000394 clip:1 s:piano release:0.1 pan:0.5833333333333333 ]", + "[ (47/4 → 753/64) ⇝ 95/8 | note:G5 gain:0.44000000000000394 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", + "[ (47/4 → 753/64) ⇝ 95/8 | note:Bb5 gain:0.44000000000000394 clip:1 s:piano release:0.1 pan:0.6296296296296297 ]", + "[ (47/4 → 753/64) ⇝ 12/1 | note:Eb4 gain:0.22000000000000197 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", + "[ (47/4 → 753/64) ⇝ 12/1 | note:G4 gain:0.22000000000000197 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", + "[ (47/4 → 753/64) ⇝ 12/1 | note:Ab4 gain:0.22000000000000197 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", + "[ (47/4 → 753/64) ⇝ 12/1 | note:C5 gain:0.22000000000000197 clip:1 s:piano release:0.1 pan:0.5833333333333333 ]", + "[ 323/28 ⇜ (753/64 → 377/32) ⇝ 165/14 | note:75 gain:0.05814213562373079 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", + "[ 323/28 ⇜ (753/64 → 377/32) ⇝ 165/14 | note:79 gain:0.05814213562373079 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", + "[ 323/28 ⇜ (753/64 → 377/32) ⇝ 165/14 | note:80 gain:0.05814213562373079 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", + "[ 323/28 ⇜ (753/64 → 377/32) ⇝ 165/14 | note:84 gain:0.05814213562373079 clip:1 s:piano release:0.1 pan:0.6388888888888888 ]", + "[ 47/4 ⇜ (753/64 → 377/32) ⇝ 95/8 | note:C5 gain:0.5814213562373078 clip:1 s:piano release:0.1 pan:0.5833333333333333 ]", + "[ 47/4 ⇜ (753/64 → 377/32) ⇝ 95/8 | note:G5 gain:0.5814213562373078 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", + "[ 47/4 ⇜ (753/64 → 377/32) ⇝ 95/8 | note:Bb5 gain:0.5814213562373078 clip:1 s:piano release:0.1 pan:0.6296296296296297 ]", + "[ 47/4 ⇜ (753/64 → 377/32) ⇝ 12/1 | note:Eb4 gain:0.2907106781186539 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", + "[ 47/4 ⇜ (753/64 → 377/32) ⇝ 12/1 | note:G4 gain:0.2907106781186539 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", + "[ 47/4 ⇜ (753/64 → 377/32) ⇝ 12/1 | note:Ab4 gain:0.2907106781186539 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", + "[ 47/4 ⇜ (753/64 → 377/32) ⇝ 12/1 | note:C5 gain:0.2907106781186539 clip:1 s:piano release:0.1 pan:0.5833333333333333 ]", + "[ 323/28 ⇜ (377/32 → 165/14) | note:75 gain:0.06400000000000002 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", + "[ 323/28 ⇜ (377/32 → 165/14) | note:79 gain:0.06400000000000002 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", + "[ 323/28 ⇜ (377/32 → 165/14) | note:80 gain:0.06400000000000002 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", + "[ 323/28 ⇜ (377/32 → 165/14) | note:84 gain:0.06400000000000002 clip:1 s:piano release:0.1 pan:0.6388888888888888 ]", + "[ 47/4 ⇜ (377/32 → 755/64) ⇝ 95/8 | note:C5 gain:0.6400000000000001 clip:1 s:piano release:0.1 pan:0.5833333333333333 ]", + "[ 47/4 ⇜ (377/32 → 755/64) ⇝ 95/8 | note:G5 gain:0.6400000000000001 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", + "[ 47/4 ⇜ (377/32 → 755/64) ⇝ 95/8 | note:Bb5 gain:0.6400000000000001 clip:1 s:piano release:0.1 pan:0.6296296296296297 ]", + "[ 47/4 ⇜ (377/32 → 755/64) ⇝ 12/1 | note:Eb4 gain:0.32000000000000006 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", + "[ 47/4 ⇜ (377/32 → 755/64) ⇝ 12/1 | note:G4 gain:0.32000000000000006 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", + "[ 47/4 ⇜ (377/32 → 755/64) ⇝ 12/1 | note:Ab4 gain:0.32000000000000006 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", + "[ 47/4 ⇜ (377/32 → 755/64) ⇝ 12/1 | note:C5 gain:0.32000000000000006 clip:1 s:piano release:0.1 pan:0.5833333333333333 ]", + "[ 47/4 ⇜ (755/64 → 189/16) ⇝ 95/8 | note:C5 gain:0.5814213562373199 clip:1 s:piano release:0.1 pan:0.5833333333333333 ]", + "[ 47/4 ⇜ (755/64 → 189/16) ⇝ 95/8 | note:G5 gain:0.5814213562373199 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", + "[ 47/4 ⇜ (755/64 → 189/16) ⇝ 95/8 | note:Bb5 gain:0.5814213562373199 clip:1 s:piano release:0.1 pan:0.6296296296296297 ]", + "[ 47/4 ⇜ (755/64 → 189/16) ⇝ 12/1 | note:Eb4 gain:0.29071067811865997 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", + "[ 47/4 ⇜ (755/64 → 189/16) ⇝ 12/1 | note:G4 gain:0.29071067811865997 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", + "[ 47/4 ⇜ (755/64 → 189/16) ⇝ 12/1 | note:Ab4 gain:0.29071067811865997 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", + "[ 47/4 ⇜ (755/64 → 189/16) ⇝ 12/1 | note:C5 gain:0.29071067811865997 clip:1 s:piano release:0.1 pan:0.5833333333333333 ]", + "[ 47/4 ⇜ (189/16 → 757/64) ⇝ 95/8 | note:C5 gain:0.4399999999999983 clip:1 s:piano release:0.1 pan:0.5833333333333333 ]", + "[ 47/4 ⇜ (189/16 → 757/64) ⇝ 95/8 | note:G5 gain:0.4399999999999983 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", + "[ 47/4 ⇜ (189/16 → 757/64) ⇝ 95/8 | note:Bb5 gain:0.4399999999999983 clip:1 s:piano release:0.1 pan:0.6296296296296297 ]", + "[ 47/4 ⇜ (189/16 → 757/64) ⇝ 12/1 | note:Eb4 gain:0.21999999999999914 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", + "[ 47/4 ⇜ (189/16 → 757/64) ⇝ 12/1 | note:G4 gain:0.21999999999999914 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", + "[ 47/4 ⇜ (189/16 → 757/64) ⇝ 12/1 | note:Ab4 gain:0.21999999999999914 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", + "[ 47/4 ⇜ (189/16 → 757/64) ⇝ 12/1 | note:C5 gain:0.21999999999999914 clip:1 s:piano release:0.1 pan:0.5833333333333333 ]", + "[ 47/4 ⇜ (757/64 → 379/32) ⇝ 95/8 | note:C5 gain:0.29857864376269366 clip:1 s:piano release:0.1 pan:0.5833333333333333 ]", + "[ 47/4 ⇜ (757/64 → 379/32) ⇝ 95/8 | note:G5 gain:0.29857864376269366 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", + "[ 47/4 ⇜ (757/64 → 379/32) ⇝ 95/8 | note:Bb5 gain:0.29857864376269366 clip:1 s:piano release:0.1 pan:0.6296296296296297 ]", + "[ 47/4 ⇜ (757/64 → 379/32) ⇝ 12/1 | note:Eb4 gain:0.14928932188134683 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", + "[ 47/4 ⇜ (757/64 → 379/32) ⇝ 12/1 | note:G4 gain:0.14928932188134683 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", + "[ 47/4 ⇜ (757/64 → 379/32) ⇝ 12/1 | note:Ab4 gain:0.14928932188134683 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", + "[ 47/4 ⇜ (757/64 → 379/32) ⇝ 12/1 | note:C5 gain:0.14928932188134683 clip:1 s:piano release:0.1 pan:0.5833333333333333 ]", + "[ 47/4 ⇜ (379/32 → 759/64) ⇝ 95/8 | note:C5 gain:0.24 clip:1 s:piano release:0.1 pan:0.5833333333333333 ]", + "[ 47/4 ⇜ (379/32 → 759/64) ⇝ 95/8 | note:G5 gain:0.24 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", + "[ 47/4 ⇜ (379/32 → 759/64) ⇝ 95/8 | note:Bb5 gain:0.24 clip:1 s:piano release:0.1 pan:0.6296296296296297 ]", + "[ 47/4 ⇜ (379/32 → 759/64) ⇝ 12/1 | note:Eb4 gain:0.12 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", + "[ 47/4 ⇜ (379/32 → 759/64) ⇝ 12/1 | note:G4 gain:0.12 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", + "[ 47/4 ⇜ (379/32 → 759/64) ⇝ 12/1 | note:Ab4 gain:0.12 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", + "[ 47/4 ⇜ (379/32 → 759/64) ⇝ 12/1 | note:C5 gain:0.12 clip:1 s:piano release:0.1 pan:0.5833333333333333 ]", + "[ 47/4 ⇜ (759/64 → 95/8) | note:C5 gain:0.29857864376269466 clip:1 s:piano release:0.1 pan:0.5833333333333333 ]", + "[ 47/4 ⇜ (759/64 → 95/8) | note:G5 gain:0.29857864376269466 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", + "[ 47/4 ⇜ (759/64 → 95/8) | note:Bb5 gain:0.29857864376269466 clip:1 s:piano release:0.1 pan:0.6296296296296297 ]", + "[ 47/4 ⇜ (759/64 → 95/8) ⇝ 12/1 | note:Eb4 gain:0.14928932188134733 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", + "[ 47/4 ⇜ (759/64 → 95/8) ⇝ 12/1 | note:G4 gain:0.14928932188134733 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", + "[ 47/4 ⇜ (759/64 → 95/8) ⇝ 12/1 | note:Ab4 gain:0.14928932188134733 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", + "[ 47/4 ⇜ (759/64 → 95/8) ⇝ 12/1 | note:C5 gain:0.14928932188134733 clip:1 s:piano release:0.1 pan:0.5833333333333333 ]", + "[ 47/4 ⇜ (95/8 → 761/64) ⇝ 12/1 | note:Eb4 gain:0.2199999999999998 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", + "[ 47/4 ⇜ (95/8 → 761/64) ⇝ 12/1 | note:G4 gain:0.2199999999999998 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", + "[ 47/4 ⇜ (95/8 → 761/64) ⇝ 12/1 | note:Ab4 gain:0.2199999999999998 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", + "[ 47/4 ⇜ (95/8 → 761/64) ⇝ 12/1 | note:C5 gain:0.2199999999999998 clip:1 s:piano release:0.1 pan:0.5833333333333333 ]", + "[ 47/4 ⇜ (761/64 → 381/32) ⇝ 12/1 | note:Eb4 gain:0.2907106781186524 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", + "[ 47/4 ⇜ (761/64 → 381/32) ⇝ 12/1 | note:G4 gain:0.2907106781186524 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", + "[ 47/4 ⇜ (761/64 → 381/32) ⇝ 12/1 | note:Ab4 gain:0.2907106781186524 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", + "[ 47/4 ⇜ (761/64 → 381/32) ⇝ 12/1 | note:C5 gain:0.2907106781186524 clip:1 s:piano release:0.1 pan:0.5833333333333333 ]", + "[ 47/4 ⇜ (381/32 → 763/64) ⇝ 12/1 | note:Eb4 gain:0.32000000000000006 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", + "[ 47/4 ⇜ (381/32 → 763/64) ⇝ 12/1 | note:G4 gain:0.32000000000000006 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", + "[ 47/4 ⇜ (381/32 → 763/64) ⇝ 12/1 | note:Ab4 gain:0.32000000000000006 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", + "[ 47/4 ⇜ (381/32 → 763/64) ⇝ 12/1 | note:C5 gain:0.32000000000000006 clip:1 s:piano release:0.1 pan:0.5833333333333333 ]", + "[ 47/4 ⇜ (763/64 → 191/16) ⇝ 12/1 | note:Eb4 gain:0.2907106781186535 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", + "[ 47/4 ⇜ (763/64 → 191/16) ⇝ 12/1 | note:G4 gain:0.2907106781186535 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", + "[ 47/4 ⇜ (763/64 → 191/16) ⇝ 12/1 | note:Ab4 gain:0.2907106781186535 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", + "[ 47/4 ⇜ (763/64 → 191/16) ⇝ 12/1 | note:C5 gain:0.2907106781186535 clip:1 s:piano release:0.1 pan:0.5833333333333333 ]", + "[ 47/4 ⇜ (191/16 → 765/64) ⇝ 12/1 | note:Eb4 gain:0.22000000000000128 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", + "[ 47/4 ⇜ (191/16 → 765/64) ⇝ 12/1 | note:G4 gain:0.22000000000000128 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", + "[ 47/4 ⇜ (191/16 → 765/64) ⇝ 12/1 | note:Ab4 gain:0.22000000000000128 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", + "[ 47/4 ⇜ (191/16 → 765/64) ⇝ 12/1 | note:C5 gain:0.22000000000000128 clip:1 s:piano release:0.1 pan:0.5833333333333333 ]", + "[ 47/4 ⇜ (765/64 → 383/32) ⇝ 12/1 | note:Eb4 gain:0.14928932188134833 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", + "[ 47/4 ⇜ (765/64 → 383/32) ⇝ 12/1 | note:G4 gain:0.14928932188134833 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", + "[ 47/4 ⇜ (765/64 → 383/32) ⇝ 12/1 | note:Ab4 gain:0.14928932188134833 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", + "[ 47/4 ⇜ (765/64 → 383/32) ⇝ 12/1 | note:C5 gain:0.14928932188134833 clip:1 s:piano release:0.1 pan:0.5833333333333333 ]", + "[ 47/4 ⇜ (383/32 → 767/64) ⇝ 12/1 | note:Eb4 gain:0.12 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", + "[ 47/4 ⇜ (383/32 → 767/64) ⇝ 12/1 | note:G4 gain:0.12 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", + "[ 47/4 ⇜ (383/32 → 767/64) ⇝ 12/1 | note:Ab4 gain:0.12 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", + "[ 47/4 ⇜ (383/32 → 767/64) ⇝ 12/1 | note:C5 gain:0.12 clip:1 s:piano release:0.1 pan:0.5833333333333333 ]", + "[ 47/4 ⇜ (767/64 → 12/1) | note:Eb4 gain:0.14928932188134578 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", + "[ 47/4 ⇜ (767/64 → 12/1) | note:G4 gain:0.14928932188134578 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", + "[ 47/4 ⇜ (767/64 → 12/1) | note:Ab4 gain:0.14928932188134578 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", + "[ 47/4 ⇜ (767/64 → 12/1) | note:C5 gain:0.14928932188134578 clip:1 s:piano release:0.1 pan:0.5833333333333333 ]", + "[ (12/1 → 769/64) ⇝ 49/4 | note:G2 gain:0.4399999999999953 clip:1 s:piano release:0.1 pan:0.44907407407407407 ]", + "[ 12/1 ⇜ (769/64 → 385/32) ⇝ 49/4 | note:G2 gain:0.5814213562373018 clip:1 s:piano release:0.1 pan:0.44907407407407407 ]", + "[ 12/1 ⇜ (385/32 → 771/64) ⇝ 49/4 | note:G2 gain:0.6400000000000001 clip:1 s:piano release:0.1 pan:0.44907407407407407 ]", + "[ (337/28 → 771/64) ⇝ 86/7 | note:75 gain:0.06400000000000002 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", + "[ (337/28 → 771/64) ⇝ 86/7 | note:79 gain:0.06400000000000002 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", + "[ (337/28 → 771/64) ⇝ 86/7 | note:80 gain:0.06400000000000002 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", + "[ (337/28 → 771/64) ⇝ 86/7 | note:84 gain:0.06400000000000002 clip:1 s:piano release:0.1 pan:0.6388888888888888 ]", + "[ 12/1 ⇜ (771/64 → 193/16) ⇝ 49/4 | note:G2 gain:0.58142135623731 clip:1 s:piano release:0.1 pan:0.44907407407407407 ]", + "[ 337/28 ⇜ (771/64 → 193/16) ⇝ 86/7 | note:75 gain:0.058142135623730995 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", + "[ 337/28 ⇜ (771/64 → 193/16) ⇝ 86/7 | note:79 gain:0.058142135623730995 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", + "[ 337/28 ⇜ (771/64 → 193/16) ⇝ 86/7 | note:80 gain:0.058142135623730995 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", + "[ 337/28 ⇜ (771/64 → 193/16) ⇝ 86/7 | note:84 gain:0.058142135623730995 clip:1 s:piano release:0.1 pan:0.6388888888888888 ]", + "[ 12/1 ⇜ (193/16 → 773/64) ⇝ 49/4 | note:G2 gain:0.44000000000000683 clip:1 s:piano release:0.1 pan:0.44907407407407407 ]", + "[ 337/28 ⇜ (193/16 → 773/64) ⇝ 86/7 | note:75 gain:0.044000000000000684 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", + "[ 337/28 ⇜ (193/16 → 773/64) ⇝ 86/7 | note:79 gain:0.044000000000000684 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", + "[ 337/28 ⇜ (193/16 → 773/64) ⇝ 86/7 | note:80 gain:0.044000000000000684 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", + "[ 337/28 ⇜ (193/16 → 773/64) ⇝ 86/7 | note:84 gain:0.044000000000000684 clip:1 s:piano release:0.1 pan:0.6388888888888888 ]", + "[ 12/1 ⇜ (773/64 → 387/32) ⇝ 49/4 | note:G2 gain:0.29857864376269977 clip:1 s:piano release:0.1 pan:0.44907407407407407 ]", + "[ 337/28 ⇜ (773/64 → 387/32) ⇝ 86/7 | note:75 gain:0.02985786437626998 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", + "[ 337/28 ⇜ (773/64 → 387/32) ⇝ 86/7 | note:79 gain:0.02985786437626998 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", + "[ 337/28 ⇜ (773/64 → 387/32) ⇝ 86/7 | note:80 gain:0.02985786437626998 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", + "[ 337/28 ⇜ (773/64 → 387/32) ⇝ 86/7 | note:84 gain:0.02985786437626998 clip:1 s:piano release:0.1 pan:0.6388888888888888 ]", + "[ 12/1 ⇜ (387/32 → 775/64) ⇝ 49/4 | note:G2 gain:0.24 clip:1 s:piano release:0.1 pan:0.44907407407407407 ]", + "[ 337/28 ⇜ (387/32 → 775/64) ⇝ 86/7 | note:75 gain:0.024 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", + "[ 337/28 ⇜ (387/32 → 775/64) ⇝ 86/7 | note:79 gain:0.024 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", + "[ 337/28 ⇜ (387/32 → 775/64) ⇝ 86/7 | note:80 gain:0.024 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", + "[ 337/28 ⇜ (387/32 → 775/64) ⇝ 86/7 | note:84 gain:0.024 clip:1 s:piano release:0.1 pan:0.6388888888888888 ]", + "[ 12/1 ⇜ (775/64 → 97/8) ⇝ 49/4 | note:G2 gain:0.2985786437626885 clip:1 s:piano release:0.1 pan:0.44907407407407407 ]", + "[ 337/28 ⇜ (775/64 → 97/8) ⇝ 86/7 | note:75 gain:0.02985786437626885 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", + "[ 337/28 ⇜ (775/64 → 97/8) ⇝ 86/7 | note:79 gain:0.02985786437626885 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", + "[ 337/28 ⇜ (775/64 → 97/8) ⇝ 86/7 | note:80 gain:0.02985786437626885 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", + "[ 337/28 ⇜ (775/64 → 97/8) ⇝ 86/7 | note:84 gain:0.02985786437626885 clip:1 s:piano release:0.1 pan:0.6388888888888888 ]", + "[ 12/1 ⇜ (97/8 → 777/64) ⇝ 49/4 | note:G2 gain:0.439999999999991 clip:1 s:piano release:0.1 pan:0.44907407407407407 ]", + "[ 337/28 ⇜ (97/8 → 777/64) ⇝ 86/7 | note:75 gain:0.0439999999999991 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", + "[ 337/28 ⇜ (97/8 → 777/64) ⇝ 86/7 | note:79 gain:0.0439999999999991 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", + "[ 337/28 ⇜ (97/8 → 777/64) ⇝ 86/7 | note:80 gain:0.0439999999999991 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", + "[ 337/28 ⇜ (97/8 → 777/64) ⇝ 86/7 | note:84 gain:0.0439999999999991 clip:1 s:piano release:0.1 pan:0.6388888888888888 ]", + "[ (97/8 → 777/64) ⇝ 49/4 | note:G4 gain:0.439999999999991 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", + "[ (97/8 → 777/64) ⇝ 49/4 | note:D5 gain:0.439999999999991 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", + "[ (97/8 → 777/64) ⇝ 49/4 | note:F5 gain:0.439999999999991 clip:1 s:piano release:0.1 pan:0.6064814814814814 ]", + "[ 12/1 ⇜ (777/64 → 389/32) ⇝ 49/4 | note:G2 gain:0.5814213562372988 clip:1 s:piano release:0.1 pan:0.44907407407407407 ]", + "[ 337/28 ⇜ (777/64 → 389/32) ⇝ 86/7 | note:75 gain:0.058142135623729885 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", + "[ 337/28 ⇜ (777/64 → 389/32) ⇝ 86/7 | note:79 gain:0.058142135623729885 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", + "[ 337/28 ⇜ (777/64 → 389/32) ⇝ 86/7 | note:80 gain:0.058142135623729885 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", + "[ 337/28 ⇜ (777/64 → 389/32) ⇝ 86/7 | note:84 gain:0.058142135623729885 clip:1 s:piano release:0.1 pan:0.6388888888888888 ]", + "[ 97/8 ⇜ (777/64 → 389/32) ⇝ 49/4 | note:G4 gain:0.5814213562372988 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", + "[ 97/8 ⇜ (777/64 → 389/32) ⇝ 49/4 | note:D5 gain:0.5814213562372988 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", + "[ 97/8 ⇜ (777/64 → 389/32) ⇝ 49/4 | note:F5 gain:0.5814213562372988 clip:1 s:piano release:0.1 pan:0.6064814814814814 ]", + "[ 12/1 ⇜ (389/32 → 779/64) ⇝ 49/4 | note:G2 gain:0.6400000000000001 clip:1 s:piano release:0.1 pan:0.44907407407407407 ]", + "[ 337/28 ⇜ (389/32 → 779/64) ⇝ 86/7 | note:75 gain:0.06400000000000002 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", + "[ 337/28 ⇜ (389/32 → 779/64) ⇝ 86/7 | note:79 gain:0.06400000000000002 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", + "[ 337/28 ⇜ (389/32 → 779/64) ⇝ 86/7 | note:80 gain:0.06400000000000002 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", + "[ 337/28 ⇜ (389/32 → 779/64) ⇝ 86/7 | note:84 gain:0.06400000000000002 clip:1 s:piano release:0.1 pan:0.6388888888888888 ]", + "[ 97/8 ⇜ (389/32 → 779/64) ⇝ 49/4 | note:G4 gain:0.6400000000000001 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", + "[ 97/8 ⇜ (389/32 → 779/64) ⇝ 49/4 | note:D5 gain:0.6400000000000001 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", + "[ 97/8 ⇜ (389/32 → 779/64) ⇝ 49/4 | note:F5 gain:0.6400000000000001 clip:1 s:piano release:0.1 pan:0.6064814814814814 ]", + "[ 12/1 ⇜ (779/64 → 195/16) ⇝ 49/4 | note:G2 gain:0.5814213562373131 clip:1 s:piano release:0.1 pan:0.44907407407407407 ]", + "[ 337/28 ⇜ (779/64 → 195/16) ⇝ 86/7 | note:75 gain:0.05814213562373131 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", + "[ 337/28 ⇜ (779/64 → 195/16) ⇝ 86/7 | note:79 gain:0.05814213562373131 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", + "[ 337/28 ⇜ (779/64 → 195/16) ⇝ 86/7 | note:80 gain:0.05814213562373131 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", + "[ 337/28 ⇜ (779/64 → 195/16) ⇝ 86/7 | note:84 gain:0.05814213562373131 clip:1 s:piano release:0.1 pan:0.6388888888888888 ]", + "[ 97/8 ⇜ (779/64 → 195/16) ⇝ 49/4 | note:G4 gain:0.5814213562373131 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", + "[ 97/8 ⇜ (779/64 → 195/16) ⇝ 49/4 | note:D5 gain:0.5814213562373131 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", + "[ 97/8 ⇜ (779/64 → 195/16) ⇝ 49/4 | note:F5 gain:0.5814213562373131 clip:1 s:piano release:0.1 pan:0.6064814814814814 ]", + "[ 12/1 ⇜ (195/16 → 781/64) ⇝ 49/4 | note:G2 gain:0.44000000000001127 clip:1 s:piano release:0.1 pan:0.44907407407407407 ]", + "[ 337/28 ⇜ (195/16 → 781/64) ⇝ 86/7 | note:75 gain:0.04400000000000113 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", + "[ 337/28 ⇜ (195/16 → 781/64) ⇝ 86/7 | note:79 gain:0.04400000000000113 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", + "[ 337/28 ⇜ (195/16 → 781/64) ⇝ 86/7 | note:80 gain:0.04400000000000113 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", + "[ 337/28 ⇜ (195/16 → 781/64) ⇝ 86/7 | note:84 gain:0.04400000000000113 clip:1 s:piano release:0.1 pan:0.6388888888888888 ]", + "[ 97/8 ⇜ (195/16 → 781/64) ⇝ 49/4 | note:G4 gain:0.44000000000001127 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", + "[ 97/8 ⇜ (195/16 → 781/64) ⇝ 49/4 | note:D5 gain:0.44000000000001127 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", + "[ 97/8 ⇜ (195/16 → 781/64) ⇝ 49/4 | note:F5 gain:0.44000000000001127 clip:1 s:piano release:0.1 pan:0.6064814814814814 ]", + "[ 12/1 ⇜ (781/64 → 391/32) ⇝ 49/4 | note:G2 gain:0.2985786437626867 clip:1 s:piano release:0.1 pan:0.44907407407407407 ]", + "[ 337/28 ⇜ (781/64 → 391/32) ⇝ 86/7 | note:75 gain:0.029857864376268674 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", + "[ 337/28 ⇜ (781/64 → 391/32) ⇝ 86/7 | note:79 gain:0.029857864376268674 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", + "[ 337/28 ⇜ (781/64 → 391/32) ⇝ 86/7 | note:80 gain:0.029857864376268674 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", + "[ 337/28 ⇜ (781/64 → 391/32) ⇝ 86/7 | note:84 gain:0.029857864376268674 clip:1 s:piano release:0.1 pan:0.6388888888888888 ]", + "[ 97/8 ⇜ (781/64 → 391/32) ⇝ 49/4 | note:G4 gain:0.2985786437626867 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", + "[ 97/8 ⇜ (781/64 → 391/32) ⇝ 49/4 | note:D5 gain:0.2985786437626867 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", + "[ 97/8 ⇜ (781/64 → 391/32) ⇝ 49/4 | note:F5 gain:0.2985786437626867 clip:1 s:piano release:0.1 pan:0.6064814814814814 ]", + "[ 12/1 ⇜ (391/32 → 783/64) ⇝ 49/4 | note:G2 gain:0.24 clip:1 s:piano release:0.1 pan:0.44907407407407407 ]", + "[ 337/28 ⇜ (391/32 → 783/64) ⇝ 86/7 | note:75 gain:0.024 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", + "[ 337/28 ⇜ (391/32 → 783/64) ⇝ 86/7 | note:79 gain:0.024 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", + "[ 337/28 ⇜ (391/32 → 783/64) ⇝ 86/7 | note:80 gain:0.024 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", + "[ 337/28 ⇜ (391/32 → 783/64) ⇝ 86/7 | note:84 gain:0.024 clip:1 s:piano release:0.1 pan:0.6388888888888888 ]", + "[ 97/8 ⇜ (391/32 → 783/64) ⇝ 49/4 | note:G4 gain:0.24 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", + "[ 97/8 ⇜ (391/32 → 783/64) ⇝ 49/4 | note:D5 gain:0.24 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", + "[ 97/8 ⇜ (391/32 → 783/64) ⇝ 49/4 | note:F5 gain:0.24 clip:1 s:piano release:0.1 pan:0.6064814814814814 ]", + "[ 12/1 ⇜ (783/64 → 49/4) | note:G2 gain:0.2985786437626855 clip:1 s:piano release:0.1 pan:0.44907407407407407 ]", + "[ 337/28 ⇜ (783/64 → 49/4) ⇝ 86/7 | note:75 gain:0.029857864376268552 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", + "[ 337/28 ⇜ (783/64 → 49/4) ⇝ 86/7 | note:79 gain:0.029857864376268552 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", + "[ 337/28 ⇜ (783/64 → 49/4) ⇝ 86/7 | note:80 gain:0.029857864376268552 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", + "[ 337/28 ⇜ (783/64 → 49/4) ⇝ 86/7 | note:84 gain:0.029857864376268552 clip:1 s:piano release:0.1 pan:0.6388888888888888 ]", + "[ 97/8 ⇜ (783/64 → 49/4) | note:G4 gain:0.2985786437626855 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", + "[ 97/8 ⇜ (783/64 → 49/4) | note:D5 gain:0.2985786437626855 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", + "[ 97/8 ⇜ (783/64 → 49/4) | note:F5 gain:0.2985786437626855 clip:1 s:piano release:0.1 pan:0.6064814814814814 ]", + "[ 337/28 ⇜ (49/4 → 785/64) ⇝ 86/7 | note:75 gain:0.04399999999999868 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", + "[ 337/28 ⇜ (49/4 → 785/64) ⇝ 86/7 | note:79 gain:0.04399999999999868 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", + "[ 337/28 ⇜ (49/4 → 785/64) ⇝ 86/7 | note:80 gain:0.04399999999999868 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", + "[ 337/28 ⇜ (49/4 → 785/64) ⇝ 86/7 | note:84 gain:0.04399999999999868 clip:1 s:piano release:0.1 pan:0.6388888888888888 ]", + "[ 337/28 ⇜ (785/64 → 393/32) ⇝ 86/7 | note:75 gain:0.058142135623731175 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", + "[ 337/28 ⇜ (785/64 → 393/32) ⇝ 86/7 | note:79 gain:0.058142135623731175 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", + "[ 337/28 ⇜ (785/64 → 393/32) ⇝ 86/7 | note:80 gain:0.058142135623731175 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", + "[ 337/28 ⇜ (785/64 → 393/32) ⇝ 86/7 | note:84 gain:0.058142135623731175 clip:1 s:piano release:0.1 pan:0.6388888888888888 ]", + "[ 337/28 ⇜ (393/32 → 86/7) | note:75 gain:0.06400000000000002 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", + "[ 337/28 ⇜ (393/32 → 86/7) | note:79 gain:0.06400000000000002 clip:1 s:piano release:0.1 pan:0.6157407407407407 ]", + "[ 337/28 ⇜ (393/32 → 86/7) | note:80 gain:0.06400000000000002 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", + "[ 337/28 ⇜ (393/32 → 86/7) | note:84 gain:0.06400000000000002 clip:1 s:piano release:0.1 pan:0.6388888888888888 ]", + "[ (25/2 → 801/64) ⇝ 101/8 | note:D5 gain:0.4400000000000008 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", + "[ (25/2 → 801/64) ⇝ 101/8 | note:A5 gain:0.4400000000000008 clip:1 s:piano release:0.1 pan:0.625 ]", + "[ (25/2 → 801/64) ⇝ 101/8 | note:C6 gain:0.4400000000000008 clip:1 s:piano release:0.1 pan:0.6388888888888888 ]", + "[ (25/2 → 801/64) ⇝ 51/4 | note:B3 gain:0.2200000000000004 clip:1 s:piano release:0.1 pan:0.5231481481481481 ]", + "[ (25/2 → 801/64) ⇝ 51/4 | note:E4 gain:0.2200000000000004 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", + "[ (25/2 → 801/64) ⇝ 51/4 | note:F4 gain:0.2200000000000004 clip:1 s:piano release:0.1 pan:0.5509259259259259 ]", + "[ (25/2 → 801/64) ⇝ 51/4 | note:A4 gain:0.2200000000000004 clip:1 s:piano release:0.1 pan:0.5694444444444444 ]", + "[ (25/2 → 801/64) ⇝ 51/4 | note:G2 gain:0.4400000000000008 clip:1 s:piano release:0.1 pan:0.44907407407407407 ]", + "[ 25/2 ⇜ (801/64 → 401/32) ⇝ 101/8 | note:D5 gain:0.5814213562373057 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", + "[ 25/2 ⇜ (801/64 → 401/32) ⇝ 101/8 | note:A5 gain:0.5814213562373057 clip:1 s:piano release:0.1 pan:0.625 ]", + "[ 25/2 ⇜ (801/64 → 401/32) ⇝ 101/8 | note:C6 gain:0.5814213562373057 clip:1 s:piano release:0.1 pan:0.6388888888888888 ]", + "[ 25/2 ⇜ (801/64 → 401/32) ⇝ 51/4 | note:B3 gain:0.29071067811865287 clip:1 s:piano release:0.1 pan:0.5231481481481481 ]", + "[ 25/2 ⇜ (801/64 → 401/32) ⇝ 51/4 | note:E4 gain:0.29071067811865287 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", + "[ 25/2 ⇜ (801/64 → 401/32) ⇝ 51/4 | note:F4 gain:0.29071067811865287 clip:1 s:piano release:0.1 pan:0.5509259259259259 ]", + "[ 25/2 ⇜ (801/64 → 401/32) ⇝ 51/4 | note:A4 gain:0.29071067811865287 clip:1 s:piano release:0.1 pan:0.5694444444444444 ]", + "[ 25/2 ⇜ (801/64 → 401/32) ⇝ 51/4 | note:G2 gain:0.5814213562373057 clip:1 s:piano release:0.1 pan:0.44907407407407407 ]", + "[ 25/2 ⇜ (401/32 → 803/64) ⇝ 101/8 | note:D5 gain:0.6400000000000001 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", + "[ 25/2 ⇜ (401/32 → 803/64) ⇝ 101/8 | note:A5 gain:0.6400000000000001 clip:1 s:piano release:0.1 pan:0.625 ]", + "[ 25/2 ⇜ (401/32 → 803/64) ⇝ 101/8 | note:C6 gain:0.6400000000000001 clip:1 s:piano release:0.1 pan:0.6388888888888888 ]", + "[ 25/2 ⇜ (401/32 → 803/64) ⇝ 51/4 | note:B3 gain:0.32000000000000006 clip:1 s:piano release:0.1 pan:0.5231481481481481 ]", + "[ 25/2 ⇜ (401/32 → 803/64) ⇝ 51/4 | note:E4 gain:0.32000000000000006 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", + "[ 25/2 ⇜ (401/32 → 803/64) ⇝ 51/4 | note:F4 gain:0.32000000000000006 clip:1 s:piano release:0.1 pan:0.5509259259259259 ]", + "[ 25/2 ⇜ (401/32 → 803/64) ⇝ 51/4 | note:A4 gain:0.32000000000000006 clip:1 s:piano release:0.1 pan:0.5694444444444444 ]", + "[ 25/2 ⇜ (401/32 → 803/64) ⇝ 51/4 | note:G2 gain:0.6400000000000001 clip:1 s:piano release:0.1 pan:0.44907407407407407 ]", + "[ 25/2 ⇜ (803/64 → 201/16) ⇝ 101/8 | note:D5 gain:0.5814213562373061 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", + "[ 25/2 ⇜ (803/64 → 201/16) ⇝ 101/8 | note:A5 gain:0.5814213562373061 clip:1 s:piano release:0.1 pan:0.625 ]", + "[ 25/2 ⇜ (803/64 → 201/16) ⇝ 101/8 | note:C6 gain:0.5814213562373061 clip:1 s:piano release:0.1 pan:0.6388888888888888 ]", + "[ 25/2 ⇜ (803/64 → 201/16) ⇝ 51/4 | note:B3 gain:0.29071067811865303 clip:1 s:piano release:0.1 pan:0.5231481481481481 ]", + "[ 25/2 ⇜ (803/64 → 201/16) ⇝ 51/4 | note:E4 gain:0.29071067811865303 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", + "[ 25/2 ⇜ (803/64 → 201/16) ⇝ 51/4 | note:F4 gain:0.29071067811865303 clip:1 s:piano release:0.1 pan:0.5509259259259259 ]", + "[ 25/2 ⇜ (803/64 → 201/16) ⇝ 51/4 | note:A4 gain:0.29071067811865303 clip:1 s:piano release:0.1 pan:0.5694444444444444 ]", + "[ 25/2 ⇜ (803/64 → 201/16) ⇝ 51/4 | note:G2 gain:0.5814213562373061 clip:1 s:piano release:0.1 pan:0.44907407407407407 ]", + "[ 25/2 ⇜ (201/16 → 805/64) ⇝ 101/8 | note:D5 gain:0.4400000000000014 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", + "[ 25/2 ⇜ (201/16 → 805/64) ⇝ 101/8 | note:A5 gain:0.4400000000000014 clip:1 s:piano release:0.1 pan:0.625 ]", + "[ 25/2 ⇜ (201/16 → 805/64) ⇝ 101/8 | note:C6 gain:0.4400000000000014 clip:1 s:piano release:0.1 pan:0.6388888888888888 ]", + "[ 25/2 ⇜ (201/16 → 805/64) ⇝ 51/4 | note:B3 gain:0.2200000000000007 clip:1 s:piano release:0.1 pan:0.5231481481481481 ]", + "[ 25/2 ⇜ (201/16 → 805/64) ⇝ 51/4 | note:E4 gain:0.2200000000000007 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", + "[ 25/2 ⇜ (201/16 → 805/64) ⇝ 51/4 | note:F4 gain:0.2200000000000007 clip:1 s:piano release:0.1 pan:0.5509259259259259 ]", + "[ 25/2 ⇜ (201/16 → 805/64) ⇝ 51/4 | note:A4 gain:0.2200000000000007 clip:1 s:piano release:0.1 pan:0.5694444444444444 ]", + "[ 25/2 ⇜ (201/16 → 805/64) ⇝ 51/4 | note:G2 gain:0.4400000000000014 clip:1 s:piano release:0.1 pan:0.44907407407407407 ]", + "[ 25/2 ⇜ (805/64 → 403/32) ⇝ 101/8 | note:D5 gain:0.2985786437626959 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", + "[ 25/2 ⇜ (805/64 → 403/32) ⇝ 101/8 | note:A5 gain:0.2985786437626959 clip:1 s:piano release:0.1 pan:0.625 ]", + "[ 25/2 ⇜ (805/64 → 403/32) ⇝ 101/8 | note:C6 gain:0.2985786437626959 clip:1 s:piano release:0.1 pan:0.6388888888888888 ]", + "[ 25/2 ⇜ (805/64 → 403/32) ⇝ 51/4 | note:B3 gain:0.14928932188134794 clip:1 s:piano release:0.1 pan:0.5231481481481481 ]", + "[ 25/2 ⇜ (805/64 → 403/32) ⇝ 51/4 | note:E4 gain:0.14928932188134794 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", + "[ 25/2 ⇜ (805/64 → 403/32) ⇝ 51/4 | note:F4 gain:0.14928932188134794 clip:1 s:piano release:0.1 pan:0.5509259259259259 ]", + "[ 25/2 ⇜ (805/64 → 403/32) ⇝ 51/4 | note:A4 gain:0.14928932188134794 clip:1 s:piano release:0.1 pan:0.5694444444444444 ]", + "[ 25/2 ⇜ (805/64 → 403/32) ⇝ 51/4 | note:G2 gain:0.2985786437626959 clip:1 s:piano release:0.1 pan:0.44907407407407407 ]", + "[ 25/2 ⇜ (403/32 → 807/64) ⇝ 101/8 | note:D5 gain:0.24 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", + "[ 25/2 ⇜ (403/32 → 807/64) ⇝ 101/8 | note:A5 gain:0.24 clip:1 s:piano release:0.1 pan:0.625 ]", + "[ 25/2 ⇜ (403/32 → 807/64) ⇝ 101/8 | note:C6 gain:0.24 clip:1 s:piano release:0.1 pan:0.6388888888888888 ]", + "[ 25/2 ⇜ (403/32 → 807/64) ⇝ 51/4 | note:B3 gain:0.12 clip:1 s:piano release:0.1 pan:0.5231481481481481 ]", + "[ 25/2 ⇜ (403/32 → 807/64) ⇝ 51/4 | note:E4 gain:0.12 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", + "[ 25/2 ⇜ (403/32 → 807/64) ⇝ 51/4 | note:F4 gain:0.12 clip:1 s:piano release:0.1 pan:0.5509259259259259 ]", + "[ 25/2 ⇜ (403/32 → 807/64) ⇝ 51/4 | note:A4 gain:0.12 clip:1 s:piano release:0.1 pan:0.5694444444444444 ]", + "[ 25/2 ⇜ (403/32 → 807/64) ⇝ 51/4 | note:G2 gain:0.24 clip:1 s:piano release:0.1 pan:0.44907407407407407 ]", + "[ 25/2 ⇜ (807/64 → 101/8) | note:D5 gain:0.29857864376269244 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", + "[ 25/2 ⇜ (807/64 → 101/8) | note:A5 gain:0.29857864376269244 clip:1 s:piano release:0.1 pan:0.625 ]", + "[ 25/2 ⇜ (807/64 → 101/8) | note:C6 gain:0.29857864376269244 clip:1 s:piano release:0.1 pan:0.6388888888888888 ]", + "[ 25/2 ⇜ (807/64 → 101/8) ⇝ 51/4 | note:B3 gain:0.14928932188134622 clip:1 s:piano release:0.1 pan:0.5231481481481481 ]", + "[ 25/2 ⇜ (807/64 → 101/8) ⇝ 51/4 | note:E4 gain:0.14928932188134622 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", + "[ 25/2 ⇜ (807/64 → 101/8) ⇝ 51/4 | note:F4 gain:0.14928932188134622 clip:1 s:piano release:0.1 pan:0.5509259259259259 ]", + "[ 25/2 ⇜ (807/64 → 101/8) ⇝ 51/4 | note:A4 gain:0.14928932188134622 clip:1 s:piano release:0.1 pan:0.5694444444444444 ]", + "[ 25/2 ⇜ (807/64 → 101/8) ⇝ 51/4 | note:G2 gain:0.29857864376269244 clip:1 s:piano release:0.1 pan:0.44907407407407407 ]", + "[ 25/2 ⇜ (101/8 → 809/64) ⇝ 51/4 | note:B3 gain:0.21999999999999825 clip:1 s:piano release:0.1 pan:0.5231481481481481 ]", + "[ 25/2 ⇜ (101/8 → 809/64) ⇝ 51/4 | note:E4 gain:0.21999999999999825 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", + "[ 25/2 ⇜ (101/8 → 809/64) ⇝ 51/4 | note:F4 gain:0.21999999999999825 clip:1 s:piano release:0.1 pan:0.5509259259259259 ]", + "[ 25/2 ⇜ (101/8 → 809/64) ⇝ 51/4 | note:A4 gain:0.21999999999999825 clip:1 s:piano release:0.1 pan:0.5694444444444444 ]", + "[ 25/2 ⇜ (101/8 → 809/64) ⇝ 51/4 | note:G2 gain:0.4399999999999965 clip:1 s:piano release:0.1 pan:0.44907407407407407 ]", + "[ 25/2 ⇜ (809/64 → 405/32) ⇝ 51/4 | note:B3 gain:0.2907106781186513 clip:1 s:piano release:0.1 pan:0.5231481481481481 ]", + "[ 25/2 ⇜ (809/64 → 405/32) ⇝ 51/4 | note:E4 gain:0.2907106781186513 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", + "[ 25/2 ⇜ (809/64 → 405/32) ⇝ 51/4 | note:F4 gain:0.2907106781186513 clip:1 s:piano release:0.1 pan:0.5509259259259259 ]", + "[ 25/2 ⇜ (809/64 → 405/32) ⇝ 51/4 | note:A4 gain:0.2907106781186513 clip:1 s:piano release:0.1 pan:0.5694444444444444 ]", + "[ 25/2 ⇜ (809/64 → 405/32) ⇝ 51/4 | note:G2 gain:0.5814213562373026 clip:1 s:piano release:0.1 pan:0.44907407407407407 ]", + "[ 25/2 ⇜ (405/32 → 811/64) ⇝ 51/4 | note:B3 gain:0.32000000000000006 clip:1 s:piano release:0.1 pan:0.5231481481481481 ]", + "[ 25/2 ⇜ (405/32 → 811/64) ⇝ 51/4 | note:E4 gain:0.32000000000000006 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", + "[ 25/2 ⇜ (405/32 → 811/64) ⇝ 51/4 | note:F4 gain:0.32000000000000006 clip:1 s:piano release:0.1 pan:0.5509259259259259 ]", + "[ 25/2 ⇜ (405/32 → 811/64) ⇝ 51/4 | note:A4 gain:0.32000000000000006 clip:1 s:piano release:0.1 pan:0.5694444444444444 ]", + "[ 25/2 ⇜ (405/32 → 811/64) ⇝ 51/4 | note:G2 gain:0.6400000000000001 clip:1 s:piano release:0.1 pan:0.44907407407407407 ]", + "[ 25/2 ⇜ (811/64 → 203/16) ⇝ 51/4 | note:B3 gain:0.29071067811865453 clip:1 s:piano release:0.1 pan:0.5231481481481481 ]", + "[ 25/2 ⇜ (811/64 → 203/16) ⇝ 51/4 | note:E4 gain:0.29071067811865453 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", + "[ 25/2 ⇜ (811/64 → 203/16) ⇝ 51/4 | note:F4 gain:0.29071067811865453 clip:1 s:piano release:0.1 pan:0.5509259259259259 ]", + "[ 25/2 ⇜ (811/64 → 203/16) ⇝ 51/4 | note:A4 gain:0.29071067811865453 clip:1 s:piano release:0.1 pan:0.5694444444444444 ]", + "[ 25/2 ⇜ (811/64 → 203/16) ⇝ 51/4 | note:G2 gain:0.5814213562373091 clip:1 s:piano release:0.1 pan:0.44907407407407407 ]", + "[ 25/2 ⇜ (203/16 → 813/64) ⇝ 51/4 | note:B3 gain:0.22000000000000286 clip:1 s:piano release:0.1 pan:0.5231481481481481 ]", + "[ 25/2 ⇜ (203/16 → 813/64) ⇝ 51/4 | note:E4 gain:0.22000000000000286 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", + "[ 25/2 ⇜ (203/16 → 813/64) ⇝ 51/4 | note:F4 gain:0.22000000000000286 clip:1 s:piano release:0.1 pan:0.5509259259259259 ]", + "[ 25/2 ⇜ (203/16 → 813/64) ⇝ 51/4 | note:A4 gain:0.22000000000000286 clip:1 s:piano release:0.1 pan:0.5694444444444444 ]", + "[ 25/2 ⇜ (203/16 → 813/64) ⇝ 51/4 | note:G2 gain:0.4400000000000057 clip:1 s:piano release:0.1 pan:0.44907407407407407 ]", + "[ 25/2 ⇜ (813/64 → 407/32) ⇝ 51/4 | note:B3 gain:0.14928932188134944 clip:1 s:piano release:0.1 pan:0.5231481481481481 ]", + "[ 25/2 ⇜ (813/64 → 407/32) ⇝ 51/4 | note:E4 gain:0.14928932188134944 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", + "[ 25/2 ⇜ (813/64 → 407/32) ⇝ 51/4 | note:F4 gain:0.14928932188134944 clip:1 s:piano release:0.1 pan:0.5509259259259259 ]", + "[ 25/2 ⇜ (813/64 → 407/32) ⇝ 51/4 | note:A4 gain:0.14928932188134944 clip:1 s:piano release:0.1 pan:0.5694444444444444 ]", + "[ 25/2 ⇜ (813/64 → 407/32) ⇝ 51/4 | note:G2 gain:0.2985786437626989 clip:1 s:piano release:0.1 pan:0.44907407407407407 ]", + "[ 25/2 ⇜ (407/32 → 815/64) ⇝ 51/4 | note:B3 gain:0.12 clip:1 s:piano release:0.1 pan:0.5231481481481481 ]", + "[ 25/2 ⇜ (407/32 → 815/64) ⇝ 51/4 | note:E4 gain:0.12 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", + "[ 25/2 ⇜ (407/32 → 815/64) ⇝ 51/4 | note:F4 gain:0.12 clip:1 s:piano release:0.1 pan:0.5509259259259259 ]", + "[ 25/2 ⇜ (407/32 → 815/64) ⇝ 51/4 | note:A4 gain:0.12 clip:1 s:piano release:0.1 pan:0.5694444444444444 ]", + "[ 25/2 ⇜ (407/32 → 815/64) ⇝ 51/4 | note:G2 gain:0.24 clip:1 s:piano release:0.1 pan:0.44907407407407407 ]", + "[ 25/2 ⇜ (815/64 → 51/4) | note:B3 gain:0.14928932188134467 clip:1 s:piano release:0.1 pan:0.5231481481481481 ]", + "[ 25/2 ⇜ (815/64 → 51/4) | note:E4 gain:0.14928932188134467 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", + "[ 25/2 ⇜ (815/64 → 51/4) | note:F4 gain:0.14928932188134467 clip:1 s:piano release:0.1 pan:0.5509259259259259 ]", + "[ 25/2 ⇜ (815/64 → 51/4) | note:A4 gain:0.14928932188134467 clip:1 s:piano release:0.1 pan:0.5694444444444444 ]", + "[ 25/2 ⇜ (815/64 → 51/4) | note:G2 gain:0.29857864376268933 clip:1 s:piano release:0.1 pan:0.44907407407407407 ]", + "[ (51/4 → 817/64) ⇝ 103/8 | note:G4 gain:0.4399999999999922 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", + "[ (51/4 → 817/64) ⇝ 103/8 | note:D5 gain:0.4399999999999922 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", + "[ (51/4 → 817/64) ⇝ 103/8 | note:F5 gain:0.4399999999999922 clip:1 s:piano release:0.1 pan:0.6064814814814814 ]", + "[ 51/4 ⇜ (817/64 → 409/32) ⇝ 103/8 | note:G4 gain:0.5814213562372995 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", + "[ 51/4 ⇜ (817/64 → 409/32) ⇝ 103/8 | note:D5 gain:0.5814213562372995 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", + "[ 51/4 ⇜ (817/64 → 409/32) ⇝ 103/8 | note:F5 gain:0.5814213562372995 clip:1 s:piano release:0.1 pan:0.6064814814814814 ]", + "[ 51/4 ⇜ (409/32 → 819/64) ⇝ 103/8 | note:G4 gain:0.6400000000000001 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", + "[ 51/4 ⇜ (409/32 → 819/64) ⇝ 103/8 | note:D5 gain:0.6400000000000001 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", + "[ 51/4 ⇜ (409/32 → 819/64) ⇝ 103/8 | note:F5 gain:0.6400000000000001 clip:1 s:piano release:0.1 pan:0.6064814814814814 ]", + "[ (179/14 → 819/64) ⇝ 365/28 | note:71 gain:0.06400000000000002 clip:1 s:piano release:0.1 pan:0.5787037037037037 ]", + "[ (179/14 → 819/64) ⇝ 365/28 | note:76 gain:0.06400000000000002 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", + "[ (179/14 → 819/64) ⇝ 365/28 | note:77 gain:0.06400000000000002 clip:1 s:piano release:0.1 pan:0.6064814814814814 ]", + "[ (179/14 → 819/64) ⇝ 365/28 | note:81 gain:0.06400000000000002 clip:1 s:piano release:0.1 pan:0.625 ]", + "[ 51/4 ⇜ (819/64 → 205/16) ⇝ 103/8 | note:G4 gain:0.5814213562373122 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", + "[ 51/4 ⇜ (819/64 → 205/16) ⇝ 103/8 | note:D5 gain:0.5814213562373122 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", + "[ 51/4 ⇜ (819/64 → 205/16) ⇝ 103/8 | note:F5 gain:0.5814213562373122 clip:1 s:piano release:0.1 pan:0.6064814814814814 ]", + "[ 179/14 ⇜ (819/64 → 205/16) ⇝ 365/28 | note:71 gain:0.05814213562373122 clip:1 s:piano release:0.1 pan:0.5787037037037037 ]", + "[ 179/14 ⇜ (819/64 → 205/16) ⇝ 365/28 | note:76 gain:0.05814213562373122 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", + "[ 179/14 ⇜ (819/64 → 205/16) ⇝ 365/28 | note:77 gain:0.05814213562373122 clip:1 s:piano release:0.1 pan:0.6064814814814814 ]", + "[ 179/14 ⇜ (819/64 → 205/16) ⇝ 365/28 | note:81 gain:0.05814213562373122 clip:1 s:piano release:0.1 pan:0.625 ]", + "[ 51/4 ⇜ (205/16 → 821/64) ⇝ 103/8 | note:G4 gain:0.44000000000001 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", + "[ 51/4 ⇜ (205/16 → 821/64) ⇝ 103/8 | note:D5 gain:0.44000000000001 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", + "[ 51/4 ⇜ (205/16 → 821/64) ⇝ 103/8 | note:F5 gain:0.44000000000001 clip:1 s:piano release:0.1 pan:0.6064814814814814 ]", + "[ 179/14 ⇜ (205/16 → 821/64) ⇝ 365/28 | note:71 gain:0.044000000000001004 clip:1 s:piano release:0.1 pan:0.5787037037037037 ]", + "[ 179/14 ⇜ (205/16 → 821/64) ⇝ 365/28 | note:76 gain:0.044000000000001004 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", + "[ 179/14 ⇜ (205/16 → 821/64) ⇝ 365/28 | note:77 gain:0.044000000000001004 clip:1 s:piano release:0.1 pan:0.6064814814814814 ]", + "[ 179/14 ⇜ (205/16 → 821/64) ⇝ 365/28 | note:81 gain:0.044000000000001004 clip:1 s:piano release:0.1 pan:0.625 ]", + "[ 51/4 ⇜ (821/64 → 411/32) ⇝ 103/8 | note:G4 gain:0.298578643762702 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", + "[ 51/4 ⇜ (821/64 → 411/32) ⇝ 103/8 | note:D5 gain:0.298578643762702 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", + "[ 51/4 ⇜ (821/64 → 411/32) ⇝ 103/8 | note:F5 gain:0.298578643762702 clip:1 s:piano release:0.1 pan:0.6064814814814814 ]", + "[ 179/14 ⇜ (821/64 → 411/32) ⇝ 365/28 | note:71 gain:0.0298578643762702 clip:1 s:piano release:0.1 pan:0.5787037037037037 ]", + "[ 179/14 ⇜ (821/64 → 411/32) ⇝ 365/28 | note:76 gain:0.0298578643762702 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", + "[ 179/14 ⇜ (821/64 → 411/32) ⇝ 365/28 | note:77 gain:0.0298578643762702 clip:1 s:piano release:0.1 pan:0.6064814814814814 ]", + "[ 179/14 ⇜ (821/64 → 411/32) ⇝ 365/28 | note:81 gain:0.0298578643762702 clip:1 s:piano release:0.1 pan:0.625 ]", + "[ 51/4 ⇜ (411/32 → 823/64) ⇝ 103/8 | note:G4 gain:0.24 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", + "[ 51/4 ⇜ (411/32 → 823/64) ⇝ 103/8 | note:D5 gain:0.24 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", + "[ 51/4 ⇜ (411/32 → 823/64) ⇝ 103/8 | note:F5 gain:0.24 clip:1 s:piano release:0.1 pan:0.6064814814814814 ]", + "[ 179/14 ⇜ (411/32 → 823/64) ⇝ 365/28 | note:71 gain:0.024 clip:1 s:piano release:0.1 pan:0.5787037037037037 ]", + "[ 179/14 ⇜ (411/32 → 823/64) ⇝ 365/28 | note:76 gain:0.024 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", + "[ 179/14 ⇜ (411/32 → 823/64) ⇝ 365/28 | note:77 gain:0.024 clip:1 s:piano release:0.1 pan:0.6064814814814814 ]", + "[ 179/14 ⇜ (411/32 → 823/64) ⇝ 365/28 | note:81 gain:0.024 clip:1 s:piano release:0.1 pan:0.625 ]", + "[ 51/4 ⇜ (823/64 → 103/8) | note:G4 gain:0.2985786437626863 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", + "[ 51/4 ⇜ (823/64 → 103/8) | note:D5 gain:0.2985786437626863 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", + "[ 51/4 ⇜ (823/64 → 103/8) | note:F5 gain:0.2985786437626863 clip:1 s:piano release:0.1 pan:0.6064814814814814 ]", + "[ 179/14 ⇜ (823/64 → 103/8) ⇝ 365/28 | note:71 gain:0.02985786437626863 clip:1 s:piano release:0.1 pan:0.5787037037037037 ]", + "[ 179/14 ⇜ (823/64 → 103/8) ⇝ 365/28 | note:76 gain:0.02985786437626863 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", + "[ 179/14 ⇜ (823/64 → 103/8) ⇝ 365/28 | note:77 gain:0.02985786437626863 clip:1 s:piano release:0.1 pan:0.6064814814814814 ]", + "[ 179/14 ⇜ (823/64 → 103/8) ⇝ 365/28 | note:81 gain:0.02985786437626863 clip:1 s:piano release:0.1 pan:0.625 ]", + "[ 179/14 ⇜ (103/8 → 825/64) ⇝ 365/28 | note:71 gain:0.04399999999999879 clip:1 s:piano release:0.1 pan:0.5787037037037037 ]", + "[ 179/14 ⇜ (103/8 → 825/64) ⇝ 365/28 | note:76 gain:0.04399999999999879 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", + "[ 179/14 ⇜ (103/8 → 825/64) ⇝ 365/28 | note:77 gain:0.04399999999999879 clip:1 s:piano release:0.1 pan:0.6064814814814814 ]", + "[ 179/14 ⇜ (103/8 → 825/64) ⇝ 365/28 | note:81 gain:0.04399999999999879 clip:1 s:piano release:0.1 pan:0.625 ]", + "[ 179/14 ⇜ (825/64 → 413/32) ⇝ 365/28 | note:71 gain:0.058142135623731266 clip:1 s:piano release:0.1 pan:0.5787037037037037 ]", + "[ 179/14 ⇜ (825/64 → 413/32) ⇝ 365/28 | note:76 gain:0.058142135623731266 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", + "[ 179/14 ⇜ (825/64 → 413/32) ⇝ 365/28 | note:77 gain:0.058142135623731266 clip:1 s:piano release:0.1 pan:0.6064814814814814 ]", + "[ 179/14 ⇜ (825/64 → 413/32) ⇝ 365/28 | note:81 gain:0.058142135623731266 clip:1 s:piano release:0.1 pan:0.625 ]", + "[ 179/14 ⇜ (413/32 → 827/64) ⇝ 365/28 | note:71 gain:0.06400000000000002 clip:1 s:piano release:0.1 pan:0.5787037037037037 ]", + "[ 179/14 ⇜ (413/32 → 827/64) ⇝ 365/28 | note:76 gain:0.06400000000000002 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", + "[ 179/14 ⇜ (413/32 → 827/64) ⇝ 365/28 | note:77 gain:0.06400000000000002 clip:1 s:piano release:0.1 pan:0.6064814814814814 ]", + "[ 179/14 ⇜ (413/32 → 827/64) ⇝ 365/28 | note:81 gain:0.06400000000000002 clip:1 s:piano release:0.1 pan:0.625 ]", + "[ 179/14 ⇜ (827/64 → 207/16) ⇝ 365/28 | note:71 gain:0.05814213562373153 clip:1 s:piano release:0.1 pan:0.5787037037037037 ]", + "[ 179/14 ⇜ (827/64 → 207/16) ⇝ 365/28 | note:76 gain:0.05814213562373153 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", + "[ 179/14 ⇜ (827/64 → 207/16) ⇝ 365/28 | note:77 gain:0.05814213562373153 clip:1 s:piano release:0.1 pan:0.6064814814814814 ]", + "[ 179/14 ⇜ (827/64 → 207/16) ⇝ 365/28 | note:81 gain:0.05814213562373153 clip:1 s:piano release:0.1 pan:0.625 ]", + "[ 179/14 ⇜ (207/16 → 829/64) ⇝ 365/28 | note:71 gain:0.04400000000000143 clip:1 s:piano release:0.1 pan:0.5787037037037037 ]", + "[ 179/14 ⇜ (207/16 → 829/64) ⇝ 365/28 | note:76 gain:0.04400000000000143 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", + "[ 179/14 ⇜ (207/16 → 829/64) ⇝ 365/28 | note:77 gain:0.04400000000000143 clip:1 s:piano release:0.1 pan:0.6064814814814814 ]", + "[ 179/14 ⇜ (207/16 → 829/64) ⇝ 365/28 | note:81 gain:0.04400000000000143 clip:1 s:piano release:0.1 pan:0.625 ]", + "[ 179/14 ⇜ (829/64 → 415/32) ⇝ 365/28 | note:71 gain:0.029857864376268896 clip:1 s:piano release:0.1 pan:0.5787037037037037 ]", + "[ 179/14 ⇜ (829/64 → 415/32) ⇝ 365/28 | note:76 gain:0.029857864376268896 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", + "[ 179/14 ⇜ (829/64 → 415/32) ⇝ 365/28 | note:77 gain:0.029857864376268896 clip:1 s:piano release:0.1 pan:0.6064814814814814 ]", + "[ 179/14 ⇜ (829/64 → 415/32) ⇝ 365/28 | note:81 gain:0.029857864376268896 clip:1 s:piano release:0.1 pan:0.625 ]", + "[ 179/14 ⇜ (415/32 → 831/64) ⇝ 365/28 | note:71 gain:0.024 clip:1 s:piano release:0.1 pan:0.5787037037037037 ]", + "[ 179/14 ⇜ (415/32 → 831/64) ⇝ 365/28 | note:76 gain:0.024 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", + "[ 179/14 ⇜ (415/32 → 831/64) ⇝ 365/28 | note:77 gain:0.024 clip:1 s:piano release:0.1 pan:0.6064814814814814 ]", + "[ 179/14 ⇜ (415/32 → 831/64) ⇝ 365/28 | note:81 gain:0.024 clip:1 s:piano release:0.1 pan:0.625 ]", + "[ 179/14 ⇜ (831/64 → 13/1) ⇝ 365/28 | note:71 gain:0.02985786437626833 clip:1 s:piano release:0.1 pan:0.5787037037037037 ]", + "[ 179/14 ⇜ (831/64 → 13/1) ⇝ 365/28 | note:76 gain:0.02985786437626833 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", + "[ 179/14 ⇜ (831/64 → 13/1) ⇝ 365/28 | note:77 gain:0.02985786437626833 clip:1 s:piano release:0.1 pan:0.6064814814814814 ]", + "[ 179/14 ⇜ (831/64 → 13/1) ⇝ 365/28 | note:81 gain:0.02985786437626833 clip:1 s:piano release:0.1 pan:0.625 ]", + "[ 179/14 ⇜ (13/1 → 833/64) ⇝ 365/28 | note:71 gain:0.04400000000000063 clip:1 s:piano release:0.1 pan:0.5787037037037037 ]", + "[ 179/14 ⇜ (13/1 → 833/64) ⇝ 365/28 | note:76 gain:0.04400000000000063 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", + "[ 179/14 ⇜ (13/1 → 833/64) ⇝ 365/28 | note:77 gain:0.04400000000000063 clip:1 s:piano release:0.1 pan:0.6064814814814814 ]", + "[ 179/14 ⇜ (13/1 → 833/64) ⇝ 365/28 | note:81 gain:0.04400000000000063 clip:1 s:piano release:0.1 pan:0.625 ]", + "[ (13/1 → 833/64) ⇝ 53/4 | note:G2 gain:0.4400000000000063 clip:1 s:piano release:0.1 pan:0.44907407407407407 ]", + "[ 179/14 ⇜ (833/64 → 417/32) ⇝ 365/28 | note:71 gain:0.05814213562373095 clip:1 s:piano release:0.1 pan:0.5787037037037037 ]", + "[ 179/14 ⇜ (833/64 → 417/32) ⇝ 365/28 | note:76 gain:0.05814213562373095 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", + "[ 179/14 ⇜ (833/64 → 417/32) ⇝ 365/28 | note:77 gain:0.05814213562373095 clip:1 s:piano release:0.1 pan:0.6064814814814814 ]", + "[ 179/14 ⇜ (833/64 → 417/32) ⇝ 365/28 | note:81 gain:0.05814213562373095 clip:1 s:piano release:0.1 pan:0.625 ]", + "[ 13/1 ⇜ (833/64 → 417/32) ⇝ 53/4 | note:G2 gain:0.5814213562373095 clip:1 s:piano release:0.1 pan:0.44907407407407407 ]", + "[ 179/14 ⇜ (417/32 → 365/28) | note:71 gain:0.06400000000000002 clip:1 s:piano release:0.1 pan:0.5787037037037037 ]", + "[ 179/14 ⇜ (417/32 → 365/28) | note:76 gain:0.06400000000000002 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", + "[ 179/14 ⇜ (417/32 → 365/28) | note:77 gain:0.06400000000000002 clip:1 s:piano release:0.1 pan:0.6064814814814814 ]", + "[ 179/14 ⇜ (417/32 → 365/28) | note:81 gain:0.06400000000000002 clip:1 s:piano release:0.1 pan:0.625 ]", + "[ 13/1 ⇜ (417/32 → 835/64) ⇝ 53/4 | note:G2 gain:0.6400000000000001 clip:1 s:piano release:0.1 pan:0.44907407407407407 ]", + "[ 13/1 ⇜ (835/64 → 209/16) ⇝ 53/4 | note:G2 gain:0.5814213562373184 clip:1 s:piano release:0.1 pan:0.44907407407407407 ]", + "[ 13/1 ⇜ (209/16 → 837/64) ⇝ 53/4 | note:G2 gain:0.4399999999999959 clip:1 s:piano release:0.1 pan:0.44907407407407407 ]", + "[ 13/1 ⇜ (837/64 → 419/32) ⇝ 53/4 | note:G2 gain:0.298578643762692 clip:1 s:piano release:0.1 pan:0.44907407407407407 ]", + "[ 13/1 ⇜ (419/32 → 839/64) ⇝ 53/4 | note:G2 gain:0.24 clip:1 s:piano release:0.1 pan:0.44907407407407407 ]", + "[ 13/1 ⇜ (839/64 → 105/8) ⇝ 53/4 | note:G2 gain:0.29857864376268023 clip:1 s:piano release:0.1 pan:0.44907407407407407 ]", + "[ 13/1 ⇜ (105/8 → 841/64) ⇝ 53/4 | note:G2 gain:0.440000000000002 clip:1 s:piano release:0.1 pan:0.44907407407407407 ]", + "[ (105/8 → 841/64) ⇝ 53/4 | note:G4 gain:0.440000000000002 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", + "[ (105/8 → 841/64) ⇝ 53/4 | note:D5 gain:0.440000000000002 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", + "[ (105/8 → 841/64) ⇝ 53/4 | note:F5 gain:0.440000000000002 clip:1 s:piano release:0.1 pan:0.6064814814814814 ]", + "[ 13/1 ⇜ (841/64 → 421/32) ⇝ 53/4 | note:G2 gain:0.5814213562373064 clip:1 s:piano release:0.1 pan:0.44907407407407407 ]", + "[ 105/8 ⇜ (841/64 → 421/32) ⇝ 53/4 | note:G4 gain:0.5814213562373064 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", + "[ 105/8 ⇜ (841/64 → 421/32) ⇝ 53/4 | note:D5 gain:0.5814213562373064 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", + "[ 105/8 ⇜ (841/64 → 421/32) ⇝ 53/4 | note:F5 gain:0.5814213562373064 clip:1 s:piano release:0.1 pan:0.6064814814814814 ]", + "[ 13/1 ⇜ (421/32 → 843/64) ⇝ 53/4 | note:G2 gain:0.6400000000000001 clip:1 s:piano release:0.1 pan:0.44907407407407407 ]", + "[ 105/8 ⇜ (421/32 → 843/64) ⇝ 53/4 | note:G4 gain:0.6400000000000001 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", + "[ 105/8 ⇜ (421/32 → 843/64) ⇝ 53/4 | note:D5 gain:0.6400000000000001 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", + "[ 105/8 ⇜ (421/32 → 843/64) ⇝ 53/4 | note:F5 gain:0.6400000000000001 clip:1 s:piano release:0.1 pan:0.6064814814814814 ]", + "[ 13/1 ⇜ (843/64 → 211/16) ⇝ 53/4 | note:G2 gain:0.5814213562373052 clip:1 s:piano release:0.1 pan:0.44907407407407407 ]", + "[ 105/8 ⇜ (843/64 → 211/16) ⇝ 53/4 | note:G4 gain:0.5814213562373052 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", + "[ 105/8 ⇜ (843/64 → 211/16) ⇝ 53/4 | note:D5 gain:0.5814213562373052 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", + "[ 105/8 ⇜ (843/64 → 211/16) ⇝ 53/4 | note:F5 gain:0.5814213562373052 clip:1 s:piano release:0.1 pan:0.6064814814814814 ]", + "[ 13/1 ⇜ (211/16 → 845/64) ⇝ 53/4 | note:G2 gain:0.4400000000000002 clip:1 s:piano release:0.1 pan:0.44907407407407407 ]", + "[ 105/8 ⇜ (211/16 → 845/64) ⇝ 53/4 | note:G4 gain:0.4400000000000002 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", + "[ 105/8 ⇜ (211/16 → 845/64) ⇝ 53/4 | note:D5 gain:0.4400000000000002 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", + "[ 105/8 ⇜ (211/16 → 845/64) ⇝ 53/4 | note:F5 gain:0.4400000000000002 clip:1 s:piano release:0.1 pan:0.6064814814814814 ]", + "[ 13/1 ⇜ (845/64 → 423/32) ⇝ 53/4 | note:G2 gain:0.29857864376269505 clip:1 s:piano release:0.1 pan:0.44907407407407407 ]", + "[ 105/8 ⇜ (845/64 → 423/32) ⇝ 53/4 | note:G4 gain:0.29857864376269505 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", + "[ 105/8 ⇜ (845/64 → 423/32) ⇝ 53/4 | note:D5 gain:0.29857864376269505 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", + "[ 105/8 ⇜ (845/64 → 423/32) ⇝ 53/4 | note:F5 gain:0.29857864376269505 clip:1 s:piano release:0.1 pan:0.6064814814814814 ]", + "[ 13/1 ⇜ (423/32 → 847/64) ⇝ 53/4 | note:G2 gain:0.24 clip:1 s:piano release:0.1 pan:0.44907407407407407 ]", + "[ 105/8 ⇜ (423/32 → 847/64) ⇝ 53/4 | note:G4 gain:0.24 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", + "[ 105/8 ⇜ (423/32 → 847/64) ⇝ 53/4 | note:D5 gain:0.24 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", + "[ 105/8 ⇜ (423/32 → 847/64) ⇝ 53/4 | note:F5 gain:0.24 clip:1 s:piano release:0.1 pan:0.6064814814814814 ]", + "[ 13/1 ⇜ (847/64 → 53/4) | note:G2 gain:0.2985786437626932 clip:1 s:piano release:0.1 pan:0.44907407407407407 ]", + "[ 105/8 ⇜ (847/64 → 53/4) | note:G4 gain:0.2985786437626932 clip:1 s:piano release:0.1 pan:0.5601851851851851 ]", + "[ 105/8 ⇜ (847/64 → 53/4) | note:D5 gain:0.2985786437626932 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", + "[ 105/8 ⇜ (847/64 → 53/4) | note:F5 gain:0.2985786437626932 clip:1 s:piano release:0.1 pan:0.6064814814814814 ]", + "[ (53/4 → 849/64) ⇝ 27/2 | note:B3 gain:0.21999999999999884 clip:1 s:piano release:0.1 pan:0.5231481481481481 ]", + "[ (53/4 → 849/64) ⇝ 27/2 | note:E4 gain:0.21999999999999884 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", + "[ (53/4 → 849/64) ⇝ 27/2 | note:F4 gain:0.21999999999999884 clip:1 s:piano release:0.1 pan:0.5509259259259259 ]", + "[ (53/4 → 849/64) ⇝ 27/2 | note:A4 gain:0.21999999999999884 clip:1 s:piano release:0.1 pan:0.5694444444444444 ]", + "[ 53/4 ⇜ (849/64 → 425/32) ⇝ 27/2 | note:B3 gain:0.2907106781186517 clip:1 s:piano release:0.1 pan:0.5231481481481481 ]", + "[ 53/4 ⇜ (849/64 → 425/32) ⇝ 27/2 | note:E4 gain:0.2907106781186517 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", + "[ 53/4 ⇜ (849/64 → 425/32) ⇝ 27/2 | note:F4 gain:0.2907106781186517 clip:1 s:piano release:0.1 pan:0.5509259259259259 ]", + "[ 53/4 ⇜ (849/64 → 425/32) ⇝ 27/2 | note:A4 gain:0.2907106781186517 clip:1 s:piano release:0.1 pan:0.5694444444444444 ]", + "[ 53/4 ⇜ (425/32 → 851/64) ⇝ 27/2 | note:B3 gain:0.32000000000000006 clip:1 s:piano release:0.1 pan:0.5231481481481481 ]", + "[ 53/4 ⇜ (425/32 → 851/64) ⇝ 27/2 | note:E4 gain:0.32000000000000006 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", + "[ 53/4 ⇜ (425/32 → 851/64) ⇝ 27/2 | note:F4 gain:0.32000000000000006 clip:1 s:piano release:0.1 pan:0.5509259259259259 ]", + "[ 53/4 ⇜ (425/32 → 851/64) ⇝ 27/2 | note:A4 gain:0.32000000000000006 clip:1 s:piano release:0.1 pan:0.5694444444444444 ]", + "[ 53/4 ⇜ (851/64 → 213/16) ⇝ 27/2 | note:B3 gain:0.29071067811865414 clip:1 s:piano release:0.1 pan:0.5231481481481481 ]", + "[ 53/4 ⇜ (851/64 → 213/16) ⇝ 27/2 | note:E4 gain:0.29071067811865414 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", + "[ 53/4 ⇜ (851/64 → 213/16) ⇝ 27/2 | note:F4 gain:0.29071067811865414 clip:1 s:piano release:0.1 pan:0.5509259259259259 ]", + "[ 53/4 ⇜ (851/64 → 213/16) ⇝ 27/2 | note:A4 gain:0.29071067811865414 clip:1 s:piano release:0.1 pan:0.5694444444444444 ]", + "[ 53/4 ⇜ (213/16 → 853/64) ⇝ 27/2 | note:B3 gain:0.22000000000000225 clip:1 s:piano release:0.1 pan:0.5231481481481481 ]", + "[ 53/4 ⇜ (213/16 → 853/64) ⇝ 27/2 | note:E4 gain:0.22000000000000225 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", + "[ 53/4 ⇜ (213/16 → 853/64) ⇝ 27/2 | note:F4 gain:0.22000000000000225 clip:1 s:piano release:0.1 pan:0.5509259259259259 ]", + "[ 53/4 ⇜ (213/16 → 853/64) ⇝ 27/2 | note:A4 gain:0.22000000000000225 clip:1 s:piano release:0.1 pan:0.5694444444444444 ]", + "[ 53/4 ⇜ (853/64 → 427/32) ⇝ 27/2 | note:B3 gain:0.14928932188134905 clip:1 s:piano release:0.1 pan:0.5231481481481481 ]", + "[ 53/4 ⇜ (853/64 → 427/32) ⇝ 27/2 | note:E4 gain:0.14928932188134905 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", + "[ 53/4 ⇜ (853/64 → 427/32) ⇝ 27/2 | note:F4 gain:0.14928932188134905 clip:1 s:piano release:0.1 pan:0.5509259259259259 ]", + "[ 53/4 ⇜ (853/64 → 427/32) ⇝ 27/2 | note:A4 gain:0.14928932188134905 clip:1 s:piano release:0.1 pan:0.5694444444444444 ]", + "[ 53/4 ⇜ (427/32 → 855/64) ⇝ 27/2 | note:B3 gain:0.12 clip:1 s:piano release:0.1 pan:0.5231481481481481 ]", + "[ 53/4 ⇜ (427/32 → 855/64) ⇝ 27/2 | note:E4 gain:0.12 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", + "[ 53/4 ⇜ (427/32 → 855/64) ⇝ 27/2 | note:F4 gain:0.12 clip:1 s:piano release:0.1 pan:0.5509259259259259 ]", + "[ 53/4 ⇜ (427/32 → 855/64) ⇝ 27/2 | note:A4 gain:0.12 clip:1 s:piano release:0.1 pan:0.5694444444444444 ]", + "[ 53/4 ⇜ (855/64 → 107/8) ⇝ 27/2 | note:B3 gain:0.1492893218813451 clip:1 s:piano release:0.1 pan:0.5231481481481481 ]", + "[ 53/4 ⇜ (855/64 → 107/8) ⇝ 27/2 | note:E4 gain:0.1492893218813451 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", + "[ 53/4 ⇜ (855/64 → 107/8) ⇝ 27/2 | note:F4 gain:0.1492893218813451 clip:1 s:piano release:0.1 pan:0.5509259259259259 ]", + "[ 53/4 ⇜ (855/64 → 107/8) ⇝ 27/2 | note:A4 gain:0.1492893218813451 clip:1 s:piano release:0.1 pan:0.5694444444444444 ]", + "[ 53/4 ⇜ (107/8 → 857/64) ⇝ 27/2 | note:B3 gain:0.21999999999999664 clip:1 s:piano release:0.1 pan:0.5231481481481481 ]", + "[ 53/4 ⇜ (107/8 → 857/64) ⇝ 27/2 | note:E4 gain:0.21999999999999664 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", + "[ 53/4 ⇜ (107/8 → 857/64) ⇝ 27/2 | note:F4 gain:0.21999999999999664 clip:1 s:piano release:0.1 pan:0.5509259259259259 ]", + "[ 53/4 ⇜ (107/8 → 857/64) ⇝ 27/2 | note:A4 gain:0.21999999999999664 clip:1 s:piano release:0.1 pan:0.5694444444444444 ]", + "[ 53/4 ⇜ (857/64 → 429/32) ⇝ 27/2 | note:B3 gain:0.2907106781186502 clip:1 s:piano release:0.1 pan:0.5231481481481481 ]", + "[ 53/4 ⇜ (857/64 → 429/32) ⇝ 27/2 | note:E4 gain:0.2907106781186502 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", + "[ 53/4 ⇜ (857/64 → 429/32) ⇝ 27/2 | note:F4 gain:0.2907106781186502 clip:1 s:piano release:0.1 pan:0.5509259259259259 ]", + "[ 53/4 ⇜ (857/64 → 429/32) ⇝ 27/2 | note:A4 gain:0.2907106781186502 clip:1 s:piano release:0.1 pan:0.5694444444444444 ]", + "[ 53/4 ⇜ (429/32 → 859/64) ⇝ 27/2 | note:B3 gain:0.32000000000000006 clip:1 s:piano release:0.1 pan:0.5231481481481481 ]", + "[ 53/4 ⇜ (429/32 → 859/64) ⇝ 27/2 | note:E4 gain:0.32000000000000006 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", + "[ 53/4 ⇜ (429/32 → 859/64) ⇝ 27/2 | note:F4 gain:0.32000000000000006 clip:1 s:piano release:0.1 pan:0.5509259259259259 ]", + "[ 53/4 ⇜ (429/32 → 859/64) ⇝ 27/2 | note:A4 gain:0.32000000000000006 clip:1 s:piano release:0.1 pan:0.5694444444444444 ]", + "[ 53/4 ⇜ (859/64 → 215/16) ⇝ 27/2 | note:B3 gain:0.2907106781186557 clip:1 s:piano release:0.1 pan:0.5231481481481481 ]", + "[ 53/4 ⇜ (859/64 → 215/16) ⇝ 27/2 | note:E4 gain:0.2907106781186557 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", + "[ 53/4 ⇜ (859/64 → 215/16) ⇝ 27/2 | note:F4 gain:0.2907106781186557 clip:1 s:piano release:0.1 pan:0.5509259259259259 ]", + "[ 53/4 ⇜ (859/64 → 215/16) ⇝ 27/2 | note:A4 gain:0.2907106781186557 clip:1 s:piano release:0.1 pan:0.5694444444444444 ]", + "[ 53/4 ⇜ (215/16 → 861/64) ⇝ 27/2 | note:B3 gain:0.22000000000000441 clip:1 s:piano release:0.1 pan:0.5231481481481481 ]", + "[ 53/4 ⇜ (215/16 → 861/64) ⇝ 27/2 | note:E4 gain:0.22000000000000441 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", + "[ 53/4 ⇜ (215/16 → 861/64) ⇝ 27/2 | note:F4 gain:0.22000000000000441 clip:1 s:piano release:0.1 pan:0.5509259259259259 ]", + "[ 53/4 ⇜ (215/16 → 861/64) ⇝ 27/2 | note:A4 gain:0.22000000000000441 clip:1 s:piano release:0.1 pan:0.5694444444444444 ]", + "[ 53/4 ⇜ (861/64 → 431/32) ⇝ 27/2 | note:B3 gain:0.14928932188135055 clip:1 s:piano release:0.1 pan:0.5231481481481481 ]", + "[ 53/4 ⇜ (861/64 → 431/32) ⇝ 27/2 | note:E4 gain:0.14928932188135055 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", + "[ 53/4 ⇜ (861/64 → 431/32) ⇝ 27/2 | note:F4 gain:0.14928932188135055 clip:1 s:piano release:0.1 pan:0.5509259259259259 ]", + "[ 53/4 ⇜ (861/64 → 431/32) ⇝ 27/2 | note:A4 gain:0.14928932188135055 clip:1 s:piano release:0.1 pan:0.5694444444444444 ]", + "[ 53/4 ⇜ (431/32 → 863/64) ⇝ 27/2 | note:B3 gain:0.12 clip:1 s:piano release:0.1 pan:0.5231481481481481 ]", + "[ 53/4 ⇜ (431/32 → 863/64) ⇝ 27/2 | note:E4 gain:0.12 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", + "[ 53/4 ⇜ (431/32 → 863/64) ⇝ 27/2 | note:F4 gain:0.12 clip:1 s:piano release:0.1 pan:0.5509259259259259 ]", + "[ 53/4 ⇜ (431/32 → 863/64) ⇝ 27/2 | note:A4 gain:0.12 clip:1 s:piano release:0.1 pan:0.5694444444444444 ]", + "[ 53/4 ⇜ (863/64 → 27/2) | note:B3 gain:0.14928932188134356 clip:1 s:piano release:0.1 pan:0.5231481481481481 ]", + "[ 53/4 ⇜ (863/64 → 27/2) | note:E4 gain:0.14928932188134356 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", + "[ 53/4 ⇜ (863/64 → 27/2) | note:F4 gain:0.14928932188134356 clip:1 s:piano release:0.1 pan:0.5509259259259259 ]", + "[ 53/4 ⇜ (863/64 → 27/2) | note:A4 gain:0.14928932188134356 clip:1 s:piano release:0.1 pan:0.5694444444444444 ]", + "[ (27/2 → 865/64) ⇝ 109/8 | note:D5 gain:0.43999999999998907 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", + "[ (27/2 → 865/64) ⇝ 109/8 | note:A5 gain:0.43999999999998907 clip:1 s:piano release:0.1 pan:0.625 ]", + "[ (27/2 → 865/64) ⇝ 109/8 | note:C6 gain:0.43999999999998907 clip:1 s:piano release:0.1 pan:0.6388888888888888 ]", + "[ (27/2 → 865/64) ⇝ 55/4 | note:G2 gain:0.43999999999998907 clip:1 s:piano release:0.1 pan:0.44907407407407407 ]", + "[ 27/2 ⇜ (865/64 → 433/32) ⇝ 109/8 | note:D5 gain:0.5814213562373134 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", + "[ 27/2 ⇜ (865/64 → 433/32) ⇝ 109/8 | note:A5 gain:0.5814213562373134 clip:1 s:piano release:0.1 pan:0.625 ]", + "[ 27/2 ⇜ (865/64 → 433/32) ⇝ 109/8 | note:C6 gain:0.5814213562373134 clip:1 s:piano release:0.1 pan:0.6388888888888888 ]", + "[ 27/2 ⇜ (865/64 → 433/32) ⇝ 55/4 | note:G2 gain:0.5814213562373134 clip:1 s:piano release:0.1 pan:0.44907407407407407 ]", + "[ 27/2 ⇜ (433/32 → 867/64) ⇝ 109/8 | note:D5 gain:0.6400000000000001 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", + "[ 27/2 ⇜ (433/32 → 867/64) ⇝ 109/8 | note:A5 gain:0.6400000000000001 clip:1 s:piano release:0.1 pan:0.625 ]", + "[ 27/2 ⇜ (433/32 → 867/64) ⇝ 109/8 | note:C6 gain:0.6400000000000001 clip:1 s:piano release:0.1 pan:0.6388888888888888 ]", + "[ 27/2 ⇜ (433/32 → 867/64) ⇝ 55/4 | note:G2 gain:0.6400000000000001 clip:1 s:piano release:0.1 pan:0.44907407407407407 ]", + "[ (379/28 → 867/64) ⇝ 193/14 | note:71 gain:0.06400000000000002 clip:1 s:piano release:0.1 pan:0.5787037037037037 ]", + "[ (379/28 → 867/64) ⇝ 193/14 | note:76 gain:0.06400000000000002 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", + "[ (379/28 → 867/64) ⇝ 193/14 | note:77 gain:0.06400000000000002 clip:1 s:piano release:0.1 pan:0.6064814814814814 ]", + "[ (379/28 → 867/64) ⇝ 193/14 | note:81 gain:0.06400000000000002 clip:1 s:piano release:0.1 pan:0.625 ]", + "[ 27/2 ⇜ (867/64 → 217/16) ⇝ 109/8 | note:D5 gain:0.5814213562373144 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", + "[ 27/2 ⇜ (867/64 → 217/16) ⇝ 109/8 | note:A5 gain:0.5814213562373144 clip:1 s:piano release:0.1 pan:0.625 ]", + "[ 27/2 ⇜ (867/64 → 217/16) ⇝ 109/8 | note:C6 gain:0.5814213562373144 clip:1 s:piano release:0.1 pan:0.6388888888888888 ]", + "[ 27/2 ⇜ (867/64 → 217/16) ⇝ 55/4 | note:G2 gain:0.5814213562373144 clip:1 s:piano release:0.1 pan:0.44907407407407407 ]", + "[ 379/28 ⇜ (867/64 → 217/16) ⇝ 193/14 | note:71 gain:0.05814213562373144 clip:1 s:piano release:0.1 pan:0.5787037037037037 ]", + "[ 379/28 ⇜ (867/64 → 217/16) ⇝ 193/14 | note:76 gain:0.05814213562373144 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", + "[ 379/28 ⇜ (867/64 → 217/16) ⇝ 193/14 | note:77 gain:0.05814213562373144 clip:1 s:piano release:0.1 pan:0.6064814814814814 ]", + "[ 379/28 ⇜ (867/64 → 217/16) ⇝ 193/14 | note:81 gain:0.05814213562373144 clip:1 s:piano release:0.1 pan:0.625 ]", + "[ 27/2 ⇜ (217/16 → 869/64) ⇝ 109/8 | note:D5 gain:0.4400000000000132 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", + "[ 27/2 ⇜ (217/16 → 869/64) ⇝ 109/8 | note:A5 gain:0.4400000000000132 clip:1 s:piano release:0.1 pan:0.625 ]", + "[ 27/2 ⇜ (217/16 → 869/64) ⇝ 109/8 | note:C6 gain:0.4400000000000132 clip:1 s:piano release:0.1 pan:0.6388888888888888 ]", + "[ 27/2 ⇜ (217/16 → 869/64) ⇝ 55/4 | note:G2 gain:0.4400000000000132 clip:1 s:piano release:0.1 pan:0.44907407407407407 ]", + "[ 379/28 ⇜ (217/16 → 869/64) ⇝ 193/14 | note:71 gain:0.04400000000000132 clip:1 s:piano release:0.1 pan:0.5787037037037037 ]", + "[ 379/28 ⇜ (217/16 → 869/64) ⇝ 193/14 | note:76 gain:0.04400000000000132 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", + "[ 379/28 ⇜ (217/16 → 869/64) ⇝ 193/14 | note:77 gain:0.04400000000000132 clip:1 s:piano release:0.1 pan:0.6064814814814814 ]", + "[ 379/28 ⇜ (217/16 → 869/64) ⇝ 193/14 | note:81 gain:0.04400000000000132 clip:1 s:piano release:0.1 pan:0.625 ]", + "[ 27/2 ⇜ (869/64 → 435/32) ⇝ 109/8 | note:D5 gain:0.2985786437626881 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", + "[ 27/2 ⇜ (869/64 → 435/32) ⇝ 109/8 | note:A5 gain:0.2985786437626881 clip:1 s:piano release:0.1 pan:0.625 ]", + "[ 27/2 ⇜ (869/64 → 435/32) ⇝ 109/8 | note:C6 gain:0.2985786437626881 clip:1 s:piano release:0.1 pan:0.6388888888888888 ]", + "[ 27/2 ⇜ (869/64 → 435/32) ⇝ 55/4 | note:G2 gain:0.2985786437626881 clip:1 s:piano release:0.1 pan:0.44907407407407407 ]", + "[ 379/28 ⇜ (869/64 → 435/32) ⇝ 193/14 | note:71 gain:0.029857864376268813 clip:1 s:piano release:0.1 pan:0.5787037037037037 ]", + "[ 379/28 ⇜ (869/64 → 435/32) ⇝ 193/14 | note:76 gain:0.029857864376268813 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", + "[ 379/28 ⇜ (869/64 → 435/32) ⇝ 193/14 | note:77 gain:0.029857864376268813 clip:1 s:piano release:0.1 pan:0.6064814814814814 ]", + "[ 379/28 ⇜ (869/64 → 435/32) ⇝ 193/14 | note:81 gain:0.029857864376268813 clip:1 s:piano release:0.1 pan:0.625 ]", + "[ 27/2 ⇜ (435/32 → 871/64) ⇝ 109/8 | note:D5 gain:0.24 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", + "[ 27/2 ⇜ (435/32 → 871/64) ⇝ 109/8 | note:A5 gain:0.24 clip:1 s:piano release:0.1 pan:0.625 ]", + "[ 27/2 ⇜ (435/32 → 871/64) ⇝ 109/8 | note:C6 gain:0.24 clip:1 s:piano release:0.1 pan:0.6388888888888888 ]", + "[ 27/2 ⇜ (435/32 → 871/64) ⇝ 55/4 | note:G2 gain:0.24 clip:1 s:piano release:0.1 pan:0.44907407407407407 ]", + "[ 379/28 ⇜ (435/32 → 871/64) ⇝ 193/14 | note:71 gain:0.024 clip:1 s:piano release:0.1 pan:0.5787037037037037 ]", + "[ 379/28 ⇜ (435/32 → 871/64) ⇝ 193/14 | note:76 gain:0.024 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", + "[ 379/28 ⇜ (435/32 → 871/64) ⇝ 193/14 | note:77 gain:0.024 clip:1 s:piano release:0.1 pan:0.6064814814814814 ]", + "[ 379/28 ⇜ (435/32 → 871/64) ⇝ 193/14 | note:81 gain:0.024 clip:1 s:piano release:0.1 pan:0.625 ]", + "[ 27/2 ⇜ (871/64 → 109/8) | note:D5 gain:0.29857864376268406 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", + "[ 27/2 ⇜ (871/64 → 109/8) | note:A5 gain:0.29857864376268406 clip:1 s:piano release:0.1 pan:0.625 ]", + "[ 27/2 ⇜ (871/64 → 109/8) | note:C6 gain:0.29857864376268406 clip:1 s:piano release:0.1 pan:0.6388888888888888 ]", + "[ 27/2 ⇜ (871/64 → 109/8) ⇝ 55/4 | note:G2 gain:0.29857864376268406 clip:1 s:piano release:0.1 pan:0.44907407407407407 ]", + "[ 379/28 ⇜ (871/64 → 109/8) ⇝ 193/14 | note:71 gain:0.029857864376268407 clip:1 s:piano release:0.1 pan:0.5787037037037037 ]", + "[ 379/28 ⇜ (871/64 → 109/8) ⇝ 193/14 | note:76 gain:0.029857864376268407 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", + "[ 379/28 ⇜ (871/64 → 109/8) ⇝ 193/14 | note:77 gain:0.029857864376268407 clip:1 s:piano release:0.1 pan:0.6064814814814814 ]", + "[ 379/28 ⇜ (871/64 → 109/8) ⇝ 193/14 | note:81 gain:0.029857864376268407 clip:1 s:piano release:0.1 pan:0.625 ]", + "[ 27/2 ⇜ (109/8 → 873/64) ⇝ 55/4 | note:G2 gain:0.4399999999999848 clip:1 s:piano release:0.1 pan:0.44907407407407407 ]", + "[ 379/28 ⇜ (109/8 → 873/64) ⇝ 193/14 | note:71 gain:0.043999999999998485 clip:1 s:piano release:0.1 pan:0.5787037037037037 ]", + "[ 379/28 ⇜ (109/8 → 873/64) ⇝ 193/14 | note:76 gain:0.043999999999998485 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", + "[ 379/28 ⇜ (109/8 → 873/64) ⇝ 193/14 | note:77 gain:0.043999999999998485 clip:1 s:piano release:0.1 pan:0.6064814814814814 ]", + "[ 379/28 ⇜ (109/8 → 873/64) ⇝ 193/14 | note:81 gain:0.043999999999998485 clip:1 s:piano release:0.1 pan:0.625 ]", + "[ 27/2 ⇜ (873/64 → 437/32) ⇝ 55/4 | note:G2 gain:0.5814213562373104 clip:1 s:piano release:0.1 pan:0.44907407407407407 ]", + "[ 379/28 ⇜ (873/64 → 437/32) ⇝ 193/14 | note:71 gain:0.058142135623731044 clip:1 s:piano release:0.1 pan:0.5787037037037037 ]", + "[ 379/28 ⇜ (873/64 → 437/32) ⇝ 193/14 | note:76 gain:0.058142135623731044 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", + "[ 379/28 ⇜ (873/64 → 437/32) ⇝ 193/14 | note:77 gain:0.058142135623731044 clip:1 s:piano release:0.1 pan:0.6064814814814814 ]", + "[ 379/28 ⇜ (873/64 → 437/32) ⇝ 193/14 | note:81 gain:0.058142135623731044 clip:1 s:piano release:0.1 pan:0.625 ]", + "[ 27/2 ⇜ (437/32 → 875/64) ⇝ 55/4 | note:G2 gain:0.6400000000000001 clip:1 s:piano release:0.1 pan:0.44907407407407407 ]", + "[ 379/28 ⇜ (437/32 → 875/64) ⇝ 193/14 | note:71 gain:0.06400000000000002 clip:1 s:piano release:0.1 pan:0.5787037037037037 ]", + "[ 379/28 ⇜ (437/32 → 875/64) ⇝ 193/14 | note:76 gain:0.06400000000000002 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", + "[ 379/28 ⇜ (437/32 → 875/64) ⇝ 193/14 | note:77 gain:0.06400000000000002 clip:1 s:piano release:0.1 pan:0.6064814814814814 ]", + "[ 379/28 ⇜ (437/32 → 875/64) ⇝ 193/14 | note:81 gain:0.06400000000000002 clip:1 s:piano release:0.1 pan:0.625 ]", + "[ 27/2 ⇜ (875/64 → 219/16) ⇝ 55/4 | note:G2 gain:0.5814213562373175 clip:1 s:piano release:0.1 pan:0.44907407407407407 ]", + "[ 379/28 ⇜ (875/64 → 219/16) ⇝ 193/14 | note:71 gain:0.05814213562373175 clip:1 s:piano release:0.1 pan:0.5787037037037037 ]", + "[ 379/28 ⇜ (875/64 → 219/16) ⇝ 193/14 | note:76 gain:0.05814213562373175 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", + "[ 379/28 ⇜ (875/64 → 219/16) ⇝ 193/14 | note:77 gain:0.05814213562373175 clip:1 s:piano release:0.1 pan:0.6064814814814814 ]", + "[ 379/28 ⇜ (875/64 → 219/16) ⇝ 193/14 | note:81 gain:0.05814213562373175 clip:1 s:piano release:0.1 pan:0.625 ]", + "[ 27/2 ⇜ (219/16 → 877/64) ⇝ 55/4 | note:G2 gain:0.43999999999999473 clip:1 s:piano release:0.1 pan:0.44907407407407407 ]", + "[ 379/28 ⇜ (219/16 → 877/64) ⇝ 193/14 | note:71 gain:0.04399999999999948 clip:1 s:piano release:0.1 pan:0.5787037037037037 ]", + "[ 379/28 ⇜ (219/16 → 877/64) ⇝ 193/14 | note:76 gain:0.04399999999999948 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", + "[ 379/28 ⇜ (219/16 → 877/64) ⇝ 193/14 | note:77 gain:0.04399999999999948 clip:1 s:piano release:0.1 pan:0.6064814814814814 ]", + "[ 379/28 ⇜ (219/16 → 877/64) ⇝ 193/14 | note:81 gain:0.04399999999999948 clip:1 s:piano release:0.1 pan:0.625 ]", + "[ 27/2 ⇜ (877/64 → 439/32) ⇝ 55/4 | note:G2 gain:0.29857864376269116 clip:1 s:piano release:0.1 pan:0.44907407407407407 ]", + "[ 379/28 ⇜ (877/64 → 439/32) ⇝ 193/14 | note:71 gain:0.029857864376269118 clip:1 s:piano release:0.1 pan:0.5787037037037037 ]", + "[ 379/28 ⇜ (877/64 → 439/32) ⇝ 193/14 | note:76 gain:0.029857864376269118 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", + "[ 379/28 ⇜ (877/64 → 439/32) ⇝ 193/14 | note:77 gain:0.029857864376269118 clip:1 s:piano release:0.1 pan:0.6064814814814814 ]", + "[ 379/28 ⇜ (877/64 → 439/32) ⇝ 193/14 | note:81 gain:0.029857864376269118 clip:1 s:piano release:0.1 pan:0.625 ]", + "[ 27/2 ⇜ (439/32 → 879/64) ⇝ 55/4 | note:G2 gain:0.24 clip:1 s:piano release:0.1 pan:0.44907407407407407 ]", + "[ 379/28 ⇜ (439/32 → 879/64) ⇝ 193/14 | note:71 gain:0.024 clip:1 s:piano release:0.1 pan:0.5787037037037037 ]", + "[ 379/28 ⇜ (439/32 → 879/64) ⇝ 193/14 | note:76 gain:0.024 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", + "[ 379/28 ⇜ (439/32 → 879/64) ⇝ 193/14 | note:77 gain:0.024 clip:1 s:piano release:0.1 pan:0.6064814814814814 ]", + "[ 379/28 ⇜ (439/32 → 879/64) ⇝ 193/14 | note:81 gain:0.024 clip:1 s:piano release:0.1 pan:0.625 ]", + "[ 27/2 ⇜ (879/64 → 55/4) | note:G2 gain:0.29857864376268106 clip:1 s:piano release:0.1 pan:0.44907407407407407 ]", + "[ 379/28 ⇜ (879/64 → 55/4) ⇝ 193/14 | note:71 gain:0.02985786437626811 clip:1 s:piano release:0.1 pan:0.5787037037037037 ]", + "[ 379/28 ⇜ (879/64 → 55/4) ⇝ 193/14 | note:76 gain:0.02985786437626811 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", + "[ 379/28 ⇜ (879/64 → 55/4) ⇝ 193/14 | note:77 gain:0.02985786437626811 clip:1 s:piano release:0.1 pan:0.6064814814814814 ]", + "[ 379/28 ⇜ (879/64 → 55/4) ⇝ 193/14 | note:81 gain:0.02985786437626811 clip:1 s:piano release:0.1 pan:0.625 ]", + "[ 379/28 ⇜ (55/4 → 881/64) ⇝ 193/14 | note:71 gain:0.04400000000000032 clip:1 s:piano release:0.1 pan:0.5787037037037037 ]", + "[ 379/28 ⇜ (55/4 → 881/64) ⇝ 193/14 | note:76 gain:0.04400000000000032 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", + "[ 379/28 ⇜ (55/4 → 881/64) ⇝ 193/14 | note:77 gain:0.04400000000000032 clip:1 s:piano release:0.1 pan:0.6064814814814814 ]", + "[ 379/28 ⇜ (55/4 → 881/64) ⇝ 193/14 | note:81 gain:0.04400000000000032 clip:1 s:piano release:0.1 pan:0.625 ]", + "[ (55/4 → 881/64) ⇝ 111/8 | note:D5 gain:0.44000000000000317 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", + "[ (55/4 → 881/64) ⇝ 111/8 | note:A5 gain:0.44000000000000317 clip:1 s:piano release:0.1 pan:0.625 ]", + "[ (55/4 → 881/64) ⇝ 111/8 | note:C6 gain:0.44000000000000317 clip:1 s:piano release:0.1 pan:0.6388888888888888 ]", + "[ (55/4 → 881/64) ⇝ 14/1 | note:B3 gain:0.22000000000000158 clip:1 s:piano release:0.1 pan:0.5231481481481481 ]", + "[ (55/4 → 881/64) ⇝ 14/1 | note:E4 gain:0.22000000000000158 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", + "[ (55/4 → 881/64) ⇝ 14/1 | note:F4 gain:0.22000000000000158 clip:1 s:piano release:0.1 pan:0.5509259259259259 ]", + "[ (55/4 → 881/64) ⇝ 14/1 | note:A4 gain:0.22000000000000158 clip:1 s:piano release:0.1 pan:0.5694444444444444 ]", + "[ 379/28 ⇜ (881/64 → 441/32) ⇝ 193/14 | note:71 gain:0.05814213562373073 clip:1 s:piano release:0.1 pan:0.5787037037037037 ]", + "[ 379/28 ⇜ (881/64 → 441/32) ⇝ 193/14 | note:76 gain:0.05814213562373073 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", + "[ 379/28 ⇜ (881/64 → 441/32) ⇝ 193/14 | note:77 gain:0.05814213562373073 clip:1 s:piano release:0.1 pan:0.6064814814814814 ]", + "[ 379/28 ⇜ (881/64 → 441/32) ⇝ 193/14 | note:81 gain:0.05814213562373073 clip:1 s:piano release:0.1 pan:0.625 ]", + "[ 55/4 ⇜ (881/64 → 441/32) ⇝ 111/8 | note:D5 gain:0.5814213562373073 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", + "[ 55/4 ⇜ (881/64 → 441/32) ⇝ 111/8 | note:A5 gain:0.5814213562373073 clip:1 s:piano release:0.1 pan:0.625 ]", + "[ 55/4 ⇜ (881/64 → 441/32) ⇝ 111/8 | note:C6 gain:0.5814213562373073 clip:1 s:piano release:0.1 pan:0.6388888888888888 ]", + "[ 55/4 ⇜ (881/64 → 441/32) ⇝ 14/1 | note:B3 gain:0.29071067811865364 clip:1 s:piano release:0.1 pan:0.5231481481481481 ]", + "[ 55/4 ⇜ (881/64 → 441/32) ⇝ 14/1 | note:E4 gain:0.29071067811865364 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", + "[ 55/4 ⇜ (881/64 → 441/32) ⇝ 14/1 | note:F4 gain:0.29071067811865364 clip:1 s:piano release:0.1 pan:0.5509259259259259 ]", + "[ 55/4 ⇜ (881/64 → 441/32) ⇝ 14/1 | note:A4 gain:0.29071067811865364 clip:1 s:piano release:0.1 pan:0.5694444444444444 ]", + "[ 379/28 ⇜ (441/32 → 193/14) | note:71 gain:0.06400000000000002 clip:1 s:piano release:0.1 pan:0.5787037037037037 ]", + "[ 379/28 ⇜ (441/32 → 193/14) | note:76 gain:0.06400000000000002 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", + "[ 379/28 ⇜ (441/32 → 193/14) | note:77 gain:0.06400000000000002 clip:1 s:piano release:0.1 pan:0.6064814814814814 ]", + "[ 379/28 ⇜ (441/32 → 193/14) | note:81 gain:0.06400000000000002 clip:1 s:piano release:0.1 pan:0.625 ]", + "[ 55/4 ⇜ (441/32 → 883/64) ⇝ 111/8 | note:D5 gain:0.6400000000000001 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", + "[ 55/4 ⇜ (441/32 → 883/64) ⇝ 111/8 | note:A5 gain:0.6400000000000001 clip:1 s:piano release:0.1 pan:0.625 ]", + "[ 55/4 ⇜ (441/32 → 883/64) ⇝ 111/8 | note:C6 gain:0.6400000000000001 clip:1 s:piano release:0.1 pan:0.6388888888888888 ]", + "[ 55/4 ⇜ (441/32 → 883/64) ⇝ 14/1 | note:B3 gain:0.32000000000000006 clip:1 s:piano release:0.1 pan:0.5231481481481481 ]", + "[ 55/4 ⇜ (441/32 → 883/64) ⇝ 14/1 | note:E4 gain:0.32000000000000006 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", + "[ 55/4 ⇜ (441/32 → 883/64) ⇝ 14/1 | note:F4 gain:0.32000000000000006 clip:1 s:piano release:0.1 pan:0.5509259259259259 ]", + "[ 55/4 ⇜ (441/32 → 883/64) ⇝ 14/1 | note:A4 gain:0.32000000000000006 clip:1 s:piano release:0.1 pan:0.5694444444444444 ]", + "[ 55/4 ⇜ (883/64 → 221/16) ⇝ 111/8 | note:D5 gain:0.5814213562373205 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", + "[ 55/4 ⇜ (883/64 → 221/16) ⇝ 111/8 | note:A5 gain:0.5814213562373205 clip:1 s:piano release:0.1 pan:0.625 ]", + "[ 55/4 ⇜ (883/64 → 221/16) ⇝ 111/8 | note:C6 gain:0.5814213562373205 clip:1 s:piano release:0.1 pan:0.6388888888888888 ]", + "[ 55/4 ⇜ (883/64 → 221/16) ⇝ 14/1 | note:B3 gain:0.29071067811866025 clip:1 s:piano release:0.1 pan:0.5231481481481481 ]", + "[ 55/4 ⇜ (883/64 → 221/16) ⇝ 14/1 | note:E4 gain:0.29071067811866025 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", + "[ 55/4 ⇜ (883/64 → 221/16) ⇝ 14/1 | note:F4 gain:0.29071067811866025 clip:1 s:piano release:0.1 pan:0.5509259259259259 ]", + "[ 55/4 ⇜ (883/64 → 221/16) ⇝ 14/1 | note:A4 gain:0.29071067811866025 clip:1 s:piano release:0.1 pan:0.5694444444444444 ]", + "[ 55/4 ⇜ (221/16 → 885/64) ⇝ 111/8 | note:D5 gain:0.439999999999999 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", + "[ 55/4 ⇜ (221/16 → 885/64) ⇝ 111/8 | note:A5 gain:0.439999999999999 clip:1 s:piano release:0.1 pan:0.625 ]", + "[ 55/4 ⇜ (221/16 → 885/64) ⇝ 111/8 | note:C6 gain:0.439999999999999 clip:1 s:piano release:0.1 pan:0.6388888888888888 ]", + "[ 55/4 ⇜ (221/16 → 885/64) ⇝ 14/1 | note:B3 gain:0.2199999999999995 clip:1 s:piano release:0.1 pan:0.5231481481481481 ]", + "[ 55/4 ⇜ (221/16 → 885/64) ⇝ 14/1 | note:E4 gain:0.2199999999999995 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", + "[ 55/4 ⇜ (221/16 → 885/64) ⇝ 14/1 | note:F4 gain:0.2199999999999995 clip:1 s:piano release:0.1 pan:0.5509259259259259 ]", + "[ 55/4 ⇜ (221/16 → 885/64) ⇝ 14/1 | note:A4 gain:0.2199999999999995 clip:1 s:piano release:0.1 pan:0.5694444444444444 ]", + "[ 55/4 ⇜ (885/64 → 443/32) ⇝ 111/8 | note:D5 gain:0.2985786437626942 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", + "[ 55/4 ⇜ (885/64 → 443/32) ⇝ 111/8 | note:A5 gain:0.2985786437626942 clip:1 s:piano release:0.1 pan:0.625 ]", + "[ 55/4 ⇜ (885/64 → 443/32) ⇝ 111/8 | note:C6 gain:0.2985786437626942 clip:1 s:piano release:0.1 pan:0.6388888888888888 ]", + "[ 55/4 ⇜ (885/64 → 443/32) ⇝ 14/1 | note:B3 gain:0.1492893218813471 clip:1 s:piano release:0.1 pan:0.5231481481481481 ]", + "[ 55/4 ⇜ (885/64 → 443/32) ⇝ 14/1 | note:E4 gain:0.1492893218813471 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", + "[ 55/4 ⇜ (885/64 → 443/32) ⇝ 14/1 | note:F4 gain:0.1492893218813471 clip:1 s:piano release:0.1 pan:0.5509259259259259 ]", + "[ 55/4 ⇜ (885/64 → 443/32) ⇝ 14/1 | note:A4 gain:0.1492893218813471 clip:1 s:piano release:0.1 pan:0.5694444444444444 ]", + "[ 55/4 ⇜ (443/32 → 887/64) ⇝ 111/8 | note:D5 gain:0.24 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", + "[ 55/4 ⇜ (443/32 → 887/64) ⇝ 111/8 | note:A5 gain:0.24 clip:1 s:piano release:0.1 pan:0.625 ]", + "[ 55/4 ⇜ (443/32 → 887/64) ⇝ 111/8 | note:C6 gain:0.24 clip:1 s:piano release:0.1 pan:0.6388888888888888 ]", + "[ 55/4 ⇜ (443/32 → 887/64) ⇝ 14/1 | note:B3 gain:0.12 clip:1 s:piano release:0.1 pan:0.5231481481481481 ]", + "[ 55/4 ⇜ (443/32 → 887/64) ⇝ 14/1 | note:E4 gain:0.12 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", + "[ 55/4 ⇜ (443/32 → 887/64) ⇝ 14/1 | note:F4 gain:0.12 clip:1 s:piano release:0.1 pan:0.5509259259259259 ]", + "[ 55/4 ⇜ (443/32 → 887/64) ⇝ 14/1 | note:A4 gain:0.12 clip:1 s:piano release:0.1 pan:0.5694444444444444 ]", + "[ 55/4 ⇜ (887/64 → 111/8) | note:D5 gain:0.29857864376269405 clip:1 s:piano release:0.1 pan:0.5925925925925926 ]", + "[ 55/4 ⇜ (887/64 → 111/8) | note:A5 gain:0.29857864376269405 clip:1 s:piano release:0.1 pan:0.625 ]", + "[ 55/4 ⇜ (887/64 → 111/8) | note:C6 gain:0.29857864376269405 clip:1 s:piano release:0.1 pan:0.6388888888888888 ]", + "[ 55/4 ⇜ (887/64 → 111/8) ⇝ 14/1 | note:B3 gain:0.14928932188134703 clip:1 s:piano release:0.1 pan:0.5231481481481481 ]", + "[ 55/4 ⇜ (887/64 → 111/8) ⇝ 14/1 | note:E4 gain:0.14928932188134703 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", + "[ 55/4 ⇜ (887/64 → 111/8) ⇝ 14/1 | note:F4 gain:0.14928932188134703 clip:1 s:piano release:0.1 pan:0.5509259259259259 ]", + "[ 55/4 ⇜ (887/64 → 111/8) ⇝ 14/1 | note:A4 gain:0.14928932188134703 clip:1 s:piano release:0.1 pan:0.5694444444444444 ]", + "[ 55/4 ⇜ (111/8 → 889/64) ⇝ 14/1 | note:B3 gain:0.21999999999999942 clip:1 s:piano release:0.1 pan:0.5231481481481481 ]", + "[ 55/4 ⇜ (111/8 → 889/64) ⇝ 14/1 | note:E4 gain:0.21999999999999942 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", + "[ 55/4 ⇜ (111/8 → 889/64) ⇝ 14/1 | note:F4 gain:0.21999999999999942 clip:1 s:piano release:0.1 pan:0.5509259259259259 ]", + "[ 55/4 ⇜ (111/8 → 889/64) ⇝ 14/1 | note:A4 gain:0.21999999999999942 clip:1 s:piano release:0.1 pan:0.5694444444444444 ]", + "[ 55/4 ⇜ (889/64 → 445/32) ⇝ 14/1 | note:B3 gain:0.29071067811865214 clip:1 s:piano release:0.1 pan:0.5231481481481481 ]", + "[ 55/4 ⇜ (889/64 → 445/32) ⇝ 14/1 | note:E4 gain:0.29071067811865214 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", + "[ 55/4 ⇜ (889/64 → 445/32) ⇝ 14/1 | note:F4 gain:0.29071067811865214 clip:1 s:piano release:0.1 pan:0.5509259259259259 ]", + "[ 55/4 ⇜ (889/64 → 445/32) ⇝ 14/1 | note:A4 gain:0.29071067811865214 clip:1 s:piano release:0.1 pan:0.5694444444444444 ]", + "[ 55/4 ⇜ (445/32 → 891/64) ⇝ 14/1 | note:B3 gain:0.32000000000000006 clip:1 s:piano release:0.1 pan:0.5231481481481481 ]", + "[ 55/4 ⇜ (445/32 → 891/64) ⇝ 14/1 | note:E4 gain:0.32000000000000006 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", + "[ 55/4 ⇜ (445/32 → 891/64) ⇝ 14/1 | note:F4 gain:0.32000000000000006 clip:1 s:piano release:0.1 pan:0.5509259259259259 ]", + "[ 55/4 ⇜ (445/32 → 891/64) ⇝ 14/1 | note:A4 gain:0.32000000000000006 clip:1 s:piano release:0.1 pan:0.5694444444444444 ]", + "[ 55/4 ⇜ (891/64 → 223/16) ⇝ 14/1 | note:B3 gain:0.29071067811865375 clip:1 s:piano release:0.1 pan:0.5231481481481481 ]", + "[ 55/4 ⇜ (891/64 → 223/16) ⇝ 14/1 | note:E4 gain:0.29071067811865375 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", + "[ 55/4 ⇜ (891/64 → 223/16) ⇝ 14/1 | note:F4 gain:0.29071067811865375 clip:1 s:piano release:0.1 pan:0.5509259259259259 ]", + "[ 55/4 ⇜ (891/64 → 223/16) ⇝ 14/1 | note:A4 gain:0.29071067811865375 clip:1 s:piano release:0.1 pan:0.5694444444444444 ]", + "[ 55/4 ⇜ (223/16 → 893/64) ⇝ 14/1 | note:B3 gain:0.22000000000000167 clip:1 s:piano release:0.1 pan:0.5231481481481481 ]", + "[ 55/4 ⇜ (223/16 → 893/64) ⇝ 14/1 | note:E4 gain:0.22000000000000167 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", + "[ 55/4 ⇜ (223/16 → 893/64) ⇝ 14/1 | note:F4 gain:0.22000000000000167 clip:1 s:piano release:0.1 pan:0.5509259259259259 ]", + "[ 55/4 ⇜ (223/16 → 893/64) ⇝ 14/1 | note:A4 gain:0.22000000000000167 clip:1 s:piano release:0.1 pan:0.5694444444444444 ]", + "[ 55/4 ⇜ (893/64 → 447/32) ⇝ 14/1 | note:B3 gain:0.14928932188134864 clip:1 s:piano release:0.1 pan:0.5231481481481481 ]", + "[ 55/4 ⇜ (893/64 → 447/32) ⇝ 14/1 | note:E4 gain:0.14928932188134864 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", + "[ 55/4 ⇜ (893/64 → 447/32) ⇝ 14/1 | note:F4 gain:0.14928932188134864 clip:1 s:piano release:0.1 pan:0.5509259259259259 ]", + "[ 55/4 ⇜ (893/64 → 447/32) ⇝ 14/1 | note:A4 gain:0.14928932188134864 clip:1 s:piano release:0.1 pan:0.5694444444444444 ]", + "[ 55/4 ⇜ (447/32 → 895/64) ⇝ 14/1 | note:B3 gain:0.12 clip:1 s:piano release:0.1 pan:0.5231481481481481 ]", + "[ 55/4 ⇜ (447/32 → 895/64) ⇝ 14/1 | note:E4 gain:0.12 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", + "[ 55/4 ⇜ (447/32 → 895/64) ⇝ 14/1 | note:F4 gain:0.12 clip:1 s:piano release:0.1 pan:0.5509259259259259 ]", + "[ 55/4 ⇜ (447/32 → 895/64) ⇝ 14/1 | note:A4 gain:0.12 clip:1 s:piano release:0.1 pan:0.5694444444444444 ]", + "[ 55/4 ⇜ (895/64 → 14/1) | note:B3 gain:0.1492893218813455 clip:1 s:piano release:0.1 pan:0.5231481481481481 ]", + "[ 55/4 ⇜ (895/64 → 14/1) | note:E4 gain:0.1492893218813455 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", + "[ 55/4 ⇜ (895/64 → 14/1) | note:F4 gain:0.1492893218813455 clip:1 s:piano release:0.1 pan:0.5509259259259259 ]", + "[ 55/4 ⇜ (895/64 → 14/1) | note:A4 gain:0.1492893218813455 clip:1 s:piano release:0.1 pan:0.5694444444444444 ]", + "[ (14/1 → 897/64) ⇝ 57/4 | note:F#2 gain:0.43999999999999456 clip:1 s:piano release:0.1 pan:0.4444444444444444 ]", + "[ 14/1 ⇜ (897/64 → 449/32) ⇝ 57/4 | note:F#2 gain:0.5814213562373013 clip:1 s:piano release:0.1 pan:0.4444444444444444 ]", + "[ 14/1 ⇜ (449/32 → 899/64) ⇝ 57/4 | note:F#2 gain:0.6400000000000001 clip:1 s:piano release:0.1 pan:0.4444444444444444 ]", + "[ (393/28 → 899/64) ⇝ 100/7 | note:71 gain:0.06400000000000002 clip:1 s:piano release:0.1 pan:0.5787037037037037 ]", + "[ (393/28 → 899/64) ⇝ 100/7 | note:76 gain:0.06400000000000002 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", + "[ (393/28 → 899/64) ⇝ 100/7 | note:77 gain:0.06400000000000002 clip:1 s:piano release:0.1 pan:0.6064814814814814 ]", + "[ (393/28 → 899/64) ⇝ 100/7 | note:81 gain:0.06400000000000002 clip:1 s:piano release:0.1 pan:0.625 ]", + "[ 14/1 ⇜ (899/64 → 225/16) ⇝ 57/4 | note:F#2 gain:0.5814213562373105 clip:1 s:piano release:0.1 pan:0.4444444444444444 ]", + "[ 393/28 ⇜ (899/64 → 225/16) ⇝ 100/7 | note:71 gain:0.05814213562373105 clip:1 s:piano release:0.1 pan:0.5787037037037037 ]", + "[ 393/28 ⇜ (899/64 → 225/16) ⇝ 100/7 | note:76 gain:0.05814213562373105 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", + "[ 393/28 ⇜ (899/64 → 225/16) ⇝ 100/7 | note:77 gain:0.05814213562373105 clip:1 s:piano release:0.1 pan:0.6064814814814814 ]", + "[ 393/28 ⇜ (899/64 → 225/16) ⇝ 100/7 | note:81 gain:0.05814213562373105 clip:1 s:piano release:0.1 pan:0.625 ]", + "[ 14/1 ⇜ (225/16 → 901/64) ⇝ 57/4 | note:F#2 gain:0.4400000000000077 clip:1 s:piano release:0.1 pan:0.4444444444444444 ]", + "[ 393/28 ⇜ (225/16 → 901/64) ⇝ 100/7 | note:71 gain:0.044000000000000775 clip:1 s:piano release:0.1 pan:0.5787037037037037 ]", + "[ 393/28 ⇜ (225/16 → 901/64) ⇝ 100/7 | note:76 gain:0.044000000000000775 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", + "[ 393/28 ⇜ (225/16 → 901/64) ⇝ 100/7 | note:77 gain:0.044000000000000775 clip:1 s:piano release:0.1 pan:0.6064814814814814 ]", + "[ 393/28 ⇜ (225/16 → 901/64) ⇝ 100/7 | note:81 gain:0.044000000000000775 clip:1 s:piano release:0.1 pan:0.625 ]", + "[ 14/1 ⇜ (901/64 → 451/32) ⇝ 57/4 | note:F#2 gain:0.2985786437627003 clip:1 s:piano release:0.1 pan:0.4444444444444444 ]", + "[ 393/28 ⇜ (901/64 → 451/32) ⇝ 100/7 | note:71 gain:0.029857864376270034 clip:1 s:piano release:0.1 pan:0.5787037037037037 ]", + "[ 393/28 ⇜ (901/64 → 451/32) ⇝ 100/7 | note:76 gain:0.029857864376270034 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", + "[ 393/28 ⇜ (901/64 → 451/32) ⇝ 100/7 | note:77 gain:0.029857864376270034 clip:1 s:piano release:0.1 pan:0.6064814814814814 ]", + "[ 393/28 ⇜ (901/64 → 451/32) ⇝ 100/7 | note:81 gain:0.029857864376270034 clip:1 s:piano release:0.1 pan:0.625 ]", + "[ 14/1 ⇜ (451/32 → 903/64) ⇝ 57/4 | note:F#2 gain:0.24 clip:1 s:piano release:0.1 pan:0.4444444444444444 ]", + "[ 393/28 ⇜ (451/32 → 903/64) ⇝ 100/7 | note:71 gain:0.024 clip:1 s:piano release:0.1 pan:0.5787037037037037 ]", + "[ 393/28 ⇜ (451/32 → 903/64) ⇝ 100/7 | note:76 gain:0.024 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", + "[ 393/28 ⇜ (451/32 → 903/64) ⇝ 100/7 | note:77 gain:0.024 clip:1 s:piano release:0.1 pan:0.6064814814814814 ]", + "[ 393/28 ⇜ (451/32 → 903/64) ⇝ 100/7 | note:81 gain:0.024 clip:1 s:piano release:0.1 pan:0.625 ]", + "[ 14/1 ⇜ (903/64 → 113/8) ⇝ 57/4 | note:F#2 gain:0.298578643762688 clip:1 s:piano release:0.1 pan:0.4444444444444444 ]", + "[ 393/28 ⇜ (903/64 → 113/8) ⇝ 100/7 | note:71 gain:0.029857864376268802 clip:1 s:piano release:0.1 pan:0.5787037037037037 ]", + "[ 393/28 ⇜ (903/64 → 113/8) ⇝ 100/7 | note:76 gain:0.029857864376268802 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", + "[ 393/28 ⇜ (903/64 → 113/8) ⇝ 100/7 | note:77 gain:0.029857864376268802 clip:1 s:piano release:0.1 pan:0.6064814814814814 ]", + "[ 393/28 ⇜ (903/64 → 113/8) ⇝ 100/7 | note:81 gain:0.029857864376268802 clip:1 s:piano release:0.1 pan:0.625 ]", + "[ 14/1 ⇜ (113/8 → 905/64) ⇝ 57/4 | note:F#2 gain:0.4399999999999902 clip:1 s:piano release:0.1 pan:0.4444444444444444 ]", + "[ 393/28 ⇜ (113/8 → 905/64) ⇝ 100/7 | note:71 gain:0.04399999999999902 clip:1 s:piano release:0.1 pan:0.5787037037037037 ]", + "[ 393/28 ⇜ (113/8 → 905/64) ⇝ 100/7 | note:76 gain:0.04399999999999902 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", + "[ 393/28 ⇜ (113/8 → 905/64) ⇝ 100/7 | note:77 gain:0.04399999999999902 clip:1 s:piano release:0.1 pan:0.6064814814814814 ]", + "[ 393/28 ⇜ (113/8 → 905/64) ⇝ 100/7 | note:81 gain:0.04399999999999902 clip:1 s:piano release:0.1 pan:0.625 ]", + "[ (113/8 → 905/64) ⇝ 57/4 | note:F#4 gain:0.4399999999999902 clip:1 s:piano release:0.1 pan:0.5555555555555556 ]", + "[ (113/8 → 905/64) ⇝ 57/4 | note:C#5 gain:0.4399999999999902 clip:1 s:piano release:0.1 pan:0.587962962962963 ]", + "[ (113/8 → 905/64) ⇝ 57/4 | note:E5 gain:0.4399999999999902 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", + "[ 14/1 ⇜ (905/64 → 453/32) ⇝ 57/4 | note:F#2 gain:0.5814213562372982 clip:1 s:piano release:0.1 pan:0.4444444444444444 ]", + "[ 393/28 ⇜ (905/64 → 453/32) ⇝ 100/7 | note:71 gain:0.05814213562372982 clip:1 s:piano release:0.1 pan:0.5787037037037037 ]", + "[ 393/28 ⇜ (905/64 → 453/32) ⇝ 100/7 | note:76 gain:0.05814213562372982 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", + "[ 393/28 ⇜ (905/64 → 453/32) ⇝ 100/7 | note:77 gain:0.05814213562372982 clip:1 s:piano release:0.1 pan:0.6064814814814814 ]", + "[ 393/28 ⇜ (905/64 → 453/32) ⇝ 100/7 | note:81 gain:0.05814213562372982 clip:1 s:piano release:0.1 pan:0.625 ]", + "[ 113/8 ⇜ (905/64 → 453/32) ⇝ 57/4 | note:F#4 gain:0.5814213562372982 clip:1 s:piano release:0.1 pan:0.5555555555555556 ]", + "[ 113/8 ⇜ (905/64 → 453/32) ⇝ 57/4 | note:C#5 gain:0.5814213562372982 clip:1 s:piano release:0.1 pan:0.587962962962963 ]", + "[ 113/8 ⇜ (905/64 → 453/32) ⇝ 57/4 | note:E5 gain:0.5814213562372982 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", + "[ 14/1 ⇜ (453/32 → 907/64) ⇝ 57/4 | note:F#2 gain:0.6400000000000001 clip:1 s:piano release:0.1 pan:0.4444444444444444 ]", + "[ 393/28 ⇜ (453/32 → 907/64) ⇝ 100/7 | note:71 gain:0.06400000000000002 clip:1 s:piano release:0.1 pan:0.5787037037037037 ]", + "[ 393/28 ⇜ (453/32 → 907/64) ⇝ 100/7 | note:76 gain:0.06400000000000002 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", + "[ 393/28 ⇜ (453/32 → 907/64) ⇝ 100/7 | note:77 gain:0.06400000000000002 clip:1 s:piano release:0.1 pan:0.6064814814814814 ]", + "[ 393/28 ⇜ (453/32 → 907/64) ⇝ 100/7 | note:81 gain:0.06400000000000002 clip:1 s:piano release:0.1 pan:0.625 ]", + "[ 113/8 ⇜ (453/32 → 907/64) ⇝ 57/4 | note:F#4 gain:0.6400000000000001 clip:1 s:piano release:0.1 pan:0.5555555555555556 ]", + "[ 113/8 ⇜ (453/32 → 907/64) ⇝ 57/4 | note:C#5 gain:0.6400000000000001 clip:1 s:piano release:0.1 pan:0.587962962962963 ]", + "[ 113/8 ⇜ (453/32 → 907/64) ⇝ 57/4 | note:E5 gain:0.6400000000000001 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", + "[ 14/1 ⇜ (907/64 → 227/16) ⇝ 57/4 | note:F#2 gain:0.5814213562373135 clip:1 s:piano release:0.1 pan:0.4444444444444444 ]", + "[ 393/28 ⇜ (907/64 → 227/16) ⇝ 100/7 | note:71 gain:0.058142135623731356 clip:1 s:piano release:0.1 pan:0.5787037037037037 ]", + "[ 393/28 ⇜ (907/64 → 227/16) ⇝ 100/7 | note:76 gain:0.058142135623731356 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", + "[ 393/28 ⇜ (907/64 → 227/16) ⇝ 100/7 | note:77 gain:0.058142135623731356 clip:1 s:piano release:0.1 pan:0.6064814814814814 ]", + "[ 393/28 ⇜ (907/64 → 227/16) ⇝ 100/7 | note:81 gain:0.058142135623731356 clip:1 s:piano release:0.1 pan:0.625 ]", + "[ 113/8 ⇜ (907/64 → 227/16) ⇝ 57/4 | note:F#4 gain:0.5814213562373135 clip:1 s:piano release:0.1 pan:0.5555555555555556 ]", + "[ 113/8 ⇜ (907/64 → 227/16) ⇝ 57/4 | note:C#5 gain:0.5814213562373135 clip:1 s:piano release:0.1 pan:0.587962962962963 ]", + "[ 113/8 ⇜ (907/64 → 227/16) ⇝ 57/4 | note:E5 gain:0.5814213562373135 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", + "[ 14/1 ⇜ (227/16 → 909/64) ⇝ 57/4 | note:F#2 gain:0.44000000000001194 clip:1 s:piano release:0.1 pan:0.4444444444444444 ]", + "[ 393/28 ⇜ (227/16 → 909/64) ⇝ 100/7 | note:71 gain:0.0440000000000012 clip:1 s:piano release:0.1 pan:0.5787037037037037 ]", + "[ 393/28 ⇜ (227/16 → 909/64) ⇝ 100/7 | note:76 gain:0.0440000000000012 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", + "[ 393/28 ⇜ (227/16 → 909/64) ⇝ 100/7 | note:77 gain:0.0440000000000012 clip:1 s:piano release:0.1 pan:0.6064814814814814 ]", + "[ 393/28 ⇜ (227/16 → 909/64) ⇝ 100/7 | note:81 gain:0.0440000000000012 clip:1 s:piano release:0.1 pan:0.625 ]", + "[ 113/8 ⇜ (227/16 → 909/64) ⇝ 57/4 | note:F#4 gain:0.44000000000001194 clip:1 s:piano release:0.1 pan:0.5555555555555556 ]", + "[ 113/8 ⇜ (227/16 → 909/64) ⇝ 57/4 | note:C#5 gain:0.44000000000001194 clip:1 s:piano release:0.1 pan:0.587962962962963 ]", + "[ 113/8 ⇜ (227/16 → 909/64) ⇝ 57/4 | note:E5 gain:0.44000000000001194 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", + "[ 14/1 ⇜ (909/64 → 455/32) ⇝ 57/4 | note:F#2 gain:0.2985786437626873 clip:1 s:piano release:0.1 pan:0.4444444444444444 ]", + "[ 393/28 ⇜ (909/64 → 455/32) ⇝ 100/7 | note:71 gain:0.02985786437626873 clip:1 s:piano release:0.1 pan:0.5787037037037037 ]", + "[ 393/28 ⇜ (909/64 → 455/32) ⇝ 100/7 | note:76 gain:0.02985786437626873 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", + "[ 393/28 ⇜ (909/64 → 455/32) ⇝ 100/7 | note:77 gain:0.02985786437626873 clip:1 s:piano release:0.1 pan:0.6064814814814814 ]", + "[ 393/28 ⇜ (909/64 → 455/32) ⇝ 100/7 | note:81 gain:0.02985786437626873 clip:1 s:piano release:0.1 pan:0.625 ]", + "[ 113/8 ⇜ (909/64 → 455/32) ⇝ 57/4 | note:F#4 gain:0.2985786437626873 clip:1 s:piano release:0.1 pan:0.5555555555555556 ]", + "[ 113/8 ⇜ (909/64 → 455/32) ⇝ 57/4 | note:C#5 gain:0.2985786437626873 clip:1 s:piano release:0.1 pan:0.587962962962963 ]", + "[ 113/8 ⇜ (909/64 → 455/32) ⇝ 57/4 | note:E5 gain:0.2985786437626873 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", + "[ 14/1 ⇜ (455/32 → 911/64) ⇝ 57/4 | note:F#2 gain:0.24 clip:1 s:piano release:0.1 pan:0.4444444444444444 ]", + "[ 393/28 ⇜ (455/32 → 911/64) ⇝ 100/7 | note:71 gain:0.024 clip:1 s:piano release:0.1 pan:0.5787037037037037 ]", + "[ 393/28 ⇜ (455/32 → 911/64) ⇝ 100/7 | note:76 gain:0.024 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", + "[ 393/28 ⇜ (455/32 → 911/64) ⇝ 100/7 | note:77 gain:0.024 clip:1 s:piano release:0.1 pan:0.6064814814814814 ]", + "[ 393/28 ⇜ (455/32 → 911/64) ⇝ 100/7 | note:81 gain:0.024 clip:1 s:piano release:0.1 pan:0.625 ]", + "[ 113/8 ⇜ (455/32 → 911/64) ⇝ 57/4 | note:F#4 gain:0.24 clip:1 s:piano release:0.1 pan:0.5555555555555556 ]", + "[ 113/8 ⇜ (455/32 → 911/64) ⇝ 57/4 | note:C#5 gain:0.24 clip:1 s:piano release:0.1 pan:0.587962962962963 ]", + "[ 113/8 ⇜ (455/32 → 911/64) ⇝ 57/4 | note:E5 gain:0.24 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", + "[ 14/1 ⇜ (911/64 → 57/4) | note:F#2 gain:0.2985786437626849 clip:1 s:piano release:0.1 pan:0.4444444444444444 ]", + "[ 393/28 ⇜ (911/64 → 57/4) ⇝ 100/7 | note:71 gain:0.02985786437626849 clip:1 s:piano release:0.1 pan:0.5787037037037037 ]", + "[ 393/28 ⇜ (911/64 → 57/4) ⇝ 100/7 | note:76 gain:0.02985786437626849 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", + "[ 393/28 ⇜ (911/64 → 57/4) ⇝ 100/7 | note:77 gain:0.02985786437626849 clip:1 s:piano release:0.1 pan:0.6064814814814814 ]", + "[ 393/28 ⇜ (911/64 → 57/4) ⇝ 100/7 | note:81 gain:0.02985786437626849 clip:1 s:piano release:0.1 pan:0.625 ]", + "[ 113/8 ⇜ (911/64 → 57/4) | note:F#4 gain:0.2985786437626849 clip:1 s:piano release:0.1 pan:0.5555555555555556 ]", + "[ 113/8 ⇜ (911/64 → 57/4) | note:C#5 gain:0.2985786437626849 clip:1 s:piano release:0.1 pan:0.587962962962963 ]", + "[ 113/8 ⇜ (911/64 → 57/4) | note:E5 gain:0.2985786437626849 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", + "[ 393/28 ⇜ (57/4 → 913/64) ⇝ 100/7 | note:71 gain:0.043999999999998596 clip:1 s:piano release:0.1 pan:0.5787037037037037 ]", + "[ 393/28 ⇜ (57/4 → 913/64) ⇝ 100/7 | note:76 gain:0.043999999999998596 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", + "[ 393/28 ⇜ (57/4 → 913/64) ⇝ 100/7 | note:77 gain:0.043999999999998596 clip:1 s:piano release:0.1 pan:0.6064814814814814 ]", + "[ 393/28 ⇜ (57/4 → 913/64) ⇝ 100/7 | note:81 gain:0.043999999999998596 clip:1 s:piano release:0.1 pan:0.625 ]", + "[ 393/28 ⇜ (913/64 → 457/32) ⇝ 100/7 | note:71 gain:0.058142135623731134 clip:1 s:piano release:0.1 pan:0.5787037037037037 ]", + "[ 393/28 ⇜ (913/64 → 457/32) ⇝ 100/7 | note:76 gain:0.058142135623731134 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", + "[ 393/28 ⇜ (913/64 → 457/32) ⇝ 100/7 | note:77 gain:0.058142135623731134 clip:1 s:piano release:0.1 pan:0.6064814814814814 ]", + "[ 393/28 ⇜ (913/64 → 457/32) ⇝ 100/7 | note:81 gain:0.058142135623731134 clip:1 s:piano release:0.1 pan:0.625 ]", + "[ 393/28 ⇜ (457/32 → 100/7) | note:71 gain:0.06400000000000002 clip:1 s:piano release:0.1 pan:0.5787037037037037 ]", + "[ 393/28 ⇜ (457/32 → 100/7) | note:76 gain:0.06400000000000002 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", + "[ 393/28 ⇜ (457/32 → 100/7) | note:77 gain:0.06400000000000002 clip:1 s:piano release:0.1 pan:0.6064814814814814 ]", + "[ 393/28 ⇜ (457/32 → 100/7) | note:81 gain:0.06400000000000002 clip:1 s:piano release:0.1 pan:0.625 ]", + "[ (29/2 → 929/64) ⇝ 117/8 | note:C#5 gain:0.44000000000000006 clip:1 s:piano release:0.1 pan:0.587962962962963 ]", + "[ (29/2 → 929/64) ⇝ 117/8 | note:G#5 gain:0.44000000000000006 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", + "[ (29/2 → 929/64) ⇝ 117/8 | note:B5 gain:0.44000000000000006 clip:1 s:piano release:0.1 pan:0.6342592592592593 ]", + "[ (29/2 → 929/64) ⇝ 59/4 | note:Bb3 gain:0.22000000000000003 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", + "[ (29/2 → 929/64) ⇝ 59/4 | note:Eb4 gain:0.22000000000000003 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", + "[ (29/2 → 929/64) ⇝ 59/4 | note:E4 gain:0.22000000000000003 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", + "[ (29/2 → 929/64) ⇝ 59/4 | note:Ab4 gain:0.22000000000000003 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", + "[ (29/2 → 929/64) ⇝ 59/4 | note:F#2 gain:0.44000000000000006 clip:1 s:piano release:0.1 pan:0.4444444444444444 ]", + "[ 29/2 ⇜ (929/64 → 465/32) ⇝ 117/8 | note:C#5 gain:0.5814213562373051 clip:1 s:piano release:0.1 pan:0.587962962962963 ]", + "[ 29/2 ⇜ (929/64 → 465/32) ⇝ 117/8 | note:G#5 gain:0.5814213562373051 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", + "[ 29/2 ⇜ (929/64 → 465/32) ⇝ 117/8 | note:B5 gain:0.5814213562373051 clip:1 s:piano release:0.1 pan:0.6342592592592593 ]", + "[ 29/2 ⇜ (929/64 → 465/32) ⇝ 59/4 | note:Bb3 gain:0.29071067811865253 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", + "[ 29/2 ⇜ (929/64 → 465/32) ⇝ 59/4 | note:Eb4 gain:0.29071067811865253 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", + "[ 29/2 ⇜ (929/64 → 465/32) ⇝ 59/4 | note:E4 gain:0.29071067811865253 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", + "[ 29/2 ⇜ (929/64 → 465/32) ⇝ 59/4 | note:Ab4 gain:0.29071067811865253 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", + "[ 29/2 ⇜ (929/64 → 465/32) ⇝ 59/4 | note:F#2 gain:0.5814213562373051 clip:1 s:piano release:0.1 pan:0.4444444444444444 ]", + "[ 29/2 ⇜ (465/32 → 931/64) ⇝ 117/8 | note:C#5 gain:0.6400000000000001 clip:1 s:piano release:0.1 pan:0.587962962962963 ]", + "[ 29/2 ⇜ (465/32 → 931/64) ⇝ 117/8 | note:G#5 gain:0.6400000000000001 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", + "[ 29/2 ⇜ (465/32 → 931/64) ⇝ 117/8 | note:B5 gain:0.6400000000000001 clip:1 s:piano release:0.1 pan:0.6342592592592593 ]", + "[ 29/2 ⇜ (465/32 → 931/64) ⇝ 59/4 | note:Bb3 gain:0.32000000000000006 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", + "[ 29/2 ⇜ (465/32 → 931/64) ⇝ 59/4 | note:Eb4 gain:0.32000000000000006 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", + "[ 29/2 ⇜ (465/32 → 931/64) ⇝ 59/4 | note:E4 gain:0.32000000000000006 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", + "[ 29/2 ⇜ (465/32 → 931/64) ⇝ 59/4 | note:Ab4 gain:0.32000000000000006 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", + "[ 29/2 ⇜ (465/32 → 931/64) ⇝ 59/4 | note:F#2 gain:0.6400000000000001 clip:1 s:piano release:0.1 pan:0.4444444444444444 ]", + "[ 29/2 ⇜ (931/64 → 233/16) ⇝ 117/8 | note:C#5 gain:0.5814213562373066 clip:1 s:piano release:0.1 pan:0.587962962962963 ]", + "[ 29/2 ⇜ (931/64 → 233/16) ⇝ 117/8 | note:G#5 gain:0.5814213562373066 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", + "[ 29/2 ⇜ (931/64 → 233/16) ⇝ 117/8 | note:B5 gain:0.5814213562373066 clip:1 s:piano release:0.1 pan:0.6342592592592593 ]", + "[ 29/2 ⇜ (931/64 → 233/16) ⇝ 59/4 | note:Bb3 gain:0.2907106781186533 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", + "[ 29/2 ⇜ (931/64 → 233/16) ⇝ 59/4 | note:Eb4 gain:0.2907106781186533 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", + "[ 29/2 ⇜ (931/64 → 233/16) ⇝ 59/4 | note:E4 gain:0.2907106781186533 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", + "[ 29/2 ⇜ (931/64 → 233/16) ⇝ 59/4 | note:Ab4 gain:0.2907106781186533 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", + "[ 29/2 ⇜ (931/64 → 233/16) ⇝ 59/4 | note:F#2 gain:0.5814213562373066 clip:1 s:piano release:0.1 pan:0.4444444444444444 ]", + "[ 29/2 ⇜ (233/16 → 933/64) ⇝ 117/8 | note:C#5 gain:0.44000000000000217 clip:1 s:piano release:0.1 pan:0.587962962962963 ]", + "[ 29/2 ⇜ (233/16 → 933/64) ⇝ 117/8 | note:G#5 gain:0.44000000000000217 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", + "[ 29/2 ⇜ (233/16 → 933/64) ⇝ 117/8 | note:B5 gain:0.44000000000000217 clip:1 s:piano release:0.1 pan:0.6342592592592593 ]", + "[ 29/2 ⇜ (233/16 → 933/64) ⇝ 59/4 | note:Bb3 gain:0.22000000000000108 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", + "[ 29/2 ⇜ (233/16 → 933/64) ⇝ 59/4 | note:Eb4 gain:0.22000000000000108 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", + "[ 29/2 ⇜ (233/16 → 933/64) ⇝ 59/4 | note:E4 gain:0.22000000000000108 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", + "[ 29/2 ⇜ (233/16 → 933/64) ⇝ 59/4 | note:Ab4 gain:0.22000000000000108 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", + "[ 29/2 ⇜ (233/16 → 933/64) ⇝ 59/4 | note:F#2 gain:0.44000000000000217 clip:1 s:piano release:0.1 pan:0.4444444444444444 ]", + "[ 29/2 ⇜ (933/64 → 467/32) ⇝ 117/8 | note:C#5 gain:0.29857864376269644 clip:1 s:piano release:0.1 pan:0.587962962962963 ]", + "[ 29/2 ⇜ (933/64 → 467/32) ⇝ 117/8 | note:G#5 gain:0.29857864376269644 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", + "[ 29/2 ⇜ (933/64 → 467/32) ⇝ 117/8 | note:B5 gain:0.29857864376269644 clip:1 s:piano release:0.1 pan:0.6342592592592593 ]", + "[ 29/2 ⇜ (933/64 → 467/32) ⇝ 59/4 | note:Bb3 gain:0.14928932188134822 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", + "[ 29/2 ⇜ (933/64 → 467/32) ⇝ 59/4 | note:Eb4 gain:0.14928932188134822 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", + "[ 29/2 ⇜ (933/64 → 467/32) ⇝ 59/4 | note:E4 gain:0.14928932188134822 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", + "[ 29/2 ⇜ (933/64 → 467/32) ⇝ 59/4 | note:Ab4 gain:0.14928932188134822 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", + "[ 29/2 ⇜ (933/64 → 467/32) ⇝ 59/4 | note:F#2 gain:0.29857864376269644 clip:1 s:piano release:0.1 pan:0.4444444444444444 ]", + "[ 29/2 ⇜ (467/32 → 935/64) ⇝ 117/8 | note:C#5 gain:0.24 clip:1 s:piano release:0.1 pan:0.587962962962963 ]", + "[ 29/2 ⇜ (467/32 → 935/64) ⇝ 117/8 | note:G#5 gain:0.24 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", + "[ 29/2 ⇜ (467/32 → 935/64) ⇝ 117/8 | note:B5 gain:0.24 clip:1 s:piano release:0.1 pan:0.6342592592592593 ]", + "[ 29/2 ⇜ (467/32 → 935/64) ⇝ 59/4 | note:Bb3 gain:0.12 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", + "[ 29/2 ⇜ (467/32 → 935/64) ⇝ 59/4 | note:Eb4 gain:0.12 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", + "[ 29/2 ⇜ (467/32 → 935/64) ⇝ 59/4 | note:E4 gain:0.12 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", + "[ 29/2 ⇜ (467/32 → 935/64) ⇝ 59/4 | note:Ab4 gain:0.12 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", + "[ 29/2 ⇜ (467/32 → 935/64) ⇝ 59/4 | note:F#2 gain:0.24 clip:1 s:piano release:0.1 pan:0.4444444444444444 ]", + "[ 29/2 ⇜ (935/64 → 117/8) | note:C#5 gain:0.29857864376269183 clip:1 s:piano release:0.1 pan:0.587962962962963 ]", + "[ 29/2 ⇜ (935/64 → 117/8) | note:G#5 gain:0.29857864376269183 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", + "[ 29/2 ⇜ (935/64 → 117/8) | note:B5 gain:0.29857864376269183 clip:1 s:piano release:0.1 pan:0.6342592592592593 ]", + "[ 29/2 ⇜ (935/64 → 117/8) ⇝ 59/4 | note:Bb3 gain:0.14928932188134592 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", + "[ 29/2 ⇜ (935/64 → 117/8) ⇝ 59/4 | note:Eb4 gain:0.14928932188134592 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", + "[ 29/2 ⇜ (935/64 → 117/8) ⇝ 59/4 | note:E4 gain:0.14928932188134592 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", + "[ 29/2 ⇜ (935/64 → 117/8) ⇝ 59/4 | note:Ab4 gain:0.14928932188134592 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", + "[ 29/2 ⇜ (935/64 → 117/8) ⇝ 59/4 | note:F#2 gain:0.29857864376269183 clip:1 s:piano release:0.1 pan:0.4444444444444444 ]", + "[ 29/2 ⇜ (117/8 → 937/64) ⇝ 59/4 | note:Bb3 gain:0.21999999999999786 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", + "[ 29/2 ⇜ (117/8 → 937/64) ⇝ 59/4 | note:Eb4 gain:0.21999999999999786 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", + "[ 29/2 ⇜ (117/8 → 937/64) ⇝ 59/4 | note:E4 gain:0.21999999999999786 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", + "[ 29/2 ⇜ (117/8 → 937/64) ⇝ 59/4 | note:Ab4 gain:0.21999999999999786 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", + "[ 29/2 ⇜ (117/8 → 937/64) ⇝ 59/4 | note:F#2 gain:0.43999999999999573 clip:1 s:piano release:0.1 pan:0.4444444444444444 ]", + "[ 29/2 ⇜ (937/64 → 469/32) ⇝ 59/4 | note:Bb3 gain:0.290710678118651 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", + "[ 29/2 ⇜ (937/64 → 469/32) ⇝ 59/4 | note:Eb4 gain:0.290710678118651 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", + "[ 29/2 ⇜ (937/64 → 469/32) ⇝ 59/4 | note:E4 gain:0.290710678118651 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", + "[ 29/2 ⇜ (937/64 → 469/32) ⇝ 59/4 | note:Ab4 gain:0.290710678118651 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", + "[ 29/2 ⇜ (937/64 → 469/32) ⇝ 59/4 | note:F#2 gain:0.581421356237302 clip:1 s:piano release:0.1 pan:0.4444444444444444 ]", + "[ 29/2 ⇜ (469/32 → 939/64) ⇝ 59/4 | note:Bb3 gain:0.32000000000000006 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", + "[ 29/2 ⇜ (469/32 → 939/64) ⇝ 59/4 | note:Eb4 gain:0.32000000000000006 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", + "[ 29/2 ⇜ (469/32 → 939/64) ⇝ 59/4 | note:E4 gain:0.32000000000000006 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", + "[ 29/2 ⇜ (469/32 → 939/64) ⇝ 59/4 | note:Ab4 gain:0.32000000000000006 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", + "[ 29/2 ⇜ (469/32 → 939/64) ⇝ 59/4 | note:F#2 gain:0.6400000000000001 clip:1 s:piano release:0.1 pan:0.4444444444444444 ]", + "[ 29/2 ⇜ (939/64 → 235/16) ⇝ 59/4 | note:Bb3 gain:0.2907106781186548 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", + "[ 29/2 ⇜ (939/64 → 235/16) ⇝ 59/4 | note:Eb4 gain:0.2907106781186548 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", + "[ 29/2 ⇜ (939/64 → 235/16) ⇝ 59/4 | note:E4 gain:0.2907106781186548 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", + "[ 29/2 ⇜ (939/64 → 235/16) ⇝ 59/4 | note:Ab4 gain:0.2907106781186548 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", + "[ 29/2 ⇜ (939/64 → 235/16) ⇝ 59/4 | note:F#2 gain:0.5814213562373096 clip:1 s:piano release:0.1 pan:0.4444444444444444 ]", + "[ 29/2 ⇜ (235/16 → 941/64) ⇝ 59/4 | note:Bb3 gain:0.22000000000000322 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", + "[ 29/2 ⇜ (235/16 → 941/64) ⇝ 59/4 | note:Eb4 gain:0.22000000000000322 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", + "[ 29/2 ⇜ (235/16 → 941/64) ⇝ 59/4 | note:E4 gain:0.22000000000000322 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", + "[ 29/2 ⇜ (235/16 → 941/64) ⇝ 59/4 | note:Ab4 gain:0.22000000000000322 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", + "[ 29/2 ⇜ (235/16 → 941/64) ⇝ 59/4 | note:F#2 gain:0.44000000000000644 clip:1 s:piano release:0.1 pan:0.4444444444444444 ]", + "[ 29/2 ⇜ (941/64 → 471/32) ⇝ 59/4 | note:Bb3 gain:0.14928932188134972 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", + "[ 29/2 ⇜ (941/64 → 471/32) ⇝ 59/4 | note:Eb4 gain:0.14928932188134972 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", + "[ 29/2 ⇜ (941/64 → 471/32) ⇝ 59/4 | note:E4 gain:0.14928932188134972 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", + "[ 29/2 ⇜ (941/64 → 471/32) ⇝ 59/4 | note:Ab4 gain:0.14928932188134972 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", + "[ 29/2 ⇜ (941/64 → 471/32) ⇝ 59/4 | note:F#2 gain:0.29857864376269944 clip:1 s:piano release:0.1 pan:0.4444444444444444 ]", + "[ 29/2 ⇜ (471/32 → 943/64) ⇝ 59/4 | note:Bb3 gain:0.12 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", + "[ 29/2 ⇜ (471/32 → 943/64) ⇝ 59/4 | note:Eb4 gain:0.12 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", + "[ 29/2 ⇜ (471/32 → 943/64) ⇝ 59/4 | note:E4 gain:0.12 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", + "[ 29/2 ⇜ (471/32 → 943/64) ⇝ 59/4 | note:Ab4 gain:0.12 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", + "[ 29/2 ⇜ (471/32 → 943/64) ⇝ 59/4 | note:F#2 gain:0.24 clip:1 s:piano release:0.1 pan:0.4444444444444444 ]", + "[ 29/2 ⇜ (943/64 → 59/4) | note:Bb3 gain:0.1492893218813444 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", + "[ 29/2 ⇜ (943/64 → 59/4) | note:Eb4 gain:0.1492893218813444 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", + "[ 29/2 ⇜ (943/64 → 59/4) | note:E4 gain:0.1492893218813444 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", + "[ 29/2 ⇜ (943/64 → 59/4) | note:Ab4 gain:0.1492893218813444 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", + "[ 29/2 ⇜ (943/64 → 59/4) | note:F#2 gain:0.2985786437626888 clip:1 s:piano release:0.1 pan:0.4444444444444444 ]", + "[ (59/4 → 945/64) ⇝ 119/8 | note:F#4 gain:0.43999999999999134 clip:1 s:piano release:0.1 pan:0.5555555555555556 ]", + "[ (59/4 → 945/64) ⇝ 119/8 | note:C#5 gain:0.43999999999999134 clip:1 s:piano release:0.1 pan:0.587962962962963 ]", + "[ (59/4 → 945/64) ⇝ 119/8 | note:E5 gain:0.43999999999999134 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", + "[ 59/4 ⇜ (945/64 → 473/32) ⇝ 119/8 | note:F#4 gain:0.581421356237299 clip:1 s:piano release:0.1 pan:0.5555555555555556 ]", + "[ 59/4 ⇜ (945/64 → 473/32) ⇝ 119/8 | note:C#5 gain:0.581421356237299 clip:1 s:piano release:0.1 pan:0.587962962962963 ]", + "[ 59/4 ⇜ (945/64 → 473/32) ⇝ 119/8 | note:E5 gain:0.581421356237299 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", + "[ 59/4 ⇜ (473/32 → 947/64) ⇝ 119/8 | note:F#4 gain:0.6400000000000001 clip:1 s:piano release:0.1 pan:0.5555555555555556 ]", + "[ 59/4 ⇜ (473/32 → 947/64) ⇝ 119/8 | note:C#5 gain:0.6400000000000001 clip:1 s:piano release:0.1 pan:0.587962962962963 ]", + "[ 59/4 ⇜ (473/32 → 947/64) ⇝ 119/8 | note:E5 gain:0.6400000000000001 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", + "[ (207/14 → 947/64) ⇝ 421/28 | note:70 gain:0.06400000000000002 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", + "[ (207/14 → 947/64) ⇝ 421/28 | note:75 gain:0.06400000000000002 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", + "[ (207/14 → 947/64) ⇝ 421/28 | note:76 gain:0.06400000000000002 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", + "[ (207/14 → 947/64) ⇝ 421/28 | note:80 gain:0.06400000000000002 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", + "[ 59/4 ⇜ (947/64 → 237/16) ⇝ 119/8 | note:F#4 gain:0.5814213562373127 clip:1 s:piano release:0.1 pan:0.5555555555555556 ]", + "[ 59/4 ⇜ (947/64 → 237/16) ⇝ 119/8 | note:C#5 gain:0.5814213562373127 clip:1 s:piano release:0.1 pan:0.587962962962963 ]", + "[ 59/4 ⇜ (947/64 → 237/16) ⇝ 119/8 | note:E5 gain:0.5814213562373127 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", + "[ 207/14 ⇜ (947/64 → 237/16) ⇝ 421/28 | note:70 gain:0.05814213562373127 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", + "[ 207/14 ⇜ (947/64 → 237/16) ⇝ 421/28 | note:75 gain:0.05814213562373127 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", + "[ 207/14 ⇜ (947/64 → 237/16) ⇝ 421/28 | note:76 gain:0.05814213562373127 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", + "[ 207/14 ⇜ (947/64 → 237/16) ⇝ 421/28 | note:80 gain:0.05814213562373127 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", + "[ 59/4 ⇜ (237/16 → 949/64) ⇝ 119/8 | note:F#4 gain:0.4400000000000108 clip:1 s:piano release:0.1 pan:0.5555555555555556 ]", + "[ 59/4 ⇜ (237/16 → 949/64) ⇝ 119/8 | note:C#5 gain:0.4400000000000108 clip:1 s:piano release:0.1 pan:0.587962962962963 ]", + "[ 59/4 ⇜ (237/16 → 949/64) ⇝ 119/8 | note:E5 gain:0.4400000000000108 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", + "[ 207/14 ⇜ (237/16 → 949/64) ⇝ 421/28 | note:70 gain:0.04400000000000109 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", + "[ 207/14 ⇜ (237/16 → 949/64) ⇝ 421/28 | note:75 gain:0.04400000000000109 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", + "[ 207/14 ⇜ (237/16 → 949/64) ⇝ 421/28 | note:76 gain:0.04400000000000109 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", + "[ 207/14 ⇜ (237/16 → 949/64) ⇝ 421/28 | note:80 gain:0.04400000000000109 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", + "[ 59/4 ⇜ (949/64 → 475/32) ⇝ 119/8 | note:F#4 gain:0.29857864376270254 clip:1 s:piano release:0.1 pan:0.5555555555555556 ]", + "[ 59/4 ⇜ (949/64 → 475/32) ⇝ 119/8 | note:C#5 gain:0.29857864376270254 clip:1 s:piano release:0.1 pan:0.587962962962963 ]", + "[ 59/4 ⇜ (949/64 → 475/32) ⇝ 119/8 | note:E5 gain:0.29857864376270254 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", + "[ 207/14 ⇜ (949/64 → 475/32) ⇝ 421/28 | note:70 gain:0.029857864376270256 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", + "[ 207/14 ⇜ (949/64 → 475/32) ⇝ 421/28 | note:75 gain:0.029857864376270256 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", + "[ 207/14 ⇜ (949/64 → 475/32) ⇝ 421/28 | note:76 gain:0.029857864376270256 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", + "[ 207/14 ⇜ (949/64 → 475/32) ⇝ 421/28 | note:80 gain:0.029857864376270256 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", + "[ 59/4 ⇜ (475/32 → 951/64) ⇝ 119/8 | note:F#4 gain:0.24 clip:1 s:piano release:0.1 pan:0.5555555555555556 ]", + "[ 59/4 ⇜ (475/32 → 951/64) ⇝ 119/8 | note:C#5 gain:0.24 clip:1 s:piano release:0.1 pan:0.587962962962963 ]", + "[ 59/4 ⇜ (475/32 → 951/64) ⇝ 119/8 | note:E5 gain:0.24 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", + "[ 207/14 ⇜ (475/32 → 951/64) ⇝ 421/28 | note:70 gain:0.024 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", + "[ 207/14 ⇜ (475/32 → 951/64) ⇝ 421/28 | note:75 gain:0.024 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", + "[ 207/14 ⇜ (475/32 → 951/64) ⇝ 421/28 | note:76 gain:0.024 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", + "[ 207/14 ⇜ (475/32 → 951/64) ⇝ 421/28 | note:80 gain:0.024 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", + "[ 59/4 ⇜ (951/64 → 119/8) | note:F#4 gain:0.2985786437626858 clip:1 s:piano release:0.1 pan:0.5555555555555556 ]", + "[ 59/4 ⇜ (951/64 → 119/8) | note:C#5 gain:0.2985786437626858 clip:1 s:piano release:0.1 pan:0.587962962962963 ]", + "[ 59/4 ⇜ (951/64 → 119/8) | note:E5 gain:0.2985786437626858 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", + "[ 207/14 ⇜ (951/64 → 119/8) ⇝ 421/28 | note:70 gain:0.02985786437626858 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", + "[ 207/14 ⇜ (951/64 → 119/8) ⇝ 421/28 | note:75 gain:0.02985786437626858 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", + "[ 207/14 ⇜ (951/64 → 119/8) ⇝ 421/28 | note:76 gain:0.02985786437626858 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", + "[ 207/14 ⇜ (951/64 → 119/8) ⇝ 421/28 | note:80 gain:0.02985786437626858 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", + "[ 207/14 ⇜ (119/8 → 953/64) ⇝ 421/28 | note:70 gain:0.04399999999999871 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", + "[ 207/14 ⇜ (119/8 → 953/64) ⇝ 421/28 | note:75 gain:0.04399999999999871 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", + "[ 207/14 ⇜ (119/8 → 953/64) ⇝ 421/28 | note:76 gain:0.04399999999999871 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", + "[ 207/14 ⇜ (119/8 → 953/64) ⇝ 421/28 | note:80 gain:0.04399999999999871 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", + "[ 207/14 ⇜ (953/64 → 477/32) ⇝ 421/28 | note:70 gain:0.05814213562373122 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", + "[ 207/14 ⇜ (953/64 → 477/32) ⇝ 421/28 | note:75 gain:0.05814213562373122 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", + "[ 207/14 ⇜ (953/64 → 477/32) ⇝ 421/28 | note:76 gain:0.05814213562373122 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", + "[ 207/14 ⇜ (953/64 → 477/32) ⇝ 421/28 | note:80 gain:0.05814213562373122 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", + "[ 207/14 ⇜ (477/32 → 955/64) ⇝ 421/28 | note:70 gain:0.06400000000000002 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", + "[ 207/14 ⇜ (477/32 → 955/64) ⇝ 421/28 | note:75 gain:0.06400000000000002 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", + "[ 207/14 ⇜ (477/32 → 955/64) ⇝ 421/28 | note:76 gain:0.06400000000000002 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", + "[ 207/14 ⇜ (477/32 → 955/64) ⇝ 421/28 | note:80 gain:0.06400000000000002 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", + "[ 207/14 ⇜ (955/64 → 239/16) ⇝ 421/28 | note:70 gain:0.058142135623731585 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", + "[ 207/14 ⇜ (955/64 → 239/16) ⇝ 421/28 | note:75 gain:0.058142135623731585 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", + "[ 207/14 ⇜ (955/64 → 239/16) ⇝ 421/28 | note:76 gain:0.058142135623731585 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", + "[ 207/14 ⇜ (955/64 → 239/16) ⇝ 421/28 | note:80 gain:0.058142135623731585 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", + "[ 207/14 ⇜ (239/16 → 957/64) ⇝ 421/28 | note:70 gain:0.04400000000000152 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", + "[ 207/14 ⇜ (239/16 → 957/64) ⇝ 421/28 | note:75 gain:0.04400000000000152 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", + "[ 207/14 ⇜ (239/16 → 957/64) ⇝ 421/28 | note:76 gain:0.04400000000000152 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", + "[ 207/14 ⇜ (239/16 → 957/64) ⇝ 421/28 | note:80 gain:0.04400000000000152 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", + "[ 207/14 ⇜ (957/64 → 479/32) ⇝ 421/28 | note:70 gain:0.02985786437626895 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", + "[ 207/14 ⇜ (957/64 → 479/32) ⇝ 421/28 | note:75 gain:0.02985786437626895 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", + "[ 207/14 ⇜ (957/64 → 479/32) ⇝ 421/28 | note:76 gain:0.02985786437626895 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", + "[ 207/14 ⇜ (957/64 → 479/32) ⇝ 421/28 | note:80 gain:0.02985786437626895 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", + "[ 207/14 ⇜ (479/32 → 959/64) ⇝ 421/28 | note:70 gain:0.024 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", + "[ 207/14 ⇜ (479/32 → 959/64) ⇝ 421/28 | note:75 gain:0.024 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", + "[ 207/14 ⇜ (479/32 → 959/64) ⇝ 421/28 | note:76 gain:0.024 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", + "[ 207/14 ⇜ (479/32 → 959/64) ⇝ 421/28 | note:80 gain:0.024 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", + "[ 207/14 ⇜ (959/64 → 15/1) ⇝ 421/28 | note:70 gain:0.029857864376268268 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", + "[ 207/14 ⇜ (959/64 → 15/1) ⇝ 421/28 | note:75 gain:0.029857864376268268 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", + "[ 207/14 ⇜ (959/64 → 15/1) ⇝ 421/28 | note:76 gain:0.029857864376268268 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", + "[ 207/14 ⇜ (959/64 → 15/1) ⇝ 421/28 | note:80 gain:0.029857864376268268 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", + "[ 207/14 ⇜ (15/1 → 961/64) ⇝ 421/28 | note:70 gain:0.04399999999999828 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", + "[ 207/14 ⇜ (15/1 → 961/64) ⇝ 421/28 | note:75 gain:0.04399999999999828 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", + "[ 207/14 ⇜ (15/1 → 961/64) ⇝ 421/28 | note:76 gain:0.04399999999999828 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", + "[ 207/14 ⇜ (15/1 → 961/64) ⇝ 421/28 | note:80 gain:0.04399999999999828 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", + "[ (15/1 → 961/64) ⇝ 61/4 | note:F#2 gain:0.43999999999998274 clip:1 s:piano release:0.1 pan:0.4444444444444444 ]", + "[ 207/14 ⇜ (961/64 → 481/32) ⇝ 421/28 | note:70 gain:0.0581421356237309 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", + "[ 207/14 ⇜ (961/64 → 481/32) ⇝ 421/28 | note:75 gain:0.0581421356237309 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", + "[ 207/14 ⇜ (961/64 → 481/32) ⇝ 421/28 | note:76 gain:0.0581421356237309 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", + "[ 207/14 ⇜ (961/64 → 481/32) ⇝ 421/28 | note:80 gain:0.0581421356237309 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", + "[ 15/1 ⇜ (961/64 → 481/32) ⇝ 61/4 | note:F#2 gain:0.581421356237309 clip:1 s:piano release:0.1 pan:0.4444444444444444 ]", + "[ 207/14 ⇜ (481/32 → 421/28) | note:70 gain:0.06400000000000002 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", + "[ 207/14 ⇜ (481/32 → 421/28) | note:75 gain:0.06400000000000002 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", + "[ 207/14 ⇜ (481/32 → 421/28) | note:76 gain:0.06400000000000002 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", + "[ 207/14 ⇜ (481/32 → 421/28) | note:80 gain:0.06400000000000002 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", + "[ 15/1 ⇜ (481/32 → 963/64) ⇝ 61/4 | note:F#2 gain:0.6400000000000001 clip:1 s:piano release:0.1 pan:0.4444444444444444 ]", + "[ 15/1 ⇜ (963/64 → 241/16) ⇝ 61/4 | note:F#2 gain:0.5814213562373188 clip:1 s:piano release:0.1 pan:0.4444444444444444 ]", + "[ 15/1 ⇜ (241/16 → 965/64) ⇝ 61/4 | note:F#2 gain:0.43999999999999667 clip:1 s:piano release:0.1 pan:0.4444444444444444 ]", + "[ 15/1 ⇜ (965/64 → 483/32) ⇝ 61/4 | note:F#2 gain:0.2985786437626925 clip:1 s:piano release:0.1 pan:0.4444444444444444 ]", + "[ 15/1 ⇜ (483/32 → 967/64) ⇝ 61/4 | note:F#2 gain:0.24 clip:1 s:piano release:0.1 pan:0.4444444444444444 ]", + "[ 15/1 ⇜ (967/64 → 121/8) ⇝ 61/4 | note:F#2 gain:0.2985786437626796 clip:1 s:piano release:0.1 pan:0.4444444444444444 ]", + "[ 15/1 ⇜ (121/8 → 969/64) ⇝ 61/4 | note:F#2 gain:0.4400000000000012 clip:1 s:piano release:0.1 pan:0.4444444444444444 ]", + "[ (121/8 → 969/64) ⇝ 61/4 | note:F#4 gain:0.4400000000000012 clip:1 s:piano release:0.1 pan:0.5555555555555556 ]", + "[ (121/8 → 969/64) ⇝ 61/4 | note:C#5 gain:0.4400000000000012 clip:1 s:piano release:0.1 pan:0.587962962962963 ]", + "[ (121/8 → 969/64) ⇝ 61/4 | note:E5 gain:0.4400000000000012 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", + "[ 15/1 ⇜ (969/64 → 485/32) ⇝ 61/4 | note:F#2 gain:0.581421356237306 clip:1 s:piano release:0.1 pan:0.4444444444444444 ]", + "[ 121/8 ⇜ (969/64 → 485/32) ⇝ 61/4 | note:F#4 gain:0.581421356237306 clip:1 s:piano release:0.1 pan:0.5555555555555556 ]", + "[ 121/8 ⇜ (969/64 → 485/32) ⇝ 61/4 | note:C#5 gain:0.581421356237306 clip:1 s:piano release:0.1 pan:0.587962962962963 ]", + "[ 121/8 ⇜ (969/64 → 485/32) ⇝ 61/4 | note:E5 gain:0.581421356237306 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", + "[ 15/1 ⇜ (485/32 → 971/64) ⇝ 61/4 | note:F#2 gain:0.6400000000000001 clip:1 s:piano release:0.1 pan:0.4444444444444444 ]", + "[ 121/8 ⇜ (485/32 → 971/64) ⇝ 61/4 | note:F#4 gain:0.6400000000000001 clip:1 s:piano release:0.1 pan:0.5555555555555556 ]", + "[ 121/8 ⇜ (485/32 → 971/64) ⇝ 61/4 | note:C#5 gain:0.6400000000000001 clip:1 s:piano release:0.1 pan:0.587962962962963 ]", + "[ 121/8 ⇜ (485/32 → 971/64) ⇝ 61/4 | note:E5 gain:0.6400000000000001 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", + "[ 15/1 ⇜ (971/64 → 243/16) ⇝ 61/4 | note:F#2 gain:0.5814213562373058 clip:1 s:piano release:0.1 pan:0.4444444444444444 ]", + "[ 121/8 ⇜ (971/64 → 243/16) ⇝ 61/4 | note:F#4 gain:0.5814213562373058 clip:1 s:piano release:0.1 pan:0.5555555555555556 ]", + "[ 121/8 ⇜ (971/64 → 243/16) ⇝ 61/4 | note:C#5 gain:0.5814213562373058 clip:1 s:piano release:0.1 pan:0.587962962962963 ]", + "[ 121/8 ⇜ (971/64 → 243/16) ⇝ 61/4 | note:E5 gain:0.5814213562373058 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", + "[ 15/1 ⇜ (243/16 → 973/64) ⇝ 61/4 | note:F#2 gain:0.44000000000000095 clip:1 s:piano release:0.1 pan:0.4444444444444444 ]", + "[ 121/8 ⇜ (243/16 → 973/64) ⇝ 61/4 | note:F#4 gain:0.44000000000000095 clip:1 s:piano release:0.1 pan:0.5555555555555556 ]", + "[ 121/8 ⇜ (243/16 → 973/64) ⇝ 61/4 | note:C#5 gain:0.44000000000000095 clip:1 s:piano release:0.1 pan:0.587962962962963 ]", + "[ 121/8 ⇜ (243/16 → 973/64) ⇝ 61/4 | note:E5 gain:0.44000000000000095 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", + "[ 15/1 ⇜ (973/64 → 487/32) ⇝ 61/4 | note:F#2 gain:0.2985786437626956 clip:1 s:piano release:0.1 pan:0.4444444444444444 ]", + "[ 121/8 ⇜ (973/64 → 487/32) ⇝ 61/4 | note:F#4 gain:0.2985786437626956 clip:1 s:piano release:0.1 pan:0.5555555555555556 ]", + "[ 121/8 ⇜ (973/64 → 487/32) ⇝ 61/4 | note:C#5 gain:0.2985786437626956 clip:1 s:piano release:0.1 pan:0.587962962962963 ]", + "[ 121/8 ⇜ (973/64 → 487/32) ⇝ 61/4 | note:E5 gain:0.2985786437626956 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", + "[ 15/1 ⇜ (487/32 → 975/64) ⇝ 61/4 | note:F#2 gain:0.24 clip:1 s:piano release:0.1 pan:0.4444444444444444 ]", + "[ 121/8 ⇜ (487/32 → 975/64) ⇝ 61/4 | note:F#4 gain:0.24 clip:1 s:piano release:0.1 pan:0.5555555555555556 ]", + "[ 121/8 ⇜ (487/32 → 975/64) ⇝ 61/4 | note:C#5 gain:0.24 clip:1 s:piano release:0.1 pan:0.587962962962963 ]", + "[ 121/8 ⇜ (487/32 → 975/64) ⇝ 61/4 | note:E5 gain:0.24 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", + "[ 15/1 ⇜ (975/64 → 61/4) | note:F#2 gain:0.29857864376269266 clip:1 s:piano release:0.1 pan:0.4444444444444444 ]", + "[ 121/8 ⇜ (975/64 → 61/4) | note:F#4 gain:0.29857864376269266 clip:1 s:piano release:0.1 pan:0.5555555555555556 ]", + "[ 121/8 ⇜ (975/64 → 61/4) | note:C#5 gain:0.29857864376269266 clip:1 s:piano release:0.1 pan:0.587962962962963 ]", + "[ 121/8 ⇜ (975/64 → 61/4) | note:E5 gain:0.29857864376269266 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", + "[ (61/4 → 977/64) ⇝ 31/2 | note:Bb3 gain:0.21999999999999842 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", + "[ (61/4 → 977/64) ⇝ 31/2 | note:Eb4 gain:0.21999999999999842 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", + "[ (61/4 → 977/64) ⇝ 31/2 | note:E4 gain:0.21999999999999842 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", + "[ (61/4 → 977/64) ⇝ 31/2 | note:Ab4 gain:0.21999999999999842 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", + "[ 61/4 ⇜ (977/64 → 489/32) ⇝ 31/2 | note:Bb3 gain:0.2907106781186514 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", + "[ 61/4 ⇜ (977/64 → 489/32) ⇝ 31/2 | note:Eb4 gain:0.2907106781186514 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", + "[ 61/4 ⇜ (977/64 → 489/32) ⇝ 31/2 | note:E4 gain:0.2907106781186514 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", + "[ 61/4 ⇜ (977/64 → 489/32) ⇝ 31/2 | note:Ab4 gain:0.2907106781186514 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", + "[ 61/4 ⇜ (489/32 → 979/64) ⇝ 31/2 | note:Bb3 gain:0.32000000000000006 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", + "[ 61/4 ⇜ (489/32 → 979/64) ⇝ 31/2 | note:Eb4 gain:0.32000000000000006 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", + "[ 61/4 ⇜ (489/32 → 979/64) ⇝ 31/2 | note:E4 gain:0.32000000000000006 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", + "[ 61/4 ⇜ (489/32 → 979/64) ⇝ 31/2 | note:Ab4 gain:0.32000000000000006 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", + "[ 61/4 ⇜ (979/64 → 245/16) ⇝ 31/2 | note:Bb3 gain:0.2907106781186545 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", + "[ 61/4 ⇜ (979/64 → 245/16) ⇝ 31/2 | note:Eb4 gain:0.2907106781186545 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", + "[ 61/4 ⇜ (979/64 → 245/16) ⇝ 31/2 | note:E4 gain:0.2907106781186545 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", + "[ 61/4 ⇜ (979/64 → 245/16) ⇝ 31/2 | note:Ab4 gain:0.2907106781186545 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", + "[ 61/4 ⇜ (245/16 → 981/64) ⇝ 31/2 | note:Bb3 gain:0.22000000000000264 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", + "[ 61/4 ⇜ (245/16 → 981/64) ⇝ 31/2 | note:Eb4 gain:0.22000000000000264 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", + "[ 61/4 ⇜ (245/16 → 981/64) ⇝ 31/2 | note:E4 gain:0.22000000000000264 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", + "[ 61/4 ⇜ (245/16 → 981/64) ⇝ 31/2 | note:Ab4 gain:0.22000000000000264 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", + "[ 61/4 ⇜ (981/64 → 491/32) ⇝ 31/2 | note:Bb3 gain:0.14928932188134933 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", + "[ 61/4 ⇜ (981/64 → 491/32) ⇝ 31/2 | note:Eb4 gain:0.14928932188134933 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", + "[ 61/4 ⇜ (981/64 → 491/32) ⇝ 31/2 | note:E4 gain:0.14928932188134933 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", + "[ 61/4 ⇜ (981/64 → 491/32) ⇝ 31/2 | note:Ab4 gain:0.14928932188134933 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", + "[ 61/4 ⇜ (491/32 → 983/64) ⇝ 31/2 | note:Bb3 gain:0.12 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", + "[ 61/4 ⇜ (491/32 → 983/64) ⇝ 31/2 | note:Eb4 gain:0.12 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", + "[ 61/4 ⇜ (491/32 → 983/64) ⇝ 31/2 | note:E4 gain:0.12 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", + "[ 61/4 ⇜ (491/32 → 983/64) ⇝ 31/2 | note:Ab4 gain:0.12 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", + "[ 61/4 ⇜ (983/64 → 123/8) ⇝ 31/2 | note:Bb3 gain:0.1492893218813448 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", + "[ 61/4 ⇜ (983/64 → 123/8) ⇝ 31/2 | note:Eb4 gain:0.1492893218813448 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", + "[ 61/4 ⇜ (983/64 → 123/8) ⇝ 31/2 | note:E4 gain:0.1492893218813448 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", + "[ 61/4 ⇜ (983/64 → 123/8) ⇝ 31/2 | note:Ab4 gain:0.1492893218813448 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", + "[ 61/4 ⇜ (123/8 → 985/64) ⇝ 31/2 | note:Bb3 gain:0.2199999999999963 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", + "[ 61/4 ⇜ (123/8 → 985/64) ⇝ 31/2 | note:Eb4 gain:0.2199999999999963 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", + "[ 61/4 ⇜ (123/8 → 985/64) ⇝ 31/2 | note:E4 gain:0.2199999999999963 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", + "[ 61/4 ⇜ (123/8 → 985/64) ⇝ 31/2 | note:Ab4 gain:0.2199999999999963 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", + "[ 61/4 ⇜ (985/64 → 493/32) ⇝ 31/2 | note:Bb3 gain:0.2907106781186499 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", + "[ 61/4 ⇜ (985/64 → 493/32) ⇝ 31/2 | note:Eb4 gain:0.2907106781186499 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", + "[ 61/4 ⇜ (985/64 → 493/32) ⇝ 31/2 | note:E4 gain:0.2907106781186499 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", + "[ 61/4 ⇜ (985/64 → 493/32) ⇝ 31/2 | note:Ab4 gain:0.2907106781186499 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", + "[ 61/4 ⇜ (493/32 → 987/64) ⇝ 31/2 | note:Bb3 gain:0.32000000000000006 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", + "[ 61/4 ⇜ (493/32 → 987/64) ⇝ 31/2 | note:Eb4 gain:0.32000000000000006 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", + "[ 61/4 ⇜ (493/32 → 987/64) ⇝ 31/2 | note:E4 gain:0.32000000000000006 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", + "[ 61/4 ⇜ (493/32 → 987/64) ⇝ 31/2 | note:Ab4 gain:0.32000000000000006 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", + "[ 61/4 ⇜ (987/64 → 247/16) ⇝ 31/2 | note:Bb3 gain:0.290710678118656 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", + "[ 61/4 ⇜ (987/64 → 247/16) ⇝ 31/2 | note:Eb4 gain:0.290710678118656 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", + "[ 61/4 ⇜ (987/64 → 247/16) ⇝ 31/2 | note:E4 gain:0.290710678118656 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", + "[ 61/4 ⇜ (987/64 → 247/16) ⇝ 31/2 | note:Ab4 gain:0.290710678118656 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", + "[ 61/4 ⇜ (247/16 → 989/64) ⇝ 31/2 | note:Bb3 gain:0.22000000000000483 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", + "[ 61/4 ⇜ (247/16 → 989/64) ⇝ 31/2 | note:Eb4 gain:0.22000000000000483 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", + "[ 61/4 ⇜ (247/16 → 989/64) ⇝ 31/2 | note:E4 gain:0.22000000000000483 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", + "[ 61/4 ⇜ (247/16 → 989/64) ⇝ 31/2 | note:Ab4 gain:0.22000000000000483 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", + "[ 61/4 ⇜ (989/64 → 495/32) ⇝ 31/2 | note:Bb3 gain:0.14928932188135083 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", + "[ 61/4 ⇜ (989/64 → 495/32) ⇝ 31/2 | note:Eb4 gain:0.14928932188135083 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", + "[ 61/4 ⇜ (989/64 → 495/32) ⇝ 31/2 | note:E4 gain:0.14928932188135083 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", + "[ 61/4 ⇜ (989/64 → 495/32) ⇝ 31/2 | note:Ab4 gain:0.14928932188135083 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", + "[ 61/4 ⇜ (495/32 → 991/64) ⇝ 31/2 | note:Bb3 gain:0.12 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", + "[ 61/4 ⇜ (495/32 → 991/64) ⇝ 31/2 | note:Eb4 gain:0.12 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", + "[ 61/4 ⇜ (495/32 → 991/64) ⇝ 31/2 | note:E4 gain:0.12 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", + "[ 61/4 ⇜ (495/32 → 991/64) ⇝ 31/2 | note:Ab4 gain:0.12 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", + "[ 61/4 ⇜ (991/64 → 31/2) | note:Bb3 gain:0.14928932188134328 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", + "[ 61/4 ⇜ (991/64 → 31/2) | note:Eb4 gain:0.14928932188134328 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", + "[ 61/4 ⇜ (991/64 → 31/2) | note:E4 gain:0.14928932188134328 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", + "[ 61/4 ⇜ (991/64 → 31/2) | note:Ab4 gain:0.14928932188134328 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", + "[ (31/2 → 993/64) ⇝ 125/8 | note:C#5 gain:0.43999999999998823 clip:1 s:piano release:0.1 pan:0.587962962962963 ]", + "[ (31/2 → 993/64) ⇝ 125/8 | note:G#5 gain:0.43999999999998823 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", + "[ (31/2 → 993/64) ⇝ 125/8 | note:B5 gain:0.43999999999998823 clip:1 s:piano release:0.1 pan:0.6342592592592593 ]", + "[ (31/2 → 993/64) ⇝ 63/4 | note:F#2 gain:0.43999999999998823 clip:1 s:piano release:0.1 pan:0.4444444444444444 ]", + "[ 31/2 ⇜ (993/64 → 497/32) ⇝ 125/8 | note:C#5 gain:0.5814213562373128 clip:1 s:piano release:0.1 pan:0.587962962962963 ]", + "[ 31/2 ⇜ (993/64 → 497/32) ⇝ 125/8 | note:G#5 gain:0.5814213562373128 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", + "[ 31/2 ⇜ (993/64 → 497/32) ⇝ 125/8 | note:B5 gain:0.5814213562373128 clip:1 s:piano release:0.1 pan:0.6342592592592593 ]", + "[ 31/2 ⇜ (993/64 → 497/32) ⇝ 63/4 | note:F#2 gain:0.5814213562373128 clip:1 s:piano release:0.1 pan:0.4444444444444444 ]", + "[ 31/2 ⇜ (497/32 → 995/64) ⇝ 125/8 | note:C#5 gain:0.6400000000000001 clip:1 s:piano release:0.1 pan:0.587962962962963 ]", + "[ 31/2 ⇜ (497/32 → 995/64) ⇝ 125/8 | note:G#5 gain:0.6400000000000001 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", + "[ 31/2 ⇜ (497/32 → 995/64) ⇝ 125/8 | note:B5 gain:0.6400000000000001 clip:1 s:piano release:0.1 pan:0.6342592592592593 ]", + "[ 31/2 ⇜ (497/32 → 995/64) ⇝ 63/4 | note:F#2 gain:0.6400000000000001 clip:1 s:piano release:0.1 pan:0.4444444444444444 ]", + "[ (435/28 → 995/64) ⇝ 221/14 | note:70 gain:0.06400000000000002 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", + "[ (435/28 → 995/64) ⇝ 221/14 | note:75 gain:0.06400000000000002 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", + "[ (435/28 → 995/64) ⇝ 221/14 | note:76 gain:0.06400000000000002 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", + "[ (435/28 → 995/64) ⇝ 221/14 | note:80 gain:0.06400000000000002 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", + "[ 31/2 ⇜ (995/64 → 249/16) ⇝ 125/8 | note:C#5 gain:0.581421356237315 clip:1 s:piano release:0.1 pan:0.587962962962963 ]", + "[ 31/2 ⇜ (995/64 → 249/16) ⇝ 125/8 | note:G#5 gain:0.581421356237315 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", + "[ 31/2 ⇜ (995/64 → 249/16) ⇝ 125/8 | note:B5 gain:0.581421356237315 clip:1 s:piano release:0.1 pan:0.6342592592592593 ]", + "[ 31/2 ⇜ (995/64 → 249/16) ⇝ 63/4 | note:F#2 gain:0.581421356237315 clip:1 s:piano release:0.1 pan:0.4444444444444444 ]", + "[ 435/28 ⇜ (995/64 → 249/16) ⇝ 221/14 | note:70 gain:0.058142135623731495 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", + "[ 435/28 ⇜ (995/64 → 249/16) ⇝ 221/14 | note:75 gain:0.058142135623731495 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", + "[ 435/28 ⇜ (995/64 → 249/16) ⇝ 221/14 | note:76 gain:0.058142135623731495 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", + "[ 435/28 ⇜ (995/64 → 249/16) ⇝ 221/14 | note:80 gain:0.058142135623731495 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", + "[ 31/2 ⇜ (249/16 → 997/64) ⇝ 125/8 | note:C#5 gain:0.44000000000001394 clip:1 s:piano release:0.1 pan:0.587962962962963 ]", + "[ 31/2 ⇜ (249/16 → 997/64) ⇝ 125/8 | note:G#5 gain:0.44000000000001394 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", + "[ 31/2 ⇜ (249/16 → 997/64) ⇝ 125/8 | note:B5 gain:0.44000000000001394 clip:1 s:piano release:0.1 pan:0.6342592592592593 ]", + "[ 31/2 ⇜ (249/16 → 997/64) ⇝ 63/4 | note:F#2 gain:0.44000000000001394 clip:1 s:piano release:0.1 pan:0.4444444444444444 ]", + "[ 435/28 ⇜ (249/16 → 997/64) ⇝ 221/14 | note:70 gain:0.0440000000000014 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", + "[ 435/28 ⇜ (249/16 → 997/64) ⇝ 221/14 | note:75 gain:0.0440000000000014 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", + "[ 435/28 ⇜ (249/16 → 997/64) ⇝ 221/14 | note:76 gain:0.0440000000000014 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", + "[ 435/28 ⇜ (249/16 → 997/64) ⇝ 221/14 | note:80 gain:0.0440000000000014 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", + "[ 31/2 ⇜ (997/64 → 499/32) ⇝ 125/8 | note:C#5 gain:0.29857864376268867 clip:1 s:piano release:0.1 pan:0.587962962962963 ]", + "[ 31/2 ⇜ (997/64 → 499/32) ⇝ 125/8 | note:G#5 gain:0.29857864376268867 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", + "[ 31/2 ⇜ (997/64 → 499/32) ⇝ 125/8 | note:B5 gain:0.29857864376268867 clip:1 s:piano release:0.1 pan:0.6342592592592593 ]", + "[ 31/2 ⇜ (997/64 → 499/32) ⇝ 63/4 | note:F#2 gain:0.29857864376268867 clip:1 s:piano release:0.1 pan:0.4444444444444444 ]", + "[ 435/28 ⇜ (997/64 → 499/32) ⇝ 221/14 | note:70 gain:0.029857864376268868 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", + "[ 435/28 ⇜ (997/64 → 499/32) ⇝ 221/14 | note:75 gain:0.029857864376268868 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", + "[ 435/28 ⇜ (997/64 → 499/32) ⇝ 221/14 | note:76 gain:0.029857864376268868 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", + "[ 435/28 ⇜ (997/64 → 499/32) ⇝ 221/14 | note:80 gain:0.029857864376268868 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", + "[ 31/2 ⇜ (499/32 → 999/64) ⇝ 125/8 | note:C#5 gain:0.24 clip:1 s:piano release:0.1 pan:0.587962962962963 ]", + "[ 31/2 ⇜ (499/32 → 999/64) ⇝ 125/8 | note:G#5 gain:0.24 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", + "[ 31/2 ⇜ (499/32 → 999/64) ⇝ 125/8 | note:B5 gain:0.24 clip:1 s:piano release:0.1 pan:0.6342592592592593 ]", + "[ 31/2 ⇜ (499/32 → 999/64) ⇝ 63/4 | note:F#2 gain:0.24 clip:1 s:piano release:0.1 pan:0.4444444444444444 ]", + "[ 435/28 ⇜ (499/32 → 999/64) ⇝ 221/14 | note:70 gain:0.024 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", + "[ 435/28 ⇜ (499/32 → 999/64) ⇝ 221/14 | note:75 gain:0.024 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", + "[ 435/28 ⇜ (499/32 → 999/64) ⇝ 221/14 | note:76 gain:0.024 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", + "[ 435/28 ⇜ (499/32 → 999/64) ⇝ 221/14 | note:80 gain:0.024 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", + "[ 31/2 ⇜ (999/64 → 125/8) | note:C#5 gain:0.29857864376268356 clip:1 s:piano release:0.1 pan:0.587962962962963 ]", + "[ 31/2 ⇜ (999/64 → 125/8) | note:G#5 gain:0.29857864376268356 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", + "[ 31/2 ⇜ (999/64 → 125/8) | note:B5 gain:0.29857864376268356 clip:1 s:piano release:0.1 pan:0.6342592592592593 ]", + "[ 31/2 ⇜ (999/64 → 125/8) ⇝ 63/4 | note:F#2 gain:0.29857864376268356 clip:1 s:piano release:0.1 pan:0.4444444444444444 ]", + "[ 435/28 ⇜ (999/64 → 125/8) ⇝ 221/14 | note:70 gain:0.029857864376268358 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", + "[ 435/28 ⇜ (999/64 → 125/8) ⇝ 221/14 | note:75 gain:0.029857864376268358 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", + "[ 435/28 ⇜ (999/64 → 125/8) ⇝ 221/14 | note:76 gain:0.029857864376268358 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", + "[ 435/28 ⇜ (999/64 → 125/8) ⇝ 221/14 | note:80 gain:0.029857864376268358 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", + "[ 31/2 ⇜ (125/8 → 1001/64) ⇝ 63/4 | note:F#2 gain:0.4399999999999839 clip:1 s:piano release:0.1 pan:0.4444444444444444 ]", + "[ 435/28 ⇜ (125/8 → 1001/64) ⇝ 221/14 | note:70 gain:0.043999999999998395 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", + "[ 435/28 ⇜ (125/8 → 1001/64) ⇝ 221/14 | note:75 gain:0.043999999999998395 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", + "[ 435/28 ⇜ (125/8 → 1001/64) ⇝ 221/14 | note:76 gain:0.043999999999998395 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", + "[ 435/28 ⇜ (125/8 → 1001/64) ⇝ 221/14 | note:80 gain:0.043999999999998395 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", + "[ 31/2 ⇜ (1001/64 → 501/32) ⇝ 63/4 | note:F#2 gain:0.5814213562373098 clip:1 s:piano release:0.1 pan:0.4444444444444444 ]", + "[ 435/28 ⇜ (1001/64 → 501/32) ⇝ 221/14 | note:70 gain:0.05814213562373099 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", + "[ 435/28 ⇜ (1001/64 → 501/32) ⇝ 221/14 | note:75 gain:0.05814213562373099 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", + "[ 435/28 ⇜ (1001/64 → 501/32) ⇝ 221/14 | note:76 gain:0.05814213562373099 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", + "[ 435/28 ⇜ (1001/64 → 501/32) ⇝ 221/14 | note:80 gain:0.05814213562373099 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", + "[ 31/2 ⇜ (501/32 → 1003/64) ⇝ 63/4 | note:F#2 gain:0.6400000000000001 clip:1 s:piano release:0.1 pan:0.4444444444444444 ]", + "[ 435/28 ⇜ (501/32 → 1003/64) ⇝ 221/14 | note:70 gain:0.06400000000000002 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", + "[ 435/28 ⇜ (501/32 → 1003/64) ⇝ 221/14 | note:75 gain:0.06400000000000002 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", + "[ 435/28 ⇜ (501/32 → 1003/64) ⇝ 221/14 | note:76 gain:0.06400000000000002 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", + "[ 435/28 ⇜ (501/32 → 1003/64) ⇝ 221/14 | note:80 gain:0.06400000000000002 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", + "[ 31/2 ⇜ (1003/64 → 251/16) ⇝ 63/4 | note:F#2 gain:0.5814213562373179 clip:1 s:piano release:0.1 pan:0.4444444444444444 ]", + "[ 435/28 ⇜ (1003/64 → 251/16) ⇝ 221/14 | note:70 gain:0.0581421356237318 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", + "[ 435/28 ⇜ (1003/64 → 251/16) ⇝ 221/14 | note:75 gain:0.0581421356237318 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", + "[ 435/28 ⇜ (1003/64 → 251/16) ⇝ 221/14 | note:76 gain:0.0581421356237318 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", + "[ 435/28 ⇜ (1003/64 → 251/16) ⇝ 221/14 | note:80 gain:0.0581421356237318 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", + "[ 31/2 ⇜ (251/16 → 1005/64) ⇝ 63/4 | note:F#2 gain:0.4399999999999955 clip:1 s:piano release:0.1 pan:0.4444444444444444 ]", + "[ 435/28 ⇜ (251/16 → 1005/64) ⇝ 221/14 | note:70 gain:0.04399999999999955 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", + "[ 435/28 ⇜ (251/16 → 1005/64) ⇝ 221/14 | note:75 gain:0.04399999999999955 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", + "[ 435/28 ⇜ (251/16 → 1005/64) ⇝ 221/14 | note:76 gain:0.04399999999999955 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", + "[ 435/28 ⇜ (251/16 → 1005/64) ⇝ 221/14 | note:80 gain:0.04399999999999955 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", + "[ 31/2 ⇜ (1005/64 → 503/32) ⇝ 63/4 | note:F#2 gain:0.2985786437626917 clip:1 s:piano release:0.1 pan:0.4444444444444444 ]", + "[ 435/28 ⇜ (1005/64 → 503/32) ⇝ 221/14 | note:70 gain:0.029857864376269173 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", + "[ 435/28 ⇜ (1005/64 → 503/32) ⇝ 221/14 | note:75 gain:0.029857864376269173 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", + "[ 435/28 ⇜ (1005/64 → 503/32) ⇝ 221/14 | note:76 gain:0.029857864376269173 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", + "[ 435/28 ⇜ (1005/64 → 503/32) ⇝ 221/14 | note:80 gain:0.029857864376269173 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", + "[ 31/2 ⇜ (503/32 → 1007/64) ⇝ 63/4 | note:F#2 gain:0.24 clip:1 s:piano release:0.1 pan:0.4444444444444444 ]", + "[ 435/28 ⇜ (503/32 → 1007/64) ⇝ 221/14 | note:70 gain:0.024 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", + "[ 435/28 ⇜ (503/32 → 1007/64) ⇝ 221/14 | note:75 gain:0.024 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", + "[ 435/28 ⇜ (503/32 → 1007/64) ⇝ 221/14 | note:76 gain:0.024 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", + "[ 435/28 ⇜ (503/32 → 1007/64) ⇝ 221/14 | note:80 gain:0.024 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", + "[ 31/2 ⇜ (1007/64 → 63/4) | note:F#2 gain:0.29857864376268045 clip:1 s:piano release:0.1 pan:0.4444444444444444 ]", + "[ 435/28 ⇜ (1007/64 → 63/4) ⇝ 221/14 | note:70 gain:0.029857864376268046 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", + "[ 435/28 ⇜ (1007/64 → 63/4) ⇝ 221/14 | note:75 gain:0.029857864376268046 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", + "[ 435/28 ⇜ (1007/64 → 63/4) ⇝ 221/14 | note:76 gain:0.029857864376268046 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", + "[ 435/28 ⇜ (1007/64 → 63/4) ⇝ 221/14 | note:80 gain:0.029857864376268046 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", + "[ 435/28 ⇜ (63/4 → 1009/64) ⇝ 221/14 | note:70 gain:0.04400000000000024 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", + "[ 435/28 ⇜ (63/4 → 1009/64) ⇝ 221/14 | note:75 gain:0.04400000000000024 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", + "[ 435/28 ⇜ (63/4 → 1009/64) ⇝ 221/14 | note:76 gain:0.04400000000000024 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", + "[ 435/28 ⇜ (63/4 → 1009/64) ⇝ 221/14 | note:80 gain:0.04400000000000024 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", + "[ (63/4 → 1009/64) ⇝ 127/8 | note:C#5 gain:0.4400000000000024 clip:1 s:piano release:0.1 pan:0.587962962962963 ]", + "[ (63/4 → 1009/64) ⇝ 127/8 | note:G#5 gain:0.4400000000000024 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", + "[ (63/4 → 1009/64) ⇝ 127/8 | note:B5 gain:0.4400000000000024 clip:1 s:piano release:0.1 pan:0.6342592592592593 ]", + "[ (63/4 → 1009/64) ⇝ 16/1 | note:Bb3 gain:0.2200000000000012 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", + "[ (63/4 → 1009/64) ⇝ 16/1 | note:Eb4 gain:0.2200000000000012 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", + "[ (63/4 → 1009/64) ⇝ 16/1 | note:E4 gain:0.2200000000000012 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", + "[ (63/4 → 1009/64) ⇝ 16/1 | note:Ab4 gain:0.2200000000000012 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", + "[ 435/28 ⇜ (1009/64 → 505/32) ⇝ 221/14 | note:70 gain:0.05814213562373069 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", + "[ 435/28 ⇜ (1009/64 → 505/32) ⇝ 221/14 | note:75 gain:0.05814213562373069 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", + "[ 435/28 ⇜ (1009/64 → 505/32) ⇝ 221/14 | note:76 gain:0.05814213562373069 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", + "[ 435/28 ⇜ (1009/64 → 505/32) ⇝ 221/14 | note:80 gain:0.05814213562373069 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", + "[ 63/4 ⇜ (1009/64 → 505/32) ⇝ 127/8 | note:C#5 gain:0.5814213562373068 clip:1 s:piano release:0.1 pan:0.587962962962963 ]", + "[ 63/4 ⇜ (1009/64 → 505/32) ⇝ 127/8 | note:G#5 gain:0.5814213562373068 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", + "[ 63/4 ⇜ (1009/64 → 505/32) ⇝ 127/8 | note:B5 gain:0.5814213562373068 clip:1 s:piano release:0.1 pan:0.6342592592592593 ]", + "[ 63/4 ⇜ (1009/64 → 505/32) ⇝ 16/1 | note:Bb3 gain:0.2907106781186534 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", + "[ 63/4 ⇜ (1009/64 → 505/32) ⇝ 16/1 | note:Eb4 gain:0.2907106781186534 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", + "[ 63/4 ⇜ (1009/64 → 505/32) ⇝ 16/1 | note:E4 gain:0.2907106781186534 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", + "[ 63/4 ⇜ (1009/64 → 505/32) ⇝ 16/1 | note:Ab4 gain:0.2907106781186534 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", + "[ 435/28 ⇜ (505/32 → 221/14) | note:70 gain:0.06400000000000002 clip:1 s:piano release:0.1 pan:0.5740740740740741 ]", + "[ 435/28 ⇜ (505/32 → 221/14) | note:75 gain:0.06400000000000002 clip:1 s:piano release:0.1 pan:0.5972222222222222 ]", + "[ 435/28 ⇜ (505/32 → 221/14) | note:76 gain:0.06400000000000002 clip:1 s:piano release:0.1 pan:0.6018518518518519 ]", + "[ 435/28 ⇜ (505/32 → 221/14) | note:80 gain:0.06400000000000002 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", + "[ 63/4 ⇜ (505/32 → 1011/64) ⇝ 127/8 | note:C#5 gain:0.6400000000000001 clip:1 s:piano release:0.1 pan:0.587962962962963 ]", + "[ 63/4 ⇜ (505/32 → 1011/64) ⇝ 127/8 | note:G#5 gain:0.6400000000000001 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", + "[ 63/4 ⇜ (505/32 → 1011/64) ⇝ 127/8 | note:B5 gain:0.6400000000000001 clip:1 s:piano release:0.1 pan:0.6342592592592593 ]", + "[ 63/4 ⇜ (505/32 → 1011/64) ⇝ 16/1 | note:Bb3 gain:0.32000000000000006 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", + "[ 63/4 ⇜ (505/32 → 1011/64) ⇝ 16/1 | note:Eb4 gain:0.32000000000000006 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", + "[ 63/4 ⇜ (505/32 → 1011/64) ⇝ 16/1 | note:E4 gain:0.32000000000000006 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", + "[ 63/4 ⇜ (505/32 → 1011/64) ⇝ 16/1 | note:Ab4 gain:0.32000000000000006 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", + "[ 63/4 ⇜ (1011/64 → 253/16) ⇝ 127/8 | note:C#5 gain:0.581421356237321 clip:1 s:piano release:0.1 pan:0.587962962962963 ]", + "[ 63/4 ⇜ (1011/64 → 253/16) ⇝ 127/8 | note:G#5 gain:0.581421356237321 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", + "[ 63/4 ⇜ (1011/64 → 253/16) ⇝ 127/8 | note:B5 gain:0.581421356237321 clip:1 s:piano release:0.1 pan:0.6342592592592593 ]", + "[ 63/4 ⇜ (1011/64 → 253/16) ⇝ 16/1 | note:Bb3 gain:0.2907106781186605 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", + "[ 63/4 ⇜ (1011/64 → 253/16) ⇝ 16/1 | note:Eb4 gain:0.2907106781186605 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", + "[ 63/4 ⇜ (1011/64 → 253/16) ⇝ 16/1 | note:E4 gain:0.2907106781186605 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", + "[ 63/4 ⇜ (1011/64 → 253/16) ⇝ 16/1 | note:Ab4 gain:0.2907106781186605 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", + "[ 63/4 ⇜ (253/16 → 1013/64) ⇝ 127/8 | note:C#5 gain:0.4399999999999998 clip:1 s:piano release:0.1 pan:0.587962962962963 ]", + "[ 63/4 ⇜ (253/16 → 1013/64) ⇝ 127/8 | note:G#5 gain:0.4399999999999998 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", + "[ 63/4 ⇜ (253/16 → 1013/64) ⇝ 127/8 | note:B5 gain:0.4399999999999998 clip:1 s:piano release:0.1 pan:0.6342592592592593 ]", + "[ 63/4 ⇜ (253/16 → 1013/64) ⇝ 16/1 | note:Bb3 gain:0.2199999999999999 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", + "[ 63/4 ⇜ (253/16 → 1013/64) ⇝ 16/1 | note:Eb4 gain:0.2199999999999999 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", + "[ 63/4 ⇜ (253/16 → 1013/64) ⇝ 16/1 | note:E4 gain:0.2199999999999999 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", + "[ 63/4 ⇜ (253/16 → 1013/64) ⇝ 16/1 | note:Ab4 gain:0.2199999999999999 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", + "[ 63/4 ⇜ (1013/64 → 507/32) ⇝ 127/8 | note:C#5 gain:0.2985786437626947 clip:1 s:piano release:0.1 pan:0.587962962962963 ]", + "[ 63/4 ⇜ (1013/64 → 507/32) ⇝ 127/8 | note:G#5 gain:0.2985786437626947 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", + "[ 63/4 ⇜ (1013/64 → 507/32) ⇝ 127/8 | note:B5 gain:0.2985786437626947 clip:1 s:piano release:0.1 pan:0.6342592592592593 ]", + "[ 63/4 ⇜ (1013/64 → 507/32) ⇝ 16/1 | note:Bb3 gain:0.14928932188134736 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", + "[ 63/4 ⇜ (1013/64 → 507/32) ⇝ 16/1 | note:Eb4 gain:0.14928932188134736 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", + "[ 63/4 ⇜ (1013/64 → 507/32) ⇝ 16/1 | note:E4 gain:0.14928932188134736 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", + "[ 63/4 ⇜ (1013/64 → 507/32) ⇝ 16/1 | note:Ab4 gain:0.14928932188134736 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", + "[ 63/4 ⇜ (507/32 → 1015/64) ⇝ 127/8 | note:C#5 gain:0.24 clip:1 s:piano release:0.1 pan:0.587962962962963 ]", + "[ 63/4 ⇜ (507/32 → 1015/64) ⇝ 127/8 | note:G#5 gain:0.24 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", + "[ 63/4 ⇜ (507/32 → 1015/64) ⇝ 127/8 | note:B5 gain:0.24 clip:1 s:piano release:0.1 pan:0.6342592592592593 ]", + "[ 63/4 ⇜ (507/32 → 1015/64) ⇝ 16/1 | note:Bb3 gain:0.12 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", + "[ 63/4 ⇜ (507/32 → 1015/64) ⇝ 16/1 | note:Eb4 gain:0.12 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", + "[ 63/4 ⇜ (507/32 → 1015/64) ⇝ 16/1 | note:E4 gain:0.12 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", + "[ 63/4 ⇜ (507/32 → 1015/64) ⇝ 16/1 | note:Ab4 gain:0.12 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", + "[ 63/4 ⇜ (1015/64 → 127/8) | note:C#5 gain:0.2985786437626935 clip:1 s:piano release:0.1 pan:0.587962962962963 ]", + "[ 63/4 ⇜ (1015/64 → 127/8) | note:G#5 gain:0.2985786437626935 clip:1 s:piano release:0.1 pan:0.6203703703703703 ]", + "[ 63/4 ⇜ (1015/64 → 127/8) | note:B5 gain:0.2985786437626935 clip:1 s:piano release:0.1 pan:0.6342592592592593 ]", + "[ 63/4 ⇜ (1015/64 → 127/8) ⇝ 16/1 | note:Bb3 gain:0.14928932188134675 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", + "[ 63/4 ⇜ (1015/64 → 127/8) ⇝ 16/1 | note:Eb4 gain:0.14928932188134675 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", + "[ 63/4 ⇜ (1015/64 → 127/8) ⇝ 16/1 | note:E4 gain:0.14928932188134675 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", + "[ 63/4 ⇜ (1015/64 → 127/8) ⇝ 16/1 | note:Ab4 gain:0.14928932188134675 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", + "[ 63/4 ⇜ (127/8 → 1017/64) ⇝ 16/1 | note:Bb3 gain:0.21999999999999906 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", + "[ 63/4 ⇜ (127/8 → 1017/64) ⇝ 16/1 | note:Eb4 gain:0.21999999999999906 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", + "[ 63/4 ⇜ (127/8 → 1017/64) ⇝ 16/1 | note:E4 gain:0.21999999999999906 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", + "[ 63/4 ⇜ (127/8 → 1017/64) ⇝ 16/1 | note:Ab4 gain:0.21999999999999906 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", + "[ 63/4 ⇜ (1017/64 → 509/32) ⇝ 16/1 | note:Bb3 gain:0.29071067811865187 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", + "[ 63/4 ⇜ (1017/64 → 509/32) ⇝ 16/1 | note:Eb4 gain:0.29071067811865187 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", + "[ 63/4 ⇜ (1017/64 → 509/32) ⇝ 16/1 | note:E4 gain:0.29071067811865187 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", + "[ 63/4 ⇜ (1017/64 → 509/32) ⇝ 16/1 | note:Ab4 gain:0.29071067811865187 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", + "[ 63/4 ⇜ (509/32 → 1019/64) ⇝ 16/1 | note:Bb3 gain:0.32000000000000006 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", + "[ 63/4 ⇜ (509/32 → 1019/64) ⇝ 16/1 | note:Eb4 gain:0.32000000000000006 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", + "[ 63/4 ⇜ (509/32 → 1019/64) ⇝ 16/1 | note:E4 gain:0.32000000000000006 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", + "[ 63/4 ⇜ (509/32 → 1019/64) ⇝ 16/1 | note:Ab4 gain:0.32000000000000006 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", + "[ 63/4 ⇜ (1019/64 → 255/16) ⇝ 16/1 | note:Bb3 gain:0.29071067811865403 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", + "[ 63/4 ⇜ (1019/64 → 255/16) ⇝ 16/1 | note:Eb4 gain:0.29071067811865403 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", + "[ 63/4 ⇜ (1019/64 → 255/16) ⇝ 16/1 | note:E4 gain:0.29071067811865403 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", + "[ 63/4 ⇜ (1019/64 → 255/16) ⇝ 16/1 | note:Ab4 gain:0.29071067811865403 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", + "[ 63/4 ⇜ (255/16 → 1021/64) ⇝ 16/1 | note:Bb3 gain:0.22000000000000208 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", + "[ 63/4 ⇜ (255/16 → 1021/64) ⇝ 16/1 | note:Eb4 gain:0.22000000000000208 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", + "[ 63/4 ⇜ (255/16 → 1021/64) ⇝ 16/1 | note:E4 gain:0.22000000000000208 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", + "[ 63/4 ⇜ (255/16 → 1021/64) ⇝ 16/1 | note:Ab4 gain:0.22000000000000208 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", + "[ 63/4 ⇜ (1021/64 → 511/32) ⇝ 16/1 | note:Bb3 gain:0.1492893218813489 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", + "[ 63/4 ⇜ (1021/64 → 511/32) ⇝ 16/1 | note:Eb4 gain:0.1492893218813489 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", + "[ 63/4 ⇜ (1021/64 → 511/32) ⇝ 16/1 | note:E4 gain:0.1492893218813489 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", + "[ 63/4 ⇜ (1021/64 → 511/32) ⇝ 16/1 | note:Ab4 gain:0.1492893218813489 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", + "[ 63/4 ⇜ (511/32 → 1023/64) ⇝ 16/1 | note:Bb3 gain:0.12 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", + "[ 63/4 ⇜ (511/32 → 1023/64) ⇝ 16/1 | note:Eb4 gain:0.12 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", + "[ 63/4 ⇜ (511/32 → 1023/64) ⇝ 16/1 | note:E4 gain:0.12 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", + "[ 63/4 ⇜ (511/32 → 1023/64) ⇝ 16/1 | note:Ab4 gain:0.12 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", + "[ 63/4 ⇜ (1023/64 → 16/1) | note:Bb3 gain:0.14928932188134522 clip:1 s:piano release:0.1 pan:0.5185185185185186 ]", + "[ 63/4 ⇜ (1023/64 → 16/1) | note:Eb4 gain:0.14928932188134522 clip:1 s:piano release:0.1 pan:0.5416666666666667 ]", + "[ 63/4 ⇜ (1023/64 → 16/1) | note:E4 gain:0.14928932188134522 clip:1 s:piano release:0.1 pan:0.5462962962962963 ]", + "[ 63/4 ⇜ (1023/64 → 16/1) | note:Ab4 gain:0.14928932188134522 clip:1 s:piano release:0.1 pan:0.5648148148148149 ]", ] `; exports[`renders tunes > tune: festivalOfFingers3 1`] = ` [ - "[ -1/2 ⇜ (0/1 → 1/6) | gain:0.12500057914389073 clip:1 note:D5 s:piano release:0.1 pan:0.5925925925925926 ]", + "[ -1/2 ⇜ (0/1 → 1/6) | gain:0.125015148781768 clip:1 note:D5 s:piano release:0.1 pan:0.5925925925925926 ]", "[ -1/6 ⇜ (0/1 → 1/6) | clip:1 gain:0.5 note:A6 s:piano release:0.1 pan:0.6805555555555556 ]", "[ -1/6 ⇜ (0/1 → 1/6) | clip:1 gain:0.125 note:E6 s:piano release:0.1 pan:0.6574074074074074 ]", - "[ -1/3 ⇜ (0/1 → 1/3) | gain:0.16666666666666666 clip:1 note:D4 s:piano release:0.1 pan:0.537037037037037 ]", + "[ -1/3 ⇜ (0/1 → 1/3) | gain:0.16667274737749818 clip:1 note:D4 s:piano release:0.1 pan:0.537037037037037 ]", "[ 0/1 → 1/3 | clip:1 gain:1 note:E6 s:piano release:0.1 pan:0.6574074074074074 ]", "[ 0/1 → 1/3 | clip:1 gain:0.25 note:A6 s:piano release:0.1 pan:0.6805555555555556 ]", - "[ -3/2 ⇜ (0/1 → 1/2) | gain:0.250030297563536 clip:1 note:D4 s:piano release:0.1 pan:0.537037037037037 ]", - "[ -3/2 ⇜ (0/1 → 1/2) | gain:0.250030297563536 clip:1 note:F4 s:piano release:0.1 pan:0.5509259259259259 ]", - "[ -3/2 ⇜ (0/1 → 1/2) | gain:0.250030297563536 clip:1 note:C5 s:piano release:0.1 pan:0.5833333333333333 ]", - "[ -1/2 ⇜ (0/1 → 1/2) | gain:0.25 clip:1 note:D5 s:piano release:0.1 pan:0.5925925925925926 ]", - "[ -1/2 ⇜ (0/1 → 1/2) | gain:0.125 clip:1 note:E7 s:piano release:0.1 pan:0.712962962962963 ]", - "[ -1/6 ⇜ (0/1 → 1/2) | gain:0.25000115618250673 clip:1 note:D3 s:piano release:0.1 pan:0.4814814814814815 ]", - "[ 0/1 → 2/3 | gain:0.5000182089760518 clip:1 note:D2 s:piano release:0.1 pan:0.42592592592592593 ]", - "[ -1/1 ⇜ (0/1 → 1/1) | gain:0.16666666666666666 clip:1 note:D5 s:piano release:0.1 pan:0.5925925925925926 ]", - "[ -1/1 ⇜ (0/1 → 1/1) | gain:0.16666666666666666 clip:1 note:F5 s:piano release:0.1 pan:0.6064814814814814 ]", - "[ -1/1 ⇜ (0/1 → 1/1) | gain:0.16666666666666666 clip:1 note:C6 s:piano release:0.1 pan:0.6388888888888888 ]", - "[ -1/2 ⇜ (0/1 → 1/1) ⇝ 3/2 | gain:0.12501512124772182 clip:1 note:D6 s:piano release:0.1 pan:0.6481481481481481 ]", - "[ -1/2 ⇜ (0/1 → 1/1) ⇝ 3/2 | gain:0.12501512124772182 clip:1 note:F6 s:piano release:0.1 pan:0.662037037037037 ]", - "[ -1/2 ⇜ (0/1 → 1/1) ⇝ 3/2 | gain:0.12501512124772182 clip:1 note:C7 s:piano release:0.1 pan:0.6944444444444444 ]", - "[ 0/1 → 1/1 | gain:0.5000604849908873 clip:1 note:E4 s:piano release:0.1 pan:0.5462962962962963 ]", - "[ 0/1 → 1/1 | gain:0.16668682833029574 clip:1 note:D6 s:piano release:0.1 pan:0.6481481481481481 ]", - "[ (0/1 → 1/1) ⇝ 2/1 | gain:0.5004609890274139 clip:1 note:D3 s:piano release:0.1 pan:0.4814814814814815 ]", - "[ (0/1 → 1/1) ⇝ 2/1 | gain:0.5004609890274139 clip:1 note:F3 s:piano release:0.1 pan:0.49537037037037035 ]", - "[ (0/1 → 1/1) ⇝ 2/1 | gain:0.5004609890274139 clip:1 note:C4 s:piano release:0.1 pan:0.5277777777777778 ]", + "[ -3/2 ⇜ (0/1 → 1/2) | gain:0.25074164191519466 clip:1 note:D4 s:piano release:0.1 pan:0.537037037037037 ]", + "[ -3/2 ⇜ (0/1 → 1/2) | gain:0.25074164191519466 clip:1 note:F4 s:piano release:0.1 pan:0.5509259259259259 ]", + "[ -3/2 ⇜ (0/1 → 1/2) | gain:0.25074164191519466 clip:1 note:C5 s:piano release:0.1 pan:0.5833333333333333 ]", + "[ -1/2 ⇜ (0/1 → 1/2) | gain:0.250030297563536 clip:1 note:D5 s:piano release:0.1 pan:0.5925925925925926 ]", + "[ -1/2 ⇜ (0/1 → 1/2) | gain:0.125015148781768 clip:1 note:E7 s:piano release:0.1 pan:0.712962962962963 ]", + "[ -1/6 ⇜ (0/1 → 1/2) | gain:0.25000115828778147 clip:1 note:D3 s:piano release:0.1 pan:0.4814814814814815 ]", + "[ 0/1 → 2/3 | gain:0.5 clip:1 note:D2 s:piano release:0.1 pan:0.42592592592592593 ]", + "[ -1/1 ⇜ (0/1 → 1/1) | gain:0.16682060947840208 clip:1 note:D5 s:piano release:0.1 pan:0.5925925925925926 ]", + "[ -1/1 ⇜ (0/1 → 1/1) | gain:0.16682060947840208 clip:1 note:F5 s:piano release:0.1 pan:0.6064814814814814 ]", + "[ -1/1 ⇜ (0/1 → 1/1) | gain:0.16682060947840208 clip:1 note:C6 s:piano release:0.1 pan:0.6388888888888888 ]", + "[ -1/2 ⇜ (0/1 → 1/1) ⇝ 3/2 | gain:0.125015148781768 clip:1 note:D6 s:piano release:0.1 pan:0.6481481481481481 ]", + "[ -1/2 ⇜ (0/1 → 1/1) ⇝ 3/2 | gain:0.125015148781768 clip:1 note:F6 s:piano release:0.1 pan:0.662037037037037 ]", + "[ -1/2 ⇜ (0/1 → 1/1) ⇝ 3/2 | gain:0.125015148781768 clip:1 note:C7 s:piano release:0.1 pan:0.6944444444444444 ]", + "[ 0/1 → 1/1 | gain:0.5 clip:1 note:E4 s:piano release:0.1 pan:0.5462962962962963 ]", + "[ 0/1 → 1/1 | gain:0.16666666666666666 clip:1 note:D6 s:piano release:0.1 pan:0.6481481481481481 ]", + "[ (0/1 → 1/1) ⇝ 2/1 | gain:0.5 clip:1 note:D3 s:piano release:0.1 pan:0.4814814814814815 ]", + "[ (0/1 → 1/1) ⇝ 2/1 | gain:0.5 clip:1 note:F3 s:piano release:0.1 pan:0.49537037037037035 ]", + "[ (0/1 → 1/1) ⇝ 2/1 | gain:0.5 clip:1 note:C4 s:piano release:0.1 pan:0.5277777777777778 ]", "[ 1/6 → 1/2 | clip:1 gain:0.5 note:E6 s:piano release:0.1 pan:0.6574074074074074 ]", "[ 1/6 → 1/2 | clip:1 gain:0.125 note:A6 s:piano release:0.1 pan:0.6805555555555556 ]", - "[ 1/6 → 5/6 | gain:0.12501512124772182 clip:1 note:D5 s:piano release:0.1 pan:0.5925925925925926 ]", + "[ 1/6 → 5/6 | gain:0.12500057809125337 clip:1 note:D5 s:piano release:0.1 pan:0.5925925925925926 ]", "[ 1/3 → 2/3 | clip:1 gain:1 note:A6 s:piano release:0.1 pan:0.6805555555555556 ]", "[ 1/3 → 2/3 | clip:1 gain:0.25 note:E6 s:piano release:0.1 pan:0.6574074074074074 ]", - "[ 1/3 → 1/1 | gain:0.16671369714212353 clip:1 note:D4 s:piano release:0.1 pan:0.537037037037037 ]", + "[ 1/3 → 1/1 | gain:0.16667273632535057 clip:1 note:D4 s:piano release:0.1 pan:0.537037037037037 ]", "[ 1/2 → 5/6 | clip:1 gain:0.5 note:A6 s:piano release:0.1 pan:0.6805555555555556 ]", "[ 1/2 → 5/6 | clip:1 gain:0.125 note:E6 s:piano release:0.1 pan:0.6574074074074074 ]", - "[ (1/2 → 1/1) ⇝ 7/6 | gain:0.25013557675466036 clip:1 note:D3 s:piano release:0.1 pan:0.4814814814814815 ]", - "[ (1/2 → 1/1) ⇝ 3/2 | gain:0.25023049451370694 clip:1 note:E5 s:piano release:0.1 pan:0.6018518518518519 ]", - "[ (1/2 → 1/1) ⇝ 3/2 | gain:0.12511524725685347 clip:1 note:D7 s:piano release:0.1 pan:0.7037037037037037 ]", - "[ (1/2 → 1/1) ⇝ 5/2 | gain:0.25074029392543207 clip:1 note:D4 s:piano release:0.1 pan:0.537037037037037 ]", - "[ (1/2 → 1/1) ⇝ 5/2 | gain:0.25074029392543207 clip:1 note:F4 s:piano release:0.1 pan:0.5509259259259259 ]", - "[ (1/2 → 1/1) ⇝ 5/2 | gain:0.25074029392543207 clip:1 note:C5 s:piano release:0.1 pan:0.5833333333333333 ]", + "[ (1/2 → 1/1) ⇝ 7/6 | gain:0.25003024249544364 clip:1 note:D3 s:piano release:0.1 pan:0.4814814814814815 ]", + "[ (1/2 → 1/1) ⇝ 3/2 | gain:0.25003024249544364 clip:1 note:E5 s:piano release:0.1 pan:0.6018518518518519 ]", + "[ (1/2 → 1/1) ⇝ 3/2 | gain:0.12501512124772182 clip:1 note:D7 s:piano release:0.1 pan:0.7037037037037037 ]", + "[ (1/2 → 1/1) ⇝ 5/2 | gain:0.25003024249544364 clip:1 note:D4 s:piano release:0.1 pan:0.537037037037037 ]", + "[ (1/2 → 1/1) ⇝ 5/2 | gain:0.25003024249544364 clip:1 note:F4 s:piano release:0.1 pan:0.5509259259259259 ]", + "[ (1/2 → 1/1) ⇝ 5/2 | gain:0.25003024249544364 clip:1 note:C5 s:piano release:0.1 pan:0.5833333333333333 ]", "[ 2/3 → 1/1 | clip:1 gain:1 note:E6 s:piano release:0.1 pan:0.6574074074074074 ]", "[ 2/3 → 1/1 | clip:1 gain:0.25 note:A6 s:piano release:0.1 pan:0.6805555555555556 ]", - "[ (2/3 → 1/1) ⇝ 4/3 | gain:0.5004609890274139 clip:1 note:D2 s:piano release:0.1 pan:0.42592592592592593 ]", + "[ (2/3 → 1/1) ⇝ 4/3 | gain:0.5001410914263706 clip:1 note:D2 s:piano release:0.1 pan:0.42592592592592593 ]", "[ (5/6 → 1/1) ⇝ 7/6 | clip:1 gain:0.5 note:E6 s:piano release:0.1 pan:0.6574074074074074 ]", "[ (5/6 → 1/1) ⇝ 7/6 | clip:1 gain:0.125 note:A6 s:piano release:0.1 pan:0.6805555555555556 ]", - "[ (5/6 → 1/1) ⇝ 3/2 | gain:0.1251800316700185 clip:1 note:D5 s:piano release:0.1 pan:0.5925925925925926 ]", - "[ 1/2 ⇜ (1/1 → 7/6) | gain:0.25013557675466036 clip:1 note:D3 s:piano release:0.1 pan:0.4814814814814815 ]", + "[ (5/6 → 1/1) ⇝ 3/2 | gain:0.12506778837733018 clip:1 note:D5 s:piano release:0.1 pan:0.5925925925925926 ]", + "[ 1/2 ⇜ (1/1 → 7/6) | gain:0.25003024249544364 clip:1 note:D3 s:piano release:0.1 pan:0.4814814814814815 ]", "[ 5/6 ⇜ (1/1 → 7/6) | clip:1 gain:0.5 note:E6 s:piano release:0.1 pan:0.6574074074074074 ]", "[ 5/6 ⇜ (1/1 → 7/6) | clip:1 gain:0.125 note:A6 s:piano release:0.1 pan:0.6805555555555556 ]", - "[ 2/3 ⇜ (1/1 → 4/3) | gain:0.5004609890274139 clip:1 note:D2 s:piano release:0.1 pan:0.42592592592592593 ]", + "[ 2/3 ⇜ (1/1 → 4/3) | gain:0.5001410914263706 clip:1 note:D2 s:piano release:0.1 pan:0.42592592592592593 ]", "[ 1/1 → 4/3 | clip:1 gain:1 note:A6 s:piano release:0.1 pan:0.6805555555555556 ]", "[ 1/1 → 4/3 | clip:1 gain:0.25 note:E6 s:piano release:0.1 pan:0.6574074074074074 ]", - "[ -1/2 ⇜ (1/1 → 3/2) | gain:0.12501512124772182 clip:1 note:D6 s:piano release:0.1 pan:0.6481481481481481 ]", - "[ -1/2 ⇜ (1/1 → 3/2) | gain:0.12501512124772182 clip:1 note:F6 s:piano release:0.1 pan:0.662037037037037 ]", - "[ -1/2 ⇜ (1/1 → 3/2) | gain:0.12501512124772182 clip:1 note:C7 s:piano release:0.1 pan:0.6944444444444444 ]", - "[ 1/2 ⇜ (1/1 → 3/2) | gain:0.25023049451370694 clip:1 note:E5 s:piano release:0.1 pan:0.6018518518518519 ]", - "[ 1/2 ⇜ (1/1 → 3/2) | gain:0.12511524725685347 clip:1 note:D7 s:piano release:0.1 pan:0.7037037037037037 ]", - "[ 5/6 ⇜ (1/1 → 3/2) | gain:0.1251800316700185 clip:1 note:D5 s:piano release:0.1 pan:0.5925925925925926 ]", - "[ 1/1 → 5/3 | gain:0.16701910814312054 clip:1 note:D4 s:piano release:0.1 pan:0.537037037037037 ]", - "[ 0/1 ⇜ (1/1 → 2/1) | gain:0.5004609890274139 clip:1 note:D3 s:piano release:0.1 pan:0.4814814814814815 ]", - "[ 0/1 ⇜ (1/1 → 2/1) | gain:0.5004609890274139 clip:1 note:F3 s:piano release:0.1 pan:0.49537037037037035 ]", - "[ 0/1 ⇜ (1/1 → 2/1) | gain:0.5004609890274139 clip:1 note:C4 s:piano release:0.1 pan:0.5277777777777778 ]", - "[ 1/2 ⇜ (1/1 → 2/1) ⇝ 5/2 | gain:0.25074029392543207 clip:1 note:D4 s:piano release:0.1 pan:0.537037037037037 ]", - "[ 1/2 ⇜ (1/1 → 2/1) ⇝ 5/2 | gain:0.25074029392543207 clip:1 note:F4 s:piano release:0.1 pan:0.5509259259259259 ]", - "[ 1/2 ⇜ (1/1 → 2/1) ⇝ 5/2 | gain:0.25074029392543207 clip:1 note:C5 s:piano release:0.1 pan:0.5833333333333333 ]", - "[ 1/1 → 2/1 | gain:0.5014805878508641 clip:1 note:D4 s:piano release:0.1 pan:0.537037037037037 ]", - "[ 1/1 → 2/1 | gain:0.16716019595028803 clip:1 note:E6 s:piano release:0.1 pan:0.6574074074074074 ]", - "[ (1/1 → 2/1) ⇝ 3/1 | gain:0.16777864249203656 clip:1 note:D5 s:piano release:0.1 pan:0.5925925925925926 ]", - "[ (1/1 → 2/1) ⇝ 3/1 | gain:0.16777864249203656 clip:1 note:F5 s:piano release:0.1 pan:0.6064814814814814 ]", - "[ (1/1 → 2/1) ⇝ 3/1 | gain:0.16777864249203656 clip:1 note:C6 s:piano release:0.1 pan:0.6388888888888888 ]", + "[ -1/2 ⇜ (1/1 → 3/2) | gain:0.125015148781768 clip:1 note:D6 s:piano release:0.1 pan:0.6481481481481481 ]", + "[ -1/2 ⇜ (1/1 → 3/2) | gain:0.125015148781768 clip:1 note:F6 s:piano release:0.1 pan:0.662037037037037 ]", + "[ -1/2 ⇜ (1/1 → 3/2) | gain:0.125015148781768 clip:1 note:C7 s:piano release:0.1 pan:0.6944444444444444 ]", + "[ 1/2 ⇜ (1/1 → 3/2) | gain:0.25003024249544364 clip:1 note:E5 s:piano release:0.1 pan:0.6018518518518519 ]", + "[ 1/2 ⇜ (1/1 → 3/2) | gain:0.12501512124772182 clip:1 note:D7 s:piano release:0.1 pan:0.7037037037037037 ]", + "[ 5/6 ⇜ (1/1 → 3/2) | gain:0.12506778837733018 clip:1 note:D5 s:piano release:0.1 pan:0.5925925925925926 ]", + "[ 1/1 → 5/3 | gain:0.16682032967580462 clip:1 note:D4 s:piano release:0.1 pan:0.537037037037037 ]", + "[ 0/1 ⇜ (1/1 → 2/1) | gain:0.5 clip:1 note:D3 s:piano release:0.1 pan:0.4814814814814815 ]", + "[ 0/1 ⇜ (1/1 → 2/1) | gain:0.5 clip:1 note:F3 s:piano release:0.1 pan:0.49537037037037035 ]", + "[ 0/1 ⇜ (1/1 → 2/1) | gain:0.5 clip:1 note:C4 s:piano release:0.1 pan:0.5277777777777778 ]", + "[ 1/2 ⇜ (1/1 → 2/1) ⇝ 5/2 | gain:0.25003024249544364 clip:1 note:D4 s:piano release:0.1 pan:0.537037037037037 ]", + "[ 1/2 ⇜ (1/1 → 2/1) ⇝ 5/2 | gain:0.25003024249544364 clip:1 note:F4 s:piano release:0.1 pan:0.5509259259259259 ]", + "[ 1/2 ⇜ (1/1 → 2/1) ⇝ 5/2 | gain:0.25003024249544364 clip:1 note:C5 s:piano release:0.1 pan:0.5833333333333333 ]", + "[ 1/1 → 2/1 | gain:0.5004609890274139 clip:1 note:D4 s:piano release:0.1 pan:0.537037037037037 ]", + "[ 1/1 → 2/1 | gain:0.16682032967580462 clip:1 note:E6 s:piano release:0.1 pan:0.6574074074074074 ]", + "[ (1/1 → 2/1) ⇝ 3/1 | gain:0.16682032967580462 clip:1 note:D5 s:piano release:0.1 pan:0.5925925925925926 ]", + "[ (1/1 → 2/1) ⇝ 3/1 | gain:0.16682032967580462 clip:1 note:F5 s:piano release:0.1 pan:0.6064814814814814 ]", + "[ (1/1 → 2/1) ⇝ 3/1 | gain:0.16682032967580462 clip:1 note:C6 s:piano release:0.1 pan:0.6388888888888888 ]", "[ 7/6 → 3/2 | clip:1 gain:0.5 note:A6 s:piano release:0.1 pan:0.6805555555555556 ]", "[ 7/6 → 3/2 | clip:1 gain:0.125 note:E6 s:piano release:0.1 pan:0.6574074074074074 ]", - "[ 7/6 → 11/6 | gain:0.25074029392543207 clip:1 note:D3 s:piano release:0.1 pan:0.4814814814814815 ]", + "[ 7/6 → 11/6 | gain:0.250360063340037 clip:1 note:D3 s:piano release:0.1 pan:0.4814814814814815 ]", "[ 4/3 → 5/3 | clip:1 gain:1 note:E6 s:piano release:0.1 pan:0.6574074074074074 ]", "[ 4/3 → 5/3 | clip:1 gain:0.25 note:A6 s:piano release:0.1 pan:0.6805555555555556 ]", - "[ 4/3 → 2/1 | gain:0.5019971884845844 clip:1 note:D2 s:piano release:0.1 pan:0.42592592592592593 ]", + "[ 4/3 → 2/1 | gain:0.5010573244293617 clip:1 note:D2 s:piano release:0.1 pan:0.42592592592592593 ]", "[ 3/2 → 11/6 | clip:1 gain:0.5 note:E6 s:piano release:0.1 pan:0.6574074074074074 ]", "[ 3/2 → 11/6 | clip:1 gain:0.125 note:A6 s:piano release:0.1 pan:0.6805555555555556 ]", - "[ (3/2 → 2/1) ⇝ 13/6 | gain:0.1256534205464579 clip:1 note:D5 s:piano release:0.1 pan:0.5925925925925926 ]", - "[ (3/2 → 2/1) ⇝ 5/2 | gain:0.25166796373805483 clip:1 note:D5 s:piano release:0.1 pan:0.5925925925925926 ]", - "[ (3/2 → 2/1) ⇝ 5/2 | gain:0.12583398186902742 clip:1 note:E7 s:piano release:0.1 pan:0.712962962962963 ]", - "[ (3/2 → 2/1) ⇝ 7/2 | gain:0.12654642086444556 clip:1 note:D6 s:piano release:0.1 pan:0.6481481481481481 ]", - "[ (3/2 → 2/1) ⇝ 7/2 | gain:0.12654642086444556 clip:1 note:F6 s:piano release:0.1 pan:0.662037037037037 ]", - "[ (3/2 → 2/1) ⇝ 7/2 | gain:0.12654642086444556 clip:1 note:C7 s:piano release:0.1 pan:0.6944444444444444 ]", + "[ (3/2 → 2/1) ⇝ 13/6 | gain:0.12537014696271603 clip:1 note:D5 s:piano release:0.1 pan:0.5925925925925926 ]", + "[ (3/2 → 2/1) ⇝ 5/2 | gain:0.25074029392543207 clip:1 note:D5 s:piano release:0.1 pan:0.5925925925925926 ]", + "[ (3/2 → 2/1) ⇝ 5/2 | gain:0.12537014696271603 clip:1 note:E7 s:piano release:0.1 pan:0.712962962962963 ]", + "[ (3/2 → 2/1) ⇝ 7/2 | gain:0.12537014696271603 clip:1 note:D6 s:piano release:0.1 pan:0.6481481481481481 ]", + "[ (3/2 → 2/1) ⇝ 7/2 | gain:0.12537014696271603 clip:1 note:F6 s:piano release:0.1 pan:0.662037037037037 ]", + "[ (3/2 → 2/1) ⇝ 7/2 | gain:0.12537014696271603 clip:1 note:C7 s:piano release:0.1 pan:0.6944444444444444 ]", "[ 5/3 → 2/1 | clip:1 gain:1 note:A6 s:piano release:0.1 pan:0.6805555555555556 ]", "[ 5/3 → 2/1 | clip:1 gain:0.25 note:E6 s:piano release:0.1 pan:0.6574074074074074 ]", - "[ (5/3 → 2/1) ⇝ 7/3 | gain:0.16777864249203656 clip:1 note:D4 s:piano release:0.1 pan:0.537037037037037 ]", + "[ (5/3 → 2/1) ⇝ 7/3 | gain:0.16733239616152812 clip:1 note:D4 s:piano release:0.1 pan:0.537037037037037 ]", "[ (11/6 → 2/1) ⇝ 13/6 | clip:1 gain:0.5 note:A6 s:piano release:0.1 pan:0.6805555555555556 ]", "[ (11/6 → 2/1) ⇝ 13/6 | clip:1 gain:0.125 note:E6 s:piano release:0.1 pan:0.6574074074074074 ]", - "[ (11/6 → 2/1) ⇝ 5/2 | gain:0.2520845519470039 clip:1 note:D3 s:piano release:0.1 pan:0.4814814814814815 ]", - "[ 3/2 ⇜ (2/1 → 13/6) | gain:0.1256534205464579 clip:1 note:G5 s:piano release:0.1 pan:0.6157407407407407 ]", + "[ (11/6 → 2/1) ⇝ 5/2 | gain:0.2513068410929158 clip:1 note:D3 s:piano release:0.1 pan:0.4814814814814815 ]", + "[ 3/2 ⇜ (2/1 → 13/6) | gain:0.12537014696271603 clip:1 note:G5 s:piano release:0.1 pan:0.6157407407407407 ]", "[ 11/6 ⇜ (2/1 → 13/6) | clip:1 gain:0.5 note:D7 s:piano release:0.1 pan:0.7037037037037037 ]", "[ 11/6 ⇜ (2/1 → 13/6) | clip:1 gain:0.125 note:A6 s:piano release:0.1 pan:0.6805555555555556 ]", - "[ 5/3 ⇜ (2/1 → 7/3) | gain:0.16777864249203656 clip:1 note:G4 s:piano release:0.1 pan:0.5601851851851851 ]", + "[ 5/3 ⇜ (2/1 → 7/3) | gain:0.16733239616152812 clip:1 note:G4 s:piano release:0.1 pan:0.5601851851851851 ]", "[ 2/1 → 7/3 | clip:1 gain:1 note:A6 s:piano release:0.1 pan:0.6805555555555556 ]", "[ 2/1 → 7/3 | clip:1 gain:0.25 note:D7 s:piano release:0.1 pan:0.7037037037037037 ]", - "[ 1/2 ⇜ (2/1 → 5/2) | gain:0.25074029392543207 clip:1 note:G4 s:piano release:0.1 pan:0.5601851851851851 ]", - "[ 1/2 ⇜ (2/1 → 5/2) | gain:0.25074029392543207 clip:1 note:B4 s:piano release:0.1 pan:0.5787037037037037 ]", - "[ 1/2 ⇜ (2/1 → 5/2) | gain:0.25074029392543207 clip:1 note:F5 s:piano release:0.1 pan:0.6064814814814814 ]", - "[ 3/2 ⇜ (2/1 → 5/2) | gain:0.25166796373805483 clip:1 note:G5 s:piano release:0.1 pan:0.6157407407407407 ]", - "[ 3/2 ⇜ (2/1 → 5/2) | gain:0.12583398186902742 clip:1 note:A7 s:piano release:0.1 pan:0.7361111111111112 ]", - "[ 11/6 ⇜ (2/1 → 5/2) | gain:0.2520845519470039 clip:1 note:G3 s:piano release:0.1 pan:0.5046296296296297 ]", - "[ 2/1 → 8/3 | gain:0.5051177303460894 clip:1 note:G2 s:piano release:0.1 pan:0.44907407407407407 ]", - "[ 1/1 ⇜ (2/1 → 3/1) | gain:0.16777864249203656 clip:1 note:G5 s:piano release:0.1 pan:0.6157407407407407 ]", - "[ 1/1 ⇜ (2/1 → 3/1) | gain:0.16777864249203656 clip:1 note:B5 s:piano release:0.1 pan:0.6342592592592593 ]", - "[ 1/1 ⇜ (2/1 → 3/1) | gain:0.16777864249203656 clip:1 note:F6 s:piano release:0.1 pan:0.662037037037037 ]", - "[ 3/2 ⇜ (2/1 → 3/1) ⇝ 7/2 | gain:0.12654642086444556 clip:1 note:G6 s:piano release:0.1 pan:0.6712962962962963 ]", - "[ 3/2 ⇜ (2/1 → 3/1) ⇝ 7/2 | gain:0.12654642086444556 clip:1 note:B6 s:piano release:0.1 pan:0.6898148148148149 ]", - "[ 3/2 ⇜ (2/1 → 3/1) ⇝ 7/2 | gain:0.12654642086444556 clip:1 note:F7 s:piano release:0.1 pan:0.7175925925925926 ]", - "[ 2/1 → 3/1 | gain:0.5061856834577823 clip:1 note:A4 s:piano release:0.1 pan:0.5694444444444444 ]", - "[ 2/1 → 3/1 | gain:0.16872856115259408 clip:1 note:G6 s:piano release:0.1 pan:0.6712962962962963 ]", - "[ (2/1 → 3/1) ⇝ 4/1 | gain:0.5101350201564457 clip:1 note:G3 s:piano release:0.1 pan:0.5046296296296297 ]", - "[ (2/1 → 3/1) ⇝ 4/1 | gain:0.5101350201564457 clip:1 note:B3 s:piano release:0.1 pan:0.5231481481481481 ]", - "[ (2/1 → 3/1) ⇝ 4/1 | gain:0.5101350201564457 clip:1 note:F4 s:piano release:0.1 pan:0.5509259259259259 ]", + "[ 1/2 ⇜ (2/1 → 5/2) | gain:0.25003024249544364 clip:1 note:G4 s:piano release:0.1 pan:0.5601851851851851 ]", + "[ 1/2 ⇜ (2/1 → 5/2) | gain:0.25003024249544364 clip:1 note:B4 s:piano release:0.1 pan:0.5787037037037037 ]", + "[ 1/2 ⇜ (2/1 → 5/2) | gain:0.25003024249544364 clip:1 note:F5 s:piano release:0.1 pan:0.6064814814814814 ]", + "[ 3/2 ⇜ (2/1 → 5/2) | gain:0.25074029392543207 clip:1 note:G5 s:piano release:0.1 pan:0.6157407407407407 ]", + "[ 3/2 ⇜ (2/1 → 5/2) | gain:0.12537014696271603 clip:1 note:A7 s:piano release:0.1 pan:0.7361111111111112 ]", + "[ 11/6 ⇜ (2/1 → 5/2) | gain:0.2513068410929158 clip:1 note:G3 s:piano release:0.1 pan:0.5046296296296297 ]", + "[ 2/1 → 8/3 | gain:0.5033359274761097 clip:1 note:G2 s:piano release:0.1 pan:0.44907407407407407 ]", + "[ 1/1 ⇜ (2/1 → 3/1) | gain:0.16682032967580462 clip:1 note:G5 s:piano release:0.1 pan:0.6157407407407407 ]", + "[ 1/1 ⇜ (2/1 → 3/1) | gain:0.16682032967580462 clip:1 note:B5 s:piano release:0.1 pan:0.6342592592592593 ]", + "[ 1/1 ⇜ (2/1 → 3/1) | gain:0.16682032967580462 clip:1 note:F6 s:piano release:0.1 pan:0.662037037037037 ]", + "[ 3/2 ⇜ (2/1 → 3/1) ⇝ 7/2 | gain:0.12537014696271603 clip:1 note:G6 s:piano release:0.1 pan:0.6712962962962963 ]", + "[ 3/2 ⇜ (2/1 → 3/1) ⇝ 7/2 | gain:0.12537014696271603 clip:1 note:B6 s:piano release:0.1 pan:0.6898148148148149 ]", + "[ 3/2 ⇜ (2/1 → 3/1) ⇝ 7/2 | gain:0.12537014696271603 clip:1 note:F7 s:piano release:0.1 pan:0.7175925925925926 ]", + "[ 2/1 → 3/1 | gain:0.5033359274761097 clip:1 note:A4 s:piano release:0.1 pan:0.5694444444444444 ]", + "[ 2/1 → 3/1 | gain:0.16777864249203656 clip:1 note:G6 s:piano release:0.1 pan:0.6712962962962963 ]", + "[ (2/1 → 3/1) ⇝ 4/1 | gain:0.5033359274761097 clip:1 note:G3 s:piano release:0.1 pan:0.5046296296296297 ]", + "[ (2/1 → 3/1) ⇝ 4/1 | gain:0.5033359274761097 clip:1 note:B3 s:piano release:0.1 pan:0.5231481481481481 ]", + "[ (2/1 → 3/1) ⇝ 4/1 | gain:0.5033359274761097 clip:1 note:F4 s:piano release:0.1 pan:0.5509259259259259 ]", "[ 13/6 → 5/2 | clip:1 gain:0.5 note:A6 s:piano release:0.1 pan:0.6805555555555556 ]", "[ 13/6 → 5/2 | clip:1 gain:0.125 note:D7 s:piano release:0.1 pan:0.7037037037037037 ]", - "[ 13/6 → 17/6 | gain:0.12654642086444556 clip:1 note:G5 s:piano release:0.1 pan:0.6157407407407407 ]", + "[ 13/6 → 17/6 | gain:0.12604227597350195 clip:1 note:G5 s:piano release:0.1 pan:0.6157407407407407 ]", "[ 7/3 → 8/3 | clip:1 gain:1 note:D7 s:piano release:0.1 pan:0.7037037037037037 ]", "[ 7/3 → 8/3 | clip:1 gain:0.25 note:A6 s:piano release:0.1 pan:0.6805555555555556 ]", - "[ 7/3 → 3/1 | gain:0.16912540530808912 clip:1 note:G4 s:piano release:0.1 pan:0.5601851851851851 ]", + "[ 7/3 → 3/1 | gain:0.1683725767820298 clip:1 note:G4 s:piano release:0.1 pan:0.5601851851851851 ]", "[ 5/2 → 17/6 | clip:1 gain:0.5 note:D7 s:piano release:0.1 pan:0.7037037037037037 ]", "[ 5/2 → 17/6 | clip:1 gain:0.125 note:A6 s:piano release:0.1 pan:0.6805555555555556 ]", - "[ (5/2 → 3/1) ⇝ 19/6 | gain:0.2543459874306847 clip:1 note:G3 s:piano release:0.1 pan:0.5046296296296297 ]", - "[ (5/2 → 3/1) ⇝ 7/2 | gain:0.25506751007822287 clip:1 note:A5 s:piano release:0.1 pan:0.625 ]", - "[ (5/2 → 3/1) ⇝ 7/2 | gain:0.12753375503911143 clip:1 note:G7 s:piano release:0.1 pan:0.7268518518518519 ]", - "[ (5/2 → 3/1) ⇝ 9/2 | gain:0.25762002500238423 clip:1 note:G4 s:piano release:0.1 pan:0.5601851851851851 ]", - "[ (5/2 → 3/1) ⇝ 9/2 | gain:0.25762002500238423 clip:1 note:B4 s:piano release:0.1 pan:0.5787037037037037 ]", - "[ (5/2 → 3/1) ⇝ 9/2 | gain:0.25762002500238423 clip:1 note:F5 s:piano release:0.1 pan:0.6064814814814814 ]", + "[ (5/2 → 3/1) ⇝ 19/6 | gain:0.2530928417288911 clip:1 note:G3 s:piano release:0.1 pan:0.5046296296296297 ]", + "[ (5/2 → 3/1) ⇝ 7/2 | gain:0.2530928417288911 clip:1 note:A5 s:piano release:0.1 pan:0.625 ]", + "[ (5/2 → 3/1) ⇝ 7/2 | gain:0.12654642086444556 clip:1 note:G7 s:piano release:0.1 pan:0.7268518518518519 ]", + "[ (5/2 → 3/1) ⇝ 9/2 | gain:0.2530928417288911 clip:1 note:G4 s:piano release:0.1 pan:0.5601851851851851 ]", + "[ (5/2 → 3/1) ⇝ 9/2 | gain:0.2530928417288911 clip:1 note:B4 s:piano release:0.1 pan:0.5787037037037037 ]", + "[ (5/2 → 3/1) ⇝ 9/2 | gain:0.2530928417288911 clip:1 note:F5 s:piano release:0.1 pan:0.6064814814814814 ]", "[ 8/3 → 3/1 | clip:1 gain:1 note:A6 s:piano release:0.1 pan:0.6805555555555556 ]", "[ 8/3 → 3/1 | clip:1 gain:0.25 note:D7 s:piano release:0.1 pan:0.7037037037037037 ]", - "[ (8/3 → 3/1) ⇝ 10/3 | gain:0.5101350201564457 clip:1 note:G2 s:piano release:0.1 pan:0.44907407407407407 ]", + "[ (8/3 → 3/1) ⇝ 10/3 | gain:0.5073762159242674 clip:1 note:G2 s:piano release:0.1 pan:0.44907407407407407 ]", "[ (17/6 → 3/1) ⇝ 19/6 | clip:1 gain:0.5 note:A6 s:piano release:0.1 pan:0.6805555555555556 ]", "[ (17/6 → 3/1) ⇝ 19/6 | clip:1 gain:0.125 note:D7 s:piano release:0.1 pan:0.7037037037037037 ]", - "[ (17/6 → 3/1) ⇝ 7/2 | gain:0.12792671070481904 clip:1 note:G5 s:piano release:0.1 pan:0.6157407407407407 ]", - "[ 5/2 ⇜ (3/1 → 19/6) | gain:0.2543459874306847 clip:1 note:G3 s:piano release:0.1 pan:0.5046296296296297 ]", + "[ (17/6 → 3/1) ⇝ 7/2 | gain:0.12717299371534235 clip:1 note:G5 s:piano release:0.1 pan:0.6157407407407407 ]", + "[ 5/2 ⇜ (3/1 → 19/6) | gain:0.2530928417288911 clip:1 note:G3 s:piano release:0.1 pan:0.5046296296296297 ]", "[ 17/6 ⇜ (3/1 → 19/6) | clip:1 gain:0.5 note:A6 s:piano release:0.1 pan:0.6805555555555556 ]", "[ 17/6 ⇜ (3/1 → 19/6) | clip:1 gain:0.125 note:D7 s:piano release:0.1 pan:0.7037037037037037 ]", - "[ 8/3 ⇜ (3/1 → 10/3) | gain:0.5101350201564457 clip:1 note:G2 s:piano release:0.1 pan:0.44907407407407407 ]", + "[ 8/3 ⇜ (3/1 → 10/3) | gain:0.5073762159242674 clip:1 note:G2 s:piano release:0.1 pan:0.44907407407407407 ]", "[ 3/1 → 10/3 | clip:1 gain:1 note:D7 s:piano release:0.1 pan:0.7037037037037037 ]", "[ 3/1 → 10/3 | clip:1 gain:0.25 note:A6 s:piano release:0.1 pan:0.6805555555555556 ]", - "[ 3/2 ⇜ (3/1 → 7/2) | gain:0.12654642086444556 clip:1 note:G6 s:piano release:0.1 pan:0.6712962962962963 ]", - "[ 3/2 ⇜ (3/1 → 7/2) | gain:0.12654642086444556 clip:1 note:B6 s:piano release:0.1 pan:0.6898148148148149 ]", - "[ 3/2 ⇜ (3/1 → 7/2) | gain:0.12654642086444556 clip:1 note:F7 s:piano release:0.1 pan:0.7175925925925926 ]", - "[ 5/2 ⇜ (3/1 → 7/2) | gain:0.25506751007822287 clip:1 note:A5 s:piano release:0.1 pan:0.625 ]", - "[ 5/2 ⇜ (3/1 → 7/2) | gain:0.12753375503911143 clip:1 note:G7 s:piano release:0.1 pan:0.7268518518518519 ]", - "[ 17/6 ⇜ (3/1 → 7/2) | gain:0.12792671070481904 clip:1 note:G5 s:piano release:0.1 pan:0.6157407407407407 ]", - "[ 3/1 → 11/3 | gain:0.17113612777765086 clip:1 note:G4 s:piano release:0.1 pan:0.5601851851851851 ]", - "[ 2/1 ⇜ (3/1 → 4/1) | gain:0.5101350201564457 clip:1 note:G3 s:piano release:0.1 pan:0.5046296296296297 ]", - "[ 2/1 ⇜ (3/1 → 4/1) | gain:0.5101350201564457 clip:1 note:B3 s:piano release:0.1 pan:0.5231481481481481 ]", - "[ 2/1 ⇜ (3/1 → 4/1) | gain:0.5101350201564457 clip:1 note:F4 s:piano release:0.1 pan:0.5509259259259259 ]", - "[ 5/2 ⇜ (3/1 → 4/1) ⇝ 9/2 | gain:0.25762002500238423 clip:1 note:G4 s:piano release:0.1 pan:0.5601851851851851 ]", - "[ 5/2 ⇜ (3/1 → 4/1) ⇝ 9/2 | gain:0.25762002500238423 clip:1 note:B4 s:piano release:0.1 pan:0.5787037037037037 ]", - "[ 5/2 ⇜ (3/1 → 4/1) ⇝ 9/2 | gain:0.25762002500238423 clip:1 note:F5 s:piano release:0.1 pan:0.6064814814814814 ]", - "[ 3/1 → 4/1 | gain:0.5152400500047685 clip:1 note:G4 s:piano release:0.1 pan:0.5601851851851851 ]", - "[ 3/1 → 4/1 | gain:0.17174668333492282 clip:1 note:A6 s:piano release:0.1 pan:0.6805555555555556 ]", - "[ (3/1 → 4/1) ⇝ 5/1 | gain:0.17383743092456522 clip:1 note:G5 s:piano release:0.1 pan:0.6157407407407407 ]", - "[ (3/1 → 4/1) ⇝ 5/1 | gain:0.17383743092456522 clip:1 note:B5 s:piano release:0.1 pan:0.6342592592592593 ]", - "[ (3/1 → 4/1) ⇝ 5/1 | gain:0.17383743092456522 clip:1 note:F6 s:piano release:0.1 pan:0.662037037037037 ]", + "[ 3/2 ⇜ (3/1 → 7/2) | gain:0.12537014696271603 clip:1 note:G6 s:piano release:0.1 pan:0.6712962962962963 ]", + "[ 3/2 ⇜ (3/1 → 7/2) | gain:0.12537014696271603 clip:1 note:B6 s:piano release:0.1 pan:0.6898148148148149 ]", + "[ 3/2 ⇜ (3/1 → 7/2) | gain:0.12537014696271603 clip:1 note:F7 s:piano release:0.1 pan:0.7175925925925926 ]", + "[ 5/2 ⇜ (3/1 → 7/2) | gain:0.2530928417288911 clip:1 note:A5 s:piano release:0.1 pan:0.625 ]", + "[ 5/2 ⇜ (3/1 → 7/2) | gain:0.12654642086444556 clip:1 note:G7 s:piano release:0.1 pan:0.7268518518518519 ]", + "[ 17/6 ⇜ (3/1 → 7/2) | gain:0.12717299371534235 clip:1 note:G5 s:piano release:0.1 pan:0.6157407407407407 ]", + "[ 3/1 → 11/3 | gain:0.17004500671881523 clip:1 note:G4 s:piano release:0.1 pan:0.5601851851851851 ]", + "[ 2/1 ⇜ (3/1 → 4/1) | gain:0.5033359274761097 clip:1 note:G3 s:piano release:0.1 pan:0.5046296296296297 ]", + "[ 2/1 ⇜ (3/1 → 4/1) | gain:0.5033359274761097 clip:1 note:B3 s:piano release:0.1 pan:0.5231481481481481 ]", + "[ 2/1 ⇜ (3/1 → 4/1) | gain:0.5033359274761097 clip:1 note:F4 s:piano release:0.1 pan:0.5509259259259259 ]", + "[ 5/2 ⇜ (3/1 → 4/1) ⇝ 9/2 | gain:0.2530928417288911 clip:1 note:G4 s:piano release:0.1 pan:0.5601851851851851 ]", + "[ 5/2 ⇜ (3/1 → 4/1) ⇝ 9/2 | gain:0.2530928417288911 clip:1 note:B4 s:piano release:0.1 pan:0.5787037037037037 ]", + "[ 5/2 ⇜ (3/1 → 4/1) ⇝ 9/2 | gain:0.2530928417288911 clip:1 note:F5 s:piano release:0.1 pan:0.6064814814814814 ]", + "[ 3/1 → 4/1 | gain:0.5101350201564457 clip:1 note:G4 s:piano release:0.1 pan:0.5601851851851851 ]", + "[ 3/1 → 4/1 | gain:0.17004500671881523 clip:1 note:A6 s:piano release:0.1 pan:0.6805555555555556 ]", + "[ (3/1 → 4/1) ⇝ 5/1 | gain:0.17004500671881523 clip:1 note:G5 s:piano release:0.1 pan:0.6157407407407407 ]", + "[ (3/1 → 4/1) ⇝ 5/1 | gain:0.17004500671881523 clip:1 note:B5 s:piano release:0.1 pan:0.6342592592592593 ]", + "[ (3/1 → 4/1) ⇝ 5/1 | gain:0.17004500671881523 clip:1 note:F6 s:piano release:0.1 pan:0.662037037037037 ]", "[ 19/6 → 7/2 | clip:1 gain:0.5 note:D7 s:piano release:0.1 pan:0.7037037037037037 ]", "[ 19/6 → 7/2 | clip:1 gain:0.125 note:A6 s:piano release:0.1 pan:0.6805555555555556 ]", - "[ 19/6 → 23/6 | gain:0.25762002500238423 clip:1 note:G3 s:piano release:0.1 pan:0.5046296296296297 ]", + "[ 19/6 → 23/6 | gain:0.25585342140963807 clip:1 note:G3 s:piano release:0.1 pan:0.5046296296296297 ]", "[ 10/3 → 11/3 | clip:1 gain:1 note:A6 s:piano release:0.1 pan:0.6805555555555556 ]", "[ 10/3 → 11/3 | clip:1 gain:0.25 note:D7 s:piano release:0.1 pan:0.7037037037037037 ]", - "[ 10/3 → 4/1 | gain:0.5172017373171088 clip:1 note:G2 s:piano release:0.1 pan:0.44907407407407407 ]", + "[ 10/3 → 4/1 | gain:0.5134083833329526 clip:1 note:G2 s:piano release:0.1 pan:0.44907407407407407 ]", "[ 7/2 → 23/6 | clip:1 gain:0.5 note:A6 s:piano release:0.1 pan:0.6805555555555556 ]", "[ 7/2 → 23/6 | clip:1 gain:0.125 note:D7 s:piano release:0.1 pan:0.7037037037037037 ]", - "[ (7/2 → 4/1) ⇝ 25/6 | gain:0.1298232110695848 clip:1 note:G5 s:piano release:0.1 pan:0.6157407407407407 ]", - "[ (7/2 → 4/1) ⇝ 9/2 | gain:0.26075614638684785 clip:1 note:G5 s:piano release:0.1 pan:0.6157407407407407 ]", - "[ (7/2 → 4/1) ⇝ 9/2 | gain:0.13037807319342393 clip:1 note:A7 s:piano release:0.1 pan:0.7361111111111112 ]", - "[ (7/2 → 4/1) ⇝ 11/2 | gain:0.13223078370965538 clip:1 note:G6 s:piano release:0.1 pan:0.6712962962962963 ]", - "[ (7/2 → 4/1) ⇝ 11/2 | gain:0.13223078370965538 clip:1 note:B6 s:piano release:0.1 pan:0.6898148148148149 ]", - "[ (7/2 → 4/1) ⇝ 11/2 | gain:0.13223078370965538 clip:1 note:F7 s:piano release:0.1 pan:0.7175925925925926 ]", + "[ (7/2 → 4/1) ⇝ 25/6 | gain:0.12881001250119212 clip:1 note:G5 s:piano release:0.1 pan:0.6157407407407407 ]", + "[ (7/2 → 4/1) ⇝ 9/2 | gain:0.25762002500238423 clip:1 note:G5 s:piano release:0.1 pan:0.6157407407407407 ]", + "[ (7/2 → 4/1) ⇝ 9/2 | gain:0.12881001250119212 clip:1 note:A7 s:piano release:0.1 pan:0.7361111111111112 ]", + "[ (7/2 → 4/1) ⇝ 11/2 | gain:0.12881001250119212 clip:1 note:G6 s:piano release:0.1 pan:0.6712962962962963 ]", + "[ (7/2 → 4/1) ⇝ 11/2 | gain:0.12881001250119212 clip:1 note:B6 s:piano release:0.1 pan:0.6898148148148149 ]", + "[ (7/2 → 4/1) ⇝ 11/2 | gain:0.12881001250119212 clip:1 note:F7 s:piano release:0.1 pan:0.7175925925925926 ]", "[ 11/3 → 4/1 | clip:1 gain:1 note:D7 s:piano release:0.1 pan:0.7037037037037037 ]", "[ 11/3 → 4/1 | clip:1 gain:0.25 note:A6 s:piano release:0.1 pan:0.6805555555555556 ]", - "[ (11/3 → 4/1) ⇝ 13/3 | gain:0.17383743092456522 clip:1 note:G4 s:piano release:0.1 pan:0.5601851851851851 ]", + "[ (11/3 → 4/1) ⇝ 13/3 | gain:0.17240057910570294 clip:1 note:G4 s:piano release:0.1 pan:0.5601851851851851 ]", "[ (23/6 → 4/1) ⇝ 25/6 | clip:1 gain:0.5 note:D7 s:piano release:0.1 pan:0.7037037037037037 ]", "[ (23/6 → 4/1) ⇝ 25/6 | clip:1 gain:0.125 note:A6 s:piano release:0.1 pan:0.6805555555555556 ]", - "[ (23/6 → 4/1) ⇝ 9/2 | gain:0.2619292729580872 clip:1 note:G3 s:piano release:0.1 pan:0.5046296296296297 ]", - "[ 7/2 ⇜ (4/1 → 25/6) | gain:0.1298232110695848 clip:1 note:C5 s:piano release:0.1 pan:0.5833333333333333 ]", + "[ (23/6 → 4/1) ⇝ 9/2 | gain:0.2596464221391696 clip:1 note:G3 s:piano release:0.1 pan:0.5046296296296297 ]", + "[ 7/2 ⇜ (4/1 → 25/6) | gain:0.12881001250119212 clip:1 note:C5 s:piano release:0.1 pan:0.5833333333333333 ]", "[ 23/6 ⇜ (4/1 → 25/6) | clip:1 gain:0.5 note:G6 s:piano release:0.1 pan:0.6712962962962963 ]", "[ 23/6 ⇜ (4/1 → 25/6) | clip:1 gain:0.125 note:D6 s:piano release:0.1 pan:0.6481481481481481 ]", - "[ 11/3 ⇜ (4/1 → 13/3) | gain:0.17383743092456522 clip:1 note:C4 s:piano release:0.1 pan:0.5277777777777778 ]", + "[ 11/3 ⇜ (4/1 → 13/3) | gain:0.17240057910570294 clip:1 note:C4 s:piano release:0.1 pan:0.5277777777777778 ]", "[ 4/1 → 13/3 | clip:1 gain:1 note:D6 s:piano release:0.1 pan:0.6481481481481481 ]", "[ 4/1 → 13/3 | clip:1 gain:0.25 note:G6 s:piano release:0.1 pan:0.6712962962962963 ]", - "[ 5/2 ⇜ (4/1 → 9/2) | gain:0.25762002500238423 clip:1 note:C4 s:piano release:0.1 pan:0.5277777777777778 ]", - "[ 5/2 ⇜ (4/1 → 9/2) | gain:0.25762002500238423 clip:1 note:Eb4 s:piano release:0.1 pan:0.5416666666666667 ]", - "[ 5/2 ⇜ (4/1 → 9/2) | gain:0.25762002500238423 clip:1 note:Bb4 s:piano release:0.1 pan:0.5740740740740741 ]", - "[ 7/2 ⇜ (4/1 → 9/2) | gain:0.26075614638684785 clip:1 note:C5 s:piano release:0.1 pan:0.5833333333333333 ]", - "[ 7/2 ⇜ (4/1 → 9/2) | gain:0.13037807319342393 clip:1 note:D7 s:piano release:0.1 pan:0.7037037037037037 ]", - "[ 23/6 ⇜ (4/1 → 9/2) | gain:0.2619292729580872 clip:1 note:C3 s:piano release:0.1 pan:0.4722222222222222 ]", - "[ 4/1 → 14/3 | gain:0.5263296263974214 clip:1 note:C2 s:piano release:0.1 pan:0.41666666666666663 ]", - "[ 3/1 ⇜ (4/1 → 5/1) | gain:0.17383743092456522 clip:1 note:C5 s:piano release:0.1 pan:0.5833333333333333 ]", - "[ 3/1 ⇜ (4/1 → 5/1) | gain:0.17383743092456522 clip:1 note:Eb5 s:piano release:0.1 pan:0.5972222222222222 ]", - "[ 3/1 ⇜ (4/1 → 5/1) | gain:0.17383743092456522 clip:1 note:Bb5 s:piano release:0.1 pan:0.6296296296296297 ]", - "[ 7/2 ⇜ (4/1 → 5/1) ⇝ 11/2 | gain:0.13223078370965538 clip:1 note:C6 s:piano release:0.1 pan:0.6388888888888888 ]", - "[ 7/2 ⇜ (4/1 → 5/1) ⇝ 11/2 | gain:0.13223078370965538 clip:1 note:Eb6 s:piano release:0.1 pan:0.6527777777777778 ]", - "[ 7/2 ⇜ (4/1 → 5/1) ⇝ 11/2 | gain:0.13223078370965538 clip:1 note:Bb6 s:piano release:0.1 pan:0.6851851851851851 ]", - "[ 4/1 → 5/1 | gain:0.5289231348386215 clip:1 note:D4 s:piano release:0.1 pan:0.537037037037037 ]", - "[ 4/1 → 5/1 | gain:0.17630771161287384 clip:1 note:C6 s:piano release:0.1 pan:0.6388888888888888 ]", - "[ (4/1 → 5/1) ⇝ 6/1 | gain:0.5374082884455618 clip:1 note:C3 s:piano release:0.1 pan:0.4722222222222222 ]", - "[ (4/1 → 5/1) ⇝ 6/1 | gain:0.5374082884455618 clip:1 note:Eb3 s:piano release:0.1 pan:0.4861111111111111 ]", - "[ (4/1 → 5/1) ⇝ 6/1 | gain:0.5374082884455618 clip:1 note:Bb3 s:piano release:0.1 pan:0.5185185185185186 ]", + "[ 5/2 ⇜ (4/1 → 9/2) | gain:0.2530928417288911 clip:1 note:C4 s:piano release:0.1 pan:0.5277777777777778 ]", + "[ 5/2 ⇜ (4/1 → 9/2) | gain:0.2530928417288911 clip:1 note:Eb4 s:piano release:0.1 pan:0.5416666666666667 ]", + "[ 5/2 ⇜ (4/1 → 9/2) | gain:0.2530928417288911 clip:1 note:Bb4 s:piano release:0.1 pan:0.5740740740740741 ]", + "[ 7/2 ⇜ (4/1 → 9/2) | gain:0.25762002500238423 clip:1 note:C5 s:piano release:0.1 pan:0.5833333333333333 ]", + "[ 7/2 ⇜ (4/1 → 9/2) | gain:0.12881001250119212 clip:1 note:D7 s:piano release:0.1 pan:0.7037037037037037 ]", + "[ 23/6 ⇜ (4/1 → 9/2) | gain:0.2596464221391696 clip:1 note:C3 s:piano release:0.1 pan:0.4722222222222222 ]", + "[ 4/1 → 14/3 | gain:0.5215122927736957 clip:1 note:C2 s:piano release:0.1 pan:0.41666666666666663 ]", + "[ 3/1 ⇜ (4/1 → 5/1) | gain:0.17004500671881523 clip:1 note:C5 s:piano release:0.1 pan:0.5833333333333333 ]", + "[ 3/1 ⇜ (4/1 → 5/1) | gain:0.17004500671881523 clip:1 note:Eb5 s:piano release:0.1 pan:0.5972222222222222 ]", + "[ 3/1 ⇜ (4/1 → 5/1) | gain:0.17004500671881523 clip:1 note:Bb5 s:piano release:0.1 pan:0.6296296296296297 ]", + "[ 7/2 ⇜ (4/1 → 5/1) ⇝ 11/2 | gain:0.12881001250119212 clip:1 note:C6 s:piano release:0.1 pan:0.6388888888888888 ]", + "[ 7/2 ⇜ (4/1 → 5/1) ⇝ 11/2 | gain:0.12881001250119212 clip:1 note:Eb6 s:piano release:0.1 pan:0.6527777777777778 ]", + "[ 7/2 ⇜ (4/1 → 5/1) ⇝ 11/2 | gain:0.12881001250119212 clip:1 note:Bb6 s:piano release:0.1 pan:0.6851851851851851 ]", + "[ 4/1 → 5/1 | gain:0.5215122927736957 clip:1 note:D4 s:piano release:0.1 pan:0.537037037037037 ]", + "[ 4/1 → 5/1 | gain:0.17383743092456522 clip:1 note:C6 s:piano release:0.1 pan:0.6388888888888888 ]", + "[ (4/1 → 5/1) ⇝ 6/1 | gain:0.5215122927736957 clip:1 note:C3 s:piano release:0.1 pan:0.4722222222222222 ]", + "[ (4/1 → 5/1) ⇝ 6/1 | gain:0.5215122927736957 clip:1 note:Eb3 s:piano release:0.1 pan:0.4861111111111111 ]", + "[ (4/1 → 5/1) ⇝ 6/1 | gain:0.5215122927736957 clip:1 note:Bb3 s:piano release:0.1 pan:0.5185185185185186 ]", "[ 25/6 → 9/2 | clip:1 gain:0.5 note:D6 s:piano release:0.1 pan:0.6481481481481481 ]", "[ 25/6 → 9/2 | clip:1 gain:0.125 note:G6 s:piano release:0.1 pan:0.6712962962962963 ]", - "[ 25/6 → 29/6 | gain:0.13223078370965538 clip:1 note:C5 s:piano release:0.1 pan:0.5833333333333333 ]", + "[ 25/6 → 29/6 | gain:0.1309646364790436 clip:1 note:C5 s:piano release:0.1 pan:0.5833333333333333 ]", "[ 13/3 → 14/3 | clip:1 gain:1 note:G6 s:piano release:0.1 pan:0.6712962962962963 ]", "[ 13/3 → 14/3 | clip:1 gain:0.25 note:D6 s:piano release:0.1 pan:0.6481481481481481 ]", - "[ 13/3 → 5/1 | gain:0.1772120893804629 clip:1 note:C4 s:piano release:0.1 pan:0.5277777777777778 ]", + "[ 13/3 → 5/1 | gain:0.17544320879914047 clip:1 note:C4 s:piano release:0.1 pan:0.5277777777777778 ]", "[ 9/2 → 29/6 | clip:1 gain:0.5 note:G6 s:piano release:0.1 pan:0.6712962962962963 ]", "[ 9/2 → 29/6 | clip:1 gain:0.125 note:D6 s:piano release:0.1 pan:0.6481481481481481 ]", - "[ (9/2 → 5/1) ⇝ 31/6 | gain:0.26723291891932766 clip:1 note:C3 s:piano release:0.1 pan:0.4722222222222222 ]", - "[ (9/2 → 5/1) ⇝ 11/2 | gain:0.2687041442227809 clip:1 note:D5 s:piano release:0.1 pan:0.5925925925925926 ]", - "[ (9/2 → 5/1) ⇝ 11/2 | gain:0.13435207211139044 clip:1 note:C7 s:piano release:0.1 pan:0.6944444444444444 ]", - "[ (9/2 → 5/1) ⇝ 13/2 | gain:0.273436125488663 clip:1 note:C4 s:piano release:0.1 pan:0.5277777777777778 ]", - "[ (9/2 → 5/1) ⇝ 13/2 | gain:0.273436125488663 clip:1 note:Eb4 s:piano release:0.1 pan:0.5416666666666667 ]", - "[ (9/2 → 5/1) ⇝ 13/2 | gain:0.273436125488663 clip:1 note:Bb4 s:piano release:0.1 pan:0.5740740740740741 ]", + "[ (9/2 → 5/1) ⇝ 31/6 | gain:0.26446156741931076 clip:1 note:C3 s:piano release:0.1 pan:0.4722222222222222 ]", + "[ (9/2 → 5/1) ⇝ 11/2 | gain:0.26446156741931076 clip:1 note:D5 s:piano release:0.1 pan:0.5925925925925926 ]", + "[ (9/2 → 5/1) ⇝ 11/2 | gain:0.13223078370965538 clip:1 note:C7 s:piano release:0.1 pan:0.6944444444444444 ]", + "[ (9/2 → 5/1) ⇝ 13/2 | gain:0.26446156741931076 clip:1 note:C4 s:piano release:0.1 pan:0.5277777777777778 ]", + "[ (9/2 → 5/1) ⇝ 13/2 | gain:0.26446156741931076 clip:1 note:Eb4 s:piano release:0.1 pan:0.5416666666666667 ]", + "[ (9/2 → 5/1) ⇝ 13/2 | gain:0.26446156741931076 clip:1 note:Bb4 s:piano release:0.1 pan:0.5740740740740741 ]", "[ 14/3 → 5/1 | clip:1 gain:1 note:D6 s:piano release:0.1 pan:0.6481481481481481 ]", "[ 14/3 → 5/1 | clip:1 gain:0.25 note:G6 s:piano release:0.1 pan:0.6712962962962963 ]", - "[ (14/3 → 5/1) ⇝ 16/3 | gain:0.5374082884455618 clip:1 note:C2 s:piano release:0.1 pan:0.41666666666666663 ]", + "[ (14/3 → 5/1) ⇝ 16/3 | gain:0.5316362681413888 clip:1 note:C2 s:piano release:0.1 pan:0.41666666666666663 ]", "[ (29/6 → 5/1) ⇝ 31/6 | clip:1 gain:0.5 note:D6 s:piano release:0.1 pan:0.6481481481481481 ]", "[ (29/6 → 5/1) ⇝ 31/6 | clip:1 gain:0.125 note:G6 s:piano release:0.1 pan:0.6712962962962963 ]", - "[ (29/6 → 5/1) ⇝ 11/2 | gain:0.1351149289525865 clip:1 note:C5 s:piano release:0.1 pan:0.5833333333333333 ]", - "[ 9/2 ⇜ (5/1 → 31/6) | gain:0.26723291891932766 clip:1 note:C3 s:piano release:0.1 pan:0.4722222222222222 ]", + "[ (29/6 → 5/1) ⇝ 11/2 | gain:0.13361645945966383 clip:1 note:C5 s:piano release:0.1 pan:0.5833333333333333 ]", + "[ 9/2 ⇜ (5/1 → 31/6) | gain:0.26446156741931076 clip:1 note:C3 s:piano release:0.1 pan:0.4722222222222222 ]", "[ 29/6 ⇜ (5/1 → 31/6) | clip:1 gain:0.5 note:D6 s:piano release:0.1 pan:0.6481481481481481 ]", "[ 29/6 ⇜ (5/1 → 31/6) | clip:1 gain:0.125 note:G6 s:piano release:0.1 pan:0.6712962962962963 ]", - "[ 14/3 ⇜ (5/1 → 16/3) | gain:0.5374082884455618 clip:1 note:C2 s:piano release:0.1 pan:0.41666666666666663 ]", + "[ 14/3 ⇜ (5/1 → 16/3) | gain:0.5316362681413888 clip:1 note:C2 s:piano release:0.1 pan:0.41666666666666663 ]", "[ 5/1 → 16/3 | clip:1 gain:1 note:G6 s:piano release:0.1 pan:0.6712962962962963 ]", "[ 5/1 → 16/3 | clip:1 gain:0.25 note:D6 s:piano release:0.1 pan:0.6481481481481481 ]", - "[ 7/2 ⇜ (5/1 → 11/2) | gain:0.13223078370965538 clip:1 note:C6 s:piano release:0.1 pan:0.6388888888888888 ]", - "[ 7/2 ⇜ (5/1 → 11/2) | gain:0.13223078370965538 clip:1 note:Eb6 s:piano release:0.1 pan:0.6527777777777778 ]", - "[ 7/2 ⇜ (5/1 → 11/2) | gain:0.13223078370965538 clip:1 note:Bb6 s:piano release:0.1 pan:0.6851851851851851 ]", - "[ 9/2 ⇜ (5/1 → 11/2) | gain:0.2687041442227809 clip:1 note:D5 s:piano release:0.1 pan:0.5925925925925926 ]", - "[ 9/2 ⇜ (5/1 → 11/2) | gain:0.13435207211139044 clip:1 note:C7 s:piano release:0.1 pan:0.6944444444444444 ]", - "[ 29/6 ⇜ (5/1 → 11/2) | gain:0.1351149289525865 clip:1 note:C5 s:piano release:0.1 pan:0.5833333333333333 ]", - "[ 5/1 → 17/3 | gain:0.1812052951550778 clip:1 note:C4 s:piano release:0.1 pan:0.5277777777777778 ]", - "[ 4/1 ⇜ (5/1 → 6/1) | gain:0.5374082884455618 clip:1 note:C3 s:piano release:0.1 pan:0.4722222222222222 ]", - "[ 4/1 ⇜ (5/1 → 6/1) | gain:0.5374082884455618 clip:1 note:Eb3 s:piano release:0.1 pan:0.4861111111111111 ]", - "[ 4/1 ⇜ (5/1 → 6/1) | gain:0.5374082884455618 clip:1 note:Bb3 s:piano release:0.1 pan:0.5185185185185186 ]", - "[ 9/2 ⇜ (5/1 → 6/1) ⇝ 13/2 | gain:0.273436125488663 clip:1 note:C4 s:piano release:0.1 pan:0.5277777777777778 ]", - "[ 9/2 ⇜ (5/1 → 6/1) ⇝ 13/2 | gain:0.273436125488663 clip:1 note:Eb4 s:piano release:0.1 pan:0.5416666666666667 ]", - "[ 9/2 ⇜ (5/1 → 6/1) ⇝ 13/2 | gain:0.273436125488663 clip:1 note:Bb4 s:piano release:0.1 pan:0.5740740740740741 ]", - "[ 5/1 → 6/1 | gain:0.546872250977326 clip:1 note:C4 s:piano release:0.1 pan:0.5277777777777778 ]", - "[ 5/1 → 6/1 | gain:0.1822907503257753 clip:1 note:D6 s:piano release:0.1 pan:0.6481481481481481 ]", - "[ (5/1 → 6/1) ⇝ 7/1 | gain:0.18573092140656322 clip:1 note:C5 s:piano release:0.1 pan:0.5833333333333333 ]", - "[ (5/1 → 6/1) ⇝ 7/1 | gain:0.18573092140656322 clip:1 note:Eb5 s:piano release:0.1 pan:0.5972222222222222 ]", - "[ (5/1 → 6/1) ⇝ 7/1 | gain:0.18573092140656322 clip:1 note:Bb5 s:piano release:0.1 pan:0.6296296296296297 ]", + "[ 7/2 ⇜ (5/1 → 11/2) | gain:0.12881001250119212 clip:1 note:C6 s:piano release:0.1 pan:0.6388888888888888 ]", + "[ 7/2 ⇜ (5/1 → 11/2) | gain:0.12881001250119212 clip:1 note:Eb6 s:piano release:0.1 pan:0.6527777777777778 ]", + "[ 7/2 ⇜ (5/1 → 11/2) | gain:0.12881001250119212 clip:1 note:Bb6 s:piano release:0.1 pan:0.6851851851851851 ]", + "[ 9/2 ⇜ (5/1 → 11/2) | gain:0.26446156741931076 clip:1 note:D5 s:piano release:0.1 pan:0.5925925925925926 ]", + "[ 9/2 ⇜ (5/1 → 11/2) | gain:0.13223078370965538 clip:1 note:C7 s:piano release:0.1 pan:0.6944444444444444 ]", + "[ 29/6 ⇜ (5/1 → 11/2) | gain:0.13361645945966383 clip:1 note:C5 s:piano release:0.1 pan:0.5833333333333333 ]", + "[ 5/1 → 17/3 | gain:0.17913609614852058 clip:1 note:C4 s:piano release:0.1 pan:0.5277777777777778 ]", + "[ 4/1 ⇜ (5/1 → 6/1) | gain:0.5215122927736957 clip:1 note:C3 s:piano release:0.1 pan:0.4722222222222222 ]", + "[ 4/1 ⇜ (5/1 → 6/1) | gain:0.5215122927736957 clip:1 note:Eb3 s:piano release:0.1 pan:0.4861111111111111 ]", + "[ 4/1 ⇜ (5/1 → 6/1) | gain:0.5215122927736957 clip:1 note:Bb3 s:piano release:0.1 pan:0.5185185185185186 ]", + "[ 9/2 ⇜ (5/1 → 6/1) ⇝ 13/2 | gain:0.26446156741931076 clip:1 note:C4 s:piano release:0.1 pan:0.5277777777777778 ]", + "[ 9/2 ⇜ (5/1 → 6/1) ⇝ 13/2 | gain:0.26446156741931076 clip:1 note:Eb4 s:piano release:0.1 pan:0.5416666666666667 ]", + "[ 9/2 ⇜ (5/1 → 6/1) ⇝ 13/2 | gain:0.26446156741931076 clip:1 note:Bb4 s:piano release:0.1 pan:0.5740740740740741 ]", + "[ 5/1 → 6/1 | gain:0.5374082884455618 clip:1 note:C4 s:piano release:0.1 pan:0.5277777777777778 ]", + "[ 5/1 → 6/1 | gain:0.17913609614852058 clip:1 note:D6 s:piano release:0.1 pan:0.6481481481481481 ]", + "[ (5/1 → 6/1) ⇝ 7/1 | gain:0.17913609614852058 clip:1 note:C5 s:piano release:0.1 pan:0.5833333333333333 ]", + "[ (5/1 → 6/1) ⇝ 7/1 | gain:0.17913609614852058 clip:1 note:Eb5 s:piano release:0.1 pan:0.5972222222222222 ]", + "[ (5/1 → 6/1) ⇝ 7/1 | gain:0.17913609614852058 clip:1 note:Bb5 s:piano release:0.1 pan:0.6296296296296297 ]", "[ 31/6 → 11/2 | clip:1 gain:0.5 note:G6 s:piano release:0.1 pan:0.6712962962962963 ]", "[ 31/6 → 11/2 | clip:1 gain:0.125 note:D6 s:piano release:0.1 pan:0.6481481481481481 ]", - "[ 31/6 → 35/6 | gain:0.273436125488663 clip:1 note:C3 s:piano release:0.1 pan:0.4722222222222222 ]", + "[ 31/6 → 35/6 | gain:0.270229857905173 clip:1 note:C3 s:piano release:0.1 pan:0.4722222222222222 ]", "[ 16/3 → 17/3 | clip:1 gain:1 note:D6 s:piano release:0.1 pan:0.6481481481481481 ]", "[ 16/3 → 17/3 | clip:1 gain:0.25 note:G6 s:piano release:0.1 pan:0.6712962962962963 ]", - "[ 16/3 → 6/1 | gain:0.5502239722994923 clip:1 note:C2 s:piano release:0.1 pan:0.41666666666666663 ]", + "[ 16/3 → 6/1 | gain:0.5436158854652334 clip:1 note:C2 s:piano release:0.1 pan:0.41666666666666663 ]", "[ 11/2 → 35/6 | clip:1 gain:0.5 note:D6 s:piano release:0.1 pan:0.6481481481481481 ]", "[ 11/2 → 35/6 | clip:1 gain:0.125 note:G6 s:piano release:0.1 pan:0.6712962962962963 ]", - "[ (11/2 → 6/1) ⇝ 37/6 | gain:0.1384164835303142 clip:1 note:C5 s:piano release:0.1 pan:0.5833333333333333 ]", - "[ (11/2 → 6/1) ⇝ 13/2 | gain:0.27859638210984483 clip:1 note:C5 s:piano release:0.1 pan:0.5833333333333333 ]", - "[ (11/2 → 6/1) ⇝ 13/2 | gain:0.13929819105492242 clip:1 note:D7 s:piano release:0.1 pan:0.7037037037037037 ]", - "[ (11/2 → 6/1) ⇝ 15/2 | gain:0.14205631840689176 clip:1 note:C6 s:piano release:0.1 pan:0.6388888888888888 ]", - "[ (11/2 → 6/1) ⇝ 15/2 | gain:0.14205631840689176 clip:1 note:Eb6 s:piano release:0.1 pan:0.6527777777777778 ]", - "[ (11/2 → 6/1) ⇝ 15/2 | gain:0.14205631840689176 clip:1 note:Bb6 s:piano release:0.1 pan:0.6851851851851851 ]", + "[ (11/2 → 6/1) ⇝ 37/6 | gain:0.1367180627443315 clip:1 note:C5 s:piano release:0.1 pan:0.5833333333333333 ]", + "[ (11/2 → 6/1) ⇝ 13/2 | gain:0.273436125488663 clip:1 note:C5 s:piano release:0.1 pan:0.5833333333333333 ]", + "[ (11/2 → 6/1) ⇝ 13/2 | gain:0.1367180627443315 clip:1 note:D7 s:piano release:0.1 pan:0.7037037037037037 ]", + "[ (11/2 → 6/1) ⇝ 15/2 | gain:0.1367180627443315 clip:1 note:C6 s:piano release:0.1 pan:0.6388888888888888 ]", + "[ (11/2 → 6/1) ⇝ 15/2 | gain:0.1367180627443315 clip:1 note:Eb6 s:piano release:0.1 pan:0.6527777777777778 ]", + "[ (11/2 → 6/1) ⇝ 15/2 | gain:0.1367180627443315 clip:1 note:Bb6 s:piano release:0.1 pan:0.6851851851851851 ]", "[ 17/3 → 6/1 | clip:1 gain:1 note:G6 s:piano release:0.1 pan:0.6712962962962963 ]", "[ 17/3 → 6/1 | clip:1 gain:0.25 note:D6 s:piano release:0.1 pan:0.6481481481481481 ]", - "[ (17/3 → 6/1) ⇝ 19/3 | gain:0.18573092140656322 clip:1 note:C4 s:piano release:0.1 pan:0.5277777777777778 ]", + "[ (17/3 → 6/1) ⇝ 19/3 | gain:0.18340799076649741 clip:1 note:C4 s:piano release:0.1 pan:0.5277777777777778 ]", "[ (35/6 → 6/1) ⇝ 37/6 | clip:1 gain:0.5 note:G6 s:piano release:0.1 pan:0.6712962962962963 ]", "[ (35/6 → 6/1) ⇝ 37/6 | clip:1 gain:0.125 note:D6 s:piano release:0.1 pan:0.6481481481481481 ]", - "[ (35/6 → 6/1) ⇝ 13/2 | gain:0.28039942590514827 clip:1 note:C3 s:piano release:0.1 pan:0.4722222222222222 ]", - "[ 11/2 ⇜ (6/1 → 37/6) | gain:0.1384164835303142 clip:1 note:F5 s:piano release:0.1 pan:0.6064814814814814 ]", + "[ (35/6 → 6/1) ⇝ 13/2 | gain:0.2768329670606284 clip:1 note:C3 s:piano release:0.1 pan:0.4722222222222222 ]", + "[ 11/2 ⇜ (6/1 → 37/6) | gain:0.1367180627443315 clip:1 note:F5 s:piano release:0.1 pan:0.6064814814814814 ]", "[ 35/6 ⇜ (6/1 → 37/6) | clip:1 gain:0.5 note:C7 s:piano release:0.1 pan:0.6944444444444444 ]", "[ 35/6 ⇜ (6/1 → 37/6) | clip:1 gain:0.125 note:G6 s:piano release:0.1 pan:0.6712962962962963 ]", - "[ 17/3 ⇜ (6/1 → 19/3) | gain:0.18573092140656322 clip:1 note:F4 s:piano release:0.1 pan:0.5509259259259259 ]", + "[ 17/3 ⇜ (6/1 → 19/3) | gain:0.18340799076649741 clip:1 note:F4 s:piano release:0.1 pan:0.5509259259259259 ]", "[ 6/1 → 19/3 | clip:1 gain:1 note:G6 s:piano release:0.1 pan:0.6712962962962963 ]", "[ 6/1 → 19/3 | clip:1 gain:0.25 note:C7 s:piano release:0.1 pan:0.6944444444444444 ]", - "[ 9/2 ⇜ (6/1 → 13/2) | gain:0.273436125488663 clip:1 note:F4 s:piano release:0.1 pan:0.5509259259259259 ]", - "[ 9/2 ⇜ (6/1 → 13/2) | gain:0.273436125488663 clip:1 note:A4 s:piano release:0.1 pan:0.5694444444444444 ]", - "[ 9/2 ⇜ (6/1 → 13/2) | gain:0.273436125488663 clip:1 note:Eb5 s:piano release:0.1 pan:0.5972222222222222 ]", - "[ 11/2 ⇜ (6/1 → 13/2) | gain:0.27859638210984483 clip:1 note:F5 s:piano release:0.1 pan:0.6064814814814814 ]", - "[ 11/2 ⇜ (6/1 → 13/2) | gain:0.13929819105492242 clip:1 note:G7 s:piano release:0.1 pan:0.7268518518518519 ]", - "[ 35/6 ⇜ (6/1 → 13/2) | gain:0.28039942590514827 clip:1 note:F3 s:piano release:0.1 pan:0.49537037037037035 ]", - "[ 6/1 → 20/3 | gain:0.5644783658979073 clip:1 note:F2 s:piano release:0.1 pan:0.4398148148148148 ]", - "[ 5/1 ⇜ (6/1 → 7/1) | gain:0.18573092140656322 clip:1 note:F5 s:piano release:0.1 pan:0.6064814814814814 ]", - "[ 5/1 ⇜ (6/1 → 7/1) | gain:0.18573092140656322 clip:1 note:A5 s:piano release:0.1 pan:0.625 ]", - "[ 5/1 ⇜ (6/1 → 7/1) | gain:0.18573092140656322 clip:1 note:Eb6 s:piano release:0.1 pan:0.6527777777777778 ]", - "[ 11/2 ⇜ (6/1 → 7/1) ⇝ 15/2 | gain:0.14205631840689176 clip:1 note:F6 s:piano release:0.1 pan:0.662037037037037 ]", - "[ 11/2 ⇜ (6/1 → 7/1) ⇝ 15/2 | gain:0.14205631840689176 clip:1 note:A6 s:piano release:0.1 pan:0.6805555555555556 ]", - "[ 11/2 ⇜ (6/1 → 7/1) ⇝ 15/2 | gain:0.14205631840689176 clip:1 note:Eb7 s:piano release:0.1 pan:0.7083333333333333 ]", - "[ 6/1 → 7/1 | gain:0.568225273627567 clip:1 note:G4 s:piano release:0.1 pan:0.5601851851851851 ]", - "[ 6/1 → 7/1 | gain:0.18940842454252232 clip:1 note:F6 s:piano release:0.1 pan:0.662037037037037 ]", - "[ (6/1 → 7/1) ⇝ 8/1 | gain:0.5798073875911826 clip:1 note:F3 s:piano release:0.1 pan:0.49537037037037035 ]", - "[ (6/1 → 7/1) ⇝ 8/1 | gain:0.5798073875911826 clip:1 note:A3 s:piano release:0.1 pan:0.5138888888888888 ]", - "[ (6/1 → 7/1) ⇝ 8/1 | gain:0.5798073875911826 clip:1 note:Eb4 s:piano release:0.1 pan:0.5416666666666667 ]", + "[ 9/2 ⇜ (6/1 → 13/2) | gain:0.26446156741931076 clip:1 note:F4 s:piano release:0.1 pan:0.5509259259259259 ]", + "[ 9/2 ⇜ (6/1 → 13/2) | gain:0.26446156741931076 clip:1 note:A4 s:piano release:0.1 pan:0.5694444444444444 ]", + "[ 9/2 ⇜ (6/1 → 13/2) | gain:0.26446156741931076 clip:1 note:Eb5 s:piano release:0.1 pan:0.5972222222222222 ]", + "[ 11/2 ⇜ (6/1 → 13/2) | gain:0.273436125488663 clip:1 note:F5 s:piano release:0.1 pan:0.6064814814814814 ]", + "[ 11/2 ⇜ (6/1 → 13/2) | gain:0.1367180627443315 clip:1 note:G7 s:piano release:0.1 pan:0.7268518518518519 ]", + "[ 35/6 ⇜ (6/1 → 13/2) | gain:0.2768329670606284 clip:1 note:F3 s:piano release:0.1 pan:0.49537037037037035 ]", + "[ 6/1 → 20/3 | gain:0.5571927642196897 clip:1 note:F2 s:piano release:0.1 pan:0.4398148148148148 ]", + "[ 5/1 ⇜ (6/1 → 7/1) | gain:0.17913609614852058 clip:1 note:F5 s:piano release:0.1 pan:0.6064814814814814 ]", + "[ 5/1 ⇜ (6/1 → 7/1) | gain:0.17913609614852058 clip:1 note:A5 s:piano release:0.1 pan:0.625 ]", + "[ 5/1 ⇜ (6/1 → 7/1) | gain:0.17913609614852058 clip:1 note:Eb6 s:piano release:0.1 pan:0.6527777777777778 ]", + "[ 11/2 ⇜ (6/1 → 7/1) ⇝ 15/2 | gain:0.1367180627443315 clip:1 note:F6 s:piano release:0.1 pan:0.662037037037037 ]", + "[ 11/2 ⇜ (6/1 → 7/1) ⇝ 15/2 | gain:0.1367180627443315 clip:1 note:A6 s:piano release:0.1 pan:0.6805555555555556 ]", + "[ 11/2 ⇜ (6/1 → 7/1) ⇝ 15/2 | gain:0.1367180627443315 clip:1 note:Eb7 s:piano release:0.1 pan:0.7083333333333333 ]", + "[ 6/1 → 7/1 | gain:0.5571927642196897 clip:1 note:G4 s:piano release:0.1 pan:0.5601851851851851 ]", + "[ 6/1 → 7/1 | gain:0.18573092140656322 clip:1 note:F6 s:piano release:0.1 pan:0.662037037037037 ]", + "[ (6/1 → 7/1) ⇝ 8/1 | gain:0.5571927642196897 clip:1 note:F3 s:piano release:0.1 pan:0.49537037037037035 ]", + "[ (6/1 → 7/1) ⇝ 8/1 | gain:0.5571927642196897 clip:1 note:A3 s:piano release:0.1 pan:0.5138888888888888 ]", + "[ (6/1 → 7/1) ⇝ 8/1 | gain:0.5571927642196897 clip:1 note:Eb4 s:piano release:0.1 pan:0.5416666666666667 ]", "[ 37/6 → 13/2 | clip:1 gain:0.5 note:G6 s:piano release:0.1 pan:0.6712962962962963 ]", "[ 37/6 → 13/2 | clip:1 gain:0.125 note:C7 s:piano release:0.1 pan:0.6944444444444444 ]", - "[ 37/6 → 41/6 | gain:0.14205631840689176 clip:1 note:F5 s:piano release:0.1 pan:0.6064814814814814 ]", + "[ 37/6 → 41/6 | gain:0.14019971295257413 clip:1 note:F5 s:piano release:0.1 pan:0.6064814814814814 ]", "[ 19/3 → 20/3 | clip:1 gain:1 note:C7 s:piano release:0.1 pan:0.6944444444444444 ]", "[ 19/3 → 20/3 | clip:1 gain:0.25 note:G6 s:piano release:0.1 pan:0.6712962962962963 ]", - "[ 19/3 → 7/1 | gain:0.19067778621180798 clip:1 note:F4 s:piano release:0.1 pan:0.5509259259259259 ]", + "[ 19/3 → 7/1 | gain:0.18815945529930245 clip:1 note:F4 s:piano release:0.1 pan:0.5509259259259259 ]", "[ 13/2 → 41/6 | clip:1 gain:0.5 note:C7 s:piano release:0.1 pan:0.6944444444444444 ]", "[ 13/2 → 41/6 | clip:1 gain:0.125 note:G6 s:piano release:0.1 pan:0.6712962962962963 ]", - "[ (13/2 → 7/1) ⇝ 43/6 | gain:0.2879481196998103 clip:1 note:F3 s:piano release:0.1 pan:0.49537037037037035 ]", - "[ (13/2 → 7/1) ⇝ 15/2 | gain:0.2899036937955913 clip:1 note:G5 s:piano release:0.1 pan:0.6157407407407407 ]", - "[ (13/2 → 7/1) ⇝ 15/2 | gain:0.14495184689779564 clip:1 note:F7 s:piano release:0.1 pan:0.7175925925925926 ]", - "[ (13/2 → 7/1) ⇝ 17/2 | gain:0.29588166835112206 clip:1 note:F4 s:piano release:0.1 pan:0.5509259259259259 ]", - "[ (13/2 → 7/1) ⇝ 17/2 | gain:0.29588166835112206 clip:1 note:A4 s:piano release:0.1 pan:0.5694444444444444 ]", - "[ (13/2 → 7/1) ⇝ 17/2 | gain:0.29588166835112206 clip:1 note:Eb5 s:piano release:0.1 pan:0.5972222222222222 ]", + "[ (13/2 → 7/1) ⇝ 43/6 | gain:0.2841126368137835 clip:1 note:F3 s:piano release:0.1 pan:0.49537037037037035 ]", + "[ (13/2 → 7/1) ⇝ 15/2 | gain:0.2841126368137835 clip:1 note:G5 s:piano release:0.1 pan:0.6157407407407407 ]", + "[ (13/2 → 7/1) ⇝ 15/2 | gain:0.14205631840689176 clip:1 note:F7 s:piano release:0.1 pan:0.7175925925925926 ]", + "[ (13/2 → 7/1) ⇝ 17/2 | gain:0.2841126368137835 clip:1 note:F4 s:piano release:0.1 pan:0.5509259259259259 ]", + "[ (13/2 → 7/1) ⇝ 17/2 | gain:0.2841126368137835 clip:1 note:A4 s:piano release:0.1 pan:0.5694444444444444 ]", + "[ (13/2 → 7/1) ⇝ 17/2 | gain:0.2841126368137835 clip:1 note:Eb5 s:piano release:0.1 pan:0.5972222222222222 ]", "[ 20/3 → 7/1 | clip:1 gain:1 note:G6 s:piano release:0.1 pan:0.6712962962962963 ]", "[ 20/3 → 7/1 | clip:1 gain:0.25 note:C7 s:piano release:0.1 pan:0.6944444444444444 ]", - "[ (20/3 → 7/1) ⇝ 22/3 | gain:0.5798073875911826 clip:1 note:F2 s:piano release:0.1 pan:0.4398148148148148 ]", + "[ (20/3 → 7/1) ⇝ 22/3 | gain:0.5720333586354239 clip:1 note:F2 s:piano release:0.1 pan:0.4398148148148148 ]", "[ (41/6 → 7/1) ⇝ 43/6 | clip:1 gain:0.5 note:G6 s:piano release:0.1 pan:0.6712962962962963 ]", "[ (41/6 → 7/1) ⇝ 43/6 | clip:1 gain:0.125 note:C7 s:piano release:0.1 pan:0.6944444444444444 ]", - "[ (41/6 → 7/1) ⇝ 15/2 | gain:0.14594003660622698 clip:1 note:F5 s:piano release:0.1 pan:0.6064814814814814 ]", - "[ 13/2 ⇜ (7/1 → 43/6) | gain:0.2879481196998103 clip:1 note:F3 s:piano release:0.1 pan:0.49537037037037035 ]", + "[ (41/6 → 7/1) ⇝ 15/2 | gain:0.14397405984990516 clip:1 note:F5 s:piano release:0.1 pan:0.6064814814814814 ]", + "[ 13/2 ⇜ (7/1 → 43/6) | gain:0.2841126368137835 clip:1 note:F3 s:piano release:0.1 pan:0.49537037037037035 ]", "[ 41/6 ⇜ (7/1 → 43/6) | clip:1 gain:0.5 note:G6 s:piano release:0.1 pan:0.6712962962962963 ]", "[ 41/6 ⇜ (7/1 → 43/6) | clip:1 gain:0.125 note:C7 s:piano release:0.1 pan:0.6944444444444444 ]", - "[ 20/3 ⇜ (7/1 → 22/3) | gain:0.5798073875911826 clip:1 note:F2 s:piano release:0.1 pan:0.4398148148148148 ]", + "[ 20/3 ⇜ (7/1 → 22/3) | gain:0.5720333586354239 clip:1 note:F2 s:piano release:0.1 pan:0.4398148148148148 ]", "[ 7/1 → 22/3 | clip:1 gain:1 note:C7 s:piano release:0.1 pan:0.6944444444444444 ]", "[ 7/1 → 22/3 | clip:1 gain:0.25 note:G6 s:piano release:0.1 pan:0.6712962962962963 ]", - "[ 11/2 ⇜ (7/1 → 15/2) | gain:0.14205631840689176 clip:1 note:F6 s:piano release:0.1 pan:0.662037037037037 ]", - "[ 11/2 ⇜ (7/1 → 15/2) | gain:0.14205631840689176 clip:1 note:A6 s:piano release:0.1 pan:0.6805555555555556 ]", - "[ 11/2 ⇜ (7/1 → 15/2) | gain:0.14205631840689176 clip:1 note:Eb7 s:piano release:0.1 pan:0.7083333333333333 ]", - "[ 13/2 ⇜ (7/1 → 15/2) | gain:0.2899036937955913 clip:1 note:G5 s:piano release:0.1 pan:0.6157407407407407 ]", - "[ 13/2 ⇜ (7/1 → 15/2) | gain:0.14495184689779564 clip:1 note:F7 s:piano release:0.1 pan:0.7175925925925926 ]", - "[ 41/6 ⇜ (7/1 → 15/2) | gain:0.14594003660622698 clip:1 note:F5 s:piano release:0.1 pan:0.6064814814814814 ]", - "[ 7/1 → 23/3 | gain:0.19591591633675248 clip:1 note:F4 s:piano release:0.1 pan:0.5509259259259259 ]", - "[ 6/1 ⇜ (7/1 → 8/1) | gain:0.5798073875911826 clip:1 note:F3 s:piano release:0.1 pan:0.49537037037037035 ]", - "[ 6/1 ⇜ (7/1 → 8/1) | gain:0.5798073875911826 clip:1 note:A3 s:piano release:0.1 pan:0.5138888888888888 ]", - "[ 6/1 ⇜ (7/1 → 8/1) | gain:0.5798073875911826 clip:1 note:Eb4 s:piano release:0.1 pan:0.5416666666666667 ]", - "[ 13/2 ⇜ (7/1 → 8/1) ⇝ 17/2 | gain:0.29588166835112206 clip:1 note:F4 s:piano release:0.1 pan:0.5509259259259259 ]", - "[ 13/2 ⇜ (7/1 → 8/1) ⇝ 17/2 | gain:0.29588166835112206 clip:1 note:A4 s:piano release:0.1 pan:0.5694444444444444 ]", - "[ 13/2 ⇜ (7/1 → 8/1) ⇝ 17/2 | gain:0.29588166835112206 clip:1 note:Eb5 s:piano release:0.1 pan:0.5972222222222222 ]", - "[ 7/1 → 8/1 | gain:0.5917633367022441 clip:1 note:F4 s:piano release:0.1 pan:0.5509259259259259 ]", - "[ 7/1 → 8/1 | gain:0.1972544455674147 clip:1 note:G6 s:piano release:0.1 pan:0.6712962962962963 ]", - "[ (7/1 → 8/1) ⇝ 9/1 | gain:0.20130281100670494 clip:1 note:F5 s:piano release:0.1 pan:0.6064814814814814 ]", - "[ (7/1 → 8/1) ⇝ 9/1 | gain:0.20130281100670494 clip:1 note:A5 s:piano release:0.1 pan:0.625 ]", - "[ (7/1 → 8/1) ⇝ 9/1 | gain:0.20130281100670494 clip:1 note:Eb6 s:piano release:0.1 pan:0.6527777777777778 ]", + "[ 11/2 ⇜ (7/1 → 15/2) | gain:0.1367180627443315 clip:1 note:F6 s:piano release:0.1 pan:0.662037037037037 ]", + "[ 11/2 ⇜ (7/1 → 15/2) | gain:0.1367180627443315 clip:1 note:A6 s:piano release:0.1 pan:0.6805555555555556 ]", + "[ 11/2 ⇜ (7/1 → 15/2) | gain:0.1367180627443315 clip:1 note:Eb7 s:piano release:0.1 pan:0.7083333333333333 ]", + "[ 13/2 ⇜ (7/1 → 15/2) | gain:0.2841126368137835 clip:1 note:G5 s:piano release:0.1 pan:0.6157407407407407 ]", + "[ 13/2 ⇜ (7/1 → 15/2) | gain:0.14205631840689176 clip:1 note:F7 s:piano release:0.1 pan:0.7175925925925926 ]", + "[ 41/6 ⇜ (7/1 → 15/2) | gain:0.14397405984990516 clip:1 note:F5 s:piano release:0.1 pan:0.6064814814814814 ]", + "[ 7/1 → 23/3 | gain:0.19326912919706085 clip:1 note:F4 s:piano release:0.1 pan:0.5509259259259259 ]", + "[ 6/1 ⇜ (7/1 → 8/1) | gain:0.5571927642196897 clip:1 note:F3 s:piano release:0.1 pan:0.49537037037037035 ]", + "[ 6/1 ⇜ (7/1 → 8/1) | gain:0.5571927642196897 clip:1 note:A3 s:piano release:0.1 pan:0.5138888888888888 ]", + "[ 6/1 ⇜ (7/1 → 8/1) | gain:0.5571927642196897 clip:1 note:Eb4 s:piano release:0.1 pan:0.5416666666666667 ]", + "[ 13/2 ⇜ (7/1 → 8/1) ⇝ 17/2 | gain:0.2841126368137835 clip:1 note:F4 s:piano release:0.1 pan:0.5509259259259259 ]", + "[ 13/2 ⇜ (7/1 → 8/1) ⇝ 17/2 | gain:0.2841126368137835 clip:1 note:A4 s:piano release:0.1 pan:0.5694444444444444 ]", + "[ 13/2 ⇜ (7/1 → 8/1) ⇝ 17/2 | gain:0.2841126368137835 clip:1 note:Eb5 s:piano release:0.1 pan:0.5972222222222222 ]", + "[ 7/1 → 8/1 | gain:0.5798073875911826 clip:1 note:F4 s:piano release:0.1 pan:0.5509259259259259 ]", + "[ 7/1 → 8/1 | gain:0.19326912919706085 clip:1 note:G6 s:piano release:0.1 pan:0.6712962962962963 ]", + "[ (7/1 → 8/1) ⇝ 9/1 | gain:0.19326912919706085 clip:1 note:F5 s:piano release:0.1 pan:0.6064814814814814 ]", + "[ (7/1 → 8/1) ⇝ 9/1 | gain:0.19326912919706085 clip:1 note:A5 s:piano release:0.1 pan:0.625 ]", + "[ (7/1 → 8/1) ⇝ 9/1 | gain:0.19326912919706085 clip:1 note:Eb6 s:piano release:0.1 pan:0.6527777777777778 ]", "[ 43/6 → 15/2 | clip:1 gain:0.5 note:C7 s:piano release:0.1 pan:0.6944444444444444 ]", "[ 43/6 → 15/2 | clip:1 gain:0.125 note:G6 s:piano release:0.1 pan:0.6712962962962963 ]", - "[ 43/6 → 47/6 | gain:0.29588166835112206 clip:1 note:F3 s:piano release:0.1 pan:0.49537037037037035 ]", + "[ 43/6 → 47/6 | gain:0.29188007321245396 clip:1 note:F3 s:piano release:0.1 pan:0.49537037037037035 ]", "[ 22/3 → 23/3 | clip:1 gain:1 note:G6 s:piano release:0.1 pan:0.6712962962962963 ]", "[ 22/3 → 23/3 | clip:1 gain:0.25 note:C7 s:piano release:0.1 pan:0.6944444444444444 ]", - "[ 22/3 → 8/1 | gain:0.595799977452322 clip:1 note:F2 s:piano release:0.1 pan:0.4398148148148148 ]", + "[ 22/3 → 8/1 | gain:0.5877477490102575 clip:1 note:F2 s:piano release:0.1 pan:0.4398148148148148 ]", "[ 15/2 → 47/6 | clip:1 gain:0.5 note:G6 s:piano release:0.1 pan:0.6712962962962963 ]", "[ 15/2 → 47/6 | clip:1 gain:0.125 note:C7 s:piano release:0.1 pan:0.6944444444444444 ]", - "[ (15/2 → 8/1) ⇝ 49/6 | gain:0.1499626710398192 clip:1 note:F5 s:piano release:0.1 pan:0.6064814814814814 ]", - "[ (15/2 → 8/1) ⇝ 17/2 | gain:0.30195421651005744 clip:1 note:F5 s:piano release:0.1 pan:0.6064814814814814 ]", - "[ (15/2 → 8/1) ⇝ 17/2 | gain:0.15097710825502872 clip:1 note:G7 s:piano release:0.1 pan:0.7268518518518519 ]", - "[ (15/2 → 8/1) ⇝ 19/2 | gain:0.1540133823344964 clip:1 note:F6 s:piano release:0.1 pan:0.662037037037037 ]", - "[ (15/2 → 8/1) ⇝ 19/2 | gain:0.1540133823344964 clip:1 note:A6 s:piano release:0.1 pan:0.6805555555555556 ]", - "[ (15/2 → 8/1) ⇝ 19/2 | gain:0.1540133823344964 clip:1 note:Eb7 s:piano release:0.1 pan:0.7083333333333333 ]", + "[ (15/2 → 8/1) ⇝ 49/6 | gain:0.14794083417556103 clip:1 note:F5 s:piano release:0.1 pan:0.6064814814814814 ]", + "[ (15/2 → 8/1) ⇝ 17/2 | gain:0.29588166835112206 clip:1 note:F5 s:piano release:0.1 pan:0.6064814814814814 ]", + "[ (15/2 → 8/1) ⇝ 17/2 | gain:0.14794083417556103 clip:1 note:G7 s:piano release:0.1 pan:0.7268518518518519 ]", + "[ (15/2 → 8/1) ⇝ 19/2 | gain:0.14794083417556103 clip:1 note:F6 s:piano release:0.1 pan:0.662037037037037 ]", + "[ (15/2 → 8/1) ⇝ 19/2 | gain:0.14794083417556103 clip:1 note:A6 s:piano release:0.1 pan:0.6805555555555556 ]", + "[ (15/2 → 8/1) ⇝ 19/2 | gain:0.14794083417556103 clip:1 note:Eb7 s:piano release:0.1 pan:0.7083333333333333 ]", "[ 23/3 → 8/1 | clip:1 gain:1 note:C7 s:piano release:0.1 pan:0.6944444444444444 ]", "[ 23/3 → 8/1 | clip:1 gain:0.25 note:G6 s:piano release:0.1 pan:0.6712962962962963 ]", - "[ (23/3 → 8/1) ⇝ 25/3 | gain:0.20130281100670494 clip:1 note:F4 s:piano release:0.1 pan:0.5509259259259259 ]", + "[ (23/3 → 8/1) ⇝ 25/3 | gain:0.19859999248410734 clip:1 note:F4 s:piano release:0.1 pan:0.5509259259259259 ]", "[ (47/6 → 8/1) ⇝ 49/6 | clip:1 gain:0.5 note:C7 s:piano release:0.1 pan:0.6944444444444444 ]", "[ (47/6 → 8/1) ⇝ 49/6 | clip:1 gain:0.125 note:G6 s:piano release:0.1 pan:0.6712962962962963 ]", - "[ (47/6 → 8/1) ⇝ 17/2 | gain:0.3039830909404765 clip:1 note:F3 s:piano release:0.1 pan:0.49537037037037035 ]", - "[ 15/2 ⇜ (8/1 → 49/6) | gain:0.1499626710398192 clip:1 note:D5 s:piano release:0.1 pan:0.5925925925925926 ]", + "[ (47/6 → 8/1) ⇝ 17/2 | gain:0.2999253420796384 clip:1 note:F3 s:piano release:0.1 pan:0.49537037037037035 ]", + "[ 15/2 ⇜ (8/1 → 49/6) | gain:0.14794083417556103 clip:1 note:D5 s:piano release:0.1 pan:0.5925925925925926 ]", "[ 47/6 ⇜ (8/1 → 49/6) | clip:1 gain:0.5 note:A6 s:piano release:0.1 pan:0.6805555555555556 ]", "[ 47/6 ⇜ (8/1 → 49/6) | clip:1 gain:0.125 note:E6 s:piano release:0.1 pan:0.6574074074074074 ]", - "[ 23/3 ⇜ (8/1 → 25/3) | gain:0.20130281100670494 clip:1 note:D4 s:piano release:0.1 pan:0.537037037037037 ]", + "[ 23/3 ⇜ (8/1 → 25/3) | gain:0.19859999248410734 clip:1 note:D4 s:piano release:0.1 pan:0.537037037037037 ]", "[ 8/1 → 25/3 | clip:1 gain:1 note:E6 s:piano release:0.1 pan:0.6574074074074074 ]", "[ 8/1 → 25/3 | clip:1 gain:0.25 note:A6 s:piano release:0.1 pan:0.6805555555555556 ]", - "[ 13/2 ⇜ (8/1 → 17/2) | gain:0.29588166835112206 clip:1 note:D4 s:piano release:0.1 pan:0.537037037037037 ]", - "[ 13/2 ⇜ (8/1 → 17/2) | gain:0.29588166835112206 clip:1 note:F4 s:piano release:0.1 pan:0.5509259259259259 ]", - "[ 13/2 ⇜ (8/1 → 17/2) | gain:0.29588166835112206 clip:1 note:C5 s:piano release:0.1 pan:0.5833333333333333 ]", - "[ 15/2 ⇜ (8/1 → 17/2) | gain:0.30195421651005744 clip:1 note:D5 s:piano release:0.1 pan:0.5925925925925926 ]", - "[ 15/2 ⇜ (8/1 → 17/2) | gain:0.15097710825502872 clip:1 note:E7 s:piano release:0.1 pan:0.712962962962963 ]", - "[ 47/6 ⇜ (8/1 → 17/2) | gain:0.3039830909404765 clip:1 note:D3 s:piano release:0.1 pan:0.4814814814814815 ]", - "[ 8/1 → 26/3 | gain:0.6120168885879078 clip:1 note:D2 s:piano release:0.1 pan:0.42592592592592593 ]", - "[ 7/1 ⇜ (8/1 → 9/1) | gain:0.20130281100670494 clip:1 note:D5 s:piano release:0.1 pan:0.5925925925925926 ]", - "[ 7/1 ⇜ (8/1 → 9/1) | gain:0.20130281100670494 clip:1 note:F5 s:piano release:0.1 pan:0.6064814814814814 ]", - "[ 7/1 ⇜ (8/1 → 9/1) | gain:0.20130281100670494 clip:1 note:C6 s:piano release:0.1 pan:0.6388888888888888 ]", - "[ 15/2 ⇜ (8/1 → 9/1) ⇝ 19/2 | gain:0.1540133823344964 clip:1 note:D6 s:piano release:0.1 pan:0.6481481481481481 ]", - "[ 15/2 ⇜ (8/1 → 9/1) ⇝ 19/2 | gain:0.1540133823344964 clip:1 note:F6 s:piano release:0.1 pan:0.662037037037037 ]", - "[ 15/2 ⇜ (8/1 → 9/1) ⇝ 19/2 | gain:0.1540133823344964 clip:1 note:C7 s:piano release:0.1 pan:0.6944444444444444 ]", - "[ 8/1 → 9/1 | gain:0.6160535293379856 clip:1 note:E4 s:piano release:0.1 pan:0.5462962962962963 ]", - "[ 8/1 → 9/1 | gain:0.2053511764459952 clip:1 note:D6 s:piano release:0.1 pan:0.6481481481481481 ]", - "[ (8/1 → 9/1) ⇝ 10/1 | gain:0.6280094784490473 clip:1 note:D3 s:piano release:0.1 pan:0.4814814814814815 ]", - "[ (8/1 → 9/1) ⇝ 10/1 | gain:0.6280094784490473 clip:1 note:F3 s:piano release:0.1 pan:0.49537037037037035 ]", - "[ (8/1 → 9/1) ⇝ 10/1 | gain:0.6280094784490473 clip:1 note:C4 s:piano release:0.1 pan:0.5277777777777778 ]", + "[ 13/2 ⇜ (8/1 → 17/2) | gain:0.2841126368137835 clip:1 note:D4 s:piano release:0.1 pan:0.537037037037037 ]", + "[ 13/2 ⇜ (8/1 → 17/2) | gain:0.2841126368137835 clip:1 note:F4 s:piano release:0.1 pan:0.5509259259259259 ]", + "[ 13/2 ⇜ (8/1 → 17/2) | gain:0.2841126368137835 clip:1 note:C5 s:piano release:0.1 pan:0.5833333333333333 ]", + "[ 15/2 ⇜ (8/1 → 17/2) | gain:0.29588166835112206 clip:1 note:D5 s:piano release:0.1 pan:0.5925925925925926 ]", + "[ 15/2 ⇜ (8/1 → 17/2) | gain:0.14794083417556103 clip:1 note:E7 s:piano release:0.1 pan:0.712962962962963 ]", + "[ 47/6 ⇜ (8/1 → 17/2) | gain:0.2999253420796384 clip:1 note:D3 s:piano release:0.1 pan:0.4814814814814815 ]", + "[ 8/1 → 26/3 | gain:0.6039084330201149 clip:1 note:D2 s:piano release:0.1 pan:0.42592592592592593 ]", + "[ 7/1 ⇜ (8/1 → 9/1) | gain:0.19326912919706085 clip:1 note:D5 s:piano release:0.1 pan:0.5925925925925926 ]", + "[ 7/1 ⇜ (8/1 → 9/1) | gain:0.19326912919706085 clip:1 note:F5 s:piano release:0.1 pan:0.6064814814814814 ]", + "[ 7/1 ⇜ (8/1 → 9/1) | gain:0.19326912919706085 clip:1 note:C6 s:piano release:0.1 pan:0.6388888888888888 ]", + "[ 15/2 ⇜ (8/1 → 9/1) ⇝ 19/2 | gain:0.14794083417556103 clip:1 note:D6 s:piano release:0.1 pan:0.6481481481481481 ]", + "[ 15/2 ⇜ (8/1 → 9/1) ⇝ 19/2 | gain:0.14794083417556103 clip:1 note:F6 s:piano release:0.1 pan:0.662037037037037 ]", + "[ 15/2 ⇜ (8/1 → 9/1) ⇝ 19/2 | gain:0.14794083417556103 clip:1 note:C7 s:piano release:0.1 pan:0.6944444444444444 ]", + "[ 8/1 → 9/1 | gain:0.6039084330201149 clip:1 note:E4 s:piano release:0.1 pan:0.5462962962962963 ]", + "[ 8/1 → 9/1 | gain:0.20130281100670494 clip:1 note:D6 s:piano release:0.1 pan:0.6481481481481481 ]", + "[ (8/1 → 9/1) ⇝ 10/1 | gain:0.6039084330201149 clip:1 note:D3 s:piano release:0.1 pan:0.4814814814814815 ]", + "[ (8/1 → 9/1) ⇝ 10/1 | gain:0.6039084330201149 clip:1 note:F3 s:piano release:0.1 pan:0.49537037037037035 ]", + "[ (8/1 → 9/1) ⇝ 10/1 | gain:0.6039084330201149 clip:1 note:C4 s:piano release:0.1 pan:0.5277777777777778 ]", "[ 49/6 → 17/2 | clip:1 gain:0.5 note:E6 s:piano release:0.1 pan:0.6574074074074074 ]", "[ 49/6 → 17/2 | clip:1 gain:0.125 note:A6 s:piano release:0.1 pan:0.6805555555555556 ]", - "[ 49/6 → 53/6 | gain:0.1540133823344964 clip:1 note:D5 s:piano release:0.1 pan:0.5925925925925926 ]", + "[ 49/6 → 53/6 | gain:0.15199154547023824 clip:1 note:D5 s:piano release:0.1 pan:0.5925925925925926 ]", "[ 25/3 → 26/3 | clip:1 gain:1 note:A6 s:piano release:0.1 pan:0.6805555555555556 ]", "[ 25/3 → 26/3 | clip:1 gain:0.25 note:E6 s:piano release:0.1 pan:0.6574074074074074 ]", - "[ 25/3 → 9/1 | gain:0.2066897056766574 clip:1 note:D4 s:piano release:0.1 pan:0.537037037037037 ]", + "[ 25/3 → 9/1 | gain:0.2040056295293026 clip:1 note:D4 s:piano release:0.1 pan:0.537037037037037 ]", "[ 17/2 → 53/6 | clip:1 gain:0.5 note:A6 s:piano release:0.1 pan:0.6805555555555556 ]", "[ 17/2 → 53/6 | clip:1 gain:0.125 note:E6 s:piano release:0.1 pan:0.6574074074074074 ]", - "[ (17/2 → 9/1) ⇝ 55/6 | gain:0.3120283598076609 clip:1 note:D3 s:piano release:0.1 pan:0.4814814814814815 ]", - "[ (17/2 → 9/1) ⇝ 19/2 | gain:0.31400473922452365 clip:1 note:E5 s:piano release:0.1 pan:0.6018518518518519 ]", - "[ (17/2 → 9/1) ⇝ 19/2 | gain:0.15700236961226183 clip:1 note:D7 s:piano release:0.1 pan:0.7037037037037037 ]", - "[ (17/2 → 9/1) ⇝ 21/2 | gain:0.3197957962063314 clip:1 note:D4 s:piano release:0.1 pan:0.537037037037037 ]", - "[ (17/2 → 9/1) ⇝ 21/2 | gain:0.3197957962063314 clip:1 note:F4 s:piano release:0.1 pan:0.5509259259259259 ]", - "[ (17/2 → 9/1) ⇝ 21/2 | gain:0.3197957962063314 clip:1 note:C5 s:piano release:0.1 pan:0.5833333333333333 ]", + "[ (17/2 → 9/1) ⇝ 55/6 | gain:0.3080267646689928 clip:1 note:D3 s:piano release:0.1 pan:0.4814814814814815 ]", + "[ (17/2 → 9/1) ⇝ 19/2 | gain:0.3080267646689928 clip:1 note:E5 s:piano release:0.1 pan:0.6018518518518519 ]", + "[ (17/2 → 9/1) ⇝ 19/2 | gain:0.1540133823344964 clip:1 note:D7 s:piano release:0.1 pan:0.7037037037037037 ]", + "[ (17/2 → 9/1) ⇝ 21/2 | gain:0.3080267646689928 clip:1 note:D4 s:piano release:0.1 pan:0.537037037037037 ]", + "[ (17/2 → 9/1) ⇝ 21/2 | gain:0.3080267646689928 clip:1 note:F4 s:piano release:0.1 pan:0.5509259259259259 ]", + "[ (17/2 → 9/1) ⇝ 21/2 | gain:0.3080267646689928 clip:1 note:C5 s:piano release:0.1 pan:0.5833333333333333 ]", "[ 26/3 → 9/1 | clip:1 gain:1 note:E6 s:piano release:0.1 pan:0.6574074074074074 ]", "[ 26/3 → 9/1 | clip:1 gain:0.25 note:A6 s:piano release:0.1 pan:0.6805555555555556 ]", - "[ (26/3 → 9/1) ⇝ 28/3 | gain:0.6280094784490473 clip:1 note:D2 s:piano release:0.1 pan:0.42592592592592593 ]", + "[ (26/3 → 9/1) ⇝ 28/3 | gain:0.6200691170299722 clip:1 note:D2 s:piano release:0.1 pan:0.42592592592592593 ]", "[ (53/6 → 9/1) ⇝ 55/6 | clip:1 gain:0.5 note:E6 s:piano release:0.1 pan:0.6574074074074074 ]", "[ (53/6 → 9/1) ⇝ 55/6 | clip:1 gain:0.125 note:A6 s:piano release:0.1 pan:0.6805555555555556 ]", - "[ (53/6 → 9/1) ⇝ 19/2 | gain:0.15798015666015228 clip:1 note:D5 s:piano release:0.1 pan:0.5925925925925926 ]", - "[ 17/2 ⇜ (9/1 → 55/6) | gain:0.3120283598076609 clip:1 note:D3 s:piano release:0.1 pan:0.4814814814814815 ]", + "[ (53/6 → 9/1) ⇝ 19/2 | gain:0.15601417990383046 clip:1 note:D5 s:piano release:0.1 pan:0.5925925925925926 ]", + "[ 17/2 ⇜ (9/1 → 55/6) | gain:0.3080267646689928 clip:1 note:D3 s:piano release:0.1 pan:0.4814814814814815 ]", "[ 53/6 ⇜ (9/1 → 55/6) | clip:1 gain:0.5 note:E6 s:piano release:0.1 pan:0.6574074074074074 ]", "[ 53/6 ⇜ (9/1 → 55/6) | clip:1 gain:0.125 note:A6 s:piano release:0.1 pan:0.6805555555555556 ]", - "[ 26/3 ⇜ (9/1 → 28/3) | gain:0.6280094784490473 clip:1 note:D2 s:piano release:0.1 pan:0.42592592592592593 ]", + "[ 26/3 ⇜ (9/1 → 28/3) | gain:0.6200691170299722 clip:1 note:D2 s:piano release:0.1 pan:0.42592592592592593 ]", "[ 9/1 → 28/3 | clip:1 gain:1 note:A6 s:piano release:0.1 pan:0.6805555555555556 ]", "[ 9/1 → 28/3 | clip:1 gain:0.25 note:E6 s:piano release:0.1 pan:0.6574074074074074 ]", - "[ 15/2 ⇜ (9/1 → 19/2) | gain:0.1540133823344964 clip:1 note:D6 s:piano release:0.1 pan:0.6481481481481481 ]", - "[ 15/2 ⇜ (9/1 → 19/2) | gain:0.1540133823344964 clip:1 note:F6 s:piano release:0.1 pan:0.662037037037037 ]", - "[ 15/2 ⇜ (9/1 → 19/2) | gain:0.1540133823344964 clip:1 note:C7 s:piano release:0.1 pan:0.6944444444444444 ]", - "[ 17/2 ⇜ (9/1 → 19/2) | gain:0.31400473922452365 clip:1 note:E5 s:piano release:0.1 pan:0.6018518518518519 ]", - "[ 17/2 ⇜ (9/1 → 19/2) | gain:0.15700236961226183 clip:1 note:D7 s:piano release:0.1 pan:0.7037037037037037 ]", - "[ 53/6 ⇜ (9/1 → 19/2) | gain:0.15798015666015228 clip:1 note:D5 s:piano release:0.1 pan:0.5925925925925926 ]", - "[ 9/1 → 29/3 | gain:0.21192783580160193 clip:1 note:D4 s:piano release:0.1 pan:0.537037037037037 ]", - "[ 8/1 ⇜ (9/1 → 10/1) | gain:0.6280094784490473 clip:1 note:D3 s:piano release:0.1 pan:0.4814814814814815 ]", - "[ 8/1 ⇜ (9/1 → 10/1) | gain:0.6280094784490473 clip:1 note:F3 s:piano release:0.1 pan:0.49537037037037035 ]", - "[ 8/1 ⇜ (9/1 → 10/1) | gain:0.6280094784490473 clip:1 note:C4 s:piano release:0.1 pan:0.5277777777777778 ]", - "[ 17/2 ⇜ (9/1 → 10/1) ⇝ 21/2 | gain:0.3197957962063314 clip:1 note:D4 s:piano release:0.1 pan:0.537037037037037 ]", - "[ 17/2 ⇜ (9/1 → 10/1) ⇝ 21/2 | gain:0.3197957962063314 clip:1 note:F4 s:piano release:0.1 pan:0.5509259259259259 ]", - "[ 17/2 ⇜ (9/1 → 10/1) ⇝ 21/2 | gain:0.3197957962063314 clip:1 note:C5 s:piano release:0.1 pan:0.5833333333333333 ]", - "[ 9/1 → 10/1 | gain:0.6395915924126628 clip:1 note:D4 s:piano release:0.1 pan:0.537037037037037 ]", - "[ 9/1 → 10/1 | gain:0.2131971974708876 clip:1 note:E6 s:piano release:0.1 pan:0.6574074074074074 ]", - "[ (9/1 → 10/1) ⇝ 11/1 | gain:0.2168747006068467 clip:1 note:D5 s:piano release:0.1 pan:0.5925925925925926 ]", - "[ (9/1 → 10/1) ⇝ 11/1 | gain:0.2168747006068467 clip:1 note:F5 s:piano release:0.1 pan:0.6064814814814814 ]", - "[ (9/1 → 10/1) ⇝ 11/1 | gain:0.2168747006068467 clip:1 note:C6 s:piano release:0.1 pan:0.6388888888888888 ]", + "[ 15/2 ⇜ (9/1 → 19/2) | gain:0.14794083417556103 clip:1 note:D6 s:piano release:0.1 pan:0.6481481481481481 ]", + "[ 15/2 ⇜ (9/1 → 19/2) | gain:0.14794083417556103 clip:1 note:F6 s:piano release:0.1 pan:0.662037037037037 ]", + "[ 15/2 ⇜ (9/1 → 19/2) | gain:0.14794083417556103 clip:1 note:C7 s:piano release:0.1 pan:0.6944444444444444 ]", + "[ 17/2 ⇜ (9/1 → 19/2) | gain:0.3080267646689928 clip:1 note:E5 s:piano release:0.1 pan:0.6018518518518519 ]", + "[ 17/2 ⇜ (9/1 → 19/2) | gain:0.1540133823344964 clip:1 note:D7 s:piano release:0.1 pan:0.7037037037037037 ]", + "[ 53/6 ⇜ (9/1 → 19/2) | gain:0.15601417990383046 clip:1 note:D5 s:piano release:0.1 pan:0.5925925925925926 ]", + "[ 9/1 → 29/3 | gain:0.20933649281634908 clip:1 note:D4 s:piano release:0.1 pan:0.537037037037037 ]", + "[ 8/1 ⇜ (9/1 → 10/1) | gain:0.6039084330201149 clip:1 note:D3 s:piano release:0.1 pan:0.4814814814814815 ]", + "[ 8/1 ⇜ (9/1 → 10/1) | gain:0.6039084330201149 clip:1 note:F3 s:piano release:0.1 pan:0.49537037037037035 ]", + "[ 8/1 ⇜ (9/1 → 10/1) | gain:0.6039084330201149 clip:1 note:C4 s:piano release:0.1 pan:0.5277777777777778 ]", + "[ 17/2 ⇜ (9/1 → 10/1) ⇝ 21/2 | gain:0.3080267646689928 clip:1 note:D4 s:piano release:0.1 pan:0.537037037037037 ]", + "[ 17/2 ⇜ (9/1 → 10/1) ⇝ 21/2 | gain:0.3080267646689928 clip:1 note:F4 s:piano release:0.1 pan:0.5509259259259259 ]", + "[ 17/2 ⇜ (9/1 → 10/1) ⇝ 21/2 | gain:0.3080267646689928 clip:1 note:C5 s:piano release:0.1 pan:0.5833333333333333 ]", + "[ 9/1 → 10/1 | gain:0.6280094784490473 clip:1 note:D4 s:piano release:0.1 pan:0.537037037037037 ]", + "[ 9/1 → 10/1 | gain:0.20933649281634908 clip:1 note:E6 s:piano release:0.1 pan:0.6574074074074074 ]", + "[ (9/1 → 10/1) ⇝ 11/1 | gain:0.20933649281634908 clip:1 note:D5 s:piano release:0.1 pan:0.5925925925925926 ]", + "[ (9/1 → 10/1) ⇝ 11/1 | gain:0.20933649281634908 clip:1 note:F5 s:piano release:0.1 pan:0.6064814814814814 ]", + "[ (9/1 → 10/1) ⇝ 11/1 | gain:0.20933649281634908 clip:1 note:C6 s:piano release:0.1 pan:0.6388888888888888 ]", "[ 55/6 → 19/2 | clip:1 gain:0.5 note:A6 s:piano release:0.1 pan:0.6805555555555556 ]", "[ 55/6 → 19/2 | clip:1 gain:0.125 note:E6 s:piano release:0.1 pan:0.6574074074074074 ]", - "[ 55/6 → 59/6 | gain:0.3197957962063314 clip:1 note:D3 s:piano release:0.1 pan:0.4814814814814815 ]", + "[ 55/6 → 59/6 | gain:0.31596031332030455 clip:1 note:D3 s:piano release:0.1 pan:0.4814814814814815 ]", "[ 28/3 → 29/3 | clip:1 gain:1 note:E6 s:piano release:0.1 pan:0.6574074074074074 ]", "[ 28/3 → 29/3 | clip:1 gain:0.25 note:A6 s:piano release:0.1 pan:0.6805555555555556 ]", - "[ 28/3 → 10/1 | gain:0.6433385001423223 clip:1 note:D2 s:piano release:0.1 pan:0.42592592592592593 ]", + "[ 28/3 → 10/1 | gain:0.6357835074048058 clip:1 note:D2 s:piano release:0.1 pan:0.42592592592592593 ]", "[ 19/2 → 59/6 | clip:1 gain:0.5 note:E6 s:piano release:0.1 pan:0.6574074074074074 ]", "[ 19/2 → 59/6 | clip:1 gain:0.125 note:A6 s:piano release:0.1 pan:0.6805555555555556 ]", - "[ (19/2 → 10/1) ⇝ 61/6 | gain:0.16175450355748333 clip:1 note:D5 s:piano release:0.1 pan:0.5925925925925926 ]", - "[ (19/2 → 10/1) ⇝ 21/2 | gain:0.32531205091027005 clip:1 note:D5 s:piano release:0.1 pan:0.5925925925925926 ]", - "[ (19/2 → 10/1) ⇝ 21/2 | gain:0.16265602545513502 clip:1 note:E7 s:piano release:0.1 pan:0.712962962962963 ]", - "[ (19/2 → 10/1) ⇝ 23/2 | gain:0.16523615376572595 clip:1 note:D6 s:piano release:0.1 pan:0.6481481481481481 ]", - "[ (19/2 → 10/1) ⇝ 23/2 | gain:0.16523615376572595 clip:1 note:F6 s:piano release:0.1 pan:0.662037037037037 ]", - "[ (19/2 → 10/1) ⇝ 23/2 | gain:0.16523615376572595 clip:1 note:C7 s:piano release:0.1 pan:0.6944444444444444 ]", + "[ (19/2 → 10/1) ⇝ 61/6 | gain:0.1598978981031657 clip:1 note:D5 s:piano release:0.1 pan:0.5925925925925926 ]", + "[ (19/2 → 10/1) ⇝ 21/2 | gain:0.3197957962063314 clip:1 note:D5 s:piano release:0.1 pan:0.5925925925925926 ]", + "[ (19/2 → 10/1) ⇝ 21/2 | gain:0.1598978981031657 clip:1 note:E7 s:piano release:0.1 pan:0.712962962962963 ]", + "[ (19/2 → 10/1) ⇝ 23/2 | gain:0.1598978981031657 clip:1 note:D6 s:piano release:0.1 pan:0.6481481481481481 ]", + "[ (19/2 → 10/1) ⇝ 23/2 | gain:0.1598978981031657 clip:1 note:F6 s:piano release:0.1 pan:0.662037037037037 ]", + "[ (19/2 → 10/1) ⇝ 23/2 | gain:0.1598978981031657 clip:1 note:C7 s:piano release:0.1 pan:0.6944444444444444 ]", "[ 29/3 → 10/1 | clip:1 gain:1 note:A6 s:piano release:0.1 pan:0.6805555555555556 ]", "[ 29/3 → 10/1 | clip:1 gain:0.25 note:E6 s:piano release:0.1 pan:0.6574074074074074 ]", - "[ (29/3 → 10/1) ⇝ 31/3 | gain:0.2168747006068467 clip:1 note:D4 s:piano release:0.1 pan:0.537037037037037 ]", + "[ (29/3 → 10/1) ⇝ 31/3 | gain:0.21444616671410743 clip:1 note:D4 s:piano release:0.1 pan:0.537037037037037 ]", "[ (59/6 → 10/1) ⇝ 61/6 | clip:1 gain:0.5 note:A6 s:piano release:0.1 pan:0.6805555555555556 ]", "[ (59/6 → 10/1) ⇝ 61/6 | clip:1 gain:0.125 note:E6 s:piano release:0.1 pan:0.6574074074074074 ]", - "[ (59/6 → 10/1) ⇝ 21/2 | gain:0.3270754659594865 clip:1 note:D3 s:piano release:0.1 pan:0.4814814814814815 ]", - "[ 19/2 ⇜ (10/1 → 61/6) | gain:0.16175450355748333 clip:1 note:G5 s:piano release:0.1 pan:0.6157407407407407 ]", + "[ (59/6 → 10/1) ⇝ 21/2 | gain:0.32350900711496666 clip:1 note:D3 s:piano release:0.1 pan:0.4814814814814815 ]", + "[ 19/2 ⇜ (10/1 → 61/6) | gain:0.1598978981031657 clip:1 note:G5 s:piano release:0.1 pan:0.6157407407407407 ]", "[ 59/6 ⇜ (10/1 → 61/6) | clip:1 gain:0.5 note:D7 s:piano release:0.1 pan:0.7037037037037037 ]", "[ 59/6 ⇜ (10/1 → 61/6) | clip:1 gain:0.125 note:A6 s:piano release:0.1 pan:0.6805555555555556 ]", - "[ 29/3 ⇜ (10/1 → 31/3) | gain:0.2168747006068467 clip:1 note:G4 s:piano release:0.1 pan:0.5601851851851851 ]", + "[ 29/3 ⇜ (10/1 → 31/3) | gain:0.21444616671410743 clip:1 note:G4 s:piano release:0.1 pan:0.5601851851851851 ]", "[ 10/1 → 31/3 | clip:1 gain:1 note:A6 s:piano release:0.1 pan:0.6805555555555556 ]", "[ 10/1 → 31/3 | clip:1 gain:0.25 note:D7 s:piano release:0.1 pan:0.7037037037037037 ]", - "[ 17/2 ⇜ (10/1 → 21/2) | gain:0.3197957962063314 clip:1 note:G4 s:piano release:0.1 pan:0.5601851851851851 ]", - "[ 17/2 ⇜ (10/1 → 21/2) | gain:0.3197957962063314 clip:1 note:B4 s:piano release:0.1 pan:0.5787037037037037 ]", - "[ 17/2 ⇜ (10/1 → 21/2) | gain:0.3197957962063314 clip:1 note:F5 s:piano release:0.1 pan:0.6064814814814814 ]", - "[ 19/2 ⇜ (10/1 → 21/2) | gain:0.32531205091027005 clip:1 note:G5 s:piano release:0.1 pan:0.6157407407407407 ]", - "[ 19/2 ⇜ (10/1 → 21/2) | gain:0.16265602545513502 clip:1 note:A7 s:piano release:0.1 pan:0.7361111111111112 ]", - "[ 59/6 ⇜ (10/1 → 21/2) | gain:0.3270754659594865 clip:1 note:G3 s:piano release:0.1 pan:0.5046296296296297 ]", - "[ 10/1 → 32/3 | gain:0.6575928937407377 clip:1 note:G2 s:piano release:0.1 pan:0.44907407407407407 ]", - "[ 9/1 ⇜ (10/1 → 11/1) | gain:0.2168747006068467 clip:1 note:G5 s:piano release:0.1 pan:0.6157407407407407 ]", - "[ 9/1 ⇜ (10/1 → 11/1) | gain:0.2168747006068467 clip:1 note:B5 s:piano release:0.1 pan:0.6342592592592593 ]", - "[ 9/1 ⇜ (10/1 → 11/1) | gain:0.2168747006068467 clip:1 note:F6 s:piano release:0.1 pan:0.662037037037037 ]", - "[ 19/2 ⇜ (10/1 → 11/1) ⇝ 23/2 | gain:0.16523615376572595 clip:1 note:G6 s:piano release:0.1 pan:0.6712962962962963 ]", - "[ 19/2 ⇜ (10/1 → 11/1) ⇝ 23/2 | gain:0.16523615376572595 clip:1 note:B6 s:piano release:0.1 pan:0.6898148148148149 ]", - "[ 19/2 ⇜ (10/1 → 11/1) ⇝ 23/2 | gain:0.16523615376572595 clip:1 note:F7 s:piano release:0.1 pan:0.7175925925925926 ]", - "[ 10/1 → 11/1 | gain:0.6609446150629038 clip:1 note:A4 s:piano release:0.1 pan:0.5694444444444444 ]", - "[ 10/1 → 11/1 | gain:0.22031487168763458 clip:1 note:G6 s:piano release:0.1 pan:0.6712962962962963 ]", - "[ (10/1 → 11/1) ⇝ 12/1 | gain:0.670408577594668 clip:1 note:G3 s:piano release:0.1 pan:0.5046296296296297 ]", - "[ (10/1 → 11/1) ⇝ 12/1 | gain:0.670408577594668 clip:1 note:B3 s:piano release:0.1 pan:0.5231481481481481 ]", - "[ (10/1 → 11/1) ⇝ 12/1 | gain:0.670408577594668 clip:1 note:F4 s:piano release:0.1 pan:0.5509259259259259 ]", + "[ 17/2 ⇜ (10/1 → 21/2) | gain:0.3080267646689928 clip:1 note:G4 s:piano release:0.1 pan:0.5601851851851851 ]", + "[ 17/2 ⇜ (10/1 → 21/2) | gain:0.3080267646689928 clip:1 note:B4 s:piano release:0.1 pan:0.5787037037037037 ]", + "[ 17/2 ⇜ (10/1 → 21/2) | gain:0.3080267646689928 clip:1 note:F5 s:piano release:0.1 pan:0.6064814814814814 ]", + "[ 19/2 ⇜ (10/1 → 21/2) | gain:0.3197957962063314 clip:1 note:G5 s:piano release:0.1 pan:0.6157407407407407 ]", + "[ 19/2 ⇜ (10/1 → 21/2) | gain:0.1598978981031657 clip:1 note:A7 s:piano release:0.1 pan:0.7361111111111112 ]", + "[ 59/6 ⇜ (10/1 → 21/2) | gain:0.32350900711496666 clip:1 note:G3 s:piano release:0.1 pan:0.5046296296296297 ]", + "[ 10/1 → 32/3 | gain:0.6506241018205401 clip:1 note:G2 s:piano release:0.1 pan:0.44907407407407407 ]", + "[ 9/1 ⇜ (10/1 → 11/1) | gain:0.20933649281634908 clip:1 note:G5 s:piano release:0.1 pan:0.6157407407407407 ]", + "[ 9/1 ⇜ (10/1 → 11/1) | gain:0.20933649281634908 clip:1 note:B5 s:piano release:0.1 pan:0.6342592592592593 ]", + "[ 9/1 ⇜ (10/1 → 11/1) | gain:0.20933649281634908 clip:1 note:F6 s:piano release:0.1 pan:0.662037037037037 ]", + "[ 19/2 ⇜ (10/1 → 11/1) ⇝ 23/2 | gain:0.1598978981031657 clip:1 note:G6 s:piano release:0.1 pan:0.6712962962962963 ]", + "[ 19/2 ⇜ (10/1 → 11/1) ⇝ 23/2 | gain:0.1598978981031657 clip:1 note:B6 s:piano release:0.1 pan:0.6898148148148149 ]", + "[ 19/2 ⇜ (10/1 → 11/1) ⇝ 23/2 | gain:0.1598978981031657 clip:1 note:F7 s:piano release:0.1 pan:0.7175925925925926 ]", + "[ 10/1 → 11/1 | gain:0.6506241018205401 clip:1 note:A4 s:piano release:0.1 pan:0.5694444444444444 ]", + "[ 10/1 → 11/1 | gain:0.2168747006068467 clip:1 note:G6 s:piano release:0.1 pan:0.6712962962962963 ]", + "[ (10/1 → 11/1) ⇝ 12/1 | gain:0.6506241018205401 clip:1 note:G3 s:piano release:0.1 pan:0.5046296296296297 ]", + "[ (10/1 → 11/1) ⇝ 12/1 | gain:0.6506241018205401 clip:1 note:B3 s:piano release:0.1 pan:0.5231481481481481 ]", + "[ (10/1 → 11/1) ⇝ 12/1 | gain:0.6506241018205401 clip:1 note:F4 s:piano release:0.1 pan:0.5509259259259259 ]", "[ 61/6 → 21/2 | clip:1 gain:0.5 note:A6 s:piano release:0.1 pan:0.6805555555555556 ]", "[ 61/6 → 21/2 | clip:1 gain:0.125 note:D7 s:piano release:0.1 pan:0.7037037037037037 ]", - "[ 61/6 → 65/6 | gain:0.16523615376572595 clip:1 note:G5 s:piano release:0.1 pan:0.6157407407407407 ]", + "[ 61/6 → 65/6 | gain:0.16353773297974325 clip:1 note:G5 s:piano release:0.1 pan:0.6157407407407407 ]", "[ 31/3 → 32/3 | clip:1 gain:1 note:D7 s:piano release:0.1 pan:0.7037037037037037 ]", "[ 31/3 → 32/3 | clip:1 gain:0.25 note:A6 s:piano release:0.1 pan:0.6805555555555556 ]", - "[ 31/3 → 11/1 | gain:0.2214003268583321 clip:1 note:G4 s:piano release:0.1 pan:0.5601851851851851 ]", + "[ 31/3 → 11/1 | gain:0.21919763124691255 clip:1 note:G4 s:piano release:0.1 pan:0.5601851851851851 ]", "[ 21/2 → 65/6 | clip:1 gain:0.5 note:D7 s:piano release:0.1 pan:0.7037037037037037 ]", "[ 21/2 → 65/6 | clip:1 gain:0.125 note:A6 s:piano release:0.1 pan:0.6805555555555556 ]", - "[ (21/2 → 11/1) ⇝ 67/6 | gain:0.33367857511494187 clip:1 note:G3 s:piano release:0.1 pan:0.5046296296296297 ]", - "[ (21/2 → 11/1) ⇝ 23/2 | gain:0.335204288797334 clip:1 note:A5 s:piano release:0.1 pan:0.625 ]", - "[ (21/2 → 11/1) ⇝ 23/2 | gain:0.167602144398667 clip:1 note:G7 s:piano release:0.1 pan:0.7268518518518519 ]", - "[ (21/2 → 11/1) ⇝ 25/2 | gain:0.33944686560080417 clip:1 note:G4 s:piano release:0.1 pan:0.5601851851851851 ]", - "[ (21/2 → 11/1) ⇝ 25/2 | gain:0.33944686560080417 clip:1 note:B4 s:piano release:0.1 pan:0.5787037037037037 ]", - "[ (21/2 → 11/1) ⇝ 25/2 | gain:0.33944686560080417 clip:1 note:F5 s:piano release:0.1 pan:0.6064814814814814 ]", + "[ (21/2 → 11/1) ⇝ 67/6 | gain:0.3304723075314519 clip:1 note:G3 s:piano release:0.1 pan:0.5046296296296297 ]", + "[ (21/2 → 11/1) ⇝ 23/2 | gain:0.3304723075314519 clip:1 note:A5 s:piano release:0.1 pan:0.625 ]", + "[ (21/2 → 11/1) ⇝ 23/2 | gain:0.16523615376572595 clip:1 note:G7 s:piano release:0.1 pan:0.7268518518518519 ]", + "[ (21/2 → 11/1) ⇝ 25/2 | gain:0.3304723075314519 clip:1 note:G4 s:piano release:0.1 pan:0.5601851851851851 ]", + "[ (21/2 → 11/1) ⇝ 25/2 | gain:0.3304723075314519 clip:1 note:B4 s:piano release:0.1 pan:0.5787037037037037 ]", + "[ (21/2 → 11/1) ⇝ 25/2 | gain:0.3304723075314519 clip:1 note:F5 s:piano release:0.1 pan:0.6064814814814814 ]", "[ 32/3 → 11/1 | clip:1 gain:1 note:A6 s:piano release:0.1 pan:0.6805555555555556 ]", "[ 32/3 → 11/1 | clip:1 gain:0.25 note:D7 s:piano release:0.1 pan:0.7037037037037037 ]", - "[ (32/3 → 11/1) ⇝ 34/3 | gain:0.670408577594668 clip:1 note:G2 s:piano release:0.1 pan:0.44907407407407407 ]", + "[ (32/3 → 11/1) ⇝ 34/3 | gain:0.6642009805749963 clip:1 note:G2 s:piano release:0.1 pan:0.44907407407407407 ]", "[ (65/6 → 11/1) ⇝ 67/6 | clip:1 gain:0.5 note:A6 s:piano release:0.1 pan:0.6805555555555556 ]", "[ (65/6 → 11/1) ⇝ 67/6 | clip:1 gain:0.125 note:D7 s:piano release:0.1 pan:0.7037037037037037 ]", - "[ (65/6 → 11/1) ⇝ 23/2 | gain:0.1683377570503936 clip:1 note:G5 s:piano release:0.1 pan:0.6157407407407407 ]", - "[ 21/2 ⇜ (11/1 → 67/6) | gain:0.33367857511494187 clip:1 note:G3 s:piano release:0.1 pan:0.5046296296296297 ]", + "[ (65/6 → 11/1) ⇝ 23/2 | gain:0.16683928755747093 clip:1 note:G5 s:piano release:0.1 pan:0.6157407407407407 ]", + "[ 21/2 ⇜ (11/1 → 67/6) | gain:0.3304723075314519 clip:1 note:G3 s:piano release:0.1 pan:0.5046296296296297 ]", "[ 65/6 ⇜ (11/1 → 67/6) | clip:1 gain:0.5 note:A6 s:piano release:0.1 pan:0.6805555555555556 ]", "[ 65/6 ⇜ (11/1 → 67/6) | clip:1 gain:0.125 note:D7 s:piano release:0.1 pan:0.7037037037037037 ]", - "[ 32/3 ⇜ (11/1 → 34/3) | gain:0.670408577594668 clip:1 note:G2 s:piano release:0.1 pan:0.44907407407407407 ]", + "[ 32/3 ⇜ (11/1 → 34/3) | gain:0.6642009805749963 clip:1 note:G2 s:piano release:0.1 pan:0.44907407407407407 ]", "[ 11/1 → 34/3 | clip:1 gain:1 note:D7 s:piano release:0.1 pan:0.7037037037037037 ]", "[ 11/1 → 34/3 | clip:1 gain:0.25 note:A6 s:piano release:0.1 pan:0.6805555555555556 ]", - "[ 19/2 ⇜ (11/1 → 23/2) | gain:0.16523615376572595 clip:1 note:G6 s:piano release:0.1 pan:0.6712962962962963 ]", - "[ 19/2 ⇜ (11/1 → 23/2) | gain:0.16523615376572595 clip:1 note:B6 s:piano release:0.1 pan:0.6898148148148149 ]", - "[ 19/2 ⇜ (11/1 → 23/2) | gain:0.16523615376572595 clip:1 note:F7 s:piano release:0.1 pan:0.7175925925925926 ]", - "[ 21/2 ⇜ (11/1 → 23/2) | gain:0.335204288797334 clip:1 note:A5 s:piano release:0.1 pan:0.625 ]", - "[ 21/2 ⇜ (11/1 → 23/2) | gain:0.167602144398667 clip:1 note:G7 s:piano release:0.1 pan:0.7268518518518519 ]", - "[ 65/6 ⇜ (11/1 → 23/2) | gain:0.1683377570503936 clip:1 note:G5 s:piano release:0.1 pan:0.6157407407407407 ]", - "[ 11/1 → 35/3 | gain:0.22539353263294704 clip:1 note:G4 s:piano release:0.1 pan:0.5601851851851851 ]", - "[ 10/1 ⇜ (11/1 → 12/1) | gain:0.670408577594668 clip:1 note:G3 s:piano release:0.1 pan:0.5046296296296297 ]", - "[ 10/1 ⇜ (11/1 → 12/1) | gain:0.670408577594668 clip:1 note:B3 s:piano release:0.1 pan:0.5231481481481481 ]", - "[ 10/1 ⇜ (11/1 → 12/1) | gain:0.670408577594668 clip:1 note:F4 s:piano release:0.1 pan:0.5509259259259259 ]", - "[ 21/2 ⇜ (11/1 → 12/1) ⇝ 25/2 | gain:0.33944686560080417 clip:1 note:G4 s:piano release:0.1 pan:0.5601851851851851 ]", - "[ 21/2 ⇜ (11/1 → 12/1) ⇝ 25/2 | gain:0.33944686560080417 clip:1 note:B4 s:piano release:0.1 pan:0.5787037037037037 ]", - "[ 21/2 ⇜ (11/1 → 12/1) ⇝ 25/2 | gain:0.33944686560080417 clip:1 note:F5 s:piano release:0.1 pan:0.6064814814814814 ]", - "[ 11/1 → 12/1 | gain:0.6788937312016083 clip:1 note:G4 s:piano release:0.1 pan:0.5601851851851851 ]", - "[ 11/1 → 12/1 | gain:0.2262979104005361 clip:1 note:A6 s:piano release:0.1 pan:0.6805555555555556 ]", - "[ (11/1 → 12/1) ⇝ 13/1 | gain:0.22876819108884472 clip:1 note:G5 s:piano release:0.1 pan:0.6157407407407407 ]", - "[ (11/1 → 12/1) ⇝ 13/1 | gain:0.22876819108884472 clip:1 note:B5 s:piano release:0.1 pan:0.6342592592592593 ]", - "[ (11/1 → 12/1) ⇝ 13/1 | gain:0.22876819108884472 clip:1 note:F6 s:piano release:0.1 pan:0.662037037037037 ]", + "[ 19/2 ⇜ (11/1 → 23/2) | gain:0.1598978981031657 clip:1 note:G6 s:piano release:0.1 pan:0.6712962962962963 ]", + "[ 19/2 ⇜ (11/1 → 23/2) | gain:0.1598978981031657 clip:1 note:B6 s:piano release:0.1 pan:0.6898148148148149 ]", + "[ 19/2 ⇜ (11/1 → 23/2) | gain:0.1598978981031657 clip:1 note:F7 s:piano release:0.1 pan:0.7175925925925926 ]", + "[ 21/2 ⇜ (11/1 → 23/2) | gain:0.3304723075314519 clip:1 note:A5 s:piano release:0.1 pan:0.625 ]", + "[ 21/2 ⇜ (11/1 → 23/2) | gain:0.16523615376572595 clip:1 note:G7 s:piano release:0.1 pan:0.7268518518518519 ]", + "[ 65/6 ⇜ (11/1 → 23/2) | gain:0.16683928755747093 clip:1 note:G5 s:piano release:0.1 pan:0.6157407407407407 ]", + "[ 11/1 → 35/3 | gain:0.22346952586488933 clip:1 note:G4 s:piano release:0.1 pan:0.5601851851851851 ]", + "[ 10/1 ⇜ (11/1 → 12/1) | gain:0.6506241018205401 clip:1 note:G3 s:piano release:0.1 pan:0.5046296296296297 ]", + "[ 10/1 ⇜ (11/1 → 12/1) | gain:0.6506241018205401 clip:1 note:B3 s:piano release:0.1 pan:0.5231481481481481 ]", + "[ 10/1 ⇜ (11/1 → 12/1) | gain:0.6506241018205401 clip:1 note:F4 s:piano release:0.1 pan:0.5509259259259259 ]", + "[ 21/2 ⇜ (11/1 → 12/1) ⇝ 25/2 | gain:0.3304723075314519 clip:1 note:G4 s:piano release:0.1 pan:0.5601851851851851 ]", + "[ 21/2 ⇜ (11/1 → 12/1) ⇝ 25/2 | gain:0.3304723075314519 clip:1 note:B4 s:piano release:0.1 pan:0.5787037037037037 ]", + "[ 21/2 ⇜ (11/1 → 12/1) ⇝ 25/2 | gain:0.3304723075314519 clip:1 note:F5 s:piano release:0.1 pan:0.6064814814814814 ]", + "[ 11/1 → 12/1 | gain:0.670408577594668 clip:1 note:G4 s:piano release:0.1 pan:0.5601851851851851 ]", + "[ 11/1 → 12/1 | gain:0.22346952586488933 clip:1 note:A6 s:piano release:0.1 pan:0.6805555555555556 ]", + "[ (11/1 → 12/1) ⇝ 13/1 | gain:0.22346952586488933 clip:1 note:G5 s:piano release:0.1 pan:0.6157407407407407 ]", + "[ (11/1 → 12/1) ⇝ 13/1 | gain:0.22346952586488933 clip:1 note:B5 s:piano release:0.1 pan:0.6342592592592593 ]", + "[ (11/1 → 12/1) ⇝ 13/1 | gain:0.22346952586488933 clip:1 note:F6 s:piano release:0.1 pan:0.662037037037037 ]", "[ 67/6 → 23/2 | clip:1 gain:0.5 note:D7 s:piano release:0.1 pan:0.7037037037037037 ]", "[ 67/6 → 23/2 | clip:1 gain:0.125 note:A6 s:piano release:0.1 pan:0.6805555555555556 ]", - "[ 67/6 → 71/6 | gain:0.33944686560080417 clip:1 note:G3 s:piano release:0.1 pan:0.5046296296296297 ]", + "[ 67/6 → 71/6 | gain:0.3366755141007872 clip:1 note:G3 s:piano release:0.1 pan:0.5046296296296297 ]", "[ 34/3 → 35/3 | clip:1 gain:1 note:A6 s:piano release:0.1 pan:0.6805555555555556 ]", "[ 34/3 → 35/3 | clip:1 gain:0.25 note:D7 s:piano release:0.1 pan:0.7037037037037037 ]", - "[ 34/3 → 12/1 | gain:0.6814872396428084 clip:1 note:G2 s:piano release:0.1 pan:0.44907407407407407 ]", + "[ 34/3 → 12/1 | gain:0.6761805978988411 clip:1 note:G2 s:piano release:0.1 pan:0.44907407407407407 ]", "[ 23/2 → 71/6 | clip:1 gain:0.5 note:A6 s:piano release:0.1 pan:0.6805555555555556 ]", "[ 23/2 → 71/6 | clip:1 gain:0.125 note:D7 s:piano release:0.1 pan:0.7037037037037037 ]", - "[ (23/2 → 12/1) ⇝ 73/6 | gain:0.17098958003101383 clip:1 note:G5 s:piano release:0.1 pan:0.6157407407407407 ]", - "[ (23/2 → 12/1) ⇝ 25/2 | gain:0.3431522866332671 clip:1 note:G5 s:piano release:0.1 pan:0.6157407407407407 ]", - "[ (23/2 → 12/1) ⇝ 25/2 | gain:0.17157614331663354 clip:1 note:A7 s:piano release:0.1 pan:0.7361111111111112 ]", - "[ (23/2 → 12/1) ⇝ 27/2 | gain:0.17314420400886532 clip:1 note:G6 s:piano release:0.1 pan:0.6712962962962963 ]", - "[ (23/2 → 12/1) ⇝ 27/2 | gain:0.17314420400886532 clip:1 note:B6 s:piano release:0.1 pan:0.6898148148148149 ]", - "[ (23/2 → 12/1) ⇝ 27/2 | gain:0.17314420400886532 clip:1 note:F7 s:piano release:0.1 pan:0.7175925925925926 ]", + "[ (23/2 → 12/1) ⇝ 73/6 | gain:0.16972343280040209 clip:1 note:G5 s:piano release:0.1 pan:0.6157407407407407 ]", + "[ (23/2 → 12/1) ⇝ 25/2 | gain:0.33944686560080417 clip:1 note:G5 s:piano release:0.1 pan:0.6157407407407407 ]", + "[ (23/2 → 12/1) ⇝ 25/2 | gain:0.16972343280040209 clip:1 note:A7 s:piano release:0.1 pan:0.7361111111111112 ]", + "[ (23/2 → 12/1) ⇝ 27/2 | gain:0.16972343280040209 clip:1 note:G6 s:piano release:0.1 pan:0.6712962962962963 ]", + "[ (23/2 → 12/1) ⇝ 27/2 | gain:0.16972343280040209 clip:1 note:B6 s:piano release:0.1 pan:0.6898148148148149 ]", + "[ (23/2 → 12/1) ⇝ 27/2 | gain:0.16972343280040209 clip:1 note:F7 s:piano release:0.1 pan:0.7175925925925926 ]", "[ 35/3 → 12/1 | clip:1 gain:1 note:D7 s:piano release:0.1 pan:0.7037037037037037 ]", "[ 35/3 → 12/1 | clip:1 gain:0.25 note:A6 s:piano release:0.1 pan:0.6805555555555556 ]", - "[ (35/3 → 12/1) ⇝ 37/3 | gain:0.22876819108884472 clip:1 note:G4 s:piano release:0.1 pan:0.5601851851851851 ]", + "[ (35/3 → 12/1) ⇝ 37/3 | gain:0.22716241321426947 clip:1 note:G4 s:piano release:0.1 pan:0.5601851851851851 ]", "[ (71/6 → 12/1) ⇝ 73/6 | clip:1 gain:0.5 note:D7 s:piano release:0.1 pan:0.7037037037037037 ]", "[ (71/6 → 12/1) ⇝ 73/6 | clip:1 gain:0.125 note:A6 s:piano release:0.1 pan:0.6805555555555556 ]", - "[ (71/6 → 12/1) ⇝ 25/2 | gain:0.34426201088094527 clip:1 note:G3 s:piano release:0.1 pan:0.5046296296296297 ]", - "[ 23/2 ⇜ (12/1 → 73/6) | gain:0.17098958003101383 clip:1 note:C5 s:piano release:0.1 pan:0.5833333333333333 ]", + "[ (71/6 → 12/1) ⇝ 25/2 | gain:0.34197916006202767 clip:1 note:G3 s:piano release:0.1 pan:0.5046296296296297 ]", + "[ 23/2 ⇜ (12/1 → 73/6) | gain:0.16972343280040209 clip:1 note:C5 s:piano release:0.1 pan:0.5833333333333333 ]", "[ 71/6 ⇜ (12/1 → 73/6) | clip:1 gain:0.5 note:G6 s:piano release:0.1 pan:0.6712962962962963 ]", "[ 71/6 ⇜ (12/1 → 73/6) | clip:1 gain:0.125 note:D6 s:piano release:0.1 pan:0.6481481481481481 ]", - "[ 35/3 ⇜ (12/1 → 37/3) | gain:0.22876819108884472 clip:1 note:C4 s:piano release:0.1 pan:0.5277777777777778 ]", + "[ 35/3 ⇜ (12/1 → 37/3) | gain:0.22716241321426947 clip:1 note:C4 s:piano release:0.1 pan:0.5277777777777778 ]", "[ 12/1 → 37/3 | clip:1 gain:1 note:D6 s:piano release:0.1 pan:0.6481481481481481 ]", "[ 12/1 → 37/3 | clip:1 gain:0.25 note:G6 s:piano release:0.1 pan:0.6712962962962963 ]", - "[ 21/2 ⇜ (12/1 → 25/2) | gain:0.33944686560080417 clip:1 note:C4 s:piano release:0.1 pan:0.5277777777777778 ]", - "[ 21/2 ⇜ (12/1 → 25/2) | gain:0.33944686560080417 clip:1 note:Eb4 s:piano release:0.1 pan:0.5416666666666667 ]", - "[ 21/2 ⇜ (12/1 → 25/2) | gain:0.33944686560080417 clip:1 note:Bb4 s:piano release:0.1 pan:0.5740740740740741 ]", - "[ 23/2 ⇜ (12/1 → 25/2) | gain:0.3431522866332671 clip:1 note:C5 s:piano release:0.1 pan:0.5833333333333333 ]", - "[ 23/2 ⇜ (12/1 → 25/2) | gain:0.17157614331663354 clip:1 note:D7 s:piano release:0.1 pan:0.7037037037037037 ]", - "[ 71/6 ⇜ (12/1 → 25/2) | gain:0.34426201088094527 clip:1 note:C3 s:piano release:0.1 pan:0.4722222222222222 ]", - "[ 12/1 → 38/3 | gain:0.690615128723121 clip:1 note:C2 s:piano release:0.1 pan:0.41666666666666663 ]", - "[ 11/1 ⇜ (12/1 → 13/1) | gain:0.22876819108884472 clip:1 note:C5 s:piano release:0.1 pan:0.5833333333333333 ]", - "[ 11/1 ⇜ (12/1 → 13/1) | gain:0.22876819108884472 clip:1 note:Eb5 s:piano release:0.1 pan:0.5972222222222222 ]", - "[ 11/1 ⇜ (12/1 → 13/1) | gain:0.22876819108884472 clip:1 note:Bb5 s:piano release:0.1 pan:0.6296296296296297 ]", - "[ 23/2 ⇜ (12/1 → 13/1) ⇝ 27/2 | gain:0.17314420400886532 clip:1 note:C6 s:piano release:0.1 pan:0.6388888888888888 ]", - "[ 23/2 ⇜ (12/1 → 13/1) ⇝ 27/2 | gain:0.17314420400886532 clip:1 note:Eb6 s:piano release:0.1 pan:0.6527777777777778 ]", - "[ 23/2 ⇜ (12/1 → 13/1) ⇝ 27/2 | gain:0.17314420400886532 clip:1 note:Bb6 s:piano release:0.1 pan:0.6851851851851851 ]", - "[ 12/1 → 13/1 | gain:0.6925768160354613 clip:1 note:D4 s:piano release:0.1 pan:0.537037037037037 ]", - "[ 12/1 → 13/1 | gain:0.23085893867848709 clip:1 note:C6 s:piano release:0.1 pan:0.6388888888888888 ]", - "[ (12/1 → 13/1) ⇝ 14/1 | gain:0.697681845883784 clip:1 note:C3 s:piano release:0.1 pan:0.4722222222222222 ]", - "[ (12/1 → 13/1) ⇝ 14/1 | gain:0.697681845883784 clip:1 note:Eb3 s:piano release:0.1 pan:0.4861111111111111 ]", - "[ (12/1 → 13/1) ⇝ 14/1 | gain:0.697681845883784 clip:1 note:Bb3 s:piano release:0.1 pan:0.5185185185185186 ]", + "[ 21/2 ⇜ (12/1 → 25/2) | gain:0.3304723075314519 clip:1 note:C4 s:piano release:0.1 pan:0.5277777777777778 ]", + "[ 21/2 ⇜ (12/1 → 25/2) | gain:0.3304723075314519 clip:1 note:Eb4 s:piano release:0.1 pan:0.5416666666666667 ]", + "[ 21/2 ⇜ (12/1 → 25/2) | gain:0.3304723075314519 clip:1 note:Bb4 s:piano release:0.1 pan:0.5740740740740741 ]", + "[ 23/2 ⇜ (12/1 → 25/2) | gain:0.33944686560080417 clip:1 note:C5 s:piano release:0.1 pan:0.5833333333333333 ]", + "[ 23/2 ⇜ (12/1 → 25/2) | gain:0.16972343280040209 clip:1 note:D7 s:piano release:0.1 pan:0.7037037037037037 ]", + "[ 71/6 ⇜ (12/1 → 25/2) | gain:0.34197916006202767 clip:1 note:C3 s:piano release:0.1 pan:0.4722222222222222 ]", + "[ 12/1 → 38/3 | gain:0.6863045732665342 clip:1 note:C2 s:piano release:0.1 pan:0.41666666666666663 ]", + "[ 11/1 ⇜ (12/1 → 13/1) | gain:0.22346952586488933 clip:1 note:C5 s:piano release:0.1 pan:0.5833333333333333 ]", + "[ 11/1 ⇜ (12/1 → 13/1) | gain:0.22346952586488933 clip:1 note:Eb5 s:piano release:0.1 pan:0.5972222222222222 ]", + "[ 11/1 ⇜ (12/1 → 13/1) | gain:0.22346952586488933 clip:1 note:Bb5 s:piano release:0.1 pan:0.6296296296296297 ]", + "[ 23/2 ⇜ (12/1 → 13/1) ⇝ 27/2 | gain:0.16972343280040209 clip:1 note:C6 s:piano release:0.1 pan:0.6388888888888888 ]", + "[ 23/2 ⇜ (12/1 → 13/1) ⇝ 27/2 | gain:0.16972343280040209 clip:1 note:Eb6 s:piano release:0.1 pan:0.6527777777777778 ]", + "[ 23/2 ⇜ (12/1 → 13/1) ⇝ 27/2 | gain:0.16972343280040209 clip:1 note:Bb6 s:piano release:0.1 pan:0.6851851851851851 ]", + "[ 12/1 → 13/1 | gain:0.6863045732665342 clip:1 note:D4 s:piano release:0.1 pan:0.537037037037037 ]", + "[ 12/1 → 13/1 | gain:0.22876819108884472 clip:1 note:C6 s:piano release:0.1 pan:0.6388888888888888 ]", + "[ (12/1 → 13/1) ⇝ 14/1 | gain:0.6863045732665342 clip:1 note:C3 s:piano release:0.1 pan:0.4722222222222222 ]", + "[ (12/1 → 13/1) ⇝ 14/1 | gain:0.6863045732665342 clip:1 note:Eb3 s:piano release:0.1 pan:0.4861111111111111 ]", + "[ (12/1 → 13/1) ⇝ 14/1 | gain:0.6863045732665342 clip:1 note:Bb3 s:piano release:0.1 pan:0.5185185185185186 ]", "[ 73/6 → 25/2 | clip:1 gain:0.5 note:D6 s:piano release:0.1 pan:0.6481481481481481 ]", "[ 73/6 → 25/2 | clip:1 gain:0.125 note:G6 s:piano release:0.1 pan:0.6712962962962963 ]", - "[ 73/6 → 77/6 | gain:0.17314420400886532 clip:1 note:C5 s:piano release:0.1 pan:0.5833333333333333 ]", + "[ 73/6 → 77/6 | gain:0.17213100544047263 clip:1 note:C5 s:piano release:0.1 pan:0.5833333333333333 ]", "[ 37/3 → 38/3 | clip:1 gain:1 note:G6 s:piano release:0.1 pan:0.6712962962962963 ]", "[ 37/3 → 38/3 | clip:1 gain:0.25 note:D6 s:piano release:0.1 pan:0.6481481481481481 ]", - "[ 37/3 → 13/1 | gain:0.23146949423575908 clip:1 note:C4 s:piano release:0.1 pan:0.5277777777777778 ]", + "[ 37/3 → 13/1 | gain:0.230205042907707 clip:1 note:C4 s:piano release:0.1 pan:0.5277777777777778 ]", "[ 25/2 → 77/6 | clip:1 gain:0.5 note:G6 s:piano release:0.1 pan:0.6712962962962963 ]", "[ 25/2 → 77/6 | clip:1 gain:0.125 note:D6 s:piano release:0.1 pan:0.6481481481481481 ]", - "[ (25/2 → 13/1) ⇝ 79/6 | gain:0.34805501161047686 clip:1 note:C3 s:piano release:0.1 pan:0.4722222222222222 ]", - "[ (25/2 → 13/1) ⇝ 27/2 | gain:0.348840922941892 clip:1 note:D5 s:piano release:0.1 pan:0.5925925925925926 ]", - "[ (25/2 → 13/1) ⇝ 27/2 | gain:0.174420461470946 clip:1 note:C7 s:piano release:0.1 pan:0.6944444444444444 ]", - "[ (25/2 → 13/1) ⇝ 29/2 | gain:0.35081559129122375 clip:1 note:C4 s:piano release:0.1 pan:0.5277777777777778 ]", - "[ (25/2 → 13/1) ⇝ 29/2 | gain:0.35081559129122375 clip:1 note:Eb4 s:piano release:0.1 pan:0.5416666666666667 ]", - "[ (25/2 → 13/1) ⇝ 29/2 | gain:0.35081559129122375 clip:1 note:Bb4 s:piano release:0.1 pan:0.5740740740740741 ]", + "[ (25/2 → 13/1) ⇝ 79/6 | gain:0.34628840801773064 clip:1 note:C3 s:piano release:0.1 pan:0.4722222222222222 ]", + "[ (25/2 → 13/1) ⇝ 27/2 | gain:0.34628840801773064 clip:1 note:D5 s:piano release:0.1 pan:0.5925925925925926 ]", + "[ (25/2 → 13/1) ⇝ 27/2 | gain:0.17314420400886532 clip:1 note:C7 s:piano release:0.1 pan:0.6944444444444444 ]", + "[ (25/2 → 13/1) ⇝ 29/2 | gain:0.34628840801773064 clip:1 note:C4 s:piano release:0.1 pan:0.5277777777777778 ]", + "[ (25/2 → 13/1) ⇝ 29/2 | gain:0.34628840801773064 clip:1 note:Eb4 s:piano release:0.1 pan:0.5416666666666667 ]", + "[ (25/2 → 13/1) ⇝ 29/2 | gain:0.34628840801773064 clip:1 note:Bb4 s:piano release:0.1 pan:0.5740740740740741 ]", "[ 38/3 → 13/1 | clip:1 gain:1 note:D6 s:piano release:0.1 pan:0.6481481481481481 ]", "[ 38/3 → 13/1 | clip:1 gain:0.25 note:G6 s:piano release:0.1 pan:0.6712962962962963 ]", - "[ (38/3 → 13/1) ⇝ 40/3 | gain:0.697681845883784 clip:1 note:C2 s:piano release:0.1 pan:0.41666666666666663 ]", + "[ (38/3 → 13/1) ⇝ 40/3 | gain:0.6944084827072773 clip:1 note:C2 s:piano release:0.1 pan:0.41666666666666663 ]", "[ (77/6 → 13/1) ⇝ 79/6 | clip:1 gain:0.5 note:D6 s:piano release:0.1 pan:0.6481481481481481 ]", "[ (77/6 → 13/1) ⇝ 79/6 | clip:1 gain:0.125 note:G6 s:piano release:0.1 pan:0.6712962962962963 ]", - "[ (77/6 → 13/1) ⇝ 27/2 | gain:0.1747812227947151 clip:1 note:C5 s:piano release:0.1 pan:0.5833333333333333 ]", - "[ 25/2 ⇜ (13/1 → 79/6) | gain:0.34805501161047686 clip:1 note:C3 s:piano release:0.1 pan:0.4722222222222222 ]", + "[ (77/6 → 13/1) ⇝ 27/2 | gain:0.17402750580523843 clip:1 note:C5 s:piano release:0.1 pan:0.5833333333333333 ]", + "[ 25/2 ⇜ (13/1 → 79/6) | gain:0.34628840801773064 clip:1 note:C3 s:piano release:0.1 pan:0.4722222222222222 ]", "[ 77/6 ⇜ (13/1 → 79/6) | clip:1 gain:0.5 note:D6 s:piano release:0.1 pan:0.6481481481481481 ]", "[ 77/6 ⇜ (13/1 → 79/6) | clip:1 gain:0.125 note:G6 s:piano release:0.1 pan:0.6712962962962963 ]", - "[ 38/3 ⇜ (13/1 → 40/3) | gain:0.697681845883784 clip:1 note:C2 s:piano release:0.1 pan:0.41666666666666663 ]", + "[ 38/3 ⇜ (13/1 → 40/3) | gain:0.6944084827072773 clip:1 note:C2 s:piano release:0.1 pan:0.41666666666666663 ]", "[ 13/1 → 40/3 | clip:1 gain:1 note:G6 s:piano release:0.1 pan:0.6712962962962963 ]", "[ 13/1 → 40/3 | clip:1 gain:0.25 note:D6 s:piano release:0.1 pan:0.6481481481481481 ]", - "[ 23/2 ⇜ (13/1 → 27/2) | gain:0.17314420400886532 clip:1 note:C6 s:piano release:0.1 pan:0.6388888888888888 ]", - "[ 23/2 ⇜ (13/1 → 27/2) | gain:0.17314420400886532 clip:1 note:Eb6 s:piano release:0.1 pan:0.6527777777777778 ]", - "[ 23/2 ⇜ (13/1 → 27/2) | gain:0.17314420400886532 clip:1 note:Bb6 s:piano release:0.1 pan:0.6851851851851851 ]", - "[ 25/2 ⇜ (13/1 → 27/2) | gain:0.348840922941892 clip:1 note:D5 s:piano release:0.1 pan:0.5925925925925926 ]", - "[ 25/2 ⇜ (13/1 → 27/2) | gain:0.174420461470946 clip:1 note:C7 s:piano release:0.1 pan:0.6944444444444444 ]", - "[ 77/6 ⇜ (13/1 → 27/2) | gain:0.1747812227947151 clip:1 note:C5 s:piano release:0.1 pan:0.5833333333333333 ]", - "[ 13/1 → 41/3 | gain:0.23348021670532074 clip:1 note:C4 s:piano release:0.1 pan:0.5277777777777778 ]", - "[ 12/1 ⇜ (13/1 → 14/1) | gain:0.697681845883784 clip:1 note:C3 s:piano release:0.1 pan:0.4722222222222222 ]", - "[ 12/1 ⇜ (13/1 → 14/1) | gain:0.697681845883784 clip:1 note:Eb3 s:piano release:0.1 pan:0.4861111111111111 ]", - "[ 12/1 ⇜ (13/1 → 14/1) | gain:0.697681845883784 clip:1 note:Bb3 s:piano release:0.1 pan:0.5185185185185186 ]", - "[ 25/2 ⇜ (13/1 → 14/1) ⇝ 29/2 | gain:0.35081559129122375 clip:1 note:C4 s:piano release:0.1 pan:0.5277777777777778 ]", - "[ 25/2 ⇜ (13/1 → 14/1) ⇝ 29/2 | gain:0.35081559129122375 clip:1 note:Eb4 s:piano release:0.1 pan:0.5416666666666667 ]", - "[ 25/2 ⇜ (13/1 → 14/1) ⇝ 29/2 | gain:0.35081559129122375 clip:1 note:Bb4 s:piano release:0.1 pan:0.5740740740740741 ]", - "[ 13/1 → 14/1 | gain:0.7016311825824475 clip:1 note:C4 s:piano release:0.1 pan:0.5277777777777778 ]", - "[ 13/1 → 14/1 | gain:0.23387706086081583 clip:1 note:D6 s:piano release:0.1 pan:0.6481481481481481 ]", - "[ (13/1 → 14/1) ⇝ 15/1 | gain:0.23482697952137338 clip:1 note:C5 s:piano release:0.1 pan:0.5833333333333333 ]", - "[ (13/1 → 14/1) ⇝ 15/1 | gain:0.23482697952137338 clip:1 note:Eb5 s:piano release:0.1 pan:0.5972222222222222 ]", - "[ (13/1 → 14/1) ⇝ 15/1 | gain:0.23482697952137338 clip:1 note:Bb5 s:piano release:0.1 pan:0.6296296296296297 ]", + "[ 23/2 ⇜ (13/1 → 27/2) | gain:0.16972343280040209 clip:1 note:C6 s:piano release:0.1 pan:0.6388888888888888 ]", + "[ 23/2 ⇜ (13/1 → 27/2) | gain:0.16972343280040209 clip:1 note:Eb6 s:piano release:0.1 pan:0.6527777777777778 ]", + "[ 23/2 ⇜ (13/1 → 27/2) | gain:0.16972343280040209 clip:1 note:Bb6 s:piano release:0.1 pan:0.6851851851851851 ]", + "[ 25/2 ⇜ (13/1 → 27/2) | gain:0.34628840801773064 clip:1 note:D5 s:piano release:0.1 pan:0.5925925925925926 ]", + "[ 25/2 ⇜ (13/1 → 27/2) | gain:0.17314420400886532 clip:1 note:C7 s:piano release:0.1 pan:0.6944444444444444 ]", + "[ 77/6 ⇜ (13/1 → 27/2) | gain:0.17402750580523843 clip:1 note:C5 s:piano release:0.1 pan:0.5833333333333333 ]", + "[ 13/1 → 41/3 | gain:0.23256061529459465 clip:1 note:C4 s:piano release:0.1 pan:0.5277777777777778 ]", + "[ 12/1 ⇜ (13/1 → 14/1) | gain:0.6863045732665342 clip:1 note:C3 s:piano release:0.1 pan:0.4722222222222222 ]", + "[ 12/1 ⇜ (13/1 → 14/1) | gain:0.6863045732665342 clip:1 note:Eb3 s:piano release:0.1 pan:0.4861111111111111 ]", + "[ 12/1 ⇜ (13/1 → 14/1) | gain:0.6863045732665342 clip:1 note:Bb3 s:piano release:0.1 pan:0.5185185185185186 ]", + "[ 25/2 ⇜ (13/1 → 14/1) ⇝ 29/2 | gain:0.34628840801773064 clip:1 note:C4 s:piano release:0.1 pan:0.5277777777777778 ]", + "[ 25/2 ⇜ (13/1 → 14/1) ⇝ 29/2 | gain:0.34628840801773064 clip:1 note:Eb4 s:piano release:0.1 pan:0.5416666666666667 ]", + "[ 25/2 ⇜ (13/1 → 14/1) ⇝ 29/2 | gain:0.34628840801773064 clip:1 note:Bb4 s:piano release:0.1 pan:0.5740740740740741 ]", + "[ 13/1 → 14/1 | gain:0.697681845883784 clip:1 note:C4 s:piano release:0.1 pan:0.5277777777777778 ]", + "[ 13/1 → 14/1 | gain:0.23256061529459465 clip:1 note:D6 s:piano release:0.1 pan:0.6481481481481481 ]", + "[ (13/1 → 14/1) ⇝ 15/1 | gain:0.23256061529459465 clip:1 note:C5 s:piano release:0.1 pan:0.5833333333333333 ]", + "[ (13/1 → 14/1) ⇝ 15/1 | gain:0.23256061529459465 clip:1 note:Eb5 s:piano release:0.1 pan:0.5972222222222222 ]", + "[ (13/1 → 14/1) ⇝ 15/1 | gain:0.23256061529459465 clip:1 note:Bb5 s:piano release:0.1 pan:0.6296296296296297 ]", "[ 79/6 → 27/2 | clip:1 gain:0.5 note:G6 s:piano release:0.1 pan:0.6712962962962963 ]", "[ 79/6 → 27/2 | clip:1 gain:0.125 note:D6 s:piano release:0.1 pan:0.6481481481481481 ]", - "[ 79/6 → 83/6 | gain:0.35081559129122375 clip:1 note:C3 s:piano release:0.1 pan:0.4722222222222222 ]", + "[ 79/6 → 83/6 | gain:0.3495624455894302 clip:1 note:C3 s:piano release:0.1 pan:0.4722222222222222 ]", "[ 40/3 → 41/3 | clip:1 gain:1 note:D6 s:piano release:0.1 pan:0.6481481481481481 ]", "[ 40/3 → 41/3 | clip:1 gain:0.25 note:G6 s:piano release:0.1 pan:0.6712962962962963 ]", - "[ 40/3 → 14/1 | gain:0.7026991356941406 clip:1 note:C2 s:piano release:0.1 pan:0.41666666666666663 ]", + "[ 40/3 → 14/1 | gain:0.7004406501159622 clip:1 note:C2 s:piano release:0.1 pan:0.41666666666666663 ]", "[ 27/2 → 83/6 | clip:1 gain:0.5 note:D6 s:piano release:0.1 pan:0.6481481481481481 ]", "[ 27/2 → 83/6 | clip:1 gain:0.125 note:G6 s:piano release:0.1 pan:0.6712962962962963 ]", - "[ (27/2 → 14/1) ⇝ 85/6 | gain:0.17591194053655546 clip:1 note:C5 s:piano release:0.1 pan:0.5833333333333333 ]", - "[ (27/2 → 14/1) ⇝ 29/2 | gain:0.3522404692820601 clip:1 note:C5 s:piano release:0.1 pan:0.5833333333333333 ]", - "[ (27/2 → 14/1) ⇝ 29/2 | gain:0.17612023464103005 clip:1 note:D7 s:piano release:0.1 pan:0.7037037037037037 ]", - "[ (27/2 → 14/1) ⇝ 31/2 | gain:0.17658406954734143 clip:1 note:C6 s:piano release:0.1 pan:0.6388888888888888 ]", - "[ (27/2 → 14/1) ⇝ 31/2 | gain:0.17658406954734143 clip:1 note:Eb6 s:piano release:0.1 pan:0.6527777777777778 ]", - "[ (27/2 → 14/1) ⇝ 31/2 | gain:0.17658406954734143 clip:1 note:Bb6 s:piano release:0.1 pan:0.6851851851851851 ]", + "[ (27/2 → 14/1) ⇝ 85/6 | gain:0.17540779564561187 clip:1 note:C5 s:piano release:0.1 pan:0.5833333333333333 ]", + "[ (27/2 → 14/1) ⇝ 29/2 | gain:0.35081559129122375 clip:1 note:C5 s:piano release:0.1 pan:0.5833333333333333 ]", + "[ (27/2 → 14/1) ⇝ 29/2 | gain:0.17540779564561187 clip:1 note:D7 s:piano release:0.1 pan:0.7037037037037037 ]", + "[ (27/2 → 14/1) ⇝ 31/2 | gain:0.17540779564561187 clip:1 note:C6 s:piano release:0.1 pan:0.6388888888888888 ]", + "[ (27/2 → 14/1) ⇝ 31/2 | gain:0.17540779564561187 clip:1 note:Eb6 s:piano release:0.1 pan:0.6527777777777778 ]", + "[ (27/2 → 14/1) ⇝ 31/2 | gain:0.17540779564561187 clip:1 note:Bb6 s:piano release:0.1 pan:0.6851851851851851 ]", "[ 41/3 → 14/1 | clip:1 gain:1 note:G6 s:piano release:0.1 pan:0.6712962962962963 ]", "[ 41/3 → 14/1 | clip:1 gain:0.25 note:D6 s:piano release:0.1 pan:0.6481481481481481 ]", - "[ (41/3 → 14/1) ⇝ 43/3 | gain:0.23482697952137338 clip:1 note:C4 s:piano release:0.1 pan:0.5277777777777778 ]", + "[ (41/3 → 14/1) ⇝ 43/3 | gain:0.23423304523138017 clip:1 note:C4 s:piano release:0.1 pan:0.5277777777777778 ]", "[ (83/6 → 14/1) ⇝ 85/6 | clip:1 gain:0.5 note:G6 s:piano release:0.1 pan:0.6712962962962963 ]", "[ (83/6 → 14/1) ⇝ 85/6 | clip:1 gain:0.125 note:D6 s:piano release:0.1 pan:0.6481481481481481 ]", - "[ (83/6 → 14/1) ⇝ 29/2 | gain:0.3526015919271991 clip:1 note:C3 s:piano release:0.1 pan:0.4722222222222222 ]", - "[ 27/2 ⇜ (14/1 → 85/6) | gain:0.17591194053655546 clip:1 note:F5 s:piano release:0.1 pan:0.6064814814814814 ]", + "[ (83/6 → 14/1) ⇝ 29/2 | gain:0.3518238810731109 clip:1 note:C3 s:piano release:0.1 pan:0.4722222222222222 ]", + "[ 27/2 ⇜ (14/1 → 85/6) | gain:0.17540779564561187 clip:1 note:F5 s:piano release:0.1 pan:0.6064814814814814 ]", "[ 83/6 ⇜ (14/1 → 85/6) | clip:1 gain:0.5 note:C7 s:piano release:0.1 pan:0.6944444444444444 ]", "[ 83/6 ⇜ (14/1 → 85/6) | clip:1 gain:0.125 note:G6 s:piano release:0.1 pan:0.6712962962962963 ]", - "[ 41/3 ⇜ (14/1 → 43/3) | gain:0.23482697952137338 clip:1 note:F4 s:piano release:0.1 pan:0.5509259259259259 ]", + "[ 41/3 ⇜ (14/1 → 43/3) | gain:0.23423304523138017 clip:1 note:F4 s:piano release:0.1 pan:0.5509259259259259 ]", "[ 14/1 → 43/3 | clip:1 gain:1 note:G6 s:piano release:0.1 pan:0.6712962962962963 ]", "[ 14/1 → 43/3 | clip:1 gain:0.25 note:C7 s:piano release:0.1 pan:0.6944444444444444 ]", - "[ 25/2 ⇜ (14/1 → 29/2) | gain:0.35081559129122375 clip:1 note:F4 s:piano release:0.1 pan:0.5509259259259259 ]", - "[ 25/2 ⇜ (14/1 → 29/2) | gain:0.35081559129122375 clip:1 note:A4 s:piano release:0.1 pan:0.5694444444444444 ]", - "[ 25/2 ⇜ (14/1 → 29/2) | gain:0.35081559129122375 clip:1 note:Eb5 s:piano release:0.1 pan:0.5972222222222222 ]", - "[ 27/2 ⇜ (14/1 → 29/2) | gain:0.3522404692820601 clip:1 note:F5 s:piano release:0.1 pan:0.6064814814814814 ]", - "[ 27/2 ⇜ (14/1 → 29/2) | gain:0.17612023464103005 clip:1 note:G7 s:piano release:0.1 pan:0.7268518518518519 ]", - "[ 83/6 ⇜ (14/1 → 29/2) | gain:0.3526015919271991 clip:1 note:F3 s:piano release:0.1 pan:0.49537037037037035 ]", - "[ 14/1 → 44/3 | gain:0.7058196775556453 clip:1 note:F2 s:piano release:0.1 pan:0.4398148148148148 ]", - "[ 13/1 ⇜ (14/1 → 15/1) | gain:0.23482697952137338 clip:1 note:F5 s:piano release:0.1 pan:0.6064814814814814 ]", - "[ 13/1 ⇜ (14/1 → 15/1) | gain:0.23482697952137338 clip:1 note:A5 s:piano release:0.1 pan:0.625 ]", - "[ 13/1 ⇜ (14/1 → 15/1) | gain:0.23482697952137338 clip:1 note:Eb6 s:piano release:0.1 pan:0.6527777777777778 ]", - "[ 27/2 ⇜ (14/1 → 15/1) ⇝ 31/2 | gain:0.17658406954734143 clip:1 note:F6 s:piano release:0.1 pan:0.662037037037037 ]", - "[ 27/2 ⇜ (14/1 → 15/1) ⇝ 31/2 | gain:0.17658406954734143 clip:1 note:A6 s:piano release:0.1 pan:0.6805555555555556 ]", - "[ 27/2 ⇜ (14/1 → 15/1) ⇝ 31/2 | gain:0.17658406954734143 clip:1 note:Eb7 s:piano release:0.1 pan:0.7083333333333333 ]", - "[ 14/1 → 15/1 | gain:0.7063362781893657 clip:1 note:G4 s:piano release:0.1 pan:0.5601851851851851 ]", - "[ 14/1 → 15/1 | gain:0.2354454260631219 clip:1 note:F6 s:piano release:0.1 pan:0.662037037037037 ]", - "[ (14/1 → 15/1) ⇝ 16/1 | gain:0.7073558770128159 clip:1 note:F3 s:piano release:0.1 pan:0.49537037037037035 ]", - "[ (14/1 → 15/1) ⇝ 16/1 | gain:0.7073558770128159 clip:1 note:A3 s:piano release:0.1 pan:0.5138888888888888 ]", - "[ (14/1 → 15/1) ⇝ 16/1 | gain:0.7073558770128159 clip:1 note:Eb4 s:piano release:0.1 pan:0.5416666666666667 ]", + "[ 25/2 ⇜ (14/1 → 29/2) | gain:0.34628840801773064 clip:1 note:F4 s:piano release:0.1 pan:0.5509259259259259 ]", + "[ 25/2 ⇜ (14/1 → 29/2) | gain:0.34628840801773064 clip:1 note:A4 s:piano release:0.1 pan:0.5694444444444444 ]", + "[ 25/2 ⇜ (14/1 → 29/2) | gain:0.34628840801773064 clip:1 note:Eb5 s:piano release:0.1 pan:0.5972222222222222 ]", + "[ 27/2 ⇜ (14/1 → 29/2) | gain:0.35081559129122375 clip:1 note:F5 s:piano release:0.1 pan:0.6064814814814814 ]", + "[ 27/2 ⇜ (14/1 → 29/2) | gain:0.17540779564561187 clip:1 note:G7 s:piano release:0.1 pan:0.7268518518518519 ]", + "[ 83/6 ⇜ (14/1 → 29/2) | gain:0.3518238810731109 clip:1 note:F3 s:piano release:0.1 pan:0.49537037037037035 ]", + "[ 14/1 → 44/3 | gain:0.7044809385641202 clip:1 note:F2 s:piano release:0.1 pan:0.4398148148148148 ]", + "[ 13/1 ⇜ (14/1 → 15/1) | gain:0.23256061529459465 clip:1 note:F5 s:piano release:0.1 pan:0.6064814814814814 ]", + "[ 13/1 ⇜ (14/1 → 15/1) | gain:0.23256061529459465 clip:1 note:A5 s:piano release:0.1 pan:0.625 ]", + "[ 13/1 ⇜ (14/1 → 15/1) | gain:0.23256061529459465 clip:1 note:Eb6 s:piano release:0.1 pan:0.6527777777777778 ]", + "[ 27/2 ⇜ (14/1 → 15/1) ⇝ 31/2 | gain:0.17540779564561187 clip:1 note:F6 s:piano release:0.1 pan:0.662037037037037 ]", + "[ 27/2 ⇜ (14/1 → 15/1) ⇝ 31/2 | gain:0.17540779564561187 clip:1 note:A6 s:piano release:0.1 pan:0.6805555555555556 ]", + "[ 27/2 ⇜ (14/1 → 15/1) ⇝ 31/2 | gain:0.17540779564561187 clip:1 note:Eb7 s:piano release:0.1 pan:0.7083333333333333 ]", + "[ 14/1 → 15/1 | gain:0.7044809385641202 clip:1 note:G4 s:piano release:0.1 pan:0.5601851851851851 ]", + "[ 14/1 → 15/1 | gain:0.23482697952137338 clip:1 note:F6 s:piano release:0.1 pan:0.662037037037037 ]", + "[ (14/1 → 15/1) ⇝ 16/1 | gain:0.7044809385641202 clip:1 note:F3 s:piano release:0.1 pan:0.49537037037037035 ]", + "[ (14/1 → 15/1) ⇝ 16/1 | gain:0.7044809385641202 clip:1 note:A3 s:piano release:0.1 pan:0.5138888888888888 ]", + "[ (14/1 → 15/1) ⇝ 16/1 | gain:0.7044809385641202 clip:1 note:Eb4 s:piano release:0.1 pan:0.5416666666666667 ]", "[ 85/6 → 29/2 | clip:1 gain:0.5 note:G6 s:piano release:0.1 pan:0.6712962962962963 ]", "[ 85/6 → 29/2 | clip:1 gain:0.125 note:C7 s:piano release:0.1 pan:0.6944444444444444 ]", - "[ 85/6 → 89/6 | gain:0.17658406954734143 clip:1 note:F5 s:piano release:0.1 pan:0.6064814814814814 ]", + "[ 85/6 → 89/6 | gain:0.17630079596359954 clip:1 note:F5 s:piano release:0.1 pan:0.6064814814814814 ]", "[ 43/3 → 44/3 | clip:1 gain:1 note:C7 s:piano release:0.1 pan:0.6944444444444444 ]", "[ 43/3 → 44/3 | clip:1 gain:0.25 note:G6 s:piano release:0.1 pan:0.6712962962962963 ]", - "[ 43/3 → 15/1 | gain:0.23558651387028934 clip:1 note:F4 s:piano release:0.1 pan:0.5509259259259259 ]", + "[ 43/3 → 15/1 | gain:0.23527322585188176 clip:1 note:F4 s:piano release:0.1 pan:0.5509259259259259 ]", "[ 29/2 → 89/6 | clip:1 gain:0.5 note:C7 s:piano release:0.1 pan:0.6944444444444444 ]", "[ 29/2 → 89/6 | clip:1 gain:0.125 note:G6 s:piano release:0.1 pan:0.6712962962962963 ]", - "[ (29/2 → 15/1) ⇝ 91/6 | gain:0.3535483696800781 clip:1 note:F3 s:piano release:0.1 pan:0.49537037037037035 ]", - "[ (29/2 → 15/1) ⇝ 31/2 | gain:0.35367793850640794 clip:1 note:G5 s:piano release:0.1 pan:0.6157407407407407 ]", - "[ (29/2 → 15/1) ⇝ 31/2 | gain:0.17683896925320397 clip:1 note:F7 s:piano release:0.1 pan:0.7175925925925926 ]", - "[ (29/2 → 15/1) ⇝ 33/2 | gain:0.35387819052467123 clip:1 note:F4 s:piano release:0.1 pan:0.5509259259259259 ]", - "[ (29/2 → 15/1) ⇝ 33/2 | gain:0.35387819052467123 clip:1 note:A4 s:piano release:0.1 pan:0.5694444444444444 ]", - "[ (29/2 → 15/1) ⇝ 33/2 | gain:0.35387819052467123 clip:1 note:Eb5 s:piano release:0.1 pan:0.5972222222222222 ]", + "[ (29/2 → 15/1) ⇝ 91/6 | gain:0.35316813909468286 clip:1 note:F3 s:piano release:0.1 pan:0.49537037037037035 ]", + "[ (29/2 → 15/1) ⇝ 31/2 | gain:0.35316813909468286 clip:1 note:G5 s:piano release:0.1 pan:0.6157407407407407 ]", + "[ (29/2 → 15/1) ⇝ 31/2 | gain:0.17658406954734143 clip:1 note:F7 s:piano release:0.1 pan:0.7175925925925926 ]", + "[ (29/2 → 15/1) ⇝ 33/2 | gain:0.35316813909468286 clip:1 note:F4 s:piano release:0.1 pan:0.5509259259259259 ]", + "[ (29/2 → 15/1) ⇝ 33/2 | gain:0.35316813909468286 clip:1 note:A4 s:piano release:0.1 pan:0.5694444444444444 ]", + "[ (29/2 → 15/1) ⇝ 33/2 | gain:0.35316813909468286 clip:1 note:Eb5 s:piano release:0.1 pan:0.5972222222222222 ]", "[ 44/3 → 15/1 | clip:1 gain:1 note:G6 s:piano release:0.1 pan:0.6712962962962963 ]", "[ 44/3 → 15/1 | clip:1 gain:0.25 note:C7 s:piano release:0.1 pan:0.6944444444444444 ]", - "[ (44/3 → 15/1) ⇝ 46/3 | gain:0.7073558770128159 clip:1 note:F2 s:piano release:0.1 pan:0.4398148148148148 ]", + "[ (44/3 → 15/1) ⇝ 46/3 | gain:0.7067595416108681 clip:1 note:F2 s:piano release:0.1 pan:0.4398148148148148 ]", "[ (89/6 → 15/1) ⇝ 91/6 | clip:1 gain:0.5 note:G6 s:piano release:0.1 pan:0.6712962962962963 ]", "[ (89/6 → 15/1) ⇝ 91/6 | clip:1 gain:0.125 note:C7 s:piano release:0.1 pan:0.6944444444444444 ]", - "[ (89/6 → 15/1) ⇝ 31/2 | gain:0.17688642813272723 clip:1 note:F5 s:piano release:0.1 pan:0.6064814814814814 ]", - "[ 29/2 ⇜ (15/1 → 91/6) | gain:0.3535483696800781 clip:1 note:F3 s:piano release:0.1 pan:0.49537037037037035 ]", + "[ (89/6 → 15/1) ⇝ 31/2 | gain:0.17677418484003904 clip:1 note:F5 s:piano release:0.1 pan:0.6064814814814814 ]", + "[ 29/2 ⇜ (15/1 → 91/6) | gain:0.35316813909468286 clip:1 note:F3 s:piano release:0.1 pan:0.49537037037037035 ]", "[ 89/6 ⇜ (15/1 → 91/6) | clip:1 gain:0.5 note:G6 s:piano release:0.1 pan:0.6712962962962963 ]", "[ 89/6 ⇜ (15/1 → 91/6) | clip:1 gain:0.125 note:C7 s:piano release:0.1 pan:0.6944444444444444 ]", - "[ 44/3 ⇜ (15/1 → 46/3) | gain:0.7073558770128159 clip:1 note:F2 s:piano release:0.1 pan:0.4398148148148148 ]", + "[ 44/3 ⇜ (15/1 → 46/3) | gain:0.7067595416108681 clip:1 note:F2 s:piano release:0.1 pan:0.4398148148148148 ]", "[ 15/1 → 46/3 | clip:1 gain:1 note:C7 s:piano release:0.1 pan:0.6944444444444444 ]", "[ 15/1 → 46/3 | clip:1 gain:0.25 note:G6 s:piano release:0.1 pan:0.6712962962962963 ]", - "[ 27/2 ⇜ (15/1 → 31/2) | gain:0.17658406954734143 clip:1 note:F6 s:piano release:0.1 pan:0.662037037037037 ]", - "[ 27/2 ⇜ (15/1 → 31/2) | gain:0.17658406954734143 clip:1 note:A6 s:piano release:0.1 pan:0.6805555555555556 ]", - "[ 27/2 ⇜ (15/1 → 31/2) | gain:0.17658406954734143 clip:1 note:Eb7 s:piano release:0.1 pan:0.7083333333333333 ]", - "[ 29/2 ⇜ (15/1 → 31/2) | gain:0.35367793850640794 clip:1 note:G5 s:piano release:0.1 pan:0.6157407407407407 ]", - "[ 29/2 ⇜ (15/1 → 31/2) | gain:0.17683896925320397 clip:1 note:F7 s:piano release:0.1 pan:0.7175925925925926 ]", - "[ 89/6 ⇜ (15/1 → 31/2) | gain:0.17688642813272723 clip:1 note:F5 s:piano release:0.1 pan:0.6064814814814814 ]", - "[ 15/1 → 47/3 | gain:0.2358919248712863 clip:1 note:F4 s:piano release:0.1 pan:0.5509259259259259 ]", - "[ 14/1 ⇜ (15/1 → 16/1) | gain:0.7073558770128159 clip:1 note:F3 s:piano release:0.1 pan:0.49537037037037035 ]", - "[ 14/1 ⇜ (15/1 → 16/1) | gain:0.7073558770128159 clip:1 note:A3 s:piano release:0.1 pan:0.5138888888888888 ]", - "[ 14/1 ⇜ (15/1 → 16/1) | gain:0.7073558770128159 clip:1 note:Eb4 s:piano release:0.1 pan:0.5416666666666667 ]", - "[ 29/2 ⇜ (15/1 → 16/1) ⇝ 33/2 | gain:0.35387819052467123 clip:1 note:F4 s:piano release:0.1 pan:0.5509259259259259 ]", - "[ 29/2 ⇜ (15/1 → 16/1) ⇝ 33/2 | gain:0.35387819052467123 clip:1 note:A4 s:piano release:0.1 pan:0.5694444444444444 ]", - "[ 29/2 ⇜ (15/1 → 16/1) ⇝ 33/2 | gain:0.35387819052467123 clip:1 note:Eb5 s:piano release:0.1 pan:0.5972222222222222 ]", - "[ 15/1 → 16/1 | gain:0.7077563810493425 clip:1 note:F4 s:piano release:0.1 pan:0.5509259259259259 ]", - "[ 15/1 → 16/1 | gain:0.23591879368311414 clip:1 note:G6 s:piano release:0.1 pan:0.6712962962962963 ]", - "[ (15/1 → 16/1) ⇝ 17/1 | gain:0.23593895534674325 clip:1 note:F5 s:piano release:0.1 pan:0.6064814814814814 ]", - "[ (15/1 → 16/1) ⇝ 17/1 | gain:0.23593895534674325 clip:1 note:A5 s:piano release:0.1 pan:0.625 ]", - "[ (15/1 → 16/1) ⇝ 17/1 | gain:0.23593895534674325 clip:1 note:Eb6 s:piano release:0.1 pan:0.6527777777777778 ]", + "[ 27/2 ⇜ (15/1 → 31/2) | gain:0.17540779564561187 clip:1 note:F6 s:piano release:0.1 pan:0.662037037037037 ]", + "[ 27/2 ⇜ (15/1 → 31/2) | gain:0.17540779564561187 clip:1 note:A6 s:piano release:0.1 pan:0.6805555555555556 ]", + "[ 27/2 ⇜ (15/1 → 31/2) | gain:0.17540779564561187 clip:1 note:Eb7 s:piano release:0.1 pan:0.7083333333333333 ]", + "[ 29/2 ⇜ (15/1 → 31/2) | gain:0.35316813909468286 clip:1 note:G5 s:piano release:0.1 pan:0.6157407407407407 ]", + "[ 29/2 ⇜ (15/1 → 31/2) | gain:0.17658406954734143 clip:1 note:F7 s:piano release:0.1 pan:0.7175925925925926 ]", + "[ 89/6 ⇜ (15/1 → 31/2) | gain:0.17677418484003904 clip:1 note:F5 s:piano release:0.1 pan:0.6064814814814814 ]", + "[ 15/1 → 47/3 | gain:0.23578529233760528 clip:1 note:F4 s:piano release:0.1 pan:0.5509259259259259 ]", + "[ 14/1 ⇜ (15/1 → 16/1) | gain:0.7044809385641202 clip:1 note:F3 s:piano release:0.1 pan:0.49537037037037035 ]", + "[ 14/1 ⇜ (15/1 → 16/1) | gain:0.7044809385641202 clip:1 note:A3 s:piano release:0.1 pan:0.5138888888888888 ]", + "[ 14/1 ⇜ (15/1 → 16/1) | gain:0.7044809385641202 clip:1 note:Eb4 s:piano release:0.1 pan:0.5416666666666667 ]", + "[ 29/2 ⇜ (15/1 → 16/1) ⇝ 33/2 | gain:0.35316813909468286 clip:1 note:F4 s:piano release:0.1 pan:0.5509259259259259 ]", + "[ 29/2 ⇜ (15/1 → 16/1) ⇝ 33/2 | gain:0.35316813909468286 clip:1 note:A4 s:piano release:0.1 pan:0.5694444444444444 ]", + "[ 29/2 ⇜ (15/1 → 16/1) ⇝ 33/2 | gain:0.35316813909468286 clip:1 note:Eb5 s:piano release:0.1 pan:0.5972222222222222 ]", + "[ 15/1 → 16/1 | gain:0.7073558770128159 clip:1 note:F4 s:piano release:0.1 pan:0.5509259259259259 ]", + "[ 15/1 → 16/1 | gain:0.23578529233760528 clip:1 note:G6 s:piano release:0.1 pan:0.6712962962962963 ]", + "[ (15/1 → 16/1) ⇝ 17/1 | gain:0.23578529233760528 clip:1 note:F5 s:piano release:0.1 pan:0.6064814814814814 ]", + "[ (15/1 → 16/1) ⇝ 17/1 | gain:0.23578529233760528 clip:1 note:A5 s:piano release:0.1 pan:0.625 ]", + "[ (15/1 → 16/1) ⇝ 17/1 | gain:0.23578529233760528 clip:1 note:Eb6 s:piano release:0.1 pan:0.6527777777777778 ]", "[ 91/6 → 31/2 | clip:1 gain:0.5 note:C7 s:piano release:0.1 pan:0.6944444444444444 ]", "[ 91/6 → 31/2 | clip:1 gain:0.125 note:G6 s:piano release:0.1 pan:0.6712962962962963 ]", - "[ 91/6 → 95/6 | gain:0.35387819052467123 clip:1 note:F3 s:piano release:0.1 pan:0.49537037037037035 ]", + "[ 91/6 → 95/6 | gain:0.35377285626545446 clip:1 note:F3 s:piano release:0.1 pan:0.49537037037037035 ]", "[ 46/3 → 47/3 | clip:1 gain:1 note:G6 s:piano release:0.1 pan:0.6712962962962963 ]", "[ 46/3 → 47/3 | clip:1 gain:0.25 note:C7 s:piano release:0.1 pan:0.6944444444444444 ]", - "[ 46/3 → 16/1 | gain:0.7077986570641782 clip:1 note:F2 s:piano release:0.1 pan:0.4398148148148148 ]", + "[ 46/3 → 16/1 | gain:0.7076757746138589 clip:1 note:F2 s:piano release:0.1 pan:0.4398148148148148 ]", "[ 31/2 → 95/6 | clip:1 gain:0.5 note:G6 s:piano release:0.1 pan:0.6712962962962963 ]", "[ 31/2 → 95/6 | clip:1 gain:0.125 note:C7 s:piano release:0.1 pan:0.6944444444444444 ]", - "[ (31/2 → 16/1) ⇝ 97/6 | gain:0.17695363841880415 clip:1 note:F5 s:piano release:0.1 pan:0.6064814814814814 ]", - "[ (31/2 → 16/1) ⇝ 33/2 | gain:0.3539084330201149 clip:1 note:F5 s:piano release:0.1 pan:0.6064814814814814 ]", - "[ (31/2 → 16/1) ⇝ 33/2 | gain:0.17695421651005744 clip:1 note:G7 s:piano release:0.1 pan:0.7268518518518519 ]", - "[ (31/2 → 16/1) ⇝ 35/2 | gain:0.17696702224930969 clip:1 note:F6 s:piano release:0.1 pan:0.662037037037037 ]", - "[ (31/2 → 16/1) ⇝ 35/2 | gain:0.17696702224930969 clip:1 note:A6 s:piano release:0.1 pan:0.6805555555555556 ]", - "[ (31/2 → 16/1) ⇝ 35/2 | gain:0.17696702224930969 clip:1 note:Eb7 s:piano release:0.1 pan:0.7083333333333333 ]", + "[ (31/2 → 16/1) ⇝ 97/6 | gain:0.17693909526233562 clip:1 note:F5 s:piano release:0.1 pan:0.6064814814814814 ]", + "[ (31/2 → 16/1) ⇝ 33/2 | gain:0.35387819052467123 clip:1 note:F5 s:piano release:0.1 pan:0.6064814814814814 ]", + "[ (31/2 → 16/1) ⇝ 33/2 | gain:0.17693909526233562 clip:1 note:G7 s:piano release:0.1 pan:0.7268518518518519 ]", + "[ (31/2 → 16/1) ⇝ 35/2 | gain:0.17693909526233562 clip:1 note:F6 s:piano release:0.1 pan:0.662037037037037 ]", + "[ (31/2 → 16/1) ⇝ 35/2 | gain:0.17693909526233562 clip:1 note:A6 s:piano release:0.1 pan:0.6805555555555556 ]", + "[ (31/2 → 16/1) ⇝ 35/2 | gain:0.17693909526233562 clip:1 note:Eb7 s:piano release:0.1 pan:0.7083333333333333 ]", "[ 47/3 → 16/1 | clip:1 gain:1 note:C7 s:piano release:0.1 pan:0.6944444444444444 ]", "[ 47/3 → 16/1 | clip:1 gain:0.25 note:G6 s:piano release:0.1 pan:0.6712962962962963 ]", - "[ (47/3 → 16/1) ⇝ 49/3 | gain:0.23593895534674325 clip:1 note:F4 s:piano release:0.1 pan:0.5509259259259259 ]", + "[ (47/3 → 16/1) ⇝ 49/3 | gain:0.2359328856880594 clip:1 note:F4 s:piano release:0.1 pan:0.5509259259259259 ]", "[ (95/6 → 16/1) ⇝ 97/6 | clip:1 gain:0.5 note:C7 s:piano release:0.1 pan:0.6944444444444444 ]", "[ (95/6 → 16/1) ⇝ 97/6 | clip:1 gain:0.125 note:G6 s:piano release:0.1 pan:0.6712962962962963 ]", - "[ (95/6 → 16/1) ⇝ 33/2 | gain:0.3539094121570209 clip:1 note:F3 s:piano release:0.1 pan:0.49537037037037035 ]", + "[ (95/6 → 16/1) ⇝ 33/2 | gain:0.3539072768376083 clip:1 note:F3 s:piano release:0.1 pan:0.49537037037037035 ]", ] `; exports[`renders tunes > tune: flatrave 1`] = ` [ - "[ 0/1 → 1/4 | s:hh n:1 end:0.02000058072071123 bank:RolandTR909 room:0.5 gain:0.4 ]", + "[ 0/1 → 1/8 | s:hh n:1 speed:0.5 delay:0.5 end:0.02 bank:RolandTR909 room:0.5 gain:0.4 ]", "[ 0/1 → 1/2 | s:bd bank:RolandTR909 ]", - "[ 0/1 ⇜ (1/8 → 1/4) | s:hh n:1 end:0.02000058072071123 bank:RolandTR909 room:0.5 gain:0.4 ]", - "[ 1/8 → 1/4 | s:hh n:1 speed:0.5 delay:0.5 end:0.020001936784171157 bank:RolandTR909 room:0.5 gain:0.4 ]", - "[ 1/8 → 1/4 | s:hh n:1 speed:0.5 delay:0.5 end:0.020001936784171157 bank:RolandTR909 room:0.5 gain:0.4 ]", + "[ 1/8 → 1/4 | s:hh n:1 end:0.02000058072071123 bank:RolandTR909 room:0.5 gain:0.4 ]", + "[ 1/8 → 1/4 | s:hh n:1 end:0.02000058072071123 bank:RolandTR909 room:0.5 gain:0.4 ]", "[ 1/8 → 1/4 | note:G1 s:sawtooth decay:0.1 sustain:0 lpattack:0.1 lpenv:-4 cutoff:800 resonance:8 ]", - "[ 1/4 → 3/8 | s:hh n:1 end:0.02000875429921906 bank:RolandTR909 room:0.5 gain:0.4 ]", - "[ 1/4 → 3/8 | s:hh n:1 end:0.02000875429921906 bank:RolandTR909 room:0.5 gain:0.4 ]", + "[ 1/4 → 3/8 | s:hh n:1 end:0.02000453637431655 bank:RolandTR909 room:0.5 gain:0.4 ]", + "[ 1/4 → 3/8 | s:hh n:1 end:0.02000453637431655 bank:RolandTR909 room:0.5 gain:0.4 ]", "[ 1/4 → 3/8 | note:G1 s:sawtooth decay:0.1 sustain:0 lpattack:0.1 lpenv:-4 cutoff:800 resonance:8 ]", - "[ 3/8 → 1/2 | s:hh n:1 end:0.020023446730265706 bank:RolandTR909 room:0.5 gain:0.4 ]", + "[ 3/8 → 1/2 | s:hh n:1 end:0.02001494577056579 bank:RolandTR909 room:0.5 gain:0.4 ]", "[ 1/2 → 5/8 | note:G1 s:sawtooth decay:0.1 sustain:0 lpattack:0.1 lpenv:-4 cutoff:800 resonance:8 ]", "[ 1/2 → 1/1 | s:bd bank:RolandTR909 ]", "[ 1/2 → 1/1 | s:cp bank:RolandTR909 ]", "[ 1/2 → 1/1 | s:sd bank:RolandTR909 ]", - "[ 5/8 → 3/4 | s:hh n:1 end:0.020086608138500644 bank:RolandTR909 room:0.5 gain:0.4 ]", - "[ 5/8 → 3/4 | s:hh n:1 end:0.020086608138500644 bank:RolandTR909 room:0.5 gain:0.4 ]", "[ 5/8 → 3/4 | note:G1 s:sawtooth decay:0.1 sustain:0 lpattack:0.1 lpenv:-4 cutoff:800 resonance:8 ]", - "[ 3/4 → 7/8 | s:hh n:1 end:0.02013941880355398 bank:RolandTR909 room:0.5 gain:0.4 ]", + "[ 7/8 → 1/1 | s:hh n:1 end:0.020171942481159617 bank:RolandTR909 room:0.5 gain:0.4 ]", + "[ 7/8 → 1/1 | s:hh n:1 end:0.020171942481159617 bank:RolandTR909 room:0.5 gain:0.4 ]", "[ 7/8 → 1/1 | note:G1 s:sawtooth decay:0.1 sustain:0 lpattack:0.1 lpenv:-4 cutoff:800 resonance:8 ]", ] `; @@ -7210,43 +7203,43 @@ exports[`renders tunes > tune: holyflute 1`] = ` exports[`renders tunes > tune: juxUndTollerei 1`] = ` [ - "[ 0/1 → 1/4 | note:c3 s:sawtooth pan:0 cutoff:1188.2154262966046 lpattack:0.2 lpenv:-2 decay:0.05 sustain:0 room:0.6 delay:0.5 delaytime:0.1 delayfeedback:0.4 ]", - "[ 0/1 → 1/4 | note:bb3 s:sawtooth pan:1 color:green cutoff:1188.2154262966046 lpattack:0.2 lpenv:-2 decay:0.05 sustain:0 room:0.6 delay:0.5 delaytime:0.1 delayfeedback:0.4 ]", - "[ 1/4 → 1/2 | note:eb3 s:sawtooth pan:0 cutoff:1361.2562095290161 lpattack:0.2 lpenv:-2 decay:0.05 sustain:0 room:0.6 delay:0.5 delaytime:0.1 delayfeedback:0.4 ]", - "[ 1/4 → 1/2 | note:g3 s:sawtooth pan:1 color:green cutoff:1361.2562095290161 lpattack:0.2 lpenv:-2 decay:0.05 sustain:0 room:0.6 delay:0.5 delaytime:0.1 delayfeedback:0.4 ]", - "[ 1/2 → 3/4 | note:g3 s:sawtooth pan:0 cutoff:1524.257063143398 lpattack:0.2 lpenv:-2 decay:0.05 sustain:0 room:0.6 delay:0.5 delaytime:0.1 delayfeedback:0.4 ]", - "[ 1/2 → 3/4 | note:eb3 s:sawtooth pan:1 color:green cutoff:1524.257063143398 lpattack:0.2 lpenv:-2 decay:0.05 sustain:0 room:0.6 delay:0.5 delaytime:0.1 delayfeedback:0.4 ]", - "[ (101/200 → 1/1) ⇝ 201/200 | note:55 s:triangle pan:0 cutoff:1602.9480029324704 lpattack:0.2 lpenv:-2 decay:0.05 sustain:0 room:0.6 delay:0.5 delaytime:0.1 delayfeedback:0.4 ]", - "[ (101/200 → 1/1) ⇝ 201/200 | note:65 s:triangle pan:1 color:green cutoff:1602.9480029324704 lpattack:0.2 lpenv:-2 decay:0.05 sustain:0 room:0.6 delay:0.5 delaytime:0.1 delayfeedback:0.4 ]", - "[ 3/4 → 1/1 | note:bb3 s:sawtooth pan:0 cutoff:1670.953955747281 lpattack:0.2 lpenv:-2 decay:0.05 sustain:0 room:0.6 delay:0.5 delaytime:0.1 delayfeedback:0.4 ]", - "[ 3/4 → 1/1 | note:c3 s:sawtooth pan:1 color:green cutoff:1670.953955747281 lpattack:0.2 lpenv:-2 decay:0.05 sustain:0 room:0.6 delay:0.5 delaytime:0.1 delayfeedback:0.4 ]", + "[ 0/1 → 1/4 | note:c3 s:sawtooth pan:0 cutoff:1100 lpattack:0.2 lpenv:-2 decay:0.05 sustain:0 room:0.6 delay:0.5 delaytime:0.1 delayfeedback:0.4 ]", + "[ 0/1 → 1/4 | note:bb3 s:sawtooth pan:1 color:green cutoff:1100 lpattack:0.2 lpenv:-2 decay:0.05 sustain:0 room:0.6 delay:0.5 delaytime:0.1 delayfeedback:0.4 ]", + "[ 1/4 → 1/2 | note:eb3 s:sawtooth pan:0 cutoff:1275.5812898145155 lpattack:0.2 lpenv:-2 decay:0.05 sustain:0 room:0.6 delay:0.5 delaytime:0.1 delayfeedback:0.4 ]", + "[ 1/4 → 1/2 | note:g3 s:sawtooth pan:1 color:green cutoff:1275.5812898145155 lpattack:0.2 lpenv:-2 decay:0.05 sustain:0 room:0.6 delay:0.5 delaytime:0.1 delayfeedback:0.4 ]", + "[ 1/2 → 3/4 | note:g3 s:sawtooth pan:0 cutoff:1444.4150891285808 lpattack:0.2 lpenv:-2 decay:0.05 sustain:0 room:0.6 delay:0.5 delaytime:0.1 delayfeedback:0.4 ]", + "[ 1/2 → 3/4 | note:eb3 s:sawtooth pan:1 color:green cutoff:1444.4150891285808 lpattack:0.2 lpenv:-2 decay:0.05 sustain:0 room:0.6 delay:0.5 delaytime:0.1 delayfeedback:0.4 ]", + "[ (101/200 → 1/1) ⇝ 201/200 | note:55 s:triangle pan:0 cutoff:1447.6776848789743 lpattack:0.2 lpenv:-2 decay:0.05 sustain:0 room:0.6 delay:0.5 delaytime:0.1 delayfeedback:0.4 ]", + "[ (101/200 → 1/1) ⇝ 201/200 | note:65 s:triangle pan:1 color:green cutoff:1447.6776848789743 lpattack:0.2 lpenv:-2 decay:0.05 sustain:0 room:0.6 delay:0.5 delaytime:0.1 delayfeedback:0.4 ]", + "[ 3/4 → 1/1 | note:bb3 s:sawtooth pan:0 cutoff:1600.013209717642 lpattack:0.2 lpenv:-2 decay:0.05 sustain:0 room:0.6 delay:0.5 delaytime:0.1 delayfeedback:0.4 ]", + "[ 3/4 → 1/1 | note:c3 s:sawtooth pan:1 color:green cutoff:1600.013209717642 lpattack:0.2 lpenv:-2 decay:0.05 sustain:0 room:0.6 delay:0.5 delaytime:0.1 delayfeedback:0.4 ]", ] `; exports[`renders tunes > tune: loungeSponge 1`] = ` [ "[ 0/1 → 1/4 | note:C2 gain:1 ]", - "[ 0/1 → 3/8 | note:B3 cutoff:1537 ]", - "[ 0/1 → 3/8 | note:D4 cutoff:1537 ]", - "[ 0/1 → 3/8 | note:E4 cutoff:1537 ]", - "[ 0/1 → 3/8 | note:G4 cutoff:1537 ]", + "[ 0/1 → 3/8 | note:B3 cutoff:1250 ]", + "[ 0/1 → 3/8 | note:D4 cutoff:1250 ]", + "[ 0/1 → 3/8 | note:E4 cutoff:1250 ]", + "[ 0/1 → 3/8 | note:G4 cutoff:1250 ]", "[ -1/4 ⇜ (0/1 → 1/2) | n:E5 clip:0.25 ]", "[ 0/1 → 1/2 | s:bd bank:RolandTR909 ]", "[ 0/1 → 3/4 | n:A4 clip:0.25 ]", "[ 1/4 → 1/2 | note:C2 gain:4 ]", "[ 1/4 → 1/2 | s:hh bank:RolandTR909 ]", - "[ 3/8 → 3/4 | note:B3 cutoff:1537 ]", - "[ 3/8 → 3/4 | note:D4 cutoff:1537 ]", - "[ 3/8 → 3/4 | note:E4 cutoff:1537 ]", - "[ 3/8 → 3/4 | note:G4 cutoff:1537 ]", + "[ 3/8 → 3/4 | note:B3 cutoff:1250 ]", + "[ 3/8 → 3/4 | note:D4 cutoff:1250 ]", + "[ 3/8 → 3/4 | note:E4 cutoff:1250 ]", + "[ 3/8 → 3/4 | note:G4 cutoff:1250 ]", "[ 1/2 → 3/4 | note:C2 gain:1 ]", "[ 1/2 → 1/1 | s:bd bank:RolandTR909 ]", "[ 1/2 → 1/1 | s:cp bank:RolandTR909 ]", "[ (1/2 → 1/1) ⇝ 5/4 | n:C5 clip:0.25 ]", - "[ 3/4 → 1/1 | note:B3 cutoff:1537 ]", - "[ 3/4 → 1/1 | note:D4 cutoff:1537 ]", - "[ 3/4 → 1/1 | note:E4 cutoff:1537 ]", - "[ 3/4 → 1/1 | note:G4 cutoff:1537 ]", + "[ 3/4 → 1/1 | note:B3 cutoff:1250 ]", + "[ 3/4 → 1/1 | note:D4 cutoff:1250 ]", + "[ 3/4 → 1/1 | note:E4 cutoff:1250 ]", + "[ 3/4 → 1/1 | note:G4 cutoff:1250 ]", "[ 3/4 → 1/1 | note:C2 gain:4 ]", "[ 3/4 → 1/1 | s:hh bank:RolandTR909 ]", "[ (3/4 → 1/1) ⇝ 3/2 | n:A5 clip:0.25 ]", @@ -7255,58 +7248,60 @@ exports[`renders tunes > tune: loungeSponge 1`] = ` exports[`renders tunes > tune: meltingsubmarine 1`] = ` [ - "[ (0/1 → 1/16) ⇝ 3/16 | note:72.0468455057745 decay:0.1 sustain:0 s:triangle gain:0.0375 ]", - "[ (0/1 → 1/16) ⇝ 3/16 | note:72.0868455057745 decay:0.1 sustain:0 s:triangle gain:0.0375 ]", - "[ 0/1 → 3/16 | note:93.00057728554401 decay:0.1 sustain:0 s:triangle gain:0.075 ]", - "[ 0/1 → 3/16 | note:93.04057728554402 decay:0.1 sustain:0 s:triangle gain:0.075 ]", - "[ (0/1 → 1/1) ⇝ 3/2 | s:bd n:5 speed:0.7519542165100574 ]", - "[ (0/1 → 1/1) ⇝ 3/2 | note:33.129885541275144 decay:0.15 sustain:0 s:sawtooth gain:0.4 cutoff:3669.6267869262615 lpattack:0.1 lpenv:-2 ]", - "[ (0/1 → 1/1) ⇝ 3/2 | note:33.17988554127514 decay:0.15 sustain:0 s:sawtooth gain:0.4 cutoff:3669.6267869262615 lpattack:0.1 lpenv:-2 ]", - "[ (0/1 → 1/1) ⇝ 3/2 | note:60.129885541275144 s:sawtooth gain:0.16 cutoff:500 attack:1 ]", - "[ (0/1 → 1/1) ⇝ 3/2 | note:60.16988554127514 s:sawtooth gain:0.16 cutoff:500 attack:1 ]", - "[ (0/1 → 1/1) ⇝ 3/2 | note:64.12988554127514 s:sawtooth gain:0.16 cutoff:500 attack:1 ]", - "[ (0/1 → 1/1) ⇝ 3/2 | note:64.16988554127515 s:sawtooth gain:0.16 cutoff:500 attack:1 ]", - "[ (0/1 → 1/1) ⇝ 3/2 | note:67.12988554127514 s:sawtooth gain:0.16 cutoff:500 attack:1 ]", - "[ (0/1 → 1/1) ⇝ 3/2 | note:67.16988554127515 s:sawtooth gain:0.16 cutoff:500 attack:1 ]", - "[ (0/1 → 1/1) ⇝ 3/2 | note:71.12988554127514 s:sawtooth gain:0.16 cutoff:500 attack:1 ]", - "[ (0/1 → 1/1) ⇝ 3/2 | note:71.16988554127515 s:sawtooth gain:0.16 cutoff:500 attack:1 ]", - "[ 0/1 ⇜ (1/16 → 3/16) | note:93.0468455057745 decay:0.1 sustain:0 s:triangle gain:0.0375 ]", - "[ 0/1 ⇜ (1/16 → 3/16) | note:93.0868455057745 decay:0.1 sustain:0 s:triangle gain:0.0375 ]", - "[ 3/16 → 3/8 | note:69.01266877519555 decay:0.1 sustain:0 s:triangle gain:0.15 ]", - "[ 3/16 → 3/8 | note:69.05266877519557 decay:0.1 sustain:0 s:triangle gain:0.15 ]", - "[ 3/16 → 3/8 | note:93.00057728554401 decay:0.1 sustain:0 s:triangle gain:0.049999999999999996 ]", - "[ 3/16 → 3/8 | note:93.04057728554402 decay:0.1 sustain:0 s:triangle gain:0.049999999999999996 ]", - "[ (3/8 → 1/2) ⇝ 9/16 | note:69.04676036055696 decay:0.1 sustain:0 s:triangle gain:0.15 ]", - "[ (3/8 → 1/2) ⇝ 9/16 | note:69.08676036055695 decay:0.1 sustain:0 s:triangle gain:0.15 ]", - "[ 3/8 → 9/16 | note:69.01266877519555 decay:0.1 sustain:0 s:triangle gain:0.075 ]", - "[ 3/8 → 9/16 | note:69.05266877519557 decay:0.1 sustain:0 s:triangle gain:0.075 ]", - "[ 3/8 → 9/16 | note:93.00057728554401 decay:0.1 sustain:0 s:triangle gain:0.0375 ]", - "[ 3/8 → 9/16 | note:93.04057728554402 decay:0.1 sustain:0 s:triangle gain:0.0375 ]", - "[ 3/8 → 3/4 | s:hh27 speed:0.7285963821098448 ]", - "[ 3/8 ⇜ (1/2 → 9/16) | note:72.04676036055696 decay:0.1 sustain:0 s:triangle gain:0.15 ]", - "[ 3/8 ⇜ (1/2 → 9/16) | note:72.08676036055695 decay:0.1 sustain:0 s:triangle gain:0.15 ]", - "[ (9/16 → 11/16) ⇝ 3/4 | note:69.04676036055696 decay:0.1 sustain:0 s:triangle gain:0.075 ]", - "[ (9/16 → 11/16) ⇝ 3/4 | note:69.08676036055695 decay:0.1 sustain:0 s:triangle gain:0.075 ]", - "[ 9/16 → 3/4 | note:69.01266877519555 decay:0.1 sustain:0 s:triangle gain:0.049999999999999996 ]", - "[ 9/16 → 3/4 | note:69.05266877519557 decay:0.1 sustain:0 s:triangle gain:0.049999999999999996 ]", - "[ 9/16 ⇜ (11/16 → 3/4) | note:72.04676036055696 decay:0.1 sustain:0 s:triangle gain:0.075 ]", - "[ 9/16 ⇜ (11/16 → 3/4) | note:72.08676036055695 decay:0.1 sustain:0 s:triangle gain:0.075 ]", - "[ (3/4 → 7/8) ⇝ 15/16 | note:69.04676036055696 decay:0.1 sustain:0 s:triangle gain:0.049999999999999996 ]", - "[ (3/4 → 7/8) ⇝ 15/16 | note:69.08676036055695 decay:0.1 sustain:0 s:triangle gain:0.049999999999999996 ]", - "[ 3/4 → 15/16 | note:72.16001184806132 decay:0.1 sustain:0 s:triangle gain:0.15 ]", - "[ 3/4 → 15/16 | note:72.20001184806131 decay:0.1 sustain:0 s:triangle gain:0.15 ]", - "[ 3/4 → 15/16 | note:69.01266877519555 decay:0.1 sustain:0 s:triangle gain:0.0375 ]", - "[ 3/4 → 15/16 | note:69.05266877519557 decay:0.1 sustain:0 s:triangle gain:0.0375 ]", - "[ (3/4 → 1/1) ⇝ 9/8 | s:hh27 speed:0.77531205091027 ]", - "[ (3/4 → 1/1) ⇝ 3/2 | s:sd n:1 speed:0.7931522866332671 ]", - "[ 3/4 ⇜ (7/8 → 15/16) | note:72.04676036055696 decay:0.1 sustain:0 s:triangle gain:0.049999999999999996 ]", - "[ 3/4 ⇜ (7/8 → 15/16) | note:72.08676036055695 decay:0.1 sustain:0 s:triangle gain:0.049999999999999996 ]", - "[ (15/16 → 1/1) ⇝ 9/8 | note:72.21301072199333 decay:0.1 sustain:0 s:triangle gain:0.15 ]", - "[ (15/16 → 1/1) ⇝ 9/8 | note:72.25301072199335 decay:0.1 sustain:0 s:triangle gain:0.15 ]", - "[ (15/16 → 1/1) ⇝ 9/8 | note:72.16001184806132 decay:0.1 sustain:0 s:triangle gain:0.075 ]", - "[ (15/16 → 1/1) ⇝ 9/8 | note:72.20001184806131 decay:0.1 sustain:0 s:triangle gain:0.075 ]", - "[ (15/16 → 1/1) ⇝ 9/8 | note:69.04676036055696 decay:0.1 sustain:0 s:triangle gain:0.0375 ]", - "[ (15/16 → 1/1) ⇝ 9/8 | note:69.08676036055695 decay:0.1 sustain:0 s:triangle gain:0.0375 ]", + "[ (0/1 → 1/16) ⇝ 3/16 | note:72.0716211320497 decay:0.1 sustain:0 s:triangle gain:0.0375 ]", + "[ (0/1 → 1/16) ⇝ 3/16 | note:72.1116211320497 decay:0.1 sustain:0 s:triangle gain:0.0375 ]", + "[ 0/1 → 3/16 | note:93.00417750226859 decay:0.1 sustain:0 s:triangle gain:0.075 ]", + "[ 0/1 → 3/16 | note:93.0441775022686 decay:0.1 sustain:0 s:triangle gain:0.075 ]", + "[ (0/1 → 1/1) ⇝ 3/2 | s:bd n:5 speed:0.7 ]", + "[ (0/1 → 1/1) ⇝ 3/2 | note:33 decay:0.15 sustain:0 s:sawtooth gain:0.4 cutoff:2650 lpattack:0.1 lpenv:-2 ]", + "[ (0/1 → 1/1) ⇝ 3/2 | note:33.05 decay:0.15 sustain:0 s:sawtooth gain:0.4 cutoff:2650 lpattack:0.1 lpenv:-2 ]", + "[ (0/1 → 1/1) ⇝ 3/2 | note:60 s:sawtooth gain:0.16 cutoff:500 attack:1 ]", + "[ (0/1 → 1/1) ⇝ 3/2 | note:60.04 s:sawtooth gain:0.16 cutoff:500 attack:1 ]", + "[ (0/1 → 1/1) ⇝ 3/2 | note:64 s:sawtooth gain:0.16 cutoff:500 attack:1 ]", + "[ (0/1 → 1/1) ⇝ 3/2 | note:64.04 s:sawtooth gain:0.16 cutoff:500 attack:1 ]", + "[ (0/1 → 1/1) ⇝ 3/2 | note:67 s:sawtooth gain:0.16 cutoff:500 attack:1 ]", + "[ (0/1 → 1/1) ⇝ 3/2 | note:67.04 s:sawtooth gain:0.16 cutoff:500 attack:1 ]", + "[ (0/1 → 1/1) ⇝ 3/2 | note:71 s:sawtooth gain:0.16 cutoff:500 attack:1 ]", + "[ (0/1 → 1/1) ⇝ 3/2 | note:71.04 s:sawtooth gain:0.16 cutoff:500 attack:1 ]", + "[ 0/1 ⇜ (1/16 → 3/16) | note:93.0716211320497 decay:0.1 sustain:0 s:triangle gain:0.0375 ]", + "[ 0/1 ⇜ (1/16 → 3/16) | note:93.1116211320497 decay:0.1 sustain:0 s:triangle gain:0.0375 ]", + "[ 3/16 → 3/8 | note:69.00416990934514 decay:0.1 sustain:0 s:triangle gain:0.15 ]", + "[ 3/16 → 3/8 | note:69.04416990934514 decay:0.1 sustain:0 s:triangle gain:0.15 ]", + "[ 3/16 → 3/8 | note:93.00417750226859 decay:0.1 sustain:0 s:triangle gain:0.049999999999999996 ]", + "[ 3/16 → 3/8 | note:93.0441775022686 decay:0.1 sustain:0 s:triangle gain:0.049999999999999996 ]", + "[ (3/16 → 1/1) ⇝ 27/16 | note:45.00416990934514 decay:0.15 sustain:0 s:sawtooth gain:0.4 cutoff:2913.1165188427735 lpattack:0.1 lpenv:-2 ]", + "[ (3/16 → 1/1) ⇝ 27/16 | note:45.054169909345134 decay:0.15 sustain:0 s:sawtooth gain:0.4 cutoff:2913.1165188427735 lpattack:0.1 lpenv:-2 ]", + "[ (3/8 → 1/2) ⇝ 9/16 | note:69.02689036596712 decay:0.1 sustain:0 s:triangle gain:0.15 ]", + "[ (3/8 → 1/2) ⇝ 9/16 | note:69.06689036596713 decay:0.1 sustain:0 s:triangle gain:0.15 ]", + "[ 3/8 → 9/16 | note:69.00416990934514 decay:0.1 sustain:0 s:triangle gain:0.075 ]", + "[ 3/8 → 9/16 | note:69.04416990934514 decay:0.1 sustain:0 s:triangle gain:0.075 ]", + "[ 3/8 → 9/16 | note:93.00417750226859 decay:0.1 sustain:0 s:triangle gain:0.0375 ]", + "[ 3/8 → 9/16 | note:93.0441775022686 decay:0.1 sustain:0 s:triangle gain:0.0375 ]", + "[ 3/8 → 3/4 | s:hh27 speed:0.7107561463868478 ]", + "[ 3/8 ⇜ (1/2 → 9/16) | note:72.02689036596712 decay:0.1 sustain:0 s:triangle gain:0.15 ]", + "[ 3/8 ⇜ (1/2 → 9/16) | note:72.06689036596713 decay:0.1 sustain:0 s:triangle gain:0.15 ]", + "[ (9/16 → 11/16) ⇝ 3/4 | note:69.02689036596712 decay:0.1 sustain:0 s:triangle gain:0.075 ]", + "[ (9/16 → 11/16) ⇝ 3/4 | note:69.06689036596713 decay:0.1 sustain:0 s:triangle gain:0.075 ]", + "[ 9/16 → 3/4 | note:69.00416990934514 decay:0.1 sustain:0 s:triangle gain:0.049999999999999996 ]", + "[ 9/16 → 3/4 | note:69.04416990934514 decay:0.1 sustain:0 s:triangle gain:0.049999999999999996 ]", + "[ 9/16 ⇜ (11/16 → 3/4) | note:72.02689036596712 decay:0.1 sustain:0 s:triangle gain:0.075 ]", + "[ 9/16 ⇜ (11/16 → 3/4) | note:72.06689036596713 decay:0.1 sustain:0 s:triangle gain:0.075 ]", + "[ (3/4 → 7/8) ⇝ 15/16 | note:69.02689036596712 decay:0.1 sustain:0 s:triangle gain:0.049999999999999996 ]", + "[ (3/4 → 7/8) ⇝ 15/16 | note:69.06689036596713 decay:0.1 sustain:0 s:triangle gain:0.049999999999999996 ]", + "[ 3/4 → 15/16 | note:72.12988554127514 decay:0.1 sustain:0 s:triangle gain:0.15 ]", + "[ 3/4 → 15/16 | note:72.16988554127515 decay:0.1 sustain:0 s:triangle gain:0.15 ]", + "[ 3/4 → 15/16 | note:69.00416990934514 decay:0.1 sustain:0 s:triangle gain:0.0375 ]", + "[ 3/4 → 15/16 | note:69.04416990934514 decay:0.1 sustain:0 s:triangle gain:0.0375 ]", + "[ (3/4 → 1/1) ⇝ 9/8 | s:hh27 speed:0.7519542165100574 ]", + "[ (3/4 → 1/1) ⇝ 3/2 | s:sd n:1 speed:0.7519542165100574 ]", + "[ 3/4 ⇜ (7/8 → 15/16) | note:72.02689036596712 decay:0.1 sustain:0 s:triangle gain:0.049999999999999996 ]", + "[ 3/4 ⇜ (7/8 → 15/16) | note:72.06689036596713 decay:0.1 sustain:0 s:triangle gain:0.049999999999999996 ]", + "[ (15/16 → 1/1) ⇝ 9/8 | note:72.18828012727568 decay:0.1 sustain:0 s:triangle gain:0.15 ]", + "[ (15/16 → 1/1) ⇝ 9/8 | note:72.22828012727568 decay:0.1 sustain:0 s:triangle gain:0.15 ]", + "[ (15/16 → 1/1) ⇝ 9/8 | note:72.12988554127514 decay:0.1 sustain:0 s:triangle gain:0.075 ]", + "[ (15/16 → 1/1) ⇝ 9/8 | note:72.16988554127515 decay:0.1 sustain:0 s:triangle gain:0.075 ]", + "[ (15/16 → 1/1) ⇝ 9/8 | note:69.02689036596712 decay:0.1 sustain:0 s:triangle gain:0.0375 ]", + "[ (15/16 → 1/1) ⇝ 9/8 | note:69.06689036596713 decay:0.1 sustain:0 s:triangle gain:0.0375 ]", ] `; @@ -7321,92 +7316,91 @@ exports[`renders tunes > tune: orbit 1`] = ` exports[`renders tunes > tune: randomBells 1`] = ` [ - "[ -9/8 ⇜ (0/1 → 3/8) | gain:0.6 note:F5 velocity:0.9184964690357447 s:bell delay:0.2 delaytime:0.3333333333333333 delayfeedback:0.8 ]", - "[ -3/4 ⇜ (0/1 → 3/4) | gain:0.6 note:D3 velocity:0.5 s:bell delay:0.2 delaytime:0.3333333333333333 delayfeedback:0.8 ]", - "[ 0/1 → 3/2 | note:D2 s:bass clip:1 gain:0.8 ]", - "[ 0/1 → 9/4 | gain:0.6 note:A3 velocity:0.6003328701481223 s:bell delay:0.2 delaytime:0.3333333333333333 delayfeedback:0.8 ]", - "[ 3/8 → 21/8 | gain:0.6 note:D4 velocity:0.6848798459395766 s:bell delay:0.2 delaytime:0.3333333333333333 delayfeedback:0.8 ]", - "[ 3/4 → 3/1 | gain:0.6 note:G4 velocity:0.7837830819189548 s:bell delay:0.2 delaytime:0.3333333333333333 delayfeedback:0.8 ]", - "[ 3/2 → 9/4 | note:D2 s:bass clip:1 gain:0.8 ]", - "[ 9/4 → 3/1 | note:D2 s:bass clip:1 gain:0.8 ]", - "[ 9/4 → 9/2 | gain:0.6 note:G3 velocity:0.5819958923384547 s:bell delay:0.2 delaytime:0.3333333333333333 delayfeedback:0.8 ]", - "[ 21/8 → 39/8 | gain:0.6 note:G3 velocity:0.567817933857441 s:bell delay:0.2 delaytime:0.3333333333333333 delayfeedback:0.8 ]", + "[ -9/8 ⇜ (0/1 → 3/8) | gain:0.6 note:A3 velocity:0.5989903202280402 s:bell delay:0.2 delaytime:0.3333333333333333 delayfeedback:0.8 ]", + "[ -3/4 ⇜ (0/1 → 3/4) | gain:0.6 note:C5 velocity:0.8369929669424891 s:bell delay:0.2 delaytime:0.3333333333333333 delayfeedback:0.8 ]", + "[ 0/1 → 3/2 | note:F2 s:bass clip:1 gain:0.8 ]", + "[ 0/1 → 9/4 | gain:0.6 note:D3 velocity:0.5 s:bell delay:0.2 delaytime:0.3333333333333333 delayfeedback:0.8 ]", + "[ 3/8 → 21/8 | gain:0.6 note:F5 velocity:0.9213038925081491 s:bell delay:0.2 delaytime:0.3333333333333333 delayfeedback:0.8 ]", + "[ 3/4 → 3/1 | gain:0.6 note:C5 velocity:0.8426077850162983 s:bell delay:0.2 delaytime:0.3333333333333333 delayfeedback:0.8 ]", + "[ 3/2 → 9/4 | note:F2 s:bass clip:1 gain:0.8 ]", + "[ 9/4 → 3/1 | note:F2 s:bass clip:1 gain:0.8 ]", + "[ 9/4 → 9/2 | gain:0.6 note:D4 velocity:0.7006962578743696 s:bell delay:0.2 delaytime:0.3333333333333333 delayfeedback:0.8 ]", + "[ 21/8 → 39/8 | gain:0.6 note:C4 velocity:0.6507943943142891 s:bell delay:0.2 delaytime:0.3333333333333333 delayfeedback:0.8 ]", "[ 3/1 → 9/2 | note:D2 s:bass clip:1 gain:0.8 ]", - "[ 3/1 → 21/4 | gain:0.6 note:D4 velocity:0.704405858181417 s:bell delay:0.2 delaytime:0.3333333333333333 delayfeedback:0.8 ]", + "[ 3/1 → 21/4 | gain:0.6 note:C4 velocity:0.6302403081208467 s:bell delay:0.2 delaytime:0.3333333333333333 delayfeedback:0.8 ]", "[ 9/2 → 21/4 | note:D2 s:bass clip:1 gain:0.8 ]", - "[ 9/2 → 6/1 | gain:0.6 note:D4 velocity:0.6988155404105783 s:bell delay:0.2 delaytime:0.3333333333333333 delayfeedback:0.8 ]", - "[ (39/8 → 6/1) ⇝ 51/8 | gain:0.6 note:C5 velocity:0.8514789454638958 s:bell delay:0.2 delaytime:0.3333333333333333 delayfeedback:0.8 ]", + "[ 9/2 → 6/1 | gain:0.6 note:A3 velocity:0.597913240082562 s:bell delay:0.2 delaytime:0.3333333333333333 delayfeedback:0.8 ]", + "[ (39/8 → 6/1) ⇝ 51/8 | gain:0.6 note:D5 velocity:0.8758113365620375 s:bell delay:0.2 delaytime:0.3333333333333333 delayfeedback:0.8 ]", "[ 21/4 → 6/1 | note:D2 s:bass clip:1 gain:0.8 ]", - "[ (21/4 → 6/1) ⇝ 27/4 | gain:0.6 note:G4 velocity:0.7597710825502872 s:bell delay:0.2 delaytime:0.3333333333333333 delayfeedback:0.8 ]", - "[ 39/8 ⇜ (6/1 → 51/8) | gain:0.6 note:C5 velocity:0.8514789454638958 s:bell delay:0.2 delaytime:0.3333333333333333 delayfeedback:0.8 ]", - "[ 21/4 ⇜ (6/1 → 27/4) | gain:0.6 note:G4 velocity:0.7597710825502872 s:bell delay:0.2 delaytime:0.3333333333333333 delayfeedback:0.8 ]", - "[ 6/1 → 15/2 | note:A2 s:bass clip:1 gain:0.8 ]", - "[ 6/1 → 33/4 | gain:0.6 note:F3 velocity:0.5408733254298568 s:bell delay:0.2 delaytime:0.3333333333333333 delayfeedback:0.8 ]", - "[ 51/8 → 69/8 | gain:0.6 note:C5 velocity:0.8643641015514731 s:bell delay:0.2 delaytime:0.3333333333333333 delayfeedback:0.8 ]", - "[ 27/4 → 9/1 | gain:0.6 note:F3 velocity:0.5405213935300708 s:bell delay:0.2 delaytime:0.3333333333333333 delayfeedback:0.8 ]", - "[ 15/2 → 33/4 | note:A2 s:bass clip:1 gain:0.8 ]", - "[ 33/4 → 9/1 | note:A2 s:bass clip:1 gain:0.8 ]", - "[ 33/4 → 21/2 | gain:0.6 note:A3 velocity:0.5854638321325183 s:bell delay:0.2 delaytime:0.3333333333333333 delayfeedback:0.8 ]", - "[ 69/8 → 87/8 | gain:0.6 note:F4 velocity:0.7483773557469249 s:bell delay:0.2 delaytime:0.3333333333333333 delayfeedback:0.8 ]", + "[ (21/4 → 6/1) ⇝ 27/4 | gain:0.6 note:D4 velocity:0.6988155404105783 s:bell delay:0.2 delaytime:0.3333333333333333 delayfeedback:0.8 ]", + "[ 39/8 ⇜ (6/1 → 51/8) | gain:0.6 note:D5 velocity:0.8758113365620375 s:bell delay:0.2 delaytime:0.3333333333333333 delayfeedback:0.8 ]", + "[ 21/4 ⇜ (6/1 → 27/4) | gain:0.6 note:D4 velocity:0.6988155404105783 s:bell delay:0.2 delaytime:0.3333333333333333 delayfeedback:0.8 ]", + "[ 6/1 → 15/2 | note:D2 s:bass clip:1 gain:0.8 ]", + "[ 6/1 → 33/4 | gain:0.6 note:G4 velocity:0.7597710825502872 s:bell delay:0.2 delaytime:0.3333333333333333 delayfeedback:0.8 ]", + "[ 51/8 → 69/8 | gain:0.6 note:G4 velocity:0.7743164440616965 s:bell delay:0.2 delaytime:0.3333333333333333 delayfeedback:0.8 ]", + "[ 27/4 → 9/1 | gain:0.6 note:C5 velocity:0.8362447572872043 s:bell delay:0.2 delaytime:0.3333333333333333 delayfeedback:0.8 ]", + "[ 15/2 → 33/4 | note:D2 s:bass clip:1 gain:0.8 ]", + "[ 33/4 → 9/1 | note:D2 s:bass clip:1 gain:0.8 ]", + "[ 33/4 → 21/2 | gain:0.6 note:A3 velocity:0.5914018759503961 s:bell delay:0.2 delaytime:0.3333333333333333 delayfeedback:0.8 ]", + "[ 69/8 → 87/8 | gain:0.6 note:G4 velocity:0.754063542932272 s:bell delay:0.2 delaytime:0.3333333333333333 delayfeedback:0.8 ]", "[ 9/1 → 21/2 | note:A2 s:bass clip:1 gain:0.8 ]", - "[ 9/1 → 45/4 | gain:0.6 note:C4 velocity:0.6479453053325415 s:bell delay:0.2 delaytime:0.3333333333333333 delayfeedback:0.8 ]", + "[ 9/1 → 45/4 | gain:0.6 note:A4 velocity:0.8042040374130011 s:bell delay:0.2 delaytime:0.3333333333333333 delayfeedback:0.8 ]", "[ 21/2 → 45/4 | note:A2 s:bass clip:1 gain:0.8 ]", - "[ 21/2 → 12/1 | gain:0.6 note:A4 velocity:0.7972785895690322 s:bell delay:0.2 delaytime:0.3333333333333333 delayfeedback:0.8 ]", - "[ (87/8 → 12/1) ⇝ 99/8 | gain:0.6 note:F5 velocity:0.9336296319961548 s:bell delay:0.2 delaytime:0.3333333333333333 delayfeedback:0.8 ]", + "[ 21/2 → 12/1 | gain:0.6 note:A3 velocity:0.6023689480498433 s:bell delay:0.2 delaytime:0.3333333333333333 delayfeedback:0.8 ]", + "[ (87/8 → 12/1) ⇝ 99/8 | gain:0.6 note:F4 velocity:0.7347871446982026 s:bell delay:0.2 delaytime:0.3333333333333333 delayfeedback:0.8 ]", "[ 45/4 → 12/1 | note:A2 s:bass clip:1 gain:0.8 ]", - "[ (45/4 → 12/1) ⇝ 51/4 | gain:0.6 note:G5 velocity:0.9797635599970818 s:bell delay:0.2 delaytime:0.3333333333333333 delayfeedback:0.8 ]", - "[ 87/8 ⇜ (12/1 → 99/8) | gain:0.6 note:F5 velocity:0.9336296319961548 s:bell delay:0.2 delaytime:0.3333333333333333 delayfeedback:0.8 ]", - "[ 45/4 ⇜ (12/1 → 51/4) | gain:0.6 note:G5 velocity:0.9797635599970818 s:bell delay:0.2 delaytime:0.3333333333333333 delayfeedback:0.8 ]", - "[ 12/1 → 27/2 | note:G2 s:bass clip:1 gain:0.8 ]", - "[ 12/1 → 57/4 | gain:0.6 note:F3 velocity:0.5185003904625773 s:bell delay:0.2 delaytime:0.3333333333333333 delayfeedback:0.8 ]", - "[ 99/8 → 117/8 | gain:0.6 note:D4 velocity:0.67274125572294 s:bell delay:0.2 delaytime:0.3333333333333333 delayfeedback:0.8 ]", - "[ 51/4 → 15/1 | gain:0.6 note:A4 velocity:0.8324771635234356 s:bell delay:0.2 delaytime:0.3333333333333333 delayfeedback:0.8 ]", - "[ 27/2 → 57/4 | note:G2 s:bass clip:1 gain:0.8 ]", - "[ 57/4 → 15/1 | note:G2 s:bass clip:1 gain:0.8 ]", - "[ 57/4 → 33/2 | gain:0.6 note:A4 velocity:0.803433682769537 s:bell delay:0.2 delaytime:0.3333333333333333 delayfeedback:0.8 ]", - "[ 117/8 → 135/8 | gain:0.6 note:G3 velocity:0.5800967421382666 s:bell delay:0.2 delaytime:0.3333333333333333 delayfeedback:0.8 ]", + "[ (45/4 → 12/1) ⇝ 51/4 | gain:0.6 note:A4 velocity:0.7972785895690322 s:bell delay:0.2 delaytime:0.3333333333333333 delayfeedback:0.8 ]", + "[ 87/8 ⇜ (12/1 → 99/8) | gain:0.6 note:F4 velocity:0.7347871446982026 s:bell delay:0.2 delaytime:0.3333333333333333 delayfeedback:0.8 ]", + "[ 45/4 ⇜ (12/1 → 51/4) | gain:0.6 note:A4 velocity:0.7972785895690322 s:bell delay:0.2 delaytime:0.3333333333333333 delayfeedback:0.8 ]", + "[ 12/1 → 27/2 | note:A2 s:bass clip:1 gain:0.8 ]", + "[ 12/1 → 57/4 | gain:0.6 note:G5 velocity:0.9797635599970818 s:bell delay:0.2 delaytime:0.3333333333333333 delayfeedback:0.8 ]", + "[ 99/8 → 117/8 | gain:0.6 note:C4 velocity:0.6662392104044557 s:bell delay:0.2 delaytime:0.3333333333333333 delayfeedback:0.8 ]", + "[ 51/4 → 15/1 | gain:0.6 note:F5 velocity:0.9516951469704509 s:bell delay:0.2 delaytime:0.3333333333333333 delayfeedback:0.8 ]", + "[ 27/2 → 57/4 | note:A2 s:bass clip:1 gain:0.8 ]", + "[ 57/4 → 15/1 | note:A2 s:bass clip:1 gain:0.8 ]", + "[ 57/4 → 33/2 | gain:0.6 note:F5 velocity:0.9182533202692866 s:bell delay:0.2 delaytime:0.3333333333333333 delayfeedback:0.8 ]", + "[ 117/8 → 135/8 | gain:0.6 note:G3 velocity:0.5711571052670479 s:bell delay:0.2 delaytime:0.3333333333333333 delayfeedback:0.8 ]", "[ 15/1 → 33/2 | note:G2 s:bass clip:1 gain:0.8 ]", - "[ 15/1 → 69/4 | gain:0.6 note:G4 velocity:0.769017674960196 s:bell delay:0.2 delaytime:0.3333333333333333 delayfeedback:0.8 ]", + "[ 15/1 → 69/4 | gain:0.6 note:F4 velocity:0.7293080370873213 s:bell delay:0.2 delaytime:0.3333333333333333 delayfeedback:0.8 ]", "[ 33/2 → 69/4 | note:G2 s:bass clip:1 gain:0.8 ]", - "[ 33/2 → 18/1 | gain:0.6 note:F3 velocity:0.5081270858645439 s:bell delay:0.2 delaytime:0.3333333333333333 delayfeedback:0.8 ]", - "[ (135/8 → 18/1) ⇝ 147/8 | gain:0.6 note:C4 velocity:0.6415294744074345 s:bell delay:0.2 delaytime:0.3333333333333333 delayfeedback:0.8 ]", + "[ 33/2 → 18/1 | gain:0.6 note:A4 velocity:0.8166163852438331 s:bell delay:0.2 delaytime:0.3333333333333333 delayfeedback:0.8 ]", + "[ (135/8 → 18/1) ⇝ 147/8 | gain:0.6 note:F5 velocity:0.9456470254808664 s:bell delay:0.2 delaytime:0.3333333333333333 delayfeedback:0.8 ]", "[ 69/4 → 18/1 | note:G2 s:bass clip:1 gain:0.8 ]", - "[ (69/4 → 18/1) ⇝ 75/4 | gain:0.6 note:A3 velocity:0.6086445553228259 s:bell delay:0.2 delaytime:0.3333333333333333 delayfeedback:0.8 ]", - "[ 135/8 ⇜ (18/1 → 147/8) | gain:0.6 note:C4 velocity:0.6415294744074345 s:bell delay:0.2 delaytime:0.3333333333333333 delayfeedback:0.8 ]", - "[ 69/4 ⇜ (18/1 → 75/4) | gain:0.6 note:A3 velocity:0.6086445553228259 s:bell delay:0.2 delaytime:0.3333333333333333 delayfeedback:0.8 ]", - "[ 18/1 → 39/2 | note:F2 s:bass clip:1 gain:0.8 ]", - "[ 18/1 → 81/4 | gain:0.6 note:F5 velocity:0.9528779787942767 s:bell delay:0.2 delaytime:0.3333333333333333 delayfeedback:0.8 ]", - "[ 147/8 → 165/8 | gain:0.6 note:G5 velocity:0.9961825357750058 s:bell delay:0.2 delaytime:0.3333333333333333 delayfeedback:0.8 ]", - "[ 75/4 → 21/1 | gain:0.6 note:C4 velocity:0.6617662012577057 s:bell delay:0.2 delaytime:0.3333333333333333 delayfeedback:0.8 ]", - "[ 39/2 → 81/4 | note:F2 s:bass clip:1 gain:0.8 ]", - "[ 81/4 → 21/1 | note:F2 s:bass clip:1 gain:0.8 ]", - "[ 81/4 → 45/2 | gain:0.6 note:D5 velocity:0.9066732861101627 s:bell delay:0.2 delaytime:0.3333333333333333 delayfeedback:0.8 ]", - "[ 165/8 → 183/8 | gain:0.6 note:G5 velocity:0.9695742893964052 s:bell delay:0.2 delaytime:0.3333333333333333 delayfeedback:0.8 ]", + "[ (69/4 → 18/1) ⇝ 75/4 | gain:0.6 note:F3 velocity:0.5081270858645439 s:bell delay:0.2 delaytime:0.3333333333333333 delayfeedback:0.8 ]", + "[ 135/8 ⇜ (18/1 → 147/8) | gain:0.6 note:F5 velocity:0.9456470254808664 s:bell delay:0.2 delaytime:0.3333333333333333 delayfeedback:0.8 ]", + "[ 69/4 ⇜ (18/1 → 75/4) | gain:0.6 note:F3 velocity:0.5081270858645439 s:bell delay:0.2 delaytime:0.3333333333333333 delayfeedback:0.8 ]", + "[ 18/1 → 39/2 | note:G2 s:bass clip:1 gain:0.8 ]", + "[ 18/1 → 81/4 | gain:0.6 note:A3 velocity:0.6086445553228259 s:bell delay:0.2 delaytime:0.3333333333333333 delayfeedback:0.8 ]", + "[ 147/8 → 165/8 | gain:0.6 note:F3 velocity:0.5062594395130873 s:bell delay:0.2 delaytime:0.3333333333333333 delayfeedback:0.8 ]", + "[ 75/4 → 21/1 | gain:0.6 note:D4 velocity:0.6716219391673803 s:bell delay:0.2 delaytime:0.3333333333333333 delayfeedback:0.8 ]", + "[ 39/2 → 81/4 | note:G2 s:bass clip:1 gain:0.8 ]", + "[ 81/4 → 21/1 | note:G2 s:bass clip:1 gain:0.8 ]", + "[ 81/4 → 45/2 | gain:0.6 note:D4 velocity:0.7043459005653858 s:bell delay:0.2 delaytime:0.3333333333333333 delayfeedback:0.8 ]", + "[ 165/8 → 183/8 | gain:0.6 note:D5 velocity:0.8878388572484255 s:bell delay:0.2 delaytime:0.3333333333333333 delayfeedback:0.8 ]", "[ 21/1 → 45/2 | note:F2 s:bass clip:1 gain:0.8 ]", - "[ 21/1 → 93/4 | gain:0.6 note:G5 velocity:0.9865687442943454 s:bell delay:0.2 delaytime:0.3333333333333333 delayfeedback:0.8 ]", + "[ 21/1 → 93/4 | gain:0.6 note:D4 velocity:0.7049744073301554 s:bell delay:0.2 delaytime:0.3333333333333333 delayfeedback:0.8 ]", "[ 45/2 → 93/4 | note:F2 s:bass clip:1 gain:0.8 ]", - "[ 45/2 → 24/1 | gain:0.6 note:C5 velocity:0.8680832693353295 s:bell delay:0.2 delaytime:0.3333333333333333 delayfeedback:0.8 ]", - "[ (183/8 → 24/1) ⇝ 195/8 | gain:0.6 note:C4 velocity:0.6528211180120707 s:bell delay:0.2 delaytime:0.3333333333333333 delayfeedback:0.8 ]", + "[ 45/2 → 24/1 | gain:0.6 note:D5 velocity:0.9060836611315608 s:bell delay:0.2 delaytime:0.3333333333333333 delayfeedback:0.8 ]", + "[ (183/8 → 24/1) ⇝ 195/8 | gain:0.6 note:G3 velocity:0.5504462849348783 s:bell delay:0.2 delaytime:0.3333333333333333 delayfeedback:0.8 ]", "[ 93/4 → 24/1 | note:F2 s:bass clip:1 gain:0.8 ]", - "[ (93/4 → 24/1) ⇝ 99/4 | gain:0.6 note:F3 velocity:0.5404728800058365 s:bell delay:0.2 delaytime:0.3333333333333333 delayfeedback:0.8 ]", + "[ (93/4 → 24/1) ⇝ 99/4 | gain:0.6 note:C5 velocity:0.8680832693353295 s:bell delay:0.2 delaytime:0.3333333333333333 delayfeedback:0.8 ]", ] `; exports[`renders tunes > tune: sampleDemo 1`] = ` [ - "[ 0/1 → 1/8 | s:brakedrum n:1 ]", - "[ -3/4 ⇜ (0/1 → 1/4) | note:Bb3 s:clavisynth gain:0.2 delay:0.25 pan:0 ]", - "[ 0/1 → 1/4 | s:woodblock n:1 ]", + "[ 0/1 → 1/8 | s:brakedrum n:1 speed:2 ]", + "[ 0/1 → 1/4 | s:woodblock n:1 speed:2 ]", "[ -1/4 ⇜ (0/1 → 3/4) | note:F3 s:clavisynth gain:0.2 delay:0.25 pan:1 ]", "[ (0/1 → 1/1) ⇝ 3/1 | note:D1 s:psaltery_pluck gain:0.6 clip:1 release:0.1 room:0.5 ]", "[ (0/1 → 1/1) ⇝ 8/1 | s:gong speed:2 ]", - "[ 1/4 → 3/8 | s:woodblock n:2 ]", + "[ 1/4 → 3/8 | s:woodblock n:2 speed:2 ]", + "[ (1/4 → 1/1) ⇝ 5/4 | note:F3 s:clavisynth gain:0.2 delay:0.25 pan:0 ]", "[ 3/8 → 1/2 | s:woodblock n:2 speed:2 ]", "[ 3/8 → 1/2 | s:brakedrum n:1 speed:2 ]", "[ 1/2 → 1/1 | s:snare_rim n:0 speed:2 ]", - "[ 3/4 → 7/8 | s:brakedrum n:1 ]", + "[ 3/4 → 7/8 | s:brakedrum n:1 speed:2 ]", "[ 3/4 → 1/1 | s:cowbell n:3 speed:2 ]", - "[ (3/4 → 1/1) ⇝ 7/4 | note:Bb3 s:clavisynth gain:0.2 delay:0.25 pan:1 ]", ] `; @@ -8743,22 +8737,22 @@ exports[`renders tunes > tune: undergroundPlumber 1`] = ` exports[`renders tunes > tune: waa2 1`] = ` [ - "[ -1/4 ⇜ (0/1 → 1/4) | note:48 clip:1.15 s:sawtooth cutoff:4000 gain:0.5 room:0.5 lpattack:0.125 lpenv:-2 vib:8 vibmod:0.125 fanchor:0.25 ]", - "[ -1/4 ⇜ (0/1 → 1/4) | note:64 clip:1.15 s:sawtooth cutoff:4000 gain:0.5 room:0.5 lpattack:0.125 lpenv:-2 vib:8 vibmod:0.125 fanchor:0.25 ]", - "[ (0/1 → 1/4) ⇝ 1/2 | note:62 clip:1.197659880151613 s:sawtooth cutoff:3991.5732716763446 gain:0.5 room:0.5 lpattack:0.125 lpenv:-2 vib:8 vibmod:0.125 fanchor:0.25 ]", - "[ (0/1 → 1/4) ⇝ 1/2 | note:43 clip:1.197659880151613 s:sawtooth cutoff:3991.5732716763446 gain:0.5 room:0.5 lpattack:0.125 lpenv:-2 vib:8 vibmod:0.125 fanchor:0.25 ]", - "[ 0/1 ⇜ (1/4 → 1/2) | note:62 clip:1.197659880151613 s:square cutoff:3991.5732716763446 gain:0.5 room:0.5 lpattack:0.125 lpenv:-2 vib:8 vibmod:0.125 fanchor:0.25 ]", - "[ 0/1 ⇜ (1/4 → 1/2) | note:43 clip:1.197659880151613 s:square cutoff:3991.5732716763446 gain:0.5 room:0.5 lpattack:0.125 lpenv:-2 vib:8 vibmod:0.125 fanchor:0.25 ]", - "[ (1/4 → 1/2) ⇝ 3/4 | note:74 clip:1.2451698046878117 s:square cutoff:3966.3742407056534 gain:0.5 room:0.5 lpattack:0.125 lpenv:-2 vib:8 vibmod:0.125 fanchor:0.25 ]", - "[ (1/4 → 1/2) ⇝ 3/4 | note:55 clip:1.2451698046878117 s:square cutoff:3966.3742407056534 gain:0.5 room:0.5 lpattack:0.125 lpenv:-2 vib:8 vibmod:0.125 fanchor:0.25 ]", - "[ 1/4 ⇜ (1/2 → 3/4) | note:74 clip:1.2451698046878117 s:sawtooth cutoff:3966.3742407056534 gain:0.5 room:0.5 lpattack:0.125 lpenv:-2 vib:8 vibmod:0.125 fanchor:0.25 ]", - "[ 1/4 ⇜ (1/2 → 3/4) | note:55 clip:1.2451698046878117 s:sawtooth cutoff:3966.3742407056534 gain:0.5 room:0.5 lpattack:0.125 lpenv:-2 vib:8 vibmod:0.125 fanchor:0.25 ]", - "[ 1/2 → 3/4 | note:50 clip:1.2688217886051745 s:sawtooth cutoff:3947.554693090452 gain:0.5 room:0.5 lpattack:0.125 lpenv:-2 vib:8 vibmod:0.125 fanchor:0.25 ]", - "[ (1/2 → 3/4) ⇝ 1/1 | note:69 clip:1.292380289809026 s:sawtooth cutoff:3924.645587531366 gain:0.5 room:0.5 lpattack:0.125 lpenv:-2 vib:8 vibmod:0.125 fanchor:0.25 ]", - "[ 1/2 ⇜ (3/4 → 1/1) | note:69 clip:1.292380289809026 s:square cutoff:3924.645587531366 gain:0.5 room:0.5 lpattack:0.125 lpenv:-2 vib:8 vibmod:0.125 fanchor:0.25 ]", - "[ 3/4 → 1/1 | note:41 clip:1.315826773713709 s:square cutoff:3897.7021140702864 gain:0.5 room:0.5 lpattack:0.125 lpenv:-2 vib:8 vibmod:0.125 fanchor:0.25 ]", - "[ 3/4 → 1/1 | note:62 clip:1.315826773713709 s:square cutoff:3897.7021140702864 gain:0.5 room:0.5 lpattack:0.125 lpenv:-2 vib:8 vibmod:0.125 fanchor:0.25 ]", - "[ (3/4 → 1/1) ⇝ 5/4 | note:81 clip:1.3391427938628673 s:square cutoff:3866.789181894752 gain:0.5 room:0.5 lpattack:0.125 lpenv:-2 vib:8 vibmod:0.125 fanchor:0.25 ]", + "[ -1/4 ⇜ (0/1 → 1/4) | note:48 clip:1.1023401198483869 s:sawtooth cutoff:3991.573271676344 gain:0.5 room:0.5 lpattack:0.125 lpenv:-2 vib:8 vibmod:0.125 fanchor:0.25 ]", + "[ -1/4 ⇜ (0/1 → 1/4) | note:64 clip:1.1023401198483869 s:sawtooth cutoff:3991.573271676344 gain:0.5 room:0.5 lpattack:0.125 lpenv:-2 vib:8 vibmod:0.125 fanchor:0.25 ]", + "[ (0/1 → 1/4) ⇝ 1/2 | note:62 clip:1.15 s:sawtooth cutoff:4000 gain:0.5 room:0.5 lpattack:0.125 lpenv:-2 vib:8 vibmod:0.125 fanchor:0.25 ]", + "[ (0/1 → 1/4) ⇝ 1/2 | note:43 clip:1.15 s:sawtooth cutoff:4000 gain:0.5 room:0.5 lpattack:0.125 lpenv:-2 vib:8 vibmod:0.125 fanchor:0.25 ]", + "[ 0/1 ⇜ (1/4 → 1/2) | note:62 clip:1.15 s:square cutoff:4000 gain:0.5 room:0.5 lpattack:0.125 lpenv:-2 vib:8 vibmod:0.125 fanchor:0.25 ]", + "[ 0/1 ⇜ (1/4 → 1/2) | note:43 clip:1.15 s:square cutoff:4000 gain:0.5 room:0.5 lpattack:0.125 lpenv:-2 vib:8 vibmod:0.125 fanchor:0.25 ]", + "[ (1/4 → 1/2) ⇝ 3/4 | note:74 clip:1.197659880151613 s:square cutoff:3991.5732716763446 gain:0.5 room:0.5 lpattack:0.125 lpenv:-2 vib:8 vibmod:0.125 fanchor:0.25 ]", + "[ (1/4 → 1/2) ⇝ 3/4 | note:55 clip:1.197659880151613 s:square cutoff:3991.5732716763446 gain:0.5 room:0.5 lpattack:0.125 lpenv:-2 vib:8 vibmod:0.125 fanchor:0.25 ]", + "[ 1/4 ⇜ (1/2 → 3/4) | note:74 clip:1.197659880151613 s:sawtooth cutoff:3991.5732716763446 gain:0.5 room:0.5 lpattack:0.125 lpenv:-2 vib:8 vibmod:0.125 fanchor:0.25 ]", + "[ 1/4 ⇜ (1/2 → 3/4) | note:55 clip:1.197659880151613 s:sawtooth cutoff:3991.5732716763446 gain:0.5 room:0.5 lpattack:0.125 lpenv:-2 vib:8 vibmod:0.125 fanchor:0.25 ]", + "[ 1/2 → 3/4 | note:50 clip:1.2451698046878117 s:sawtooth cutoff:3966.3742407056534 gain:0.5 room:0.5 lpattack:0.125 lpenv:-2 vib:8 vibmod:0.125 fanchor:0.25 ]", + "[ (1/2 → 3/4) ⇝ 1/1 | note:69 clip:1.2451698046878117 s:sawtooth cutoff:3966.3742407056534 gain:0.5 room:0.5 lpattack:0.125 lpenv:-2 vib:8 vibmod:0.125 fanchor:0.25 ]", + "[ 1/2 ⇜ (3/4 → 1/1) | note:69 clip:1.2451698046878117 s:square cutoff:3966.3742407056534 gain:0.5 room:0.5 lpattack:0.125 lpenv:-2 vib:8 vibmod:0.125 fanchor:0.25 ]", + "[ 3/4 → 1/1 | note:41 clip:1.292380289809026 s:square cutoff:3924.645587531366 gain:0.5 room:0.5 lpattack:0.125 lpenv:-2 vib:8 vibmod:0.125 fanchor:0.25 ]", + "[ 3/4 → 1/1 | note:62 clip:1.292380289809026 s:square cutoff:3924.645587531366 gain:0.5 room:0.5 lpattack:0.125 lpenv:-2 vib:8 vibmod:0.125 fanchor:0.25 ]", + "[ (3/4 → 1/1) ⇝ 5/4 | note:81 clip:1.292380289809026 s:square cutoff:3924.645587531366 gain:0.5 room:0.5 lpattack:0.125 lpenv:-2 vib:8 vibmod:0.125 fanchor:0.25 ]", ] `; diff --git a/test/examples.test.mjs b/test/examples.test.mjs index 44ffdd5a..896a02f8 100644 --- a/test/examples.test.mjs +++ b/test/examples.test.mjs @@ -2,9 +2,32 @@ import { queryCode } from './runtime.mjs'; import { describe, it } from 'vitest'; import doc from '../doc.json'; +const skippedExamples = [ + 'absoluteOrientationGamma', + 'absoluteOrientationBeta', + 'absoluteOrientationAlpha', + 'orientationGamma', + 'orientationBeta', + 'orientationAlpha', + 'rotationGamma', + 'rotationBeta', + 'rotationAlpha', + 'gravityZ', + 'gravityY', + 'gravityX', + 'accelerationZ', + 'accelerationY', + 'accelerationX', + 'defaultmidimap', + 'midimaps', +]; + describe('runs examples', () => { const { docs } = doc; docs.forEach(async (doc) => { + if (skippedExamples.includes(doc.name)) { + return; + } doc.examples?.forEach((example, i) => { it(`example "${doc.name}" example index ${i}`, async ({ expect }) => { const haps = await queryCode(example, 4); diff --git a/test/runtime.mjs b/test/runtime.mjs index f14e18e2..2a29de3f 100644 --- a/test/runtime.mjs +++ b/test/runtime.mjs @@ -11,7 +11,7 @@ import * as webaudio from '@strudel/webaudio'; import { mini, m } from '@strudel/mini/mini.mjs'; // import * as voicingHelpers from '@strudel/tonal/voicings.mjs'; // import euclid from '@strudel/core/euclid.mjs'; -// import '@strudel/midi/midi.mjs'; +//import '@strudel/midi/midi.mjs'; import * as tonalHelpers from '@strudel/tonal'; import '@strudel/xen/xen.mjs'; // import '@strudel/xen/tune.mjs'; @@ -21,6 +21,9 @@ import '@strudel/xen/xen.mjs'; // import '@strudel/webaudio/webaudio.mjs'; // import '@strudel/serial/serial.mjs'; import '../website/src/repl/piano'; +//import * as motionHelpers from '../packages/motion/index.mjs'; +//import * as geolocationHelpers from '../packages/geolocation/index.mjs'; +import * as gamepadHelpers from '../packages/gamepad/index.mjs'; class MockedNode { chain() { @@ -74,53 +77,32 @@ const toneHelpersMocked = { highpass: mockNode, }; -strudel.Pattern.prototype.osc = function () { - return this; -}; -strudel.Pattern.prototype.csound = function () { - return this; -}; -strudel.Pattern.prototype.tone = function () { - return this; -}; -strudel.Pattern.prototype.webdirt = function () { - return this; -}; - -// draw mock -strudel.Pattern.prototype.pianoroll = function () { - return this; -}; - -// speak mock -strudel.Pattern.prototype.speak = function () { - return this; -}; - -// webaudio mock -strudel.Pattern.prototype.wave = function () { - return this; -}; -strudel.Pattern.prototype.filter = function () { - return this; -}; -strudel.Pattern.prototype.adsr = function () { - return this; -}; -strudel.Pattern.prototype.webaudio = function () { - return this; -}; -strudel.Pattern.prototype.soundfont = function () { - return this; -}; -// tune mock -strudel.Pattern.prototype.tune = function () { - return this; -}; - -strudel.Pattern.prototype.midi = function () { - return this; -}; +[ + 'osc', + 'csound', + 'tone', + 'webdirt', + 'pianoroll', + 'speak', + 'wave', + 'filter', + 'adsr', + 'webaudio', + 'soundfont', + 'tune', + 'midi', + '_scope', + '_spiral', + '_pitchwheel', + '_pianoroll', + '_spectrum', + 'markcss', + 'p', +].forEach((mock) => { + strudel.Pattern.prototype[mock] = function () { + return this; + }; +}); const uiHelpersMocked = { backgroundImage: id, @@ -145,6 +127,12 @@ const loadCsound = () => {}; const loadCSound = () => {}; const loadcsound = () => {}; +const midin = () => { + return (ccNum) => strudel.ref(() => 0); // returns ref with default value 0 +}; + +const sysex = ([id, data]) => {}; + // TODO: refactor to evalScope evalScope( // Tone, @@ -153,6 +141,7 @@ evalScope( uiHelpersMocked, webaudio, tonalHelpers, + gamepadHelpers, /* toneHelpers, voicingHelpers, @@ -160,6 +149,8 @@ evalScope( uiHelpers, */ { + midin, + sysex, // gist, // euclid, csound: id, @@ -173,11 +164,12 @@ evalScope( loadCsound, loadcsound, setcps: id, + setcpm: id, Clock: {}, // whatever - // Tone, }, ); +// TBD: use transpiler to support labeled statements export const queryCode = async (code, cycles = 1) => { const { pattern } = await evaluate(code); const haps = pattern.sortHapsByPart().queryArc(0, cycles); diff --git a/tools/dbpatch/package.json b/tools/dbpatch/package.json index 46dfc936..52f5520f 100644 --- a/tools/dbpatch/package.json +++ b/tools/dbpatch/package.json @@ -1,5 +1,5 @@ { "dependencies": { - "csv": "^6.3.6" + "csv": "^6.3.11" } } 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/vitest.config.ts b/vitest.config.mjs similarity index 71% rename from vitest.config.ts rename to vitest.config.mjs index b6d01f21..dcdde113 100644 --- a/vitest.config.ts +++ b/vitest.config.mjs @@ -1,13 +1,10 @@ -import { configDefaults, defineConfig } from 'vitest/config'; +import { defineConfig } from 'vitest/config'; +import bundleAudioWorkletPlugin from 'vite-plugin-bundle-audioworklet'; /// export default defineConfig({ + plugins: [bundleAudioWorkletPlugin()], test: { - // ... - deps: { - registerNodeLoader: true, - }, - threads: false, reporters: 'verbose', isolate: false, silent: true, diff --git a/website/.astro/settings.json b/website/.astro/settings.json deleted file mode 100644 index bf82959b..00000000 --- a/website/.astro/settings.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "devToolbar": { - "enabled": false - } -} \ No newline at end of file diff --git a/website/.astro/types.d.ts b/website/.astro/types.d.ts deleted file mode 100644 index f091daa1..00000000 --- a/website/.astro/types.d.ts +++ /dev/null @@ -1,290 +0,0 @@ -declare module 'astro:content' { - interface Render { - '.mdx': Promise<{ - Content: import('astro').MarkdownInstance<{}>['Content']; - headings: import('astro').MarkdownHeading[]; - remarkPluginFrontmatter: Record; - }>; - } -} - -declare module 'astro:content' { - interface Render { - '.md': Promise<{ - Content: import('astro').MarkdownInstance<{}>['Content']; - headings: import('astro').MarkdownHeading[]; - remarkPluginFrontmatter: Record; - }>; - } -} - -declare module 'astro:content' { - export { z } from 'astro/zod'; - - type Flatten = T extends { [K: string]: infer U } ? U : never; - - export type CollectionKey = keyof AnyEntryMap; - export type CollectionEntry = Flatten; - - export type ContentCollectionKey = keyof ContentEntryMap; - export type DataCollectionKey = keyof DataEntryMap; - - // This needs to be in sync with ImageMetadata - export type ImageFunction = () => import('astro/zod').ZodObject<{ - src: import('astro/zod').ZodString; - width: import('astro/zod').ZodNumber; - height: import('astro/zod').ZodNumber; - format: import('astro/zod').ZodUnion< - [ - import('astro/zod').ZodLiteral<'png'>, - import('astro/zod').ZodLiteral<'jpg'>, - import('astro/zod').ZodLiteral<'jpeg'>, - import('astro/zod').ZodLiteral<'tiff'>, - import('astro/zod').ZodLiteral<'webp'>, - import('astro/zod').ZodLiteral<'gif'>, - import('astro/zod').ZodLiteral<'svg'>, - import('astro/zod').ZodLiteral<'avif'>, - ] - >; - }>; - - type BaseSchemaWithoutEffects = - | import('astro/zod').AnyZodObject - | import('astro/zod').ZodUnion<[BaseSchemaWithoutEffects, ...BaseSchemaWithoutEffects[]]> - | import('astro/zod').ZodDiscriminatedUnion - | import('astro/zod').ZodIntersection; - - type BaseSchema = - | BaseSchemaWithoutEffects - | import('astro/zod').ZodEffects; - - export type SchemaContext = { image: ImageFunction }; - - type DataCollectionConfig = { - type: 'data'; - schema?: S | ((context: SchemaContext) => S); - }; - - type ContentCollectionConfig = { - type?: 'content'; - schema?: S | ((context: SchemaContext) => S); - }; - - type CollectionConfig = ContentCollectionConfig | DataCollectionConfig; - - export function defineCollection( - input: CollectionConfig - ): CollectionConfig; - - type AllValuesOf = T extends any ? T[keyof T] : never; - type ValidContentEntrySlug = AllValuesOf< - ContentEntryMap[C] - >['slug']; - - export function getEntryBySlug< - C extends keyof ContentEntryMap, - E extends ValidContentEntrySlug | (string & {}), - >( - collection: C, - // Note that this has to accept a regular string too, for SSR - entrySlug: E - ): E extends ValidContentEntrySlug - ? Promise> - : Promise | undefined>; - - export function getDataEntryById( - collection: C, - entryId: E - ): Promise>; - - export function getCollection>( - collection: C, - filter?: (entry: CollectionEntry) => entry is E - ): Promise; - export function getCollection( - collection: C, - filter?: (entry: CollectionEntry) => unknown - ): Promise[]>; - - export function getEntry< - C extends keyof ContentEntryMap, - E extends ValidContentEntrySlug | (string & {}), - >(entry: { - collection: C; - slug: E; - }): E extends ValidContentEntrySlug - ? Promise> - : Promise | undefined>; - export function getEntry< - C extends keyof DataEntryMap, - E extends keyof DataEntryMap[C] | (string & {}), - >(entry: { - collection: C; - id: E; - }): E extends keyof DataEntryMap[C] - ? Promise - : Promise | undefined>; - export function getEntry< - C extends keyof ContentEntryMap, - E extends ValidContentEntrySlug | (string & {}), - >( - collection: C, - slug: E - ): E extends ValidContentEntrySlug - ? Promise> - : Promise | undefined>; - export function getEntry< - C extends keyof DataEntryMap, - E extends keyof DataEntryMap[C] | (string & {}), - >( - collection: C, - id: E - ): E extends keyof DataEntryMap[C] - ? Promise - : Promise | undefined>; - - /** Resolve an array of entry references from the same collection */ - export function getEntries( - entries: { - collection: C; - slug: ValidContentEntrySlug; - }[] - ): Promise[]>; - export function getEntries( - entries: { - collection: C; - id: keyof DataEntryMap[C]; - }[] - ): Promise[]>; - - export function reference( - collection: C - ): import('astro/zod').ZodEffects< - import('astro/zod').ZodString, - C extends keyof ContentEntryMap - ? { - collection: C; - slug: ValidContentEntrySlug; - } - : { - collection: C; - id: keyof DataEntryMap[C]; - } - >; - // Allow generic `string` to avoid excessive type errors in the config - // if `dev` is not running to update as you edit. - // Invalid collection names will be caught at build time. - export function reference( - collection: C - ): import('astro/zod').ZodEffects; - - type ReturnTypeOrOriginal = T extends (...args: any[]) => infer R ? R : T; - type InferEntrySchema = import('astro/zod').infer< - ReturnTypeOrOriginal['schema']> - >; - - type ContentEntryMap = { - "blog": { -"release-0.0.2-schwindlig.mdx": { - id: "release-0.0.2-schwindlig.mdx"; - slug: "release-002-schwindlig"; - body: string; - collection: "blog"; - data: InferEntrySchema<"blog"> -} & { render(): Render[".mdx"] }; -"release-0.0.2.1-stuermisch.mdx": { - id: "release-0.0.2.1-stuermisch.mdx"; - slug: "release-0021-stuermisch"; - body: string; - collection: "blog"; - data: InferEntrySchema<"blog"> -} & { render(): Render[".mdx"] }; -"release-0.0.3-maelstrom.mdx": { - id: "release-0.0.3-maelstrom.mdx"; - slug: "release-003-maelstrom"; - body: string; - collection: "blog"; - data: InferEntrySchema<"blog"> -} & { render(): Render[".mdx"] }; -"release-0.0.4-gischt.mdx": { - id: "release-0.0.4-gischt.mdx"; - slug: "release-004-gischt"; - body: string; - collection: "blog"; - data: InferEntrySchema<"blog"> -} & { render(): Render[".mdx"] }; -"release-0.3.0-donauwelle.mdx": { - id: "release-0.3.0-donauwelle.mdx"; - slug: "release-030-donauwelle"; - body: string; - collection: "blog"; - data: InferEntrySchema<"blog"> -} & { render(): Render[".mdx"] }; -"release-0.4.0-brandung.mdx": { - id: "release-0.4.0-brandung.mdx"; - slug: "release-040-brandung"; - body: string; - collection: "blog"; - data: InferEntrySchema<"blog"> -} & { render(): Render[".mdx"] }; -"release-0.5.0-wirbel.mdx": { - id: "release-0.5.0-wirbel.mdx"; - slug: "release-050-wirbel"; - body: string; - collection: "blog"; - data: InferEntrySchema<"blog"> -} & { render(): Render[".mdx"] }; -"release-0.6.0-zimtschnecke.mdx": { - id: "release-0.6.0-zimtschnecke.mdx"; - slug: "release-060-zimtschnecke"; - body: string; - collection: "blog"; - data: InferEntrySchema<"blog"> -} & { render(): Render[".mdx"] }; -"release-0.7.0-zuckerguss.mdx": { - id: "release-0.7.0-zuckerguss.mdx"; - slug: "release-070-zuckerguss"; - body: string; - collection: "blog"; - data: InferEntrySchema<"blog"> -} & { render(): Render[".mdx"] }; -"release-0.8.0-himbeermuffin.mdx": { - id: "release-0.8.0-himbeermuffin.mdx"; - slug: "release-080-himbeermuffin"; - body: string; - collection: "blog"; - data: InferEntrySchema<"blog"> -} & { render(): Render[".mdx"] }; -"release-0.9.0-bananenbrot.mdx": { - id: "release-0.9.0-bananenbrot.mdx"; - slug: "release-090-bananenbrot"; - body: string; - collection: "blog"; - data: InferEntrySchema<"blog"> -} & { render(): Render[".mdx"] }; -"release-1.0.0-geburtstagskuchen.mdx": { - id: "release-1.0.0-geburtstagskuchen.mdx"; - slug: "release-100-geburtstagskuchen"; - body: string; - collection: "blog"; - data: InferEntrySchema<"blog"> -} & { render(): Render[".mdx"] }; -"year-2.mdx": { - id: "year-2.mdx"; - slug: "year-2"; - body: string; - collection: "blog"; - data: InferEntrySchema<"blog"> -} & { render(): Render[".mdx"] }; -}; - - }; - - type DataEntryMap = { - - }; - - type AnyEntryMap = ContentEntryMap & DataEntryMap; - - type ContentConfig = typeof import("../src/content/config"); -} diff --git a/website/.gitignore b/website/.gitignore index 02f6e50b..199afe53 100644 --- a/website/.gitignore +++ b/website/.gitignore @@ -1,3 +1,4 @@ +.astro # build output dist/ @@ -17,3 +18,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/agpl-header.txt b/website/agpl-header.txt index 6fd0c0fc..8b7b6d63 100644 --- a/website/agpl-header.txt +++ b/website/agpl-header.txt @@ -1,10 +1,10 @@ /* Strudel - javascript-based environment for live coding algorithmic (musical) patterns -https://strudel.cc / https://github.com/tidalcycles/strudel/ +https://strudel.cc / https://codeberg.org/uzu/strudel/ Copyright (C) Strudel contributors -https://github.com/tidalcycles/strudel/graphs/contributors +https://codeberg.org/uzu/strudel/activity/contributors 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 diff --git a/website/astro.config.mjs b/website/astro.config.mjs index 774e5234..151c48fc 100644 --- a/website/astro.config.mjs +++ b/website/astro.config.mjs @@ -1,15 +1,14 @@ import { defineConfig } from 'astro/config'; import react from '@astrojs/react'; import mdx from '@astrojs/mdx'; - import remarkToc from 'remark-toc'; import rehypeSlug from 'rehype-slug'; import rehypeAutolinkHeadings from 'rehype-autolink-headings'; import rehypeUrls from 'rehype-urls'; +import bundleAudioWorkletPlugin from 'vite-plugin-bundle-audioworklet'; import tailwind from '@astrojs/tailwind'; import AstroPWA from '@vite-pwa/astro'; -// import { visualizer } from 'rollup-plugin-visualizer'; const site = `https://strudel.cc/`; // root url without a path const base = '/'; // base path of the strudel site @@ -69,6 +68,7 @@ export default defineConfig({ registerType: 'autoUpdate', injectRegister: 'auto', workbox: { + maximumFileSizeToCacheInBytes: 4194304, // 4MB globPatterns: ['**/*.{js,css,html,ico,png,svg,json,wav,mp3,ogg,ttf,woff2,TTF,otf}'], runtimeCaching: [ { @@ -135,6 +135,7 @@ export default defineConfig({ site, base, vite: { + plugins: [bundleAudioWorkletPlugin()], ssr: { // Example: Force a broken package to skip SSR processing, if needed // external: ['fraction.js'], // https://github.com/infusion/Fraction.js/issues/51 diff --git a/website/package.json b/website/package.json index bf56d983..49975814 100644 --- a/website/package.json +++ b/website/package.json @@ -6,67 +6,75 @@ "scripts": { "dev": "astro dev --host 0.0.0.0", "start": "astro dev", - "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", - "@astro-community/astro-embed-youtube": "^0.4.4", - "@astrojs/mdx": "^2.0.3", - "@astrojs/react": "^3.0.9", - "@astrojs/rss": "^4.0.2", - "@astrojs/tailwind": "^5.1.0", - "@docsearch/css": "^3.5.2", - "@docsearch/react": "^3.5.2", - "@headlessui/react": "^1.7.17", - "@heroicons/react": "^2.1.1", - "@nanostores/persistent": "^0.9.1", - "@nanostores/react": "^0.7.1", + "@algolia/client-search": "^5.20.0", + "@astro-community/astro-embed-youtube": "^0.5.6", + "@astrojs/mdx": "^4.0.7", + "@astrojs/react": "^4.1.6", + "@astrojs/rss": "^4.0.11", + "@astrojs/tailwind": "^5.1.5", + "@docsearch/css": "^3.8.3", + "@docsearch/react": "^3.8.3", + "@headlessui/react": "^2.2.0", + "@heroicons/react": "^2.2.0", + "@nanostores/persistent": "^0.10.2", + "@nanostores/react": "^0.8.4", "@strudel/codemirror": "workspace:*", "@strudel/core": "workspace:*", "@strudel/csound": "workspace:*", "@strudel/desktopbridge": "workspace:*", "@strudel/draw": "workspace:*", + "@strudel/gamepad": "workspace:*", "@strudel/hydra": "workspace:*", "@strudel/midi": "workspace:*", "@strudel/mini": "workspace:*", + "@strudel/motion": "workspace:*", + "@strudel/mqtt": "workspace:*", "@strudel/osc": "workspace:*", "@strudel/serial": "workspace:*", "@strudel/soundfonts": "workspace:*", + "@strudel/tidal": "workspace:*", "@strudel/tonal": "workspace:*", "@strudel/transpiler": "workspace:*", "@strudel/webaudio": "workspace:*", + "@strudel/mondo": "workspace:*", "@strudel/xen": "workspace:*", - "@supabase/supabase-js": "^2.39.1", - "@tailwindcss/forms": "^0.5.7", - "@tailwindcss/typography": "^0.5.10", - "@tauri-apps/api": "^1.5.3", - "@types/node": "^20.10.6", - "@types/react": "^18.2.46", - "@types/react-dom": "^18.2.18", - "astro": "^4.0.8", + "@supabase/supabase-js": "^2.48.1", + "@tailwindcss/forms": "^0.5.10", + "@tailwindcss/postcss": "^4.0.0", + "@tailwindcss/typography": "^0.5.16", + "@tauri-apps/api": "^2.2.0", + "@tauri-apps/plugin-clipboard-manager": "^2.2.0", + "@types/node": "^22.10.10", + "@types/react": "^19.0.8", + "@types/react-dom": "^19.0.3", + "astro": "^5.1.9", "claviature": "^0.1.0", - "date-fns": "^3.2.0", - "nanoid": "^5.0.4", - "nanostores": "^0.9.5", - "react": "^18.2.0", - "react-dom": "^18.2.0", - "react-hook-inview": "^4.5.0", + "date-fns": "^4.1.0", + "hs2js": "0.1.0", + "nanoid": "^5.0.9", + "nanostores": "^0.11.3", + "react": "^19.0.0", + "react-dom": "^19.0.0", + "react-hook-inview": "^4.5.1", "react-lite-youtube-embed": "^2.4.0", "rehype-autolink-headings": "^7.1.0", "rehype-slug": "^6.0.0", "rehype-urls": "^1.2.0", "remark-toc": "^9.0.0", - "tailwindcss": "^3.4.0", - "worker-timers": "^7.1.4" + "tailwindcss": "^3.4.17", + "worker-timers": "^8.0.13" }, "devDependencies": { - "@vite-pwa/astro": "^0.2.0", + "@vite-pwa/astro": "^0.5.0", "html-escaper": "^3.0.3", - "sharp": "^0.33.1", - "vite-plugin-pwa": "^0.17.4", - "workbox-window": "^7.0.0" + "sharp": "^0.33.5", + "workbox-window": "^7.3.0", + "vite-plugin-bundle-audioworklet": "workspace:*" } } diff --git a/website/public/fonts/CutiePi/Cute_Aurora_demo.ttf b/website/public/fonts/CutiePi/Cute_Aurora_demo.ttf new file mode 100644 index 00000000..2ff9d6cf Binary files /dev/null and b/website/public/fonts/CutiePi/Cute_Aurora_demo.ttf differ diff --git a/website/public/fonts/CutiePi/LICENSE.txt b/website/public/fonts/CutiePi/LICENSE.txt new file mode 100644 index 00000000..dbc024ae --- /dev/null +++ b/website/public/fonts/CutiePi/LICENSE.txt @@ -0,0 +1,7 @@ + +100% free for personal and commercial use. +However it's limited on basic latin only, +contact riedjal@gmail.com for full glyph (based on ANSI encoding) +and OTF features (alternates). + +src: https://www.dafont.com/cute-aurora.font?text=%24%3A+s%28%22bd%285%2C8%29%22%29.superimpose%28x+%3D%3E+x.note%28%22c2%22%29.midi%28device%29%29 \ No newline at end of file diff --git a/website/public/mridangam.json b/website/public/mridangam.json new file mode 100644 index 00000000..63e095b9 --- /dev/null +++ b/website/public/mridangam.json @@ -0,0 +1,160 @@ +{ + "_base": "https://raw.githubusercontent.com/yaxu/mrid/main/", + "mridangam_gumki": [ + "norm_sounds/gumki/gumki2-3.wav", + "norm_sounds/gumki/gumki2-7.wav", + "norm_sounds/gumki/gumki2-6.wav", + "norm_sounds/gumki/gumki2-5.wav", + "norm_sounds/gumki/gumki-4.wav", + "norm_sounds/gumki/gumki-2.wav", + "norm_sounds/gumki/gumki2-4.wav", + "norm_sounds/gumki/gumki-5.wav", + "norm_sounds/gumki/gumki2-8.wav", + "norm_sounds/gumki/gumki-6.wav", + "norm_sounds/gumki/gumki-1.wav", + "norm_sounds/gumki/gumki2-2.wav", + "norm_sounds/gumki/gumki-3.wav", + "norm_sounds/gumki/gumki2-1.wav" + ], + "mridangam_ka": [ + "norm_sounds/ka/ka2-4.wav", + "norm_sounds/ka/ka2-2.wav", + "norm_sounds/ka/ka2-1.wav", + "norm_sounds/ka/ka-2.wav", + "norm_sounds/ka/ka-5.wav", + "norm_sounds/ka/ka-7.wav", + "norm_sounds/ka/ka-6.wav", + "norm_sounds/ka/ka2-5.wav", + "norm_sounds/ka/ka-1.wav", + "norm_sounds/ka/ka-4.wav", + "norm_sounds/ka/ka2-3.wav", + "norm_sounds/ka/ka-3.wav" + ], + "mridangam_nam": [ + "norm_sounds/nam/nam2-1.wav", + "norm_sounds/nam/nam2-3.wav", + "norm_sounds/nam/nam-3.wav", + "norm_sounds/nam/nam-2.wav", + "norm_sounds/nam/nam2-5.wav", + "norm_sounds/nam/nam2-2.wav", + "norm_sounds/nam/nam2-4.wav", + "norm_sounds/nam/nam-1.wav" + ], + "mridangam_ta": [ + "norm_sounds/ta/ta-3.wav", + "norm_sounds/ta/ta2-2.wav", + "norm_sounds/ta/ta-2.wav", + "norm_sounds/ta/ta2-3.wav", + "norm_sounds/ta/ta2-6.wav", + "norm_sounds/ta/ta2-4.wav", + "norm_sounds/ta/ta2-1.wav", + "norm_sounds/ta/ta2-5.wav", + "norm_sounds/ta/ta-1.wav" + ], + "mridangam_ki": [ + "norm_sounds/ki/ki2-3.wav", + "norm_sounds/ki/ki2-1.wav", + "norm_sounds/ki/ki-2.wav", + "norm_sounds/ki/ki-1.wav", + "norm_sounds/ki/ki2-4.wav", + "norm_sounds/ki/ki2-2.wav", + "norm_sounds/ki/ki-3.wav" + ], + "mridangam_dhin": [ + "norm_sounds/dhin/dhin2-3.wav", + "norm_sounds/dhin/dhin-2.wav", + "norm_sounds/dhin/dhin2-5.wav", + "norm_sounds/dhin/dhin-3.wav", + "norm_sounds/dhin/dhin2-4.wav", + "norm_sounds/dhin/dhin2-2.wav", + "norm_sounds/dhin/dhin-1.wav", + "norm_sounds/dhin/dhin2-1.wav" + ], + "mridangam_na": [ + "norm_sounds/na/na-6.wav", + "norm_sounds/na/na2-5.wav", + "norm_sounds/na/na-3.wav", + "norm_sounds/na/na2-2.wav", + "norm_sounds/na/na-7.wav", + "norm_sounds/na/na2-1.wav", + "norm_sounds/na/na2-3.wav", + "norm_sounds/na/na-2.wav", + "norm_sounds/na/na-4.wav", + "norm_sounds/na/na-5.wav", + "norm_sounds/na/na-1.wav", + "norm_sounds/na/na2-4.wav" + ], + "mridangam_chaapu": [ + "norm_sounds/c/chaapu-3.wav", + "norm_sounds/c/chaapu2-9.wav", + "norm_sounds/c/chaapu2-4.wav", + "norm_sounds/c/chaapu2-3.wav", + "norm_sounds/c/chaapu2-6.wav", + "norm_sounds/c/chaapu-1.wav", + "norm_sounds/c/chaapu2-8.wav", + "norm_sounds/c/chaapu2-1.wav", + "norm_sounds/c/chaapu2-2.wav", + "norm_sounds/c/chaapu2-5.wav", + "norm_sounds/c/chaapu-4.wav", + "norm_sounds/c/chaapu2-7.wav", + "norm_sounds/c/chaapu-2.wav" + ], + "mridangam_dhum": [ + "norm_sounds/dhum/dhum-1.wav", + "norm_sounds/dhum/dhum2-3.wav", + "norm_sounds/dhum/dhum2-1.wav", + "norm_sounds/dhum/dhum-2.wav", + "norm_sounds/dhum/dhum2-2.wav", + "norm_sounds/dhum/dhum-3.wav", + "norm_sounds/dhum/dhum2-4.wav" + ], + "mridangam_ardha": [ + "norm_sounds/ac/ardha-chaapu2-3.wav", + "norm_sounds/ac/ardha-chaapu2-14.wav", + "norm_sounds/ac/ardha-chaapu2-2.wav", + "norm_sounds/ac/ardha-chaapu2-10.wav", + "norm_sounds/ac/ardha-chaapu-5.wav", + "norm_sounds/ac/ardha-chaapu2-6.wav", + "norm_sounds/ac/ardha-chaapu-3.wav", + "norm_sounds/ac/ardha-chaapu2-4.wav", + "norm_sounds/ac/ardha-chaapu-2.wav", + "norm_sounds/ac/ardha-chaapu2-12.wav", + "norm_sounds/ac/ardha-chaapu2-5.wav", + "norm_sounds/ac/ardha-chaapu-6.wav", + "norm_sounds/ac/ardha-chaapu2-9.wav", + "norm_sounds/ac/ardha-chaapu2-13.wav", + "norm_sounds/ac/ardha-chaapu2-1.wav", + "norm_sounds/ac/ardha-chaapu-4.wav", + "norm_sounds/ac/ardha-chaapu2-11.wav", + "norm_sounds/ac/ardha-chaapu2-7.wav", + "norm_sounds/ac/ardha-chaapu2-8.wav", + "norm_sounds/ac/ardha-chaapu-1.wav" + ], + "mridangam_thom": [ + "norm_sounds/thom/thom2-3.wav", + "norm_sounds/thom/thom-2.wav", + "norm_sounds/thom/thom-3.wav", + "norm_sounds/thom/thom-1.wav", + "norm_sounds/thom/thom2-4.wav", + "norm_sounds/thom/thom2-2.wav", + "norm_sounds/thom/thom2-1.wav" + ], + "mridangam_dhi": [ + "norm_sounds/dhi/dhi-3.wav", + "norm_sounds/dhi/dhi2-4.wav", + "norm_sounds/dhi/dhi2-1.wav", + "norm_sounds/dhi/dhi2-3.wav", + "norm_sounds/dhi/dhi-1.wav", + "norm_sounds/dhi/dhi2-2.wav", + "norm_sounds/dhi/dhi-2.wav" + ], + "mridangam_tha": [ + "norm_sounds/tha/tha2-3.wav", + "norm_sounds/tha/tha2-2.wav", + "norm_sounds/tha/tha2-4.wav", + "norm_sounds/tha/tha-1.wav", + "norm_sounds/tha/tha-3.wav", + "norm_sounds/tha/tha2-1.wav", + "norm_sounds/tha/tha-2.wav" + ] +} diff --git a/website/public/tidal-drum-machines-alias.json b/website/public/tidal-drum-machines-alias.json new file mode 100644 index 00000000..460cc6ba --- /dev/null +++ b/website/public/tidal-drum-machines-alias.json @@ -0,0 +1,68 @@ +{ + "AJKPercusyn": "Percysyn", + "AkaiLinn": "Linn", + "AkaiMPC60": "MPC60", + "AkaiXR10": "XR10", + "AlesisHR16": "HR16", + "AlesisSR16": "SR16", + "BossDR110": "DR110", + "BossDR220": "DR220", + "BossDR55": "DR55", + "BossDR550": "DR550", + "CasioRZ1": "RZ1", + "CasioSK1": "SK1", + "CasioVL1": "VL1", + "DoepferMS404": "MS404", + "EmuDrumulator": "Drumulator", + "EmuSP12": "SP12", + "KorgDDM110": "DDM110", + "KorgKPR77": "KPR77", + "KorgKR55": "KR55", + "KorgKRZ": "KRZ", + "KorgM1": "M1", + "KorgMinipops": "Minipops", + "KorgPoly800": "Poly800", + "KorgT3": "T3", + "Linn9000": "9000", + "LinnLM1": "LM1", + "LinnLM2": "LM2", + "MoogConcertMateMG1": "ConcertMateMG1", + "OberheimDMX": "DMX", + "RhodesPolaris": "Polaris", + "RhythmAce": "Ace", + "RolandCompurhythm1000": "Compurhythm1000", + "RolandCompurhythm78": "Compurhythm78", + "RolandCompurhythm8000": "Compurhythm8000", + "RolandD110": "D110", + "RolandD70": "D70", + "RolandDDR30": "DDR30", + "RolandJD990": "JD990", + "RolandMC202": "MC202", + "RolandMC303": "MC303", + "RolandMT32": "MT32", + "RolandR8": "R8", + "RolandS50": "S50", + "RolandSH09": "SH09", + "RolandSystem100": "System100", + "RolandTR505": "TR505", + "RolandTR606": "TR606", + "RolandTR626": "TR626", + "RolandTR707": "TR707", + "RolandTR727": "TR727", + "RolandTR808": "TR808", + "RolandTR909": "TR909", + "SakataDPM48": "DPM48", + "SequentialCircuitsDrumtracks": "CircuitsDrumtracks", + "SequentialCircuitsTom": "CircuitsTom", + "SimmonsSDS400": "SDS400", + "SimmonsSDS5": "SDS5", + "SoundmastersR88": "R88", + "UnivoxMicroRhythmer12": "MicroRhythmer12", + "ViscoSpaceDrum": "SpaceDrum", + "XdrumLM8953": "LM8953", + "YamahaRM50": "RM50", + "YamahaRX21": "RX21", + "YamahaRX5": "RX5", + "YamahaRY30": "RY30", + "YamahaTG33": "TG33" +} diff --git a/website/src/components/Claviature.jsx b/website/src/components/Claviature.jsx index e97facbc..e2b4f7a0 100644 --- a/website/src/components/Claviature.jsx +++ b/website/src/components/Claviature.jsx @@ -13,8 +13,9 @@ export default function Claviature({ options, onClick, onMouseDown, onMouseUp, o {svg.children.map((el, i) => { const TagName = el.name; + const { key, ...attributes } = el.attributes; return ( - + {el.value} ); diff --git a/website/src/components/Footer/AvatarList.astro b/website/src/components/Footer/AvatarList.astro deleted file mode 100644 index 86bbcc87..00000000 --- a/website/src/components/Footer/AvatarList.astro +++ /dev/null @@ -1,169 +0,0 @@ ---- -// fetch all commits for just this page's path -type Props = { - path: string; -}; -const { path } = Astro.props as Props; -const resolvedPath = `website/src/pages${path}.mdx`; -const url = `https://api.github.com/repos/tidalcycles/strudel/commits?path=${resolvedPath}`; -const commitsURL = `https://github.com/tidalcycles/strudel/commits/main/${resolvedPath}`; - -type Commit = { - author: { - id: string; - login: string; - }; -}; - -async function getCommits(url: string) { - try { - const token = import.meta.env.SNOWPACK_PUBLIC_GITHUB_TOKEN ?? 'hello'; - if (!token) { - throw new Error('Cannot find "SNOWPACK_PUBLIC_GITHUB_TOKEN" used for escaping rate-limiting.'); - } - - const auth = `Basic ${Buffer.from(token, 'binary').toString('base64')}`; - - const res = await fetch(url, { - method: 'GET', - headers: { - Authorization: auth, - 'User-Agent': 'astro-docs/1.0', - }, - }); - - const data = await res.json(); - - if (!res.ok) { - throw new Error( - `Request to fetch commits failed. Reason: ${res.statusText} - Message: ${data.message}`, - ); - } - - return data as Commit[]; - } catch (e) { - console.warn(`[error] /src/components/AvatarList.astro - ${(e as any)?.message ?? e}`); - return [] as Commit[]; - } -} - -function removeDups(arr: Commit[]) { - const map = new Map(); - for (let item of arr) { - const author = item.author; - // Deduplicate based on author.id - //map.set(author.id, { login: author.login, id: author.id }); - author && map.set(author.id, { login: author.login, id: author.id }); - } - - return [...map.values()]; -} - -const data = await getCommits(url); -const unique = removeDups(data); -const recentContributors = unique.slice(0, 3); // only show avatars for the 3 most recent contributors -const additionalContributors = unique.length - recentContributors.length; // list the rest of them as # of extra contributors ---- - - -
-
    - { - recentContributors.map((item) => ( -
  • - - {`Contributor - -
  • - )) - } -
- { - additionalContributors > 0 && ( - - {`and ${additionalContributors} additional contributor${ - additionalContributors > 1 ? 's' : '' - }.`} - - ) - } - {unique.length === 0 && Contributors} -
- - diff --git a/website/src/components/HeadCommon.astro b/website/src/components/HeadCommon.astro index a352a2c7..0b03c29f 100644 --- a/website/src/components/HeadCommon.astro +++ b/website/src/components/HeadCommon.astro @@ -1,4 +1,5 @@ --- +// @ts-ignore import { pwaInfo } from 'virtual:pwa-info'; import '../styles/index.css'; diff --git a/website/src/components/Header/Header.astro b/website/src/components/Header/Header.astro index cbc91ca0..e9626677 100644 --- a/website/src/components/Header/Header.astro +++ b/website/src/components/Header/Header.astro @@ -26,15 +26,15 @@ const baseNoTrailing = BASE_URL.endsWith('/') ? BASE_URL.slice(0, -1) : BASE_URL title="Top Navigation" > {/* KNOWN_LANGUAGE_CODES.length > 1 && */}
diff --git a/website/src/components/Header/Search.tsx b/website/src/components/Header/Search.tsx index c982d80b..f200dc79 100644 --- a/website/src/components/Header/Search.tsx +++ b/website/src/components/Header/Search.tsx @@ -82,7 +82,7 @@ export default function Search() { appId={ALGOLIA.appId} apiKey={ALGOLIA.apiKey} getMissingResultsUrl={({ query }) => { - return `https://github.com/tidalcycles/strudel/issues/new?title=Missing doc for ${query}`; + return `https://codeberg.org/uzu/strudel/issues/new?title=Missing%20doc%20for${encodeURIComponent(query)}`; }} transformItems={(items) => { return items.map((item) => { diff --git a/website/src/components/Oven/Oven.jsx b/website/src/components/Oven/Oven.jsx index a4199b5e..eb3c8692 100644 --- a/website/src/components/Oven/Oven.jsx +++ b/website/src/components/Oven/Oven.jsx @@ -1,7 +1,7 @@ import { useState, useEffect } from 'react'; import { loadFeaturedPatterns, loadPublicPatterns } from '@src/user_pattern_utils.mjs'; import { MiniRepl } from '@src/docs/MiniRepl'; -import { PatternLabel } from '@src/repl/panel/PatternsTab'; +import { PatternLabel } from '@src/repl/components/panel/PatternsTab'; function PatternList({ patterns }) { return ( diff --git a/website/src/components/RightSidebar/RightSidebar.astro b/website/src/components/RightSidebar/RightSidebar.astro index cd501b1a..28c71302 100644 --- a/website/src/components/RightSidebar/RightSidebar.astro +++ b/website/src/components/RightSidebar/RightSidebar.astro @@ -18,5 +18,4 @@ currentPage = currentPage.endsWith('/') ? currentPage.slice(0, -1) : currentPage diff --git a/website/src/components/Showcase.jsx b/website/src/components/Showcase.jsx index e4e624a9..a32c944a 100644 --- a/website/src/components/Showcase.jsx +++ b/website/src/components/Showcase.jsx @@ -36,8 +36,6 @@ export function Showcase() { } let _videos = [ - { title: 'Coding Music With Strudel Workhop by Dan Gorelick and Viola He', id: 'oqyAJ4WeKoU' }, - { title: 'Hexe - playing w strudel live coding music', id: '03m3F5xVOMg' }, { title: 'DJ_Dave - Array [Lil Data Edit]', id: 'KUujFuTcuKc' }, { title: 'DJ_Dave - Bitrot [v10101a Edit]', id: 'z_cJMdBp67Q' }, { title: 'you will not steve reich your way out of it', id: 'xpILnXcWyuo' }, @@ -58,7 +56,6 @@ let _videos = [ }, { title: 'letSeaTstrudeL @ solstice stream 2023', id: 'fTiX6dVtdWQ' }, { title: 'totalgee (Glen F) @ solstice stream 2023', id: 'IvI6uaE3nLU' }, - { title: 'Dan Gorelick @ solstice stream 2023', id: 'qMJEljJyPi0' }, // /* { // not sure if this is copyrighted ... title: 'Creative Coding @ Chalmers University of Technology, video by svt.se', @@ -126,6 +123,11 @@ let _videos = [ 'A first foray into combining (an early version) strudel and hydra, using flok for collaborative coding.', }, { title: 'froos @ Algorave 10th Birthday stream', id: 'IcMSocdKwvw' }, + { title: 'todepasta 1.5', id: 'gCwaVu1Mijg' }, + { title: 'Djenerative Music by Bogdan Vera @ TOPLAP solstice Dec 2024', id: 'LtMX4Lr1nzY' }, + { title: 'La musique by BuboBubo @ TOPLAP solstice Dec 2024', id: 'Oz00Y_f80wU' }, + { title: 'Livecode and vocal breaks by Switch Angel @ TOPLAP solstice Dec 2024', id: '2kzjOIsL6CM' }, + { title: 'Eddyflux algorave set @ rudolf5', id: 'MXz8131Ut0A' }, ]; _shuffled = shuffleArray(_videos); diff --git a/website/src/components/Udels/UdelFrame.jsx b/website/src/components/Udels/UdelFrame.jsx new file mode 100644 index 00000000..8bbbe14e --- /dev/null +++ b/website/src/components/Udels/UdelFrame.jsx @@ -0,0 +1,32 @@ +import { useRef } from 'react'; + +export function UdelFrame({ onEvaluate, hash, instance }) { + const ref = useRef(); + window.addEventListener('message', (message) => { + const childWindow = ref?.current?.contentWindow; + if (message == null || message.source !== childWindow) { + return; // Skip message in this event listener + } + onEvaluate(message.data); + }); + + const url = new URL(window.location.origin); + url.hash = hash; + url.searchParams.append('instance', instance); + const source = url.toString(); + + return ( + + ); +} diff --git a/website/src/components/Udels/Udels.jsx b/website/src/components/Udels/Udels.jsx new file mode 100644 index 00000000..4a5f404f --- /dev/null +++ b/website/src/components/Udels/Udels.jsx @@ -0,0 +1,72 @@ +import { code2hash } from '@strudel/core'; + +import { UdelFrame } from './UdelFrame'; +import { useState } from 'react'; +import UdelsHeader from './UdelsHeader'; + +const defaultHash = 'c3RhY2soCiAgCik%3D'; + +const getHashesFromUrl = () => { + return window.location.hash?.slice(1).split(','); +}; +const updateURLHashes = (hashes) => { + const newHash = '#' + hashes.join(','); + window.location.hash = newHash; +}; +export function Udels() { + const hashes = getHashesFromUrl(); + + const [numWindows, setNumWindows] = useState(hashes?.length ?? 1); + const numWindowsOnChange = (num) => { + setNumWindows(num); + const hashes = getHashesFromUrl(); + const newHashes = []; + for (let i = 0; i < num; i++) { + newHashes[i] = hashes[i] ?? defaultHash; + } + updateURLHashes(newHashes); + }; + + const onEvaluate = (key, code) => { + const hashes = getHashesFromUrl(); + hashes[key] = code2hash(code); + + updateURLHashes(hashes); + }; + + return ( +
+ +
+ {hashes.map((hash, key) => { + return ( + { + onEvaluate(key, code); + }} + hash={hash} + key={key} + /> + ); + })} +
+
+ ); +} diff --git a/website/src/components/Udels/UdelsEditor.jsx b/website/src/components/Udels/UdelsEditor.jsx new file mode 100644 index 00000000..f58ac5fc --- /dev/null +++ b/website/src/components/Udels/UdelsEditor.jsx @@ -0,0 +1,26 @@ +import Loader from '@src/repl/components/Loader'; +import { HorizontalPanel } from '@src/repl/components/panel/Panel'; +import { Code } from '@src/repl/components/Code'; +import BigPlayButton from '@src/repl/components/BigPlayButton'; +import UserFacingErrorMessage from '@src/repl/components/UserFacingErrorMessage'; + +// type Props = { +// context: replcontext, +// } + +export default function UdelsEditor(Props) { + const { context, ...editorProps } = Props; + const { containerRef, editorRef, error, init, pending, started, handleTogglePlay } = context; + + return ( +
+ + +
+ +
+ + +
+ ); +} diff --git a/website/src/components/Udels/UdelsHeader.jsx b/website/src/components/Udels/UdelsHeader.jsx new file mode 100644 index 00000000..75471693 --- /dev/null +++ b/website/src/components/Udels/UdelsHeader.jsx @@ -0,0 +1,20 @@ +import NumberInput from '@src/repl/components/NumberInput'; + +export default function UdelsHeader(Props) { + const { numWindows, setNumWindows } = Props; + + return ( + + ); +} diff --git a/website/src/config.ts b/website/src/config.ts index 9dee2aac..2e2e264d 100644 --- a/website/src/config.ts +++ b/website/src/config.ts @@ -28,7 +28,7 @@ export const KNOWN_LANGUAGES = { } as const; export const KNOWN_LANGUAGE_CODES = Object.values(KNOWN_LANGUAGES); -export const GITHUB_EDIT_URL = `https://github.com/tidalcycles/strudel/tree/main/website`; +export const GITHUB_EDIT_URL = `https://codeberg.org/uzu/strudel/src/branch/main/website`; export const COMMUNITY_INVITE_URL = `https://discord.com/invite/HGEdXmRkzT`; @@ -58,7 +58,7 @@ export const SIDEBAR: Sidebar = { { text: 'What is Strudel?', link: 'workshop/getting-started' }, { text: 'Showcase', link: 'intro/showcase' }, { text: 'Blog', link: 'blog' }, - { text: 'Community Bakery', link: 'bakery' }, + /* { text: 'Community Bakery', link: 'bakery' }, */ ], Workshop: [ // { text: 'Getting Started', link: 'workshop/getting-started' }, @@ -78,11 +78,15 @@ export const SIDEBAR: Sidebar = { More: [ { text: 'Recipes', link: 'recipes/recipes' }, { text: 'Mini-Notation', link: 'learn/mini-notation' }, + { text: 'Visual Feedback', link: 'learn/visual-feedback' }, { text: 'Offline', link: 'learn/pwa' }, { text: 'Patterns', link: 'technical-manual/patterns' }, + { text: 'Mondo Notation', link: 'learn/mondo-notation' }, { text: 'Music metadata', link: 'learn/metadata' }, { text: 'CSound', link: 'learn/csound' }, { text: 'Hydra', link: 'learn/hydra' }, + { text: 'Input Devices', link: 'learn/input-devices' }, + { text: 'Device Motion', link: 'learn/devicemotion' }, ], 'Pattern Functions': [ { text: 'Introduction', link: 'functions/intro' }, @@ -94,11 +98,13 @@ export const SIDEBAR: Sidebar = { { text: 'Conditional Modifiers', link: 'learn/conditional-modifiers' }, { text: 'Accumulation', link: 'learn/accumulation' }, { text: 'Tonal Functions', link: 'learn/tonal' }, + { text: 'Stepwise Functions', link: 'learn/stepwise' }, ], Understand: [ { text: 'Coding syntax', link: 'learn/code' }, { text: 'Pitch', link: 'understand/pitch' }, { text: 'Cycles', link: 'understand/cycles' }, + { text: 'Voicings', link: 'understand/voicings' }, { text: 'Pattern Alignment', link: 'technical-manual/alignment' }, { text: 'Strudel vs Tidal', link: 'learn/strudel-vs-tidal' }, ], diff --git a/website/src/content/blog/release-0.0.2-schwindlig.mdx b/website/src/content/blog/release-0.0.2-schwindlig.mdx index 49e5319a..8dbff492 100644 --- a/website/src/content/blog/release-0.0.2-schwindlig.mdx +++ b/website/src/content/blog/release-0.0.2-schwindlig.mdx @@ -8,33 +8,33 @@ author: froos ## What's Changed -- Most work done as [commits to main](https://github.com/tidalcycles/strudel/commits/2a0d8c3f77ff7b34e82602e2d02400707f367316) -- repl + reify functions by @felixroos in https://github.com/tidalcycles/strudel/pull/2 -- Fix path by @yaxu in https://github.com/tidalcycles/strudel/pull/3 -- update readme for local dev by @kindohm in https://github.com/tidalcycles/strudel/pull/4 -- Patternify all the things by @yaxu in https://github.com/tidalcycles/strudel/pull/5 -- krill parser + improved repl by @felixroos in https://github.com/tidalcycles/strudel/pull/6 -- fixed editor crash by @felixroos in https://github.com/tidalcycles/strudel/pull/7 -- timeCat by @yaxu in https://github.com/tidalcycles/strudel/pull/8 -- Bugfix every, and create more top level functions by @yaxu in https://github.com/tidalcycles/strudel/pull/9 -- Failing test for `when` WIP by @yaxu in https://github.com/tidalcycles/strudel/pull/10 -- Added mask() and struct() by @yaxu in https://github.com/tidalcycles/strudel/pull/11 -- Add continuous signals (sine, cosine, saw, etc) by @yaxu in https://github.com/tidalcycles/strudel/pull/13 -- add apply and layer, and missing div/mul methods by @yaxu in https://github.com/tidalcycles/strudel/pull/15 -- higher latencyHint by @felixroos in https://github.com/tidalcycles/strudel/pull/16 -- test: 📦 Add missing dependency and a CI check, to prevent oversights ;p by @puria in https://github.com/tidalcycles/strudel/pull/17 -- fix: 💄 Enhance visualisation of the Tutorial on mobile by @puria in https://github.com/tidalcycles/strudel/pull/19 -- Stateful queries and events (WIP) by @yaxu in https://github.com/tidalcycles/strudel/pull/14 -- Fix resolveState by @yaxu in https://github.com/tidalcycles/strudel/pull/22 -- added \_asNumber + interprete numbers as midi by @felixroos in https://github.com/tidalcycles/strudel/pull/21 -- Update package.json by @ChiakiUehira in https://github.com/tidalcycles/strudel/pull/23 -- packaging by @felixroos in https://github.com/tidalcycles/strudel/pull/24 +- Most work done as [commits to main](https://codeberg.org/uzu/strudel/commit/2a0d8c3f77ff7b34e82602e2d02400707f367316) +- repl + reify functions by @felixroos in https://codeberg.org/uzu/strudel/pulls/2 +- Fix path by @yaxu in https://codeberg.org/uzu/strudel/pulls/3 +- update readme for local dev by @kindohm in https://codeberg.org/uzu/strudel/pulls/4 +- Patternify all the things by @yaxu in https://codeberg.org/uzu/strudel/pulls/5 +- krill parser + improved repl by @felixroos in https://codeberg.org/uzu/strudel/pulls/6 +- fixed editor crash by @felixroos in https://codeberg.org/uzu/strudel/pulls/7 +- timeCat by @yaxu in https://codeberg.org/uzu/strudel/pulls/8 +- Bugfix every, and create more top level functions by @yaxu in https://codeberg.org/uzu/strudel/pulls/9 +- Failing test for `when` WIP by @yaxu in https://codeberg.org/uzu/strudel/pulls/10 +- Added mask() and struct() by @yaxu in https://codeberg.org/uzu/strudel/pulls/11 +- Add continuous signals (sine, cosine, saw, etc) by @yaxu in https://codeberg.org/uzu/strudel/pulls/13 +- add apply and layer, and missing div/mul methods by @yaxu in https://codeberg.org/uzu/strudel/pulls/15 +- higher latencyHint by @felixroos in https://codeberg.org/uzu/strudel/pulls/16 +- test: 📦 Add missing dependency and a CI check, to prevent oversights ;p by @puria in https://codeberg.org/uzu/strudel/pulls/17 +- fix: 💄 Enhance visualisation of the Tutorial on mobile by @puria in https://codeberg.org/uzu/strudel/pulls/19 +- Stateful queries and events (WIP) by @yaxu in https://codeberg.org/uzu/strudel/pulls/14 +- Fix resolveState by @yaxu in https://codeberg.org/uzu/strudel/pulls/22 +- added \_asNumber + interpret numbers as midi by @felixroos in https://codeberg.org/uzu/strudel/pulls/21 +- Update package.json by @ChiakiUehira in https://codeberg.org/uzu/strudel/pulls/23 +- packaging by @felixroos in https://codeberg.org/uzu/strudel/pulls/24 ## New Contributors -- @felixroos made their first contribution in https://github.com/tidalcycles/strudel/pull/2 -- @kindohm made their first contribution in https://github.com/tidalcycles/strudel/pull/4 -- @puria made their first contribution in https://github.com/tidalcycles/strudel/pull/17 -- @ChiakiUehira made their first contribution in https://github.com/tidalcycles/strudel/pull/23 +- @felixroos made their first contribution in https://codeberg.org/uzu/strudel/pulls/2 +- @kindohm made their first contribution in https://codeberg.org/uzu/strudel/pulls/4 +- @puria made their first contribution in https://codeberg.org/uzu/strudel/pulls/17 +- @ChiakiUehira made their first contribution in https://codeberg.org/uzu/strudel/pulls/23 -**Full Changelog**: https://github.com/tidalcycles/strudel/commits/2a0d8c3f77ff7b34e82602e2d02400707f367316 +**Full Changelog**: https://codeberg.org/uzu/strudel/commit/2a0d8c3f77ff7b34e82602e2d02400707f367316 diff --git a/website/src/content/blog/release-0.0.2.1-stuermisch.mdx b/website/src/content/blog/release-0.0.2.1-stuermisch.mdx index edefd2b0..441d99f7 100644 --- a/website/src/content/blog/release-0.0.2.1-stuermisch.mdx +++ b/website/src/content/blog/release-0.0.2.1-stuermisch.mdx @@ -7,47 +7,47 @@ author: froos ## What's Changed -- Add chunk, chunkBack and iterBack by @yaxu in https://github.com/tidalcycles/strudel/pull/25 -- Update tutorial.mdx by @bwagner in https://github.com/tidalcycles/strudel/pull/37 -- Update tutorial.mdx by @bwagner in https://github.com/tidalcycles/strudel/pull/38 -- Compose by @felixroos in https://github.com/tidalcycles/strudel/pull/40 -- Fix polymeter by @yaxu in https://github.com/tidalcycles/strudel/pull/44 -- First run at squeezeBind, ref #32 by @yaxu in https://github.com/tidalcycles/strudel/pull/48 -- Implement `chop()` by @yaxu in https://github.com/tidalcycles/strudel/pull/50 -- OSC and SuperDirt support by @yaxu in https://github.com/tidalcycles/strudel/pull/27 -- More functions by @yaxu in https://github.com/tidalcycles/strudel/pull/56 -- More functions by @yaxu in https://github.com/tidalcycles/strudel/pull/61 -- Separate out strudel.mjs, make index.mjs aggregate module by @yaxu in https://github.com/tidalcycles/strudel/pull/62 -- Speech output by @felixroos in https://github.com/tidalcycles/strudel/pull/67 -- use new fixed version of osc-js package by @felixroos in https://github.com/tidalcycles/strudel/pull/68 -- First effort at rand() by @yaxu in https://github.com/tidalcycles/strudel/pull/69 -- More randomness, fix `rand`, and add `brand`, `irand` and `choose` by @yaxu in https://github.com/tidalcycles/strudel/pull/70 -- webaudio package by @felixroos in https://github.com/tidalcycles/strudel/pull/26 -- Port `perlin` noise, `rangex`, and `palindrome` by @yaxu in https://github.com/tidalcycles/strudel/pull/73 -- More random functions by @yaxu in https://github.com/tidalcycles/strudel/pull/74 -- Try to fix appLeft / appRight by @yaxu in https://github.com/tidalcycles/strudel/pull/75 -- Basic webserial support by @yaxu in https://github.com/tidalcycles/strudel/pull/80 -- Webaudio in REPL by @felixroos in https://github.com/tidalcycles/strudel/pull/77 -- add `striate()` by @yaxu in https://github.com/tidalcycles/strudel/pull/76 -- Tidy up a couple of old files by @mindofmatthew in https://github.com/tidalcycles/strudel/pull/84 -- Add pattern composers, implements #82 by @yaxu in https://github.com/tidalcycles/strudel/pull/83 -- Fiddles with cat/stack by @yaxu in https://github.com/tidalcycles/strudel/pull/90 -- Paper by @felixroos in https://github.com/tidalcycles/strudel/pull/98 -- Change to Affero GPL by @yaxu in https://github.com/tidalcycles/strudel/pull/101 -- Work on Codemirror 6 highlighting by @mindofmatthew in https://github.com/tidalcycles/strudel/pull/102 -- Codemirror 6 by @felixroos in https://github.com/tidalcycles/strudel/pull/97 -- Tune tests by @felixroos in https://github.com/tidalcycles/strudel/pull/104 -- /embed package: web component for repl by @felixroos in https://github.com/tidalcycles/strudel/pull/106 -- Reset, Restart and other composers by @felixroos in https://github.com/tidalcycles/strudel/pull/88 -- Embed style by @felixroos in https://github.com/tidalcycles/strudel/pull/109 -- In source doc by @yaxu in https://github.com/tidalcycles/strudel/pull/105 -- `.brak()`, `.inside()` and `.outside()` by @yaxu in https://github.com/tidalcycles/strudel/pull/112 -- loopAt by @yaxu in https://github.com/tidalcycles/strudel/pull/114 -- Osc timing improvements by @yaxu in https://github.com/tidalcycles/strudel/pull/113 +- Add chunk, chunkBack and iterBack by @yaxu in https://codeberg.org/uzu/strudel/pulls/25 +- Update tutorial.mdx by @bwagner in https://codeberg.org/uzu/strudel/pulls/37 +- Update tutorial.mdx by @bwagner in https://codeberg.org/uzu/strudel/pulls/38 +- Compose by @felixroos in https://codeberg.org/uzu/strudel/pulls/40 +- Fix polymeter by @yaxu in https://codeberg.org/uzu/strudel/pulls/44 +- First run at squeezeBind, ref #32 by @yaxu in https://codeberg.org/uzu/strudel/pulls/48 +- Implement `chop()` by @yaxu in https://codeberg.org/uzu/strudel/pulls/50 +- OSC and SuperDirt support by @yaxu in https://codeberg.org/uzu/strudel/pulls/27 +- More functions by @yaxu in https://codeberg.org/uzu/strudel/pulls/56 +- More functions by @yaxu in https://codeberg.org/uzu/strudel/pulls/61 +- Separate out strudel.mjs, make index.mjs aggregate module by @yaxu in https://codeberg.org/uzu/strudel/pulls/62 +- Speech output by @felixroos in https://codeberg.org/uzu/strudel/pulls/67 +- use new fixed version of osc-js package by @felixroos in https://codeberg.org/uzu/strudel/pulls/68 +- First effort at rand() by @yaxu in https://codeberg.org/uzu/strudel/pulls/69 +- More randomness, fix `rand`, and add `brand`, `irand` and `choose` by @yaxu in https://codeberg.org/uzu/strudel/pulls/70 +- webaudio package by @felixroos in https://codeberg.org/uzu/strudel/pulls/26 +- Port `perlin` noise, `rangex`, and `palindrome` by @yaxu in https://codeberg.org/uzu/strudel/pulls/73 +- More random functions by @yaxu in https://codeberg.org/uzu/strudel/pulls/74 +- Try to fix appLeft / appRight by @yaxu in https://codeberg.org/uzu/strudel/pulls/75 +- Basic webserial support by @yaxu in https://codeberg.org/uzu/strudel/pulls/80 +- Webaudio in REPL by @felixroos in https://codeberg.org/uzu/strudel/pulls/77 +- add `striate()` by @yaxu in https://codeberg.org/uzu/strudel/pulls/76 +- Tidy up a couple of old files by @mindofmatthew in https://codeberg.org/uzu/strudel/pulls/84 +- Add pattern composers, implements #82 by @yaxu in https://codeberg.org/uzu/strudel/pulls/83 +- Fiddles with cat/stack by @yaxu in https://codeberg.org/uzu/strudel/pulls/90 +- Paper by @felixroos in https://codeberg.org/uzu/strudel/pulls/98 +- Change to Affero GPL by @yaxu in https://codeberg.org/uzu/strudel/pulls/101 +- Work on Codemirror 6 highlighting by @mindofmatthew in https://codeberg.org/uzu/strudel/pulls/102 +- Codemirror 6 by @felixroos in https://codeberg.org/uzu/strudel/pulls/97 +- Tune tests by @felixroos in https://codeberg.org/uzu/strudel/pulls/104 +- /embed package: web component for repl by @felixroos in https://codeberg.org/uzu/strudel/pulls/106 +- Reset, Restart and other composers by @felixroos in https://codeberg.org/uzu/strudel/pulls/88 +- Embed style by @felixroos in https://codeberg.org/uzu/strudel/pulls/109 +- In source doc by @yaxu in https://codeberg.org/uzu/strudel/pulls/105 +- `.brak()`, `.inside()` and `.outside()` by @yaxu in https://codeberg.org/uzu/strudel/pulls/112 +- loopAt by @yaxu in https://codeberg.org/uzu/strudel/pulls/114 +- Osc timing improvements by @yaxu in https://codeberg.org/uzu/strudel/pulls/113 ## New Contributors -- @bwagner made their first contribution in https://github.com/tidalcycles/strudel/pull/37 -- @mindofmatthew made their first contribution in https://github.com/tidalcycles/strudel/pull/84 +- @bwagner made their first contribution in https://codeberg.org/uzu/strudel/pulls/37 +- @mindofmatthew made their first contribution in https://codeberg.org/uzu/strudel/pulls/84 -**Full Changelog**: https://github.com/tidalcycles/strudel/compare/v0.0.2...@strudel.cycles/core@0.1.0 +**Full Changelog**: https://codeberg.org/uzu/strudel/compare/v0.0.2...@strudel.cycles/core@0.1.0 diff --git a/website/src/content/blog/release-0.0.3-maelstrom.mdx b/website/src/content/blog/release-0.0.3-maelstrom.mdx index 3710a9ce..5141b34a 100644 --- a/website/src/content/blog/release-0.0.3-maelstrom.mdx +++ b/website/src/content/blog/release-0.0.3-maelstrom.mdx @@ -8,59 +8,59 @@ author: froos ## What's Changed -- Add chunk, chunkBack and iterBack by @yaxu in https://github.com/tidalcycles/strudel/pull/25 -- Update tutorial.mdx by @bwagner in https://github.com/tidalcycles/strudel/pull/37 -- Update tutorial.mdx by @bwagner in https://github.com/tidalcycles/strudel/pull/38 -- Compose by @felixroos in https://github.com/tidalcycles/strudel/pull/40 -- Fix polymeter by @yaxu in https://github.com/tidalcycles/strudel/pull/44 -- First run at squeezeBind, ref #32 by @yaxu in https://github.com/tidalcycles/strudel/pull/48 -- Implement `chop()` by @yaxu in https://github.com/tidalcycles/strudel/pull/50 -- OSC and SuperDirt support by @yaxu in https://github.com/tidalcycles/strudel/pull/27 -- More functions by @yaxu in https://github.com/tidalcycles/strudel/pull/56 -- More functions by @yaxu in https://github.com/tidalcycles/strudel/pull/61 -- Separate out strudel.mjs, make index.mjs aggregate module by @yaxu in https://github.com/tidalcycles/strudel/pull/62 -- Speech output by @felixroos in https://github.com/tidalcycles/strudel/pull/67 -- use new fixed version of osc-js package by @felixroos in https://github.com/tidalcycles/strudel/pull/68 -- First effort at rand() by @yaxu in https://github.com/tidalcycles/strudel/pull/69 -- More randomness, fix `rand`, and add `brand`, `irand` and `choose` by @yaxu in https://github.com/tidalcycles/strudel/pull/70 -- webaudio package by @felixroos in https://github.com/tidalcycles/strudel/pull/26 -- Port `perlin` noise, `rangex`, and `palindrome` by @yaxu in https://github.com/tidalcycles/strudel/pull/73 -- More random functions by @yaxu in https://github.com/tidalcycles/strudel/pull/74 -- Try to fix appLeft / appRight by @yaxu in https://github.com/tidalcycles/strudel/pull/75 -- Basic webserial support by @yaxu in https://github.com/tidalcycles/strudel/pull/80 -- Webaudio in REPL by @felixroos in https://github.com/tidalcycles/strudel/pull/77 -- add `striate()` by @yaxu in https://github.com/tidalcycles/strudel/pull/76 -- Tidy up a couple of old files by @mindofmatthew in https://github.com/tidalcycles/strudel/pull/84 -- Add pattern composers, implements #82 by @yaxu in https://github.com/tidalcycles/strudel/pull/83 -- Fiddles with cat/stack by @yaxu in https://github.com/tidalcycles/strudel/pull/90 -- Paper by @felixroos in https://github.com/tidalcycles/strudel/pull/98 -- Change to Affero GPL by @yaxu in https://github.com/tidalcycles/strudel/pull/101 -- Work on Codemirror 6 highlighting by @mindofmatthew in https://github.com/tidalcycles/strudel/pull/102 -- Codemirror 6 by @felixroos in https://github.com/tidalcycles/strudel/pull/97 -- Tune tests by @felixroos in https://github.com/tidalcycles/strudel/pull/104 -- /embed package: web component for repl by @felixroos in https://github.com/tidalcycles/strudel/pull/106 -- Reset, Restart and other composers by @felixroos in https://github.com/tidalcycles/strudel/pull/88 -- Embed style by @felixroos in https://github.com/tidalcycles/strudel/pull/109 -- In source doc by @yaxu in https://github.com/tidalcycles/strudel/pull/105 -- `.brak()`, `.inside()` and `.outside()` by @yaxu in https://github.com/tidalcycles/strudel/pull/112 -- loopAt by @yaxu in https://github.com/tidalcycles/strudel/pull/114 -- Osc timing improvements by @yaxu in https://github.com/tidalcycles/strudel/pull/113 -- react package + vite build by @felixroos in https://github.com/tidalcycles/strudel/pull/116 -- In source doc by @felixroos in https://github.com/tidalcycles/strudel/pull/117 -- fix: #108 by @felixroos in https://github.com/tidalcycles/strudel/pull/123 -- fix: #122 ctrl enter would add newline by @felixroos in https://github.com/tidalcycles/strudel/pull/124 -- Webdirt by @felixroos in https://github.com/tidalcycles/strudel/pull/121 -- Fix link to contributing to tutorial docs by @stephendwolff in https://github.com/tidalcycles/strudel/pull/129 -- Pianoroll enhancements by @felixroos in https://github.com/tidalcycles/strudel/pull/131 -- add createParam + createParams by @felixroos in https://github.com/tidalcycles/strudel/pull/110 -- remove cycle + delta from onTrigger by @felixroos in https://github.com/tidalcycles/strudel/pull/135 -- Scheduler improvements by @felixroos in https://github.com/tidalcycles/strudel/pull/134 -- add onTrigger helper by @felixroos in https://github.com/tidalcycles/strudel/pull/136 +- Add chunk, chunkBack and iterBack by @yaxu in https://codeberg.org/uzu/strudel/pulls/25 +- Update tutorial.mdx by @bwagner in https://codeberg.org/uzu/strudel/pulls/37 +- Update tutorial.mdx by @bwagner in https://codeberg.org/uzu/strudel/pulls/38 +- Compose by @felixroos in https://codeberg.org/uzu/strudel/pulls/40 +- Fix polymeter by @yaxu in https://codeberg.org/uzu/strudel/pulls/44 +- First run at squeezeBind, ref #32 by @yaxu in https://codeberg.org/uzu/strudel/pulls/48 +- Implement `chop()` by @yaxu in https://codeberg.org/uzu/strudel/pulls/50 +- OSC and SuperDirt support by @yaxu in https://codeberg.org/uzu/strudel/pulls/27 +- More functions by @yaxu in https://codeberg.org/uzu/strudel/pulls/56 +- More functions by @yaxu in https://codeberg.org/uzu/strudel/pulls/61 +- Separate out strudel.mjs, make index.mjs aggregate module by @yaxu in https://codeberg.org/uzu/strudel/pulls/62 +- Speech output by @felixroos in https://codeberg.org/uzu/strudel/pulls/67 +- use new fixed version of osc-js package by @felixroos in https://codeberg.org/uzu/strudel/pulls/68 +- First effort at rand() by @yaxu in https://codeberg.org/uzu/strudel/pulls/69 +- More randomness, fix `rand`, and add `brand`, `irand` and `choose` by @yaxu in https://codeberg.org/uzu/strudel/pulls/70 +- webaudio package by @felixroos in https://codeberg.org/uzu/strudel/pulls/26 +- Port `perlin` noise, `rangex`, and `palindrome` by @yaxu in https://codeberg.org/uzu/strudel/pulls/73 +- More random functions by @yaxu in https://codeberg.org/uzu/strudel/pulls/74 +- Try to fix appLeft / appRight by @yaxu in https://codeberg.org/uzu/strudel/pulls/75 +- Basic webserial support by @yaxu in https://codeberg.org/uzu/strudel/pulls/80 +- Webaudio in REPL by @felixroos in https://codeberg.org/uzu/strudel/pulls/77 +- add `striate()` by @yaxu in https://codeberg.org/uzu/strudel/pulls/76 +- Tidy up a couple of old files by @mindofmatthew in https://codeberg.org/uzu/strudel/pulls/84 +- Add pattern composers, implements #82 by @yaxu in https://codeberg.org/uzu/strudel/pulls/83 +- Fiddles with cat/stack by @yaxu in https://codeberg.org/uzu/strudel/pulls/90 +- Paper by @felixroos in https://codeberg.org/uzu/strudel/pulls/98 +- Change to Affero GPL by @yaxu in https://codeberg.org/uzu/strudel/pulls/101 +- Work on Codemirror 6 highlighting by @mindofmatthew in https://codeberg.org/uzu/strudel/pulls/102 +- Codemirror 6 by @felixroos in https://codeberg.org/uzu/strudel/pulls/97 +- Tune tests by @felixroos in https://codeberg.org/uzu/strudel/pulls/104 +- /embed package: web component for repl by @felixroos in https://codeberg.org/uzu/strudel/pulls/106 +- Reset, Restart and other composers by @felixroos in https://codeberg.org/uzu/strudel/pulls/88 +- Embed style by @felixroos in https://codeberg.org/uzu/strudel/pulls/109 +- In source doc by @yaxu in https://codeberg.org/uzu/strudel/pulls/105 +- `.brak()`, `.inside()` and `.outside()` by @yaxu in https://codeberg.org/uzu/strudel/pulls/112 +- loopAt by @yaxu in https://codeberg.org/uzu/strudel/pulls/114 +- Osc timing improvements by @yaxu in https://codeberg.org/uzu/strudel/pulls/113 +- react package + vite build by @felixroos in https://codeberg.org/uzu/strudel/pulls/116 +- In source doc by @felixroos in https://codeberg.org/uzu/strudel/pulls/117 +- fix: #108 by @felixroos in https://codeberg.org/uzu/strudel/pulls/123 +- fix: #122 ctrl enter would add newline by @felixroos in https://codeberg.org/uzu/strudel/pulls/124 +- Webdirt by @felixroos in https://codeberg.org/uzu/strudel/pulls/121 +- Fix link to contributing to tutorial docs by @stephendwolff in https://codeberg.org/uzu/strudel/pulls/129 +- Pianoroll enhancements by @felixroos in https://codeberg.org/uzu/strudel/pulls/131 +- add createParam + createParams by @felixroos in https://codeberg.org/uzu/strudel/pulls/110 +- remove cycle + delta from onTrigger by @felixroos in https://codeberg.org/uzu/strudel/pulls/135 +- Scheduler improvements by @felixroos in https://codeberg.org/uzu/strudel/pulls/134 +- add onTrigger helper by @felixroos in https://codeberg.org/uzu/strudel/pulls/136 ## New Contributors -- @bwagner made their first contribution in https://github.com/tidalcycles/strudel/pull/37 -- @mindofmatthew made their first contribution in https://github.com/tidalcycles/strudel/pull/84 -- @stephendwolff made their first contribution in https://github.com/tidalcycles/strudel/pull/129 +- @bwagner made their first contribution in https://codeberg.org/uzu/strudel/pulls/37 +- @mindofmatthew made their first contribution in https://codeberg.org/uzu/strudel/pulls/84 +- @stephendwolff made their first contribution in https://codeberg.org/uzu/strudel/pulls/129 -**Full Changelog**: https://github.com/tidalcycles/strudel/compare/v0.0.2...v0.0.3 +**Full Changelog**: https://codeberg.org/uzu/strudel/compare/v0.0.2...v0.0.3 diff --git a/website/src/content/blog/release-0.0.4-gischt.mdx b/website/src/content/blog/release-0.0.4-gischt.mdx index 9149137c..f06dd38e 100644 --- a/website/src/content/blog/release-0.0.4-gischt.mdx +++ b/website/src/content/blog/release-0.0.4-gischt.mdx @@ -8,38 +8,38 @@ author: froos ## What's Changed -- Webaudio rewrite by @felixroos in https://github.com/tidalcycles/strudel/pull/138 -- Fix createParam() by @yaxu in https://github.com/tidalcycles/strudel/pull/140 -- Soundfont Support by @felixroos in https://github.com/tidalcycles/strudel/pull/139 -- Serial twiddles by @yaxu in https://github.com/tidalcycles/strudel/pull/141 -- Pianoroll Object Support by @felixroos in https://github.com/tidalcycles/strudel/pull/142 -- flash effect on ctrl enter by @felixroos in https://github.com/tidalcycles/strudel/pull/144 -- can now generate short link for sharing by @felixroos in https://github.com/tidalcycles/strudel/pull/146 -- Sampler optimizations and more by @felixroos in https://github.com/tidalcycles/strudel/pull/148 -- Final update to demo.pdf by @yaxu in https://github.com/tidalcycles/strudel/pull/151 -- add webdirt drum samples to prebake for general availability by @larkob in https://github.com/tidalcycles/strudel/pull/150 -- update to tutorial documentation by @larkob in https://github.com/tidalcycles/strudel/pull/162 -- add chooseInWith/chooseCycles by @yaxu in https://github.com/tidalcycles/strudel/pull/166 -- fix: jsdoc comments by @felixroos in https://github.com/tidalcycles/strudel/pull/169 -- Pianoroll fixes by @felixroos in https://github.com/tidalcycles/strudel/pull/163 -- Talk fixes by @felixroos in https://github.com/tidalcycles/strudel/pull/164 -- Amend shapeshifter to allow use of dynamic import by @debrisapron in https://github.com/tidalcycles/strudel/pull/171 -- add more shapeshifter flags by @felixroos in https://github.com/tidalcycles/strudel/pull/99 -- Replace react-codemirror6 with @uiw/react-codemirror by @felixroos in https://github.com/tidalcycles/strudel/pull/173 -- fix some annoying bugs by @felixroos in https://github.com/tidalcycles/strudel/pull/177 -- incorporate elements of randomness to the mini notation by @bpow in https://github.com/tidalcycles/strudel/pull/165 -- replace mocha with vitest by @felixroos in https://github.com/tidalcycles/strudel/pull/175 -- scheduler improvements by @felixroos in https://github.com/tidalcycles/strudel/pull/181 -- Fix codemirror bug by @felixroos in https://github.com/tidalcycles/strudel/pull/186 -- wait for prebake to finish before evaluating by @felixroos in https://github.com/tidalcycles/strudel/pull/189 -- fix regression: old way of setting frequencies was broken by @felixroos in https://github.com/tidalcycles/strudel/pull/190 -- Soundfont file support by @felixroos in https://github.com/tidalcycles/strudel/pull/183 -- change "stride"/"offset" of successive degradeBy/chooseIn by @bpow in https://github.com/tidalcycles/strudel/pull/185 +- Webaudio rewrite by @felixroos in https://codeberg.org/uzu/strudel/pulls/138 +- Fix createParam() by @yaxu in https://codeberg.org/uzu/strudel/pulls/140 +- Soundfont Support by @felixroos in https://codeberg.org/uzu/strudel/pulls/139 +- Serial twiddles by @yaxu in https://codeberg.org/uzu/strudel/pulls/141 +- Pianoroll Object Support by @felixroos in https://codeberg.org/uzu/strudel/pulls/142 +- flash effect on ctrl enter by @felixroos in https://codeberg.org/uzu/strudel/pulls/144 +- can now generate short link for sharing by @felixroos in https://codeberg.org/uzu/strudel/pulls/146 +- Sampler optimizations and more by @felixroos in https://codeberg.org/uzu/strudel/pulls/148 +- Final update to demo.pdf by @yaxu in https://codeberg.org/uzu/strudel/pulls/151 +- add webdirt drum samples to prebake for general availability by @larkob in https://codeberg.org/uzu/strudel/pulls/150 +- update to tutorial documentation by @larkob in https://codeberg.org/uzu/strudel/pulls/162 +- add chooseInWith/chooseCycles by @yaxu in https://codeberg.org/uzu/strudel/pulls/166 +- fix: jsdoc comments by @felixroos in https://codeberg.org/uzu/strudel/pulls/169 +- Pianoroll fixes by @felixroos in https://codeberg.org/uzu/strudel/pulls/163 +- Talk fixes by @felixroos in https://codeberg.org/uzu/strudel/pulls/164 +- Amend shapeshifter to allow use of dynamic import by @debrisapron in https://codeberg.org/uzu/strudel/pulls/171 +- add more shapeshifter flags by @felixroos in https://codeberg.org/uzu/strudel/pulls/99 +- Replace react-codemirror6 with @uiw/react-codemirror by @felixroos in https://codeberg.org/uzu/strudel/pulls/173 +- fix some annoying bugs by @felixroos in https://codeberg.org/uzu/strudel/pulls/177 +- incorporate elements of randomness to the mini notation by @bpow in https://codeberg.org/uzu/strudel/pulls/165 +- replace mocha with vitest by @felixroos in https://codeberg.org/uzu/strudel/pulls/175 +- scheduler improvements by @felixroos in https://codeberg.org/uzu/strudel/pulls/181 +- Fix codemirror bug by @felixroos in https://codeberg.org/uzu/strudel/pulls/186 +- wait for prebake to finish before evaluating by @felixroos in https://codeberg.org/uzu/strudel/pulls/189 +- fix regression: old way of setting frequencies was broken by @felixroos in https://codeberg.org/uzu/strudel/pulls/190 +- Soundfont file support by @felixroos in https://codeberg.org/uzu/strudel/pulls/183 +- change "stride"/"offset" of successive degradeBy/chooseIn by @bpow in https://codeberg.org/uzu/strudel/pulls/185 ## New Contributors -- @larkob made their first contribution in https://github.com/tidalcycles/strudel/pull/150 -- @debrisapron made their first contribution in https://github.com/tidalcycles/strudel/pull/171 -- @bpow made their first contribution in https://github.com/tidalcycles/strudel/pull/165 +- @larkob made their first contribution in https://codeberg.org/uzu/strudel/pulls/150 +- @debrisapron made their first contribution in https://codeberg.org/uzu/strudel/pulls/171 +- @bpow made their first contribution in https://codeberg.org/uzu/strudel/pulls/165 -**Full Changelog**: https://github.com/tidalcycles/strudel/compare/v0.0.3...v0.0.4 +**Full Changelog**: https://codeberg.org/uzu/strudel/compare/v0.0.3...v0.0.4 diff --git a/website/src/content/blog/release-0.3.0-donauwelle.mdx b/website/src/content/blog/release-0.3.0-donauwelle.mdx index 054b36b3..a551dc53 100644 --- a/website/src/content/blog/release-0.3.0-donauwelle.mdx +++ b/website/src/content/blog/release-0.3.0-donauwelle.mdx @@ -22,44 +22,44 @@ author: froos ## What's Changed -- Fix numbers in sampler by @felixroos in https://github.com/tidalcycles/strudel/pull/196 -- document random functions by @felixroos in https://github.com/tidalcycles/strudel/pull/199 -- add rollup-plugin-visualizer to build by @felixroos in https://github.com/tidalcycles/strudel/pull/200 -- add vowel to .out by @felixroos in https://github.com/tidalcycles/strudel/pull/201 -- Coarse crush shape by @felixroos in https://github.com/tidalcycles/strudel/pull/205 -- Webaudio guide by @felixroos in https://github.com/tidalcycles/strudel/pull/207 -- Even more docs by @felixroos in https://github.com/tidalcycles/strudel/pull/212 -- Just another docs PR by @felixroos in https://github.com/tidalcycles/strudel/pull/215 -- sampler features + fixes by @felixroos in https://github.com/tidalcycles/strudel/pull/217 -- samples now have envelopes by @felixroos in https://github.com/tidalcycles/strudel/pull/218 -- encapsulate webaudio output by @felixroos in https://github.com/tidalcycles/strudel/pull/219 -- Fix squeeze join by @yaxu in https://github.com/tidalcycles/strudel/pull/220 -- Feedback Delay by @felixroos in https://github.com/tidalcycles/strudel/pull/213 -- support negative speeds by @felixroos in https://github.com/tidalcycles/strudel/pull/222 -- focus tweak for squeezeJoin - another go at fixing #216 by @yaxu in https://github.com/tidalcycles/strudel/pull/221 -- Reverb by @felixroos in https://github.com/tidalcycles/strudel/pull/224 -- fix fastgap for events that go across cycle boundaries by @yaxu in https://github.com/tidalcycles/strudel/pull/225 -- Core util tests by @mystery-house in https://github.com/tidalcycles/strudel/pull/226 -- Refactor tunes away from tone by @felixroos in https://github.com/tidalcycles/strudel/pull/230 -- Just another docs branch by @felixroos in https://github.com/tidalcycles/strudel/pull/228 -- Patternify range by @yaxu in https://github.com/tidalcycles/strudel/pull/231 -- Out by default by @felixroos in https://github.com/tidalcycles/strudel/pull/232 -- Fix zero length queries WIP by @yaxu in https://github.com/tidalcycles/strudel/pull/234 -- add vcsl sample library by @felixroos in https://github.com/tidalcycles/strudel/pull/235 -- fx on stereo speakers by @felixroos in https://github.com/tidalcycles/strudel/pull/236 -- Tidal drum machines by @felixroos in https://github.com/tidalcycles/strudel/pull/237 -- Object arithmetic by @felixroos in https://github.com/tidalcycles/strudel/pull/238 -- Load samples from url by @felixroos in https://github.com/tidalcycles/strudel/pull/239 -- feat: support github: links by @felixroos in https://github.com/tidalcycles/strudel/pull/240 -- in source example tests by @felixroos in https://github.com/tidalcycles/strudel/pull/242 -- Readme + TLC by @felixroos in https://github.com/tidalcycles/strudel/pull/244 -- patchday by @felixroos in https://github.com/tidalcycles/strudel/pull/246 -- Some tunes by @felixroos in https://github.com/tidalcycles/strudel/pull/247 -- snapshot tests on shared snippets by @felixroos in https://github.com/tidalcycles/strudel/pull/243 -- General purpose scheduler by @felixroos in https://github.com/tidalcycles/strudel/pull/248 +- Fix numbers in sampler by @felixroos in https://codeberg.org/uzu/strudel/pulls/196 +- document random functions by @felixroos in https://codeberg.org/uzu/strudel/pulls/199 +- add rollup-plugin-visualizer to build by @felixroos in https://codeberg.org/uzu/strudel/pulls/200 +- add vowel to .out by @felixroos in https://codeberg.org/uzu/strudel/pulls/201 +- Coarse crush shape by @felixroos in https://codeberg.org/uzu/strudel/pulls/205 +- Webaudio guide by @felixroos in https://codeberg.org/uzu/strudel/pulls/207 +- Even more docs by @felixroos in https://codeberg.org/uzu/strudel/pulls/212 +- Just another docs PR by @felixroos in https://codeberg.org/uzu/strudel/pulls/215 +- sampler features + fixes by @felixroos in https://codeberg.org/uzu/strudel/pulls/217 +- samples now have envelopes by @felixroos in https://codeberg.org/uzu/strudel/pulls/218 +- encapsulate webaudio output by @felixroos in https://codeberg.org/uzu/strudel/pulls/219 +- Fix squeeze join by @yaxu in https://codeberg.org/uzu/strudel/pulls/220 +- Feedback Delay by @felixroos in https://codeberg.org/uzu/strudel/pulls/213 +- support negative speeds by @felixroos in https://codeberg.org/uzu/strudel/pulls/222 +- focus tweak for squeezeJoin - another go at fixing #216 by @yaxu in https://codeberg.org/uzu/strudel/pulls/221 +- Reverb by @felixroos in https://codeberg.org/uzu/strudel/pulls/224 +- fix fastgap for events that go across cycle boundaries by @yaxu in https://codeberg.org/uzu/strudel/pulls/225 +- Core util tests by @mystery-house in https://codeberg.org/uzu/strudel/pulls/226 +- Refactor tunes away from tone by @felixroos in https://codeberg.org/uzu/strudel/pulls/230 +- Just another docs branch by @felixroos in https://codeberg.org/uzu/strudel/pulls/228 +- Patternify range by @yaxu in https://codeberg.org/uzu/strudel/pulls/231 +- Out by default by @felixroos in https://codeberg.org/uzu/strudel/pulls/232 +- Fix zero length queries WIP by @yaxu in https://codeberg.org/uzu/strudel/pulls/234 +- add vcsl sample library by @felixroos in https://codeberg.org/uzu/strudel/pulls/235 +- fx on stereo speakers by @felixroos in https://codeberg.org/uzu/strudel/pulls/236 +- Tidal drum machines by @felixroos in https://codeberg.org/uzu/strudel/pulls/237 +- Object arithmetic by @felixroos in https://codeberg.org/uzu/strudel/pulls/238 +- Load samples from url by @felixroos in https://codeberg.org/uzu/strudel/pulls/239 +- feat: support github: links by @felixroos in https://codeberg.org/uzu/strudel/pulls/240 +- in source example tests by @felixroos in https://codeberg.org/uzu/strudel/pulls/242 +- Readme + TLC by @felixroos in https://codeberg.org/uzu/strudel/pulls/244 +- patchday by @felixroos in https://codeberg.org/uzu/strudel/pulls/246 +- Some tunes by @felixroos in https://codeberg.org/uzu/strudel/pulls/247 +- snapshot tests on shared snippets by @felixroos in https://codeberg.org/uzu/strudel/pulls/243 +- General purpose scheduler by @felixroos in https://codeberg.org/uzu/strudel/pulls/248 ## New Contributors -- @mystery-house made their first contribution in https://github.com/tidalcycles/strudel/pull/226 +- @mystery-house made their first contribution in https://codeberg.org/uzu/strudel/pulls/226 -**Full Changelog**: https://github.com/tidalcycles/strudel/compare/v0.0.4...v0.3.0 +**Full Changelog**: https://codeberg.org/uzu/strudel/compare/v0.0.4...v0.3.0 diff --git a/website/src/content/blog/release-0.4.0-brandung.mdx b/website/src/content/blog/release-0.4.0-brandung.mdx index 06023662..01e2f9b8 100644 --- a/website/src/content/blog/release-0.4.0-brandung.mdx +++ b/website/src/content/blog/release-0.4.0-brandung.mdx @@ -8,8 +8,8 @@ author: froos ## What's Changed -- new transpiler based on acorn by @felixroos in https://github.com/tidalcycles/strudel/pull/249 -- Webaudio build by @felixroos in https://github.com/tidalcycles/strudel/pull/250 -- Repl refactoring by @felixroos in https://github.com/tidalcycles/strudel/pull/255 +- new transpiler based on acorn by @felixroos in https://codeberg.org/uzu/strudel/pulls/249 +- Webaudio build by @felixroos in https://codeberg.org/uzu/strudel/pulls/250 +- Repl refactoring by @felixroos in https://codeberg.org/uzu/strudel/pulls/255 -**Full Changelog**: https://github.com/tidalcycles/strudel/compare/v0.3.0...v0.4.0 +**Full Changelog**: https://codeberg.org/uzu/strudel/compare/v0.3.0...v0.4.0 diff --git a/website/src/content/blog/release-0.5.0-wirbel.mdx b/website/src/content/blog/release-0.5.0-wirbel.mdx index 032639fd..3c1e1bfe 100644 --- a/website/src/content/blog/release-0.5.0-wirbel.mdx +++ b/website/src/content/blog/release-0.5.0-wirbel.mdx @@ -26,34 +26,34 @@ author: froos ## What's Changed -- Binaries by @felixroos in https://github.com/tidalcycles/strudel/pull/254 -- fix tutorial bugs by @felixroos in https://github.com/tidalcycles/strudel/pull/263 -- fix performance bottleneck by @felixroos in https://github.com/tidalcycles/strudel/pull/266 -- Tidying up core by @yaxu in https://github.com/tidalcycles/strudel/pull/256 -- tonal update with fixed memory leak by @felixroos in https://github.com/tidalcycles/strudel/pull/272 -- add eslint by @felixroos in https://github.com/tidalcycles/strudel/pull/271 -- release version bumps by @felixroos in https://github.com/tidalcycles/strudel/pull/273 -- Support sending CRC16 bytes with serial messages by @yaxu in https://github.com/tidalcycles/strudel/pull/276 -- add licenses / credits to all tunes + remove some by @felixroos in https://github.com/tidalcycles/strudel/pull/277 -- add basic csound output by @felixroos in https://github.com/tidalcycles/strudel/pull/275 -- do not recompile orc by @felixroos in https://github.com/tidalcycles/strudel/pull/278 -- implement collect + arp function by @felixroos in https://github.com/tidalcycles/strudel/pull/281 -- Switch 'operators' from .whatHow to .what.how by @yaxu in https://github.com/tidalcycles/strudel/pull/285 -- Fancy hap show, include part in snapshots by @yaxu in https://github.com/tidalcycles/strudel/pull/291 -- Reorganise pattern.mjs with a 'toplevel first' regime by @yaxu in https://github.com/tidalcycles/strudel/pull/286 -- add prettier task by @felixroos in https://github.com/tidalcycles/strudel/pull/296 -- Move stuff to new register function by @felixroos in https://github.com/tidalcycles/strudel/pull/295 -- can now add bare numbers to numeral object props by @felixroos in https://github.com/tidalcycles/strudel/pull/287 -- update vitest by @felixroos in https://github.com/tidalcycles/strudel/pull/297 -- remove whitespace from highlighted region by @felixroos in https://github.com/tidalcycles/strudel/pull/298 -- .defragmentHaps() for merging touching haps that share a whole and value by @yaxu in https://github.com/tidalcycles/strudel/pull/299 -- fix whitespace trimming by @felixroos in https://github.com/tidalcycles/strudel/pull/300 -- add freq support to sampler by @felixroos in https://github.com/tidalcycles/strudel/pull/301 -- add lint + prettier check before test by @felixroos in https://github.com/tidalcycles/strudel/pull/305 -- Updated csoundm to use the register facility . by @gogins in https://github.com/tidalcycles/strudel/pull/303 +- Binaries by @felixroos in https://codeberg.org/uzu/strudel/pulls/254 +- fix tutorial bugs by @felixroos in https://codeberg.org/uzu/strudel/pulls/263 +- fix performance bottleneck by @felixroos in https://codeberg.org/uzu/strudel/pulls/266 +- Tidying up core by @yaxu in https://codeberg.org/uzu/strudel/pulls/256 +- tonal update with fixed memory leak by @felixroos in https://codeberg.org/uzu/strudel/pulls/272 +- add eslint by @felixroos in https://codeberg.org/uzu/strudel/pulls/271 +- release version bumps by @felixroos in https://codeberg.org/uzu/strudel/pulls/273 +- Support sending CRC16 bytes with serial messages by @yaxu in https://codeberg.org/uzu/strudel/pulls/276 +- add licenses / credits to all tunes + remove some by @felixroos in https://codeberg.org/uzu/strudel/pulls/277 +- add basic csound output by @felixroos in https://codeberg.org/uzu/strudel/pulls/275 +- do not recompile orc by @felixroos in https://codeberg.org/uzu/strudel/pulls/278 +- implement collect + arp function by @felixroos in https://codeberg.org/uzu/strudel/pulls/281 +- Switch 'operators' from .whatHow to .what.how by @yaxu in https://codeberg.org/uzu/strudel/pulls/285 +- Fancy hap show, include part in snapshots by @yaxu in https://codeberg.org/uzu/strudel/pulls/291 +- Reorganise pattern.mjs with a 'toplevel first' regime by @yaxu in https://codeberg.org/uzu/strudel/pulls/286 +- add prettier task by @felixroos in https://codeberg.org/uzu/strudel/pulls/296 +- Move stuff to new register function by @felixroos in https://codeberg.org/uzu/strudel/pulls/295 +- can now add bare numbers to numeral object props by @felixroos in https://codeberg.org/uzu/strudel/pulls/287 +- update vitest by @felixroos in https://codeberg.org/uzu/strudel/pulls/297 +- remove whitespace from highlighted region by @felixroos in https://codeberg.org/uzu/strudel/pulls/298 +- .defragmentHaps() for merging touching haps that share a whole and value by @yaxu in https://codeberg.org/uzu/strudel/pulls/299 +- fix whitespace trimming by @felixroos in https://codeberg.org/uzu/strudel/pulls/300 +- add freq support to sampler by @felixroos in https://codeberg.org/uzu/strudel/pulls/301 +- add lint + prettier check before test by @felixroos in https://codeberg.org/uzu/strudel/pulls/305 +- Updated csoundm to use the register facility . by @gogins in https://codeberg.org/uzu/strudel/pulls/303 ## New Contributors -- @gogins made their first contribution in https://github.com/tidalcycles/strudel/pull/303 +- @gogins made their first contribution in https://codeberg.org/uzu/strudel/pulls/303 -**Full Changelog**: https://github.com/tidalcycles/strudel/compare/v0.4.0...v0.5.0 +**Full Changelog**: https://codeberg.org/uzu/strudel/compare/v0.4.0...v0.5.0 diff --git a/website/src/content/blog/release-0.6.0-zimtschnecke.mdx b/website/src/content/blog/release-0.6.0-zimtschnecke.mdx index 80dbc145..19536581 100644 --- a/website/src/content/blog/release-0.6.0-zimtschnecke.mdx +++ b/website/src/content/blog/release-0.6.0-zimtschnecke.mdx @@ -26,59 +26,59 @@ author: froos ## What's Changed -- support freq in pianoroll by @felixroos in https://github.com/tidalcycles/strudel/pull/308 -- ICLC2023 paper WIP by @yaxu in https://github.com/tidalcycles/strudel/pull/306 -- fix: copy share link to clipboard was broken for some browers by @felixroos in https://github.com/tidalcycles/strudel/pull/311 -- Jsdoc component by @felixroos in https://github.com/tidalcycles/strudel/pull/312 -- object support for .scale by @felixroos in https://github.com/tidalcycles/strudel/pull/307 -- Astro build by @felixroos in https://github.com/tidalcycles/strudel/pull/315 -- Reference tab sort by @felixroos in https://github.com/tidalcycles/strudel/pull/318 -- tutorial updates by @jarmitage in https://github.com/tidalcycles/strudel/pull/320 -- support notes without octave by @felixroos in https://github.com/tidalcycles/strudel/pull/323 -- mini repl improvements by @felixroos in https://github.com/tidalcycles/strudel/pull/324 -- fix: workaround Object.assign globalThis by @felixroos in https://github.com/tidalcycles/strudel/pull/326 -- add examples route by @felixroos in https://github.com/tidalcycles/strudel/pull/327 -- add my-patterns by @felixroos in https://github.com/tidalcycles/strudel/pull/328 -- my-patterns build + deploy by @felixroos in https://github.com/tidalcycles/strudel/pull/329 -- my-patterns: fix paths + update readme by @felixroos in https://github.com/tidalcycles/strudel/pull/330 -- improve displaying 's' in pianoroll by @felixroos in https://github.com/tidalcycles/strudel/pull/331 -- fix: can now multiply floats in mini notation by @felixroos in https://github.com/tidalcycles/strudel/pull/332 -- Embed mode improvements by @felixroos in https://github.com/tidalcycles/strudel/pull/333 -- testing + docs docs by @felixroos in https://github.com/tidalcycles/strudel/pull/334 -- animate mvp by @felixroos in https://github.com/tidalcycles/strudel/pull/335 -- Tidy parser, implement polymeters by @yaxu in https://github.com/tidalcycles/strudel/pull/336 -- animation options by @felixroos in https://github.com/tidalcycles/strudel/pull/337 -- move /my-patterns to /swatch by @yaxu in https://github.com/tidalcycles/strudel/pull/338 -- more animate functions + mini repl fix by @felixroos in https://github.com/tidalcycles/strudel/pull/340 -- Patternify euclid, fast, slow and polymeter step parameters in mininotation by @yaxu in https://github.com/tidalcycles/strudel/pull/341 -- fixes #346 by @felixroos in https://github.com/tidalcycles/strudel/pull/347 -- Fix prebake base path by @felixroos in https://github.com/tidalcycles/strudel/pull/345 -- Fix Bjorklund by @yaxu in https://github.com/tidalcycles/strudel/pull/343 -- docs: tidal comparison + add global fx + add missing sampler fx by @felixroos in https://github.com/tidalcycles/strudel/pull/356 -- Fix .out(), renaming webaudio's out() to webaudio() by @yaxu in https://github.com/tidalcycles/strudel/pull/361 -- Support for multiple mininotation operators by @yaxu in https://github.com/tidalcycles/strudel/pull/350 -- doc structuring by @felixroos in https://github.com/tidalcycles/strudel/pull/360 -- add https to url by @urswilke in https://github.com/tidalcycles/strudel/pull/364 -- document more functions + change arp join by @felixroos in https://github.com/tidalcycles/strudel/pull/369 -- improve new draw logic by @felixroos in https://github.com/tidalcycles/strudel/pull/372 -- Draw fixes by @felixroos in https://github.com/tidalcycles/strudel/pull/377 -- update my-patterns instructions by @felixroos in https://github.com/tidalcycles/strudel/pull/384 -- docs: use note instead of n to mitigate confusion by @felixroos in https://github.com/tidalcycles/strudel/pull/385 -- add run + test + docs by @felixroos in https://github.com/tidalcycles/strudel/pull/386 -- Rename a to angle by @felixroos in https://github.com/tidalcycles/strudel/pull/387 -- document csound by @felixroos in https://github.com/tidalcycles/strudel/pull/391 -- Notes are not essential :) by @yaxu in https://github.com/tidalcycles/strudel/pull/393 -- add ribbon + test + docs by @felixroos in https://github.com/tidalcycles/strudel/pull/388 -- Add tidal-drum-patterns to examples by @urswilke in https://github.com/tidalcycles/strudel/pull/379 -- add pattern methods hurry, press and pressBy by @yaxu in https://github.com/tidalcycles/strudel/pull/397 -- proper builds + use pnpm workspaces by @felixroos in https://github.com/tidalcycles/strudel/pull/396 -- fix: minirepl styles by @felixroos in https://github.com/tidalcycles/strudel/pull/398 -- can now await initAudio + initAudioOnFirstClick by @felixroos in https://github.com/tidalcycles/strudel/pull/399 -- release webaudio by @felixroos in https://github.com/tidalcycles/strudel/pull/400 +- support freq in pianoroll by @felixroos in https://codeberg.org/uzu/strudel/pulls/308 +- ICLC2023 paper WIP by @yaxu in https://codeberg.org/uzu/strudel/pulls/306 +- fix: copy share link to clipboard was broken for some browsers by @felixroos in https://codeberg.org/uzu/strudel/pulls/311 +- Jsdoc component by @felixroos in https://codeberg.org/uzu/strudel/pulls/312 +- object support for .scale by @felixroos in https://codeberg.org/uzu/strudel/pulls/307 +- Astro build by @felixroos in https://codeberg.org/uzu/strudel/pulls/315 +- Reference tab sort by @felixroos in https://codeberg.org/uzu/strudel/pulls/318 +- tutorial updates by @jarmitage in https://codeberg.org/uzu/strudel/pulls/320 +- support notes without octave by @felixroos in https://codeberg.org/uzu/strudel/pulls/323 +- mini repl improvements by @felixroos in https://codeberg.org/uzu/strudel/pulls/324 +- fix: workaround Object.assign globalThis by @felixroos in https://codeberg.org/uzu/strudel/pulls/326 +- add examples route by @felixroos in https://codeberg.org/uzu/strudel/pulls/327 +- add my-patterns by @felixroos in https://codeberg.org/uzu/strudel/pulls/328 +- my-patterns build + deploy by @felixroos in https://codeberg.org/uzu/strudel/pulls/329 +- my-patterns: fix paths + update readme by @felixroos in https://codeberg.org/uzu/strudel/pulls/330 +- improve displaying 's' in pianoroll by @felixroos in https://codeberg.org/uzu/strudel/pulls/331 +- fix: can now multiply floats in mini notation by @felixroos in https://codeberg.org/uzu/strudel/pulls/332 +- Embed mode improvements by @felixroos in https://codeberg.org/uzu/strudel/pulls/333 +- testing + docs docs by @felixroos in https://codeberg.org/uzu/strudel/pulls/334 +- animate mvp by @felixroos in https://codeberg.org/uzu/strudel/pulls/335 +- Tidy parser, implement polymeters by @yaxu in https://codeberg.org/uzu/strudel/pulls/336 +- animation options by @felixroos in https://codeberg.org/uzu/strudel/pulls/337 +- move /my-patterns to /swatch by @yaxu in https://codeberg.org/uzu/strudel/pulls/338 +- more animate functions + mini repl fix by @felixroos in https://codeberg.org/uzu/strudel/pulls/340 +- Patternify euclid, fast, slow and polymeter step parameters in mininotation by @yaxu in https://codeberg.org/uzu/strudel/pulls/341 +- fixes #346 by @felixroos in https://codeberg.org/uzu/strudel/pulls/347 +- Fix prebake base path by @felixroos in https://codeberg.org/uzu/strudel/pulls/345 +- Fix Bjorklund by @yaxu in https://codeberg.org/uzu/strudel/pulls/343 +- docs: tidal comparison + add global fx + add missing sampler fx by @felixroos in https://codeberg.org/uzu/strudel/pulls/356 +- Fix .out(), renaming webaudio's out() to webaudio() by @yaxu in https://codeberg.org/uzu/strudel/pulls/361 +- Support for multiple mininotation operators by @yaxu in https://codeberg.org/uzu/strudel/pulls/350 +- doc structuring by @felixroos in https://codeberg.org/uzu/strudel/pulls/360 +- add https to url by @urswilke in https://codeberg.org/uzu/strudel/pulls/364 +- document more functions + change arp join by @felixroos in https://codeberg.org/uzu/strudel/pulls/369 +- improve new draw logic by @felixroos in https://codeberg.org/uzu/strudel/pulls/372 +- Draw fixes by @felixroos in https://codeberg.org/uzu/strudel/pulls/377 +- update my-patterns instructions by @felixroos in https://codeberg.org/uzu/strudel/pulls/384 +- docs: use note instead of n to mitigate confusion by @felixroos in https://codeberg.org/uzu/strudel/pulls/385 +- add run + test + docs by @felixroos in https://codeberg.org/uzu/strudel/pulls/386 +- Rename a to angle by @felixroos in https://codeberg.org/uzu/strudel/pulls/387 +- document csound by @felixroos in https://codeberg.org/uzu/strudel/pulls/391 +- Notes are not essential :) by @yaxu in https://codeberg.org/uzu/strudel/pulls/393 +- add ribbon + test + docs by @felixroos in https://codeberg.org/uzu/strudel/pulls/388 +- Add tidal-drum-patterns to examples by @urswilke in https://codeberg.org/uzu/strudel/pulls/379 +- add pattern methods hurry, press and pressBy by @yaxu in https://codeberg.org/uzu/strudel/pulls/397 +- proper builds + use pnpm workspaces by @felixroos in https://codeberg.org/uzu/strudel/pulls/396 +- fix: minirepl styles by @felixroos in https://codeberg.org/uzu/strudel/pulls/398 +- can now await initAudio + initAudioOnFirstClick by @felixroos in https://codeberg.org/uzu/strudel/pulls/399 +- release webaudio by @felixroos in https://codeberg.org/uzu/strudel/pulls/400 ## New Contributors -- @jarmitage made their first contribution in https://github.com/tidalcycles/strudel/pull/320 -- @urswilke made their first contribution in https://github.com/tidalcycles/strudel/pull/364 +- @jarmitage made their first contribution in https://codeberg.org/uzu/strudel/pulls/320 +- @urswilke made their first contribution in https://codeberg.org/uzu/strudel/pulls/364 -**Full Changelog**: https://github.com/tidalcycles/strudel/compare/v0.5.0...v0.6.0 +**Full Changelog**: https://codeberg.org/uzu/strudel/compare/v0.5.0...v0.6.0 diff --git a/website/src/content/blog/release-0.7.0-zuckerguss.mdx b/website/src/content/blog/release-0.7.0-zuckerguss.mdx index 0a3a4649..f67deee7 100644 --- a/website/src/content/blog/release-0.7.0-zuckerguss.mdx +++ b/website/src/content/blog/release-0.7.0-zuckerguss.mdx @@ -23,66 +23,66 @@ author: froos ## What's Changed -- pin @csound/browser to 6.18.3 + bump by @felixroos in https://github.com/tidalcycles/strudel/pull/403 -- update csound + fix sound output by @felixroos in https://github.com/tidalcycles/strudel/pull/404 -- fix: share url on subpath by @felixroos in https://github.com/tidalcycles/strudel/pull/405 -- add shabda doc by @felixroos in https://github.com/tidalcycles/strudel/pull/407 -- Update effects.mdx by @bwagner in https://github.com/tidalcycles/strudel/pull/410 -- improve effects doc by @felixroos in https://github.com/tidalcycles/strudel/pull/409 -- google gtfo by @felixroos in https://github.com/tidalcycles/strudel/pull/413 -- improve samples doc by @felixroos in https://github.com/tidalcycles/strudel/pull/411 -- PWA with offline support by @felixroos in https://github.com/tidalcycles/strudel/pull/417 -- add caching strategy for missing file types + cache all samples loaded from github by @felixroos in https://github.com/tidalcycles/strudel/pull/419 -- add more offline caching by @felixroos in https://github.com/tidalcycles/strudel/pull/421 -- add cdn.freesound to cache list by @felixroos in https://github.com/tidalcycles/strudel/pull/425 -- minirepl: add keyboard shortcuts by @felixroos in https://github.com/tidalcycles/strudel/pull/429 -- Themes by @felixroos in https://github.com/tidalcycles/strudel/pull/431 -- autocomplete preparations by @felixroos in https://github.com/tidalcycles/strudel/pull/427 -- Fix anchors by @felixroos in https://github.com/tidalcycles/strudel/pull/433 -- Update code.mdx by @bwagner in https://github.com/tidalcycles/strudel/pull/436 -- Update mini-notation.mdx by @bwagner in https://github.com/tidalcycles/strudel/pull/437 -- Update synths.mdx by @bwagner in https://github.com/tidalcycles/strudel/pull/438 -- FIXES: Warning about jsxBracketSameLine deprecation by @bwagner in https://github.com/tidalcycles/strudel/pull/461 -- Composable functions by @yaxu in https://github.com/tidalcycles/strudel/pull/390 -- weave and weaveWith by @yaxu in https://github.com/tidalcycles/strudel/pull/465 -- slice and splice by @yaxu in https://github.com/tidalcycles/strudel/pull/466 -- fix: osc should not return a promise by @felixroos in https://github.com/tidalcycles/strudel/pull/472 -- FIXES: freqs instead of pitches by @bwagner in https://github.com/tidalcycles/strudel/pull/464 -- Update input-output.mdx by @bwagner in https://github.com/tidalcycles/strudel/pull/471 -- settings tab with vim / emacs modes + additional themes and fonts by @felixroos in https://github.com/tidalcycles/strudel/pull/467 -- fix: hash links by @felixroos in https://github.com/tidalcycles/strudel/pull/473 -- midi cc support by @felixroos in https://github.com/tidalcycles/strudel/pull/478 -- Fix array args by @felixroos in https://github.com/tidalcycles/strudel/pull/480 -- docs: packages + offline by @felixroos in https://github.com/tidalcycles/strudel/pull/482 -- Update mini-notation.mdx by @yaxu in https://github.com/tidalcycles/strudel/pull/365 -- Revert "Another attempt at composable functions - WIP (#390)" by @felixroos in https://github.com/tidalcycles/strudel/pull/484 -- fix app height by @felixroos in https://github.com/tidalcycles/strudel/pull/485 -- add algolia creds + optimize sidebar for crawling by @felixroos in https://github.com/tidalcycles/strudel/pull/488 -- refactor react package by @felixroos in https://github.com/tidalcycles/strudel/pull/490 -- react style fixes by @felixroos in https://github.com/tidalcycles/strudel/pull/491 -- implement cps in scheduler by @felixroos in https://github.com/tidalcycles/strudel/pull/493 -- Add control aliases by @yaxu in https://github.com/tidalcycles/strudel/pull/497 -- fix: nano-repl highlighting by @felixroos in https://github.com/tidalcycles/strudel/pull/501 -- Reinstate slice and splice by @yaxu in https://github.com/tidalcycles/strudel/pull/500 -- can now use : as a replacement for space in scales by @felixroos in https://github.com/tidalcycles/strudel/pull/502 -- Support list syntax in mininotation by @yaxu in https://github.com/tidalcycles/strudel/pull/512 -- update react to 18 by @felixroos in https://github.com/tidalcycles/strudel/pull/514 -- add arrange function by @felixroos in https://github.com/tidalcycles/strudel/pull/508 -- Update README.md by @bwagner in https://github.com/tidalcycles/strudel/pull/474 -- add 2 illegible fonts by @felixroos in https://github.com/tidalcycles/strudel/pull/518 -- registerSound API + improved sounds tab + regroup soundfonts by @felixroos in https://github.com/tidalcycles/strudel/pull/516 -- fix: envelopes in chrome by @felixroos in https://github.com/tidalcycles/strudel/pull/521 -- Update samples.mdx by @bwagner in https://github.com/tidalcycles/strudel/pull/524 -- Update intro.mdx by @bwagner in https://github.com/tidalcycles/strudel/pull/525 -- fix(footer): fix link to tidalcycles by @revolunet in https://github.com/tidalcycles/strudel/pull/529 -- FIXES: alias pm for polymeter by @bwagner in https://github.com/tidalcycles/strudel/pull/527 -- Maintain random seed state in parser, not globally by @ijc8 in https://github.com/tidalcycles/strudel/pull/531 -- feat: add freq support to gm soundfonts by @felixroos in https://github.com/tidalcycles/strudel/pull/534 -- Update lerna by @felixroos in https://github.com/tidalcycles/strudel/pull/535 +- pin @csound/browser to 6.18.3 + bump by @felixroos in https://codeberg.org/uzu/strudel/pulls/403 +- update csound + fix sound output by @felixroos in https://codeberg.org/uzu/strudel/pulls/404 +- fix: share url on subpath by @felixroos in https://codeberg.org/uzu/strudel/pulls/405 +- add shabda doc by @felixroos in https://codeberg.org/uzu/strudel/pulls/407 +- Update effects.mdx by @bwagner in https://codeberg.org/uzu/strudel/pulls/410 +- improve effects doc by @felixroos in https://codeberg.org/uzu/strudel/pulls/409 +- google gtfo by @felixroos in https://codeberg.org/uzu/strudel/pulls/413 +- improve samples doc by @felixroos in https://codeberg.org/uzu/strudel/pulls/411 +- PWA with offline support by @felixroos in https://codeberg.org/uzu/strudel/pulls/417 +- add caching strategy for missing file types + cache all samples loaded from github by @felixroos in https://codeberg.org/uzu/strudel/pulls/419 +- add more offline caching by @felixroos in https://codeberg.org/uzu/strudel/pulls/421 +- add cdn.freesound to cache list by @felixroos in https://codeberg.org/uzu/strudel/pulls/425 +- minirepl: add keyboard shortcuts by @felixroos in https://codeberg.org/uzu/strudel/pulls/429 +- Themes by @felixroos in https://codeberg.org/uzu/strudel/pulls/431 +- autocomplete preparations by @felixroos in https://codeberg.org/uzu/strudel/pulls/427 +- Fix anchors by @felixroos in https://codeberg.org/uzu/strudel/pulls/433 +- Update code.mdx by @bwagner in https://codeberg.org/uzu/strudel/pulls/436 +- Update mini-notation.mdx by @bwagner in https://codeberg.org/uzu/strudel/pulls/437 +- Update synths.mdx by @bwagner in https://codeberg.org/uzu/strudel/pulls/438 +- FIXES: Warning about jsxBracketSameLine deprecation by @bwagner in https://codeberg.org/uzu/strudel/pulls/461 +- Composable functions by @yaxu in https://codeberg.org/uzu/strudel/pulls/390 +- weave and weaveWith by @yaxu in https://codeberg.org/uzu/strudel/pulls/465 +- slice and splice by @yaxu in https://codeberg.org/uzu/strudel/pulls/466 +- fix: osc should not return a promise by @felixroos in https://codeberg.org/uzu/strudel/pulls/472 +- FIXES: freqs instead of pitches by @bwagner in https://codeberg.org/uzu/strudel/pulls/464 +- Update input-output.mdx by @bwagner in https://codeberg.org/uzu/strudel/pulls/471 +- settings tab with vim / emacs modes + additional themes and fonts by @felixroos in https://codeberg.org/uzu/strudel/pulls/467 +- fix: hash links by @felixroos in https://codeberg.org/uzu/strudel/pulls/473 +- midi cc support by @felixroos in https://codeberg.org/uzu/strudel/pulls/478 +- Fix array args by @felixroos in https://codeberg.org/uzu/strudel/pulls/480 +- docs: packages + offline by @felixroos in https://codeberg.org/uzu/strudel/pulls/482 +- Update mini-notation.mdx by @yaxu in https://codeberg.org/uzu/strudel/pulls/365 +- Revert "Another attempt at composable functions - WIP (#390)" by @felixroos in https://codeberg.org/uzu/strudel/pulls/484 +- fix app height by @felixroos in https://codeberg.org/uzu/strudel/pulls/485 +- add algolia creds + optimize sidebar for crawling by @felixroos in https://codeberg.org/uzu/strudel/pulls/488 +- refactor react package by @felixroos in https://codeberg.org/uzu/strudel/pulls/490 +- react style fixes by @felixroos in https://codeberg.org/uzu/strudel/pulls/491 +- implement cps in scheduler by @felixroos in https://codeberg.org/uzu/strudel/pulls/493 +- Add control aliases by @yaxu in https://codeberg.org/uzu/strudel/pulls/497 +- fix: nano-repl highlighting by @felixroos in https://codeberg.org/uzu/strudel/pulls/501 +- Reinstate slice and splice by @yaxu in https://codeberg.org/uzu/strudel/pulls/500 +- can now use : as a replacement for space in scales by @felixroos in https://codeberg.org/uzu/strudel/pulls/502 +- Support list syntax in mininotation by @yaxu in https://codeberg.org/uzu/strudel/pulls/512 +- update react to 18 by @felixroos in https://codeberg.org/uzu/strudel/pulls/514 +- add arrange function by @felixroos in https://codeberg.org/uzu/strudel/pulls/508 +- Update README.md by @bwagner in https://codeberg.org/uzu/strudel/pulls/474 +- add 2 illegible fonts by @felixroos in https://codeberg.org/uzu/strudel/pulls/518 +- registerSound API + improved sounds tab + regroup soundfonts by @felixroos in https://codeberg.org/uzu/strudel/pulls/516 +- fix: envelopes in chrome by @felixroos in https://codeberg.org/uzu/strudel/pulls/521 +- Update samples.mdx by @bwagner in https://codeberg.org/uzu/strudel/pulls/524 +- Update intro.mdx by @bwagner in https://codeberg.org/uzu/strudel/pulls/525 +- fix(footer): fix link to tidalcycles by @revolunet in https://codeberg.org/uzu/strudel/pulls/529 +- FIXES: alias pm for polymeter by @bwagner in https://codeberg.org/uzu/strudel/pulls/527 +- Maintain random seed state in parser, not globally by @ijc8 in https://codeberg.org/uzu/strudel/pulls/531 +- feat: add freq support to gm soundfonts by @felixroos in https://codeberg.org/uzu/strudel/pulls/534 +- Update lerna by @felixroos in https://codeberg.org/uzu/strudel/pulls/535 ## New Contributors -- @revolunet made their first contribution in https://github.com/tidalcycles/strudel/pull/529 -- @ijc8 made their first contribution in https://github.com/tidalcycles/strudel/pull/531 +- @revolunet made their first contribution in https://codeberg.org/uzu/strudel/pulls/529 +- @ijc8 made their first contribution in https://codeberg.org/uzu/strudel/pulls/531 -**Full Changelog**: https://github.com/tidalcycles/strudel/compare/v0.6.0...v0.7.0 +**Full Changelog**: https://codeberg.org/uzu/strudel/compare/v0.6.0...v0.7.0 diff --git a/website/src/content/blog/release-0.8.0-himbeermuffin.mdx b/website/src/content/blog/release-0.8.0-himbeermuffin.mdx index 7620140b..1eb1888a 100644 --- a/website/src/content/blog/release-0.8.0-himbeermuffin.mdx +++ b/website/src/content/blog/release-0.8.0-himbeermuffin.mdx @@ -6,7 +6,7 @@ tags: ['meta'] author: froos --- -import BlogVideo from '../../components/BlogVideo.astro'; +import { Youtube } from '@src/components/Youtube'; These are the release notes for Strudel 0.8.0 aka "Himbeermuffin"! @@ -18,11 +18,11 @@ Let me write up some of the highlights: Besides the REPL (https://strudel.tidalcycles.org/), Strudel is now also distributed as a Desktop App via https://tauri.app/! Thanks to [vasilymilovidov](https://github.com/vasilymilovidov)! -- [Linux: Debian based](https://github.com/tidalcycles/strudel/releases/download/v0.8.0/strudel_0.1.0_amd64.deb) -- [Linux: AppImage](https://github.com/tidalcycles/strudel/releases/download/v0.8.0/strudel_0.1.0_amd64.AppImage) -- [MacOS](https://github.com/tidalcycles/strudel/releases/download/v0.8.0/Strudel_0.1.0_x64.dmg) -- [Windows .exe](https://github.com/tidalcycles/strudel/releases/download/v0.8.0/Strudel_0.1.0_x64-setup.exe) -- [Windows .msi](https://github.com/tidalcycles/strudel/releases/download/v0.8.0/Strudel_0.1.0_x64_en-US.msi) +- [Linux: Debian based](https://codeberg.org/uzu/strudel/releases/download/v0.8.0/strudel_0.1.0_amd64.deb) +- [Linux: AppImage](https://codeberg.org/uzu/strudel/releases/download/v0.8.0/strudel_0.1.0_amd64.AppImage) +- [MacOS](https://codeberg.org/uzu/strudel/releases/download/v0.8.0/Strudel_0.1.0_x64.dmg) +- [Windows .exe](https://codeberg.org/uzu/strudel/releases/download/v0.8.0/Strudel_0.1.0_x64-setup.exe) +- [Windows .msi](https://codeberg.org/uzu/strudel/releases/download/v0.8.0/Strudel_0.1.0_x64_en-US.msi) edit: the desktop app performance on linux is currently not that great.. the web REPL runs much smoother (using firefox or chromium) @@ -43,7 +43,7 @@ I would be very happy to collect some feedback on how it works across different Also still undocumented, but you can now visualize patterns as a spiral via `.spiral()`: - + This is especially nice because strudel is not only the name of a dessert but also the german word for vortex! The spiral is very fitting to visualize cycles because you can align cycles vertically, while surfing along an infinite twisted timeline. @@ -82,49 +82,49 @@ A big thanks to all the contributors! ## What's Changed -- fix period key for dvorak + remove duplicated code by @felixroos in https://github.com/tidalcycles/strudel/pull/537 -- improve initial loading + wait before eval by @felixroos in https://github.com/tidalcycles/strudel/pull/538 -- do not reset cps before eval #517 by @felixroos in https://github.com/tidalcycles/strudel/pull/539 -- feat: add loader bar to animate loading state by @felixroos in https://github.com/tidalcycles/strudel/pull/542 -- add firacode font by @felixroos in https://github.com/tidalcycles/strudel/pull/544 -- fix: allow whitespace at the end of a mini pattern by @felixroos in https://github.com/tidalcycles/strudel/pull/547 -- fix: reset time on stop by @felixroos in https://github.com/tidalcycles/strudel/pull/548 -- fix: load soundfonts in prebake by @felixroos in https://github.com/tidalcycles/strudel/pull/550 -- fix: colorable highlighting by @felixroos in https://github.com/tidalcycles/strudel/pull/553 -- fix: make soundfonts import dynamic by @felixroos in https://github.com/tidalcycles/strudel/pull/556 -- add basic triads and guidetone voicings by @felixroos in https://github.com/tidalcycles/strudel/pull/557 -- Patchday by @felixroos in https://github.com/tidalcycles/strudel/pull/559 -- Vanilla JS Refactoring by @felixroos in https://github.com/tidalcycles/strudel/pull/563 -- repl: add option to display line numbers by @roipoussiere in https://github.com/tidalcycles/strudel/pull/582 -- learn/tonal: fix typo in "scaleTran[s]pose" by @srenatus in https://github.com/tidalcycles/strudel/pull/585 -- Music metadata by @roipoussiere in https://github.com/tidalcycles/strudel/pull/580 -- New Workshop by @felixroos in https://github.com/tidalcycles/strudel/pull/587 -- Fix option dot by @felixroos in https://github.com/tidalcycles/strudel/pull/596 -- fix: allow f for flat notes like tidal by @felixroos in https://github.com/tidalcycles/strudel/pull/593 -- fix: division by zero by @felixroos in https://github.com/tidalcycles/strudel/pull/591 -- Solmization added by @dariacotocu in https://github.com/tidalcycles/strudel/pull/570 -- improve cursor by @felixroos in https://github.com/tidalcycles/strudel/pull/597 -- enable auto-completion by @roipoussiere in https://github.com/tidalcycles/strudel/pull/588 -- add ratio function by @felixroos in https://github.com/tidalcycles/strudel/pull/602 -- editor: enable line wrapping by @roipoussiere in https://github.com/tidalcycles/strudel/pull/581 -- tonal fixes by @felixroos in https://github.com/tidalcycles/strudel/pull/607 -- fix: flatten scale lists by @felixroos in https://github.com/tidalcycles/strudel/pull/605 -- clip now works like legato in tidal by @felixroos in https://github.com/tidalcycles/strudel/pull/598 -- fix: doc links by @felixroos in https://github.com/tidalcycles/strudel/pull/612 -- tauri desktop app by @vasilymilovidov in https://github.com/tidalcycles/strudel/pull/613 -- add spiral viz by @felixroos in https://github.com/tidalcycles/strudel/pull/614 -- patterning ui settings by @felixroos in https://github.com/tidalcycles/strudel/pull/606 -- Fix typo on packages.mdx by @paikwiki in https://github.com/tidalcycles/strudel/pull/520 -- cps dependent functions by @felixroos in https://github.com/tidalcycles/strudel/pull/620 -- desktop: play samples from disk by @felixroos in https://github.com/tidalcycles/strudel/pull/621 -- fix: midi clock drift by @felixroos in https://github.com/tidalcycles/strudel/pull/627 +- fix period key for dvorak + remove duplicated code by @felixroos in https://codeberg.org/uzu/strudel/pulls/537 +- improve initial loading + wait before eval by @felixroos in https://codeberg.org/uzu/strudel/pulls/538 +- do not reset cps before eval #517 by @felixroos in https://codeberg.org/uzu/strudel/pulls/539 +- feat: add loader bar to animate loading state by @felixroos in https://codeberg.org/uzu/strudel/pulls/542 +- add firacode font by @felixroos in https://codeberg.org/uzu/strudel/pulls/544 +- fix: allow whitespace at the end of a mini pattern by @felixroos in https://codeberg.org/uzu/strudel/pulls/547 +- fix: reset time on stop by @felixroos in https://codeberg.org/uzu/strudel/pulls/548 +- fix: load soundfonts in prebake by @felixroos in https://codeberg.org/uzu/strudel/pulls/550 +- fix: colorable highlighting by @felixroos in https://codeberg.org/uzu/strudel/pulls/553 +- fix: make soundfonts import dynamic by @felixroos in https://codeberg.org/uzu/strudel/pulls/556 +- add basic triads and guidetone voicings by @felixroos in https://codeberg.org/uzu/strudel/pulls/557 +- Patchday by @felixroos in https://codeberg.org/uzu/strudel/pulls/559 +- Vanilla JS Refactoring by @felixroos in https://codeberg.org/uzu/strudel/pulls/563 +- repl: add option to display line numbers by @roipoussiere in https://codeberg.org/uzu/strudel/pulls/582 +- learn/tonal: fix typo in "scaleTran[s]pose" by @srenatus in https://codeberg.org/uzu/strudel/pulls/585 +- Music metadata by @roipoussiere in https://codeberg.org/uzu/strudel/pulls/580 +- New Workshop by @felixroos in https://codeberg.org/uzu/strudel/pulls/587 +- Fix option dot by @felixroos in https://codeberg.org/uzu/strudel/pulls/596 +- fix: allow f for flat notes like tidal by @felixroos in https://codeberg.org/uzu/strudel/pulls/593 +- fix: division by zero by @felixroos in https://codeberg.org/uzu/strudel/pulls/591 +- Solmization added by @dariacotocu in https://codeberg.org/uzu/strudel/pulls/570 +- improve cursor by @felixroos in https://codeberg.org/uzu/strudel/pulls/597 +- enable auto-completion by @roipoussiere in https://codeberg.org/uzu/strudel/pulls/588 +- add ratio function by @felixroos in https://codeberg.org/uzu/strudel/pulls/602 +- editor: enable line wrapping by @roipoussiere in https://codeberg.org/uzu/strudel/pulls/581 +- tonal fixes by @felixroos in https://codeberg.org/uzu/strudel/pulls/607 +- fix: flatten scale lists by @felixroos in https://codeberg.org/uzu/strudel/pulls/605 +- clip now works like legato in tidal by @felixroos in https://codeberg.org/uzu/strudel/pulls/598 +- fix: doc links by @felixroos in https://codeberg.org/uzu/strudel/pulls/612 +- tauri desktop app by @vasilymilovidov in https://codeberg.org/uzu/strudel/pulls/613 +- add spiral viz by @felixroos in https://codeberg.org/uzu/strudel/pulls/614 +- patterning ui settings by @felixroos in https://codeberg.org/uzu/strudel/pulls/606 +- Fix typo on packages.mdx by @paikwiki in https://codeberg.org/uzu/strudel/pulls/520 +- cps dependent functions by @felixroos in https://codeberg.org/uzu/strudel/pulls/620 +- desktop: play samples from disk by @felixroos in https://codeberg.org/uzu/strudel/pulls/621 +- fix: midi clock drift by @felixroos in https://codeberg.org/uzu/strudel/pulls/627 ## New Contributors -- @roipoussiere made their first contribution in https://github.com/tidalcycles/strudel/pull/582 -- @srenatus made their first contribution in https://github.com/tidalcycles/strudel/pull/585 -- @dariacotocu made their first contribution in https://github.com/tidalcycles/strudel/pull/570 -- @vasilymilovidov made their first contribution in https://github.com/tidalcycles/strudel/pull/613 -- @paikwiki made their first contribution in https://github.com/tidalcycles/strudel/pull/520 +- @roipoussiere made their first contribution in https://codeberg.org/uzu/strudel/pulls/582 +- @srenatus made their first contribution in https://codeberg.org/uzu/strudel/pulls/585 +- @dariacotocu made their first contribution in https://codeberg.org/uzu/strudel/pulls/570 +- @vasilymilovidov made their first contribution in https://codeberg.org/uzu/strudel/pulls/613 +- @paikwiki made their first contribution in https://codeberg.org/uzu/strudel/pulls/520 -**Full Changelog**: https://github.com/tidalcycles/strudel/compare/v0.7.0...v0.8.0 +**Full Changelog**: https://codeberg.org/uzu/strudel/compare/v0.7.0...v0.8.0 diff --git a/website/src/content/blog/release-0.9.0-bananenbrot.mdx b/website/src/content/blog/release-0.9.0-bananenbrot.mdx index ae77b424..eb6894f6 100644 --- a/website/src/content/blog/release-0.9.0-bananenbrot.mdx +++ b/website/src/content/blog/release-0.9.0-bananenbrot.mdx @@ -6,8 +6,6 @@ tags: ['meta'] author: froos --- -import BlogVideo from '../../components/BlogVideo.astro'; - These are the release notes for Strudel 0.9.0 aka "Bananenbrot"! The last release was over 11 weeks ago, so a lot of things have happened! @@ -25,18 +23,20 @@ Main new features include: - [vibrato](https://strudel.tidalcycles.org/learn/synths#vibrato) - an integration of [ZZFX](https://strudel.tidalcycles.org/learn/synths#zzfx) - +import { Youtube } from '@src/components/Youtube'; + + Related PRs: -- superdough: encapsulates web audio output by @felixroos in https://github.com/tidalcycles/strudel/pull/664 -- basic fm by @felixroos in https://github.com/tidalcycles/strudel/pull/669 -- Wave Selection and Global Envelope on the FM Synth Modulator by @Bubobubobubobubo in https://github.com/tidalcycles/strudel/pull/683 -- control osc partial count with n by @felixroos in https://github.com/tidalcycles/strudel/pull/674 -- ZZFX Synth support by @Bubobubobubobubo in https://github.com/tidalcycles/strudel/pull/684 -- Adding filter envelopes and filter order selection by @Bubobubobubobubo in https://github.com/tidalcycles/strudel/pull/692 -- Adding loop points and thus wavetable synthesis by @Bubobubobubobubo in https://github.com/tidalcycles/strudel/pull/698 -- Adding vibrato to base oscillators by @Bubobubobubobubo in https://github.com/tidalcycles/strudel/pull/693 +- superdough: encapsulates web audio output by @felixroos in https://codeberg.org/uzu/strudel/pulls/664 +- basic fm by @felixroos in https://codeberg.org/uzu/strudel/pulls/669 +- Wave Selection and Global Envelope on the FM Synth Modulator by @Bubobubobubobubo in https://codeberg.org/uzu/strudel/pulls/683 +- control osc partial count with n by @felixroos in https://codeberg.org/uzu/strudel/pulls/674 +- ZZFX Synth support by @Bubobubobubobubo in https://codeberg.org/uzu/strudel/pulls/684 +- Adding filter envelopes and filter order selection by @Bubobubobubobubo in https://codeberg.org/uzu/strudel/pulls/692 +- Adding loop points and thus wavetable synthesis by @Bubobubobubobubo in https://codeberg.org/uzu/strudel/pulls/698 +- Adding vibrato to base oscillators by @Bubobubobubobubo in https://codeberg.org/uzu/strudel/pulls/693 ## Desktop App Improvements @@ -45,70 +45,70 @@ which do not depend on browser APIs! You can see superdough, superdirt via OSC + hardware synths via MIDI all together playing in harmony in this [awesome video](https://www.youtube.com/watch?v=lxQgBeLQBgk). These are the related PRs: -- Create Midi Integration for Tauri Desktop app by @daslyfe in https://github.com/tidalcycles/strudel/pull/685 -- add sleep timer + improve message iterating by @daslyfe in https://github.com/tidalcycles/strudel/pull/688 -- fix MIDI CC messages by @vasilymilovidov in https://github.com/tidalcycles/strudel/pull/690 -- Direct OSC Support in Tauri by @daslyfe in https://github.com/tidalcycles/strudel/pull/694 -- Add logging from tauri by @daslyfe in https://github.com/tidalcycles/strudel/pull/697 -- fix osc bundle timestamp glitches caused by drifting clock by @daslyfe in https://github.com/tidalcycles/strudel/pull/666 -- Midi time fixes by @daslyfe in https://github.com/tidalcycles/strudel/pull/668 -- [Bug Fix] Account for numeral notation when converting to midi by @daslyfe in https://github.com/tidalcycles/strudel/pull/656 -- [Bug Fix] Midi: Don't treat note 0 as false by @daslyfe in https://github.com/tidalcycles/strudel/pull/657 +- Create Midi Integration for Tauri Desktop app by @daslyfe in https://codeberg.org/uzu/strudel/pulls/685 +- add sleep timer + improve message iterating by @daslyfe in https://codeberg.org/uzu/strudel/pulls/688 +- fix MIDI CC messages by @vasilymilovidov in https://codeberg.org/uzu/strudel/pulls/690 +- Direct OSC Support in Tauri by @daslyfe in https://codeberg.org/uzu/strudel/pulls/694 +- Add logging from tauri by @daslyfe in https://codeberg.org/uzu/strudel/pulls/697 +- fix osc bundle timestamp glitches caused by drifting clock by @daslyfe in https://codeberg.org/uzu/strudel/pulls/666 +- Midi time fixes by @daslyfe in https://codeberg.org/uzu/strudel/pulls/668 +- [Bug Fix] Account for numeral notation when converting to midi by @daslyfe in https://codeberg.org/uzu/strudel/pulls/656 +- [Bug Fix] Midi: Don't treat note 0 as false by @daslyfe in https://codeberg.org/uzu/strudel/pulls/657 ## Visuals -- 2 new FFT based vizualisations have now landed: [scope and fscope](https://github.com/tidalcycles/strudel/pull/677) (featured in the video at the top). -- pianoroll has new options, see [PR](https://github.com/tidalcycles/strudel/pull/679) +- 2 new FFT based vizualisations have now landed: [scope and fscope](https://codeberg.org/uzu/strudel/pulls/677) (featured in the video at the top). +- pianoroll has new options, see [PR](https://codeberg.org/uzu/strudel/pulls/679) Related PRs: -- Scope by @felixroos in https://github.com/tidalcycles/strudel/pull/677 ([demo](https://strudel.tidalcycles.org/?hXVQF-KxMI8p)) -- Pianoroll improvements by @felixroos in https://github.com/tidalcycles/strudel/pull/679 ([demo](https://strudel.tidalcycles.org/?aPMKqXGVMgSM)) +- Scope by @felixroos in https://codeberg.org/uzu/strudel/pulls/677 ([demo](https://strudel.tidalcycles.org/?hXVQF-KxMI8p)) +- Pianoroll improvements by @felixroos in https://codeberg.org/uzu/strudel/pulls/679 ([demo](https://strudel.tidalcycles.org/?aPMKqXGVMgSM)) ## Voicings There is now a new way to play chord voicings + a huge selection of chord voicings available. Find out more in these PRs: -- stateless voicings + tonleiter lib by @felixroos in https://github.com/tidalcycles/strudel/pull/647 ([demo](https://strudel.tidalcycles.org/?FoILM0Hs9y9f)) -- ireal voicings by @felixroos in https://github.com/tidalcycles/strudel/pull/653 ([demo](https://strudel.tidalcycles.org/?bv_TjY9hOC28)) +- stateless voicings + tonleiter lib by @felixroos in https://codeberg.org/uzu/strudel/pulls/647 ([demo](https://strudel.tidalcycles.org/?FoILM0Hs9y9f)) +- ireal voicings by @felixroos in https://codeberg.org/uzu/strudel/pulls/653 ([demo](https://strudel.tidalcycles.org/?bv_TjY9hOC28)) ## Adaptive Highlighting Thanks to @mindofmatthew , the highlighting will adapt to edits instantly! Related PRs: -- More work on highlight IDs by @mindofmatthew in https://github.com/tidalcycles/strudel/pull/636 -- Adaptive Highlighting by @felixroos in https://github.com/tidalcycles/strudel/pull/634 +- More work on highlight IDs by @mindofmatthew in https://codeberg.org/uzu/strudel/pulls/636 +- Adaptive Highlighting by @felixroos in https://codeberg.org/uzu/strudel/pulls/634 ## UI Changes -- teletext theme + fonts by @felixroos in https://github.com/tidalcycles/strudel/pull/681 (featured in video at the top) -- togglable panel position by @felixroos in https://github.com/tidalcycles/strudel/pull/667 +- teletext theme + fonts by @felixroos in https://codeberg.org/uzu/strudel/pulls/681 (featured in video at the top) +- togglable panel position by @felixroos in https://codeberg.org/uzu/strudel/pulls/667 ## Other New Features -- slice: list mode by @felixroos in https://github.com/tidalcycles/strudel/pull/645 ([demo](https://strudel.tidalcycles.org/?bAYIqz5NLjRr)) -- add emoji support by @felixroos in https://github.com/tidalcycles/strudel/pull/680 ([demo](https://strudel.tidalcycles.org/?a6FgLz475gN9)) +- slice: list mode by @felixroos in https://codeberg.org/uzu/strudel/pulls/645 ([demo](https://strudel.tidalcycles.org/?bAYIqz5NLjRr)) +- add emoji support by @felixroos in https://codeberg.org/uzu/strudel/pulls/680 ([demo](https://strudel.tidalcycles.org/?a6FgLz475gN9)) ## Articles -- Understand pitch by @felixroos in https://github.com/tidalcycles/strudel/pull/652 +- Understand pitch by @felixroos in https://codeberg.org/uzu/strudel/pulls/652 ## Other Fixes & Enhancements -- fix: out of range error by @felixroos in https://github.com/tidalcycles/strudel/pull/630 -- fix: update canvas size on window resize by @felixroos in https://github.com/tidalcycles/strudel/pull/631 -- FIXES: TODO in rotateChroma by @bwagner in https://github.com/tidalcycles/strudel/pull/650 -- snapshot tests: sort haps by part by @felixroos in https://github.com/tidalcycles/strudel/pull/637 -- Delete old packages by @felixroos in https://github.com/tidalcycles/strudel/pull/639 -- update vitest by @felixroos in https://github.com/tidalcycles/strudel/pull/651 -- fix: welcome message for latestCode by @felixroos in https://github.com/tidalcycles/strudel/pull/659 -- fix: always run previous trigger by @felixroos in https://github.com/tidalcycles/strudel/pull/660 +- fix: out of range error by @felixroos in https://codeberg.org/uzu/strudel/pulls/630 +- fix: update canvas size on window resize by @felixroos in https://codeberg.org/uzu/strudel/pulls/631 +- FIXES: TODO in rotateChroma by @bwagner in https://codeberg.org/uzu/strudel/pulls/650 +- snapshot tests: sort haps by part by @felixroos in https://codeberg.org/uzu/strudel/pulls/637 +- Delete old packages by @felixroos in https://codeberg.org/uzu/strudel/pulls/639 +- update vitest by @felixroos in https://codeberg.org/uzu/strudel/pulls/651 +- fix: welcome message for latestCode by @felixroos in https://codeberg.org/uzu/strudel/pulls/659 +- fix: always run previous trigger by @felixroos in https://codeberg.org/uzu/strudel/pulls/660 ## New Contributors -- @daslyfe made their first contribution in https://github.com/tidalcycles/strudel/pull/656 -- @Bubobubobubobubo made their first contribution in https://github.com/tidalcycles/strudel/pull/683 +- @daslyfe made their first contribution in https://codeberg.org/uzu/strudel/pulls/656 +- @Bubobubobubobubo made their first contribution in https://codeberg.org/uzu/strudel/pulls/683 -**Full Changelog**: https://github.com/tidalcycles/strudel/compare/v0.8.0...v0.9.0 +**Full Changelog**: https://codeberg.org/uzu/strudel/compare/v0.8.0...v0.9.0 A big thanks to all the contributors! diff --git a/website/src/content/blog/release-1.0.0-geburtstagskuchen.mdx b/website/src/content/blog/release-1.0.0-geburtstagskuchen.mdx index 70176ad9..bfbf24a2 100644 --- a/website/src/content/blog/release-1.0.0-geburtstagskuchen.mdx +++ b/website/src/content/blog/release-1.0.0-geburtstagskuchen.mdx @@ -6,8 +6,6 @@ tags: ['meta'] author: froos --- -import BlogVideo from '../../components/BlogVideo.astro'; - These are the release notes for Strudel 1.0.0 aka "Geburtstagskuchen" This release marks the 2 year anniversary of the project, the first commit was on the 22nd January 2022 by Alex McLean. @@ -27,13 +25,13 @@ Let me write up some of the highlights: This version changes the default cps value from 1 to 0.5 to give patterns a little bit more time by default. If you find your existing patterns to be suddenly half the speed, just add a `setcps(1)` to the top and it should sound as it did before! -- make 0.5hz cps the default by @yaxu in https://github.com/tidalcycles/strudel/pull/931 +- make 0.5hz cps the default by @yaxu in https://codeberg.org/uzu/strudel/pulls/931 ## New Domain Strudel is now available under [strudel.cc](https://strudel.cc/). The old domain still works but you might not get the most recent version. -- replace strudel.tidalcycles.org with strudel.cc by @felixroos in https://github.com/tidalcycles/strudel/pull/768 +- replace strudel.tidalcycles.org with strudel.cc by @felixroos in https://codeberg.org/uzu/strudel/pulls/768 ## Strudel on Mastodon @@ -43,52 +41,52 @@ Strudel now has a mastodon presence: https://social.toplap.org/@strudel superdough, the audio engine of strudel has gotten some new features: -- Create phaser effect by @daslyfe in https://github.com/tidalcycles/strudel/pull/798 -- Multichannel audio by @daslyfe in https://github.com/tidalcycles/strudel/pull/820 -- Audio device selection by @daslyfe in https://github.com/tidalcycles/strudel/pull/854 -- Better convolution reverb by generating impulse responses by @Bubobubobubobubo and @felixroos in https://github.com/tidalcycles/strudel/pull/718 -- Add 'white', 'pink' and 'brown' oscillators + refactor synth by @Bubobubobubobubo and @felixroos in https://github.com/tidalcycles/strudel/pull/713 -- New noise type: "crackle" by @Bubobubobubobubo in https://github.com/tidalcycles/strudel/pull/806 -- Add support for using samples as impulse response buffers for the reverb by @vasilymilovidov in https://github.com/tidalcycles/strudel/pull/717 -- Compressor by @felixroos in https://github.com/tidalcycles/strudel/pull/729 -- Adding vibrato to Superdough sampler by @Bubobubobubobubo and @felixroos in https://github.com/tidalcycles/strudel/pull/706 -- Further Envelope improvements by @daslyfe in https://github.com/tidalcycles/strudel/pull/868 -- Add more vowel qualities for the vowels function by @fnordomat in https://github.com/tidalcycles/strudel/pull/907 -- pitch envelope by @felixroos in https://github.com/tidalcycles/strudel/pull/913 +- Create phaser effect by @daslyfe in https://codeberg.org/uzu/strudel/pulls/798 +- Multichannel audio by @daslyfe in https://codeberg.org/uzu/strudel/pulls/820 +- Audio device selection by @daslyfe in https://codeberg.org/uzu/strudel/pulls/854 +- Better convolution reverb by generating impulse responses by @Bubobubobubobubo and @felixroos in https://codeberg.org/uzu/strudel/pulls/718 +- Add 'white', 'pink' and 'brown' oscillators + refactor synth by @Bubobubobubobubo and @felixroos in https://codeberg.org/uzu/strudel/pulls/713 +- New noise type: "crackle" by @Bubobubobubobubo in https://codeberg.org/uzu/strudel/pulls/806 +- Add support for using samples as impulse response buffers for the reverb by @vasilymilovidov in https://codeberg.org/uzu/strudel/pulls/717 +- Compressor by @felixroos in https://codeberg.org/uzu/strudel/pulls/729 +- Adding vibrato to Superdough sampler by @Bubobubobubobubo and @felixroos in https://codeberg.org/uzu/strudel/pulls/706 +- Further Envelope improvements by @daslyfe in https://codeberg.org/uzu/strudel/pulls/868 +- Add more vowel qualities for the vowels function by @fnordomat in https://codeberg.org/uzu/strudel/pulls/907 +- pitch envelope by @felixroos in https://codeberg.org/uzu/strudel/pulls/913 ## Slider Controls The new `slider` function inlines a draggable slider element into the code, bridging the gap between code and GUI. -- widgets by @felixroos in https://github.com/tidalcycles/strudel/pull/714 -- Slider afterthoughts by @felixroos in https://github.com/tidalcycles/strudel/pull/723 -- add xfade by @felixroos in https://github.com/tidalcycles/strudel/pull/780 +- widgets by @felixroos in https://codeberg.org/uzu/strudel/pulls/714 +- Slider afterthoughts by @felixroos in https://codeberg.org/uzu/strudel/pulls/723 +- add xfade by @felixroos in https://codeberg.org/uzu/strudel/pulls/780 ## Improved MIDI integration Pattern params [can now be controlled with cc messages](https://www.youtube.com/watch?v=e2-Sv_jjDQk) + you can now send a MIDI clock to sync your DAW with strudel. -- Midi in by @felixroos in https://github.com/tidalcycles/strudel/pull/699 -- add midi clock support by @felixroos in https://github.com/tidalcycles/strudel/pull/710 +- Midi in by @felixroos in https://codeberg.org/uzu/strudel/pulls/699 +- add midi clock support by @felixroos in https://codeberg.org/uzu/strudel/pulls/710 ## hydra [hydra](https://hydra.ojack.xyz), the live coding video synth [can now be used directly inside the strudel REPL](https://strudel.cc/learn/hydra/). -- Hydra integration by @felixroos in https://github.com/tidalcycles/strudel/pull/759 -- add options param to initHydra by @kasparsj in https://github.com/tidalcycles/strudel/pull/808 -- Hydra fixes and improvements by @atfornes in https://github.com/tidalcycles/strudel/pull/818 +- Hydra integration by @felixroos in https://codeberg.org/uzu/strudel/pulls/759 +- add options param to initHydra by @kasparsj in https://codeberg.org/uzu/strudel/pulls/808 +- Hydra fixes and improvements by @atfornes in https://codeberg.org/uzu/strudel/pulls/818 ## Vanilla REPL The codemirror editor and the repl abstraction have been refactored from react to vanilla JS! This should give some performance improvements and less dependency / maintenance burden: -- Vanilla repl 2 by @felixroos in https://github.com/tidalcycles/strudel/pull/863 -- Vanilla repl 3 by @felixroos in https://github.com/tidalcycles/strudel/pull/865 -- more work on vanilla repl: repl web component + package + MicroRepl by @felixroos in https://github.com/tidalcycles/strudel/pull/866 -- main repl vanillification by @felixroos in https://github.com/tidalcycles/strudel/pull/873 -- final vanillification by @felixroos in https://github.com/tidalcycles/strudel/pull/876 +- Vanilla repl 2 by @felixroos in https://codeberg.org/uzu/strudel/pulls/863 +- Vanilla repl 3 by @felixroos in https://codeberg.org/uzu/strudel/pulls/865 +- more work on vanilla repl: repl web component + package + MicroRepl by @felixroos in https://codeberg.org/uzu/strudel/pulls/866 +- main repl vanillification by @felixroos in https://codeberg.org/uzu/strudel/pulls/873 +- final vanillification by @felixroos in https://codeberg.org/uzu/strudel/pulls/876 ## Doc Changes @@ -97,25 +95,25 @@ Plenty of things have been added to the docs, including a [showcase of what peop
show PRs -- Showcase by @felixroos in https://github.com/tidalcycles/strudel/pull/885 -- Recipes by @felixroos in https://github.com/tidalcycles/strudel/pull/742 -- Document striate function by @ilesinge in https://github.com/tidalcycles/strudel/pull/766 -- Document adsr function by @ilesinge in https://github.com/tidalcycles/strudel/pull/767 -- Add function params in reference tab by @ilesinge in https://github.com/tidalcycles/strudel/pull/785 -- Update first-sounds.mdx by @bwagner in https://github.com/tidalcycles/strudel/pull/794 -- Update recap.mdx by @bwagner in https://github.com/tidalcycles/strudel/pull/797 -- Update pattern-effects.mdx by @bwagner in https://github.com/tidalcycles/strudel/pull/796 -- Update first-effects.mdx by @bwagner in https://github.com/tidalcycles/strudel/pull/795 -- Document pianoroll by @ilesinge in https://github.com/tidalcycles/strudel/pull/784 -- Add doc for euclidLegatoRot, wordfall and slider by @ilesinge in https://github.com/tidalcycles/strudel/pull/801 -- Improve documentation for synonym functions by @ilesinge in https://github.com/tidalcycles/strudel/pull/800 -- Add and style algolia search by @ilesinge in https://github.com/tidalcycles/strudel/pull/827 -- Fix a typo by @drewgbarnes in https://github.com/tidalcycles/strudel/pull/830 -- add mastodon link by @felixroos in https://github.com/tidalcycles/strudel/pull/884 -- adds a blog by @felixroos in https://github.com/tidalcycles/strudel/pull/911 -- community bakery by @felixroos in https://github.com/tidalcycles/strudel/pull/923 -- Blog improvements by @felixroos in https://github.com/tidalcycles/strudel/pull/919 -- 2 years blog post by @felixroos in https://github.com/tidalcycles/strudel/pull/929 +- Showcase by @felixroos in https://codeberg.org/uzu/strudel/pulls/885 +- Recipes by @felixroos in https://codeberg.org/uzu/strudel/pulls/742 +- Document striate function by @ilesinge in https://codeberg.org/uzu/strudel/pulls/766 +- Document adsr function by @ilesinge in https://codeberg.org/uzu/strudel/pulls/767 +- Add function params in reference tab by @ilesinge in https://codeberg.org/uzu/strudel/pulls/785 +- Update first-sounds.mdx by @bwagner in https://codeberg.org/uzu/strudel/pulls/794 +- Update recap.mdx by @bwagner in https://codeberg.org/uzu/strudel/pulls/797 +- Update pattern-effects.mdx by @bwagner in https://codeberg.org/uzu/strudel/pulls/796 +- Update first-effects.mdx by @bwagner in https://codeberg.org/uzu/strudel/pulls/795 +- Document pianoroll by @ilesinge in https://codeberg.org/uzu/strudel/pulls/784 +- Add doc for euclidLegatoRot, wordfall and slider by @ilesinge in https://codeberg.org/uzu/strudel/pulls/801 +- Improve documentation for synonym functions by @ilesinge in https://codeberg.org/uzu/strudel/pulls/800 +- Add and style algolia search by @ilesinge in https://codeberg.org/uzu/strudel/pulls/827 +- Fix a typo by @drewgbarnes in https://codeberg.org/uzu/strudel/pulls/830 +- add mastodon link by @felixroos in https://codeberg.org/uzu/strudel/pulls/884 +- adds a blog by @felixroos in https://codeberg.org/uzu/strudel/pulls/911 +- community bakery by @felixroos in https://codeberg.org/uzu/strudel/pulls/923 +- Blog improvements by @felixroos in https://codeberg.org/uzu/strudel/pulls/919 +- 2 years blog post by @felixroos in https://codeberg.org/uzu/strudel/pulls/929
@@ -124,34 +122,34 @@ Plenty of things have been added to the docs, including a [showcase of what peop
There is a lot more -- mini notation: international alphabets support by @ilesinge in https://github.com/tidalcycles/strudel/pull/751 -- Add shabda shortcut by @ilesinge in https://github.com/tidalcycles/strudel/pull/740 -- add play function by @felixroos in https://github.com/tidalcycles/strudel/pull/758 (superseded by next) -- tidal style d1 ... d9 functions + more by @felixroos in https://github.com/tidalcycles/strudel/pull/805 -- add vscode bindings by @Dsm0 in https://github.com/tidalcycles/strudel/pull/773 -- Implement optional hover tooltip with function documentation by @ilesinge in https://github.com/tidalcycles/strudel/pull/783 -- samples loading shortcuts: by @felixroos in https://github.com/tidalcycles/strudel/pull/788 -- add option to disable active line highlighting in Code Settings by @kasparsj in https://github.com/tidalcycles/strudel/pull/804 -- Color hsl by @felixroos in https://github.com/tidalcycles/strudel/pull/815 -- Patterns tab + Refactor Panel by @felixroos in https://github.com/tidalcycles/strudel/pull/769 -- patterns tab: import patterns + style by @felixroos in https://github.com/tidalcycles/strudel/pull/852 -- Export patterns + ui tweaks by @felixroos in https://github.com/tidalcycles/strudel/pull/855 -- Pattern organization by @felixroos in https://github.com/tidalcycles/strudel/pull/858 -- Sound Import from local file system by @daslyfe in https://github.com/tidalcycles/strudel/pull/839 -- bugfix: suspend and close exisiting audio context when changing interface by @daslyfe in https://github.com/tidalcycles/strudel/pull/882 -- add root mode for voicings by @felixroos in https://github.com/tidalcycles/strudel/pull/887 -- scales can now be anchored by @felixroos in https://github.com/tidalcycles/strudel/pull/888 -- add dough function for raw dsp by @felixroos in https://github.com/tidalcycles/strudel/pull/707 (experimental) -- support mininotation '..' range operator, fixes #715 by @yaxu in https://github.com/tidalcycles/strudel/pull/716 -- Add pick and squeeze functions by @daslyfe in https://github.com/tidalcycles/strudel/pull/771 -- support , in < > by @felixroos in https://github.com/tidalcycles/strudel/pull/886 -- public sharing by @felixroos in https://github.com/tidalcycles/strudel/pull/910 -- pick, pickmod, inhabit, inhabitmod by @yaxu in https://github.com/tidalcycles/strudel/pull/921 -- Mini-notation additions towards tidal compatibility by @yaxu in https://github.com/tidalcycles/strudel/pull/926 -- add pickF and pickmodF by @geikha in https://github.com/tidalcycles/strudel/pull/924 -- Make splice cps-aware by @yaxu in https://github.com/tidalcycles/strudel/pull/932 -- Refactor cps functions by @felixroos in https://github.com/tidalcycles/strudel/pull/933 -- Add useful pattern selection behavior for performing. by @daslyfe in https://github.com/tidalcycles/strudel/pull/897 +- mini notation: international alphabets support by @ilesinge in https://codeberg.org/uzu/strudel/pulls/751 +- Add shabda shortcut by @ilesinge in https://codeberg.org/uzu/strudel/pulls/740 +- add play function by @felixroos in https://codeberg.org/uzu/strudel/pulls/758 (superseded by next) +- tidal style d1 ... d9 functions + more by @felixroos in https://codeberg.org/uzu/strudel/pulls/805 +- add vscode bindings by @Dsm0 in https://codeberg.org/uzu/strudel/pulls/773 +- Implement optional hover tooltip with function documentation by @ilesinge in https://codeberg.org/uzu/strudel/pulls/783 +- samples loading shortcuts: by @felixroos in https://codeberg.org/uzu/strudel/pulls/788 +- add option to disable active line highlighting in Code Settings by @kasparsj in https://codeberg.org/uzu/strudel/pulls/804 +- Color hsl by @felixroos in https://codeberg.org/uzu/strudel/pulls/815 +- Patterns tab + Refactor Panel by @felixroos in https://codeberg.org/uzu/strudel/pulls/769 +- patterns tab: import patterns + style by @felixroos in https://codeberg.org/uzu/strudel/pulls/852 +- Export patterns + ui tweaks by @felixroos in https://codeberg.org/uzu/strudel/pulls/855 +- Pattern organization by @felixroos in https://codeberg.org/uzu/strudel/pulls/858 +- Sound Import from local file system by @daslyfe in https://codeberg.org/uzu/strudel/pulls/839 +- bugfix: suspend and close existing audio context when changing interface by @daslyfe in https://codeberg.org/uzu/strudel/pulls/882 +- add root mode for voicings by @felixroos in https://codeberg.org/uzu/strudel/pulls/887 +- scales can now be anchored by @felixroos in https://codeberg.org/uzu/strudel/pulls/888 +- add dough function for raw dsp by @felixroos in https://codeberg.org/uzu/strudel/pulls/707 (experimental) +- support mininotation '..' range operator, fixes #715 by @yaxu in https://codeberg.org/uzu/strudel/pulls/716 +- Add pick and squeeze functions by @daslyfe in https://codeberg.org/uzu/strudel/pulls/771 +- support , in < > by @felixroos in https://codeberg.org/uzu/strudel/pulls/886 +- public sharing by @felixroos in https://codeberg.org/uzu/strudel/pulls/910 +- pick, pickmod, inhabit, inhabitmod by @yaxu in https://codeberg.org/uzu/strudel/pulls/921 +- Mini-notation additions towards tidal compatibility by @yaxu in https://codeberg.org/uzu/strudel/pulls/926 +- add pickF and pickmodF by @geikha in https://codeberg.org/uzu/strudel/pulls/924 +- Make splice cps-aware by @yaxu in https://codeberg.org/uzu/strudel/pulls/932 +- Refactor cps functions by @felixroos in https://codeberg.org/uzu/strudel/pulls/933 +- Add useful pattern selection behavior for performing. by @daslyfe in https://codeberg.org/uzu/strudel/pulls/897
@@ -160,79 +158,79 @@ Plenty of things have been added to the docs, including a [showcase of what peop
show -- fix: finally repair envelopes by @felixroos in https://github.com/tidalcycles/strudel/pull/861 -- fix: reverb regenerate loophole by @felixroos in https://github.com/tidalcycles/strudel/pull/726 -- fix: reverb roomsize not required by @felixroos in https://github.com/tidalcycles/strudel/pull/731 -- fix: reverb sampleRate by @felixroos in https://github.com/tidalcycles/strudel/pull/732 -- consume n with scale by @felixroos in https://github.com/tidalcycles/strudel/pull/727 -- fix: hashes in urls by @felixroos in https://github.com/tidalcycles/strudel/pull/728 -- [Bug Fix] chooseWith: prevent pattern from stopping audio when selection is >= 1 or < 0 by @daslyfe in https://github.com/tidalcycles/strudel/pull/741 -- Fix addivite synthesis phases by @felixroos in https://github.com/tidalcycles/strudel/pull/762 -- fix: scale offset by @felixroos in https://github.com/tidalcycles/strudel/pull/764 -- fix zen mode logo overlap by @felixroos in https://github.com/tidalcycles/strudel/pull/760 -- fix: share copy to clipboard + alert by @felixroos in https://github.com/tidalcycles/strudel/pull/774 -- fix: style issues by @felixroos in https://github.com/tidalcycles/strudel/pull/781 -- Fix scope pos + document by @felixroos in https://github.com/tidalcycles/strudel/pull/786 -- don't use anchor links for reference by @felixroos in https://github.com/tidalcycles/strudel/pull/791 -- remove unwanted cm6 outline for strudelTheme by @kasparsj in https://github.com/tidalcycles/strudel/pull/802 -- FIXES: palindrome abc -> abccba by @bwagner in https://github.com/tidalcycles/strudel/pull/831 -- Bug Fix #119: Clock drift by @daslyfe in https://github.com/tidalcycles/strudel/pull/874 -- bugfix: sound select indexes out of bounds by @daslyfe in https://github.com/tidalcycles/strudel/pull/871 -- Error tolerance by @felixroos in https://github.com/tidalcycles/strudel/pull/880 -- fix: make sure n is never undefined before nanFallback by @felixroos in https://github.com/tidalcycles/strudel/pull/881 -- fix: invisible selection on vim + emacs mode by @felixroos in https://github.com/tidalcycles/strudel/pull/889 -- fix: autocomplete / tooltip code example bug by @felixroos in https://github.com/tidalcycles/strudel/pull/898 -- Fix examples page, piano() and a few workshop imgs by @shiyouganai in https://github.com/tidalcycles/strudel/pull/848 -- fix: trailing slash confusion by @felixroos in https://github.com/tidalcycles/strudel/pull/743 -- fix: try different trailing slash behavior by @felixroos in https://github.com/tidalcycles/strudel/pull/744 -- Fix krill build command in README by @ilesinge in https://github.com/tidalcycles/strudel/pull/748 -- Fix for #1. Enables named instruments for csoundm. by @gogins in https://github.com/tidalcycles/strudel/pull/662 -- fix: missing hash for links starting with / by @felixroos in https://github.com/tidalcycles/strudel/pull/845 -- fix: swatch png src by @felixroos in https://github.com/tidalcycles/strudel/pull/846 -- Fix edge case with rehype-urls and trailing slashes in image file paths by @shiyouganai in https://github.com/tidalcycles/strudel/pull/849 -- fix: multiple repls by @felixroos in https://github.com/tidalcycles/strudel/pull/813 -- Fix chunk, add fastChunk and repeatCycles by @yaxu in https://github.com/tidalcycles/strudel/pull/712 -- Update tauri.yml workflow file by @vasilymilovidov in https://github.com/tidalcycles/strudel/pull/705 -- vite-vanilla-repl readme fix by @felixroos in https://github.com/tidalcycles/strudel/pull/737 -- completely revert config mess by @felixroos in https://github.com/tidalcycles/strudel/pull/745 -- hopefully fix trainling slashes bug by @felixroos in https://github.com/tidalcycles/strudel/pull/753 -- Update vite pwa by @felixroos in https://github.com/tidalcycles/strudel/pull/772 -- Update to Astro 3 by @felixroos in https://github.com/tidalcycles/strudel/pull/775 -- support multiple named serial connections, change default baudrate by @yaxu in https://github.com/tidalcycles/strudel/pull/551 -- CHANGES: github action checkout v2 -> v4 by @bwagner in https://github.com/tidalcycles/strudel/pull/837 -- CHANGES: pin pnpm to version 8.3.1 by @bwagner in https://github.com/tidalcycles/strudel/pull/834 -- CHANGES: github action pnpm version from 7 to 8.3.1 by @bwagner in https://github.com/tidalcycles/strudel/pull/835 -- ADDS: JetBrains IDE files and directories to .gitignore by @bwagner in https://github.com/tidalcycles/strudel/pull/840 -- Prevent 404 on Algolia crawls by @ilesinge in https://github.com/tidalcycles/strudel/pull/838 -- Add in fixes from my fork to slashocalypse branch by @shiyouganai in https://github.com/tidalcycles/strudel/pull/843 -- improve slashing + base href behavior by @felixroos in https://github.com/tidalcycles/strudel/pull/842 -- CHANGES: pnpm 8.1.3 to 8.11.0 by @bwagner in https://github.com/tidalcycles/strudel/pull/850 -- add missing trailing slashes by @felixroos in https://github.com/tidalcycles/strudel/pull/860 -- move all examples to separate examples folder by @felixroos in https://github.com/tidalcycles/strudel/pull/878 -- Dependency update by @felixroos in https://github.com/tidalcycles/strudel/pull/879 -- Update Vite version so hot reload works properly with newest pnpm version by @daslyfe in https://github.com/tidalcycles/strudel/pull/892 -- prevent vite from complaining about additional exports in jsx files by @daslyfe in https://github.com/tidalcycles/strudel/pull/891 -- fix some build warnings by @felixroos in https://github.com/tidalcycles/strudel/pull/902 -- Remove hideHeader for better mobile UI and consistency by @rjulian in https://github.com/tidalcycles/strudel/pull/894 -- Fix: swatch/[name].png.js static path by @oscarbyrne in https://github.com/tidalcycles/strudel/pull/916 -- rename @strudel.cycles/_ packages to @strudel/_ by @felixroos in https://github.com/tidalcycles/strudel/pull/917 -- `pick` now accepts lookup tables, with alternate cycle squeezing behaviour as new `inhabit` function by @yaxu in https://github.com/tidalcycles/strudel/pull/918 -- Revert "`pick` now accepts lookup tables, with alternate cycle squeezing behaviour as new `inhabit` function" by @yaxu in https://github.com/tidalcycles/strudel/pull/920 -- Fix pattern tab not showing patterns without created date by @daslyfe in https://github.com/tidalcycles/strudel/pull/934 +- fix: finally repair envelopes by @felixroos in https://codeberg.org/uzu/strudel/pulls/861 +- fix: reverb regenerate loophole by @felixroos in https://codeberg.org/uzu/strudel/pulls/726 +- fix: reverb roomsize not required by @felixroos in https://codeberg.org/uzu/strudel/pulls/731 +- fix: reverb sampleRate by @felixroos in https://codeberg.org/uzu/strudel/pulls/732 +- consume n with scale by @felixroos in https://codeberg.org/uzu/strudel/pulls/727 +- fix: hashes in urls by @felixroos in https://codeberg.org/uzu/strudel/pulls/728 +- [Bug Fix] chooseWith: prevent pattern from stopping audio when selection is >= 1 or < 0 by @daslyfe in https://codeberg.org/uzu/strudel/pulls/741 +- Fix addivite synthesis phases by @felixroos in https://codeberg.org/uzu/strudel/pulls/762 +- fix: scale offset by @felixroos in https://codeberg.org/uzu/strudel/pulls/764 +- fix zen mode logo overlap by @felixroos in https://codeberg.org/uzu/strudel/pulls/760 +- fix: share copy to clipboard + alert by @felixroos in https://codeberg.org/uzu/strudel/pulls/774 +- fix: style issues by @felixroos in https://codeberg.org/uzu/strudel/pulls/781 +- Fix scope pos + document by @felixroos in https://codeberg.org/uzu/strudel/pulls/786 +- don't use anchor links for reference by @felixroos in https://codeberg.org/uzu/strudel/pulls/791 +- remove unwanted cm6 outline for strudelTheme by @kasparsj in https://codeberg.org/uzu/strudel/pulls/802 +- FIXES: palindrome abc -> abccba by @bwagner in https://codeberg.org/uzu/strudel/pulls/831 +- Bug Fix #119: Clock drift by @daslyfe in https://codeberg.org/uzu/strudel/pulls/874 +- bugfix: sound select indexes out of bounds by @daslyfe in https://codeberg.org/uzu/strudel/pulls/871 +- Error tolerance by @felixroos in https://codeberg.org/uzu/strudel/pulls/880 +- fix: make sure n is never undefined before nanFallback by @felixroos in https://codeberg.org/uzu/strudel/pulls/881 +- fix: invisible selection on vim + emacs mode by @felixroos in https://codeberg.org/uzu/strudel/pulls/889 +- fix: autocomplete / tooltip code example bug by @felixroos in https://codeberg.org/uzu/strudel/pulls/898 +- Fix examples page, piano() and a few workshop imgs by @shiyouganai in https://codeberg.org/uzu/strudel/pulls/848 +- fix: trailing slash confusion by @felixroos in https://codeberg.org/uzu/strudel/pulls/743 +- fix: try different trailing slash behavior by @felixroos in https://codeberg.org/uzu/strudel/pulls/744 +- Fix krill build command in README by @ilesinge in https://codeberg.org/uzu/strudel/pulls/748 +- Fix for #1. Enables named instruments for csoundm. by @gogins in https://codeberg.org/uzu/strudel/pulls/662 +- fix: missing hash for links starting with / by @felixroos in https://codeberg.org/uzu/strudel/pulls/845 +- fix: swatch png src by @felixroos in https://codeberg.org/uzu/strudel/pulls/846 +- Fix edge case with rehype-urls and trailing slashes in image file paths by @shiyouganai in https://codeberg.org/uzu/strudel/pulls/849 +- fix: multiple repls by @felixroos in https://codeberg.org/uzu/strudel/pulls/813 +- Fix chunk, add fastChunk and repeatCycles by @yaxu in https://codeberg.org/uzu/strudel/pulls/712 +- Update tauri.yml workflow file by @vasilymilovidov in https://codeberg.org/uzu/strudel/pulls/705 +- vite-vanilla-repl readme fix by @felixroos in https://codeberg.org/uzu/strudel/pulls/737 +- completely revert config mess by @felixroos in https://codeberg.org/uzu/strudel/pulls/745 +- hopefully fix trailing slashes bug by @felixroos in https://codeberg.org/uzu/strudel/pulls/753 +- Update vite pwa by @felixroos in https://codeberg.org/uzu/strudel/pulls/772 +- Update to Astro 3 by @felixroos in https://codeberg.org/uzu/strudel/pulls/775 +- support multiple named serial connections, change default baudrate by @yaxu in https://codeberg.org/uzu/strudel/pulls/551 +- CHANGES: github action checkout v2 -> v4 by @bwagner in https://codeberg.org/uzu/strudel/pulls/837 +- CHANGES: pin pnpm to version 8.3.1 by @bwagner in https://codeberg.org/uzu/strudel/pulls/834 +- CHANGES: github action pnpm version from 7 to 8.3.1 by @bwagner in https://codeberg.org/uzu/strudel/pulls/835 +- ADDS: JetBrains IDE files and directories to .gitignore by @bwagner in https://codeberg.org/uzu/strudel/pulls/840 +- Prevent 404 on Algolia crawls by @ilesinge in https://codeberg.org/uzu/strudel/pulls/838 +- Add in fixes from my fork to slashocalypse branch by @shiyouganai in https://codeberg.org/uzu/strudel/pulls/843 +- improve slashing + base href behavior by @felixroos in https://codeberg.org/uzu/strudel/pulls/842 +- CHANGES: pnpm 8.1.3 to 8.11.0 by @bwagner in https://codeberg.org/uzu/strudel/pulls/850 +- add missing trailing slashes by @felixroos in https://codeberg.org/uzu/strudel/pulls/860 +- move all examples to separate examples folder by @felixroos in https://codeberg.org/uzu/strudel/pulls/878 +- Dependency update by @felixroos in https://codeberg.org/uzu/strudel/pulls/879 +- Update Vite version so hot reload works properly with newest pnpm version by @daslyfe in https://codeberg.org/uzu/strudel/pulls/892 +- prevent vite from complaining about additional exports in jsx files by @daslyfe in https://codeberg.org/uzu/strudel/pulls/891 +- fix some build warnings by @felixroos in https://codeberg.org/uzu/strudel/pulls/902 +- Remove hideHeader for better mobile UI and consistency by @rjulian in https://codeberg.org/uzu/strudel/pulls/894 +- Fix: swatch/[name].png.js static path by @oscarbyrne in https://codeberg.org/uzu/strudel/pulls/916 +- rename @strudel.cycles/_ packages to @strudel/_ by @felixroos in https://codeberg.org/uzu/strudel/pulls/917 +- `pick` now accepts lookup tables, with alternate cycle squeezing behaviour as new `inhabit` function by @yaxu in https://codeberg.org/uzu/strudel/pulls/918 +- Revert "`pick` now accepts lookup tables, with alternate cycle squeezing behaviour as new `inhabit` function" by @yaxu in https://codeberg.org/uzu/strudel/pulls/920 +- Fix pattern tab not showing patterns without created date by @daslyfe in https://codeberg.org/uzu/strudel/pulls/934
## New Contributors -- @ilesinge made their first contribution in https://github.com/tidalcycles/strudel/pull/748 -- @Dsm0 made their first contribution in https://github.com/tidalcycles/strudel/pull/773 -- @kasparsj made their first contribution in https://github.com/tidalcycles/strudel/pull/802 -- @atfornes made their first contribution in https://github.com/tidalcycles/strudel/pull/818 -- @drewgbarnes made their first contribution in https://github.com/tidalcycles/strudel/pull/830 -- @shiyouganai made their first contribution in https://github.com/tidalcycles/strudel/pull/843 -- @rjulian made their first contribution in https://github.com/tidalcycles/strudel/pull/894 -- @fnordomat made their first contribution in https://github.com/tidalcycles/strudel/pull/907 -- @oscarbyrne made their first contribution in https://github.com/tidalcycles/strudel/pull/916 -- @geikha made their first contribution in https://github.com/tidalcycles/strudel/pull/924 +- @ilesinge made their first contribution in https://codeberg.org/uzu/strudel/pulls/748 +- @Dsm0 made their first contribution in https://codeberg.org/uzu/strudel/pulls/773 +- @kasparsj made their first contribution in https://codeberg.org/uzu/strudel/pulls/802 +- @atfornes made their first contribution in https://codeberg.org/uzu/strudel/pulls/818 +- @drewgbarnes made their first contribution in https://codeberg.org/uzu/strudel/pulls/830 +- @shiyouganai made their first contribution in https://codeberg.org/uzu/strudel/pulls/843 +- @rjulian made their first contribution in https://codeberg.org/uzu/strudel/pulls/894 +- @fnordomat made their first contribution in https://codeberg.org/uzu/strudel/pulls/907 +- @oscarbyrne made their first contribution in https://codeberg.org/uzu/strudel/pulls/916 +- @geikha made their first contribution in https://codeberg.org/uzu/strudel/pulls/924 -**Full Changelog**: https://github.com/tidalcycles/strudel/compare/v0.9.0...v1.0.0 +**Full Changelog**: https://codeberg.org/uzu/strudel/compare/v0.9.0...v1.0.0 diff --git a/website/src/content/blog/release-1.1.0-bananensplit.mdx b/website/src/content/blog/release-1.1.0-bananensplit.mdx new file mode 100644 index 00000000..dcc54768 --- /dev/null +++ b/website/src/content/blog/release-1.1.0-bananensplit.mdx @@ -0,0 +1,317 @@ +--- +title: 'Release Notes v1.1.0' +description: '' +date: '2024-06-02' +tags: ['meta'] +author: froos +--- + +These are the release notes for Strudel 1.1.0 aka "Bananensplit". + +The last release was over 19 weeks ago, so a lot of things have happened! + +First, here's a little demo, teasing some of the new features: + +import { Youtube } from '@src/components/Youtube'; + + + +Let's write up some of the highlights: + +## New DSP Features + +### Stereo Supersaw + +with spread, unison, and detune parameters + +```plaintext +note("d f a a# a d3").fast(2) +.s("supersaw").spread(".8").detune(.3).unison("2 7") +``` + +### Analog "ladder" filter type + +works great for acid basslines and vibey tones + +```plaintext +note("{d d d a a# d3 f4}%16".sub(12)).gain(1).s("sawtooth") +.lpf(200).lpenv(slider(1.36,0,8)).lpq(7).distort("1.5:.7")` +.ftype('ladder') +``` + +### stereo distortion effect + +```plaintext +note("{g g a# g g4}%8".add("{0 7 12 0}%8")).lpf(500) +.s("supersaw").dist("4:.2") +``` + +## Editor Features + +### inline viz + +The editor now supports multiple visuals within the code, using the `_` prefix for viz functions: + +Screenshot 2024-06-01 at 01 23 51 + +- `._pianoroll()`: inline pianoroll +- `._punchcard()`: inline punchcard +- `._scope()`: inline scope +- `._pitchwheel()`: inline pitchwheel + +For more info, check out the new [Visual Feedback Page](https://strudel.cc/learn/visual-feedback/) + +### label notation + +This new notation simplifies writing patterns at the top level: + +```plaintext +d1: s("bd*4") +d2: s("[- hh]*4") +``` + +This is equivalent to: + +```plaintext +stack( + s("bd*4"), + s("[- hh]*4") +) +``` + +The labels you choose are arbitrary, the above `d1` and `d2` are a typical thing you'd write in tidal, for example `d1 $ s "bd*4"`. +If the same label is used multiple times, the last one wins: + +```plaintext +d1: s("bd*4") +d1: s("[- hh]*4") // <-- only this plays +``` + +There is a special label anonymous label `$`, which can appear multiple times without overriding itself: + +```plaintext +// both of these will play: +$: s("bd*4") +$: s("[- hh]*4") +``` + +You can mute a pattern by prefixing `_`: + +```plaintext +_$: s("bd*4") // <-- this one is muted +$: s("[- hh]*4") +``` + +To run a transformation on all patterns, you can use `all`: + +```plaintext +$: s("bd*4") +$: s("[- hh]*4") +all(x=>x.room(.5)) +``` + +This notation is now the recommended way to [play patterns in parallel](https://strudel.cc/workshop/first-notes/#playing-multiple-patterns) + +### Clock sync between multiple instances + +timing has received a major overhaul, and is now much more accurate on all browsers. Additionally, you can now sync timing across multiple windows. +![Screenshot 2024-06-02 at 11 24 40 PM](https://codeberg.org/uzu/strudel/assets/47068718/840be744-a13e-4d7b-ab09-50d3a70b1f85) + +### Better sample upload support + +you can now upload large amounts of samples much faster across all browsers including on IOS devices. supported filetypes now include: ogg flac mp3 wav aac m4a + +### experimental tidal syntax + +The new `tidal` function allows you to write strudel patterns in tidal syntax: + +```plaintext +await initTidal() + +tidal` +d1 $ s "bd*4" + +d2 $ s "[- hh]*4" +` +``` + +As we're looking to improve compatibility with tidal, we're happy to hear feedback. + +## breaking changes + +This release comes with a bunch of breaking changes. If you find your patterns to sound different, check out the PRs below for guidance on how to update them. Most of these changes shouldn't affect a lot of patterns. +In case of doubt, add the line `// @version 1.0` to your old pattern. +If you're having problems, please let us know! + +- remove legacy legato + duration implementations by @felixroos in https://codeberg.org/uzu/strudel/pull/965 +- Velocity in value by @felixroos in https://codeberg.org/uzu/strudel/pull/974 +- use ireal as default voicing dict by @felixroos https://codeberg.org/uzu/strudel/pull/967 +- Color in hap value by @felixroos https://codeberg.org/uzu/strudel/pull/1007 +- rename trig -> reset, trigzero -> restart by @felixroos https://codeberg.org/uzu/strudel/pull/1010 +- remove dangerous arithmetic feature by @felixroos https://codeberg.org/uzu/strudel/pull/1030 +- change fanchor to 0 by @daslyfe https://codeberg.org/uzu/strudel/pull/1107 + +## superdough features + +- replace shape with distort in learn doc by @daslyfe https://codeberg.org/uzu/strudel/pull/982 +- Worklet Improvents / fixes by @daslyfe https://codeberg.org/uzu/strudel/pull/963 +- supersaw oscillator by @daslyfe https://codeberg.org/uzu/strudel/pull/978 +- Add analog-style ladder filter by @daslyfe https://codeberg.org/uzu/strudel/pull/1103 +- Calculate phaser modulation phase based on time by @daslyfe https://codeberg.org/uzu/strudel/pull/1110 +- rollback phaser by @daslyfe https://codeberg.org/uzu/strudel/pull/1113 + +## editor / ui features + +- 'Enable Bracket Matching' option in Codemirror by @eefano https://codeberg.org/uzu/strudel/pull/956 +- REPL sync between windows by @daslyfe https://codeberg.org/uzu/strudel/pull/900 +- inline viz / widgets package by @felixroos https://codeberg.org/uzu/strudel/pull/989 +- Inline punchcard + spiral by @felixroos https://codeberg.org/uzu/strudel/pull/1008 +- More fonts by @felixroos https://codeberg.org/uzu/strudel/pull/1023 +- better theme integration for visuals + various fixes by @felixroos https://codeberg.org/uzu/strudel/pull/1024 +- add setting for sync flag by @felixroos https://codeberg.org/uzu/strudel/pull/1025 +- add closeBrackets setting by @felixroos https://codeberg.org/uzu/strudel/pull/1031 +- add font file types to offline cache by @felixroos https://codeberg.org/uzu/strudel/pull/1032 +- pitchwheel visual by @felixroos https://codeberg.org/uzu/strudel/pull/1041 +- repl: set document.title from @title by @kasparsj https://codeberg.org/uzu/strudel/pull/1090 +- Samples tab improvements by @daslyfe https://codeberg.org/uzu/strudel/pull/1102 + +## language features + +- pickOut(), pickRestart(), pickReset() by @eefano https://codeberg.org/uzu/strudel/pull/950 +- Auto await samples by @felixroos https://codeberg.org/uzu/strudel/pull/955 +- feat: can now invert euclid pulses with negative numbers by @felixroos https://codeberg.org/uzu/strudel/pull/959 +- Nested controls by @felixroos https://codeberg.org/uzu/strudel/pull/973 +- alias - for ~ by @yaxu https://codeberg.org/uzu/strudel/pull/981 +- Beat-oriented functionality by @yaxu https://codeberg.org/uzu/strudel/pull/976 +- Labeled statements by @felixroos https://codeberg.org/uzu/strudel/pull/991 +- accidentals in scale degrees by @eefano https://codeberg.org/uzu/strudel/pull/1000 +- Feature: tactus marking by @yaxu https://codeberg.org/uzu/strudel/pull/1021 +- Tactus tidy by @yaxu https://codeberg.org/uzu/strudel/pull/1027 +- Wax, wane, taper and taperlist by @yaxu https://codeberg.org/uzu/strudel/pull/1042 +- transpose: support all combinations of numbers and strings for notes and intervals by @felixroos https://codeberg.org/uzu/strudel/pull/1048 +- anonymous patterns + muting by @felixroos https://codeberg.org/uzu/strudel/pull/1059 +- add swing + swingBy by @felixroos https://codeberg.org/uzu/strudel/pull/1038 +- Stepwise functions from Tidal by @yaxu https://codeberg.org/uzu/strudel/pull/1060 +- Tactus tweaks - fixes for maintaining tactus and highlight locations by @yaxu https://codeberg.org/uzu/strudel/pull/1065 +- Fix stepjoin by @yaxu https://codeberg.org/uzu/strudel/pull/1067 +- More tactus tidying by @yaxu https://codeberg.org/uzu/strudel/pull/1071 +- Tactus calculation toggle and breaking change to tactus calculation in fast/slow/hurry by @yaxu https://codeberg.org/uzu/strudel/pull/1081 +- hs2js package / tidal parser by @felixroos https://codeberg.org/uzu/strudel/pull/870 +- Add the mousex and mousey signal by @Enelg52 https://codeberg.org/uzu/strudel/pull/1112 +- can now access strudelMirror from repl by @felixroos https://codeberg.org/uzu/strudel/pull/1117 + +## sampler + +If you have nodejs installed on your system, you can now use [@strudel/sampler](https://www.npmjs.com/package/@strudel/sampler) to serve samples from disk to the REPL or flok. + +- local sample server cli by @felixroos https://codeberg.org/uzu/strudel/pull/1033 +- Fix sampler paths by @felixroos https://codeberg.org/uzu/strudel/pull/1034 +- Fix sampler windows by @felixroos https://codeberg.org/uzu/strudel/pull/1108 +- fix sampler on windows by @geikha https://codeberg.org/uzu/strudel/pull/1109 + +## docs + +- V1 release notes by @felixroos https://codeberg.org/uzu/strudel/pull/935 +- Minor documentation error: Update first-sounds.mdx by @mhetrick https://codeberg.org/uzu/strudel/pull/941 +- Update synths.mdx by @andresgottlieb https://codeberg.org/uzu/strudel/pull/984 +- using strudel in your project guide + cleanup examples by @felixroos https://codeberg.org/uzu/strudel/pull/1006 +- Document signals by @ilesinge https://codeberg.org/uzu/strudel/pull/1015 +- improve tutorial + custom samples doc by @felixroos https://codeberg.org/uzu/strudel/pull/1053 +- fix cr typo on first-sounds.mdx by @cleary https://codeberg.org/uzu/strudel/pull/1068 +- fix first sounds typo by @cleary https://codeberg.org/uzu/strudel/pull/1069 +- add `<...>` to first-sounds.mdx recap by @cleary https://codeberg.org/uzu/strudel/pull/1070 +- add nesting to `off` example variation in pattern-effects.mdx by @cleary https://codeberg.org/uzu/strudel/pull/1075 +- fix translation issue in first-effects.mdx by @cleary https://codeberg.org/uzu/strudel/pull/1072 +- add signals to recap in first-effects.mdx by @cleary https://codeberg.org/uzu/strudel/pull/1073 +- fix docs on alignment.mdx by @diegodorado https://codeberg.org/uzu/strudel/pull/1076 +- fix little dub tune example by @lukad https://codeberg.org/uzu/strudel/pull/1104 +- clarify `off` in pattern-effects.mdx by @cleary https://codeberg.org/uzu/strudel/pull/1074 +- Fixes drawPianoroll import in codemirror example by @giohappy https://codeberg.org/uzu/strudel/pull/1116 +- Migrate tutorial fanchor by @felixroos https://codeberg.org/uzu/strudel/pull/1122 + +## internals + +- remove cjs builds by @felixroos https://codeberg.org/uzu/strudel/pull/945 +- controls refactoring: simplify exports by @felixroos https://codeberg.org/uzu/strudel/pull/962 +- move canvas related helpers from core to new draw package by @felixroos https://codeberg.org/uzu/strudel/pull/971 +- remove canvas, externalize samples, delete junk by @felixroos https://codeberg.org/uzu/strudel/pull/1003 +- Improve performance of ! (replicate) by @yaxu https://codeberg.org/uzu/strudel/pull/1084 +- Benchmarks by @yaxu https://codeberg.org/uzu/strudel/pull/1079 + +## fixes + +- fix midi issue on firefox and added quote error by @Enelg52 https://codeberg.org/uzu/strudel/pull/936 +- fix: pianoroll sorting by @felixroos https://codeberg.org/uzu/strudel/pull/938 +- account for cps in midi time duration by @daslyfe https://codeberg.org/uzu/strudel/pull/954 +- fix script importable packages (web + repl) by @felixroos https://codeberg.org/uzu/strudel/pull/957 +- fix: reset global fx on pattern change by @felixroos https://codeberg.org/uzu/strudel/pull/960 +- add debounce to logger by @felixroos https://codeberg.org/uzu/strudel/pull/968 +- fix for transpose(): preserve hap value object structure by @eefano https://codeberg.org/uzu/strudel/pull/966 +- fix: clear hydra on reset by @felixroos https://codeberg.org/uzu/strudel/pull/983 +- little fix for withVal by @eefano https://codeberg.org/uzu/strudel/pull/980 +- fix: share now shares what's visible instead of active by @felixroos https://codeberg.org/uzu/strudel/pull/985 +- Fix pure mini highlight by @yaxu https://codeberg.org/uzu/strudel/pull/994 +- fix: await injectPatternMethods by @felixroos https://codeberg.org/uzu/strudel/pull/1012 +- update undocumented script by @felixroos https://codeberg.org/uzu/strudel/pull/1013 +- eliminate chromium clock jitter by @felixroos https://codeberg.org/uzu/strudel/pull/1004 +- Repl sync fixes by @daslyfe https://codeberg.org/uzu/strudel/pull/1014 +- hotfix for 1017 by @daslyfe https://codeberg.org/uzu/strudel/pull/1020 +- fix cyclist fizzling out by @felixroos https://codeberg.org/uzu/strudel/pull/1046 +- Midi Time hotfix for scheduler updates by @daslyfe https://codeberg.org/uzu/strudel/pull/1047 +- fix: do not reset cc input values on each eval by @felixroos https://codeberg.org/uzu/strudel/pull/1054 +- Fix wchooseCycles not picking the whole pattern by @ilesinge https://codeberg.org/uzu/strudel/pull/1061 +- fix OSC timing for recent scheduler updates by @daslyfe https://codeberg.org/uzu/strudel/pull/1062 +- clarify license by @yaxu https://codeberg.org/uzu/strudel/pull/1064 +- fix failing format test by @daslyfe https://codeberg.org/uzu/strudel/pull/1077 +- fix: url parsing with extra params by @felixroos https://codeberg.org/uzu/strudel/pull/1083 +- fix: csound + dough timing by @felixroos https://codeberg.org/uzu/strudel/pull/1086 +- fix: missing events due to premature worklet cleanup by @felixroos https://codeberg.org/uzu/strudel/pull/1089 +- Use sessionStorage for viewingPatternData and activePattern by @kasparsj https://codeberg.org/uzu/strudel/pull/1091 +- osc: couple of fixes by @kasparsj https://codeberg.org/uzu/strudel/pull/1093 +- web package fixes by @felixroos https://codeberg.org/uzu/strudel/pull/1044 +- Fix audio worklets by @daslyfe https://codeberg.org/uzu/strudel/pull/1114 +- fix: use full repl in web package by @felixroos https://codeberg.org/uzu/strudel/pull/1119 +- [BUG FIX] Audio worklets sometimes dont load by @daslyfe https://codeberg.org/uzu/strudel/pull/1121 + +## New Contributors + +- @mhetrick made their first contribution https://codeberg.org/uzu/strudel/pull/941 +- @eefano made their first contribution https://codeberg.org/uzu/strudel/pull/956 +- @Enelg52 made their first contribution https://codeberg.org/uzu/strudel/pull/936 +- @andresgottlieb made their first contribution https://codeberg.org/uzu/strudel/pull/984 +- @cleary made their first contribution https://codeberg.org/uzu/strudel/pull/1068 +- @diegodorado made their first contribution https://codeberg.org/uzu/strudel/pull/1076 +- @lukad made their first contribution https://codeberg.org/uzu/strudel/pull/1104 +- @giohappy made their first contribution https://codeberg.org/uzu/strudel/pull/1116 + +A huge thanks to all contributors!!! + +## Packages + +- @strudel/codemirror@1.1.0 +- @strudel/core@1.1.0 +- @strudel/csound@1.1.0 +- @strudel/draw@1.1.0 +- @strudel/embed@1.1.0 +- hs2js@0.1.0 +- @strudel/hydra@1.1.0 +- @strudel/midi@1.1.0 +- @strudel/mini@1.1.0 +- @strudel/osc@1.1.0 +- @strudel/repl@1.1.0 +- @strudel/sampler@0.1.0 +- @strudel/serial@1.1.0 +- @strudel/soundfonts@1.1.0 +- superdough@1.1.0 +- @strudel/tidal@0.1.0 +- @strudel/tonal@1.1.0 +- @strudel/transpiler@1.1.0 +- @strudel/web@1.1.0 +- @strudel/webaudio@1.1.0 +- @strudel/xen@1.1.0 + +**Full Changelog**: https://codeberg.org/uzu/strudel/compare/v1.0.0...v1.1.0 diff --git a/website/src/content/blog/release-1.2.0-kardinalschnitten.mdx b/website/src/content/blog/release-1.2.0-kardinalschnitten.mdx new file mode 100644 index 00000000..e215d453 --- /dev/null +++ b/website/src/content/blog/release-1.2.0-kardinalschnitten.mdx @@ -0,0 +1,186 @@ +--- +title: 'Release Notes v1.2.0' +description: '' +date: '2025-05-01' +tags: ['meta'] +author: froos +--- + +## What's Changed + +## highlights + +- [stepwise functions](https://strudel.cc/learn/stepwise/) ([PR](https://github.com/tidalcycles/strudel/pull/1262)) +- [midimaps](https://strudel.cc/learn/input-output/#midimaps) ([PR](https://github.com/tidalcycles/strudel/pull/1274)) +- [spectrum](https://strudel.cc/learn/visual-feedback/#spectrum) ([PR](https://github.com/tidalcycles/strudel/pull/1213)) +- [mqtt](https://strudel.cc/learn/input-output/#mqtt) ([PR](https://github.com/tidalcycles/strudel/pull/1224)) +- pulse oscillator (todo: https://github.com/tidalcycles/strudel/issues/1336) ([PR](https://github.com/tidalcycles/strudel/pull/1304)) +- theme improvements + +## breaking changes + +- [breaking change] Sample signals from query onset, rather than midpoint by @yaxu in https://github.com/tidalcycles/strudel/pull/1278 +- change behaviour of polymeter, and remove polymeterSteps by @yaxu in https://github.com/tidalcycles/strudel/pull/1302 +- Polish, rename, and document stepwise functions by @yaxu in https://github.com/tidalcycles/strudel/pull/1262 + +### superdough + +- feat: Create Pulse Oscillator with variable PWM by @daslyfe in https://github.com/tidalcycles/strudel/pull/1304 +- add num samples (edited numbers) by @yaxu in https://github.com/tidalcycles/strudel/pull/1309 +- Add num samples from 0 up to 20 by @yaxu in https://github.com/tidalcycles/strudel/pull/1310 +- feat: add max polyphony feature for superdough by @daslyfe in https://github.com/tidalcycles/strudel/pull/1317 + +### docs + +- doc: visual functions + refactor onPaint by @felixroos in https://github.com/tidalcycles/strudel/pull/1125 +- Labeled statements doc by @felixroos in https://github.com/tidalcycles/strudel/pull/1126 +- Correct spelling mistakes by @EdwardBetts in https://github.com/tidalcycles/strudel/pull/1183 +- remove redundant example for cat, update snapshot by @kdiab in https://github.com/tidalcycles/strudel/pull/1189 +- chore: Edit run locally instructions in README.md by @ChinoUkaegbu in https://github.com/tidalcycles/strudel/pull/1206 +- suggested changes to voicings.mdx by @bwagner in https://github.com/tidalcycles/strudel/pull/1231 +- Documentation for all/each, and bugfix for each by @yaxu in https://github.com/tidalcycles/strudel/pull/1233 +- Update documentation for param value modification by @gillespi314 in https://github.com/tidalcycles/strudel/pull/1238 +- fix docs for beat function by @daslyfe in https://github.com/tidalcycles/strudel/pull/1248 +- understand voicings page by @felixroos in https://github.com/tidalcycles/strudel/pull/1230 +- add reference package by @felixroos in https://github.com/tidalcycles/strudel/pull/1252 +- Stepwise documentation tweaks, with mridangam samples by @yaxu in https://github.com/tidalcycles/strudel/pull/1275 +- showcase tweaks by @yaxu in https://github.com/tidalcycles/strudel/pull/1291 +- Signpost licenses for source code and samples a bit more, ref #1277 by @yaxu in https://github.com/tidalcycles/strudel/pull/1289 +- Fix misplaced ending sentence by @makmanalp in https://github.com/tidalcycles/strudel/pull/1296 +- Fix typo pattnr by @ReneNyffenegger in https://github.com/tidalcycles/strudel/pull/1316 +- update docs to reflect import sounds tab change by @hpunq in https://github.com/tidalcycles/strudel/pull/1332 + +### ui improvements + +- Udels (MultiFrame Strudel) Revisited by @daslyfe in https://github.com/tidalcycles/strudel/pull/1132 +- Create audio target selector for OSC/Superdirt by @daslyfe in https://github.com/tidalcycles/strudel/pull/1160 +- Add a search bar to the REPL Reference tab by @netux in https://github.com/tidalcycles/strudel/pull/1165 +- Adding search bar (soundtab.jsx) by @Bubobubobubobubo in https://github.com/tidalcycles/strudel/pull/1185 +- add 2 new ui settings by @felixroos in https://github.com/tidalcycles/strudel/pull/1200 +- Theme glowup by @felixroos in https://github.com/tidalcycles/strudel/pull/1268 +- Create Pattern Page Pagination by @daslyfe in https://github.com/tidalcycles/strudel/pull/1287 +- feat: Theme improvements by @daslyfe in https://github.com/tidalcycles/strudel/pull/1295 +- feat: new themes + theme improvements by @daslyfe in https://github.com/tidalcycles/strudel/pull/1326 +- Add new "import-sounds" tab with explanation on folder import by @hpunq in https://github.com/tidalcycles/strudel/pull/1329 +- Add Icon to import sample button by @daslyfe in https://github.com/tidalcycles/strudel/pull/1331 +- better spacing in zen mode by @felixroos in https://github.com/tidalcycles/strudel/pull/1147 +- Screenreader improvements by @yaxu in https://github.com/tidalcycles/strudel/pull/1158 +- colorize console + tweak header by @felixroos in https://github.com/tidalcycles/strudel/pull/1203 +- Menu Panel Improvements! by @daslyfe in https://github.com/tidalcycles/strudel/pull/1193 +- Make panel hover behavior optional by @daslyfe in https://github.com/tidalcycles/strudel/pull/1199 +- REPL: solo and sync configuration by @bthj in https://github.com/tidalcycles/strudel/pull/1214 +- enhancement: make error messages easier to read by @daslyfe in https://github.com/tidalcycles/strudel/pull/1315 + +### mqtt + +- MQTT support by @yaxu in https://github.com/tidalcycles/strudel/pull/1224 +- MQTT - if password isn't provided, prompt for one by @yaxu in https://github.com/tidalcycles/strudel/pull/1249 +- MQTT - support adding hap duration and cps metadata to JSON messages by @yaxu in https://github.com/tidalcycles/strudel/pull/1279 +- make mqtt topic patternable by @yaxu in https://github.com/tidalcycles/strudel/pull/1280 +- Bugfix: update mqtt connections dictionary by @yaxu in https://github.com/tidalcycles/strudel/pull/1281 +- mqtt bugfix - connection check by @yaxu in https://github.com/tidalcycles/strudel/pull/1282 + +### new functions + +- Add scramble and shuffle by @yaxu in https://github.com/tidalcycles/strudel/pull/1167 +- polyJoin by @yaxu in https://github.com/tidalcycles/strudel/pull/1168 +- Add seqPLoop from Tidal by @yaxu in https://github.com/tidalcycles/strudel/pull/1182 +- add filter + filterWhen + within by @felixroos in https://github.com/tidalcycles/strudel/pull/1039 +- Add bite function by @yaxu in https://github.com/tidalcycles/strudel/pull/1187 +- markcss by @felixroos in https://github.com/tidalcycles/strudel/pull/1202 +- "beat" function for "step sequencer" style rhythm notation by @daslyfe in https://github.com/tidalcycles/strudel/pull/1237 +- Add s_zip for 'cat'-ing patterns together step-by-step, bugfix `steps` by @yaxu in https://github.com/tidalcycles/strudel/pull/1208 +- "stretch" function (phase vocoder) by @daslyfe in https://github.com/tidalcycles/strudel/pull/1130 +- add basic spectrum function by @felixroos in https://github.com/tidalcycles/strudel/pull/1213 +- Add onKey function for custom key commands for patterns by @daslyfe in https://github.com/tidalcycles/strudel/pull/1235 +- Add binary and binaryN by @heerman in https://github.com/tidalcycles/strudel/pull/1226 +- midimaps by @felixroos in https://github.com/tidalcycles/strudel/pull/1274 +- small feat: Add alias for segment and ribbon by @daslyfe in https://github.com/tidalcycles/strudel/pull/1314 +- feat: Create scrub function for scrubbing an audio file by @daslyfe in https://github.com/tidalcycles/strudel/pull/1321 +- feat: Improve gain curve by @daslyfe in https://github.com/tidalcycles/strudel/pull/1318 +- Chop chop by @yaxu in https://github.com/tidalcycles/strudel/pull/1078 + +### more + +- Make `all()` post-stack again, and add `each()` for pre-stack by @yaxu in https://github.com/tidalcycles/strudel/pull/1229 +- Add stepBind, and some toplevel aliases for binds and withValue by @yaxu in https://github.com/tidalcycles/strudel/pull/1241 +- Make cps patternable by @eefano in https://github.com/tidalcycles/strudel/pull/1001 +- Allow wchooseCycles probabilities to be patterned by @yaxu in https://github.com/tidalcycles/strudel/pull/1292 +- @strudel/sampler improvements by @felixroos in https://github.com/tidalcycles/strudel/pull/1288 + +### refactor + +- expose comment commands by @felixroos in https://github.com/tidalcycles/strudel/pull/1136 +- containerize/seperate out boolean checks for repl types/Repl logic into bespoke components. by @daslyfe in https://github.com/tidalcycles/strudel/pull/1163 +- Improve + simplify neocyclist timing by @daslyfe in https://github.com/tidalcycles/strudel/pull/1164 +- Make phaser control consistent with superdirt by @daslyfe in https://github.com/tidalcycles/strudel/pull/1178 +- Revert "Make phaser control consistent with superdirt" by @daslyfe in https://github.com/tidalcycles/strudel/pull/1179 +- make phaser control match superdirt by @daslyfe in https://github.com/tidalcycles/strudel/pull/1180 +- refactor sampler by @felixroos in https://github.com/tidalcycles/strudel/pull/1101 +- update lockfile + minor versions by @felixroos in https://github.com/tidalcycles/strudel/pull/1198 +- Preserve tactus for 'degrade' and friends, and tidy up 'pick' and friends by @yaxu in https://github.com/tidalcycles/strudel/pull/1205 +- Apply `all` function to individual patterns rather than final stack by @yaxu in https://github.com/tidalcycles/strudel/pull/1209 +- Revert "Fix sometimes" by @yaxu in https://github.com/tidalcycles/strudel/pull/1267 +- patchday by @felixroos in https://github.com/tidalcycles/strudel/pull/1264 +- Rename repeat back to extend by @yaxu in https://github.com/tidalcycles/strudel/pull/1285 +- Send delta in OSC message in seconds, to match tidal/superdirt by @yaxu in https://github.com/tidalcycles/strudel/pull/1323 + +### fixes + +- Fix clock worker dependency path in module builds by @matthewkaney in https://github.com/tidalcycles/strudel/pull/1129 +- Fix bug in Fraction.lcm by @yaxu in https://github.com/tidalcycles/strudel/pull/1133 +- Fix tactus marking in mininotation by @yaxu in https://github.com/tidalcycles/strudel/pull/1144 +- Fix loopAt tactus by @yaxu in https://github.com/tidalcycles/strudel/pull/1145 +- Fix OSC clock jitter by @daslyfe in https://github.com/tidalcycles/strudel/pull/1157 +- [CORS HOTFIX] by @daslyfe in https://github.com/tidalcycles/strudel/pull/1162 +- Fixes fit so it works after a chop or slice by @yaxu in https://github.com/tidalcycles/strudel/pull/1171 +- fix sample speed when using splice and fit with superdirt by @daslyfe in https://github.com/tidalcycles/strudel/pull/1172 +- handle midin device not found error by @felixroos in https://github.com/tidalcycles/strudel/pull/1146 +- Fix serial timing by @yaxu in https://github.com/tidalcycles/strudel/pull/1188 +- Fix regression for d1, p1, p(n) by @yaxu in https://github.com/tidalcycles/strudel/pull/1227 +- Fix sometimes by @yaxu in https://github.com/tidalcycles/strudel/pull/1243 +- Fix sf2 timing by @felixroos in https://github.com/tidalcycles/strudel/pull/1272 +- Fix "squeezejoin" and functions using it, including "bite" by @yaxu in https://github.com/tidalcycles/strudel/pull/1286 +- Fixes inverted triangle wave by renaming it to "itri", making non-inverted "tri" by @yaxu in https://github.com/tidalcycles/strudel/pull/1283 +- Hotfix: prevent undefined pattern code from crashing strudel on load by @daslyfe in https://github.com/tidalcycles/strudel/pull/1297 +- Fix test error #1297 by @nkymut in https://github.com/tidalcycles/strudel/pull/1298 +- bugfix zoom stepcount by @yaxu in https://github.com/tidalcycles/strudel/pull/1301 +- bugfix: Allow single param to be used in the as function by @daslyfe in https://github.com/tidalcycles/strudel/pull/1312 +- fix: replace empty spaces in registered sound keys by @daslyfe in https://github.com/tidalcycles/strudel/pull/1319 +- FIX: Multichannel Audio by @daslyfe in https://github.com/tidalcycles/strudel/pull/1322 +- fix: udels header by @daslyfe in https://github.com/tidalcycles/strudel/pull/1325 +- fix: disable astro toolbar by default by @daslyfe in https://github.com/tidalcycles/strudel/pull/1324 +- FIX: sound import order by @daslyfe in https://github.com/tidalcycles/strudel/pull/1333` + +## New Contributors + +- @EdwardBetts made their first contribution in https://github.com/tidalcycles/strudel/pull/1183 +- @netux made their first contribution in https://github.com/tidalcycles/strudel/pull/1165 +- @kdiab made their first contribution in https://github.com/tidalcycles/strudel/pull/1189 + +**Full Changelog**: https://github.com/tidalcycles/strudel/compare/v1.1.0...v1.1.1 + +## packages + +- @strudel/codemirror@1.2.0 +- @strudel/core@1.2.0 +- @strudel/csound@1.2.0 +- @strudel/draw@1.2.0 +- @strudel/gamepad@1.2.0 +- @strudel/hydra@1.2.0 +- @strudel/midi@1.2.0 +- @strudel/mini@1.2.0 +- @strudel/motion@1.2.0 +- @strudel/mqtt@1.2.0 +- @strudel/osc@1.2.0 +- @strudel/reference@1.2.0 +- @strudel/repl@1.2.0 +- @strudel/sampler@0.2.0 +- @strudel/serial@1.2.0 +- @strudel/soundfonts@1.2.0 +- superdough@1.2.0 +- @strudel/tonal@1.2.0 +- @strudel/transpiler@1.2.0 +- @strudel/web@1.2.0 +- @strudel/webaudio@1.2.0 +- @strudel/xen@1.2.0 diff --git a/website/src/content/blog/year-2.mdx b/website/src/content/blog/year-2.mdx index 38e39bbf..1a33c673 100644 --- a/website/src/content/blog/year-2.mdx +++ b/website/src/content/blog/year-2.mdx @@ -216,9 +216,9 @@ Here is a recording of the first session we organized over the discord server: The midi integration has gotten a few new features: -- [clock out](https://github.com/tidalcycles/strudel/pull/710) to sync your midi devices / DAW to the strudel clock (better doc coming soon) +- [clock out](https://codeberg.org/uzu/strudel/pulls/710) to sync your midi devices / DAW to the strudel clock (better doc coming soon) - [cc output](https://strudel.cc/learn/input-output/#ccn--ccv) to send cc values to your gear -- [cc input](https://github.com/tidalcycles/strudel/pull/699) to control strudel via MIDI (better doc coming soon) +- [cc input](https://codeberg.org/uzu/strudel/pulls/699) to control strudel via MIDI (better doc coming soon) Here is a little demo of me fiddling with a midi controller, changing a piano pattern: @@ -228,7 +228,7 @@ Here is a little demo of me fiddling with a midi controller, changing a piano pa - You can now run [hydra inside strudel](https://strudel.cc/learn/hydra/) + you can even run strudel in [hydra](https://hydra.ojack.xyz), thanks to [Olivia Jack](https://ojack.xyz/) and [Ámbar Tenorio Fornés](https://atenor.io/)! Read more [here](https://alpaca.pubpub.org/pub/b7hwrjfk/release/2?readingCollection=1def0192) - There is now a [VSCode Plugin](https://marketplace.visualstudio.com/items?itemName=roipoussiere.tidal-strudel) thanks to [roipoussiere](https://github.com/roipoussiere)! It allows you run patterns from a `.strudel` file inside VSCode. -- Strudel can now be downloaded as a desktop app, thanks to [vasilymilovidov](https://github.com/vasilymilovidov) who has wrapped the REPL with [tauri](https://tauri.app/). You can download it [on the releases page](https://github.com/tidalcycles/strudel/releases) (scroll down to Assets). The performance is not optimal on MacOS and Linux, which is why it is still considered experimental +- Strudel can now be downloaded as a desktop app, thanks to [vasilymilovidov](https://github.com/vasilymilovidov) who has wrapped the REPL with [tauri](https://tauri.app/). You can download it [on the releases page](https://codeberg.org/uzu/strudel/releases) (scroll down to Assets). The performance is not optimal on MacOS and Linux, which is why it is still considered experimental ## Stats diff --git a/website/src/cx.mjs b/website/src/cx.mjs index 4e4aea08..d8ff9eda 100644 --- a/website/src/cx.mjs +++ b/website/src/cx.mjs @@ -1,6 +1,6 @@ /* cx.js - -Copyright (C) 2022 Strudel contributors - see +Copyright (C) 2022 Strudel contributors - see 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 . */ diff --git a/website/src/docs/MiniRepl.jsx b/website/src/docs/MiniRepl.jsx index cadebcb3..09ebb769 100644 --- a/website/src/docs/MiniRepl.jsx +++ b/website/src/docs/MiniRepl.jsx @@ -1,20 +1,20 @@ import { useState, useRef, useCallback, useMemo, useEffect } from 'react'; import { Icon } from './Icon'; import { silence, noteToMidi, _mod } from '@strudel/core'; -import { getPunchcardPainter } from '@strudel/draw'; +import { getDrawContext, getPunchcardPainter } from '@strudel/draw'; 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({ @@ -28,24 +28,30 @@ export function MiniRepl({ claviature, claviatureLabels, maxHeight, + autodraw, + drawTime, + mondo = false, }) { const code = tunes ? tunes[0] : tune; const id = useMemo(() => s4(), []); - const canvasId = useMemo(() => `canvas-${id}`, [id]); - const shouldDraw = !!punchcard || !!claviature; const shouldShowCanvas = !!punchcard; - const drawTime = punchcard ? [0, 4] : [0, 0]; + const canvasId = shouldShowCanvas ? useMemo(() => `canvas-${id}`, [id]) : null; + autodraw = !!punchcard || !!claviature || !!autodraw; + drawTime = (drawTime ?? punchcard) ? [0, 4] : [-2, 2]; + if (claviature) { + drawTime = [0, 0]; + } const [activeNotes, setActiveNotes] = useState([]); - const init = useCallback(({ code, shouldDraw }) => { - const drawContext = shouldDraw ? document.querySelector('#' + canvasId)?.getContext('2d') : null; + const init = useCallback(({ code, autodraw }) => { + const drawContext = canvasId ? document.querySelector('#' + canvasId)?.getContext('2d') : getDrawContext(); const editor = new StrudelMirror({ id, defaultOutput: webaudioOutput, getTime: () => getAudioContext().currentTime, transpiler, - autodraw: !!shouldDraw, + autodraw, root: containerRef.current, initialCode: '// LOADING', pattern: silence, @@ -56,7 +62,7 @@ export function MiniRepl({ pat = pat.onTrigger(onTrigger, false); } if (claviature) { - editor?.painters.push((ctx, time, haps, drawTime) => { + pat = pat.onPaint((ctx, time, haps, drawTime) => { const active = haps .map((hap) => hap.value.note) .filter(Boolean) @@ -65,14 +71,22 @@ export function MiniRepl({ }); } if (punchcard) { - editor?.painters.push(getPunchcardPainter({ labels: !!punchcardLabels })); + pat = pat.punchcard({ labels: !!punchcardLabels }); } return pat; }, - prebake: async () => Promise.all([modulesLoading, prebaked, audioLoading]), + prebake: async () => Promise.all([modulesLoading, prebaked]), onUpdateState: (state) => { setReplState({ ...state }); }, + onToggle: (playing) => { + if (!playing) { + // clearHydra(); // TBD: doesn't work with multiple MiniRepl's on a page + } + }, + beforeStart: () => audioReady, + afterEval: ({ code }) => setVersionDefaultsFrom(code), + mondo, }); // init settings editor.setCode(code); @@ -107,6 +121,7 @@ export function MiniRepl({ 'cursor-pointer w-16 flex items-center justify-center p-1 border-r border-lineHighlight text-foreground bg-lineHighlight hover:bg-background', started ? 'animate-pulse' : '', )} + aria-label={started ? 'stop' : 'play'} onClick={() => editorRef.current?.toggle()} > @@ -116,6 +131,7 @@ export function MiniRepl({ 'w-16 flex items-center justify-center p-1 text-foreground border-lineHighlight bg-lineHighlight', isDirty ? 'text-foreground hover:bg-background cursor-pointer' : 'opacity-50 cursor-not-allowed', )} + aria-label="update" onClick={() => editorRef.current?.evaluate()} > @@ -127,6 +143,7 @@ export function MiniRepl({ className={ 'cursor-pointer w-16 flex items-center justify-center p-1 border-r border-lineHighlight text-foreground bg-lineHighlight hover:bg-background' } + aria-label="previous example" onClick={() => changeTune(tuneIndex - 1)} >
@@ -137,6 +154,7 @@ export function MiniRepl({ className={ 'cursor-pointer w-16 flex items-center justify-center p-1 border-r border-lineHighlight text-foreground bg-lineHighlight hover:bg-background' } + aria-label="next example" onClick={() => changeTune(tuneIndex + 1)} > @@ -150,7 +168,7 @@ export function MiniRepl({ ref={(el) => { if (!editorRef.current) { containerRef.current = el; - init({ code, shouldDraw }); + init({ code, autodraw }); } }} >
diff --git a/website/src/env.d.ts b/website/src/env.d.ts index bd7aa94b..4138c53f 100644 --- a/website/src/env.d.ts +++ b/website/src/env.d.ts @@ -1,6 +1,4 @@ /// /// -/// -/// declare module 'date-fns'; 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/layouts/MainLayout.astro b/website/src/layouts/MainLayout.astro index 49952a7e..c6f6653c 100644 --- a/website/src/layouts/MainLayout.astro +++ b/website/src/layouts/MainLayout.astro @@ -30,7 +30,7 @@ const githubEditUrl = `${CONFIG.GITHUB_EDIT_URL}/${currentFile}`; - +
diff --git a/website/src/metadata_parser.js b/website/src/metadata_parser.js index 6a92a8a6..fab943d6 100644 --- a/website/src/metadata_parser.js +++ b/website/src/metadata_parser.js @@ -1,6 +1,10 @@ const ALLOW_MANY = ['by', 'url', 'genre', 'license']; export function getMetadata(raw_code) { + if (raw_code == null) { + console.error('could not extract metadata from missing pattern code'); + raw_code = ''; + } const comment_regexp = /\/\*([\s\S]*?)\*\/|\/\/(.*)$/gm; const comments = [...raw_code.matchAll(comment_regexp)].map((c) => (c[1] || c[2] || '').trim()); const tags = {}; diff --git a/website/src/pages/de/workshop/first-sounds.mdx b/website/src/pages/de/workshop/first-sounds.mdx index e289e724..3695843b 100644 --- a/website/src/pages/de/workshop/first-sounds.mdx +++ b/website/src/pages/de/workshop/first-sounds.mdx @@ -168,9 +168,14 @@ Korrekt, der echte Vorteil dieser Schreibweise zeigt sich wenn du Elemente entfe -**Tempo ändern mit `cpm`** +**Tempo ändern mit `setcpm`** -*8").cpm(90/4)`} punchcard /> +*8")`} + punchcard +/> @@ -233,8 +238,9 @@ Bolero: @@ -313,18 +319,23 @@ Das haben wir bisher gelernt: Die mit Apostrophen umgebene Mini-Notation benutzt man normalerweise in einer sogenannten Funktion. Die folgenden Funktionen haben wir bereits gesehen: -| Name | Description | Example | -| ----- | -------------------------------------- | ----------------------------------------------------------------------- | -| sound | Spielt den Sound mit dem Namen | | -| bank | Wählt die Soundbank / Drum Machine | | -| cpm | Tempo in **C**ycles **p**ro **M**inute | | -| n | Sample Nummer | | +| Name | Description | Example | +| ------ | -------------------------------------- | ----------------------------------------------------------------------- | +| sound | Spielt den Sound mit dem Namen | | +| bank | Wählt die Soundbank / Drum Machine | | +| setcpm | Tempo in **C**ycles **p**ro **M**inute | | +| n | Sample Nummer | | ## Beispiele **Einfacher Rock Beat** - + **Klassischer House** @@ -339,7 +350,12 @@ Bestimmte Drum Patterns werden oft genreübergreifend wiederverwendet. We Will Rock you - + **Yellow Magic Orchestra - Firecracker** @@ -354,12 +370,13 @@ We Will Rock you @@ -367,12 +384,13 @@ We Will Rock you @@ -380,11 +398,11 @@ We Will Rock you 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/de/workshop/recap.mdx b/website/src/pages/de/workshop/recap.mdx index 14ef6b25..ec279c08 100644 --- a/website/src/pages/de/workshop/recap.mdx +++ b/website/src/pages/de/workshop/recap.mdx @@ -56,13 +56,13 @@ Diese Seite ist eine Auflistung aller im Workshop vorgestellten Funktionen. ## Pattern-Effekte -| Name | Beschreibung | Beispiel | -| ---- | --------------------------------- | ----------------------------------------------------------------------------------- | -| cpm | Tempo in Cycles pro Minute | | -| fast | schneller | | -| slow | langsamer | | -| rev | rückwärts | | -| jux | einen Stereo-Kanal modifizieren | | -| add | addiert Zahlen oder Noten | ")).scale("C:minor")`} /> | -| ply | jedes Element schneller machen | ")`} /> | -| off | verzögert eine modifizierte Kopie | x.speed(2))`} /> | +| Name | Beschreibung | Beispiel | +| ------ | --------------------------------- | ----------------------------------------------------------------------------------- | +| setcpm | Tempo in Cycles pro Minute | | +| fast | schneller | | +| slow | langsamer | | +| rev | rückwärts | | +| jux | einen Stereo-Kanal modifizieren | | +| add | addiert Zahlen oder Noten | ")).scale("C:minor")`} /> | +| ply | jedes Element schneller machen | ")`} /> | +| off | verzögert eine modifizierte Kopie | x.speed(2))`} /> | diff --git a/website/src/pages/functions/intro.mdx b/website/src/pages/functions/intro.mdx index 412c086a..f3e8bec4 100644 --- a/website/src/pages/functions/intro.mdx +++ b/website/src/pages/functions/intro.mdx @@ -23,7 +23,7 @@ is equivalent to this Pattern without Mini Notation: Similarly, there is an equivalent function for every aspect of the mini notation. Which representation to use is a matter of context. As a rule of thumb, functions -are better suited in a larger context, while mini notation is more practical for individiual rhythms. +are better suited in a larger context, while mini notation is more practical for individual rhythms. ## Limits of Mini Notation diff --git a/website/src/pages/functions/value-modifiers.mdx b/website/src/pages/functions/value-modifiers.mdx index 94372e75..e290eb4e 100644 --- a/website/src/pages/functions/value-modifiers.mdx +++ b/website/src/pages/functions/value-modifiers.mdx @@ -82,18 +82,7 @@ To modify a parameter value, you can either: ")).log()`} /> -- Modify _all_ numeral params: - - ").log()`} /> - -Which of these 3 ways to use strongly depends on the context! -Note that the order of chaining param functions also matters! -In the last example, the `room` value would not have changed if it was applied later: - -").room(.1).log()`} /> - -This shows how the execution of the chained functions goes from left to right. -In this case, the `.add` will only modify what's on the left side. +Remember the execution of the chained functions goes from left to right. # Operators @@ -143,6 +132,10 @@ This group of functions allows to modify the value of events. +## as + + + # Custom Parameters You can also create your own parameters: diff --git a/website/src/pages/index.astro b/website/src/pages/index.astro index 760cf448..29cf2fad 100644 --- a/website/src/pages/index.astro +++ b/website/src/pages/index.astro @@ -3,12 +3,12 @@ import HeadCommon from '../components/HeadCommon.astro'; import { Repl } from '../repl/Repl'; --- - + Strudel REPL - + diff --git a/website/src/pages/learn/devicemotion.mdx b/website/src/pages/learn/devicemotion.mdx new file mode 100644 index 00000000..a41b4b97 --- /dev/null +++ b/website/src/pages/learn/devicemotion.mdx @@ -0,0 +1,10 @@ +--- +title: Device Motion +layout: ../../layouts/MainLayout.astro +--- + +import { MiniRepl } from '../../docs/MiniRepl'; +import { JsDoc } from '../../docs/JsDoc'; +import DeviceMotion from '@strudel/motion/docs/devicemotion.mdx'; + + diff --git a/website/src/pages/learn/effects.mdx b/website/src/pages/learn/effects.mdx index 03ef6ef3..2f7eaa7f 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`: @@ -293,8 +293,6 @@ global effects use the same chain for all events of the same orbit: -Next, we'll look at strudel's support for [Csound](/learn/csound). - ## Phaser ### phaser @@ -312,3 +310,5 @@ Next, we'll look at strudel's support for [Csound](/learn/csound). ### phasersweep + +Next, we'll look at input / output via [MIDI, OSC and other methods](/learn/input-output). diff --git a/website/src/pages/learn/factories.mdx b/website/src/pages/learn/factories.mdx index 0d93fb21..ab77c102 100644 --- a/website/src/pages/learn/factories.mdx +++ b/website/src/pages/learn/factories.mdx @@ -16,7 +16,7 @@ These are the equivalents used by the Mini Notation: | `cat(x, y)` | `""` | | `seq(x, y)` | `"x y"` | | `stack(x, y)` | `"x,y"` | -| `timeCat([3,x],[2,y])` | `"x@3 y@2"` | +| `stepcat([3,x],[2,y])` | `"x@3 y@2"` | | `polymeter([a, b, c], [x, y])` | `"{a b c, x y}"` | | `polymeterSteps(2, x, y, z)` | `"{x y z}%2"` | | `silence` | `"~"` | @@ -25,29 +25,17 @@ These are the equivalents used by the Mini Notation: -You can also use cat as a chained function like this: - - - ## seq -Or as a chained function: - - - ## stack -As a chained function: +## stepcat - - -## timeCat - - + ## arrange @@ -67,6 +55,14 @@ As a chained function: ## run - + + +## binary + + + +## binaryN + + After Pattern Constructors, let's see what [Time Modifiers](/learn/time-modifiers) are available. diff --git a/website/src/pages/learn/getting-started.mdx b/website/src/pages/learn/getting-started.mdx index d18a0560..b3348ccd 100644 --- a/website/src/pages/learn/getting-started.mdx +++ b/website/src/pages/learn/getting-started.mdx @@ -14,7 +14,7 @@ These pages will introduce you to [Strudel](https://strudel.cc/), a web-based [l # What is Strudel? -[Strudel](https://strudel.cc/) is a version of [Tidal Cycles](https://tidalcycles.org) written in [JavaScript](https://developer.mozilla.org/en-US/docs/Web/JavaScript), initiated by [Alex McLean](https://slab.org) and [Felix Roos](https://github.com/felixroos) in 2022. +[Strudel](https://strudel.cc/) is a version of [Tidal Cycles](https://tidalcycles.org) written in [JavaScript](https://developer.mozilla.org/en-US/docs/Web/JavaScript), initiated by [Alex McLean](https://slab.org) and [Felix Roos](https://froos.cc/) in 2022. Tidal Cycles, also known as Tidal, is a language for [algorithmic pattern](https://algorithmicpattern.org), and though it is most commonly used for [making music](https://tidalcycles.org/docs/showcase), it can be used for any kind of pattern making activity, including [weaving](https://www.youtube.com/watch?v=TfEmEsusXjU). Tidal was first implemented as a library written in the [Haskell](https://www.haskell.org/) functional programming language, and by itself it does not make any sound. @@ -81,7 +81,7 @@ s("bd,[~ ],hh*8") // drums Please note that this project is still in its experimental state. In the future, parts of it might change significantly. This tutorial is also far from complete. -You can contribute to it clicking 'Edit this page' in the top right, or by visiting the [Strudel GitHub page](https://github.com/tidalcycles/strudel/). +You can contribute to it clicking 'Edit this page' in the top right, or by visiting the [Strudel GitHub page](https://codeberg.org/uzu/strudel/). # What's next? diff --git a/website/src/pages/learn/hydra.mdx b/website/src/pages/learn/hydra.mdx index d7a692dd..2bf5fab4 100644 --- a/website/src/pages/learn/hydra.mdx +++ b/website/src/pages/learn/hydra.mdx @@ -90,11 +90,13 @@ src(s0).kaleid(H("<4 5 6>")) .modulateScale(osc(2,-0.25,1)) .out() // -stack( - s("bd*4,[hh:0:<.5 1>]*8,~ rim").bank("RolandTR909").speed(.9), - note("[>>]*3").s("sawtooth") - .room(.75).sometimes(add(note(12))).clip(.3) - .lpa(.05).lpenv(-4).lpf(2000).lpq(8).ftype('24db') -).fft(4) - .scope({pos:0,smear:.95})`} + +$: s("bd*4,[hh:0:<.5 1>]*8,~ rim").bank("RolandTR909").speed(.9) + +$: note("[>>]\*3").s("sawtooth") + +.room(.75).sometimes(add(note(12))).clip(.3) +.lpa(.05).lpenv(-4).lpf(2000).lpq(8).ftype('24db') + +all(x=>x.fft(4).scope({pos:0,smear:.95}))`} /> diff --git a/website/src/pages/learn/input-devices.mdx b/website/src/pages/learn/input-devices.mdx new file mode 100644 index 00000000..760ad719 --- /dev/null +++ b/website/src/pages/learn/input-devices.mdx @@ -0,0 +1,15 @@ +--- +title: Input Devices +layout: ../../layouts/MainLayout.astro +--- + +import { MiniRepl } from '../../docs/MiniRepl'; +import { JsDoc } from '../../docs/JsDoc'; + +import Gamepad from '@strudel/gamepad/docs/gamepad.mdx'; + +# Input Devices + +Strudel supports various input devices like Gamepads and MIDI controllers to manipulate patterns in real-time. + + diff --git a/website/src/pages/learn/input-output.mdx b/website/src/pages/learn/input-output.mdx index de44b4f9..0dd48b7d 100644 --- a/website/src/pages/learn/input-output.mdx +++ b/website/src/pages/learn/input-output.mdx @@ -1,42 +1,112 @@ --- -title: MIDI & OSC +title: MIDI, OSC & MQTT layout: ../../layouts/MainLayout.astro --- import { MiniRepl } from '../../docs/MiniRepl'; import { JsDoc } from '../../docs/JsDoc'; -# MIDI and OSC +# MIDI, OSC and MQTT -The default audio output of Strudel uses the [Web Audio API](https://developer.mozilla.org/en-US/docs/Web/API/Web_Audio_API). -It is also possible to use Strudel with MIDI and OSC / [SuperDirt](https://github.com/musikinformatik/SuperDirt/) instead. +Normally, Strudel is used to pattern sound, using its own '[web audio](https://developer.mozilla.org/en-US/docs/Web/API/Web_Audio_API)'-based synthesiser called [SuperDough](https://codeberg.org/uzu/strudel/src/branch/main/packages/superdough). -# MIDI API +It is also possible to pattern other things with Strudel, such as software and hardware synthesisers with MIDI, other software using Open Sound Control/OSC (including the [SuperDirt](https://github.com/musikinformatik/SuperDirt/) synthesiser commonly used with Strudel's sibling [TidalCycles](https://tidalcycles.org/)), or the MQTT 'internet of things' protocol. -Strudel also supports midi via [webmidi](https://npmjs.com/package/webmidi). +# MIDI -## midi(outputName?) +Strudel supports MIDI without any additional software (thanks to [webmidi](https://npmjs.com/package/webmidi)), just by adding methods to your pattern: + +## midiin(inputName?) + + + +## midi(outputName?,options?) Either connect a midi device or use the IAC Driver (Mac) or Midi Through Port (Linux) for internal midi messages. If no outputName is given, it uses the first midi output it finds. ".voicings('lefthand'), "").note() - .midi()`} + tune={` +$: chord("").voicing().midi('IAC Driver') +`} /> -In the console, you will see a log of the available MIDI devices as soon as you run the code, e.g. `Midi connected! Using "Midi Through Port-0".` +In the console, you will see a log of the available MIDI devices as soon as you run the code, +e.g. + +``` + `Midi connected! Using "Midi Through Port-0".` +``` + +The `.midi()` function accepts an options object with the following properties: + + + +
+Available Options + +| Option | Type | Default | Description | +| ------------ | ------------- | --------- | ---------------------------------------------------------------------- | +| isController | boolean | false | When true, disables sending note messages. Useful for MIDI controllers | +| latencyMs | number | 34 | Latency in milliseconds to align MIDI with audio engine | +| noteOffsetMs | number | 10 | Offset in milliseconds for note-off messages to prevent glitching | +| midichannel | number | 1 | Default MIDI channel (1-16) | +| velocity | number | 0.9 | Default note velocity (0-1) | +| gain | number | 1 | Default gain multiplier for velocity (0-1) | +| midimap | string | 'default' | Name of MIDI mapping to use for control changes | +| midiport | string/number | - | MIDI device name or index | + +
+ +### midiport(outputName) + +Selects the MIDI output device to use, pattern can be used to switch between devices. + +```javascript +$: midiport('IAC Driver'); +$: note('c a f e').midiport('<0 1 2 3>').midi(); +``` + + ## midichan(number) Selects the MIDI channel to use. If not used, `.midi` will use channel 1 by default. -## ccn && ccv +## midicmd(command) +`midicmd` sends MIDI system real-time messages to control timing and transport on MIDI devices. + +It supports the following commands: + +- `clock`/`midiClock` - Sends MIDI timing clock messages +- `start` - Sends MIDI start message +- `stop` - Sends MIDI stop message +- `continue` - Sends MIDI continue message + +// You can control the clock with a pattern and ensure it starts in sync when the repl begins. +// Note: It might act unexpectedly if MIDI isn't set up initially. + +/2").midi('IAC Driver') +)`} +/> + +## control, ccn && ccv + +- `control` sends MIDI control change messages to your MIDI device. - `ccn` sets the cc number. Depends on your synths midi mapping - `ccv` sets the cc value. normalized from 0 to 1. + + In the above snippet, `ccn` is set to 74, which is the filter cutoff for many synths. `ccv` is controlled by a saw pattern. @@ -45,26 +115,78 @@ But you can also control cc messages separately like this: -# SuperDirt API +Instead of setting `ccn` and `ccv` directly, you can also create mappings with `midimaps`: -In mainline tidal, the actual sound is generated via [SuperDirt](https://github.com/musikinformatik/SuperDirt/), which runs inside SuperCollider. -Strudel also supports using [SuperDirt](https://github.com/musikinformatik/SuperDirt/) as a backend, although it requires some developer tooling to run. +## midimaps + + + +## defaultmidimap + + + +## progNum (Program Change) + +`progNum` sends MIDI program change messages to switch between different presets/patches on your MIDI device. +Program change values should be numbers between 0 and 127. + +").midi() + +// Play notes while changing programs +note("c3 e3 g3").progNum("<0 1 2>").midi()`} /> + +Program change messages are useful for switching between different instrument sounds or presets during a performance. +The exact sound that each program number maps to depends on your MIDI device's configuration. + +## sysex, sysexid && sysexdata (System Exclusive Message) + +`sysex` sends MIDI System Exclusive (SysEx) messages to your MIDI device. +ysEx messages are device-specific commands that allow deeper control over synthesizer parameters. +The value should be an array of numbers between 0-255 representing the SysEx data bytes. + + + +The exact format of SysEx messages depends on your MIDI device's specification. +Consult your device's MIDI implementation guide for details on supported SysEx messages. + +## midibend && miditouch + +`midibend` sets MIDI pitch bend (-1 - 1) +`miditouch` sets MIDI key after touch (0-1) + + + + + +# OSC/SuperDirt/StrudelDirt + +In TidalCycles, sound is usually generated using [SuperDirt](https://github.com/musikinformatik/SuperDirt/), which runs inside SuperCollider. Strudel also supports using SuperDirt, although it requires installing some additional software. + +There is also [StrudelDirt](https://github.com/daslyfe/StrudelDirt) which is SuperDirt with some optimisations for working with Strudel. (A longer term aim is to merge these optimisations back into mainline SuperDirt) ## Prequisites -Getting [SuperDirt](https://github.com/musikinformatik/SuperDirt/) to work with Strudel, you need to +To get SuperDirt to work with Strudel, you need to 1. install SuperCollider + sc3 plugins, see [Tidal Docs](https://tidalcycles.org/docs/) (Install Tidal) for more info. -2. install [node.js](https://nodejs.org/en/) -3. download [Strudel Repo](https://github.com/tidalcycles/strudel/) (or git clone, if you have git installed) -4. run `pnpm i` in the strudel directory -5. run `pnpm run osc` to start the osc server, which forwards OSC messages from Strudel REPL to SuperCollider +2. install SuperDirt, or the [StrudelDirt](https://github.com/daslyfe/StrudelDirt) fork which is optimised for use with Strudel +3. install [node.js](https://nodejs.org/en/) +4. download [Strudel Repo](https://codeberg.org/uzu/strudel/) (or git clone, if you have git installed) +5. run `pnpm i` in the strudel directory +6. run `pnpm run osc` to start the osc server, which forwards OSC messages from Strudel REPL to SuperCollider Now you're all set! @@ -79,18 +201,88 @@ Now you're all set! If you now hear sound, congratulations! If not, you can get help on the [#strudel channel in the TidalCycles discord](https://discord.com/invite/HGEdXmRkzT). +Note: if you have the 'Audio Engine Target' in settings set to 'OSC', you do not need to add .osc() to the end of your pattern. + ### Pattern.osc ## SuperDirt Params -The following functions can be used with [SuperDirt](https://github.com/musikinformatik/SuperDirt/): - -`s n note freq channel orbit cutoff resonance hcutoff hresonance bandf bandq djf vowel cut begin end loop fadeTime speed unitA gain amp accelerate crush coarse delay lock leslie lrate lsize pan panspan pansplay room size dry shape squiz waveloss attack decay octave detune tremolodepth` - Please refer to [Tidal Docs](https://tidalcycles.org/) for more info.
But can we use Strudel [offline](/learn/pwa)? + +# MQTT + +MQTT is a lightweight network protocol, designed for 'internet of things' devices. For use with strudel, you will +need access to an MQTT server known as a 'broker' configured to accept secure 'websocket' connections. You could +run one yourself (e.g. by running [mosquitto](https://mosquitto.org/)), although getting an SSL certificate that +your web browser will trust might be a bit tricky for those without systems administration experience. +Alternatively, you can use [a public broker](https://www.hivemq.com/mqtt/public-mqtt-broker/). + +Strudel does not yet support receiving messages over MQTT, only sending them. + +## Usage + +The following example shows how to send a pattern to an MQTT broker: + + + +Other software can then receive the messages. For example using the [mosquitto](https://mosquitto.org/) commandline client tools: + +``` + +> mosquitto_sub -h mqtt.eclipseprojects.io -p 1883 -t "/strudel-pattern" +> hello +> world +> hello +> world +> ... + +``` + +Control patterns will be encoded as JSON, for example: + + + +Will send messages like the following: + +``` + +{"s":"sax","speed":2} +{"s":"sax","speed":2} +{"s":"sax","speed":3} +{"s":"sax","speed":2} +... + +``` + +Libraries for receiving MQTT are available for many programming languages. + +``` + +``` diff --git a/website/src/pages/learn/metadata.mdx b/website/src/pages/learn/metadata.mdx index e8bb86df..61db16f0 100644 --- a/website/src/pages/learn/metadata.mdx +++ b/website/src/pages/learn/metadata.mdx @@ -18,8 +18,6 @@ You can optionally add some music metadata in your Strudel code, by using tags i Like other comments, those are ignored by Strudel, but it can be used by other tools to retrieve some information about the music. -It is for instance used by the [swatch tool](https://github.com/tidalcycles/strudel/tree/main/my-patterns) to display pattern titles in the [examples page](https://strudel.cc/examples/). - ## Alternative syntax You can also use comment blocks: diff --git a/website/src/pages/learn/mondo-notation.mdx b/website/src/pages/learn/mondo-notation.mdx new file mode 100644 index 00000000..3b00b990 --- /dev/null +++ b/website/src/pages/learn/mondo-notation.mdx @@ -0,0 +1,178 @@ +--- +title: Mondo Notation +layout: ../../layouts/MainLayout.astro +--- + +import { MiniRepl } from '../../docs/MiniRepl'; +import { JsDoc } from '../../docs/JsDoc'; + +# Mondo Notation + +"Mondo Notation" is a new kind of notation that is similar to [Mini Notation](/learn/mini-notation/), but with enough abilities to make it work as a standalone pattern language. +Here's an example: + + <8 16>) # *2 + # s "sine" # add (note [0 <12 24>]*2) + # dec(sine # range .2 2) + # room .5 + # lpf (sine/3 # range 120 400) + # lpenv (rand # range .5 4) + # lpq (perlin # range 5 12 # * 2) + # dist 1 # fm 4 # fmh 5.01 # fmdecay <.1 .2> + # postgain .6 # delay .1 # clip 5 + +$ s [bd bd bd bd] # bank tr909 # clip .5 + +# ply <1 [1 [2 4]]> + +$ s oh\*4 # press # bank tr909 # speed.8 + +# dec (<.02 .05>\*2 # add (saw/8 # range 0 1)) + +`} +/> + +## Mondo in the REPL + +For now, you can only use mondo in the repl like this: + + + +The rest of this site will only use the mondo notation itself. +In the future, the REPL might get a way to use mondo notation directly. + +## Calling Functions + +Compared to Mini Notation, the most notable feature of Mondo Notation is the ability to call functions using round brackets: + + + +The first element inside the brackets is the function name. In JS, this would look like: + + + +The outermost parens are not needed, so we can drop them: + + + +## Mini Notation Features + +Besides function calling with round parens, Mondo Notation has a lot in common with Mini Notation: + +### Brackets + +- `[]` for 1-cycle sequences +- `<>` for multi-cycle sequences +- `{}` for stepped sequences (more on that later) + +### Infix Operators + +- \* => [fast](/learn/time-modifiers/#fast) +- / => [slow](/learn/time-modifiers/#slow) +- ! => [extend](/learn/stepwise/#extend) +- @ => [expand](/learn/stepwise/#expand) +- % => [pace](/learn/stepwise/#pace) +- ? => [degradeBy](/learn/random-modifiers/#degradeby) (currently requires right operand) +- : => tail (creates a list) +- .. => range (between numbers) +- , => [stack](/learn/factories/#stack) +- | => [chooseIn](/learn/random-modifiers/#choose) + +### Example + +`} +/> + +## Chaining Functions + +Similar to how "." works in javascript (JS), we can chain functions calls with the "#" operator: + +*4 + # scale C4:minor + # jux rev + # dec .2 + # delay .5`} +/> + +Here's the same written in JS: + +*4") + .scale("C4:minor") + .jux(rev) + .dec(.2) + .delay(.5)`} +/> + +### Chaining Functions Locally + +A function can be applied to a single element by wrapping it in round parens: + + + +in this case, `delay .6` will only be applied to `cp`. compare this with the JS version: + + + +here we can see how much we can save when there's no boundary between mini notation and function calls! + +### Chaining Infix Operators + +Infix operators exist as regular functions, so they can be chained as well: + + + +In this case, the \*2 will be applied to the whole pattern. + +### Lambda Functions + +Some functions in strudel expect a function as input, for example: + +x.dec(.1))`} /> + +in mondo, the `x=>x.` can be shortened to: + + + +chaining works as expected: + + + +## Strings + +You can use "double quotes" and 'single quotes' to get a string: + + + +## Multiple Patterns + +The `$` sign can be used to separate multiple patterns: + + # voicing + # struct[x ~ ~ x ~ x ~ ~] # delay .5`} +/> + +The `$` sign is an alias for `,` so it will create a stack behind the scenes. diff --git a/website/src/pages/learn/samples.mdx b/website/src/pages/learn/samples.mdx index c2c166b3..bbe650cf 100644 --- a/website/src/pages/learn/samples.mdx +++ b/website/src/pages/learn/samples.mdx @@ -62,11 +62,11 @@ To see which sample names are available, open the `sounds` tab in the [REPL](htt Note that only the sample maps (mapping names to URLs) are loaded initially, while the audio samples themselves are not loaded until they are actually played. This behaviour of loading things only when they are needed is also called `lazy loading`. While it saves resources, it can also lead to sounds not being audible the first time they are triggered, because the sound is still loading. -[This might be fixed in the future](https://github.com/tidalcycles/strudel/issues/187) +[This might be fixed in the future](https://codeberg.org/uzu/strudel/issues/187) # Sound Banks -If we open the `sounds` tab and then `drum machines`, we can see that the drum samples are all prefixed with drum machine names: `RolandTR808_bd`, `RolandTR808_sd`, `RolandTR808_hh` etc.. +If we open the `sounds` tab and then `drum-machines`, we can see that the drum samples are all prefixed with drum machine names: `RolandTR808_bd`, `RolandTR808_sd`, `RolandTR808_hh` etc.. We _could_ use them like this: @@ -163,6 +163,21 @@ The last section could be written as: } ``` +Please note that browsers will often cache `strudel.json` on first load, and keep using the cached +version even if the orginal has been updated. If this bites you (for example while developing a new +sample pack), you can force the browser to download a new copy by i.e. changing capitalization of one +character in the URL, or adding a URL attribute, such as: + +```javascript +samples('https://raw.githubusercontent.com/tidalcycles/Dirt-Samples/master/strudel.json?version=2'); +``` + +that gets ignored by GitHub (but changes the URL, forcing the browser to reload every time we increase +the version number). + +It is also possible, of course, to just remove it from cache (deleting cache in browser Privacy settings, +or from the dev console if you're technically minded, or by using a cache deleting extension). + ## Github Shortcut Because loading samples from github is common, there is a shortcut: @@ -180,11 +195,12 @@ It assumes a `strudel.json` file to be present at the root of the repository: https://raw.githubusercontent.com////strudel.json ``` -## From Disk via "Import Sounds" +## From Disk via "Import Sounds Folder" If you don't want to upload your samples to the internet, you can also load them from your local disk. -Go to the `sounds` tab in the REPL and press "import sounds". -Then you can select a folder that contains audio files. The folder you select can also contain subfolders with audio files. +Go to the `sounds` tab in the REPL and open the `import-sounds` tab below the search bar. +Press the "import sounds folder" button and select a folder that contains audio files. +The folder you select can also contain subfolders with audio files. Example: ``` @@ -200,12 +216,13 @@ Example: ``` In the above example the folder `samples` contains 2 subfolders `swoop` and `smash`, which contain audio files. -If you select that `samples` folder, the `user` tab (next to the import sounds button) will then contain 2 new sounds: `swoop(3) smash(3)` +If you select that `samples` folder, the `user` tab (next to the `import-sounds` tab) will then contain 2 new sounds: `swoop(3) smash(3)` The individual samples can the be played normally like `s("swoop:0 swoop:1 smash:2")`. +The samples within each sound use zero-based indexing in alphabetical order. ## From Disk via @strudel/sampler -Instead of loading your samples into your browser with the "import sounds" button, you can also serve the samples from a local file server. +Instead of loading your samples into your browser with the "import sounds folder" button, you can also serve the samples from a local file server. The easiest way to do this is using [@strudel/sampler](https://www.npmjs.com/package/@strudel/sampler): ```sh @@ -245,15 +262,17 @@ We can also declare different samples for different regions of the keyboard: !2, g4 f4]>") - .s('moog').clip(1) - .gain(.5).cpm(60)`} +.s('moog').clip(1) +.gain(.5)`} /> The sampler will always pick the closest matching sample for the current note! @@ -268,11 +287,10 @@ With it, you can enter any sample name(s) to query from [freesound.org](https:// You can also generate artificial voice samples with any text, in multiple languages. @@ -282,10 +300,9 @@ Note that the language code and the gender parameters are optional and default t client:idle tune={`samples('shabda/speech:the_drum,forever') samples('shabda/speech/fr-FR/m:magnifique') -stack( - s("the_drum*2").chop(16).speed(rand.range(0.85,1.1)), - s("forever magnifique").slow(4).late(0.125) -)`} + +$: s("the_drum*2").chop(16).speed(rand.range(0.85,1.1)) +$: s("forever magnifique").slow(4).late(0.125)`} /> # Sampler Effects 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/learn/stepwise.mdx b/website/src/pages/learn/stepwise.mdx new file mode 100644 index 00000000..e632ee7e --- /dev/null +++ b/website/src/pages/learn/stepwise.mdx @@ -0,0 +1,133 @@ +--- +title: Stepwise patterning +layout: ../../layouts/MainLayout.astro +--- + +import { MiniRepl } from '../../docs/MiniRepl'; +import { JsDoc } from '../../docs/JsDoc'; + +# Stepwise patterning (experimental) + +This is a developing area of strudel, and behaviour might change or be renamed in future versions. Feedback and ideas are welcome! + +## Introduction + +Usually in strudel, the only reference point for most pattern transformations is the _cycle_. Now it is possible to also work with _steps_, via a growing range of functions. + +For example usually when you `fastcat` two patterns together, the cycles will be squashed into half a cycle each: + + + +With the new stepwise `stepcat` function, the steps of the two patterns will be evenly distributed across the cycle: + + + +By default, steps are counted according to the 'top level' in mini-notation. For example `"a [b c] d e"` has five events in it per cycle, but is counted as four steps, where `[b c]` is counted as a single step. + +However, you can mark a different metrical level to count steps relative to, using a `^` at the start of a sub-pattern. If we do this to the subpattern in our example: `"a [^b c] d e"`, then the pattern is now counted as having _eight_ steps. This is because 'b' and 'c' are each counted as single steps, and the events in the pattern are twice as long, and so counted as two steps each. + +## Pacing the steps + +Some stepwise functions don't appear to do very much on their own, for example these two examples of the `expand` function sound exactly the same despite being expanded by different amounts: + + + + + +The number of steps per cycle is being changed behind the scenes, but on its own, that doesn't do anything. You will hear a difference however, once you use another stepwise function with it, for example `stepcat`: + + + + + +You should be able to hear that `expand` increases the duration of the steps of the first subpattern, proportionally to the second one. + +You can also change the speed of a pattern to match a given number of steps per cycle, with the `pace` function: + + + + + +The first example has ten steps, and the second example has 18 steps, but are then both played a rate of 8 steps per cycle. + +The argument to `expand` can also be patterned, and will be treated in a stepwise fashion. This means that the patterns from the changing values in the argument will be `stepcat`ted together: + + + +This results in a dense pattern, because the different expanded versions are squashed into a single cycle. `pace` is again handy here for slowing down the pattern to a particular number of steps per cycle: + + + +Earlier versions of many of these functions had `s_` prefixes, and the `pace` function was previously known as `steps`. These still exist as aliases, but may have changed behaviour and will soon be removed. Please update your patterns! + +## Stepwise functions + +### pace + + + +### stepcat + + + +### stepalt + + + +### expand + + + +### contract + + + +### extend + + + +### take + + + +### drop + + + +### polymeter + + + +### shrink + + + +### grow + + + +### tour + + + +### zip + + diff --git a/website/src/pages/learn/strudel-vs-tidal.mdx b/website/src/pages/learn/strudel-vs-tidal.mdx index 0c7213c7..9c1cc6b7 100644 --- a/website/src/pages/learn/strudel-vs-tidal.mdx +++ b/website/src/pages/learn/strudel-vs-tidal.mdx @@ -79,7 +79,7 @@ Instead of `+` / `add`, you can use any of the available operators of the first ## Function Compatibility -[This issue](https://github.com/tidalcycles/strudel/issues/31) tracks which Tidal functions are implemented in Strudel. +[This issue](https://codeberg.org/uzu/strudel/issues/31) tracks which Tidal functions are implemented in Strudel. The list might not be 100% up to date and probably also misses some functions completely.. Feel encouraged to search the source code for a function you're looking for. If you find a function that's not on the list, please tell! @@ -89,7 +89,7 @@ If you find a function that's not on the list, please tell! As seen in the example, the `#` operator (shorthand for `|>`) is also just a function call in strudel. So `note "c5" # s "gtr"` becomes `note("c5").s('gtr')`. -[This file](https://github.com/tidalcycles/strudel/blob/main/packages/core/controls.mjs) lists all available control params. +[This file](https://codeberg.org/uzu/strudel/src/branch/main/packages/core/controls.mjs) lists all available control params. Note that not all of those work in the Webaudio Output of Strudel. If you find a tidal control that's not on the list, please tell! @@ -107,34 +107,19 @@ You can find a [list of available effects here](/learn/effects/). ### Sampler Strudel's sampler supports [a subset](/learn/samples) of Superdirt's sampler. -Also, samples are always loaded from a URL rather than from the disk, although [that might be possible in the future](https://github.com/tidalcycles/strudel/issues/118). +Also, samples are always loaded from a URL rather than from the disk, although [that might be possible in the future](https://codeberg.org/uzu/strudel/issues/118). ## Evaluation -The Strudel REPL does not support [block based evaluation](https://github.com/tidalcycles/strudel/issues/34) yet. -You can use the following "workaround" to create multiple patterns that can be turned on and off: +The Strudel REPL does not support [block based evaluation](https://codeberg.org/uzu/strudel/issues/34) yet. +You can use labeled statements and `_` to mute: -``` -let a = note("c a f e") + ## Tempo diff --git a/website/src/pages/learn/synths.mdx b/website/src/pages/learn/synths.mdx index 36385d54..21a9b917 100644 --- a/website/src/pages/learn/synths.mdx +++ b/website/src/pages/learn/synths.mdx @@ -18,7 +18,7 @@ The basic waveforms are `sine`, `sawtooth`, `square` and `triangle`, which can b client:idle tune={`note("c2 >".fast(2)) .sound("") -.scope()`} +._scope()`} /> If you don't set a `sound` but a `note` the default value for `sound` is `triangle`! @@ -28,23 +28,23 @@ If you don't set a `sound` but a `note` the default value for `sound` is `triang You can also use noise as a source by setting the waveform to: `white`, `pink` or `brown`. These are different flavours of noise, here written from hard to soft. -").scope()`} /> +")._scope()`} /> Here's a more musical example of how to use noise for hihats: *8") -.decay(.04).sustain(0).scope()`} +.decay(.04).sustain(0)._scope()`} /> Some amount of pink noise can also be added to any oscillator by using the `noise` paremeter: -").scope()`} /> +")._scope()`} /> You can also use the `crackle` type to play some subtle noise crackles. You can control noise amount by using the `density` parameter: -".slow(2)).scope()`} /> +".slow(2))._scope()`} /> ### Additive Synthesis @@ -55,7 +55,7 @@ To tame the harsh sound of the basic waveforms, we can set the `n` control to li tune={`note("c2 >".fast(2)) .sound("sawtooth") .n("<32 16 8 4>") -.scope()`} +._scope()`} /> When the `n` control is used on a basic waveform, it defines the number of harmonic partials the sound is getting. @@ -65,7 +65,7 @@ You can also set `n` directly in mini notation with `sound`: client:idle tune={`note("c2 >".fast(2)) .sound("sawtooth:<32 16 8 4>") -.scope()`} +._scope()`} /> Note for tidal users: `n` in tidal is synonymous to `note` for synths only. @@ -119,13 +119,14 @@ Any sample preceded by the `wt_` prefix will be loaded as a wavetable. This mean ") .n("<1 2 3 4 5 6 7 8 9 10>/2").room(0.5).size(0.9) .s('wt_flute').velocity(0.25).often(n => n.ply(2)) .release(0.125).decay("<0.1 0.25 0.3 0.4>").sustain(0) -.cutoff(2000).scope({}).cutoff("<1000 2000 4000>").fast(4)`} +.cutoff(2000).cutoff("<1000 2000 4000>").fast(4) +._scope() +`} /> ## ZZFX @@ -159,7 +160,7 @@ It has 20 parameters in total, here is a snippet that uses all: .tremolo(0) // 0-1 lfo volume modulation amount //.duration(.2) // overwrite strudel event duration //.gain(1) // change volume - .scope() // vizualise waveform (not zzfx related) + ._scope() // vizualise waveform (not zzfx related) `} /> diff --git a/website/src/pages/learn/tonal.mdx b/website/src/pages/learn/tonal.mdx index a5a02508..202b8481 100644 --- a/website/src/pages/learn/tonal.mdx +++ b/website/src/pages/learn/tonal.mdx @@ -55,20 +55,6 @@ Transposes notes inside the scale by the number of steps: .note()`} /> -### voicings(range?) - -Turns chord symbols into voicings, using the smoothest voice leading possible: - -".voicings('lefthand'), - "" -).note()`} -/> - -Note: This function might be removed, as `voicing` (without s) is a newer implementation. - ### rootNotes(octave = 2) Turns chord symbols into root notes of chords in given octave. diff --git a/website/src/pages/learn/visual-feedback.mdx b/website/src/pages/learn/visual-feedback.mdx new file mode 100644 index 00000000..35202ca6 --- /dev/null +++ b/website/src/pages/learn/visual-feedback.mdx @@ -0,0 +1,108 @@ +--- +title: Visual Feedback +layout: ../../layouts/MainLayout.astro +--- + +import { MiniRepl } from '../../docs/MiniRepl'; +import { JsDoc } from '../../docs/JsDoc'; + +# Visual Feedback + +There are several function that add visual feedback to your patterns. + +## Mini Notation Highlighting + +When you write mini notation with "double quotes" or \`backticks\`, the active parts of the mini notation will be highlighted: + +*8") +.scale("/4:minor:pentatonic") +.s("supersaw").lpf(300).lpenv("<4 3 2>\*4")`} +/> + +You can change the color as well, even pattern it: + +*8") +.scale("/4:minor:pentatonic") +.s("supersaw").lpf(300).lpenv("<4 3 2>*4") +.color("cyan magenta")`} +/> + +## Global vs Inline Visuals + +The following functions all come with in 2 variants. + +**Without prefix**: renders the visual to the background of the page: + + + +**With `_` prefix**: renders the visual inside the code. Allows for multiple visuals + + + +Here we see the 2 variants for `punchcard`. The same goes for all others below. +To improve readability the following demos will all use the inline variant. + +## Punchcard / Pianoroll + +These 2 functions render a pianoroll style visual. +The only difference between the 2 is that `pianoroll` will render the pattern directly, +while `punchcard` will also take the transformations into account that occur afterwards: + + + +Here, the `color` is still visible in the visual, even if it is applied after `_punchcard`. +On the contrary, the color is not visible when using `_pianoroll`: + + + +import Box from '@components/Box.astro'; + +
+ + + +`punchcard` is less resource intensive because it uses the same data as used for the mini notation highlighting. + + + +The visual can be customized by passing options. Those options are the same for both functions. + +What follows is the API doc of all the options you can pass: + + + +## Spiral + + + +## Scope + + + +## Pitchwheel + + + +## Spectrum + + + +## markcss + + 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/technical-manual/docs.mdx b/website/src/pages/technical-manual/docs.mdx index 386de6ad..3deba553 100644 --- a/website/src/pages/technical-manual/docs.mdx +++ b/website/src/pages/technical-manual/docs.mdx @@ -9,9 +9,9 @@ The docs page is built ontop of astro's [docs site](https://github.com/withastro ## Adding a new Docs Page -1. add a `.mdx` file in a path under `website/src/pages/`, e.g. [website/src/pages/learn/code.mdx](https://raw.githubusercontent.com/tidalcycles/strudel/main/website/src/pages/learn/code.mdx) will be available under https://strudel.cc/learn/code/ (or locally under `http://localhost:4321/learn/code/`) +1. add a `.mdx` file in a path under `website/src/pages/`, e.g. [website/src/pages/learn/code.mdx](https://codeberg.org/uzu/strudel/src/branch/main/website/src/pages/learn/code.mdx) will be available under https://strudel.cc/learn/code/ (or locally under `http://localhost:4321/learn/code/`) 2. make sure to copy the top part of another existing docs page. Adjust the title accordingly -3. To add a link to the sidebar, add a new entry to `SIDEBAR` to [`config.ts`](https://github.com/tidalcycles/strudel/blob/main/website/src/config.ts) +3. To add a link to the sidebar, add a new entry to `SIDEBAR` to [`config.ts`](https://codeberg.org/uzu/strudel/src/branch/main/website/src/config.ts) ## Using the Mini REPL diff --git a/website/src/pages/technical-manual/packages.mdx b/website/src/pages/technical-manual/packages.mdx index 9a067317..ef913900 100644 --- a/website/src/pages/technical-manual/packages.mdx +++ b/website/src/pages/technical-manual/packages.mdx @@ -7,7 +7,7 @@ import { MiniRepl } from '../../docs/MiniRepl'; # Strudel Packages -The [strudel repo](https://github.com/tidalcycles/strudel) is organized as a monorepo, containing multiple npm packages. +The [strudel repo](https://codeberg.org/uzu/strudel) is organized as a monorepo, containing multiple npm packages. The purpose of the multiple packages is to - organize the codebase into more modular, encapsulated pieces @@ -23,8 +23,8 @@ Here is an overview of all the packages: These packages give you a batteries-included point of getting started, and most likely the thing you'd want to use in your project: -- [repl](https://github.com/tidalcycles/strudel/tree/main/packages/repl): The Strudel REPL as a web component. -- [web](https://github.com/tidalcycles/strudel/tree/main/packages/web): Strudel library for the browser, without UI. +- [repl](https://codeberg.org/uzu/strudel/src/branch/main/packages/repl): The Strudel REPL as a web component. +- [web](https://codeberg.org/uzu/strudel/src/branch/main/packages/web): Strudel library for the browser, without UI. To find out more about these two, read [Using Strudel in Your Project](/technical-manual/project-start) @@ -32,31 +32,31 @@ To find out more about these two, read [Using Strudel in Your Project](/technica These package are the most essential. You might want to use all of those if you're using strudel in your project: -- [core](https://github.com/tidalcycles/strudel/tree/main/packages/core#strudelcore): tidal pattern engine with core primitives -- [mini](https://github.com/tidalcycles/strudel/tree/main/packages/mini#strudelmini): mini notation parser + core bindings -- [transpiler](https://github.com/tidalcycles/strudel/tree/main/packages/transpiler#strudeltranspiler): user code transpiler. syntax sugar + highlighting +- [core](https://codeberg.org/uzu/strudel/src/branch/main/packages/core#strudelcore): tidal pattern engine with core primitives +- [mini](https://codeberg.org/uzu/strudel/src/branch/main/packages/mini#strudelmini): mini notation parser + core bindings +- [transpiler](https://codeberg.org/uzu/strudel/src/branch/main/packages/transpiler#strudeltranspiler): user code transpiler. syntax sugar + highlighting ### Language Extensions These packages extend the pattern language by specific functions -- [tonal](https://github.com/tidalcycles/strudel/tree/main/packages/tonal): tonal functions for scales and chords -- [xen](https://github.com/tidalcycles/strudel/tree/main/packages/xen): microtonal / xenharmonic functions +- [tonal](https://codeberg.org/uzu/strudel/src/branch/main/packages/tonal): tonal functions for scales and chords +- [xen](https://codeberg.org/uzu/strudel/src/branch/main/packages/xen): microtonal / xenharmonic functions ### Outputs These packages provide bindings for different ways to output strudel patterns: -- [webaudio](https://github.com/tidalcycles/strudel/tree/main/packages/webaudio#strudelwebaudio): the default webaudio output -- [osc](https://github.com/tidalcycles/strudel/tree/main/packages/osc#strudelosc): bindings to communicate via OSC -- [midi](https://github.com/tidalcycles/strudel/tree/main/packages/midi#strudelmidi): webmidi bindings -- [csound](https://github.com/tidalcycles/strudel/tree/main/packages/csound#strudelcsound): csound bindings -- [soundfonts](https://github.com/tidalcycles/strudel/tree/main/packages/serial#strudelsoundfonts): Soundfont support -- [serial](https://github.com/tidalcycles/strudel/tree/main/packages/serial#strudelserial): webserial bindings +- [webaudio](https://codeberg.org/uzu/strudel/src/branch/main/packages/webaudio#strudelwebaudio): the default webaudio output +- [osc](https://codeberg.org/uzu/strudel/src/branch/main/packages/osc#strudelosc): bindings to communicate via OSC +- [midi](https://codeberg.org/uzu/strudel/src/branch/main/packages/midi#strudelmidi): webmidi bindings +- [csound](https://codeberg.org/uzu/strudel/src/branch/main/packages/csound#strudelcsound): csound bindings +- [soundfonts](https://codeberg.org/uzu/strudel/src/branch/main/packages/serial#strudelsoundfonts): Soundfont support +- [serial](https://codeberg.org/uzu/strudel/src/branch/main/packages/serial#strudelserial): webserial bindings ### Others -- [embed](https://github.com/tidalcycles/strudel/tree/main/packages/embed#strudelembed): embeddable REPL web component +- [embed](https://codeberg.org/uzu/strudel/src/branch/main/packages/embed#strudelembed): embeddable REPL web component ### No Longer Maintained diff --git a/website/src/pages/technical-manual/project-start.mdx b/website/src/pages/technical-manual/project-start.mdx index 64081625..4e6e3763 100644 --- a/website/src/pages/technical-manual/project-start.mdx +++ b/website/src/pages/technical-manual/project-start.mdx @@ -61,7 +61,7 @@ n("<0 1 2 3 4>*8").scale('G4 minor') This will load the strudel website in an iframe, using the code provided within the HTML comments ``. The HTML comments are needed to make sure the browser won't interpret it as HTML. -For alternative ways to load this package, see the [@strudel/embed README](https://github.com/tidalcycles/strudel/tree/main/packages/embed#strudelembed). +For alternative ways to load this package, see the [@strudel/embed README](https://codeberg.org/uzu/strudel/src/branch/main/packages/embed#strudel-embed). ### @strudel/repl @@ -99,7 +99,7 @@ The upside of using the repl without an iframe is that you can pin the strudel v This will guarantee your pattern wont break due to changes to the strudel project in the future. -For more info on this package, see the [@strudel/repl README](https://github.com/tidalcycles/strudel/tree/main/packages/repl#strudelrepl). +For more info on this package, see the [@strudel/repl README](https://codeberg.org/uzu/strudel/src/branch/main/packages/repl#strudel-repl). ## With your own UI @@ -118,7 +118,7 @@ If you'd rather use your own UI, you can use the `@strudel/web` package: ``` -For more info on this package, see the [@strudel/web README](https://github.com/tidalcycles/strudel/tree/main/packages/web#strudelweb). +For more info on this package, see the [@strudel/web README]https://codeberg.org/uzu/strudel/src/branch/main/packages/web#strudel-web). ## Via npm diff --git a/website/src/pages/technical-manual/repl.mdx b/website/src/pages/technical-manual/repl.mdx index f336ce36..f53efac4 100644 --- a/website/src/pages/technical-manual/repl.mdx +++ b/website/src/pages/technical-manual/repl.mdx @@ -17,7 +17,7 @@ Besides a UI for playback control and meta information, the main part of the REP 2. While the REPL is running, the `Scheduler` queries the active `Pattern` by a regular interval, generating `Events` (also known as `Haps` in Strudel) for the next time span. 3. For each scheduling tick, all generated `Events` are triggered by calling their `onTrigger` method, which is set by the output. - + ## User Code @@ -75,7 +75,7 @@ The sum of both is passed to `withLoc` to tell each element its location, which Another important part of the user code is the mini notation, which allows to express rhythms in a short manner. -- the mini notation is [implemented as a PEG grammar](https://github.com/tidalcycles/strudel/blob/main/packages/mini/krill.pegjs), living in the [mini package](https://github.com/tidalcycles/strudel/tree/main/packages/mini) +- the mini notation is [implemented as a PEG grammar](https://codeberg.org/uzu/strudel/src/branch/talk/packages/mini/krill.pegjs), living in the [mini package](https://codeberg.org/uzu/strudel/src/branch/main/packages/mini) - it is based on [krill](https://github.com/Mdashdotdashn/krill) by Mdashdotdashn - the peg grammar is used to generate a parser with [peggyjs](https://peggyjs.org/) - the generated parser takes a mini notation string and outputs an AST diff --git a/website/src/pages/udels/index.astro b/website/src/pages/udels/index.astro new file mode 100644 index 00000000..157e5315 --- /dev/null +++ b/website/src/pages/udels/index.astro @@ -0,0 +1,14 @@ +--- +import HeadCommon from '@components/HeadCommon.astro'; +import { Udels } from '../../components/Udels/Udels.jsx'; +--- + + + + + Strudel UDELS + + + + + diff --git a/website/src/pages/understand/cycles.mdx b/website/src/pages/understand/cycles.mdx index 4694850c..1c0a778a 100644 --- a/website/src/pages/understand/cycles.mdx +++ b/website/src/pages/understand/cycles.mdx @@ -43,21 +43,33 @@ This is why the same CPS can produce different perceived tempos. ## Setting CPM -If you're familiar with BPM, you can use the `cpm` method to set the tempo in cycles per minute: +If you're familiar with BPM, you can use the `setcpm` method to set the global tempo in cycles per minute: - + If you want to add more beats per cycle, you might want to divide the cpm: - + Or using 2 beats per cycle: - + -To set a specific bpm, use `.cpm(bpm/bpc)` +To set a specific bpm, use `setcpm(bpm/bpc)` - bpm: the target beats per minute - bpc: the number of perceived beats per cycle @@ -74,22 +86,31 @@ Many music programs use it as a default. Strudel does not a have concept of bars or measures, there are only cycles. How you use them is up to you. Above, we've had this example: - + This could be interpreted as 4/4 time with a tempo of 110bpm. We could write out multiple bars like this: \`).cpm(110/4)`} +>\`)`} /> Instead of writing out each bar separately, we could express this much shorter: ->,hh*4").cpm(110/2)`} /> +>,hh*4")`} +/> Here we can see that thinking in cycles rather than bars simplifies things a lot! These types of simplifications work because of the repetitive nature of rhythm. @@ -109,10 +130,11 @@ We could also write multiple bars with different time signatures: \`).cpm(110*2)`} +>\`)`} /> Here we switch between 3/4 and 4/4, keeping the same tempo. @@ -121,10 +143,11 @@ If we don't specify the length, we get what's called a metric modulation: \`).cpm(110/2)`} +>\`)`} /> Now the 3 elements get the same time as the 4 elements, which is why the tempo changes. diff --git a/website/src/pages/understand/voicings.mdx b/website/src/pages/understand/voicings.mdx new file mode 100644 index 00000000..7d9c13d9 --- /dev/null +++ b/website/src/pages/understand/voicings.mdx @@ -0,0 +1,325 @@ +--- +title: Understanding Chord Voicings +layout: ../../layouts/MainLayout.astro +--- + +import { MiniRepl } from '../../docs/MiniRepl'; +import { PitchSlider } from '../../components/PitchSlider'; +import Box from '@components/Box.astro'; + +# Understanding Chords and Voicings + +Let's dig deeper into how chords and voicings work in strudel. +I'll try to keep theory jargon to a minimum, so hopefully this is approachable for anyone interested. + +## What is a chord + +Playing more than one note at a time is generally called a `chord`. Here's an example: + +").room(.5)`} /> + +Here's the same with midi numbers: + +").room(.5)`} /> + +Here, we have two 3-note chords played in a loop. +You could already stop here and write chords in this style, which is totally fine and gives you control over individual notes. +One downside is that it can be difficult to find good sounding chords and maybe you're yearning for a way to organize chords in some other way. + +## Labeling Chords + +Chords are typically given different labels depending on the relationship of the notes within. +In the number example above, we have `48,51,55` and `53,57,60`. + +To analyze the relationship of those notes, they are typically compared to some `root`, which is often the lowest note. +In our case, the `roots` would be `48` (= `c3`) and `53` (= `f3`). +We can express the same chords relative to those `roots` like this: + +".add("<48 53>")).room(.5)`} /> + +Now within each chord, each number represents the distance from the root. +A distance between pitches is typically called `interval`, but let's stick to distance for now. + +Now we can see that our 2 chords are actually quite similar, as the only difference is the middle note (and the root of course). +They are part of a group of chords called `triads` which are chords with 3 notes. + +### Triads + +These 4 shapes are the most common types of `triads` you will encounter: + +| shape | label | +| ----- | ---------- | +| 0,4,7 | major | +| 0,3,7 | minor | +| 0,3,6 | diminished | +| 0,4,8 | augmented | + +Here they are in succession: + +".add("60")) +.room(.5)._pitchwheel()`} +/> + +Many types of music often only use minor and major chords, so we already have the knowledge to accompany songs. Here's one: + +\`.add(\`< +a c d f +a e a e +>\`)).room(.5)`} +/> + +These are the chords for "The House of the Rising Sun" by The Animals. +So far, it doesn't sound too exciting, but at least it's recognizable. + +## Voicings + +A `voicing` is one of many ways a certain chord shape can be arranged. +The term comes from choral music, where chords can be sung in different ways by assigning different notes to each voice. +For example we could add 12 semitones to one or more notes in the chord: + +".add("48")) +.room(.5)`} +/> + +Notes that are 12 semitone steps apart (= 1 `octave`) are considered to be equal in a harmonic sense, which is why they get the same note letter. +Here's the same example with note letters: + +") +.room(.5)`} +/> + +These types of voicings are also called `inversions`. There are many other ways we could `voice` this minor chord: + +".add("48")) +.room(.5)`} +/> + +Here we are changing the flavour of the chord slightly by + +1. doubling notes 12 steps higher, +2. using very wide distances +3. omitting notes + +## Voice Leading + +When we want to meaningfully connect chords in a sequence, the chosen voicings affect the way each chord transitions to the next. +Let's revisit "The House of the Rising Sun", this time using our newly acquired voicing techniques: + +\`.add(\`< +a c d f +a e a e +>\`)).room(.5)`} + punchcard +/> + +These voicings make the chords sound more connected and less jumpy, compared to the earlier version, which didn't focus on voicing. +The way chords interact is also called `voice leading`, reminiscent of how an +individual choir voice would move through a sequence of chords. + +For example, try singing the top voice in the above example. Then try the same +on the example not focusing on voice leading. Which one's easier? + +Naturally, there are many ways a progression of chords could be voiced and there is no definitive right or wrong. + +## Chord Symbols + +Musicians playing chord-based music often use a `lead sheet`, which is a simplified notation for a piece of music. +These sheets condense the essential elements, such as chords, into symbols that make the music easy to read and follow. +For example, a lead sheet for "The House of the Rising Sun" might include chords written like this: + +``` +Am | C | D | F +Am | E | Am | E +``` + +Here, each symbol consists of the `root` of the chord and optionally an `m` to signal it's a minor chord (just the root note means it's major). +We could mirror that notation in strudel using the `pick` function: + +" + .pick({ + Am: "57,60,64", + C: "55,60,64", + D: "50,57,66", + F: "57,60,65", + E: "56,59,64", + }) + .note().room(.5)`} + punchcard +/> + +## The voicing function + +Coming up with good sounding voicings that connect well can be a difficult and time consuming process. +The `chord` and `voicing` functions can be used to automate that: + +").voicing().room(.5)`} punchcard /> + +Here we're also using chord symbols but the voicings will be automatically generated with smooth `voice leading`, minimizing jumps. +It is inspired by the way a piano or guitar player would pick chords to accompany a song. + +## Voicing Dictionaries + +The voicing function internally uses so called `voicing dictionaries`, which can also be customized: + +") + .dict('house').anchor(66) + .voicing().room(.5)`} + punchcard +/> + +In a `voicing dictionary`, each chord symbol is assigned one or more voicings. +The `voicing` function then picks the voicing that is closest to the `anchor` (defaults to `c5`). + +The handy thing about this approach is that a `voicing dictionary` can be used to play any chord progression with automated voice leading! + +## The default dictionary + +When using the default dictionary, you can use these chord symbols: + +``` +2 5 6 7 9 11 13 69 add9 +o h sus ^ - ^7 -7 7sus +h7 o7 ^9 ^13 ^7#11 ^9#11 +^7#5 -6 -69 -^7 -^9 -9 +-add9 -11 -7b5 h9 -b6 -#5 +7b9 7#9 7#11 7b5 7#5 9#11 +9b5 9#5 7b13 7#9#5 7#9b5 +7#9#11 7b9#11 7b9b5 7b9#5 +7b9#9 7b9b13 7alt 13#11 +13b9 13#9 7b9sus 7susadd3 +9sus 13sus 7b13sus +aug M m M7 m7 M9 M13 +M7#11 M9#11 M7#5 m6 m69 +m^7 -M7 m^9 -M9 m9 madd9 +m11 m7b5 mb6 m#5 mM7 mM9 +``` + +The available chords and the format is very much inspired by [ireal pro chords](https://technimo.helpshift.com/hc/en/3-ireal-pro/faq/88-chord-symbols-used-in-ireal-pro/). +Some symbols are synonymous: + +- "-" is the same as "m", for example C-7 = Cm7 +- "^" is the same as "M", for example C^7 = CM7 +- "+" is the same as "aug" + +You can decide which ones you prefer. There is no international standard for these symbols. +To get a full chord, the symbols have to be prefixed with a root pitch, e.g. D7#11 is the 7#11 chord relative to the pitch D. + +Here are all possible chords with root C: + +\`).voicing().room(.5)`} + punchcard +/> + +Note that the default dictionary contains multiple ways (= `voicings`) to play each chord symbol. +By default, the `voicing` function tries to minimize jumps. +You can alter the picked voicings in various ways, which are now explained in further detail: + +## anchor + +The `anchor` is a note that is used to align the voicings to: + +").chord("C").voicing().room(.5)`} punchcard /> + +By default, the anchor is the highest possible note the voicing can contain. +When deciding which voicing of the dictionary to pick for a certain chord, the voicing with a top note closest to the anchor wins. + +Note that the anchors in the above example match up with the top notes in the pianoroll. +Like `note`, anchor accepts either midi numbers or note names. + +## mode + +With `mode`, you can change the way the voicing relates to the `anchor`: + +").chord("C").anchor("c5").voicing().room(.5)`} + punchcard +/> + +The modes are: + +- `below`: the top note of the voicing is lower than or equal to the anchor (default) +- `above`: the bottom note of the voicing is higher than or equal to the anchor +- `duck`: the top note of the voicing is lower than the anchor +- `root`: the bottom note of the voicing is always the root note closest to the anchor + +The `anchor` can also be set from within the `mode` function: + +:c5").chord("C").voicing().room(.5)`} punchcard /> + +## n + +The `n` control can be used with `voicing` to select individual notes: + +>").voicing() +.clip("4 3 2 1").room(.5)`} + punchcard +/> + +## Example + +Here's an example of a Jazz Blues in F: + +\`) +$: n("7 8 [10 9] 8").set(chords).voicing().dec(.2) +$: chords.struct("- x - x").voicing().room(.5) +$: n("0 - 1 -").set(chords).mode("root:g2").voicing() +`} + punchcard +/> + +The chords are reused for melody, chords and bassline of the tune. diff --git a/website/src/pages/workshop/first-effects.mdx b/website/src/pages/workshop/first-effects.mdx index 3450e78f..99e72a13 100644 --- a/website/src/pages/workshop/first-effects.mdx +++ b/website/src/pages/workshop/first-effects.mdx @@ -60,11 +60,10 @@ We will learn how to automate with waves later... @@ -76,31 +75,21 @@ Rhythm is all about dynamics! -**stacks within stacks** - Let's combine all of the above into a little tune: ") -.sound("sawtooth").lpf("200 1000 200 1000"), -note("<[c3,g3,e4] [bb2,f3,d4] [a2,f3,c4] [bb2,g3,eb4]>") -.sound("sawtooth").vowel("") -)`} + tune={`$: sound("hh*8").gain("[.25 1]*4") + +$: sound("bd*4,[~ sd:1]*2") + +$: note("<[c2 c3]*4 [bb1 bb2]*4 [f2 f3]*4 [eb2 eb3]*4>") +.sound("sawtooth").lpf("200 1000 200 1000") + +$: note("<[c3,g3,e4] [bb2,f3,d4] [a2,f3,c4] [bb2,g3,eb4]>") +.sound("sawtooth").vowel("")`} /> - - -Try to identify the individual parts of the stacks, pay attention to where the commas are. -The 3 parts (drums, bassline, chords) are exactly as earlier, just stacked together, separated by comma. - - - **shape the sound with an adsr envelope** ~]]*2") -.sound("gm_electric_guitar_muted"), -sound("").bank("RolandTR707") -).delay(".5")`} + tune={`$: note("[~ [<[d3,a3,f4]!2 [d3,bb3,g4]!2> ~]]*2") + .sound("gm_electric_guitar_muted").delay(.5) + +$: sound("bd rim").bank("RolandTR707").delay(".5")`} /> @@ -199,31 +187,32 @@ Add a delay too! ~]]*2") -.sound("gm_electric_guitar_muted").delay(.5), -sound("").bank("RolandTR707").delay(.5), -n("<4 [3@3 4] [<2 0> ~@16] ~>") + tune={`$: note("[~ [<[d3,a3,f4]!2 [d3,bb3,g4]!2> ~]]*2") +.sound("gm_electric_guitar_muted").delay(.5) + +$: sound("bd rim").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)`} /> Let's add a bass to make this complete: ~]]*2") -.sound("gm_electric_guitar_muted").delay(.5), -sound("").bank("RolandTR707").delay(.5), -n("<4 [3@3 4] [<2 0> ~@16] ~>") + tune={`$: note("[~ [<[d3,a3,f4]!2 [d3,bb3,g4]!2> ~]]*2") +.sound("gm_electric_guitar_muted").delay(.5) + +$: sound("bd rim").bank("RolandTR707").delay(.5) + +$: n("<4 [3@3 4] [<2 0> ~@16] ~>") .scale("D4:minor").sound("gm_accordion:2") -.room(2).gain(.4), -n("[0 [~ 0] 4 [3 2] [0 ~] [0 ~] <0 2> ~]/2") +.room(2).gain(.4) + +$: n("[0 [~ 0] 4 [3 2] [0 ~] [0 ~] <0 2> ~]/2") .scale("D2:minor") -.sound("sawtooth,triangle").lpf(800) -)`} +.sound("sawtooth,triangle").lpf(800)`} /> @@ -262,11 +251,11 @@ 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 +279,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/first-notes.mdx b/website/src/pages/workshop/first-notes.mdx index 71a21764..56312a35 100644 --- a/website/src/pages/workshop/first-notes.mdx +++ b/website/src/pages/workshop/first-notes.mdx @@ -216,8 +216,9 @@ Finding the right notes can be difficult.. Scales are here to help: ") -.scale("C:minor").sound("piano").cpm(60)`} + tune={`setcpm(60) +n("0 2 4 <[6,8] [7,9]>") +.scale("C:minor").sound("piano")`} punchcard /> @@ -242,9 +243,10 @@ Just like anything, we can automate the scale with a pattern: , 2 4 <[6,8] [7,9]>") + tune={`setcpm(60) +n("<0 -3>, 2 4 <[6,8] [7,9]>") .scale("/4") -.sound("piano").cpm(60)`} +.sound("piano")`} punchcard /> @@ -275,9 +277,10 @@ Try changing that number! *2") + tune={`setcpm(60) +n("<[4@2 4] [5@2 5] [6@2 6] [5@2 5]>*2") .scale("/4") -.sound("gm_acoustic_bass").cpm(60)`} +.sound("gm_acoustic_bass")`} punchcard /> @@ -291,7 +294,12 @@ This is also sometimes called triplet swing. You'll often find it in blues and j **Replicate** -]").sound("piano").cpm(60)`} punchcard /> +]").sound("piano")`} + punchcard +/> @@ -314,11 +322,11 @@ Let's recap what we've learned in this chapter: New functions: -| Name | Description | Example | -| ----- | ----------------------------------- | --------------------------------------------------------------------------------- | -| note | set pitch as number or letter | | -| scale | interpret `n` as scale degree | | -| stack | play patterns in parallel (read on) | | +| Name | Description | Example | +| ----- | ----------------------------- | --------------------------------------------------------------------------------- | +| note | set pitch as number or letter | | +| scale | interpret `n` as scale degree | | +| $: | play patterns in parallel | | ## Examples @@ -356,25 +364,35 @@ New functions: -It's called `stack` 😙 +You can use `$:` 😙 +## Playing multiple patterns + +If you want to play multiple patterns at the same time, make sure to write `$:` before each: + ") - .sound("gm_synth_bass_1").lpf(800), - n(\`< + tune={`$: note("<[c2 c3]*4 [bb1 bb2]*4 [f2 f3]*4 [eb2 eb3]*4>") + .sound("gm_synth_bass_1").lpf(800) + +$: n(\`< [~ 0] 2 [0 2] [~ 2] [~ 0] 1 [0 1] [~ 1] [~ 0] 3 [0 3] [~ 3] [~ 0] 2 [0 2] [~ 2] >*4\`).scale("C4:minor") - .sound("gm_synth_strings_1"), - sound("bd*4, [~ ]*2, [~ hh]*4") - .bank("RolandTR909") -)`} + .sound("gm_synth_strings_1") + +$: sound("bd*4, [~ ]*2, [~ hh]*4") +.bank("RolandTR909")`} /> + + +Try changing `$` to `_$` to mute a part! + + + This is starting to sound like actual music! We have sounds, we have notes, now the last piece of the puzzle is missing: [effects](/workshop/first-effects) diff --git a/website/src/pages/workshop/first-sounds.mdx b/website/src/pages/workshop/first-sounds.mdx index 9c33cdc3..74daf4ba 100644 --- a/website/src/pages/workshop/first-sounds.mdx +++ b/website/src/pages/workshop/first-sounds.mdx @@ -166,9 +166,14 @@ Try also changing the number at the end to change the tempo! -**changing the tempo with cpm** +**changing the tempo with setcpm** -*8").cpm(90/4)`} punchcard /> +*8")`} + punchcard +/> @@ -283,12 +288,12 @@ This is what we've learned so far: The Mini-Notation is usually used inside some function. These are the functions we've seen so far: -| Name | Description | Example | -| ----- | ----------------------------------- | --------------------------------------------------------------------------------- | -| sound | plays the sound of the given name | | -| bank | selects the sound bank | | -| cpm | sets the tempo in cycles per minute | | -| n | select sample number | | +| Name | Description | Example | +| ------ | ----------------------------------- | --------------------------------------------------------------------------------- | +| sound | plays the sound of the given name | | +| bank | selects the sound bank | | +| setcpm | sets the tempo in cycles per minute | | +| n | select sample number | | ## Examples @@ -296,8 +301,8 @@ The Mini-Notation is usually used inside some function. These are the functions @@ -314,14 +319,20 @@ Certain drum patterns are reused across genres. We Will Rock you - + **Yellow Magic Orchestra - Firecracker** @@ -329,12 +340,14 @@ We Will Rock you @@ -342,12 +355,13 @@ We Will Rock you @@ -355,11 +369,11 @@ We Will Rock you diff --git a/website/src/pages/workshop/pattern-effects.mdx b/website/src/pages/workshop/pattern-effects.mdx index 5afe862c..ad84a9ab 100644 --- a/website/src/pages/workshop/pattern-effects.mdx +++ b/website/src/pages/workshop/pattern-effects.mdx @@ -25,20 +25,16 @@ This is the same as: Let's visualize what happens here: @@ -56,11 +52,9 @@ This is like doing @@ -74,9 +68,10 @@ Try commenting out one or more by adding `//` before a line >")) + tune={`setcpm(60) +note("c2 [eb3,g3] ".add("<0 <1 -1>>")) .color(">").adsr("[.1 0]:.2:[1 0]") -.sound("gm_acoustic_bass").room(.5).cpm(60)`} +.sound("gm_acoustic_bass").room(.5)`} punchcard /> @@ -90,9 +85,10 @@ We can add as often as we like: >").add("0,7")) + tune={`setcpm(60) +note("c2 [eb3,g3]".add("<0 <1 -1>>").add("0,7")) .color(">").adsr("[.1 0]:.2:[1 0]") -.sound("gm_acoustic_bass").room(.5).cpm(60)`} +.sound("gm_acoustic_bass").room(.5)`} punchcard /> @@ -110,17 +106,15 @@ We can add as often as we like: [~ <4 1>]".add("<0 [0,2,4]>")) + tune={`$: n("0 [2 4] <3 5> [~ <4 1>]".add("<0 [0,2,4]>")) .scale("C5:minor") .sound("gm_xylophone") - .room(.4).delay(.125), - note("c2 [eb3,g3]".add("<0 <1 -1>>")) + .room(.4).delay(.125) +$: note("c2 [eb3,g3]".add("<0 <1 -1>>")) .adsr("[.1 0]:.2:[1 0]") .sound("gm_acoustic_bass") - .room(.5), - n("0 1 [2 3] 2").sound("jazz").jux(rev) -)`} + .room(.5) +$: n("0 1 [2 3] 2").sound("jazz").jux(rev)`} /> **ply** @@ -145,13 +139,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. @@ -161,7 +159,7 @@ off is also useful for modifying other sounds, and can even be nested: client:visible tune={`s("bd sd [rim bd] sd,[~ hh]*4").bank("CasioRZ1") .off(2/16, x=>x.speed(1.5).gain(.25) - .off(3/16, y=>y.vowel("*8")))`} + .off(3/16, y=>y.vowel("*8")))`} /> | name | description | example | diff --git a/website/src/pages/workshop/recap.mdx b/website/src/pages/workshop/recap.mdx index fda7a171..08e243ce 100644 --- a/website/src/pages/workshop/recap.mdx +++ b/website/src/pages/workshop/recap.mdx @@ -39,7 +39,7 @@ This page is just a listing of all functions covered in the workshop! | --------- | ----------------------------- | --------------------------------------------------------------------------------- | | note | set pitch as number or letter | | | n + scale | set note in scale | | -| stack | play patterns in parallel | | +| $: | play patterns in parallel | | ## Audio Effects @@ -56,13 +56,13 @@ This page is just a listing of all functions covered in the workshop! ## Pattern Effects -| name | description | example | -| ---- | ----------------------------------- | ----------------------------------------------------------------------------------- | -| cpm | sets the tempo in cycles per minute | | -| fast | speed up | | -| slow | slow down | | -| rev | reverse | | -| jux | split left/right, modify right | | -| add | add numbers / notes | ")).scale("C:minor")`} /> | -| ply | speed up each event n times | ")`} /> | -| off | copy, shift time & modify | x.speed(2))`} /> | +| name | description | example | +| ------ | ----------------------------------- | ----------------------------------------------------------------------------------- | +| setcpm | sets the tempo in cycles per minute | | +| fast | speed up | | +| slow | slow down | | +| rev | reverse | | +| jux | split left/right, modify right | | +| add | add numbers / notes | ")).scale("C:minor")`} /> | +| ply | speed up each event n times | ")`} /> | +| off | copy, shift time & modify | x.speed(2))`} /> | diff --git a/website/src/pwa.ts b/website/src/pwa.ts index e86ddf3f..fae7d3df 100644 --- a/website/src/pwa.ts +++ b/website/src/pwa.ts @@ -1,3 +1,4 @@ +// @ts-ignore import { registerSW } from 'virtual:pwa-register'; registerSW({ diff --git a/website/src/repl/Repl.jsx b/website/src/repl/Repl.jsx index 9c472eb4..813f6389 100644 --- a/website/src/repl/Repl.jsx +++ b/website/src/repl/Repl.jsx @@ -1,258 +1,20 @@ /* Repl.jsx - -Copyright (C) 2022 Strudel contributors - see +Copyright (C) 2022 Strudel contributors - see 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 . */ -import { code2hash, logger, silence } from '@strudel/core'; -import { getDrawContext } from '@strudel/draw'; -import cx from '@src/cx.mjs'; -import { transpiler } from '@strudel/transpiler'; -import { - getAudioContext, - initAudioOnFirstClick, - webaudioOutput, - resetGlobalEffects, - resetLoadedSounds, -} from '@strudel/webaudio'; -import { defaultAudioDeviceName } from '../settings.mjs'; -import { getAudioDevices, setAudioDevice } from './util.mjs'; -import { StrudelMirror, defaultSettings } from '@strudel/codemirror'; -import { clearHydra } from '@strudel/hydra'; -import { useCallback, useEffect, useRef, useState } from 'react'; -import { settingsMap, useSettings } from '../settings.mjs'; -import { - setActivePattern, - setLatestCode, - createPatternID, - userPattern, - getViewingPatternData, - setViewingPatternData, -} from '../user_pattern_utils.mjs'; -import { Header } from './Header'; -import Loader from './Loader'; -import { Panel } from './panel/Panel'; -import { useStore } from '@nanostores/react'; -import { prebake } from './prebake.mjs'; -import { getRandomTune, initCode, loadModules, shareCode, ReplContext } from './util.mjs'; -import PlayCircleIcon from '@heroicons/react/20/solid/PlayCircleIcon'; -import './Repl.css'; -import { setInterval, clearInterval } from 'worker-timers'; - -const { latestCode } = settingsMap.get(); - -let modulesLoading, presets, drawContext, clearCanvas, isIframe; -if (typeof window !== 'undefined') { - initAudioOnFirstClick(); - modulesLoading = loadModules(); - presets = prebake(); - drawContext = getDrawContext(); - clearCanvas = () => drawContext.clearRect(0, 0, drawContext.canvas.height, drawContext.canvas.width); - isIframe = window.location !== window.parent.location; -} - -async function getModule(name) { - if (!modulesLoading) { - return; - } - const modules = await modulesLoading; - return modules.find((m) => m.packageName === name); -} +import { isIframe, isUdels } from './util.mjs'; +import UdelsEditor from '@components/Udels/UdelsEditor'; +import ReplEditor from './components/ReplEditor'; +import EmbeddedReplEditor from './components/EmbeddedReplEditor'; +import { useReplContext } from './useReplContext'; +import { useSettings } from '@src/settings.mjs'; export function Repl({ embedded = false }) { - const isEmbedded = embedded || isIframe; - const { panelPosition, isZen, isSyncEnabled } = useSettings(); - const init = useCallback(() => { - const drawTime = [-2, 2]; - const drawContext = getDrawContext(); - const editor = new StrudelMirror({ - sync: isSyncEnabled, - defaultOutput: webaudioOutput, - getTime: () => getAudioContext().currentTime, - setInterval, - clearInterval, - transpiler, - autodraw: false, - root: containerRef.current, - initialCode: '// LOADING', - pattern: silence, - drawTime, - drawContext, - prebake: async () => Promise.all([modulesLoading, presets]), - onUpdateState: (state) => { - setReplState({ ...state }); - }, - onToggle: (playing) => { - if (!playing) { - clearHydra(); - } - }, - afterEval: (all) => { - const { code } = all; - setLatestCode(code); - window.location.hash = '#' + code2hash(code); - const viewingPatternData = getViewingPatternData(); - const data = { ...viewingPatternData, code }; - let id = data.id; - const isExamplePattern = viewingPatternData.collection !== userPattern.collection; - - if (isExamplePattern) { - const codeHasChanged = code !== viewingPatternData.code; - if (codeHasChanged) { - // fork example - const newPattern = userPattern.duplicate(data); - id = newPattern.id; - setViewingPatternData(newPattern.data); - } - } else { - id = userPattern.isValidID(id) ? id : createPatternID(); - setViewingPatternData(userPattern.update(id, data).data); - } - setActivePattern(id); - }, - bgFill: false, - }); - - // init settings - - initCode().then(async (decoded) => { - let msg; - if (decoded) { - editor.setCode(decoded); - msg = `I have loaded the code from the URL.`; - } else if (latestCode) { - editor.setCode(latestCode); - msg = `Your last session has been loaded!`; - } else { - const { code: randomTune, name } = await getRandomTune(); - editor.setCode(randomTune); - msg = `A random code snippet named "${name}" has been loaded!`; - } - logger(`Welcome to Strudel! ${msg} Press play or hit ctrl+enter to run it!`, 'highlight'); - }); - - editorRef.current = editor; - }, []); - - const [replState, setReplState] = useState({}); - const { started, isDirty, error, activeCode, pending } = replState; - const editorRef = useRef(); - const containerRef = useRef(); - - // this can be simplified once SettingsTab has been refactored to change codemirrorSettings directly! - // this will be the case when the main repl is being replaced - const _settings = useStore(settingsMap, { keys: Object.keys(defaultSettings) }); - useEffect(() => { - let editorSettings = {}; - Object.keys(defaultSettings).forEach((key) => { - if (_settings.hasOwnProperty(key)) { - editorSettings[key] = _settings[key]; - } - }); - editorRef.current?.updateSettings(editorSettings); - }, [_settings]); - - // on first load, set stored audio device if possible - useEffect(() => { - const { audioDeviceName } = _settings; - if (audioDeviceName !== defaultAudioDeviceName) { - getAudioDevices().then((devices) => { - const deviceID = devices.get(audioDeviceName); - if (deviceID == null) { - return; - } - setAudioDevice(deviceID); - }); - } - }, []); - - // - // UI Actions - // - - const handleTogglePlay = async () => { - editorRef.current?.toggle(); - }; - - const resetEditor = async () => { - (await getModule('@strudel/tonal'))?.resetVoicings(); - resetGlobalEffects(); - clearCanvas(); - clearHydra(); - resetLoadedSounds(); - editorRef.current.repl.setCps(0.5); - await prebake(); // declare default samples - }; - - const handleUpdate = async (patternData, reset = false) => { - setViewingPatternData(patternData); - editorRef.current.setCode(patternData.code); - if (reset) { - await resetEditor(); - handleEvaluate(); - } - }; - - const handleEvaluate = () => { - editorRef.current.evaluate(); - }; - const handleShuffle = async () => { - const patternData = await getRandomTune(); - const code = patternData.code; - logger(`[repl] ✨ loading random tune "${patternData.id}"`); - setActivePattern(patternData.id); - setViewingPatternData(patternData); - await resetEditor(); - editorRef.current.setCode(code); - editorRef.current.repl.evaluate(code); - }; - - const handleShare = async () => shareCode(replState.code); - const context = { - embedded, - started, - pending, - isDirty, - activeCode, - handleTogglePlay, - handleUpdate, - handleShuffle, - handleShare, - handleEvaluate, - }; - - return ( - -
- -
- {isEmbedded && !started && ( - - )} -
-
{ - containerRef.current = el; - if (!editorRef.current) { - init(); - } - }} - >
- {panelPosition === 'right' && !isEmbedded && } -
- {error && ( -
{error.message || 'Unknown Error :-/'}
- )} - {panelPosition === 'bottom' && !isEmbedded && } -
-
- ); + const isEmbedded = embedded || isIframe(); + const Editor = isUdels() ? UdelsEditor : isEmbedded ? EmbeddedReplEditor : ReplEditor; + const context = useReplContext(); + const { fontFamily } = useSettings(); + return ; } diff --git a/website/src/repl/components/BigPlayButton.jsx b/website/src/repl/components/BigPlayButton.jsx new file mode 100644 index 00000000..80a4d345 --- /dev/null +++ b/website/src/repl/components/BigPlayButton.jsx @@ -0,0 +1,22 @@ +import PlayCircleIcon from '@heroicons/react/20/solid/PlayCircleIcon'; + +// type Props = { +// started: boolean; +// handleTogglePlay: () => void; +// }; +export default function BigPlayButton(Props) { + const { started, handleTogglePlay } = Props; + if (started) { + return; + } + + return ( + + ); +} diff --git a/website/src/repl/components/Code.jsx b/website/src/repl/components/Code.jsx new file mode 100644 index 00000000..8481cc27 --- /dev/null +++ b/website/src/repl/components/Code.jsx @@ -0,0 +1,21 @@ +// type Props = { +// containerRef: React.MutableRefObject, +// editorRef: React.MutableRefObject, +// init: () => void +// } +export function Code(Props) { + const { editorRef, containerRef, init } = Props; + + return ( +
{ + containerRef.current = el; + if (!editorRef.current) { + init(); + } + }} + >
+ ); +} diff --git a/website/src/repl/components/EmbeddedReplEditor.jsx b/website/src/repl/components/EmbeddedReplEditor.jsx new file mode 100644 index 00000000..74db2c65 --- /dev/null +++ b/website/src/repl/components/EmbeddedReplEditor.jsx @@ -0,0 +1,25 @@ +import Loader from '@src/repl/components/Loader'; +import { Code } from '@src/repl/components/Code'; +import BigPlayButton from '@src/repl/components/BigPlayButton'; +import UserFacingErrorMessage from '@src/repl/components/UserFacingErrorMessage'; +import { Header } from './Header'; + +// type Props = { +// context: replcontext, +// } + +export default function EmbeddedReplEditor(Props) { + const { context, ...editorProps } = Props; + const { pending, started, handleTogglePlay, containerRef, editorRef, error, init } = context; + return ( +
+ +
+ +
+ +
+ +
+ ); +} diff --git a/website/src/repl/Header.jsx b/website/src/repl/components/Header.jsx similarity index 69% rename from website/src/repl/Header.jsx rename to website/src/repl/components/Header.jsx index 748b84e4..ca4e1ecf 100644 --- a/website/src/repl/Header.jsx +++ b/website/src/repl/components/Header.jsx @@ -1,47 +1,30 @@ -import AcademicCapIcon from '@heroicons/react/20/solid/AcademicCapIcon'; -import ArrowPathIcon from '@heroicons/react/20/solid/ArrowPathIcon'; -import LinkIcon from '@heroicons/react/20/solid/LinkIcon'; import PlayCircleIcon from '@heroicons/react/20/solid/PlayCircleIcon'; -import SparklesIcon from '@heroicons/react/20/solid/SparklesIcon'; import StopCircleIcon from '@heroicons/react/20/solid/StopCircleIcon'; import cx from '@src/cx.mjs'; -import { useSettings, setIsZen } from '../settings.mjs'; -// import { ReplContext } from './Repl'; -import './Repl.css'; +import { useSettings, setIsZen } from '../../settings.mjs'; +import '../Repl.css'; + const { BASE_URL } = import.meta.env; const baseNoTrailing = BASE_URL.endsWith('/') ? BASE_URL.slice(0, -1) : BASE_URL; -export function Header({ context }) { - const { - embedded, - started, - pending, - isDirty, - activeCode, - handleTogglePlay, - handleEvaluate, - handleShuffle, - handleShare, - } = context; +export function Header({ context, embedded = false }) { + const { started, pending, isDirty, activeCode, handleTogglePlay, handleEvaluate, handleShuffle, handleShare } = + context; const isEmbedded = typeof window !== 'undefined' && (embedded || window.location !== window.parent.location); - const { isZen } = useSettings(); + const { isZen, isButtonRowHidden, isCSSAnimationDisabled, fontFamily } = useSettings(); return (