FoxDotの「超基礎」第一弾!「テンポ設定&サンプルを鳴らす&シンセを鳴らす」で遊び始めろ!

投稿日:2018-02-18



ナカジ(@cp_nakajun)です。

Python&SuperColliderで奏でる音楽ライブコーディング環境「FoxDot」について紹介し、インストールするとこまではできたと思います。

次は実際に音を出していきます。

その為のファーストステップ「超基礎」です。

公式サイトの「Getting Started:http://foxdot.org/start/」をベースにしていますが
僕の判断でその他のドキュメントからも必要なところもミックスしてます。

FoxDotの「超基礎」

今回は次の3点がメインになります。

  • サンプルファイルを鳴らす
  • SuperColliderシンセを鳴らす
  • テンポ(tempo)設定

そして、始める前に簡単に復習しておきます。

  • 実行:cmd + enter
  • オブジェクト停止:p1.stop() ※p1の場合
  • 全て停止:cmd + .

サンプルファイルを鳴らす

セットアップと同時にFoxDot標準のサンプルファイルがインストールされます。

このファイルは
/usr/local/lib/python3.6/site-packages/FoxDot/snd/
に置かれています。

鳴らし方は play(“”)です。例えば

d1 >> play("x-o-")

とすると「バスドラ、ハイハット、スネア、ハイハット」となります。

この「x」「-」「o」は上記ディレクトリーのフォルダー名(だと思います)。

角カッコ[]で囲むと同時に鳴ります。

丸カッコ()で囲むと順番に鳴るようになります。例えば下のパターンだと

d1 >> play("x-o(-xo)")
  1. バスドラ、ハイハット、スネア、ハイハット
  2. バスドラ、ハイハット、スネア、バスドラ
  3. バスドラ、ハイハット、スネア、スネア

のループになります。

SuperColliderシンセを鳴らす

とりあえず、最初はFoxDotのセットアップ時に同時に設定されるFoxDotのSynthDefsを鳴らす方法です。
(※オリジナルのSuperColliderのシンセを鳴らす方法は別途)

まず、どんなシンセがあるのかを見て見ましょう。

print(SynthDefs)

実行すると

‘loop’, ‘play1’, ‘play2’, ‘audioin’, ‘pads’, ‘noise’, ‘dab’, ‘varsaw’, ‘lazer’, ‘growl’, ‘bass’, ‘dirt’, ‘crunch’, ‘rave’, ‘scatter’, ‘charm’, ‘bell’, ‘gong’, ‘soprano’, ‘dub’, ‘viola’, ‘scratch’, ‘klank’, ‘ambi’, ‘glass’, ‘soft’, ‘quin’, ‘pluck’, ‘spark’, ‘blip’, ‘ripple’, ‘creep’, ‘orient’, ‘zap’, ‘marimba’, ‘fuzz’, ‘bug’, ‘pulse’, ‘saw’, ‘snick’, ‘twang’, ‘karp’, ‘arpy’, ‘nylon’, ‘donk’, ‘squish’, ‘swell’, ‘razz’, ‘sitar’, ‘star’, ‘piano’, ‘sawbass’, ‘prophet’

と表示されます。

これがとりあえず鳴らせるシンセの一覧です。

例えば使いたいSynthDefが “pluck”だった場合、オブジェクト “p1″を作成するには

p1 >> pluck()

となります。

シンセの鳴らし方を説明します。

p1 >> pluck([0,2,4], dur=[1,1/2,1/2], amp=[1,3/4,3/4])

音程(ノート)などの1ループは角カッコ[]で囲みます。

最初の[0,2,4]は音程です。後ほど説明しますがスケールの何番目かを表しています。

そのあとには「dur:長さ」「amp:音量」などのパラメーターが続きます。

選んだシンセがどんなパラメーターを持っているかを確認するにはSuperColliderのコードを読む必要があります。

print(pluck)

とするとpluckのSuperColliderのコードが表示されます。

サンプルを鳴らす時とは逆に
丸カッコ()で囲むと同時に鳴りつまり和音を鳴らすことができます。

テンポ(tempo)設定

テンポを設定する方法は

Clock.bpm = 144

です。

「cmd + enter」で実行します。

スケールの設定

個人的にこれ、FoxDotの特徴かなと思います。

標準のスケールを設定できます。

下のいづれかの方法で全体のスケールを設定できます。

Scale.default.set("minor")
Scale.default.set(Scale.minor)
Scale.default.set([0,2,3,5,7,8,10])

オブジェクト(トラック)ごとに設定することも可能です。

p1 >> pads([0,1,2,3,4,5,6,7],scale=Scale.minor)

また次回に

サポート募集中

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



ライブコーディング書籍がついにでました!

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

ウェブツール

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