投稿動画
編集記事
大幅に加筆したもののみ。赤字は今週のオススメ記事に選ばれたものです。
ピコカキコ
投稿したピコカキコ
はオススメピコに選ばれたことがあるものです。一発ネタ・修正前・解説用・SEなどは載せていません。
※表の「ほめられ数」は2023/10/15時点のもの
ピコカキコメモ
ピコカキコは一歩踏み込んだ内容になると途端に知識やデータが少なくなる(気がする)ので、自分なりに色々調べてまとめてみた。
ブログ記事
FM音源(モジュールFM)について
FM音源については、
- 極めろ!シンセ音色研究所(外部リンク):「Enter」→「Laboratory」→「シンセ音源研究室」
- さけかんわーくす(外部リンク):「果物使いのためのFM音源温故知新」の項目の(1)~(4)
- YAMAHA DX7(YAMAHA公式サイト、外部リンク):「サポート・お問い合わせ」のタブ→「DX7 オペレーティングガイドブック」
を読めば大まかな内容はわかるはず。
ピコカキコでの使い方・パラメータ詳細は、
- FlMML(CodePlex、外部リンク):「DOCUMENTATION」→「モジュールFM」
- FM音源とは(外部リンク)
- VAL-SOUND(外部リンク):「START」→[Sound works]の「FM-Sound Library」内にプリセット
を参考にする。
パラメータについて
#OPM@番号 {
AL FB
AR DR SR RR SL TL KS ML DT1 DT2 AMS /*M1 → OP1*/
AR DR SR RR SL TL KS ML DT1 DT2 AMS /*C1 → OP2*/
AR DR SR RR SL TL KS ML DT1 DT2 AMS /*M2 → OP3*/
AR DR SR RR SL TL KS ML DT1 DT2 AMS /*C2 → OP4*/
(OM以下省略)
}
とあり、AL FBの下に同じパラメータが4行にわたって記述されている。これらは通常オペレータ(以後OP)と呼ばれていて1行1行が正弦波を出力する装置のようなものである。CodePlexの解説では上からM1、C1、M2、C2とあるが、ここではOP1、OP2、OP3、OP4とする。理由は後述。
OPは単体だと単に正弦波を出力するだけだが、OP同士を繋げることで複雑な波形を作ることができる。繋ぎ方はAL(アルゴリズム)で決める。
繋ぎ方によってOPはモジュレータかキャリアのどちらかになり、
オペレータ(OP) | |
OPの下に別のOPが繋がっている? | |
Yes ↓ |
No ↓ |
モジュレータ(M) 繋がっているOPの波形を変調する |
キャリア(C) 波形を音として出力する |
という感じで分類する。この方法が正しいかはわからないが、今のところこれで問題ないのでまあいいや。
ALによってモジュレータとキャリアの数や繋ぎ方が違う。なのでOP1~4のパラメータそのままで他のALに変えた時、必ずしも似た音になるとは限らない。
モジュールFM(OPN)のパラメータを自分が理解できるようにした表 OPMよりパラメータの少ないOPNのみ、OM以下は省略可なので省略。 |
||
---|---|---|
AL | OPの繋ぎ方を決める。繋ぎ方によってかなり複雑な波形を作ったり複数の正弦波を組み合わせた音を作ったりできる。詳細は以下。 上記外部リンクにも載せたさけかんわーくすの「果物使いのためのFM音源温故知新」(外部リンク)の(3)と(4)を見ればこの図を理解できるはず。 パラメータのところであったM1,C1,M2,C2というのはアルゴリズム4を基本としているからそう書いてあるっぽい?ちなみにアルゴリズム4はOP1と3がモジュレータ、2と4がキャリアとなっている。 |
|
FB | OP1が自分自身を変調する回数。(回数?変調の量?)数字が大きくなるとその分音色も変わる。モジュレータが増えたようなものなので、FBが無いときよりも音色を更に変化させることができる。 数字を大きくするとOP1の波形が正弦波からノコギリ波に近くなる。TLの値が小さいときにFBの値を5~7にするとOP1の波形が途端にノイズのようになる。変調される側もノイズのような音になる。 |
|
以下、モジュレータとキャリアで違う動作をするのでそれぞれに分けて説明する | ||
モジュレータ | キャリア | |
AR | 時間的に変調量を変えるので、フィルタエンベロープ(@e2)のような働きをする。とりあえずキャリアに近い値に設定しておいて後から調整していくと楽。 | 音量エンベロープ(@e1)の働きをする。なのでモジュールFMを使用するトラックは@e1の記述が必要ない。 |
DR | ||
SR | ||
RR | ||
SL | ||
@e1・e2で設定するA,D,S,Rはそれぞれこの項目のAR,DR,SL,RRにあたる。SRはディケイの後に更にディケイを追加するようなもので、@eで同じようなことをするには多節エンベロープを使用する(参考:ピコカキコ:VCAエンベロープで遊ぶ)。 | ||
TL | 変調量。歪みエフェクタのゲイン設定のような感じで、派手な音にしたい時は数字を小さく、こもった・丸い音にしたい場合は数字を大きくする。 127だと変調しない。 |
音量。キャリアが1つだけの場合は通常0(音量最大)のままで良い。キャリアが2つ以上なら作りたい音を妄想しつつ兼ね合いを考えて適当に変える。127だと無音。 |
KS | - | - |
ML | 数字を大きくしていくと繋がっているOPの波形が複雑になる。 | 1だと音程そのままで音が鳴る。2でオクターブ上、4で2Oct上、8で3Oct上、0で1Oct下。 (周波数440Hzの音なら0で220Hz、1で変わらず、2で880Hz、3で1320Hz、以下略) |
DT1 | - | - |
AMS | - | - |
音作りで特に重要なのはモジュレータのTLとML。 アルゴリズムを変えてキャリアの設定を終えたらまずこれらを先にいじって大体の音のキャラクターを決めてしまう。 |
その他
- 「o5 a」で書きだすと音がバグるので、「o5 @d0 a」という感じでコマンドをはさむと大丈夫らしい。(ピコカキコについて語るスレ#1013より)
- パラメータはモジュールFM以外のコマンドの設定の仕方と大体逆。(例えばv・@vでは数字を大きくすると音量も大きくなるが、モジュールFMのTLでは数字を小さくすると音量が大きくなる。)
- 音作りをする場合は、
#OPN@0 {
から設定すると楽な気がする。ちなみにこの状態で@0 @e1,0,0,127,0とほぼ同じ音。
0 0
31 00 00 15 00 127 0 01 0 0
31 00 00 15 00 127 0 01 0 0
31 00 00 15 00 127 0 01 0 0
31 00 00 15 00 000 0 01 0 0
}
ファミコン・ゲームボーイ音源について
FC音源・GB音源の記事を読んで分かったようで分かっていないことをまとめてみる。
※内容が古いです(2015/05/02現在)。その内書きなおします。
FC | GB | |
---|---|---|
音色 | 矩形波x2、三角波、ノイズ、DPCM @5、@6、@7・@8、@9 |
矩形波x2、波形メモリ、ノイズ @5、@10、@11・@12 |
エンベロープ | 矩形波・ノイズは音量最大から減衰のみ @e1,0,x,0,0 または @e1,0,0,127,0(xは任意数) |
矩形波・ノイズは音の立ち上がり音量も指定可能 @e1,0,x,0,0または@e1,x,0,127,0(xは任意数)(?) |
三角波は音量・エンベロープ変更不可 @e1,0,0,127,0で固定、曲の途中で音量変更(v15→v8など)はダメ |
波形メモリは音量変更可だがエンベロープは不可 @e1,0,0,127,0で固定、曲の途中で音量変更(v15→v8など)は可能 |
|
ソフトウェアエンベロープを使用することで自由なエンベロープにすることが可能。 | ||
定位 | モノラル @p64固定 |
ステレオ @p1・@p64・@p127(左、中央、右)の3つから選べる |
FC三角波は「@6」だけだと発音時にプチプチというノイズが入るので「@6-1」と書くと良い。(ピコカキコについて語るスレ#809、ピコカキコ:サンプル音色データベースについて語るスレ#61より)@2に関しても同様。
サンプル数最大1024の波形メモリ(@13)について
ピコカキコについて語るスレ#872-877の流れを頼りにして作成した手順を以下のブログ記事に記載しています。
上記内容に沿って作ったピコ↓
DPCMについて
DPCM変換することによって、wavデータの波形をピコカキコで使用することができる。ただし変換することによってこもった感じのざらざらとした音になる。主にドラム音やワンショット波形などで使用する。wavデータは自分で用意してコンバータで文字列に変換して使う。詳しくはarche氏のユーザ記事のDPCMコンバータの項目や、ごちゃ氏のブログ「ピコカキコ - WAV9で音階付きメロディ楽器を鳴らす方法・ポイント・仕組み」(外部リンク)、「ピコカキコ向けに高音質なDPCMを用意する手順(私的メモ)」(外部リンク)参照。
- wavデータは音量0dBに近づけておかないとかなり「もさぁ…」として元の音があまり聴こえないことがある。また、1秒以内(?)にしないと変換エラーになる。変換する際サンプリングレートの数値を上げるとより音がクリアになるが、文字数も多くなる。そのため、複数の波形を使う場合は文字数制限(65535文字)に注意する。
- 違う音程で記述しても同じ音しか鳴らないが、LFO(@l)を使うことにより音程を変えることができるようになる。ティンパニやオーケストラヒット、スラップベースなどで使うと便利。私の場合は設定を@l3600,0,2か@l2400,0,2としていますが結構適当。振幅(@l直後に書いてある3600や2400の部分)の値を変えることでピッチを調整することができる。
- 変換すると、「#WAV9 [n],数字2ケタ,0,文字列~」と変換結果が出るが、この内「文字列」の直前の0は、1に変えるとワンショットからループへの切り替えとなるので、持続音としても使用することができる。ストリングスやSuperSaw波形などで使うと便利。この場合、使用するwavファイルは音程高めで0.9秒台にしておくとループの不自然さが薄れる。ただし、ループ時にすごいプチプチ音が入って使い物にならなかったりすることがある。プチプチ音を確実に除く方法は不明。
- SuperSaw波形の場合、NexusというVSTiの体験版(現在は配布していない?)から作るとなぜかうまく作れることがある。
MMLの書き方
初めてMMLを書く方は戸惑うと思うので、私がMMLを書く時に気をつけていることを書いてみました。
私の場合、基本的に「他人が読んで理解できるようにするにはどうすればいいか」を意識するよう書いています。「別に人に見せようと思って書いてねーし!」と言う人もいるかもしれませんが、こうすることで自分が数か月後に読み返す時でもぱっと理解することができるでしょう。
私の書き方以外を参考にしたい場合は、今週のオススメピコの記事のピコカキコを参考にするといいです。
ピコカキコを投稿したレスに飛んで、「元ネタにしてピコカキコ」のボタンをクリックしてソースを見られます。
ちなみに私がピコカキコを始めた時に主に参考にさせていただいたユーザは、もっちょ氏、Ag氏、OffGao氏の3名の書き方です。
1小節ごとに半角スペース1つ分あける
スペースを入れずに書くと小節の区切りがわかりにくいため、後に修正する場合など探すのに時間がかかってしまう。
そのため、1小節ごとに半角スペースを入れることによって小節の頭がどこにあるかわかりやすくなる。
↓
また、小節を挟んでタイやスラーがある場合も、以下のように「&」の後に半角スペースを入れる。
1小節に32分音符や64分音符がたくさんあって1行が長くなる場合は、1拍ごとにスペースを入れることもある。
数小節ごとに改行する
文字列が横に長くなると、いちいち横にスクロールしなくてはいけなかったり、1小節の途中で次の行に表示されることがあるので、ある程度の長さで改行する。目安として、長くても80文字くらいで改行するようにする。これで2~4小節で1行になる。
全音符や2分音符が続く場合は4~8小節くらいで改行することもある。
L16 c4>b8.<c>bre4er a4g8.agrc4cr d4dd-deg-rgrardr gg-gabb-b<cdd-d>bgfd>b
↓
L16 c4>b8.<c>bre4er a4g8.agrc4cr
d4dd-deg-rgrardr gg-gabb-b<cdd-d>bgfd>b
展開の変わり目に空行を1行入れる
Aメロ、Bメロ、サビなどの展開が変わる場所に1行空行を入れる。
/:4r1:/
/:8r1:/
/:8r1:/
Q12O6L8
/:
/:e&f+e&f+&g+r:/r2
/:e16c+c+c+16/>a<://>a b.bb16g+<er4.
:/d+ >b16bbb16<e>br4.O6
/:
Q15g+4e4d+4Q12ee d+c+d+e2e /
Q15a4e4c+4Q11c+c+ Q12c+d+eQ15d+4.r4
:/Q15a4e4c+4e4 >b2r2L16Q13
/:
/:r2b8.br4:/ r1 /b8.b8bg+8<e8>r4.
:/b8rb8b<d*e16&e16>b8r4.
音名と休符を小文字、それ以外のコマンドを大文字にする
↓
トラック記号は1行に単独で記述する
文字の一番最後にトラック記号を入れると、どこでトラックが切り替わっているかわからないことがある。
そこで、トラック記号を1行に単独で書くことによってわかりやすくする。また、トラックと次トラックの間に1~2行空行を入れると、より見やすくなる。
マクロ定義の場合はこのやり方だと逆に見づらくなることがあるので、状況に応じて書き方を変えるとよい。1行で終わるマクロ定義が何個もある場合など。
L4 cderfgarb<cdefgab
cderfgarb<cdefgab
cderfgarb<cdefgab;
cderfgarb<cdefgab
cderfgarb<cdefgab
cderfgarb<cdefgab;
↓
L4 cderfgarb<cdefgab
cderfgarb<cdefgab
cderfgarb<cdefgab
;
cderfgarb<cdefgab
cderfgarb<cdefgab
cderfgarb<cdefgab
;
マクロは分かりやすい名前にする
音色定義などで1回しか使わない場合は長い名前にしてもいいですが、頻繁に使う場合はなるべく短めにした方が入力するのが楽になる。
マクロを定義したら、コメントで何に使うものかを書いておく。引数がある場合はその意味も書く。
$Bass_Sound=@3 @E1,0,6,114,6 Q12 @V90 O3; /*ベース音色*/
$Oct_F{%note}=/:4 %note8<%note8> :/; /*オクターブフレーズ(全音符分) %note:音名*/
$K=@2 @E1,0,0,225,9,0,0 @L3700,110,2 Q15 @V127 O1 f; /*キック*/
$S=@11 @E1,2,13,0,0 @V64 Q14 O1 c; /*スネア*//*ベース*/
$Bass_Sound
$Oct_F{c} $Oct_F{f} $Oct_F{g} $Oct_F{c}
;
ループを見やすくする
複数行にわたってループする場合、ループの始点と終点を1行単独にする。そしてループの中の文字列は半角スペース2つ分字下げする。(先頭に半角スペースを2つ入れる)こうすることにより、ループの中の文字列がどこかパッと見でわかるようになる。
↓
/:
□□b4g+4f+4g+4 f+ef+g+2g+
□□g+4f+4e4 ef+g+f+&2
:/
/*半角スペースの代わりに「□」を使っています(表示がうまくいかないため)*/
ループの中に更にループがあった場合は、字下げした状態で更に半角スペース2つ分字下げする。
/:3/:/:abe:/>ebg+:/:/
↓
/:3
□□/:
□□□□/:abe:/ >ebg+
□□:/
:/
/*半角スペースの代わりに「□」を使っています(表示がうまくいかないため)*/
途中でループを脱出した後に別のコマンドを書く場合は、ループの終点のすぐ後ろにコマンドを書く。また、ループ脱出記号「/」の前後は、スペースを1つずつ入れる。
/:3
□□/:
□□□□/:abe:/ / >ebg+
□□:/>eber
:/
/*半角スペースの代わりに「□」を使っています(表示がうまくいかないため)*/
波形定義はソースの最後に書く
波形定義の文字列は長くなることが多いので、ソースの先頭や途中に書くとスクロール量が多くなって鬱陶しいくなることが多い。また、これは頻繁に文字列を変更するものではないので(せいぜい波形番号くらい)、記述の一番最後に書く。
定義の前にはコメントで何の音の波形か書いておくとわかりやすくなる。
(色々な記述)
/*ピアノ*/
#WAV13 0,~
/*ストリングス*/
#WAV13 1,~
/*スネアドラム*/
#WAV9 0,67,0,~
トラックを擬似ステレオ化する
トラックを擬似ステレオ化することで音に広がりを出すことができる。やり方は以下の通り。
↓
/*擬似ステレオ*/
$TEST=@2-1 @E1,0,0,127,0 O6 L4 cdefgfedcegec2r2; /*音色とフレーズ*/
@P32 $TEST; /*定位左寄り*/
@P96 @D-3 r128 $TEST; /*定位右寄り、ピッチを少し下げる、少し発音を遅らせる*/
また、定位の値を変えることでステレオ感を調整することができる。
$TEST=@2-1 @E1,0,0,127,0 O6 L4 cde2;
/*開始直後は中央から音が鳴り、徐々に左右に音が散る*/
@P64 $TEST @P46 $TEST @P28 $TEST @P10 $TEST@P1 $TEST;
@P64 @D-3 r128 $TEST @P82 $TEST @P100 $TEST @P118 $TEST@P127 $TEST;
私の場合、恋愛サーキュレーションのコーラスや、ハッピーシンセサイザのベースでこの方法を使用しています。
音量コマンド(v・@v)の上限以上に音量を上げる方法
コマンドのv・@vでは音量に上限があるが、@e1のサスティンの数字を大きくすれば上限以上に音を大きくすることをできる(@e1,0,0,180,0とか)。音量が小さいDPCMなどで有効。ただし、この方法を使う時は、投稿されている他のピコカキコを参考にして程々に調整する。また、やりすぎると音が割れるので注意。
減衰音を作りたい時は「@E1,0,0,250,40,0,0」のように多節エンベロープを使用する。(参考:ピコカキコ:VCAエンベロープで遊ぶ)
他の方法として、1トラックをマクロで定義し、それを2つ置けばそれだけで音量が上がる(>>21さんより)。こちらも程々に調整する。
この方法は手軽にできるが、トラックが増える分動作が重くなるので、トラック数が少ない時に使うとよい。トラック数が少なくても4オペレータFMやフィルタを使っているとそれだけで重くなるので、状況に応じて使うかどうかを判断すること。
※サスティンレベルを127より大きくする場合のアタックとディケイについて
サスティンレベルを127より大きくする場合にアタック、ディケイを0より大きくすると、思い通りの音量変化にならないことがある。以下がその例。
- @e1,40,0,180,0→40tickかけて音量が0から127になり、アタックタイムが終わると音量180になる。
- @e1,0,40,180,0→40tickかけて音量が127から180になる。
- @e1,0,0,180,40→音量180で発音し、発音が終わると40tickかけて音量が180から0になる。
ある音だけやたら耳につく時の対処法
別のトラックで同時に同じ音程やオクターブ違いの音が鳴るとやたら耳につくことがあるので、トラックごとにデチューン(@d-5~5程度)させるとある程度緩和される。またはその部分だけ音量を下げるという小手先の方法もアリ?
その他
- LFOは曲の頭だけで定義して頭出しするとそのトラックがバグった感じの音になるので頭出し直後にまた設定してやる必要がある。頭出しに関してはピコカキコ:基礎コース(2級)のテンポ用無音トラック作成のススメの項目を参照。
- 主旋律がしょぼいと思った時は、以下の内容のように少し凝ったことをやるといい感じになることがある。
- {}(連符)や/:記述;/@x30 r16.:/(トラック終了コマンドを挟んだディレイ設定)とかの後にマクロ定義すると正常に再生しないので、これらを使う場合はなるべく記述の頭の方に書く。
- 三角波(@2、@6)の発音時のプチプチ音が気になる場合、「@2-1」や「@6-1」のように「-1」をつける。
- ゲートタイムを「q16」とした時、「cde」のように休符を挟まず連続して発音すると、発音時にプチノイズがのる時がある。この場合は「q16 @q1」と指定するとよい。
- 「V」と「@V」コマンドの対応:V[n] = @V(n×8+7) →V0の場合は@V7と同等となり、音量が0になるわけではない。
- ピコカキコの最大文字数:65535文字
- ピコカキコの最大行数:2048行
他のユーザの方々が書いたTips
他の方々が書かれたTipsです。とても役に立ちます。
ピコカキコする際にあると便利なソフトとか音源とか
私が使っているものです。現在はほとんど表の上3つしか使用していません。
Macでの動作は不明。リンクは貼らないので興味がある方はググって下さい。
打ち込み | FlMML2WAV | いちいち大百科のエディタを開かなくてもオフラインで使用・内容を保存可。ピコカキコエディタのデフォルトと同じく、フォント名は「_typewriter」、フォントサイズは「14」にしておくと都合が良い。 ピコカキコエディタと違い、一時停止ができない・リドゥアンドゥができない・非アクティブ時に音切れがする、などの欠点もある。アンドゥ対策としてバックアップ用ファイルを作ってたまにそちらにも保存しておくと良い。音切れは自分の環境だけかも? |
耳コピ支援 | WaveTone | 耳コピの他にも目コピやテンポ解析、音出しもできる。参考動画。 |
音きりす | 音を可視化して上下(周波数)、左右(定位)、前後(音量)のうち、聴きたい部分だけ切りだすことができる。主に定位の確認に使用。 | |
音出し | Rainbow Keyboard | PCキーボードを鍵盤として扱える。 |
音源(VSTi) | Synth1 | シンセ音源。LFOやフィルタエンベロープの音の目安を取る時に使用。参考動画。@0~4、@w、@e1、@f、@e2、@lの参考に。 |
Magical 8bit Plug | ファミコン風音源。@5~8をを使うときの参考に。 | |
Chip32 | 波形メモリ音源。ゲームボーイっぽい音(@10)を作りたい時の参考に。 | |
VOPM | 4オペレータのFM音源。@14の参考に。 | |
FM音源エディタ | Hautbois / sccwave氏が製作。これだけスタンドアローン。周波数スペクトルやオペレータの波形を見ながら音作りできる。@14の参考に。 | |
VSTホスト | SAVI Host | 上記VSTiは単体で使うことができませんが(DAWなどを介して開く)、これだとスタンドアローンと同じように開くことができます。 |
仮想MIDIケーブル | MIDI York | PC内でソフト間を繋ぐための仮想ケーブル。自分はRainbow KeyboardとSAVIHostを接続するときに使用。 |
ASIOドライバ | ASIO4ALL | キーボードを叩いてから音がなるまでの遅延を詰めてくれる。必要性を感じなければ入れる必要はない。 |
波形編集 | SoundEngine | 打ち込んだ音源の音の1周期分を取る際に使用。@13の波形メモリ用。ピコカキコ以外でもよく使う。 |
バイナリエディタ | Stirling | @13の波形メモリを作る際に使用。SoundEngineで作った1周期分のファイルを突っ込めば16進数表示するので、該当部分をコピーすればそのまま使える。 |
ピコカキコ(FlMML)用ツール
今までに書いたものと重複しているものがあります。外部リンクも含まれます。
- FlMML2WAV
- DPCMコンバータ
- DPCMコンバータ(外部リンク)
- DPCM変換器 for FlMML
- Ag氏作。
- FlMML on HTML5
- Ag氏作。FlMMLをJavaScriptに移植されたとのことです。
- FM音源エディタ(外部リンク)
- V1MML(外部リンク)
- LDrive氏作。鳴っている音を鍵盤で表示してくれます。Macで利用可。youtubeの動画(外部リンク)。
- MMLプレーヤーの再生位置修正(Greasemonkey用スクリプト)
- サクラエディタ用シンタックスカラーリングファイル
参考記事
ピコカキコ関連記事の一覧を参照。
一部削除された記事(もしくは編集履歴)で役に立つものがあったので、Internet Archiveのリンクも載せておきます。リンク先でのピコカキコの再生などは行えません。
外部リンク
ピコカキコを作っていて嬉しかったこと
作曲者ご本人に認知された上にアドバイスも頂けたこと。こういう事もあるんだなと思いました(小並感)。
ツイートを読み込み中です
https://twitter.com/higedriver/status/158919566095941632
ツイートを読み込み中です
https://twitter.com/higedriver/status/158920843521572870
- 38
- 0pt