Max 8 wish list


    May 28 2018 | 9:13 am
    Hi there!
    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 wonder what others would like to see in 8.

    • May 29 2018 | 7:34 am
      For me I'd love to see something along the lines of Gen-for-max-UI-objects, if that makes sense. Probably won't happen, as there's already JSUI, but... I don't like it. Probably just because I haven't been able to find a good beginner tutorial for it, in regards to Max (I'm poor-but-passable with Java, pretty good with C/C++, and atrocious with javascript). I've been doing a LOT of tinkering with UI objects and layering things to get them to 'feel' the way I want my interface to feel, and it takes up a lot of patching space (and often makes UIs more sluggish than i'd like).
      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).
    • May 29 2018 | 1:12 pm
      - a command to freeze all attributes set in the inspector at once ... - better understanding about how openGL works in Jitter - thorough documentation
    • May 29 2018 | 1:17 pm
      Jitter needs more love
    • May 29 2018 | 4:30 pm
      For all MAX - objects: Please set "ParameterMode Enabled" = 1 as default. That makes using snapshots a lot easier.
    • May 29 2018 | 11:11 pm
      @cerval : i'm not sure i wish that, it could break a lot of things (existing patch and workflow)
    • May 30 2018 | 1:19 pm
      to send something to all objects, there is [universal].
    • May 30 2018 | 1:26 pm
      a hand tool to navigate more easily in large patch
    • May 30 2018 | 5:01 pm
      please free me from having to click 125% zoom every time i open a patch
    • May 30 2018 | 5:14 pm
      - a command to freeze all attributes set in the inspector at once ...
      hover over the middle-left side of an object, click the arrow, Transform -> Changed Attributes to Arguments
    • May 30 2018 | 8:19 pm
      hi I have the same remarks as ECH From facebook to here, never information about a new OpenGL version.... :( I use Max since 1993. I saw MSP arrived, Jitter with great happiness.
      Jitter did a great job with the arrival of ROB RAMIREZ.
      But regularly the question on an OpenGL update is posed and there is no answer ....
      I will pay for Max8, there will surely be a lot of improvement and new things, but we must, we, Max's users are up to date on the technologies used by Max.
      I do not want to leave Max, but sometimes I have the impression of having a train late with Max in front of other visual tools.
      Help me still have some hope for OpenGL and Bullet Physics in GPU for example :)
      Thank you, and I hope this time to have a response from Cycling74
      Laurent
    • May 30 2018 | 8:49 pm
      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
    • May 30 2018 | 9:46 pm
      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.
    • May 31 2018 | 12:06 am
      Oups I did not see this post https://cycling74.com/forums/c74-and-opengl/replies/1#reply-5b0c73c4063b755d6bf630ee
      ROB says 'an OpenGL update for a limited subset of Jitter-GL functionality is in the works for Max 8. '
      for a limited subset of Jitter-GL functionality?
    • May 31 2018 | 2:04 am
      Wine compatibility. All this music stuff is the only reason for still using microsoft windows instead of Linux. Will change and is good to be prepared for.
    • May 31 2018 | 2:23 am
      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
      Thanks for the good work.
      phiol
    • Jun 23 2018 | 1:03 am
      - 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)
    • Jun 23 2018 | 2:44 am
      - 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
    • Jun 23 2018 | 6:38 am
      [zl reg] I [change]
    • Jun 23 2018 | 7:47 am
      further extension of the zl suite of objects so there's less reliance on 3rd-party list processing externals (ie Lobjects etc)
    • Jun 23 2018 | 8:36 am
      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: link
    • Jun 23 2018 | 9:51 am
      @Roman Thilenius Thank you, I was apparently blind.
    • Jul 01 2018 | 9:50 am
      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.
    • Jul 01 2018 | 7:05 pm
      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
    • Jul 25 2018 | 12:27 pm
      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").
    • Jul 28 2018 | 12:42 am
      - 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)
    • Jul 28 2018 | 5:21 pm
      fft capability in gen~!!!
    • Jul 29 2018 | 12:26 am
      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.
    • Jul 29 2018 | 2:24 am
      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.
    • Jul 29 2018 | 5:59 am
      been 6 years since gen~ jit.gen jit.gl.pix and no explanation with the product put out. I find it an odd way to operate the business of a product. leave it at that.
      please just add a bypass on the objects. keeping the node there but bypassed.
    • Jul 29 2018 | 9:39 pm
      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.
    • Aug 08 2018 | 12:35 am
      I love the helpfiles and reference in max and it still could be improved, tiny but helpful:
      1. reveal undocumented methods/messages like "writeas" message to thispatcher or the message "; #SM open" (thanks to source audio in both cases)
      2. reveal secret objects like "opened"
      3. show alternatives to deprecated objects like lcd-object e.g.: "this object is deprecated, use xxx instead"
      4. offer a downloadable offline reference The "Unofficial Max/MSP 6 documentation in PDF format" is still a big help for me.
    • Aug 31 2018 | 5:58 pm
      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.
    • Apr 03 2020 | 11:49 pm
      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)
    • Apr 04 2020 | 5:08 am
      Option to embed pattrstorage data in a patch rather than having to save an external file.
    • Aug 29 2020 | 8:28 pm
      This is probably a real outlier, and something for a future version of Max: ability to render/save very large images from jit.gl.render.
    • Aug 29 2020 | 8:36 pm
      Hey James, this is already possible. What is your procedure?
    • Aug 31 2020 | 4:00 pm
      Ahh - you're right! I looked at my patch again and found unrelated problem - I'm getting BIG images now! Thanks @federicofod!
    • Aug 31 2020 | 4:03 pm
      Didn't do much ^^ Glad it works!
    • Oct 04 2020 | 12:08 pm
      Hello, A wish : to have a Mouse up/mouse down option for the [textbutton] output mode (=the button stays pressed when you keep your mouse/finger on it) ! It would seem particularly convenient at the age of touch screens...
    • Dec 08 2020 | 5:43 pm
      wish list item for someday... [forgive me if there's already an easy solution for this]
      currently importmovie fits content to jit.matrix (stretches image anamorphically to fill the matrix' dimensions) - that's groovy but there are common use cases where one wants to fill or fit the matrix proportionally without writing a bunch of extra logic for cornerpins or source and destination dimensions...
      so for [jit.matrix] I'd love an attribute (like @scaling?) such that flag 0 = fit content to matrix (what it does now, stretches image anamorphically) flag 1 = fill matrix proportionally (scales up image proportionally so it fills matrix and clips extra data) flag 2 = fit to matrix proportionally (scales down image proportionally so it fits within matrix and narrow dimension is 'letterboxed')
      would something like that be re-inventing the flat tire? am I missing something easy/obvious?
    • Dec 08 2020 | 6:37 pm
      Hi James, in this video you can see how to fit an image to width or height. I know it's not a built-in function but for the moment the way to go is to write your own algorithm for it, it's not specially complex after all: https://youtu.be/eqfuEmFmGQU
    • Dec 08 2020 | 7:25 pm
      ^^^ got it - watching now - THX!
    • Dec 09 2020 | 12:50 am
      Max 9 wishlist
      Given the following genexpr code:
      Param plusMe(0); mul_1 = plusMe * 2; add_2 = in1 + mul_1; out1 = add_2;
      Gen~ knows that line two should only be calculated once per vector because it's a decedent of a Param object but before anything descended from an in object.
      This would yield the following pseudocode saving thousands of calculations:
      mul_1 = plusMe*2 for(vectorLength){ add2[i] = in1+mul_1; }
      This would make the practice of putting all one's logic outside the gen~ patcher obsolete. It would also allow for meaningful optimization with branching.
      In general throwing all the gens together seems like the future.
    • Dec 09 2020 | 1:50 am
      A matrix~ like object in gen~.
    • Dec 09 2020 | 2:11 am
      Christmas again? Nice! jit.graph as jit.gl.graph or with texture 1 output.
    • Dec 09 2020 | 10:32 am
      One thing I'd really like to have is to be able to modify other cells from the currently processed cell inside jit.gen. For example: I'm in cell 0 0 and on top of the output for the current cell I'd like to be able to write for example to cell 10 10. This should not be impossible since gen works on the CPU, so it should be able to modify every cell of the matrix from whatever location. That'd be great!
    • Dec 09 2020 | 12:23 pm
      I wish for christmas that mc.sfplay~ and mc.sfrecord~ can accept files that are bigger then 2 GB . Please, I was really a good programmer last year, so I deserve a nice present :-)
    • Dec 09 2020 | 5:56 pm
      i wish for live4max...using native Live devices, a track container, LIve clips, to use as separate little things inside big max patches, no the other way around... that would be oh soooo cool ! max4live is nice, but i miss the "blank page" opening of max patches, and there is too much little prison cells of sound and UI everywhere in Live, contrary to Max. Golden prison cells though, and i would like to be able to order them around, not that they order me around :)
    • Dec 09 2020 | 6:00 pm
      @vichug that’s a really good one. I always wanted max inside clips Rather than devices.
    • Dec 09 2020 | 7:53 pm
      (wat? y'all are crazy, randomly waking up threads of old: this thread is from 2018 😂) ok then... for Christmas, I want Cycling74 to restart the C74 record label( and accept my demo for it😜... here it is, sounds made with Max/MSP: https://soundcloud.com/rajatheresidentalien/cornerjack ).
    • Dec 12 2020 | 5:11 pm
      At very least Cycling74 should do a bandcamp for the releases they already did cds for. i have all the cds, just think it would benefit others to be able to hear them/be able to purchase. Maybe this should be a start of a new thread.
    • Dec 12 2020 | 5:18 pm
      Are there any efforts at a record label for patches? If pay a buck for more finished-art oriented patches.
    • Dec 12 2020 | 5:22 pm
      I want a Max Runtime in WebAssembly please! don't know if that was even existing in 2018?

    • Dec 13 2020 | 1:37 am
      Please add a route info to jit.movie if a movie is playing or stoped. Like [route playstat] -> 0/1
    • Dec 13 2020 | 2:21 am
      Feature requests I'd like of varying feasibility:
      • Give us arrays or access to lists in genExpr without using buffer+loops
      • Would love to have some sort of internal param that tells a genExpr patcher whether it is Gen~ or Gen; most code works in either but a lot of signal rate Gen~ stuff needs modification to function properly in Gen.
      • Textedit needs a major rework or massive feature upgrades - given the capabilities of Max, this object could have the potential to enable Max as a livecoding/scripting environment, which i think would make Max competitive against other software like SuperCollider or TidalCycles (which would be great, because I find the rest of Max to be way more fun than either :P). Currently the amount of text formatting and parsing you have to do to even approach this is frustrating and hacky. Could include: Selected line, REPL style behaviour, some sort of basic configurable parser, etc.
      • live.step and live.grid need improvement. There is no easy way to turn off a step in live.step, and no easy way to dump a column or row from live.grid without dumping the entire sequence.
      • Add more features/methods to the dict object.
      • Allow for the $ symbol to be used in trigger objects
    • Dec 17 2020 | 7:47 pm
      Since i still have problems with blowing up max patches (amxd) with nonsense stye informations, it would be nice if there was something like a "remove all styles"-button.
    • Jan 12 2021 | 11:33 pm
      Please make true that I can't paste (copied) code inside an empty object. This happens all the time to me and it hangs up my patches for minutes while editing.
      example:
    • Jan 12 2021 | 11:42 pm
      i feel like I requested years ago that pasting anything starting with the boxes message into an object should just put the boxes in the patcher instead of the text.
      like... there’s no alternate reality where making that mistake means I want anything else to happen.
    • Jan 12 2021 | 11:57 pm
      @AudioMatt of course, its the own hurryness, but this makes me stress out all the time ;-)
    • Jan 13 2021 | 12:12 am
      i bet that's a difficult one to prioritize development for... that's all about figuring out what mistake the user made which Max should ignore: creating an empty object box when they didn't mean to, or pasting text somewhere they shouldn't have(if Max guesses it's an entire patch you're attempting to paste, what should it do with the empty object box you also created?)
      but ya... i like the way AudioMatt put it, and it does make sense to have it only interpret such text one way:
      like... there’s no alternate reality where making that mistake means I want anything else to happen.
      haha 😂 i dunno... i'd live in an alternate reality where making that mistake causes this song to play everytime:

      malvina reynolds - little boxes

    • Jan 13 2021 | 12:17 am
      haha
    • Jan 13 2021 | 12:34 am
      @raja. literal spit take. Not even kidding
    • Jan 13 2021 | 3:57 am
      i guess the problem is that when pasting 400 characters into an objectbox it takes longer for max to fond out that the object doesnt exist compared to 3 characters. this doesnt make sense, it should be enough to check for the first string until space to find out that the obejct doesnt exist.
    • Jan 13 2021 | 4:12 am
      I mean, just check if the first character is {