VST Core Functionality
Layers (was
called groups) - A drop down to layer multiple node designs
Will
allow you to switch to another layer allowing users to stack their
designs and not have them all in 1 page (but both will be possible)
1 layer
(dimension) presets (patches that only use 1 layer) can be loaded
into any layer at any time in any patch (look into loading multi
layer with other multi layer patches, shouldn't be much different,
might need to warn users, this could be a major rise in CPU/GPU use
and if not careful lead to a lock-up or crash)
Module Clusters
(essentially layer merge)
* Need to think about this more as it
crosses over into patch loading and merging territory which would
actually allow users to do the same thing. Just they would need to
save these patches / layers into a folder and called that folder my
clusters or something. Do they need hand holding? (the UX/ui in me
says "always assume yes", the programme in me says, "they
are intelligent people, but there will be some..").
Define a few commonly used for default selection
Allow user
defined group clusters to be saved
(while creating a patch a
user can copy and paste the modules they want into another group
and save that group as a Cluster for use at any time in the
future).
Users can then
delete layer.
(Same as a patch just save to a directory called
clusters or groups)
Presets will be
json based, to look into architecture per preset or collection for
sample storage
Lines go under
modules
Inputs stack on
left input hook/connection
Outputs stack on right input hook/connection
Modules
hooks left (inputs), right (outputs), top centre & bottom centre (utility, LFO etc)
lower user definable infinite module matrix
any input can
be assigned none, or any amount of times to anything
(control
is from the module input not inside this, double manipulation of
input is not required)
module matrix is infinite (100 rows should be more than enough) scrollable area user adds as many as they want
Modules
I/O (Input/Output)
Midi in
Velocity
Pressure
Pitch Wheel
Mod Wheel
CC
Midi out
Audio Out
Midi / Note modification
See other document on this, pick most used/desired, too many for v1...
Key Range Mapper
ARP classic
Midi (.mid file) ARP
Note chance
Chord matrix (EG: on C2 press, add E2 & G2, for any key C0 to C8 can be defined)
Snap to designated keys only in octave range (auto replicates to all octaves)
Sound Generators
OSC (Classic Sine, Triangle & Square)
Maybe add time morph controls to go glide from 1 to maybe 10 user adjusted shapes (look into way to get ADSR (SR) to trigger a 4 user defined shape mode.
OSC (Wave Table)
Multi Sample (per key) *not fussed on this
OSC (User MSEG
/ ENV Designer)
Possible morph between 1 to 10 designed shapes
over a user defined time (v2?)
Sampler (kontakt style)
1 sample can be assigned to any and all keys or 1 to a range
options on each sample for start, end, loop start, loop end
settings to be easily made to be copied over to all other sample or a select few or the 1
Granulator
NOTE:
Do not offer modulation of start, end etc, this can be done by
modules linked to this module (this is not a classic synth vst)
1 sample can be assigned to any and all keys or 1 to a range
start
end
grain size (play length from creation point)
grain count
grain start overshoot random (keep within start and end)
grain end undershoot random (keep within start and end)
OSC Processors (modifiers)
Additive (add, stack/compound, merge in 1 to in 2 %, algo1, algo2, etc)
Subtractive (math subtract, check out other algorithms out there)
Phase shift
Invert
Frequency Splitter (cut off)
Dynamic single (flip upper / lower cut mode) to up to 3 outputs (lower, mid, upper)
2 band mode
3 band mode
Envelopes
HADSR
ADSR
MSEG which can be enabled to be (SR concept from concept drawing)
etc
Utility
Link module (become any existing module wire without mess)
Volume/Gain/Amplitude module
Modulators / Sound Design
All LFO's will have: play once, repeat, sync to DAW infinite loop, sync to DAW one shot, retrigger, poly.
NOTE: Beat / DAW synced LFO’s will all link to 1 hidden bit of code which processes this signal (CPU optimiser)
LFO (classic)
LFO (Wave Table)
LFO (MSEG, User shape defined)
Filters
The usual stuff (code and algorithms already all over github etc)
Audio signal processors
Freq cut (2 & 3 band)
Sharp cut and Blend crossover cut (user control?)
Mono maker
1 band (lower/upper toggle), 2 and 3 band (blend control v2)
Effects
More after v1, just
the common stuff for now…
To look into: effects on
polyphony and their application per a note poly-phonically.
Distortion
Bit Destroyer
Delay
Reverb
Stereo Widener (maybe v2)