diff --git a/.eslintignore b/.eslintignore deleted file mode 100644 index b7660415..00000000 --- a/.eslintignore +++ /dev/null @@ -1,25 +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 -packages/hs2js/src/hs2js.mjs diff --git a/.eslintrc.json b/.eslintrc.json index cf237947..3a3cd1c7 100644 --- a/.eslintrc.json +++ b/.eslintrc.json @@ -14,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 adb883e5..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. @@ -138,6 +148,18 @@ 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. + +## useful commands +```sh +#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/codemirror-repl/package.json b/examples/codemirror-repl/package.json index ec178d48..e0ce35b8 100644 --- a/examples/codemirror-repl/package.json +++ b/examples/codemirror-repl/package.json @@ -9,7 +9,7 @@ "preview": "vite preview" }, "devDependencies": { - "vite": "^5.0.10" + "vite": "^6.0.11" }, "dependencies": { "@strudel/codemirror": "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/package.json b/examples/tidal-repl/package.json index f1e1337c..21c8ee17 100644 --- a/examples/tidal-repl/package.json +++ b/examples/tidal-repl/package.json @@ -11,7 +11,7 @@ }, "repository": { "type": "git", - "url": "git+https://github.com/tidalcycles/strudel.git" + "url": "git+https://codeberg.org/uzu/strudel.git" }, "keywords": [ "titdalcycles", @@ -23,14 +23,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/web": "workspace:*", "hs2js": "workspace:*" }, "devDependencies": { - "vite": "^5.0.8" + "vite": "^6.0.11" } } 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 0a722e1d..e96b533e 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'; @@ -66,6 +67,7 @@ export function initEditor({ initialCode = '', onChange, onEvaluate, onStop, roo const initialSettings = Object.keys(compartments).map((key) => compartments[key].of(extensions[key](parseBooleans(settings[key]))), ); + initTheme(settings.theme); let state = EditorState.create({ doc: initialCode, @@ -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({ @@ -228,19 +224,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 +243,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'); } @@ -368,3 +359,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..d333986c 100644 --- a/packages/codemirror/highlight.mjs +++ b/packages/codemirror/highlight.mjs @@ -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 }, }), ); } diff --git a/packages/codemirror/package.json b/packages/codemirror/package.json index 5ef5e73b..4f8508c9 100644 --- a/packages/codemirror/package.json +++ b/packages/codemirror/package.json @@ -1,6 +1,6 @@ { "name": "@strudel/codemirror", - "version": "1.1.0", + "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 2e8d40f7..058f4536 100644 --- a/packages/core/controls.mjs +++ b/packages/core/controls.mjs @@ -1,6 +1,6 @@ /* -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 . */ @@ -47,12 +47,16 @@ export function createParam(names) { return func; } +// maps control alias names to the "main" control name +const controlAlias = new Map(); + export function registerControl(names, ...aliases) { const name = Array.isArray(names) ? names[0] : names; let bag = {}; bag[name] = createParam(names); aliases.forEach((alias) => { bag[alias] = bag[name]; + controlAlias.set(alias, name); Pattern.prototype[alias] = Pattern.prototype[name]; }); return bag; @@ -92,7 +96,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 +195,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 +209,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 +225,7 @@ export const { fmi, fm } = registerControl(['fmi', 'fmh'], 'fm'); * .fmdecay(.2) * .fmsustain(0) * .fmenv("") - * .scope() + * ._scope() * */ export const { fmenv } = registerControl('fmenv'); @@ -234,7 +238,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 +252,7 @@ export const { fmattack } = registerControl('fmattack'); * .fm(4) * .fmdecay("<.01 .05 .1 .2>") * .fmsustain(.4) - * .scope() + * ._scope() * */ export const { fmdecay } = registerControl('fmdecay'); @@ -262,7 +266,7 @@ export const { fmdecay } = registerControl('fmdecay'); * .fm(4) * .fmdecay(.1) * .fmsustain("<1 .75 .5 0>") - * .scope() + * ._scope() * */ export const { fmsustain } = registerControl('fmsustain'); @@ -344,7 +348,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 +396,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 +409,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'); /** @@ -441,6 +445,32 @@ export const { coarse } = registerControl('coarse'); */ 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 * @@ -454,8 +484,40 @@ export const { drive } = registerControl('drive'); */ 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. @@ -468,7 +530,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 @@ -789,7 +855,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. @@ -800,10 +866,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'); /** @@ -824,10 +892,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'); @@ -852,7 +922,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. @@ -1218,7 +1288,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 @@ -1379,6 +1449,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`. * @@ -1389,6 +1470,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: @@ -1440,7 +1522,7 @@ export const { vowel } = registerControl('vowel'); * @name waveloss */ export const { waveloss } = registerControl('waveloss'); -/* +/** * Noise crackle density * * @name density @@ -1492,20 +1574,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'); @@ -1597,3 +1670,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 08b89375..f28dc604 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, 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.num_ticks_since_cps_change = 0; this.lastTick = 0; // absolute time when last tick (clock callback) happened @@ -54,9 +65,13 @@ export class Cyclist { (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://github.com/tidalcycles/strudel/pull/1004 + // 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) { @@ -82,7 +97,8 @@ export class Cyclist { this.started = v; this.onToggle?.(v); } - start() { + async start() { + await this.beforeStart?.(); this.num_ticks_since_cps_change = 0; this.num_cycles_at_cps_change = 0; if (!this.pattern) { @@ -103,10 +119,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..2ee9962d 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) @@ -151,8 +148,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 +160,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 +179,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..0559a93a 100644 --- a/packages/core/evaluate.mjs +++ b/packages/core/evaluate.mjs @@ -1,11 +1,9 @@ /* 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 evalScope = async (...args) => { const results = await Promise.allSettled(args); const modules = results.filter((result) => result.status === 'fulfilled').map((r) => r.value); @@ -37,11 +35,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 4600d0ef..5c175dc1 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 }) { @@ -13,79 +14,38 @@ export class NeoCyclist { this.lastTick = 0; // absolute time when last tick (clock callback) happened this.getTime = getTime; // get absolute time this.time_at_last_tick_message = 0; - - this.num_cycles_at_cps_change = 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; + 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); } }); @@ -129,8 +89,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 8accf3c0..f4170f2b 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -1,6 +1,6 @@ { "name": "@strudel/core", - "version": "1.1.0", + "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..beefc597 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); } @@ -1032,6 +1023,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 +1046,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 +1159,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 +1182,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 +1198,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 +1244,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 +1261,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 +1287,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 +1368,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 +1395,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 +1419,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 +1470,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 +1502,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 +1546,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 +1586,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 +1595,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 +1618,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 +1632,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 +1830,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 +1846,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 +1871,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 +1981,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 +2044,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 +2106,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 +2289,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 +2442,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 +2461,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,9 +2482,14 @@ 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, +); // TODO - redefine elsewhere in terms of mask export const bypass = register( @@ -2390,16 +2503,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 +2540,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 +2631,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 +2672,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 +2739,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 +2754,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 +2778,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 +2816,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 +2830,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 +2975,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 +3040,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 +3110,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 +3139,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 +3188,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 +3238,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 +3259,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 +3319,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 5b7bcd71..8acd2bbe 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,7 @@ export function repl({ sync = false, setInterval, clearInterval, + id, }) { const state = { schedulerError: undefined, @@ -32,6 +34,10 @@ export function repl({ started: false, }; + const transpilerOptions = { + id, + }; + const updateState = (update) => { Object.assign(state, update); state.isDirty = state.code !== state.activeCode; @@ -48,6 +54,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 +63,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 +85,54 @@ 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()) + * ``` + */ const all = function (transform) { allTransform = 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 +171,7 @@ export function repl({ }); return evalScope({ all, + each, hush, cpm, setCps, @@ -139,11 +188,19 @@ export function repl({ try { updateState({ code, pending: true }); await injectPatternMethods(); + setTime(() => scheduler.now()); // TODO: refactor? await beforeEval?.({ code }); shouldHush && hush(); - let { pattern, meta } = await _evaluate(code, transpiler); + let { pattern, meta } = await _evaluate(code, transpiler, transpilerOptions); if (Object.keys(pPatterns).length) { - pattern = stack(...Object.values(pPatterns)); + 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 (allTransform) { pattern = allTransform(pattern); @@ -153,7 +210,7 @@ export function repl({ 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 || [], @@ -179,7 +236,7 @@ export function repl({ export const getTrigger = ({ getTime, defaultOutput }) => async (hap, deadline, duration, cps, t) => { - // TODO: get rid of deadline after https://github.com/tidalcycles/strudel/pull/1004 + // 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); diff --git a/packages/core/signal.mjs b/packages/core/signal.mjs index 1b950c39..54da989a 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,8 +33,40 @@ 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)); /** @@ -60,6 +90,12 @@ 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)); /** @@ -71,6 +107,12 @@ export const cosine2 = sine2._early(Fraction(1).div(4)); * */ 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,9 +123,37 @@ 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); /** @@ -138,7 +208,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); } @@ -157,7 +227,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 + * note("c d e f".shuffle(4), "g").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 + * note("c d e f".scramble(4), "g").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. @@ -209,204 +354,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) { @@ -486,19 +433,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(); @@ -520,18 +478,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); }; /** @@ -545,8 +527,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, ); /** @@ -562,10 +559,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, +); /** * @@ -579,7 +584,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. @@ -599,12 +604,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)` @@ -621,7 +631,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); /** * @@ -780,3 +790,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..07bdcdda 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( @@ -1124,89 +1127,148 @@ 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), + ); + }); + }); }); 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 70967f21..04a5ff24 100644 --- a/packages/csound/package.json +++ b/packages/csound/package.json @@ -1,6 +1,6 @@ { "name": "@strudel/csound", - "version": "1.1.0", + "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 81123f46..c727c1d8 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) { @@ -146,7 +154,7 @@ export class Drawer { // 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.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); } diff --git a/packages/draw/package.json b/packages/draw/package.json index a6a88ecf..ee1b8dd0 100644 --- a/packages/draw/package.json +++ b/packages/draw/package.json @@ -1,6 +1,6 @@ { "name": "@strudel/draw", - "version": "1.1.0", + "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 247213b4..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, @@ -113,7 +128,7 @@ export function pianoroll({ 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 afd88788..a0cc33de 100644 --- a/packages/embed/package.json +++ b/packages/embed/package.json @@ -6,7 +6,7 @@ "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/README.md b/packages/hs2js/README.md index 24d9c774..f84f9cde 100644 --- a/packages/hs2js/README.md +++ b/packages/hs2js/README.md @@ -2,7 +2,7 @@ Experimental haskell in javascript interpreter. Many haskell features are not implemented. This projects mainly exists to be able to write and interpret [Tidal Cycles](https://tidalcycles.org/) code in the browser, -as part of [Strudel](https://github.com/tidalcycles/strudel). This project could only exist thanks to [tree-sitter-haskell](https://github.com/tree-sitter/tree-sitter-haskell). +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 diff --git a/packages/hs2js/package.json b/packages/hs2js/package.json index 09bf1e05..c0bf8fa8 100644 --- a/packages/hs2js/package.json +++ b/packages/hs2js/package.json @@ -1,6 +1,7 @@ { "name": "hs2js", - "version": "0.1.0", + "version": "0.2.0", + "private": true, "description": "Experimental Haskell in JavaScript interpreter", "main": "src/index.mjs", "type": "module", @@ -15,7 +16,7 @@ }, "repository": { "type": "git", - "url": "git+https://github.com/tidalcycles/strudel.git" + "url": "git+https://codeberg.org/uzu/strudel.git" }, "keywords": [ "haskell", @@ -24,14 +25,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", + "homepage": "https://codeberg.org/uzu/strudel/", "dependencies": { - "web-tree-sitter": "^0.20.8" + "web-tree-sitter": "^0.24.7" }, "devDependencies": { - "tree-sitter-haskell": "^0.21.0", - "vite": "^5.0.10" + "tree-sitter-haskell": "^0.23.1", + "vite": "^6.0.11" } } diff --git a/packages/hydra/package.json b/packages/hydra/package.json index 2559a167..b022de87 100644 --- a/packages/hydra/package.json +++ b/packages/hydra/package.json @@ -1,6 +1,6 @@ { "name": "@strudel/hydra", - "version": "1.1.0", + "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 6b2d8de1..4efd329d 100644 --- a/packages/midi/package.json +++ b/packages/midi/package.json @@ -1,6 +1,6 @@ { "name": "@strudel/midi", - "version": "1.1.0", + "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 0a062f46..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()); }; @@ -315,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++ }; }; @@ -339,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 + "\"."); } @@ -423,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]; @@ -558,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; @@ -572,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; @@ -589,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; @@ -705,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; @@ -719,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; @@ -733,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; @@ -742,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; @@ -758,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; } @@ -792,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(); @@ -816,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(); @@ -857,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; @@ -881,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) { @@ -990,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(); @@ -1002,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(); @@ -1034,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(); @@ -1046,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(); @@ -1081,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(); @@ -1110,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(); @@ -1122,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(); @@ -1199,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(); @@ -1236,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(); @@ -1262,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(); @@ -1290,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; @@ -1328,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(); @@ -1356,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(); @@ -1384,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(); @@ -1410,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(); @@ -1437,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(); @@ -1488,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; @@ -1775,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(); @@ -1804,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(); @@ -1845,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(); @@ -1886,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(); @@ -1915,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(); @@ -1944,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(); @@ -1973,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(); @@ -2002,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(); @@ -2052,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]; @@ -2092,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(); @@ -2148,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; @@ -2213,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(); @@ -2295,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(); @@ -2324,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(); @@ -2353,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; @@ -2383,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; @@ -2406,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; @@ -2417,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; @@ -2431,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; @@ -2445,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; @@ -2459,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; @@ -2473,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) { @@ -2495,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; } @@ -2531,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 { @@ -2548,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 5d2ce1ec..5d94301d 100644 --- a/packages/mini/package.json +++ b/packages/mini/package.json @@ -1,6 +1,6 @@ { "name": "@strudel/mini", - "version": "1.1.0", + "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/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 422e56da..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, isNote, noteToMidi } 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,33 +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)); - if (typeof controls.note !== 'undefined') { - if (isNote(controls.note)) { - controls.midinote = noteToMidi(controls.note, controls.octave || 3); - } else { - controls.note = parseNumeral(controls.note); - } - } - controls.bank && (controls.s = controls.bank + controls.s); - controls.roomsize && (controls.size = parseNumeral(controls.roomsize)); - const keyvals = Object.entries(controls).flat(); - // time should be audio time of onset - // currentTime should be current time of audio context (slightly before time) - 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 98babe2a..7d19fbbf 100644 --- a/packages/osc/package.json +++ b/packages/osc/package.json @@ -1,6 +1,6 @@ { "name": "@strudel/osc", - "version": "1.1.0", + "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 10bf0ad0..95e1fc32 100644 --- a/packages/osc/tidal-sniffer.js +++ b/packages/osc/tidal-sniffer.js @@ -1,6 +1,6 @@ /* 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 . */ 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 9ea71a69..bfa404c7 100644 --- a/packages/repl/package.json +++ b/packages/repl/package.json @@ -1,6 +1,6 @@ { "name": "@strudel/repl", - "version": "1.1.0", + "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 252fe935..b0f27f86 100644 --- a/packages/sampler/package.json +++ b/packages/sampler/package.json @@ -1,6 +1,6 @@ { "name": "@strudel/sampler", - "version": "0.1.0", + "version": "0.2.0", "description": "", "keywords": [ "tidalcycles", diff --git a/packages/sampler/sample-server.mjs b/packages/sampler/sample-server.mjs index 12520992..d1e56108 100644 --- a/packages/sampler/sample-server.mjs +++ b/packages/sampler/sample-server.mjs @@ -1,7 +1,7 @@ #!/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, sep } from 'path'; @@ -70,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.split('/').join(sep)); const readStream = createReadStream(filePath); readStream.on('error', (err) => { res.statusCode = 500; @@ -99,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} @@ -113,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 02418df3..c04a69cd 100644 --- a/packages/serial/package.json +++ b/packages/serial/package.json @@ -1,6 +1,6 @@ { "name": "@strudel/serial", - "version": "1.1.0", + "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 82696312..2c87a6e0 100644 --- a/packages/soundfonts/package.json +++ b/packages/soundfonts/package.json @@ -1,6 +1,6 @@ { "name": "@strudel/soundfonts", - "version": "1.1.0", + "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 e51156fe..6bde6937 100644 --- a/packages/superdough/helpers.mjs +++ b/packages/superdough/helpers.mjs @@ -212,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 685ab9c5..439b8371 100644 --- a/packages/superdough/package.json +++ b/packages/superdough/package.json @@ -1,6 +1,6 @@ { "name": "superdough", - "version": "1.1.0", + "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 f0475d77..819cdeb3 100644 --- a/packages/superdough/superdough.mjs +++ b/packages/superdough/superdough.mjs @@ -1,6 +1,6 @@ /* 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 . */ @@ -8,22 +8,120 @@ import './feedbackdelay.mjs'; import './reverb.mjs'; import './vowel.mjs'; import { clamp, nanFallback, _mod } from './util.mjs'; -import workletsUrl from './worklets.mjs?url'; +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 }); } -export function getSound(s) { - return soundMap.get()[s]; +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.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, @@ -39,6 +137,7 @@ const defaultDefaultValues = { shapevol: 1, distortvol: 1, delay: 0, + byteBeatExpression: '0', delayfeedback: 0.5, delaytime: 0.25, orbit: 1, @@ -87,21 +186,54 @@ export const getAudioContext = () => { return audioContext; }; +export function getAudioContextCurrentTime() { + return getAudioContext().currentTime; +} + let workletsLoading; function loadWorklets() { if (!workletsLoading) { - workletsLoading = getAudioContext().audioWorklet.addModule(workletsUrl); + 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; + const { + disableWorklets = false, + maxPolyphony, + audioDeviceName = DEFAULT_AUDIO_DEVICE_NAME, + multiChannelOrbits = false, + } = options; + + setMaxPolyphony(maxPolyphony); + setMultiChannelOrbits(multiChannelOrbits); if (typeof window === 'undefined') { return; } - await getAudioContext().resume(); + + 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; @@ -159,7 +291,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); }); }; @@ -172,7 +304,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`); } @@ -181,7 +313,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); @@ -189,16 +321,9 @@ function getDelay(orbit, delaytime, delayfeedback, t) { return delays[orbit]; } -function getPhaser(time, end, frequency = 1, depth = 0.5, centerFrequency = 1000, sweep = 2000) { - //gain - const ac = getAudioContext(); - const lfoGain = ac.createGain(); - lfoGain.gain.value = sweep * 2; - // centerFrequency = centerFrequency * 2; - // sweep = sweep * 1.5; - - const lfo = getWorklet(ac, 'lfo-processor', { - frequency, +export function getLfo(audioContext, time, end, properties = {}) { + return getWorklet(audioContext, 'lfo-processor', { + frequency: 1, depth: 1, skew: 0, phaseoffset: 0, @@ -206,8 +331,13 @@ function getPhaser(time, end, frequency = 1, depth = 0.5, centerFrequency = 1000 end, shape: 1, dcoffset: -0.5, + ...properties, }); - lfo.connect(lfoGain); +} + +function getPhaser(time, end, frequency = 1, depth = 0.5, centerFrequency = 1000, sweep = 2000) { + const ac = getAudioContext(); + const lfoGain = getLfo(ac, time, end, { frequency, depth: sweep * 2 }); //filters const numStages = 2; //num of filters in series @@ -238,12 +368,12 @@ function getFilterType(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 ( @@ -266,11 +396,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); @@ -308,8 +439,22 @@ export function resetGlobalEffects() { analysersData = {}; } -export const superdough = async (value, t, hapDuration) => { +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) => { 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`, @@ -320,7 +465,7 @@ export const superdough = async (value, t, hapDuration) => { // 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)})`, @@ -362,9 +507,9 @@ export const superdough = async (value, t, hapDuration) => { bpsustain, bprelease, bandq = getDefaultValue('bandq'), - channels = getDefaultValue('channels'), + //phaser - phaser, + phaserrate: phaser, phaserdepth = getDefaultValue('phaserdepth'), phasersweep, phasercenter, @@ -398,30 +543,54 @@ export const superdough = async (value, t, hapDuration) => { compressorRelease, } = value; - gain = nanFallback(gain, 1); - - //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 (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?`); @@ -438,6 +607,7 @@ export const superdough = async (value, t, hapDuration) => { } 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)); @@ -548,8 +718,9 @@ export const superdough = async (value, t, hapDuration) => { // delay let delaySend; if (delay > 0 && delaytime > 0 && delayfeedback > 0) { - const delyNode = getDelay(orbit, delaytime, delayfeedback, t); + const delyNode = getDelay(orbit, delaytime, delayfeedback, t, orbitChannels); delaySend = effectSend(post, delyNode, delay); + audioNodes.push(delaySend); } // reverb let reverbSend; @@ -565,8 +736,9 @@ export const superdough = async (value, t, hapDuration) => { } 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 @@ -574,14 +746,14 @@ export const superdough = async (value, t, hapDuration) => { 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 621a6e59..834e54c6 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 } from './superdough.mjs'; +import { registerSound, getAudioContext, getLfo } from './superdough.mjs'; import { applyFM, gainNode, @@ -25,6 +25,13 @@ 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 noises = ['pink', 'white', 'brown', 'crackle']; @@ -63,7 +70,9 @@ export function registerSynthSounds() { stop(envEnd); return { node, - stop: (releaseTime) => {}, + stop: (endTime) => { + stop(endTime); + }, }; }, { type: 'synth', prebake: true }, @@ -110,10 +119,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(); @@ -123,11 +134,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' }, @@ -170,7 +334,9 @@ export function registerSynthSounds() { stop(envEnd); return { node, - stop: (releaseTime) => {}, + stop: (endTime) => { + stop(endTime); + }, }; }, { type: 'synth', prebake: true }, 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 b06513e7..6f526ec8 100644 --- a/packages/superdough/worklets.mjs +++ b/packages/superdough/worklets.mjs @@ -1,6 +1,10 @@ // coarse, crush, and shape processors adapted from dktr0's webdirt: https://github.com/dktr0/WebDirt/blob/5ce3d698362c54d6e1b68acc47eb2955ac62c793/dist/AudioWorklets.js // LICENSE GNU General Public License v3.0 see https://github.com/dktr0/WebDirt/blob/main/LICENSE // TOFIX: THIS FILE DOES NOT SUPPORT IMPORTS ON DEPOLYMENT + +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; @@ -71,7 +75,12 @@ const waveshapes = { return v - polyBlep(phase, dt); }, }; - +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() { @@ -286,7 +295,7 @@ class LadderProcessor extends AudioWorkletProcessor { cutoff = (cutoff * 2 * _PI) / sampleRate; cutoff = cutoff > 1 ? 1 : cutoff; - const k = Math.min(8, resonance * 0.4); + const k = Math.min(8, resonance * 0.13); // drive makeup * resonance volume loss makeup let makeupgain = (1 / drive) * Math.min(1.75, 1 + k); @@ -358,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(); @@ -434,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 @@ -464,3 +478,419 @@ 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); diff --git a/packages/tidal/package.json b/packages/tidal/package.json index 051c6143..960b0900 100644 --- a/packages/tidal/package.json +++ b/packages/tidal/package.json @@ -1,11 +1,12 @@ { "name": "@strudel/tidal", - "version": "0.1.0", + "version": "0.2.0", + "private": true, "description": "Experimental Tidal Code interpreter", "module": "tidal.mjs", "repository": { "type": "git", - "url": "git+https://github.com/felixroos/hs2js.git" + "url": "git+https://codeberg.org/uzu/strudel/src/branch/main/packages/tidal" }, "keywords": [ "haskell", @@ -14,15 +15,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/tree/main/packages/hs2js", + "homepage": "https://codeberg.org/uzu/strudel/src/branch/main/packages/hs2js", "dependencies": { "@strudel/core": "workspace:*", "@strudel/mini": "workspace:*", "hs2js": "workspace:*" }, "devDependencies": { - "vite": "^5.0.10" + "vite": "^6.0.11" } } diff --git a/packages/tonal/package.json b/packages/tonal/package.json index dba7f804..614e86f7 100644 --- a/packages/tonal/package.json +++ b/packages/tonal/package.json @@ -1,6 +1,6 @@ { "name": "@strudel/tonal", - "version": "1.1.0", + "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 755b1632..a6cdae39 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 . */ 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 dd723c2d..2a7f64a8 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 . */ @@ -254,5 +254,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 d216716d..2a5e3977 100644 --- a/packages/transpiler/package.json +++ b/packages/transpiler/package.json @@ -1,6 +1,6 @@ { "name": "@strudel/transpiler", - "version": "1.1.0", + "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 6cd01499..2f5ed530 100644 --- a/packages/transpiler/transpiler.mjs +++ b/packages/transpiler/transpiler.mjs @@ -69,6 +69,7 @@ export function transpiler(input, options = {}) { to: node.end, index, type, + id: options.id, }; emitWidgets && widgets.push(widgetConfig); return this.replace(widgetWithLocation(node, widgetConfig)); @@ -162,7 +163,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) { @@ -193,7 +194,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', 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/package.json b/packages/web/package.json index 17dd49cb..0feddc82 100644 --- a/packages/web/package.json +++ b/packages/web/package.json @@ -1,6 +1,6 @@ { "name": "@strudel/web", - "version": "1.1.0", + "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": { - "@rollup/plugin-replace": "^5.0.5", - "vite": "^5.0.10" + "@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/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 019768c1..5cc0a553 100644 --- a/packages/webaudio/package.json +++ b/packages/webaudio/package.json @@ -1,6 +1,6 @@ { "name": "@strudel/webaudio", - "version": "1.1.0", + "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 44a68348..f80f114f 100644 --- a/packages/webaudio/webaudio.mjs +++ b/packages/webaudio/webaudio.mjs @@ -1,6 +1,6 @@ /* 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 . */ @@ -16,7 +16,7 @@ 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 +// uses more precise, absolute t if available, see https://codeberg.org/uzu/strudel/pulls/1004 export const webaudioOutput = (hap, deadline, hapDuration, cps, t) => superdough(hap2value(hap), t ? `=${t}` : deadline, hapDuration); diff --git a/packages/xen/package.json b/packages/xen/package.json index 7101ea0c..88c2bb08 100644 --- a/packages/xen/package.json +++ b/packages/xen/package.json @@ -1,6 +1,6 @@ { "name": "@strudel/xen", - "version": "1.1.0", + "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 a07618b8..a23c8092 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: @@ -98,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: @@ -108,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: @@ -130,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: @@ -140,8 +152,8 @@ 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: @@ -153,47 +165,47 @@ importers: version: link:../../packages/hs2js devDependencies: vite: - specifier: ^5.0.8 - version: 5.2.2(@types/node@20.10.6) + 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 @@ -203,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 @@ -243,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: @@ -252,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: @@ -262,23 +268,33 @@ 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.20.8 - version: 0.20.8 + specifier: ^0.24.7 + version: 0.24.7 devDependencies: tree-sitter-haskell: - specifier: ^0.21.0 - version: 0.21.0(tree-sitter@0.21.1) + specifier: ^0.23.1 + version: 0.23.1(tree-sitter@0.21.1) vite: - specifier: ^5.0.10 - version: 5.2.2(@types/node@20.10.6) + 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: @@ -290,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: @@ -308,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: @@ -322,14 +338,37 @@ 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/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: @@ -337,15 +376,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: @@ -381,14 +426,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: @@ -403,8 +448,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: @@ -418,25 +463,28 @@ 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: @@ -451,8 +499,8 @@ importers: version: link:../hs2js devDependencies: vite: - specifier: ^5.0.10 - version: 5.2.2(@types/node@20.10.6) + 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: @@ -460,21 +508,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: @@ -485,21 +533,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: @@ -520,11 +574,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: @@ -539,8 +596,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: @@ -549,56 +606,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 @@ -614,6 +671,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 @@ -623,6 +683,12 @@ importers: '@strudel/mini': specifier: workspace:* version: link:../packages/mini + '@strudel/motion': + specifier: workspace:* + version: link:../packages/motion + '@strudel/mqtt': + specifier: workspace:* + version: link:../packages/mqtt '@strudel/osc': specifier: workspace:* version: link:../packages/osc @@ -648,56 +714,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.0.8 - version: 0.0.8 + 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 @@ -711,1727 +783,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' @@ -2446,1475 +1503,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 @@ -3924,17 +2217,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: @@ -3944,3365 +2228,1716 @@ 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: + 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@3.2.6: + resolution: {integrity: sha512-htCUDlxyyCLMgaM3xXg0C0LW2xqfuQ6p05pCEIsXuyQ+a1koYKTuBMzRNwmybfLgvJDMd0r1LTn4+E0Ti6C2AA==} - /asynckit@0.4.0: + 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: + 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': '*' @@ -7321,3390 +3956,1713 @@ 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: + 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@4.7.8: + resolution: {integrity: sha512-vafaFqs8MZkRrSX7sFVUdo3ap/eNiLnb4IakshzvP56X5Nr1iGKAIqdX6tMlm6HcNRIkr6AxO5jFEoJzzpT8aQ==} 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: + 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 - /hs2js@0.0.8: - resolution: {integrity: sha512-wFSenhY2MB1ACuwaJq0QyDk6yZiYwha/yOgAa2scsLvqEJTdHY2KXhsy8uZw+G2oVxQGyXs0OPf5gXN7HkP9mA==} - dependencies: - web-tree-sitter: 0.20.8 - dev: false + hs2js@0.1.0: + resolution: {integrity: sha512-THlUIMX8tZf6gtbz5RUZ8xQUyKJEItsx7bxEBcouFIEWjeo90376WMocj3JEz6qTv5nM+tjo3vNvLf89XruMvg==} - /html-escaper@3.0.3: + 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: + 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-addon-api@8.0.0: - resolution: {integrity: sha512-ipO7rsHEBqa9STO5C5T10fj732ml+5kLN1cAG8/jdHd56ldQeGj3Q7+scUS+VHK/qy1zLEwC4wMK5+yM0btPvw==} + node-addon-api@8.3.0: + resolution: {integrity: sha512-8VOpLHFrOQlAH+qA0ZzuGRlALRA6/LVh8QJldbrC4DY0hXoMP0l4Acq8TzFC018HztWiRqyCEj2aTWY2UvnJUg==} engines: {node: ^18 || ^20 || >= 21} - dev: true - /node-domexception@1.0.0: + 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: @@ -10712,838 +5670,400 @@ 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-build@4.8.1: - resolution: {integrity: sha512-OSs33Z9yWr148JZcbZd5WiAXhh/n9z8TxQcdMhIOlpN9AhWpLfvVFO73+m77bBABQMaY9XSvIa+qk0jlI7Gcaw==} + node-gyp-build@4.8.4: + resolution: {integrity: sha512-LA4ZjwlnUblHVgq0oBF3Jl/6h/Nvs5fzBLwdEF4nuxnFdsfajde4WfxtJr3CaiH+F6ewcIB/q4jQ4UzPyid+CQ==} hasBin: true - dev: true - /node-gyp@10.0.1: - resolution: {integrity: sha512-gg3/bHehQfZivQVfqIyy8wTdSymF9yTyP4CJifK73imyNMU8AIGQE2pUa7dNWfmMeG9cDVF2eehiRMv0LC1iAg==} + 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 - - /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: @@ -11551,49 +6071,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: @@ -11604,1901 +6099,975 @@ 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.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 - /tree-sitter-haskell@0.21.0(tree-sitter@0.21.1): - resolution: {integrity: sha512-b2RLegPHuYPh7nJ3YKWgkWnFYxmYlQDE8TDJuNH+iuNuBcCMYyaA9JlJlMHfCvf7DmJNPtqqbO9Kh9NXEmbatQ==} - requiresBuild: true + tree-sitter-haskell@0.23.1: + resolution: {integrity: sha512-qG4CYhejveu9DLMLEGBz/n9/TTeGSFLC6wniwOgG6m8/v7Dng8qR0ob0EVG7+XH+9WiOxohpGA23EhceWuxY4w==} peerDependencies: - tree-sitter: ^0.21.0 - tree_sitter: '*' + tree-sitter: ^0.21.1 peerDependenciesMeta: - tree_sitter: + 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: + tree-sitter@0.21.1: resolution: {integrity: sha512-7dxoA6kYvtgWw80265MyqJlkRl4yawIjO7S5MigytjELkX43fV2WsAXzsNfO7sBpPPCF5Gp0+XzHk0DwLCq3xQ==} - requiresBuild: true - dependencies: - node-addon-api: 8.0.0 - node-gyp-build: 4.8.1 - dev: true - /trim-lines@3.0.1: + 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: @@ -13506,613 +7075,341 @@ 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 - - /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==} + undici-types@6.20.0: + resolution: {integrity: sha512-Ny6QZ2Nju20vw1SRHe3d9jVu6gJ+4e3+MMpqu7pqE5HT6WsTSlce++GQmK5UXS8mzV8DSYHrQH+Xrf2jVcuKNg==} - /unicode-canonical-property-names-ecmascript@2.0.0: - resolution: {integrity: sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==} + 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 @@ -14120,73 +7417,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': @@ -14197,55 +7457,8389 @@ 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@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 + + 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@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: {} + + 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 + + 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@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 + + 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 + + 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.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@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: {} + + 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 @@ -14254,187 +15848,145 @@ 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: {} - /web-tree-sitter@0.20.8: - resolution: {integrity: sha512-weOVgZ3aAARgdnb220GqYuh7+rZU0Ka9k9yfKtGAzEYMa6GgiCzW9JjQRJyCJakvibQW+dfjJdihjInKuuCAUQ==} - dev: false + web-tree-sitter@0.20.8: {} - /webidl-conversions@3.0.1: - resolution: {integrity: sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==} + web-tree-sitter@0.24.7: {} - /webidl-conversions@4.0.2: - resolution: {integrity: sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==} - dev: true + webidl-conversions@3.0.1: {} - /webmidi@3.1.8: - resolution: {integrity: sha512-PCRic1iTpKxeheb888G0mDe6MBdz/u+s/xfdV6+1ZhZnS6dKtV9gMBth5cpmMip2Livv5lL+ep4/S9DCzHfumg==} - engines: {node: '>=8.5'} + 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@1.0.0: {} - /workbox-background-sync@7.0.0: - resolution: {integrity: sha512-S+m1+84gjdueM+jIKZ+I0Lx0BDHkk5Nu6a3kTVxP4fdj3gKouRNmhO8H290ybnJTOPfBDtTMXSQA/QLTvr7PeA==} + 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 @@ -14458,56 +16010,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 @@ -14515,111 +16053,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 @@ -14627,92 +16143,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 @@ -14725,44 +16190,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 3ff7eae2..f3607cb4 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 ]", @@ -912,6 +912,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 ]", @@ -954,6 +1008,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 ]", @@ -967,6 +1051,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 ]", @@ -1140,71 +1497,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 ]", @@ -1217,18 +1574,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 ]", @@ -1251,16 +1664,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 ]", @@ -1311,21 +1714,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 ]", @@ -1336,36 +1739,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 ]", ] `; @@ -1373,59 +1776,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 ]", ] @@ -1626,135 +2029,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 ]", ] `; @@ -1879,96 +2342,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 ]", @@ -1979,6 +2409,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 ]", @@ -2027,6 +2518,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 ]", @@ -2266,6 +2778,130 @@ exports[`runs examples > example "drive" example index 0 1`] = ` ] `; +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 ]", @@ -2509,18 +3145,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 ]", ] `; @@ -2562,6 +3199,56 @@ 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 ]", @@ -2666,6 +3353,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 ]", @@ -2717,175 +3441,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 ]", ] `; @@ -3150,6 +3874,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 ]", @@ -3540,34 +4412,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 ]", ] `; @@ -3592,6 +4464,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 ]", @@ -3634,6 +4596,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 ]", @@ -3878,6 +4877,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 ]", @@ -4042,19 +5043,19 @@ 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 ]", ] `; @@ -4364,6 +5365,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 ]", @@ -4387,6 +5409,292 @@ 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 ]", @@ -4607,6 +5915,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 +5985,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 +6000,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 +6105,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 +6170,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 +6268,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 +6618,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 +6720,59 @@ exports[`runs examples > example "ply" example index 0 1`] = ` ] `; +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 ]", +] +`; + 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 +6877,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 +6895,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 +7366,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 +7510,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 +7874,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 +7962,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 +8110,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 +8168,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 +8430,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 +8532,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 +8917,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 +8967,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 +9053,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 +9176,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 +9365,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,45 +9426,83 @@ exports[`runs examples > example "stack" example index 0 1`] = ` ] `; -exports[`runs examples > example "stack" example index 0 2`] = ` +exports[`runs examples > example "stepalt" 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 ]", + "[ 0/1 → 1/5 | s:bd ]", + "[ 1/5 → 2/5 | s:cp ]", + "[ 2/5 → 3/5 | s:bd ]", + "[ 3/5 → 4/5 | s:mt ]", + "[ 4/5 → 1/1 | s:bd ]", + "[ 1/1 → 6/5 | s:bd ]", + "[ 6/5 → 7/5 | s:cp ]", + "[ 7/5 → 8/5 | s:bd ]", + "[ 8/5 → 9/5 | s:mt ]", + "[ 9/5 → 2/1 | s:bd ]", + "[ 2/1 → 11/5 | s:bd ]", + "[ 11/5 → 12/5 | s:cp ]", + "[ 12/5 → 13/5 | s:bd ]", + "[ 13/5 → 14/5 | s:mt ]", + "[ 14/5 → 3/1 | s:bd ]", + "[ 3/1 → 16/5 | s:bd ]", + "[ 16/5 → 17/5 | s:cp ]", + "[ 17/5 → 18/5 | s:bd ]", + "[ 18/5 → 19/5 | s:mt ]", + "[ 19/5 → 4/1 | s:bd ]", ] `; -exports[`runs examples > example "steps" example index 0 1`] = ` +exports[`runs examples > example "stepcat" 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 → 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 +9798,145 @@ exports[`runs examples > example "swingBy" example index 0 1`] = ` ] `; +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 ]", +] +`; + exports[`runs examples > example "transpose" example index 0 1`] = ` [ "[ 0/1 → 1/4 | note:C2 ]", @@ -7732,110 +9981,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 +10101,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 +10149,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 +10392,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 +10456,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 +10476,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 +10494,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 +10509,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 +10521,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 +10542,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 +10612,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 +10676,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__/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/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 60c587b1..199afe53 100644 --- a/website/.gitignore +++ b/website/.gitignore @@ -1,3 +1,4 @@ +.astro # build output dist/ 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 942fee9c..8e980f1c 100644 --- a/website/package.json +++ b/website/package.json @@ -6,70 +6,74 @@ "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", "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/xen": "workspace:*", - "@strudel/tidal": "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", - "hs2js": "0.0.8", - "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..490a067b 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,14 @@ 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: '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 +97,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/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 03e3d6d3..0f3d3ce1 100644 --- a/website/src/docs/MiniRepl.jsx +++ b/website/src/docs/MiniRepl.jsx @@ -1,7 +1,7 @@ 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'; @@ -28,24 +28,29 @@ export function MiniRepl({ claviature, claviatureLabels, maxHeight, + autodraw, + drawTime, }) { 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 +61,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,7 +70,7 @@ export function MiniRepl({ }); } if (punchcard) { - editor?.painters.push(getPunchcardPainter({ labels: !!punchcardLabels })); + pat = pat.punchcard({ labels: !!punchcardLabels }); } return pat; }, @@ -73,7 +78,12 @@ export function MiniRepl({ onUpdateState: (state) => { setReplState({ ...state }); }, - beforeEval: () => audioReady, // not doing this in prebake to make sure viz is drawn + onToggle: (playing) => { + if (!playing) { + // clearHydra(); // TBD: doesn't work with multiple MiniRepl's on a page + } + }, + beforeStart: () => audioReady, afterEval: ({ code }) => setVersionDefaultsFrom(code), }); // init settings @@ -109,6 +119,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()} > @@ -118,6 +129,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()} > @@ -129,6 +141,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)} >
@@ -139,6 +152,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)} > @@ -152,7 +166,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/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/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 39f52e9f..2f7eaa7f 100644 --- a/website/src/pages/learn/effects.mdx +++ b/website/src/pages/learn/effects.mdx @@ -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/samples.mdx b/website/src/pages/learn/samples.mdx index c2c166b3..ef97ec0c 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: @@ -180,11 +180,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 +201,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 +247,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 +272,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 +285,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/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/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 4a152224..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)`} /> @@ -266,7 +255,7 @@ By the way, inside Mini-Notation, `fast` is `*` and `slow` is `/`. Instead of changing values stepwise, we can also control them with signals: - + 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 06ebd6b0..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** @@ -165,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 e20551c4..813f6389 100644 --- a/website/src/repl/Repl.jsx +++ b/website/src/repl/Repl.jsx @@ -1,271 +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, - webaudioOutput, - resetGlobalEffects, - resetLoadedSounds, - initAudioOnFirstClick, -} from '@strudel/webaudio'; -import { defaultAudioDeviceName } from '../settings.mjs'; -import { getAudioDevices, setAudioDevice, setVersionDefaultsFrom } from './util.mjs'; -import { StrudelMirror, defaultSettings } from '@strudel/codemirror'; -import { clearHydra } from '@strudel/hydra'; -import { useCallback, useEffect, useRef, useState } from 'react'; -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'; -import { getMetadata } from '../metadata_parser'; - -const { latestCode } = settingsMap.get(); - -let modulesLoading, presets, drawContext, clearCanvas, isIframe, audioReady; - -if (typeof window !== 'undefined') { - audioReady = 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(); - } - }, - beforeEval: () => audioReady, - afterEval: (all) => { - const { code } = all; - setLatestCode(code); - window.location.hash = '#' + code2hash(code); - setDocumentTitle(code); - const viewingPatternData = getViewingPatternData(); - setVersionDefaultsFrom(code); - const data = { ...viewingPatternData, code }; - let id = data.id; - const isExamplePattern = viewingPatternData.collection !== userPattern.collection; - - 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, - }); - window.strudelMirror = editor; - - // init settings - - initCode().then(async (decoded) => { - let code, msg; - if (decoded) { - code = decoded; - msg = `I have loaded the code from the URL.`; - } else if (latestCode) { - code = latestCode; - msg = `Your last session has been loaded!`; - } else { - const { code: randomTune, name } = await getRandomTune(); - code = randomTune; - msg = `A random code snippet named "${name}" has been loaded!`; - } - editor.setCode(code); - setDocumentTitle(code); - logger(`Welcome to Strudel! ${msg} Press play or hit ctrl+enter to run it!`, 'highlight'); - }); - - 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 setDocumentTitle = (code) => { - const meta = getMetadata(code); - document.title = (meta.title ? `${meta.title} - ` : '') + 'Strudel REPL'; - }; - - 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 (