User Tools

Site Tools


vividshaper_reference_manual

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
vividshaper_reference_manual [2025/01/09 20:30] – larsvividshaper_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     -- Time in seconds for how long the key was pressed. gatetimeon     -- Time in seconds for how long the key was pressed.
 +gon            -- Same as gatetimeon(short version name)
 gatetimeoff    -- Time in seconds since the key was released. gatetimeoff    -- Time in seconds since the key was released.
 +goff           -- Same as gatetimeoff (short version name)
 timeon         -- The number of seconds since the generator was turned on. Resets after parse. timeon         -- The number of seconds since the generator was turned on. Resets after parse.
 gtimeon        -- Global time. The number of seconds since the first generator was turned on. Resets after parse. gtimeon        -- Global time. The number of seconds since the first generator was turned on. Resets after parse.
Line 85: Line 87:
 active         -- A value true/false. A false value turns off the generator until it is turned on again. active         -- A value true/false. A false value turns off the generator until it is turned on again.
 midigenerator  -- A value true/false. A true value means only one generator will be running and it cannot turn off. midigenerator  -- A value true/false. A true value means only one generator will be running and it cannot turn off.
 +legato         -- A value true/false. Turns on legato effect (currently only for monophonic, 1 generator)
 +portamento[x]  -- Portamento for oscillator x (between 0 - 5, seconds per seminote where 0 = off)
 +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]      -- Set oscillator x to a specific sample, e.g. sample[1] = "alien" sample[x]      -- Set oscillator x to a specific sample, e.g. sample[1] = "alien"
 loopstart[x]   -- Set loop start point as value between 0 - 1 loopstart[x]   -- Set loop start point as value between 0 - 1
Line 93: Line 98:
 svol[x]        -- Volume output for sample playback svol[x]        -- Volume output for sample playback
  
--- Delay output information (upcoming feature in v1.3)+-- Delay output information
 delay1[x]      -- Delay1 parameters: delay1[x]      -- Delay1 parameters:
                --   delay1[1] = own feedback (value from 0 - 1)                --   delay1[1] = own feedback (value from 0 - 1)
Line 104: Line 109:
 d1vol[x]       -- How much of the output from oscillator x that should be routed to delay1 bus d1vol[x]       -- How much of the output from oscillator x that should be routed to delay1 bus
 d2vol[x]       -- How much of the output from oscillator x that should be routed to delay2 bus d2vol[x]       -- How much of the output from oscillator x that should be routed to delay2 bus
-ovol[x]        -- How much of oscillator x that should be sent to main output (1 = default) + 
-mvol           -- Amplify main output only (1 = default)+-- Reverb output information 
 +reverb1[x]     -- Reverb1 parameters: 
 +               --   reverb1[1] = wet (value from 0 - 1, where 0 = dry) 
 +               --   reverb1[2] = space (value from 0 - 1) 
 +               --   reverb1[3] = damp (value from 0 - 1, where lower values = less damp) 
 +               --   reverb1[4] = reverb level (volume of reverb tail) 
 +               --   reverb1[5] = mixMode (0 or 1), 0 = insert, 1 = send) 
 +               --   reverb1[6] = tailLatch (0 or 1), 0 = no, 1 = yes  
 +               --   reverb1[7] = keep (0 - 1), how much of original stereo signal to keep 
 +               --   reverb1[8] = cross (0 - 1), how much stereo signals should cross 
 +               --   reverb1[9] = stereo (0 - 1), the final output from reverb, 0 = mono, 1 = stereo 
 +reverb2[x]     -- Reverb2 parameters 
 +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          -- Amplification on main route 
 +avol[x]        -- How much of oscillator x that should be sent to alternative output 
 +apanning[x]    -- Panning per oscillator on the alternative route 
 +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,wave2) -- Multiply element-wise wave1 with wave2 wave[x] = VSMul(wave1,wave2) -- Multiply element-wise wave1 with wave2
 wave[x] = VSMul(wave1,1.5)   -- Multiply element-wise wave1 with 1.5 wave[x] = VSMul(wave1,1.5)   -- Multiply element-wise wave1 with 1.5
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 (next version)+-- Helper functions for delays
 VSPingPong(feedback,time)     -- This function sets the delay variables needed for ping pong delay. VSPingPong(feedback,time)     -- This function sets the delay variables needed for ping pong delay.
 VSStereoDelay(feedback,time)  -- This function sets the delay variables needed for a stereo delay. VSStereoDelay(feedback,time)  -- This function sets the delay variables needed for a stereo delay.
 VSMonoDelay(feedback,time)    -- This function sets the delay variables needed for a mono delay. VSMonoDelay(feedback,time)    -- This function sets the delay variables needed for a mono delay.
- 
  
  
 -- 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,decay,sustain,release,initlevel,timeOn,timeOff) -- initlevel is initial volume +vol[x] = VSADSR(attack,decay,sustain,release,level,timeOn,timeOff) -- level is initial volume 
-vol[x] = VSADSRE(attack,decay,sustain,release,initlevel,timeOn,timeOff) -- Exponential release+vol[x] = VSADSR(attack,decay,sustain,release,timeOn,timeOff) -- Shorter version without init level 
 +vol[x] = VSADSRE(attack,decay,sustain,release,level,timeOn,timeOff) -- Exponential release 
 +vol[x] = VSADSR(attack,decay,sustain,release,timeOn,timeOff) -- Shorter version without init level
  
 +-- Attack:
 +vol[x] = VSAttack(attack,time)
 +
 +-- Release:
 +vol[x] = VSRelease(release,time)
  
 -- 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,resonance)  -- Helper function to set the quadfilter values
 +biquadcoeff = VSLowpass(cutoffFreq,resonance,notein)  -- Helper function to set the quadfilter values
 +biquadcoeff = VSBandpass(cutoffFreq,resonance) -- Helper function to set the quadfilter values
 +biquadcoeff = VSBandpass(cutoffFreq,resonance,notein) -- Helper function to set the quadfilter values
 +biquadcoeff = VSHighpass(cutoffFreq,resonance) -- Helper function to set the quadfilter values
 +biquadcoeff = VSHighpass(cutoffFreq,resonance,notein) -- Helper function to set the quadfilter values
 +
 -- A quad filter consists of 5 coefficents: b0, b1, b2, a1, a2. The 'biquadcoeff' is an array -- A quad filter consists of 5 coefficents: b0, b1, b2, a1, a2. The 'biquadcoeff' is an array
--- consisting of these 5 coefficients. The functions VSLowpass, VSBandpass, and VSHighpass will+-- consisting of these 5 coefficients per filter type. The first five coefficients are for the 
 +-- 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],biquadcoeff)               -- Apply filter on wave using quadfilter settings 
 + 
 +-- 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, both the cutoff -- set the coefficients given the values. When setting these filter coefficients, both the cutoff
 -- 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
vividshaper_reference_manual.1736454629.txt.gz · Last modified: (external edit)