From bd79a9b4e66f73a5ca41787e4a8ddb8f2e576587 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=BE=E6=B5=A6=20=E7=9F=A5=E4=B9=9F=20Matsuura=20Tomoy?= =?UTF-8?q?a?= Date: Thu, 21 Aug 2025 12:54:51 +0900 Subject: [PATCH] [obsidian] vault backup: 2025-08-21 12:54:51[ --- content/ChucK.md | 9 +++++++-- content/Dynamic Macro.md | 33 +++++++++++++++++++++++++++++++++ content/Gwion.md | 2 +- content/増井俊之.md | 4 ++++ 4 files changed, 45 insertions(+), 3 deletions(-) create mode 100644 content/Dynamic Macro.md create mode 100644 content/増井俊之.md diff --git a/content/ChucK.md b/content/ChucK.md index d10d0cba..09c4c25b 100644 --- a/content/ChucK.md +++ b/content/ChucK.md @@ -9,13 +9,16 @@ Strongly-Timedというコンセプトの音楽プログラミング言語。[[G C言語っぽいシンタックスでサンプル単位での正確なスケジューリングができるのが特徴。 -命令型+クラスを作ったりのオブジェクト指向(継承もあり)。 +命令型+クラスを作ったりのオブジェクト指向(継承もあり)。`=>`でUGenの接続を表したり、代入したりと複数の機能を持つChucK演算子が存在するのがユニーク。 + +`now`に対してChucK演算子で`1::second => now;`みたいな命令をすることが、1秒スリープするという動作に相当する、独特の時間操作を持つ。 + shredという論理時間ベースの計量スレッドみたいなものを言語内からスポーン、もしくはコマンドから立ち上げることができる。1つのファイルをスレッド単位で立ち上げたり殺したりをリアルタイムで切り替えることで、[[ライブコーディング]]を実現している(ただし更新のタイミングでディレイやリバーブのテールは切れる)。 最近も活発に更新が進んでいて、モジュール機能などが導入された。 -もともとはオーディオビジュアル的なライブコーディング環境Audicleというのがあり、それを簡略化したminiAudicleというのがメインのIDEとして使われている。 +もともとはオーディオビジュアル的なライブコーディング環境Audicleというのがあり、それを簡略化した[[miniAudicle]]というのがメインのIDEとして使われている。 最近は[[Emscripten]]でWeb経由でも動くようになってきた。 @@ -24,3 +27,5 @@ shredという論理時間ベースの計量スレッドみたいなものを言 また、Chugin(チャグイン)というC++で書かれたネイティブな拡張を読み込むこともでき、[[Faust]]や[[TouchDesigner]]、[[Unity]]のような他の環境との連携も多く実現しているほか、AI系などのプラグインも開発されている。 Chugenという独自[[Unit Generator|UGen]]をChucK言語上で定義するための機能もある([[Csound]]におけるUser-Defined OpCode)。 + +パッケージマネージャが2025年ぐらいになって導入された。 diff --git a/content/Dynamic Macro.md b/content/Dynamic Macro.md new file mode 100644 index 00000000..5898e459 --- /dev/null +++ b/content/Dynamic Macro.md @@ -0,0 +1,33 @@ +--- +date: 2025-08-21 11:55 +--- +[[増井俊之]]が考案した、キーボード入力の履歴の中から繰り返し動作を自動で検出して再実行できるようにする仕組み + +[Dynamic Macro - 増井俊之](https://scrapbox.io/masui/Dynamic_Macro) + +実装が非常にシンプル。[[Atom]]用拡張機能の実装がわかりやすい + +[atom-dynamic-macro/lib/atom-dynamic-macro.coffee at f050cac0d19eaac20ef2e5ff8092a9f5242cf481 · masui/atom-dynamic-macro · GitHub](https://github.com/masui/atom-dynamic-macro/blob/f050cac0d19eaac20ef2e5ff8092a9f5242cf481/lib/atom-dynamic-macro.coffee#L30C1-L47C8) + +```coffeescript + # + # Detect repeated elements at the end of an array + # + # findRep [1,2,3] # => [] + # findRep [1,2,3,3] # => [3] + # findRep [1,2,3,1,2,3] # => [1,2,3] + # findRep [1,2,3,3,1,2,3,3] # => [1,2,3,3] + # findRep [1,2,3], (x,y) -> x+1 == y # => [3] + # + findRep: (a,compare) -> + compare = compare ? (x,y) -> x == y + len = a.length + res = [] + for i in [0...len/2] + for j in [0..i] + break unless compare(a[len-2-i-j], a[len-1-j]) + res = a[len-j..len-1] if i == j-1 + res +``` + +配列を二分探索して、一番長い要素を検出? diff --git a/content/Gwion.md b/content/Gwion.md index cbd3dccc..f5b2c16d 100644 --- a/content/Gwion.md +++ b/content/Gwion.md @@ -3,7 +3,7 @@ date: 2025-01-15 15:30 --- #programming-language #computermusic -[[ChucK]]に影響を受けた言語。サンプル精度のスケジューリングに加えてtagged unionとかテンプレートとかラムダ式とか使える +[[ChucK]]に影響を受けた[[音楽プログラミング言語]]。サンプル精度のスケジューリングに加えてtagged unionとかテンプレートとかラムダ式とか使える。ChucKオペレータも健在 [Welcome to Gwion - Gwion](https://gwion.github.io/Gwion/) diff --git a/content/増井俊之.md b/content/増井俊之.md new file mode 100644 index 00000000..dd36bc0b --- /dev/null +++ b/content/増井俊之.md @@ -0,0 +1,4 @@ +--- +date: 2025-08-21 11:55 +--- +#stub