Discussion in 'Technical Discussion' started by ValleyBell, May 22, 2011.

  1. AkumaYin


    ベーパー Member
    Well, I've gotten the driver to work, kind of...

    So, it now is read correctly and maps to a port number correctly, but it won't play instruments. I did what you said and played a Grand Piano note on channel 11 and I got a rough PSG sound, but that's it.

    Yes, I have gone through and properly loaded all of the configuration files.
  2. ValleyBell


    Tech Member
    researching SMPS sound drivers
    That it plays the PSG note on channel 11 shows at least that it's working.
    Can you please recheck your configuration and maybe post a screenshot of the configuration tool?
    It obviously seems to be unable to load the files (especially .gyb), but in that case it doesn't say anything and just stays quiet.
  3. AkumaYin


    ベーパー Member
    Okay, for some odd reason, the FM instruments work now; but the playback of everything related to this driver is really rough and scratchy. Any ideas as to why?
  4. ValleyBell


    Tech Member
    researching SMPS sound drivers
    In order to make it easier to preview songs made with mid2smps, I made a small package with SMPSPlay v2 and the config files required to play the exported SMPS files.
    You can download it here.

    Aside from the most recent SMPSPlay, it includes:
    • config files to play SMPS files for Sonic 1 and Sonic & Knuckles
    • PSG files for S1, S2, S3K and S1+S3K (used by some S3K->S1 song porting tutorials)
    • DAC configurations for Sonic 1 (original DAC driver, jman2050, MegaPCM), Sonic 2 Clone Driver (jman2050, MegaPCM) and Sonic 3 (original, MegaPCM)
    By default, it loads definitions for both, Sonic 1 and S3K. You can disable loading of either by editing config.ini in the root directory.
    .bin files are assumed to be Sonic 1 SMPS (defined with .smp extention). You can change that behaviour in config.ini as well.

    In order to choose the DAC driver and DAC drum set, you edit Definitions\config_S1.ini. The "DAC" entry sets the respective .ini file that defines all that.
    If you need a custom drum set, I recommend to make a copy of one of the existing DAC.ini files (choose the one with settings for the DAC driver used in your hack) and modify that with your custom DACs. Valid values for the "Compr" setting are "DPCM" (compressed) and "PCM" (uncompressed), the rest should be self-explanatory.
    If you need help, you can read the "documentation" or send me a PM.

    Logged VGMs always go to the "dumps" folder and have the same file name as the original SMPS files with a .vgm extention. If you want to log VGMs, you should leave the SamplesPerSec setting at 44100 (or use a multiple of it), because that's the native sample rate of VGMs.
    If you log the sound to a WAV file, keep in mind that everything you play goes to the same file. But dumping a VGM and converting that to WAV is the recommended way anyway.

    I wish you a happy SMPS and VGM making!
  5. rata


    Trying to be useful somehow.
    You are awesome, ValleyBell. You're probably tired of hearing that, but you are damn awesome and I won't stop saying it. Thank you very much for all your work, really.
    I would love to learn how to make my own music (I know, its all well documented) but I see it very unlikely at least for the next 20 years.
  6. Herm the Germ

    Herm the Germ

    Hmm, not bad. Well done, doctor! Member
    Dresden, Saxony, Germany
    MIDI-to-SMPS-conversions, mostly. Takin' requests, too.
    I do love the extensive work being done with this. Great job. : O … I just find it funny, the new SMPSPLAY, both 32- and 64-bit, seems to run better under Linux (Kubuntu) with Wine than mid2smps itself does.
  7. ValleyBell


    Tech Member
    researching SMPS sound drivers
    Well, here we have mid2smps 0.3.5. A release which I've been delaying (and forgetting about) for way too long.

    Aside from bug fixes, it also includes a few features, namely:
    • support for up to 32767 melody and drum instruments each in a single GYB file.
      Bank MSB and LSB controllers can now be used in order to access more instruments.
      You can freely assign FM instruments to any combination of Bank MSB + LSB + instrument using the "..." button in 2612edit's "Instrument mappings" group.
      Important note: In order to support more instruments, the GYB format had to be upgraded to version 3, so any GYB files saved with the new version won't work in older ones. (mid2smps 0.3.5 can still open GYB v1/v2, of course.)
    • There is an "Auto-Reload" mode. Activate it and mid2smps will automatically reload the MIDI before converting. (→ resave the MIDI and just press Ctrl+S in mid2smps)
    • You can do global loops using Marker Events "loopStart" and "loopEnd" (Final Fantasy 7 PC style)
    • You can put the E2 coordination flag with MIDI CC #89. (→ used for synchronizing the game to the music in MJ's Moonwalker and Ristar)
    • There are options to disable the Chorus controller and pan law compensation.
      Note: You can't do that in the MIDI driver. It might come in handy if you use and FM VSTs though.
    You can download the Win32 Binary and the source code. (The latter includes the source of 2612edit and the OPN_DLL as well.)

    I also updated the MIDI driver with a few fixes and GYB v3 support. (which I've been using a lot recently) It's also a bit more stable.
    You can get the most recent version as Win32 DLL or source code.

    I actually wanted the next release to be v0.4, but I barely do any development on mid2smps anymore, so I'm just releasing what I have. There were a few features I wanted for 0.4 like post-processing commands and multiple drum kits, but that probably won't happen.

    Anyway, enjoy music making!