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 Protracker |
.mptm |
ModPlug Tracker module |
Extension | Description |
---|---|
.umx |
Unreal Music Package |
N/A | Protracker 3.6 project file |
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:
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.
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 |
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