Commit graph

156 commits

Author SHA1 Message Date
tildearrow b9604c5729 GUI: new pattern cursor logic, part 1 - READ
this new pattern cursor logic will finally allow you to click on any
cell of the previous/next pattern and take you there
on top of that you'll be able to make selections that go beyond the
boundaries of a pattern

operations are not supported yet, so don't try it out!
it won't work properly until I adapt the code.
2025-06-27 20:37:23 -05:00
tildearrow c064cf089d prepare to fix pitch linearity issues 2025-04-01 14:11:45 -05:00
tildearrow 13b56870ec new demo song
by ALTMUS
2025-03-29 22:26:00 -05:00
tildearrow 00ad4e4a46 update copyright year 2025-01-28 18:49:19 -05:00
tildearrow 609001cd0f GUI: fix wave to sample conversion 2024-12-11 18:19:28 -05:00
Eknous-P f853feed4f requested changes 2024-12-11 18:04:10 -05:00
Eknous-P d26c8d576b damn 2024-12-11 18:04:10 -05:00
Eknous-P 5f299996df create sample from wavetable action 2024-12-11 18:04:10 -05:00
tildearrow 3634a51efd GUI: fix order nibble when move cursor with keys
issue #2170
2024-09-22 17:15:23 -05:00
Adam Lederer 572eb10e91 add cursor undo/redo actions 2024-09-02 15:51:01 -05:00
Adam Lederer d0f3e0fa58 GUI_ACTION_PAT_ABSORB_INSTRUMENT search through prior orders (also set instrument to none if no instrument found 2024-08-23 15:20:08 -05:00
alederer c5310d1855
Instrument editor undo (minus FixedQueue change) (#2094)
* add undo to instrument editor (check for diffs on the current DivInstrument in insEdit, record them in a stack)

* style fixes

* accidentally left some logs in

* typo in style fix

* cheat to avoid warning -Werror=class-memaccess on linux

* warn instead of assert on case where MemPatch application would exceed size of target buffer (which should never happen, if you're applying the patch to the same type it was generated from)

* instrument editor undo: don't check delta if no user input has come in that could potentially have dirtied the editor

* don't run a delta against cached instrument if not insEditOpen

* revert fixedQueue to before my 'fix' (if i touch it again i'll add unit tests)

* explicitly cast to (DivInstrumentPOD*) when memsetting DivInstrumentPOD in DivInstrument constructor, rather than relying on implicit memory layout

* use delete[] instead of free (whoops)

* MemPatch/DivInstrumentUndoStep -- remove clear() function (ambiguous whether it should free data, it only existed to set data to null after the swap, so just do that directly now). Also set data to null after delete.

* DivInstrument -- fix dangling undo-step pointers being created on duplicate (potentially leading to use-after-free), fix undo-step objects being shamelessly leaked

---------

Co-authored-by: Adam Lederer <adam@adamlederer.com>
2024-08-23 15:17:19 -05:00
alederer 28dc0b12a1
"Adopt instrument" action also adopts octave (#2095)
* push test

* remove test file

* add GUI_ACTION_PAT_ABSORB_INSTRUMENT action (set current instrument to channel's current instrument column)

* rename 'absorb instrument' to 'adopt instrument' (clearer), adopt octave as well, replace editor octave min/max numbers in the code with defines

* CRAP

* rename 'adopt instrument' back to 'absorb instrument'

---------

Co-authored-by: Adam Lederer <adam@adamlederer.com>
Co-authored-by: tildearrow <me@tildearrow.org>
2024-08-19 13:19:50 -05:00
tildearrow d3af810462 Revert "add undo to instrument editor (check for diffs on the current DivInstrument in insEdit, record them in a stack)"
This reverts commit 5c9fd69ac1.
2024-08-19 02:49:24 -05:00
Adam Lederer 5c9fd69ac1 add undo to instrument editor (check for diffs on the current DivInstrument in insEdit, record them in a stack) 2024-08-19 02:44:18 -05:00
alederer fca3ce02a7
Add action to set curIns based on current channel instrument at cursor (#2090)
* push test

* remove test file

* add GUI_ACTION_PAT_ABSORB_INSTRUMENT action (set current instrument to channel's current instrument column)

---------

Co-authored-by: Adam Lederer <adam@adamlederer.com>
2024-08-17 15:50:52 -05:00
tildearrow 9d77522efb GUI: prepare to add "save all assets" options 2024-07-27 04:35:21 -05:00
Natt Akuma bdc66ae33e SNES: add an option to not encode BRR with unstable filters
This is useful for seeking to anywhere within the sample using sample offset commands
2024-06-22 16:40:06 +07:00
tildearrow 00e0679442 the massive preparations - GUI 2024-05-26 19:31:17 -05:00
tildearrow 603249573a GUI: separate wantScrollList
issue #1894
2024-05-21 17:26:04 -05:00
tildearrow 542206bbb7 GUI: add action to move selected content
in pattern editor

TODO: CHECK FOR CVE
2024-05-06 23:24:57 -05:00
tildearrow 7f354705e3 GUI: finally add ability to change coarse editstep 2024-04-26 12:53:33 -05:00
tildearrow 4281b899cf GUI: fix duplicate entry in wave size selector 2024-04-17 17:35:41 -05:00
tildearrow e7a638fdd5 GUI: user preset saving and prepare edit window 2024-03-30 03:33:38 -05:00
tildearrow 11e492c897 Merge branch 'master' into minmod 2024-03-17 15:44:38 -05:00
cam900 c1773e09f3 Add NDS sound support
TODO:
- IMA ADPCM
- Instrument color, icon
2024-03-17 15:17:30 -05:00
Natt Akuma 2b9dd1caff Add GBA MinMod driver support 2024-03-16 15:08:13 +07:00
Natt Akuma f3705fb435 WIP add GBA system 2024-03-16 15:06:25 +07:00
tildearrow 2290f3d873 a better command stream debugger 2024-03-08 17:53:37 -05:00
tildearrow b0db9b8ff7 more preparation 2024-02-26 00:16:36 -05:00
tildearrow a6aa4b66d1
Merge pull request #1160 from YohananDiamond/command-palette
undefined

WAHAHA nice one GitHub
see? that's why I hate JavaScript. couldn't you throw exception on out of bounds/undefined result, like EVERY normal language?
2024-02-07 02:53:33 -05:00
Colin Kinloch 8d36ab5909 Default exit shortcut to zero 2024-02-04 12:38:44 -05:00
Colin Kinloch b2d61b1d3a Add Ctrl+Q to quit 2024-02-04 12:38:44 -05:00
YohananDiamond c9d57d4c6f Merge branch 'master' of https://github.com/tildearrow/furnace into command-palette 2024-02-03 19:30:59 -03:00
tildearrow 5224c4666d more work that I did not push 2024-01-29 23:08:20 -05:00
tildearrow 311814f34a great 2024-01-28 22:52:07 -05:00
tildearrow 4d777bf877 you know what, new labels 2024-01-28 15:03:19 -05:00
tildearrow b600be9b26 GUI: prepare to add "make me a drum kit" 2024-01-28 02:38:20 -05:00
YohananDiamond 8ab1c414b9 Merge branch 'master' of https://github.com/tildearrow/furnace into command-palette 2024-01-18 13:58:02 -03:00
Kagamiin~ 514c642b60 Fix ESFM blank instrument; fix ESFM envelope drawing
Co-authored-by: LTVA1 <87536432+LTVA1@users.noreply.github.com>
2024-01-17 12:00:30 -05:00
tildearrow 88b42ddd58 update copyright year 2024-01-16 21:26:57 -05:00
YohananDiamond 34e18fffad Merge branch 'master' of https://github.com/tildearrow/furnace into command-palette 2023-12-27 20:57:24 -03:00
tildearrow 15f0f50def part 2 of more work 2023-12-22 18:23:11 -05:00
tildearrow f80340ebcc more work 2023-12-22 15:43:41 -05:00
tildearrow e2940ca385 Merge branch 'master' into exportwin 2023-12-21 19:08:09 -05:00
YohananDiamond c8975eaf73 Merge branch 'master' of https://github.com/tildearrow/furnace into command-palette 2023-12-19 09:26:30 -03:00
tildearrow a540de4570 GUI: fix wave creation 2023-12-09 22:16:58 -05:00
tildearrow bd7e57cea8 GUI: use best wave size when adding wave
or display a menu

TODO: fix non-32×32 wave being messed up
2023-12-09 20:01:33 -05:00
Eknous-P df63257d11 dummy export window, keybind and related settings 2023-12-05 15:58:45 +04:00
LeviathaninWaves 6c379d24df More renaming 2023-12-02 19:07:04 -06:00