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
- Releases & changelogs
- AUR package:
bzr-player - Old versions archive
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
appas 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:
- AccessControl
nsis-accesscontrol-bin - NsArray
nsis-nsarray-bin - NsProcess
nsis-nsprocess-bin - Registry
nsis-registry-bin
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-develcmakedos2unixlibglvndninjapatchutilsqt6-baseqt-advanced-docking-system
qt6-declarativeqt6-svgsdl2-compatvulkan-headers -
On Debian-based distros:
build-essentialcmakedos2unixlibglvnd0libsdl2-devlibvulkan-devninja-buildpatchutils
qt6-base-devqt6-base-private-devqt6-declarative-devqt6-svg-dev
libqt-advanced-docking-system4.4.1-dev -
On Fedora-based distros:
development-tools(group),cmakedos2unixninja-buildqt6-qtbase-develqt6-qtsvg-devel
Qt-Advanced-Docking-System-develsdl2-compat-develvulkan-headerswhich
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-baseqt6-svgqt-advanced-docking-system -
On Debian-based distros:
libqt6core6libqt6network6libqt6openglwidgets6libqt6svg6libqt6xml6
libqt-advanced-docking-system4.4.1 -
On Fedora-based distros:
qt6-qtbaseqt6-qtsvgQt-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
Useful links:
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
