Understanding Max 6 Tutorial 3, 32-bit Integers in Max 6.1

    Mar 15 2013 | 11:46 pm
    As someone just getting into Max 6, and specifically the new 6.1 version, I had trouble trying to understand tutorial #3 in Max Basics when it came to inputting a very large number in a floating point number box and being told it would appear as a negative number (-2147483648 to be exact) in an integer number box. I was running Max in 64-bit mode, which is relatively new, and thought maybe because it was a 32-bit integer system that it was behaving differently from the tutorial because I was running it in 64-bit mode. I changed it to run in 32-bit mode (I am on OSX by the way) and got the result that the tutorial told me I would get.
    I'm having a hard time understanding why this is though, could someone give me a quick explanation? Or at least point me in the right direction in understanding this idea? I'm assuming that running it in 64-bit mode allows it to use 64-bit integers, but how does that differ compared to 32-bit integers and will I have any issues with understanding Max because of this? I jumped the gun as far as running it in 64-bit mode, I'm sure I don't need it to run tutorials haha.

    • Mar 16 2013 | 12:08 am
      "I'm assuming that running it in 64-bit mode allows it to use 64-bit integers"
      no, the 64 bit mode refers to the processor type of your computer.
      that max 6.1 also introduces 64 bit numbers is — more or less — only conincidence.
    • Mar 16 2013 | 12:28 pm
      The 32- vs. 64-bit thing has much more to do with addressing memory than the ability to use 64-bit integers. The possibility of using 64 bits for integers has been around for a bit longer than 64-bit addresses. But the convention of passing data in units of 32 bits has been deeply ingrained in Max/MSP even longer—it's basically been a fundamental assumption in Max since day one.
      Extending Max to support 64-bit integers "through patch cords" is not impossible, but there are some thorny issues and I'm not sure it's possible to make this change without automatically breaking all external objects in existence. We'll know more when the updated SDK for 6.1 is released. But if numbox can only handle 32-bit integers, it seems likely that the data structure used to pass data between objects hasn't been changed. Or at least not enough to handle larger ints.
      Question: what do you need larger integers for?