lib/score.js
function map (fn, ctx, obj) {
  switch (arguments.length) {
    case 0: return map
    case 1: return transform(fn, buildSeq, buildSim)
    case 2: return function (obj) { return map(fn)(ctx, obj) }
    case 3: return map(fn)(ctx, obj)
  }
}
function map (fn, ctx, obj) {
  switch (arguments.length) {
    case 0: return map
    case 1: return transform(fn, buildSeq, buildSim)
    case 2: return function (obj) { return map(fn)(ctx, obj) }
    case 3: return map(fn)(ctx, obj)
  }
}
function map ( fn , ctx , obj ) { switch ( arguments . length ) { case 0 : return map case 1 : return transform ( fn , buildSeq , buildSim ) case 2 : return function ( obj ) { return map ( fn ) ( ctx , obj ) } case 3 : return map ( fn ) ( ctx , obj ) } }
Map the notes of a musical structure using a function

@param {Function} fn - the function used to map the notes
@param {Object} ctx - a context object passed to the function
@param {Score} score - the score to transform
@return {Score} the transformed score
Map the notes of a musical structure using a function