Hubbry Logo
MilkyTrackerMilkyTrackerMain
Open search
MilkyTracker
Community hub
MilkyTracker
logo
8 pages, 0 posts
0 subscribers
Be the first to start a discussion here.
Be the first to start a discussion here.
MilkyTracker
MilkyTracker
from Wikipedia
MilkyTracker
Initial release2005[1]
Stable release
1.05 / November 25, 2024; 11 months ago (2024-11-25)[2]
Repository
Written inC++
Operating systemWindows, macOS, Linux, Android, FreeBSD, OpenBSD, MorphOS, AmigaOS, PocketPC, SerenityOS and HaikuOS
TypeMusic tracker
LicenseGPL-3.0-or-later
MilkyPlay: BSD-3-Clause
Websitemilkytracker.org

MilkyTracker is a free software[3][4] multi-platform music tracker for composing music in the MOD and XM module file formats.[5]

It is a clone that attempts to recreate the module replay and user experience of the popular DOS program FastTracker 2,[6][7][8] with special playback modes available for improved Amiga Protracker 2/3 compatibility.[9]

Module tracking

[edit]

Module composition or "tracking" is done through the control of multichannel sample playback. An instrument is created by arranging one or more audio samples across a keyboard range. The instrument is then sequenced on a monophonic track that contains note, volume and effect data. A pattern is a series of tracks that are played back simultaneously. A song is then created by arranging the patterns.

Features

[edit]

MilkyTracker is able to open several legacy music module formats and is able to save in .xm and .mod formats.

Like FastTracker, MilkyTracker contains a sample editor and an instrument editor. The envelope editor of the instrument editor allows the creation of many envelope points and user definable envelope loop points.

MilkyTracker also supports basic (velocity sensitive) note input via MIDI.

Platform support

[edit]

MilkyTracker supports several operating systems and hardware platforms. These include:

History

[edit]

MilkyTracker is not based on any existing module replay engine. Its core, MilkyPlay, has been in development since the mid-90s, originally as a Digitrakker .MDL player. MilkyTracker development started a decade later for the Pocket PC and it still fully operates on rather humble PDAs. MilkyTracker is and will stay a 2nd generation tracker. There are no plans to add modern tracker features that would break compatibility with FastTracker.

See also

[edit]

References

[edit]
[edit]
Revisions and contributorsEdit on WikipediaRead on Wikipedia
from Grokipedia
MilkyTracker is a free and open-source software, licensed under the GNU General Public License version 3, inspired by the classic FastTracker II, designed for composing and editing music in module formats such as MOD and XM. It supports multi-platform operation, including Windows, macOS, , , , and various Unix-like systems like and , making it accessible to users across diverse computing environments. Key features include support for up to 128 channels, realtime effect auditioning, an improved user interface, and a sample editor with effects such as flanger, reverb, timestretch, filter, saturator, , and exciter. The latest version, 1.05.01 released on November 28, 2024, introduces the beta MilkySynth with FM and CYCLE algorithms, along with a pack of XI instruments for enhanced . It was first released in 2005 and open-sourced with version 0.90.80 on April 13, 2008, and has seen steady updates, including the milestone 1.0.0 on March 12, 2017, and migration to in 2013 for collaborative development. The project remains community-driven, with contributions from multiple developers focused on recreating the module replay and user experience of FastTracker II while adding modern enhancements.

Overview

Description

MilkyTracker is an open-source, multi-platform music application designed for creating and editing .MOD and .XM module files. It provides a graphical user interface reminiscent of classic trackers, enabling users to compose music through pattern-based sequencing of samples and effects. The software emulates the module replay and user experience of historic tools such as FastTracker II for .XM files and for .MOD files, supporting accurate playback modes including ProTracker 2.x/3.x emulation for four-channel .MODs. This makes it particularly suited for and electronic music production, where short samples and algorithmic effects recreate the sounds of early computer and Amiga-era compositions. Released as open-source under the GPL license in 2008, MilkyTracker has seen continuous development, with its latest stable version 1.05 issued on November 25, 2024. It finds primary application in the for competitive music entries, retro gaming soundtracks leveraging module formats, and modular music composition that emphasizes reusable patterns and samples.

Background on Module Tracking

Module trackers, also known as trackers, are pattern-based music sequencing software that originated in the mid-1980s within the Amiga demoscene, a creative subculture focused on producing audiovisual demonstrations for Commodore Amiga computers. These tools enabled musicians to compose music using digitized audio samples arranged in a grid-like structure, leveraging the Amiga's advanced hardware for real-time playback without requiring expensive synthesizers. The foundational program, Ultimate Soundtracker, developed by Karsten Obarski and released in 1987, introduced the MOD file format and established the core tracker paradigm of efficient, sample-driven composition tailored to the era's computational constraints. At their core, module trackers revolve around three primary elements: patterns, samples (or instruments), and effects commands. Patterns consist of tabular grids, typically with 64 rows, where users enter notes, instruments, volume, and effects commands side-by-side for precise rhythmic sequencing across multiple channels. Each row represents a short time step, subdivided into ticks controlled by the tracker's speed and settings. Samples are short audio waveforms loaded into and triggered by notes, while instruments in later iterations bundle multiple samples with modulation parameters for greater expressiveness. Effects commands, entered in dedicated columns, manipulate playback in real time—examples include for rapid pitch alternation between notes, and volume slides for gradual changes—enabling complex arrangements from simple inputs. This structure promotes a text-based, keyboard-driven that emphasizes rhythmic precision and sample manipulation over traditional score notation. The historical evolution of module trackers progressed from the 's early limitations to more sophisticated implementations, highlighting their emphasis on grid-based editing and resource efficiency. Following , —released in 1990 by the Amiga Freelancers group—became a standard, refining pattern editing with improved sample handling and effects while maintaining compatibility with the original MOD format. By 1994, FastTracker II, developed for by Triton Productions, extended these concepts to PC platforms, introducing the XM format with support for up to 32 channels, linear sample , and enhanced , all while preserving the low CPU overhead that made trackers viable on modest hardware. This progression underscored trackers' adaptability, evolving from 4-channel constraints to multi-platform tools without sacrificing their minimalist, efficient design. Module trackers played a pivotal role in the development of chiptune music, a genre characterized by emulating or exploiting retro hardware sounds, particularly on the Amiga's Paula sound chip. Released in 1985, Paula provided four independent 8-bit PCM channels capable of 28 kHz playback, but its limitations—such as fixed sample resolution leading to distortion on sharp attacks, aliasing at high pitches, and memory restrictions necessitating looped samples—fostered innovative techniques like careful period tuning and effect chaining to maximize sonic depth. These constraints not only defined chiptune's raw, digital aesthetic but also influenced demoscene productions and early game soundtracks, where trackers' efficiency allowed for immersive, hardware-synced audio within tight resource bounds. MilkyTracker, as a modern reimplementation, emulates these classic Amiga trackers to preserve their workflow and sound.

Core Functionality

Editing Tools

MilkyTracker provides a suite of integrated editing tools for composing and modifying modules, emphasizing precision in pattern-based creation reminiscent of classic trackers. These tools enable users to build songs through layered channels of notes, samples, and effects, with workflows designed for efficient between composition and refinement. The software supports simultaneous editing and playback, allowing real-time adjustments during module development. The pattern editor serves as the core interface for entering musical data in a grid-based layout, where users input notes, instruments, volume commands, and effects across up to 128 channels. Navigation occurs via arrow keys for cursor movement, Tab to switch channels, and Page Up/Down for row jumps, while block selection with Shift + arrows facilitates operations like cut (Ctrl+X), copy (Ctrl+C), paste (Ctrl+V), and undo/redo (Ctrl+Z/Y). Additional features include value interpolation (Ctrl+I) for smooth parameter transitions and conversion of patterns to samples (Ctrl+Shift+V), supporting complex arrangements with pattern looping via the E6x command. Complementing this, the sample editor allows detailed waveform manipulation, including cutting, looping, amplification, and format conversions such as from to 8-bit IFF-compatible samples. Users select samples via Ctrl+Shift up/down keys and apply previewable effects like and filter adjustments, or non-previewable ones like compression, through a context menu; modulating effects such as are also available for creative sound design. Songs or patterns can be rendered directly to disk as files or imported into samples, streamlining the integration of external audio. Instrument management focuses on envelope editing for volume and panning, with support for multi-sample instruments that map different samples across keyboard ranges. Accessed via Ctrl+Alt+I, the editor includes zooming and scaling for precise envelope curves, alongside tools for copying, swapping, and saving instruments in .XI or .PAT formats. This enables the creation of expressive, dynamic sounds by defining how parameters evolve over time within each instrument. Automation is handled through the order list, which defines by sequencing , navigable with Alt+up/down keys for quick reorganization. Tempo and BPM adjustments are made via Ctrl+J to increase by 1, Ctrl+H to decrease by 1, Ctrl+K to increase by 5, or Ctrl+G to decrease by 5, influencing playback speed across the module. Pattern copying and looping further automate repetitive sections, with the editor's prospective view option previewing changes in context. These features collectively support structured workflows for building complete tracks.

Playback and Effects

MilkyTracker employs the MilkyPlay engine for audio playback, which provides high-fidelity emulation of module replay, including support for linear, cubic Lagrange, cubic spline, and sinc methods to minimize during sample rendering and playback. The engine handles multi-channel mixing of up to 128 simultaneous channels, applying effects in real time to produce layered audio output faithful to original tracker specifications. The software supports a comprehensive set of FastTracker-compatible effects commands applied during playback, enabling dynamic modulation of pitch, , and other parameters on a per-note basis. Portamento effects include upward slides (1xx), where the pitch increases by a specified speed value xx semitones per tick; downward slides (2xx), which decrease pitch similarly; and tone portamento (3xx), which glides from the current note to a target note at speed xx while preserving the sample and . (4xy) modulates pitch sinusoidally with rate x and depth y, using waveforms selectable via E4x (sine by default), to create a wavering effect; (7xy) applies analogous modulation with rate x and depth y, controllable via E7x for waveform type. These effects are processed tick-by-tick during playback, with pattern-based application allowing seamless integration into compositions. Real-time audio preview facilitates editing by supporting scrubbing through patterns via keyboard shortcuts like Shift-F9 to play from the start or Shift-F10/F11/F12 for quarter, half, and three-quarter positions, alongside row-by-row playback with Shift-Space for precise auditioning. Looping is managed through commands such as E6x to set pattern loop points executed x times, combined with sample-level bidirectional looping to ensure smooth repetition without audible clicks, enabled by double-buffered loop areas. Multi-channel mixing occurs in real time, with visual channel scopes and mute/unmute controls (e.g., Shift-1 through Shift-9) allowing users to isolate and preview individual tracks during composition. Export options include rendering entire songs or patterns to WAV format as Microsoft/IBM PCM waveforms, preserving loop points and supporting up to 48 kHz sample rates for output, with additional capabilities for .MOD (2–32 channels) and .XM files via dedicated menu functions like Ctrl-Shift-V for pattern-to-sample rendering. These features enable high-quality audio export directly from the editing environment, with adjustable resamplers applied during the process to match playback fidelity.

Technical Specifications

Supported Formats

MilkyTracker offers full read and write support for the .XM module format, ensuring compatibility with FastTracker II standards, allowing users to load, edit, and save extended modules with multi-sample instruments, patterns up to 256 rows, and up to 128 channels (extended beyond the standard XM limit of 32). It also provides complete read and write capabilities for the .MOD format originating from , supporting 4-channel modules with periodic and one-shot samples, though exports are limited to 2–32 channels and a maximum sample length of 64 KB per sample. For extended variants like .S3M, MilkyTracker includes partial support, enabling import but with limitations in replay fidelity due to its FastTracker II emulation focus, which may not fully render all S3M-specific effects or structures. The software supports extensive import capabilities for legacy module formats, converting them into its editable .XM or .MOD structure for further modification; this includes direct loading of .IT (Impulse Tracker) files with volume envelopes and per-pattern effects, as well as .S3M modules, alongside over 30 other formats such as .669, .AMF, .MTM, .STM, and .ULT. Sample import is handled for uncompressed audio files in .WAV (Microsoft/IBM PCM), .AIFF/.AIF, .8SVX/.IFF, and raw PCM data from various extensions, facilitating integration of external waveforms into instruments. Instrument import extends to .XI (eXtended Instrument) for full envelopes and multi-samples, and .PAT (Gravis Ultrasound GF1 Patch) for legacy hardware compatibility. Additionally, MilkyTracker can handle compressed modules through basic archive support for ZIP, PowerPacker (.pp), and UMX formats, allowing direct loading without extraction. Export options prioritize module preservation and rendered audio, with full .XM output maintaining all editing features like instrument envelopes and pattern loops (up to 128 channels), .MOD export adhering to ProTracker constraints, and .WAV export for uncompressed PCM waveforms of entire songs or individual patterns. Sample and instrument exports are available in .WAV or .IFF for uncompressed data, and .XI for instruments. Patterns and tracks can be saved in proprietary .XP (eXtended Pattern) and .XT (eXtended Track) formats for modular workflow reuse. Notably, there is no direct MIDI export functionality, emphasizing MilkyTracker's role in module-based composition over general-purpose sequencing.
CategoryImport FormatsExport Formats
Modules.669, .AMF, ., .CBA, .DBM, .DIGI, .DSM, .DTM, .FAR, .GDM, .GMC, .IMF, .IT, .MDL, .MOD, .MTM, .MXM, .OKT, ., .PSM, .PTM, .S3M, .SFX, .STM, .ULT, .UNI, .XM (and compressed: ZIP, .pp, UMX).MOD (2–32 channels, 64 KB max sample), .XM (up to 128 channels)
Samples.8SVX/.IFF, .AIF/.AIFF, .WAV, raw PCM (.*).IFF (uncompressed), . (uncompressed PCM)
Instruments.XI, .PAT.XI
Patterns/Tracks.XP, .XT.XP, .XT
AudioN/A. (songs/patterns)

User Interface and Controls

MilkyTracker's user interface adopts a modular layout reminiscent of classic module trackers, featuring a central pattern view where users edit notes, volumes, and effects in a grid-based format displayed in hex notation for precision. Adjacent to this are dedicated panels for the order list, which sequences patterns in a vertical list; instrument and sample lists, allowing quick selection and management; and a disk operations panel for file handling tasks such as loading and saving modules. The sample editor includes a display for visual editing of audio samples, enabling users to zoom, draw, and manipulate waveforms directly within the interface. Keyboard controls draw inspiration from FastTracker II, supporting two input modes—MilkyTracker and FT2—for compatibility with varying user preferences, switchable via the configuration screen. In MilkyTracker mode, note entry uses a QWERTY-based layout where keys like Q, W, E, R, T, Y correspond to octaves for semitones, facilitating rapid input without numeric pad reliance. Effect insertion employs shortcuts such as Alt+1 through Alt+0 in FT2 mode to insert commands like or volume slides, while navigation relies on cursor keys for row movement, Page Up/Down for jumping 16 rows, and additional global shortcuts like Esc to stop playback or Shift+M to mute channels. Customization options enhance adaptability, with the configuration screen providing theme selections through adjustable color schemes, including five customizable colors introduced in version 1.00 for personalized visual setups. Font scaling is supported via selectable UI and pattern fonts, such as IDC-Harmonica or variants added in version 0.90.85, allowing users to adjust readability for different screen sizes. Key bindings are configurable by toggling between the two edit modes, and accessibility features include input support for alternative control methods, though high-contrast modes are achievable via color customizations rather than a dedicated toggle. Usability is bolstered by features like an integrated disk browser, accessible via Ctrl+O for loading songs or the "flip" button in the disk operations panel since version 0.90.60, streamlining file navigation without external tools. An undo/redo system operates across , sample, and instrument editors using shortcuts like Ctrl+Z/Ctrl+Y in mode or Ctrl+Alt+Z/Ctrl+Alt+Y in FT2 mode, supporting multiple levels of history for iterative editing. Context menus provide quick access to options upon right-clicking elements, and mouse-based X-Y scrolling in the view, added in version 1.00, aids efficient navigation in larger modules.

Development and History

Origins and Core Engine

MilkyTracker's foundational engine, MilkyPlay, began development in the mid-1990s as a dedicated player for .MDL files produced by the tracker Digitrakker. This early iteration focused on accurate module replay, establishing a robust audio rendering core independent of existing libraries. Initially crafted as a standalone tool, MilkyPlay addressed the technical challenges of emulating period-accurate sound reproduction for legacy formats during an era when tracker software was still tied to aging hardware ecosystems. By the mid-2000s, approximately a decade after MilkyPlay's inception, the project expanded into a comprehensive editor under the name MilkyTracker, with initial implementation targeting the platform. This evolution transformed the replay engine into a full creative suite, closely emulating the interface, workflow, and playback characteristics of FastTracker II—a seminal DOS-based tracker from the 1990s—while incorporating specialized modes for Amiga 2/3 compatibility. The core motivation was to enable module composition and editing on , bridging the gap left by the declining viability of original DOS and setups that had defined tracker culture. The project originated as a solo endeavor led by primary developer Peter Barth, known online as pailes, who handled the initial architecture, GUI design via the custom PPUI framework, and cross-platform adaptations. In 2008, MilkyTracker was relicensed under the GNU General Public License (GPL), opening it to broader collaboration and fostering community contributions for enhancements, ports, and maintenance. This shift marked a transition from individual development to an open-source model, aligning with efforts to sustain demoscene-inspired module tracking traditions through accessible, hardware-agnostic tools.

Release Timeline

MilkyTracker's development began with its initial public release in February 2006 as version 0.90.30, introducing core features such as multichannel recording, FastTracker II-style editing modes, and support for IFF sample formats. Subsequent early updates included version 0.90.50 in September 2006, which added support for , GMC, and DBM formats, along with ALSA and audio output and input capabilities. Version 0.90.60 followed in May 2007, incorporating AIFF sample loading, sample equalization tools, waveform generators, and a disk browser for file management. A significant milestone occurred in April 2008 with the release of version 0.90.80, which marked the project's transition to open-source under the version 2, thereby enabling community contributions, ports, and modifications. This version also introduced tabbed module support for up to 32 simultaneous modules, advanced resamplers including cubic Lagrange and sinc variants, and a high-definition audio recorder for rendering song sections to samples. Further refinements came in January 2010 with version 0.90.85, which included bug fixes, LHA and LZX archive support, movable dialog windows, and a license change for the underlying MilkyPlay library to the BSD license to facilitate broader integration. Development experienced periods of inactivity, notably from 2010 to 2013 and 2013 to 2017, attributed to shifts in the primary maintainer's focus on other projects. These gaps were addressed through the migration of the source code repository to in November 2013 with version 0.90.86. This facilitated the major milestone release of version 1.00 in March 2017, establishing stable multi-platform builds via SDL 2 integration, introducing scripting for automation and extensions, and adding features like five new color themes and X-Y axis scrolling in the pattern editor. Subsequent milestone releases built on this foundation. Version 1.01 in July 2017 expanded channel support to 128 and introduced phase, , and sample filters, alongside macOS-specific improvements. Version 1.02 in February 2018 added support for 99-channel MOD files and fixed legacy Lxx loop commands for greater compatibility. Version 1.03 in December 2020 enhanced FastTracker II playback accuracy, implemented a flanger effect, and improved mousewheel navigation in various interfaces. Version 1.04 in July 2023 introduced a non-OpenGL rendering mode and addressed bugs related to memory initialization and pattern loading. The most recent major update, version 1.05 released on November 25, 2024, introduced the beta MilkySynth with FM and CYCLE algorithms, new sample editor effects including flanger, reverb, timestretch, filter, saturator, , and exciter, a pack of XI instruments, along with bug fixes and user interface refinements. As of 2025, MilkyTracker continues under ongoing maintenance through its primary repository and community-driven forks, such as the AmigaPorts variant for legacy platforms, with no plans announced for comprehensive rewrites.

Platform Support

Primary Platforms

MilkyTracker offers native support for Microsoft Windows, operating systems such as and BSD variants, and macOS as its primary platforms. These builds ensure compatibility across a range of hardware architectures while maintaining the application's core functionality for module editing and playback. On Windows, MilkyTracker runs natively from through , providing both 32-bit and 64-bit executables for broad compatibility. It leverages the RtAudio library to support low-latency audio output via and WASAPI drivers, enabling precise real-time playback without significant system overhead. For Unix-like systems including and *BSD, the application is typically cross-compiled using SDL2 for , input handling, and portability, with distribution packages managing dependencies such as libsndfile for sample loading and . This setup allows seamless integration with standard audio subsystems like ALSA on , supporting efficient operation on various desktop environments. macOS builds are provided as universal binaries compatible with both Intel x86_64 and (ARM64) architectures, ensuring performance across modern Macs. Audio integration occurs through , which handles sample-rate switching and low-latency output natively, optimizing playback fidelity without additional configuration. The minimum for these platforms include a CPU of at least 300 MHz for basic operation at 640x480 resolution in 16-bit color mode, with 128 MB of RAM recommended for smooth performance; graphics rendering relies on 2.0 support via SDL2, but no dedicated GPU acceleration is necessary as the interface uses lightweight 2D rendering.

Ports and Builds

MilkyTracker is designed with platform independence in mind, utilizing software rendering and cross-platform libraries like SDL to facilitate builds and ports across various operating systems. The core codebase is written in C++ and is available under the GPL license, enabling community contributions for compilation on diverse hardware. Official binaries are provided primarily for desktop environments, while allows for custom builds on other systems. For Windows, precompiled executables are released on the project's page, supporting x86_64 architectures with integrated audio and graphics handling via SDL2. These builds include full feature support for module editing and playback, and users can download the latest versions directly without compilation. macOS binaries are similarly available for both x86_64 and arm64 () processors, though installation may require bypassing restrictions using commands like xattr -d com.apple.quarantine on the downloaded file to ensure compatibility with macOS security features. Linux users benefit from an official distribution for x86_64 systems, which provides a portable, dependency-free execution environment and is hosted on the MilkyTracker website. Additionally, the application is packaged for numerous distributions, including (via the official repositories with version 1.05.01 as of December 2024), (version 1.04.00), and Debian-based systems through on Flathub, ensuring easy installation via package managers like pacman or . For ARM-based devices like , a dedicated build script (build_rpi.sh) is included in the repository to compile from source, supporting models such as the with SDL2 backend for audio output. Beyond standard desktop platforms, community ports extend MilkyTracker's reach to niche operating systems. On , a port compiled with GCC 11.3.0 and SDL2 is available through OS4Depot, with the latest release candidate (version 1.05 RC1) distributed in December 2024 by developer Capehill, maintaining compatibility with legacy hardware while preserving the tracker's interface and effects engine. Similar efforts have produced builds for and AROS, leveraging the shared heritage for module replay. , a BeOS-inspired OS, features a native port integrated into its package system, allowing seamless operation on compatible hardware. BSD variants also host official ports: includes MilkyTracker in its ports collection (audio/milkytracker), buildable with standard tools for x86_64 and other architectures, while maintains a similar port focused on stability and security hardening. , an experimental OS, provides a port via its ports system, compiled to run natively with the project's software rendering for graphics and audio. For embedded and gaming platforms, a port developed by the retronx-team uses libnx and is available on , enabling module creation on the handheld console with touchscreen adaptations for the user interface. These ports demonstrate the project's portability, though they may vary in feature completeness depending on the underlying SDL implementation and hardware constraints.

References

Add your contribution
Related Hubs
User Avatar
No comments yet.