domino/要望001/64

Last-modified: 2007-05-06 (日) 17:23:35

音程以外をリアルタイムレコーディング

  • ページ: domino/要望
  • 投稿者: るふと?
  • 優先順位: 低
  • 状態: 完了
  • 投稿日: 2007-02-26 (月) 23:57:05

メッセージ

ごめんなさい・・・要望42にもまして無理そうな、チラシの裏の妄想機能を書かせて頂きます・・。わかりにくい説明で申し訳ありません。

私は完全にマウス打ちで作曲をするのですが、聞いたときの自然さは、やはりリアルタイム入力には到底及びません。とはいっても、リアルタイム入力できるほどキーボードも弾けません・・・。そんな私なので、音程以外のゲートタイムとベロシティ(+ノートオンのタイミング)のみが反映されるレコーディングを考えていました。

実装方法はいろいろあると思われるのですが、どの方法にしても問題になるのは、データを先読みする必要があることと、キーボードからのMIDIデータをスルーせず加工する必要があること、ではないかと思うのですがどうなのでしょうか。。

とりあえず、私が考えた実装方法をいくつか書かせて頂きます。


○1.入力にノート(同tickの和音も1まとめ)の音程を順番に割り当てる
キーボードの入力がくる度に、ノートの音程を順番に割り当て、音程以外は通常のリアルタイム入力のように入力します。

問題点:弾くのが間に合わなかったり、ミスタッチをすると、弾こうとする音と実際出る音が、合わなくなってしまう。


○2.入力にもっとも時間的に近いノートを割り当てる
1番の割り当てを順番ではなく、ノートオンのタイミングで一番近いノートを割り当てるようにしたものです。

問題点:装飾音の様な細かい音のタイミングが難しい。(該当する入力が無かったものは、そのままにすれば解決できると思います。)


○3.入力された情報を元にスライス
キーボードからのノートオンの瞬間からノートオフまでを残すようにスライスします。(クッキーの型抜きの様なイメージです) ノートオンのタイミングに、発音中のノートが無かった場合には次に来るノートがそこから始まることとします。

(別の利用法としては、ギターのカッティングや、ピアノの単純なバッキングにも応用できます。)

問題点:ゲートが次のノートぎりぎりまで伸びている場合、1tick早く弾いただけでもゴミができてしまう。(ノートオンの信号のみクオンタイズをかけた時のタイミングに補正すれば、一応は回避できると思います。)


前回よりもさらにわかりにくい説明になってしまいましたが、もしも、労力に見合った効果を得られると、たかぼーさんもお考えになりましたら、ご検討よろしくお願いします。


  • 将来性を考えると弾けるようになった方が (OO; -- たかぼー? 2007-02-27 (火) 12:49:21
  • ごもっともです (T-T -- るふと? 2007-02-28 (水) 23:05:59
  • うーん、2番が一番現実的かもしれませんね。 -- たかぼー? 2007-04-29 (日) 14:35:09
  • ちなみに、入力中に鳴る音階と、実際に反映される音階が違ってもいいですか?^^; -- たかぼー? 2007-04-29 (日) 14:56:55
  • 無理を言ってごめんなさい (T-T なるほど・・やはり、入力中に先読みして判定しながらは難しいですよね・・。ただ、さすがに入力中の音程と実際の音程が異なると、弾くのが難しいような気がします・・・。 -- るふと? 2007-04-30 (月) 20:09:12
  • つまり、midikeyboardで「ド」を押しても、スピーカーから出る音は判別され補正されたノート(たとえば「レ」かもしれない)のほうが良いということですね。①②③はどれが希望でしょうか? -- たかぼー? 2007-05-01 (火) 10:00:14
  • その通りです!私の理想としてはいろいろ悩むのですが、2番の形が良いのではないかと思います。いままで見たことの無い機能ですので実際どうなるか予想がつかないのです・・。 (3番を変化させて、すでに入力されたノートを基準にスライスというのも別の機能として欲しいでs(ry) -- るふと? 2007-05-01 (火) 11:26:42
  • 了解ですー。ついでに①も一緒にやってしまうかもしれませんが^^; 技術的には可能そうですが、使い物になるかは実際作ってみないとなんとも言えませんね。灰色文字の方はよくわかりません^^; -- たかぼー? 2007-05-01 (火) 12:05:28
  • 可能そうというのは本当ですか!実はCherry時代にこれのためだけにスクリプトを組んでみたりしたことがあったので、実装されるととてもうれしいです! [star] 灰色のほうはただの戯言ですので無視してください・・・ (OO; -- るふと? 2007-05-01 (火) 13:01:12
  • 質問A:たとえば、元ノートが1つだけあって、それに近い位置でmidikeyboardを二回連打したとします(二回とも検索で同じノートにヒットしそうな時)。この場合、最終的に出来上がるのは、ノートが2個だと思いますか?それとも1個だと思いますか? 質問B:本文にもありますが、検索されずに残ってしまったノートはそのままその場にあり続ける、で良いですよね? 質問C:和音が存在する部分へ入力した場合はどうしましょう?1キー入力で同tickの和音は全て同じように処理するのか、それとも、一番近いノートの検索方法を音階と時間両方にして、midiキーボード側でもなんとなく和音を入力したら、それぞれの入力で一番近いノートを処理するような形にしますか?(説明がわかりにくいですね。。。 -- たかぼー? 2007-05-01 (火) 13:54:27
  • A:これは私も悩んでいましたが、2つ入力される方向でお願いしたいです。(難しければ1つでかまいません) B:はい。 C:なんとなくな和音の入力に対応した場合でも、単音で入力できるのであれば是非お願いしたいです。もし、単音での入力が不可能になるのであれば、単純にすべて同じように処理していただければありがたいです。 -- るふと? 2007-05-01 (火) 14:11:29
  • A,B了解です。Cは説明がややこしくなってしまいましたので改めますが、1:0000位置にNote[50]とNote[70]があらかじめ存在しており、リアルタイム補正入力(仮称)で1:0125あたりでmidiキーボードの69番を押した場合、ノート番号で一番近い1:0125 Note[70]というイベントだけを作成するのか、それともノート番号は関係無しに1:0125 Note[70]と1:0125 Note[50](これら2つはGateやベロシティも同じ値が反映される)を両方作成するか、どちらでしょう? midiキーボードで1音だけ入力したら後者、複数だったら前者、というような事はできません(全く同じ時間にmidiキーボードから入力する事は困難でしょうから、たとえばドとミを同時に押さえたつもりでも、ドを処理して、次のタイミングでミを処理して、という感じになるかと思います。後者にした場合、midiキーボードで和音を入力してしまった場合は、2回連打したとみなされるでしょうね^^;)設定でどちらか切り替える、でもいいかもしれませんが。。。。 -- たかぼー? 2007-05-01 (火) 15:19:48
  • 詳しい説明ありがとうございます。もし音階も判断基準に加え、和音を入力する形にした場合、音階でも一番近い音を探すということは、元とあまり変わらない和音を弾けないといけないということになるでしょうから、同じTickの和音についてはすべて同じ形にするようにお願いできますでしょうか。よろしくお願いします。 -- るふと? 2007-05-01 (火) 15:47:54
  • というわけでいろいろやってみました→http://www.tkb-soft.hmcbest.com/Domino115_dev002.ZIP リアルタイム録音画面のオプションで、録音モードを変えてみてください。設定からあれこれ変えられるようにしました。 試したところ、十分実用レベルに達しているんじゃないかなぁと思います。 -- たかぼー? 2007-05-04 (金) 19:42:02
  • こんな機能今まで聞いたこともなく、絶対無理だろうと思っていたものでしたので、まさか実装されるとは思っていなくて・・・感激です・・。本当にありがとうございました! (^^) dominoで作った過去の曲で試しているのですが、予想以上に良い感じです・・。もうなんて言ったらいいのやら・・とにかく感動です・・。 いまのままで十分どころか、満足しているのですが、ちょっとわがままを言えば、録音時の次のページに行く切り替えのタイミングがぎりぎりで、入力が間に合わないことがありましたので、もう少し余裕を持たせることのできる設定があるとありがたいと思いました。が、そんなものはどうでもよくなるくらい便利で、鍵盤で思い通りに弾けない歯がゆさが解消されて、とても気持ちが良いです。しつこいですが、本当にありがとうございました! [heart] -- るふと? 2007-05-05 (土) 00:50:28
  • 確認ありがとうございますー。切り替えタイミングを環境設定で変えられるようにしますね~(通常の再生時と録音時と共通でいいですよね??) -- たかぼー? 2007-05-05 (土) 11:26:38
  • もちろん共通で全く構いません!細かいことまでお手数おかけしますが、よろしくお願いします! -- るふと? 2007-05-05 (土) 11:34:29
  • やってみましたー→http://www.tkb-soft.hmcbest.com/Domino115_dev003.ZIP -- たかぼー? 2007-05-05 (土) 15:10:07
  • こちらもばっちり動きました!今回も無茶な要望にもかかわらず、実装していただいて本当にありがとうございました!どうでもいいのですが、切り替えタイミングのぎりぎりまでピアノロールを小さくすると、オルゴールみたいに動いて面白いですね (^^) -- るふと? 2007-05-06 (日) 15:00:17