Module:Interval table: Difference between revisions

CompactStar (talk | contribs)
No edit summary
CompactStar (talk | contribs)
No edit summary
Line 71: Line 71:
local tuning = frame.args['tuning']
local tuning = frame.args['tuning']
local et = ET.parse(tuning) or ET.parse('12edo')
local et = ET.parse(tuning) or ET.parse('12edo')
local threshold = tonumber(frame.args['threshold'] or '')
local patent_val = {
local patent_val = {
[2] = ET.approximate(et, 2),  
[2] = ET.approximate(et, 2),  
Line 136: Line 134:
wikitext = wikitext .. '|'
wikitext = wikitext .. '|'
for j=1,#ratios_list do
for j=1,#ratios_list do
-- Go through all ratios, if they are mapped to the current step in the ET's patent val with less than the threshold of relative error
-- Go through all ratios, if they are mapped to the current step in the ET's patent val and <40 cents error, add to approximate ratios column
-- then add to approximate ratios column
t = mapping(u.get_monzo(ratios_list[j][1], ratios_list[j][2]), patent_val)
t = mapping(u.get_monzo(ratios_list[j][1], ratios_list[j][2]), patent_val)
relative_error = math.abs(t - math.log(ratios_list[j][1]/ratios_list[j][2])/math.log(et.equave^(1/et.size)))
if t == i and math.abs(ET.cents(et, i) - u._log(ratios_list[j][1]/ratios_list[j][2], 2) * 1200) < 40 then
if t == i and relative_error < threshold then
wikitext = wikitext .. '[[' .. ratios_list[j][1] .. '/' .. ratios_list[j][2] .. ']], '
wikitext = wikitext .. '[[' .. ratios_list[j][1] .. '/' .. ratios_list[j][2] .. ']], '
end
end