Module:Infobox chord: Difference between revisions

Bcmills (talk | contribs)
switching from FRACTION SLASH to DIVISION SLASH in interval ratios
Bcmills (talk | contribs)
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 .. "]]"})