From edc4dd439ef0340ff1fa26e4762cad4bb1d5c0fc Mon Sep 17 00:00:00 2001 From: Sacha Chua Date: Thu, 10 Dec 2020 11:22:05 -0500 Subject: Add subtitles for talk04 --- ...sic-in-plain-text--jonathan-gregory-autogen.sbv | 630 --------------------- ...0--04-music-in-plain-text--jonathan-gregory.sbv | 606 ++++++++++++++++++++ ...0--04-music-in-plain-text--jonathan-gregory.vtt | 607 ++++++++++++++++++++ 3 files changed, 1213 insertions(+), 630 deletions(-) delete mode 100644 2020/subtitles/emacsconf-2020--04-music-in-plain-text--jonathan-gregory-autogen.sbv create mode 100644 2020/subtitles/emacsconf-2020--04-music-in-plain-text--jonathan-gregory.sbv create mode 100644 2020/subtitles/emacsconf-2020--04-music-in-plain-text--jonathan-gregory.vtt (limited to '2020/subtitles') 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-autogen.sbv deleted file mode 100644 index fe5efc84..00000000 --- a/2020/subtitles/emacsconf-2020--04-music-in-plain-text--jonathan-gregory-autogen.sbv +++ /dev/null @@ -1,630 +0,0 @@ -0:00:02.000,0:00:04.799 -hello everyone and welcome to the amax - -0:00:04.240,0:00:07.200 -golf - -0:00:04.799,0:00:09.599 -I am jonathan and in this talk I'm going - -0:00:07.200,0:00:10.880 -to demonstrate ways of producing sheet - -0:00:09.599,0:00:14.320 -music in Emacs - -0:00:10.880,0:00:18.400 -using lily pond and maybe also convince - -0:00:14.320,0:00:18.400 -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 - -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 - -0:00:24.400,0:00:28.800 -as a shallow dive into the deep bond of - -0:00:26.800,0:00:30.800 -lilies and lily pawns - -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 - -0:00:32.960,0:00:40.480 -and lily point mode one disclaimer - -0:00:36.320,0:00:44.079 -however I am not a lillipon developer - -0:00:40.480,0:00:46.800 -so what is lillipond lillipond 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 - -0:00:50.000,0:00:55.120 -it translates texture representations of - -0:00:52.640,0:00:57.760 -music to graphical objects - -0:00:55.120,0:01:00.000 -so 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 - -0:01:01.600,0:01:05.119 -using commands to define musical - -0:01:03.520,0:01:07.760 -expressions - -0:01:05.119,0:01:08.640 -commands begin with a backslash for - -0:01:07.760,0:01:10.479 -example - -0:01:08.640,0:01:13.040 -the formatter command as shown on the - -0:01:10.479,0:01:13.920 -left yields its graphical equivalents on - -0:01:13.040,0:01:16.640 -the right - -0:01:13.920,0:01:19.119 -the fermata symbol over the load b and - -0:01:16.640,0:01:21.600 -so on and so forth - -0:01:19.119,0:01:23.119 -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 - -0:01:25.600,0:01:29.840 -using the scheme - -0:01:26.640,0:01:31.600 -scripting language it can be used for - -0:01:29.840,0:01:34.479 -early in contemporary music - -0:01:31.600,0:01:35.200 -tablature vocal music lead sheets and so - -0:01:34.479,0:01:38.000 -on - -0:01:35.200,0:01:38.479 -and above all it works with Emacs in - -0:01:38.000,0:01:41.040 -fact - -0:01:38.479,0:01:43.119 -lily pond ships with imax lisp libraries - -0:01:41.040,0:01:45.920 -including a major mode for editing lily - -0:01:43.119,0:01:45.920 -pawn files - -0:01:47.360,0:01:50.560 -so the input files are similar to source - -0:01:50.000,0:01:52.560 -files - -0:01:50.560,0:01:54.079 -they contain expressions formed with - -0:01:52.560,0:01:55.840 -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 - -0:02:00.240,0:02:05.600 -nodes are entered using lowercase - -0:02:02.159,0:02:08.800 -letters and rests with the letter r - -0:02:05.600,0:02:11.039 -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 - -0:02:14.000,0:02:18.480 -durations are entered using numbers and - -0:02:16.160,0:02:20.959 -dots after the note name - -0:02:18.480,0:02:22.640 -and if you do not specify 1 the previous - -0:02:20.959,0:02:24.560 -duration is used - -0:02:22.640,0:02:27.360 -you can also tie notes together using - -0:02:24.560,0:02:30.000 -the tilde symbol - -0:02:27.360,0:02:32.080 -in fact you can input chords lyrics - -0:02:30.000,0:02:33.920 -embellishments and a lot more - -0:02:32.080,0:02:36.160 -so I encourage you to read the menu for - -0:02:33.920,0:02:39.680 -more information - -0:02:36.160,0:02:42.000 -now let's switch to a terminal window - -0:02:39.680,0:02:43.840 -so with lillipond 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 - -0:02:50.560,0:02:54.800 -at the top of the file is the version - -0:02:52.400,0:02:57.440 -statement which tells lillipond which - -0:02:54.800,0:03:00.959 -version to use when compiling the file - -0:02:57.440,0:03:03.680 -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 - -0:03:04.159,0:03:07.440 -let's add some notes - -0:03:09.280,0:03:14.560 -okay 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 - -0:03:19.760,0:03:25.040 -okay so now let's view the outputs - -0:03:27.360,0:03:32.239 -okay so here's a more complex example - -0:03:29.760,0:03:34.080 -for randomizing node sequences - -0:03:32.239,0:03:36.239 -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 - -0:03:37.760,0:03:41.840 -so as usual we begin with a header I've - -0:03:40.640,0:03:45.200 -added the title - -0:03:41.840,0:03:47.920 -and composer then we add the node - -0:03:45.200,0:03:50.879 -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 - -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 - -0:03:54.959,0:03:58.239 -the percussion instruments - -0:03:58.879,0:04:04.080 -now here's a function that's going to - -0:04:00.720,0:04:06.560 -shuffle the notes in the table - -0:04:04.080,0:04:08.799 -and finally we expand the notes inside - -0:04:06.560,0:04:10.799 -the lillypawn source block - -0:04:08.799,0:04:13.680 -so whatever the function returns is - -0:04:10.799,0:04:16.479 -expanded inside the drums block - -0:04:13.680,0:04:19.120 -now let's press ctrl c ctrl c to view - -0:04:16.479,0:04:19.120 -the results - -0:04:20.079,0:04:26.800 -okay and if I run this again it should - -0:04:23.280,0:04:26.800 -create a new composition - -0:04:26.840,0:04:31.360 -great you can also audition a piece - -0:04:29.680,0:04:34.320 -using the midi command - -0:04:31.360,0:04:36.560 -which creates a midi file of the score - -0:04:34.320,0:04:39.040 -note also that the ob library - -0:04:36.560,0:04:40.400 -sorry the ob lillypoint library comes - -0:04:39.040,0:04:42.560 -with two modes - -0:04:40.400,0:04:43.440 -the one I'm using now is called arrange - -0:04:42.560,0:04:45.440 -mode - -0:04:43.440,0:04:47.120 -and is useful for assembling complete - -0:04:45.440,0:04:49.360 -scores - -0:04:47.120,0:04:51.199 -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 - -0:04:53.360,0:04:57.840 -export them using typical org mode - -0:04:55.440,0:04:57.840 -commands - -0:05:00.240,0:05:04.320 -now to demonstrate the basic mode in - -0:05:02.320,0:05:05.120 -action I'm going to export this document - -0:05:04.320,0:05:08.240 -to a pdf - -0:05:05.120,0:05:10.639 -file in this case the - -0:05:08.240,0:05:11.919 -filehead 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 - -0:05:15.600,0:05:20.479 -again you can run the code and view the - -0:05:17.919,0:05:20.479 -results - -0:05:22.160,0:05:30.080 -here it is so now let's - -0:05:25.840,0:05:30.080 -export this to pdf file - -0:05:33.680,0:05:41.440 -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 - -0:05:41.440,0:05:46.160 -used to produce music books in Emacs - -0:05:44.000,0:05:48.000 -combining lily pond and latex for a - -0:05:46.160,0:05:50.160 -perfect marriage - -0:05:48.000,0:05:53.039 -I begin by sketching first draft of the - -0:05:50.160,0:05:55.039 -manuscript using pencil and paper - -0:05:53.039,0:05:57.440 -then I move to Emacs to input the notes - -0:05:55.039,0:06:00.080 -in a git repository - -0:05:57.440,0:06:01.360 -this is a typical source file it begins - -0:06:00.080,0:06:03.199 -with a stylesheet - -0:06:01.360,0:06:05.440 -where I set variables and layout - -0:06:03.199,0:06:07.039 -settings although in general there's no - -0:06:05.440,0:06:09.280 -need for tweaking the layout - -0:06:07.039,0:06:11.199 -unless you have specific requirements to - -0:06:09.280,0:06:13.360 -do so - -0:06:11.199,0:06:15.520 -the easiest way to compile the file from - -0:06:13.360,0:06:19.280 -max is by pressing ctrl c - -0:06:15.520,0:06:21.199 -ctrl l 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 - -0:06:23.759,0:06:28.560 -now to automate the process of compiling - -0:06:26.000,0:06:31.280 -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 - -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 - -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 - -0:06:41.600,0:06:46.000 -as I moved forward with the project I - -0:06:43.600,0:06:48.720 -found at least two things missing - -0:06:46.000,0:06:50.479 -one I had no access to a metronome at - -0:06:48.720,0:06:52.960 -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 - -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 - -0:06:59.039,0:07:03.199 -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 - -0:07:04.479,0:07:08.479 -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 - -0:07:10.000,0:07:14.160 -also some expressions are difficult or - -0:07:12.080,0:07:17.039 -slow to write on the keyboard - -0:07:14.160,0:07:19.199 -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 - -0:07:20.160,0:07:23.280 -mainly yes snippets - -0:07:23.440,0:07:28.080 -so what do I think well I think - -0:07:25.680,0:07:31.039 -lillypond can be a sharp paradigm shift - -0:07:28.080,0:07:32.720 -but people used to gui alternatives but - -0:07:31.039,0:07:34.639 -the results are impressive - -0:07:32.720,0:07:36.960 -and you don't have to dive too deeply to - -0:07:34.639,0:07:38.880 -start using lillypod - -0:07:36.960,0:07:40.720 -likewise the ability to extend the - -0:07:38.880,0:07:42.400 -software I think is especially appealing - -0:07:40.720,0:07:45.199 -for music professionals - -0:07:42.400,0:07:46.560 -enthusiasts composers and the academic - -0:07:45.199,0:07:48.400 -community - -0:07:46.560,0:07:50.800 -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 - -0:07:53.120,0:07:58.400 -and other non-conventional requirements - -0:07:56.160,0:08:00.720 -also lillypod 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 - -0:08:04.639,0:08:08.800 -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 - -0:08:09.599,0:08:13.680 -but warm pond of lilies lily pawns and - -0:08:12.160,0:08:15.680 -lily pond users - -0:08:13.680,0:08:16.960 -I invite you to contribute to my lilly - -0:08:15.680,0:08:18.800 -pond 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 - -0:08:20.720,0:08:24.639 -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 - -0:08:24.639,0:08:27.840 -of the conference - diff --git a/2020/subtitles/emacsconf-2020--04-music-in-plain-text--jonathan-gregory.sbv b/2020/subtitles/emacsconf-2020--04-music-in-plain-text--jonathan-gregory.sbv new file mode 100644 index 00000000..239cf0e3 --- /dev/null +++ b/2020/subtitles/emacsconf-2020--04-music-in-plain-text--jonathan-gregory.sbv @@ -0,0 +1,606 @@ +0:00:02.000,0:00:04.799 +Hello, everyone, and welcome to the EmacsConf. + +0:00:04.799,0:00:09.599 +I am Jonathan. In this talk I'm going + +0:00:07.200,0:00:10.880 +to demonstrate ways of producing sheet + +0:00:09.599,0:00:14.320 +music in Emacs + +0:00:10.880,0:00:18.400 +using Lilypond, and maybe also convince + +0:00:14.320,0:00:18.400 +you to use Emacs for writing your scores. + +0:00:18.640,0:00:22.240 +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 + +0:00:24.400,0:00:28.800 +as a shallow dive into the deep pond of + +0:00:26.800,0:00:30.800 +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 Org Mode + +0:00:32.960,0:00:40.480 +and lilypond-mode. One disclaimer, + +0:00:36.320,0:00:44.079 +however: I am not a Lilypond developer. + +0:00:40.480,0:00:46.800 +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. + +0:00:50.000,0:00:55.120 +It translates textual representations of + +0:00:52.640,0:00:57.760 +music to graphical objects. + +0:00:55.120,0:01:00.000 +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, + +0:01:01.600,0:01:05.119 +using commands to define musical + +0:01:03.520,0:01:07.760 +expressions. + +0:01:05.119,0:01:08.640 +Commands begin with a backslash. + +0:01:07.760,0:01:10.479 +For example, + +0:01:08.640,0:01:13.040 +the formatter command, as shown on the + +0:01:10.479,0:01:13.920 +left, yields its graphical equivalents on + +0:01:13.040,0:01:16.640 +the right, + +0:01:13.920,0:01:19.119 +the fermata symbol over the low B and + +0:01:16.640,0:01:21.600 +so on and so forth. + +0:01:19.119,0:01:23.119 +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 Lilypond's functionalities + +0:01:25.600,0:01:29.840 +using the Scheme + +0:01:26.640,0:01:31.600 +scripting language. It can be used for + +0:01:29.840,0:01:34.479 +early and contemporary music + +0:01:31.600,0:01:35.200 +tablature, vocal music lead sheets, + +0:01:34.479,0:01:38.000 +and so on. + +0:01:35.200,0:01:38.479 +Above all, it works with Emacs. + +0:01:38.000,0:01:41.040 +In fact, + +0:01:38.479,0:01:43.119 +Lilypond ships with Emacs Lisp libraries, + +0:01:41.040,0:01:45.920 +including a major mode for editing + +0:01:43.119,0:01:45.920 +Lilypond files. + +0:01:47.360,0:01:50.560 +So the input files are similar to + +0:01:50.000,0:01:52.560 +source files. + +0:01:50.560,0:01:54.079 +They contain expressions formed with + +0:01:52.560,0:01:55.840 +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. + +0:02:00.240,0:02:05.600 +Notes are entered using lowercase + +0:02:02.159,0:02:08.800 +letters, and rests with the letter r. + +0:02:05.600,0:02:11.039 +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. + +0:02:14.000,0:02:18.480 +Durations are entered using numbers and + +0:02:16.160,0:02:20.959 +dots after the note name. + +0:02:18.480,0:02:22.640 +If you do not specify one, the previous + +0:02:20.959,0:02:24.560 +duration is used. + +0:02:22.640,0:02:27.360 +You can also tie notes together using + +0:02:24.560,0:02:30.000 +the tilde symbol (~). + +0:02:27.360,0:02:32.080 +In fact, you can input chords, lyrics, + +0:02:30.000,0:02:33.920 +embellishments, and a lot more. + +0:02:32.080,0:02:36.160 +I encourage you to read the manual for + +0:02:33.920,0:02:39.680 +more information. + +0:02:36.160,0:02:42.000 +Now let's switch to a terminal window. + +0:02:39.680,0:02:43.840 +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. + +0:02:50.560,0:02:54.800 +At the top of the file is the version + +0:02:52.400,0:02:57.440 +statement, which tells Lilypond which + +0:02:54.800,0:03:00.959 +version to use when compiling the file. + +0:02:57.440,0:03:03.680 +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:04.159,0:03:07.440 +Let's add some notes. + +0:03:09.280,0:03:14.560 +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 +lilypond followed by the file name. + +0:03:19.760,0:03:25.040 +So now let's view the output. + +0:03:27.360,0:03:32.239 +Okay. So here's a more complex example + +0:03:29.760,0:03:34.080 +for randomizing note sequences. + +0:03:32.239,0:03:36.239 +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. + +0:03:37.760,0:03:41.840 +As usual, we begin with a header. + +0:03:40.640,0:03:45.200 +I've added the title + +0:03:41.840,0:03:47.920 +and composer. Then we add the note + +0:03:45.200,0:03:50.879 +sequences to use in the composition. + +0:03:47.920,0:03:51.200 +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 drum, + +0:03:54.959,0:03:58.239 +the percussion instruments. + +0:03:58.879,0:04:04.080 +Now here's a function that's going to + +0:04:00.720,0:04:06.560 +shuffle the notes in the table. + +0:04:04.080,0:04:08.799 +Finally, we expand the notes inside + +0:04:06.560,0:04:10.799 +the Lilypond source block. + +0:04:08.799,0:04:13.680 +So whatever the function returns is + +0:04:10.799,0:04:16.479 +expanded inside the drums block. + +0:04:13.680,0:04:19.120 +Now let's press C-c C-c to view + +0:04:16.479,0:04:19.120 +the results. + +0:04:20.079,0:04:26.800 +Okay. And if I run this again, it should + +0:04:23.280,0:04:26.800 +create a new composition. + +0:04:26.840,0:04:31.360 +Great. You can also audition a piece + +0:04:29.680,0:04:34.320 +using the midi command, + +0:04:31.360,0:04:36.560 +which creates a midi file of the score. + +0:04:34.320,0:04:39.040 +Note also that the ob library-- + +0:04:36.560,0:04:40.400 +sorry, the ob-lilypond library comes + +0:04:39.040,0:04:42.560 +with two modes. + +0:04:40.400,0:04:43.440 +The one I'm using now is called + +0:04:42.560,0:04:45.440 +arrange mode + +0:04:43.440,0:04:47.120 +and is useful for assembling + +0:04:45.440,0:04:49.360 +complete scores. + +0:04:47.120,0:04:51.199 +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 Lilypond snippets and + +0:04:53.360,0:04:57.840 +export them using typical Org Mode + +0:04:55.440,0:04:57.840 +commands. + +0:05:00.240,0:05:04.320 +Now to demonstrate the basic mode in + +0:05:02.320,0:05:05.120 +action. I'm going to export this document + +0:05:04.320,0:05:08.240 +to a PDF file. + +0:05:05.120,0:05:10.639 +In this case, the + +0:05:08.240,0:05:11.919 +: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. + +0:05:15.600,0:05:20.479 +Again, you can run the code and view + +0:05:17.919,0:05:20.479 +the results. + +0:05:22.160,0:05:30.080 +Here it is. So now let's + +0:05:25.840,0:05:30.080 +export this to a PDF file. + +0:05:33.680,0:05:41.440 +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 + +0:05:41.440,0:05:46.160 +used to produce music books in Emacs, + +0:05:44.000,0:05:48.000 +combining Lilypond and LaTeX for a + +0:05:46.160,0:05:50.160 +perfect marriage. + +0:05:48.000,0:05:53.039 +I begin by sketching the first draft of the + +0:05:50.160,0:05:55.039 +manuscript using pencil and paper. + +0:05:53.039,0:05:57.440 +Then I move to Emacs to input the notes + +0:05:55.039,0:06:00.080 +in a git repository. + +0:05:57.440,0:06:01.360 +This is a typical source file. It begins + +0:06:00.080,0:06:03.199 +with a stylesheet + +0:06:01.360,0:06:05.440 +where I set variables and layout + +0:06:03.199,0:06:07.039 +settings, although in general, there's no + +0:06:05.440,0:06:09.280 +need for tweaking the layout + +0:06:07.039,0:06:11.199 +unless you have specific requirements to + +0:06:09.280,0:06:13.360 +do so. + +0:06:11.199,0:06:15.520 +The easiest way to compile the file from + +0:06:13.360,0:06:19.280 +Emacs is by pressing C-c C-l, + +0:06:15.520,0:06:21.199 +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. + +0:06:23.759,0:06:28.560 +Now to automate the process of compiling + +0:06:26.000,0:06:31.280 +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 + +0:06:31.280,0:06:36.000 +open the shell + +0:06:32.560,0:06:37.840 +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. + +0:06:41.600,0:06:46.000 +As I moved forward with the project, I + +0:06:43.600,0:06:48.720 +found at least two things missing. + +0:06:46.000,0:06:50.479 +One, I had no access to a metronome, + +0:06:48.720,0:06:52.960 +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. + +0:06:55.919,0:06:59.039 +I also missed bar numbers in the source file. + +0:06:59.039,0:07:03.199 +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. + +0:07:04.479,0:07:08.479 +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 left. + +0:07:10.000,0:07:14.160 +Also, some expressions are difficult or + +0:07:12.080,0:07:17.039 +slow to write on the keyboard-- + +0:07:14.160,0:07:19.199 +accents and tuplets, for example--so I use + +0:07:17.039,0:07:20.160 +template expansion extensively for this purpose, + +0:07:20.160,0:07:23.280 +mainly ya-snippet. + +0:07:23.440,0:07:28.080 +So what do I think? Well, I think + +0:07:25.680,0:07:31.039 +Lilypond can be a sharp paradigm shift + +0:07:28.080,0:07:32.720 +for people used to GUI alternatives, but + +0:07:31.039,0:07:34.639 +the results are impressive. + +0:07:32.720,0:07:36.960 +You don't have to dive too deeply to + +0:07:34.639,0:07:38.880 +start using Lilypond. + +0:07:36.960,0:07:40.720 +Likewise, the ability to extend the + +0:07:38.880,0:07:42.400 +software, I think, is especially appealing + +0:07:40.720,0:07:45.199 +for music professionals, + +0:07:42.400,0:07:46.560 +enthusiasts, composers, and the academic + +0:07:45.199,0:07:48.400 +community: + +0:07:46.560,0:07:50.800 +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 + +0:07:53.120,0:07:58.400 +and other non-conventional requirements. + +0:07:56.160,0:08:00.720 +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. + +0:08:04.639,0:08:08.800 +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 deep + +0:08:09.599,0:08:13.680 +but warm pond of lilies, Lilypond, and + +0:08:12.160,0:08:15.680 +Lilypond users, + +0:08:13.680,0:08:16.960 +I invite you to contribute to my + +0:08:15.680,0:08:18.800 +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. + +0:08:20.720,0:08:24.639 +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 + +0:08:24.639,0:08:27.840 +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. -- cgit v1.2.3