Csound

Csound
最新版
6.17.0 / 2022年2月2日 (2年前) (2022-02-02)
リポジトリ ウィキデータを編集
プラットフォーム クロスプラットフォーム
種別 音楽・音響開発環境
ライセンス LGPL
公式サイト csound.com
テンプレートを表示

Csoundはオーディオプログラミングのためのドメイン固有言語である。名称は、Csound以前の言語とは異なりC言語で書かれていることに由来する。

フリーソフトウェアであり、LGPL-2.1またはそれ以降のライセンスで利用可能である。

Csoundは、マサチューセッツ工科大学の Barry Vercoe によりMusic 11をベースに1985年に開発された。Music 11は、ベル研究所のマックス・マシューズが開発を主導したMUSIC-Nモデルに準じて、Vercoeが開発したものである。開発は1990年代から続いており、バス大学の John Fitch が主導している。バージョン5の文書化された最初のリリースは、2006年3月18日のバージョン5.01である。主な開発関係者は、Istvan Varga、Gabriel Maldonado(画像処理機能を追加した CsoundAV を開発)、Robin Whittle、Richard Karpen、Iain McCurdy、Michael Gogins、Matt Ingalls、Steven Yi、Richard Boulanger、Victor Lazzarini、Joachim Heintz である。

長年に渡って開発されてきたため、現時点で1700種類のユニットジェネレーターが存在する。Csound の利点はそのモジュール性とユーザーによる拡張性の高さにある。Csound は、MPEG-4 Structured Audio英語版の基礎となる言語であるStructured Audio Orchestra Language英語版(SAOL) と密接な関係がある。

Csound は2種類の特別な形式のテキストファイルを入力として使用する。orchestra ファイルは楽器の性質などを記述し、score ファイルは楽譜などの時系列パラメータを記述する。Csound はこれらのファイルにある命令群を実行し、音声ファイルを生成したり、リアルタイムで音声を出力したりする。

orchestra ファイルと score ファイルは XML タグを使って1つにまとめることも可能である(拡張子 .csd を持つ CSD ファイル)。そのような統合された Csound データファイルの例を以下に示す。これは、1kHz正弦波サンプリング周波数 44.1 kHz で1秒間鳴らすWAVファイルを生成するものである。

<CsoundSynthesizer>;
  
  <CsOptions>
    csound -W -d -o tone.wav 
  </CsOptions>
  
  <CsInstruments>
    sr     = 44100           ; サンプリング周波数
    kr     = 4410            ; 制御信号周波数
    ksmps  = 10              ; それらの比
    nchnls = 1               ; 出力チャネル数

    instr 1 
    a1     oscil p4, p5, 1   ; 単純な発振器
           out a1            ; 出力
    endin
  </CsInstruments>

  <CsScore>
    f1 0 8192 10 1           ; 正弦波を表すテーブル
    i1 0 1 20000 1000        ; 1kHzの音を1秒間発生させる
    e
  </CsScore>

</CsoundSynthesizer>

Csoundは、Csound 5 へのバージョンアップ時にかなりの改善と拡張がなされており、実質的にAPIによるソフトウェア・ライブラリーとなっている。基本となるC言語のAPIに加え、PythonJavaLISPTclC++Haskell (純粋関数からCsoundを制御できる) のAPIがある。 他の多くのプログラミング言語と同様、Csound で大きなプログラムを開発する場合、統合開発環境が役立つ。

フロントエンド: 統合開発環境と作曲環境

[編集]
  • Cabbage : Csoundのプログラムに JUCE英語版 ベースの GUI を付与することができ、VSTプラグインやスタンドアローンアプリとしてエクスポートすることも可能な統合開発環境。
  • CsoundQt : Csoundのプログラムに Qt ベースの GUI を付与することができる統合開発環境。
  • blue : Java で作られた、Csoundのための作曲環境。

関連項目

[編集]

外部リンク

[編集]