How lorenaedwin08-hub/melodymate works
MelodyMate is an accessible, voice-guided music-learning web app. Learners choose a module, hear or explore notes, and can submit a singing recording for note, pitch, and timing feedback. The graph shows the documented web/API capabilities alongside the sampled singing-analysis implementation and standalone MIDI support. Browser-to-API wiring and any app-level MIDI workflow were not shown in the excerpts, so those links are marked unverified or omitted.
Main entry points: main.py FastAPI endpoints · index.html Accessible page · app.js Browser interface · notes.py Note mapping
Components 15
Learning experience
- Browser interface
app/static/app.js - Accessible page
app/static/index.html - Interface styling
app/static/style.css
Web application
- FastAPI endpoints
app/main.py - Reference audio
core/synth.py
Singing analysis
- Pitch tracking
core/pitch.py - Note segmentation
core/segment.py - Melody comparison
core/melody.py - Structured feedback
core/feedback.py - Timing feedback
core/timing.py - Spoken summary
app/simple_feedback.py
Music domain
- Note mapping
core/notes.py
Input support
- MIDI reader
core/midi_input.py
Other components
- Learner
- MIDI keyboard
Connections 16
- Learner → Browser interface: uses
- FastAPI endpoints → Accessible page: serves page
app/main.py - Accessible page → Browser interface: hosts behavior
- Accessible page → Interface styling: uses styles
- Browser interface → FastAPI endpoints: requests learning data
- FastAPI endpoints → Reference audio: generates reference
app/main.py - FastAPI endpoints → Pitch tracking: analyzes recording
app/main.py - FastAPI endpoints → Note segmentation: segments pitches
app/main.py - FastAPI endpoints → Melody comparison: compares notes
app/main.py - FastAPI endpoints → Structured feedback: generates feedback
app/main.py - FastAPI endpoints → Timing feedback: assesses timing
app/main.py - FastAPI endpoints → Spoken summary: summarizes results
app/main.py - FastAPI endpoints → Note mapping: maps piano keys
app/main.py - Note segmentation → Note mapping: converts pitches
core/segment.py - Structured feedback → Note mapping: spells note names
core/feedback.py - MIDI keyboard → MIDI reader: sends events