summaryrefslogtreecommitdiffstats
path: root/2020
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--2020/info/04.md2
-rw-r--r--2020/organizers-notebook.org8
-rw-r--r--2020/subtitles/emacsconf-2020--04-music-in-plain-text--jonathan-gregory.sbv (renamed from 2020/subtitles/emacsconf-2020--04-music-in-plain-text--jonathan-gregory-autogen.sbv)374
-rw-r--r--2020/subtitles/emacsconf-2020--04-music-in-plain-text--jonathan-gregory.vtt607
4 files changed, 788 insertions, 203 deletions
diff --git a/2020/info/04.md b/2020/info/04.md
index 23bc30af..b0cffc2d 100644
--- a/2020/info/04.md
+++ b/2020/info/04.md
@@ -1,7 +1,7 @@
# Music in Plain Text
Jonathan Gregory
-[[!template id=vid src="https://mirror.csclub.uwaterloo.ca/emacsconf/2020/emacsconf-2020--04-music-in-plain-text--jonathan-gregory.webm"]]
+[[!template id=vid src="https://mirror.csclub.uwaterloo.ca/emacsconf/2020/emacsconf-2020--04-music-in-plain-text--jonathan-gregory.webm" subtitles="/2020/subtitles/emacsconf-2020--04-music-in-plain-text--jonathan-gregory.vtt"]]
[Download compressed .webm video (13.8M)](https://mirror.csclub.uwaterloo.ca/emacsconf/2020/smaller/emacsconf-2020--04-music-in-plain-text--jonathan-gregory--vp9-q56-video-original-audio.webm)
LilyPond is an extensible program for producing high-quality sheet
diff --git a/2020/organizers-notebook.org b/2020/organizers-notebook.org
index 2a09f9c1..b2e12a57 100644
--- a/2020/organizers-notebook.org
+++ b/2020/organizers-notebook.org
@@ -25,10 +25,12 @@ beginning timestamp. To reduce duplication of work, make sure you have the lates
want to do by prepending your name to the TODO title, and commit
organizers-notebook.org back to the repo.
*** TODO [[../subtitles/emacsconf-2020--00-opening-remarks-autogen.sbv]]
-*** INPROGRESS sachac [[../subtitles/emacsconf-2020--03-idea-to-novel-superstructure-emacs-for-writing--bala-ramadurai-autogen.sbv]]
+*** DONE sachac [[../subtitles/emacsconf-2020--03-idea-to-novel-superstructure-emacs-for-writing--bala-ramadurai-autogen.sbv]]
+ CLOSED: [2020-12-10 Thu 11:21]
See [[file:info/03/screenplay.fountain]]
-*** TODO [[../subtitles/emacsconf-2020--04-music-in-plain-text--jonathan-gregory-autogen.sbv]]
-*** TODO [[../subtitles/emacsconf-2020--05-bard-bivoumacs-building-a-bandcamp-like-page-for-an-album-of-music--grant-shangreaux-autogen.sbv]]
+*** DONE sachac [[../subtitles/emacsconf-2020--04-music-in-plain-text--jonathan-gregory-autogen.sbv]]
+ CLOSED: [2020-12-10 Thu 11:21]
+*** TODO sachac [[../subtitles/emacsconf-2020--05-bard-bivoumacs-building-a-bandcamp-like-page-for-an-album-of-music--grant-shangreaux-autogen.sbv]]
*** TODO [[../subtitles/emacsconf-2020--05-bard-bivoumacs-building-a-bandcamp-like-page-for-an-album-of-music--questions--grant-shangreaux-autogen.sbv]]
*** TODO [[../subtitles/emacsconf-2020--07-beyond-vim-and-emacs-a-scalable-ui-paradigm--questions--sid-kasivajhula-autogen.sbv]]
*** TODO [[../subtitles/emacsconf-2020--07-beyond-vim-and-emacs-a-scalable-ui-paradigm--sid-kasivajhula-autogen.sbv]]
diff --git a/2020/subtitles/emacsconf-2020--04-music-in-plain-text--jonathan-gregory-autogen.sbv b/2020/subtitles/emacsconf-2020--04-music-in-plain-text--jonathan-gregory.sbv
index fe5efc84..239cf0e3 100644
--- a/2020/subtitles/emacsconf-2020--04-music-in-plain-text--jonathan-gregory-autogen.sbv
+++ b/2020/subtitles/emacsconf-2020--04-music-in-plain-text--jonathan-gregory.sbv
@@ -1,11 +1,8 @@
0:00:02.000,0:00:04.799
-hello everyone and welcome to the amax
-
-0:00:04.240,0:00:07.200
-golf
+Hello, everyone, and welcome to the EmacsConf.
0:00:04.799,0:00:09.599
-I am jonathan and in this talk I'm going
+I am Jonathan. In this talk I'm going
0:00:07.200,0:00:10.880
to demonstrate ways of producing sheet
@@ -14,415 +11,406 @@ to demonstrate ways of producing sheet
music in Emacs
0:00:10.880,0:00:18.400
-using lily pond and maybe also convince
+using Lilypond, and maybe also convince
0:00:14.320,0:00:18.400
-you to use Emacs for writing your scores
+you to use Emacs for writing your scores.
0:00:18.640,0:00:22.240
-so I'll start with an overview of the
+I'll start with an overview of the
0:00:20.400,0:00:24.400
syntax for those who are new to using
0:00:22.240,0:00:26.800
-text based notation
+text-based notation
0:00:24.400,0:00:28.800
-as a shallow dive into the deep bond of
+as a shallow dive into the deep pond of
0:00:26.800,0:00:30.800
-lilies and lily pawns
+lilies and Lilypond,
0:00:28.800,0:00:32.960
and move on to showcase some of its
0:00:30.800,0:00:36.320
-functionalities using orb mode
+functionalities using Org Mode
0:00:32.960,0:00:40.480
-and lily point mode one disclaimer
+and lilypond-mode. One disclaimer,
0:00:36.320,0:00:44.079
-however I am not a lillipon developer
+however: I am not a Lilypond developer.
0:00:40.480,0:00:46.800
-so what is lillipond lillipond is
+So what is Lilypond? Lilypond is
0:00:44.079,0:00:50.000
a file format and music engraving system
0:00:46.800,0:00:52.640
-for producing high quality sheet music
+for producing high-quality sheet music.
0:00:50.000,0:00:55.120
-it translates texture representations of
+It translates textual representations of
0:00:52.640,0:00:57.760
-music to graphical objects
+music to graphical objects.
0:00:55.120,0:01:00.000
-so it's similar to latex in that its
+It's similar to LaTeX in that its
0:00:57.760,0:01:01.600
input format describes the visual
0:01:00.000,0:01:03.520
-layouts of the score
+layouts of the score,
0:01:01.600,0:01:05.119
using commands to define musical
0:01:03.520,0:01:07.760
-expressions
+expressions.
0:01:05.119,0:01:08.640
-commands begin with a backslash for
+Commands begin with a backslash.
0:01:07.760,0:01:10.479
-example
+For example,
0:01:08.640,0:01:13.040
-the formatter command as shown on the
+the formatter command, as shown on the
0:01:10.479,0:01:13.920
-left yields its graphical equivalents on
+left, yields its graphical equivalents on
0:01:13.040,0:01:16.640
-the right
+the right,
0:01:13.920,0:01:19.119
-the fermata symbol over the load b and
+the fermata symbol over the low B and
0:01:16.640,0:01:21.600
-so on and so forth
+so on and so forth.
0:01:19.119,0:01:23.119
-it's also fully extensible like Emacs
+It's also fully extensible, like Emacs,
0:01:21.600,0:01:25.600
allowing users to extend
0:01:23.119,0:01:26.640
-and override lilipon's functionalities
+and override Lilypond's functionalities
0:01:25.600,0:01:29.840
-using the scheme
+using the Scheme
0:01:26.640,0:01:31.600
-scripting language it can be used for
+scripting language. It can be used for
0:01:29.840,0:01:34.479
-early in contemporary music
+early and contemporary music
0:01:31.600,0:01:35.200
-tablature vocal music lead sheets and so
+tablature, vocal music lead sheets,
0:01:34.479,0:01:38.000
-on
+and so on.
0:01:35.200,0:01:38.479
-and above all it works with Emacs in
+Above all, it works with Emacs.
0:01:38.000,0:01:41.040
-fact
+In fact,
0:01:38.479,0:01:43.119
-lily pond ships with imax lisp libraries
+Lilypond ships with Emacs Lisp libraries,
0:01:41.040,0:01:45.920
-including a major mode for editing lily
+including a major mode for editing
0:01:43.119,0:01:45.920
-pawn files
+Lilypond files.
0:01:47.360,0:01:50.560
-so the input files are similar to source
+So the input files are similar to
0:01:50.000,0:01:52.560
-files
+source files.
0:01:50.560,0:01:54.079
-they contain expressions formed with
+They contain expressions formed with
0:01:52.560,0:01:55.840
-curly braces
+curly braces,
0:01:54.079,0:02:00.159
comments that start with the percent
0:01:55.840,0:02:00.159
-sign and the code is indented
+sign, and the code is indented.
0:02:00.240,0:02:05.600
-nodes are entered using lowercase
+Notes are entered using lowercase
0:02:02.159,0:02:08.800
-letters and rests with the letter r
+letters, and rests with the letter r.
0:02:05.600,0:02:11.039
-in this case the lowercase r or r4
+In this case, the lowercase r or r4
0:02:08.800,0:02:14.000
is the equivalence of a crotchet or
0:02:11.039,0:02:16.160
-quarter note rest
+quarter note rest.
0:02:14.000,0:02:18.480
-durations are entered using numbers and
+Durations are entered using numbers and
0:02:16.160,0:02:20.959
-dots after the note name
+dots after the note name.
0:02:18.480,0:02:22.640
-and if you do not specify 1 the previous
+If you do not specify one, the previous
0:02:20.959,0:02:24.560
-duration is used
+duration is used.
0:02:22.640,0:02:27.360
-you can also tie notes together using
+You can also tie notes together using
0:02:24.560,0:02:30.000
-the tilde symbol
+the tilde symbol (~).
0:02:27.360,0:02:32.080
-in fact you can input chords lyrics
+In fact, you can input chords, lyrics,
0:02:30.000,0:02:33.920
-embellishments and a lot more
+embellishments, and a lot more.
0:02:32.080,0:02:36.160
-so I encourage you to read the menu for
+I encourage you to read the manual for
0:02:33.920,0:02:39.680
-more information
+more information.
0:02:36.160,0:02:42.000
-now let's switch to a terminal window
+Now let's switch to a terminal window.
0:02:39.680,0:02:43.840
-so with lillipond installed let's create
+with Lilypond installed, let's create
0:02:42.000,0:02:50.560
a test file with the extension
0:02:43.840,0:02:52.400
-ly and open it in Emacs
+.ly and open it in Emacs.
0:02:50.560,0:02:54.800
-at the top of the file is the version
+At the top of the file is the version
0:02:52.400,0:02:57.440
-statement which tells lillipond which
+statement, which tells Lilypond which
0:02:54.800,0:03:00.959
-version to use when compiling the file
+version to use when compiling the file.
0:02:57.440,0:03:03.680
-here I'm using version 2.20.0
+Here I'm using version 2.20.0.
0:03:00.959,0:03:04.159
-I've added the clef and time signature
-
-0:03:03.680,0:03:07.440
-so
+I've added the clef and time signature.
0:03:04.159,0:03:07.440
-let's add some notes
+Let's add some notes.
0:03:09.280,0:03:14.560
-okay I'm going to close this now and
+I'm going to close this now and
0:03:12.400,0:03:19.760
compile the file by running
0:03:14.560,0:03:25.040
-lily pawns followed by the file name
+lilypond followed by the file name.
0:03:19.760,0:03:25.040
-okay so now let's view the outputs
+So now let's view the output.
0:03:27.360,0:03:32.239
-okay so here's a more complex example
+Okay. So here's a more complex example
0:03:29.760,0:03:34.080
-for randomizing node sequences
+for randomizing note sequences.
0:03:32.239,0:03:36.239
-the idea is to create new reading
+The idea is to create new reading
0:03:34.080,0:03:37.760
materials each time the code blocks are
0:03:36.239,0:03:40.640
-evaluated
+evaluated.
0:03:37.760,0:03:41.840
-so as usual we begin with a header I've
+As usual, we begin with a header.
0:03:40.640,0:03:45.200
-added the title
+I've added the title
0:03:41.840,0:03:47.920
-and composer then we add the node
+and composer. Then we add the note
0:03:45.200,0:03:50.879
-sequences to use in the composition
+sequences to use in the composition.
0:03:47.920,0:03:51.200
-in this case s n is a note name just
-
-0:03:50.879,0:03:54.400
-like
+In this case, sn is a note name just like
0:03:51.200,0:03:54.959
-a b c d and so on and stands for snare
-
-0:03:54.400,0:03:58.239
-drum
+a b c d and so on, and stands for snare drum,
0:03:54.959,0:03:58.239
-the percussion instruments
+the percussion instruments.
0:03:58.879,0:04:04.080
-now here's a function that's going to
+Now here's a function that's going to
0:04:00.720,0:04:06.560
-shuffle the notes in the table
+shuffle the notes in the table.
0:04:04.080,0:04:08.799
-and finally we expand the notes inside
+Finally, we expand the notes inside
0:04:06.560,0:04:10.799
-the lillypawn source block
+the Lilypond source block.
0:04:08.799,0:04:13.680
-so whatever the function returns is
+So whatever the function returns is
0:04:10.799,0:04:16.479
-expanded inside the drums block
+expanded inside the drums block.
0:04:13.680,0:04:19.120
-now let's press ctrl c ctrl c to view
+Now let's press C-c C-c to view
0:04:16.479,0:04:19.120
-the results
+the results.
0:04:20.079,0:04:26.800
-okay and if I run this again it should
+Okay. And if I run this again, it should
0:04:23.280,0:04:26.800
-create a new composition
+create a new composition.
0:04:26.840,0:04:31.360
-great you can also audition a piece
+Great. You can also audition a piece
0:04:29.680,0:04:34.320
-using the midi command
+using the midi command,
0:04:31.360,0:04:36.560
-which creates a midi file of the score
+which creates a midi file of the score.
0:04:34.320,0:04:39.040
-note also that the ob library
+Note also that the ob library--
0:04:36.560,0:04:40.400
-sorry the ob lillypoint library comes
+sorry, the ob-lilypond library comes
0:04:39.040,0:04:42.560
-with two modes
+with two modes.
0:04:40.400,0:04:43.440
-the one I'm using now is called arrange
+The one I'm using now is called
0:04:42.560,0:04:45.440
-mode
+arrange mode
0:04:43.440,0:04:47.120
-and is useful for assembling complete
+and is useful for assembling
0:04:45.440,0:04:49.360
-scores
+complete scores.
0:04:47.120,0:04:51.199
-the basic mode on the other hand allows
+The basic mode on the other hand allows
0:04:49.360,0:04:53.360
you to mix text and music
0:04:51.199,0:04:55.440
-by embedding lily pawn snippets and
+by embedding Lilypond snippets and
0:04:53.360,0:04:57.840
-export them using typical org mode
+export them using typical Org Mode
0:04:55.440,0:04:57.840
-commands
+commands.
0:05:00.240,0:05:04.320
-now to demonstrate the basic mode in
+Now to demonstrate the basic mode in
0:05:02.320,0:05:05.120
-action I'm going to export this document
+action. I'm going to export this document
0:05:04.320,0:05:08.240
-to a pdf
+to a PDF file.
0:05:05.120,0:05:10.639
-file in this case the
+In this case, the
0:05:08.240,0:05:11.919
-filehead argument is required so you
+:file header argument is required, so you
0:05:10.639,0:05:15.280
have to provide one
0:05:11.919,0:05:15.280
-and include the file name
+and include the file name.
0:05:15.600,0:05:20.479
-again you can run the code and view the
+Again, you can run the code and view
0:05:17.919,0:05:20.479
-results
+the results.
0:05:22.160,0:05:30.080
-here it is so now let's
+Here it is. So now let's
0:05:25.840,0:05:30.080
-export this to pdf file
+export this to a PDF file.
0:05:33.680,0:05:41.440
-and here it is what it generates
+And here it is, what it generates.
0:05:39.680,0:05:44.000
-now I'm going to show you the workflow I
+Now I'm going to show you the workflow I
0:05:41.440,0:05:46.160
-used to produce music books in Emacs
+used to produce music books in Emacs,
0:05:44.000,0:05:48.000
-combining lily pond and latex for a
+combining Lilypond and LaTeX for a
0:05:46.160,0:05:50.160
-perfect marriage
+perfect marriage.
0:05:48.000,0:05:53.039
-I begin by sketching first draft of the
+I begin by sketching the first draft of the
0:05:50.160,0:05:55.039
-manuscript using pencil and paper
+manuscript using pencil and paper.
0:05:53.039,0:05:57.440
-then I move to Emacs to input the notes
+Then I move to Emacs to input the notes
0:05:55.039,0:06:00.080
-in a git repository
+in a git repository.
0:05:57.440,0:06:01.360
-this is a typical source file it begins
+This is a typical source file. It begins
0:06:00.080,0:06:03.199
with a stylesheet
@@ -431,7 +419,7 @@ with a stylesheet
where I set variables and layout
0:06:03.199,0:06:07.039
-settings although in general there's no
+settings, although in general, there's no
0:06:05.440,0:06:09.280
need for tweaking the layout
@@ -440,191 +428,179 @@ need for tweaking the layout
unless you have specific requirements to
0:06:09.280,0:06:13.360
-do so
+do so.
0:06:11.199,0:06:15.520
-the easiest way to compile the file from
+The easiest way to compile the file from
0:06:13.360,0:06:19.280
-max is by pressing ctrl c
+Emacs is by pressing C-c C-l,
0:06:15.520,0:06:21.199
-ctrl l so let's do this now
+so let's do this now,
0:06:19.280,0:06:23.759
and the compilation buffer will tell you
0:06:21.199,0:06:26.000
-if there were any errors in the file
+if there were any errors in the file.
0:06:23.759,0:06:28.560
-now to automate the process of compiling
+Now to automate the process of compiling
0:06:26.000,0:06:31.280
-several files and building the pdf
+several files and building the PDF,
0:06:28.560,0:06:32.560
-I use gnu make so all I have to do is
+I use GNU Make, so all I have to do is
0:06:31.280,0:06:36.000
open the shell
0:06:32.560,0:06:37.840
-and run the make command and don't worry
+and run the make command. Don't worry,
0:06:36.000,0:06:40.720
I'll provide a link to the source code
0:06:37.840,0:06:40.720
-on the last slide
+on the last slide.
0:06:41.600,0:06:46.000
-as I moved forward with the project I
+As I moved forward with the project, I
0:06:43.600,0:06:48.720
-found at least two things missing
+found at least two things missing.
0:06:46.000,0:06:50.479
-one I had no access to a metronome at
+One, I had no access to a metronome,
0:06:48.720,0:06:52.960
-least not from the editor
+at least not from the editor,
0:06:50.479,0:06:55.919
so I built one for casual use and made
0:06:52.960,0:06:58.000
-it available in the melpa repository
+it available in the MELPA repository.
0:06:55.919,0:06:59.039
-I also missed bar numbers in the source
-
-0:06:58.000,0:07:00.880
-file this
+I also missed bar numbers in the source file.
0:06:59.039,0:07:03.199
-is useful when going back and forth
+This is useful when going back and forth
0:07:00.880,0:07:04.479
between input and output files without
0:07:03.199,0:07:06.720
-getting lost
+getting lost.
0:07:04.479,0:07:08.479
-so I wrote a command for toggling bar
+So I wrote a command for toggling bar
0:07:06.720,0:07:10.000
-numbers which I hope you can see on the
-
-0:07:08.479,0:07:12.080
-left
+numbers, which I hope you can see on the left.
0:07:10.000,0:07:14.160
-also some expressions are difficult or
+Also, some expressions are difficult or
0:07:12.080,0:07:17.039
-slow to write on the keyboard
+slow to write on the keyboard--
0:07:14.160,0:07:19.199
-accents and tuplets for example so I use
+accents and tuplets, for example--so I use
0:07:17.039,0:07:20.160
-template expansion extensively for this
-
-0:07:19.199,0:07:23.280
-purpose
+template expansion extensively for this purpose,
0:07:20.160,0:07:23.280
-mainly yes snippets
+mainly ya-snippet.
0:07:23.440,0:07:28.080
-so what do I think well I think
+So what do I think? Well, I think
0:07:25.680,0:07:31.039
-lillypond can be a sharp paradigm shift
+Lilypond can be a sharp paradigm shift
0:07:28.080,0:07:32.720
-but people used to gui alternatives but
+for people used to GUI alternatives, but
0:07:31.039,0:07:34.639
-the results are impressive
+the results are impressive.
0:07:32.720,0:07:36.960
-and you don't have to dive too deeply to
+You don't have to dive too deeply to
0:07:34.639,0:07:38.880
-start using lillypod
+start using Lilypond.
0:07:36.960,0:07:40.720
-likewise the ability to extend the
+Likewise, the ability to extend the
0:07:38.880,0:07:42.400
-software I think is especially appealing
+software, I think, is especially appealing
0:07:40.720,0:07:45.199
-for music professionals
+for music professionals,
0:07:42.400,0:07:46.560
-enthusiasts composers and the academic
+enthusiasts, composers, and the academic
0:07:45.199,0:07:48.400
-community
+community:
0:07:46.560,0:07:50.800
-for example allowing users to create
+for example, allowing users to create
0:07:48.400,0:07:53.120
alternative notation systems required in
0:07:50.800,0:07:56.160
-non-western music traditions
+non-Western music traditions
0:07:53.120,0:07:58.400
-and other non-conventional requirements
+and other non-conventional requirements.
0:07:56.160,0:08:00.720
-also lillypod and Emacs both have
+Also, Lilypond and Emacs both have
0:07:58.400,0:08:04.639
extensive and well-written manuals
0:08:00.720,0:08:06.400
-and active communities of users
+and active communities of users.
0:08:04.639,0:08:08.800
-but if you're still not sure where to
+But if you're still not sure where to
0:08:06.400,0:08:09.599
-start and when to wedge your feet in the
-
-0:08:08.800,0:08:12.160
-deep
+start and when to wedge your feet in the deep
0:08:09.599,0:08:13.680
-but warm pond of lilies lily pawns and
+but warm pond of lilies, Lilypond, and
0:08:12.160,0:08:15.680
-lily pond users
+Lilypond users,
0:08:13.680,0:08:16.960
-I invite you to contribute to my lilly
+I invite you to contribute to my
0:08:15.680,0:08:18.800
-pond projects
+Lilypond projects,
0:08:16.960,0:08:20.720
which you can do so from the links on
0:08:18.800,0:08:22.800
-the screen
+the screen.
0:08:20.720,0:08:24.639
-so thank you all I look forward to your
+So, thank you all. I look forward to your
0:08:22.800,0:08:27.840
-comments and I hope you enjoy the rest
+comments, and I hope you enjoy the rest
0:08:24.639,0:08:27.840
-of the conference
+of the conference.
diff --git a/2020/subtitles/emacsconf-2020--04-music-in-plain-text--jonathan-gregory.vtt b/2020/subtitles/emacsconf-2020--04-music-in-plain-text--jonathan-gregory.vtt
new file mode 100644
index 00000000..e145fd24
--- /dev/null
+++ b/2020/subtitles/emacsconf-2020--04-music-in-plain-text--jonathan-gregory.vtt
@@ -0,0 +1,607 @@
+WEBVTT
+
+00:00:02.000 --> 00:00:04.799
+Hello, everyone, and welcome to the EmacsConf.
+
+00:00:04.799 --> 00:00:07.200
+I am Jonathan. In this talk I'm going
+
+00:00:07.200 --> 00:00:09.599
+to demonstrate ways of producing sheet
+
+00:00:09.599 --> 00:00:10.880
+music in Emacs
+
+00:00:10.880 --> 00:00:14.320
+using Lilypond, and maybe also convince
+
+00:00:14.320 --> 00:00:18.640
+you to use Emacs for writing your scores.
+
+00:00:18.640 --> 00:00:20.400
+I'll start with an overview of the
+
+00:00:20.400 --> 00:00:22.240
+syntax for those who are new to using
+
+00:00:22.240 --> 00:00:24.400
+text-based notation
+
+00:00:24.400 --> 00:00:26.800
+as a shallow dive into the deep pond of
+
+00:00:26.800 --> 00:00:28.800
+lilies and Lilypond,
+
+00:00:28.800 --> 00:00:30.800
+and move on to showcase some of its
+
+00:00:30.800 --> 00:00:32.960
+functionalities using Org Mode
+
+00:00:32.960 --> 00:00:36.320
+and lilypond-mode. One disclaimer,
+
+00:00:36.320 --> 00:00:40.480
+however: I am not a Lilypond developer.
+
+00:00:40.480 --> 00:00:44.079
+So what is Lilypond? Lilypond is
+
+00:00:44.079 --> 00:00:46.800
+a file format and music engraving system
+
+00:00:46.800 --> 00:00:50.000
+for producing high-quality sheet music.
+
+00:00:50.000 --> 00:00:52.640
+It translates textual representations of
+
+00:00:52.640 --> 00:00:55.120
+music to graphical objects.
+
+00:00:55.120 --> 00:00:57.760
+It's similar to LaTeX in that its
+
+00:00:57.760 --> 00:01:00.000
+input format describes the visual
+
+00:01:00.000 --> 00:01:01.600
+layouts of the score,
+
+00:01:01.600 --> 00:01:03.520
+using commands to define musical
+
+00:01:03.520 --> 00:01:05.119
+expressions.
+
+00:01:05.119 --> 00:01:07.760
+Commands begin with a backslash.
+
+00:01:07.760 --> 00:01:08.640
+For example,
+
+00:01:08.640 --> 00:01:10.479
+the formatter command, as shown on the
+
+00:01:10.479 --> 00:01:13.040
+left, yields its graphical equivalents on
+
+00:01:13.040 --> 00:01:13.920
+the right,
+
+00:01:13.920 --> 00:01:16.640
+the fermata symbol over the low B and
+
+00:01:16.640 --> 00:01:19.119
+so on and so forth.
+
+00:01:19.119 --> 00:01:21.600
+It's also fully extensible, like Emacs,
+
+00:01:21.600 --> 00:01:23.119
+allowing users to extend
+
+00:01:23.119 --> 00:01:25.600
+and override Lilypond's functionalities
+
+00:01:25.600 --> 00:01:26.640
+using the Scheme
+
+00:01:26.640 --> 00:01:29.840
+scripting language. It can be used for
+
+00:01:29.840 --> 00:01:31.600
+early and contemporary music
+
+00:01:31.600 --> 00:01:34.479
+tablature, vocal music lead sheets,
+
+00:01:34.479 --> 00:01:35.200
+and so on.
+
+00:01:35.200 --> 00:01:38.000
+Above all, it works with Emacs.
+
+00:01:38.000 --> 00:01:38.479
+In fact,
+
+00:01:38.479 --> 00:01:41.040
+Lilypond ships with Emacs Lisp libraries,
+
+00:01:41.040 --> 00:01:43.119
+including a major mode for editing
+
+00:01:43.119 --> 00:01:47.360
+Lilypond files.
+
+00:01:47.360 --> 00:01:50.000
+So the input files are similar to
+
+00:01:50.000 --> 00:01:50.560
+source files.
+
+00:01:50.560 --> 00:01:52.560
+They contain expressions formed with
+
+00:01:52.560 --> 00:01:54.079
+curly braces,
+
+00:01:54.079 --> 00:01:55.840
+comments that start with the percent
+
+00:01:55.840 --> 00:02:00.240
+sign, and the code is indented.
+
+00:02:00.240 --> 00:02:02.159
+Notes are entered using lowercase
+
+00:02:02.159 --> 00:02:05.600
+letters, and rests with the letter r.
+
+00:02:05.600 --> 00:02:08.800
+In this case, the lowercase r or r4
+
+00:02:08.800 --> 00:02:11.039
+is the equivalence of a crotchet or
+
+00:02:11.039 --> 00:02:14.000
+quarter note rest.
+
+00:02:14.000 --> 00:02:16.160
+Durations are entered using numbers and
+
+00:02:16.160 --> 00:02:18.480
+dots after the note name.
+
+00:02:18.480 --> 00:02:20.959
+If you do not specify one, the previous
+
+00:02:20.959 --> 00:02:22.640
+duration is used.
+
+00:02:22.640 --> 00:02:24.560
+You can also tie notes together using
+
+00:02:24.560 --> 00:02:27.360
+the tilde symbol (~).
+
+00:02:27.360 --> 00:02:30.000
+In fact, you can input chords, lyrics,
+
+00:02:30.000 --> 00:02:32.080
+embellishments, and a lot more.
+
+00:02:32.080 --> 00:02:33.920
+I encourage you to read the manual for
+
+00:02:33.920 --> 00:02:36.160
+more information.
+
+00:02:36.160 --> 00:02:39.680
+Now let's switch to a terminal window.
+
+00:02:39.680 --> 00:02:42.000
+with Lilypond installed, let's create
+
+00:02:42.000 --> 00:02:43.840
+a test file with the extension
+
+00:02:43.840 --> 00:02:50.560
+.ly and open it in Emacs.
+
+00:02:50.560 --> 00:02:52.400
+At the top of the file is the version
+
+00:02:52.400 --> 00:02:54.800
+statement, which tells Lilypond which
+
+00:02:54.800 --> 00:02:57.440
+version to use when compiling the file.
+
+00:02:57.440 --> 00:03:00.959
+Here I'm using version 2.20.0.
+
+00:03:00.959 --> 00:03:04.159
+I've added the clef and time signature.
+
+00:03:04.159 --> 00:03:09.280
+Let's add some notes.
+
+00:03:09.280 --> 00:03:12.400
+I'm going to close this now and
+
+00:03:12.400 --> 00:03:14.560
+compile the file by running
+
+00:03:14.560 --> 00:03:19.760
+lilypond followed by the file name.
+
+00:03:19.760 --> 00:03:27.360
+So now let's view the output.
+
+00:03:27.360 --> 00:03:29.760
+Okay. So here's a more complex example
+
+00:03:29.760 --> 00:03:32.239
+for randomizing note sequences.
+
+00:03:32.239 --> 00:03:34.080
+The idea is to create new reading
+
+00:03:34.080 --> 00:03:36.239
+materials each time the code blocks are
+
+00:03:36.239 --> 00:03:37.760
+evaluated.
+
+00:03:37.760 --> 00:03:40.640
+As usual, we begin with a header.
+
+00:03:40.640 --> 00:03:41.840
+I've added the title
+
+00:03:41.840 --> 00:03:45.200
+and composer. Then we add the note
+
+00:03:45.200 --> 00:03:47.920
+sequences to use in the composition.
+
+00:03:47.920 --> 00:03:51.200
+In this case, sn is a note name just like
+
+00:03:51.200 --> 00:03:54.959
+a b c d and so on, and stands for snare drum,
+
+00:03:54.959 --> 00:03:58.879
+the percussion instruments.
+
+00:03:58.879 --> 00:04:00.720
+Now here's a function that's going to
+
+00:04:00.720 --> 00:04:04.080
+shuffle the notes in the table.
+
+00:04:04.080 --> 00:04:06.560
+Finally, we expand the notes inside
+
+00:04:06.560 --> 00:04:08.799
+the Lilypond source block.
+
+00:04:08.799 --> 00:04:10.799
+So whatever the function returns is
+
+00:04:10.799 --> 00:04:13.680
+expanded inside the drums block.
+
+00:04:13.680 --> 00:04:16.479
+Now let's press C-c C-c to view
+
+00:04:16.479 --> 00:04:20.079
+the results.
+
+00:04:20.079 --> 00:04:23.280
+Okay. And if I run this again, it should
+
+00:04:23.280 --> 00:04:26.840
+create a new composition.
+
+00:04:26.840 --> 00:04:29.680
+Great. You can also audition a piece
+
+00:04:29.680 --> 00:04:31.360
+using the midi command,
+
+00:04:31.360 --> 00:04:34.320
+which creates a midi file of the score.
+
+00:04:34.320 --> 00:04:36.560
+Note also that the ob library--
+
+00:04:36.560 --> 00:04:39.040
+sorry, the ob-lilypond library comes
+
+00:04:39.040 --> 00:04:40.400
+with two modes.
+
+00:04:40.400 --> 00:04:42.560
+The one I'm using now is called
+
+00:04:42.560 --> 00:04:43.440
+arrange mode
+
+00:04:43.440 --> 00:04:45.440
+and is useful for assembling
+
+00:04:45.440 --> 00:04:47.120
+complete scores.
+
+00:04:47.120 --> 00:04:49.360
+The basic mode on the other hand allows
+
+00:04:49.360 --> 00:04:51.199
+you to mix text and music
+
+00:04:51.199 --> 00:04:53.360
+by embedding Lilypond snippets and
+
+00:04:53.360 --> 00:04:55.440
+export them using typical Org Mode
+
+00:04:55.440 --> 00:05:00.240
+commands.
+
+00:05:00.240 --> 00:05:02.320
+Now to demonstrate the basic mode in
+
+00:05:02.320 --> 00:05:04.320
+action. I'm going to export this document
+
+00:05:04.320 --> 00:05:05.120
+to a PDF file.
+
+00:05:05.120 --> 00:05:08.240
+In this case, the
+
+00:05:08.240 --> 00:05:10.639
+:file header argument is required, so you
+
+00:05:10.639 --> 00:05:11.919
+have to provide one
+
+00:05:11.919 --> 00:05:15.600
+and include the file name.
+
+00:05:15.600 --> 00:05:17.919
+Again, you can run the code and view
+
+00:05:17.919 --> 00:05:22.160
+the results.
+
+00:05:22.160 --> 00:05:25.840
+Here it is. So now let's
+
+00:05:25.840 --> 00:05:33.680
+export this to a PDF file.
+
+00:05:33.680 --> 00:05:39.680
+And here it is, what it generates.
+
+00:05:39.680 --> 00:05:41.440
+Now I'm going to show you the workflow I
+
+00:05:41.440 --> 00:05:44.000
+used to produce music books in Emacs,
+
+00:05:44.000 --> 00:05:46.160
+combining Lilypond and LaTeX for a
+
+00:05:46.160 --> 00:05:48.000
+perfect marriage.
+
+00:05:48.000 --> 00:05:50.160
+I begin by sketching the first draft of the
+
+00:05:50.160 --> 00:05:53.039
+manuscript using pencil and paper.
+
+00:05:53.039 --> 00:05:55.039
+Then I move to Emacs to input the notes
+
+00:05:55.039 --> 00:05:57.440
+in a git repository.
+
+00:05:57.440 --> 00:06:00.080
+This is a typical source file. It begins
+
+00:06:00.080 --> 00:06:01.360
+with a stylesheet
+
+00:06:01.360 --> 00:06:03.199
+where I set variables and layout
+
+00:06:03.199 --> 00:06:05.440
+settings, although in general, there's no
+
+00:06:05.440 --> 00:06:07.039
+need for tweaking the layout
+
+00:06:07.039 --> 00:06:09.280
+unless you have specific requirements to
+
+00:06:09.280 --> 00:06:11.199
+do so.
+
+00:06:11.199 --> 00:06:13.360
+The easiest way to compile the file from
+
+00:06:13.360 --> 00:06:15.520
+Emacs is by pressing C-c C-l,
+
+00:06:15.520 --> 00:06:19.280
+so let's do this now,
+
+00:06:19.280 --> 00:06:21.199
+and the compilation buffer will tell you
+
+00:06:21.199 --> 00:06:23.759
+if there were any errors in the file.
+
+00:06:23.759 --> 00:06:26.000
+Now to automate the process of compiling
+
+00:06:26.000 --> 00:06:28.560
+several files and building the PDF,
+
+00:06:28.560 --> 00:06:31.280
+I use GNU Make, so all I have to do is
+
+00:06:31.280 --> 00:06:32.560
+open the shell
+
+00:06:32.560 --> 00:06:36.000
+and run the make command. Don't worry,
+
+00:06:36.000 --> 00:06:37.840
+I'll provide a link to the source code
+
+00:06:37.840 --> 00:06:41.600
+on the last slide.
+
+00:06:41.600 --> 00:06:43.600
+As I moved forward with the project, I
+
+00:06:43.600 --> 00:06:46.000
+found at least two things missing.
+
+00:06:46.000 --> 00:06:48.720
+One, I had no access to a metronome,
+
+00:06:48.720 --> 00:06:50.479
+at least not from the editor,
+
+00:06:50.479 --> 00:06:52.960
+so I built one for casual use and made
+
+00:06:52.960 --> 00:06:55.919
+it available in the MELPA repository.
+
+00:06:55.919 --> 00:06:59.039
+I also missed bar numbers in the source file.
+
+00:06:59.039 --> 00:07:00.880
+This is useful when going back and forth
+
+00:07:00.880 --> 00:07:03.199
+between input and output files without
+
+00:07:03.199 --> 00:07:04.479
+getting lost.
+
+00:07:04.479 --> 00:07:06.720
+So I wrote a command for toggling bar
+
+00:07:06.720 --> 00:07:10.000
+numbers, which I hope you can see on the left.
+
+00:07:10.000 --> 00:07:12.080
+Also, some expressions are difficult or
+
+00:07:12.080 --> 00:07:14.160
+slow to write on the keyboard--
+
+00:07:14.160 --> 00:07:17.039
+accents and tuplets, for example--so I use
+
+00:07:17.039 --> 00:07:20.160
+template expansion extensively for this purpose,
+
+00:07:20.160 --> 00:07:23.440
+mainly ya-snippet.
+
+00:07:23.440 --> 00:07:25.680
+So what do I think? Well, I think
+
+00:07:25.680 --> 00:07:28.080
+Lilypond can be a sharp paradigm shift
+
+00:07:28.080 --> 00:07:31.039
+for people used to GUI alternatives, but
+
+00:07:31.039 --> 00:07:32.720
+the results are impressive.
+
+00:07:32.720 --> 00:07:34.639
+You don't have to dive too deeply to
+
+00:07:34.639 --> 00:07:36.960
+start using Lilypond.
+
+00:07:36.960 --> 00:07:38.880
+Likewise, the ability to extend the
+
+00:07:38.880 --> 00:07:40.720
+software, I think, is especially appealing
+
+00:07:40.720 --> 00:07:42.400
+for music professionals,
+
+00:07:42.400 --> 00:07:45.199
+enthusiasts, composers, and the academic
+
+00:07:45.199 --> 00:07:46.560
+community:
+
+00:07:46.560 --> 00:07:48.400
+for example, allowing users to create
+
+00:07:48.400 --> 00:07:50.800
+alternative notation systems required in
+
+00:07:50.800 --> 00:07:53.120
+non-Western music traditions
+
+00:07:53.120 --> 00:07:56.160
+and other non-conventional requirements.
+
+00:07:56.160 --> 00:07:58.400
+Also, Lilypond and Emacs both have
+
+00:07:58.400 --> 00:08:00.720
+extensive and well-written manuals
+
+00:08:00.720 --> 00:08:04.639
+and active communities of users.
+
+00:08:04.639 --> 00:08:06.400
+But if you're still not sure where to
+
+00:08:06.400 --> 00:08:09.599
+start and when to wedge your feet in the deep
+
+00:08:09.599 --> 00:08:12.160
+but warm pond of lilies, Lilypond, and
+
+00:08:12.160 --> 00:08:13.680
+Lilypond users,
+
+00:08:13.680 --> 00:08:15.680
+I invite you to contribute to my
+
+00:08:15.680 --> 00:08:16.960
+Lilypond projects,
+
+00:08:16.960 --> 00:08:18.800
+which you can do so from the links on
+
+00:08:18.800 --> 00:08:20.720
+the screen.
+
+00:08:20.720 --> 00:08:22.800
+So, thank you all. I look forward to your
+
+00:08:22.800 --> 00:08:24.639
+comments, and I hope you enjoy the rest
+
+00:08:24.639 --> 00:08:27.840
+of the conference.