atm
Generate and work with MIDI melody files
TLDR
SYNOPSIS
atm *subcommand* [*options*] [*args*]
DESCRIPTION
atm (atm-cli) is a command-line tool for generating and working with MIDI files. It was built for All the Music, LLC to help generate large sets of melodies (including brute-force ranges) and to organize output across partitioned storage backends. It uses the libatm Rust library.Subcommands:- gen – generate melodies (single file or bulk backends such as tar/gzip layouts)- partition – map a pitch sequence to its partition path for a given scheme- estimate – estimate output size of storage backendsPitch sequences use note:octave tokens separated by commas (for example C:4,D:4,E:4).Build from source: clone the repo, git submodule update --init, then cargo build --release. Run cargo run --release -- -h for usage without installing.
PARAMETERS
gen single *melody* *outfile*
Write one MIDI file for the given pitch sequence.gen *backend* ...
Bulk generation into tar, tar-gz, or other backends documented by atm gen --help. -p sets partition depth (limits files per directory).partition [-p *depth*] *melody*
Print which partition directory holds the melody (default depth 1).estimate
Help choose storage backends by estimating output size.-h, --help / -V, --version
Help and version.
CAVEATS
Tailored for bulk melody generation, not a general DAW or multi-track MIDI editor. Compiling needs a Rust toolchain and submodules. Output volume for long sequences grows factorially; use estimate and partitioned backends carefully. License is CC BY 4.0 (not public domain), unlike some ATM datasets.
SEE ALSO
timidity(1), fluidsynth(1), sox(1)
