在宅勤務で暇なので、音楽制作を始めてみようと思います。

皆さんこんにちは。 Seevaです。

重いムードなこのご時世

さて、最近「例の」ウィルスで街が大変なことになっていますが、自分も例外ではなく、今週から在宅勤務が始まりました。 在宅勤務とはいえ、自分の仕事はお客様に場所と技術を提供するもので、お客様が来なければ基本的には仕事がありません。 この「例のウィルス」騒ぎで仕事が飛びまくってるので、実際には仕事がないのが現状です。 見かねた会社がメンテナンスとしての半日出社を認めてくれ、もう半日は在宅勤務という名の待機をしておけと言うことになりました。 ただ、在宅勤務()を無駄に過ごしても仕方ないので、何か自分の為になる様な事を始めたいなぁと思っていました。

そこで、\\\音楽制作を始めてみようと思いました!///デデーン

なんで?と思っておられる方が大半かと思い増すが、一応普段は音楽に関わる仕事をしており、 出来れば音に関係ある事で勉強できたら良いなと思っておりました。 また、最近ライブコーディングという分野がある事を知り(元々知ってはいたのですが)、それに興味がわいたので今回やってみるという形です。

そろそろ本題です。

今回は、SuperColliderという言語を使って音楽制作をしてみたいと思います。 SuperColliderという「言語」という言葉に引っかかった方も多いかも知れません。 そうです。今回はプログラミングを使って音楽制作をしてみようと思います。 とはいえ、そもそもプログラミングと音楽制作がなかなか結びつかない方も多いかと思います。まずは、下のYouTubeリンクをご参照ください。

www.youtube.com

このYouTubeの動画内は、観客の前で実際にプログラミングをする「ライブコーディング」というものを実際にやっています。 男性がプログラミングをする事で、音や映像が切り替わります。そのリアルタイム性、インタラクティブ性はDJやVJのそれにも似ていますね。

さて、どうする?

プログラミング言語と聞くと、C言語JAVAなど、最近ではPython等思い浮かばれるかも知れません。 確かに、元々ソフトウェアなどを作るために汎用的に設計されているプログラミング言語を使えば実際に音楽制作を行う事が可能なのですが、それらを実際のソフトウェアとして動かすためにはコンパイルという作業が必要となります。 ありがちな説明ですが、プログラム自体はコンピュータの動作を人間が考えるための設計図であるため、実際にコンピュータにその動作を指示するにはその設計図を実際にコンピュータが扱える状態に変換しなければいけません。これがコンパイルです。 先の例の様にリアルタイムにコーディングをし、それを(瞬時に)コンパイルして、実際のソフトウェアとして動かす=音にすると言うことは汎用的なプログラミング言語には想定されていません。 そこで、音楽制作用のプログラミング言語=音響プログラミング言語が存在する訳です。

選択肢

ライブコーディングが可能な音響プログラミング言語は幾つかあります。 その中でも他者と比べ見た目に大きく違う言語がMaxとPureDataです。

cycling74.com

puredata.info

この2つは、音響プログラミング言語でありながら、完全テキストベースではなく、GUIを使ったプログラミング言語となっています。 このプログラミング言語では、それぞれ固有の動きをする関数を、それらが持つ引数を線同士でつなげながらプログラミングを行う、という形をとっているため視覚的でわかりやすいです。 ただ、その取っつきやすさの反面、整理整頓が難しく、他人の作ったプログラムだと解読困難な場合があったりもします。 (それはどのような言語にも言える事ではあるのですが・・・)

さて、それに対して今回使用するSuperColliderは完全にテキストベースです。

supercollider.github.io

SuperCollider自身のIDE(開発環境)は、他のプログラミング言語IDEのようにプログラムを実際に記述するエディター部と、それを実際に実行するコマンドライン部、そしてヘルプなどを表示させる部分の3つに別れています。 普段プログラミング言語を使ってプログラムを書いている人にはかなりなじみの環境なのでは無いかと思います。

これらの他にも、最近だとSonic Piという初心者向けのものや、Ableton LiveというDAWライクのもの、Common Lisp MusicやFAUSTというニッチな物もありますが(詳しく知りたければList of audio programming languages - Wikipediaを参照してください)、今回はPythonSuperColliderを動かすTidal Cyclesというものを導入していこうと思います。

前置きが長い

ここまで枕が長くなってしまいましたが、これ以降は次回。 実際にTidal Cyclesをインストールをして、音が出せたらなぁと思っています。

それではさようなら。