summaryrefslogtreecommitdiffstats
path: root/2020/info/05.md
diff options
context:
space:
mode:
Diffstat (limited to '2020/info/05.md')
-rw-r--r--2020/info/05.md920
1 files changed, 538 insertions, 382 deletions
diff --git a/2020/info/05.md b/2020/info/05.md
index 852caff..30aaf56 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]]