Skip to main content

A tool to manage books of chords for bands.

Project description

ChordBook
=========

A tool to manage books of chords for bands.

Options
-------

* -h, --help show this help message and exit
* -v, --version show version and exit
* -c, --currentdir write to current directory instead of a subdirectory
named after the output format
* -f FORMAT, --format=FORMAT
output format: 'text' or 'html' (default is html)
* -i INFILE, --input=INFILE
location of JSON-formatted .cbk file with song data
* -o OUTFILE, --output=OUTFILE
specify name of output file directly;
default is to change suffix of input file
* -s, --stdout send output to stdout instead of writing to file


Input
-----

Data is stored in JSON format, in files suffixed .cbk by convention.

There are two 'objects' - these become 'Book' and 'Tune' objects internally
as follows.

Book contains:

* band - a string containing the band name
* version - a string containing a version string for the book
* tunes - an array of Tunes

Tune contains:

* name - the name of the tune
* composer - the name of the composer (optional)
* credit - name of the original artist (for covers, optional))
* time - the time signature of the tune.
* key - the key of the tune
* transpose - the key we display the tune in (optional)
* structure - an array of chord elements indicating the structure of the tune
* chord elements - arbitrarily named, containing chord elements

Chord elements are structured as follows:

* A series of chord names separated by the string " | "
* Chord names are currently free-form
* Eg "Ebmaj7 | Bb7 | Gmb5 | Fm"
* Repeat sections may be specified using '|:' and ':|'
* HTML output prettifies '#', 'b', repeats, 'pause', 'maj7' and 'm7b5'

For now you need to enter your JSON directly.

See examples/test.cbk for an example.

Something like http://www.jsoneditoronline.org/ may help.

Output
------

Output is designed to be pluggable, so users can easily create their
own output plugins easily. For now there are only two, 'text', and
'html', which produce text and html output respectively.

See the chordbook/output directory for code. Outputters inherit from
the _base.py base class.

Default output format is html.

By default an input file foo.cbk will produce output written to html/foo.html

If the -s switch is given, output is sent to stdout instead.

If the -c switch is given, output is sent to the current directory instead of
a subdirectory named after the output format.

Using the -o OUTFILE switch, the name of the output file can be specified directly.

Roadmap
-------

See TODO.

Issues
------

* Entering JSON by hand is no fun.
* Text output is useless,
* HTML output is hideous.
* Sorting not yet properly handled. Should be optional.
* No option to produce multi-page HTML output.
* Other bugs I have not yet spotted (many, no doubt).

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

ChordBook-0.0.12.tar.gz (21.7 kB view details)

Uploaded Source

File details

Details for the file ChordBook-0.0.12.tar.gz.

File metadata

  • Download URL: ChordBook-0.0.12.tar.gz
  • Upload date:
  • Size: 21.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for ChordBook-0.0.12.tar.gz
Algorithm Hash digest
SHA256 4153e6cbbcfad8853b77dca6d2fe2165fe169851f44a8edbf8f6ea5bb3b920a4
MD5 2ef6c0f1f666a8ea6ad972938e3d2ba7
BLAKE2b-256 b91d5ce94ac7ca12caf15d35f73b7c46c76ea3d182fbbc9deb0fdfbc40aef8ce

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page