MasterOfTheBus / Crescendo

A website to track piano progress
0 stars 0 forks source link

FunStuff

Idea

Design Requirements

Tech Stack - Implementation Details

A: Listen as you play (need more research)

  • Give you a rating.
  • This is a horrible idea but... (I love it already) we train classifiers with labelled examples of good piano music (Yiruma) and bad piano music (cats jumping on piano) and we predict a regression score on audio of your practices. => Super naïve method
  • Possibly use synthesia as a way to compare

A: Nostalgic factor

  • Save first and last audio to compare progress. However, people won't revisit first audio that often because they've seen how bad it is.

A: Social factor of connecting to Soundcloud

  • Publish your audio samples under a public/private account and await Internet's judgement, assuming people will listen to exercises.

Roadmap

Note: Create Github Issues for each task and designate roles.

  1. Setup Github repo
  2. "Hello World" on MEAN stack (we both work on it but ultimately git push one of our copies) with blank webpage.
  3. CRUD mock entry on MongoDB (CLI usage, no UI yet).
  4. Deployment blank MEAN app (Heroku/github pages?)
  5. Design a minimal page with buttons/links to create/read/update/delete exercises. Get data through the stack
  6. Design the UI
  7. Implement the scheduling algorithm (backend)
  8. Research on how to store clicks
  9. Create data visualization that updates based on database(?) or clicks(?)
  10. Will figure as it goes ...

FAQ:

Q: How do we decide skills? we don't...?

Assumption: By completing the book, you ... more or less... master piano? Sure!

Q: What if you don't want to play it? Ignore?

  • If you think it's easy
    • You can choose not to play it, and mark the exercise as 'easy" => will not revisit for a long time
  • If you think it's hard
    • You can choose not to play it, and mark it as "hard/un mastered" => will revisit soon

Q: Does one add all exercises in the beginning? Or add as you go?

Add as you go. Algorithm should handle.

Timeline