summaryrefslogblamecommitdiffstats
path: root/2020/subtitles/emacsconf-2020--05-bard-bivoumacs-building-a-bandcamp-like-page-for-an-album-of-music--grant-shangreaux-autogen.sbv
blob: e151d292ab2ec20740c03a2b220b2627ac3fef09 (plain) (tree)
1
2
3
4
5
6
7
8
9
10









                                     
                               







                                     
                                   

                       
            

                       
                                     




                       
                              

                       
                                       




                          
                                     




                       
                                        

                       
                               










                                    
                                







                                       
                                    




















































                                      
                                      







                                        
                                       

                       
                          

                       
                              




                                        
                                    

                       
                          










                                        
                                 




                                   
                                        




                       
                                     

                       
                                  




                       
                                        




                                    
                                       




                       
                                    

                       
                         

                       
                                  

                       
                                

                       
                          

                       
                                     

                       
                    

                       
                                      




                       
                                      

                       
                                  

                       
                                      




                                 
                                        










                                  
                                     







                                        
                                      

                       
                                        




                       
                                    

                       
                                      


































                                        
                                        







                                      
                                       

                       
                                        

                       
                                      










                                
                                     







                                     
                                      

                       
                













                                        
                                   







                                     
                                  




                       
                                      




                                   
                                  

                       
                                    




                                        
                                  







                       
                                      










                                    
                            




                                 
                              










                                    
                          




                         
                          

                       
                                      







                       
                                    




                       
                                   




                        
                                     




























                                        
                                       































                                       
                                       













                                       
                                     
















                                       
                                        







                          
                                  







                                       
                                        



















                                       
                                  







                                       
                                       




                       
                                  




                                      
                           

                       
                                        




                       
                                        

                       
                                    

                       
                                      










                                       
                                     




























                                        
                     
















                                       
                    

                       
                                       

                       
              

                       
                                    










                                   
                            










                                       
                                   































                                        
                                     







                                      
                                     































                                        
                                       








































                                        
                                        







                               
                                     







                                        
                              

                       
                                       

























                                       
                                       

                       
                                    







                                  
                                        




                       
                                        




                            
                                        




                       
                                      




                                        
                                







                                        
                                    













                                       
                

                       
                                    







                                       
                               

                       
                                     

                       
                                        




                                  
                               

                       
                                        




                                        
                   

                       
                                       

                       
                                      




                             
                                   






















                                      
                                       

                       
                                    




                            
                                        










                                        
                                       

                       
                                 




                       
                                    













                                       
                                        

                       
                                  










                                        
                                     










                                       
                                  




                                        
                




                                      
                                       

                       
                                        













                                      
                                  







                                   
        







                                    
                                        

                       
                                      




                       
                                     

                       
                           







                                       
                                       










                                       
                                      

























                                        
                                     




                                
                                        




























                                        
                                       







                        
                                        




                            
                                        

                       
            



                       
0:00:01.360,0:00:07.279
hello my name is grant shangri

0:00:04.480,0:00:07.919
this is my talk titled bard beavermax

0:00:07.279,0:00:10.719
publishing

0:00:07.919,0:00:12.799
music with Emacs I'm a software

0:00:10.719,0:00:14.400
developer with unabridged software in

0:00:12.799,0:00:16.800
lincoln nebraska

0:00:14.400,0:00:18.720
long time Emacs user relatively new

0:00:16.800,0:00:20.480
Emacs hacker

0:00:18.720,0:00:22.960
and uh hopefully I'll be able to show

0:00:20.480,0:00:30.480
you my workflow with

0:00:22.960,0:00:33.440
how I publish music with Emacs

0:00:30.480,0:00:35.520
all right so as a musician I would like

0:00:33.440,0:00:37.200
to publish my music online

0:00:35.520,0:00:39.040
you know I could publish with popular

0:00:37.200,0:00:42.000
online music services

0:00:39.040,0:00:44.719
but I'm more of a diy type so I chose to

0:00:42.000,0:00:48.160
go ahead and publish with Emacs

0:00:44.719,0:00:49.760
so what's the motivation behind this

0:00:48.160,0:00:51.600
a lot of it comes down to some

0:00:49.760,0:00:54.960
fundamental freedoms

0:00:51.600,0:00:57.920
that you know Emacs gnu software

0:00:54.960,0:00:59.120
kind of represent to me as well as kind

0:00:57.920,0:01:01.840
of my

0:00:59.120,0:01:03.680
ideas on culture and my background I

0:01:01.840,0:01:04.080
don't believe that music is a consumer

0:01:03.680,0:01:06.080
good

0:01:04.080,0:01:08.320
um it's a form of knowledge like an

0:01:06.080,0:01:10.479
algorithm

0:01:08.320,0:01:13.119
and it's just like such a part of

0:01:10.479,0:01:16.640
culture like in tribal cultures music

0:01:13.119,0:01:18.000
was seen as a gift from the cosmos or

0:01:16.640,0:01:19.920
the gods and it was

0:01:18.000,0:01:21.920
a gift maybe through an individual

0:01:19.920,0:01:23.520
vessel but was shared with the people

0:01:21.920,0:01:26.799
and shared with everyone

0:01:23.520,0:01:29.840
kept alive by the culture itself

0:01:26.799,0:01:31.520
and so to me music is something that

0:01:29.840,0:01:34.640
should be shared and should be

0:01:31.520,0:01:36.560
freely enjoyed by everyone of course

0:01:34.640,0:01:39.040
artists should be compensated as well

0:01:36.560,0:01:41.040
but that's a whole different topic

0:01:39.040,0:01:42.720
and so when I want to share my music I

0:01:41.040,0:01:43.520
want to do it without impacting anyone's

0:01:42.720,0:01:45.680
freedom

0:01:43.520,0:01:48.960
using gnu software like Emacs is a good

0:01:45.680,0:01:48.960
way that I can ensure that

0:01:49.200,0:01:55.840
I won't be requiring people to

0:01:52.840,0:01:57.119
uh sign away their freedoms for anything

0:01:55.840,0:01:58.799
there's a lot more I could say about

0:01:57.119,0:02:00.960
this but I don't have time

0:01:58.799,0:02:03.439
feel free to reach out to me by email or

0:02:00.960,0:02:06.479
irc

0:02:03.439,0:02:08.239
um and part of the motivation for me

0:02:06.479,0:02:10.720
personally is that Emacs is super

0:02:08.239,0:02:12.720
magical it's an all-in-one solution

0:02:10.720,0:02:14.480
like I said the gnu software aligns with

0:02:12.720,0:02:16.800
creative commons ideas

0:02:14.480,0:02:18.879
I can do file management I can author

0:02:16.800,0:02:20.239
html all the web stuff I need even

0:02:18.879,0:02:22.640
illiterate style

0:02:20.239,0:02:24.640
I can handle media and metadata I've got

0:02:22.640,0:02:26.800
version control remote server access

0:02:24.640,0:02:28.080
all the tools I need are right under my

0:02:26.800,0:02:30.000
fingertips with this

0:02:28.080,0:02:31.440
tool that I use every day for a long

0:02:30.000,0:02:34.319
time I don't need to look

0:02:31.440,0:02:36.319
elsewhere and it was a challenge I

0:02:34.319,0:02:39.440
wanted to see if I could do this

0:02:36.319,0:02:41.680
all within Emacs itself so

0:02:39.440,0:02:43.440
how do you use Emacs to publish music

0:02:41.680,0:02:45.120
well for me I needed

0:02:43.440,0:02:46.480
a couple of things I needed to be able

0:02:45.120,0:02:48.319
to audition unlabel

0:02:46.480,0:02:50.000
unlabeled audio tracks I have a lot of

0:02:48.319,0:02:51.280
files that I don't know where they

0:02:50.000,0:02:53.840
came from I don't know what they are I

0:02:51.280,0:02:56.800
need to be able to listen to them

0:02:53.840,0:02:58.480
and I need to be able to add metadata to

0:02:56.800,0:03:00.800
whatever audio format it is

0:02:58.480,0:03:03.200
and rename the files based on that

0:03:00.800,0:03:05.120
metadata potentially

0:03:03.200,0:03:07.040
and in the end I wanted to take those

0:03:05.120,0:03:08.319
files and programmatically produce a web

0:03:07.040,0:03:11.920
page

0:03:08.319,0:03:14.159
for people to consume I found out that

0:03:11.920,0:03:14.879
Emacs scores a hundred percent on all of

0:03:14.159,0:03:18.000
these

0:03:14.879,0:03:20.720
requirements that I had for this and

0:03:18.000,0:03:22.640
a lot of that came from emms the Emacs

0:03:20.720,0:03:26.080
multimedia system

0:03:22.640,0:03:27.760
um emms is is great um

0:03:26.080,0:03:30.000
if you haven't checked it out please do

0:03:27.760,0:03:32.959
it's a little bit unintuitive but

0:03:30.000,0:03:34.000
once you get into it you know it works

0:03:32.959,0:03:36.640
um

0:03:34.000,0:03:38.720
and basically what emms gave me was the

0:03:36.640,0:03:39.680
ability to listen to the tracks organize

0:03:38.720,0:03:41.280
playlists

0:03:39.680,0:03:42.959
and on top of that it gave me super

0:03:41.280,0:03:45.040
powered metadata authoring

0:03:42.959,0:03:47.200
and I'm going to demonstrate that to you

0:03:45.040,0:03:50.879
so in order to do this

0:03:47.200,0:03:54.879
you have to require markable playlists

0:03:50.879,0:03:58.720
so require ems mark and so I'm going to

0:03:54.879,0:03:58.720
go through and I'm going to open the red

0:03:59.680,0:04:04.480
I've got this this these files here so

0:04:02.319,0:04:06.080
you can see these files are mp3s

0:04:04.480,0:04:07.599
um they're recorded on a digital

0:04:06.080,0:04:09.920
recorder

0:04:07.599,0:04:11.760
um if I had the choice I would have a

0:04:09.920,0:04:12.319
recorder that used a different format

0:04:11.760,0:04:14.640
but

0:04:12.319,0:04:16.160
so be it so I can mark all these files

0:04:14.640,0:04:20.000
and I can do ems

0:04:16.160,0:04:22.880
add to red and now they've been loaded

0:04:20.000,0:04:22.880
into a playlist

0:04:27.040,0:04:30.400
so you can see the playlist here there's

0:04:29.040,0:04:32.000
some leftover files

0:04:30.400,0:04:33.759
so I've got these three files in my

0:04:32.000,0:04:34.639
playlist and as you can see it's just

0:04:33.759,0:04:36.800
the file name

0:04:34.639,0:04:38.560
the path I don't have any metadata

0:04:36.800,0:04:41.360
associated with them

0:04:38.560,0:04:43.440
in this playlist I can hit e capital e

0:04:41.360,0:04:47.360
and it'll bring up a buffer showing

0:04:43.440,0:04:49.840
um the tag information that I have

0:04:47.360,0:04:51.520
and so I could edit these here and I

0:04:49.840,0:04:53.919
could edit them one at a time but that's

0:04:51.520,0:04:57.440
not really great I want superpower

0:04:53.919,0:05:00.320
metadata authoring so

0:04:57.440,0:05:00.320
by marking them

0:05:04.479,0:05:08.479
by marking them I can then hit e and I

0:05:07.680,0:05:10.479
have

0:05:08.479,0:05:12.639
all three of the tracks loaded up in

0:05:10.479,0:05:15.759
this tags buffer

0:05:12.639,0:05:18.800
on top of that I can do emms

0:05:15.759,0:05:22.840
tag editor set all ctrl c control

0:05:18.800,0:05:25.680
r and I want to set the artist

0:05:22.840,0:05:26.320
so these are some recordings of my

0:05:25.680,0:05:31.039
family

0:05:26.320,0:05:35.600
so shangri-lux set all three of them

0:05:31.039,0:05:40.160
I want to set the album um

0:05:35.600,0:05:43.600
spring walk with lap harp

0:05:40.160,0:05:43.600
and I want to set the year

0:05:45.520,0:05:50.840
and then I'm going to go ahead and put

0:05:48.960,0:05:53.759
these in

0:05:50.840,0:05:55.840
manually

0:05:53.759,0:05:57.039
but with the power of Emacs keyboard

0:05:55.840,0:05:59.600
macros and

0:05:57.039,0:06:02.319
registers and so on I could do this

0:05:59.600,0:06:04.000
programmatically as well

0:06:02.319,0:06:06.000
which would make it a lot easier if I

0:06:04.000,0:06:07.440
hadn't met much more than three files to

0:06:06.000,0:06:09.919
do this with

0:06:07.440,0:06:11.520
submit the changes with ctrl c ctrl c

0:06:09.919,0:06:13.120
and now we've got the playlist you can

0:06:11.520,0:06:15.039
see the artist and track number have

0:06:13.120,0:06:17.360
been updated here

0:06:15.039,0:06:19.039
and then the final piece of this is that

0:06:17.360,0:06:20.479
if you look at this you can see that the

0:06:19.039,0:06:22.639
file name is still the same

0:06:20.479,0:06:24.560
so if I were looking to the directory I

0:06:22.639,0:06:26.479
would still have this file name

0:06:24.560,0:06:28.000
when packaging these up for a release

0:06:26.479,0:06:30.319
for people to download

0:06:28.000,0:06:32.400
it's nice to be able to have that file

0:06:30.319,0:06:34.800
name reflect the track number and the

0:06:32.400,0:06:35.680
artist and so on so there's another

0:06:34.800,0:06:38.240
command

0:06:35.680,0:06:38.240
mms

0:06:41.199,0:06:45.120
rename tag editor rename so it could be

0:06:44.160,0:06:47.199
just capital r

0:06:45.120,0:06:48.880
I think I need to mark all of these hit

0:06:47.199,0:06:50.000
capital r and then it's going to ask me

0:06:48.880,0:06:53.599
to confirm

0:06:50.000,0:06:53.599
and say yes to all of them

0:06:54.400,0:07:04.319
and now if you look in the dread

0:07:02.720,0:07:06.319
whoops I have to update it you'll see

0:07:04.319,0:07:09.840
it's been updated with the artist

0:07:06.319,0:07:11.120
the name track and track number and

0:07:09.840,0:07:14.639
track name

0:07:11.120,0:07:17.360
um so this format is a format string so

0:07:14.639,0:07:20.479
it's customizable of course

0:07:17.360,0:07:21.039
I just decided to go with the default so

0:07:20.479,0:07:24.160
that's

0:07:21.039,0:07:26.000
pretty great this workflow

0:07:24.160,0:07:28.080
just with emms I didn't have to do

0:07:26.000,0:07:30.960
anything this is all there it's all

0:07:28.080,0:07:32.639
all built in um it gave me exactly what

0:07:30.960,0:07:35.599
I was looking for in terms of being able

0:07:32.639,0:07:37.599
to process a lot of raw audio files

0:07:35.599,0:07:39.280
add metadata to them and get them ready

0:07:37.599,0:07:41.599
for publishing

0:07:39.280,0:07:43.520
and this is for publishing for playback

0:07:41.599,0:07:44.879
in any media player it'll it'll be

0:07:43.520,0:07:46.560
useful

0:07:44.879,0:07:48.479
not just for the web page that I'm

0:07:46.560,0:07:50.560
building so the

0:07:48.479,0:07:53.440
final part of course is um to build the

0:07:50.560,0:07:54.960
web page and Emacs makes authoring html

0:07:53.440,0:07:57.440
trivial

0:07:54.960,0:07:59.039
like as I was going through this I

0:07:57.440,0:08:00.400
wanted to challenge myself and just be

0:07:59.039,0:08:03.120
like can I do this with all

0:08:00.400,0:08:03.520
just all with Emacs like can I just make

0:08:03.120,0:08:05.440
this

0:08:03.520,0:08:07.039
I don't need a I don't need ruby I don't

0:08:05.440,0:08:08.960
need rails I don't need node I don't

0:08:07.039,0:08:10.560
need any of this other stuff I have my

0:08:08.960,0:08:12.560
tool right here it's a fully

0:08:10.560,0:08:15.039
it's a whole operating system basically

0:08:12.560,0:08:17.360
plus programming languages

0:08:15.039,0:08:19.919
so the first thing I started with was

0:08:17.360,0:08:22.560
buffer scripting for manipulating text

0:08:19.919,0:08:24.319
that's kind of the easiest way to do it

0:08:22.560,0:08:25.280
and basically anything you can do in a

0:08:24.319,0:08:28.479
buffer you can do

0:08:25.280,0:08:30.319
programmatically with e-lisp so this

0:08:28.479,0:08:33.919
might be a good example for beginners if

0:08:30.319,0:08:36.000
you haven't done any e-lisp yet

0:08:33.919,0:08:36.959
like a simple example is to create this

0:08:36.000,0:08:40.000
this div

0:08:36.959,0:08:41.760
output here I can you

0:08:40.000,0:08:44.240
can use this with temp buffer so

0:08:41.760,0:08:46.640
basically creating an imaginary buffer

0:08:44.240,0:08:48.800
insert is just like typing so you put

0:08:46.640,0:08:50.959
strings in you put new lines in

0:08:48.800,0:08:52.080
can cap build some strings together and

0:08:50.959,0:08:54.000
here you can see I'm

0:08:52.080,0:08:55.360
I'm doing a random number so every time

0:08:54.000,0:08:57.920
I execute this

0:08:55.360,0:09:01.040
my content changes so I can generate

0:08:57.920,0:09:04.399
dynamic content in html blocks

0:09:01.040,0:09:05.920
with e-lisp for my

0:09:04.399,0:09:08.000
web page builder it's a little more

0:09:05.920,0:09:12.080
complex I'm pulling data out

0:09:08.000,0:09:15.440
using emms data structures

0:09:12.080,0:09:16.080
so it's pulling that out from the track

0:09:15.440,0:09:18.720
data

0:09:16.080,0:09:19.440
and then I'm I'm using some program

0:09:18.720,0:09:21.440
program to

0:09:19.440,0:09:23.200
generate list elements so each track is

0:09:21.440,0:09:25.120
going to have the title

0:09:23.200,0:09:26.959
and track number and then a button for

0:09:25.120,0:09:29.519
playing it plus the source

0:09:26.959,0:09:30.480
of the audio file which will get added

0:09:29.519,0:09:32.640
here

0:09:30.480,0:09:34.839
right now this is hard coded for opus so

0:09:32.640,0:09:37.200
it won't work for my

0:09:34.839,0:09:39.120
mp3s um

0:09:37.200,0:09:41.200
I'm going to skip over snippets turns

0:09:39.120,0:09:45.519
out format strings were good enough

0:09:41.200,0:09:48.160
for me um snippets could be useful but

0:09:45.519,0:09:49.839
format is super powerful and I didn't

0:09:48.160,0:09:51.279
really even need all that much power

0:09:49.839,0:09:53.519
basically just doing string

0:09:51.279,0:09:54.560
interpolation so if you haven't seen

0:09:53.519,0:09:56.720
format before

0:09:54.560,0:09:59.120
you basically put these control strings

0:09:56.720,0:10:03.120
or control characters inside of a string

0:09:59.120,0:10:05.040
and you can generate you can generate an

0:10:03.120,0:10:07.600
output string that you want

0:10:05.040,0:10:08.720
so in my generator code basically it's

0:10:07.600,0:10:10.959
down here

0:10:08.720,0:10:12.800
um I'm calling format with this sparred

0:10:10.959,0:10:15.920
vivomax template

0:10:12.800,0:10:18.240
and that's basically a big

0:10:15.920,0:10:20.399
a big string of html it's just each you

0:10:18.240,0:10:21.200
know my whole page of html with a couple

0:10:20.399,0:10:22.959
places

0:10:21.200,0:10:24.399
with those control characters in just

0:10:22.959,0:10:26.399
four places

0:10:24.399,0:10:29.760
and one of them populates the track list

0:10:26.399,0:10:32.079
that's really the meat of the program

0:10:29.760,0:10:33.440
and again this is a combination of using

0:10:32.079,0:10:36.640
buffer scripting

0:10:33.440,0:10:37.279
using html mode inserting text format

0:10:36.640,0:10:40.000
strings

0:10:37.279,0:10:41.920
and then I can indent region so the html

0:10:40.000,0:10:45.200
actually looks pretty

0:10:41.920,0:10:50.160
when it comes out of it as well

0:10:45.200,0:10:52.560
um I will show that just really quick

0:10:50.160,0:10:52.560
actually

0:10:54.000,0:10:58.800
so you can see this is the html that got

0:10:56.880,0:11:02.560
generated I've got my template

0:10:58.800,0:11:05.760
I inserted the title here the style the

0:11:02.560,0:11:07.920
font was all inserted

0:11:05.760,0:11:11.200
and then this whole list of of tracks

0:11:07.920,0:11:14.399
here it's kind of messy to look at

0:11:11.200,0:11:15.920
but this track list this whole div here

0:11:14.399,0:11:18.560
is all generated by

0:11:15.920,0:11:20.800
my generator code and it works it's

0:11:18.560,0:11:20.800
great

0:11:22.480,0:11:26.160
okay moving on

0:11:27.120,0:11:32.079
um so the other thing was that as I was

0:11:30.240,0:11:33.200
developing this I decided to use ort

0:11:32.079,0:11:35.360
babel and some of his

0:11:33.200,0:11:36.880
its features um for multi-language

0:11:35.360,0:11:37.839
things because I needed to style it with

0:11:36.880,0:11:40.480
css and

0:11:37.839,0:11:42.480
and put actions in javascript and also I

0:11:40.480,0:11:45.519
used svg for authoring stuff

0:11:42.480,0:11:46.079
um and it was a little bit complicated I

0:11:45.519,0:11:47.680
probably

0:11:46.079,0:11:49.600
probably would have been simpler had I

0:11:47.680,0:11:51.440
not used org babble but it's also really

0:11:49.600,0:11:53.839
fun and it's I think it's a cool

0:11:51.440,0:11:55.839
cool idea to use literate programming my

0:11:53.839,0:11:57.600
idea was to create kind of like html

0:11:55.839,0:11:59.519
components like I could name it like

0:11:57.600,0:12:01.440
this

0:11:59.519,0:12:02.800
put a format string inside it and build

0:12:01.440,0:12:05.519
a function

0:12:02.800,0:12:07.120
in e-lisp to format it and spit out the

0:12:05.519,0:12:10.320
html that I want

0:12:07.120,0:12:12.880
and by doing this then I can like uh

0:12:10.320,0:12:14.320
just change things in my org file which

0:12:12.880,0:12:16.959
not getting a whole lot of time to work

0:12:14.320,0:12:19.839
on it I can come back to it and

0:12:16.959,0:12:21.920
I have a lot of notes and I can I can

0:12:19.839,0:12:24.399
kind of generate things as I'm going and

0:12:21.920,0:12:25.600
keep notes for myself and keep the

0:12:24.399,0:12:27.519
I don't know it's cool literate

0:12:25.600,0:12:29.279
programming is fun um so I don't need to

0:12:27.519,0:12:31.040
go into that too much but you can see if

0:12:29.279,0:12:33.360
I execute this here

0:12:31.040,0:12:34.880
I get the the div that I want um it's a

0:12:33.360,0:12:36.480
little bit funny you'll see I have the

0:12:34.880,0:12:39.200
string like this the way that

0:12:36.480,0:12:40.000
no web expands I can't do this on a

0:12:39.200,0:12:43.839
single line

0:12:40.000,0:12:45.440
it it it looks funny when you do that

0:12:43.839,0:12:48.560
so that might be something to work out

0:12:45.440,0:12:48.959
later css blocks can either be tangled

0:12:48.560,0:12:51.680
out

0:12:48.959,0:12:52.639
and referenced in the html source or

0:12:51.680,0:12:54.639
inlined

0:12:52.639,0:12:56.959
here's an example I have of inlining it

0:12:54.639,0:13:00.320
so I've got my little css block name

0:12:56.959,0:13:03.040
style javascript name script

0:13:00.320,0:13:04.839
and then I've got this html source block

0:13:03.040,0:13:07.519
with no web

0:13:04.839,0:13:07.920
expansion um these double angle brackets

0:13:07.519,0:13:09.839
here

0:13:07.920,0:13:11.680
are where I'm going to expand the block

0:13:09.839,0:13:12.639
name style I'm actually calling a

0:13:11.680,0:13:14.399
function

0:13:12.639,0:13:17.040
so I want the result of the function

0:13:14.399,0:13:20.560
here and then the script will just get

0:13:17.040,0:13:22.959
expanded here so or babel expand source

0:13:20.560,0:13:25.360
block

0:13:22.959,0:13:28.160
you can see what it looks like you know

0:13:25.360,0:13:29.920
I've got my style here I've got my title

0:13:28.160,0:13:31.279
I've got that main content class I

0:13:29.920,0:13:33.040
showed before

0:13:31.279,0:13:34.480
and the script as well so that's kind of

0:13:33.040,0:13:36.320
cool like

0:13:34.480,0:13:38.160
I could just run org babel tangle and

0:13:36.320,0:13:40.480
get my thing out and just

0:13:38.160,0:13:41.600
edit one file instead of multiple files

0:13:40.480,0:13:45.120
not for everyone

0:13:41.600,0:13:45.120
but I I thought it was kind of fun

0:13:45.839,0:13:49.199
all right oh and the final thing is that

0:13:47.760,0:13:52.880
in Emacs you can

0:13:49.199,0:13:57.199
author and view svg so this is just an

0:13:52.880,0:13:59.519
org um this svg I used to make the play

0:13:57.199,0:14:02.800
and pause buttons but I didn't know this

0:13:59.519,0:14:04.959
but if you edit an svg file you can

0:14:02.800,0:14:07.360
toggle back and forth

0:14:04.959,0:14:07.360
between

0:14:08.800,0:14:13.120
between the code and the and the image

0:14:13.199,0:14:17.360
it's pretty sweet so I can kind of

0:14:16.160,0:14:19.680
iteratively work

0:14:17.360,0:14:20.560
work through this because of of how

0:14:19.680,0:14:24.480
Emacs is

0:14:20.560,0:14:24.959
like that so um final considerations

0:14:24.480,0:14:27.360
here

0:14:24.959,0:14:29.279
like when doing this I want it to be all

0:14:27.360,0:14:30.079
free so I want to use fonts that use a

0:14:29.279,0:14:32.800
free license

0:14:30.079,0:14:34.800
I found gnu unifont it's kind of cool

0:14:32.800,0:14:37.600
the content license I chose

0:14:34.800,0:14:39.920
creative commons attribution share like

0:14:37.600,0:14:42.880
which is kind of like the gpl

0:14:39.920,0:14:44.800
ideally I could serve it with Emacs I'd

0:14:42.880,0:14:46.320
like to remove idiosyncrasy so other

0:14:44.800,0:14:48.720
people can use it

0:14:46.320,0:14:51.040
it's pretty much just my tool right now

0:14:48.720,0:14:51.440
um not requiring the web browser I can

0:14:51.040,0:14:54.079
ship

0:14:51.440,0:14:54.480
playlists so that you can just you know

0:14:54.079,0:14:58.000
click

0:14:54.480,0:15:00.639
or link to a playlist on your favorite

0:14:58.000,0:15:02.639
player even emms if you want and then

0:15:00.639,0:15:04.320
packing up those albums in like a zip or

0:15:02.639,0:15:08.639
tar file

0:15:04.320,0:15:10.880
so um you can go to churls.world

0:15:08.639,0:15:14.000
it just has a link to this album I'll

0:15:10.880,0:15:17.519
display it here in just a second

0:15:14.000,0:15:21.040
you can contact me I'm shosheen on Emacs

0:15:17.519,0:15:23.680
in irc and on sourcehut you can email me

0:15:21.040,0:15:26.800
grant at charles world personal or grant

0:15:23.680,0:15:28.320
on a bridge software all right now let's

0:15:26.800,0:15:32.000
see

0:15:28.320,0:15:32.000
about this

0:15:32.079,0:15:35.120
this is up online so if you want to

0:15:33.680,0:15:39.199
listen to my

0:15:35.120,0:15:43.040
college band's album from 20 years ago

0:15:39.199,0:15:47.680
here it is cassiopeia basement days

0:15:43.040,0:15:48.000
whoops I made this art in krita you can

0:15:47.680,0:15:51.199
press

0:15:48.000,0:15:55.040
play you can skip around

0:15:51.199,0:15:58.560
I did I do have the playlist up here too

0:15:55.040,0:16:00.880
so yeah thanks for listening

0:15:58.560,0:16:04.000
I hope you enjoyed it and enjoy the rest

0:16:00.880,0:16:04.000
of EmacsConf

0:16:04.360,0:16:07.360
goodbye