Author Topic: SCI0: Adlib, Yamaha, PC speaker Tandy 1000 music tracks  (Read 15535 times)

0 Members and 1 Guest are viewing this topic.

Offline robbo007

SCI0: Adlib, Yamaha, PC speaker Tandy 1000 music tracks
« on: July 30, 2025, 09:14:37 AM »
Hi guys,
I'm starting to tackle some of the music in my game and trying to understand how the other sounds cards tracks are integrated into the SCI0 sound resources. If I take an example of the LSL3 Nontoonyt Jungle Theme. Sound resource 299.  I'm looking at the original SND299.SNG (from AL sourcecode) which is in Voyetra's Sequencer Plus format. This is much easier as it lists all the channels, instrument names etc etc.

I've exported this to a midi file and imported into Logic Audio using the MUNT MT32 emulation with the sysex LSL3 patch. I've setup all the channels correctly so all instruments are sounding as they should do.
I wanted to see how this all looked in Logic in midi format. The Roland MT32 part of all this is clear. Its the other sounds cards I'm not grasping the concept yet.

In SC I see the sound resource has the following configured: 
Tracks 2,3,4,5,6,8,9 are used for the Roland MT32
Tracks 2,4,6,12 are used for the Adlib
Tracks 1,10,12 are used by Tandy 1000
Track 11 Pc Speaker.

I see the different sound cards use the same tracks sometimes. Why is this? Is it because in the example of Track 2 both Roland MT32 and Adlib use the same instrument on channel 6?

I can create a new midi track in Logic Studio without issues. It create my patch files and then a MT32 main sysex file and I think there is a utility to convert this to a SC patch resource to use with SC. This process is clear. How do I then add support for the other sound cards? If I look at the Voyetra snd files they include the tracks for all sounds cards, not just the MT32.

I see there are other resource patch files for each of the other sound cards in SC. Is there a way to use these patch files outside of SC so I can see what instruments are on each channel etc? Or a way to test my midi fille made in logic with these sounds cards and patches?

Are the resource patch files for the other sounds cards in the SC template all from LSL3? If I'm creating a new patch file for the Roland MT32 would I then need to create new patch files for the other sounds cards based on the same instruments I'm using in the Roland Mt32 patch file?

Sorry for so many questions. Just trying to understand how to make the music work.
Regards,



Offline Kawa

Re: SCI0: Adlib, Yamaha, PC speaker Tandy 1000 music tracks
« Reply #1 on: July 30, 2025, 10:17:53 AM »
I can answer at least the one about the template game's patches: at the very least the MT32 patch has a pickup line, and patch.101 starts with "CTLL3". That's confirmed for both the actual template and this copy of Betrayed Alliance I picked at random (because it's alphabetically sorted natch). I'm too tired right now to do a hash match.

Offline lskovlun

Re: SCI0: Adlib, Yamaha, PC speaker Tandy 1000 music tracks
« Reply #2 on: July 30, 2025, 08:01:20 PM »
I was waiting for @MusicallyInspired to answer this, but I'll do it anyway. There is a tool called MTEST in Omer's stash, which requires a bit of setup, but is pretty nifty after that. It is a music player that uses the SCI MIDI engine and the SCI MIDI drivers. It allows you to apply basically all of the MIDI engine's functionality on the fly while playing a sound. But yeah, it takes some getting used to.

Offline robbo007

Re: SCI0: Adlib, Yamaha, PC speaker Tandy 1000 music tracks
« Reply #3 on: July 31, 2025, 07:03:01 AM »
I was waiting for @MusicallyInspired to answer this, but I'll do it anyway. There is a tool called MTEST in Omer's stash, which requires a bit of setup, but is pretty nifty after that. It is a music player that uses the SCI MIDI engine and the SCI MIDI drivers. It allows you to apply basically all of the MIDI engine's functionality on the fly while playing a sound. But yeah, it takes some getting used to.

I've had a look at MTEST.EXE. What file is needed for the "Where file" ? I've tried to use the syntax for my sci resource sounds file. For a midi file. The exact error is "Could not find SoundDrv in where file" would that be the Sierra sounds card .DRV file its looking for? I've tried SNDBLAST.DRV and MT32.DRV but same error.

To continue from my above post. I've done some more messing around only to spark more questions. haha.

I've successfully recreated sound 299 in Logic using the MT32 instruments. I've then exported this to a midi file and then imported into SoundBox. I then edit the channel properties for the song and mark the correct play flags for the sounds card. I've then saved this to a sounds resource which I then import into my game in SC. The Roland MT32 tracks play perfectly. The PC speaker plays perfectly but I can't get the adlib/soundsblaster to work? The sounds resource has the correct play flags marked when I saved the file in Soundbox. Is anything else needed to be able to use these sound cards?

Another mystery:
When I open the original sound.299 file inside the LSL3 resource and select SCI sound driver to Roland MT32 it marks various tracks with a tick. Are those the tracks the Roland MT32 will play? If so there is an issue. Track 7 is not selected but its a vital instrument for the song. Its the "Shak" instrument Which is the flute like sound. Why is it not selected in SCICompaion ?

Offline Kawa

Re: SCI0: Adlib, Yamaha, PC speaker Tandy 1000 music tracks
« Reply #4 on: July 31, 2025, 08:33:46 AM »
Where files are just resource.cfg but with perhaps more information on where resources of each type can be found.

Here's LSL3/TEST/WHERE as an example:
Code: [Select]
view=L:/view
pic=L:/pic
sound=L:/sound
patch=L:/sound
script=S:/.
vocab=S:/.
font=S:/.
cursor=S:/.
videoDrv=S:/ega320.drv
soundDrv=S:/mt540.drv
kbdDrv=S:/ibmkbd.drv

Offline robbo007

Re: SCI0: Adlib, Yamaha, PC speaker Tandy 1000 music tracks
« Reply #5 on: July 31, 2025, 09:55:18 AM »
Where files are just resource.cfg but with perhaps more information on where resources of each type can be found.

Here's LSL3/TEST/WHERE as an example:
Code: [Select]
view=L:/view
pic=L:/pic
sound=L:/sound
patch=L:/sound
script=S:/.
vocab=S:/.
font=S:/.
cursor=S:/.
videoDrv=S:/ega320.drv
soundDrv=S:/mt540.drv
kbdDrv=S:/ibmkbd.drv

ok thanks. That makes sense.

I'm built my where file:
Code: [Select]
view=../view
sound=c:\mtest/sound
patch=c:\mtest/sound
pic=../pic
script=c:\mtest
vocab=c:\mtest
font=c:\mtest
cursor=c:\mtest
videoDrv=c:\mtest/ega320.drv
soundDrv=c:\mtest/mt32.drv
kbdDrv=c:\mtest/ibmkbd.drv

Under real MSDOS 6.22 It reaches installing driver ... then seems to lock-up. I've tried using the sndblast.drv, mt32.drv, adl.drv EMS only, XMS only both and same results. Any ideas?

Offline lskovlun

Re: SCI0: Adlib, Yamaha, PC speaker Tandy 1000 music tracks
« Reply #6 on: July 31, 2025, 10:37:51 AM »
Oh, this is me being stupid. MTEST is for SCI1 (and there's a version for SCI1.1 too). It doesn't work with SCI0.

Offline robbo007

Re: SCI0: Adlib, Yamaha, PC speaker Tandy 1000 music tracks
« Reply #7 on: July 31, 2025, 10:54:11 AM »
That would explain it crashing :) hehe
I wonder if there is a SCI0 version that maybe Omer does not have? As in Al Lowe's stuff there is a "where file" located in the SCRIPT directory in the Fastbackplus files.

Code: [Select]
view=../view
sound=../sound
patch=../sound
pic=../pic
script=c:\system
vocab=c:\system
font=c:\system
cursor=c:\system
videoDrv=c:\system/ega320.drv
soundDrv=c:\system/mt32al.drv
kbdDrv=c:\system/ibmkbd.drv

Offline lskovlun

Re: SCI0: Adlib, Yamaha, PC speaker Tandy 1000 music tracks
« Reply #8 on: July 31, 2025, 07:12:22 PM »
The where file is shared by a number of tools, most notably the development version of the SCI interpreter. Instead of resource files, it finds the files in the directories specified by that file.

EDIT: Oh, and the MIDI engine was rewritten quite substantially at one point. It is one of the things I use to distinguish SCI0 from SCI01 and later (I don't always agree with the choices ScummVM has made in that department).
« Last Edit: July 31, 2025, 08:58:26 PM by lskovlun »

Offline robbo007

Re: SCI0: Adlib, Yamaha, PC speaker Tandy 1000 music tracks
« Reply #9 on: August 02, 2025, 12:23:23 PM »
Interesting. I just spoke to Mark Seibert about how he was working with this stuff back in the day. He mentions:

"As for conversions to other devices? We had built tools in house to have the MIDI output from the sequencing device plug into a separate PC with the target device.  The person editing could then treat the receiving PC just like an external synth.  That made editing very simple by just muting the MT-32 tracks, and playing and editing the Adlib, Tandy, or whatever device was the target."

I wonder what "in house" tools he used?

Regarding the other stuff I'll wait to see if @MusicallyInspired is around to assist with my other questions.

Offline robbo007

Re: SCI0: Adlib, Yamaha, PC speaker Tandy 1000 music tracks
« Reply #10 on: August 06, 2025, 11:01:58 AM »
So after messing around with many sound utilities things are a little clearer now. I still have a few questions lingering.

I think I will try and support the following hardware for the music:

Roland MT32
Sound Blaster/Adlib
Casio (CSM-1, MT-540)
Yamaha (FB-01, IBM PC Music Feature)

I'm gong to drop Tandy support as I don't own any Tandy devices.

From the original Voyetra .SND files from Al Lowe, I see the MT32 seems to always use Channel 10 for percussion. Yamaha and Adlib seem to use the same channels. Casio shares some with the MT32 and PC speaker is normally just using a simple melody from the song.

What's the best approach when designing music? Keep the MT32 on channels 1-10? Keep a a main melody in mind for the PC speaker channel? Keep Adlib/Yamaha on channels that might need extra instruments different to the MT32 channels?

Regards,

 

Offline Kawa

Re: SCI0: Adlib, Yamaha, PC speaker Tandy 1000 music tracks
« Reply #11 on: August 06, 2025, 11:31:23 AM »
Absolutely don't use channel 1 for the MT-32. By default, that thing starts up using channels 2-9 for non-drum parts. There's a setting to make it use 1-8 instead, but SCI doesn't do that.

Absolutely do keep the AdLib tracks separate from the MT-32 ones, for exactly the reason you stated. You can have them use the same channels though. So long as only one track plays on a given channel, there's no conflict ;)


SMF 2.0.19 | SMF © 2021, Simple Machines
Simple Audio Video Embedder

Page created in 0.027 seconds with 22 queries.