# ∞Open Rack: source code ∞Open Rack is a browser build of **Cardinal Mini**. Cardinal is a free and open-source modular synthesizer released under GPL-3.0-or-later. This build was prepared by The Groovemaster. It is not affiliated with, or endorsed by, Cardinal, its contributors, or any of the module authors whose work is included. This archive is the complete corresponding source for the ∞Open Rack binaries (`CardinalMini.js`, `CardinalMini.wasm`, `CardinalMini.data` and the page `rack/index.html`) published at the ∞Open Rack preview site. * Upstream base: Cardinal, commit `0a530b73273afc914ec71a78e9165cd28c53b599` (2026-07-28), with its submodules at the revisions recorded in `open-rack/SUBMODULES.txt`. * Licence: GPL-3.0-or-later (see `LICENSE`). Third-party code and artwork keep their own licences, as listed in `docs/LICENSES.md` and in each plugin folder. ## What we changed All our changes are in `open-rack/apply-openrack-patches.py` and are already applied to this tree. A full diff against upstream is in `open-rack/open-rack-changes.diff`. 1. **Removed Surge XT and Audible Instruments from the build.** Surge XT's panel art is CC-BY-NC-SA, and Audible Instruments uses a custom artwork licence. Their folders are not included. 2. **Replaced Rack's ComponentLibrary artwork.** The knobs, jacks, switches, sliders and rails in `src/Rack/res/ComponentLibrary/` were CC-BY-NC-4.0. They now hold new artwork made by `open-rack/gen-component-art.py`, released as CC0-1.0. 3. **Removed non-commercial images.** `plugins/Cardinal/res/Miku/Miku.png` (CC-BY-NC-3.0) is gone. As in Cardinal's own release tarballs, `src/Rack/res/Core` and `src/Rack/res/icon.png` are not included either. 4. **New web welcome patch.** `patches/welcome-wasm-mini.vcv` is an original, self-playing demo patch, released as CC0-1.0. One bundled example patch that needed Surge XT was removed. 5. **Build plumbing.** An `OPENRACK=true` switch skips the Surge static libraries. There is a new `make openrack` target, which builds only the web standalone. PawPaw's download URLs now use https. 6. **Web page.** `open-rack/rack/index.html` replaces `src/emscripten/CardinalMini.html`. It adds a tap-to-start overlay and new styling. 7. **Added the Infinite-Noise modules** (85 utility modules, GPL-3.0-or-later, (c) Pelle Liljendal, https://github.com/pellelil/InfNoiseRack) as `plugins/InfiniteNoise`. Their original panel art and logo (CC-BY-NC-4.0 / not for derivative works) are not included: `res/` holds new plain panels and parts, released as CC0-1.0, and a small label layer (`src/OpenRackLabels.hpp`) draws each control's name on them. The import script `open-rack/infnoise/import-infinite-noise.py` copies the code and makes our few small changes, all marked "Open Rack" and listed in `plugins/InfiniteNoise/OPEN-RACK-NOTICE.txt`; `open-rack/infnoise/gen-infnoise-art.py` draws the art. The welcome patch uses one of these modules (Stereo Balance/Pan) for a gentle auto-pan. Only the plugin folders used by Cardinal Mini are included: Cardinal, Fundamental, AriaModules, BogaudioModules (plus its helper), MockbaModular, BaconPlugs (only one style file is used), ValleyAudio and InfiniteNoise. Cardinal's own release-tarball exclusions also apply. ## How to build See `open-rack/build-wasm.sh`. In short, on Linux x86_64 with a host gcc/g++ 12 and the usual autotools, cmake, meson, ninja, pkg-config, gperf and python3: ./open-rack/build-wasm.sh This script: 1. Installs Emscripten 3.1.27 through PawPaw (`deps/PawPaw`). 2. Builds the third-party libraries. 3. Runs `make openrack OPENRACK=true HAVE_LIBLO=false NOOPT=true`. 4. Writes the output to `bin/CardinalMini.{js,wasm,data}`. To publish, copy those files next to `open-rack/rack/index.html`. The source tarballs for the third-party libraries that PawPaw downloads and links into the build (for example zlib, libpng, freetype, fftw, libsndfile, libsamplerate, jansson, libarchive and zstd) are published separately as the "third-party deps" archive. Their exact versions are listed in `open-rack/THIRD-PARTY-DEPS.txt`. ## Written offer See `open-rack/WRITTEN-OFFER.txt`. To ask for a copy of the source under that offer, email support@chrismai.ai.