| 初回リリース | 1986年[1] |
|---|---|
| 安定リリース | 6.18.1 / 2022年11月24日[2] |
| リポジトリ |
|
| 書かれた | C |
| オペレーティング·システム | クロスプラットフォーム |
| ライセンス | LGPL-2.1以降 |
| Webサイト | ホームページ |
Csound は、オーディオ プログラミング用のドメイン固有の コンピュータ プログラミング言語です。Csound と呼ばれるのは、以前の言語とは異なり、 Cで記述されているためです。
これはフリーソフトウェアであり、LGPL-2.1以降で利用可能です。
Csound はもともと 1985 年にMITのBarry Vercoeによって書かれました。これは彼の初期のシステム Music 11 に基づいており、Music 11 はベル研究所のMax Mathewsによって開始されたMUSIC-Nモデルを踏襲していました。その開発は 1990 年代から 2000 年代にかけて続けられ、バース大学のJohn Fitchが主導しました。最初に文書化されたバージョン 5 のリリースは 2006 年 3 月 18 日のバージョン 5.01 です。多くの開発者がこれに貢献しており、特に Istvan Varga、Gabriel Maldonado、Robin Whittle、Richard Karpen、Iain McCurdy、Michael Gogins、Matt Ingalls、Steven Yi、Richard Boulanger、Victor Lazzarini、Joachim Heintz が有名です。
長年にわたり開発され、現在では約 1700 個のユニット ジェネレーターがあります。その最大の強みの 1 つは、完全にモジュール化されており、ユーザーが拡張できることです。Csound は、MPEG-4の構造化オーディオ拡張の基礎となる言語であるSAOLと密接に関連しています。
Csoundコード
Csound は、入力として 2 つの特別にフォーマットされたテキスト ファイルを受け取ります。オーケストラは楽器の性質を記述し、スコアはタイムラインに沿った音符やその他のパラメータを記述します。Csound はこれらのファイル内の指示を処理し、オーディオ ファイルまたはリアルタイム オーディオ ストリームを出力としてレンダリングします。
オーケストラファイルとスコアファイルは、マークアップ言語タグを使用して 1 つの構造化ファイルに統合できます(ファイル名拡張子が .csd の CSD ファイル)。以下は、96 kHz の サンプル レートで1 秒間の 1 kHzの正弦波トーンを含む波形ファイルを生成する統合 Csound データ ファイルの非常に簡単な例です。
<Csoundシンセサイザー>
<Csオプション>
csound -W -d -o トーン.wav
</Csオプション>
<CsInstruments>
sr = 96000 ; サンプル レート。kr = 9600 ; 制御信号レート。ksmps = 10 ; 制御信号あたりのサンプル数。nchnls = 1 ; 出力チャネルの数。
instr 1 a 1 oscil p4 , p5 , 1 ; オシレーター: p4 と p5 はスコアからの引数、1 はテーブル番号です。out a 1 ; 出力。endin </CsInstruments>
<CsScore>
f 1 0 8192 10 1 ; 正弦波を含むテーブル。組み込みジェネレータ 10 は正弦波の合計を生成しますが、ここでは 1 つだけです。i 1 0 1 20000 1000 ; 振幅 20000 で 1 kHz の 1 秒間を再生します。e </CsScore>
</Cサウンドシンセサイザー>
他の多くのプログラミング言語と同様に、Csound で長いプログラムを書く場合は、編集、プレビュー、テスト、デバッグのための統合環境を使用することで容易になります。現在公式にサポートされているのは CsoundQt で、自動コード挿入、統合ドキュメント ブラウザー、リアルタイムでパラメータをグラフィカルに制御するための統合ウィジェット、コードを再生するためのボタンなど、多くの機能を備えています。
Cサウンド5
バージョン 5.01 は、csound の最初のリリースから 20 年後の 2006 年 3 月 18 日にリリースされました。Csound 5 は、SourceForge Csound プロジェクトから Linux、Microsoft Windows、Mac OS X 用のバイナリとソース コードで入手できます。[3]元のソフトウェアに比べて大幅に改良および拡張されており、実質的にAPI付きのソフトウェア ライブラリになっています。さまざまなフロント エンドが開発されています。基本的なC APIに加えて、 Python、Java、Lisp、Tcl、C++などのバインディングもあり、純粋に関数型の環境から Csound を制御できる Haskellのバインディングも含まれています。
プラグインを使用すると、ユーザー定義のオペコードを元の言語の拡張機能として記述できるため、Csound コードを変更せずに機能を追加できます。LADSPAとDSSI はサポートされていますが、VSTサポートは削除されています。
MIDIによるリアルタイム パフォーマンスは1990 年代に追加されました。また、リアルタイム オーディオを制御するためのFLTKウィジェット (スライダーやノブなどを備えたグラフィカル インターフェイス コンポーネント) のサポートと、Python で記述されたカスタム グラフィカル インターフェイスの統合も追加されました。
Cサウンド6
Csound 6は、2011年にハノーバーで開催されたCsoundカンファレンスで機能が検討されて以来、開発が続けられてきました。Csound 6は2013年7月にリリースされ、現在はGitHubで公開されています。[4] Csound 6はAndroidでも利用可能です。Csound 6の主な新機能は次のとおりです。
- Csound 言語用の bison / flex ベースのパーサーが標準になりました。これは、Csound API 経由でアクセスできる抽象構文ツリーを生成します。その後、ツリーは APIを使用して Csound パフォーマンス ランタイムにコンパイルできます。したがって、ツリーがコンパイルされた後、Csound パフォーマンス ランタイムにコンパイルする前に、ユーザー コードでツリーを操作できます。または、ユーザーは別の言語から抽象構文ツリー全体を作成し、そのツリーを Csound パフォーマンス ランタイムにコンパイルすることもできます。
- 新しい組み込みの多次元配列タイプがあります。配列はインストルメントとオペコードに渡すことができます。配列に対して直接演算を実行できます。
- Csound 言語でユーザー定義型を使用できるようにする新しい型システムがあります。
- オーケストラは、パフォーマンスの実行中にいつでも再コンパイルでき、また個々の楽器もいつでもコンパイルできます。これにより、Csound パフォーマンスで真の「ライブ コーディング」が可能になります。
- Csound API が合理化され、簡素化されました。
- Csound は、パフォーマンス中に任意の数の CPU を同時処理に利用できます。これは、Csound コードを変更することなく行われます。これにより、ほとんどの Csound 処理が大幅に高速化されます。たとえば、1 つのコアで 100 秒でレンダリングされる作品は、4 つのコアで約 50 秒でレンダリングされるはずです。
- Csound は、テキスト文字列から直接オーケストラやスコアをコンパイルできるため、ファイル システムへの書き込みが許可されていない環境でも Csound を使用できます。
- 合成がサンプルのブロックで処理される場合でも、ノートなどのスコア イベントは、正確な時間をサンプルするようにスケジュールできます。
- 単一の値を返すすべてのオペコードは、オーケストラ言語の関数として使用できます。
- オーディオ分析ファイル形式はバイト順序に依存しません。
- 1 つのスコア ステートメントには複数の文字列パラメータを含めることができます。
- ほとんどの発振器オペコードは、テーブル番号が省略されている場合、内部の正弦関数テーブルを使用します。
- コマンドライン オプションは、Csound API を使用してプログラムで設定できます。
- Csound 内の多数の重複コード領域が合理化されました。
- HTML5 を使用して、ユーザー定義のグラフィカル ユーザー インターフェースと JavaScript ベースのアルゴリズム構成を提供する Android アプリが構築されました。
Csound 6 の開発は、John Fitch、Steven Yi、Victor Lazzariniが主導しました。
ライブパフォーマンスのためのCsound
現在、リアルタイムで生成できるのは Csound のスコアまたはノート イベントだけです (インストゥルメントは csound が最初に起動するときのコンパイル時にのみ定義できますが、Csound 6 ではこの制限はなくなりました)。サウンド プロセッサのセットはロード時に定義およびコンパイルされますが、個々の処理オブジェクトはリアルタイムで生成または破棄でき、入力オーディオはリアルタイムで処理され、出力もリアルタイムで生成されます。ノート イベントは、インストゥルメント インスタンス内の OSC 通信に基づいてトリガーしたり、MIDI によって生成したり、stdin に入力したりできます (ターミナルに入力するか、別のプログラムからテキスト ステートメントを送信します)。ライブ パフォーマンス ツールとしての Csound 5 の使用は、さまざまなサードパーティ ソフトウェアで強化できます。CsoundQt 内のライブ イベント シートを使用して、スコアをリアルタイムで変更できます。さらに、他のプログラミング言語へのインターフェイスを使用して Csound をスクリプト化できます。リアルタイム音楽合成におけるQtまたはPure Dataを使用したCsoundの使用を詳述した論文が、2012年のLinux Audio Conferenceで発表されました。[5] OunkプロジェクトはPythonとCsoundの統合を試みており、CsoundACはCsoundをバックエンドとして使用してPythonからアルゴリズム作曲を行う方法を提供しています。AudivationのCsound for Liveは、Ableton Liveでの使用に適したMax/MSPラッパーにさまざまなオペコードをパッケージ化しています。[6] [7] Csoundはモバイルシステム(iOS、Android)でも利用できます。[8]
子ども 1 人につき 1 台のラップトップ (OLPC)
Csound5は、 XO-1ラップトッププラットフォーム上のOLPCプロジェクトのオーディオ/音楽開発システムとして選ばれました。[9]
参照
参考文献
- ^ リチャード・ブーランジェ博士 - Csound との 30 年間: ルーツ、誕生、そして初期
- ^ 「リリース · csound/csound」. github.com . 2023年2月11日閲覧。
- ^ 「Csound | SourceForge.net」。
- ^ 「Csound | GitHub.com」。
- ^ Joachim Heintz. 「リアルタイム アプリケーションとしての Csound」(PDF)。Institute for New Music。
- ^ Peter Kirn (2011 年 10 月 15 日). 「Csound For Live wiki」. Create Digital Music.
- ^ Synthhead (2011年10月15日). 「Csound For Live が10月17日にリリース wiki」. Synthtopia.
- ^ S.イーとV.ラッザリーニ。 「Csound for Android」(PDF)。
- ^ 「OLPC wiki の Csound」。2010 年11 月 23 日閲覧。
さらに読む
- Richard Charles Boulanger 編 (2000)。The Csound Book: Perspectives in Software Synthesis, Sound Design, Signal Processing, and Programming。MIT Press。ISBN 978-0-262-52261-8。
- R. Bianchini、A Cipriani。(2000)。バーチャルサウンド。サウンド合成と信号処理。Csound による理論と実践。ConTempo sas ISBN 88-900261-1-1。
- Richard Charles Boulanger および Victor Lazzarini 編 (2011)。オーディオプログラミングブック。MIT 出版。ISBN 978-0-262-01446-5。この本は主に C 言語を使用してサウンドを直接プログラミングすることに関するものですが、Csound オペコードのプログラミングに関する章もいくつかあります。
- ジム・エイキン (2013)。 『Csound Power !総合ガイド』。Cengage Learning。ISBN 1-4354-6005-7。
外部リンク
- 公式サイト
