Bliss Analyser
Simple rust app to analyse songs with bliss-rs. The output of this is a SQLite database containing song metadata and bliss analysis. This is then intended to be used by Bliss Mixer
Building
This application can be built in 4 variants:
- Using command-line
ffmpegto decode files. - Using
libavcodec, etc, to decode files. - Using
libavcodec, etc, to decode files, but statically linked tolibavcodec, etc. - Using
symphoniato decode files.
libavcodec is the fastest (about 70% faster than ffmpeg commandline, and about
3 times faster than symphonia), but might have issues with library, versioning, etc.,
unless these libraries are statically linked in.
libavcodec statically linked may reduce supported file formats.
ffmpeg whilst slower then libavcodec produces a more portable application.
symphonia also produced a more portable application, but is slightly slower to decode
files, and does not produce identical analysis results. Therefore, it is not advisable
to mix files analysed with ffmpeg (any variant) and symphonia.
Build for 'ffmpeg' command-line usage
clang and pkg-config are required to build, as well as
Rust
To install dependencies on a Debian system:
apt install -y clang pkg-config
To install dependencies on a Fedora system:
dnf install clang pkg-config
Build with cargo build --release --features=ffmpeg
ffmpeg is then a run-time dependency, and should be installed on any system where this application
is to be run - it should also be in the users $PATH
Build for 'libavcodec' library usage
clang, pkg-config, and ffmpeg are required to build, as well as
Rust
To install dependencies on a Debian system:
apt install -y clang libavcodec-dev libavformat-dev libavutil-dev libavfilter-dev libavdevice-dev pkg-config
To install dependencies on a Fedora system:
dnf install ffmpeg-devel clang pkg-config
Build with cargo build --release --features=libav
The resultant application will be less portable, due to dependencies on libavcodec libraries (and
their dependencies).
Build for 'libavcodec' library usage, statically linked
clang, pkg-config, and ffmpeg are required to build, as well as
Rust
To install dependencies on a Debian system:
apt install -y clang libavcodec-dev libavformat-dev libavutil-dev libavfilter-dev libavdevice-dev pkg-config
To install dependencies on a Fedora system:
dnf install ffmpeg-devel clang pkg-config
Build with cargo build --release --features=libav,libavstatic
Build for 'symphonia'
clang, and pkg-config are required to build, as well as
Rust
To install dependencies on a Debian system:
apt install -y clang pkg-config
To install dependencies on a Fedora system:
dnf install clang pkg-config
Build with cargo build --release --features=symphonia
Usage
Please refer to UserGuide.md for details of how this tool may be used.