sounds:zoia

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
sounds:zoia [2023-02-06 01:57] asdfsounds:zoia [2024-02-13 23:40] (current) – [Bluebox MIDI sync] remove section, as it is not feasible asdf
Line 8: Line 8:
   * [[https://empresseffects.freshdesk.com/support/solutions/articles/1000275389-updating-firmware-on-the-zoia|Instructions for firmware updates]]   * [[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]]   * [[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.
 +
 +<graphviz>
 +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;
 +}
 +</graphviz>
 +
 +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). 
 +
 +<graphviz>
 +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;
 +}
 +</graphviz>
  
 ===== Module reference ===== ===== Module reference =====
Line 128: Line 201:
 === Cabinet sim === === Cabinet sim ===
  
 +{{tag>needswork}}
  • sounds/zoia.1675648646.txt.gz
  • Last modified: 2023-02-06 01:57
  • by asdf