Esempio n. 1
0
function trBy (i, p) {
  var t = pType(p)
  if (!t) return null
  var f = fifths(i) + fifths(p)
  if (isPC(p)) return ['tnlp', [f]]
  var o = focts(i) + focts(p)
  if (t === 'note') return ['tnlp', [f, o]]
  var d = height(i) + height(p) < 0 ? -1 : 1
  return ['tnlp', [d * f, d * o], d]
}
Esempio n. 2
0
// a custom height function that
// - returns -Infinity for non-pitch objects
// - assumes pitch classes has octave -100 (so are sorted before that notes)
function objHeight (p) {
  if (!p) return -Infinity
  var f = fifths(p) * 7
  var o = focts(p) || -Math.floor(f / 12) - 100
  return f + o * 12
}