Giter Site home page Giter Site logo

ymuse's Introduction

Latest release Releases License Go Go Report Card

Ymuse icon Ymuse

Ymuse is an easy, functional, and snappy GTK front-end (client) for Music Player Daemon written in Go. It supports both light and dark desktop theme.

Ymuse screenshot

It supports library browsing and search, playlists, streams etc.

Ymuse Library screenshot Ymuse Streams screenshot

Watch Ymuse feature tour video:

Feature tour video

Installing

  • If your distribution supports snap packages: sudo snap install ymuse
  • Ubuntu (as of 23.04) or Debian Testing: sudo apt install ymuse
  • A flatpak is available in the Flathub repository.
  • Otherwise, you can use a binary package from the Releases section.

Building from source

Requirements

  • Go 1.22+
  • GTK 3.24+

Getting started

  1. Install Go
  2. Make sure you have the following build dependencies installed:
    • build-essential
    • libc6
    • libgtk-3-dev
    • libgdk-pixbuf2.0-dev
    • libglib2.0-dev
    • gettext
  3. Clone the source and compile:
git clone https://github.com/yktoo/ymuse.git
cd ymuse
go generate
go build
  1. Copy over the icons and localisations:
sudo cp -r resources/icons/* /usr/share/icons/
sudo cp -r resources/i18n/generated/* /usr/share/locale/
sudo update-icon-caches /usr/share/icons/hicolor/*

This will create the application executable ymuse in the project root directory, which you can run straight away.

Packaging

DEB and RPM

Requires goreleaser installed.

goreleaser release --clean --skip=publish [--snapshot]

Flatpak

  1. Install flatpak and flatpack-builder
  2. flatpak remote-add flathub https://flathub.org/repo/flathub.flatpakrepo
  3. flatpak-builder dist /path/to/com.yktoo.ymuse.yml --force-clean --install-deps-from=flathub --repo=/path/to/repository
  4. Optional: make a .flatpak bundle: flatpak build-bundle /path/to/repository ymuse.flatpak com.yktoo.ymuse

Snap

Install and run snapcraft (it will also ask to install Multipass, which you'll have to confirm):

snap install snapcraft
snapcraft clean # Optional, when rebuilding the snap
snapcraft

License

See COPYING.

Credits

TODO

  • Automated UI testing.
  • Drag’n’drop of multiple tracks in the play queue.
  • More settings.
  • Multiple MPD connections support.

ymuse's People

Contributors

14mrh4x0r avatar eniehack avatar mdosch avatar mrzapp avatar pizzadude avatar rare-magma avatar yktoo avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

ymuse's Issues

[Feature Request] Drag-and-Drop within Queue

It will be very helpful if this feature will be implemented. :)

Currently if I want to insert some Tracks/Albums in the middle of the Queue, I have to

  1. remove everything after SOME point
  2. insert what I want
  3. then add the removed ones back

It IS not usable/comfortable.

Thanks for your work. :)

Slow response with album art enabled and queued streams

When album art is enabled, Ymuse start and navigation is slow, especially when multiple radio streams are in queue. Mpd log displays multiple curl 404 fetch errors, so it seems to pause on that check. Maybe simply disable album art for streams is a solution? I'd like to keep it enabled for the rest of my library.

Submission to flathub

would it be possible to add submission to flathub as a release mechanism?

This project is fantastic!

Segmentation fault seemingly at random

I have Ymuse disappear from my desktop at times, not entirely sure what gets it. running on an up-to-date debian/bullseye (testing) system. could it just be a version mismatch somewhere? the Unref.func1 line makes me think some of my go runtime or glib stuff is missing something... here is the crash dump:

Jan 31 13:25:37 iddqd ymuse.desktop[376864]: fatal error: unexpected signal during runtime execution
Jan 31 13:25:37 iddqd ymuse.desktop[376864]: [signal SIGSEGV: segmentation violation code=0x2 addr=0x3b070f0 pc=0x3b070f0]
Jan 31 13:25:37 iddqd ymuse.desktop[376864]: runtime stack:
Jan 31 13:25:37 iddqd ymuse.desktop[376864]: runtime.throw(0xa3629a, 0x2a)
Jan 31 13:25:37 iddqd ymuse.desktop[376864]: #011/home/travis/.gimme/versions/go1.14.7.linux.amd64/src/runtime/panic.go:1116 +0x72
Jan 31 13:25:37 iddqd ymuse.desktop[376864]: runtime.sigpanic()
Jan 31 13:25:37 iddqd ymuse.desktop[376864]: #011/home/travis/.gimme/versions/go1.14.7.linux.amd64/src/runtime/signal_unix.go:679 +0x46a
Jan 31 13:25:37 iddqd ymuse.desktop[376864]: goroutine 34 [syscall]:
Jan 31 13:25:37 iddqd ymuse.desktop[376864]: runtime.cgocall(0x8cdcb0, 0xc0000486d8, 0x0)
Jan 31 13:25:37 iddqd ymuse.desktop[376864]: #011/home/travis/.gimme/versions/go1.14.7.linux.amd64/src/runtime/cgocall.go:133 +0x5b fp=0xc0000486a8 sp=0xc000048670 pc=0x47a8fb
Jan 31 13:25:37 iddqd ymuse.desktop[376864]: github.com/gotk3/gotk3/glib._Cfunc_g_object_unref(0x25abc20)
Jan 31 13:25:37 iddqd ymuse.desktop[376864]: #011_cgo_gotypes.go:2967 +0x41 fp=0xc0000486d8 sp=0xc0000486a8 pc=0x561201
Jan 31 13:25:37 iddqd ymuse.desktop[376864]: github.com/gotk3/gotk3/glib.(*Object).Unref.func1(0xc0000a21f8)
Jan 31 13:25:37 iddqd ymuse.desktop[376864]: #011/home/travis/gopath/pkg/mod/github.com/gotk3/[email protected]/glib/glib.go:537 +0x55 fp=0xc000048710 sp=0xc0000486d8 pc=0x574f75
Jan 31 13:25:37 iddqd ymuse.desktop[376864]: github.com/gotk3/gotk3/glib.(*Object).Unref(0xc0000a21f8)
Jan 31 13:25:37 iddqd ymuse.desktop[376864]: #011/home/travis/gopath/pkg/mod/github.com/gotk3/[email protected]/glib/glib.go:537 +0x2b fp=0xc000048728 sp=0xc000048710 pc=0x5699fb
Jan 31 13:25:37 iddqd ymuse.desktop[376864]: runtime.call32(0x0, 0xa5e578, 0xc0006840a0, 0x1000000010)
Jan 31 13:25:37 iddqd ymuse.desktop[376864]: #011/home/travis/.gimme/versions/go1.14.7.linux.amd64/src/runtime/asm_amd64.s:539 +0x3b fp=0xc000048758 sp=0xc000048728 pc=0x4d6e8b
Jan 31 13:25:37 iddqd ymuse.desktop[376864]: runtime.runfinq()
Jan 31 13:25:37 iddqd ymuse.desktop[376864]: #011/home/travis/.gimme/versions/go1.14.7.linux.amd64/src/runtime/mfinal.go:222 +0x1df fp=0xc0000487e0 sp=0xc000048758 pc=0x48f64f
Jan 31 13:25:37 iddqd ymuse.desktop[376864]: runtime.goexit()
Jan 31 13:25:37 iddqd ymuse.desktop[376864]: #011/home/travis/.gimme/versions/go1.14.7.linux.amd64/src/runtime/asm_amd64.s:1373 +0x1 fp=0xc0000487e8 sp=0xc0000487e0 pc=0x4d8be1
Jan 31 13:25:37 iddqd ymuse.desktop[376864]: created by runtime.createfing
Jan 31 13:25:37 iddqd ymuse.desktop[376864]: #011/home/travis/.gimme/versions/go1.14.7.linux.amd64/src/runtime/mfinal.go:156 +0x61
Jan 31 13:25:37 iddqd ymuse.desktop[376864]: goroutine 1 [syscall, 2 minutes]:
Jan 31 13:25:37 iddqd ymuse.desktop[376864]: github.com/gotk3/gotk3/glib._Cfunc_g_application_run(0x18ac0f0, 0x0, 0x18a6090, 0x0)
Jan 31 13:25:37 iddqd ymuse.desktop[376864]: #011_cgo_gotypes.go:1426 +0x4d
Jan 31 13:25:37 iddqd ymuse.desktop[376864]: github.com/gotk3/gotk3/glib.(*Application).Run.func4(0xc000113050, 0x0, 0x0, 0x0, 0x18a6090, 0x18a6090)
Jan 31 13:25:37 iddqd ymuse.desktop[376864]: #011/home/travis/gopath/pkg/mod/github.com/gotk3/[email protected]/glib/application.go:185 +0x94
Jan 31 13:25:37 iddqd ymuse.desktop[376864]: github.com/gotk3/gotk3/glib.(*Application).Run(0xc000113050, 0x0, 0x0, 0x0, 0x0)
Jan 31 13:25:37 iddqd ymuse.desktop[376864]: #011/home/travis/gopath/pkg/mod/github.com/gotk3/[email protected]/glib/application.go:185 +0x187
Jan 31 13:25:37 iddqd ymuse.desktop[376864]: main.main()
Jan 31 13:25:37 iddqd ymuse.desktop[376864]: #011/home/travis/gopath/src/github.com/yktoo/ymuse/ymuse.go:78 +0x5d3

Expand list of attributes for library browsing

Requested by Pierre:

Example: navigate in Genre, then classical. With Ymuse (and cantata) it stops here, while I wish I could then filter/navigate by composer. With classical music and jazz, it can also be interesting to navigate thru the "label" tag.

building v0.15 from source: icons do not load

Menu, playback, etc. icons do not load.
They are copied in place.
On some OS update-icon-caches has gtk- prefix:

update-icon-caches /usr/share/icons/hicolor/*

returns

-su: update-icon-caches: command not found

then

gtk-update-icon-cache /usr/share/icons/hicolor/*

returns

gtk-update-icon-cache: No theme index file.

I try to run gtk-update-icon-cache, it's version is 3.24.21
tried

gtk-update-icon-cache -t /usr/share/icons/hicolor/*
gtk-update-icon-cache

^ both executed successfully, but did not help.

No Audio

Ymuse 0.15 (snap package), Ubuntu 18.04.5.

Songs in the "Queue" tab "play", but there is no audio, and the pointer does not move from the middle position. The seconds do change, indicating the song is silently playing.

Connecting to the exact same mpd server using the "Gnome Music Player" mpd client, I can play the exact same song on the same computer, and the audio works fine.

"Add to playlist" appends to a wrong playlist

When you choose Add to playlist from the Library's context menu (or use the Add to toolbar button), the tracks are added to a wrong playlist, seemingly the last one in the list.

[Feature Request] Append to Playlist From Library

I'd really like a way to append a song or group of songs to a specific playlist, without needing to add it to my play queue. Maybe as a context menu action on albums/genres/playlists/artists as well as tracks?

Sort entries on the Streams tab ignoring case

Snap version of Ymuse 0.18 running on Ubuntu Bionic.

I have a long list of stations in the "Streams" tab. When I add a station, it goes to the bottom of the list. How do I sort the stations alphabetically? I can't figure out how to do that. Now it is very difficult for me to find a station because I have to look through the entire list.

[Feature Request] MPD Output toggle

I would love to have a way to toggle different MPD outputs on and off. It is possible to do it in 'ncmpcpp' and 'M.A.L.P' clients, and it is a very useful feature to have.

Example from M.A.L.P:

MALP Example

I suggest to do it in the "..." dropdown, something like this:

Dropdown Example

I use the Ymuse primarily, so i will refrain myself to do complex sound outputs in MPD for now. Thanks for the amazing work!

Add multi-select mode to the Library

Currently it is impossible to select multiple items in the library panel.
Could you please add the necessary functionality?
It would be nice to be able to add multiple items to the queue :)

Cheers

Dependencies in Fedora

The two dependencies of the project:

  • libc6
  • libgtk-3-0

Don't appear to exist in Fedora (dnf doesn't automatically resolve them when installing the .rpm).

Is ymuse intended to be 32-bit? Do I need to install the .i686 equivalent packages?

For libc6:

glibc.x86_64 : The GNU libc libraries
glibc.i686 : The GNU libc libraries

For libgtk-3-0:

gtk3-devel.i686 : Development files for GTK+
gtk3-devel.x86_64 : Development files for GTK+

Streams that will not work

Ymuse 0.16 snap package on Ubunut 18.04.

Trying to add some streams from DI.FM, I enter this URL, for example:

http://listen.di.fm/premium/discohouse.pls?listen_key=my_personal_key_for_my_DI.FM_account

But Ymuse will not play it, it produces this error message:

"File discohouse.pls?listen_key=my_personal_key_for_my_DI.FM_account from http:/listen.di.fm/premium - Failed to decode http://http://listen.di.fm/premium/discohouse.pls?listen_key=my_personal_key_for_my_DI.FM_account"

I don't know what is wrong, this URL works great in several other applications that stream online radio stations.

I am able to play other streams in Ymuse just fine, only these that have my DI.FM key are the ones that will not work.

How do I make this station work in Ymuse?

(P.S.: Where will I find the file that has the streams that I have added?)

Segmentation faults with MPD 0.22.10

I am experiencing frequent seg faults on Ubuntu 20.04, MPD 0.22.4 using both the snap package and .deb package on 2 separate devices.

Here is one such seg fault in case it is useful:

fatal error: unexpected signal during runtime execution
[signal SIGSEGV: segmentation violation code=0x1 addr=0x0 pc=0x0]

runtime stack:
runtime.throw(0xaa566e, 0x2a)
	/home/travis/.gimme/versions/go1.15.8.linux.amd64/src/runtime/panic.go:1116 +0x72
runtime.sigpanic()
	/home/travis/.gimme/versions/go1.15.8.linux.amd64/src/runtime/signal_unix.go:726 +0x4ac

goroutine 1 [syscall]:
runtime.cgocall(0x93ab20, 0xc00058bdb0, 0xc00007f050)
	/home/travis/.gimme/versions/go1.15.8.linux.amd64/src/runtime/cgocall.go:133 +0x5b fp=0xc00058bd80 sp=0xc00058bd48 pc=0x48271b
github.com/gotk3/gotk3/glib._Cfunc_g_application_run(0x28f0140, 0x0, 0x28e2b70, 0x0)
	_cgo_gotypes.go:1534 +0x4d fp=0xc00058bdb0 sp=0xc00058bd80 pc=0x57548d
github.com/gotk3/gotk3/glib.(*Application).Run.func4(0xc00007f050, 0x0, 0x0, 0x0, 0x28e2b70, 0x28e2b70)
	/home/travis/gopath/pkg/mod/github.com/gotk3/[email protected]/glib/application.go:185 +0x94 fp=0xc00058bde8 sp=0xc00058bdb0 pc=0x58f034
github.com/gotk3/gotk3/glib.(*Application).Run(0xc00007f050, 0x0, 0x0, 0x0, 0x0)
	/home/travis/gopath/pkg/mod/github.com/gotk3/[email protected]/glib/application.go:185 +0x18d fp=0xc00058bea0 sp=0xc00058bde8 pc=0x57f5cd
main.main()
	/home/travis/gopath/src/github.com/yktoo/ymuse/parts/ymuse/build/ymuse.go:78 +0x4d6 fp=0xc00058bf88 sp=0xc00058bea0 pc=0x93a2d6
runtime.main()
	/home/travis/.gimme/versions/go1.15.8.linux.amd64/src/runtime/proc.go:204 +0x209 fp=0xc00058bfe0 sp=0xc00058bf88 pc=0x4b6c49
runtime.goexit()
	/home/travis/.gimme/versions/go1.15.8.linux.amd64/src/runtime/asm_amd64.s:1374 +0x1 fp=0xc00058bfe8 sp=0xc00058bfe0 pc=0x4e84c1

goroutine 6 [select]:
github.com/yktoo/ymuse/internal/player.(*Connector).connect(0xc00016c180)
	/home/travis/gopath/src/github.com/yktoo/ymuse/parts/ymuse/build/internal/player/connector.go:170 +0x15b
created by github.com/yktoo/ymuse/internal/player.(*Connector).Start
	/home/travis/gopath/src/github.com/yktoo/ymuse/parts/ymuse/build/internal/player/connector.go:73 +0xa5

goroutine 7 [select, 4 minutes]:
github.com/yktoo/ymuse/internal/player.(*Connector).watch(0xc00016c180)
	/home/travis/gopath/src/github.com/yktoo/ymuse/parts/ymuse/build/internal/player/connector.go:293 +0x1d1
created by github.com/yktoo/ymuse/internal/player.(*Connector).Start
	/home/travis/gopath/src/github.com/yktoo/ymuse/parts/ymuse/build/internal/player/connector.go:76 +0xc7

goroutine 19 [IO wait, 4 minutes]:
internal/poll.runtime_pollWait(0x7f25b3f90138, 0x72, 0xb1bf40)
	/home/travis/.gimme/versions/go1.15.8.linux.amd64/src/runtime/netpoll.go:222 +0x55
internal/poll.(*pollDesc).wait(0xc0000d4198, 0x72, 0xb1bf00, 0x1141628, 0x0)
	/home/travis/.gimme/versions/go1.15.8.linux.amd64/src/internal/poll/fd_poll_runtime.go:87 +0x45
internal/poll.(*pollDesc).waitRead(...)
	/home/travis/.gimme/versions/go1.15.8.linux.amd64/src/internal/poll/fd_poll_runtime.go:92
internal/poll.(*FD).Read(0xc0000d4180, 0xc0000d6000, 0x1000, 0x1000, 0x0, 0x0, 0x0)
	/home/travis/.gimme/versions/go1.15.8.linux.amd64/src/internal/poll/fd_unix.go:159 +0x1a5
net.(*netFD).Read(0xc0000d4180, 0xc0000d6000, 0x1000, 0x1000, 0x6, 0x6, 0x0)
	/home/travis/.gimme/versions/go1.15.8.linux.amd64/src/net/fd_posix.go:55 +0x4f
net.(*conn).Read(0xc00008e5c8, 0xc0000d6000, 0x1000, 0x1000, 0x0, 0x0, 0x0)
	/home/travis/.gimme/versions/go1.15.8.linux.amd64/src/net/net.go:182 +0x8e
bufio.(*Reader).fill(0xc0000b0300)
	/home/travis/.gimme/versions/go1.15.8.linux.amd64/src/bufio/bufio.go:101 +0x105
bufio.(*Reader).ReadSlice(0xc0000b0300, 0xa, 0xc0000d4198, 0x100000000000008, 0x0, 0xc0000d7000, 0x9)
	/home/travis/.gimme/versions/go1.15.8.linux.amd64/src/bufio/bufio.go:360 +0x3d
bufio.(*Reader).ReadLine(0xc0000b0300, 0xc0000d7000, 0xc00005ab40, 0x4cf56f, 0x9, 0x0, 0x0)
	/home/travis/.gimme/versions/go1.15.8.linux.amd64/src/bufio/bufio.go:389 +0x34
net/textproto.(*Reader).readLineSlice(0xc0000b6510, 0xc000092c7c, 0xa93547, 0x2, 0x9, 0xc000092c75)
	/home/travis/.gimme/versions/go1.15.8.linux.amd64/src/net/textproto/reader.go:58 +0x6c
net/textproto.(*Reader).ReadLine(...)
	/home/travis/.gimme/versions/go1.15.8.linux.amd64/src/net/textproto/reader.go:39
github.com/fhs/gompd/v2/mpd.(*Client).readLine(0xc000097060, 0xa95f3d, 0x7, 0xa93547, 0x2)
	/home/travis/gopath/pkg/mod/github.com/fhs/gompd/[email protected]/mpd/client.go:183 +0x45
github.com/fhs/gompd/v2/mpd.(*Client).readList(0xc000097060, 0xa95f3d, 0x7, 0x0, 0x0, 0x0, 0x0, 0x0)
	/home/travis/gopath/pkg/mod/github.com/fhs/gompd/[email protected]/mpd/client.go:167 +0xb5
github.com/fhs/gompd/v2/mpd.(*Command).Strings(0xc0000970a0, 0xa95f3d, 0x7, 0x0, 0x0, 0x0, 0x0, 0x0)
	/home/travis/gopath/pkg/mod/github.com/fhs/gompd/[email protected]/mpd/response.go:86 +0x14b
github.com/fhs/gompd/v2/mpd.(*Client).idle(0xc000097060, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0)
	/home/travis/gopath/pkg/mod/github.com/fhs/gompd/[email protected]/mpd/client.go:361 +0xf0
github.com/fhs/gompd/v2/mpd.(*Watcher).watch(0xc000099a40, 0x0, 0x0, 0x0)
	/home/travis/gopath/pkg/mod/github.com/fhs/gompd/[email protected]/mpd/watcher.go:46 +0x251
created by github.com/fhs/gompd/v2/mpd.NewWatcher
	/home/travis/gopath/pkg/mod/github.com/fhs/gompd/[email protected]/mpd/watcher.go:36 +0x207

decode error

Ymuse 0.15 on Ubuntu 18.04.5

I am able to connect to the remote mpd server, I am able to navigate among all the audio files in the server's file structure in the "Library" tab, and I am able to add a song from the "Library" tab to the "Queue" tab.

When I try to play a file, I get an error that it could not play it because there is a "decoding" error.

I don't know what this error message means, and I don't know what I should do in response.

The audio files are mp3 files, they play fine on a number of audio applications (vlc, smplayer, others, etc.).

ymuse-bin in AUR

Hi,

thanks for this nice piece of software - I really like it! :)

I made an AUR package based on your .deb binary package here: https://aur.archlinux.org/packages/ymuse-bin/
Maybe you want to include it on your website/README in the download/install section.

Sorry to abuse this issue tracker; the contact form on your website seems to be broken and I was not able to locate your email address.

Have a good weekend!
Emilio

Improve sorting in library view

From the library, if one drills through the Genres/Artists/Albums menus (so not Files or Playlists), the tracks within an album are sorted by track title, rather than the expected track number.

Furthermore (though less important), sorting albums within an artist by the year tag would be nice.

Album art not showing

This is a really excellent mpd client. Truly great.
I'm not seeing album art, though, and I do have it selected and my files do contain embedded art.

System: Ubuntu 20.04.1
MPD: 0.21.25

Thanks!

Ymuse floods system logs if mpd connection disappears

Loving this mpd client, very clean and nice! I accidentally had my /var fill up due to playing with changing the mpd config file as such:

Jan 31 13:19:58 iddqd ymuse.desktop[376864]: 2021/01/31 13:19:58 13:19:58.644 WARNING player Watcher error write tcp 192.168.8.129:34118->192.168.8.132:6600: write: broken pipe

I have millions of these, and since I have nvme it filled pretty quickly 😆

I imagine its just the autoreconnect being stupid fast on my system, maybe some throttling is in order?

Add ability to connect to a socket

ymuse seems to refuse to connect to a socket as it says no such host

WARNING player Failed to connect to MPD: DialAuthenticated() failed: dial tcp: lookup /home/cincinmasukmangkok/.config/mpd/socket: no such host

using Ymuse with Conky

(Not sure if this is an appropriate place to post this question, if not, say so, I certainly will understand.)

Ymuse 0.16, Ubuntu 18.04

I'm trying to figure out how to display status information about what Ymuse is playing in Conky.

I currently have a conky file set up for a different audio application - Goodvibes. Below I show the conky instructions for Goodvibes, and what the display looks like. I would like to replicate this for Ymuse, but I don't know how to do that. Would someone here know how I would need to alter the entries in the file I have for Goodvibes in order to make it work for Ymuse?

Conky file instructions for Goodvibes:

conky.text = [[
${if_match "${execi 3 qdbus org.mpris.MediaPlayer2.Goodvibes /org/mpris/MediaPlayer2 org.mpris.MediaPlayer2.Player.PlaybackStatus 2>/dev/null}" == "Playing"}
${color2}Goodvibes Info
Station: ${color0}${execpi 3 qdbus org.mpris.MediaPlayer2.Goodvibes /org/mpris/MediaPlayer2 org.mpris.MediaPlayer2.Player.Metadata 2>/dev/null | grep "^goodvibes:station:" | cut -d':' -f3-}
${color2}Artist - Track: ${color0}${execpi 3 qdbus org.mpris.MediaPlayer2.Goodvibes /org/mpris/MediaPlayer2 org.mpris.MediaPlayer2.Player.Metadata 2>/dev/null | grep "^xesam:title:" | cut -d':' -f3-}
${else}
${color2}Goodvibes is not playing.${color0}
${endif}
${color2}Volume amixer 1 (0 - 64): ${color0}${exec amixer -c 1 get Master | grep Mono:}
${color0} ${execbar amixer -c 1 get Master | grep -o -E '[0-9]{2}' | head -n3 | tail -n1}
${color2}Volume amixer 2 (0 - 64): ${color0}${exec amixer -c 2 get Master | grep Mono:}
${color0} ${execbar amixer -c 2 get Master | grep -o -E '[0-9]{2}' | head -n3 | tail -n1}
]]

Screenshot from 2021-02-15 20-01-23

[Feature Request] Add support for playerctl/MPRIS

I have my media buttons binded to playerctl. It works with browsers, vlc, etc, but doesn't work with ymuse. It would be nice to have that work so that you can pause without having the application visible.

No support for seek in current track?

Nice feature in mpc, and gmpc before it has been abandoned, was ability to skip forward & backward by given amount of time in a current playback.

Any intention to add it to ymuse including appropriate keyboard bindings and clickable buttons? With possible preference option to set size of this time step? With something like 5 seconds by default.

Does not build with go 1.16

This is an issue with upstream package gotk3: gotk3#726
it can be fixed by using master branch of gotk3 - the issue linked above has a specific commit that should work.

A particular stream will not play

Ymuse 0.19 on Ubuntu 18.04

I am trying to play this stream: http://stream.open.fm/68 I get no error message at all, just silence. But, this stream plays fine on other music/audio applications. And, other streams play just fine in Ymuse.

How do I track down why Ymuse will not play this particular stream? Thanks.

Volume control

I feel like I must be missing something, but I can't find any sort of volume control within the application. Having this would be great.

Album art is not loading.

I added album art to an mp3 file like this:
ffmpeg -i in.mp3 -i test.jpeg -map 0:0 -map 1:0 -codec copy -id3v2_version 3 -metadata:s:v title="Album cover" -metadata:s:v comment="Cover (front)" out.mp3
Is there anything I have to do in ymuse? I noticed 'track title template' in the preferences window doesn't include anything about album covers, do I have to edit that?

Multi-select in the queue

When I select multiple items in the queue and then right-click on an item to remove them all from the queue at the same time, all items except the item I right-clicked on get deselected.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.