[x] kSample64 => NO, bad typing. If the plugin doesn't really support it, don't expose it.
[x] implement bypass
[x] Cubase 9.5 => VST3 show up in Cubase, but produce silence => was Cubase giving identical input and output buffers like in VST2
[x] Cubase 9.5 => recording automation crash, but no crash in reaper => was a crash in bypass, and reaper doesn't use the internal bypass parameter
[x] implement 1 ProgramLists instead of 0
[x] implement IEditController2
[x] Audio buses should be default active
[x] program change fake parameter: must be a fake parameter with whatever ID (voxengo uses 999, IPLug uses 'prst'. Must be the id of the ProgramList.
[x] implement setUnitProgramData? => no
[x] find something for presets... it seems they can't be in the bundle => ProgramLists? (yup, Voxengo does it this way)
[x] implement 1 Unit instead of 0
[x] 32-bit VST3 doesn't pass scan in FLStudio
=> logs can be found in C:\Program Files (x86)\Image-Line\FL Studio 12\System\Tools\Plugin Manager
[x] proper URL for plugin in factory
[x] understand why setState and getState and setComponentState are duplicated / exist at all
=> Voxengo returns zero bytes for the controller's getState
[x] proper company email for plugin in factory
[x] Fill TimeInfo
[x] MIDI input events (EDIT though for now only noteon and noteoff supported)
[x] 32-bit VST3 crash Reaper on UI close
[x] Implement ComponentBase in client
[x] call IComponentHandler::restartComponent (kLatencyChanged) after a latency change
[x] calling processFromHost for audio processing
[x] holding a ref on host callback (the one in client constructor, or the one in initialize? or both?)
[x] speaker arrangement don't work well, they reject I/O arrangements
[x] serialize state
[x] deserialize state
[x] what to put in ParameterInfo.unitID?
[x] implement setComponentHandler
[x] return an IPlugView
[x] proper definition for IParameterChanges
[x] proper definition for IEventList
[x] proper definition for ProcessContext
[x] proper vendor name for plugin in factory
[x] record automation with a special listener on every parameter, like with AAX
[x] implement IUnitInfo ? how much of it? (EDIT: for now, none of it)
[x] parameter changes events
Optional:
[x] expose remapped integer and float parameters instead of normalized doubles? (EDIT: no)
[x] cleanup: remove duplicated UUIDs as both static field and static global
TODOs:
setUnitProgramData
? => noC:\Program Files (x86)\Image-Line\FL Studio 12\System\Tools\Plugin Manager
setState
andgetState
andsetComponentState
are duplicated / exist at all => Voxengo returns zero bytes for the controller's getStateComponentBase
in clientIComponentHandler::restartComponent (kLatencyChanged)
after a latency changeParameterInfo.unitID
?setComponentHandler
IPlugView
IParameterChanges
IEventList
ProcessContext
Optional: