zkunがいろんなことを横書きするブログのようですw(含み笑)
つくったyo これは何かというと、一度オーバーダビングしてしまうとその中身を編集することができなかった「Rec」パートと「Poly」パートに対して、MIDIイベントの除去ならばタイムを指定して行うことができるようにしたメニューだよw(何のこっちゃ笑)
これを作るに至ったのは段階を踏んだバグフィックスの結果だyo 某曲データを新たに打ち込んでいる中で、たまたま「Display file」を実行して「Poly」パートのMIDIイベントリストをながめていると、なんとなんとエクスプレッション変更が同じタイムに10個以上繰り返し実行されている箇所があるではないかw(苦笑) なんでこういうことが発生するのか調べてみると、小節ごとの音色チェンジ、エクスプレッションチェンジを指定した場合に、その記述が累積していってしまうバグがあることに気付いたyo なるほど、「Poly」と「Rec」は特殊なロード方式をとっているので、他のトラックと同じ動作で各小節頭での書き込み発生を処理していたら、毎回レコーディングしていくのと同じように累積されるのも道理だなと気付いたyo これと同じ現象がデモソングの「スカーレット」でも発生しているのを確認したyo エクスプレッションチェンジを20個も小節冒頭のタイミングで送っていた個所があったので、それで間奏部分がモタった感じに再生されていたんだと気付いたyo
これを解消するにはどうするか。小節ごとに音色やエクスプレッションを変更できる機構はなくすわけにはいかない。その部分は生かしたままで、もっと根本的に対策をとれる方法はないか。。。。
そこでひらめいたyo 特殊なロード方式であることを逆手にとって、ロード時に同一タイムで同一内容のMIDIイベントをチェックすることが可能だと気付いたyo そこでフィルターをかけて重複データが累積することを毎回阻止できるようにしたyo これだと、すでに重複が保存されてしまっている曲データも、読み込んで再度保存すれば重複が解消されるので便利だyo さっそく「スカーレット」で実行してみると、みごとにモタリが解消して軽い動作になったyo いやあ、めでたいめでたいw
と思ったけど、今打ち込み中の某曲のデータではまだ一部問題が残っていたyo それは、「Poly」パートに一度書き込まれたエクスプレッションを0にするというMIDIイベントが、そのタイミングでずっと残ってしまっていて、後からいくらエクスプレッション値を変えたデータを再書き込みしても、そのデータが後ろに残っているせいで音量がゼロのままになってしまってるんだよne(苦笑) まあ、この件だけならば他にもプログラム上で対策する方法はあるけど、似たようなことは今後もいろいろ起こりうると思うんだよne イベントリストで原因を突き止められているものに関しては、狙いうちでそのMIDIイベントだけを除去してしまえる仕組みをつくっておけば、いろいろ応用もきく。極端な話、レコーディングのミスタッチの音だって特定して消去しちゃうことも可能になる。そこで、「リムーブ」メニューをつくっちゃったというわけだyo おかげで無事に、しぶとく残ってたエクスプレッション0データを除去して、正しい音量で鳴らすことができるようになったyo ただ、これはちょっと問題な動作だよne 2度以上変更を行った場合、どっちのデータが最終的に残るかわからない状況になっていて、いちいち手動で「リムーブ」しなくちゃいけないというのではね。引き続き、うまい対策を考えていくことにするyo(真面目な笑)
これを作るに至ったのは段階を踏んだバグフィックスの結果だyo 某曲データを新たに打ち込んでいる中で、たまたま「Display file」を実行して「Poly」パートのMIDIイベントリストをながめていると、なんとなんとエクスプレッション変更が同じタイムに10個以上繰り返し実行されている箇所があるではないかw(苦笑) なんでこういうことが発生するのか調べてみると、小節ごとの音色チェンジ、エクスプレッションチェンジを指定した場合に、その記述が累積していってしまうバグがあることに気付いたyo なるほど、「Poly」と「Rec」は特殊なロード方式をとっているので、他のトラックと同じ動作で各小節頭での書き込み発生を処理していたら、毎回レコーディングしていくのと同じように累積されるのも道理だなと気付いたyo これと同じ現象がデモソングの「スカーレット」でも発生しているのを確認したyo エクスプレッションチェンジを20個も小節冒頭のタイミングで送っていた個所があったので、それで間奏部分がモタった感じに再生されていたんだと気付いたyo
これを解消するにはどうするか。小節ごとに音色やエクスプレッションを変更できる機構はなくすわけにはいかない。その部分は生かしたままで、もっと根本的に対策をとれる方法はないか。。。。
そこでひらめいたyo 特殊なロード方式であることを逆手にとって、ロード時に同一タイムで同一内容のMIDIイベントをチェックすることが可能だと気付いたyo そこでフィルターをかけて重複データが累積することを毎回阻止できるようにしたyo これだと、すでに重複が保存されてしまっている曲データも、読み込んで再度保存すれば重複が解消されるので便利だyo さっそく「スカーレット」で実行してみると、みごとにモタリが解消して軽い動作になったyo いやあ、めでたいめでたいw
と思ったけど、今打ち込み中の某曲のデータではまだ一部問題が残っていたyo それは、「Poly」パートに一度書き込まれたエクスプレッションを0にするというMIDIイベントが、そのタイミングでずっと残ってしまっていて、後からいくらエクスプレッション値を変えたデータを再書き込みしても、そのデータが後ろに残っているせいで音量がゼロのままになってしまってるんだよne(苦笑) まあ、この件だけならば他にもプログラム上で対策する方法はあるけど、似たようなことは今後もいろいろ起こりうると思うんだよne イベントリストで原因を突き止められているものに関しては、狙いうちでそのMIDIイベントだけを除去してしまえる仕組みをつくっておけば、いろいろ応用もきく。極端な話、レコーディングのミスタッチの音だって特定して消去しちゃうことも可能になる。そこで、「リムーブ」メニューをつくっちゃったというわけだyo おかげで無事に、しぶとく残ってたエクスプレッション0データを除去して、正しい音量で鳴らすことができるようになったyo ただ、これはちょっと問題な動作だよne 2度以上変更を行った場合、どっちのデータが最終的に残るかわからない状況になっていて、いちいち手動で「リムーブ」しなくちゃいけないというのではね。引き続き、うまい対策を考えていくことにするyo(真面目な笑)
PR