clangen / musikcube

a cross-platform, terminal-based music player, audio engine, metadata indexer, and server in c++
https://musikcube.com
BSD 3-Clause "New" or "Revised" License
4.1k stars 294 forks source link

playerctl play-pause lag #551

Open Roman- opened 1 year ago

Roman- commented 1 year ago

When trying to control musikcube with playerctl, the play-pause command always been executed with a ~0.7s delay:

$ time playerctl --player=musikcube play-pause
playerctl --player=musikcube play-pause  0,01s user 0,00s system 0% cpu 0,923 total
$ time playerctl --player=musikcube play-pause
playerctl --player=musikcube play-pause  0,00s user 0,00s system 0% cpu 0,670 total
$ time playerctl --player=musikcube play-pause
playerctl --player=musikcube play-pause  0,00s user 0,01s system 0% cpu 0,670 total
$ time playerctl --player=musikcube play-pause
playerctl --player=musikcube play-pause  0,01s user 0,00s system 0% cpu 0,746 total
$ time playerctl --player=musikcube play-pause
playerctl --player=musikcube play-pause  0,00s user 0,00s system 0% cpu 0,598 total

Doing play/pause with musikcube interface (spacebar) executes instantly, no pauses. Playerctl on other players also work instantly.

Anyone experience same issue? playerctl v2.4.1, musikcube 0.98.1

romner-set commented 1 year ago

Same issue here, using playerctl with any other app takes ~10ms, but musikcube has a ~0.7s delay. Using dbus-send directly is faster, but still seems to vary between ~25ms to ~0.5s:

~ on  master 
❯ time dbus-send --print-reply --dest=org.mpris.MediaPlayer2.musikcube.instance2067 /org/mpris/MediaPlayer2 org.mpris.MediaPlayer2.Player.PlayPause
method return time=1680368324.210227 sender=:1.27 -> destination=:1.238 serial=327 reply_serial=2

________________________________________________________
Executed in  483.02 millis    fish           external
   usr time    1.49 millis    0.00 micros    1.49 millis
   sys time    0.32 millis  319.00 micros    0.00 millis

~ on  master 
❯ time dbus-send --print-reply --dest=org.mpris.MediaPlayer2.musikcube.instance2067 /org/mpris/MediaPlayer2 org.mpris.MediaPlayer2.Player.PlayPause
method return time=1680368325.210733 sender=:1.27 -> destination=:1.239 serial=329 reply_serial=2

________________________________________________________
Executed in   26.05 millis    fish           external
   usr time    0.00 millis    0.00 micros    0.00 millis
   sys time    2.59 millis  450.00 micros    2.14 millis

~ on  master 
❯ time dbus-send --print-reply --dest=org.mpris.MediaPlayer2.musikcube.instance2067 /org/mpris/MediaPlayer2 org.mpris.MediaPlayer2.Player.PlayPause
method return time=1680368326.211033 sender=:1.27 -> destination=:1.240 serial=331 reply_serial=2

________________________________________________________
Executed in  111.64 millis    fish           external
   usr time    1.95 millis  184.00 micros    1.77 millis
   sys time    0.12 millis  117.00 micros    0.00 millis

~ on  master 
❯ time dbus-send --print-reply --dest=org.mpris.MediaPlayer2.musikcube.instance2067 /org/mpris/MediaPlayer2 org.mpris.MediaPlayer2.Player.PlayPause
method return time=1680368327.211185 sender=:1.27 -> destination=:1.241 serial=333 reply_serial=2

________________________________________________________
Executed in  219.46 millis    fish           external
   usr time    1.77 millis    0.00 micros    1.77 millis
   sys time    0.27 millis  268.00 micros    0.00 millis

~ on  master 
❯ time dbus-send --print-reply --dest=org.mpris.MediaPlayer2.musikcube.instance2067 /org/mpris/MediaPlayer2 org.mpris.MediaPlayer2.Player.PlayPause
method return time=1680368328.211395 sender=:1.27 -> destination=:1.242 serial=335 reply_serial=2

________________________________________________________
Executed in  322.64 millis    fish           external
   usr time    1.55 millis  194.00 micros    1.36 millis
   sys time    0.13 millis  127.00 micros    0.00 millis
CarterSnich commented 10 months ago

Also experiencing on KDE, slow response when using Multimedia keys, especially changing volume. No issues with other apps. Has anyone found a fix?