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.
| 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) |
| 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 |
- 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.
- 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.
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).
| 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. |
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 |
| Shortcut | Action |
|---|---|
| delete | Clears the selected entries |
| shift + delete | Clears the entries |
| ctrl/⌘ + S | Save Configuration |
| short | long | Description |
|---|---|---|
-h |
--help |
Prints help information |
-V |
--version |
prints app version |
-i |
--info |
Prints build information |
-m |
--manual |
Prints manual |
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/xmoditsAlternatively, you can download different versions from: https://github.com/B0ney/xmodits/tags
Compile:
cd xmodits
cargo build --releaseNOTE: Older versions will have slightly different build instructions. Additionally, versions below v0.9.8 are CLI only.
| 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| Target | Features |
|---|---|
| Windows | audio, built, iced_gif,manual |
| MacOS | audio, built, iced_gif,manual, wgpu |
| Linux | audio, built, iced_gif,manual, jemalloc |
Unless noted otherwise, XMODITS is licensed under the GPLv3, see license for more detail.
| 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 |
- 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



