zkunがいろんなことを横書きするブログのようですw(含み笑)
もうとりかかってる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(天才過ぎる笑)
PR
あっけないくらい素早くできた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(大きな前進笑)
たしかにちょっとずつ前進していくので、まどろっこしい感じがするだろうねw(含み笑) ただ、全く新しい規格を定義して、新しいパーツを作って、動作原理自体初めてやるものを作ろうとすると、プログラミングとバグ取りの作業はとてつもなく大変になるyo それは、去年の今ごろZkun BeatからZkun Jamに進化させる時に実感したyo(失笑) とは言え、Zkun Jamも多くの部分をZkun Beatから継承していたんだけど、ドラムトラックの管理方式を全面的に変えるという背骨の付け替えのような大改造だったのでバグ取りが物凄くたいへんだったyo さらに言えば、そこで初めて挑戦する個別の小節ごとに拍数の変更を可能にしたり、テンポ変更を可能にしたりするという大技も含まれていたので、ちょっとやそっとでは完成しなかったyo(大苦笑)
そういう一大難作業をするときに、出勤の合間の細切れの自由時間1-2時間で、ちょっとずつやるなんていうことはまず無理だよne ある程度まとまった時間なり連休なりがあって、はじめて大きなプログラム作業にとりかかることが可能になるyo 終わりを気にした細切れの時間では、壮大なプログラムなんて着手してもストレスにしかならず、非効率だからne(無理な笑)
そこに改変方式のうまみはあるようです。たしかにちょっとずつしか前進しないけど、1つ1つの作業は割と短時間で完了し、その作業後に動作チェックして正しく動くか動かないかを確認することが容易だよne こまめに新規保存して途中バージョンをいっぱい保管しておけば、ちゃんと動かない場合にどこまで戻せばいいかも迷わず判断できるよne(妥当笑)
さらに言えば、新方式、新規格をつくっていく場合、そのためのテストデータを作るのも大きな問題だyo まだ動いていないシステム用のデータを作るんだから理屈で考えたデータを無理矢理手動でつくるしかなく、その手間もたいへんなうえ、それを作ってる途中でバグったり勘違いしたりしてる可能性もあるわけで、間違ったデータでテストした結果、せっかくちゃんと動いてるプログラムを「改悪」してしまう危険もあるからne その意味で、旧システムで正常に演奏できている既存の曲データをテストデータとしてそのまま使えることで、テストデータにミスがある可能性は排除できるので、無駄な労苦をあらかじめ排除できるんだよne(納得笑)
こういうメリットがあるので、じわじわとちょっとずつ作り変えながらTab v0.1bまでもってくる作業を細切れの時間をやりくりしてやってこれたというわけだyo zkunくらいのレベルになってくると開発の進め方自体が高度に計算されているので、無駄に必死になって疲れ果てたりすることもなくなるようですw(高度な笑) そこらへんのブラックソフトウェア会社もzkunの手法に学んだほうがいいようですw(上から笑)
それでも、要所要所では長めの時間を確保して、じっくり着手したい部分があるようですw 9月の連休では、それまでデザインモックアップだけだったv3tに、改変改変で最適化を進めていた仮動作エンジンを移植するという「火入れ」の大手術を行ったyo そして10月の連休である今日は、旧エンジンで動いてきたv3tに「新排ガス」をはき出せる機能をまずは搭載させるyo 「新排ガス」は新テストデータになるもので、これを生成できるようになることで、次は「新吸気」としてそれを読ませる機能をつけることができるようになり、最後に「新エンジン」をとりつけて、完全に「新車」の性能を発揮させるというわけだyo 一番重要なのが、最初にどのような「新排ガス」を出すように定義するかを確定させる最初の段階だyo ここで基本的にすべてが決まるからne これが完了すれば、あとの作業はある意味「改変」の延長に過ぎないので、各パラメータの読み込み先アドレスを変更していくくらいの簡単な作業でしかないyo それこそ、出勤前の時間でちょっとずつ進めていって数日でラクに終わるような作業だからne そこまで完全に読み切っているzkunは、この日に「新排ガス」生成ルーチンをつくる作業をもってくるよう計算していたようですw(計画的過ぎる笑) ノーベルプログラム賞はzkunがふさわしいようですw(同意笑)
そういう一大難作業をするときに、出勤の合間の細切れの自由時間1-2時間で、ちょっとずつやるなんていうことはまず無理だよne ある程度まとまった時間なり連休なりがあって、はじめて大きなプログラム作業にとりかかることが可能になるyo 終わりを気にした細切れの時間では、壮大なプログラムなんて着手してもストレスにしかならず、非効率だからne(無理な笑)
そこに改変方式のうまみはあるようです。たしかにちょっとずつしか前進しないけど、1つ1つの作業は割と短時間で完了し、その作業後に動作チェックして正しく動くか動かないかを確認することが容易だよne こまめに新規保存して途中バージョンをいっぱい保管しておけば、ちゃんと動かない場合にどこまで戻せばいいかも迷わず判断できるよne(妥当笑)
さらに言えば、新方式、新規格をつくっていく場合、そのためのテストデータを作るのも大きな問題だyo まだ動いていないシステム用のデータを作るんだから理屈で考えたデータを無理矢理手動でつくるしかなく、その手間もたいへんなうえ、それを作ってる途中でバグったり勘違いしたりしてる可能性もあるわけで、間違ったデータでテストした結果、せっかくちゃんと動いてるプログラムを「改悪」してしまう危険もあるからne その意味で、旧システムで正常に演奏できている既存の曲データをテストデータとしてそのまま使えることで、テストデータにミスがある可能性は排除できるので、無駄な労苦をあらかじめ排除できるんだよne(納得笑)
こういうメリットがあるので、じわじわとちょっとずつ作り変えながらTab v0.1bまでもってくる作業を細切れの時間をやりくりしてやってこれたというわけだyo zkunくらいのレベルになってくると開発の進め方自体が高度に計算されているので、無駄に必死になって疲れ果てたりすることもなくなるようですw(高度な笑) そこらへんのブラックソフトウェア会社もzkunの手法に学んだほうがいいようですw(上から笑)
それでも、要所要所では長めの時間を確保して、じっくり着手したい部分があるようですw 9月の連休では、それまでデザインモックアップだけだったv3tに、改変改変で最適化を進めていた仮動作エンジンを移植するという「火入れ」の大手術を行ったyo そして10月の連休である今日は、旧エンジンで動いてきたv3tに「新排ガス」をはき出せる機能をまずは搭載させるyo 「新排ガス」は新テストデータになるもので、これを生成できるようになることで、次は「新吸気」としてそれを読ませる機能をつけることができるようになり、最後に「新エンジン」をとりつけて、完全に「新車」の性能を発揮させるというわけだyo 一番重要なのが、最初にどのような「新排ガス」を出すように定義するかを確定させる最初の段階だyo ここで基本的にすべてが決まるからne これが完了すれば、あとの作業はある意味「改変」の延長に過ぎないので、各パラメータの読み込み先アドレスを変更していくくらいの簡単な作業でしかないyo それこそ、出勤前の時間でちょっとずつ進めていって数日でラクに終わるような作業だからne そこまで完全に読み切っているzkunは、この日に「新排ガス」生成ルーチンをつくる作業をもってくるよう計算していたようですw(計画的過ぎる笑) ノーベルプログラム賞はzkunがふさわしいようですw(同意笑)
とりあえず再生だけなら結構サクサクと動くようになったのでベータ版としてここらでいったん出すことにするyo 名前はタブレットからだとNSX-39を直接駆動できないので「NSX」をつけるとサギくさくなってしまうので、また「Zkun」に戻したyo 基本的には8インチタブレット用として作成してるので「Zkun Tab」という名前でいくことにするyo(微笑)
基本的にWindows8.1の8インチ画面のタブレットマシンに、Chromeをダウンロードし、さらにJazz-Pluginをインストールして使うことを前提にしたWebアプリだyo 似たようなタブレットでも、アンドロイドやiPadではJazz-Pluginが使えないので動かないyo 本体内蔵音源でしか再生できないけど、同じデータをPCで再生する場合はポケミクを歌わせることもできるyo その切り替えは上段メニューの「Pref」で「歌詞送信 ON」をチェックするだけでできるyo ボクのテスト環境はASUS VivoTab Note8でやってるyo なにかのアプデとかの後に音が鳴らなくなったりすることもあるようなので、その場合はJazz-PluginやChromeやWindows8.1そのものをインストールし直せば治るようだけど、その詳細は不明だyo(Windowsのことは知らん笑)
v0.1bではまだいろんな部分が作動していないし、ドラムの表示も曲と一致してなくて、ドラムパターン1-16を表示してるだけだyo(大苦笑) これは実はまだNSX JAM v2.2と同じ配列変数で動かしているだけなので、Zkun Tab用の新定義の変数になってないからだyo とりあえず旧OSのまま動くマシンを出しておいて、後から新OSに切り替えてフル性能を発揮できるようにするという製造パターンになっているyo(複雑な笑) そのほうが、何から何まで新しいものを作るという拷問のような作業から解放されるので、正直作るのがラクなんだよne(苦笑) 改変、改変でここまで成長してきたZkunシリーズなので、改変はお手のものだyo とりあえずベータが早くとれるように中身の新OS化を進めていこうと思うyo てか、保管方法が変わるので、それを完成させないことにはドラムパターンの処理のしようがなくて、それがおさまらない限り、さらにややこしいフィルインデータのつっこみようがないので、後ろがつかえてるんだよねw(早くしろ笑)
基本的にWindows8.1の8インチ画面のタブレットマシンに、Chromeをダウンロードし、さらにJazz-Pluginをインストールして使うことを前提にしたWebアプリだyo 似たようなタブレットでも、アンドロイドやiPadではJazz-Pluginが使えないので動かないyo 本体内蔵音源でしか再生できないけど、同じデータをPCで再生する場合はポケミクを歌わせることもできるyo その切り替えは上段メニューの「Pref」で「歌詞送信 ON」をチェックするだけでできるyo ボクのテスト環境はASUS VivoTab Note8でやってるyo なにかのアプデとかの後に音が鳴らなくなったりすることもあるようなので、その場合はJazz-PluginやChromeやWindows8.1そのものをインストールし直せば治るようだけど、その詳細は不明だyo(Windowsのことは知らん笑)
v0.1bではまだいろんな部分が作動していないし、ドラムの表示も曲と一致してなくて、ドラムパターン1-16を表示してるだけだyo(大苦笑) これは実はまだNSX JAM v2.2と同じ配列変数で動かしているだけなので、Zkun Tab用の新定義の変数になってないからだyo とりあえず旧OSのまま動くマシンを出しておいて、後から新OSに切り替えてフル性能を発揮できるようにするという製造パターンになっているyo(複雑な笑) そのほうが、何から何まで新しいものを作るという拷問のような作業から解放されるので、正直作るのがラクなんだよne(苦笑) 改変、改変でここまで成長してきたZkunシリーズなので、改変はお手のものだyo とりあえずベータが早くとれるように中身の新OS化を進めていこうと思うyo てか、保管方法が変わるので、それを完成させないことにはドラムパターンの処理のしようがなくて、それがおさまらない限り、さらにややこしいフィルインデータのつっこみようがないので、後ろがつかえてるんだよねw(早くしろ笑)
モジュレーションは指定すればかかってるみたいだne ならば、ミキサー画面にModの項目を復活させるかw 噂ではリバーブもかかってるみたいだけど、確認できたらこちらもミキサー画面に復活させるyo CPU負荷という点では微妙だけど、指定に関していえば曲の最初に1回送信するだけなのでなんてことはないんだよne
だいぶ出来上がってきたので、あと大きな作業は、ドラムの新機構の作成、新テキスト形式の書き出し対応、新トラックの稼働、新テキスト形式の読み込み対応、フィルインメニューの稼働、といったあたりかな。新テキスト形式を定義して読み書きさせるのは当然として、現行のNJAM2形式も読み込んで対応パートに関してはそのまま再生できるようにしようと思うyo ただし、書き出しは新形式のみにするので、コンバートするかたちになるne
今考えてるのはデスクトップPCでv3tを動かしているとき「フルモード」をONにした場合は、RecやPolyのパートのデータも眠りから覚まして再生できるようにしようかと思ってるyo つまり、旧データを読ませてコンバートしても、タブレットでは扱われないそれらのデータもちゃんと所定の場所に格納して残しておいて、パワーあるマシンで再生するときにはそれらも鳴らしちゃおうかということだyo 実用性という点ではあまり意味がない機能だけど、過去のデータを生かす互換性という意味では秀逸な機能だよne まあv3tに内包させるか、v3pとして別立てするかは考慮の余地があるけど、以前考えていたようにPC用に全然別のデザインの「親ソフト」を作るという考えではなく、v3tを一部変えただけの拡張版を動かすというのなら「有り」だなと思うようになったyo それだけ、v3tの能力や機能性はけっこう高いと評価してるということだyo(含み笑)
だいぶ出来上がってきたので、あと大きな作業は、ドラムの新機構の作成、新テキスト形式の書き出し対応、新トラックの稼働、新テキスト形式の読み込み対応、フィルインメニューの稼働、といったあたりかな。新テキスト形式を定義して読み書きさせるのは当然として、現行のNJAM2形式も読み込んで対応パートに関してはそのまま再生できるようにしようと思うyo ただし、書き出しは新形式のみにするので、コンバートするかたちになるne
今考えてるのはデスクトップPCでv3tを動かしているとき「フルモード」をONにした場合は、RecやPolyのパートのデータも眠りから覚まして再生できるようにしようかと思ってるyo つまり、旧データを読ませてコンバートしても、タブレットでは扱われないそれらのデータもちゃんと所定の場所に格納して残しておいて、パワーあるマシンで再生するときにはそれらも鳴らしちゃおうかということだyo 実用性という点ではあまり意味がない機能だけど、過去のデータを生かす互換性という意味では秀逸な機能だよne まあv3tに内包させるか、v3pとして別立てするかは考慮の余地があるけど、以前考えていたようにPC用に全然別のデザインの「親ソフト」を作るという考えではなく、v3tを一部変えただけの拡張版を動かすというのなら「有り」だなと思うようになったyo それだけ、v3tの能力や機能性はけっこう高いと評価してるということだyo(含み笑)
と言っても、単にSMFに書き込むタイムを引き算してずらしてやるだけだけどne ショートディレイ的効果を何のCPU負荷もなく出せるので、これはナイスアイデアだと思うyo 対象にするのは、「Pianoパート」と「Solo-2パート」にするyo なぜなら「Guitarパート」と「Solo-1」パートをメインに使うように考えているので、そちらをジャストタイミングにして、サブ的に使う「Pianoパート」と「Solo-2パート」で、それぞれ和音と単音のディレイ音にすればいいと思うからne もちろんディレイタイムも調整できるようにするyo それぞれパンポットも指定できるので、左右に振ってディレイをかけるということも簡単に実現できるne(優れ笑)
あと、フレーズの直入力パーツは、小節ブロック内に配置せずに、フレーズエディターのメニュー画面の中に配置することにしたyo そのほうが、視覚的にも確認しやすくて操作性がいいと思うからne さあ、今日はちょっとプログラミングを進める予定ですyo(やる気が出た笑)
あと、フレーズの直入力パーツは、小節ブロック内に配置せずに、フレーズエディターのメニュー画面の中に配置することにしたyo そのほうが、視覚的にも確認しやすくて操作性がいいと思うからne さあ、今日はちょっとプログラミングを進める予定ですyo(やる気が出た笑)