{"id":13670904,"url":"https://github.com/mimium-org/mimium","last_synced_at":"2025-04-27T13:33:13.913Z","repository":{"id":53126774,"uuid":"238414646","full_name":"mimium-org/mimium","owner":"mimium-org","description":"*This repository is archived. Now main development repository is mimium-org/mimium-rs .","archived":true,"fork":false,"pushed_at":"2024-12-22T10:14:15.000Z","size":1713,"stargazers_count":274,"open_issues_count":7,"forks_count":9,"subscribers_count":8,"default_branch":"dev","last_synced_at":"2025-04-11T23:27:55.302Z","etag":null,"topics":["audio","compiler","dsl","dsp","music","programming-language","sound"],"latest_commit_sha":null,"homepage":"https://github.com/mimium-org/mimium-rs","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mpl-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/mimium-org.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null},"funding":{"github":"tomoyanonymous","patreon":null,"open_collective":"mimium","ko_fi":null,"tidelift":null,"community_bridge":null,"liberapay":null,"issuehunt":null,"otechie":null,"custom":null}},"created_at":"2020-02-05T09:39:37.000Z","updated_at":"2025-02-07T05:56:57.000Z","dependencies_parsed_at":"2024-01-12T20:04:18.324Z","dependency_job_id":null,"html_url":"https://github.com/mimium-org/mimium","commit_stats":null,"previous_names":[],"tags_count":12,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mimium-org%2Fmimium","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mimium-org%2Fmimium/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mimium-org%2Fmimium/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mimium-org%2Fmimium/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mimium-org","download_url":"https://codeload.github.com/mimium-org/mimium/tar.gz/refs/heads/dev","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":249223276,"owners_count":21232685,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["audio","compiler","dsl","dsp","music","programming-language","sound"],"created_at":"2024-08-02T09:00:52.609Z","updated_at":"2025-04-27T13:33:08.893Z","avatar_url":"https://github.com/mimium-org.png","language":"C++","funding_links":["https://github.com/sponsors/tomoyanonymous","https://opencollective.com/mimium"],"categories":["C++","Music"],"sub_categories":["Programming"],"readme":"# mimium\n\na programming language as an infrastructure for sound and music\n\nstable: [![build status(master)](https://github.com/mimium-org/mimium/workflows/build%20\u0026%20test/badge.svg?branch=master)](https://github.com/mimium-org/mimium/actions) dev: [![build status(dev)](https://github.com/mimium-org/mimium/workflows/build%20\u0026%20test/badge.svg?branch=dev)](https://github.com/mimium-org/mimium/actions) [![Codacy Badge](https://app.codacy.com/project/badge/Grade/a7171f079d2b4439971513b6358c5a35)](https://www.codacy.com/gh/mimium-org/mimium/dashboard?utm_source=github.com\u0026amp;utm_medium=referral\u0026amp;utm_content=mimium-org/mimium\u0026amp;utm_campaign=Badge_Grade)\n\n[![website badge](https://img.shields.io/badge/mimium.org-Website-d6eff7)](https://mimium.org) [![Gitter](https://badges.gitter.im/mimium-dev/community.svg)](https://gitter.im/mimium-dev/community?utm_source=badge\u0026utm_medium=badge\u0026utm_campaign=pr-badge) [![License Badge-MPL2.0](https://img.shields.io/badge/LICENSE-MPLv2.0-blue)](./LICENSE.md)\n\n![mimium_logo_slanted](./mimium_logo_slant.svg)\n\nmimium(*MInimal-Musical-medIUM*) is a programming language for sound and music.\n\nmimium is made to be an infrastructure for distributing music in a form of a source code, not only a tool for musicians and programmers.\n\nIts syntax and semantics are technically inspired from several modern programming languages for sound such as *[Faust](https://faust.grame.fr)* and *[Extempore](https://extemporelang.github.io/)*.\n\nYou can write various expression from low-level signal processing to note-level processing with a simple syntax and high-performance.\nSince all the code is executed with JIT compilation using LLVM which has an equivalent performance as the dsp code written in general purpose languages such as C++.\n\nA minimal example below generates a sinewave of 440Hz.\n\n```rust\n// minimal.mmm\ntwopi = 3.141595*2\nsr = 48000\nfn dsp(){\n    out = sin(now * 440 * twopi / sr)\n    return (out,out)\n}\n```\n\nTo run the code, type `mimium path/minimal.mmm` on your terminal application.\n\nA special keyword `self` can be used in function, which is a last return value of the function.\nThis enables an easy and clean expression of feedback connection of signal chain.\n\n```rust\nfn lpf(input:float,fb:float){    \n    return (1-fb)*input + fb*self\n}\n```\n\nYou can also write a note-level processing by using `@` operator which specifies the time when the function will be executed. Another special keyword `now` can be used for getting current logical time.\nAn event scheduling is sample-accurate because the scheduler is driven by an audio driver.\n\n```rust\nfreq = 440\nfn noteloop()-\u003evoid{\n    freq = (freq+1200)%4000\n    noteloop()@(now + 48000)\n}\n```\n\nMore specific infos about the language are on [mimium Website](https://mimium.org).\n\n## Installation\n\nmimium can be run on macOS(x86), Linux(ALSA backend), Windows(WASAPI backend). WebAssemby backend will be supported for future.\n\nAn easiest way to getting started is to use [Visual Studio Code extension](https://marketplace.visualstudio.com/items?itemName=mimium-org.mimium-language). Search \"mimium\" in extension tab and install it. When you create \u0026 open the file with the file extension `.mmm`, you will be asked to install the latest binary. The extension also contains syntax highlights for `.mmm` files.\n\nOn macOS and Linux, installation via [Homebrew](https://brew.sh/) is recommended.\n\nYou can install mimium with a command as follows.\n\n```sh\nbrew install mimium-org/mimium/mimium\n```\n\nAlso, you can get a built binary from [release](https://github.com/mimium-org/mimium/releases) section.\n## Build from Source\n\nTo build on Windows, you need to use MSYS2. For details, check [GitHub Action Workflow](https://github.com/mimium-org/mimium/blob/dev/.github/workflows/build_and_test.yml) and documentations on official website ([Installation](https://mimium.org/en/docs/users-guide/getting-started/installation/) and [Setting up development environment](https://mimium.org/en/docs/developers-guide/setup-development-environments/)).\n### Installing Dependencies\n\n- cmake\n- bison \u003e= 3.3\n- flex\n- llvm \u003e= 11\n- Libsndfile\n- RtAudio(cmake will automatically download)\n\n#### macOS\n\nInstall [homebrew](https://brew.sh) and XCode Commandline Tools beforehand.\n\n```sh\nbrew install cmake flex bison libsndfile llvm ninja\n```\n\n#### Linux(Ubuntu)\n\n*On Linux(Ubuntu), we recommend to install llvm using an automatic installation script in https://apt.llvm.org/ because `llvm` package in apt does not contain some libs required by `llvm-config --libs`*\n\n```sh\npushd /tmp \u0026\u0026 wget https://apt.llvm.org/llvm.sh \u0026\u0026 chmod +x llvm.sh \u0026\u0026 sudo ./llvm.sh \u0026\u0026 popd\nsudo apt-get install libalsa-ocaml-dev libfl-dev libbison-dev libz-dev libvorbis-dev libsndfile-dev libopus-dev gcc-9 ninja-build\n```\n\n#### Windows(MSYS2,mingw64)\n\nInstall [msys2](https://www.msys2.org/) by following instruction on the website. Launch Mingw64 terminal.\n\n```sh\npacman -Syu git flex bison mingw-w64-x86_64-cmake mingw-w64-x86_64-gcc mingw64/mingw-w64-x86_64-libsndfile mingw64/mingw-w64-x86_64-opus mingw-w64-x86_64-ninja mingw-w64-x86_64-llvm\n```\n\n### Clone Repository, build and install\n\n```sh\ngit clone --recursive https://github.com/mimium-org/mimium\ncd mimium\n# configure. if you want to install to specific directory, add -DCMAKE_INSTALL_PREFIX=/your/directory\ncmake -Bbuild\n# build\ncmake --build build -j\n# install\ncmake --build build --target install\n```\n## Author\n\nTomoya Matsuura/松浦知也\n\n\u003chttps://matsuuratomoya.com/en\u003e\n\n## [License](LICENSE.md)\n\nThe source code is lisenced under [Mozilla Puclic License 2.0](LICENSE.md).\n\nThe source code contains third party libraries with BSD-like lincenses, see [COPYRIGHT](./COPYRIGHT).\n\n## Acknowledgements\n\nThis project is supported by all the contributers, [Sponsors](https://github.com/sponsors/tomoyanonymous), grants and scholarships as follows.\n\n- 2019 Exploratory IT Human Resources Project ([The MITOU Program](https://www.ipa.go.jp/jinzai/mitou/portal_index.html)) by IPA: INFORMATION-TECHNOLOGY PROMOTION AGENCY, Japan.\n- Kakehashi Foundation\n\n### Contributors\n\n\u003c!-- ALL-CONTRIBUTORS-BADGE:START - Do not remove or modify this section --\u003e\n[![All Contributors](https://img.shields.io/badge/all_contributors-8-orange.svg?style=flat-square)](#contributors-)\n\u003c!-- ALL-CONTRIBUTORS-BADGE:END --\u003e \n\n\t\n\u003c!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section --\u003e\n\u003c!-- prettier-ignore-start --\u003e\n\u003c!-- markdownlint-disable --\u003e\n\u003ctable\u003e\n  \u003ctr\u003e\n    \u003ctd align=\"center\"\u003e\u003ca href=\"https://t-sin.github.io\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/4403863?v=4?s=100\" width=\"100px;\" alt=\"\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eShinichi Tanaka\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/mimium-org/mimium/commits?author=t-sin\" title=\"Documentation\"\u003e📖\u003c/a\u003e \u003ca href=\"https://github.com/mimium-org/mimium/commits?author=t-sin\" title=\"Code\"\u003e💻\u003c/a\u003e\u003c/td\u003e\n    \u003ctd align=\"center\"\u003e\u003ca href=\"http://deepdrilledwell.secret.jp/ddw/\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/74606612?v=4?s=100\" width=\"100px;\" alt=\"\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003ekyo\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/mimium-org/mimium/commits?author=syougikakugenn\" title=\"Documentation\"\u003e📖\u003c/a\u003e\u003c/td\u003e\n    \u003ctd align=\"center\"\u003e\u003ca href=\"http://baku89.com\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/2124392?v=4?s=100\" width=\"100px;\" alt=\"\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eBaku 麦\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"#financial-baku89\" title=\"Financial\"\u003e💵\u003c/a\u003e\u003c/td\u003e\n    \u003ctd align=\"center\"\u003e\u003ca href=\"https://github.com/yuichkun\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/14039540?v=4?s=100\" width=\"100px;\" alt=\"\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eYuichi Yogo\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"#financial-yuichkun\" title=\"Financial\"\u003e💵\u003c/a\u003e\u003c/td\u003e\n    \u003ctd align=\"center\"\u003e\u003ca href=\"http://ayumu-nagamatsu.com\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/7838131?v=4?s=100\" width=\"100px;\" alt=\"\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eAyumu Nagamatsu\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"#financial-nama-gatsuo\" title=\"Financial\"\u003e💵\u003c/a\u003e\u003c/td\u003e\n    \u003ctd align=\"center\"\u003e\u003ca href=\"https://horol.org\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/3610296?v=4?s=100\" width=\"100px;\" alt=\"\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003ezigen\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"#financial-zigen\" title=\"Financial\"\u003e💵\u003c/a\u003e\u003c/td\u003e\n    \u003ctd align=\"center\"\u003e\u003ca href=\"http://hitoshitakeuchi.com\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/6305267?v=4?s=100\" width=\"100px;\" alt=\"\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eHitoshi Takeuchi\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"#financial-hitoshitakeuchi\" title=\"Financial\"\u003e💵\u003c/a\u003e\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd align=\"center\"\u003e\u003ca href=\"https://github.com/Inqb8tr-jp\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/79005925?v=4?s=100\" width=\"100px;\" alt=\"\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eInqb8tr-jp\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"#financial-Inqb8tr-jp\" title=\"Financial\"\u003e💵\u003c/a\u003e \u003ca href=\"#infra-Inqb8tr-jp\" title=\"Infrastructure (Hosting, Build-Tools, etc)\"\u003e🚇\u003c/a\u003e\u003c/td\u003e\n  \u003c/tr\u003e\n\u003c/table\u003e\n\n\u003c!-- markdownlint-restore --\u003e\n\u003c!-- prettier-ignore-end --\u003e\n\n\u003c!-- ALL-CONTRIBUTORS-LIST:END --\u003e","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmimium-org%2Fmimium","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmimium-org%2Fmimium","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmimium-org%2Fmimium/lists"}