-
Notifications
You must be signed in to change notification settings - Fork 785
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Update audio macros and arguments #650
Conversation
and update related labels/constants/comments this fixes a lot of mistakes and maximizes compatibility with red
|
|
|
I'll preface this by saying that I haven't ever written my own song for First of all, and I know this is kind of a pain in the ass to do, but you Second of all, you should make sure that old songs still build with your Now, for more specific comments: sound → square_note The Are you sure As for the Red compatibility macros, why do we want this? Will these macros |
@mid-kid has covered everything I'd comment about this. :P One thing: since some commands only make sense in a particular channel, it might be worth adding a |
Yep, I'm working on it.
I'll take care of this too.
I think
Yes, I'm sure. Before the arguments for
There are 2 problems that prevent song files from pokered being thrown straight into pokecrystal without any modification. The only exception is that the This nice short list of only 2 necessary changes is only possible with these alias macros.
Because they aren't the same macros. In the case of
Not sure what you mean by this.
I usually agree, but this bit of abstraction goes a long way for compatibility with pokered. Same thing with |
I think that's a lot of overhead and doesn't provide any kind of robust protection. |
I have only one request: if this makes it in, please update pokegold as well. |
Yep, I plan on it. And pokeyellow |
and use dn instead of db for volume envelope and pitch sweep
Addressed everything except for the docs, will do that tomorrow |
Does anyone know why there is both: Seems unnecessary |
"Sound engine commands" was one of the few pages on the old wiki; I didn't delete it since maybe not all of the info was in music_commands.md. |
In case you haven't done this yet (I can't see it, but idk if I'm looking
Here in pokecrystal we don't really care about the macro argument order
It seems kind of weird to advocate for making sure macros match the binary That said, I guess However, |
EDIT: I take it back, they are parsed differently, and the macros seem to be implemented properly. |
My reasoning for this is mostly that if things might behave even slightly differently, it's better to error hard instead of assuming the wrong actions without warning, so the user has more to work with when porting a song from Red to Crystal or the other way around. |
I have already done this, but not with the lowercase format you are asking for.
Sigh. Based on my other comments it's pretty obvious that I am in favor of appropriate abstraction when there is a good reason for it. And until there is a good reason, using the same order as they are used in the rom is a fine default. My position is not as contradictory as you're trying to make it.
Sigh. My point is not just to appeal to how things have always been. The whole point of this is to give pokered and pokecrystal the best reasonable compatibility. pokered has used
Huh? I was following you until the end. When you say "Maybe this command" which command exactly are you referring to?
That's a fair point. But..
Why? The purpose, format, and effect of
Huh? They are processed by the same routine,
That might technically be true... But again, when the purpose, format, and effect of In addition to being pretty pointless, this also complicates my parser/dumper that generates these files for no good reason. |
Which ones are you referring to?
|
Exactly, what makes this "SFX format" and not "Arbitrary square wave format"
I thought they were more different than what seems to be the case, but beyond
I said this before I realized
If As for |
When a song is started (using channels 1-4) bit Functionally speaking, I think On a conceptual level, being "song-based" and being "pitch-based" are virtually synonymous, and being "sound-effect-based" and being "non-pitch-based" are virtually synonymous so I don't see what the issue is.
What? It does accept one argument.
Because it is a toggle. A name like But that does make me realize something about using Because of these caveats, I can agree that maybe the compatibility macros EDIT:
No, |
The issue is mostly that
Sorry, I meant it can be made to accept zero arguments.
Implementing something like that is imo a bit out-of-scope for this repository, reimplementing a pokered music command using macro magic sounds like a slippery slope (not to mention the state of |
Then I think that issue mostly comes from
Yeah, I agree. I apologize, I think I edited my comment after you started typing your response.
In pokered, when As far as "This is an obvious behavioral difference that should be addressed when porting the song", I agree. This PR does nothing to try to handle this incompatibility. |
Sorry, I had missed this part in your edit. I completely agree. Either a tutorial on the wiki on how to port a song, or simply a list of commands that differ between the games with possible caveats would make it easy to port a song, while making it easier to spot problems while doing so. |
Can this be updated and the conflicts resolved? |
and remove the pokered compatibility macros
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Once you're done making your final changes, this can be merged. Everything looks good.
It should be tested if old songs still work without modification, however.
I already fully tested the new macros/scripts/audio.asm and macros/legacy.asm on the old audio/music/, and audio/sfx.asm files etc. I can do a final re-test before merging. |
Before merging, I hope we can get feedback from at least one of the people who demixes or writes music for pokecrystal. The legacy macros will allow old music files to still work, but the command changes ought to be helpful for actually hand-writing music, or processing it with custom tools. Let's also merge pokered PR 223 simultaneously. |
I am someone that hand-writes songs for pokecrystal and pokered :)
That's the idea :) |
Fair enough. :P Still, it's easier to understand the new API when you've designed it. |
to clarify a few caveats about some macro parameters
I see the updated music files still have .local labels; thank you for that. Is the conversion tool already updated to output those? The docs aren't complete, but they never were. :P Overall it looks good! It'll be nice to have similarity with pokered. |
and update related labels/constants/comments
this fixes a lot of mistakes and maximizes compatibility with red
Addresses #556 and goes along with pret/pokered#223
docs/music_commands.md still needs updating but I figured I'd start the PR so people can review while I fix the docs