to top page
2013-04-09
SoX でメロディを作る
引き続きこちらを参考にやってみたが、今日はわからないことばかり。
- SoX, SoXI, soxformat マニュアルページ日本語訳

6弦ギターの開放弦を順に鳴らすシェルスクリプト。
    $ for n in E2 A2 D3 G3 B3 E4; do
        play -n synth 4 pluck $n repeat 2; done

ギターのチューニングに使えるよう、各弦を4秒☓3回ずつ鳴らしている。
play はコマンドラインから音声を再生できる SoX のコマンド。
周波数の指定に、E2、A2、などの国際記号を使っているが、♯や♭の付け方がわからない。
音を保存する方法もわからなかった。
コマンドを sox に変え、-n オプションのあとに出力ファイル名を書いたのでは、最後の EA しか保存されない。

bend エフェクトを使う。
    $ sox -n bend.ogg synth 2.5 sin 440 gain -14 bend .35,180,.25 .15,740,.53 0,-520,.3

bend はピッチを変化させるエフェクトだが、これも理解できなかった。
パラメータの値を適当にいじれば自由にメロディができるはずだが、値によってエラーになる。そのルールがわからない。

わからなまま終わるのは残念なので強引に1本作ってみる。
以下のコマンドで音符1個ずつの音を作る。
    sox -n 01.ogg synth 0.6 sin G3
    sox -n 02.ogg synth 0.3 sin E3
    sox -n 03.ogg synth 0.3 sin F3
    sox -n 04.ogg synth 0.9 sin G3
    sox -n 05.ogg synth 0.3 sin G3
    sox -n 06.ogg synth 0.3 sin A3
    sox -n 07.ogg synth 0.3 sin C4
    sox -n 08.ogg synth 0.3 sin G3
    sox -n 09.ogg synth 0.3 sin D4
    sox -n 10.ogg synth 0.3 sin C4
    sox -n 11.ogg synth 0.3 sin A3
    sox -n 12.ogg synth 0.6 sin G3


できた12個の音を次のコマンドで1本にまとめる。
    sox 01.ogg 02.ogg 03.ogg 04.ogg 05.ogg 06.ogg 07.ogg 08.ogg 09.ogg 10.ogg 11.ogg 12.ogg natsu.ogg

♪ うのはなのにおうかきねに


クリップ音が入ってるので、素材の音を作るさい、次のように fade エフェクトでフェードインアウトさせてみる。
    sox -n 01.ogg synth 0.6 sin G3 fade 0.1 0.6 0.1
    sox -n 02.ogg synth 0.3 sin E3 fade 0.1 0.3 0.1
    sox -n 03.ogg synth 0.3 sin F3 fade 0.1 0.3 0.1
    ....


スタッカートみたいだが、クリップは消えたからよしとする。