Module:Infobox MOS: Difference between revisions

Ganaram inukshuk (talk | contribs)
mNo edit summary
Ganaram inukshuk (talk | contribs)
Simplified equal tunings helper function
Line 481: Line 481:
-- Produces simple equal tunings
-- Produces simple equal tunings
function p.equal_tunings(input_mos)
function p.equal_tunings(input_mos)
local input_mos = input_mos or mos.new(5, 2)
local input_mos = input_mos or mos.new(5, 2, rat.new(5,3))
local bright_gen = mos.bright_gen(input_mos)
local bright_gen = mos.bright_gen(input_mos)
local mos_as_vector = {
['L'] = input_mos.nL,
['s'] = input_mos.ns
}
local step_ratios = {
local step_ratios = {
Line 500: Line 495:
{ 4, 1 },
{ 4, 1 },
{ 1, 0 }
{ 1, 0 }
}
local step_ratio_names = {
"Equalized",
"Supersoft",
"Soft",
"Semisoft",
"Basic",
"Semihard",
"Hard",
"Superhard",
"Collapsed"
}
}
Line 531: Line 514:
local step_ratio = step_ratios[i]
local step_ratio = step_ratios[i]
local ed_size = mos_as_vector['L'] * step_ratio[1] + mos_as_vector['s'] * step_ratio[2]
local ed = mos.mos_to_et(input_mos, step_ratio)
local gen_size = bright_gen['L'] * step_ratio[1] + bright_gen['s'] * step_ratio[2]
local ed = et.new(ed_size, input_mos.equave)
local ed_as_string = et.as_string(ed)
local ed_as_string = et.as_string(ed)
local ed_no_prefix = et.new(ed_size, input_mos.equave, "")
local gen_in_steps = mos.bright_gen_to_et_steps(input_mos, step_ratio) .. "\\" .. ed.size
local ed_as_string_no_prefix = et.as_string(ed_no_prefix)
local gen_in_cents = mos.bright_gen_to_cents(input_mos, step_ratio)
local gen_in_steps = et.backslash_display(ed_no_prefix, gen_size)
local gen_in_cents = et.cents(ed, gen_size)
local caption = string.format("[[%s]] (L:s = %d:%d)", step_ratio_names[i], step_ratio[1], step_ratio[2])
local caption = string.format("[[%s]] (L:s = %d:%d)", tamnams.lookup_step_ratio(step_ratio), step_ratio[1], step_ratio[2])
local text = string.format("[[%s | %s]] (%.1f¢)", ed_as_string, gen_in_steps, gen_in_cents)
local text = string.format("[[%s | %s]] (%.1f¢)", ed_as_string, gen_in_steps, gen_in_cents)