« Mac OS X Tiger上にAVR-GCC環境を構築する@2006 | Main | Zaurusで英文音声合成 CMU Flite 1.3 releaseのZaurus向けパッケージ »

2006.09.18

Zaurusで音響生成プログラミング言語Csoundを使う

MITのBarry Vercoe教授によって1985年に書かれた音響生成用言語であるところのCsoundというものがある。
C言語で書かれたポータビリティの高いソフトウェアであり、各種環境で動く。
簡単に言うと、Csoundは、テキストファイル形式で書かれたソースコードを元に音声ファイルを吐き出す、超高機能なソフトウェアシンセサイザーだ。
例えば、こんな風に使う。

csound a.orc a.sco -oout; cat out>/dev/dsp

a.orcはオーケストラファイルといい、楽器を定義するもの。a.scoはスコアファイルといい、楽譜を記述するもの。
いずれもテキストファイルだ。それぞれ、所定の書式がある。
上記のコマンドラインでは、csoundがa.orcとa.scoを元にoutという音声ファイルをcsoundが吐き出し、それを/dev/dspに投げ込んで音を出す、といったことをやっている。

パッケージの入手

もちろん、こんなエントリを書くぐらいだから、Zaurus向けのパッケージが存在する。
elsi (embedded linux sodtware index)からCsoundsをもらってくる。
各種ROM用のパッケージがあるので、各々の環境に合わせたものを。
自分は純正ROMなので、Sharp Rom v1.32用のものをもらってきた。

試用してみる

パッケージをインストールすると、「csound」というコマンドが使えるようになる。
とりあえず、orcファイルとscoファイルを書く。しかし、書式が全然分からないので、先人のソースを拝借。
ググると一番上に出てくるWorld of Csoundさんのソースを使用。

study1.orc
study1.sco

カレントディレクトリに置き、以下のコマンドラインを実行。

csound study1.orc study1.sco -oout; cat out>/dev/dsp

すると、アスキーアートで波形が表示された後、outというファイルに音声ファイルが書き出される。それが/dev/dspに流し込まれて音が出る。

「out.mp3」をダウンロード

「-o」オプションの出力先を「-odevaudio」とすると、ファイルに書き出すこと無くそのまま再生してくれる。
ただ、Zaurusだと途切れ途切れになってしまうかも。

Scrn001

編集用モード

当然、Emacs用のメジャーモードが存在する。

Csound-x for Emacs

参考サイト(というかパクった)

音雑 (onzatsu) 〜everything makes noise〜

解説が分かりやすい。サンプルあり。

Csound-jp

Csound処方箋

Blackfin空挺団

|

« Mac OS X Tiger上にAVR-GCC環境を構築する@2006 | Main | Zaurusで英文音声合成 CMU Flite 1.3 releaseのZaurus向けパッケージ »