zkunがいろんなことを横書きするブログのようですw(含み笑)
v1.7から外観上大きな変化はないけど、内部構造が激変したyo これまでは、画面上に配置されたチェックボックスなどのパーツを基準にすべてを動かしていたけど、v1.8からは内部に持つ2次元配列を基準に管理するようにしたので、コピーとか並べ替えとかが非常に柔軟にできるようになったyo このシステムを発展させていく上では非常に大きな「脱皮」を行ったことになるyo
その成果の1つとして、「COPY #→#」というボタンを追加したyo クリックするとダイアログが開いてコピー元とコピー先の小節番号をきいてくるので順に入力するとその小節のデータが丸ごとコピー完了するというものだyo 従来の画面上のパーツ番号方式で管理していると何段も折り返している場合のその操作を記述するだけで頭がこんがらがりそうだけど、配列関数で管理していると割と単純な操作でコピー自体は完了し、それを画面に展開するお決まりのルーチンにを実行させるだけで終わっちゃうyo(あっけない笑)
そのついでに、これまでは各インスト横1列(4小節分)単位でしか指定できなかったハットやスネアなどの音色選択とベロシティーを、各小節ごとに細分指定してデータを持たせるようにしたyo 漢字ボックスの左の2つがそれで、前が音色、後がベロシティだyo これによって、はじめに定義するインスト数が4であっても、途中で5つ目のインストを3番と入れ替えて使ったり、6つ目のインストを4番と入れ替えたりというようにかなり細かく入れ替えできるようになったyo
それにあわせて、左端のインスト指定ブロックの一番上にセレクタを追加したyo こいつは通常はこれまで通り横1列の小節に対して効くんだけど、「to second bar only」などを選択すると、個別の小節に対してのみ変更指定が送れるようになるyo また、一番上段のセレクタのみ末尾に「to all bars」という特別メニューがあり、これを選択しているとそのインストは曲の最後の小節まで音色とベロシティを一括設定できるという便利機能だyo
2次元配列を使ってややこしい操作を行うのは初めてなのでかなり苦戦したyo JavaScriptにおける配列特有の挙動のクセみたいなものもあるみたいで、エラー表示は出ないけど正しく動かないという暗黙のルールに泣かされることもしばしばだったyo とりあえず、最初にいったん必要数だけ定義した配列をつくっておくこと、親配列ごと代入せず、最小単位の配列を個数分繰り返して代入することなど、どこに書いてあるのかよくわからないようなローカルルールのトラップにはまりながらも、なんとか安定して動く段階までバグとりできたと思うのでリリースしたyo
パッチメイカーシリーズのときとは比べ物にならないくらい複雑な仕組みで動かしているので、内部構造の大改革はかなりたいへんだったけど、これでこの先はかなりラクになりそうな気がするyo(技術者笑)
その成果の1つとして、「COPY #→#」というボタンを追加したyo クリックするとダイアログが開いてコピー元とコピー先の小節番号をきいてくるので順に入力するとその小節のデータが丸ごとコピー完了するというものだyo 従来の画面上のパーツ番号方式で管理していると何段も折り返している場合のその操作を記述するだけで頭がこんがらがりそうだけど、配列関数で管理していると割と単純な操作でコピー自体は完了し、それを画面に展開するお決まりのルーチンにを実行させるだけで終わっちゃうyo(あっけない笑)
そのついでに、これまでは各インスト横1列(4小節分)単位でしか指定できなかったハットやスネアなどの音色選択とベロシティーを、各小節ごとに細分指定してデータを持たせるようにしたyo 漢字ボックスの左の2つがそれで、前が音色、後がベロシティだyo これによって、はじめに定義するインスト数が4であっても、途中で5つ目のインストを3番と入れ替えて使ったり、6つ目のインストを4番と入れ替えたりというようにかなり細かく入れ替えできるようになったyo
それにあわせて、左端のインスト指定ブロックの一番上にセレクタを追加したyo こいつは通常はこれまで通り横1列の小節に対して効くんだけど、「to second bar only」などを選択すると、個別の小節に対してのみ変更指定が送れるようになるyo また、一番上段のセレクタのみ末尾に「to all bars」という特別メニューがあり、これを選択しているとそのインストは曲の最後の小節まで音色とベロシティを一括設定できるという便利機能だyo
2次元配列を使ってややこしい操作を行うのは初めてなのでかなり苦戦したyo JavaScriptにおける配列特有の挙動のクセみたいなものもあるみたいで、エラー表示は出ないけど正しく動かないという暗黙のルールに泣かされることもしばしばだったyo とりあえず、最初にいったん必要数だけ定義した配列をつくっておくこと、親配列ごと代入せず、最小単位の配列を個数分繰り返して代入することなど、どこに書いてあるのかよくわからないようなローカルルールのトラップにはまりながらも、なんとか安定して動く段階までバグとりできたと思うのでリリースしたyo
パッチメイカーシリーズのときとは比べ物にならないくらい複雑な仕組みで動かしているので、内部構造の大改革はかなりたいへんだったけど、これでこの先はかなりラクになりそうな気がするyo(技術者笑)
PR