diff options
| author | Craig Jennings <c@cjennings.net> | 2025-11-12 22:20:24 -0600 |
|---|---|---|
| committer | Craig Jennings <c@cjennings.net> | 2025-11-12 22:20:24 -0600 |
| commit | da0441ad597dc92b916fdec1fa40f35518d2993b (patch) | |
| tree | a1a9c6ce4a433f0d6a80762819efb1a974eb8d8d | |
| parent | 18c6bc393f7bbdcd07f2a77c2ae9bc0f52ad8874 (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.conf | 91 | ||||
| -rw-r--r-- | dotfiles/system/.config/mpd/mpd.conf | 4 |
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" |
