Giter Club home page Giter Club logo

dmxopl's People

Contributors

freq-mod avatar olpainless avatar sneakernets avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

dmxopl's Issues

Possible "OPL" GENMIDI

To get myself back into things, I've decided to make a OPL/OPLL style General MIDI set. Nothing fancy here, just using the Sine Wave. I'm going to be working on DMXOPN2 again soon, so perhaps it's a form of "practice".

Replace Trumpet

While I like the patch we have, it breaks in DMX due to DMX failing so hard with AM mode (Why??!)

Likely reverting to the old patch, but maybe I don't have to (Tyrian?)

Flute Attack too low

FF6 and FF7 soundtrack exposed these issues:

  • Make sure flute trill works in FF6 Prelude: Attack of some wind instruments are too low, rendering trills too quiet to hear in the mix. Other offenders include the Flute, Ocarina, and Piccolo patches.

Music Box and Glockenspiel need improvement

Compared to SC-55 (or even that damned Microsoft GS Synth) they are totally different and hardly resemble what they're supposed to be, ESPECIALLY at lower octaves.

While I experimented with these two, I doubt I reached the optimum. Maybe I was going in the totally wrong direction ( ͡° ͜ʖ ͡°)

P.S. If you need more midis for testing purposed, I can "donate" some of mine. Downloaded them a goood while ago from an ancient japanese site, interestingly they're so good I listen to them UNIRONICALLY. Since japanese VN music from 90's was so damn complex, it's a good opportunity to test less used instruments. such as Tinkle Bell ;)

UPDATE: Msx box is done.

Rock organ sounds like strings section sometimes

Somewhat similar to #18 - rock organ patch is so "harsh" that it sounds like some kind of french horn or even tremolo strings ensemble (I even made an experiment swapping strings patch with rock "organ" one, it didn't sound that bad o.O)

There might be no way to solve this (at least I can't), but maybe...

P.S. If it helps a little - here is how I made rock organ in my OPN2 bank. Sounds rather hollow, though.
zrzut ekranu z 2018-02-22 19-50-24

Tying up loose ends

The project has been dormant for a while, being pretty much "done" for the most part, save for some drum kits and some GS/XG instruments that are being done "when I get around to it". But there are some instruments that I think need some work now that I've heard them enough:

  • Pizzicato Strings: Sound too much like a steel drum somehow, needs some more timbre (but how?)
  • Brass Section needs to have detune applied on attack, this once worked, but somehow got changed. This only affects a few midis.
  • Shakuhachi needs a lot of work. It sounds pretty scratchy and bad in high ranges.
  • Tubular Bells ADSR needs some cleaning up. Sometimes the bell gets cut off (ADLMIDI issue? who knows)
  • Timbales need to be redone completely. There has to be a way to pull that sound off!
  • Clean up toms on other drum kits.
  • Finish the drum kits.
  • Make Rhodes Piano a little better. This has been tweaked a lot since I started, and it may have gotten worse.
  • Mayyybe tweak choirs a bit?
  • Orchestra Hit needs redoing. It's too fuzzy. I had a better sounding one before. Find it maybe?
  • Clarinet needs a little tweaking. It's much too "honk".

Contributing process

Hi,

I have some patches I'd like to contribute, but I am unsure of what process is in place. That is, how should individual patches be delivered to the repo?

Br.
Andreas

Fix Piano for good

I cannot stay satisfied with the current Piano, even if it's a Yamaha preset. What I want to use aliases on Emulators. Now what?

Start work on Single Voice implementation for DMX compatibility

DMX cuts the second voice of double voiced instruments when channel pressure is maxed out. Make sure that all double voices sound reasonably good with the second voice disabled.

Basically any double voices that use the extra channel to add more harmonics to the sound (but aren't 100% needed) need to be the second voice. It'd be embarrassing if the harmonics were the primary voice and the fundamentals are placed on the second voice.

Ride Cymbals need work

Since DMX isn't really a target anymore, Let's fix the cymbals. The hats are alright, it's the ride cymbals that are in trouble. I started work on the ride cymbal 1:
image

This sounds much better but it's still not "perfect" in matching the SC-55. Ugh.

Fix Slap Bass patches

Slap Bass patches need to be updated to a) be less loud, and b) match SC55/SC88 patches.

Ideas:

  • Get Fourier graph of SC55 Slap Bass 1 and Slap Bass 2 sample (within usual range)
  • Match patch output with sample on the first few harmonics
  • Use a double voice to match even more harmonics (yet another double voice)

Replace some instruments I may have botched

I had a discussion with one of the contributors, I may be going a little too ambitious on some instruments. Not sure what to do here. We're at this point, which I guess is good...

Document DMX quirk

Finally found out what was breaking all my patches, you know, the ones that sounded like crap on DMX? Yeah... The carrier Level of the second voice is always the carrier level of the first voice. Let me explain.

When a Double Voice instrument is played, both voices' carrier waves will play as if they have the same volume level - which is determined by the first voice. So, if you have 63 for the first voice, and 45 for the second - well, too bad, you get 63 for both.

The reason I never ran into this is that I started only recently doing that kind of voice setup, while the others matched carrier wave volumes.

I don't know what other properties DMX reads from the first voice, but this is definitely one of them. This hasn't been documented anywhere, as far as I know. In fact, none of DMX has been documented, even though the source code is available.

Debugging GS instruments with ADLMidiPlay

A little trick I found with GS instruments (to knock it out of XG mode)

Line 989 of adlmidi_midiplay.cpp:

        bank = (uint16_t(Ch[channel].bank_msb) * 256) + uint16_t(Ch[channel].bank_lsb);

Should be

        bank = (uint16_t(Ch[channel].bank_msb)) + uint16_t(Ch[channel].bank_lsb);

This allows GS to work for now.

How do I use this with gzdoom?

How do I use this with gzdoom? Maybe I'm missing something, but I haven't been able to find clear instructions anywhere.

I'm using gzdoom 3.1.0

Investigate D_DOOM issue

D_DOOM intro is not playing properly, with very loud square waves playing in the bass. I think this might be an SC-55 sampling trick.

Move all instruments that use high notes to 0 voice offset (if possible)

Thanks to a friend that noticed some of his midi files broke on some xylophone parts, sure enough, the top range that one would expect to play does not play. culprit? the one octave offset.

On some voices this is unavoidable. however, on those that can be fixed, let's fix it. Voices that are expected to play high ranges shouldn't be limited at all.

New Toms

I may have to replace the toms with the older ones, as the new ones I just can't figure out how to make louder....

But I would like to salvage the idea, somehow, and make it work -- somehow.

Better Hats

Since I'm not targeting DMX exclusively anymore, I can finally have some hi-hats that aren't awful. If you feel like helping out let me know. they need to blend well with everything else, obviously.

Fix snares

Lee Jackson strikes again, abusing snares. Fix snares for now until libADLMIDI handles it.

The XG/GS "Issue"

I've noticed that splitting up the XG/GS sets into distinct wopl files is a good way to start a massive headache. The only real problems between the two formats are related to the drumkits, so perhaps a software drum remapping (as BASSMIDI does) is the way to go here. Unfortunately, that's out of my hands.

The main issue is having GZDoom's LIBADL implementation follow these rules, as that is where my bank will have the most play - if GZDoom's LIBADL even sees GS/XG instruments at this point, which I don't think it does. I may be wrong though...

Fix DMX issues

Sigh. DMX bugs came out of the woodwork when I made my new hats. Figure out a way to fix this.

Revisit cymbals for WOPL

Cymbals need some cleaning up if possible. The current version is a compromise for DMX, the WOPL version wouldn't need to worry about this. Crashes could be better, ride bell too.

Any plan for SC8820 GS set?

One my friend is interested for SC8820 set as he using some instruments in his MIDI files on the SCVA thing.

Current State of the DMXOPL Project

I realize that this project has been dormant for over a year, mostly due to Real Life ™️ getting in the way. Now that Eternity Engine has ADLMIDI support and life has calmed down considerably, I can begin working on this project again.

A list of things I want to address:

  • Credit - DMXOPL currently is a mishmash of contributions. Given the binary nature of the format we use, it's not really easy to track. I tried to keep tabs on this in my commits and release notes, but some uncredited stuff still slipped through.
  • Bloat - There are a lot of files in the repo that are out of date and too large, including MP3 files. I'm not sure if there is a good way to remove these without breaking the repo, but these files will not be updated and may be removed in future.
  • DMX support - This was dropped due to constant issues with exporting the WOPL file to the DMX format, which meant that several file formats had to be maintained separately. I want to investigate why these issues cropped up and hopefully fix them.
  • Everything in #48 if possible.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.