Module:Infobox MOS: Difference between revisions

Ganaram inukshuk (talk | contribs)
Added links to large/small
Ganaram inukshuk (talk | contribs)
Added generator size in mossteps (with tooltip)
Line 149: Line 149:


return section_entries
return section_entries
end
-- Helper functino
-- Produces generator sizes in mossteps
function p.generator_mossteps(input_mos)
local input_mos = input_mos or mos.new(5, 2)
local mossteps_per_equave = input_mos.nL + input_mos.ns
local number_of_periods = utils._gcd(input_mos.nL, input_mos.ns)
local mossteps_per_period = mossteps_per_equave / number_of_periods
local bright_gen = mos.bright_gen(input_mos)
local mossteps_per_bright_gen = bright_gen['L'] + bright_gen['s']
local mossteps_per_dark_gen = mossteps_per_period - mossteps_per_bright_gen
local section_header = '<abbr title="How many steps (L or s) the MOS\'s generator is.">Generator size</abbr>'
local section_entries = {
{string.format("<b>%s</b>", section_header)},
{"Bright", string.format("%d step%s", mossteps_per_bright_gen, (mossteps_per_bright_gen > 1 and "s" or ""))},
{"Dark"  , string.format("%d step%s", mossteps_per_dark_gen  , (mossteps_per_dark_gen  > 1 and "s" or ""))},
}
return section_entries
end
end


Line 179: Line 203:
local dark_max_in_cents  = et.cents(equalized_ed, dark_gen['L'] + dark_gen['s'])
local dark_max_in_cents  = et.cents(equalized_ed, dark_gen['L'] + dark_gen['s'])
local section_header = "Generator ranges"
local section_header = "Generator size"
if rat.eq(input_mos.equave, 3) then
if rat.eq(input_mos.equave, 3) then
section_header = section_header .. " in steps of edt"
section_header = section_header .. " in steps of edt"
Line 459: Line 483:
local scale_structure = p.scale_structure(tuning_parsed)
local scale_structure = p.scale_structure(tuning_parsed)
p.concatenate_tables(sections, scale_structure)
p.concatenate_tables(sections, scale_structure)
-- Generators in mossteps
local gen_mossteps = p.generator_mossteps(tuning_parsed)
p.concatenate_tables(sections, gen_mossteps)
-- Interval range section
-- Interval range section
Line 464: Line 492:
p.concatenate_tables(sections, step_sizes)
p.concatenate_tables(sections, step_sizes)
-- Generator sizes
-- Generator sizes section
local gen_sizes = p.generator_sizes(tuning_parsed)
local gen_sizes = p.generator_sizes(tuning_parsed)
p.concatenate_tables(sections, gen_sizes)
p.concatenate_tables(sections, gen_sizes)