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