• JetpackJackson@feddit.de
    link
    fedilink
    arrow-up
    24
    ·
    edit-2
    5 months ago
    #!/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>

    • renzev@lemmy.world
      link
      fedilink
      English
      arrow-up
      13
      ·
      edit-2
      5 months ago

      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.

      • JetpackJackson@feddit.de
        link
        fedilink
        arrow-up
        4
        ·
        5 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!