Module:Powharmonic series: Difference between revisions
Jump to navigation
Jump to search
ArrowHead294 (talk | contribs) No edit summary |
ArrowHead294 (talk | contribs) No edit summary |
||
| Line 14: | Line 14: | ||
"! Change (cents)\n" .. | "! Change (cents)\n" .. | ||
"! Octave-reduced\n" | "! Octave-reduced\n" | ||
local fmt_mul = string.format(" %%+.%df", prec) | local fmt_mul = string.format(" %%+.%df", frame.args["prec"]) | ||
local fmt_cent = " %+.2f" | local fmt_cent = " %+.2f" | ||
local p_prev = 0 | local p_prev = 0 | ||
Revision as of 12:50, 3 June 2024
- This module should not be invoked directly; use its corresponding template instead: Template:Powharmonic series.
This module generates a table showing the intervals of a powharmonic series for a given exponent, which is used to model timbres involving stretched or compressed harmonics.
| Introspection summary for Module:Powharmonic series | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|
|
| |||||||||
No function descriptions were provided. The Lua code may have further information.
local p = {}
function p.powharmonic(frame)
local p = tonumber(frame.args["p"])
local out_str = "{| class=\"wikitable\"\n" ..
"|+ Intervals of the " .. p .. "-Powharmonic series\n" ..
"! rowspan=\"2\" | Pitch #\n" ..
"! colspan=\"2\" | Frequency multiplier\n" ..
"! colspan=\"3\" | Pitch\n" ..
"|-\n" ..
"! Definition\n" ..
"! Decimal\n" ..
"! Cents\n" ..
"! Change (cents)\n" ..
"! Octave-reduced\n"
local fmt_mul = string.format(" %%+.%df", frame.args["prec"])
local fmt_cent = " %+.2f"
local p_prev = 0
local p_current = 0
for i = 1, p do
p_current = 1200 * math.log(i, 2) * p
out_str = out_str ..
"|-\n" ..
"| " .. i .. "\n" ..
"| " .. i .. "<sup>" .. p .. "</sup>\n" ..
"| " .. string.format(fmt_mul, i^p) .. "\n" ..
"| " .. string.format(fmt_cent, p_curr) .. "\n" ..
"| " .. string.format(fmt_cent, p_prev) .. "\n" ..
"| " .. string.format(fmt_cent, math.fmod(p_curr, 1200)) .. "\n"
p_prev = p_current
end
out_str = out_str .. "|}"
return out_str
end
return p