Wohlstand / libADLMIDI

A Software MIDI Synthesizer library with OPL3 (YMF262) emulator
GNU Lesser General Public License v3.0
174 stars 17 forks source link

Under the dos platform, the 4op sound is not played correctly #257

Closed denjhang closed 1 year ago

denjhang commented 1 year ago

\music\adlmidi\adlmidi.exe music.mid 58 If I choose bank number 58, it works perfectly fine, but if I choose bank number 72, the sound is sometimes not right. \music\adlmidi\adlmidi.exe music.mid 72

Wohlstand commented 1 year ago

Which music? Can you send me an file you attempted to play? There is a case where 4op banks were limited to using 6 parallel voices only while 2-op channels can use 18 parallel voices.

Wohlstand commented 1 year ago

When the music plays more parallel notes than the chip can handle, some of the notes get muted, or (if you enabled an automatic arpeggio), cause notes to be "squished" into a single channel that leads to terrible sounding. You can download the super-latest version where auto-arpeggio behaviour got been disabled by default. So, excited notes will be just muted, not turned into a sounding mess.

denjhang commented 1 year ago

It seems to be a problem with the arpeggiator.

https://user-images.githubusercontent.com/61811583/198206984-07da0e41-e909-4be9-9ce8-2168c506c4c9.mp4

denjhang commented 1 year ago

Watery Graves.zip

Wohlstand commented 1 year ago

Try this version: https://builds.wohlsoft.ru/dos/adlmidi-dos32.zip

denjhang commented 1 year ago

So does libadlmidi support pseudo 4op timbres, and if so, you can have 8 parallel notes (opl3bankeditor told me this fact).

Wohlstand commented 1 year ago

Yes, with pseudo-4op voices this works, but, this song actually plays more than 8 parallel notes.

denjhang commented 1 year ago

What does CWSDPMI.exe do?

Wohlstand commented 1 year ago

CWSDPMI is a ClawseWay (analogue of DOS4GW) dependency, required to run the main program. If you delete it, the ADLMIDI will report you that it's missing. In DOS, shared libraries were built as EXEs while on Windows they are DLLs.

denjhang commented 1 year ago

https://github.com/Wohlstand/libADLMIDI/issues/235 So can I currently use libadlmidi to output vgm? I usually need to use this function on win32 platform.

denjhang commented 1 year ago

Try this version: https://builds.wohlsoft.ru/dos/adlmidi-dos32.zip

Thank you, the problem is initially solved.