SunVox 1.9.6

Multi-platform modular music creation studio
Post Reply
User avatar
NightRadio
Site Admin
Posts: 3466
Joined: Fri Jan 23, 2004 12:28 am
Location: Ekaterinburg. Russia
Contact:

SunVox 1.9.6

Post by NightRadio » Tue Nov 24, 2020 1:41 pm

SunVox has been updated to version 1.9.6!
https://warmplace.ru/soft/sunvox
With many new features and improvements:
  • 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;
  • new examples (SunVox Compo 2020.02 winners): Trackerbound - Alpha Ursae Minoris, Trackerbound - Silentium, manganoid - Lazy Thunder, SawZer - Phantom;
  • bug fixes.



User avatar
NightRadio
Site Admin
Posts: 3466
Joined: Fri Jan 23, 2004 12:28 am
Location: Ekaterinburg. Russia
Contact:

Re: SunVox 1.9.6

Post by NightRadio » Tue Nov 24, 2020 3:52 pm

The first bug has been found.
The sign of the harmonic amplitude (in the new Analog Generator mode) is ignored now... :oops:
Will be fixed soon

User avatar
NightRadio
Site Admin
Posts: 3466
Joined: Fri Jan 23, 2004 12:28 am
Location: Ekaterinburg. Russia
Contact:

Re: SunVox 1.9.6

Post by NightRadio » Wed Nov 25, 2020 6:13 pm

SunVox v1.9.6b is out: https://warmplace.ru/soft/sunvox
Also the new version of Pixilang (with an updated SunVox engine) has been released: https://warmplace.ru/soft/pixilang

Koekepan
Posts: 243
Joined: Thu Dec 05, 2013 4:56 am

Re: SunVox 1.9.6

Post by Koekepan » Wed Nov 25, 2020 10:01 pm

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.

User avatar
NightRadio
Site Admin
Posts: 3466
Joined: Fri Jan 23, 2004 12:28 am
Location: Ekaterinburg. Russia
Contact:

Re: SunVox 1.9.6

Post by NightRadio » Thu Nov 26, 2020 12:31 am

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".

a1matt
Posts: 50
Joined: Wed Dec 28, 2016 7:39 pm

Re: SunVox 1.9.6

Post by a1matt » Thu Nov 26, 2020 12:44 am

Thank you for an awesome release :Yahoo!:

22tape
Posts: 56
Joined: Sat Oct 08, 2011 11:28 am

Re: SunVox 1.9.6

Post by 22tape » Thu Nov 26, 2020 6:05 am

Huge thank you! Great work. :beer:

Koekepan
Posts: 243
Joined: Thu Dec 05, 2013 4:56 am

Re: SunVox 1.9.6

Post by Koekepan » Thu Nov 26, 2020 9:36 am

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.

User avatar
NightRadio
Site Admin
Posts: 3466
Joined: Fri Jan 23, 2004 12:28 am
Location: Ekaterinburg. Russia
Contact:

Re: SunVox 1.9.6

Post by NightRadio » Thu Nov 26, 2020 12:30 pm

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.

Koekepan
Posts: 243
Joined: Thu Dec 05, 2013 4:56 am

Re: SunVox 1.9.6

Post by Koekepan » Thu Nov 26, 2020 9:48 pm

They all have their place.

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.)

ibim
Posts: 24
Joined: Thu Jan 02, 2014 4:06 pm

Re: SunVox 1.9.6

Post by ibim » Fri Nov 27, 2020 3:09 am

🎺🎺🎺🎺🎺🎺🎺🥁🥁 🥁 🥁🥁🥁 🎆🎆🎆🎆

iaon
Posts: 218
Joined: Mon Jun 02, 2014 7:56 am

Re: SunVox 1.9.6

Post by iaon » Mon Nov 30, 2020 12:01 pm

Image

illumiscotty
Posts: 8
Joined: Mon Jan 14, 2019 10:33 am

Re: SunVox 1.9.6

Post by illumiscotty » Tue Dec 08, 2020 10:09 pm

This update is insane. I used a the pitch detector on a guitar solo to trigger some wild stuff. Feelsgood
:0

User avatar
NightRadio
Site Admin
Posts: 3466
Joined: Fri Jan 23, 2004 12:28 am
Location: Ekaterinburg. Russia
Contact:

Re: SunVox 1.9.6

Post by NightRadio » Tue Dec 15, 2020 11:56 pm

Updates:
SunVox 1.9.6c (bug fixes);
SunVox library 1.9.6c (bug fixes; 16 slots; sv_pause()/sv_resume());
Pixilang 3.8.1b (bug fixes; sv_pause()/sv_resume()).

Post Reply