Skip to contents

musicMCT (development version)

  • vl_generators() now gives correct results for sets which fail optc_test()
  • minimize_vl() now returns better results when method="hamming" by allowing for voice crossings (#4).
  • brightness_comparisons() and brightnessgraph()gain a goal parameter that allows voice-leading brightness relationships between different sets to be studied.
  • New fpmod() allows for safer modulo division in contexts with octave equivalence.
  • New clampitt_q() finds the sets that are “Q-related” to an input (Clampitt 1997, 2007).
  • vlsig() parameter index now defaults to NULL, returning a matrix of all elementary voice-leadings.
  • New inter_vlsig() finds elementary voice leadings between sets of different Tn-types.
  • Parameter n for tni() gains a default value of NULL, in which case the index n is chosen to create the contextual inversion which keeps the first and last entries of set fixed.
  • primary_colornum() gains a signvector_list parameter to pass to colornum(), allowing it to work properly for hyperplane arrangements other than the “modal color theory” arrangement.
  • New make_infrared_ineqmat() adds a new family of hyperplane arrangements for studying voice leading.

More flexible handling of OPTIC symmetries

  • Set theory functions including tn(), tni(), startzero(), and so on gain an optic parameter, which allows the user to specify the OPTIC symmetries to consider.
  • New normal_form() calculates the normal form of a set under any combination of OPTIC symmetries, following the algorithm described by Hook (2023, 416-8).

musicMCT 0.2.0

CRAN release: 2025-07-21

New ineqmat features

New behaviors for quantization functions

  • Affected functions are quantize_color(), quantize_hue(), and set_from_signvector().
  • Upon failure, quantization functions now return a result whose format matches expected success format depending on value of reconvert parameter. That is, if reconvert=TRUE, failure to quantize results in a NA vector (as before), but if reconvert=FALSE, failure to quantize results in a list with entries set and edo, both of which are NA.
  • Quantization functions gain a target_edo parameter, which allows user to search for desired scales in a specific edo rather than all possible edos.

New Functions

Updates to Existing Functions

  • brightnessgraph() now returns an invisible copy of the igraph graph object underlying the plotted brightness graph, instead of an invisible NULL.
  • sim() gains a goal parameter, which allows it to calculate the interscalar interval matrix for two sets.
  • vl_generators() now throws a warning instead of an error when set is perfectly even, returning a 2-by-0 matrix.

musicMCT 0.1.2

CRAN release: 2025-06-05

  • Updated writeSCL() to require user to enter a path.
  • Updated vignette “Visualizing Higher Dimensions” to reset par() changes.

musicMCT 0.1.1

  • Removed extraneous license file.

musicMCT 0.1.0

  • Initial CRAN submission.