zkunがいろんなことを横書きするブログのようですw(含み笑)
新吸気がついに完成したyo と言っても、新エンジンがまだできてないので、これだけでは何の意味もないけどne(苦笑)
NJAM2からZTABへの一番要素数が多くてややこしいコンバートが、巨大対照表で完全に管理できている状態で記述できバグ取りも完了してちゃんと動作しているので、あとは要素数のはるかに少ないNSX JAM v1.0やZkun Jam v4.9、Zkun Beat v3.1からのコンバートをつくるのは、もはや簡単な作業でしかないyo(微笑)
いよいよ新エンジンだww smfmake()という一番長大で重要なメインルーチンを改造して、配列nivjとdkunから配列pjを作りながらSMFデータを構築していくという動作をしていた旧エンジンから、配列tabjからpj2を作りながらSMFデータを作るsmfmake2()というルーチンを作るyo とりあえずこれが完成すれば、ツインエンジンでどっちでも動かせる車になるyo(重厚な笑) ただし、旧吸気はすでに新吸気にコンバートできているので、次は旧エンジンを引っこ抜いて車体を軽量化することになるyo その前に補機類をすべて調整し直す必要があるけどne それが完了すれば、5種類の吸気を読み込んで新エンジンを駆動し、理想的な基準に準拠した新排ガスのみを吐き出すような素晴らしい車になるというわけだyo いやあ、ついにゴールが見えてきたne(感慨笑)
あとは、フィルインの機構もそろそろキッチリと再定義して、tabj配列に合体させる必要があるので、そっちの検討も進めながら新エンジンに着手するyo フィルインはv2.2ではちょっと変則的なフォーマットに進化させたんだよne それまで1〜4拍ともふつうに4分割して、均等な16分音符でのフィルインを構成していたんだけど、4拍目を8分割して、そこだけ32分音符で高速に刻むことができるようにしたyo 「紫の炎」デモの前奏で聴ける高速フィルインはまさにこれを使ったもので、これまでにない迫力が確かに表現可能だよne そのあおりで、1拍目はフィルインなしになったyo 全体の音符の数を16で変えないようにしたためそうなったんだけど、これには賛否両論あるところだろうne 場合によっては1拍目から入れたいフィルインパターンだってあるだろうからne 過去データのフィルインまではコンバートする予定はないyo ボク自身そんなに多くのパターンを作って保存してたわけでもないし、おそらくユーザーのみんなもプリセットでついてるものを便宜的に使ってたくらいじゃないかなw(勝手な推測笑) なので、どうしても使い回したいものがあるならば、それはZkun Tabで新たに自分で打ち込んでくれyo 過去のプリセットなど主なものは一応ボクのほうで新たなプリセットとして作成してつっこんでおくからさw あまり面倒なことを抱え過ぎても疲れるので、まあ、そういう対応でよろしくたのむyo
おっと、話が脱線したけど、新フィルインはどう定義するかだne できるだけ万能なものにしておきたいという思いがあるので、1-2拍目は16分音符、3-4拍目は32分音符の分解能で打ち込めるようにしようかなw 合計24音符になり、それを2インスト鳴らすyo フィルインメニューの画面は3段に拡張するyo これを設定するときは、これ単独での集中作業になると思うから、まあタブレット画面いっぱいにフィルインメニューだけ表示して作業をするという形になっても問題ないと思うyo むしろ、そのくらい大きく表示しないと作業しにくくてしょうがないだろうしねw(苦笑) 多少過剰スペックだけど、いらない人は使わなければいいだけだからne これはSMFデータを作るまでに動く部分なので、実際の演奏再生時の負荷にはならないからne Zkun Tab Proでの最高スペックを考えるならば、やはりこのくらいの拡張性はもたせておいたほうがいいと思うからne(野心的笑)
NJAM2からZTABへの一番要素数が多くてややこしいコンバートが、巨大対照表で完全に管理できている状態で記述できバグ取りも完了してちゃんと動作しているので、あとは要素数のはるかに少ないNSX JAM v1.0やZkun Jam v4.9、Zkun Beat v3.1からのコンバートをつくるのは、もはや簡単な作業でしかないyo(微笑)
いよいよ新エンジンだww smfmake()という一番長大で重要なメインルーチンを改造して、配列nivjとdkunから配列pjを作りながらSMFデータを構築していくという動作をしていた旧エンジンから、配列tabjからpj2を作りながらSMFデータを作るsmfmake2()というルーチンを作るyo とりあえずこれが完成すれば、ツインエンジンでどっちでも動かせる車になるyo(重厚な笑) ただし、旧吸気はすでに新吸気にコンバートできているので、次は旧エンジンを引っこ抜いて車体を軽量化することになるyo その前に補機類をすべて調整し直す必要があるけどne それが完了すれば、5種類の吸気を読み込んで新エンジンを駆動し、理想的な基準に準拠した新排ガスのみを吐き出すような素晴らしい車になるというわけだyo いやあ、ついにゴールが見えてきたne(感慨笑)
あとは、フィルインの機構もそろそろキッチリと再定義して、tabj配列に合体させる必要があるので、そっちの検討も進めながら新エンジンに着手するyo フィルインはv2.2ではちょっと変則的なフォーマットに進化させたんだよne それまで1〜4拍ともふつうに4分割して、均等な16分音符でのフィルインを構成していたんだけど、4拍目を8分割して、そこだけ32分音符で高速に刻むことができるようにしたyo 「紫の炎」デモの前奏で聴ける高速フィルインはまさにこれを使ったもので、これまでにない迫力が確かに表現可能だよne そのあおりで、1拍目はフィルインなしになったyo 全体の音符の数を16で変えないようにしたためそうなったんだけど、これには賛否両論あるところだろうne 場合によっては1拍目から入れたいフィルインパターンだってあるだろうからne 過去データのフィルインまではコンバートする予定はないyo ボク自身そんなに多くのパターンを作って保存してたわけでもないし、おそらくユーザーのみんなもプリセットでついてるものを便宜的に使ってたくらいじゃないかなw(勝手な推測笑) なので、どうしても使い回したいものがあるならば、それはZkun Tabで新たに自分で打ち込んでくれyo 過去のプリセットなど主なものは一応ボクのほうで新たなプリセットとして作成してつっこんでおくからさw あまり面倒なことを抱え過ぎても疲れるので、まあ、そういう対応でよろしくたのむyo
おっと、話が脱線したけど、新フィルインはどう定義するかだne できるだけ万能なものにしておきたいという思いがあるので、1-2拍目は16分音符、3-4拍目は32分音符の分解能で打ち込めるようにしようかなw 合計24音符になり、それを2インスト鳴らすyo フィルインメニューの画面は3段に拡張するyo これを設定するときは、これ単独での集中作業になると思うから、まあタブレット画面いっぱいにフィルインメニューだけ表示して作業をするという形になっても問題ないと思うyo むしろ、そのくらい大きく表示しないと作業しにくくてしょうがないだろうしねw(苦笑) 多少過剰スペックだけど、いらない人は使わなければいいだけだからne これはSMFデータを作るまでに動く部分なので、実際の演奏再生時の負荷にはならないからne Zkun Tab Proでの最高スペックを考えるならば、やはりこのくらいの拡張性はもたせておいたほうがいいと思うからne(野心的笑)
PR
【ZTAB】,1,4,8,90,0:0:0,4,0:0:0:0:0:0,0:0:0:0:0:0,【EQ-par】,12,64,7,0,28,64,7,34,64,7,46,64,7,52,64,7,0,【Extra】,0,100,0,0,0,0,8,【Vo-sp】,0,80,【Re-sp】,8,2,0,,,【Gt-sp】,1,7,5,5,5,5,1,0,0,0,0,,,【Pn-sp】,1,7,5,5,5,5,1,0,0,0,0,,,,,,,,,,,,,,,,,【Bs-sp】,1,5,1,8,1,1,0,0,1,1,1,0,0,1,1,1,1,0,0,0,0,0,【Dr-sp】,,,,,,,,,,,,,,,,,,,,,,,,,,【Vo-par】,0,0,100,64,0,0,0,0,,,,,,,,,,,,【Re-par】,16,0,110,30,0,0,0,0,,,,,,,,,,,,【S1-par】,26,0,110,90,0,0,0,0,,,,,,,,,,,,【Po-par】,26,0,110,90,0,0,0,0,,,,,,,,,,,,【Gt-par】,3,0,100,84,0,0,0,0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,【S2-par】,26,0,110,90,0,0,0,0,,,,,,,,,,,,【Pn-par】,3,0,100,84,0,0,0,0,,,,,,,,,,,,【Bs-par】,33,0,110,44,0,0,0,0,,,,,,,,,,,,【Dr-par】,0,0,90,64,0,0,0,0,,,,,,,,,,,,【XGRev】,64,,,,,,,,,,,,,,,,,0,【XGCho】,64,,,,,0,,,,,,,,,,,,0,【Vari-1】,64,,,,,,,,,,,,,,,,,0,0,0,,,,,,,,,,,,,,,,,,,,,,【Vari-2】,64,,,,,,,,,,,,,,,,,0,0,0,,,,,,,,,,,,,,,,,,,,,,【Vari-3】,64,,,,,,,,,,,,,,,,,0,0,0,,,,,,,,,,,,,,,,,,,,,,【Vari-4】,64,,,,,,,,,,,,,,,,,0,0,0,,,,,,,,,,,,,,,,,,,,,,【Vari-5】,64,,,,,,,,,,,,,,,,,0,0,0,,,,,,,,,,,,,,,,,,,,,,【Vari-6】,64,,,,,,,,,,,,,,,,,0,0,0,,,,,,,,,,,,,,,,,,,,,,【Vari-7】,64,,,,,,,,,,,,,,,,,0,0,0,,,,,,,,,,,,,,,,,,,,,,【Vari-8】,64,,,,,,,,,,,,,,,,,0,0,0,,,,,,,,,,,,,,,,,,,,,,【第1小節】,,0,,4,0,0,【Vo】,,,,,,,,,【Re】,,-1,-1,,,,,,【S1】,,-1,-1,,,0,,,【Po】,,-1,-1,【Gt】,3,-1,-1,,,0,,,,,,,,,,,,【S2】,,-1,-1,,,0,,,【Pn】,3,-1,-1,,,0,,,【Bs】,4,-1,-1,,,0,,,【Dr】,0,-1,-1,,,,,0,【PC1】,C,,,,,,&,,36,40,43,48,,,,,,,【PC2】,,,,,,,&,,,,,,,,,,,,【PC3】,,,,,,,&,,,,,,,,,,,,【PC4】,,,,,,,&,,,,,,,,,,,,【GC1】,,,,,,,,,,,,,,,,,,,【GC2】,,,,,,,,,,,,,,,,,,,【GC3】,,,,,,,,,,,,,,,,,,,【GC4】,,,,,,,,,,,,,,,,,,,【BCM】,,,,,0,【Dr-pat】,0,0,46,90,甘甘,42,100,東東,38,100,,36,100,,49,92,,48,100,,【第2小節】,,0,,4,0,0,【Vo】,,,,,,,,,【Re】,,-1,-1,,,,,,【S1】,,-1,-1,,,0,,,【Po】,,-1,-1,【Gt】,3,-1,-1,,,0,,,,,,,,,,,,【S2】,,-1,-1,,,0,,,【Pn】,3,-1,-1,,,0,,,【Bs】,4,-1,-1,,,0,,,【Dr】,0,-1,-1,,,,,0,【PC1】,,,,,,,&,,,,,,,,,,,,【PC2】,,,,,,,&,,,,,,,,,,,,【PC3】,,,,,,,&,,,,,,,,,,,,【PC4】,,,,,,,&,,,,,,,,,,,,【GC1】,,,,,,,,,,,,,,,,,,,【GC2】,,,,,,,,,,,,,,,,,,,【GC3】,,,,,,,,,,,,,,,,,,,【GC4】,,,,,,,,,,,,,,,,,,,【BCM】,,,,,0,【Dr-pat】,1,0,46,90,甘甘,42,100,東東,38,100,,36,100,,49,92,,48,100,,【第3小節】,,0,,4,0,0,【Vo】,,,,,,,,,【Re】,,-1,-1,,,,,,【S1】,,-1,-1,,,0,,,【Po】,,-1,-1,【Gt】,3,-1,-1,,,0,,,,,,,,,,,,【S2】,,-1,-1,,,0,,,【Pn】,3,-1,-1,,,0,,,【Bs】,4,-1,-1,,,0,,,【Dr】,0,-1,-1,,,,,0,【PC1】,,,,,,,&,,,,,,,,,,,,【PC2】,,,,,,,&,,,,,,,,,,,,【PC3】,,,,,,,&,,,,,,,,,,,,【PC4】,,,,,,,&,,,,,,,,,,,,【GC1】,,,,,,,,,,,,,,,,,,,【GC2】,,,,,,,,,,,,,,,,,,,【GC3】,,,,,,,,,,,,,,,,,,,【GC4】,,,,,,,,,,,,,,,,,,,【BCM】,,,,,0,【Dr-pat】,1,0,46,90,甘甘,42,100,東東,38,100,,36,100,,49,92,,48,100,,【第4小節】,,0,,4,0,0,【Vo】,,,,,,,,,【Re】,,-1,-1,,,,,,【S1】,,-1,-1,,,0,,,【Po】,,-1,-1,【Gt】,3,-1,-1,,,0,,,,,,,,,,,,【S2】,,-1,-1,,,0,,,【Pn】,3,-1,-1,,,0,,,【Bs】,4,-1,-1,,,0,,,【Dr】,0,-1,-1,,,,,0,【PC1】,,,,,,,&,,,,,,,,,,,,【PC2】,,,,,,,&,,,,,,,,,,,,【PC3】,,,,,,,&,,,,,,,,,,,,【PC4】,,,,,,,&,,,,,,,,,,,,【GC1】,,,,,,,,,,,,,,,,,,,【GC2】,,,,,,,,,,,,,,,,,,,【GC3】,,,,,,,,,,,,,,,,,,,【GC4】,,,,,,,,,,,,,,,,,,,【BCM】,,,,,0,【Dr-pat】,1,0,46,90,甘甘,42,100,東東,38,100,,36,100,,49,92,,48,100,,【小節データ終了】,【フィルインデータ】,fj,【Recデータ】,r,【Polyデータ】,p
どうだい、なかなか見て分かりやすいデータになってるだろw これは「初期データ」として組み込まれている、長さ4小節で、コードCを冒頭に1発ジャンと鳴らすだけで、あとはドラムとオートベースが基本パターンを繰り返して終わるだけの超シンプルなサンプルのデータ内訳だyo
先頭から見ていくと、【ZTAB】は曲の基本的な設定。【EQ-par】はポケミクでイコライザ設定をする場合の設定値が入る。【Extra】は画面キーボードやv2.2にある歌詞送りメニューの設定など、枝葉の設定を保管している所。【Vo-sp】〜【Bs-sp】は、各パート特有の設定値(曲全体用)を保管するところ。【Dr-sp】はv2.2のドラム音色イコライザの設定が入るよ。
【Vo-par】〜【Dr-par】は、ミキサー画面で表示しているような、各パートの音色やボリュームなどの共通パラメータを管理しているよ。あとv2.2の音色エディターで扱う細かなコントロールチェンジの情報も一緒に保管しているよ。
【XGRev】【XGCho】【Vari-1】〜【Vari-8】は、ポケミクで使えるXGエフェクトのデータを保管する場所だよ。v2.2で使用したVari-8までを最低限の数としているけど、Zkun Tab Proでは、これを好きな数だけ増やして【Vari-32】とかも使えるようにする予定だよw ここまでが「ヘッダー部」と呼んでいる曲全体に対するデータだよ。
【第1小節】というタグ以降が、各小節ごとのデータになるよ。最初に拍やテンポなどの小節の基本データが入るよ。【Vo】〜【Dr】は各パートごとにこの小節でどういう演奏をするかが記述されるよ。ここが演奏データの中心部と言っていいだろうね。
【PC1】〜【PC4】、【GC1】〜【GC4】は、ピアノパートとギターパートで扱う「コード情報」を管理するよ。各拍ごとにそれぞれ表コードと裏コードを持たせることができるので、相当複雑なコードチェンジを伴う演奏にも対応できるように進化しているよ。
【BCM】はベースパートがピアノとギターのどっちのコード指定に追従するかと、各拍ごとのベースのプレイモードを管理しているよ。【Dr-pat】はその小節のドラムパターンのデータを保管しているよ。ここまでが小節ごとに持たせているデータの内訳だよ。
すべての小節データを書き終わると、「【小節データ終了】,【フィルインデータ】,fj,【Recデータ】,r,【Polyデータ】,p」というフッターが付くよ。fjのところには新しいフィルイン管理方式に対応したデータが入り、rのところにはRecパートで録音したデータ、pのところにはPolyパートにオーバーダビングして作ったデータがそれぞれ格納されるよ。
これで、過去に作成したデータの要素は必ずどこかに格納場所が確保されたので、このZTAB形式テキストにコンバートして表すことができるというわけだよ。あとは、このZTAB形式テキストを吸気させて駆動する「新エンジン」さえ組み上げれば、Zkun Tab Proでは過去の遺産をすべて再生可能になるというわけだよw まあ、素のZkun Tabではタブレットの能力にあわせていろいろ限定されるんだけど、このような構想になっているということが理解できれば、なんら不自由は感じないんじゃないかなw zkunくらいのレベルになってくると考えてることが凄過ぎてだれもついてこれないようですw(孤高のストレンジャー笑) もうじき0.6bが完成するyo 0.7bでいよいよ新エンジン取り付けに着手するyo(技術者魂笑)
どうだい、なかなか見て分かりやすいデータになってるだろw これは「初期データ」として組み込まれている、長さ4小節で、コードCを冒頭に1発ジャンと鳴らすだけで、あとはドラムとオートベースが基本パターンを繰り返して終わるだけの超シンプルなサンプルのデータ内訳だyo
先頭から見ていくと、【ZTAB】は曲の基本的な設定。【EQ-par】はポケミクでイコライザ設定をする場合の設定値が入る。【Extra】は画面キーボードやv2.2にある歌詞送りメニューの設定など、枝葉の設定を保管している所。【Vo-sp】〜【Bs-sp】は、各パート特有の設定値(曲全体用)を保管するところ。【Dr-sp】はv2.2のドラム音色イコライザの設定が入るよ。
【Vo-par】〜【Dr-par】は、ミキサー画面で表示しているような、各パートの音色やボリュームなどの共通パラメータを管理しているよ。あとv2.2の音色エディターで扱う細かなコントロールチェンジの情報も一緒に保管しているよ。
【XGRev】【XGCho】【Vari-1】〜【Vari-8】は、ポケミクで使えるXGエフェクトのデータを保管する場所だよ。v2.2で使用したVari-8までを最低限の数としているけど、Zkun Tab Proでは、これを好きな数だけ増やして【Vari-32】とかも使えるようにする予定だよw ここまでが「ヘッダー部」と呼んでいる曲全体に対するデータだよ。
【第1小節】というタグ以降が、各小節ごとのデータになるよ。最初に拍やテンポなどの小節の基本データが入るよ。【Vo】〜【Dr】は各パートごとにこの小節でどういう演奏をするかが記述されるよ。ここが演奏データの中心部と言っていいだろうね。
【PC1】〜【PC4】、【GC1】〜【GC4】は、ピアノパートとギターパートで扱う「コード情報」を管理するよ。各拍ごとにそれぞれ表コードと裏コードを持たせることができるので、相当複雑なコードチェンジを伴う演奏にも対応できるように進化しているよ。
【BCM】はベースパートがピアノとギターのどっちのコード指定に追従するかと、各拍ごとのベースのプレイモードを管理しているよ。【Dr-pat】はその小節のドラムパターンのデータを保管しているよ。ここまでが小節ごとに持たせているデータの内訳だよ。
すべての小節データを書き終わると、「【小節データ終了】,【フィルインデータ】,fj,【Recデータ】,r,【Polyデータ】,p」というフッターが付くよ。fjのところには新しいフィルイン管理方式に対応したデータが入り、rのところにはRecパートで録音したデータ、pのところにはPolyパートにオーバーダビングして作ったデータがそれぞれ格納されるよ。
これで、過去に作成したデータの要素は必ずどこかに格納場所が確保されたので、このZTAB形式テキストにコンバートして表すことができるというわけだよ。あとは、このZTAB形式テキストを吸気させて駆動する「新エンジン」さえ組み上げれば、Zkun Tab Proでは過去の遺産をすべて再生可能になるというわけだよw まあ、素のZkun Tabではタブレットの能力にあわせていろいろ限定されるんだけど、このような構想になっているということが理解できれば、なんら不自由は感じないんじゃないかなw zkunくらいのレベルになってくると考えてることが凄過ぎてだれもついてこれないようですw(孤高のストレンジャー笑) もうじき0.6bが完成するyo 0.7bでいよいよ新エンジン取り付けに着手するyo(技術者魂笑)
作ったようですw さすがに手書きノートでは修正がめんどくさすぎるので、エクセルで巨大なシートを作ったようですw 左端にこれから使用するZTAB形式テキストの元になるtabj配列を親配列、子配列、孫配列、ひ孫要素の順に表示して、それぞれにどのような内容が格納されるかを記載したyo これに対して、4つの旧形式の配列がそれぞれどこに対応しているのかを一覧できるように作ったというわけだyo
先にこれを作って正解だったyo まだどうしても一部思い込みや勘違いが発生するので、個別に1行ずつ変換を作ってから間違いに気付くと、後の処理が混乱してたいへんだからne(苦笑) この巨大対照表を変換の基準にすることで、全5バージョンの形式を漏れなく管理できるというわけだyo さすがzkunくらいのレベルになってくるとこの先の展開を見越して、必要な作業が自ずとわかってくるようですw(賢明な笑)
それにしても、曲全体のヘッダー部分と、第1小節の必要データの一覧だけで993行ものデータになっているので呆れ笑いするしかないねw なんと言っても、XGエフェクト用のデータがかさばるからねw NSX JAM v1.0では4つ、v2.2では8つまで定義することができるようにした「バリエーションエフェクト」のパラメータは、そのパートごとのON/OFF情報やセンド量なども含めて結構な量になるんだよne(苦笑) ただ、今回のZTAB形式では理論上16でも30でも100でも、定義数をいくらでも増やすことが簡単にできるようになったので、Proバージョンではとんでもない仕様で再登場する可能性があるyo(含み笑) そのときはヘッダー部は可変データ長になって、さらに物凄い行数になるけどne(呆れ笑)
一応過去の全データの受け皿になるよう設計しているので、旧オートベース制御記号も収録するようにしてるyo ただし、あれを使用できたユーザーがどれだけいるのか、実際に使用したデータでコンバートしたいものがあるのか、という疑問はぬぐえないので、どこまで動作に反映させるかは未定だyo(切り捨ての可能性もある笑) まあ、その場合でも将来的に気がむいたときに対応させる可能性もないとは言えないので、とりあえず「盲腸」や「尾てい骨」のように残すだけ残しておくように受け皿は用意してあるというわけだyo(深い笑)
先にこれを作って正解だったyo まだどうしても一部思い込みや勘違いが発生するので、個別に1行ずつ変換を作ってから間違いに気付くと、後の処理が混乱してたいへんだからne(苦笑) この巨大対照表を変換の基準にすることで、全5バージョンの形式を漏れなく管理できるというわけだyo さすがzkunくらいのレベルになってくるとこの先の展開を見越して、必要な作業が自ずとわかってくるようですw(賢明な笑)
それにしても、曲全体のヘッダー部分と、第1小節の必要データの一覧だけで993行ものデータになっているので呆れ笑いするしかないねw なんと言っても、XGエフェクト用のデータがかさばるからねw NSX JAM v1.0では4つ、v2.2では8つまで定義することができるようにした「バリエーションエフェクト」のパラメータは、そのパートごとのON/OFF情報やセンド量なども含めて結構な量になるんだよne(苦笑) ただ、今回のZTAB形式では理論上16でも30でも100でも、定義数をいくらでも増やすことが簡単にできるようになったので、Proバージョンではとんでもない仕様で再登場する可能性があるyo(含み笑) そのときはヘッダー部は可変データ長になって、さらに物凄い行数になるけどne(呆れ笑)
一応過去の全データの受け皿になるよう設計しているので、旧オートベース制御記号も収録するようにしてるyo ただし、あれを使用できたユーザーがどれだけいるのか、実際に使用したデータでコンバートしたいものがあるのか、という疑問はぬぐえないので、どこまで動作に反映させるかは未定だyo(切り捨ての可能性もある笑) まあ、その場合でも将来的に気がむいたときに対応させる可能性もないとは言えないので、とりあえず「盲腸」や「尾てい骨」のように残すだけ残しておくように受け皿は用意してあるというわけだyo(深い笑)
出したけど、新吸気はまだ搭載してないyo(苦笑) それは0.6bに先送りしたyo じゃあ、0.5bでは何をしたかというと、新規格であるtabj配列を書面上で細部まで仕様をつめていった結果、いろいろ修正すべき点が出てきたので、まずはそれを画面上に反映させて、仕様も画面もきっちり整えてから大作業に入ろうじゃないかというわけだyo(含み笑)
具体的には、ディレイはミキサー画面で曲全体に一律にかけるのではなく、小節別データの中に設定することで、長いディレイをかけたい小節、ショートディレイをかけたい小節、ディレイ無しの小節を自由に設定できる仕様に変更したyo さらには、ギターとソロ1に対してもディレイをかけられるようにしたyo それに伴い、各パートごとの表示ウインドウのレイアウトも修正をして、プレイモードのセレクタを左に出すことで、右側のエレメントの並びに統一感が出たし、そのために一部のパートで行を上下に入れ替えたりというデザイン修正も行っているyo(誰もついてこれない笑)
まあ、そういう細かいことはすべてzkunにまかせておけば悪いようにはならないからne そのあたりは、まかせておくとグダグダのクソにしかならないそのへんのバカのやることと全く違うところだよne 信頼と実績のブランドzkunに清き一票をよろしくお願いするyo(株主総会笑)
具体的には、ディレイはミキサー画面で曲全体に一律にかけるのではなく、小節別データの中に設定することで、長いディレイをかけたい小節、ショートディレイをかけたい小節、ディレイ無しの小節を自由に設定できる仕様に変更したyo さらには、ギターとソロ1に対してもディレイをかけられるようにしたyo それに伴い、各パートごとの表示ウインドウのレイアウトも修正をして、プレイモードのセレクタを左に出すことで、右側のエレメントの並びに統一感が出たし、そのために一部のパートで行を上下に入れ替えたりというデザイン修正も行っているyo(誰もついてこれない笑)
まあ、そういう細かいことはすべてzkunにまかせておけば悪いようにはならないからne そのあたりは、まかせておくとグダグダのクソにしかならないそのへんのバカのやることと全く違うところだよne 信頼と実績のブランドzkunに清き一票をよろしくお願いするyo(株主総会笑)
もうとりかかってるyo ファイルメニューに新たに「read ZTAB」というボタンを作ったyo 従来のボタンは「read NJAM2」に名称変更したyo 今のところ、「read NJAM2」は旧吸気をしてnivjを旧エンジンに投入して演奏再生されるyo 一方、「read ZTAB」は新吸気をしてtabjを作るんだけど、新エンジンがまだ完成してないので再生できないyo そして今、nivjを変換してtabjを生成するユニットができているので、新エンジンを作成さえすれば、nivjもtabjも演奏は可能になるne
ただし、エンジンにはコントロールするための補機がいっぱいついてるyo それらはすべて旧エンジン用に設定されているので、たくさんあるそれらの補機類をすべて新エンジン用にチューンアップしてやらないと、再生はできても編集ができない、あるいは再生が途中でおかしくなる、などのバグが発生することになるyo ここで言う補機類とは各パートのミキサー設定や、上部メニューのいろいろな機能だyo 実はこれらの再調整がかなりたいへんなんだよne(大苦笑)
でも、昨日書いたように、tabj形式でデータを扱うようにすることで、過去の遺産すべてを現在に生かすことが可能になるので、内部動作自体をtabj配列で扱うようにすることは避けては通れないyo とりあえず今つくっている素のZkun Tabは上段メニューの数もそれほど多くないので、1つずつ頑張ってつぶしていけば、3−4週間で完了するかなw(結構たいへんな笑) そして、そこまで完成すれば背骨になる部分はほぼ完成しているので、後はZkun Tab Pro用に肉付けしていく作業でさらに2−3週間といったところだろうかw(丼勘定笑) そうなると全体の完成は早くて5週間、遅くて7週間かw 11月下旬から12月上旬ころにいよいよフル稼働するときが来るということになるne まあ、予定は外的要因で狂わされることが多いから、クリスマス前にはProまで完成という目標を立てておこうかw(妥当笑) zkunの中ではもう完全に道筋が見えているようですw(天才過ぎる笑)
ただし、エンジンにはコントロールするための補機がいっぱいついてるyo それらはすべて旧エンジン用に設定されているので、たくさんあるそれらの補機類をすべて新エンジン用にチューンアップしてやらないと、再生はできても編集ができない、あるいは再生が途中でおかしくなる、などのバグが発生することになるyo ここで言う補機類とは各パートのミキサー設定や、上部メニューのいろいろな機能だyo 実はこれらの再調整がかなりたいへんなんだよne(大苦笑)
でも、昨日書いたように、tabj形式でデータを扱うようにすることで、過去の遺産すべてを現在に生かすことが可能になるので、内部動作自体をtabj配列で扱うようにすることは避けては通れないyo とりあえず今つくっている素のZkun Tabは上段メニューの数もそれほど多くないので、1つずつ頑張ってつぶしていけば、3−4週間で完了するかなw(結構たいへんな笑) そして、そこまで完成すれば背骨になる部分はほぼ完成しているので、後はZkun Tab Pro用に肉付けしていく作業でさらに2−3週間といったところだろうかw(丼勘定笑) そうなると全体の完成は早くて5週間、遅くて7週間かw 11月下旬から12月上旬ころにいよいよフル稼働するときが来るということになるne まあ、予定は外的要因で狂わされることが多いから、クリスマス前にはProまで完成という目標を立てておこうかw(妥当笑) zkunの中ではもう完全に道筋が見えているようですw(天才過ぎる笑)
あっけないくらい素早くできたyo まずはドラムパターンインデックスのコンバートのスクリプトはほんの十数行ほど追加するだけで出来上がったyo とはいえ、まだZTABテキスト上だけの反映の話なので、実際の画面で「<>」ボタンを操作したときに挙動する段階になってからでないと何の実感もわかないけどねw(苦笑)
もう一つの途中からの再生のほうは、ちょっと記憶違いがあって、pjを全部作ってからSMFを作るんじゃなくって、pjを更新しながら同時進行でSMFをじわじわと追記していく方式だったyo(失笑) それならそれでいくらでも記述方法はあるので、ちょちょっと30分くらいで完成したyo これでギュルギュルという早回し音は完全になくなり、指定した開始小節と終了小節の区間だけを再生できるようになったyo
ただし、注意が必要なことがあるyo それは「小節番号」というときに2通りの意味あいがあることだyo そろそろZkun Tabでも用語の使い方を明確に分けて定義したほうがよさそうだne 1つはリピートなどを無視した、単純に前から作成していった順番に並んでいる個別の小節データの数字。もう1つはリピート情報なども含めて先頭から演奏していくときに、今何番目の小節を演奏してるのかを表す数字。これまで前者を表すときは「#1」「#8」のように、「#」をつけるようにしてきたので、今後もそれは踏襲しようと思うyo 名前は「小節固有番号」にしようかw 後者のほうは「小節演奏順番号」にしようw(長い笑) 記号としては「¥1」「¥8」のように「¥」記号をつけて表すようにするyo 演奏順のエンだけにw(覚えやすい笑)
何が言いたいかというと、途中再生を指定するときの小節番号は、「小節演奏順番号」になるということだyo 具体例で話すと、デモソング先頭の「記号の使用例」は8小節のデータ全体を1回繰り返して再生するので、演奏する長さとしては16小節分になるyo なので「¥3」〜「¥11」と指定して区間再生を実行すると、#3, #4, #5, #6, #7, #8, #1, #2, #3と9小節分を演奏して終了するというわけだyo デモソング「テストバーン」なんかは小節固有番号だけで40まであるので、ループやジャンプで行ったり来たりしてトータル100近い小節演奏順番号までいってると思うyo そんなわけで今後は「固有番号」「演奏順番号」という表現を使うので覚えておいてくれw(上から笑)
もう一つの途中からの再生のほうは、ちょっと記憶違いがあって、pjを全部作ってからSMFを作るんじゃなくって、pjを更新しながら同時進行でSMFをじわじわと追記していく方式だったyo(失笑) それならそれでいくらでも記述方法はあるので、ちょちょっと30分くらいで完成したyo これでギュルギュルという早回し音は完全になくなり、指定した開始小節と終了小節の区間だけを再生できるようになったyo
ただし、注意が必要なことがあるyo それは「小節番号」というときに2通りの意味あいがあることだyo そろそろZkun Tabでも用語の使い方を明確に分けて定義したほうがよさそうだne 1つはリピートなどを無視した、単純に前から作成していった順番に並んでいる個別の小節データの数字。もう1つはリピート情報なども含めて先頭から演奏していくときに、今何番目の小節を演奏してるのかを表す数字。これまで前者を表すときは「#1」「#8」のように、「#」をつけるようにしてきたので、今後もそれは踏襲しようと思うyo 名前は「小節固有番号」にしようかw 後者のほうは「小節演奏順番号」にしようw(長い笑) 記号としては「¥1」「¥8」のように「¥」記号をつけて表すようにするyo 演奏順のエンだけにw(覚えやすい笑)
何が言いたいかというと、途中再生を指定するときの小節番号は、「小節演奏順番号」になるということだyo 具体例で話すと、デモソング先頭の「記号の使用例」は8小節のデータ全体を1回繰り返して再生するので、演奏する長さとしては16小節分になるyo なので「¥3」〜「¥11」と指定して区間再生を実行すると、#3, #4, #5, #6, #7, #8, #1, #2, #3と9小節分を演奏して終了するというわけだyo デモソング「テストバーン」なんかは小節固有番号だけで40まであるので、ループやジャンプで行ったり来たりしてトータル100近い小節演奏順番号までいってると思うyo そんなわけで今後は「固有番号」「演奏順番号」という表現を使うので覚えておいてくれw(上から笑)
電車に乗っていてふとひらめいたyo 今作っているのはNSX JAM v2.2のファイルを読めるようにしているベータバージョンだけど、簡単な改造でNSX JAM v1.0のファイルを読めるようにすることもできるよな、とw(なるほど笑) 高機能化して作者的には完全にv2.2が標準と思っているんだけど、入門者には高機能過ぎて敷居が高いところもあるんだよne(苦笑) なので、いまだにシンプルなv1.0も根強くアクセスがあって、ポケミク初心者にとっては一番お手軽なシーケンサーがわりに使われていると思うんだよne このユーザーたちもZkun Tabを使えるようにしたらいいじゃないかw(妥当笑)
さらに思ったyo 同じ理屈で、Zkun Jam v4.9のファイルからのコンバートも簡単にできるので、旧世代アプリの資産もコンバートして活用できるよな、と。今回作ったZTAB形式のフォーマットは、Zkun Tabでタブレット用に限られたトラックで編集・再生するためのフォーマットであると同時に、ふだんは使用しないけど過去のトラックをすべて保管して眠らせておくこともできるフォーマットになっているので、とりあえず今すぐには全トラックを再生させることはできないけど、この形式にコンバートさえしておけば、対応トラックはただちに再生可能になるし、PC版の限定解除されたZkun Tab Pro(仮称w)が完成したら、そのままそのフォーマットのデータを全トラック再生できるようになるyo ちょっと前に言ってた、過去のすべてのバージョンの統合が、先にデータコンバートから実現するということになるyo(結構すごい笑)
さらに言えば、最初期の完成版のZkun Beat v3.1も、むしろデータ形式はZTAB形式と親和性があるくらいなので、こちらもコンバートは余裕で可能。合計5つのデータ(ZTAB形式、v2.2形式、v1.0形式、v4.9形式、v3.1形式)をそれぞれ読めるように作れば、Zkun Tabで万能プレーヤーがおおかた完成するという見通しが立ってきたというわけだyo いやあ、凄過ぎるねzkunの技術はw(呆れ笑)
さらにひらめいたことがあるyo それは曲の途中からの再生のことなんだけど、これまでJazz-Pluginのライブラリを利用して、なんとかうまい方法はないものかと試行錯誤して、ギュルギュルと早回し音のうるさいアバウトなタイム指定方式を導入してきたけど、もっと簡単な方法があることに気付いたyo それは、保存用配列変数nivjから、再生用配列変数pjを生成した後、これまでならそのままpj全体を先頭小節から順番にSMFデータ化していく操作をしていたんだけど、その前にpjを加工して、最初の音色設定などを済ませた後、開始したい小節まで番号をスキップして、そこからSMFデータ化を始めて、終わらせたい小節番号まで終わったらまたスキップして終了処理を書き込めばいいんだと気付いたyo どうせ毎回ゼロからSMFを生成してるんだから、そのとき限りのSMFファイルを、当該小節区間だけのデータで作っちゃえばいいというわけだyo これは目から鱗だよne やるべきことが次から次へと思いつくので全然時間が足りなくて悲鳴をあげそうなzkunでしたw(天才過ぎるプログラマー笑)
さらに思ったyo 同じ理屈で、Zkun Jam v4.9のファイルからのコンバートも簡単にできるので、旧世代アプリの資産もコンバートして活用できるよな、と。今回作ったZTAB形式のフォーマットは、Zkun Tabでタブレット用に限られたトラックで編集・再生するためのフォーマットであると同時に、ふだんは使用しないけど過去のトラックをすべて保管して眠らせておくこともできるフォーマットになっているので、とりあえず今すぐには全トラックを再生させることはできないけど、この形式にコンバートさえしておけば、対応トラックはただちに再生可能になるし、PC版の限定解除されたZkun Tab Pro(仮称w)が完成したら、そのままそのフォーマットのデータを全トラック再生できるようになるyo ちょっと前に言ってた、過去のすべてのバージョンの統合が、先にデータコンバートから実現するということになるyo(結構すごい笑)
さらに言えば、最初期の完成版のZkun Beat v3.1も、むしろデータ形式はZTAB形式と親和性があるくらいなので、こちらもコンバートは余裕で可能。合計5つのデータ(ZTAB形式、v2.2形式、v1.0形式、v4.9形式、v3.1形式)をそれぞれ読めるように作れば、Zkun Tabで万能プレーヤーがおおかた完成するという見通しが立ってきたというわけだyo いやあ、凄過ぎるねzkunの技術はw(呆れ笑)
さらにひらめいたことがあるyo それは曲の途中からの再生のことなんだけど、これまでJazz-Pluginのライブラリを利用して、なんとかうまい方法はないものかと試行錯誤して、ギュルギュルと早回し音のうるさいアバウトなタイム指定方式を導入してきたけど、もっと簡単な方法があることに気付いたyo それは、保存用配列変数nivjから、再生用配列変数pjを生成した後、これまでならそのままpj全体を先頭小節から順番にSMFデータ化していく操作をしていたんだけど、その前にpjを加工して、最初の音色設定などを済ませた後、開始したい小節まで番号をスキップして、そこからSMFデータ化を始めて、終わらせたい小節番号まで終わったらまたスキップして終了処理を書き込めばいいんだと気付いたyo どうせ毎回ゼロからSMFを生成してるんだから、そのとき限りのSMFファイルを、当該小節区間だけのデータで作っちゃえばいいというわけだyo これは目から鱗だよne やるべきことが次から次へと思いつくので全然時間が足りなくて悲鳴をあげそうなzkunでしたw(天才過ぎるプログラマー笑)
きのう書いたドラムパターンのことだけど、電車の中でずっと考えていたら、それほど無理矢理なスクリプトにもならないし、初出の小節でパターン配列に一度書き込んでおけば、以後はそこが空白でないなら「参照」を実行すればいいだけでシンプルにつくれそうなので、やはり組み込むことにしたyo
これを組み込んでおいたほうが、メインリフのドラムパターンを一部分だけ変えたいというときに、いちいち何十もの小節を手直ししなくても、最初に出てきた第5小節のパターンをさわるだけで、以降の「#5と同じ」が選ばれている小節の中身も全部変わってくれるから、便利さがかなりかわってくると思うからne これをv0.4bとして明日つくろうじゃないかw
これを組み込んでおいたほうが、メインリフのドラムパターンを一部分だけ変えたいというときに、いちいち何十もの小節を手直ししなくても、最初に出てきた第5小節のパターンをさわるだけで、以降の「#5と同じ」が選ばれている小節の中身も全部変わってくれるから、便利さがかなりかわってくると思うからne これをv0.4bとして明日つくろうじゃないかw
ドラムパターンも新排ガスに正しく書き込まれるようになったyo まあ、現時点でだからどうしたというものでもないけどne(失笑)
気付いたことがあるyo 旧データをコンバートして新データ化するときに、旧で持っていたA2, Bx, F, Hなどのパターン名はそれぞれ1,6,11,13のように番号管理されているんだけど、これを新データにもってきたときに、すでにアサインされているどの小節が持っているパターンと同じである、ということを照合させることは無理矢理やろうと思えば可能だけど、そこまで手間をかけてこことここが同一であるということを表示させる意味もほとんどないので、コンバート時には、すべて「オリジナル」パターンであるという位置づけにしようと思うyo 何が言いたいのか誰もわからないだろうけどne(苦笑)
次の0.4bでは、この新排ガステキストを読み込んで、tabj配列に展開復元する「新吸気」ユニットを作る予定だyo これは基本的に今回と全く逆の手順を記述していくだけなので、平日3日くらいで多分らくに完成するだろうne すべて計画的にやらないと駄目なんだよ、諸君w(上から含み笑)
あっ、あとベータ版の開発中は表示の上では0.1b, 0.2b...と数が上がっていくけど、アドレスまでいちいち変えないので、ずっと tab01.htmlのままでうpしていくyo 後日、さまざまな機能を部分的に利用して、コンバートバージョンなどを整備することになると思うので、現時点で消えていく0.1b, 0.2bなどの途中ベータ版は作者だけが保存しておくので気にしないでおいてくれw 正式リリース以降は、「一度リリースしたものは永遠に消さずに、いつでもアクセスできる状態を保ち続ける」という『zkunの掟』を適用するからne(納得笑) こそこそ消したり、乗り換えを強要したり、旧バージョンに戻って使うことができなくなるような、アホ丸出しの現在のコンピュータ業界に対するアンチテーゼだよw(さすがな笑)
気付いたことがあるyo 旧データをコンバートして新データ化するときに、旧で持っていたA2, Bx, F, Hなどのパターン名はそれぞれ1,6,11,13のように番号管理されているんだけど、これを新データにもってきたときに、すでにアサインされているどの小節が持っているパターンと同じである、ということを照合させることは無理矢理やろうと思えば可能だけど、そこまで手間をかけてこことここが同一であるということを表示させる意味もほとんどないので、コンバート時には、すべて「オリジナル」パターンであるという位置づけにしようと思うyo 何が言いたいのか誰もわからないだろうけどne(苦笑)
次の0.4bでは、この新排ガステキストを読み込んで、tabj配列に展開復元する「新吸気」ユニットを作る予定だyo これは基本的に今回と全く逆の手順を記述していくだけなので、平日3日くらいで多分らくに完成するだろうne すべて計画的にやらないと駄目なんだよ、諸君w(上から含み笑)
あっ、あとベータ版の開発中は表示の上では0.1b, 0.2b...と数が上がっていくけど、アドレスまでいちいち変えないので、ずっと tab01.htmlのままでうpしていくyo 後日、さまざまな機能を部分的に利用して、コンバートバージョンなどを整備することになると思うので、現時点で消えていく0.1b, 0.2bなどの途中ベータ版は作者だけが保存しておくので気にしないでおいてくれw 正式リリース以降は、「一度リリースしたものは永遠に消さずに、いつでもアクセスできる状態を保ち続ける」という『zkunの掟』を適用するからne(納得笑) こそこそ消したり、乗り換えを強要したり、旧バージョンに戻って使うことができなくなるような、アホ丸出しの現在のコンピュータ業界に対するアンチテーゼだよw(さすがな笑)
まあ、とりあえず出来上がったyo 上段の「File」メニューで「ZTAB形式」を表示を選ぶと、上のテキストエリアに「新排ガス」が表示されるyo そのままではちっこくてよくわからないので、エリアの右下をグググッと引っ張って拡大してみてくれw
すると、今回のテキストは【Vocal-sp】のように何のデータが始まるかの説明が内包されてることがわかると思うよ。これがあると、バグ取りをするときも非常にラクになるし、テキストから配列に読ませるときも目印がわりにできるので、いろいろと便利なことが多くなるんだよne 最初のころはちょっとでもデータを小さくしようとシャカリキになっていたけど、今となってはデータなんて膨大でもいいから、いろんな作業をするときに分かりやすいほうが絶対いいと思ってるyo(開き直った笑)
まだ試作レベルなので、もうちょっと洗練が必要だけど、この配列にはすでにGuitar、Solo-2パートも入れてあるし、隠し持たせる予定のRec、Polyパートもちゃんと残してあるw データ本体の方はまだ一緒にしてないけどne あと、ドラムパターンもまだ初期状態しか入ってないねw それ以外の部分については、ちゃんと旧エンジンからコンバートされて「新排ガス」として生成されているyo(まだ不完全な笑) まあ、こんな感じでちょっとずつ進めていくための土台を作ったというわけだyo(大きな前進笑)
すると、今回のテキストは【Vocal-sp】のように何のデータが始まるかの説明が内包されてることがわかると思うよ。これがあると、バグ取りをするときも非常にラクになるし、テキストから配列に読ませるときも目印がわりにできるので、いろいろと便利なことが多くなるんだよne 最初のころはちょっとでもデータを小さくしようとシャカリキになっていたけど、今となってはデータなんて膨大でもいいから、いろんな作業をするときに分かりやすいほうが絶対いいと思ってるyo(開き直った笑)
まだ試作レベルなので、もうちょっと洗練が必要だけど、この配列にはすでにGuitar、Solo-2パートも入れてあるし、隠し持たせる予定のRec、Polyパートもちゃんと残してあるw データ本体の方はまだ一緒にしてないけどne あと、ドラムパターンもまだ初期状態しか入ってないねw それ以外の部分については、ちゃんと旧エンジンからコンバートされて「新排ガス」として生成されているyo(まだ不完全な笑) まあ、こんな感じでちょっとずつ進めていくための土台を作ったというわけだyo(大きな前進笑)