computerscare-vcv-modules

ComputerScare modules for VCV Rack
Log | Files | Refs

laundry-soup.md (4399B)


      1 
      2 # Laundry Soup
      3 Laundry Soup is a trigger sequencer that takes text as input.  If you connect a clock signal to the "clk" input, and type `1` in the top text box, the top "out" output will send a trigger each clock.  `2` sends a trigger every 2 clock signals.  `31` sends a trigger on the 1st and 4th clock signals, and then repeats this pattern forever or until reset.
      4 
      5 ![Laundry Soup](./laundry-soup-basic-2.png)
      6 
      7 
      8 ### Text Input:
      9 Lets represent a clock signal like this:
     10 
     11 `xxxxxxxx`
     12 
     13 If the value
     14 
     15 `2`
     16 
     17 is input into a text field, the output signal will be:
     18 
     19 `x-x-x-x-`
     20 
     21 You can see this illustrated on the scope in the screenshot above.
     22 
     23 
     24 
     25 
     26 The input and output of the 2nd row is:
     27 
     28 ~~~~
     29 31 ---> x--x  (repeating after 4 beats)
     30 ~~~~
     31 
     32 
     33 In The 3rd row:`2131@8`, the `@8` means: repeat the pattern every 8 clock signals.  In this case the original pattern has length 7 (2 + 1 + 3 + 1 = 7), so normally it would repeat every 7 clock signals.
     34 
     35 ~~~~
     36 2131   ---> x-xx--x  (repeating after 7 beats)
     37 2131@8 ---> x-xx--xx (repeating after 8 beats)
     38 ~~~~
     39            
     40 
     41 
     42 A rest can be programmed by using the number "0".  If Laundry Soup is triggered by 16th notes, the pattern `00004` (or equivalently `0@4,4`) can be used to trigger a snare drum sound on the backbeat.
     43  
     44 
     45 ~~~~
     46 8      ---> x-------
     47 07     ---> -x------
     48 00004  ---> ----x---
     49 ~~~~
     50 
     51 Another way to generate the backbeat pattern using the @ symbol:
     52 ~~~~
     53 0@4,4    --->   ----x---
     54 ~~~~
     55 
     56 
     57 The 5th row shows how multiple patterns can be combined.  `311@16,2@16` means: `311` for 16 beats, and then `2` for 16 beats.
     58 ~~~~
     59 311@16      ---> x--xxx--xxx--xxx
     60   2@16      --->                 x-x-x-x-x-x-x-x-
     61    
     62 311@16,2@16 ---> x--xxx--xxx--xxxx-x-x-x-x-x-x-x-
     63 ~~~~
     64 
     65 The bottom pattern could also be written like this, using square brackets:
     66 ~~~~                                                   
     67 [311,2]@16  ---> x--xxx--xxx--xxxx-x-x-x-x-x-x-x-
     68 ~~~~
     69 
     70 Comma-separated patterns inside square brackets, and followed by an `@` will sequentially output each pattern for the specified number of beats.  For the pattern above, it will output: `311` for 16 beats, and then `2` for 16 beats.
     71 
     72 
     73 
     74 
     75 ### How to program lengths longer than 9 beats:
     76 To program a rhythm that divides the incoming clock by 16, the proper input is NOT `16`.  Values greater than 9 steps must be enclosed in angle brackets `<16>`
     77 
     78 ~~~~
     79 16      --->   xx-----  (Laundry Soup interprets this as a 1 and then a 6.  This pattern repeats every 7 beats)
     80 
     81 <16>    --->   x--------------- (repeats every 16 beats)
     82 ~~~~
     83 
     84 
     85 
     86 ### Input Jacks:
     87 ![ComputerscarePatchSequencer](./laundry-soup-inputs-1.png)
     88 
     89 **Global Clock (clk):** Increases each row's absoluteStep by 1.
     90 
     91 **Global Reset (rst):** Resets each row's absoluteStep to 0.
     92 
     93 **Individual Clock (clk):** Increases the row's absoluteStep by 1.  If a cable is plugged in, the row ignores the Global Clock.
     94 
     95 **Individual Reset (rst):** Resets the row's absoluteStep to 0.  If a cable is plugged in, the row ignores the Global Reset.
     96 
     97 
     98 ### Output Jacks:
     99 
    100 ![ComputerscarePatchSequencer](./laundry-soup-outputs-1.png)
    101 
    102 
    103 **Individual Row Output (out):** The output of the row's pattern.  Outputs 10 volts if:
    104 ~~~~
    105 A) The clock signal is sent to the Global Clock or Individual Clock input jack
    106            AND
    107 B) The pattern ought to trigger on this absoluteStep
    108 ~~~~
    109 
    110 **Individual Row EOC Output (eoc):** Sends a trigger on the 1st step of the row's pattern.
    111 
    112 
    113 ### Displays:
    114 
    115 The display shows a few things:
    116 
    117 - Top row: Which step number the sequence is currently on, starting with 1
    118 - Bottom row: The total length of the pattern
    119 - If the display is red, that means the pattern has a pending change and will switch to the newly typed pattern when it reaches step 1.  ie: changing the pattern is sync'd to the old pattern length.  Click the display to force the pattern to reset on the next clock.
    120 
    121 *Inspired by Frank Buss's Formula, Ryan Kirkbride's FoxDot, SuperCollider*
    122 
    123 
    124 ~~~~
    125 莅  氊  莅 氊 氊莅氊 氊氊莅莅  莅氊 莅氊
    126 莅 氊氊   氊      莅莅   莅 氊莅  莅
    127   氊氊  莅 莅氊 氊  莅 氊 氊氊  氊  
    128 
    129 莅  氊  莅 氊 氊莅氊 氊氊莅莅  莅氊 莅氊
    130 莅 氊氊   氊      莅莅   莅 氊莅  莅
    131   氊氊  莅 莅氊 氊  莅 氊 氊氊  氊  
    132 
    133 莅  氊  莅 氊 氊莅氊 氊氊莅莅  莅氊 莅氊
    134 莅 氊氊   氊      莅莅   莅 氊莅  莅
    135   氊氊  莅 莅氊 氊  莅 氊 氊氊  氊    
    136 ~~~~    
    137