update notes

This commit is contained in:
Stefano D'Angelo 2024-01-22 14:47:31 +01:00
parent 86875466cc
commit b78db2283b

32
notes
View File

@ -2,65 +2,81 @@ company {
name:
VST3: PFactoryInfo.vendor
LV2: manifest.ttl doap:maintainer foaf:name
web: not used
url:
VST3: PFactoryInfo.url
LV2: manifest.ttl doap:maintainer rdfs:seeAlso
web: not used
email:
VST3: PFactoryInfo.email
LV2: manifest.ttl doap:maintainer foaf:mbox
web: not used
}
product {
name:
VST3: PClassInfo{,2,W}.name
LV2: manifest.ttl plugin doap:name
web: web-demo <title> and <h1>
version:
VST3: PClassInfo{2,W}.version (first 3 numbers)
LV2: not used
web: not used
buildVersion:
VST3: PClassInfo{2,W}.version (last number)
LV2: not used
web: not used
bundleName:
VST3: plugin folder name, plugin .dll name, Info.plist
LV2: plugin folder name, plugin .dll name, manifest.ttl plugin lv2:binary
web: registerProcessor(), output file names
buses: [
{
name:
bus name string, required
VST3: BusInfo name
LV2: manifest.ttl lv2:port lv2:name
web: not used
shortName:
bus short name string, required
VST3: not used
LV2: manifest.ttl lv2:port lv2:shortName
web: not used
direction:
"input" or "output", required
VST3: BusInfo flags - lots of implications
LV2: manifest.ttl lv2:port a - lots of implications
web: AudioWorkletNode.{numberOfInputs,numberOfOutputs,outputChannelCount} - lots of implications
type:
"audio" or "midi", required
VST3: BusInfo mediaType, ParameterInfo (channel pressure, pitch bend params) - lots of implications
LV2: lots of implications everywhere
web: AudioWorkletNode.{numberOfInputs,numberOfOutputs,outputChannelCount} - lots of implications
channels:
"mono" or "stereo", audio type only, required
VST3: BusInfo channelCount, plugin get/set bus arrangements
LV2: manifest.ttl lv2:port - lots of implications
web: AudioWorkletNode.outputChannelCount - lots of implications
sidechain:
bus is not part of main audio path (sidechain)? boolean, default false
VST3: BusInfo busType
LV2: manifest.ttl lv2:port lv2:portProperty lv2:isSideChain
web: not used
cv:
bus is control voltage audio-rate? boolean, audio type only, default false
VST3: BusInfo flags
LV2: manifest.ttl lv2:port a lv2:CVPort
web: not used
control:
bus is the "primary control channel" (send cmds, receive responses)? boolean, midi type only, default false
VST3: not used
LV2: manifest.ttl lv2:port lv2:designation lv2:control
web: not used
optional:
bus is optionally connected? boolean, default false
VST3: BusInfo flags, plugin initialize, activate bus, set active
LV2: manifest.ttl lv2:port lv2:portProperty lv2:connectionOptional
web: not used
}
]
parameters: [
@ -69,64 +85,78 @@ product {
parameter name string, required
VST3: ParameterInfo title
LV2: manifest.ttl lv2:port lv2:name
web: AudioWorkletProcessor.parameterDescriptors, web-demo <label>
shortName:
parameter short name string, required
VST3: ParameterInfo shortTitle
LV2: manifest.ttl lv2:port lv2:shortName
web: not used
direction:
"input" or "output", required
VST3: ParameterInfo flags - lots of implications
LV2: manifest.ttl lv2:port a - lots of implications
web: AudioWorkletProcessor.parameterDescriptors, web-demo <range> readonly/input listener - lots of implications
isBypass:
parameter is bypass/enabled? boolean - lots of implications, default false
VST3: ParameterInfo, controller get/set parameter/state
LV2: manifest.ttl lv2:port, run() (set parameter)
web: AudoWorkletProcessor.process(), web-demo <range> min/max/step
isLatency:
parameter is latency output? boolean - lots of implications, default false
VST3: TBD
LV2: manifest.ttl lv2:port, run() (set parameter)
web: not used
defaultValue:
default value, number, mapped, required for non-bypass
VST3: ParameterInfo defaultNormalizedValue, controller initialize
LV2: manifest.ttl lv2:port lv2:default, activate() (set initial parameter)
web: AudioWorkletProcessor.parameterDescriptors, processor_new(), web-demo initial <range> value and value <span> innerText
minimum:
minimum value, number, mapped, required for non-bypass
VST3: ParameterInfo stepCount, defaultNormalizedValue, controller get/set parameter (value clamped)
LV2: manifest.ttl lv2:port lv2:minimum, run() (set parameter, value clamped)
LV2:
web: AudioWorkletProcessor.parameterDescriptors, AudioWorkletProcessor.process() (value clamped), web-demo <range> mapping
maximum:
maximum value, number, mapped, required for non-bypass
VST3: ParameterInfo stepCount, defaultNormalizedValue, controller get/set parameter (value clamped)
LV2: manifest.ttl lv2:port lv2:maximum, run() (set parameter, value clamped)
web: AudioWorkletProcessor.parameterDescriptors, AudioWorkletProcessor.process() (value clamped), web-demo <range> mapping
toggled:
parameter is on/off? boolean, default false
VST3: ParameterInfo stepCount, controller set parameter/state
LV2: manifest.ttl lv2:port lv2:portProperty lv2:toggled, run() (set parameter)
web: AudoWorkletProcessor.process(), web-demo <range> min/max/step
optional:
parameter is optionally connected? boolean, default false
VST3: not used
LV2: manifest.ttl lv2:port lv2:portProperty lv2:connectionOptional
web: not used
integer:
parameter values are integers? boolean, default false
VST3: ParameterInfo stepCount, controller set parameter/state
LV2: manifest.ttl lv2:port lv2:portProperty lv2:integer, run() (set parameter)
web: AudoWorkletProcessor.process(), web-demo <range> step
scalePoints:
{ "label1": value1, "label2", value2, ... }
labeled values, default none
VST3: TBD
LV2: manifest.ttl lv2:port lv2:scalePoint
web: not used
list:
parameter is a list (using scalePoints values)? default false
VST3: TBD
LV2: manifest.ttl lv2:port lv2:enumeration - run() (set parameter) TBD?
web: not used
unit:
unit of measure (from predefined list, see tibia-index.js), default ""
VST3: ParameterInfo units
LV2: manifest.ttl lv2:port units:unit
web: web-demo value <span> innerText
map:
"linear" vs "logarithmic"
VST3: many places (requires libm)
LV2: manifest.ttl lv2:port lv2:portProperty pprops:logarithmic
web: web-demo <range> values
}
]
}