summaryrefslogtreecommitdiffstats
path: root/2019/transcripts/28.md
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--2019/transcripts/28.md104
1 files changed, 0 insertions, 104 deletions
diff --git a/2019/transcripts/28.md b/2019/transcripts/28.md
deleted file mode 100644
index 8befe3b8..00000000
--- a/2019/transcripts/28.md
+++ /dev/null
@@ -1,104 +0,0 @@
-[[!meta title="Play and control your music with Emacs - Damien Cassou"]]
-
-- Hi everyone. In this lightening talk, I would like to present
- MPDel, which is a user interface for MPD, the Music Player Daemon,
- that's implemented in Emacs Lisp and runs entirely within Emacs. So
- it relies on Music Player Daemon, which is quite old because it's a
- sixteen years old project serving music with many different clients.
- So if I look at clients of MPD you see there are all different kinds
- so this ?android? projects or web projects or GTK projects and a
- curses project, web projects, so yeah many different kinds of
- clients. MPDel is implemented in Emacs Lisp, it's divided into
- three parts. So there is a library libmpdel, which is it's own
- project. That's doesn't propose any user interface, but instead it
- proposes a set of primitive functions to build user interfaces on
- top. Then you have the screenshot here on top of the MPDel, so it's
- mostly tabulated lists based, and then you have another UI which is
- based on ?IV?, and I will present ?the? two user interfaces in this
- context of this project. So let's start the video by navigating the
- music database. So it's a simple job to get the list of all your
- artists. You can navigate with ?turned-out? shortcuts. And you
- have isearch obviously ?for? imenu, and so I can go to ?pink? sites
- with quick shortcuts. When you select your artists you can go to
- which album by pressing return, and to go from an album to a
- particular artist's songs, you also press return.
-
-- So that is going ?deep? from the album to the artist and from the
- artist to the songs, and with carrots or shift-6 on my keyboard you
- go up to the parent from the song to the albums, and from the albums
- to the artists. So the next thing we can see is the playlists, so
- on the left you have the database, and on the right I will put the
- playlist. So for now there is nothing to listen to, and I will add
- things in these lists, so we can add either artists, albums or
- individual songs, so let's add one of my favorite songs, ?So equals?
- from Pink Floyd. So you can add it to the playlist, or add it
- immediately stop playing it, so this time I want to immediately play
- it, so I press P for play.
-
-- And then I will press the carrot to go back to the artists and add
- some more music, I will add an album by Dire Straits. So if I press
- P now it will add all the album and also start with the first song,
- but because I don't want to interrupt ?ecos? I will just press a to
- add all the songs from this album. What we want to do now is
- manipulate the playlists, so for now ?ecos? has started playing and
- I can modify the playlist to decide what will be next, so by default
- it's Sultans of Swing, but I can change that for prioritization for
- example.
-
-- Like that, so I can move one song, I can also mark multiple songs
- and move them around.
-
-- It's also possible to play the next song and the previous song so
- you have M-n to play the next. And M-p to play the previous one. If
- you wanted to delete a few songs from your album you can select them
- and then press k for deletion, and then they are removed from the
- database, not from the database, but only from the playlists. With
- t you can toggle the mark, so if I want to select everything by
- ?except ...? I can just press t. And t again to ??, if I want to
- select everything I can always press t when nothing is marked, so I
- can erase everything at once.
-
-- Something I can do now is display some information about the
- currently played song, so I can press v wherever I am to get the
- list of songs. It's very important to notice that whatever view you
- are in the shortcuts are always the same, so if I go back to the
- navigator with n, I can press ?? information about the current song,
- so v here, which ?? about the current song. So you see that there
- is the time, and the album and artist and ?? status, so if I pause
- the music, it ?? pause. And backplaying. I can move forward and
- move backward with M-s and M-v, I can do that slowly or fast with
- different shortcuts, and from the current song you can press carrots
- to go to the parents, so it's exactly the same shortcut as how we
- were navigating from the songs to the albums and from the albums to
- the artists, so it's carrots, and you go from the song to its album
- and then from the album to the artist.
-
-- I tried when designing the shortcuts to make the keybindings do
- always the same thing wherever you are, so if I press M-f now I will
- fast-forward the current song, so the same shortcuts work the same
- everywhere. And if I press ?....? Another way to control the
- current playlists or stop playlists is to use the Ivy based
- interface so it doesn't pop up any buffer, but you can still
- navigate your database and select the songs to play. So if I start
- the interface I get the list of all my artists in the minibuffer, so
- I can choose for example MCC artists and the ?? ?king? and the song
- I will pick this one for example, and there are many things I can do
- from here, so I can add to the current playlist I can start playing
- immediately, I can start and stop playlists, so let's see I just p
- for playing it immediately.
-
-- So MPDel is mostly based on tabulated lists, which I really liked.
- And after I implemented MPDel, I liked that kind of view so much I
- decided to use the views for other kinds of packages, so I
- implemented a database navigator, and also a network manager client
- using tabulated lists, and I realized that all of those libraries
- and tools they were sharing the same kind of code. So I decided to
- abstract away from all of those and I created navigel which makes it
- very easy to implement tabulated lists if you have a model of your
- domain data that you want to navigate.
-
-- There is a lightening talk at EmacsConf about navigel so I encourage
- you to have a look at it if you're interested in how I reimplemented
- MPDel so that it's much simpler, and how I implemented all the other
- packages. This is the end of my talk, I hope you liked it. And
- happy EmacsConf.