fI am reading a book on VimL (Vimscript) and it introduced me to mpc, a client for Music Player Daemon (MPD) . In this post I show you how to set up mpc and how to quickly select and play music from the command line.
After getting the two with brew install mpc / mpd, you define where your music lives:
$ cat ~/.mpdconf bind_to_address "127.0.0.1" music_directory "/Users/bbelderb/Music/" db_file "/Users/bbelderb/Music/mpd.db" audio_output { name "audio" type "osx" }
And you create the DB file:
$ touch ~/Music/mpd.db
Then you can start playing music with:
$ mpc update $ mpc ls | mpc add $ mpc play
(use "listall" instead of "ls" if you have subdirectories in your defined music_directory)
Now I wondered how to quickly search for songs and play the search result.
I ended up adding this to my .bashrc:
alias mp="mpc toggle" # handy to quickly stop / resume music alias mn="mpc next" function ms() { mpc search any $1; } function mss() { mpc clear 2>&1 >/dev/null && mpc search any $1|mpc add && mpc play; }
Note the difference between ms and mss: former just lists search results, the latter plays them as a new playlist. Thanks to this StackExchange thread.
So now if I want to play something specific I can do so pretty quickly (of course my options are limited to the music in the defined music_directory):
$ mpc stats Artists: 66 Albums: 6 Songs: 120 ..
# list search results $ ms tony timferriss/timferrissshow-tonyrobbins-pt1.mp3 timferriss/timferrissshow-tonyrobbins-pt2.mp3 # same, but play them as well $ mss tony Tim Ferriss: Bestselling Author, Human Guinea Pig - Tony Robbins on Morning Routines, Peak Performance & Mastering Money - Part 1 of 2 [playing] #1/2 0:00/68:20 (0%) # create new playlist on-the-fly, searching for "roni" (of Roni Size) # result: a new playlist of 6 hits plays:
$ mss roni Roni Size - It's Jazzy (Nu:Tone Remix) [playing] #1/6 0:00/6:06 (0%)