Module:Infobox chord: Difference between revisions
Odd limit -> intervallic odd limit |
Rework and simplify the subharmonic notation |
||
Line 86: | Line 86: | ||
local utonal_odd_limit = 1 | local utonal_odd_limit = 1 | ||
local | local subharmonics = {} | ||
for i, h in ipairs(harmonics) do | for i, h in ipairs(harmonics) do | ||
-- find the subharmoncis from the harmonics | |||
local gcd = utils._gcd(lcm, h) | local gcd = utils._gcd(lcm, h) | ||
local | local s = lcm / gcd | ||
table.insert(subharmonics, s) | |||
table.insert( | |||
-- find the utonal odd limit | |||
local | local s_odd = s | ||
while | while s_odd > 0 and s_odd % 2 == 0 do | ||
s_odd = s_odd / 2 | |||
end | end | ||
if | if s_odd > utonal_odd_limit then | ||
utonal_odd_limit = | utonal_odd_limit = s_odd | ||
end | end | ||
end | end | ||
-- intervallic odd limit | |||
local odd_limit = 1 | local odd_limit = 1 | ||
for j, b in ipairs(harmonics) do | for j, b in ipairs(harmonics) do | ||
Line 127: | Line 129: | ||
table.insert(infobox_data, {"Harmonics", frame.args["Harmonics"]}) | table.insert(infobox_data, {"Harmonics", frame.args["Harmonics"]}) | ||
if (not utils.value_provided(frame.args["Root"])) and (utonal_odd_limit <= otonal_odd_limit or utonal_odd_limit < 1000) then | if (not utils.value_provided(frame.args["Root"])) and (utonal_odd_limit <= otonal_odd_limit or utonal_odd_limit < 1000) then | ||
table.insert(infobox_data, {"Subharmonics", table.concat( | table.insert(infobox_data, {"Subharmonics", "1/(" .. table.concat(subharmonics, ":") .. ")"}) | ||
end | end | ||
table.insert(infobox_data, {"Intervals from root", table.concat(root_interval_links, " ‒ ")}) | table.insert(infobox_data, {"Intervals from root", table.concat(root_interval_links, " ‒ ")}) |