Skip to content
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

Improved Music System #218

Open
jkotlinski opened this issue Oct 16, 2019 · 2 comments
Open

Improved Music System #218

jkotlinski opened this issue Oct 16, 2019 · 2 comments

Comments

@jkotlinski
Copy link
Owner

This will likely not ever be done, BUT, e.g. Blazin' Forth seems to have a better music system in that:

  • It is interrupt driven, so music can play while a graphic effect is rendered
  • It uses Forth commands rather than MML strings, which has pros and cons...
    • Good: Using Forth commands instead of strings removes the need of supporting 16-bit string lengths
    • Good: It becomes somewhat easier to make algorithmic music
    • Bad: Using Forth commands removes MML compatibility, so it is not possible to reuse music made for other platforms

At least it seems like a very good thing to have an interrupt driven music player. Right now this is very LOW priority but can be bumped on request.

@jkotlinski
Copy link
Owner Author

For most practical cases like games and demos, music would likely be made using a separate music editor that has its own player, written in assembly. Having said that, this could still be interesting for creating algorithmically generated music in Forth.

@gitjeff2
Copy link

@jkotlinski on a related note, the FIMML implementation of MML is fully documented (Japanese, but Google Translate handles it just fine). I don't know if you're interested in extending Durex Forth's MML dialect or not but there are a lot of good features here like volume control, etc.

I think some NES development tools may use this dialect of MML as well.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants