::|CONTENTS
- Supported systems
- Capabilities
- Quick set up
- Composing
- Using Furnace on BotB
- See also
Furnace is a free cross-platform multi-system open-source music tracker. It has its own format,
furnace (format), but is also able to load and save
DefleMask Tracker .dmf files, including support for the new .dmf 1.1 and later specification. It is also capable of exporting to .vgm for the systems that support it, and ROM export for a limited but growing number of configurations.
Seeing as it is currently under active development and updates are frequent, you should check the GitHub repository for latest version:
https://github.com/tildearrow/furnace
With the stable release of version 0.6, Furnace was added as a BotB format on the 21st of October 2023:
furnace (format)
Supported systems
As of 0.6.8.1, Furnace supports a large selection of soundchips and configurations. As the supported list of systems and soundchips is long,
we recommend looking at the GitHub page to get the most up-to-date complete listing possible. The documentation also provides more detailed information for each chip, but some basics are included here as well.
FM chips:
Yamaha YM2151 (OPM)
8 channels, 4-op FM with coarse detune, Operator 4 on channel 8 can be exchanged for a noise generator similar to the YM2149F.
Yamaha YM2414 (OPZ)
8 channels, 4-op FM with many individual options. 8 selectable waveforms per oscillator. Used in the Yamaha TX81Z and the V50.
OPN Family:
Yamaha YM2203 (OPN)
3 FM channels, 4-op FM with SSG-EG, plus 3 SSG channels backwards compatible with the YM2149F. Channel 3 can be swapped into a special mode with unlocked operator pitch (not limited to the MULT settings).
Yamaha YM2608 (OPNA)
6 FM channels, 4-op FM with SSG-EG, plus a fixed ADPCM(A) 6-voice rhythm section, a customisable ADPCM(B) sample channel, and 3 SSG channels backwards compatible with the YM2149F. Channel 3 can be swapped into a special mode with unlocked operator pitch (not limited to the MULT settings).
Yamaha YM2610 (OPNB)
YM2608, but with 2 less FM channels, and the ADPCM(A) section can have custom samples supplied.
Yamaha YM2610B (OPNB2)
Like the YM2610 but with 6 channels instead of 4.
Yamaha YM2612 (OPN2)
6 FM channels, 4-op FM with SSG-EG. Channel 3 can be swapped into a special mode with unlocked operator pitch (not limited to the MULT settings). Channel 6 can be swapped out for a DAC if desired, only used on the Mega Drive consoles. Integrated DAC results in a non-linear bit-quantized 9-bit output which some might find pleasing, although the YM3438 somewhat mitigates this.
OPL Family:
Yamaha YM3526 (OPL)
9 FM channels, 2-op FM. The last 3 channels can be swapped out for a 5-part crude rhythm section.
Yamaha Y8950 (MSX-MUSIC)
Like YM3526, but with ADPCM(B) from the YM2608.
Yamaha YM3812 (OPL2)
Like YM3526, but with 3 extra waveforms.
Yamaha YM2413 (OPLL)
Cost-reduced OPL2 - only 2 waveforms in total, integrated DAC with similar qualities to the YM2612, reduced memory space allows for only one global custom patch, with the rest using pre-programmed custom patches. Known variants: Konami K053982 (VRC7), YM2423 (used for FM Melody Maker for the Atari ST, different patch set), YMF281 (used for a few pachislot machines, different patch set).
Yamaha YMF262 (OPL3)
Upgraded YM3812 - added quadraphonic output (4 channel surround sound), 9 extra voices, 4 extra waveforms, rudimentary 4-op instruments by combining 12 2-op channels into 6 4-op channels.
ESS ESFM
Upgraded YMF262 - Native mode upgrades all 18 voices to be 4-op, semi-modular operator routing, per-operator pitch control across all channels, plus special ringmod/noise modes designed for drums mode support. Technically not part of the OPL family but oh well bite me.
Yamaha YMF278 (OPL4)
YMF262 but with 24 sample voices - 44.1khz, up to 4MB total size for the samples.
Sample chips:
Amiga
4 channels - 2 voices are hardpanned left, with the other two hardpanned right. Technically this is "stereo" however you cannot pan the voices independently.
SegaPCM (Sega 315-5218)
16 channels - used for the Sega Superscaler arcade titles.
Capcom QSound (DL1425)
16 channels, plus 3 ADPCM channels that were never commercially used. Employs the QSound 3D algorithm to create surround sound
Seta X1-010
16 wavetable channels, which can also use samples instead. Please see the documentation on how to set this up.
Yamaha YMZ280B
8 channels, can use 4-bit ADPCM, 8-bit PCM or 16-bit PCM
Ricoh RF5C28
8 channels - similar to SNES, but without any filtering, echo etc.
OKI MSM6258
1 channel - streams ADPCM. Used in the Sharp X68000
OKI MSM6295
4 ADPCM channels. Used in many arcade boards.
SNES APU/SPC700/Sony S-SMP
8 ADPCM channels. Used for the SNES. Has gaussian filtering, an echo buffer, pitch modulation, and a tight 64kb audio RAM limit.
Irem GA20
4 channels.
Ensoniq ES5506 (OTTO)
32 channels with a LOT of high-end features. Used in many PC cards as well as Ensoniq's TS10/TS12 synthesizers.
Konami K007232
2 channels. 7-bit PCM, with the 8th bit denoting when a sample starts and ends.
Konami K053260
4 channels. Either 4-bit ADPCM or 8-bit PCM. No loops, but there's a special flag that enables reverse playback.
Namco C140
24 channels of μ-law samples (8 or 12 bits). 21.4kHz sampling rate.
Namco C219
16 channels of either PCM or μ-law samples. Each group of 4 channels must use a 128kb bank. Has a noise generator as well.
Nintendo DS
16 channels - last 8 channels can be switched to a PSG mode, featuring 6 pulse and 2 noise channels.
Yamaha YMF278 (OPL4)
YMF262 but with 24 sample voices - 44.1khz, up to 4MB total size for the samples.
Generic PCM DAC
1 voice. Can be configured to whatever is needed.
Square wave chips:
AY-3-891X / YM2419F
3 channels, with envelopes and noise.
Microchip AY8930
3 channels with configurable noise XOR and duty cycles, per-channel independent envelope speeds.
Texas Instruments SN76489
3 channels with a dedicated noise channel.
Philips SAA1099
6 channels, unique envelope mode, and a similar noise channel setup to the SN76489.
Toshiba T6W28
SN76489 in stereo and with independent noise control.
Commodore VIC
3 channels plus a noise channel - each channel has its own note range, and is all prone to distortion.
Commodore TED
2 square channels.
OKI MSM5232
8 square channels - separated in groups of 4. One can add octaves to alter the sound and create organ-like-sounds. Pitch control is quantized to semitones, no vibrato is possible unless one alters the global clock slightly.
PC Speaker & Pokémon Mini
1 channel. Pokémon Mini has duty cycle settings.
Wavetable chips:
PC-Engine/TurboGrafx-16/HuC6280
6 channels, last 2 channels can be switched to noise.
Konami Bubble System WSG
2 channels.
Konami SCC/SCC+
5 channels - SCC+ has individual wavetable control for channels 4/5, while non-plus shares the wavetable across those two channels.
Namco WSG/C15/C30
WSG is 3 channels.
C15 and C30 are 8 channels - C15 output in mono while C30 does so in stereo instead.
Namco C163
Up to 8 channels - the more in use, the more audible the multiplexer hiss is. 128 bytes of memory, which is also shared for the channel status (pitch, wave length, start location etc) so the more channels in use the less space for waveforms is available.
Ricoh RP2C33 (FDS Audio)
1 channel. Includes pitch modulation features.
WonderSwan
4 channels, with noise and PCM support.
Nintendo VSU-VUE (Virtual Boy)
5 wavetable channels plus 1 noise channel.
Sharp SM8521
2 wavetable channels plus 1 noise channel.
Seta X1-010
16 wavetable channels, which can also use samples instead. Please see the documentation on how to set this up.
Specialised chips:
Commodore 64 (MOS 6581/8580)
3 channels with many features also also bugs.
Ricoh 2a03/2a07 (NES)
5 channels - 2 pulse, 1 triangle, 1 noise and 1 DPCM (1-bit delta modulation or 7-bit PCM)
Nintendo MMC5
2 pulse channels from the NES but without hardware sweeps.
Konami VRC6
2 pulse channels and 1 accumulator (Sawtooth).
Sharp LR35902 (Game Boy DMG)
2 pulse channels, 1 wavetable, 1 noise. Highly popular.
Atari TIA
2 channels with many settings but not many pitch settings. Tiuna fixes the latter.
Atari C012294 POKEY
4 channels with many settings and slightly more pitch settings.
Atari Lynx
4 LSFR-based channels.
Commander X16 VERA
16 channels with switchable waveforms.
Enterprise 128 DAVE
Similar to POKEY but in stereo.
Watara Supervision
Like Game Boy, but with fewer features.
ZX Spectrum beeper
Two engines are supported for multi-voice songs.
Fantasy chips:
PowerNoise
3 LSFR channels and 1 "slope" channel.
Bifurcator
4 channels using logistic maps to generate sound.
Tildearrow Sound Unit
8 channels with many many features.
LTVA SID2
SID with slightly more features and many less bugs.
LTVA SID3
SID2 with too many features.
...As well as some DefleMask-compatible systems if you're writing for the .DMF format.
Capabilities
Some soundchip combinations will automatically fill in the "System" field, e.g. YM2612+SN76489 will automatically fill the field as "Sega Genesis/Mega Drive" (though keep in mind this does take clock speeds and other settings into consideration). There are a lot of system presets to choose when creating a new module - those presets are split up into game consoles, computers and arcade machines. There is also the 'I'm feeling lucky' button on the module creation popup window, which will randomly select something from all available presets or chips.
Soundchips can be further configured as it pertains to clock speed, NTSC/PAL settings, and other specialised settings in its own "Chip manager" dialog. You can also add and remove chips from this dialog if desired. It is also possible to combine those systems or multiply them in any way you like - this is one of few advantages it has over DefleMask, which is not capable of doing this.
Please keep in mind if you're exporting to .VGM, that Furnace supports a number of soundchips and system configurations not yet supported by the .VGM specification - examples include the Famicom expansion hardware, the Atari TIA, and so on. The VGM format itself also currently limits the amount of concurrent soundchips to 2 of each (you won't be able to export a Furnace module that features 3x AY-3-8910, for example, as the specification only allows for up to two concurrent instances maximum, but 2x YM2612, 2x AY-3-8910 and 2x GameBoy DMG is perfectly acceptable).
The tracker is in active development with support from its own community, some of which are BotBrs \=D/. Currently the focus is on adding more export formats for formats that warrant it such as .NSF export for the NES related configurations.
Furnace has the ability to load and save .dmf
DefleMask modules, though this stopped being a focus of the software at some point. It can also import,
but not export, a handful of Amiga module types: .mod, .smod, .fc13, .fc14, .fc; In addition, it can load FamiTracker .ftm and 0CC-FamiTracker .0CC, but keep in mind these may not be fully compatible, especially in the latter's case as Furnace is missing arpeggio schemes entirely (among other features).
The interface is entirely customisable, allowing you to drag sections and dock them wherever you'd like - fonts can be changed, the overall size of the program can be changed, certain parts can be entirely hidden if not wanted, although you might prefer to keep the defaults as there are a LOT of settings and it's exhausting to go through every one (or pop into their Discord server and find a theme you like).
Quick set up
Check the
releases page on GitHub to get any version you like, but the newest version is generally preferable.
You can also download nightly builds from
this section on the GitHub page, but there's no guarantee that these builds will be bug free (or that they'll work at all). Use at your own discretion. Keep in mind that for Battle of the Bits submissions to the
furnace (format), you should aim to use the latest stable version found on the aforementioned releases page.
Composing
Furnace features an effects list within the program; to access it, go to the top menu bar and select help, then turn on "effects list". It will appear as a separate window initially, but it is dockable and you can place it anywhere inside the program (provided you haven't also enabled the "Lock layout" option in Settings > Lock layout. This list will feature both general effects as well as chip-specific effects, the latter of which will change depending on where your playhead is located to show relevant effects.
System specifics can be found in the excellent documentation included with the program, under "manual.pdf", or
an online version is also available here (although keep in mind the online version will reflect the nightly versions and not the latest stable version).
If you have used DefleMask before, Furnace will feel similar in terms of the initial layout and keybinds. Some FamiTracker keybinds (such as 1 for note-off) also work here. Keybinds are customisable, and the scope and amount of customisable binds is similar to OpenMPT's offerings.
Using Furnace on BotB
Any BotB formats that allow for .vgm or .fur submission can be made with this tracker, as well as some ROM exports where applicable. Furnace also has its own format on BotB, using the .fur module file type as the sole submission option:
furnace (format)
Formats where use of Furnace is accepted:
-
Sega Genesis (.vgm)
-
Sega Master System (.vgm)
-
.VGM File Format (.vgm)
-
AY/YM (.vgm)
-
PC-Engine/TurboGrafx-16 (.vgm)
-
YM2151 (.vgm)
-
Gameboy* (.vgm)
[*software volume envelopes do not export correctly]
-
DefleMask Legacy (.dmf "1.0/legacy" export)
-
Furnace (.fur)
-
AdLib soundcard (.fur)
-
OPL2 (.fur)
-
OPL3 (.fur)
-
MSX+ (.vgm)
-
Sharp X68000 (.vgm)
-
Atari TIA (.bin, requires
TIunA for building)
Formats where Furnace (and/or .vgm)
cannot be used:
- the 2A03/NES formats
nsf,
nsf_classic,
nsfplus (requires .nsf)
-
PC-x801 (requires .s98 or MML options, for more details please see the aforementioned article)
-
Amiga .MOD (.mod can be imported but not exported)
-
SNES (no export)
-
Commodore 64 (no export)
-
Commodore Plus/4 (no export)
-
Commodore VIC-20 (no export)
-
ZX Spectrum beeper (no export)
-
POKEY (sap) (there IS export supported for this, but it's using the SAP-R format rather than SAP. this could possibly further export to .XEX which is an Atari XE Executable)
-
2xPOKEY (sapx2) (no export for 2x POKEY)
- Any other format that either doesn't accept VGM/FUR, or a format that Furnace doesn't export to. If in doubt, just ask someone to be sure!
See also
-
List of trackers