ガキ落ち野郎をJavaScriptに移植して、SwiftでmacOS&VST3の自作シンセを作る時代

Js版ガキ落ち野郎

 いや、まさかJavaScriptでここまで作れるとは。これは5.6sol high(Codexとかではなくチャット)に解析させて移植させたものを、対話と指示で完成させた物です。動画はまだ未完だけど最終版では枠内はちゃんと黒になってます。曲は途中までだけど全曲移植してくれました。

 JavaScript中身をみたけどよくわからないところだらけ。

 ゲーム性は自分で遊んだ限りは殆ど違いはないと思います。音楽はいわゆるPSGドラムは再現されないし、特殊な打ち込み方してる曲もおかしくなってるけど、そんなの許容範囲。

 むしろ初期バージョンでは架空の曲、効果音ありで、その効果音は最後まで残ったのでオリジナル版とも差が出てます。オリジナル版は効果音がないので。

 対話で何ターンかかけたけど、特に苦労はなかったです。ここまで出来るならもしかしてSwift作れるのかなと思ったら作れそうだったので、じゃあこんどはスタンドアロン版とVST3でアシッドシンセ作ってみよう、となりました。

VST3インストゥルメントACIDシンセmsk ACID!

 自分なりのアルゴリズムを搭載した自動フレーズ生成機能をワンタッチボタンで使えるようにしよう、全てのパラメーターをCC録音出来る様にしよう、生成フレーズはmidiエクスポート出来る様にしよう、SAWとPULSE以外にも色々音色を入れよう、みたいに機能の割には長い仕様書になったけど、自動フレーズ生成機能アルゴリズムはかなり忠実に再現してくれてます。

 これ、実はJavaScriptで作ってた単機能なんですよね。16STEPアシッド精製機。

 Astraが凄いと騒がれて早一週間とちょっと位? Astraは大規模な物を作らせるには良いんだろうけど、制限がキツいので5.6sol highで作ってます。

 最初に作らせたのは、msk ACID!というアシッドシンセ。そしてまだ完成してないけどAstraでシーケンサー内蔵リズムマシンを作らせてます。5時間制限がとける度に指示してるけど、たぶんこれ5.6sol highで十分だった。

 まだ作りかけのAstra生成msk Rhythm!もフレーズ生成機能機能付き。全パートCC録音可能。

 で、Astraはすぐ制限に達するので元々このリズムマシンに入れようと思ってたシュランツ部分を特化させたmsk Schranz!も並行で作ってます。こちらは曲作ってる裏で作らせてる音源の更にサブみたいな感じなので本当にすこしずつ。

 これもリズムマシンも元々JavaScriptで作ろうと思ってて仕様書というかどうするかを文章化してたものがあって、未確定(どう実装すれば良いか判らないから)部分をVST3にできるか対話しながら少しずつ詰めてます。5.6highのチャットで(WorkやCodexではなく)。

 mskシリーズは基本的にワンボタンで自動生成できて全パラメーターccでmidi録音可能で、生成フレーズはmidi書き出し可能、細かいパラメーター調整も可能、みたいにしたいので普通あまりオートメーション化できないソロやミュートなんかもオートメーション(cc録音)可能になってます。

 いま考えてるのは変態的なエフェクター。どういうアルゴリズムなのかは既に決めてあってメモ程度に仕様書書いてて、どういうエフェクトやフィルターなのかかなり具体的に書いてるので、おそらくこちらは書き出しさせたすぐ出来ると思う。5.6Sol highで一度に全部実装出来るかはわからないけど、Astra highとかで作れば一気に作れそう。

 Astra MaxやxHihgはCGで大坂の陣再現とか3Dゲーム作るとか、大規模な物じゃなければ、必要なさそう。今後はWork Astra high(仕様書を読ませて実装可能か具体的に詰める)とチャット5.6Sol high(実装役。一辺に作らせずに少しずつ詰めていく)で作ってみようと思ってます。

驚きの新時代

 しかしSwift(macOS&iOSアプリ)を作らせる事が可能な時代なんてとっくに来てたんだね。XcodeはiOSアプリ開発の時に既にインストールしてあるので数年ぶりに起動しました。JavaScriptと違って全然わかってないから、無知で作れるのかの実験にもなってます。年間$99の壁がなければiOS開発してApp Storeに出す画像加工アプリとか沢山作るのに(JavaScriptで作った物を移植させる)

 ビルドが自力なのがネックというか完全に全自動ではないんだけど、それもまあすぐ慣れるので、曲作ってる裏で指示して少しずつ改善して作ってます。Astraで作ってるリズムマシンはすぐ5時間制限がくるので、かなり牛歩。

 仕様書は意外と苦労は少なくて、自分が欲しい機能、使いたいものなのでかなり克明に書けるので、指示は特に苦労ないかも。

 いままで自分がある程度理解できるJavaScriptで作らせるなら自力で何とかなるかなみたいに感じてたし、実際画像加工やDJツールなど自分用ツールはJavaScriptで作ってたけど、もはやそういうのも1ターンで作らせることが出来ちゃうのかも。むしろ過去作ったソースを読ませて、無駄な点を直させたりより良いソースに直して貰うのもいいかも。

 落ち着いたらもう少しSwift勉強しよう。pythonはJavaScriptでいいやという結論に達しました。

そうそう。大のくんがnoteはじめたからフォローしてね。
https://note.com/_msx_

私のnoteはこちら。まだフォローしてない人はフォローして下さい。
https://note.com/m3k

 

投稿者 masaki(B)

コンポーザー / プランナー マサキ aka YMZnoMASAKI,まさきさま

コメントを残す