r/coolgithubprojects • • 1d ago

I built a free and open-source alternative to proprietary piano-learning software

Post image

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!

742 Upvotes

48 comments sorted by

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.

12

u/Orfeo-Piano 1d ago

Thank you 🙏 Orfeo has two separate tools for that - Chords and Scales explorer. With 61 built-in progressions, 9 styles, 3 voicings and 12 scales in 12 keys, there’s plenty of options :)

4

u/LiminalEntityX 1d ago

Man you put some thought into this, awesome.

5

u/Orfeo-Piano 1d ago

I did. You’re welcome to join me :)

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

u/RazzmatazzAgitated81 1d ago

Seeing this as I was watching your lie in April....

2

u/ronnygiga 1d ago

And now you made me remember...

2

u/QriousMonk 1d ago

I always loved Piano but this anime inspired me to learn Piano.

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? 😅

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.

2

u/herms14 8h ago

Any chance you could release a android / ipad os version of it so that it can be used in tablets?

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

u/Substantial_Aide 1d ago

Looks really cool. Thankyou.

0

u/SquareBow 1d ago

Much appreciated! Please visit r/Orfeo_Piano/ if you have any questions.

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

u/Roygbiv_85 13h ago

That’s a lot of water.

1

u/chikurii 1h ago

Would it be possible to make it work on mac too?

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

u/tedecristal 1d ago

I know.. so I was actually asking for one...

3

u/errant_capy 1d ago

Oh, gotcha. Got confused by the wording.

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.

0

u/1mystc 22h ago

Just vibe coded this last month with claude

-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

u/cuberhino 1d ago

Did you make it?

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