スライド資料
Strudelで音を鳴らす
今回からいよいよStrudelの使い方を学んでいきます。まず始めに、Strudelで音を鳴らす方法を学びましょう。Strudelでは公式のチュートリアルが用意されていて、そこに従って進めていくと、簡単に音を鳴らすことができます。本日はそのチュートリアルを一緒に進めていきましょう。
参考映像
ドラムマシン (リズムマシン) について。
Jeff Mills Exhibitionist 2 Mix 3
Roland TR-1000 Rhythm Creator | Egyptian Lover Performance
16 Legendary Beats – A short history of the 808 | Drum Patterns Explained
A short history of the 909 in 16 songs from TECHNO and HOUSE to POP | Drum Patterns Explained
この動画で紹介されているTR-808を使用した曲のプレイリストをSpotifyで作成してみました!
コードフィールド
このワークショップは、インタラクティブなコードフィールドで構成されています。まず、その使い方を学びましょう。以下がその例です。
sound("casio")
- 上のテキストフィールドをクリックします
- ctrl+enter を押して、音を再生します
- casio を metal に変更します
- ctrl+enter を押して、変更を反映します
- ctrl+. を押して、演奏を停止します
おめでとうございます。これでライブコーディングの準備が整いました。
サウンド
先ほどは sound を使って、このように音を再生しました。
sound("casio")
casio は、標準で用意されているサウンドの一つです。
他のサウンドも試してみましょう。
insect wind jazz metal east crow casio space numbers
サウンドの読み込みに、少し時間がかかる場合があります。
: を使ってサンプル番号を変更する
一つのサウンド名には、複数のサンプル(オーディオファイル)が含まれている場合があります。
サウンド名の後に : と数字を追加すると、サンプルを選択できます。
sound("casio:1")
いろいろなサウンドとサンプル番号の組み合わせを試してみましょう。
数字を追加しない場合は :0 を指定したのと同じです。
これで、さまざまなサウンドを使い分ける方法を学びました。
ここでは、あらかじめ用意された少数のサウンドのみを使用しますが、後ほど独自のサウンドを読み込む方法も学びます。
ドラムサウンド
Strudelには、デフォルトで豊富なドラムサウンドが用意されています。
sound("bd hh sd oh")
これらの文字は、ドラムセットの各パートを表します。
– bd = bass drum
– sd = snare drum
– rim = rimshot
– hh = hihat
– oh = open hihat
– lt = low tom
– mt = middle tom
– ht = high tom
– rd = ride cymbal
– cr = crash cymbal
さまざまなドラムサウンドを試してみましょう。
bank を使うと、ドラムの音色(ドラムマシン)を変更できます。
sound("bd hh sd oh").bank("RolandTR909")
この例では RolandTR909 が使用しているドラムマシンの名前です。
これはハウスやテクノのビートで有名な、歴史的なドラムマシンです。
RolandTR909 を以下のいずれかに変更してみてください。※ ( ) 内は省略した表記。
- AkaiLinn (linn)
- RhythmAce (ace)
- RolandTR909 (tr909)
- RolandTR808 (tr808)
- RolandTR707 (tr707)
- ViscoSpaceDrum (viscospacedrum)
ドラムマシンは他にもたくさんありますが、ここでは話をシンプルに進めます。
- Pro-Tip: 名前をダブルクリックで選択し、コピー&ペーストしましょう。
シーケンス
前の例で見たように、スペースで区切ると複数のサウンドを順番に再生(シーケンス再生)できます。
sound("bd hh sd hh")
現在再生中のサウンドは、コード内でハイライト表示されます。また、画面下部にも視覚的に表示される点に注目してください。
シーケンスにさらにサウンドを追加してみましょう。
シーケンスが長いほど、再生速度は速く
sound("bd bd hh bd rim bd hh bd")
シーケンスは、サイクルという単位の中に収まるように再生されます。1サイクルの長さは、デフォルトで2秒です。
< .. > で囲み、サイクルに合わせる
先ほどと同じシーケンスですが、今回は < .. > (山括弧)で囲まれています。
sound("<bd bd hh bd rim bd hh bd>")
こうすると、シーケンス全体が1サイクルに収まるように再生されます。この括弧を使う利点は、シーケンス内の音を追加したり削除したりしても、テンポが変わらない点です。
このままでは非常に遅いですが、次のようにして速く再生できます。
sound("<bd bd hh bd rim bd hh bd>*8")
この *8 は、全体の再生速度を8倍にすることを意味します。
待ってください。これは < … > を付けずに *8 を指定した場合と同じではないでしょうか。なぜ、わざわざこのような記法が必要なのでしょう。
その通りです。この記法の重要な点は、シーケンス内の音を追加・削除してもテンポが一定に保たれることです。ぜひ試してみてください。
最後の数字を変更して、テンポを変えてみましょう。
setcpm でテンポを変更する
setcpm(90/4)
sound("<bd hh rim hh>*8")
cpm = cycles per minute(1分あたりのサイクル数)
デフォルトのテンポは毎分30サイクル(30cpm)です。これは1サイクルが2秒であることを意味し、一般的なBPM表記では 120/4 に相当します。
西洋音楽の用語に詳しい方向けに説明すると、上記の例はBPM90の4/4拍子における8分音符のシーケンスです。しかし、これらの専門用語を知らなくてもStrudelで音楽は作れますので、ご安心ください。
– または ~ でシーケンスに休符を追加する
sound("bd hh - rim - bd hh rim")
[角括弧] でサブシーケンスを作成する
sound("bd [hh hh] sd [hh bd] bd - [hh sd] cp")
角括弧の中に、さらにサウンドを追加してみましょう。
全体のシーケンスと同様に、サブシーケンスもその中の音符が均等に分割されて再生されます。
乗算 (*): 速度を上げる
sound("bd hh*2 rim hh*3 bd [- hh*2] rim hh*2")
乗算 (*): サブシーケンスを速くする
sound("bd [hh rim]*2 bd [hh rim]*1.5")
乗算 (*): さらに速くする
sound("bd hh*32 rim hh*16")
非常に速いリズムは、音の高さ(ピッチ)のように聞こえます。
[[二重角括弧]] でサブ・サブシーケンスを作成する
sound("bd [[rim rim] hh] bd cp")
角括弧は、好きなだけ深く入れ子(ネスト)にできます。
カンマ (,) でシーケンスを並列再生する
sound("hh hh hh, bd casio")
カンマは好きなだけ使えます。
sound("hh hh hh, bd bd, - casio")
カンマはサブシーケンスの中でも使用できます。
sound("hh hh hh, bd [bd,casio]")
上の2つが同じ結果になることに気づきましたか?
同じ音楽的なアイデアを、複数の方法で表現できることはよくあります。
バッククォート(`…`)で複数行を記述する
sound(`
bd*2, - cp,
- - - oh, hh*4,
[- casio]*2
`)
サンプル番号をまとめて指定する
これまでのようにサンプル番号を一つずつ指定する代わりに、
sound("jazz:0 jazz:1 [jazz:4 jazz:2] jazz:3*2")
n 関数を使うと、より簡潔で読みやすいコードになります。
n("0 1 [4 2] 3*2").sound("jazz")
まとめ
ここでは、TidalCyclesのリズム言語であるミニノーテーションの基本を学びました。学習した内容は以下の通りです。
コンセプト | 構文 | 例 |
---|
シーケンス | スペース | sound(“bd bd sd hh”) |
サンプル番号 | : | sound(“hh:0 hh:1 hh:2 hh:3”) |
休符 | – または ~ | sound(“metal – jazz jazz:1”) |
サイクル内均等再生 | <> | sound(“<bd hh rim oh bd rim>”) |
サブシーケンス | [] | sound(“bd wind [metal jazz] hh”) |
サブ・サブシーケンス | [[]] | sound(“bd [metal [jazz [sd cp]]]”) |
速度アップ | * | sound(“bd sd*2 cp*3″) |
並列再生 | , | sound(“bd*2, hh*2 [hh oh]”) |
ミニノーテーションは、通常は何らかの関数と組み合わせて使用します。これまでに登場した関数は以下の通りです。
名前 | 説明 | 例 |
---|
sound | 指定した名前のサウンドを再生する | sound(“bd sd [- bd] sd”) |
bank | サウンドバンクを選択する | sound(“bd sd [- bd] sd”).bank(“RolandTR909”) |
setcpm | テンポを1分あたりのサイクル数で設定する | setcpm(45); sound(“bd sd [- bd] sd”) |
n | サンプル番号のシーケンスを作成する | n(“0 1 4 2 0 6 3 2”).sound(“jazz”) |
作例
基本的なロックビート
setcpm(100/4)
sound("[bd sd]*2, hh*8").bank("RolandTR505")
クラシックなハウス
sound("bd*4, [- cp]*2, [- hh]*4").bank("RolandTR909")
この2つのパターンは、非常によく似ています。
特定のドラムパターンが、ジャンルを超えて使い回されることはよくあります。
We Will Rock You
setcpm(81/2)
sound("bd*2 cp").bank("RolandTR707")
Yellow Magic Orchestra – Firecracker
setcpm(120/2)
sound("bd sd, - - - hh - hh - -, - perc - perc:1*2")
.bank("RolandCompurhythm1000")
16ステップシーケンサーの再現
setcpm(90/4)
sound(`
[- - oh - ] [- - - - ] [- - - - ] [- - - - ],
[hh hh - - ] [hh - hh - ] [hh - hh - ] [hh - hh - ],
[- - - - ] [cp - - - ] [- - - - ] [cp - - - ],
[bd - - - ] [- - - bd] [- - bd - ] [- - - bd]
`)
もう一つの例
setcpm(88/4)
sound(`
[- - - - ] [- - - - ] [- - - - ] [- - oh:1 - ],
[hh hh hh hh] [hh hh hh hh] [hh hh hh hh] [hh hh - - ],
[- - - - ] [cp - - - ] [- - - - ] [~ cp - - ],
[bd bd - - ] [- - bd - ] [bd bd - bd ] [- - - - ]
`).bank("RolandTR808")
一風変わったドラム
setcpm(100/2)
s(`
jazz*2,
insect [crow metal] - -,
- space:4 - space:1,
- wind
`)
これでビート作りの基本は分かりました。次は、メロディー(ノート)の演奏方法を見ていきましょう。
アンケート
本日の講義に参加した方は以下のアンケートに回答してください。
スライド資料
はじめに
今回は、最初の講義ですので、最初にこの講義の概要とスケジュールについて説明します。
後半は、この講義の演習パートで主に使用するTouchDesigerの紹介と、インストール方法、操作の基本について解説していきます。
「クリエイティブコーディング」について
講義概要
クリエイティブコーディングとは、機能ではなく表現のためのコンピュータプログラミングです。この講義ではクリエイティブコーディングのためのアプリケーションを活用し、グラフィクス、アニメーション、オーディオビジュアル、ジェネラティブデザイン、インタラクションといったクリエイティブコーディングのための制作のための技術の基礎から応用までを学んでいきます。現在多くのアーティストや制作現場で実際に使用されている制作環境であるTouchDesignerをメインの開発環境として、制作環境の基本操作から始めて最終的に自身の作品を制作できる技術の習得を目指します。このような能力は、デザイナー、エンジニア、アーティストなど、様々なクリエイティブな職業で求められるものであり、本講義はその基盤となるでしょう。
TouchDesignerについて
TouchDesignerを使用した作品例
Astro Immersive AV Performance – Weidi Zhang
ところざわサクラタウン KADOKAWA所沢キャンパス
Fragment Shadow Generating Fragmented Shadows with Multi-Projectors Geometry and Color Calibration
Natural Encounters an emotional link between human and algorithm
404.zero live at Diage Festival, Bangkok, 2023.
Interactive live visual system with venue simulator and chart output for BABYMETAL “METALIZM” – Kezzardrix
NONOTAK – SHIRO (TEASER)
その他沢山の作品が Derivative社のShowcaseで逐次公開されています。参考にしてみてください。
TouchDesignerのインストールとキー登録
TouchDesignerのライセンス
TouchDesignerはProcessingやopenFrameworksのようなオープンソースの開発環境ではなく、Derivative社が販売している製品 (プロプライエタリソフトウェア) です。しかし、非商用の利用の場合には無料で使用可能です。
ライセンスの詳細は以下を参照。
この演習では、NON-COMMERCIAL版を使用します。以下のような制限があります。
- 解像度は1280×1280 Pixelまでに制限
- 個人使用または学習用の用途に限り使用可能
- すべてのアカウントは10個の非商用キーを付与
- 有料プロジェクトでは使用不可
最初はNON-COMMERCIAL版で使用して、もしより本格的に使用したいと思った場合はEDUCATIONAL版を購入すると良いでしょう。
インストールとキー登録の手順
TouchDesignerはアプリケーションをインストールした後に、アカウントに付与されたキーを登録する必要があります。以下の手順で行いましょう。
ユーザー登録: Derivativeのサイトからユーザー登録
TouchDesignerをダウンロード
- 使用しているOSにあわせてダウンロードページからインストーラーをダウンロード
- インストーラーを起動してインストール (特に設定の変更の必要は無し)
TouchDesignerを起動してキー登録
- インストールしたTouchDesignerを起動
- 上部メニューから「Dialogs > Key Mangager」を選択
- 以下の画面が出力されるので登録した情報でログイン

- キーを選択して有効化する

アプリケーションの再起動
- アプリケーションを起動し直すとNON-COMMERCIAL版が起動するはず
TouchDesignerはじめの一歩
本日は、まずTouchDesignerはじめの一歩として「バナナを回す」という課題をやってみたいと思います。以下の映像のチュートリアルに準拠しています。
さらにもう1本!
完成イメージ
より詳しくていねいに学びたい方は…
Derivative社が提供しているオンライン教材「The 100 Series: TouchDesigner Fundamentals (TouchDesigner入門)」を使用して入門から基礎的な内容を学ぶことが可能です。熱意のある受講生の方は先取りしてどんどん予習していってください。
101 – Navigating the Environment (制作環境のナビゲーション)
タッチデザイナーの文法
新しいツールや開発環境の学習の大半は、すべてのノブやボタンがどこにあるかを把握することから始まります。この最初のレッスンでは、TouchDesignerを使いこなすことに焦点を当て、必要不可欠なインターフェース要素とコントロール、そして各オペレーターファミリーの基本原則を学びます。
101-1. The User Interface (ユーザーインターフェイス)
101-2. Using the OP Create Dialog (OP作成ダイアログを使う)
101-3. Reading Network Anatomy (ネットワークの解剖)
101-4. Reading Operator Anatomy (オペレーターの解剖)
101-5. Operator Wires, References & Links (オペレータの接続、参照、リンク)
本日の課題
課題: ノイズで遊ぼう!
簡単に二次元から四次元のノイズを生成することのできるNoise TOPを使用して、試行錯誤しながら自分なりの「作品」をつくってみる。プログラムの原型は以下からダウンロードしてください。
まだ操作の基本を習得した段階ですが、まずはいろいろ試行錯誤しながら操作の基本感覚を身に付けていきましょう。その上で以下のような工夫をしてみてください。
基本: 使用されているオペレータのパラメーターを変化させてみる
応用: オペレーターを追加してみる
- Noise TOPにNoise TOPを接続するとどうなるか?
- HSV Adjust TOPの前後に別のTOPを追加してみる
- LFO CHOPを追加して他のパラメータに参照させてみる
- …など
参考資料
アンケート
本日の講義に参加した方は、以下のアンケートに回答してください。
アンケート