Language…
6 users online: DashGamer, drkrdnk, Enan63, futhark, gr8fulAF,  Nanako - Guests: 255 - Bots: 378
Users: 64,795 (2,377 active)
Latest user: mathew

Official SMW Music Porting Help Thread (Read first post!!)

You can just look into the music itself. You can set the end of the intro with '/' (without quotations) which in your case would equal to the beginning of the looping part.

Keep in mind that it's pretty easy to mess up with an intro as if you time it incorrectly, your song easily desyncs and to make it worse, unlike (where it doesn't actually matter). Take a look at this example:
Code
#0 t38 @8
o2c+4c+8.d+8	; 48 + 24 + 12 + 24 = 108 ticks
/
d+8d+8f8<c+16>c+16


#1 @3
o3f+16f16f16f16a+4a+8a+8	; 12 + 12 + 12 + 12 + 48 + 24 + 24 = 144 ticks
/
c16c+16d+8c+16d+16


If you're wondering what ticks mean, but ticks is the unit of how long a note plays in NintSPC (the music engine we use). The explaination is a bit technically (so it doesn't really matter for a beginner like) but if you're curious, the smallest notes, one 64th note and one 64th triplet/one 96th note are 3 and 2 ticks long, respectively and each next note (32nd and 32nd triplet, respectively) are double as long as the previous note so their ticks also are doubled. In my example, channel 0 is 36 ticks too short (or e.g. three 16th too short). It's only really important with the use of hex commands (in which you have to look in AMK's readme, Hex Command Reference* anyway) or if you look into the song's stats (put in the folder, you guessed it, "stats") to see where the song (not the intro) ends, though.
*There is a small mistake at 16th triplet: The amount of ticks doesn't equal to $09 but rather to $08 given triplets are indivisble by three, not to mention that it's an odd value but the only possible odd value.
I'm trying to edit the "Piano" music. I don't know how. AddMusicK says "Load successful, Click enter to continue" but it just shuts down AddMusicK. Also, is AddMusicK compatible with Audacity or WMP (Windows Media Player)? I cam try to PM you the .mid or .mp3 file.
I literally just started porting today and I'm confused on how to use SPC700 to playback my music, how do I turn my .txt into .spc or rather a PKCS #7
Originally posted by KingBubbi
I literally just started porting today and I'm confused on how to use SPC700 to playback my music, how do I turn my .txt into .spc or rather a PKCS #7

Open AMKGUI, click on Add New Song, select Porter Mode and then hit Run. This will "compile" your TXT into an SPC you can play (with SPC700 player).
LINKS Twitter | YouTube | SoundCloud | Fortaleza Reznor
to hear birds and see none.
Originally posted by Maxodex
Originally posted by KingBubbi
I literally just started porting today and I'm confused on how to use SPC700 to playback my music, how do I turn my .txt into .spc or rather a PKCS #7

Open AMKGUI, click on Add New Song, select Porter Mode and then hit Run. This will "compile" your TXT into an SPC you can play (with SPC700 player).

Whenever I click run it says "this file is invalid for use as the following: PKCS #7"
You need to set the OS to open SPC files with a program which can play back SPC files (e.g. SPC700 Player, VLC).
Originally posted by MarioFanGamer
You need to set the OS to open SPC files with a program which can play back SPC files (e.g. SPC700 Player, VLC).

How would one go about that, I'm trying to follow Wakana's Guide but I don't see anything about how to set the operating system
Originally posted by KingBubbi
Originally posted by MarioFanGamer
You need to set the OS to open SPC files with a program which can play back SPC files (e.g. SPC700 Player, VLC).

How would one go about that, I'm trying to follow Wakana's Guide but I don't see anything about how to set the operating system


On the File Manager, right-click an SPC file, select "Open with", then "Choose another app". You'll be prompted to choose an application and the option of using it by default when opening SPCs. Choose SPC700, check the option and confirm. Next time you use AMKGUI, it should autoplay the SPC correctly.
Hey guys.

So this lil fellow lost the 72hoSPC #6 contest because I didn't give it enough love.
I was trying to reproduce the Staircase Whip (youtube link) song from Boards of Canada, which is also kinda weird.

For reference, you can also ddl the txt file as I left it.

I linked channels 1 and 4 together with pitch modulation. Trying other instruments resulted in garbage noise, so I figured these would be ok. Plus it interacts real well with the bongo, in my opinion.
I oversimplified the melody pattern, as it seems, but I don't see how much more complex I could put it without running short of channels... Any suggestion is welcome,
thanks,
Hi! Hopefully this is the right place to ask.
Does anyone know if there is a way to make a pitch bend that is not linear? I would like a note to pitch logarithmically. I guess it would take some pretty special asm-stuff or something like that, but I'm willing to do some research if anyone can just point me in the right direction.
I have a few basic questions:

I have composed my own piece of music with FL Studio and the C700 VST plugin. I converted it with the SPCtoMML converter and loaded this txt file together with the samples into a rom with AddMusicK. That worked out quite well.
But now I want to change something in the txt file (Pitch slides were not taken over). My problem is that the C700 plugin does not export to a spc in an optimal way: The samples in each channel are changed continuously.
It makes no audible difference, but the txt file is completely chaotic and therefore the txt is almost not editable.
Is there a better way to create a MML file for AddMusicK, for example to convert a MIDI file into MML where I only have to insert my samples?

Another problem I have with this track: When I put it in a level, all game sounds (jumping, Super Mushroom etc) in this level will be played with a higher pitch.
I don't know a whole lot about Fruity Loops Studio or SPCtoMML, but if you exported your song as an SPC, NintSPC may yield better results though I believe the SPC would need to use the N-SPC format - don't know if your plugin uses that but there's only one way to find out. The reason for the .txt blowup is a lot of these tools that produce MMLs from video game music interpret the audio at an internally-determined tempo rather than directly converting the data, and so durations are approximated rather than actual... and it's almost never a good approximation unless you can define the tempo or length of each "tick" for the output. Pitches are usually right, but sometimes, not so much. They're really hit-or-miss utilities.

What I personally recommend is exporting your song as a MIDI and converting that to MML with either PetiteMM or NeutronCat's new tool in this forum (this looks superior to PetiteMM) and you shouldn't have your song blow up with messed-up durations - the output would be clean and accurate, there is no guesswork to get a decent export, however, PetiteMM would still not export pitch bends and I'm not sure if Cat's does. If not, you would have to reference the hex note value table in the AddMusicK readme. There are three kinds of bends: pitch bend, pitch envelope attack, and pitch envelope release (the former bends just one note but the latter two will affect subsequent notes) and these are described in the syntax reference of the readme.
$command $delay $duration $pitch

You're also going to be using @ to call an instrument, or #instruments {} to tune imported .brrs and then call those with @ (starting with @30, in order of listing.) The programs that export MML can not be trusted to know what instrument is going to play in your ROM, so you would have to plug in those values when an instrument within a channel changes.

With the sound effects being distorted:
1) Are you using custom samples in place of the originals?
2) What commands are placed on channels #6 and #7 if it's only periodic distortion?
3) Did you modify any tuning in AddMusicK's instrument data ASM?
4) Are you using ZSNES or any other old emulator?

Just look above you...
If it's something that can be stopped, then just try to stop it!
Thanks for your answer!
I have just converted a Midi to MML with PetiteMM, added samples and instruments to it and added the respective instruments in the individual channels with @. The txt file is now nice and clean, but now I have 2 (or 3) other problems:

1. all my instruments are extremely pitched. I have already read that I have to change the value behind the $ for this. How do I know which value to set (and behind which $ sign)? I set the last value of the instruments to 00 just for testing, then the pitch changes but it's still wrong.

This is how the Instruments look like:
Code
#instruments
{
	"Hit.brr"	$FF $E0 $00 $01 $81	; @30
	"Kick.brr"	$FF $E0 $00 $03 $4F	; @31
	"Slap_Bass.brr"	$FF $E0 $00 $04 $A5	; @32
	"HiHat.brr"	$FF $E0 $00 $02 $8D	; @33
	"Bass.brr"	$FF $E0 $00 $01 $8D	; @34
	"String.brr"	$FF $E0 $00 $03 $93	; @35
	"Snare.brr"	$FF $E0 $00 $01 $43	; @36
	"Crash.brr"	$8B $2E $00 $02 $51	; @37
	"OHiHat.brr"	$8A $3F $00 $01 $BC	; @38
}


2. I got an error because i wanted to skip 5 octaves at once and that was probably too much /too high (from c2 to c7). I suppose that this bug will automatically fix itself when the first problem is solved? Strangely enough PetiteMM converts increasing an octave with < and decreasing it with >, although in the AddMusicK ReadMe it says the exact opposite.

3. the song breaks off about 3 1/2 beats before the end and starts looping again from the beginning.

To your previous questions:
1. yes, they are custom samples, so they are in a separate folder. (6 of the 9 samples are still from SMW)
2. in channel #6 there is no command, in channel #7 there is a (!1,-1), (!3,3) and (!0,0). At the beginning of the txt file is
Code
(!1)[$F4 $09]
(!2) [$ED $80 $00]
(!3) [$ED $47 $1C]

3. I do not think so.
4. I use bsnes 1.15
Changing the fourth hex value ($) makes a big difference in the pitches depending how high or low the number is, and changing the fifth hex value makes a small difference.

Pitch values really depend on which pitch the samples were recorded and its sample rate. Many of the vanilla samples tend to sound right when tuned with either $03 $00 or $06 $00 (or any of the exponents of its square root). Some custom samples may not work that way with the same values. The only advice I can give on that is using something like a tuner to check how the pitches match.

When the octave is internally too high, like exceeding o5, AMK will stop compiling as a result of an error. If the samples' pitch is way too high or low (that can be checked in the orange bar in SPCPlay to see how far it goes up or down), it plays random pitches as a result of overflow.

As for checking whether something ends earlier than intended, check the text file in the stats folder to see which channel length is the shortest, that will at least give you a hint.
Yeah, it sounds like the channel that ends earliest is going to be less than one measure. One thing I do that NeutronCat's tool automatically does is space out everything by measure so it is easy to identify whatever needs padding with rests. If your song is 4/4 and ending 3.5 beats too soon then "r2.." should fix that - in your composition, what channel ends in an eighth note before the others? Similarly, pad any other channel that ends too soon with the appropriate number of rests.

Using a manual ADSR command in AddMusic has (had?) a history of carrying over to the sound effect and becoming canceled by it. Jump in particular would sound obnoxious and it writes to #7 so it is possible this is the cause. I do not know if that is resolved in AddMusicK, but the ADSR set by the #instruments table should not carry the effect over. Though it seems redundant to create a new "instrument" with the same properties other than ADSR, this might be the most sane option if the channel is the one that can most afford to be cut off by sound effects.

If you drop any instruments from SMW in #samples to fit in more, pad that vacated space with "EMPTY.brr" or instrument-related pointers in your sound effects might select funny instruments. Piano, Steel Drum, and Distortion Guitar are unused by sound effects and safe to replace. I believe the Acoustic Guitar and original Slap Bass are ok to remove too; I can't recall what uses them. They free up a ton of audio RAM too. If you are not using Blargg or a lightning generator, SMW Thunder is also safe to replace. Just about everything else is referenced by sound effects. #optimized bank may also work fine for you - if that is what you're using, try a manual list of all the bank's BRRs and load the default bank's @0 to fix the sounds you describe as being off, since there is an off-chance that may be it too.

Just look above you...
If it's something that can be stopped, then just try to stop it!
Thanks a lot you two! You were able to help me with all my problems. Actually 3 of the channels were too short. The instruments are also correctly tuned now.
I actually misinterpreted the thing with the pitched game sounds. The sounds were simply overwritten with my samples because I forgot a #default in #samples{}.

In any case thank you very much! This community here is great!
I am remixing the Bubbleman theme in MM2 style, and there is a problem in certain parts.
Tempo Slowdown part : 0:30~0:31
0.02 seconds delay part : 0:40~0:41

1.Will the problem of the music stopping for 0.02 seconds when the notes on the 6 channels are played at the same time be solved by using the method of fine adjustment with '= syntax'?
2.I am currently using 'AddmusicK_1.0.8', it2amk, does it2amk affect the tempo?
3.Do you have any know-how that doesn't slow down the tempo? or Can I look forward to the next update if all the methods are useless?

SPC File(Latest) : https://bin.smwcentral.net/u/47739/Bubble%2BMan%2B-%2BMega%2BMan%2B2.spc
MML File(Latest) : https://bin.smwcentral.net/u/47739/Bubble%2BMan%2B-%2BMega%2BMan%2B2.mml

(Sadly, it still feels as if the tempo is going bad. What do you think? If there is a problem with my mml file, please let me know where the problem is.)
So I'm trying to figure out how this custom tuning instrument lark works and I've hit an issue where the notes loop into a fade and I have no idea what crucial thing I have overlooked

Code
#instruments
{
n1F $FF $33 $7F $00 $00
}

#0 w255 t45
@30 v150
c4 c8 c8 c8


this is my test page. I just want a crash symbol #wario{:'(}
Originally posted by JX444444
I am remixing the Bubbleman theme in MM2 style, and there is a problem in certain parts.
Tempo Slowdown part : 0:30~0:31
0.02 seconds delay part : 0:40~0:41

1.Will the problem of the music stopping for 0.02 seconds when the notes on the 6 channels are played at the same time be solved by using the method of fine adjustment with '= syntax'?
2.I am currently using 'AddmusicK_1.0.8', it2amk, does it2amk affect the tempo?
3.Do you have any know-how that doesn't slow down the tempo? or Can I look forward to the next update if all the methods are useless?

SPC File(Latest) : https://bin.smwcentral.net/u/47739/Bubble%2BMan%2B-%2BMega%2BMan%2B2.spc
MML File(Latest) : https://bin.smwcentral.net/u/47739/Bubble%2BMan%2B-%2BMega%2BMan%2B2.mml

(Sadly, it still feels as if the tempo is going bad. What do you think? If there is a problem with my mml file, please let me know where the problem is.)

You can do things like disable vibrato during a pitch bend, disable your remote command events when they're not being used (not the same thing as restore instrument) and even reduce the amount of small loops.
You could use = to counteract slowdown, though I'm not sure if this will play out consistently on real SNES's.

Originally posted by Krameht
So I'm trying to figure out how this custom tuning instrument lark works and I've hit an issue where the notes loop into a fade and I have no idea what crucial thing I have overlooked

Code
#instruments
{
n1F $FF $33 $7F $00 $00
}

#0 w255 t45
@30 v150
c4 c8 c8 c8


this is my test page. I just want a crash symbol #wario{:'(}

Seems like you successfully made a crash. What I think you want to do is have the song not loop? Put #option noloop above your first channel, and have your channel just play c1.