diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md
index f4b4156e..058448c9 100644
--- a/.github/ISSUE_TEMPLATE/bug_report.md
+++ b/.github/ISSUE_TEMPLATE/bug_report.md
@@ -15,5 +15,7 @@ Steps to reproduce the behavior:
1. Run command '...'
2. See error
+(Ensure that the issue can be reproduced on a clean install, and that there are no missing deps/reqs using `mpvc-installer check-reqs`)
+
**Expected behavior**
A clear and concise description of what you expected to happen.
diff --git a/README.md b/README.md
index b38cd32d..945e0fce 100644
--- a/README.md
+++ b/README.md
@@ -63,8 +63,6 @@ Recommended extras:
- `notify-send`
- `yt-dlp`
-Check for missing dependencies using `mpvc-installer check-reqs`.
-
## Installation
- [Manual](#manual)
@@ -76,14 +74,15 @@ Check for missing dependencies using `mpvc-installer check-reqs`.
- [Gentoo](#gentoo-mpvc)
- [Nix](#nix-mpvc)
-Installing is just a matter of fetching the scripts either via [Git](#git)/Curl/etc., scripts can be used directly from the repo, the `mpvc-installer` bit is just there for easiness, to fetch & link them into your `BINDIR=~/bin/` that [mpvc-installer](../../blob/master/extras/mpvc-installer) does by default.
+Installing is just a matter of fetching the scripts either via [Git](#git)/Curl/etc., scripts can be used directly from the repo, the `mpvc-installer` bit is just there for easiness, to fetch & link them into your `BINDIR=~/bin/` that [mpvc-installer](../../blob/master/extras/mpvc-installer) does by default.
-The easiest for a onetime [Manual](#manual) install, however for @latest version a [Git](#git) install is recommended.
+The easiest for a onetime install is the [Manual](#manual), however for @latest version a [Git](#git) install is recommended.
+Check for missing dependencies/requirements using `mpvc-installer check-reqs`.
### Manual
```console
-curl -fsSL -O https://github.com/lwilletts/mpvc/raw/master/extras/mpvc-installer \
+curl -LO https://github.com/lwilletts/mpvc/raw/master/extras/mpvc-installer \
&& BINDIR=$HOME/bin sh ./mpvc-installer fetch-user
```
@@ -99,8 +98,6 @@ This does git clone, and symlinks the mpvc scripts to `BINDIR` (default `~/bin`)
(cd mpvc; extras/mpvc-installer link-user)
(cd mpvc; extras/mpvc-installer check-reqs)
- # use mpvc-fzf to search and play youtube media
- mpvc-fzf -p 'kupla mirage'
# use mpvc to add/load/save media files or online YT URLs
mpvc add /path/to/your/*.mp3 # or your URLs
find . -type f -name | mpvc load
@@ -111,6 +108,12 @@ This does git clone, and symlinks the mpvc scripts to `BINDIR` (default `~/bin`)
mpvc stash push current
mpvc stash apply current
+ # use mpvc-fzf to manage mpvc stash (see mpvc-fzf -h for more)
+ mpvc-fzf -a
+ # use mpvc-fzf to search and play youtube media
+ mpvc-fzf -p 'kupla mirage'
+ # use mpvc-fzf to browse & play lofi girl music
+ mpvc-fzf -b https://lofigirl.com/wp-content/uploads/2023/06
# use mpvc-fzf to manage the playlist
mpvc-fzf -f
# use mpvc-tui to start the tui + desktop notifications
@@ -169,7 +172,7 @@ nix-env -i mpvc
### mpvc
```console
-usage: mpvc opts # @version v1.5 (c) gmt4 https://github.com/gmt4/mpvc
+usage: mpvc opts # @version v1.6 (c) gmt4 https://github.com/gmt4/mpvc
-a | --add : Add media to playlist (see --load for stdin).
-s | --stop : Always stop playback.
-P | --play : Always start playback.
@@ -181,29 +184,29 @@ usage: mpvc opts # @version v1.5 (c) gmt4 https://github.com/gmt4/mpvc
-v | --vol : Increase/decrease volume relative to current volume.
-h | --help : Prints the short help.
-H | --long-help : Prints the long help.
-
*tips: If unsure about where to begin, have a look at https://gmt4.github.io/mpvc
-
```
### mpvc-tui
```console
-usage: mpvc-tui -[d:hHktTm:M:nNsSP:u:x] args # @version v1.5 (c) gmt4 https://github.com/gmt4/mpvc
- -d : Set the WD to the media directory given as argument
- -n : Desktop notification using notify on mpvc events (notify-send*)
- -s : Suggest a random media to play based on previous media played
- -t : Starts the mpvc-tui to manage the mpv playlist (rlwrap*)
- -T : Combo that starts mpvc-tui -t -n, and adds media given as args
- -x : Starts mpvc-tui in a new xterm (config $MPVC_TUI_TERM) [combine -x with other opts]
- -v : Prints the mpvc-tui version.
+usage: mpvc-tui opts # @version v1.6 (c) gmt4 https://github.com/gmt4/mpvc
+ -d|dir : Set the WD to the media directory given as argument
+ -n|notify : Desktop notification using notify on mpvc events (notify-send*)
+ -s|suggest : Suggest a random media to play based on previous media played
+ -S|scrobler: Starts the mpvc-tui scrobbler
+ -H|history : Starts the mpvc-tui history
+ -t|tui : Starts the mpvc-tui to manage the mpv playlist (rlwrap*)
+ -T|Tui : Combo that starts mpvc-tui -t -n, and adds media given as args
+ -x|launch : Starts mpvc-tui in a new xterm ($MPVC_TUI_TERM) # combine with Logbook
The logbook got big enought to deserve a page on its own, see here: logbook.html
- Last-Modified: Friday, 13 September 2024 by gmt4 + π Sat, 26 Oct 2024 by gmt4 - Powered by #HTML 𧑠π π + β‘ PoweredBy #HTML
diff --git a/docs/logbook.html b/docs/logbook.html index a43fe7de..46d49817 100644 --- a/docs/logbook.html +++ b/docs/logbook.html @@ -57,10 +57,12 @@
-One particular feature where improvement could be done mpvc -a audio.opus, when mpv finishes playing audio.opus, mpv terminates, and, the current playlist is lost. This happens as mpv is started with --idle=once. A solution for this is to start mpv separately with --idle=yes. A shortcut for this is to run `mpvc --mpv` that does exactly this, after this the mpv instance can be manipulated with mpvc, and does not terminate once mpv finishes playing.
+One particular feature where improvement could be done is mpvc -a audio.opus
, when mpv finishes playing audio.opus, mpv terminates, and, the current playlist is lost. This happens as mpv is started with --idle=once. A solution for this is to start mpv separately with --idle=yes. A shortcut for this is to run mpvc --mpv
that does exactly this, after this the mpv instance can be manipulated with mpvc, and does not terminate once mpv finishes playing.
While using mpvc-tui
, one ends up wanting to configure the minimal look and feel that mpvc-tui provides. To this end the file mpvc.conf
under $XDG_CONFIG_HOME/mpvc/ provides a place to overwrite the default settings of mpvc-tui.
-Continuing with the topic of the previous post about mpvc-equalizer, one reason for starting mpvc, was to ease was to managing audio from the CLI. In that sense mpv integrates well with ffmpeg to apply AV filters. However you've to, either start mpv specifying the ffmpeg cli flags for the AV-filters, or add keyboard shortcuts into the input.conf to be triggedred during runtime. +Continuing with the topic of the previous post about mpvc-equalizer, one reason for starting mpvc, was to ease was to managing audio from the CLI. In that sense mpv integrates well with ffmpeg to apply AV filters (##https://ffmpeg.org/ffmpeg-filters.html"). However you've to, either start mpv specifying the ffmpeg cli flags for the AV-filters, or add keyboard shortcuts into the input.conf to be triggedred during runtime.
@@ -332,13 +339,13 @@
# start adding a rubberband filter -mpvc cmdr af toggle "@rubberband:lavfi=[rubberband=pitch=1:tempo=1]" +mpvc cmdr af toggle '@rubberband:lavfi=[rubberband=pitch=1:tempo=1]' # Change the AV filter is easy, rerun the command with the changes -mpvc cmdr af toggle "@rubberband:lavfi=[rubberband=pitch=0.98:tempo=1]" +mpvc cmdr af toggle '@rubberband:lavfi=[rubberband=pitch=0.98:tempo=1]' # Removing the filter is as expected -mpvc cmdr af remove "@rubberband:lavfi=[rubberband=pitch=0.98:tempo=1]" +mpvc cmdr af remove '@rubberband:lavfi=[rubberband=pitch=0.98:tempo=1]' # Another option is toggling the AV filters on and off with -mpvc cmdr af toggle "@rubberband:lavfi=[rubberband=pitch=0.98:tempo=1]" +mpvc cmdr af toggle '@rubberband:lavfi=[rubberband=pitch=0.98:tempo=1]' # The same goes for what filters are currently applied mpvc getr af | jq @@ -351,24 +358,40 @@+For more on this, the above filters can be piped to mpvc-fzf to applied using (c-o apply): + +On applying ffmpeg AV filters using the MPV JSON IPC, mpvc setr msg-level all=warn mpvc setr msg-level all=info -# Some af filters -mpvc cmdr af toggle "@afade:lavfi=[afade=t=in:ss=0:d=15]" -mpvc cmdr af toggle "@flanger:lavfi=[flanger=delay=1]" -mpvc cmdr af toggle "@tremolo:lavfi=[tremolo]" -mpvc cmdr af toggle "@vibrato:lavfi=[vibrato]" -mpvc cmdr af toggle "@apulsator:lavfi=[apulsator]" -mpvc cmdr af toggle "@aphaser:lavfi=[aphaser]" -mpvc cmdr af toggle "@aecho:lavfi=[aecho=in_gain=0.9:out_gain=0.9:delays=1:decays=0.9]" - -# Some vf filters -mpvc cmdr vf toggle "@life:lavfi=[life]" -mpvc cmdr vf toggle "@showvolume:lavfi=[showvolume]" -mpvc cmdr vf toggle "@showwaves:lavfi=[showwaves]" -mpvc cmdr vf toggle "@showspectrum:lavfi=[showspectrum]" -mpvc cmdr vf toggle "@avectorscope:lavfi=[avectorscope]" +# Some af filters (see mpv --af=help) +mpvc cmdr af toggle '@dynaudnorm:lavfi=[dynaudnorm]' +mpvc cmdr af toggle '@afade:lavfi=[afade=t=in:ss=0:d=15]' +mpvc cmdr af toggle '@flanger:lavfi=[flanger=delay=1]' +mpvc cmdr af toggle '@tremolo:lavfi=[tremolo]' +mpvc cmdr af toggle '@vibrato:lavfi=[vibrato]' +mpvc cmdr af toggle '@apulsator:lavfi=[apulsator]' +mpvc cmdr af toggle '@aphaser:lavfi=[aphaser]' +mpvc cmdr af toggle '@aphasemeter:lavfi=[aphasemeter]' +mpvc cmdr af toggle '@aecho:lavfi=[aecho=in_gain=0.9:out_gain=0.9:delays=1:decays=0.9]' +mpvc cmdr af toggle '@lofi:lavfi=[ladspa=cmt:lofi:controls=c0=80|c1=20|c2=9000]' + +# Some vf filters (see mpv --vf=help) +mpvc cmdr vf toggle '@life:lavfi=[life]' +mpvc cmdr vf toggle '@showvolume:lavfi=[showvolume]' +mpvc cmdr vf toggle '@showwaves:lavfi=[showwaves]' +mpvc cmdr vf toggle '@showspectrum:lavfi=[showspectrum]' +mpvc cmdr vf toggle '@avectorscope:lavfi=[avectorscope]' +mpvc cmdr vf toggle '@oscilloscope:lavfi=[oscilloscope]' + +mpvc cmdr vf toggle '@mirrorbottom:lavfi=[[vid1]split[main][tmp];[tmp]crop=iw:ih/2:0:ih/2,vflip[flip];[main][flip]overlay[vo]]' +mpvc cmdr vf toggle '@mirrorleft:lavfi=[[vid1]split[main][tmp];[tmp]crop=iw/2:ih:0:0,hflip[flip];[main][flip]overlay=W/2[vo]]' +mpvc cmdr vf toggle '@mirrorright:lavfi=[[vid1]split[main][tmp];[tmp]crop=iw/2:ih:iw/2:0,hflip[flip];[main][flip]overlay[vo]]' +mpvc cmdr vf toggle '@hstack:lavfi=[[vid1]split[v1][v2];[v1][v2]hstack[t]]' +mpvc cmdr vf toggle '@vstack:lavfi=[[vid1]split[v1][v2];[v1][v2]vstack[t]]'
+grep '^mpvc cmdr' docs/logbook.html | mpvc-fzf cmds ++
A few things have been going on lately, among them, the most recent has been adding mpvc-web
that is just a quick hack to control a running mpv instance from when no mpvc
cli is available, a typical example is when you just have a phone or tablet with no cli. To this I resorted to mimic mpvc-tui
interface but making it available through HTTP using python3 -m http.server
. This seems to work fine for simple things like toggling music on and off, moving to next/prev entry in the playlist, and raising/lowering volume.
@@ -379,7 +402,7 @@
mpvc
commands that I use frequently to their "m" counterparts in bash, not perfect, but handy enough, and saves some typing:
$ grep mpvc ~/.bashrc - alias m="mpvc" + alias m="mpvc lowfi" alias mh="alias | grep mpvc" alias mi="mpvc -i" alias mI="mpvc -I" @@ -401,6 +424,7 @@Introducing mpvc-web: a mpvc-tui like hack for the web alias mffd="mpvc-fzf -d" # fzf on -d /path/to/music/ alias mffe="mpvc-fzf -e" # fzf on mpvc-equalizer alias mfff="mpvc-fzf -f" # fzf on mpvc play-list + alias mffF="mpvc-fzf -F" # fzf on mpvc play-list alias mffg="mpvc-fzf -g" # fzf get/fetch ytid URL to ytdl-archive alias mffG="mpvc-fzf -G" # bis alias mffl="mpvc-fzf -l" # fzf over local files @@ -536,8 +560,8 @@
On the security of mpvc-web, 17 Nov 2023
The solution has been to change the defaults: so now mpvc-web runs by default on localhost, and, a new option: `MPVC_WEB_SSL_ENABLE=1 mpvc-web` -setups a `stunnel(1)` HTTPS connection, this allows to address the HTTPS security part. -Next, to address the authentication part, `stunnel(1)` provides peer +setups a `socat(1)` HTTPS connection, this allows to address the HTTPS security part. +Next, to address the authentication part, `socat(1)` provides peer certificate verification, so using the new option `MPVC_WEB_SSL_ENABLE=1 MPVC_WEB_SSL_VERIFY=2 mpvc-web` only clients that provide a valid peer certificate can connect to mpvc-web.
@@ -557,7 +581,7 @@On the security of mpvc-web, 17 Nov 2023
Check mpv-mpris for docs/setup, below is a quick setup: -
-mkdir -p ~/.config/mpv/scripts
+
+mkdir -p ~/.config/mpv/scripts;
+
curl -fsSL -o ~/.config/mpv/scripts/mpris.so https://github.com/hoyon/mpv-mpris/releases/download/1.0/mpris.so
-
+
Then, start a new instance of mpv player that loads `mpris.so`
While mpvc was playing `The Number 4` from Khruangbin's EP `The Infamous Bill` decided it would be fun to interface mpvc with a USB LCD on the Raspberry PI that acts as a jukebox, so each time a track starts output what's playing now for some seconds, and then poweroff the LCD. Turned out nice and easy by using mpvc-tui -S
scrobbling code, and masaging the output to pipe it to the USB LCD for presentation. For the record the output from mpvc-tui
is:
-
+
mpvc-tui -S 'echo $(date +"T%H:%M") $(mpvc -f "[%status%] #%position%/%playlistlength% %time% %artist% - %title% - %path%")' 'false'
-
+.
+
And this is how it looks:
@@ -687,18 +713,49 @@
ssh -X $USER@$HOST x2x -west -to :0 # be sure to read x2x(1)+ + +
+Recently landed mpvc lowfi
which features a minimal mpvc status that leverages emojis to represent a one-line compressed playing status (aliased to m="mpvc lowfi"
above #logbook-20230721):
+
+ +[play] β· Polaris πΆ 02:35/04:50 #3/33 π60% π π π§ + ++This goes hand in hand with the hability to browse HTTP server listings and add music as in: +
+ +% mpvc-fzf -b https://lofigirl.com/wp-content/uploads/2023/05 +Adding https://lofigirl.com/wp-content/uploads/2023/05/6.Downtown-Binary-_-The-Present-Sound-Polaris.mp3 +[play] β· Polaris πΆ 02:35/04:50 #3/33 π60% π π π§ + ++The
mpvc-fzf -b [URL]
browser works as follows:
+
+hrefs
and outputs all the links that point to the current host, ctrl+[tyu]
shortcuts for mpvc-fzf work as well for local, remote, and other media URLs.
+- Last-Modified: Thursday, 4 July 2024 by gmt4 + π Sat, 26 Oct 2024 by gmt4 - Powered by #HTML 𧑠π π + β‘ PoweredBy #HTML
diff --git a/docs/mpv.conf b/docs/mpv.conf index c321f11f..97141538 100644 --- a/docs/mpv.conf +++ b/docs/mpv.conf @@ -27,7 +27,7 @@ ytdl-raw-options-append=download-archive=~/.config/mpvc/ytdl-archive.txt [mpvc-normalize-volume] profile-desc="Normalize audio volume" -af=lavfi=[dynaudnorm] +af=@dynaudnorm:lavfi=[dynaudnorm] #af=lavfi=[loudnorm=I=-16:TP=-3:LRA=4] volume=70 diff --git a/docs/mpvc.conf b/docs/mpvc.conf new file mode 100644 index 00000000..d7bb4688 --- /dev/null +++ b/docs/mpvc.conf @@ -0,0 +1,20 @@ +# +# @file mpvc.conf example +# @url github.com/gmt4/mpvc +# + +# mpvc config +MPVC_MPV=mpv +MPVC_SOCAT=socat + +MPVC_LOCAL_CACHE="true" +MPVC_FMTSTR_LOFI='[%status%] %statuslofi% %title% πΆ %time%/%length% #%position%/%playlistlength% %=chapter%/%chapters% %mutelofi%%volume%%% %singlelofi%%repeatlofi%%idlelofi%%videolofi%' +MPVC_FMTSTR='[%status%] %statuslofi% %title% πΆ %time%/%length% #%position%/%playlistlength% %=chapter%/%chapters% %mutelofi%%volume%%% %singlelofi%%repeatlofi%%idlelofi%%videolofi%' + +# mpvc-tui config +MPVC_TUI_COLOR0='\033[1;36m' +MPVC_TUI_COLOR1='\033[1;37m' +MPVC_TUI_COLOR2='\033[0;36m' + +MPVC_TUI_UPDATEC=4 +MPVC_TUI_CLEARC=8 diff --git a/docs/now/index.html b/docs/now/index.html index 24521dd8..7be40745 100644 --- a/docs/now/index.html +++ b/docs/now/index.html @@ -107,15 +107,18 @@- Last-Modified: Thursday, 29 February 2023 by gmt4 + π Tue, 19 Now 2024 by gmt4 - Powered by #HTML 𧑠π π + β‘ PoweredBy #HTML
+