A playful exploration of sound, color, and proportion
This is the source repository for Tonewise, an app I made for playing with musical relationships.
I have a lot of things I'd like to do with it, but no timelines or anything like that. If there's something that you think would be cool to see in the app, let me know or open an issue.
I'm especially interested in your feedback if you perceive color differently than I do. I've tried to make the app accessible to people with color perceptual issues by adding alternative color palettes in the app settings, but there's no substitute for direct experience.
Click the image below for a quick video of me playing around with the app and installing it to my home screen:
This project is licensed under the GNU General Public License, version 3, except where indicated otherwise.
In addition to dependencies pulled in via NPM,this repo includes "vendored" copies of a few bits of useful code, with some light modifications.
- unmute-ios-audio (MIT license)
- scale-color-perceptual (ISC license)
You'll need Node JS - I've been using v20, but any recent one should do. You'll also want a browser or two - there's a lot of SVG and CSS grid crimes in the code, so I try to test across the "big 3" (firefox, chromium, safari).
Install dependencies:
npm install
Run a dev server:
npm run serve
The app should show up at http://localhost:8000/src/
note: if you go to just
http://localhost:8000/
you'll get an error message, so make sure to go to the/src/
path.
Run tests (mostly just hello world so far):
npm run test
Open a new blank profile in Firefox or Chrome (useful for testing without your usual extensions, etc):
npm run firefox
# or:
npm run chrome
Build a production bundle:
npm run build
The output in dist
can be served from any static site host.
To preview the production build, I usually just use python to pop up a server on port 3000:
python3 -m http.server 3000