Warning: this is an htmlized version!
The original is across this link,
and the conversion rules are here.
#######
#
# E-scripts on lilypond
#
# Note 1: use the eev command (defined in eev.el) and the
# ee alias (in my .zshrc) to execute parts of this file.
# Executing this file as a whole makes no sense.
#
# Note 2: be VERY careful and make sure you understand what
# you're doing.
#
# Note 3: If you use a shell other than zsh things like |&
# and the for loops may not work.
#
# Note 4: I always run as root.
#
# Note 5: some parts are too old and don't work anymore. Some
# never worked.
#
# Note 6: the definitions for the find-xxxfile commands are on my
# .emacs.
#
# Note 7: if you see a strange command check my .zshrc -- it may
# be defined there as a function or an alias.
#
# Note 8: the sections without dates are always older than the
# sections with dates.
#
# This file is at <http://angg.twu.net/e/music.e>
#           or at <http://angg.twu.net/e/music.e.html>.
#        See also <http://angg.twu.net/emacs.html>,
#                 <http://angg.twu.net/.emacs[.html]>,
#                 <http://angg.twu.net/.zshrc[.html]>,
#                 <http://angg.twu.net/escripts.html>,
#             and <http://angg.twu.net/>.
#
#######





# «.lilypond»		(to "lilypond")
# «.lilypond-src»	(to "lilypond-src")
# «.lilypond-writing»	(to "lilypond-writing")
# «.lilypond-etch»	(to "lilypond-etch")
# «.lilypond-deb-src»	(to "lilypond-deb-src")
# «.scarlatti»		(to "scarlatti")
# «.repl»		(to "repl")
# «.compact-output»	(to "compact-output")
# «.lilypond-2.18.2»	(to "lilypond-2.18.2")
# «.autochange»		(to "autochange")
# «.inventions»		(to "inventions")
# «.frescobaldi»	(to "frescobaldi")
# «.ben-lemons-videos»	(to "ben-lemons-videos")
# «.page-breaks»	(to "page-breaks")

See: (find-es "musescore")






#####
#
# lilypond (sarge)
# 2004oct27 / 2013may30
#
#####

# «lilypond»  (to ".lilypond")
# (find-angg ".emacs" "lilypond")
# (find-zsh "installeddebs | sort | grep lilypond")
# (find-zsh "availabledebs | sort | grep lilypond")

# (find-status   "lilypond")
# (find-vldifile "lilypond.list")
# (find-udfile   "lilypond/")
# (find-status   "lilypond-doc")
# (find-vldifile "lilypond-doc.list")
# (find-udfile   "lilypond-doc/")

# (find-fline "/usr/share/info/" "lilypond")
# (find-node "(lilypond-changes)")
# (find-node "(lilypond-contributor)")
# (find-node "(lilypond-essay)")
# (find-node "(lilypond-extending)")
# (find-node "(lilypond-internals)")
# (find-node "(lilypond-learning)")
# (find-node "(lilypond-notation)")
# (find-node "(lilypond-snippets)")
# (find-node "(lilypond-usage)")
# (find-node "(lilypond-web)")

# (find-status   "lilypond")
# (find-vldifile "lilypond.list")
# (find-udfile   "lilypond/")
# (find-status   "lilypond-doc")
# (find-vldifile "lilypond-doc.list")
# (find-udfile   "lilypond-doc/")
# (find-fline "/usr/share/doc/lilypond/html/input/mutopia/E.Satie/")

# (find-angg ".emacs" "lilypond")








# (code-c-d "lilyshare" "/usr/share/lilypond/2.1.0/" "lilypond")
# (code-c-d "lily"      "/usr/share/doc/lilypond/examples/input/" "lilypond")
# (code-ps "lily" "/usr/share/doc/lilypond/html/Documentation/user/out-www/lilypond.ps.gz")
# (find-lilysharefile "")
# (find-lilysharefile "scm/")
# (find-lilyfile "")
# (find-lilynode "Top")
# (find-lilynode "Unified index")
# (find-lilypage 1)

% (find-node "(lilypond)Pitches")
% (find-node "(lilypond)Durations")






#*
# rm -Rv /tmp/ly/
mkdir  /tmp/ly/
cd     /tmp/ly/
# (find-fline "~/LILYPOND/")
# (find-node "(lilypond)Key signature")
cat > ee.ly <<'%%%'
      \repeat volta 2 { 
        % First line
        r4  bes16 ees' f' bes'  ges'4. bes8 | ees'4. d'16 ees' bes'8 aes' r4 |
        r4  ees'16 ges' bes' des''  d''4.   ees'8 | \break
        % Second line
        a'8 fis'16 d'  gis'4  aes'8 f'16 des'  g'4 |
        r4  bes'16 ces' ees' ges'  f'4.  des'8 |
        bes'4 \times 2/3 {ees'8 d' des'} c'8  a'4  ees'16 f' | \break
      }
%%%


cat > tmp.ly <<'%%%'
\header { piece = "tmp" }
\score { 
  \notes {
    {
      % \clef bass	% original; (find-node "(lilypond)Clef")
      \clef alto	% transposition to viola
      \transpose c a
      \key ges \major \time 4/4
      \include "ee.ly"
    }
  }
  \paper {  }
  \midi  { \tempo 4=72 }
}
%%%

lilypond -P tmp.ly


#*
# (eev-bounded)
mkdir /tmp/ly/
cd    /tmp/ly/
cat > tmp.ly <<'%%%'
\header { piece = "tmp" }
\score { 
  \notes {
    { 
      \clef alto     % (find-node "(lilypond)Clef")
      % \transpose c c,,
      \key ges \major \time 4/4
      \include "ee.ly"
    }
  }
  \paper {  }
  \midi  { \tempo 4=72 }
}
%%%

#*
% (eeb-lily)
      \repeat volta 2 { 
        % First line
        r4  bes16 ees' f' bes'  ges'4. bes8 | ees'4. d'16 ees' bes'8 aes' r4 |
        r4  ees'16 ges' bes' des''  d''4.   ees'8 | \break
        % Second line
        % a'8 fis'16 d'  gis'4  aes'8 f'16 des'  g'4 |
        % r4  bes'16 ces' ees' ges'  f'4.  des'8 |
        % bes'4 \times 2/3 {ees'8 d' des'} c'8  a'4  ees'16 f' | \break
      }
#*



(defun eelily (s &optional e)
  ;; (eev "cd /tmp/ly/ && lilypond tmp.ly && regv tmp.ps &")
  (eev "cd /tmp/ly/ && lilypond -m tmp.ly && timidity tmp.midi")
  (ee-write s e "" "" "/tmp/ly/ee.ly"))

(eeb-define 'eeb-lily  'eelily  'ee-delimiter-percent nil t t)
(eeb-define 'eeb-lily  'eelily  'ee-delimiter-hash nil t t)



# (find-man "lilypond")

# (find-node "(lilypond)Unified index")
# (find-node "(lilypond)Running LilyPond")
# (find-node "(lilypond)Combining notes into chords")
# (find-node "(lilypond)Octave entry")
# (find-node "(lilypond)Beaming")




% (find-node "(lilypond)The first real tune")
% (find-node "(lilypond)Notes")
% (find-node "(lilypond)Pitches")
% (find-node "(lilypond)Durations")
% (find-node "(lilypond)Slurs" "using parentheses:")
% (find-node "(lilypond)A piano excerpt" "`<'")
% (find-node "(lilypond)Beaming" "Manual beams" "`['")
% (find-node "(lilypond)Articulations" "^")
% (find-node "(lilypond)Text scripts")

% (find-node "(lilypond)Bar check" "`|'")
% (find-node "(lilypond)Bar lines" ":|")
% (find-node "(lilypond)Line break" "\\break")







#####
#
# lilypond (slink)
# 2000mar10
#
#####

# «ps_to_png»  (to ".ps_to_png")

apti lilypond
# (find-vldifile "lilypond.list")
# (find-fline "/usr/doc/lilypond/")

pdsc /big/slinks2/dists/slink/main/source/tex/lilypond_1.0.19.uu3-1.dsc
# (find-lilyfile "")
# (find-lilyfile "INSTALL.txt")
# (find-lilyfile "NEWS")
# (find-lilyfile "NEWS-0.0")

# On converting .ps's to .png's:

# (find-lilyfile "buildscripts/ps-to-pngs.sh")
# (find-lilyfile "buildscripts/ps-to-gifs.sh")
# (find-lilyfile "buildscripts/ps-to-gifs.sh" "gs -sDEVICE")

cat ~/LATEX/tmp.ps \
  | gs -sDEVICE=ppmraw -sA4 -sOutputFile="/tmp/p%d.ppm" -r150 \
      -dNOPAUSE - -c quit ~/LATEX/tmp.ps
ls -lAF /tmp
for i in /tmp/*.ppm; do
    OUTPUT=$(dirname $i)/$(basename $i .ppm).png
    cat $i | pnmsca




#####
#
# Scarlatti
# 2011apr26
#
#####

# «scarlatti»  (to ".scarlatti")
# http://icking-music-archive.org/scores/scarlatti/sonatas.zip
# http://vigna.dsi.unimi.it/music.php
# http://vigna.dsi.unimi.it/music/K25.ly
# http://vigna.dsi.unimi.it/music/K427.ly
# http://vigna.dsi.unimi.it/music/K460.ly
# http://vigna.dsi.unimi.it/music/K517.ly
# http://vigna.dsi.unimi.it/music/K519.ly
* (eepitch-shell)
* (eepitch-kill)
* (eepitch-shell)
rm -Rv /tmp/scar/
mkdir  /tmp/scar/
cd     /tmp/scar/
cp -v $S/http/vigna.dsi.unimi.it/music/*.ly .
lilypond K25.ly

# (find-fline    "/tmp/scar/")
# (find-xpdfpage "/tmp/scar/K25.pdf")

* (eepitch-shell)
* (eepitch-kill)
* (eepitch-shell)
rm -Rv /tmp/sank/
mkdir  /tmp/sank/
cd     /tmp/sank/
unzip -d /tmp/sank/ \
  $S/http/icking-music-archive.org/scores/scarlatti/sonatas.zip
ps2pdf k025.ps k025.pdf
# (find-fline    "/tmp/sank/")
# (find-xpdfpage "/tmp/sank/k025.pdf")


* (eepitch-shell)
* (eepitch-kill)
* (eepitch-shell)
dmissing -i satie




#####
#
# A Lilypond REPL
# 2011dec10
#
#####

# «repl»  (to ".repl")
# http://lilypond.org/doc/v2.14/Documentation/contributor/debugging-scheme-code
# (find-es "scheme" "guile-1.8")
# (find-guilenode "Processes" "primitive-exit")

* (eepitch-shell)
* (eepitch-kill)
* (eepitch-shell)
cd /tmp/
cat > repl.ly <<'%%%'
#(module-define! (resolve-module '(guile-user))
                 'lilypond-module (current-module))
#(top-repl)
%%%
lilypond repl.ly
  (+ 1 2)
  (primitive-exit)


* (eepitch-lilyrepl)
* (eepitch-kill)
* (eepitch-lilyrepl)
(+ 1 2)
fret-diagram-verbose-markup
(set-current-module lilypond-module)
fret-diagram-verbose-markup




#####
#
# Compact output
# 2013may30
#
#####

# «compact-output» (to ".compact-output")
# http://angg.twu.net/scans/goldberg_variations_aria.pdf
# (find-fline "~/LOGS/2013may30.lilypond")

<edrx> hi - I won't have the time for testing the hints now, but my
       plan is to save the log of the chat and try everything later
       (on one of the few things I've typesetted with Lilypond - a
       piece by Purcell)... so, question:
<edrx> how do I make the output of Lilypond as compact as this?
<edrx> http://angg.twu.net/scans/goldberg_variations_aria.pdf

# (info "(lilypond-notation)Horizontal spacing")





#####
#
# Erik Sandberg's thesis
# 2011dec10
#
#####

;; http://lilypond.org/doc/v2.14/Documentation/contributor/overview-of-lilypond-architecture
;; http://lilypond.org/web/images/thesis-erik-sandberg.pdf
(code-xpdf      "lilysep" "$S/http/lilypond.org/web/images/thesis-erik-sandberg.pdf")
(code-pdftotext "lilysep" "$S/http/lilypond.org/web/images/thesis-erik-sandberg.pdf")
;; (find-lilyseppage       5  "Contents")
;; (find-lilyseppage (+ 2 11) "2 Introduction")
;; (find-lilyseppage (+ 2 17) "3 Problem statement")
;; (find-lilyseppage (+ 2 21) "4 Data structures")
;; (find-lilyseppage (+ 2 31) "5 Some commands in the LY language")
;; (find-lilyseppage (+ 2 39) "6 Implementation of music streams")
;; (find-lilyseppage (+ 2 47) "7 Implementation notes")
;; (find-lilyseppage (+ 2 51) "8 Conclusions")
;; (find-lilyseppage (+ 2 53) "9 Suggestions for future work")
;; (find-lilyseppage (+ 2 55) "10 Acknowledgments")
;; (find-lilyseppage (+ 2 57) "A General music terminology")
;; (find-lilyseppage (+ 2 61) "B A subset of LilyPond's language")
;; (find-lilyseppage (+ 2 65) "C Music streams for the impatient")
;; (find-lilyseppage (+ 2 69) "D Demonstration")
;; (find-lilyseppage (+ 2 79) "E Benchmarks")
;; (find-lilyseppage (+ 2 83) "F Documentation of LilyPond's program architecture")
;; (find-lilyseptext "")




#####
#
# lilypond 2.18.2 on Wheezy
# 2014nov21
#
#####

# «lilypond-2.18.2» (to ".lilypond-2.18.2")
# (find-angg ".emacs" "lilypond-2.18")
# http://lilypond.org/
# http://lilypond.org/download.html
# http://lilypond.org/unix.html
# http://download.linuxaudio.org/lilypond/binaries/linux-x86/lilypond-2.18.2-1.linux-x86.sh
# http://lilypond.org/learning.html
# http://lilypond.org/doc/v2.18/Documentation/learning.pdf
# http://lilypond.org/snippets.html
# http://lilypond.org/doc/v2.18/Documentation/snippets.pdf
# http://lilypond.org/doc/v2.18/Documentation/notation/
# http://lilypond.org/doc/v2.18/Documentation/notation/musical-notation
# http://lilypond.org/doc/v2.18/Documentation/notation.pdf

* (eepitch-shell)
* (eepitch-kill)
* (eepitch-shell)
cd /tmp/
LILYSH=$S/http/download.linuxaudio.org/lilypond/binaries/linux-x86/lilypond-2.18.2-1.linux-x86.sh
cp -v $LILYSH .
chmod 755 lilypond-2.18.2-1.linux-x86.sh
./lilypond-2.18.2-1.linux-x86.sh --help
./lilypond-2.18.2-1.linux-x86.sh --prefix /tmp/lily/ |& tee olp 
# (find-sh "cd /tmp/lily/ && find * | sort")
/tmp/lily/bin/uninstall-lilypond

* (eepitch-shell)
* (eepitch-kill)
* (eepitch-shell)
# http://download.linuxaudio.org/lilypond/binaries/linux-x86/lilypond-2.18.2-1.linux-x86.sh
LILYSH=$S/http/download.linuxaudio.org/lilypond/binaries/linux-x86/lilypond-2.18.2-1.linux-x86.sh
cd /tmp/
sh $LILYSH --help
sh $LILYSH
# (find-sh "cd ~/lilypond/ && find * | sort")
# (find-lilysh "find * | sort")

cd /tmp/
cat > test.ly <<'%%%'
\version "2.18.2"
{
  c' e' g' e'
}
%%%
lilypond test.ly

# (find-xpdfpage "/tmp/test.pdf")


# (find-lilyfile "usr/share/emacs/site-lisp/")
# (find-fline "~/lilypond/usr/share/lilypond/current/ly/")
# (find-fline "~/bin/uninstall-lilypond")
# (find-fline "/tmp/lily/")
# (find-sh "cd /tmp/lily/ && find * | sort")




#####
#
# autochange
# 2014nov22
#
#####

# «autochange» (to ".autochange")
# (find-fline "~/LOGS/2014nov21.lilypond")

<edrx> hi, this is a very newbie-ish question
<edrx> I just installed 2.18.2 on Debian using the installer on
       lilypond.org
<edrx> and downloaded some of the manuals, too. the question is: I
       would like to typeset some scores for piano where at some
       points the left-hand part is written on the upper staff
<edrx> what are the keywords that I should look for in the manuals
       to see how to do that?
<thrig> "Changing staff automatically" in notation docs
<edrx> I found "Cross staff stems" here:
       http://lilypond.org/doc/v2.18/Documentation/snippets/staff-notation
<edrx> and "autochange"
<edrx> thanks!





#####
#
# Bach's inventions
# 2014dec31
#
#####

# «inventions» (to ".inventions")
# http://www.mutopiaproject.org/cgibin/make-table.cgi?collection=bachis&preview=1
# http://www.mutopiaproject.org/ftp/BachJS/BWV772/bach-invention-01/bach-invention-01.ly
# http://www.mutopiaproject.org/ftp/BachJS/BWV772/bach-invention-01/bach-invention-01-a4.pdf
# http://www.mutopiaproject.org/ftp/BachJS/BWV774/bach-invention-03/bach-invention-03.ly
# http://www.mutopiaproject.org/ftp/BachJS/BWV774/bach-invention-03/bach-invention-03-a4.pdf
# http://www.mutopiaproject.org/ftp/BachJS/BWV775/bach-invention-04/bach-invention-04.ly
# http://www.mutopiaproject.org/ftp/BachJS/BWV775/bach-invention-04/bach-invention-04-a4.pdf

* (eepitch-shell)
* (eepitch-kill)
* (eepitch-shell)
cp -v $S/http/www.mutopiaproject.org/ftp/BachJS/BWV772/bach-invention-01/bach-invention-01.ly ~/LILYPOND/
cp -v $S/http/www.mutopiaproject.org/ftp/BachJS/BWV774/bach-invention-03/bach-invention-03.ly ~/LILYPOND/
cp -v $S/http/www.mutopiaproject.org/ftp/BachJS/BWV775/bach-invention-04/bach-invention-04.ly ~/LILYPOND/
cd ~/LILYPOND/
cp -v bach-invention-01.ly invention-01.ly
cp -v bach-invention-03.ly invention-03.ly
cp -v bach-invention-04.ly invention-04.ly

# (find-angg "LILYPOND/")
# (find-angg "LILYPOND/invention-01.ly")
# (find-angg "LILYPOND/invention-02.ly")
# (find-angg "LILYPOND/invention-03.ly")





#####
#
# Frescobaldi
# 2015jan24
#
#####

# «frescobaldi» (to ".frescobaldi")
# http://frescobaldi.org/
# http://frescobaldi.org/download
# http://frescobaldi.org/uguide
# http://frescobaldi.org/links#distros
# https://github.com/wbsoft/frescobaldi/releases
# https://github.com/wbsoft/frescobaldi/releases/download/v2.17.2/frescobaldi-2.17.2.tar.gz

# (find-zsh "availabledebs | sort | grep py")
# python-qt4
# python-poppler-qt4
# python-pygame

* (eepitch-shell)
* (eepitch-kill)
* (eepitch-shell)
rm -Rv ~/usrc/frescobaldi-2.17.2/
tar -C ~/usrc/ -xvzf \
  /home/edrx/snarf/https/github.com/wbsoft/frescobaldi/releases/download/v2.17.2/frescobaldi-2.17.2.tar.gz
cd     ~/usrc/frescobaldi-2.17.2/

sudo python setup.py install  |& tee opsi

# (code-c-d "frescobaldi" "~/usrc/frescobaldi-2.17.2/")
# (find-frescobaldifile "")
# (find-frescobaldifile "INSTALL")

* (eepitch-shell2)
sudo apt-get install    frescobaldi




#####
#
# Ben Lemon's video tutorials
# 2015jan24
#
#####

# «ben-lemons-videos» (to ".ben-lemons-videos")
# http://benlemon.me/blog/music/lilypond/operation-lilypond
# https://www.youtube.com/watch?v=tclwyZr08bE&list=PLHi8BvxILUV7hsUjn_Az5filU1TsNzq2R&index=1
# http://www.youtube.com/watch?v=tclwyZr08bE LilyPond Tutorial 1 - Introduction & First Score
# http://www.youtube.com/watch?v=4zIk7pA-k8o LilyPond Tutorial 2 - Community & Mailing List
# http://www.youtube.com/watch?v=RK4Db1Hby_k LilyPond Tutorial 3 - Introduction to Frescobaldi
# http://www.youtube.com/watch?v=87mt_nicr74 LilyPond Tutorial 4 - Fundamentals and Basic Input
# http://www.youtube.com/watch?v=M_m4YdYUSkM LilyPond Tutorial 5 - Bar Checks, Beams, & Header
# http://www.youtube.com/watch?v=7uyDjfdVc20 LilyPond Tutorial 6 - Articulations, Dynamics, etc.
# http://www.youtube.com/watch?v=grtEMMCDz5M LilyPond Tutorial 7 - Chords & Attached Text
# http://www.youtube.com/watch?v=DRKGw6RWLJI LilyPond Tutorial 8 - New Score Setup (Frescobaldi)
# http://www.youtube.com/watch?v=_q1KqM29YDQ LilyPond Tutorial 9 - SVG Export & Score Manipulation
# http://www.youtube.com/watch?v=mmfXHVrkG3g LilyPond Tutorial 10 - Variables & Tuplets
# http://www.youtube.com/watch?v=1ILRboieK1I LilyPond Tutorial 11 - Voices
# http://www.youtube.com/watch?v=I3cN7hX4pBo LilyPond Tutorial 12 - Adding Lyrics
# http://www.youtube.com/watch?v=0V4t8kbZ0Ew LilyPond Tutorial 13 - Working with Relative Mode
# http://www.youtube.com/watch?v=jIgxiKhLWu8 LilyPond Tutorial 14 - Creating Staves & Instrument Names
# http://www.youtube.com/watch?v=P8cPY8r01i8 LilyPond Tutorial 15 - Frescobaldi: More Features (pt. 1)
# http://www.youtube.com/watch?v=jzXrKwOw_7Q LilyPond Tutorial 16 - Frescobaldi: More Features (pt. 2)
# http://www.youtube.com/watch?v=xIpi0zZRm9c LilyPond Tutorial 17 - Basic Percussion Notation
# http://www.youtube.com/watch?v=RkiSsD8RG-s LilyPond Tutorial 18 - Harmonics / Snap Pizzicato
# http://www.youtube.com/watch?v=KsxiUFsx0d0 LilyPond Tutorial 19 - Page Formatting
# http://www.youtube.com/watch?v=UI2R4TaQqRQ LilyPond Tutorial 20 - Changelog & What's New?
# http://www.youtube.com/watch?v=p8kpLKPov6E LilyPond Tutorial 21 - The Global Block
# http://www.youtube.com/watch?v=IOTQw5g2x7g LilyPond Tutorial 22 - 2.18 Update & Frescobaldi 2.0.13
# http://www.youtube.com/watch?v=Vmfc-EixJ-8 LilyPond Tutorial 23 - The \score Block: Part I
# http://www.youtube.com/watch?v=eXVsgGbKwN8 LilyPond Tutorial 24 - The \include Command (\score pt. 2)
# http://www.youtube.com/watch?v=EtbWzd72iqA LilyPond Tutorial 25 - Final Lesson & PianoStaff




#####
#
# Page breaks
# 2015jan24
#
#####

# «page-breaks» (to ".page-breaks")
# http://lilypondblog.org/2015/01/partially-compiling-a-lilypond-score/




<edrx> two quick questions about typestting piano fingerings...
<edrx> I am a beginner, and I have written down - with a pencil -
       detailed fingerings for a piece - but at some places I have
       two different choices of fingerings - what would you
       recommend for writing down the fingerings separately from
       the notes? there must be ways (using scheme) to add
       fingerings a posteriori...
<thrig> haven't figured out how to do that yet
<edrx> hm, ok
<edrx> I just found this:
       http://lsr.dsi.unimi.it/LSR/Search?q=fingering
<edrx> (which sort of has pointers about my second question, which
       would be about "substitution fingerings" =))






;; Garbage (very old):

;; (find-fline "/etc/emacs/site-start.d/50lilypond.el")
;; (find-fline "/usr/share/emacs/site-lisp/lilypond-mode.el" "lilypond-indent")
;; The library lilypond-indent.el does not exist, so we fake it.
;; (find-angg "LILYPOND/lilypond-indent.el")
;; (find-es "music" "lilypond-src")
;; (add-to-list 'load-path "~/LILYPOND/")

;; (add-to-list 'Info-additional-directory-list "/usr/share/info/lilypond/")
;; (find-node "(lilypond)Top")

# (find-available "rumor")
# (find-available "frescobaldi")

http://lilypondblog.org/2015/01/partially-compiling-a-lilypond-score/ *
http://lilypondblog.org/2014/12/catching-up-with-the-mutopia-project/
http://lilypondblog.org/2014/10/annotating-scores/
http://lilypondblog.org/2014/10/segmented-workflows/
http://lilypondblog.org/2014/09/lilyponds-look-and-feel/
http://benlemon.me/blog/music/lilypond/operation-lilypond

http://lilypondblog.org/category/people/




#  Local Variables:
#  coding:               raw-text-unix
#  ee-delimiter-hash:    "\n#*\n"
#  ee-delimiter-percent: "\n%*\n"
#  ee-anchor-format:     "«%s»"
#  End: