Contributing
There are a variety of ways to contribute to the MusicPlayerPlus project. All forms of contribution are appreciated and valuable. Also, it’s fun to collaborate. Here are a few ways to contribute to the further improvement and evolution of MusicPlayerPlus:
Testing and Issue Reporting
MusicPlayerPlus is fairly complex with many components, features, options, configurations, and use cases. Although currently only supported on Linux platforms, there are a plethora of Linux platforms on which MusicPlayerPlus can be deployed. Testing all of the above is time consuming and tedious. If you have a Linux platform on which you can install MusicPlayerPlus and you have the time and will to put it through its paces, then issue reports on problems you encounter would greatly help improve the robustness and quality of MusicPlayerPlus. Open issue reports at https://github.com/doctorfree/MusicPlayerPlus/issues
Sponsor MusicPlayerPlus
MusicPlayerPlus is completely free and open source software. All of the MusicPlayerPlus components are freely licensed and may be copied, modified, and redistributed freely. Nobody gets paid, nobody is making any money, it’s a project fully motivated by curiousity and love of music. However, it does take some money to procure development and testing resources. Right now MusicPlayerPlus needs a multi-boot test platform to extend support to a wider variety of Linux platforms and potentially Mac OS X.
If you have the means and you would like to sponsor MusicPlayerPlus development, testing, platform support, and continued improvement then your monetary support could play a very critical role. A little bit goes a long way in MusicPlayerPlus. For example, a bootable USB SSD device could serve as a means of porting and testing support for additional platforms. Or, a decent cup of coffee could be the difference between a bug filled release and a glorious musical adventure.
Sponsor the MusicPlayerPlus project at https://github.com/sponsors/doctorfree
Contribute to Development
If you have programming skills and find the management and ease-of-use of digital music libraries to be an interesting area, you can contribute to MusicPlayerPlus development through the standard Github “fork, clone, pull request” process. There are many guides to contributing to Github hosted open source projects on the Internet. A good one is available at https://www.dataschool.io/how-to-contribute-on-github/. Another short succinct guide is at https://gist.github.com/MarcDiethelm/7303312.
Once you have forked and cloned the MusicPlayerPlus repository, it’s time to setup a development environment. Although many of the MusicPlayerPlus commands are Bash shell scripts, there are also applicatons written in C and C++ along with documentation in Markdown format, configuration files in a variety of formats, examples, screenshots, video demos, build scripts, packaging, and more.
The development environment consists of several packages needed to build, package, and test MusicPlayerPlus components. These include:
build-essential libeigen3-dev libfftw3-dev clang
libavcodec-dev libavformat-dev libavutil-dev libswresample-dev
libsamplerate0-dev libtag1-dev libchromaprint-dev libmpdclient-dev
autotools-dev autoconf libtool libboost-all-dev fftw-dev
libiniparser-dev libyaml-dev swig python3-dev pkg-config
libncurses-dev libasound2-dev libreadline-dev libpulse-dev
libcurl4-openssl-dev qtbase5-dev qtchooser qt5-qmake qtbase5-dev-tools
libavfilter-dev libavdevice-dev libsqlite3-dev
Utilities and applications built from source in MusicPlayerPlus include:
mppcava character based spectrum visualizer
The build scripts in the scripts/
directory of the MusicPlayerPlus
repository can be used to compile bliss-analyze, blissify, and mppcava.
These are:
scripts/build-bliss-analyze.sh
scripts/build-blissify.sh
scripts/build-mppcava.sh
Invoke the appropriate build script for the utility you wish to compile.
For example, to compile the mppcava
spectrum visualizer from source, run the command:
./scripts/build-mppcava.sh
On Debian (e.g. Ubuntu), PKGBUILD (e.g. Arch) and RPM (e.g. Fedora) based
systems the MusicPlayerPlus installation package can be created with the
mkpkg
scripts. The mkpkg
script determines which platform it is on
and executes the appropriate build and packaging script in the scripts/
directory. These scripts invoke the build scripts for each of the projects
included with MusicPlayerPlus, populate a distribution tree, and call the
respective packaging utilities. Packages are saved in the
./releases/<version>/
folder. Once a package has been created
it can be installed with the Install
script.
It’s not necessary to have C/C++ expertise to contribute to MusicPlayerPlus
development. Many of the MusicPlayerPlus commands are Bash scripts and require
no compilaton. Script commands reside in the bin
and share/scripts
directories. To modify a shell script, install MusicPlayerPlus and edit the
bin/<script>
or share/scripts/<script.sh>
you wish to improve. After making
your changes simply copy the revised script to /usr/bin
and test your changes.
Modifying the configuration files is a little more tricky. Configuration
files generally live in the config
directory but each has its own installation
location and some are modified by the mppinit
command during installation.
If you are just modifying the shell scripts or configuration files then
you don’t need to worry about the extensive list of dependencies listed above.
Feel free to email me at github@ronrecord.com with questions or comments.