The forum about vgm files
It is currently 2022-07-07, 10:30:16

All times are UTC + 1 hour [ DST ]

Post new topic Reply to topic  [ 3 posts ] 
Author Message
PostPosted: 2018-07-02, 8:15:21 

Joined: 2018-07-02, 7:33:07
Posts: 2
I've got a newb question. I just discovered VGMPlay tonight, and built it on my macbook. I'm experimenting on "01. Ultima Theme" at /packs/pack/ultima-v-warriors-of-destiny-apple-ii, which is for Mockingboard A (4xAY-3-8913) x2.

I'm attempting to create a .wav with all but the first channel muted. The song sounds like it only uses 6 voices, so I tried modifying the VGMPlay.ini file with:

MuteMask = 0x3E

MuteMask = 0xFE

MuteCh0 = False
MuteCh1 = True
MuteCh2 = True
MuteCh3 = True
MuteCh4 = True
MuteCh5 = True

but none of these settings muted any of the channels. Suggestions?

 Post subject:
PostPosted: 2018-07-02, 9:13:01 

Staff Staff
Programmers Programmers
Musicians Musicians
Contributors Contributors
Reverse engineers Reverse engineers
User avatar

Joined: 2011-12-01, 20:20:07
Posts: 4028
Location: Germany
At least, I need to explain what "4x AY-3-8913" actually means. It means that the actual VGM contains:
  • 2x AY8910 (variant AY-3-8913)
  • 2x YM2203 (each YM2203 includes all AY8910 features, that part is often called "SSG")
That's actually 12 channels.

Now I'm afraid you encountered the main drawback of VGMPlay compared to the Winamp/foobar plugins - the settings always apply to all instances of a sound chip.
So if you have 2x AY8910 and you do "MuteCh0 = True", you actually mute 2 channels: The first channel of each of the AY sound chips.
Also I just noticed, that I forgot to add configuration settings to allow muting the YM2203's SSG channels. So you can't mute those separately in VGMPlay at all. :/

I'm afraid your only chance right now is to use one of the VGM plugins for Winamp or foobar. I know that in_vgm lets you mute everything separately.

Or if you are fine with programming, you could also hardcode the muting settings at this spot:
ChipOpts[0x00].AY8910.ChnMute1 = 0xFE;  // mute all but 1st channel on first AY8910
ChipOpts[0x01].AY8910.ChnMute1 = 0xFF;  // mute all channels on second AY8910
ChipOpts[0x00].YM2203.ChnMute3 = 0xFF;  // mute all channels on first YM2203's AY8910
ChipOpts[0x01].YM2203.ChnMute3 = 0xFF;  // mute all channels on second YM2203's AY8910

 Post subject:
PostPosted: 2018-07-03, 6:40:15 

Joined: 2018-07-02, 7:33:07
Posts: 2
Cool, that's just the push I needed. I ended up having to put those lines in the PlayVGM function in VGMPlay.c instead, then I got my single voice WAV. Also, I isolated all the voices, and there's 8 (not 6, like I suspected).

Thanks again!

Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 3 posts ] 

All times are UTC + 1 hour [ DST ]

Who is online

Users browsing this forum: Retrochewtoy and 1 guest

You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
Powered by phpBB® Forum Software © phpBB Group
[ Time : 0.026s | 16 Queries | GZIP : On ]