Firmware 1.08–and its less stable cousin 1.07–allow copying pages between patches, which is a huge development and a radical change to the process of creating patches. With that procedural change in mind, I wrote this patch to include a lot of useful utilities; many of them are blocks I regularly employ. Optimistically/presciently, I called it “Utility pages 1” as I hope to make this a semi-regular occurrence.
Below, each of the pages is briefly described, along with a list of the modules included in the page. The pages are also named, to allow identifying them for duplication easier. I also recorded a (long) video where I stumble through each one; if you watch the video on YouTube, there are time stamps in the description, so you can go to specific pages that interest you more than others.
A special thanks to my patrons on Patreon for their support: Rob Flax, Stepan Grammatik, brockstar, Mats Unnerholm, D Sing, Will Scott, drew batchelor, Miguel, Steve Bragg, Joab Eastley, Tomi Kokki, Mitch Lantz, Ben Norland, Daniel Morris, Roman Jakobej, Mark Crosbie, Steve Codling, and Timothy Cleary!
If you would like to support my work on ZOIA, please visit patreon.com/chmjacques
0. A page of UI buttons “UI button grid”:
These UI buttons can be used to create color-changing pixel art on ZOIA.
Contents:
40 UI buttons on a 5×8 grid
1. Radio/option buttons “Option buttons”:
These buttons can be used to select between different options within a patch without having to follow a specific order. Useful for selecting things like modulation sources or audio paths. The example uses four UI buttons, but it can easily be expanded, up to 16 options.
Contents:
Four UI buttons
S&H
CV out switch (used to produce visual feedback by lightning up the UI button selected)
CV in switch (this is a placeholder module; it could just as easily be an out switch, or an audio switch)
2. Modulation with bipolar depth control and feedback regulation “Bipolar depth”:
This is a complex modulation control with a feedback control. The feedback control keeps the modulation from exceeding the minimum or maximum of a parameter (i.e. going past 0 or 1, into unusable ranges). When the depth control is between -1 and 0, the modulation is toward the minimum; when the depth control is 0 to 1, the modulation is toward the maximum.
The value module labeled “To parameter” is sent to the parameter, which should be biased to the minimum you plan to use. The multiplier’s output should also be sent to that parameter.
The LFO is a placeholder for any sort of modulation source. The pushbutton turns modulation off and on.
Contents:
Value module
CV invert
Value module biased to 1
CV in switch
-1 to 1 value module (depth)
Value module .5
Multiplier
Pushbutton (Mod on/off)
LFO (placeholder)
3. Simple bipolar modulation with feedback regulation “Modulation fdbk”:
This is a simpler version of the above. It lacks a depth control, so the modulation source will always modulate to the minimum or to the maximum. Like above, the value module labeled “To parameter” should be sent to the parameter to be modulated. Its value sets the maximum when the modulation is downward (toward 0) and the minimum when modulation is upward (toward 1); direction is determined by the pushbutton. The multiplier’s output would also be directed to the parameter to be modulated.
This type of modulation is employed in CBA pedals. If you would like the option to turn the modulation off, an additional pushbutton can be added to the multiplier’s inputs.
Contents:
Value module
CV invert
Value module biased to 1
CV in switch
Pushbutton (Mod up/down)
Multiplier
LFO (placeholder)
4. One shot LFO “One shot LFO”:
Allows you to produce a single-cycle LFO. To UI button is for demonstration purposes; pressing it will trigger the LFO, and you will see the UI button grow brighter as the LFO’s cycle proceeds. In practice, you would connect whatever source you wanted to trigger the one-shot LFO to the trigger’s input, e.g. a sequencer, or stompswitch, or some sort of gate signal.
The one-shot LFO’s output is from the multiplier.
Contents:
UI button (demonstration purposes)
Trigger
LFO with phase input and phase reset (to use a sine or triangle wave in one-shot mode, they must be offset by 180 degrees due to starting in their high positions)
ADSR with no attack, no decay, no release, sustain at .5
Comparator
Multiplier
5. Envelope follower gate “Env. Foll. Gate”:
The envelope follower produces a dynamic amplitude envelope over a period of time. If, however, you would like to produce a constant CV value that corresponds to the length of time audio is received by ZOIA (e.g. for triggering a looper’s record button), this gate can be employed.
Contents:
Gate (optional, for setting threshold)
Envelope follower
ADSR with no attack, no decay, no release, sustain at .5
Comparator with negative input biased to .005
6. Probability gate “Prob. Gate”:
A probability gate can be used to determine how often something happens. The value module sets the percentage of time that the comparator goes high (e.g., .1 = 10% of the time, .5 = 50%, .75 = 75% of the time, etc.) with each chance being determined by the outcome of the random module’s product.
For a simple on/off control of varying lengths, use the output from the comparator. If you want to know the chance per clock beat (represented here by the LFO), use the multiplier’s output.
Contents:
Value
Random module with new trigger in option
Square wave LFO (clock–use this to set the speed of probability calculations; how often are the dice thrown?)
Comparator
Multiplier
7. Looping AD/ADSR with velocity “Looping env”:
This ADSR can switch back and forth between a regular ADSR envelope and a looping AD envelope (functioning much like an LFO). It can be a neat way to add functionality to a patch or add a “drone” component at the flip of a switch.
Additionally, in ADSR mode, the envelope responds to velocity; if you want to cut the looping component, simply remove the comparator and pushbutton. For multiple voices/polyphony, I would suggest momentarily deleting the MIDI note in module, copying the page to the number of voices you wish to employ, then placing a new MIDI note in module that corresponds to the number and reconnecting the gate to the ADSR input and the velocity to the multiplier.
Contents:
MIDI note in
ADSR with immediate release off
Comparator
Multiplier
Pushbutton (turns looping on and off)
Value module (-1 to 1)
The next few pages deal with the common switching schemes I use most frequently for controlling effects. In them, I have used the “delay line” as a generic audio module to represent any effect, that would be replaced with the audio module of your choosing.
In each case, the stompswitch has also been assigned to the left stompswitch.
All instances are in mono; to achieve stereo, duplicate all audio modules, except in cases where stereo modules can be employed (e.g. the chorus effects module or stereo audio balance).
I’ve written about some other switching options here (with diagrams): http://www.empresseffects.com/ZOIA-tips-and-tricks
8. Bypass with trails “Bypass w. trail”:
Allows trails to continue after an effect has been bypassed.
Contents:
2-channel audio out switch
Delay line
Stompswitch
9. Bypass with mix amount “Bypass w. mix”:
You may want to go between a bypassed signal and a signal that mixes your audio with effected audio in some amount you determine.
Contents:
Delay line
Buffer (optional; depends on the audio effect. With time-based effects, it may not be necessary)
Audio balance
Multiplier
Value module (labeled mix)
Stompswitch
10. Bypass with mix amount and trails “Bypass w. mx tr”
Essentially an inversion of the above, where the audio balance is replaced by a panner module, allowing for trails to continue after bypass has been engaged.
Contents:
Panner
Delay line
Buffer
Multiplier
Value module
Stompswitch
11. Multi-effect selection “Multi-FX”:
Here, the stompswitch cycles between three effects paths (well, one “dry” path and two “effects” paths). Since there is more than one effect, the second effect will be represented by a bit crusher, but as with the delay lines, these are merely placeholders.
The stompswitch, momentary in this instance, advances a sequencer, which controls the audio switch. It can be easily expanded to more signal paths, using a switch with more channels and a sequencer with more steps.
You could also apply a similar principle to a CV switch to, for instance, cycle through different parameter values or modulation sources.
Contents:
3-channel audio out switch
Bit crusher
Delay line
Sequencer
Stompswitch
I recorded a (long) video where I stumble through each one; if you watch the video on YouTube, there are time stamps in the description, so you can go to specific pages that interest you more than others.
Thanks Christopher
Am I missing something though? My ZOIA is still running 1.04 because 1.05 had a weird bug in the clock divider. Now you are talking about 1.08 with amazing features like page copy in between patches (which I have dreamed of since I got my hands on the ZOIA)…
…but the latest version I can find on the support page is 1.06 and the text log hasn’t been updated since 1.05 in July. Any ideas?