Musicott is an application that manages and plays music files. Coded in Java 8 with JavaFX. Uses JAudioTagger to read and write the metadata, Json-io for persistence, TestFx for testing, Guice for dependency injection and some components from ControlsFx.
Features
- Play mp3, wav and m4a (with ALAC encoding) files
- Import mp3, wav and flac files
- Shows waveform of mp3, wav and m4a files
- Import from Itunes Library xml
- Scrobble on LastFM
Not yet
- Advanced search feature
- Music library statistics
- Smart playlists
Download
I had some trouble creating the native packages and even the jar file, since now the project is structured in several modules. I will work on it and I will upload the release packages when I’ll achieve this. Running as described as described in the following section is the recommended way.
How to build and run
To build you need at least Java 8 update 40 and Maven
- Clone Musicott at any directory
git clone https://github.com/octaviospain/Musicott.git
- Build with maven at Musicott’s root folder (where
pom.xml
is located) withmvn package -Dmaven.test.skip=true
- Install this two required jar libraries into the local maven repository executing
mvn install:install-file -Dfile=application/lib/TarsosTranscoder-1.2.jar -DgroupId=be.tarsos -DartifactId=transcoder -Dversion=1.2 -Dpackaging=jar mvn install:install-file -Dfile=common/lib/iTunesUtilities.jar -DgroupId=com.worldsworstsoftware -DartifactId=itunesutilities -Dversion=1.2 -Dpackaging=jar
- Run with
mvn exec:java -Dexec.mainClass=com.transgressoft.musicott.MusicottApplication
How to contribute
If you want to add a feature or fix a bug in Musicott, you can submit a pull request as follows:
- Fork the project
- Write the code of the feature with some
javadoc
and the necessary comments - Please don’t auto-format the code already written as it would make more difficult to see what was changed
- Add some tests! Doing it in the
tests
branch is preferable - Commit
- Submit a pull request on the
develop
branch
Manual
Check out the Wiki pages for help about using Musicott.
Changes history
Version 0.10.1
- Improved Itunes import. Now the application shows a window to let the user selects which playlists to import.
- Refactored with guice’s dependency injection framework.
- Refactored to use maven multi modules.
Version 0.10
- Added Artists navigation mode. A list of artists is shown, and clicking one artist shows their albums, with useful information of them.
- Typing on the search field while on the artists mode filters the artists list by the query.
- Added cover thumbnail on the bottom right corner of the table that changes when hovering the rows
- Also when a playlist is shown, the cover of the playlist changes when hovering
- Drag & drop tracks to tracksLibrary is now possible
- Drag & drop tracksLibrary into folders is now possible
- Ability to reorder the playlist queue by drag & drop
- Improved audio files & iTunes importing
- Several bug fixes and performance improvements
Version 0.9
- New dark theme
- Added a navigation area with playlist and the showing mode
- Added a information pane at the top of the table when a playlist is shown, with a cover image, the number of tracks and the size of the playlist
- You can hide/show the navigation pane with CMD + SHIFT + R and the table info pane with CMD + SHIFT + H
- You can add tracks to a playlist by drag and drop them
- You can set a new image when editing tracks by drag and drop the file to the image view on the window
Version 0.8
- Ability to import from Itunes, selecting the “iTunes Music Library.xml” file
- LastFM API. The user can log in and Musicott will scrobble listened tracks
- Fixed a bug and now the waveform image is shown for all tracks
Version 0.7
- Added waveform image for mostly all mp3 files and all wav files
- Better design
- Big refactor implementing better concurrent model
Copyright
Copyright (c) 2015-2017 Octavio Calleya.
Musicott is free software under GNU GPL version 3 license. The license of Musicott and the licenses of the included libraries in this software are in the LICENSE folder