Banner
Views: 853,460,814
Time:
9 users online:  Atari2.0, dacin,  JamesD28, Kusrry, Phyll, S.U, Sir_Danny_TM, supermario6666siper, TDWarrior - Guests: 44 - Bots: 65 Users: 47,080 (2,501 active)
Latest: allmedscare
Tip: Remember, if you place a moon, midpoint, or Dragon Coin using direct Map16, it will always respawn when you re-enter that sublevel. Use the extended object instead.Not logged in.
AddmusicK Beta Release Thread
Forum Index - SMW Hacking - SMW Hacking Help - Custom Music - AddmusicK Beta Release Thread
Pages: « 1 212 13 14 15 16 17 18 » Thread Closed
I too tried. It say:

Error: "!Songcount = " could not be found...

--------------------
What-A-Blast has been cancelled...
**Layout by Erik557


What happens if you use $DC with panning values that have bit 6 or 7 set? Like, is it possible to fade from $0A to $F6 or something? I can think of times when I'd like to turn on surround sound partway through a panning change.
Originally posted by imamelia
What happens if you use $DC with panning values that have bit 6 or 7 set? Like, is it possible to fade from $0A to $F6 or something? I can think of times when I'd like to turn on surround sound partway through a panning change.

All I can say is that I sometimes use non-surround > surround slides for earrape effects... I also had something around so eh, see how crazy it goes after 2 seconds in (one slides from $12 to $C9, another from $0B to $49, the last one from $12 to $89).
Originally posted by Lui37

I'm not sorry.

EDIT: added "not" to the sentence
I'm not sure if this has been brought up already, but have you considered raising the maximum volume of SMW's sound engine to match that of the standard nintSPC engine? (i.e. raising $26 to $3b)

--------------------
Check out my music!
Originally posted by Moose
I'm not sure if this has been brought up already, but have you considered raising the maximum volume of SMW's sound engine to match that of the standard nintSPC engine? (i.e. raising $26 to $3b)

Aside from using the volume multiplier ($FA $03 $XX), I found a way to make the main engine volume higher (up to $4D max on central pan). It has to do with the velocity table in main.asm, which is used for the 'q' command. This is the table in SMW and Pilotwings engines:
Code
1270: db $08,$12,$1b,$24,$2c,$35,$3e,$47,$51,$5a,$62,$6b,$7d,$8f,$a1,$b3


Compare that to the one used in Yoshi's Island:
Code
3ff0: db $19,$33,$4c,$66,$72,$7f,$8c,$99 $a5,$b2,$bf,$cc,$d8,$e5,$f2,$fc


So replacing the table with the one from the common version will increase the main engine volume.

--------------------
Please excuse my lack of an avatar or banner. I'm just too damn lazy to create one.
@mju90 Ah! Thanks for that. Very interesting.

--------------------
Check out my music!
Originally posted by CrispyYoshi
Originally posted by Lui37

I'm not sorry.

EDIT: added "not" to the sentence


I had to personally comment on this and say that was epic on your part CrispyYoshi. 10/10, would listen again, etc.
One recommendation I'd like to make is a command that allows you to copy the exact same notation data from one channel to another without dramatically wasting insert size. While I know it's not the most useful thing ever, I can imagine some people using it. I know I would.
Originally posted by anonymousJustified
One recommendation I'd like to make is a command that allows you to copy the exact same notation data from one channel to another without dramatically wasting insert size. While I know it's not the most useful thing ever, I can imagine some people using it. I know I would.

This, along with the ability to use a different instrument/tuning/etc. when using it.

--------------------
Sorry for the decreased activity in this thread; apparently my professors fear our minds are going to rot in the 2 days off we're getting for Thanksgiving break and are compensating with as many tests and labs as they can possibly come up with. But anyway.

This update officially adds the new pitch calculation engine from Yoshi's Island (though there's currently no standard way to use it. It'll be in the next update, which hopefully won't take as long as this one did). In addition, I've implemented the [[ ]] loop as an official syntactical replacement for $E6 $00 $E6 $XX. Example:

Code
cccc
[[dd]]2
(1)[cccc[[dd]]2]
(1)


And one more feature:

Originally posted by Moose
I'm not sure if this has been brought up already, but have you considered raising the maximum volume of SMW's sound engine to match that of the standard nintSPC engine? (i.e. raising $26 to $3b)


Once again, compatibility is really what's getting in the way here. But...

Originally posted by mju90
Aside from using the volume multiplier ($FA $03 $XX), I found a way to make the main engine volume higher (up to $4D max on central pan). It has to do with the velocity table in main.asm, which is used for the 'q' command. This is the table in SMW and Pilotwings engines:
Code
1270: db $08,$12,$1b,$24,$2c,$35,$3e,$47,$51,$5a,$62,$6b,$7d,$8f,$a1,$b3


Compare that to the one used in Yoshi's Island:
Code
3ff0: db $19,$33,$4c,$66,$72,$7f,$8c,$99 $a5,$b2,$bf,$cc,$d8,$e5,$f2,$fc


So replacing the table with the one from the common version will increase the main engine volume.


I would replace it, but the problem is, once again, compatibility. Since the SMW table is significantly quieter than the YI table, it would break basically every song. ...So, as an alternative, I've added a new command: #louder (alternatively $F4 $08). This is a toggle, and using it will alternate between using the SMW velocity table and the YI velocity table. This will increase the volume significantly, though, once again, be very careful about making things too loud. If you use #louder, you'll probably need to play with qXX to get things sounding good. With this, I'm not sure if the $FC command is necessary at this point (and I'm kind of leaning away from it, partly because I want to save the 4 free commands we have left). Opinions?

Originally posted by anonymousJustified
One recommendation I'd like to make is a command that allows you to copy the exact same notation data from one channel to another without dramatically wasting insert size. While I know it's not the most useful thing ever, I can imagine some people using it. I know I would.


That's going under the "maybe" category. Basically, now that the [[ ]] command is implemented and easy to use, adding a third kind of loop almost seems a bit...redundant? Just encase the part you want to span multiple channels in a label loop, and use subloops ( [[ ]] ) for anything inside that.
I should get a new layout.

Probably won't, though.
Originally posted by Kipernal
...So, as an alternative, I've added a new command: #louder (alternatively $F4 $08). This is a toggle, and using it will alternate between using the SMW velocity table and the YI velocity table. This will increase the volume significantly, though, once again, be very careful about making things too loud. If you use #louder, you'll probably need to play with qXX to get things sounding good.

Specifically, it looks like qXf = qX9 with $F4 $08/#louder enabled.

Also, pretty cool, Kipernal.

--------------------
Check out my music!
For some reason, $DD cancels out $EE.
If I'd for example do $EE $F0 c4$DD $00 $30 $A6 ^4, the bend will play normally, but the ^4 that follows has the $EE cancelled out.

--------------------
Updates! And this is a significantly bigger one than last time:

  • Fixed a somewhat rare crash related to the $E6 command.
  • Fixed some weirdness related to $DD and $EE (I think, anyway...)
  • Rewrote the instrument command completely, making it much smaller (since I also removed a bunch of redundant things from the older more.bin hacks)
  • Instruments must now use 6 bytes; the sub-multiplier byte is properly implemented. Note that the $E5, $F3, and HFD instrument hacks cannot use this byte, as it defaults to 0 for those commands. It can only be used by custom instruments.
  • Fixed the slowdown that occurs when a channel that has never used vibrato during the game uses it during a rest (which should fix most generated SPCs that had this slowdown).
  • Fixed some minor noise-related things.
  • Using an instrument above 127 will now use noise, just like the normal N-SPC engine (and like SFX instruments). I still need to implement syntax for it, however.
  • The program can now properly detect and erase data from AM 4.05 and Sample Tool. But, and I can't stress this enough, BACK UP YOUR ROM BEFORE TRYING THIS. I haven't noticed any problems, but I also only tested on ROMs that only used those two tools, not "full" hacks, and I'm not sure if it will work on them (it should; I'm just being cautious).
  • Probably more things that I can't remember.


I think with the addition of AM 4.05 and Sample Tool data removal we're entering the home stretch; I don't think there's much left to do before this will be able to see a full and proper release. Cross your fingers.

Originally posted by Torchkas
For some reason, $DD cancels out $EE.
If I'd for example do $EE $F0 c4$DD $00 $A6 $30 ^4, the bend will play normally, but the ^4 that follows has the $EE cancelled out.


Alright, I think I've fixed it now; thanks for pointing it out.
I should get a new layout.

Probably won't, though.
Nice. I should mention, though, that you once again didn't update the readme (it doesn't mention anything about the sub-multiplier byte, for one). Also, for the noise instrument, wouldn't just $DA $80 work? Although what's the point in that anyway when you already have $F8? Or was it simply a side effect of the new instrument routine? Actually, on that note, I can't remember...did you say that three-digit instruments (say, @105) do or do not work?

Also, is there a chance you could accept the old format for the sample number in instruments? What I mean is, instead of, say "14 YI bass.brr $FF $E0 $00 $05", it would be "$14 $FF $E0 $00 $05". It's just that it seems a bit redundant to me to specify the .brr file for a particular instrument twice.

(Also, I wish you'd go on IRC more often...)

Also, in case you're at all interested...

Originally posted by me on IRC
<imamelia> Hm, I wonder if I could make a $FB subcommand for making pitch envelopes require fewer bytes...
<imamelia> Maybe even a couple.
<imamelia> $ED $82 $XX $YY $ZZ $xx $xx $xx $xx ...: $XX = number of notes, $YY = note pitch, $ZZ = length, $xx... = sample numbers.
<imamelia> $ED $83 $XX $YY $ZZ $xx: $XX = number of notes, $YY = note pitch, $ZZ = length, $xx = starting sample number (increases until it reaches $xx + $XX).
<imamelia> $ED $84 $XX $YY $ZZ $xx: $XX = number of notes, $YY = note pitch, $ZZ = length, $xx = starting sample number (decreases until it reaches $xx + $XX).
<imamelia> *$FB
<imamelia> Not $ED.
Originally posted by imamelia
Nice. I should mention, though, that you once again didn't update the readme (it doesn't mention anything about the sub-multiplier byte, for one).


I really need to rewrite it anyway; it's become so convoluted that it's almost useless to anyone outside of the music hacking community. Before I submit the program, I'll be sure to create a new readme that covers everything correctly.

Originally posted by imamelia
Also, for the noise instrument, wouldn't just $DA $80 work?


No; $DA $80 would be converted to something else to compensate for the HFD custom instrument hack ($ED $81 etc.). It's rather annoying that the program has to intercept and reinterpret something that's supposed to be literal, but there's no way around it.

Originally posted by imamelia
Although what's the point in that anyway when you already have $F8? Or was it simply a side effect of the new instrument routine?


It's mostly for people who want to use an instrument that uses noise, and for more "compliance" with the standard N-SPC engine. I could change it back if people dislike it, but I doubt anyone would accidentally make a song that requires more than the 127 samples required to cause issues.

Originally posted by imamelia
Actually, on that note, I can't remember...did you say that three-digit instruments (say, @105) do or do not work?


They do. I haven't actually tested it, but I'm certain it would work.

Originally posted by imamelia
Also, is there a chance you could accept the old format for the sample number in instruments? What I mean is, instead of, say "14 YI bass.brr $FF $E0 $00 $05", it would be "$14 $FF $E0 $00 $05". It's just that it seems a bit redundant to me to specify the .brr file for a particular instrument twice.


No, since if someone were to add or remove samples from #default or #optimized slot $14 wouldn't hold the same sample as before and the song would glitch up; the idea behind using sample names to reference a sample instead of raw numbers is that you don't have to worry about things like that. That being said, if anyone can come up with a better way to reference a sample than its file name, I'm all ears.

Originally posted by imamelia
(Also, I wish you'd go on IRC more often...)


It's mostly because my productivity drops like a rock when I'm on, and I have way too much stuff going on right now to afford that. But if there is something that's too cumbersome to talk about via forums/PM, I can still get on.

Originally posted by imamelia
<imamelia> Hm, I wonder if I could make a $FB subcommand for making pitch envelopes require fewer bytes...
<imamelia> Maybe even a couple.
<imamelia> $ED $82 $XX $YY $ZZ $xx $xx $xx $xx ...: $XX = number of notes, $YY = note pitch, $ZZ = length, $xx... = sample numbers.
<imamelia> $ED $83 $XX $YY $ZZ $xx: $XX = number of notes, $YY = note pitch, $ZZ = length, $xx = starting sample number (increases until it reaches $xx + $XX).
<imamelia> $ED $84 $XX $YY $ZZ $xx: $XX = number of notes, $YY = note pitch, $ZZ = length, $xx = starting sample number (decreases until it reaches $xx + $XX).
<imamelia> *$FB
<imamelia> Not $ED.


The problem is that all the different enveloping samples would have to be played at the same pitch and have the same duration, unless you were also willing to encode that information as well. Once you use the $FB command each subsequent note will reset the sequence. If you're interested, though, you can use the ("Sample.brr", $XX) command (include the quotes and parenthesis). I don't think that ever made it into the readme, but it's the "canonical" alternative to $E5 and $F3.

Oh, and one other thing I forgot to mention: Quoted strings can now use \" to insert a quote into the string (mostly useful for the #SPC and replacement command, in case you need to use the actual quote character).
I should get a new layout.

Probably won't, though.
Originally posted by Kipernal
I really need to rewrite it anyway; it's become so convoluted that it's almost useless to anyone outside of the music hacking community. Before I submit the program, I'll be sure to create a new readme that covers everything correctly.

I see. Fair enough.

Originally posted by Kipernal
No; $DA $80 would be converted to something else to compensate for the HFD custom instrument hack ($ED $81 etc.). It's rather annoying that the program has to intercept and reinterpret something that's supposed to be literal, but there's no way around it.

Oh. @139, then? Alternatively, you could instead make @19 or @20 the noise instrument. (I still think one of those should be used for sample 13...)

Originally posted by Kipernal
It's mostly for people who want to use an instrument that uses noise, and for more "compliance" with the standard N-SPC engine. I could change it back if people dislike it, but I doubt anyone would accidentally make a song that requires more than the 127 samples required to cause issues.

I see. I'm not sure what you mean by "an instrument that uses noise", though....

Originally posted by Kipernal
They do. I haven't actually tested it, but I'm certain it would work.

All right. Of course, that's unlikely to come up anyway, since you'd need to have at least 71 instruments for that to be required, which is more than even the largest sample inventories in Slash Man's DKC ports.

Originally posted by Kipernal
No, since if someone were to add or remove samples from #default or #optimized slot $14 wouldn't hold the same sample as before and the song would glitch up; the idea behind using sample names to reference a sample instead of raw numbers is that you don't have to worry about things like that. That being said, if anyone can come up with a better way to reference a sample than its file name, I'm all ears.

Hm. It seems to me that anyone who would change #default or #optimized would have enough music knowledge to change the sample numbers themselves, but you do have a point. Maybe reference the sample's index in the list? But you'd still need a way to reference samples in #default/#optimized/etc....

Originally posted by Kipernal
The problem is that all the different enveloping samples would have to be played at the same pitch and have the same duration, unless you were also willing to encode that information as well.

Yeah. I figure that's true for most enveloping sequences anyway, though. Alternatively, there could be two more forms of the command, one that specifies a pitch and one that specifies pitch and duration.

Also, I forgot...how do you use custom instruments in sound effects again? And did you change the default samples back to their unoptimized variants recently?

Edit: Okay, I have a few new things to add. First of all, what exactly is the format of that sixth instrument byte? It's not the same as $EE or $FA $02. Secondly, I forgot...what is the difference between bit 6 and bit 7 of the speaker balance? Third and most importantly, does #louder/$FA $08 require an intro declaration (a /)? Something odd was happening where after the music looped, it would suddenly become much quieter. Of the two tracks I tested, it only happened in the one without an intro. I assumed the low volume was because it was reading the $FA $08 again and switching back to SMW's normal volume table, which would result in everything being really quiet when combined with all channels being set to q79.
Minor update that's actually rather significant: I've fixed a really sneaky bug that occurred when using #optimized and one of the "optional" samples. Also fixed a somewhat minor bug that would occur when you used percussion instruments on a SFX channel and in a loop (@21cc would not be automatically corrected to @21c @21c).

Originally posted by imamelia
Oh. @139, then? Alternatively, you could instead make @19 or @20 the noise instrument. (I still think one of those should be used for sample 13...)


Actually, the sample number controls whether or not it uses noise (if it's negative, then the lowest 5 bits control the noise clock), and the rest of the information (ADSR, etc.) is preserved.

Originally posted by imamelia
I see. I'm not sure what you mean by "an instrument that uses noise", though....


See above; it's exactly the same as a normal instrument, but instead of using a sample, it uses a specific noise pitch.

Originally posted by imamelia
Also, I forgot...how do you use custom instruments in sound effects again? And did you change the default samples back to their unoptimized variants recently?


Basically, just add the new instruments to InstrumentData.asm. I'm not sure if I should add a standardized method for new instruments or not, considering SFX are supposed to be as small as possible and SFX instruments are rather large.

And the optimized samples should still be optimized.

Originally posted by imamelia
Edit: Okay, I have a few new things to add. First of all, what exactly is the format of that sixth instrument byte? It's not the same as $EE or $FA $02.


It seems to be a sort of "decimal" for the fifth byte (i.e. $02 $80 would multiply by 2.5). Someone who knows better will have to correct me if I'm wrong.

Originally posted by imamelia
Secondly, I forgot...what is the difference between bit 6 and bit 7 of the speaker balance?


Invert the left/right volumes.

Originally posted by imamelia
Third and most importantly, does #louder/$FA $08 require an intro declaration (a /)? Something odd was happening where after the music looped, it would suddenly become much quieter. Of the two tracks I tested, it only happened in the one without an intro. I assumed the low volume was because it was reading the $FA $08 again and switching back to SMW's normal volume table, which would result in everything being really quiet when combined with all channels being set to q79.


Yes, since it is a toggle.
I should get a new layout.

Probably won't, though.
Originally posted by Kipernal
Actually, the sample number controls whether or not it uses noise (if it's negative, then the lowest 5 bits control the noise clock), and the rest of the information (ADSR, etc.) is preserved.

Oh. The sample number? So we can actually only use 128 samples per song, not 256?

Originally posted by Kipernal
See above; it's exactly the same as a normal instrument, but instead of using a sample, it uses a specific noise pitch.

I see. That still requires the same number of bytes as $F8 $XX, though.

Originally posted by Kipernal
Basically, just add the new instruments to InstrumentData.asm. I'm not sure if I should add a standardized method for new instruments or not, considering SFX are supposed to be as small as possible and SFX instruments are rather large.

Oh. I guess that makes sense. Let's just hope it won't be necessary to use very many custom SFX instruments, I suppose. Although I suppose if you knew where the table was, you could change the instruments dynamically. Is the same true for global tracks?

Originally posted by Kipernal
And the optimized samples should still be optimized.

Oh, yeah, I was thinking #default still had the smaller samples.

Originally posted by Kipernal
Invert the left/right volumes.

I figured it was something like that. But then...can't the volume levels on either speaker have either or both bits set? I've seen the right speaker volume set to $F7 before.

Originally posted by Kipernal
Yes, since it is a toggle.

All right, noted.

Also, I'm adding AddmusicK information to my music document (maybe I should reorganize it...). I still have some stuff to put in, such as the new instrument format and # declarations, but I'm pretty sure I covered all the new N-SPC commands.

Edit: Okay, now I'm having the weirdest problem with a sample...one specific sample sounds different in the latest version of AddmusicK than it did in the ones before the sixth instrument byte was added. I literally changed nothing in the text file except adding that sixth byte (a $00), the sample is still the same, and the sample data within the SPCs is the same (I checked in a hex editor). This is what it's supposed to sound like, and this is what it does sound like. The weirdest part is that it only seems to affect that one sample.
Uhm...
For one thing I thought that all #7 SFX were moved to another channel, but why is it so glitchy?
I hope you'll take a look at this.

--------------------
Pages: « 1 212 13 14 15 16 17 18 » Thread Closed
Forum Index - SMW Hacking - SMW Hacking Help - Custom Music - AddmusicK Beta Release Thread

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

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


Menu

Follow Us On

  • YouTube
  • Twitch
  • Twitter

Affiliates

  • Super Mario Bros. X Community
  • ROMhacking.net
  • Mario Fan Games Galaxy