Skip to main content

XMODITS python library

Supported formats:

  • Impulse Tracker .IT
  • Extended Module .XM
  • Scream Tracker .S3M
  • Amiga Pro Tracker .MOD
  • Open ModPlug Tracker .MPTM (Identical to Impulse Tracker sample-wise)
  • Unreal Music Container .UMX (Containing the above formats)

How to use

import xmodits

file = "~/Downloads/music.xm"
folder = "~/Music/samples/"

# Rip samples to folder
xmodits.dump(file, folder)

Required Arguments

Argument Meaning
Path Path to a tracker module
Destination Destination folder for ripped samples

Additional Arguments

Argument Definition
with_folder Create a new folder for ripped samples.
e.g. When set to True, "drums.it" will create "drums_it" in the destination folder and place those samples there.
index_padding Set padding.
e.g. "01 - kick.wav" --> "1 - kick.wav"
index_only Only name samples with a number.
e.g. "09 - HiHat.wav" --> "09.wav"
index_raw Preserves the internal sample indexing
upper Name samples in upper case
lower Name samples in lower case
strict Enabled by default.
Will reject files that don't match the following file extensions:
[it, xm, s3m, mod, umx, mptm]

Exceptions

They are pretty much self explanitory.

Exception Meaning
SampleExtraction A sample could not be extracted
PartialExtraction Not all of the samples could be extracted
TotalExtraction None of the samples could be extracted
UnsupportedFormat A module format was recognized, but its type is not supported
InvalidModule The file is not a valid tracker module
EmptyModule The tracker module is valid but it has no samples
UnrecognizedFileExtension The file extension was not recognized
NoFormatFound Could not determine a valid format

Additional Examples

Dump samples without names

import xmodits

tracker = "mods/music.xm"
folder  = "samples/"

xmodits.dump(
    tracker,
    folder,

    index_only=True 
)

This produces the following output in folder "samples":

01.wav
02.wav
03.wav
04.wav
...
15 - vocal.wav

Dump samples without padding the index:

import xmodits

tracker = "mods/music.xm"
folder  = "samples/"

xmodits.dump(
    tracker,
    folder,
    index_padding=0 # or 1, both have the same effect
)

Output:

1 - hihat.wav
2 - kick.wav
3 - snare.wav
4 - toms.wav
...
15 - vocal.wav

Samples stored in tracker modules can have an arbitary index. If you prefer to use this index, include the parameter:

index_raw=True

If you're dumping from multiple modules to the same folder, you're guaranteed to have collisions.

You should include the parameter:

with_folder=True

development:

https://docs.python.org/3/library/venv.html

Create a python virtual environment in this directory:

python -m venv dev

activate virtual environment:

source ./dev/bin/activate

install maturin (crates.io) or from pipi

run test library:

maturin develop

License

The xmodits python library is licensed under the LGPLv3

Release files for xmodits-py 0.2.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for xmodits-py 0.2.1
File Size Uploaded
xmodits_py-0.2.1.tar.gz 24.1 kB Details

Built distributions (wheels)

Table of built distributions (wheels) for xmodits-py 0.2.1
File
xmodits_py-0.2.1-cp37-abi3-win_amd64.whl CPython 3.7 abi3 Windows x86-64 Details
xmodits_py-0.2.1-cp37-abi3-win32.whl CPython 3.7 abi3 Windows x86-32 Details
xmodits_py-0.2.1-cp37-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.7 abi3 Linux glibc 2.17+ x86-64 Details
xmodits_py-0.2.1-cp37-abi3-manylinux_2_17_armv7l.manylinux2014_armv7l.whl CPython 3.7 abi3 Linux glibc 2.17+ ARMv7l Details
xmodits_py-0.2.1-cp37-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl CPython 3.7 abi3 Linux glibc 2.17+ ARM64 Details
xmodits_py-0.2.1-cp37-abi3-manylinux_2_5_i686.manylinux1_i686.whl CPython 3.7 abi3 Linux glibc 2.5+ x86-32 Details
xmodits_py-0.2.1-cp37-abi3-macosx_11_0_arm64.whl CPython 3.7 abi3 macOS 11.0+ ARM64 Details
xmodits_py-0.2.1-cp37-abi3-macosx_10_7_x86_64.whl CPython 3.7 abi3 macOS 10.7+ x86-64 Details

Total release size: 1.6 MB

Release files / xmodits_py-0.2.1.tar.gz

Download URL xmodits_py-0.2.1.tar.gz
Size 24.1 kB
Tags Source
SHA-256 checksum
How to use checksums
5b603dc46d8aaa094ee731ac1e0ae84c6b5fba75c4a56bc99b1e1a3ec9fc63b4
BLAKE2b-256 checksum
How to use checksums
99089b86b669c425af5a1958afe47a92b9a098eb5fd5472bfef3b81cf7cc2785
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/0.14.16

Release files / xmodits_py-0.2.1-cp37-abi3-win_amd64.whl

Download URL xmodits_py-0.2.1-cp37-abi3-win_amd64.whl
Size 158.4 kB
Tags CPython 3.7 Windows x86-64 abi3
SHA-256 checksum
How to use checksums
18cb931908a3945e80917a2b380e5fee0b861af475cd35c0f8df07dcc0275395
BLAKE2b-256 checksum
How to use checksums
b533e6d840b8cb8349c1099d9bbb2868f92965bbffd5baeea8e0662b42c6d8fb
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/0.14.16

Release files / xmodits_py-0.2.1-cp37-abi3-win32.whl

Download URL xmodits_py-0.2.1-cp37-abi3-win32.whl
Size 155.0 kB
Tags CPython 3.7 Windows x86-32 abi3
SHA-256 checksum
How to use checksums
2561092042156aece703b432db8569de981ec7e5e19fb0b02fbc62d31728c08d
BLAKE2b-256 checksum
How to use checksums
e429f1dc9ba088ed02b1453b809d5cc99493d26478db2061e70ab06a0d703888
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/0.14.16

Release files / xmodits_py-0.2.1-cp37-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL xmodits_py-0.2.1-cp37-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 216.6 kB
Tags CPython 3.7 Linux glibc 2.17+ x86-64 abi3
SHA-256 checksum
How to use checksums
e9112ade28f07bd4d8e2c6e693613623bcce7539a0849ad814afd0616a0922c2
BLAKE2b-256 checksum
How to use checksums
8ba513d171511b0612c034797fcdd4d6ec91fe50503edd1f2327452a2e74541c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/0.14.16

Release files / xmodits_py-0.2.1-cp37-abi3-manylinux_2_17_armv7l.manylinux2014_armv7l.whl

Download URL xmodits_py-0.2.1-cp37-abi3-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
Size 211.7 kB
Tags CPython 3.7 Linux glibc 2.17+ ARMv7l abi3
SHA-256 checksum
How to use checksums
b0b10a7116dac9b2b2499e2f82c04424be23b97f411dae8786e8774f6e0dc9dc
BLAKE2b-256 checksum
How to use checksums
513ec8e41acf114ad48e863ad1f3c0191177ccddc81beef810cf7d2333d99f1b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/0.14.16

Release files / xmodits_py-0.2.1-cp37-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl

Download URL xmodits_py-0.2.1-cp37-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Size 204.7 kB
Tags CPython 3.7 Linux glibc 2.17+ ARM64 abi3
SHA-256 checksum
How to use checksums
aa64330921497537cc6c62054488561de7fb010af9be650e868a0f7258e37c90
BLAKE2b-256 checksum
How to use checksums
92691e65527e8a3c7b9f2c271c4dadec3bf633884a064a83591b3d6c36d7cf7d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/0.14.16

Release files / xmodits_py-0.2.1-cp37-abi3-manylinux_2_5_i686.manylinux1_i686.whl

Download URL xmodits_py-0.2.1-cp37-abi3-manylinux_2_5_i686.manylinux1_i686.whl
Size 231.6 kB
Tags CPython 3.7 Linux glibc 2.5+ x86-32 abi3
SHA-256 checksum
How to use checksums
5380d5f605f7c32188bfe92d3d44ef6bedb1dbe79bccd37a22322c2c2b69f9ff
BLAKE2b-256 checksum
How to use checksums
8b6f8c4b97e1f2c235063e26a96cf1b3c40fec4fc3bd1a9f4f5315f8aeea4170
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/0.14.16

Release files / xmodits_py-0.2.1-cp37-abi3-macosx_11_0_arm64.whl

Download URL xmodits_py-0.2.1-cp37-abi3-macosx_11_0_arm64.whl
Size 199.8 kB
Tags CPython 3.7 abi3 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
aa09f6bb82806fb34874b1034a097f37fedbc31f00e7f25b31e654d08cee8044
BLAKE2b-256 checksum
How to use checksums
eaf956dfb01ab6a26393502d26b99a993c6ca10a9552b30d9c93c7034b57e199
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/0.14.16

Release files / xmodits_py-0.2.1-cp37-abi3-macosx_10_7_x86_64.whl

Download URL xmodits_py-0.2.1-cp37-abi3-macosx_10_7_x86_64.whl
Size 212.9 kB
Tags CPython 3.7 abi3 macOS 10.7+ x86-64
SHA-256 checksum
How to use checksums
4e52b45f77cfed860aae50da8b17e7edeabcbc089a0bcc906028337f8f2d5d5d
BLAKE2b-256 checksum
How to use checksums
1621842a874a8430210f789f8ad8fafb19e34e2c0950a4cc6934e4a1d5d3397a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/0.14.16

Release history Release notifications | RSS feed

0.3.5

9 release files

0.3.4

9 release files

0.3.2

9 release files

0.3.1

9 release files

0.3.0

9 release files

0.2.4

9 release files

0.2.3

9 release files

0.2.2

9 release files

This release

0.2.1 This release

9 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page