Pulp 1.88.0
Cross-platform audio plugin framework
Loading...
Searching...
No Matches
cubase.hpp
Go to the documentation of this file.
1#pragma once
2
39
42
44
48 // Row 1, 2, 3 — Cubase 10+ (and Nuendo 10+) async-resize +
49 // gesture-ordering + fractional-DPI correction.
50 if (v.is_at_least(10, 0)) {
51 q.cubase10_async_view_resize_queue = true;
52 q.cubase10_param_gesture_ordering = true;
53 q.cubase10_fractional_scale_correction = true;
54 }
55 // Row 4 — Cubase 9 (9.0 ≤ v < 10.0) state-blob size validation.
56 // Cubase 10 fixed the underlying stream-size bug, so the validation
57 // path stays off there.
58 if (v.is_at_least(9, 0) && v.is_before(10, 0)) {
59 q.cubase9_state_blob_size_validation = true;
60 }
61 // 2026-05-26 iPlug2-audit batch (Pulp #3047) — Cubase 13+ tightened
62 // its handling of VST3 MIDI CC parameter IDs: project automation
63 // lanes are bound to the parameter IDs at save-time and the host
64 // refuses to re-map them on reload. Plug-ins that synthesize CC
65 // parameter IDs from dynamic state (e.g. preset-driven parameter
66 // counts) will see automation lanes orphaned on the 13.x line. The
67 // VST3 adapter must derive CC parameter IDs from a stable hash
68 // (not the runtime parameter index) when this flag is set. Cubase
69 // 12 was forgiving so the flag stays off on 12.x and earlier.
70 if (v.is_at_least(13, 0)) {
71 q.cubase13_midi_cc_param_id_stable = true;
72 }
73}
74
75} // namespace pulp::format::host_quirks
Per-host accommodation flags consumed by format adapters.
Host major/minor/patch version detection on top of HostType.
Definition ableton_live.hpp:39
void apply_cubase(HostQuirks &q, HostVersion v)
Populate Cubase-specific (and Nuendo-as-Cubase) host-gated flags onto q based on v.
Definition cubase.hpp:47
Always-on / host-gated defensive behaviors that the adapters consult.
Definition host_quirks.hpp:66
Semver-ish host version.
Definition host_version.hpp:23