Jump to content

Avatar

How-To: 1MB+ MIDI and custom practice sessions in Magma: C3


  • Please log in to reply
15 replies to this topic

#1 TrojanNemo

TrojanNemo

    The Programmer

  • 5,007 posts
  • Location
    Miami, Florida

Posted September 24, 2014 - 01:17 AM

WHAT IS THIS?
This is a tutorial for people who want to learn how to bypass the 1MB midi file size limitation and/or want to learn how to use custom practice session names for their custom song (or break the rules in almost any way, as you'll see...)

Do not continue unless you have done several songs and are very familiar with what is necessary to get a song to compile and work properly in RB3.
If you're just starting out now, learn to play within the rules and get a few songs under your belt before trying to learn to bend the rules.


WHAT DO I NEED?
Besides the experience and familiarity with the customs process as mentioned above, you need Magma: C3 Roks Edition. Either v2.2 or whatever the latest version is (as of this writing v3.1) both support what I'll describe below. The original HMX Magma has these limitations but doesn't have a way to bypass them.


THE BASICS
Let's start with a few basics, most of which I covered in the tutorial video for Magma:
Whenever I say Magma, I'm referring to Magma: C3 Roks Edition, in particular to v3.1.
Whenever I refer to Magma Compiler or the Compiler, I'm referring to MagmaCompilerC3.exe, which is included with the Magma: C3 Roks Edition package.
Whenever I refer to the CON file, it applies just the same to a LIVE file.

- Magma is a GUI or graphical user interface that makes it easier to create a rbproj file. You can, in theory, create the rbproj file entirely by hand using NotePad++ or any other text editor, but it's tedious and easy to make a mistake. So you use Magma to help you make it.
- Magma then calls MagmaCompiler and sends the rbproj file, audio and album art to it, and it in turn creates an RBA file.
This step is the one we have the least control of. We were able to remove the length limit on songs, expand the maximum amount of tracks to 20, and make a few other changes, but by and large we can't change the rules that HMX put into place. This is not necessarily a bad thing, as the rules are there to limit what goes into the song to conform to what the game will support. That includes things like broken chords and custom practice session names, which you'll be familiar with if you played any Guitar Hero game. It also includes midi files beyond 1MB in file size. Since RBN authors couldn't go beyond 10 minutes, it was very unlikely that any song would ever go beyond 1MB...but sure enough, our authors have hit that mark a couple of times now! However, we've found out you can make the game work well outside of these artificial limitations created by HMX, such as creating custom practice session names, using much higher quality (and file size) audio and album art. And now you'll find out how to bypass the 1MB midi limit. As far as I'm aware, this has never been tested in game, so let me know how it goes if you actually do it.

- For customs purposes, we need a CON file, so Magma converts the RBA to CON for you and in the process enhances the resulting file with all sorts of features that are present in Magma: C3 that were not in the original Magma. This includes the option to override the album art with higher quality and resolution (MagmaCompiler forces us to use 256x256), as well as override every other component of a song file, including the final midi file that will go in the CON file. This is the step we'll be taking advantage of.


GETTING IT DONE
So, first you want to open Magma, go to Options, ADVANCED SETTINGS, Override MIDI file and make sure that is enabled (checked).
I always recommend having a folder for each custom, and inside that folder having the rbproj and all other files for that custom. I use subfolders for audio, but it's not necessary. Whether you follow that system of organization or not, what you need to know is that if Magma has the option above enabled and it finds a MIDI file named override.mid in the same folder as the rbproj file is found, it will replace the one coming out of MagmaCompiler and use the override.mid file in the CON file.
The result is you feed MagmaCompiler a dummy mid file (that meets all of its requirements) so the song compiles and you get the mogg and milo files (which we can't make any other way, unfortunately) and then use your custom MIDI for the game. This means any and all limitations of MagmaCompiler can be bypassed.
Be careful how you use this. You can in theory put a corrupted file, name it songname.mid and put it game. The game might freeze, the console might burn, your house might catch on fire. I don't know. You've been warned.

So, now that you know you need an override.mid file to feed Magma, let's talk about how to do it.

BYPASSING 1MB FILE SIZE LIMIT
As I said, this hasn't been done that I know of, but in theory it's the same thing we have done for other uses, so it should work.
In your REAPER project, you have your actual charts. Name them as you normally do. Make duplicate copies of the instrument charts. Name them DUMMY Drums, etc, or something obvious so you know the difference between the actual charts and the dummy ones.
On the DUMMY charts, remove all lower difficulties so expert only is left and one note in each color for lower difficulties so it'll compile. If this is still over 1MB, thin out the expert chart. It doesn't matter that it's no longer accurate, this won't be played in game. Make sure you do leave notes in each section, so if there's a solo or something it'll still have notes. Always leave solo markers. On drums, you can remove drum fill markers and animation notes. On all instruments you can remove overdrive notes. On guitar and bass you can remove the animation notes. Make it as bare as possible so you can get below the 1MB limit. Once you found the right combination, MUTE all the DUMMY charts, export your MIDI. Name it override.mid and put it in the same folder as the rbproj for the file. Back in REAPER, UNMUTE the DUMMY charts, and MUTE the actual charts, and export the MIDI again. Give that MIDI to Magma.
That's it. Now MagmaCompiler will compile with the sub-1MB DUMMY midi, and then Magma will ignore that DUMMY midi and will put the override.mid in the CON file. And you've bypassed the 1MB limit. Congratulations.

NOTE: if you don't have an EVENTS or VENUE track already done, and you are relying on MagmaCompiler to create it for you, obviously the override.mid will never get it as MagmaCompiler doesn't touch it. What you do in this case is feed Magma the DUMMY midi file, go to Game Data, Export, and export that MIDI file. That now has the VENUE, EVENTS track, and anything else MagmaCompiler will generate for you in it. Import that MIDI file into a new REAPER project, copy/paste the EVENTS/VENUE tracks or whatever you wanted MagmaCompiler to generate for you to your project and now export that along with the actual charts in the override.mid.


USING CUSTOM PRACTICE SESSION NAMES
Once you understand all the above, using custom practice session names is as easy as having two EVENTS tracks, one meets the requirements of MagmaCompiler - this one goes in the DUMMY midi for MagmaCompiler, and one has the custom names - this one goes in the override.mid file.
For an example of a C3 songs using custom practice session names, see DragonForce - Fury of the Storm.
There are some limitations as far as characters that will show up in game, but I don't have that handy.
You can't have spaces, so use underscores for spaces. Obviously too long names aren't going to display properly in game either.
But if you do it right, custom practice session names are very cool for the player, so play with it.


And that concludes my shitty, least tutorial-y tutorial on how to bypass some of the limitations of MagmaCompiler. The quickwitted user will realize that with this newfound knowledge, you can try whatever you want in game. You can push the limits all you want, just know that the rules are there for a reason. So breaking them is always experimental. Have fun experimenting.


P.S. If any of you want to reformat this and make it prettier/more user friendly, please do so and I'll credit you for it. Thanks.

#2 Sideshow

Sideshow
  • 2,604 posts
  • Location
    Southern California

Posted September 24, 2014 - 01:41 AM

When the time comes for me to test this out I will surely use this post as the Bible. Thanks!

#3 DoNotPassGo

DoNotPassGo
  • 535 posts
  • Location
    Syracuse, NY

Posted September 24, 2014 - 02:26 AM

My...... my god.

This could not have come at a better time! Ha

I'm just finishing up the Clockwork Angels files, and then I was going to start building the full album medley. Originally, due to this limit, I was expecting to only include one (maybe two instruments) per file. Now it can only be one file. Huzzah

#4 Farottone

Farottone

    The Lean Mean Customs Charting Machine

  • Administrator
  • 6,469 posts

Posted September 24, 2014 - 08:47 AM

Great stuff, thanks a ton! :)

#5 mazegeek999

mazegeek999
  • 120 posts

Posted September 24, 2014 - 01:43 PM

TrojanNemo, you are awesome. Expect something epic because of this bypassed 1MB limit within the next month.

#6 TrojanNemo

TrojanNemo

    The Programmer

  • 5,007 posts
  • Location
    Miami, Florida

Posted September 24, 2014 - 02:08 PM

Well, the tutorial is just showing you how to take advantage of the override function in Magma: C3 Roks Edition. That was added a long time ago. And like many other features, it was probably someone's great idea that was suggested to me and I only put it in place. Can't remember who it was though, I suspect probably PikminGuts92 or AddyMilldike.

I would love to see something like that Dream Theater suite turned into all instruments, all difficulties...but I'd estimate that would be 3-4MB midi when all is said and done? I don't know if the game can handle that :wth:

#7 Farottone

Farottone

    The Lean Mean Customs Charting Machine

  • Administrator
  • 6,469 posts

Posted September 24, 2014 - 02:39 PM

If I only I liked newer DT stuff I would multitrack that stuff in a heartbeat. Alas, DT sans Kevin Moore are not to my full taste.

#8 Ditg

Ditg
  • 113 posts
  • Location
    NY

Posted October 1, 2014 - 06:19 PM

Then is there any O.S.I. planned for the future? :P
(Kevin Moore was involved with some amazing albums with them). Blood and Fire Make Thunder has songs that are still in my heavy rotation.

#9 Nyoxide

Nyoxide
  • 44 posts

Posted October 7, 2014 - 07:53 AM

I was able to get around the infamous 300+ BPM tempo marker issue using this method as well! I successfully compiled The Patient by Tool which came from FoF originally and was riddled with tempo markers well over 400 (lazy tempo mapping). I forced magma to use a good midi and fed it the patient as the override and the song played fine in game. If anyone wants to test this song themselves here is a download link: The Patient
There may be some minor errors and such, I simply copy and pasted from the original FoF chart and made sure it compiled correctly aside from the tempo marker errors. Credit to obZen for the original chart.

#10 Nightmare Lyra

Nightmare Lyra

    Ukulele Hero

  • 1,957 posts
  • Location
    Skyrim

Posted October 7, 2014 - 12:51 PM

Did you test that Tool song out in game before posting? Because I remember someone charting a song at 300bpm once and the tempo markers completely broke at the 300bpm peak and they had to chart the part at half speed, so even if getting it through Magma it might not necessarily work still. Also, either way at that tempo, you should go into the BEAT track and cut the notes there down to half to make animations not go completely bonkers if you haven't already

horror_movie_special fan club member


#11 Farottone

Farottone

    The Lean Mean Customs Charting Machine

  • Administrator
  • 6,469 posts

Posted October 7, 2014 - 02:40 PM

Did you test that Tool song out in game before posting? Because I remember someone charting a song at 300bpm once and the tempo markers completely broke at the 300bpm peak and they had to chart the part at half speed, so even if getting it through Magma it might not necessarily work still. Also, either way at that tempo, you should go into the BEAT track and cut the notes there down to half to make animations not go completely bonkers if you haven't already


We're talking about a song that's been crammed through Magma, do you think animations are even remotely a concern? :D

#12 Nightmare Lyra

Nightmare Lyra

    Ukulele Hero

  • 1,957 posts
  • Location
    Skyrim

Posted October 7, 2014 - 03:06 PM

If it can be fixed with a minute of easy copypasting I might as well mention it just in case

horror_movie_special fan club member


#13 Nyoxide

Nyoxide
  • 44 posts

Posted October 7, 2014 - 04:05 PM

Yes, I did make sure the song played in game although all I did was play through once on guitar so I suppose the other instruments may have issues. As far as animations go, I do intend to fix up this song at some point and repost a better version so when that happens I'll be sure to mess with the beat track some more and actually try to make it look nice (I hadn't thought of doing that so thanks) but for now I cut them in half and rebuilt the song.

New link: The Patient

I also left up the old version in my first post just in case this one doesn't work in game for some reason, (I didn't test this one yet) so if you're encountering issues then try downloading the first one I posted.

Mostly I just wanted to post about this so other authors would know this could work and could potentially save people who don't mind cramming songs through magma many hours of re-tempo mapping. Also I think this override feature is awesome and plan to test out lots of different prohibited stuff to see what actually works in game :D

#14 TrojanNemo

TrojanNemo

    The Programmer

  • 5,007 posts
  • Location
    Miami, Florida

Posted October 9, 2014 - 03:35 PM

As I said in the OP, this bypass has existed for a long time. Just people either weren't paying attention to it, or were afraid to experiment with it.

One last word of caution: just because you can, doesn't mean you should. Experiment all you want, at your own risk. If your Xbox melts down because you put a 1000 BPM song. That's on you :v:

#15 AJFOne23

AJFOne23
  • 2,135 posts
  • Location
    San Diego, CA

Posted March 20, 2020 - 11:10 AM

does anyone have a real reaper example of a file that exceeds 1MB? I'm trying to get a 42 minute album with keys released



#16 AJFOne23

AJFOne23
  • 2,135 posts
  • Location
    San Diego, CA

Posted March 20, 2020 - 11:33 AM

nevermind I figured it out  :rock:






1 user(s) are reading this topic

0 members, 1 guests, 0 anonymous users