Stream My Pi
Alright, so most of my friends already know, I’ve recieved one of my Raspberry Pi computers!
w00t!
So being my old love is streaming radio, I figured why not get this little guy pushing out some tunes for me!
MPD To the rescue!
Now I did a post for Ubuntu 10.04 a while ago where I had custom compiled a .deb file that included mp3 support, however the new version of MPD for the pi has it already built in! Double sweet!
So here’s how to get it started.
First install a few apps. I personally prefer ncmpcpp as my local client to control my MPD stream from the cli. And of course you’ll need to install MPD.
|
1 |
sudo apt-get update ; sudo apt-get install mpd ncmpcpp |
Type in “Y” when it asks if you would like to install the dependencies as well, let it run and install your requested apps.
Shucks, you’re already half way done!
Now you just need to configure your server (mpd) and client (ncmpcpp) to cut down on overhead I’ll just be using the built in httpd stream as well as the alsa mixer, however the config files are much more built out with better examples then they had on my last post, so configuring them should be quite simple these days.
In order to get MPD working as your local user “pi” in this case, we’ll first need to create some directories and files. Enter in the following commands one at a time from the pi user’s home directory.
|
1 2 3 4 5 |
mkdir -p .mpd/db cd .mpd touch state pid cd db touch cache sticker.sql |
That will create the “state” and “pid” file in your .mpd folder and the “cache” and “sticker.sql” files in your .mpd/db folder.
Now let’s backup the original mpd.conf file and then edit the original file.
|
1 2 |
sudo cp /etc/mpd.conf /etc/mpd.conf.org sudo nano /etc/mpd.conf |
You can copy it straight up if you like, as your username is most likely “pi” as well. I’ve set my default music folder to “/home/pi/Music” and Playlists to “/home/pi/Playlists” if you don’t have these directories either, go ahead and make them with the mkdir command, I’ll wait.
Alright, here’s my /etc/mpd.conf file (click it to expand, it’s kinda long):
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 |
# An example configuration file for MPD # See the mpd.conf man page for a more detailed description of each parameter. # Files and directories ####################################################### # # This setting controls the top directory which MPD will search to discover the # available audio files and add them to the daemon's online database. This # setting defaults to the XDG directory, otherwise the music directory will be # be disabled and audio files will only be accepted over ipc socket (using # file:// protocol) or streaming files over an accepted protocol. # music_directory "/home/pi/Music" # # This setting sets the MPD internal playlist directory. The purpose of this # directory is storage for playlists created by MPD. The server will use # playlist files not created by the server but only if they are in the MPD # format. This setting defaults to playlist saving being disabled. # playlist_directory "/home/pi/Playlists" # # This setting sets the location of the MPD database. This file is used to # load the database at server start up and store the database while the # server is not up. This setting defaults to disabled which will allow # MPD to accept files over ipc socket (using file:// protocol) or streaming # files over an accepted protocol. # db_file "/home/pi/.mpd/db/cache" # # These settings are the locations for the daemon log files for the daemon. # These logs are great for troubleshooting, depending on your log_level # settings. # # The special value "syslog" makes MPD use the local syslog daemon. This # setting defaults to logging to syslog, otherwise logging is disabled. # log_file "/var/log/mpd/mpd.log" # # This setting sets the location of the file which stores the process ID # for use of mpd --kill and some init scripts. This setting is disabled by # default and the pid file will not be stored. # pid_file "/home/pi/.mpd/pid" # # This setting sets the location of the file which contains information about # most variables to get MPD back into the same general shape it was in before # it was brought down. This setting is disabled by default and the server # state will be reset on server start up. # state_file "/home/pi/.mpd/state" # # The location of the sticker database. This is a database which # manages dynamic information attached to songs. # sticker_file "/home/pi/.mpd/db/sticker.sql" # ############################################################################### # General music daemon options ################################################ # # This setting specifies the user that MPD will run as. MPD should never run as # root and you may use this setting to make MPD change its user ID after # initialization. This setting is disabled by default and MPD is run as the # current user. # user "pi" # # This setting specifies the group that MPD will run as. If not specified # primary group of user specified with "user" setting will be used (if set). # This is useful if MPD needs to be a member of group such as "audio" to # have permission to use sound card. # #group "nogroup" # # This setting sets the address for the daemon to listen on. Careful attention # should be paid if this is assigned to anything other then the default, any. # This setting can deny access to control of the daemon. Choose any if you want # to have mpd listen on every address # # For network #bind_to_address "localhost" bind_to_address "any" # # And for Unix Socket #bind_to_address "/var/run/mpd/socket" # # This setting is the TCP port that is desired for the daemon to get assigned # to. # port "6666" # # This setting controls the type of information which is logged. Available # setting arguments are "default", "secure" or "verbose". The "verbose" setting # argument is recommended for troubleshooting, though can quickly stretch # available resources on limited hardware storage. # #log_level "default" # # If you have a problem with your MP3s ending abruptly it is recommended that # you set this argument to "no" to attempt to fix the problem. If this solves # the problem, it is highly recommended to fix the MP3 files with vbrfix # (available as vbrfix in the debian archive), at which # point gapless MP3 playback can be enabled. # gapless_mp3_playback "yes" # # This setting enables MPD to create playlists in a format usable by other # music players. # #save_absolute_paths_in_playlists "no" # # This setting defines a list of tag types that will be extracted during the # audio file discovery process. Optionally, 'comment' can be added to this # list. # #metadata_to_use "artist,album,title,track,name,genre,date,composer,performer,disc" # # This setting enables automatic update of MPD's database when files in # music_directory are changed. # auto_update "yes" # # Limit the depth of the directories being watched, 0 means only watch # the music directory itself. There is no limit by default. # auto_update_depth "3" # ############################################################################### # Symbolic link behavior ###################################################### # # If this setting is set to "yes", MPD will discover audio files by following # symbolic links outside of the configured music_directory. # #follow_outside_symlinks "yes" # # If this setting is set to "yes", MPD will discover audio files by following # symbolic links inside of the configured music_directory. # #follow_inside_symlinks "yes" # ############################################################################### # Zeroconf / Avahi Service Discovery ########################################## # # If this setting is set to "yes", service information will be published with # Zeroconf / Avahi. # zeroconf_enabled "yes" # # The argument to this setting will be the Zeroconf / Avahi unique name for # this MPD server on the network. # zeroconf_name "Music Player" # ############################################################################### # Permissions ################################################################# # # If this setting is set, MPD will require password authorization. The password # can setting can be specified multiple times for different password profiles. # #password "password@read,add,control,admin" # # This setting specifies the permissions a user has who has not yet logged in. # default_permissions "read,add,control,admin" # ############################################################################### # Input ####################################################################### # input { plugin "curl" # proxy "proxy.isp.com:8080" # proxy_user "user" # proxy_password "password" } # ############################################################################### # Audio Output ################################################################ # # MPD supports various audio output types, as well as playing through multiple # audio outputs at the same time, through multiple audio_output settings # blocks. Setting this block is optional, though the server will only attempt # autodetection for one sound card. # # See <http://mpd.wikia.com/wiki/Configuration#Audio_Outputs> for examples of # other audio outputs. # # An example of an ALSA output: # audio_output { type "alsa" name "My ALSA Device" device "hw:0,0" # optional format "44100:16:2" # optional mixer_device "default" # optional mixer_control "PCM" # optional mixer_index "0" # optional } # # An example of an OSS output: # #audio_output { # type "oss" # name "My OSS Device" # device "/dev/dsp" # optional # format "44100:16:2" # optional # mixer_device "/dev/mixer" # optional # mixer_control "PCM" # optional #} # # An example of a shout output (for streaming to Icecast): # #audio_output { # type "shout" # encoding "ogg" # optional # name "My Shout Stream" # host "localhost" # port "8000" # mount "/mpd.ogg" # password "hackme" # quality "5.0" # bitrate "128" # format "44100:16:1" # protocol "icecast2" # optional # user "source" # optional # description "My Stream Description" # optional # genre "jazz" # optional # public "no" # optional # timeout "2" # optional #} # # An example of a recorder output: # #audio_output { # type "recorder" # name "My recorder" # encoder "vorbis" # optional, vorbis or lame # path "/var/lib/mpd/recorder/mpd.ogg" ## quality "5.0" # do not define if bitrate is defined # bitrate "128" # do not define if quality is defined # format "44100:16:1" #} # # An example of a httpd output (built-in HTTP streaming server): # audio_output { type "httpd" name "Stream of Pi" encoder "lame" # optional, vorbis or lame port "8000" # quality "5.0" # do not define if bitrate is defined bitrate "128" # do not define if quality is defined format "44100:16:1" } # # An example of a pulseaudio output (streaming to a remote pulseaudio server) # #audio_output { # type "pulse" # name "My Pulse Output" # server "remote_server" # optional # sink "remote_server_sink" # optional #} # ## Example "pipe" output: # #audio_output { # type "pipe" # name "my pipe" # command "aplay -f cd 2>/dev/null" ## Or if you're want to use AudioCompress # command "AudioCompress -m | aplay -f cd 2>/dev/null" ## Or to send raw PCM stream through PCM: # command "nc example.org 8765" # format "44100:16:2" #} # ## An example of a null output (for no audio output): # #audio_output { # type "null" # name "My Null Output" #} # # This setting will change all decoded audio to be converted to the specified # format before being passed to the audio outputs. By default, this setting is # disabled. # #audio_output_format "44100:16:2" # # If MPD has been compiled with libsamplerate support, this setting specifies # the sample rate converter to use. Possible values can be found in the # mpd.conf man page or the libsamplerate documentation. By default, this is # setting is disabled. # #samplerate_converter "Fastest Sinc Interpolator" # ############################################################################### # Volume control mixer ######################################################## # # These are the global volume control settings. By default, this setting will # be detected to the available audio output device, with preference going to # hardware mixing. Hardware and software mixers for individual audio_output # sections cannot yet be mixed. # # An example for controlling an ALSA, OSS or Pulseaudio mixer; If this # setting is used other sound applications will be affected by the volume # being controlled by MPD. # mixer_type "hardware" # # An example for controlling all mixers through software. This will control # all controls, even if the mixer is not supported by the device and will not # affect any other sound producing applications. # #mixer_type "software" # # This example will not allow MPD to touch the mixer at all and will disable # all volume controls. # #mixer_type "disabled" # ############################################################################### # Normalization automatic volume adjustments ################################## # # This setting specifies the type of ReplayGain to use. This setting can have # the argument "album" or "track". See <http://www.replaygain.org> for more # details. This setting is disabled by default. # #replaygain "album" # # This setting sets the pre-amp used for files that have ReplayGain tags. By # default this setting is disabled. # #replaygain_preamp "0" # # This setting enables on-the-fly normalization volume adjustment. This will # result in the volume of all playing audio to be adjusted so the output has # equal "loudness". This setting is disabled by default. # #volume_normalization "no" # ############################################################################### # MPD Internal Buffering ###################################################### # # This setting adjusts the size of internal decoded audio buffering. Changing # this may have undesired effects. Don't change this if you don't know what you # are doing. # #audio_buffer_size "2048" # # This setting controls the percentage of the buffer which is filled before # beginning to play. Increasing this reduces the chance of audio file skipping, # at the cost of increased time prior to audio playback. # buffer_before_play "8%" # ############################################################################### # Resource Limitations ######################################################## # # These settings are various limitations to prevent MPD from using too many # resources. Generally, these settings should be minimized to prevent security # risks, depending on the operating resources. # connection_timeout "60" max_connections "10" max_playlist_length "1634" max_command_list_size "2048" max_output_buffer_size "8192" # ############################################################################### # Character Encoding ########################################################## # # If file or directory names do not display correctly for your locale then you # may need to modify this setting. After modification of this setting mpd # --create-db must be run to change the database. # filesystem_charset "UTF-8" # # This setting controls the encoding that ID3v1 tags should be converted from. # id3v1_encoding "UTF-8" # ############################################################################### # SIDPlay decoder ############################################################# # # songlength_database: # Location of your songlengths file, as distributed with the HVSC. # The sidplay plugin checks this for matching MD5 fingerprints. # See http://www.c64.org/HVSC/DOCUMENTS/Songlengths.faq # # default_songlength: # This is the default playing time in seconds for songs not in the # songlength database, or in case you're not using a database. # A value of 0 means play indefinitely. # # filter: # Turns the SID filter emulation on or off. # #decoder { # plugin "sidplay" # songlength_database "/media/C64Music/DOCUMENTS/Songlengths.txt" # default_songlength "120" # filter "true" #} # ############################################################################### |
I went and left all of the default comments in there, but of course if you want to make it more readable feel free to remove what you don’t use.
So, yea. MPD’s ready. Just restart it.
|
1 |
sudo /etc/init.d/mpd restart |
Now let’s get our client up and running so we can start playing some music!
This one’s a little more tricky as the default config file is hiding and compressed.
First let’s create the local config directory like we did for MPD.
|
1 |
mkdir ~/.ncmpcpp |
and let’s copy the example config over to our new directory.
|
1 |
cp /usr/share/doc/ncmpcpp/config /home/pi/.ncmpcpp |
and then extract it.
|
1 |
gzip -d ~/.ncmpcpp/config.gz |
Now go ahead and edit that file.
|
1 |
nano ~/.ncmpcpp/config |
Again, these are the settings I used, but it’s well documented so feel free to make changes as well. Here is my config for ncmpcpp (again, click it to expand it, it’s even longer…)
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 |
#################################################### ## this is example configuration file, copy it to ## ## ~/.ncmpcpp/config and set up your preferences ## #################################################### # ##### directories ###### ## ## Directory for storing ncmpcpp related files. ## Changing it is useful if you want to store ## everything somewhere else and provide command ## line setting for alternative location to config ## file which defines that while launching ncmpcpp. ## # ncmpcpp_directory = "~/.ncmpcpp" # ## ## Directory for storing downloaded lyrics. It ## defaults to ~/.lyrics since other MPD clients ## (eg. ncmpc) also use that location. ## # lyrics_directory = "~/.lyrics" # ##### connection settings ##### # ## set it in order to make tag editor and renaming files work properly # mpd_host = "localhost" # mpd_port = "6666" # mpd_music_dir = "/home/pi/Music" # mpd_connection_timeout = "5" # mpd_crossfade_time = "5" # #mpd_communication_mode = "notifications" (polling/notifications) # ##### music visualizer ##### ## ## Note: In order to make music visualizer work you'll ## need to use mpd fifo output, whose format parameter ## has to be set to 44100:16:1 for mono visualization ## or 44100:16:2 for stereo visualization. Example ## configuration (it has to be put into mpd.conf): ## ## audio_output { ## type "fifo" ## name "My FIFO" ## path "/tmp/mpd.fifo" ## format "44100:16:2" ## } ## # ## ## If you set format to 44100:16:2, make it 'yes'. ## # #visualizer_in_stereo = "no" # #visualizer_fifo_path = "" # ## ## Note: Below parameter is needed for ncmpcpp ## to determine which output provides data for ## visualizer and thus allow syncing between ## visualization and sound as currently there ## are some problems with it. ## # #visualizer_output_name = "" # ## ## Note: Below parameter defines how often ncmpcpp ## has to "synchronize" visualizer and audio outputs. ## 30 seconds is optimal value, but if you experience ## synchronization problems, set it to lower value. ## Keep in mind that sane values start with >=10. ## # #visualizer_sync_interval = "30" # ## ## Note: To enable spectrum frequency visualization ## you need to compile ncmpcpp with fftw3 support. ## # #visualizer_type = "wave" (spectrum/wave) # #visualizer_look = "◆│" # ##### system encoding ##### ## ## ncmpcpp should detect your charset encoding ## but if it failed to do so, you can specify ## charset encoding you are using here. ## ## Note: You can see whether your ncmpcpp build ## supports charset detection by checking output ## of `ncmpcpp --version`. ## ## Note: Since MPD uses utf8 by default, setting ## this option makes sense only if your encoding ## is different. ## # #system_encoding = "" # ##### delays ##### # ## delay after playlist highlighting will be disabled (0 = don't disable) # playlist_disable_highlight_delay = "5" # ## defines how long various messages are supposed to be visible # message_delay_time = "4" # ##### song format ##### ## ## for song format you can use: ## ## %l - length ## %f - filename ## %D - directory ## %a - artist ## %A - album artist ## %t - title ## %b - album ## %y - year ## %n - track number (01/12 -> 01) ## %N - full track info (01/12 -> 01/12) ## %g - genre ## %c - composer ## %p - performer ## %d - disc ## %C - comment ## $R - begin right alignment ## ## you can also put them in { } and then it will be displayed ## only if all requested values are available and/or define alternate ## value with { }|{ } eg. {%a - %t}|{%f} ## ## Note: If you want to set limit on maximal length of a tag, just ## put the appropriate number between % and character that defines ## tag type, e.g. to make album take max. 20 terminal cells, use '%20b'. ## ## Note: Format that is similar to "%a - %t" (i.e. without any additional ## braces) is equal to "{%a - %t}", so if one of the tags is missing, ## you'll get nothing. ## ## text can also have different color than the main window has, ## eg. if you want length to be green, write $3%l$9 ## ## available values: ## ## - 0 - default window color (discards all other colors) ## - 1 - black ## - 2 - red ## - 3 - green ## - 4 - yellow ## - 5 - blue ## - 6 - magenta ## - 7 - cyan ## - 8 - white ## - 9 - end of current color ## ## Note: colors can be nested. ## # #song_list_format = "{%a - }{%t}|{$8%f$9}$R{$3(%l)$9}" # #song_status_format = "{{%a{ \"%b\"{ (%y)}} - }{%t}}|{%f}" # #song_library_format = "{%n - }{%t}|{%f}" # #tag_editor_album_format = "{(%y) }%b" # ## ## Note: Below variables are for alternative version of user's interface. ## Their syntax supports all tags and colors listed above plus some extra ## markers used for text attributes. They are followed by character '$'. ## After that you can put: ## ## - b - bold text ## - u - underline text ## - r - reverse colors ## - a - use alternative character set ## ## If you don't want to use an attribute anymore, just put it again, but ## this time insert character '/' between '$' and attribute character, ## e.g. {$b%t$/b}|{$r%f$/r} will display bolded title tag or filename ## with reversed colors. ## # #alternative_header_first_line_format = "$b$1$aqqu$/a$9 {%t}|{%f} $1$atqq$/a$9$/b" # #alternative_header_second_line_format = "{{$4$b%a$/b$9}{ - $7%b$9}{ ($4%y$9)}}|{%D}" # ## ## Note: Below variables also supports ## text attributes listed above. ## # #now_playing_prefix = "$b" # #now_playing_suffix = "$/b" # #browser_playlist_prefix = "$2playlist$9 " # #selected_item_prefix = "$6" # #selected_item_suffix = "$9" # ## colors are not supported for below variable # #song_window_title_format = "{%a - }{%t}|{%f}" # ##### columns settings ##### ## ## syntax of song columns list format is "column column etc." ## ## - syntax for each column is: ## ## (width of column)[column's color]{displayed tag} ## ## Note: Width is by default in %, if you want a column to ## have fixed size, add 'f' after the value, e.g. (10)[white]{a} ## will be the column that take 10% of screen (so the real column's ## width will depend on actual screen size), whereas (10f)[white]{a} ## will take 10 terminal cells, no matter how wide the screen is. ## ## - color is optional (if you want the default one, type []) ## ## Note: You can give a column additional attributes by putting appropriate ## character after displayed tag character. Available attributes are: ## ## - r - column will be right aligned ## - E - if tag is empty, empty tag marker won't be displayed ## ## You can also: ## ## - give a column custom name by putting it after attributes, ## separated with character ':', e.g. {lr:Length} gives you ## right aligned column of lengths named "Length". ## ## - define sequence of tags, that have to be displayed in case ## predecessor is empty in a way similar to the one in classic ## song format, i.e. using '|' character, e.g. {a|c|p:Owner} ## creates column named "Owner" that tries to display artist ## tag and then composer and performer if previous ones are ## not available. ## # #song_columns_list_format = "(7f)[green]{l} (25)[cyan]{a} (40)[]{t|f} (30)[red]{b}" # ##### various settings ##### # ## ## Note: Custom command that will be executed each ## time song changes. Useful for notifications etc. ## ## Attention: It doesn't support song format anymore. ## Use `ncmpcpp --now-playing SONG_FORMAT` instead. ## #execute_on_song_change = "" # #playlist_show_remaining_time = "no" # #playlist_shorten_total_times = "no" # #playlist_separate_albums = "no" # #playlist_display_mode = "classic" (classic/columns) # #browser_display_mode = "classic" (classic/columns) # #search_engine_display_mode = "classic" (classic/columns) # #playlist_editor_display_mode = "classic" (classic/columns) # #discard_colors_if_item_is_selected = "yes" # #incremental_seeking = "yes" # #seek_time = "1" # #autocenter_mode = "no" # #centered_cursor = "no" # ## ## Note: You can specify third character which will ## be used to build 'empty' part of progressbar. ## #progressbar_look = "=>" # #default_place_to_search_in = "database" (database/playlist) # #user_interface = "classic" (classic/alternative) # #media_library_left_column = "a" (possible values: a,y,g,c,p, legend above) # #default_find_mode = "wrapped" (wrapped/normal) # #default_space_mode = "add" (add/select) # #default_tag_editor_left_col = "albums" (albums/dirs) # #default_tag_editor_pattern = "%n - %t" # #header_visibility = "yes" # #statusbar_visibility = "yes" # #titles_visibility = "yes" # #header_text_scrolling = "yes" # #fancy_scrolling = "yes" # #cyclic_scrolling = "no" # #lines_scrolled = "2" # #follow_now_playing_lyrics = "no" # #fetch_lyrics_for_current_song_in_background = "no" # #store_lyrics_in_song_dir = "no" # ## ## Note: If you set this variable, ncmpcpp will try to ## get info from last.fm in language you set and if it ## fails, it will fall back to english. Otherwise it will ## use english the first time. ## ## Note: Language has to be expressed as an ISO 639 alpha-2 code. ## #lastfm_preferred_language = "" # #ncmpc_like_songs_adding = "no" (enabled - add/remove, disabled - always add) # #show_hidden_files_in_local_browser = "no" # #display_screens_numbers_on_start = "yes" # ## ## How shall key_screen_switcher work? ## ## - "previous" - switch between current and last used screen ## - "sequence: 2 -> 9 -> 5" - switch between given sequence of screens. ## ## Screen numbers you can use after 'sequence' keyword are: ## ## - 1 - help ## - 2 - playlist ## - 3 - browser ## - 4 - search engine ## - 5 - media library ## - 6 - playlist editor ## - 7 - tag editor ## - 8 - outputs ## - 9 - visualizer ## - 10 - clock ## ## As you can see, above example will switch between ## playlist, visualizer and media library screens. ## #screen_switcher_mode = "sequence: 2 -> 3" # ## ## Default width of locked screen (in %). ## Acceptable values are from 20 to 80. ## # #locked_screen_width_part = "50" # #ask_for_locked_screen_width_part = "yes" # ## ## Note: You can define startup screen for ncmpcpp ## by choosing screen number from the list above. ## #startup_screen = "2" # #jump_to_now_playing_song_at_start = "yes" # #ask_before_clearing_main_playlist = "no" # #clock_display_seconds = "no" # #display_volume_level = "yes" # #display_bitrate = "no" # #display_remaining_time = "no" # #regular_expressions = "basic" (basic/extended) # ## ## Note: If below is enabled, ncmpcpp will ignore leading ## "The" word while sorting items in browser, tags in ## media library, etc. ## #ignore_leading_the = "no" # #block_search_constraints_change_if_items_found = "yes" # #mouse_support = "yes" # #mouse_list_scroll_whole_page = "yes" # #empty_tag_marker = "<empty>" # #tag_editor_extended_numeration = "no" # #media_library_display_date = "yes" # #media_library_display_empty_tag = "yes" # #media_library_disable_two_column_mode = "no" # #enable_window_title = "yes" # ## ## Note: You can choose default search mode for search ## engine. Available modes are: ## ## - 1 - use mpd built-in searching (no regexes, pattern matching) ## - 2 - use ncmpcpp searching (pattern matching with support for regexes, ## but if your mpd is on a remote machine, downloading big database ## to process it can take a while ## - 3 - match only exact values (this mode uses mpd function for searching ## in database and local one for searching in current playlist) ## # #search_engine_default_search_mode = "1" # ## ## Note: Below variables can allow you to physically ## remove files and directories from your hdd using ## ncmpcpp's browser screen. ## # #allow_physical_files_deletion = "no" # #allow_physical_directories_deletion = "no" # #external_editor = "" # #use_console_editor = "no" (set to yes, if your editor is console app) # ##### colors definitions ##### # #colors_enabled = "yes" # #empty_tag_color = "cyan" # #header_window_color = "default" # #volume_color = "default" # #state_line_color = "default" # #state_flags_color = "default" # #main_window_color = "yellow" # #color1 = "white" # #color2 = "green" # #main_window_highlight_color = "yellow" # #progressbar_color = "default" # #statusbar_color = "default" # #alternative_ui_separator_color = "black" # #active_column_color = "red" # #visualizer_color = "yellow" # #window_border_color = "green" # #active_window_border = "red" # |
So yea. That’s it! You should be up and running!
Start ncmpcpp in a tty with the logical command of “ncmpcpp” This will open the client app and allow you to start playing music! Being it’s a command line app, most of the work is done with keyboard commands. Press the number “1″ on your keyboard (NOT on the 10key if you have one to the right of your normal keyboard but the numbers above the qwerty row) and you will be shown a VERY long list of keyboard commands to control ncmpcpp, however the arrow and space and enter key’s will get you through most of it easily.
Plug it in to your amplifier, or better yet, grab your android phone and grab the free app called “MPDroid” it’s the best app I’ve found to interface with MPD. Now you can control your music from your phone, and get a stream of it sent TO your phone as well! No wires needed! (however it will be significantly buffered, so be patient when you first choose to start your stream)
Not too bad right!
Enjoy and if you have any questions, feel free to post a comment, here or in our forums, or even in my IRC hangout at italktomachines.com !

Google Chrome 21.0.1180.83 on
Windows 7 x64 Edition
Mozilla/5.0 (Windows NT 6.0; rv:12.0) Gecko/20100101 Firefox/12.0
Many thanks for your post, I had been struggling with a similar project but never managed to get it to work properly, now all running thanks to your post.
All the best.