mida: Language for algorithmic generation of MIDI files

[ deprecated, gpl, language, library, program ] [ Propose Tags ]
Deprecated

MIDA is a minimalistic language for algorithmic generation of MIDI files. MIDA is not interactive in sense that you cannot control result of its activity in real time, it is intended for producers and should be used with a DAW. MIDA can help you create variative elements in your music in a very simple way. Since MIDI can control a lot of different instruments, power of MIDA is truly great. Main reason for MIDA development is to create software tool that can be used in such a way that does not change established workflow, so people could use familiar plugins and software instruments. The core concept of MIDA is building systems with complex behaviors from very basic and easy-to-understand elements and powerful means of their composition. Currently MIDA can be used to translate source files into .mid files, and also in interactive mode that will help you to understand how MIDA language works. See MIDA Manual for more information.


[Skip to Readme]

Downloads

Maintainer's Corner

Package maintainers

For package maintainers and hackage trustees

Candidates

  • No Candidates
Versions [RSS] 0.4.3, 0.4.4, 0.4.5, 0.4.6, 1.0.0, 1.0.1, 1.0.2
Change log CHANGELOG.md
Dependencies base (>=4.8 && <5), containers (>=0.5.5.1), directory (>=1.2.1.0), filepath (>=1.3.0.2), haskeline (>=0.7.1.3), HCodecs (>=0.5), megaparsec (>=4 && <5), mida (>=0.4.3), mtl (>=2.1.3.1), optparse-applicative (>=0.11.0.2), process (>=1.2.0.0), random, text (>=1.2.0.4), text-format (>=0.3.1.1), tf-random (>=0.5), transformers (>=0.2.0.0 && <0.5) [details]
License GPL-3.0-only
Copyright Copyright © 2014, 2015 Mark Karpov
Author Mark Karpov
Maintainer Mark Karpov
Category Language
Home page https://github.com/mrkkrp/mida
Source repo head: git clone git://github.com/mrkkrp/mida.git
Uploaded by mrkkrp at 2015-10-16T19:09:56Z
Distributions
Executables mida
Downloads 4372 total (21 in the last 30 days)
Rating (no votes yet) [estimated by Bayesian average]
Your Rating
  • λ
  • λ
  • λ
Status Docs available [build log]
Last success reported on 2015-10-16 [all 1 reports]

Readme for mida-0.4.5

[back to package description]

MIDA

License GPL 3 Hackage Build Status

MIDA is a minimalistic declarative language for algorithmic generation of MIDI files. MIDA is not interactive in sense that you cannot control result of its activity in real time, it is intended for producers and should be used with a DAW. MIDA can help you create variative elements in your music in a very simple way. Since MIDI can control a lot of different instruments, power of MIDA is truly great.

Main reason for MIDA development is to create software tool that can be used in such a way that does not change established workflow, so people could use familiar plugins and software instruments.

Currently MIDA can be used to translate source files into .mid files, and also in interactive mode that will help you to understand how MIDA language works.

MIDA is a member of Linux Audio consortium.

Installation

  1. Install Haskell Platform;

  2. Install Cabal;

  3. Download and untar git repository of MIDA, or clone it:

    $ git clone https://github.com/mrkkrp/mida.git
    
  4. Go to the root directory of the repository and execute:

    $ cabal update
    $ cabal configure
    $ cabal install --only-dependencies
    $ cabal build
    # sh install.sh
    

    or (if you use Stack):

    $ stack build
    
  5. Done (you can use uninstall.sh to uninstall the program).

Alternatively, instead of steps 3–5, you can just:

$ cabal install mida

In this case you will need to add ~/.cabal/bin directory to your PATH:

# in .bashrc or similar
export PATH=$HOME/.cabal/bin:$PATH

Example

Here is a simple example of MIDA program that demonstrates syntax and declarative nature of the language.

#
# Example of MIDA program
# Recommended tempo is 60
#

dur0 = 12 6 6
dur1 = @[dur0]
pch0 = {0 5 7} + [c5 {e5 d5} c6 {f5 g5}]
pch1 = pch0
vel0 = {7..11} * 10
vel1 = vel0

See MIDA Manual for more information.

How to control other things?

If you're into this sort of thing, you may like my another project, called ALGA. It allows to control automation in various DAWs.

License

Copyright © 2014, 2015 Mark Karpov

Distributed under GNU GPL, version 3.