/Musicott

JavaFX application that manages and plays music files.

Primary LanguageJava

Build Status codecov maintainability-rating reliability-rating security-rating

loc-metric lines-metric comments-metric new-code-smells bugs vulnerabilities-rating license

Musicott title logo

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.

Musicott-video

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

  1. Clone Musicott at any directory git clone https://github.com/octaviospain/Musicott.git
  2. Build with maven at Musicott's root folder (where pom.xml is located) with mvn install -Dmaven.test.skip=true
  3. Install this two required jar libraries into the local maven repository executing
mvn install:install-file -Dfile=lib/TarsosTranscoder-1.2.jar -DgroupId=be.tarsos -DartifactId=transcoder -Dversion=1.2 -Dpackaging=jar
mvn install:install-file -Dfile=lib/iTunesUtilities.jar -DgroupId=com.worldsworstsoftware -DartifactId=itunesutilities -Dversion=1.2 -Dpackaging=jar
mvn install:install-file -Dfile=lib/jaudiotagger-2.2.6-SNAPSHOT.jar -DgroupId=net.jthink -DartifactId=jaudiotagger -Dversion=2.2.6-SNAPSHOT -Dpackaging=jar
  1. 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:

  1. Fork the project
  2. Write the code of the feature with some javadoc and the necessary comments
  3. Please don't auto-format the code already written as it would make more difficult to see what was changed
  4. Add some tests! Doing it in the tests branch is preferable
  5. Commit
  6. 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