Sheet Music software project

Share on:

Overview

I’ve been using a program to display sheet music on my computer. It’s not bad, but I wanted to have some features that it didn’t have. So, what is a guy to do but sit down and write his own sheet music software? Open source, of course, so others can build on it, improve it, and I can shamelessly use what they’ve written.

The goal was to provide at least:

  1. Use PDFs as a starting point.
  2. Provide any conversion needed in the program with a nice GUI.
  3. Allow either 1 or 2 page displays.
  4. Make sure the aspect ratio of the original image can maintained, or expand pages to fit the display.
  5. Have flexible navigation keyboard shortcuts. Should be able to pick from a list of reasonable options.
  6. Have an arbitrary number of bookmarks with custom names.

Eventually, I’m going to look at:

  1. Allowing annotations within the program that are separate from the page images.
  2. Use PDFs directly instead of converting each page to an image.
  3. Allow arbitrary zoom on a page.
  4. Allow pages, rather than books, to have preferences (such as orientation)
  5. Provide packages for different platforms to make it easier to install.
  6. Look at moving everything to Sqlite3. This will allow more data to be incorporated and to expand the use.
  7. Provide a way to search with various criteria (composer, music type, partial title)

Software used

  • Python, 3.6 or above. I chose Python for severalreasons: it’s widely available, it’s fairly easy to use, there are quite a few graphic packages available, and I wanted to learn a new language. I had considered GO, which I really like, but the support isn’t as complete as Python. Perhaps I’ll rewrite it in the future to take advantage of the speed and smaller size offered by GO.
  • Qt PySide6 - for graphic handling. I wanted something multi-platform that tried to adhere to each platform’s standards. There are quite a few GUI packages available but many don’t have extensive language support or don’t always follow standards. (Qt may not be 100% perfect but it’s pretty good.)

Documentation

More information will be posted soon along with links to the github repository.

Release

I’ll be upload it to GITHUB soon, but package releases and help files will be much slower in coming. There will be incremental changes, which will be posted here and in the GITHUB repository.