tildearrow
1b97d3912b
YM2612: hopefully the final pitch slide fix
2022-04-25 11:59:02 -05:00
tildearrow
bcade6931a
YM2612: allow for DAC rate higher than 32KHz
...
issue #391
2022-04-25 01:42:26 -05:00
tildearrow
832df58929
YM2612: fix several sample bugs
2022-04-25 01:24:42 -05:00
tildearrow
52e35fdf04
huh? TODO: fix this
2022-04-24 18:17:05 -05:00
tildearrow
dd9bb8327a
and this finally does it
...
the last thing to do is a compatibility flag
2022-04-23 18:02:43 -05:00
tildearrow
dd80cb8b55
what the heck
2022-04-22 17:42:42 -05:00
tildearrow
943e013cb4
YM2612: new pitch slide formula
...
finally nailed it (almost)
2022-04-22 16:46:24 -05:00
tildearrow
8db53faf72
new FM frequency calculation experiments
2022-04-22 04:23:52 -05:00
tildearrow
79fa8f1d02
better default instrument for OPL/OPLL
...
no longer silence
2022-04-21 02:24:06 -05: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
fc8a130c71
implement panning macro
...
except for QSound
2022-04-17 14:15:57 -05:00
tildearrow
b4ac5c7e6a
implement pitch macro
2022-04-16 01:39:40 -05:00
tildearrow
fd3d57b1cb
even more improvements to low-latency mode
2022-04-15 15:01:11 -05:00
tildearrow
96715ed88c
add experimental low-latency mode
...
do not use (yet)!
2022-04-15 05:37:23 -05:00
tildearrow
d47a59f5f0
implement pitch macro
...
TODO: test!
2022-04-15 03:37:16 -05:00
tildearrow
c743a9e96a
implement phase reset macro on supported systems
2022-04-15 03:16:14 -05:00
tildearrow
a530934671
fix retrigger issue in sample instruments
2022-04-15 01:26:44 -05:00
cam900
68cf969600
Merge remote-tracking branch 'upstream/master' into macro
2022-04-10 16:34:23 +09:00
tildearrow
f42855f170
add 30xx effect to hard reset envelope
...
currently only for 2612!
2022-04-10 02:11:36 -05:00
cam900
d3e5efe834
Prepare for macro refactoring
2022-04-10 14:01:55 +09:00
tildearrow
a43034f559
OPN: fix portaPause not resetting on new note
2022-03-29 23:58:50 -05:00
tildearrow
5dac609d92
Genesis: better DAC write algorithm
...
only write DAC if there aren't too many queued writes
2022-03-27 01:47:27 -05:00
tildearrow
322981b021
maybe fix possible crash regarding smp loop points
2022-03-21 21:26:36 -05:00
tildearrow
67d516fcee
Genesis: prioritize DAC writes
2022-03-14 01:38:11 -05:00
tildearrow
716298c49c
Genesis: now fix off not working on channel 6
2022-03-11 22:41:04 -05:00
tildearrow
2a0aa19b2b
fix broken DAC mode
...
adds new compat flag
2022-03-11 22:11:33 -05:00
tildearrow
3b8388d90c
YM2151/2610/2612/Game Boy: fix panning - UNTESTED
2022-03-06 14:39:20 -05:00
tildearrow
5816f01c07
Genesis: PSG clean-up
...
since genesis is now split into YM2612 + SN, the "psg" inside
DivPlatformGenesis becomes useless.
2022-03-02 18:25:17 -05:00
tildearrow
19c4f5559a
bring crash fix from 0.5.8
2022-02-24 22:52:20 -05:00
tildearrow
1e98f0c4a1
sample system rewrite! **PLEASE READ**
...
this commit mostly rewrites the sample system.
as of now samples can be ADPCM, 8-bit, BRR or 16-bit
or something...
consider this VERY EXPERIMENTAL.
if you find any issues REPORT THEM immediately.
it's nearly 4am...
2022-02-24 03:57:45 -05:00
tildearrow
df35b8fb45
add register view
...
supported chips only.
2022-02-21 22:31:27 -05:00
tildearrow
e697c055b6
replay keyOn in active channels during forceIns
...
fixes an issue when playing orders
2022-02-20 21:39:14 -05:00
tildearrow
36eaea0fa7
OPN: apply max freq limit
2022-02-17 22:07:20 -05:00
tildearrow
647f2f96b0
dear tildearrow are you drunk or what?
2022-02-15 17:22:09 -05:00
tildearrow
b24c572632
prevent division by zero, part 1
2022-02-15 15:19:36 -05:00
tildearrow
853ade2416
improve the status bar
...
issue #39
2022-02-15 01:46:03 -05:00
tildearrow
b9832abbeb
license clarification, part 3
2022-02-14 22:12:20 -05:00
tildearrow
7c80a88bbf
GUI: fix debug menu a bit
2022-02-13 15:03:07 -05:00
tildearrow
6bcd3df691
oopsie
2022-02-12 21:19:38 -05:00
tildearrow
62f2f67b9d
add two more compatibility flags
...
for songs that relied upon pre-0.5.5 broken behavior
2022-02-09 22:07:32 -05:00
tildearrow
788ccfb334
unscrew alg + volume
2022-02-09 12:43:27 -05:00
tildearrow
bf537881ce
possibly implement envelope release points
...
no way to set them yet tho other than the MML string
2022-02-08 13:11:04 -05:00
tildearrow
d0457a2e1b
VGM export: improvements
...
- use shorthand command for waiting at 50/60Hz
- don't write stream rate change if DAC is off
2022-02-06 16:47:12 -05:00
tildearrow
cb430fc169
Genesis: fix bus overload when using ymfm core
2022-02-05 04:31:20 -05:00
tildearrow
6b040084e0
Genesis: add alternate clock speed
2022-02-04 21:35:24 -05:00
tildearrow
902febe298
actually implement pitch of C-4
2022-02-04 03:29:40 -05:00
tildearrow
c682c921a1
fix compatible-style retrigger
2022-02-03 15:43:41 -05:00
tildearrow
5086bc1097
implement the linear pitch flag
2022-02-03 02:24:11 -05:00
tildearrow
ccfe3bdd97
Genesis: add ability to use ymfm instead of Nuked
2022-02-02 23:08:45 -05:00
tildearrow
545f3ffdf4
Genesis: add DAC distortion flag
2022-02-02 03:06:30 -05:00
tildearrow
d691ec6d76
add a chip playground
...
in debug menu
2022-02-01 18:08:19 -05:00
tildearrow
f29d4bce1b
implement 11xx effect on FM platforms
...
please no ch 3
2022-02-01 15:12:06 -05:00
tildearrow
4f5d37d415
VGM export: fix Genesis samples wrongly pitched
2022-02-01 03:23:29 -05:00
tildearrow
bf9eb8b0a4
fix two possible pitch slide regressions
...
now let's fix blue crow
2022-01-30 15:55:31 -05:00
tildearrow
822d542350
limit volume macro to system maximum
...
fixes #71
2022-01-30 12:31:50 -05:00
tildearrow
b6da7871d4
make the flags option actually work
2022-01-29 00:20:27 -05:00
tildearrow
bfed0b3209
change setPAL to setFlags
2022-01-28 12:59:53 -05:00
tildearrow
ec66b7a21b
add song tuning
...
soon: system clock settings
2022-01-28 00:55:51 -05:00
tildearrow
5eb974456d
Arcade: implement FM macros
2022-01-27 02:17:09 -05:00
tildearrow
0e633ea69b
GUI: add a debug window
2022-01-27 00:29:16 -05:00
tildearrow
1347d16da4
Genesis: fully implement volume macro
2022-01-26 18:03:08 -05:00
tildearrow
f86838df99
no longer shift arpeggio macro by 12
2022-01-26 15:53:52 -05:00
tildearrow
8bcab6e139
VGM export: write resets and GD3 tag
...
may be non-standard compliant (yet)
also it crashes foobar2000 for some reason but this will be fixed
2022-01-25 18:46:27 -05:00
tildearrow
d945e5299a
Merge commit 'bd8c06bbb786df086d478e1574c6fe11ee6651b6'
2022-01-24 15:53:02 -05:00
tildearrow
bd8c06bbb7
prevent crash when playing empty sample
...
fixes #62
2022-01-24 15:47:39 -05:00
tildearrow
858d5343b8
earliest VGM export!
...
only supports single-chip Genesis for now
the other systems will be added shortly
2022-01-24 01:01:08 -05:00
tildearrow
524f8c312e
Genesis: implement arp macros
2022-01-23 15:55:12 -05:00
tildearrow
45d9bef2a8
Genesis: restore LFO value when changing order
2022-01-23 15:15:46 -05:00
tildearrow
cd2854d027
it works
2022-01-23 15:12:00 -05:00
tildearrow
b39b1c0a25
Genesis: implement FM macros (partial, untested)
2022-01-23 13:19:19 -05:00
tildearrow
d62b111c78
Genesis: separate channel state from instrument
...
paves way for FM macros
with this change, extended channel 3 mode breaks! do not use
until I diagnose the problem.
2022-01-22 17:43:57 -05:00
tildearrow
371c23a7ee
Genesis: fix sample desync when muting DAC channel
2022-01-22 02:36:58 -05:00
tildearrow
05bbfaced2
get rid of a debug message
2022-01-20 16:41:18 -05:00
tildearrow
917c9cf2e3
Genesis: allow sample preview
2022-01-20 16:40:18 -05:00
tildearrow
0f28ae0fee
implement Furnace-style PCM on Arcade/Gen/NES/PCE
2022-01-20 16:09:05 -05:00
tildearrow
4ee17d35cd
implement sample loop on the rest of systems
2022-01-20 02:46:28 -05:00
tildearrow
f98662d329
slide accuracy fixes
2022-01-19 01:27:32 -05:00
tildearrow
e87239f8ce
fix retrigger implementation
...
no longer broken
2022-01-19 00:01:34 -05:00
tildearrow
6d9f5db6a4
add notifyInsChange
...
see issue #8
2022-01-17 23:59:52 -05:00
tildearrow
ce027d99f6
force insChanged on note input
...
partially solves issue #8
2022-01-17 18:01:40 -05:00
tildearrow
12236248dd
prepare for eventual export
2022-01-16 23:21:27 -05:00
tildearrow
91e8ff01cf
add notifyInsDeletion
...
prevent invalid memory access when deleting instruments
2022-01-13 19:36:02 -05:00
tildearrow
dc5990a37e
a lot of master system fixes!
...
fixes forest frolick, professional tracker, YZYX, Monday (kinda),
MasterTracker and Ice Fields
2021-12-29 02:08:50 -05:00
tildearrow
d766c4aaf0
finally do EFxx right
...
took a while to figure out...
2021-12-28 00:51:38 -05:00
tildearrow
65444d4a99
el diego 2 finally plays back correctly
...
ALMOST
2021-12-27 16:31:16 -05:00
tildearrow
7ba8607270
changes to sample rate storage
...
as of now we store and use the actual sample rate as opposed to an index
fo a fixed rate table.
this allows for more flexibility in a future file format...
2021-12-23 18:04:44 -05:00
tildearrow
726b457ae7
another uninitialized variable
2021-12-21 16:02:31 -05:00
tildearrow
997c460fc1
greatly improved playback resume
...
no more song weirding out when changing orders
2021-12-21 01:29:07 -05:00
tildearrow
3a0e94df5e
genesis: fix muting the PCM channel
2021-12-19 00:51:10 -05:00
tildearrow
efd5e844ce
genesis: fix massive bug when muting SN
2021-12-19 00:49:47 -05:00
tildearrow
b3b66ecbdb
channel mute/solo!
2021-12-18 03:25:42 -05:00
tildearrow
c54df74df1
GUI: rate change and new window title
2021-12-15 17:32:08 -05:00
tildearrow
52087edceb
lots of changes
...
- GUI: ability to load files
- GUI: arrow key navigation
- fix sample volumes
2021-12-15 00:37:27 -05:00
tildearrow
2f813c55e0
GUI: instrument selector
2021-12-11 16:44:02 -05:00
tildearrow
a17e91955a
add reset() for every platform
2021-12-11 13:14:38 -05:00
tildearrow
248cc6d37a
properly handle note off in PCM
2021-12-09 03:25:00 -05:00
tildearrow
e2a41974ff
PCM sample bank support
2021-12-09 03:13:37 -05:00
tildearrow
6a02754996
add PAL flag to dispatch
...
now platforms run at their correct clock speed when in PAL mode
also fix clipping in Genesis
2021-12-08 01:56:40 -05:00
tildearrow
65ab3a2b5d
keyOffAffectsArp is now per-channel
2021-12-08 00:33:00 -05:00
tildearrow
145403e7dd
Merge branch 'master' of github.com:tildearrow/furnace
2021-12-06 16:52:03 -05:00
tildearrow
d6fb6b0bb3
more optimization
...
as of now non-stereo sound chips are only processed once
2021-12-06 16:51:18 -05:00
tildearrow
6efcfc2e8a
prepare for possible major optimization
...
by just forwarding an output buffer to the dispatch and begin/length,
the number of calls may be reduced which improves performance.
2021-12-06 05:21:42 -05:00
tildearrow
ce4b6c7044
genesis: comment out two debug messages
2021-12-06 03:26:33 -05:00
tildearrow
055b4f9c26
genesis: fix delay bug
2021-12-06 03:07:29 -05:00
tildearrow
8478481466
hmmm
2021-12-06 02:59:12 -05:00
tildearrow
b30c5679ae
genesis: reduce CPU usage
...
the chip uses TDM to output the channels one by one
so we just run the chip 6 times and output at 1/6th the rate, which
means less work for blip_buf and less C++ overhead
2021-06-09 01:57:12 -05:00
tildearrow
0b8fcc6e8d
genesis: implement 10xx command
2021-06-05 23:27:02 -05:00
tildearrow
83ce4f0ebe
game boy progress, part 5
...
now with almost accurate arpeggios.
2021-05-28 00:36:40 -05:00
tildearrow
892ea33e77
game boy progress, part 3
2021-05-27 23:03:10 -05:00
tildearrow
26463fd8d9
better pitch slides
...
now digital warmth doesn't choke at the toms
2021-05-19 14:39:39 -05:00
tildearrow
09ed99f0b0
genesis extended channel 3 support.
...
as of today Furnace is able to play most Genesis songs without trouble.
bugs are expected, and fixes will arrive.
are you ready?
2021-05-18 16:02:49 -05:00
tildearrow
c766f98719
implement arp speed and arp tick
2021-05-18 02:53:59 -05:00
tildearrow
c0f7f12c89
misc fixes and new effects
...
- fix 8-bit samples
- 0C effect
- E3 effect
2021-05-18 02:29:17 -05:00
tildearrow
b2908413fe
FM: better pitch slide accuracy
...
so... it appears that pitch slides in Genesis system aren't truly linear
instead, they are "kind of linear". the frequency isn't linear, and when
it overflows the range of an octave, the high bit changes and the
frequency is shifted right
2021-05-18 01:20:38 -05:00
tildearrow
b34321b556
fix a tiny TL misbehavior
2021-05-18 00:43:00 -05:00
tildearrow
cf7aa9139c
TL change on out op fix
2021-05-17 16:32:56 -05:00
tildearrow
98180c3d23
now fix the volume slides in FM as well
2021-05-17 15:51:12 -05:00
tildearrow
9736b77401
better volume slide accuracy
...
volume slide seems to be kind of quirky:
- sliding all the way down and then up suddenly sets the vol to max
- apparently there is an overflow and the slide stops when it reaches
its boundaries (instead of continuing)
2021-05-17 15:06:11 -05:00
tildearrow
67847d79cf
attempt to fix the volume slide mess
...
also a fix to noise arps in basic mode in SMS
the volume slides will be an adventure as the behavior seems to be hard
to determine
2021-05-17 03:06:45 -05:00
tildearrow
bbd175e8f6
a
2021-05-16 20:49:56 -05:00
tildearrow
3a1019a08c
more fixes and tweaks
...
memory management party
2021-05-16 20:49:54 -05:00
tildearrow
2532401265
prepare for ch3 mode
2021-05-16 17:43:10 -05:00
tildearrow
dbc2e6285f
a lot of work
...
- round to nearest instead of round to zero in SMS period calc
- implement arpeggio
- implement arp macro (kinda)
- polish the SMS platform
- correct the DIV_CMD_PITCH range to 1 semitone
- fix PSG volume in Genesis
- use a better register write strat in Genesis
- fix a bug caused by legacy code
- implement ECxx command
- implement EDxx command
- implement SN noise mode command
- vibrato table is now 64 positions long (instead of 60)
2021-05-16 03:03:23 -05:00
tildearrow
f2c70df4a8
bind SMS platform to Genesis one
2021-05-15 16:59:57 -05:00
tildearrow
9a97c38cc6
implement more effects and bugfixes
...
enough to play time trax intro near flawless
2021-05-15 03:13:21 -05:00
tildearrow
eb692ca9a9
implement several effects
...
volume slides, vibrato, slides and portamento
2021-05-14 14:16:48 -05:00
tildearrow
775b88dae2
more playback work
2021-05-14 03:23:40 -05:00
tildearrow
d57a30e717
optimize by 0%
2021-05-13 13:22:44 -05:00
tildearrow
c5fa0a3d6d
it doesn't...
2021-05-13 03:18:54 -05:00
tildearrow
cb1c96ff1d
add a register write cache
...
improves quality and... wait!
2021-05-13 03:09:56 -05:00
tildearrow
45a6d70479
massive improvements to genesis playback
2021-05-13 02:39:26 -05:00
tildearrow
ea5c28829e
or
2021-05-12 19:18:48 -05:00
tildearrow
062a9837c0
G E N E S I S
...
without SN
2021-05-12 17:19:18 -05:00