I recently made some first steps with FL Studio.
Do you know of any programmable DAWs?
I would like to write software that can generate tracks, change instruments, add and edit patterns, start and stop playback and just generally do everything programmatically that would otherwise be done via mouse clicks.
Edit:
I haven't found a DAW yet that provides something like an API.
I am currently experimenting with Ableton Live. I figured out how to write midi files with java, so that way I do not have to actually fiddle with the sequencer of the DAW. Ableton imports MIDI files nicely as clips (as opposed to FL studio which closes the current project when I try to import a midi file).
I guess the next best thing to an API is to simulate mouse and keyboard actions (e.g. using the java Robot class). That way I can use the arrow keys to select a clip and Ctrl+X/V (cut/paste) to move the clips around. There are also keyboard shortcuts to create and delete tracks, play and stop clips and scenes.
I still have to figure out how to assign instruments to tracks, but it should be doable as well.