;;;ExtractTwoParts (let () (define (delete-highest-notes) ;delete highest note of each chord (d-MoveToBeginning) (let loop () (if (d-NextChord) (begin (if (d-CursorToNote (d-GetNoteFromTop)) (d-StagedDelete)) (loop))))) (define (delete-lower-notes) (d-MoveToBeginning) (let loop ((continue #f)) (if (d-NextChord) (begin (if (d-CursorToNote (d-GetNoteFromTop 2)) (begin (d-RemoveNoteFromChord) (set! continue #t) (loop continue)) (loop continue))) (if continue (begin (d-MoveToBeginning) (loop #f)))))) ;;procedure starts here (d-MoveToBeginning) (d-GoToEnd) (d-Copy) (d-MuteStaff) (d-AddAfter) (d-MuteStaff "unmute") (d-NonPrintingStaff 'noninteractive) (d-Paste) (delete-lower-notes);;delete part 2 (and anything extra) (d-AddAfter) (d-MuteStaff "unmute") (d-NonPrintingStaff 'noninteractive) (d-Paste) (delete-highest-notes);;delete part 1 (d-SimplifyTies) (d-MoveToStaffUp) (d-SimplifyTies))