d4d1ade513
YM2413 (drums mode) Standalone YM2413 with allows drum channel. Sound Expander for Commodore 64 OPL FM Sound expander cartridge for Commodore 64, it's placeholder until OPL is implemented. MSX-MUSIC: MSX's sound standard, appeared after MSX-AUDIO. it's basically OPLL FM sound expansion for MSX. SSI 2001: ISA Sound card with SID 6581. SID input clock is driven from ISA clock, so I modified flags value check routine. Sound Blaster w/Game Blaster Compatible Earliest Sound Blaster models has featured with Game Blaster compatiblity, It's has 2 SAA1099s like CMS/Game Blaster. It's removed at later models, but some hardware has just empty socket; you can restore this feature when you mount SAA1099 at empty socket. Sharp X1: Predecessor of X68000. it has built in AY PSG like competitors of the same period, but it has YM2151 FM sound addon in later models. FM sound is embedded in turbo Z, and that is succeeded by X68000. X68000 hasn't AY, instead OKI MSM6258. YM2151 in OutRun Board and X Board is 4MHz |
||
---|---|---|
.github/workflows | ||
demos | ||
extern | ||
papers | ||
res | ||
scripts | ||
src | ||
test | ||
.gitignore | ||
.gitmodules | ||
CMakeLists.txt | ||
CONTRIBUTING.md | ||
LICENSE | ||
README.md |
README.md
Furnace Tracker
this is a work-in-progress chiptune tracker compatible with DefleMask modules (.dmf).
downloads | discussion | help | developer info
features
- supports the following systems:
- Sega Genesis
- Sega Master System
- Game Boy
- PC Engine
- NES
- Commodore 64
- Yamaha YM2151 (plus PCM)
- Neo Geo
- AY-3-8910 (ZX Spectrum, Atari ST, etc.)
- Microchip AY8930
- Philips SAA1099
- Amiga
- TIA (Atari 2600/7800)
- multiple sound chips in a single song!
- clean-room design (guesswork and ABX tests only, no decompilation involved)
- bug/quirk implementation for increased playback accuracy
- VGM and audio file export
- accurate emulation cores whether possible (Nuked, MAME, SameBoy, Mednafen PCE, puNES, reSID, Stella, SAASound and ymfm)
- additional features on top:
- FM macros!
- arbitrary pitch samples
- sample loop points
- SSG envelopes in Neo Geo
- full duty/cutoff range in C64
- ability to change tempo mid-song with
Cxxx
effect (xxx
between000
and3ff
)
- open-source under GPLv2 or later.
downloads
check out the Releases page. available for Windows, macOS and Linux (AppImage).
discussion
see the Discussions section, or (preferably) the official Discord server.
help
check out the documentation. it's mostly incomplete, but has details on effects.
developer info
NOTE: do not download the project's source as a .zip or .tar.gz as these do not include the project's submodules which are necessary to proceed with building.
dependencies
- CMake
- SDL2
- zlib
- JACK (optional)
SDL2 and zlib are included as submodules.
getting the source
type the following on a terminal/console: (make sure Git is installed)
git clone --recursive https://github.com/tildearrow/furnace.git
cd furnace
(the --recursive
parameter ensures submodules are fetched as well)
compilation
your typical CMake project.
Windows using MSVC
as of now tildearrow uses MinGW for Windows builds, but thanks to OPNA2608 this works again!
from the developer tools command prompt:
mkdir build
cd build
cmake ..
msbuild ALL_BUILD.vcxproj
macOS and Linux
mkdir build
cd build
cmake ..
make
CMake options
To add an option from the command-line: -D<NAME>=<VALUE>
Example: cmake -DBUILD_GUI=OFF -DWARNINGS_ARE_ERRORS=ON ..
Available options:
Name | Default | Description |
---|---|---|
BUILD_GUI |
ON if not building for Android, otherwise OFF |
Build the tracker (disable to build only a headless player) |
WITH_JACK |
ON if system-installed JACK detected, otherwise OFF |
Whether to build with JACK support. Auto-detects if JACK is available |
SYSTEM_FMT |
OFF |
Use a system-installed version of fmt instead of the vendored one |
SYSTEM_LIBSNDFILE |
OFF |
Use a system-installed version of libsndfile instead of the vendored one |
SYSTEM_ZLIB |
OFF |
Use a system-installed version of zlib instead of the vendored one |
SYSTEM_SDL2 |
OFF |
Use a system-installed version of SDL2 instead of the vendored one |
WARNINGS_ARE_ERRORS |
OFF (but consider enabling this & reporting any errors that arise from it!) |
Whether warnings in furnace's C++ code should be treated as errors |
usage
./furnace
this opens the program.
./furnace -console <file>
this will play a compatible file.
./furnace -console -view commands <file>
this will play a compatible file and enable the commands view.
notes
how do I use Neo Geo SSG envelopes?
the following effects are provided:
22xy
: set envelope mode.x
sets the envelope shape, which may be one of the following:0: \___
decay4: /___
attack once8: \\\\
saw9: \___
decayA: \/\/
inverse obeliscoB: \¯¯¯
decay onceC: ////
inverse sawD: /¯¯¯
attackE: /\/\
obeliscoF: /___
attack once
- if
y
is 1 then the envelope will affect this channel.
23xx
: set envelope period low byte.24xx
: set envelope period high byte.25xx
: slide envelope period up.26xx
: slide envelope period down.
a lower envelope period will make the envelope run faster.
how do I use C64 absolute filter/duty?
on Instrument Editor in the C64 tab there are two options to toggle these. also provided are two effects:
3xxx
: set fine duty.4xxx
: set fine cutoff.xxx
range is 000-7ff.
my song sounds very odd at a certain point
file a bug report. use the Issues page.
it's probably another playback inaccuracy.
my song sounds correct, but it doesn't in DefleMask
file a bug report here. it still is a playback inaccuracy.
my C64 song sounds terrible after saving as .dmf!
that's a limitation of the DefleMask format. save in Furnace song format instead (.fur).
how do I solo channels?
right click on the channel name.
footnotes
copyright (C) 2021-2022 tildearrow and contributors.
This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
despite the fact this program works with the .dmf file format, it is NOT affiliated with Delek or DefleMask in any way, nor it is a replacement for the original program.