Csound

Csound - オーディオプログラミングのためのドメイン固有言語



Csoundは音声合成の分野で広く使われている、オーディオプログラミングのためのドメイン固有言語(DSL)です。その名は、C言語で実装されていることに由来し、他の言語とは一線を画しています。フリーソフトウェアとして公開されており、LGPL-2.1またはそれ以降のライセンスのもとで利用できます。

この言語は1985年にマサチューセッツ工科大学のBarry Vercoeによって開発されました。彼のプロジェクトは、ベル研究所の音楽家Max Mathewsが提唱したMUSIC-Nモデルに基づいています。Csoundの開発は長年にわたり続けられ、1990年代からはバス大学のJohn Fitchが指導しています。最初の公式リリースは2006年3月18日に行われたバージョン5.01です。

Csoundでは、1700を超えるユニットジェネレーターが存在するため、多様な音作りが可能です。特にそのモジュール性の高さとユーザーによる拡張性は大きな特徴です。また、MPEG-4 Structured Audioの基礎となるStructured Audio Orchestra Language(SAOL)との密接な関係も注目されます。

Csoundは、音楽的な処理を行うための2種類の特別なテキスト形式、すなわちorchestraファイルとscoreファイルを使用します。orchestraファイルでは楽器の特性を定義し、scoreファイルでは演奏時の時間的なパラメータを設定します。これらの命令は、音声ファイルを生成するか、あるいはリアルタイムで音声を出力するために実行されます。

さらに、orchestraファイルとscoreファイルを統合したCSDファイル(拡張子.csд)として1つのファイルにまとめることも可能です。以下に、1kHzの正弦波を44.1kHzのサンプリング周波数で1秒間鳴らすサンプルコードを示します。

```plaintext


csound -W -d -o tone.wav


sr = 44100 ; サンプリング周波数
kr = 4410 ; 制御信号周波数
ksmps = 10 ; それらの比
nchnls = 1 ; 出力チャネル数
instr 1
a1 oscil p4, p5, 1 ; 単純な発振器
out a1 ; 出力
endin


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


```

Csoundは、バージョン5への移行時に大幅な機能強化が行われ、APIによる利用が可能になりました。これにより、C言語にとどまらず、PythonやJava、LISP、Tcl、C++、Haskellといった他のプログラミング言語でも使用できるAPIが用意されています。大規模なプログラムの開発においては、統合開発環境(IDE)が非常に役立ちます。

主なフロントエンドとしては、以下のようなツールが存在します。
  • - Cabbage: JUCEベースのGUIを持つCsoundプログラム用のIDEで、VSTプラグインやスタンドアロンアプリとしてのエクスポートが可能です。
  • - CsoundQt: QtベースのGUIを持ち、Csoundのプログラムを視覚的に操作できます。
  • - blue: Javaで開発された、Csound専用の作曲環境です。

関連項目としては、Cross-platform対応のライブラリであるOpenMusicや、音響信号処理、ソフトウェア・シンセサイザーなどが挙げられます。

さまざまな開発リソースや公式サイトも用意されており、プログラミングの知識があればCsoundを十分に活用することができるでしょう。興味のある方は、ぜひ試してみてください。

もう一度検索

【記事の利用について】

タイトルと記事文章は、記事のあるページにリンクを張っていただければ、無料で利用できます。
※画像は、利用できませんのでご注意ください。

【リンクついて】

リンクフリーです。