Skip to content
Audio player with support for video game music formats and a multi-process design
C C++ Assembly Shell Logos Objective-C Other
Find file
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.
docs
extern
src
test
.gitignore
LICENSE.GPL2
LICENSE.zlib
README
boost_.py
waf
wscript

README

ION
v0.1a

This is ion, an audio player with support for video game music formats and a multi-process design for increased stability.

THIS SOFTWARE IS STILL IN ALPHA STATUS. USE AT YOUR OWN RISK.
The setup is still not very convenient and somewhat cumbersome. It will become easier as work progresses.



=======================
LICENSING


externals
---------

jsoncpp 0.5.0                - Public Domain (according to http://jsoncpp.sourceforge.net/)
dumb 0.9.3                   - DUMB license (similar to zlib)
adplug 2.2.1                 - LGPL v2.1
libbinio 1.4                 - LGPL v2.1
mpg123 1.12.3                - LGPL v2.1
Game Music Emulator 0.5.2    - LGPL v2.1
uade 2.13                    - GPL v2
speex (only the resampler)   - 3-clause BSD license

With the exception of jsoncpp, these externals are all used in the respective decoders only,
and ultimately are NOT essential parts of ion.


main code
---------

src/common                   - zlib license
src/speex-resampler          - 3-clause BSD license / zlib license *
src/audio_common             - zlib license
src/audio_backend            - GPL v2
src/audio_player             - GPL v2


The files LICENSE.GPL2 and LICENSE.zlib contain copies of the respective licenses.
GPL2-licensed source codes from src/ contain a header at the beginning referring to the GPL.
zlib-licensed source codes from src/ contain a full copy of the zlib license as the header.


* The speex resampler code is located in src/speex-resampler . The files resampler.cpp and resampler.hpp
are not part of Speex, they are zlib licensed custom adapter code. The rest of the files are
part of the Speex resampler, and 3-clause BSD licensed.



=======================
DEPENDENCIES

(in all cases, libraries and C/C++ headers are required, so try to get the development packages;
earlier versions may work, but are untested)


essential
---------

g++ >= 4.1
libstdc++ >= 6
Qt >= 4.6
boost >= 1.40 (with boost-thread built)
alsa >= 1.0


optional (these can be missing, but then corresponding parts will not be built & included):
-------------------------------------------------------------------------------------------
ogg >= 1.1
vorbis >= 1.2
flac++ >= 1.2
faad >= 2.7


Ubuntu/Debian package list (including optionals):
-------------------------------------------------

g++  libstdc++-dev  libqt4-dev  libboost-dev  libboost-thread-dev  libasound2-dev  libogg-dev  libvorbis-dev  libflac++-dev libfaad-dev



=======================
BUILD INSTRUCTIONS

Enter the main ion directory (the directory where this README and the "waf" file is located).

First, build the included externals:

./waf external -jX

where X is a number. -j1 means normal sequential build, -j2 or higher builds in parallel.
This is useful with multicore processors.


After the externals are built, the actual project configuration is done:

./waf configure --build-variants=<release/debug>

Choose one build variant. release builds faster and smaller code, which is what most people will want to.
debug is for developers, allowing the proper use of gdb and friends.

If boost is installed in a nonstandard location, use the --boost-includes and --boost-libs options to
specify where boost headers and libraries reside. For additional options, use ./waf --help .


After configuration finished, build the player:

./waf -jX

(-jX is the same flag used in the externals build step for parallel building.)


To execute the player, run

build/release/src/audio_backend/ion_player


In the initial run, the backend needs to be configured. Click on the configuration button and set the backend executable filename. The executable can be found at build/release/src/audio_backend/ion_audio_backend .

After that, the player is ready to go.

Something went wrong with that request. Please try again.