Commit graph

444 commits

Author SHA1 Message Date
cam900
013c7b92fb Merge branch 'master' of https://github.com/tildearrow/furnace into es5506_alt 2022-09-27 00:01:10 +09:00
tildearrow
122694d7c9 MIDI output improvements 2022-09-26 01:27:36 -05:00
tildearrow
c27c650c11 MIDI out: prevent out of range notes 2022-09-25 23:43:01 -05:00
cam900
a0745e80b5 Accidentally removed this 2022-09-25 20:25:05 +09:00
cam900
a11440ac0f Fix cmdName 2022-09-25 20:22:22 +09:00
cam900
81bebc5112 Reduce unnecessary changes, Volume macro fixes, calcArp 2022-09-25 19:21:49 +09:00
cam900
5a6cde65ed Merge branch 'master' of https://github.com/tildearrow/furnace into es5506_alt 2022-09-25 18:34:36 +09:00
cam900
0a49d4bfd0 Merge branch 'master' of https://github.com/tildearrow/furnace into es5506_alt 2022-09-25 18:32:06 +09:00
tildearrow
01a592100f SNES: define effects (they don't work yet) 2022-09-25 04:02:06 -05:00
cam900
e00758d67c Merge branch 'master' of https://github.com/tildearrow/furnace into sample_macro 2022-09-22 23:02:01 +09:00
tildearrow
401581e892 fix 116.5 2022-09-21 23:41:22 -05:00
cam900
0f5a400b29 Merge branch 'master' of https://github.com/tildearrow/furnace into sample_macro 2022-09-18 00:11:53 +09:00
tildearrow
187653a70f dev113 - loop detection changes 2022-09-10 01:39:42 -05:00
cam900
3fcccb52ee Reduce performance issue 2022-08-28 10:50:57 +09:00
cam900
54dbd0690c Merge branch 'master' of https://github.com/tildearrow/furnace into sample_macro
# Conflicts:
#	src/engine/fileOps.cpp
#	src/engine/platform/lynx.cpp
#	src/engine/platform/rf5c68.cpp
#	src/engine/platform/su.cpp
#	src/engine/platform/x1_010.h
#	src/engine/platform/ym2610.cpp
#	src/engine/platform/ym2610.h
#	src/engine/platform/ym2610b.cpp
#	src/engine/platform/ym2610b.h
#	src/engine/sysDef.cpp
#	src/gui/insEdit.cpp

Add effect command for ADPCM-A global volume, X1-010 Sample bank slot
2022-08-27 17:25:48 +09:00
cam900
4cc79fb49d Prepare for split sample chip instrument
(MSM6258, MSM6295, QSound, Sega PCM, ADPCM-A, ADPCM-B, YMZ280B, RF5C68)
Instrument color and icons are placeholder.

different volume range, hard panned/soft panned and/or independent volume per output, chip-dependent features (global volume, echo, etc)
Allow use sample in instrument tab for chip with sample support
Prepare to support X1-010 Seta 2 style bankswitch behavior
Prepare to support AY89x0 PCM DAC
Support volume for PCE sample (DAC)
Fix Lynx, Y8950 sample pitch matches to sample preview
Support PCM DAC with backward and pingpong loop mode
Reduce some codes
Add Sega PCM, AY89x0, QSound, PCM DAC, Lynx per-channel debug support
2022-08-27 16:27:36 +09:00
tildearrow
d577755035 fix note on sometimes not working in jam mode 2022-08-27 00:37:32 -05:00
tildearrow
16309a8429 allow it 2022-08-22 00:20:40 -05:00
tildearrow
629cca9df1 ECxx 2022-08-22 00:01:21 -05:00
tildearrow
38afdd3378 dev110 - add cut/delay effect policy compat flag
INCOMPLETE!!!
2022-08-21 23:56:58 -05:00
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
5fe661e9a3 allow rates down to 1Hz 2022-08-15 22:40:04 -05:00
cam900
d44f5f0b2b Prepare for backward and bi-directional loop 2022-08-11 22:21:54 +09:00
tildearrow
1c92d23d27 commands view now only displays useful commands 2022-08-07 17:40:01 -05:00
tildearrow
f80488d9b0 minimize allocations in nextBuf 2022-08-07 17:32:39 -05:00
tildearrow
2e41d117d7 fix some of these command hints 2022-08-04 17:47:59 -05:00
tildearrow
09e32c7050 finish command dump hints 2022-08-04 15:14:29 -05:00
tildearrow
fce0371756 add "hint" commands 2022-08-03 17:21:47 -05:00
tildearrow
52c3b10373 add getWantPreNote()
currently only C64 system requires this
2022-08-03 16:21:30 -05:00
tildearrow
53120edd99 disable MIDI clock 2022-08-03 14:41:53 -05:00
tildearrow
09e457003b add option for soft-clipping 2022-07-25 18:41:47 -05:00
tildearrow
83386d082d add a proper CLI
featuring skip order (left/right) and pause (space)!
currently available on macOS and Linux only.
2022-07-25 17:23:56 -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
0ec28f168e more .dmf compatibility stuff 2022-07-03 23:31:35 -05:00
cam900
f3b9c6dde6
Merge branch 'master' into es5506_alt 2022-07-02 13:28:49 +09:00
tildearrow
a8a38dce2b 0.6pre1 - introduce the final changes
- implement E1xy/E2xy Defle bug when using same note twice
- add SNK Touchdown Fever preset
- update README.md and to-do list
- update credits

thank you for your patience!

see you in 0.6pre1.5 coming soon...
2022-06-29 04:57:05 -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
cam900
3119ed8cc5 Merge remote-tracking branch 'upstream/master' into es5506_alt 2022-06-26 00:47:34 +09:00
tildearrow
d48801cfde GUI: slight visualizer tweaks 2022-06-14 04:41:57 -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
2932a7281d implement getChanMacroInt() on supported systems 2022-06-05 18:17:00 -05:00
cam900
e8c672f91e Fix preview 2022-05-31 14:20:15 +09: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
0b7d27dc29 YM2612: add reverse sample playback 2022-05-27 02:47:44 -05: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
3aa8ea3625 fix Cxxx/F0xx being delayed in low-latency mode 2022-05-22 22:36:48 -05:00
tildearrow
e17c99dcdf allow building Furnace without SDL2 and libsndfile
for eventual libfurnace
2022-05-22 19:01:50 -05:00
tildearrow
6ec8674072 SoundUnit: many fixes. implement effects 2022-05-19 04:36:26 -05:00
tildearrow
cfa05143ab dev96 - add virtual tempo 2022-05-18 00:05:25 -05:00
cam900
028adf2c8e Merge branch 'master' of https://github.com/tildearrow/furnace into es5506_alt
* 'master' of https://github.com/tildearrow/furnace: (70 commits)
  whoops
  GUI: AY8930 credits
  GUI: fix inability to close subsongs
  BANK
  OPN: wire up ExtCh system
  fix build failure
  dev95 - multiple songs in a single file (READ)
  DO NOT USE - THIS FAILS - WORK IN PROGRESS
  enforce asset limits
  old .dmf loading improvements
  add AICA and YMZ ADPCM formats
  allocate ID for YMZ280B
  harden .fur file saver
  Fix AY VGM output, Fix presets
  preparations for UI improvements
  GUI: add more presets
  prepare for ExtCh OPN/OPNA
  GUI: clarify that lock layout doesn't work yet
  GUI: remember last state of order edit mode
  GUI: store edit/followOrders/followPattern state
  ...

# Conflicts:
#	src/engine/fileOps.cpp
#	src/engine/platform/ym2610.cpp
#	src/engine/platform/ym2610b.cpp
#	src/engine/sample.cpp
#	src/engine/sample.h
#	src/engine/sysDef.cpp
#	src/gui/doAction.cpp
#	src/gui/sysConf.cpp
2022-05-18 03:09:55 +09:00
tildearrow
c5786b61fb dev95 - multiple songs in a single file (READ)
experimental feature! proceed with caution.
if you experience song corruption or crashes, report issue immediately!

files with multiple songs will be readable in older versions of Furnace,
but only the first song will be read in those versions.

issue #199
2022-05-15 01:42:49 -05:00
tildearrow
431b6b5957 fix 09xx, 0Bxx, 0Dxx and 0Fxx being ignored on ED 2022-05-11 02:42:05 -05:00
cam900
54e78699a7 Merge branch 'master' of https://github.com/tildearrow/furnace into es5506_alt
* 'master' of https://github.com/tildearrow/furnace:
  dev94 - add a full linear pitch mode, part 1
  YM2610(B): use f-num/block baseFreq calculation
  GUI: remove insLoadAlwaysReplace setting
  GUI: right click menu for open instrument
  GUI: add a threshold for macro right click
  OPZ: remove debug printf
  GUI: add macro right click menu
  GUI: prepare for macro right click menu
  update gitignore
  add something
  prepare for something
  did i fix macOS build?
  GUI: macro edit improvements
2022-05-11 00:55:03 +09:00
tildearrow
8784fe5664 dev94 - add a full linear pitch mode, part 1 2022-05-10 03:51:18 -05:00
cam900
0ab1f69c7c Merge branch 'master' of https://github.com/tildearrow/furnace into es5506_alt
* 'master' of https://github.com/tildearrow/furnace:
  fix sample saving
  add extra FM effects to effect post handler
  dev91 - it's a breaking change
  aaaaaa
  AY8930: Fix tone and noise period in expanded mode.
  OPL: fix possible crash
2022-05-04 10:31:15 +09:00
cam900
4595e18aea Oops 2022-05-04 10:28:30 +09:00
tildearrow
30e60f643c add extra FM effects to effect post handler
see #38
the last thing left to do is to put these effects on the dispatch code
2022-05-03 17:37:17 -05:00
cam900
4021abe495 Merge branch 'master' of https://github.com/tildearrow/furnace into es5506_alt
* 'master' of https://github.com/tildearrow/furnace:
  YM2610: optimize oscilloscope fetch CPU usage
  GUI: add audio load meter to statistics
  GUI: put "OK" and "Cancel" buttons in the bottom
  better FM chip names
  sysDef refactor, part 3 - PLEASE READ
  NO
  Reduce unnecessary line
  Debug improvements
  AY8930: Fix VGM output.

# Conflicts:
#	.gitignore
#	src/engine/playback.cpp
#	src/gui/debugWindow.cpp
2022-05-04 03:32:26 +09:00
tildearrow
b8a2c90b61 GUI: add audio load meter to statistics 2022-05-03 02:29:12 -05:00
tildearrow
e40e7c0fef sysDef refactor, part 3 - PLEASE READ
to cam900 and grauw: I have moved the per-system effect processing code
to sysDef.cpp as lambdas
you may want to do the same when you pull this commit.
2022-05-03 01:23:38 -05:00
cam900
e136db6d7a Merge branch 'master' of https://github.com/tildearrow/furnace into es5506_alt
* 'master' of https://github.com/tildearrow/furnace: (26 commits)
  prepare for #38
  NES: DPCM work!
  fix bug caused by new renderSamples approach
  NES: prepare for DPCM
  OPZ: more fixed frequency mode fixes
  OPZ: possibly fix fixed freq emulation
  OPZ: fix muting
  OPL: fix panning
  damn it
  per-channel oscilloscope, part 10
  NES: NSFPlay per-channel osc
  NES: NSFPlay muting
  NES: now fix tri_mute
  NES: finally
  fix typo in playback engine
  NES: wire up NSFplay
  now fix it damn it
  now move these files
  add readme
  convertir de Shift-JIS a UTF-8
  ...

# Conflicts:
#	src/engine/engine.cpp
#	src/engine/engine.h
#	src/engine/platform/nes.cpp
#	src/engine/vgmOps.cpp
#	src/gui/stats.cpp
2022-05-03 11:07:50 +09:00
tildearrow
66f6ab4307 prepare for #38 2022-05-02 03:52:45 -05:00
tildearrow
dbe9bf25e7 fix bug caused by new renderSamples approach
when doing switchMaster
2022-05-02 02:54:23 -05:00
tildearrow
9479a8aa0f fix typo in playback engine
possible memory leak
2022-05-01 23:29:00 -05:00
cam900
5414213710 Merge branch 'master' of https://github.com/tildearrow/furnace into es5506_alt
* 'master' of https://github.com/tildearrow/furnace:
  maybe uninitialized
  GUI: prepare for a per-channel oscilloscope?
  GUI: add backdrop if system file picker is open
  GUI: add ability to customize startup system
  GUI: finally implement "don't scroll when moving c ursor" setting
  new panning effects (80/81/82)
  GUI: fix sample paste crash
  GUI: implement sample scroll with mouse wheel
  sysDef oopsie

# Conflicts:
#	src/gui/guiConst.cpp
2022-05-01 00:25:21 +09:00
tildearrow
2e8634626d new panning effects (80/81/82) 2022-04-29 23:41:14 -05:00
cam900
72e8bb89a7 Merge branch 'master' of https://github.com/tildearrow/furnace into es5506_alt
* 'master' of https://github.com/tildearrow/furnace:
  GUI: sample/macro zoom with ctrl-wheel
  GUI: prevent division by zero
  GUI: possibly fix an instrument saving issue
  GUI: add chip randomizer button
  update to-do list
  oops
  NES: add DMC write effect
  SoundUnit: implement panning
  QSound: implement panning macro - PLEASE READ
  further improve channel allocation
  update format.md for eventual ExtCh extra systems
  improvements to swap/stomp channel

# Conflicts:
#	src/gui/insEdit.cpp
2022-04-30 02:32:55 +09:00
tildearrow
8500fa4c4c NES: add DMC write effect 2022-04-29 00:18:51 -05: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
cam900
3956b2cd30 Merge branch 'master' of https://github.com/tildearrow/furnace into es5506_alt
* 'master' of https://github.com/tildearrow/furnace:
  dev90 - linear pitch macro option
  dev89 - C64: add test/gate macro
  YMU759: update system definition
  more changes to autoNoteOn
  SoundUnit: ring modulation
  GUI: improve the maximize auto-detection a bit
  GUI: possibly remember maximized state
  NES: fix audio resolution being too low
  update to-do list
  SoundUnit: more stuff
  SoundUnit: max cutoff 16383
  effectRows -> effectCols
  GUI: rename Amiga/Sample to Sample
  This is not a sample properties table
  Define the compact wave editor
  Menu option, settings file

# Conflicts:
#	src/gui/insEdit.cpp
2022-04-28 16:05:01 +09:00
tildearrow
3306e853d1 effectRows -> effectCols
i don't know why did I call it "rows"
2022-04-27 17:53:55 -05:00
cam900
0209ebda03 Merge branch 'master' of https://github.com/tildearrow/furnace into es5506_alt
* 'master' of https://github.com/tildearrow/furnace:
  sysDef refactor, part 2
  sysDef refactor, part 1 - PLEASE READ NOTE
  prepare for macroInt preview in instrument editor
  GUI: fix #400
  fix metronome in low-latency mode

# Conflicts:
#	src/engine/dispatch.h
#	src/engine/dispatchContainer.cpp
#	src/engine/instrument.h
#	src/engine/song.h
#	src/engine/sysDef.cpp
#	src/gui/dataList.cpp
#	src/gui/gui.h
#	src/gui/guiConst.cpp
2022-04-27 19:52:04 +09:00
cam900
482dbf8dd5 Checkpoint
Addressing reviews, Fix GCC/Clang builds, Core updates
2022-04-27 14:29:53 +09:00
tildearrow
28af57c4f0 fix metronome in low-latency mode 2022-04-26 00:22:49 -05:00
cam900
49a41ff862 Merge branch 'master' of https://github.com/tildearrow/furnace into es5506_alt
* 'master' of https://github.com/tildearrow/furnace: (77 commits)
  GUI: use pattern font for input latch
  GUI: partially implement note input latch UI
  GUI: transpose value does not transpose effect ID
  GUI: prepare for note input latch UI
  GUI: min ins selector width fix
  GUI: separate operation masks
  GUI: add missing FDS preset
  GUI: prepare for separate operation mask
  GUI: "none" instrument should not remove inscolumn
  GUI: fix ins 0 being inserted on blank song
  GUI: add a "none" option to instrument list
  update to-do list
  GUI: add "absorb" instrument input mode
  use good default instrument when adding ins
  better default instrument for OPL/OPLL
  GUI: fix selection being visible in dummy row area
  Further fix looped sample preview
  GUI: fix about screen in power saving mode
  VRC6: saw volume 63
  GUI: add an effect list window
  ...

# Conflicts:
#	src/engine/platform/amiga.cpp
#	src/engine/vgmOps.cpp
#	src/gui/dataList.cpp
#	src/gui/guiConst.cpp
#	src/gui/insEdit.cpp
#	src/gui/sampleEdit.cpp
2022-04-26 12:04:23 +09:00
cam900
29ea6dc360 Partially ES5506 support (not working yet!)
Add sample related enums
Add support for backward/pingpong loop, loop end position
Structize Notemap in sample instrument
2022-04-21 01:52:37 +09:00
tildearrow
6b294933bc VGM export: fix it under low-latency mode 2022-04-15 22:27:44 -05:00
tildearrow
b48a2368be more low-latency mode work
playSub() runs at normal tick rate
2022-04-15 22:22:47 -05:00
tildearrow
98b9bd32b9 static_assert() on cmdName 2022-04-15 16:10:57 -05:00
tildearrow
fd3d57b1cb even more improvements to low-latency mode 2022-04-15 15:01:11 -05:00
tildearrow
45460df96d improve low-latency mode strategy 2022-04-15 14:38:25 -05:00
tildearrow
96715ed88c add experimental low-latency mode
do not use (yet)!
2022-04-15 05:37:23 -05:00
tildearrow
2e2fafd878 GUI: add metronome volume setting 2022-04-13 02:29:07 -05:00
tildearrow
fbf7f9304e dev83 - yet another E1xy/E2xy fix
and 17xx fix in ExtCh
2022-04-13 00:34:00 -05:00
tildearrow
fddd05dc1a improve logging facility
we have a log viewer within the program now
2022-04-10 22:12:02 -05:00
tildearrow
f42855f170 add 30xx effect to hard reset envelope
currently only for 2612!
2022-04-10 02:11:36 -05:00
tildearrow
38ca437190 DC offset improvements 2022-04-09 18:25:25 -05:00
tildearrow
46bf69769b
Merge pull request #331 from OPNA2608/msvc/sane_warning_level
Resolve/Mute MSVC warnings, enable WAE for MSVC
2022-04-09 15:26:58 -05:00
OPNA2608
b6fb3820da Remove unneeded includes
Some are harmless, some screw with SDL's standard includes due to preceeding `_USE_MATH_DEFINES`.
2022-04-09 21:10:15 +02:00
tildearrow
785ac8d1a7 small oscBuf fix 2022-04-09 02:45:06 -05:00
tildearrow
7bf2a3ea1a GUI: prepare for oscilloscope improvements 2022-04-09 02:42:58 -05:00
tildearrow
320250b831 MIDI out improvements 2022-04-09 01:50:44 -05:00
tildearrow
dd6229a6b9 OPZ: more work 2022-04-07 01:44:27 -05:00
tildearrow
9345576fc3 MMC5: fix 12xx not working 2022-04-06 22:55:24 -05:00
tildearrow
ac3772c024 initial FDS bring-up 2022-04-03 22:37:16 -05:00
tildearrow
13d08b3cb6 maybe fix another audio export crash 2022-04-01 16:31:06 -05:00
tildearrow
ffb01dd19c Revert "release 0.6pre0"
This reverts commit f7566455c2.
2022-04-01 05:20:00 -05:00
tildearrow
f7566455c2 release 0.6pre0 2022-04-01 04:45:06 -05:00
tildearrow
4b436ef1fc and more MIDI input refinements 2022-04-01 02:21:10 -05:00
tildearrow
6d1d91ca68 AY8930: add TEST register effect 2022-03-31 17:14:45 -05:00
tildearrow
f689409f02 kind of MIDI output 2022-03-31 03:33:05 -05:00
tildearrow
45ce940d66 better MIDI and note input handling
closes #147
2022-03-31 01:51:57 -05:00
tildearrow
7e34c7746e change the porta logic a bit 2022-03-30 00:08:04 -05:00
tildearrow
964039c8db fix file export crash
closes #323
2022-03-29 00:25:28 -05:00
tildearrow
4825fe7adb more work 2022-03-28 18:19:47 -05:00
tildearrow
08910d37b2 oh yes more MIDI work 2022-03-28 15:24:09 -05:00
tildearrow
5360cd73f4 earliest MIDI input! (no note input tho) 2022-03-28 03:46:50 -05:00
tildearrow
4422ff7695 Merge branch 'vrc6' of https://github.com/cam900/furnace into cam900-vrc6 2022-03-27 22:16:04 -05:00
tildearrow
c4fc797578
Merge #304 - DO NOT COMPILE
Add Namco 163 Support
Not final - changes needed
2022-03-27 21:35:58 -05:00
cam900
ef104ce0b0 Add VRC6 support
2 Pulse channels:
- 8 level pulse duty cycle, DAC mode(just ignores duty cycle)/pulse wave mode, 4 bit volume.
- Furnace support PCM playback in pulse channels with duty cycle ignore mode.

Sawtooth:
- nothing but 6 bit volume (8 bit accumulator in technically) and 12 bit frequency (periodic).

VRC6 instrument:
- 6 bit Volume macro for finer sawtooth volume handling, also 3 bit Duty cycle macro for pulse channels.

Duty, PCM mode command and Duty macro affects for pulse channel only.
2022-03-28 01:06:56 +09:00
tildearrow
08dd693fa0 Amiga: add AM/PM effects 2022-03-27 00:02:17 -05:00
tildearrow
154ef3f9a3 Amiga: filter emulation 2022-03-26 23:39:20 -05:00
tildearrow
9b6e582f8d dev72 - two more compat flags 2022-03-26 22:15:15 -05:00
tildearrow
5c11150b87 T O D O 2022-03-26 21:43:15 -05:00
tildearrow
73536c0691 AY: add effects to write to I/O ports 2022-03-26 20:55:43 -05:00
tildearrow
0687a6f217 this stupid effect 2022-03-25 03:18:44 -05:00
tildearrow
7f39ec723a SMS: overdrive 2 fixes
nice
2022-03-24 01:27:53 -05:00
tildearrow
bd36a4ffdc dev71 - more compatibility flags for .mod 2022-03-23 23:57:10 -05:00
cam900
39654bfa86 Merge branch 'master' of https://github.com/tildearrow/furnace into n163 2022-03-24 13:11:22 +09:00
tildearrow
47d7722f6e add a new log level (trace) 2022-03-23 22:05:09 -05:00
tildearrow
711b60d454 improved mutex locking - less xruns when seeking
especially in JACK and macOS
2022-03-23 21:38:28 -05:00
cam900
e8d567d3df Merge branch 'master' of https://github.com/tildearrow/furnace into n163 2022-03-24 03:22:33 +09:00
tildearrow
ac79e7d6af add broken speed alternation flag - dev70 2022-03-23 01:35:57 -05:00
cam900
73267444fc
Merge branch 'master' into n163 2022-03-23 03:26:09 +09:00
cam900
2eaa6ed0ce Merge branch 'master' of https://github.com/tildearrow/furnace into n163
# Conflicts:
#	CMakeLists.txt
#	papers/doc/7-systems/README.md
#	src/engine/dispatchContainer.cpp
#	src/gui/gui.cpp
#	src/gui/insEdit.cpp
2022-03-23 02:44:13 +09:00
cam900
5fdce33b11 Add Namco 163 Support 2022-03-23 01:48:45 +09:00
Natt Akuma
feb138cefc Add VIC-20 support 2022-03-22 14:48:48 +07:00
Natt Akuma
47c5c34e1c Add PET support 2022-03-21 21:02:51 +07:00
tildearrow
b04e1f2870 GUI: implement sample draw 2022-03-20 18:25:48 -05:00
tildearrow
6c5e6c2a0f
Merge pull request #294 from cam900/bubsys
Reduce naming confusion in Bubble System Wavetable Sound
2022-03-17 22:03:24 -05:00
tildearrow
d63f3d311b fix arpeggio not resetting note to base on 0000 2022-03-17 16:37:49 -05:00
cam900
234c5e9295 Reduce naming confusion in Bubble System Wavetable Sound
It means Custom wavetable sound generator logic on Bubble System.
It's wavetable select and volume is controlled by single AY-3-8910 IO for both channels, Another AY-3-8910 IO is used for reading sound status.

Schematics: http://pdf.textfiles.com/manuals/ARCADE/K-R/Nemesis%20[Schematics]%20[English].pdf (Nemesis, derivative of Bubble system)
2022-03-17 10:11:48 +09:00
tildearrow
cbd5414eee increase playback tempo precision
thanks akumanatt
2022-03-16 02:35:33 -05:00
tildearrow
592cbb56aa OPL: implement effects 2022-03-16 01:53:46 -05:00
tildearrow
02e9edbad9 unlock the power of DECIMAL HZ! 2022-03-15 23:30:15 -05:00
Natt Akuma
54da047b5a Apply requested changes
- Use sample->init() instead
- Implement set Hz by tempo effect and move from C4xx to F0xx
- Add "SAMPLE_POS" to cmdName
2022-03-15 03:59:42 +07:00
Natt Akuma
91e856c61e Merge branch 'master' of https://github.com/tildearrow/furnace into mod-import 2022-03-15 03:08:37 +07:00
Natt Akuma
c7fb5df206 Merge branch 'master' of https://github.com/tildearrow/furnace into mod-import 2022-03-14 21:57:54 +07:00
Natt Akuma
87f225074c .mod import 2022-03-14 21:50:52 +07:00
cam900
2c6267bd6b Merge branch 'master' of https://github.com/tildearrow/furnace into scc 2022-03-14 19:22:31 +09:00
cam900
69aeb7dd58 Add Bubble System Support
Bubble System 2 channel Wavetable sound generator logic is configuration with K005289, 4 bit PROM and DAC.
K005289 controls pitch and 5 bit address generator per channel, Waveform select and Volume control is tied to AY-3-8910 ports. (each port for per channels)
these configuration is better known as K005289, the part of logic.
furnace emulates this configurations as single system, waveform format is 15 level and 32 width.
2022-03-14 19:22:12 +09:00
tildearrow
e009fc64f2 allow instrument change during slides 2022-03-14 01:23:31 -05:00
tildearrow
cf07e1861e add "auto-insert one tick gap" option 2022-03-11 23:01:18 -05:00
tildearrow
2103f249fb C64: fix note/env release cutting note 2022-03-11 22:33:22 -05:00
tildearrow
c6fda7a156 Merge branch 'x1_010' of https://github.com/cam900/furnace into cam900-x1_010 2022-03-10 18:24:52 -05:00
Natt Akuma
43cfb09acf Merge branch 'master' of https://github.com/tildearrow/furnace into x16 2022-03-08 17:53:00 +07:00