Thanks, I will refer to your email as I try to develop my working method.

On Tue, Jan 17, 2017 at 3:33 AM, Evan Laforge <qdunkan@gmail.com> wrote:
On Mon, Jan 16, 2017 at 11:16 PM, Dennis Raddle <dennis.raddle@gmail.com> wrote:
> About what I've learned about expression score realization, I could perhaps
> share some things at some point. Unfortunately I have bad work habits... I
> often don't take care to finish projects in a way that is presentable, so I
> have many years of half-finished compositions that can't even be played back
> with the current version of my program. I'm 48 years old and finally
> realizing just how important it is to organize and finish things. And to
> collaborate. I found another musician to collaborate with -- I will make
> computer "interpretations" of his compositions.

I keep each score saved with a "known good" version of the MIDI
output, along with a commit ID for the time it was generated.  So it
not only archives a known good realization, it also acts as a
regression test against code changes (checking all saved scores is
part of the commit validation, in addition to the more usual unit
tests), and if all else fails, I can get back to the original
performance by rewinding the repo.  mp3 is good for archiving of
course, but you'll never be able to change it again.

Ah, yes, those are good ideas. But to get things to sound right, I have to configure my software synthesizers (such as samplers, modeled pianos, and analog synth emulators). I can set up all the synthesizers as VST plugins in Reaper, but versions change and there may be configuration elements not captured in the Reaper file, so I really need to archive a mp3 as a record of what I did. I can and should take greater care in managing the versions of the Haskell source, but it's harder to manage the configuration of the software synths and I would rather not invest the effort to reach a point of high confidence... when it's easy to archive an mp3.

If I really want to revisit something I did a while back, it might take some work to get it going again with the current version of my Haskell source, but that's not such a bad thing... often I can learn things serendipitously from unintended software behavior.

But the other approach, the one Knuth took with TeX, which is to make it 100% backward compatible for its entire life, is fascinating. I'm just one guy messing around as a hobby so it's obviously much more important for a widely used community resource like TeX.

D