this post was submitted on 27 Jun 2024
331 points (94.6% liked)

linuxmemes

20880 readers
7 users here now

I use Arch btw


Sister communities:

Community rules

  1. Follow the site-wide rules and code of conduct
  2. Be civil
  3. Post Linux-related content
  4. No recent reposts

Please report posts and comments that break these rules!

founded 1 year ago
MODERATORS
 
you are viewing a single comment's thread
view the rest of the comments
[–] [email protected] 24 points 4 months ago* (last edited 4 months ago) (2 children)
#!/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>

[–] [email protected] 13 points 4 months ago* (last edited 4 months ago) (1 children)

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 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.

[–] [email protected] 4 points 4 months ago

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!

[–] [email protected] 4 points 4 months ago* (last edited 4 months ago) (1 children)

I think your script didn't format correctly:

[–] [email protected] 4 points 4 months ago

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)