Intuitive GTK4/LibAdwaita music player

Overview

Resonance

Harmonize your listening experience with Resonance.

Resonance is an intuitive music player application written in Rust & Python, with a clean user interface built using GTK4 / Libadwaita. Resonance lets you effortlessly manage and play your music collection, with support for all the common music file formats such as MP3, FLAC, AAC, and many more.



Features:

  • UI updates to reflect currently playing track's cover art colors
  • Playlist creation & modification
  • Control the player through MPRIS
  • Discord Rich Presence integration
  • Last.fm scrobbling
  • Import tags with the Mutagen library
  • No tag editing (intentionally out of scope to keep Resonance a music player only)



Flatpak

You can install stable builds of Resonance from Flathub by using this command:

flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo
flatpak install flathub io.github.nate_xyz.Resonance

Screenshots

Screenshot 1 Screenshot 2 Screenshot 3 Screenshot 4 Screenshot 5 Screenshot 6 Screenshot 7

Comments
  • Scrollbar should always be at the window edge

    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.

    enhancement 
    opened by bertob 1
  • Hover buttons

    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.

    opened by bertob 0
  • Preferences: List rows look broken

    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

    opened by bertob 0
  • Fallback album cover papercuts

    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

    opened by bertob 0
  • [Flatpak] .wma files are not supported

    [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.

    bug 
    opened by Sky-NiniKo 1
  • [Expected?] Does not remember its window size

    [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

    enhancement 
    opened by Sky-NiniKo 3
Owner
Nathanael
looking for work! contact me at: ndemail1 at gmail dot com
Nathanael
A simple gtk4/libadwaita software center to easily install and manage nix packages

Nix Software Center A graphical app store for Nix built with libadwaita, GTK4, and Relm4. Heavily inspired by GNOME Software. Features Install package

Victor Fuentes 169 Dec 30, 2022
du + rust = dust. Like du but more intuitive.

Dust du + rust = dust. Like du but more intuitive. Why Because I want an easy way to see where my disk is being used. Demo Install Cargo cargo install

andy.boot 5.4k Jan 4, 2023
Intuitive find & replace CLI (sed alternative)

sd - s[earch] & d[isplace] sd is an intuitive find & replace CLI. The Pitch Why use it over any existing tools? Painless regular expressions sd uses r

Gregory 4k Jan 4, 2023
A more intuitive version of du in rust

A more intuitive version of du in rust

andy.boot 3k Sep 20, 2021
Most intuitive global cli maker. *(lazy_static + config-rs + clap)

argone Most intuitive global cli maker. *(lazy_static + config-rs + clap) | Examples | Docs | Latest Note | [dependencies] argone = "0.5" Phases Parsi

Doha Lee 6 Dec 9, 2022
The intuitive command-line file uploader.

☁️ upl The intuitive command-line file uploader. ??️ Features (roadmap) Upload files via the command-line Sane built-in upload destinations Configurat

null 4 Oct 13, 2022
A more compact and intuitive ASCII table in your terminal: an alternative to "man 7 ascii" and "ascii"

asciit A more compact and intuitive ASCII table in your terminal: an alternative to man 7 ascii and ascii. Colored numbers and letters are much more e

Qichen Liu 刘启辰 5 Nov 16, 2023
A command driven spotify player

spotify-player Table of Contents Introduction Examples Demo Installation Requirements Spotify Connect Streaming Commands Actions Search Page Mouse sup

Thang Pham 185 Dec 28, 2022
Calculate a player's skill level using Elo, DWZ, Ingo, TrueSkill, Glicko and Glicko-2 algorithms known from their usage in chess and online games.

skillratings Skillratings allows you to calculate the player's skill instantly in 1v1 matches or after tournaments/rating periods with a list of resul

null 10 Dec 30, 2022
Yet another phigros chart player.

prpr - P hig R os P layer, written in R ust Usage To begin with, clone the repo: git clone https://github.com/Mivik/prpr.git && cd prpr For compactnes

Mivik 6 Jan 1, 2023
A terminal ASCII media player. View images, gifs, videos, webcam, YouTube, etc.. directly in the terminal as ASCII art.

Terminal Media Player View images, videos (files or YouTube links), webcam, etc directly in the terminal as ASCII. All images you see below are just m

Max Curzi 36 May 8, 2023
Media player with Youtube search, download, and playback functionality.

Pomelo 0.2.0 Pomelo is a desktop media player with Youtube search, playback, and download functionality. Current features Play videos locally from the

null 3 Sep 29, 2024
CLI app to display list of trending anime, music charts or recommend anime to watch or song to listen to.

Description Anitrendz is a cli app that uses data from the anitiop api to list the top anime and songs or recommend a random anime to watch or song to

Jimmy 9 Jun 11, 2022
glicol cli: cross-platform music live coding in terminal

glicol-cli What's this? It's a command line interface that you can use for music live coding with Glicol. It watches a file changes and then update th

Glicol 70 Apr 14, 2023
Mod for Mega Man Battle Network Legacy Collection to restore the WWW base music in the postgame.

MMBNLC Postgame WWW Base Music mod This is a mod for Mega Man Battle Network Legacy Collection Vol. 2 adjusts the field music played in the WWW base i

Prof. 9 3 May 7, 2023
A cli utility for playing music mixes for programming & focus from musicforprogramming.net

mfp: music for programming A command-line utility for playing music mixes for programming & focus (from musicforprogramming.net), unlocking the flow s

Rohit Gupta 10 Jul 12, 2023
A beautiful and feature-packed Apple Music CLI

am A beautiful and feature-packed Apple Music CLI! Written in Rust. Installation Nix (recommended) This GitHub repository contains a flake. Add github

Ryan Cao 5 Sep 21, 2023
A versatile and dynamic music bot designed to elevate the musical experience within Discord servers.

Masayoshi Masayoshi is a discord music bot written in Rust for making a great experience within Discord servers with support to Youtube, SoundCloud, S

null 6 Dec 26, 2023
Unofficial Linux QQ client, based on GTK4 and libadwaita, developed with Rust and Relm4.

GTK QQ (WIP) Unofficial Linux QQ client, based on GTK4 and libadwaita, developed with Rust and Relm4. Screenshots Light Dark Note The two screenshots

Lomírus 198 Dec 24, 2022
A libadwaita/gtk4 app for editing NixOS configurations

NixOS Configuration Editor A simple NixOS configuration editor application built with libadwaita, GTK4, and Relm4. The goal of this project is to prov

Victor Fuentes 137 Dec 25, 2022