Commit graph

787 commits

Author SHA1 Message Date
Natt Akuma
7c42453422
Rewrite per-system effect handling (#548)
* Rewrite per-system effect handling

* fix build

* C64: fix fine cutoff regression

* fix some more crashes

Co-authored-by: tildearrow <tildearrow@protonmail.com>
2022-08-18 01:26:22 -05:00
tildearrow
77109c3832 fix instrument move/del screwing up sub-songs 2022-08-15 22:54:31 -05:00
tildearrow
041a76ad81 raw sample import fixes 2022-08-13 06:25:11 -05:00
tildearrow
91f9352eaf implement raw sample import
untested
2022-08-13 05:50:36 -05:00
tildearrow
ce2d322e47 GUI: add replace for wave/sample and prepare for
raw sample import
2022-08-13 04:17:32 -05:00
cam900
d44f5f0b2b Prepare for backward and bi-directional loop 2022-08-11 22:21:54 +09:00
tildearrow
b8012344e7 fix possible crash when closing Furnace 2022-08-07 17:37:07 -05:00
tildearrow
3a18e1e6fc partially implement command stream binary mode 2022-08-04 18:50:52 -05:00
tildearrow
2e41d117d7 fix some of these command hints 2022-08-04 17:47:59 -05:00
tildearrow
d54d853ff8 add a command stream dump option 2022-08-04 00:51:47 -05:00
tildearrow
2b4b320a74 fix noMultiSystem setting being inverted 2022-07-27 02:36:48 -05:00
tildearrow
09e457003b add option for soft-clipping 2022-07-25 18:41:47 -05:00
Christoph Neidahl
e08399156a
Haiku support (#596)
* Don't apply Wayland videodriver workaround on Haiku

* dirent.d_type-less type detecting in IGFD

The Dumb Way(tm). `stat`'s `st_mode` should be nicer?

* CMake check for dirent.d_type, stat-based fallback

* Move config dir setup to separate function

Nicer to work with than macro kerfuffle.

* Default sysFileDialog to off on Haiku

* Logging stuff

* Honour CMAKE_INSTALL_BINDIR

* Use find_directory on Haiku

Includes forgotten configPath line when home==NULL.

* Address PR review notes
2022-07-23 22:11:30 -05:00
tildearrow
8d88ac766c dev103 - store system name and other info in song 2022-07-23 17:02:03 -05:00
cam900
5127d5ef18
Implement sample loop end position, enum-ise sample depth (#557)
TODO: new sample format
2022-07-21 23:36:42 -05:00
tildearrow
cd7b333b2d introduce a benchmark mode 2022-07-19 17:01:19 -05:00
tildearrow
a4741861ce fix audio output being reset on cmd line export 2022-07-19 15:57:06 -05:00
cam900
f3b9c6dde6
Merge branch 'master' into es5506_alt 2022-07-02 13:28:49 +09:00
tildearrow
9fee9fa363 GUI: run per-chan osc on instrument preview 2022-06-29 01:37:12 -05:00
tildearrow
be7d7002e2 fix opening/saving audio files with non-ASCII char
s on Windows

this required making a wrapper...
2022-06-28 02:00:08 -05:00
tildearrow
fef09fb00d fix major per-channel audio export issue in ExtCh 2022-06-27 03:55:55 -05:00
cam900
3119ed8cc5 Merge remote-tracking branch 'upstream/master' into es5506_alt 2022-06-26 00:47:34 +09:00
cam900
2b5bb91237 Merge branch 'master' of https://github.com/tildearrow/furnace into es5506_alt
* 'master' of https://github.com/tildearrow/furnace: (55 commits)
  GUI: get rid of these stupid icons
  update to-do list
  MSM6258: the final bits
  MSM6258: clock/rate selection
  MSM6258: prepare for rate changing
  Update n163.md
  YM2612: DualPCM per-channel osc
  YM2612: more DualPCM muting fixes
  YM2612: fix DualPCM muting
  GUI: finish the blank ins up
  GUI: add "blank new instrument" option
  GUI: add mono/poly note preview button
  PC speaker: don't use printf/perror
  YM2612: CSM arpeggio and slides
  YM2612: - C   S   M -
  YM2612: half-working CSM
  YM2612: earliest completely untested CSM work
  delay collapse/expand pattern/song feature :<
  GUI: much more stable osc view
  YM2612: fix DAC output not visible in per-chan osc
  ...

# Conflicts:
#	src/engine/platform/genesis.cpp
#	src/engine/platform/genesis.h
#	src/ta-utils.h
2022-06-26 00:36:36 +09:00
tildearrow
b66cc81fc6 fix loading 24-bit samples 2022-06-23 22:33:25 -05:00
tildearrow
7586db9a1b fix Termux build again 2022-06-23 16:25:51 -05:00
tildearrow
e3686c2e34 fix song playing from begin if stopped on last row 2022-06-20 22:14:16 -05:00
tildearrow
ad5072dad6 more MIDI debugging messages 2022-06-16 23:55:17 -05:00
tildearrow
b7d8f3c17a harden sample movement 2022-06-16 23:39:38 -05:00
tildearrow
cdbcf7fcd3 fix loading 8-bit samples 2022-06-16 22:10:57 -05:00
tildearrow
327952f3f4 finally support loading floating-point samples 2022-06-16 22:07:12 -05:00
tildearrow
ed6a110d44 initialize SF_INFO before loading sample 2022-06-16 21:25:21 -05:00
tildearrow
64fa5f804b finish fade out on audio export option 2022-06-06 04:00:56 -05:00
tildearrow
b6ea8ede86 fade out experiments - DO NOT COMPILE 2022-06-06 03:05:55 -05:00
tildearrow
5a0a9db9c3 highlight cur row instead of next one on playback 2022-06-06 01:05:06 -05:00
tildearrow
1f1d2c85bd GUI: add mono/poly note preview button 2022-06-03 18:05:07 -05:00
tildearrow
ddcd76328d add ability to move sub-songs 2022-06-01 18:50:30 -05:00
tildearrow
9d10b5bf2b OPL: complete the drum instrument type
#310
2022-05-31 17:44:52 -05:00
cam900
a3bca9efa7 Merge remote-tracking branch 'upstream/master' into es5506_alt 2022-05-31 12:18:46 +09:00
tildearrow
fc0a51ed56 GUI: add oscilloscope window size setting
and also remember last zoom/winSize value
2022-05-30 21:40:07 -05:00
tildearrow
495aec86bd fix addOrder() undefined behavior 2022-05-30 14:02:54 -05:00
cam900
02dbafb728 Merge remote-tracking branch 'upstream/master' into es5506_alt 2022-05-30 22:20:24 +09:00
tildearrow
9b7145d2b0 harden wavetable loader 2022-05-29 22:21:37 -05:00
cam900
4f6f13e938 Merge branch 'master' of https://github.com/tildearrow/furnace into es5506_alt
* 'master' of https://github.com/tildearrow/furnace:
  GUI: improve unified data view
  GUI: sample editor preview in selection
  finally
  Revert "fudge and bread"
  Revert "fire!"
  Revert "temporarily kill MSVC"
  Revert "MSVC: ughh, f**k you, you d**khead."
  MSVC: ughh, f**k you, you d**khead.
  temporarily kill MSVC
  fire!

# Conflicts:
#	src/engine/engine.h
#	src/engine/playback.cpp
2022-05-30 08:13:27 +09:00
tildearrow
84d4ca63c2 GUI: sample editor preview in selection 2022-05-29 02:13:08 -05:00
cam900
32152fd89b Merge branch 'master' of https://github.com/tildearrow/furnace into es5506_alt
* 'master' of https://github.com/tildearrow/furnace: (53 commits)
  prepare for better backward writing
  VGM export: fix oops
  GUI: drag-and-drop ins/wave/sample loading
  GUI: add "set loop" to sample editor
  MSM6295: VGM export!
  oops
  MSM6295: add rate select effect (20xx)
  update meteor shower
  MSVC is better than GCC right?
  update to-do list
  door into summer
  GUI: implement input for touch events
  GUI: update SDL hints
  fix Termux build
  add another demo song
  add demos/ecolove.fur
  update to-do list
  update demos/README.md
  add new demo songs
  dev99 - major Fractal system change
  ...

# Conflicts:
#	src/engine/dispatch.h
#	src/engine/platform/genesis.cpp
#	src/engine/playback.cpp
#	src/engine/song.h
#	src/engine/vgmOps.cpp
2022-05-29 13:47:39 +09:00
tildearrow
08543a2dc9 GUI: drag-and-drop ins/wave/sample loading 2022-05-28 18:51:05 -05:00
cam900
67a7f39d9a Allow more than 64 columns in Dear ImGUI (patched)
Improves Channel window displays, with System info.
2022-05-27 13:38:45 +09:00
cam900
cbf20c6320 Merge branch 'master' of https://github.com/tildearrow/furnace into es5506_alt
* 'master' of https://github.com/tildearrow/furnace: (58 commits)
  SMS: early Nuked-PSG modding
  SMS: add modified Nuked-PSG core
  build release and don't strip
  strip MinGW builds
  FDS: a bit more
  FDS: set a post-amp value
  FDS: fix NSFplay core low pass filter precision
  fix .dmf saving
  fix compilation on GCC 12
  Fix multithreading on CI
  Lynx: why did I not commit this
  Lynx: more sample improvements
  Lynx: sample improvements
  Lynx: add sample support!
  GUI: fix wavetable list oversight
  WaveSynth: fix phase modulation - again
  GUI: fix possible wave editor crash
  WaveSynth: fix phase modulation
  Lynx: add phase reset macro
  fix another fucking IGFD crash bug
  ...

# Conflicts:
#	src/gui/insEdit.cpp
#	src/gui/presets.cpp
2022-05-27 13:01:06 +09:00
cam900
17881837ab Merge branch 'master' of https://github.com/tildearrow/furnace into es5506_alt
* 'master' of https://github.com/tildearrow/furnace: (64 commits)
  finish wave synth!
  update contributing guidelines
  Namco WSG: make non-linear slides faster
  wave synth work
  SoundUnit: fix order of filter bits
  GUI: add Namco arcade presets
  implement some dual wave synth effects
  Y8950: fix ADPCM VGM export
  Namco WSG: finish it up
  Namco WSG: 8 channel WSG (CUS30) now works
  Namco WSG: muting
  Namco WSG: 8 channel WSG (15xx) now works
  Namco WSG: 3 channel WSG now works
  YM2612: change key on/off strategy
  GUI: fix scrollbars not working
  Please enter the commit message for your changes.
  shhhhhhhhhhhh
  update to-do list
  Whoops
  it doesn't work (yet)
  ...

# Conflicts:
#	src/engine/dispatch.h
#	src/engine/platform/su.cpp
#	src/engine/playback.cpp
#	src/engine/sample.cpp
#	src/engine/sample.h
#	src/engine/song.h
#	src/engine/vgmOps.cpp
#	src/gui/presets.cpp
2022-05-25 00:52:00 +09:00
tildearrow
e17c99dcdf allow building Furnace without SDL2 and libsndfile
for eventual libfurnace
2022-05-22 19:01:50 -05:00