From b8af26e5e6502d099845052b53ca6186f99195e7 Mon Sep 17 00:00:00 2001 From: Sacha Chua Date: Wed, 9 Dec 2020 09:32:08 -0500 Subject: Add more autogen --- ...e-emacs-for-writing--bala-ramadurai-autogen.sbv | 450 +++++++ ...an-album-of-music--grant-shangreaux-autogen.sbv | 1251 ++++++++++++++++++++ ...age-for-an-album-of-music--grant-shangreaux.sbv | 1251 -------------------- 3 files changed, 1701 insertions(+), 1251 deletions(-) create mode 100644 2020/subtitles/emacsconf-2020--03-idea-to-novel-superstructure-emacs-for-writing--bala-ramadurai-autogen.sbv create mode 100644 2020/subtitles/emacsconf-2020--05-bard-bivoumacs-building-a-bandcamp-like-page-for-an-album-of-music--grant-shangreaux-autogen.sbv delete mode 100644 2020/subtitles/emacsconf-2020--05-bard-bivoumacs-building-a-bandcamp-like-page-for-an-album-of-music--grant-shangreaux.sbv diff --git a/2020/subtitles/emacsconf-2020--03-idea-to-novel-superstructure-emacs-for-writing--bala-ramadurai-autogen.sbv b/2020/subtitles/emacsconf-2020--03-idea-to-novel-superstructure-emacs-for-writing--bala-ramadurai-autogen.sbv new file mode 100644 index 00000000..68ef4ca7 --- /dev/null +++ b/2020/subtitles/emacsconf-2020--03-idea-to-novel-superstructure-emacs-for-writing--bala-ramadurai-autogen.sbv @@ -0,0 +1,450 @@ +0:00:03.760,0:00:08.080 +there's nothing wrong + +0:00:05.040,0:00:09.200 +with your mobile device or computer just + +0:00:08.080,0:00:12.480 +that my world + +0:00:09.200,0:00:15.040 +was upside down when my son was born 11 + +0:00:12.480,0:00:18.320 +years ago + +0:00:15.040,0:00:21.039 +hi i'm bala ramazaray author professor + +0:00:18.320,0:00:22.160 +and consultant i'm going to tell you my + +0:00:21.039,0:00:27.039 +story about + +0:00:22.160,0:00:29.920 +how i ended up using emacs for writing + +0:00:27.039,0:00:30.640 +11 years ago in bangalore my son was + +0:00:29.920,0:00:33.040 +born + +0:00:30.640,0:00:34.640 +my wife and i had hardly slept through + +0:00:33.040,0:00:37.840 +those days + +0:00:34.640,0:00:41.120 +that's when my grandma decided + +0:00:37.840,0:00:43.760 +according to such a famous search engine + +0:00:41.120,0:00:45.039 +visited us to take a look at her great + +0:00:43.760,0:00:47.920 +grandson + +0:00:45.039,0:00:48.559 +as joyous as it sounded it came with a + +0:00:47.920,0:00:51.840 +peril + +0:00:48.559,0:00:54.160 +my grandma is a scrabble addict + +0:00:51.840,0:00:55.840 +she hardly spent any time at all with + +0:00:54.160,0:00:58.160 +her great grandson + +0:00:55.840,0:00:59.359 +but she spent most of her time playing + +0:00:58.160,0:01:01.840 +scrabble + +0:00:59.359,0:01:02.719 +she insisted that my wife and i joined + +0:01:01.840,0:01:04.479 +her + +0:01:02.719,0:01:07.040 +that's when an idea dawned on me to + +0:01:04.479,0:01:09.600 +write about my scrabble obsessed grandma + +0:01:07.040,0:01:10.640 +what if i could make it into a novel not + +0:01:09.600,0:01:13.760 +many people have + +0:01:10.640,0:01:16.000 +scrabble obsessed grandmothers after all + +0:01:13.760,0:01:17.200 +i wanted to expand this to a novel but + +0:01:16.000,0:01:20.000 +did not know how + +0:01:17.200,0:01:22.560 +i bumped into dan wells's video on seven + +0:01:20.000,0:01:25.119 +point story structure which is based on + +0:01:22.560,0:01:27.040 +a construct called hero's journey i was + +0:01:25.119,0:01:30.400 +now convinced that a seed idea + +0:01:27.040,0:01:32.000 +would indeed be converted into a novel + +0:01:30.400,0:01:34.479 +i tried out many tools at the time + +0:01:32.000,0:01:38.000 +million dollar tools like ms word + +0:01:34.479,0:01:38.799 +excel scrivener but none of them really + +0:01:38.000,0:01:41.520 +worked + +0:01:38.799,0:01:43.840 +so when i remembered about this old + +0:01:41.520,0:01:46.159 +editor called emacs + +0:01:43.840,0:01:48.000 +thanks to the emacs community and + +0:01:46.159,0:01:50.960 +particularly the augment community + +0:01:48.000,0:01:52.320 +i had what i wanted i combined + +0:01:50.960,0:01:55.200 +danville's method + +0:01:52.320,0:01:55.680 +with another method called snowflake and + +0:01:55.200,0:01:58.880 +also + +0:01:55.680,0:02:01.200 +tony valentine's emacs writing template + +0:01:58.880,0:02:02.159 +some of the key features of arg mode + +0:02:01.200,0:02:05.360 +that i used + +0:02:02.159,0:02:08.399 +were fold on unfold outline + +0:02:05.360,0:02:09.599 +column view tags distraction free + +0:02:08.399,0:02:12.800 +writing experience + +0:02:09.599,0:02:13.840 +using many packages clocking project + +0:02:12.800,0:02:16.640 +tracking + +0:02:13.840,0:02:17.920 +and export which is what you will see in + +0:02:16.640,0:02:21.360 +my demo + +0:02:17.920,0:02:24.560 +now to get into some action okay + +0:02:21.360,0:02:26.640 +so here we are the superstructure of the + +0:02:24.560,0:02:28.879 +novel itself how do we build it + +0:02:26.640,0:02:30.400 +first is the plot this comes from the + +0:02:28.879,0:02:32.959 +snowflake method + +0:02:30.400,0:02:34.160 +you write a one line summary of your + +0:02:32.959,0:02:37.280 +plot + +0:02:34.160,0:02:40.640 +character design you can write the + +0:02:37.280,0:02:42.640 +entire description of the characters the + +0:02:40.640,0:02:44.319 +physical descriptors motivators the + +0:02:42.640,0:02:45.040 +whole thing you can write all the + +0:02:44.319,0:02:48.400 +characters + +0:02:45.040,0:02:50.560 +in the novel including the antagonists + +0:02:48.400,0:02:52.400 +i researched about the places that i'm + +0:02:50.560,0:02:54.400 +going to be using in the novel + +0:02:52.400,0:02:56.239 +this is the most important part the + +0:02:54.400,0:03:00.239 +story arcs + +0:02:56.239,0:03:03.599 +for this i used the very convenient + +0:03:00.239,0:03:06.080 +notion of using a column view + +0:03:03.599,0:03:06.959 +where when i open it you can see how + +0:03:06.080,0:03:10.000 +i've used + +0:03:06.959,0:03:13.120 +column view each plot point + +0:03:10.000,0:03:16.959 +and who the character is what is their + +0:03:13.120,0:03:17.599 +plot point itself so okay and you can do + +0:03:16.959,0:03:20.879 +this for + +0:03:17.599,0:03:22.800 +each and every uh story arc romance + +0:03:20.879,0:03:24.480 +uh each and every character sub + +0:03:22.800,0:03:27.360 +character okay i haven't + +0:03:24.480,0:03:29.040 +uh labeled them so next is the story + +0:03:27.360,0:03:30.879 +design so now we have the character + +0:03:29.040,0:03:34.000 +independent character arcs + +0:03:30.879,0:03:36.799 +uh here again column view comes in handy + +0:03:34.000,0:03:38.400 +this is a different set of columns now + +0:03:36.799,0:03:40.560 +you can use + +0:03:38.400,0:03:41.840 +not only the main the main character arc + +0:03:40.560,0:03:44.959 +is the + +0:03:41.840,0:03:48.560 +backbone but in the middle of it + +0:03:44.959,0:03:51.840 +supporting characters augment the + +0:03:48.560,0:03:53.040 +main character and their own plot points + +0:03:51.840,0:03:55.680 +are also + +0:03:53.040,0:03:57.519 +can be filled up using the column view + +0:03:55.680,0:03:58.720 +and you can find out where which act we + +0:03:57.519,0:04:00.720 +are talking about + +0:03:58.720,0:04:01.840 +and for the main character what what is + +0:04:00.720,0:04:04.640 +it that we're doing + +0:04:01.840,0:04:05.840 +okay next is the specifics which is the + +0:04:04.640,0:04:08.560 +scene design + +0:04:05.840,0:04:08.879 +uh this is going to be look like a mess + +0:04:08.560,0:04:11.200 +but + +0:04:08.879,0:04:14.400 +it's actually very very convenient can + +0:04:11.200,0:04:16.000 +be as exhaustive as you can you can do + +0:04:14.400,0:04:18.320 +the title of the scene + +0:04:16.000,0:04:19.280 +the act the point of view as it's called + +0:04:18.320,0:04:21.280 +point of views + +0:04:19.280,0:04:23.199 +which characters point of view are we + +0:04:21.280,0:04:25.919 +looking at in this scene + +0:04:23.199,0:04:26.800 +is it outdoor indoor we can mix it up + +0:04:25.919,0:04:28.639 +match + +0:04:26.800,0:04:30.240 +and then where is the location and + +0:04:28.639,0:04:33.600 +finally the city in which + +0:04:30.240,0:04:37.440 +this scene is taking place now let's uh + +0:04:33.600,0:04:40.000 +look at the novel itself i use this + +0:04:37.440,0:04:43.120 +novel the distraction free experience + +0:04:40.000,0:04:44.320 +for writing the novel 60 000 word novel + +0:04:43.120,0:04:46.160 +this + +0:04:44.320,0:04:47.360 +first manuscript you can even write + +0:04:46.160,0:04:50.320 +comments based on + +0:04:47.360,0:04:51.120 +i read this out to a writer's community + +0:04:50.320,0:04:54.000 +locally + +0:04:51.120,0:04:55.600 +and they give me feedback on what could + +0:04:54.000,0:04:56.720 +be improved what could be something that + +0:04:55.600,0:04:58.400 +they should be looking at + +0:04:56.720,0:05:00.639 +you can write it as comments so it + +0:04:58.400,0:05:03.360 +doesn't go into your final export + +0:05:00.639,0:05:03.919 +as well i'm using pandora to export it + +0:05:03.360,0:05:06.960 +to + +0:05:03.919,0:05:08.639 +epub or pdf or word or whatever format + +0:05:06.960,0:05:11.280 +you want to + +0:05:08.639,0:05:12.639 +use it with the cover image that's how i + +0:05:11.280,0:05:15.919 +wrote my novel + +0:05:12.639,0:05:17.120 +i used a similar structure for my + +0:05:15.919,0:05:19.199 +non-fiction book + +0:05:17.120,0:05:20.800 +using emacs and arc mode which i + +0:05:19.199,0:05:25.520 +published recently + +0:05:20.800,0:05:28.320 +all written and edited in emacs or mod + +0:05:25.520,0:05:29.759 +thank you guys at the community and now + +0:05:28.320,0:05:31.680 +a published author + +0:05:29.759,0:05:34.080 +and i plan to publish and help other + +0:05:31.680,0:05:38.560 +authors publish using this wonderful + +0:05:34.080,0:05:38.560 +tool called emacs or more thank you + diff --git a/2020/subtitles/emacsconf-2020--05-bard-bivoumacs-building-a-bandcamp-like-page-for-an-album-of-music--grant-shangreaux-autogen.sbv b/2020/subtitles/emacsconf-2020--05-bard-bivoumacs-building-a-bandcamp-like-page-for-an-album-of-music--grant-shangreaux-autogen.sbv new file mode 100644 index 00000000..db5fd2e7 --- /dev/null +++ b/2020/subtitles/emacsconf-2020--05-bard-bivoumacs-building-a-bandcamp-like-page-for-an-album-of-music--grant-shangreaux-autogen.sbv @@ -0,0 +1,1251 @@ +0:00:01.360,0:00:07.279 +hello my name is grant shangri + +0:00:04.480,0:00:07.919 +this is my talk titled bard beavermax + +0:00:07.279,0:00:10.719 +publishing + +0:00:07.919,0:00:12.799 +music with emacs i'm a software + +0:00:10.719,0:00:14.400 +developer with unabridged software in + +0:00:12.799,0:00:16.800 +lincoln nebraska + +0:00:14.400,0:00:18.720 +long time emacs user relatively new + +0:00:16.800,0:00:20.480 +emacs hacker + +0:00:18.720,0:00:22.960 +and uh hopefully i'll be able to show + +0:00:20.480,0:00:30.480 +you my workflow with + +0:00:22.960,0:00:33.440 +how i publish music with emacs + +0:00:30.480,0:00:35.520 +all right so as a musician i would like + +0:00:33.440,0:00:37.200 +to publish my music online + +0:00:35.520,0:00:39.040 +you know i could publish with popular + +0:00:37.200,0:00:42.000 +online music services + +0:00:39.040,0:00:44.719 +but i'm more of a diy type so i chose to + +0:00:42.000,0:00:48.160 +go ahead and publish with emacs + +0:00:44.719,0:00:49.760 +so what's the motivation behind this + +0:00:48.160,0:00:51.600 +a lot of it comes down to some + +0:00:49.760,0:00:54.960 +fundamental freedoms + +0:00:51.600,0:00:57.920 +that you know emacs gnu software + +0:00:54.960,0:00:59.120 +kind of represent to me as well as kind + +0:00:57.920,0:01:01.840 +of my + +0:00:59.120,0:01:03.680 +ideas on culture and my background i + +0:01:01.840,0:01:04.080 +don't believe that music is a consumer + +0:01:03.680,0:01:06.080 +good + +0:01:04.080,0:01:08.320 +um it's a form of knowledge like an + +0:01:06.080,0:01:10.479 +algorithm + +0:01:08.320,0:01:13.119 +and it's just like such a part of + +0:01:10.479,0:01:16.640 +culture like in tribal cultures music + +0:01:13.119,0:01:18.000 +was seen as a gift from the cosmos or + +0:01:16.640,0:01:19.920 +the gods and it was + +0:01:18.000,0:01:21.920 +a gift maybe through an individual + +0:01:19.920,0:01:23.520 +vessel but was shared with the people + +0:01:21.920,0:01:26.799 +and shared with everyone + +0:01:23.520,0:01:29.840 +kept alive by the culture itself + +0:01:26.799,0:01:31.520 +and so to me music is something that + +0:01:29.840,0:01:34.640 +should be shared and should be + +0:01:31.520,0:01:36.560 +freely enjoyed by everyone of course + +0:01:34.640,0:01:39.040 +artists should be compensated as well + +0:01:36.560,0:01:41.040 +but that's a whole different topic + +0:01:39.040,0:01:42.720 +and so when i want to share my music i + +0:01:41.040,0:01:43.520 +want to do it without impacting anyone's + +0:01:42.720,0:01:45.680 +freedom + +0:01:43.520,0:01:48.960 +using gnu software like emacs is a good + +0:01:45.680,0:01:48.960 +way that i can ensure that + +0:01:49.200,0:01:55.840 +i won't be requiring people to + +0:01:52.840,0:01:57.119 +uh sign away their freedoms for anything + +0:01:55.840,0:01:58.799 +there's a lot more i could say about + +0:01:57.119,0:02:00.960 +this but i don't have time + +0:01:58.799,0:02:03.439 +feel free to reach out to me by email or + +0:02:00.960,0:02:06.479 +irc + +0:02:03.439,0:02:08.239 +um and part of the motivation for me + +0:02:06.479,0:02:10.720 +personally is that emacs is super + +0:02:08.239,0:02:12.720 +magical it's an all-in-one solution + +0:02:10.720,0:02:14.480 +like i said the gnu software aligns with + +0:02:12.720,0:02:16.800 +creative commons ideas + +0:02:14.480,0:02:18.879 +i can do file management i can author + +0:02:16.800,0:02:20.239 +html all the web stuff i need even + +0:02:18.879,0:02:22.640 +illiterate style + +0:02:20.239,0:02:24.640 +i can handle media and metadata i've got + +0:02:22.640,0:02:26.800 +version control remote server access + +0:02:24.640,0:02:28.080 +all the tools i need are right under my + +0:02:26.800,0:02:30.000 +fingertips with this + +0:02:28.080,0:02:31.440 +tool that i use every day for a long + +0:02:30.000,0:02:34.319 +time i don't need to look + +0:02:31.440,0:02:36.319 +elsewhere and it was a challenge i + +0:02:34.319,0:02:39.440 +wanted to see if i could do this + +0:02:36.319,0:02:41.680 +all within emacs itself so + +0:02:39.440,0:02:43.440 +how do you use emacs to publish music + +0:02:41.680,0:02:45.120 +well for me i needed + +0:02:43.440,0:02:46.480 +a couple of things i needed to be able + +0:02:45.120,0:02:48.319 +to audition unlabel + +0:02:46.480,0:02:50.000 +unlabeled audio tracks i have a lot of + +0:02:48.319,0:02:51.280 +files that i don't know where they + +0:02:50.000,0:02:53.840 +came from i don't know what they are i + +0:02:51.280,0:02:56.800 +need to be able to listen to them + +0:02:53.840,0:02:58.480 +and i need to be able to add metadata to + +0:02:56.800,0:03:00.800 +whatever audio format it is + +0:02:58.480,0:03:03.200 +and rename the files based on that + +0:03:00.800,0:03:05.120 +metadata potentially + +0:03:03.200,0:03:07.040 +and in the end i wanted to take those + +0:03:05.120,0:03:08.319 +files and programmatically produce a web + +0:03:07.040,0:03:11.920 +page + +0:03:08.319,0:03:14.159 +for people to consume i found out that + +0:03:11.920,0:03:14.879 +emacs scores a hundred percent on all of + +0:03:14.159,0:03:18.000 +these + +0:03:14.879,0:03:20.720 +requirements that i had for this and + +0:03:18.000,0:03:22.640 +a lot of that came from emms the emacs + +0:03:20.720,0:03:26.080 +multimedia system + +0:03:22.640,0:03:27.760 +um emms is is great um + +0:03:26.080,0:03:30.000 +if you haven't checked it out please do + +0:03:27.760,0:03:32.959 +it's a little bit unintuitive but + +0:03:30.000,0:03:34.000 +once you get into it you know it works + +0:03:32.959,0:03:36.640 +um + +0:03:34.000,0:03:38.720 +and basically what emms gave me was the + +0:03:36.640,0:03:39.680 +ability to listen to the tracks organize + +0:03:38.720,0:03:41.280 +playlists + +0:03:39.680,0:03:42.959 +and on top of that it gave me super + +0:03:41.280,0:03:45.040 +powered metadata authoring + +0:03:42.959,0:03:47.200 +and i'm going to demonstrate that to you + +0:03:45.040,0:03:50.879 +so in order to do this + +0:03:47.200,0:03:54.879 +you have to require markable playlists + +0:03:50.879,0:03:58.720 +so require ems mark and so i'm going to + +0:03:54.879,0:03:58.720 +go through and i'm going to open the red + +0:03:59.680,0:04:04.480 +i've got this this these files here so + +0:04:02.319,0:04:06.080 +you can see these files are mp3s + +0:04:04.480,0:04:07.599 +um they're recorded on a digital + +0:04:06.080,0:04:09.920 +recorder + +0:04:07.599,0:04:11.760 +um if i had the choice i would have a + +0:04:09.920,0:04:12.319 +recorder that used a different format + +0:04:11.760,0:04:14.640 +but + +0:04:12.319,0:04:16.160 +so be it so i can mark all these files + +0:04:14.640,0:04:20.000 +and i can do ems + +0:04:16.160,0:04:22.880 +add to red and now they've been loaded + +0:04:20.000,0:04:22.880 +into a playlist + +0:04:27.040,0:04:30.400 +so you can see the playlist here there's + +0:04:29.040,0:04:32.000 +some leftover files + +0:04:30.400,0:04:33.759 +so i've got these three files in my + +0:04:32.000,0:04:34.639 +playlist and as you can see it's just + +0:04:33.759,0:04:36.800 +the file name + +0:04:34.639,0:04:38.560 +the path i don't have any metadata + +0:04:36.800,0:04:41.360 +associated with them + +0:04:38.560,0:04:43.440 +in this playlist i can hit e capital e + +0:04:41.360,0:04:47.360 +and it'll bring up a buffer showing + +0:04:43.440,0:04:49.840 +um the tag information that i have + +0:04:47.360,0:04:51.520 +and so i could edit these here and i + +0:04:49.840,0:04:53.919 +could edit them one at a time but that's + +0:04:51.520,0:04:57.440 +not really great i want superpower + +0:04:53.919,0:05:00.320 +metadata authoring so + +0:04:57.440,0:05:00.320 +by marking them + +0:05:04.479,0:05:08.479 +by marking them i can then hit e and i + +0:05:07.680,0:05:10.479 +have + +0:05:08.479,0:05:12.639 +all three of the tracks loaded up in + +0:05:10.479,0:05:15.759 +this tags buffer + +0:05:12.639,0:05:18.800 +on top of that i can do emms + +0:05:15.759,0:05:22.840 +tag editor set all ctrl c control + +0:05:18.800,0:05:25.680 +r and i want to set the artist + +0:05:22.840,0:05:26.320 +so these are some recordings of my + +0:05:25.680,0:05:31.039 +family + +0:05:26.320,0:05:35.600 +so shangri-lux set all three of them + +0:05:31.039,0:05:40.160 +i want to set the album um + +0:05:35.600,0:05:43.600 +spring walk with lap harp + +0:05:40.160,0:05:43.600 +and i want to set the year + +0:05:45.520,0:05:50.840 +and then i'm going to go ahead and put + +0:05:48.960,0:05:53.759 +these in + +0:05:50.840,0:05:55.840 +manually + +0:05:53.759,0:05:57.039 +but with the power of emacs keyboard + +0:05:55.840,0:05:59.600 +macros and + +0:05:57.039,0:06:02.319 +registers and so on i could do this + +0:05:59.600,0:06:04.000 +programmatically as well + +0:06:02.319,0:06:06.000 +which would make it a lot easier if i + +0:06:04.000,0:06:07.440 +hadn't met much more than three files to + +0:06:06.000,0:06:09.919 +do this with + +0:06:07.440,0:06:11.520 +submit the changes with ctrl c ctrl c + +0:06:09.919,0:06:13.120 +and now we've got the playlist you can + +0:06:11.520,0:06:15.039 +see the artist and track number have + +0:06:13.120,0:06:17.360 +been updated here + +0:06:15.039,0:06:19.039 +and then the final piece of this is that + +0:06:17.360,0:06:20.479 +if you look at this you can see that the + +0:06:19.039,0:06:22.639 +file name is still the same + +0:06:20.479,0:06:24.560 +so if i were looking to the directory i + +0:06:22.639,0:06:26.479 +would still have this file name + +0:06:24.560,0:06:28.000 +when packaging these up for a release + +0:06:26.479,0:06:30.319 +for people to download + +0:06:28.000,0:06:32.400 +it's nice to be able to have that file + +0:06:30.319,0:06:34.800 +name reflect the track number and the + +0:06:32.400,0:06:35.680 +artist and so on so there's another + +0:06:34.800,0:06:38.240 +command + +0:06:35.680,0:06:38.240 +mms + +0:06:41.199,0:06:45.120 +rename tag editor rename so it could be + +0:06:44.160,0:06:47.199 +just capital r + +0:06:45.120,0:06:48.880 +i think i need to mark all of these hit + +0:06:47.199,0:06:50.000 +capital r and then it's going to ask me + +0:06:48.880,0:06:53.599 +to confirm + +0:06:50.000,0:06:53.599 +and say yes to all of them + +0:06:54.400,0:07:04.319 +and now if you look in the dread + +0:07:02.720,0:07:06.319 +whoops i have to update it you'll see + +0:07:04.319,0:07:09.840 +it's been updated with the artist + +0:07:06.319,0:07:11.120 +the name track and track number and + +0:07:09.840,0:07:14.639 +track name + +0:07:11.120,0:07:17.360 +um so this format is a format string so + +0:07:14.639,0:07:20.479 +it's customizable of course + +0:07:17.360,0:07:21.039 +i just decided to go with the default so + +0:07:20.479,0:07:24.160 +that's + +0:07:21.039,0:07:26.000 +pretty great this workflow + +0:07:24.160,0:07:28.080 +just with emms i didn't have to do + +0:07:26.000,0:07:30.960 +anything this is all there it's all + +0:07:28.080,0:07:32.639 +all built in um it gave me exactly what + +0:07:30.960,0:07:35.599 +i was looking for in terms of being able + +0:07:32.639,0:07:37.599 +to process a lot of raw audio files + +0:07:35.599,0:07:39.280 +add metadata to them and get them ready + +0:07:37.599,0:07:41.599 +for publishing + +0:07:39.280,0:07:43.520 +and this is for publishing for playback + +0:07:41.599,0:07:44.879 +in any media player it'll it'll be + +0:07:43.520,0:07:46.560 +useful + +0:07:44.879,0:07:48.479 +not just for the web page that i'm + +0:07:46.560,0:07:50.560 +building so the + +0:07:48.479,0:07:53.440 +final part of course is um to build the + +0:07:50.560,0:07:54.960 +web page and emacs makes authoring html + +0:07:53.440,0:07:57.440 +trivial + +0:07:54.960,0:07:59.039 +like as i was going through this i + +0:07:57.440,0:08:00.400 +wanted to challenge myself and just be + +0:07:59.039,0:08:03.120 +like can i do this with all + +0:08:00.400,0:08:03.520 +just all with emacs like can i just make + +0:08:03.120,0:08:05.440 +this + +0:08:03.520,0:08:07.039 +i don't need a i don't need ruby i don't + +0:08:05.440,0:08:08.960 +need rails i don't need node i don't + +0:08:07.039,0:08:10.560 +need any of this other stuff i have my + +0:08:08.960,0:08:12.560 +tool right here it's a fully + +0:08:10.560,0:08:15.039 +it's a whole operating system basically + +0:08:12.560,0:08:17.360 +plus programming languages + +0:08:15.039,0:08:19.919 +so the first thing i started with was + +0:08:17.360,0:08:22.560 +buffer scripting for manipulating text + +0:08:19.919,0:08:24.319 +that's kind of the easiest way to do it + +0:08:22.560,0:08:25.280 +and basically anything you can do in a + +0:08:24.319,0:08:28.479 +buffer you can do + +0:08:25.280,0:08:30.319 +programmatically with e-lisp so this + +0:08:28.479,0:08:33.919 +might be a good example for beginners if + +0:08:30.319,0:08:36.000 +you haven't done any e-lisp yet + +0:08:33.919,0:08:36.959 +like a simple example is to create this + +0:08:36.000,0:08:40.000 +this div + +0:08:36.959,0:08:41.760 +output here i can you + +0:08:40.000,0:08:44.240 +can use this with temp buffer so + +0:08:41.760,0:08:46.640 +basically creating an imaginary buffer + +0:08:44.240,0:08:48.800 +insert is just like typing so you put + +0:08:46.640,0:08:50.959 +strings in you put new lines in + +0:08:48.800,0:08:52.080 +can cap build some strings together and + +0:08:50.959,0:08:54.000 +here you can see i'm + +0:08:52.080,0:08:55.360 +i'm doing a random number so every time + +0:08:54.000,0:08:57.920 +i execute this + +0:08:55.360,0:09:01.040 +my content changes so i can generate + +0:08:57.920,0:09:04.399 +dynamic content in html blocks + +0:09:01.040,0:09:05.920 +with e-lisp for my + +0:09:04.399,0:09:08.000 +web page builder it's a little more + +0:09:05.920,0:09:12.080 +complex i'm pulling data out + +0:09:08.000,0:09:15.440 +using emms data structures + +0:09:12.080,0:09:16.080 +so it's pulling that out from the track + +0:09:15.440,0:09:18.720 +data + +0:09:16.080,0:09:19.440 +and then i'm i'm using some program + +0:09:18.720,0:09:21.440 +program to + +0:09:19.440,0:09:23.200 +generate list elements so each track is + +0:09:21.440,0:09:25.120 +going to have the title + +0:09:23.200,0:09:26.959 +and track number and then a button for + +0:09:25.120,0:09:29.519 +playing it plus the source + +0:09:26.959,0:09:30.480 +of the audio file which will get added + +0:09:29.519,0:09:32.640 +here + +0:09:30.480,0:09:34.839 +right now this is hard coded for opus so + +0:09:32.640,0:09:37.200 +it won't work for my + +0:09:34.839,0:09:39.120 +mp3s um + +0:09:37.200,0:09:41.200 +i'm going to skip over snippets turns + +0:09:39.120,0:09:45.519 +out format strings were good enough + +0:09:41.200,0:09:48.160 +for me um snippets could be useful but + +0:09:45.519,0:09:49.839 +format is super powerful and i didn't + +0:09:48.160,0:09:51.279 +really even need all that much power + +0:09:49.839,0:09:53.519 +basically just doing string + +0:09:51.279,0:09:54.560 +interpolation so if you haven't seen + +0:09:53.519,0:09:56.720 +format before + +0:09:54.560,0:09:59.120 +you basically put these control strings + +0:09:56.720,0:10:03.120 +or control characters inside of a string + +0:09:59.120,0:10:05.040 +and you can generate you can generate an + +0:10:03.120,0:10:07.600 +output string that you want + +0:10:05.040,0:10:08.720 +so in my generator code basically it's + +0:10:07.600,0:10:10.959 +down here + +0:10:08.720,0:10:12.800 +um i'm calling format with this sparred + +0:10:10.959,0:10:15.920 +vivomax template + +0:10:12.800,0:10:18.240 +and that's basically a big + +0:10:15.920,0:10:20.399 +a big string of html it's just each you + +0:10:18.240,0:10:21.200 +know my whole page of html with a couple + +0:10:20.399,0:10:22.959 +places + +0:10:21.200,0:10:24.399 +with those control characters in just + +0:10:22.959,0:10:26.399 +four places + +0:10:24.399,0:10:29.760 +and one of them populates the track list + +0:10:26.399,0:10:32.079 +that's really the meat of the program + +0:10:29.760,0:10:33.440 +and again this is a combination of using + +0:10:32.079,0:10:36.640 +buffer scripting + +0:10:33.440,0:10:37.279 +using html mode inserting text format + +0:10:36.640,0:10:40.000 +strings + +0:10:37.279,0:10:41.920 +and then i can indent region so the html + +0:10:40.000,0:10:45.200 +actually looks pretty + +0:10:41.920,0:10:50.160 +when it comes out of it as well + +0:10:45.200,0:10:52.560 +um i will show that just really quick + +0:10:50.160,0:10:52.560 +actually + +0:10:54.000,0:10:58.800 +so you can see this is the html that got + +0:10:56.880,0:11:02.560 +generated i've got my template + +0:10:58.800,0:11:05.760 +i inserted the title here the style the + +0:11:02.560,0:11:07.920 +font was all inserted + +0:11:05.760,0:11:11.200 +and then this whole list of of tracks + +0:11:07.920,0:11:14.399 +here it's kind of messy to look at + +0:11:11.200,0:11:15.920 +but this track list this whole div here + +0:11:14.399,0:11:18.560 +is all generated by + +0:11:15.920,0:11:20.800 +my generator code and it works it's + +0:11:18.560,0:11:20.800 +great + +0:11:22.480,0:11:26.160 +okay moving on + +0:11:27.120,0:11:32.079 +um so the other thing was that as i was + +0:11:30.240,0:11:33.200 +developing this i decided to use ort + +0:11:32.079,0:11:35.360 +babel and some of his + +0:11:33.200,0:11:36.880 +its features um for multi-language + +0:11:35.360,0:11:37.839 +things because i needed to style it with + +0:11:36.880,0:11:40.480 +css and + +0:11:37.839,0:11:42.480 +and put actions in javascript and also i + +0:11:40.480,0:11:45.519 +used svg for authoring stuff + +0:11:42.480,0:11:46.079 +um and it was a little bit complicated i + +0:11:45.519,0:11:47.680 +probably + +0:11:46.079,0:11:49.600 +probably would have been simpler had i + +0:11:47.680,0:11:51.440 +not used org babble but it's also really + +0:11:49.600,0:11:53.839 +fun and it's i think it's a cool + +0:11:51.440,0:11:55.839 +cool idea to use literate programming my + +0:11:53.839,0:11:57.600 +idea was to create kind of like html + +0:11:55.839,0:11:59.519 +components like i could name it like + +0:11:57.600,0:12:01.440 +this + +0:11:59.519,0:12:02.800 +put a format string inside it and build + +0:12:01.440,0:12:05.519 +a function + +0:12:02.800,0:12:07.120 +in e-lisp to format it and spit out the + +0:12:05.519,0:12:10.320 +html that i want + +0:12:07.120,0:12:12.880 +and by doing this then i can like uh + +0:12:10.320,0:12:14.320 +just change things in my org file which + +0:12:12.880,0:12:16.959 +not getting a whole lot of time to work + +0:12:14.320,0:12:19.839 +on it i can come back to it and + +0:12:16.959,0:12:21.920 +i have a lot of notes and i can i can + +0:12:19.839,0:12:24.399 +kind of generate things as i'm going and + +0:12:21.920,0:12:25.600 +keep notes for myself and keep the + +0:12:24.399,0:12:27.519 +i don't know it's cool literate + +0:12:25.600,0:12:29.279 +programming is fun um so i don't need to + +0:12:27.519,0:12:31.040 +go into that too much but you can see if + +0:12:29.279,0:12:33.360 +i execute this here + +0:12:31.040,0:12:34.880 +i get the the div that i want um it's a + +0:12:33.360,0:12:36.480 +little bit funny you'll see i have the + +0:12:34.880,0:12:39.200 +string like this the way that + +0:12:36.480,0:12:40.000 +no web expands i can't do this on a + +0:12:39.200,0:12:43.839 +single line + +0:12:40.000,0:12:45.440 +it it it looks funny when you do that + +0:12:43.839,0:12:48.560 +so that might be something to work out + +0:12:45.440,0:12:48.959 +later css blocks can either be tangled + +0:12:48.560,0:12:51.680 +out + +0:12:48.959,0:12:52.639 +and referenced in the html source or + +0:12:51.680,0:12:54.639 +inlined + +0:12:52.639,0:12:56.959 +here's an example i have of inlining it + +0:12:54.639,0:13:00.320 +so i've got my little css block name + +0:12:56.959,0:13:03.040 +style javascript name script + +0:13:00.320,0:13:04.839 +and then i've got this html source block + +0:13:03.040,0:13:07.519 +with no web + +0:13:04.839,0:13:07.920 +expansion um these double angle brackets + +0:13:07.519,0:13:09.839 +here + +0:13:07.920,0:13:11.680 +are where i'm going to expand the block + +0:13:09.839,0:13:12.639 +name style i'm actually calling a + +0:13:11.680,0:13:14.399 +function + +0:13:12.639,0:13:17.040 +so i want the result of the function + +0:13:14.399,0:13:20.560 +here and then the script will just get + +0:13:17.040,0:13:22.959 +expanded here so or babel expand source + +0:13:20.560,0:13:25.360 +block + +0:13:22.959,0:13:28.160 +you can see what it looks like you know + +0:13:25.360,0:13:29.920 +i've got my style here i've got my title + +0:13:28.160,0:13:31.279 +i've got that main content class i + +0:13:29.920,0:13:33.040 +showed before + +0:13:31.279,0:13:34.480 +and the script as well so that's kind of + +0:13:33.040,0:13:36.320 +cool like + +0:13:34.480,0:13:38.160 +i could just run org babel tangle and + +0:13:36.320,0:13:40.480 +get my thing out and just + +0:13:38.160,0:13:41.600 +edit one file instead of multiple files + +0:13:40.480,0:13:45.120 +not for everyone + +0:13:41.600,0:13:45.120 +but i i thought it was kind of fun + +0:13:45.839,0:13:49.199 +all right oh and the final thing is that + +0:13:47.760,0:13:52.880 +in emacs you can + +0:13:49.199,0:13:57.199 +author and view svg so this is just an + +0:13:52.880,0:13:59.519 +org um this svg i used to make the play + +0:13:57.199,0:14:02.800 +and pause buttons but i didn't know this + +0:13:59.519,0:14:04.959 +but if you edit an svg file you can + +0:14:02.800,0:14:07.360 +toggle back and forth + +0:14:04.959,0:14:07.360 +between + +0:14:08.800,0:14:13.120 +between the code and the and the image + +0:14:13.199,0:14:17.360 +it's pretty sweet so i can kind of + +0:14:16.160,0:14:19.680 +iteratively work + +0:14:17.360,0:14:20.560 +work through this because of of how + +0:14:19.680,0:14:24.480 +emacs is + +0:14:20.560,0:14:24.959 +like that so um final considerations + +0:14:24.480,0:14:27.360 +here + +0:14:24.959,0:14:29.279 +like when doing this i want it to be all + +0:14:27.360,0:14:30.079 +free so i want to use fonts that use a + +0:14:29.279,0:14:32.800 +free license + +0:14:30.079,0:14:34.800 +i found gnu unifont it's kind of cool + +0:14:32.800,0:14:37.600 +the content license i chose + +0:14:34.800,0:14:39.920 +creative commons attribution share like + +0:14:37.600,0:14:42.880 +which is kind of like the gpl + +0:14:39.920,0:14:44.800 +ideally i could serve it with emacs i'd + +0:14:42.880,0:14:46.320 +like to remove idiosyncrasy so other + +0:14:44.800,0:14:48.720 +people can use it + +0:14:46.320,0:14:51.040 +it's pretty much just my tool right now + +0:14:48.720,0:14:51.440 +um not requiring the web browser i can + +0:14:51.040,0:14:54.079 +ship + +0:14:51.440,0:14:54.480 +playlists so that you can just you know + +0:14:54.079,0:14:58.000 +click + +0:14:54.480,0:15:00.639 +or link to a playlist on your favorite + +0:14:58.000,0:15:02.639 +player even emms if you want and then + +0:15:00.639,0:15:04.320 +packing up those albums in like a zip or + +0:15:02.639,0:15:08.639 +tar file + +0:15:04.320,0:15:10.880 +so um you can go to churls.world + +0:15:08.639,0:15:14.000 +it just has a link to this album i'll + +0:15:10.880,0:15:17.519 +display it here in just a second + +0:15:14.000,0:15:21.040 +you can contact me i'm shosheen on emacs + +0:15:17.519,0:15:23.680 +in irc and on sourcehut you can email me + +0:15:21.040,0:15:26.800 +grant at charles world personal or grant + +0:15:23.680,0:15:28.320 +on a bridge software all right now let's + +0:15:26.800,0:15:32.000 +see + +0:15:28.320,0:15:32.000 +about this + +0:15:32.079,0:15:35.120 +this is up online so if you want to + +0:15:33.680,0:15:39.199 +listen to my + +0:15:35.120,0:15:43.040 +college band's album from 20 years ago + +0:15:39.199,0:15:47.680 +here it is cassiopeia basement days + +0:15:43.040,0:15:48.000 +whoops i made this art in krita you can + +0:15:47.680,0:15:51.199 +press + +0:15:48.000,0:15:55.040 +play you can skip around + +0:15:51.199,0:15:58.560 +i did i do have the playlist up here too + +0:15:55.040,0:16:00.880 +so yeah thanks for listening + +0:15:58.560,0:16:04.000 +i hope you enjoyed it and enjoy the rest + +0:16:00.880,0:16:04.000 +of emacs conf + +0:16:04.360,0:16:07.360 +goodbye + diff --git a/2020/subtitles/emacsconf-2020--05-bard-bivoumacs-building-a-bandcamp-like-page-for-an-album-of-music--grant-shangreaux.sbv b/2020/subtitles/emacsconf-2020--05-bard-bivoumacs-building-a-bandcamp-like-page-for-an-album-of-music--grant-shangreaux.sbv deleted file mode 100644 index db5fd2e7..00000000 --- a/2020/subtitles/emacsconf-2020--05-bard-bivoumacs-building-a-bandcamp-like-page-for-an-album-of-music--grant-shangreaux.sbv +++ /dev/null @@ -1,1251 +0,0 @@ -0:00:01.360,0:00:07.279 -hello my name is grant shangri - -0:00:04.480,0:00:07.919 -this is my talk titled bard beavermax - -0:00:07.279,0:00:10.719 -publishing - -0:00:07.919,0:00:12.799 -music with emacs i'm a software - -0:00:10.719,0:00:14.400 -developer with unabridged software in - -0:00:12.799,0:00:16.800 -lincoln nebraska - -0:00:14.400,0:00:18.720 -long time emacs user relatively new - -0:00:16.800,0:00:20.480 -emacs hacker - -0:00:18.720,0:00:22.960 -and uh hopefully i'll be able to show - -0:00:20.480,0:00:30.480 -you my workflow with - -0:00:22.960,0:00:33.440 -how i publish music with emacs - -0:00:30.480,0:00:35.520 -all right so as a musician i would like - -0:00:33.440,0:00:37.200 -to publish my music online - -0:00:35.520,0:00:39.040 -you know i could publish with popular - -0:00:37.200,0:00:42.000 -online music services - -0:00:39.040,0:00:44.719 -but i'm more of a diy type so i chose to - -0:00:42.000,0:00:48.160 -go ahead and publish with emacs - -0:00:44.719,0:00:49.760 -so what's the motivation behind this - -0:00:48.160,0:00:51.600 -a lot of it comes down to some - -0:00:49.760,0:00:54.960 -fundamental freedoms - -0:00:51.600,0:00:57.920 -that you know emacs gnu software - -0:00:54.960,0:00:59.120 -kind of represent to me as well as kind - -0:00:57.920,0:01:01.840 -of my - -0:00:59.120,0:01:03.680 -ideas on culture and my background i - -0:01:01.840,0:01:04.080 -don't believe that music is a consumer - -0:01:03.680,0:01:06.080 -good - -0:01:04.080,0:01:08.320 -um it's a form of knowledge like an - -0:01:06.080,0:01:10.479 -algorithm - -0:01:08.320,0:01:13.119 -and it's just like such a part of - -0:01:10.479,0:01:16.640 -culture like in tribal cultures music - -0:01:13.119,0:01:18.000 -was seen as a gift from the cosmos or - -0:01:16.640,0:01:19.920 -the gods and it was - -0:01:18.000,0:01:21.920 -a gift maybe through an individual - -0:01:19.920,0:01:23.520 -vessel but was shared with the people - -0:01:21.920,0:01:26.799 -and shared with everyone - -0:01:23.520,0:01:29.840 -kept alive by the culture itself - -0:01:26.799,0:01:31.520 -and so to me music is something that - -0:01:29.840,0:01:34.640 -should be shared and should be - -0:01:31.520,0:01:36.560 -freely enjoyed by everyone of course - -0:01:34.640,0:01:39.040 -artists should be compensated as well - -0:01:36.560,0:01:41.040 -but that's a whole different topic - -0:01:39.040,0:01:42.720 -and so when i want to share my music i - -0:01:41.040,0:01:43.520 -want to do it without impacting anyone's - -0:01:42.720,0:01:45.680 -freedom - -0:01:43.520,0:01:48.960 -using gnu software like emacs is a good - -0:01:45.680,0:01:48.960 -way that i can ensure that - -0:01:49.200,0:01:55.840 -i won't be requiring people to - -0:01:52.840,0:01:57.119 -uh sign away their freedoms for anything - -0:01:55.840,0:01:58.799 -there's a lot more i could say about - -0:01:57.119,0:02:00.960 -this but i don't have time - -0:01:58.799,0:02:03.439 -feel free to reach out to me by email or - -0:02:00.960,0:02:06.479 -irc - -0:02:03.439,0:02:08.239 -um and part of the motivation for me - -0:02:06.479,0:02:10.720 -personally is that emacs is super - -0:02:08.239,0:02:12.720 -magical it's an all-in-one solution - -0:02:10.720,0:02:14.480 -like i said the gnu software aligns with - -0:02:12.720,0:02:16.800 -creative commons ideas - -0:02:14.480,0:02:18.879 -i can do file management i can author - -0:02:16.800,0:02:20.239 -html all the web stuff i need even - -0:02:18.879,0:02:22.640 -illiterate style - -0:02:20.239,0:02:24.640 -i can handle media and metadata i've got - -0:02:22.640,0:02:26.800 -version control remote server access - -0:02:24.640,0:02:28.080 -all the tools i need are right under my - -0:02:26.800,0:02:30.000 -fingertips with this - -0:02:28.080,0:02:31.440 -tool that i use every day for a long - -0:02:30.000,0:02:34.319 -time i don't need to look - -0:02:31.440,0:02:36.319 -elsewhere and it was a challenge i - -0:02:34.319,0:02:39.440 -wanted to see if i could do this - -0:02:36.319,0:02:41.680 -all within emacs itself so - -0:02:39.440,0:02:43.440 -how do you use emacs to publish music - -0:02:41.680,0:02:45.120 -well for me i needed - -0:02:43.440,0:02:46.480 -a couple of things i needed to be able - -0:02:45.120,0:02:48.319 -to audition unlabel - -0:02:46.480,0:02:50.000 -unlabeled audio tracks i have a lot of - -0:02:48.319,0:02:51.280 -files that i don't know where they - -0:02:50.000,0:02:53.840 -came from i don't know what they are i - -0:02:51.280,0:02:56.800 -need to be able to listen to them - -0:02:53.840,0:02:58.480 -and i need to be able to add metadata to - -0:02:56.800,0:03:00.800 -whatever audio format it is - -0:02:58.480,0:03:03.200 -and rename the files based on that - -0:03:00.800,0:03:05.120 -metadata potentially - -0:03:03.200,0:03:07.040 -and in the end i wanted to take those - -0:03:05.120,0:03:08.319 -files and programmatically produce a web - -0:03:07.040,0:03:11.920 -page - -0:03:08.319,0:03:14.159 -for people to consume i found out that - -0:03:11.920,0:03:14.879 -emacs scores a hundred percent on all of - -0:03:14.159,0:03:18.000 -these - -0:03:14.879,0:03:20.720 -requirements that i had for this and - -0:03:18.000,0:03:22.640 -a lot of that came from emms the emacs - -0:03:20.720,0:03:26.080 -multimedia system - -0:03:22.640,0:03:27.760 -um emms is is great um - -0:03:26.080,0:03:30.000 -if you haven't checked it out please do - -0:03:27.760,0:03:32.959 -it's a little bit unintuitive but - -0:03:30.000,0:03:34.000 -once you get into it you know it works - -0:03:32.959,0:03:36.640 -um - -0:03:34.000,0:03:38.720 -and basically what emms gave me was the - -0:03:36.640,0:03:39.680 -ability to listen to the tracks organize - -0:03:38.720,0:03:41.280 -playlists - -0:03:39.680,0:03:42.959 -and on top of that it gave me super - -0:03:41.280,0:03:45.040 -powered metadata authoring - -0:03:42.959,0:03:47.200 -and i'm going to demonstrate that to you - -0:03:45.040,0:03:50.879 -so in order to do this - -0:03:47.200,0:03:54.879 -you have to require markable playlists - -0:03:50.879,0:03:58.720 -so require ems mark and so i'm going to - -0:03:54.879,0:03:58.720 -go through and i'm going to open the red - -0:03:59.680,0:04:04.480 -i've got this this these files here so - -0:04:02.319,0:04:06.080 -you can see these files are mp3s - -0:04:04.480,0:04:07.599 -um they're recorded on a digital - -0:04:06.080,0:04:09.920 -recorder - -0:04:07.599,0:04:11.760 -um if i had the choice i would have a - -0:04:09.920,0:04:12.319 -recorder that used a different format - -0:04:11.760,0:04:14.640 -but - -0:04:12.319,0:04:16.160 -so be it so i can mark all these files - -0:04:14.640,0:04:20.000 -and i can do ems - -0:04:16.160,0:04:22.880 -add to red and now they've been loaded - -0:04:20.000,0:04:22.880 -into a playlist - -0:04:27.040,0:04:30.400 -so you can see the playlist here there's - -0:04:29.040,0:04:32.000 -some leftover files - -0:04:30.400,0:04:33.759 -so i've got these three files in my - -0:04:32.000,0:04:34.639 -playlist and as you can see it's just - -0:04:33.759,0:04:36.800 -the file name - -0:04:34.639,0:04:38.560 -the path i don't have any metadata - -0:04:36.800,0:04:41.360 -associated with them - -0:04:38.560,0:04:43.440 -in this playlist i can hit e capital e - -0:04:41.360,0:04:47.360 -and it'll bring up a buffer showing - -0:04:43.440,0:04:49.840 -um the tag information that i have - -0:04:47.360,0:04:51.520 -and so i could edit these here and i - -0:04:49.840,0:04:53.919 -could edit them one at a time but that's - -0:04:51.520,0:04:57.440 -not really great i want superpower - -0:04:53.919,0:05:00.320 -metadata authoring so - -0:04:57.440,0:05:00.320 -by marking them - -0:05:04.479,0:05:08.479 -by marking them i can then hit e and i - -0:05:07.680,0:05:10.479 -have - -0:05:08.479,0:05:12.639 -all three of the tracks loaded up in - -0:05:10.479,0:05:15.759 -this tags buffer - -0:05:12.639,0:05:18.800 -on top of that i can do emms - -0:05:15.759,0:05:22.840 -tag editor set all ctrl c control - -0:05:18.800,0:05:25.680 -r and i want to set the artist - -0:05:22.840,0:05:26.320 -so these are some recordings of my - -0:05:25.680,0:05:31.039 -family - -0:05:26.320,0:05:35.600 -so shangri-lux set all three of them - -0:05:31.039,0:05:40.160 -i want to set the album um - -0:05:35.600,0:05:43.600 -spring walk with lap harp - -0:05:40.160,0:05:43.600 -and i want to set the year - -0:05:45.520,0:05:50.840 -and then i'm going to go ahead and put - -0:05:48.960,0:05:53.759 -these in - -0:05:50.840,0:05:55.840 -manually - -0:05:53.759,0:05:57.039 -but with the power of emacs keyboard - -0:05:55.840,0:05:59.600 -macros and - -0:05:57.039,0:06:02.319 -registers and so on i could do this - -0:05:59.600,0:06:04.000 -programmatically as well - -0:06:02.319,0:06:06.000 -which would make it a lot easier if i - -0:06:04.000,0:06:07.440 -hadn't met much more than three files to - -0:06:06.000,0:06:09.919 -do this with - -0:06:07.440,0:06:11.520 -submit the changes with ctrl c ctrl c - -0:06:09.919,0:06:13.120 -and now we've got the playlist you can - -0:06:11.520,0:06:15.039 -see the artist and track number have - -0:06:13.120,0:06:17.360 -been updated here - -0:06:15.039,0:06:19.039 -and then the final piece of this is that - -0:06:17.360,0:06:20.479 -if you look at this you can see that the - -0:06:19.039,0:06:22.639 -file name is still the same - -0:06:20.479,0:06:24.560 -so if i were looking to the directory i - -0:06:22.639,0:06:26.479 -would still have this file name - -0:06:24.560,0:06:28.000 -when packaging these up for a release - -0:06:26.479,0:06:30.319 -for people to download - -0:06:28.000,0:06:32.400 -it's nice to be able to have that file - -0:06:30.319,0:06:34.800 -name reflect the track number and the - -0:06:32.400,0:06:35.680 -artist and so on so there's another - -0:06:34.800,0:06:38.240 -command - -0:06:35.680,0:06:38.240 -mms - -0:06:41.199,0:06:45.120 -rename tag editor rename so it could be - -0:06:44.160,0:06:47.199 -just capital r - -0:06:45.120,0:06:48.880 -i think i need to mark all of these hit - -0:06:47.199,0:06:50.000 -capital r and then it's going to ask me - -0:06:48.880,0:06:53.599 -to confirm - -0:06:50.000,0:06:53.599 -and say yes to all of them - -0:06:54.400,0:07:04.319 -and now if you look in the dread - -0:07:02.720,0:07:06.319 -whoops i have to update it you'll see - -0:07:04.319,0:07:09.840 -it's been updated with the artist - -0:07:06.319,0:07:11.120 -the name track and track number and - -0:07:09.840,0:07:14.639 -track name - -0:07:11.120,0:07:17.360 -um so this format is a format string so - -0:07:14.639,0:07:20.479 -it's customizable of course - -0:07:17.360,0:07:21.039 -i just decided to go with the default so - -0:07:20.479,0:07:24.160 -that's - -0:07:21.039,0:07:26.000 -pretty great this workflow - -0:07:24.160,0:07:28.080 -just with emms i didn't have to do - -0:07:26.000,0:07:30.960 -anything this is all there it's all - -0:07:28.080,0:07:32.639 -all built in um it gave me exactly what - -0:07:30.960,0:07:35.599 -i was looking for in terms of being able - -0:07:32.639,0:07:37.599 -to process a lot of raw audio files - -0:07:35.599,0:07:39.280 -add metadata to them and get them ready - -0:07:37.599,0:07:41.599 -for publishing - -0:07:39.280,0:07:43.520 -and this is for publishing for playback - -0:07:41.599,0:07:44.879 -in any media player it'll it'll be - -0:07:43.520,0:07:46.560 -useful - -0:07:44.879,0:07:48.479 -not just for the web page that i'm - -0:07:46.560,0:07:50.560 -building so the - -0:07:48.479,0:07:53.440 -final part of course is um to build the - -0:07:50.560,0:07:54.960 -web page and emacs makes authoring html - -0:07:53.440,0:07:57.440 -trivial - -0:07:54.960,0:07:59.039 -like as i was going through this i - -0:07:57.440,0:08:00.400 -wanted to challenge myself and just be - -0:07:59.039,0:08:03.120 -like can i do this with all - -0:08:00.400,0:08:03.520 -just all with emacs like can i just make - -0:08:03.120,0:08:05.440 -this - -0:08:03.520,0:08:07.039 -i don't need a i don't need ruby i don't - -0:08:05.440,0:08:08.960 -need rails i don't need node i don't - -0:08:07.039,0:08:10.560 -need any of this other stuff i have my - -0:08:08.960,0:08:12.560 -tool right here it's a fully - -0:08:10.560,0:08:15.039 -it's a whole operating system basically - -0:08:12.560,0:08:17.360 -plus programming languages - -0:08:15.039,0:08:19.919 -so the first thing i started with was - -0:08:17.360,0:08:22.560 -buffer scripting for manipulating text - -0:08:19.919,0:08:24.319 -that's kind of the easiest way to do it - -0:08:22.560,0:08:25.280 -and basically anything you can do in a - -0:08:24.319,0:08:28.479 -buffer you can do - -0:08:25.280,0:08:30.319 -programmatically with e-lisp so this - -0:08:28.479,0:08:33.919 -might be a good example for beginners if - -0:08:30.319,0:08:36.000 -you haven't done any e-lisp yet - -0:08:33.919,0:08:36.959 -like a simple example is to create this - -0:08:36.000,0:08:40.000 -this div - -0:08:36.959,0:08:41.760 -output here i can you - -0:08:40.000,0:08:44.240 -can use this with temp buffer so - -0:08:41.760,0:08:46.640 -basically creating an imaginary buffer - -0:08:44.240,0:08:48.800 -insert is just like typing so you put - -0:08:46.640,0:08:50.959 -strings in you put new lines in - -0:08:48.800,0:08:52.080 -can cap build some strings together and - -0:08:50.959,0:08:54.000 -here you can see i'm - -0:08:52.080,0:08:55.360 -i'm doing a random number so every time - -0:08:54.000,0:08:57.920 -i execute this - -0:08:55.360,0:09:01.040 -my content changes so i can generate - -0:08:57.920,0:09:04.399 -dynamic content in html blocks - -0:09:01.040,0:09:05.920 -with e-lisp for my - -0:09:04.399,0:09:08.000 -web page builder it's a little more - -0:09:05.920,0:09:12.080 -complex i'm pulling data out - -0:09:08.000,0:09:15.440 -using emms data structures - -0:09:12.080,0:09:16.080 -so it's pulling that out from the track - -0:09:15.440,0:09:18.720 -data - -0:09:16.080,0:09:19.440 -and then i'm i'm using some program - -0:09:18.720,0:09:21.440 -program to - -0:09:19.440,0:09:23.200 -generate list elements so each track is - -0:09:21.440,0:09:25.120 -going to have the title - -0:09:23.200,0:09:26.959 -and track number and then a button for - -0:09:25.120,0:09:29.519 -playing it plus the source - -0:09:26.959,0:09:30.480 -of the audio file which will get added - -0:09:29.519,0:09:32.640 -here - -0:09:30.480,0:09:34.839 -right now this is hard coded for opus so - -0:09:32.640,0:09:37.200 -it won't work for my - -0:09:34.839,0:09:39.120 -mp3s um - -0:09:37.200,0:09:41.200 -i'm going to skip over snippets turns - -0:09:39.120,0:09:45.519 -out format strings were good enough - -0:09:41.200,0:09:48.160 -for me um snippets could be useful but - -0:09:45.519,0:09:49.839 -format is super powerful and i didn't - -0:09:48.160,0:09:51.279 -really even need all that much power - -0:09:49.839,0:09:53.519 -basically just doing string - -0:09:51.279,0:09:54.560 -interpolation so if you haven't seen - -0:09:53.519,0:09:56.720 -format before - -0:09:54.560,0:09:59.120 -you basically put these control strings - -0:09:56.720,0:10:03.120 -or control characters inside of a string - -0:09:59.120,0:10:05.040 -and you can generate you can generate an - -0:10:03.120,0:10:07.600 -output string that you want - -0:10:05.040,0:10:08.720 -so in my generator code basically it's - -0:10:07.600,0:10:10.959 -down here - -0:10:08.720,0:10:12.800 -um i'm calling format with this sparred - -0:10:10.959,0:10:15.920 -vivomax template - -0:10:12.800,0:10:18.240 -and that's basically a big - -0:10:15.920,0:10:20.399 -a big string of html it's just each you - -0:10:18.240,0:10:21.200 -know my whole page of html with a couple - -0:10:20.399,0:10:22.959 -places - -0:10:21.200,0:10:24.399 -with those control characters in just - -0:10:22.959,0:10:26.399 -four places - -0:10:24.399,0:10:29.760 -and one of them populates the track list - -0:10:26.399,0:10:32.079 -that's really the meat of the program - -0:10:29.760,0:10:33.440 -and again this is a combination of using - -0:10:32.079,0:10:36.640 -buffer scripting - -0:10:33.440,0:10:37.279 -using html mode inserting text format - -0:10:36.640,0:10:40.000 -strings - -0:10:37.279,0:10:41.920 -and then i can indent region so the html - -0:10:40.000,0:10:45.200 -actually looks pretty - -0:10:41.920,0:10:50.160 -when it comes out of it as well - -0:10:45.200,0:10:52.560 -um i will show that just really quick - -0:10:50.160,0:10:52.560 -actually - -0:10:54.000,0:10:58.800 -so you can see this is the html that got - -0:10:56.880,0:11:02.560 -generated i've got my template - -0:10:58.800,0:11:05.760 -i inserted the title here the style the - -0:11:02.560,0:11:07.920 -font was all inserted - -0:11:05.760,0:11:11.200 -and then this whole list of of tracks - -0:11:07.920,0:11:14.399 -here it's kind of messy to look at - -0:11:11.200,0:11:15.920 -but this track list this whole div here - -0:11:14.399,0:11:18.560 -is all generated by - -0:11:15.920,0:11:20.800 -my generator code and it works it's - -0:11:18.560,0:11:20.800 -great - -0:11:22.480,0:11:26.160 -okay moving on - -0:11:27.120,0:11:32.079 -um so the other thing was that as i was - -0:11:30.240,0:11:33.200 -developing this i decided to use ort - -0:11:32.079,0:11:35.360 -babel and some of his - -0:11:33.200,0:11:36.880 -its features um for multi-language - -0:11:35.360,0:11:37.839 -things because i needed to style it with - -0:11:36.880,0:11:40.480 -css and - -0:11:37.839,0:11:42.480 -and put actions in javascript and also i - -0:11:40.480,0:11:45.519 -used svg for authoring stuff - -0:11:42.480,0:11:46.079 -um and it was a little bit complicated i - -0:11:45.519,0:11:47.680 -probably - -0:11:46.079,0:11:49.600 -probably would have been simpler had i - -0:11:47.680,0:11:51.440 -not used org babble but it's also really - -0:11:49.600,0:11:53.839 -fun and it's i think it's a cool - -0:11:51.440,0:11:55.839 -cool idea to use literate programming my - -0:11:53.839,0:11:57.600 -idea was to create kind of like html - -0:11:55.839,0:11:59.519 -components like i could name it like - -0:11:57.600,0:12:01.440 -this - -0:11:59.519,0:12:02.800 -put a format string inside it and build - -0:12:01.440,0:12:05.519 -a function - -0:12:02.800,0:12:07.120 -in e-lisp to format it and spit out the - -0:12:05.519,0:12:10.320 -html that i want - -0:12:07.120,0:12:12.880 -and by doing this then i can like uh - -0:12:10.320,0:12:14.320 -just change things in my org file which - -0:12:12.880,0:12:16.959 -not getting a whole lot of time to work - -0:12:14.320,0:12:19.839 -on it i can come back to it and - -0:12:16.959,0:12:21.920 -i have a lot of notes and i can i can - -0:12:19.839,0:12:24.399 -kind of generate things as i'm going and - -0:12:21.920,0:12:25.600 -keep notes for myself and keep the - -0:12:24.399,0:12:27.519 -i don't know it's cool literate - -0:12:25.600,0:12:29.279 -programming is fun um so i don't need to - -0:12:27.519,0:12:31.040 -go into that too much but you can see if - -0:12:29.279,0:12:33.360 -i execute this here - -0:12:31.040,0:12:34.880 -i get the the div that i want um it's a - -0:12:33.360,0:12:36.480 -little bit funny you'll see i have the - -0:12:34.880,0:12:39.200 -string like this the way that - -0:12:36.480,0:12:40.000 -no web expands i can't do this on a - -0:12:39.200,0:12:43.839 -single line - -0:12:40.000,0:12:45.440 -it it it looks funny when you do that - -0:12:43.839,0:12:48.560 -so that might be something to work out - -0:12:45.440,0:12:48.959 -later css blocks can either be tangled - -0:12:48.560,0:12:51.680 -out - -0:12:48.959,0:12:52.639 -and referenced in the html source or - -0:12:51.680,0:12:54.639 -inlined - -0:12:52.639,0:12:56.959 -here's an example i have of inlining it - -0:12:54.639,0:13:00.320 -so i've got my little css block name - -0:12:56.959,0:13:03.040 -style javascript name script - -0:13:00.320,0:13:04.839 -and then i've got this html source block - -0:13:03.040,0:13:07.519 -with no web - -0:13:04.839,0:13:07.920 -expansion um these double angle brackets - -0:13:07.519,0:13:09.839 -here - -0:13:07.920,0:13:11.680 -are where i'm going to expand the block - -0:13:09.839,0:13:12.639 -name style i'm actually calling a - -0:13:11.680,0:13:14.399 -function - -0:13:12.639,0:13:17.040 -so i want the result of the function - -0:13:14.399,0:13:20.560 -here and then the script will just get - -0:13:17.040,0:13:22.959 -expanded here so or babel expand source - -0:13:20.560,0:13:25.360 -block - -0:13:22.959,0:13:28.160 -you can see what it looks like you know - -0:13:25.360,0:13:29.920 -i've got my style here i've got my title - -0:13:28.160,0:13:31.279 -i've got that main content class i - -0:13:29.920,0:13:33.040 -showed before - -0:13:31.279,0:13:34.480 -and the script as well so that's kind of - -0:13:33.040,0:13:36.320 -cool like - -0:13:34.480,0:13:38.160 -i could just run org babel tangle and - -0:13:36.320,0:13:40.480 -get my thing out and just - -0:13:38.160,0:13:41.600 -edit one file instead of multiple files - -0:13:40.480,0:13:45.120 -not for everyone - -0:13:41.600,0:13:45.120 -but i i thought it was kind of fun - -0:13:45.839,0:13:49.199 -all right oh and the final thing is that - -0:13:47.760,0:13:52.880 -in emacs you can - -0:13:49.199,0:13:57.199 -author and view svg so this is just an - -0:13:52.880,0:13:59.519 -org um this svg i used to make the play - -0:13:57.199,0:14:02.800 -and pause buttons but i didn't know this - -0:13:59.519,0:14:04.959 -but if you edit an svg file you can - -0:14:02.800,0:14:07.360 -toggle back and forth - -0:14:04.959,0:14:07.360 -between - -0:14:08.800,0:14:13.120 -between the code and the and the image - -0:14:13.199,0:14:17.360 -it's pretty sweet so i can kind of - -0:14:16.160,0:14:19.680 -iteratively work - -0:14:17.360,0:14:20.560 -work through this because of of how - -0:14:19.680,0:14:24.480 -emacs is - -0:14:20.560,0:14:24.959 -like that so um final considerations - -0:14:24.480,0:14:27.360 -here - -0:14:24.959,0:14:29.279 -like when doing this i want it to be all - -0:14:27.360,0:14:30.079 -free so i want to use fonts that use a - -0:14:29.279,0:14:32.800 -free license - -0:14:30.079,0:14:34.800 -i found gnu unifont it's kind of cool - -0:14:32.800,0:14:37.600 -the content license i chose - -0:14:34.800,0:14:39.920 -creative commons attribution share like - -0:14:37.600,0:14:42.880 -which is kind of like the gpl - -0:14:39.920,0:14:44.800 -ideally i could serve it with emacs i'd - -0:14:42.880,0:14:46.320 -like to remove idiosyncrasy so other - -0:14:44.800,0:14:48.720 -people can use it - -0:14:46.320,0:14:51.040 -it's pretty much just my tool right now - -0:14:48.720,0:14:51.440 -um not requiring the web browser i can - -0:14:51.040,0:14:54.079 -ship - -0:14:51.440,0:14:54.480 -playlists so that you can just you know - -0:14:54.079,0:14:58.000 -click - -0:14:54.480,0:15:00.639 -or link to a playlist on your favorite - -0:14:58.000,0:15:02.639 -player even emms if you want and then - -0:15:00.639,0:15:04.320 -packing up those albums in like a zip or - -0:15:02.639,0:15:08.639 -tar file - -0:15:04.320,0:15:10.880 -so um you can go to churls.world - -0:15:08.639,0:15:14.000 -it just has a link to this album i'll - -0:15:10.880,0:15:17.519 -display it here in just a second - -0:15:14.000,0:15:21.040 -you can contact me i'm shosheen on emacs - -0:15:17.519,0:15:23.680 -in irc and on sourcehut you can email me - -0:15:21.040,0:15:26.800 -grant at charles world personal or grant - -0:15:23.680,0:15:28.320 -on a bridge software all right now let's - -0:15:26.800,0:15:32.000 -see - -0:15:28.320,0:15:32.000 -about this - -0:15:32.079,0:15:35.120 -this is up online so if you want to - -0:15:33.680,0:15:39.199 -listen to my - -0:15:35.120,0:15:43.040 -college band's album from 20 years ago - -0:15:39.199,0:15:47.680 -here it is cassiopeia basement days - -0:15:43.040,0:15:48.000 -whoops i made this art in krita you can - -0:15:47.680,0:15:51.199 -press - -0:15:48.000,0:15:55.040 -play you can skip around - -0:15:51.199,0:15:58.560 -i did i do have the playlist up here too - -0:15:55.040,0:16:00.880 -so yeah thanks for listening - -0:15:58.560,0:16:04.000 -i hope you enjoyed it and enjoy the rest - -0:16:00.880,0:16:04.000 -of emacs conf - -0:16:04.360,0:16:07.360 -goodbye - -- cgit v1.2.3