nate-xyz / resonance Goto Github PK
View Code? Open in Web Editor NEWIntuitive GTK4/LibAdwaita music player
Home Page: https://beta.flathub.org/apps/io.github.nate_xyz.Resonance
License: GNU General Public License v3.0
Intuitive GTK4/LibAdwaita music player
Home Page: https://beta.flathub.org/apps/io.github.nate_xyz.Resonance
License: GNU General Public License v3.0
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.
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.
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.
Other special characters I've tried don't have the same issue
In most GNOME apps, such as Files, typing on the keyboard will automatically initiate a search. This should probably be true here as well, rather than requiring the user to click the button first.
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
Mentioned in: #24
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.
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.
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.
Mentioned in: #24
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.
In lollypop the album art can either come from
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.
Mentioned in: #24
"I think that the stack holding AlbumGridPage to AlbumDetailPage pages should use GTK_STACK_TRANSITION_TYPE_CROSSFADE transition instead of slide left transition."
Mentioned in: #24
Here's the list of most bugs and issues I found after testing the latest release of Resonance:
I think that the stack holding AlbumGridPage to AlbumDetailPage pages should use GTK_STACK_TRANSITION_TYPE_CROSSFADE
transition instead of slide left transition.
Error from element filesrc7: Error { domain: gst-resource-error-quark, code: 3, message: "Resource not found." }
already borrowed: BorrowMutError' in src/views/pages/tracks/track_page_row.rs:239:26
I suppose that this isn't a bug, but something that needs to be actually implemented.
Gtk-CRITICAL **: 21:18:57.205: gtk_widget_compute_point: assertion 'GTK_IS_WIDGET (widget)' failed
Please add can play DSD files all versions.
Creating playlists through queue is not the best way, plus I didn't find any button to add song in playlist.
when pressing pause while a song is playing and then pressing play again restarts the song
Album sorting should do the following:
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
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.
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
It's seem like a missing dependency for gstreamer.
OS: Debian testing
rustc 1.65
I built the latest source from master. On startup, two bugs occurred:
imho it'd make sense to mention this in the docs,
It would be great if songs played when offline are scrobbled when reconnecting to the internet.
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:
It should display "STAFFcirc" as the artist for the album, because that is the string in the albumartist
tag.
The cover art fallback has a number of issues currently:
Command used: playerctl -p io.github.nate_xyz.Resonance play-pause
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. :)
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째 줄에서 오류: 엔티티가 세미콜론으로 끝나지 않습니다. 대부분의 경우 엔티티 시작에 사용하려고 하지 않은 곳에서 & 기호를 사용한 경우입니다 — 이런 경우 & 라고 쓰십시오
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.
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.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.