Module:Infobox chord: Difference between revisions
switching from FRACTION SLASH to DIVISION SLASH in interval ratios |
add utonal ratios if no explicit root is given |
||
Line 51: | Line 51: | ||
local prime_limit = 1 | local prime_limit = 1 | ||
local lcm = 1 | |||
local root_interval_links = {} | local root_interval_links = {} | ||
for i, h in ipairs(harmonics) do | for i, h in ipairs(harmonics) do | ||
Line 58: | Line 59: | ||
end | end | ||
end | end | ||
lcm = lcm * h / (utils._gcd(lcm, h)) | |||
local gcd = utils._gcd(h, root) | local gcd = utils._gcd(h, root) | ||
Line 65: | Line 68: | ||
end | end | ||
local utonal_intervals = nil | |||
if not utils.value_provided(frame.args["Root"]) then | |||
utonal_intervals = {} | |||
for i, h in ipairs(harmonics) do | |||
local gcd = utils._gcd(lcm, h) | |||
local numer = h / gcd | |||
local denom = lcm / gcd | |||
table.insert(utonal_intervals, numer .. "/" .. denom) | |||
end | |||
end | |||
local odd_limit = 1 | local odd_limit = 1 | ||
for j, b in ipairs(harmonics) do | for j, b in ipairs(harmonics) do | ||
Line 88: | Line 102: | ||
end | end | ||
table.insert(infobox_data, {"Harmonics", frame.args["Harmonics"]}) | table.insert(infobox_data, {"[[Otonal]] Harmonics", frame.args["Harmonics"]}) | ||
table.insert(infobox_data, {"Intervals from root", table.concat(root_interval_links, | table.insert(infobox_data, {"Intervals from root", table.concat(root_interval_links, " ‒ ")}) | ||
if utonal_intervals ~= nil then | |||
table.insert(infobox_data, {"[[Utonal]] Ratios", table.concat(utonal_intervals, " ‒ ")}) | |||
end | |||
if prime_limit < 96 then | if prime_limit < 96 then | ||
table.insert(infobox_data, {"[[Prime limit]]", "[[" .. prime_limit .. "-limit|" .. prime_limit .. "]]"}) | table.insert(infobox_data, {"[[Prime limit]]", "[[" .. prime_limit .. "-limit|" .. prime_limit .. "]]"}) |