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 p.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
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