class SMF::STT

Constants

NOTETAB

Public Instance Methods

<<(s) click to toggle source
Calls superclass method SMF::MML#<<
# File lib/smf/toy/macro/stt.rb, line 22
def << (s)
  s2 = s.toutf8.
    gsub(/(ラ|シ|ド|レ|ミ|ファ|ソ|ッ)([$%#♭%#]+)?([,',’]+)?(ー+)?/) do
    n, s, o, x = $1, $2, $3, $4
    no = NOTETAB[n]
    no += s.tr('♭%#', '$%#') if s
    no += o.tr(',’', ",'") if o
    le = 1
    if ''.respond_to?(:jsize)
      le += x.jsize if x
    else
      le += x.size if x
    end
    format('{le*=%d %s}', le, no)
  end
  super(s2)
end