GithubHelp home page GithubHelp logo

nate-xyz / resonance Goto Github PK

View Code? Open in Web Editor NEW
341.0 6.0 19.0 7.29 MB

Intuitive GTK4/LibAdwaita music player

Home Page: https://beta.flathub.org/apps/io.github.nate_xyz.Resonance

License: GNU General Public License v3.0

Meson 0.91% Python 3.05% Shell 0.22% Rust 95.53% CSS 0.29%
gnome gtk4 libadwaita media-player music music-player python rust

resonance's People

Contributors

3laws avatar consultorseovalencia avatar kianmeng avatar nate-xyz avatar py7hon avatar rene-coty avatar sdroege avatar sebinnyshkim avatar vistaus avatar werdahias 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

resonance's Issues

Resonance 0.1.2 flatpak takes too much time to open after music library build and consume a huge amount of ram

The application takes too long to open as for some reason it consumes too much ram. In my case resonance was using more and more ram until it reached 10.6Gb and then it opened. The version of the application is 0.1.2 flatpak, OS: Nobara 37, intel i7 8750h, 16gb ram. I don't know what other information I might need to provide or how to find this information but let me know if you want more.

Στιγμιότυπο οθόνης από 2023-04-08 16-59-53

Flatpak version will not open second time after music library build.

Command: flatpak run io.github.nate_xyz.Resonance
Output:
DEBUG resonance > Loading resources
DEBUG resonance::database > The current directory is /home/sx
DEBUG resonance::database > music-folders = ["/mnt/ninja/music"]
ERROR resonance::web::discord > Unable to connect to discord client: Couldn't connect to the Discord IPC socket
DEBUG resonance::web::last_fm > Last.FM disabled.
DEBUG resonance::views::pages::albums::album_sidebar::imp > AlbumFlap constructed
DEBUG resonance::views::control_bar > bind_state
DEBUG resonance::views::window > bind signals
DEBUG resonance::database > database path: "/home/sx/.var/app/io.github.nate_xyz.Resonance/data/io.github.nate_xyz.Resonance/resonance.db"
DEBUG resonance::database > open database by existing uri
DEBUG resonance::database > sqlite_source_id: 2022-09-05 11:02:23 4635f4a69c8c2a8df242b384a992aea71224e39a2ccab42d8c0b0602f1e826e8
DEBUG resonance::database > Adding new artists ...
DEBUG resonance::database > Folder verified & loaded
DEBUG resonance::database::imp > setting loaded: true
DEBUG resonance::views::window > Notified database loaded in window.
DEBUG resonance::model::model > populate art
DEBUG resonance::model::model > populate artist_images
ERROR resonance::model::model > Unable to populate artist image: model error: Artist Query Empty
DEBUG resonance::model::model > populate albums
DEBUG resonance::model::model > populate tracks
DEBUG resonance::views::pages::tracks::track_page > track page update view
DEBUG resonance::model::model > populate genres
DEBUG resonance::views::pages::genres::genre_grid_page > genre grid update view
thread 'main' panicked at 'called Result::unwrap() on an Err value: GStrInteriorNulError(45)', /run/build/resonance/cargo/vendor/glib-0.17.3/src/translate.rs:564:56
stack backtrace:
note: Some details are omitted, run with RUST_BACKTRACE=full for a verbose backtrace.

[Flatpak] Resonance requires a folder re-add after a reboot

From issue #24,

Resonance doesn't handle persistent access to allowed folders (if a folder is located on a separate drive) on Flatpak builds. Currently it requires from the user to remove the folder in preferences window and to add it again in order to properly playback tracks.

[Expected?] Does not remember its window size

I know that the window on the first startup is not supposed to be resized so I don't know if it's intended to be but when reopening the application, it still takes up all the available space even though it was resized small when closed.

I'm not too bothered that the application forces a certain size when it first opens even if I think it's annoying for people using a tiling window manager.
However, I'm against forcing a size on every startup - especially for it to be so big - and that's why I think the application should remember its size on closing.

PS: After rereading, I realized that some of the sentences were a bit confusing and I apologize for this. It mean that you can ask if you don't understood something because it's my fault

Hover buttons

Revealing controls on hover is generally not a good idea for a number of reasons, including discoverability, accessibility, and input method support (inaccessible via touch/keyboard). The app currently uses hover controls on album covers and track lists (and maybe others places I haven't encountered?), I'd revisit these and replace them with static buttons, context menus, or something else that doesn't require hover.

X11: Mouse wheel scroll is incredibly slow on Tracks page

The application is gorgeous! Thank you so much for creating it! ❤️ Starred! ⭐

I just noticed one small issue. Using X11 and GNOME 43 and the Flathub release of the app, I see that the mouse wheel barely works. I scrolled through the "Tracks" list.

It takes around 10 mouse wheel "ticks/increments" to scroll past ONE track in the list. It is far too slow at reacting.

Scrollbar should always be at the window edge

On the "Albums" and "Tracks" views the scrollbar is not all the way at the edge, which looks weird and makes it hard to scroll, because it doesn't work if the cursor is outside the scrollview.

Distinguish header from scrollview

The content currently scrolls into nothingness, I'd apply the same gradient to the headerbar that's being used for the bottom playback bar.

image

Mind jazz albums

Hello and thank you for the player. I've installed it for the first time and pointed to my music library, quite some album text overflows outside of the album squares.
image

Add support for lyrics

Especially embedded lyrics with the tag LYRICS for synchronized lyrics and the tag UNSYNCHEDLYRICS for unsynchronized lyrics and also support for local lyrics files would be nice for other people.
The implementation of this can be in the form of a separate lyrics panel or over the cover art in the queue tab.

[Feature] Album art in folder not imported

In lollypop the album art can either come from

  1. the metadata itself or
  2. an image in the folder

All my music is organized with 2) because that way the files are separated from the artwork and you can easily fix a wrong one.
Right now the image in the folder doesn't get recognized by Resonance. It'd be nice it this were supported. lollypop also supports crawling the web for artwork and downloads the selected one in the album tracks' folder.

Preferences: List rows look broken

The lists on the preferences window look very strange with the black-on-gray, white separators, etc. I'd either recolor the whole window (including headerbar etc.) and make them semi-transparent, or just keep the default styling for background, listbox, and everything else.

image

Resonance UI/UX issues

Here's the list of most bugs and issues I found after testing the latest release of Resonance:

UI Bugs & Issues:

Resonance isn't designed for Adwaita light theme (tracked in #16, #14 and #15) Fixed in 901e76f
Show image

Screenshot from 2023-04-01 15-44-00

Main window doesn't have a title (instead if fallbacks to executable name) Fixed in 528bdba
Show image

Screenshot from 2023-04-01 15-43-34

Search and Sort buttons don't use the same style as main menu button Fixed in b8b46cf
Show image

Screenshot from 2023-04-01 15-45-02

There is a one pixel border between queue list and and playback view (sometimes noticeable also with dark theme)
Show image

Screenshot from 2023-04-01 15-42-39

Queue list gradient sometimes doesn't get updated
Show image

Screenshot from 2023-04-01 15-53-05

Some animations are too rapid (eg. Go Back from album view) Fixed in 5f7fda3

I think that the stack holding AlbumGridPage to AlbumDetailPage pages should use GTK_STACK_TRANSITION_TYPE_CROSSFADE transition instead of slide left transition.

UX Bugs & Issues:

For some reason after a reboot I need to re-add my music folder, as otherwise it will show this error if I try to play any track:
Error from element filesrc7: Error { domain: gst-resource-error-quark, code: 3, message: "Resource not found." }
Clicking too much in Tracks can trigger a main thread panic at:
already borrowed: BorrowMutError' in src/views/pages/tracks/track_page_row.rs:239:26
Only the first track gets enumerated in album view if track numbers aren't explicitly defined in metadata
Show image

Screenshot from 2023-04-01 16-32-50

This is how it looks in GNOME Music:

Screenshot from 2023-04-01 16-33-21

Other issues:

Resonance doesn't use its symbolic icon in GNOME system settings

I suppose that this isn't a bug, but something that needs to be actually implemented.

Show image

Screenshot from 2023-04-02 21-29-18

Sometimes you can encounter a GTK critical error (I'm not sure how to reproduce this):
Gtk-CRITICAL **: 21:18:57.205: gtk_widget_compute_point: assertion 'GTK_IS_WIDGET (widget)' failed
Resonance prints out debug messages in Flatpak release
Show image

Screenshot from 2023-04-01 15-43-00

Better playlist managment

Creating playlists through queue is not the best way, plus I didn't find any button to add song in playlist.

Improve album sorting

Album sorting should do the following:

  1. Not be case sensitive: right now, all lower-case albums appear after upper-case albums
  2. Ignore words like "the," "a," and "an" at the start of an album's name

The same artist can be separated into different buttons with the same name

Some of the artists in my library are separated into multiple artist pages despite all of the songs being tagged with the same album artist tag and displaying with the same name. Additionally I've seen some being separated for unkown reasons but instead starting with non-capital. Sadly I wasn't able to spot a pattern to this but I'll peep around a bit more

[Crash] Manualy remove the last track from queue

How to reproduce

  1. Play a track
  2. Go to "Queue" tab
  3. Click on "Toggle Playlist Sidebar"
  4. Click on "Edit Queue"
  5. "Remove Track From Queue" (red button) until there is no more track in the queue
  6. Resonance crashes

Video (flickering due to recording)

2023-04-06.14-58-19.1.webm

Traceback

thread 'main' panicked at 'index out of bounds: the len is 0 but the index is 0', src/player/queue.rs:107:21 stack backtrace:
note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose backtrace.

[Flatpak] .wma files are not supported

How to reproduce

  1. Install resonance through Flathub
  2. Have a .wma file (you can use ffmpeg (CLI) or FFaudioConverter (GUI))
  3. Add it to your library
  4. Try playing the track

Traceback

ERROR resonance::player::gst_backend                         > Error from element `typefind`: Error { domain: gst-stream-error-quark, code: 1, message: "Internal data stream error." } 
DEBUG resonance::player::gst_backend                         > Debug info: ../plugins/elements/gsttypefindelement.c(1257): gst_type_find_element_loop (): /GstPlayBin3:playbin3-0/GstURIDecodeBin3:uridecodebin3-0/GstDecodebin3:decodebin3-0/GstParseBin:parsebin0/GstTypeFindElement:typefind:streaming stopped, reason not-linked (-1) 
ERROR resonance::player::player                              > Player error

Possible solution

It's seem like a missing dependency for gstreamer.

[Enhancement] mention python deps in Readme

OS: Debian testing
rustc 1.65

I built the latest source from master. On startup, two bugs occurred:

  1. the window kinda snaps to to the topleft corner
  2. the initial import hangs on importing tags unless you install python3-tqdm, python3-loguru and python3-mutagen

imho it'd make sense to mention this in the docs,

Window freeze on start

Unable to move and resize the app after the initial start. In below window
Screenshot from 2023-03-31 18-36-05

it actually sticks on the left side for me. [Ubuntu 22.10 wayland] Flatpak

we need to add the folder first to move the app. If possible fix it.

Thanks for this beautiful app.

Compilation album grouping and labeling issues

I have a copy of the free album Kind of Bloop, a recreation of the famous Miles Davis album Kind of Blue in chiptune. You can download it for free here: https://kindofbloop.com/

Kind of Bloop is a compilation album, with each track produced by a different chiptune musician. But the tracks do not have an albumartist tag, so they are all grouped separately. They should be grouped together automatically. I would say that all tracks with the same album name (case sensitive!) should always be grouped together.

Here is another free compilation album of a famous jazz work recreated with chiptune and similar sounds: https://sexytoadsandfrogsfriendcircle.bandcamp.com/album/staffcirc-vol-4-switched-on-kapustin

(I have weird music taste, okay?)

This one does have an albumartist tag, so it is correctly grouped as a single album—but if you load it up in Resonance, it randomly picks Zoomlight, the artist for track 8 only, to display as the artist for the entire album, as you can see in my screenshot:

image

It should display "STAFFcirc" as the artist for the album, because that is the string in the albumartist tag.

Fallback album cover papercuts

The cover art fallback has a number of issues currently:

  • The dark-on-dark text is hard to read, I'd reduce the opacity
  • The light font weight should not be used at non-huge sizes, and this is definitely too small. I'd just use the regular font weight.
  • When the text reflows, it's left-aligned, which looks super weird above a centered artist name, I'd always center it
  • There's no horizontal padding on the text, so it goes too close to the edges, I'd add 12px padding

image

Font

Hi, I would consider this low-priority, but I'm curious: Would it be possible to make the UI fonts configurable? What are they coming from right now?

I think it would be really cool to be able to set the fonts, but perhaps I am alone in thinking this. If so, feel free to close this. :)

play button does not respond. (could not find the music folder)

logs
 DEBUG resonance > Loading resources
 DEBUG resonance::database > The current directory is /home/honnip
 DEBUG resonance::database > music-folders = ["/run/user/1000/doc/73a42925/Music"]
 ERROR resonance::web::discord > Unable to connect to discord client: Couldn't connect to the Discord IPC socket
 DEBUG resonance::web::last_fm > Already have Last.FM session key: abcdabcdabcdabcabscdsa
 DEBUG resonance::web::last_fm > Retrieving Last.FM request Token
 DEBUG resonance::views::pages::albums::album_sidebar::imp > AlbumFlap constructed
 DEBUG resonance::views::control_bar                       > bind_state
 DEBUG resonance::views::window                            > bind signals

(resonance:2): Gtk-WARNING **: 11:06:24.730: No IM module matching GTK_IM_MODULE=kime found
 DEBUG resonance::database                                 > database path: "/home/honnip/.var/app/io.github.nate_xyz.Resonance/data/io.github.nate_xyz.Resonance/resonance.db"
 DEBUG resonance::database                                 > open database by existing uri
 DEBUG resonance::database                                 > sqlite_source_id: 2022-09-05 11:02:22 4635f3a69c8c2a8df142e384e992aea71224e38a2ccab42d8c0b0602f1e826e8
 DEBUG resonance::database                                 > No new artists
 DEBUG resonance::database                                 > Folder verified & loaded
 DEBUG resonance::database::imp                            > setting loaded: true
 DEBUG resonance::views::window                            > Notified database loaded in window.
 DEBUG resonance::model::model                             > populate art
 DEBUG resonance::model::model                             > populate artist_images
 DEBUG resonance::model::model                             > populate albums
 DEBUG resonance::model::model                             > populate tracks
 DEBUG resonance::views::pages::tracks::track_page         > track page update view
 DEBUG resonance::model::model                             > populate genres
 DEBUG resonance::views::pages::genres::genre_grid_page    > genre grid update view
 DEBUG resonance::model::model                             > populate artists
 DEBUG resonance::views::pages::artists::artist_grid_page  > artist grid update view

(resonance:2): Gtk-WARNING **: 11:06:30.505: Failed to set text '<span weight="book" size="large">Yōko Shimomura, ACE+, Manami Kiyota & Yasunori Mitsuda</span>' from markup due to error parsing markup: 1째 줄에서 오류: 엔티티가 세미콜론으로 끝나지 않습니다. 대부분의 경우 엔티티 시작에 사용하려고 하지 않은 곳에서 & 기호를 사용한 경우입니다 — 이런 경우 &amp; 라고 쓰십시오
 DEBUG resonance::model::model                             > populate playlists
 ERROR resonance::model::model                             > Unable to populate playlists: model error: Playlist Query Empty
 DEBUG resonance::views::pages::playlists::playlist_grid_page > No playlists in model.
 ERROR resonance::player::gst_backend                         > Element failed to change its state
 DEBUG resonance::player::player                              > last fm enabled, sending track
 DEBUG resonance::player::gst_backend                         > BACKEND state changed: `Null` -> `Ready`
 ERROR resonance::player::gst_backend                         > Error from element `filesrc0`: Error { domain: gst-resource-error-quark, code: 3, message: "리소스 찾을 수 없음." }
 DEBUG resonance::player::gst_backend                         > Debug info: ../plugins/elements/gstfilesrc.c(553): gst_file_src_start (): /GstPlayBin3:playbin3-0/GstURIDecodeBin3:uridecodebin3-0/GstURISourceBin:urisourcebin0/GstFileSrc:filesrc0:
No such file "/run/user/1000/doc/73a42925/Music/Parannoul - Asian Glow - sonhos tomam conta - Downfall of the Neon Youth/Parannoul - Asian Glow - sonhos tomam conta - Downfall of the Neon Youth - 01 Nails.flac"
 DEBUG resonance::player::player                              > PLAYER set_state_state Loading
 DEBUG resonance::player::state                               > STATE set_playback_state Loading
 DEBUG resonance::views::pages::queue::queue_page             > paused
 DEBUG resonance::views::control_bar                          > paused
 ERROR resonance::player::player                              > Player error
 DEBUG resonance::player::player                              > player QueueNonEmpty
 DEBUG resonance::player::state                               > queue_nonempty
 DEBUG resonance::player::player                              > player QueueUpdate
 DEBUG resonance::player::state                               > queue_update
 DEBUG resonance::web::last_fm                                > Now playing: "{\"nowplaying\":{\"artist\":{\"corrected\":\"0\",\"#text\":\"Parannoul \\/ Asian glow \\/ Sonhos Tomam Conta\"},\"track\":{\"corrected\":\"0\",\"#text\":\"Nails\"},\"ignoredMessage\":{\"code\":\"0\",\"#text\":\"\"},\"albumArtist\":{\"corrected\":\"0\",\"#text\":\"\"},\"album\":{\"corrected\":\"0\",\"#text\":\"Downfall of the Neon Youth\"}}}"
 DEBUG resonance::web::last_fm                                > Updated now playing

Clicking the play button does not respond. (it would be good to show the error message, and stop scrobbling to last.fm)

If a user logs in once, then logs out again, and logs in again, the directory contents will have been lost in between, but applications should not rely on this behavior and must be able to deal with stale files.

according to this document, $XDG_RUNTIME_DIR seems to be lost on logout.
I was actually able to reproduce this by turning the machine off and on.

Artist album catalogue flickering bug

What I assume is happening is whenever a name of a track in an album is long enough and hovered over, window tries to realign the layout to make space for the additional buttons that appear on the sides of the track. It's immiedietly being not hovered over again and realigned resulting in a shimmering loop.

Nagranie.ekranu.z.2023-04-07.20-07-52.webm

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.