Ivan Holmes
aa4228f436
|
4 years ago | |
---|---|---|
chordsheet | 5 years ago | |
examples | 5 years ago | |
fonts | 5 years ago | |
ui | 4 years ago | |
.gitattributes | 5 years ago | |
.gitignore | 5 years ago | |
LICENSE | 5 years ago | |
README.md | 4 years ago | |
_version.py | 4 years ago | |
generate_version_rc.py | 5 years ago | |
gui.py | 5 years ago | |
linux.spec | 5 years ago | |
mac.spec | 5 years ago | |
version.rc | 4 years ago | |
version.rc.template | 5 years ago | |
win.spec | 5 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 a recent Python 3 interpreter. Make sure you have the dependencies installed!
Current status
Chordsheet is beta-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
Building
To build the binary distribution using PyInstaller, simply run:
pyinstaller {mac|linux|win}.spec
The generated binary will be in the 'dist' subfolder.
Version number 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'.