.\" Automatically generated by Pod::Man 4.14 (Pod::Simple 3.43) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is >0, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{\ . if \nF \{\ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{\ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "MPSTORE 1" .TH MPSTORE 1 "2023-02-01" "perl v5.36.0" "mpstore" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" mpstore \- store and transfer mpd state between daemons .SH "SYNOPSIS" .IX Header "SYNOPSIS" mpstore [host] > file .PP mpload [host] < file .PP mpcp [src] dest .PP mpmv [src] dest .PP mpswap [A] B .SH "DESCRIPTION" .IX Header "DESCRIPTION" These commands allow saving, loading, and transferring state between mpd daemons running on different hosts. .PP \&\fBmpstore\fR dumps a daemon's state to stdout. .PP \&\fBmpload\fR loads a state dump from stdin and sends it to a daemon. .PP \&\fBmpcp\fR copies the state from the src daemon to the dest daemon, causing it to begin to play the same song as the src daemon, at the same position. .PP \&\fBmpmv\fR moves the state, so the dest daemon is left playing what the src daemon was playing, and the src daemon is paused. .PP \&\fBmpswap\fR exchanges the state of daemons A and B, swapping what they're playing. .PP The first hostname passed to each command can be omitted, if it is then the \s-1MPD_HOST\s0 environment variable will be used. Like the \s-1MPD_HOST\s0 variable, the hostname can be of the form \*(L"password@hostname\*(R" to specify a password. If any hostname is \*(L"\-\*(R", the \s-1MPD_HOST\s0 setting will be used. .PP The full list of state that is handled is: .IP "the contents of the playlist" 4 .IX Item "the contents of the playlist" .PD 0 .IP "the playback state (playing, paused, stopped)" 4 .IX Item "the playback state (playing, paused, stopped)" .IP "the currently playing song" 4 .IX Item "the currently playing song" .IP "the position within the playing song" 4 .IX Item "the position within the playing song" .IP "the volume control" 4 .IX Item "the volume control" .IP "the repeat, random, and cross fade settings" 4 .IX Item "the repeat, random, and cross fade settings" .PD .SH "LIMITATIONS" .IX Header "LIMITATIONS" The host that state is transferred to must have the playing song available in its library, with the same filename. It's ok if some other songs in the playlist are not available; such songs will be skipped. .PP \&\fBmpcp\fR cannot perfectly synchronise playback between the two daemons. Network latency and timing prevent this. It should manage better than 0.5 second accuracy. If you need better accuracy of synchronised playback, you should probably use Pulse Audio. .SH "BUGS" .IX Header "BUGS" The file format is not the same that mpd uses for saving its own state, which would be nice. .SH "AUTHOR" .IX Header "AUTHOR" Copyright 2007 Joey Hess .PP Licensed under the \s-1GNU GPL\s0 version 2 or higher. .PP http://kitenet.net/~joey/code/mpdtoys