Module:Temperament data: Difference between revisions
CompactStar (talk | contribs) No edit summary |
CompactStar (talk | contribs) No edit summary |
||
| Line 165: | Line 165: | ||
local function get_te_generator(subgroup, comma_basis, preimage) | local function get_te_generator(subgroup, comma_basis, preimage) | ||
return matmul(get_te_tuning_map(subgroup, comma_basis), preimage) | return matmul(get_te_tuning_map(subgroup, comma_basis), preimage) | ||
end | |||
local function get_pote_generator(subgroup, comma_basis, preimage) | |||
local period = 1 | |||
for i in 1, #subgroup do | |||
period = period * (subgroup[i]^preimage[i][1]) | |||
end | |||
local te = get_te_generator(subgroup, comma_basis) | |||
local stretch_factor = math.log2(period) / math.log2(te[1][1]) | |||
return scalar_matmul(te, stretch_factor) | |||
end | end | ||
| Line 243: | Line 253: | ||
end | end | ||
generators = rat_list_to_matrix(subgroup, generators) | generators = rat_list_to_matrix(subgroup, generators) | ||
local | local pote_generator = get_pote_generator(subgroup, comma_matrix, generators) | ||
local result = "[[Subgroup]]: " .. frame.args['subgroup'] | local result = "[[Subgroup]]: " .. frame.args['subgroup'] | ||
result = result .. "\n\n[[Comma list]]: " .. frame.args['comma_list'] | result = result .. "\n\n[[Comma list]]: " .. frame.args['comma_list'] | ||
| Line 251: | Line 261: | ||
end | end | ||
result = result:sub(0,-3) | result = result:sub(0,-3) | ||
result = result .. "\n\n[[Optimal tuning]] | result = result .. "\n\n[[Optimal tuning]]s:\n*[[POTE]]:" | ||
for i = 1, #(te_generator[1]) do | for i = 1, #(te_generator[1]) do | ||
result = result .. '~' .. trim(unparsed_gens[i]) .. ' = ' .. u._round( | result = result .. '~' .. trim(unparsed_gens[i]) .. ' = ' .. u._round(pote_generator[1][i] * 1200, 7) .. ", " | ||
end | end | ||
result = result:sub(0,-3) | result = result:sub(0,-3) | ||