Module:MOS intervals: Difference between revisions
Added (wip) intervals description |
Implemented description |
||
| Line 133: | Line 133: | ||
function p.mos_intervals_description(input_mos) | function p.mos_intervals_description(input_mos) | ||
local input_mos = input_mos or mos.new(5,2) | local input_mos = input_mos or mos.new(5,2) | ||
local period_count = mos.period_count(input_mos) | |||
local period_interval = mos.period(input_mos) | |||
-- What are the period intervals? | |||
local period_intervals = {} | |||
for i = 1, period_count + 1 do | |||
local interval = mos.interval_mul(period_interval, i-1) | |||
table.insert(period_intervals, interval) | |||
end | |||
-- As a sentence piece | |||
local period_intervals_as_text = "" | |||
if #period_intervals == 2 then | |||
period_intervals_as_text = string.format("%s and %s", tamnams.degree_quality(period_intervals[1], input_mos), tamnams.degree_quality(period_intervals[2], input_mos)) | |||
else | |||
for i = 1, period_count do | |||
period_intervals_as_text = period_intervals_as_text | |||
.. string.format("%s, ", tamnams.degree_quality(period_intervals[i], input_mos)) | |||
end | |||
period_intervals_as_text = period_intervals_as_text | |||
.. string.format("and %s", tamnams.degree_quality(period_intervals[period_count + 1], input_mos)) | |||
end | |||
local tamnams_name = tamnams.lookup_name(input_mos) | local tamnams_name = tamnams.lookup_name(input_mos) | ||
local scalesig = mos.as_string(input_mos) | local scalesig = mos.as_string(input_mos) | ||
local scalesig_and_name = tamnams_name == nil and scalesig or string.format("%s (%s)", tamnams_name, scalesig) | local scalesig_and_name = tamnams_name == nil and scalesig or string.format("%s (%s)", tamnams_name, scalesig) | ||
local result = string.format("The intervals of %s are named after the number of mossteps (L and s) | local result = string.format("The intervals of %s are named after the number of mossteps (L and s) they subtend.", scalesig_and_name) | ||
result = result | |||
.. string.format(" Each interval, apart from %s (%s), has two varieties or sizes each.", (period_count == 1 and "the root and period" or "the period intervals"), period_intervals_as_text) | |||
result = result | result = result | ||
.. string.format(" Interval varieties are named major and minor, or augmented, perfect, and diminished for the generators of %s.", tamnams_name) | .. string.format(" Interval varieties are named major and minor%s", (input_mos.nL ~= input_mos.ns and string.format(", or augmented, perfect, and diminished for the generators of %s.", tamnams_name) or ".")) | ||
return result | return result | ||
| Line 172: | Line 198: | ||
end | end | ||
return p._mos_intervals(input_mos, mos_prefix, mos_abbrev) | return p.mos_intervals_description(input_mos) .. "\n" .. p._mos_intervals(input_mos, mos_prefix, mos_abbrev) | ||
end | end | ||
return p | return p | ||