Compare commits
80 Commits
89d712c412
...
v4
| Author | SHA1 | Date | |
|---|---|---|---|
| 6443e8a507 | |||
| 875df01182 | |||
| 65bae8f538 | |||
| 0bd44c388d | |||
| 70e0e5b0c3 | |||
| a03b380b86 | |||
| 70211867c4 | |||
| bbdced067c | |||
| 89201f482b | |||
| 4457a48bb0 | |||
| 1666925042 | |||
| 97473f822d | |||
| 869e4566bd | |||
| a421988063 | |||
| 1927871ef3 | |||
| bba1f07a0d | |||
| b98be55a43 | |||
| 4863b3f5e7 | |||
| f436fdf4f1 | |||
| 8e10479dcc | |||
| eab147ebda | |||
| f3a3ea9437 | |||
| afcdefd317 | |||
| 29a6348864 | |||
| 94effceecd | |||
| 54cfb646b1 | |||
| 6d2315ae4e | |||
| e82c032c3a | |||
| b3ca7046c9 | |||
| 20183bd08e | |||
| ca92e0cf43 | |||
| 9e595cfb3d | |||
| 1390630f42 | |||
| 006e3e2ce4 | |||
| 64dbddb66b | |||
| 16ecfaef1c | |||
| af7a39e761 | |||
| cc12426e0d | |||
| b1b910fb11 | |||
| 75c1aebc93 | |||
| 289d3bbe23 | |||
| 449dcddb98 | |||
| 8f4dc421c1 | |||
| 6d8e8b37b9 | |||
| cc8b34d9a1 | |||
| 5710be159a | |||
| 5198dac505 | |||
| 14e1cd9888 | |||
| 065bc1d233 | |||
| 006b70c3bc | |||
| ff1fbc9453 | |||
| 928de40259 | |||
| f83d696be3 | |||
| a8bbf079f0 | |||
| 3bfa48eed6 | |||
| d816577cb9 | |||
| 7ed4ff132b | |||
| 6432be4577 | |||
| 9d725c6e1d | |||
| 8a60ce2b32 | |||
| 35a7a19e4a | |||
| c91e3c47f5 | |||
| 816fc1de96 | |||
| ce991d4610 | |||
| e15bddf56d | |||
| 757e72424b | |||
| 32b6136377 | |||
| 56564778af | |||
| adc7cef290 | |||
| 022348ec8d | |||
| 35335a72d1 | |||
| 0f6e472c29 | |||
| d89fa0f23e | |||
| 418eee9eff | |||
| 0c8170c076 | |||
| accc37b0bc | |||
| 68d67d76bb | |||
| dd2d689602 | |||
| c34c94b59d | |||
| 674b6aaadf |
@@ -122,20 +122,26 @@ MIDIのバイトストリームをフィルターして、ノートオンオフ
|
|||||||
|
|
||||||
最終的にはそれをHoldしてセルにして、セルをsampleして値にすれば良い
|
最終的にはそれをHoldしてセルにして、セルをsampleして値にすれば良い
|
||||||
|
|
||||||
|
ジェネリックなholdの実装をどうするかがキモ
|
||||||
|
|
||||||
|
最終的にはMIDI inにコールバックを登録する形になるから、依存性が逆転する
|
||||||
|
|
||||||
なんかJSには[[midiguchi]]というライブラリがあるらしい
|
なんかJSには[[midiguchi]]というライブラリがあるらしい
|
||||||
|
|
||||||
[[Haskell]]には[[Reactive-Banana]]使った[[ReactiveBalsa]]もある
|
[[Haskell]]には[[Reactive-Banana]]使った[[ReactiveBalsa]]もある
|
||||||
|
|
||||||
|
|
||||||
```rust
|
```rust
|
||||||
|
let hold = |i|{
|
||||||
fn voice_mono(notes:Stream<Note>){
|
let cell = i
|
||||||
let cell = notes |> hold({pitch:60,velocity:0})
|
|input| {cell =input, cell}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
let midiinput = midi_open_port("from Max 1");
|
let midiinput = midi_open_port("from Max 1");
|
||||||
let notes = midiinput |> filter_map(_,is_byte_note)
|
let notes_cell = midiinput
|
||||||
let notes_cell = notes |> voice_mono //ここまでが今のbind_midi_note_monoに相当
|
~> |x|filter_map(x,is_byte_note)
|
||||||
|
||> hold(_,{pitch:60,velocity:0}) //ここまでが今のbind_midi_note_monoに相当
|
||||||
|
|
||||||
fn dsp(){
|
fn dsp(){
|
||||||
let {pitch,velocity} = notes_cell |> sample
|
let {pitch,velocity} = notes_cell |> sample
|
||||||
@@ -144,9 +150,13 @@ fn dsp(){
|
|||||||
|
|
||||||
```
|
```
|
||||||
|
|
||||||
|
~>はHaskellの$のような、 a(b(c))を a ~> b~> cで結合弱く描けるようにする
|
||||||
|
|
||||||
[[Computation Expression]]使ってIOの値を`let!`でバインドしていく、とかの方がわかりやすいかも?
|
[[Computation Expression]]使ってIOの値を`let!`でバインドしていく、とかの方がわかりやすいかも?
|
||||||
|
|
||||||
MIDI入力がトリガーになってクロージャのupvalueを書き換えることでCellの中身を書き換えるとなると、現実的にはオーディオスレッドとMIDI(イベント)スレッドを跨いでupvalueを操作することになる。`get_closure_mut`でクロージャをゲットして実行することはできるけど、その時には結局VMがオーディオスレッドにいるから、VMがクロージャ実行予約の命令を受け取るmpscチャネルを持っておいて、予約されたらオーディオブロックの頭で実行する、みたいな感じにする??
|
Holdは組み込みの関数で、ArcSwapで包まれた値のセルを保持する
|
||||||
|
|
||||||
Arcでupvalueを全部包んで、closed upvalueの中身をAtomicU64にする、みたいな方法もあるにはあるが、そうするとClosureのストレージはVMそのものというよりもVMインスタンス間で共有される感じになるのかな
|
グローバル関数はメインスレッドで実行されて、クロージャIDを渡す
|
||||||
|
|
||||||
|
とはいえVMインスタンスがオーディオスレッドに渡ってしまうとなるとな
|
||||||
|
|
||||||
|
|||||||
Submodule content/private updated: c75edf3de9...3633b87ea5
@@ -60,7 +60,7 @@ Music: 1 sound source to 1 or multiple audience, has beginning, middle and end w
|
|||||||
ブルース・ナウマン ドローイングとしての吸音パネル
|
ブルース・ナウマン ドローイングとしての吸音パネル
|
||||||
ジェミシー・ジョーンズの音響階段
|
ジェミシー・ジョーンズの音響階段
|
||||||
|
|
||||||
(フィリップス・ 名前忘れた)サウンドを使う作品を作ってからサウンドアーティストというラベリングで非常に雑多なキュレーションを受けるようになった
|
(スーザン・フィリップス)サウンドを使う作品を作ってからサウンドアーティストというラベリングで非常に雑多なキュレーションを受けるようになった
|
||||||
|
|
||||||
歌や感情的なものが古典的なサウンドアートからは抜けている
|
歌や感情的なものが古典的なサウンドアートからは抜けている
|
||||||
|
|
||||||
@@ -74,4 +74,23 @@ non-cochlea sonic art コーエンによる定義
|
|||||||
|
|
||||||
美が何かに内在しているのではなく、概念的解釈を通じて美を感じているのである
|
美が何かに内在しているのではなく、概念的解釈を通じて美を感じているのである
|
||||||
|
|
||||||
|
ほぼ毎日繰り返される日常的な音
|
||||||
|
|
||||||
|
[[リュック・フェラーリの]]「ほとんど何もない」(プレスク・リヤン)
|
||||||
|
|
||||||
|
ビル・フォンタナ まるでテープループかのように聞こえる波の音の録音
|
||||||
|
|
||||||
|
個人的にはプレスク・リヤンはnon-cochlea sonic artかもしれないけど音楽の範疇と言っていいと思うとのこと
|
||||||
|
|
||||||
|
|
||||||
|
[[Samson Young]] Muted Situation あらゆるクラシック曲を全部ミュート付きで演奏する
|
||||||
|
[Muted Situation #22: Muted Tchaikovsky’s 5th \| Collection \| Mori Art Museum](https://www.mori.art.museum/en/collection/5054/index.html)
|
||||||
|
|
||||||
|
[[Christine Sun Kim]] Face Opera
|
||||||
|
|
||||||
|
[[Brandon Labelle]]
|
||||||
|
|
||||||
|
ある種のオリジナルの1960〜80年代のサウンドアートにおける社会性の欠如みたいなものが補完されてきたのが近年なのではないか
|
||||||
|
|
||||||
|
[[中井悠|中井]]さんの質問 マーケット的なものはどう考えてるのか
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user