All Projects → allthemusicllc → Atm Cli

allthemusicllc / Atm Cli

Licence: other
Command line tool for generating and working with MIDI files.

Programming Languages

rust
11053 projects

Projects that are alternatives of or similar to Atm Cli

Libatm
Library for generating and working with MIDI files
Stars: ✭ 171 (-86.15%)
Mutual labels:  public-domain, music, midi
Lmms
Cross-platform music production software
Stars: ✭ 5,450 (+341.3%)
Mutual labels:  music, midi
Romplayer
AudioKit Sample Player (ROM Player) - EXS24, Sound Font, Wave Player
Stars: ✭ 445 (-63.97%)
Mutual labels:  music, midi
Giada
Your Hardcore Loop Machine.
Stars: ✭ 903 (-26.88%)
Mutual labels:  music, midi
Awesome Music Production
A curated list of software, services and resources to create and distribute music.
Stars: ✭ 340 (-72.47%)
Mutual labels:  music, midi
Midiwriterjs
♬ A JavaScript library which provides an API for programmatically generating and creating expressive multi-track MIDI files and JSON objects.
Stars: ✭ 381 (-69.15%)
Mutual labels:  music, midi
Zrythm
a highly automated and intuitive digital audio workstation - official mirror
Stars: ✭ 703 (-43.08%)
Mutual labels:  music, midi
Musictheory
🎵 Music theory concepts in Go.
Stars: ✭ 53 (-95.71%)
Mutual labels:  music, midi
Sfz2bitwig
Convert .SFZ files into Bitwig Studio multisample instruments.
Stars: ✭ 37 (-97%)
Mutual labels:  music, midi
Midiflip
🎹 MIDI music mayhem - flip, transpose, and arbitrarily remap pitches in MIDI files
Stars: ✭ 33 (-97.33%)
Mutual labels:  music, midi
Scribbletune
Create music with JavaScript
Stars: ✭ 3,509 (+184.13%)
Mutual labels:  music, midi
Abcjs
javascript for rendering abc music notation
Stars: ✭ 1,141 (-7.61%)
Mutual labels:  music, midi
Clubber
Application of music theory in audio reactive visualizations
Stars: ✭ 325 (-73.68%)
Mutual labels:  music, midi
Bitmidi.com
🎹 Listen to free MIDI songs, download the best MIDI files, and share the best MIDIs on the web
Stars: ✭ 422 (-65.83%)
Mutual labels:  music, midi
Eternal
👾~ music, eternal ~ 👾
Stars: ✭ 323 (-73.85%)
Mutual labels:  music, midi
Webaudiofont
Use full GM set of musical instruments to play MIDI and single sounds or effects. Support for reverberation and equaliser. No plugins, no Flash. Pure HTML5 implementation compatible with desktop and mobile browser. See live examples.
Stars: ✭ 600 (-51.42%)
Mutual labels:  music, midi
Midimonster
Multi-protocol control & translation software (ArtNet, MIDI, OSC, sACN, ...)
Stars: ✭ 241 (-80.49%)
Mutual labels:  music, midi
Usb Midi Driver
USB MIDI Driver for Android 3.1 or later
Stars: ✭ 244 (-80.24%)
Mutual labels:  music, midi
Intellij Music
Play fancy music based on your keyboard activity in IDE
Stars: ✭ 28 (-97.73%)
Mutual labels:  music, midi
Midichlorian
A Visual Studio extension that allows you to write code and automate the IDE using MIDI musical instruments.
Stars: ✭ 65 (-94.74%)
Mutual labels:  music, midi

Tools for Generating and Working with MIDI Files

Overview

atm-cli is a command line tool for generating and working with MIDI files. It was purpose-built for All the Music, LLC to assist in its mission to enable musicians to make all of their music without the fear of frivolous copyright lawsuits. All code is freely available under the Creative Commons Attribution 4.0 International License. If you're looking for a Rust library to generate and work with MIDI files, check out the libatm project, on which this tool relies. For more information on All the Music, check out allthemusic.info. For more detailed information about the code, check out the crate documentation here.

Choice of License

All datasets generated by All the Music, LLC have been released in the public domain, which means they are free for anyone to use for any purpose without restriction under copyright law. However, if we released the code into the public domain under CC0, we would have no control over entities using it with malicious intent. CC BY 4.0 allows us to assert that no one can place additional restrictions on derivative works, while still allowing anyone to:

  • copy and redistribute the code in any medium or format
  • remix, transform, and build upon the code for any purpose, even commercially

Installation

atm-cli is written in Rust, and thus requires the Rust toolchain to compile. Follow the instructions at https://www.rust-lang.org/tools/install to install the toolchain. Once that is complete, clone the repo and compile the tool:

$ git clone https://github.com/allthemusicllc/atm-cli.git
$ cd atm-cli
$ git submodule update --init
$ cargo build --release
$ cargo run --release -- -h # show usage

Getting Started

To generate a single MIDI file from a melody, use the gen single directive:

atm gen single 'C:4,D:4,E:4,F:4,G:4,A:4,B:4,C:5' test.mid

To brute-force generate a range of melodies from a set of notes and with a given length, use one of the gen * directive. The example below will output the melodies to a Gzip-compressed Tar file, with a directory structure that guarantees no more than 4,096 files per directory.

atm gen tar-gz -p 2 'C:4,D:4,E:4,F:4,G:4,A:4,B:4,C:5' 8 C4_D4_E4_F4_G4_A4_B4_C5.tar

After generating a range of melodies with one of the gen * directives (beside gen single), use the partition directive to determine which directory a particular melody was written to.

atm partition -p 2 'C:4,C:4,C:4,C:4,C:4,C:4,C:4,C:5'

You can download existing datasets generated by All the Music, LLC from:

https://archive.org/download/allthemusicllc-datasets

Usage

atm 0.3.0
All The Music, LLC
Tools for generating and working with MIDI files. This app was created as part of an effort to generate by brute-force
billions of melodies, and is tailored for that use case

USAGE:
    atm <SUBCOMMAND>

FLAGS:
    -h, --help       Prints help information
    -V, --version    Prints version information

SUBCOMMANDS:
    estimate     Estimate output size of storage backends to help make informed decisions about which to use
    gen          Generate melodies (MIDI files) and store them in a file/files
    help         Prints this message or the help of the given subcommand(s)
    partition    Generate the partition(s) for a MIDI pitch sequence within a partitioning scheme. If no partition
                 depth is provided, will default to a depth of 1
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].