Furnace Changelog

What's new in Furnace 0.6.1

Feb 7, 2024
  • changes:
  • fixed .mod import for songs with 128 patterns
  • fix chan osc oscilloscope bounds
  • fixed loop region in Orders not being updated when editing the song
  • fixed loop region in Orders not being updated after loading a song
  • fix the clock overflowing after 68 years
  • fix compilation with latest Mesa versions
  • fix issues with samples:
  • 0Cxx not working properly in some chips after the sample has ended
  • 0Cxx not working on ES5506 at all
  • sample map totally messing portamento and legato up
  • fix possible crash when loading instruments
  • fix gap at the end in audio export
  • attempt fixing "Furnace is damaged" problem on macOS
  • fix ADPCM-A global volume effect not working
  • fix crash when loading song with no chips
  • fix description of 88xy effect
  • fix instrument with sample loading
  • fix glitched playback after starting playback past loop point
  • fix -subsong parameter being ignored when using -output
  • fix potential crash when importing a layout
  • fix AdLib drum preset not in drums mode...
  • fix the note combo box in sample editor being too annoying
  • fix Apperarance having a never-disabling Apply
  • fix "move cursor between channels" actions being swapped
  • fix ability to go out of bounds when using next/prev channel binds
  • fix paste overflow undo stack corruption
  • fix possible crash with colorize instrument option
  • fix a bug when right-clicking in sample list
  • fix sample view not updating after load-replacing
  • fix wave drawing (it was slightly off)
  • fix moving assets not marking the song as modified
  • fix "play from start" not disabling "repeat pattern"
  • fix sample view not updating when changing color scheme
  • fix input latch being lowercase
  • Namco WSG: fix volume macro scaling
  • Generic PCM DAC linear interpolation possible overflow fix
  • fix compilation due to IconFontCppHeaders
  • fix SNES channel invert effect
  • Sound Unit fixes
  • fix forceIns
  • fix sample map
  • update AppStream metadata to make the AppStream checker happy
  • fix possible PCM crash when using VERA
  • YM2612 fixes:
  • fix panning view on ExtCh channel 5
  • fix arp issue when using non-linear pitch
  • added a couple song flags:
  • Volume scaling rounds up: makes volume scaling round up (ceil) rather than being rounded down. useful for NES triangle.
  • Reset arpeggio effect position on new note: resets the arpeggio effect's position on each note.
  • improve NES DPCM sample mapping
  • now it resembles FamiTracker more
  • each note has DPCM pitch and initial delta counter value settings
  • improve icons for ADSR/LFO macro types
  • display chevrons if certain values are out of view in macro view
  • come on Furnace can do Game Boy
  • changed macOS license text so it tells you about "Furnace is damaged"
  • add effect to restart a macro (F7xx)
  • don't change the instrument type if it is unknown once it is loaded in the instrument editor
  • ZSM export: remember last sample played so that async pitch changes work
  • Virtual Boy changes
  • fix forceIns not working well
  • add static wave storage mode (only 5 waves)
  • it is unknown whether it is possible to change waveforms on the fly...
  • wavetable creation improvements
  • now it defaults to best size for current chip
  • displays a list of recommended sizes if there's more than one chip that supports waves
  • add "make me a drum kit" option
  • right click a sample in the sample list and select the option to make an instrument with sample map set to all samples
  • new export dialog
  • as of now the export options are displayed on a dialog by default
  • you can change this back to the previous look by going into Settings
  • make "change" button more notorious in chip manager
  • re-arranged some of the tabs in instrument editor
  • macOS: better default shortcuts
  • added "default author name" setting
  • PC speaker: added option to reset phase when the frequency changes
  • this option was added after determining that many recent motherboards do so :<
  • add a preliminary safe mode
  • is your graphics card not working? Furnace fails to start? Furnace crashes on start-up because you loaded the wrong font, your sound/graphics card's driver is buggy or something? then this mode is for you!
  • pass the -safemode parameter to Furnace, which starts it in safe mode (software rendering, no audio and fallback font only).
  • alternatively, pass -safeaudio if you still want audio output.
  • I was planning to make this mode automatic (start in safe mode after failed start-up) but testers ran into issues (especially when launching more than one Furnace instance). I will improve this and make it fully automatic soon...
  • pattern view improvements
  • the ++ button now allows you to have both effect columns buttons and pattern name fields visible.
  • channel group hints, which display which channels are tied together (e.g. for 4-op mode, pitch modulation and more).
  • channel status hints, displaying note on/off, vibrato/tremolo, slides, and other status.
  • make it more obvious when trying to preview an instrument which cannot be previewed when the song doesn't have a chip which takes in that instrument type
  • MIDI improvements
  • added a button in Settings to re-scan MIDI devices
  • finally: velocity response
  • the velocity curve power is now 2.0 by default, to match General MIDI velocity standard
  • program change pass-through: now you can use Furnace as a MIDI player of sorts
  • many MIDI input bug fixes, such as input not working if the MIDI device's output channel is too high
  • C64 improvements
  • ADSR macros
  • global volume and cutoff macros are now separate
  • unified Special macro, with test/gate/ring/sync settings
  • note: if you were using the former ring/sync and gate macros crazily (different loop points and all), this might break your song.
  • default envelope reset time is now 2 instead of 1
  • relative macros are now fine and less Mask-y
  • 1Exy effect now updates envelope immediately
  • 20xy/21xy effects to set AD or SR with a single effect
  • a brand-new X-Y oscilloscope
  • this displays two output channels (e.g. left and right) in a plot.
  • C140: added bank types (for VGM export)
  • "loop crossfade" option in sample editor
  • default not to write instrument name when saving instrument to a file
  • this way you don't end up with too many "Instrument 0"s
  • new color scheme "guru mode"
  • now you can edit every single color in the UI
  • color scheme import/export improvements
  • now it saves a couple related settings as well
  • no more having to manually set color scheme type after importing
  • added "select asset on load" setting
  • added stereo 86PCM presets
  • it is uncertain whether PC-9801-86 DACs were hard-panned or in mono
  • added ability to hide channels in the per-channel osc independently of the pattern
  • added option to disable DC offset correction
  • paste from OpenMPT!
  • add new FreeType font renderer
  • it has more settings than the current one
  • added early text export feature
  • still incomplete
  • Amiga accuracy improvements
  • now AM/PM work correctly
  • don't stop DMA until period timer is done
  • new OPL sound cores:
  • YM3812-LLE: low-level emulation of the OPL2 chip. very CPU intensive but 100% accurate.
  • YMF262-LLE: like YM3812-LLE but for OPL3. even more CPU intensive.
  • these cores are made by nukeykt based on die shots of the original chips.
  • ymfm: why not? this core is made by Aaron Giles.
  • added ESFM chip
  • this chip is like OPL3, but adds many features on top of it, like 4-op on all channels, detune and per-operator panning.
  • added PowerNoise chip
  • a fantasy sound chip created by The Beesh-Spweesh! and jvsTSX for the Hexheld fantasy video game console, employing LFSR-based synthesis.
  • many doc updates
  • demo song updates
  • including songs from the Virtual Boy and ESFM demo song contests!

New in Furnace 0.6 Build 18 Pre-release (Sep 28, 2023)

  • changes:
  • fix a crash after exporting to .wav
  • fix Namco C30 noise not being accessible through noise macro in channels 5-8

New in Furnace 0.6 Build 17 Pre-release (Sep 26, 2023)

  • changes:
  • reduce pattern/orders latency
  • implement a setting which was missing (store/load ins names when saving or loading .fui)
  • improve find/replace dialog
  • fix WonderSwan channel names
  • fix chan osc sometimes not clipping
  • don't allow drag-and-drop during intro
  • fix some typos
  • MSM6295: enforce max vol of 8
  • fix out of range volume input on channels where the max volume is less than 16
  • OPN/A/B: fix chan osc overflow
  • fix non-ASCII chars being treated as non-printable in the built-in file picker
  • VGM export: fix virtual tempo sometimes resulting in no loop
  • fix MIDI input lag
  • fix FM and PSG icons being swapped
  • VGM export: RFC volume balance
  • add option to swap bytes in a word in raw sample import
  • new demo songs
  • doc updates

New in Furnace 0.6 Build 16 Pre-release (Sep 15, 2023)

  • This version fixes possible corruption in the list of recent files.

New in Furnace 0.6 Build 14 Pre-release (Sep 11, 2023)

  • implement MSM6258 VGM export
  • fix a typo in the error message that appears when you load multiple samples at once and one or more fail to load
  • discourage use of Pong
  • Sound Unit: fix getPan() again
  • C219 fixes
  • fix lack of phase reset macro
  • fix noise being restricted by sample length and therefore being unusable in certain circumstances
  • don't phase reset if the duty macro hasn't changed
  • add a sample rate table to MSM6258 chip config
  • four more demo songs (by Yuzu4K and TheDuccinator - thanks!)
  • documentation updates

New in Furnace 0.6 Build 7 Pre-release (Jul 10, 2023)

  • here's Furnace 0.6pre7, which fixes some severe issues:
  • if DirectX 11 or OpenGL failed to init, it wouldn't fall back to the good old SDL_Renderer. now it does.
  • setting the font size too big and/or running out of video memory would make Furnace unusable when using DirectX 11 or OpenGL. now it's fixed.
  • and some minor issues too:
  • manual updates
  • a ZSM export bug

New in Furnace 0.6 Build 6 Pre-release (Jul 9, 2023)

  • Changelog:
  • fix a major oversight in the new config system
  • there still was a chance that a corrupted config file would be loaded...
  • fix a major performance regression in audio playback
  • massive documentation updates - thanks to Electric Keet!
  • documentation is now in doc rather than papers/doc. this should make it easier to find.
  • ZSM export improvements
  • MooingLemur has implemented an unofficial but updated and backwards-compatible extension to this format, allowing VERA PCM!
  • additionally, EExx (external command) is now written during export, allowing you to use it for things like synchronizing with graphics.
  • new OpenGL and DirectX 11 render backends
  • prior to this change, Furnace used SDL Renderer for the UI
  • now Furnace will use DirectX 11 by default on Windows and OpenGL on Linux
  • you may see performance and reliability improvements
  • if it fails (e.g. because your card isn't compatible), it will fall back to the SDL Renderer backend a bug has been found in where it won't do this. I will release a hotfix.
  • per-channel osc improvements:
  • fix for YM2612 variants
  • fix YM2612 DualPCM chan osc
  • fix YM2612 DAC chan osc
  • don't hide title bar
  • add ability to change amplitude
  • add customizable labels
  • fix osc not being clipped to boundaries
  • lots of volume balancing
  • built-in file picker improvements:
  • finally fix sorting
  • sometimes it would change sort orientation randomly
  • sometimes it would not sort at all
  • sort by name didn't work when set to descending
  • replace the "reset path" button with a "home" button
  • search bar has more room to breathe
  • fix files with non-ASCII characters being displayed as "unknown type" and not having size/date information
  • now you can press Escape to cancel and quit the file picker
  • add a "push entire channel when inserting/backspac'ing" settings
  • on by default
  • VGM export fixes:
  • fix loop trail still being added when loop option is off
  • fix NES DPCM not working
  • cap streams to 44100Hz since VGMPlay doesn't like higher frequencies
  • Wayland fixes:
  • fix scaling factor detection when full-screen is on
  • fix mouse input being totally wrong at times
  • POKEY changes:
  • fix E5xx effect when using non-linear pitch
  • add a new effect for enabling two-tone mode
  • sample editor improvements
  • buttons now re-arrange when there isn't enough space
  • warnings that will let you know when a sample is outside of a chip's specs
  • use rate instead of compat rate when saving sample as .wav
  • "Apply filter" now displays cutoff parameters as input boxes instead of sliders
  • add option to select a different SDL audio driver
  • use it if you experience problems when using the default (in the case of Windows, it is WASAPI).
  • C64 changes
  • the default core is now reSID again. sorry.
  • reSIDfp's CPU usage is too high to be the default, despite its unmatched accuracy
  • add a "key priority" system which prioritizes the last used channel's global parameters (filter and volume)
  • fix reSIDfp envelope reset being inconsistent
  • new dSID core featuring low CPU usage
  • improve start-up time when not using reSIDfp
  • tiny playback optimization when a chip is silent
  • colorize destructive operations
  • fix .dmf not saving if it was made with 1.1.8
  • fix force mono audio only playing the right channel
  • fix QuadTone being missing from the new song presets
  • fix wave synth ignoring wave macro on note retrigger when the macro had a single (or repeated) value
  • add option to prevent piano input
  • add option to allow saving patterns in old format
  • add option to disable preset selector on new song
  • add option to display memory usage (Statistics) in bytes rather than KB
  • add ability to duplicate sub-songs
  • fix possible division by zero in the UI
  • don't crash when SDL_Init fails (e.g. because you've built it incorrectly)
  • fix pattern editor focus when selecting instrument
  • improve start-up performance
  • add 8-bit dither option
  • fix one digit effect setting making effect 10xx glitch the pattern view
  • fix tremolo breaking when turned off
  • update Dear ImGui to 1.89 and SDL to 2.28
  • add option for late render clear
  • may improve latency in some setups
  • VERA: fix PCM volume macro
  • VERA: fix custom clock
  • WonderSwan: fix custom clock
  • Game Boy: fix custom clock
  • Game Boy: finally fix wave corruption
  • Game Boy: fix software envelopes not working under some circumstances
  • PC speaker: fix volume macro not taking effect on first tick
  • OPLL: fix volume macro when used on drums
  • YM2612: add forceIns heuristics
  • fixes annoyances when playing from another order with carrying channels
  • SegaPCM: the real memory limit is 2MB
  • SegaPCM: fix volume not being reset on instrument change without volume macro
  • fix asset names carrying over another asset when the current asset name was being edited and another was selected in the list
  • you can no longer game-end-glitch TAS this tracker
  • if the FPS is too low and the intro is enabled, there is a minimal possibility you could load the intro song by exiting as soon as the intro started
  • fix atari breakbeat demo song
  • MIDI output: don't spam logs on error
  • move delete sample button to the right in sample list to prevent accidental clicks
  • add patch number to OPLL patch list
  • fix visualizer breaking when scrolling horizontally and/or having hidden channels
  • new demo songs from Clingojam, SuperJet Spade, Hortus, niffuM, freq-mod, Yuzu4K, Xan, Waverider, TheDuccinator and Bernie

New in Furnace 0.6 Build 5 Pre-release (May 25, 2023)

  • Did I say 0.6pre5 would have a tutorial? well, sadly it doesn't.
  • The reason is because this version fixes a critical issue in where Furnace would suddenly reset its configuration in some setups (especially when running out of disk space, disk corruption or sudden power-off).
  • Additionally, it massively improves the backup system. now we save several backup files per song rather than a single, global backup.fur.
  • Besides fixing many issues, this release also introduces:
  • Casio PV-1000 chip
  • ZX Spectrum QuadTone engine
  • Folders for ins/wave/sample lists
  • Smaller .fur files thanks to a new pattern format
  • Finally, sample map with pitchable notes and a new UI for it
  • Several sample editor improvements
  • Thanks to everyone who helped with the development of this program!

New in Furnace 0.6 Build 4 Pre-release (Feb 24, 2023)

  • new speed system - easier to use and now with groove patterns!
  • two new chips: SM8521 (used in Game.com) and Ensoniq ES5506 (32 sample channels)
  • output patchbay which allows you to route chip outputs arbitrarily! (useful for JACK)
  • support for more than stereo! (OPL3 and ES5506 are the supported chips)
  • optimized SCC and VRC6 emulation
  • true SegaPCM emulation
  • a brand-new intro and welcome screen
  • basic mode with reduced feature set for ease of use
  • re-organized the UI a bit for ease of use
  • fixed several bugs - I'll put this in detail later as I need to sleep

New in Furnace 0.6 Build 3 Pre-release (Jan 3, 2023)

  • This release fixes several critical and smaller issues which were present in 0.6pre2, including:
  • A crash when changing POKEY chip flags
  • A possible crash when working with high sample rates and small buffer sizes (#812)
  • OPLL not playing correct notes (#805)
  • OPN chips not playing correct notes when low clock rates are selected (#808)
  • Bugs introduced by new arp strategy in:
  • MSM5232
  • SegaPCM (#813)
  • PC Engine
  • NES
  • Missing POKEY preset
  • Sample map retrigger (0Cxx) playing the wrong sample
  • "Classic" pattern header view flashing on every click
  • SegaPCM per-chan osc mute bug
  • YM2608 rim not muting in Nuked+ymfm core
  • YM2612 CSM not having configuration options
  • Not compiling under GCC 5
  • QSound ADPCM still being incomplete, and
  • Wave macro present in RF5C68 ins type for some reason

New in Furnace 0.6 Build 2 Pre-release (Dec 27, 2022)

  • SNES! no .spc export though, but yeah. all chip features supported.
  • ZSM export! for playback of Furnace songs in Commander X16 using Calliope.
  • added MSM5232! (a square wave chip)
  • added Virtual Boy! 5 channels of wavetable and one of noise.
  • added POKEY! a 4-channel chip found in Atari 8-bit computers.
  • added T6W28! like SN76489 but noise frequency is separate from channel 3.
  • added Pokémon Mini (like PC Speaker but with pulse width control)
  • added K007232 (2-channel sample chip from Konami) and GA20 (4-channel sample chip from Irem)
  • implemented macros for Extended Channel mode in some FM chips!
  • new ADSR/LFO macro modes (besides sequence one)
  • new arp strategy! if pitch is linear you may now run both arpeggio macro and pitch slides simultaneously
  • new instrument format - up to 97% in file size savings! (assuming an FM instrument with no name)
  • add an effect to disable macros in some channels
  • easy noise for SN76489: the top notes now map to lower periods for easier access of higher frequencies
  • several new demo songs - now in categories!
  • add ability to set custom chip clock rates
  • sample types are now split - one type per chip
  • AY-3-8910 software PCM!
  • add YM2612 CSM without DualPCM
  • add Nuked-OPN2 + ymfm combo core option to YM2203, YM2608, YM2610 and YM2610B for better FM quality (uses slightly modified Nuked core for FM and ymfm core for SSG/ADPCM)
  • fix a bug with seamless audio setting changes and emulation core changes
  • added interpolation for wavetable resize
  • add option to center pattern view
  • new split command stream format - saves space when compressed
  • some improvements to sample editor
  • add ability to select which chips does a sample go to
  • add sample memory warnings in the sample list
  • improve "no ins/wave/sample selected" prompt
  • you can now load multiple instruments, wavetables or samples at once
  • experimental direct stream mode for VGM export! allows DualPCM exports at the cost of high file size.
  • HiDPI rework - Furnace now detects scaling properly and also runs on Wayland
  • preliminary implementation of CSM timer when using ymfm core
  • add interpolation settings to Generic PCM DAC
  • fix a major random crash bug involving the logger!
  • fix Genesis preset's PSG volume
  • fix song becoming unreadable if there is a wave with height 256
  • fix possible crash when selecting all
  • fix seeking bug when Virtual Tempo numerator is higher than denominator
  • fix .dmp saving when using advanced arp macros
  • finally fix macro speed/delay issue
  • add option to clear recent files list
  • fix "song taking a break" bug when VT num is higher than den
  • fix paste not updating selection if cursor moves
  • fix glitch when removing the last order
  • if GUI fails to initialize, report error (Windows)
  • fix instrument movement not relaying to sub-songs properly when they have different pattern lengths
  • implement DPCM loop on NES
  • fix layout loading/saving on Windows when username has special characters
  • fix instrument list being blurry when using a pixel font
  • fix playback sometimes halting on large buffer sizes and/or low sample rates
  • fix unsigned detune - now it matches the actual value on the chip
  • fix effect list being able to have infinite height
  • fix song stopping too early with FFxx
  • fix mouse events not working at all after minimizing (sometimes)
  • fix built-in file picker crashing upon encountering a file with % on its name
  • fix piano not previewing waves/samples
  • fix MIDI input not previewing waves/samples
  • fix piano being clickable under windows
  • fix "I'm feeling lucky" not changing system name
  • fix crash when creating wavetable from sample
  • fix volume bar on extended channel mode
  • many fixes for big endian platforms (thanks OPNA2608!)
  • fix Cxx higher than 40 during .mod import
  • update Backward to work on Windows AArch64
  • invert some compatibility flags
  • they are called "compatibility" for a reason...
  • OPLL fixes
  • finally fix pitch macro
  • fix high pitch sometimes triggering note
  • built-in patch preview (kind of)
  • add setting to not write freq of top/hi-hat
  • split FM instrument type into OPN and OPM
  • split Standard instrument type into SN and NES
  • speed up module loading/internal sample rendering
  • MIDI output improvements and fixes
  • Game Boy: fix zombie mode and macro speed
  • YM2151: fix LFO
  • Generic PCM DAC: fix wavetable mode
  • C64: partially fix wave after gate
  • C64: fix glitches when one tick gap is on
  • YMU759: fix 4-op ins loading in .dmf
  • NES: fix 12xx changing volume after note off
  • NES: envelope and length counter effects
  • VERA: fix pan macro
  • SN: fix clicking when using Nuked-PSG core
  • SAA1099: fix chips going crazy if there is more than one
  • PCE: finally fix LFO
  • YMZ280B: fix VGM export
  • VIC-20: possibly fix sadfgbmk;lhsdhklj;asdf;kj
  • I don't know what did I fix but yeah
  • MSM6295: 127!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
  • SegaPCM: a couple fixes

New in Furnace 0.6 Build 1.5 Pre-release (Oct 10, 2022)

  • New wavetable generator, with shapes (additive) and FM modes!
  • Wavetable editing tools like interpolate
  • Signed mode for wavetable editor MML string
  • A new look for the channel headers in pattern editor, including a volume bar (which you may enable in Settings > Appearance)
  • Several new demo songs
  • Twice the max macro length (now 255)
  • Macro speed/delay setting OH WAIT it doesn't work well I just remember D: i'll push a hotfix soon
  • Add a pattern manager window (including option to save unused patterns)
  • Add a chip manager window - now you can move chips!
  • Add KVS to FM instruments - allows you to select which operators will have their TL values scaled by volume
  • Click on the algorithm preview
  • Search in chip and system selector
  • Advanced Arp Macros - now every step of the macro can be either fixed or relative rather than the whole macro
  • Game Boy hardware sequences and software volume! (zombie mode)
  • Note that this will not work on VGMPlay due to emulation accuracy issues
  • Fix a couple CSM issues
  • Fix system file picker not working at all
  • .dmp and .dmw saving
  • Fix loading some instruments
  • New sample editor format - now allows for C-4 rate higher than 65535 and loop end position
  • YMZ280B: frequency precision fixes
  • System name is now stored in the song
  • Added a Generic PCM DAC chip
  • Fix some issues with per-channel oscilloscope
  • New Arcade presets
  • Preliminary Future Composer (Amiga) module loading
  • Prevent crash when unplugging MIDI device on Windows (untested)
  • Add a proper CLI (currently Linux only)
  • Add "scale" option in find/replace
  • Add option for soft-clipping
  • Fix possible crash when editing samples
  • Atari Lynx: fix crash in older machines
  • Sound Unit: implement echo and 64K PCM memory revision
  • Fix issues when muting in DualPCM
  • Add command stream dump export
  • Wave change anti-click for Game Boy and PC Engine!
  • Linux armhf builds now available (e.g. Raspberry Pi)
  • MMC5: fix PCM issues
  • QSound: fix loop issue on high frequencies
  • Fix possible crash when closing Furnace
  • Raw sample data import
  • Remember last window position and maximized state
  • Fix notes sometimes being skipped in jam mode
  • Fix instruments becoming Standard type when saving as .dmf in Game Boy/PCE/C64 systems
  • New reSIDfp core for C64
  • WonderSwan: fix possible hang when seeking the song
  • Add a "create wave from selection" option in the sample editor
  • AY stereo separation
  • New instruments and fixed others
  • Fix 1.1 .dmp loading - now OPLL and FDS instruments load
  • TIA: update to latest Stella core
  • New loop detection strategy
  • Add recent file list
  • Operator masking
  • Fix some CSM clicking
  • Doc fixes
  • It's 5:22AM CAN I SLEEP THANK YOU
  • AAAAAA