This shows you the differences between two versions of the page.
| Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
| vividshaper_reference_manual [2025/08/23 15:25] – lars | vividshaper_reference_manual [2026/09/09 17:11] (current) – lars | ||
|---|---|---|---|
| Line 61: | Line 61: | ||
| gate -- Either 1 or 0 depending on if gate is on or off. | gate -- Either 1 or 0 depending on if gate is on or off. | ||
| gatetimeon | gatetimeon | ||
| - | gon -- Same as gatetimeon | + | gon -- Same as gatetimeon(short version name) |
| gatetimeoff | gatetimeoff | ||
| - | goff -- Same as gatetimeoff | + | goff -- Same as gatetimeoff (short version name) |
| timeon | timeon | ||
| gtimeon | gtimeon | ||
| Line 88: | Line 88: | ||
| midigenerator | midigenerator | ||
| legato | legato | ||
| - | portamento[x] | + | portamento[x] |
| - | portamentotype -- 0 for linear, 1 for exponential, coming in v1.4 | + | portamentotype -- 0 for linear, 1 for exponential |
| -- Coming soon in a future version (v1.5 probably) | -- Coming soon in a future version (v1.5 probably) | ||
| Line 110: | Line 109: | ||
| d1vol[x] | d1vol[x] | ||
| d2vol[x] | d2vol[x] | ||
| - | ovol[x] -- How much of oscillator x that should be sent to main output (1 = default) | + | |
| - | mvol -- Amplify | + | -- Reverb output information |
| + | reverb1[x] | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | reverb2[x] | ||
| + | rrvol -- Amplification of reberb2 output | ||
| + | |||
| + | -- Other routes of sound | ||
| + | mvol[x] -- How much of oscillator x that should be sent to main output (1 = default) | ||
| + | mrvol | ||
| + | avol[x] | ||
| + | apanning[x] | ||
| + | arvol -- Amplification on alternative route | ||
| + | |||
| -- Views settings | -- Views settings | ||
| Line 141: | Line 161: | ||
| -- Wave math operators - arguments can be either arrays or scalar factors | -- Wave math operators - arguments can be either arrays or scalar factors | ||
| + | -- These are obsolete in v2.0, but will remain for compatibility reasons. | ||
| + | -- In v2.0, you can instead do: wave[x] = wave1*wave2 or wave[x]=1.5*wave1+wave2 | ||
| + | -- Version 2.0 supports: == <= >= < > + - * / % where comparators return 0 or 1 | ||
| wave[x] = VSMul(wave1, | wave[x] = VSMul(wave1, | ||
| wave[x] = VSMul(wave1, | wave[x] = VSMul(wave1, | ||
| Line 163: | Line 186: | ||
| VSStereoDelay(feedback, | VSStereoDelay(feedback, | ||
| VSMonoDelay(feedback, | VSMonoDelay(feedback, | ||
| - | |||
| -- Envelopes | -- Envelopes | ||
| + | -- ADSR: | ||
| -- The level is the initial volume. Normally, it would start at zero, but could also be initiated to | -- The level is the initial volume. Normally, it would start at zero, but could also be initiated to | ||
| -- start higher. You can also call the function without level as argument (v1.4). It will then be zero. | -- start higher. You can also call the function without level as argument (v1.4). It will then be zero. | ||
| vol[x] = VSADSR(attack, | vol[x] = VSADSR(attack, | ||
| - | vol[x] = VSADSR(attack, | + | vol[x] = VSADSR(attack, |
| vol[x] = VSADSRE(attack, | vol[x] = VSADSRE(attack, | ||
| - | vol[x] = VSADSR(attack, | + | vol[x] = VSADSR(attack, |
| + | |||
| + | -- Attack: | ||
| + | vol[x] = VSAttack(attack, | ||
| + | |||
| + | -- Release: | ||
| + | vol[x] = VSRelease(release, | ||
| -- Filters (x = oscillator) | -- Filters (x = oscillator) | ||
| + | -- There are two different filters in VividShaper. One that you apply on the actual waveform and | ||
| + | -- one that you apply as an insert after the output of the oscillator. Both are biquad filters. | ||
| + | -- Common for both filters is that you need to create a filter array containing the biquad values. | ||
| + | -- You don't need to set the values yourself. Instead, this array is created using three different | ||
| + | -- functions, depending on what kind of filter you want. The notein argument is optional from v2.0, | ||
| + | -- but can be used to let the cutoff frequency follow the note. | ||
| + | |||
| + | biquadcoeff = VSLowpass(cutoffFreq, | ||
| + | biquadcoeff = VSLowpass(cutoffFreq, | ||
| + | biquadcoeff = VSBandpass(cutoffFreq, | ||
| + | biquadcoeff = VSBandpass(cutoffFreq, | ||
| + | biquadcoeff = VSHighpass(cutoffFreq, | ||
| + | biquadcoeff = VSHighpass(cutoffFreq, | ||
| + | |||
| -- A quad filter consists of 5 coefficents: | -- A quad filter consists of 5 coefficents: | ||
| - | -- consisting of these 5 coefficients. The functions VSLowpass, VSBandpass, and VSHighpass will | + | -- consisting of these 5 coefficients |
| + | -- waveform filter. The next five coefficients are for the insert filter. The last value is | ||
| + | -- turning on or off the insert filter. You can manipulate these values, but it is complicated and | ||
| + | -- unnecessary since we have the helper functions above. | ||
| + | |||
| + | -- Waveform filtering (uses the first five biquad coefficents): | ||
| + | wave[x] = VSBiquad(wave[x], | ||
| + | |||
| + | -- Insert filter (uses the last five biquad coefficients: | ||
| + | afilter[x] = biquadcoeff | ||
| + | |||
| + | -- | ||
| + | -- Waveform filtering: | ||
| + | -- The functions | ||
| + | The functions VSLowpass, VSBandpass, and VSHighpass will | ||
| -- set the coefficients given the values. When setting these filter coefficients, | -- set the coefficients given the values. When setting these filter coefficients, | ||
| -- frequency and the note value are considered. This is because the cutoff frequency is typically | -- frequency and the note value are considered. This is because the cutoff frequency is typically | ||