527 lines
13 KiB
Org Mode
527 lines
13 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
|
|
ncmpcpp_directory = ~/.config/ncmpcpp
|
|
#+end_src
|
|
|
|
#+begin_src conf
|
|
mpd_host = localhost
|
|
mpd_port = 6600
|
|
#+end_src
|
|
|
|
#+begin_src conf
|
|
mpd_music_dir = ~/Music
|
|
#+end_src
|
|
|
|
#+begin_src conf
|
|
execute_on_song_change = dunstify --replace=19845 "Now Playing ♫" "$(mpc current)"
|
|
#+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 (not used anymore)
|
|
: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
|
|
music_directory "~/Music"
|
|
playlist_directory "~/.config/mpd/playlists"
|
|
db_file "~/.config/mpd/database"
|
|
log_file "~/.config/mpd/log"
|
|
pid_file "~/.config/mpd/pid"
|
|
state_file "~/.config/mpd/state"
|
|
#+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 :noweb no-export
|
|
:END:
|
|
|
|
#+begin_src conf
|
|
[spotify]
|
|
username = dehaeze.thomas@gmail.com
|
|
password = <<get-password(passname="spotify.com/dehaeze.thomas@gmail.com")>>
|
|
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
|