chrismaltby / gb-studio

A quick and easy to use drag and drop retro game creator for your favourite handheld video game system
https://www.gbstudio.dev
MIT License
8.59k stars 474 forks source link

Music tracker improvements #854

Open DuendeInexistente opened 2 years ago

DuendeInexistente commented 2 years ago

Is your feature request related to a problem? Please describe. The music tracker makes several menial tasks take several minutes when they could be seconds

Describe the solution you'd like -If I click to create/destroy a note, then hold and drag, this should continue creating or deleting notes on every tile I pass over. Creating undo events when the click starts then every ~5 or so notes would make accidentally overwriting notes easy to fix too.

-There should be a way to create, move, copy and paste selections, maybe holding shift while dragging and/or having it's own button in the tools bar.

-Setting loop zones within patterns. As this isn't a hugetracker feature (Afaik) it'd shift focus from simply being a uge editor to being a layered editor that exports to uge format, might be undesirable. More complicated interfacewise than the others but the way I visualize it is as this: image

In (1), the loop set sets the pattern which is then looped in the loop area, which could not necessarily be contiguous to it. More complicated, turns loop sets into a sort of pattern-within-the-pattern. In this case it might be better to just implement a pattern object that can be made then dropped into the pattern editor.

In (2), the loop is just a zone. You edit the pattern, and it loops it from the beginning to the last defined note. Should have some way to tell you if the pattern isn't a length that correctly loops in the defined length. Much simpler to implement but not nearly as flexible. Gained simplicity would be worth imo.

darkhog commented 2 years ago

The second thing can be easily achieved by the jump to position tracker effect (Bxx).