xmodits
xmodits copied to clipboard
A tool to rip samples from tracker modules. Supports IT, XM, S3M, MOD, UMX and MPTM formats.

XMODITS
A tool to bulk extract samples from various tracker modules with ease.
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 Formats
Extension | Format |
---|---|
.it |
Impulse Tracker |
.xm |
Extended Module |
.s3m |
Scream Tracker 3 |
.mod |
Amiga Pro Tracker |
.mptm |
ModPlug Tracker module |
.umx |
Unreal Music Package (Containing above) |
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 to show more
Click here for different themes
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.
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 |
---|---|
delete | Clears the selected entries |
shift + delete | Clears the entries |
ctrl/⌘ + S | 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:
-
fontconfig
-
libasound2-dev
(If building withaudio
feature)
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 (Mainly used for DawVert) |
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