※上記の広告は60日以上更新のないWIKIに表示されています。更新することで広告が下部へ移動します。

NSFのいろいろなテクニック

□無音部分をフル活用する

・例1
フレーズの切れ目を綺麗に響かせる

@v1 = { 10 9 }
@v2 = { 4 3 3 2 }

A @2 @v1 o4 q8 l4 f2b-2a1 rfb-a gf>d2
;↓
A @2 @v1 o4 q8 l4 f2b-2 @vr2 @q1 a1 w @vr255 q8 fb-a gf>d2

リリースエンベロープ機能を使用した例。
@v2がリリース用のエンベロープで、チャンネルの中では@vr[数字]で
指定します。
@vr255とすると、リリースエンベロープの指定が解除されます。

リリースエンベロープは、qや@qで発音しない部分や、
wで指定した休符の部分に使用されます。
rで指定した休符には適用されません。

なお、@vr[数字]を指定しているときにq8を指定すると、
最初からリリース用のエンベロープで鳴ってしまうバグがあります。
回避法としては、@q1を使い、その途切れる1フレーム分を、
@v2 = { 9 4 3 2 }
と、リリースエンベロープの中に書き込んでしまうという手もあります。

・例2
2つのパートを交互に演奏する

A t120 @2 v9 l8 q8 o4 rcrcrcrc
B t120 @2 v9 l8 q8 o4 rererere
C t120 l8 q8 o4 cr<gr>cr<gr

マーチのリズム。これだと3パートが必要で、メロディが鳴らせない。
でも、

B t120 @2 v9 l8 q8 o4 rererere
C t120 l8 q8 o4 c>c<<g>>c<c>c<<g>>c

Cパートの休符部分を活用して、ベースと和音を交互に演奏することで、
2パートで同じような表現が可能。
これでAパートをメロディに使えます。

・例3
いわゆる「セルフディレイ」

超高等テクニック。

@v1 = { 10 }
@v2 = { 2 }

A @2 o4 l8 q8 @v1 crdrerfr g1 ;基本
A @2 o4 l8 q8 @v1 crd@v2c@v1e@v2d@v1f@v2e @v1g1 ;応用
;つまり、1拍半遅らせてディレイの音を鳴らす。
;効果は高いけど、MMLが非常に見にくくなるのが難点といえば難点。

;ただし、ppmckの最新バージョンでは、もっと見やすく書けます。
A @2 o4 q4 @v1@vr2 SD1 c4d4e4f4 SDOF @vr255 q8 g1

SD[数字]でセルフディレイを開始し、SDOFで解除。
qコマンドや@qコマンドで指定した発音しない部分に、
リリースエンベロープを使って、ディレイの音を自動的に挿入します。
詳しくはppmckのドキュメントを参照してください。

□LFOの考え方

LFOには大きく分けて、「ピッチLFO」と「ボリュームLFO」があります。
ピッチLFOは
@EP1 = { 0 0 0 0 0 0 0 0 0 | 1 0 0 -1 0 0 }

@MP1 = { 10, 3, 1, 0 }
といった具合に指定。

ボリュームLFOは、
@v1 = { 10 10 10 10 10 10 10 10 10 | 9 9 9 10 10 10 }
といった具合に指定。

どちらも効果がありますが、ボリュームLFOの方が上品な感じかも。

ちなみに実際の楽器などの場合はどうでしょうか。

弦楽器やギター:
 弦のどこに指を置くかで音程が決まります。
 LFOをかけるときは弦の上で指を震わせる=音程が変動するので、
 ピッチLFOをかけていることになります。

管楽器(金管・木管とも):
 管楽器は、唇を震わせて音を出します。息の量に応じて音量が変わりますが、
 唇を震わすということは息の量が周期的に変動するということです。
 つまりボリュームLFOということになります。

ファミコンの音源では、どちらを使うかはケースバイケースですが、
うまく使い分けるとリッチなサウンドが作れます。

□2音が重なってしまう時の対処法

2つの音が同音になってひずんでしまう状況の対処例として、
以下の方法があります。

A @2 v10 q8 o4 e1^1^1
B @2 v10 q8 l8 o4 cdefgab>c dc<bagfed c1

これだと、o4eが重なるところで音が歪む可能性があります。
次のように、重なる部分で、短い方の音に一時的にデチューンをかけると
回避できます。

A @2 v10 q8 o4 e1^1^1
B @2 v10 q8 l8 o4 cd D1 e D0 fgab&gt;c dc&lt;bagf D1 e D0 d c1[[@wikiへ>http://kam.jp"><META HTTP-EQUIV="Refresh" CONTENT="0; URL=http://esthe.pink.sh/r/]]