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

Advanced music creation #1930

Open
JustJoshingYa opened this issue Jul 9, 2024 · 2 comments
Open

Advanced music creation #1930

JustJoshingYa opened this issue Jul 9, 2024 · 2 comments
Labels
feature request New Feature or Request

Comments

@JustJoshingYa
Copy link

JustJoshingYa commented Jul 9, 2024

The sprig editor and spade engine could use some advanced music creation elements to make music on the sprig more enjoyable to listen to and create more advanced sound effects like explosions.

Suggested Features

  • Pitched notes:
    ex: C sharp, G sharp, etc.
    The audio.h library should support it on the C side.
    For UI implementation, the piano roll of the audio editor can stay the same except when you place down a note. Left clicking the notes you've placed down again would turn the note into a sharp, denoted by the # instead of the picture of the wave you are using. The color of the wave you use stays the same to show what wave you are using. You would still have right click to clear the note if needed or if you click a third time. The # will be used in code (C#4-150) or if symbols mess up the code, lots of tone libraries (https://github.com/bhagman/Tone/tree/master) use S to show what note is sharp (CS4-150).

  • Include the lower notes range:
    ex: From C4 to A3.
    To access these in UI, scroll can be used to look down and see the lower and higher notes. The notes could be labeled (C3 , A5, G#4) at the beginning of the piano roll to make finding the note you want easier to use.

  • Different note lengths
    ex: Half note, Eighth note
    This is a liitle difficult because of how the UI is currently setup with left clicking putting notes down and removes them with a second click. Many piano roll music creation websites like www.beepbox.co utilize dragging when you select where you place the note to change the length of a note. In code, a letter assigned with each note at the end of the note string (C#4-150A) could be used to denote how long the note lasts, then can be parsed out at the end.

  • Percussion:
    ex: Noise channel
    Just add one more line to the audio editor for percussion for UI. Since generating a noise wave requires a random value generation that could make game slower every time it is called, a prerecorded WAV file could be put into an array to be played simultaneously with the music generated from the tone library. This would be similar to the Arduino PCM library https://github.com/damellis/PCM . Different WAV files for different use cases could be chosen within the editor via multiple left clicks like I mentioned in the pitched note suggestion. This WAV files could be stored in the GitHub but only wav files that are used in any tunes for one game should be pulled to save storage space in the pico.

With these elements, better music can made for sprig games that won't compromise on the retro aesthetic and hardware limitations

@JustJoshingYa JustJoshingYa added the feature request New Feature or Request label Jul 9, 2024
@grymmy
Copy link
Contributor

grymmy commented Aug 2, 2024

This needs to be broken up into separate individual feature requests

@whatwareweb
Copy link
Contributor

All of the features listed except percussion are already supported in the sprig engine, they're just not in the editor. So everything except percussion should be a pretty easy UI change

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
feature request New Feature or Request
Projects
None yet
Development

No branches or pull requests

3 participants