Val

From Xenharmonic Wiki
Jump to navigation Jump to search
Icon-Beginner.png This is a beginner page. It is written to allow new readers to learn about the basics of the topic easily.
The corresponding expert page for this topic is Vals and tuning space.

A val — short for valuation — is like an algorithm or procedure for finding out how to approximate frequency ratios (intervals of just intonation (JI)) with the pitches of an equal tuning such as an edo. This therefore assumes either that you want to use an equal tuning to approximate specific harmonies or that you have some other more indirect use in mind.

Motivation

If you want to find an approximation to a just interval, the immediate question is: why would you need an algorithm instead of just looking at the direct approximation possible in the edo? The answer is to avoid contradictions. For example, it might not be true that ~6/5 × ~5/4 = ~3/2 or that ~9/1 × ~5/1 = ~45/1 if you are just always using the direct approximation of each of these frequency ratios (6:5, 5:4, 3:2, 9:1, etc.) in the edo, because of something called inconsistency, which means if you know what the intervals that you want to combine are, then combining their approximations in the edo does not give you the same result as multiplying their ratios first and then using the direct approximation of that in the edo. When this happens, we say that the arithmetic is inconsistent. Therefore when this does not happen, we say that the result is consistent.

Unfortunately, when this happens, it is not possible to fix the inconsistency, except by using a different edo that approximates the intervals better so that the multiplication or division of their approximations is consistent, but that is not actually necessary. Plus, even if you did that, there would still be other inconsistent ratios because an approximation cannot be perfect, so you cannot truly eliminate the inconsistency completely. Rather than giving up and saying that we cannot guarantee that ~6/5 × ~5/4 = ~3/2 or ~9/1 × ~5/1 = ~45/1 or ~135/128 × ~24/25 = ~81/80, etc. in our chosen edo, it turns out we can actually guarantee this if we are willing to allow one or more of these ratios to not use the closest approximation, especially considering that we probably do not mind using the second-best approximation in more complex intervals if we can guarantee that the arithmetic never fails us. A val will allow us to do that, which brings us to…

Definition

A val is a list of numbers telling you the approximation of each prime harmonic used in an edo in terms of steps, where by prime harmonic we mean each frequency ratio p/1 (where p is a prime number). This list of integers by convention corresponds to all primes up to some largest prime (the limit) so that we can tell what number represents the mapping of what prime by its place in the list. 1st place is prime 2's mapping (a.k.a. the edo), 2nd place is prime 3's mapping, 3rd place is prime 5's mapping, 4th is prime 7's, etc. The val is used to understand the edo's approximations to ratios involving those primes, like 2 × 5 / 3 / 3 = 10/9 for primes {2, 3, 5}. This list does not have to be the closest approximation for each prime, but it usually is. Thus a val is essentially just a list of numbers that we are interpreting as having a certain meaning.

Example: 26edo

  • prime 2 is mapped to 26 steps (by definition, as we are equally dividing 2/1 into 26 steps, each representing an interval with frequency ratio 21/26/1)
  • prime 3 is mapped to log2(3) × 26 = 41.209… steps, which we round to 41 steps (because otherwise we are using frequency ratios not present in 26edo), meaning 241/26 = 2.983…/1 is the frequency ratio of 26edo that we use to approximate the 3/1 frequency ratio, so the correct statement is prime 3 is mapped to 41 steps (not a fractional amount)
  • by the same procedure, prime 5 is mapped to 60 steps, as a result of rounding log2(5) × 26 = 60.370…, meaning 260/26 = 4.950…/1 is the frequency ratio of 26edo that we use to approximate the 5/1 frequency ratio.

Note that when we take the closest approximation of each prime (corresponding to rounding rather than e.g. using the second-best approximation possible) we call it a patent val, therefore, the "5-limit patent val" of 26edo is 26 41 60], where the limit is 5 because that is the highest prime we are considering.

Using a val

Using the 26edo val 26 41 60] as our example, say we want to figure out how 9/8, 5/4 and 9/8 × 5/4 = 45/32 are mapped.

First we have to find the prime factorization of our intervals (then we deduce the mapping from the prime factorization and the val):

  • 9/8 = (3 × 3)/(2 × 2 × 2)
  • 5/4 = 5/(2 × 2)
  • 45/32 = (3 × 3 × 5)/(2 × 2 × 2 × 2 × 2)

Now all we do is substitute each occurrence of each prime with adding (or subtracting if we are dividing) the corresponding number of steps for that prime given by our val:

  • 9/8 is mapped to (41 + 41) - (26 + 26 + 26) = 82 - 78 = 4 steps (so represented by a frequency ratio of 24/26 = 1.112…/1)
  • 5/4 is mapped to 60 - (26 + 26) = 60 - 52 = 8 steps (so represented by a frequency ratio of 28/26 = 1.237…/1)
  • 45/32 is mapped to (41 + 41 + 60) - (26 + 26 + 26 + 26 + 26) = 142 - 130 = 12 steps (so represented by a frequency ratio of 212/26 = 1.377…/1)

That is a successful use of a val. The arithmetic works out nicely: the approximation of 5/4 times the approximation of 9/8 is the approximation of 45/32. Using backslash notation to denote the number of steps in an edo, these are 4\26, 8\26, and 12\26, respectively, so that the underlying "logic" of the approximations being followed is 4\26 + 8\26 = 12\26.

Now let us compare to the closest approximations:

  • log2(9/8) × 26 = 4.418… which rounds to 4 steps
  • log2(5/4) × 26 = 8.370… which rounds to 8 steps
  • log2(45/32) × 26 = 12.788… which rounds to 13 steps

So here we can see that 9/8 × 5/4 = 45/32 is inconsistent because 4 + 8 is not equal to 13, in other words, 4 + 8 = 12 fails. So we can see that the val "fixes" the 13 to 12 by obeying an internal logic provided by the val; in different contexts it may be different intervals that are fixed; not necessarily the more complex one, though usually that is how it works for edos of interest.

So you may have noticed that there was quite a bit of repeated addition we can simplify, so let us note how we can simplify it exactly. Specifically, using exponent notation and not omitting implicit "to the power of 0"'s, the prime factorizations we worked out above are equivalent to:

  • 9/8 = 2-3 × 32 × 50 which we can notate as [-3 2 0
  • 5/4 = 2-2 × 30 × 51 which we can notate as [-2 0 1
  • 45/32 = 2-5 × 32 × 51 which we can notate as [-5 2 1

These notations are called monzos; in other words, all a monzo really is is a shorthand for the prime factorization of an interval. Notice that the angle bracket on a monzo is on the right while on a val it is on the left, to indicate the naturalness of combining vals with monzos and to distinguish them, though often you can just use only square brackets if it is clear from context.

Did you notice that [-3 2 0 + [-2 0 1 = [-5 2 1? Specifically, try adding corresponding numbers in the lists; -3 with -2 gives -5, 2 with 0 gives 2, 0 with 1 gives 1. That is not a coincidence, but the same thing as multiplication except we are doing it with an additive notation.

Now equipped with our funny notation for a val and a monzo, we can do the exact same thing we did before — calculating the mappings — but using this very dense but efficient notation, where we express "mapping the interval described by the monzo by a val" as simple juxtaposition with angle brackets on the outskirts, where we multiply corresponding numbers in the list and then add them together, like so:

  • mapping of 9/8: 26 41 60][-3 2 0 = 26 × -3 + 41 × 2 + 60 × 0 = -78 + 82 + 0 = 4 (steps of 26edo)
  • mapping of 5/4: 26 41 60][-2 0 1 = 26 × -2 + 41 × 0 + 60 × 1 = -52 + 0 + 60 = 8 (steps of 26edo)
  • mapping of 45/32: 26 41 60][-5 2 1 = 26 × -5 + 41 × 2 + 60 × 1 = -130 + 82 + 60 = 12 (steps of 26edo)

This is all very tedious, but in practice using a val is much simpler, because you do not need to do this, all you need to know is 5/4 is mapped to 8\12 and 3/2 is mapped to 15\26, therefore 9/4 is mapped to 30\26, therefore 9/8 is mapped to (30 - 26)\26 = 4\26, so that since we know 9/8 × 5/4 = 45/32, the mapped version of 45/32 will just be 4 + 8 = 12. This method guarantees that you never contradict yourself, even if you are technically using suspicious approximations.

For the mathematically inclined, note that this operation is the same as taking the dot product between the monzo and val interpreted as ordinary vectors.

Importance

The guarantee that there are no contradictions comes with an interesting feature: somehow, you have managed to approximate JI in an internally-consistent way despite the fact that the approximations get worse the more you combine the errors so can get arbitrarily inconsistent. This corresponds to tempering out an infinite set of commas, though there is a finite number of simple/musically relevant commas; that set is simply the set of all intervals that are mapped to 0 steps (1/1) by the val. This explains where the additional "structure" went — if there are two or more primes, then you need to specify two or more integers in the exponents of the prime factorization (a.k.a. in the monzo). So we have lost information and structure by simplifying everything to a single integer coordinate; exactly the information that corresponds to equating any two intervals whose difference is one of the commas tempered, so we have found a precise sense in which we can equate two nearby intervals that are not actually equal — by mapping according to a val that maps the difference to zero. In fact, you do not have to use an edo tuning as you could use multiple vals simultaneously to map a single interval if you want to preserve more of the information in JI rather than just increasing the size of the edo; this corresponds to regular temperaments generally rather than just the 1-dimensional ("rank-1") case that vals correspond to. Therefore, a val specifies a rank-1 temperament a.k.a. an equal temperament.

Furthermore, there is actually a lot of applications of vals and monzos that are not necessarily about approximating things in edos or even regular temperaments for that matter, discussed in #Applications, though all of them do still use the idea of the mapping provided by the val, so really, a val is a mapping from JI to the numbers with certain properties.

Mathematical definition

Mathematically, a val is a type of function that inputs a rational number (ratio) and outputs a number of steps that represents what interval of the edo we use to approximate that frequency ratio. If a/b is our ratio and k is the output of the function, then the interval* of N-edo is 2k/N if we assume a pure octave tuning which is often written with the backslash notation.

It is not just any such function though; it is a function with a special property called linearity that allows our arithmetic to be internally consistent (having an internal logic) in the way described above; here internally consistent is meant in the English sense, so should not be confused with consistency in the aforediscussed technical sense. The most obvious use of a val (the one discussed in the example) is to algorithmically determine JI interpretations of intervals in edo, which is called using the edo as an equal temperament or rank-1 temperament, where rank-1 means that it corresponds to a 1-dimensional grid of notes related by the same (usually irrational) frequency ratios.

Also note that in practice vals are very far from just any list of positive integers; rather, they are generally equal to or one off from the lists of integers that correspond to a patent val.

Warts and generalized patent vals

The algorithm/process for producing a val does not actually require us to use a purely-tuned 2/1 (octave); instead we can stretch or compress the octave, resulting in potentially different mappings for primes, which is more common the more off the prime is and the more we alter the octave. This can give us a sense in which certain vals which are not patent vals are patent in a more broad sense, hence generalized.

This works by instead of doing log2(p) (where p is prime) we use log2.01…(p) or something to that effect, where 2.01/1 is our altered version of 2/1. The val produced by a slight alteration is usually the same, so there are actually continuous ranges where the val produced is the same.

For example, let us say we want to interpret 104edo (104-tone equal temperament) as a 19-limit temperament; there is two possible mappings to use for 5; all primes up to and including 19 are sharp except for 5 which is quite flat, which causes a lot of inconsistencies; therefore a more natural val to use than the patent val is using the second-best mapping for 5, as log2(5) × 104 = 241.4805 is very close to exactly off anyways, and given the precision of 104edo, using the second-best mapping is very reasonable, as usually the sharpness of prime 5 cancels out with the sharpness of other primes when constructing ratios from them. But if we basically always want to use the patent val except for a slight modification to a second-best mapping for a handful of primes, do we really need to specify the full val every time? The answer is of course no.

We can specify the patent val of N-edo as just N, then we can specify each prime we want to map to the second best approximation by a cryptic letter shorthand:

  • adding a means you make the mapping of 2 worse
  • adding b means you make the mapping of 3 worse
  • adding c means you make the mapping of 5 worse
  • adding d means you make the mapping of 7 worse
  • etc.

So we can refer to "104c" (not to be confused with 104 ¢ (cents)), where we mnemonically think "a, b, c; 3rd letter; 3rd prime is 2, 3, 5; there is one c so we make the mapping of prime 5 worse (further from just) once compared to patent".

Perhaps a much clearer notation is to specify explicitly which primes are altered how many times in which direction from the patent val; the notation used by sintel's temperament finder would be: 104[+5] and if we also "warted" prime 23 (which is similarly flat to prime 5), it'd be 104[+5, +23], which corresponds in the other notation to 104ci where i is the 9th letter of the alphabet and 23 is the 9th prime. They differ on how to notate more than one wart though; with [+5, +23] the direction is always sharpwards, and [-5, -23] would be flatwards, while with "ci" it's based on "second-best, third-best, etc."; so repeated warts with letters have alternating error while repeated +'s and -'s always have the same kind of error. Slight variations of the notation that sintel uses have been reinvented and suggested by multiple people, so the one in use by a temperament finder is prioritized here.

Applications

As discussed, vals are important in regular temperament theory because they provide a way to mathematically formalize how, specifically, the intervals in some set of equally spaced pitches are viewed as the tempered versions of more fundamental just intonation intervals. They can also be viewed as a way to map JI "onto" the chain, imbuing it with a harmonic context. Vals will enable you to figure out what commas your temperament eliminates, what comma pumps are available in the temperament, what the most consonant chords in the temperament are, how to optimize the octave stretch of the temperament to minimize tuning error, what EDOs support your temperament, and other operations as of yet undiscovered.

For a more mathematically intensive introduction to vals, see Vals and tuning space. For the characterization of higher-rank temperaments, see Mapping.

Another example (12edo)

Consider the 5-limit patent val 12 19 28]. This val tells us that you should view 12 generator steps as mapping to the octave 2/1. Since the temperament which maps 12 generator steps to the octave is 12edo, this means you're describing a val for 12edo.

The val 12 19 28], in addition to saying that 12 steps of 12-equal represents 2/1, also states explicitly that 19 steps of 12-equal represents a tempered 3/1, and 28 steps of 12-equal represents a tempered 5/1.

Now assume you'd like to extend 12edo into the 7-limit. If you would like to assume the perspective that the 10 step interval in 12-equal (representing 1000 cents) is a very tempered 7/4, then that means that 7/1, which is 7/4 with two octaves stacked on top, is equal to 10 steps + 12 steps + 12 steps = 34 steps. This decision can hence be represented by using the 7-limit patent val for 12edo: 12 19 28 34].

If for some strange reason you'd instead like to say that 900 cents is 7/4, then that would be represented by the 12 19 28 33] val (notated 12d), and if you'd like to say that 1100 cents is 7/4, that would be represented by the 12 19 28 35] (12dd) val.

Warts explanation

The general rules:

  • Wart letters specify prime approximations being altered from the patent val. The n-th letter of the alphabet refers to the n-th prime: a~2, b~3, c~5, d~7, e~11 etc.
  • A letter which appears m times refers to the (m + 1)-th most accurate mapping for that prime.
  • So, if a number representing a val is wartless, it is taken to mean the patent val.
  • A wart letter may prefix the number, in which case it specifies the corresponding prime as the interval of equivalence to be divided by the following number. For example, b13 refers to the patent val of 13ed3. The octave is assumed, so "a" is typically not written out.
  • In Graham Breed's temperament finder, the wart letter "p" is used to make explicit that the number refers to the patent val (though the letter originally was intended to stand for "prime"). Note that "p" is logically the letter for prime 53.
  • In Graham Breed's temperament finder, the wart letter "q" and after refers each non-prime basis of composite/fractional subgroup, respectively and temporarily.

Sparse Offset Val notation

In 2022 Mike Battaglia proposed SOV notation as a way to be explicit about which primes are being affected and in which direction. In 2024 it was further refined by him and Lumi Pakkanen to be more analogous to Ups and downs notation.

Generalized patent vals are notated using the number of divisions followed by square brackets e.g. 17[] for 17 27 39].

To indicate a wider mapping for a prime it is prefixed with a carret (^) e.g. 17[^5] for 17 27 40].

To indicate a narrower mapping for a prime it is prefixed with a vee (v) e.g. 17[v5] for 17 27 38].

The prefixes stack e.g. 17[^^5] corresponds to 17 27 41].

Multiple modifications are separated by commas (and optionally spaces) e.g. 17[v3, ^5] for 17 26 40].

The interval of equivalence may be prefixed in square brackets e.g. [3]13[] for 8 13 19] (subgroup 2.3.5).

The subgroup may be made explicit separated by an "at" sign (@) at the end e.g. 46[]@2.3.7.13/5 for 46 73 129 63] (subgroup 2.3.7.13/5).

Formal primes are treated the same way as actual primes e.g. 46[^13/5]@2.3.7.13/5 for 46 73 129 64] (subgroup 2.3.7.13/5)

For patent vals the empty square brackets are optional when using an "at" sign. The subgroup itself is optional if its obvious from context e.g. 12@ for 12 19 28] (subgroup 2.3.5).

The 2022 version used a plus sign (+) in place of the caret and a minus sign (-) in place of the vee.

Vals in JI subgroups

We can generalize the concept of monzos and vals from the p-limit (for some prime p) to other JI subgroups. This can be useful when considering different edo tunings of subgroup temperaments. Gene Ward Smith called these "svals", short for "subgroup vals", and correspondingly "smonzos" as short for "subgroup monzos".

To notate a subgroup val, we typically precede the "bra" (angle bracket) notation with an indicator regarding the subgroup (and choice of basis, as we don't have to use only ascending primes). For instance, the patent val for 12 equal on the 2.3.7 subgroup is often notated "2.3.7 12 19 34]". If the subgroup indicator isn't present, the subgroup can be inferred from context. It is very typical for a val with no explicit subgroup indicator to be interpreted as representing some prime limit, e.g. a b c] would represent a 5-limit val.

Note that we could, for instance, use a different basis for the same subgroup - for instance, we could instead write "2.3.21 12 19 53]", which is the 12 equal patent val in the "2.3.21" subgroup. Since the "2.3.21" subgroup is the same as the "2.3.7" subgroup, just written with a different basis, these two apparently "different" svals represent the same map from this subgroup to a rank-1 generator chain. (It is a matter of semantics if these are thought of as "different" svals or "the same sval" written using a different basis.)

Svals can also be written using subgroups that don't involve primes, e.g. 2.3.7.13/5 46 73 129 63].

Note that the notion of a "patent val" for a subgroup val may not agree with the patent val on a prime limit. For instance, 13edo's "2.9.5 patent val" can be written as "2.9.5 13 41 30], because the best approximation to 2 is 13 steps, the best approximation to 9 is 41 steps, and the best approximation to 5 is 30 steps. Note that, however, the patent val on the 2.3.5 subgroup instead maps 3/1 to 21 steps, so that the "induced 9" from the 2.3.5 patent val is not the same as the "direct 9" from the 2.9.5 patent val.

This notation is also used for subgroup monzos; e.g. 81/80 on the 2.9.5 subgroup is "2.9.5 [-4 2 -1", and it is thus easy to see that the 2.9.5 13p val above makes 81/80 vanish:

⟨13, 41, 30|2^-4, 9^2, 5^-1⟩ = 13*-4 + 41*2 + 30*-1 = 0.

Vals in regular temperaments

There is also a notion of a tempered val on a group of tempered monzos, representing intervals in some regular temperament. These names are sometimes abbreviated as tval and tmonzo, respectively. Typically, this is made explicit by writing the generators beforehand. When the tempered intervals have accepted names, such as in meantone, we can use names like P8 and P5, so that the tval P8.P5 12 7] represents the 12edo "patent tval" in meantone (given that particular basis). If the intervals do not have names, a transversal can be given instead, preceded with the temperament name, so that we have (meantone) 2.3/2 12 7], or (meantone) 2.3/2 31 18].

Vals vs. mappings

A val is more specific than a mapping, both as in the general mathematical sense as well as the regular temperament sense:

  1. A val can be thought of as a mapping with one row. Put another way, the rows of mappings are vals. To be mathematically precise, a val is a specific type of (linear) mapping called a "linear form", or "linear functional", which means that its output is a scalar, or in other words, a single number. This corresponds to the fact that a val must be a 1xM array of numbers, or in other words a vector (specifically a row vector, AKA covector).
  2. Vals must have only integer entries (when expressed in the standard, non-weighted coordinate basis).
  3. Being short for "valuation", a val is a formal linear sum of p-adic valuations.

In practice, most single-row mappings in RTT are vals, because we usually deal with integer entries, and the other specifications only mean anything to advanced mathematicians.

See also