Pages: 1
Posted on 07-26-15, 05:25 pm (rev. 10 by  skawo on 09-24-16, 03:19 pm)


Karma: 18535
Posts: 179/1086
Since: 04-02-13
This is a fairly tricky thing to do, but can be done with a bit of patience. It's easiest if you're using Cakewalk Studio as your midi editor, but I will later explain how to make others work too.

A. With Cakewalk Studio

1. Duplicate the track with the BAHPs to the last track. Make it channel 16, set to the "Gunshot" (i.e last) instrument (it can be other things, but gonna use it for convenience of this tutorial). Mute it.

2. Change each BAHP note, so that it has a duration of '10', velocity of 110 and 'C 0' pitch.

3. Save the midi, convert it with midi2sseq

4. Open the resulting sseq in a hex editor, and replace every instance of "006E0480" with "B002010080" (they should all be at the end).

5. We've made the file slightly larger in Step 4, so it's time to fix that; check the size in bytes (CTRL+A in the hex editor will select everything and should display it somewhere). You should get two bytes in hex; reverse their order (e.g. 34 A7 -> A7 34) and put them at 0x08 in the sseq.

6. If any of the BAHP points are before the loop starting point, you will also need to relocate the loop point itself. Go to the final five bytes of the sseq; you should see something like

XX YY 00 00 FF

Add to "XX YY" the amount of bahps before the loop. (e.g if you have five bahps before the loop, and XX = 94, you should make it 99).
If the "XX YY" values appear multiple times near the end of the sseq, change them all.

7. Import, enjoy.


B. That doesn't work with my editor

Basically, the only problem with that tutorial is the fact that I created a specific note to find and replace; if your midi editor uses different measurements for the note duration, you'll have a bit of a problem. But, here's how to make it work:

1. Follow the above tutorial until point 4. Then, just have to make sure every single note on the last track has the same duration and pitch.

2. Save the resulting sseq somewhere. Now, change the track's instrument and pitch for every single note to something else, and convert with sseq2midi again, saving as different file.

3. Compare the two files using a hex editor. Find a pattern of four bytes that keeps changing in the file. Replace every instance of those four bytes with "B002010080". Continue on with Step 5 of tutorial above.
Posted on 07-26-15, 08:30 pm
Fuzz Ball
banned for purposefully altering people's posts, among other things.

Karma: 3229
Posts: 487/986
Since: 11-29-11
Just to be sure, with 'bahp', you mean the sound when enemies like Goombas jump, right? And this tutorial should make it possible to make the enemies jump at custom musics?
Posted on 07-26-15, 08:35 pm


Karma: 18535
Posts: 180/1086
Since: 04-02-13
Yes.

Not the best example, but this showcases it:
https://www.youtube.com/watch?v=zPsdf3_NRU0
Posted on 07-26-15, 08:46 pm
Fuzz Ball
banned for purposefully altering people's posts, among other things.

Karma: 3229
Posts: 488/986
Since: 11-29-11
Well, it's good enough. Finally it's possible to edit those 'bahp' points. Great work skawo!
Posted on 07-28-15, 01:41 pm (rev. 2 by  Arctus Platner on 07-28-15, 09:37 pm)
Red Paratroopa
Hero of Nintendo 64s

Karma: 496
Posts: 1/171
Since: 07-26-15
This looks really useful, I should try it.

Edit:
I kind of got it to work, the enemy movement works for the first bahp, but after the loop starts, the next bahp movement comes a bit delayed and then the enemies are constantly doing the bahp movements.
_________________________
My Youtube Channel
Never use a flash drive unless you are transferring files...
Check Out My Mario Maker Levels
Posted on 11-04-15, 04:26 pm


Karma: 18535
Posts: 208/1086
Since: 04-02-13
I'm seeing your edit after two months so this response is completely useless, but just for the record, I think you didn't do the loop point relocation thing quite properly in your case.
Posted on 11-04-15, 05:11 pm
Red Paratroopa
Hero of Nintendo 64s

Karma: 496
Posts: 67/171
Since: 07-26-15
Posted by skawo
I'm seeing your edit after two months so this response is completely useless, but just for the record, I think you didn't do the loop point relocation thing quite properly in your case.


Okay, thanks. I'll try again after I get my computer back.
_________________________
My Youtube Channel
Never use a flash drive unless you are transferring files...
Check Out My Mario Maker Levels
Posted on 05-02-16, 02:25 pm
I Am Not Inteligent

Karma: 964
Posts: 133/380
Since: 03-04-14
I'm having trouble with this method, so I got some questions:

Posted by skawo
2. Change each BAHP note, so that it has a duration of '10', velocity of 110 and 'C 0' pitch.

Does it matter what note durations I use for the ‘bahp’ notes? In one song, I used crotchets, and in another song, I used quavers. I put a length of 10 on all of them in the Piano Roll Editor.
Do I set the velocity of the ‘bahp’ points to offset or user? Or does it not matter?

2. Save the resulting sseq somewhere. Now, change the track's instrument and pitch for every single note to something else, and convert with sseq2midi again, saving as different file.

How do I change instruments within the same track? I can't seem to find an option to do so with my editor. Is this bit important? I did change every ‘bahp’ notes pitch —do I have to change their duration, velocity, and/or length too?

3. Compare the two files using a hex editor. Find a pattern of four bytes that keeps changing in the file. Replace every instance of those four bytes with "B002010080". Continue on with Step 5 of tutorial above.

When I compare the files, I could not see any difference but one byte (7F → 1B). What am I doing wrong? Sorry if this is a stupid problem.

I could not…
Posted on 05-02-16, 02:34 pm


Karma: 18535
Posts: 334/1086
Since: 04-02-13
Posted by NSMBHN
I'm having trouble with this method, so I got some questions:

Posted by skawo
2. Change each BAHP note, so that it has a duration of '10', velocity of 110 and 'C 0' pitch.

Does it matter what note durations I use for the ‘bahp’ notes? In one song, I used crotchets, and in another song, I used quavers. I put a length of 10 on all of them in the Piano Roll Editor.
Do I set the velocity of the ‘bahp’ points to offset or user? Or does it not matter?


You're only changing the duplicate track, not the actual bahp track. Yes, it does matter what duration they end up at in the duplicate, as we're later changing a specific sequence of bytes to a specific sequence of bytes.

I imagine "user", offset sounds like it'd shift the value by amount given instead of replacing it.


2. Save the resulting sseq somewhere. Now, change the track's instrument and pitch for every single note to something else, and convert with sseq2midi again, saving as different file.

How do I change instruments within the same track? I can't seem to find an option to do so with my editor. Is this bit important? I did change every ‘bahp’ notes pitch —do I have to change their duration, velocity, and/or length too?


Each note should have an instrument setting, but you're setting the instrument for the whole track; the last track should be nothing but the bahp notes.
Yes.


What am I doing wrong?


Probably a lot of things. No idea, mate.

By the way, I'd still try just trying to set it as Gunshot/ Duration = 10, Velocity = 110, Pitch = C0 and attempting to do the Cakewalk step 4, just in case it works with your editor as well.
Posted on 05-02-16, 03:05 pm
I Am Not Inteligent

Karma: 964
Posts: 134/380
Since: 03-04-14
Thank you for your quick response.

Hmmm… it's the notes duration thing that fucks me up.
See, what I did is I created a stave beneath the other ones (choosing the electric guitar as instrument), I copied and pasted the ‘bahp’ notes there. The original notes were crotchets, and I left them like that in the newly created stave. Now, in the Piano Roll Editor, I put a velocity of 110 (and now I know that I have to set it to ‘user’), then there's the length, which is usually ‘1000’ (100% of the note's duration) by default, so I changed it to ‘10’ (1% of the note's duration, in this case, crotchet). I changed its pitch to C0 and changed the instrument's MIDI sound from Clean Guitar to Gun Shot, then saved and exported as MIDI.

Afterwards, I copied the entire score and the new one would have different pitches for each ‘bahp’ note, then I saved and exported as MIDI. After that I did the process of looping with Anvil Studio and conversion to SSEQ with midi2sseq. When I compared the files, the only difference was one byte near the end.

Posted by skawo
By the way, I'd still try just trying to set it as Gunshot/ Duration = 10, Velocity = 110, Pitch = C0 and attempting to do the Cakewalk step 4, just in case it works with your editor as well.

As I said earlier, I can't do that duration thing. I cannot find the hexadecimal value mentioned in that A section step either.
Nevertheless, I'll see what I can do. I'll edit this posts if I solve the problem or find better results. (?)

I could not…
Posted on 05-21-16, 05:30 am (rev. 2 by Asprok on 06-24-16, 01:28 pm)
I Am Not Inteligent

Karma: 964
Posts: 137/380
Since: 03-04-14
I eventually gave up on trying with my editor, so I had to use Cakewalk. Things worked perfectly well. However, there may actually be something wrong with this: in step 4, I must replace every instance of 00 6E 04 80, but I always found 00 6E 01 80 instead. I might have done something wrong, but I'm more than sure that every bahp note has a duration of value ‘10’, a velocity of ‘110’ and C0 pitch; the track's channel is set to 16 and its instrument is the gunshot too.
Either way, I finally did it! Thank you very much for this tutorial,  skawo. We appreciate it.

EDIT: While messing around with values, I discovered that, in order to get 00 6E 04 80, you have to set a duration of ‘12’ to the bahp points, not ‘10’. You might want to change that part in your tutorial.

EDIT2: I am doing something wrong, but I don't know what. I'm recently only finding 00 6E 05 80.

I could not…
Pages: 1