i’ve been slowly but steadily working on a new module in a completely separate plugin from alef’s bits and NullPath, one i created just for experimenting. but this module has evolved into something that i’ve been having a lot of fun working on, and it’s also in a pretty good state at the moment, so i thought i’d start a thread to share it.
the readme ‘manual’ and screenshot are slightly outdated right now because i’ve been too lazy to update them, but everything on the panel is labeled fairly clearly, and things should be pretty straightforward from their names/descriptions. and i’m always happy to answer any questions and certainly welcome feedback/suggestions.
here’s a short video of a small patch i just recorded with my local build, so things may not be exaclty the same as in the current github build(s).
quick addendum: i just added lights to indicate which ‘bit(s)’ is/are currently ‘targeted’ for toggling, depending on whether the module is in dual mode or not, and whether the direction is left-to-right or right-to-left.
the current ‘nightly’ build is now almost in sync with my local copy. i’m still in the early stages of trying to add some new “modes” for the core module’s functionality (i.e. how bits are shifted and/or which bits are being targeted for toggling), but for now, nightly is the most up-to-date ‘fully functional’ build.
first off, i realized i didn’t even bother giving a brief overview or description of what the module even is, and just left it up to people to click through to the github repo. that’s my bad.
“Tape Machine” at its core is just another Turing Machine clone, but it’s got some extra bits and bobs i thought would be fun to play with.
the first big one would be what i’ve labeled “dual” mode, where the normally 16-bit “tape” is essentially torn in half and treated as two individual 8-bit tapes, and i decided to include outputs for logical operations on bits that line up in the same ‘column’ (the bottom row of outputs).
as of just moments ago, i’ve also begun adding additional core, “main” modes to the module to change how the bits are shifted or moved (or not) and which bits are being toggled (or not). the lights i added last night to display the current bits being toggled were added more for this reason.
the first mode i’ve added is “stroll”, where a “walker” is assigned to the tape (or two walkers, assigned to the two tapes in dual mode), and represents the position of the bit to toggle. the walker randomly moves left or right based on random chance with each new clock pulse, while the bits are still being shifted as they are in the default “shift” mode.
(EDIT: i should add, the other two modes listed in the right click menu, “cascade” and “random”, are currently entirely unimplemented, meaning the tape or tapes will not shift or move at all, nor will any ‘bits’ be toggled. the only two working modes right now are the default “shift” and this new “stroll” modes)
i still have two rough ideas for other modes to add, but for now, as always - the nightly build is updated and available.
I love the concept, but I an not convinced on the name.
For me Tape Machine immediately implies some type of analog delay or loop module. I think some users would be looking for an emulation of an analog delay/looper and get excited by the name, only to be disappointed. Conversely, some potential users might be looking exactly for your functionality, but would skip the module based on the name.
I feel there is a better name out there - but unfortunately I don’t have any suggestion.
that’s completely fair. and if i’m being honest - i haven’t been sold on the name myself this whole time. i’m just yet to think of something better. in fact, taking it a step further, i’m still not even convinced i want to stick with the plugin name going forward. for now, i’m rolling with it all just because it’s all simply my experimentation playground at the moment. eventually, if it progresses to a point where i’m starting to think about a library release, i’d certainly make sure i’m happy with the names of things like that.
in any case, yes i completely agree. if a better name comes to me or is even suggested by others, i’ll be the most thrilled out of anyone lol.
i actually really like the name Nala, but the more i’ve been mulling it over the more i think i’d like to go with something a bit more descriptive of the actual module. admittedly some of my alef’s bits modules do have more “out there” names (see “turnt” lol) but more often than not i’m drawn to much more minimal and “utilitarian” names, if that makes sense.
i keep coming back to simple ideas like “bit walker”, “bit shifter” (very on-the-nose, that one), etc. - very basic and even kind of boring, i know lol. but that’s where my head’s been at, at least today lol.
How about “Whitwell Machine” - like the Turing machine is not a Turing machine, the Whitwell Machine is not designed by Tom Whitwell ( creator of the The Music Thing Modular Turing Machine),
added “walk” (previously named “stroll”) mode, where a “walker” (or two, if in dual mode) will randomly “walk” up and down its respective tape, randomly toggling bits according to the probability knob/input. (EDIT: forgot, i already mentioned that i’d added this mode, but it wasn’t working as intended before anyway, so it’s fixed now)
added “random” mode, where each clock pulse, a random bit (or bits, in dual mode) is selected to be randomly toggled according to the probability knob/input.
in both new modes, the tape(s) continue to shift according to the “shift amount” and “direction”, as they do in the default “shift” mode. only the selection of bits to be toggled is changed.
…but sadly i’ve just realized there are a number of problems with dual mode at the moment. i’m working on it, but the current nightly build should definitely be expected to not work as intended, at least in dual walk or dual random modes. dual shift(default) should be functioning correctly, still, though.
i had a random midnight urge to try and fix the issues with dual mode, so i did.
not 100% sure it’s functioning correctly, but at least now it’s functioning as i expect it to. so both Walk and Random mode should also work in dual mode now.
no actual development updates today, but i finally got around to updating the readme on the repository with a more up-to-date panel screenshot and my rudimentary “documentation”.
(note: i do kind of assume a basic understanding of how the normal Turing Machine works, as i’m terrible at explaining/documenting stuff like this - as should be plainly evident by the readme itself)
just created a tagged release v2.0.4 in the repository with all of the most up-to-date changes. even my local working copy is completely clean.
as of now, i’m still not ready by any means to call it “finished”, but right now it appears to be functioning as i intended and expect it to.
if anyone has some free time to play with it in the near future, i’d really appreciate any outside feedback on the module itself. i still worry there are problems i’ve completely overlooked from just being too close to it.
Abra - an 8 bit “analog-to-digital converter”. on new clock trigger, grabs the current input signal (input range set in context menu, mapped to 0-255), and outputs triggers/gates from the outputs if their corresponding bit is set in the mapped value.
Cadabra - an 8 bit “digital-to-analog converter”. if clock input is connected, on new clock trigger, grabs the currently set bits corresponding to the trigger/gate inputs (trigger input mode set in context menu), takes the value represented by those bits (0-255), remaps it to the output range (set in context menu) and outputs it. if no clock input is connected, it does the same, but freely instead of only on a new clock trigger, always outputting the current remapped value based on the trigger/gate inputs.
(i hope the quoted descriptors are actually accurate - i have to admit i’m not 100% sure, so please let me know if they’re not)