Module:Harmonics in edo: Difference between revisions
No edit summary |
ArrowHead294 (talk | contribs) |
||
(3 intermediate revisions by 2 users not shown) | |||
Line 3: | Line 3: | ||
local function edoprox(edo, odds, title, prec) | local function edoprox(edo, odds, title, prec) | ||
local f = 1/edo | local f = 1/edo | ||
local todd = {'! colspan="2" | Odd harmonic '} | local todd = {'! colspan="2" | Odd harmonic '} | ||
local tapprox = {'! colspan="2" | Approximation '} | local tapprox = {'! colspan="2" | Approximation '} | ||
Line 9: | Line 8: | ||
local trel = {'! [[Relative error|relative]] (%) '} | local trel = {'! [[Relative error|relative]] (%) '} | ||
local tdeg = {'! colspan="2" | Steps ([[octave reduction|reduced]])'} | local tdeg = {'! colspan="2" | Steps ([[octave reduction|reduced]])'} | ||
local fmt_approx = string.format(' %%.%df', prec) | local fmt_approx = string.format(' %%.%df', prec) | ||
local fmt_abs = string.format(' %%+.%df', prec) | local fmt_abs = string.format(' %%+.%df', prec) | ||
Line 17: | Line 15: | ||
v = s*edo | v = s*edo | ||
ev = math.floor(v + .5) | ev = math.floor(v + .5) | ||
table.insert(todd, ' ' .. p ) | table.insert(todd, ' ' .. p ) | ||
table.insert(tapprox, string.format(fmt_approx, 1200*(ev % edo)/edo) ) | table.insert(tapprox, string.format(fmt_approx, 1200*(ev % edo)/edo) ) | ||
Line 23: | Line 20: | ||
table.insert(trel, string.format(fmt_rel, 100 * (ev - v))) | table.insert(trel, string.format(fmt_rel, 100 * (ev - v))) | ||
table.insert(tdeg, ' ' .. ev .. ' ('.. ev % edo .. ')') | table.insert(tdeg, ' ' .. ev .. ' ('.. ev % edo .. ')') | ||
end | end | ||
local titleMarkup = '' | local titleMarkup = '' | ||
Line 42: | Line 26: | ||
end | end | ||
return '{| class="wikitable center-all"\n' .. | |||
titleMarkup .. | titleMarkup .. | ||
'|-\n' .. | '|-\n' .. | ||
Line 53: | Line 37: | ||
table.concat(tdeg, '\n|') .. '\n' .. | table.concat(tdeg, '\n|') .. '\n' .. | ||
'|}' | '|}' | ||
end | end | ||
local odds = { 3, 5, 7, 9, 11, 13, 15, 17, 19, 21, 23, 25, 27, 29, 31, 33, 35, 37, 39, 41, 43 } | local odds = { 3, 5, 7, 9, 11, 13, 15, 17, 19, 21, 23, 25, 27, 29, 31, 33, 35, 37, 39, 41, 43 } | ||
function p.harmonics_in_edo (frame) | function p.harmonics_in_edo (frame) |