It’s already been two weeks since the previous update? Bleh, I program too slowly. The undo / redo system was a bit tricky to implement, as was exporting MIDI files. The saving and loading pieces from a MongoDB database is also tricky, but that’s mostly because I’m having to reacquaint myself with how it works. It should only take about another day’s worth of work to finish that up, I hope.
I’ve added just one more thing to the list that I want to finish before I start focusing more on the back-end, and that’s implementing chord markers. The first thing I’ll implement on the back-end is a chord progression generator, since that’s pretty easy (and hardly innovative), so of course I’ll need a way to display them.
After chords, I can move on to melodies and accompaniment, which is where I hope things will get more interesting.
- Playing features
Play from a selected position✓- Play or loop a selection (skip!)
- Show play location in minutes / seconds (skip!)
Pause play (saves play position)✓Show / hide measure numbers✓
- Move / create tempos (or tempo groups for accelerandos?) (skip!)
- Note editing
Move / create / delete/ edit notes or note groups (skip!)- Copy / paste notes or note groups (skip!)
- Edit note velocities (skip!)
- Measure editing
Delete / create / edit measures✓- Delete / create / edit sections (measure groups)
- Track editing
Load track instrument from MIDI file✓Edit track instrument✓- Edit track volume / stereo positions (skip!)
- Auto-color tracks differently (skip!)
- Chords
- Create / delete chord marks (only triads and 7ths for now)
- Color lines by chord voice
- Load / display / edit key signatures (skip!)
- MIDI loading
Load note velocities from MIDI✓- Fix MIDI loading bug: Extra note at end of file (skip!)
- Saving / exporting
- Save / load music pieces to / from personal database
Import / Export MIDI files✓- Export music to WAV or MP3 (skip!)
- Bookmark sections of a piece (skip!)
Zoom in and out (horizontally)✓Undo / redo support (Ctrl+Z)✓- Import soundfonts from computer (low priority) (skip!)
- Account
- Confirm email (if necessary) (skip!)
- Log in / out / reset password (skip!)
- Edit optional personal info (skip!)
- Usage stats (skip!)
- Final design pass (make everything look good) (skip!)