Commit graph

251 commits

Author SHA1 Message Date
tildearrow
eb8849ce63 add disableSampleMacro flag for compatibility 2022-09-23 19:18:32 -05:00
tildearrow
5e2cefff94 dev117 - save the flag
also serves as marker version for this huge change
2022-09-23 13:36:23 -05:00
tildearrow
b9a4b568b6 i honestly don't agree with this compat flag 2022-09-23 13:28:57 -05:00
cam900
b05dafe297 Add compatible flag for Y8950 ADPCM Frequency 2022-09-24 00:24:30 +09:00
cam900
62ce5ae3ce Add compatible flag for PCE DAC volume (always enabled for now)
Fix furnacePCM detection for MSM6295
2022-09-23 23:41:55 +09:00
cam900
e00758d67c Merge branch 'master' of https://github.com/tildearrow/furnace into sample_macro 2022-09-22 23:02:01 +09:00
tildearrow
ac68419b78 implement KVS on YM2612 2022-09-22 01:18:41 -05:00
tildearrow
e22d7484cb dev115 - automatic system detection 2022-09-21 19:27:42 -05:00
tildearrow
a17f499384 ... 2022-09-21 16:52:04 -05:00
tildearrow
60abdd78a1 and yet another big endian fix 2022-09-21 16:45:05 -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
d82d7255d1 Merge branch 'master' of https://github.com/tildearrow/furnace into sample_macro 2022-08-31 19:18:15 +09:00
tildearrow
7f01eaec9d convert note/macro rel to note off on .dmf save 2022-08-30 23:59:38 -05:00
cam900
26d3e02dd8 Merge branch 'master' of https://github.com/tildearrow/furnace into sample_macro 2022-08-29 11:47:36 +09:00
tildearrow
645dcdf9a0 fix .dmf and arp macros 2022-08-28 02:57:40 -05:00
tildearrow
82703a165f fix non-STD instruments in C64/GB/PCE converting
to the wrong type
2022-08-28 01:12:57 -05:00
cam900
c44f03b1a3 Sync with master 2022-08-27 18:11:34 +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
tildearrow
e158591ccb even more fixes 2022-08-23 02:31:39 -05:00
tildearrow
226f43fea3 several important bug fixes to advanced arp macro 2022-08-22 19:09:08 -05:00
tildearrow
c009cb3536 dev112 - prepare for advanced arp macro
this new advanced arp macro offers more flexibility and reduces code duplication
it allows you to set each step of the macro to either relative or fixed mode
(instead of just one mode for the entire macro)

the UI is still a work in progress and doesn't work well

this change is big and may break things! further fixes incoming
2022-08-22 15:59:45 -05:00
tildearrow
2650fe609f dev111 - many macro changes
- max macro length is now 255
- loop/rel pos is now unsigned (255 = no)
- prepare for macro speed/delay
2022-08-22 02:13:33 -05:00
tildearrow
38afdd3378 dev110 - add cut/delay effect policy compat flag
INCOMPLETE!!!
2022-08-21 23:56:58 -05:00
tildearrow
c74d7fab37 dev108 - add SN period range compat flag
there's room for possible improvement
2022-08-19 18:46:19 -05:00
tildearrow
27555c3c0a aaaand more fixing 2022-08-19 04:45:59 -05:00
tildearrow
5c7338930f fix big-endian build (i think) 2022-08-19 01:26:11 -05:00
tildearrow
d1c5a4725b add option to save unused patterns
closes #106

also prepare for the pattern manager window
2022-08-16 03:42:17 -05:00
tildearrow
edddff8431 prepare for pattern optimization 2022-08-16 03:19:16 -05:00
tildearrow
20c5e14f26 FC loader: the final fixes for this night 2022-08-15 04:22:14 -05:00
tildearrow
206b3af12a FC loader: aaaaaaand more fixes 2022-08-15 03:40:04 -05:00
tildearrow
bef8cf5f5f FC loader: sample loop point and more fixes 2022-08-15 03:32:27 -05:00
tildearrow
4663534fa3 FC loader: preset waveforms, vibrato and stuff 2022-08-15 03:18:54 -05:00
tildearrow
15b4294532 FC loader: fix wave, sample and freq seq loading 2022-08-15 02:01:08 -05:00
cam900
7d83cbb7d6 Merge branch 'master' of https://github.com/tildearrow/furnace into sample_macro 2022-08-11 22:22:05 +09:00
cam900
d44f5f0b2b Prepare for backward and bi-directional loop 2022-08-11 22:21:54 +09:00
tildearrow
bccecc4c07 Game Boy: software envelopes, part 1 2022-08-10 16:27:29 -05:00
tildearrow
2b4b320a74 fix noMultiSystem setting being inverted 2022-07-27 02:36:48 -05:00
tildearrow
280592cf33 fix build 2022-07-26 01:42:34 -05:00
tildearrow
8d17500315 jlhafasjkhdgkdhjasfd 2022-07-25 19:45:49 -05:00
tildearrow
3ff8f3d860 FC loader: read slides 2022-07-25 19:09:42 -05:00
tildearrow
9a0609ae1a fix build... 2022-07-24 02:24:57 -05:00
tildearrow
588f3f737c preliminary Future Composer module loading
only loads patterns and doesn't deduplicate
conversion required to fit in the Furnace format (no transpose ins/note)
even the pattern loader itself isn't complete due to how different the
format is
2022-07-24 01:57:10 -05:00
tildearrow
8d88ac766c dev103 - store system name and other info in song 2022-07-23 17:02:03 -05:00
tildearrow
d004629a58 dev102 - new sample storage format 2022-07-22 02:29:01 -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
cam900
a5959ae7b9 Struct-ize sample map variable 2022-07-20 23:01:06 +09:00
tildearrow
f4a85bebff dev101 - fix SMSFM_intro.dmf 2022-07-04 01:43:59 -05: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
Ian Karlsson
5378974b96 Save the size of each block in a Furnace module 2022-05-27 21:42:14 +02:00
tildearrow
68cc84253c dev99 - major Fractal system change
7 channels instead of 8 - CSM only supported on ExtCh system
2022-05-27 05:13:10 -05:00
tildearrow
a776129c3d dev98 - YM2612: add Fractal system
partially done
2022-05-27 04:02:53 -05:00
tildearrow
7cf853797a fix .dmf saving 2022-05-26 17:42:30 -05:00
tildearrow
393d1c018d dev97 - add old octave boundary compat flag 2022-05-22 13:25:59 -05:00
tildearrow
cfa05143ab dev96 - add virtual tempo 2022-05-18 00:05:25 -05:00
tildearrow
85d9a52dee fix potential hangs in saveFur again 2022-05-15 11:37:15 -05: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
2fc637494f old .dmf loading improvements
- YMU759 samples are now properly loaded
- improvements to version 7 and 8 format handling
2022-05-14 17:23:33 -05:00
tildearrow
ffe582236c harden .fur file saver 2022-05-14 16:03:21 -05:00
tildearrow
106ebb52fa fix loading of pre-0.4 .dmf modules 2022-05-13 17:41:01 -05:00
tildearrow
8784fe5664 dev94 - add a full linear pitch mode, part 1 2022-05-10 03:51:18 -05:00
tildearrow
5e14177e4e YM2610(B): use f-num/block baseFreq calculation
also allow for different octave boundary f-nums depending on chip clock
2022-05-10 02:22:08 -05:00
tildearrow
05af3c147a .ftm loading progress (incomplete, not working) 2022-05-06 01:26:49 -05:00
tildearrow
202a528477 dev92 - GUI: customizable channel collapsing! 2022-05-04 23:36:03 -05:00
tildearrow
467036df2a implement extra FM effects (OPN, OPM and OPZ)
issue #38
2022-05-04 14:09:43 -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
66f5b2117f dev90 - linear pitch macro option 2022-04-28 00:26:21 -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
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
2a952b1a66 dev87 - C64 changes
issue #335
2022-04-25 17:55:48 -05:00
tildearrow
bd68ef5cc3 dev86 - SN duty macro phase reset fix 2022-04-24 18:12:18 -05:00
tildearrow
23be8d9336 the final piece of f-num/block work 2022-04-24 14:40:07 -05:00
tildearrow
b8c790bf79 dev84 - new compat flag and store macro modes 2022-04-18 00:52:29 -05:00
tildearrow
b77b9e61ec the ugliest way to fix klisje paa klisje 2022-04-15 00:47:25 -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
fd723763f6 fix serious issue! 2022-04-13 00:35:38 -05:00
tildearrow
fbf7f9304e dev83 - yet another E1xy/E2xy fix
and 17xx fix in ExtCh
2022-04-13 00:34:00 -05:00
tildearrow
8a49522e59 beta 1-3 .dmf loading
i did it
2022-04-11 01:41:45 -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
51207e58ad part 2 - finally 2022-04-10 16:52:03 -05:00
cam900
d3e5efe834 Prepare for macro refactoring 2022-04-10 14:01:55 +09:00
tildearrow
9e0e8f3345 dev80 - increase song limits
up to 256 patterns
up to 256 orders
2022-04-08 17:21:36 -05:00
tildearrow
5bd076d13e initial bring-up of the wave synth
issue #16
2022-04-08 02:11:33 -05:00
tildearrow
5d52ef7f00 support .dmf with 6-bit wavetables 2022-04-07 20:13:11 -05:00
tildearrow
ad09254cf4 dev78 - new compat flag that fixes ExtCh 2022-04-07 01:14:34 -05:00
tildearrow
4ba50b433a FDS: .dmf wavetables will be 6-bit soon 2022-04-05 15:14:48 -05:00
tildearrow
258a905aaa harden .dmf loader
issue #325
2022-04-04 14:15:26 -05:00
tildearrow
3a7a132f02 harden Furnace file loader
issue #325
2022-04-04 14:04:36 -05:00
tildearrow
81150d96fa FDS: add FDS ins type auto-detection on .dmf 2022-04-04 04:57:38 -05:00
tildearrow
ac3772c024 initial FDS bring-up 2022-04-03 22:37:16 -05:00
tildearrow
d112cd0c68 what? 2022-04-03 17:22:44 -05:00
tildearrow
3a59e260d8 prepare for handling of FDS .dmf 2022-04-03 17:14:12 -05:00
tildearrow
d63ddda402 FDS preparation work DOES NOT COMPILE 2022-04-03 16:02:25 -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
154ef3f9a3 Amiga: filter emulation 2022-03-26 23:39:20 -05:00
tildearrow
b514ee30da MOD import: non-linear pitch 2022-03-26 22:34:11 -05:00
tildearrow
9b6e582f8d dev72 - two more compat flags 2022-03-26 22:15:15 -05:00
tildearrow
bd36a4ffdc dev71 - more compatibility flags for .mod 2022-03-23 23:57:10 -05:00
tildearrow
711b60d454 improved mutex locking - less xruns when seeking
especially in JACK and macOS
2022-03-23 21:38:28 -05:00
tildearrow
ac79e7d6af add broken speed alternation flag - dev70 2022-03-23 01:35:57 -05:00
tildearrow
cec5def347 what?
unacceptable.
2022-03-21 21:47:27 -05:00
tildearrow
1003d9fcb8 GUI: more "modified" status situations
fixes #236
2022-03-21 16:17:51 -05:00
tildearrow
8c961f0aae add backup functionality - UNTESTED 2022-03-21 14:11:28 -05:00
James Alan Nguyen
e032580639 Started SBI import work (Issue #79 SBI task). Also ensure catch by reference not value. 2022-03-20 00:55:34 +11:00
tildearrow
d63f3d311b fix arpeggio not resetting note to base on 0000 2022-03-17 16:37:49 -05:00
tildearrow
02e9edbad9 unlock the power of DECIMAL HZ! 2022-03-15 23:30:15 -05:00
tildearrow
02760ddcbc MOD import: fix brainless 3
duration 0:00
2022-03-15 22:16:47 -05:00
tildearrow
4afd3b3ff1 MOD import: coding style and uninit fix 2022-03-15 21:45:31 -05:00
tildearrow
0a307fc4a6 MOD import: more improvements
- prepare for old Soundtracker MOD import
- add "bypass limits" flag - dope.mod plays correctly now
- automatic channel names
2022-03-15 18:32:15 -05:00
tildearrow
ff2b3e77a0 MOD import: don't complain about end of file
I gotta figure out how to fix this
2022-03-15 18:02:29 -05:00
tildearrow
219c5a0522 MOD import: add some stereo separation 2022-03-15 04:23:27 -05:00
tildearrow
f4c3f5a17f MOD import: fix klisje 2022-03-15 03:25:38 -05:00
tildearrow
1918f59f57 don't error out all the time 2022-03-15 02:52:22 -05:00
tildearrow
a65df5cdab OPL: pretend to be YMU and enable SOME emulation? 2022-03-15 00:33:57 -05:00
tildearrow
8012676993 MOD import: crash fix 2022-03-14 17:16:43 -05:00
tildearrow
d7b967c41e Revert "MOD import: don't use linear pitch"
This reverts commit 977d23bc3a.
2022-03-14 16:36:15 -05:00
tildearrow
977d23bc3a MOD import: don't use linear pitch
improves vibrato
2022-03-14 16:33:13 -05:00
tildearrow
d2458a8ae8 MOD import: use 436Hz tuning 2022-03-14 16:29:13 -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
157e27eff5 Make it work on GCC (hopefully) 2022-03-14 23:26:54 +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
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
2a0aa19b2b fix broken DAC mode
adds new compat flag
2022-03-11 22:11:33 -05:00
cam900
65149a466f Fix accidently auto-generated spaces 2022-03-08 00:15:21 +09:00
tildearrow
e07caddc92 fix samples being cut at times 2022-03-05 01:26:59 -05:00
tildearrow
8e5b3abab8 add two more compatibility flags
issue #167 and #249:
- stop porta on note off
- continuous vibrato
2022-03-03 23:14:38 -05:00
cam900
ee013ad7a9 Merge branch 'master' of https://github.com/tildearrow/furnace into ym2610b 2022-02-27 06:41:11 +09:00
tildearrow
271b3fb0fe OPLL: 80%
accuracy fixes pending though
then macros and then drum mode
2022-02-26 03:27:37 -05:00
cam900
cd4c876c5e Merge branch 'master' of https://github.com/tildearrow/furnace into ym2610b
# Conflicts:
#	src/engine/engine.cpp
#	src/engine/playback.cpp
2022-02-25 23:47:28 +09:00
tildearrow
37f850c6c4 prepare for OPLL system - DOES NOT WORK 2022-02-25 04:26:01 -05:00
cam900
d831a522a4 Merge branch 'master' of https://github.com/tildearrow/furnace into ym2610b
# Conflicts:
#	src/engine/engine.cpp
#	src/engine/platform/ym2610Interface.cpp
2022-02-25 12:20:00 +09:00
tildearrow
4b6d9adcb9 volume changes
as of now the master volume is 1.0x (it was 2.0x before)
NES has also been amplified.
these changes should not affect older songs.
2022-02-24 17:56:19 -05:00
cam900
1e2d5694b9 Prepare to support YM2610B and with Extended channel 3 mode
Allow 8 bit volume for YM2610 ADPCM-B
Remove sample mode macro in YM2610, it's always enabled and seperated channels.

TODO: ADPCM-B is still not implemented, FM Channel 2 is silenced in extended channel 3 configuration
2022-02-25 01:02:35 +09: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
3542229448 better sample loading in really old .dmf files 2022-02-24 00:05:11 -05:00
tildearrow
92e1553014 yay + prepare for sample system changes 2022-02-23 22:00:20 -05:00
tildearrow
ccfed873e8 system master race 2022-02-23 21:53:07 -05:00
tildearrow
319c559f47 compound system flattening, part 2
.dmf saving implemented. only available for the following setups:
- YM2612 + SMS = Genesis
- YM2612 ext3 + SMS = Genesis ext3
- YM2151 + SegaPCM compat = Arcade
- SMS + OPLL = SMS with FM expansion
2022-02-23 03:19:32 -05:00
tildearrow
e4b9a6d1d9 compound system flattening, part 1
as of now compound systems (Genesis and Arcade) are translated to
separate chips.

this improves audio quality and makes things easier.

it also allows you to change the volume of each chip on a Genesis.

also adds SegaPCM system with 16 channels!
2022-02-23 02:52:30 -05:00
Ian Karlsson
b3908216f8 Implement QSound support 2022-02-22 11:36:12 +01:00
tildearrow
6d6d30cbf3 set compatibility flags for 1.1 modules 2022-02-22 00:32:23 -05:00
tildearrow
fa363384aa 1.1 .DMF saving
as of now you're given a choice between 1.1 and 1.0 module
2022-02-20 03:18:20 -05:00
tildearrow
68eecb723f fix bugged notes in .dmf 2022-02-19 23:11:20 -05:00
tildearrow
cda18d32b3 store pattern names 2022-02-19 18:18:12 -05:00
tildearrow
464ad5a825 preliminary 1.1 .dmf loading 2022-02-19 02:52:53 -05:00
tildearrow
9eb6d1cfc1 logW -> logE 2022-02-19 00:00:21 -05:00
tildearrow
650beebe99 split VGM ops code 2022-02-18 12:58:36 -05:00