POTE tuning: Difference between revisions

From Xenharmonic Wiki
Jump to navigation Jump to search
Wikispaces>genewardsmith
**Imported revision 249241903 - Original comment: **
X31eq (talk | contribs)
Links for the side issue of pitch inflation. I think we're allowed to link to Wikipedia. I couldn't find a citation for the specific issue of pianos driving the pitch up although I believe this is the case. It doesn't matter either way for the usefulness of POTE
 
(41 intermediate revisions by 12 users not shown)
Line 1: Line 1:
<h2>IMPORTED REVISION FROM WIKISPACES</h2>
'''Destretched tunings''' are tuning [[optimization]] techniques with the [[tuning map]] scaled until a certain interval is just, that is, its stretch introduced in the optimization is removed. ''Destretched Tenney–Euclidean tuning''{{idiosyncratic}} is the most typical instance and will be the focus of this article. Otherwise normed tunings can be defined and computed analogously.  
This is an imported revision from Wikispaces. The revision metadata is included below for reference:<br>
: This revision was by author [[User:genewardsmith|genewardsmith]] and made on <tt>2011-08-29 19:25:17 UTC</tt>.<br>
: The original revision id was <tt>249241903</tt>.<br>
: The revision comment was: <tt></tt><br>
The revision contents are below, presented both in the original Wikispaces Wikitext format, and in HTML exactly as Wikispaces rendered it.<br>
<h4>Original Wikitext content:</h4>
<div style="width:100%; max-height:400pt; overflow:auto; background-color:#f8f9fa; border: 1px solid #eaecf0; padding:0em"><pre style="margin:0px;border:none;background:none;word-wrap:break-word;white-space: pre-wrap ! important" class="old-revision-html">**POTE tuning** is the short form of **Pure-Octaves [[Tenney-Euclidean tuning#Pure octaves TE tuning]]**, a good choice for a standard tuning enforcing just 2s as octaves.


The POTE tuning for a map matrix such as M = [&lt;1 0 2 -1|, &lt;0 5 1 12|] (the map for 7-limit [[Magic family|magic]], which consists of a linearly independent list of vals defining magic) can be found as follows:
The most significant form of these tunings is pure-octave destretched, which is assumed unless specified otherwise. This has been called the '''POTE tuning''' ('''pure-octave Tenney–Euclidean tuning'''), although there are other ways to enforce a pure octave ([[Constrained tuning]]). POTE can be computed from [[TE tuning]] with all primes scaled until 2/1 is just.


#1 Form a matrix V from M by multiplying by the diagonal matrix which is zero off the diagonal and 1/log2(p) on the diagonal; in other words the diagonal is [1 1/log2(3) 1/log2(5) 1/log2(7)]. Another way to say this is that each val is "weighted" by dividing through by the logarithms, so that V = [&lt;1 0 2/log2(5) -1/log2(7)| &lt;5/log2(3) 1/log2(5) 12/log2(7)]
== Motivation ==


#2 Find the matrix P = V*(VV*)^(-1), where V* is the transpose matrix.
POTE is the same as TE in the limit of very small intervals. This means it is most similar to TE for intervals smaller than an octave, and most divergent for intervals of several octaves. As a tuning for the full audible range, the logic is that smaller intervals are more common in chords and so more important to optimize for. There are other ways to do this. POTE is the simplest way of prioritizing smaller intervals.


#3 Find T = &lt;1 1 1 1|P.
POTE can stand in for TE where a pure-octave tuning is convenient for implementation constraints, like when a synthesizer has pure octave tuning tables. POTE is close to TE for melodic steps, so melodies can be translated between POTE and TE with minimal damage.


#4 Find POTE = T/T[1]; in other words T scalar divided by T[1], the first element of T.
POTE has the conceptual advantage that it is a simple deformation of TE, itself a simple measure, and introduces no more free parameters. POTE can also be used to give a feel for how a tuning damages different odd primes and other simple intervals without requiring the mental arithmetic of juggling multiples of the damage of 2:1. (TE with a basis of 2:1, 3:2, 5:4, etc. would also do this.)


If you carry out these operations, you should find
POTE has practical advantages for tuning instruments constrained to pure octaves as part of a band targeting TE. You can set the absolute pitch reference for each instrument so that it agrees with the TE background for a target register. Guitars (or other fretted string instruments) can implement this within themselves by having the frets assuming pure octaves and the open strings following the TE stretch.


V ~ [&lt;1 0 0.861 -0.356|, &lt;0 3.155 0.431 4.274|]
Psychoacoustics shows that many bands are tuned according to stretched octaves even when the instruments are producing harmonic timbres ([https://terhardt.userweb.mwn.de/ter/top/scalestretch.html Terhardt: Stretch of the musical tone scale]). This might be with each instrument having a stretched scale, or high-pitched instruments having a slightly sharp pitch reference. The magnitude of this stretch often swamps the optimal stretch for TE (which can be in either direction). So, if you are not going to observe the TE stretch, you might as well simplify it out. There are other reasons for putting instruments deliberately out of tune, for example solo instruments can be tuned slightly sharp to make them stand out. This leads to an [https://en.wikipedia.org/wiki/Concert%20pitch upward drift of pitch reference] in European orchestras: [https://pianotuninginyork.blogspot.com/2018/11/a-history-of-pitch-standards-in-piano.html pianos are tuned slightly sharp to make them sound bright], and then the orchestra sharpens up to follow them.


T ~ &lt;1.000902 0.317246|
== Weaknesses ==


POTE ~ &lt;1 0.3169600|
* POTE tuning inherits problems of TE in being chosen for mathematical simplicity rather than a sound psychoacoustic basis.
* Like [[Kees height]], POTE agrees with TE for arbitrarily small intervals, which means it puts less emphasis on actually audible intervals, particularly those larger than an octave.  This tendency is mediated by [[Constrained_tuning#CTWE_tuning|Constrained Tenney–Weil–Euclidean tuning]]
* Something must be lost by not tempering the octaves


The tuning of the POTE generator corresponding to the mapping M is therefore 0.31696 octaves, or 380.252 cents. Naturally, this only gives the single POTE generator in the rank two case, and only when the map M is in period-generator form, but the POTE tuning can still be found in this way for mappings defining higher rank temperaments. The method also, of course, should be modified if subgroup temperaments are being considered.
== Approximate Kees optimality ==
</pre></div>
The POTE tuning is very close, but not exactly equal to the [[KE tuning]].
<h4>Original HTML content:</h4>
 
<div style="width:100%; max-height:400pt; overflow:auto; background-color:#f8f9fa; border: 1px solid #eaecf0; padding:0em"><pre style="margin:0px;border:none;background:none;word-wrap:break-word;width:200%;white-space: pre-wrap ! important" class="old-revision-html">&lt;html&gt;&lt;head&gt;&lt;title&gt;POTE tuning&lt;/title&gt;&lt;/head&gt;&lt;body&gt;&lt;strong&gt;POTE tuning&lt;/strong&gt; is the short form of &lt;strong&gt;Pure-Octaves &lt;a class="wiki_link" href="/Tenney-Euclidean%20tuning#Pure octaves TE tuning"&gt;Tenney-Euclidean tuning&lt;/a&gt;&lt;/strong&gt;, a good choice for a standard tuning enforcing just 2s as octaves.&lt;br /&gt;
According to a conjecture of Graham Breed, these tunings also approximately minimize the squared error of all intervals weighted by [[Kees height]], at least for full prime-limits. Graham showed this empirically in his [http://x31eq.com/composite.pdf composite.pdf] paper by measuring the results for different temperaments and of different prime limits. It remains open how closely these approximations hold in all cases.
&lt;br /&gt;
 
The POTE tuning for a map matrix such as M = [&amp;lt;1 0 2 -1|, &amp;lt;0 5 1 12|] (the map for 7-limit &lt;a class="wiki_link" href="/Magic%20family"&gt;magic&lt;/a&gt;, which consists of a linearly independent list of vals defining magic) can be found as follows:&lt;br /&gt;
== Computation ==
&lt;br /&gt;
The TE and POTE tuning for a [[mapping]] such as {{nowrap| ''V'' {{=}} {{mapping| 1 0 2 -1 | 0 5 1 12 }} }} (the mapping for 7-limit [[magic]], which consists of a linearly independent list of [[val]]s defining magic) can be found as follows:
#1 Form a matrix V from M by multiplying by the diagonal matrix which is zero off the diagonal and 1/log2(p) on the diagonal; in other words the diagonal is [1 1/log2(3) 1/log2(5) 1/log2(7)]. Another way to say this is that each val is &amp;quot;weighted&amp;quot; by dividing through by the logarithms, so that V = [&amp;lt;1 0 2/log2(5) -1/log2(7)| &amp;lt;5/log2(3) 1/log2(5) 12/log2(7)]&lt;br /&gt;
 
&lt;br /&gt;
# Form a matrix ''V''<sub>''W''</sub> from ''V'' by multiplying by the diagonal matrix which is zero off the diagonal and 1/log<sub>2</sub>''p'' on the diagonal; in other words the diagonal is {{nowrap|[1 1/log<sub>2</sub>3 1/log<sub>2</sub>5 1/log<sub>2</sub>7]}}. Another way to say this is that each val is weighted by dividing through by the logarithms, so that {{nowrap| ''V''<sub>''W''</sub> {{=}} {{mapping| 1 0 2/log<sub>2</sub>5 -1/log<sub>2</sub>7 | 5/log<sub>2</sub>3 1/log<sub>2</sub>5 12/log<sub>2</sub>7 }} }}
#2 Find the matrix P = V*(VV*)^(-1), where V* is the transpose matrix.&lt;br /&gt;
# Find the pseudoinverse of the matrix {{nowrap| {{subsup|''V''|''W''|{{+}}}} {{=}} {{subsup|''V''|''W''|T}}(''V''<sub>''W''</sub>{{subsup|''V''|''W''|T}}){{inv}} }}.  
&lt;br /&gt;
# Find the TE [[generator tuning map|generator map]] {{nowrap| ''G'' {{=}} ''J''<sub>''W''</sub>{{subsup|''V''|''W''|{{+}}}} }}, where {{nowrap| ''J''<sub>''W''</sub> {{=}} {{val| 1 1 1 1 }} }}.  
#3 Find T = &amp;lt;1 1 1 1|P.&lt;br /&gt;
# Find the TE [[tuning map]] {{nowrap| ''T'' {{=}} ''GV''<sub>''W''</sub> }}.
&lt;br /&gt;
# Find the POTE generator map {{nowrap|''G''{{'}} {{=}} ''G''/''t''<sub>1</sub>}}; in other words ''G'' divided by the first entry of ''T''.  
#4 Find POTE = T/T[1]; in other words T scalar divided by T[1], the first element of T.&lt;br /&gt;
 
&lt;br /&gt;
If you carry out these operations, you should find
If you carry out these operations, you should find &lt;br /&gt;
 
&lt;br /&gt;
* ''V''<sub>''W''</sub> ~ {{mapping| 1.000 0 0.861 -0.356 | 0.000 3.155 0.431 4.274 }}
V ~ [&amp;lt;1 0 0.861 -0.356|, &amp;lt;0 3.155 0.431 4.274|]&lt;br /&gt;
* ''G'' ~ {{val| 1.000902 0.317246 }}
&lt;br /&gt;
* ''G''{{'}} ~ {{val| 1.000000 0.316960 }}
T ~ &amp;lt;1.000902 0.317246|&lt;br /&gt;
 
&lt;br /&gt;
The tuning of the POTE [[generator]] corresponding to the mapping ''V'' is therefore 0.31696 octaves, or 380.352 cents. Naturally, this only gives the single POTE generator in the rank-2 case, but the POTE tuning can still be found in this way for mappings defining higher-rank temperaments. The method can be generalized to subgroup temperaments, treating the formal prime represented by the first column as the [[equave]].
POTE ~ &amp;lt;1 0.3169600|&lt;br /&gt;
 
&lt;br /&gt;
=== Computer program for TE and POTE ===
The tuning of the POTE generator corresponding to the mapping M is therefore 0.31696 octaves, or 380.252 cents. Naturally, this only gives the single POTE generator in the rank two case, and only when the map M is in period-generator form, but the POTE tuning can still be found in this way for mappings defining higher rank temperaments. The method also, of course, should be modified if subgroup temperaments are being considered.&lt;/body&gt;&lt;/html&gt;</pre></div>
Below is a [https://www.python.org/ Python] script that takes a mapping and gives TE and POTE generators, using [https://scipy.org/ Scipy].
 
<syntaxhighlight lang="python">
import numpy as np
from scipy import linalg
 
def find_te (mapping, subgroup):
    just_tuning_map = np.log2 (subgroup)
    te_weight = np.diag (1/np.log2 (subgroup))
    mapping = mapping @ te_weight
    just_tuning_map = just_tuning_map @ te_weight
 
    te_generators = linalg.lstsq (np.transpose (mapping), just_tuning_map)[0]
    te_tuning_map = te_generators @ mapping
    print (1200*te_generators)
    pote_generators = te_generators/te_tuning_map[0]
    print (1200*pote_generators)
 
# taking 7-limit magic as an example ...
seven_limit = [2, 3, 5, 7]
mapping_magic = [[1, 0, 2, -1], [0, 5, 1, 12]]
 
# to find TE and POTE you enter
find_te (mapping_magic, seven_limit)
</syntaxhighlight>
 
Output:
<pre>
[1201.08240941  380.695113  ]
[1200.          380.35203249]
</pre>
 
== Systematic name ==
In D&D's guide to RTT, the [[Dave Keenan & Douglas Blumeyer's guide to RTT/Alternative complexities#Naming|systematic name]] for the POTE tuning scheme is '''[[Dave Keenan & Douglas Blumeyer's guide to RTT/All-interval tuning schemes#Destretched-octave_minimax-.28E.29S|destretched-octave minimax-ES]]'''.
 
[[Category:Terms]]
[[Category:Acronyms]]
[[Category:Regular temperament tuning]]

Latest revision as of 10:40, 18 July 2025

Destretched tunings are tuning optimization techniques with the tuning map scaled until a certain interval is just, that is, its stretch introduced in the optimization is removed. Destretched Tenney–Euclidean tuning[idiosyncratic term] is the most typical instance and will be the focus of this article. Otherwise normed tunings can be defined and computed analogously.

The most significant form of these tunings is pure-octave destretched, which is assumed unless specified otherwise. This has been called the POTE tuning (pure-octave Tenney–Euclidean tuning), although there are other ways to enforce a pure octave (→ Constrained tuning). POTE can be computed from TE tuning with all primes scaled until 2/1 is just.

Motivation

POTE is the same as TE in the limit of very small intervals. This means it is most similar to TE for intervals smaller than an octave, and most divergent for intervals of several octaves. As a tuning for the full audible range, the logic is that smaller intervals are more common in chords and so more important to optimize for. There are other ways to do this. POTE is the simplest way of prioritizing smaller intervals.

POTE can stand in for TE where a pure-octave tuning is convenient for implementation constraints, like when a synthesizer has pure octave tuning tables. POTE is close to TE for melodic steps, so melodies can be translated between POTE and TE with minimal damage.

POTE has the conceptual advantage that it is a simple deformation of TE, itself a simple measure, and introduces no more free parameters. POTE can also be used to give a feel for how a tuning damages different odd primes and other simple intervals without requiring the mental arithmetic of juggling multiples of the damage of 2:1. (TE with a basis of 2:1, 3:2, 5:4, etc. would also do this.)

POTE has practical advantages for tuning instruments constrained to pure octaves as part of a band targeting TE. You can set the absolute pitch reference for each instrument so that it agrees with the TE background for a target register. Guitars (or other fretted string instruments) can implement this within themselves by having the frets assuming pure octaves and the open strings following the TE stretch.

Psychoacoustics shows that many bands are tuned according to stretched octaves even when the instruments are producing harmonic timbres (Terhardt: Stretch of the musical tone scale). This might be with each instrument having a stretched scale, or high-pitched instruments having a slightly sharp pitch reference. The magnitude of this stretch often swamps the optimal stretch for TE (which can be in either direction). So, if you are not going to observe the TE stretch, you might as well simplify it out. There are other reasons for putting instruments deliberately out of tune, for example solo instruments can be tuned slightly sharp to make them stand out. This leads to an upward drift of pitch reference in European orchestras: pianos are tuned slightly sharp to make them sound bright, and then the orchestra sharpens up to follow them.

Weaknesses

  • POTE tuning inherits problems of TE in being chosen for mathematical simplicity rather than a sound psychoacoustic basis.
  • Like Kees height, POTE agrees with TE for arbitrarily small intervals, which means it puts less emphasis on actually audible intervals, particularly those larger than an octave. This tendency is mediated by Constrained Tenney–Weil–Euclidean tuning
  • Something must be lost by not tempering the octaves

Approximate Kees optimality

The POTE tuning is very close, but not exactly equal to the KE tuning.

According to a conjecture of Graham Breed, these tunings also approximately minimize the squared error of all intervals weighted by Kees height, at least for full prime-limits. Graham showed this empirically in his composite.pdf paper by measuring the results for different temperaments and of different prime limits. It remains open how closely these approximations hold in all cases.

Computation

The TE and POTE tuning for a mapping such as V = [1 0 2 -1], 0 5 1 12]] (the mapping for 7-limit magic, which consists of a linearly independent list of vals defining magic) can be found as follows:

  1. Form a matrix VW from V by multiplying by the diagonal matrix which is zero off the diagonal and 1/log2p on the diagonal; in other words the diagonal is [1 1/log23 1/log25 1/log27]. Another way to say this is that each val is weighted by dividing through by the logarithms, so that VW = [1 0 2/log25 -1/log27], 5/log23 1/log25 12/log27]]
  2. Find the pseudoinverse of the matrix V +
    W
     
    = V T
    W
     
    (VWV T
    W
     
    )−1
    .
  3. Find the TE generator map G = JWV +
    W
     
    , where JW = 1 1 1 1].
  4. Find the TE tuning map T = GVW.
  5. Find the POTE generator map G' = G/t1; in other words G divided by the first entry of T.

If you carry out these operations, you should find

  • VW ~ [1.000 0 0.861 -0.356], 0.000 3.155 0.431 4.274]]
  • G ~ 1.000902 0.317246]
  • G' ~ 1.000000 0.316960]

The tuning of the POTE generator corresponding to the mapping V is therefore 0.31696 octaves, or 380.352 cents. Naturally, this only gives the single POTE generator in the rank-2 case, but the POTE tuning can still be found in this way for mappings defining higher-rank temperaments. The method can be generalized to subgroup temperaments, treating the formal prime represented by the first column as the equave.

Computer program for TE and POTE

Below is a Python script that takes a mapping and gives TE and POTE generators, using Scipy.

import numpy as np
from scipy import linalg

def find_te (mapping, subgroup):
    just_tuning_map = np.log2 (subgroup)
    te_weight = np.diag (1/np.log2 (subgroup))
    mapping = mapping @ te_weight
    just_tuning_map = just_tuning_map @ te_weight

    te_generators = linalg.lstsq (np.transpose (mapping), just_tuning_map)[0]
    te_tuning_map = te_generators @ mapping
    print (1200*te_generators)
    pote_generators = te_generators/te_tuning_map[0]
    print (1200*pote_generators)

# taking 7-limit magic as an example ...
seven_limit = [2, 3, 5, 7]
mapping_magic = [[1, 0, 2, -1], [0, 5, 1, 12]]

# to find TE and POTE you enter
find_te (mapping_magic, seven_limit)

Output:

[1201.08240941  380.695113  ]
[1200.          380.35203249]

Systematic name

In D&D's guide to RTT, the systematic name for the POTE tuning scheme is destretched-octave minimax-ES.