BASSO is a monophonic synth for Max for Live designed to deliver fat basslines and leads. It features multiple oscillators, two stereo filters, saturation, hard-sync, pwm, and feedback delay.
2 sections of oscillators each with:
Section 1 has two sine wave oscillators, and switchable waveforms on the master, detune, and sub oscillators.
Section 2 is continuously variable from triangle to rectangle; with PWM, you can turn the triangle into a saw. Section 2’s oscillators are all hard-synced; the tuning of the hard-sync is controlled by an ADSR envelope with key following and velocity sensitivity. Try big slow sweeps for lush pads, and fast sweeps for punchy attacks. The legato mode comes in handy on slow sounds so that the sweep is not resetting with each attack.
The stereo pink noise generator is useful for thickening out PWM sounds.
The filter section is similar to the Access Virus filter section. BASSO features two continuously variable (lowpass > bandpass > highpass) filters. There is also a saturation stage between the two filters, as well as a filter blend feature. This allows you to choose a blend of the two filters even though they are routed serially.
BASSO’s filters use an over-sampled state-variable filter algorithm (svf~) as well as two onepole~ filters, so theyre much more reactive for sweeps than biquad~, the filter that is used in a lot of the synths on MaxForLive.com.
Both filters can switch between 12 and 24 dB and Filter 2’s cutoff may be linked to filter 1 (± halfsteps) or may be set independently. Additionally, a tone control is available for adjusting the cutoff frequency of the onepole filters relative to the main cutoff frequency.
BASSO features variable portamento. With variable portamento, you can use a short portamento time (e.g. 3ms) on close notes (within an octave of each other). When you play larger intervals, the time is scaled proportional to the distance, so you can have long glisses on big leaps without losing temporal precision on close notes. Think of it like an über-long range pitchwheel. Theres also a curve parameter, so you also control the severity of the effect.
BASSO features a PWM LFO. This LFO can be applied to any of the triangle or square wave oscillators in oscillator sections 1 and 2. It also has three sync modes for controlling the reset of the LFO.
BASSO has a triangle LFO for producing vibrato. It has a fade in time, and also has three sync modes, similar to the PWM LFO.
BASSO’s stereo delay helps to fatten things out. Its timing can be set in milliseconds or beat-synced units including triplets and dotted values. Beat-synced values can also be scaled with a percentage, so you can create delay times like 95% of a dotted eighth note to make delays that decay away from the beat. It also has controls for feedback, crossfeed, and tone control.
BASSO makes use of velocity, key-tracking, and legato to alter the way sounds are played, and you can easily customize how these values are applied to your sound. Perhaps you dont want that long filter sweep to happen on every during a long legato melody? Turn on legato for the filter envelope, problem solved. Sound too bright on high notes? Turn down key-following on the filter.
The code is a bit messy, but there are useful bits in there for building a synth, such as code for key following, feedback delay, and downsampling.