You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
<p>A wavetable, in the simplest use of the term, is a list of samples for one period of a wave. In practice, we store an array of 600 numbers for each waveform. The more complicated use of the term "wavetable" synthesis refers to interpolating from one table to another over time. Interpolating between these tables made it possible for digital synthesizers of the 1980s to generate complex and evolving sounds using very little processing power and memory.</p>
26
+
<p>Wavetable synthesis refers to the technique of interpolating from one array of samples, a "table", to another over time. Interpolating between arrays in this manner made it possible for digital synthesizers of the 1980s to generate complex and evolving sounds using very little processing power and memory.</p>
27
27
<imgsrc={interpolatedWaves}/>
28
-
<p>We precompute all the interpolated values from one table to another into a new, and potentially much longer, waveform. The "cycles" slider controls the length of the interpolated waveform, this is how long it will take for the oscillator to smoothly change from one waveform to another. The plus, minus, divide, and multiply buttons control the slope of interpolation. Since we're not interpolating in real-time the loop time of each oscillator will change depending on pitch. We would like to find a way to do this without it being dependent on pitch, if you happen to know please contact us!
29
-
</p>
30
-
<h2className='text-center'>By No Means Perfect</h2>
31
-
<p>To add texture in a few places we add a bit of randomness. On each note, the pitch is altered randomly between 0 and 6 cents per oscillator. Also, our square LFO uses a custom square waveform sample versus the preset square available in the web audio api, which does some very subtle ramping up and down and has some wobble to it. Our filter is actually using 10 filters in sequence, we figured it's a computer, so why not use 10 filters?</p>
28
+
<p>In practice, this synthesizer stores 600 numbers for each "table" in an array. The interpolated values are precomputed into a new, and potentially much longer, waveform. The "cycles" slider controls the length of the interpolated waveform. This is how long it will take for the oscillator to smoothly change from one wave shape to another. The plus, minus, divide, and multiply buttons control the slope of interpolation.</p>
29
+
<h2className='text-center'>Added Texture</h2>
30
+
<p>In addition to the common synthesizer features shown in the UI, we also use various techniques behind the scenes to add color and depth to the sound. On each note played, the pitch is altered randomly between 0 and 6 cents per oscillator. The square LFO uses a custom square waveform sample versus the preset square available in the web audio api, which does some very subtle ramping up and down and has some wobble to it. The filter is actually using 10 filters in sequence, we figured it's a computer, so why not use 10 filters?</p>
0 commit comments