diff --git a/package-lock.json b/package-lock.json index f23f0f4a..6fc0122f 100644 --- a/package-lock.json +++ b/package-lock.json @@ -5984,9 +5984,9 @@ } }, "node_modules/flatted": { - "version": "3.4.1", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.4.1.tgz", - "integrity": "sha512-IxfVbRFVlV8V/yRaGzk0UVIcsKKHMSfYw66T/u4nTwlWteQePsxe//LjudR1AMX4tZW3WFCh3Zqa/sjlqpbURQ==", + "version": "3.4.2", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.4.2.tgz", + "integrity": "sha512-PjDse7RzhcPkIJwy5t7KPWQSZ9cAbzQXcafsetQoD7sOJRQlGikNbx7yZp2OotDnJyrDcbyRq3Ttb18iYOqkxA==", "dev": true, "license": "ISC" }, @@ -8948,9 +8948,9 @@ "license": "ISC" }, "node_modules/nan": { - "version": "2.25.0", - "resolved": "https://registry.npmjs.org/nan/-/nan-2.25.0.tgz", - "integrity": "sha512-0M90Ag7Xn5KMLLZ7zliPWP3rT90P6PN+IzVFS0VqmnPktBk3700xUVv8Ikm9EUaUE5SDWdp/BIxdENzVznpm1g==", + "version": "2.26.1", + "resolved": "https://registry.npmjs.org/nan/-/nan-2.26.1.tgz", + "integrity": "sha512-vodKprLlmaKmraa9E/TxHQwpH4eKYTJbLdeQE49pb9GOmrLs68zESjJu0LQOz1W6JwJmftOWD5Ls4dpd/elQtQ==", "dev": true, "license": "MIT", "optional": true diff --git a/packages/app/studio/public/manuals/devices/midi/spielwerk.md b/packages/app/studio/public/manuals/devices/midi/spielwerk.md new file mode 100644 index 00000000..76372deb --- /dev/null +++ b/packages/app/studio/public/manuals/devices/midi/spielwerk.md @@ -0,0 +1,457 @@ +# Spielwerk + +A programmable MIDI effect that lets you write custom note transformations in JavaScript. Filter, reshape, generate, or delay notes — declare parameters with knobs and hot-reload changes in real time. + +--- + +![screenshot](spielwerk.webp) + +--- + +## 0. Overview + +_Spielwerk_ is a scriptable MIDI effect device. You write a `Processor` class in JavaScript that receives incoming notes and yields transformed or new notes. Parameters declared in the code appear as automatable knobs on the device panel. + +Example uses: + +- Custom velocity curves and mapping +- Pitch transposition and micro-tuning +- Chord generators +- Arpeggiators and step sequencers +- Probability-based note filtering +- Note echo and delay +- Humanization and timing randomization + +--- + +## 1. Editor + +Click the **Editor** button on the device panel to open the full-screen code editor. The editor uses Monaco (the engine behind VS Code) with JavaScript syntax highlighting. + +The status bar at the bottom shows the current state: + +- **Idle** — No compilation attempted yet +- **Successfully compiled** — Code compiled and loaded into the engine +- **Error message** — Syntax error, runtime error, or validation failure + +--- + +## 2. Parameters + +Declare parameters using `// @param` comments at the top of your code: + +```javascript +// @param amount 0.5 +// @param chance 1.0 +// @param offset +``` + +Each `@param` directive creates an automatable knob on the device panel. The syntax is: + +``` +// @param