Xmodits
A tool to rip samples from tracker modules. Supports IT, XM, S3M, MOD, UMX and MPTM formats.
Install / Use
/learn @B0ney/XmoditsREADME
XMODITS
A tool to bulk extract samples from various tracker modules with ease.
</div> <div align="center"> </div> <div align="center"> <a href="https://github.com/iced-rs/iced"> <img src="https://gist.githubusercontent.com/hecrj/ad7ecd38f6e47ff3688a38c79fd108f0/raw/74384875ecbad02ae2a926425e9bcafd0695bade/color.svg" width="130px"> </a> </div>Download
You can download builds for xmodits here.
If you wish to build from source, go to building.
If you prefer to use a minimal version of this tool, a command line version of xmodits can be found here. Additionally, the command line version has more supported architectures.
Supported Tracker Module Formats
| Extension | Format |
| - | - |
| .it | Impulse Tracker |
| .xm | Extended Module |
| .s3m | Scream Tracker 3 |
| .mod | Amiga Protracker |
| .mptm | ModPlug Tracker module |
Supported Containers
| Extension | Description |
| --- | --- |
| .umx | Unreal Music Package|
| N/A | Protracker 3.6 project file |
Supported Exports
| Extension | Format |
|-|-|
|.wav| Microsoft Wave|
|.aiff| Audio Interchange File Format |
|.its| Impulse Tracker 2 sample |
|.s3i| Scream Tracker 3 Instrument |
|.8svx| 8-Bit Sampled Voice |
|.raw| Headerless pcm |
Features
- A robust naming system for extracted samples (see Sample Naming).
- Can export samples to less common audio formats used by music trackers:
.its,.s3i&.8svx - Can show information about a module.
- A sample previewer.
- Multithreaded ripping* for better efficiency.
- Cute animated fox to make ripping less tedious.
* xmodits will only use threads if it is ripping from a directory.
Screenshots


Click here for different themes
</details>How to Use
- Open application
- Drag and drop a module, and or a folder full of modules.
- (Optional) Press "Open" to set the destination folder. Your downloads folder is the default.
- Press "Start"
- Press "Show Folder" to see the results.
(Windows Only) If you just want to simply extract samples, you can also drag and drop a module(s) onto the binary. XMODITS will (by default) place the samples in a self contained folder in your ~/Downloads folder.
Sample Naming
Configure how ripped samples are named.
|Parameter| Description|
|--|--|
| Index Only | Samples will only be named with an index. |
| Preserve Index | Sample index will match how it is represented internally. |
| Prefix Samples | Samples will be prefixed with the tracker's filename. |
| Upper Case | Samples will be named in upper case.|
| Lower Case | Samples will be named in lower case.|
| Prefer Filename | Some samples have an additional filename. If present, xmodits will name samples with that. |
| Index Padding | Set the minimum amount of digits an index must have. Indexes will be padded with zeros to match the minimum amount of digits*. Set to 1 to disable padding.|
* xmodits may override this value to ensure that samples are named consistently (unless it is set to 1).
Ripping Configuration
|Parameter| Description|
|--|--|
| Self Contained | XMODITS will put samples in a self contained folder.|
| Export Format | Samples can be saved to the following formats: [ wav, aiff, 8svx, its, s3i, raw ]|
| Folder Scan Depth | Limit how far a folder can be traversed. |
| Worker Threads | Set how many threads can be used to rip samples in parallel.|
Saving Configuration
Any changes made to the configuration must be saved manually.<br>The configuration file can be located at:
|OS|Path|
|-|-|
|Windows|%appdata%\xmodits\config.toml|
|Linux|~/.config/xmodits/config.toml|
|MacOs|~/Library/Application Support/xmodits/config.toml|
Keyboard Shortcuts
|Shortcut| Action| |-|-| |<kbd>delete</kbd>| Clears the selected entries| |<kbd>shift</kbd> + <kbd>delete</kbd>| Clears the entries| |<kbd>ctrl</kbd>/<kbd>⌘</kbd> + <kbd>S</kbd>| Save Configuration|
Command Line Arguments
|short|long|Description|
|-|-|-|
|-h| --help | Prints help information |
|-V| --version | prints app version |
|-i| --info | Prints build information |
|-m| --manual| Prints manual |
Building
Requirements:
- Rust compiler: https://www.rust-lang.org/tools/install
- Minimum rust version:
1.75 - A decent computer if you don't want to wait a while:
- At least 4 cores,
- At least 8GB of RAM
(Linux) Dependencies:
fontconfiglibasound2-dev(If building withaudiofeature)
Clone the source code (latest):
git clone https://github.com/B0ney/xmodits
Alternatively, you can download different versions from: https://github.com/B0ney/xmodits/tags
Compile:
cd xmodits
cargo build --release
NOTE: Older versions will have slightly different build instructions. Additionally, versions below v0.9.8 are CLI only.
Build Flags
|Feature | Description | Enabled by Default? |
|-|-|-|
|audio|Add audio playback, used to preview samples.|yes|
|built|Includes metadata about the binary and the environment it was compiled in. Useful for bug reporting.|yes|
|jemalloc| (*nix only) Use the jemalloc memory allocator. Used to mitigate memory fragmentation which can improve memory footprint. |no|
|wgpu| Enables hardware acceleration (DX12/Vulkan/Metal). |no|
|iced_gif| Include animated GIF | YES|
|manual| Bundle a simplified readme in the application | yes|
For example, to compile XMODITS with jemalloc and wgpu:
cargo build --release --features="jemalloc","wgpu"
Compile XMODITS with default features disabled:
cargo build --release --no-default-features
Build flags used in official releases:
|Target|Features|
|-|-|
|Windows|audio, built, iced_gif,manual|
|MacOS|audio, built, iced_gif,manual, wgpu|
|Linux|audio, built, iced_gif,manual, jemalloc|
License
XMODITS is licensed under the GPLv3, see license for more detail.
Other xmodits projects
|Program| License|Description| |--|--|--| |XMODITS-CLI | LGPLv3 | xmodits cli app| |XMODITS-PY | LGPLv3 | xmodits Python library. PyPi link <br> (Mainly used for DawVert)<br> | |XMODITS-LIB | MPLv2 | xmodits core library|
Special Thanks
- The GUI was made with Iced
- 0x192 (and contributors) for their Universal Android Debloat tool. I've learned a lot of gui stuff from that project.
- SatyrDiamond's DawVert, A program to convert different daw project files to other formats.
- The animated fox gif was obtained from: https://github.com/tonybaloney/vscode-pets
- Halloy
Related Skills
himalaya
353.3kCLI to manage emails via IMAP/SMTP. Use `himalaya` to list, read, write, reply, forward, search, and organize emails from the terminal. Supports multiple accounts and message composition with MML (MIME Meta Language).
taskflow
353.3kname: taskflow description: Use when work should span one or more detached tasks but still behave like one job with a single owner context. TaskFlow is the durable flow substrate under authoring layer
coding-agent
353.3kDelegate coding tasks to Codex, Claude Code, or Pi agents via background process
tavily
353.3kTavily web search, content extraction, and research tools.
