You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Ivan Holmes 70e2d4e7d3 remove debug print statements and make bg grey 2 years ago
chordsheet get MDI working properly, fix some longstanding bugs 2 years ago
csgui remove debug print statements and make bg grey 2 years ago
examples add read support for simple macro language 4 years ago
fonts repository created 5 years ago
ui slightly improve pagesetup ui 2 years ago
.gitattributes repository created 5 years ago
.gitignore fix for flashing/cut off preview and pagesetup ui slimmed 2 years ago
LICENSE repository created 5 years ago
README.md Update the readme 3 years ago
_version.py MDI pretty much working 3 years ago
cli.py get MDI working properly, fix some longstanding bugs 2 years ago
generate_version_rc.py script to generate version.rc for windows 4 years ago
gui.py remove debug print statements and make bg grey 2 years ago
linux.spec Update linux.spec to add pyqt5.sip hidden import 3 years ago
mac.spec disable UPX for mac 4 years ago
requirements.txt Update linux.spec to add pyqt5.sip hidden import 3 years ago
version.rc MDI pretty much working 3 years ago
version.rc.template update version.rc.template to actually work 4 years ago
win.spec Edit win spec file once more 4 years ago

README.md

Chordsheet

Chordsheet is a piece of software that generates a chord sheet, with a simple GUI. It can load and save chordsheets in its own XML-based format, and can save them in PDF format for printing. It's now possible to write a chordsheet in a custom macro language, and import this for further editing in the GUI. See the examples folder for details.

I wrote Chordsheet because no other software offered what I was looking for. I did not want to have to enter lyrics (most of the music I am charting is instrumental anyway), needed definite timing information, and wanted to be able to represent guitar and piano chords (with a view to supporting other instruments in future).

Chordsheet works on a system of blocks, each with a certain length. Blocks may have an assigned chord, or additional information. These blocks can then be ordered and the output generated.

Get started

To run Chordsheet, go to the Releases tab and download the most recent version for your OS. Releases are currently provided for macOS, Linux and Windows. These binaries are created with PyInstaller and so can't be used for development. You do not need to install anything else to run Chordsheet this way.

To develop Chordsheet, clone this repository and run gui.py using Python 3.7 or newer. Make sure you have the dependencies installed!

Current status

Chordsheet is alpha-grade software. Most things should work, but I haven't tested it too extensively.

Features

  • Guitar and piano chords can be entered and rendered
  • Multiple sections of the same piece are supported
  • Supports reading Chordsheet macro files (custom macro language designed to make it easy to quickly generate chordsheets, see examples folder)
  • High quality PDF output

Limitations

  • No support for lyrics or melody (use something else!)
  • PDF preview is blurry on high DPI monitors
  • Chord names and notes can spill out of their block if it's not big enough (partially remedied by allowing the user to change the beat width)
  • Poor font handling (choice of either FreeSans or Helvetica Neue if installed)
  • No internal support for printing

Dependencies

Chordsheet depends on pymupdf (to show the preview), reportlab (to generate the PDF), and PyQt5 (for the GUI). Also, a font that supports musical symbols is required. A copy of FreeSans is bundled (in the fonts folder). This command should sort you out:

pip3 install pymupdf reportlab pyqt5

Note that if you have downloaded a binary from the Releases tab, these libraries are included already so you don't need to install them separately.

Building (freezing)

To build the binary distribution using PyInstaller, simply run:

pyinstaller {mac|linux|win}.spec

The generated binary will be in the 'dist' subfolder.

Version numbering on Windows

If you are building on Windows and alter the version number, make sure to run generate_version_rc.py to update the version.rc file. This file is included in the generated executable and contains the version information viewable in Windows Explorer properties.

License

Chordsheet is licensed under the AGPLv3, included in full in 'LICENSE'.