「モジュール:MOS」の版間の差分

Furcht968 (トーク | 投稿記録)
編集の要約なし
Furcht968 (トーク | 投稿記録)
編集の要約なし
 
270行目: 270行目:
end
end
return matrices
return matrices
end
-- Given an input mos, produce its modal union.
-- This is a listing of every interval's large and small sizes.
function p.modal_union(input_mos)
local brightest_mode = p.brightest_mode(input_mos)
local darkest_mode  = p.darkest_mode  (input_mos)
local interval_count = p.equave_step_count(input_mos) + 1
local modal_union = {}
for i = 1, interval_count do
local bright_step_seq = string.sub(brightest_mode, 1, i-1)
local dark_step_seq  = string.sub(darkest_mode  , 1, i-1)
local bright_interval = p.interval_from_step_sequence(bright_step_seq)
local dark_interval  = p.interval_from_step_sequence(dark_step_seq  )
if p.interval_eq(bright_interval, dark_interval) then
table.insert(modal_union, bright_interval)
else
table.insert(modal_union, dark_interval  )
table.insert(modal_union, bright_interval)
end
end
return modal_union
end
end