Search guides and the APICtrl K
  1. API reference
  2. Formats and wrappers

vst3_uid.h

A VST3 class id, between its bytes and its text.

#include <sonore/vst3_uid.h>
On this page

Design notes

A VST3 class is named by 16 bytes, and everything a person or another program sees of it is 32 hex characters: a DAW's session, a .vstpreset's header, Steinberg's FUID::toString. On macOS and Linux the text is the bytes in order. On Windows the VST3 SDK is built COM-compatible, and SMTG_INLINE_UID stores a GUID's first three fields -- 4, 2 and 2 bytes -- little-endian, the way COM's GUID struct does. So a class declared with one GUID has DIFFERENT bytes on the two platforms and the SAME text, and the text is what a session carries from one to the other.

Ours were the same bytes on both, which made the text differ: a session saved on Windows named a class a Mac build of the same plugin did not answer to. Every id here is now worked out in the GUID's own order and stored the way the VST3 SDK stores it on the platform -- the bytes vst3_c_api.h's own SMTG_INLINE_UID produces, which the tests compare against -- and turned into text through the same rule, so a .vstpreset another host wrote for a plugin matches it.

Functions 4

Constants 1

↑↓ to move↵ to openEvery public name in the headers, and every guide