Giter VIP home page Giter VIP logo

musique's Introduction

Musique

Musique is a music player built for speed, simplicity and style. It is written in C++ using the Qt framework. Contributing is welcome, especially in the Linux desktop integration area.

Translating Musique to your language

Translations are done at https://www.transifex.com/flaviotordini/musique/ Just register and apply for a language team. Please don't request translation merges on GitHub.

Build instructions

To compile Musique you need at least Qt 6.0. The following Qt modules are needed: core, gui, widgets, network, sql (using the Sqlite plugin), declarative, dbus. You also need TagLib: http://taglib.github.io >= 1.10 and MPV >= 0.29.0: https://mpv.io/

To be able to build on a Debian (or derivative) system:

sudo apt install build-essential libgl-dev qt6-base-dev-tools qmake6 qt6-declarative-dev libmpv-dev libtag1-dev libqt6sql6-sqlite qt6-l10n-tools

Clone from Github:

git clone --recursive https://github.com/flaviotordini/musique.git

Compiling:

qmake && make

On Debian, qmake has been renamed to qmake6 for Qt 6.

Running:

build/target/musique

Installing on Linux:

sudo make install

This is for packagers. End users should not install applications in this way.

musique's People

Contributors

flaviotordini avatar letsfindaway avatar openningia avatar romanhargrave avatar rtxanson avatar shironoy6 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  avatar  avatar  avatar

musique's Issues

Use 'Album artist' instead of 'Artist' when grouping albums

Whenever an album has multiple Artists tags in its songs, Musique treats the album as separate records. For example, metatag imported from this MusicBrainz entry generates two "Keeper of the Seven Keys: The Legacy" in the album listing, one with songs tagged "Helloween" and one with the song tagged "Helloween feat. Candice Night". There is, though, a tag named Album artist where all songs are tagged "Helloween". MusicBrainz also has some albums with only the Album artist tag set, for example this one, which makes the album not being listed under the artist albums in Musique. I think it'd be smarter to prioritize Album artist and fall back to Artist when that tag cannot be found. 😄

Musique not working on latest version of Debian 10

Today, I downloaded and installed Musique onto my Debian 10 desktop. I used the .DEB package that is provided on the project's home page. However, when I try to run Musique, it returns this error:

musique: /lib/x86_64-linux-gnu/libQt5Core.so.5: version `Qt_5.12' not found (required by Musique)

I believe this is happening because the latest version of Qt available on Debian 10 is 5.11.3. This can be seen on Debian's repo pages when searching for qt5: https://packages.debian.org/search?suite=buster&arch=any&searchon=names&keywords=qt5

Is it possible to rebuild the .DEB package but using Qt 5.11.3 instead, or does Musique rely on something only present in 5.12?

Compiling from scratch errors

I tried to clone the repo and compile it by following the README.md file. I found and solved some issues. I have not commited what I am going to explain, so I will only describe where I found the errors and how I solved them.
Please consider fixing them, if necessary, in a future commit.

On Debian 10 (buster):

Problem 1)
There are a couple of missing files:

  • musique/lib/media/src/mpv/client.h
  • musique/lib/media/src/mpv/qthelper.h

Problem 2)
Incorrect path in file musique/src/model/artist.cpp

  • reference to non existing header "imagedownloader.h"

Problem 3)
In the README.md file, the libraries to be installed before cloning the repository are incomplete.


Solution 1)
Please refer to this link and copy paste the missing file in the specified folder:
https://github.com/mpv-player/mpv/tree/master/libmpv

Solution 2)
The file is present, yet not correctly linked. Replace:
"imagedownloader.h" --> "../imagedownloader.h"

Solution 3)
Here is a sample command to install the libraries needed
sudo apt install build-essential qttools5-dev-tools qt5-qmake libphonon4qt5-dev libqt5sql5-sqlite qt5-default libtag1-dev libmpv-dev qml-module-qt-labs-platform mpv

Synchronized lyrics support

If there is a .lrc file in the same directory as the music file with the same name, it would be nice if Musique displayed timed lyrics on screen.

How implement notifications using DBus and show media controls?

Hello. I'm been using Musique for about 3 years. I was using a Ubuntu flavor, and everything was working fine but I decided to move to Solus OS (a distro built from scratch) and found out no package was available for that distro. So, I went to your github page and built it, everything was fine, at least in the music player and interface.

The thing is, I cannot see notifications when I play a song or when I change a song. In Solus, we have a panel called Raven, and in that panel we can see the calendar, notiifcations, adjust volume for output and input devices and we can see information about the music we're playing, we can see the album art and change forward or backward or even pause the song.
I can't see any of those things with the built I made.

Would you give me some advice on how implement those features? Spotify app, GNOME MPV, VLC, Strawberry music player, Rhythmbox have notifications and media controls with album art in Raven panel. I don't like the other ones, I really like Musique and want those features in my solus installation. I even have created a package for Solus but I want to "fix" my built in order to publish the package.

This is Raven Panel in Budgie desktop
RavenPanel

This is Musique 1.6 running in Solus
Captura de pantalla de 2019-06-12 12-36-14

Hope you read this.

Universal Binary/Apple Silicon Support

I would just like to file a feature request for Apple M1 native support in a future update. Although if I'm being fair, Musique works very well under Rosetta. I still think it would be great to native support as Musique is hands-down the best music player on macOS that I've found.

Ratings

Nice program, but I see no way to view or set ratings

Make album artwork larger

Loving the UI refresh. But I'm wondering if it would be possible to somehow make the album artwork larger? Either as a setting, or perhaps responsively when the window is very large.

Equalizer

[neat project!]

It'd be neat if musique had an equalizer.

Fedora Integration

Needs registration into audio playback software list, to be able to set as 'default for', or 'open with'

Awesome player, my favourite for Gnome. Should come with gnome out the box!

worth mentioning pre-built Linux packages in README

I'm a Fedora user (v29) and on finding the project scanned the readme, cloned the code and ran:

$ sudo dnf install -y qt5-devel taglib-devel qtav-devel
$ qmake
$ make

It was only after building that I found there's already prebuilt packages available on https://pkgs.org/download/musique

It's worth putting that into the readme.

nice work btw, this music player is just what I want. My only gripe is that I prefer to see album art that's attached to the file rather than attempting to find it online.

Font's with Fedora

Unsure about others but the fonts used in menus aren't the default gtk, they appear thinner. That's with F22.

Missing some Album art

Has anyone come across missing album art even though the JPEG's are present?

The picture is present in .local/share/Flavio Tordini/Musique/files/bandname/bandalbum/_cover

Most are showing but some are not - any ideas?

Group unkown album

Hello,
Is possible to group songs with no album tag to "unknow album" ? Songs are not visible on artist mode if album tag is missing and app crash on linux.

Doesn't understand tags

I have a small media library, albums/collections. If it’s a collection, then the artist is marked as “Various Artists”, the usual Win 11 media player understands everything. And this one shows like hundreds of albums. Even with theme albums that have 1 artist, this is the case. And now he suggests “fixing” it with "Finetune".... but we know what this leads to... :) I wanted to understand tags at the level of a standard player. And synchronized text... I tried all the players except AIMP and Foobar (they don’t suit me) and there’s nothing like this anywhere. This one is good, but the problem above ruins it. Thank you
image

Icon Theme?

I see you have icons in your images/ folder, but they do not appear to be installed by make install
which icon theme do you test against?
I have Faenza, Hicolor and Adwaita and Icons fail to load

This is release build 1.4 on Gentoo x64

Misalignment of playlist text

Check this out:
musique alignment

The track names are ~10px further to the left than the artist name. It would look a lot cleaner if it would be aligned left the same.

Flatpak needed

Please package for flatpak. It would easily give anyone on any distro the ability to install it.

Add an RPM

This is for packagers. End users should not install applications in this way.

So what am I supposed to do if I want to run this application on Fedora 34?

Multiple entries for the same album

I have several compilation albums with music from multiple artists, typically a different one per track. When my library was imported into Musique some albums were wrong, creating one entry per artist and album. I think that the mp3 albums were imported correctly and the ogg ones weren't.

BTW, thanks for your great application. It's a very beautiful player, we could use more software like that in Linux ;-)

"xcb" error

Hi, I have installed Musique 1.7 in latest LinuxMint. When it starts, I get the following error:

[unknown] Could not find the Qt platform plugin "xcb" in ""
[unknown] This application failed to start because no Qt platform plugin could be initialized. Reinstalling the application may fix this problem.

Aborted (core dumped)

Please advise. Tia

Can't compile on Arch

src/tags/tagutils.cpp:2:31: fatal error: collectionscanner.h: No such file or directory
#include "collectionscanner.h"
^
compilation terminated.
make: *** [Makefile:1432: build/obj/tagutils.o] Error 1

Add MPRIS support

With MPRIS support, we can control player directly through desktop environment, I think this may have our experience more convenient. Thank you for creating such a good player.

Finetune never finishes processing.

Finetune never finishes processing.

Completes first scan, then on second step, gets to 100% and aborts with message:

Finetune2

I have updated to latest Musique and latest Finetune

Thank you

Songs sometimes repeate even when Repeate is not set

Tested on Musique 1.5 installed from the vendor supplied deb package on Ubuntu 18.04 (the version of Musique packaged in the Ubuntu repos is broken).

cad@eos:~ > uname -a
Linux eos 4.15.0-43-generic #46-Ubuntu SMP Thu Dec 6 14:45:28 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux
cad@eos:~ > cat /etc/lsb-release
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=18.04
DISTRIB_CODENAME=bionic
DISTRIB_DESCRIPTION="Ubuntu 18.04.1 LTS"
cad@eos:~ > cat /etc/debian_version
buster/sid
cad@eos:~ > dpkg --list | grep -i musique
ii  musique                               1.5                                          amd64        Music player

Symptom is that occasionally and seemingly at random, a song from the queue will be played twice in a row when it was only queued once.

Shortcuts to Play/Pause and skip to next song if in different app

Oftentimes when Musique is in the background I’d like to switch the song or pause/play. For that I need to switch to the Musique window which is a big context switch.

It would be cool if there would be keyboard shortcuts you could use globally, if possible, while you are focused in another app.

Notifications on lockscreen

Notifications on lockscreen only say »notify-send« and »1 new notification« (or rather the number of how many songs there were played).

  • There should only be a noification for the current song, so directly show the name and artist in the title.
  • »notify-send« is a technical detail

What it should look like is simply:

Song name
Artist

With the icon being the album cover.

[Makefile:2099: build/obj/src/mainwindow.o] Error 1 on Raspberry Pi

OS: Raspberry Pi OS 32 bits Buster latest

Followed the README and get the next issue:

src/mainwindow.cpp: In member function ‘void MainWindow::maybeShowMessageBar()’:
src/mainwindow.cpp:1550:10: warning: unused variable ‘showMessages’ [-Wunused-variable]
     bool showMessages = settings.contains("geometry");
          ^~~~~~~~~~~~
g++ -c -pipe -O3 -fno-exceptions -Wall -W -D_REENTRANT -fPIC -DAPP_VERSION=1.9 -DAPP_NAME=Musique -DAPP_UNIX_NAME=musique -DQT_NO_DEBUG_OUTPUT -DQT_USE_QSTRINGBUILDER -DQT_STRICT_ITERATORS -DQT_DEPRECATED_WARNINGS -DHTTP -DMEDIA_MPV -DMEDIA_AUDIOONLY -DAPP_LINUX -DDATADIR=\"/usr/local/share\" -DPKGDATADIR=\"/usr/local/share/musique\" -DUPDATER -DUPDATER_DEFAULT -DQT_NO_EXCEPTIONS -DQT_NO_DEBUG -DQT_WIDGETS_LIB -DQT_GUI_LIB -DQT_NETWORK_LIB -DQT_SQL_LIB -DQT_DBUS_LIB -DQT_CORE_LIB -I. -Ilib/http/src -Ilib/idle/src -Ilib/media/src -Ilib/media/src/mpv -Isrc/qtsingleapplication -Isrc/tags -Ilocale -isystem /usr/include/taglib -Ilib/updater/src -Ilib/updater/src/impl -isystem /usr/include/arm-linux-gnueabihf/qt5 -isystem /usr/include/arm-linux-gnueabihf/qt5/QtWidgets -isystem /usr/include/arm-linux-gnueabihf/qt5/QtGui -isystem /usr/include/arm-linux-gnueabihf/qt5/QtNetwork -isystem /usr/include/arm-linux-gnueabihf/qt5/QtSql -isystem /usr/include/arm-linux-gnueabihf/qt5/QtDBus -isystem /usr/include/arm-linux-gnueabihf/qt5/QtCore -Ibuild/moc -I/usr/lib/arm-linux-gnueabihf/qt5/mkspecs/linux-g++ -o build/obj/src/searchlineedit.o src/searchlineedit.cpp
make: *** [Makefile:2099: build/obj/src/mainwindow.o] Error 1
make: *** Waiting for unfinished jobs....

🤷‍♂️

Stuck at 0% when scanning music folder on Windows 10

The same latest version on Windows 7 runs perfectly, on Windows 10 give that error (via WinDbg):

[unknown] Update check failed 0 ""
[unknown] QSslSocket::connectToHostEncrypted: TLS initialization failed
[unknown] Discogs error, retrying... "Album Name" ""

Clearing search bar doesn't reset filter

  • type something in the search bar and hit enter
  • clear the search bar and hit enter
  • items remain filtered by the search term

Maybe the search should be incremental?

musique-1.7.tar.bz2: not a bzip2 file.

Something is wrong with the tarball. Could you confirm and fix it? I need a release tarball which includes all submodules to update the package in OpenBSD.

Thanks in advance.

Build failure with musique 1.12: Qt6 headers (QWidgets and QAction) not found

Trying to build musique 1.12 for the next release of Rosa Linux (http://wiki.rosalab.ru/en/index.php/Main_Page) on x86_64, Qt 6.6.1.
The build fails while processing stuff in lib/qt-reusable-widgets with this two errors:
In file included from lib/qt-reusable-widgets/actionbutton.cpp:1: lib/qt-reusable-widgets/actionbutton.h:4:10: fatal error: QAction: No such file or directory
and
In file included from lib/qt-reusable-widgets/appwidget.cpp:1: lib/qt-reusable-widgets/appwidget.h:4:10: fatal error: QtWidgets: No such file or directory.

The qt6 headers are installed in /usr/include/qt6 (along with qt5 ones in /usr/include/qt5), but this snippet at the start of the build looks suspicious:
Project MESSAGE: Qt 6.6.1 in /

Full log attached
BuildError.txt

1.12 fails at run-time on FreeBSD: SingleApplication: Unable to create block

Error messages are:

$ musique 
Gtk-Message: 20:47:22.560: Failed to load module "colorreload-gtk-module"
[unknown] Qt: Session management error: Authentication Rejected, reason : None of the authentication protocols specified are supported and host-based authentication failed
[unknown] SingleApplication: Unable to create block.
[unknown] SingleApplication:  QSharedMemory::UnknownError "QSharedMemoryPrivate::initKey: unable to set key on lock (QSystemSemaphore::handle: unknown error: Invalid argument)"

Application exits with the exit code 1.

All git submodules are of correct hashes.

qt6-6.6.2
clang-17

Doesn't work well with HIDPI under Linux

When using a HIDPI/retina screen (3200x1800) the album thumbnails are to small, the numbering in the playlist viewer collides with song titles, the main menu items are cropped since the font won't fit inside the main menu frame and transport control buttons are very small indeed.

Add random sort feature.

Sorting items by random would be nice. That way I don't scroll through the same artists each time.

Flatpak/Flathub build

Hello,

Could you publish your application to Flathub? It's based on a cross-distro Flatpak technology.

Or: would you agree if someone else writes the necessary build files for you and sends them to the Flathub maintainers?

Compatibility with TagLib 2.0

With TagLib 2.0 released on 24.01.2024, some incompatible API changes have been introduced. For musique this means that it currently does not compile with TagLib 2.0.

As far as I have seen the only incompatibility affecting musique is renaming of MP4::Tag::ItemListMap to ItemMap. If I change that, then it compiles and runs.

Are there any plans to make the source code compile with TagLib 2.0?

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.