MCPcopy Index your code
hub / github.com/BHSPitMonkey/Prelude

github.com/BHSPitMonkey/Prelude @main

Chat with this repo
repository ↗ · DeepWiki ↗ · + Follow
149 symbols 263 edges 41 files 30 documented · 20%
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

Prelude

A web application made for practicing reading sheet music, pitch recognition / ear training, and perhaps more.

This project is still in development.

Use Prelude in your browser by visiting: https://www.getprelude.net

Features

  • 📱 Works on any mobile or desktop device with a browser (no installation necessary)
  • ✈️ Works offline (so you can keep practicing in the subway, on a plane, etc.)
  • 🎹 Supports MIDI keyboards (and other input devices)
  • ⬇️ Supports installation ("Add to Home Screen" on mobile and run full-screen from your app launcher)

Practice Modes

Sight Reading Practice

Read the note(s) on the staff and see how quickly you can identify it. Instead of using the on-screen keys, you can also connect a MIDI keyboard and play the notes physically (Android or desktop only). Answering correctly generates a random new question.

Perfect Pitch Practice

Hear a pitch and try to identify it. Also supports input from a MIDI keyboard, as with the Sight Reading Practice mode.

Free Play

Play notes (using the on-screen keys or a MIDI keyboard) and see them instantly displayed on a staff.

Build

Before doing anything:

npm install

To run the local test server (using webpack):

npm start

To build:

npm run build

License

MIT

Attribution

This is the work of Stephen Eisenhauer (stepheneisenhauer.com).

Sources made available under the license listed above.

Core symbols most depended-on inside this repo

setState
called by 16
src/common/practice-intro.tsx
teoriaKeysToVexflowKeys
called by 3
src/sheet-music-view.tsx
tonalNoteNamesToVexflowKeys
called by 3
src/sheet-music-view.tsx
drawMusic
called by 2
src/sheet-music-view.tsx
play
called by 2
src/synth.ts
r
called by 2
src/modes/perfect-pitch-practice.tsx
getRandomState
called by 2
src/modes/perfect-pitch-practice.tsx
playSound
called by 2
src/modes/perfect-pitch-practice.tsx

Shape

Method 79
Class 70

Languages

TypeScript100%

Modules by API surface

src/modes/sight-reading-practice.tsx15 symbols
src/modes/perfect-pitch-practice.tsx15 symbols
src/application.tsx12 symbols
src/modes/free-play.tsx10 symbols
src/common/practice-intro.tsx10 symbols
src/sheet-music-view.tsx9 symbols
src/keyboard-buttons.tsx8 symbols
src/about.tsx6 symbols
src/home.tsx5 symbols
src/synth.ts4 symbols
src/modes/sight-reading-practice-intro.tsx3 symbols
src/modes/perfect-pitch-practice-intro.tsx3 symbols

For agents

$ claude mcp add Prelude \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact