mid2smps

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

  1. ValleyBell

    ValleyBell

    Tech Members Tech Member
    236
    0
    0
    researching SMPS sound drivers
    xm3smps/oerg comes with a large instrument library in x3i format, which you can import in 2612edit.

    In the current version you need to use the Bank Select LSB controllers (number 32) to set the PSG instrument you want to use and a normal instrument change directly after it to confirm the selection.
    In the version working on it's a bit easier, because the instrument number sets the PSG instrument, but I don't plan to do additional remapping features.
     
  2. ShadowsofYesterday

    ShadowsofYesterday

    I have no idea what's going on. Member
    169
    0
    0
    Fort Wayne, IN
    Sonic and the Magic Hat
    I noticed that with this tool, my "DAC" was just shoved onto the FM6 pointer in the header, and the actual DAC pointer was essentially told to go eff itself. If only DAC instruments are being used on FM6, shouldn't it just use the proper DAC pointer? It doesn't make a whole lot of difference unless you want to go tweaking it in a hex editor, in which case it's just a bit of an annoyance.

    All around a rather useful tool though, it's what really got me into music hacking, before I learned how to hex.

    EDIT: What'd really be nice is if I could just choose what channels to toss everything on, rather than it being automated. Perhaps with an option of automation, for those less gifted in the ways of the SMPS.
     
  3. ValleyBell

    ValleyBell

    Tech Members Tech Member
    236
    0
    0
    researching SMPS sound drivers
    Sorry, I don't understand your exact problem with the DAC/FM6 pointer.

    If you set the mappings correctly, the DAC notes end up on the first track. (The pointer to that track is at $06.)
    The only difference to most other SMPS files is, that the actual data of all tracks are sorted by their position in the header, so it is DAC, FM1..6, PSG1..3.
    I most SMPS files (especially the ones of most MD games), it's FM1..6, PSG1..3, DAC.


    About channel mapping: If I would want to add a decent channel mapping feature, I would need to care about chords. (which can be compilated to handle and may generate messy SMPS files.)
    Like I did in my mid2vgm tools, I decided to keep it simple and hardcode the MIDI channels to certain SMPS channels. (I know that's a questionable choice.) You'll need to use a MIDI editor in 99% of all cases to take care of making all channels (except for the drum channel) monophonic anyway.
     
  4. ShadowsofYesterday

    ShadowsofYesterday

    I have no idea what's going on. Member
    169
    0
    0
    Fort Wayne, IN
    Sonic and the Magic Hat
    For me, that's not the case. Bytes 06 and 07 lead to one byte before where bytes 01 and 02 lead to, to an F2 instruction (basically nullifying the DAC channel), and then bytes 1E and 1F (the FM6 pointers) go to the place where my drums play, as if it's an FM channel. This also has the effect of canceling out the percussion if the 1up jingle ever plays, due to the obscure bug already present in the games.

    EDIT: Disregard, there IS a way to put drums on the DAC channel using Mid2SMPS. I just wasn't noticing it. Well, proceed with the thread as normal then.
     
  5. ValleyBell

    ValleyBell

    Tech Members Tech Member
    236
    0
    0
    researching SMPS sound drivers
    Well, many months have passed since I released the mid2smps 0.3 beta. Many months where I actively used mid2mps, fixed lots of bugs and added a few new features.

    But here it is: mid2smps 0.3 final
    You can download the binary or the source (Visual Basic 6). Or both :P
    Also there's something I wrote in October 2012 - a MIDI driver that runs a recreation of an SMPS sound engine including all of its possibilities and limitations: the mid2smps MIDI driver, compatible with every MIDI sequencer you have.

    The mid2smps package also includes 2612edit, Midi Splitter and SMPS Optimizer.
    For further information and a detailed feature list, read the readme.

    Enjoy!
     
  6. Irixion

    Irixion

    Member Member
    Do me. This is awesome! :)
     
  7. ValleyBell

    ValleyBell

    Tech Members Tech Member
    236
    0
    0
    researching SMPS sound drivers
    Sorry for the bump, but I've been looking at the mid2smps MIDI driver recently (trying to fix some of the random bugs) and remembered that I never released the source code of it. (IIRC I wanted to clean it up a bit. It's still a bit messy with many leftovers from the BASSMIDI driver.)
    But because I haven't touched it for almost a year now and don't have any plans for improvements either, I'll just release what I have.

    MIDI driver: driver part (VC6 and VC2010), playback part (VC6), configuration tool (VB6)
    The driver part uses lots of code from the playback part (which includes a standalone tool I use for debugging). So if you want to build the driver, you need to extract the playback part to the correct folder. (I have the driver in MDMidiDrv\MDMidiDrv_src\ and the playback core in ..\VC++\MDMidiPlay\.)
    Note: The Visual C++ 6 project doesn't build XAudio2, because VC6 is too old for it.

    Also, because I didn't release the source of the later versions either: 2612edit source (v0.3.32, VB6)
     
  8. Herm the Germ

    Herm the Germ

    Hmm, not bad. Well done, doctor! Member
    1,482
    0
    0
    Dresden, Saxony, Germany
    MIDI-to-SMPS-conversions, mostly. Takin' requests, too.
    EDIT: Derp nothing a restart probably won't fix.

    Hella impressive work, honestly. owo
     
  9. Alriightyman

    Alriightyman

    !!!!!!!!!!!!!!!!&#33 Tech Member
    351
    0
    0
    Largo, Fl
    0101001101101111011011100110100101100011 00000010: 0101001100000011 01000101011001000110100101110100011010010110111101101110
    So, I wanted to look into writing music via MIDI and was wondering:
    1) What MIDI sequencer do you recommend to work with the MIDI Driver and
    2) How do I setup the MIDI driver?

    Thanks
     
  10. Xeta

    Xeta

    AkumaYin Member
    I would recommend FL Studio.

    As for the Midi Driver, I don't know how to set it up, either.

    EDIT: Well, I get the setup process, but it never works properly.
     
  11. ValleyBell

    ValleyBell

    Tech Members Tech Member
    236
    0
    0
    researching SMPS sound drivers
    Sorry, I'm late.

    1. Many people seem to use (and praise) FL Studio. I myself still use the ancient MIDI Orchestrator Plus, because of the control over MIDI events. It's a 16-bit application though.
    2. Some people have trouble with installing the MIDI driver recently.
    2.1. If you install the driver and no program can find it, make sure that the MIDI DLL has a file path without spaces. Due to a Windows bug it can't find the driver in a path with spaces. (I don't know a workaround.)
    2.2. After installing it, you load one of the .ini files that come with the driver to get DAC sounds. For mappings, instruments and PSGs you use the files you load into mid2smps.
    2.3. Don't forget to press the "Apply" button to confirm the changes. They will take effect as soon as the MIDI device is reopened. (In the worse case you need to close and open your MIDI editor.)
     
  12. Herm the Germ

    Herm the Germ

    Hmm, not bad. Well done, doctor! Member
    1,482
    0
    0
    Dresden, Saxony, Germany
    MIDI-to-SMPS-conversions, mostly. Takin' requests, too.
    For those of us not bothering with tracking down software and enabling a fake 16-bit-environment to get it to run, I gotta wonder, has anyone been able to get FL Studio to actually EXPORT the results of this driver to WAV/MP3/OGG?
     
  13. Xeta

    Xeta

    AkumaYin Member
    I think so?

    EDIT: Disregard what I said here, I was a real idiot.

    ====================

    I'm inside VMBox running a 32-bit Windows XP OS, in case that's any help of finding out why the driver doesn't work.

    The driver installation program says that the driver has been successfully installed, but I don't see any sign of it in FL Studio's MIDI settings (F10)

    Man, I wish I could get this driver working! I'd like to hear what my song would sound like before I convert it, AND I could (maybe) compose my own music.

    EDIT: Woo, 100th post.
     
  14. Herm the Germ

    Herm the Germ

    Hmm, not bad. Well done, doctor! Member
    1,482
    0
    0
    Dresden, Saxony, Germany
    MIDI-to-SMPS-conversions, mostly. Takin' requests, too.
    Do you have the driver installed a folder without spaces? Only after installing it from there, it'll show up, at least for me.

    My own problem is that FL Studio doesn't seem to register that there is sound coming from these channels even though I can clearly hear it. A channel not set to use the Driver will be registered as playing sound and output that during MP3-exporting, too.
     
  15. Xeta

    Xeta

    AkumaYin Member
    Where exactly does the driver install? If I knew where, then I could see if that's what's causing the problem...
     
  16. amphobius

    amphobius

    where are the japanese shaman girls, lintahlo? Member
    What I've done is to jerry rig a virtual audio cable with ASIO mode - default sound output would be Line 2, Line 2 is going into FL's master and then I hook in an Edison and record there. Pretty convenient!
     
  17. Herm the Germ

    Herm the Germ

    Hmm, not bad. Well done, doctor! Member
    1,482
    0
    0
    Dresden, Saxony, Germany
    MIDI-to-SMPS-conversions, mostly. Takin' requests, too.
    Far as I understand the installation process, all it really does for installation is to tell the Windows registry where to find it.
     
  18. Xeta

    Xeta

    AkumaYin Member
    Oh my gosh.

    OH MY GOSH!!!!!!

    I just had to open regedit and go to "HKEY_CURRENT_USER\Software" and rename it to "MDMIDIDriver". But the problem is, it saves changes to "MD MIDI Driver", so it looks like I'll just have to brute-force the files in there to change the path.

    Thanks!

    EDIT: Wait, I map it to a port number, and FL Studio crashes...
     
  19. ValleyBell

    ValleyBell

    Tech Members Tech Member
    236
    0
    0
    researching SMPS sound drivers
    "HKEY_CURRENT_USER\Software\MD MIDI Driver" is where the configuration settings are stored. That has nothing to do with the actual installation.
    When "installing" the driver, it just creates a registry key in "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Drivers32". That key will then point to the path of the DLL where it is when you install it.

    If it crashes upon loading, try to remove the configuration settings and see if it happens again.
    If not, the best way to check if the mid2smps driver is working is to play a note with the "Grand Piano" instrument on channel 11. (That's the only thing that works without any configuration files loaded.)
     
  20. kazblox

    kazblox

    Member Member
    136
    0
    0
    Sonic 3?
    If the mid2smps driver still doesn't work after mapping a port without it crashing, set the port of the driver to 0 (omni, this is really stupid why am I doing this) and disable Fruity LSD.

    When you want to compose regular music, revert all steps you've done.