GitHunt
AA

aargirakis/BZRPlayer

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

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.

Download binaries

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 process 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 building process, 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 /c/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

Although the BZR2 installer for Windows is scripted in Nullsoft Scriptable Install System (NSIS), it can
be only compiled using WSL2 or cross-compiled on Linux since it contains Linux specific code (mostly the bash script
for the XDG MIME types handling), also MSYS2 it 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 building process 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-system4.4.1-dev

  • On Fedora-based distros:
    development-tools (group), 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 process executing:
cmake -B cmake-build -S . -DCMAKE_PREFIX_PATH=/usr -DCMAKE_BUILD_TYPE=[Debug|Release] -G Ninja

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

Build example

cd ~/bzr-player &&
cmake -B cmake-build -S . -DCMAKE_PREFIX_PATH=/usr -DCMAKE_BUILD_TYPE=Debug -G Ninja &&
ninja -C cmake-build 

Runtime dependencies

For running BZR2 following packages are required:

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

  • On Debian-based distros:
    libqt6core6 libqt6network6 libqt6openglwidgets6 libqt6svg6 libqt6xml6
    libqt-advanced-docking-system4.4.1

  • On Fedora-based distros:
    qt6-qtbase qt6-qtsvg Qt-Advanced-Docking-System

Generated binaries

On Linux, as result of the building process, in the chosen CMake build directory the output directory will be
populated with binaries.
If the Debug build type is selected BZR2 will use development paths instead of system ones: this means all paths
will refer to the output directory (including the user settings and the executable's RPATH) ensuring a complete
isolation from any other (real) BZR2 installation (ideal for development purposes).
If Release build type is selected then the system paths will be used (this also means generated binaries will work
only if they are installed in the correct system paths)

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


bzr2 0 27


SUPPORTED FORMATS (#TODO wrong & incomplete)

Using Libsidplayfp

Commodore 64 SID, PSID

Using Audio File Library

Amiga IFF/8SVX

Audio Visual Research

Berkeley/IRCAM/CARL

Compressed AIFF

NeXT .snd

NIST SPHERE

SampleVision

Sun .au

Using ASAP

Atari systems using POKEY sound chip

Chaos Music Composer

Chaos Music Composer -3-4-

Chaos Music Composer -Rzog-

Delta Music Composer

DoublePlay Chaos Music Composer

Music ProTracker

Raster Music Tracker

Stereo Double Chaos Music Composer

Theta Music Composer 1.x 4-channel

Theta Music Composer 1.x 8-channel

Theta Music Composer 2.x

Using Game Music Emu

AY - ZX Spectrum, Amstrad CPC

GBS - Nintendo Game Boyr

GYM - Sega Genesis, Mega Drive

HES - NEC TurboGrafx-16, PC Engine

KSS - MSX Home Computer, other Z80 systems

NSF - NES Sound Format

NSFE - NES Sound Format Extended

SPC - Super Nintendo, Super Famicom

VGM - Video Game Music File

VGZ - Compressed Video Game Music File

RSN - RAR archive with SPC songs

Using HivelyTracker

AHX

HivelyTracker

Using Mamiya's m_s98.kpi

S98

Using Ken's Digital Music

Ken's Digital Music

Using libpac

SBStudio PAC

Using LibV2

Farbrausch V2M

Using Organya

Organya

Using UADE

ActionAmics

Activision Pro (MartinWalker)

Alcatraz_Packer

AM-Composer

Anders Øland

Andrew Parton

Art And Magic

ArtOfNoise-4V

ArtOfNoise-8V

Ashley Hogg

BeathovenSynthesizer

Ben Daglish SID

BladePacker

Channel Players

Cinemaware

CoreDesign

CustomMade

DariusZendeh

Dave Lowe

Dave Lowe New

David Hanney

Desire

Digital Sonix And Chrome

DigitalSoundStudio

Dirk Bialluch

Dynamic Synthesizer

EarAche

EMS (Editeur Musical Sequentiel)

Fashion Tracker

FredGray

FutureComposer-BSI

FuturePlayer

GlueMon

HowieDavies

InStereo

InStereo! 2.0

JamCracker

JankoMrsicFlogel

JanneSalmijarviOptimizer

JasonPage

Jeroen Tel

JesperOlsen

JochenHippel-7V

Kim Christensen

KrisHatlelid

LegglessMusicEditor

Lionheart_Game

MajorTom

ManiacsOfNoise

MarkII

Mark_Cooksey

Mark_Cooksey_Old

MCMD

Medley

MIDI-Loriciel

MikeDavies

MMDC

Mosh Packer

MusicAssembler

MusiclineEditor

MusicMaker-8V

Nick Pelling Packer

NTSP-system

onEscapee

Paul Robotham

Paul Tonge

PaulShields

PaulSummers

PeterVerswyvelen

ProfessionalSoundArtists

PumaTracker

Quartet PSG

Quartet_ST

RiffRaff

RobHubbardOld

SCUMM

SeanConnolly

SeanConran

Silmarils

SonicArranger

SonicArranger-pc-all

SonixMusicDriver

SoundControl

SoundFactory

SoundImages

SoundMaster

SoundPlayer

SoundProgrammingLanguage

Special-FX

Special-FX_ST

SpeedyA1System

SpeedySystem

SteveBarrett

SteveTurner (Jason Page Old)

SUN-Tronic

Synth (Synthesis)

SynTracker

TFMX

TFMX-7V

TFMX-Pro

TFMX_ST

TheMusicalEnlightenment

ThomasHermann

TimFollin

TomyTracker

Tronic (TronicTracker)

VoodooSupremeSynthesizer

WallyBeben

YM-2149

SUPPORTED PACKERS

None right now

aargirakis/BZRPlayer | GitHunt