イベントリスト Midi入力でのリプレイス、インサート、マージ入力
メッセージ
現状のイベントリストでStep録音ダイアログを開かずに下記の操作が可能となれば
Midi入力での作業効率が飛躍的に向上すると思います。是非とも御検討頂きたくお願い申し上げます。
●Midi入力モード切り替え
・Mono ON/OFF :単音、和音の入力制限(Mono/Poly)
・Vel ON/OFF/ONLY :入力Vel値を反映する、しない、Vel値のみを反映する
Mono入力はピアノグリッサンドなどの入力等に有効です。Vel切り替えはVel値は確定していてNote値だけ変更したい、逆にNote値は確定しているがVel値だけ入力したいという場合に有効です。上記切り替えはそれぞれショートカットのトグルにて切り替わる事が希望です。また何処かに現在モードの表示が必要と考えます。
●リプレイス入力
Shift+Midi入力で既存のノートイベントが上書き入力される。
入力毎に次のノートイベントにカーソルが移動する。
Rest,CC等は無視され次のノートイベントが上書きされる。
和音に対してMonoで上書きした場合はリストの構成音の上から順番に上書きされる。
単音、和音に対してPolyで上書きした場合はそのTick位置のノートイベントが全て入力されたデータに置き換わる。
End of Track位置では直前ノートイベントのStep,Gate値にて挿入される。
●インサート入力
Alt+(もしくはInsert+)Midi入力で現在位置からノートイベントが挿入される。
入力毎に次の行に挿入される。
直前ノートイベントのStep,Gate値にて挿入される。
以降のデータは挿入分後方に移動する。
End of Track位置では直前ノートイベントのStep,Gate値にて挿入される。
●マージ入力
Ctrl+Midi入力で現在位置にノートイベントが和音として追加される。
入力毎に次のノートイベントにカーソルが移動する。
現在のStep録音の簡易版。
●ホールド機能
両手を鍵盤で使用する場合はCaps+で入力状態がホールドされる。
同じ操作で解除。
以上が理想的と考えております。御検討のほどよろしくお願いいたします。
- 申し訳ありません、上記案のマージ入力はCtrl+、インサート入力はAlt+(もしくはInsert+)に置き換えて御検討お願いします。 -- たーくん? 2007-06-16 (土) 17:04:04
- (本文の方を修正させて頂きました。) -- 2007-06-16 (土) 21:09:46
- これは一般的な数値入力機能なのでしょうか?? -- たかぼー? 2007-06-18 (月) 16:14:40
- 最初に一般例をお伝えするべきでした。見辛いとは思いますが簡単ながら他のソフトの関係機能一覧を添付いたします。入力モード01.xls
当件は機能としては一般的+αではありますが操作は異なります。一般的には編集時のモード切り替え(上書きor挿入)とMidi入力状態のモードをそれぞれ切り替えて入力を行います。あくまでも私見ですが挿入モードやMidi入力待ちの状態保持はそれほど必要とは思えず、また誤入力の原因にもなりますので「~を押しながら」の操作が効率面で見ても適しているのではないかと考えました。
添付書のMIDI Fkeyについては個人的に使用しない為に見過ごしてしまいましたが、通常時にMidiキーオン+FキーでNoteとVelが反映されたノートイベントが入力されると近い挙動ではないかと思います。 -- たーくん? 2007-06-19 (火) 04:15:35 - 単音・和音入力モード切り替え(mono/poly)と、引用情報の切り替え(Note番号 and Vel/Note番号のみ/Velのみ)ですね。
いろいろな条件下で組まないといけないのでこれは仕様把握だけでも大変ですな・・・。
長くなりましたが、ご回答お願いいたします。-- たかぼー? 2007-06-19 (火) 14:08:38●mono/polyモードについて
①monoの場合は、1つ1つのノートオンの瞬間に処理を行おうと思います。
②polyの場合は、全ノートオフの瞬間に、「最初のノートオンから、全ノートがオフになるまでに入力された全ノート」を、反映する感じにしようと思っています。
(1つ1つのノートオンの瞬間には何も画面には反映されません)
●リプレイス入力について
③「入力毎に次のノートイベントにカーソルが移動する。」
とありますが、入力後、次がCCイベントなどだったら、ノートイベントが出てくるまでカーソルをどんどん下に移動させる感じですか?
④「Rest,CC等は無視され次のノートイベントが上書きされる。」
とありますが、次が無かったらどうしますか?
⑤「単音、和音に対してPolyで上書きした場合はそのTick位置のノートイベントが全て入力されたデータに置き換わる。」
とありますが、カーソル位置がノート以外の場合は、そのTickではなくて、次のノートを探してから、そのノート(和音/単音)が置き換わる感じですか?
⑥すでに3音の和音がある部分に対して、設定を「poly、Note番号のみ」にしておき、
MIDIキーボードから2音ノートオンを送った場合は、どうなりますか?
●インサート入力について
⑦「直前ノートイベントのStep,Gate値にて挿入される。」
とありますが、ここでいう「直前ノート」とは最後のノート情報ではなくて、カーソルからさかのぼって一番最初に出てくるノートイベントの情報ですか?
⑧ちなみに、入力前のカーソル位置がノートだった場合は、そのノートの情報ですか?
⑨それから、挿入する位置ですが、カーソル位置のイベントとカーソル位置の一つ前のイベントの間に、midiからのノートイベントを挿入する感じですよね?
⑩Polyは和音を同タイミングとして挿入でき、monoは単音つづ挿入される感じですね?
⑪挿入後、カーソル位置はどこにあるのが理想ですか?
●マージ入力について
⑫カーソル位置がノートイベント以外はどうしますか?
⑬「次のノートイベントにカーソルが移動する」とありますが、
入力後、次がCCイベントなどだったら、ノートイベントが出てくるまでカーソルをどんどん下に移動させる感じですか?
●ホールド機能について
⑭たとえば、どういう操作をしたときに、どうすればホールド状態になりますか?
●Fキーとの組み合わせ
⑮たとえば、midiキーボードでド(vel90)とレ(vel100)を押さえた状態で、F1などを押したら、カーソル位置のノートのNote番号とvelocityはどちらの情報を使いますか?(どっちでもよさそう^^;)
⑯midiキーボードでド(vel90)とレ(vel100)を押さえた状態でAlt+F1キーなどで挿入する場合、
挿入されるノートは(たとえば)ドだけですか?
それともドとレとそれぞれが違うtickに挿入される感じですか?
それともドとレが同tickに挿入される感じですか?
●その他
⑰エクセルのほうに上書きとして「既存イベントがFキー設定値で置き換わる。Fキー入力によりStep値が変更されても以降のデータはずれない。現在データよりStepが短くなる場合は不足分の休符が挿入され、長い場合は必要Step分の既存データが休符となる。」
というような記述がありますが、これは無くても問題ないのですね? - お世話になります。御質問の内容についての一通りの返答を添付いたします。一応操作については脳内シミュレーションを繰り返してはいるのですが多々不備もあると思われます。御一読よろしくお願いします。入力モード02.txt -- たーくん? 2007-06-19 (火) 21:22:50
- 仕様ありがとうございます。Capsキーでホールドとありましたが、たとえばCtrl+CapsだとCapsはオンにならないため、Capsがオンの時だけホールドとみなすことができません。このホールドの問題と、入力モード等の切り替えをどこに表示するか、という問題を一気に解決する案として、次のような仕様を考えてみました。
インタフェースが良ければ次は細かい仕様書を書きたいと思います。 -- たかぼー? 2007-06-26 (火) 16:49:25MIDI編集モード(仮称)として、
・OFF
・置き換え
・挿入
・合成
という4つのメニューコマンドと4つのボタンを用意します。
オフになっている場合はAlt、Ctrl、Shiftキーを押しながらで一時的に各モードになり、
持続して使いたい場合は各ボタンを直接クリックしてもらう形になります。
和音モード(仮称)として、
・Mono
・Poly
・モード切り替え(Mono⇔Polyのみ)
という3つのメニューコマンドと2つのボタンを用意します。
次に、MIDI引用モード(仮称)として
・NoteとVelocity
・Noteのみ
・Veloctyのみ
・モード切替(3モードがトグル式)
という4つのメニューコマンドと3つのボタンを用意します。
これらをまとめた「イベントリストMIDI入力ツールバー(仮称)」を用意します。
ちなみに、和音モードと引用モードを掛けて現在6パターンありますが、
あげて頂いた仕様のように、「和音モード」2種と「引用モード」3種で
それぞれ独立させて切り替える方が最適と考えて間違いないでしょうか?
たとえば入力モードとして、
・Mono & Note & Velocity
・Mono & Note
・Mono & Velocity
・Poly & Note & Velocity
・Poly & Note
・Poly & Velocity
のどれか1つを選ぶようにしてしまったり、
逆にもっと細かく独立させる、たとえば
・和音オンオフ切り替えボタン
・ノート引用オンオフ切り替えボタン
・Velocity引用オンオフ切り替えボタン
の3つのボタンにしてしまうことも出来るにはできます。
(ただ、ノートもオフ、Velocityもオフのように意味のない組み合わせができてしまうのが問題ですが) - 御検討いただきありがとうございます。
数値系では入力モードの組み合わせをトグルキーで選ぶのが一般的ではあります。それもアリとは思うのですが私見ながらそれ程合理的な動作とも思えず、純粋に切り替えたい部分だけを切り替える方がシンプルではないかと考えます。また見た目にも直感的で解り易くと考えれば仰るような
・和音オンオフ切り替えボタン(どちらかと言えばMonoが特殊なのでMonoON/OFFボタン?)
・ノート引用オンオフ切り替えボタン
・Velocity引用オンオフ切り替えボタン
が整理された形のような気がします、確かにCubaseでは近いイメージのボタンがあります。
(ノートもVelocityもオフは入力自体オフという事で・・。)
MIDI編集モード(仮称)ではON/OFFは独立したトグル動作が良いかと思います。入力モードは残しておいてON/OFFを別で切り替えできるようなイメージです。ショートカットの方ではON/OFFの動作とそれ以外の3モードのトグル切替があれば理想的です。キーオペレーションでこれらと入力切り替え3つの計5つのショートカットで操作できれば他の数値派ユーザーさんも納得するような気がします・・・が(??)。 -- たーくん? 2007-06-27 (水) 16:28:01 - 確認ありがとうございます。MIDI編集モード(仮称)のON/OFFを単独で切り替えられるようにしたとして、それがオフになっていても、たとえばAltl+MIDI入力した場合は(ON/OFFやツールバーボタンによるモードに関係せず)インサートされる、ということで良いでしょうか? -- たかぼー? 2007-06-28 (木) 15:08:43
- はい、是非々々その形でお願いいたします。 -- たーくん? 2007-06-28 (木) 15:36:49
- 今仕様書にまとめているところなのですが、リプレイス機能を使って例えば
1:0000 Note=40 Gate=480 Vel=100 ←ここにカーソル 1:0000 Note=50 Gate=500 Vel=120
となっている部分でPoly、NoteMode=ON、VelMode=ONで、MIDIキーボードから入力した際に、
各Gate値をどういうルールで決定するかがわかりません。
その①Note=60 Vel=50
と単音で入力した場合、どうなるべきですか?
こうでしょうか?1:0000 Note=60 Gate=480? Vel=50 (二つ目のノートは消える)
その②Note=60 Vel=50 Note=70 Vel=51 Note=80 Vel=52
と入力した場合、どうなるべきですか?
こうでしょうか?1:0000 Note=60 Gate=480? Vel=50 1:0000 Note=70 Gate=500? Vel=51 1:0000 Note=80 Gate=500? Vel=52
よろしくお願いいします。 -- たかぼー? 2007-07-02 (月) 10:05:42 - お世話になってます。御質問の部分ですがじつは他のソフトでもここは挙動がマチマチでして。
まずMonoモードではリスト表示順に和音構成音を上から書き換えていく形が良いと思いますが、Polyモード上書きを「同Tick上のノートイベントを全て置き換える」とするべきかです。他のソフトでのPolyモード上書きはリスト表示順を加味して入力され、2ボイスの和音に3声入力すると次のTick位置のノートイベントまで書き換えられます。(添付参照下さい)「上書き」という意味では正解ですが前述のように潔く和音ごと置換された方が解り易いと考えています。Polyモードで和音対して単音を入力すれば単音イベントに、単音に対して和音入力すれば和音イベントになるといったイメージです。リプレイス和音01.xls
Gate値ですが御提示のように既に入力済みのGate値がある場合はそれが優先され、増えるノートについては1つ前のノートイベントのGate値が反映される形が統一性があるように思えます。 -- たーくん? 2007-07-03 (火) 13:06:01 - 詳細ありがとうございます。Poly,Note#=ON,Velocity=ONの挙動は「潔く和音ごと置換する」でとりあえず行きたいと思いますが、Poly,Note#=ON,Velocity=OFF(もしくはその逆)の挙動は(以前回答していただきましたが)元が2和音で3和音入力したら元の2音のNote#のみ置き換わる(入力の3音目は無視)、また元が3和音ので2和音入力したら元の2音のNote#のみ置き換わる(元の最後の一音は何も変わらず)という感じで、
Poly,Note#=ON,Velocity=ONの時:ノートイベント数が変わることがある Poly,Note#=ON,Velocity=OFFの時:ノートイベント数は変わらない
というような感じになり、若干仕様の統一感が薄れておりますが、このままでも良いでしょうか?それともPolyモードは入力した音数に必ず置き換わるというような大前提のルールにしてしまいましょうか??? -- たかぼー? 2007-07-04 (水) 09:31:22 - 仰るように「Polyモードは入力した音数に必ず置き換わる」が適していると考えます。Monoモードは上書き、Polyモードは置換というそれぞれの性格も出てきますし。他ソフトのPolyモードでここの挙動は少なからず「曖昧」部分があり、また既存の和音構成を残す利便性もさほど感じられません(残す場合はMonoモードで上書き可能)。プログラム面で問題が無いようであれば大前提にしてしまった方がスッキリすると思います、またピアノロールで見た場合でも違和感が少ないと考えます。 -- たーくん? 2007-07-04 (水) 14:13:11
- 了解です 続いてインサート入力ですが、
という状態でMIDIから(Monoで)
Tick Note Step Gate Vel 備考 1:0000 50 100 480 100 ←ここのStep,Gateを流用 1:0100 60 120 500 110 ←ここにカーソル位置 Note=70 Vel=50
という入力を行った場合
StepやGateは直前(=ひとつめ)のイベントの値を流用して、という感じで宜しいでしょうか?Tick Note Step Gate Vel 備考 1:0000 50 100 480 100 ←ここのStep,Gateを流用 1:0100 70 100 480 50 ←これを追加 1:0200 60 120 500 110 ←ここにカーソル位置
また、Note#=ON,Velocity=OFFのようにモードを設定した場合、Velocityは直前(=ひとつめ)のイベントの値を使う、で宜しいでしょうか? -- たかぼー? 2007-07-04 (水) 14:57:39 - はい、どちらもその通りです。(レコポ準拠になります) -- たーくん? 2007-07-04 (水) 15:26:16
- かなり手抜きですがモードごとに仕様をまとめてみました→el_midi.xls 理解しづらいとは思いますが(^^;、間違いがありましたら、ご指摘をお願いいたします。 -- たかぼー? 2007-07-04 (水) 17:12:15
- 確認いたしました、ありがとうございます 。要望時点で私に纏める能力があれば良かったのですが お手間かけます。一つ気になった点ですが、マージ入力の(同tickの一番最後に追加される)部分の「一番最後」とはリスト上では上側でしょうか?上側の行(Stepが関係していない)に追加されると見た目に解り易いと思います。その他についても問題ないと思います。 -- たーくん? 2007-07-04 (水) 20:23:16
- 確認ありがとうございます。マージは間違えました^^;一番最後ではなく、カーソル位置で良いですよね???(同tickの一番上の方がよいですか?)よくよく考えれば、インサート機能の、「Step分うしろにずれる」処理が無くなったものがマージ機能ということですね。ちなみに、もともと和音ノートがたとえば3つあったとしまして、カーソル位置がこの3つのどこにあったかで処理が変わるか変わらないかについてですが、
リプレイス機能: Poly:どこでも処理は一緒(同tickが全て削除されたあとで挿入) Mono:カーソル位置のノートのみが対象となる インサート機能: Poly&Mono:たとえば二つ目にカーソルがあれば、二つ目以降が後ろにずれる(和音は分解) マージ機能 Poly&Mono:カーソル位置にイベントが挿入される感じ
・・・という感じでリプレイスのPolyは和音内のカーソル位置は無関係、という事でいいでしょうか? -- たかぼー? 2007-07-05 (木) 11:48:13 - はい、マージはカーソル位置に追加が一番解り易いと思います。各機能のカーソル位置での処理は仰るとおりです。他のソフトではインサートモードにマージが混在している為カーソル位置や条件によって挙動が異なるケースがありますが、それが機能別となるだけなので問題ないと考えています。同様の理由で「リプレイスのPolyは和音内のカーソル位置は無関係」で問題ないと思います。(他ソフトでの挙動を検証していて気がついたのですがmidiomの3つ目の入力モードはどうやらこのリプレイスPolyでの挙動が目的のように思えます) -- たーくん? 2007-07-05 (木) 13:52:17
- ありがとうございます。ようやく仕様のゴールが見えてきましたねw
続きまして、Fキーおよび組み合わせについて確認させてください。
《Alt+Fキー》
Fキーに割り当てられているGate,Step値を使って挿入します。
(カーソルの列位置は処理には影響しません。)
カーソル以降のイベントはStep分後ろにずれます。
Note#,Velocityはそのカーソルからさかのぼって一番最初に出てくるノートイベントのものを使います。
《Alt+MIDI入力→Fキー》
Fキーに割り当てられているGate,Step値と、MIDI入力されたNote#,Velocityを使って挿入します。
カーソル以降のイベントはStep分後ろにずれます。
MIDI入力が複数有ればそのまま複数が同tickに挿入されます。
《MIDI入力→Fキー》
これがまだちょっとよくわからないのですが、Tick Note Step Gate Vel 備考 1:0000 50 480 100 ←ここにカーソル 1:0000 70 100 480 50 1:0100 80 100 100 100
このような状態で
F1キーにSpte=500,Gate=500が割り当てられており、
①MIDIから「Note=30,Vel=30」を押さえながらF1キーを押したとき
②MIDIから「Note=30,Vel=30」と「Note=40,Vel=40」を押さえながらF1キーを押したとき
それぞれどういう結果になるのか、教えていただけますか??
(こちらも入力モードやカーソル列によって処理が変わることはありませんね?)
よろしくおねがいします。 -- たかぼー? 2007-07-05 (木) 15:25:18 - わぉ、どうなるのでしょうか。MIDI+Fキーに明るくないので実際にやってみました。
midiomではEOT位置かインサートでMIDI+Fキーが可能なようで既存データ上では通常のFキー操作となります。3つ目の入力モードでのみ上書き可能でFキーのステップ分がザックリ入力MIDIデータに置換されます。リプレイスPolyでFキーのステップ分既存データを削除するような感じです。このモードはFキーを使用する完全置換モードなんでしょうか。
①②Tick Note Step Gate Vel 備考 1:0000 30 500 500 30 1:0500 EOT ←ここにカーソル Tick Note Step Gate Vel 備考 1:0000 30 500 30 1:0000 40 500 500 40 1:0500 EOT ←ここにカーソル
レコポでは以下となります。
ちなみに3声以上入力するとリスト上の既存データ行を入力音数分上書きしてFキーステップ分の和音となります。
①②Tick Note Step Gate Vel 備考 1:0000 30 500 500 30 1:0000 70 100 480 50 ←ここにカーソル 1:0100 80 100 100 100 Tick Note Step Gate Vel 備考 1:0000 30 500 30 1:0000 40 500 500 40 1:0500 80 100 100 100 ←ここにカーソル
どうも私には今ひとつ理解しにくい挙動でしてMIDI+Fキーを多用するユーザーさんの御意見をお聞きしたい所ではあります。
流れから考えるとリプレイスPolyにFキーのStep,Gateを組み合わせた挙動が自然な感じはしています。
①②Tick Note Step Gate Vel 備考 1:0000 30 500 500 30 1:0500 80 100 100 100 ←ここにカーソル Tick Note Step Gate Vel 備考 1:0000 30 500 30 1:0000 40 500 500 40 1:0500 80 100 100 100 ←ここにカーソル
どうでしょうか、個人的には「EOT位置かインサートでのみ機能する」でも構わないのですが・・。 -- たーくん? 2007-07-05 (木) 18:21:12 - 了解です^^;とりあえず限定してしまいましょうか。 インターフェスとアイコン描いているだけで1日終わった気がします・・・
結構開発に時間が掛かりそうです^^; -- たかぼー? 2007-07-11 (水) 22:37:57 - いやはや申し訳ありませんです、お手伝いできれば良いのですが・・ 。MIDI+Fキーについては私自身がこのモードの正当(?)な使用方法を熟知しておらず中途半端な理解になっていますので当面「EOT位置かインサートでのみ機能する」で良いかと思います。心待ちなのは本音ですが気長にお待ちしておりますのでご無理はなさらぬように。 -- たーくん? 2007-07-12 (木) 01:27:25
- とりあえずやってみるだけやってみました→http://www.tkb-soft.hmcbest.com/Domino122_dev001.ZIP 一応ALT+Fキー辺りも対応しました。専用のツールバーもあります。 -- たかぼー? 2007-07-16 (月) 21:02:40
- 実装ありがとうございます! 一通り確認しましたが私が行っていた数値入力手法では格段に効率が上がります。気付いた点ですがAlt+Fキーと挿入モード時+Fキーの挙動が異なりますのでここはAlt+Fキーに合わせて頂ければと思います。よろしくお願いします。 -- たーくん? 2007-07-17 (火) 01:18:49
- 実装ありがとうございます! 一通り確認しましたが私が行っていた数値入力手法では格段に効率が上がります。気付いた点ですがAlt+Fキーと挿入モード時+Fキーの挙動が異なりますのでここはAlt+Fキーに合わせて頂ければと思います。よろしくお願いします。 -- たーくん? 2007-07-17 (火) 03:37:48
- 確認ありがとうございます。まだこちらで実験していませんが、どの辺が異なるかも少し書いていただけますか? -- たかぼー? 2007-07-17 (火) 09:30:18
- 失礼しました。Polyモードの場合EOT位置での挙動は同じですがデータが存在する位置での挙動が異なります。データが存在する位置でAlt+FキーではFキーが入力トリガーの如く働きますが、挿入モードの場合は既存データへFキー適用した後に挿入されます。これをAlt+Fキーと同じ挙動にして頂きたいと思っております。Monoモードの場合はキーオン時点で入力が確定されるので同じ挙動にはなりませんがこれは仕方ないと思います。他のソフトでもMIDI+FキーにMonoモードは存在していません。(Alt+Fキーなら出来ます。Alt+Fキーは如何様にも使えますね!すごく便利になりそうです!) -- たーくん? 2007-07-17 (火) 15:17:55
- まだよくわかっていませんが、こちらの認識ではALT+Fキーと「挿入モード時+F」キーは同等ではありません。「挿入/置き換え/追加」モードや「POLY/MONO」切り替えというはMIDI入力のための設定であり、Fキー入力とは関連していません。 それとも、ALT+F,ALT+MIDI+Fで発動する挿入処理を、[ALT]が押されているか判断するのではなく「挿入モード時」だったら発動する、というように変えますか?(ただし、挿入以外のモード(置き換え/追加)とFキーの組み合わせは何もしません。)-- たかぼー? 2007-07-17 (火) 19:41:27
- なるほど納得しました。挿入モード=Altホールドのイメージがあったもので勘違いをしておりました。現在のALT+MIDI+Fは有効に利用でき且つ利便性も高く感じております。ただ時々指が届かなくなったりしまして 。Altを押した状態が一時的な挿入モードと思いますので仰るように「挿入モード時」発動で良いかと思うのですがEOT位置でモードに係わらずバババと入力できるのも魅力です。可能であれば「挿入モード時&EOT」発動となる事を希望いたします。これで他ソフトの「FキーMIDI入力」同等以上の操作が可能だと思われます。くわえて1点お願いなのですが置き換え、挿入、追加、各モードのショートカットを実行した場合に連動してMIDI入力オンとして頂けないでしょうか。これによって試弾からすぐに目的の入力作業に移る事ができます。御検討よろしくお願い申し上げます。 -- たーくん? 2007-07-18 (水) 00:02:56
- いろいろいじってみました→http://www.tkb-soft.hmcbest.com/Domino122_dev003.ZIP -- たかぼー? 2007-07-18 (水) 20:56:57
- しばらく使わせて頂いてますが、かつて無い程迅速かつ容易にリストでのMIDI入力が思い通りに行えるようになりました。本当にありがとうございました。 -- たーくん? 2007-07-20 (金) 16:10:31