I really wanted to expand the synth voice I used in MIDI Arp into a polysynth. That synth was already inspired by the Juno (in particular, a video DivKid did about the new Juno-inspired Soundforce dual ADSR module–btw, if anyone from Soundforce is reading, I’d be happy to do a much worse demo than DivKid’s; just putting that out there–and the logarithmic curve of its envelopes; to achieve a similar curve, send an ADSR through a CV filter and use a value module to adjust the attack of the ADSR and the time constant of the CV filter in unison). So, I just sort of… leaned into that.
This is not a clone of that synth, but I think, particularly for building dreamy pads, it draws from a similar sonic space. The architecture is relatively simple: one square wave oscillator (with pulsewidth modulation), a VCA and a low-pass filter. One triangle LFO (global; assignable to pitch and/or PWM), one envelope (per voice; assignable to PWM, the filter and/or the amp).
MIDI is defaulted to channel 1; note priority newest. The MIDI note in module is on the second page (along with the output module); adjust as fits your setup.
I wanted to do six voices, but the CPU wouldn’t oblige for the other features I thought were really important to sound-shaping. I might have snuck a fifth voice in, but I felt the stereo chorus was an important element of the sound. C’est la vie. It sounds good (in my opinion).
It excels at dreamy pads, but it also does all right leads and basses (especially with the amp envelope off). No arp here, but then again, MIDI Arp has a very similar voice, so… try that out.
General note: Most of the pushbuttons on the front page kind of work in reverse (with the exception of the Amp envelope button); when they are LIT UP, that means that parameter is OFF (this a result of the ORing logic employed to conserve CPU)
LFO rate — determines the rate of the LFO
LFO fade-in time — determines how long the LFO takes to reach full range; triggered by the first note played (the release time, or fade-out, of the LFO is determined by the release time of the envelope)
LFO pitch depth — determines the depth of the LFO as applied to the oscillator frequency/pitch (the LFO is bipolar when applied to pitch)
Glide — sets the portamento between notes
Drift — introduces random fluttering to the oscillator and filter frequency, a bit like noise and distortion, it can help the synth feel a bit more lively
Pulsewidth — sets the base pulsewidth of the oscillator
PWM depth — determines the depth or intensity of the PWM (always positively applied to the base pulsewidth and regulated by that parameter)
PWM Env Off — this determines whether the envelope is applied to PWM (lit up means off; the envelope is not applied)
PWM LFO Off — this determines whether the LFO is applied to PWM (lit up means off; the LFO is not applied)
Both LFO and Env can be combined and applied to PWM.
Filter frequency — base frequency of the filter before modulation
Filter resonance — resonance of the filter
Filter keytrack — determines how much the filter tracks the oscillator (or keyboard notes); 0 = 0%, 1 = 100% (slightly different from filter keytracking in MIDI Arp)
… Um. ADSR = set the parameters of the envelope
Filter controls extended (below ADSR, red)
Filter env depth — bipolar control that allows the envelope to be applied positively or negatively to the filter
Amp controls (orange)
Amp envelope — Unlike the other pushbuttons, when this button is lit up, the envelope is applied to the amp, making it an ON state
Amp velocity off — And we return to the backward controls immediately below it… velocity can be applied to the amp. Interestingly, velocity can be applied whether or not the envelope is applied to the amp, allowing for velocity-sensitive gates.
(I have a pretty light touch on a keyboard, so I amplified the connection of the velocity output to the amp; if you would like to adjust this, select the velocity output of each voice and follow it to the appropriate multiplier on that voice’s page)
This is the full chorus module. I placed it on the front page, because it made dialing in the frequency of the chorus rate easier.
If you are interested in the iconic chorus sounds of the Juno, which inspired this:
I — .5 Hz
II — .8 Hz
I+II — 1 Hz
(Those rates are based on the Juno 60; the rates for the Juno 6 were slightly slower.)
Additionally, the tilt eq of the chorus can mildly compensate for the lack of a high-pass filter. If I find more CPU to play with…. well, I’ll add more voices in. But if there is still CPU to play with after that, I would put in a HPF.
Revision notes and preset list:
I found some issues with audio and CPU clipping using Juniper, so I decided to do a revision.
I ended up removing the glide control, as I rarely used it but it cost quite a lot in CPU; this addressed the CPU clipping.
I also adjusted some of the internal routing levels; resonant filters were causing the chorus to clip (and not in a good way). Audio clipping still happen at -really extreme- resonant levels; the SV filter’s resonance is… hard to completely compensate for.
Instead of just releasing the revision, I decided to release… 10 revisions. Ha, sort of. When you download the patch, you will find a .zip file. Inside the zipped folder are 10 patches named ###_zoia_juniper.bin (000-009). Each of these correspond to different presets. Watch the video and see which one you want to load into your ZOIA (or load all of them).
000 is based on the default settings of the original patch, a good “starting point” pad sound
001 is a detuned pad, with the chorus mix set to 100% (vibrato)
002 uses a more vocal, resonant filter sound
003 features a (relatively) sharp attack, with a soft finish; its sound depends a lot on when you release the keys
004 is a tuned percussion patch, like a marimba
005 is a slowly detuning pad that sounds like a synth run through a VCR
006 uses a low audio rate LFO to create a buzzy FM sound, the negative envelope sweep on the filter sounds great for basses or leads
007 features a negative filter sweep to produce a percussive attack, then a rising tail
008 a bright, punchy patch, kept in check with the keytracking setting
009 is a soft, dreamy pad sound I love using as a “foundation” to build off of