summaryrefslogtreecommitdiffstats
path: root/2020/subtitles/emacsconf-2020--04-music-in-plain-text--jonathan-gregory-autogen.sbv
diff options
context:
space:
mode:
Diffstat (limited to '2020/subtitles/emacsconf-2020--04-music-in-plain-text--jonathan-gregory-autogen.sbv')
-rw-r--r--2020/subtitles/emacsconf-2020--04-music-in-plain-text--jonathan-gregory-autogen.sbv630
1 files changed, 630 insertions, 0 deletions
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
+