@get_max_dictionary(dic:string_or_symb)
@set_max_dictionary(dic:string_or_symb, m:map)
@merge_max_dictionary(dic:string_or_symb, m:map)

These three functions are used to exchange with Max dictionaries. They exists only on the Max version.

@get_max_dictionary(name) read an existing Max dictionary (e.g., created via the dict or dict.serialize object). The name is specified by a string or a symbol. The function returns the corresponding Antescofo representation in the form of a map which may be nested (arrays and sub-dictionaries are supported). In case of errors (the Max dictionary does not exists), undef is returned.

@set_max_dictionary(name, map) overwrite the entire contents of a Max dictionary with the representation an Antescofo value (of type Map). The Max dictionary name must exists and its content is erased with the dictionary​_clearfunction of the Max SDK. If an error occurs (unknown dictionary, impossibilities in the Antescofo -> Max data conversion, etc.), an error message is emited and the return value is undef. If the update of the Max dictionary succeed, teh mapis returned.

@merge_max_dictionary(name, map) partially updates a Max dictionary with an Antescofo Map without overwriting the entire content. The merge is asymmetric, giving priority to map: the value of a key k in the updated dictionary is:

  • The value of k in map, if k is present in the map.

  • The original value in name, if k is not present in the map.