zkunがいろんなことを横書きするブログのようですw(含み笑)
ぶっちゃけた話、ふだんはジャズ曲とかいっさい練習もしないので、テンションノートがどうとかそういう話は疎いyo(正直笑) Jamの動きも安定してきているし、MIDI出力やリスト表示でどんな音程が生成されているかを細かくたどることが出来るようになってきたので、ようやく「あれ、ここでこの構成音が鳴ってるのおかしくね?」というようなチェックがしやすくなってきたyo
そうしてみると、当初にポーンと作ったコード構成音の作成ルーチンもいろいろ問題点がわかってきたyo その多くはボクが4和音5和音のことをあまりよく知らないということに問題があるようだne(苦笑) そこでちょっと勉強してテンションコードと音を付加してるだけの和音の違いとかも認識したyo(初歩的な笑) それをふまえてコード生成ルーチンをもう少し厳密化するとともに、なおかつ4音アルペジオやオートベースもスムーズに演奏できるよう次のバージョンで改良をほどこす予定だyo(微笑)
あとふと思ったんだけど、Pianoパートは今、コードかアルペジオかOFFかになってるんだけど、これに簡単なスクリプトを足すだけでBassパートの「Original Play」をやらせることも出来ちゃうなと気付いたyo 基本的には伴奏トラックを作るためのアプリなんだけど、イントロとか部分的にメロディーを指定して鳴らしたいときもあるよne そんなときに現在は一時的にBassパートにギター音をアサインして鳴らしたりしてるけど、エクスプレッションは指定できるけどそもそものボリューム指定やパン指定は変えられないからどうしても色々不自然なところは出てくるんだよne だったら、小節ごとに一時的でいいから「Original Play」を選べるようにしたら便利だよne Bassパートについても、キメのフレーズ以外は「Auto Play」のオプションを細かく設定することでほとんどの曲調で破綻無く伴奏できるようになってるから、そうそうすべての小節で「Original Play」用のフレーズテキストが埋まっているわけでもないんだよne だったらテキストを取得する仕組みはベースと全く同じにして、演奏するルーチンだけPianoパートにしてやるだけで共存できるんじゃないかなとw(画期的笑) これだとまさにほんの最小限のスクリプトだけで、絶大な効果が得られるよne どのくらい利用するかはともかく、簡単に作れる機能だから付加してみようと思うyo
あと思ったのがエンディングのテンポダウンの指定の改良だyo 現行では「End」タグを入れた小節でのみ、エンディング用に途中でだんだんテンポを下げていく3通りの特殊なテンポコントロールを指定できるyo ただ、実際に曲データの中で使ってみると最終の1つ前の小節でテンポをスローダウンさせて、一番最後の小節は「ジャーーン」と伸ばすだけで単一テンポ指定で十分なことが多いと気付いたyo なのでそこらあたりの仕組みを変更したほうが実際に使いやすくなると思うyo まあ、これは細かな修正だne
とりあえず次のバージョンではそこらへんを改造してリリースしようと思ってるyo 長めのデモソングを打ち込むことで色々な改良点がわかってくるよne(含み笑)
そうしてみると、当初にポーンと作ったコード構成音の作成ルーチンもいろいろ問題点がわかってきたyo その多くはボクが4和音5和音のことをあまりよく知らないということに問題があるようだne(苦笑) そこでちょっと勉強してテンションコードと音を付加してるだけの和音の違いとかも認識したyo(初歩的な笑) それをふまえてコード生成ルーチンをもう少し厳密化するとともに、なおかつ4音アルペジオやオートベースもスムーズに演奏できるよう次のバージョンで改良をほどこす予定だyo(微笑)
あとふと思ったんだけど、Pianoパートは今、コードかアルペジオかOFFかになってるんだけど、これに簡単なスクリプトを足すだけでBassパートの「Original Play」をやらせることも出来ちゃうなと気付いたyo 基本的には伴奏トラックを作るためのアプリなんだけど、イントロとか部分的にメロディーを指定して鳴らしたいときもあるよne そんなときに現在は一時的にBassパートにギター音をアサインして鳴らしたりしてるけど、エクスプレッションは指定できるけどそもそものボリューム指定やパン指定は変えられないからどうしても色々不自然なところは出てくるんだよne だったら、小節ごとに一時的でいいから「Original Play」を選べるようにしたら便利だよne Bassパートについても、キメのフレーズ以外は「Auto Play」のオプションを細かく設定することでほとんどの曲調で破綻無く伴奏できるようになってるから、そうそうすべての小節で「Original Play」用のフレーズテキストが埋まっているわけでもないんだよne だったらテキストを取得する仕組みはベースと全く同じにして、演奏するルーチンだけPianoパートにしてやるだけで共存できるんじゃないかなとw(画期的笑) これだとまさにほんの最小限のスクリプトだけで、絶大な効果が得られるよne どのくらい利用するかはともかく、簡単に作れる機能だから付加してみようと思うyo
あと思ったのがエンディングのテンポダウンの指定の改良だyo 現行では「End」タグを入れた小節でのみ、エンディング用に途中でだんだんテンポを下げていく3通りの特殊なテンポコントロールを指定できるyo ただ、実際に曲データの中で使ってみると最終の1つ前の小節でテンポをスローダウンさせて、一番最後の小節は「ジャーーン」と伸ばすだけで単一テンポ指定で十分なことが多いと気付いたyo なのでそこらあたりの仕組みを変更したほうが実際に使いやすくなると思うyo まあ、これは細かな修正だne
とりあえず次のバージョンではそこらへんを改造してリリースしようと思ってるyo 長めのデモソングを打ち込むことで色々な改良点がわかってくるよne(含み笑)
PR
バグを取りながら、着々と機能強化を進めているyo 長いこと見落としてたバグにやっと気付いたものもあるyo(大苦笑) ともかく、設定を変えながら長い曲を再生したり打ち込んだりすると、これまで発見できなかったバグがボロボロと出てくるne(呆れ笑) まあ、おかげでだいぶ信頼性が上がってきたと思うyo
分解能については384でいくことにしたyo 384=3x128=3x2x64=3x2x8x8=3x2x4x4x4なので、まあ4を単位にして作ってるプログラムでは丁度いいかなと思うyo 480=3x5x8x4なので、5でも割れるから便利なんじゃね?と思うかもしれないけど、5連符とか絶対やるわけないので、5で割れてもほとんど意味がないんだよne(失笑) パンドラ対応の範囲だし、これなら丁度いいだろう。さっそくインターバルタイムの出し方を根本的に変更したyo 内部処理で余計な端数や大きな数値が減ったので、旧再生でも処理速度がアップしたような感じがするyo あとはシャッフルやヒューマンテンポもこれを利用してキリのいい数字にはめるようにすればいいかもね。それは次の宿題に残しておくyo(高度な笑)
SMF再生をつくるときにスクリプトを再度見直していたら、アルペジオの改良が簡単にできそうだとひらめいたyo それをv4.2に搭載したというわけだyo 原理としては1拍を4分割してアルペジオさせてるんだけど、ふつうは一定の強弱変化パターンで演奏してるよね。それを指定することができるようにしたyo あと、1音1音の長さを変えてやると、同じ音符を弾いても全然雰囲気の違う演奏になるよne それも16分音符1個分〜4個分の範囲で指定できるようにしたyo 「Demolipse」のようなアルペジオパターンだけの曲で設定を変えて演奏し直してみると、実にさまざまな変化がつくれることが分かるよ。おもしろいのが音の長さを「1」にして特定の16分音符の強さを「0」にすると、そこだけはねたようなステップシーケンサーのような演奏になるyo アルペジオパターンをマスクしてエディットするような感じで変化を作れるyo
もう1つ作ったのが「コードストロークタイミング」をずらせる機能だyo これは低音弦から高音弦へとジャラーンと弾く動作をシミュレートするものだyo ただし、これが作動するのは「SMF再生」のときのみ。MIDIトラックに微細なノートオンタイミングのずれを書き込めるのはそっちだけだからねw ピアノパートの最大5和音をルートからの遅れのタイミングを指定しておき、拍の先頭でストロークするときだけ作動させるよ。
これらの機能を「GUITARIST」という新メニューにまとめたyo そのあおりで「ドラムメニュー」は廃止になったyo(苦笑) まあ、当初は自動的に何十小節も作成して、それにドラムパターンを機械的に一括アサインすれば手っ取り早いかなと思って作ったドラムメニューだったけど、実際にループタグなどを使って曲を打ち込むようになると、そのような一括大量の指定というのはまず意味がないということがよくわかったyo 初期状態で全小節に「A」が入ってるだけで十分便利といえば便利なので、ドラムメニューは役目を終えたということだyo(惜別笑)
これだけじゃないよ。むしろ、こっちの方が重要トピックかもしれない、コード指定記号の拡充。こないだ「転回」を表す「^^」や「vvv」などを追加したけど、転回よりももっと単純明快に「これだけこうして!」という指定ができるような特殊記号を追加したyo くわしくはJam v4.2の画面下方に「コード表記の手引き」というヘルプボタンを作ったのでそこを見てくれyo ボク自身も入力するときにそこを見ながらできるように作ったというわけさw(我田引水笑)
かいつまんで説明すると、パワーコードやルートだけを上げ下げしたり、5度を抜いたりといった操作を細かく指定できるようになったということだyo 分数コード表記をするときは分母が1オクターブ下の音でルートがわりに入るんだけど、その音に対してもさらに上げ下げ指定が効くので実に広い範囲で応用できるようになったというわけだyo これらの機能を組み合わせるだけで「Wanted Dead or Alive」のアルペジオフレーズをJamに演奏させることもできたので、デモソングでぜひ聴いてみてyo もちろんアルペジオの強弱もかけてるyo こうしたオプション指定のすべてがテキストファイルとして保存し再現できちゃうのがzkunの技術のすごいところだyo いやあ、開発が止まらないね、zkunはいつ開発するの? 今でしょw(ドヤ顔笑)
分解能については384でいくことにしたyo 384=3x128=3x2x64=3x2x8x8=3x2x4x4x4なので、まあ4を単位にして作ってるプログラムでは丁度いいかなと思うyo 480=3x5x8x4なので、5でも割れるから便利なんじゃね?と思うかもしれないけど、5連符とか絶対やるわけないので、5で割れてもほとんど意味がないんだよne(失笑) パンドラ対応の範囲だし、これなら丁度いいだろう。さっそくインターバルタイムの出し方を根本的に変更したyo 内部処理で余計な端数や大きな数値が減ったので、旧再生でも処理速度がアップしたような感じがするyo あとはシャッフルやヒューマンテンポもこれを利用してキリのいい数字にはめるようにすればいいかもね。それは次の宿題に残しておくyo(高度な笑)
SMF再生をつくるときにスクリプトを再度見直していたら、アルペジオの改良が簡単にできそうだとひらめいたyo それをv4.2に搭載したというわけだyo 原理としては1拍を4分割してアルペジオさせてるんだけど、ふつうは一定の強弱変化パターンで演奏してるよね。それを指定することができるようにしたyo あと、1音1音の長さを変えてやると、同じ音符を弾いても全然雰囲気の違う演奏になるよne それも16分音符1個分〜4個分の範囲で指定できるようにしたyo 「Demolipse」のようなアルペジオパターンだけの曲で設定を変えて演奏し直してみると、実にさまざまな変化がつくれることが分かるよ。おもしろいのが音の長さを「1」にして特定の16分音符の強さを「0」にすると、そこだけはねたようなステップシーケンサーのような演奏になるyo アルペジオパターンをマスクしてエディットするような感じで変化を作れるyo
もう1つ作ったのが「コードストロークタイミング」をずらせる機能だyo これは低音弦から高音弦へとジャラーンと弾く動作をシミュレートするものだyo ただし、これが作動するのは「SMF再生」のときのみ。MIDIトラックに微細なノートオンタイミングのずれを書き込めるのはそっちだけだからねw ピアノパートの最大5和音をルートからの遅れのタイミングを指定しておき、拍の先頭でストロークするときだけ作動させるよ。
これらの機能を「GUITARIST」という新メニューにまとめたyo そのあおりで「ドラムメニュー」は廃止になったyo(苦笑) まあ、当初は自動的に何十小節も作成して、それにドラムパターンを機械的に一括アサインすれば手っ取り早いかなと思って作ったドラムメニューだったけど、実際にループタグなどを使って曲を打ち込むようになると、そのような一括大量の指定というのはまず意味がないということがよくわかったyo 初期状態で全小節に「A」が入ってるだけで十分便利といえば便利なので、ドラムメニューは役目を終えたということだyo(惜別笑)
これだけじゃないよ。むしろ、こっちの方が重要トピックかもしれない、コード指定記号の拡充。こないだ「転回」を表す「^^」や「vvv」などを追加したけど、転回よりももっと単純明快に「これだけこうして!」という指定ができるような特殊記号を追加したyo くわしくはJam v4.2の画面下方に「コード表記の手引き」というヘルプボタンを作ったのでそこを見てくれyo ボク自身も入力するときにそこを見ながらできるように作ったというわけさw(我田引水笑)
かいつまんで説明すると、パワーコードやルートだけを上げ下げしたり、5度を抜いたりといった操作を細かく指定できるようになったということだyo 分数コード表記をするときは分母が1オクターブ下の音でルートがわりに入るんだけど、その音に対してもさらに上げ下げ指定が効くので実に広い範囲で応用できるようになったというわけだyo これらの機能を組み合わせるだけで「Wanted Dead or Alive」のアルペジオフレーズをJamに演奏させることもできたので、デモソングでぜひ聴いてみてyo もちろんアルペジオの強弱もかけてるyo こうしたオプション指定のすべてがテキストファイルとして保存し再現できちゃうのがzkunの技術のすごいところだyo いやあ、開発が止まらないね、zkunはいつ開発するの? 今でしょw(ドヤ顔笑)
こうなってるようだyo
PANDORA PX5D SongUpdater に使用できる曲データは、以下の条件を満たして
PANDORA PX5D SongUpdater に使用できる曲データは、以下の条件を満たして
いる必要があります。
01. SMF(Standard MIDI File) Format 0 形式であること
02. ファイルサイズが 16KByte(16,380Byte)以下であること
03. TPQN(4分音符の分解能) が 48〜480 であること
04. ベースは MIDI Ch.9、ドラムは MIDI Ch.10 を指定
05. ベースは同時発音数1、ドラムは同時発音数6以内であること
06. ベースの発音域は A-1(21)〜E3(64) です。Transpose -5〜+5 に対応させる場合、上記よりも範囲を狭く作る必要があります。
結構細かいne まず、1番は問題無し。2番はそこまで長くしなければいいだけ。4番は最初からそう作っている。5番もまさにその通りの仕様。問題は3番と6番か。
Zkun JamのBASS EDITORで指定できる音域はC0-C5までなのではるかにオーバーしてるne 基本的にC1-C3の2オクターブで作りなさいという感じだne まあ、これはそれ用に作るときはそう意識するという程度でいいよne トランスポーズボタンもつけたから、いざとなればとりこんでオクターブ上下させて転送し直せばすむ話だne
一番ややこしいのが3番だne 諸般の都合で、現在デモソングなんかでは500台、600台とかのTPQNになってるものが多いyo これはシャッフルとかヒューマンテンポとか、さまざまな敢えて正確でないタイミングを作れることをウリにしてきたからで、大きめの数字を割ってその都度インターバルタイムを細かく計算してテンポをつくってるyo まあ、それにしちゃあ旧再生は随分ウェイトがかかっていたけどw(苦笑) 分解能があまり大きい数字だと計算負荷が大きくなるのは目に見えていたからギリギリのところで大きめの数字にしようと思ってたけど、SMF再生という高速ワザが使えるようになったのだからいっそのこと可能な限り大きく割りやすい数字にしてやろうかと思っていたところで、逆に480までで抑えるべしという縛りか。進むべき方向としてはどっちがいいのだろうかなw(迷い笑)
01. SMF(Standard MIDI File) Format 0 形式であること
02. ファイルサイズが 16KByte(16,380Byte)以下であること
03. TPQN(4分音符の分解能) が 48〜480 であること
04. ベースは MIDI Ch.9、ドラムは MIDI Ch.10 を指定
05. ベースは同時発音数1、ドラムは同時発音数6以内であること
06. ベースの発音域は A-1(21)〜E3(64) です。Transpose -5〜+5 に対応させる場合、上記よりも範囲を狭く作る必要があります。
結構細かいne まず、1番は問題無し。2番はそこまで長くしなければいいだけ。4番は最初からそう作っている。5番もまさにその通りの仕様。問題は3番と6番か。
Zkun JamのBASS EDITORで指定できる音域はC0-C5までなのではるかにオーバーしてるne 基本的にC1-C3の2オクターブで作りなさいという感じだne まあ、これはそれ用に作るときはそう意識するという程度でいいよne トランスポーズボタンもつけたから、いざとなればとりこんでオクターブ上下させて転送し直せばすむ話だne
一番ややこしいのが3番だne 諸般の都合で、現在デモソングなんかでは500台、600台とかのTPQNになってるものが多いyo これはシャッフルとかヒューマンテンポとか、さまざまな敢えて正確でないタイミングを作れることをウリにしてきたからで、大きめの数字を割ってその都度インターバルタイムを細かく計算してテンポをつくってるyo まあ、それにしちゃあ旧再生は随分ウェイトがかかっていたけどw(苦笑) 分解能があまり大きい数字だと計算負荷が大きくなるのは目に見えていたからギリギリのところで大きめの数字にしようと思ってたけど、SMF再生という高速ワザが使えるようになったのだからいっそのこと可能な限り大きく割りやすい数字にしてやろうかと思っていたところで、逆に480までで抑えるべしという縛りか。進むべき方向としてはどっちがいいのだろうかなw(迷い笑)
古いソングをSMF再生するときに、よく音の消し残りが発生するよなあと思ったら、いろいろと移植漏れしてるプログラム行があったyo そのへんをもう一度チェックしてバグ取りをしといたyo あと再生始めがタイミングが狂うことがあったので、もうちょっと余裕マージンをとって再生スタートさせるようにしたyo これは旧再生でも同じことが言えて、本当なら先頭の1小節はデータ更新の余裕を見込んで空き小節にするのがいいよねw
まあ、バグは順次とっていくとして、新しい機能も追加したyo SMFフォーマット0でも書き込めるようにしたyo メニューを新設する場所がなくなってきたので、第1小節左側のスペースを使ったyo あとSMFに書き出すときにどのトラックを書くかを選べるようにしたyo これはパンドラPX5D用に考えた工夫だyo この2つのオプションを指定することで、フォーマット0でドラムとベースだけのファイルを作れるyo ただ、ほかにもなんか制約条件があったような気がするので、また調べてみるyo(曖昧な笑)
それからMIDIノートのリストを一覧表示で確認できる機能もつけたyo 「FILE MENU」で「Display file」をクリックすれば、画面の下方にズラズラッとノートリストが展開するyo これはJazz-Pluginのサイトにあったサンプルを拝借して埋め込んだものだyo これでノートを詳しく見ていくことができるので、どんな不具合が発生しているかを突き止めるのも容易になったyo
さらに、ボクサーのイントロをキーを間違えて打ち込んだときに、これをBASS EDITORにいったん取り込んでトランスポーズボタンで修正できたらラクなのになと思ったので、久々にBASS EDITORにも手を入れたyo 「ノートオフ」ボタンは上のPCキーボードのと兼用できるので廃止にして、その跡地に「up」「down」のボタンをつくったyo こいつを押すと、すでにエディター上にNOTEとして展開している音は上限下限の範囲で一括でトランスポーズされるyo まだ待機中や休符を示しているスライダーは動かないyo なかなか面白い動きをするので一度いじってみてよw(秀逸笑)
ほかにもまだまだ改良点は思いつくんだけど、まあ、そうあせらずに仕上げていくyo あせらなくても仕事が異様に速いのでどんどん解決していくからne(超人笑)
まあ、バグは順次とっていくとして、新しい機能も追加したyo SMFフォーマット0でも書き込めるようにしたyo メニューを新設する場所がなくなってきたので、第1小節左側のスペースを使ったyo あとSMFに書き出すときにどのトラックを書くかを選べるようにしたyo これはパンドラPX5D用に考えた工夫だyo この2つのオプションを指定することで、フォーマット0でドラムとベースだけのファイルを作れるyo ただ、ほかにもなんか制約条件があったような気がするので、また調べてみるyo(曖昧な笑)
それからMIDIノートのリストを一覧表示で確認できる機能もつけたyo 「FILE MENU」で「Display file」をクリックすれば、画面の下方にズラズラッとノートリストが展開するyo これはJazz-Pluginのサイトにあったサンプルを拝借して埋め込んだものだyo これでノートを詳しく見ていくことができるので、どんな不具合が発生しているかを突き止めるのも容易になったyo
さらに、ボクサーのイントロをキーを間違えて打ち込んだときに、これをBASS EDITORにいったん取り込んでトランスポーズボタンで修正できたらラクなのになと思ったので、久々にBASS EDITORにも手を入れたyo 「ノートオフ」ボタンは上のPCキーボードのと兼用できるので廃止にして、その跡地に「up」「down」のボタンをつくったyo こいつを押すと、すでにエディター上にNOTEとして展開している音は上限下限の範囲で一括でトランスポーズされるyo まだ待機中や休符を示しているスライダーは動かないyo なかなか面白い動きをするので一度いじってみてよw(秀逸笑)
ほかにもまだまだ改良点は思いつくんだけど、まあ、そうあせらずに仕上げていくyo あせらなくても仕事が異様に速いのでどんどん解決していくからne(超人笑)
早速出来上がったyo これはなかなか凄いことになってるyo まずはJam v4.0を開いてみてyo まずは目につく左側の赤いバックに並ぶ新ボタンw 一番左が従来の「PLAY」ボタンだよ。その隣が「SMF-PLAY」ボタン。なんと、Jam上でSMF化したファイルの再生ができちゃうyo そして、それ用の「Pause/Resume」「Stop」「Loop」のボタンが並んでいるyo
まずは、「DEMO SONGS」からスローな「Demo on G」を選んでみてくれw これまで通りクリックしただけでシートが展開するのは同じだyo まずはふつうの「PLAY」を押してくれ。これまで通りの再生ができるよ。確認したら「STOP」してね。そうそう、「Display Mode」セレクタは場所がなくなったので第1小節の左側に移動したyo(追いやられ笑) 次に「SMF-PLAY」を押してみて。同じように先頭から演奏が始まるよ。ただし、これは瞬時にSMFファイルを作成して、それをJazz-Pluginが用意したplayerというオブジェクトを利用して再生しているというわけだよ。従来の再生方式とは全く違う動作エンジンで動いているというわけだよ。なので、残念ながら再生位置をマーク表示させることは不可能だyo(苦笑)
再生しながらでもいいから、「FILE MENU」を開いてくれw 同じ赤色バックで「SMF file DOWNLOAD」という表示があるだろ。これがまさにSMFファイルをダウンロードできるリンクということになるyo(ドヤ顔笑) これをクリックしてなんらかの再生プレイヤーが開く人はそれで開いてもいいし、開かない人は右クリックして「ファイルをダウンロード」して利用すればいいyo ファイル自体は名無しの書類としてダウンロードされるので、そいつに名前をつけて「.mid」拡張子をつけてやれば、MIDIファイルとして一般のソフトで開くことができるyo
機能としてはこれだけなんだけど、色々謎も多いyo(苦笑) まず、「Demo on G」のようなスローテンポの曲ではほぼ同じ感じで再生されるけど、たとえば「Demolipse」のような速いフレーズの曲だと明らかに「PLAY」のほうが遅く、「SMF-PLAY」のほうが速いw まあ、従来方式の再生はブラウザ負荷によってモタるという欠点があるけど、モタらないときも全体的に指定されたbpmを守れていなかったということになるようだne(失笑) これまでいちいちストップウォッチで計ってなかったけど、「Demolipse」をbpm=120にして再生すると16秒ちょっきりで1周しないと駄目な計算になるよ。「SMF-PLAY」はほぼ定刻、「旧PLAY」は数秒オーバーという感じだne まあ、今後はテンポの指定は「SMF-PLAY」で再生したときの速度を基準にするといいyo 外部エクスポートしたときもそっちの速度が近いわけだからね。
だけど、内部で色々計算の都合上、割り算したときに小数点以下の切り捨てとかを行ってるので、テンポ85で作成した曲データでも、外部出ししてみると曲の最後まできっちりと4拍子のグリッドには収まってないなあという状況になってるyo まあ、クオンタイズとかの機能もあるだろうから補正は可能だろうけど、まあそのへんも今後うまい対処方法を考えてみようと思うyo シャッフルとかヒューマンテンポとか、無茶な機能も盛り込んでいるので、あまりグリッドにはめ込むことを重視したくはないけど、単純なラフデータがほしい人でも使いやすいように出力できる能力というのも必要だと思うので、そのへんは研究するyo
あと現在はタイプ1のファイルを出力してるけど、タイプ0のファイルも出せるようにする予定だよ。これは作業的には簡単。パンドラPX5D用のドラム&ベースデータはタイプ0で作らないとダメなのでね。まあ、ともかく出力できるところまでたどりついたyo やればできるんだということを証明できたyo(微笑)
まずは、「DEMO SONGS」からスローな「Demo on G」を選んでみてくれw これまで通りクリックしただけでシートが展開するのは同じだyo まずはふつうの「PLAY」を押してくれ。これまで通りの再生ができるよ。確認したら「STOP」してね。そうそう、「Display Mode」セレクタは場所がなくなったので第1小節の左側に移動したyo(追いやられ笑) 次に「SMF-PLAY」を押してみて。同じように先頭から演奏が始まるよ。ただし、これは瞬時にSMFファイルを作成して、それをJazz-Pluginが用意したplayerというオブジェクトを利用して再生しているというわけだよ。従来の再生方式とは全く違う動作エンジンで動いているというわけだよ。なので、残念ながら再生位置をマーク表示させることは不可能だyo(苦笑)
再生しながらでもいいから、「FILE MENU」を開いてくれw 同じ赤色バックで「SMF file DOWNLOAD」という表示があるだろ。これがまさにSMFファイルをダウンロードできるリンクということになるyo(ドヤ顔笑) これをクリックしてなんらかの再生プレイヤーが開く人はそれで開いてもいいし、開かない人は右クリックして「ファイルをダウンロード」して利用すればいいyo ファイル自体は名無しの書類としてダウンロードされるので、そいつに名前をつけて「.mid」拡張子をつけてやれば、MIDIファイルとして一般のソフトで開くことができるyo
機能としてはこれだけなんだけど、色々謎も多いyo(苦笑) まず、「Demo on G」のようなスローテンポの曲ではほぼ同じ感じで再生されるけど、たとえば「Demolipse」のような速いフレーズの曲だと明らかに「PLAY」のほうが遅く、「SMF-PLAY」のほうが速いw まあ、従来方式の再生はブラウザ負荷によってモタるという欠点があるけど、モタらないときも全体的に指定されたbpmを守れていなかったということになるようだne(失笑) これまでいちいちストップウォッチで計ってなかったけど、「Demolipse」をbpm=120にして再生すると16秒ちょっきりで1周しないと駄目な計算になるよ。「SMF-PLAY」はほぼ定刻、「旧PLAY」は数秒オーバーという感じだne まあ、今後はテンポの指定は「SMF-PLAY」で再生したときの速度を基準にするといいyo 外部エクスポートしたときもそっちの速度が近いわけだからね。
だけど、内部で色々計算の都合上、割り算したときに小数点以下の切り捨てとかを行ってるので、テンポ85で作成した曲データでも、外部出ししてみると曲の最後まできっちりと4拍子のグリッドには収まってないなあという状況になってるyo まあ、クオンタイズとかの機能もあるだろうから補正は可能だろうけど、まあそのへんも今後うまい対処方法を考えてみようと思うyo シャッフルとかヒューマンテンポとか、無茶な機能も盛り込んでいるので、あまりグリッドにはめ込むことを重視したくはないけど、単純なラフデータがほしい人でも使いやすいように出力できる能力というのも必要だと思うので、そのへんは研究するyo
あと現在はタイプ1のファイルを出力してるけど、タイプ0のファイルも出せるようにする予定だよ。これは作業的には簡単。パンドラPX5D用のドラム&ベースデータはタイプ0で作らないとダメなのでね。まあ、ともかく出力できるところまでたどりついたyo やればできるんだということを証明できたyo(微笑)
まだまだあるねw(苦笑) ミキサー表でオクターブを変えて保存したデータをREADしたときに、音程が狂ってロードされてたyo ほとんど標準オクターブで保存してたのでこのバグに気付かなかったyo(まだまだだね笑) まあ、これは3分で直したyo(すぐやる課笑)
それだけではつまらないので、買い物に行ったスーパーで流れてた音楽がピンクフロイドに似てたので、そういえば「吹けよ風、呼べよ嵐」のループは今なら一瞬でできるなwと思ったので早速つくってみたyo Demo Song 5番がしょぼいテストパターンだったのでそこに差し替えたyo
あと、Hey Demoの繰り返し部分の中にもベースのキメフレーズを入れたほうがより物真似っぽくなるなと思ってたので、ついでにそこだけOriginal Playにして挿入しといたyo 簡単に変更できる構造になっているので、あとからどうとでも手を入れられるのが強みだne(微笑)
それだけではつまらないので、買い物に行ったスーパーで流れてた音楽がピンクフロイドに似てたので、そういえば「吹けよ風、呼べよ嵐」のループは今なら一瞬でできるなwと思ったので早速つくってみたyo Demo Song 5番がしょぼいテストパターンだったのでそこに差し替えたyo
あと、Hey Demoの繰り返し部分の中にもベースのキメフレーズを入れたほうがより物真似っぽくなるなと思ってたので、ついでにそこだけOriginal Playにして挿入しといたyo 簡単に変更できる構造になっているので、あとからどうとでも手を入れられるのが強みだne(微笑)
すべてクリアーになったyo これまでいろいろややこしい方法で変換しながらオブジェクトを合体していかないといけないだろうなと思っていたけど、もう一度Jazz-PluginのExamplesをながめ直していたら、以前は自分の用途とは違うなと思ってスルーしてたページに大ヒントが書いてあったyo すでにそのためのメソッドもいくつか作ってあったんだne 他のメソッドは使ってたんだけど、そのへんのグループは無視してたので気付かなかったyo(大苦笑)
さっそく簡単なサンプルで書き込み実験をしたら、問題なく書き込みと変換ができて、出力したファイルをMIDI再生するのもうまくいったyo これで理論上の障害はなくなったので、あとはJamの全パラメータが入ってる巨大配列変数からうまいこと値を抽出していく仕組みをつくるだけで、SMF書き出しは完成できそうだyo ついにゴールが見えてきたne(感慨深い笑)
内部的には、zjという配列に必要最低限の情報を箇条書きにしてあって、それを演奏用に最適化してだらだらと展開したものがpjという配列になってるよ。ボクのやり方では、pjに書き込むときに「ノートオン命令」と「ノートオフ命令」は別々に処理しているんだけど、発見したメソッドでは「デュレーション」を指定する方式で「オン」と「オフ」を両方書き込むようになってるんだよね。それに対応させるためにpjを書き込むときにそもそも存在している「音長」情報を1要素追加するようにして、SMF変換時にそれを利用して書き込むようにすればだいたいいけそうだyo SMFになると小節とか拍とかの概念が事実上飛んでしまうので、Jamでは小節単位で細かくループ指定とかができたけど、曲の先頭から最終小節までをループする部分も含めて完全になぞった形で書き出さないとそのまま再生できなくなるよne なので、結構長さのあるデータとして出力することになりそうだね。ま、バイナリーに変換されるからしれてるかw たいした作業量ではないので、どんなに遅くとも今月中には仕上がりそうだyo 早ければ今週中w いやあ、来ましたね、ついにこの日がw(呆れ笑)
さっそく簡単なサンプルで書き込み実験をしたら、問題なく書き込みと変換ができて、出力したファイルをMIDI再生するのもうまくいったyo これで理論上の障害はなくなったので、あとはJamの全パラメータが入ってる巨大配列変数からうまいこと値を抽出していく仕組みをつくるだけで、SMF書き出しは完成できそうだyo ついにゴールが見えてきたne(感慨深い笑)
内部的には、zjという配列に必要最低限の情報を箇条書きにしてあって、それを演奏用に最適化してだらだらと展開したものがpjという配列になってるよ。ボクのやり方では、pjに書き込むときに「ノートオン命令」と「ノートオフ命令」は別々に処理しているんだけど、発見したメソッドでは「デュレーション」を指定する方式で「オン」と「オフ」を両方書き込むようになってるんだよね。それに対応させるためにpjを書き込むときにそもそも存在している「音長」情報を1要素追加するようにして、SMF変換時にそれを利用して書き込むようにすればだいたいいけそうだyo SMFになると小節とか拍とかの概念が事実上飛んでしまうので、Jamでは小節単位で細かくループ指定とかができたけど、曲の先頭から最終小節までをループする部分も含めて完全になぞった形で書き出さないとそのまま再生できなくなるよne なので、結構長さのあるデータとして出力することになりそうだね。ま、バイナリーに変換されるからしれてるかw たいした作業量ではないので、どんなに遅くとも今月中には仕上がりそうだyo 早ければ今週中w いやあ、来ましたね、ついにこの日がw(呆れ笑)
自分でもいつどのバージョンで何をしたかよく覚えてないので、ここらで整理しておくyo あとから参考にするときに便利だからね。こういうのは自分へのロングパスとして役に立つものだからne
-------------------画面依存方式の初期Beat-----------------------------------------
Beat v1.0 1小節4ドラムインストのループ
Beat v1.1 8ビットごとに漢字変換表示
Beat v1.2 2小節を描画作成、クロックマーク、ドラムセットチェンジ
Beat v1.3 4小節化、イエローセレクタ、ドラムインストチェンジ
Beat v1.4 最大16インスト化、ベロシティ、cookie保存
Beat v1.5 最大32小節、4小節ずつ折り返し描画
Beat v1.6 小節コピー機能、テキストファイル読み込み機能
Beat v1.7 シャッフル、ヒューマンテンポ等、再生開始位置指定、鍵盤
-------------------配列変数で合理化した後期Beat----------------------------------
Beat v1.8 配列変数構造化、小節個別インスト指定、最大8インストに制限
Beat v1.9 画面表示折り畳み機能
Beat v2.0 ベースパート搭載
Beat v2.1 保存テキスト圧縮解凍機能
Beat v2.2 ベースエディター搭載、ファイル直接読み込みボタン
Beat v2.3 ベースエディターでプレビュー再生、下段にボタンパレット表示可
Beat v2.4 ピアノパート搭載、ベースパートからキーを取得する方式
Beat v2.5 ピアノパートの和音とタイミングを拡充
Beat v2.6 コード進行入力欄、ピアノはコードを取得して演奏可能に
Beat v2.7 ピアノパートにアルペジオ機能搭載
Beat v2.8 オートベース機能搭載
Beat v2.9 分数コード対応、オートベースHits 'A'指定可能に
Beat v3.0 ループタグ、A-Cの3ループ指定可能に
Beat v3.1 上段メニューを改良、Beatとしての完成版
-------------------各パートの扱いに大ナタを入れた初期Jam----------------------------
Jam v3.2 ドラムパターン選択指定化、1- 4拍子、テンポ可変、ドラムcookieほか多数w
Jam v3.3 コードメニューで4小節進行を書き込み可能に
Jam v3.4 自動フィルイン機能(プリセットのみ)
Jam v3.5 ループタグ拡充、A-Fの6ループ指定可能に
Jam v3.6 フィルインエディター搭載
Jam v3.7 フィルインパターンも曲データに合体、フィルインcookie
Jam v3.8 ループタグ重複指定可能化、再生開始位置指定
Jam v3.9 和音転回指定、任意位置への小節挿入機能
-------------------SMF再生と制御記号で強力化した後期Jam---------------------------
Jam v4.0 MIDIファイル書き出し機能、高速再生エンジン追加
Jam v4.1 フォーマット0書き出し対応、BASSトランスポーズ機能、ノートリスト表示
Jam v4.2 GUITARISTメニュー追加、コード記号拡充、分解能384に固定化
Jam v4.3 KeyBoardパートのOriginal演奏、コード規則を明確化、エンディング改良
Jam v4.4 MIDIキーボード演奏の多重録音機能、Base64テキストの再生機能
Jam v4.5 録音パート読み書き、SaveTextB形式、ピッチベンド、多ブラウザ対応
Jam v4.6 カスタムアルペジオ機能、カスタム1+2、アルペジオ指定記号対応
Jam v4.7 オートベースをアップグレード、オートベース制御記号
Jam v4.8 ハーモナイザー搭載、かけ録可能、アルペジオ記号も単独表記可能に
Jam v4.9 コードストローク制御記号搭載
-------------------NSX-39ポケット・ミク対応シリーズ登場----------------------------
NSX JAM v1.0 これはZkun Jam v4.8をベースにカスタマイズしてるよ
NSX LIVE v1.0 リアルタイム演奏用に自動で歌詞を送り込めるアプリだよ
NSX JAM v2.0 拍単位での柔軟なモード変更、ドラム音色エディット、
バリエーションエフェクト8種類可能、新フィルインエディタ、
Monoパート、Polyパート、Bassパートにハイブリッドモード、
ドラムエディターの操作性改良、フィルイン番号指定可能、
コントロールチェンジエディター、歌詞自動送り機能、
ジャンプタグ機能、豊富な新ダビング機能、ハーモナイザ改良、
モジュレーション、ストローク記号に「M」追加、
READ Parts機能、ヘルプ機能改良、ハーモナイズ記号搭載、
インテリジェントハーモナイズ機能、オートベース記号廃止
NSX JAM v2.1 ボーカルパートを3番まで同一小節に登録可能に
再生開始タイム指定機能
NSX JAM v2.2 バグ修正(v1.0からアプデ時のバグを4つ解消w)
-------------------Tabサイズシリーズ登場(ProはPC向け)----------------------------
Zkun Tab v1.0 8インチタッチパネル用のバージョン、ギターパート、Solo-2パート、
タブレット動作向けにエフェクトとRec, Polyパートは不使用、
Beat v3.1以降のデータをコンバート、4パートに小節単位のディレイ、
小節ごとのオクターブシフト指定、数無制限の新ドラムパターン管理、
フィルイン100パターンに拡張 再生開始位置小節指定
Zkun Tab v1.1 ヘルプ表示システムの改良、フレーズエディターに微調整ボタン追加、
コードメニューをギターパートにも対応、コード全複写機能、バグ修正
Zkun Tab v1.2 Rec, Polyパート再生・読み書き対応(やはり重い。。。)
Zkun Tab Pro v1.0 Rec, Polyパート対応、XGエフェクト対応、Viewメニュー搭載、
NSX JAM v2.2のメニューをすべて搭載、オートベース記号復活
Zkun Tab Pro v1.1 バグ修正多数、デモとヘルプで使い方講座を展開
カスタムアルペジオをさらにカスタム化、スキン変更機能
ハーモナイズ記号にYとyを追加
Zkun Tab Pro v1.2 表裏コード機能、ストローク記号にQとNを追加、講座続きを展開
Zkun Tab Pro v1.3 独立3連符機能、スキンにグリーンとオレンジを追加、
ハイブリッドモードバグ修正、ストローク記号Mをベロシティ70に補正、
ミキサーにソロボタンを追加
Zkun Tab v1.3 完成形のPro v1.3から改めて生成。タブレット内蔵音源での再生に特化
して、Rec, Polyパートやエフェクト機能等についてはファイル読み書きは
互換性を保つが、再生・編集は不可とし動作の軽さを確保(未リリース)
---------------Studioシリーズ。リアルタイム自動セッションを目指します--------
Studio v0.1 キーボードスプリットした上下2各パートの音色設定、ドラムマシン
Studio v0.2 音色ファイルの読み書きが可能に。プリセット選択も搭載
Studio v0.3 リアルタイム演奏内容表示ウインドウを付加
Studio v0.4 Lower鍵盤による指定でセミオートベース
Studio v0.5 フルオートベース1-4を搭載
Studio v0.51 オートベースのスキップ機能ON/OFF
Studio v0.52 ベースモードにFixedを追加
Studio v0.53 ドラムパターンのテキスト読み書き対応
Studio v0.55 ドラムパターンとソングループがウェブストレージ保存対応
Studio v0.6 フィルイン機能搭載
Studio v0.7 ギター伴奏「ダブルシークエンス」搭載
Studio v0.72 Firefoxブラウザに正式対応
Studio v0.8 ソング、パッチのユーザーファイル完全読み書き機能搭載
Studio v0.9(予定) 勝手に歌うボーカル搭載(ポケミク専用機能)
Studio v1.0(予定) ギターシンセGR対応バージョン(これが完成形になる予定)
-------------------画面依存方式の初期Beat-----------------------------------------
Beat v1.0 1小節4ドラムインストのループ
Beat v1.1 8ビットごとに漢字変換表示
Beat v1.2 2小節を描画作成、クロックマーク、ドラムセットチェンジ
Beat v1.3 4小節化、イエローセレクタ、ドラムインストチェンジ
Beat v1.4 最大16インスト化、ベロシティ、cookie保存
Beat v1.5 最大32小節、4小節ずつ折り返し描画
Beat v1.6 小節コピー機能、テキストファイル読み込み機能
Beat v1.7 シャッフル、ヒューマンテンポ等、再生開始位置指定、鍵盤
-------------------配列変数で合理化した後期Beat----------------------------------
Beat v1.8 配列変数構造化、小節個別インスト指定、最大8インストに制限
Beat v1.9 画面表示折り畳み機能
Beat v2.0 ベースパート搭載
Beat v2.1 保存テキスト圧縮解凍機能
Beat v2.2 ベースエディター搭載、ファイル直接読み込みボタン
Beat v2.3 ベースエディターでプレビュー再生、下段にボタンパレット表示可
Beat v2.4 ピアノパート搭載、ベースパートからキーを取得する方式
Beat v2.5 ピアノパートの和音とタイミングを拡充
Beat v2.6 コード進行入力欄、ピアノはコードを取得して演奏可能に
Beat v2.7 ピアノパートにアルペジオ機能搭載
Beat v2.8 オートベース機能搭載
Beat v2.9 分数コード対応、オートベースHits 'A'指定可能に
Beat v3.0 ループタグ、A-Cの3ループ指定可能に
Beat v3.1 上段メニューを改良、Beatとしての完成版
-------------------各パートの扱いに大ナタを入れた初期Jam----------------------------
Jam v3.2 ドラムパターン選択指定化、1- 4拍子、テンポ可変、ドラムcookieほか多数w
Jam v3.3 コードメニューで4小節進行を書き込み可能に
Jam v3.4 自動フィルイン機能(プリセットのみ)
Jam v3.5 ループタグ拡充、A-Fの6ループ指定可能に
Jam v3.6 フィルインエディター搭載
Jam v3.7 フィルインパターンも曲データに合体、フィルインcookie
Jam v3.8 ループタグ重複指定可能化、再生開始位置指定
Jam v3.9 和音転回指定、任意位置への小節挿入機能
-------------------SMF再生と制御記号で強力化した後期Jam---------------------------
Jam v4.0 MIDIファイル書き出し機能、高速再生エンジン追加
Jam v4.1 フォーマット0書き出し対応、BASSトランスポーズ機能、ノートリスト表示
Jam v4.2 GUITARISTメニュー追加、コード記号拡充、分解能384に固定化
Jam v4.3 KeyBoardパートのOriginal演奏、コード規則を明確化、エンディング改良
Jam v4.4 MIDIキーボード演奏の多重録音機能、Base64テキストの再生機能
Jam v4.5 録音パート読み書き、SaveTextB形式、ピッチベンド、多ブラウザ対応
Jam v4.6 カスタムアルペジオ機能、カスタム1+2、アルペジオ指定記号対応
Jam v4.7 オートベースをアップグレード、オートベース制御記号
Jam v4.8 ハーモナイザー搭載、かけ録可能、アルペジオ記号も単独表記可能に
Jam v4.9 コードストローク制御記号搭載
-------------------NSX-39ポケット・ミク対応シリーズ登場----------------------------
NSX JAM v1.0 これはZkun Jam v4.8をベースにカスタマイズしてるよ
NSX LIVE v1.0 リアルタイム演奏用に自動で歌詞を送り込めるアプリだよ
NSX JAM v2.0 拍単位での柔軟なモード変更、ドラム音色エディット、
バリエーションエフェクト8種類可能、新フィルインエディタ、
Monoパート、Polyパート、Bassパートにハイブリッドモード、
ドラムエディターの操作性改良、フィルイン番号指定可能、
コントロールチェンジエディター、歌詞自動送り機能、
ジャンプタグ機能、豊富な新ダビング機能、ハーモナイザ改良、
モジュレーション、ストローク記号に「M」追加、
READ Parts機能、ヘルプ機能改良、ハーモナイズ記号搭載、
インテリジェントハーモナイズ機能、オートベース記号廃止
NSX JAM v2.1 ボーカルパートを3番まで同一小節に登録可能に
再生開始タイム指定機能
NSX JAM v2.2 バグ修正(v1.0からアプデ時のバグを4つ解消w)
-------------------Tabサイズシリーズ登場(ProはPC向け)----------------------------
Zkun Tab v1.0 8インチタッチパネル用のバージョン、ギターパート、Solo-2パート、
タブレット動作向けにエフェクトとRec, Polyパートは不使用、
Beat v3.1以降のデータをコンバート、4パートに小節単位のディレイ、
小節ごとのオクターブシフト指定、数無制限の新ドラムパターン管理、
フィルイン100パターンに拡張 再生開始位置小節指定
Zkun Tab v1.1 ヘルプ表示システムの改良、フレーズエディターに微調整ボタン追加、
コードメニューをギターパートにも対応、コード全複写機能、バグ修正
Zkun Tab v1.2 Rec, Polyパート再生・読み書き対応(やはり重い。。。)
Zkun Tab Pro v1.0 Rec, Polyパート対応、XGエフェクト対応、Viewメニュー搭載、
NSX JAM v2.2のメニューをすべて搭載、オートベース記号復活
Zkun Tab Pro v1.1 バグ修正多数、デモとヘルプで使い方講座を展開
カスタムアルペジオをさらにカスタム化、スキン変更機能
ハーモナイズ記号にYとyを追加
Zkun Tab Pro v1.2 表裏コード機能、ストローク記号にQとNを追加、講座続きを展開
Zkun Tab Pro v1.3 独立3連符機能、スキンにグリーンとオレンジを追加、
ハイブリッドモードバグ修正、ストローク記号Mをベロシティ70に補正、
ミキサーにソロボタンを追加
Zkun Tab v1.3 完成形のPro v1.3から改めて生成。タブレット内蔵音源での再生に特化
して、Rec, Polyパートやエフェクト機能等についてはファイル読み書きは
互換性を保つが、再生・編集は不可とし動作の軽さを確保(未リリース)
---------------Studioシリーズ。リアルタイム自動セッションを目指します--------
Studio v0.1 キーボードスプリットした上下2各パートの音色設定、ドラムマシン
Studio v0.2 音色ファイルの読み書きが可能に。プリセット選択も搭載
Studio v0.3 リアルタイム演奏内容表示ウインドウを付加
Studio v0.4 Lower鍵盤による指定でセミオートベース
Studio v0.5 フルオートベース1-4を搭載
Studio v0.51 オートベースのスキップ機能ON/OFF
Studio v0.52 ベースモードにFixedを追加
Studio v0.53 ドラムパターンのテキスト読み書き対応
Studio v0.55 ドラムパターンとソングループがウェブストレージ保存対応
Studio v0.6 フィルイン機能搭載
Studio v0.7 ギター伴奏「ダブルシークエンス」搭載
Studio v0.72 Firefoxブラウザに正式対応
Studio v0.8 ソング、パッチのユーザーファイル完全読み書き機能搭載
Studio v0.9(予定) 勝手に歌うボーカル搭載(ポケミク専用機能)
Studio v1.0(予定) ギターシンセGR対応バージョン(これが完成形になる予定)
バグとりしてるうちにドンドン改良点が思いついてきて、結構いろいろ盛り込んでみたyo まずは、再生スタート位置の指定をもっとスッキリまとめる方法を思いついたので変更したよ。今度は1つのセレクタで「先頭から」「マーク位置から」「指定位置から」を選べるようにしたので、マークが後ろのほうにあるからといって、ゴチャゴチャ変な操作をする必要はなくなったyo このほうが開発者的にもラクだしねw(微笑)
それから、和音の転回機能もどきをつけたyo 和音を収納している配列の各要素に単純に1オクターブ分の+12か-12を差し引きするだけなので実は簡単に作れたんだよne 指定方法はコードに「^」「^^」「^^^」「^^^^」をつければそれぞれ和音構成音の下から順に1個ずつオクターブ上へうつる音数が増えていくよ。逆に「v」「vv」「vvv」「vvvv」をつければそれぞれ4つ目の音から順に下へ下がる音数が増えていくよ。まあ、アルペジオパターンもやる都合から、完全に絵にかいたような転回形にはなっていないんだけど、まあ、「^」「v」を増やしていけばそれぞれ音域を多く変えられるという感じになってるよ。これを使って「Let Demo Be」のピアノ和音をちょこっと変更しているyo(微笑)
そして最大の新機能が、任意の位置に1小節挿入できるようにした機能だよ。これは実に重要な機能だよ。たとえば、長い曲データを打ち込んだあとから、あっイントロをもうちょっと長くしたいわwwとなった時に威力を発揮するよ。「ins1」ボタンをクリックしたらダイヤログが表示されるから、今の第何小節の位置に挿入したいか番号を入力するだけでOKだよ。一番先頭に挿入したければ「1」を、現在の2小節目と3小節目の間に挿入したければ「3」を入力すればOKだよ。これを使うと、曲の途中のとある小節を今16分音符の分解能で普通に演奏してるけど、やっぱ32分音符の分解能の2倍速演奏にして、半分のステップのコードカッティングを入れたい、あるいはベースパートを使って細かいフレーズを鳴らしたい、というようなことを後から思いつきで入れることもできるyo いったんラフに入力した曲を後から編集してアレンジすることが非常に容易になったと言えるyo(かなり便利な笑) ただし、今の最終小節の内容は押し出されて消える仕様になっているので、最終小節の内容も必要な場合は先に小節数を増やしてから実行してne
今後はこのような、データフォーマットには影響を及ぼさないけど、使用上の利便性を改善するような細かい変更が主となっていくと思うyo v3.9まで来たからといって、特にv4で大きなメジャーアップデートとかは予定してないyo(無理笑)
それから、和音の転回機能もどきをつけたyo 和音を収納している配列の各要素に単純に1オクターブ分の+12か-12を差し引きするだけなので実は簡単に作れたんだよne 指定方法はコードに「^」「^^」「^^^」「^^^^」をつければそれぞれ和音構成音の下から順に1個ずつオクターブ上へうつる音数が増えていくよ。逆に「v」「vv」「vvv」「vvvv」をつければそれぞれ4つ目の音から順に下へ下がる音数が増えていくよ。まあ、アルペジオパターンもやる都合から、完全に絵にかいたような転回形にはなっていないんだけど、まあ、「^」「v」を増やしていけばそれぞれ音域を多く変えられるという感じになってるよ。これを使って「Let Demo Be」のピアノ和音をちょこっと変更しているyo(微笑)
そして最大の新機能が、任意の位置に1小節挿入できるようにした機能だよ。これは実に重要な機能だよ。たとえば、長い曲データを打ち込んだあとから、あっイントロをもうちょっと長くしたいわwwとなった時に威力を発揮するよ。「ins1」ボタンをクリックしたらダイヤログが表示されるから、今の第何小節の位置に挿入したいか番号を入力するだけでOKだよ。一番先頭に挿入したければ「1」を、現在の2小節目と3小節目の間に挿入したければ「3」を入力すればOKだよ。これを使うと、曲の途中のとある小節を今16分音符の分解能で普通に演奏してるけど、やっぱ32分音符の分解能の2倍速演奏にして、半分のステップのコードカッティングを入れたい、あるいはベースパートを使って細かいフレーズを鳴らしたい、というようなことを後から思いつきで入れることもできるyo いったんラフに入力した曲を後から編集してアレンジすることが非常に容易になったと言えるyo(かなり便利な笑) ただし、今の最終小節の内容は押し出されて消える仕様になっているので、最終小節の内容も必要な場合は先に小節数を増やしてから実行してne
今後はこのような、データフォーマットには影響を及ぼさないけど、使用上の利便性を改善するような細かい変更が主となっていくと思うyo v3.9まで来たからといって、特にv4で大きなメジャーアップデートとかは予定してないyo(無理笑)
いじり出したらバグが出てくる出てくるw 修正できる時間的余裕がある時にやらないと、直したくても直せないというストレスはハンパないからne 今は手をかけられる時なのでガンガン進化させるyo(モテ期笑)
まず、スコアシートを拡張するときに「with data hold」オプションの動きがおかしかったので修正したyo beatではちゃんと動いてたけど、jamにしてその後の進化に対応できてなかったみたいだne(苦笑) まあ、そういうことってあるよねw
あと、やっぱりまだBassのOriginal Playの挙動がおかしかったので、ちょっと本腰を入れてスクリプトを追ってみたyo すると、選んだノート番号を加工してから鳴らしていたのに当初の加工前の番号を消音予定に入れたりとチグハグになってる部分が見つかったので修正したよ。今のところちゃんと動いてるように思うけど、まだどっかあるかもしれないなw(大苦笑)
それから、バグとりチェックをやってて思ったんだけど、やはり曲の途中から再生できる仕組みは特に開発者にとっては必要だne(妥当笑) エンディングのチェックをするのにこの再生方法がないと曲を全部きかなくちゃいけないからw(呆れ笑) beatでは作っていたけど、jamにしたときに「ループ回数とかがむちゃくちゃになるから、途中からの再生はやめとくかw」と安易な判断で決めた仕様だったよなw(失敗笑) なので、これも復活させたyo ただし、ラジオボタンがハイライトしてる一番後ろの小節の先頭拍からの再生になるよ。後ろのほうにハイライトが残ってる場合は、それより前の小節のをいくらクリックしても無効なので、いったん「play from top」で先頭から一瞬再生してハイライトを前に出してから、希望する小節のをクリックするといいよ。いまいちだけど、まあこれは開発者用ツールなのでこんなもんでw(手抜き笑)
一番重要なことをまだ書いてなかったyo ループタグなんだけど、今までは各小節の小節番号のところに「As」とか「Be」とかを1個しか入力できなかったよ。これだと、入れ子構造を作れることは作れるんだけど、小さなAループで戻る先頭と大きなBループで戻る先頭を同一小節にできないんだよね。最低でも1小節分ずれてしまうんだけど、実際はそういう構造のループって通常ありえないんだよねw(大苦笑) やはり実際に長い曲を打ち込んでみて、はじめて気付く矛盾というものがいっぱいあるよw 短いデモ曲だけでは駄目だということだねw
そこで、「AsBs」というように一緒に書いてしまっても認識できるように改良したyo これだとAループを2回繰り返してもう1つ別の部分を演奏して、それ全体を2回繰り返す、というような指定もすんなりできるようになったyo ただし、「AeBe」というように、ループのおしまい側の小節を重複記述はできないよ。なぜなら、Aeタグが来た場合の行き先の小節番号を配列に記録させているので、Beタグの行き先も要求されてしまうと、どっちへ飛んだらいいのか整理するためのまたまたややこしいプログラムを組まなくちゃいけなくなるからね。重複記述できるのは「s」のついたほうのタグだけだよw(複雑な笑)
この新しいループタグの仕組みを利用してちょっと長いデモ曲を作ってみたyo 進行が行ったり来たりするので、ループタグをFまで全部使って進行定義したyo あまりにも有名な「Let Demo Be」をパチモンで再現してみたyo(苦笑)
まず、スコアシートを拡張するときに「with data hold」オプションの動きがおかしかったので修正したyo beatではちゃんと動いてたけど、jamにしてその後の進化に対応できてなかったみたいだne(苦笑) まあ、そういうことってあるよねw
あと、やっぱりまだBassのOriginal Playの挙動がおかしかったので、ちょっと本腰を入れてスクリプトを追ってみたyo すると、選んだノート番号を加工してから鳴らしていたのに当初の加工前の番号を消音予定に入れたりとチグハグになってる部分が見つかったので修正したよ。今のところちゃんと動いてるように思うけど、まだどっかあるかもしれないなw(大苦笑)
それから、バグとりチェックをやってて思ったんだけど、やはり曲の途中から再生できる仕組みは特に開発者にとっては必要だne(妥当笑) エンディングのチェックをするのにこの再生方法がないと曲を全部きかなくちゃいけないからw(呆れ笑) beatでは作っていたけど、jamにしたときに「ループ回数とかがむちゃくちゃになるから、途中からの再生はやめとくかw」と安易な判断で決めた仕様だったよなw(失敗笑) なので、これも復活させたyo ただし、ラジオボタンがハイライトしてる一番後ろの小節の先頭拍からの再生になるよ。後ろのほうにハイライトが残ってる場合は、それより前の小節のをいくらクリックしても無効なので、いったん「play from top」で先頭から一瞬再生してハイライトを前に出してから、希望する小節のをクリックするといいよ。いまいちだけど、まあこれは開発者用ツールなのでこんなもんでw(手抜き笑)
一番重要なことをまだ書いてなかったyo ループタグなんだけど、今までは各小節の小節番号のところに「As」とか「Be」とかを1個しか入力できなかったよ。これだと、入れ子構造を作れることは作れるんだけど、小さなAループで戻る先頭と大きなBループで戻る先頭を同一小節にできないんだよね。最低でも1小節分ずれてしまうんだけど、実際はそういう構造のループって通常ありえないんだよねw(大苦笑) やはり実際に長い曲を打ち込んでみて、はじめて気付く矛盾というものがいっぱいあるよw 短いデモ曲だけでは駄目だということだねw
そこで、「AsBs」というように一緒に書いてしまっても認識できるように改良したyo これだとAループを2回繰り返してもう1つ別の部分を演奏して、それ全体を2回繰り返す、というような指定もすんなりできるようになったyo ただし、「AeBe」というように、ループのおしまい側の小節を重複記述はできないよ。なぜなら、Aeタグが来た場合の行き先の小節番号を配列に記録させているので、Beタグの行き先も要求されてしまうと、どっちへ飛んだらいいのか整理するためのまたまたややこしいプログラムを組まなくちゃいけなくなるからね。重複記述できるのは「s」のついたほうのタグだけだよw(複雑な笑)
この新しいループタグの仕組みを利用してちょっと長いデモ曲を作ってみたyo 進行が行ったり来たりするので、ループタグをFまで全部使って進行定義したyo あまりにも有名な「Let Demo Be」をパチモンで再現してみたyo(苦笑)