summaryrefslogtreecommitdiffstats
path: root/2020
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--2020/info/05.md38
1 files changed, 25 insertions, 13 deletions
diff --git a/2020/info/05.md b/2020/info/05.md
index 78ac43ea..0da4c0a6 100644
--- a/2020/info/05.md
+++ b/2020/info/05.md
@@ -149,7 +149,8 @@ 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.
-(02:31) It was a challenge. I wanted to see if I could do this all
+(<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
@@ -159,7 +160,8 @@ 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.
-(03:08) I found out that Emacs scores a hundred percent on all of
+(<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
@@ -167,7 +169,8 @@ 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.
-(03:42) I'm going to demonstrate that to you. So in order to do this,
+(<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
@@ -177,7 +180,8 @@ 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.
-(04:30) So I've got these three files in my playlist, and as
+(<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
@@ -195,7 +199,8 @@ 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.
-(6:15) And then the final piece of this is that if you look at this,
+(<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
@@ -208,14 +213,16 @@ 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.
-(7:21) So that's pretty great, this workflow just with EMMS. I didn't
+(<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.
-(7:48) So the final part, of course, is to build the web page. Emacs
+(<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
@@ -233,7 +240,8 @@ 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.
-(9:04) For my web page builder, It's a little more complex. I'm
+(<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,
@@ -260,7 +268,8 @@ 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.
-(11:27) So the other thing was that as I was developing this, I
+(<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
@@ -292,14 +301,16 @@ 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.
-(13:45) Oh, and the final thing is that in Emacs, you can author and
+(<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.
-(14:20) Final considerations here, like when doing this, I want it to
+(<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
@@ -310,13 +321,14 @@ 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.
-(15:04) So you can go to churls.world . It just has a link to this
+(<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:
-Cassiopeia Basement Days. Whoops. I made this art in Krita. You can
+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!