Hi Modalys friends!
I am very happy to announce the release Modalys 3.6.0, a loooong overdue!
Modalys 3.6 is major release and its main bullet points are these:
- New features:
- mlys.lua object allowing scriptural approach to real-time lutherie, sample-by-sample control (nonlinear effects), 3D construction and ultra-fine instrument design. The worlds of textual ModaLisp and realtime Modalys for Max finally meet!
- growing number of examples and documentation goodies: new tutorials and updated help files, thanks to a great community effort during the beta cycle
- entirely redesigned Medit application (3D mesh viewer): visualisation of accesses and holding points (boundary conditions), new cool overlays for file & picked item info, keyboard shortcuts, new axis view etc. Also now available on Windows and can be invoked from within Max.
- .obj 3D mesh files can now be imported (from Blender, Gmesh or Rhino for instance)
- Other improvements & changes:
- compatible with latest Mac OS (Catalina & Big Sur, also on ARM computers)
- Windows Modalys for Max project entirely recompiled and updated (including finite element and lua)
- Matlab objects updated
- Improved overall stability
Best regards,
Robert
Detailed cumulative development build notes for v3.6.0
3.6.0.rc2
- finetuned max help files (thanks to b_hagerty!)
- new example: lua_3d_cymbal_from_obj_file
- medit: new UI items (build & file info at opening)
3.6.0.rc1
- general engine : change of temporary folder (safer…)
- updated documentation
- medit:
- new smooth overlays added: help, item info.
- new display of accesses as blinking yellow blobs
- new display of holding points (boundary conditions) as small red blobs
- redesigned axis display
- redesigned grid display
- lots of fixes on Windows
- 3D finite elements:
- “restrict-line” fixed
- Modalys for Max:
- getting an object’s reference by name could fail.
- new lua examples added
- mlys.lua : avoidance of modalys object name duplicates (with warning)
- mlys help files reviewed and cleaned up
3.6.0.b8…b14:
- mac installer: automatic installation of modalys Max package (by scanning default locations)
- compatibility with macOS 10.15 Catalina and macOS 11 (Big Sur), including when running under “rosetta2” emulation on a new ARM mac machine.
- fully notarized installer
- recompiled, correctly codesigned Modalisp and Medit
- updated Matlab objects (64bit)
- fixed violin bridge object (long-standing issue…)
- Medit (mesh visualization):
- code up-to-date
- medit.exe on Windows (long overdue…)
- new help overlays
- Modalys for Max:
- Windows:
- another looong overdue: finite elements on Windows
- externals have been entirely recompiled to reflect latest features and fixes
- new Max ‘extra’: Modalys tutorials (thanks to Olav Lervik!)
- an old bug has been fixed that could explain some strange past behaviors…
- Windows:
- mlys.lua :
- new examples
- new Parametric2dCurve class for easy 3d object construction (see the lua_3d_parametric_object example)
- return value from (update() function) did nothing!
- the dimension parameter of a mlys.lua object is now automatic if “-1” is set (which is by default for new objects).
- mlys.get_info can now return strings (and, of course, numbers)
- bow and felt connections implemented
- moved from luajit to moonjit lib
- new function modalys.view_mesh(–mesh ref–): to invoke Medit
- new object modalys.inlet_observer to monitor inlet updates. With “modalys.inlet_observer.callback = my_callback” you shall assign a callback of your own receiving 2 parameters: inlet# and current float value.
3.6.0.b7:
Modalys for Max
- mlys.lua:
- “mlys” alias namespace created. So instead of “modalys.freq_to_midi”, you may write the more compliant “mlys.freq_to_midi”
- aliases added to functions, to match legacy namings: modalys <-> mlys, make_object <-> create_object,
make_connection <-> create_connection, make_mesh <-> create_mesh, make_point_output <-> create_point_output, extend_mesh <-> create_mesh
3.6.0.b6:
Modalys for Max
- a long-standing request: modifying an attribute in mlys.expression (and now mlys.lua) doesn’t erase the script content anymore!
- mlys.lua:
- improved stability.
- modalys.release now accepts any series of item references. For instance modalys.release(mystring,mymesh,ctrl1)
- new function modalys.compute_modes(–object reference–)
- new function get_pitched_finite_element_object(–parameters–). Parameters are: “mesh”, “name”, “block” (a mesh that describes the fixed nodes), “midinote” or “frequency”, “modes” (amount), “thickness” (for 2D mesh), “density”, “young”, “poisson”, “constloss”, “freqloss”.
- new function modalys.freeze_object(–object reference–) For now, it is only for actual objects (strings, tubes etc.) but the plan is to extend it to access and controllers.
- new function modalys.get_mesh(–object reference–) to get the mesh reference of a given 3D-based object.
- new objects implemented in create_object (more to come…)
- new connections implemented in create_connection (more to come…)
3.6.0.b4:
Modalys for Max
- mlys.lua
- new function modalys.midi_to_freq(–midi note–)
- new function modalys.freq_to_midi(–freq–)
- new function normalised_random()
- new function modalys.create_access(–parameters–). Parameters are: “kind” (normal, trans0 etc.), “where” (object ref), “name”, “location”/“position” (can 1- or 2-dimensional, or a node etc.)
- new function modalys.create_point_output(–parameters–)
- new function modalys.create_object(–parameters–)
- new function modalys.create_connection(–parameters–)
- new function modalys.create_mesh(–parameters–)
- new function modalys.extend_mesh(–parameters–)
- new function modalys.transform_mesh(–parameters–)
- new function modalys.save_mesh(–parameters–). Parameters are: “mesh”, and “path” (can be relative).
- new function modalys.create_connection(–parameters–)