Developer resources for reading and writing Bliss ZBP (preset) and ZBB (bank) files.
Bliss is a sampler/synthesizer plugin by discoDSP.
| File | Description |
|---|---|
| Bliss_ZBP_ZBB_Format_Specification.md | Full format specification: ZIP container layout, XML schema, enumerations, value mappings, and ConvertWithMoss integration notes |
| bliss_zbp_parser.cpp | Self-contained C++17 reference parser -- reads and dumps ZBP/ZBB files |
g++ -std=c++17 -O2 -o bliss_zbp_parser bliss_zbp_parser.cppRequires a C++17 compiler and unzip on PATH (macOS/Linux). No other dependencies.
./bliss_zbp_parser MyPreset.zbp./bliss_zbp_parser MyBank.zbbBliss ZBP/ZBB Parser -- Reference Implementation
File: Piano.zbp
-- Program ---------------------------------------------
Name: "Grand Piano"
Version: 3.7.4 (0x030704)
Play mode: Poly
Zones: 4
Zone 0: "Piano Soft"
Key range: C2 (36) - C6 (84) Root: C4 (60)
Vel range: 0 - 64
Tune: coarse=0 st fine=0 ct
Audio: 2 ch, 132300 frames, 44100 Hz
Loop: Forward start=44100 end=132299 xfade=0.20
Gain: 0 dB Pan: 0
Filter 1: Lowpass cutoff=1000 Hz reso=25.0%
Amp Env: A=0.010s D=0.500s S=80% R=0.300s
Env shapes: A=0.50 D=0.50 R=0.50 (0=concave 0.5=linear 1=convex)
Velocity: amp=1.00 mod=1.00
...
-- Embedded samples ------------------------------------
program_000/zone_000.flac
program_000/zone_001.flac
program_000/zone_002.flac
program_000/zone_003.flac
Done.
Bliss ZBP/ZBB Parser -- Reference Implementation
File: MyBank.zbb
Interpolation: Normal
Current program: 0
-- Program 0 -------------------------------------------
Name: "Grand Piano"
Version: 3.7.4 (0x030704)
Play mode: Poly
Zones: 4
Zone 0: "Piano Soft"
Key range: C2 (36) - C6 (84) Root: C4 (60)
...
-- Program 1 -------------------------------------------
Name: "Pad Strings"
Version: 3.7.4 (0x030704)
Play mode: Poly
Zones: 2
...
Programs found: 128
Done.
Both .zbp and .zbb files are ZIP archives containing:
- XML metadata -- program parameters, zone mappings, effects, macros
- FLAC audio -- 16-bit (demo) or 24-bit (licensed) samples at compression level 5
program.xml
program_000/zone_000.flac
program_000/zone_001.flac
...
bank.xml
program_000/program.xml
program_000/zone_000.flac
program_001/program.xml
program_001/zone_000.flac
...
program_127/program.xml
The reference parser includes conversion helpers for all non-linear mappings:
| Parameter | Formula | Range |
|---|---|---|
| Filter cutoff | hz = 20 + x^2 * (22050 - 20) |
20 Hz - 22050 Hz |
| Envelope time | sec = 0.001 + x^4 * 15.999 |
1 ms - 16 seconds |
| Mod destination | integer index (3.13+); legacy index = floor(value * 14) |
0-13 (append-only) |
| Version | decimal int, value encodes 0xAABBCC -> A.B.C |
e.g. 201728 = 0x31400 -> 3.20.0 |
See the full specification for complete details.
The parser and specification are designed as a reference for building format support in tools like ConvertWithMoss. Key integration points:
- Detection: open as ZIP, check for
program.xml(ZBP) orbank.xml(ZBB) - Zones: each
<zone>maps to a sample layer with key/velocity ranges - Samples: FLAC files at
program_NNN/zone_MMM.flac - Envelopes: ADSR with quartic time mapping and configurable shape curves
Bliss is a commercial product by discoDSP. This documentation and reference parser are provided for interoperability purposes.