> When you say write parts of this composition into the script - what form does that take
It's a custom programming language. I have many designs for it, but unfortunately almost nothing is implemented yet. Only exactly what I need is implemented. Currently, it looks very similar to lilypond language with some lisp-y compute help because lisp is easy to implement. E.g. I can do:
(set melody1 "c' d' e'")
(set melody2 "g' g' b'")
(set diff (- melody2 melody1))
(print diff)
(print (to-intervals diff))
This will print
[7 5 7]
[P5 P4 P5]
This ultimately compiles to musicxml/lilypond.
I like using serialistic techniques so I use this to check my rows, also note when I'm violating rows. Another thing I do is to highlight parallel perfect fifths in red so that I can change them if I desire. I also detest vertical minor seconds, and highlight them in red too just in case I accidentally add a minor second between parts. I also think major/minor thirds below E below mid C are too muddy on piano, so highlight them as well.