Commit graph

10561 commits

Author SHA1 Message Date
tildearrow
a843d0e2ac document middle click feature 2025-10-31 20:16:40 -05:00
tildearrow
465328c952 GUI: set order to free pattern on middle-click 2025-10-31 20:12:37 -05:00
tildearrow
5b145b7121 multiple instrument playback, part 1
not implemented for MIDI yet
2025-10-31 19:36:13 -05:00
tildearrow
08a27be76f GUI: chord input
looks like a horrid hack, but it works
I'll improve some of the code at some point
2025-10-31 05:03:58 -05:00
tildearrow
e8aeb45a12 TimeMicros::fromString()
and improve the cue position editor a bit
2025-10-31 03:42:43 -05:00
tildearrow
3516245d2e rename totalTicksOff to totalTimeDrift 2025-10-30 20:40:22 -05:00
tildearrow
5ff81aef33 some time refactors
no more weird totalTicks name
code looks better
2025-10-30 20:35:30 -05:00
Redas Jefisovas
a2b56b5b64 feat: add clearer explanations to effects 2025-10-30 19:07:06 -05:00
tildearrow
b218bdea7a TimeMicros struct 2025-10-30 18:44:59 -05:00
tildearrow
e579ba8ee8 GUI: add option to offset sample
in the amplify one
2025-10-30 17:14:31 -05:00
tildearrow
0ae9151b47 GUI: fix audio export progress bar
issue #2454
2025-10-30 14:59:48 -05:00
tildearrow
0c8cddf356 dev238 - Merge branch 'filePlayer'
this introduces a new audio file player with the ability to synchronize
with tracker playback.

it additionally removes the walkSong() and findSongLength() methods.
use calcSongTimestamps() instead, which will fill in
DivEngine::curSubSong->ts (a DivSongTimestamps struct with song time
information). see src/engine/song.h for the struct definition.
2025-10-30 05:11:59 -05:00
tildearrow
1720a519f0 what are you on, MSVC? 2025-10-30 05:02:54 -05:00
tildearrow
3a0fe2dec7 fix typo 2025-10-30 04:59:14 -05:00
tildearrow
d3e9366948 add a useful button 2025-10-30 04:53:17 -05:00
tildearrow
98165f5ed2 ugly cue position editor 2025-10-30 04:35:44 -05:00
tildearrow
319da2d391 file player cue point and loop tracking
no loop trail yet
2025-10-30 04:07:27 -05:00
tildearrow
3c106f7861 improve time tracking on step play
now it fetches row time from song timestamps
also syncs file player!
2025-10-30 01:49:02 -05:00
tildearrow
64b8a8f714 turn volume slider into mix slider
it's far more useful
2025-10-30 01:30:48 -05:00
tildearrow
a6d06d3728 fix cursor movement check 2025-10-30 01:02:26 -05:00
tildearrow
a78c59e17e reference player sync state now in GUI 2025-10-29 20:00:08 -05:00
tildearrow
cb220d41ec DivSongTimestamps, part 8
now remove walkSong()
2025-10-29 19:39:53 -05:00
tildearrow
a49306b4bd more reference player work 2025-10-29 19:25:08 -05:00
tildearrow
c7fe8fea80 speed up sub-song detection 2025-10-29 18:15:47 -05:00
tildearrow
f990dee0c1 DivSongTimestamps, part 7
calculate timestamps on every change that is likely to require
recalculation (inserting/altering/removing song control/speed effects,
changing song speed, changing orders and so on)
2025-10-29 17:56:25 -05:00
tildearrow
3b93c4e0ec DivSongTimestamps, part 6
replace walkSong with calcSongTimestamps in GUI
2025-10-29 04:53:00 -05:00
tildearrow
c1175bcc35 DivSongTimestamps, part 5
deprecate walkSong and remove findSongLength
2025-10-29 04:21:31 -05:00
tildearrow
cc5b1d150f DivSongTimestamps, part 4 2025-10-29 03:55:57 -05:00
tildearrow
b9b7c97469 Merge branch 'master' into filePlayer 2025-10-29 02:45:24 -05:00
tildearrow
3e270a38b5 fix crash when chip output count changes 2025-10-29 02:44:45 -05:00
tildearrow
ecfea6033a DivSongTimestamps, part 3 2025-10-29 02:39:52 -05:00
tildearrow
2f11128c8d DivSongTimestamps, part 2
compilation fixes
2025-10-28 21:13:32 -05:00
tildearrow
8c1c338e91 DivSongTimestamps, part 1
this is actually a refactor
it will replace walkSong and the other function and fix bugs in the process
2025-10-28 21:07:21 -05:00
tildearrow
d3c85ae748 prepare for DivSongTimestamps
this will replace walkSong and findSongLength while
offering more features
2025-10-28 05:31:50 -05:00
tildearrow
25cb78b306 fix playSub() inconsistency in low-latency mode 2025-10-28 03:05:43 -05:00
tildearrow
394c6c35aa earliest implementation of sync
does not loop correctly
2025-10-27 19:34:21 -05:00
tildearrow
7a7a871198 reference player work
memory usage cap, garbage collection and sinc interpolation
also ability to set playback position to a negative value
2025-10-27 14:24:16 -05:00
Eknous-P
76dc7dfb01 Revert "groove calculator"
This reverts commit 6297c4ce52.
2025-10-27 21:15:11 +04:00
Eknous-P
6297c4ce52 groove calculator 2025-10-27 20:52:01 +04:00
tildearrow
f77aafb44d reference player prototype
poor performance
no playback sync yet
2025-10-27 05:15:47 -05:00
tildearrow
9bbfdc6f43 ................... 2025-10-27 01:43:03 -05:00
tildearrow
6589cd04b3 prepare to add a reference player 2025-10-26 21:02:05 -05:00
tildearrow
6738fbdbe4 fix WITH_OGG resulting in dynamic link 2025-10-26 17:12:15 -05:00
tildearrow
529105d845 audio export: confine Opus to 48000Hz 2025-10-26 04:32:07 -05:00
tildearrow
a887b72d36 Merge branch 'asio' - READ
thanks Steinberg for the open-source release of your ASIO SDK!
I am glad you're finally embracing the vast world of free and
open-source software, and allowing us to tap into technologies that
are industry standards.

--- NOTICE --- NOTICE --- NOTICE --- NOTICE --- NOTICE ---

ENABLING ASIO SUPPORT WITHIN FURNACE (enabled by default for Windows)
WILL RESULT IN A GPLv3-LICENSED BINARY.

this is permitted under the GPLv2-or-later's upgrade clause, which
can be found in Section 9 of the GNU General Public License, version 2.

if you do not wish to accept version 3 of the GPL, pass
`-DWITH_ASIO=OFF` to CMake at build time.

future Furnace releases (starting with 0.7) will have ASIO support
enabled - this decision comes after a poll in the Furnace Discord
where the majority (86 versus 22 hitherto) voted in favor.

https://discord.com/channels/936515318220722197/937611049182584852/1431092762278625321
2025-10-26 03:56:36 -05:00
tildearrow
ca5940b95d fix GitHub CI workflow 2025-10-26 03:55:53 -05:00
tildearrow
808523b9c6 change software clipping range
some ASIO drivers overflow when given a 1.0 or -1.0 sample.
this changes the range to -0.9999 - 0.9999, which prevents overflow
with imperceptible impact on output.
2025-10-26 02:25:24 -05:00
tildearrow
54a2507780 GUI: fix ASIO control panel button
falsely stating that there isn't a control panel
2025-10-26 02:24:51 -05:00
tildearrow
99c6cbffa6 ASIO backend, part 8
add control panel button
last commit unless it doesn't work somewhere
2025-10-25 21:23:50 -05:00
tildearrow
8ed69b7a5d ASIO backend, part 7
implement the rest of sample formats
2025-10-25 21:05:15 -05:00