diff options
Diffstat (limited to '2020/subtitles/emacsconf-2020--04-music-in-plain-text--jonathan-gregory.sbv')
-rw-r--r-- | 2020/subtitles/emacsconf-2020--04-music-in-plain-text--jonathan-gregory.sbv | 606 |
1 files changed, 0 insertions, 606 deletions
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 deleted file mode 100644 index 239cf0e3..00000000 --- a/2020/subtitles/emacsconf-2020--04-music-in-plain-text--jonathan-gregory.sbv +++ /dev/null @@ -1,606 +0,0 @@ -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. - |