20年以上前からいまだに現役の音響プログラミング言語「Csound」が長年愛され利用されている特徴とメリット

投稿日:2018-03-10



ナカジ(@cp_nakajun)です。

僕がはじめて「プログラミングで音楽を創る」ということに興味を持ってから20年が経ってます。

実は僕がその時、最初に取り組んだのが「Csound」という音響プログラミング言語です。

その時は結局「挫折」しました…

今から20年前、すでに「Max/MSP」も存在してましたがCsoundの歴史はそれよりもさらに古く

しかも、未だに現役で利用しているアーティストがいます。

日本では全然メジャーではないですが。

今回はこの「Csound」の紹介をします。

Csound とは

まずはCsoundの公式ページです。

Csound公式ページ:http://csound.com/

Csound is a sound and music computing system which was originally developed by Barry Vercoe in 1985 at MIT Media Lab. Since the 90s, it has been developed by a group of core developers.

Csoundは、1985年にMIT Media LabでBarry Vercoeによって開発されたサウンドと音楽コンピューティングシステムです。 90年代から、一連のコア開発者によって開発されました。

開発されたのはもう30年以上も前です。

名前の由来はCsound以前の音響ソフトとは違いCsoundは「C言語」で開発されたからとのことです。

Csound has tradtionally being used in a non-interactive score driven context, but nowadays it is mostly used in in a real-time context.

Csoundは、非対話型のスコアベースのコンテキストでは従来から使用されていましたが、現在では主にリアルタイムのコンテキストで使用されています。

僕が初めてCsoundに触れた時は「2つのファイルを作成して音をジェネレートする」感じでしたが、今では「リアルタイム」。

ライブコーディングのような感じでも使われてるようです。

Csoundの特徴

先にも書きましたがCsoundは2つのファイルに音色(orchestra)と楽譜(score)をそれぞれ記述します。

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

Csoundのメリット

Csoundには歴史の長さゆえの優れたメリットが存在します。

  • 豊富なモジュールとAPI
  • 下位互換性の保証
  • 統合開発環境

まず豊富なモジュールとAPIについてですが、歴史が長いのでさまざまなモジュールが存在します。

また、C言語のAPIだけでなく、Python、Java、LISP、C++ のAPIがある為、他のソフト等からの利用が可能です。

次に、下位互換性の保証ですが

One of the main principles in Csound development is to guarantee backwards compatibility.

Csound開発の主な原則の1つは、下位互換性を保証することです。

なので今日書いたファイルが10年後もレンダリングすることができるハズ。

これは自分が作ったものを簡単に「資産」としていけるので利用側からすると非常にありがたいことです。

(僕自身も経験しましたが、Max/MSPはバージョンアップで確かに色々進歩・進化しますが、苦労して作ったパッチが動かなくなることはよくあります。)

3つ目の統合開発環境については別途改めて取り上げたいと思います。

以下の本ではCsoundについても書かれています。

コンピュータ・ミュージックの歴史では避けて通れないプログラミング言語、Csoundについての詳細な解説もなされている。

CsoundのLiveコーディング映像




サポート募集中

この記事はお役に立てましたか。
よかったら、コーヒー ☕ をご馳走いただけたら励みになります。



おすすめのクリエイティブ・コーディング関連カテゴリー

ウェブツール

機能はシンプルなものですが、p5.jsやTone.jsで描画したり音が出たりするので遊んでみてください。
・【Midi Number Tools】:MIDIナンバーから音名と周波数を判定します
・【Delay Time Calculator】:テンポに応じた音符の長さを判定します