====== Empress Effects ZOIA ====== {{ :sounds:zoia.png?350|}} A completely modular effects pedal --- or synthesizer, depending on how you use it. Permits stereo in/out (or two of each in mono) and CV in/out (configurable). The only limitations are imagination and CPU usage. ===== Resources ===== * {{ manuals:zoia.pdf |Manual}} * [[https://empresseffects.freshdesk.com/support/solutions/articles/1000275389-updating-firmware-on-the-zoia|Instructions for firmware updates]] * [[https://sensai7.github.io/ZOIACheatsheet/|Module cheat sheet]] ===== Patch notes ===== ==== Turing Machine ==== To imitate the Music Thing Turing Machine, we use a ring of sample and hold modules as our shift register. The output of the last is fed into both the output and an input switch. The switch is controlled by a comparator whose inputs are the write probability (positive) and a triggered random value (negative). When the latter exceeds the former, the ring continues to loop unchanged; otherwise, a new note is inserted into the start of the loop. Thanks to the module's versatile I/O options, the final output can be sent to an oscillator, a MIDI device, or through the control port as CV. Unlike the Turing Machine, the number of steps is hardcoded into the patch and cannot be adjusted on the fly (yet). The user can adjust the write probability, clock (which can also be taken from outside the module), and quantization options. It's also a good idea to constrain the quantizer's input to keep the output from swinging too wildly. digraph G { rankdir=LR; sh1 [label="S+H 1"]; sh2 [label="S+H 2"]; shk [label="S+H ..."]; shn [label="S+H n"]; mux [label="Input switch\ninputs=2"]; comp [label="Comparator"]; quant [label="Quantizer\nscale/key jacks=on"]; rand_newnote [label="Random\ntrig=on\n(new note)"]; param_pwrite [label="Value\n(write probability)"]; out; rand_roll [label="Random\ntrig=on\n(write roll)"]; sh1 -> sh2 -> shk -> shn; shn -> mux [headlabel="Input 1"]; rand_newnote -> mux [headlabel="Input 2"]; mux -> sh1; shn -> quant -> out; param_pwrite -> comp [headlabel="+"]; rand_roll -> comp [headlabel="-"]; comp -> mux; } An alternative idea would be to use a sequencer as the shift register. This arrangement requires a connection to each step of the sequence, but it allows us to dynamically adjust the number of steps (and program an initial sequence). digraph G { rankdir=LR; seq; lfo_ramp [shape="circle", label="Ramp"]; rand1 [shape="circle",label="Random"]; rand2 [shape="circle",label="Random"]; quant; dmux; mux; comp1 [shape="triangle", orientation="270"]; comp2 [shape="triangle", orientation="270"]; var_steps [shape="cds", label="Steps"]; var_pwrite [shape="cds", label="Pwrite"]; out; var_pwrite -> comp1; rand1 -> comp1; rand2 -> quant -> mux; comp1 -> mux [headlabel="sel"]; mux -> dmux; dmux -> seq [penwidth=2,label="one for each step"] lfo_ramp -> dmux [headlabel="sel"]; var_steps -> comp2 [headlabel="-"]; lfo_ramp -> comp2 [headlabel="+"]; comp2 -> lfo_ramp [headlabel="phase reset"]; comp2 -> seq [headlabel="reset"]; seq -> mux; seq -> out; } ===== Module reference ===== ==== Interface modules ==== Physical I/O for audio, MIDI, UI, and CV. === Audio input === === Audio output === === MIDI notes in === === MIDI pitch bend === === MIDI CC in === === MIDI pressure === === MIDI clock in === === MIDI CC out === === MIDI PC out === === MIDI note out === === MIDI clock out === === Stompswitch === === Pixel === === UI button === === Pushbutton === === Device control === Controls the pedal's bypass state, performance mode, or stomp aux mode based on CV. === Keyboard === Turns grid buttons into a playable keyboard. Each button can be tuned to any note. === Cport exp/CV in === Accepts input from an expression pedal or external CV source. The CPort setting must be set according to the input. === Cport CV out === Sends 0--5 V on the ring of the control port depending on the input value. CPort must be set to CV mode in the config menu. ==== Audio modules ==== These modules generate or modify audio signals. Unlike typical hardware modular, audio modules cannot operate on CV signals (and vice versa). === Oscillator === === VCA === === SV filter === === Multi-filter === === Delay line === === Audio panner === === Pitch shifter === === Audio balance === === Audio mixer === === Inverter === === Audio in switch === === Audio out switch === === All pass filter === === Noise === === Audio multiply === === Bit crusher === === Aliaser === === 1 buffer delay === === Looper === === Granular === === Stereo spread === === Bit modulator === === Diffuser === ==== Control modules ==== CV generation and operation modules. === LFO === === Sequencer === === ADSR === === Sample and hold === === CV invert === === CV rectify === === Value === === Trigger === === CV flip flop === === CV delay === === CV loop === === CV filter === === Clock divider === === Comparator === === In switch === === Out switch === === Slew limiter === === Quantizer === === Steps === === Multiplier === Like a VCA for CV signals. === Random === === Rhythm === === Tap to CV === === CV mixer === ==== Analysis modules ==== These modules create CV signals from audio. === Onset detector === === Env follower === === Pitch detector === ==== Effect modules ==== Standard guitar-type effects. It should be possible to assemble most, if not all, of these from the above components. === Tone control === === Delay w/ mod === === Ping pong delay === === OD & distortion === === Fuzz === === Compressor === === Gate === === Plate reverb === === Hall reverb === === Room reverb === === Ghostverb === === Reverb lite === === Phaser === === Chorus === === Vibrato === === Flanger === === Tremolo === === Env filter === === Ring modulator === === Cabinet sim === {{tag>needswork}}