From 41d1be2ea8e1869b056cf09f3b82d52363aa80c1 Mon Sep 17 00:00:00 2001 From: Torbjörn Andersson Date: Fri, 26 Nov 2004 10:04:36 +0000 Subject: After listening to some of the IHNM music from both the FM and GM music files through the MIDI synth on my Soundblaster, I can only conclude that they are both General MIDI, so I've changed our code to assume that in both cases. The End Title (which we currently incorrectly play at the end of the intro) sounds much better in Adlib this way, too. Perhaps the original used a different GM to FM mapping than the one in our adlib.cpp, but if so using the MT-32 to GM mapping isn't likely to improve the situation. We could add a way of replacing the GM to FM mapping in adlib.cpp, I guess. Of course, that would only be worth it if the original sounds better than our mapping. svn-id: r15894 --- saga/music.cpp | 33 ++++++++++++++++++++++++--------- 1 file changed, 24 insertions(+), 9 deletions(-) (limited to 'saga') diff --git a/saga/music.cpp b/saga/music.cpp index 73e23a36bd..b1a949b8f7 100644 --- a/saga/music.cpp +++ b/saga/music.cpp @@ -456,21 +456,36 @@ int Music::play(uint32 music_rn, uint16 flags) { if (GAME_GetGameType() == GID_ITE) { rsc_ctxt = GAME_GetFileContext(GAME_RESOURCEFILE, 0); } else { - // TODO: I'm not sure if this is right, but the FM file - // sounds better with Adlib than the AM file does. On - // the other hand, it doesn't sound like quite the same - // music, which is strange. + // I've listened to music from both the FM and the GM + // file, and I've tentatively reached the conclusion + // that they are both General MIDI. My guess is that + // the FM file has been reorchestrated to sound better + // on Adlib and other FM synths. + // + // Sev says the Adlib music does not sound like in the + // original, but I still think assuming General MIDI is + // the right thing to do. Some music, like the End + // Title (song 0) sound absolutely atrocious when piped + // through our MT-32 to GM mapping. + // + // It is, however, quite possible that the original + // used a different GM to FM mapping. If the original + // sounded markedly better, perhaps we should add some + // way of replacing our stock mapping in adlib.cpp? + // + // For the composer's own recording of the End Title, + // see http://www.johnottman.com/ + + // Oddly enough, the intro music (song 1) is very + // different in the two files. I have no idea why. if (hasAdlib()) { rsc_ctxt = GAME_GetFileContext(GAME_MUSICFILE_FM, 0); - // FIXME: This is weird, but this way Adlib - // sounds closer to original, though instrument - // mapping is not correct. - _player->setGM(false); } else { rsc_ctxt = GAME_GetFileContext(GAME_MUSICFILE_GM, 0); - _player->setGM(true); } + + _player->setGM(true); } if (RSC_LoadResource(rsc_ctxt, music_rn, &resource_data, -- cgit v1.2.3