An app to find lyrics and save them to your song's metadata. Available on macOS and Windows.
Quaver is multithreaded, using Qt5's QThread and Python's ThreadPoolExecutor with concurrent.futures. Depending on network speed, this means that Quaver can get lyrics for up to 100 songs in less than fifteen seconds!
Quaver supports over a dozen formats, including popular audio formats such as .mp3, .m4a, .flac, and more. Add files by drag and drop, selecting a file or folder in the submenu, or right-clicking a file in Finder or Windows Explorer.
Lyrics have a typo? Got something completely off base? Edit lyrics with the detail pane. With options to modify the source, which artist/title to search for, or just supplying a URL, incorrect lyrics can be fixed in a jiffy.
Customize where the lyrics source, adding a song title, or even whether to enable sound effects. And, of course, keyboard shortcuts: song navigation, file addition, and settings are all accessible with both hands on keyboard. Power to the user.
Whenever an update's available, a notification will pop up as the app is opened. Or, since impatience is also a thing, manual checks can be triggered through the about screen. Conveniently packaged in a .msi installer, or portable .exe for Windows, and .app or .dmg for macOS.
You'll need Python 3.5+.
- In your virtual environment of choice, run
pip install -r requirements.txt
from the root of the repository. - To generate the app bundle,
cd src
thenpyinstaller quaver-onefile.spec
. The app bundle will appear in thedist
folder generated by PyInstaller. - The app bundle will not have a complete Info.plist. A complete version is at the root of
src
, so copy it into the application bundle. In src,cp Info.plist dist/Quaver.app/Contents
- The program expects to find a configuration file in the
/Resources/
folder in the macOS bundle. So, runcp modules/settings.ini dist/Quaver.app/Contents/Resources/
- The application bundle is now complete; drag into Applications. Voilà!
[OPTIONAL]
To generate the .dmg for distribution, you will need Node.js and create-dmg installed. If you do not have create-dmg installed, get it with npm install --global create-dmg
.
Then, switch into the distribution folder (cd dist
), and create the dmg. create-dmg 'Quaver.app'
- In your virtual environment of choice, run
pip install -r requirements.txt
from the root of the repository. - To generate the executable,
cd src
thenpyinstaller quaver-onefile.spec
. The executable will appear in thedist
folder generated by PyInstaller. - Voilà!
Unfortunately, generating an .msi requires more configuration than could be adequately explained in a README. See this post and this post for more details.
- In your virtual environment of choice, run
pip install -r requirements.txt
from the root of the repository. - To generate the executable,
cd src
thenpyinstaller quaver-onefile.spec
. The executable will appear in thedist
folder generated by PyInstaller. - Voilà!
[OPTIONAL] To generate the .deb for distribution, see this post for more information. It contains all the files and folder structure necessary.
If you're good at Python, this project probably needs you!
- There's a different branch for each operating system. Until changes have been tested on macOS, Windows, and Ubuntu, these branches are not merged into master.
- Fork and make a pull request!