Compare commits

...

3 Commits

Author SHA1 Message Date
f4cbc413e3 [obsidian] vault backup: 2025-10-09 19:33:16
All checks were successful
Build / build (push) Successful in 15m37s
2025-10-09 19:33:16 +09:00
4ffa255c85 [obsidian] vault backup: 2025-10-09 19:10:22[ 2025-10-09 19:10:22 +09:00
1fcf809e29 [obsidian] vault backup: 2025-10-09 18:03:05[ 2025-10-09 18:03:05 +09:00
10 changed files with 116 additions and 2 deletions

View File

@@ -0,0 +1,2 @@
"smart_sources:BEAM VM.md": {"path":"BEAM VM.md","last_embed":{"hash":null},"embeddings":{},"last_read":{"hash":"1ez38xj","at":1759895635941},"class_name":"SmartSource","last_import":{"mtime":1759895607843,"size":37,"at":1759895635942,"hash":"1ez38xj"},"blocks":{"#---frontmatter---":[1,3],"#stub":[4,5]},"outlinks":[],"metadata":{"date":"2025-10-08 12:53","tags":["#stub"]},"task_lines":[]},

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

10
content/Pytakt.md Normal file
View File

@@ -0,0 +1,10 @@
---
date: 2025-10-09 18:20
---
#programming-language #music #computermusic
[[Takt]]をベースにPythonライブラリとして再実装されたもの。
[GitHub - snisim/pytakt: A Python library for music description, generation, and processing with realtime MIDI I/O](https://github.com/snisim/pytakt)
[Full article: Pytakt: a Python library for symbolic music description, generation, and real-time processing](https://www.tandfonline.com/doi/full/10.1080/09298215.2025.2540434#d1e130)

View File

@@ -11,3 +11,8 @@ date: 2025-08-20 16:13
[高機能な音楽プログラミング言語Takt - 丸井綜研](https://marui.hatenablog.com/entry/2014/09/14/150337)
[Takt download \| SourceForge.net](https://sourceforge.net/projects/takt/)
最近Pythonで作り直したのがあるらしい。
[[Pytakt]]

View File

@@ -184,3 +184,26 @@ fn alloc_midi_voice_4(channel){
[[Computation Expression]]使ってIOの値を`let!`でバインドしていく、とかの方がわかりやすいかも
---
シンプルに、MIDIにコールバックを渡せるだけなら、どうやって作る
```rust
fn __midi_note_callback(cb:{pitch:float,vel:float}->void ){
}
fn poly_midi_allocator()->()->[{pitch:float,vel:float}]{
let channels = array_new({pitch=0,vel=0},4)
let busymap = [0,0,0,0]
__midi_note_callback(|pitch,vel| {
})
channels//セルをupvalueとして返す
}
```