domino/要望003/212

Last-modified: 2009-09-04 (金) 00:22:08

一括変更での書式

  • ページ: domino/要望
  • 投稿者: MM?
  • 優先順位: 低
  • 状態: 完了
  • 投稿日: 2009-08-15 (土) 14:02:08

メッセージ

初めまして。よろしくお願いします。
イベント「一括変更」での書式ですが、説明欄のように演算子は1つだけしか使えないのでしょうか?
多項式を一気にできないでしょうか?

例えば次のような計算をしたいのです。
(V-100)*0.5+100   (V:変更前ベロシティ値)
これはいわゆるベロシティコンプです。
ばらつきのあるベロシティに対し、スレッショルド値100を基準にして、
レシオ値0.5(50%)でばらつきを圧縮する(選択範囲のベロシティを100に近づける)という意味です。
現状だとこの式を展開して、V*0.5+50とし、「*0.5」と「+50」の一括変更を2回実行してますが、
1回の実行ごとにダイアログが閉じるので面倒です。
ダイアログを閉じないよう「連続計算モード」とかでもいいのですが、一気にできると尚うれしいです。

しかし、このような計算は主にベロシティにしか使いませんし、現行のシンプルな一括変更も使いやすいですから、
新たに「ベロシティコンプ」というイベントにしたほうが良いのかも知れません。
もし検討していただけるようでしたら、もう少し詳しく仕様を説明させていただきます。
よろしくお願いします。

ベロシティcomp/exp仕様

《計算式》 (V:変更前ベロシティ値)
V-S≧0の場合  (V-S)*Ru+S
V-S<0の場合  (V-S)*Rl+S
《パラメーター》
S:スレッショルド値(1~127)
Ru:upperレシオ値(0~1~∞)
Rl:iowerレシオ値(0~1~∞)

通常のオーディオコンプはスレッショルドを越えた部分だけに掛かるため、V-S≧0の場合だけなのですが、
MIDIの場合、ベロシティレイヤーで音色が変化する音のばらつきを抑える意味もあり、
lowerレシオを分けて処理した方がいいと思います。
Rl=1とすれば圧縮無しで、通常のコンプと同じ動作です。
Ru=0でリミッターとなります。
レシオを≧1にすることでエキスパンダーとなり、ばらつきを伸張する効果になります。
またアッパーをコンプ、ロワーをエキスパンダー(その逆も)という変態なこともできます。
そして範囲の絞込みなどと併用できると、より複雑なことができます。

以上、こんな単純な構造ですがどうでしょうか?


  • ん~、仮に式を受け付けるようになった場合、毎回その式を入れるのは、それはそれで面倒な気がしますね。 ベロシティコンプ機能の方が実装も楽ではあります(^^;詳細をお願いします。 -- たかぼー? 2009-08-15 (土) 14:57:21
  • 詳細ありがとうございます。レシオは上限が∞になっていますが、ベロシティなら上限127でも良いかなと思うのですが、どうでしょうか? ちなみにベロシティに限定しちゃって良いでしょうかね?CCのValue値にも適応出来るようにしておいた方が無難かなとも思ったのですが(機能名困りますが・・・「コンプレッサ」でいいか) -- たかぼー? 2009-08-15 (土) 21:52:13
  • レシオは圧縮の倍率なのでコンプ場合は0から1までの小数点です。エキスパンダーになると1以上で、理論上は無限大を指定できることになります。ですがアウトプットが上限127ですからレシオも有効値は127が最大値ではあります。CCのバリューにも掛けれる様にするといろいろ応用は利くかもしれませんね。確かにそういうソフトもありますが、私の経験上あまり使いません。名称はお任せします。オーディオと区別するためにMIDIコンプとかバリューコンプとか。 -- MM? 2009-08-15 (土) 23:28:24
  • ちなみに、パラメーターとして小数点を使いたくないということで、レシオをパーセント表示にしてるソフトも多いです。 -- MM? 2009-08-15 (土) 23:32:29
  • いろいろ了解です。CCにも出来るようにすると事故も増えそう(ベロシティだけ変えたいのにいつのまにかエクスプレッションも変わってた、とか)な気がしますのでベロシティだけのほうが良い気がしてきました。ちなみにこのページの上の方の「編集」ボタンを押すとソースを直で編集できますよ。 -- たかぼー? 2009-08-15 (土) 23:41:32
  • 編集できるのか!修正・加筆しておきました。 -- MM? 2009-08-16 (日) 09:29:18
  • 実装してみました~→http://takabosoft.com/beta/Domino137_dev005.ZIP イベントメニュー内から実行できます。 -- たかぼー? 2009-08-17 (月) 22:34:52
  • 確認しました。動作も一応問題無いようです。素早い対応ありがとうございました! -- MM? 2009-08-18 (火) 07:05:42
  • 横から失礼いたします。ベロシティコンプレッサに「Gain」機能を追加していただく事は可能でしょうか。単純に数値分を増減させる所謂「ベロシティシフト」です。「ノート選択~一括変更」で同様の編集ができますがベロシティに特化した部分ですので同じエディットウィンドウで処理できればと思った次第です。オーディオコンプでも「Gain」はありますので機能としての整合性もあると考えますが、以前より純粋に「ベロシティシフト」機能があった方が良いとも考えておりました。

    エクスパンド処理する場合を考えますと「InputGain」で最初に全体を下げる方向がダイナミクス稼ぎで有効かと思いますがアッパーコンプした場合は処理後の「OutputGain」が有効だと思います。ですのでコンプ処理に関係せず単独で都度適用される機能でも良いかも知れません。もしよろしければ御検討の程お願い申し上げます。 -- たーくん? 2009-08-18 (火) 09:49:41
  • 横レス失礼します。直接機能とは関係ないのですが、この上下にある機能と違って説明文に選択範囲のみということが明示されていないのがちょっと統一的でなく気になりました -- domin? 2009-08-18 (火) 11:56:05
  • 〒たーくんさん たしかに一般的なコンプにも入出力ゲインはありますね(http://www40.atwiki.jp/nicomc/?plugin=ref&serial=8)一緒にしちゃいましょうか。 InputGainでまずベロシティを補正してから、例の式を処理し、その結果をOutputGainで補正するんですよね。ゲインというとシフトというより掛け算をイメージしてしまうのですが、その辺は気にしなくて良いですね^^;   〒dominさん そこをチェックしてくださるとはうれしい限りです (^^) 修正しますね。 -- たかぼー? 2009-08-18 (火) 16:41:37
  • 御検討ありがとうございます!コンプ処理が掛け算ですのでゲインは足し算の方が解り易いのではないかと思います。ゲインはIn、Out両方あれば何も言う事ありませんー。こうなるとピークインジケーターも欲しい・・・・これは冗談です(笑)。 -- たーくん? 2009-08-19 (水) 02:03:59
  • 入出力ゲインやってみました!→http://takabosoft.com/beta/Domino137_dev006.ZIP -- たかぼー? 2009-08-19 (水) 23:16:55
  • 実装ありがとうございます。動作に問題ありませんしベロシティグラフで視覚的にも確認できるので便利です! (^^) -- たーくん? 2009-08-20 (木) 11:45:12