RobbieGM / cadence

An ML-driven web app to help composers get inspired for where their piece could go next harmonically. Cadence generates or completes chord progressions based on existing music, allowing for organization by style or mood.

Home Page:https://cadence-robbiegm.vercel.app

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Cadence

A simple web app to help composers get inspired for where their piece could go next harmonically. Cadence generates or completes chord progressions based on existing music, allowing for organization by style or mood.

Highlights

  • Offline-capable PWA and fully client-side
  • ML powered by Tensorflow.js
  • Built with desktop power users in mind, with useful keyboard shortcuts

Future enhancements and bugs

  • Modal dialog fixes
    • Need to reduce animation jank, should probably ditch native <dialog> since it uses slow CSS selector [open]
  • Model training in Web Worker
  • TensorFlow bundle size reduction (last time I tried using its profiling, it crashed my whole computer)
  • navigator.storage.persist
  • Change underlying structure of chords from root and quality to notes which are on/off
    • This will reduce the dimensionality of the model as well as allow for more expressivity
    • The model will be able to more easily "intuit" which chords are similar to others by note overlap
  • MIDI keyboard support
  • Closing and reopening modal dialog should reset tab focus to first element

Available Scripts

In the project directory, you can run:

npm dev or npm start

Runs the app in the development mode.
Open http://localhost:3000 to view it in the browser.

The page will reload if you make edits.

npm run build

Builds the app for production to the dist folder.
It correctly bundles Solid in production mode and optimizes the build for the best performance.

The build is minified and the filenames include the hashes.
Your app is ready to be deployed!

Deployment

You can deploy the dist folder to any static host provider (netlify, surge, now, etc.)

About

An ML-driven web app to help composers get inspired for where their piece could go next harmonically. Cadence generates or completes chord progressions based on existing music, allowing for organization by style or mood.

https://cadence-robbiegm.vercel.app


Languages

Language:TypeScript 81.9%Language:CSS 16.9%Language:HTML 1.0%Language:JavaScript 0.1%