Wohlstand / libOPNMIDI

A Software MIDI Synthesizer library with OPN2 (YM2612) emulator
GNU Lesser General Public License v3.0
90 stars 7 forks source link

Small notes list #94

Open Wohlstand opened 4 years ago

Wohlstand commented 4 years ago

After giving a comment to this video, AshKirby have replied me:

@Wohlstand You mean to tell me that the PC-98 soundtrack of Doom was made using a poor sounding OPN2 based sound program trying to imitate the even crappier sounding OPL sound chips used in sucky DOS games instead of a proper OPN or OPNA based sound program, and you're the one responsible for creating that same sappy sound program(fellow chiptune artist Ozaleto told me that you were the creator of that program)? In that case, the PC-98 soundtrack could use some serious improvement, as well as that sound program libOPNMIDI you made. For starters, the program could seriously use support for the OPN2's PCM Dac that's on channel 6. Next, if you're gonna make a sound program with the name OPN in it and use that said program to compose a PC-98 soundtrack, then at least give the sound program support for the actual OPN sound chips used with the PC-98(the original OPN aka the YM2203 and it's successor the OPNA aka the YM2608), as well as support for all of the sound channels on each of the OPN sound chips, and NOT JUST THE FM ONES. Next, I would suggest that you add support for FM Channel 3's CSM and multi op/channel modes for each of the OPN sound chips. Next, I would recommend support for SSG-EG envelope(which comes from the built-in YM2149 that each of the OPN sound chips sans the OPN2 have) that each of the OPN sound chips have built in(thought the OPN2 has the envelope built in without having the YM2149 built-in within it as well). Next I would suggest implementing features from PMD, since that's the music tool that mainly used to compose PC-98. That way, it can sound more like an actual PC-98 soundtrack! http://battleofthebits.org/lyceum/View/Professional%20Music%20Driver%20Effects%20Commands , https://pigu-a.github.io/pmddocs/pmdmml.htm , Next, if libOPNMID dosen't have support for the sine wave LFO that each of the OPN sound chips have, I suggest adding that to it as well. And finally, I suggest ditching trying to have the program imitate or copy the sound and style of the OPL DOS sound chips, unless it's the OPL3'S 4 op mode.

I have replied next: @AshKirby , yeah, I see, and yeah: on the side of libOPNMIDI I have added support of some OPNA emulators are can be chosen between others are OPN2. The first chip I targeted is OPN2, but not YM2203 yet. However, it's technically possible to support it as it's compatible, however, with 3 only FM voices, but with some PSG, yeah.

freq-mod commented 4 years ago

I would also like, if possible, to have instrument arpeggio pitch slide up/down, in similiar fashion to Bamboo Tracker/PMD. That way, drums and SFX instruments could be drastically improved.

Ch3-CSM isn't supported yet, however, I saw mentions of it in the OPN2 documentation, however, I have no idea for what it can be used (I heard that for drums).

Implementation of CSM will be very hard due to scarce documentation, and uses will certainly be very limited. It's not used for drums, but rather, veeeeery crude and rudimentary speech synthesis: https://www.youtube.com/watch?v=fI5f35tXF1Q

Wohlstand commented 4 years ago

pitch slide up/down

That I have also planned and I have specified that in WOPLv3 draft you can see.

jpcima commented 4 years ago

I agree with all being said, it's good idea to improve and also align with Bamboo tracker abilities.

freq-mod commented 4 years ago

That I have also planned and I have specified that in WOPLv3 draft you can see.

You're right, I forgot about that. Bamboo Tracker has also ability to change FM parameters (FB level, freq. multiple, attack rate, etc.) on fly, mid-note via macro. That also would make a nice enhancement in further future.

Wohlstand commented 4 years ago

change FM parameters (FB level, freq. multiple, attack rate, etc.) on fly

By MIDI this looks like introducing of certain controllers, custom NRPN things, or own SysEx messages.

jpcima commented 4 years ago

@Wohlstand for such particular things, I advise to allow setting midi-learn mappings