Inspiration
Thinking of the best fingering for hard passages can be the most expensive part of learning new repertoire, costing many hours of human life. It would be preferred if a computer could compute it for you.
What it does
Vivaldi uses a memoized/dynamic programming style complete search across all possible fingerings and judges the most optimal one via tunable parameters (e.g. some numerical penalties for excessive shifts, repeat fingers, etc). It also provides you a simple system to review past passages, as the best way to learn a piece is to repeatedly practice isolated tricky sections. Supports synthetic audio playback for better tuning during practice.
How I built it
Backend is Flask. I like python! Frontend is React.
What's next for Vivaldi
There is much optimization to be done of the parameters, for this timeframe I only made up some parameters manually that gave mostly reasonable results. In the future, given some user examples, the parameters could be tuned per each user's unique style (using gradient descent maybe) and specialties (different people will be faster at shifting, or maybe more practiced in fifth position). There is also commercial viability with this idea which I may pursue, but I think many violinists would prefer it be an app, so I will try to port it to iOS.
Log in or sign up for Devpost to join the conversation.