公開質問と回答


公開質問

2値ノイズの周波数対応について教えてください

o0cから指定する2値ノイズ周波数と、@n0~127で指定する2値ノイズの周波数の対応が知りたいです。対応表など明示いただけると非常に助かります。



回答済み

FMモジュール等について教えてください

c.s.1724以降に実装されているFMモジュールおよび音量スケールなどの使い方が知りたいです。

→ 2011/05/13現在、 http://std.name/flml/ にサンプルと記述方法があります。
 以下記述方法転載

2011/02/27 c.s.3255 実装内容

@14にモジュールFM (4オペ)を実装

新しい音量モード x2
96dBカーブで減衰する。1ステップ0.75dB

音色定義仕様

#OPM@音色番号 {
  パラメータ・・・(55個)
}
最初のカッコ { は #OPMと同じ行に書く必要がある。
各パラメータはスペース、カンマ、セミコロン、改行、タブのいずれかで区切られていれば良い。
@14-音色番号 で指定する。

#OPM@12 {
 /* AL FB */
  2, 8,
 /* AR DR SR RR SL TL KS ML D1 D2 AM*/
  13, 6, 2, 8, 1,26, 2, 1, 0, 0, 0,
  15, 8, 0, 8, 1,43, 1, 3, 2, 0, 0,
  21,14, 0, 8, 2,34, 0, 1, 0, 0, 0,
  18, 3, 0, 8, 2, 0, 1, 1, 1, 0, 1,
 /* 以下省略可 */
 /* OM */
  15,
 /* WF LFRQ PMD AMD */
  0, 0, 0, 0,
 /* PMS AMS */
  0, 0,
 /* NE NFRQ */
  0, 0,
}

#OPN@音色番号 {
  パラメータ・・・(51個)
}
 DT2を省いたバージョン

#FMGAIN [gain]
 [gain]・・・ -127 ~ 127 で指定する。 127で+20dB。-127 で -20dB デフォルトは 91(+14.3dB)
音色番号は 0 から 127 までの 128個と思われる。
OPN指定は OPM用に用意された音色バンクへ DT2を 0 にして定義するようです。
つまり、トータル128個のうち、OPN音色番号とOPM音色番号、排他的に指定する模様。
(OPNで128個、OPMで128個、トータル256個ではない)
加えて、MML側でのハードLFOパラメータ操作コマンド @mh も用意されている。
@mh[w],[f],[pmd],[amd],[pms],[ams],[s]
[注]c.s.3255のFMモジュールでは・・
OPMエンジン側のADSRエンベロープを使うため、@14には@e1などが無効化されています。
また、
x0 線形音量スケール(単純倍率 振幅 @v/127 倍 )
x1 dB音量スケール(@vの1段階あたり0.375dB)
x2 dB音量スケール(@vの1段階あたり0.75dB)
について、
@14 ではこれらのスケール指定にかかわらず、@vの値をTLに設定するらしく
x0,x1,x2いずれでも @v は1段階あたり 0.75dB で変化するようです。
x0,x1,x2 の指定は、@x のエクスプレッション指定には従来の仕様通りに作用する模様。
16段階のvは、内部で128段階の @v に変換 (v * 8 + 7) するようなので、
現状では @14 の @v が 0.75dB/step に固定されている都合、0.75dB * 8 = 6dB単位での
変化となり、かなり大きく変化するようなので注意が必要です(PSGでも3dB/step)。


音量コマンド

今はvelocity・expression2つの音量コマンドがありますが、volumeはないのでしょうか。
→ありません。現状velocityがvolumeです。(2011/02/06)

EGなどによる音量変化が16段階になるモード

FCやPSGライクな音を鳴らすため。エンベロープの出力がカクカクした形になる感じ。
  →多段エンベロープで再現可能です。

FC音源三角波のキーオン時のプチノイズ除去

FC音源三角波(@6)にて、休符をはさんで音量0からキーオンで立ち上がる際、プチノイズが頻繁に発生
→FC音源の記事によると…
 三角波は、キーオン時に波形位置がリセットされない。
 三角波がキーオフするとき、周波数が0Hzの状態になり、波形は出力し続ける。
 そのため、キーオン・キーオフ時にプチノイズが出ないようになっている。
とのことですが、ピコカキコでキーオン時にプチノイズが発生するということは何らかの原因で位相の引き継ぎが出来ていない可能性が考えられるので、位相引継ぎについて再度確認していただけますでしょうか?
  →現状すべてのオシレータはノートオン時に位相がリセットされます。(2011/01/05)
  → Rev.38797~変位0から始まるFC三角波が実装されています。

表現の難しい音長への対応案

現状、1tickが384分音符換算で、@qの単位は2ticksだと思います。すると384を整数で割り切れる音符が基本の音長になるため
384,192,128,96,64,48,32,24,16,12,8,6,4,3,2,1
これらが有効な基本音長で、付点が許されるのは付点に応じた倍率のticks数が整数の時に限られると思います。
この場合、9連符に相当する36分音符など、割り算の都合上作るのが難しい音符がどうしても発生します。
全ての音長に同時に対応することは難しいと思います。
そこで、1tickを何分音符と見なすかをユーザー定義できるようにして、tick計算に対応する@qも何tick倍単位にするかも定義できるようにすることで、あらゆる音長に対応できるようにすることはできないでしょうか?
たとえば、1tick=144分音符とユーザー定義できた場合
144,72,48,36,24,18,16,12,9,8,6,4,3,2,1
これらが有効な音長になり、一般的ではありませんが3連符基調の曲に限ればこれで足りてしまうと思われます。
この場合の@qの単位は1tickとしたい所です。
  →現状連符は {} で記述する事が出来ます。{cdecdfcdg}1 と書くと9連符で演奏する事が可能です。(2011/01/21)
  →連符指定時、9連符など、1つの音符が整数tick数にならない場合の内部処理の仕様(まるめの方法)はどうなっていますでしょうか?
  →たとえば {cdefgfedc}1 と記述された場合、合計で384tickになるように均等に分割します。この場合は はじめから順に43,42,43,43,42,43,43,42,43tickになります。(2011/02/20)
  →難しい音長表現で当面利用したかったのは36分音符が3つ続くパターンでしたので、{cde}12などとしてみて、もし不測の不都合が発生した場合再度書き込みに来たいと思います(2011/3/11提案者)

ローカルで動かす

機能要望ではないただの質問なのですが、どこに書いていいか分からなかったのでここに。
http://flmml.codeplex.com/releases/view/60734#DownloadId=206917 からDLしたswfをローカルで動かした場合と、ニコニコ大百科で導入されているものでは以下のMMLの挙動が異なる(eからcになめらかに移行するMML。ピコカキコではLFOが適切にt120で2秒、t60で4秒かかるが、ローカルだとテンポを変えてもLFOが2秒から変わらない)のですが、
@e1,0,0,127,0 q16 @0 o6

t120
@L200,384,-1,0,1,0 d1 @L0,0 c1

t60
@L200,384,-1,0,1,0 d1 @L0,0 c1
ローカルで動かすには他に何か必要なのでしょうか。
 →Rev.3250で修正されました。(2011/02/27)


タグ:

+ タグ編集
  • タグ:

このサイトはreCAPTCHAによって保護されており、Googleの プライバシーポリシー利用規約 が適用されます。

最終更新:2011年05月14日 01:02
ツールボックス

下から選んでください:

新しいページを作成する
ヘルプ / FAQ もご覧ください。