Jump to content

Avatar

MiloMod - A tool for Milo Venues


  • Please log in to reply
23 replies to this topic

#1 StackOverflow0x

StackOverflow0x

    Wii Guy

  • 1,269 posts

Posted September 25, 2016 - 04:21 AM

mm8aeM4.png

 

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.

 

Why?

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:

 

all_deploy.pp

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.

 

intro_contrast_flame.pp

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

 

intro_contrast_grey.pp

Posterizes to light grey and dark grey.

 

intro_contrast_ice.pp

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

 

intro_posterize_a.pp

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

 

override_blender.pp

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.

 

Download

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.

 

Thanks!

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

Oddbrother
  • 482 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

Gigakoops

    Resident Movie Nerd

  • 1,085 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

StackOverflow0x

    Wii Guy

  • 1,269 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

TrojanNemo

    The Programmer

  • 4,716 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

Lowlander2

    There Can Be Only One Video Guy

  • 268 posts

Posted September 26, 2016 - 03:48 AM

Wow, this is sick.



#7 ElectricSkylab

ElectricSkylab
  • 65 posts

Posted September 26, 2016 - 11:44 PM

Fantastic.



#8 alucardla

alucardla
  • 130 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

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

Oddbrother
  • 482 posts

Posted October 10, 2016 - 01:55 AM

(Never mind; misread post)

#11 StackOverflow0x

StackOverflow0x

    Wii Guy

  • 1,269 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.

D2ocikT.png

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



#12 alucardla

alucardla
  • 130 posts

Posted October 13, 2016 - 10:07 PM

Hi.

 

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



#13 StackOverflow0x

StackOverflow0x

    Wii Guy

  • 1,269 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

alucardla
  • 130 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 **************
mscorlib
    Assembly Version: 4.0.0.0
    Win32 Version: 4.0.30319.1 (RTMRel.030319-0100)
    CodeBase: file:///C:/Windows/Microsoft.NET/Framework/v4.0.30319/mscorlib.dll
----------------------------------------
MiloMod
    Assembly Version: 1.0.0.0
    Win32 Version: 1.0.0.0
    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.

 



#15 StackOverflow0x

StackOverflow0x

    Wii Guy

  • 1,269 posts

Posted February 8, 2017 - 06:00 AM

Sorry for the late reply. I didn't notice the reply sooner.

So it turns out there can be more than 255 lightpreset events. It's been corrected now, so this custom should pass MiloMod now. Redownload for the newest version. It's the same link.



#16 Oddbrother

Oddbrother
  • 482 posts

Posted February 9, 2017 - 01:44 AM

 

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.

What about assigning more than one band member to the same sing-along part, can that be implemented? I know the workaround would be to override or use more than one of the same lipsync data in MAGMA, but just a thought.


Right and right, left and left, spin and turn, and a great big smile.

#17 alucardla

alucardla
  • 130 posts

Posted February 16, 2017 - 01:27 PM

Sorry for the late reply. I didn't notice the reply sooner.

So it turns out there can be more than 255 lightpreset events. It's been corrected now, so this custom should pass MiloMod now. Redownload for the newest version. It's the same link.

Thank you, don't worry about "late".

 

Just trying to help. This custom is a spare example because it's an users' content.. But what I discovered is that some C3 custom releases return this error too. Example: Anything I tried from Daft Punk, some things from Robbie Williams, some Linkin Park. All of them are c3 custom releases. That's the reason I worried. I know users' content may follow various types or rules , but generally C3 customs are made the same way and are top quality.  

 

EDIT: 

 

I came back from work and redownloaded and tested,  "MGMT - Time to pretend" now is working, but other ones(including some C3 releases) are not working the same way they didn't worked before. Below I'm pasting the error this time with custom "Daft Punk - One more time(feat, Romanthony)".  Thank you for all your support and responses to our feedback. the error:------------------------------------------------------------------------------------------------

 

See the end of this message for details on invoking 
just-in-time (JIT) debugging instead of this dialog box.
 
************** 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 **************
mscorlib
    Assembly Version: 4.0.0.0
    Win32 Version: 4.0.30319.1 (RTMRel.030319-0100)
    CodeBase: file:///C:/Windows/Microsoft.NET/Framework/v4.0.30319/mscorlib.dll
----------------------------------------
MiloMod
    Assembly Version: 1.0.0.0
    Win32 Version: 1.0.0.0
    CodeBase: file:///E:/Meus%20Documentos/Downloads/Wii%20DLC%20tools/MiloMod_Beta2%20(1)/MiloMod.exe
--------------------------------------------------
System.Windows.Forms
    Assembly Version: 4.0.0.0
    Win32 Version: 4.0.30319.1 built by: RTMRel
    CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Windows.Forms/v4.0_4.0.0.0__b77a5c561934e089/System.Windows.Forms.dll
----------------------------------------
System.Drawing
    Assembly Version: 4.0.0.0
    Win32 Version: 4.0.30319.1 built by: RTMRel
    CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Drawing/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.Drawing.dll
----------------------------------------
System
    Assembly Version: 4.0.0.0
    Win32 Version: 4.0.30319.1 built by: RTMRel
    CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System/v4.0_4.0.0.0__b77a5c561934e089/System.dll
----------------------------------------
NAudio
    Assembly Version: 1.6.0.0
    Win32 Version: 1.6.0.0
    CodeBase: file:///E:/Meus%20Documentos/Downloads/Wii%20DLC%20tools/MiloMod_Beta2%20(1)/NAudio.DLL
----------------------------------------
System.Core
    Assembly Version: 4.0.0.0
    Win32 Version: 4.0.30319.1 built by: RTMRel
    CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Core/v4.0_4.0.0.0__b77a5c561934e089/System.Core.dll
----------------------------------------
 
************** JIT Debugging **************
To enable just-in-time (JIT) debugging, the .config file for this
application or computer (machine.config) must have the
jitDebugging value set in the system.windows.forms section.
The application must also be compiled with debugging
enabled.
 
For example:
 
<configuration>
    <system.windows.forms jitDebugging="true" />
</configuration>
 
When JIT debugging is enabled, any unhandled exception
will be sent to the JIT debugger registered on the computer
rather than be handled by this dialog box.
 
_____________________________________________
 
Thank you Mr. Stacks.

Edited by alucardla, February 16, 2017 - 09:44 PM.


#18 StackOverflow0x

StackOverflow0x

    Wii Guy

  • 1,269 posts

Posted February 26, 2017 - 06:02 AM

Okay, late again. I didn't notice this soon enough. Another case of more than 255 of a certain kinds of events. This update should clear up all issues regarding that and the Daft Punk custom now converts successfully.

 

We are now on Beta 3. So a small change log.

 

- Fixed an issue with storing the number of spotlight events found for instruments.
- New: Automatically grab the Milo and Midi files from Wii-converted customs by dragging and dropping the _meta or _song folder into the program. This will still fail if the Midi is already converted to an RBN1 Midi by the Wii Converter.

 

Get MiloMod Beta 3.

 

Now all that's missing is auto-extracting from CON files directly. Then I can consider this feature-complete.



#19 alucardla

alucardla
  • 130 posts

Posted March 5, 2017 - 02:41 AM

Okay, late again. I didn't notice this soon enough. Another case of more than 255 of a certain kinds of events. This update should clear up all issues regarding that and the Daft Punk custom now converts successfully.

 

We are now on Beta 3. So a small change log.

 

 

Get MiloMod Beta 3.

 

Now all that's missing is auto-extracting from CON files directly. Then I can consider this feature-complete.

Sorry to bother you and very much thanks for your help.

Awesome,

 

I'll try this.



#20 psywave.exe

psywave.exe
  • 2 posts

Posted April 7, 2017 - 03:27 AM

I'm still a little confused as to how to make working venues with keys on Wii with this tool.






0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users