function init() {}; function close() {}; function run() { var current = curScore; if (current.parts == 4 && current.staves == 4) { var newScore = new Score(); var newCursor = new Cursor(newScore); var oldCursor = new Cursor(current); // Soprano and Alto part newPart(newScore, "Soprano", 0, "Soprano\nAlto ", "S\nA"); // Tenor and Bass part newPart(newScore, "Bass", 1, "Tenor \nBass ", "T\nB"); newScore.appendMeasures(current.measures); for (var i = 0; i < 1; ++i) { // rewind both cursors oldCursor.staff = i; oldCursor.voice = 0; oldCursor.rewind(); newCursor.staff = i/2; newCursor.voice = i%2; newCursor.rewind(); // runs through whole staff for (var i = 0; i < 1; ++i) { //while (!oldCursor.eos()) { if (oldCursor.isChord()) { print("chord"); newCursor.add(oldCursor.chord()); //addChord(newCursor, oldCursor); } else if (oldCursor.isRest()) { print("rest"); newCursor.add(oldCursor.rest()); } oldCursor.next(); newCursor.next(); } } } } function newPart(score, instr, pa, lName, sName) { score.appendPart(instr); score.part(pa).longName = lName; score.part(pa).shortName = sName; } function addChord(newCursor, oldCursor) { var newChord = new Chord(); var oldChord = oldCursor.chord(); for (var i = 0; i < oldChord.notes; ++i) newChord.addNote(oldChord.note(i)); newCursor.add(newChord); } var mscorePlugin = { majorVersion: 1, minorVersion: 1, menu: 'Plugins.Convert SATB 4 to 2', init: init, run: run, onClose: close }; mscorePlugin;