This is a simple musical MIDI file player and Piano (using keyboard). NEZ is a 2D Framework specifically uses C# and Monogame.
https://github.com/prime31/Nez
ECS is used to allow for separation of concern when coding. For example, I choose to update my components using a separate "System".
However, You will find most examples of NEZ to be using updates inside "Components". I don't like that. NEZ is flexible enough to allow you to choose which way to go !!
I used Sanford library for MIDI files. Its a wonderful library for reading/writing and playing MIDI files.
ECS explained here https://www.gamedev.net/articles/programming/general-and-gameplay-programming/understanding-component-entity-systems-r3013/