I have ported this one week ago an thought about release it just after using it in my ROM hack,but then I've decided to send it here,since it will be my first submission at the Music section.It uses Piano,Jingle Bells,and the SMW Glockenspiel.
This is on the right track; however, there a few issues that prevent me from accepting it.
First, the biggest offender is that there many notes, especially in the backing melody, that are incorrect. 0:11 and 0:19 are prime examples of this. As well, the section with the arpeggios desyncs near the end, and from the looks of it, it's because you forgot a 2 after the second (11) loop.
Now, onto instrumentation. I'm not sure if making everything piano works super well. The piano works well as a lead, but you could achieve a neat, fuller sound if you throw in some strings (especially for the arpeggio part's background notes), guitar, or flute. Experiment with different instruments, you might get a few happy accidents. As well, since you've got some free channels, you can use them to fluff up the song even more: either with fake echo (though perhaps not for this song in particular), or perhaps making instruments sound fuller by layering different ones. I notice you've already done this with the @2 channels in the background, this is a good first step, but I'd suggest you experiment with it even more. With channels #6 and #7 at your disposal, there's lots of potential. Playing with the instruments' tunings here could also work, if you slightly detune two layers of the same instrument and superpose them. There's a lot to experiment with. Obviously, it might not all work, but I figure it's worth a shot.
Next, there's some issues with the mixing. For the most part, the background melody on channel #2 is way too loud when compared with the original. This may resolve itself depending on which instruments you choose. As well, the jingle bells are also a little loud, since they blend into the background in the original, but they stick out here. Maybe you could adjust their ADSR to make the fade-in slower as well, but that's just an idea.
Finally, there's some issues with optimization. There's some easily-fixable things like this: (9)r1r1
[r1]4 [email protected]
(example taken from channel #4)
All those rests could be consolidated into one label loop. As well, when looping rests, it's more efficient to use [r2] instead of [r1]. So, that group of rests can become [r2]16 to save more space.
If you want to get really picky, if you've got one channel always playing the same notes as another channel but offset (which seems to be the case between channels #4 and #5 at a very quick glance), then you could define the loops only once on one channel, and then call them back in conjunction with the $FA $02 $XX command, which tunes notes on a channel per semitone. For example, $FA $02 $01 will make c sound like c+, $FA $02 $02 would make it sound like d, while $FA $02 $FF will make it sound like <b, and so on. This may sound very confusing so don't be shy to ask for further help if you don't understand.