Giter Club home page Giter Club logo

mousai's Introduction

Mousai
Mousai

Identify songs in seconds

Download on Flathub
Buy Me a Coffee


Translation status Flathub downloads CI status


Preview

Discover songs you are aching to know with an easy-to-use interface.

Mousai is a simple application that can recognize songs similar to Shazam. Just click the listen button, and then wait a few seconds. It will magically return the title and artist of that song!

Note: This uses the API of audd.io, so it is necessary to log in to their site to get more trials.

Why you will love Mousai?

  • 🎡 Identify songs within seconds or save for later when offline
  • πŸŽ™οΈ Recognize from desktop audio or your microphone
  • 🎸 Build a repertoire of recognized songs
  • 🎼 Quickly preview the song within the interface
  • 🌐 Browse and listen the song from different providers
  • πŸ“± Easy-to-use user interface

🌈 AudD

AudD is a music recognition API that makes Mousai possible. For more information, you can check their Privacy Policy and Terms of Service.

πŸ—οΈ Building from source

GNOME Builder

GNOME Builder is the environment used for developing this application. It can use Flatpak manifests to create a consistent building and running environment cross-distro. Thus, it is highly recommended you use it.

  1. Download GNOME Builder.
  2. In Builder, click the "Clone Repository" button at the bottom, using https://github.com/SeaDve/Mousai.git as the URL.
  3. Click the build button at the top once the project is loaded.

Meson

git clone https://github.com/SeaDve/Mousai.git
cd Mousai
meson _build --prefix=/usr/local
ninja -C _build install

πŸ“¦ Third-Party Packages

Unlike Flatpak, take note that these packages are not officially supported by the developer.

Distribution Package Name Maintainer
Snap mousai soumyaDghosh

Repology

You can also check out other third-party packages on Repology.

πŸ™Œ Help translate Mousai

You can help Mousai translate into your native language. If you found any typos or think you can improve a translation, you can use the Weblate platform.

β˜• Support me and the project

Mousai is free and will always be for everyone to use. If you like the project and would like to support it, you may buy me a coffee.

πŸ’ Acknowledgment

I would like to express my gratitude to the contributors and translators of the project.

I would also like to thank the open-source software projects, libraries, and APIs that were used in developing this app, such as GStreamer, GTK, LibAdwaita, AudD, etc., for making Mousai possible.

I would also like to acknowledge GNOME Shell whose issue templates served as the basis of Mousai's issue templates.

mousai's People

Contributors

albanobattistella avatar archisman-panigrahi avatar bertob avatar carlosgonz0 avatar chardinson avatar hebi-no-sekigae avatar kbdharun avatar mehdirahimi avatar seadve avatar sophie-h avatar soumyadghosh avatar tiagoflach avatar turtlegarden avatar vistaus avatar weblate 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

mousai's Issues

New Icon

Currently, the icon does not describe the application's functionality very well.

A metaphor could be something like a magnifying glass looking through sound waves or music notes.

Landing page / Website request

It would be useful to have this project's landing site / website, so any future news articles can link to it and the website would make a better visual representation of the project that could attract more users, developers and contributors.

A simple and free option is via Github Pages, that a lot of github open source projects are using, which Github hosts for any repo on their website.

Hosted directly from your GitHub repository. Just edit, push, and your changes are live.
No databases are needed to be set up and no servers to configure

Repositories that use github pages: Examples

Interesting article: Link

Consider Jekyll. You give it Liquid templates and Markdown content
Free Jekyll templates: https://jekyllthemes.io/free

Optionally open spotify links in desktop app

image

Currently when spotify button is clicked, it opens the open.spotify.com link in browser.
First it gets opened in browser, and then you can open it in desktop app via website. This increases number of steps for those having official spotify desktop app.
The desktop app can handle spotify:// URI links. Is there a way that spotify button provides a spotify:// URI instead of open.spotify.com. So, upon clicking Spotify in Mousai, it would directly open in spotify desktop app instead of web browser.

Feature Request: Spot integration

In this world, there is a wonderful client for Spotify for GNOME called Spot. As I have already notified, AudD API can return the current track position in timecode JSON entry, so I request an ability to open Spot with the found track and position if possible.

==========

Cross-reference Issue: xou816/spot#463

Respect dark theme

Hi and thanks for the great app.
I'm using KDE Plasma and even though my gtk theme is breeze-dark , the app uses adwaita light.
I understand if you don't want the UI to be messed up by themes, but could you make it support dark/light themes?

Mousai says microphone is muted

OS: Manjaro XFCE
Installation method: AUR
Affected Version: 0.6.0 and 0.6.1

image
Afterwards, it says "No audio detected" and "Please check your audio device". I have a working microphone in my laptop (it works with other apps, e.g. skype), and I also tried an earphone.

When I run from the command line, I get the error

$ mousai
Error: gst-resource-error-quark: Could not open file "/home/archisman/.cache/tmp/mousaitmp.ogg" for writing. (6) ../gstreamer/plugins/elements/gstfilesink.c(471): gst_file_sink_open_file (): /GstPipeline:pipeline0/GstFileSink:filesink0:
system error: Bad file descriptor
Error: gst-core-error-quark: GStreamer error: state change failed and some element failed to post a proper error message with the reason for the failure. (4) ../gstreamer/libs/gst/base/gstbasesink.c(5865): gst_base_sink_change_state (): /GstPipeline:pipeline0/GstFileSink:filesink0:
Failed to start

I cannot say when this issue appeared.

Last time I used the app was in July, and then the issue was absent.

UI glitch when clicking settings button

Installed app as a flatpak, when I click on settings button, this weird ui thing happens.

mousai

Specs:
OS: Linux Mint 20.3 x86_64
Kernel: 5.15.0-33-generic
DE: Cinnamon

Graphics:
Device-1: AMD Picasso driver: amdgpu v: kernel bus ID: 07:00.0 chip ID: 1002:15d8
Display: x11 server: X.Org 1.20.13 driver: amdgpu,ati unloaded: fbdev,modesetting,vesa
resolution: 1920x1080~60Hz
OpenGL:
renderer: AMD Radeon Vega 11 Graphics (RAVEN DRM 3.42.0 5.15.0-33-generic LLVM 12.0.0)
v: 4.6 Mesa 21.2.6 direct render: Yes

Flatpak version : 1.12.2
Mousai version : 0.6.6

What worked :
when launching the application with this command AMD_DEBUG=nodcc flatpak run io.github.seadve.Mousai , everything is working perfectly

Specify audio input source

Hey,
it would be cool to choose the source for audio recognition. For example, besides recording with microphone, one could also record the system sound directly.
Best regards
Jonas

3 dots menΓΉ, not working with touchscreen

I have most likely used the wrong technical term, so I apologize in advance. Also sorry for my english.

Here is the problem

Step to reproduce the issue:
Touch on 3 dots

Expected Behaviour:
3 dots menΓΉ is open.

Actual Behaviour:
3 dots menΓΉ stay closed (highlited like mouse hover)

If before using the touch screen to open the menu I use the mouse, the subsequent touch events are recorded correctly and the menu works as expected

ERROR at meson.build

Version: 0.56.2
Source dir: /home/anonymous/Mousai
Build dir: /home/anonymous/Mousai/_build
Build type: native build
Project name: mousai
Project version: 0.6.6
Host machine cpu family: x86_64
Host machine cpu: x86_64
WARNING: Gettext not found, all translation targets will be ignored.

data/meson.build:3:0: ERROR: Tried to assign an invalid value to variable.

A full log can be found at /home/anonymous/Mousai/_build/meson-logs/meson-log.txt
ninja: Entering directory `_build'
ninja: error: loading 'build.ninja': No such file or directory
[02:42:13] anonymous@MyCompooter /home/anonymous/Mousai [1]```

What is that GETTEXT? I tried to install some programs containing gettext in their name - it didn't work =(

I switched to Debian, BTW!

Cannot start in Arch Linux

I get this error:

mousai
Traceback (most recent call last):
  File "/usr/sbin/mousai", line 30, in <module>
    from mousai import main
  File "/usr/share/mousai/mousai/main.py", line 18, in <module>
    class Application(Adw.Application):
  File "/usr/lib/python3.9/site-packages/gi/module.py", line 123, in __getattr__
    raise AttributeError("%r object has no attribute %r" % (
AttributeError: 'gi.repository.Adw' object has no attribute 'Application'

Using Manjaro Gnome and installed it from here https://aur.archlinux.org/packages/mousai

Error when building from AUR on aarch64

It would be really nice to be able to use this app on a Linux phone like the Pine phone but the AUR build lists this package as not available for aarch64. Could the aarch64 tag be added to the AUR if it was verified to build correctly?

==> ERROR: mousai is not available for the 'aarch64' architecture

A simple message when trying to recognize songs without internet

When trying to recognize a song without an internet connection, the program displays the complete exception and does not display easy-to-recognize information that is happening. If you do not realize if your Internet is not working well or you are disconnected, this can make you feel that the program is not working properly.

Screenshot from 2021-11-16 16-58-06

Add more information to the API section

Currently the description of this is very shy and in my opinion you should add a couple of key points that users will want to know...

On the website of the api:

Music recognition API for both content analysis and in-app music recognition costs from $2 to $5 per 1000 requests. First 300 requests for free.

I think that this sentence should be added in the collapsible menu below your first sentence like this rough example:

More info After "number" recognitions, registration/login to the website is required. Music recognition API for both content analysis and in-app music recognition costs from $2 to $5 per 1000 requests. First 300 requests for free.

Mousai not work with meson build

I have already installed manually libadwaita 1.0.0alpha2
what happening here?

purism@carlosgonz:~/Documents/Mousai-0.4.4/build$ mousai
Traceback (most recent call last):

File "/usr/local/bin/mousai", line 30, in

from mousai import main

File "/usr/local/share/mousai/mousai/main.py", line 9, in

gi.require_version('Adw', '1')

File "/usr/lib/python3/dist-packages/gi/init.py", line 126, in require_version

raise ValueError('Namespace %s not available' % namespace)

ValueError: Namespace Adw not available

Flatpak: desktop icon not transparent

mousai
The icon is not transparent when I open it in KDE Plasma, which is weird because the file in /var/lib/flatpak/app/io.github.seadve.Mousai/x86_64/stable/2439ff5c96f580d12a5f28e9b91f24d0055039894be62ef52d9857da935689a8/files/share/icons/hicolor/scalable/apps/io.github.seadve.Mousai.svg is transparent when I open it manually. Small nitpicky issue, I know. But I just thought I'd do my part by submitting this.

Other information:

OS: Debian GNU/Linux 11 (bullseye) x86_64
Kernel: 5.16.0-0.bpo.4-amd64
DE: Plasma 5.20.5
WM: KWin
Theme: Breeze
Theme: Breeze [Plasma], Breeze [GTK2/3]
Icons: breeze [Plasma], breeze [GTK2/3]

Use Mousai from the command line

Hey,
it would be cool to use Mousai from the commandline like

mousai --recognize-audio

and it would print the result without using the GUI.
Best regards
Jonas

AttributeError: 'Avatar' object has no attribute 'set_image_load_func'

After updating to libadwaita 1.0.0-alpha.1, I get

Traceback (most recent call last):
  File "/nix/store/sy59jxn8ss9b913vz9pfp9r5r55hlzrp-mousai-0.4.1/share/mousai/mousai/main.py", line 60, in do_activate
    win = MainWindow(self.settings, application=self)
  File "/nix/store/sy59jxn8ss9b913vz9pfp9r5r55hlzrp-mousai-0.4.1/share/mousai/mousai/widgets/main_window.py", line 52, in __init__
    self.load_memory_list()
  File "/nix/store/sy59jxn8ss9b913vz9pfp9r5r55hlzrp-mousai-0.4.1/share/mousai/mousai/widgets/main_window.py", line 84, in load_memory_list
    self.new_song_row(song.values())
  File "/nix/store/sy59jxn8ss9b913vz9pfp9r5r55hlzrp-mousai-0.4.1/share/mousai/mousai/widgets/main_window.py", line 64, in new_song_row
    song_row = SongRow(*song)
  File "/nix/store/sy59jxn8ss9b913vz9pfp9r5r55hlzrp-mousai-0.4.1/share/mousai/mousai/widgets/song_row.py", line 40, in __init__
    self.song_icon.set_image_load_func(self.load_song_icon)
AttributeError: 'Avatar' object has no attribute 'set_image_load_func'

when running mousai.

Flathub: outdated runtime

Hi, after running flatpak update, I saw the following:

Info: runtime org.gnome.Platform branch 42 is end-of-life, with reason:
The GNOME 42 runtime is no longer supported as of March 21, 2023. Please ask your application developer to migrate to a supported platform.
Info: applications using this runtime:
io.github.seadve.Mousai

Is it possible to update the runtime? Thanks for your work & great app

Cant build

I'm pretty sure this is related or even the same issue as #22 but I can't get it to build with meson :(

Traceback (most recent call last):
  File "/usr/local/bin/mousai", line 30, in <module>
    from mousai import main
  File "/usr/local/share/mousai/mousai/main.py", line 18, in <module>
    class Application(Adw.Application):
  File "/usr/lib/python3.9/site-packages/gi/module.py", line 123, in __getattr__
    raise AttributeError("%r object has no attribute %r" % (
AttributeError: 'gi.repository.Adw' object has no attribute 'Application

No audio detected

image

Arch linux with most recent updates. I even installed a GNOME DE to see if Mousai can catch the sound there - still this issue.
Maybe I need some kind of awkward sound mixer?
I have those sound-related packages installed: alsa-utils, pulseaudio, pulseaudio-alsa and pavucontrol.

App doesn't launch: Can't open display

Hello there,
I have installed it from flathub, but when I try to run it I get this message:

(io.github.seadve.Mousai:2): Gtk-WARNING **: 20:36:51.392: cannot open display:
I am using Fedora 34 Gnome 40, GTK4.
Thank you.

Missing select icon

On KDE Plasma the select icon is missing.
Mousai 0.7.0
KDE Plasma Version: 5.27.4
KDE Frameworks Version: 5.104.0
Themes are default.
image

Otherwise the newest update is really nice :)

Export / Get list of found songs

Is there an easy way to get access to the song history list outside of the UI? Perhaps via the filesystem (Like text or json stored in a data folder)? I've looked over the code but was unsuccessful in finding an answer since I'm unfamiliar with GTK/Rust. If I understand correctly, I'm trying to find where else I can access Application::default().settings().string("history") from outside of Mousai. Is that possible?

Thanks so much! Mousai is a stellar app!

The app just freezes when it doesnt recognize a song - Pop!_OS

The app works fine if you play a song it recognizes but if you dont play a song or play a song it doesnt recognize it freezes. I imagine it has a timeout where it provides an error but its not working right. I'm on PopOs and I also attached a screen recording with the bug and a neofetch. Im using version 0.6.6 stable branch installed from flatpak. Let me know if there's any other information I should provide. Thank you!

issue.mp4

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.