MML Music Inserter?

View previous topic View next topic Go down

MML Music Inserter?

Post by Potentialing on Wed 29 Jan 2014 - 19:33

So there's a standard SNES music language called MML, where you basically script music and a tool rewrites huge chunks the rom's music data with the scripts. In Super Mario World, there's an open-source tool called "[You must be registered and logged in to see this link.]", where you tell the program which TXT maps to which song in the rom, and the TXT contains all the new music data. It does so through an assembler called "asar", which has the ability to find unused rom space and optimize the rom if there really is unused code.

The reason why I propose this is because there's actually a lot of helpful tools that make this process much, much faster than Hyrule Magic. This includes [You must be registered and logged in to see this link.] then adding the effects in the TXT manually. MIDI editing is a lot more developed and is basically a music standard worldwide, and there are endless tools to make those as well.

Example of Script's language:

Code:

;this is a comment, and everything after it until a linebreak will be ignored by the program
#0 ;declare the first sound channel
[ ;beginning of a loop
@0 ;load the 1st instrument from the instrument table in the rom. (Includes ADSR, Gain, Tuning, Subtuning)
v200 ;Set the current sound channel to volume level "200". 255 is max.
y10 ;Speaker pan is centered. Max Left is y0 and Max Right is y19.

$ED $7F $E0 ;$ED says "we are going to define an

o1a+8>f8>c+8g+8c8d+8   ;Declare "octave 1", play A# for an 8th note long (a+8), go up an octave (o2), play F for an 8th note long (f8)....
o1a+8>f8>c+8  v255 ;Declare "octave 1", play a couple of notes, change channel's volume level to "255".

g+8d+8f8 ;play more notes

]6 ;end of a loop, repeat the section within the brackets 6 times

#1 ;declare the second sound channel
@5 ;load the 5th instrument from the instrument table in the rom. (Includes ADSR, Gain, Tuning, Subtuning)
v18 ;Set volume level to "15" (very low)
o4 ;declare "octave 4"
c8 ;play c8 on the defined octave (currently 4)
< ;move down octave (o3 now)
c8 ;play c8 on the defined octave (currently 3)
$EF $04 $FF $ED ;Change some echo settings. $EF $xx $yy $zz is the first couple of echo settings according to the Super Mario World AddMusicK ReadMe, Here, Echo Delay is $04, EchoVolLeft is $FF, EchoVolRight is $ED.

Just a note that the code looks a lot cleaner than this, but I commented to make it a bit easier to understand what's going on. Anyway, I just thought I'd mention this in case anyone here would happen to be interested in creating such an editor. I'd happily assist in translating the scripting language to anyone interested in doing this. This is much, much faster than using Hyrule Magic's music editor, and I'd be able to bust out a lot more tracks for hacks if such an editor existed.
avatar
Potentialing
Armos Knight
Armos Knight

Since : 2013-07-05

Back to top Go down

View previous topic View next topic Back to top


 
Permissions in this forum:
You cannot reply to topics in this forum