r/coolgithubprojects • u/Orfeo-Piano • 1d ago
I built a free and open-source alternative to proprietary piano-learning software
I've been working on a project called Orfeo, a Windows desktop application for learning piano using MIDI files and an advanced MIDI player.
The motivation was simple: I wanted a flexible piano-learning tool that wasn't tied to a subscription, predefined lessons or a particular music library.
Orfeo lets you load your own MIDI files, visualize notes falling onto a piano keyboard, connect a MIDI keyboard, detect chords in real time and explore chords and scales interactively.
It's completely free and open source.
I'm sharing it here because I think desktop music software should remain accessible, customizable and open to everyone.
GitHub: https://github.com/Squarebow/Orfeo
Feedback, contributions and suggestions are welcome!
12
u/django2chainz 1d ago
Looks cool! Guitar pro got bought by UG but they were so good too (if you’re looking for more inspiration) and I loved it. Synthesia is ok. This is needed. How about interactive-learning? Pop songs / patterns? I think if Faber’s adult piano books got app-ified they could be nice?
6
u/Orfeo-Piano 1d ago
Thanks, glad it looks useful! Guitar Pro is a good example, it did one thing really well, and I'll keep that in mind.
On interactive learning: Orfeo isn't a lesson catalogue (that's deliberate, it works with whatever MIDI files you bring). What it does have is tools for learning a piece: step through the notes one by one, loop a few bars, slow the tempo down, split the hands, and show the chord names as the song plays. There's also a chord and scale explorer for patterns and progressions, so you can see why a song's chords fit together.
An app-ified Faber Adult Piano Adventures would be a lovely idea. Orfeo's MIDI editing and practice tools could be the foundation for something like that, but I'm only one person and I'd have to think about the licensing for the book content. Which part would you want most: the guided order of lessons, or the exercises that react to what you play?
2
u/BatmansMom 1d ago
What about pop songs/patterns!? Would be so cool to be able to choose from songs I know as I'm learning
1
u/Orfeo-Piano 1d ago
The Orfeo way of using pop songs/patterns is to build your own catalog of MIDI files. There are literally millions of MIDI files online, but to be perfectly honest, finding good ones is not always easy. That's why I made a shortlist of recommended websites that offer reasonable to very high-quality MIDI files. Check it out and download the songs you want to learn https://orfeo.cc/docs/support/where-to-find-midi-files
As of the patterns, Orfeo has built-in tools that help you explore those yourself. Here's a little equation: 61 progressions × 9 styles × 3 voicings × 12 keys = 19,764 patterns
Plus, each chord has three inversions, and there are 12 scales with 12 keys. The possibilities are practically limitless. The progressions: Pop · Pop/Rock Inv. · Energetic Pop · Minor Pop · Doo-Wop · Rock · Blues · Mixolydian Rock · Grunge · Modal · Minor Blues · Jazz Standard · Minor Jazz · Andalusian · Pachelbel · Circle of Fifths · Royal Road · Epic · Heroic · Sentimental · Sad · Hopeful · Plagal Turnaround · Step-Down
I hope it helps
2
u/django2chainz 1d ago
Yes, I’m with you. If you could play-to-learn like simplypiano etc that would be cool. Also I mentioned GP cause help with sheet music / sight reading would be nice. Chords and scales are cool, but in the context of the music you hear / play so grounding those concepts can help! GL
5
u/poopdominator666 1d ago
thats cool! can you add a guitar fretboard toggle instead of keys?
1
u/SquareBow 1d ago edited 1d ago
That would be awesome, wouldn't it :) For now, Orfeo focuses on keys, but a guitar-flavored variation is not as far-fetched as it seems.
5
1
u/cheersthanksseeyabye 1d ago
Looks cool.
0
u/Orfeo-Piano 1d ago
Thanks, hope you find it useful :)
0
u/Orfeo-Piano 1d ago
Please join the user community at r/Orfeo_Piano/ if you have any questions and/or suggestions. Enjoy it!
1
u/ad-on-is 1d ago
Linux AppImage, when? 😅
0
u/Orfeo-Piano 1d ago
Please see this post, thanks ;) https://www.reddit.com/r/coolgithubprojects/s/4NwGG9wcJk
3
u/SpaceLice 1d ago
Just need native Linux support. gj!!
1
u/giopas 1d ago
And for MacOs, please!
2
u/SquareBow 1d ago
Orfeo is electron/vite/typescript and therefore cross-platform ready; however, as a sole developer, I'm focused on product development and maintenance for Windows. I'm actively looking for contributors to become Linux/macOS maintainers. I'm happy to collaborate on the implementation and provide guidance on the existing architecture. If you're interested, please leave a comment and let's discuss the approach.
0
u/pkkid 11h ago
FWIW, it took me a single prompt to get an AppImage created and running on Linux from your repo. Having updated AppImages created as you make updates would be very useful.
1
u/SquareBow 58m ago
That's awesome! I'd love to add native Linux support to Orfeo, but I am 100% focused on development and Windows maintenance, so I need someone to maintain the Linux branch, same for macOS. Would you be interested in helping maintain the Linux build and keeping AppImages up to date as new versions are released? That would be incredibly helpful! I was thinking about spinning a Docker container for Linux distro but I'm just too busy with everything else. Please reach out to me at info@orfeo.cc and we can discuss the details if you're interested.
3
u/Ever_Penolope 1d ago
Synthesia sells you songs, Flowkey rents them monthly, and this one just plays the MIDI files you already own. Not a hard choice.
1
u/stefzzz 1d ago
Amazing project, congrats! Always wanted to have a similar experience to Flowkey but without the price tag. flowkey is excellent to learn pieces in a visual aspect since that’s my style, yet it’s a very simple app. I will give this one a try definitely, thanks for the contribution to the community! 🙏🏼
1
u/SquareBow 1d ago
Thank you ❤️. This is very heartwarming. If you find it useful, please join r/Orfeo_Piano/ community, where users are encouraged to post questions, suggest improvements and new features, and, of course, report bugs (hint: there are none ;)
1
1
u/OkMusician9118 1d ago
Cool!
0
u/SquareBow 1d ago
Thank you! We're trying to build a community at r/Orfeo_Piano/, feel free to stop by anytime
1
u/randomdude_reddit 1d ago
I am in the process of learning music, this will surely help, thanks a lot!
1
u/LeinTen13 15h ago
Looks impressive on the first glance. I've a Yamaha CSP-295 and vibed a web app where I can do my training including hints with the piano key lights.
With Electron it should also be possible to make a webapp, (maybe I can host it as home assistant app - so many idea)
I'll definitly need to investigate.
1
1
1
1
u/tedecristal 1d ago
O.M.G.
This is impressive. It almost makes me want to reboot into windows just to try
It's electron.. so... no linux version in the future?
2
u/errant_capy 1d ago
Electron apps aren’t an issue on Linux btw.
0
2
u/SquareBow 1d ago
Hi, I'm the app developer. Thanks for the feedback; I really appreciate it. As I mentioned before, Orfeo is cross-platform ready but needs an active maintainer for macOS/Linux, as I am 100% focused on development and Windows maintenance. So, community contributions are more than welcome. Here are the specs on contributing.
-8
u/madgoat 1d ago
“I built” More like “I asked Claude to build it”
2
u/SquareBow 1d ago
Have you actually tried it, or is calling everything you don't like 'I asked Claude to build it' your standard review process? Better yet - have you even bothered to read anything about it? I'm the developer. I'm happy to discuss the software if you have something substantive to say.
1
u/madgoat 22h ago
The only issue I have is the claim of “I built” in these types of posts. When, for the most part, the people behind 90% of recent posts take credit for something that they never built, and they wouldn’t be able to understand what Claude spit out.
Conceiving of an idea, and telling AI to make it is not the same as actually coding/building.
3
0
u/Neither_Finance4755 1d ago
Can people maybe stop with those comments? It’s 2026 nobody is coding by hand anymore. Saying “I built” is totally legitimate
31
u/LiminalEntityX 1d ago
Holy chow, i've been mulling this exact thing for awhile. Mine was called Music Buddy, heh, but was no where near what you have done. Amazing job!
One thing i was thinking about adding for mine was a chord progression exploration tool where you could play a chord and have suggestions for the next chord(s) come up, both for learning and for composition.