package mkaudio

  1. Overview
  2. Docs
CLI program for generating audio files


Dune Dependency






Generate noise, basic waveforms and synthesized drum loops with configurable durations, tempos and sample rates.

Published: 13 Apr 2023



CLI program for generating audio files

Supported commands:

  • saw, sine, square, triangle

Generate a waveform with a specified duration and frequency. Duration can be specified in hours, minutes or seconds, or as a number of beats and a tempo in BPM. For example:

Generate 5 seconds of saw wave:

mkaudio saw --frequency 440 --duration 5s sound.wav

Generate a sine wave lasting 4 beats at 120bpm (i.e. 2 seconds):

mkaudio sine --frequency 440 --beats 4 --tempo 120 sound.wav

Generate a square wave lasting half a minute:

mkaudio square --frequency 440 --duration 0.5m sound.wav
  • white-noise

Duration is specified in the same way as for waveforms, e.g. to generate 10 seconds of white noise:

mkaudio white-noise --duration 10s sound.wav
  • beat

Generate a simple beat from kick, snare and hi-hat patterns. Patterns are specified as strings; each character which is 1 or x corresponds to a drum hit; any other character corresponds to a lack of drum hit. Each character represents one sixteenth note at the specified tempo. The --repeats parameter allows generation of longer beats without typing in long repetitive patterns.

8 beats of eighth note hihats:

mkaudio beat --hihat 10 --repeats 16 --tempo 120 sound.wav

A simple syncopated beat lasting 4 beats:

mkaudio beat \
    --kick 1001000100100000 \
    --snare 0000100000001000 \
    --hihat 1111111111111111 \
    --tempo 120 sound.wav

For more information, and all optional parameters, see mkaudio --help and mkaudio <command> --help.

Dependencies (5)

  1. result
  2. mm >= "0.8.0"
  3. cmdliner >= "1.1.0"
  4. dune >= "2.0"
  5. ocaml >= "4.03.0"

Dev Dependencies (1)

  1. ounit with-test

Used by





Innovation. Community. Security.