it'll play around half a second of one song then play the one it's supposed to
Make sure the length of the song (the actual wav data) is a multiple of 32768 bytes (0x8000). Output 2 fills the music buffer in chunks that large, and doesn't zero fill if a chunk (at the end of a file) is too short. So you'll get a bit of garbage data played before it switches to the next track. Just zero pad your file to bring it up to the right size.
All the music that comes with Outpost 2 in the CLM file is a multiple of 32768 bytes.
Edit: Actually, all the music is in the CLM file is a multiple of 65536 bytes. (Double the previous value I gave). This is the size of the music buffer. But you can't overwrite the data that's currently playing without causing glitches, so it only fills half the buffer at a time. Hence the previously suggested alignment value of 32768 is sufficient to prevent glitches during track changes.
Also, Outpost 2 will try to initialize the primary sound buffer in the following order:
1) Frequency = 22050 Hz, Channels = 2 (Stereo), BitsPerSample = 16
2) Frequency = 22050 Hz, Channels = 2 (Stereo), BitsPerSample = 8
3) Frequency = 22050 Hz, Channels = 1 (Mono), BitsPerSample = 8
If it fails, it tries the next one in the list.
The format of the CLM data must however be:
A) Frequency = 22050 Hz, Channels = 1 (Mono), BitsPerSample = 16
The CLM file must also contain the following internal files:
0) "EDEN11"
1) "EDEN21"
2) "EDEN22"
3) "EDEN31"
4) "EDEN32"
5) "EDEN33"
6) "EP41"
7) "EP42"
8 ) "EP43"
9) "EP51"
10) "EP52"
11) "EP61"
12) "EP62"
13) "EP63"
14) "PLYMTH11"
15) "PLYMTH12"
16) "PLYMTH21"
17) "PLYMTH22"
18) "PLYMTH31"
19) "PLYMTH32"
20) "PLYMTH33"
21) "STATIC01"
22) "STATIC02"
23) "STATIC03"
24) "STATIC04"
25) "STATIC05"
Extra files can probably be added just fine, but they might not be accessible. If any of the above files are missing, the CLM load is aborted.