• Stars
    star
    236
  • Rank 170,480 (Top 4 %)
  • Language Mako
  • License
    GNU General Publi...
  • Created almost 14 years ago
  • Updated about 1 year ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Open source lilypond real book for Jazz musicians

openbook

version: 0.0.1

description: OpenBook is an open source Jazz real book

website: https://veltzer.github.io/openbook

build

build

OpenBook is a standards book for Jazz players which containts hundreds of jazz standards

contact

chat with me at gitter

What is OpenBook?

OpenBook is a Jazz real book constructed with free software. A real book simply means a big book with lots ofJazz tunes or standards as they are more widely known.

Where is the project's website?

https://veltzer.github.io/openbook

Why did you start this?

Because of many reasons:

  • I wanted to learn Jazz, and a good way to do that is to write down the tunes (amongst many other things).
  • I wanted beautiful sheet music that I could fiddle with.
  • I did not want to pay for the overly expensive real or fake books out there.
  • I believe in free software and wanted free (in the sense of freedom) sheet music.
  • Jazz is a prime example of a free type of art, so it's conjunction with free software seems a match made in heaven.
  • Jazz musicians may need beautiful electronic Real books because electronic books are starting to be used by Jazz musicians both for practice and for performance.

What tools are used?

  • python3: for the python scripts
  • virtualenv: for using virtualenv for python
  • lilypond: this is the main tool we use
  • qpdf: for qpdf(1) (used in pdf size reduction)
  • ghostscript: for ps2pdf(1), pdf2ps(1), gv (used in pdf size reduction and cutting pdfs)
  • timidity: play output midi and convert midi to wav
  • lame: convert audio (encode ogg)
  • tidy: for tidy(1) (used in checking HTML)
  • okular: kde pdf reader
  • python-mako-doc: documentation for the template preprocessor
  • texi2html: needed to install lilypond from source
  • guile-2.2-dev: needed to install lilypond from source
  • lilypond-doc: documentation for lilypond
  • lilypond-doc-html: documentation for lilypond
  • lilypond-doc-pdf: documentation for lilypond
  • npm: for htmlhint

What python modules are used?

  • pytconf: pytconf handles configuration and command line parsing
  • python-dateutil: Extensions to the standard Python datetime module
  • tqdm: Fast, Extensible Progress Meter
  • PyMySQL: Pure Python MySQL Driver
  • Mako: A super-fast templating language that borrows the best ideas from the existing templating languages.
  • requests: Python HTTP for Humans.
  • gitpython: GitPython is a Python library used to interact with Git repositories

What is produced?

Beautiful and lightweight postscript and PDF real books with Jazz tunes. The idea is that the end user can control the final output and decide if he/she wants lyrics, size of paper, transposition for a trumpet, selection of tunes and more. In addition, you can produce midi, mp3 and ogg outputs. Possibly other output formats will be supported in the future (epub?).

What is the copyright?

All the stuff in this project is GPL version 3. The tunes themselves have their own copyright holders.

Who can contribute?

Anyone.

What system do I need to participate?

A Linux system that you can install software on. Mac OSX is reported to work too if you know how to install the right stuff on it. Windows is not currently supported although well-formed patches will be accepted. (disclaimer: the author hates Windows with a vengence so patches have to be spotless to be accepted)

What do I need to know to participate?

  • Some rudimentary Linux system administration (in order to install the software needed for this project to build).
  • Some basic git software content tracking (in order to fetch the project, modify and submit patches).
  • The lilypond language (in order to edit or add tunes).
  • Some music knowledge would also help...:)

Who currently contributes?

Look at the CREDITS file

Your name could be here if you contribute...

Where can I see some results?

Check out the PDFs and other outputs in https://veltzer.github.io/openbook.

Why is there so little documentation?

I just started this project (4 years all in all -> that's not true: it's 12 years in the making). Feel free to add stuff and request a pull. Contributing may make you an admin...

How do you write the standards?

Using lilypond. Check it out at http://www.lilypond.org/.

Will you co-operate with the lilypond, mutopia and wikifonia communities?

YES! Any bugs or feature suggestion are submitted to the lilypond community. Any requests for pieces from the mutopia community will be respected. Wikifonia uses musicXML for typesetting while I use an essentially lilypond format as input format - so there could not be much co-operation there.

Do you only allow Jazz tunes?

No. Rock and Pop will be welcome and so would classical. If you are really into classical lilypond production, you may alternativly wish to contribute to the mutopia project at http://www.mutopiaproject.org/.

How do I build the pdfs?

  • you need tools installed. on Ubuntu $ sudo apt install lilypond qpdf
  • clone the repository $ git clone git://github.com/veltzer/openbook.git
  • cd into the newly created folder $ cd openbook
  • install python tools to create a python virtual envrionment. on Ubuntu $ sudo apt install python3 virtualenv
  • create a python virtual environment $ virtualenv --python=/usr/bin/python3 .venv
  • activate the virutal env $ source .venv/bin/activate
  • update pip $ python -m pip install --upgrade pip
  • install the python prerequisites $ pip install -r requirements.txt
  • run the build process $ make
  • the pdfs should now be built, and you will find them in the 'docs' folder.
  • if you want to build all the tunes individually then run $ make all_tunes

MacOS user notes

How do I contribute?

  • create an account on git hub.
  • hack on the .ly.mako files (git add the files that you hack on).
  • commit to your own hard drive repository (git commit).
  • push to git hub (git push).
  • send me a pull request (button in the github ui).

Can I just add a single tune?

Yes. To add a tune named [tunename] just add single file named

src/openbook/[tunename].ly.mako

Yes, the extension should be .mako since I use "mako" for templating. In that file there are sections. Just copy them from some other tune. One section for chords, another for lyrics, another for the melody etc. After working on the tune build just a single tune by issueing:

make out/src/openbook/[tunename].pdf

or

make out/src/openbook/[tunename].midi

or

make out/src/openbook/[tunename].stamp

to get both pdf and midi.

Can I just build a single tune?

Sure. Just use:

make out/src/openbook/[tunename].pdf

to build the pdf

make out/src/openbook/[tunename].midi

to build the midi

make out/src/openbook/[tunename].stamp

to get both pdf and midi.

What about MusicXML?

Sorry, this project is lilypond based. Patches for MusicXML will be welcome, but I don't see how they will fit into this project.

Can I send corrections to the tunes without learning lilypond and all the rest of the stuff?

Yes. Just send them as regular text via my email below.

Where can I get more documentation about this project?

Look in the doc subfolder of the source code...

How can I get a version of this book in a key other than C?

Just edit include/common.ly.mako and change TONALITY="c" to "bes" or "ees" before compiling.

How do I download the external pdfs to compare them to this project?

Just run:

make real_books_archive.gi

and look at the resulting real_books_archive.gi folder that is created.

Mark Veltzer, Copyright Β© 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021, 2022, 2023

More Repositories

1

demos-linux

Demos for instruction and exploration of the Linux C/C++ API
C++
85
star
2

kcpp

Linux kernel C++ framework
C
32
star
3

pyscrapers

project to produce various useful scrapers
Python
25
star
4

bashy

bashy handles bash configuration for you
Shell
9
star
5

demos-docker

Demos-docker shows you how to do things with docker
Python
9
star
6

pytags

Tagger is a command line file tagging and search tool
Python
6
star
7

jncurses

A java JNI/Swig ncurses interface
SWIG
6
star
8

xmeltdown

A program to melt your screen
C
5
star
9

demos-python

Demos for the Python programming language
Python
5
star
10

jschess

JavaScript chess viewer
JavaScript
4
star
11

riddles-book

Database of riddles and solutions in tex
Python
4
star
12

demos-git

Demos for understanding git
Shell
4
star
13

ieee1394

old linux firewire stack for new linux kernels
C
3
star
14

fcmp

Fcmp is a library to compare two floating point numbers
C
3
star
15

pymount

module to help you mount and unmount file systems
Python
2
star
16

gae-nikuda

Nikuda web site
JavaScript
2
star
17

keynote

Keynote is a system to generate slides from XML files
CSS
2
star
18

pyawskit

Pyawskit is your AWS Swiss Army Knife
Python
2
star
19

demos-build-make

Demos for GNU make
Makefile
2
star
20

demos-tcl

Demos for the tcl language
Tcl
2
star
21

demos-jenkins

Demos for jenkins
Groovy
1
star
22

pyapikey

access api keys from code
Python
1
star
23

pytubekit

Pytubekit will allow you to perform operations in your youtube account en masse
Python
1
star
24

utils-perl

Various utilities written in perl
Perl
1
star
25

utils-bash

Various utilities written in Bash
Shell
1
star
26

demos-build-scons

Demos for the scons build tool
Python
1
star
27

demos-os

Demos of how to build your own operating system
Assembly
1
star
28

jnacurses

A java JNA ncurses interface
Python
1
star
29

epnyx

voting system for direct democracy
Python
1
star
30

veltzer.github.io

Personal website
Shell
1
star
31

pdmt

Project dependency management tool
Python
1
star
32

demos-python-statistics

Demos for statistics in the python language
Python
1
star
33

utils-python

Various utilities written in python
Python
1
star
34

pyweblight

Pyweblight is a small configurable web server for developers
Python
1
star
35

pybookmarks

Book mark manager and sync between browsers
Python
1
star