Skip to content

Latest commit

 

History

659 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

BZR Player 2 (BZR2)

Audio player for Windows and Linux supporting a wide array of multi-platform exotic file formats, written in C++ and Qt with a sound engine based on FMOD.
The first BZR version was released in 2008, the last 1.x in 2019: this is the beginning of the new 2.x version which is coded pretty much from scratch.

screenshot


Plugins and supported formats

BZR2 is designed with a modular plugin system to support multiple third party audio playback libraries:

In addition to these FMOD itself is used to provide support for both MIDI and network streams playback

Supported formats

Here you can find an (incomplete) list of supported formats samples grouped by plugin


How to get


How to build

Windows

MSYS2 with following packages is required:

base-devel mingw-w64-ucrt-x86_64-cmake mingw-w64-ucrt-x86_64-qt6-base mingw-w64-ucrt-x86_64-qt6-svg mingw-w64-ucrt-x86_64-qt-advanced-docking-system mingw-w64-ucrt-x86_64-SDL2 mingw-w64-ucrt-x86_64-toolchain openssl-devel

From the MSYS2 ucrt64.exe command prompt go to the project sources dir (keep in mind Unix-style paths are required), then start the configuration stage executing:
cmake -B cmake-build -S . -DCMAKE_PREFIX_PATH=/ucrt64 -DCMAKE_BUILD_TYPE=[Debug|Release] -G Ninja

To build the project execute:
ninja -C cmake-build

As result of the build stage, in the chosen CMake build directory the output directory will be populated with binaries.
If the Release build type is selected, along with output also output_release directory will be created, containing the final archive release file

Build example

cd BZRPlayer &&
cmake -B cmake-build -S . -DCMAKE_PREFIX_PATH=/ucrt64 -DCMAKE_BUILD_TYPE=Release -G Ninja &&
ninja -C cmake-build

IDE setup

These are the settings for any IDE that supports CMake:

  • set the toolchain to <MSYS2_dir>\ucrt64
    (e.g. C:\msys64\ucrt64)

  • set the CMake command with following flags:
    -DCMAKE_PREFIX_PATH="<MSYS2_dir>/ucrt64" -G Ninja
    (e.g. -DCMAKE_PREFIX_PATH="c:/msys64/ucrt64" -G Ninja)

  • set additional environment variables MSYSTEM=UCRT64 and PATH=<MSYS2_dir>/usr/bin
    (e.g. MSYSTEM=UCRT64;PATH=c:/msys64/usr/bin)

  • set the CMake application runner to build All targets with app as executable

  • (optional) set CMake executable to <MSYS2_dir>\ucrt64\bin\cmake.exe
    (e.g. C:\msys64\ucrt64\bin\cmake.exe)

Windows installer

The BZR2 installer for Windows, which is scripted in Nullsoft Scriptable Install System (NSIS), can be only compiled using WSL2 or cross-compiled on Linux, since contains Linux specific code (mostly the bash script for the XDG MIME types handling), also MSYS2 is currently not viable since the required NSIS plugins are still missing.

NSIS (3.10 or newer) with following plugins (check AUR entries) is required:

In order to build the Windows installer put the target binaries in src/inst/nsis/bin then enter src/inst/nsis directory and execute: makensis -DVERSION="<any_version>" bzr2_setup.nsi
As result of the build stage bzr-player-<any_version>-win64.exe will be generated in the same directory.

Linux

In order to build BZR2 following packages are required:

  • On Arch-based distros:
    base-devel cmake dos2unix libglvnd ninja patchutils qt6-base qt-advanced-docking-system qt6-declarative qt6-svg sdl2-compat vulkan-headers

  • On Debian-based distros:
    build-essential cmake dos2unix libglvnd0 libsdl2-dev libvulkan-dev ninja-build patchutils qt6-base-dev qt6-base-private-dev qt6-declarative-dev qt6-svg-dev libqt-advanced-docking-system-dev] (libqt-advanced-docking-system-dev4 for Ubuntu 24.04 and equivalent)

  • On Fedora-based distros:
    @c-development @development-tools cmake dos2unix ninja-build qt6-qtbase-devel qt6-qtsvg-devel Qt-Advanced-Docking-System-devel sdl2-compat-devel vulkan-headers which

Go to the project sources dir then start the configuration stage executing:
cmake -B cmake-build -S . -DCMAKE_BUILD_TYPE=[Debug|Release] -G Ninja

To build the project execute:
ninja -C cmake-build

To install the project (optional) execute:
ninja -C cmake-build install

To specify the installation prefix (make sure to have write permissions) add this to the configuration stage command (otherwise /usr/local will be used):
-DCMAKE_INSTALL_PREFIX=<your_prefix>

As result of the build stage, in the chosen CMake build directory the output directory will be populated with binaries.
If the Debug build type is selected BZR2 will rely on isolated user settings (ideal for development purposes) instead of system ones

Build with install example

cd BZRPlayer &&
cmake -B cmake-build -S . -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr -G Ninja &&
ninja -C cmake-build &&
sudo ninja -C cmake-build install

Runtime dependencies

For running BZR2 following packages are required:

  • On Arch-based distros:
    noto-fonts-cjk qt6-base qt6-svg qt-advanced-docking-system

  • On Debian-based distros:
    fonts-noto-cjk libqt6core6 libqt6network6 libqt6openglwidgets6 libqt6svg6 libqt6xml6 libqt-advanced-docking-system4 (libqt-advanced-docking-system4 for Ubuntu 24.04 and equivalent)

  • On Fedora-based distros:
    google-noto-cjk-fonts qt6-qtbase qt6-qtsvg Qt-Advanced-Docking-System

Offline mode

By default, the CMake configuration stage will download all needed libraries and files. Add -DOFFLINE_MODE=1 to CMake command for switching to offline mode.
Offline mode doesn't guarantee that the build will include the latest versions of the files with unmanaged version


Reach us

You can find us on Discord for feedback and discussion

About

BZR Player is an audio player for Windows and Linux supporting a wide array of multi-platform exotic file formats

Topics

Resources

Stars

59 stars

Watchers

4 watching

Forks

Releases

Packages

Used by

Contributors

Languages