this.addScript(function constraints(gap, len) {
var noteProto = this.get("Note"),
music = this.get("Music");
bbb.defaultSolver = new BacktalkSolver();
this.voice1 = Array.range(1, len).map(function(i) {
var note = noteProto.copy();
always: { note.note.is in this.voice1Chords() }
this.voice2 = Array.range(1, len + gap).map(function(i) {
var note = noteProto.copy();
if (i <= len) music.addMorph(note);
always: { note.note.is in this.voice2Chords() }
this.voice1.each(function (note1, idx) {
var note2 = this.voice2[idx],
note1f = this.voice1[idx + 1],
note2f = this.voice2[idx + 1],
note1gap = this.voice1[idx + gap],