User Tools

Site Tools


getting_started_vividshaper

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
getting_started_vividshaper [2023/07/06 23:01] – [Historical overview] larsgetting_started_vividshaper [2023/11/12 19:46] (current) lars
Line 25: Line 25:
 Today, there are many software synthesizers that have adapted the concept of wavetable synthesis, including Native Instrument's Massive, Reason Studios Europa, and Serum from xfer records. However, they are all built around the idea of predefined wavetables that you can manipulate using various effects. Today, there are many software synthesizers that have adapted the concept of wavetable synthesis, including Native Instrument's Massive, Reason Studios Europa, and Serum from xfer records. However, they are all built around the idea of predefined wavetables that you can manipulate using various effects.
  
-VividShaper is quite different. It is a wavetable AUv3 plugin synthesizer for macOS and iOS that borrows the idea from the early wavetable synthesizers to have only 128 samples per wave, but instead of having a fixed number of waves to choose from, VividShaper lets you program and modify your waves over time using the built in Lua programming language.+VividShaper is quite different. It is a wavetable AUv3 plugin synthesizer for macOS and iOS that borrows the idea from the early wavetable synthesizers that had only 128 samples per wave and with a number of waves to cycle through. However, instead of having only a fixed number of waves to choose from, VividShaper lets you program and modify your waves over time using the built in Lua programming language.
  
 When you start the plugin for the first time, you will see a window with the Lua coding editor on the left side and a waves view on the right side. When you start the plugin for the first time, you will see a window with the Lua coding editor on the left side and a waves view on the right side.
Line 56: Line 56:
 Each generator has eight oscillators, where each oscillator plays one wave. A wave consists of 128 samples and the wave[] array consists of eight such wave arrays, one for each oscillator. In other words, wave[1] corresponds to the wave of the first oscillator, wave[2] corresponds to the wave of the second oscillator, and so on. Each generator has eight oscillators, where each oscillator plays one wave. A wave consists of 128 samples and the wave[] array consists of eight such wave arrays, one for each oscillator. In other words, wave[1] corresponds to the wave of the first oscillator, wave[2] corresponds to the wave of the second oscillator, and so on.
  
-On the second row, we will call the built in function VSTriangle(frequency,phase). This function will create a new wave of 128 samples (array) and store it to the first oscillator. The frequency is set to 1 Hz, meaning it will fill the 128 samples with one cycle of the triangle wave. If we change this to e.g. 2 Hz, we will fill the wave with 2 repeating triangle waves. The phase is given in degrees (0-360) and is here set to zero.+On the second row, we will call the built in function VSTriangle(frequency,phase). This function will create a new wave of 128 samples (array) and store it to the first oscillator. The frequency is set to 1 Hz, meaning it will fill the 128 samples with one cycle of the triangle wave. If we change this to e.g. 2 Hz, we will fill the wave with 2 repeating triangle waves.  
 + 
 +The term 'frequency' in this context refers to the number of cycles of the wave that fit into the 128-sample, not the pitch of the note that will be played. For example: 
 + 
 + 
 + 
 +   * A frequency of 1 Hz means that the wave will be filled with exactly one complete cycle of the triangle wave. 
 +   * Increasing the frequency to 2 Hz results in two complete cycles within the sample 128-sample space. 
 +   * Higher frequencies will pack more cycles of the wave into the sample. 
 +   * A frequency of 1.5 does not mean it will create 1.5 higher frequency at playback, but rather that the waveform will not complete two cycles, ending at a point which may give interesting timbre. 
 + 
 +The phase is given in degrees (0-360) and is here set to zero. The 'phase' of 0 means the wave starts at its beginning, while adjusting the phase shifts the start point of the waveform cycle, which can create subtle changes int he sound when combined with other waves. 
 + 
 +It is important to grasp these concepts. VSSin, VSSaw, VSTriangle all works the same, with one argument for frequency and one for phase. VSSquare has an additional argument for the width. Here is some additional examples: 
 + 
 +   * wave[1] = VSTriangle(2,0) -- This creates a wave form with two triangle waves within the 128 sample space 
 +   * wave[1] = VSSaw(1,45) -- This create a saw wave form with one saw wave, phase shifted 45 degrees
  
 On the third row, we set the output volume using the Attack, Decay, Sustain, Release (ADSR) envelope (VSADSRE). This is then multiplied by the velocity of the note. The E stands for Exponential release. If you don't want exponential release but a linear release, you can use VSADSR instead. They take the same arguments. The arguments are as follows: On the third row, we set the output volume using the Attack, Decay, Sustain, Release (ADSR) envelope (VSADSRE). This is then multiplied by the velocity of the note. The E stands for Exponential release. If you don't want exponential release but a linear release, you can use VSADSR instead. They take the same arguments. The arguments are as follows:
getting_started_vividshaper.1688677293.txt.gz · Last modified: 2023/07/06 23:01 by lars