Archival of a set of 5 microtonal and overtone Marimbas that were given to CalArts this year.
npm install
npm run build:dataThe data build validates every CSV in manifest/, normalizes rows to canonical bar objects, and writes deterministic JSON artifacts to data/bars/.
npm install
npm run devFor a production build (including fresh data generation), run:
npm run buildThis builds the React/Vite static site and copies generated JSON artifacts into dist/data/bars for static hosting.
npm install
npm run devThe app consumes static JSON in /data/*.json generated from /manifest/*.csv.
npm run data:buildTo enforce all audio file paths exist during data generation:
STRICT_AUDIO=1 npm run data:buildThe Vite base path is configured for project pages (/microrimba/).
A production build always regenerates JSON data first:
npm run build
npm run preview- Grouping modes: The home Pitch Index supports Unique (cluster representative rows) and All bars (every bar in Hz order). Unique mode can expand to show member bars.
- Tolerance presets: Unique clustering uses presets of ±5c, ±15c, or ±30c from
pitch_index.json. - Hz formatting rule: Hz values are formatted adaptively as
<100 => 3 decimals,100-999.999 => 2 decimals,>=1000 => 1 decimal; the prefix≈appears only when rounding changed the stored value. - Composite behavior: In Instrument Pads, selecting Composite plays representative bars and shows
×Nfor grouped member counts when applicable.
After npm run build, confirm the generated fallback page exists:
test -f dist/404.htmlAfter deploying to GitHub Pages, verify deep-link fallback behavior:
- Open
https://cbassuarez.github.io/microrimba/scale/9edodirectly. - Refresh that page.
- Confirm the app route loads (not a GitHub hard 404).
- Confirm
view-source:shows built assets (not/src/main.tsx).
Bravura (SMuFL) and HEJI2 are included for notation glyph rendering workflows.
Font binaries are expected under public/fonts/, and license scaffolding is tracked under third_party/.