Commit graph

1073 commits

Author SHA1 Message Date
cam900
9df2500195 Merge branch 'master' of https://github.com/tildearrow/furnace into ay_divider
* 'master' of https://github.com/tildearrow/furnace:
  GUI: macro UI refactor, part 2
  Masochism Volatile Compiler
  GUI: is the macro UI back yet
  OPL: fix 4-op muting (I think)
  GUI: macro UI refactor, part 1 - PLEASE READ
  GUI: remove classic macro view
  Fix more MSVC warnings
2022-05-07 23:04:01 +09:00
tildearrow
d4d3cb44b9 GUI: macro UI refactor, part 2
the macro editor is finally back
2022-05-07 02:49:56 -05:00
tildearrow
ff273cc3b9 Masochism Volatile Compiler 2022-05-07 00:08:38 -05:00
tildearrow
aea7bf2112 GUI: is the macro UI back yet 2022-05-06 23:52:26 -05:00
tildearrow
716ef56f03 GUI: macro UI refactor, part 1 - PLEASE READ
- DO NOT USE THIS VERSION! -

to @cam900 and @grauw: do NOT pull this commit yet! it will fail to compile!
2022-05-06 18:01:12 -05:00
tildearrow
81a77a633b GUI: remove classic macro view
after this, some changes to the macro view code will arrive
hopefully these will make the code much cleaner
(NORMAL_MACRO has too many arguments!)
2022-05-06 14:16:27 -05:00
cam900
76997fd5ba
Merge branch 'master' into ay_divider 2022-05-06 19:17:34 +09:00
tildearrow
4548cae022 Merge branch 'multipcm-ins' of https://github.com/grauw/furnace into grauw-multipcm-ins 2022-05-05 21:16:56 -05:00
tildearrow
5ba1833f74 GUI: I am so drunk 2022-05-05 18:23:28 -05:00
tildearrow
6672a886a3 GUI: fix crash when loading instrument
fixes #431
2022-05-05 17:45:18 -05:00
Laurens Holst
3784c4e1d2 MultiPCM instrument type, editor and file ops. 2022-05-05 21:56:48 +02:00
tildearrow
9a2938ff3e GUI: fix values button working as notes 2022-05-05 13:23:06 -05:00
cam900
96f303ac9f Fix configuration description 2022-05-05 15:43:59 +09:00
tildearrow
9915fc0c8f GUI: add "don't display multi-system" option 2022-05-05 00:52:15 -05:00
tildearrow
030ba9eaf1 GUI: implement this on the keybind as well 2022-05-04 23:49:33 -05:00
cam900
9109d2c64f Merge branch 'master' of https://github.com/tildearrow/furnace into ay_divider
* 'master' of https://github.com/tildearrow/furnace:
  dev92 - GUI: customizable channel collapsing!
  GUI: more improvements to instrument loading
  GUI: implement instrument load replace
  NES: fix duty effect not working at all
  GUI: part 2 of previous commit
  GUI: only use edit color when pat view is focused
  GUI: fix more issues
  here's the new OPLL default instrument
  OPL: fix channel muting - PLEASE READ!
  OPLL: fix compatible drum mode
  the final part of extra FM effects
  implement extra FM effects (OPLL and OPL)
  update to-do list
  prepare for possible .ftm import
  implement extra FM effects (OPN, OPM and OPZ)

# Conflicts:
#	src/engine/engine.h
2022-05-05 13:39:58 +09:00
tildearrow
202a528477 dev92 - GUI: customizable channel collapsing! 2022-05-04 23:36:03 -05:00
tildearrow
c3e55ae117 GUI: more improvements to instrument loading
now with an "instrument load always replace" option
2022-05-04 23:11:51 -05:00
tildearrow
99a313b684 GUI: implement instrument load replace 2022-05-04 22:55:11 -05:00
tildearrow
10e8d71745 GUI: part 2 of previous commit 2022-05-04 22:01:19 -05:00
tildearrow
71cef797c6 GUI: only use edit color when pat view is focused 2022-05-04 20:56:26 -05:00
tildearrow
44f1134875 GUI: fix more issues
- macro range is now 128 (it was 127 before)
- fix #407
2022-05-04 18:42:36 -05:00
tildearrow
6e7b4d7e7f the final part of extra FM effects 2022-05-04 17:39:22 -05:00
tildearrow
6bd5a9bcb6 prepare for possible .ftm import 2022-05-04 14:10:28 -05:00
cam900
4f1ebc3b6e Some AY-3-8910, AY8930 enhancements
Fix AY PSG clock divider function when exists, Update emulation core (MAME AY PSG and compatibles - includes noise routine updates)
Fix configuration flag, Add MSX Darky sound expander to preset

Clock divider isn't affected to expanded mode's tone and noise generator?
2022-05-04 23:04:20 +09:00
tildearrow
b8a2c90b61 GUI: add audio load meter to statistics 2022-05-03 02:29:12 -05:00
tildearrow
7d684654fc
Merge pull request #413 from cam900/osc_debug
Debug improvements
2022-05-03 01:51:18 -05:00
tildearrow
c23ee8e7c9 GUI: put "OK" and "Cancel" buttons in the bottom 2022-05-03 01:48:57 -05:00
cam900
0d5962bb08 Reduce unnecessary line 2022-05-03 10:28:01 +09:00
cam900
2412f688de Merge branch 'master' of https://github.com/tildearrow/furnace into osc_debug
* 'master' of https://github.com/tildearrow/furnace:
  document (NON-WORKING) extended op param effects
  FDS: add NSFPlay core
  NES: fix Furnace-style DPCM
  SoundUnit: fix PCM pitch
  SoundUnit: PCM support

# Conflicts:
#	src/gui/debugWindow.cpp
2022-05-03 10:23:36 +09:00
cam900
3f0c83eb45 Debug improvements
Add oscilloscope debug, Hideable sample debug
2022-05-03 10:20:20 +09:00
tildearrow
62289d924e FDS: add NSFPlay core 2022-05-02 16:53:55 -05:00
tildearrow
a6ef36d42e SoundUnit: PCM support 2022-05-02 14:51:06 -05:00
tildearrow
5a724e4949 NES: DPCM work! 2022-05-02 03:42:40 -05:00
tildearrow
5adc29906a
Merge pull request #410 from grauw/dispatch-render-samples
Move renderSamples() to DivDispatch implementations.
2022-05-02 00:25:58 -05:00
tildearrow
cb7aa4aa05 NES: wire up NSFplay
no muting supported for now
see #27
2022-05-01 23:20:20 -05:00
tildearrow
2c9bad3b3d per-channel oscilloscope, part 9
work in progress!
2022-05-01 18:29:16 -05:00
Laurens Holst
7f0074511c Move renderSamples() to DivDispatch implementations.
To prevent rendering samples for systems that are not in use.

Additionally, it gives the systems more flexibility to render the samples
according to their specific configuration.
2022-05-01 23:23:38 +02:00
tildearrow
e1fd16637c per-channel oscilloscope, part 4
OPM, OPN2, OPLL and SN
plus hide unimplemented channels
2022-04-30 22:59:26 -05:00
tildearrow
312a037816 GUI: add missing actions to settings 2022-04-30 17:50:38 -05:00
tildearrow
b3b747a67a
Merge pull request #406 from akumanatt/patch-1
Have host sound chip appear before expansions
2022-04-30 14:28:27 -05:00
tildearrow
4197fa44fb GUI: prepare for a per-channel oscilloscope?
currently supported systems:
- Amiga
- AY-3-8910
- Dummy System
- OPLL
- SegaPCM

no trigger supported yet!
2022-04-30 03:58:30 -05:00
tildearrow
ba657fe4db GUI: add backdrop if system file picker is open 2022-04-30 02:02:55 -05:00
tildearrow
52c0044bd9 GUI: add ability to customize startup system 2022-04-30 01:37:37 -05:00
Natt Akuma
9f49504891
Revert PC speaker presets 2022-04-30 11:59:47 +07:00
tildearrow
d79e5d77a7 GUI: finally implement "don't scroll when moving c
ursor" setting
2022-04-29 23:53:15 -05:00
tildearrow
2e8634626d new panning effects (80/81/82) 2022-04-29 23:41:14 -05:00
tildearrow
9c4fed2f4e GUI: fix sample paste crash 2022-04-29 22:41:07 -05:00
tildearrow
a8da4f0dba GUI: implement sample scroll with mouse wheel 2022-04-29 17:55:22 -05:00
tildearrow
635bd72904 GUI: sample/macro zoom with ctrl-wheel 2022-04-29 05:39:18 -05:00
tildearrow
aeea8a4912 GUI: prevent division by zero 2022-04-29 04:42:18 -05:00
tildearrow
dbf4635646
Merge pull request #405 from ZoomTen/chip-randomize
add chip randomizer button (enhancement)
2022-04-29 04:38:27 -05:00
tildearrow
0817fdeb84 GUI: possibly fix an instrument saving issue 2022-04-29 04:34:20 -05:00
Natt Akuma
a9a01bad4a
Have host sound chip appear before expansions
So that they are consistent with NES expansions.
For X16, the VERA is more integral to the system and has lower I/O address than YM2151
and YM2151 was once an expansion chip during development.
2022-04-29 16:32:30 +07:00
Zumi Daxuya
ee4d4c4251 GUI: add chip randomizer button 2022-04-29 15:56:16 +07:00
tildearrow
5567746e0b QSound: implement panning macro - PLEASE READ
the panning strategy for QSound has changed!
it's now 08xy where x is left and y is right (muting is not possible though!)
this makes it consistent with other chips, plus QSound's pan range was
32 anyway

in order to toggle the QSound effect use effect 12xx
2022-04-28 23:58:11 -05:00
tildearrow
859b2cf8db implement channel swapping
issue #378
2022-04-28 03:36:15 -05:00
tildearrow
d211170e86 implement relative pitch macro mode 2022-04-28 01:31:16 -05:00
tildearrow
66f5b2117f dev90 - linear pitch macro option 2022-04-28 00:26:21 -05:00
tildearrow
4a9855f090 dev89 - C64: add test/gate macro
and "don't test/gate before new note" setting
2022-04-27 23:54:45 -05:00
tildearrow
ff33eed2fd GUI: improve the maximize auto-detection a bit 2022-04-27 20:43:34 -05:00
tildearrow
f057581b27 GUI: possibly remember maximized state 2022-04-27 20:40:30 -05:00
tildearrow
dce862fdb9 SoundUnit: more stuff 2022-04-27 18:28:46 -05:00
tildearrow
410a509d73 SoundUnit: max cutoff 16383 2022-04-27 18:03:24 -05:00
tildearrow
3306e853d1 effectRows -> effectCols
i don't know why did I call it "rows"
2022-04-27 17:53:55 -05:00
tildearrow
9eaf600b4b GUI: rename Amiga/Sample to Sample 2022-04-27 17:44:00 -05:00
tildearrow
c171f3255a
Merge pull request #371 from BlastBrothers/compact-wave-editor
Compact wave editor
2022-04-27 15:02:23 -05:00
tildearrow
78bdd98e0b improvements to sysDef and UX changes
- "no undo" in clear option
- only display instrument types depending on current systems
2022-04-27 04:48:56 -05:00
tildearrow
24d60507e7 sysDef refactor, part 2
to @cam900 and @grauw: you may now pull this to your branch.
check out the comments in sysDef.cpp though.
2022-04-27 00:56:15 -05:00
tildearrow
e8f29cf122 prepare for macroInt preview in instrument editor 2022-04-26 15:24:45 -05:00
tildearrow
9eb9561b53 GUI: fix #400 2022-04-26 01:07:28 -05:00
cam900
584e97f313
Missing header 2022-04-26 09:20:41 +09:00
tildearrow
e8c9b645c5 GUI: implement instrument preview in file dialog
SADLY it's just for the built-in file dialog
but i'll think of a solution for the external one
2022-04-25 18:58:17 -05:00
tildearrow
b3f1935f2b GUI: prepare for more UX improvements
- add "temporary instrument" to DivEngine
- prepare for two things:
  - instrument preview on file picker (at least built-in one)
  - instrument selector for banks (#364)
2022-04-25 18:23:12 -05:00
tildearrow
2a952b1a66 dev87 - C64 changes
issue #335
2022-04-25 17:55:48 -05:00
tildearrow
8ba2787160 GUI: add two ImGui settings 2022-04-25 16:46:38 -05:00
tildearrow
f3f92b8035 GUI: deprecate compat rate 2022-04-25 15:07:36 -05:00
tildearrow
7b79c32258 increase range of arp macro to 120 2022-04-25 14:58:58 -05:00
tildearrow
ed6820ac46 GUI: fix cursor going out of bounds on paste 2022-04-25 11:23:44 -05:00
tildearrow
bd68ef5cc3 dev86 - SN duty macro phase reset fix 2022-04-24 18:12:18 -05:00
tildearrow
521b311692 GUI: implement clear 2022-04-24 17:39:18 -05:00
tildearrow
e414056f2d prepare for a clear option 2022-04-24 16:57:58 -05:00
tildearrow
bb4bc01778 Merge branch 'newpitch' 2022-04-24 14:41:12 -05:00
tildearrow
23be8d9336 the final piece of f-num/block work 2022-04-24 14:40:07 -05:00
tildearrow
6493a0481c i hate this 2022-04-23 13:39:00 -05:00
James Alan Nguyen
3865e3eac6 #79: OPNI support added...... 2022-04-24 03:49:01 +10:00
James Alan Nguyen
6bd199923f OPLI progress... still figuring out correct readings 2022-04-24 02:37:25 +10:00
James Alan Nguyen
a049e43618 #79: .y12 import done 2022-04-24 00:45:19 +10:00
James Alan Nguyen
3550ad512a OPM import: Fix reset read procedural flow 2022-04-23 20:20:29 +10:00
tildearrow
9c8d122389 GUI: use pattern font for input latch 2022-04-22 01:27:27 -05:00
tildearrow
2278c1a465 GUI: partially implement note input latch UI 2022-04-21 18:30:32 -05:00
tildearrow
bd58059261 GUI: transpose value does not transpose effect ID 2022-04-21 18:11:34 -05:00
tildearrow
50deead11a GUI: prepare for note input latch UI 2022-04-21 18:10:59 -05:00
tildearrow
7410622425 GUI: min ins selector width fix 2022-04-21 17:39:13 -05:00
tildearrow
023761373d GUI: separate operation masks
also separate note/value transpose commands
2022-04-21 17:32:28 -05:00
tildearrow
521bb9c16a GUI: add missing FDS preset 2022-04-21 16:01:46 -05:00
tildearrow
bc235ed494 GUI: prepare for separate operation mask 2022-04-21 03:45:06 -05:00
tildearrow
21c4d09c06 GUI: "none" instrument should not remove inscolumn 2022-04-21 03:26:34 -05:00
tildearrow
bfdfac004f GUI: fix ins 0 being inserted on blank song 2022-04-21 03:22:01 -05:00
tildearrow
dba9482cee GUI: add a "none" option to instrument list 2022-04-21 02:53:09 -05:00
tildearrow
06a69a20e8 GUI: add "absorb" instrument input mode 2022-04-21 02:35:50 -05:00
tildearrow
73a4552e09 Merge branch 'master' of github.com:tildearrow/furnace 2022-04-20 15:30:24 -05:00
tildearrow
5630b69e64 GUI: fix selection being visible in dummy row area 2022-04-20 15:29:07 -05:00
tildearrow
f18f2968bd
Merge pull request #382 from cam900/patch-8
Further fix looped sample preview
2022-04-20 14:15:32 -05:00
cam900
ce5f3fd94e
Further fix looped sample preview 2022-04-20 20:38:20 +09:00
tildearrow
dac6231574 GUI: fix about screen in power saving mode 2022-04-19 21:55:23 -05:00
tildearrow
d4380e1524 GUI: add an effect list window 2022-04-19 18:44:05 -05:00
tildearrow
a4ff0c3876 GUI: fix relative/fixed toggle label being wrong 2022-04-18 04:18:33 -05:00
tildearrow
b8c790bf79 dev84 - new compat flag and store macro modes 2022-04-18 00:52:29 -05:00
tildearrow
fc8a130c71 implement panning macro
except for QSound
2022-04-17 14:15:57 -05:00
BlastBrothers
4bb77ea3cb This is not a sample properties table 2022-04-17 11:38:28 -04:00
tildearrow
c9324e04bd GUI: vertical C64 envelope editor 2022-04-17 02:51:03 -05:00
tildearrow
0258342324 M S V C 2022-04-17 02:08:53 -05:00
tildearrow
53994cebbd GUI: new default key for full-screen 2022-04-17 02:08:19 -05:00
tildearrow
4f59eb2602 GUI: add toggle full-screen keybind 2022-04-17 01:57:50 -05:00
tildearrow
0952d1b2f9 GUI: add a full-screen option 2022-04-17 01:54:42 -05:00
tildearrow
3ce617335c
Merge pull request #365 from djtuBIG-MaliceX/feature/More-OPL-Patch-Support
More OPL patch support
2022-04-17 01:17:57 -05:00
tildearrow
768419f461 GUI: implement GB envelope view 2022-04-17 01:15:34 -05:00
James Alan Nguyen
ac656f07bb Merge branch 'master' into feature/More-OPL-Patch-Support 2022-04-17 15:41:18 +10:00
tildearrow
003c9c3235 GUI: prepare for GB envelope view 2022-04-16 23:58:29 -05:00
tildearrow
99d57bf342 GUI: C64 envelope view 2022-04-16 23:43:49 -05:00
tildearrow
42e8454143 ADSR test area 2022-04-16 22:53:40 -05:00
tildearrow
523adfac86 GUI: fix sample up/down actions not changing wavef
orm
2022-04-16 22:28:14 -05:00
BlastBrothers
ab4f9945a5 Define the compact wave editor 2022-04-16 21:51:53 -04:00
BlastBrothers
559a99c5fc Menu option, settings file 2022-04-16 20:47:40 -04:00
tildearrow
ef6e63239c GUI: introduce power-saving mode 2022-04-16 18:35:25 -05:00
tildearrow
8669e2cddc GUI: a better look for panning macro 2022-04-16 17:24:40 -05:00
tildearrow
330171edc3 GUI: add "note preview behavior" setting 2022-04-16 13:13:19 -05:00
tildearrow
d0c76e020c GUI: more note preview fixes 2022-04-16 00:10:52 -05:00
tildearrow
a81393472c GUI: move all preview actions to callback 2022-04-15 23:47:39 -05:00
tildearrow
b48a2368be more low-latency mode work
playSub() runs at normal tick rate
2022-04-15 22:22:47 -05:00
James Alan Nguyen
1985546d0b Add file extension to picker 2022-04-15 22:20:46 +10:00
tildearrow
96715ed88c add experimental low-latency mode
do not use (yet)!
2022-04-15 05:37:23 -05:00
tildearrow
c743a9e96a implement phase reset macro on supported systems 2022-04-15 03:16:14 -05:00
tildearrow
c76e719371 GUI: prepare for more macros 2022-04-15 02:51:38 -05:00
tildearrow
f9e9c6c179 huh 2022-04-15 01:30:21 -05:00
tildearrow
600c38543b what is valid then 2022-04-15 01:29:29 -05:00
tildearrow
3e15a066f8 Soundtracker .mod loading support
this required a re-organization of DivEngine::load() but it works
eventually we'll be able to load other file formats this way
2022-04-15 00:45:55 -05:00
tildearrow
51bc1119e8 hopefully fix oscilloscope line being out of bound 2022-04-14 23:22:25 -05:00
tildearrow
aa415caa57 GUI: fix another cppcheck warning 2022-04-14 23:22:11 -05:00
tildearrow
be483470ef GUI: add "Use standard OPL waveform names" option 2022-04-14 21:57:39 -05:00
tildearrow
68445435f9 fix several misc issues 2022-04-14 18:25:59 -05:00
tildearrow
8ff694eb13 GUI: fix MIDI input settings crash 2022-04-14 16:20:10 -05:00
tildearrow
5eb2717884 GUI: slightly tweak note preview algorithm
issue #338
2022-04-14 13:54:47 -05:00
tildearrow
11516d7923 GUI: allow cursor movement when stepping 2022-04-14 03:05:58 -05:00
tildearrow
55e085b148 GUI: separate current order from engine order
fixes #105
2022-04-14 02:58:29 -05:00
tildearrow
0e2ecaf6be add setting to disable scrollChangesOrder
it's kinda unreliable at the moment
2022-04-14 01:25:21 -05:00
tildearrow
d6333af330 GUI: unreliable version of #63 2022-04-13 18:16:55 -05:00
tildearrow
720f046f28 GUI: implement no-nibble-push value input 2022-04-13 17:42:55 -05:00
tildearrow
e86174921b GUI: partially add a piano 2022-04-13 03:24:49 -05:00