Compare commits

...

695 Commits

Author SHA1 Message Date
tildearrow ec4063641a GUI: fix sample preview needle visible when switch
ing samples
2023-09-05 15:38:02 -05:00
tildearrow 803c8b0582 GUI: update intro
ticket #1453
2023-09-05 15:31:27 -05:00
tildearrow fc760eed43 GUI: fix cut off text in settings 2023-09-05 15:30:53 -05:00
tildearrow eb18b28928 workPool: improvements 2023-09-05 06:02:58 -05:00
tildearrow d42b503e81 GUI: update credits 2023-09-05 05:33:23 -05:00
tildearrow 2c0ae7c8bb reduce intro volume, part 1 2023-09-05 04:55:22 -05:00
tildearrow 5f0fe2c8f7
READY! DOWN! HUT HUT HUT HUT HUT HUT HUT HUT HUT
****** CHANGE SIDES ******
NEXT DEFENSE      NEXT OFFENSE
2023-09-05 04:42:35 -05:00
tildearrow 1da000b00c GUI: per-chan osc multi-threading! 2023-09-05 04:38:57 -05:00
tildearrow c99899a002 GUI: re-organize chan osc code
prepare for possible multi-threading
2023-09-04 18:54:33 -05:00
tildearrow 55eeb241cf this won't build 2023-09-04 18:35:18 -05:00
tildearrow ad7b4f61b5 YM2612: fix missing 30xx effect 2023-09-04 15:02:19 -05:00
tildearrow 2ca5856800 a fix 2023-09-04 04:25:21 -05:00
tildearrow 60df7e26f4 GUI: even more chan osc improvements 2023-09-04 04:14:47 -05:00
tildearrow ab7b26a2e7 GUI: improve chan osc wave centering 2023-09-04 01:18:48 -05:00
tildearrow 7a78ec1b60 GUI: optimize chan osc
don't process FFT if not loud enough
don't process DFT if we couldn't determine wave length
2023-09-03 20:09:03 -05:00
tildearrow 90980a3062 GUI: center chan osc 2023-09-03 19:08:30 -05:00
tildearrow 83c64aa4b4 fix the crash
the hell? one double and suddenly it crashes on Android?
2023-09-03 17:18:31 -05:00
thacuber2a03 25a83bf1b9 add sweatsmile bossfight 2023-09-03 14:12:56 -04:00
tildearrow 7ea5f2de07 remove some debug info 2023-09-03 04:22:17 -05:00
tildearrow f6db75fae1 GUI: massive chan osc improvements 2023-09-03 04:22:00 -05:00
tildearrow 19d0ed617a what? 2023-09-02 23:57:55 -05:00
tildearrow 20ed22d6e8 Revert "."
This reverts commit b26a76f343.
2023-09-02 23:07:09 -05:00
tildearrow b26a76f343 . 2023-09-02 22:46:46 -05:00
tildearrow ef23b88ad3 NES: fix chan osc (noise, NSFplay) 2023-09-02 03:58:11 -05:00
tildearrow 716d42ee6d IGFD: fix .* filter with label 2023-09-01 19:59:43 -05:00
tildearrow 1c171ed7bd GUI: de-duplicate file dialog filters
untested. may not work...
2023-09-01 18:33:32 -05:00
tildearrow c21f880e3e GUI: update credits 2023-09-01 18:33:08 -05:00
tildearrow 4f02f1f90b update settings.md 2023-09-01 16:43:08 -05:00
tildearrow 65cd433ac7 fix hang detection (DirectSound) 2023-08-31 04:46:52 -05:00
tildearrow 5a9402abcd fix build 2023-08-31 04:39:19 -05:00
tildearrow fa7405090e add WASAPI exclusive mode flag to PortAudio backen
d
2023-08-31 04:30:49 -05:00
tildearrow be38b992e3
Merge pull request #1446 from Eknous-P/partnums
update part numbers
2023-08-31 03:24:30 -05:00
tildearrow addbc986f0 ExtCh: fix forceIns
why KVS
2023-08-31 03:23:15 -05:00
Eknous 914855d751
Merge branch 'tildearrow:master' into partnums 2023-08-31 12:16:16 +04:00
Eknous-P 2a370dbb1f update part numbers
fix opl/opll cases
rm "MOS" from sids
c219 case
2023-08-31 12:15:29 +04:00
tildearrow b315b84e31 GUI: clear out audio dev when changing backend 2023-08-31 03:01:38 -05:00
tildearrow 35aeb51b79 ugh why 2023-08-31 02:31:33 -05:00
tildearrow 05d5eb5ca3 asd 2023-08-31 02:19:27 -05:00
tildearrow 879e770e58 and again 2023-08-31 02:09:54 -05:00
tildearrow 7f35d06ccb why does this happen 2023-08-31 01:59:37 -05:00
tildearrow 43ef57390a GUI: clamp CWSliders 2023-08-31 01:52:11 -05:00
tildearrow 4ad1ae78fa ASDFGHJKL 2023-08-31 01:43:19 -05:00
tildearrow a882d7bcf2 GUI: detect UI scale factor when moving window 2023-08-31 01:24:06 -05:00
tildearrow 9caa2f38f4 SoundUnit: fix getPan() 2023-08-31 00:42:25 -05:00
tildearrow 5140acd51f
Merge pull request #1443 from tildearrow/doc-general
Small documentation fixes and improvements.
2023-08-31 00:20:18 -05:00
tildearrow 9aacc706f1 Merge branch 'master' into doc-general 2023-08-31 00:20:05 -05:00
Electric Keet fb3a3890d5 And the rest of the fixes. 2023-08-30 22:18:15 -07:00
Electric Keet 29c2879397 Small correction. 2023-08-30 22:07:06 -07:00
tildearrow 8b3fc84b51 don't show JACK/PA backends if not available 2023-08-30 23:23:27 -05:00
tildearrow 922800d864 oh crap 2023-08-30 23:14:47 -05:00
tildearrow 274ce8a646 remove many TODOs 2023-08-30 19:21:38 -05:00
tildearrow d1b78f787b update credits 2023-08-30 17:38:45 -05:00
tildearrow 68787a4d8b add PortAudio backend - PLEASE READ
PLEASE DO:

```
git submodule update --init --recursive
```

AFTER PULLING THIS COMMIT.
2023-08-30 17:32:51 -05:00
Electric Keet 1ebf828743 A couple more slight edits.
Typo fix and update for new macro props indicator, just to show what that looks like.
2023-08-30 14:13:06 -07:00
tildearrow 7d605c9d76 GUI: why do I see a 0.5 reference 2023-08-30 14:27:29 -05:00
tildearrow 80013089a2 GUI: colorize macro speed/delay button if used 2023-08-30 14:06:04 -05:00
tildearrow 5a688c58cb OPM/OPZ: invert noise frequencies
since ymfm is default
2023-08-30 13:46:47 -05:00
tildearrow 63dcacf33d dev170 - YM2151: fix noise frequency on ymfm
issue #1441
raising ver num to allow possible compat change
2023-08-30 13:35:22 -05:00
tildearrow 426d4b44f0 dang it let me freeze 2023-08-30 13:12:25 -05:00
tildearrow 6ac4529f3b possibly fix HiDPI input problem on macOS/Wayland
issue #1425
2023-08-30 05:21:33 -05:00
tildearrow ff3cebfffd
Merge pull request #1022 from tildearrow/x1_010_bank
Add Seta 2 Bankswitch support
2023-08-30 02:22:18 -05:00
tildearrow fda2ca0645 introduce p r e - e f f e c t s
the ultimate fix to #1439
2023-08-30 02:17:16 -05:00
tildearrow da259a33b7 GUI: fix orders scroll 2023-08-30 01:31:25 -05:00
tildearrow 5da54a7678 update ImGui to 1.89.8
commit f8704cd085c4347f835c21dc12a3951924143872
with Furnace patches
2023-08-30 00:42:51 -05:00
tildearrow 23a1fd4796
Merge pull request #1438 from tildearrow/ui-settings-keyboard
Complete keyboard settings.
2023-08-29 18:58:32 -05:00
tildearrow 015899a43f GUI: fix cursor inconsistency after stop
issue #1424
2023-08-29 18:54:08 -05:00
Electric Keet 6fb738294a Don't need the default note keys table. 2023-08-29 16:33:47 -07:00
tildearrow d38ff59cb8 GUI: fix pattern play flicker 2023-08-29 18:13:01 -05:00
tildearrow f9237dc69c GUI: fix input pad flickering
issue #1436
2023-08-29 17:16:10 -05:00
tildearrow d7f3be70c6 GUI: fix wrong cursor pos on step row 2023-08-29 17:06:40 -05:00
tildearrow de34b5c9c4 K053260: implement ADPCM 2023-08-29 16:43:37 -05:00
Electric Keet e65e79f192 Complete keyboard settings.
All* the settings are here now!

* minus the one that shouldn't be
2023-08-29 11:24:47 -07:00
Electric Keet da5d110e73 Doc update for new features. 2023-08-29 10:52:07 -07:00
tildearrow 4abae260f4 implement K05 ADPCM 2023-08-29 06:23:38 -05:00
tildearrow 61b0179da1 kind of implement K05 ADPCM
low quality
2023-08-29 06:16:07 -05:00
tildearrow 32ec87ca27 prepare for K05 ADPCM 2023-08-29 04:26:25 -05:00
tildearrow eaac5cc224 C219: fix VGM export
a sample word has two 8-bit samples in reverse order
(need hardware confirmation)
2023-08-29 04:09:11 -05:00
tildearrow e7fe99f795 C219: fix VGM export crash 2023-08-29 03:42:16 -05:00
tildearrow ead19d6111 C219: fix bank restore 2023-08-29 03:40:40 -05:00
tildearrow ca51ee9f32 C219: fix bank note off 2023-08-29 03:38:59 -05:00
tildearrow fccb6aff6e GUI: C219 in sample editor 2023-08-29 03:33:34 -05:00
tildearrow eff22ae7b9 fix µ-law encoder 2023-08-29 03:26:32 -05:00
tildearrow e6c52e34d1 C219: finish C219 sample format 2023-08-29 03:19:26 -05:00
tildearrow da7ad75afd C219: fix audio 2023-08-29 02:32:59 -05:00
tildearrow 87ae995ff9 MSM5232: fix chan osc again
issue #1435
2023-08-29 02:14:55 -05:00
tildearrow 8d887058ec YESSSSSSSSS
disable SSE on the 32-bit Windows builds
2023-08-29 02:01:56 -05:00
tildearrow a5f351c232 C219: new sample format (work in progress) 2023-08-28 20:31:22 -05:00
tildearrow 9cb239438e C219: chip config and proper clock rate 2023-08-28 18:37:35 -05:00
tildearrow 35faa8c23c C219: presets and VGM export 2023-08-28 18:21:49 -05:00
tildearrow 2fddd9e4d4 C219: noise/invert/surround effects/macro 2023-08-28 17:59:34 -05:00
tildearrow 980c93aac4 CRAP 2023-08-28 17:01:22 -05:00
tildearrow 044859f6d1 GUI: add option to choose between chip menus and
chip manager in File menu
2023-08-28 17:00:39 -05:00
Electric Keet 2813e8e3b3 Merge branch 'master' into doc-general 2023-08-28 14:51:17 -07:00
tildearrow cfd5131081
Merge pull request #1434 from tildearrow/doc-general
Docs update for 0.6pre9.
2023-08-28 16:50:00 -05:00
tildearrow decd2fde0f MSM5232: work around possible chip quirk
when changing control, it seemingly retriggers all channels
issue #1433
2023-08-28 16:36:26 -05:00
tildearrow f07ad0044b Merge branch 'master' of github.com:tildearrow/furnace 2023-08-28 16:02:56 -05:00
tildearrow 281598812c fix FFxx and "reset channels" loop modality
issue #1427
2023-08-28 16:02:29 -05:00
Electric Keet 0b5afcb8d6 Docs update for 0.6pre9. 2023-08-28 13:58:33 -07:00
tildearrow 74bd071873
Merge pull request #1415 from tildearrow/ui-chanosc-rearrange
Move chanOsc "Center waveform" option to next line.
2023-08-28 14:42:36 -05:00
tildearrow 2ea43329a2
Merge pull request #1432 from tildearrow/letter-icons
Adding C219 to letter icons (again).
2023-08-28 14:42:11 -05:00
Electric Keet ed05c16d95 Adding the missing TableNextRow. 2023-08-28 10:39:40 -07:00
tildearrow 684633aa1e GUI: preview sample button in unified assets
issue #1430
2023-08-28 06:37:13 -05:00
tildearrow f5ac9b13b6 GUI: fix crash inducing typo
issue #1429
2023-08-28 06:17:42 -05:00
tildearrow 2357093bc8 GUI: fix image loading (big endian) 2023-08-28 05:58:46 -05:00
tildearrow bd730cbeec GUI: furIcon big endian fix 2023-08-28 05:44:38 -05:00
tildearrow 347b3cf2b1 fix missing big endian writeI_BE 2023-08-28 05:32:09 -05:00
tildearrow 628ddc91ca fix void pointer 2023-08-28 05:09:48 -05:00
tildearrow bcf877b7ca C219: fix out of bounds access 2023-08-28 04:12:09 -05:00
tildearrow 4e3de466ce C219: looooooool 2023-08-28 04:10:48 -05:00
tildearrow 23a70381c6 fix type limits, part 2 2023-08-28 04:06:25 -05:00
tildearrow 0e7dbf7b4a fix type limits, part 1? 2023-08-28 04:03:32 -05:00
tildearrow 7ea7f72b45
Merge pull request #1422 from Eknous-P/guimprove
Numerous GUI improvements
2023-08-28 03:02:50 -05:00
tildearrow 284a4f39ad :< 2023-08-28 03:02:35 -05:00
Electric Keet d65df2facd Adding C219 to letter icons.
This time for real.
2023-08-28 00:38:52 -07:00
Eknous-P cd2d60ac58 table stuff into if 2023-08-28 10:37:51 +04:00
Electric Keet ac7e05550a Merge branch 'master' into letter-icons 2023-08-27 23:23:21 -07:00
Electric Keet 7a6cbcc00d Adding C219 to letter icons. 2023-08-27 23:18:37 -07:00
Eknous 06f2595861
formatting 2023-08-28 10:00:32 +04:00
Eknous 4078da6685
Merge branch 'tildearrow:master' into guimprove 2023-08-28 09:42:30 +04:00
tildearrow 288441617b C219: more updates 2023-08-27 23:04:40 -05:00
tildearrow 26f6f22ef5 C219: more updates
to-do:
- VGM export
- presets
- noise/invert toggles
2023-08-27 20:05:08 -05:00
tildearrow 859182bb08 C219: initial work 2023-08-27 18:46:59 -05:00
tildearrow 80961354f7 prepare for C219 2023-08-27 18:46:59 -05:00
tildearrow 886e311c0d
Merge pull request #1416 from tildearrow/doc-general
Assorted documentation upkeep.
2023-08-27 16:27:22 -05:00
tildearrow 17a88fda70 C140: update emulator
with the one from C219 branch
2023-08-27 15:52:54 -05:00
Electric Keet ba25910d48 Requested fixes. 2023-08-27 08:55:06 -07:00
Eknous 7a87702518
Merge branch 'tildearrow:master' into guimprove 2023-08-27 15:05:50 +04:00
tildearrow 440cbff5e4 GUI: update credits 2023-08-27 04:14:50 -05:00
tildearrow 64e6cf12c2 GUI: re-apply UI settings when displays are connec 2023-08-27 03:58:01 -05:00
Eknous-P 65fbdba831 wavetable list selectable sizing fix 2023-08-27 12:49:53 +04:00
tildearrow 0e19716dcd GUI: auto-detect scale factor on settings change 2023-08-27 03:31:26 -05:00
tildearrow f53bc88242 ES5506: make chan osc louder 2023-08-27 03:26:32 -05:00
tildearrow 2d5fcf8aca how could I not expose this compat flag 2023-08-27 03:19:00 -05:00
Eknous-P 4eda4aeb39 revert icon changes 2023-08-27 10:18:39 +04:00
Eknous-P fdd9b598a7 revert additive hint 2023-08-27 10:15:28 +04:00
Eknous 8192a8e0f6
Merge branch 'tildearrow:master' into guimprove 2023-08-27 10:03:06 +04:00
tildearrow dee7a1820d OPZ: fix ALG/FB macro keying off 2023-08-27 00:35:56 -05:00
tildearrow 76746dcb28 what is going on 2023-08-26 19:18:39 -05:00
tildearrow bd92347950 fix the release scripts 2023-08-26 13:09:01 -05:00
tildearrow 962943185d split 32-bit Windows release 2023-08-26 12:55:32 -05:00
tildearrow 338b67da9c Revert "re-enable DX11 on 32-bit Windows build"
This reverts commit 510bcfb56d.
2023-08-26 12:47:02 -05:00
tildearrow 2c99bc9593 Revert "oh no there's a problem"
This reverts commit 29651aabfd.
2023-08-26 12:45:06 -05:00
Electric Keet 9a9b69c319 Merge branch 'master' into doc-general 2023-08-26 10:33:01 -07:00
tildearrow b6448e8c0d disable Werror on 32-bit build 2023-08-26 12:30:19 -05:00
tildearrow 29651aabfd oh no there's a problem
why did I not remove this before? now Yuzu is mad at me
2023-08-26 11:54:25 -05:00
Eknous-P 6fa746f04d uncolor grooves remove tooltip 2023-08-26 16:30:17 +04:00
Eknous-P a6b08b5449 Merge branch 'guimprove' of github.com:Eknous-P/furnace into guimprove 2023-08-26 16:16:00 +04:00
Eknous-P a7eb62a5d6 add sample add add color 2023-08-26 16:15:40 +04:00
Eknous fb67357cf8
Merge branch 'tildearrow:master' into guimprove 2023-08-26 16:09:55 +04:00
Eknous-P 19f7376337 the rest of the add colors 2023-08-26 16:09:27 +04:00
Eknous-P 0dbe1b401f some pushaddcolor's and improve grooves 2023-08-26 16:01:56 +04:00
Eknous-P 9e405e86fa improve find/replace 2023-08-26 15:49:06 +04:00
Eknous-P 3c38a79801 more pushdestcolor 2023-08-26 15:37:28 +04:00
Eknous-P f0bcb1c06a add color push/pop 2023-08-26 15:24:32 +04:00
Eknous-P ccdd5693c6 additive hint 2023-08-26 15:16:38 +04:00
freq-mod b5d6971f93
Update sms.md
Noise mode descrption
2023-08-26 13:10:05 +02:00
Eknous-P 6250dd970f improve font settings 2023-08-26 14:20:53 +04:00
Eknous-P eef3dacc78 indent 2023-08-26 14:03:34 +04:00
Eknous-P b993d4b58d improve audio settings 2023-08-26 14:01:39 +04:00
Eknous-P 89921b1ff3 improve inital sys steeings 2023-08-26 13:53:01 +04:00
Eknous-P a832adeac5 chanosc gradient point remove is red 2023-08-26 13:35:26 +04:00
tildearrow 3dd4f3e7e8 release v0.6pre9
also fix a bug in TL macro compat
2023-08-26 03:36:28 -05:00
tildearrow 29fa249227 GUI: really fix wave synth display issues
issue #1417
2023-08-26 03:13:17 -05:00
tildearrow a17f7249d6 update settings doc
with clarifications
2023-08-25 20:41:50 -05:00
tildearrow 324fce3b1c GUI: hide sample ROMs option
OPL4 won't make it to 0.6
2023-08-25 20:41:13 -05:00
tildearrow 16bc35d75b manual system recent file tracking
issue #1406
2023-08-25 18:32:34 -05:00
tildearrow 2b0feefe28 don't add to recent
issue #1406
2023-08-25 18:13:00 -05:00
tildearrow bd95a76a48 fix nextOrder still happening after FFxx
issue #1408
2023-08-25 17:51:10 -05:00
tildearrow 41316860a5 GUI: fix wave synth display issues
issue #1417
2023-08-25 17:36:47 -05:00
tildearrow 6c5ea4b950 fix step length in macroInt 2023-08-25 17:22:04 -05:00
tildearrow c4b23e8643 K007232: fix (?) loop marker being output
issue #1409
2023-08-25 16:28:20 -05:00
tildearrow 55d7a5e9bc K007232: oscBuf was too fast 2023-08-25 04:18:22 -05:00
tildearrow 91c3c04082 fix again.... 2023-08-25 03:47:09 -05:00
tildearrow c3b5004e66 fix TL macro compat for ADSR/LFO 2023-08-25 03:38:17 -05:00
Electric Keet f4c778d90e A few more small edits.
Right-clicking every widget to see what happens....
2023-08-24 23:33:32 -07:00
Electric Keet 98a95e83c6 Assorted documentation upkeep. 2023-08-24 23:14:06 -07:00
tildearrow 06840de4c7 fix the macroInt fixes 2023-08-24 20:22:41 -05:00
tildearrow 8a1ba5a544 NFD click callback should return S_OK on OK 2023-08-24 15:34:16 -05:00
tildearrow 2b007a03e0 code style 2023-08-24 15:33:53 -05:00
tildearrow 4999d9a387
Merge pull request #1410 from GermanAizek/master
More optimize inserts using reserve()
2023-08-24 15:32:28 -05:00
tildearrow f5f1a29486 macroInt fixes
issue #1412
2023-08-24 15:28:04 -05:00
tildearrow a31b847f32 GUI: don't show wave macro for beeper ins 2023-08-24 14:59:17 -05:00
tildearrow 9bf736a513 GUI: tweak SNES ins editor 2023-08-24 14:52:18 -05:00
tildearrow 6e28a8b01c WaveSynth: fix distorted sound
issue #1411
2023-08-24 14:23:00 -05:00
Герман Семенов 1cbb61ec27 More optimize inserts using reserve()
Signed-off-by: German Semenov <GermanAizek@yandex.ru>
2023-08-24 19:08:06 +03:00
tildearrow d4e60e0c03
Merge pull request #1403 from tildearrow/macro-values-fix
Fix macro mode changes resetting Bottom and Top.
2023-08-24 04:32:17 -05:00
tildearrow cb0a8396c4 improve 2023-08-24 04:31:32 -05:00
tildearrow 95b0b25011 Merge branch 'master' into macro-values-fix 2023-08-24 03:43:56 -05:00
tildearrow 009b9f74df Merge branch 'master' of github.com:tildearrow/furnace 2023-08-24 03:39:17 -05:00
tildearrow d36b43415f fix getPan() on VERA and MSM6258 2023-08-24 03:39:05 -05:00
tildearrow 972c66812b
Merge pull request #1407 from tildearrow/doc-general
Cleaning up the AY envelope guide.
2023-08-24 03:26:45 -05:00
tildearrow d240066df8 fix issue #1371 2023-08-24 03:25:38 -05:00
tildearrow 31335b95c9 finish it 2023-08-24 03:05:25 -05:00
Electric Keet 01a5c6c4f9 Cleaning up the AY envelope guide.
Lots of formatting, small corrections, and edits for clarity.
2023-08-23 23:33:17 -07:00
tildearrow c9cbf133d6 Eknous please HELP ME 2023-08-23 17:25:05 -05:00
tildearrow 62a1a383ee dev168 - new behavior for porta in C64 2023-08-23 12:50:22 -05:00
tildearrow b946c35fa7 GUI: don't update FM/wave synth preview twice
issue #1404
2023-08-23 12:21:39 -05:00
Electric Keet 92773adb37 Correcting an ampersand.
Little things like this make a difference.
2023-08-23 09:47:31 -07:00
tildearrow e4e92f9af3 too many buttons 2023-08-23 04:29:17 -05:00
tildearrow 7e63692f60 improve demo song 2023-08-23 02:22:49 -05:00
tildearrow 5c71b64195 GUI: improve wavetable tab in ins edit 2023-08-23 02:19:36 -05:00
tildearrow f22910d8e2 Merge branch 'master' of github.com:tildearrow/furnace 2023-08-22 20:23:57 -05:00
tildearrow 577d6fd4d4 GUI: fix expand selection upwards 2023-08-22 20:23:21 -05:00
Electric Keet cae3fa43b2 Move chanOsc "Center waveform" option to next line. 2023-08-22 15:15:49 -07:00
Electric Keet ab76546f7a Fixing the fix.
This checks for both values being set to zero (their freshly-initialized state, which shouldn't happen in normal use) and sets them to proper defaults if so. Otherwise, it uses what was already there.
2023-08-22 14:23:32 -07:00
Electric Keet 4a9bf44b56 Fix macro mode changes resetting Bottom and Top. 2023-08-22 13:24:45 -07:00
tildearrow 5d3aedbbc1
Merge pull request #1390 from tildearrow/doc-general
Minor updates and cleanup of docs.
2023-08-22 05:38:45 -05:00
tildearrow cc8c79375d add demo song
by tildearrow
2023-08-22 04:14:35 -05:00
tildearrow e79f0b652a prepare to add release texts 2023-08-22 04:13:38 -05:00
tildearrow 7ba5b172d5 GUI: finally fix scroll changes order 2023-08-22 02:30:33 -05:00
tildearrow 251893c5f8 Lynx: fix sample mode switching glitch
issue #1372
2023-08-22 00:25:23 -05:00
tildearrow 54934dcfc9 dev167 - fix TL macro
previously, 127 mapped to TL 0
but now 127 maps to TL 127

yeah, the graph will look inverted I know...
2023-08-21 23:57:07 -05:00
tildearrow b35235b82e GUI: OPZ preview
it's complete
2023-08-21 22:41:35 -05:00
tildearrow 97b6b39049 GUI: OPL preview 2023-08-21 22:20:31 -05:00
tildearrow 70f774312b GUI: OPLL preview 2023-08-21 19:56:22 -05:00
tildearrow e1140c5015 GUI: OPM preview 2023-08-21 19:27:19 -05:00
tildearrow bcb8fdbf06 no longer crashes 2023-08-21 17:41:41 -05:00
tildearrow 617ee5e324 THIS CRASHES 2023-08-21 17:24:41 -05:00
tildearrow 18dc353392 GUI: why are there DPCM settings on FDS... 2023-08-21 16:16:50 -05:00
tildearrow f3c438eee5 GUI: use less video memory
don't oversample icons, big font and header font
2023-08-21 16:03:16 -05:00
Electric Keet ce9a023993 Exorcising two newlines.
Extra vertical space above a level 1 header is evil. _Evil._
2023-08-21 13:16:04 -07:00
tildearrow bb874d9415 move use math defines to top 2023-08-21 15:07:28 -05:00
tildearrow 2bf5392f7b split sample loading functions 2023-08-21 14:56:10 -05:00
tildearrow 4776eaed68 split audio/command stream export functions
into two other source files
2023-08-21 14:49:31 -05:00
Electric Keet c4f3930e3c Merge branch 'doc-general' of https://github.com/tildearrow/furnace into doc-general 2023-08-21 12:35:22 -07:00
Electric Keet ef410b7d73 Losing disclaimer. 2023-08-21 12:35:15 -07:00
Electric Keet f4726190b7
Merge branch 'master' into doc-general 2023-08-21 12:34:51 -07:00
tildearrow 510bcfb56d re-enable DX11 on 32-bit Windows build 2023-08-21 14:30:08 -05:00
tildearrow 94d8076a58 fix hang 2023-08-21 14:25:22 -05:00
tildearrow f5a881917f fix 2023-08-21 14:18:04 -05:00
tildearrow 6ba8527cb6 fix some threading issues 2023-08-21 14:18:04 -05:00
freq-mod d0f498189c
Add AY hw env tutorial 2023-08-21 16:02:44 +02:00
tildearrow 33d932f548 PCM DAC: fix osc buf
issue #1393
2023-08-21 04:30:49 -05:00
tildearrow d74172680f GUI: prepare FM preview for the other OPs 2023-08-20 20:18:27 -05:00
tildearrow 80a9677b0e update readme again 2023-08-20 19:11:02 -05:00
tildearrow 91d7157b5d GUI: Amiga rate limit 2023-08-20 19:07:38 -05:00
tildearrow 6faf80b5c6 update readme 2023-08-20 19:07:29 -05:00
tildearrow 2efbf93853
Merge pull request #1389 from tildearrow/ui-pretty
Vertical label alignment for macros.
2023-08-20 18:56:27 -05:00
Electric Keet 4cf58b158e Gotta update these images too. 2023-08-20 14:48:47 -07:00
Electric Keet 9397f95499 Vertical label alignment for macros.
I don't know how I missed these. I use them constantly!
2023-08-20 14:39:03 -07:00
Electric Keet 46a078d62a More tweaks, fixes.
Getting rid of a bunch of unused images, replacing one that was supposed to be updated already, and a touch of added documentation on the instrument editor.
2023-08-20 14:23:24 -07:00
Electric Keet 13bb256075 Adding link to FM patch tutorial. 2023-08-20 12:33:19 -07:00
Electric Keet 036aac3b80 Updating docs to 0.6pre8. 2023-08-20 12:24:51 -07:00
tildearrow 9814d7dd88 GUI: why isn't there a wave reverse option yet 2023-08-20 01:41:01 -05:00
tildearrow 5720e5670d AAAAAAAAAAAA 2023-08-20 00:46:17 -05:00
tildearrow 7479296d54 UPDATE FMT TO 10.1.0 -> **PLEASE READ!** <-
after pulling this commit, type:

```
git submodule update extern/fmt
```
2023-08-20 00:25:01 -05:00
tildearrow e3eea680d5 ExtCh: panning macro
issue #1382
2023-08-19 23:52:13 -05:00
tildearrow f3167d2fc9 C140: fix possible overflow 2023-08-19 23:39:27 -05:00
tildearrow 993c5904e2 C140: fix possible crash 2023-08-19 23:30:35 -05:00
tildearrow 396f51c75f ExtCh: fix 18xx being a post effect 2023-08-19 19:19:14 -05:00
tildearrow 6fe98f1502 damn it 2023-08-19 18:54:35 -05:00
tildearrow 1dd02dd389 fix samples going away during audio export
issue #1387
2023-08-19 18:52:08 -05:00
tildearrow d68de019d6
Merge pull request #1385 from tildearrow/ui-pretty
Vertically centering labels.
2023-08-19 18:38:13 -05:00
tildearrow 75549bdd22
Merge pull request #1386 from tildearrow/doc-general
General docs updates.
2023-08-19 18:38:02 -05:00
Electric Keet 3075a58d0d Minor doc image updates.
With all the newly aligned labels, and a few things I noticed could use slight improvement...
2023-08-19 16:34:14 -07:00
Electric Keet 10ea584857 Vertically centering labels.
Oops, missed two!
2023-08-19 16:09:22 -07:00
tildearrow dba96812aa add more raw sample import options 2023-08-19 18:01:12 -05:00
Electric Keet 6ac9fd3d91 Documentation updates. 2023-08-19 15:55:33 -07:00
tildearrow c8222fd491 handle non-BMP characters
issue #1376
2023-08-19 16:50:21 -05:00
tildearrow 14d3baae56 GUI: invert cursor follows wheel
issue #1374
2023-08-19 16:25:08 -05:00
tildearrow 487065478d GUI: mark modified in channel list 2023-08-19 15:54:49 -05:00
tildearrow f352162151 GUI: make it clear
continuous vibrato
2023-08-19 15:47:49 -05:00
tildearrow 44781e9cac release v0.6pre8
hopefully the final "pre-release" before the freeze
2023-08-19 04:48:27 -05:00
tildearrow b384367aa8 Namco 163: fix compiler error 2023-08-19 04:38:13 -05:00
tildearrow c045fb5c26 update Linux release script 2023-08-19 04:35:37 -05:00
tildearrow 23dc1353ec change default render cores 2023-08-19 04:34:42 -05:00
tildearrow d10c3dca4d patch GetTickCount64 out from 32-bit Win release 2023-08-19 04:18:19 -05:00
tildearrow ffe8b5ed9c ExtCh: fix forceIns after 1800 2023-08-19 02:54:19 -05:00
tildearrow 6dd682b9fc IGFD: align text to frame padding 2023-08-19 02:30:04 -05:00
tildearrow cfaa220243 IGFD: fix tooltip not appearing 2023-08-19 02:29:23 -05:00
tildearrow 77fd6d6cd7
Merge pull request #1368 from Eknous-P/multicore
Options for separate emulation cores for real-time playback and exporting
2023-08-19 01:54:53 -05:00
Eknous-P f8a497e549 Merge branch 'multicore' of github.com:Eknous-P/furnace into multicore 2023-08-19 10:33:06 +04:00
Eknous-P eab7978556 tablesetcolumnindex -> tablenextcolumn 2023-08-19 10:32:36 +04:00
Eknous cbbf766ae5
Merge branch 'tildearrow:master' into multicore 2023-08-19 10:02:48 +04:00
tildearrow c38b3ed399 GUI: play around with oversample setting 2023-08-18 23:39:09 -05:00
tildearrow 6d5b313973 now the other OPNs 2023-08-18 04:10:16 -05:00
Eknous-P 3926c4276e oopsie 2023-08-18 12:44:50 +04:00
tildearrow 2f08407a73 GUI: custom sample editor icons, part 2 2023-08-18 03:39:08 -05:00
Eknous-P eb820eb9af make table 2023-08-18 11:34:08 +04:00
Eknous-P 74e803d4e9 redo core switching 2023-08-18 10:40:18 +04:00
Eknous-P 12d7911d1a Merge branch 'master' into multicore 2023-08-18 08:59:06 +04:00
tildearrow f2dd169e3d Game Boy: fix soft env volume after note off 2023-08-17 18:28:48 -05:00
tildearrow d32829b9e9 GUI: update credits 2023-08-17 17:38:18 -05:00
Background b023028117
OPL3 demo song (#1365)
* Add files via upload

* Add files via upload

A cover of song Dash from mobile gaame Rider.
2023-08-17 17:33:21 -05:00
tildearrow 075795e837 update .gitignore 2023-08-17 17:31:49 -05:00
tildearrow ee743adf96 create .gitattributes 2023-08-17 16:59:58 -05:00
tildearrow 0aabfe52d8 YM2612: fix ExtCh muting
issue #1366
2023-08-17 16:37:27 -05:00
Eknous-P 36e2444b11 add logs 2023-08-17 22:48:46 +04:00
Eknous-P 8da1085809 separate cores + selection for playback and export 2023-08-17 22:28:17 +04:00
tildearrow edad084e5d
Merge pull request #1364 from tildearrow/doc-general
Interface docs work.
2023-08-16 21:53:04 -05:00
Electric Keet 4985a4b5d0 Various work on the icon font.
Cleaned up leftover guides, added actually useful ones in the guide character (E0F0), tweaked VRC6 saw.
2023-08-16 21:50:31 -05:00
tildearrow 22f92aafe4 new demo songs
by PichuMario and Weeppiko
2023-08-16 16:42:41 -05:00
tildearrow 5f5d1c2189 new demo song
by ifrit05
2023-08-16 16:14:28 -05:00
Electric Keet 8ca918bbc8 ...one more tweak. 2023-08-16 13:13:08 -07:00
Electric Keet d6d6282675 Revert "New sample editor images."
This reverts commit cfd9b716c6.
2023-08-16 12:14:14 -07:00
Electric Keet cfd9b716c6 New sample editor images.
New icons! Also, better example of chip selector and 8-bit dither option.
2023-08-16 10:57:42 -07:00
freq-mod c862764ad1
wsg ins editor 2023-08-16 19:23:39 +02:00
Electric Keet 1a207bf4a1 More little adjustments. 2023-08-16 09:44:28 -07:00
Electric Keet 7054bea9be Interface docs work.
Rearranged a couple things for clarity (folks should read about UI components before they get too much further into playing with stuff) and added info about Ctrl-scrollwheel on sliders.
2023-08-16 09:29:47 -07:00
tildearrow 6c44614279 GUI: custom sample editor icons, part 1 2023-08-16 04:16:31 -05:00
tildearrow a1bc1a66a3 fix macro pos indicator not appearing in freelance 2023-08-16 01:03:56 -05:00
tildearrow c05efedee0 GUI: improve single macro view 2023-08-16 00:43:15 -05:00
tildearrow f3c2f1a965
Merge pull request #1359 from tildearrow/instr-editor-wrap
Break "no instrument selected" lines.
2023-08-15 22:25:49 -05:00
tildearrow 4707ef6979 GUI: center it 2023-08-15 22:25:01 -05:00
tildearrow d8a069c360 Merge branch 'master' into instr-editor-wrap 2023-08-15 22:16:57 -05:00
Electric Keet cb5f59d02b Select the correct amount of vertical space.
Tested in both occurring situations.
2023-08-15 16:55:53 -07:00
Electric Keet 02ef1549dd Fixed vertical centering. 2023-08-15 14:58:50 -07:00
tildearrow a008059b54 Merge branch 'letter-icons' 2023-08-15 16:24:59 -05:00
Electric Keet 520b772f35 Small changes to letter icons.
MultiPCM is now `MUL PCM`.
VRC 6 saw now has a little sawtooth icon.
2023-08-15 16:23:32 -05:00
tildearrow 10177ec43e three new demo songs
by Weeppiko and Electric Keet
2023-08-15 16:14:35 -05:00
tildearrow fccef9f0e3 two demo songs
by Weeppiko
2023-08-15 16:05:18 -05:00
tildearrow 823d64e68c GUI: fix 0.5-pixel error in unified assets 2023-08-15 15:52:32 -05:00
tildearrow 363bc4be68 GUI: fix no ins icon 2023-08-15 14:50:54 -05:00
Electric Keet f09ef69da1 Break "no instrument selected" lines.
In the instrument editor, when instruments are loaded but no instrument is selected, there's a dropdown to select a type and then "or Open or Create New"... but on one line, they're too long for the window's width. With this, they're on two lines.
2023-08-15 11:58:05 -07:00
tildearrow 09540a2d53
Merge pull request #1358 from mooinglemur/20230815-zsmopt
ZSM: optimize: skip PWM write on non-pulse, change delay flush logic
2023-08-15 03:01:39 -05:00
MooingLemur 1d882b0ca7 minor style fix 2023-08-15 00:58:56 -07:00
MooingLemur 5d63b253ce potential flush needed here too 2023-08-15 00:47:08 -07:00
MooingLemur fd2c17e4f9 ZSM: optimize: skip PWM write on non-pulse, change delay flush logic 2023-08-15 00:16:33 -07:00
tildearrow ddb0add67e GUI: fix insIconsStyle not saving 2023-08-15 01:57:43 -05:00
tildearrow f328e33bbc
Merge pull request #1357 from tildearrow/letter-icons
Adjusting height of letter icons.
2023-08-15 00:57:37 -05:00
tildearrow c49161e26c ... 2023-08-15 00:56:59 -05:00
Electric Keet c89ddb3804 Settings doc update.
Not that it's much.
2023-08-14 21:34:04 -07:00
Electric Keet aeb26d3136 Updated letter icon font instructions. 2023-08-14 21:24:06 -07:00
Electric Keet 2ef2416587 Adjusting height of letter icons.
They were too high before. Now they line up right!
2023-08-14 21:20:59 -07:00
tildearrow b46dd7b7eb GUI: update credits 2023-08-14 20:02:48 -05:00
tildearrow 6ae8f615d9 we got custom icons 2023-08-14 20:02:10 -05:00
tildearrow 1848484831 prepare for loading the icon font 2023-08-14 19:19:18 -05:00
tildearrow 741d350fe2 possible fix to #1356 2023-08-14 16:28:43 -05:00
freq-mod a79c82033c
improve saa ins edit doc 2023-08-14 19:37:14 +02:00
freq-mod 08d57e3ad5
OPLL ins editor doc 2023-08-14 19:26:56 +02:00
freq-mod c4892410fd
opl instr editor 2023-08-14 19:19:13 +02:00
freq-mod 35652b72fd
oops 2023-08-14 18:52:58 +02:00
freq-mod 36b375b363
Update psg.md 2023-08-14 18:52:27 +02:00
freq-mod 371d2196ab
fix dead link
if there are any differences between two and you have to make separate docs for k0394830238442 ins editor, feel free
2023-08-14 14:08:37 +02:00
tildearrow c127fd0928 GUI: prepare for sample rate warnings 2023-08-13 20:34:03 -05:00
tildearrow 4f6cf877cd make the issue template more clear 2023-08-13 20:33:45 -05:00
tildearrow 85f74fedb2 Merge branch 'master' of github.com:tildearrow/furnace 2023-08-13 17:39:09 -05:00
tildearrow 625ef6c2cf IGFD: prevent using invalid file names 2023-08-13 17:38:39 -05:00
tildearrow 4e8a647d3c
Merge pull request #1351 from tildearrow/letter-icons
Full letter icons font.
2023-08-13 16:22:12 -05:00
Electric Keet 4b81116359 Better home for icons.md. 2023-08-13 13:28:00 -07:00
tildearrow 83d5e28abe fix typo 2023-08-13 14:35:59 -05:00
tildearrow 205faed6dd
Merge pull request #1353 from tildearrow/doc-general
C140 instrument docs completed.
2023-08-13 14:34:56 -05:00
Electric Keet 4eaa999cd8 C140 instrument docs completed.
Also, a couple tweaks to the generic PCM instrument.
2023-08-13 12:03:46 -07:00
Electric Keet 7f3fcbf288 Full letter icons font.
Also, the FontForge SFD source.

Also also, a Markdown doc explaining how to add new icons. (This info is also in the SFD's Comments.)
2023-08-13 11:07:33 -07:00
freq-mod bb1d71f975
preeliminary c140 doc 2023-08-13 15:45:53 +02:00
cam900 c49bd177e9 fix muting for C140 VGM output 2023-08-13 17:31:33 +09:00
tildearrow 511e3315a8
Merge pull request #1203 from bbbradsmith/force-critical-input-trickle
Force ImGui event trickling for sparse but critical input events
2023-08-13 03:00:36 -05:00
tildearrow bbeb3df9f6 Merge branch 'master' into force-critical-input-trickle 2023-08-12 21:52:12 -05:00
tildearrow bc136c94c8 update format.md 2023-08-12 19:18:28 -05:00
tildearrow cd0c8cfca9 C140: fix chan osc 2023-08-12 17:28:54 -05:00
tildearrow 987ca3ad11 C140: VGM volume 2023-08-12 17:08:01 -05:00
tildearrow d7de177d26 VGM export: new ripper name 2023-08-12 16:55:23 -05:00
tildearrow 4214bdee71 C140: ?!?!?! 2023-08-12 16:46:35 -05:00
tildearrow fc16164dbd
Merge pull request #1342 from tildearrow/c140
Chicken ice cream
2023-08-12 16:29:49 -05:00
tildearrow 393af54938 GUI: bring the combo box back 2023-08-12 16:21:24 -05:00
tildearrow 908ecf411d C140: partially working VGM export 2023-08-12 04:33:33 -05:00
tildearrow 1f10c31414 update ins type 2023-08-12 04:19:20 -05:00
tildearrow 1e580d6936 C140: comment 2023-08-12 04:12:22 -05:00
tildearrow 6d1df99254 GUI: remove debug 2023-08-12 04:12:10 -05:00
tildearrow 984a3b7450 YAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 2023-08-12 04:07:14 -05:00
tildearrow f12d601234 C140: fix key off 2023-08-12 03:45:08 -05:00
tildearrow 320d965f78 fix µ-law encoding 2023-08-12 03:42:10 -05:00
tildearrow 06243c9d9d asdfasdf 2023-08-12 02:53:05 -05:00
tildearrow 94cb733c60 fix build error
hopefully
2023-08-12 02:52:50 -05:00
tildearrow 27e454e7aa C140: help µ-law ISN'T WORKING 2023-08-12 01:54:12 -05:00
tildearrow f2af2fbe76 GUI: fix crash on big endian
I hope
issue #649
2023-08-12 00:16:06 -05:00
tildearrow 5f2cfd4854 AY: don't use bit arrays
issue #649
2023-08-11 23:58:44 -05:00
tildearrow 7be0079c62
Merge pull request #825 from tildearrow/ymf289b
Prepare to YMF289B OPL3-L support
2023-08-11 23:38:27 -05:00
tildearrow b58fe36356 Merge branch 'master' into ymf289b 2023-08-11 22:25:39 -05:00
tildearrow 3317866a00 update wave/sample dirs when adding ins 2023-08-11 19:32:08 -05:00
tildearrow 9b91584d13 Merge branch 'master' of github.com:tildearrow/furnace 2023-08-11 19:27:17 -05:00
tildearrow d531b714a9 GUI: fix curOrder when pat view is not visible 2023-08-11 19:26:42 -05:00
MooingLemur 681c1d9fd7 implement requested changes 2023-08-11 19:13:16 -05:00
MooingLemur a1d74e7dc1 ZSM: add optimize for size toggle 2023-08-11 19:13:16 -05:00
tildearrow fe8f94b2b2 OPN/2/A/B: fix ExtCh muting on 18xx 2023-08-11 16:35:18 -05:00
tildearrow 6324a2a952 OPN/2/A/B: fix ExtCh instrument
issue #1053
2023-08-11 16:14:06 -05:00
tildearrow a917c2f532
Merge pull request #1346 from tildearrow/doc-general
Slight update and tweaks to effects doc.
2023-08-11 04:10:20 -05:00
tildearrow 0073357cb7
Merge pull request #1347 from mooinglemur/20230811-zsmtuning
ZSM: include song tuning in export
2023-08-11 03:32:19 -05:00
MooingLemur 94383fae63 clarify comment 2023-08-11 01:31:53 -07:00
MooingLemur 2365321d46 make clear the tuningoffset is okay to overflow 2023-08-11 01:30:45 -07:00
MooingLemur 245fe1c092 fix cast 2023-08-11 01:19:25 -07:00
MooingLemur 8006e40e26 ZSM: include song tuning in export 2023-08-11 01:02:18 -07:00
Electric Keet d65c9f9345 Updating settings doc. 2023-08-10 23:28:20 -07:00
Electric Keet e6bfc9e4db Dunno why this is in here.
Finally getting rid of it. I hope?
2023-08-10 17:33:35 -07:00
Electric Keet 9f53463ec2 Merge branch 'master' into doc-general 2023-08-10 16:51:01 -07:00
Electric Keet 760ffee16f Groupings in effects page.
Smaller groupings of similar effects may help with comprehension.

Horizontal rules are used because the only ways to get plain vertical space between lists are:
- an empty HTML comment tag (ugly);
- two line-break tags (uglier);
- an unusual Unicode space character (not happening).

Say the word and we can use one of those instead.
2023-08-10 16:47:03 -07:00
Electric Keet 73f8744a01 Slight update and tweaks to effects doc.
Trying to clarify portamento a little.
2023-08-10 16:37:09 -07:00
cam900 0311d712b1 Fix audPos 2023-08-10 22:16:19 +09:00
cam900 e0ca653462 I forgot 2023-08-10 22:13:13 +09:00
cam900 139ef4be29 Remove unused variable 2023-08-10 20:42:57 +09:00
cam900 882b1c0aae Add C140 status debug window 2023-08-10 20:27:30 +09:00
cam900 4d7d610f8c C140 fixes and optimizations
Minor optimization
Move output shift function to dispatch
Fix loop
Fix pan scaling if using INS_AMIGA
correct about
2023-08-10 20:24:10 +09:00
tildearrow a59b5753bb GUI: add center pop-up setting 2023-08-10 02:42:42 -05:00
tildearrow d9cdb787ae
Merge pull request #1236 from YohananDiamond/dialog-nitpicks
Dialog nitpick: properly centering modal popups
2023-08-10 02:41:57 -05:00
tildearrow cc60dcf534 GUI: enable 32-bit ImDrawIdx 2023-08-10 01:06:23 -05:00
tildearrow be06fe2400 GUI: why is the range wrong 2023-08-10 00:31:29 -05:00
tildearrow 2a0d76563d GUI: fix oversight in sample invert 2023-08-10 00:30:35 -05:00
tildearrow 7f75b642da
Merge pull request #1336 from tildearrow/gui-pretty
Vertically centering text labels.
2023-08-10 00:22:24 -05:00
tildearrow 457fb785b0 Merge branch 'master' into gui-pretty 2023-08-10 00:18:16 -05:00
tildearrow d5776e02bb OPLL: add option to apply fixed frequency to all d
issue #289
2023-08-10 00:15:44 -05:00
tildearrow 805c3ba7ac OPLL: more fixes
issue #289
2023-08-09 23:32:29 -05:00
tildearrow e46fa7d88e OPLL: remove some debug messages 2023-08-09 23:22:43 -05:00
tildearrow c6857b56f2 OPLL: now add a partial fix to issue #289
does not fulfill "apply pitch to all channels" suggestion yet though
2023-08-09 23:22:08 -05:00
tildearrow dd0d6b940a OPLL: drums mode work 4 2023-08-09 23:16:53 -05:00
tildearrow acc74df293 GUI: add option to capitalize menu bar 2023-08-09 22:47:06 -05:00
tildearrow 21d1dfefa1 many changes 2023-08-09 22:00:03 -05:00
tildearrow 903fb33350
Merge pull request #1344 from tildearrow/gui-lettericons
Test font for instrument "letter icons".
2023-08-09 21:16:57 -05:00
tildearrow 7bb59e77cc OPLL: drums mode work 3 2023-08-09 18:02:51 -05:00
tildearrow d5324e8897 OPLL: drums mode work 2 2023-08-09 17:53:48 -05:00
tildearrow 3de0ee4e25 OPLL: drums mode work 2023-08-09 17:29:42 -05:00
tildearrow 7d3b823996 GUI: fix blank ins
issue #1343
2023-08-09 16:06:38 -05:00
Electric Keet 2e585e0ca6 Font rename. 2023-08-09 14:03:02 -07:00
Electric Keet 6c4f128185 Renaming files. 2023-08-09 13:03:45 -07:00
Electric Keet 81dc0539f3 And here's the FontForge file.
The "W" icons are for testing width and such, and can be safely ignored for now.
2023-08-09 13:01:34 -07:00
Electric Keet 3d2ae77708 Test font for instrument "letter icons".
Here's a test version of the font, to make sure I have the metrics right and all that. Only six (useful) codepoints are implemented right now:
- `F004`: Generic Sample
- `F015`: Beeper
- `F016`: WonderSwan
- `F01A`: VRC6 (saw)
- `F01E`: Sound Unit
- `F028`: QSound
Note that their codepoints are the instrument ID's plus 0xF000. Convenient!

Once implemented so I can test, I can refine things and work up the rest of the "icons".
2023-08-09 12:50:18 -07:00
cam900 72d04777c0 Less silent output 2023-08-09 20:38:17 +09:00
cam900 46b83833e1 Less louder output 2023-08-09 20:36:59 +09:00
cam900 85aa3736ad oops 2023-08-09 20:34:57 +09:00
cam900 1e2cd8282a Change Mulaw algorithm 2023-08-09 20:33:42 +09:00
cam900 14c5d94499 C140 Part 2 2023-08-09 20:30:00 +09:00
tildearrow 07abd1fd85 evom 2023-08-09 05:26:50 -05:00
cam900 54cd69aabf Merge branch 'master' of https://github.com/tildearrow/furnace into c140 2023-08-09 19:18:18 +09:00
tildearrow 3b42abcf26 move 2023-08-09 03:49:27 -05:00
tildearrow bc3b98da99 let 2023-08-09 03:48:38 -05:00
tildearrow e561a90615 add another demo song 2023-08-09 03:47:11 -05:00
freq-mod d441356211
Merge pull request #1339 from freq-mod/demo53260
add N163 + konami pcm demo song
2023-08-09 10:36:34 +02:00
tildearrow fb4bb3e2d4
Merge pull request #1329 from tildearrow/doc-settings
Settings doc updates.
2023-08-09 00:05:14 -05:00
freq-mod de1dd96785
add N163 + konami pcm demo song 2023-08-08 20:10:59 +02:00
cam900 c34233cf4f Prepare for C140 2023-08-08 21:27:12 +09:00
tildearrow cc8b5d28a8 GUI: add option to show ins type menu when adding 2023-08-08 00:03:56 -05:00
Electric Keet 8db16af621 Switching to non-imperative tone. 2023-08-07 18:04:01 -07:00
tildearrow 3af2f8d2a4 let's add more 2023-08-07 19:52:15 -05:00
tildearrow 0e5d11f9cd fix system file picker ins preview 2023-08-07 19:12:24 -05:00
tildearrow 9d410dfe9c add isVolGlobal to DivDispatch
do not key release on pendingNotes if so
issue #1325
2023-08-07 18:05:31 -05:00
Lunathir 10ecc71a60 Remove commas in flags 2023-08-07 14:03:15 -05:00
Lunathir 9ae28a67bf Update presets.cpp 2023-08-07 14:03:15 -05:00
Electric Keet 0a7d957142 Last label tweak. 2023-08-07 10:17:48 -07:00
Electric Keet 3effd9e506 Yet more vertical centering of labels. 2023-08-06 22:47:17 -07:00
Electric Keet 1ea4452e9b More vertical centering of labels.
chanOsc, debugWindow, editControls, findReplace, gui
2023-08-06 20:51:51 -07:00
tildearrow 9ba1eb2541 one more 2023-08-06 22:48:23 -05:00
Electric Keet f66dd6e70b Vertical centering of labels.
Just the settings dialog, this commit.
2023-08-06 20:28:11 -07:00
tildearrow 8ba6c4cf42 GUI: finish some more TODOs 2023-08-06 17:35:45 -05:00
tildearrow a6ad79f686
Merge pull request #1330 from tildearrow/gui-radiobuttons
Radio button group indents everywhere.
2023-08-06 04:26:34 -05:00
tildearrow 4c158f0cd6 fix auto patchbay setting not being loaded 2023-08-06 04:20:07 -05:00
tildearrow 515a657b91 GUI: don't show pan effects if can't pan
issue #1331
2023-08-06 04:15:02 -05:00
Electric Keet 5ba51df566 Radio button group indents everywhere.
This should be all of them.

Except, of course, the find/replace dialog. Those have a specific layout already.
2023-08-05 19:18:53 -07:00
tildearrow 10615b9b5b GUI: finish some TODOs 2023-08-05 18:29:46 -05:00
Electric Keet aee459d8d3 Merge branch 'master' into doc-general
Cleaning up after previous merged PR.
2023-08-05 13:28:26 -07:00
Eknous aa39a041b5
new demo song and small updates to my previous ones (#1327)
* chanOsc note name

* chanOsc auto cols

* lowercase c for consistency

* fix chan note text

* change int to short

* simplify

* visible chan count for calculation

* cleanup

* cleanup 2 (not removing the comma yet)

* remove extra spaces

* add id

* rename and shrink physicsexam

* fix tiny error at the end

* ted demo

* add author
2023-08-05 15:25:32 -05:00
tildearrow 49e799d576 GUI: indent play on load setting 2023-08-05 15:12:14 -05:00
tildearrow b7f7c362d2
Merge pull request #1328 from tildearrow/settings-ui
Settings and chip config UI: Indent radio buttons.
2023-08-05 15:11:28 -05:00
Electric Keet 7c53d330e6 ...the rest of the tiny edits. 2023-08-05 12:44:49 -07:00
tildearrow 86c1104529 GUI: add setting to play on load 2023-08-05 14:43:29 -05:00
Electric Keet b7a751ccfa Slight edits. 2023-08-05 12:42:43 -07:00
Electric Keet 543d18b8d5 Chip config UI: Indent radio buttons.
Similarly, stuff is indented for clarity. This includes the chip clock rate selector.
2023-08-05 11:50:17 -07:00
Electric Keet 3f80231f24 Settings window: Indent radio button groups.
All radio button groups are indented for visual clarity. Also, font path and size selectors.
2023-08-05 11:18:50 -07:00
Electric Keet 9340358eac Add new settings to doc, other small edits. 2023-08-05 10:32:14 -07:00
tildearrow 03383cff80 discourage use of legacy sample mode 2023-08-05 03:45:00 -05:00
tildearrow b0ce681875 GUI: drop a mention of legacy 2023-08-05 03:39:40 -05:00
tildearrow 2b78ea7abe GUI: add setting to remove ins/vol val on OFF/REL 2023-08-05 03:37:03 -05:00
tildearrow 1983529bdb GUI: add non-mono mode to osc 2023-08-05 03:26:36 -05:00
tildearrow bf77b95ec9 GUI: wake up on osc 2023-08-05 02:54:09 -05:00
tildearrow 1d4a1c8337 GUI: higher quality oscilloscope
issue #1324
2023-08-05 02:52:02 -05:00
tildearrow 673ff6ebb6 GUI: fix header font not saving at all 2023-08-04 22:43:26 -05:00
Electric Keet 211a67e0bb Merge branch 'master' into doc-general 2023-08-04 20:39:23 -07:00
tildearrow 13cfef02a7 asdf 2023-08-04 22:16:53 -05:00
Electric Keet 2444d2f58a Minor adjustments. 2023-08-04 22:16:02 -05:00
Electric Keet 20dc44b800 Teensy formatting change.
None of these should be list items. It was a bad idea.
2023-08-04 22:16:02 -05:00
Electric Keet b5161a8fe6 Documentation stuff!
New page for the effect list, updates to chanOsc, and links to instrument types from every "system" page.
2023-08-04 22:16:02 -05:00
Electric Keet 3a93ebd21d Minor adjustments. 2023-08-04 16:24:42 -07:00
tildearrow 4d476c0588 YM2612: fix direct stream 2023-08-04 17:48:34 -05:00
tildearrow 77e708dc57 YM2612: better DAC write scheduling
issue #1300
2023-08-04 17:36:36 -05:00
Electric Keet ce0b6b454d Teensy formatting change.
None of these should be list items. It was a bad idea.
2023-08-04 09:38:05 -07:00
Electric Keet ee4afa0da7 Documentation stuff!
New page for the effect list, updates to chanOsc, and links to instrument types from every "system" page.
2023-08-04 09:11:53 -07:00
freq-mod 297334e882
Update README.md
add ga20 link
2023-08-04 14:42:04 +02:00
freq-mod d9ba33abbf
Create ga20.md 2023-08-04 14:41:17 +02:00
freq-mod d0330291ce
pitch res of k053260 2023-08-04 14:31:44 +02:00
tildearrow 2060f8e9eb OPN: fix ExtCh alg/fb/fms/ams/lfo macros 2023-08-04 03:33:45 -05:00
tildearrow 2211f9cb71 fix sys list in doc 2023-08-04 03:01:18 -05:00
tildearrow a54dd664e6
Merge pull request #1292 from tildearrow/doc-general
New systems README.md.
2023-08-04 01:42:07 -05:00
Electric Keet e7b4d46e03 Removing duplicate link. 2023-08-03 20:17:00 -07:00
Electric Keet 4693b10b88 Last round of edits. 2023-08-03 20:02:52 -07:00
Electric Keet 9b6ce68a22 Edits as requested. 2023-08-03 19:45:00 -07:00
tildearrow 358118f1f9 sorry
respect my formatting style
2023-08-03 21:32:57 -05:00
Electric Keet 5db924835b Revised list of featured systems. 2023-08-03 14:46:10 -07:00
tildearrow cf1f741769 GUI: fix SNES chip config out of bounds
issue #1319
2023-08-03 14:55:30 -05:00
Electric Keet 235a58d110 Reformat for conciseness. (Not done yet.)
Instead of a full list of systems, we'll choose a few highlight systems and then have a full list of chips for reference. (Everything else is commented out for now. for convenience.) What systems should be added or removed?

Oh, and the little empty comment lines provide list grouping while keeping the lists more compact, at least for GitHub's Markdown reader.
2023-08-03 10:40:16 -07:00
tildearrow a192274e29
Merge pull request #1312 from tildearrow/settings-bigfont
Big font configuration options!
2023-08-03 05:35:33 -05:00
tildearrow eb9bd913e2 and one more fix 2023-08-03 05:34:49 -05:00
tildearrow fcba244c84 fix 2023-08-03 05:31:55 -05:00
tildearrow 629d73f421 address review comments 2023-08-03 05:27:20 -05:00
Eknous cafc6f391d
chanOsc automatic columns + fix chanOsc channel note text (#1305)
* chanOsc note name

* chanOsc auto cols

* lowercase c for consistency

* fix chan note text

* change int to short

* simplify

* visible chan count for calculation

* cleanup

* cleanup 2 (not removing the comma yet)

* remove extra spaces

* add id
2023-08-03 05:25:26 -05:00
tildearrow 69c4c58cc5 ARREGLAR 2023-08-03 04:11:36 -05:00
tildearrow c58eec5753 do not reset the timer (and remove intro monitor) 2023-08-03 03:54:06 -05:00
Electric Keet 3ca687553f At least it's fixed now. 2023-08-02 23:20:59 -07:00
tildearrow 3837fe59fb SN: fix key off 2023-08-03 01:10:25 -05:00
Electric Keet 06d3e8a4b3 Initializing variables, font size change. 2023-08-02 22:59:45 -07:00
tildearrow 23daabf5b9 Game Boy: remove debug message 2023-08-03 00:45:03 -05:00
tildearrow 747b5d19bd NES: whoops!
issue #1313
2023-08-03 00:40:53 -05:00
tildearrow 7d8c1b6efc NES: fix DPCM samples having wrong size 2023-08-03 00:32:50 -05:00
Electric Keet ebf8ebf7c0 Restoring old bigFont, making new headFont instead.
Now we'll see the original font for the credits and the clock.
2023-08-02 20:49:01 -07:00
Electric Keet 14d1e83cd6 Oh, and it'd be good to load the big font setting.
Can't believe I missed this!
2023-08-02 14:22:21 -07:00
Electric Keet bf9f37e8d9 Fixed up about screen.
Inter-line spacing didn't scale with font size. Oops!
2023-08-02 14:05:36 -07:00
Electric Keet 0f4f1a1cf5 Big font configuration options! 2023-08-02 13:48:07 -07:00
Electric Keet 11836ad079 Doc `0Dxx` better, add tutorial link.
...because I can never seem to do one thing at a time?
2023-08-02 15:11:47 -05:00
tildearrow 537f90c3f1 fix again 2023-08-02 14:58:10 -05:00
tildearrow cf80eca19f FIX build 2023-08-02 01:27:29 -05:00
tildearrow 411e138440 GUI: fix note trigger chan osc mode
when channel not visible in pattern
2023-08-01 20:22:44 -05:00
tildearrow 85d90b78ea Furnace CAN TOO!!!!!!!!!!!!!!!!!!!!!!111111 2023-08-01 20:13:34 -05:00
tildearrow f1b560cce9 PC speaker: fix cut freq
issue #1307
2023-08-01 16:00:13 -05:00
tildearrow 0c606103e3 GUI: fix pushNibble in orders
issue #1309
2023-08-01 13:30:57 -05:00
tildearrow ed56fc274f update the_best-1990.fur 2023-08-01 04:25:21 -05:00
Electric Keet ff51f97606 Document new chanOsc parameter. 2023-07-31 16:43:24 -05:00
Electric Keet bafb78cb67 Spacing for clarity, tiny fix.
Added spacing to make it easier to work with the document.

Also, I keep doing that thing with the SNES where I put "SPC700" but really should just put "SNES". Bad habit. (The real reason for the commit.)
2023-07-31 10:44:30 -07:00
cam900 71b76e3e88 Fix K053260 sample offset 2023-07-31 20:06:07 +09:00
Eknous-P 20ea5827cf chanOsc note name 2023-07-30 15:05:47 -05:00
Electric Keet 24e7d4b9ce Updating settings docs to match new arrangement. 2023-07-30 15:04:45 -05:00
tildearrow 4c13fe08d2 YM2612: prioritize urgentWrite() on hard reset 2023-07-30 14:53:26 -05:00
tildearrow 9420bbe058 GUI: mark modified when swapping channels 2023-07-30 14:43:25 -05:00
tildearrow e9af48cf8b GUI: update credits 2023-07-30 04:34:24 -05:00
tildearrow 308af5a34e GUI: new settings layout 2023-07-30 04:33:25 -05:00
freq-mod 41f6a6e0a3
links aligned properly 2023-07-30 11:08:27 +02:00
freq-mod 036ba996d5
OPLL patch swiching guide
feel free to improve it as you wish
2023-07-30 11:06:38 +02:00
tildearrow 954d91d073 OPLL: asdfasfd 2023-07-30 02:20:19 -05:00
tildearrow c29106aa3d Merge branch 'master' of github.com:tildearrow/furnace 2023-07-29 17:13:19 -05:00
tildearrow 1325664d25 SNES: fix possible sample corruption
when toggling echo
2023-07-29 17:12:46 -05:00
freq-mod 873889fee0
improve table 2023-07-29 23:12:41 +02:00
tildearrow 423f2f5069 OPN/A/B: implement 30xx on ExtCh
issue #1113
2023-07-29 16:05:34 -05:00
freq-mod 41c41859ed
remove redundant SNES entry 2023-07-29 23:04:55 +02:00
tildearrow 233431c2cc YM2612: implement 30xx on ExtCh 2023-07-29 14:17:04 -05:00
tildearrow 97d44d9a26 GUI: Namco 163 offset -> position 2023-07-29 13:43:49 -05:00
tildearrow bc7e267a85 GUI: BeginPopupContextItem fix 2023-07-29 13:22:05 -05:00
tildearrow b83d8f3198 fix system fmt, part 3 2023-07-29 13:10:59 -05:00
tildearrow 98a6080ca1 fix system fmt, part 2
thanks r-c-f
2023-07-29 13:09:35 -05:00
Electric Keet 79d8639075 Visual clarity!
It's so much easier to parse (and a bit less intimidating) when only the first system in any set is bolded.
2023-07-29 10:56:19 -07:00
tildearrow ac011a0fa1 GUI: fix sort button in effect list 2023-07-29 05:39:28 -05:00
tildearrow 9b1e137851
Merge pull request #1287 from Eknous-P/master
Effect Sorting
2023-07-29 05:24:08 -05:00
Eknous 1d04bb360a
Merge branch 'tildearrow:master' into master 2023-07-29 13:34:54 +04:00
tildearrow 92493485a3 GUI: prepare for new settings layout 2023-07-29 04:21:27 -05:00
Eknous-P 0671df9916 sameline 2023-07-29 13:11:52 +04:00
tildearrow 1aef0079d1 the first step to deprecating Defle compat
Furnace will support .dmf loading/saving
however in a far future, compatibility may not be guaranteed... I am not sure

this setting is off by default (for now)
2023-07-29 03:17:26 -05:00
Eknous-P 5fa4674826 Merge branch 'master' of https://github.com/Eknous-P/furnace 2023-07-29 11:07:36 +04:00
Eknous-P 2c3bacbd3b colored text, arrays instead of many vars 2023-07-29 11:07:20 +04:00
Eknous 7822c53469
Merge branch 'tildearrow:master' into master 2023-07-29 11:06:18 +04:00
Electric Keet 8901098cb8 Systems broken into groups.
Turned out to be super easy.
2023-07-28 19:29:38 -07:00
tildearrow 9d567d8cca fix system fmt, part 1 2023-07-28 16:07:01 -05:00
Electric Keet 3e3f582afb New systems README.md.
The idea: list all the systems shown in the "new file" dialog, link to their chips.
Also, moved all the important info out of genesis.md and removed it, finally!
Also also, fixed the tiniest issue in the credits. 😊
2023-07-28 13:51:24 -07:00
Eknous-P 5c5ccbeb72 change to beginpopupcontextitem 2023-07-28 20:38:13 +04:00
Eknous-P dedcff3ec2 Merge branch 'master' of https://github.com/Eknous-P/furnace 2023-07-28 18:39:47 +04:00
Eknous-P dd00d3bc66 cleanup 2023-07-28 18:39:40 +04:00
Eknous 9f5a924259
Merge branch 'tildearrow:master' into master 2023-07-28 18:26:53 +04:00
Eknous-P c6458efbbb Merge branch 'master' of https://github.com/Eknous-P/furnace 2023-07-28 18:25:03 +04:00
Eknous-P d5b18ab080 is this "the button" 2023-07-28 18:24:56 +04:00
tildearrow a7e9218562 Namco WSG: fix custom clock 2023-07-28 04:27:53 -05:00
MooingLemur 9dcd5d1a89 comment grammar 2023-07-28 03:55:08 -05:00
MooingLemur 7aa3aec20e ZSM export: handle Virtual Tempo quantization 2023-07-28 03:55:08 -05:00
cam900 8ad7a5bf7d Remove global rendersamples 2023-07-27 21:10:45 +09:00
Eknous c9447dbff2
Merge branch 'tildearrow:master' into master 2023-07-27 15:27:28 +04:00
Eknous-P 0d33273a2e useless newline removed 2023-07-27 15:22:20 +04:00
Eknous-P 620fc82247 'all' checkbox to 'all'/'none' buttons 2023-07-27 14:44:41 +04:00
tildearrow b41d8fe208 TIA: fix custom clock
but it changes pitch of everything
2023-07-27 02:20:22 -05:00
tildearrow c2f83a3aef GUI: remove ability to save legacy .fui 2023-07-27 01:35:28 -05:00
tildearrow b186576e14 really fix Windows build 2023-07-27 01:28:03 -05:00
tildearrow 501d8da7af NES: optimize NSFplay 2023-07-27 01:24:18 -05:00
tildearrow 3fac80dad4 new demo song
by Teuthida
2023-07-27 01:12:50 -05:00
Lunathir 348b158e4b Adjust preset name to be in line with other presets 2023-07-27 01:10:02 -05:00
tildearrow a08a23fd13 fix Windows build 2023-07-27 01:07:57 -05:00
tildearrow 1fa92c63d0 Merge branch 'master' into force-critical-input-trickle 2023-07-27 00:39:29 -05:00
tildearrow afe703faf2 Merge branch 'force-critical-input-trickle' of https://github.com/bbbradsmith/furnace into force-critical-input-trickle 2023-07-27 00:39:20 -05:00
tildearrow cdbba2a6fc IGFD: finally fix sorting crash 2023-07-27 00:33:28 -05:00
bbbradsmith fd27a41c08 relocate pattern mouse release handling to FurnaceGui::Loop 2023-07-27 01:04:48 -04:00
tildearrow 1511b66015 MSM6258: fix missing type/outbits init 2023-07-26 19:33:49 -05:00
tildearrow 677f7fe682 ES5506: some cleanup
and fix sample map... ugh

issue #1282
2023-07-26 19:16:57 -05:00
tildearrow 05d101e42e fix unrecognized system ID error always being 0 2023-07-26 18:48:26 -05:00
tildearrow 5c861ca36e compensate for sample movement/deletion 2023-07-26 17:58:57 -05:00
tildearrow ec52eb524d
Merge pull request #1288 from tildearrow/doc-general
General docs refinement.
2023-07-26 17:24:31 -05:00
tildearrow 6878e424c4 fix typo 2023-07-26 17:23:55 -05:00
Eknous-P 60006dc862 typo 2023-07-26 19:51:28 +04:00
Electric Keet 934f0b53e6 General docs refinement.
You know, updated images, minor text tweaks.
2023-07-26 08:41:07 -07:00
Eknous-P d19214045c reorder fix 2023-07-26 19:28:42 +04:00
Eknous-P 9fb5e4f17f Merge branch 'master' of https://github.com/Eknous-P/furnace 2023-07-26 18:53:46 +04:00
Eknous-P 54d4097146 put sorting checkboxes in a treenode 2023-07-26 18:53:39 +04:00
Eknous eab1cbee39
Merge branch 'tildearrow:master' into master 2023-07-26 18:41:37 +04:00
Eknous-P 1c94975a0a primitive effect sorting 2023-07-26 18:41:17 +04:00
cam900 e0dc22a6f1 Remove unnecessary functions 2023-07-26 19:39:13 +09:00
cam900 a3d54ca933 Merge branch 'master' of https://github.com/tildearrow/furnace into x1_010_bank 2023-07-26 19:28:39 +09:00
Electric Keet 1bd315b683 Moved to /papers! Makes sense.
Why didn't this occur to me in the first place?
2023-07-25 15:01:02 -05:00
Electric Keet fe66d4da82 Clipboard format guide.
With help from @ltva via Discord!
2023-07-25 15:01:02 -05:00
Electric Keet a99fb1ce45 Oops! Botched the TIA pitch tables. All good now.
Always double-check your regexes and their results. Triple-check, maybe.
2023-07-25 14:12:43 -05:00
Electric Keet afb0dafe2d TIA frequency tables. 2023-07-25 14:12:43 -05:00
Electric Keet 8f1c1ee751 Refresh of pattern docs.
New graphics with consistent style, removal of unneeded graphics, and many edits for clarity and completeness.

Oh, and the credit for the old keyboard image has been removed. This version is fully redrawn.
2023-07-25 14:12:43 -05:00
tildearrow a3a004477d Game Boy: fix hw seq in low latency mode 2023-07-25 01:51:22 -05:00
tildearrow d12c061393 PET: fix not working 2023-07-25 01:26:41 -05:00
tildearrow 4161dcd786 fix crash when exporting audio (per chip)
also fix two misc issues in ES5506 and Sound Unit
2023-07-24 22:34:39 -05:00
tildearrow 68a2c5f2f0 GUI: update credits 2023-07-24 17:48:05 -05:00
tildearrow b519713222 don't use exceptions in maps
succeeds #801
2023-07-24 17:39:09 -05:00
tildearrow 8aa0813bb9
Merge pull request #1281 from railzen7/railzen7-patch-1
ay-3-8910 demo song request
2023-07-24 17:38:52 -05:00
railzen7 e2e3370fe8
Add files via upload 2023-07-24 23:28:54 +02:00
tildearrow 85666a9d70 GUI: update credits 2023-07-24 14:52:27 -05:00
tildearrow 6694659695 formatting 2023-07-24 14:51:41 -05:00
tildearrow 3b60eace02
Merge pull request #1266 from Eknous-P/master
Added flat notes and some text changes
2023-07-24 14:51:14 -05:00
Electric Keet 0fe1a9d4c8 General doc cleanup.
Marked items only available in advanced mode, fixed up images with accidental green borders, other nitpicks.
2023-07-24 14:43:11 -05:00
Eknous-P ceadf7a6c8 revert text changes 2023-07-24 21:16:59 +04:00
Eknous 695afcfc88
Merge branch 'tildearrow:master' into master 2023-07-24 14:21:30 +04:00
tildearrow ad4f5bee91 add demo song
by brickblock369

also update Maximum Overdrive
2023-07-24 04:57:45 -05:00
tildearrow 8e40901baa Merge branch 'master' of github.com:tildearrow/furnace 2023-07-23 22:36:55 -05:00
tildearrow c702922144 OPLL: how am I going to do this 2023-07-23 22:36:27 -05:00
tildearrow d66985fae2
Merge pull request #1276 from tranzystorek-io/void-readme
mention Void Linux package in readme
2023-07-23 17:00:21 -05:00
tildearrow 90264bb63e MSM5232: fix chan osc
issue #1269
2023-07-23 16:40:45 -05:00
tildearrow ee07eafc12 is it Italian or French? renaming 2023-07-23 16:27:14 -05:00
tildearrow eff0a20741 reorganize TIA demos
remove Coconut Mall (the meme is over)
move the other two to misc (too few to merit its own category)
2023-07-23 16:20:37 -05:00
NyaongI e4e299fd8c
[Re-Opened] New 2 Demo songs and Fixed A demo song (#1263)
* 2149 2413

* Five_Two_Three_Two

* Delete PlayingOnTheStairs.fur

I'll upload fixed version

* Fixed a demo song

Fixed Demo song 'Playing on the Stairs'

* Delete FiveTwoThreeTwo.fur

* rename

* Delete PlayingOnTheStairs_.fur

* Delete joyful_.fur

* rename 2
2023-07-23 16:03:57 -05:00
tildearrow 5bcde48978
Merge pull request #1274 from tildearrow/doc-general
Refreshing FM instrument docs.
2023-07-23 16:02:57 -05:00
Marcin Puc 6e2df831c7 mention Void Linux package in readme 2023-07-23 23:00:31 +02:00
tildearrow 859b7118d5
Merge pull request #1275 from tildearrow/revert-1271-patch-5
Revert "add TED chip to readme.md"
2023-07-23 15:59:22 -05:00
tildearrow 2342160e9b Revert "add TED to readme (#1271)"
This reverts commit 27530034db.
2023-07-23 15:59:15 -05:00
tildearrow d3781451d2 Merge branch 'master' of github.com:tildearrow/furnace 2023-07-23 15:58:32 -05:00
tildearrow e52e2da68b dev165 - Namco 163: do not scale pitch by default 2023-07-23 15:57:25 -05:00
Electric Keet 58fdd84fde Making the macros match. 2023-07-23 13:17:31 -07:00
nicco1690 27530034db
add TED to readme (#1271) 2023-07-23 21:38:44 +02:00
Eknous-P 3a950619b0 settings apply button 2023-07-23 22:35:24 +04:00
Electric Keet f419f1b378 FM ADSR chart and tutorial link.
Also several minor text and formatting tweaks.
2023-07-23 11:33:30 -07:00
Eknous-P 6cb6cc2c41 ted part number 2023-07-23 16:57:54 +04:00
Eknous 1e770d52b6
Merge branch 'tildearrow:master' into master 2023-07-23 16:44:05 +04:00
tildearrow 2321e7913c 4-instrument/ted.md 2023-07-23 05:29:30 -05:00
tildearrow 05a9496189 update credits 2023-07-23 05:26:25 -05:00
tildearrow 3936089c32 update ted.md 2023-07-23 05:26:18 -05:00
freq-mod 90dd0361f0
Create ted.md
wip
2023-07-23 12:23:32 +02:00
tildearrow 5c6aa5dc50 Merge branch 'master' of github.com:tildearrow/furnace 2023-07-23 04:44:38 -05:00
tildearrow 20418bb490 add TED to Furnace
#855 #873
2023-07-23 04:42:38 -05:00
cam900 3bafd4f6c0 update via PR comments 2023-07-23 17:39:38 +09:00
tildearrow 8b63459c5f
Merge pull request #1267 from ElectricKeet/doc-general
New guide on emulation cores.
2023-07-22 22:23:49 -05:00
Electric Keet 4d7c0e48cb Little text tweaks.
As requested!
2023-07-22 18:41:27 -07:00
Electric Keet 3a9f2803d2 New guide on emulation cores. 2023-07-22 16:03:18 -07:00
tildearrow 895921f257 GUI: orders now respect push nibble setting
issue #1260
2023-07-22 17:48:13 -05:00
tildearrow 0d2b7427a6 MSM6258: only one output 2023-07-22 17:32:16 -05:00
Eknous-P 7c5db82ab8 remove duplicate cases 2023-07-22 21:43:23 +04:00
Eknous-P f274f88c42 Merge branch 'master' of https://github.com/Eknous-P/furnace 2023-07-22 20:44:11 +04:00
Eknous-P 093df41ef9 flat note names 2023-07-22 20:44:02 +04:00
Eknous 6cdfccec94
Merge branch 'tildearrow:master' into master 2023-07-22 19:49:34 +04:00
Eknous-P d0404c9e10 more part numbers 2023-07-22 18:58:24 +04:00
Eknous-P 4ef6acfab7 add scc/scc+ and qsound part numbers 2023-07-22 18:00:49 +04:00
tildearrow cb825ca938 GUI: add ImGuiTableFlags_NoScrollWithMouse 2023-07-22 05:27:46 -05:00
Eknous-P 4d2c388a69 change "piezo" to "moving iron" 2023-07-22 12:17:04 +04:00
tildearrow 2abe76d000 Amiga: fix custom clock 2023-07-22 01:42:05 -05:00
cam900 a675494fc2 Add part number for OPL3-L 2023-07-22 10:43:21 +09:00
cam900 0889a8fe92 Merge branch 'master' of https://github.com/tildearrow/furnace into ymf289b 2023-07-22 10:39:28 +09:00
tildearrow 12a8abdf95
Merge pull request #1243 from Eknous-P/master
"chip part number" text label option for per-channel scope
2023-07-21 20:06:08 -05:00
tildearrow e3e7ef7310 Namco 163: update doc 2023-07-21 20:00:39 -05:00
Eknous-P 2c09b0c872 Merge branch 'master' of https://github.com/Eknous-P/furnace 2023-07-20 20:48:27 +04:00
Eknous-P 0f5cf4a043 update chanosc doc 2023-07-20 20:48:20 +04:00
Eknous f1399aab84
Merge branch 'tildearrow:master' into master 2023-07-20 20:41:44 +04:00
Eknous-P caf4ab5d7a add k053260 case 2023-07-19 23:20:28 +04:00
Eknous-P 407f916311 add chipType change detect 2023-07-18 22:30:22 +04:00
cam900 1873a2a708 Merge branch 'master' of https://github.com/tildearrow/furnace into x1_010_bank 2023-07-18 20:17:28 +09:00
Eknous 6daf9b3d18
Merge branch 'tildearrow:master' into master 2023-07-18 14:16:15 +04:00
Eknous-P c396c79ae0 Merge branch 'master' of https://github.com/Eknous-P/furnace 2023-07-16 15:10:15 +04:00
Eknous-P 2d68b6a316 update tooltip 2023-07-16 15:10:09 +04:00
Eknous 67de26fb68
Merge branch 'tildearrow:master' into master 2023-07-16 11:51:45 +04:00
Eknous-P 1fcbc603e1 Merge branch 'master' of https://github.com/Eknous-P/furnace 2023-07-16 11:50:20 +04:00
Eknous-P 30c41942a4 move to separate file + regular name on default 2023-07-16 11:48:36 +04:00
Eknous edefb05a56
Merge branch 'tildearrow:master' into master 2023-07-15 22:10:19 +04:00
Eknous ce1444965a
Merge branch 'tildearrow:master' into master 2023-07-14 20:09:34 +04:00
YohananDiamond 7a3319b87a Merge branch 'master' of https://github.com/tildearrow/furnace into dialog-nitpicks 2023-07-12 10:16:59 -03:00
YohananDiamond f416bb3048 dialog nitpick: centering modal popups 2023-07-12 10:16:39 -03:00
Eknous-P 1fcf72b912 chip short name for per-chan scope 2023-07-12 14:17:08 +04:00
bbbradsmith a37260bcaa Move pattern finishSelection out of SDL-triggered pointUp, and replace with ImGui release trigger in drawPattern. This prevents down/up events from being processed out of order by two separate event systems, causing selection to be stuck on if the up event is recieved within 1 frame of the down event. 2023-07-12 05:45:30 -04:00
bbbradsmith edb48d47be only force trickle text if interacting with mouse button or key events 2023-07-12 04:06:03 -04:00
tildearrow 09a3da50eb Merge branch 'master' into force-critical-input-trickle 2023-07-12 00:04:03 -05:00
bbbradsmith 0444588cca ImGui trickle is critical for MouseButton, Key and Text events, otherwise fast (but sparse) inputs can be lost. This should not cause performance problems for high-poll-rate mouse devices. 2023-07-06 18:54:35 -04:00
cam900 b1e2e33f2d Merge branch 'master' of https://github.com/tildearrow/furnace into x1_010_bank 2023-06-29 21:36:29 +09:00
cam900 0c5a6d9760 Just resample rather than reset 2023-05-13 18:54:05 +09:00
cam900 967cc86ec9 Merge branch 'master' of https://github.com/tildearrow/furnace into ymf289b 2023-05-13 18:53:50 +09:00
tildearrow 25eb720631 Merge branch 'master' into ymf289b 2023-05-11 16:59:38 -05:00
cam900 b326087721 Merge branch 'master' of https://github.com/tildearrow/furnace into x1_010_bank 2023-05-02 13:46:23 +09:00
cam900 213d613534 Fix regression 2023-04-20 10:02:29 +09:00
cam900 36f542972c Fix possible issue when bank flag is changed 2023-04-20 08:54:40 +09:00
cam900 c69318b222 Merge branch 'master' of https://github.com/tildearrow/furnace into x1_010_bank 2023-04-20 08:47:24 +09:00
cam900 2a43272c66 Spacing 2023-03-27 15:08:37 +09:00
cam900 2a881c9f66 Merge branch 'master' of https://github.com/tildearrow/furnace into x1_010_bank 2023-03-27 15:07:45 +09:00
cam900 90fa977d23 Fix seta2 preset 2023-03-27 15:07:35 +09:00
cam900 d84d678929 Merge branch 'master' of https://github.com/tildearrow/furnace into x1_010_bank 2023-03-12 21:10:00 +09:00
cam900 b1070f531a Merge branch 'master' of https://github.com/tildearrow/furnace into x1_010_bank 2023-03-12 20:59:50 +09:00
cam900 c8c2704a99 Revert unnecessary change 2023-03-12 11:56:19 +09:00
cam900 e6b84280aa Add Seta 2 Bankswitch support 2023-03-11 18:55:32 +09:00
cam900 e694687fff Merge branch 'master' of https://github.com/tildearrow/furnace into ymf289b 2023-02-23 21:15:49 +09:00
cam900 9ae12241a4 Fix downsampled rate accuracy 2023-01-16 10:25:59 +09:00
cam900 371c82338f Merge branch 'master' of https://github.com/tildearrow/furnace into ymf289b 2023-01-16 10:17:19 +09:00
cam900 f6f5353987 Fix volume 2023-01-15 08:15:12 +09:00
cam900 5cea63753c Merge branch 'master' of https://github.com/tildearrow/furnace into ymf289b 2023-01-15 08:04:24 +09:00
cam900 3d345af1b8 Merge branch 'master' of https://github.com/tildearrow/furnace into ymf289b 2023-01-14 12:11:26 +09:00
cam900 68964e384f Spacing 2023-01-05 08:51:44 +09:00
cam900 74e429fae2 Fix pitch 2023-01-05 08:51:25 +09:00
cam900 f5c1273c2d Clock preset fix 2023-01-05 08:47:24 +09:00
cam900 e5d81bd694 Prepare to YMF289B OPL3-L support 2023-01-05 08:40:44 +09:00
458 changed files with 35634 additions and 19334 deletions

1
.gitattributes vendored Normal file
View File

@ -0,0 +1 @@
*.sfd text

View File

@ -1 +1,39 @@
<!-- NOTICE: if you are going to write a suggestion, see the Discussions section instead. any suggestions posted in Issues will be closed. -->
# IMPORTANT NOTICE
1. this section is exclusively for ISSUES related to Furnace (bugs, major annoyances and others).
2. this section is NOT for Suggestions, Questions, Showcase or any other Discussions that do not meet the criteria and definition of an ISSUE.
- see the Discussions section if you wish to submit these.
3. check whether your issue has been reported already.
- go to the Issues section, and use the search bar that appears on top of the Issues list.
4. include the following information:
- version of Furnace (help > about)
- operating system (and version)
- whether you have downloaded Furnace, or built it from source.
5. provide these details if you believe the issue is operating system and/or computer-specific:
- CPU model
- Windows: go to Control Panel > System.
- macOS: go to the Apple menu and select About This Mac...
- Linux: use `lscpu` or `cat /proc/cpuinfo`.
- graphics card (and driver version)
- Windows: open `dxdiag` and observe the Render tab.
- macOS: go to the Apple menu and select About This Mac...
- this information is not always shown.
- this information is not necessary if you use an Apple silicon Mac.
- Linux: use `glxinfo | grep OpenGL`.
6. if your issue is an abnormal program termination (a "Crash"), you must provide additional details:
- the furnace_crash.txt file that is created by Furnace after a Crash. this file is located in the following paths:
- Windows: `C:\Users\<username>\furnace_crash.txt`
- Linux/other: `/tmp/furnace_crash.txt`
- on macOS this file is not generated. you may retrieve information about the Crash by clicking on "Report..." or "Show Details" in the "quit unexpectedly" dialog that appears following the Crash.
- make sure to remove any personal information for privacy reasons.
- be sure to select "Don't Send" afterwards.
- the furnace.log file located in:
- Windows: `C:\Users\<username>\AppData\Roaming\furnace\furnace.log`
- macOS: `~/Library/Application Support/furnace/furnace.log`
- Linux: `~/.config/furnace/furnace.log`
- make sure to remove any personal information for privacy reasons.
BY SUBMITTING A TICKET, YOU HEREBY AGREE TO COMPLY WITH THESE TERMS.
FAILURE TO DO SO MAY RESULT IN YOUR TICKET BEING DECLARED VOID.
***END OF NOTICE*** --- REMOVE THIS NOTICE AFTER READING!

3
.gitignore vendored
View File

@ -6,6 +6,7 @@ release/
t/
winbuild/
win32build/
xpbuild/
macbuild/
linuxbuild/
*.swp
@ -26,3 +27,5 @@ CMakePresets.json
extern/imgui_patched/examples/
src/asm/68k/amigatest/*.bin
src/asm/68k/amigatest/player
res/binary_to_compressed_c
res/binary_to_compressed_c.exe

3
.gitmodules vendored
View File

@ -12,3 +12,6 @@
[submodule "extern/adpcm"]
path = extern/adpcm
url = https://github.com/superctr/adpcm
[submodule "extern/portaudio"]
path = extern/portaudio
url = https://github.com/PortAudio/portaudio.git

View File

@ -27,6 +27,7 @@ include(TestBigEndian)
if (ANDROID)
set(USE_RTMIDI_DEFAULT OFF)
set(WITH_PORTAUDIO_DEFAULT OFF)
set(USE_BACKWARD_DEFAULT OFF)
find_library(TERMUX rt)
if (TERMUX)
@ -34,6 +35,7 @@ if (ANDROID)
endif()
else()
set(USE_RTMIDI_DEFAULT ON)
set(WITH_PORTAUDIO_DEFAULT ON)
if (WIN32 OR APPLE)
set(USE_BACKWARD_DEFAULT ON)
else()
@ -78,6 +80,7 @@ option(USE_SDL2 "Build with SDL2. Required to build with GUI." ${USE_SDL2_DEFAUL
option(USE_SNDFILE "Build with libsndfile. Required in order to work with audio files." ${USE_SNDFILE_DEFAULT})
option(USE_BACKWARD "Use backward-cpp to print a backtrace on crash/abort." ${USE_BACKWARD_DEFAULT})
option(WITH_JACK "Whether to build with JACK support. Auto-detects if JACK is available" ${WITH_JACK_DEFAULT})
option(WITH_PORTAUDIO "Whether to build with PortAudio for audio output." ${WITH_PORTAUDIO_DEFAULT})
option(WITH_RENDER_SDL "Whether to build with the SDL_Renderer render backend." ${WITH_RENDER_SDL_DEFAULT})
option(WITH_RENDER_OPENGL "Whether to build with the OpenGL render backend." ${WITH_RENDER_OPENGL_DEFAULT})
option(WITH_RENDER_DX11 "Whether to build with the DirectX 11 render backend." ${WITH_RENDER_DX11_DEFAULT})
@ -85,6 +88,7 @@ option(USE_GLES "Use OpenGL ES for the OpenGL render backend." ${USE_GLES_DEFAUL
option(SYSTEM_FFTW "Use a system-installed version of FFTW instead of the vendored one" OFF)
option(SYSTEM_FMT "Use a system-installed version of fmt instead of the vendored one" OFF)
option(SYSTEM_LIBSNDFILE "Use a system-installed version of libsndfile instead of the vendored one" OFF)
option(SYSTEM_PORTAUDIO "Use a system-installed version of PortAudio instead of the vendored one" OFF)
option(SYSTEM_RTMIDI "Use a system-installed version of RtMidi instead of the vendored one" OFF)
option(SYSTEM_ZLIB "Use a system-installed version of zlib instead of the vendored one" OFF)
option(SYSTEM_SDL2 "Use a system-installed version of SDL2 instead of the vendored one" ${SYSTEM_SDL2_DEFAULT})
@ -204,6 +208,27 @@ else()
message(STATUS "Not using libsndfile")
endif()
if (WITH_PORTAUDIO)
if (SYSTEM_PORTAUDIO)
find_package(PkgConfig REQUIRED)
pkg_check_modules(PORTAUDIO REQUIRED portaudio)
list(APPEND DEPENDENCIES_INCLUDE_DIRS ${PORTAUDIO_INCLUDE_DIRS})
list(APPEND DEPENDENCIES_COMPILE_OPTIONS ${PORTAUDIO_CFLAGS_OTHER})
list(APPEND DEPENDENCIES_LIBRARIES ${PORTAUDIO_LIBRARIES})
list(APPEND DEPENDENCIES_LIBRARY_DIRS ${PORTAUDIO_LIBRARY_DIRS})
list(APPEND DEPENDENCIES_LINK_OPTIONS ${PORTAUDIO_LDFLAGS_OTHER})
list(APPEND DEPENDENCIES_LEGACY_LDFLAGS ${PORTAUDIO_LDFLAGS})
message(STATUS "Using system-installed PortAudio")
else()
set(PA_BUILD_SHARED_LIBS OFF CACHE BOOL "Build dynamic library" FORCE)
# don't - Furnace has its own implementation
set(PA_USE_JACK OFF CACHE BOOL "Enable support for JACK Audio Connection Kit" FORCE)
add_subdirectory(extern/portaudio EXCLUDE_FROM_ALL)
list(APPEND DEPENDENCIES_LIBRARIES PortAudio)
message(STATUS "Using vendored PortAudio")
endif()
endif()
if (USE_RTMIDI)
if (SYSTEM_RTMIDI)
find_package(PkgConfig REQUIRED)
@ -283,6 +308,13 @@ if (USE_SDL2)
# If you link SDL statically, you also need to define HAVE_LIBC so it builds with the C runtime that your application uses.
# This should probably go in a FAQ.
set(SDL_LIBC ON CACHE BOOL "Tell SDL that we want it to use our C runtime (required for proper static linking)" FORCE)
# https://github.com/tildearrow/furnace/issues/1237
# enabling this will result in SDL finding the Direct3D headers, forcing _WIN32_WINNT to an undesirable value (which makes the Wine headers define GetTickCount64)
if (SUPPORT_XP)
set(SDL_RENDER_D3D OFF CACHE BOOL "Enable the Direct3D render driver" FORCE)
endif()
add_subdirectory(extern/SDL EXCLUDE_FROM_ALL)
list(APPEND DEPENDENCIES_DEFINES HAVE_SDL2)
list(APPEND DEPENDENCIES_INCLUDE_DIRS extern/SDL/include)
@ -338,6 +370,14 @@ else()
message(STATUS "Building without JACK support")
endif()
if (WITH_PORTAUDIO)
list(APPEND AUDIO_SOURCES src/audio/pa.cpp)
message(STATUS "Building with PortAudio")
list(APPEND DEPENDENCIES_DEFINES HAVE_PA)
else()
message(STATUS "Building without PortAudio")
endif()
if (USE_RTMIDI)
list(APPEND AUDIO_SOURCES src/audio/rtmidi.cpp)
message(STATUS "Building with RtMidi")
@ -498,6 +538,10 @@ src/engine/platform/sound/sm8521.c
src/engine/platform/sound/d65modified.c
src/engine/platform/sound/ted-sound.c
src/engine/platform/sound/c140_c219.c
src/engine/platform/oplAInterface.cpp
src/engine/platform/ym2608Interface.cpp
src/engine/platform/ym2610Interface.cpp
@ -506,7 +550,9 @@ src/engine/blip_buf.c
src/engine/brrUtils.c
src/engine/safeReader.cpp
src/engine/safeWriter.cpp
src/engine/workPool.cpp
src/engine/cmdStream.cpp
src/engine/cmdStreamOps.cpp
src/engine/config.cpp
src/engine/configEngine.cpp
src/engine/dispatchContainer.cpp
@ -514,6 +560,7 @@ src/engine/engine.cpp
src/engine/export.cpp
src/engine/fileOps.cpp
src/engine/fileOpsIns.cpp
src/engine/fileOpsSample.cpp
src/engine/filter.cpp
src/engine/instrument.cpp
src/engine/macroInt.cpp
@ -524,6 +571,7 @@ src/engine/song.cpp
src/engine/sysDef.cpp
src/engine/wavetable.cpp
src/engine/waveSynth.cpp
src/engine/wavOps.cpp
src/engine/vgmOps.cpp
src/engine/zsmOps.cpp
src/engine/zsm.cpp
@ -589,6 +637,8 @@ src/engine/platform/ga20.cpp
src/engine/platform/sm8521.cpp
src/engine/platform/pv1000.cpp
src/engine/platform/k053260.cpp
src/engine/platform/ted.cpp
src/engine/platform/c140.cpp
src/engine/platform/pcmdac.cpp
src/engine/platform/dummy.cpp
@ -636,6 +686,7 @@ src/gui/font_proggyClean.cpp
src/gui/font_ptMono.cpp
src/gui/font_unifont.cpp
src/gui/font_icon.cpp
src/gui/font_furicon.cpp
src/gui/fonts.cpp
src/gui/image_icon.cpp
@ -696,6 +747,7 @@ src/gui/subSongs.cpp
src/gui/sysConf.cpp
src/gui/sysEx.cpp
src/gui/sysManager.cpp
src/gui/sysPartNumber.cpp
src/gui/sysPicker.cpp
src/gui/tutorial.cpp
src/gui/util.cpp

View File

@ -48,8 +48,10 @@ for other operating systems, you may [build the source](#developer-info).
- Ricoh RF5C68 used in Sega CD and FM Towns
- OKI MSM6258 and MSM6295
- Konami K007232
- Konami K053260
- Irem GA20
- Ensoniq ES5506
- Namco C140
- wavetable chips:
- HuC6280 used in PC Engine
- Konami Bubble System WSG
@ -73,6 +75,7 @@ for other operating systems, you may [build the source](#developer-info).
- QuadTone engine
- Pokémon Mini
- Commodore PET
- TED used in Commodore Plus/4
- Casio PV-1000
- TIA used in Atari 2600
- POKEY used in Atari 8-bit computers
@ -124,7 +127,7 @@ for other operating systems, you may [build the source](#developer-info).
# quick references
- **discussion**: see the [Discussions](https://github.com/tildearrow/furnace/discussions) section, the [official Revolt](https://rvlt.gg/GRPS6tmc) or the [official Discord server](https://discord.gg/EfrwT2wq7z).
- **help**: check out the [documentation](doc/README.md). it's about 80% complete.
- **help**: check out the [documentation](doc/README.md). it's about 90% complete.
## packages
@ -136,6 +139,7 @@ some people have provided packages for Unix/Unix-like distributions. here's a li
- **FreeBSD**: [a package in ports](https://www.freshports.org/audio/furnace/) is available courtesy of ehaupt (warning: 0.5.8!).
- **Nix**: [package](https://search.nixos.org/packages?channel=unstable&show=furnace&from=0&size=50&sort=relevance&type=packages&query=furnace) thanks to OPNA2608.
- **openSUSE**: [a package](https://software.opensuse.org/package/furnace) is available, courtesy of fpesari.
- **Void Linux**: [furnace](https://github.com/void-linux/void-packages/tree/master/srcpkgs/furnace) is available in the official repository.
---
# developer info
@ -248,6 +252,7 @@ Available options:
| `USE_SNDFILE` | `ON` | Build with libsndfile (required in order to work with audio files) |
| `USE_BACKWARD` | `ON` | Use backward-cpp to print a backtrace on crash/abort |
| `WITH_JACK` | `ON` if system-installed JACK detected, otherwise `OFF` | Whether to build with JACK support. Auto-detects if JACK is available |
| `WITH_PORTAUDIO` | `ON` | Whether to build with PortAudio. |
| `SYSTEM_FFTW` | `OFF` | Use a system-installed version of FFTW instead of the vendored one |
| `SYSTEM_FMT` | `OFF` | Use a system-installed version of fmt instead of the vendored one |
| `SYSTEM_LIBSNDFILE` | `OFF` | Use a system-installed version of libsndfile instead of the vendored one |

View File

@ -15,8 +15,8 @@ android {
}
minSdkVersion 21
targetSdkVersion 26
versionCode 162
versionName "0.6pre7"
versionCode 169
versionName "0.6pre9"
externalNativeBuild {
cmake {
arguments "-DANDROID_APP_PLATFORM=android-21", "-DANDROID_STL=c++_static", "-DWARNINGS_ARE_ERRORS=ON"

View File

@ -1,8 +1,8 @@
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="org.tildearrow.furnace"
android:versionCode="162"
android:versionName="0.6pre7"
android:versionCode="169"
android:versionName="0.6pre9"
android:installLocation="auto">
<!-- OpenGL ES 2.0 -->

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

BIN
demos/ay8910/vibe_zone.fur Normal file

Binary file not shown.

Binary file not shown.

Binary file not shown.

BIN
demos/gameboy/cheap.fur Normal file

Binary file not shown.

Binary file not shown.

BIN
demos/gameboy/dtect.fur Normal file

Binary file not shown.

BIN
demos/gameboy/freedom.fur Normal file

Binary file not shown.

Binary file not shown.

BIN
demos/gameboy/lagtrain.fur Normal file

Binary file not shown.

BIN
demos/gameboy/minos.fur Normal file

Binary file not shown.

BIN
demos/gameboy/spreadtro.fur Normal file

Binary file not shown.

BIN
demos/genesis/mm5_boss.fur Normal file

Binary file not shown.

Binary file not shown.

Binary file not shown.

BIN
demos/msx/21492413.fur Normal file

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

BIN
demos/opl/DASH.fur Normal file

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -20,4 +20,10 @@ it also has a flexible windowing system which you may move around and organize.
see [2-interface](../2-interface/README.md) and [3-pattern](../3-pattern/README.md) for more information.
once familiar with the tracker, look to [9-guides](../9-guides/README.md) for useful techniques.
once familiar with the tracker, look to [9-guides](../9-guides/README.md) for useful techniques.
# links
[Furnace Tutorials](https://youtube.com/playlist?list=PLCELB6AsTZUnwv0PC5AAGHjvg47F44YQ1): video tutorials created by Spinning Square Waves.

View File

@ -15,22 +15,22 @@ The **[pattern view](../3-pattern/README.md)** is like a spreadsheet that displa
## structure
The **order list** is a smaller spreadsheet showing the overall song structure.
- A song is made up of a list of **orders**.
- An **order** is a set of numbered **patterns** used for each channel.
- A song is made up of a list of orders.
- An **order** is a set of numbered patterns used for each channel.
- Each channel has its own unique list of patterns.
- Each pattern contains note and effect data for that channel only.
- Each **pattern** contains note and effect data for that channel only.
- Patterns may be used multiple times in the order list. Changing a pattern's data in one order will affect the same pattern used in other orders.
## time
- Each pattern is made of the same number of **rows** as seen in the tracker view.
- During playback, Each row lasts a number of **ticks** determined by its **speed** value.
- A tick is the smallest measure of time to which all note, effect, and macro times are quantized.
- Each pattern is made of the same number of rows as seen in the tracker view.
- During playback, each **row** lasts a number of ticks determined by its **speed** value.
- A **tick** is the smallest measure of time to which all note, effect, and macro times are quantized.
## sound
Different chips have different capabilities. Even within the same chip, each channel may have its own ways of making sound.
- Some channels use one or more waveform **generators** (sine, square, noise...) to build up a sound.
- Of special note are **[FM (frequency modulation)](../4-instrument/fm.md)** channels, which use a number of generators called **operators** that can interact to make very complex sounds.
- Some channels use **[samples](../6-sample/README.md)** - recordings of sounds, often with defined loop points to allow a note to sustain.
- Some channels use **[samples](../6-sample/README.md)** which are recordings of sounds, often with defined loop points to allow a note to sustain.
- Some channels use **[wavetables](../5-wave/README.md)**, which are like very short samples of fixed length that automatically loop.

View File

@ -6,19 +6,25 @@ the default layout of Furnace is depicted below.
![interface](interface1.png)
primary topics:
## general info
- [UI components](components.md): recommended reading for all!
- [global keyboard shortcuts](keyboard.md)
- [menu bar](menu-bar.md)
## primary windows
- [order list](order-list.md)
- [play/edit controls](play-edit-controls.md)
- [instrument/wavetable/sample list](asset-list.md)
- [song information](song-info.md)
- [effect list window](effect-list-window.md)
- [pattern view](../3-pattern/README.md)
- [instrument editor](../4-instrument/README.md)
- [wavetable editor](../5-wave/README.md)
- [sample editor](../6-sample/README.md)
advanced topics:
## advanced topics
- [mixer](../8-advanced/mixer.md)
- [grooves](../8-advanced/grooves.md)
@ -35,9 +41,7 @@ advanced topics:
- [log viewer](../8-advanced/log-viewer.md)
- [statistics](../8-advanced/stats.md)
other topics:
## other topics
- [settings](../2-interface/settings.md)
- [UI components](components.md)
- [global keyboard shortcuts](keyboard.md)
- [basic mode](basic-mode.md)
- [settings](../2-interface/settings.md)

Binary file not shown.

Before

Width:  |  Height:  |  Size: 423 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 576 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 648 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 436 B

View File

@ -3,10 +3,20 @@
![instruments window](instruments.png)
Buttons from left to right:
- **Add**: Creates a new, default instrument.
- **Add**: pops up a menu to select which type of instrument to add. if only one instrument type is available, the menu is skipped.
- If the "Display instrument type menu when adding instrument" setting is disabled, this skips the menu and creates an instrument according to the chip under the cursor.
- Right-clicking always brings up the menu.
- **Duplicate**: Duplicates the currently selected instrument.
- **Open**: Brings up a file dialog to load a file as a new instrument at the end of the list.
- **Save**: Brings up a file dialog to save the currently selected instrument.
- **Save**: Brings up a file dialog to save the currently selected asset.
- Instruments are saved as Furnace instrument (.fui) files.
- Wavetables are saved as Furnace wavetable (.fuw) files.
- Samples are saved as standard wave (.wav) files.
- Right-clicking brings up a menu with the applicable items from this list:
- **save instrument as .dmp...**: saves the selected instrument in DefleMask format.
- **save wavetable as .dmw...**: saves the selected wavetable in DefleMask format.
- **save raw wavetable...**: saves the selected wavetable as raw data.
- **save raw sample...**: saves the selected sample as raw data.
- **Toggle folders/standard view**: Enables (and disables) folder view, explained below.
- **Move up**: Moves the currently selected instrument up in the list. Pattern data will automatically be adjusted to match.
- **Move down**: Same, but downward.
@ -33,6 +43,6 @@ Everything from the instrument list applies here also, with one major difference
![samples window](samples.png)
Everything from the wavetables list applies here also, with the addition of two buttons:
Everything from the wavetables list applies here also, with the addition of one button before the Delete button:
- **Preview**: Plays the selected sample at its default note.
- **Stop preview**: Stops the sample playback.
- Right-clicking stops the sample playback.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 725 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 464 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 684 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 406 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 620 B

View File

@ -1,6 +1,35 @@
# UI components
the user interface consists of several components. this paper describes some of them.
the user interface consists of several kinds of components, some of which benefit from explanation.
## text fields
text fields are able to hold... text.
click on a text field to start editing, and click away to stop editing.
the following keyboard shortcuts work while on a text field:
- `Ctrl-X`: cut
- `Ctrl-C`: copy
- `Ctrl-V`: paste
- `Ctrl-A`: select all
(replace Ctrl with Command on macOS)
## number input fields
these work similar to text fields, but you may only input numbers.
they also usually have `+` and `-` buttons which allow you to increase/decrease the amount when clicked (and rapidly do so when click-holding).
## sliders
sliders are used for controlling values in a quick manner by being dragged.
using the scroll wheel while holding Ctrl will change the slider's value by small amounts.
right-clicking or Ctrl-clicking or a slider (Command-click on macOS) will turn it into a number input field for a short period of time, allowing you to input precise values.
## windows
@ -16,7 +45,7 @@ to resize a window, drag the bottom right corner (marked by a triangular tab) or
to collapse a window, click on the triangle in the title bar.
clicking again expands it.
to close a window, click on the `X` at the top right corner.
to close a window, click on the `X` at the top right corner, or select it from the "window" menu.
### arrangement and docking
@ -55,30 +84,3 @@ selecting this option will hide the tab bar of that window.
to bring it back, click on the top left corner.
to undock a window, drag its tab away from where it is docked. then it will be floating again.
## text fields
text fields are able to hold... text.
click on a text field to start editing, and click away to stop editing.
the following keyboard shortcuts work while on a text field:
- `Ctrl-X`: cut
- `Ctrl-C`: copy
- `Ctrl-V`: paste
- `Ctrl-A`: select all
(replace Ctrl with Command on macOS)
## number input fields
these work similar to text fields, but you may only input numbers.
they also usually have two buttons which allow you to increase/decrease the amount when clicked (and rapidly do so when click-holding).
## sliders
sliders are used for controlling values in a quick manner by being dragged.
alternatively, right-clicking or Ctrl-clicking or a slider (Command-click on macOS) will turn it into a number input field for a short period of time, allowing you to input fine values.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 25 KiB

After

Width:  |  Height:  |  Size: 28 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 25 KiB

After

Width:  |  Height:  |  Size: 27 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 362 KiB

After

Width:  |  Height:  |  Size: 436 KiB

View File

@ -0,0 +1,10 @@
# effect list window
(for more details about these effects, see [the effects page](../3-pattern/effects.md))
![effect list window](effect-list.png)
this window provides a list of the effects that are available.
- **Chip at cursor**: the currently selected chip. the list only shows available effects for this chip.
- menu button: opens a small list of effect categories. toggle each to change whether they're shown in the list.

Binary file not shown.

After

Width:  |  Height:  |  Size: 157 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 37 KiB

After

Width:  |  Height:  |  Size: 42 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 38 KiB

After

Width:  |  Height:  |  Size: 43 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 368 KiB

After

Width:  |  Height:  |  Size: 435 KiB

View File

@ -1,15 +1,256 @@
# global keyboard shortcuts
# keyboard
this is a list of available shortcuts that may be used at any time, regardless of currently focused window.
everything on this list can be configured in the "Keyboard" tab of the Settings dialog:
- click on a keybind then enter a key or key combination to change it.
- right-click to clear the keybind.
key | action
-----------|-----------------------
Ctrl-O | open file
Ctrl-S | save file
Enter | play/stop song
F5/F6 | "
Shift-Enter| play from cursor position
F7 | "
Ctrl-Enter | play one row
NumPad `/` | decrease octave
NumPad `*` | increase octave
the keys in the "Global hotkeys" section can be used in any window, though not within text boxes.
| action | default keybind |
|--------------------------------------------------------|------------------|
| **Global hotkeys** | |
| New | `Ctrl-N` |
| Clear song data | — |
| Open file | `Ctrl-O` |
| Restore backup | — |
| Save file | `Ctrl-S` |
| Save as | `Ctrl-Shift-S` |
| Undo | `Ctrl-Z` |
| Redo | `Ctrl-Y` |
| Play/Stop (toggle) | `Return` |
| Play | — |
| Stop | — |
| Play (from beginning) | `F5` |
| Play (repeat pattern) | — |
| Play from cursor | `Shift-Return` |
| Step row | `Ctrl-Return` |
| Octave up | `Keypad *` |
| Octave down | `Keypad /` |
| Previous instrument | `Shift-Keypad /` |
| Next instrument | `Shift-Keypad *` |
| Increase edit step | `Ctrl-Keypad *` |
| Decrease edit step | `Ctrl-Keypad /` |
| Toggle edit mode | `Space` |
| Metronome | `Ctrl-M` |
| Toggle repeat pattern | — |
| Follow orders | — |
| Follow pattern | — |
| Toggle full-screen | `F11` |
| Request voice from TX81Z | — |
| Panic | `F12` |
| | |
| **Window activation** | |
| Find/Replace | Ctrl-F |
| Settings | — |
| Song Information | — |
| Subsongs | — |
| Speed | — |
| Instrument List | — |
| Wavetable List | — |
| Sample List | — |
| Orders | — |
| Pattern | — |
| Mixer | — |
| Grooves | — |
| Channels | — |
| Pattern Manager | — |
| Chip Manager | — |
| Compatibility Flags | — |
| Song Comments | — |
| Instrument Editor | — |
| Wavetable Editor | — |
| Sample Editor | — |
| Edit Controls | — |
| Piano | — |
| Oscilloscope (master) | — |
| Oscilloscope (per-channel) | — |
| Volume Meter | — |
| Clock | — |
| Register View | — |
| Log Viewer | — |
| Statistics | — |
| Effect List | — |
| Debug Menu | `Ctrl-Shift-D` |
| About | — |
| Collapse/expand current window | — |
| Close current window | `Shift-Escape` |
| | |
| **Note input** | |
| _see "note input" section after table_ | |
| | |
| **Pattern** | |
| Transpose (+1) | `Ctrl-F2` |
| Transpose (-1) | `Ctrl-F1` |
| Transpose (+1 octave) | `Ctrl-F4` |
| Transpose (-1 octave) | `Ctrl-F3` |
| Increase values (+1) | `Ctrl-Shift-F2` |
| Increase values (-1) | `Ctrl-Shift-F1` |
| Increase values (+16) | `Ctrl-Shift-F4` |
| Increase values (-16) | `Ctrl-Shift-F3` |
| Select all | `Ctrl-A` |
| Cut | `Ctrl-X` |
| Copy | `Ctrl-C` |
| Paste | `Ctrl-V` |
| Paste Mix (foreground) | `Ctrl-Shift-V` |
| Paste Mix (background) | — |
| Paste Flood | — |
| Paste Overflow | — |
| Move cursor up | `Up` |
| Move cursor down | `Down` |
| Move cursor left | `Left` |
| Move cursor right | `Right` |
| Move cursor up by one (override Edit Step) | `Shift-Home` |
| Move cursor down by one (override Edit Step) | `Shift-End` |
| Move cursor to previous channel | — |
| Move cursor to next channel | — |
| Move cursor to next channel (overflow) | — |
| Move cursor to previous channel (overflow) | — |
| Move cursor to beginning of pattern | `Home` |
| Move cursor to end of pattern | `End` |
| Move cursor up (coarse) | `PageUp` |
| Move cursor down (coarse) | `PageDown` |
| Expand selection upwards | `Shift-Up` |
| Expand selection downwards | `Shift-Down` |
| Expand selection to the left | `Shift-Left` |
| Expand selection to the right | `Shift-Right` |
| Expand selection upwards by one (override Edit Step) | — |
| Expand selection downwards by one (override Edit Step) | — |
| Expand selection to beginning of pattern | — |
| Expand selection to end of pattern | — |
| Expand selection upwards (coarse) | `Shift-PageUp` |
| Expand selection downwards (coarse) | `Shift-PageDown` |
| Delete | `Delete` |
| Pull delete | `Backspace` |
| Insert | `Insert` |
| Mute channel at cursor | `Alt-F9` |
| Solo channel at cursor | `Alt-F10` |
| Unmute all channels | `Alt-Shift-F9` |
| Go to next order | — |
| Go to previous order | — |
| Collapse channel at cursor | — |
| Increase effect columns | — |
| Decrease effect columns | — |
| Interpolate | — |
| Fade | — |
| Invert values | — |
| Flip selection | — |
| Collapse rows | — |
| Expand rows | — |
| Collapse pattern | — |
| Expand pattern | — |
| Collapse song | — |
| Expand song | — |
| Set note input latch | — |
| Clear note input latch | — |
| | |
| **Instrument list** | |
| Add | `Insert` |
| Duplicate | `Ctrl-D` |
| Open | — |
| Open (replace current) | — |
| Save | — |
| Save (.dmp) | — |
| Move up | `Shift-Up` |
| Move down | `Shift-Down` |
| Delete | — |
| Edit | `Shift-Return` |
| Cursor up | `Up` |
| Cursor down | `Down` |
| Toggle folders/standard view | `Ctrl-V` |
| | |
| **Wavetable list** | |
| Add | `Insert` |
| Duplicate | `Ctrl-D` |
| Open | — |
| Open (replace current) | — |
| Save | — |
| Save (.dmw) | — |
| Save (raw) | — |
| Move up | `Shift-Up` |
| Move down | `Shift-Down` |
| Delete | — |
| Edit | `Shift-Return` |
| Cursor up | `Up` |
| Cursor down | `Down` |
| Toggle folders/standard view | `Ctrl-V` |
| | |
| **Sample list** | |
| Add | `Insert` |
| Duplicate | `Ctrl-D` |
| Create wavetable from selection | `Ctrl-W` |
| Open | — |
| Open (replace current) | — |
| Import raw data | — |
| Import raw data (replace current) | — |
| Save | — |
| Save (raw) | — |
| Move up | `Shift-Up` |
| Move down | `Shift-Down` |
| Delete | — |
| Edit | `Shift-Return` |
| Cursor up | `Up` |
| Cursor down | `Down` |
| Preview | — |
| Stop preview | — |
| Toggle folders/standard view | `Ctrl-V` |
| | |
| **Orders** | |
| Previous order | `Up` |
| Next order | `Down` |
| Cursor left | `Left` |
| Cursor right | `Right` |
| Increase value | — |
| Decrease value | — |
| Switch edit mode | — |
| Toggle alter entire row | `Ctrl-L` |
| Add | `Insert` |
| Duplicate | `Ctrl-D` |
| Deep clone | `Ctrl-Shift-D` |
| Duplicate to end of song | `Ctrl-E` |
| Deep clone to end of song | `Ctrl-Shift-E` |
| Remove | `Delete` |
| Move up | `Shift-Up` |
| Move down | `Shift-Down` |
| Replay | — |
| | |
| **Sample editor** | |
| Edit mode: Select | `Shift-I` |
| Edit mode: Draw | `Shift-D` |
| Cut | `Ctrl-X` |
| Copy | `Ctrl-C` |
| Paste | `Ctrl-V` |
| Paste replace | `Ctrl-Shift-V` |
| Paste mix | `Ctrl-Alt-V` |
| Select all | `Ctrl-A` |
| Resize | `Ctrl-R` |
| Resample | `Ctrl-E` |
| Amplify | `Ctrl-B` |
| Normalize | `Ctrl-N` |
| Fade in | `Ctrl-I` |
| Fade out | `Ctrl-O` |
| Insert silence | `Insert` |
| Apply silence | `Shift-Delete` |
| Delete | `Delete` |
| Trim | `Ctrl-Delete` |
| Reverse | `Ctrl-T` |
| Invert | `Ctrl-Shift-T` |
| Signed/unsigned exchange | `Ctrl-U` |
| Apply filter | `Ctrl-F` |
| Preview sample | — |
| Stop sample preview | — |
| Zoom in | `Ctrl-=` |
| Zoom out | `Ctrl--` |
| Toggle auto-zoom | `Ctrl-0` |
| Create instrument from sample | — |
| Set loop to selection | `Ctrl-l` |
## note input
the settings for note input keybinds operate differently. each entry in the list of keybinds is made of the following:
- **Key**: key assignment.
- **Type**: type of note input. left-click cycles through "Note", "Note off", "Note release", and "Macro release".
- _note:_ the list is sorted by type. on changing a key's type, it will instantly move to its new sorting position!
- **Value**: number of semitones above C at the current octave. only appears for note type binds.
- **Remove**: removes the keybind from the list.
below all the binds, select a key from the dropdown list to add it. it will appear at or near the top of the list as a note with value 0.

View File

@ -2,12 +2,14 @@
the menu bar allows you to select from five menus: file, edit, settings, window and help.
items in _italics_ don't appear in basic mode and are only available in advanced mode.
# file
- **new...**: create a new song.
- **new...**: creates a new song.
- **open...**: opens the file picker, allowing you to select a song to open.
- **open recent**: contains a list of the songs you've opened before.
- **clear history**: this option erases the file history.
- **clear history**: erases the file history.
- **save**: saves the current song.
- opens the file picker if this is a new song, or a backup.
@ -31,22 +33,16 @@ the menu bar allows you to select from five menus: file, edit, settings, window
- Neo Geo CD (DefleMask 1.0+)
- only use this option if you really need it. there are features which DefleMask does not support, like some effects and FM macros, so these will be lost.
- **export audio...**: export your song to a .wav file. see next section for more details.
- **export VGM...**: export your song to a .vgm file. see next section for more details.
- **export ZSM...**: export your song to a .zsm file. see next section for more details.
- **export audio...**: opens the file picker, allowing you to export your song to a .wav file. see next section for more details.
- **export VGM...**: opens the file picker, allowing you to export your song to a .vgm file. see next section for more details.
- **export ZSM...**: opens the file picker, allowing you to export your song to a .zsm file. see next section for more details.
- only available when there's a YM2151 and/or VERA.
- **export command stream...**: export song data to a command stream file. see next section for more details.
- this option is for developers.
- **add chip...**: add a chip to the current song.
- **configure chip...**: set a chip's parameters.
- for a list of parameters, see [7-systems](../7-systems/README.md).
- **change chip...**: change a chip to another.
- **Preserve channel positions**: enable this option to make sure Furnace does not auto-arrange/delete channels to compensate for differing channel counts. this can be useful for doing ports, e.g. from Genesis to PC-98.
- **remove chip...**: remove a chip.
- **Preserve channel positions**: same thing as above.
- **restore backup**: restore a previously saved backup.
- **manage chips**: opens the [Chip Manager](../8-advanced/chip-manager.md) dialog.
- **restore backup**: restores a previously saved backup.
- Furnace keeps up to 5 backups of a song.
- the backup directory is located in:
- Windows: `%USERPROFILE%\AppData\Roaming\furnace\backups`
@ -85,8 +81,8 @@ the following settings exist:
- other versions may not support all chips.
- use this option if you need to export for a quirky player or parser.
- for example, RYMCast is picky with format versions. if you're going to use this player, select 1.60.
- **loop**: writes loop. if disabled, the resulting file won't loop.
- **loop trail**: this option allows you to set how much of the song is written after it loops.
- **loop**: includes loop information. if disabled, the resulting file won't loop.
- **loop trail**: sets how much of the song is written after it loops.
- the reason this exists is to work around a VGM format limitation in where post-loop state isn't recorded at all.
- this may change the song length as it appears on a player.
- **auto-detect**: detect how much to write automatically.
@ -99,10 +95,10 @@ the following settings exist:
- some chips will not be available, either because VGM doesn't support these yet, or because you selected an old format version.
- **add pattern change hints**: this option adds a "hint" when a pattern change occurs. only useful if you're a developer.
- the format of the "hint" data block that gets written is: `67 66 FE ll ll ll ll 01 oo rr pp pp pp ...`
- ll: length, a 32-bit little-endian number
- oo: order
- rr: initial row (a 0Dxx effect is able to select a different row)
- pp: pattern index (one per channel)
- `ll`: length, a 32-bit little-endian number
- `oo`: order
- `rr`: initial row (a 0Dxx effect is able to select a different row)
- `pp`: pattern index (one per channel)
- **direct stream mode**: this option allows DualPCM to work. don't use this for other chips.
- may or may not play well with hardware VGM players.
@ -120,6 +116,7 @@ the following settings are available:
- I suggest you use the same rate as the song's.
- apparently ZSM doesn't support changing the rate mid-song.
- **loop**: enables loop. if disabled, the song won't loop.
- **optimize size**: removes unnecessary commands to reduce size.
click on **Begin Export** to... you know.
@ -134,13 +131,15 @@ it's not really useful, unless you're a developer and want to use a command stre
# edit
- **...**: does nothing except prevent accidental clicks on later menu items if the menu is too tall to fit on the program window.
- **undo**: reverts the last action.
- **redo**: repeats what you undid previously.
- **cut**: moves the current selection in the pattern view to clipboard.
- **copy**: copies the current selection in the pattern view to clipboard.
- **paste**: inserts the clipboard's contents in the cursor position.
- **paste special...**: variants of the paste feature.
- _**paste special...**:_ variants of the paste feature.
- **paste mix**: inserts the clipboard's contents in the cursor position, but does not erase the occupied region.
- **paste mix (background)**: does the same thing as paste mix, but doesn't alter content which is already there.
- **paste with ins (foreground)**: same thing as paste mix, but changes the instrument.
@ -154,8 +153,8 @@ it's not really useful, unless you're a developer and want to use a command stre
- if a column is already selected, it will select the entire channel.
- if a channel is already selected, it will select the entire pattern.
- **operation mask**: toggles which columns will be affected by the listed operations. [more information here.](../8-advanced/opmask.md)
- **input latch**: determines which data are placed along with a note. [more information here.](../8-advanced/inputlatch.md)
- _**operation mask**:_ toggles which columns will be affected by the listed operations. [more information here.](../8-advanced/opmask.md)
- _**input latch**:_ determines which data are placed along with a note. [more information here.](../8-advanced/inputlatch.md)
- **note/octave up/down**: transposes notes in the current selection.
@ -188,7 +187,7 @@ it's not really useful, unless you're a developer and want to use a command stre
- **expand song**: same as expand, but affects the entire song.
- it also changes speeds and pattern length to compensate.
- **find/replace**: shows [the Find/Replace window](../8-advanced/find-replace.md).
- _**find/replace**:_ shows [the Find/Replace window](../8-advanced/find-replace.md).
- **clear**: allows you to mass-delete things like songs, instruments and the like.
@ -213,12 +212,12 @@ all these menu items show or hide their associated windows.
- [samples](../6-sample/README.md)
- [orders](order-list.md)
- [pattern](../3-pattern/README.md)
- [mixer](mixer.md)
- [grooves](grooves.md)
- [channels](channels.md)
- [pattern manager](pat-manager.md)
- [chip manager](chip-manager.md)
- [compatibility flags](compat-flags.md)
- _[mixer](mixer.md)_
- _[grooves](grooves.md)_
- _[channels](channels.md)_
- _[pattern manager](pat-manager.md)_
- _[chip manager](chip-manager.md)_
- _[compatibility flags](compat-flags.md)_
- [song comments](comments.md)
- [piano](piano.md)
@ -246,5 +245,5 @@ at the end of the menu bar, more information may be shown:
- volume in decimal, hex, and percentage.
- effect type and description.
- during playback, the current values of the following will be listed:\
speed/groove @ tick rate (BPM) | order | row | elapsed time.
> speed/groove @ tick rate (BPM) | order | row | elapsed time.
- if any changes or edits have been made but not yet saved, "modified" will appear.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 72 KiB

After

Width:  |  Height:  |  Size: 80 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 40 KiB

After

Width:  |  Height:  |  Size: 42 KiB

View File

@ -1,235 +1,325 @@
# settings
settings are saved when clicking the **OK** button at the bottom of the dialog.
settings are saved when clicking the **OK** or **Apply** buttons at the bottom of the dialog.
## General
### Program
# General
- **Render backend**: changing this may help with performace issues.
- **Late render clear**: this option is only useful when using old versions of Mesa drivers. it force-waits for VBlank by clearing after present, reducing latency.
- **Power-saving mode**: saves power by lowering the frame rate to 2fps when idle.
- may cause issues under Mesa drivers!
- **Disable threaded input (restart after changing!)**: processes key presses for note preview on a separate thread (on supported platforms), which reduces latency.
- however, crashes have been reported when threaded input is on. enable this option if that is the case.
- **Enable event delay**: may cause issues with high-polling-rate mice when previewing notes.
- **Workspace layout**
- **Import**: reads a .ini layout file.
- **Export**: writes current layout to a .ini file.
- **Reset**: resets layout to default.
### File
- **Use system file picker**: uses native OS file dialog instead of Furnace's.
- **Number of recent files**: number of files that will be remembered in the _open recent..._ menu.
- **Compress when saving**: uses zlib to compress saved songs.
- **Save unused patterns**: stores unused patterns in a saved song.
- **Use new pattern format when saving**: stores patterns in the new, optimized and smaller format. only disable if you need to work with older versions of Furnace.
- **Don't apply compatibility flags when loading .dmf**: does exactly what the option says. your .dmf songs may not play correctly after enabled.
- **Play after opening song:**
- No
- Only if already playing
- Yes
- **Audio export loop/fade out time:**
- **Set to these values on start-up:**
- **Loops**: number of additional times to play through `0Bxx` song loop.
- **Fade out (seconds)**: length of fade out after final loop.
- **Remember last values**
### Chip
- **Initial system**: the system of chips loaded on starting Furnace.
- **Current system**: sets current chips as default.
- **Randomize**: set default to a random system.
- **Randomize**: sets default to a random system.
- this will not choose a random system at each start.
- **Reset to defaults**: sets default to "Sega Genesis/Mega Drive".
- **Name**: name for the default system. may be set to any text.
- system configuration: same as in the [chip manager](../8-advanced/chip-manager.md) and [mixer](../8-advanced/mixer.md).
- **Configure**: same as in the [chip manager](../8-advanced/chip-manager.md) and [mixer](../8-advanced/mixer.md).
- **When creating new song**:
- **Display system preset selector**
- **Start with initial system**
### Start-up
- **Play intro on start-up:**
- **No**: skips intro entirely.
- **Short**: shows silent title screen briefly.
- **Full (short when loading song)**: shows animated musical intro unless started with a song (command line, double-clicking a .fur file, etc.)
- **Full (always)**: always shows animated musical intro.
- **When creating new song**:
- **Display system preset selector**
- **Start with initial system**
- **Disable fade-in during start-up**
- **About screen party time**
- _warning:_ may cause epileptic seizures.
### Behavior
- **Double-click time (seconds)**: maximum time between mouse clicks to recognize them as a double-click.
- **Toggle channel solo on:** select which interactions with a channel header will toggle solo for that channel.
- **Push value when overwriting instead of clearing it**: in the order list and pattern editors, typing into an already-filled value will shift digits instead of starting fresh.
- if off: moving the cursor onto the value `A5` and typing a "B" results in `0B`.
- if on: with the cursor on the value `A5` and typing a "B" results in `5B`.
- **Move cursor up on backspace-delete**
- **Move cursor by edit step on delete**
- **Change current instrument when changing instrument column (absorb)**
- **Delete effect value when deleting effect**
- **Change order when scrolling outside of pattern bounds**:
- if off, the pattern edit cursor will stay locked within the current order.
- if on, moving the cursor past the edge of the previous or next order will move to that order.
- **Move cursor by edit step on insert (push)**
- **Move cursor to end of clipboard content when pasting**
- **Don't scroll when moving cursor**
- **Double click selects entire column**
- **Allow docking editors**
- **Don't raise pattern editor on click**
- **Focus pattern editor when selecting instrument**
- **Restart song when changing chip properties**
- **Use system file picker**: use native OS file dialog instead of Furnace's.
- **Only allow window movement when clicking on title bar**
- **Enable event delay**
- may cause issues with high-polling-rate mice when previewing notes.
- **Power-saving mode**
- saves power by lowering the frame rate to 2fps when idle.
- may cause issues under Mesa drivers!
- **Disable threaded input (restart after changing!)**
- threaded input processes key presses for note preview on a separate thread (on supported platforms), which reduces latency.
- however, crashes have been reported when threaded input is on. enable this option if that is the case.
- **Remember window position**
- remembers the window's last position on start-up.
- **New instruments are blank**
- **Save unused patterns**
- **Compress when saving**
- use zlib to compress saved songs.
- **Cursor follows current order when moving it**
- applies when playback is stopped.
- **Audio export loop/fade out time:**
- **Set to these values on start-up:**
- **Loops**: number of additional times to play through `0Bxx` song loop.
- **Fade out (seconds)**: length of fade out after final loop.
- **Remember last values**
- **Note preview behavior:**
- **Never**
- **When cursor is in Note column**
- **When cursor is in Note column or not in edit mode**
- **Always**
- **Wrap pattern cursor horizontally:**
- **No**
- **Yes**
- **Yes, and move to next/prev row**
- **Wrap pattern cursor vertically:**
- **No**
- **Yes**
- **Yes, and move to next/prev pattern**
- **Cursor movement keys behavior:**
- **Move by one**
- **Move by Edit Step**
- **Effect input cursor behavior:**
- **Move down**
- **Move to effect value (otherwise move down)**
- **Move to effect value/next effect and wrap around**
- **Allow dragging selection:**
- **No**
- **Yes**
- **Yes (while holding Ctrl only)**
# Audio/MIDI
## Audio
- **Backend**: select SDL or JACK for audio output.
- only appears on Linux, or MacOS compiled with JACK support
### Output
- **Backend**: selects a different backend for audio output.
- SDL: the default one.
- JACK: the JACK Audio Connection Kit (low-latency audio server). only appears on Linux, or MacOS compiled with JACK support.
- PortAudio: this may or may not perform better than the SDL backend.
- **Driver**: select a different audio driver if you're having problems with the default one.
- only appears when Backend is SDL.
- **Device**: audio device for playback.
- **Sample rate**
- **Outputs**: select number of audio outputs created, up to 16.
- if using PortAudio backend, devices will be prefixed with the audio API that PortAudio is going to use:
- Windows WASAPI: a modern audio API available on Windows Vista and later, featuring an (optional) Exclusive Mode. be noted that your buffer size setting may be ignored.
- Windows WDM-KS: low-latency, direct to hardware output mechanism. may not work all the time and prevents your audio device from being used for anything else!
- Windows DirectSound: this is the worst choice. best to move on.
- MME: an old audio API. doesn't have Exclusive Mode.
- Core Audio: the only choice in macOS.
- ALSA: low-level audio output on Linux. may prevent other applications from using your audio device.
- **Sample rate**: audio output rate.
- a lower rate decreases quality and isn't really beneficial.
- if using PortAudio backend, be careful about this value.
- **Outputs**: number of audio outputs created, up to 16.
- only appears when Backend is JACK.
- **Channels**: number of output channels to use.
- **Channels**: mono, stereo or something.
- **Buffer size**: size of buffer in both samples and milliseconds.
- **Quality**: selects quality of resampling. low quality reduces CPU load.
- **Metronome volume**
- setting this to a low value may cause stuttering/glitches in playback (known as "underruns" or "xruns").
- setting this to a high value increases latency.
- **Exclusive mode**: enables Exclusive Mode, which may offer latency improvements.
- only available on WASAPI devices in the PortAudio backend!
- **Low-latency mode (experimental!)**: reduces latency by running the engine faster than the tick rate. useful for live playback/jam mode.
- _warning:_ experimental! may produce glitches. only enable if your buffer size is small (10ms or less).
- **Force mono audio**
- **Software clipping**: clips output to nominal range (-1.0 to 1.0) before passing it to the audio device.
- this avoids activating Windows' built-in limiter.
- only enable if your buffer size is small (10ms or less).
- **Force mono audio**: use if you're unable to hear stereo audio (e.g. single speaker or hearing loss in one ear).
- **want:** displays requested audio configuration.
- **got:** displays actual audio configuration returned by audio backend.
- **MIDI input**
- **MIDI output**
- **MIDI input settings**
- **Note input**
- **Velocity input**
- **Map MIDI channels to direct channels**
- **Map Yamaha FM voice data to instruments**
- **Program change is instrument selection**
- **Value input style**:
### Mixing
- **Quality**: selects quality of resampling. low quality reduces CPU load by a small amount.
- **Software clipping**: clips output to nominal range (-1.0 to 1.0) before passing it to the audio device.
- this avoids activating Windows' built-in limiter.
- this option shall be enabled when using PortAudio backend with a DirectSound device.
### Metronome
- **Metronome volume**
## MIDI
### MIDI input
- **MIDI input**: input device.
- **Note input**: enables note input. disable if you intend to use this device only for binding actions.
- **Velocity input**: enables velocity input when entering notes in the pattern.
- **Map MIDI channels to direct channels**: when enabled, notes from MIDI channels will be mapped to channels rather than the cursor position.
- **Map Yamaha FM voice data to instruments**: when enabled, Furnace will listen for any transmitted Yamaha SysEx patches.
- this option is only useful if you have a Yamaha FM synthesizer (e.g. TX81Z).
- selecting a voice or using the "Voice Transmit?" option will send a patch, and Furnace will create a new instrument with its data.
- this may also be triggered by clicking on "Receive from TX81Z" in the instrument editor (OPZ only).
- **Program change is instrument selection**: changes the current instrument when a program change event is received.
- **Value input style**: changes the way values are entered when the pattern cursor is not in the Note column. the following styles are available:
- **Disabled/custom**: no value input through MIDI.
- **Two octaves (0 is C-4, F is D#5)**: maps keys in two octaves to single nibble input. the layout is:
- ` - octave n -- octave n+1 -`
- ` 1 3 6 8 A D F # # # `
- `0 2 4 5 7 9 B C E # # # # #`
- **Raw (note number is value)**: the note number becomes the input value. not useful if you want to input anything above 7F.
- **Two octaves alternate (lower keys are 0-9, upper keys are A-F)**: maps keys in two octaves, but with a different layout:
- ` - octave n -- octave n+1 -`
- ` A B C D E F # # # # `
- `0 1 2 3 4 5 6 7 8 9 # # # #`
- **Use dual control change (one for each nibble)**: maps two control change events to the nibbles of a value.
- **CC of upper nibble**: select the CC number that will change the upper nibble.
- **CC of lower nibble**: select the CC number that will change the lower nibble.
- **Use 14-bit control change**: maps two control change events that together form a single 14-bit CC. some MIDI controllers do these.
- **MSB CC**: select the CC containing the upper portion of the control.
- **LSB CC**: select the CC containing the lower portion of the control.
- **Use single control change**: maps one control change event. not useful if you want to input odd numbers.
- **Control**: select the CC number that will change the value.
- **Per-column control change**: when enabled, you can map several control change events to a channel's columns.
- **Instrument**\
**Volume**\
**Effect `x` type**\
**Effect `x` value**
- **Disabled/custom**
- **Two octaves (0 is C-4, F is D#5)**
- **Raw (note number is value)**
- **Two octaves alternate (lower keys are 0-9, upper keys are A-F)**
- **Use dual control change (one for each nibble)**
- **CC of upper nibble**
- **CC of lower nibble**
- **Use 14-bit control change**
- **MSB CC**
- **LSB CC**
- **Use single control change**
- **Use single control change (imprecise)**
- **Control**
- **Per-column control change**
- **Instrument**\
**Volume**\
**Effect `x` type**\
**Effect `x` value**
- **Disabled/custom**
- **Use dual control change (one for each nibble)**
- **CC of upper nibble**
- **CC of lower nibble**
- **Use 14-bit control change**
- **MSB CC**
- **LSB CC**
- **Use single control change (imprecise)**
- **Control**
- **Volume curve**
- **Actions:**
- **`+`** button: adds a new action.
- window-with-arrow button: new action with learning! press a button or move a slider/knob/something on your device.
- each action has the following:
- **Type**
- **Channel**
- **Note/Control**
- **Velocity/Value**
- **Action**
- **Learn**
- **Remove**
- **Volume curve**: adjust the velocity to volume curve.
- **Actions**: this allows you to bind note input and control change events to actions.
- **`+`** button: adds a new action.
- window-with-arrow button: new action with learning! press a button or move a slider/knob/something on your device.
- each action has the following:
- **Type**: type of event.
- **Channel**: channel of event.
- **Note/Control**: the note/control change number.
- **Velocity/Value**: the velocity or control value
- **Action**: the GUI action to perform.
- **Learn**: after clicking on this button, do something in your MIDI device and Furnace will map that to this action.
- **Remove**: remove this action.
- **MIDI output settings**
- **Output mode:**
- **Off (use for TX81Z)**
- **Melodic**
- **Send Program Change**
- **Send MIDI clock**
- **Send MIDI timecode**
- **Timecode frame rate:**
- **Closest to Tick Rate**
- **Film (24fps)**
- **PAL (25fps)**
- **NTSC drop (29.97fps)**
- **NTSC non-drop (30fps)**
### MIDI output
# Emulation
- **Arcade/YM2151 core**
- **ymfm**
- **Nuked-OPM**
- **Genesis/YM2612 core**
- **Nuked-OPN2**
- **ymfm**
- **SN76489 core**
- **MAME**
- **Nuked-PSG Mod**
- **NES core**
- **puNES**
- **NSFplay**
- **FDS core**
- **puNES**
- **NSFplay**
- **SID core**
- **reSID**
- **reSIDfp**
- **POKEY core**
- **Atari800 (mzpokeysnd)**
- **ASAP (C++ port)**
- **OPN/OPNA/OPNB cores**
- **ymfm only**
- **Nuked-OPN2 (FM) + ymfm (SSG/ADPCM)**
- **MIDI output**: output device.
- **Output mode:**
- **Off (use for TX81Z)**: don't output anything. use if you plan to use Furnace as sync master, or the "Receive from TX81Z" button in the OPZ instrument editor.
- **Melodic**: output MIDI events.
- **Send Program Change**: output program change events when instrument change commands occur.
- **Send MIDI clock**: output MIDI beat clock.
- **Send MIDI timecode**: output MIDI timecode.
- **Timecode frame rate**: sets the timing standard used for MIDI timecode.
- **Closest to Tick Rate**: automatically sets the rate based on the song's Tick Rate.
- **Film (24fps)**: output at 24 codes per second.
- **PAL (25fps)**: output at 25 codes per second.
- **NTSC drop (29.97fps)**: output at ~29.97 codes per second, skipping frames 0 and 1 of each minute that doesn't divide by 10.
- **NTSC non-drop (30fps)**: output at 30 codes per second.
- **PC Speaker strategy:**
- **evdev SND_TONE**
- **KIOCSOUND on /dev/tty1**
- **/dev/port**
- **KIOCSOUND on standard output**
- **outb()**
## Emulation
- **Sample ROMs:**
- **OPL4 YRW801 path**
- **MultiPCM TG100 path**
- **MultiPCM MU5 path**
### Cores
- **Arcade/YM2151 core**\
**Genesis/YM2612 core**\
**SN76489 core**\
**NES core**\
**FDS core**\
**SID core**\
**POKEY core**\
**OPN/OPNA/OPNB cores**:
- **Playback Core(s)**: core(s) to use for realtime playback.
- **Render Core(s)**: core(s) to use for exporting audio.
- all of these are covered in the [guide to choosing emulation cores](../9-guides/emulation-cores.md).
- **PC Speaker strategy**: this is covered in the [PC speaker system doc](../7-systems/pcspkr.md).
## Keyboard
### Keyboard
- **Import**
- **Export**
- **Reset defaults**
- [grouped list of keybinds...](keyboard.md)
- click on a keybind then enter a key or key combination to change it
- right-click to clear the keybind
# Appearance
## Interface
- **Render driver**
- **Automatic UI scaling factor**: automatically match the OS's UI scaling.
- **UI scaling factor**: only if "Automatic UI scaling factor" is off.
- **Main font**: if "Custom...", a file path selector will appear beneath.
- **Size**
- **Pattern font**: if "Custom...", a file path selector will appear beneath.
- **Size**
### Layout
- **Workspace layout**
- **Import**: reads a .ini layout file.
- **Export**: writes current layout to a .ini file.
- **Reset**: resets layout to default.
- **Allow docking editors**
- **Remember window position**: remembers the window's last position on start-up.
- **Only allow window movement when clicking on title bar**
- **Center pop-up windows**
- **Play/edit controls layout:**
- **Classic**
- **Compact**
- **Compact (vertical)**
- **Split**
- **Position of buttons in Orders:**
- **Top**
- **Left**
- **Right**
### Mouse
- **Double-click time (seconds)**: maximum time between mouse clicks to recognize them as a double-click.
- **Don't raise pattern editor on click**
- **Focus pattern editor when selecting instrument**
- **Note preview behavior:**
- **Never**
- **When cursor is in Note column**
- **When cursor is in Note column or not in edit mode**
- **Always**
- **Allow dragging selection:**
- **No**
- **Yes**
- **Yes (while holding Ctrl only)**
- **Toggle channel solo on:** selects which interactions with a channel header will toggle solo for that channel.
- Right-click or double click
- Right-click
- Double-click
- **Double click selects entire column**
### Cursor behavior
- **Insert pushes entire channel row**
- **Pull delete affects entire channel row**
- **Push value when overwriting instead of clearing it**: in the order list and pattern editors, typing into an already-filled value will shift digits instead of starting fresh.
- if off: moving the cursor onto the value `A5` and typing a "B" results in `0B`.
- if on: moving the cursor onto the value `A5` and typing a "B" results in `5B`.
- **Effect input behavior:**
- **Move down**
- **Move to effect value (otherwise move down)**
- **Move to effect value/next effect and wrap around**
- **Delete effect value when deleting effect**
- **Change current instrument when changing instrument column (absorb)**
- **Remove instrument value when inserting note off/release**
- **Remove volume value when inserting note off/release**
### Cursor movement
- **Wrap horizontally:**
- **No**
- **Yes**
- **Yes, and move to next/prev row**
- **Wrap vertically:**
- **No**
- **Yes**
- **Yes, and move to next/prev pattern**
- **Yes, and move to next/prev pattern (wrap around)**
- **Cursor movement keys behavior:**
- **Move by one**
- **Move by Edit Step**
- **Move cursor by edit step on delete**
- **Move cursor by edit step on insert (push)**
- **Move cursor up on backspace-delete**
- **Move cursor to end of clipboard content when pasting**
### Scrolling
- **Change order when scrolling outside of pattern bounds**:
- **No**: the pattern edit cursor will stay locked within the current order.
- **Yes**: moving the cursor past the edge of the previous or next order will move to that order, but not past the start or end of a song.
- **Yes, and wrap around song**: as above, but will wrap from song end to start.
- **Cursor follows current order when moving it**
- applies when playback is stopped.
- **Don't scroll when moving cursor**
- **Move cursor with scroll wheel**
## Appearance
### Scaling
- **Automatic UI scaling factor**: automatically matches the OS's UI scaling.
- **UI scaling factor**: only appears if "Automatic UI scaling factor" is off.
- **Icon size**
### Text
- **Main font**: overall interface font.\
**Header font**: font for section headers.\
**Pattern font** font for the pattern view, the order list, and related.
- if "Custom...", a file path selector will appear.
- **Size**: font size.
- **Display Japanese characters**\
**Display Chinese (Simplified) characters**\
**Display Chinese (Traditional) characters**\
@ -237,25 +327,7 @@ settings are saved when clicking the **OK** button at the bottom of the dialog.
- only toggle these options if you have enough graphics memory.
- these are a temporary solution until dynamic font atlas is implemented in Dear ImGui.
- **Number of recent files**
- **Pattern view labels:**
- **Note off (3-char)**: default is `OFF`
- **Note release (3-char)**: default is `===`.
- **Macro release (3-char)**: default is `REL`.
- **Empty field (3-char)**: default is `...`.
- **Empty field (2-char)**: default is `..`.
- **Orders row number format:**
- **Decimal**
- **Hexadecimal**
- **Pattern row number format:**
- **Decimal**
- **Hexadecimal**
- **FM parameter names:**
- **Friendly**
- **Technical**
- **Technical (alternate)**
### Program
- **Title bar:**
- **Furnace**
@ -269,44 +341,43 @@ settings are saved when clicking the **OK** button at the bottom of the dialog.
- **File path**
- **Cursor details or file path**
- **Nothing**
- **Play/edit controls layout:**
- **Classic**
- **Compact**
- **Compact (vertical)**
- **Split**
- **Position of buttons in Orders:**
- **Top**
- **Left**
- **Right**
- **FM parameter editor layout:**
- **Modern**
- **Compact (2x2, classic)**
- **Compact (1x4)**
- **Compact (4x1)**
- **Alternate (2x2)**
- **Alternate (1x4)**
- **Alternate (4x1)**
- **Position of Sustain in FM editor:**
- **Between Decay and Sustain Rate**
- **After Release Rate**
- **Macro editor layout:**
- **Unified**
- **Mobile**
- **Grid**
- **Single (with list)**
- **Single (combo box)**
- **Capitalize menu bar**
- **Display add/configure/change/remove chip menus in File menu**: if enabled, the "manage chips" item in the file menu is split into the four listed items for quick access.
- **Namco 163 chip name**
### Orders
- **Channel colors:**
- **Single**
- **Channel type**
- **Instrument type**
- **Channel name colors:**
- **Single**
- **Channel type**
- **Instrument type**
- **Channel style:**
- **Highlight channel at cursor in Orders**
- **Orders row number format:**
- **Decimal**
- **Hexadecimal**
### Pattern
- **Center pattern view**: centers pattern horizontally in view.
- **Overflow pattern highlights**
- **Display previous/next pattern**
- **Pattern row number format:**
- **Decimal**
- **Hexadecimal**
- **Pattern view labels:**
- **Note off (3-char)**: default is `OFF`
- **Note release (3-char)**: default is `===`.
- **Macro release (3-char)**: default is `REL`.
- **Empty field (3-char)**: default is `...`.
- **Empty field (2-char)**: default is `..`.
- **Pattern view spacing after:** number of pixels of space between columns.
- **Note**
- **Instrument**
- **Volume**
- **Effect**
- **Effect value**
- **Single-digit effects for 00-0F**
- **Use flats instead of sharps**
- **Use German notation**: display `B` notes as `H`, and `A#` notes as `B`.
### Channel
- **Channel style:** sets the appearance of channel headers in pattern view.
- **Classic**
- **Line**
- **Round**
@ -328,60 +399,101 @@ settings are saved when clicking the **OK** button at the bottom of the dialog.
- **Regular**
- **Monospace**
- **Center channel name**
- **Channel colors:**
- **Single**
- **Channel type**
- **Instrument type**
- **Channel name colors:**
- **Single**
- **Channel type**
- **Instrument type**
### Assets
- **Unified instrument/wavetable/sample list**: combines all three types of assets into one list.
- the buttons act as appropriate to the currently selected asset or header.
- **Horizontal instrument list**: when there are more instruments than there is room to display them...
- if on, scroll horizontally through multiple columns.
- if off, scroll vertically in one long column.
- only appears if "Unified instrument/wavetable/sample list" is off.
- **Instrument list icon style:**
- **None**
- **Graphical icons**
- **Letter icons**
- **Colorize instrument editor using instrument type**
- **Use separate colors for carriers/modulators in FM editor**
- **Unified instrument/wavetable/sample list**
- **Horizontal instrument list**
- **Use standard OPL waveform names**
- **Overflow pattern highlights**
- **Display previous/next pattern**
- **Use German notation**: display `B` notes as `H`, and `A#` notes as `B`.
- **Single-digit effects for 00-0F**
- **Center pattern view**: centers pattern horizontally in view.
- **Unsigned FM detune values**
- **Highlight channel at cursor in Orders**
- **About screen party time**
- _warning:_ may cause epileptic seizures.
- **Display instrument type menu when adding instrument**
- if turned off, the menu can still be opened by right-clicking the add button.
### Macro Editor
- **Macro editor layout:**
- **Unified**
- **Grid**
- **Single (with list)**
- **Use classic macro editor vertical slider**
### Wave Editor
- **Use compact wave editor**
- **Use classic macro editor vertical slider**
### FM Editor
- **FM parameter names:**
- **Friendly**
- **Technical**
- **Technical (alternate)**
- **Use standard OPL waveform names**
- **FM parameter editor layout:**
- **Modern**
- **Compact (2x2, classic)**
- **Compact (1x4)**
- **Compact (4x1)**
- **Alternate (2x2)**
- **Alternate (1x4)**
- **Alternate (4x1)**
- **Position of Sustain in FM editor:**
- **Between Decay and Sustain Rate**
- **After Release Rate**
- **Use separate colors for carriers/modulators in FM editor**
- **Unsigned FM detune values**: uses the internal representation of detune values, such that detune amounts of -1, -2, and -3 are shown as 5, 6, and 7.
### Statistics
- **Chip memory usage unit:** unit for displaying memory usage in the Statistics window.
- **Bytes**
- **Kilobytes**
### Oscilloscope
- **Rounded corners**
- **Border**
- **Mono**: displays a single monaural waveform of all sound mixed together.
- if turned off, waves will be drawn on top of each other for each output channel.
- all colors are configurable via _Settings > Color > Color scheme > Oscilloscope > Wave (non-mono)._
- **Anti-aliased**: smoothes the lines of the waveform.
- slight performance cost and slightly buggy.
- **Fill entire window**: removes the gap between the waveform and the edge of the window.
- **Waveform goes out of bounds**: allows the waveform to draw past the top and bottom of the oscilloscope.
### Windows
- **Rounded window corners**
- **Rounded buttons**
- **Rounded menu corners**
- **Borders around widgets**
- **Disable fade-in during start-up**
- **Oscilloscope settings:**
- **Rounded corners**
- **Fill entire window**
- **Waveform goes out of bounds**
- **Border**
- **Pattern view spacing after:**
- **Note**
- **Instrument**
- **Volume**
- **Effect**
- **Effect value**
- **Color scheme**
- **Import**
- **Export**
- **Reset defaults**
- **General**
- **Color scheme type:**
- **Dark**
- **Light**
- **Frame shading**
- several more categories...
- **Borders around widgets**: draws thin borders on buttons, checkboxes, text widgets, and the like.
# Keyboard
## Color
### Color scheme
- **Import**
- **Export**
- **Reset defaults**
- several categories of keybinds...
- click on a keybind then enter a key or key combination to change it
- right-click to clear the keybind
- **General**
- **Color scheme type:**
- **Dark**
- **Light**
- **Frame shading**: applies a gradient effect to buttons and input boxes.
- several more categories...

View File

@ -1,13 +1,13 @@
# song info
- **Name**: The track's title.
- **Author**: List of contributors to a song. If the song is a cover of someone else's track, it's customary to list their name first, followed by `[cv. YourName]`.
- **Author**: List of contributors to a song. If the song is a cover of someone else's work, it's customary to list their name first, followed by `[cv. YourName]`.
- **Album**: The associated album name, the name of the game the song is from, or whatever.
- **System**: The game console or computer the track is designed for. This is automatically set when creating a new tune, but it can be changed to anything one wants. The **Auto** button will provide a guess based on the chips in use.
- **System**: The game console or computer the track is designed for. This is automatically set when creating a new tune, but in advanced mode, it can be changed to anything one wants. The **Auto** button will provide a guess based on the chips in use.
All of this metadata will be included in a VGM export. This isn't the case for a WAV export, however.
**Tuning (A-4)**: Set tuning based on the note A-4, which should be 440 in most cases. Opening an Amiga MOD will set it to 436 for hardware compatibility.
- _**Tuning (A-4)**:_ Set tuning based on the note A-4, which should be 440 in most cases. Opening an Amiga MOD will set it to 436 for hardware compatibility. Available only in advanced mode.
# subsongs
@ -23,6 +23,8 @@ This window allows one to create **subsongs** - multiple individual songs within
There are multiple ways to set the tempo of a song.
Items in _italics_ don't appear in basic mode and are only available in advanced mode.
**Tick Rate**: The frequency of ticks per second, thus the rate at which notes and effects are processed.
- All values are allowed for all chips, though most chips have hardware limitations that mean they should stay at either 60 (approximately NTSC) or 50 (exactly PAL).
- Clicking the Tick Rate button switches to a more traditional **Base Tempo** BPM setting.
@ -30,14 +32,14 @@ There are multiple ways to set the tempo of a song.
**Speed**: The number of ticks per row.
- Clicking the "Speed" button changes to more complex modes covered in the [grooves] page.
**Virtual Tempo**: Simulates any arbitrary tempo without altering the tick rate. It does this by adding or skipping ticks to approximate the tempo. The two numbers represent a ratio applied to the actual tick rate. Example:
_**Virtual Tempo**:_ Simulates any arbitrary tempo without altering the tick rate. It does this by adding or skipping ticks to approximate the tempo. The two numbers represent a ratio applied to the actual tick rate. Example:
- Set tick rate to 150 BPM (60 Hz) and speed to 6.
- Set the first virtual tempo number (numerator) to 200.
- Set the second virtual tempo number (denominator) to 150.
- The track will play at 200 BPM.
- The ratio doesn't have to match BPM numbers. Set the numerator to 4 and the denominator to 5, and the virtual BPM becomes 150 × 4/5 = 120.
**Divider**: Changes the effective tick rate. A tick rate of 60Hz and a divisor of 6 will result in ticks lasting a tenth of a second each!
_**Divider**:_ Changes the effective tick rate. A tick rate of 60Hz and a divisor of 6 will result in ticks lasting a tenth of a second each!
**Highlight**: Sets the pattern row highlights:
- The first value represents the number of rows per beat.
@ -46,4 +48,4 @@ There are multiple ways to set the tempo of a song.
**Pattern Length**: The length of each pattern in rows. This affects all patterns in the song, and every pattern must be the same length. (Individual patterns can be cut short by `0Bxx`, `0Dxx`, and `FFxx` commands.)
**Song Length**: How many orders are in the order list. Decreasing it will hide the orders at the bottom. Increasing it will restore those orders; increasing it further will add new orders of all `00` patterns.
_**Song Length**:_ How many orders are in the order list. Decreasing it will hide the orders at the bottom. Increasing it will restore those orders; increasing it further will add new orders of all `00` patterns.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 23 KiB

After

Width:  |  Height:  |  Size: 27 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 146 KiB

After

Width:  |  Height:  |  Size: 128 KiB

View File

@ -4,41 +4,85 @@ the pattern view allows you to edit the song.
![pattern view](pattern.png)
a pattern consists of columns ("channels") and rows.
a pattern consists of columns ("channels") and numbered rows.
each column has several subcolumns in this order:
1. note
2. instrument
3. volume
4. effect and effect value (several)
4. effects, split into effect type and effect value
all columns are represented in hexadecimal, except for the note column.
# managing channels
row highlights show beats and measures, and are configured in the [the Speed window](../2-interface/song-info.md).
you may mute channels, toggle solo mode, collapse channels or even hide them.
clicking on a channel name mutes that channel.
double-clicking or right-clicking it enables solo mode, in where only that channel will be audible.
clicking the `++` at the top left corner of the pattern view displays additional buttons for channel configuration:
![channel bar](channelbar.png)
to rename and/or hide channels, see the Channels window (window > channels).
![channels](channels.png)
# cursor and selection
## cursor and selection
you may change the cursor position by clicking anywhere on the pattern.
to select, press and hold the left mouse button. then drag the mouse and release the button to finish selection.
to select an area, press and hold the left mouse button. then drag the mouse and release the button to finish selection.
# keyboard layout
right-clicking within the pattern view brings up a pop-up menu with everything in the [edit menu](../2-interface/menu-bar.md) that makes sense for entering data or altering a selected area.
## shortcuts
## channel bar
using the channel bar, you may adjust several aspects of the channel display.
![channel bar](channelbar.png)
clicking on a channel name mutes that channel.
double-clicking or right-clicking it enables solo mode, in which only that channel will be audible.
clicking the `++` at the top left corner of the pattern view cycles through three channel bar view modes:
- **Compact**: shows only channel names.
- **Expanded**: as shown above. adds buttons:
- **-**: collapse visible columns. changes to **+** when columns are hidden; click to expand them.
- **<**: disables the last effect column and hides it. effects are not deleted...
- **>**: adds an effects column. if one previously existed, its contents will be preserved.
- **Pattern names**: adds a text field with which one can name the current pattern. pattern names are also visible when hovering over a pattern in the order list.
right-clicking the `++` toggles the visualizer, which is active only during playback.
to rename and/or hide channels, open [the Channels window](../8-advanced/channels.md) via the window menu.
# input
## note input
![keyboard](keyboard.png)
- pressing any of the respective keys will insert a note at the cursor's location, then advance to the next row (or otherwise according to the Edit Step.)
- **note off** turns off the last played note in that channel (key off for FM; note cut otherwise).
- **note release** triggers macro release (and in FM channels it also triggers key off).
- **macro release** does the same as above, but does not trigger key off in FM channels.
- **toggle edit** enables and disables editing. when editing is enabled, the cursor's row will be shaded red.
## instrument/volume input
type any hexadecimal number (0-9 and A-F). the cursor will move by the Edit Step when a suitable value is entered.
## effect input
works like the instrument/volume input.
each effect column has two subcolumns: effect and effect value.
if the effect value is not present, it is treated as `00`.
most effects run until canceled using an effect of the same type with effect value `00`, with some exceptions.
here's [a list of effect types](effects.md).
# keyboard shortcuts
these are the default key functions. all keys are configurable in the Keyboard tab of the Settings window.
key | action
------------|-----------------------------------------------------------------
@ -68,27 +112,3 @@ Ctrl-F2 | transpose selection (+1 semitone)
Ctrl-F3 | transpose selection (-1 octave)
Ctrl-F4 | transpose selection (+1 octave)
Space | toggle note input (edit)
## note input
![keyboard](keyboard.png)
- pressing any of the respective keys will insert a note at the cursor's location, and then advance it by the Edit Step.
- note off turns off the last played note in that channel (key off on FM; note cut otherwise).
- note release triggers macro release (and in FM channels it also triggers key off).
- macro release does the same as above, but does not trigger key off in FM channels.
## instrument/volume input
type any hexadecimal number (0-9 and A-F). the cursor will move by the Edit Step when a suitable value is entered.
## effect input
works like the instrument/volume input.
each effect column has two subcolumns: effect and effect value.
if the effect value is not present, it is treated as `00`.
most effects run until canceled using an effect of the same type with effect value `00`, with some exceptions.
for a list of effects [click here](effects.md).

Binary file not shown.

Before

Width:  |  Height:  |  Size: 62 KiB

After

Width:  |  Height:  |  Size: 53 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 65 KiB

View File

@ -14,7 +14,7 @@ however, effects are continuous, which means you only need to type it once and t
- `F4xx`: **Fine volume slide down.** same as `0A0x` but 64× slower.
- `F8xx`: **Single tick volume slide up.** adds `x` to volume on first tick only.
- `F9xx`: **Single tick volume slide down.** subtracts `x` from volume on first tick only.
- ---
- `07xy`: **Tremolo.** changes volume to be "wavy" with a sine LFO. `x` is the speed. `y` is the depth.
- Tremolo is downward only.
- Maximum tremolo depth is -60 volume steps.
@ -26,16 +26,17 @@ however, effects are continuous, which means you only need to type it once and t
- `02xx`: **Pitch slide down.**
- `F1xx`: **Single tick pitch slide up.**
- `F2xx`: **Single tick pitch slide down.**
- `03xx`: **Portamento.** slides the current note's pitch to the specified note. `x` is the slide speed.
- A note _must_ be present for this effect to work.
- ---
- `03xx`: **Portamento.** slides the currently playing note's pitch toward the new note. `x` is the slide speed.
- a note _must_ be present with this effect for it to work.
- the effect stops automatically when it reaches the new note.
- `E1xy`: **Note slide up.** `x` is the speed, while `y` is how many semitones to slide up.
- `E2xy`: **Note slide down.** `x` is the speed, while `y` is how many semitones to slide down.
- `EAxx`: **Toggle legato.** while on, notes instantly change the pitch of the currrently playing sound instead of starting it over.
- ---
- `EAxx`: **Toggle legato.** while on, new notes instantly change the pitch of the currently playing sound instead of starting it over.
- `00xy`: **Arpeggio.** after using this effect the channel will rapidly switch between semitone values of `note`, `note + x` and `note + y`.
- `E0xx`: **Set arpeggio speed.** this sets the number of ticks between arpeggio values. default is 1.
- ---
- `04xy`: **Vibrato.** changes pitch to be "wavy" with a sine LFO. `x` is the speed, while `y` is the depth.
- Maximum vibrato depth is ±1 semitone.
- `E3xx`: **Set vibrato direction.** `xx` may be one of the following:
@ -54,7 +55,7 @@ not all chips support these effects.
- `82xx`: **Set volume of right channel** (from `00` to `FF`).
- `89xx`: **Set volume of rear left channel** (from `00` to `FF`).
- `8Axx`: **Set volume of rear right channel** (from `00` to `FF`).
- ---
- `80xx`: **Set panning (linear).** this effect behaves more like other trackers:
- `00` is left.
- `80` is center.
@ -64,15 +65,15 @@ not all chips support these effects.
- `09xx`: **Set speed/groove.** if no grooves are defined, this sets speed. If alternating speeds are active, this sets the first speed.
- `0Fxx`: **Set speed 2.** during alternating speeds or a groove, this sets the second speed.
- ---
- `Cxxx`: **Set tick rate.** changes tick rate to `xxx` Hz (ticks per second).
- `xxx` may be from `000` to `3FF`.
- `F0xx`: **Set BPM.** changes tick rate according to beats per minute. range is `01` to `FF`.
- ---
- `0Bxx`: **Jump to order.** `x` is the order to play after the current row.
- this marks the end of a loop with order `x` as the loop start.
- `0Dxx`: **Jump to next pattern.** skips the current row and remainder of current order.
- this can be used to shorten the current order.
- `0Dxx`: **Jump to next pattern.** skips the current row and remainder of current order. `x` is the row at which to start playing the next pattern.
- this can be used to shorten the current order as though it had a different pattern length.
- `FFxx`: **Stop song.** stops playback and ends the song. `x` is ignored.
## note
@ -86,12 +87,12 @@ not all chips support these effects.
- `9xxx`: **Set sample position.** jumps current sample to position `xxx * 0x100`.
- Not all chips support this effect.
- `EBxx`: **Set sample bank.**
- Does not apply on Amiga.
- `EBxx`: **Set LEGACY sample mode bank.** selects sample bank. used only for compatibility.
- does not apply on Amiga.
- `EExx`: **Send external command.**
- This effect is currently incomplete.
- `F5xx`: **Disable macro.** see macro table at the end of this document for possible values.
- `F6xx`: **Enable macro.**
- this effect is currently incomplete.
- `F5xx`: **Disable macro.**\
`F6xx`: **Enable macro.** see macro table at the end of this document for possible values.
additionally, [each chip has its own effects](../7-systems/README.md).

Binary file not shown.

Before

Width:  |  Height:  |  Size: 83 KiB

After

Width:  |  Height:  |  Size: 127 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 243 KiB

After

Width:  |  Height:  |  Size: 294 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 184 KiB

View File

@ -1,14 +1,16 @@
# instrument list
![instrument list](list.png)
click on an instrument to select it.
double-click to open the instrument editor.
# instrument editor
every instrument can be renamed and have its type changed.
the instrument editor always starts with this section:
![top of instrument editor](instrument-editor-top.png)
- top-left numeric dropdown: instrument selector.
- folder icon: open an instrument file.
- save icon: save current instrument as a file.
- right-clicking gives the option to save a .dmp format DefleMask preset.
- **Name**: instrument name.
- **Type**: the system for which the instrument is intended.
- if changed, all applicable settings and macros will remain as they are. numbers will not be adjusted.
depending on the instrument type, there are many different types of instrument editor:
@ -23,7 +25,7 @@ depending on the instrument type, there are many different types of instrument e
- [SAA1099](saa.md) - for use with Philips SAA1099 PSG sound source.
- [TIA](tia.md) - for use with Atari 2600 chip.
- [AY-3-8910](ay8910.md) - for use with AY-3-8910 PSG sound source and SSG portion in YM2610.
- [Amiga / sample](amiga.md) for controlling Amiga and other sample based synthsizers like YM2612's Channel 6 PCM mode, NES channel 5, Sega PCM, X1-010 and PC Engine's sample playback mode.
- [Generic Sample](amiga.md) for controlling Amiga and other sample channels/chips like YM2612's Channel 6 PCM mode, NES channel 5, Sega PCM, X1-010 and PC Engine's sample playback mode.
- [Atari Lynx](lynx.md) - for use with Atari Lynx handheld console.
- [VERA](vera.md) - for use with Commander X16 VERA.
- [Seta/Allumer X1-010](x1_010.md) - for use with Wavetable portion in Seta/Allumer X1-010.
@ -32,6 +34,7 @@ depending on the instrument type, there are many different types of instrument e
- [Konami VRC6](vrc6.md) - for use with VRC6's PSG sound source.
- [SNES](snes.md) - for use with SNES S-APU.
- [Casio PV-1000](pv1000.md) - for use with Casio PV-1000.
- [C140](c140.md) for use with Namco C140.
# macros
@ -47,8 +50,9 @@ The very first numeric entry sets the visible width of the bars in sequence-type
Each macro has two buttons on the left.
- Macro type (explained below).
- Timing editor, which pops up a small dialog:
- Step Length (ticks): Determines how many ticks pass before each change of value.
- Delay: Delays the start of the macro until this many ticks have passed.
- Step Length (ticks): Determines how many ticks pass before each change of value. Default is 1.
- Delay: Delays the start of the macro until this many ticks have passed. Default is 0.
- The button is highlighted if either of these is set differently from default.
## macro types
@ -66,14 +70,16 @@ Some macros are "bitmap" style. They represent a number of "bits" that can be to
The number between the macro type label and the macro type button is the macro length in steps. The `-` and `+` buttons change the length of the macro. Start out by adding at least a few steps.
The values of the macro can be drawn in the "bar graph box". Just beneath the box is shorter bar graph.
- Click to set the start point of a loop; the end point is the last value or release point. Right-click to remove the loop.
- Shift-click to set the release point. When played, the macro will hold here until the note is released. Right-click to remove the release point.
The values of the macro can be drawn in the "bar graph" box.
Just beneath the box is a shorter bar that controls looping.
- Click to set the start point of a loop; the end point is the last value or release point. It appears as half-height bars. Right-click to remove the loop.
- Shift-click to set the release point. When played, the macro will hold here until the note is released. It appears as a full-height bar. Right-click to remove the release point.
Finally, the sequence of values can be directly edited in the text box at the bottom.
- The loop start is entered as a `|`.
- The release point is entered as a `/`.
- In arpeggio macros, a value starting with a `@` is an absolute note (instead of a relative shift). No matter the note played, `@` values will be played at that exact note. This is especially useful for noise instruments with preset periods.
- In arpeggio macros, a value starting with a `@` is an absolute note (instead of a relative shift). No matter the note entered in the pattern, `@` values will be played at that exact note. This is especially useful for noise instruments with preset periods.
### ADSR
@ -100,15 +106,29 @@ Finally, the sequence of values can be directly edited in the text box at the bo
- **Phase** is which part of the waveform the macro will start at, measured in 1/1024 increments.
- **Shape** is the waveform used. Triangle is the default, and Saw and Square are exactly as they say.
# samples
# wavetable
This tab appears for PC Engine, FDS, Namco WSG, and other wavetable-based instruments.
![wavetable tab](wavetable.png)
When **Enable synthesizer** is off, the wavetable used for the instrument may be selected by creating a Waveform macro with a single value.
To use the wavetable synthesizer, refer to the bottom part of [the wavetable documentation](../5-wave/README.md).
# sample
This tab appears for Generic PCM, SNES, Amiga, and other sample-based instruments.
![](sample-map.png)
![sample tab](sample-map.png)
- **Initial Sample**: the sample that the instrument will use.
- **Use wavetable**: instead of samples, use wavetables. this causes the [Wavetables](../5-wave/README.md) tab to appear next to Sample.
- depending on the system and use of the wavetable synthesizer, this may or may not be reproducible on hardware.
- **Use sample map**: assigns a sample to each note.
- samples will be played at their default pitch.
- to set a note's sample, click the list entry in the `#` column then type the number of the sample.
- to set a note's sample, click the list entry in the "#" column then type the number of the sample.
- to set the pitch at which a sample is played, click the list entry in the "note" column and press the key for the new note.

View File

@ -1,17 +1,18 @@
# Amiga/PCM sound source instrument editor
The PCM instrument editor consists of a sample selector and several macros:
The Generic Sample instrument editor consists of a sample selector and several macros:
# Amiga/sample
# Sample
- **Initial sample**: specifies which sample should be assigned to the instrument, or the first one in the sequence
- **Use sample map**: enables mapping different samples to notes.
# Macros
- **Volume**: volume sequence. _warning:_ it works only on Amiga system, as of version 0.5.5!
- **Arpeggio**: pitch sequence
- **Waveform**: sample sequence
- **Panning (left)**: output level for left channel
- **Panning (right)**: output level for right channel
- **Pitch**: fine pitch
- **Phase Reset**: trigger restart of waveform
- **Volume**: volume sequence. does not apply to some chips.
- **Arpeggio**: pitch sequence.
- **Waveform**: waveform sequence.
- **Panning (left)**: output level for left channel.
- **Panning (right)**: output level for right channel.
- **Pitch**: fine pitch.
- **Phase Reset**: trigger restart of waveform.

17
doc/4-instrument/c140.md Normal file
View File

@ -0,0 +1,17 @@
# Namco C140 instrument editor
the Namco C140 instrument editor consists of a sample selector and several macros:
# Sample
- **Initial sample**: specifies which sample should be assigned to the instrument, or the first one in the sequence.
- **Use sample map**: enables mapping different samples to notes.
# Macros
- **Volume**: volume sequence.
- **Arpeggio**: pitch sequence.
- **Panning (left)**: output level for left channel.
- **Panning (right)**: output level for right channel.
- **Pitch**: fine pitch.
- **Phase Reset**: trigger restart of sample.

View File

@ -1,47 +1,77 @@
# FM synthesis instrument editor
FM editor is divided into 7 tabs:
The FM editor is divided into 7 tabs:
- **FM**: for controlling the basic parameters of FM sound source.
- **Macros (FM)**: for macros controlling algorithm, feedback and LFO
- **Macros (OP1)**: for macros controlling FM paramets of operator 1
- **Macros (OP2)**: for macros controlling FM paramets of operator 2
- **Macros (OP3)**: for macros controlling FM paramets of operator 3
- **Macros (OP4)**: for macros controlling FM paramets of operator 4
- **Macros**: for miscellaneous macros controlling volume, argeggio and YM2151 noise generator.
- **Macros (OP1)**: for macros controlling FM parameters of operator 1
- **Macros (OP2)**: for macros controlling FM parameters of operator 2
- **Macros (OP3)**: for macros controlling FM parameters of operator 3
- **Macros (OP4)**: for macros controlling FM parameters of operator 4
- **Macros**: for miscellaneous macros controlling volume, arpeggio, and YM2151 noise generator.
## FM
FM synthesizers Furnace supports are four-operator, meaning it takes four oscillators to produce a single sound. Each operator is controlled by a dozen sliders:
The FM synthesizers Furnace supports are four-operator, meaning it takes four oscillators to produce a single sound.
These apply to the instrument as a whole:
- **Feedback (FB)**: Determines how many times operator 1 returns its output to itself. (0-7 range)
- **Algorithm (AL)**: Determines how operators are connected to each other. (0-7 range)
- Left-click pops up a small "operators changes with volume?" dialog where each operator can be toggled to scale with volume level.
- Right-click to switch to a preview display of the waveform generated on a new note:
- Left-click restarts the preview.
- Middle-click pauses and unpauses the preview.
- Right-click returns to algorithm view.
- **LFO Frequency Sensitivity**: Determines the amount of LFO frequency changes. (0-7 range)
- **LFO Amplitude Sensitivity (AM)**: Determines the amount of LFO amplitude changes. (0-3 range)
These apply to each operator:
- The crossed-arrows button can be dragged to rearrange operators.
- The **OP1**, **OP2**, **OP3**, and **OP4** buttons enable or disable those operators.
- **Amplitude Modulation (AM)**: Makes the operator affected by LFO.
- **Hardware Envelope Generator (SSG-EG)**: Executes the built-in envelope, inherited from AY-3-8910 PSG. Speed of execution is controlled via Decay Rate. YM2610/YM2612 sound source only.
- **Attack Rate (AR)**: determines the rising time for the sound. The bigger the value, the faster the attack. (0-31 range)
- **Decay Rate (DR)**: Determines the diminishing time for the sound. The higher the value, the shorter the decay. It's the initial amplitude decay rate. (0-31 range)
- **Secondary Decay Rate (DR2)/Sustain Rate (SR)**: Determines the diminishing time for the sound. The higher the value, the shorter the decay. This is the long "tail" of the sound that continues as long as the key is depressed. (0-31 range)
- **Sustain Level (SL)**: Determines the point at which the sound ceases to decay and changes to a sound having a constant level. The sustain level is expressed as a fraction of the maximum level. (0-15 range)
- **Secondary Decay Rate (DR2) / Sustain Rate (SR)**: Determines the diminishing time for the sound. The higher the value, the shorter the decay. This is the long "tail" of the sound that continues as long as the key is depressed. (0-31 range)
- **Release Rate (RR)**: Determines the rate at which the sound disappears after KEY-OFF. The higher the value, the shorter the release. (0-15 range)
- **Sustain Level(SL)**: Determines the point at which the sound ceases to decay and changes to a sound having a constant level. The sustain level is expressed as a fraction of the maximum level. (0-15 range)
- **Total Level (TL)**: Represents the envelopes highest amplitude, with 0 being the largest and 127 (decimal) the smallest. A change of one unit is about 0.75 dB.
- **Envelope Scale (KSR)**: A parameter that determines the degree to which the envelope execution speed increases according to the pitch. (0-3 range)
![FM ADSR chart](FM-ADSRchart.png)
- **Envelope Scale (KSR)**: Also known as "Key Scale". Determines the degree to which the envelope execution speed increases according to the pitch. (0-3 range)
- **Frequency Multiplier (MULT)**: Determines the operator frequency in relation to the pitch. (0-15 range)
- **Fine Detune (DT)**: Shifts the pitch a little (0-7 range)
- **Coarse Detune (DT2)**: Shifts the pitch by tens of cents (0-3 range) WARNING: this parameter affects only YM2151 sound source!!!
- **Hardware Envelope Generator (SSG-EG)**: Executes the built-in envelope, inherited from AY-3-8910 PSG. Speed of execution is controlled via Decay Rate. WARNING: this parameter affects only YM2610/YM2612 sound source!!!
- **Algorithm (AL)**: Determines how operators are connected to each other. (0-7 range)
- **Feedback (FB)**: Determines the amount of signal whick operator 1 returns to itself. (0-7 range)
- **Amplitude Modulation (AM)**: Makes the operator affected by LFO.
- **LFO Frequency Sensitivity**: Determines the amount of LFO frequency changes. (0-7 range)
- **LFO Amplitude Sensitivity (AM)**: Determines the amount of LFO frequency changes. (0-3 range)
- **Fine Detune (DT)**: Shifts the pitch a little. (0-7 range)
- **Coarse Detune (DT2)**: Shifts the pitch by tens of cents. (0-3 range) YM2151 sound source only.
## macros
Macros define the sequence of values passed to the given parameter. Via macro, along with the previously mentioned parameters, the following can be controlled:
## FM Macros
- **AM Depth**: amplitude modulation depth. YM2151 sound source only.
- **PM Depth**: pitch modulation depth. YM2151 sound source only.
- **LFO Speed**: LFO frequency.
- **LFO Shape**: LFO shape. Choose between saw, square, triangle, and random.
- **OpMask**: toggles each operator.
## OP1-OP4 Macros
All parameters are listed above.
## Macros
Macros define the sequence of values passed to the given parameter. Via macro, aside previously mentioned parameters, the following can be controlled:
- **LFO Frequency**
- **LFO Waveform**: _WARNING:_ this parameter affects only YM2151 sound source!
- **Amplitude Modulation Depth**: _WARNING:_ this parameter affects only YM2151 sound source!
- **Frequency Modulation Depth**: _WARNING:_ this parameter affects only YM2151 sound source!
- **Arpeggio Macro**: Pitch change sequence in semitones. Two modes are available:
- **Absolute** (default): Executes the pitch with absolute change based on the pitch of the actual note.
- **Fixed**: Executes at the pitch specified in the sequence regardless of the note pitch.
- **Arpeggio**: Pitch change sequence in semitones.
- **Noise Frequency**: specifies the noise frequency in noise mode of YM2151's Channel 8 Operator 4 special mode.
- **Panning**: toggles output on left and right channels.
- **Pitch**: fine pitch.
- **Relative**: pitch changes are relative to the current pitch, not the note's base pitch.
- **Phase Reset**: Restarts all operators and resets the waveform to its start. Effectively the same as a `0Cxx` retrigger.
Looping: You can loop the execution of part of a sequence. Left-click anywhere on the Loop line at the bottom of the editor to create a loop. You can move the start and end points of the loop by dragging both ends of the loop. Rigkt-click to remove the loop.
# links
[FM instrument tutorial](https://www.youtube.com/watch?v=wS8edjurjDw): A great starting point to learn how create and work with FM sounds. This was made for DefleMask, but all the same principles apply.

70
doc/4-instrument/fmopl.md Normal file
View File

@ -0,0 +1,70 @@
# OPL FM synthesis instrument editor
The OPL FM editor is divided into 7 tabs:
- **FM**: for controlling the basic parameters of FM sound source.
- **Macros (FM)**: for macros controlling algorithm and feedback
- **Macros (OP1)**: for macros controlling FM parameters of operator 1
- **Macros (OP2)**: for macros controlling FM parameters of operator 2
- **Macros (OP3)**: for macros controlling FM parameters of operator 3 (Warning: only when 4-op flag is set, only on OPL3!)
- **Macros (OP4)**: for macros controlling FM parameters of operator 4 (Warning: only when 4-op flag is set, only on OPL3!)
- **Macros**: for miscellaneous macros controlling volume, arpeggio, and YMF262 panning.
## FM
The OPL synthesizers are nominally two-operator (OPL3 supports limited 4-operator mode), meaning it takes two oscillators to produce a single sound.
These apply to the instrument as a whole:
- **Feedback (FB)**: Determines how many times operator 1 returns its output to itself. (0-7 range)
- **Algorithm (AL)**: Determines how operators are connected to each other. (0-1 range and OPL1 and OPL2, 0-3 range on OPL3 4op mode)
- Left-click pops up a small "operators changes with volume?" dialog where each operator can be toggled to scale with volume level.
- Right-click to switch to a preview display of the waveform generated on a new note:
- Left-click restarts the preview.
- Middle-click pauses and unpauses the preview.
- Right-click returns to algorithm view.
- **4-op**: Enables 4-operator FM instrument editor mode (ONLY ON OPL3)
- **Drums**: Enables OPL drum mode editor
These apply to each operator:
- The crossed-arrows button can be dragged to rearrange operators.
- The **OP1**, **OP2**, **OP3**, and **OP4** buttons enable or disable those operators.
- **Amplitude Modulation (AM)**: Makes the operator affected by LFO tremolo.
- **Sustain flag (SUS)**: When enabled, value of Sustain Level is in effect.
- **Attack Rate (AR)**: determines the rising time for the sound. The bigger the value, the faster the attack. (0-15 range)
- **Decay Rate (DR)**: Determines the diminishing time for the sound. The higher the value, the shorter the decay. It's the initial amplitude decay rate. (0-315 range)
- **Sustain Level (SL)**: Determines the point at which the sound ceases to decay and changes to a sound having a constant level. The sustain level is expressed as a fraction of the maximum level. (0-15 range)
- **Release Rate (RR)**: Determines the rate at which the sound disappears after KEY-OFF. The higher the value, the shorter the release. (0-15 range)
- **Total Level (TL)**: Represents the envelopes highest amplitude, with 0 being the largest and 63 (decimal) the smallest. A change of one unit is about 0.75 dB.
![FM ADSR chart](FM-ADSRchart.png)
- **Envelope Scale (KSR)**: Also known as "Key Scale". Determines the degree to which the envelope execution speed increases according to the pitch.
- **Frequency Multiplier (MULT)**: Determines the operator frequency in relation to the pitch. (0-10, 12, 15 range)
- **Waveform select (WS)**: Changes the waveform generated by oscillator (OPL2 and OPL3 only, 0-7 range)
- **Pitch Modulation (VIB)**: Makes the operator affected by LFO vibrato.
## macros
Macros define the sequence of values passed to the given parameter. Via macro, along with the previously mentioned parameters, the following can be controlled:
## FM Macros
All parameters are listed above.
## OP1-OP4 Macros
All parameters are listed above.
## Macros
- **Arpeggio**: Pitch change sequence in semitones.
- **Panning**: toggles output on left and right channels. (OPL3 only!)
- **Pitch**: fine pitch.
- **Relative**: pitch changes are relative to the current pitch, not the note's base pitch.
- **Phase Reset**: Restarts all operators and resets the waveform to its start. Effectively the same as a `0Cxx` retrigger.
# links
[FM instrument tutorial](https://www.youtube.com/watch?v=wS8edjurjDw): A great starting point to learn how create and work with FM sounds. This was made for DefleMask, but all the same principles apply.

View File

@ -0,0 +1,66 @@
# OPLL FM synthesis instrument editor
The OPLL FM editor is divided into 5 tabs:
- **FM**: for controlling the basic parameters of FM sound source.
- **Macros (FM)**: for macros controlling algorithm, waveform and feedback
- **Macros (OP1)**: for macros controlling FM parameters of operator 1
- **Macros (OP2)**: for macros controlling FM parameters of operator 2
- **Macros**: for miscellaneous macros controlling volume, arpeggio, and preset.
## FM
The OPLL synthesizer is two-operator, meaning it takes two oscillators to produce a single sound.
These apply to the instrument as a whole:
- **Feedback (FB)**: Determines how many times operator 1 returns its output to itself. (0-7 range)
- **Sustain (SUS)**: enables the sustain flag (sets the release rate to 5)
- algorithm: shows the connection of operators (though they are always connected the same way).
- Right-click to switch to a preview display of the waveform generated on a new note:
- Left-click restarts the preview.
- Middle-click pauses and unpauses the preview.
- Right-click returns to algorithm view.
- **DC (half-sine carrier)**: Sets the waveform produced by carrier operator to half-sine
- **DM (half-sine modulator)**: Sets the waveform produced by modulator operator to half-sine
- preset dropdown: selects OPLL preset instrument.
These apply to each operator:
- The crossed-arrows button can be dragged to rearrange operators.
- **Amplitude Modulation (AM)**: Makes the operator affected by LFO tremolo.
- **Envelope generator sustain flag (EGS)**: When enabled, value of Sustain Level is in effect.
- **Attack Rate (AR)**: determines the rising time for the sound. The bigger the value, the faster the attack. (0-15 range)
- **Decay Rate (DR)**: Determines the diminishing time for the sound. The higher the value, the shorter the decay. It's the initial amplitude decay rate. (0-15 range)
- **Sustain Level (SL)**: Determines the point at which the sound ceases to decay and changes to a sound having a constant level. The sustain level is expressed as a fraction of the maximum level. (0-15 range)
- **Release Rate (RR)**: Determines the rate at which the sound disappears after KEY-OFF. The higher the value, the shorter the release. (0-15 range)
- **Total Level (TL)**: Represents the envelopes highest amplitude, with 0 being the largest and 63 (decimal) the smallest. A change of one unit is about 0.75 dB.
![FM ADSR chart](FM-ADSRchart.png)
- **Envelope Scale (KSR)**: Also known as "Key Scale". Determines the degree to which the envelope execution speed increases according to the pitch.
- **Frequency Multiplier (MULT)**: Determines the operator frequency in relation to the pitch. (0-10, 12, 15 range)
- **Pitch Modulation (VIB)**: Makes the operator affected by LFO vibrato.
## macros
Macros define the sequence of values passed to the given parameter. Via macro, along with the previously mentioned parameters, the following can be controlled:
## FM Macros
All parameters are listed above.
## OP1-OP4 Macros
All parameters are listed above.
## Macros
- **Arpeggio**: Pitch change sequence in semitones.
- **Patch**: changes the playing preset mid-note
- **Pitch**: fine pitch.
- **Relative**: pitch changes are relative to the current pitch, not the note's base pitch.
- **Phase Reset**: Restarts all operators and resets the waveform to its start. Effectively the same as a `0Cxx` retrigger.
# links
[FM instrument tutorial](https://www.youtube.com/watch?v=wS8edjurjDw): A great starting point to learn how create and work with FM sounds. This was made for DefleMask, but all the same principles apply.

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 128 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 28 KiB

After

Width:  |  Height:  |  Size: 31 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 19 KiB

After

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 17 KiB

After

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 135 KiB

View File

@ -5,11 +5,11 @@ The Namco 163 instrument editor consists of two tabs: "Namco 163" for control of
## Namco 163
- **Load waveform**: if enabled, a waveform will be loaded when this instrument plays.
- if it isn't then only the offset/length change.
- if it isn't then only the position/length change.
- **Waveform**: determines the waveform that will be loaded.
- only appears when Load waveform is enabled.
- **Per-channel wave offset/length**: when enabled, the offset/length settings are split per channel.
- **Offset**: determines the waveform position in RAM.
- **Per-channel wave position/length**: when enabled, the position/length settings are split per channel.
- **Position**: determines the waveform position in RAM.
- **Length**: determines the waveform length in RAM.
## Macros

View File

@ -1,6 +1,6 @@
# PSG instrument editor
# Sega PSG instrument editor
The instrument editor for PSG (SMS, MSX, and other TI SN76489 derivatives) consists of these macros:
The instrument editor for Sega PSG (SMS, and other TI SN76489 derivatives) consists of these macros:
- **Volume**: volume.
- **Arpeggio**: pitch in half-steps.
@ -11,4 +11,4 @@ The instrument editor for PSG (SMS, MSX, and other TI SN76489 derivatives) consi
- `3`: long noise, use channel 3 for frequency.
- **Panning**: output for left and right channels.
- **Pitch**: fine pitch.
- **Phase Reset**: trigger restart of waveform.
- **Phase Reset**: trigger restart of waveform.

View File

@ -9,4 +9,12 @@ The SAA1099 instrument editor consists of these macros:
- **Panning (left)**: output level for left channel
- **Panning (right)**: output level for right channel
- **Pitch**: fine pitch
- **Envelope**: envelope generator shape
- **Envelope**: envelope generator settings:
enable: enables the envelope generator
N/A: has no effect
fixed: toggles whether to use a fixed frequency or lock to the frequency of channel 2 or 5
resolution: increases the envelope generator pitch resolution
direction: inverts the waveform around Y axis
cut: cuts the waveform (producing saw wave out of tri wave)
loop: toggles wheteher evelope is one-off or constantly looping
mirror: sets whether the right output will mirror the left one

Binary file not shown.

Before

Width:  |  Height:  |  Size: 79 KiB

After

Width:  |  Height:  |  Size: 79 KiB

View File

@ -19,7 +19,15 @@ these tabs are unique to the editor for SNES instruments.
- **Effective (exponential decrease)**: after release, volume decays exponentially. see [gain chart](../7-systems/snes.md).
- **Delayed (write R on release)**: after release, waits until A and D have completed before starting exponential decrease.
if envelope is off, select gain mode as described below.
if envelope is off:
- **Gain Mode**: selects gain mode.
- **Direct**: direct gain from 0 to 127
- **Decrease (linear)**: linear gain from -0 to -31
- **Decrease (logarithmic)**: exponential gain from -0 to -31
- **Increase (linear)**: linear gain from +0 to +31
- **Increase (bent line)**: exponential gain from +0 to +31
- _note:_ using decrease modes will not produce any sound unless a Gain macro is set. The first tick must be the initial gain, and the second tick must be the decrease gain value. gain values are as described in the Macros section below.
- **Gain**: value of gain.

11
doc/4-instrument/ted.md Normal file
View File

@ -0,0 +1,11 @@
# TED instrument editor
TED instrument editor consists of these macros:
- **Volume**: volume sequence. **global!**
- **Arpeggio**: pitch sequence
- **Square/Noise**: select whether square, noise or nothing will be output
- noise only available on channel 2
- if square and noise are enabled, square takes precedence.
- **Pitch**: "fine" pitch
- **Phase Reset**: trigger restart of waveform. **global!**

Binary file not shown.

After

Width:  |  Height:  |  Size: 58 KiB

11
doc/4-instrument/wsg.md Normal file
View File

@ -0,0 +1,11 @@
# Namco WSG instrument editor
The Namco WSG/C15/C30 instrument editor consists of these macros:
- **Volume**: volume sequence
- **Arpeggio**: pitch sequence
- **Waveform**: specifies wavetable sequence
- **Noise**: specifies noise pitch (WARNING: only on C30!)
- **Panning (left)**: output level of left channel
- **Panning (right)**: output level of right channel
- **Pitch**: fine pitch

Some files were not shown because too many files have changed in this diff Show More