update notes and stuff
This commit is contained in:
parent
6ea12950de
commit
008f0371d3
1
TODO
1
TODO
@ -23,3 +23,4 @@
|
|||||||
* midi out
|
* midi out
|
||||||
* vst3 tail, web process return true/false
|
* vst3 tail, web process return true/false
|
||||||
* error checking etc. web, especially processor.js
|
* error checking etc. web, especially processor.js
|
||||||
|
* LV2: round latency output value
|
||||||
|
68
notes
68
notes
@ -3,14 +3,20 @@ company {
|
|||||||
VST3: PFactoryInfo.vendor
|
VST3: PFactoryInfo.vendor
|
||||||
LV2: manifest.ttl doap:maintainer foaf:name
|
LV2: manifest.ttl doap:maintainer foaf:name
|
||||||
web: not used
|
web: not used
|
||||||
|
cmd: not used
|
||||||
|
android: not used
|
||||||
url:
|
url:
|
||||||
VST3: PFactoryInfo.url
|
VST3: PFactoryInfo.url
|
||||||
LV2: manifest.ttl doap:maintainer rdfs:seeAlso
|
LV2: manifest.ttl doap:maintainer rdfs:seeAlso
|
||||||
web: not used
|
web: not used
|
||||||
|
cmd: not used
|
||||||
|
android: not used
|
||||||
email:
|
email:
|
||||||
VST3: PFactoryInfo.email
|
VST3: PFactoryInfo.email
|
||||||
LV2: manifest.ttl doap:maintainer foaf:mbox
|
LV2: manifest.ttl doap:maintainer foaf:mbox
|
||||||
web: not used
|
web: not used
|
||||||
|
cmd: not used
|
||||||
|
android: not used
|
||||||
}
|
}
|
||||||
|
|
||||||
product {
|
product {
|
||||||
@ -18,18 +24,26 @@ product {
|
|||||||
VST3: PClassInfo{,2,W}.name
|
VST3: PClassInfo{,2,W}.name
|
||||||
LV2: manifest.ttl plugin doap:name
|
LV2: manifest.ttl plugin doap:name
|
||||||
web: web-demo <title> and <h1>
|
web: web-demo <title> and <h1>
|
||||||
|
cmd: not used
|
||||||
|
android: index.html <title>, AndroidManifest.xml <application> <activity> android:label
|
||||||
version:
|
version:
|
||||||
VST3: PClassInfo{2,W}.version (first 3 numbers)
|
VST3: PClassInfo{2,W}.version (first 3 numbers)
|
||||||
LV2: not used
|
LV2: not used
|
||||||
web: not used
|
web: not used
|
||||||
|
cmd: not used
|
||||||
|
android: not used
|
||||||
buildVersion:
|
buildVersion:
|
||||||
VST3: PClassInfo{2,W}.version (last number)
|
VST3: PClassInfo{2,W}.version (last number)
|
||||||
LV2: not used
|
LV2: not used
|
||||||
web: not used
|
web: not used
|
||||||
|
cmd: not used
|
||||||
|
android: not used
|
||||||
bundleName:
|
bundleName:
|
||||||
VST3: plugin folder name, plugin .dll name, Info.plist
|
VST3: plugin folder name, plugin .dll name, Info.plist
|
||||||
LV2: plugin folder name, plugin .dll name, manifest.ttl plugin lv2:binary
|
LV2: plugin folder name, plugin .dll name, manifest.ttl plugin lv2:binary
|
||||||
web: registerProcessor(), output file names
|
web: registerProcessor(), output file names
|
||||||
|
cmd: executable file name
|
||||||
|
android: .so/.apk filenames
|
||||||
buses: [
|
buses: [
|
||||||
{
|
{
|
||||||
name:
|
name:
|
||||||
@ -37,46 +51,64 @@ product {
|
|||||||
VST3: BusInfo name
|
VST3: BusInfo name
|
||||||
LV2: manifest.ttl lv2:port lv2:name
|
LV2: manifest.ttl lv2:port lv2:name
|
||||||
web: not used
|
web: not used
|
||||||
|
cmd: not used
|
||||||
|
android: not used
|
||||||
shortName:
|
shortName:
|
||||||
bus short name string, required
|
bus short name string, required
|
||||||
VST3: not used
|
VST3: not used
|
||||||
LV2: manifest.ttl lv2:port lv2:shortName
|
LV2: manifest.ttl lv2:port lv2:shortName
|
||||||
web: not used
|
web: not used
|
||||||
|
cmd: not used
|
||||||
|
android: not used
|
||||||
direction:
|
direction:
|
||||||
"input" or "output", required
|
"input" or "output", required
|
||||||
VST3: BusInfo flags - lots of implications
|
VST3: BusInfo flags - lots of implications
|
||||||
LV2: manifest.ttl lv2:port a - lots of implications
|
LV2: manifest.ttl lv2:port a - lots of implications
|
||||||
web: AudioWorkletNode.{numberOfInputs,numberOfOutputs,outputChannelCount} - lots of implications
|
web: AudioWorkletNode.{numberOfInputs,numberOfOutputs,outputChannelCount} - lots of implications
|
||||||
|
cmd: lots of places
|
||||||
|
android: lots of places
|
||||||
type:
|
type:
|
||||||
"audio" or "midi", required
|
"audio" or "midi", required
|
||||||
VST3: BusInfo mediaType, ParameterInfo (channel pressure, pitch bend params) - lots of implications
|
VST3: BusInfo mediaType, ParameterInfo (channel pressure, pitch bend params) - lots of implications
|
||||||
LV2: lots of implications everywhere
|
LV2: lots of implications everywhere
|
||||||
web: AudioWorkletNode.{numberOfInputs,numberOfOutputs,outputChannelCount} - lots of implications
|
web: AudioWorkletNode.{numberOfInputs,numberOfOutputs,outputChannelCount} - lots of implications
|
||||||
|
cmd: lots of places
|
||||||
|
android: lots of places
|
||||||
channels:
|
channels:
|
||||||
"mono" or "stereo", audio type only, required
|
"mono" or "stereo", audio type only, required
|
||||||
VST3: BusInfo channelCount, plugin get/set bus arrangements
|
VST3: BusInfo channelCount, plugin get/set bus arrangements
|
||||||
LV2: manifest.ttl lv2:port - lots of implications
|
LV2: manifest.ttl lv2:port - lots of implications
|
||||||
web: AudioWorkletNode.outputChannelCount - lots of implications
|
web: AudioWorkletNode.outputChannelCount - lots of implications
|
||||||
|
cmd: lots of places
|
||||||
|
android: lots of places
|
||||||
sidechain:
|
sidechain:
|
||||||
bus is not part of main audio path (sidechain)? boolean, default false
|
bus is not part of main audio path (sidechain)? boolean, default false
|
||||||
VST3: BusInfo busType
|
VST3: BusInfo busType
|
||||||
LV2: manifest.ttl lv2:port lv2:portProperty lv2:isSideChain
|
LV2: manifest.ttl lv2:port lv2:portProperty lv2:isSideChain
|
||||||
web: not used
|
web: web-demo choice of audio I/O buses
|
||||||
|
cmd: choice of audio I/O buses
|
||||||
|
android: choice of audio I/O buses
|
||||||
cv:
|
cv:
|
||||||
bus is control voltage audio-rate? boolean, audio type only, default false
|
bus is control voltage audio-rate? boolean, audio type only, default false
|
||||||
VST3: BusInfo flags
|
VST3: BusInfo flags
|
||||||
LV2: manifest.ttl lv2:port a lv2:CVPort
|
LV2: manifest.ttl lv2:port a lv2:CVPort
|
||||||
web: not used
|
web: web-demo choice of audio I/O buses
|
||||||
|
cmd: choice of audio I/O buses
|
||||||
|
android: choice of audio I/O buses
|
||||||
control:
|
control:
|
||||||
bus is the "primary control channel" (send cmds, receive responses)? boolean, midi type only, default false
|
bus is the "primary control channel" (send cmds, receive responses)? boolean, midi type only, default false
|
||||||
VST3: not used
|
VST3: not used
|
||||||
LV2: manifest.ttl lv2:port lv2:designation lv2:control
|
LV2: manifest.ttl lv2:port lv2:designation lv2:control
|
||||||
web: not used
|
web: not used
|
||||||
|
cmd: not used
|
||||||
|
android: not used
|
||||||
optional:
|
optional:
|
||||||
bus is optionally connected? boolean, default false
|
bus is optionally connected? boolean, default false
|
||||||
VST3: BusInfo flags, plugin initialize, activate bus, set active
|
VST3: BusInfo flags, plugin initialize, activate bus, set active
|
||||||
LV2: manifest.ttl lv2:port lv2:portProperty lv2:connectionOptional
|
LV2: manifest.ttl lv2:port lv2:portProperty lv2:connectionOptional
|
||||||
web: not used
|
web: not used
|
||||||
|
cmd: whether to pass NULLs if not chosen audio I/O buses
|
||||||
|
android: whether to pass NULLs if not chosen audio I/O buses
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
parameters: [
|
parameters: [
|
||||||
@ -86,77 +118,107 @@ product {
|
|||||||
VST3: ParameterInfo title
|
VST3: ParameterInfo title
|
||||||
LV2: manifest.ttl lv2:port lv2:name
|
LV2: manifest.ttl lv2:port lv2:name
|
||||||
web: AudioWorkletProcessor.parameterDescriptors, web-demo <label>
|
web: AudioWorkletProcessor.parameterDescriptors, web-demo <label>
|
||||||
|
cmd: not used
|
||||||
|
android: index.html <label>
|
||||||
shortName:
|
shortName:
|
||||||
parameter short name string, required
|
parameter short name string, required
|
||||||
VST3: ParameterInfo shortTitle
|
VST3: ParameterInfo shortTitle
|
||||||
LV2: manifest.ttl lv2:port lv2:shortName
|
LV2: manifest.ttl lv2:port lv2:shortName
|
||||||
web: not used
|
web: not used
|
||||||
|
cmd: not used
|
||||||
|
android: not used
|
||||||
direction:
|
direction:
|
||||||
"input" or "output", required
|
"input" or "output", required
|
||||||
VST3: ParameterInfo flags - lots of implications
|
VST3: ParameterInfo flags - lots of implications
|
||||||
LV2: manifest.ttl lv2:port a - lots of implications
|
LV2: manifest.ttl lv2:port a - lots of implications
|
||||||
web: AudioWorkletProcessor.parameterDescriptors, web-demo <range> readonly/input listener - lots of implications
|
web: AudioWorkletProcessor.parameterDescriptors, web-demo <range> readonly/input listener - lots of implications
|
||||||
|
cmd: lots of places
|
||||||
|
android: lots of places
|
||||||
isBypass:
|
isBypass:
|
||||||
parameter is bypass/enabled? boolean - lots of implications, default false
|
parameter is bypass/enabled? boolean - lots of implications, default false
|
||||||
VST3: ParameterInfo, controller get/set parameter/state
|
VST3: ParameterInfo, controller get/set parameter/state
|
||||||
LV2: manifest.ttl lv2:port, run() (set parameter)
|
LV2: manifest.ttl lv2:port, run() (set parameter)
|
||||||
web: AudoWorkletProcessor.process(), web-demo <range> min/max/step
|
web: AudoWorkletProcessor.process(), web-demo <range> min/max/step
|
||||||
|
cmd: set parameter
|
||||||
|
android: JNI set parameter, index.html <range> min/max/step
|
||||||
isLatency:
|
isLatency:
|
||||||
parameter is latency output? boolean - lots of implications, default false
|
parameter is latency output? boolean - lots of implications, default false
|
||||||
VST3: TBD
|
VST3: TBD
|
||||||
LV2: manifest.ttl lv2:port, run() (set parameter)
|
LV2: manifest.ttl lv2:port, TBD round output value
|
||||||
web: not used
|
web: not used
|
||||||
|
cmd: not used
|
||||||
|
android: not used
|
||||||
defaultValue:
|
defaultValue:
|
||||||
default value, number, mapped, required for non-bypass
|
default value, number, mapped, required for non-bypass
|
||||||
VST3: ParameterInfo defaultNormalizedValue, controller initialize
|
VST3: ParameterInfo defaultNormalizedValue, controller initialize
|
||||||
LV2: manifest.ttl lv2:port lv2:default, activate() (set initial parameter)
|
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
|
web: AudioWorkletProcessor.parameterDescriptors, processor_new(), web-demo initial <range> value and value <span> innerText
|
||||||
|
cmd: default parameter value
|
||||||
|
android: JNI set parameter initial value, index.html initial <range> value
|
||||||
minimum:
|
minimum:
|
||||||
minimum value, number, mapped, required for non-bypass
|
minimum value, number, mapped, required for non-bypass
|
||||||
VST3: ParameterInfo stepCount, defaultNormalizedValue, controller get/set parameter (value clamped)
|
VST3: ParameterInfo stepCount, defaultNormalizedValue, controller get/set parameter (value clamped)
|
||||||
LV2: manifest.ttl lv2:port lv2:minimum, run() (set parameter, value clamped)
|
LV2: manifest.ttl lv2:port lv2:minimum, run() (set parameter, value clamped)
|
||||||
web: AudioWorkletProcessor.parameterDescriptors, AudioWorkletProcessor.process() (value clamped), web-demo <range> mapping
|
web: AudioWorkletProcessor.parameterDescriptors, AudioWorkletProcessor.process() (value clamped), web-demo <range> mapping
|
||||||
|
cmd: set parameter (value clamped)
|
||||||
|
android: JNI set parameter (value clamped), index.html <range> mapping
|
||||||
maximum:
|
maximum:
|
||||||
maximum value, number, mapped, required for non-bypass
|
maximum value, number, mapped, required for non-bypass
|
||||||
VST3: ParameterInfo stepCount, defaultNormalizedValue, controller get/set parameter (value clamped)
|
VST3: ParameterInfo stepCount, defaultNormalizedValue, controller get/set parameter (value clamped)
|
||||||
LV2: manifest.ttl lv2:port lv2:maximum, run() (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
|
web: AudioWorkletProcessor.parameterDescriptors, AudioWorkletProcessor.process() (value clamped), web-demo <range> mapping
|
||||||
|
cmd: set parameter (value clamped)
|
||||||
|
android: JNI set parameter (value clamped), index.html <range> mapping
|
||||||
toggled:
|
toggled:
|
||||||
parameter is on/off? boolean, default false
|
parameter is on/off? boolean, default false
|
||||||
VST3: ParameterInfo stepCount, controller set parameter/state
|
VST3: ParameterInfo stepCount, controller set parameter/state
|
||||||
LV2: manifest.ttl lv2:port lv2:portProperty lv2:toggled, run() (set parameter)
|
LV2: manifest.ttl lv2:port lv2:portProperty lv2:toggled, run() (set parameter)
|
||||||
web: AudoWorkletProcessor.process(), web-demo <range> min/max/step
|
web: AudoWorkletProcessor.process(), web-demo <range> min/max/step
|
||||||
|
cmd: set parameter
|
||||||
|
android: JNI set parameter, index.html <range> min/max/step
|
||||||
optional:
|
optional:
|
||||||
parameter is optionally connected? boolean, default false
|
parameter is optionally connected? boolean, default false
|
||||||
VST3: not used
|
VST3: not used
|
||||||
LV2: manifest.ttl lv2:port lv2:portProperty lv2:connectionOptional
|
LV2: manifest.ttl lv2:port lv2:portProperty lv2:connectionOptional
|
||||||
web: not used
|
web: not used
|
||||||
|
cmd: not used
|
||||||
|
android: not used
|
||||||
integer:
|
integer:
|
||||||
parameter values are integers? boolean, default false
|
parameter values are integers? boolean, default false
|
||||||
VST3: ParameterInfo stepCount, controller set parameter/state
|
VST3: ParameterInfo stepCount, controller set parameter/state
|
||||||
LV2: manifest.ttl lv2:port lv2:portProperty lv2:integer, run() (set parameter)
|
LV2: manifest.ttl lv2:port lv2:portProperty lv2:integer, run() (set parameter)
|
||||||
web: AudoWorkletProcessor.process(), web-demo <range> step
|
web: AudoWorkletProcessor.process(), web-demo <range> step
|
||||||
|
cmd: set parameter
|
||||||
|
android: JNI set parameter, index.html <range> step
|
||||||
scalePoints:
|
scalePoints:
|
||||||
{ "label1": value1, "label2", value2, ... }
|
{ "label1": value1, "label2", value2, ... }
|
||||||
labeled values, default none
|
labeled values, default none
|
||||||
VST3: TBD
|
VST3: TBD
|
||||||
LV2: manifest.ttl lv2:port lv2:scalePoint
|
LV2: manifest.ttl lv2:port lv2:scalePoint
|
||||||
web: not used
|
web: not used
|
||||||
|
cmd: not used
|
||||||
|
android: not used
|
||||||
list:
|
list:
|
||||||
parameter is a list (using scalePoints values)? default false
|
parameter is a list (using scalePoints values)? default false
|
||||||
VST3: TBD (+approx to closest?)
|
VST3: TBD (+approx to closest?)
|
||||||
LV2: manifest.ttl lv2:port lv2:enumeration - run() (set parameter) TBD?
|
LV2: manifest.ttl lv2:port lv2:enumeration - run() (set parameter) TBD?
|
||||||
web: TBD (approx to closest? dropdown? both?)
|
web: TBD (approx to closest? dropdown? both?)
|
||||||
|
cmd: not (yet) used
|
||||||
|
android: not (yet) used
|
||||||
unit:
|
unit:
|
||||||
unit of measure (from predefined list, see tibia-index.js), default ""
|
unit of measure (from predefined list, see tibia-index.js), default ""
|
||||||
VST3: ParameterInfo units
|
VST3: ParameterInfo units
|
||||||
LV2: manifest.ttl lv2:port units:unit
|
LV2: manifest.ttl lv2:port units:unit
|
||||||
web: web-demo value <span> innerText
|
web: web-demo value <span> innerText
|
||||||
|
cmd: not used
|
||||||
|
android: not used
|
||||||
map:
|
map:
|
||||||
"linear" vs "logarithmic"
|
"linear" vs "logarithmic"
|
||||||
VST3: many places (requires libm)
|
VST3: many places (requires libm)
|
||||||
LV2: manifest.ttl lv2:port lv2:portProperty pprops:logarithmic
|
LV2: manifest.ttl lv2:port lv2:portProperty pprops:logarithmic
|
||||||
web: web-demo <range> values
|
web: web-demo <range> values
|
||||||
|
cmd: not used
|
||||||
|
android: index.html <range> values
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
@ -9,8 +9,8 @@
|
|||||||
<uses-sdk android:minSdkVersion="26" /> <!-- for androidx core and AAudio -->
|
<uses-sdk android:minSdkVersion="26" /> <!-- for androidx core and AAudio -->
|
||||||
{{?}}
|
{{?}}
|
||||||
<uses-sdk android:targetSdkVersion="34" />
|
<uses-sdk android:targetSdkVersion="34" />
|
||||||
<application android:label="{{=it.product.bundleName}}">
|
<application android:label="{{=it.product.name}}">
|
||||||
<activity android:name=".MainActivity" android:label="{{=it.product.bundleName}}" android:exported="true">
|
<activity android:name=".MainActivity" android:label="{{=it.product.name}}" android:exported="true">
|
||||||
<intent-filter>
|
<intent-filter>
|
||||||
<action android:name="android.intent.action.MAIN" />
|
<action android:name="android.intent.action.MAIN" />
|
||||||
<category android:name="android.intent.category.DEFAULT" />
|
<category android:name="android.intent.category.DEFAULT" />
|
||||||
|
@ -56,7 +56,7 @@ static struct {
|
|||||||
/* .def = */ {{=p.defaultValue.toExponential()}},
|
/* .def = */ {{=p.defaultValue.toExponential()}},
|
||||||
/* .min = */ {{=p.minimum.toExponential()}}f,
|
/* .min = */ {{=p.minimum.toExponential()}}f,
|
||||||
/* .max = */ {{=p.maximum.toExponential()}}f,
|
/* .max = */ {{=p.maximum.toExponential()}}f,
|
||||||
/* .flags = */ {{?p.isBypass}}PARAM_BYPASS{{??p.isLatency}}PARAM_INTEGER{{??}}0{{?p.toggled}} | PARAM_TOGGLED{{?}}{{?p.integer}} | PARAM_INTEGER{{?}}{{?}}
|
/* .flags = */ {{?p.isBypass}}PARAM_BYPASS{{??}}0{{?p.toggled}} | PARAM_TOGGLED{{?}}{{?p.integer}} | PARAM_INTEGER{{?}}{{?}}
|
||||||
},
|
},
|
||||||
{{~}}
|
{{~}}
|
||||||
};
|
};
|
||||||
|
@ -58,7 +58,7 @@ static struct {
|
|||||||
/* .def = */ {{=p.defaultValue.toExponential()}}f,
|
/* .def = */ {{=p.defaultValue.toExponential()}}f,
|
||||||
/* .min = */ {{=p.minimum.toExponential()}}f,
|
/* .min = */ {{=p.minimum.toExponential()}}f,
|
||||||
/* .max = */ {{=p.maximum.toExponential()}}f,
|
/* .max = */ {{=p.maximum.toExponential()}}f,
|
||||||
/* .flags = */ {{?p.isBypass}}PARAM_BYPASS{{??p.isLatency}}PARAM_INTEGER{{??}}0{{?p.toggled}} | PARAM_TOGGLED{{?}}{{?p.integer}} | PARAM_INTEGER{{?}}{{?}}
|
/* .flags = */ {{?p.isBypass}}PARAM_BYPASS{{??}}0{{?p.toggled}} | PARAM_TOGGLED{{?}}{{?p.integer}} | PARAM_INTEGER{{?}}{{?}}
|
||||||
},
|
},
|
||||||
{{~}}
|
{{~}}
|
||||||
};
|
};
|
||||||
|
Loading…
Reference in New Issue
Block a user