This shows you the differences between two versions of the page.
| Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
| vividshaper_reference_manual [2025/01/09 20:30] – 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(short version name) | ||
| gatetimeoff | gatetimeoff | ||
| + | goff -- Same as gatetimeoff (short version name) | ||
| timeon | timeon | ||
| gtimeon | gtimeon | ||
| Line 85: | Line 87: | ||
| active | active | ||
| midigenerator | midigenerator | ||
| + | legato | ||
| + | portamento[x] | ||
| + | portamentotype -- 0 for linear, 1 for exponential | ||
| - | -- Coming soon in a future version (v1.4 probably) | + | -- Coming soon in a future version (v1.5 probably) |
| sample[x] | sample[x] | ||
| loopstart[x] | loopstart[x] | ||
| Line 93: | Line 98: | ||
| svol[x] | svol[x] | ||
| - | -- Delay output information | + | -- Delay output information |
| delay1[x] | delay1[x] | ||
| | | ||
| Line 104: | 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 135: | 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 153: | Line 182: | ||
| wave[x] = VSRect(wave[x]) -- Input is a wave array | wave[x] = VSRect(wave[x]) -- Input is a wave array | ||
| - | -- Helper functions for delays | + | -- Helper functions for delays |
| VSPingPong(feedback, | VSPingPong(feedback, | ||
| 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. | + | -- 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] = VSADSRE(attack, | + | vol[x] = VSADSR(attack, |
| + | vol[x] = VSADSRE(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 | ||