Thanks. I ended up spending way too much time on music but it was a fun distraction. I wrote code that could read a midi file (though in reality time meant it doesn't do every midi command possible yet, just the ones I needed). This meant I could use Mixcraft (a DAW) to compose a song (with my limited musical talent) and export it. The idea originally was that I would make a VST that could generate the waveforms that RIVES has so that it would sound the same when I make the music in Mixcraft. But in the end time meant I just used a chiptune VST that was close enough to the sound. In the track names for the midi I then put the parameters for the waveforms I want to use in RIVES. On starting my music code for the game will read the midi file that gives it all the notes and the data to work out the time to play it and the length. Then every frame it simply calculates the time and determines if it should play a note. If it should then it loads up the right parameters from the track name to create the waveform, adjusts it to be the right length, and then plays it.
It works with the midi commands for a Mixcraft export. To release it I'd really want it to be complete and have all the midi commands and preferably the VST so the music sounds the same in a DAW and imported into a game. If I get the time to finish those bits then I will, I really enjoyed working the sound stuff.