A downloadable tool

Buy Now$15.00 USD or more

A ProTracker module player library for Playdate written 100% in Lua.

Playdate MOD player can play ProTracker .mod modules and its most common 4-channel extended versions.

The library has been completely written from scratch, so don't expect it to be perfect. It still does the job pretty well and a lot of love has been put into it. I also intend to dogfood the player in my own games, so you can expect fixes and improvements over time.

Demo

You can also check out Amigo Tracker to hear the library in action.

What's in the box?

  • Perpetual license (just keep the receipt and you're golden)
  • Minified modplayer.lua module with a LuaLS compatible API
  • HTML documentation

Why not open source?

It's still a fresh library and I want to keep things simple for myself for now. That said, I might include the full source code in later releases for your convenience.

Features

  • Can load 4-channel MODs. Most 1-15 and 1-31 versions are supported.
  • Playback at any refresh rate.
  • Crank mode (playback only advances when you rotate the crank)
  • Load-time resampling.
  • Advanced APIs for displaying information etc.
    • Module metadata
    • Playback information
    • Pattern data

Limitations

  • Due to the lack of direct access to the audio  buffer in Playdate API, low refresh rates will increase the probability of timing errors.
  • Because Playdate Lua API can only load samples from files, the player uses a cache. This increases loading times and takes up some space, but can be mitigated using external samples.
  • Resampling will considerably increase loading times.

Performance

Playdate MOD player is relatively easy on the CPU, but fast songs require 50 fps refresh rate. Experiment with different setups to find the best fit for your project.

The player works best with Garbage Collection turned off. Lua GC is not designed for fast updating apps and will eat up your CPU even if there is nothing to clean.

Here's some example data from my own platformer game*:


*) 50 fps refresh rate, 45 fps game update, GC off.

Effects

Here's an exhaustive list of MOD effects and their support status.

Effect Support Description
0xy yes Arpeggio
1xx yes Portamento up
2xx yes Portamento down
3xx yes Tone portamento
4xy yes Vibrato
5xy yes Volume slide + Tone portamento.
6xy yes Volume slide + Vibrato.
7xy yes Tremolo
8xx yes Set panning
9xx yes Sample offset
Axx yes Volume slide
Bxx yes Position jump
Cxx yes Set volume
Dxx yes Pattern break
E0x -- Set filter
E1x yes Fine portamento up
E2x yes Fine portamento down
E3x -- Glissando control
E4x -- Set vibrato waveform. Not supported, always sine
E5x -- Set finetune. Finetune is not supported
E60 -- Pattern loop start
E6x -- Pattern loop
E7x -- Set tremolo waveform. Not supported, always sine
E8x yes Set panning. 8xx is more accurate version of the same effect
E9x -- Retrigger
EAx yes Fine volume up
EBx yes Fine volume up
ECx yes Note cut
EDx yes Note delay
EEx -- Pattern delay
EFx -- Invert loop
Fxx yes Set speed / tempo

Attribution

License

Playdate MOD player is licensed under a non-exclusive, royalty-free, non-transferrable, irrevocable perpetual license.

Terms and Conditions

Redistribution of Playdate MOD player is permitted provided that the following conditions are met:

  1. The distributor holds a valid license purchased from the copyright holders.
  2. Playdate MOD player is only distributed as a part of another software product.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS “AS IS” AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

Playdate MOD player, Copyright © Outgunned Games 2024. All rights reserved.

Updated 17 days ago
StatusReleased
CategoryTool
AuthorOutgunned Games
Made withPlaydate
TagsAmiga, Music, Playdate

Purchase

Buy Now$15.00 USD or more

In order to download this tool you must purchase it at or above the minimum price of $15 USD. You will get access to the following files:

Playdate MOD player library 1.17 59 kB