Graf Zahl wrote:Ok, so it seems this is related to the MUSLIB removal. Would be nice to have a song that only used one channel, but that'd require someone with some skills to edit the song.
I can do it; give me the MIDI and tell me which channel has the sound problem and I'll strip the song of all channels except that problematic channel
* please make it MIDI, I don't have Doom tools on my digital audio workstation
Rachael: Can I have the MIDI from the song that Wildweasel demonstrated in his post? At least with this one, I know exactly which channel has the problem...
wildweasel wrote:Okay, here goes, here are some Picosong links that should play directly from your browser (or download if you so wish). Each of these recordings is trimmed to roughly the section of the song that exhibits the issue; the song once again is D_STALKS from btsx2_e2a/btsx_e2b.wad.
Firstly, the "control": Chocolate Doom version 2.2.1. Music is set up to "OPL (Adlib/SB)" in OPL3 mode. This is the song playing correctly, to my ears.
Secondly, GZDoom 3.0.1 using the "Sound System" device. On my system, the device in question is simply called "High Definition Audio Device"; it is the onboard audio from a Gigabyte motherboard. The driver is the default one Microsoft installed via Windows 10. The song plays correctly here as well, indicating it is not a problem with GZDoom's MUS/MIDI handler.
On to the "broken" ones: This one's GZDoom 3.0.1 on the OPL emulator, on its default settings: MAME OPL2 core with 2 chips and Full Stereo Panning enabled. The strings instrument that gives the song an atmospheric bass backing fades out and never comes back.
I had wondered if this was the fault of the OPL core I was using, so I took another recording with the DOSBox OPL3 core and the same settings: 2 chips and full panning enabled. Again, the string bass fades out and never comes back.
The disappearing bass line as shown in Wildweasel's example is actually made up of two tracks (track 8 and 10) so I've included them both. They're both layered in unison (the notes are 100% the same) and they both disappear in the example.
Upon further inspection of the two tracks, I see that between measure 16 and 17 (where the presumed "hook" of the song starts and where the notes disappear in the example), there are two notes that "spill" between measures. The notes are held from measure 16 and continue to play at measure 17, YET also at the "one" of measure 17, a new note plays. I don't know if the MIDI player has problems with that but it's worth noting.
Why this is relevant is because, in the editor, for example, if you place the playhead at measure 17 and start playing the song from there, the previous two sustained notes from measure 16 will be missing because the playhead did not catch the two sustained notes because they're behind. It will only play incoming notes; never notes that were to the left of the playhead.
Yeah I'm not saying it's wrong, it's valid songwriting, I do that a lot too. I doubt that's even the problem, it's probably something else. But that is precisely the location where the music stops so IDK.
Graf: Yes the first few minutes of the song is silent, just like in the original composition. The disappearing ambient sound thingy that Wildweasel showed in his post only happens much later.
Guess you'll have to wait?
I can try cutting the song to immediately jump to that part, although I'm not sure if the bug will trigger if I shorten the song. I have a strong feeling that the bug won't happen if I cut the beginning of the song.
EDIT: I'll try lowering (a lot) the volume of all the non-offending channels instead of outright deleting them.
What I need is a version that shows the problem after a few seconds. The remix doesn't help me at all because the other voices are back in.
To explain, I need this to output debug messages during playback and having to wait several minutes each time for the error to occur essentially means I cannot debug it. It'd just take far too long to get somewhere and with all voices present I cannot even see what goes wrong.