Touch Objects — Tactile UI Suite & Spatial State Morphing
Touch Objects — Tactile UI Suite & Spatial State Morphing for Max 9
Hi everyone,
I’ve put together a native Max 9 suite called Touch Objects (v8ui / jsui), designed specifically for low-latency tablet/screen-mirroring setups (Sidecar, touchscreens) and rethinking common bpatcher interface bottlenecks.
Key features:
Touch & Mouse Hybrid Controls: Sliders (touch.hslider, touch.vslider), tickers (touch.numticker), and button strips (touch.mbutton) with proximity easing, discrete hold-repeat stepping, and floating 50/50 Attrui parameter inspectors.
Global Theme Bus: Wireless styling bus via touch.master that broadcasts palettes, geometry, and glass diffusion shaders across all listening components without patch cords.
Spatial Preset Morphing: Continuous 2D snapshot morphing (touch.status) with direct disk-backed JSON synchronization to pattrstorage.
Curve Generator: Multi-breakpoint exponential envelope editor (touch.pfunction) formatted for curve~ and line~.
100% vanilla Max 9 — no third-party externals required.
GitHub Repository:
https://github.com/wilpertz/Touch-Objects
Feedback and testing are welcome!
//\\
Besides the AI generated text, I write a little bit from the hip. It sounds more real.
Lets start with fact that I am using AI to write javascript. I have always used AI to write script. It just wasn't called that, it was called stack overflow (mostly) or well, git hub. AI is just a faster way to write script and math out some stuff that I could never do. And AI is rocking the shit out of some code> I even fed it an extremely complex 'work around' I made in max for pattrstorage and presets, this evolved quickly in [touch.status] and [touch.statusmanager].
But this AI only goes one way. It has exactly 0% success writing max json patches and worse -max5 patch code has never even opened. So NEVER try to use AI for writing max patches. (That is a very strong recommendation!) - However it has had some very tiny success sending a simple max diagram for connecting simple things.
Next, I should say that these objects are currently in testing mode. That means things like help files, messaging, minor quirks, are still being refined. For example I think the [mbutton] outlets are backwards and should be reversed. The raw number should be on the left and routable multi-button names should come out the right.
There are at least four new objects sketched ahead, including a new vision of matrix control and a dial. (Jeez, that dial. I have to literally practice throughout the day to decide if real world folks lean toward using 2 or 3 fingers to turn a dial) -- as well as some other fun stuff.
Things I cannot do:
test on PC, I only have Mac.
test finger touch on screen mirroring to tablets. That will come though, currently everything works with a mouse, so anything that works with a finger is just a bonus, correct? good! (glass is always full, half with water and half with air = 100%)
Uhmmm, if nothing else, check out touch.status and touch.statusmanger.
Currently there are no errors in my console.
Wil
Sometimes I go to sleep. Everything is working exactly. I wake up groggy and check. It's like 'huh', what is that , where is that? So today I pushed an update on GitHub for touch.status. This adds the original reason I started building these objects. In original Max patch, I could just select a slot, name it using [textedit], and when message comes out of textedit, the slot is saved and populated a dictionary in a master controller. Ok! Now that is done. On Github.
***nO moRe PoStS about this unless it is extremely important.
except this update hours later in the usual fashion:
Touch.status updated to this: click-release to change slot, click-hold to save slot, double tap to open popup window for remote slot naming and save. Help file updated to reflect changes. This makes sense for mouse and/ir touch control.