2#include <Process/Dataflow/PortFactory.hpp>
3#include <Process/GenericProcessFactory.hpp>
4#include <Process/Process.hpp>
6#include <Control/DefaultEffectItem.hpp>
7#include <Effect/EffectFactory.hpp>
8#include <Vst3/Plugin.hpp>
9#include <Vst3/UI/WindowContainer.hpp>
11#include <score/tools/std/Invoke.hpp>
13#include <ossia/detail/hash_map.hpp>
17#include <public.sdk/source/vst/utility/uid.h>
18#define VST_DEFAULT_PARAM_NUMBER_CUTOFF 10
26 ,
vst3::Model,
"4cc30435-3237-4e94-a79e-1c2bd6b724a1",
"VST 3",
"VST 3",
27 Process::ProcessCategory::Other,
"Plugins",
"VST 3 plug-in",
28 "VST is a trademark of Steinberg Media Technologies GmbH", {}, {}, {},
29 QUrl(
"https://ossia.io/score-docs/processes/audio-plugins.html#common-formats-vst-vst3-lv2-jsfx"),
30 Process::ProcessFlags::ExternalEffect)
33DESCRIPTION_METADATA(, vst3::Model, "VST")
37class CreateVSTControl;
39struct PortCreationVisitor;
45 SCORE_SERIALIZE_FRIENDS
46 friend class vst3::CreateVSTControl;
49 PROCESS_METADATA_IMPL(
Model)
54 template <
typename Impl>
55 Model(Impl& vis, QObject* parent)
56 : ProcessModel{vis, parent}
63 QString effect()
const noexcept override;
64 QString prettyName()
const noexcept override;
65 bool hasExternalUI()
const noexcept;
71 ossia::hash_map<Steinberg::Vst::ParamID, ControlInlet*> controls;
74 void removeControl(Steinberg::Vst::ParamID fxnum);
76 void addControlFromEditor(Steinberg::Vst::ParamID
id);
77 void on_addControl(
const Steinberg::Vst::ParameterInfo& v);
78 void on_addControl_impl(
ControlInlet* inl,
const Steinberg::Vst::ParameterInfo*);
79 void initControl(
ControlInlet* inl,
const Steinberg::Vst::ParameterInfo*);
81 void reloadControls();
82 Steinberg::tresult restartComponent(int32_t flags);
87 std::vector<Process::Preset> builtinPresets()
const noexcept override;
92 void mapAllControls(
int numParams);
93 QByteArray readProcessorState()
const;
94 QByteArray readControllerState()
const;
100 QByteArray m_savedProcessorState;
101 QByteArray m_savedControllerState;
103 ossia::hash_map<Steinberg::Vst::ParamID, int32_t> m_paramToIndex;
115QString EffectProcessFactory_T<vst3::Model>::customConstructionData() const noexcept;
119EffectProcessFactory_T<vst3::Model>::descriptor(QString d) const noexcept;
Definition EffectFactory.hpp:14
Collects — and in the same pass rewrites — the files a document references.
Definition ExternalFiles.hpp:80
The Process class.
Definition score-lib-process/Process/Process.hpp:75
The id_base_t class.
Definition Identifier.hpp:59
Definition /Vst3/Control.hpp:19
Definition score-plugin-vst3/Vst3/EffectModel.hpp:43
Base classes and tools to implement processes and layers.
Definition JSONVisitor.hpp:1115
@ Window
A separate top-level window.
Definition TimeValue.hpp:21
Definition score-plugin-vst3/Vst3/EffectModel.cpp:446