From 839b298776e262a99eec18d23f4e52363fe937bc Mon Sep 17 00:00:00 2001 From: Sacha Chua Date: Wed, 9 Dec 2020 12:17:50 -0500 Subject: Add more autogenerated subtitles --- ...sic-in-plain-text--jonathan-gregory-autogen.sbv | 630 +++++++++++++++++++++ 1 file changed, 630 insertions(+) create mode 100644 2020/subtitles/emacsconf-2020--04-music-in-plain-text--jonathan-gregory-autogen.sbv (limited to '2020/subtitles/emacsconf-2020--04-music-in-plain-text--jonathan-gregory-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-autogen.sbv new file mode 100644 index 00000000..1439e2d8 --- /dev/null +++ b/2020/subtitles/emacsconf-2020--04-music-in-plain-text--jonathan-gregory-autogen.sbv @@ -0,0 +1,630 @@ +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 + -- cgit v1.2.3