mi

所属分类:编程语言基础
开发工具:GO
文件大小:0KB
下载次数:0
上传日期:2019-07-24 18:40:03
上 传 者sh-1993
说明:  Mi是一种小型的打击乐编程语言,用于娱乐。
(Mi is a small percussion music programming language for fun.)

文件列表:
LICENSE (1074, 2019-07-20)
examples/ (0, 2019-07-20)
examples/10h.mi (10613, 2019-07-20)
images/ (0, 2019-07-20)
images/mi.png (105559, 2019-07-20)
images/notes-durations.png (60015, 2019-07-20)
images/octaves-notation-helmholtz.png (7712, 2019-07-20)
mi.go (934, 2019-07-20)
src/ (0, 2019-07-20)
src/text.go (4016, 2019-07-20)
src/text_test.go (1767, 2019-07-20)
src/types.go (2317, 2019-07-20)
src/util.go (393, 2019-07-20)
src/util_test.go (438, 2019-07-20)

# The Mi programming language Mi is a small percussion music programming language made for fun. I'm a big fan of music (percussion more precisely) and programming, why not merging both? I don't want programming to replace music software because these kind of software are much more suitable and offer much more tools for music manipulation; but I find it fun to play music from some code. - [The Mi programming language](https://github.com/Aiden01/mi/blob/master/#the-mi-programming-language) - [Installation](https://github.com/Aiden01/mi/blob/master/#installation-and-usage) - [Example](https://github.com/Aiden01/mi/blob/master/#example) - [Syntax](https://github.com/Aiden01/mi/blob/master/#syntax) - [Durations of notes](https://github.com/Aiden01/mi/blob/master/#durations-of-notes) - [Roadmap](https://github.com/Aiden01/mi/blob/master/#roadmap) ## Dependencies - Golang (any version) ## Installation and Usage Installing Mi is a pretty simple 2-step procedure. First of all, you have to run go get to pull the repository to your GO path.
```go get github.com/eagle453/mi```

Then you need to install `aurora`
```go get -u github.com/logrusorgru/aurora```

Then just simply run your `mi` file
```go run mi.go your-mi-file.mi``` ```bash got get github.com/eagle453/mi # Open the mi folder go run main.go your-mi-file.mi ``` > Mi will generate a midi file from your `.mi` file. ## Example This is a simple syntax example for drums: ```ruby bpm:120 HC,K. HC. HC,S. HC. HC,K. HC,K. HC,S. HC. HC,K. HC. HC,S. HC. HC,K. HC,K. HC,S. HC. ``` `bpm:x` for x BPM `K` = kick, `S` = snare, `HC` = hi-hat closed ### Syntax The syntax of Mi is meant to be simple enough to be understood easily. ## Durations of notes In Mi, we must specify the duration of each note by appending one of these symbols: - `1/4`it's the default duration - `~~` 1 bar - `~` 1/2 bar - `.` 1/8 bar - `..` 1/16 bar - `...` 1/32 bar - `....` 1/64 bar - `.....` 1/128 bar (you can find the duration of the notes in music in the folder `images` and the file `notes-durations.png`) ### Roadmap - [x] Grammar - [x] Parser - [ ] Optimize code and Mi syntax

近期下载者

相关文件


收藏者