Author: Thorsten Jolitz Version: 0.9 URL: https://github.com/tj64/org-bandbook
copyright: Thorsten Jolitz
copyright-years: 2014+
version: 0.9
licence: GPL 3 or later (free software)
licence-url: http://www.gnu.org/licenses/
part-of-emacs: no
author: Thorsten Jolitz
author_email: tjolitz AT gmail DOT com
inspiration: https://github.com/veltzer/openbook
keywords: emacs org-mode taskjuggler lilypond
git-repo: https://github.com/tj64/org-bandbook
git-clone: git://github.com/tj64/org-bandbook.git
Emacs Lisp functionality for
Org-Bandbook
Professional Band Management
for Computer-Literate Musicians
Org-Bandbook is inspired by Mark Veltzer's Open-Book project, in fact it started out as a port of Open-Book' to Org-mode, and it would not exist without this wonderful project (since thats where the more than hundred jazz standards in LilyPond notation in Org-Bandbook's 'library-of-songs' come from, as well as the common LilyPond macros used for every score).
However, Org-Bandbook has a different focus than Open-Book. While the latter tries to become a free 'Real Book' or 'Fake Book' with possibly hundreds of tunes, the former is meant to just contain the repertoire of a band-project (maybe one or two dozen tunes) with arrangements, as well as (rehearsal-, gig- and tour-) planning, accounting and contact info.
-
Clone or fork repo on Github.
-
Create a personnal branch for hacking the sources and producing patches and pull requests.
-
Create a new branch for every band-project or yours. You should not touch the org-bandbook sources in these branches, only modify your project-xyz subdirectory.
-
Use project-massey-hall-1953 as template, either rename it or copy it for your own band-project.
-
Goto the library-of-songs, select songs and create a config file for each in the projects 'songs' directory (whose name starts with an integer, e.g. 1-all-the-things.org).
-
Edit the config file for each song (see 'songs' subdir of massey hall project).
-
Edit 'peoples.org' file (kind of org-contacts)
-
Edit 'instruments.org' file
-
finally edit the 'master.org' file
The files 'journal.ledger' and 'timeline-and-tasks.org' are frequently edited during the band-project for planning and keeping track of band finances.
Use this command:
,----[ C-h f org-bandbook-refresh-song-info RET ]
| org-bandbook-refresh-song-info is an interactive Lisp function in
| `org-bandbook.el'.
|
| (org-bandbook-refresh-song-info)
|
| Get key/mode/form from song-link and update properties.
|
| Assumes that point is in a song file in the <project>/songs/
| directory that has a 'song' entry, and that this entry has a
| 'link' property with an Org-link (to an Org-Bandbook song in
| the '/library-of-songs/' directory) as value.
`----
Note that, thanks to amazing LilyPond, transposing a song is done by simply adding a property like this ':transpose: g'. Thats all.
Use these two commands:
,----[ C-h f org-bandbook-refresh-arrangement-properties RET ]
| org-bandbook-refresh-arrangement-properties is an interactive Lisp
| function in `org-bandbook.el'.
|
| (org-bandbook-refresh-arrangement-properties)
|
| Gather (and insert) info about project instruments.
| Assumes that point is in a song file in the <project>/songs/
| directory that has a 'arrangement' entry.
`----
,----[ C-h f org-bandbook-insert-arrangement-table-skeleton RET ]
| org-bandbook-insert-arrangement-table-skeleton is an interactive Lisp
| function in `org-bandbook.el'.
|
| (org-bandbook-insert-arrangement-table-skeleton)
|
| Insert skeleton-table for song arrangement.
`----
or simply copy&pase from existing song config files. Then create the arrangement as org-table, it will be exported to an PlantUML activity diagram.
Here is an example arrangement:
seq | do | melody | solo | accomp | riff |
---|---|---|---|---|---|
a | 1 | as tr | b dr p | ||
aaba | 3 | as | b dr p | ||
aaba | 4 | tr | b dr p | ||
aaba | 3 | p | b dr | ||
aa | 1 | as tr | b dr p | ||
b | 1 | dr | |||
a | 1 | as tr | b dr p |
AABA is the song structure, as tr p b dr are the instruments of the classical jazz quintett. This table should and must be edited by hand.
In file 'master.org' you specify
-
export header (org link)
-
accounting scheme (org link)
-
song order (song IDs as integers)
-
bandbook parts (songs/tasks/funds/people)
-
project people (nick-names = resource_id's)
Note the song-order/overview table at the bottom. This table must not be edited by hand. Use command:
,----[ C-h f org-bandbook-refresh-song-order RET ]
| org-bandbook-refresh-song-order is an interactive Lisp function in
| `org-bandbook.el'. [...]
`----
for inserting and refreshing the table. The song-order is simply changed by moving the numbers in property ':song_order: 1 3' around. The '1' is the song ID, the numerical prefix of its song-config file (e.g. 1-all-the-things.org).
Use command:
,----[ C-h f org-bandbook-make-bandbook RET ]
| org-bandbook-make-bandbook is an interactive Lisp function in
| `org-bandbook.el'.
|
| (org-bandbook-make-bandbook)
|
| Create bandbook for current project.
`----
to create the PDF.
Add songs to the 'library-of-songs'. Use commands
-
`org-bandbook-export-org-file',
-
`org-bandbook-export-directory-org-files',
-
`org-bandbook-import-mako-file'
-
`org-bandbook-import-directory-mako-files'
to import from and export to 'Open-Book' project. Each song you add in either of the two formats (org or mako) will therefore benefit both projects, since conversion is easy.
Add headers that produce beautiful (LaTeX) output to the 'library-of-headers'.
Add ledger accounting schemes for your country to the 'library-of-accounting-schemes'.
Add beautiful (LaTeX) title pages for Org-Bandbook to the 'library-of-title-pages'.
Add artwork for title pages and other parts of Org-Bandbook to the 'library-of-artwork.
Bug Reports and Patches welcome.