WIP MIDI (or MOD) to ATMLib tool

(Jay Garcia) #1

Hi community. I wanted to share the progress on a tool that I’ve been working on to see if I could gather any feedback on the vision:

I’ve fallen in love with ATMLib and believe that it can be the new standard for playing music on the platform, but I don’t want to divorce myself from my current workflow, which is to work in a DAW -> Export to MIDI and then (ideally) play on the device using a tool.

Because I’m so damn lazy, I’ve created a tool to do just that, but I think the possibilities extend far beyond.

To make this idea come to life, I’ve harnessed the power of LibOpenMPT (Open ModPlug Tracker library) to ingest the MIDI data, which internally converts it to MOD format. The note data is output to JSON and that JSON is read by a Node CLI script and converts it to ATMLib JSON and you can then load that into the web tracker/editor to play your music.

Here’s a quick demo:

There is a ton to do still:


  • Generates header file automatically
  • Work hard to optimize the music. (Some “patterns” repeat – let’s reuse those!!)
  • Load the entire suite of tools into a github-hosted page that allows you to Drag and drop your MIDI file and it exports ATMLib JSON or ATMLib header data.


  • Read MOD format (using a specific template track) and allow you to go from MOD -> ATMLib. This means that you could generate music using a Tracker and as long as you conform to the spec (only using effects that are supported), you don’t need an expensive DAW application.
  • Requires a complete review of the MOD spec and mapping to effects, etc.

Would love to hear thoughts from you folks. :slight_smile:

(Pharap) #2

¯\_(ツ)_/¯ Laziness is a virtue.

Maybe I should have raised my warning issue on your fork since it’s more active at the moment?

(Jay Garcia) #3

Thanks @pharap. I’ve cross-referenced the issue in our fork. =)

We’re got some things lined up that will make the library a little different but hopefully better:

  • Lower CPU Overhead
  • Other features we’re still hashing out.
    more to come :wink:

(Pharap) #4

If I knew more about sound (my one weakness!) I’d offer to help.
(It’s probably a good thing I don’t, I’m trying to do too much as it is.)

(Jay Garcia) #5

That’s quite alright. We have a good roadmap and team to see this through =)

(Stephane C) #6

Any update on this @JayGarcia ? We are working on a project that may use ATMLib, so any tool to make it easier are welcome. i did play a little on the ATMLib sequencer on Team-ARG website but it’s still not that easy for me to work with.


I would also like to see this published. Can you please upload it somewhere?