summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCraig Jennings <c@cjennings.net>2025-11-12 22:20:24 -0600
committerCraig Jennings <c@cjennings.net>2025-11-12 22:20:24 -0600
commitda0441ad597dc92b916fdec1fa40f35518d2993b (patch)
treea1a9c6ce4a433f0d6a80762819efb1a974eb8d8d
parent18c6bc393f7bbdcd07f2a77c2ae9bc0f52ad8874 (diff)
feat(music): migrate from MPD to Mopidy for better streaming support
- Enhanced MPD config with 16 MB buffer and 30s curl timeout - Discovered buffer_before_play is deprecated in MPD 0.24.6 - Installed Mopidy with mopidy-mpd extension for MPD protocol compatibility - Configured Mopidy with 15-second GStreamer buffer for smooth radio streaming - Analyzed network quality: baroque sonatas radio has 40ms jitter from Germany MPD limitations: - No pre-buffer control for streams (buffer_before_play deprecated) - Fixed 512 KB curl buffer (not configurable) - No replacement for pre-buffering functionality Mopidy configuration: - buffer_time: 15000ms (15 seconds) - stream timeout: 30000ms - MPD protocol on port 6600 (existing clients work) - HTTP interface on port 6680 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
-rw-r--r--dotfiles/system/.config/mopidy/mopidy.conf91
-rw-r--r--dotfiles/system/.config/mpd/mpd.conf4
2 files changed, 95 insertions, 0 deletions
diff --git a/dotfiles/system/.config/mopidy/mopidy.conf b/dotfiles/system/.config/mopidy/mopidy.conf
new file mode 100644
index 0000000..973bcf3
--- /dev/null
+++ b/dotfiles/system/.config/mopidy/mopidy.conf
@@ -0,0 +1,91 @@
+# Mopidy configuration for cjennings
+# See https://docs.mopidy.com/en/latest/config/ for documentation
+
+[core]
+cache_dir = $XDG_CACHE_DIR/mopidy
+config_dir = $XDG_CONFIG_DIR/mopidy
+data_dir = $XDG_DATA_DIR/mopidy
+max_tracklist_length = 10000
+restore_state = false
+
+[logging]
+verbosity = 0
+format = %(levelname)-8s %(asctime)s [%(process)d:%(threadName)s] %(name)s\n %(message)s
+color = true
+
+[audio]
+mixer = software
+mixer_volume =
+output = autoaudiosink
+# Buffer time in milliseconds - increase for smoother streaming
+# Default is 1000ms, setting to 15000ms (15 seconds) for radio streams
+buffer_time = 15000
+
+[proxy]
+scheme =
+hostname =
+port =
+username =
+password =
+
+[file]
+enabled = true
+# Point to Craig's music directory
+media_dirs =
+ /home/cjennings/music|Music
+excluded_file_extensions =
+ .directory
+ .html
+ .jpeg
+ .jpg
+ .log
+ .nfo
+ .pdf
+ .png
+ .txt
+ .zip
+show_dotfiles = false
+follow_symlinks = false
+metadata_timeout = 1000
+
+[http]
+enabled = true
+hostname = 127.0.0.1
+port = 6680
+zeroconf = Mopidy HTTP server on $hostname
+allowed_origins =
+csrf_protection = true
+default_app = mopidy
+
+[m3u]
+enabled = true
+base_dir = /home/cjennings/music
+default_encoding = latin-1
+default_extension = .m3u8
+playlists_dir =
+
+[softwaremixer]
+enabled = true
+
+[stream]
+enabled = true
+protocols =
+ http
+ https
+ mms
+ rtmp
+ rtmps
+ rtsp
+metadata_blacklist =
+# Increase timeout for slow/distant streams (30 seconds)
+timeout = 30000
+
+# MPD frontend - enables MPD protocol compatibility (port 6600)
+# This allows MPD clients like mpc, ncmpcpp to work with Mopidy
+[mpd]
+enabled = true
+hostname = 127.0.0.1
+port = 6600
+password =
+max_connections = 20
+connection_timeout = 60 \ No newline at end of file
diff --git a/dotfiles/system/.config/mpd/mpd.conf b/dotfiles/system/.config/mpd/mpd.conf
index d1c6208..d084cb2 100644
--- a/dotfiles/system/.config/mpd/mpd.conf
+++ b/dotfiles/system/.config/mpd/mpd.conf
@@ -132,6 +132,9 @@ auto_update "yes"
#
#auto_update_depth "3"
#
+# Buffer settings for smooth streaming
+audio_buffer_size "16384" # 16 MB buffer (default 4096 KB)
+#
###############################################################################
@@ -193,6 +196,7 @@ auto_update "yes"
input {
plugin "curl"
+ timeout "30000" # 30 second timeout for connections
# proxy "proxy.isp.com:8080"
# proxy_user "user"
# proxy_password "password"