A microtonal scale research app chiefly dedicated to ternary scales (scales with three distinct step sizes). It focuses on aberrismic theory, developed by groundfault, inthar, and others.
-
Install Node.js dependencies:
npm install
-
Build and serve the development server:
npm run serve
This will compile the Rust code to WASM and start a dev server at
http://localhost:8080/. -
For a production build:
npm run build
The output will be in the
dist/directory.
To check the Rust code compiles:
cargo checkTo run Rust tests:
cargo test- Get the set of all scales (up to mode) with a certain step signature.
- Given a step signature, it gives you tuples of JI steps with bounded complexity for the scale, assuming octave equivalence. (The complexity bound on most steps means that the search is not exhaustive.)
- Given step signature, it displays the ed(equave) tunings.
- When you select a tuning on the results page, the SonicWeave code is displayed.
- JI-agnostic 2D lattice view for every scale.
- Non-octave equaves are supported (enter as a JI ratio like "3/1").
- Configurable tuning bounds:
- Max ED size (default 111)
- Min/max smallest step size in cents (default 20–200)
- Every scale comes with a Scale Profile that shows properties of the scale selected or queried
- guide frame (guided generator sequence; multiplicity or interleaving offset_chord; complexity)
- monotone MOS properties satisfied (L=M, M=s, s=0)
- maximum variety
- Filter for
- whether the scale is a MOS substitution scale
- length of the guided generator sequence
- guide frame complexity
- monotone MOS properties
- maximum variety
If you ever see the status message "RuntimeError: unreachable executed" while running the web app, it's a bug (something that's not supposed to happen is happening). Please report it. When an error happens, just refresh the web app.
