Minimalist Music Player for OS X
Ruby C
Permalink
Failed to load latest commit information.
bin
ext
lib
test
.gitignore
CONTRIBUTORS
FIX.md
LICENSE.txt
README.md
Rakefile
TODO.md
dhun.gemspec
test.watchr

README.md

Introduction

A dhun (Hindi: धुन; literally "tune") is a light instrumental piece in the Hindustani classical music of North India.

Source : Wikipedia

Dhun is a minimalist commandline music player for OS X.

It uses Spotlight to search for audio files on your computer and play them.

Quickstart

Installing Dhun

Run the following commands to install Dhun. This will download the latest gem from http://gemcutter.org, compile the extensions and put the binaries in the right place. You will need to have XCode installed for the gem command to compile the native extensions.

$ gem sources -a http://gemcutter.org
$ gem install dhun

Or to install the bleeding edge, git pull from the repository and run:

$ sudo rake gem install

For notifications, you will need Growl installed along with the growlnotify tool that comes with Growl (but needs to be installed separately).

Starting Dhun

$ dhun start_server
Starting Dhun

this runs the Dhun server as a daemon by default. to not run it as a daemon:

$ dhun start_server --foreground

or $ dhun start_server -f

See dhun help start_server for more information

Querying for files

Dhun uses Spotlight to query for music files. Just specify a keyword, and Dhun will look for files matching that keyword and start playing them.

You can also query the Spotlight database before playing the files, with the query command.

$ dhun query deadmau5

Querying: deadmau5 | 6 Results
1 : /Volumes/Storage/Music/Grand.Theft.Auto.IV-Radio.Station.Rips-AiTB/Electro-Choc/03 One + One - No Pressure (Deadmau5 Remix).mp3
2 : /Volumes/Storage/Music/Grand.Theft.Auto.IV-Radio.Station.Rips-AiTB/Electro-Choc/09 Chris Lake vs. Deadmau5 - I Thought Inside Out (Original Mix).mp3
3 : Deadmau5 - Alone With You
4 : Deadmau5 - Arguru (EDX's 5un5hine Remix)
5 : Deadmau5 - Bye Friend
6 : Deadmau5 - Clockwork

you can query based on certain filters such as artist,albums, title, genre and file.

$ dhun query --artist="Paul van Dyk" --genre=trance --file 'Paul' --title in

Querying: [nil] | artist:Paul van Dyk title:in genre:trance file:Paul
3 Results
1 : Paul van Dyk - Talk In Grey
2 : Paul van Dyk - In Circles
3 : Paul van Dyk - In Between

YOu can mix filters with regular queries as well.

$ dhun query paul --title=haunted

Querying: paul | title:haunted
1 Results
1 : Paul van Dyk - Haunted

You can also pass in multiple regular expressions too. they just need to be seperated by commas (,)

$ dhun query paul,trance

Querying: paul,trance | 13 Results
1 : Paul van Dyk - Volume (Productions)
2 : Paul van Dyk - Volume (Remixes Part 1)
3 : Paul van Dyk - Volume (Remixes Part 2)
4 : Paul van Dyk - Complicated (Feat. Ashley Tomberlin)
5 : Paul van Dyk - Haunted
6 : Paul van Dyk - White Lies (Feat. Jessica Sutta)
7 : Paul van Dyk - Sabotage
8 : Paul van Dyk - Get Back (Feat. Ashley Tomberlin)
9 : Paul van Dyk - Far Away
10 : Paul van Dyk - Another Sunday
11 : Paul van Dyk - Talk In Grey
12 : Paul van Dyk - In Circles
13 : Paul van Dyk - In Between

Now lets put it all together and go crazy.

$ dhun query 'paul van',dyk --genre=trance --title=haunted

Querying: paul van,dyk | title:haunted genre:trance
1 Results
1 : Paul van Dyk - Haunted

Playing Files

To play the files, first enqueue the songs.

$ dhun play paul,trance

this can also be done by

$ dhun enqueue paul,trance

Querying: paul,trance | 13 Results
1 : Paul van Dyk - Volume (Productions)
2 : Paul van Dyk - Volume (Remixes Part 1)
3 : Paul van Dyk - Volume (Remixes Part 2)
4 : Paul van Dyk - Complicated (Feat. Ashley Tomberlin)
5 : Paul van Dyk - Haunted
6 : Paul van Dyk - White Lies (Feat. Jessica Sutta)
7 : Paul van Dyk - Sabotage
8 : Paul van Dyk - Get Back (Feat. Ashley Tomberlin)
9 : Paul van Dyk - Far Away
10 : Paul van Dyk - Another Sunday
11 : Paul van Dyk - Talk In Grey
12 : Paul van Dyk - In Circles
13 : Paul van Dyk - In Between
Enter index to queue: 

It will prompt you to enter the index of the songs you want queued.(numbers on the left side) You can enter them separated by commas(1,2,3,4) or spaces(1 2 3 4) or a single song if you like. If you leave the prompt blank and enter, it will queue ALL the resulting songs.

Enter index to queue 4 5
selected:
1 : Paul van Dyk - Complicated (Feat. Ashley Tomberlin)
2 : Paul van Dyk - Haunted
2 files queued

Once queued, the songs will begin playing. You can continue to enqueue more songs using enqueue command.

Controlling Playback

Starting Playback(needs to have songs in queue)

$ dhun play
resuming playback

Stopping playback.

$ dhun stop
Dhun has stopped

Pausing playback.

$ dhun pause
Dhun is paused at /Users/deepak/Dropbox/shared/music/Coke Studio/Jo-Meray.mp3

Resuming playback.

$ dhun resume
Dhun is playing /Users/deepak/Dropbox/shared/music/Coke Studio/Jo-Meray.mp3

Skipping to next file

$ dhun next
Dhun is playing /Users/deepak/Music/iTunes/iTunes Media/Music/Edward Sharpe & The Magnetic Zeros/Here Comes/03 Carries On.mp3

You can use a numeric argument to specify the number of tracks to skip ahead, like dhun next 2.

Skipping to previous file in history.

$ dhun prev 
Dhun is playing /Users/deepak/Music/iTunes/iTunes Media/Music/Edward Sharpe & The Magnetic Zeros/Here Comes/02 Janglin.mp3

You can use a numeric argument to specify the number of tracks to skip ahead, like dhun prev 2.

Shuffling the queue

$ dhun shuffle
Queue is shuffled
Queue:
1 : Deadmau5 - I Remember (Vocal Mix)
2 : Paul van Dyk - Haunted
3 : Above & Beyond - I Am What I Am
4 : Above & Beyond - Sirens Of The Sea
5 : Paul van Dyk - Haunted

Other commands

Status

$ dhun status
Dhun is running
Currently Playing:
Deadmau5 - I Remember (Vocal Mix)
Queue:
1 : Paul van Dyk - Haunted
2 : Above & Beyond - I Am What I Am
3 : Above & Beyond - Sirens Of The Sea

History

$ dhun history
1 files in history
History:
1 : Deadmau5 - I Remember Feat Kaskade (Instrumental Mix)

Saving Playlist

$ dhun save_playlist /tmp/playlist.pls
created /tmp/playlist.plsg

Loading Playlist

$ dhun load_playlist /tmp/playlist.pls
14 files queued
loaded playlist

Stopping Dhun

This will exit the dhun server.

$ dhun stop_server

New Features

Please file an issue with a feature request, if you have one.

These things are planned someday:

  • iTunes integration

Feedback

email me at deepak DOT jois AT gmail DOT com