a programming language as an infrastructure for sound and music
mimium(MInimal-Musical-medIUM) is a domain specific programming language for describing/generating sound and music.
With this language, you can write a low-level audio processing with an easy expression and high-performance powered by LLVM.
fn lpf(input:float,fb:float){
return (1-fb)*input + fb*self
}
A special keyword self
can be used in function, which is a last return value of the function.
This enables an easy and clean expression of feedback connection of signal chain, inspired by Faust.
you can also write a note-level processing by using a temporal recursion, inspired by Extempore.
fn noteloop()->void{
freq = (freq+1200)%4000
noteloop()@(now + 48000)
}
Calling function with @
specifies the time when the function will be executed.
An event scheduling for this mechanism is driven by a clock from an audio driver thus have a sample-accuracy.
You can download a built binary from release section.
mimium can run on macOS(x86), Linux(ALSA backend), Windows(WASAPI backend). WebAssemby backend will be supported for future.
On macOS and Linux, installation via Homebrew is recommended.
Open your terminal application and type
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)"
to install homebrew itself. After installation, you can install with the commands below.
brew tap mimium-org/mimium
brew install mimium
See also GitHub Action Workflow.
- cmake
- bison >= 3.3
- flex
- llvm 9 ~ 11
- Libsndfile
- RtAudio(cmake will automatically download)
git clone https://github.com/mimium-org/mimium
cd mimium
mkdir build && cd build
# configure. if you want to install to specific directory, add -DCMAKE_INSTALL_PREFIX=/your/directory
cmake ..
# build
cmake --build . --target default_build -j
#install
cmake --build . --target install
At Ubuntu 18.04(Bionic), bison from apt is version 3.0.4, which will not work. Please install latest version manually.
Tomoya Matsuura/松浦知也
The source code is lisenced under Mozilla Puclic License 2.0.
The source code uses some third party libraries with BSD-like lincenses, see COPYRIGHT.
This project is supported by 2019 Exploratory IT Human Resources Project (The MITOU Program) by IPA: INFORMATION-TECHNOLOGY PROMOTION AGENCY, Japan.