Language…
15 users online:  AmperSam, crocodileman94, CroNo, DanMario24YT, Dark Prince, Green, Green Jerry, GRIMMKIN, mtheordinarygamer, RPG Hacker, Rykon-V73, Skewer, SMW Magic, W3aper, Zavok - Guests: 279 - Bots: 538
Users: 64,795 (2,373 active)
Latest user: mathew

AddmusicK Beta Release Thread

Link Thread Closed
Actually, what I should have said is; is it possible to use custom instruments with samples from a custom sample group? The normal method of loading samples doesn't work, apparently. I've read through the readme numerous times but I haven't found anything on the matter. Thank you.
soundcloud / bandcamp / twitter / buy/stream my EP / buy my touhou music / buy my NEW album!!!
Kipernal,i have the question for you:

There some sound effects in SMW,which uses channels 5,7 and 8.There some musics that uses these channels or uses 8 channels.Sometimes,that sound effects affect the music,stopping some notes.That addmusicK will fix this?
Originally posted by Roberto zampari
Kipernal,i have the question for you:

There some sound effects in SMW,which uses channels 5,7 and 8.There some musics that uses these channels or uses 8 channels.Sometimes,that sound effects affect the music,stopping some notes.That addmusicK will fix this?

He moved SFX that use the 8th channel (like the jump) to the 7th channel. There's absolutely nothing else that can be done to help the SFX overriding some channel notes.
LINKS Twitter | YouTube | SoundCloud | Fortaleza Reznor
to hear birds and see none.
Actually, no, channel 5(#4) got merged with channel 8(#7), so you have channel 5(#4) free now.
Originally posted by Kipernal
I'm not getting any errors just based off of the example you gave me. Could you give me the full song?


Sure. Here it is.

Though, now the errors that trows are "Unknown HEX Command".

Edit: Eh, do you changed something about the echo on SFX? Because I used the code you gave me time ago (LDA #$07 : STA $1DFA) and it's like it wasn't there.
Originally posted by Kipernal

Only instruments from @0 to @18 are defined. If you want more, you need to define them yourself. Unless I'm misunderstanding you, of course.


Back when this was first released I asked about using other SFX samples, and you said you could do that by adding more lines under the SFX insturments in Insturmentdata.asm then you use @19+ to call them in sound effects. That's been working all up until now. They just play garbled messes.

As for the sound effect only being able to be 1 second long, lets just say the sample itself exceeds a second in length. Then when inserted and used, it cuts off at around 1 second.
Originally posted by Kipernal
First off, sorry for being MIA for about a week; I've been busy with school-related stuff (by which I mean final exams).

I figured that was why the thread hadn't been updated in a while. (Lucky me, I had my last final exams on Wednesday...)

Originally posted by Kipernal
Originally posted by imamelia
- What happened to the $F7 command?


I'm planning on removing it. Basically, if you're creating a song and need to write to some arbitrary location in ARAM, chances are you're doing something wrong (we can create custom commands for that). But if people disagree, I'll keep it.

Oh. Perhaps you could at least change the syntax to mirror the $ED $8x commands of AM4.05? With no ARAM write command, we can no longer run code in custom sound effects.

Originally posted by Kipernal
Originally posted by imamelia
Also, perhaps $F4 $04 should be repurposed or something?

Most likely not. We don't gain anything from replacing its spot in the table (since we can just append to it), but we lose potential compatibility if a song is ever discovered that uses it.

A song that uses it would be incompatible anyway, since it's not supported. And I guess it only saves 2 bytes, but it seems unnecessary to have gaps in the table like that. For that matter, why isn't $F9 mentioned?

Originally posted by Kipernal
There are still a few features that need added and bugs that need fixed, but my current plans are to get this finally finished before Jan 1. We'll see how well that goes.

Unrelated to Addmusic, but..."need added" and "need fixed"? That reminds me of a presentation I saw in a linguistics club meeting...

Originally posted by Kipernal
Originally posted by imamelia
Now that I think about it, what commands are safe to use in misc. music? Custom instruments? Certain hex commands but not others?


Everything that can be used is mentioned in the sound effect portion of the readme, though I've added information about $DD and $EB. Those two commands, along with $FF and $FE, are the only safe commands to use.

So most of the basic stuff (notes, rests, volume, instrument, etc.) is there, but $DD, $EB, $FE, and $FF are the only hex commands that can be used. I see.

Originally posted by Kipernal
Originally posted by imamelia
Also, now that Vitor's SA-1 patch is finished, will AddmusicK support SA-1 mapping for 4, 6, and 8 MB ROMs?


Possibly. 6 and 8 MB ROMs might be a bit tricky, but does anything besides what's currently implemented need to be done for 4 MB ROMs?

Well, with the specified mapping, the 1-2 MB area goes in banks $00-$3F (LoROM), the 3-4 MB area goes in banks $80-$BF (LoROM), the 5-6 MB area goes in banks $C0-$DF (HiROM), and the 7-8 MB area goes in banks $E0-$FF (HiROM).

Originally posted by Kipernal
Originally posted by imamelia
And is there any feasible way to stream sound effect samples (and make them play properly) in AddmusicK?


In theory, but you'd need to do it yourself. Just reserve some space in ARAM somewhere for the largest sample * the number of consecutive sound effects that can play, and then upload to those spots whenever a sound effect plays. I can't promise it'd be seamless, though.

That would be a lot of space, but it could work, with the proper modifications to the engine. What I had in mind, though, was more like uploading only however many bytes will be used on one frame. For instance, if the sound effect sample is 0x100 bytes in size, and maybe enough of it plays in the space of one frame to require 0x20 bytes, it would upload the first 0x20 bytes the first frame, then the next 0x20 bytes to the same address the next frame (restarting the sample in the process), and so on for 8 frames total.

Originally posted by Kipernal
Originally posted by imamelia
I think I may have found a bug, or at least never thought of bringing it up until now. When you set the echo delay to 00, the buffer starts at $6000 instead of $FF00 like it should.


Just to be sure, does that also happen if echo is actually enabled (i.e. you're not just using $EF but also $F1)? Because if not then it's not an issue; echo is disabled until $F1 is used.

Yes, it does that even when $F1 is used. This SPC is an example.

Anyway, it's nice to see an update. Aren't you glad to be done with finals and have more free time now? (Or, at least, I would hope so...)

----------------

I'm working on a hack! Check it out here. Progress: 64/95 levels.
Originally posted by imamelia
With no ARAM write command, we can no longer run code in custom sound effects.

You can use #asm and #jsr for code in sfx, unless I'm missing something. The first one defines a subroutine, the other one JSRs to it (or to whatever label from the spc700 source if I got it right).

Unrelated, but there's something weird going on with the BBCode at the end of your post (that ] should be [/url] I'd say).
...How could I have forgotten about those? Although, on that note, those commands don't seem to be mentioned in the readme either.

----------------

I'm working on a hack! Check it out here. Progress: 64/95 levels.
Not sure if this is a bug with SMW or the Addmusic itself but when Mario jumps this happens:

SPC

(In case you need the txt and its samples, let me know).
I tried AddmusicK on a ROM which has these patches:
- Sprite status bar v1.1.1
- Layer 3 ExGFX
- uberASM
- Stripe Image Uploader
- Time up fix

When I load the game it just shows a black screen, but it works if I use Addmusic 4.05 instead of AddmusicK. Any ideas?
I'm having a similar problem. I applied quite a few patches, but uberASM and a version of the Layer 3 ExGFX patch were among them.

----------------

I'm working on a hack! Check it out here. Progress: 64/95 levels.
AddmusicK hijacks a bunch of addresses and unfortunately some patches are use them and that's why you gonna get a black screen.

I remember though that I converted some patches to work with this tool although I can check those patches and see if I can come up with a fix.

E: imamelia, Layer3ExGFX patch is included in my pack.
Well, I'm using the Layer 3 Customizer patch, which includes the Layer 3 ExGFX patch, so I can't just patch it separately (although I could look at the code and change the other patch to match, unless it's too complicated). Does anyone know which patches are incompatible with AddmusicK anyway?

Edit: Okay, I have possibly one or two other patches that seemed to be causing problems...and then they weren't. And the Layer 3 Customizer patch is causing trouble even after commenting out or changing the $00A0B3 hijack.

Edit 2: Apparently, it's the $009FB8 hijack that is the problem. There is something from $009FB8 to $00A06B that AddmusicK doesn't like, although I checked all three patches and didn't even see anything in that area.

Edit 3: AddmusicK overwrites $0080E7, but the patch expects there to be an RTS at $0080E7. Changing the JML $0080E7 to JML $008438 or some other RTS in bank 0 fixes that. Now I just need to port everything over to a new ROM....

----------------

I'm working on a hack! Check it out here. Progress: 64/95 levels.
Well, that's pretty interesting. Do you think there is any chance to get the classic Layer 3 ExGFX working with AddmusicK, too? I would like to stick with it since I personally find it easier to use.
What's so much easier to use about it? Considering you have to use it in conjunction with another patch (such as the stripe image uploader) anyway...but actually, DiscoMan already made an AMK-compatible version of the Layer 3 ExGFX patch, although it deals with the conflict in a different way than I did.

Now, here's a feature request: Would it be possible to add a command (say, $F4 $09) for making the channel it is on loop independently of the others? Say I want channel #0 to be a quarter note longer than the others but loop a quarter note later. If I put $F4 $09 (or whatever) on that channel, then channels #1-#7 would all loop right before that last quarter note on #0 plays, then while said note is playing, the other 7 channels would be playing whatever comes in the quarter note immediately after the loop point, then #0 would loop back after playing that last note. Is this doable without completely rewriting the N-SPC engine?

----------------

I'm working on a hack! Check it out here. Progress: 64/95 levels.
The "What about AddmusicM songs?" step needs to be explained better.

I'm trying to do it with the Ota City Sky port by worldpeace but it really doesn't make sense.
Holiday update time! I had planned to get this out on Christmas day, but obviously that didn't work. So here's a...Boxing Day update I suppose?

At any rate, I think the program is basically finished. There are a few more things to wrap up but beyond that any glitches that are found from here on out can simply be fixed with minor tweaks.

Here's what's been added this time around:

- Support for the removal of AddmusicM.
- Updated source code.
- Fixed an instrument bug.
- Added syntax support for noise instruments. Instead of the sample in quotes, you put "nXX" (without the quotes), where XX is a hex value from 0 - 1F.
- Fixed a bug related to echo (did you know that ZSNES completely ignores the MUTE flag?).
- Fixed a bug related to noise (and also optimized some code while I was at it).
- A few updates to the readme.
- Replacements (the "=" command) can now be recursive.
- Replacements can now be used mid hex command.
- Fixed a minor crash that would occur in replacements if the text to replace with had a length of 0.
- The $DD command now accepts a note instead of a hex command for its last value.
- The program now inserts the text ";amk=1" at the bottom of all files that do not already have that text (in future versions the 1 will be replaced by the version number).
- Finally, finally, finally fixed all P-switch, star, and goal music bugs. ...hopefully.
- Possibly Probably others.

Originally posted by X-cniS
Actually, what I should have said is; is it possible to use custom instruments with samples from a custom sample group? The normal method of loading samples doesn't work, apparently. I've read through the readme numerous times but I haven't found anything on the matter. Thank you.


It should be possible--in fact I'm almost certain it is. Just use the sample's name like you normally would if the song itself were defining it instead of a sample group.

Originally posted by Masterlink
Sure. Here it is.

Though, now the errors that trows are "Unknown HEX Command".


That one song helped me find a ton of obscure quirks related to the replacement command, and they have all been fixed. Thank you.

Originally posted by Masterlink
Edit: Eh, do you changed something about the echo on SFX? Because I used the code you gave me time ago (LDA #$07 : STA $1DFA) and it's like it wasn't there.


Accidentally, yes. Looks like instead of that making all sound effects use echo, it accidentally made all music channels use echo...whoops. At any rate; it's been fixed. Thank you. (But it's LDA #$06, not #$07).

Originally posted by mario90
Back when this was first released I asked about using other SFX samples, and you said you could do that by adding more lines under the SFX insturments in Insturmentdata.asm then you use @19+ to call them in sound effects. That's been working all up until now. They just play garbled messes.


Just to be sure, you aren't accidentally overwriting your changes with each new update, right? It might seem like a stupid question, but I can't think of any other reason why this would happen.

Originally posted by mario90
As for the sound effect only being able to be 1 second long, lets just say the sample itself exceeds a second in length. Then when inserted and used, it cuts off at around 1 second.


Does the sample play correctly if used in normal music? Are you using long enough durations (like c1^1 or something?). Again, might be stupid questions, but I need to make sure before I go on a wild goose chase.

Originally posted by imamelia
For that matter, why isn't $F9 mentioned?


Because I forgot it. Thanks for mentioning that.

Originally posted by imamelia
That would be a lot of space, but it could work, with the proper modifications to the engine. What I had in mind, though, was more like uploading only however many bytes will be used on one frame. For instance, if the sound effect sample is 0x100 bytes in size, and maybe enough of it plays in the space of one frame to require 0x20 bytes, it would upload the first 0x20 bytes the first frame, then the next 0x20 bytes to the same address the next frame (restarting the sample in the process), and so on for 8 frames total.


That's getting a bit too specific to be included in the main program. If you are willing to program it yourself, though, and it doesn't conflict with existing code, I could add it.

Originally posted by imamelia
Yes, it does that even when $F1 is used.


That should be fixed now; thank you.

Originally posted by imamelia
Anyway, it's nice to see an update. Aren't you glad to be done with finals and have more free time now? (Or, at least, I would hope so...)


Now I should...

Originally posted by imamelia
Although, on that note, those commands don't seem to be mentioned in the readme either.


More fixed.

Originally posted by Masterlink
Not sure if this is a bug with SMW or the Addmusic itself but when Mario jumps this happens:


I fixed a number of bugs and was unable to reproduce anything like that afterwards. If the bug you're getting does still exist, then yeah, I'll need the song and its samples if you don't mind.

Originally posted by various people
Layer 3 ExGFX issues


Yeah, I've mentioned this before but that patch does a rather ugly hijack that messes up AMK. To fix that, all you should need to do is find "JML $00810E" in Layer3ExGFX.asm and replace it with "JML $0084C7".

Originally posted by imamelia
Now, here's a feature request: Would it be possible to add a command (say, $F4 $09) for making the channel it is on loop independently of the others? Say I want channel #0 to be a quarter note longer than the others but loop a quarter note later. If I put $F4 $09 (or whatever) on that channel, then channels #1-#7 would all loop right before that last quarter note on #0 plays, then while said note is playing, the other 7 channels would be playing whatever comes in the quarter note immediately after the loop point, then #0 would loop back after playing that last note. Is this doable without completely rewriting the N-SPC engine?


It wouldn't require rewriting the engine or anything, but it would require a sufficient amount of new code that I'm not sure it would be worth it. Whatever you'd save in your song with this new command would surely be lost with the sheer amount of code it would take to get that command working.

Originally posted by KY2010
The "What about AddmusicM songs?" step needs to be explained better.

I'm trying to do it with the Ota City Sky port by worldpeace but it really doesn't make sense.


Alright; I added an example to that section. Hopefully it helps a bit.
I should get a new layout.

Probably won't, though.
Good to see a lot of bugs being fixed! :D

Not too be pushy or anything, but you are going to add the r and space between notes using decrease gain feature right?
________________________________________________________
Mario the Gaul
Kipernal,will you release that beta AddmusicK now?
Link Thread Closed