code: function determine(chord, shorthand, no_inversions, no_polychords) {
  	if(shorthand == null) {
  		shorthand = false;
  	}
  	if(no_inversions == null) {
  		no_inversions = false;
  	}
  	if(no_polychords == null) {
  		no_polychords = false;
  	}
  	if(chord == []) {
  		return [];
  	} else if(chord.length == 1) {
  		return chord;
  	} else if(chord.length == 2) {
  		return [intervals.determine(chord[0], chord[1])];
  	} else if(chord.length == 3) {
  		return determine_triad(chord, shorthand, no_inversions, no_polychords);
  	} else if(chord.length == 4) {
  		return determine_seventh(chord, shorthand, no_inversions, no_polychords);
  	} else if(chord.length == 5) {
  		return determine_extended_chord5(chord, shorthand, no_inversions, no_polychords);
  	} else if(chord.length == 6) {
  		return determine_extended_chord6(chord, shorthand, no_inversions, no_polychords);
  	} else if(chord.length == 7) {
  		return determine_extended_chord7(chord, shorthand, no_inversions, no_polychords);
  	} else {
  		return determine_polychords(chord, shorthand);
  	}
  }
docs: /*===================================================================
  Chord recognition
  ===================================================================