There are quite some bug reports from musicians that the openMSX Y8950 emulation (and possibly also the YMF278 and maybe even the YM2413) does not implement legato envelopes (notes stop and smoothly transition into the next one). Here is wat Jorrith writes about it:
> On real hardware, this works just fine:
>
> http://www.jorito.net/files/impact_copyiscrime1.mp3
>
> (recorded from an FS-A1GT with a Philips Music Module; sounds the same on a Philips NMS8245 tho)
>
> On Open/BlueMSX, it doesn't. I was too lazy to create a recording, so you might want to check it for yourself (and get a cool MSX demo for your efforts ;)). It's the 4th part in the demo, you can skip parts with the space key. It runs on an MSX2 with 128kB RAM and 128kB VRAM and an MSX Audio. You can find the demo in the disk image.
>
> Some snippets of our talk in #msx is also attached:
Jorito_: Quibus: http://www.jorito.net/files/impact_copyiscrime1.mp3
[21:12] Jorito_: compare that with openmsx
[21:12] Jorito_: that recording is from my GT with a musmod
[21:14] Wolf_: oooh.. is it about the legato notes?
[21:15] Wolf_: not tested yet.. but the title says enough to me
[21:16] Wolf_: legato envelopes even
[21:17] Jorito_: yep, that's the one
[21:25] Wolf_: I actually mentioned that very same title sometime before
[21:27] Jorito_: it's prolly a simple envelope thingie
[21:27] Quibus: we actually didn't write the sound emulation
[21:27] Wolf_: the attack of a new note is related to the release rate of the previous one
[21:28] Wolf_: -iirc-
[21:28] Jorito_: Quibus: there's no new version of that engine you're using?
[21:29] Quibus: Not that I know
[21:29] Quibus: But feel free to correct me
[21:29] Jorito_: I don't know what engine you're using
[21:30] Wolf_: Jorito_: email that crime1 link to dvik!
[21:30] Wolf_: and perhaps a .dsk of impaccable
[21:30] Jorito_: hey, that's a good idea :)
[21:30] Jorito_: but... I can't verify if it does the same on blue
[21:30] Wolf_: prolly
[21:31] Wolf_: I bet a dime it sucks on all emulators :P
[21:32] Wolf_: the effect is not something everyone's familliar with, so the chance that someone incorporates it into emulation gets smaller
[21:34] Quibus: anyway, that FM emulation code is rather messy and not written/designed by MSX emulator authors :)
[21:34] Quibus: So it's hard to solve it there
[21:37] Wolf_: Actually it's quite typically something scene'ish, that whole effect
[21:37] Wolf_: I couldn't just come up with a JP *game* that has this effect
[21:37] Wolf_: that's prolly why the effect is not present in emulation
[21:37] Jorito_: weird when you consider the plethora of games that use the msx audio :P
[21:38] Wolf_: hm.. wasn't the same thing also present in the fm-pac?
[21:38] ? Wolf_ not sure :S
[21:38] Jorito_: less so, iirc
[21:38] Wolf_: well, finding out is simple: run a microcabin bgm player, if something sounds weird, envelope-wise, then fm-pac has that effect too
So, the demo he is talking about is "Copy is Crime", by Impact.
Demonstration of Legato envelopes which aren't emulated
Meits recorded the following on a real MSX-AUDIO: in Moonblaster 1.4, select the voice Alien 2 and make this pattern: c4 d4 e4 f4 g4, with like 7 steps between each.
on an emulator every tone is like it's the first... on msx some of the envelope of the previous tone comes along with the next one...
Please check attached mp3 of the above mentioned pattern on real MSX.
Here's also the Copy Is Crime song, of which the emulated version can be heard here: https://www.youtube.com/watch?v=uh2CcVBCuFw
(it's the first song of the demo, in the opening title screen)
Last edit: Manuel Bilderbeek 2014-05-17
It would be nice if this could get fixed. Envelopes have been obviously wrong on FM emulation since the dawn of FM emulation... It really makes me wonder what people writing FM emulators actually use as a testing scenario.
Fix here: https://bitbucket.org/grauw/openmsx/commits/a8f2438
Please pull from https://bitbucket.org/grauw/openmsx
Compare.
Fixed by Grauw, verified by Wouter, also verified that YM2413 and OPL3 are OK.
Thanks a lot, Grauw!
See commit 4980588fb93370af75170d910c1d4fe0d0e0a202 for the details.
I checked the OPL3 and OPL4 implementations, and Wouter checked the OPLL implementation, those are all correct.
MSX-AUDIO, OPL3, OPL4 FM: envelopes are not retriggered on note-on
OPLL, OPL4 WAVE: envelopes are retriggered on note-on
(OPLL has a quick “dump phase” actually after note-on)