Module:MOS intro: Difference between revisions
m worked too well; moving category to different code |
ArrowHead294 (talk | contribs) mNo edit summary |
||
| (10 intermediate revisions by 2 users not shown) | |||
| Line 1: | Line 1: | ||
local p = {} | |||
local et = require("Module:ET") | |||
local mos = require("Module:MOS") | local mos = require("Module:MOS") | ||
local rat = require("Module:Rational") | local rat = require("Module:Rational") | ||
local tamnams = require("Module:TAMNAMS") | |||
local tip = require("Module:Template input parse") | |||
local utils = require("Module:Utils") | local utils = require("Module:Utils") | ||
local | local yesno = require("Module:Yesno") | ||
-- TODO: | |||
-- - Possible cleanup/rewording | |||
-- - Possible official deprecation of other names; focus should be on what a mos | |||
-- is, not what it's called. | |||
-- Helper function | -- Helper function | ||
| Line 53: | Line 60: | ||
if tamnams_names_list ~= "" and other_names_list ~= "" then | if tamnams_names_list ~= "" and other_names_list ~= "" then | ||
-- There are both tamnams names and alternate names | -- There are both tamnams names and alternate names | ||
sentence = sentence .. string.format(", named %s in [[TAMNAMS]] (also known as %s),", tamnams_names_list, other_names_list) | sentence = sentence .. string.format(", named %s in [[TAMNAMS]] (also known as %s),", tamnams_names_list, other_names_list) | ||
elseif tamnams_names_list ~= "" and other_names_list == "" then | elseif tamnams_names_list ~= "" and other_names_list == "" then | ||
-- There are only tamnams names | -- There are only tamnams names | ||
| Line 59: | Line 66: | ||
elseif tamnams_names_list == "" and other_names_list ~= "" then | elseif tamnams_names_list == "" and other_names_list ~= "" then | ||
-- There are no tamnams names but there are alternate names | -- There are no tamnams names but there are alternate names | ||
sentence = sentence .. string.format(", also called %s,", other_names_list) | sentence = sentence .. string.format(", also called %s,", other_names_list) | ||
end | end | ||
| Line 195: | Line 202: | ||
function p._mos_intro(input_mos, other_names) | function p._mos_intro(input_mos, other_names) | ||
local input_mos = input_mos or mos.new(5, 5, 3) | local input_mos = input_mos or mos.new(5, 5, 3) | ||
local other_names = | local other_names = "" | ||
-- Scale sig | -- Scale sig | ||
| Line 241: | Line 248: | ||
-- Add repetition | -- Add repetition | ||
if n == 1 then | if n == 1 then | ||
intro = intro .. ", repeating every " .. (equave_in_cents == 1200 and "[[octave]]." or string.format(" interval of [[%s]] (%. | intro = intro .. ", repeating every " .. (equave_in_cents == 1200 and "[[octave]]." or string.format(" interval of [[%s]] (%.1f{{cent}}).", equave_as_ratio, equave_in_cents, round)) | ||
else | else | ||
intro = intro .. string.format(", with a [[period]] of %d large %s", nL/n, (nL/n == 1 and "step" or "steps")) | intro = intro .. string.format(", with a [[period]] of %d large %s", nL/n, (nL/n == 1 and "step" or "steps")) | ||
intro = intro .. string.format(" and %d small %s", ns/n, (ns/n == 1 and "step" or "steps")) | intro = intro .. string.format(" and %d small %s", ns/n, (ns/n == 1 and "step" or "steps")) | ||
intro = intro .. string.format(" that repeats every %. | intro = intro .. string.format(" that repeats every %.1f{{cent}}", period_in_cents) | ||
intro = intro .. (n == 2 and ", or twice every" or string.format(", or %d times every", n)) .. (equave_in_cents == 1200 and " octave." or string.format(" interval of [[%s]] (%. | intro = intro .. (n == 2 and ", or twice every" or string.format(", or %d times every", n)) .. (equave_in_cents == 1200 and " octave." or string.format(" interval of [[%s]] (%.1f{{cent}}).", equave_as_ratio, equave_in_cents, round)) | ||
end | end | ||
| Line 276: | Line 283: | ||
local dark_gen_max_r = tostring(utils._round_dec(dark_gen_max, round)) | local dark_gen_max_r = tostring(utils._round_dec(dark_gen_max, round)) | ||
intro = intro .. string.format(" [[ | intro = intro .. string.format(" [[Generator]]s that produce this scale range from %s{{cent}} to %s{{cent}}, or from %s{{cent}} to %s{{cent}}.", bright_gen_min_r, bright_gen_max_r, dark_gen_min_r, dark_gen_max_r) | ||
-- Rothenberg propriety (rothenprop) info | -- Rothenberg propriety (rothenprop) info | ||
| Line 286: | Line 293: | ||
return intro | return intro | ||
end | end | ||
| Line 295: | Line 301: | ||
local other_names = frame.args["Other Names"] or "" | local other_names = frame.args["Other Names"] or "" | ||
local depparams = (other_names ~= "" and " [[Category:Pages with deprecated parameters]]" or "") | |||
local result = p._mos_intro(input_mos, other_names) .. depparams | |||
local debugg = yesno(frame.args["debug"]) | |||
-- Debugger option | |||
if debugg == true then | |||
result = "<syntaxhighlight lang=\"wikitext\">" .. result .. "</syntaxhighlight>" | |||
end | |||
return frame:preprocess(result) | |||
end | end | ||
return p | return p | ||