1094 lines
31 KiB
Org Mode
1094 lines
31 KiB
Org Mode
#+TITLE: Music/Sound Configuration
|
|
:DRAWER:
|
|
#+STARTUP: overview
|
|
|
|
#+LANGUAGE: en
|
|
#+EMAIL: dehaeze.thomas@gmail.com
|
|
#+AUTHOR: Dehaeze Thomas
|
|
|
|
#+HTML_LINK_HOME: ./index.html
|
|
#+HTML_LINK_UP: ./index.html
|
|
|
|
#+HTML_HEAD: <link rel="stylesheet" type="text/css" href="../css/htmlize.css"/>
|
|
#+HTML_HEAD: <link rel="stylesheet" type="text/css" href="../css/readtheorg.css"/>
|
|
#+HTML_HEAD: <script type="text/javascript" src="../js/jquery.min.js"></script>
|
|
#+HTML_HEAD: <script type="text/javascript" src="../js/bootstrap.min.js"></script>
|
|
#+HTML_HEAD: <script type="text/javascript" src="../js/jquery.stickytableheaders.min.js"></script>
|
|
#+HTML_HEAD: <script type="text/javascript" src="../js/readtheorg.js"></script>
|
|
:END:
|
|
|
|
* Pavu Control
|
|
:PROPERTIES:
|
|
:header-args: :tangle ~/.config/pavucontrol.ini
|
|
:header-args+: :comments both :mkdirp yes
|
|
:END:
|
|
|
|
#+BEGIN_SRC conf
|
|
[window]
|
|
width=500
|
|
height=400
|
|
sinkInputType=1
|
|
sourceOutputType=1
|
|
sinkType=0
|
|
sourceType=1
|
|
showVolumeMeters=1
|
|
#+END_SRC
|
|
|
|
* NCMPCPP
|
|
https://rybczak.net/ncmpcpp/
|
|
Cheatsheet: https://pkgbuild.com/~jelle/ncmpcpp/
|
|
|
|
** Config
|
|
:PROPERTIES:
|
|
:header-args:conf: :tangle ~/.config/ncmpcpp/config
|
|
:header-args:conf+: :comments both :mkdirp yes
|
|
:END:
|
|
|
|
#+BEGIN_SRC conf
|
|
##############################################################################
|
|
## This is the example configuration file. Copy it to $HOME/.ncmpcpp/config ##
|
|
## or $XDG_CONFIG_HOME/ncmpcpp/config and set up your preferences. ##
|
|
##############################################################################
|
|
#
|
|
##### directories ######
|
|
##
|
|
## Directory for storing ncmpcpp related files. Changing it is useful if you
|
|
## want to store everything somewhere else and provide command line setting for
|
|
## alternative location to config file which defines that while launching
|
|
## ncmpcpp.
|
|
##
|
|
#
|
|
ncmpcpp_directory = ~/.config/ncmpcpp
|
|
#
|
|
##
|
|
## Directory for storing downloaded lyrics. It defaults to ~/.lyrics since other
|
|
## MPD clients (eg. ncmpc) also use that location.
|
|
##
|
|
#
|
|
#lyrics_directory = ~/.lyrics
|
|
#
|
|
##### connection settings #####
|
|
#
|
|
mpd_host = localhost
|
|
|
|
mpd_port = 6600
|
|
|
|
#mpd_connection_timeout = 5
|
|
|
|
## Needed for tag editor and file operations to work.
|
|
##
|
|
mpd_music_dir = ~/Music
|
|
#
|
|
#mpd_crossfade_time = 5
|
|
#
|
|
##### music visualizer #####
|
|
##
|
|
## Note: In order to make music visualizer work you'll need to use mpd fifo
|
|
## output, whose format parameter has to be set to 44100:16:1 for mono
|
|
## visualization or 44100:16:2 for stereo visualization. Example configuration
|
|
## (it has to be put into mpd.conf):
|
|
##
|
|
## audio_output {
|
|
## type "fifo"
|
|
## name "Visualizer feed"
|
|
## path "/tmp/mpd.fifo"
|
|
## format "44100:16:2"
|
|
## }
|
|
##
|
|
#
|
|
#visualizer_fifo_path = /tmp/mpd.fifo
|
|
#
|
|
##
|
|
## Note: Below parameter is needed for ncmpcpp to determine which output
|
|
## provides data for visualizer and thus allow syncing between visualization and
|
|
## sound as currently there are some problems with it.
|
|
##
|
|
#
|
|
#visualizer_output_name = Visualizer feed
|
|
#
|
|
##
|
|
## If you set format to 44100:16:2, make it 'yes'.
|
|
##
|
|
#visualizer_in_stereo = yes
|
|
#
|
|
##
|
|
## Note: Below parameter defines how often ncmpcpp has to "synchronize"
|
|
## visualizer and audio outputs. 30 seconds is optimal value, but if you
|
|
## experience synchronization problems, set it to lower value. Keep in mind
|
|
## that sane values start with >=10.
|
|
##
|
|
#
|
|
#visualizer_sync_interval = 30
|
|
#
|
|
##
|
|
## Note: To enable spectrum frequency visualization you need to compile ncmpcpp
|
|
## with fftw3 support.
|
|
##
|
|
#
|
|
## Available values: spectrum, wave, wave_filled, ellipse.
|
|
##
|
|
#visualizer_type = wave
|
|
#
|
|
#visualizer_look = ●▮
|
|
#
|
|
#visualizer_color = blue, cyan, green, yellow, magenta, red
|
|
#
|
|
## Alternative subset of 256 colors for terminals that support it.
|
|
##
|
|
#visualizer_color = 41, 83, 119, 155, 185, 215, 209, 203, 197, 161
|
|
#
|
|
##### system encoding #####
|
|
##
|
|
## ncmpcpp should detect your charset encoding but if it failed to do so, you
|
|
## can specify charset encoding you are using here.
|
|
##
|
|
## Note: You can see whether your ncmpcpp build supports charset detection by
|
|
## checking output of `ncmpcpp --version`.
|
|
##
|
|
## Note: Since MPD uses UTF-8 by default, setting this option makes sense only
|
|
## if your encoding is different.
|
|
##
|
|
#
|
|
#system_encoding = ""
|
|
#
|
|
##### delays #####
|
|
#
|
|
## Time of inactivity (in seconds) after playlist highlighting will be disabled
|
|
## (0 = always on).
|
|
##
|
|
#playlist_disable_highlight_delay = 5
|
|
#
|
|
## Defines how long messages are supposed to be visible.
|
|
##
|
|
#message_delay_time = 5
|
|
#
|
|
##### song format #####
|
|
##
|
|
## For a song format you can use:
|
|
##
|
|
## %l - length
|
|
## %f - filename
|
|
## %D - directory
|
|
## %a - artist
|
|
## %A - album artist
|
|
## %t - title
|
|
## %b - album
|
|
## %y - date
|
|
## %n - track number (01/12 -> 01)
|
|
## %N - full track info (01/12 -> 01/12)
|
|
## %g - genre
|
|
## %c - composer
|
|
## %p - performer
|
|
## %d - disc
|
|
## %C - comment
|
|
## %P - priority
|
|
## $R - begin right alignment
|
|
##
|
|
## If you want to make sure that a part of the format is displayed only when
|
|
## certain tags are present, you can archieve it by grouping them with brackets,
|
|
## e.g. '{%a - %t}' will be evaluated to 'ARTIST - TITLE' if both tags are
|
|
## present or '' otherwise. It is also possible to define a list of
|
|
## alternatives by providing several groups and separating them with '|',
|
|
## e.g. '{%t}|{%f}' will be evaluated to 'TITLE' or 'FILENAME' if the former is
|
|
## not present.
|
|
##
|
|
## Note: If you want to set limit on maximal length of a tag, just put the
|
|
## appropriate number between % and character that defines tag type, e.g. to
|
|
## make album take max. 20 terminal cells, use '%20b'.
|
|
##
|
|
## In addition, formats support markers used for text attributes. They are
|
|
## followed by character '$'. After that you can put:
|
|
##
|
|
## - 0 - default window color (discards all other colors)
|
|
## - 1 - black
|
|
## - 2 - red
|
|
## - 3 - green
|
|
## - 4 - yellow
|
|
## - 5 - blue
|
|
## - 6 - magenta
|
|
## - 7 - cyan
|
|
## - 8 - white
|
|
## - 9 - end of current color
|
|
## - b - bold text
|
|
## - u - underline text
|
|
## - r - reverse colors
|
|
## - a - use alternative character set
|
|
##
|
|
## If you don't want to use a non-color attribute anymore, just put it again,
|
|
## but this time insert character '/' between '$' and attribute character,
|
|
## e.g. {$b%t$/b}|{$r%f$/r} will display bolded title tag or filename with
|
|
## reversed colors.
|
|
##
|
|
## If you want to use 256 colors and/or background colors in formats (the naming
|
|
## scheme is described below in section about color definitions), it can be done
|
|
## with the syntax $(COLOR), e.g. to set the artist tag to one of the
|
|
## non-standard colors and make it have yellow background, you need to write
|
|
## $(197_yellow)%a$(end). Note that for standard colors this is interchangable
|
|
## with attributes listed above.
|
|
##
|
|
## Note: colors can be nested.
|
|
##
|
|
#
|
|
#song_list_format = {%a - }{%t}|{$8%f$9}$R{$3(%l)$9}
|
|
#
|
|
#song_status_format = {{%a{ "%b"{ (%y)}} - }{%t}}|{%f}
|
|
#
|
|
#song_library_format = {%n - }{%t}|{%f}
|
|
#
|
|
#alternative_header_first_line_format = $b$1$aqqu$/a$9 {%t}|{%f} $1$atqq$/a$9$/b
|
|
#
|
|
#alternative_header_second_line_format = {{$4$b%a$/b$9}{ - $7%b$9}{ ($4%y$9)}}|{%D}
|
|
#
|
|
#current_item_prefix = $(yellow)$r
|
|
#
|
|
#current_item_suffix = $/r$(end)
|
|
#
|
|
#current_item_inactive_column_prefix = $(white)$r
|
|
#
|
|
#current_item_inactive_column_suffix = $/r$(end)
|
|
#
|
|
#now_playing_prefix = $b
|
|
#
|
|
#now_playing_suffix = $/b
|
|
#
|
|
#browser_playlist_prefix = "$2playlist$9 "
|
|
#
|
|
#selected_item_prefix = $6
|
|
#
|
|
#selected_item_suffix = $9
|
|
#
|
|
#modified_item_prefix = $3> $9
|
|
#
|
|
##
|
|
## Note: attributes are not supported for the following variables.
|
|
##
|
|
#song_window_title_format = {%a - }{%t}|{%f}
|
|
##
|
|
## Note: Below variables are used for sorting songs in browser. The sort mode
|
|
## determines how songs are sorted, and can be used in combination with a sort
|
|
## format to specify a custom sorting format. Available values for
|
|
## browser_sort_mode are "name", "mtime", "format" and "noop".
|
|
##
|
|
#
|
|
#browser_sort_mode = name
|
|
#
|
|
#browser_sort_format = {%a - }{%t}|{%f} {(%l)}
|
|
#
|
|
##### columns settings #####
|
|
##
|
|
## syntax of song columns list format is "column column etc."
|
|
##
|
|
## - syntax for each column is:
|
|
##
|
|
## (width of the column)[color of the column]{displayed tag}
|
|
##
|
|
## Note: Width is by default in %, if you want a column to have fixed size, add
|
|
## 'f' after the value, e.g. (10)[white]{a} will be the column that take 10% of
|
|
## screen (so the real width will depend on actual screen size), whereas
|
|
## (10f)[white]{a} will take 10 terminal cells, no matter how wide the screen
|
|
## is.
|
|
##
|
|
## - color is optional (if you want the default one, leave the field empty).
|
|
##
|
|
## Note: You can give a column additional attributes by putting appropriate
|
|
## character after displayed tag character. Available attributes are:
|
|
##
|
|
## - r - column will be right aligned
|
|
## - E - if tag is empty, empty tag marker won't be displayed
|
|
##
|
|
## You can also:
|
|
##
|
|
## - give a column custom name by putting it after attributes, separated with
|
|
## character ':', e.g. {lr:Length} gives you right aligned column of lengths
|
|
## named "Length".
|
|
##
|
|
## - define sequence of tags, that have to be displayed in case predecessor is
|
|
## empty in a way similar to the one in classic song format, i.e. using '|'
|
|
## character, e.g. {a|c|p:Owner} creates column named "Owner" that tries to
|
|
## display artist tag and then composer and performer if previous ones are not
|
|
## available.
|
|
##
|
|
#
|
|
#song_columns_list_format = (20)[]{a} (6f)[green]{NE} (50)[white]{t|f:Title} (20)[cyan]{b} (7f)[magenta]{l}
|
|
#
|
|
##### various settings #####
|
|
#
|
|
##
|
|
## Note: Custom command that will be executed each time song changes. Useful for
|
|
## notifications etc.
|
|
##
|
|
execute_on_song_change = dunstify --replace=19845 "Now Playing ♫" "$(mpc current)"
|
|
|
|
#
|
|
##
|
|
## Note: Custom command that will be executed each time player state
|
|
## changes. The environment variable MPD_PLAYER_STATE is set to the current
|
|
## state (either unknown, play, pause, or stop) for its duration.
|
|
##
|
|
#
|
|
#execute_on_player_state_change = ""
|
|
#
|
|
#playlist_show_mpd_host = no
|
|
#
|
|
#playlist_show_remaining_time = no
|
|
#
|
|
#playlist_shorten_total_times = no
|
|
#
|
|
#playlist_separate_albums = no
|
|
#
|
|
##
|
|
## Note: Possible display modes: classic, columns.
|
|
##
|
|
#playlist_display_mode = columns
|
|
#
|
|
#browser_display_mode = classic
|
|
#
|
|
#search_engine_display_mode = classic
|
|
#
|
|
#playlist_editor_display_mode = classic
|
|
#
|
|
#discard_colors_if_item_is_selected = yes
|
|
#
|
|
#show_duplicate_tags = yes
|
|
#
|
|
#incremental_seeking = yes
|
|
#
|
|
#seek_time = 1
|
|
#
|
|
#volume_change_step = 2
|
|
#
|
|
#autocenter_mode = no
|
|
#
|
|
#centered_cursor = no
|
|
#
|
|
##
|
|
## Note: You can specify third character which will be used to build 'empty'
|
|
## part of progressbar.
|
|
##
|
|
#progressbar_look = =>
|
|
#
|
|
## Available values: database, playlist.
|
|
##
|
|
#default_place_to_search_in = database
|
|
#
|
|
## Available values: classic, alternative.
|
|
##
|
|
#user_interface = classic
|
|
#
|
|
#data_fetching_delay = yes
|
|
#
|
|
## Available values: artist, album_artist, date, genre, composer, performer.
|
|
##
|
|
#media_library_primary_tag = artist
|
|
#
|
|
#media_library_albums_split_by_date = yes
|
|
#
|
|
## Available values: wrapped, normal.
|
|
##
|
|
#default_find_mode = wrapped
|
|
#
|
|
#default_tag_editor_pattern = %n - %t
|
|
#
|
|
#header_visibility = yes
|
|
#
|
|
#statusbar_visibility = yes
|
|
#
|
|
#titles_visibility = yes
|
|
#
|
|
#header_text_scrolling = yes
|
|
#
|
|
#cyclic_scrolling = no
|
|
#
|
|
#lines_scrolled = 2
|
|
#
|
|
#lyrics_fetchers = lyricwiki, azlyrics, genius, sing365, lyricsmania, metrolyrics, justsomelyrics, jahlyrics, plyrics, tekstowo, internet
|
|
#
|
|
#follow_now_playing_lyrics = no
|
|
#
|
|
#fetch_lyrics_for_current_song_in_background = no
|
|
#
|
|
#store_lyrics_in_song_dir = no
|
|
#
|
|
#generate_win32_compatible_filenames = yes
|
|
#
|
|
#allow_for_physical_item_deletion = no
|
|
#
|
|
##
|
|
## Note: If you set this variable, ncmpcpp will try to get info from last.fm in
|
|
## language you set and if it fails, it will fall back to english. Otherwise it
|
|
## will use english the first time.
|
|
##
|
|
## Note: Language has to be expressed as an ISO 639 alpha-2 code.
|
|
##
|
|
#lastfm_preferred_language = en
|
|
#
|
|
#space_add_mode = add_remove
|
|
#
|
|
#show_hidden_files_in_local_browser = no
|
|
#
|
|
##
|
|
## How shall screen switcher work?
|
|
##
|
|
## - "previous" - switch between the current and previous screen.
|
|
## - "screen1,...,screenN" - switch between given sequence of screens.
|
|
##
|
|
## Screens available for use: help, playlist, browser, search_engine,
|
|
## media_library, playlist_editor, tag_editor, outputs, visualizer, clock,
|
|
## lyrics, last_fm.
|
|
##
|
|
#screen_switcher_mode = playlist, browser
|
|
#
|
|
##
|
|
## Note: You can define startup screen by choosing screen from the list above.
|
|
##
|
|
#startup_screen = playlist
|
|
#
|
|
##
|
|
## Note: You can define startup slave screen by choosing screen from the list
|
|
## above or an empty value for no slave screen.
|
|
##
|
|
#startup_slave_screen = ""
|
|
#
|
|
#startup_slave_screen_focus = no
|
|
#
|
|
##
|
|
## Default width of locked screen (in %). Acceptable values are from 20 to 80.
|
|
##
|
|
#
|
|
#locked_screen_width_part = 50
|
|
#
|
|
#ask_for_locked_screen_width_part = yes
|
|
#
|
|
#jump_to_now_playing_song_at_start = yes
|
|
#
|
|
#ask_before_clearing_playlists = yes
|
|
#
|
|
#clock_display_seconds = no
|
|
#
|
|
#display_volume_level = yes
|
|
#
|
|
#display_bitrate = no
|
|
#
|
|
#display_remaining_time = no
|
|
#
|
|
## Available values: none, basic, extended, perl.
|
|
##
|
|
#regular_expressions = perl
|
|
#
|
|
##
|
|
## Note: if below is enabled, ncmpcpp will ignore leading "The" word while
|
|
## sorting items in browser, tags in media library, etc.
|
|
##
|
|
#ignore_leading_the = no
|
|
#
|
|
##
|
|
## Note: if below is enabled, ncmpcpp will ignore diacritics while searching and
|
|
## filtering lists. This takes an effect only if boost was compiled with ICU
|
|
## support.
|
|
##
|
|
#ignore_diacritics = no
|
|
#
|
|
#block_search_constraints_change_if_items_found = yes
|
|
#
|
|
#mouse_support = yes
|
|
#
|
|
#mouse_list_scroll_whole_page = yes
|
|
#
|
|
#empty_tag_marker = <empty>
|
|
#
|
|
#tags_separator = " | "
|
|
#
|
|
#tag_editor_extended_numeration = no
|
|
#
|
|
#media_library_sort_by_mtime = no
|
|
#
|
|
#enable_window_title = yes
|
|
#
|
|
##
|
|
## Note: You can choose default search mode for search engine. Available modes
|
|
## are:
|
|
##
|
|
## - 1 - use mpd built-in searching (no regexes, pattern matching)
|
|
##
|
|
## - 2 - use ncmpcpp searching (pattern matching with support for regexes, but
|
|
## if your mpd is on a remote machine, downloading big database to process
|
|
## it can take a while
|
|
##
|
|
## - 3 - match only exact values (this mode uses mpd function for searching in
|
|
## database and local one for searching in current playlist)
|
|
##
|
|
#
|
|
#search_engine_default_search_mode = 1
|
|
#
|
|
#external_editor = nano
|
|
#
|
|
## Note: set to yes if external editor is a console application.
|
|
##
|
|
#use_console_editor = yes
|
|
#
|
|
##### colors definitions #####
|
|
##
|
|
## It is possible to set a background color by setting a color value
|
|
## "<foreground>_<background>", e.g. red_black will set foregound color to red
|
|
## and background color to black.
|
|
##
|
|
## In addition, for terminals that support 256 colors it is possible to set one
|
|
## of them by using a number in range [1, 256] instead of color name,
|
|
## e.g. numerical value corresponding to red_black is 2_1. To find out if the
|
|
## terminal supports 256 colors, run ncmpcpp and check out the bottom of the
|
|
## help screen for list of available colors and their numerical values.
|
|
##
|
|
## What is more, there are two special values for the background color:
|
|
## "transparent" and "current". The first one explicitly sets the background to
|
|
## be transparent, while the second one allows you to preserve current
|
|
## background color and change only the foreground one. It's used implicitly
|
|
## when background color is not specified.
|
|
##
|
|
## Moreover, it is possible to attach format information to selected color
|
|
## variables by appending to their end a colon followed by one or more format
|
|
## flags, e.g. black:b or red:ur. The following variables support this syntax:
|
|
## visualizer_color, color1, color2, empty_tag_color, volume_color,
|
|
## state_line_color, state_flags_color, progressbar_color,
|
|
## progressbar_elapsed_color, player_state_color, statusbar_time_color,
|
|
## alternative_ui_separator_color.
|
|
##
|
|
## Note: due to technical limitations of older ncurses version, if 256 colors
|
|
## are used there is a possibility that you'll be able to use only colors with
|
|
## transparent background.
|
|
#
|
|
#colors_enabled = yes
|
|
#
|
|
#empty_tag_color = cyan
|
|
#
|
|
#header_window_color = default
|
|
#
|
|
#volume_color = default
|
|
#
|
|
#state_line_color = default
|
|
#
|
|
#state_flags_color = default:b
|
|
#
|
|
#main_window_color = yellow
|
|
#
|
|
#color1 = white
|
|
#
|
|
#color2 = green
|
|
#
|
|
#progressbar_color = black:b
|
|
#
|
|
#progressbar_elapsed_color = green:b
|
|
#
|
|
#statusbar_color = default
|
|
#
|
|
#statusbar_time_color = default:b
|
|
#
|
|
#player_state_color = default:b
|
|
#
|
|
#alternative_ui_separator_color = black:b
|
|
#
|
|
#window_border_color = green
|
|
#
|
|
#active_window_border = red
|
|
#
|
|
#+END_SRC
|
|
|
|
** Bindings
|
|
:PROPERTIES:
|
|
:header-args:conf: :tangle ~/.config/ncmpcpp/bindings
|
|
:header-args:conf+: :comments none :mkdirp yes
|
|
:END:
|
|
|
|
#+begin_src conf
|
|
def_key "g"
|
|
move_home
|
|
def_key "G"
|
|
move_end
|
|
def_key "j"
|
|
scroll_down
|
|
def_key "k"
|
|
scroll_up
|
|
def_key "ctrl-u"
|
|
page_up
|
|
def_key "ctrl-d"
|
|
page_down
|
|
def_key "l"
|
|
enter_directory
|
|
def_key "h"
|
|
jump_to_parent_directory
|
|
def_key "."
|
|
show_lyrics
|
|
def_key "n"
|
|
next_found_item
|
|
def_key "N"
|
|
previous_found_item
|
|
def_key "J"
|
|
move_sort_order_down
|
|
def_key "K"
|
|
move_sort_order_up
|
|
def_key "d"
|
|
delete_playlist_items
|
|
def_key "+"
|
|
volume_up
|
|
def_key "-"
|
|
volume_down
|
|
|
|
#+end_src
|
|
|
|
* MPD
|
|
:PROPERTIES:
|
|
:header-args:conf: :tangle ~/.config/mpd/mpd.conf
|
|
:header-args:conf+: :comments both :mkdirp yes
|
|
:END:
|
|
https://www.musicpd.org/
|
|
|
|
** Files and directories
|
|
#+BEGIN_SRC conf
|
|
# This setting controls the top directory which MPD will search to discover the
|
|
# available audio files and add them to the daemon's online database. This
|
|
# setting defaults to the XDG directory, otherwise the music directory will be
|
|
# be disabled and audio files will only be accepted over ipc socket (using
|
|
# file:// protocol) or streaming files over an accepted protocol.
|
|
music_directory "~/Music"
|
|
|
|
# This setting sets the MPD internal playlist directory. The purpose of this
|
|
# directory is storage for playlists created by MPD. The server will use
|
|
# playlist files not created by the server but only if they are in the MPD
|
|
# format. This setting defaults to playlist saving being disabled.
|
|
playlist_directory "~/.config/mpd/playlists"
|
|
|
|
# This setting sets the location of the MPD database. This file is used to
|
|
# load the database at server start up and store the database while the
|
|
# server is not up. This setting defaults to disabled which will allow
|
|
# MPD to accept files over ipc socket (using file:// protocol) or streaming
|
|
# files over an accepted protocol.
|
|
#
|
|
db_file "~/.config/mpd/database"
|
|
|
|
# These settings are the locations for the daemon log files for the daemon.
|
|
# These logs are great for troubleshooting, depending on your log_level
|
|
# settings.
|
|
#
|
|
# The special value "syslog" makes MPD use the local syslog daemon. This
|
|
# setting defaults to logging to syslog, otherwise logging is disabled.
|
|
log_file "~/.config/mpd/log"
|
|
|
|
# This setting sets the location of the file which stores the process ID
|
|
# for use of mpd --kill and some init scripts. This setting is disabled by
|
|
# default and the pid file will not be stored.
|
|
#
|
|
pid_file "~/.config/mpd/pid"
|
|
|
|
# This setting sets the location of the file which contains information about
|
|
# most variables to get MPD back into the same general shape it was in before
|
|
# it was brought down. This setting is disabled by default and the server
|
|
# state will be reset on server start up.
|
|
state_file "~/.config/mpd/state"
|
|
|
|
# The location of the sticker database. This is a database which
|
|
# manages dynamic information attached to songs.
|
|
#sticker_file "~/.config/mpd/sticker.sql"
|
|
#+END_SRC
|
|
|
|
** General music daemon options
|
|
#+BEGIN_SRC conf
|
|
# This setting specifies the user that MPD will run as. MPD should never run as
|
|
# root and you may use this setting to make MPD change its user ID after
|
|
# initialization. This setting is disabled by default and MPD is run as the
|
|
# current user.
|
|
#
|
|
#user "nobody"
|
|
#
|
|
# This setting specifies the group that MPD will run as. If not specified
|
|
# primary group of user specified with "user" setting will be used (if set).
|
|
# This is useful if MPD needs to be a member of group such as "audio" to
|
|
# have permission to use sound card.
|
|
#
|
|
#group "nogroup"
|
|
#
|
|
# This setting sets the address for the daemon to listen on. Careful attention
|
|
# should be paid if this is assigned to anything other then the default, any.
|
|
# This setting can deny access to control of the daemon. Not effective if
|
|
# systemd socket activiation is in use.
|
|
#
|
|
# For network
|
|
#bind_to_address "any"
|
|
#
|
|
# And for Unix Socket
|
|
#bind_to_address "~/.mpd/socket"
|
|
#
|
|
# This setting is the TCP port that is desired for the daemon to get assigned
|
|
# to.
|
|
#
|
|
#port "6600"
|
|
#
|
|
# This setting controls the type of information which is logged. Available
|
|
# setting arguments are "default", "secure" or "verbose". The "verbose" setting
|
|
# argument is recommended for troubleshooting, though can quickly stretch
|
|
# available resources on limited hardware storage.
|
|
#
|
|
#log_level "default"
|
|
#
|
|
# Setting "restore_paused" to "yes" puts MPD into pause mode instead
|
|
# of starting playback after startup.
|
|
#
|
|
#restore_paused "no"
|
|
#
|
|
# This setting enables MPD to create playlists in a format usable by other
|
|
# music players.
|
|
#
|
|
#save_absolute_paths_in_playlists "no"
|
|
#
|
|
# This setting defines a list of tag types that will be extracted during the
|
|
# audio file discovery process. The complete list of possible values can be
|
|
# found in the user manual.
|
|
#metadata_to_use "artist,album,title,track,name,genre,date,composer,performer,disc"
|
|
#
|
|
# This example just enables the "comment" tag without disabling all
|
|
# the other supported tags:
|
|
#metadata_to_use "+comment"
|
|
#
|
|
# This setting enables automatic update of MPD's database when files in
|
|
# music_directory are changed.
|
|
#
|
|
#auto_update "yes"
|
|
#
|
|
# Limit the depth of the directories being watched, 0 means only watch
|
|
# the music directory itself. There is no limit by default.
|
|
#
|
|
#auto_update_depth "3"
|
|
#
|
|
#+END_SRC
|
|
|
|
** Symbolic link behavior
|
|
#+BEGIN_SRC conf
|
|
# If this setting is set to "yes", MPD will discover audio files by following
|
|
# symbolic links outside of the configured music_directory.
|
|
#
|
|
#follow_outside_symlinks "yes"
|
|
#
|
|
# If this setting is set to "yes", MPD will discover audio files by following
|
|
# symbolic links inside of the configured music_directory.
|
|
#
|
|
#follow_inside_symlinks "yes"
|
|
#
|
|
#+END_SRC
|
|
|
|
** Zeroconf / Avahi Service Discovery
|
|
#+BEGIN_SRC conf
|
|
# If this setting is set to "yes", service information will be published with
|
|
# Zeroconf / Avahi.
|
|
#
|
|
#zeroconf_enabled "yes"
|
|
#
|
|
# The argument to this setting will be the Zeroconf / Avahi unique name for
|
|
# this MPD server on the network. %h will be replaced with the hostname.
|
|
#
|
|
#zeroconf_name "Music Player @ %h"
|
|
#
|
|
#+END_SRC
|
|
|
|
** Permissions
|
|
#+BEGIN_SRC conf
|
|
# If this setting is set, MPD will require password authorization. The password
|
|
# setting can be specified multiple times for different password profiles.
|
|
#
|
|
#password "password@read,add,control,admin"
|
|
#
|
|
# This setting specifies the permissions a user has who has not yet logged in.
|
|
#
|
|
#default_permissions "read,add,control,admin"
|
|
#
|
|
#+END_SRC
|
|
|
|
** Database
|
|
#+BEGIN_SRC conf
|
|
#database {
|
|
# plugin "proxy"
|
|
# host "other.mpd.host"
|
|
# port "6600"
|
|
#}
|
|
#+END_SRC
|
|
|
|
** Input
|
|
#+BEGIN_SRC conf
|
|
input {
|
|
plugin "curl"
|
|
# proxy "proxy.isp.com:8080"
|
|
# proxy_user "user"
|
|
# proxy_password "password"
|
|
}
|
|
#+END_SRC
|
|
|
|
** Audio Output
|
|
#+BEGIN_SRC conf
|
|
# MPD supports various audio output types, as well as playing through multiple
|
|
# audio outputs at the same time, through multiple audio_output settings
|
|
# blocks. Setting this block is optional, though the server will only attempt
|
|
# autodetection for one sound card.
|
|
#
|
|
# An example of an ALSA output:
|
|
#
|
|
#audio_output {
|
|
# type "alsa"
|
|
# name "My ALSA Device"
|
|
# period_time "50000"
|
|
## device "hw:0,0" # optional
|
|
## mixer_type "hardware" # optional
|
|
## mixer_device "default" # optional
|
|
## mixer_control "PCM" # optional
|
|
## mixer_index "0" # optional
|
|
#}
|
|
|
|
# For NCMPCPP Visualizer
|
|
audio_output {
|
|
type "fifo"
|
|
name "Visualizer feed"
|
|
path "/tmp/mpd.fifo"
|
|
format "44100:16:2"
|
|
}
|
|
|
|
#
|
|
# An example of an OSS output:
|
|
#
|
|
#audio_output {
|
|
# type "oss"
|
|
# name "My OSS Device"
|
|
## device "/dev/dsp" # optional
|
|
## mixer_type "hardware" # optional
|
|
## mixer_device "/dev/mixer" # optional
|
|
## mixer_control "PCM" # optional
|
|
#}
|
|
#
|
|
# An example of a shout output (for streaming to Icecast):
|
|
#
|
|
#audio_output {
|
|
# type "shout"
|
|
# encoder "vorbis" # optional
|
|
# name "My Shout Stream"
|
|
# host "localhost"
|
|
# port "8000"
|
|
# mount "/mpd.ogg"
|
|
# password "hackme"
|
|
# quality "5.0"
|
|
# bitrate "128"
|
|
# format "44100:16:1"
|
|
## protocol "icecast2" # optional
|
|
## user "source" # optional
|
|
## description "My Stream Description" # optional
|
|
## url "http://example.com" # optional
|
|
## genre "jazz" # optional
|
|
## public "no" # optional
|
|
## timeout "2" # optional
|
|
## mixer_type "software" # optional
|
|
#}
|
|
#
|
|
# An example of a recorder output:
|
|
#
|
|
#audio_output {
|
|
# type "recorder"
|
|
# name "My recorder"
|
|
# encoder "vorbis" # optional, vorbis or lame
|
|
# path "/var/lib/mpd/recorder/mpd.ogg"
|
|
## quality "5.0" # do not define if bitrate is defined
|
|
# bitrate "128" # do not define if quality is defined
|
|
# format "44100:16:1"
|
|
#}
|
|
#
|
|
# An example of a httpd output (built-in HTTP streaming server):
|
|
#
|
|
#audio_output {
|
|
# type "httpd"
|
|
# name "My HTTP Stream"
|
|
# encoder "vorbis" # optional, vorbis or lame
|
|
# port "8000"
|
|
# bind_to_address "0.0.0.0" # optional, IPv4 or IPv6
|
|
## quality "5.0" # do not define if bitrate is defined
|
|
# bitrate "128" # do not define if quality is defined
|
|
# format "44100:16:1"
|
|
# max_clients "0" # optional 0=no limit
|
|
#}
|
|
#
|
|
# An example of a pulseaudio output (streaming to a remote pulseaudio server)
|
|
#
|
|
audio_output {
|
|
type "pulse"
|
|
name "My Pulse Output"
|
|
# server "localhost" # optional
|
|
# sink "remote_server_sink" # optional
|
|
}
|
|
#
|
|
# An example of a winmm output (Windows multimedia API).
|
|
#
|
|
#audio_output {
|
|
# type "winmm"
|
|
# name "My WinMM output"
|
|
## device "Digital Audio (S/PDIF) (High Definition Audio Device)" # optional
|
|
# or
|
|
## device "0" # optional
|
|
## mixer_type "hardware" # optional
|
|
#}
|
|
#
|
|
# An example of an openal output.
|
|
#
|
|
#audio_output {
|
|
# type "openal"
|
|
# name "My OpenAL output"
|
|
## device "Digital Audio (S/PDIF) (High Definition Audio Device)" # optional
|
|
#}
|
|
#
|
|
# An example of an sndio output.
|
|
#
|
|
#audio_output {
|
|
# type "sndio"
|
|
# name "sndio output"
|
|
# mixer_type "hardware"
|
|
#}
|
|
#
|
|
# An example of an OS X output:
|
|
#
|
|
#audio_output {
|
|
# type "osx"
|
|
# name "My OS X Device"
|
|
## device "Built-in Output" # optional
|
|
## channel_map "-1,-1,0,1" # optional
|
|
#}
|
|
#
|
|
## Example "pipe" output:
|
|
#
|
|
#audio_output {
|
|
# type "pipe"
|
|
# name "my pipe"
|
|
# command "aplay -f cd 2>/dev/null"
|
|
## Or if you're want to use AudioCompress
|
|
# command "AudioCompress -m | aplay -f cd 2>/dev/null"
|
|
## Or to send raw PCM stream through PCM:
|
|
# command "nc example.org 8765"
|
|
# format "44100:16:2"
|
|
#}
|
|
#
|
|
## An example of a null output (for no audio output):
|
|
#
|
|
#audio_output {
|
|
# type "null"
|
|
# name "My Null Output"
|
|
# mixer_type "none" # optional
|
|
#}
|
|
#
|
|
#+END_SRC
|
|
|
|
** Normalization automatic volume adjustments
|
|
#+BEGIN_SRC conf
|
|
# This setting specifies the type of ReplayGain to use. This setting can have
|
|
# the argument "off", "album", "track" or "auto". "auto" is a special mode that
|
|
# chooses between "track" and "album" depending on the current state of
|
|
# random playback. If random playback is enabled then "track" mode is used.
|
|
# See <http://www.replaygain.org> for more details about ReplayGain.
|
|
# This setting is off by default.
|
|
#
|
|
#replaygain "album"
|
|
#
|
|
# This setting sets the pre-amp used for files that have ReplayGain tags. By
|
|
# default this setting is disabled.
|
|
#
|
|
#replaygain_preamp "0"
|
|
#
|
|
# This setting sets the pre-amp used for files that do NOT have ReplayGain tags.
|
|
# By default this setting is disabled.
|
|
#
|
|
#replaygain_missing_preamp "0"
|
|
#
|
|
# This setting enables or disables ReplayGain limiting.
|
|
# MPD calculates actual amplification based on the ReplayGain tags
|
|
# and replaygain_preamp / replaygain_missing_preamp setting.
|
|
# If replaygain_limit is enabled MPD will never amplify audio signal
|
|
# above its original level. If replaygain_limit is disabled such amplification
|
|
# might occur. By default this setting is enabled.
|
|
#
|
|
#replaygain_limit "yes"
|
|
#
|
|
# This setting enables on-the-fly normalization volume adjustment. This will
|
|
# result in the volume of all playing audio to be adjusted so the output has
|
|
# equal "loudness". This setting is disabled by default.
|
|
#
|
|
#volume_normalization "no"
|
|
#
|
|
#+END_SRC
|
|
|
|
** Character Encoding
|
|
#+BEGIN_SRC conf
|
|
# If file or directory names do not display correctly for your locale then you
|
|
# may need to modify this setting.
|
|
#
|
|
#filesystem_charset "UTF-8"
|
|
#+END_SRC
|
|
|
|
* Beets
|
|
:PROPERTIES:
|
|
:header-args:conf: :tangle ~/.config/beets/config.yaml
|
|
:header-args:conf+: :comments both :mkdirp yes
|
|
:END:
|
|
http://beets.io/
|
|
|
|
#+BEGIN_SRC conf
|
|
directory: ~/Music
|
|
library: ~/Music/musiclibrary.db
|
|
|
|
import:
|
|
move: yes
|
|
#+END_SRC
|
|
* Mopidy
|
|
:PROPERTIES:
|
|
:header-args:conf: :tangle ~/.config/mopidy/mopidy.conf
|
|
:header-args:conf+: :comments none :mkdirp yes
|
|
:END:
|
|
#+BEGIN_SRC conf
|
|
[spotify]
|
|
username = dehaeze.thomas@gmail.com
|
|
password = ***REMOVED***
|
|
client_id = 3b740ab1-f26f-4c38-aee0-4dcb9e58b375
|
|
client_secret = ***REMOVED***
|
|
bitrate = 320
|
|
|
|
[mpd]
|
|
enabled = true
|
|
hostname = 127.0.0.1
|
|
port = 6600
|
|
password =
|
|
max_connections = 20
|
|
connection_timeout = 60
|
|
zeroconf = Mopidy MPD server on $hostname
|
|
command_blacklist = listall,listallinfo
|
|
default_playlist_scheme = m3u
|
|
|
|
[audio]
|
|
output = tee name=t t. ! queue ! autoaudiosink t. ! queue ! audioresample ! audioconvert ! audio/x-raw,rate=44100,channels=2,format=S16LE ! wavenc ! filesink location=/tmp/mpd.fifo
|
|
#+END_SRC
|
|
|
|
* Radio with curseradio
|
|
:PROPERTIES:
|
|
:header-args:conf: :tangle ~/.config/curseradio/curseradio.cfg
|
|
:header-args:conf+: :comments none :mkdirp yes
|
|
:END:
|
|
#+begin_src conf
|
|
[opml]
|
|
root = http://opml.radiotime.com/
|
|
|
|
[playback]
|
|
command = /usr/bin/mpv
|
|
|
|
[interface]
|
|
keymap = vi
|
|
|
|
[keymap.vi]
|
|
up = k
|
|
down = j
|
|
start = 0
|
|
end = $
|
|
pageup = u
|
|
pagedown = d
|
|
enter = l
|
|
stop = p
|
|
exit = q
|
|
favourite = f
|
|
#+end_src
|