#player #mod #module #xm

modplay

Convenience abstraction of xmrsplayer

1 unstable release

0.1.0 Jul 19, 2024

#410 in Audio

MIT license

6KB
82 lines

Convenience abstraction of xmrsplayer

This library crate is a convenience abstraction of xmrsplayer with only one goal in mind, to easily play XM files in your application without dealing with its internals.

If your use case requires more features or lower level control you may need to consider using xmrs or xmrsplayer directly.

Features

  • Powered by xmrs and cpal
  • Quickly play your favorite .xm file

Examples:

You can use modplay like this:

use modplay::ModPlay;

let data = std::fs::read("filename.xm").unwrap();
ModPlay::new(&data).run();

It is recommended to run from a separate thread:

use modplay::ModPlay;

std::thread::spawn(|| {
    if let Ok(data) = std::fs::read("filename.xm") {
        ModPlay::new(&data).run();
    }
}).join().unwrap()

If you need to set some options you can use something like this:

use modplay::ModPlay;

let data = std::fs::read("filename.xm").unwrap()
ModPlay::new(&data)
    .set_amplification(0.5)
    .set_loops(2)
    .set_sample_rate(44100.0)
    .run();

Dependencies

~2–30MB
~462K SLoC