Language…
19 users online: bradcomp, cletus_deletus, DanMario24YT, Domokun007, Green Jerry, GRIMMKIN, hhuxy, iRhyiku, JezJitzu, lo fang 123, Maw, Nayfal, Nemesis1407, playagmes169, sinseiga, SMW Magic,  Tahixham, TheXander, Torchkas - Guests: 288 - Bots: 387
Users: 64,795 (2,374 active)
Latest user: mathew

Kirby's Dreamland - Bubbly Clouds by detdu

File Name: Kirby's Dreamland - Bubbly Clouds
Submitted: by detdu
Authors: detdu
Insert Size: 0x bytes
Type: Song
Sample Usage: None
Source: Port
Duration: 1:27
Featured: No
Description: Port of the Bubbly Clouds song from Kirby's Dreamland!

SPC

This sounds like a cute rendition of the song, but unfortunately, I can't approve the port in its current state.

My main issue is that you have twice the amount of necessary note data, most likely because the MIDI file you used had two loops. You don't need to have more than one loop in a port because you can assign an intro to each song so it endlessly loops from a point on. You can read more about the intro command in this section of Wakana's Tutorial, specifically the part that starts with "To finish this basic tutorial [...]."

Now, a second issue with the port is the inefficient optimization. While you did optimize a few repeating lines, you missed some of them. For instance, the first two lines in #0 play twice:

Code
cg>d4c4<cg>ddc4<
da>e4d4<<g>gg<g>gg
cg>d4c4<cg>ddc4<
da>e4d4<g>gg<g>gg<


Even though the fourth line has a <, you can safely leave it out of the loop definition like this:

Code
[cg>d4c4<cg>ddc4<
da>e4d4<<g>gg<g>gg]2
<


Also, you have many repeated loops which can be assigned a "label" number to call them again and reduce space even more. Refer to section 1.2 of the aforementioned tutorial for more info on them and other optimization techniques. But, to give you a quick example, you can turn this:

Code
[cg>dec<g]2
[<f>cgafc]2
[<g>dabgd]2
cgdecg<g>dabgd
[cgdecg]2
[<f>cgafc]2
<g+>d+g+d+g+d+a+fa+fa+f
[<cg>dec<g>]2
[<a+>fa+fa+f]2
[<cg>dec<g>]2
[<a+>fa+fa+f]2
[<cg>dec<g>]2


Into this, with label loops:

Code
(1)[cg>dec<g]2
(2)[<f>cgafc]2
[<g>dabgd]2
cgdecg<g>dabgd
[cgdecg]2
(2)2
<g+>d+g+d+g+d+a+fa+fa+f
(1)2
(3)[<a+>fa+fa+f]2
(1)2
(3)2
(1)2


Additionally, you've got several long strings of r1^1, which can be condensed into either [r1]X (X = number of times there is a 1 in that string) or [r2]Y (Y = number of times there is a 1, multiplied by 2). On a similar note, you don't need to add [[r2]]255 at the end of almost every channel, and you certainly don't need four extra channels with nothing but [[r2]]255; this is only increasing the insert size while giving you no actual benefit, so please remove them.

Now, I'll be going over the smaller issues. First of all, the tempo is a bit too slow compared to the original. Second, channel #2 drops an octave for six notes at 0:32, then goes back to normal; this can be fixed by moving the < at the end of line 125 to the end of line 126. Also, the instrumentation could use some work; you're using @11 for most of the melody - an instrument with a relatively slow attack value - thus making it harder for it to reach full volume when playing short notes. I recommend either using a different instrument for variety, or adding a custom ADSR to it. You can refer to section 2.1 of the tutorial for an explanation on ADSR.

And last but not least, please fill out every submission field; the insert size field is not to be left empty. If you don't know where to get the info, you can use AMK to insert your port to a ROM and it will give you a results screen with the insert size and the length of everything the program inserted. Alternatively, you can create a folder named Stats then run AMK again through either Porter Mode or regular mode. This will generate a .txt file for every song inside the folder you just created, and in those .txt files you can find all sorts of info, including the insert size.

That is all. If you need any guidance with porting, feel free to ask in our Discord channel #music! We're always happy to help in any way we can. #tb{:p}