https://github.com/abhishekvash/bare-minimum-theory
Browser-based chord progression builder. Users build chord progressions manually, preview audio, and export to MIDI for use in DAWs.
https://github.com/abhishekvash/bare-minimum-theory
browser-based music-composition music-theory-toolkit
Last synced: 3 months ago
JSON representation
Browser-based chord progression builder. Users build chord progressions manually, preview audio, and export to MIDI for use in DAWs.
- Host: GitHub
- URL: https://github.com/abhishekvash/bare-minimum-theory
- Owner: abhishekvash
- Created: 2025-11-13T17:46:02.000Z (7 months ago)
- Default Branch: main
- Last Pushed: 2026-01-12T14:36:29.000Z (5 months ago)
- Last Synced: 2026-01-12T21:17:05.632Z (5 months ago)
- Topics: browser-based, music-composition, music-theory-toolkit
- Language: TypeScript
- Homepage: https://bare-minimum-theory.abhishekvash.xyz/
- Size: 585 KB
- Stars: 5
- Watchers: 1
- Forks: 0
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- Agents: AGENTS.md
Awesome Lists containing this project
README
# Bare Minimum Theory
A browser-based chord progression builder that lets you create, preview, and export chord progressions to MIDI. Build progressions through exploration and experimentation—music theory constraints are optional helpers, not rules.
## Philosophy
**Freedom First**: All music theory constraints (scales, modes) are opt-in helpers, not enforced rules. Create any chord progression you want through "beautiful blunders and blind discovery."
## Features
- **Three-click chord builder** - Select root → quality → add to progression
- **37 chord qualities** - Major, minor, 7ths, 9ths, 11ths, 13ths, sus, add, and altered chords
- **Audio preview** - Hear chords and progressions instantly with looping playback
- **Progression canvas** - Arrange up to 4 chords with drag-and-drop reordering
- **Chord controls** - Inversions, 5 voicing presets, octave transpose, randomize
- **Chord palette** - Save and organize chord ideas for later use
- **Optional scale filter** - Highlights chords in your selected key/mode
- **MIDI export** - Download your progression as a .mid file
- **MIDI output to DAW** - Preview with your own VSTs via virtual MIDI
- **DAW sync** - Sync tempo and transport (Start/Stop) via MIDI Clock
## Tech Stack
- **Framework**: SvelteKit + TypeScript
- **UI**: shadcn-svelte components with Tailwind CSS
- **Audio**: Tone.js (Web Audio API wrapper)
- **Music Theory**: @tonaljs/tonal
- **MIDI**: midi-writer-js
## Getting Started
Install dependencies:
```sh
bun install
```
Start the development server:
```sh
bun run dev
```
Open [http://localhost:5173](http://localhost:5173) in your browser.
## Development
```sh
# Run development server
bun run dev
# Run development server and open in browser
bun run dev -- --open
# Type-check the project
bun run check
# Format code
bun run format
# Lint code
bun run lint
# Run tests (CI mode)
bun run test
# Run tests in watch mode
bun run test:watch
# Run tests with UI
bun run test:ui
```
## Building for Production
```sh
# Create production build
bun run build
# Preview production build
bun run preview
```