AuburnSounds / Dplug

Audio plugin framework. VST2/VST3/AU/AAX/LV2 for Linux/macOS/Windows.
https://dplug.org/
Other
486 stars 32 forks source link

Add mandatory plugin category in plugin.json #211

Closed p0nce closed 6 years ago

p0nce commented 6 years ago

Would be useful for both AAX and AU.

p0nce commented 6 years ago

AAX proposes the following categories:


- "none" => not sure what for
- EQ
- "Dynamics": compressor, expander, limiter, etc
- "Pitch Shift": any pitch processing
- "Reverb": Reverb and room/space
- "Delay"
- "Modulation" : phasing, flanging, chorus
- "Harmonic": distortion, saturation, harmonic
- "noise reduction"
- "dither"
- "sound field": pan, auto-pan, upmix, downmix, surround handling
- "hardware generator": any hardware audio sources
- "software generators": any software audio source like soft synths
- "wrapped plugins": plugins wrapped by third party
- "effect": "special effect" <= not sure what this category is for, perhaps means "other"
p0nce commented 6 years ago

VST3 has another set of categories:

const CString kFxAnalyzer           = "Fx|Analyzer";    ///< Scope, FFT-Display,...
const CString kFxDelay              = "Fx|Delay";       ///< Delay, Multi-tap Delay, Ping-Pong Delay...
const CString kFxDistortion         = "Fx|Distortion";  ///< Amp Simulator, Sub-Harmonic, SoftClipper...
const CString kFxDynamics           = "Fx|Dynamics";    ///< Compressor, Expander, Gate, Limiter, Maximizer, Tape Simulator, EnvelopeShaper...
const CString kFxEQ                 = "Fx|EQ";          ///< Equalization, Graphical EQ...
const CString kFxFilter             = "Fx|Filter";      ///< WahWah, ToneBooster, Specific Filter,...
const CString kFx                   = "Fx";             ///< others type (not categorized)
const CString kFxInstrument         = "Fx|Instrument";  ///< Fx which could be loaded as Instrument too
const CString kFxInstrumentExternal = "Fx|Instrument|External"; ///< Fx which could be loaded as Instrument too and is external (wrapped Hardware)
const CString kFxSpatial            = "Fx|Spatial";     ///< MonoToStereo, StereoEnhancer,...
const CString kFxGenerator          = "Fx|Generator";   ///< Tone Generator, Noise Generator...
const CString kFxMastering          = "Fx|Mastering";   ///< Dither, Noise Shaping,...
const CString kFxModulation         = "Fx|Modulation";  ///< Phaser, Flanger, Chorus, Tremolo, Vibrato, AutoPan, Rotary, Cloner...
const CString kFxPitchShift         = "Fx|Pitch Shift"; ///< Pitch Processing, Pitch Correction,...
const CString kFxRestoration        = "Fx|Restoration"; ///< Denoiser, Declicker,...
const CString kFxReverb             = "Fx|Reverb";      ///< Reverberation, Room Simulation, Convolution Reverb...
const CString kFxSurround           = "Fx|Surround";    ///< dedicated to surround processing: LFE Splitter, Bass Manager...
const CString kFxTools              = "Fx|Tools";       ///< Volume, Mixer, Tuner...

const CString kInstrument           = "Instrument";         ///< Effect used as instrument (sound generator), not as insert
const CString kInstrumentDrum       = "Instrument|Drum";    ///< Instrument for Drum sounds
const CString kInstrumentSampler    = "Instrument|Sampler"; ///< Instrument based on Samples
const CString kInstrumentSynth      = "Instrument|Synth";   ///< Instrument based on Synthesis
const CString kInstrumentSynthSampler = "Instrument|Synth|Sampler"; ///< Instrument based on Synthesis and Samples
const CString kInstrumentExternal   = "Instrument|External";///< External Instrument (wrapped Hardware)
p0nce commented 6 years ago

Note: In Dplug any mention of "Synth" could perhaps be replaced by "Instruments" as this category is semantically larger.

p0nce commented 6 years ago

Logic Menu:

Amps and Pedals
Delay
Distortion
Dynamics
EQ
Filter
Imaging
Metering
Modulation
Pitch
Reverb
Specialized
Utility

Audio Unit "Types":

kAudioUnitType_Effect: number;
kAudioUnitType_FormatConverter: number;
kAudioUnitType_Generator: number;
kAudioUnitType_MIDIProcessor: number;
kAudioUnitType_Mixer: number;
kAudioUnitType_MusicDevice: number;
kAudioUnitType_MusicEffect: number;
kAudioUnitType_OfflineEffect: number;
kAudioUnitType_Output: number;
kAudioUnitType_Panner: number;
kAudioUnitType_RemoteEffect: number;
kAudioUnitType_RemoteGenerator: number;
kAudioUnitType_RemoteInstrument: number;
kAudioUnitType_RemoteMusicEffect: number;

Audio Unit "Subtypes":

kAudioUnitSubType_AU3DMixerEmbedded
kAudioUnitSubType_AUConverter
kAudioUnitSubType_AUiPodEQ
kAudioUnitSubType_AUiPodTime
kAudioUnitSubType_AUiPodTimeOther
kAudioUnitSubType_AudioFilePlayer
kAudioUnitSubType_BandPassFilter
kAudioUnitSubType_DeferredRenderer
kAudioUnitSubType_Delay
kAudioUnitSubType_Distortion
kAudioUnitSubType_DynamicsProcessor
kAudioUnitSubType_GenericOutput
kAudioUnitSubType_HighPassFilter
kAudioUnitSubType_HighShelfFilter
kAudioUnitSubType_LowPassFilter
kAudioUnitSubType_LowShelfFilter
kAudioUnitSubType_MIDISynth
kAudioUnitSubType_MatrixMixer
kAudioUnitSubType_Merger
kAudioUnitSubType_MultiChannelMixer
kAudioUnitSubType_MultiSplitter
kAudioUnitSubType_NBandEQ
kAudioUnitSubType_NewTimePitch
kAudioUnitSubType_ParametricEQ
kAudioUnitSubType_PeakLimiter
kAudioUnitSubType_RemoteIO
kAudioUnitSubType_Reverb2
kAudioUnitSubType_RoundTripAAC
kAudioUnitSubType_SampleDelay
kAudioUnitSubType_Sampler
kAudioUnitSubType_ScheduledSoundPlayer
kAudioUnitSubType_SpatialMixer
kAudioUnitSubType_Splitter
kAudioUnitSubType_Varispeed
kAudioUnitSubType_VoiceProcessingIO
p0nce commented 6 years ago

Added a mix of those in v6.0.3