General infos and license
Install infos
KXWAVETRACER ?
Additve Synthesis ?
Easy
How can I create a saw  waveform ?
Modular synthesizer
Modularity
Envelope Generators 1-2-3
Lfos 1-2
Oscillators 1-2
Mixer
Midi2
More





General infos and License:

KX-MODULAD (ver : 1.00)
built with synthedit ver : 1.015
©08-2007 KX77FREE by X.Kalensky

http://kx77free.free.fr
Email: kx77free@free.fr

KX-Modulad license agreement :
This plugin is provided as is with no warranty of any kind.
The use of this plugin is entirely at your own risk.
You may not distribute this plugin in any way.
This version is a freeware.
I hope you will enjoy this plug...
If you like this plugin don't forget to make some publicity about it.
Thanks to :
for the program Synthedit : Jeff McClintock http://www.synthedit.com
VST PlugIn Technology by Steinberg Media Technologies AG

This plugin is powered by the KX77FREE modules (specific DLL ,*.SEM):
oscillator, lfo, filter (LP KX), EG, distortion, etc...

The KxWaveTracer.exe Win32 program is an additional feature of this plugin and you must use it only to calculate KX77FREE datas (*.kxw).
If you use this program for another use,
you must have the agreement of the author, Xavier Kalensky.



Warning:
Caution ! , If you are a novice, don't work with a headphone and the volume at max because electronic instruments can generate powerfull bass (<40 hz) and very high frequencies (res at max). The KX77FREE plugins are made for electronic experienced musicians who pratice electronic sounds synthesis regularly.

KX77FREE License :
author of the vst plugins KX77FREE : Xavier Kalensky

The user downloads and uses the vst plugins KX77FREE at his own risk
The author of the vst plugins KX77FREE (or all other provider) can not be responsible of material* or corporal damages (direct or indirect) caused by the use of the vst plugins KX77FREE.
*as any financial, personal or computer data loss. It's recommended to save any important data before using the vst plugins KX77FREE.

The vst plugins KX77FREE in FREEWARE version are provided without warranty.
The user may not distribute the vst plugins KX77FREE in any way. The vst plugins KX77FREE are always distributed with the file ''Licence.pdf '' which contains this licence.
Before downlading and using the vst plugins KX77FREE, the user has read carrefuly this licence (1-Warning and 2-License) and he accept it.

KX77FREE : © 2003-2007 by Xavier Kalensky. All Rights Reserved.
All other copyrights and trademarks are the property of their respective owners

SynthEdit: © 2003 by Jeff McClintock. All Rights Reserved.

VST and ASIO are trademarks of Steinberg Soft- und Hardware GmbH


Install infos

If you have an old pc which has not the SSE features, you can use the NO SSE version
to try it.

With a CPU +/-< 1.7ghz, please,  you should use the presets in mono mode.

Push on the button " All Presets Mono" or use a large ASIO buffer.


Before testing it, it is important to read the following infos:

The setup program does that you must do if you install the dll with no setup:

-1 It copies the dll to your host vstplugin folder.
-2 It copies the KXDATAS folder (shared waveforms) on the root of your system disk. Like this : C:\KXDATAS or D:\KXDATAS etc...

" C:\KXDATAS " is the default path of the plugin.

Some users don't use a standard Pc configuration  with a C: disk.

The users who don't use a C: disk  or place
the KXDATAS folder on  another root disk . They must change the paths.

They  must select the "data.kxw" file with the "path" field on the "kxwavetracer" panel of the plugin.


The default path is:
C:\KXDATAS\Kx-Modulad-Datas\data.kxw






if you use another disk, like D: or E: etc...
You must just change the disk letter :
D:\KXDATAS\Kx-Modulad-Datas\data.kxw

eg: new path with a different KX77FREE plugin (or spare folder ) :
" C:\KXDATAS\KXOMNI V4\data.kxw " is the new path.
or on a different disk:
" D:\KXDATAS\Kx-Modulad-Datas\data.kxw "

If  you use  bad paths the oscillators will be muted...
 
It's the same process for the KxWAveTracer.exe path...

YOU MUST NOT MODIFY THE INTERNAL FOLDER NAMES
AND THE " *.KXW " NAMES

***********

If you don't want to use a setup to install the DLL, a zip file with the DLLs and the KXDATAS folder is available on the Kx77free site.

http://kx77free.free.fr

***********


Kxdatas folder structure:

C:\ KXDATATAS \
                        >Modulad-Help\
                        (Help files folder)
                       > KxWaveTracer.exe (exe to calculate the waveforms)
                       > KxWaveTracer.ini
                       > Testini.txt

                        > Kx-Modulad-Datas \   
                        ( plugin folder !)
                                        >data.kxw (the parameters for the kxwavetracer program)

                                        > osc-low \
                                        (empty folder)
               
                                        > osc-med \
                                        (default folder,  the 27  *.KXW  files must be here!)           
               
                                        > osc-hi \
                                        (empty folder)

                                        >lfo-low \
                                       (empty folder)

                                        > lfo-med \
                                        (default folder,  the 4  *.KXW  files must be here!)   

                                        >lfo-hi \
                                        (empty folder)

Why ?

The choice of a fixed path is useful to load the waveforms
like a classic synthesizer.

The waveforms are classed:
the use : LFO or OSC
the quality of lookup table: Low, Med, Hi
5 types of shape : Sine, Tri, Saw, Sqr, Free
the number : 0 to 255

These flags create the name of the "*. kxw " file!



If you create a new waveform, it is shared for all KX-Modulad KX77FREE plugins.
This is useful if you use several vst host programs !

KXWAVETRACER ?

On the root of the kxdatas folder, you can see the kxwavetracer program.
It's a win32 program, when you push on the "render" selector,
you call it and the calculation of the waveform can use more CPU into an independent process.
This program is the solution to avoid any GUI  freeze, Asio buffer drops or host overload.


Additve Synthesis ?

http://en.wikipedia.org/wiki/Fourier_series

This plugin is provided with waveform presets : 100 to 128

To calculate the waveform, the kxwavetracer use the Simple Fourier series method.
It is based on the addition of sinusoidal waves (harmonics).
The level and the frequency of each harmonic are multiple of the fundamental frequency (note).

the first is the fundamental note  : 1/1 (440, 1.0)
the second : 1 /2 (880, 0.5)
the third : 1/3 (1320, 0.333)
etc...

EG : to make a A3 waveform (440 hz) :
22000 hz (44.1 khz clock frequency/2) / 440 = 50 harmonics

EG : to make a A0 waveform (55 hz) :
22000 hz (44.1 khz clock frequency/2) / 55 = 400 harmonics

http://en.wikipedia.org/wiki/Nyquist-Shannon sampling_theorem

Normally the number of  harmonic is infinite!
but we use a numeric technologie, we cannot use a frequency greater than the clock frequency divided by 2 (Nyquist frequency).

That 's why the KX-Oscillators use this method to calculate the waveform,
with this, it is very easy to control the harmonic number to avoid the numeric aliasing
when a waveform has harmonic frequencies greater than the Nyquist frequency.

After different tests, the limit frequency is set to 23200 hz

The DSP code of the Kx-Oscillators is optimised for all clock frequencies:
44.1 khz to 192 khz....
That's why you will have exactly the same result at all clock frequencies:
13.75 hz  to 14080 hz for the fundamental note and 23200 hz for the last harmonic!

You can change this limit but you must re-calculate all waveforms!





So the number of harmonic is not infinite...We can see little oscillations around the high harmonics..

To avoid this we use the Gibbs function to smooth the waveform but the levels of high frequencies is lower than waveforms which do not use the Gibbs function.





To calculate a lfo waveform or an acoustic waveform use the Gibbs function.

I used a Sequential Circuits synthesizer for my tests...
And I created the "Att gibbs" function to make waveforms like these classic analogic waveforms.







Easy 

With the KxWaveTracer you do not need to adjust the level of all harmonics.
You adjust the level of the first harmonics and the program calculates all harmonic levels.






How can I create a saw  waveform ? 



You cannot use 0.000 with the pow functions (Level and Gibbs),
the default  value is 1.00.



In the section "Level Group1" > Set all harmonics to 1.00



Loop this group : "Loop level Grp nbr = 1"

The little leds indicate the groups which are looped.
You can choose to loop the four groups but you must adjust the 40 levels...
To make a square or a triangle  waveform, you must use 2 groups.



Adjust the name of  the waveform > OSC MED SAW 10

In fact, the real name is:
C:\KXDATAS\Kx-Modulad-Datas\osc-med\osc-saw-10.kxw

You can use the Display button to verify if the file exists!

THE NUMBER 0 TO 9 ARE PROTECTED
FOR THE PRESETS.


IF YOU MODIFY THOSE WAVEFORMS, OF COURSE,

YOU MODIFY THE SOUND OF THE PRESETS!

PLEASE BEFORE, YOU SHOULD DUPLICATE
THE KX-MODULAD-DATAS REPERTORY!





Save the waveform parameters into the " Data.kxw " file
> push on the "Save Datas" button

Render the waveform
> push on the "Render" button

Display the waveform
> push on the "Display" button



The level recommended is 5 volts for the oscillators or the lfos.
If the level is greater than 10 volt, the waveform colour is inverted.

To listen the waveform, you must select the waveform with an oscillator of the modular panel and play a note...
The Display button reloads all  waveforms...

"MED" is the default quality.
You can change the quality of the oscillators or the lfos :
on the modular panel choose "Disp Wf" to see the current waveforms
and change the quality.

Low is useful to listen quickly the result but this mode is not recommended for the presets which use the sync between the two oscillators. And you should use the same quality if you use the sync between the two oscillators...



The "F1" and the "F2"parameters create an notch filter equivalent but these one affect all harmonic levels  in a repetitive way. This is an experimental feature...

The parameter "Low freq nbr harmonics" controls the number of harmonics of the lowest notes and reduce theirs brightness.

Eg: 0 volts = 13.75 hz

23200 / 13.75= 1687 harmonics

-1 octave = 27.5 hz

23200 / 27.5 hz= 843 harmonics


Modular synthesizer:



Modularity:
This plugin is a true MODULAR synthesizer!
The principal modulation sources, Velocity, Lfo1, Lfo2, Lfo1 Dir, Lfo2 Dir, Noise, Rnd, SH, EG1, EG2, EG3, EG4, Kbd, Vco
are independent and pre-connected with value range adapted to the destination.







The choice can vary according to the destination module:
Vco1 (freq, phase, 1-2, Width), Vco2(), Vcf1(cutoff), Vcf2(), Ring mod, Vca,
EG Trigger, Mixer (Noise, Vco1 1-2, Vco2 1-2, Ring, Vco1 Width, Vco2 width).

Envelope Generators 1-2-3:
The envelope generators can be synchronized by various sources, Kbd, Lfo1, Lfo2, S1, S2, S1-S2, these sources can be synchronized with the Host tempo.



You can select the trigger source and adjust the trigger level.
A curve for each EG segment is available (A, D, R).
The velocity and the keyboard can also control the ADR segments.

Lfos 1-2 :
Lfo1, Lfo2 are the lfo outputs with the level controlled by an ASR
Envelope Generator (EG).



A>Lev is the attack time of these EG which control the Lfo level.
It's an equivalent of the classic Lfo Delay Time.

The S segment of the ASR EG does not appear on the Gui because it is always
to the max and the R segment (Release Time) is linked to the value of the Vca Release.

When the Hold switch is on, the Release segment is off, this is useful to control an EG
with a lfo signal.

A>1-2 controls the balance between the Rate1 and the Rate2 by the A segment of the EG and A>Vel is the same control but with the velocity.

Lfo1 Dir, Lfo2 Dir are direct outputs.
The envelope generators do not control the level of these outputs.


Oscillators 1-2:
Each oscillator has 3 waveforms: WF1, WF2, SUB.

Waveform number, Tri, Saw, Sqr:
0 = Gibbs
1 = Att Gibbs
2 = no Gibbs

Sine exits only with the 0 number.
Only the "MED" waveforms are provided with this plugin,
Hi and Low quality must be calculate, see the waveform presets, 100 to 128.



The octave range of the Sub is : 0 to -3 (first list of choice above the Sub Det).
The Sub can be detuned but its detune value cannot be greater than the principal waveforms value
eg: if the octave range value is 0, the detune value is limited to 0.000 volt.

1-2
is the mix between the WF1 and the WF2.
Sub is the mix between the Sub and the 1-2 waveforms.



The main output (WF1+WF2+SUB) is called 1-2.
eg: the Vco1 main output is called Vco1 1-2 .
The second output is called Width.
eg: the Vco1 second output is called Vco1 Width .

Why ?

In a classic oscillator, we obtain a PW signal with a mix of a saw waveform
and a saw waveform inverted.

If you use a saw waveform with the WF1 and a saw waveform with the WF2,
the Width output will be a perfect PW signal and you could adjust the width
with the Width parameter.
In fact, the WF2 signal is inverted and added to the WF1 signal...
and the " Width " parameter is an adjustment of the WF2 phase.



The  " Phase " parameter is a global phase adjustment, it controls the phase of the two waveforms (1-2).

The Sub phase is not affected by these two parameters, "Phase" and " Width"!


Mixer
It has 6 sources: Noise, Vco1 1-2, Vco2 1-2, Ring, Vco1 Width, Vco2 width
and three destinations: Vcf1, Vcf2, Vca.
Each source can modulate the three destinations !



The Noise has an EQ.
You can mute the vca output with the vca switch but this output is always active in the Fx section.



All mixer voices can be modulated by the Envelope Generators and the Lfos.

Midi2:
You can use a different midi channel to control a monophonic envelope generator (EG4) or to control the Gate, Cv or Velocity.



eg: to create a preset with a monophonic Vcf  and a polyphonic Vca.

More...
The Rnd function replaces the KXMOD system, a random value is sent when a note is played. This is easy to use.


Enjoy (more 400 parameters! ), keep your brain safe.
Xavier Kalensky
06/08/2007


General Features:

Name: KX-MODULAD

Author: Xavier Kalensky

Marque: KX77FREE

OS: All Windows

State: Release

Version: 1.00, 08-2007

Minimum requirements:
Pentium 1.8 in poly mode
SSE or NO SSE processor

Built with Synthedit 1.015

This plugin is powered by the KX77FREE modules (specific DLL ,*.SEM):
oscillator, lfo, filter (LP KX), EG, distortion, etc...

Additional feature :
KxWaveTracer.exe

Poly 6 voices

Description:
Analogic Modular Polyphonic Synthesizer
with Additive Synthesis WaveTracer

Extended GUI with 2 panels

WaveTracer :
Full parameters controls to make Additive Waveforms with  no aliasing.
Easy to use and create  analogic waveforms
Level and Phase parameters
up to 1680 harmonics for the bass frequencies
Full 32 bit High Quality lookup table
Gibbs function and more
Same quality sound for all  clock frequencies: 44.1 khz to 192 khz
13.75 hz to 23200 hz or more (harmonic frequency limit)
independent WaveTracer engine : KxWaveTracer.exe

Modular Synthesizer:
All modulations are pre-connected, no cables on the GUI
3 Polyphonic EGs with for each segment: curves, velocity , Kbd
1 Monophonic EG
with for each segment: curves, velocity , Kbd
Multiple trigger sources and sync for the EGs and the LFOs
2 Oscillators with 2 waveforms and 2 outputs,
complex phase modulation and sync.
2 independent Sub Oscillators
2 Monophonic LFOs with 2 Rates and ASR EG
2 Mulitmode VCF
Mixer with 6 sources:
Noise, Vco1 1-2, Vco 2 1-2, Ring, Vco1 Width, Vco2 Width
and 3 outputs: VCF1, VCF2, VCA
Each mixer voice can be modulated by different sources
Noise Generator
Sample&Hold
Ring Modulator
6 host sync clocks
2 Midi inputs
1 Distortion
1 Delay with
sync, multimode filter and modulation oscillator with sync
Full NRPN implementation : More 400 parameters

and nice presets!