don't click here

Custom MIDI files? In my Sonic & Knuckles Collection?

Discussion in 'Engineering & Reverse Engineering' started by nineko, Dec 7, 2009.

Thread Status:
Not open for further replies.
  1. Azu

    Azu

    I must be stupid. Member
    That's why people should stop with RS. =/
     
  2. Mad Echidna

    Mad Echidna

    Gone Oldbie
    5,219
    0
    0
  3. Herm the Germ

    Herm the Germ

    Hmm, not bad. Well done, doctor! Member
    1,482
    1
    0
    Dresden, Saxony, Germany
    MIDI-to-SMPS-conversions, mostly. Takin' requests, too.
    Eh, dun look like the game wants to work under Wine to begin with. (Or at least not go past the SEGA logo without freezing) And since I ain't in the mood to get on a Windows-PC, guess I won't be able to work with this for now. Oh well. Thanks for providin' this, anyhow.
     
  4. Azu

    Azu

    I must be stupid. Member
    I don't suppose there's some SRA/SR midis floating around anywhere other than VGmusic, is there?
     
  5. Mr. Ksoft

    Mr. Ksoft

    Member
    I just finished putting together an entire custom soundtrack... a couple songs don't seem to work once they've been inserted into the DLL but I'm going to go back and see if I goofed up. Perhaps I'll post the DLL once I've assured it's all working.

    This is really fun.
     
  6. nineko

    nineko

    I am the Holy Cat Tech Member
    6,421
    585
    93
    italy
    Maybe I can help with that, if you want. Feel free to contact me via PM or IM.

    Thanks for the positive comment, btw. Suddenly this feels a bit more useful.
     
  7. LordOfSquad

    LordOfSquad

    bobs over baghdad Member
    5,276
    314
    63
    Winnipeg, MB
    making cool music no one gives a shit about
    It's useful, I just haven't got around to trying it out yet. Seems like the sort of thing that will take me a few hours to get working, and I haven't had the time.
     
  8. Mr. Ksoft

    Mr. Ksoft

    Member
    Yeah, it takes a couple hours to get into the swing of things. Even longer to build a playlist... I was messing with it from noon to 8pm.

    Nineko, if I can't figure it out I'll send you a PM. I just haven't got around to trying it again yet, as I did all the work on my old Windows 95 box in the basement (best MIDI in the house-- Sound Blaster 16 OPL3!) and I haven't been down there again.
     
  9. Chaos Knux

    Chaos Knux

    Stable avatar temporary. Randomizer site down. Banned
    Nineko... I love you in a non-homosexual way. You just saved me 3 days of scouring the net for a download/online store carrying it.
     
  10. LordOfSquad

    LordOfSquad

    bobs over baghdad Member
    5,276
    314
    63
    Winnipeg, MB
    making cool music no one gives a shit about
    Now, I do have a question.

    What's the best way of doing this?

    Also:

    Is it possible to use this program in conjunction with S3K?
     
  11. nineko

    nineko

    I am the Holy Cat Tech Member
    6,421
    585
    93
    italy
    While I'm usually quite lenient with off-topic posts in other people's threads, I'm very picky instead when it comes to my ones. For this reason, I've split all the boring Wingroove and XG related posts to a separate thread. I couldn't move your post too because you actually had a relevant question into it, to which I will reply later because now I don't have much time, and I only wanted to clean up this mess. Please keep the non-S&KC discussion in that other thread from now on. I don't give a shit about Wingroove (I don't even want to know what it is) nor about Oerg's XG crap.

    edit: ok let me see if I can find time to answer to your question, even though I'm at work
    I personally use Midi Orchestrator Plus, but you can do this with any MIDI sequencer, I guess. You go to any channel and you insert a Controller event at the proper time, with a controller value of 111 and any parameter value. If your sequencer doesn't allow you to do low-level sortings to events (Midi Orchestrator Plus doesn't, for example) you must hex edit the MIDI. Unfortunately that's not as easy as you would hope, because while it's quite easy to locate the controller itself (if you put it on channel 1, with a parameter of 0, you just have to look for B0 6F 00), you must be familiar with delta-time values in order to actually move the controller around. As a rule of thumb, if the byte before the B0 is 00, then there is another MIDI event taking place at the same time; if the byte after the 00 is 00, then there is another MIDI event taking place at the same time. For the start of the loop, you want the controller 111 to be the first event; for the end of the loop, you want the controller 111 to be the last event (but it must be followed by the end-of-track metacommand, which is FF 2F 00 or something like that, I'm typing this off the top of my mind). But here's the thing: to swap events around you must know how delta-time works, and how to separate events.

    You can use a trick, however, if you know that there is more than one event at the same time and you want to make sure to sort them right. Say that you're working with a standard midi resolution of 480 ticks per beat. If you want to put the start of the loop at measure 4, beat 1, tick 000, you can actually put the controller at measure 3, beat 4, tick 479; same, but in the other way around with the end controller: if you want to put it at measure 10, beat 1, tick 000, actually put it at measure 10, beat 1, tick 001.
    Now, in your MIDI file, you'll have something like this at the start of the loop: XX B0 6F 00 01. Change the XX to XX+1 and the 01 to 00.
    At the end you will have something like 01 B0 6F 00 00 FF 2F 00. Just change the 01 to 00.
    The above trick is not needed if there are no events at the time locations you chose for your loop. Note that "note off" events COUNT as events. So you might find unexpected events near or after your end loop point if you trim it wrong.

    I hope this helps :)
     
Thread Status:
Not open for further replies.