Jump to content


MiloMod - A tool for Milo Venues

  • Please log in to reply
13 replies to this topic

#1 StackOverflow0x


    Wii Guy

  • 1,168 posts

Posted September 25, 2016 - 04:21 AM



What is this?

This is a simple tool that lets you upgrade Milo files from your customs to support extra venue features. RB3 introduced a new format of Milo files that lets you override who sings harmony part 2, 3, and even 4. There is also an option for how the band members animate. Additionally, you can also have it convert your venue to Milo.



Get more control over your custom's venue.


Usage is simple. First, you'll need to extract the necessary files from the CON using C3CONTools. Now, just click the Load Milo button (or drag and drop a .milo_xbox, .milo_ps3, or .milo_wii file). Then you can change the Song Preferences options. The Load Venue from MIDI button will also be enabled. You can also load the MIDI if you want to convert the venue. Finally, you can compress the new sections that will be created to save a bit of space. See full explanations below.


Currently, the RBN Docs on Sing-Alongs say that notes 87, 86, and 85 make the guitarist, drummer, and bassist sing along, respectively. However, that isn't entirely accurate. Notes 87, 86, and 85 set part 2, part 4, and part 3 to sing along, respectively. Those parts are normally assigned as shown, by default. This tool lets you override those defaults with your own order! When the notes are set in the midi, the assigned singer will sing the harmony lip sync assigned to that part.


4 part harmonies? Purely for visual effect. A handful of RB3 songs did this with 4 unique lip sync parts. This tool does not support that. So right now, the fallback behavior is the same as described as in the docs. If 4 lip sync parts were available, it could potentially be added into the Milo so all 4 band members could be singing 4 different parts.

And also like in the docs, the keyboard player is not assignable. This is because the game doesn't support having Guitar, Bass, and Keys out at the same time. One is always swapped for the other.


Animation Genre is a bit more interesting. The game supports the following animation genres: Metal (banger), Goth (dramatic), Rock (rocker), Punk (spazz). The word inside the parentheses is the internal name used. And the more descriptive words for this, the better. In RB3, the way your band members "act" or the "feel" of their animations is dependent on the sortable genre in the song's DTA. The following list shows which song genres get which animation genres, by internal name.

(alternative rocker)
(blues rocker)
(classical dramatic)
(classicrock rocker)
(country rocker)
(emo dramatic)
(fusion rocker)
(glam dramatic)
(inspirational dramatic)
(jazz dramatic)
(jrock spazz)
(latin spazz)
(metal banger)
(novelty spazz)
(numetal banger)
(poprock rocker)
(prog rocker)
(punk spazz)
(rock rocker)
(southernrock rocker)
(grunge banger)
(indierock rocker)
(new_wave dramatic)
(reggaeska rocker)
(rbsoulfunk rocker)
(hiphoprap rocker)
(other rocker)
(popdanceelectronic dramatic)
(urban rocker)
(world rocker)

Rocker shows up the most, so I've set it as default. And by upgrading the Milo file, you can also override the genre the song would normally get. This is useful if you've got a song that would be Punk, but you want it to act slower, like Dramatic.


These are bit hard to describe, so I hope the brief clips linked below explain what the differences are:

Metal (banger)

More aggressive animation. A lot of the fist-pumping stuff.


Goth (dramatic)

Generally slower. Dramatic interpretations of play states, like the singer grabbing the microphone closely, or with his head at an angle.


Rock (rocker)

The average one. Mid-tempo. Not too aggressive, not too soft. Some first-pumping as well.


Punk (spazz)

More active than Rocker, but not as aggressive as Metal. Generally more erratic motions.


These can help set the feel of a custom's venue to be something that may seem closer to what you want.



Optionally, you can even load a Venue into the Milo. RB3 songs don't have Venue tracks in their midis. Or crowd events in the Event track either. This is because they are found in the Milo (and normally compressed). It's similar to midi, and it handles 23 other things as well. Most Xbox and PS3 players won't get much use out of this, but for Wii players, this is very valuable because the game (with no title updates) doesn't support RBN2 Venue tracks. This normally means no special Post Procs or active venue when the Keys player is present.


When the Keys player is present, the game will look in the Milo for camera cuts in the "shot_bk", "shot_gk", and "shot_5" categories. Because it normally wouldn't exist, nothing would happen. And this tool makes it possible. The above clips were taken on the Wii version, and with a keyboard player present!


Additionally, the game won't skip "unused" postprocs if they're in the Milo (unless it doesn't skip in the Venue track either. I can't test this). This means you can utilize a few extra postprocs that Magma wouldn't normally let you use. Here's a list of some of the unused postprocs:



Hue cycles and a lot of vibrant greens and purples. This is the most erratic one of all. Here's another picture. And here's a clip of it.



Posterizes to teal and black. Not as the name would imply.



Posterizes to light grey and dark grey.



Posterizes to a tan color and black. Not as the name would imply.



Posterizes to a greyish purple and grey. Also with some trailing effect.



No effects at all. Just plain nothing.


Another upside of this is if you're working on a really long custom that is pushing the limits on the midi file size, you can convert the Venue to Milo, then remove the track from the midi. This way, you won't have to have a boring venue if you don't want to. However, timings may or may not be noticeably off. See below for known issues.



Get it here. You need .NET Framework 4.5.2 for this to run.

MiloMod - Beta 2

MiloMod - Beta 1


Known issues

  • Camera cuts may seem too frequent. This could be because the timing conversions from midi to Milo are not exactly precise. The game will read from both the Venue track and the Milo if it can.
  • If postprocs were blended before, they may not be blending in the Milo.
  • Nothing is stopping you from setting the same singer for all parts, but the game probably won't like it.



This was a huge undertaking. I could have never done it without PikminGuts92's research into the format. And also huge thanks to Nemo for his Midi code. It would have been too overwhelming to do so without it.

And if it wasn't for the Wii version of "L.A. Woman" accidentally not having lip sync and an uncompressed venue, I probably wouldn't have gotten as far either (lol).



Please report any bugs here. Right now, it's firmly in the "works for me" camp. Try to break it. Or make it work for you. Otherwise, enjoy.

#2 Oddbrother

  • 449 posts

Posted September 25, 2016 - 04:25 AM

Excellent work!

Sent from my Nexus 5 CAF using Tapatalk
Right and right, left and left, spin and turn, and a great big smile.

#3 Gigakoops


    Resident Movie Nerd

  • 1,067 posts
  • Location
    United States

Posted September 26, 2016 - 12:25 AM

This is amazing, thanks for doing this! Looking forward to being able to customize the animations and such in future customs, when the animation pools for the genres the songs are in don't quite work too well.


One thing piques my curiosity the most, that being the additional post-processing effects. Have those been tested on Xbox or PS3? Also, how does one go about using them in their venue, because I'd love to implement these in future customs of mine. :)

#4 StackOverflow0x


    Wii Guy

  • 1,168 posts

Posted September 26, 2016 - 12:30 AM

Postprocs have not been tested on the other consoles. So anyone is welcome to try. The setup isn't as seamless as I'd like it to be right now. You'd have to extract the midi, edit it, then process it with the Milo to include it.

#5 TrojanNemo


    The Programmer

  • 4,613 posts
  • Location
    Miami, Florida

Posted September 26, 2016 - 03:03 AM

Good work man. Glad to see something come out of your earlier work. Maybe I can help you with getting the MIDI out of a CON and automate that process. Message me during the day next week.

#6 Lowlander2


    There Can Be Only One Video Guy

  • 264 posts

Posted September 26, 2016 - 03:48 AM

Wow, this is sick.

#7 ElectricSkylab

  • 51 posts

Posted September 26, 2016 - 11:44 PM


#8 alucardla

  • 99 posts

Posted October 5, 2016 - 01:19 AM

With this can we make the keyboard player act normally during customs in wii?? Just asking.

#9 bbsrtrain

  • 132 posts
  • Location
    Latrobe, PA

Posted October 9, 2016 - 01:30 PM

When I try to load a MIDI for a song that I just compiled I get an error that pops up saying

Found a [verse] event in the venue. Must be a RBN1 venue, which is not compatible with this tool. 

Now I know where the practice events go and I double checked and there isn't a [verse] event in the venue track. So i'm not quite sure what it's referring to.

#10 Oddbrother

  • 449 posts

Posted October 10, 2016 - 01:55 AM

(Never mind; misread post)

#11 StackOverflow0x


    Wii Guy

  • 1,168 posts

Posted October 11, 2016 - 03:55 AM

When I try to load a MIDI for a song that I just compiled I get an error that pops up saying

Found a [verse] event in the venue. Must be a RBN1 venue, which is not compatible with this tool. 

Now I know where the practice events go and I double checked and there isn't a [verse] event in the venue track. So i'm not quite sure what it's referring to.

It's referring to the verse event made in RBN1 venues, like the ones the Wii Converter makes.

You would see this in the Venue track.


If that's not what you're seeing, what midi are you working with?

#12 alucardla

  • 99 posts

Posted October 13, 2016 - 10:07 PM



Can you post a tutorial on how we do the process of loading a venue in  the milo? Thanks.

#13 StackOverflow0x


    Wii Guy

  • 1,168 posts

Posted December 8, 2016 - 06:46 AM

I'm back with fixes and improvements. MiloMod Beta 2 is now available.

Surely this is another "works for me", so I need to know when it doesn't work. Though the tool looks the same, here's the change log.


- Fixed an issue where shot5 and shot_bg shots weren't getting stored in the Milo if Keys were missing.

- Fixed an issue with singalong and spotlight events that were having their names added to the Milo with debug information (and not crashing the game)

- Alternate offset calculation that should have Milo events more closely match the midi event timings.

- New: Swap Post-Process feature added. Hold Shift before releasing a Midi file over the window and a dialog box will show up. Choose a post-proc from the left list to swap every instance of it found in your Midi for the post-proc you choose on the right. This is a simple way to use the new post-proc effects without going through Magma, which won't accept them.

#14 alucardla

  • 99 posts

Posted January 17, 2017 - 11:36 PM

Hi. Mr. Stacks,


I've been using your tool version beta 2 and with this version I 'm able to do it. But I have a question.

With some customs I receive this error when converting  

Unhandled exception has occurred...Value was either too large or too small for an unsigned byte.

************** Exception Text **************
System.OverflowException: Value was either too large or too small for an unsigned byte.
   at System.Convert.ToByte(Int32 value)
   at MiloMod.Form1.convertMidiVenue(String path2Midi)
   at MiloMod.Form1.VerifyLoadMidi()
   at MiloMod.Form1.button_LoadMidi_Click(Object sender, EventArgs e)
   at System.Windows.Forms.Control.OnClick(EventArgs e)
   at System.Windows.Forms.Button.OnClick(EventArgs e)
   at System.Windows.Forms.Button.OnMouseUp(MouseEventArgs mevent)
   at System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
   at System.Windows.Forms.Control.WndProc(Message& m)
   at System.Windows.Forms.ButtonBase.WndProc(Message& m)
   at System.Windows.Forms.Button.WndProc(Message& m)
   at System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
   at System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
   at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
************** Loaded Assemblies **************
    Assembly Version:
    Win32 Version: 4.0.30319.1 (RTMRel.030319-0100)
    CodeBase: file:///C:/Windows/Microsoft.NET/Framework/v4.0.30319/mscorlib.dll
    Assembly Version:
    Win32 Version:
    CodeBase: file:///E:/Meus%20Documentos/Downloads/Wii%20DLC%20tools/MiloMod_Beta2/MiloMod.exe
The example above was trying to convert MgMT-Time to pretend.
Can you help me ?
Thank you.


0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users