Module:Sharpness documentation: Difference between revisions
Jump to navigation
Jump to search
added a less jargon-y and more musical description for 2187/2048 |
ArrowHead294 (talk | contribs) mNo edit summary |
||
| Line 3: | Line 3: | ||
function p.main(frame) | function p.main(frame) | ||
local page_name = string.lower(frame:preprocess("{{PAGENAME}}")) | local page_name = string.lower(frame:preprocess("{{PAGENAME}}")) | ||
local d, b = page_name:match("%-(%a*)(%d+)") | local d, b, c = page_name:match("%-(%a*)(%d+)(%a*)") | ||
local s = tonumber(b) | local s = tonumber(b) | ||
local sc = s * 12 | local sc = s * 12 | ||
local note = frame.args["note"] or "" | local note = frame.args["note"] or "" | ||
local notation = frame.args["notation"] | local notation = frame.args["notation"] | ||
local out_str = "This template is used " | local out_str = "This template is \"" .. c .. "\"used " | ||
if (d == "flat") then | if c == nil then | ||
c = "" | |||
end | |||
if (d == "flat" or d == "flat") then | |||
s = -s | s = -s | ||
end | end | ||
| Line 30: | Line 34: | ||
out_str = out_str .. "." | out_str = out_str .. "." | ||
if notation == "" then | if notation == "" and c == "" then | ||
if s >= 3 then | if s >= 3 then | ||
out_str = out_str .. " The symbol set is based on [[ups and downs notation]] and comprises " | out_str = out_str .. " The symbol set is based on [[ups and downs notation]] and comprises " | ||
Revision as of 21:25, 8 February 2025
- This module should not be invoked directly; use its corresponding template instead: Template:Sharpness documentation.
This module is used for Template:Sharpness documentation to automate information for sharpness templates (templates that show how many steps sharps or flats raise or lower by).
By default, it handles standard sharps and flats, quarter-tone accidentals, and ups and downs notation.
| Introspection summary for Module:Sharpness documentation | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|
|
| |||||||||
No function descriptions were provided. The Lua code may have further information.
See also
local p = {}
function p.main(frame)
local page_name = string.lower(frame:preprocess("{{PAGENAME}}"))
local d, b, c = page_name:match("%-(%a*)(%d+)(%a*)")
local s = tonumber(b)
local sc = s * 12
local note = frame.args["note"] or ""
local notation = frame.args["notation"]
local out_str = "This template is \"" .. c .. "\"used "
if c == nil then
c = ""
end
if (d == "flat" or d == "flat") then
s = -s
end
if s == 0 then
out_str = out_str
.. "for {{EDOs| 7, 14, 21, 28, and 35 }} [[equal divisions of the octave]]. "
.. "Since these tunings temper out the 3-limit augmented unison (the Pythagorean apotome [[2187/2048]]), "
.. "the traditional sharps and flats have no effect on the pitch."
else
out_str = out_str
.. "for [[EDO]]s where a sharp "
.. ((s < 0) and {"lowers"} or {"raises"})[1] .. " by " .. math.abs(s) .. " step"
if math.abs(s) ~= 1 then
out_str = out_str .. "s"
end
out_str = out_str .. "."
if notation == "" and c == "" then
if s >= 3 then
out_str = out_str .. " The symbol set is based on [[ups and downs notation]] and comprises "
.. (s % 2 == 0
and "sharps, flats, naturals, and Stein–Zimmerman [[24edo#Notation|quarter tone]] accidentals "
or "sharps, flats, and naturals ")
out_str = out_str .. "with arrows from [[Helmholtz–Ellis notation]]."
end
else
out_str = out_str .. " It is based on " .. notation .. "."
end
if note then
out_str = out_str .. " " .. note
end
if s >= 1 then
out_str = out_str
.. "\n\n<h3>Parameters</h3>\n"
.. "Passing <code>{{pipe}}"
.. sc
.. "</code> will change '''Step offset''' to '''Semitones''' in the case of [["
.. sc .. "edo]]"
.. ((s >= 2) and {", since " .. sc .. "edo is a superset of [[12edo]]."} or {"."})[1]
end
if s >= 3 then
out_str = out_str
.. "\n\n<h3>See also</h3>\n"
.. "* [[Alternative symbols for ups and downs notation]]"
end
end
local debugg = frame.args["debug"]
return frame:preprocess(debugg == "true" and "<pre>" .. out_str .. "</pre>" or out_str)
end
return p