Commit graph

167 commits

Author SHA1 Message Date
tildearrow
5b145b7121 multiple instrument playback, part 1
not implemented for MIDI yet
2025-10-31 19:36:13 -05:00
tildearrow
f77aafb44d reference player prototype
poor performance
no playback sync yet
2025-10-27 05:15:47 -05:00
tildearrow
2b745cac62 pattern data refactor, part 7 2025-10-16 05:11:09 -05:00
cam900
1b712e03ee Add notifySampleChanged in dispatch and engine:
This method/variables are for notify sample is changed/altered/added/removed.  can be called together with updateSampleTex for sample update.

multipcm: Fix possible desync with instrument and sample parameter

opl4: Split sample table render and sample data render, Add notifySampleChange for refresh sample parameters
2025-10-01 12:31:39 +02:00
Eknous-P
3d9f1b7f5c fix wavetable to sample not using full range 2025-09-29 23:44:12 +04:00
tildearrow
8dbd732db9 GUI: randomize notes + button to open pat menu on
mobile
2025-09-20 21:48:18 -05:00
tildearrow
e5ad462cd2 GUI: new pattern cursor logic, part 20
oh yes
2025-07-18 05:05:56 -05:00
tildearrow
75b958b78a GUI: prepare order lock selection confinement logi 2025-07-16 19:22:11 -05:00
tildearrow
203cb04758 GUI: order lock button... 2025-07-16 05:07:22 -05:00
tildearrow
853111b99d GUI: new pattern cursor logic, part 16
fix a couple order change-related problems
2025-07-05 04:19:18 -05:00
tildearrow
15a3a4b82d guI: new pattern cursor logic, part 15
latch
2025-07-04 04:44:58 -05:00
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