連載MIDINES講座【中級1 矩形波!!】 [chiptune]
さて【初回のとりあえず鳴るまで】に続いて、MIDINES講座 第2回
今回はMIDINESの1chと2ch、
矩形波チャンネルについてお送りいたします。
最初に断っときますが、
「使い始めて数年になるのに未だに良く分からんパラメータ」
が何個かありますんで、ご了承ください。というか
誰か使い方教えて!!
....この記事、チップチューン知らない人には訳のわからない、
mckやってる人には既に知ってる、微妙な狭間ですよねー。
【そもそも論「矩形波とはどんな音か...」】
矩形波は+/-振幅の変化が瞬間的に行われ、
一定のレベルを保っているもので、
現実の楽器ではクラリネットが近いそうですね。
電気的には+と-を一定の周期で繰り返すだけなので
作りだすのも振幅の幅を変化させるのも単純です。
ファミコンにはこの矩形波が2つ搭載されており
CPU RP2A03の1pin側から出力される
主砲として大活躍されています。
ニンゲンの耳は波の振幅の形を音色として聞き分けます。
もっとも滑らかに聴こえるものがsin波。
これを基本として、どれだけのsin波を混ぜてその形に
なってるのかで音色の特徴が出てきます。(ざっくり)
矩形波はsin波から大雑把に作ると
「奇数倍の周波数で1/奇数振幅の波形」を
どんどん加算すると出てきます。
(Excelで作った糞グラフ参照)
この時、一番しっかり振幅している音を基音
その整数倍の速さで振幅している音を倍音といいます。
この辺りは、シンセをかじられた方には
釈迦に説法だと思います。
要するに何が言いたいかというと、
矩形波は回路上はすげぇ単純で素朴ぶってるけど
意外と裏では倍音てんこ盛りのエゲツネェ音で
耳にやさしくないんだぜって事です。
【矩形波の演奏例】
とりあえず、下の動画を見てください。
TanikuguのsgrmによるMIDINES矩形波の操作例です。
*"DELAY"は、ベロシティーで、
"DUTY MOD."はモジュレーションによるDUTY比の高速変化です。
【矩形波パラメータ】
矩形波には以下のパラメータがあります。
■Duty Cycle (CC1)
ご存知のように矩形波には12.5%,25%,50%,75%の4タイプのパターンがあり
MIDIのCC1(=モジュレーションホイール)によってコントロールできます。
000〜031 12.5%
032〜063 25%
064〜095 50%
096〜127 75%
音色の説明をしますと、50%矩形波は+/-の比が均等なのできれいに
聞こえます。(クラリネットに近い)12.5%は振幅の差があるため
「ビー」という毛羽立った音に聞こえます。(トランペットに近い)
25%と75%は波形が上下逆転しているだけで、聴覚上は同じ音に
聞こえます。
通常は音色として利用するだけですが、
単音がなっている間にCC1を変化させると振幅が複雑に変化し
ウネリを生みます。PWM音源すなー。
極めつけがファミコンポミニ4Timesチャンピオンの世界的変態天才
Chibi-tech氏による矩形波音声です。(MIDINESでは有りませんが)
これは美味い具合に倍音の位置をニンゲンの声帯の倍音に近づけて
実現してるんだと思います。
頑張ればMIDINESでもできる?
■Master Volume (CC7)
MIDIのCC7(=Volume)によって、矩形波チャンネルのボリュームを
変更することが可能です。
…といってもDTMクラスタの皆様には当たり前だろと言われそうですが
ADSRのような高級なエンベローブはありゃしませんので
単音の発生中に音量を自在に変更できる
Master Volumeは非常に強力な武器となります。
音量はノートONベロシティとMaster Volume値によって16段階から
決定されます。両方とも"127"の状態が100%の最大音量とすると
ベロシティとボリュームの合計減算量分音量が減る計算になります。
0以下になったら音はでません。
000〜007, -100.00%
008〜015, -93.33%
016〜023, -86.67%
024〜031, -80.00%
032〜039, -73.33%
040〜047, -66.67%
048〜055, -60.00%
056〜063, -53.33%
064〜071, -46.66%
072〜079, -40.00%
080〜087, -33.33%
088〜095, -26.67%
096〜103, -20.00%
104〜111, -13.33%
112〜119, -06.67%
120〜127, -00.00%
■pitch mod
ピッチを任意変化させるパラメータとしてCC8とPitchBendがあります。
・CC8 Fine pitch
いきなりですが、Fine pitchは難しくって使っていません。
そもそも、2A03は音の高い低いを出力周波数で設定しており、
その値のオフセットとして機能するのがFine pitchのようです。
しかし、現在の所判明している動作としては、
0→63に加算するに従い緩やかに音程がさがり
64になると急激に音程が上がり→127までラフに音程がさがっていく
というものです。
データ長、符号ビットの相違によるものと思われますが…
まだ運用に居たっていません。
Wayfarのページにもそれらしき記述はあり、1001〜1213が滑らかと
書いてあります。この数値のデータ長は2A03にて音程を操作する
タイマコントロールレジスタの11bitと合致しており、このデータ
レングスの送信が必要なのかもしれません。また高い音に使うと
よいとも書いてあります...
・pitch bend
ピッチベンドの方は、比較的簡単にピッチベンドとして働きます。
Wayfarによると、低い音に使うとよいと書いてありますが
実際は、低い音を上げる、高い音を下げる方向の操作はうまくいき
逆方向だと音がワープするケースが高いです。
(上端、下端でオーバーフローしてるんだと思います。)
■Volume Envelobe
・CC9 ノートの長さをコントロールします。
CC10(Loop Enbelope)がOFFであることを条件として発音長を
コントロールできるのですがそもそもノートのデュレーションで
コントロールできるので、存在意義が謎のパラメータです。
・CC10 Toggle OFF/ON pulse channel loop envelope
volume エンベローブのループを止めます。
・CC11 = Toggle OFF/ON volume Envelope disable
0〜63 = ON : 64〜127 = OFF
ONにすることで、矩形波の滑らかな減衰を行いますが
今の所、エンベローブの変化の早さがコントロールできておりません!!
いまだ使いこなせない機能の一つです....
■Mod Hack
・CC6 Mod Hack周期
・CC12 Toggle OFF/ON Modulate pulse channel
0-63=OFF 64-127=ON
Mod Hackのオン/オフを切り替えます。
Mod Hackとはオシレーターシンクに近い機構で、
CC6で設定した周期で、矩形波がスタートポジションに戻ります。
図にするとこういう。
どのような音色変化かは、操作例で聴いていただければと思いますが
Mod Hack周期を早くしていくと、元の音程をかき消して変調周期が
聞こえてきます。
やってる事自体は単純な気がしますが、mckでは出来ないんですかね?
■Sweep
・CC13 = SweepのOFF = 0〜63 ON = 64〜127
・CC14 = Sweep方向 尻下げ=0〜63 / 尻上げ 64〜127
・CC15 = Sweepスイープ中の音程を保ったまま、スイープ停止
・CC16 = Sweep量
スイープも効果のわかりやすく強力な機能です。
音程の音符ごとに尻上がり/尻下がりに変化させます。
たとえば長いノートに対して使用する場合、CC13 ONのタイミングで
スイープ開始位置をコントロールでき、途中で止める場合は
CC15が使用可能です。ピッチベンドのようにイベントを多く打たなくて
よいので、音色変化、SE用途で重宝します。
【その他】
あと、chiptuneといえば憑き物の高速アルペジエートですがMIDINESには
搭載されていませんので面倒な方はお手持ちのキーボードやらシーケンサの
アルペジエーターをお使いください。
まぁ、僕は「打てばいいやん」と思います。
そして、今回の記事を書くにあたって、ファミコンポミニ主催のK->さん及び
FPGAでNESを作成されてるpgateさんのAPU説明記事などに
お助けいただきました。
ありがとうございました!
んでは次回は、三角とノイズと難物DPCMです。
今回はMIDINESの1chと2ch、
矩形波チャンネルについてお送りいたします。
最初に断っときますが、
「使い始めて数年になるのに未だに良く分からんパラメータ」
が何個かありますんで、ご了承ください。というか
誰か使い方教えて!!
....この記事、チップチューン知らない人には訳のわからない、
mckやってる人には既に知ってる、微妙な狭間ですよねー。
【そもそも論「矩形波とはどんな音か...」】
矩形波は+/-振幅の変化が瞬間的に行われ、
一定のレベルを保っているもので、
現実の楽器ではクラリネットが近いそうですね。
電気的には+と-を一定の周期で繰り返すだけなので
作りだすのも振幅の幅を変化させるのも単純です。
ファミコンにはこの矩形波が2つ搭載されており
CPU RP2A03の1pin側から出力される
主砲として大活躍されています。
ニンゲンの耳は波の振幅の形を音色として聞き分けます。
もっとも滑らかに聴こえるものがsin波。
これを基本として、どれだけのsin波を混ぜてその形に
なってるのかで音色の特徴が出てきます。(ざっくり)
矩形波はsin波から大雑把に作ると
「奇数倍の周波数で1/奇数振幅の波形」を
どんどん加算すると出てきます。
(Excelで作った糞グラフ参照)
この時、一番しっかり振幅している音を基音
その整数倍の速さで振幅している音を倍音といいます。
この辺りは、シンセをかじられた方には
釈迦に説法だと思います。
要するに何が言いたいかというと、
矩形波は回路上はすげぇ単純で素朴ぶってるけど
意外と裏では倍音てんこ盛りのエゲツネェ音で
耳にやさしくないんだぜって事です。
【矩形波の演奏例】
とりあえず、下の動画を見てください。
TanikuguのsgrmによるMIDINES矩形波の操作例です。
*"DELAY"は、ベロシティーで、
"DUTY MOD."はモジュレーションによるDUTY比の高速変化です。
【矩形波パラメータ】
矩形波には以下のパラメータがあります。
■Duty Cycle (CC1)
ご存知のように矩形波には12.5%,25%,50%,75%の4タイプのパターンがあり
MIDIのCC1(=モジュレーションホイール)によってコントロールできます。
000〜031 12.5%
032〜063 25%
064〜095 50%
096〜127 75%
音色の説明をしますと、50%矩形波は+/-の比が均等なのできれいに
聞こえます。(クラリネットに近い)12.5%は振幅の差があるため
「ビー」という毛羽立った音に聞こえます。(トランペットに近い)
25%と75%は波形が上下逆転しているだけで、聴覚上は同じ音に
聞こえます。
通常は音色として利用するだけですが、
単音がなっている間にCC1を変化させると振幅が複雑に変化し
ウネリを生みます。PWM音源すなー。
極めつけがファミコンポミニ4Timesチャンピオンの世界的変態天才
Chibi-tech氏による矩形波音声です。(MIDINESでは有りませんが)
これは美味い具合に倍音の位置をニンゲンの声帯の倍音に近づけて
実現してるんだと思います。
頑張ればMIDINESでもできる?
■Master Volume (CC7)
MIDIのCC7(=Volume)によって、矩形波チャンネルのボリュームを
変更することが可能です。
…といってもDTMクラスタの皆様には当たり前だろと言われそうですが
ADSRのような高級なエンベローブはありゃしませんので
単音の発生中に音量を自在に変更できる
Master Volumeは非常に強力な武器となります。
音量はノートONベロシティとMaster Volume値によって16段階から
決定されます。両方とも"127"の状態が100%の最大音量とすると
ベロシティとボリュームの合計減算量分音量が減る計算になります。
0以下になったら音はでません。
000〜007, -100.00%
008〜015, -93.33%
016〜023, -86.67%
024〜031, -80.00%
032〜039, -73.33%
040〜047, -66.67%
048〜055, -60.00%
056〜063, -53.33%
064〜071, -46.66%
072〜079, -40.00%
080〜087, -33.33%
088〜095, -26.67%
096〜103, -20.00%
104〜111, -13.33%
112〜119, -06.67%
120〜127, -00.00%
■pitch mod
ピッチを任意変化させるパラメータとしてCC8とPitchBendがあります。
・CC8 Fine pitch
いきなりですが、Fine pitchは難しくって使っていません。
そもそも、2A03は音の高い低いを出力周波数で設定しており、
その値のオフセットとして機能するのがFine pitchのようです。
しかし、現在の所判明している動作としては、
0→63に加算するに従い緩やかに音程がさがり
64になると急激に音程が上がり→127までラフに音程がさがっていく
というものです。
データ長、符号ビットの相違によるものと思われますが…
まだ運用に居たっていません。
Wayfarのページにもそれらしき記述はあり、1001〜1213が滑らかと
書いてあります。この数値のデータ長は2A03にて音程を操作する
タイマコントロールレジスタの11bitと合致しており、このデータ
レングスの送信が必要なのかもしれません。また高い音に使うと
よいとも書いてあります...
・pitch bend
ピッチベンドの方は、比較的簡単にピッチベンドとして働きます。
Wayfarによると、低い音に使うとよいと書いてありますが
実際は、低い音を上げる、高い音を下げる方向の操作はうまくいき
逆方向だと音がワープするケースが高いです。
(上端、下端でオーバーフローしてるんだと思います。)
■Volume Envelobe
・CC9 ノートの長さをコントロールします。
CC10(Loop Enbelope)がOFFであることを条件として発音長を
コントロールできるのですがそもそもノートのデュレーションで
コントロールできるので、存在意義が謎のパラメータです。
・CC10 Toggle OFF/ON pulse channel loop envelope
volume エンベローブのループを止めます。
・CC11 = Toggle OFF/ON volume Envelope disable
0〜63 = ON : 64〜127 = OFF
ONにすることで、矩形波の滑らかな減衰を行いますが
今の所、エンベローブの変化の早さがコントロールできておりません!!
いまだ使いこなせない機能の一つです....
■Mod Hack
・CC6 Mod Hack周期
・CC12 Toggle OFF/ON Modulate pulse channel
0-63=OFF 64-127=ON
Mod Hackのオン/オフを切り替えます。
Mod Hackとはオシレーターシンクに近い機構で、
CC6で設定した周期で、矩形波がスタートポジションに戻ります。
図にするとこういう。
どのような音色変化かは、操作例で聴いていただければと思いますが
Mod Hack周期を早くしていくと、元の音程をかき消して変調周期が
聞こえてきます。
やってる事自体は単純な気がしますが、mckでは出来ないんですかね?
■Sweep
・CC13 = SweepのOFF = 0〜63 ON = 64〜127
・CC14 = Sweep方向 尻下げ=0〜63 / 尻上げ 64〜127
・CC15 = Sweepスイープ中の音程を保ったまま、スイープ停止
・CC16 = Sweep量
スイープも効果のわかりやすく強力な機能です。
音程の音符ごとに尻上がり/尻下がりに変化させます。
たとえば長いノートに対して使用する場合、CC13 ONのタイミングで
スイープ開始位置をコントロールでき、途中で止める場合は
CC15が使用可能です。ピッチベンドのようにイベントを多く打たなくて
よいので、音色変化、SE用途で重宝します。
【その他】
あと、chiptuneといえば憑き物の高速アルペジエートですがMIDINESには
搭載されていませんので面倒な方はお手持ちのキーボードやらシーケンサの
アルペジエーターをお使いください。
まぁ、僕は「打てばいいやん」と思います。
そして、今回の記事を書くにあたって、ファミコンポミニ主催のK->さん及び
FPGAでNESを作成されてるpgateさんのAPU説明記事などに
お助けいただきました。
ありがとうございました!
んでは次回は、三角とノイズと難物DPCMです。
コメント 0