Oh man are we sharing mpd scripts? I have this one that lets me search through music directory and add anything to the play queue (so I can add a single track or an entire album or whatever):
There’s also this one that lets me save the currently playing song to a playlist of my choice. It’s good if I’m listening to a new album or a new artist and suddenly think “yeah, this song really fits with the mood of X playlist”:
The sleeps are to prevent Cantata (graphical mpd client) from shitting itself if I run this script while it’s open. Also notice mpc shuffle instead of mpc random on. It shuffles the current playlist, but keeps the linear play order, so that I can add songs to play right after the current one.
Oooh those are nice! I’ll have to try mpc shuffle out then, and even though I generate my playlists with beets, I’ll definitely try out the save to playlist one!
#!/usr/bin/env bash mpc load $1 mpc volume 80 mpc random on mpc play
Name it shufflenplay so then you can
shufflenplay <playlist name>
Oh man are we sharing mpd scripts? I have this one that lets me search through music directory and add anything to the play queue (so I can add a single track or an entire album or whatever):
#!/bin/bash MUSIC_DIR=$(grep -m 1 -E '^\s*music_directory\s+' "$XDG_CONFIG_HOME/mpd/mpd.conf" | awk '{printf $2}' | tr -d \" | tr -d \') MUSIC_DIR="${MUSIC_DIR/#\~/$HOME}" cd "$MUSIC_DIR" CHOICE="$(find . | cut -c 3- | dmenu)" || exit 1; mpc insert "$CHOICE" mpc play
There’s also this one that lets me save the currently playing song to a playlist of my choice. It’s good if I’m listening to a new album or a new artist and suddenly think “yeah, this song really fits with the mood of X playlist”:
#!/bin/bash MUSIC_DIR=$(grep -m 1 -E '^\s*playlist_directory\s+' "$XDG_CONFIG_HOME/mpd/mpd.conf" | awk '{printf $2}' | tr -d \" | tr -d \') choice="$(mpc lsplaylists | dmenu)" || { echo "No choice." ; exit 1; } MUSIC_DIR="${MUSIC_DIR/#\~/$HOME}" mpc current -f '%file%' >> "$MUSIC_DIR/$choice.m3u"
Here’s my script to shuffle play an existing playlist as well:
#!/bin/sh choice="$(mpc lsplaylists | dmenu)" mpc clear sleep 0.1 mpc load "$choice" sleep 0.1 mpc shuffle sleep 0.1 mpc play
The sleeps are to prevent Cantata (graphical mpd client) from shitting itself if I run this script while it’s open. Also notice
mpc shuffle
instead ofmpc random on
. It shuffles the current playlist, but keeps the linear play order, so that I can add songs to play right after the current one.Oooh those are nice! I’ll have to try mpc shuffle out then, and even though I generate my playlists with beets, I’ll definitely try out the save to playlist one!
I think your script didn’t format correctly:![](https://lemm.ee/api/v3/image_proxy?url=https%3A%2F%2Flemmy.world%2Fpictrs%2Fimage%2F1c987d6a-a966-4cd0-bb99-ba1554680fd9.png)
https://files.catbox.moe/5ex40l.jpg this is how it looks on my end (for some reason I can’t upload photos rn, it errors out)