diff --git a/.config/mpd/mpd.conf b/.config/mpd/mpd.conf
deleted file mode 100644
index 17c95ec..0000000
--- a/.config/mpd/mpd.conf
+++ /dev/null
@@ -1,27 +0,0 @@
-# Requested files
-db_file "~/.config/mpd/database"
-log_file "~/.config/mpd/log"
-
-#Optional files
-music_directory "~/Music"
-playlist_directory "~/.config/mpd/playlists"
-pid_file "~/.config/mpd/pid"
-state_file "~/.config/mpd/state"
-sticker_file "~/.config/mpd/sticker.sql"
-bind_to_address "localhost"
-
-max_output_buffer_size "16304"
-
-auto_update "yes"
-
-audio_output {
- type "fifo"
- name "my_fifo"
- path "/tmp/mpd.fifo"
- format "44100:16:2"
-}
-
-audio_output {
- type "pulse"
- name "pulse audio"
-}
diff --git a/org/config/mpd.org b/org/config/mpd.org
new file mode 100644
index 0000000..6007969
--- /dev/null
+++ b/org/config/mpd.org
@@ -0,0 +1,104 @@
+# -*- after-save-hook: (org-babel-tangle t); -*-
+#+title: MPD Configuration
+#+setupfile: ~/org/config/headers
+#+options: auto-id:t
+#+html_head:
+#+html_head:
+#+html_head:
+#+property: header-args:emacs-lisp :lexical t :exports none :tangle no
+#+property: header-args:emacs-lisp+ :noweb yes :wrap src conf-space
+#+property: header-args:conf-space :tangle ~/.config/mpd/mpd.conf :noweb yes :exports code
+
+* Introduction
+:PROPERTIES:
+:CUSTOM_ID: Introduction-zln38f71v8j0
+:END:
+As its name indicates, the [[https://www.musicpd.org/][Music Player Daemon]] --- or MPD for short
+--- is a daemon that manages music files on a computer and plays them.
+It can be manipulated by various front-end applications, such as the
+command-line utility ~mpc~, TUI ~ncmpcpp~, or GUI ~cantata~. In my case, I
+use mainly ~ncmpcpp~ and Emacs’ EMMS.
+
+On my computer, MPD runs as a user daemon, as seen in [[file:bootstrap.org::#Execute_bootstrap-Enable_some_services-Mpd-f0f5b9b7][my bootstrap
+file here]].
+
+* Required Parameters
+:PROPERTIES:
+:CUSTOM_ID: Required-Parameters-sa4jfr71v8j0
+:END:
+MPD requires a few compulsory parameters that we will see below.
+#+name: mpd-required-parameters
+| Parameter name | Value | Comment |
+|-------------------------+---------------------------+--------------------------------------------------------------------------|
+| =follow_outside_symlinks= | =yes= | Whether to follow symlinks pointing outside the music directory |
+| =follow_inside_symlinks= | =yes= | Whether to follow symlinks pointing inside the music directory |
+| =db_file= | =~/.config/mpd/database= | Location of MPD’s database |
+| =sticker_file= | =~/.config/mpd/sticker.sql= | Location of the sticker database (dynamic information attached to songs) |
+| =log_file= | =~/.config/mpd/log= | Location of MPD’s log file |
+
+#+name: mpd-gen-values
+#+begin_src emacs-lisp :var table=mpd-required-parameters :exports results
+(mapconcat (lambda (parameter)
+ (let* ((trim-name (lambda (parameter) (string-replace "=" "" parameter)))
+ (name (apply trim-name `(,(car parameter))))
+ (value (apply trim-name `(,(cadr parameter)))))
+ (format "%s \"%s\"" name value)))
+ table
+ "\n")
+#+end_src
+
+#+RESULTS: mpd-gen-values
+#+begin_src conf-space
+follow_outside_symlinks "yes"
+follow_inside_symlinks "yes"
+db_file "~/.config/mpd/database"
+sticker_file "~/.config/mpd/sticker.sql"
+log_file "~/.config/mpd/log"
+#+end_src
+
+* Optional Parameters
+:PROPERTIES:
+:CUSTOM_ID: Optional-Parameters-hkw8zz71v8j0
+:END:
+While these values are not strictly necessary, some are still
+extremely useful such as ~music_directory~ so we don’t have to manually
+add our music to MPD each time we run it.
+#+name: mpd-optional-parameters
+| Parameter | Value | Comment |
+|--------------------+---------------------+-----------------------------------------------------------|
+| =music_directory= | =~/Music= | Location of the music directory |
+| =playlist_directory= | =~/Music/playlists= | Location of MPD playlists |
+| =pid_file= | =~/.config/mpd/pid= | Location of MPD’s PID |
+| =state_file= | =~/.config/mpd/state= | File where the state of MPD is saved when killed |
+| =bind_to_address= | =localhost= | Limit MPD to the localhost address |
+| =auto_update= | =yes= | No need to manually update MPD’s database with ~mpc update~ |
+
+#+begin_src conf-space
+<>
+#+end_src
+
+* Audio outputs
+:PROPERTIES:
+:CUSTOM_ID: Audio-outputs-emqjro81v8j0
+:END:
+Two audio outputs will be defined. The first one is dedicated to
+Pulseaudio so I can actually hear my music. Its configuration is
+simple, really.
+#+begin_src conf-space
+audio_output {
+ type "pulse"
+ name "pulse audio"
+}
+#+end_src
+
+Another one is created, but this time for the visualizer of ~ncmpcpp~.
+It is not necessary to create this one if you don’t plan on using this
+feature.
+#+begin_src conf-space
+audio_output {
+ type "fifo"
+ name "my_fifo"
+ path "/tmp/mpd.fifo"
+ format "44100:16:2"
+}
+#+end_src