This is an interactive web application designed to help users learn and explore music theory concepts visually and intuitively. Whether you're a beginner or an advanced musician, this app provides clear explanations, interactive diagrams, and accurate music notation to make learning music theory engaging and accessible. Built with modern web technologies, it offers a seamless and responsive experience across devices.
🔗 https://hannahro15.github.io/music-theory-app/
This project is deployed to GitHub Pages using the gh-pages npm script.
From music-theory-project, run:
npm run deployThis runs npm run build and publishes dist/ to the gh-pages branch.
- Open your repository on GitHub.
- Go to Settings → Pages.
- Set Source to Deploy from a branch.
- Select branch gh-pages and folder /(root).
- Confirm the
gh-pagesbranch exists and was updated after deploy. - If the site looks stale, do a hard refresh (
Cmd+Shift+R) or open in an incognito window. - If deploy fails locally, run
npm cithennpm run buildand fix reported errors.
- Interactive visualizations of scales, intervals, and arpeggios
- Modern, responsive UI with React and Bootstrap
- Navigation for scales, intervals, arpeggios, and a musical glossary
- Educational explanations for each music theory concept
- Built with VexFlow for accurate music notation rendering
- Node.js (v18 or newer recommended)
- npm
- Clone the repository:
git clone https://github.com/hannahro15/music-theory-app.git cd music-theory-app/music-theory-project - Install dependencies:
npm install
- Start the development server:
npm run dev
- Open http://localhost:5173 in your browser.
- React — UI library for building interactive user interfaces
- VexFlow — Music notation rendering engine
- Bootstrap & React-Bootstrap — For responsive and modern UI components
- Vite — Fast development and build tool
src/pages/— Main pages for scales, intervals, arpeggios, glossary, and homesrc/components/— Reusable components for music notation and layoutpublic/— Static assetsindex.html— Main HTML entry point