Music typeset with the Lilypond system

Related tags

Lilypond-Sheet-Music
Overview

Intro (from long ago)

This repo contains sheet music typeset with the Lilypond typesetter. The music chosen is in favour of cello music (mostly chamber music) since I am very enthusiastic about this instrument ;-).

Olaf. 2009/12/23

My computer's setup

I am doing all this type-setting in Unix environments. I tried TrueOS recently, but I am going back to Debian-based Linux distributions, and Fedora - my current favourite. I am a very bare-bones type of guy so my setup is as follows:

  • git from the command line for version management (obviously 😉 )
  • Emacs for editing the sheet music source and compilation
  • Lilypond for rendering
  • TiMidity for listening to the MIDI file for errors
  • the Fluid GM/GS soundfont for MIDI rendering (which has a pretty decent Cello sound with it)

Some hints

All the formatting I have done is for the full score, and I am not planning to distribute extracts of partial/single voices. However, it is no big deal to create them by yourself, if you have lilypond on your PC 😎 .

Scaling

You find that the beginning of the master file looks something like this:

\version "2.14.2"
\include "deutsch.ly"

#(set-global-staff-size 19)

\header {
  title = "Sonata in a-moll"
  composer = "Joseph Bodin de Boismortier (1689-1755)"
  arranger = "arr.: Jay Lichtmann"
  opus = "op. 7 Nr. 4"
  enteredby = "cellist (2011-10-08)"
}

You need to tweak the global staff size parameter to get a nicely formatted output once you have removed or commented out the voices that should not be part of your extract.

Hard page breaks

Sometimes the master file contains page breaks like this one:

introa = { \time 3/4 \tempo "1. Doucement - Andante " 4=92 }
introb = { \break \tempo "2. Courante - Allegro moderato " 4=152 }
introc = { \pageBreak \time 4/4 \tempo "3. Allemande - Gravement " 8=92 }
introd = { \break \time 3/4 \tempo "4a. Menuetto I - Moderato " 4=132 }
introe = { \break \key a \major \tempo "4b. Menuetto II - Meno mosso" }

I think it is valid to separate most every piece with a \break, but the page breaks are of course suited towards the full score, and you may need to adjust those for your limited selection of voices.

Voice selection

The staff group is the place to select which voices you want to include in the output:

\include "v1.ily"
\include "v2.ily"
\include "v3.ily"

music = \new StaffGroup <<
      \new Staff {
	\set Staff.midiInstrument = \minstr
	\set Staff.instrumentName = #"Vc 1"
	\transpose a a { \va }
      }

      \new Staff {
	\set Staff.midiInstrument = \minstr
	\set Staff.instrumentName = #"Vc 2"
	\transpose a a { \vb }
      }

      \new Staff {
	\set Staff.midiInstrument = \minstr
	\set Staff.instrumentName = #"Vc 3"
	\transpose a a { \vc }
      }
>>

Let's say you want to create an output where you combine only the 1st and 3rd voice and drop the middle one. This can be done by simply commenting the part of the middle voice (you could also erase the statements completely, if you like):

\include "v1.ily"
\include "v2.ily"
\include "v3.ily"

music = \new StaffGroup <<
      \new Staff {
	\set Staff.midiInstrument = \minstr
	\set Staff.instrumentName = #"Vc 1"
	\transpose a a { \va }
      }
%{
      \new Staff {
	\set Staff.midiInstrument = \minstr
	\set Staff.instrumentName = #"Vc 2"
	\transpose a a { \vb }
      }
%}
      \new Staff {
	\set Staff.midiInstrument = \minstr
	\set Staff.instrumentName = #"Vc 3"
	\transpose a a { \vc }
      }
>>

If you reverse the selection, then this could be achieved the following way like so:

\include "v1.ily"
\include "v2.ily"
\include "v3.ily"

music = \new StaffGroup <<
%{
      \new Staff {
	\set Staff.midiInstrument = \minstr
	\set Staff.instrumentName = #"Vc 1"
	\transpose a a { \va }
      }
%}
      \new Staff {
	\set Staff.midiInstrument = \minstr
	\set Staff.instrumentName = #"Vc 2"
	\transpose a a { \vb }
      }
%{
      \new Staff {
	\set Staff.midiInstrument = \minstr
	\set Staff.instrumentName = #"Vc 3"
	\transpose a a { \vc }
      }
%}
>>

You could also comment the respective \include in the top part, but that is not really necessary - it might save you a few microseconds in rendering the layout though 😉 .

Transposing instruments

I have been adding pieces for clarinets with a single cello recently because I happen to do music with three clarinet players quite regularly now. Being the "bassoon with strings attached", I am facing the beauty of transposing instruments 😩 - I am still trying to understand why music history came up with this idea which makes everything more complicated than need be.

You may wonder why the MIDI files still sound correct despite of this (more or less), and I have to confess: I am cheating here! I create the MIDI files without the transpositions and save them, then I do the sheet rendering with correct transposition, and I finally restore my initial MIDI files and put them under version control. I am pretty sure there is an easier and more straight forward way to do this in lilypond, but I have to find out yet...

Sharing music output with good sound fonts applied

As I said before, I am using the Fluid soundfont shipped with many Linux distributions to have the sound output rendered really nicely. If you want to share the result with someone else, and have a Unix-oid machine available, then you may want to check out this small script which creates an OGG file with the sound font rendering included:

$ cat -n midi_ogg.sh
     1	#!/bin/bash
     2	
     3	timidity "${1}" -Ow --output-file=- |\
     4	    ffmpeg -i - -acodec libvorbis "${1%.*}.ogg"

TiMidity creates a WAV file which is then passed on and encoded to OGG Format using the ffmpeg tool. With small adjustments, this could also compress the output to e.g. MP3 or M4A format. A similar routine should also work under Windows.

Recommendations for sites with sheet music

Please note this list is very fragile, and sites may disappear or provide no sheet music for free any longer ...

Future plans

What I would like to do in the future - apart from type-setting more sheet music - is to share my personal favourite music that I have tried myself (should be around 1% of all the pieces, maybe even less), and create a list of recommended pieces per ensemble setup to try with nicely rendered music output for better listening. I need to find some web space for storing those MP3, OGG, ... files, and I am planning to link to them from this GitHub repo, because I think mark-down should be a good way to do that (I am a novice user of this).

Issues
  • Great project !

    Great project !

    Just wanted to let you know that I have been searching for solo cello music, and I finally found this !

    It really looks good.

    I will let you know what I think about it.

    opened by edi9999 2
  • Directory of Sheet Music

    Directory of Sheet Music

    It would be helpful to have a list of the songs included in the repo. Thanks for all the songs!

    opened by tienne-B 1
Owner
Enthusiastic about the Cello
Enthusiastic about  the Cello
Music typeset with the Lilypond system

Intro (from long ago) This repo contains sheet music typeset with the Lilypond typesetter. The music chosen is in favour of cello music (mostly chambe

Enthusiastic about  the Cello 95 Sep 15, 2021
Frescobaldi LilyPond Editor

README for Frescobaldi Homepage: http://www.frescobaldi.org/ Main author: Wilbert Berendsen Frescobaldi is a LilyPond sheet music text editor. It aims

Frescobaldi 501 Sep 21, 2021
A place to store useful pieces of LilyPond code - custom functions, engravers, hacks, templates, examples etc.

openLilyLib/snippets What's this? What is openLilyLib/snippets? There are two answers to this: it's a repository of LilyPond snippets, and it's part o

openlilylib 102 Jul 10, 2021
Use Lilypond like a boss!

The lyp package index lyp - The Lilypond Swiss Army Knife lyp is an open-source tool that takes the pain out of working with Lilypond. Use packages: I

noteflakes 66 Sep 23, 2021
Lilypond music preprocessor

Ripple - DRY for Lilypond Ripple is a small program that helps you generate scores and parts without repeating yourself, performing complex includes o

Sharon Rosner 21 Mar 24, 2020
A beautiful cross platform Desktop Player for Google Play Music

Google Play Music™ Desktop Player Windows: MacOS / Linux: Run "Google Play Music" as a standalone desktop app. Never again will you have to hunt throu

Samuel Attard 8.5k Sep 12, 2021
Typographic Beat-Oriented Notation for music

tbon Typographic Beat-Oriented Notation for music Tbon aims to be the fastest way to enter pitches, rhythms, meter and dynamic levels from a computer

null 11 Jan 23, 2020
Repository of scores typeset using Lilypond & Ripple

Ciconia's Score Repository This repository contains my edition of works by Bach and other baroque composers typeset using Lilypond and Ripple. Process

Sharon Rosner 17 Aug 15, 2021
网易云音乐第三方

ieaseMusic Elegant NeteaseMusic desktop app, Rock with NeteaseMusic ?? Built by Electron, React, MobX, JSS API 由 Binaryify/NeteaseCloudMusicApi 提供。 Pr

null 8.6k Sep 22, 2021
OpenSheetMusicDisplay renders sheet music in MusicXML format in your web browser based on VexFlow. OSMD is brought to you by PhonicScore.com.

OpenSheetMusicDisplay (OSMD) A MusicXML renderer for the Browser opensheetmusicdisplay.org About OSMD • Demo • Key Features • Limitations • How to Use

Open Sheet Music Display 800 Sep 15, 2021
Baroque music scores, typeset with GNU LilyPond

nénuvar - baroque music scores typeset with GNU LilyPond Available scores: J.B. Lully * La Revente des habits (ballet, LWV05) * Amour malade (ballet

Nicolas Sceaux 36 Aug 29, 2021
🎵 Music notation engraving library for MEI with MusicXML and Humdrum support and various toolkits (JavaScript, Python)

Verovio is a fast, portable and lightweight library for engraving Music Encoding Initiative (MEI) digital scores into SVG images. Verovio also contain

RISM Digital Center 426 Sep 22, 2021
Beautiful LilyPond scores under free licenses

A project to collect and maintain beautiful LilyPond music scores, and to document LilyPond engraving styles, Scheme programs and templates. You can

Wilbert Berendsen 39 Aug 11, 2021
Music player for deepin desktop environment.

deepin-music Deepin music is a local music player with beautiful design and simple functions developed by Deepin Technology. Dependencies Build depend

Wuhan Deepin Technology Co.,Ltd. 155 Sep 16, 2021
A music programming language for musicians. :notes:

Installation | Docs | Changelog | Contributing composers chatting Alda is a text-based programming language for music composition. It allows you to co

Alda 4.7k Sep 25, 2021
Mopidy is an extensible music server written in Python

Mopidy Mopidy is an extensible music server written in Python. Mopidy plays music from local disk, Spotify, SoundCloud, Google Play Music, and more. Y

Mopidy 7.2k Sep 17, 2021
The git repository of the advanced drum machine

Hydrogen drum machine Hydrogen is an advanced drum machine for GNU/Linux, Mac and Windows. It's main goal is to bring professional yet simple and intu

Hydrogen 702 Sep 15, 2021
Open source sheet music

The Mutopia Project The Mutopia Project offers sheet music based on editions in the public domain. All sheet music is written in LilyPond by volunteer

null 187 Sep 3, 2021
music library manager and MusicBrainz tagger

beets Beets is the media library management system for obsessive music geeks. The purpose of beets is to get your music collection right once and for

beetbox 10.4k Sep 15, 2021