iOS: SunVox Audio Unit (AUv3) can now be used as an effect (filter) inside other DAWs;
sound engine optimization;
new module - Pitch Detector for detecting the pitch of the incoming signal; the frequency and note will be displayed; notes will be sent to the module output; see example "pitch correction (automatic tuning)";
new module - ADSR envelope generator; see examples adsr, adsr2, adsr3;
new module - Ctl2Note for converting the controller value into a note (input - automation; output - notes); see example ctl2note;
Analog Generator: new waveform "harmonics" allows you to draw the harmonic distribution; but remember, if you turn on all 32 harmonics, then the module's performance will slow down 32 times compared to a pure sine generator; reduced polyphony and LQmono mode will slightly reduce the CPU load;
SpectraVoice: new harmonic types: overtones1+, overtones2+, overtones3+, overtones4+, metal;
LFO: new controller "Frequency scale" (in percents) - use it to slow or accelerate the oscillations;
LFO: new controller "Smooth transitions" - disable it to get hard transitions inside the waveform;
Generator, Kicker, SpectraVoice: increased resolution (accuracy) of Attack and Release controllers; (only if the base version is 1.9.6 or higher in the Project Properties);
Sound2Ctl: new option "Send only changed values";
MultiSynth: new option "Round the note (X-axis on curve3) to the nearest integer" (remove microtones);
MultiSynth: new option "Round the pitch (Y-axis on curve3) to the closest";
MultiSynth: new option "Record notes to the scale (curve3)"; see example "dynamic scale";
MultiSynth: new option "Output note = Output note - Input note + C5" (difference between output and input pitch);
MultiSynth: new option "Output port number = note % number of connected outputs"; (% is the modulo (remainder) operation); see example "drumkit 3 (multisynth)";
MultiSynth: new option "Output port number = polyphonic channel % number of connected outputs";
MultiSynth: new curve 3 describing the dependence of the output pitch on the input note;
MetaModule: new options "Receive notes from the keyboard" and "Don't receive notes from the keyboard";
MetaModule -> User defined controllers: edit buttons (add,delete,move up/down) have been added;
Pitch shifter: incoming notes change the value of controller 02.Pitch; the C5 note corresponds to zero;
Pitch shifter: new controller "Bypass if pitch=0" - play the original signal when the module does not change the pitch;
MetaModule, MultiSynth, Sound2Ctl, Sampler, Analog Generator: options can be accessed in the same way as controllers (see the exact numbers in the options list);
new MIDI IN mode for modules - "never" (never receive MIDI data);
improved popup menus: additional navigation keys (up,down,left,right,space,enter,escape); horizontal scroll if the menu does not fit on the screen; highlight of the current effect;
new pattern effects (column EE): 05 and 06 - pitch bend up/down (one semitone = 100 (256dec));
new keyboard shortcuts for the timeline: slice, mute, solo, unmute, set restart position, snap to grid (unassigned by default);
new folder "curves" (with curves for MultiSynth, MultiCtl and WaveShaper);
new modules in the instruments/ and effects/ folders;
Thank you so very much! These features are a great step up, and address many niggling details that I've had to work around in the past.
Could you give a slightly more detailed explanation of:
-- MultiSynth: new option "Output port number = polyphonic channel % number of connected outputs";
I don't know whether "polyphonic channel" means notes currently played, or whether it adds up over time, or ... in other words, is this an implementation of something like last note priority, or round-robin, or what does it do? It does seem as if this is an answer to my past request for using Multisynth as a way to handle multiple monophonic chains, for which I thank you very much. Especially in combination with ADSR modules, this seems like a great plan.
Koekepan wrote: ↑Wed Nov 25, 2020 10:01 pm
I don't know whether "polyphonic channel" means notes currently played, or whether it adds up over time, or ... in other words, is this an implementation of something like last note priority, or round-robin, or what does it do?
Sorry i don't know the name of the algorithm :)
Polyphonic channel is the internal channel number that is assigned by the MultiSynth for each input voice.
The voice starts with a noteON and ends with noteOFF on the same input track.
Maximum capacity = 32 channels.
For each new voice: MultiSynth looking for a free channel starting from zero, and then mark it as "busy".
When the voice is finished: MultiSynth marks the voice channel as "free".
NightRadio wrote: ↑Thu Nov 26, 2020 12:31 am
Sorry i don't know the name of the algorithm
Polyphonic channel is the internal channel number that is assigned by the MultiSynth for each input voice.
The voice starts with a noteON and ends with noteOFF on the same input track.
Maximum capacity = 32 channels.
For each new voice: MultiSynth looking for a free channel starting from zero, and then mark it as "busy".
When the voice is finished: MultiSynth marks the voice channel as "free".
Thanks! That's what I needed to know (and I know that I understand you correctly, because I tested and confirmed).
Round-robin would be always taking the next channel, regardless of whether an earlier one were "free", so your channel choice out of three would always be 1 2 3 1 2 3 1 2 3 etc.. Last note priority would mean that you'd keep channels in a FIFO list (with maybe some logic around tracking "free" channels) and first note priority would be a LIFO list.
The idea behind those options is basically if you have long release tails, to be friendlier to them.
Koekepan wrote: ↑Thu Nov 26, 2020 9:36 am
Round-robin would be always taking the next channel, regardless of whether an earlier one were "free", so your channel choice out of three would always be 1 2 3 1 2 3 1 2 3 etc.. Last note priority would mean that you'd keep channels in a FIFO list (with maybe some logic around tracking "free" channels) and first note priority would be a LIFO list.
The idea behind those options is basically if you have long release tails, to be friendlier to them.
Thank you for clarification!
I think we need one more option to switch between different channel allocation algorithms. At least: default and round-robin. Because the tail clipping on synths with long release is a problem.
LIFO can be good for when you hold one or two notes as a drone, while others come afterwards to be a quick-moving melody. You'll hear that approach used sometimes on some analogue synths in live performance.
FIFO is the classic, where you assume that the oldest note is the one that would be least important.
Round-robin (possibly modified by intelligence around free and occupied channels) is a sort of compromise.
Speaking strictly for myself, I'd like to see this soon, but I don't know how big a pain this would be to program, so if it has to wait for 1.9.7, I understand. (But it it's in 1.9.6c, I'll do a little dance.)