musicMCT 0.3.0
CRAN release: 2025-11-03
-
brightness_comparisons()andbrightnessgraph()gain agoalparameter that allows voice-leading brightness relationships between different sets to be studied. - New
clampitt_q()finds the sets that are “Q-related” to an input (Clampitt 1997, 2007). -
colornum()now tries to automatically match a signvector list to the specifiedineqmatwhen the parametersignvector_listisNULL. (For instance,colornum(set, ineqmat="pastel")searches the global environment forpastel_signvectors.) - New
fpmod()allows for safer modulo division in contexts with octave equivalence. - New
inter_vlsig()finds elementary voice leadings between sets of different Tn-types. - New
make_infrared_ineqmat()adds a new family of hyperplane arrangements for studying voice leading. -
minimize_vl()now returns better results whenmethod="hamming"by allowing for voice crossings (#4). -
primary_colornum()gains asignvector_listparameter to pass tocolornum(), allowing it to work properly for hyperplane arrangements other than the “modal color theory” arrangement. - Parameter
nfortni()gains a default value ofNULL, in which case the indexnis chosen to create the contextual inversion which keeps the first and last entries ofsetfixed. -
vl_generators()now gives correct results for sets which failoptc_test(). -
vlsig()parameterindexnow defaults toNULL, returning a matrix of all elementary voice-leadings.
More flexible handling of OPTIC symmetries
- 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). - Set theory functions including
tn(),tni(),startzero(), and so on gain anopticparameter, which allows the user to specify the OPTIC symmetries to consider.
Anaglyph Arrangements
- New
make_anaglyph_ineqmat()allows construction of a new family of hyperplane arrangements (anaglyph arrangements) which study voice leadings between sets of different set classes. - New
anazero_fingerprint()provides granular information about the types of hyperplanes that a pair of sets lie on in the anaglyph arrangement. - New behavior for
howfree()andcolornum()because anaglyph arrangements require special handling.
musicMCT 0.2.0
CRAN release: 2025-07-21
New ineqmat features
- New
make_black_ineqmat()andmake_gray_ineqmat()allow new transposition-sensitive hyperplane arrangements to be studied; ineqmat parameter for other functions (e.g.signvector()now accepts “black” and “gray” as options. - New
make_offset_ineqmat()creates version of standard ineqmats (MCT, white, black, etc.) which have been translated to be centered on an arbitrary set. - Creation functions for ineqmats (
makeineqmat(),make_black_ineqmat(),make_white_ineqmat(),make_roth_ineqmat()) now return a consistent value (integer(0)) rather than various errors whencardis small. - New data set
roth_ineqmats.rdawith precomputed results frommake_roth_ineqmat(); accessed with newget_roth_ineqmat(). - New data sets for pastel and white arrangements (for cardinalities <= 6) uploaded to modalcolortheory repository and linked in the documentation for
make_white_ineqmat().
New behaviors for quantization functions
- Affected functions are
quantize_color(),quantize_hue(), andset_from_signvector(). - Upon failure, quantization functions now return a result whose format matches expected success format depending on value of
reconvertparameter. That is, ifreconvert=TRUE, failure to quantize results in aNAvector (as before), but ifreconvert=FALSE, failure to quantize results in a list with entriessetandedo, both of which areNA. - Quantization functions gain a
target_edoparameter, which allows user to search for desired scales in a specific edo rather than all possible edos.
New Functions
- New
clockface()offers a simple plotting mechanism to visualize sets on a pitch-class clockface (with numbers corresponding to any equal temperament). - New
ianring()creates a convenient way to open a browser window to information about the input set on Ian Ring’s website The Exciting Universe of Music Theory. - New functions for basic applications of the DFT to set theory are added. These include
set_to_distribution(),distribution_to_set(), anddft().
Updates to Existing Functions
-
brightnessgraph()now returns an invisible copy of the igraph graph object underlying the plotted brightness graph, instead of an invisibleNULL. -
sim()gains agoalparameter, which allows it to calculate the interscalar interval matrix for two sets. -
vl_generators()now throws a warning instead of an error whensetis perfectly even, returning a 2-by-0 matrix.
