From c797f10c192258c16d360517768689eab307f670 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: Mon, 21 Oct 2024 11:39:07 +0900 Subject: [PATCH 01/25] [obsidian] vault backup: 2024-10-21 11:39:07[ --- content/mimiumのMIRコンパイル過程を真面目に考える.md | 10 ++++++++++ 1 file changed, 10 insertions(+) create mode 100644 content/mimiumのMIRコンパイル過程を真面目に考える.md diff --git a/content/mimiumのMIRコンパイル過程を真面目に考える.md b/content/mimiumのMIRコンパイル過程を真面目に考える.md new file mode 100644 index 00000000..d15072eb --- /dev/null +++ b/content/mimiumのMIRコンパイル過程を真面目に考える.md @@ -0,0 +1,10 @@ +--- +date: 2024-10-20 12:02 +--- +#mimium + +ツリー形式からBasicBlockのインストラクション形式に変える + +Stateのこととupvalueを両方処理しなくてはならない + +StateSize計算とUpvalue計算の両方をtraitとして切り出す方がいいのかな From 3ec529ec0aeedd0d7b5e68902f9148292a65adba 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: Mon, 21 Oct 2024 12:40:07 +0900 Subject: [PATCH 02/25] [obsidian] vault backup: 2024-10-21 12:40:07[ --- content/private | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/private b/content/private index 3ca80b5f..60d5f4a8 160000 --- a/content/private +++ b/content/private @@ -1 +1 @@ -Subproject commit 3ca80b5f5a18b41571248d17befd612d91fa2ade +Subproject commit 60d5f4a80f7bc2ad2dda5cb366b3fc84c8dac7ea From 5aac8c189d7b89aafcd1fade2698392c1ab0e2af 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: Mon, 21 Oct 2024 23:38:36 +0900 Subject: [PATCH 03/25] [obsidian] vault backup: 2024-10-21 23:38:36[ --- content/ヤバい個人Webサイト.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/content/ヤバい個人Webサイト.md b/content/ヤバい個人Webサイト.md index 215f1059..4d61c827 100644 --- a/content/ヤバい個人Webサイト.md +++ b/content/ヤバい個人Webサイト.md @@ -19,6 +19,8 @@ date: 2024-04-02 15:37 ## 参考 +[[好きなWikipediaの記事]] + [好きな個人ホームページ | 麦 Baku](https://baku89.com/list/homepages) From ac1d1f0ecbe4a375663d86129e0b3eb997281a76 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: Tue, 22 Oct 2024 02:40:37 +0900 Subject: [PATCH 04/25] [obsidian] vault backup: 2024-10-22 02:40:37[ --- content/mimium新内部表現の構想.md | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/content/mimium新内部表現の構想.md b/content/mimium新内部表現の構想.md index 007a36b6..5da45498 100644 --- a/content/mimium新内部表現の構想.md +++ b/content/mimium新内部表現の構想.md @@ -56,14 +56,10 @@ $$ \begin{align} e \; ::=& \quad x \quad x \in \mathbb{V} \quad & [value]\\ |& \quad \lambda x.e \quad & [lambda]\\ - |& \quad fix \; x.e \quad & [fixpoint]\\ |& \quad e \; e \quad & [app]\\ + |& \quad fix \; x.e \quad & [fixpoint]\\ |& \quad feed \; x.e \quad & [feed] \\ |& \quad delay \; e \; e & [delay]\\ - %%|& \quad (e_1,e_2) \quad & [product]\\ - %%|& \quad \pi_n e \quad n\in \mathbb{N},\; n>0 \quad & [project]\\ - %%|& \quad \langle e \rangle \quad & [code] \\ - %%|& \quad \textasciitilde e \quad & [escape] \end{align} $$ From 62f8ea927e193604db1890f4857c7dc6959c5522 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: Tue, 22 Oct 2024 08:44:36 +0900 Subject: [PATCH 05/25] [obsidian] vault backup: 2024-10-22 08:44:36[ --- content/好きなWikipediaの記事.md | 1 + 1 file changed, 1 insertion(+) diff --git a/content/好きなWikipediaの記事.md b/content/好きなWikipediaの記事.md index 32cb6751..65662aea 100644 --- a/content/好きなWikipediaの記事.md +++ b/content/好きなWikipediaの記事.md @@ -14,5 +14,6 @@ reference: [面白かったWikipedia記事の一覧 | 麦 Baku](https://baku89.c - なんでこの記事作ったのか謎すぎて面白い(はじめに記事を作ったユーザーは無期限ブロックをくらっている) - [肋骨レコード](https://ja.wikipedia.org/wiki/%E8%82%8B%E9%AA%A8%E3%83%AC%E3%82%B3%E3%83%BC%E3%83%89) - [アコースティック・キティー](https://ja.wikipedia.org/wiki/%E3%82%A2%E3%82%B3%E3%83%BC%E3%82%B9%E3%83%86%E3%82%A3%E3%83%83%E3%82%AF%E3%83%BB%E3%82%AD%E3%83%86%E3%82%A3%E3%83%BC) +- [ラムダ計算騎士団](https://ja.wikipedia.org/wiki/%E3%83%A9%E3%83%A0%E3%83%80%E8%A8%88%E7%AE%97%E9%A8%8E%E5%A3%AB%E5%9B%A3) [^token]: tokenさんが[貼ってた](https://fedibird.com/@aknosp6/112240788498392236)のを見て。 From ba8b2e71967d5ba1b9625a0a4a8377c74aa4dbcf 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: Wed, 23 Oct 2024 18:05:35 +0900 Subject: [PATCH 06/25] [obsidian] vault backup: 2024-10-23 18:05:35[ --- content/private | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/private b/content/private index 60d5f4a8..f679bc01 160000 --- a/content/private +++ b/content/private @@ -1 +1 @@ -Subproject commit 60d5f4a80f7bc2ad2dda5cb366b3fc84c8dac7ea +Subproject commit f679bc01e2a7010b362c024e813af6a650621ae2 From 7cb6e23b520f66350bf5d3b541e737de36306cc5 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, 24 Oct 2024 12:19:39 +0900 Subject: [PATCH 07/25] [obsidian] vault backup: 2024-10-24 12:19:39[ --- ...miumのMIRコンパイル過程を真面目に考える.md | 25 +++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/content/mimiumのMIRコンパイル過程を真面目に考える.md b/content/mimiumのMIRコンパイル過程を真面目に考える.md index d15072eb..44b540e0 100644 --- a/content/mimiumのMIRコンパイル過程を真面目に考える.md +++ b/content/mimiumのMIRコンパイル過程を真面目に考える.md @@ -8,3 +8,28 @@ date: 2024-10-20 12:02 Stateのこととupvalueを両方処理しなくてはならない StateSize計算とUpvalue計算の両方をtraitとして切り出す方がいいのかな + +## 値 + +$$ +\begin{align} +v \; ::= & \quad R \\ + | & (\lambda x:\tau.e, [\Gamma, x:e],StateStorage(p,Vec)) \quad & [Closure]\\ +\end{align} +$$ + +$$ +\begin{align} +e \; ::=& \quad x \quad x \in \mathbb{V} \quad & [value]\\ + |& \quad \lambda x.e \quad & [lambda]\\ + |& \quad e \; e \quad & [app(globstate]\\ + |& \quad appcls \; e \; e \quad & [appclosure]\\ + |& \quad fix \; x.e \quad & [fixpoint]\\ + |& \quad feed \; x.e \quad & [feed] \\ +|& \quad delay \; e \; e & [delay]\\ +\end{align} +$$ + +結局[[The w-calculus a synchronous framework for the verified modelling of digital signal processing algorithms|W計算]]のStaged Interpreterと変わらんかもな + +そうすると型付けの時点でクロージャ相当の項とグローバル関数適用の項は分かれることになる \ No newline at end of file From bd66a03213df8a2ddfbcae121d90c03dfe89541b 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, 24 Oct 2024 14:48:56 +0900 Subject: [PATCH 08/25] [obsidian] vault backup: 2024-10-24 14:48:56[ --- ...miumのMIRコンパイル過程を真面目に考える.md | 29 +++++++++++++++++-- 1 file changed, 26 insertions(+), 3 deletions(-) diff --git a/content/mimiumのMIRコンパイル過程を真面目に考える.md b/content/mimiumのMIRコンパイル過程を真面目に考える.md index 44b540e0..6230efd7 100644 --- a/content/mimiumのMIRコンパイル過程を真面目に考える.md +++ b/content/mimiumのMIRコンパイル過程を真面目に考える.md @@ -9,6 +9,7 @@ Stateのこととupvalueを両方処理しなくてはならない StateSize計算とUpvalue計算の両方をtraitとして切り出す方がいいのかな + ## 値 $$ @@ -22,14 +23,36 @@ $$ \begin{align} e \; ::=& \quad x \quad x \in \mathbb{V} \quad & [value]\\ |& \quad \lambda x.e \quad & [lambda]\\ - |& \quad e \; e \quad & [app(globstate]\\ + |& \quad e \; e \quad & [app(global,stateful)]\\ |& \quad appcls \; e \; e \quad & [appclosure]\\ |& \quad fix \; x.e \quad & [fixpoint]\\ - |& \quad feed \; x.e \quad & [feed] \\ + |& \quad getstate \; e \; I_n \; I_s \quad & [feed] \\ |& \quad delay \; e \; e & [delay]\\ \end{align} $$ 結局[[The w-calculus a synchronous framework for the verified modelling of digital signal processing algorithms|W計算]]のStaged Interpreterと変わらんかもな -そうすると型付けの時点でクロージャ相当の項とグローバル関数適用の項は分かれることになる \ No newline at end of file +そうすると型付けの時点でクロージャ相当の項とグローバル関数適用の項は分かれることになる?エフェクトとして考えるのが妥当なのかな + +## 型 + +$$ +\begin{align} +\tau ::=&\quad R_a \quad & a \in \mathbb{N}\\ + |&\quad I_n \quad &n \in \mathbb{N} \\\ + |&\quad \tau → \tau \quad \\ + % |&\quad \langle \tau \rangle +\end{align} +$$ + +## コンパイル + +```ocaml +let compiler = fun e -> match e with + Id(x) -> + | App(e1,e2)-> + | Feed(x,e) -> + + +``` \ No newline at end of file From f0de7daafe722e610807284d9c6281718ae60ba0 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: Fri, 25 Oct 2024 14:18:20 +0900 Subject: [PATCH 09/25] [obsidian] vault backup: 2024-10-25 14:18:20 --- content/Bytebeat.md | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/content/Bytebeat.md b/content/Bytebeat.md index 2e435178..971d4782 100644 --- a/content/Bytebeat.md +++ b/content/Bytebeat.md @@ -4,7 +4,6 @@ date: "2023-10-29T18:14:14+0900" #programming #music #sound - [Algorithmic symphonies from one line of code -- how and why?(2011)](http://countercomplex.blogspot.com/2011/10/algorithmic-symphonies-from-one-line-of.html) @@ -18,7 +17,7 @@ Bytebeatは2011年に[[viznut]]がYoutube上の動画で公開し、自身のブ [HTML5 Bytebeat](https://greggman.com/downloads/examples/html5bytebeat/html5bytebeat.html) -[Bytebeat Composer](https://sarpnt.github.io/bytebeat-composer) +[Bytebeat Composer](https://bytebeat.ficial.net/) --- @@ -32,13 +31,12 @@ Bytebeatは元々次のようなC言語のプログラムで作られてた。 main(t){for(;;t++)putchar(((t<<1)^((t<<1)+(t>>7)&t>>12))|t>>(4-(1^7&(t>>19)))|t>>7);} ``` -このC言語のコードは極限まで圧縮されているのでもうちょっと丁寧に書くとこうなります。 +このC言語のコードは極限まで圧縮されているのでもうちょっと丁寧に書くとこうなります(大昔のCコンパイラでない限りエラーで落とされる)。 ```c -int main(int t){ - for(;;t++){ - putchar(((t<<1)^((t<<1)+(t>>7)&t>>12))|t>>(4-(1^7&(t>>19)))|t>>7); - } +#include +int main(){ +for(int t=0;;t++) putchar(((t<<1)^((t<<1)+(t>>7)&t>>12))|t>>(4-(1^7&(t>>19)))|t>>7); } ``` @@ -47,7 +45,7 @@ int main(int t){ macOSでやろうとするなら、`ffmpeg`に付属する`ffplay`で次のようなコードで書ける ```sh -program | ffplay -f u8 -i pipe:0 -ar 44k -ac 1 +program | ffplay -f u8 -i pipe:0 -ar 8k -ch_layout mono ``` どうせならC言語使わずにデータを生成したいが、シェルスクリプトで直接バイナリを扱うのは死ぬほどだるい(`printf`コマンドや`bc`であれこれすれば不可能でもないが、結局ファイルを一度経由しないと厳しい) From 714b5294383a9dcec8f8055066e2b806271f95f9 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: Fri, 25 Oct 2024 14:43:18 +0900 Subject: [PATCH 10/25] [obsidian] vault backup: 2024-10-25 14:43:18[ --- content/Bytebeat.md | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/content/Bytebeat.md b/content/Bytebeat.md index 971d4782..58e6acb0 100644 --- a/content/Bytebeat.md +++ b/content/Bytebeat.md @@ -63,11 +63,7 @@ let t = 0; const mainProcess = () =>{ const data = Uint8Array.from({ length: length }, - (v, _t) => { - const res = bytebeat(t); - t += 1; - return res - } + (v, _t) => bytebeat(t++) ); process.stdout.write(data); }; From 8182ad4dfb48c78d77e92166c7efdb245194b5ae 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: Fri, 25 Oct 2024 18:56:32 +0900 Subject: [PATCH 11/25] [obsidian] vault backup: 2024-10-25 18:56:32[ --- content/ACC申請書.md | 48 +++++++++++++++++++ content/Felienne Harmans.md | 8 ++++ ...Feminism in Programming Language Design.md | 11 +++++ content/private | 2 +- 4 files changed, 68 insertions(+), 1 deletion(-) create mode 100644 content/ACC申請書.md create mode 100644 content/Felienne Harmans.md create mode 100644 content/Feminism in Programming Language Design.md diff --git a/content/ACC申請書.md b/content/ACC申請書.md new file mode 100644 index 00000000..1fa541dd --- /dev/null +++ b/content/ACC申請書.md @@ -0,0 +1,48 @@ +--- +date: 2024-10-25 18:03 +--- + +## II. 選考評価基準に関する設問 + +### 自身の学歴や経歴、専門領域における活動歴や功績、また、現在取り組んでいる仕事や活動を簡潔に説明ください。(1000字以内) + + + + +### 自身の作品や研究、活動のコンセプトを説明した文章(アーティスト・ステートメント 等)があれば以下にご記入ください。(400字以内) + +### 自身の作品や研究を表すキーワードを最大5語、カンマで区切りご記入ください。(最大5語) + + +## フェローシップ申請内容 + +### ニューヨーク・フェローシップ申請内容の概要を3文以内でご説明ください。 + +回答例:「NYの実験的な音楽シーンを調査し、参加するとともに、アーティストや文化機関が音楽を通した国際交流の手段として音作りの現場をどのように活用し、ニューヨークの地域社会を活性化させ、国内外との関係構築につなげているか学ぶことを計画している。」 + +### ニューヨーク・フェローシップ期間中の活動内容を詳細に記入してください。この経験を通して何を得たいか、また、この活動があなた自身や他者に与える影響についての記述を含めてください。(600字以内) + +https://soundandscience.net/contributor-essays/the-att-archives-and-history-center/ +https://history.delaware.gov/johnson-victrola-museum/ +### ACCは、文化交流を通して、相互理解や尊敬を深めるための国境を越えた対話を促すことをミッションとしています。海外で過ごし、異なる文化に触れることにどのような関心がありますか。(600字以内) + +### ACCからフェローシップ活動の支援を受けるにあたって、ACCに期待する金銭以外の支援についてできるだけ具体的にご記入ください。(400字以内) + +### 米国での関係者や人脈のリストをご記入ください。また、その関係者や人脈がどのように申請する活動内容に協力できるかを併記ください。(200字以内) + +### あなた自身のキャリアにおいて、このタイミングでニューヨーク・フェローシップを行うことが最適である理由をお聞かせください。(500字以内) + +## 作品資料(3点) + +- mimium (PDF資料を作るか、3分にまとめた動画を作る) +- exidiophone (ftarriソロを3分にまとめる) +- ?EDTAC? + +## CV/レジュメ + + + +## 推薦状 + + + diff --git a/content/Felienne Harmans.md b/content/Felienne Harmans.md new file mode 100644 index 00000000..eb671615 --- /dev/null +++ b/content/Felienne Harmans.md @@ -0,0 +1,8 @@ +--- +date: 2024-10-25 18:01 +--- +#stub #person + +[Felienne Hermans](https://www.felienne.com/) + + diff --git a/content/Feminism in Programming Language Design.md b/content/Feminism in Programming Language Design.md new file mode 100644 index 00000000..47671afe --- /dev/null +++ b/content/Feminism in Programming Language Design.md @@ -0,0 +1,11 @@ +--- +date: 2024-10-25 17:59 +--- + +#stub #paper #feminism #programming-language + +[Paper: Feminism in Programming Language Design – Felienne Hermans](https://www.felienne.com/archives/8470) + +[A Case for Feminism in Programming Language Design | Proceedings of the 2024 ACM SIGPLAN International Symposium on New Ideas, New Paradigms, and Reflections on Programming and Software](https://dl.acm.org/doi/10.1145/3689492.3689809) + +[[Felienne Harmans]] と[[Ari Schlesinger]] \ No newline at end of file diff --git a/content/private b/content/private index f679bc01..ad5c9e04 160000 --- a/content/private +++ b/content/private @@ -1 +1 @@ -Subproject commit f679bc01e2a7010b362c024e813af6a650621ae2 +Subproject commit ad5c9e04dc07bec6f3c575f13f32f677694693ad From 71097dd807993224690324e96be3608de3180d97 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: Sun, 27 Oct 2024 02:49:26 +0900 Subject: [PATCH 12/25] [obsidian] vault backup: 2024-10-27 02:49:26[ --- content/.obsidian/core-plugins.json | 51 +++++++++++++++++------------ 1 file changed, 30 insertions(+), 21 deletions(-) diff --git a/content/.obsidian/core-plugins.json b/content/.obsidian/core-plugins.json index 56b44a57..1d8661f5 100644 --- a/content/.obsidian/core-plugins.json +++ b/content/.obsidian/core-plugins.json @@ -1,21 +1,30 @@ -[ - "file-explorer", - "global-search", - "switcher", - "graph", - "backlink", - "canvas", - "outgoing-link", - "tag-pane", - "properties", - "page-preview", - "daily-notes", - "templates", - "note-composer", - "command-palette", - "editor-status", - "bookmarks", - "outline", - "word-count", - "file-recovery" -] \ No newline at end of file +{ + "file-explorer": true, + "global-search": true, + "switcher": true, + "graph": true, + "backlink": true, + "canvas": true, + "outgoing-link": true, + "tag-pane": true, + "page-preview": true, + "daily-notes": true, + "templates": true, + "note-composer": true, + "command-palette": true, + "slash-command": false, + "editor-status": true, + "bookmarks": true, + "markdown-importer": false, + "zk-prefixer": false, + "random-note": false, + "outline": true, + "word-count": true, + "slides": false, + "audio-recorder": false, + "workspaces": false, + "file-recovery": true, + "publish": false, + "sync": false, + "properties": true +} \ No newline at end of file From 735e07dc6e8ae868df575908f7bdc2ab0139df26 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: Sun, 27 Oct 2024 12:45:28 +0900 Subject: [PATCH 13/25] [obsidian] vault backup: 2024-10-27 12:45:28[ --- content/オープンソースLSI設計環境の構築.md | 31 ++++++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 content/オープンソースLSI設計環境の構築.md diff --git a/content/オープンソースLSI設計環境の構築.md b/content/オープンソースLSI設計環境の構築.md new file mode 100644 index 00000000..cb788a42 --- /dev/null +++ b/content/オープンソースLSI設計環境の構築.md @@ -0,0 +1,31 @@ +--- +date: 2024-10-27 11:59 +--- + +#transistor #openlsi + +このシリーズが参考になりそう + +[SkyWater 130 nm フルカスタム設計への道|Akira Tsuchiya|note](https://note.com/akira_tsuchiya/m/m7877b0dd1dbe) + +Dockerでセットアップするならここで紹介されてた + +[GitHub - iic-jku/IIC-OSIC-TOOLS: IIC-OSIC-TOOLS is an all-in-one Docker image for SKY130/GF180/IHP130-based analog and digital chip design. AMD64 and ARM64 are natively supported.](https://github.com/iic-jku/IIC-OSIC-TOOLS) + +を使うのが良さそう。(ただしGUIを表示するためにXserver(MacならXQuartz)が必要になる。VNCでもいけるけどちょっと重いらしい) + + +とりあえずローカルでセットアップするなら[[ISHI-KAI]]のスクリプトを使うと良い(Macの場合中でbrewを叩くので環境汚れるのは覚悟の上で)。 + +[GitHub - ishi-kai/OpenRule1umPDK\_setupEDA: OpenRule1umPDKを各種環境にセットアップするためのスクリプトです。](https://github.com/ishi-kai/OpenRule1umPDK_setupEDA) + +基本的に使うことになるのは + +- [[xschem]] +- [[klayout]] +- [[netgen]] +- [[ngspice]] + +あたり。xschemとklayoutはKiCADやEagleの回路図エディタとレイアウトエディタにそれぞれ相当するものだと思えば良いっぽい。ngspiceはKiCADでも使ってるSPICEシミュレータ。 + + From 76d0a409b5d2d3a871318806d67d95006a24aca3 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: Sun, 27 Oct 2024 13:59:18 +0900 Subject: [PATCH 14/25] [obsidian] vault backup: 2024-10-27 13:59:18[ --- content/オープンソースLSI設計環境の構築.md | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/content/オープンソースLSI設計環境の構築.md b/content/オープンソースLSI設計環境の構築.md index cb788a42..7b5a6cf7 100644 --- a/content/オープンソースLSI設計環境の構築.md +++ b/content/オープンソースLSI設計環境の構築.md @@ -29,3 +29,11 @@ Dockerでセットアップするならここで紹介されてた あたり。xschemとklayoutはKiCADやEagleの回路図エディタとレイアウトエディタにそれぞれ相当するものだと思えば良いっぽい。ngspiceはKiCADでも使ってるSPICEシミュレータ。 +--- + +## PDK(Process Design Kit) + +- シミュレーションライブラリ +- デザインルール +- LVS + From 5c49deb694e0b8340e4c0654cfc3617e110a843b 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: Sun, 27 Oct 2024 15:59:17 +0900 Subject: [PATCH 15/25] [obsidian] vault backup: 2024-10-27 15:59:17[ --- content/オープンソースLSI設計環境の構築.md | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/content/オープンソースLSI設計環境の構築.md b/content/オープンソースLSI設計環境の構築.md index 7b5a6cf7..ee4281cb 100644 --- a/content/オープンソースLSI設計環境の構築.md +++ b/content/オープンソースLSI設計環境の構築.md @@ -37,3 +37,12 @@ Dockerでセットアップするならここで紹介されてた - デザインルール - LVS + +--- +## OpenRule1umで使われる用語とかの解説 + +[MakeLSI お絵描きを理解する](https://sinby.com/posts/2022/08150.html) + +シンボルのライブラリさえ合わせられれば.schはxschemでなくKiCADでも大丈夫なのかな? + + From 04a0f3fe8e0b82ac302d027df1d19ca7565b5447 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: Mon, 28 Oct 2024 09:37:10 +0900 Subject: [PATCH 16/25] [obsidian] vault backup: 2024-10-28 09:37:10[ --- content/private | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/private b/content/private index ad5c9e04..ce09e3e2 160000 --- a/content/private +++ b/content/private @@ -1 +1 @@ -Subproject commit ad5c9e04dc07bec6f3c575f13f32f677694693ad +Subproject commit ce09e3e2d8c3b202e6f29424a92d160058359415 From 36f6542b023a4c3fa5710f9a133d6b5d925d877e 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: Mon, 28 Oct 2024 10:55:30 +0900 Subject: [PATCH 17/25] [obsidian] vault backup: 2024-10-28 10:55:30[ --- content/private | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/private b/content/private index ce09e3e2..141d2b62 160000 --- a/content/private +++ b/content/private @@ -1 +1 @@ -Subproject commit ce09e3e2d8c3b202e6f29424a92d160058359415 +Subproject commit 141d2b6262ebcb40ae474abdc5a6a399ddf6ae8a From 85beefe034feb4ee7d3c88bd1fe3201c94f4739e 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: Tue, 29 Oct 2024 14:38:29 +0900 Subject: [PATCH 18/25] [obsidian] vault backup: 2024-10-29 14:38:29[ --- content/ACC申請書.md | 48 ------------------- content/Bruce Archer.md | 6 +++ content/Christopher Alexander.md | 7 +++ .../The Nature of Research - Bruce Archer.md | 12 +++++ ...ess Way of Programming - Tomas Petricek.md | 15 ++++++ content/Tomas Petricek.md | 11 +++++ content/private | 2 +- content/デザインリサーチ.md | 7 +++ content/プログラミング基盤.md | 8 ++++ content/リサーチ・スルー・デザイン.md | 5 ++ content/無名の質.md | 17 +++++++ content/遅いソフトウェア開発.md | 12 +++++ 12 files changed, 101 insertions(+), 49 deletions(-) delete mode 100644 content/ACC申請書.md create mode 100644 content/Bruce Archer.md create mode 100644 content/Christopher Alexander.md create mode 100644 content/The Nature of Research - Bruce Archer.md create mode 100644 content/The Timeless Way of Programming - Tomas Petricek.md create mode 100644 content/Tomas Petricek.md create mode 100644 content/デザインリサーチ.md create mode 100644 content/プログラミング基盤.md create mode 100644 content/リサーチ・スルー・デザイン.md create mode 100644 content/無名の質.md create mode 100644 content/遅いソフトウェア開発.md diff --git a/content/ACC申請書.md b/content/ACC申請書.md deleted file mode 100644 index 1fa541dd..00000000 --- a/content/ACC申請書.md +++ /dev/null @@ -1,48 +0,0 @@ ---- -date: 2024-10-25 18:03 ---- - -## II. 選考評価基準に関する設問 - -### 自身の学歴や経歴、専門領域における活動歴や功績、また、現在取り組んでいる仕事や活動を簡潔に説明ください。(1000字以内) - - - - -### 自身の作品や研究、活動のコンセプトを説明した文章(アーティスト・ステートメント 等)があれば以下にご記入ください。(400字以内) - -### 自身の作品や研究を表すキーワードを最大5語、カンマで区切りご記入ください。(最大5語) - - -## フェローシップ申請内容 - -### ニューヨーク・フェローシップ申請内容の概要を3文以内でご説明ください。 - -回答例:「NYの実験的な音楽シーンを調査し、参加するとともに、アーティストや文化機関が音楽を通した国際交流の手段として音作りの現場をどのように活用し、ニューヨークの地域社会を活性化させ、国内外との関係構築につなげているか学ぶことを計画している。」 - -### ニューヨーク・フェローシップ期間中の活動内容を詳細に記入してください。この経験を通して何を得たいか、また、この活動があなた自身や他者に与える影響についての記述を含めてください。(600字以内) - -https://soundandscience.net/contributor-essays/the-att-archives-and-history-center/ -https://history.delaware.gov/johnson-victrola-museum/ -### ACCは、文化交流を通して、相互理解や尊敬を深めるための国境を越えた対話を促すことをミッションとしています。海外で過ごし、異なる文化に触れることにどのような関心がありますか。(600字以内) - -### ACCからフェローシップ活動の支援を受けるにあたって、ACCに期待する金銭以外の支援についてできるだけ具体的にご記入ください。(400字以内) - -### 米国での関係者や人脈のリストをご記入ください。また、その関係者や人脈がどのように申請する活動内容に協力できるかを併記ください。(200字以内) - -### あなた自身のキャリアにおいて、このタイミングでニューヨーク・フェローシップを行うことが最適である理由をお聞かせください。(500字以内) - -## 作品資料(3点) - -- mimium (PDF資料を作るか、3分にまとめた動画を作る) -- exidiophone (ftarriソロを3分にまとめる) -- ?EDTAC? - -## CV/レジュメ - - - -## 推薦状 - - - diff --git a/content/Bruce Archer.md b/content/Bruce Archer.md new file mode 100644 index 00000000..b6053c05 --- /dev/null +++ b/content/Bruce Archer.md @@ -0,0 +1,6 @@ +--- +date: 2024-10-29 14:15 +--- +#person + +[L. Bruce Archer - Monoskop](https://monoskop.org/L._Bruce_Archer) diff --git a/content/Christopher Alexander.md b/content/Christopher Alexander.md new file mode 100644 index 00000000..00e28535 --- /dev/null +++ b/content/Christopher Alexander.md @@ -0,0 +1,7 @@ +--- +date: 2024-10-29 13:49 +--- + +#person #stub + +[[パターン・ランゲージ]]の提唱者、建築家で研究者 \ No newline at end of file diff --git a/content/The Nature of Research - Bruce Archer.md b/content/The Nature of Research - Bruce Archer.md new file mode 100644 index 00000000..2c97dfb1 --- /dev/null +++ b/content/The Nature of Research - Bruce Archer.md @@ -0,0 +1,12 @@ +--- +date: 2024-10-29 14:13 +--- + +#paper #stub + +[[Bruce Archer]] + +[The Nature of Research : Bruce Archer : Free Download, Borrow, and Streaming : Internet Archive](https://archive.org/details/TheNatureOfResearch) + + +[[デザインリサーチ]] \ No newline at end of file diff --git a/content/The Timeless Way of Programming - Tomas Petricek.md b/content/The Timeless Way of Programming - Tomas Petricek.md new file mode 100644 index 00000000..5e0485ca --- /dev/null +++ b/content/The Timeless Way of Programming - Tomas Petricek.md @@ -0,0 +1,15 @@ +--- +date: 2024-10-29 14:08 +--- +#scrap + +[[Tomas Petricek]] + +[The Timeless Way of Programming - Tomas Petricek](https://tomasp.net/blog/2022/timeless-way/) + +ここがいい(DeepL翻訳) + +> ### メンテナンスから生活へ +> +> 従来のソフトウェア開発プロセスでは、_開発_ と _保守_ を厳密に分離していました。 これは、常に進化するシステム (たとえば、常に進化する Twitter のようなシステム) について話す場合はそうではありませんが、その場合でも、そのようなシステムはプログラマが保守されるとみなすコンポーネントで構成されています。 上記で示唆したように、アレクサンダーの考え方は(従来のアーキテクトの考え方とは対照的に)、この2つを別個のフェーズと見なさない考え方により適していると思う。 +> _成長_ という観点から、より有機的な思考に移行することは、明らかに技術的な問題だけでなく、社会的な問題でもある。 社会的な側面は、最近出版された[イノベーションの妄想](https://amzn.to/3CKtmfL "The Innovation Delusion: How Our Obsession with the New Has Disrupted the Work That Matters Most - Lee Vinsel, Andrew L. Russell")という本の主題である。 この本では、「『進歩』を『イノベーション』に置き換えることで、目新しさが改善であるかどうかという問題を回避することができる」という事実など、いくつかの素晴らしい指摘がなされている。 この本の重要なポイントは、[オープンソースソフトウェア](https://arstechnica.com/information-technology/2014/04/tech-giants-chastened-by-heartbleed-finally-agree-to-fund-openssl/)だけでなく、家事労働などの分野でも、社会がイノベーションとメンテナンスをどのように評価するかの不均衡が大きな問題につながっているということだ。 \ No newline at end of file diff --git a/content/Tomas Petricek.md b/content/Tomas Petricek.md new file mode 100644 index 00000000..320786d0 --- /dev/null +++ b/content/Tomas Petricek.md @@ -0,0 +1,11 @@ +--- +date: 2024-10-29 14:06 +--- + +#person #stub + +プログラミングの思想の哲学などの研究者。[[F#]]が好きらしい。 + +[Tomas Petricek - New ways of thinking about programming](https://tomasp.net/) + +[[プログラミング基盤]] \ No newline at end of file diff --git a/content/private b/content/private index 141d2b62..c82a68bb 160000 --- a/content/private +++ b/content/private @@ -1 +1 @@ -Subproject commit 141d2b6262ebcb40ae474abdc5a6a399ddf6ae8a +Subproject commit c82a68bb21e4543f695d6e963194a44e246ddf0a diff --git a/content/デザインリサーチ.md b/content/デザインリサーチ.md new file mode 100644 index 00000000..f2414495 --- /dev/null +++ b/content/デザインリサーチ.md @@ -0,0 +1,7 @@ +--- +date: 2024-10-29 14:13 +--- + +#stub #research + +[[リサーチ・スルー・デザイン]] \ No newline at end of file diff --git a/content/プログラミング基盤.md b/content/プログラミング基盤.md new file mode 100644 index 00000000..9ec078a6 --- /dev/null +++ b/content/プログラミング基盤.md @@ -0,0 +1,8 @@ +--- +date: 2024-10-29 14:36 +--- +[[Tomas Petricek]]が呼んでいる概念 + +[No-code, no thought? Substrates for simple programming for all - Tomas Petricek](https://tomasp.net/blog/2022/no-code-substrates/) + +プログラミングの学習の階段([[Ladder of Complexity]] \ No newline at end of file diff --git a/content/リサーチ・スルー・デザイン.md b/content/リサーチ・スルー・デザイン.md new file mode 100644 index 00000000..ed0063dc --- /dev/null +++ b/content/リサーチ・スルー・デザイン.md @@ -0,0 +1,5 @@ +--- +date: 2024-10-29 14:14 +--- + +#stub #research \ No newline at end of file diff --git a/content/無名の質.md b/content/無名の質.md new file mode 100644 index 00000000..6ee295dd --- /dev/null +++ b/content/無名の質.md @@ -0,0 +1,17 @@ +--- +date: 2024-10-29 13:48 +--- +#notion + += The quality without a name + +建築家の[[Christopher Alexander]]が提示した概念 + +「特有のあの感じ」 + +ソフトウェア界隈ではデザインパターンみたいな方向からオブジェクト指向界隈を経由して割と定着してるっぽい? + +[Software Architecture — quest for “quality without a name” | by Vinay Muniganti | Walmart Global Tech Blog | Medium](https://medium.com/walmartglobaltech/software-architecture-quest-for-quality-without-a-name-92478f671fed) + + +[[The Timeless Way of Programming - Tomas Petricek]] diff --git a/content/遅いソフトウェア開発.md b/content/遅いソフトウェア開発.md new file mode 100644 index 00000000..14fe7cd1 --- /dev/null +++ b/content/遅いソフトウェア開発.md @@ -0,0 +1,12 @@ +--- +date: 2024-10-29 14:07 +--- +#memo + +[Slow software development](https://robinwinslow.uk/slow-software-development) + + +[[The Timeless Way of Programming - Tomas Petricek]] + +「メンテナンスから生活へ」 + From 793b522b3f05d2bea87e264a717b30d996ae321a 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: Tue, 29 Oct 2024 15:41:31 +0900 Subject: [PATCH 19/25] [obsidian] vault backup: 2024-10-29 15:41:31[ --- content/プログラミング基盤.md | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/content/プログラミング基盤.md b/content/プログラミング基盤.md index 9ec078a6..cc781a8f 100644 --- a/content/プログラミング基盤.md +++ b/content/プログラミング基盤.md @@ -5,4 +5,10 @@ date: 2024-10-29 14:36 [No-code, no thought? Substrates for simple programming for all - Tomas Petricek](https://tomasp.net/blog/2022/no-code-substrates/) -プログラミングの学習の階段([[Ladder of Complexity]] \ No newline at end of file +プログラミングの学習の階段([[Ladder of Complexity]] ?だっけ)の話と似ている + +[[加藤淳|加藤]]さんのスライドにも出てくるな + +[media2024autumn-kato-slides.pdf](https://junkato.jp/publications/media2024autumn-kato-slides.pdf) + +[Beyond Applications: Interaction Substrates and Instruments | Proceedings of the 34th Conference on l'Interaction Humain-Machine](https://doi.org/10.1145/3583961.3583968) \ No newline at end of file From 3808c2bf6833b8c7431034ac561eeeae6216c4a1 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: Wed, 30 Oct 2024 13:05:51 +0900 Subject: [PATCH 20/25] [obsidian] vault backup: 2024-10-30 13:05:51[ --- content/.obsidian/community-plugins.json | 3 ++- content/.obsidian/core-plugins.json | 2 +- content/private | 2 +- 3 files changed, 4 insertions(+), 3 deletions(-) diff --git a/content/.obsidian/community-plugins.json b/content/.obsidian/community-plugins.json index be22d299..05195a1b 100644 --- a/content/.obsidian/community-plugins.json +++ b/content/.obsidian/community-plugins.json @@ -5,5 +5,6 @@ "obsidian-local-rest-api", "obsidian-excalidraw-plugin", "obsidian-git", - "obsidian-auto-link-title" + "obsidian-auto-link-title", + "2hop-links-plus" ] \ No newline at end of file diff --git a/content/.obsidian/core-plugins.json b/content/.obsidian/core-plugins.json index 1d8661f5..30c06190 100644 --- a/content/.obsidian/core-plugins.json +++ b/content/.obsidian/core-plugins.json @@ -19,7 +19,7 @@ "zk-prefixer": false, "random-note": false, "outline": true, - "word-count": true, + "word-count": false, "slides": false, "audio-recorder": false, "workspaces": false, diff --git a/content/private b/content/private index c82a68bb..2916f5a7 160000 --- a/content/private +++ b/content/private @@ -1 +1 @@ -Subproject commit c82a68bb21e4543f695d6e963194a44e246ddf0a +Subproject commit 2916f5a76fbef79965afdfb3f61f48ec9d349e46 From d44b9a151b58b1c45b5d386a165ee90469773669 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: Wed, 30 Oct 2024 14:05:53 +0900 Subject: [PATCH 21/25] [obsidian] vault backup: 2024-10-30 14:05:52[ --- content/private | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/private b/content/private index 2916f5a7..e24cb876 160000 --- a/content/private +++ b/content/private @@ -1 +1 @@ -Subproject commit 2916f5a76fbef79965afdfb3f61f48ec9d349e46 +Subproject commit e24cb87620729b353d691a59880fd32b181397b3 From 8a03c67fe327d24086494562a1d21356ef9f71ba 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: Wed, 30 Oct 2024 15:07:08 +0900 Subject: [PATCH 22/25] [obsidian] vault backup: 2024-10-30 15:07:08[ --- content/.obsidian/graph.json | 2 +- content/Computation Expression.md | 10 ++++++++++ content/FSharp.md | 8 ++++++++ content/Tomas Petricek.md | 2 +- content/private | 2 +- 5 files changed, 21 insertions(+), 3 deletions(-) create mode 100644 content/Computation Expression.md create mode 100644 content/FSharp.md diff --git a/content/.obsidian/graph.json b/content/.obsidian/graph.json index fd1095fe..5733dfe1 100644 --- a/content/.obsidian/graph.json +++ b/content/.obsidian/graph.json @@ -17,6 +17,6 @@ "repelStrength": 11.1808268229167, "linkStrength": 0.893798828125, "linkDistance": 48, - "scale": 0.15383699374609286, + "scale": 0.7181374393724258, "close": true } \ No newline at end of file diff --git a/content/Computation Expression.md b/content/Computation Expression.md new file mode 100644 index 00000000..f29ea093 --- /dev/null +++ b/content/Computation Expression.md @@ -0,0 +1,10 @@ +--- +date: 2024-10-30 14:39 +--- +#programming + +[[FSharp|F#]]で使えるDSLを構築する方法。 + +[[Haskell]]のdo式をユーザーでカスタマイズできる・・・みたいな感じだと思う。 + +[Computation expressions: Introduction | F# for fun and profit](https://fsharpforfunandprofit.com/posts/computation-expressions-intro/) diff --git a/content/FSharp.md b/content/FSharp.md new file mode 100644 index 00000000..e742e229 --- /dev/null +++ b/content/FSharp.md @@ -0,0 +1,8 @@ +--- +date: 2024-10-30 14:35 +--- +#programming-language + +C#のランタイムである.Net上で動く関数型言語。 + +[[Computation Expression]]とか独自のDSLを構築する方法で有名 diff --git a/content/Tomas Petricek.md b/content/Tomas Petricek.md index 320786d0..af357575 100644 --- a/content/Tomas Petricek.md +++ b/content/Tomas Petricek.md @@ -4,7 +4,7 @@ date: 2024-10-29 14:06 #person #stub -プログラミングの思想の哲学などの研究者。[[F#]]が好きらしい。 +プログラミングの思想の哲学などの研究者。[[FSharp|F#]]が好きらしい。 [Tomas Petricek - New ways of thinking about programming](https://tomasp.net/) diff --git a/content/private b/content/private index e24cb876..1f600c94 160000 --- a/content/private +++ b/content/private @@ -1 +1 @@ -Subproject commit e24cb87620729b353d691a59880fd32b181397b3 +Subproject commit 1f600c949a58c854b32f1b5d61ffc6fe4f8bad66 From b409e874d8b351ca5fdbe9713a55c0d77e142844 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: Wed, 30 Oct 2024 16:07:08 +0900 Subject: [PATCH 23/25] [obsidian] vault backup: 2024-10-30 16:07:08[ --- content/mimiumでMIDIインプットを実装.md | 27 +++++++++++++++++++++++++ content/private | 2 +- 2 files changed, 28 insertions(+), 1 deletion(-) create mode 100644 content/mimiumでMIDIインプットを実装.md diff --git a/content/mimiumでMIDIインプットを実装.md b/content/mimiumでMIDIインプットを実装.md new file mode 100644 index 00000000..b60fba39 --- /dev/null +++ b/content/mimiumでMIDIインプットを実装.md @@ -0,0 +1,27 @@ +--- +date: 2024-10-30 15:42 +--- +#mimium + +IOの順序保証とか考える + +正格評価だとIOモナドとかはそもそも考える必要がない + +[Algebraic Effects入門](https://v2.aintek.xyz/posts/introduction-to-algebraic-effects) + +> `type 'a io = unit -> 'a` +> 純粋な値は以下のようなIOモナドにリフトできる。 +> `let return x = fun () -> x` +> 計算はバインド演算子によってつなげることができる。 +> `let (>>=) c1 c2 = fun () -> c2 (c1 ())` + +mimiumだとバインド演算子ってこうか(ジェネリクスが必要だけども) + +```rust +fn bind(f1,f2){ + | | f1() |> f2 +} +``` + + + diff --git a/content/private b/content/private index 1f600c94..290bc582 160000 --- a/content/private +++ b/content/private @@ -1 +1 @@ -Subproject commit 1f600c949a58c854b32f1b5d61ffc6fe4f8bad66 +Subproject commit 290bc582d6210c7181eca8ed60ae467293b9de19 From 74fd2c38362143a62d71d97ec2b20e9bc0d861ec 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: Wed, 30 Oct 2024 17:07:08 +0900 Subject: [PATCH 24/25] [obsidian] vault backup: 2024-10-30 17:07:08[ --- content/mimiumでMIDIインプットを実装.md | 73 +++++++++++++++++++++++++ 1 file changed, 73 insertions(+) diff --git a/content/mimiumでMIDIインプットを実装.md b/content/mimiumでMIDIインプットを実装.md index b60fba39..c6a2f537 100644 --- a/content/mimiumでMIDIインプットを実装.md +++ b/content/mimiumでMIDIインプットを実装.md @@ -3,6 +3,79 @@ date: 2024-10-30 15:42 --- #mimium +## 要件 + +どこまでMIDIインプットをmimiumの世界の外側として捉えるか + + +### 先行例 + +[[SuperCollider]]や[[ChucK]]はコールバックを登録するようなイメージ + +[Using MIDI | SuperCollider 3.12.2 Help](https://doc.sccode.org/Guides/UsingMIDI.html + +```smalltalk +s.boot; + +( +var notes, on, off; + +MIDIClient.init; +MIDIIn.connectAll; + +notes = Array.newClear(128); // array has one slot per possible MIDI note + +on = MIDIFunc.noteOn({ |veloc, num, chan, src| + notes[num] = Synth(\default, [\freq, num.midicps, + \amp, veloc * 0.00315]); +}); + +off = MIDIFunc.noteOff({ |veloc, num, chan, src| + notes[num].release; +}); + +q = { on.free; off.free; }; +) + +// when done: +q.value; +``` + +まあこれはDSPアウトプットの合成が.playで暗黙的に行える(加算で合成されるという想定)だからできることかな、、、 + +ChuckもボイスごとにShredを生やす方向で対応してるからちょっと微妙だ + +[Chuck - Input & Output](https://chuck.stanford.edu/doc/reference/io.html#MidiIn) + +--- + +現実的には、[[Faust]]のように、ボイスアロケーターは外側で実装してしまい、非同期に更新されうるAtomicな値のセルをノートやccのデータとして受け取れるようにすれば当面は十分 + +が、最終的にはMIDIエフェクト(MIDI信号自体のディレイやクォンタイズ、スロットリングとか)を[[FUnctional Reactive Programming|FRP]]っぽく書けると嬉しい + + +--- + +Noteのバインドの記法 + +```rust +let channel:()->float = bind_midi_note_mono(channel) + +channel() //値の取り出し + +``` + +```rust +//rust +fn bind_midi_note_mono(vm:&mut Machine)->ReturnCode{ + let ch = vm.get_stack(0) +} + +``` + +--- + + IOの順序保証とか考える 正格評価だとIOモナドとかはそもそも考える必要がない From 99963a8643c10c251a3fa338f436e0890f41aca9 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: Wed, 30 Oct 2024 17:32:47 +0900 Subject: [PATCH 25/25] [obsidian] vault backup: 2024-10-30 17:32:47 --- content/mimiumでMIDIインプットを実装.md | 26 ++++++++++++++++---- content/mimiumの中間表現を考える.md | 32 +++++++++++++++++++++++++ 2 files changed, 54 insertions(+), 4 deletions(-) diff --git a/content/mimiumでMIDIインプットを実装.md b/content/mimiumでMIDIインプットを実装.md index c6a2f537..86217f94 100644 --- a/content/mimiumでMIDIインプットを実装.md +++ b/content/mimiumでMIDIインプットを実装.md @@ -59,20 +59,38 @@ ChuckもボイスごとにShredを生やす方向で対応してるからちょ Noteのバインドの記法 ```rust -let channel:()->float = bind_midi_note_mono(channel) +let cell:()->float = bind_midi_note_mono(channel) -channel() //値の取り出し +let (note,vel) = cell(); //値の取り出し ``` ```rust //rust -fn bind_midi_note_mono(vm:&mut Machine)->ReturnCode{ - let ch = vm.get_stack(0) +fn bind_midi_note_mono(&mut self ,vm:&mut Machine)->ReturnCode{ + let ch = Machine::get_as::(vm.get_stack(0)); + let cell = Arc::new((AtomicF64::new(),AtomicF64::new() )); + self.add_midi_listener(ch,|note,vel|{ + let (note_c,vel_c) = cell.clone(); + note_c.write(note); + vel_c.write(vel); + }); + let cls = |vm:&mut Machine|->ReturnCode{ + let (note_c,vel_c) = cell.clone(); + vm.set_stack(0,Machine::to_value(note_c)); + vm.set_stack(1,Machine::to_value(vel_c)); + 2 + } + vm::set_stack(0, wrap_rust_closure(cls)) + 1 } ``` +あとは頑張って`add_midi_listener`相当の何かを作ろうって感じだな(関数型っぽくはないけども) + + + --- diff --git a/content/mimiumの中間表現を考える.md b/content/mimiumの中間表現を考える.md index a0c0d0d5..286c4cbc 100644 --- a/content/mimiumの中間表現を考える.md +++ b/content/mimiumの中間表現を考える.md @@ -209,3 +209,35 @@ fn filterbank (n,filter){ //n:0 filter: 1 あ、でも`callcls`命令実行の時だけ、最初にgetstateを実行、暗黙的に読み出して、その中身のポインタへ飛べばいいのか Closureを作った時にどうやってstateのメモリを拡張するかというと、ヒープ上のクロージャのデータ構造自体にstateへのポインタを持たせないと無理? + +--- + +最小限の表現としてはCall(Stateポインタをいじる可能性がある)とCallClsの2種類で対応可能なんだろうけど、最適化を考えると + +- Call (ほぼ純粋な関数) +- CallState (後々SelfとかDelayを呼び出しうる関数) +- CallClosure +- CallExtFunction + +ここにTailCallとか加えると、それぞれに一つずつTailCall用の命令が映えるみたいな感じになるのだろうか + +コンパイル時ifが使える想定として + +```rust +call_function(&mut self,f:F){ + ifc !is_tailcall{ + self.stack.push_return_address(); + } + ifc is_closure{ + self.stateptr_stack.push(f.state_stack_ptr) + } + let nret = f(self); + ifc is_closure{ + self.stateptr_stack.pop() + } + ifc !is_tailcall{ + self.stack.push_return_address(); + } +} + +```