Skip to content

Commit

Permalink
Updated README
Browse files Browse the repository at this point in the history
  • Loading branch information
pinam45 committed Dec 14, 2018
1 parent 927dfd4 commit 944b014
Show file tree
Hide file tree
Showing 2 changed files with 82 additions and 1 deletion.
83 changes: 82 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,84 @@
# MagicPlayer

Warning: Work in progress
MagicPlayer is a multi-platform lightweight music player. It is mostly developed for myself, but as it is free and open source, if you don't like powerful and full-featured music players, you can use it.

**Warning**: the project is still in an early stage, and a lot is still to be done.

![screenchot](screenshot.png)

Tested on Windows and Linux.

## Features

Supported audio formats are WAV (PCM only), OGG/Vorbis, FLAC and MP3 (MPEG 1.0/2.0/2.5 layer I/II/III). (more details [here](#supported-audio-formats)).

The GUI is separated in several views that can be resized and moved/docked. Currently implemented views are:
- *Player*: used to control playing music and volume
- *Explorer*: used to select audio files to play
- *Theme config*: used to select color theme or choose custom colors
- *Log viewer*: used to see internal logs (useful to debug)

## Dependencies

Libraries used:
- [Dear ImGui](https://github.com/ocornut/imgui): Bloat-free Immediate Mode Graphical User interface for C++ with minimal dependencies
- [imgui-sfml](https://github.com/eliasdaler/imgui-sfml): ImGui binding for use with SFML
- [SFML](https://github.com/SFML/SFML): Simple and Fast Multimedia Library
- [libmpg123](https://sourceforge.net/projects/mpg123/): Fast and Free real time MPEG Audio Layer 1, 2 and 3 decoding library
- [spglog](https://github.com/gabime/spdlog): Fast C++ logging library
- [utfcpp](https://github.com/nemtrif/utfcpp): UTF-8 with C++ in a Portable Way

All libraries are built with MagicPlayer except libmpg123 which must be installed on Linux and is embedded on Windows.

Also, on Linux systems, if SFML is installed, by default the system version is used. To force SFML to be built with MagicPlayer, set CMake option ``COMPILE_SFML_WITH_PROJECT`` to ``ON``.

Fonts used:
- [DroidSans](https://www.droidfonts.com/): Font designed for Google Android platform
- [Font Awesome](https://fontawesome.com/): Icons font

Font Awesome is used with C++ headers generated by a script from [IconFontCppHeaders](https://github.com/juliettef/IconFontCppHeaders).

### <a name="supported-audio-formats"></a>Supported audio formats

MagicPlayer uses SFML and libmpg123 to decode audio files, so it should support all audio formats stated in the documentation of these libraries.

Extract of [SFML documentation](https://www.sfml-dev.org/tutorials/2.5/audio-sounds.php):

SFML supports the audio file formats WAV, OGG/Vorbis and FLAC. Due to licensing issues MP3 is not supported.

Extract of [libmpg123 documentation](https://www.mpg123.de/features.shtml):

Features include: decoding of MPEG 1.0/2.0/2.5 layer I/II/III audio streams to interleaved PCM, also free-format bitrates over 320 kbit/s

## Build

Don't forget to pull the submodules with the repository using ``--recursive``:

git clone --recursive https://github.com/pinam45/MagicPlayer.git

or if you have already cloned the repository:

git submodule init
git submodule update

To build the project you will need a C++17 compliant compiler. The project uses CMake to build, see [Running CMake](https://cmake.org/runningcmake/) for more information.

On linux, a common CMake use is:

$ mkdir cmake-build
$ cd cmake-build
$ cmake ..
$ make


On Windows, there is batch files available to configure a Visual Studio project in the ``ide`` folder.

## Run

At the moment MagicPlayer must be run in the folder containing the resources folder, otherwise fonts can't be loaded.

## Copyright

This work is under the MIT License

[Read the license file](LICENSE)
Binary file added screenshot.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.

0 comments on commit 944b014

Please sign in to comment.