Module:Infobox AFDO: Difference between revisions
Jump to navigation
Jump to search
ArrowHead294 (talk | contribs) m Alphabetise dependencies |
m Bugfix |
||
| (One intermediate revision by one other user not shown) | |||
| Line 1: | Line 1: | ||
local p = {} | local p = {} | ||
local getArgs = require("Module:Arguments").getArgs | |||
local infobox = require("Module:Infobox") | local infobox = require("Module:Infobox") | ||
local u = require("Module:Utils") | local u = require("Module:Utils") | ||
| Line 5: | Line 6: | ||
function p.infobox_AFDO(frame) | function p.infobox_AFDO(frame) | ||
local args = getArgs(frame) | |||
-- debug mode will disable the categories | -- debug mode will disable the categories | ||
local debug_mode = yesno(frame.args["debug"]) | local debug_mode = yesno(frame.args["debug"] or args["debug"], false) | ||
local wtext = yesno(frame.args["wtext"] or args["wtext"]) | |||
local categories = "" | local categories = "" | ||
| Line 32: | Line 36: | ||
}) | }) | ||
if(dualfifth) then | if (dualfifth) then | ||
table.insert(infobox_data, { | table.insert(infobox_data, { | ||
"Dual sharp fifth", | "Dual sharp fifth", | ||
| Line 54: | Line 58: | ||
local result = infobox.build( | local result = infobox.build( | ||
"[[ | string.format("[[%safdo]]", steps), | ||
infobox_data, | infobox_data, | ||
"[[ | string.format("[[%safdo|← %safdo]]", steps - 1, steps - 1), | ||
"[[ | string.format("[[%safdo|%safdo →]]", steps + 1, steps + 1) | ||
) | ) | ||
if not debug_mode then | if not debug_mode then | ||
result = result .. categories | result = result .. categories | ||
end | |||
if wtext then | |||
result = "<syntaxhighlight lang=\"wikitext\">" .. result .. "</syntaxhighlight>" | |||
end | end | ||
Latest revision as of 14:56, 15 December 2025
- This module should not be invoked directly; use its corresponding template instead: Template:Infobox AFDO.
Generates an infobox providing information about a given arithmetic frequency division of the octave.
| Introspection summary for Module:Infobox AFDO | ||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
| |||||||||||||||||||||
No function descriptions were provided. The Lua code may have further information.
local p = {}
local getArgs = require("Module:Arguments").getArgs
local infobox = require("Module:Infobox")
local u = require("Module:Utils")
local yesno = require("Module:Yesno")
function p.infobox_AFDO(frame)
local args = getArgs(frame)
-- debug mode will disable the categories
local debug_mode = yesno(frame.args["debug"] or args["debug"], false)
local wtext = yesno(frame.args["wtext"] or args["wtext"])
local categories = ""
local steps = frame.args["steps"]
local stepnum = tonumber(steps)
local dualfifth = stepnum % 2 == 1
local fifth = steps+math.ceil(steps/2)
local special_properties = ""
categories = categories .. "[[Category:AFDO|" .. string.rep("#", string.len (stepnum)) .. "]]"
-- prime test
local prime = ""
if u.is_prime(stepnum) then
prime = " (prime)"
-- if rat.eq(et.equave, 2) then
categories = categories .. "[[Category:Prime AFDO|" .. string.rep("#", string.len (stepnum)) .. "]]"
-- end
end
local infobox_data = {}
table.insert(infobox_data, {
"Prime factorization",
u._prime_factorization(stepnum) .. prime
})
if (dualfifth) then
table.insert(infobox_data, {
"Dual sharp fifth",
fifth .. "/" .. steps .. " (" .. math.floor(math.log(fifth / steps) / math.log(2) * 1200 * 1000) / 1000 .. "c)"
})
table.insert(infobox_data, {
"Dual flat fifth",
(fifth-1) .. "/" .. steps .. " (" .. math.floor(math.log((fifth - 1) / steps) / math.log(2) * 1200 * 1000) / 1000 .. "c)"
})
else
table.insert(infobox_data, {
"Fifth",
fifth .. "/" .. steps .. " (" .. math.floor(math.log(fifth / steps) / math.log(2) * 1200 * 1000) / 1000 .. "c)"
})
end
if (special_properties ~= "") then
table.insert(infobox_data, {"Special properties", special_properties})
end
local result = infobox.build(
string.format("[[%safdo]]", steps),
infobox_data,
string.format("[[%safdo|← %safdo]]", steps - 1, steps - 1),
string.format("[[%safdo|%safdo →]]", steps + 1, steps + 1)
)
if not debug_mode then
result = result .. categories
end
if wtext then
result = "<syntaxhighlight lang=\"wikitext\">" .. result .. "</syntaxhighlight>"
end
return frame:preprocess(result)
end
return p