Walsh Transform Resynthesis Synth
This ensemble implements resynthesis of either static 32-element waveforms or a dynamic signal provided by a sampler module. Resynthesis is done by use of a Walsh function (or Hadamard function) basis function expansion.
32 Walsh functions are used
(actually the 1st function, which is constant, is ignored, so really only 31 functions are used).
32 element sampled waveforms from either a sampler module or a wavetable are transformed using the Walsh transform to give 32 coefficients. The coefficients are then optionally modified by applying a spectral tilt, which attenuates either the low "sequency" coefficients, or the high sequency coefficients. The Walsh functions can be divided into two sets, each 90 degrees out of phase from each other. The relative level of these components can be adjusted, which I call the phase adjustment. Finally the order of the coefficients can be reversed, where the highest sequency component is swapped with the lowest, the next highest with the next lowest and so forth. This provides a scrambling of the spectrum and is a good way to get new sounds.
The processed walsh transform coefficients are multipled bu the 32 outputs of a Walsh function generator and summed to provide the re-synthesized waveform. This waveform is then passed through a more or less standard synthesizer, with a 4th order lowpass filter, ADSR envelopes on the filter cutoff and amplitude, and an AR envelope on the pitch.
There are two amplitude envelopes. The first envelope is triggered by the MIDI note gate, while the triggering of the second envelope is delayed with respect to the first.
There are 3 LFOs which can be combined, through a 3-way morph, to provide modulation signals to the spectral tilt, phase, and filter cutoff.
If your computer can handle it you should use the highest possible sampling rate, to reduce the level of aliasing noise. Of course, this is a rather digital sounding ensemble and some people might think that a little more aliasing noise makes it sound better! You can turn off the scope to save a little bit on the CPU usage. Also, if you are using the sampler, keep the sampler update rate low for low CPU usage. Also, if you are using the sampler you can probably get away with using a low system sampling rate, since the level of aliasing noise in the sampler is quite high and will swamp any aliasing caused by other parts of the ensemble at low sampling rates.