「今回は、jit.genオブジェクトを見てみましょう。ジッターマトリックスを処理するという点ではjit.pixとjit.gl.pixオブジェクトと同じですが、jit.genオブジェクトはGenマトリックス処理の汎用オブジェクトで、あらゆるタイプ、次元、プレーン数のマトリックスを取り扱うことができます」とのことだった。以前にザッと眺めたところでは、せっかくのOpen-GLの3D-CGのサンプルがかなり単純で面白くなかったのだが、当面はそのままサンプルをなぞる事にした。Genオブジェクトが登場する以前は、行列データを面白く複雑な手続きで処理するための最良のテクニックの1つは、jit.exprオブジェクトを使用することでした。Genオブジェクトがマトリクスデータでどのように動作するかを説明するのに役立てました」・「jit.genでの作業も同じような基本的なスキルを使いますが、Jitterのgenオブジェクトのファミリーに少し慣れることで、jit.exprでは不可解に見える式をいかに簡単に扱えるようになるか見ていきましょう。これから、データサーフェス(数式によって輪郭が記述されたメッシュ)を生成します。これは、Jitterファミリーのgenオブジェクトの登場があなたの生活をどれだけ快適なものにしてくれるかを把握するための簡単な方法です」・「まず始めに、jit.exprオブジェクトの動作を見て、マトリックスデータを表現するためにどのようにそれを使用するかを確認してみましょう(jit.exprとjit.genの世界の両方において)。いうことで始まったが、要するに以下の3つのjit.glの記述法がある・・・というようなお話だと判断していると、最後まで行き着いてしまった。いうことなのだ(^_^;)。一気に進んでいくことにした。今回はいくつかの点で変更があります。私が全部やるのではなく、毎日ゲストプレゼンターを迎えます。このプレゼンターは、教育コンテンツを開発するサイクリングチーム(社内ではマテリアルチームと呼ばれています)のメンバーですので、様々な視点、パッチのスタイル、複雑さのレベルを得ることができます。パッチでこれを始めます:閾値ベースのバイナリサンプリングをして、オフセットとジッターのフィードバックを提供するパッチです。言い換えれば、これは私のウェブカメラを使って、私自身の不気味で炎に包まれた画像を作成するものです。私はかなり初歩的なテクニックを使っているので、誰にとってもかなり簡単なはずです。いうコメントがあり、Cycling'74の「中の人」が、Genのプロモーションのために一役買っていることが判明した。その後の展開は「Maxユーザにお任せ」というわけだ。これだけでは面白くないので、あれこれ修正して、僕のオリジナル版として、以下の「GEN_test_14.maxpat」を作ってみた。このように、Genの内部の細部にあまり深く立ち入ることなく、道具として改編して活用する、というのが、Maxユーザーの王道なのだ。「Genのパッチ・ア・デイシリーズへようこそ。'74アルゴリズムが私を選んだので、Jitterパッチをもう一つミックスします(Genファンへの注:Jitterパッチが2つ続けて始まったのは、単なるくじ運に過ぎません。絶望しないでください。これからたくさんのオーディオの楽しみが待っています)。今日のjit.pixパッチは非常にシンプルな手段を用いており、Jitterのgenオブジェクトがピクセルの位置をアドレスし、それをサンプリングする際に0.-1.0の範囲の浮動小数点データで動作するという事実を広範囲に利用しています。いくつかのトリガーオブジェクトと、データを合計したり、包んだり、折りたたんだりする機能を組み合わせれば、あらゆる種類のワープした楽しみを提供する余地があります。いうものだったが、これはこれまで万華鏡/曼荼羅パッチでさんざんやってきたものだったので、暖かくパスした。(^_^;)そして、この次に出てきた上の「3300.GenPAD03.maxpat」というのは、またサウンドねたのgen~に戻ってくれたので嬉しいのだが、なんとも不可解なパッチで、それでいてとても面白いものだった。「このパッチは、オーディオの最後の小節をBuffershuffler風に並べ替えるという、ある種の硬質なものです。パッチ内の混乱を避けるために、古いドラムループ.aifをハードコードしていますが、他のファイルやライブ入力に対して簡単に開くことができるでしょう」というもので、さっそくこれを自前の「GEN_test_15.maxpat」として改造を試みようとしたが、これがなかなか厄介だった。シンプルなdrumLoopなのに、これを不整脈のように再サンプリングしていて、「steps」パラメータは1/2/4/8/12/16/32とあるものの、実は3とか5とか7とか、さらには小数点以下まで指定することで、さらに謎な変拍子を生成してくれるのだった。見にはその動作原理が不明なまま、それでもこれ自体も面白いので「今後に向けてキープ」というディレクトリに保管しておくことにした。次に出てきた上の「3319.distancefunctions.maxpat」というのは、jitter(Open-GL)で空間の物体に対して、サウンドなど3次元の要素でライヴに「膨らませる」というもので、これもなかなかファンキーで楽しいものだった。「このパッチは、jit.gl.isosurfで使用する3Dマトリックスを生成するためにjit.genを使用することを検討したものです。私は、blobbyでamorphousなシェイプ(http://en.wikipedia.org/wiki/Isosurface)にいつも好感を持っていますが、これらを扱うのは難しい傾向があります。」・「私は、いくつかの基本的なオブジェクトプリミティブ(球、トーラス、円錐など)に対する一握りの距離関数と、いくつかの本当にクールな距離と領域の変形を持つWebサイト(http://www.iquilezles.org/www/articles/distfunctions/distfunctions.htm)に遭遇しました」・「添付したパッチは、基本的に2つのプリミティブ(立方体と球体)を取り、それらを同じデータセットに放り込んで、球体が立方体のグリップから「脱出」しようとするモーフィングブロブラー形状を作成するものです。私は、何が起こっているのかがわかるように、これをシンプルにしておきたいと思いました」・「jit.gl.isosurfaceは微妙なオブジェクトですが、一度正しい設定を見つけると、本当に素晴らしい結果を得ることができます。私にとって、jit.genは、3Dオブジェクトを計算するためにjit.gl.isosurfaceが必要とするタイプのデータセットと対話するための、より直接的な方法です。あるのも初めて知ったが、いやー、オタクは世界中にいるのだった。Musicパフォーマンスからのサウンドにリアルタイム反応するOpen-GLライヴ3D-CG)という材料として、これも自前の「GEN_test_16.maxpat」として、これまた「今後に向けてキープ」というディレクトリに保管しておくことにした。modes)の部分が無いので、とりたててソソラレルものは無かった。いうものもあるのが、Forumのいいところなのだ。次に出てきた、上の「3332.gpatchadayfeb9feedback.maxpat」というのは、「このパッチはオーディオフィードバックネットワークです。前のフィードバックネットワークの例とルーティングが似ていますが、より無入力タイプです(ほとんど)。音を減衰させるのではなく、チューブの中を移動させ続けようとする点でも異なります。いえ、実際のゲインコントロールは行われていないので、注意してください」というもので、スタートでインパルスを音源としているだけで、パラメータを初期状態としているだけで(特にいじらなくても)実に素晴らしいサウンドを自動生成してくれた。これはもちろん、自前の「GEN_test_17.maxpat」として、これまた「今後に向けてキープ」というディレクトリに保管しておくことにしたが、ちょうど新しい作曲に関してこんなのが欲しかった・・・という、モロに直球で来た感じがある。半分ぐらいまで進んだが、今日はこのあたりで満腹、終了となった。実り多いお盆休みである。2022年8月15日(月)終戦記念日だというこの日だが、僕の親父も少年兵航空訓練場?か何かに行っている時に終戦となって実際に戦場には行っていなかったこともあり、残念ながらとりたててのコメントは無い。片付けられないまま、もう半年も経過しているのが悲しいだけである。作って1日が始まった。半分ぐらいまで進んだところからの続きである。Taylorの素晴らしい7セグメントエンベロープ(examplesフォルダに含まれている)を少し修正して、セグメントごとにカーブを調整できる標準的なADSRとして動作するようにしました。私はこのエンベロープが大好きで、今後のMaxの仕事において、私のエンベロープの仕事をすべて置き換えてくれるだろう。gen~の例を音源として採用しました。この例では、gen~自体は変更されておらず、私は単にモジュレーションの柔軟性のために、その周りに多くのMaxを構築したに過ぎません」とのことだが、ここまで完成されていると、逆に引いてしまう(料理しにくい)。gen~の例」という部分だけを切り出して、上のように今後に自分なりに活用できる「GEN_simple_FM」というパッチに改訂した。これはCPUがかなり軽いので、最近のパッチ(FMを多重で使用)でCPUが重かったものを置換するには最適である。いうのが、Maxユーザにとっては楽しいのである。YouTube次に話題になったのは、jitterでのモーフィングである。Maxに付属しているアヒルの3Dモデルデータを使って、上のようにリアルタイムにモーフィングしつつマウスで3D空間内でぐりぐりと動かせるというのは面白い。僕はこれを今後に使うという予定は、今のところ皆無なので、さらに次に進んだ。次は「daveのオーディオフィードバックネットワーク」をアレンジしているもののエラーが出て困る・・・というものだった。試してみると本当にエラーが出るので、こういう場合には暖かく無視して次に進む(^_^;)。その次の「3353.GenPADmultisine.maxpat」というのも、昨日にやったパッチの微改良のようだったが、パッと見に違いが分からなかったのでこれもパスした。その次の「3361.gl.pixdistortions.maxpat」というのも、昨日にやったパッチの微改良のようだったが、あまり劇的な変化も無かったのでこれもパスした。例を借用しています)、2つの点、つまり、非線形ランピングモードとランプスロープ制御が追加されています。value'と呼ばれます)は、ターゲットのランダム値が早く到着し、波形のステップ成分を作成するように、補間のスロープを'ランプアップ'させることができます。これは、パラメータをある地点まで滑空させ、しばらく停滞させ、また別の地点まで滑空させたい場合に有効です。極端に言えば、波形は純粋なノイズのステップ関数になります。モジュレーションをかけることで、よりワイルドなサウンドにすることもできます」とのことだった。触った感じでは、まぁ教科書的なサウンドという程度だったので、これもパスすることにした。自分の作曲のために今後にキープしよう、というアンテナにひっかかるには、パラメータをちょっとイジッただけでとんでもなくヘンなサウンドが出てくれるぐらいのものが欲しいのだ。その次にあった「3376.genPADfilters.maxpat」とは上のように、onepole~フィルタが、どうもMaxのバージョンによって性能が違っている・・・という「研究成果」だった(^_^;)。いうところにこだわる人もいるのだが、もうMax5だのMax6だの、というのは現在では死語なので、これは軽くパスした。その次にあった「3377.PM.Comb」とは上のように、櫛形フィルタについて、「ICSTの論文を元に実装したコムフィルタです。オールパス補間を用いているので高域の精度は高いはずだし、サチュレーションも内蔵してます。無限のサスティーンはできませんが、あまり狂気じみたことをせずにカスケードすることができます。αパラメータはFF係数です」・・・というような「研究成果」だった(^_^;)。いうところにこだわる人がまたいたが、これも軽くパスした。Genオブジェクトのパッチ・ア・デイのツアーでは、コードボックスをあまり見ていないので、1つ投げ入れてみようと思いました。ご存知のように、私はナビエ・ストークス方程式が特に好きです。KnaveStoriesプラグインで最初のPluggoチュートリアルを書いた頃から、最後のVizzieモジュールまで、ずっとです。そこで、ナビエ・ストークス三人組を紹介したいと思います。externalのオーディオレート版を生成するGenパッチングの進行をマップした3つのGen~パッチのセットです。このトリオは、3つの微妙に異なるgen~の方言でNavier-Stokes方程式を実装します。expr演算子がもう少し重い仕事をするバージョン(NS-expr)、最後のcodeboxベースのバージョンでいくつかの内部ベルとホイッスル(内部オートスケール!)を含むものです。この3つのパッチはすべて同じ計算を実装したものです(パッチ自体の中にあります)ので、パッチの進行状況を感じ取っていただければと思います。Wakefieldに賛辞を送りたい。彼は私のオリジナルのコードボックスワークアウトを見て、コードボックス内にヒストリー演算子を含める方法とオートスケーリングを組み込む方法を教えてくれたのだ。(彼はまた、私のsah演算子を?演算子に置き換えることについて、いくつかの有益な提案をしてくれました)。彼は今でも私のヒーローの一人であり、もう一杯飲まなければなりません。Boxの活用を喚起したくて投稿されたようである。Boxを使うところにはまだまだ行けないので、これも軽くパスした。次の「3447.sawcloud」では、遂に今日のご馳走というか、美味しいサウンドが登場した。太さを調節できるノコギリ雲を実装することにしました。genとしては、これがベストでも効率的でもない実装であることは間違いないのですが(コメントや提案を歓迎します)、でも、ほら、やってみることで学ぶことができるのです。失敗を恐れていると考えないで、もっとフロップチャンスだと考えてください」という殊勝な言葉とともに、いやいや美味しいサウンドである。元波形は単なる鋸歯状波であるが、これをデチューン5個、さらにLEOデチューン2個、という計7個によるクラウドにしたことで、とても分厚いのにCPUは4-5%なのだ。これは「キープ」領域にコピーした。続く「3416.oooahh.maxpat」というのも収穫となった。上のように入力は鋸歯状波、ここに3バンドのフォルマントフィルタをgen~として並列に処理しているだけなのだが、いい感じに「ooo」から「ah」にモーフィングしてくれる。「GEN_test_21.maxpat」にまとめて、これも「キープ」領域にコピーした。これは明日に予定している、ゼミM1・王さん(ホーミーのフォルマント合成に挑戦中)に紹介するネタが出来た。(^_^)続く「3421.genPADdupeskip」は、上のようにスクリーンショットの中に本人の説明があるが、せっかくのサウンドねたなのだが、当面はパスとなった。多重にループさせるためにhistoryを多用しているところが、ある意味で狂気じみていて、凄い。その後は、「バグあり」、「バグあり→アップ仕直し(イマイチ)」、というのが続いた。「3453.segmentshaper」は、教科書的なパッチと共に「今回で1日1パッチの連載は終了です。一緒に楽しく遊んでいただけたら幸いです。c74のマテリアルグループのメンバーを代表して、これらのパッチに協力してくれたWesとGrahamに、そしてこの素晴らしいMaxへの追加に取り組んでくれたことに感謝したいと思います」というものだった。あり、その中身は以下のようになった。いやいや、邪魔の入らないお盆休みのお勉強としては、とても収穫があった。Patches」として、以下をチェックすることで完了する・・・という「先」が見えてきた。「使ってみたい」と思うのは数個に1個ぐらいなものだろうが、サウンド周りの「gen~」であるからにはここを未チェックというのは後々によくないので、まだまだチェック作業を続けていくことになる。Patches」である。ここまでの勉強によって、だいぶGenの勘所も分かってきたので、これを後回しにしておいて良かった。全て「gen~」、つまりMSPのGenなので、新たな作曲のために新たなサウンド生成を求めている僕としては、とりあえず全てをチェックして、美味しいところをいただきたいのだ。リストはアルファベット順だったが、一部ではシンプルなものから応用編に進むために順序を変えてある。Taylorの素晴らしい7セグメントエンベロープ(examplesフォルダに含まれている)を少し修正して、セグメントごとにカーブを調整できる標準的なADSRとして動作するようにしました」というのにマルマル使われているものだった。そこでは、僕はこのエンベロープジェネレータでなく、発音させるFMの部分をいただいたので、これでオシマイである。BLIT:」、とあったが、Genナシでphasor~に入れても出来そうなものを、言語表現(expr)でGen化しているようだった。phasor~:」の方に繋ぎ直してみるとほとんどサウンドは変わらなかったので、以下のように「Genナシ」のシンプルな実験パッチを作ってみた。feedback上のようなものである。色々なテクニックが詰まっているようだが、出てくるサウンドはそれほど美味しい感じもしなかったので、とりあえずこれは看過することにした。objectこれは凄い。左側はパッチの下にあるGenのように、正しくbiquadフィルタをGenで実装しているので、今後はぜひともこちらを使いたい・・・とキープ領域にもコピーした(^_^)。右側には、それぞれまさに「ディジタルフィルタの教科書」のように、expr記述のGenとして、15種類ものフィルタが並んでいて「どれでも使って」と待機している。CPUも6%程度と軽いので、これだとQの高いフィルタを複数、ライヴでうりうり動かせそうだ。resolution」というのは、どうもイマイチ、面白い感じが無かった。downsamp~」というのは、入力がシンプルな正弦波なのに、Genに単なるラッチを入れてダウンサンプルするだけで、なかなか面白いことになった。入力に生のサウンドを入れてもOKで、リングモジュレータみたいな効果として美味しいので、こちらも上のように自前のパッチとしていただくことにした。responses」ということで、信号処理の基本として有限インパルスレスポンスをきちんと時間ドメインで畳み込みしているものである。この領域で作曲に何か使うという予定は当面は無いので(^_^;)、これはそのままスルーすることにした。calculatorこのパッチは、FFTのエネルギー重心を計算するGenを、boxesとcodeboxの両方で実装してみた、という教育的なサンプルだった。これもとりあえずは手元保存せずスルーである。attractors「カオス」である(^_^)。Attractor」である。PC-9801(ふ、ふ、古い(^_^;))のC言語で2次元カオスを生成してスクリーンに出していたので、この右側のGenはちょっと興味があるのだが、当面はこれも触れないので、ここにこれがある、ということだけ記憶しておこう。Gen~の中身もなかなかぐちゃぐちゃと試行錯誤している感じで、逆に好感が持てる。ライヴ・サンプリングものではそこそこ使えそうだが、CPU=6%とまずまず軽い。playback一つ前のパッチに「repeat」が加わったというタイトルのこのパッチは、前のものと違って上のGenのcodebox(上下にまだまだ見えていない部分がたくさんある長大な処理)が全てなのだが詳細不明である。あれこれ入力してあれこれ操作すると、とんでもなく面白いサウンドが出てくるので、これもキープ一択である。Patches」のリストには並んでいなかったのだが、何故かGenサンプルパッチ群のディレクトリに入っていたもので、上がGen版、そして下がその元々の「chucker~」のヘルプ(これまで全く知らなかったもの)である。遊んでみればこれはなかなかご機嫌なのだが、元のMSP版ではそこそこ大変な処理なのがGen化されているというので、これまた今後に使いやすい感じに改訂してキープした。objectまさに王道の「櫛形フィルタ」である。当面は使うアテがないのでスルーしておくことにした。゙キチンと生成する、というGenの教科書的なサンプルである。使うアテがないのでスルーしておくことにした。objectこれは「count~」、つまりディジタルオーディオのサンプリング周波数のタイミングで馬鹿正直に「counter」を作る、というGenの教科書的なサンプルである。これも使うアテがないのでスルーしておくことにした。Patches」のリストには並んでいなかったのだが、何故かGenサンプルパッチ群のディレクトリに入っていたもので、とても優秀なリバーブであった。CPU=5%程度と軽く、今後にも使えそうなもので、もちろんきっちりキープした。Patches」のリストには並んでいなかったのだが、何故かGenサンプルパッチ群のディレクトリに入っていたもので、もろに2つの系統のFFT入力を畳み込みするという、教科書通りのCross-Synthesisだった。これも当面は使うアテがないので、スルーしておくことにした。3つの周波数帯に分割したフィルタであり、全部を加えるとAllpassになるものだった。Genの中で教科書的に構築しているようだが、これも当面は使うアテがないので、スルーしておくことにした。generator)である。Genの最初のあたりで、指数関数的な補間パッチのコピペに失敗していたが、たぶんこれを使えば出来るような予感があるが、まぁ当面はパスしておいて、いずれやってみることにした。進んだ感じで、これぞ夏休みのお勉強である。途中、午後イチにはゼミM1・王さんが研究室にやってきて、先週から新たに進めたプロジェクト、そして僕が今やっているGenの話、SuperColliderの話、Propellerの話、などなどを進めた。明後日にはゼミ吉田さんのインスタレーション作品のスタジオでの記録にも協力してくれる予定で、僕もこれはちょっと楽しみなのだ。2022年8月17日(水)8月17日である。「2022年3月9日(水)」から始まっていた、「夏の札幌(*^o^*)」が合言葉だったLIFE2022に、当初予定であれば「札幌初日」だった。それが突然にオンライン(;_;)になってしまってテンションはダダ下がり、先週にあった「ZOOMリハーサル」も完全シカトで、本番は明後日から金土日と開催されるのだが、おそらく自分の発表セッションの土曜の朝イチ以外は、まったくZOOMとかを覗こうという気にもならない。今日はそんな呪わしい日だったのだが、朝イチで届いていたメイルで一気に世界は色彩を取り戻した。「2022年4月29日(金)」のところで、とりあえずCOVID-19にめげずに行くのだ・・・とホテルとフライトを予約していた。Resistance」という企画公募を発見して、「2022年5月10日(火)」のとこにある内容で応募していた。Electronicaの関連シンポジウムでの招待講演」ということになっていた(^_^)。今日、その正式な続報が届いたのである。こんなのが届いたら、もテンションは爆上がりである(^_^)。僕の出番は最終日の日曜日の午後の、それもラスト(なんと「トリ」か???)なので、いつもの感じでは来場者もだいぶ減ってきていることが予想されるが、何より単なる視察でなく「招待講演」ということが大きい。今日は午後にはJoyJoyヒトカラ予約をしているので半日仕事であるが、気合いが入るというものだ。GENのお勉強シリーズの続きである。Contents」とやって、上のように辿ったところに「gen」というディレクトリがあり、これをいちいち調べている。Patches」のリストには無いものもこの「gen」というディレクトリには含まれているので、一応調べてみて、意味があるものはここに追加する、という作業である。昨日の最後の「gen~.curve.maxpat」もリストに無いもののこのディレクトリにあったので取り上げたが、アルファベット順で次に続く「gen~.data-urn.maxpat」とか「gen~.dattorro_reverb.maxpat」もリストには無いが、ここからのスタートとなった。Urnこれは「重複ナシに出てくるrandom」である「urn」をGenで実装したものらしい。中身としては「過去の結果と照合してダブっていなかったらOK」というのをチェックしているのは、スクリプトを眺めているとそんな感じだった。これは当面は使うアテがないので、スルーしておくことにした。従ったものを実装しているのだった。手元に「GEN_test_28」とゲットしてCPUを調べてみると、最大でも9%程度とまずまずコンパクトだが、9個のパラメータをいじってみると色々に効果が変わって、なかなか有用であると確認できた。これは今後にも使えそうなもので、「使える候補」ディレクトリに、しっかりキープした。amplitude」という「deltaclip~」をGen化したものらしいが、あまり使いでが無さそうなのでスルーしておくことにした。object「サウンドデザイン」のMaxアニメーション(数理造形)でも、単なる「random」ではあちこちに不自然にワープするのに、「drunk」(足の長さが有限な酔っ払いおじさんの千鳥足ランダム)にすると「生物っぽくなる」として学生たちも愛用しているdrunkだが、そのMSP版のdrunk~というのがあり、それをGen化したものらしい。サウンド生成の局面だと、色々なパラメータに従って音響生成するアルゴリズムに対して、そのパラメータ(実数値)をdrunkで制御することはあるとしても、わざわざGenでdrunk~そのものを高速化するという必然性はちょっと不明なので、ここではスルーしておくことにした。従ったものを実装しているのだった。確かに、サンプル波形の尖った部分がちゃんと丸まっていたが、とりあえずここではスルーしておくことにした。Coding」を実現するという、超面白いパッチだった。Gen~の中身は単なるCodeboxだけであり、ここにテキスト画面から任意のサウンド生成スクリプトを書き込むと、そのスリスプトが「dynamicexpr.js」によって変換されてCodeboxの中にライブで刻々と書き換えられつつ書き込まれる。このサンプルでは1秒ごとに、このスクリプトに従ったサウンドをライヴ生成しているので、1秒ごとにファンキーなサウンドが出てくるのである。Coding」のサンプルとしてキープしておくことにした。objectこれは「ゼロクロス点のエッジ検出」である「edge~」をGenで実装したものらしい。立ち上がり点、立ち下がり点、それぞれをインパルスとして出力するので、ハードシンク・オシレータなどをGenで実装する時に使えそうなのだが、これも当面は使うアテがないので、スルーしておくことにした。Patches」のリストでは「gen~.fbam.maxpat」となっていたが、実際には「gen~.feedback_am.maxpat」となっていたので注意が必要である。problem"」となっていて、ICMCの研究を参考に2次のフィードバックAMをGenに実装したようである。実際には、いきなりソースに1Hzのサイン波を加算していたりしてちょっと怪しい(^_^;)のだが、調べてみると入力の周波数成分を使っているので、一般のサウンドを入力できるわけではないと判明して、暖かくスルーした。Patches」のリストでは「gen~.ffm.maxpat」となっていたが、実際には「gen~.feedback_fm.maxpat」となっていたので注意が必要である。実際には上のように、左右2種類の異なる「フィードバックFM」が紹介されていた。PM)」というもので、シンプルながら4つのバラメータで劇的なサウンド変化が得られる「美味しいFM」だった。FM」ということなのだが、「肝」としては3つのオシレータ2個ずつ、計6個のパラメータをランダム生成する「randomize」というサブパッチが呼んでいる「lfo」というサブパッチ・・・という構造が面白いものだった。weirder」とあるように、周期的に落ち着くポイントがあるものの変化がそれほど無いと判明したので、結論としてキープしないでおいた。filters」ということで、5種類のフィルタがずらりと並んだ。biquad~」は以下のようなサブパッチによって、既に検討してあった「gen~.biquad.maxpat」をloadして呼び出せる、というサンプルになっていた。Filter」という3種類は今後も使える・・・と判断して、キープのために「GEN_test_30.maxpat」・「GEN_test_31.maxpat」・「GEN_test_32.maxpat」として整備してみた。それぞれCPUの軽さなども確認していて、これはsweepのサンプルを含めて、なかなか使えそうだ。Chorus」となっている。-1」が入っているかどうかだけである。フランジャーとコーラスというのは確かにそういう関係だが、このようにハッキリ見えたのは収穫だった。このパッチも、ばっちりキープ領域に保存した。(^_^)・・・というところで、今日はこのあたりまでとなった。Patches」の項目の半分にも到達していないようだが、ぽこぽこと「使えそう」という美味しいパッチが出てくるので、この宝庫を簡単に通り過ぎるわけにはいかない。これからも、ここはじっくりと眺めていくことにしよう。2022年8月18日(木)昨日のJoyJoyヒトカラ6時間では62曲を完走したが、だいぶ飛ばしたので疲労感があり、いつもの朝のエクササイズをパスした。毎日欠かさずということでなくてもいいのだ。今日の午後には、ゼミ・吉田さんが「カエルBAND」のスタジオ撮影のアポを入れていて、M1・王さんも手伝いに合流することになっている。眺めても忘却の彼方だった(^_^;)。聴衆はおそらく、同じセッションの辻下先生・照岡さん・鈴木先生ぐらいなので、ZOOM越しにMax8を使うというリスキーなライブを行うことにして、プレゼン(スライドPDF)は省略する予定である。Patches」の項目のお勉強の続きを進めることにした。code」とあるので、だいぶ昔にIRCAMで作られたフルートの物理モデルをGen化したものらしい。Workstation)ボードも知らないだろうし、そのISPWボードでライブ音響処理をプログラミングするための開発ツールとして作られたのが、現在のMaxになっている・・・という事も知らないだろう。これは残念ながらあまり美味しいサウンドでもなかったので、歴史的意義はあるものの、キープしないでおくことにした。envelope」とあるが、パラメータを変えてみるとなかなか美味しいものだった。CPUも4%と軽くていい感じなので、さっそく「GEN_test_34.maxpat」としていただき、キープすることにした。freeverbこれは王道中の王道、他のMax8パッチでも多く呼び出されていた「Freeverb」である。freeverb」というのが置いてあるだけで、これは同じディレクトリに置かれた「freeverb.gendsp」というのを参照する構造になっている。freeverb_allpass」として同じディレクトリに置かれた「freeverb_allpass.gendsp」というのを参照している。「Freeverb」を使うためには、これら3つの「gendsp」ファイルも同じディレクトリに置かれている必要があるのだ。crossover」という方では、やはり同じディレクトリに置かれた「crossover.gendsp」というのを参照していたのだった。「GEN_test_35.maxpat」として実験してみると、やはりCPU=11%ほどになる時があり、あれこれ呼び出してキチンとやっていた。Patches」のリストには並んでいなかったのだが、「gate~」でサウンドをON/OFFする時に発生するクリックノイズ(「プチッ」というやつ)を低減させるためのGenらしい。試してみるとあまり違いが分からなかったので(^_^;)、キープしないでおくことにした。作曲の段階でプチが気になる場合には、ちゃんと「*~」に数値を入れてミュートする癖が染み付いているので、僕にはこれは不要なのだ。Multple」を翻訳してみたら「最大公約数と最小公倍数」だった。当面は使途がないのでパスしておくことにした。gigaverbその名の通り、ギガなリバーブである。入力がモノラルのサウンドを、ステレオでゴージャスに広げるには格好のツールのようだ。上のスクリーンショットでは、Genブロックがあまりに巨大なので「75%」に縮尺して、ようやく画面に入った。「GEN_test_36.maxpat」として実験してみると、色々なパラメータで装飾できるのに、CPUはピークでも9%となかなか良好で、これならfreeverbよりもこちらを活用することになりそうだ(^_^)。analysis/resynthesis」ということで、上の2画面のように、4つのGenパッチのうち2つは巨大なCodeboxで記述されている。ウェーブレット解析とウェーブレット再合成を行うものだというが、パッチ内の解説は以下のようになっていた。フーリエ解析が信号を直線間隔の正弦波の直交基底に分解するのに対し、このハール解析は信号を対数間隔の矩形波の直交基底に分解します。利点は、時間領域で簡単に行えること、再合成によりオリジナルを完全に再現できること、ビンの数が管理しやすく、より自然な間隔になることです。主な欠点は、この分析・再合成方法がほとんど使われていない理由ですが、符号化領域での変換のほとんどがエイリアシングアーチファクトを追加することです。エンコードされた各バンドは、サンプリングレートのデシメーションによる一種のバンドパスフィルタなので、驚くことではありません。いえ、これはウェーブレットの簡単な入門書として機能し、必要なときにはいくつかの素晴らしいクランチーな歪みを持っています。12」でデコードして、エフェクトを加えつつ元のサウンドにちゃんと戻っていた。これは難しそうなので、CPU=10%ほどだったが、パスしておくことにした。interpolationこれは教科書的に、色々な「補間」について並べたカタログのようなパッチである。上の2画面のうち、メインとなるGen~のCodeboxは「50%」で表示するほど大きなものだった。これは教科書ということで、「使う候補」エリアとしては、パスしておくことにした。points」とのことだった。curveなのだが、まぁ当面は不要ということで保存はパスした。Patches」のリストには並んでいなかったのだが、Forthのように、簡単な数値計算を行うインタプリタをGen~に実装したものらしい。パッチ内には「minilisp」というサブパッチがあり、この中にはLisp版の数値計算を行うインタプリタをGen~に実装したものも入っていた。これも当面はパスだと思われる。Patches」のリストにあるが、次の「gen~.karplus_strong_strange.maxpat」と逆順でこちらを先にした。synthesis」とあるように、古典的な打弦振動の物理モデル音源をGen~で実装したものである。これを保存するかどうか一瞬、迷ったが、次に「gen~.karplus_strong_strange」というのがあるので、そちらを調べてみることにした。Waveshaping」という方は、なかなか面白そうなサウンドがしたので、迷うことなくゲットすることにした。model」の世界から大きく飛躍している感じで、これは好きである。looperタイトル通りのライブLooperパッチである。サンプルがファンキーな感じで好きなのだが、ちょっと動作の詳細は理解しきれていない。groove~よりも軽いのだろう(CPU=6%程度)が、「注:ライブ入力録音に適したレイテンシー補正は考慮されていません。リバースフェーサー(逆再生)でも動作しません」との言い訳も書かれていた。詳細不明ながら、とりあえずこれはキープしておく事にした。ゼミ吉田さんのインスタレーション作品記録を行った。久しぶりにこの作品と遊んだが、一部、Arduinoシステムのバグがあったのだが御愛嬌ということで気にせず進めた。サウンドインスタレーションというのは、いいものである。上げたところでまだ帰宅までに時間があったので、もう少し「GENお勉強」を進めることにした。求めるGen~になっていて、リセットもあるのでGen~の中の理解には大きな助けとなった。これも教科書的なものなので、キープすることなく次に進んだ。ModFMこれは名前から大きく期待していたが、走らせてみるとそれ以上に素晴らしいFMだった。周波数軸上でバンド幅を指定して、その中心周波数をスラスラと移動させる事が出来て、これを複数束ねたらフォルマントにもなりそうな気がした。CPU=5%以下ととても軽く、これは文句なく「使える」パッチとして「GEN_test_38.maxpat」にキープ保存した。filter名前からして期待したが、実際に素晴らしいMoogシンセサイザーのサウンドが鳴った。JAN/2012.」ということで、しっかりしたものだった。1」ということで2系統のpoly~を呼んでいて、その中身にgen~があったが、この中身のCodeboxを見ると、中身には「require("moogLadderFilter")」と書かれていて、同じディレクトリに置かれた「moogLadderFilter.genexpr」というものを参照しているのだった。mf;}上が、一部カットした、その「moogLadderFilter.genexpr」の中身であるが、いやいや、過去の蓄積が詰まった、素晴らしい仕事なのだと感嘆した。これはスグには理解できないものの、ブラックボックスとして「美味しいMoogシンセサイザーの音」が得られるということで、謹んでキープ保存させてもらった。Synthesisを実現しているというスグレモノだった。CPUテストしてみると、瞬間的には12%になる事もあるが、およそ9-10%程度でこのサウンドを実現しているのは見事である。Synthesisではなかったので、当面はスルーとした。Patches」のリストには並んでいなかったのだが、同じ作者による「Overlap-Add」ネタのようである。パッチを見ていると作者のクセが出てくるが、このパッチとすぐ上のパッチは、まさにその証明となっていた。面白いサウンドはするのだが、このPulsarというのは僕にはいまいち染み込まなかったので、こちらも当面はスルーとした。Waveshapers」ということで、教科書的に3種類のOverdriveアルゴリズムをGen~化したというものである。僕はあまりディストーション系というのは使わない(好きではない)ので、これも当面はスルーとした。scripting」ということで、同じディレクトリに置かれた「genpatcherscripting.js」というJavascriptで記述されたモジュールを「js」オブジェクトによって実行する。genpatcherscripting.js」に「bang」を入れるとランダムな周波数のサインが1つだけ出力されるのに対して、「biggerer」を入れると10個のランダムな周波数のサインが出るように変更される。それも、10個のサインの周波数はあまり協和しないように構成されているのか、出てくる音響は「biggerer」を叩くたびにとても美味しいのだった。cycle~が10個なので、CPU=2-3%程度ととてもとても軽いのも嬉しいので、これはとりあえず「謎のお手軽な音響生成」ということで、キープ保存することにした。Patches」のリストには並んでいなかったのだが、教科書的にリミッターのアルゴリズムをGen~化したというものである。僕はあまりリミッター系というのは使わない(好きではない)ので、これも当面はスルーとした。comparisonスクリーンショットは訳あってナシである。これは「Genは凄いぞ、MSPでは無理だぞ」という事を見せつけるためだけのパッチであり、「良い子は触らない」ことをお勧めする。このパッチにはCPU処理状況のモニタがあって、どのくらいパソコンがしんどいかを表示している。「perf_null.maxpat」・「perf_gen.maxpat」・「perf_msp.maxpat」・「perf_gen_biquads.maxpat」・「perf_msp_biquads.maxpat」を読み込んだ時のCPU処理量を表示するのだが、これら5つのパッチが尋常じゃない中身となっているのだ(^_^;)。「perf_null.maxpat」以外のどのパッチを指定してもMacは長時間「虹色グルグル」になるが、例えば「perf_msp.maxpat」だとCPU=100%で貼り付いてしまった。その理由は中身を見てみれば分かるが、全く無意味に、多量の処理を多重に重ねまくっているのだった。Genの優れているところを強調したいのだろうが、これはちょっと、イタズラにも程があるという感じである。・・・というところで今日はオシマイとなった。Patches」の項目はまだまだ先は長いが、それでも半分は超えてきたかもしれない。美味しいものがあるので、このお勉強はさらに続くことになる。2022年8月19日(金)幻の「夏の札幌」LIFE2022の初日である。Proceedings.zipをダウンロードするとzipが866MBもあった。これを解凍すると何故か「Proceedings」ディレクトリの中に「life2022proc.zip」というのがあり(^_^;)、それを解凍するとようやく、「Life2022digest.pdf」と「LIFE2022proceedings.pdf」と「papersディレクトリ」(中身は論文289本)とが出てきた。多くの人々が「夏の札幌」を渇望していたか、全面オンラインになった事への恨み節が伝わってきた。Patches」の続きのお勉強である。calculatorここから、いよいよFFTがあれこれ登場する模様である。brightness」ということで、Gen~版とCodebox版の両方が並んでいたが、要するに教科書的なものであり、わざわざ「作曲用」ディレクトリにキープ保存するようなものではなかった。filterこれは実際にpfft~ということで、周波数領域での帯域を指定すると、そのようなバンドパスフィルタ、そしてバンド抑止フィルタになりますよ、というサンプルだった。試しにCPUメータを入れてみると、平均CPU=5%、ピークではCPU=8%程度の処理量だった。ここまでキッパリとエッジの立ったフィルタリングは作曲においてそれほど必要性を感じないので、これもスルーとした。history」とのことだった。pfft.vectral.expr」ということでCodeboxで実装したバージョンということになる。これも教科書的なものであり、キープ保存するようなものではなかった。Shifterではないので、単に「phasor~」をGenで実装しただけのものだった。これも何ということもなく、スルーとした。'blur'」というのは、かなり大仰なGenパッチであるにも関わらず、サンプルのパラメータをいじってもあまり劇的に変化しなかった。これはちょっと「外れ」の感じなので、パスとした。overlap」とのことで、パラメータをいじるといい感じのサウンドがしたのでキープ保存した。CPU=3%ほどで、いいキャラクタ(→formantに通じる?)の音が生成できる。これまでに登場したGenパッチのサンプルの中に、これを使っていたものがある・・・という確かな記憶があるものの、どれだったかは不明だった。object何をいまさらrandomなのか・・・と思ったが、Gen~の中を見てみると、けっこうしっかりとランダムに向き合っている感じのパッチだった。これを使うという局面が想像できなかったので、キープ保存はしていない。Patches」のリストには並んでいなかったのだが、次のもの(v2とあるので明らかに改訂版)と逆順にして調べた。「bandwidth」パラメータを1以下の小さな値にして、あとはパッチ内のテーブルをマウスでぐりぐりやると、なかなかに面白いレゾナンスサウンドが出てきて、さらにこのテーブルにゼロが書き込まれると「ゼロ除算」によって発振するのか、なかなかアナーキーな振る舞いが気に入った。Gen~のCodeboxを眺めてみると、「Bank」らしく64データのテーブルをダブルで持ってその演算をしているらしく、CPU=12%とそこそこ頑張っているのだった。これは文句なく、キープ領域に保存してみた。Patches」のリストには並んでいなかったのだが、上のものと同じ作者であるのは一目瞭然だった。予想外にも、こちらのパッチは色々とやっても上のバージョンほどの面白さが無かった(^_^;)。いうことで、こちらはパスとなった。routing」というbuffer~を介したルーティングのサンプルということだった。面白いサウンドは出ているのだが、こういうシーケンサタイプのランダム演奏はあまり好きではない(といっても過去の作品にそういうものもあるけれど)ので、これは謹んでパスした。shakerこれはタイトル通りのShakerである。Gen~のCodeboxもしっかり書かれている。ソースがnoise~だからか、感想としては残念ながら「面白くない(おもんない)」のである。おもんないのでは、まぁパスである。Interpolation」ということで、buffer~のサンプル音響がスムースに任意のスピードで再生されるもののようであるが、あまり面白くない真面目なもので、なんか謎だった。interpolation上のサンプルパッチ「gen~.sincinterpolation.forloop.maxpat」の謎が解けた。こちらのパッチは、Gen~の中身がCodeboxでループ記述していないために、16個のブロックを愚直に並べてやっているのだった。いずれにしてもスルーとなった。overlap-add」ということで、これは上のほうにもあった「overlap-add」好きな人が開発したもののようである。パラメータの「shift」はピッチに相当し、「window」というのを上げていくとちょっとだけ面白そうなサウンドになりかけるのだが、そこまでなのだった。「使える材料」としては、大袈裟なぐらい、劇的にサウンドが変化するモノが欲しいのである。「劇的」の程度はパラメータを抑えめにスケーリングすればいいだけなのだが、いくら持ち上げてもあまり変化しない「大人しめ」ものは使えないのだ。いうことでスルーとなった。object「slide~」と「rampsmooth~」とをGen~化したもののようで、要するにスムージングである。生サウンドの部分で使うのかどうか不明だが、僕は作曲においてはライブ演奏パラメータについては「スムージング不要論者」であり、時にカクカクと変わるのも「味」だと思っているので、これも暖かくスルーした。Patches」のリストには並んでいなかったのだが、次の2つと「spectral」の部分が共通なので、もしかしたら関係するのかもしれない。パッチとしては、入力サウンドをfftin~して周波数成分に変換して、周波数軸上の強度と位相としてレコーディングし、今度はこれを任意の再生速度で読み出してfftout~する、という馬鹿正直なものだった。瞬間的にはCPU=11%になるなど、ちゃんとまともにやっていたが、キープ保存するほどのことはなかった。delayやはり、上のサンプルパッチと「兄弟分」だった。パッチとしては、入力サウンドをfftin~して周波数成分に変換して、周波数軸上の強度と位相の特性テーブルによってDelayフィルタをかけて、その結果をfftout~する、という馬鹿正直なものだった。これもキープ保存するほどのことはなかった。feedbackこれは超絶面白い。前の2つの真面目なサンプルは、このパッチのための単なる「前フリ」だったのだ。基本的には同じように入力サウンドをfftin~して周波数成分に変換して、周波数軸上の強度と位相の特性テーブルによってDelayフィルタをかけて、その結果をfftout~するのだが、Delayフィルタの部分が二重(強度と位相それぞれ)のフィードバックループになっていて、「fun」というサブパッチの中のパラメータ定数群を叩いてやると、いやいや面白い効果が続出した。文句なく手元にキープ保存してみたが、平均してCPU=9%程度(ピークで瞬間的に11-13%)というものだった。time」というものらしかった。あまりに地味なのでスルーした。shapes」のことらしい。sync)」とのことだが、サンプルなのにここまで(Depthノブまで)完備しているというのはちょっと違和感がある。Gen~の中身も、厖大な説明があって、まぁいわばこれは作者のこだわりの詰まった「教科書」なので、これまたパスした。output」というものらしかった。オーディオ入力に対してスケショルドを設定してset/resetのフリップフロップみたいな動作を行うというのをGen~で実装していたようだが、あまりに地味なのでスルーした。wavatable」を参照した変換(thresh~)に似たようなものだった。これもあまりに地味なのでスルーした。Patches」のリストには並んでいなかったのだが、かぶりの無いランダムである「urn」のサウンド版?というGen~だった。これもあまりに地味なのでスルーした。synthesis」という知らない名前のシンセシスだった。2d.wave~」ということで、要するに2つのWevatableを参照してミックスしているだけなので、面白さの由来はこの「0.2Hzと0.03Hzで揺すっている」というところだったと判明した。VOSIMこのVOCIMというのは、今回Genのお勉強を始めるより前にどこかで調べてゲットしていた。活用する予定のものである。http://cycling74.com/forums/topic.php?id=37604」と書かれていた。古典的な物理モデルで、音源部分のGen~もそうだが、「resonator」部分(75%に縮尺してもこれだけ(^_^;))の部分もなかなかの力技である。こだわりに圧倒されたものの、物理モデルなので驚くようなサウンドはしないので、スルーとなった。waveform」と解説されていた。確かにサンプルの話し声に対しての効果はなかなか魅力的であり、基本的にはディストーション系は苦手な僕なのだが、これは喜んでキープ保存させてもらった。matching」ということだった。サンプルを聞いた感じでは、どうもこちらはあまり美味しい感じがしないので、こちらはキープしないことにした。detector/counter」というだけのもので、Gen~教科書という意味合いしかないのでパスした。ここで気付いてみると、アルファベット順のこのディレクトリに入っているここから下のファイル群は、全てここまでに登場したGenサンプルパッチから呼び出されているもの、つまり単体では動かないものだと判明した。Patches」のチェックが全て終わったことになり、この日記で始めた「Genお勉強」は、とりあえず全ての項目をクリアしたことになる。Electronicaでの講演と似ているのでいっそのことリンツに持参するMacBookAirでやってみようか・・・などという検討もあれこれ進めた。届いて、いよいよリンツが熱くなってきた。いういつもの4人が揃い踏みで無事に発表を終えて、これで幻の「夏の札幌」の夢も消え去った。昨夜カード会社から届いていた明細で、ANAのフライトキャンセルに伴う返金があり、その差額(キャンセル手数料)をSUAC研究費から支払うという書類も事務局に提出しておいた。string」とかがあったものの、今回のお勉強で新たに仕入れた一群の「使えそうなGenパッチ」に新たに追加するものが無い、との確認まで済ませた。その後はLIFE2022の各ZOOMセッションをチラ見で巡回などしたものの、「発表完了」という脱力感もあり、LIFE2022の2日目の土曜日はダラダラと過ぎ去った。今日はLIFE2022の最終日なのだが、昨日の「発表完了」のテンションで今日の午後には4時間ながら4日インターバルでJoyJoyヒトカラの予約をしてあり、半日ほどの研究室に出てきた。「Gen~」の厖大なExamplesを試してきたのだが、フト気付いてみると、これは主としてMSPのGen~であり、色々と面白いサウンド関係のパッチをゲットしたものの、グラフィクス関係、つまりgen.pixとかgen.gl.pixとかについてはほとんどノータッチだった。そこで再びMax8のアイコンを右クリックして「Contents」を探ってみると、なんと上のように、「gen」というディレクトリだけでなく、「jitter-examples」ディレクトリの下にも、「gen」というディレクトリ(ファイル総数=89)があった。なると、「Genお勉強」シリーズとしては、というか今回の作曲のためには、ここも踏破する必要があるのだった。「jit.gen」・「jit.pix」・「jit.gl.pix」というチェックすべきファイルは40個、そしてそれ以外、おそらく他のGenパッチから呼び出されるであろう?ファイルが49個、という感じだが、一応はこの中の「.maxpat」のファイルも調べてみることにした。bench.compare.expr.maxpatこれはjitterにおけるベンチマークで、「jit.expr」で記述した内容とjit.genの内容が同じであるのに、約4.9倍ほどjit.genの方が高速だよ、というものだった。bench.compare.op.maxpatこれもjitterにおけるベンチマークで、「jit.op」で記述した内容とjit.genの内容が同じであるのに、約3.3倍ほどjit.genの方が高速だよ、というものだった。厖大なドキュメントのサイトだった(^_^;)。それに従ってパラメータを変化させているらしい。charge.field.maxpatこれは電磁気学の教科書通りに、2つの電荷の間のクーロン力場をリアルタイムにグラフィック化させるもので、2次元pictsliderをうりうりすると、右上の電荷(固定)に対して左下の電荷が移動することで綺麗に変化してくれる。あと一捻りないとキープ保存はしないものの、なかなか面白いGenサンプルなのだった。complex.poly.maxpatこれは素晴らしいパッチである。どこで探していたのか不明だが、MRTI2015(10個のPAWセンサを使った触覚/触感センサ)のMaxパッチのライヴ・グラフィクスはこれを使っていたのだと思う。眺めてみると、複素領域の乗算をダブルで重ねてフラクタルにしているようで、これはまだまだ改良して使えそうな気がした。キープ領域にコピーである。(^_^)fractal.explorer.maxpatこれまた素晴らしいフラクタル生成のjitterパッチである。これもかつて見かけた記憶があるが、今回は改めてパッチを眺めると、まさにフラクタルをライヴ(マウスぐりぐり)で生成しているのだが、実は数学的(抽象的)なグラフィックでなくて、唐辛子のカラー画像を素材として利用しているのだった。これを変えれば、これまた新たな活用法は無限大であり、ちょっと深堀りしたくなってきた。これも改めてキープ領域にコピーである。generation」する、というものである。Editor」というのが出てきて、質感とかライティングとかを自在に設定できるようなので、そこそこ応用の可能性はありそうだ。iterated.function.systems.maxpatかなり盛大な(大袈裟な)jitterパッチであるが、randomに描画パターンを変えないと、ちょっと飽きてしまう感じのものだった。jit.gen.erode.maxpatここから「jit.gen」ゾーンである。この「jit.gen.erode.maxpat」というのは、Webカメラ画像を「jit.rgb2luma」でモノクロ化して、閾値で判定した画像、それをjit.genに入れた画像が並んでいるのだが、ほぼ両者は同じであり、このjit.genの意味は不明のままだった。month」という寄付ボックスが先頭に出てくる・・・というものだった。するとこのパッチは、本人が撒き餌として提供しているのかもしれない(^_^;)。ベクトル場で多数のパーティクルがわらわらと舞っているのはなかなか綺麗だが、しかしちょっと僕には響かなかった。jit.gen.particles.maxpatその名も「パーティクル」ということで期待したのだが、まぁ、ランダムなパーティクルが円周上に引っ張られていくというものだった。マウスで3D空間をハンドリングできなかったのだが、そこを改良すると、ちょっと面白いかもしれないが。inversion」とはDeepL翻訳では「球面反転」とのことだが、ちょっと触ってみた感じではどうも全体像が把握できなかった。こなければそれまでということで、これもスルーとなった。jit.gen.superformula.maxpatこれが「jit.gen」ゾーンの最後のサンプルパッチである。パッチの中央あたりに4種類それぞれ3つのパラメータ、計12個があるのだが、これをぐりぐり変化させるとかなり劇的にグラフィックが躍動する。これを多重センサーのパラメータと共に時間変化させると、何か生き物のようにできるかもしれない。するとこれは使えるカモ・・・ということで、キープ保存となった。jit.gl.pix.alphablend.maxpatここから「jit.gl.pix」ゾーンなのだが、最初のサンプルは全く面白くなかった。alphablend」の中でやっているのは、r/g/b/aのうちアルファ成分(透明度)だけ抽出する、というもので、まぁこれまでのJitterでも簡単なことだった。jit.gl.pix.altern.maxpatこのパッチは動画に網目のマスクを乗せるというものらしいが、これまた面白くなかった。jit.gl.pix.ameba.maxpat何か「アメーバ」なのかと思ったが、どうやら可変のマス目に分割した領域ごとにゲインを上げて塗り潰す・・・というようなものらしい。ameba」ということで「ameba.genjit」という外部スクリプトをCodeboxに入れているのだが、そのサブgenパッチの中にまた4個並んだ同じgenサブパッチがあり、そこで事前にパラメータを関与させたり切り捨てしたりクランプさせたりしていたところだろう。これは僕は使わないだろうと思った。行ってみたものの、詳細は不明だった。jit.gl.pix.bleach.bypass.mod.maxpatこれはすぐ上の「jit.gl.pix.bleach.bypass.maxpat」の亜流なのだろうが違いが不明だった。これだけ効果が乏しいと、あまり深入りする気にならないのでパスである。jit.gl.pix.cartopol.maxpatこれは、ライヴのWebカメラ画像をぐるっと一周、捩じ曲げるという面白いエフェクトである。その全体を拡大縮小したり平行移動する、というパラメータはあるものの、肝心の「ぐるっと一周、捩じ曲げる」という部分がgenの中で詳細不明でいじれなかった。Genパッチは編集可能なので、もしかすると使えるカモ・・・ということでキープしておいた。帰宅時間となって、今日はここまでである。「夏の札幌」も遠い彼方に消えていて、この日、ZOOMを立ち上げることは無かった。2022年8月22日(月)LIFE2022発表完了テンションで急遽追加した昨日のJoyJoyヒトカラ4時間では、攻めた41曲を完走した。昨日は「帰ってこいよ」(松村和子)も歌ったが、これはこの曲の作詞家である平山忠夫氏の訃報が一昨日、届いたからである。最近は昭和の歌謡界に関する訃報が多く届いて、そのたびにマイレパに入っているその曲を熱唱してきたのだった。コウタロー(2022没)では「岬めぐり」を、それぞれニュースが届いた週には必ず再確認・熱唱していた。jit.gl.pix.circular.tiles.maxpatというわけで「jit.gen」お勉強の続きである。残りのjit.genパッチが29個、さらに残りのmaxpatが9個、となっていて、ぼちぼち「先」が見えているのだ。ellipse")」ということで、フラクタルに階層化しつつ丸くしているエフェクトであり、これは是非ともさらに実験してみたいものとしてキープした。jit.gl.pix.eclipse.maxpatこのパッチは、元画像(動画)をタイル化して敷き詰めたその全体に対して、各タイルに分割された「画素」の輝度と元の動画との輝度演算をすることで、パラメータによって全体として元画像のテイストが浮かび上がってきつつ、各画素もそれぞれ動画として動いている・・・というなかなかトリッキーなグラフィックのエフェクトだった。面白いのは面白いけれど、しかしキープには至らなかった。jit.gl.pix.infinite.mirror.maxpat「無限の鏡」というタイトルからして期待していたパッチであるが、まずまず期待通りだった。exp($f1)」に入れて、ズーミングがうまく繋がるように周期化して「無限ズーム」を実装しているが、そのパラメータ自体をぐりぐりする事も可能なのだった。これは使えそうなので、文句なくキープ保存した。jit.gl.pix.kaleido.maxpat「万華鏡」というタイトルからして期待していたパッチであるが、期待以上の凄いものだった。「divisions」パラメータによって、万華鏡の「鏡」の数を指定できるので、よくある3枚とかだけでなく、上の例では12枚としてみたが、後で実験すると10枚の方がさらに不気味で美味しかった。これは文句なくキープだが、作曲というよりは「メディア数理造形演習」あたりで紹介してみよう。luminance」と、本当に地味なパッチだった。2枚の動画でルミナンスの明るい方を採用するというもので、これまでだといちいちマスクを作っていたのに対して、この手法は「炎」とかを加えるためには有効かもしれない。「テスト」領域にはコピーしたものの、「作曲用」にはコピーしなかった。jit.gl.pix.lumadisplace.maxpatR/G/Bとアルファチャンネルに対してdisplacementsを変化させる・・・というもののようである。なんとなく背後霊のような効果には使えそうな気もするが、これも「テスト」領域にはコピーしたものの、「作曲用」にはコピーしなかった。jit.gl.pix.mirror.maxpatjitterでの「鏡」というのは、最初から「jit.rota」という素晴らしい道具があるので、このパッチは全く面白くなくて期待外れだった。jit.gl.pix.pinch.maxpatこれは文句なく面白くて素晴らしいパッチである。boundmode="mirror");」という部分であると判明した。処理したものと入力(オリジナル)とを足してreturnで返すだけなのだった。これは是非とも使いたくなった。(^_^)jit.gl.pix.repos.maxpat「repos」というのは「reposition」ということだろうか。入力の画像をここでは6×6の領域に分割して、それぞれを過不足なくランダムに配置するというのを実装しているらしい。面白いことは面白いので、「テスト」領域にだけコピーして、「作曲用」にはコピーしなかった。jit.gl.pix.rubix.maxpat面白いものと面白くないものが交互に出てくるところが面白い。このパッチは、元画像を分割して、動的に動かすいくつかのランダムな場所の領域(画素)については平均の色情報にしてしまうというものだが、苦労の割にあまり面白いものではなく、スルーとなった。jit.gl.pix.scalebias.maxpatこれは基本的過ぎて面白くない。R/G/B/Aのパラメータを単にGenの中で強度乗算、バイアス加算しているだけだった。jit.gl.pix.sprinkle.maxpatこれは指定した大きさで、画素をじわじわと滲ませつつ歪ませるというようなものだった。jit.gl.pix.srcdim.dstdim.maxpatこれはソース側とディスティネーション側のそれぞれで単にスケーリングするというもののようで、パスである。http://001.vade.info」という例のサイトから取材したもののようである。どれも同じように面白くないものだった事を確認して、3つまとめてスルーした。jit.gl.pix.twirl.maxpatこれはまたまた強烈に面白いパッチである。画面をとにかく捻って捻って・・・というもので、静止画でなく動画(Webカメラの自分の顔)であれば最高に楽しい。作曲というよりは「メディア数理造形演習」あたりで紹介するために、「テスト」領域にまずコピーしたが、結局は「作曲用」にもコピーした。jit.gl.pix.wake.maxpatモーションブラーのような効果を動画に対しても実現するというパッチである。保存としてはスルーした。jit.gl.pix.xfade.maxpatこれは「jit.xfade」をGenにしてみた、というだけの何も面白くないサンプルだった。ここまでで、「jit.gl.pix.###」という並びが終わった。jit.pix.alphablend.maxpatここから「jit.pix」(glがなくなる)というゾーンであるが、glの付いたものと同じような名前が並んでいて、なんか嫌な予感がする(^_^;)。このパッチは単に「jit.alphablend」と並べて、それをGen化したらこうなるよ、という教科書的なものだった。jit.pix.brcosa.maxpatこれもGen化したらこうなるよ、という教科書だった。入力画像をベクトル化して、brightnessとcontrastとsaturationのパラメータを作用させて、最後にまたベクトルをまとめている。お勉強シリーズを続けてきたのでツーカーになったが、まさに「Genってこうやっているんだよ」というものだった。jit.pix.circular.tiles.maxpatこれは、すでに登場していた「jit.gl.pix.circular.tiles.maxpat」を左側のGenオブジェクトとしてそのまま置きつつ、右側にはCodeboxでのGenExpr版も並べている、という教科書的なものだった。どちらでも同じことになるので、改めて保存するほどの事はなかった。次の「jit.pix.infinite.mirror.maxpat」は、すでに登場した「jit.gl.pix.infinite.mirror.maxpat」と同じだった。その次の「jit.pix.kaleido.maxpat」は、すでに登場した「jit.gl.pix.kaleido.maxpat」と同じだった。その次の「jit.pix.lumadisplace.maxpat」は、すでに登場した「jit.gl.pix.lumadisplace.maxpat」と同じだった。その次の「jit.pix.repos.maxpat」は、すでに登場した「jit.gl.pix.repos.maxpat」と同じだった。jit.pix.shade.maxpatこれは単に3つの入力を「mix」に入れるというサンプルだった。factor」である。次の「jit.pix.twirl.maxpat」は、すでに登場した「jit.gl.pix.twirl.maxpat」と同じだった。その次の「jit.pix.xfade.maxpat」は、すでに登場した「jit.gl.pix.xfade.maxpat」と同じだった。これで「jit.pix」というゾーンも終わりである。julia.quat.raytracer.maxpat残る「maxpat」はあと9個となったが、いきなり「julia」とか「mandelbrot」というファイル名が見えているので期待値maxである。上はその「ジュリア集合」のパッチである。Raytracer」という凄いものだった。いうのが紹介されていて、その中身をGen化して実装したようである。これは文句なく、キープすることにした。mandelbrot.set.orbit.trap.maxpat上は「マンデルブロ集合」のパッチである。このパッチは、「radius」パラメータを設定してbangを叩くとフラクタル(入れ子の無限小に向かって)描画を行う、というものなので、ライヴ・グラフィクスという使い方はちょっと出来ない感じである。この描画(細かいところではチラチラとずっと計算描画を続けている)のbangをmetroで連打したくはないので、スルーとなった。変更可能)を描画して、そこから爆発的に細かいパーツが飛び散るというパッチである。Genパッチの中の「torus」を「cylinder」にしたら即刻、爆発の始点の形状が変わったのには驚いたが、何かが物足りないのだった。pix.game.of.life.maxpatもしかすると出てくるかな・・・と思っていた「ライフゲーム」だったが、やっぱり出てきた(^_^)。これは低速コンピュータでも「それなりに」出来てしまうので、ここでGen化されたといっても、何もソソラレルことはなかった。reaction.diffusion.color.world.maxpatこれは上の「ライフゲーム」と同じ「jit.gl.slab」を使っているものの、「cf.gaussian.2p.jxs」という巨大なスクリプトも参照して、2次元平面内でランダムに成長する微生物みたいなグラフィクスをライヴ生成するものだった。生態系に興味がある人はぜひ、この中身を解析してみて欲しい。sampling.modes.genexpr.maxpatこれは「Codeboxの中身を書き換えてみて」というテキスト(ワークブック)というだけだった。smear.o.vision.maxpatこれは3D空間内をメッシュの球体が動くというものだったが、いじれるパラメータが背景色しか無かったので、残念ながらパスとなった。surfing.noise.maxpatこれは、3次元空間内にランダムに立方体のマテリアルを「穴開きチーズ」化させるようなものだった。眺めていると面白いのだが、ここまでランダムだとちょっとつまらない・・・という点が(作曲においては)ややひっかかった。unsharp.mask.maxpatアンシャープマスクを作るというGenパッチだったが、あまり気持ち良いものでもないのでスルーとなった。これで遂に「jit.gen」のExamplesも全部チェックしたことになった。「メディア数理造形演習」で紹介するものも含めて12個がピックアップできて、gen~のあたりも含めて「作曲のためにチェック」というディレクトリに保存したサンプルMaxパッチは45個となった。ここからは、一つ一つをじっくりと眺めて再検討して、本当に「使えそう」なものを精選していくというステージに移行することになる。2022年8月23日(火)まっさらだった昨日に続いて、今週は予定がスカスカなのだが、今日は1期生(技術造形学科)のゼミ・東堂のぞみさんの来訪アポがあるだけとなっている。