Banner
Views: 794,313,228
Time:
10 users online: chickaDEE Magazine, Darkwoon, Jaekelopterus, James5755, JamesD28,  Ninja Boy, patcdr, PokerFace, Samantha, Sixcorby - Guests: 31 - Bots: 207 Users: 41,452 (1,499 active)
Latest: RobertoGS
Tip: Linear levels aren't necessarily a bad thing. After all, most official Mario levels are fairly linear.Not logged in.
A MAD SCHEME Troubleshooting/F.A.Q. Thread
Forum Index - SMW Hacking - Resource & Tool Releases - A MAD SCHEME Troubleshooting/F.A.Q. Thread
Pages: « 1 2 »
I've gotten a few PMs recently regarding questions about how to properly use MOD files, IT files, OpenSPC, and A MAD SCHEME to their full potentials, so I figured that instead of keeping all this information private between me and whomever I'm conversing with, I'd open up a new thread for people to ask questions and for me to give out tips that I either forgot to or never got around to putting in the original thread.

A brief overview for those who missed out, A MAD SCHEME is the alternative to using MIDIs for porting music, as it will allow you to use the much more versatile MOD format, allowing you to listen to your compositions before you insert them into SMW.

You can find the original thread here. The download can be found here Please make sure you've read at least the first post in full before you ask any questions. Also, check here for information about the format used in determining MOD tempo values.

With that said, here are a few things that I should've put in the original thread. From here on out I'll enclose everything in quote tags to make distinguishing each separate tip easier.

SPC Porting


Quote
The first thing you should do is put all the samples you'll need in Sample Tool/AddmusicM. If they don't fit, there's no reason to continue, after all. After that, open up the IT in OpenMPT and click on the Samples tab, since I want to point out something. On the left side of the interface, you'll see a "Transpose" drop-down box. This is something I really should've mentioned in the thread; this (logically) controls by how much a sample is transposed up or down. In both SMW and MOD files, this is defaulted to C-5. Be sure to plan around this, since it usually means you'll have to transpose your instruments a bit while your porting from IT to MOD.

Next, open up a blank MOD file. This is where it gets a bit tricky. Since OpenSPC goes for maximum accuracy, it doesn't fit all the note data into nice pattern-sized chunks that will fit in a MOD. Because of this, it's not going to be as easy as copying and pasting from the IT to the MOD. You're going to have to read the note data from the IT, then mentally shrink it down into a more manageable format that will actually fit in a MOD pattern. For example, this can be shrunk down to this. It's up to you to determine how short the shortest note can be (but remember that if you've screwed up and you need even shorter note lengths than what you originally thought you'd need, you can just double the note lengths and tempo and continue from there).


One thing you can do to make it easier on yourself if you have transposed samples is to create a MOD with more than 8 channels and give each sample its own channel. After you've ported the entire song like that, you can easily highlight entire channels and re-tune them appropriately, instead of sifting through each channel looking for specific instruments and hoping that you don't miss one or tune the wrong one. After that, just recombine your channels to fit back into the normal 8 channels.

Also, here are a few tips related to SPC Porting:

* To cut down on time, if you see a row of notes that covers almost every channel, you can highlight them all, copy them all, and then paste them into your MOD.

*Sometimes a sample will be transposed by a little more or less than a semitone (likely to get past the SNES sample looping restrictions), in which case you'll have to use $EE to fix that. Keep that in mind.

* The hundreds of volume commands you see in the IT file (denoted by vXX) are a combination of ADSR and panning (hence 16 channels in the IT; the first 8 are for the left speaker, the last 8 are for the right.). You don't need to copy them.

* Same thing for the Portamento commands (EXX and FXX). They're, as far as I can tell, vibrato. You don't need to copy them either.


Pre-Existing MOD Files


Quote
Feeling stumped or have nothing currently to port? Click here. That site is an archive for the MOD files ripped from hundreds of old Amiga games, so if you're feeling bored, head over to that site, find a random song to port, clean it up for use in A MAD SCHEME, and convert it! Lots of those old songs are really good, since the MOD format is pretty much the 5-years-younger version of the SPC. In particular the Shadow of the Beast Series has some pretty awesome music.


Composing in IT instead of MOD


Quote
If you feel you've gotten a pretty good handle on how the whole system works, you can try composing with IT files first, then switching to MOD last-minute. There are several advantages, but also several pitfalls, when doing this. The main advantage is that IT files use 16-bit samples whereas MOD files use 8-bit samples, causing a major jump in sound quality (the SNES, if I remember corrrectly, uses something in the middle). The downside, however, is that IT has slightly fewer limitations than the MOD format and the SMW SPC format, and uses different commands (F is the tempo command in a MOD, and T is the tempo command in an IT, for example). This is why you should be comfortable with MOD before you jump right into IT, because you don't want to end up with a song that sounds awesome in an IT only to realize that MOD doesn't support it all of its features. Also note that when importing a WAV file to use as a sample, IT defaults to a tuning value of C#4. Be sure to change it to C4 in the Samples Tab.


One minor tip involving WAV samples


Quote
In my tutorial I said to save every WAV sample you plan to import at 8000 hertz. The alternative is to save at 16000 hertz and then press the "downsample" button. Or you can save at 32000 hertz and press "downsample" twice. Etc.


Final note:


Quote
This method of MOD/IT porting has a slightly higher learning curve than just normal MIDI porting, but you can end up with much higher quality results. Just keep working at it; I want to hear you guys port some incredible stuff!


Lastly, here is a file that you can use to start out on. It contains both a MOD and an IT file containing all of the original SMW instruments. Credit goes to RPG Hacker for the original MOD.

So again, anyone can post questions they have. If the mods feel this should be moved elsewhere, then go ahead.
I should get a new layout.

Probably won't, though.
Alright, here is my first question: Is there a way to determine how many channels openspc uses? Even though no SPC should use more than 8 channels, it seems that openspc always creates IT-files with 16 channels of which often more than 8 are in use at the same time, which makes it hard to reduce a song to 8 channels (especially for someone as music-unexperienced as me).

Originally posted by Kipernal
This method of MOD/IT porting has a slightly higher learning curve than just normal MIDI porting,


I actually have to disagree: I found your tool to be a lot easier than MIDI porting. For one thing with A MAD SCHEME you don't have to do octave switching, channel fixing and stuff like that and for another it's possible to listen to songs before inserting them and the conversion is almost 1:1. I couldn't port a single MIDI file so far, no matter how much I tried. With your tool, however, I made my own custom music in just one day. Here it is, btw:

<object width="480" height="385"><param name="movie" value="http://www.youtube.com/v/mPNnYMcDSyE?fs=1&hl=en_US&rel=0"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/mPNnYMcDSyE?fs=1&hl=en_US&rel=0" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="480" height="385"></embed></object>

OK, yeah, this music sucks and is rather boring, especially if you're not German and don't even know the song, but my point here is that first of all this song sounds 1:1 like the MOD-file in OpenGT and secondly I, the biggest music n00b in the world, created my own custom music. I'm really glad you made this tool! :)

--------------------
Feel free to visit my website/blog - it's updated rarely, but it looks pretty cool!
Originally posted by RPG Hacker
Alright, here is my first question: Is there a way to determine how many channels openspc uses? Even though no SPC should use more than 8 channels, it seems that openspc always creates IT-files with 16 channels of which often more than 8 are in use at the same time, which makes it hard to reduce a song to 8 channels (especially for someone as music-unexperienced as me).


The 16 channels is a result of splitting each channel into a right half and a left half. The first 8 channels contains the sound that comes out of the left speaker, and the last 8 channels contains the sound that comes out of the right speaker. Since you only need the note data and not the volume data (since you'd have to get that by ear anyway), you can safely ignore the last 8 channels.


Originally posted by RPG Hacker
I'm really glad you made this tool! :)


I'm really glad I made it too. :P (And also, for a first song, that doesn't sound half bad. But maybe you could do something to vary the percussion a bit, like adding in instrument @22 and @23 for some light background noise.)
I should get a new layout.

Probably won't, though.
Is that the best/only MOD site out there? Its selection with respect to the games I know and would want to port songs from is absolutely pathetic.
Originally posted by imamelia
Is that the best/only MOD site out there? Its selection with respect to the games I know and would want to port songs from is absolutely pathetic.


Out of 1535 files they have you can't find a single one that you know? The only other site that I know (for video games, at least) is this site, but there's no guarantee that the songs are actually ripped from the game itself.
I should get a new layout.

Probably won't, though.
Well, no, I found a couple that I know, but the selection is terrible.
Well, if you find a better site, be sure to post it here and I'll update the first post accordingly.
I should get a new layout.

Probably won't, though.
I know I'm repeating myself, but geeze! This tool is awsome!

<object width="480" height="385"><param name="movie" value="http://www.youtube.com/v/RdYyfV79RK4?fs=1&hl=en_US&rel=0"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/RdYyfV79RK4?fs=1&hl=en_US&rel=0" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="480" height="385"></embed></object>

Yeah, I know this song is lacking some effects and maybe samples for awesomeness, but if you consider that I made the song it's already quite awesome. I ported it from an IT-file, btw.

--------------------
Feel free to visit my website/blog - it's updated rarely, but it looks pretty cool!
A mod to MML tool?!? I have been wanting one for a while.

ALSO, it would be best if you included options to ignore some commands and to choose how many rows are considered a beat, since Mods do not store note length directly and do not divide notes into easy quarter notes all the time. It is helpful therefore to choose how long a quarter note is in ticks, so we get a nice clean MML file.

--------------------
Your layout has been removed.
It's so much easier than the MIDI Porting stuff, just listen to this music:

<object width="480" height="385"><param name="movie" value="http://www.youtube.com/v/wiRlVI2lyEk?fs=1&hl=de_DE&color1=0x5d1719&color2=0xcd311b"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/wiRlVI2lyEk?fs=1&hl=de_DE&color1=0x5d1719&color2=0xcd311b" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="480" height="385"></embed></object>

Thank you so much Kipernal, you're awesome!!

You know, this is my FIRST port, so it's a lot easier!
Originally posted by KilloZapit
ALSO, it would be best if you included options to ignore some commands and to choose how many rows are considered a beat, since Mods do not store note length directly and do not divide notes into easy quarter notes all the time. It is helpful therefore to choose how long a quarter note is in ticks, so we get a nice clean MML file.


That's been there since the release; you can find it under the Options tab. (It's not recommended to disable volume since that's used as the Note Off event, however.)


Also, I'm glad to hear this tool is making porting easier!
I should get a new layout.

Probably won't, though.
is that per tick or per row? I think per row is better

--------------------
Your layout has been removed.
Essentially what it represents is how many patterns represents one measure (line break) in the MML file, or how many notes are in one measure. 64 means 64 notes per measure, or that one MOD pattern equals one MML measure. 32 means 32 notes per measure, or that one MOD pattern equals two MML measures.

But yeah, I should've put row instead of tick. Whoops...
I should get a new layout.

Probably won't, though.
Oh I see, you divide patterns into measures. I am more used to IT and having the option of using variable measures but you can still do that in mods by using skips I guess, Which is sort of impotent if your doing 3/4 time as there will always be a bit of the pattern cut off (typically mods use 48 out of 64 row and use the skip command to discard the rest) . It would be nice to use multiples of 3 in a measure for that, but unless skips are supported that won't be useful anyway.

Oddly IT and I think maybe S3M files supported embedding line markings that could be used for beat/measures. I wonder if all mod formats do?

Also: MIDIS SUCK MODS RULE! YEAH!

Also also: What, you don't insert rests for note off events? That seems more logical (and more accurate I think, though I may be wrong) to me. Plus I wonder if that will cause problems with separate echo volumes... probably not.

--------------------
Your layout has been removed.
Originally posted by KilloZapit
Oh I see, you divide patterns into measures. I am more used to IT and having the option of using variable measures but you can still do that in mods by using skips I guess, Which is sort of impotent if your doing 3/4 time as there will always be a bit of the pattern cut off (typically mods use 48 out of 64 row and use the skip command to discard the rest) . It would be nice to use multiples of 3 in a measure for that, but unless skips are supported that won't be useful anyway.


The pattern break command automatically inserts a line break into the MML file, so it effectively treats it as its own measure anyway.

Originally posted by KilloZapit
Also also: What, you don't insert rests for note off events? That seems more logical (and more accurate I think, though I may be wrong) to me. Plus I wonder if that will cause problems with separate echo volumes... probably not.


MOD files don't have note off events...unless you're talking about setting the volume to 0? The problem is that setting the volume to 0 doesn't always mean that you want to turn the note off. In both MOD files and SMW's SPC engine is is perfectly legal to play a sample with a volume of 0 and then raise it later. Here's an example; jump to 1:38. That effect is done by setting the volume to 0, then to full, then to 0, then to full, etc. It wouldn't sound the same if I used rests.

But how would that cause echo issues?
I should get a new layout.

Probably won't, though.
I've also noticed a glitch (or maybe it's not even a glitch and was intentional?) with the B command. You wrote that A MAD SCHEME doesn't convert anything past a B command. This is only semi-true, however. I put a B somewhere in the middle of a pattern. A MAD SCHEME converted everything to the end of that pattern, causing the song to have a moment of silence at the end instead of looping instantly. I had to edit the output file manually and remove the left-over notes at the end.

Also maybe you could expand A MAD SCHEME to also convert B correctly (in other words: Insert / at the correct spot in the music file).

--------------------
Feel free to visit my website/blog - it's updated rarely, but it looks pretty cool!
Originally posted by RPG Hacker
I've also noticed a glitch (or maybe it's not even a glitch and was intentional?) with the B command. You wrote that A MAD SCHEME doesn't convert anything past a B command. This is only semi-true, however. I put a B somewhere in the middle of a pattern. A MAD SCHEME converted everything to the end of that pattern, causing the song to have a moment of silence at the end instead of looping instantly. I had to edit the output file manually and remove the left-over notes at the end.

Also maybe you could expand A MAD SCHEME to also convert B correctly (in other words: Insert / at the correct spot in the music file).


Alright, I'll get to working on that. Until then though, you should be able to use the D and B commands together to simulate the effect.

And inserting the / command shouldn't be too much of an issue; I'll have to look over my code again, though, because I didn't write it with that in mind originally.

And thanks for pointing that out, by the way. I'd like to get all these little bugs ironed out before I release it to the tools section.
I should get a new layout.

Probably won't, though.
Originally posted by Kipernal
The pattern break command automatically inserts a line break into the MML file, so it effectively treats it as its own measure anyway.


Originally posted by Kipernal
MOD files don't have note off events...unless you're talking about setting the volume to 0? The problem is that setting the volume to 0 doesn't always mean that you want to turn the note off. In both MOD files and SMW's SPC engine is is perfectly legal to play a sample with a volume of 0 and then raise it later. Here's an example; jump to 1:38. That effect is done by setting the volume to 0, then to full, then to 0, then to full, etc. It wouldn't sound the same if I used rests.

But how would that cause echo issues?


Oh I thought they did. My bad. I am thinking of Scream Tracker 3 I guess. I really have done VERY little work with the original mod format. I don't even know the effect letters for it.

Also the possible issue is that, as far as I know, you can set echo volume and main volume separately in an spc track. I think there are situations where you want to leave main volume off, such as when doing filter related things I think.

--------------------
Your layout has been removed.
Well, I figured out a method to convert IT-files to MOD-files and get them to sound somewhat correct (assuming we're not talking about the IT-files converted from SPCs here). You'll need Audacity (google for it, it's free) or basically any other WAV editor for this, but Audacity is the only one I'm familiar with, so I'm using this.




First of all open your IT-file in OpenGT. Note down the "Initial Tempo" and "Ticks/Row" values somewhere. Now go to the samples tab. Now go through all of the samples and export each of them to an external file (clicking that disc that says "save sample"). I recommend using the sample number as a file name so that you know where to reinsert the samples later on. Now go to "View > Song Properties..." and switch the type to MOD format, then click OK. Ignore all the error messages and warnings that possibly turn up. The file is now converted to MOD format, but if you play it you'll notice that it sounds all slowed down and really weird. So let's fix the file up.

First of all place to events on the very first note in the song, two F events to be exact, a "set tempo" and a "set speed". For the "set speed" event you take the value of "Ticks/Row" from the IT-file, which you've noted down somewhere before. For the "set tempo" event you take the "Initial Tempo" value. Now the playback speed should be correct.

Next to fix up the samples. This is what we need Audacity for. Please note that I'm using the German version of Audacity. Therefore, I don't know the exact labels in the English version, so don't be surprised if some of them in the program differ from what I call them here. Anyways, start up Audacity and drag & drop the first sample into it. Now change the "Project Frequency" at the bottom left-hand corner to 8000. Now click the arrow next to the file name of the sample in the wave track. Choose the option at the bottom ("Set Samplerate") and switch the Samplerate to 8000 Hz. Now we've got the sample in the correct frequency, but it's slowed down. To fix this, first highlight the whole track by pressing CTRL + A, then go to "Effect > Change Speed" (not to confuse with "Change Tempo", those are two different options; it should be the 8th option you're looking for). Now the next step is pretty much trial and error. The sample was slowed down, so we gotta make it faster. We do this by either moving the cursor on that bar to the right or by entering a number into the field in the middle. Do this and click OK. Now compare the length of the sample to the original length of the sample before any changes were done to it. Do they match? Then you're done. Otherwise press CTRL + Z to reverr to the last version and repeat the last step with a different value. If your sample is too long try a higher value, if it's too short try a lower value. Basically you do this until the length of the sample somewhat matches the original length. You can also press the play button to see if they sound similiar (the quality should be a reduced, though). Anyways, if you've found a value that works I recommend noting it down somewhere for future reference (to convert samples of the same frequency to 8000 Hz easier). I've started a list myself with a few frequencies, but not all of them are common and it's pretty slow anyways. But if you happen to have a sample in any of these frequencies you can speed up the whole process. Here is the list so far:

Code
11689 to 8000 -> + 46,25%
22050 to 8000 -> +175,75%
24140 to 8000 -> +201,75%
26217 to 8000 -> +227,50%
44100 to 8000 -> +450,00%


Basically the percentage on the right is what you have to enter in the "Change Speed" window to get the correct speed.

Now to save the sample. Go to "File > Export" (should be somewhere in the middle) and save the sample. I recommend to just overwrite the original sample. Repeat this whole process for all the samples.

Now go to the MOD-file in OpenGT again and go to the samples tab. Here you import all the changed samples (by going to their original sample number and clicking the "Import sample" button). After that you're almost done. Everything left is to open the original IT-file, going to the samples and transferring the loop points to the samples in the MOD-file, since those were lost. Note that since the frequencies have changed the sample lengths and therefore the loop points have also changed. It's once again pretty much trial and error.

Save the MOD-file and click play button. If you've done everything right then the MOD-file should sound just like the IT-file, except with a lower quality (due to the samples being reduced to 8000 Hz) and with a few effects missing.





Yeah, I hope this was somewhat understandable. I suck at explaining in English. Anyways, since IT-files are more common than MOD-files this can help you to convert them easily without having to copy notes manually or whatever. For me this was pretty helpful, but you should do whatever is easier for you and you think is faster.

--------------------
Feel free to visit my website/blog - it's updated rarely, but it looks pretty cool!
Wouldn't that truncate the pattrens?

Also Impulse Tracker had a special key that let you re ajust the sample rate, I wonder if openMPT does? (overall I liked Impulse Tracker a ton more, but it's for dos. Le sigh.)

--------------------
Your layout has been removed.
Pages: « 1 2 »
Forum Index - SMW Hacking - Resource & Tool Releases - A MAD SCHEME Troubleshooting/F.A.Q. Thread

The purpose of this site is not to distribute copyrighted material, but to honor one of our favourite games.

Copyright © 2005 - 2019 - SMW Central
Legal Information - Privacy Policy - Link To Us


Total queries: 7

Menu

Follow Us On

  • YouTube
  • Twitch
  • Twitter

Affiliates

  • SMBX Community
  • ROMhacking.net
  • MFGG