summaryrefslogtreecommitdiffstats
path: root/2020
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--2020/info/05.md920
-rw-r--r--2020/subtitles/emacsconf-2020--05-bard-bivoumacs-building-a-bandcamp-like-page-for-an-album-of-music--grant-shangreaux.vtt1101
-rw-r--r--2020/subtitles/emacsconf-2020--05-bard-bivoumacs-building-a-bandcamp-like-page-for-an-album-of-music--questions--grant-shangreaux.vtt606
3 files changed, 1294 insertions, 1333 deletions
diff --git a/2020/info/05.md b/2020/info/05.md
index 852caff3..30aaf561 100644
--- a/2020/info/05.md
+++ b/2020/info/05.md
@@ -112,390 +112,546 @@ screenshots from within Emacs as SVG (if compiled `--with-cairo`).
<a name="transcript"></a>
# Transcript
-Hello, my name is Grant Shangreaux. This is my talk titled Bard
-Bivou(m)acs: Publishing Music with Emacs. I'm a software developer
-with Unabridged Software in Lincoln, Nebraska. Long time Emacs user,
-relatively new Emacs hacker. Hopefully, I'll be able to show you my
-workflow, with how I publish music with Emacs. All right.
-
-(<a href="#mainVideo" class="time-link">00:30</a>)
-So as a musician, I would like to publish my music online. I could
-publish with popular online music services, but I'm more of a
-DIY-type, so I chose to go ahead and publish with Emacs. What's the
-motivation behind this? A lot of it comes down to some fundamental
-freedoms that Emacs and GNU software represent to me, as well as my
-ideas on culture and my background. I don't believe that music is a
-consumer good. It's a form of knowledge, like an algorithm. And it's
-just such a part of culture, like in tribal cultures, music was seen
-as a gift from the cosmos or the gods. It was a gift maybe through an
-individual vessel, but was shared with the people and shared with
-everyone, kept alive by the culture itself. So to me, music is
-something that should be shared and should be freely enjoyed by
-everyone. Of course, artists should be compensated as well, but that's
-a whole different topic.
-
-(<a href="#mainVideo" class="time-link" data-timestamp="99">01:39</a>)
-So when I want to share my music, I want to do it without
-impacting anyone's freedom. Using GNU software like Emacs is a good
-way that I can ensure that I won't be requiring people to sign away
-their freedoms for anything. There's a lot more I could say about this
-but I don't have time. Feel free to reach out to me by email or IRC.
-Part of the motivation for me, personally, is that Emacs is super
-magical. It's an all-in-one solution. Like I said, the GNU software
-aligns with Creative Commons' ideas. I can do file management. I can
-author HTML, all the web stuff I need even, literate-style. I can
-handle media and metadata. I've got version control, remote server
-access... All the tools I need are right under my fingertips with this
-tool that I use every day for a long time. I don't need to look
-elsewhere.
-
-(<a href="#mainVideo" class="time-link">02:31</a>)
-It was a challenge. I wanted to see if I could do this all
-within Emacs itself. So, how do you use Emacs to publish music? Well,
-for me, I needed a couple of things. I needed to be able to audition
-and label unlabeled audio tracks. I have a lot of files that I don't
-know where they came from. I don't know what they are. I need to be
-able to listen to them, and I need to be able to add metadata to
-whatever audio format it is and rename the files based on that
-metadata, potentially. And in the end, I wanted to take those files
-and programmatically produce a web page for people to consume.
-
-(<a href="#mainVideo" class="time-link">03:08</a>)
-I found out that Emacs scores a hundred percent on all of
-these requirements that I had for this, and a lot of that came from
-EMMS, the Emacs multimedia system. EMMS is great. If you haven't
-checked it out, please do. It's a little bit unintuitive, but once you
-get into it, you know it works. Basically, what EMMS gave me was the
-ability to listen to the tracks, organize playlists. On top of that,
-it gave me super-powered metadata authoring.
-
-(<a href="#mainVideo" class="time-link">03:42</a>)
-I'm going to demonstrate that to you. So in order to do this,
-you have to require markable playlists, so (require 'emms-mark). I'm
-going to go through, and I'm going to open the red... I've got this.
-These files here. So you can see these files are mp3s. They're
-recorded on a digital recorder. If I had the choice, I would have a
-recorder that used a different format, but so be it. I can mark all
-these files and I can do EMMS add to .., and now they've been loaded
-into a playlist. So you can see the playlist here. There's some
-leftover files.
-
-(<a href="#mainVideo" class="time-link">04:30</a>)
-So I've got these three files in my playlist, and as
-you can see, it's just the file name, the path. I don't have any
-metadata associated with them. In this playlist, I can hit E, and
-it'll bring up a buffer showing the tag information that I have. I
-could edit these here. I could edit them one at a time, but that's not
-really great. I want superpower metadata authoring. So, by marking
-them, I can then hit E, and I have all three of the tracks loaded up
-in this tags buffer. On top of that, I can do EMMS tag editor, set
-all, C-c C-r, and I want to set the artist. so these are some
-recordings of my family. So, Shangreaux, set all three of them. I want
-to set the album: Spring Walk with Lap Harp. I want to set the year.
-And then I'm going to go ahead and put these in manually, but with the
-power of Emacs keyboard macros and registers and so on. I could do
-this programmatically as well, which would make it a lot easier if I
-had much more than three files to do this with. Submit the changes
-with C-c C-c, and now we've got the playlist. You can see the artist
-and track number have been updated here.
-
-(<a href="#mainVideo" class="time-link">6:15</a>)
-And then the final piece of this is that if you look at this,
-you can see that the file name is still the same. So if I were looking
-at the directory, I would still have this file name. When packaging
-these up for a release, for people to download, it's nice to be able
-to have that filename reflect the track number and the artist and so
-on. So there's another command, EMMS rename tag editor, rename, so it
-could be just capital R. I think I need to mark all of these, hit
-capital R, and then it's going to ask me to confirm and say yes to all
-of them. And now, if you look in the-- whoops I have to update
-it--you'll see it's been updated with the artist, track number and
-track name. This format is a format string, so it's customizable of
-course. I just decided to go with the default.
-
-(<a href="#mainVideo" class="time-link">7:21</a>)
-So that's pretty great, this workflow just with EMMS. I didn't
-have to do anything. This is all there. It's all built in. It gave me
-exactly what I was looking for in terms of being able to process a lot
-of raw audio files add metadata to them and get them ready for
-publishing. And this is for publishing for playback in any media
-player. It'll be useful. Not just for the web page that I'm building.
-
-(<a href="#mainVideo" class="time-link">7:48</a>)
-So the final part, of course, is to build the web page. Emacs
-makes authoring HTML trivial. As I was going through this, I wanted to
-challenge myself and just be, like, can I do this just all with Emacs?
-Can I just make this? I don't need a... I don't need Ruby. I don't
-need Rails. I don't need Node. I don't need any of this other stuff. I
-have my tool right here. It's a fully... It's a whole operating
-system, basically, plus programming languages. So the first thing I
-started with was buffer scripting for manipulating text. That's kind
-of the easiest way to do it. Basically, anything you can do in a
-buffer, you can do programmatically with Elisp. So this might be a
-good example for beginners. If you haven't done any Elisp yet, a
-simple example is to create this this div output here. You can use
-this with-temp-buffer, so basically creating an imaginary buffer.
-insert is just like typing, so you put strings in, you put new lines
-in, you can build some strings together. Here you can see I'm doing a
-random number, so every time I execute this, my content change. I
-can generate dynamic content in HTML blocks with Elisp.
-
-(<a href="#mainVideo" class="time-link">9:04</a>)
-For my web page builder, It's a little more complex. I'm
-pulling data out using EMMS data structures, so it's pulling that out
-from the track data. And then I'm using some program to generate list
-elements, so each track is going to have the title and track number,
-and then a button for playing it, plus the source of the audio file,
-which will get added here. Right now, this is hard coded for Opus, so
-it won't work for my MP3s. I'm going to skip over snippets. Turns out
-format strings were good enough for me. Snippets could be useful, but
-format is super powerful, and I didn't really even need all that much
-power, basically, just doing string interpolation. So if you haven't
-seen format before, you basically put these control strings or control
-characters inside of a string, and you can generate an output string
-that you want. So in my generator code, basically, it's down here, I'm
-calling format with this Bard Bivou(m)acs template, and that's
-basically a big a big string of HTML. It's just my whole page of HTML
-with those control characters in just four places. One of them
-populates the track list. That's really the meat of the program.
-Again, this is a combination of using buffer scripting, using HTML
-mode, inserting text format strings, and then I can indent-region so
-the HTML actually looks pretty when it comes out of it as well. I will
-show that, just really quick actually. So you can see, this is the
-HTML that got generated. I've got my template. I inserted the title
-here, the style, the font was all inserted, and then this whole list
-of of tracks here. It's kind of messy to look at, but this track list,
-this whole div here, is all generated by my generator code, and it
-works. It's great. Okay, moving on.
-
-(<a href="#mainVideo" class="time-link">11:27</a>)
-So the other thing was that as I was developing this, I
-decided to use Org Babel and some of his its features for
-multi-language things because I needed to style it with CSS and and
-put actions in Javascript, and also I used SVG for authoring stuff. It
-was a little bit complicated. It probably would have been simpler had
-I not used Org Babel, but it's also really fun. I think it's a cool,
-cool idea to use literate programming. My idea was to create HTML
-components. I could name it like this, put a format string inside it,
-and build a function in Elisp to format it and spit out the HTML that
-I want. By doing this, then, I can just change things in my Org file
-which, not getting a whole lot of time to work on it, I can come back
-to it and I have a lot of notes. I can kind of generate things as I'm
-going and keep notes for myself, and keep the... I don't know. It's
-cool. Literate programming is fun. So I don't need to go into that too
-much, but you can see if I execute this here, I get the the div that I
-want. It's a little bit funny. You'll see I have the string like this,
-the way that noweb expands, I can't do this on a single line. It looks
-funny when you do that, so that might be something to work out later.
-CSS blocks can either be tangled out and referenced in the HTML source
-or inlined. Here's an example I have of inlining it. So I've got my
-little CSS block named style, Javascript named script, and then I've
-got this HTML source block with noweb expansion. These double angle
-brackets here are where I'm going to expand the block named style. I'm
-actually calling a function, so I want the result of the function
-here, and then the script will just get expanded here. So
-org-babel-expand-src-block, you can see what it looks like. I've got
-my style here. I've got my title. I've got that main content class I
-showed before, and the script as well. So that's kind of cool. I could
-just run org-babel-tangle and get my thing out and just edit one file
-instead of multiple files. Not for everyone, but I thought it was kind
-of fun. All right.
-
-(<a href="#mainVideo" class="time-link">13:45</a>)
-Oh, and the final thing is that in Emacs, you can author and
-view SVG. So this is just an Org. This SVG, I used to make the play
-and pause buttons. I didn't know this, but if you edit an SVG file,
-you can toggle back and forth between the code and the image. It's
-pretty sweet. So I can iteratively work through this because of how
-Emacs is.
-
-(<a href="#mainVideo" class="time-link">14:20</a>)
-Final considerations here, like when doing this, I want it to
-be all free, so I want to use fonts that use a free license. I found
-GNU Unifont. It's kind of cool. The content license... I chose
-Creative Commons Attribution ShareAlike, which is kind of like the
-GPL. Ideally, I could serve it with Emacs. I'd like to remove
-idiosyncrasy so other people can use it. It's pretty much just my tool
-right now. Not requiring the web browser... I can ship playlists so
-that you can just click or link to a playlist on your favorite player,
-even EMMS if you want, and then packing up those albums in like a ZIP
-or .tar file.
-
-(<a href="#mainVideo" class="time-link">15:04</a>)
-So you can go to churls.world . It just has a link to this
-album. I'll display it here in just a second. You can contact me. I'm
-shoshin on #emacs in IRC and on sourcehut. You can email me
-grant@churls.world, personal, or grant@unabridgedsoftware.com. All
-right, now. Let's see about this... This is up online, so if you want
-to listen to my college band's album from 20 years ago, here it is:
-Casiopeia Basement Days. Whoops. I made this art in Krita. You can
-press play. You can skip around. I do have the playlist up here too.
-So yeah, thanks for listening. I hope you enjoyed it, and enjoy the
-rest of EmacsConf. Goodbye!
-
-<!-- /transcript -->
+[[!template text="Hello, my name is Grant Shangreaux." start="00:00:01.360" video="mainVideo" id=subtitle]]
+[[!template text="This is my talk titled Bard Bivou(m)acs: Publishing Music with Emacs." start="00:00:04.480" video="mainVideo" id=subtitle]]
+[[!template text="I'm a software developer with Unabridged Software in Lincoln, Nebraska." start="00:00:09.519" video="mainVideo" id=subtitle]]
+[[!template text="Long time Emacs user, relatively new Emacs hacker." start="00:00:14.400" video="mainVideo" id=subtitle]]
+[[!template text="Hopefully, I'll be able to show you my workflow," start="00:00:18.720" video="mainVideo" id=subtitle]]
+[[!template text="with how I publish music with Emacs." start="00:00:22.487" video="mainVideo" id=subtitle]]
+[[!template new="1" text="All right. So as a musician, I would like to publish my music online." start="00:00:30.480" video="mainVideo" id=subtitle]]
+[[!template text="I could publish with popular online music services," start="00:00:35.520" video="mainVideo" id=subtitle]]
+[[!template text="but I'm more of a DIY-type," start="00:00:39.040" video="mainVideo" id=subtitle]]
+[[!template text="so I chose to go ahead and publish with Emacs." start="00:00:41.061" video="mainVideo" id=subtitle]]
+[[!template text="What's the motivation behind this?" start="00:00:44.719" video="mainVideo" id=subtitle]]
+[[!template text="A lot of it comes down to some fundamental freedoms" start="00:00:48.160" video="mainVideo" id=subtitle]]
+[[!template text="that Emacs and GNU software represent to me," start="00:00:51.600" video="mainVideo" id=subtitle]]
+[[!template text="as well as my ideas on culture and my background." start="00:00:57.178" video="mainVideo" id=subtitle]]
+[[!template text="I don't believe that music is a consumer good." start="00:01:01.840" video="mainVideo" id=subtitle]]
+[[!template text="It's a form of knowledge, like an algorithm." start="00:01:04.080" video="mainVideo" id=subtitle]]
+[[!template text="And it's just such a part of culture," start="00:01:08.320" video="mainVideo" id=subtitle]]
+[[!template text="like in tribal cultures," start="00:01:11.036" video="mainVideo" id=subtitle]]
+[[!template text="music was seen as a gift from the cosmos or the gods." start="00:01:12.780" video="mainVideo" id=subtitle]]
+[[!template text="It was a gift maybe through an individual vessel," start="00:01:17.405" video="mainVideo" id=subtitle]]
+[[!template text="but was shared with the people" start="00:01:20.288" video="mainVideo" id=subtitle]]
+[[!template text="and shared with everyone," start="00:01:21.920" video="mainVideo" id=subtitle]]
+[[!template text="kept alive by the culture itself." start="00:01:23.520" video="mainVideo" id=subtitle]]
+[[!template text="So to me, music is something that" start="00:01:26.799" video="mainVideo" id=subtitle]]
+[[!template text="should be shared and should be" start="00:01:29.840" video="mainVideo" id=subtitle]]
+[[!template text="freely enjoyed by everyone." start="00:01:31.520" video="mainVideo" id=subtitle]]
+[[!template text="Of course, artists should be compensated as well," start="00:01:33.818" video="mainVideo" id=subtitle]]
+[[!template text="but that's a whole different topic." start="00:01:36.560" video="mainVideo" id=subtitle]]
+[[!template new="1" text="So when I want to share my music," start="00:01:39.040" video="mainVideo" id=subtitle]]
+[[!template text="I want to do it without impacting anyone's freedom." start="00:01:41.040" video="mainVideo" id=subtitle]]
+[[!template text="Using GNU software like Emacs" start="00:01:43.520" video="mainVideo" id=subtitle]]
+[[!template text="is a good way that I can ensure that" start="00:01:45.425" video="mainVideo" id=subtitle]]
+[[!template text="I won't be requiring people" start="00:01:49.200" video="mainVideo" id=subtitle]]
+[[!template text="to sign away their freedoms for anything." start="00:01:52.597" video="mainVideo" id=subtitle]]
+[[!template text="There's a lot more I could say about this" start="00:01:55.840" video="mainVideo" id=subtitle]]
+[[!template text="but I don't have time." start="00:01:57.367" video="mainVideo" id=subtitle]]
+[[!template text="Feel free to reach out to me by email or IRC." start="00:01:58.799" video="mainVideo" id=subtitle]]
+[[!template text="Part of the motivation for me," start="00:02:03.439" video="mainVideo" id=subtitle]]
+[[!template text="personally, is that Emacs is super magical." start="00:02:06.479" video="mainVideo" id=subtitle]]
+[[!template text="It's an all-in-one solution." start="00:02:08.775" video="mainVideo" id=subtitle]]
+[[!template text="Like I said, the GNU software aligns with" start="00:02:10.720" video="mainVideo" id=subtitle]]
+[[!template text="Creative Commons' ideas." start="00:02:12.720" video="mainVideo" id=subtitle]]
+[[!template text="I can do file management." start="00:02:14.480" video="mainVideo" id=subtitle]]
+[[!template text="I can author HTML, all the web stuff I need even, literate-style." start="00:02:16.067" video="mainVideo" id=subtitle]]
+[[!template text="I can handle media and metadata." start="00:02:20.239" video="mainVideo" id=subtitle]]
+[[!template text="I've got version control, remote server access..." start="00:02:22.171" video="mainVideo" id=subtitle]]
+[[!template text="All the tools I need are right under my fingertips with this tool" start="00:02:24.640" video="mainVideo" id=subtitle]]
+[[!template text="that I use every day for a long time." start="00:02:28.080" video="mainVideo" id=subtitle]]
+[[!template text="I don't need to look elsewhere." start="00:02:30.000" video="mainVideo" id=subtitle]]
+[[!template new="1" text="It was a challenge." start="00:02:31.440" video="mainVideo" id=subtitle]]
+[[!template text="I wanted to see if I could do this" start="00:02:34.319" video="mainVideo" id=subtitle]]
+[[!template text="all within Emacs itself." start="00:02:36.319" video="mainVideo" id=subtitle]]
+[[!template text="So, how do you use Emacs to publish music?" start="00:02:39.440" video="mainVideo" id=subtitle]]
+[[!template text="Well, for me, I needed" start="00:02:41.680" video="mainVideo" id=subtitle]]
+[[!template text="a couple of things." start="00:02:43.440" video="mainVideo" id=subtitle]]
+[[!template text="I needed to be able to audition and label unlabeled audio tracks." start="00:02:44.258" video="mainVideo" id=subtitle]]
+[[!template text="I have a lot of files that I don't know where they came from." start="00:02:47.564" video="mainVideo" id=subtitle]]
+[[!template text="I don't know what they are." start="00:02:50.320" video="mainVideo" id=subtitle]]
+[[!template text="I need to be able to listen to them," start="00:02:51.213" video="mainVideo" id=subtitle]]
+[[!template text="and I need to be able to add metadata to" start="00:02:53.840" video="mainVideo" id=subtitle]]
+[[!template text="whatever audio format it is" start="00:02:56.800" video="mainVideo" id=subtitle]]
+[[!template text="and rename the files based on that" start="00:02:58.480" video="mainVideo" id=subtitle]]
+[[!template text="metadata, potentially." start="00:03:00.800" video="mainVideo" id=subtitle]]
+[[!template text="And in the end, I wanted to take those" start="00:03:03.200" video="mainVideo" id=subtitle]]
+[[!template text="files and programmatically produce a web page" start="00:03:05.120" video="mainVideo" id=subtitle]]
+[[!template text="for people to consume." start="00:03:08.319" video="mainVideo" id=subtitle]]
+[[!template new="1" text="I found out that Emacs scores a hundred percent on all of" start="00:03:10.442" video="mainVideo" id=subtitle]]
+[[!template text="these requirements that I had for this," start="00:03:14.879" video="mainVideo" id=subtitle]]
+[[!template text="and a lot of that came from EMMS, the Emacs multimedia system." start="00:03:17.709" video="mainVideo" id=subtitle]]
+[[!template text="EMMS is great." start="00:03:22.640" video="mainVideo" id=subtitle]]
+[[!template text="If you haven't checked it out, please do." start="00:03:26.080" video="mainVideo" id=subtitle]]
+[[!template text="It's a little bit unintuitive," start="00:03:27.760" video="mainVideo" id=subtitle]]
+[[!template text="but once you get into it, you know it works." start="00:03:29.736" video="mainVideo" id=subtitle]]
+[[!template text="Basically, what EMMS gave me was" start="00:03:34.000" video="mainVideo" id=subtitle]]
+[[!template text="the ability to listen to the tracks," start="00:03:36.420" video="mainVideo" id=subtitle]]
+[[!template text="organize playlists." start="00:03:38.720" video="mainVideo" id=subtitle]]
+[[!template text="On top of that, it gave me" start="00:03:39.680" video="mainVideo" id=subtitle]]
+[[!template text="super-powered metadata authoring." start="00:03:41.280" video="mainVideo" id=subtitle]]
+[[!template new="1" text="I'm going to demonstrate that to you." start="00:03:42.959" video="mainVideo" id=subtitle]]
+[[!template text="So in order to do this," start="00:03:45.040" video="mainVideo" id=subtitle]]
+[[!template text="you have to require markable playlists," start="00:03:47.200" video="mainVideo" id=subtitle]]
+[[!template text="so (require 'emms-mark). I'm going to" start="00:03:50.879" video="mainVideo" id=subtitle]]
+[[!template text="go through, and I'm going to open the red..." start="00:03:54.879" video="mainVideo" id=subtitle]]
+[[!template text="I've got this. These files here." start="00:03:59.680" video="mainVideo" id=subtitle]]
+[[!template text="So you can see these files are mp3s." start="00:04:02.092" video="mainVideo" id=subtitle]]
+[[!template text="They're recorded on a digital recorder." start="00:04:04.480" video="mainVideo" id=subtitle]]
+[[!template text="If I had the choice, I would have a" start="00:04:07.599" video="mainVideo" id=subtitle]]
+[[!template text="recorder that used a different format," start="00:04:09.920" video="mainVideo" id=subtitle]]
+[[!template text="but so be it. I can mark all these files" start="00:04:12.319" video="mainVideo" id=subtitle]]
+[[!template text="and I can do EMMS add to .., and now they've been loaded into a playlist." start="00:04:14.640" video="mainVideo" id=subtitle]]
+[[!template text="So you can see the playlist here." start="00:04:27.040" video="mainVideo" id=subtitle]]
+[[!template text="There's some leftover files." start="00:04:28.698" video="mainVideo" id=subtitle]]
+[[!template new="1" text="So I've got these three files" start="00:04:30.400" video="mainVideo" id=subtitle]]
+[[!template text="in my playlist, and as you can see," start="00:04:31.771" video="mainVideo" id=subtitle]]
+[[!template text="it's just the file name, the path." start="00:04:33.361" video="mainVideo" id=subtitle]]
+[[!template text="I don't have any metadata associated with them." start="00:04:35.194" video="mainVideo" id=subtitle]]
+[[!template text="In this playlist, I can hit E," start="00:04:38.560" video="mainVideo" id=subtitle]]
+[[!template text="and it'll bring up a buffer showing" start="00:04:41.360" video="mainVideo" id=subtitle]]
+[[!template text="the tag information that I have." start="00:04:43.440" video="mainVideo" id=subtitle]]
+[[!template text="I could edit these here." start="00:04:47.360" video="mainVideo" id=subtitle]]
+[[!template text="I could edit them one at a time," start="00:04:49.840" video="mainVideo" id=subtitle]]
+[[!template text="but that's not really great. I want superpower metadata authoring." start="00:04:51.129" video="mainVideo" id=subtitle]]
+[[!template text="So, by marking them, I can then hit E," start="00:05:03.101" video="mainVideo" id=subtitle]]
+[[!template text="and I have all three of the tracks loaded up in this tags buffer." start="00:05:07.159" video="mainVideo" id=subtitle]]
+[[!template text="On top of that, I can do EMMS tag editor," start="00:05:12.639" video="mainVideo" id=subtitle]]
+[[!template text="set all, C-c C-r, and I want to set the artist." start="00:05:16.912" video="mainVideo" id=subtitle]]
+[[!template text="so these are some recordings of my family." start="00:05:22.840" video="mainVideo" id=subtitle]]
+[[!template text="So, Shangreaux, set all three of them." start="00:05:26.320" video="mainVideo" id=subtitle]]
+[[!template text="I want to set the album:" start="00:05:31.039" video="mainVideo" id=subtitle]]
+[[!template text="Spring Walk with Lap Harp." start="00:05:35.600" video="mainVideo" id=subtitle]]
+[[!template text="I want to set the year." start="00:05:40.160" video="mainVideo" id=subtitle]]
+[[!template text="And then I'm going to go ahead and put these in manually," start="00:05:45.520" video="mainVideo" id=subtitle]]
+[[!template text="but with the power of Emacs keyboard macros" start="00:05:53.759" video="mainVideo" id=subtitle]]
+[[!template text="and registers and so on. I could do this" start="00:05:56.759" video="mainVideo" id=subtitle]]
+[[!template text="programmatically as well," start="00:05:59.600" video="mainVideo" id=subtitle]]
+[[!template text="which would make it a lot easier" start="00:06:02.319" video="mainVideo" id=subtitle]]
+[[!template text="if I had much more than three files to do this with." start="00:06:03.818" video="mainVideo" id=subtitle]]
+[[!template text="Submit the changes with C-c C-c," start="00:06:07.440" video="mainVideo" id=subtitle]]
+[[!template text="and now we've got the playlist." start="00:06:09.919" video="mainVideo" id=subtitle]]
+[[!template text="You can see the artist and track number have been updated here." start="00:06:11.232" video="mainVideo" id=subtitle]]
+[[!template new="1" text="And then the final piece of this is that" start="00:06:15.039" video="mainVideo" id=subtitle]]
+[[!template text="if you look at this, you can see that" start="00:06:17.360" video="mainVideo" id=subtitle]]
+[[!template text="the file name is still the same." start="00:06:18.875" video="mainVideo" id=subtitle]]
+[[!template text="So if I were looking at the directory," start="00:06:20.479" video="mainVideo" id=subtitle]]
+[[!template text="I would still have this file name." start="00:06:22.639" video="mainVideo" id=subtitle]]
+[[!template text="When packaging these up for a release," start="00:06:24.560" video="mainVideo" id=subtitle]]
+[[!template text="for people to download," start="00:06:26.479" video="mainVideo" id=subtitle]]
+[[!template text="it's nice to be able to have that" start="00:06:28.000" video="mainVideo" id=subtitle]]
+[[!template text="filename reflect the track number" start="00:06:30.319" video="mainVideo" id=subtitle]]
+[[!template text="and the artist and so on." start="00:06:32.044" video="mainVideo" id=subtitle]]
+[[!template text="So there's another command," start="00:06:33.609" video="mainVideo" id=subtitle]]
+[[!template text="EMMS rename tag editor, rename," start="00:06:40.250" video="mainVideo" id=subtitle]]
+[[!template text="so it could be just capital R." start="00:06:42.970" video="mainVideo" id=subtitle]]
+[[!template text="I think I need to mark all of these," start="00:06:45.120" video="mainVideo" id=subtitle]]
+[[!template text="hit capital R, and then it's going to ask me to confirm" start="00:06:46.991" video="mainVideo" id=subtitle]]
+[[!template text="and say yes to all of them." start="00:06:50.000" video="mainVideo" id=subtitle]]
+[[!template text="And now, if you look in the--" start="00:06:54.400" video="mainVideo" id=subtitle]]
+[[!template text="whoops I have to update it--you'll see" start="00:07:02.720" video="mainVideo" id=subtitle]]
+[[!template text="it's been updated with the artist," start="00:07:04.319" video="mainVideo" id=subtitle]]
+[[!template text="track number and track name." start="00:07:06.319" video="mainVideo" id=subtitle]]
+[[!template text="This format is a format string," start="00:07:11.120" video="mainVideo" id=subtitle]]
+[[!template text="so it's customizable of course." start="00:07:14.432" video="mainVideo" id=subtitle]]
+[[!template text="I just decided to go with the default." start="00:07:17.360" video="mainVideo" id=subtitle]]
+[[!template new="1" text="So that's pretty great, this workflow just with EMMS." start="00:07:21.039" video="mainVideo" id=subtitle]]
+[[!template text="I didn't have to do anything. This is all there." start="00:07:24.948" video="mainVideo" id=subtitle]]
+[[!template text="It's all built in. It gave me exactly what I was looking for" start="00:07:27.585" video="mainVideo" id=subtitle]]
+[[!template text="in terms of being able to process a lot of raw audio files," start="00:07:31.673" video="mainVideo" id=subtitle]]
+[[!template text="add metadata to them, and get them ready for publishing." start="00:07:35.599" video="mainVideo" id=subtitle]]
+[[!template text="And this is for publishing for playback" start="00:07:39.280" video="mainVideo" id=subtitle]]
+[[!template text="in any media player. It'll be useful." start="00:07:41.599" video="mainVideo" id=subtitle]]
+[[!template text="Not just for the web page that I'm building." start="00:07:44.026" video="mainVideo" id=subtitle]]
+[[!template new="1" text="So the final part, of course, is to build the web page." start="00:07:47.639" video="mainVideo" id=subtitle]]
+[[!template text="Emacs makes authoring HTML trivial." start="00:07:51.440" video="mainVideo" id=subtitle]]
+[[!template text="As I was going through this," start="00:07:54.960" video="mainVideo" id=subtitle]]
+[[!template text="I wanted to challenge myself and just be, like," start="00:07:57.357" video="mainVideo" id=subtitle]]
+[[!template text="can I do this just all with Emacs? Can I just make this?" start="00:07:59.701" video="mainVideo" id=subtitle]]
+[[!template text="I don't need a... I don't need Ruby." start="00:08:03.520" video="mainVideo" id=subtitle]]
+[[!template text="I don't need Rails. I don't need Node." start="00:08:05.134" video="mainVideo" id=subtitle]]
+[[!template text="I don't need any of this other stuff." start="00:08:06.707" video="mainVideo" id=subtitle]]
+[[!template text="I have my tool right here. It's a fully..." start="00:08:08.528" video="mainVideo" id=subtitle]]
+[[!template text="It's a whole operating system, basically," start="00:08:10.560" video="mainVideo" id=subtitle]]
+[[!template text="plus programming languages." start="00:08:12.560" video="mainVideo" id=subtitle]]
+[[!template text="So the first thing I started with" start="00:08:15.039" video="mainVideo" id=subtitle]]
+[[!template text="was buffer scripting for manipulating text." start="00:08:17.171" video="mainVideo" id=subtitle]]
+[[!template text="That's kind of the easiest way to do it." start="00:08:19.919" video="mainVideo" id=subtitle]]
+[[!template text="Basically, anything you can do in a buffer," start="00:08:22.560" video="mainVideo" id=subtitle]]
+[[!template text="you can do programmatically with Elisp." start="00:08:24.692" video="mainVideo" id=subtitle]]
+[[!template text="So this might be a good example for beginners." start="00:08:27.834" video="mainVideo" id=subtitle]]
+[[!template text="If you haven't done any Elisp yet," start="00:08:30.217" video="mainVideo" id=subtitle]]
+[[!template text="a simple example is to create this div output here." start="00:08:33.919" video="mainVideo" id=subtitle]]
+[[!template text="You can use this with-temp-buffer," start="00:08:39.557" video="mainVideo" id=subtitle]]
+[[!template text="so basically creating an imaginary buffer." start="00:08:41.581" video="mainVideo" id=subtitle]]
+[[!template text="insert is just like typing," start="00:08:44.240" video="mainVideo" id=subtitle]]
+[[!template text="so you put strings in, you put new lines in," start="00:08:45.945" video="mainVideo" id=subtitle]]
+[[!template text="you can build some strings together." start="00:08:48.800" video="mainVideo" id=subtitle]]
+[[!template text="Here you can see I'm doing a random number," start="00:08:50.959" video="mainVideo" id=subtitle]]
+[[!template text="so every time I execute this," start="00:08:53.551" video="mainVideo" id=subtitle]]
+[[!template text="my content changes." start="00:08:55.360" video="mainVideo" id=subtitle]]
+[[!template text="I can generate dynamic content in HTML blocks with Elisp." start="00:08:56.790" video="mainVideo" id=subtitle]]
+[[!template new="1" text="For my web page builder, it's a little more complex." start="00:09:03.685" video="mainVideo" id=subtitle]]
+[[!template text="I'm pulling data out" start="00:09:06.493" video="mainVideo" id=subtitle]]
+[[!template text="using EMMS data structures," start="00:09:08.000" video="mainVideo" id=subtitle]]
+[[!template text="so it's pulling that out from the track data." start="00:09:12.080" video="mainVideo" id=subtitle]]
+[[!template text="And then I'm using some program to" start="00:09:16.080" video="mainVideo" id=subtitle]]
+[[!template text="generate list elements, so each track is" start="00:09:19.440" video="mainVideo" id=subtitle]]
+[[!template text="going to have the title and track number," start="00:09:21.440" video="mainVideo" id=subtitle]]
+[[!template text="and then a button for playing it," start="00:09:24.086" video="mainVideo" id=subtitle]]
+[[!template text="plus the source of the audio file," start="00:09:25.869" video="mainVideo" id=subtitle]]
+[[!template text="which will get added here." start="00:09:28.206" video="mainVideo" id=subtitle]]
+[[!template text="Right now, this is hard coded for Opus," start="00:09:30.480" video="mainVideo" id=subtitle]]
+[[!template text="so it won't work for my MP3s." start="00:09:32.485" video="mainVideo" id=subtitle]]
+[[!template text="I'm going to skip over snippets." start="00:09:37.200" video="mainVideo" id=subtitle]]
+[[!template text="Turns out format strings were good enough for me." start="00:09:38.867" video="mainVideo" id=subtitle]]
+[[!template text="Snippets could be useful," start="00:09:42.017" video="mainVideo" id=subtitle]]
+[[!template text="but format is super powerful," start="00:09:45.035" video="mainVideo" id=subtitle]]
+[[!template text="and I didn't really even need all that much power," start="00:09:47.267" video="mainVideo" id=subtitle]]
+[[!template text="basically, just doing string interpolation." start="00:09:49.839" video="mainVideo" id=subtitle]]
+[[!template text="So if you haven't seen format before," start="00:09:52.187" video="mainVideo" id=subtitle]]
+[[!template text="you basically put these control strings" start="00:09:54.560" video="mainVideo" id=subtitle]]
+[[!template text="or control characters inside of a string," start="00:09:56.720" video="mainVideo" id=subtitle]]
+[[!template text="and you can generate an output string that you want." start="00:09:59.120" video="mainVideo" id=subtitle]]
+[[!template text="So in my generator code, basically," start="00:10:05.040" video="mainVideo" id=subtitle]]
+[[!template text="it's down here," start="00:10:07.344" video="mainVideo" id=subtitle]]
+[[!template text="I'm calling format with this Bard Bivou(m)acs template," start="00:10:08.720" video="mainVideo" id=subtitle]]
+[[!template text="and that's basically a big string of HTML." start="00:10:12.800" video="mainVideo" id=subtitle]]
+[[!template text="It's just my whole page of HTML" start="00:10:17.491" video="mainVideo" id=subtitle]]
+[[!template text="with those control characters in just four places." start="00:10:21.200" video="mainVideo" id=subtitle]]
+[[!template text="One of them populates the track list." start="00:10:24.399" video="mainVideo" id=subtitle]]
+[[!template text="That's really the meat of the program." start="00:10:26.399" video="mainVideo" id=subtitle]]
+[[!template text="Again, this is a combination of using buffer scripting, using HTML mode," start="00:10:29.760" video="mainVideo" id=subtitle]]
+[[!template text="inserting text format strings," start="00:10:34.746" video="mainVideo" id=subtitle]]
+[[!template text="and then I can indent-region" start="00:10:37.279" video="mainVideo" id=subtitle]]
+[[!template text="so the HTML actually looks pretty" start="00:10:39.251" video="mainVideo" id=subtitle]]
+[[!template text="when it comes out of it as well." start="00:10:41.920" video="mainVideo" id=subtitle]]
+[[!template text="I will show that, just really quick actually." start="00:10:45.200" video="mainVideo" id=subtitle]]
+[[!template text="So you can see, this is the HTML that got generated." start="00:10:54.000" video="mainVideo" id=subtitle]]
+[[!template text="I've got my template." start="00:10:57.540" video="mainVideo" id=subtitle]]
+[[!template text="I inserted the title here, the style," start="00:10:58.800" video="mainVideo" id=subtitle]]
+[[!template text="the font was all inserted," start="00:11:02.193" video="mainVideo" id=subtitle]]
+[[!template text="and then this whole list of of tracks here." start="00:11:05.760" video="mainVideo" id=subtitle]]
+[[!template text="It's kind of messy to look at," start="00:11:07.920" video="mainVideo" id=subtitle]]
+[[!template text="but this track list, this whole div here," start="00:11:11.200" video="mainVideo" id=subtitle]]
+[[!template text="is all generated by my generator code, and it works. It's great." start="00:11:14.399" video="mainVideo" id=subtitle]]
+[[!template text="Okay, moving on." start="00:11:22.480" video="mainVideo" id=subtitle]]
+[[!template new="1" text="So the other thing was that as I was developing this," start="00:11:27.120" video="mainVideo" id=subtitle]]
+[[!template text="I decided to use Org Babel" start="00:11:30.945" video="mainVideo" id=subtitle]]
+[[!template text="and some of its features for multi-language things" start="00:11:32.547" video="mainVideo" id=subtitle]]
+[[!template text="because I needed to style it with CSS" start="00:11:35.588" video="mainVideo" id=subtitle]]
+[[!template text="and put actions in Javascript," start="00:11:37.839" video="mainVideo" id=subtitle]]
+[[!template text="and also I used SVG for authoring stuff." start="00:11:39.835" video="mainVideo" id=subtitle]]
+[[!template text="It was a little bit complicated." start="00:11:42.480" video="mainVideo" id=subtitle]]
+[[!template text="It probably would have been simpler" start="00:11:46.079" video="mainVideo" id=subtitle]]
+[[!template text="had I not used Org Babel," start="00:11:47.484" video="mainVideo" id=subtitle]]
+[[!template text="but it's also really fun." start="00:11:48.680" video="mainVideo" id=subtitle]]
+[[!template text="I think it's a cool, cool idea to use literate programming." start="00:11:49.894" video="mainVideo" id=subtitle]]
+[[!template text="My idea was to create HTML components." start="00:11:53.663" video="mainVideo" id=subtitle]]
+[[!template text="I could name it like this," start="00:11:57.001" video="mainVideo" id=subtitle]]
+[[!template text="put a format string inside it," start="00:11:59.519" video="mainVideo" id=subtitle]]
+[[!template text="and build a function" start="00:12:00.959" video="mainVideo" id=subtitle]]
+[[!template text="in Elisp to format it" start="00:12:02.800" video="mainVideo" id=subtitle]]
+[[!template text="and spit out the HTML that I want." start="00:12:04.302" video="mainVideo" id=subtitle]]
+[[!template text="By doing this, then," start="00:12:07.120" video="mainVideo" id=subtitle]]
+[[!template text="I can just change things in my Org file," start="00:12:09.581" video="mainVideo" id=subtitle]]
+[[!template text="which, not getting a whole lot of time to work on it," start="00:12:12.388" video="mainVideo" id=subtitle]]
+[[!template text="I can come back to it" start="00:12:14.814" video="mainVideo" id=subtitle]]
+[[!template text="and I have a lot of notes." start="00:12:16.615" video="mainVideo" id=subtitle]]
+[[!template text="I can kind of generate things as I'm going" start="00:12:19.335" video="mainVideo" id=subtitle]]
+[[!template text="and keep notes for myself, and keep the..." start="00:12:21.695" video="mainVideo" id=subtitle]]
+[[!template text="I don't know. It's cool." start="00:12:24.399" video="mainVideo" id=subtitle]]
+[[!template text="Literate programming is fun." start="00:12:25.308" video="mainVideo" id=subtitle]]
+[[!template text="So I don't need to" start="00:12:26.672" video="mainVideo" id=subtitle]]
+[[!template text="go into that too much, but you can see if" start="00:12:27.519" video="mainVideo" id=subtitle]]
+[[!template text="I execute this here," start="00:12:29.279" video="mainVideo" id=subtitle]]
+[[!template text="I get the the div that I want." start="00:12:31.040" video="mainVideo" id=subtitle]]
+[[!template text="It's a little bit funny." start="00:12:32.983" video="mainVideo" id=subtitle]]
+[[!template text="You'll see I have the string like this," start="00:12:34.013" video="mainVideo" id=subtitle]]
+[[!template text="the way that noweb expands, I can't do this on a single line." start="00:12:35.786" video="mainVideo" id=subtitle]]
+[[!template text="It looks funny when you do that," start="00:12:40.000" video="mainVideo" id=subtitle]]
+[[!template text="so that might be something to work out later." start="00:12:43.839" video="mainVideo" id=subtitle]]
+[[!template text="CSS blocks can either be tangled out" start="00:12:45.931" video="mainVideo" id=subtitle]]
+[[!template text="and referenced in the HTML source, or inlined." start="00:12:48.959" video="mainVideo" id=subtitle]]
+[[!template text="Here's an example I have of inlining it." start="00:12:52.639" video="mainVideo" id=subtitle]]
+[[!template text="So I've got my little CSS block named style," start="00:12:54.639" video="mainVideo" id=subtitle]]
+[[!template text="Javascript named script," start="00:12:57.609" video="mainVideo" id=subtitle]]
+[[!template text="and then I've got this HTML source block" start="00:13:00.320" video="mainVideo" id=subtitle]]
+[[!template text="with noweb expansion." start="00:13:03.040" video="mainVideo" id=subtitle]]
+[[!template text="These double angle brackets here" start="00:13:04.839" video="mainVideo" id=subtitle]]
+[[!template text="are where I'm going to expand" start="00:13:07.920" video="mainVideo" id=subtitle]]
+[[!template text="the block named style. I'm actually calling a function," start="00:13:09.396" video="mainVideo" id=subtitle]]
+[[!template text="so I want the result of the function here," start="00:13:12.639" video="mainVideo" id=subtitle]]
+[[!template text="and then the script will just get expanded here." start="00:13:14.737" video="mainVideo" id=subtitle]]
+[[!template text="So org-babel-expand-src-block," start="00:13:18.881" video="mainVideo" id=subtitle]]
+[[!template text="you can see what it looks like." start="00:13:22.959" video="mainVideo" id=subtitle]]
+[[!template text="I've got my style here. I've got my title." start="00:13:25.360" video="mainVideo" id=subtitle]]
+[[!template text="I've got that main content class I showed before," start="00:13:28.160" video="mainVideo" id=subtitle]]
+[[!template text="and the script as well. So that's kind of cool." start="00:13:31.279" video="mainVideo" id=subtitle]]
+[[!template text="I could just run org-babel-tangle and get my thing out" start="00:13:34.480" video="mainVideo" id=subtitle]]
+[[!template text="and just edit one file instead of multiple files." start="00:13:37.527" video="mainVideo" id=subtitle]]
+[[!template text="Not for everyone, but I thought it was kind of fun. All right." start="00:13:40.480" video="mainVideo" id=subtitle]]
+[[!template new="1" text="Oh, and the final thing is that in Emacs," start="00:13:46.455" video="mainVideo" id=subtitle]]
+[[!template text="you can author and view SVG." start="00:13:48.807" video="mainVideo" id=subtitle]]
+[[!template text="So this is just an Org. This SVG, I used to make the play and pause buttons." start="00:13:51.320" video="mainVideo" id=subtitle]]
+[[!template text="I didn't know this," start="00:13:58.297" video="mainVideo" id=subtitle]]
+[[!template text="but if you edit an SVG file," start="00:13:59.519" video="mainVideo" id=subtitle]]
+[[!template text="you can toggle back and forth" start="00:14:02.162" video="mainVideo" id=subtitle]]
+[[!template text="between the code and the image." start="00:14:08.800" video="mainVideo" id=subtitle]]
+[[!template text="It's pretty sweet. So I can iteratively" start="00:14:13.199" video="mainVideo" id=subtitle]]
+[[!template text="work through this because of how Emacs is." start="00:14:17.360" video="mainVideo" id=subtitle]]
+[[!template new="1" text="Final considerations here," start="00:14:20.560" video="mainVideo" id=subtitle]]
+[[!template text="like when doing this," start="00:14:24.959" video="mainVideo" id=subtitle]]
+[[!template text="I want it to be all free," start="00:14:26.247" video="mainVideo" id=subtitle]]
+[[!template text="so I want to use fonts that use a free license." start="00:14:27.606" video="mainVideo" id=subtitle]]
+[[!template text="I found GNU Unifont. It's kind of cool." start="00:14:30.079" video="mainVideo" id=subtitle]]
+[[!template text="The content license..." start="00:14:32.800" video="mainVideo" id=subtitle]]
+[[!template text="I chose Creative Commons Attribution ShareAlike," start="00:14:34.333" video="mainVideo" id=subtitle]]
+[[!template text="which is kind of like the GPL." start="00:14:37.600" video="mainVideo" id=subtitle]]
+[[!template text="Ideally, I could serve it with Emacs." start="00:14:39.920" video="mainVideo" id=subtitle]]
+[[!template text="I'd like to remove idiosyncrasy so other people can use it." start="00:14:42.663" video="mainVideo" id=subtitle]]
+[[!template text="It's pretty much just my tool right now." start="00:14:46.320" video="mainVideo" id=subtitle]]
+[[!template text="Not requiring the web browser..." start="00:14:48.720" video="mainVideo" id=subtitle]]
+[[!template text="I can ship playlists so that you can just click or link to a playlist" start="00:14:50.734" video="mainVideo" id=subtitle]]
+[[!template text="on your favorite player, even EMMS if you want," start="00:14:56.648" video="mainVideo" id=subtitle]]
+[[!template text="and then packing up those albums in like a ZIP or .tar file." start="00:15:00.068" video="mainVideo" id=subtitle]]
+[[!template new="1" text="So you can go to churls.world ." start="00:15:04.320" video="mainVideo" id=subtitle]]
+[[!template text="It just has a link to this album." start="00:15:08.639" video="mainVideo" id=subtitle]]
+[[!template text="I'll display it here in just a second." start="00:15:10.644" video="mainVideo" id=subtitle]]
+[[!template text="You can contact me. I'm shoshin on #emacs" start="00:15:14.000" video="mainVideo" id=subtitle]]
+[[!template text="in IRC and on sourcehut. You can email me:" start="00:15:17.519" video="mainVideo" id=subtitle]]
+[[!template text="grant@churls.world, personal, or" start="00:15:21.040" video="mainVideo" id=subtitle]]
+[[!template text="grant@unabridgedsoftware.com. All right, now." start="00:15:23.680" video="mainVideo" id=subtitle]]
+[[!template text="Let's see about this..." start="00:15:26.800" video="mainVideo" id=subtitle]]
+[[!template text="This is up online, so if you want to listen" start="00:15:32.079" video="mainVideo" id=subtitle]]
+[[!template text="to my college band's album from 20 years ago," start="00:15:34.316" video="mainVideo" id=subtitle]]
+[[!template text="here it is: Cassiopeia Basement Days." start="00:15:39.199" video="mainVideo" id=subtitle]]
+[[!template text="Whoops. I made this art in Krita." start="00:15:43.040" video="mainVideo" id=subtitle]]
+[[!template text="You can press play. You can skip around." start="00:15:46.887" video="mainVideo" id=subtitle]]
+[[!template text="I do have the playlist up here too." start="00:15:51.199" video="mainVideo" id=subtitle]]
+[[!template text="So yeah, thanks for listening." start="00:15:55.040" video="mainVideo" id=subtitle]]
+[[!template text="I hope you enjoyed it, and enjoy the rest of EmacsConf. Goodbye!" start="00:15:58.560" video="mainVideo" id=subtitle]]
<!-- transcript: 2020/subtitles/emacsconf-2020--05-bard-bivoumacs-building-a-bandcamp-like-page-for-an-album-of-music--questions--grant-shangreaux.vtt -->
<a name="transcript-questions"></a>
-# Transcript: Q&A
-
-So first question, what does Bard Bivou(m)acs mean? Good question. In
-one version of my talk, I spent too long explaining it, and decided to
-cut it out. It's basically a bad pun on band camp. A bivouac--I don't
-even know if I'm pronouncing that correctly--it's like a tent or a
-camp that you put up hastily, and a bard is a musician, of course.
-Yeah, I don't know. I like puns. I'm a dad. That's the best I could
-come up with. I'll probably find a different name for it but I liked
-that "bivoaucs," if you stick an m in there, it becomes Bivou(m)acs.
-It's kind of like editor macros for generating some HTML. Yes, it is
-confusing, chatting on IRC at the same time. Great question. (Amin:
-Grant, so right now, you're sharing your screen. Are you planning on
-showing something with it, or for example, should I maximize you?) I
-don't know. I can turn it off for now. Okay. (Amin: You can turn on
-the webcam.) Yeah, okay. (Amin: I'll maximize your webcam.) Okay,
-thanks. I'll get to the answer for my color theme here in a bit in
-IRC.
-
-(<a href="#qnaVideo" class="time-link">1:31</a>)
-Next question on the Etherpad, does this metadata workflow also
-support unsynchronized lyrics within ID3 tags, multi-line metadata? I
-don't know, actually. It's funny because I was trying out different
-things with metadata, and really the biggest thing was to figure out
-how to do mass tag editing. And that was like... It wasn't very
-intuitive, like I said, with EMMS. I think EMMS is really great, but
-its interface is huge. like if you do M-x and type emms, you get I
-don't know, 270-some candidates. There's a lot of functions going on.
-I basically found the features that I needed to get this workflow
-working. I would guess that you probably can do it, and if you don't,
-if you can't do it out of the box, I think you could script EMMS to do
-that. I'd like to know more, and I'm certainly going to be
-investigating it. I will try and post my findings somewhere online.
-
-(<a href="#qnaVideo" class="time-link">2:39</a>)
-Is it possible to import batch metadata? I'm not sure. I would
-guess yes is the answer. EMMS can connect to metadata services. I
-haven't done that because I was just using audio files that I created
-myself. I know that on the back end, it calls out to shell programs
-for tagging things. there's a lot of different options that can shell
-out too. I was using the the vorbis tools to tag the particular files
-I was working with. You can also use tiny tag, and there's some
-other... That might be the python library. I can't remember. There's
-two other libraries that I can shell out to for doing metadata.
-
-(<a href="#qnaVideo" class="time-link">3:24</a>)
-My current workflow for tagging music is to first apply replay
-gain in fubar 2000, fix egregious mistakes, use beats to apply
-metadata from music brains, or discogs, go over remaining albums with
-fubar 2000 again. Is there a chance textual tagging could allow doing
-it all in one program? Have I experimented with mass tag update
-queries? I have not. Again, I was just doing this workflow, taking raw
-files with no tags and doing that. I believe because it calls out to
-the programs in the back end, I'm sure you could work that out. I
-think EMMS would benefit from having something like that because we
-work with text, and being able to use Emacs as a front end for those
-updates would be really fantastic. So really, it's just a matter of
-writing the interface to the external tool.
-
-(<a href="#qnaVideo" class="time-link">4:22</a>)
-Is there a link to some info expanding philosophy of how to
-compensate musicians? No, I don't really have a lot of philosophy
-around that. I guess the first thing I could say would be something
-like a universal income. I feel like that would solve a lot of
-problems, if musicians could just be musicians and not have to worry
-about their pay. I will think about it more. This is one of my first
-forays into getting public with some of these ideas, so I will try to
-do more and let the community know.
-
-(<a href="#qnaVideo" class="time-link">4:54</a>)
-What Emacs theme am I using? Can't remember. It's one of the
-Kaolin themes. I think it was Aurora or or Bubble Gum, maybe, but the
-Kaolin themes are nice. I recommend them. Not using Doom Emacs, Doom
-mode line though. It's very pretty.
-
-(<a href="#qnaVideo" class="time-link">5:17</a>)
-SVG support built into Emacs? I'm using Emacs 27.1, and yes,
-SVG support is built in. I may have had to compile it with some Cairo
-support. I don't remember for sure. But yes, you can even take
-screenshots of your Emacs from within Emacs in SVG. It's pretty great.
-I don't know how much more time we have left for questions. That's
-most of the things on the etherpad. (Amin: I think we have like 10
-more minutes to catch up with the schedule. If there are more
-questions, feel free to answer them.) I'll start looking through IRC.
-(Amin: And keep an eye on the pad too.) Thank you all for listening
-and for enjoying the talk. I'm glad it turned out well. Awesome. Yeah,
-it's been fun so far. How did I manage? I can post a snippet of that,
-or actually I can share my screen, can't I... Okay. I actually have it
-up right here.
-
-(<a href="#qnaVideo" class="time-link">6:49</a>)
-So I think I got this from alphapapa, to be honest. I define
-screenshot-svg. It's an interactive command. Oh yeah, there's
-alphae.papa Okay, there we go. I would like to change this so that I
-can get it into the copy-paste buffer so I don't have to copy the file
-in, but I haven't really hacked on it yet.
-
-(<a href="#qnaVideo" class="time-link">7:20</a>)
-Okay, org heading colors. That might be a good question. I know, the
-presentation... Sorry, it's hard to think and type at the same time.
-Think and talk and type.
-
-(<a href="#qnaVideo" class="time-link">7:41</a>)
-So the presentation is just a normal org file, right, so I have my
-headers, and the author--you can even stick your email and other
-headers in there. But there's a package called org-tree-slide. Whoops,
-why is it not... I must have not required it. Good question. (Amin:
-Grant, can you try sharing your screen maybe?) Oh, is it not shared?
-I'm sorry. (Amin: Thank you.) There we go, should be coming up. (Amin:
-It's coming up. Yep, we see it.) Awesome. All right. Okay. I don't
-know why this isn't working. It was working. Okay, you want to see the
-screenshot. Whoops. Okay, I just took a screenshot. So, org-tree-slide.
-I don't know why it's not launching. I thought that I had required it,
-but I must not have. Maybe I'll try. Okay. So there we go. So
-org-tree-slide is a way that basically uses narrowing and some kind of
-font tricks to... it changes your titles or your metadata into this
-banner for the title here, and it automatically sets the faces for
-you. You can customize that, of course. And then, as you go through
-the Org file, you get these kind of nice animations and-- what's it
-called--breadcrumbs up at the top. So org-tree-slide. I highly
-recommend it. It's really nice because you can give your presentation
-and practice it, and while you're practicing it, you can edit things
-as well, because it's still just an Org document using narrowing, you
-know. It doesn't actually change anything. Definitely recommend
-org-tree-slide mode. Okay, let's see, what else...
-
-(<a href="#qnaVideo" class="time-link">10:29</a>)
-Share my screen to demo. Oh, that's the SVG. Let's see. Okay, so I
-don't know if you can see this now, but I'm actually viewing the SVG
-screenshot that I took with Emacs. See here's the source of it. So
-Emacs made that. And here's the image. It's cool because you can even
-do it again and again, and open more screenshots of screenshots. Yeah,
-definitely Emacsception. Fun stuff. Anything else in chat? Heading
-colors? Oh, yeah. I talked about the themes. This is another Kaolin
-theme. I think the one in the talk was maybe this one, Aurora. Oh,
-here, there's something funny when you start org-tree-slide with a
-different theme. This top header bar gets the faces from that previous
-theme. I have not figured out how to fix that yet. Did I have to
-compile to get the screenshot? I think maybe I did. Yes, if I'm
-remembering correctly. I got Emacs 27. I'm not on a Mac. I saw
-alphapapa's comment on reddit, and then I recompiled it with Cairo
-support. Yes.
-
-(<a href="#qnaVideo" class="time-link">12:18</a>)
-Okay, lots of good conversation on here. Yep, I have like one or two
-more minutes. Okay I guess while I'm here, I might as well say thank
-you to the organizers. I really appreciate everybody's work on this.
-It's fun to be a part of this community. I'm enjoying the other talks
-I've seen so far today, and I'm looking forward to to the rest. It's
-really interesting, just from being on Emacs in IRC for a few months,
-I've already connected with a lot of interesting people and have a lot
-of cool connections already. (Amin: Thank you for being a part of the
-community, Grant.) That's good to be here. I have another talk
-tomorrow as well. Oh, thanks for everyone in the Etherpad for putting
-more comments on these questions here and taking the notes. (Amin: I
-think that's about all the time that we have for the Q&A. Okay. Thank
-you again so much, Grant, for your awesome talk and for popping in for
-questions.) Yeah, thanks again for hosting. See you later. Cheers!
-
-<!-- /transcript -->
+# Transcript (questions)
+
+[[!template new="1" text="So first question, what does Bard Bivou(m)acs mean? Good question." start="00:00:03.360" video="qnaVideo" id=subtitle]]
+[[!template text="In one version of my talk, I spent too long explaining it," start="00:00:07.440" video="qnaVideo" id=subtitle]]
+[[!template text="and decided to cut it out." start="00:00:10.800" video="qnaVideo" id=subtitle]]
+[[!template text="It's basically a bad pun on band camp." start="00:00:14.559" video="qnaVideo" id=subtitle]]
+[[!template text="A bivouac--I don't even know if I'm" start="00:00:20.960" video="qnaVideo" id=subtitle]]
+[[!template text="pronouncing that correctly--it's like" start="00:00:22.480" video="qnaVideo" id=subtitle]]
+[[!template text="a tent or a camp that you put up hastily," start="00:00:25.199" video="qnaVideo" id=subtitle]]
+[[!template text="and a bard is a musician, of course." start="00:00:29.199" video="qnaVideo" id=subtitle]]
+[[!template text="Yeah, I don't know. I like puns. I'm a dad." start="00:00:32.239" video="qnaVideo" id=subtitle]]
+[[!template text="That's the best I could come up with." start="00:00:36.480" video="qnaVideo" id=subtitle]]
+[[!template text="I'll probably find a different name for" start="00:00:40.960" video="qnaVideo" id=subtitle]]
+[[!template text="it but I liked that &quot;bivoaucs,&quot;" start="00:00:42.879" video="qnaVideo" id=subtitle]]
+[[!template text="if you stick an m in there, it becomes Bivou(m)acs." start="00:00:45.039" video="qnaVideo" id=subtitle]]
+[[!template text="It's kind of like editor macros for generating some HTML." start="00:00:48.719" video="qnaVideo" id=subtitle]]
+[[!template text="Yes, it is confusing, chatting on IRC at the same time. Great question." start="00:01:00.160" video="qnaVideo" id=subtitle]]
+[[!template text="(Amin: Grant, so right now, you're sharing your screen." start="00:01:07.782" video="qnaVideo" id=subtitle]]
+[[!template text="Are you planning on showing something with it, or for example," start="00:01:11.398" video="qnaVideo" id=subtitle]]
+[[!template text="should I maximize you?)" start="00:01:14.479" video="qnaVideo" id=subtitle]]
+[[!template text="I don't know. I can turn it off for now. Okay." start="00:01:16.036" video="qnaVideo" id=subtitle]]
+[[!template text="(Amin: You can turn on the webcam.)" start="00:01:20.400" video="qnaVideo" id=subtitle]]
+[[!template text="Yeah, okay." start="00:01:22.299" video="qnaVideo" id=subtitle]]
+[[!template text="(Amin: I'll maximize your webcam.)" start="00:01:22.880" video="qnaVideo" id=subtitle]]
+[[!template text="Okay, thanks." start="00:01:25.694" video="qnaVideo" id=subtitle]]
+[[!template text="I'll get to the answer for my color" start="00:01:28.240" video="qnaVideo" id=subtitle]]
+[[!template text="theme here in a bit in IRC." start="00:01:30.000" video="qnaVideo" id=subtitle]]
+[[!template new="1" text="Next question on the Etherpad," start="00:01:31.360" video="qnaVideo" id=subtitle]]
+[[!template text="does this metadata workflow also support" start="00:01:35.105" video="qnaVideo" id=subtitle]]
+[[!template text="unsynchronized lyrics within ID3 tags," start="00:01:38.479" video="qnaVideo" id=subtitle]]
+[[!template text="multi-line metadata?" start="00:01:41.360" video="qnaVideo" id=subtitle]]
+[[!template text="I don't know, actually." start="00:01:42.720" video="qnaVideo" id=subtitle]]
+[[!template text="It's funny because I was trying out" start="00:01:45.920" video="qnaVideo" id=subtitle]]
+[[!template text="different things with metadata," start="00:01:47.920" video="qnaVideo" id=subtitle]]
+[[!template text="and really the biggest thing was to" start="00:01:49.280" video="qnaVideo" id=subtitle]]
+[[!template text="figure out how to do mass tag editing." start="00:01:52.640" video="qnaVideo" id=subtitle]]
+[[!template text="And that was like..." start="00:01:55.360" video="qnaVideo" id=subtitle]]
+[[!template text="It wasn't very intuitive, like I said, with EMMS." start="00:01:56.399" video="qnaVideo" id=subtitle]]
+[[!template text="I think EMMS is really great, but its interface is huge." start="00:01:59.600" video="qnaVideo" id=subtitle]]
+[[!template text="like if you do M-x and type emms, you get," start="00:02:03.040" video="qnaVideo" id=subtitle]]
+[[!template text="I don't know, 270-some candidates." start="00:02:07.040" video="qnaVideo" id=subtitle]]
+[[!template text="There's a lot of functions going on." start="00:02:10.160" video="qnaVideo" id=subtitle]]
+[[!template text="I basically found the features that I needed to get this workflow working." start="00:02:13.200" video="qnaVideo" id=subtitle]]
+[[!template text="I would guess that you probably can do it, and if you don't," start="00:02:18.879" video="qnaVideo" id=subtitle]]
+[[!template text="if you can't do it out of the box," start="00:02:22.160" video="qnaVideo" id=subtitle]]
+[[!template text="I think you could script EMMS to do that." start="00:02:24.026" video="qnaVideo" id=subtitle]]
+[[!template text="I'd like to know more, and I'm certainly going to be investigating it." start="00:02:28.160" video="qnaVideo" id=subtitle]]
+[[!template text="I will try and post my findings somewhere online." start="00:02:33.268" video="qnaVideo" id=subtitle]]
+[[!template new="1" text="Is it possible to import batch metadata?" start="00:02:39.519" video="qnaVideo" id=subtitle]]
+[[!template text="I'm not sure. I would guess yes is the answer." start="00:02:42.080" video="qnaVideo" id=subtitle]]
+[[!template text="EMMS can connect to metadata services." start="00:02:46.496" video="qnaVideo" id=subtitle]]
+[[!template text="I haven't done that because I was just" start="00:02:50.712" video="qnaVideo" id=subtitle]]
+[[!template text="using audio files that I created myself." start="00:02:53.040" video="qnaVideo" id=subtitle]]
+[[!template text="I know that on the back end, it calls out" start="00:02:56.959" video="qnaVideo" id=subtitle]]
+[[!template text="to shell programs for tagging things." start="00:03:00.165" video="qnaVideo" id=subtitle]]
+[[!template text="There's a lot of different options that can shell out too." start="00:03:02.319" video="qnaVideo" id=subtitle]]
+[[!template text="I was using the vorbis tools to tag the particular files I was working with." start="00:03:06.165" video="qnaVideo" id=subtitle]]
+[[!template text="You can also use tiny tag, and there's some other..." start="00:03:12.239" video="qnaVideo" id=subtitle]]
+[[!template text="That might be the python library." start="00:03:15.840" video="qnaVideo" id=subtitle]]
+[[!template text="I can't remember. There's two other libraries that I can shell out to" start="00:03:17.498" video="qnaVideo" id=subtitle]]
+[[!template text="for doing metadata." start="00:03:20.971" video="qnaVideo" id=subtitle]]
+[[!template new="1" text="My current workflow for tagging music is" start="00:03:24.400" video="qnaVideo" id=subtitle]]
+[[!template text="to first apply replay gain in fubar 2000," start="00:03:26.400" video="qnaVideo" id=subtitle]]
+[[!template text="fix egregious mistakes," start="00:03:29.040" video="qnaVideo" id=subtitle]]
+[[!template text="use beats to apply metadata from music brains or discogs," start="00:03:31.119" video="qnaVideo" id=subtitle]]
+[[!template text="go over remaining albums with fubar 2000 again." start="00:03:35.118" video="qnaVideo" id=subtitle]]
+[[!template text="Is there a chance textual tagging could allow doing it all in one program?" start="00:03:38.400" video="qnaVideo" id=subtitle]]
+[[!template text="Have I experimented with mass tag update queries?" start="00:03:43.280" video="qnaVideo" id=subtitle]]
+[[!template text="I have not." start="00:03:46.400" video="qnaVideo" id=subtitle]]
+[[!template text="Again, I was just doing this workflow," start="00:03:47.280" video="qnaVideo" id=subtitle]]
+[[!template text="taking raw files with no tags and doing that." start="00:03:49.120" video="qnaVideo" id=subtitle]]
+[[!template text="I believe because it calls out to" start="00:03:54.799" video="qnaVideo" id=subtitle]]
+[[!template text="the programs in the back end," start="00:03:58.159" video="qnaVideo" id=subtitle]]
+[[!template text="I'm sure you could work that out." start="00:04:00.811" video="qnaVideo" id=subtitle]]
+[[!template text="I think EMMS would benefit from" start="00:04:03.040" video="qnaVideo" id=subtitle]]
+[[!template text="having something like that because" start="00:04:06.159" video="qnaVideo" id=subtitle]]
+[[!template text="we work with text, and being able" start="00:04:08.239" video="qnaVideo" id=subtitle]]
+[[!template text="to use Emacs as a front end for those" start="00:04:11.280" video="qnaVideo" id=subtitle]]
+[[!template text="updates would be really fantastic." start="00:04:14.000" video="qnaVideo" id=subtitle]]
+[[!template text="So really, it's just a matter of" start="00:04:16.647" video="qnaVideo" id=subtitle]]
+[[!template text="writing the interface to the external tool." start="00:04:18.560" video="qnaVideo" id=subtitle]]
+[[!template new="1" text="Is there a link to some info expanding" start="00:04:22.720" video="qnaVideo" id=subtitle]]
+[[!template text="philosophy of how to compensate musicians?" start="00:04:24.560" video="qnaVideo" id=subtitle]]
+[[!template text="No, I don't really have a lot of" start="00:04:28.479" video="qnaVideo" id=subtitle]]
+[[!template text="philosophy around that." start="00:04:31.199" video="qnaVideo" id=subtitle]]
+[[!template text="I guess the first thing I could say would be" start="00:04:32.052" video="qnaVideo" id=subtitle]]
+[[!template text="something like a universal income." start="00:04:33.919" video="qnaVideo" id=subtitle]]
+[[!template text="I feel like that would solve a lot of problems," start="00:04:36.378" video="qnaVideo" id=subtitle]]
+[[!template text="if musicians could just be musicians" start="00:04:38.960" video="qnaVideo" id=subtitle]]
+[[!template text="and not have to worry about their pay." start="00:04:41.772" video="qnaVideo" id=subtitle]]
+[[!template text="I will think about it more." start="00:04:44.742" video="qnaVideo" id=subtitle]]
+[[!template text="This is one of my first forays into getting public with some of these ideas," start="00:04:46.240" video="qnaVideo" id=subtitle]]
+[[!template text="so I will try to do more" start="00:04:52.015" video="qnaVideo" id=subtitle]]
+[[!template text="and let the community know." start="00:04:53.360" video="qnaVideo" id=subtitle]]
+[[!template new="1" text="What Emacs theme am I using?" start="00:04:55.187" video="qnaVideo" id=subtitle]]
+[[!template text="Can't remember. It's one of the Kaolin themes." start="00:04:57.199" video="qnaVideo" id=subtitle]]
+[[!template text="I think it was Aurora" start="00:05:02.240" video="qnaVideo" id=subtitle]]
+[[!template text="or Bubble Gum, maybe, but the" start="00:05:05.680" video="qnaVideo" id=subtitle]]
+[[!template text="Kaolin themes are nice. I recommend them." start="00:05:09.120" video="qnaVideo" id=subtitle]]
+[[!template text="Not using Doom Emacs, Doom mode line though." start="00:05:12.880" video="qnaVideo" id=subtitle]]
+[[!template text="It's very pretty." start="00:05:16.000" video="qnaVideo" id=subtitle]]
+[[!template new="1" text="SVG support built into Emacs?" start="00:05:17.296" video="qnaVideo" id=subtitle]]
+[[!template text="I'm using Emacs 27.1, and yes, SVG support is built in." start="00:05:20.080" video="qnaVideo" id=subtitle]]
+[[!template text="I may have had to compile it with some Cairo support." start="00:05:25.520" video="qnaVideo" id=subtitle]]
+[[!template text="I don't remember for sure." start="00:05:30.639" video="qnaVideo" id=subtitle]]
+[[!template text="But yes, you can even take screenshots of your Emacs from within Emacs, in SVG." start="00:05:33.840" video="qnaVideo" id=subtitle]]
+[[!template text="It's pretty great." start="00:05:41.199" video="qnaVideo" id=subtitle]]
+[[!template text="I don't know how much more time we have" start="00:05:44.320" video="qnaVideo" id=subtitle]]
+[[!template text="left for questions." start="00:05:46.160" video="qnaVideo" id=subtitle]]
+[[!template text="That's most of the things on the etherpad." start="00:05:48.000" video="qnaVideo" id=subtitle]]
+[[!template text="(Amin: I think we have like 10 more minutes to" start="00:05:52.639" video="qnaVideo" id=subtitle]]
+[[!template text="catch up with the schedule." start="00:05:54.320" video="qnaVideo" id=subtitle]]
+[[!template text="If there are more questions," start="00:05:56.479" video="qnaVideo" id=subtitle]]
+[[!template text="feel free to answer them.)" start="00:05:59.120" video="qnaVideo" id=subtitle]]
+[[!template text="I'll start looking through IRC." start="00:06:01.919" video="qnaVideo" id=subtitle]]
+[[!template text="(Amin: And keep an eye on the pad too.)" start="00:06:05.440" video="qnaVideo" id=subtitle]]
+[[!template text="Thank you all for listening" start="00:06:09.680" video="qnaVideo" id=subtitle]]
+[[!template text="and for enjoying the talk. I'm glad it turned out well." start="00:06:12.688" video="qnaVideo" id=subtitle]]
+[[!template text="Awesome. Yeah, it's been fun so far." start="00:06:19.440" video="qnaVideo" id=subtitle]]
+[[!template text="How did I manage? I can post a snippet of that," start="00:06:36.000" video="qnaVideo" id=subtitle]]
+[[!template text="or actually I can share my screen, can't I..." start="00:06:40.015" video="qnaVideo" id=subtitle]]
+[[!template text="Okay. I actually have it up right here." start="00:06:46.319" video="qnaVideo" id=subtitle]]
+[[!template new="1" text="So I think I got this from alphapapa, to be honest." start="00:06:49.599" video="qnaVideo" id=subtitle]]
+[[!template text="I define screenshot-svg." start="00:06:53.440" video="qnaVideo" id=subtitle]]
+[[!template text="It's an interactive command. Oh yeah, there's alphapapa." start="00:07:00.960" video="qnaVideo" id=subtitle]]
+[[!template text="Okay, there we go." start="00:07:04.960" video="qnaVideo" id=subtitle]]
+[[!template text="I would like to change this so that I can get it into the copy-paste buffer" start="00:07:08.560" video="qnaVideo" id=subtitle]]
+[[!template text="so I don't have to copy the file in, but I haven't really hacked on it yet." start="00:07:13.249" video="qnaVideo" id=subtitle]]
+[[!template new="1" text="Okay, org heading colors." start="00:07:20.560" video="qnaVideo" id=subtitle]]
+[[!template text="That might be a good question." start="00:07:24.400" video="qnaVideo" id=subtitle]]
+[[!template text="I know, the presentation..." start="00:07:26.319" video="qnaVideo" id=subtitle]]
+[[!template text="Sorry, it's hard to think and type at" start="00:07:33.199" video="qnaVideo" id=subtitle]]
+[[!template text="the same time." start="00:07:35.520" video="qnaVideo" id=subtitle]]
+[[!template text="Think and talk and type." start="00:07:36.479" video="qnaVideo" id=subtitle]]
+[[!template new="1" text="So the presentation is just a" start="00:07:41.680" video="qnaVideo" id=subtitle]]
+[[!template text="normal org file, right, so I have my headers," start="00:07:45.120" video="qnaVideo" id=subtitle]]
+[[!template text="and the author--you can even stick" start="00:07:48.960" video="qnaVideo" id=subtitle]]
+[[!template text="your email and other headers in there." start="00:07:50.466" video="qnaVideo" id=subtitle]]
+[[!template text="But there's a package called org-tree-slide." start="00:07:52.560" video="qnaVideo" id=subtitle]]
+[[!template text="Whoops, why is it not..." start="00:07:57.599" video="qnaVideo" id=subtitle]]
+[[!template text="I must have not required it." start="00:08:01.440" video="qnaVideo" id=subtitle]]
+[[!template text="Good question." start="00:08:03.618" video="qnaVideo" id=subtitle]]
+[[!template text="(Amin: Grant, can you try sharing your screen maybe?)" start="00:08:04.594" video="qnaVideo" id=subtitle]]
+[[!template text="Oh, is it not shared? I'm sorry." start="00:08:09.599" video="qnaVideo" id=subtitle]]
+[[!template text="(Amin: Thank you.)" start="00:08:13.199" video="qnaVideo" id=subtitle]]
+[[!template text="There we go, should be coming up." start="00:08:17.039" video="qnaVideo" id=subtitle]]
+[[!template text="(Amin: It's coming up. Yep, we see it.)" start="00:08:22.000" video="qnaVideo" id=subtitle]]
+[[!template text="Awesome. All right. Okay. I don't know why this isn't working." start="00:08:26.720" video="qnaVideo" id=subtitle]]
+[[!template text="It was working." start="00:08:38.800" video="qnaVideo" id=subtitle]]
+[[!template text="Okay, you want to see the screenshot." start="00:08:56.080" video="qnaVideo" id=subtitle]]
+[[!template text="Whoops. Okay, I just took a screenshot." start="00:09:01.839" video="qnaVideo" id=subtitle]]
+[[!template text="So, org-tree-slide." start="00:09:06.839" video="qnaVideo" id=subtitle]]
+[[!template text="I don't know why it's not launching." start="00:09:09.760" video="qnaVideo" id=subtitle]]
+[[!template text="I thought that I had required it, but I must not have." start="00:09:12.800" video="qnaVideo" id=subtitle]]
+[[!template text="Maybe I'll try. Okay." start="00:09:16.000" video="qnaVideo" id=subtitle]]
+[[!template text="So there we go. So org-tree-slide is a way that basically uses" start="00:09:30.959" video="qnaVideo" id=subtitle]]
+[[!template text="narrowing and some kind of font tricks to..." start="00:09:34.560" video="qnaVideo" id=subtitle]]
+[[!template text="it changes your titles or your metadata into" start="00:09:38.880" video="qnaVideo" id=subtitle]]
+[[!template text="this banner for the title here," start="00:09:42.640" video="qnaVideo" id=subtitle]]
+[[!template text="and it automatically sets the faces for you." start="00:09:44.560" video="qnaVideo" id=subtitle]]
+[[!template text="You can customize that, of course. And then, as you go through the Org file," start="00:09:46.560" video="qnaVideo" id=subtitle]]
+[[!template text="you get these kind of nice animations and--" start="00:09:53.938" video="qnaVideo" id=subtitle]]
+[[!template text="what's it called--breadcrumbs up at the top." start="00:09:59.600" video="qnaVideo" id=subtitle]]
+[[!template text="So org-tree-slide. I highly recommend it." start="00:10:04.160" video="qnaVideo" id=subtitle]]
+[[!template text="It's really nice because you can give your presentation and practice it," start="00:10:06.399" video="qnaVideo" id=subtitle]]
+[[!template text="and while you're practicing it, you can edit things as well," start="00:10:10.024" video="qnaVideo" id=subtitle]]
+[[!template text="because it's still just an Org document using narrowing, you know." start="00:10:12.560" video="qnaVideo" id=subtitle]]
+[[!template text="It doesn't actually change anything." start="00:10:16.160" video="qnaVideo" id=subtitle]]
+[[!template text="Definitely recommend org-tree-slide mode." start="00:10:20.079" video="qnaVideo" id=subtitle]]
+[[!template text="Okay, let's see, what else..." start="00:10:24.079" video="qnaVideo" id=subtitle]]
+[[!template new="1" text="Share my screen to demo. Oh, that's the SVG." start="00:10:29.760" video="qnaVideo" id=subtitle]]
+[[!template text="Let's see." start="00:10:32.880" video="qnaVideo" id=subtitle]]
+[[!template text="Okay, so I don't know if you can see this now," start="00:10:39.519" video="qnaVideo" id=subtitle]]
+[[!template text="but I'm actually viewing the SVG screenshot that I took with Emacs." start="00:10:41.279" video="qnaVideo" id=subtitle]]
+[[!template text="See here's the source of it. So Emacs made that." start="00:10:49.360" video="qnaVideo" id=subtitle]]
+[[!template text="And here's the image." start="00:10:52.720" video="qnaVideo" id=subtitle]]
+[[!template text="It's cool because you can even do it again and again," start="00:10:58.160" video="qnaVideo" id=subtitle]]
+[[!template text="and open more screenshots of screenshots." start="00:11:01.570" video="qnaVideo" id=subtitle]]
+[[!template text="Yeah, definitely Emacsception. Fun stuff." start="00:11:05.360" video="qnaVideo" id=subtitle]]
+[[!template text="Anything else in chat?" start="00:11:14.880" video="qnaVideo" id=subtitle]]
+[[!template text="Heading colors? Oh, yeah. I talked about the" start="00:11:18.079" video="qnaVideo" id=subtitle]]
+[[!template text="themes. This is another Kaolin theme." start="00:11:20.160" video="qnaVideo" id=subtitle]]
+[[!template text="I think the one in the talk was maybe this one, Aurora." start="00:11:24.800" video="qnaVideo" id=subtitle]]
+[[!template text="Oh, here, there's something funny when" start="00:11:34.959" video="qnaVideo" id=subtitle]]
+[[!template text="you start org-tree-slide" start="00:11:36.560" video="qnaVideo" id=subtitle]]
+[[!template text="with a different theme." start="00:11:37.785" video="qnaVideo" id=subtitle]]
+[[!template text="This top header bar gets the faces" start="00:11:38.880" video="qnaVideo" id=subtitle]]
+[[!template text="from that previous theme." start="00:11:41.823" video="qnaVideo" id=subtitle]]
+[[!template text="I have not figured out how to fix that yet." start="00:11:43.395" video="qnaVideo" id=subtitle]]
+[[!template text="Did I have to compile to get the" start="00:11:47.760" video="qnaVideo" id=subtitle]]
+[[!template text="screenshot? I think maybe I did." start="00:11:49.200" video="qnaVideo" id=subtitle]]
+[[!template text="Yes, if I'm remembering correctly." start="00:11:51.120" video="qnaVideo" id=subtitle]]
+[[!template text="I got Emacs 27. I'm not on a Mac." start="00:11:54.480" video="qnaVideo" id=subtitle]]
+[[!template text="I saw alphapapa's comment on reddit," start="00:11:58.399" video="qnaVideo" id=subtitle]]
+[[!template text="and then I recompiled it with Cairo support." start="00:12:01.424" video="qnaVideo" id=subtitle]]
+[[!template text="Yes." start="00:12:08.839" video="qnaVideo" id=subtitle]]
+[[!template new="1" text="Okay, lots of good conversation on here." start="00:12:18.000" video="qnaVideo" id=subtitle]]
+[[!template text="Yep, I have like one or two more minutes." start="00:12:21.920" video="qnaVideo" id=subtitle]]
+[[!template text="Okay. I guess while I'm here, I might as" start="00:12:25.839" video="qnaVideo" id=subtitle]]
+[[!template text="well say thank you to the organizers." start="00:12:34.240" video="qnaVideo" id=subtitle]]
+[[!template text="I really appreciate everybody's work on this." start="00:12:36.993" video="qnaVideo" id=subtitle]]
+[[!template text="It's fun to be a part of this community." start="00:12:40.320" video="qnaVideo" id=subtitle]]
+[[!template text="I'm enjoying the other talks I've seen so far today," start="00:12:42.720" video="qnaVideo" id=subtitle]]
+[[!template text="and I'm looking forward to to the rest." start="00:12:45.929" video="qnaVideo" id=subtitle]]
+[[!template text="It's really interesting, just from being on Emacs in IRC for a few months," start="00:12:48.560" video="qnaVideo" id=subtitle]]
+[[!template text="I've already connected" start="00:12:53.570" video="qnaVideo" id=subtitle]]
+[[!template text="with a lot of interesting people" start="00:12:54.720" video="qnaVideo" id=subtitle]]
+[[!template text="and have a lot of cool connections already." start="00:12:56.959" video="qnaVideo" id=subtitle]]
+[[!template text="(Amin: Thank you for being a part of the community, Grant.)" start="00:13:04.079" video="qnaVideo" id=subtitle]]
+[[!template text="That's good to be here." start="00:13:07.519" video="qnaVideo" id=subtitle]]
+[[!template text="I have another talk tomorrow as well." start="00:13:08.883" video="qnaVideo" id=subtitle]]
+[[!template text="Oh, thanks for everyone in the Etherpad" start="00:13:16.560" video="qnaVideo" id=subtitle]]
+[[!template text="for putting more comments on these questions here" start="00:13:18.399" video="qnaVideo" id=subtitle]]
+[[!template text="and taking the notes." start="00:13:21.680" video="qnaVideo" id=subtitle]]
+[[!template text="(Amin: I think that's about all the time" start="00:13:29.360" video="qnaVideo" id=subtitle]]
+[[!template text="that we have for the Q&A." start="00:13:31.680" video="qnaVideo" id=subtitle]]
+[[!template text="Okay. Thank you again so much, Grant," start="00:13:33.040" video="qnaVideo" id=subtitle]]
+[[!template text="for your awesome talk and for popping in for questions.)" start="00:13:36.720" video="qnaVideo" id=subtitle]]
+[[!template text="Yeah, thanks again for hosting. See you later. Cheers!" start="00:13:39.920" video="qnaVideo" id=subtitle]]
diff --git a/2020/subtitles/emacsconf-2020--05-bard-bivoumacs-building-a-bandcamp-like-page-for-an-album-of-music--grant-shangreaux.vtt b/2020/subtitles/emacsconf-2020--05-bard-bivoumacs-building-a-bandcamp-like-page-for-an-album-of-music--grant-shangreaux.vtt
index debfa46c..24e598d5 100644
--- a/2020/subtitles/emacsconf-2020--05-bard-bivoumacs-building-a-bandcamp-like-page-for-an-album-of-music--grant-shangreaux.vtt
+++ b/2020/subtitles/emacsconf-2020--05-bard-bivoumacs-building-a-bandcamp-like-page-for-an-album-of-music--grant-shangreaux.vtt
@@ -3,98 +3,79 @@ WEBVTT
00:00:01.360 --> 00:00:04.480
Hello, my name is Grant Shangreaux.
-00:00:04.480 --> 00:00:07.279
+00:00:04.480 --> 00:00:09.519
This is my talk titled Bard Bivou(m)acs:
+Publishing Music with Emacs.
-00:00:07.279 --> 00:00:07.919
-Publishing Music
+00:00:09.519 --> 00:00:14.400
+I'm a software developer with Unabridged
+Software in Lincoln, Nebraska.
-00:00:07.919 --> 00:00:10.719
-with Emacs. I'm a software
-
-00:00:10.719 --> 00:00:12.799
-developer with Unabridged Software in
-
-00:00:12.799 --> 00:00:14.400
-Lincoln, Nebraska.
-
-00:00:14.400 --> 00:00:16.800
+00:00:14.400 --> 00:00:18.720
Long time Emacs user, relatively new
-
-00:00:16.800 --> 00:00:18.720
Emacs hacker.
-00:00:18.720 --> 00:00:20.480
-Hopefully, I'll be able to show
+00:00:18.720 --> 00:00:22.487
+Hopefully, I'll be able to show you
+my workflow,
-00:00:20.480 --> 00:00:22.960
-you my workflow, with
+00:00:22.487 --> 00:00:30.480
+with how I publish music with Emacs.
-00:00:22.960 --> 00:00:30.480
-how I publish music with Emacs.
+00:00:30.480 --> 00:00:35.520
+All right. So as a musician, I would
+like to publish my music online.
-00:00:30.480 --> 00:00:33.440
-All right. So as a musician, I would like
+00:00:35.520 --> 00:00:39.040
+I could publish with popular online
+music services,
-00:00:33.440 --> 00:00:35.520
-to publish my music online.
+00:00:39.040 --> 00:00:41.061
+but I'm more of a DIY-type,
-00:00:35.520 --> 00:00:37.200
-I could publish with popular
-
-00:00:37.200 --> 00:00:39.040
-online music services,
-
-00:00:39.040 --> 00:00:42.000
-but I'm more of a DIY-type, so I chose to
-
-00:00:42.000 --> 00:00:44.719
-go ahead and publish with Emacs.
+00:00:41.061 --> 00:00:44.719
+so I chose to go ahead and
+publish with Emacs.
00:00:44.719 --> 00:00:48.160
What's the motivation behind this?
-00:00:48.160 --> 00:00:49.760
+00:00:48.160 --> 00:00:51.600
A lot of it comes down to some
-
-00:00:49.760 --> 00:00:51.600
fundamental freedoms
-00:00:51.600 --> 00:00:54.960
+00:00:51.600 --> 00:00:57.178
that Emacs and GNU software
+represent to me,
-00:00:54.960 --> 00:00:59.120
-represent to me, as well as my
-
-00:00:59.120 --> 00:01:01.840
-ideas on culture and my background.
+00:00:57.178 --> 00:01:01.840
+as well as my ideas on culture and my
+background.
00:01:01.840 --> 00:01:04.080
-I don't believe that music is a consumer good.
-
-00:01:04.080 --> 00:01:06.080
-It's a form of knowledge,
+I don't believe that music is
+a consumer good.
-00:01:06.080 --> 00:01:08.320
-like an algorithm.
+00:01:04.080 --> 00:01:08.320
+It's a form of knowledge, like an
+algorithm.
-00:01:08.320 --> 00:01:10.479
-And it's just such a part of
+00:01:08.320 --> 00:01:11.036
+And it's just such a part of culture,
-00:01:10.479 --> 00:01:13.119
-culture, like in tribal cultures, music
+00:01:11.036 --> 00:01:12.780
+like in tribal cultures,
-00:01:13.119 --> 00:01:16.640
-was seen as a gift from the cosmos or
+00:01:12.780 --> 00:01:17.405
+music was seen as a gift from the cosmos
+or the gods.
-00:01:16.640 --> 00:01:18.000
-the gods. It was
+00:01:17.405 --> 00:01:20.288
+It was a gift maybe through an
+individual vessel,
-00:01:18.000 --> 00:01:19.920
-a gift maybe through an individual
-
-00:01:19.920 --> 00:01:21.920
-vessel, but was shared with the people
+00:01:20.288 --> 00:01:21.920
+but was shared with the people
00:01:21.920 --> 00:01:23.520
and shared with everyone,
@@ -108,11 +89,12 @@ So to me, music is something that
00:01:29.840 --> 00:01:31.520
should be shared and should be
-00:01:31.520 --> 00:01:34.640
-freely enjoyed by everyone. Of course,
+00:01:31.520 --> 00:01:33.818
+freely enjoyed by everyone.
-00:01:34.640 --> 00:01:36.560
-artists should be compensated as well,
+00:01:33.818 --> 00:01:36.560
+Of course, artists should be
+compensated as well,
00:01:36.560 --> 00:01:39.040
but that's a whole different topic.
@@ -120,41 +102,43 @@ but that's a whole different topic.
00:01:39.040 --> 00:01:41.040
So when I want to share my music,
-00:01:41.040 --> 00:01:42.720
+00:01:41.040 --> 00:01:43.520
I want to do it without impacting
-
-00:01:42.720 --> 00:01:43.520
anyone's freedom.
-00:01:43.520 --> 00:01:45.680
-Using GNU software like Emacs is a
+00:01:43.520 --> 00:01:45.425
+Using GNU software like Emacs
-00:01:45.680 --> 00:01:49.200
-good way that I can ensure that
+00:01:45.425 --> 00:01:49.200
+is a good way that I can ensure that
-00:01:49.200 --> 00:01:52.840
-I won't be requiring people to
+00:01:49.200 --> 00:01:52.597
+I won't be requiring people
-00:01:52.840 --> 00:01:55.840
-sign away their freedoms for anything.
+00:01:52.597 --> 00:01:55.840
+to sign away their freedoms for
+anything.
-00:01:55.840 --> 00:01:57.119
-There's a lot more I could say about
+00:01:55.840 --> 00:01:57.367
+There's a lot more I could say
+about this
-00:01:57.119 --> 00:01:58.799
-this but I don't have time.
+00:01:57.367 --> 00:01:58.799
+but I don't have time.
00:01:58.799 --> 00:02:03.439
-Feel free to reach out to me by email or IRC.
+Feel free to reach out to me by
+email or IRC.
00:02:03.439 --> 00:02:06.479
Part of the motivation for me,
-00:02:06.479 --> 00:02:08.239
+00:02:06.479 --> 00:02:08.775
personally, is that Emacs is super
+magical.
-00:02:08.239 --> 00:02:10.720
-magical. It's an all-in-one solution.
+00:02:08.775 --> 00:02:10.720
+It's an all-in-one solution.
00:02:10.720 --> 00:02:12.720
Like I said, the GNU software aligns with
@@ -162,25 +146,22 @@ Like I said, the GNU software aligns with
00:02:12.720 --> 00:02:14.480
Creative Commons' ideas.
-00:02:14.480 --> 00:02:16.800
-I can do file management. I can author
+00:02:14.480 --> 00:02:16.067
+I can do file management.
-00:02:16.800 --> 00:02:18.879
-HTML, all the web stuff I need even,
+00:02:16.067 --> 00:02:20.239
+I can author HTML, all the web stuff
+I need even, literate-style.
-00:02:18.879 --> 00:02:20.239
-literate-style.
+00:02:20.239 --> 00:02:22.171
+I can handle media and metadata.
-00:02:20.239 --> 00:02:22.640
-I can handle media and metadata. I've got
+00:02:22.171 --> 00:02:24.640
+I've got version control, remote server
+access...
-00:02:22.640 --> 00:02:24.640
-version control, remote server access...
-
-00:02:24.640 --> 00:02:26.800
+00:02:24.640 --> 00:02:28.080
All the tools I need are right under my
-
-00:02:26.800 --> 00:02:28.080
fingertips with this tool
00:02:28.080 --> 00:02:30.000
@@ -204,23 +185,22 @@ So, how do you use Emacs to publish music?
00:02:41.680 --> 00:02:43.440
Well, for me, I needed
-00:02:43.440 --> 00:02:45.120
-a couple of things. I needed to be able
+00:02:43.440 --> 00:02:44.258
+a couple of things.
-00:02:45.120 --> 00:02:46.480
-to audition and label
+00:02:44.258 --> 00:02:47.564
+I needed to be able to audition and
+label unlabeled audio tracks.
-00:02:46.480 --> 00:02:48.319
-unlabeled audio tracks. I have a lot of
+00:02:47.564 --> 00:02:50.320
+I have a lot of files that
+I don't know where they came from.
-00:02:48.319 --> 00:02:50.000
-files that I don't know where they
+00:02:50.320 --> 00:02:51.213
+I don't know what they are.
-00:02:50.000 --> 00:02:51.280
-came from. I don't know what they are. I
-
-00:02:51.280 --> 00:02:53.840
-need to be able to listen to them,
+00:02:51.213 --> 00:02:53.840
+I need to be able to listen to them,
00:02:53.840 --> 00:02:56.800
and I need to be able to add metadata to
@@ -240,20 +220,19 @@ And in the end, I wanted to take those
00:03:05.120 --> 00:03:08.319
files and programmatically produce a web page
-00:03:08.319 --> 00:03:11.920
-for people to consume. I found out that
-
-00:03:11.920 --> 00:03:14.879
-Emacs scores a hundred percent on all of
+00:03:08.319 --> 00:03:10.442
+for people to consume.
-00:03:14.879 --> 00:03:18.000
-these requirements that I had for this, and
+00:03:10.442 --> 00:03:14.879
+I found out that Emacs scores a hundred
+percent on all of
-00:03:18.000 --> 00:03:20.720
-a lot of that came from EMMS, the Emacs
+00:03:14.879 --> 00:03:17.709
+these requirements that I had for this,
-00:03:20.720 --> 00:03:22.640
-multimedia system.
+00:03:17.709 --> 00:03:22.640
+and a lot of that came from EMMS, the
+Emacs multimedia system.
00:03:22.640 --> 00:03:26.080
EMMS is great.
@@ -261,17 +240,18 @@ EMMS is great.
00:03:26.080 --> 00:03:27.760
If you haven't checked it out, please do.
-00:03:27.760 --> 00:03:30.000
-It's a little bit unintuitive, but
+00:03:27.760 --> 00:03:29.736
+It's a little bit unintuitive,
-00:03:30.000 --> 00:03:34.000
-once you get into it, you know it works.
+00:03:29.736 --> 00:03:34.000
+but once you get into it, you know it
+works.
-00:03:34.000 --> 00:03:36.640
-Basically, what EMMS gave me was the
+00:03:34.000 --> 00:03:36.420
+Basically, what EMMS gave me was
-00:03:36.640 --> 00:03:38.720
-ability to listen to the tracks,
+00:03:36.420 --> 00:03:38.720
+the ability to listen to the tracks,
00:03:38.720 --> 00:03:39.680
organize playlists.
@@ -297,17 +277,14 @@ so (require 'emms-mark). I'm going to
00:03:54.879 --> 00:03:59.680
go through, and I'm going to open the red...
-00:03:59.680 --> 00:04:02.319
-I've got this. These files here. So
+00:03:59.680 --> 00:04:02.092
+I've got this. These files here.
-00:04:02.319 --> 00:04:04.480
-you can see these files are mp3s.
+00:04:02.092 --> 00:04:04.480
+So you can see these files are mp3s.
-00:04:04.480 --> 00:04:06.080
-They're recorded on a
-
-00:04:06.080 --> 00:04:07.599
-digital recorder.
+00:04:04.480 --> 00:04:07.599
+They're recorded on a digital recorder.
00:04:07.599 --> 00:04:09.920
If I had the choice, I would have a
@@ -318,35 +295,28 @@ recorder that used a different format,
00:04:12.319 --> 00:04:14.640
but so be it. I can mark all these files
-00:04:14.640 --> 00:04:16.160
-and I can do EMMS
-
-00:04:16.160 --> 00:04:20.000
-add to .., and now they've been loaded
-
-00:04:20.000 --> 00:04:27.040
-into a playlist.
-
-00:04:27.040 --> 00:04:29.040
-So you can see the playlist here. There's
+00:04:14.640 --> 00:04:27.040
+and I can do EMMS add to .., and now
+they've been loaded into a playlist.
-00:04:29.040 --> 00:04:30.400
-some leftover files.
+00:04:27.040 --> 00:04:28.698
+So you can see the playlist here.
-00:04:30.400 --> 00:04:32.000
-So I've got these three files in my
+00:04:28.698 --> 00:04:30.400
+There's some leftover files.
-00:04:32.000 --> 00:04:33.759
-playlist, and as you can see, it's just
+00:04:30.400 --> 00:04:31.771
+So I've got these three files
-00:04:33.759 --> 00:04:34.639
-the file name,
+00:04:31.771 --> 00:04:33.361
+in my playlist, and as you can see,
-00:04:34.639 --> 00:04:36.800
-the path. I don't have any metadata
+00:04:33.361 --> 00:04:35.194
+it's just the file name, the path.
-00:04:36.800 --> 00:04:38.560
-associated with them.
+00:04:35.194 --> 00:04:38.560
+I don't have any metadata associated
+with them.
00:04:38.560 --> 00:04:41.360
In this playlist, I can hit E,
@@ -360,37 +330,30 @@ the tag information that I have.
00:04:47.360 --> 00:04:49.840
I could edit these here.
-00:04:49.840 --> 00:04:51.520
-I could edit them one at a time, but that's
+00:04:49.840 --> 00:04:51.129
+I could edit them one at a time,
-00:04:51.520 --> 00:04:53.919
-not really great. I want superpower
+00:04:51.129 --> 00:05:03.101
+but that's not really great. I want
+superpower metadata authoring.
-00:04:53.919 --> 00:05:04.479
-metadata authoring. So,
+00:05:03.101 --> 00:05:07.159
+So, by marking them, I can then hit E,
-00:05:04.479 --> 00:05:07.680
-by marking them, I can then hit E, and I
+00:05:07.159 --> 00:05:12.639
+and I have all three of the tracks
+loaded up in this tags buffer.
-00:05:07.680 --> 00:05:10.479
-have all three of the tracks loaded up in
+00:05:12.639 --> 00:05:16.912
+On top of that, I can do EMMS tag
+editor,
-00:05:10.479 --> 00:05:12.639
-this tags buffer.
+00:05:16.912 --> 00:05:22.840
+set all, C-c C-r, and I want to
+set the artist.
-00:05:12.639 --> 00:05:15.759
-On top of that, I can do EMMS
-
-00:05:15.759 --> 00:05:18.800
-tag editor, set all, C-c C-r,
-
-00:05:18.800 --> 00:05:22.840
-and I want to set the artist.
-
-00:05:22.840 --> 00:05:25.680
+00:05:22.840 --> 00:05:26.320
so these are some recordings of my
-
-00:05:25.680 --> 00:05:26.320
family.
00:05:26.320 --> 00:05:31.039
@@ -405,53 +368,45 @@ Spring Walk with Lap Harp.
00:05:40.160 --> 00:05:45.520
I want to set the year.
-00:05:45.520 --> 00:05:48.960
+00:05:45.520 --> 00:05:53.759
And then I'm going to go ahead and put
-
-00:05:48.960 --> 00:05:53.759
these in manually,
-00:05:53.759 --> 00:05:55.840
-but with the power of Emacs keyboard
-
-00:05:55.840 --> 00:05:57.039
-macros and
+00:05:53.759 --> 00:05:56.759
+but with the power of Emacs
+keyboard macros
-00:05:57.039 --> 00:05:59.600
-registers and so on. I could do this
+00:05:56.759 --> 00:05:59.600
+and registers and so on. I could do this
00:05:59.600 --> 00:06:02.319
programmatically as well,
-00:06:02.319 --> 00:06:04.000
-which would make it a lot easier if I
+00:06:02.319 --> 00:06:03.818
+which would make it a lot easier
-00:06:04.000 --> 00:06:06.000
-had much more than three files to
-
-00:06:06.000 --> 00:06:07.440
+00:06:03.818 --> 00:06:07.440
+if I had much more than three files to
do this with.
00:06:07.440 --> 00:06:09.919
Submit the changes with C-c C-c,
-00:06:09.919 --> 00:06:11.520
-and now we've got the playlist. You can
-
-00:06:11.520 --> 00:06:13.120
-see the artist and track number have
+00:06:09.919 --> 00:06:11.232
+and now we've got the playlist.
-00:06:13.120 --> 00:06:15.039
-been updated here.
+00:06:11.232 --> 00:06:15.039
+You can see the artist and track number
+have been updated here.
00:06:15.039 --> 00:06:17.360
And then the final piece of this is that
-00:06:17.360 --> 00:06:19.039
-if you look at this, you can see that the
+00:06:17.360 --> 00:06:18.875
+if you look at this, you can see that
-00:06:19.039 --> 00:06:20.479
-file name is still the same.
+00:06:18.875 --> 00:06:20.479
+the file name is still the same.
00:06:20.479 --> 00:06:22.639
So if I were looking at the directory,
@@ -468,29 +423,27 @@ for people to download,
00:06:28.000 --> 00:06:30.319
it's nice to be able to have that
-00:06:30.319 --> 00:06:32.400
-filename reflect the track number and the
+00:06:30.319 --> 00:06:32.044
+filename reflect the track number
-00:06:32.400 --> 00:06:34.800
-artist and so on. So there's another
+00:06:32.044 --> 00:06:33.609
+and the artist and so on.
-00:06:34.800 --> 00:06:41.199
-command, EMMS
+00:06:33.609 --> 00:06:40.250
+So there's another command,
-00:06:41.199 --> 00:06:44.160
-rename tag editor, rename, so it could be
+00:06:40.250 --> 00:06:42.970
+EMMS rename tag editor, rename,
-00:06:44.160 --> 00:06:45.120
-just capital R.
+00:06:42.970 --> 00:06:45.120
+so it could be just capital R.
-00:06:45.120 --> 00:06:47.199
-I think I need to mark all of these, hit
+00:06:45.120 --> 00:06:46.991
+I think I need to mark all of these,
-00:06:47.199 --> 00:06:48.880
-capital R, and then it's going to ask me
-
-00:06:48.880 --> 00:06:50.000
-to confirm
+00:06:46.991 --> 00:06:50.000
+hit capital R, and then it's going to
+ask me to confirm
00:06:50.000 --> 00:06:54.400
and say yes to all of them.
@@ -504,86 +457,78 @@ whoops I have to update it--you'll see
00:07:04.319 --> 00:07:06.319
it's been updated with the artist,
-00:07:06.319 --> 00:07:09.840
-track number and
-
-00:07:09.840 --> 00:07:11.120
-track name.
+00:07:06.319 --> 00:07:11.120
+track number and track name.
-00:07:11.120 --> 00:07:14.639
-This format is a format string, so
+00:07:11.120 --> 00:07:14.432
+This format is a format string,
-00:07:14.639 --> 00:07:17.360
-it's customizable of course.
+00:07:14.432 --> 00:07:17.360
+so it's customizable of course.
00:07:17.360 --> 00:07:21.039
I just decided to go with the default.
-00:07:21.039 --> 00:07:24.160
+00:07:21.039 --> 00:07:24.948
So that's pretty great, this workflow
+just with EMMS.
-00:07:24.160 --> 00:07:26.000
-just with EMMS. I didn't have to do
-
-00:07:26.000 --> 00:07:28.080
-anything. This is all there. It's all
-
-00:07:28.080 --> 00:07:30.960
-built in. It gave me exactly what
+00:07:24.948 --> 00:07:27.585
+I didn't have to do anything. This is
+all there.
-00:07:30.960 --> 00:07:32.639
-I was looking for in terms of being able
+00:07:27.585 --> 00:07:31.673
+It's all built in. It gave me exactly
+what I was looking for
-00:07:32.639 --> 00:07:35.599
-to process a lot of raw audio files
+00:07:31.673 --> 00:07:35.599
+in terms of being able to process a lot
+of raw audio files,
-00:07:35.599 --> 00:07:37.599
-add metadata to them and get them ready
-
-00:07:37.599 --> 00:07:39.280
+00:07:35.599 --> 00:07:39.280
+add metadata to them, and get them ready
for publishing.
00:07:39.280 --> 00:07:41.599
And this is for publishing for playback
-00:07:41.599 --> 00:07:43.520
-in any media player. It'll be
-
-00:07:43.520 --> 00:07:46.560
-useful. Not just for the web page that I'm
+00:07:41.599 --> 00:07:44.026
+in any media player. It'll be useful.
-00:07:46.560 --> 00:07:48.479
-building. So the
+00:07:44.026 --> 00:07:47.639
+Not just for the web page that I'm
+building.
-00:07:48.479 --> 00:07:50.560
-final part, of course, is to build the
+00:07:47.639 --> 00:07:51.440
+So the final part, of course, is to
+build the web page.
-00:07:50.560 --> 00:07:54.960
-web page. Emacs makes authoring HTML trivial.
+00:07:51.440 --> 00:07:54.960
+Emacs makes authoring HTML trivial.
-00:07:54.960 --> 00:07:57.440
-As I was going through this, I
+00:07:54.960 --> 00:07:57.357
+As I was going through this,
-00:07:57.440 --> 00:07:59.039
-wanted to challenge myself and just be,
+00:07:57.357 --> 00:07:59.701
+I wanted to challenge myself and just
+be, like,
-00:07:59.039 --> 00:08:00.400
-like, can I do this
+00:07:59.701 --> 00:08:03.520
+can I do this just all with Emacs?
+Can I just make this?
-00:08:00.400 --> 00:08:03.520
-just all with Emacs? Can I just make this?
+00:08:03.520 --> 00:08:05.134
+I don't need a... I don't need Ruby.
-00:08:03.520 --> 00:08:05.440
-I don't need a... I don't need Ruby. I don't
+00:08:05.134 --> 00:08:06.707
+I don't need Rails. I don't need Node.
-00:08:05.440 --> 00:08:07.039
-need Rails. I don't need Node. I don't
+00:08:06.707 --> 00:08:08.528
+I don't need any of this other stuff.
-00:08:07.039 --> 00:08:08.960
-need any of this other stuff. I have my
-
-00:08:08.960 --> 00:08:10.560
-tool right here. It's a fully...
+00:08:08.528 --> 00:08:10.560
+I have my tool right here. It's a
+fully...
00:08:10.560 --> 00:08:12.560
It's a whole operating system, basically,
@@ -591,83 +536,78 @@ It's a whole operating system, basically,
00:08:12.560 --> 00:08:15.039
plus programming languages.
-00:08:15.039 --> 00:08:17.360
-So the first thing I started with was
+00:08:15.039 --> 00:08:17.171
+So the first thing I started with
-00:08:17.360 --> 00:08:19.919
-buffer scripting for manipulating text.
+00:08:17.171 --> 00:08:19.919
+was buffer scripting for
+manipulating text.
00:08:19.919 --> 00:08:22.560
That's kind of the easiest way to do it.
-00:08:22.560 --> 00:08:24.319
-Basically, anything you can do in a
-
-00:08:24.319 --> 00:08:25.280
-buffer, you can do
+00:08:22.560 --> 00:08:24.692
+Basically, anything you can do in
+a buffer,
-00:08:25.280 --> 00:08:28.479
-programmatically with Elisp. So this
+00:08:24.692 --> 00:08:27.834
+you can do programmatically with Elisp.
-00:08:28.479 --> 00:08:30.319
-might be a good example for beginners. If
+00:08:27.834 --> 00:08:30.217
+So this might be a good example for
+beginners.
-00:08:30.319 --> 00:08:33.919
-you haven't done any Elisp yet,
+00:08:30.217 --> 00:08:33.919
+If you haven't done any Elisp yet,
-00:08:33.919 --> 00:08:36.000
-a simple example is to create this
+00:08:33.919 --> 00:08:39.557
+a simple example is to create this div
+output here.
-00:08:36.000 --> 00:08:36.959
-this div
+00:08:39.557 --> 00:08:41.581
+You can use this with-temp-buffer,
-00:08:36.959 --> 00:08:40.000
-output here. You
+00:08:41.581 --> 00:08:44.240
+so basically creating an imaginary
+buffer.
-00:08:40.000 --> 00:08:41.760
-can use this with-temp-buffer, so
+00:08:44.240 --> 00:08:45.945
+insert is just like typing,
-00:08:41.760 --> 00:08:44.240
-basically creating an imaginary buffer.
-
-00:08:44.240 --> 00:08:46.640
-insert is just like typing, so you put
-
-00:08:46.640 --> 00:08:48.800
-strings in, you put new lines in,
+00:08:45.945 --> 00:08:48.800
+so you put strings in,
+you put new lines in,
00:08:48.800 --> 00:08:50.959
you can build some strings together.
-00:08:50.959 --> 00:08:52.080
-Here you can see
-
-00:08:52.080 --> 00:08:54.000
-I'm doing a random number, so every time
-
-00:08:54.000 --> 00:08:55.360
-I execute this,
+00:08:50.959 --> 00:08:53.551
+Here you can see I'm doing a random
+number,
-00:08:55.360 --> 00:08:57.920
-my content changes. I can generate
+00:08:53.551 --> 00:08:55.360
+so every time I execute this,
-00:08:57.920 --> 00:09:01.040
-dynamic content in HTML blocks
+00:08:55.360 --> 00:08:56.790
+my content changes.
-00:09:01.040 --> 00:09:04.399
-with Elisp. For my
+00:08:56.790 --> 00:09:03.685
+I can generate dynamic content in HTML
+blocks with Elisp.
-00:09:04.399 --> 00:09:05.920
-web page builder, It's a little more
+00:09:03.685 --> 00:09:06.493
+For my web page builder, it's a little
+more complex.
-00:09:05.920 --> 00:09:08.000
-complex. I'm pulling data out
+00:09:06.493 --> 00:09:08.000
+I'm pulling data out
00:09:08.000 --> 00:09:12.080
using EMMS data structures,
00:09:12.080 --> 00:09:16.080
-so it's pulling that out from the track data.
+so it's pulling that out from
+the track data.
00:09:16.080 --> 00:09:19.440
And then I'm using some program to
@@ -675,50 +615,48 @@ And then I'm using some program to
00:09:19.440 --> 00:09:21.440
generate list elements, so each track is
-00:09:21.440 --> 00:09:23.200
-going to have the title
+00:09:21.440 --> 00:09:24.086
+going to have the title and
+track number,
-00:09:23.200 --> 00:09:25.120
-and track number, and then a button for
+00:09:24.086 --> 00:09:25.869
+and then a button for playing it,
-00:09:25.120 --> 00:09:26.959
-playing it, plus the source
+00:09:25.869 --> 00:09:28.206
+plus the source of the audio file,
-00:09:26.959 --> 00:09:29.519
-of the audio file, which will get added
+00:09:28.206 --> 00:09:30.480
+which will get added here.
-00:09:29.519 --> 00:09:30.480
-here.
+00:09:30.480 --> 00:09:32.485
+Right now, this is hard coded for Opus,
-00:09:30.480 --> 00:09:32.640
-Right now, this is hard coded for Opus, so
+00:09:32.485 --> 00:09:37.200
+so it won't work for my MP3s.
-00:09:32.640 --> 00:09:37.200
-it won't work for my MP3s.
+00:09:37.200 --> 00:09:38.867
+I'm going to skip over snippets.
-00:09:37.200 --> 00:09:39.120
-I'm going to skip over snippets. Turns
+00:09:38.867 --> 00:09:42.017
+Turns out format strings were good
+enough for me.
-00:09:39.120 --> 00:09:41.200
-out format strings were good enough
+00:09:42.017 --> 00:09:45.035
+Snippets could be useful,
-00:09:41.200 --> 00:09:45.519
-for me. Snippets could be useful, but
+00:09:45.035 --> 00:09:47.267
+but format is super powerful,
-00:09:45.519 --> 00:09:48.160
-format is super powerful, and I didn't
+00:09:47.267 --> 00:09:49.839
+and I didn't really even need
+all that much power,
-00:09:48.160 --> 00:09:49.839
-really even need all that much power,
-
-00:09:49.839 --> 00:09:51.279
+00:09:49.839 --> 00:09:52.187
basically, just doing string
+interpolation.
-00:09:51.279 --> 00:09:53.519
-interpolation. So if you haven't seen
-
-00:09:53.519 --> 00:09:54.560
-format before,
+00:09:52.187 --> 00:09:54.560
+So if you haven't seen format before,
00:09:54.560 --> 00:09:56.720
you basically put these control strings
@@ -726,37 +664,29 @@ you basically put these control strings
00:09:56.720 --> 00:09:59.120
or control characters inside of a string,
-00:09:59.120 --> 00:10:03.120
-and you can generate an
+00:09:59.120 --> 00:10:05.040
+and you can generate an output string
+that you want.
-00:10:03.120 --> 00:10:05.040
-output string that you want.
+00:10:05.040 --> 00:10:07.344
+So in my generator code, basically,
-00:10:05.040 --> 00:10:07.600
-So in my generator code, basically, it's
+00:10:07.344 --> 00:10:08.720
+it's down here,
-00:10:07.600 --> 00:10:08.720
-down here,
-
-00:10:08.720 --> 00:10:10.959
+00:10:08.720 --> 00:10:12.800
I'm calling format with this Bard
-
-00:10:10.959 --> 00:10:12.800
Bivou(m)acs template,
-00:10:12.800 --> 00:10:15.920
-and that's basically a big
+00:10:12.800 --> 00:10:17.491
+and that's basically a big string of
+HTML.
-00:10:15.920 --> 00:10:18.240
-a big string of HTML. It's just
+00:10:17.491 --> 00:10:21.200
+It's just my whole page of HTML
-00:10:18.240 --> 00:10:21.200
-my whole page of HTML
-
-00:10:21.200 --> 00:10:22.959
+00:10:21.200 --> 00:10:24.399
with those control characters in just
-
-00:10:22.959 --> 00:10:24.399
four places.
00:10:24.399 --> 00:10:26.399
@@ -765,41 +695,38 @@ One of them populates the track list.
00:10:26.399 --> 00:10:29.760
That's really the meat of the program.
-00:10:29.760 --> 00:10:32.079
+00:10:29.760 --> 00:10:34.746
Again, this is a combination of using
+buffer scripting, using HTML mode,
-00:10:32.079 --> 00:10:33.440
-buffer scripting,
+00:10:34.746 --> 00:10:37.279
+inserting text format strings,
-00:10:33.440 --> 00:10:37.279
-using HTML mode, inserting text format strings,
+00:10:37.279 --> 00:10:39.251
+and then I can indent-region
-00:10:37.279 --> 00:10:40.000
-and then I can indent-region so the HTML
-
-00:10:40.000 --> 00:10:41.920
-actually looks pretty
+00:10:39.251 --> 00:10:41.920
+so the HTML actually looks pretty
00:10:41.920 --> 00:10:45.200
when it comes out of it as well.
-00:10:45.200 --> 00:10:50.160
+00:10:45.200 --> 00:10:54.000
I will show that, just really quick
-
-00:10:50.160 --> 00:10:54.000
actually.
-00:10:54.000 --> 00:10:56.880
-So you can see, this is the HTML that got
+00:10:54.000 --> 00:10:57.540
+So you can see, this is the HTML that
+got generated.
-00:10:56.880 --> 00:10:58.800
-generated. I've got my template.
+00:10:57.540 --> 00:10:58.800
+I've got my template.
-00:10:58.800 --> 00:11:02.560
-I inserted the title here, the style, the
+00:10:58.800 --> 00:11:02.193
+I inserted the title here, the style,
-00:11:02.560 --> 00:11:05.760
-font was all inserted,
+00:11:02.193 --> 00:11:05.760
+the font was all inserted,
00:11:05.760 --> 00:11:07.920
and then this whole list of of tracks here.
@@ -810,98 +737,100 @@ It's kind of messy to look at,
00:11:11.200 --> 00:11:14.399
but this track list, this whole div here,
-00:11:14.399 --> 00:11:15.920
-is all generated by
-
-00:11:15.920 --> 00:11:22.480
-my generator code, and it works. It's great.
+00:11:14.399 --> 00:11:22.480
+is all generated by my generator code,
+and it works. It's great.
00:11:22.480 --> 00:11:27.120
Okay, moving on.
-00:11:27.120 --> 00:11:30.240
+00:11:27.120 --> 00:11:30.945
So the other thing was that as I was
+developing this,
-00:11:30.240 --> 00:11:32.079
-developing this, I decided to use
-
-00:11:32.079 --> 00:11:33.200
-Org Babel and some of his
+00:11:30.945 --> 00:11:32.547
+I decided to use Org Babel
-00:11:33.200 --> 00:11:35.360
-its features for multi-language
+00:11:32.547 --> 00:11:35.588
+and some of its features for
+multi-language things
-00:11:35.360 --> 00:11:36.880
-things because I needed to style it with
+00:11:35.588 --> 00:11:37.839
+because I needed to style it with CSS
-00:11:36.880 --> 00:11:37.839
-CSS and
+00:11:37.839 --> 00:11:39.835
+and put actions in Javascript,
-00:11:37.839 --> 00:11:40.480
-and put actions in Javascript, and also I
-
-00:11:40.480 --> 00:11:42.480
-used SVG for authoring stuff.
+00:11:39.835 --> 00:11:42.480
+and also I used SVG for authoring stuff.
00:11:42.480 --> 00:11:46.079
It was a little bit complicated.
-00:11:46.079 --> 00:11:47.680
-It probably would have been simpler had I
+00:11:46.079 --> 00:11:47.484
+It probably would have been simpler
+
+00:11:47.484 --> 00:11:48.680
+had I not used Org Babel,
-00:11:47.680 --> 00:11:49.600
-not used Org Babel, but it's also really
+00:11:48.680 --> 00:11:49.894
+but it's also really fun.
-00:11:49.600 --> 00:11:51.440
-fun. I think it's a cool,
+00:11:49.894 --> 00:11:53.663
+I think it's a cool, cool idea to use
+literate programming.
-00:11:51.440 --> 00:11:53.839
-cool idea to use literate programming. My
+00:11:53.663 --> 00:11:57.001
+My idea was to create HTML
+components.
-00:11:53.839 --> 00:11:55.839
-idea was to create HTML
+00:11:57.001 --> 00:11:59.519
+I could name it like this,
-00:11:55.839 --> 00:11:59.519
-components. I could name it like this,
+00:11:59.519 --> 00:12:00.959
+put a format string inside it,
-00:11:59.519 --> 00:12:01.440
-put a format string inside it, and build
+00:12:00.959 --> 00:12:02.800
+and build a function
-00:12:01.440 --> 00:12:02.800
-a function
+00:12:02.800 --> 00:12:04.302
+in Elisp to format it
-00:12:02.800 --> 00:12:05.519
-in Elisp to format it and spit out the
+00:12:04.302 --> 00:12:07.120
+and spit out the HTML that I want.
-00:12:05.519 --> 00:12:07.120
-HTML that I want.
+00:12:07.120 --> 00:12:09.581
+By doing this, then,
-00:12:07.120 --> 00:12:10.320
-By doing this, then, I can
+00:12:09.581 --> 00:12:12.388
+I can just change things in my Org file,
-00:12:10.320 --> 00:12:12.880
-just change things in my Org file which,
+00:12:12.388 --> 00:12:14.814
+which, not getting a whole lot of time
+to work on it,
-00:12:12.880 --> 00:12:14.320
-not getting a whole lot of time to work
+00:12:14.814 --> 00:12:16.615
+I can come back to it
-00:12:14.320 --> 00:12:16.959
-on it, I can come back to it and
+00:12:16.615 --> 00:12:19.335
+and I have a lot of notes.
-00:12:16.959 --> 00:12:19.839
-I have a lot of notes. I can
+00:12:19.335 --> 00:12:21.695
+I can kind of generate things as I'm
+going
-00:12:19.839 --> 00:12:21.920
-kind of generate things as I'm going and
+00:12:21.695 --> 00:12:24.399
+and keep notes for myself,
+and keep the...
-00:12:21.920 --> 00:12:24.399
-keep notes for myself, and keep the...
+00:12:24.399 --> 00:12:25.308
+I don't know. It's cool.
-00:12:24.399 --> 00:12:25.600
-I don't know. It's cool. Literate
+00:12:25.308 --> 00:12:26.672
+Literate programming is fun.
-00:12:25.600 --> 00:12:27.519
-programming is fun. So I don't need to
+00:12:26.672 --> 00:12:27.519
+So I don't need to
00:12:27.519 --> 00:12:29.279
go into that too much, but you can see if
@@ -909,41 +838,42 @@ go into that too much, but you can see if
00:12:29.279 --> 00:12:31.040
I execute this here,
-00:12:31.040 --> 00:12:33.360
-I get the the div that I want. It's a
+00:12:31.040 --> 00:12:32.983
+I get the the div that I want.
-00:12:33.360 --> 00:12:34.880
-little bit funny. You'll see I have the
+00:12:32.983 --> 00:12:34.013
+It's a little bit funny.
-00:12:34.880 --> 00:12:36.480
-string like this, the way that
+00:12:34.013 --> 00:12:35.786
+You'll see I have the string like this,
-00:12:36.480 --> 00:12:39.200
-noweb expands, I can't do this on a
-
-00:12:39.200 --> 00:12:40.000
-single line.
+00:12:35.786 --> 00:12:40.000
+the way that noweb expands, I can't do
+this on a single line.
00:12:40.000 --> 00:12:43.839
It looks funny when you do that,
-00:12:43.839 --> 00:12:45.440
-so that might be something to work out
+00:12:43.839 --> 00:12:45.931
+so that might be something
+to work out later.
-00:12:45.440 --> 00:12:48.959
-later. CSS blocks can either be tangled out
+00:12:45.931 --> 00:12:48.959
+CSS blocks can either be tangled out
00:12:48.959 --> 00:12:52.639
-and referenced in the HTML source or inlined.
+and referenced in the HTML source,
+or inlined.
00:12:52.639 --> 00:12:54.639
Here's an example I have of inlining it.
-00:12:54.639 --> 00:12:56.959
-So I've got my little CSS block named
+00:12:54.639 --> 00:12:57.609
+So I've got my little CSS block
+named style,
-00:12:56.959 --> 00:13:00.320
-style, Javascript named script,
+00:12:57.609 --> 00:13:00.320
+Javascript named script,
00:13:00.320 --> 00:13:03.040
and then I've got this HTML source block
@@ -954,20 +884,23 @@ with noweb expansion.
00:13:04.839 --> 00:13:07.920
These double angle brackets here
-00:13:07.920 --> 00:13:09.839
-are where I'm going to expand the block
+00:13:07.920 --> 00:13:09.396
+are where I'm going to expand
-00:13:09.839 --> 00:13:12.639
-named style. I'm actually calling a function,
+00:13:09.396 --> 00:13:12.639
+the block named style. I'm actually
+calling a function,
-00:13:12.639 --> 00:13:14.399
-so I want the result of the function
+00:13:12.639 --> 00:13:14.737
+so I want the result of the
+function here,
-00:13:14.399 --> 00:13:17.040
-here, and then the script will just get
+00:13:14.737 --> 00:13:18.881
+and then the script will just get
+expanded here.
-00:13:17.040 --> 00:13:22.959
-expanded here. So org-babel-expand-src-block,
+00:13:18.881 --> 00:13:22.959
+So org-babel-expand-src-block,
00:13:22.959 --> 00:13:25.360
you can see what it looks like.
@@ -975,50 +908,45 @@ you can see what it looks like.
00:13:25.360 --> 00:13:28.160
I've got my style here. I've got my title.
-00:13:28.160 --> 00:13:29.920
-I've got that main content class
-
-00:13:29.920 --> 00:13:31.279
-I showed before,
+00:13:28.160 --> 00:13:31.279
+I've got that main content class I
+showed before,
00:13:31.279 --> 00:13:34.480
-and the script as well. So that's kind of cool.
+and the script as well.
+So that's kind of cool.
-00:13:34.480 --> 00:13:36.320
+00:13:34.480 --> 00:13:37.527
I could just run org-babel-tangle and
+get my thing out
-00:13:36.320 --> 00:13:38.160
-get my thing out and just
-
-00:13:38.160 --> 00:13:40.480
-edit one file instead of multiple files.
-
-00:13:40.480 --> 00:13:41.600
-Not for everyone,
+00:13:37.527 --> 00:13:40.480
+and just edit one file instead of
+multiple files.
-00:13:41.600 --> 00:13:45.839
-but I thought it was kind of fun.
+00:13:40.480 --> 00:13:46.455
+Not for everyone, but I thought it was
+kind of fun. All right.
-00:13:45.839 --> 00:13:47.760
-All right. Oh, and the final thing is that
+00:13:46.455 --> 00:13:48.807
+Oh, and the final thing is
+that in Emacs,
-00:13:47.760 --> 00:13:49.199
-in Emacs, you can
+00:13:48.807 --> 00:13:51.320
+you can author and view SVG.
-00:13:49.199 --> 00:13:52.880
-author and view SVG. So this is just an
+00:13:51.320 --> 00:13:58.297
+So this is just an Org. This SVG, I used
+to make the play and pause buttons.
-00:13:52.880 --> 00:13:57.199
-Org. This SVG, I used to make the play
+00:13:58.297 --> 00:13:59.519
+I didn't know this,
-00:13:57.199 --> 00:13:59.519
-and pause buttons. I didn't know this,
+00:13:59.519 --> 00:14:02.162
+but if you edit an SVG file,
-00:13:59.519 --> 00:14:02.800
-but if you edit an SVG file, you can
-
-00:14:02.800 --> 00:14:08.800
-toggle back and forth
+00:14:02.162 --> 00:14:08.800
+you can toggle back and forth
00:14:08.800 --> 00:14:13.199
between the code and the image.
@@ -1026,107 +954,102 @@ between the code and the image.
00:14:13.199 --> 00:14:17.360
It's pretty sweet. So I can iteratively
-00:14:17.360 --> 00:14:19.680
-work through this because of how
-
-00:14:19.680 --> 00:14:20.560
-Emacs is.
+00:14:17.360 --> 00:14:20.560
+work through this
+because of how Emacs is.
00:14:20.560 --> 00:14:24.959
Final considerations here,
-00:14:24.959 --> 00:14:27.360
-like when doing this, I want it to be all
+00:14:24.959 --> 00:14:26.247
+like when doing this,
-00:14:27.360 --> 00:14:29.279
-free, so I want to use fonts that use a
+00:14:26.247 --> 00:14:27.606
+I want it to be all free,
-00:14:29.279 --> 00:14:30.079
-free license.
+00:14:27.606 --> 00:14:30.079
+so I want to use fonts that use a free
+license.
00:14:30.079 --> 00:14:32.800
I found GNU Unifont. It's kind of cool.
-00:14:32.800 --> 00:14:34.800
-The content license... I chose
+00:14:32.800 --> 00:14:34.333
+The content license...
-00:14:34.800 --> 00:14:37.600
-Creative Commons Attribution ShareAlike,
+00:14:34.333 --> 00:14:37.600
+I chose Creative Commons Attribution
+ShareAlike,
00:14:37.600 --> 00:14:39.920
which is kind of like the GPL.
-00:14:39.920 --> 00:14:42.880
-Ideally, I could serve it with Emacs. I'd
+00:14:39.920 --> 00:14:42.663
+Ideally, I could serve it with Emacs.
-00:14:42.880 --> 00:14:44.800
-like to remove idiosyncrasy so other
-
-00:14:44.800 --> 00:14:46.320
+00:14:42.663 --> 00:14:46.320
+I'd like to remove idiosyncrasy so other
people can use it.
00:14:46.320 --> 00:14:48.720
It's pretty much just my tool right now.
-00:14:48.720 --> 00:14:51.040
-Not requiring the web browser... I can
-
-00:14:51.040 --> 00:14:54.079
-ship playlists so that you can just
+00:14:48.720 --> 00:14:50.734
+Not requiring the web browser...
-00:14:54.079 --> 00:14:58.000
-click or link to a playlist on your favorite
+00:14:50.734 --> 00:14:56.648
+I can ship playlists so that you can
+just click or link to a playlist
-00:14:58.000 --> 00:15:00.639
-player, even EMMS if you want, and then
+00:14:56.648 --> 00:15:00.068
+on your favorite player, even EMMS if
+you want,
-00:15:00.639 --> 00:15:02.639
-packing up those albums in like a ZIP or
-
-00:15:02.639 --> 00:15:04.320
-.tar file.
+00:15:00.068 --> 00:15:04.320
+and then packing up those albums in like
+a ZIP or .tar file.
00:15:04.320 --> 00:15:08.639
So you can go to churls.world .
-00:15:08.639 --> 00:15:10.880
-It just has a link to this album. I'll
+00:15:08.639 --> 00:15:10.644
+It just has a link to this album.
-00:15:10.880 --> 00:15:14.000
-display it here in just a second.
+00:15:10.644 --> 00:15:14.000
+I'll display it here in just a second.
00:15:14.000 --> 00:15:17.519
You can contact me. I'm shoshin on #emacs
00:15:17.519 --> 00:15:21.040
-in IRC and on sourcehut. You can email me
+in IRC and on sourcehut. You can email me:
00:15:21.040 --> 00:15:23.680
grant@churls.world, personal, or
00:15:23.680 --> 00:15:26.800
-grant@unabridgedsoftware.com. All right, now.
+grant@unabridgedsoftware.com.
+All right, now.
00:15:26.800 --> 00:15:32.079
Let's see about this...
-00:15:32.079 --> 00:15:33.680
-This is up online, so if you want to
-
-00:15:33.680 --> 00:15:35.120
-listen to my
+00:15:32.079 --> 00:15:34.316
+This is up online, so if you
+want to listen
-00:15:35.120 --> 00:15:39.199
-college band's album from 20 years ago,
+00:15:34.316 --> 00:15:39.199
+to my college band's album from
+20 years ago,
00:15:39.199 --> 00:15:43.040
here it is: Cassiopeia Basement Days.
-00:15:43.040 --> 00:15:47.680
-Whoops. I made this art in Krita. You can
+00:15:43.040 --> 00:15:46.887
+Whoops. I made this art in Krita.
-00:15:47.680 --> 00:15:51.199
-press play. You can skip around.
+00:15:46.887 --> 00:15:51.199
+You can press play. You can skip around.
00:15:51.199 --> 00:15:55.040
I do have the playlist up here too.
@@ -1134,8 +1057,6 @@ I do have the playlist up here too.
00:15:55.040 --> 00:15:58.560
So yeah, thanks for listening.
-00:15:58.560 --> 00:16:00.880
-I hope you enjoyed it, and enjoy the rest
-
-00:16:00.880 --> 00:16:07.360
-of EmacsConf. Goodbye!
+00:15:58.560 --> 00:16:07.360
+I hope you enjoyed it, and enjoy the
+rest of EmacsConf. Goodbye!
diff --git a/2020/subtitles/emacsconf-2020--05-bard-bivoumacs-building-a-bandcamp-like-page-for-an-album-of-music--questions--grant-shangreaux.vtt b/2020/subtitles/emacsconf-2020--05-bard-bivoumacs-building-a-bandcamp-like-page-for-an-album-of-music--questions--grant-shangreaux.vtt
index e5dfd2f7..4d7bfede 100644
--- a/2020/subtitles/emacsconf-2020--05-bard-bivoumacs-building-a-bandcamp-like-page-for-an-album-of-music--questions--grant-shangreaux.vtt
+++ b/2020/subtitles/emacsconf-2020--05-bard-bivoumacs-building-a-bandcamp-like-page-for-an-album-of-music--questions--grant-shangreaux.vtt
@@ -1,25 +1,18 @@
WEBVTT
-00:00:03.360 --> 00:00:05.359
+00:00:03.360 --> 00:00:07.440
So first question, what does
-
-00:00:05.359 --> 00:00:07.440
Bard Bivou(m)acs mean? Good question.
-00:00:07.440 --> 00:00:09.679
+00:00:07.440 --> 00:00:10.800
In one version of my talk, I spent too
-
-00:00:09.679 --> 00:00:10.800
long explaining it,
00:00:10.800 --> 00:00:14.559
and decided to cut it out.
-00:00:14.559 --> 00:00:17.920
-It's basically a bad pun on
-
-00:00:17.920 --> 00:00:20.960
-band camp.
+00:00:14.559 --> 00:00:20.960
+It's basically a bad pun on band camp.
00:00:20.960 --> 00:00:22.480
A bivouac--I don't even know if I'm
@@ -45,50 +38,44 @@ I'll probably find a different name for
00:00:42.879 --> 00:00:45.039
it but I liked that "bivoaucs,"
-00:00:45.039 --> 00:00:47.520
+00:00:45.039 --> 00:00:48.719
if you stick an m in there, it becomes
-
-00:00:47.520 --> 00:00:48.719
Bivou(m)acs.
-00:00:48.719 --> 00:00:56.239
+00:00:48.719 --> 00:01:00.160
It's kind of like editor macros for
-
-00:00:56.239 --> 00:01:00.160
generating some HTML.
-00:01:00.160 --> 00:01:04.000
-Yes, it is confusing, chatting on IRC
-
-00:01:04.000 --> 00:01:05.920
-at the same time.
+00:01:00.160 --> 00:01:07.782
+Yes, it is confusing, chatting on IRC at
+the same time. Great question.
-00:01:05.920 --> 00:01:09.520
-Great question. (Amin: Grant,
+00:01:07.782 --> 00:01:11.398
+(Amin: Grant, so right now, you're
+sharing your screen.
-00:01:09.520 --> 00:01:10.880
-so right now, you're sharing your
+00:01:11.398 --> 00:01:14.479
+Are you planning on showing something
+with it, or for example,
-00:01:10.880 --> 00:01:12.880
-screen. Are you planning on
+00:01:14.479 --> 00:01:16.036
+should I maximize you?)
-00:01:12.880 --> 00:01:14.479
-showing something with it, or for example,
-
-00:01:14.479 --> 00:01:16.880
-should I maximize you?) I don't know.
+00:01:16.036 --> 00:01:20.400
+I don't know. I can turn it off for now.
+Okay.
-00:01:16.880 --> 00:01:20.400
-I can turn it off for now. Okay.
+00:01:20.400 --> 00:01:22.299
+(Amin: You can turn on the webcam.)
-00:01:20.400 --> 00:01:22.880
-(Amin: You can turn on the webcam.) Yeah, okay.
+00:01:22.299 --> 00:01:22.880
+Yeah, okay.
-00:01:22.880 --> 00:01:24.240
-(Amin: I'll maximize your
+00:01:22.880 --> 00:01:25.694
+(Amin: I'll maximize your webcam.)
-00:01:24.240 --> 00:01:28.240
-webcam.) Okay, thanks.
+00:01:25.694 --> 00:01:28.240
+Okay, thanks.
00:01:28.240 --> 00:01:30.000
I'll get to the answer for my color
@@ -96,14 +83,11 @@ I'll get to the answer for my color
00:01:30.000 --> 00:01:31.360
theme here in a bit in IRC.
-00:01:31.360 --> 00:01:34.640
-Next question on
+00:01:31.360 --> 00:01:35.105
+Next question on the Etherpad,
-00:01:34.640 --> 00:01:37.280
-the Etherpad, does this metadata
-
-00:01:37.280 --> 00:01:38.479
-workflow also support
+00:01:35.105 --> 00:01:38.479
+does this metadata workflow also support
00:01:38.479 --> 00:01:41.360
unsynchronized lyrics within ID3 tags,
@@ -129,20 +113,17 @@ figure out how to do mass tag editing.
00:01:55.360 --> 00:01:56.399
And that was like...
-00:01:56.399 --> 00:01:58.479
+00:01:56.399 --> 00:01:59.600
It wasn't very intuitive, like I said,
-
-00:01:58.479 --> 00:01:59.600
with EMMS.
-00:01:59.600 --> 00:02:01.840
+00:01:59.600 --> 00:02:03.040
I think EMMS is really great, but its
-
-00:02:01.840 --> 00:02:03.040
interface is huge.
00:02:03.040 --> 00:02:07.040
-like if you do M-x and type emms, you get
+like if you do M-x and type emms,
+you get,
00:02:07.040 --> 00:02:10.160
I don't know, 270-some candidates.
@@ -150,92 +131,72 @@ I don't know, 270-some candidates.
00:02:10.160 --> 00:02:13.200
There's a lot of functions going on.
-00:02:13.200 --> 00:02:14.319
-I basically found the
-
-00:02:14.319 --> 00:02:16.319
-features that I needed to get this
+00:02:13.200 --> 00:02:18.879
+I basically found the features that I
+needed to get this workflow working.
-00:02:16.319 --> 00:02:18.879
-workflow working.
-
-00:02:18.879 --> 00:02:21.040
+00:02:18.879 --> 00:02:22.160
I would guess that you probably can do
-
-00:02:21.040 --> 00:02:22.160
it, and if you don't,
-00:02:22.160 --> 00:02:24.080
-if you can't do it out of the box, I
+00:02:22.160 --> 00:02:24.026
+if you can't do it out of the box,
-00:02:24.080 --> 00:02:28.160
-think you could script EMMS to do that.
+00:02:24.026 --> 00:02:28.160
+I think you could script EMMS
+to do that.
-00:02:28.160 --> 00:02:29.840
+00:02:28.160 --> 00:02:33.268
I'd like to know more, and I'm certainly
+going to be investigating it.
-00:02:29.840 --> 00:02:31.840
-going to be
-
-00:02:31.840 --> 00:02:35.200
-investigating it. I will try and post my
-
-00:02:35.200 --> 00:02:39.519
-findings somewhere online.
+00:02:33.268 --> 00:02:39.519
+I will try and post my findings
+somewhere online.
00:02:39.519 --> 00:02:42.080
Is it possible to import batch metadata?
-00:02:42.080 --> 00:02:43.920
-I'm not sure. I would guess
+00:02:42.080 --> 00:02:46.496
+I'm not sure. I would guess yes is the
+answer.
-00:02:43.920 --> 00:02:49.360
-yes is the answer. EMMS can connect to
+00:02:46.496 --> 00:02:50.712
+EMMS can connect to metadata services.
-00:02:49.360 --> 00:02:51.840
-metadata services. I haven't done
-
-00:02:51.840 --> 00:02:53.040
-that because I was just
+00:02:50.712 --> 00:02:53.040
+I haven't done that because I was just
00:02:53.040 --> 00:02:56.959
using audio files that I created myself.
-00:02:56.959 --> 00:03:00.400
-I know that on the back end, it calls out to
-
-00:03:00.400 --> 00:03:02.319
-shell programs for tagging things.
+00:02:56.959 --> 00:03:00.165
+I know that on the back end, it calls out
-00:03:02.319 --> 00:03:04.560
-there's a lot of different options that can
+00:03:00.165 --> 00:03:02.319
+to shell programs for tagging things.
-00:03:04.560 --> 00:03:08.000
-shell out too. I was using the
+00:03:02.319 --> 00:03:06.165
+There's a lot of different options that can
+shell out too.
-00:03:08.000 --> 00:03:10.319
-the vorbis tools to tag the particular
+00:03:06.165 --> 00:03:12.239
+I was using the vorbis tools to tag the
+particular files I was working with.
-00:03:10.319 --> 00:03:12.239
-files I was working with.
-
-00:03:12.239 --> 00:03:15.120
+00:03:12.239 --> 00:03:15.840
You can also use tiny tag, and there's
-
-00:03:15.120 --> 00:03:15.840
some other...
-00:03:15.840 --> 00:03:17.840
-That might be the python library. I can't
+00:03:15.840 --> 00:03:17.498
+That might be the python library.
-00:03:17.840 --> 00:03:19.120
-remember. There's two other libraries
+00:03:17.498 --> 00:03:20.971
+I can't remember. There's two other
+libraries that I can shell out to
-00:03:19.120 --> 00:03:21.120
-that I can shell out to for
-
-00:03:21.120 --> 00:03:24.400
-doing metadata.
+00:03:20.971 --> 00:03:24.400
+for doing metadata.
00:03:24.400 --> 00:03:26.400
My current workflow for tagging music is
@@ -243,29 +204,27 @@ My current workflow for tagging music is
00:03:26.400 --> 00:03:29.040
to first apply replay gain in fubar 2000,
-00:03:29.040 --> 00:03:32.159
-fix egregious mistakes, use beats to
-
-00:03:32.159 --> 00:03:34.560
-apply metadata from music brains,
+00:03:29.040 --> 00:03:31.119
+fix egregious mistakes,
-00:03:34.560 --> 00:03:36.640
-or discogs, go over remaining albums with
+00:03:31.119 --> 00:03:35.118
+use beats to apply metadata from music
+brains or discogs,
-00:03:36.640 --> 00:03:38.400
-fubar 2000 again.
+00:03:35.118 --> 00:03:38.400
+go over remaining albums with fubar 2000
+again.
-00:03:38.400 --> 00:03:40.080
-Is there a chance textual tagging could
+00:03:38.400 --> 00:03:43.280
+Is there a chance textual tagging
+could allow doing it all in one program?
-00:03:40.080 --> 00:03:43.280
-allow doing it all in one program?
-
-00:03:43.280 --> 00:03:45.120
+00:03:43.280 --> 00:03:46.400
Have I experimented with mass tag
+update queries?
-00:03:45.120 --> 00:03:47.280
-update queries? I have not.
+00:03:46.400 --> 00:03:47.280
+I have not.
00:03:47.280 --> 00:03:49.120
Again, I was just doing this workflow,
@@ -276,11 +235,11 @@ taking raw files with no tags and doing that.
00:03:54.799 --> 00:03:58.159
I believe because it calls out to
-00:03:58.159 --> 00:04:01.519
-the programs in the back end, I'm sure
+00:03:58.159 --> 00:04:00.811
+the programs in the back end,
-00:04:01.519 --> 00:04:03.040
-you could work that out.
+00:04:00.811 --> 00:04:03.040
+I'm sure you could work that out.
00:04:03.040 --> 00:04:06.159
I think EMMS would benefit from
@@ -294,11 +253,11 @@ we work with text, and being able
00:04:11.280 --> 00:04:14.000
to use Emacs as a front end for those
-00:04:14.000 --> 00:04:16.799
-updates would be really fantastic. So
+00:04:14.000 --> 00:04:16.647
+updates would be really fantastic.
-00:04:16.799 --> 00:04:18.560
-really, it's just a matter of
+00:04:16.647 --> 00:04:18.560
+So really, it's just a matter of
00:04:18.560 --> 00:04:22.720
writing the interface to the external tool.
@@ -306,59 +265,54 @@ writing the interface to the external tool.
00:04:22.720 --> 00:04:24.560
Is there a link to some info expanding
-00:04:24.560 --> 00:04:26.840
+00:04:24.560 --> 00:04:28.479
philosophy of how to compensate
-
-00:04:26.840 --> 00:04:28.479
musicians?
00:04:28.479 --> 00:04:31.199
No, I don't really have a lot of
-00:04:31.199 --> 00:04:32.720
-philosophy around that. I guess the first
+00:04:31.199 --> 00:04:32.052
+philosophy around that.
-00:04:32.720 --> 00:04:33.919
-thing I could say would be
+00:04:32.052 --> 00:04:33.919
+I guess the first thing
+I could say would be
-00:04:33.919 --> 00:04:36.800
-something like a universal income. I feel
+00:04:33.919 --> 00:04:36.378
+something like a universal income.
-00:04:36.800 --> 00:04:38.960
-like that would solve a lot of problems,
+00:04:36.378 --> 00:04:38.960
+I feel like that would solve
+a lot of problems,
-00:04:38.960 --> 00:04:42.000
-if musicians could just be musicians and
+00:04:38.960 --> 00:04:41.772
+if musicians could just be musicians
-00:04:42.000 --> 00:04:45.199
-not have to worry about their pay. I will
+00:04:41.772 --> 00:04:44.742
+and not have to worry about their pay.
-00:04:45.199 --> 00:04:46.240
-think about it more.
+00:04:44.742 --> 00:04:46.240
+I will think about it more.
-00:04:46.240 --> 00:04:48.720
-This is one of my first
+00:04:46.240 --> 00:04:52.015
+This is one of my first forays into
+getting public with some of these ideas,
-00:04:48.720 --> 00:04:50.160
-forays into getting
+00:04:52.015 --> 00:04:53.360
+so I will try to do more
-00:04:50.160 --> 00:04:52.240
-public with some of these ideas, so I
+00:04:53.360 --> 00:04:55.187
+and let the community know.
-00:04:52.240 --> 00:04:53.360
-will try to do more
-
-00:04:53.360 --> 00:04:55.840
-and let the community know. What Emacs
-
-00:04:55.840 --> 00:04:57.199
-theme am I using?
+00:04:55.187 --> 00:04:57.199
+What Emacs theme am I using?
00:04:57.199 --> 00:05:02.240
Can't remember. It's one of the Kaolin themes.
00:05:02.240 --> 00:05:05.680
-I think it was Aurora or
+I think it was Aurora
00:05:05.680 --> 00:05:09.120
or Bubble Gum, maybe, but the
@@ -369,35 +323,26 @@ Kaolin themes are nice. I recommend them.
00:05:12.880 --> 00:05:16.000
Not using Doom Emacs, Doom mode line though.
-00:05:16.000 --> 00:05:18.880
-It's very pretty. SVG support built into
+00:05:16.000 --> 00:05:17.296
+It's very pretty.
-00:05:18.880 --> 00:05:20.080
-Emacs?
+00:05:17.296 --> 00:05:20.080
+SVG support built into Emacs?
-00:05:20.080 --> 00:05:23.600
-I'm using Emacs 27.1, and yes, SVG support
+00:05:20.080 --> 00:05:25.520
+I'm using Emacs 27.1, and yes, SVG
+support is built in.
-00:05:23.600 --> 00:05:25.520
-is built in.
-
-00:05:25.520 --> 00:05:28.800
+00:05:25.520 --> 00:05:30.639
I may have had to compile it with some
-
-00:05:28.800 --> 00:05:30.639
Cairo support.
00:05:30.639 --> 00:05:33.840
I don't remember for sure.
-00:05:33.840 --> 00:05:36.720
-But yes, you can even take screenshots of
-
-00:05:36.720 --> 00:05:38.080
-your Emacs
-
-00:05:38.080 --> 00:05:41.199
-from within Emacs in SVG.
+00:05:33.840 --> 00:05:41.199
+But yes, you can even take screenshots
+of your Emacs from within Emacs, in SVG.
00:05:41.199 --> 00:05:44.320
It's pretty great.
@@ -429,62 +374,48 @@ I'll start looking through IRC.
00:06:05.440 --> 00:06:09.680
(Amin: And keep an eye on the pad too.)
-00:06:09.680 --> 00:06:13.440
-Thank you all for listening and for
-
-00:06:13.440 --> 00:06:19.440
-enjoying the talk. I'm glad it turned out well.
-
-00:06:19.440 --> 00:06:22.800
-Awesome. Yeah, it's been fun
+00:06:09.680 --> 00:06:12.688
+Thank you all for listening
-00:06:22.800 --> 00:06:36.000
-so far.
+00:06:12.688 --> 00:06:19.440
+and for enjoying the talk. I'm glad it
+turned out well.
-00:06:36.000 --> 00:06:39.199
-How did I manage? I can post a
+00:06:19.440 --> 00:06:36.000
+Awesome. Yeah, it's been fun so far.
-00:06:39.199 --> 00:06:41.120
-snippet of that, or actually I can share
+00:06:36.000 --> 00:06:40.015
+How did I manage? I can post
+a snippet of that,
-00:06:41.120 --> 00:06:46.319
-my screen, can't I...
+00:06:40.015 --> 00:06:46.319
+or actually I can share my screen,
+can't I...
00:06:46.319 --> 00:06:49.599
Okay. I actually have it up right here.
-00:06:49.599 --> 00:06:51.840
+00:06:49.599 --> 00:06:53.440
So I think I got this from alphapapa, to
-
-00:06:51.840 --> 00:06:53.440
be honest.
00:06:53.440 --> 00:07:00.960
I define screenshot-svg.
-00:07:00.960 --> 00:07:03.680
+00:07:00.960 --> 00:07:04.960
It's an interactive command. Oh yeah,
-
-00:07:03.680 --> 00:07:04.960
there's alphapapa.
00:07:04.960 --> 00:07:08.560
Okay, there we go.
-00:07:08.560 --> 00:07:10.639
+00:07:08.560 --> 00:07:13.249
I would like to change this so that I
+can get it into the copy-paste buffer
-00:07:10.639 --> 00:07:11.599
-can get it into
-
-00:07:11.599 --> 00:07:14.000
-the copy-paste buffer so I don't
-
-00:07:14.000 --> 00:07:17.039
-have to copy the file in, but I haven't really
-
-00:07:17.039 --> 00:07:20.560
-hacked on it yet.
+00:07:13.249 --> 00:07:20.560
+so I don't have to copy the file in, but
+I haven't really hacked on it yet.
00:07:20.560 --> 00:07:24.400
Okay, org heading colors.
@@ -510,11 +441,11 @@ So the presentation is just a
00:07:45.120 --> 00:07:48.960
normal org file, right, so I have my headers,
-00:07:48.960 --> 00:07:50.639
-and the author--you can even stick your
+00:07:48.960 --> 00:07:50.466
+and the author--you can even stick
-00:07:50.639 --> 00:07:52.560
-email and other headers in there.
+00:07:50.466 --> 00:07:52.560
+your email and other headers in there.
00:07:52.560 --> 00:07:57.599
But there's a package called org-tree-slide.
@@ -522,14 +453,15 @@ But there's a package called org-tree-slide.
00:07:57.599 --> 00:08:01.440
Whoops, why is it not...
-00:08:01.440 --> 00:08:03.919
-I must have not required it. Good
+00:08:01.440 --> 00:08:03.618
+I must have not required it.
-00:08:03.919 --> 00:08:05.440
-question. (Amin: Grant,
+00:08:03.618 --> 00:08:04.594
+Good question.
-00:08:05.440 --> 00:08:09.599
-can you try sharing your screen maybe?)
+00:08:04.594 --> 00:08:09.599
+(Amin: Grant, can you try sharing your
+screen maybe?)
00:08:09.599 --> 00:08:13.199
Oh, is it not shared? I'm sorry.
@@ -543,14 +475,9 @@ There we go, should be coming up.
00:08:22.000 --> 00:08:26.720
(Amin: It's coming up. Yep, we see it.)
-00:08:26.720 --> 00:08:33.919
-Awesome.
-
-00:08:33.919 --> 00:08:37.599
-All right. Okay. I don't know why this
-
-00:08:37.599 --> 00:08:38.800
-isn't working.
+00:08:26.720 --> 00:08:38.800
+Awesome. All right. Okay. I don't know
+why this isn't working.
00:08:38.800 --> 00:08:56.080
It was working.
@@ -567,47 +494,38 @@ So, org-tree-slide.
00:09:09.760 --> 00:09:12.800
I don't know why it's not launching.
-00:09:12.800 --> 00:09:14.480
+00:09:12.800 --> 00:09:16.000
I thought that I had required it, but I
-
-00:09:14.480 --> 00:09:16.000
must not have.
-00:09:16.000 --> 00:09:26.959
-Maybe I'll try.
+00:09:16.000 --> 00:09:30.959
+Maybe I'll try. Okay.
-00:09:26.959 --> 00:09:30.959
-Okay.
-
-00:09:30.959 --> 00:09:33.040
+00:09:30.959 --> 00:09:34.560
So there we go. So org-tree-slide is a
-
-00:09:33.040 --> 00:09:34.560
way that basically uses
00:09:34.560 --> 00:09:38.880
narrowing and some kind of font tricks to...
-00:09:38.880 --> 00:09:41.680
-it changes your titles or your
-
-00:09:41.680 --> 00:09:42.640
-metadata into
+00:09:38.880 --> 00:09:42.640
+it changes your titles
+or your metadata into
00:09:42.640 --> 00:09:44.560
this banner for the title here,
00:09:44.560 --> 00:09:46.560
-and it automatically sets the faces for you.
+and it automatically sets the
+faces for you.
-00:09:46.560 --> 00:09:51.360
-You can customize that, of course. And then, as you
+00:09:46.560 --> 00:09:53.938
+You can customize that, of course. And
+then, as you go through the Org file,
-00:09:51.360 --> 00:09:55.279
-go through the Org file, you get these
-
-00:09:55.279 --> 00:09:59.600
-kind of nice animations and--
+00:09:53.938 --> 00:09:59.600
+you get these kind of nice animations
+and--
00:09:59.600 --> 00:10:04.160
what's it called--breadcrumbs up at the top.
@@ -615,29 +533,20 @@ what's it called--breadcrumbs up at the top.
00:10:04.160 --> 00:10:06.399
So org-tree-slide. I highly recommend it.
-00:10:06.399 --> 00:10:07.920
+00:10:06.399 --> 00:10:10.024
It's really nice because you can give
+your presentation and practice it,
-00:10:07.920 --> 00:10:09.600
-your presentation
-
-00:10:09.600 --> 00:10:10.880
-and practice it, and while you're
-
-00:10:10.880 --> 00:10:12.560
-practicing it, you can edit things as well,
-
-00:10:12.560 --> 00:10:13.760
-because it's still just
+00:10:10.024 --> 00:10:12.560
+and while you're practicing it, you can
+edit things as well,
-00:10:13.760 --> 00:10:16.160
-an Org document using narrowing, you know.
+00:10:12.560 --> 00:10:16.160
+because it's still just an Org document
+using narrowing, you know.
-00:10:16.160 --> 00:10:16.880
-It doesn't
-
-00:10:16.880 --> 00:10:20.079
-actually change anything.
+00:10:16.160 --> 00:10:20.079
+It doesn't actually change anything.
00:10:20.079 --> 00:10:24.079
Definitely recommend org-tree-slide mode.
@@ -654,34 +563,27 @@ Let's see.
00:10:39.519 --> 00:10:41.279
Okay, so I don't know if you can see this now,
-00:10:41.279 --> 00:10:43.839
+00:10:41.279 --> 00:10:49.360
but I'm actually viewing the SVG
-
-00:10:43.839 --> 00:10:49.360
screenshot that I took with Emacs.
-00:10:49.360 --> 00:10:51.920
+00:10:49.360 --> 00:10:52.720
See here's the source of it. So Emacs
-
-00:10:51.920 --> 00:10:52.720
made that.
00:10:52.720 --> 00:10:58.160
And here's the image.
-00:10:58.160 --> 00:10:59.600
+00:10:58.160 --> 00:11:01.570
It's cool because you can even do it
+again and again,
-00:10:59.600 --> 00:11:01.760
-again and again, and
-
-00:11:01.760 --> 00:11:05.360
-open more screenshots of screenshots.
+00:11:01.570 --> 00:11:05.360
+and open more screenshots of
+screenshots.
-00:11:05.360 --> 00:11:11.200
+00:11:05.360 --> 00:11:14.880
Yeah, definitely Emacsception.
-
-00:11:11.200 --> 00:11:14.880
Fun stuff.
00:11:14.880 --> 00:11:18.079
@@ -693,29 +595,28 @@ Heading colors? Oh, yeah. I talked about the
00:11:20.160 --> 00:11:24.800
themes. This is another Kaolin theme.
-00:11:24.800 --> 00:11:30.560
+00:11:24.800 --> 00:11:34.959
I think the one in the talk was
-
-00:11:30.560 --> 00:11:34.959
maybe this one, Aurora.
00:11:34.959 --> 00:11:36.560
Oh, here, there's something funny when
-00:11:36.560 --> 00:11:38.079
-you start org-tree-slide with a
+00:11:36.560 --> 00:11:37.785
+you start org-tree-slide
-00:11:38.079 --> 00:11:38.880
-different theme.
+00:11:37.785 --> 00:11:38.880
+with a different theme.
-00:11:38.880 --> 00:11:42.160
-This top header bar gets the faces from
+00:11:38.880 --> 00:11:41.823
+This top header bar gets the faces
-00:11:42.160 --> 00:11:44.000
-that previous theme. I have not
+00:11:41.823 --> 00:11:43.395
+from that previous theme.
-00:11:44.000 --> 00:11:47.760
-figured out how to fix that yet.
+00:11:43.395 --> 00:11:47.760
+I have not figured out how to
+fix that yet.
00:11:47.760 --> 00:11:49.200
Did I have to compile to get the
@@ -729,11 +630,12 @@ Yes, if I'm remembering correctly.
00:11:54.480 --> 00:11:58.399
I got Emacs 27. I'm not on a Mac.
-00:11:58.399 --> 00:12:02.079
-I saw alphapapa's comment on reddit, and then
+00:11:58.399 --> 00:12:01.424
+I saw alphapapa's comment on reddit,
-00:12:02.079 --> 00:12:08.839
-I recompiled it with Cairo support.
+00:12:01.424 --> 00:12:08.839
+and then I recompiled it with Cairo
+support.
00:12:08.839 --> 00:12:18.000
Yes.
@@ -744,70 +646,56 @@ Okay, lots of good conversation on here.
00:12:21.920 --> 00:12:25.839
Yep, I have like one or two more minutes.
-00:12:25.839 --> 00:12:31.680
-Okay
-
-00:12:31.680 --> 00:12:34.240
-I guess while I'm here, I might as
-
-00:12:34.240 --> 00:12:35.519
-well say thank you to
+00:12:25.839 --> 00:12:34.240
+Okay. I guess while I'm here, I might as
-00:12:35.519 --> 00:12:38.959
-the organizers. I really appreciate
+00:12:34.240 --> 00:12:36.993
+well say thank you to the organizers.
-00:12:38.959 --> 00:12:40.320
-everybody's work on this.
+00:12:36.993 --> 00:12:40.320
+I really appreciate everybody's
+work on this.
00:12:40.320 --> 00:12:42.720
It's fun to be a part of this community.
-00:12:42.720 --> 00:12:45.279
+00:12:42.720 --> 00:12:45.929
I'm enjoying the other talks I've seen
+so far today,
-00:12:45.279 --> 00:12:47.279
-so far today, and I'm looking forward to
-
-00:12:47.279 --> 00:12:48.560
+00:12:45.929 --> 00:12:48.560
+and I'm looking forward to
to the rest.
-00:12:48.560 --> 00:12:50.480
-It's really interesting, just from
-
-00:12:50.480 --> 00:12:52.720
-being on Emacs in IRC
+00:12:48.560 --> 00:12:53.570
+It's really interesting, just from being
+on Emacs in IRC for a few months,
-00:12:52.720 --> 00:12:54.720
-for a few months, I've already connected
+00:12:53.570 --> 00:12:54.720
+I've already connected
00:12:54.720 --> 00:12:56.959
with a lot of interesting people
-00:12:56.959 --> 00:13:00.720
+00:12:56.959 --> 00:13:04.079
and have a lot of cool connections
-
-00:13:00.720 --> 00:13:04.079
already.
-00:13:04.079 --> 00:13:05.519
+00:13:04.079 --> 00:13:07.519
(Amin: Thank you for being a part of the
-
-00:13:05.519 --> 00:13:07.519
community, Grant.)
-00:13:07.519 --> 00:13:09.680
-That's good to be here. I have another
+00:13:07.519 --> 00:13:08.883
+That's good to be here.
-00:13:09.680 --> 00:13:16.560
-talk tomorrow as well.
+00:13:08.883 --> 00:13:16.560
+I have another talk tomorrow as well.
00:13:16.560 --> 00:13:18.399
Oh, thanks for everyone in the Etherpad
-00:13:18.399 --> 00:13:20.160
+00:13:18.399 --> 00:13:21.680
for putting more comments on these
-
-00:13:20.160 --> 00:13:21.680
questions here
00:13:21.680 --> 00:13:29.360
@@ -822,14 +710,10 @@ that we have for the Q&A.
00:13:33.040 --> 00:13:36.720
Okay. Thank you again so much, Grant,
-00:13:36.720 --> 00:13:38.480
+00:13:36.720 --> 00:13:39.920
for your awesome talk and for popping in
-
-00:13:38.480 --> 00:13:39.920
for questions.)
-00:13:39.920 --> 00:13:42.000
+00:13:39.920 --> 00:13:46.800
Yeah, thanks again for hosting. See you
-
-00:13:42.000 --> 00:13:46.800
later. Cheers!