Module:Rational: Difference between revisions

Plumtree (talk | contribs)
mNo edit summary
Plumtree (talk | contribs)
mNo edit summary
Line 744: Line 744:
local octaves = b[2] or 0
local octaves = b[2] or 0
mw.log(fifths, octaves, table.concat(otonal), table.concat(utonal))
local noshift = {1, 5, 2, 6, 3, 7, 4}
-- TODO: finish the implementation
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