Configure the voice capacity for PolyModSynth
This commit is contained in:
parent
958bea45e6
commit
69aa8433fa
1 changed files with 17 additions and 0 deletions
|
@ -1,6 +1,9 @@
|
||||||
use nih_plug::prelude::*;
|
use nih_plug::prelude::*;
|
||||||
use std::sync::Arc;
|
use std::sync::Arc;
|
||||||
|
|
||||||
|
/// The number of simultaneous voices for this synth.
|
||||||
|
const NUM_VOICES: u32 = 16;
|
||||||
|
|
||||||
/// A simple polyphonic synthesizer with support for CLAP's polyphonic modulation. See
|
/// A simple polyphonic synthesizer with support for CLAP's polyphonic modulation. See
|
||||||
/// `NoteEvent::PolyModulation` for another source of information on how to use this.
|
/// `NoteEvent::PolyModulation` for another source of information on how to use this.
|
||||||
struct PolyModSynth {
|
struct PolyModSynth {
|
||||||
|
@ -38,6 +41,10 @@ impl Plugin for PolyModSynth {
|
||||||
self.params.clone()
|
self.params.clone()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// If the synth as a variable number of voices, you will need to call
|
||||||
|
// `context.set_current_voice_capacity()` in `initialize()` and in `process()` (when the
|
||||||
|
// capacity changes) to inform the host about this.
|
||||||
|
|
||||||
fn process(
|
fn process(
|
||||||
&mut self,
|
&mut self,
|
||||||
_buffer: &mut Buffer,
|
_buffer: &mut Buffer,
|
||||||
|
@ -66,6 +73,16 @@ impl ClapPlugin for PolyModSynth {
|
||||||
ClapFeature::Synthesizer,
|
ClapFeature::Synthesizer,
|
||||||
ClapFeature::Stereo,
|
ClapFeature::Stereo,
|
||||||
];
|
];
|
||||||
|
|
||||||
|
const CLAP_POLY_MODULATION_CONFIG: Option<PolyModulationConfig> = Some(PolyModulationConfig {
|
||||||
|
// If the plugin's voice capacity changes at runtime (for instance, when switching to a
|
||||||
|
// monophonic mode), then the plugin should inform the host in the `initialize()` function
|
||||||
|
// as well as in the `process()` function if it changes at runtime using
|
||||||
|
// `context.set_current_voice_capacity()`
|
||||||
|
max_voice_capacity: NUM_VOICES,
|
||||||
|
// This enables voice stacking in Bitwig.
|
||||||
|
supports_overlapping_voices: true,
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
// The VST3 verison of this plugin isn't too interesting as it will not support polyphonic
|
// The VST3 verison of this plugin isn't too interesting as it will not support polyphonic
|
||||||
|
|
Loading…
Add table
Reference in a new issue