Music typeset with the Lilypond system

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
  • Morricone/Gabriels Oboie seems to have wrong transpose statement for Englisch Horn track

    Morricone/Gabriels Oboie seems to have wrong transpose statement for Englisch Horn track

    Sadly there seems to be a wrong transpose statement

    \transpose d a,
    

    But easy to clean up:

    diff --git a/Orchestra/Morricone, Ennio/Gabriels Oboe/morricone_gabriels_oboe.ly b/Orchestra/Morricone, Ennio/Gabriels Oboe/morricone_gabriels_oboe.ly
    index 8b2830ea..fb759b71 100644
    --- a/Orchestra/Morricone, Ennio/Gabriels Oboe/morricone_gabriels_oboe.ly
    +++ b/Orchestra/Morricone, Ennio/Gabriels Oboe/morricone_gabriels_oboe.ly
    @@ -45,7 +45,7 @@ music = \new StaffGroup <<
           \new Staff {
             \set Staff.midiInstrument = \mihi
             \set Staff.instrumentName = \markup \center-column { "Englisch" "Horn" }
    -        \transpose d a, { \va }
    +        \transpose a a { \va }
           }
    
           \new Staff {
    

    Remark: pdf is wrong, too. Should be created by cleaned ly file.

    Remark: Thank you for your scores!

    opened by molleJoe 0
Owner
Enthusiastic about the Cello
Enthusiastic about  the Cello
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
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
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 40 Jan 16, 2022
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 520 Jan 16, 2022
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
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 103 Jan 9, 2022
LilyPond mini-score engraving and sharing service for musicians.

Tunefl LilyPond mini-score engraving and sharing service for musicians. The live Tunefl service is at tunefl.com. More sleep lost by tiredpixel. Insta

Nic Williams 22 Jun 22, 2020
Streaming music player that finds free music for you

Desktop music player focused on streaming from free sources Links Official website Mastodon Twitter Support channel (Matrix): #nuclear:matrix.org Disc

null 7.2k Jan 16, 2022
Music player and music library manager for Linux, Windows, and macOS

Quod Libet: an audio library, manager & player Quod Libet is a cross-platform audio / music management program. It provides many ways to view your loc

Quod Libet 1.1k Jan 10, 2022
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.6k Jan 23, 2022
:tangerine: Clementine Music Player

Clementine Clementine is a modern music player and library organizer for Windows, Linux and macOS. Latest Release Latest Pre-Releases Website: http://

Clementine 3.1k Jan 2, 2022
Small, fast and powerful console music player for Unix-like operating systems.

Warning: cmus is not actively maintained. For details, please see #856 cmus — C* Music Player https://cmus.github.io/ Copyright © 2004-2008 Timo Hirvo

C* Music Player 4.5k Jan 16, 2022
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. 158 Jan 6, 2022
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 Jan 21, 2022
Cross-platform music production software

LMMS A soft PR-Freeze is currently underway to prepare for refactoring (#5592). Please do not open non-essential PRs at this time. What is LMMS? LMMS

LMMS 5.5k Jan 22, 2022
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.3k Jan 21, 2022
🎵 A simple, clean and cross-platform music player

Museeks A simple, clean and cross-platform music player. (museeks.io) Features Museeks aims to be a simple and easy to use music player with a clean U

Pierre de la Martinière 1.1k Jan 10, 2022
MuseScore is an open source and free music notation software. For support, contribution, bug reports, visit MuseScore.org. Fork and make pull requests!

Music notation and composition software MuseScore is an open source and free music notation software. For support, contribution, and bug reports visit

MuseScore 6.7k Jan 14, 2022
GTK 3 client for the Music Player Daemon - I'm looking for new maintainers!

Sonata is looking for new maintainers! I (@multani) don't use Sonata much anymore and as a consequence, I've been very slow to answer even to the few

Jonathan Ballet 123 Aug 28, 2021