Turing Machine.
  • I was walking the dog yesterday and I thought of a simple way to implement the variable amount of randomness in a looping sequence, like the Turing Machine. I'm not sure if someone else has already done this yet, but hopefully this will show up in a quick search. I suppose I can take a crack at the turing expanders if I can figure out what the heck is going on with them.
    Not Quite Turing Machine.audulus
    71K
    Screen Shot 2017-05-24 at 2.54.44 PM.png
    871 x 257 - 47K
  • I put one together a while back. I haven't implemented the CCW bit reversal yet but it works as the original from vertical to CW.
    I'll upload it when I'm next on my iPad.

    It'll be interesting to see if anyone can come up with a better way of passing the bit values along the line. I had to use delays which seemed a bit of a hack but it does work :)
  • Cool! I look forward to comparing the designs :)
  • Oh,I read your OP on my phone and didn't see that you had attached one too. I'll have a look :)
    Here's mine attached. I've added separate gate outs per bit so you can do the pulses expander in a more modular way ;)
    Turing Machine.audulus
    14K
  • I updated the interface of the NQTM to the Module Library design specs, changed the scaling on the RNG/loop knob to be more useful, and added a final sample and hold to the output to clean up the output.
    Not Quite Turing Machine.audulus
    79K
    Screen Shot 2017-06-04 at 6.00.27 PM.png
    948 x 348 - 59K
  • I've come up with a mux solution to pass the bits along the line. It all happens instantly, no delay in this one, I hope I'm on the right track. I put a counter on this one but vectors should work too.

    First is a bare bones patch "Mux solution for the Turing" to see the expressions and to see it working. Then I tidied it up in another patch for further development if anyone wants it.

    I did an 8 bit solution, but you can just delete the last mux on the right to make it 7 bit for the Turing. The method I used was to alter the mux "select" values adding expression nodes to correct the bottom muxes as I went along. To add more than 8 bits would require increasing amounts of nodes to correct it and I think beyond that, a better method of maths would be needed but 8 bits is good. I had to set the minimum sequence length to 3 but you can make the sequence (upwards) as long as you like by stacking in more muxes.

    Hope it comes in useful. Am coming up with a few ideas but need to work on it a bit more.
    MuxSolutionForTheTuring.audulus
    943K
    8BitPulseRing for development.audulus
    804K
    barebones.jpg
    1366 x 709 - 184K
    tidied up for dev.jpg
    1366 x 711 - 146K
  • Very interesting! I look forward to see what sort of interface you come up with :)
  • Here's my take. This is the Turing Machine with the Volts and Pulses expanders. I used a version of the d-type flip-flop I built for the phase detector in my (so far not working) PLL to construct the shift register and used the random node for the bit flipper. Like the original, the pulse width of the pulses expander is controlled by the clock input. The volts expander output is scaled to 0-1, but the octave output is adjustable for range and offset. I figured that it would be simpler to scale the volts expander output externally.

    08/06 edit - added a scaled volts module output. Updated files
    08/06 edit - minor UI update added logic to turn off LEDs for unused parts of the shift register. Updated files

    Turing Machine.audulus
    304K
    Screen Shot 2017-08-06 at 8.00.13 PM.png
    1468 x 895 - 216K
  • Loving these guys thanks for sharing!
  • @stschoen Awesome! I didn't even notice you had updated the patch! Looking pretty amazing.

    After having played with it for like 5 minutes, I'm a little confused what the volt knobs do, but I love the scale and offset. I am definitely going to record some generative patches with this guy.
  • The volt knobs are connected to bits one through eight and provide a variable value when their respective bit is high. The values are summed and sent to the v output. V out is a 0-1 output. The scale and offset give you a signal more suitable for driving the octave input of an oscillator at scaled v in the same way as the the scale and offset controls for the "o" output scale the output of the 8 bit dac. The m output is also the dac, but scaled 0-1 The pulse outputs are the various bits anded together. Their width matches the width of the clock pulse. I found the schematics for the V2 expanders at muffwiggler and basically copied them. I still need to add some graphic symbols and separators, but I think the internals are pretty close to the original design. BTW thanks for the oscillator design, At the moment my macs (high sierra beta) won't run the native oscillator or filters, but they're still much better for building patches. The phazor still works and it's nice to have some sound. I had fun playing with this module and drove my wife crazy. She made me switch to headphones.
  • Thanks for that, I see, the loop is altered by a randomly activated flipflop, so when the probability is 100, all the bits are reversed..
  • Yes, the noise source in the original is a reversed biased transistor, Audulus has a noise node that is functionally equivalent. In both cases the loop/random knob (bit flipper) controls the probability that the bit fed back into the shift register will be flipped. At one extreme no bits will be flipped and at the other all bits will be flipped. 50% are flipped at 12 o'clock. The first 8 bits in the register are converted to an 8 bit number to provide the output. The write 1 and 0 triggers override the bit flipper and allow you to inset bits into the ring. The length knob controls the length of the the shift register. The original had a choice of 8 or 16 and the MkII changed to a rotary knob with a choice of 2, 3, 4, 5, 6, 8, 12 and 16. My copy runs from 1 to 16. A high on the set and clear inputs will set all the bits to one or 0 respectively. They weren't available on the original module, but I thought they might be convenient.The scale and offset knobs mimic the original's range knob. See above for a description of the volts and pulses expanders.
    There's a good description at https://www.thonk.co.uk/Documents/Turing/Turing Machine Build Doc v2.1.pdf
  • Finished the UI today. It's done (if anything in Audulus is truly finished)
    Turing Machine.audulus
    422K
    Screen Shot 2017-08-07 at 9.24.34 PM.png
    1043 x 946 - 190K
  • The interface looks spectacular~ ! The dividers and image guides explain the i/o very clearly now. Here's a patch I'm going to play around with on the modular ;-)
    20170807 cv.audulus
    1M
  • Thanks for the compliment. I'll check out the patch when I get back to the Mac. I might play around with a horizontal layout as well. It would allow me to keep all the I/O on the ends.
  • Love the patch! It's headphone time again. Sure will be nice when I can run Audulus on the mac again. The patch runs at about 45% on my aiPad Air 2, but no glitches and great sound. I did a horizontal layout of the UI. Let me know what you think. It's a little larger, but I think it may be clearer what goes with what. Still couldn't get all the I/O on the ends without making it ridiculously large.
    STS Turing Machine.audulus
    782K
    Screen Shot 2017-08-08 at 10.23.54 PM.png
    975 x 907 - 173K
  • The horizontal layout is definitely more natural in Audulus, but it doesn't always lend itself to compactness. On the whole it's very well laid out, but if I may nitpick, the scale and offset labels should be uniformly aligned with their knobs. Fortunately that's something I can easily change myself.

    Another thing I noticed is that when I hit the 1111 gate input, a different number of lights turn on. Eight for the vertical version and 10 for the horizontal.

    image

    I'm unsure if that really makes a difference but there you have it.

    Thanks again!
    Screen Shot 2017-08-08 at 2.48.46 PM.png
    1027 x 503 - 187K
  • Oops on the labels. As far as the lights, the vertical is set for a register length of 8 and the horizontal is set for 10. I suppress the LEDs for the unused bits in the register.
  • >I suppress the LEDs for the unused bits in the register.

    Ah! It all makes sense now.
  • Updated the file
  • This is one of the best-looking most realized modules yet, along with the HBO. Really shows off what Audulus is capable of! Thanks guys :)
  • Thanks for the kind words. It was a lot of fun putting it together. Just curious, which layout do you prefer, horizontal or vertical?
  • I like both just about the same, but I think the horizontal is easier to get with the 0010 binary stuff, since it reads straight across.
  • I think the horizontal one is quite nice. I was really enjoying it yesterday, I can see why they are so popular now. Organically evolving the rhythm and melody is addictive!
  • I can see advantages to both layouts. A horizontal flow seems more natural in Audulus, but vertical is the more traditional eurorack approach and at least in this case is more compact. Not necessarily a big deal on a mac or PC, but space is at a premium on the iPad.
    @RobertSyrett, my wife wife thought your patch was pretty cool which is saying quite a lot! (She usually makes me put on headphones when I'm playing around with Audulus). I have to admit the binary numbering was really more because I didn't want to fill in the holes on the 4, and 8. I thought it was perhaps a bit obscure, but added to the digital flavor of the module. The SVG library Taylor uses doesn't support even-odd filling and so for curves with open areas inside you have to fill in the hole with a black shape. At some point I plan to do a full set of numbers in each color, but it's enough work that I want to be satisfied with the font and size before I slog through it.
    This was my first exposure to this module and I enjoyed playing with it. It's interesting to feed the output to an oscillator use the pulses module to trigger an ADSR, the volts module to modulate the ADSR settings and drive a filter and envelope. I can see why people liked the expanders. The other ones I came across seemed to be more in the nature of various filters and frankly I think SansNom has that covered pretty well.