CHANGE LOG ---------- v2.1.1: Max externals only New Features / Changes: - Under-the-hood code cleanup. Bug Fixes: - No bugs found or reported. ---------- v2.1.0: Max externals only New Features / Changes: MIAP.map: - In edit_nodes interaction mode (@mode 4) shift-click on a selected node now un-selects it. - Added new @cartesiangridsnap and @polargridsnap attributes which allow quantized placement and moving of nodes for create_nodes and edit_nodes interaction modes (defaults set to 0). - @cartesiangridsnap takes precedence, when both attributes are set to 1. - Updated default polar grid display to have 72 radial divisions (every 5 degrees) and 15 concentric circles. - Added @reportmessages attribute to toggle on/off sending copy of messages sent to MIAP/MIAP~ object out of left outlet. - Added @reporthints attribute to toggle on/off sending helpful hint messages out of the left outlet (prepended by 'hint' for use with [route]) to instruct the user on map editing options, based on current interaction mode, etc. - Reference xml doc also now has this information in the @mode attribute section. - Snippets and MIAP.map help patch have been updated as per the above new attribute/functionality. Bug Fixes: - No bugs found or reported. ---------- v2.0.0: Max externals only New Features / Changes: - Updated cJSON to v1.7.18. - Added extras/MIAP Overview.maxpat that references new xml docs. MIAP/MIAP~: - Added support for node_trim message (in place of node_attenuation, though that messages is still supported for backwards compatibility). - JSON maps now written with "trim" key instead of "attenuation" key accordingly (hence major version number increment). - JSON map reading still supports "attenuation" key as well, for backwards compatibility. - Now allowing virtual nodes to link to silent nodes (in addition to speaker nodes). This allows for smoother fade-out map zones (and is apparently also supported in Cue Station). - Updated trajectory right outlet reporting to prepend "trajectory" before "position" message sent during trajectory playback/animation. - Pre-2.0.0 example output: `position 0. 0.` - 2.0.0+ example output: `trajectory position 0. 0.` - Added "get_coords" message to report coords out right outlet. - Updated formatting of gains list in MIAP and MIAP~ (when @report 1): - List is now entirely composed of gains (not an interlaced list of channel # / gain pairs). - Gains of 0. (linear amp) are now inserted for maps with non-contiguous node channel ranges. MIAP~: - Added support for MC signal outlet if no optional 2nd argument provided. MC functionality allows for more flexibility when loading maps with varying numbers of speaker/derived nodes. - Requires restart of DSP signal chain to update MC channelcount (i.e. toggling DAC off/on). - Updated signal outlets to form a one-to-one mapping of outlet number to channel number. - Silent signal will be output out of appropriate outlets/channels for maps with non-contiguous node channel ranges. - When using traditional signal outlets, any node channel that exceeds the number of supported signal outlets will be ignored. MIAP.map: - create_trisets mode now supports triset creation/deletion via mouse interaction! - create_nodes mode now supports node creation/deletion via mouse interaction (shift-click to delete)! - edit_nodes mode now supports selection of nodes, which in turn allows editing of that node's type, channel, and trim (ala @nodetype, @nodetrim, and @nodechannel). - @nodetype determines the type of node created when in create_nodes mode, and in edit_nodes mode you can change that type. - When a node is selected in edit_nodes mode, @nodetype, @nodetrim, and @nodechannel all update to display appropriate values associated with that node. - Added create_links and edit_links modes which allow for creation and editing of virtual and derived node links via mouse interaction. - Added @linkweight attribute to display and edit selected link weights. - Corrected @gainsmode to only control display of derived node link weights (virtual node link weights are not gains). - Added weight percentage to virtual node link weights display. - Added @nodechannels and @linkweights attributes to enable/disable display of corresponding text. - Now sending all messages "wirelessly" to the "server" MIAP/MIAP~ object via object_method_typed(). We still send all messages fully formed out of left outlet, for informational purposes (i.e. could be useful to generate scripts for map creation/editing). - Help patches updated accordingly. - Added "get_coords" message to report coords out left outlet. - Added optional display of link arrows making clear the nature of the link. - @linkarrows enables/disables display - @linkarrowsize change arrow size MIAP.meyer: - Successfully compiled for Windows! Bug Fixes: - Fixed bug in [MIAP~] where when reportgains was set to 1, gains list was being reported out of right outlet without "gains" symbol prepended to the start of the list (for use with [route], etc.). - Fixed bug where delete_node wasn't properly deleting links in other nodes that specify deleted node as its targetnode. - Fixed bug in [MIAP.map] where @bgcolor and @gridcolor were not immediately visually updating. - Fixed bug in [MIAP.map] where coords messages wasn't updating coords in bound MIAP/MIAP~ object. ---------- v1.4.1: Max externals only New Features / Changes: - Updated to use max-sdk-8.2.0 (migrating to Cmake for project creation). - Now supporting Intel and Apple Silicon processors on macOS 10.14+. Bug Fixes: - No bugs found or reported. ---------- v1.4.0: Max externals only New Features / Changes: - Added clear_trajectory message (mirroring clear_map functionality). - Changed default filename used for write_trajectory to untitled_trajectory.json (was titled untitled_map.json). Bug Fixes: - Fixed issue where write_trajectory, write_mapA, and write_mapB were writing empty JSON files. ---------- v1.3.0: Max externals only New Features / Changes: - Added Windows externals (minus MIAP.meyer)! Hopefully Meyer will handle MIAP.meyer codebase in future, handle cross-compilation with their libraries, etc. - Significant improvements in UI performance (drawing time, mouse interaction, etc.). - Significant internal code refactor/cleanup. Bug Fixes: - Fixed trajectory repetitions misbehavior caused by CLASS_ATTR_FLOAT instead of CLASS_ATTR_DOUBLE in [MIAP] and [MIAP~] externals. ---------- v1.2.4: Max externals only New Features / Changes: - Update Max externals to build with Max SDK 7.3.3. Bug Fixes: - No bugs found or reported. ---------- v1.2.3: New Features / Changes: - Replaced Jannson with cJSON for JSON parsing, for easier cross-platform compilation. - Added OSX BASH build scripts for all Max externals, as well high-level make_all/clean_all.sh for Max and Pd externals. Bug Fixes: - No bugs found or reported. ---------- v1.2.2: New Features / Changes: MIAP/MIAP~: - During trajectory recording, MIAP/MIAP~ wasn't outputting gains. Fixed this. - Trajectory scaling was being applied after rotation, causing distortion in the trajectory shape. Fixed order of transformations: scale -> rotate -> translate. - Playback behavior with @repetitions 0. was slightly broken. Fixed it. Now changing repetitions during playback doesn't stop playback... It just does the sensible thing, given the circumstance. If you change repetitions from 0. to nonzero during playback, it considers loopcount as somewhere between 0. and 1., based on current position in trajectory. - Start behavior during @repetitions 0.0 is fixed (it was restarting from beginning of trajectory, even if inappropriate). Bug Fixes: - No bugs found or reported. ---------- v1.2.1: New Features / Changes: - Added trajectory recording functionality into Max versions of MIAP/MIAP~. - Fixed issues on GNU/Linux with Pd externals. Bug Fixes: - No bugs found or reported. ---------- v1.2: New Features / Changes: - Fixed/improved trajectory functionality in Max externals, adding MIAP.map attribute to enable/disable display of trajectories. - Added possibility of infinite playback repetitions in MIAP/MIAP~ Max externals (i.e. @repetitions 0.0) - Renamed Pd externals to *.pd_darwin for compatibility with Pd-extended. - Built Pure Data externals to run in 32-bit and 64-bit versions of Pure Data (as well as Pd-extended). Possible Bugs: - On GNU/Linux there seems to be some strange cross-class method confusion happening. For example, if MIAP is instantiated first, and then MIAP~ is instantiated after that, MIAP~ seems to inherit all of MIAP’s methods, including the constructor! This may be because both objects contain translation units built from the same source, and methods aren’t declared static. Interesting that the OSX Pd externals work perfectly... ---------- v1.1: New Features / Changes: - Now Max externals run on OSX 10.7 and later (previously supported 10.8 and later). - Built Pure Data externals (32-bit) for GNU/Linux. - Rebuilt all externals linking to Jansson v2.7 (previously 2.6). - Renamed MIAP.map attributes for displaying node ids, triset ids, node trims. - @nodeidmode -> @nodeids - @nodetrimmode -> @nodetrims - @trisetidmode -> @trisettrims - Added MIAP.map attribute for displaying links (@links). - Updated examples/MIAP_mix_sources patch: - Now the patch demonstrates how to dynamically move nodes around in a map and randomly change channels associated with nodes. This example uses [js z.jsonio] to read the map JSON file and grab relevant node material for use in the map animation routines. The [dict] object could easily be used instead... Bug Fixes: - No bugs found or reported.