I am music theory teacher who loves building my own tools. My latest project is MidiStickers, a desktop software for teaching and learning music using MIDI instruments.
The UI concept is "every tool is a floating widget", which came from my frustration with video capture setups during the pandemic. Now I just drag-and-drop and rearrange mid-lesson.
The usual flow is: play your instrument and use widgets for Staff/Instruments visualization, Roman numeral analysis, figured bass, German Funktiontheorie, jazz piano voicings, chord-scale-relationships and more. Dynamic coloring schemes can be used for note names, degrees, harmonic functions and dynamics (velocity), providing a lively visual environment that has definitely shaped my recent teaching. My "aha" moment came when a student promptly reminded me I had forgotten to turn it on before a class demonstration.
By the way, while "building in public" is trending nowadays, this software was really "built in class" - improvement came every week from battle-testing it in front of 30+ students. Needless to say there were some embarrassing crashes along the way .
Lately I am also going beyond visualization and turning it into an interactive workbook for learning keyboard harmony. You can practice intervals, chords and progressions with (auto)accompaniment and progress tracking - in my experience, nothing beats a hands-on approach!
A demo (Win/Mac) is available at https://github.com/frauber84/MidiStickers-Demo/releases/tag/...
In this demo, you can explore visualization as well as trainer tools - the second requires a MIDI controller, the first doesn't.
A Linux build is coming if I find a consistent solution for transparent windows across Linux - I use SDL3 for the drawing and this has been a challenge.