Module:Temperament data: Difference between revisions
CompactStar (talk | contribs) No edit summary |
CompactStar (talk | contribs) No edit summary |
||
| Line 16: | Line 16: | ||
end | end | ||
-- Linear algebra and RTT functions | |||
local function matadd(a, b) | local function matadd(a, b) | ||
| Line 161: | Line 162: | ||
end | end | ||
function | 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 | end | ||
-- Parsing/display functions | |||
local function int_to_subgroup_monzo(subgroup, x) | |||
local result = {} | |||
local x2 = x | |||
for i = 1, #subgroup do | |||
result[i] = 0 | |||
while true do | |||
x2 = x2 / subgroup[i] | |||
if x2 ~= math.floor(x2) then | |||
break | |||
end | |||
result[i] = result[i] + 1 | |||
end | |||
x2 = x | |||
end | |||
return result | |||
end | |||
local function rat_to_subgroup_monzo(subgroup, x) | |||
local n, d = rat.as_pair(x) | |||
return matsub(int_to_subgroup_monzo(n), int_to_subgroup_monzo(d)) | |||
end | |||
local function rat_list_to_matrix(subgroup, list) | |||
local result = {} | |||
for j = 1, #subgroup do | |||
result[j] = {} | |||
end | |||
for i = 1, #list do | |||
local smonzo = rat_to_subgroup_monzo(subgroup, list[i]) | |||
for j = 1, #subgroup do | |||
result[j][i] = smonzo[j] | |||
end | |||
end | |||
end | |||
-- function p.temperament_data(frame) | |||
-- local | |||
-- end | |||
return p | return p | ||