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
ハーモナイズ記号を搭載完了したyo 「記号の使用例2」というデモソングでどんな風に使えるかを示しているので聴いてみてくれw アレンジはてきとうでしかないけどne
ほぼ昨日書いたとおりの動作をするけど、「=」を記述したクロックでは何も変更処理をしないようにしたよ。ピッチを変更する必要がないクロックで余計なSysExを送らないほうがいいからね。あと、動作条件として「ピッチチェンジ1-3が選ばれていてVocalパートがエフェクト対象になっていること」としていたけど、ハーモナイズ記号を記述する場合については特にVocalパートが選ばれていなければならない必要性はないので、「ピッチチェンジ1-3が選ばれていること」を満たせば発動するようにしたよ。つまり、他の楽器パートに対してかけてる場合でも、発動を妨げないというわけだよ。これによって、モノモードの「Mono」パートでも2声をピッチ幅自在で鳴らす指定が可能になるので、「Poly」パートに複写しなくても2声を鳴らせるne まあ、それだけのためにその小節のバリエーションエフェクトを使ってしまうのは勿体ないけどne(妥当笑)
ついでに、思い切ってオートベース記号を廃止したyo てか、ボクのチェック忘れでv2に移行した後にちゃんと動くように組んでなかったんだけどne(失笑) ただ、「Hybrid」モードができたので、好きなときに好きな拍にだけ特定のベースフレーズを書き込んで、そこ以外は通常のオートベースで演奏させるということが可能になっているので、基本的に長音しか指定できないオートベース記号を残している意味合いがなくなっていたことは事実だからne 使わなくてすむものはできるだけなくしてシンプルにしたほうがいいので、オートベース記号はv2では廃止ということにするyo まあ、v2ではまだ動いてなかったから影響もないよねw(大苦笑)
それからドラムパターンを一括で変更する「↑all A」ボタンをクリックした場合に、フィルインセレクタが初期化されずに残っていたので、そのままフィルインが付加されるというバグも解消しておいたよ。ただ、これは考えようによっては、x,yパターン以外でもフィルインを使ってしまう裏技として残しておいてもいいかなとちょっと考えたけど、どのみちファイルを「READ」したときには画面状態が違ってしまうし、エラーのもとになるだけなのでやめておいたyo(妥当笑) フィルインを使いたいなら素直に「Ax, Ay, Bx, By」のどれかを選んでくれyo(納得笑)
ほぼ昨日書いたとおりの動作をするけど、「=」を記述したクロックでは何も変更処理をしないようにしたよ。ピッチを変更する必要がないクロックで余計なSysExを送らないほうがいいからね。あと、動作条件として「ピッチチェンジ1-3が選ばれていてVocalパートがエフェクト対象になっていること」としていたけど、ハーモナイズ記号を記述する場合については特にVocalパートが選ばれていなければならない必要性はないので、「ピッチチェンジ1-3が選ばれていること」を満たせば発動するようにしたよ。つまり、他の楽器パートに対してかけてる場合でも、発動を妨げないというわけだよ。これによって、モノモードの「Mono」パートでも2声をピッチ幅自在で鳴らす指定が可能になるので、「Poly」パートに複写しなくても2声を鳴らせるne まあ、それだけのためにその小節のバリエーションエフェクトを使ってしまうのは勿体ないけどne(妥当笑)
ついでに、思い切ってオートベース記号を廃止したyo てか、ボクのチェック忘れでv2に移行した後にちゃんと動くように組んでなかったんだけどne(失笑) ただ、「Hybrid」モードができたので、好きなときに好きな拍にだけ特定のベースフレーズを書き込んで、そこ以外は通常のオートベースで演奏させるということが可能になっているので、基本的に長音しか指定できないオートベース記号を残している意味合いがなくなっていたことは事実だからne 使わなくてすむものはできるだけなくしてシンプルにしたほうがいいので、オートベース記号はv2では廃止ということにするyo まあ、v2ではまだ動いてなかったから影響もないよねw(大苦笑)
それからドラムパターンを一括で変更する「↑all A」ボタンをクリックした場合に、フィルインセレクタが初期化されずに残っていたので、そのままフィルインが付加されるというバグも解消しておいたよ。ただ、これは考えようによっては、x,yパターン以外でもフィルインを使ってしまう裏技として残しておいてもいいかなとちょっと考えたけど、どのみちファイルを「READ」したときには画面状態が違ってしまうし、エラーのもとになるだけなのでやめておいたyo(妥当笑) フィルインを使いたいなら素直に「Ax, Ay, Bx, By」のどれかを選んでくれyo(納得笑)
インテリジェントハーモナイザーは確かにすばらしい。非常に実用的でもある。だけど、まだ完璧ではないな、と。。。
ボクの敬愛する作曲家にして演奏家でありシンガーでもあるリッチー・サンボラの歌をよく聴いていると、単純にキーに合わせたインテリジェントハーモナイズでばかり合わせているわけではない。ときにはメロディーとは逆行して、あるいは一定の音程でハモっているときもあるyo そういうフレーズも指定できてこそ、完璧な仕事と言えると思うんだよne
そこでもう一仕事つけ足そうと思ったyo 今度は「ハーモナイズ記号」なるものを作るとおもうyo またまた制御記号かよと思うかもしれないけど、実際これが一番便利で、ありとあらゆる指定が可能なので汎用性が極めて高いからne 既存の制御記号のように、これもコード表示欄に書き込むといいだろう。記号はまだ使っていない「&」を使おうか。これに続けて4文字を記述するのも同じ。4文字がそれぞれピッチチェンジ幅を表し、この記号が記述されている拍では、通常のインテリジェントハーモナイズはオフになり、記号で指定したピッチ幅で1音ずつハーモナイズするという挙動にするyo 文字で書くと動作が重たそうだけど、それらのロジックはSMF作成時に処理されるだけなので、再生時の負荷は現行のインテリハモとかわらないyo
記号は英大文字が無難なので、これまた独自の下12段階、上12段階、無変化の計25文字を定義して記述することにするyo 発動条件は、その小節のバリエーションエフェクトがピッチチェンジ1-3のどれかで、かつVocalパートがエフェクト対象になっている場合で、その拍に「ハーモナイズ記号」の記述がある場合に4クロックとも記号で指定されたピッチ幅にSysExで変更してからボーカル音を鳴らすyo その場合は「ハーモナイザ」メニューでピッチやキーを指定している必要はなく、純粋に記号で指定した量だけシフトするyo その前後の拍で通常のインテリジェントハーモナイズさせたいならば、「ハーモナイザ」メニューで指定しておけばその通りに動作するyo いやあ、これは合理的だne ここまでやって「完成」と言えるんじゃないかなw 早速今夜つくろうじゃないかw(なかなか休めない笑)
ボクの敬愛する作曲家にして演奏家でありシンガーでもあるリッチー・サンボラの歌をよく聴いていると、単純にキーに合わせたインテリジェントハーモナイズでばかり合わせているわけではない。ときにはメロディーとは逆行して、あるいは一定の音程でハモっているときもあるyo そういうフレーズも指定できてこそ、完璧な仕事と言えると思うんだよne
そこでもう一仕事つけ足そうと思ったyo 今度は「ハーモナイズ記号」なるものを作るとおもうyo またまた制御記号かよと思うかもしれないけど、実際これが一番便利で、ありとあらゆる指定が可能なので汎用性が極めて高いからne 既存の制御記号のように、これもコード表示欄に書き込むといいだろう。記号はまだ使っていない「&」を使おうか。これに続けて4文字を記述するのも同じ。4文字がそれぞれピッチチェンジ幅を表し、この記号が記述されている拍では、通常のインテリジェントハーモナイズはオフになり、記号で指定したピッチ幅で1音ずつハーモナイズするという挙動にするyo 文字で書くと動作が重たそうだけど、それらのロジックはSMF作成時に処理されるだけなので、再生時の負荷は現行のインテリハモとかわらないyo
記号は英大文字が無難なので、これまた独自の下12段階、上12段階、無変化の計25文字を定義して記述することにするyo 発動条件は、その小節のバリエーションエフェクトがピッチチェンジ1-3のどれかで、かつVocalパートがエフェクト対象になっている場合で、その拍に「ハーモナイズ記号」の記述がある場合に4クロックとも記号で指定されたピッチ幅にSysExで変更してからボーカル音を鳴らすyo その場合は「ハーモナイザ」メニューでピッチやキーを指定している必要はなく、純粋に記号で指定した量だけシフトするyo その前後の拍で通常のインテリジェントハーモナイズさせたいならば、「ハーモナイザ」メニューで指定しておけばその通りに動作するyo いやあ、これは合理的だne ここまでやって「完成」と言えるんじゃないかなw 早速今夜つくろうじゃないかw(なかなか休めない笑)
みごとに成功したyo 思ったほどレイテンシはなく、鍵盤演奏してもまずまず追従してくれるよ。さっそくハーモナイザの動作を変更したyo
・外部MIDI楽器からチャンネル1で演奏してボーカルパートを鳴らす場合にハーモナイザをかけるときは、バリエーションエフェクトで「ピッチチェンジ1-3」のいずれかを選び、VocalパートをONにしてセンド量も上げておく。その状態で「ハーモナイザ」を開いてハーモナイズする音程をセレクタで選んでやると、リアルタイム演奏でインテリジェントハーモナイザがかかって2声で鳴らすことができる。
・内蔵PCキーボードでVocalパートを演奏する場合も同様。バリエーションエフェクトで「ピッチチェンジ1-3」のいずれかを選び、VocalパートをONにしてセンド量も上げておく。その状態で「ハーモナイザ」を開いてハーモナイズする音程をセレクタで選んでやると、リアルタイム演奏でインテリジェントハーモナイザがかかって2声で鳴らすことができる。
・曲データ内でもかけることができるようにしたよ。Vocalパートのフレーズデータがある小節の「vari」セレクタでバリエーションエフェクト番号を指定する。その番号のバリエーションエフェクトのタイプを「ピッチチェンジ1-3」のいずれかを選んでおく。VocalパートをONにしてセンド量も上げておく。「ハーモナイザ」を開いてハーモナイズする音程をセレクタで選んでおく。この状態で「PLAY」を実行すると、その小節ではインテリジェントハーモナイザがかかった状態で演奏される。
これらの動作は「+5, +4, +3, -3, -4, -5」のいずれを選んでも機能するよ。曲のキーにそった条件で各音に対してピッチ幅が設定されるので、ピッチチェンジ幅が固定の場合のギクシャクとした感じとはちがい、非常に違和感のないハーモニーをつけることができるよ。この機能をテストするために「スカーレット」の前半のボーカルをインテリハーモをかけたバージョンもうpしてみたよ。音程的にはちゃんと演奏されるだろ? NSX-39独特のもろさがあって、SysExをガンガン送受信しているとなんか挙動が不安定で不意にパンの定位が変わったり、プチッとノイズが入ったりとかが時々あるけど、これはピッチチェンジ特有なのかもしれないね。「春色」のデモでオッサンの声を作ったときも、オッサンの声があっちへ行ったりこっちへ行ったりしていたのでw(失笑) ピッチチェンジ以外のエフェクトではそういう現象がほとんどないような気もするし。まあとりあえず、ボーカルパート用のインテリジェントハーモナイザも完成したし、マニュアルも完成したし、いよいよもって開発は休業だねw しばらくラクさせてもらうyo(余裕の笑)
・外部MIDI楽器からチャンネル1で演奏してボーカルパートを鳴らす場合にハーモナイザをかけるときは、バリエーションエフェクトで「ピッチチェンジ1-3」のいずれかを選び、VocalパートをONにしてセンド量も上げておく。その状態で「ハーモナイザ」を開いてハーモナイズする音程をセレクタで選んでやると、リアルタイム演奏でインテリジェントハーモナイザがかかって2声で鳴らすことができる。
・内蔵PCキーボードでVocalパートを演奏する場合も同様。バリエーションエフェクトで「ピッチチェンジ1-3」のいずれかを選び、VocalパートをONにしてセンド量も上げておく。その状態で「ハーモナイザ」を開いてハーモナイズする音程をセレクタで選んでやると、リアルタイム演奏でインテリジェントハーモナイザがかかって2声で鳴らすことができる。
・曲データ内でもかけることができるようにしたよ。Vocalパートのフレーズデータがある小節の「vari」セレクタでバリエーションエフェクト番号を指定する。その番号のバリエーションエフェクトのタイプを「ピッチチェンジ1-3」のいずれかを選んでおく。VocalパートをONにしてセンド量も上げておく。「ハーモナイザ」を開いてハーモナイズする音程をセレクタで選んでおく。この状態で「PLAY」を実行すると、その小節ではインテリジェントハーモナイザがかかった状態で演奏される。
これらの動作は「+5, +4, +3, -3, -4, -5」のいずれを選んでも機能するよ。曲のキーにそった条件で各音に対してピッチ幅が設定されるので、ピッチチェンジ幅が固定の場合のギクシャクとした感じとはちがい、非常に違和感のないハーモニーをつけることができるよ。この機能をテストするために「スカーレット」の前半のボーカルをインテリハーモをかけたバージョンもうpしてみたよ。音程的にはちゃんと演奏されるだろ? NSX-39独特のもろさがあって、SysExをガンガン送受信しているとなんか挙動が不安定で不意にパンの定位が変わったり、プチッとノイズが入ったりとかが時々あるけど、これはピッチチェンジ特有なのかもしれないね。「春色」のデモでオッサンの声を作ったときも、オッサンの声があっちへ行ったりこっちへ行ったりしていたのでw(失笑) ピッチチェンジ以外のエフェクトではそういう現象がほとんどないような気もするし。まあとりあえず、ボーカルパート用のインテリジェントハーモナイザも完成したし、マニュアルも完成したし、いよいよもって開発は休業だねw しばらくラクさせてもらうyo(余裕の笑)
完成したyo 今回は画面下の表示をやめて、個別のメニューに「HELP!」リンクを表示する方式にしたよ。このほうがスッキリしてわかりやすくていいよねw(自画自賛笑) これ以上詳しくヘルプを書いたとしても応用力のある人にとっては特に意味もないだろうし、応用力のない人はいくら書いても理解できないだろうだろうから、マニュアルはこのくらいで十分かなと思うyo(ほどよい笑) まあ、このブログもあるんだから分からない点があったら質問してくれればいいんだけどねw
さて、JAMの開発もこれにていったん休業するyo 本業のほうがちょっとこれから忙しくなりそうだしねw(含み笑) NSX-39はXGエフェクトも使えて強力な音源だと思うよ。ただ、ボーカル部分はもうちょっと細かく表現力をいじれるようだといいんだけどね。まだマスクをして利用させていない機能もあるみたいだけど、音声データベースの詳細データも把握していないと使いようがない領域なのかもしれないね。手軽にリアルタイムで発声させるという点ではなかなか優れたハードだけど、楽曲を緻密に完成させるという目的ではやはりVocaloidソフトのほうが明確に有利だろうね。
リアルタイム発声といっても、スタイラスペンでオタクがふざけて鳴らしてますみたいなキモい光景はかんべんしてほしいんだよねw(失笑) 「やってみたw」とかマジ勘弁してよne(嘲笑) 外部MIDI鍵盤からの演奏でリアルタイムコントロールできる点はいいよね。でも、コントロールチェンジの多くがeVocaloidに対応してない点は残念だね。もうちょっと色々と声質に変化をつけることができれば楽器としての表現力が高まるんだけど、できるのはせいぜいビブラートやモジュレーションだし、英語の発音も対応してないので、誰がつくってもわりと平板なよくあるボカロ声でしか演奏できないというのが物足りない点だね。DAWの中で作り込めば、、となるともう完全にソフトのボカロを使えばいい話になるしね。単体でどこまで外部MIDI楽器からのリアルタイムコントロールに反応して表現力を広げられるかが、これが発展できるかどうかのカギだろうね。モノモードでしか発声できないのも厳しいところだね。せめて2声出せればだいぶ違うのに。XGエフェクトでピッチチェンジはあるけど、インテリジェントタイプではないから使いにくい。「ピッチチェンジ4」として新タイプを追加し、パラメータ6で何度のインテリジェントハーモナイズにするかを選択、パラメータ7でキーを選択、パラメータ8で長調か短調かを選択、という風にすれば、パラメータ1で単純に固定ピッチを選ぶ方式とは違って、曲中で使いやすくなるのにね。現行でもJazz-Pluginの機能を使って、外部MIDI鍵盤から入力された音程を取得してその音程の場合はpitchチェンジ幅をいくつにすべきかを演算して、XGエフェクトのパラメータ変更のSysExを送信して短3度から長3度に変更して、その後あらためてノートON情報を生成して送信してやれば、むりやりインテリジェントにできるかもしれないけど、かなりめんどくさい処理だし、ハード側のレイテンシも気になるんだよね。
まあ、実際プログラムしてみたらどうなるのか最後にこれだけテストしてみようかw モタモタになるようならやはり無理があるということだし、もしかして全然問題なく再生できるようなら画期的なエフェクトルーチンの出来上がりということになるしねw 最後の課題として取り組んでみようじゃなイカ!
さて、JAMの開発もこれにていったん休業するyo 本業のほうがちょっとこれから忙しくなりそうだしねw(含み笑) NSX-39はXGエフェクトも使えて強力な音源だと思うよ。ただ、ボーカル部分はもうちょっと細かく表現力をいじれるようだといいんだけどね。まだマスクをして利用させていない機能もあるみたいだけど、音声データベースの詳細データも把握していないと使いようがない領域なのかもしれないね。手軽にリアルタイムで発声させるという点ではなかなか優れたハードだけど、楽曲を緻密に完成させるという目的ではやはりVocaloidソフトのほうが明確に有利だろうね。
リアルタイム発声といっても、スタイラスペンでオタクがふざけて鳴らしてますみたいなキモい光景はかんべんしてほしいんだよねw(失笑) 「やってみたw」とかマジ勘弁してよne(嘲笑) 外部MIDI鍵盤からの演奏でリアルタイムコントロールできる点はいいよね。でも、コントロールチェンジの多くがeVocaloidに対応してない点は残念だね。もうちょっと色々と声質に変化をつけることができれば楽器としての表現力が高まるんだけど、できるのはせいぜいビブラートやモジュレーションだし、英語の発音も対応してないので、誰がつくってもわりと平板なよくあるボカロ声でしか演奏できないというのが物足りない点だね。DAWの中で作り込めば、、となるともう完全にソフトのボカロを使えばいい話になるしね。単体でどこまで外部MIDI楽器からのリアルタイムコントロールに反応して表現力を広げられるかが、これが発展できるかどうかのカギだろうね。モノモードでしか発声できないのも厳しいところだね。せめて2声出せればだいぶ違うのに。XGエフェクトでピッチチェンジはあるけど、インテリジェントタイプではないから使いにくい。「ピッチチェンジ4」として新タイプを追加し、パラメータ6で何度のインテリジェントハーモナイズにするかを選択、パラメータ7でキーを選択、パラメータ8で長調か短調かを選択、という風にすれば、パラメータ1で単純に固定ピッチを選ぶ方式とは違って、曲中で使いやすくなるのにね。現行でもJazz-Pluginの機能を使って、外部MIDI鍵盤から入力された音程を取得してその音程の場合はpitchチェンジ幅をいくつにすべきかを演算して、XGエフェクトのパラメータ変更のSysExを送信して短3度から長3度に変更して、その後あらためてノートON情報を生成して送信してやれば、むりやりインテリジェントにできるかもしれないけど、かなりめんどくさい処理だし、ハード側のレイテンシも気になるんだよね。
まあ、実際プログラムしてみたらどうなるのか最後にこれだけテストしてみようかw モタモタになるようならやはり無理があるということだし、もしかして全然問題なく再生できるようなら画期的なエフェクトルーチンの出来上がりということになるしねw 最後の課題として取り組んでみようじゃなイカ!
画面下側にあるピンク色のタイトルバーのついた4段がドラムパターンエディターだよ。ここでA〜Jのドラムパターンを定義して各小節で選択できるようになっているよ。
基本的には各パターン6ドラムインストで鳴るんだけど、Ax, Ay, Bx, Byの4パターンについてはフィルイン対象パターンになっているので4ドラムインストだけを使用し、残りの2インストでフィルインを鳴らすようになっているよ。
「open」ボタンをクリックすると中身が表示されるよ。左側の欄にインスト名やベロシティを選択するパーツがあるよ。初期状態では横一列の設定が一括で変更されるようになっているよ。個別に変更したい場合は左上の「to 4 bars」と書かれたセレクタを変更すれば、1パターンずつに対して変更指示を送れるようになるよ。
「auto copy」というチェックボックスにチェックが入っていると、列の一番左側のパターンに対して行ったクリックが右側3つのパターンに対しても同じように反映されるよ。これは似たようなパターンとして使うことの多いA,A2,Ax,AyやB,B2,Bx,Byの編集時に便利だよ。チェックを外せば連動しなくなるよ。
「↑all A」「↑all Off」というボタンは、曲のすべてのドラムパターンセレクタを「A」または「Off」にするボタンだよ。ドラムを使用しない曲の場合に一括でオフ指定できるよ。
ここで編集した内容は「ドラムクッキー」で保存することもできるし、曲データの中に埋め込まれて保存されるし、「READ Parts」で読める形式でテキスト保存しておくこともできるよ。詳しくは「ドラムクッキー」のヘルプと、「READ Parts」のヘルプを見てよね。
基本的には各パターン6ドラムインストで鳴るんだけど、Ax, Ay, Bx, Byの4パターンについてはフィルイン対象パターンになっているので4ドラムインストだけを使用し、残りの2インストでフィルインを鳴らすようになっているよ。
「open」ボタンをクリックすると中身が表示されるよ。左側の欄にインスト名やベロシティを選択するパーツがあるよ。初期状態では横一列の設定が一括で変更されるようになっているよ。個別に変更したい場合は左上の「to 4 bars」と書かれたセレクタを変更すれば、1パターンずつに対して変更指示を送れるようになるよ。
「auto copy」というチェックボックスにチェックが入っていると、列の一番左側のパターンに対して行ったクリックが右側3つのパターンに対しても同じように反映されるよ。これは似たようなパターンとして使うことの多いA,A2,Ax,AyやB,B2,Bx,Byの編集時に便利だよ。チェックを外せば連動しなくなるよ。
「↑all A」「↑all Off」というボタンは、曲のすべてのドラムパターンセレクタを「A」または「Off」にするボタンだよ。ドラムを使用しない曲の場合に一括でオフ指定できるよ。
ここで編集した内容は「ドラムクッキー」で保存することもできるし、曲データの中に埋め込まれて保存されるし、「READ Parts」で読める形式でテキスト保存しておくこともできるよ。詳しくは「ドラムクッキー」のヘルプと、「READ Parts」のヘルプを見てよね。
各小節ごとのデータを指定するセクションだよ。
「#1」のように左上に表示されている番号が小節番号だよ。このボックスは「As, Ae, Aj, At」などのループタグ、ジャンプタグを書き込む場所でもあるよ。
「コード表示欄」くすんだ水色の背景色の部分がコード表示欄だよ。拍ごとに4つに分かれているよ。ここにコードネームや制御記号を直接タイプして入力することで、ピアノパートやベースパートの演奏をコントロールすることができるよ。
「簡易表示欄」カラフルな背景色のテキストボックスが簡易表示欄だよ。下の「phrase」セレクタを切り替えることにより、表示されるパートを切り替えることができ、それに合わせて背景色も変化するよ。Vocalパートの場合は緑色、Monoパートの場合は水色、Bassパートの場合はオレンジ色で表示されるよ。この簡易表示欄はフレーズEditorで作成したデータを簡易的に表示しているだけなので、直接この欄を編集しても全く効果はないよ。
「beat」この小節の拍数を変更するセレクタだよ。「3」に変更すれば、4拍子の曲の中で、この小節だけ3拍子で演奏して次へ進むよ。この小節だけの効力なので、次小節は曲の拍子に戻るよ。
「tempo」この小節の演奏テンポを変更するセレクタだよ。「---」は曲のテンポどおりに演奏するという意味だよ。9-300までの数字はそのbpmで演奏するよ。「3/4, 3/2, 3/8」は曲のテンポに対してその比率倍のテンポに変更するという意味だよ。3連符的なフレーズを使うときに利用するよ。「x3, x2」は曲のテンポの3倍、2倍で演奏するよ。ここだけより細かい分解能で音符を指定して演奏したい場合に使用するよ。これを選んだ場合、ドラムパターンも連動して自動的にテンポに合わせてコンバートされるよ。「R1, R2, R3」はだんだんゆっくりになるテンポ指定だよ。エンディング前の部分などで利用できるよ。自分で効果を試してみてよねw
「phrase」セレクタは簡易表示欄に表示するパートを選択するよ。これの右側の「Edit」ボタンを押すと、直接この小節のこのパートのフレーズが「フレーズEditor」で開くので、ワンタッチでエディット画面に移行できるよ。
「Dr」セレクタはこの小節で演奏されるドラムパターンを選択するよ。ドラムパターンは画面下側のピンク色のタイトルのところにそれぞれ収納されているよ。この右側の「Rd.」と表示されているセレクタはフィルインセレクタだよ。ドラムパターンに「Ax, Ay, Bx, By」を選択している場合に有効になるよ。「Rd.」が選ばれている場合はフィルインパターンはランダムに選ばれるよ。数字を選択している場合はその番号のフィルインパターンが使用されるよ。
「Bs」セレクタはこの小節のBassプレイモードを選択するよ。「------」は曲のBassプレイモードと同じという意味だよ。各プレイモードの意味についてはベースパートのヘルプを見てよね。
「Pn」セレクタはこの小節のPianoプレイモードを選択するよ。「------」は曲のPianoプレイモードと同じという意味だよ。各プレイモードの意味についてはピアノパートのヘルプを見てよね。
「chg」セレクタはこの小節で音色やエクスプレッションを変更するパートを選択するよ。このセレクタを変更するとすべての小節のこのセレクタが連動して動くよ。これの右側にある2つのNumberエレメントがそれぞれ「音色番号」と「エクスプレッション」になるよ。「-1」が表示されている場合は、曲の設定に従うという意味だよ。エクスプレッションは初期値が110になっているので、音量を上げたいなら110以上に設定すればいいよ。
「vari」セレクタはこの小節で使用するバリエーションエフェクトの設定を選択するよ。「---」は使用しないという意味だよ。この右側の「Edit」というボタンをクリックすると「---」以外の場合は該当するバリエーションエフェクトのエディット画面がワンタッチで開くよ。詳しくはバリエーションエフェクトのヘルプを見てね。
「#1」のように左上に表示されている番号が小節番号だよ。このボックスは「As, Ae, Aj, At」などのループタグ、ジャンプタグを書き込む場所でもあるよ。
「コード表示欄」くすんだ水色の背景色の部分がコード表示欄だよ。拍ごとに4つに分かれているよ。ここにコードネームや制御記号を直接タイプして入力することで、ピアノパートやベースパートの演奏をコントロールすることができるよ。
「簡易表示欄」カラフルな背景色のテキストボックスが簡易表示欄だよ。下の「phrase」セレクタを切り替えることにより、表示されるパートを切り替えることができ、それに合わせて背景色も変化するよ。Vocalパートの場合は緑色、Monoパートの場合は水色、Bassパートの場合はオレンジ色で表示されるよ。この簡易表示欄はフレーズEditorで作成したデータを簡易的に表示しているだけなので、直接この欄を編集しても全く効果はないよ。
「beat」この小節の拍数を変更するセレクタだよ。「3」に変更すれば、4拍子の曲の中で、この小節だけ3拍子で演奏して次へ進むよ。この小節だけの効力なので、次小節は曲の拍子に戻るよ。
「tempo」この小節の演奏テンポを変更するセレクタだよ。「---」は曲のテンポどおりに演奏するという意味だよ。9-300までの数字はそのbpmで演奏するよ。「3/4, 3/2, 3/8」は曲のテンポに対してその比率倍のテンポに変更するという意味だよ。3連符的なフレーズを使うときに利用するよ。「x3, x2」は曲のテンポの3倍、2倍で演奏するよ。ここだけより細かい分解能で音符を指定して演奏したい場合に使用するよ。これを選んだ場合、ドラムパターンも連動して自動的にテンポに合わせてコンバートされるよ。「R1, R2, R3」はだんだんゆっくりになるテンポ指定だよ。エンディング前の部分などで利用できるよ。自分で効果を試してみてよねw
「phrase」セレクタは簡易表示欄に表示するパートを選択するよ。これの右側の「Edit」ボタンを押すと、直接この小節のこのパートのフレーズが「フレーズEditor」で開くので、ワンタッチでエディット画面に移行できるよ。
「Dr」セレクタはこの小節で演奏されるドラムパターンを選択するよ。ドラムパターンは画面下側のピンク色のタイトルのところにそれぞれ収納されているよ。この右側の「Rd.」と表示されているセレクタはフィルインセレクタだよ。ドラムパターンに「Ax, Ay, Bx, By」を選択している場合に有効になるよ。「Rd.」が選ばれている場合はフィルインパターンはランダムに選ばれるよ。数字を選択している場合はその番号のフィルインパターンが使用されるよ。
「Bs」セレクタはこの小節のBassプレイモードを選択するよ。「------」は曲のBassプレイモードと同じという意味だよ。各プレイモードの意味についてはベースパートのヘルプを見てよね。
「Pn」セレクタはこの小節のPianoプレイモードを選択するよ。「------」は曲のPianoプレイモードと同じという意味だよ。各プレイモードの意味についてはピアノパートのヘルプを見てよね。
「chg」セレクタはこの小節で音色やエクスプレッションを変更するパートを選択するよ。このセレクタを変更するとすべての小節のこのセレクタが連動して動くよ。これの右側にある2つのNumberエレメントがそれぞれ「音色番号」と「エクスプレッション」になるよ。「-1」が表示されている場合は、曲の設定に従うという意味だよ。エクスプレッションは初期値が110になっているので、音量を上げたいなら110以上に設定すればいいよ。
「vari」セレクタはこの小節で使用するバリエーションエフェクトの設定を選択するよ。「---」は使用しないという意味だよ。この右側の「Edit」というボタンをクリックすると「---」以外の場合は該当するバリエーションエフェクトのエディット画面がワンタッチで開くよ。詳しくはバリエーションエフェクトのヘルプを見てね。
このメニューバーは常に表示されていて、JAMの基本的な操作をコントロールするボタン類がまとめられているよ。左から順に機能を説明していくよ。
「Make Sheet」は画面上に表示する小節ブロックのスコアシートを新規作成するボタンだよ。初期状態では8小節分のシートが作成されているけど、このボタンでもっと大きなシートを作成することができるよ。
「hold」にチェックを入れていると、スコアシートを作成するときに、今表示されているシートの内容を保持した上でシートを拡張できるよ。全くの新規シートを作りたい場合はチェックを外しておいてね。
「Bars」は何小節分のシートを作るかを選ぶよ。4の倍数で選ぶようになっていて、最大256小節まで作れるようになっているよ。
「Beats」は作成するシートが1小節あたり何拍になるかを選ぶよ。通常は4拍が多いと思うけど「3」を選べば3拍子の楽曲を作れるよ。ここでは曲全体の拍子を設定するので、小節ごとの拍子数を個別に変えたい場合は小節ブロック内のセレクタを使うよ。
「ins」特定の場所に1小節を挿入するよ。どの位置に挿入するかきいてくるので、たとえば今ある第4小節の前に挿入したい場合は「4」という数字を入れてOKを押すといいよ。その場合、最終小節は押し出されて削除されるので、もし最終小節にすでにデータを入れている場合は、先に「hold」にチェックを入れて「Make Sheet」してシートを拡張しておくといいよ。
「del」特定の1小節を削除するよ。どの小節を削除するかきいてくるので数字を入れてOKを押してね。
「REC」Recパートへ外部MIDI楽器の演奏を録音するよ。MIDI2チャンネルに設定して録音してね。注意点としてはタイミング計算処理の関係で録音時のテンポは限られるということだよ。右のほうにある「Tempo」セレクタを「50, 60, 75, 82, 90, 100」のいずれかに設定した状態で録音を行ってね。録音終了後は任意のテンポに戻して大丈夫だよ。
「PLAY」曲データの再生を行うよ。SMF書き出しをする場合はこのボタンを一度押すまではSMFデータがまだ作成されていないよ。これを一度押したら書き出しができる状態になるよ。
「STOP」曲の再生・録音を終了するよ。録音停止の場合はダイアログが表示され、今行った録音のテイクをRecパートにオーバーダビングするかどうかをきいてくるよ。一度オーバダビングすると修正や分離はできないので、少しでもミスがある場合は「キャンセル」を選んだほうがいいと思うよw
「Pause」再生を一時停止するよ。一時停止すると「Resume」という表示にかわり、次にクリックすると再生を再開するよ。
その右側にある「0」が入ったボックスは、再生開始位置を指定できるボックスだよ。ここにMIDIクロックを入力してから「PLAY」ボタンを押すと、「ギュルルルル!」と早送り再生されて、指定されたクロックから再生が始まるよ。MIDIクロックは「ファイルMENU」の「Display file」をクリックして画面右下に表示されるイベントリストを見てクロックを正確に調べてもいいし、だいたいでバクっと指定してもいいよ。1小節でおおよそ1500クロックで計算したらいいよ。
「MIDI Out」JAMの出力先の音源を指定する重要なセレクタだよ。NSX-39で鳴らしたい場合は、このセレクタで「NSX-39」を選択する必要があるよ。
「MIDI In」入力に使うMIDI楽器を選択するセレクタだよ。ボクの環境では接続してあれば「Keyboard」と表示されてたいがいデフォルトですでに選択された状態になってるけど、みんなの環境ではどうかなw
「Tempo」曲のデフォルトテンポを指定するよ。300bpmまで選択できるよ。まあ、CPUのパフォーマンスに左右されるので、どの程度正確に再現されているかは未知数だよw SMF書き出ししてDAWに送った場合は厳密にテンポに従って再生されるはずだよ。
「Shufl」シャッフルを指定できるよ。GRIDで効いていない状態。10%-100%と増やしていくと裏拍のタイミングがどんどん変化していくよ。30-50%くらいがいい感じのシャッフルになると思うよ。ただし、16ビートでフレーズを作ってる場合のみ効果が出るので、8ビートのフレーズだと効果は全くあらわれないよw
「Hu.TP」ヒューマンテンポを指定できるよ。微妙なテンポの乱れを発生させて、人間が演奏しているような雰囲気を出す機能だよ。ただ、原始的なアプリの頃はよかったんだけど、今となってはRecパートとのシンクロもずれてしまうので、ちょっと使いにくい機能になっているね。Recパート、Polyパートを使ってる曲では使用せずに「GRID」のままにしておいてね。
「Vl.RD」ベロシティランダムを指定できるよ。ドラムパートとベースパートに対して効果が生じる機能で、発音するベロシティを若干変化させることで人間が演奏してるようなバラつきを発生させる機能だよ。これの数値を大きくすれば、バラつきの範囲も大きくなるよ。これは特に支障なく動作するので、わりとおすすめのオプションだよ。
「Make Sheet」は画面上に表示する小節ブロックのスコアシートを新規作成するボタンだよ。初期状態では8小節分のシートが作成されているけど、このボタンでもっと大きなシートを作成することができるよ。
「hold」にチェックを入れていると、スコアシートを作成するときに、今表示されているシートの内容を保持した上でシートを拡張できるよ。全くの新規シートを作りたい場合はチェックを外しておいてね。
「Bars」は何小節分のシートを作るかを選ぶよ。4の倍数で選ぶようになっていて、最大256小節まで作れるようになっているよ。
「Beats」は作成するシートが1小節あたり何拍になるかを選ぶよ。通常は4拍が多いと思うけど「3」を選べば3拍子の楽曲を作れるよ。ここでは曲全体の拍子を設定するので、小節ごとの拍子数を個別に変えたい場合は小節ブロック内のセレクタを使うよ。
「ins」特定の場所に1小節を挿入するよ。どの位置に挿入するかきいてくるので、たとえば今ある第4小節の前に挿入したい場合は「4」という数字を入れてOKを押すといいよ。その場合、最終小節は押し出されて削除されるので、もし最終小節にすでにデータを入れている場合は、先に「hold」にチェックを入れて「Make Sheet」してシートを拡張しておくといいよ。
「del」特定の1小節を削除するよ。どの小節を削除するかきいてくるので数字を入れてOKを押してね。
「REC」Recパートへ外部MIDI楽器の演奏を録音するよ。MIDI2チャンネルに設定して録音してね。注意点としてはタイミング計算処理の関係で録音時のテンポは限られるということだよ。右のほうにある「Tempo」セレクタを「50, 60, 75, 82, 90, 100」のいずれかに設定した状態で録音を行ってね。録音終了後は任意のテンポに戻して大丈夫だよ。
「PLAY」曲データの再生を行うよ。SMF書き出しをする場合はこのボタンを一度押すまではSMFデータがまだ作成されていないよ。これを一度押したら書き出しができる状態になるよ。
「STOP」曲の再生・録音を終了するよ。録音停止の場合はダイアログが表示され、今行った録音のテイクをRecパートにオーバーダビングするかどうかをきいてくるよ。一度オーバダビングすると修正や分離はできないので、少しでもミスがある場合は「キャンセル」を選んだほうがいいと思うよw
「Pause」再生を一時停止するよ。一時停止すると「Resume」という表示にかわり、次にクリックすると再生を再開するよ。
その右側にある「0」が入ったボックスは、再生開始位置を指定できるボックスだよ。ここにMIDIクロックを入力してから「PLAY」ボタンを押すと、「ギュルルルル!」と早送り再生されて、指定されたクロックから再生が始まるよ。MIDIクロックは「ファイルMENU」の「Display file」をクリックして画面右下に表示されるイベントリストを見てクロックを正確に調べてもいいし、だいたいでバクっと指定してもいいよ。1小節でおおよそ1500クロックで計算したらいいよ。
「MIDI Out」JAMの出力先の音源を指定する重要なセレクタだよ。NSX-39で鳴らしたい場合は、このセレクタで「NSX-39」を選択する必要があるよ。
「MIDI In」入力に使うMIDI楽器を選択するセレクタだよ。ボクの環境では接続してあれば「Keyboard」と表示されてたいがいデフォルトですでに選択された状態になってるけど、みんなの環境ではどうかなw
「Tempo」曲のデフォルトテンポを指定するよ。300bpmまで選択できるよ。まあ、CPUのパフォーマンスに左右されるので、どの程度正確に再現されているかは未知数だよw SMF書き出ししてDAWに送った場合は厳密にテンポに従って再生されるはずだよ。
「Shufl」シャッフルを指定できるよ。GRIDで効いていない状態。10%-100%と増やしていくと裏拍のタイミングがどんどん変化していくよ。30-50%くらいがいい感じのシャッフルになると思うよ。ただし、16ビートでフレーズを作ってる場合のみ効果が出るので、8ビートのフレーズだと効果は全くあらわれないよw
「Hu.TP」ヒューマンテンポを指定できるよ。微妙なテンポの乱れを発生させて、人間が演奏しているような雰囲気を出す機能だよ。ただ、原始的なアプリの頃はよかったんだけど、今となってはRecパートとのシンクロもずれてしまうので、ちょっと使いにくい機能になっているね。Recパート、Polyパートを使ってる曲では使用せずに「GRID」のままにしておいてね。
「Vl.RD」ベロシティランダムを指定できるよ。ドラムパートとベースパートに対して効果が生じる機能で、発音するベロシティを若干変化させることで人間が演奏してるようなバラつきを発生させる機能だよ。これの数値を大きくすれば、バラつきの範囲も大きくなるよ。これは特に支障なく動作するので、わりとおすすめのオプションだよ。
PolyパートまたはRecパートに対して、別のパートの内容をダビングするためのメニューだよ。また、指定したパートのフレーズデータをクリアできるよ。
Polyパートはそれ自身で直接演奏を指定する手段が用意されておらず、他のパートでいったん作成した演奏をオーバーダビングしていってデータを積み重ねていくという特殊な形態のパートだよ。逆に言えば、PianoパートやBassパートで用意されているような複雑な生成方式でつくられたフレーズをそのまんまパクることができて、さらに他のフレーズと重ねることもできるので、やり方しだいではもの凄いフレーズを奏でることができるパートだとも言えるよ。
「Mono→Poly」「Bass→Poly」「Piano→Poly」はクリックして次に再生を開始した瞬間にPolyパートへのダビングが完了するよ。なお、複写元のパートにも演奏データは残っているよ。「Polyをクリア」をクリックするとPolyパートに何も入っていない状態に戻るよ。オーバーダビングはすべての小節の内容を複写するので、データが重複したりしないように計画的に作業を実行するといいよ。
「Mono→Rec」「Bass→Rec」「Piano→Rec」というボタンもあるよ。Recパートは基本的に外部MIDI楽器の演奏をリアルタイム録音して使うパートなんだけど、鍵盤演奏がいまいち苦手な人はあまり使わないことが多いかもしれないよね。そこで、Recパートもダビングで利用してしまおうという狙いで作った機能がこれだよ。また、「Rec→Poly」というボタンもあるので、そうして作ったトラックをさらにPolyへ移すことも可能だよ。ダビング機能をどのように活用するかは、利用するユーザーのアイデアしだいだよ。
あと重要なことを書いておくよ。「ファイルメニュー」にある「READ Parts」ボタンを使えば、作業の途中段階でセーブしておいた内容にPolyパートやRecパートを戻すことができるので、オーバーダビングを続けてやってきたけどどうも失敗したなぁ。。。という場合に復旧することができるよ。詳しくはファイルメニューのヘルプを見てね。
Polyパートはそれ自身で直接演奏を指定する手段が用意されておらず、他のパートでいったん作成した演奏をオーバーダビングしていってデータを積み重ねていくという特殊な形態のパートだよ。逆に言えば、PianoパートやBassパートで用意されているような複雑な生成方式でつくられたフレーズをそのまんまパクることができて、さらに他のフレーズと重ねることもできるので、やり方しだいではもの凄いフレーズを奏でることができるパートだとも言えるよ。
「Mono→Poly」「Bass→Poly」「Piano→Poly」はクリックして次に再生を開始した瞬間にPolyパートへのダビングが完了するよ。なお、複写元のパートにも演奏データは残っているよ。「Polyをクリア」をクリックするとPolyパートに何も入っていない状態に戻るよ。オーバーダビングはすべての小節の内容を複写するので、データが重複したりしないように計画的に作業を実行するといいよ。
「Mono→Rec」「Bass→Rec」「Piano→Rec」というボタンもあるよ。Recパートは基本的に外部MIDI楽器の演奏をリアルタイム録音して使うパートなんだけど、鍵盤演奏がいまいち苦手な人はあまり使わないことが多いかもしれないよね。そこで、Recパートもダビングで利用してしまおうという狙いで作った機能がこれだよ。また、「Rec→Poly」というボタンもあるので、そうして作ったトラックをさらにPolyへ移すことも可能だよ。ダビング機能をどのように活用するかは、利用するユーザーのアイデアしだいだよ。
あと重要なことを書いておくよ。「ファイルメニュー」にある「READ Parts」ボタンを使えば、作業の途中段階でセーブしておいた内容にPolyパートやRecパートを戻すことができるので、オーバーダビングを続けてやってきたけどどうも失敗したなぁ。。。という場合に復旧することができるよ。詳しくはファイルメニューのヘルプを見てね。