Community

SCI Programming => SCI Development Tools => Topic started by: ZvikaZ on August 29, 2022, 07:00:33 AM

Title: Sounder 0.5 - with many improvements
Post by: ZvikaZ on August 29, 2022, 07:00:33 AM
Hi.
Sounder version 0.5 is available. It includes many new features, improvements, and bug fixes.
Windows installer can be downloaded from: https://github.com/adventurebrew/re-quest/releases/latest/download/Sounder.Installer.exe (https://github.com/adventurebrew/re-quest/releases/latest/download/Sounder.Installer.exe)
Or, if you prefer the Python source: https://github.com/adventurebrew/re-quest/tree/master/tools/sci/sounder (https://github.com/adventurebrew/re-quest/tree/master/tools/sci/sounder)

Read the User Guide (from the Help menu) for the detailed usage instructions.

Note
The Sounder source link has been changed from previous posts.
Title: Re: Sounder 0.5 - with many improvements
Post by: Collector on August 29, 2022, 08:12:50 PM
Created a stub page on the Wiki for it. You can fill in and update it as necessary.

http://sciwiki.sierrahelp.com//index.php?title=Sounder
Title: Re: Sounder 0.5 - with many improvements
Post by: MusicallyInspired on August 30, 2022, 04:39:23 PM
Nice!
Title: Re: Sounder 0.5 - with many improvements
Post by: ZvikaZ on September 06, 2022, 05:16:21 AM
Created a stub page on the Wiki for it. You can fill in and update it as necessary.

http://sciwiki.sierrahelp.com//index.php?title=Sounder

Thanks, I've filled that page.

Also, I've issued version 0.5.1 with a minor bug fix.
Title: Re: Sounder 0.5 - with many improvements
Post by: Spikey on September 15, 2022, 02:28:32 PM
Very nice work. I've said so elsewhere, but I'll say it again. :)

Is it possible for Dynamix games to be supported? They mostly use LZW compression in resources, and then SND file type, same as Sierra's (more or less).
Title: Re: Sounder 0.5 - with many improvements
Post by: ZvikaZ on September 15, 2022, 03:39:43 PM
Very nice work. I've said so elsewhere, but I'll say it again. :)

Is it possible for Dynamix games to be supported? They mostly use LZW compression in resources, and then SND file type, same as Sierra's (more or less).
Thanks!
I'm glad to hear that it's useful.

Regarding Dynamix games - well, if it's more or less like Sierra's .snd format, I'm willing to support it.

But I will need more information.
How do I extract the sound resources, of Willy Beamish, for example?
Can you refer me to some source describing its sound resources?
Document, or even a code.
Or maybe you can write the differences?
Title: Re: Sounder 0.5 - with many improvements
Post by: MusicallyInspired on October 19, 2022, 07:12:44 PM
I have a request for a new feature for Sounder. Some GM sound resources in SCI games require the GM patch file to dump a GM reset and/or some other MIDI information like pitch bend range value to the device before playing the sound resources (see SQ6 which absolutely requires this for many of the tracks to sound correct). SCI Viewer supports saving sound resources as MIDI and also allows the user to select a patch file to "upload" as part of the saving process and puts it at the start of the MIDI. This also helps for MT-32 tracks as they require custom MT-32 instrument patch files (of course). SCI Viewer can also attach the MT-32 sysex to the outputted MIDI file. Is there any way we can do the same with Sounder when converting to MIDI? Say with a user-selected patch file in the GUI? Right now Sounder seems to be the best option for converting sounds to MIDI with the only exception being the MT-32 and GM patch dumps which SCI Viewer supports. However, SCI Viewer outputs sound resources at the incorrect speed (slightly slower than it's supposed to sound I think? Maybe faster, I forget).
Title: Re: Sounder 0.5 - with many improvements
Post by: ZvikaZ on April 20, 2023, 06:34:30 AM
I have started looking at your feature request.
It's interesting to note that GM also has SysEx'es.
See https://github.com/scummvm/scummvm/blob/master/engines/sci/sound/drivers/midi.cpp#L802 (https://github.com/scummvm/scummvm/blob/master/engines/sci/sound/drivers/midi.cpp#L802) (this function is called if using GM patch file).
I run it with debugger, for SQ6 (using GM) and the first MIDI command in the patch file is indeed a SysEx.

I assume that GM's SysEx'es are also interesting to keep, right?
Or only the MT32 SysEx'es are interesting?
Or maybe worse - make it configurable? (I feel that Sounder already has too many flags...)
Title: Re: Sounder 0.5 - with many improvements
Post by: MusicallyInspired on April 23, 2023, 03:18:15 PM
Not just interesting to keep, but crucial. It's an initializing sysex for the SC-55. As I said it contains information necessary for the proper output of the MIDI device for things such as pitch bend range and other settings (sometimes drum mapping data, but I'm not sure if SCI1.1 games utilize that functionality They don't). MT-32's sysex is more than just that as it has outright custom instrument timbres for custom sound patches. But also stores information like pitch bend range, etc. If there is sysex data, it was intended by the composer to output the music properly and absolutely needs to be preserved. Otherwise there will be missing information that affects how the music sounds.

As to what options there should be, my recommendation is this. When exporting a SOUND resource as MIDI and when choosing which music device tracks/channels to output to a MIDI file, for the devices that have PATCH/sysex data (ie- MT-32, GM, FB-01/IMFC) offer these options:

-Save without sysex
-Save sysex into output MIDI file
-Save sysex as separate .SYX file

Perhaps also having a separate section dedicated to PATCH resources would be helpful as well so you can convert them to .SYX or .MID without having to export along with a SOUND resource. That would be a nice bonus.