Dallinger is a software platform that manages large-scale, networked, online experimentation. It automates the process of running experiments including participant recruitment, data collection and payment. It is open-source and free to use. You can download it here and read the documentation here.
LilyLib is a python library that provides a mid-level language for writing sheet music. It lets you write music in terms of scales, arpeggios, key changes, motifs, transpositions, and so on. It can be compiled into Lilypond which can then be compiled into a pdf. You can get the code, including documentation, here.