This shows you the differences between two versions of the page.
| Both sides previous revisionPrevious revision | |||
| vividshaper_reference_manual [2026/09/09 16:44] – 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 120: | Line 120: | ||
| | | ||
| | | ||
| + | | ||
| reverb2[x] | reverb2[x] | ||
| rrvol -- Amplification of reberb2 output | rrvol -- Amplification of reberb2 output | ||
| Line 185: | 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. | ||
| Line 196: | Line 197: | ||
| 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 | ||