Nothing
ineqsym() and related functions.ineqsym() now returns the correct permutation matrix when involution=TRUE. Previously, the
involution parameter affected returned sets but not returned permutation matrices.make_infrared_ineqmat() now defaults to TRUE rather than FALSE for its include_wraparound
argument.monochrome_vl() detects instances where the voice leading between two modes of a scale cannot be decomposed
by passing through some mode of a given contrasting scale.vl_signvector() is a wrapper for signvector() that interprets inputs as voice leadings
rather than scales.move_to_hyperplane() finds the point where a chosen line and hyperplane intersect.point_on_flat() generates a concrete point on any given flat of a hyperplane arrangement.ineqsym()set is NULL.
New parameter card goes along with this change: it is necessary to specify the size of the permutation
matrix if set is NULL.set is now NULL.a is interpreted. Essentially it is now the inverse (mod card) of the previous
implementation of a. The new method enhances consistency with other standards and with the
permutation-matrix view of the function.clampitt_q(), so that it gives correct results when set includes transpositionally symmetrical
subsets or doubled notes.ianring() gains is_interactive parameter which allows explicit control over whether the function
opens a browser window (mainly to disable the browser during tests).project_onto() now works for hyperplane arrangements that are not central, such as those from
make_roth_ineqmat() and make_rosy_ineqmat().scale_palette() gains an ineqmat parameter, which improves completeness of results for arrangements
other than the modal color theory arrangement.brightness_comparisons() and brightnessgraph() gain a goal parameter that allows voice-leading brightness
relationships between different sets to be studied.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 specified ineqmat when
the parameter signvector_list is NULL. (For instance, colornum(set, ineqmat="pastel") searches
the global environment for pastel_signvectors.)fpmod() allows for safer modulo division in contexts with octave equivalence.inter_vlsig() finds elementary voice leadings between sets of different Tn-types.make_infrared_ineqmat() adds a new family of hyperplane arrangements for studying voice leading.minimize_vl() now returns better results when method="hamming" by allowing for voice crossings (#4).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.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.vl_generators() now gives correct results for sets which fail optc_test().vlsig() parameter index now defaults to NULL, returning a matrix of all elementary voice-leadings.normal_form() calculates the normal form of a set under any combination of OPTIC symmetries, following
the algorithm described by Hook (2023, 416-8).tn(), tni(), startzero(), and so on gain an optic parameter, which allows the
user to specify the OPTIC symmetries to consider.make_anaglyph_ineqmat() allows construction of a new family of hyperplane arrangements
(anaglyph arrangements) which study voice leadings between sets of different set classes.anazero_fingerprint() provides granular information about the types of hyperplanes that a
pair of sets lie on in the anaglyph arrangement.howfree() and colornum() because anaglyph arrangements require special handling.make_black_ineqmat() and make_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.make_offset_ineqmat() creates version of standard ineqmats (MCT, white, black, etc.)
which have been translated to be centered on an arbitrary set.makeineqmat(), make_black_ineqmat(), make_white_ineqmat(),
make_roth_ineqmat()) now return a consistent value (integer(0)) rather than various errors
when card is small.roth_ineqmats.rda with precomputed results from make_roth_ineqmat();
accessed with new get_roth_ineqmat().make_white_ineqmat().quantize_color(), quantize_hue(),
and set_from_signvector().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.target_edo parameter, which allows user to search
for desired scales in a specific edo rather than all possible edos.clockface() offers a simple plotting mechanism to visualize sets on
a pitch-class clockface (with numbers corresponding to any equal temperament).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.set_to_distribution(), distribution_to_set(), and dft().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.Any scripts or data that you put into this service are public.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.