Commit graph

4755 commits

Author SHA1 Message Date
tildearrow
0cd8ab94c4 pattern data refactor, part 4
all file ops converted
there may be some bugs related to note range - testing to be performed
after Furnace builds again
2025-10-15 19:56:13 -05:00
tildearrow
c715c10b9b pattern data refactor, part 3 2025-10-15 05:14:34 -05:00
tildearrow
00bbde217f pattern data refactor, part 2 2025-10-14 15:58:15 -05:00
tildearrow
d4ecf4045b pattern data refactor, part 1
this first stage changes the way notes are encoded
instead of note/octave, it is just note
2025-10-14 05:07:35 -05:00
tildearrow
7d7d95a97d don't unsigned char up yet... first get rid of octave 2025-10-14 02:16:28 -05:00
tildearrow
5dd9b98daf prepare the motherfiretrucking refactor
WOW
2025-10-13 04:52:15 -05:00
tildearrow
e9c16fed11 Merge branch 'master' of github.com:tildearrow/furnace 2025-10-09 03:53:58 -05:00
tildearrow
6b83f399f0 fix empty samples eating memory
when DPCM is requested, Furnace would waste 500MB of memory per empty sample

that's why it had to be signed!
2025-10-09 03:53:44 -05:00
tildearrow
1f6f7f961e dev234 - extra config paranoia
featuring config start/end markers to ensure the config is complete.

necessary due to a problem which results in Furnace not writing the
entire config in time on Android sometimes.
best to fall back to the previous config than a total sudden reset...

issue #1825
2025-10-06 12:31:56 -05:00
Eknous-P
2739b5af54 fix sample init size way too big 2025-10-06 00:40:18 +04:00
tildearrow
dc87bc489f AY/YM Timer FX bug fixes and improvements
pull request #2547
manual merge due to modification of unrelated files according to GitHub's
files view

Co-authored-by: host12prog <hungnguyen.481335@gmail.com>
2025-10-04 18:39:07 -05:00
tildearrow
80a92b8b43 add option to remove unused patterns 2025-10-04 18:28:34 -05:00
cam900
5aa9019ec2 Reduce logging in MSM6258 rate changes 2025-10-04 16:49:51 -05:00
Eknous-P
c680474f22 fix missing fmt argument in readFeatureMA 2025-10-04 22:32:05 +04:00
tildearrow
f9372ec53f Merge remote-tracking branch 'origin/master' into newFilePicker 2025-10-04 04:05:25 -05:00
yohannd1
b8ce3219eb channel drag copy: fix channel copying code (thanks tildearrow & eknous) 2025-10-04 04:05:06 -05:00
yohannd1
1099c79ec8 channel drag copy: initial impl 2025-10-04 04:05:06 -05:00
tildearrow
908052d728 SAA1099: limit core quality
to overcome oscBuf limitations
issue #2648
2025-10-03 17:57:36 -05:00
Eknous-P
52eac7e3c6 sample import detune load setting 2025-10-01 23:08:38 +04:00
cam900
1b712e03ee Add notifySampleChanged in dispatch and engine:
This method/variables are for notify sample is changed/altered/added/removed.  can be called together with updateSampleTex for sample update.

multipcm: Fix possible desync with instrument and sample parameter

opl4: Split sample table render and sample data render, Add notifySampleChange for refresh sample parameters
2025-10-01 12:31:39 +02:00
tildearrow
919ff4a9d2 Merge branch 'master' into newFilePicker 2025-09-30 05:57:11 -05:00
M374LX
a4b9442cc8 Small consistency fix 2025-09-29 23:45:42 -05:00
M374LX
cb42641200 Add missing parameters 2025-09-29 05:07:42 -05:00
M374LX
7458c7b912 Code style fix 2025-09-29 05:07:42 -05:00
M374LX
146e7baed4 Update EIF loading 2025-09-29 05:07:42 -05:00
M374LX
d4470aa42b Start implementing EIF instrument support 2025-09-29 05:07:42 -05:00
tildearrow
03fd518e9b config storage 2025-09-28 20:32:30 -05:00
Eknous-P
2785625475 fix dmf export "order out of range" error message 2025-09-23 14:24:45 +04:00
tildearrow
e357dd0372 FDS: mod effects should be post
issue #2691
2025-09-19 21:44:26 -05:00
tildearrow
70f512003e OPN: fix wrong getGain in ExtCh 2025-09-16 03:05:27 -05:00
tildearrow
3a06e7b963 remove hasSampleInsHeader()
- it is only used by MultiPCM
- an alternative approach is in place
2025-09-14 14:21:31 -05:00
tildearrow
c1b7a06a37 MultiPCM: add renderInstruments()
call it on instrument addition/removal/modification,
reset and/or renderSamples
2025-09-14 05:25:44 -05:00
tildearrow
684bebf202 MultiPCM: fix muting on reset 2025-09-13 14:14:11 -05:00
tildearrow
de1ab67d4a Merge branch 'master' into hasSampleHeader 2025-09-13 04:23:19 -05:00
tildearrow
551da762ee Merge branch 'master' into getSampleMemOffset 2025-09-13 04:13:27 -05:00
tildearrow
d16bad802d NDS: fix volume
it was twice as loud and global volume would clip
2025-09-12 05:10:17 -05:00
tildearrow
825039ec5a Lynx: write duty on forceIns()
issue #2674
2025-09-10 23:51:08 -05:00
KungFuFurby
0549acc1d9 Correct a typo where the wrong effect ID was used for vibrato waveform
E4x is the correct ID, not E3x, for MOD and XM.
Additionally, updated the coding style for MOD to be more consistent with the
pre-existing code, namely by not using hex for the effect IDs being checked.
2025-09-10 00:18:45 -05:00
KungFuFurby
6252843ade Add envelope enable/disable and high nibble sample offset for IT
Fine print:
- Enabling and disabling panning envelopes take up two effect columns instead of
  one due to the macro being split into left and right sides.
2025-09-09 22:29:05 -05:00
KungFuFurby
0660e25f06 Add vibrato waveform import support for S3M, XM, MOD and IT
Fine print:
- OpenMPT hacks are not implemented here for MOD and XM for random waveform
- Retrigger/Continuous setting is not handled for MOD, XM and S3M
-- For S3M, I can't confirm if the setting even existed:
   I'm pretty sure it got cut out of Impulse Tracker.
- Your waveform may sound different here than in the original player

If tremolo and panbrello waveforms are implemented in Furnace, then their
corresponding conversions can be implemented. For now, though, they can't make
the cut since there is no corresponding effect to change those waveforms from
the default setting.
2025-09-09 22:29:05 -05:00
KungFuFurby
3df67fb1b3 Add some commentary for special series of effects in S3M, XM and IT 2025-09-09 22:29:05 -05:00
tildearrow
17420d5d23 QSound: fix loop end being used as sample end
even if loop is disabled
2025-09-08 02:32:24 -05:00
tildearrow
c75f363453 XM import: actually consider pattern data size
issue #2681
2025-09-07 17:14:24 -05:00
tildearrow
3a66e0ceee T6W28: actually fix the phase reset issue
issue #2665
2025-09-07 04:34:59 -05:00
tildearrow
d0c4fb0b42 IT import: comments, channel names and pat names
the latter two are MPT extensions

this may not work on songs with MIDI macro setup info
2025-09-06 17:46:16 -05:00
tildearrow
0da42f18a6 T6W28: fix noise reset on all duty macro steps
issue #2665
2025-09-05 13:26:52 -05:00
tildearrow
aa67f78d36 MMC5: fix typo in comment 2025-09-05 02:10:58 -05:00
tildearrow
67c7afd4cd MMC5: fix env mode not set after reset/forceIns
issue #2675
2025-09-05 01:01:27 -05:00
tildearrow
24e7338dc5 GUI: add visualizer to cmd stream player 2025-09-04 05:01:48 -05:00
tildearrow
91965bca8c fix crash when converting to BRR with invalid loop end
issue #2671
2025-09-03 03:58:45 -05:00