After reading a recent sneak peek I decided to list of what would I like to have with 8th release to actually upgrade the license.
Better configuration. For example, bring back the “snap to grid” check box from Max 5–6, allow to properly make a color scheme and override it globally, allow to remap key bindings, allow to hide side bars by default and show them back with a key press (without pressing on those 1-pixel borders).
Optimize the UI — it’s quite sluggish last time I worked with Max. Really, I stopped using Max extensively only because the UI issues.
Update OpenGL to the latest version and make shader writing a better experience.
Fix usability in projects. For example, file renaming or numerous PATH issues.
Reconsider the decision made in 7.3 or 7.2 that C++ code generated with Gen belongs to C74 and not to the user.
I would love love love to have an easily set preference like we used to have to make 'snap to grid by default' an option, and 'don't snap to objects by default' an option. I've tried setting it the way you're apparently supposed to now (make an empty patcher, change the settings, save it as the default) but it never seems to stick.
Never gonna happen: true multithreading. My UI's tend to get insane, and then they get sluggish when audio is going on. I can't always put the bulk of my processing into a poly~ object. I'm also still a bit unclear as to if I have multiple different [poly~ whateverMyPatchesAreNamed 1 @parallel 1] , if those threads will be spread across processors cleanly. (IE, I have [poly~ patchA] and [poly~ patchB], are they being spread across processors efficiently? or since they're both single objects, do they both still live on one processor?)
Similar and also never gonna happen: Just... some more efficient UI code. The waveform~ object is a HOG. Often using [pictslider] gets CRAZY stuttery if I have too much other stuff going on (waveform~ objects updating, [meter~]s going, etc).
Want to add just my two cents:
- Possibility of write global variables before functions in codebox
- Possibility to include existent glsl code inside a glsl shader with something like an #include statement
i just see the "patching improvements" article.
what i find really annoying the max7 is that "open original" is in a submenu.
this is not only my most used function in the contextmenu, there is simply no reason at all to put a single item in a submenu.
how is group different then cmd + drag selecting a group of objects that we already have ? the shift+drag object is closer to what I've been asking for a while , but then you still need to click delete the object. still a 2 step process. how about simply keeping the connection when you delete the middle object.
Real question , not a complaint.
Also, it would be cool to select/highlight a group of objects and when you connect to the 1st one , all get connected. I know about the MaxToolbox by Nathanael Lecaude. But still this would be great. And I do know about the option+shift plus drag to create a auto connection. And the shift click with patch cord to maintain an unconnected patch cord. still tons of clicks.
Thanks for the zoom. been asking since max 5 . Had done my version with the zoomfactor $1 thispatcher and fingerpinger a while back. Was too clunky though
- edit: please bring the thisbpatcher like you have with the thispoly~
right now I have to resort to js the get the this.patcher instance number.
quike a handle for such a simple thing. Thanks
- please bring back „alt + double click“ on an [object] to open the help.
- keep the inspector scroll position when going to a new object.
- i need a „hand“ for moving the patch (cmd+h, or spacebar and mousedrag) like in other software.
- when click on an [object] ALL connected (cords and) [objects] are highlighted.
- disable [objects] for better debugging without removing stuff.
- [umenu] other symbol outputs than named. (Entry1 named „Hello1“ then outputs „decal“, entry2 named „Hello2“ then outputs „blend“)
- [umenu] delete entries by „string/symbol“.
- jit.movie play-status readout function (route play/pause 0/1 whatever).
- jit.movie hick-ups on the end of a loop (guess this is a viddll thing).
- when copying or rename a [pattr] keep the parameter mode values
- disable undo history in live.object (as checkmark)
- disable "startbangs" in live.button/text etc.
- please fix that [live.button/text] midi toggle/button behavior when midi mapped (https://cycling74.com/forums/live-button-is-temperamental)
- and i still have problems to freeze externals in the patch (m4l)
no matter, i love Max and it's features and i hope max will be even better.
btw. i would love to have an Max iPad App for my couch, where i can do weird routings and some math (no MSP/Jitter needed)
- new object [nodouble]: if an s i f b is incomming it just sends the value one time even it's triggered twice. So if i send a "1" and after the first "1" comes a second, the second "1" will be ignored until a new value arrives (Maybe this object already exists and I haven't found it yet.) solved
there's also this thread from 2013 which outlines the idea of a navigation window or panel where a patch is displayed in a tree hierarchy, with its subpatches as nodes (parent patch is the root node)-- if you click on a node you open that corresponding patch:
My wish for max 10: create another mode like MSP/Jitter mode, which allows me to create model graphs for Machine Learning - and have a backend like tensorflow that executes the models during runtime. That would be soooo cool... This is how such a graph looks like:
It is just inconvenient to create these graphs in python, so you often just make copy & paste from somebody else code, and wonder why the dimensions don't fit...
I always wish i had the max editor to lay them out, it would be much easier to create them and really understand them.
Oh yeah, that reminds me (sort of building off my earlier comment): Non-signal outputs for Gen~. There's some really roundabout ways to do this - such as storing data in a buffer~ object and [peeking] it back out - but being able to output a list of elements from a gen~ patcher would be super useful. Make your own transient detector on a buffer and output a list of transient points!
Also along those lines (perhaps this already exists?) be able to set a specific gen~ object to be non-realtime, while the rest of the patch is running normally? IE, I could loop over a buffer in a gen patch and do some math that I only really need to do once, non-realtime.
Essentially I just want to never have to drop into C or JAVA land ever again :P
I am using live.step. It's a great object. But why are the durations limited? No dotted durations (90 ticks, 180 ticks, ... not allowed)? I am using a workaround with the extra1 at the moment but to allow durations for dotted notes could be easy for the development team and could still be easily handled by the user in the editor. Seems that here a test configuration has survived the release date?
And ... the "grid" (stepcolor, stepcolor2) is only in quaters at the moment? Hm .. difficult orientation when using third based rhythm. At the moment I am using a workaround with stepcolor=stepcolor2 or usestepcolor2=false (no grid) and velocity for orientation but a simple attribute for the grid distance (2, 3, 4, ...) would be a useful improvement and is not too difficult to implement ("small details make a big difference").
- allow UI elements from subpatches be in the main patcher
- proper SVG support for fpic
- jit.catch with a texture mode @output_texture 1
- clear the value of a value object
- reset/change the name of a value object (set name) like in forward/receive
- a ;MAX message for clearing the console (maybe just a short key)
- a „no answer“ 0/1 output of the send object (when no receive)
- on „print“ output a hint from what object the original i/f/s/b comes from (debugging)
An integrated file browser object would still, after all these years, be a breath of fresh air. The look of mild concern (like I'm drinking coffee out of an old army boot) when people see that file selection in my patches is achieved through a bunch of clunky folders is always disheartening. And if someone says "drag n' drop," I'll spit-take the coffee from my old boot and then put it right up your ass.
Help files with examples for every Gen operator. Sure, some of them may seem self-evident if you program, but if you don't and need to learn the concept then a multi-tabbed heelp file for each that clearly demonstrates function would be ideal.
I would love to have more flexibility with movie file import. For my projects, I always need to separate to audio channel to buffer it, and sync the audio-video in the performance and I hate this whole process.
Creating Midi Ports/Cable inside Max like the LoopMidi App from Tobias Erichsen does. The Midi Port Feature seems to work with Mac but not with Windows at the moment? The feature would provide Max For Live users an additional argument to buy the full version of Max. It looks like this is not a trivial job under windows and is maybe the reason why it was not implemented at the first place. Because we are near release date it is maybe an option for Max 8.1.
make dict.view retain expanded/collapsed levels when the correspondent dict object is changed, instead of expanding all levels.
Include a message to set the depth the expanded levels (instead of having to click manually in all those triangles)