Module:Rational: Difference between revisions
mNo edit summary |
mNo edit summary |
||
Line 744: | Line 744: | ||
local octaves = b[2] or 0 | local octaves = b[2] or 0 | ||
local noshift = {1, 5, 2, 6, 3, 7, 4} | |||
-- TODO: | local num = noshift[1 + (fifths % 7)] + octaves * 7 | ||
if octaves < 0 then | |||
fifths = -fifths | |||
end | |||
local letter = 'P' | |||
if fifths >= 2 and fifths <= 5 then | |||
letter = 'M' | |||
elseif fifths <= -2 and fifths >= -5 then | |||
letter = 'm' | |||
elseif fifths > 5 then | |||
letter = '' | |||
while fifths > 5 do | |||
letter = letter .. 'A' | |||
fifths = fifths - 7 | |||
end | |||
elseif fifths < -5 then | |||
letter = '' | |||
while fifths < -5 do | |||
letter = letter .. 'd' | |||
fifths = fifths + 7 | |||
end | |||
end | |||
local FJS = letter .. num | |||
if #otonal > 0 then | |||
FJS = FJS .. '^{' .. table.concat(otonal, ',') .. '}' | |||
end | |||
if #utonal > 0 then | |||
FJS = FJS .. '_{' .. table.concat(utonal, ',') .. '}' | |||
end | |||
-- TODO: 531441/262144 should result in A7, not A14 | |||
return FJS | |||
end | end | ||