Differences
This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
sounds:zoia [2023-02-06 01:57] – asdf | sounds:zoia [2024-02-13 23:40] (current) – [Bluebox MIDI sync] remove section, as it is not feasible asdf | ||
---|---|---|---|
Line 8: | Line 8: | ||
* [[https:// | * [[https:// | ||
* [[https:// | * [[https:// | ||
+ | |||
+ | ===== 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' | ||
+ | |||
+ | 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, | ||
+ | |||
+ | < | ||
+ | digraph G { | ||
+ | rankdir=LR; | ||
+ | | ||
+ | sh1 [label=" | ||
+ | sh2 [label=" | ||
+ | shk [label=" | ||
+ | shn [label=" | ||
+ | mux [label=" | ||
+ | comp [label=" | ||
+ | quant [label=" | ||
+ | rand_newnote [label=" | ||
+ | param_pwrite [label=" | ||
+ | out; | ||
+ | rand_roll [label=" | ||
+ | | ||
+ | sh1 -> sh2 -> shk -> shn; | ||
+ | shn -> mux [headlabel=" | ||
+ | rand_newnote -> mux [headlabel=" | ||
+ | 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=" | ||
+ | rand1 [shape=" | ||
+ | rand2 [shape=" | ||
+ | quant; | ||
+ | dmux; | ||
+ | mux; | ||
+ | comp1 [shape=" | ||
+ | comp2 [shape=" | ||
+ | var_steps [shape=" | ||
+ | var_pwrite [shape=" | ||
+ | out; | ||
+ | | ||
+ | var_pwrite -> comp1; | ||
+ | rand1 -> comp1; | ||
+ | rand2 -> quant -> mux; | ||
+ | comp1 -> mux [headlabel=" | ||
+ | | ||
+ | mux -> dmux; | ||
+ | dmux -> seq [penwidth=2, | ||
+ | | ||
+ | lfo_ramp -> dmux [headlabel=" | ||
+ | var_steps -> comp2 [headlabel=" | ||
+ | lfo_ramp -> comp2 [headlabel=" | ||
+ | comp2 -> lfo_ramp [headlabel=" | ||
+ | comp2 -> seq [headlabel=" | ||
+ | | ||
+ | seq -> mux; | ||
+ | seq -> out; | ||
+ | } | ||
+ | </ | ||
===== Module reference ===== | ===== Module reference ===== | ||
Line 128: | Line 201: | ||
=== Cabinet sim === | === Cabinet sim === | ||
+ | {{tag> |