---
name: "draai"
section: "1"
platform: "linux"
package: "draai"
version: "20250202-1"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/draai"
---

# draai(1)

draai - manage playlists and play audio files

draai \[option \[option ...\]\] command \[track \[track ...\] \| tracknumber \[tracknumber ...\]\] Draai is a wrapper around mpc, making playing music from the commandline more enjoyable. mpc is a client for MPD, the Music Player Daemon. Using draai, one can play an audiofile (ogg, mp3, flac, whatever your MPD offers), play all files in a predefined playlist, view details on current, past and future playing songs, skip to the next song, etc. Run "draai init" to get started using draai the way the author likes it. Then, open another terminal window and run e.g. $ draai listall \| dr\_permutate \| draai add; draai play to build a current playlist and start playing it. Other ways of using draai are possible, see below.

draai\
 Play music: the files given as args and playlists passed via --playlist.\
 watch\
 Run [watch(1)](/watch/1.md) on "draai peek".\
 init\
 Start a bunch of X terminals setting up some draai jobs: tail, logtail, watch, syslog, ...\
 guestlist\
 Reschedule listed tracknumbers as upcoming tracks. Last arguments should be the positions of tracks to be put on the guestlist, not filenames.\
 unguestlist\
 Reschedule listed tracknumbers to end of playlist.\
 insert\
 Add file(s) (given either as args or on stdin) to playlist and schedule it as upcoming track. You probably want to have 'draai insert' read from a pipe fed by 'draai search'.\
 move\
 Move tracknumber to tracknumber given as last argument.\
 zap\
 Move tracknumber to position one and immediately start playing it. Typically used to deal with radiostations in playlist.\
 search\
 Search for substrings in all song tag types (artist, title, comment, filename, ...). Similar to 'mpc search any \<query\>'. You'll typically want to pipe this commands output to e.g. 'draai insert'.\
 tail\
 Print information about track when it starts playing, similar to tail -f on a logfile.\
 logtail\
 Run [tail(1)](/tail/1.md) on system log file.\
 list\
 List current playlist.\
 peek\
 Show status of current song, and show upcoming $peek FIXME tracks.\
 play\
 Play music.\
 syslog\
 Send raw information from tail to syslog. You likely want to run "draai syslog" in the background.\
 skip\
 Skip this track, start playing the next one now.\
 osjittisstil\
 Run this if unwanted silence pops up during a playing session (for now, it runs draai --sloppy skip).\
 delete\
 Delete track(s) from current playlist. Last arguments should be \_positions\_ of tracks to be removed, not filename. If no position is given, deletes upcoming track from playlist.\
 fastforward\
 Seek forward in current track.\
 crescendo\
 Play louder.\
 diminuendo\
 Play softer.\
 shuffle\
 Shuffle the playlist. By default, this task is delegated to [dr\_unsort(1)](/dr_unsort/1.md). However, if draai runs in "sloppy" or in "native shuffle" mode, then mpc native shuffling is done (by calling "mpc shuffle"). Draai runs in "sloppy" mode when the DR\_SLOPPY environment variable is set, or when the --sloppy option is passed. Draai runs in "native shuffle" mode when the DR\_SHUFFLE\_NATIVE environment variable is set.\
 listall\
 List all files as served by music database.\
 add\
 Add file(s) (given either as args or on stdin) to playlist. You probably want to have 'draai add' read from a pipe fed by e.g. 'draai listall' or 'draai search'.\
 quit\
 quit

**--debug** (*debug*), **-d**\
 Be very verbose.\
 **--playlist** (*with playlistfile*), **-p**\
 Playlist file; option can be supplied more than once. To be used with command "draai".\
 **--noshuffle** (*no shuffle*), {**-S**}\
 Do not shuffle tracks and leave random mode untouched (default is: do shuffle and disable random mode). See also the script dr\_unsort.\
 **--raw** (*raw*), **-r**\
 Print raw stuff, suitable for postprocessing (if combined with tail, peek or list).\
 **--sloppy** (*sloppy*), **-s**\
 Do not try hard to make everything sound smooth. If combined with skip: risk a squeak on old hardware.\
 **--time** (*with timespec*), **-t**\
 If combined with commands quit or draai: time at which to quit or start. Schedule all tracks containing the string 'delia gone' in title, artist, comment or any other tag for playing, after current song has finished: `draai search 'delia gone' | draai insert`. Run `` grep DR_ `which draai` `` to find out about environment variables honored by draai. It honors: booleans: DR\_DEBUG, DR\_SHUFFLE, DR\_SHUFFLE\_NATIVE, DR\_TIMESTAMP, DR\_RAW, DR\_SLOPPY, DR\_INIT\_NCMPCPP and DR\_INIT\_WATCH ; strings: DR\_WATCH ; integers: DR\_CROSSFADE, DR\_PEEK and DR\_SEEK as well as DR\_FADEOUT\_STEP, DR\_FADEOUT\_REPEAT, and DR\_FADEOUT\_SLEEP and DR\_VOLUME\_STEP ; and some more strings: DR\_SYSLOG\_FILE, DR\_SYSLOG\_FACILITY and DR\_SYSLOG\_LEVEL . For now, see the draai code for what it all means. All configuration variables (see ENVIRONMENT) can be set in `~/.draai/rc`. This rc-file is sourced as a shell script. If you'd like to set the syslog facility, set *syslog\_facility* (overruled by DR\_SYSLOG\_FACILITY). If you'd like to set the watch programma, set *watch* (overruled by DR\_WATCH). Lots of alternatives for draai exist. One is "herrie", by Ed Schouten and Martijn van den Dungen, see http://freshmeat.net/projects/herrie/. Draai is (C) 2000-2013 Joost van Baal-Ilić \<joostvb-draai@mdcc.cx\>. Draai is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License, as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed WITHOUT ANY WARRANTY. You should have received a copy of the GNU General Public License along with draai. If not, see http://www.gnu.org/licenses/. Joost van Baal-Ilić \<joostvb-draai@mdcc.cx\>
