yoppa.org


かたちとコード / 基本図形と色彩による画面構成

この講義では、p5.jsを使用してコードによるデザインを行います。その最初の一歩として、コードによって「かたち」を描くにはどうすれば良いのか考えていきます。

まず始めに、1950年代〜70年代の、コンピューター黎明期から発展期におけるコード(プログラム)による様々な視覚表現について紹介します。過去の作家がどのようなアイデアで、何を表現しようとしてきたのか、その歴史を辿ります。

後半は、そうした歴史を踏まえた上で、 p5.js 実際に図形を描いていきます。まずp5.js の操作基本を解説し、簡単な図形を描きながらp5.jsでのプログラミングの基本を学びます。

スライド資料

アンケート

本日の講義に参加した方は下記のアンケートに回答してください。


自己紹介 – 簡単な経歴

スライド

自己紹介 – 簡単なこれまでの経歴

田所がこれまでどのような経緯で現在に至っているのか簡単に紹介します。

これまで何をしてきたのか。だいたい10年ごとに変遷。

  • 1990s : Computer Music
  • 2000s : Creative Coding
  • 2010s : Audio Visual
  • 現在 : Live Coding, Media Art (Installation)

Computer Music

1990年代、コンピュータ音楽の研究と創作

  • プログラミングで波形単位で音響生成
  • 当時はリアルタイムに合成するのはマシンパワー的に無理
  • ノンリアルタイムにレンダリングしてミックスしてテープ(DAT)に録音

Transition (for tape) 1996
https://soundcloud.com/tadokoro/transition

CLM (Common Lisp Music)

  • 当時使用していたコンピュータ音楽のためのプログラミング環境
  • Lispを使用して楽器を定義して演奏
(definstrument simp (start-time duration frequency amplitude)
  (let* ((beg (floor (* start-time *srate*)))
     (end (+ beg (floor (* duration *srate*))))
     (j 0))
    (run
      (loop for i from beg below end do
        (outa i (* amplitude (sin (* j 2.0 pi (/ frequency *srate*)))))
    (incf j)))))

(with-sound () (simp 0 0.25 440.0 0.2))

当時使用していたハードウェア: NeXT Computer

height:420px

Creative Coding

2000年代くらいからは「クリエイティブ・コーディング」の世界へ

height:320px

Processingクリエイティブ・コーディング入門 : コードが生み出す創造表現

height:460px

Beyond Interaction[改訂第3版] クリエイティブ・コーディングのためのopenFrameworks実践ガイド

height:460px

Audio Visual

ここまでの経験

  • コンピュータ音楽
  • クリエイティブコーディング

音と映像を融合した表現へ

  • 音響 → 映像
  • 映像 → 音楽
  • 相互に関連していく表現

Atsushi Tadokoro ( 田所 淳 ) Live at “On Site”, Taipei (2012)

height:460px

Live Coding

Live Codingとは?

height:400px

最近のライブの様子

NxPC.Live vol.68 @Circus Tokyo

height:460px

演奏するプログラミング、ライブコーディングの思想と実践 ―Show Us Your Screens

height:460px

Installation

Disenchantment Space (2017) @ Ars Electronica

  • オーストリアリンツのArs Electronica Center Deep Space 8Kで展示
height:480px

Photo

個展 : 100 fragments, 2018. 3.23 – 4.21, ART & SCIENCE Lab. AXIOM

height:480px

Video

Photo

2019.2.23 – 3.3 Media Ambition Tokyo

height:460px
photo

松戸科学と芸術の丘

height:480px
Video

TAxT Taoyuan Art and Technology Festival 2022

height:420px

まとめ

  • 興味のあることをやっていたら、いろいろ機会に恵まれた
  • 他人の評価はあまり気にしない
  • 続けることが大事!

openFrameworksって何だろう? サンプルを実行してみる

billboardExample

今回からいよいよopenFrameworksを使用してクリエイティブコーディングを始めていきます。

まず前半は、実際にコーディングを始める前に、openFrameworksとは何なのか、その開発の歴史と開発環境の特徴などを簡単に解説していきます。後半は、開発環境のセットアップが正しく完了しているか確認するために、付属するサンプルファイルをビルド (コンパイル) して、openFrameworksで作成したアプリケーションが起動するか確認していきます。

スライド資料

アンケート

本日の講義に参加した方は以下のアンケートに答えてください。


ライブコーディングって何だろう? / Strudelでライブコーディングのはじめの一歩

Photo: @hiro_shirato

本日の演習では、音楽とプログラミングが交差する「ライブコーディング」を体験的に学びます。前半は、コードをリアルタイムに書き換えながら音や映像を生成し、その過程を観客と共有する即興表現としてのライブコーディングを取り上げます。Algorave の実例や国内外アーティストの映像・テキストを参照し、歴史的展開、コミュニティ文化、舞台演出の特徴を多角的に解説します。後半はブラウザだけで動作する Strudel を起動し、パターン言語の基本文法、リズム生成、サンプル再生・選択を段階的に体験し、最終的に約 3 分のパフォーマンスを各自で構築して発表します。コードを「演奏可能な思考」として捉え、コードによる構造の構築と音のフィードバックの循環を体感しましょう。

スライド資料

参考映像

Algorave Generation | Resident Advisor
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
Jeff Mills Exhibitionist 2 Mix 3

サンプルコード

/* -------------------------------
 *
 * Strudel (https://strudel.cc/)
 * ライブコーディングのサンプルコード
 * リズム編
 * -------------------------------
 */

// 最初の音
$: s("cp")

// 別の音
$: s("bd")

// リズムの基本
$: s("bd hh sd oh")

// 沢山の音を演奏
$: s("bd bd hh bd rim bd hh bd")

// テンポを変化
$: s("bd bd hh bd rim bd hh bd").cpm(40)

// 休符
$: s("bd hh ~ rim")

// サブシーケンス
$: s("bd [hh hh] sd [hh bd]")

// かけ算 (スピードアップ)
$: s("bd hh*2 rim hh*3")

// サブシーケンスのかけ算
$: s("bd [hh rim]*2")

// 高速かけ算
$: s("bd hh*16 rim hh*8")

// パラレルに演奏
$: s("hh hh hh, bd cp")

// パラレルに演奏2
$: s("hh hh hh, bd bd, ~ cp")

// パラレルに演奏3
$: s("hh hh hh, bd [bd,cp]")

// ドラムセットを切り替える
$: s("bd hh sd oh").bank("tr909")

$: s("bd hh sd oh").bank("tr808")

// ポリリズム
$: s("rim*4, hh*5")

$: s("bd ~ rim ~, bd hh*2 hh ~ hh*2")

$: s("bd*5, rim hh hh ~ rim hh <hh*2 hh> ~")

// ポリミーター
$: s("{bd sd bd hh, bd rim cp hh hh}")

$: s("{lt*5, ht*4}")

// ユークリッドリズム
$: s("bd(3, 8), hh(9, 16)")

$: s("bd(3, 7), hh(9, 14, 5), cp(5, 7, 2)")

// 複数のシーケンスを同時に演奏
$: s("bd cp [~ bd] <hh*4 cp*2 [~ sd]*2>")

$: s("bd(4, 8), hh(5, 8, 1)")
  .bank("RolandTR909")

$: s("supersaw(11, 16)")
  .note("{c3 f3 g3 c2}%22, <c4 b4>".add("[0, 12]"))

アンケート

本日のアンケート


TouchDesigner基本 1 – TOPの基本と画像処理

本日の講義では、TouchDesignerの画像処理を担当するオペレーターファミリー「TOP (Texture Operators)」の基本的な使い方を学びます。画像のエフェクト、切り替え、フィードバック、タイリングといった基本的な画像処理テクニックを習得し、表現の幅を広げましょう。

スライド資料

前回の復習

前回は「バナナを回転させる」という簡単なプログラムを作成しました。Movie File In TOP でバナナ画像を読み込み、Transform TOP で回転のアニメーションを設定し、Circle TOP で作成した円と Over TOP で合成しましたね。実際にパッチング(オペレーターを繋いでいく作業)をしながら、基本的な操作方法を復習していきましょう。

完成例

前回の内容を発展させた完成例です。基本的な回転に加えて、背景なども追加されています。

height:480
  • ダウンロード 完成例のファイル(.toe)をダウンロードして、TouchDesignerで開いてみてください。どのように作られているか、中身を確認できます。

ここからさらに発展!

前回の復習で作成した「回転するバナナ」をベースに、さらにTOPを使った画像処理を加えて表現を豊かにしていきます。以下の動画で解説されている内容を参考に、様々なTOPオペレーターを使ってみましょう。

完成イメージ

発展させた最終的な完成イメージです。様々なエフェクトが追加されているのが分かります。

height:480
  • ダウンロード こちらもダウンロードして、どのようなオペレーターがどのように接続されているか確認してみましょう。

TOPによる画像処理

ここからは、今回の講義のメインテーマであるTOPを使った画像処理について詳しく学んでいきます。TOPはTexture Operatorsの略で、TouchDesignerで画像や映像を扱ったり、加工したりするためのオペレーター群です。

画像処理を行うためのTOP

TouchDesignerには、入力された画像に対して様々な効果を加えるためのTOPが豊富に用意されています。いくつか代表的なものを紹介します。

  • Edge TOP: 画像の輪郭(エッジ)を検出します。イラストのような表現や、特定の形状を抽出したい場合に便利です。
  • Blur TOP: 画像にぼかし効果を加えます。ぼかしの強さや方向などを調整できます。
  • Bloom TOP: 画像の明るい部分を滲ませ、光り輝いているような効果(ブルーム効果)を作り出します。幻想的な表現に適しています。
  • Level TOP: 画像の明るさ、コントラスト、ガンマなどを調整します。色調補正の基本的なオペレーターです。
  • Emboss TOP: 画像に凹凸があるような、浮き彫り風の効果を加えます。

これらのTOPは、オペレーターパレット(Tabキーで表示)のTOPタブから作成できます。入力(左側の接続点)に画像データを持つTOPを接続し、パラメータウィンドウで効果の具合を調整します。実際にいくつか試して、どのような効果が得られるか確認してみましょう。

TOPを切り替える

複数の画像や、異なる画像処理を施した結果を、状況に応じて切り替えたい場合があります。そのような時に使うのがSwitch TOPです。

  • Switch TOP: 複数のTOP入力を受け取り、指定した一つの入力だけを出力します。パラメータの「Index」を変化させることで、どの入力を選択するかを切り替えることができます。例えば、異なるエフェクトをかけた結果を比較したり、インタラクションに応じて表示する映像を切り替えたりする際に使用します。

フィードバック効果

映像表現でよく使われる「フィードバック」効果を作成するための専用TOPもあります。

  • Feedback TOP: 前のフレーム(ほんの少し前の時間)の出力結果を、現在のフレームの処理に利用することで、残像や映像が無限に続くような効果を作り出します。 接続のポイント: Feedback TOPの接続は少し特殊です。通常、処理ループの最後にFeedback TOPを配置し、そのFeedback TOPをループの最初(フィードバックさせたい入力)にドラッグ&ドロップして参照させます。ループ内にはLevel TOPなどを入れてフィードバックの強さ(透明度など)を調整したり、Add TOPやOver TOPで元の画像と合成したりすることが一般的です。 実際に作成しながら、この少し複雑な接続方法と、それによって生まれるユニークな表現を体験してみましょう。

タイリング

画像をタイル状に並べてパターンを作成したい場合にはTile TOPを使用します。

  • Tile TOP: 入力された画像をタイル状に敷き詰めます。並べ方(繰り返し、反転、回転など)や、タイルの数などをパラメータで細かく設定できます。万華鏡のような表現や、テクスチャパターンを作成するのに便利です。

TOPの基本を使用したプログラム例

ここまで紹介したTOPオペレーター(Edge, Blur, Level, Switch, Feedback, Tileなど)を組み合わせて作成したサンプルプログラムです。

height:480
  • ダウンロード ダウンロードして、各オペレーターがどのように連携して最終的な映像を作り出しているかを確認してください。

TOPの基本を使用したプログラム例 02

さらにパラメータを調整したり、別のTOPを追加したりして、より複雑でダイナミックな変化を持つようにした例です。

height:400
  • ダウンロード 少しの変更で大きく表現が変わることを体験してみてください。

本日の課題

課題: ノイズで遊ぼう!

今回の課題では、Noise TOP を使って自由に表現を試みます。Noise TOP は、プログラムによって様々な種類のノイズ(ランダムで有機的なパターン)を生成することができる非常に強力なオペレーターです。パラメータを調整するだけで、雲、水面、炎、地形のような多種多様なテクスチャやアニメーションを作り出すことができます。

まずは以下の基本的なサンプルプログラムをダウンロードし、これを改造しながら自分だけの「ノイズ作品」を制作してみてください。

height:400px

TouchDesignerの操作に慣れるためには、とにかくいろいろ試してみることが重要です。難しく考えず、まずはパラメータを触ってみて、変化を観察することから始めましょう。その上で、以下のような点を意識して試行錯誤してみてください。

参考資料

これらの資料は、ノイズ、特にNoise TOPで使われているパーリンノイズというアルゴリズムについて理解を深めるのに役立ちます。

基本: 使用されているオペレータのパラメーターを変化させてみる

サンプルプログラムで使われている主要なオペレーターのパラメータをいろいろ変更してみましょう。

  • Noise TOP (noise1): このネットワークの中心となるオペレーターです。
    • Period(周期): ノイズの細かさ、スケール感を調整します。値が小さいほど細かいノイズになります。
    • Harmonics(高調波): ノイズの複雑さを調整します。値を大きくすると、より詳細で複雑なパターンになります。
    • Type(種類): 生成するノイズのアルゴリズムを選択します。Perlin, Simplex, Randomなど、種類によって見た目が大きく変わります。色々試してみましょう。
    • TransformタブのTranslate/Rotate/Scale: ノイズを時間経過で動かしたり(Translate Zに absTime.seconds などのエクスプレッションを入れる)、回転させたり、拡大縮小したりできます。
    • …など、他にもたくさんのパラメータがあります。気になるものを触ってみましょう。
  • LFO CHOP (lfo1): 時間と共に周期的な値(波形)を生成するCHOP (Channel Operator) です。この値を使って他のオペレーターのパラメータを動かします。
    • Frequency(周波数): 値が変化する速度を調整します。大きいほど速く変化します。
    • Type(波形タイプ): Sine(サイン波)、Triangle(三角波)、Square(矩形波)など、値の変化パターンを選択します。
    • Amplitude(振幅): 値が変化する範囲(大きさ)を調整します。
    • …など。このLFO CHOPの出力をNoise TOPのパラメータ(例えば Amplitude)にエクスポート(ドラッグ&ドロップ)して、ノイズの明るさを時間で変化させる、といった使い方ができます。
  • HSV Adjust TOP (hsvadj1): 色相(Hue)、彩度(Saturation)、明度(Value/Brightness)を調整して、画像の色味を変更するTOPです。
    • Hue Offset: 全体の色相をシフトさせます。値を変化させると色が循環するように変わります。
    • Saturation Multiplier: 彩度を調整します。0にするとグレースケールになります。
    • Value Multiplier: 明るさを調整します。
    • …など。Noise TOPで生成したモノクロのノイズに色を付けたり、色を時間変化させたりするのに使えます。

応用: オペレーターを追加してみる

基本操作に慣れてきたら、新しいオペレーターを追加して、さらに複雑な表現に挑戦してみましょう。

  • Noise TOPにNoise TOPを接続する: Noise TOPの出力を別のNoise TOPの第二入力 (Noise Coordinate Map) に接続すると、一方のノイズで他方のノイズパターンを歪ませるような、非常に面白い効果が得られます。
  • HSV Adjust TOPの前後に別のTOPを追加する: 例えば、Noise TOPとHSV Adjust TOPの間にBlur TOPを入れてノイズをぼかしたり、HSV Adjust TOPの後にBloom TOPを追加して光らせたり、Edge TOPで輪郭抽出してから色付けするなど、エフェクトを重ねてみましょう。
  • LFO CHOPを追加して他のパラメータに参照させてみる: 新しいLFO CHOPを作成し、その値をNoise TOPの回転パラメータやHSV Adjust TOPの色相パラメータなどにエクスポートして、より複雑なアニメーションを作成してみましょう。
  • …など、自由な発想でオペレーターを繋ぎ変えてみてください。思わぬ発見があるかもしれません。

ノイズを使用した作品例 1

  • 内容: Noise TOPを二つ重ね(一つはパターン生成、もう一つは歪み用)、さらにBloom TOPで発光効果を追加した例です。 height:420
  • ダウンロード

ノイズを使用した作品例 2

  • 内容: Noise TOPにTile TOPを組み合わせて、万華鏡のような繰り返しパターンを生成した例です。色の変化も加えられています。 height:420
  • ダウンロード

実習!

それでは、実際にNoise TOPを使って、自分だけのオリジナル作品を制作してみましょう! まずは基本サンプルを改造することから始め、慣れてきたら自由にオペレーターを追加・接続してみてください。

  • 目標: Noise TOPを中心に、学んだ各種TOP(Blur, Level, Bloom, Feedback, Tile, HSV Adjustなど)やCHOP(LFOなど)を組み合わせて、面白い、あるいは美しいと感じる映像表現を試みること。
  • 発表: 講義の最後の40分程度で、皆さんが作成した作品を一人ずつ発表してもらいます。完成していなくても構いませんので、どのような試行錯誤をしたか、どこが面白いと思ったかなどを共有しましょう。

分からないことがあれば、遠慮なく質問してください。試行錯誤を楽しんでください!

アンケート

本日の講義に参加した方は以下のアンケートに答えてください。


コードによる表現 – Creative Coding

今回はまずCreative Codingについて解説していきます。Creative Codingとはコンピュータプログラミングの一種で、プログラミングによって機能の実現ではなく何かを表現することを目的とするものです。画像、アニメーション、映像、音響、音楽、3Dグラフィックなど様々な手段を用いて表現します。Creative Codingのための様々な開発環境が存在します。まずそれらの簡単な歴史と関連について説明していきます。

後半は、この授業で主に扱っていくp5.jsの開発環境を構築します。Visual Studio Codeにp5.jsの開発のための機能拡張をインストールしていきます。環境構築が完了したらVisual Studio Codeを用いたp5.jsの開発のやり方について実際にコーディングしながら解説します。

スライド資料

環境設定

Visual Studio Code + Github Copilotによるp5.jsの最強開発環境を構築します!

1. Visual Sutudio Codeのインストール

Visual Studio Codeのページからインストーラーをダウンロードしてインストールします。

2. Visual Studio Codeに必要な拡張機能を追加

Visual Studio Codeのインストールが完了したら、以下の拡張機能をどんどん追加していきます!

3. Githubにユーザー登録

Githubにユーザー登録します。下記のページを参考にしてください。

4. Github Copilot Freeプランの導入

下記のページにアクセスします。

画面をスクロールしていって下記の画面の「Open in VS Code」をクリックします。

アンケート

本日の講義に参加した方は以下のアンケートに答えてください


オリエンテーション

初回となる今回の講義は、まずこの「システム生体プログラミング特論」ではどんな内容を取り扱っていくのかを解説し、履修のための条件などについて説明します。成績の基準についても説明します。

後半は、まず始めに何故プログラミングが必要なのかをCasey Reasによる “History of the Future, Art & Technology from 1965 – Yesterday” の講演を参考にしながら解説していきます。さらにこの講義で扱う「クリエイティブコーディング」とは何か、その概要を紹介していきます。

スライド資料

アンケート

本日の講義についてのアンケートに答えてください。

次週までの課題

次週までに、各自のノートPCに以下に指示されているプログラミング開発環境をインストールしてきてください。

1. 統合開発環境 (IDE)

  • Windows
    • Visual Studio IDEからCommunity 2022をダウンロード
    • 以下の設定でインストール
  • macOS
    • Application > AppStoreを起動
    • 検索欄でXcodeで検索
    • 表示されたページで「Install」ボタンを押してインストール

2. openFrameworks

現時点での最新版のver. 0.12.0 をダウンロードしてZipフィアルを展開しておいてください。

openFrameworks > Download

  • Windows + Visual Studio
    • Visual Studio用のopenFrameworksをダウンロード
    • “Windows download openFrameworks for” の下の “visual studio” をクリック
  • macOS + Xcode
    • Xcode用のopenFrameworksをダウンロード
    • “OSX download openFrameworks for” の下の “osx” をクリック

ダウンロードしたファイルを展開して、書類フォルダなどに入れておいてください。※ Zip圧縮したままの状態だと使用できないので注意!


PAシステム入門:基本原理から会場規模別機材構成まで

スライド資料 (PDF)

PAとは「Public Address」の略称であり、日本語では「大衆伝達」を意味します 。これは、人の声や楽器の音、録音された音源などの音量を増幅し、本来の音量では届かないような距離や広い範囲にいる聴衆に対して、十分に聞き取れるように伝達するための電子音響システムを指します 。この「パブリック(大衆)」に向けて「アドレス(伝達)」するという名称自体が、個人的な聴取やスタジオ録音とは異なり、不特定多数への情報伝達というシステムの核となる機能を示唆しています。  

基本的なPAシステムは、音を入力するためのマイクロホン、信号を増幅するためのアンプ、そして音を出力するためのスピーカー(ラウドスピーカー)という3つの主要な要素と、それらを接続・調整するためのミキサーやケーブルなどの関連機器で構成されます 。  

一般的なポータブルBluetoothスピーカーなどが主に録音済みの音源(ストリーミング音楽など)を再生する目的で使われるのに対し、PAシステムはより高度な機能を有します 。特に、複数のマイクロホンや楽器、再生機器など、様々な音源からのライブサウンドを同時に処理し、それらを混合(ミキシング)し、バランスを調整した上で増幅し、一つのまとまった音として出力できる点が大きな違いです 。この複数のライブ音源と録音音源を統合的に扱える能力が、PAシステムを単なる再生装置と一線を画す重要な特徴です。

I. PAシステムとは何か

A. 「パブリック・アドレス(Public Address)」の定義

  • PA: “Public Address” の略、「大衆伝達」
  • 目的: 音を増幅し、広い範囲の聴衆へ聞き取りやすく伝達するシステム
  • 基本構成: マイク → ミキサー → アンプ → スピーカー (+ケーブル等)
  • 特徴: 複数のライブ音源と録音音源を同時に処理・調整して出力可能

B. 主な目的:音を明瞭に、聞き取りやすく届けること

  • 基本目的: 音量を増大させ、遠くまで届ける
  • スピーチ: 明瞭で理解しやすい音声伝達が最重要
  • 役割: 音の自然な減衰や環境騒音を克服
  • 別名: サウンド・リインフォースメント(音響補強)システム

C. 用途と適用例

音響増幅が必要なあらゆる公共の場で活用

  • 拡声: スピーチ、講演、アナウンス、プレゼン、店頭販促
  • 音楽: カフェライブから大規模コンサート、DJ、カラオケまで
  • その他: BGM再生、実況放送、案内放送、構内放送、緊急警報
  • 進化: シンプルな拡声から複雑なライブ、ネットワーク利用まで多様化

II. PAシステムの基本原理

A. 音の旅:シグナルチェーン(信号経路)

  • プロセス: 音響エネルギー → 電気信号 → 調整・増幅 → 音響エネルギー
  • 基本経路: マイク → ミキサー → パワーアンプ → スピーカー
  • 各段階:
    • 入力 (マイク、楽器): 音波を電気信号に変換
    • 混合・調整 (ミキサー): 信号を集約、バランス・音質調整
    • 増幅 (アンプ): 信号を増幅しスピーカー駆動力を得る
    • 出力 (スピーカー): 電気信号を音波に再変換
  • 重要性: 経路理解は音質向上、トラブルシューティングに不可欠

シグナルチェーン

B. ゲイン構造の理解:明瞭さのためのレベル設定

  • ゲイン構造: 各段階での増幅レベル(ゲイン)の適切な管理
  • 目的: ノイズ・歪み最小化、最高音質 (高S/N比、広ダイナミックレンジ) 実現
  • レベル調整:
    • 低すぎ: ノイズ増幅
    • 高すぎ: クリッピング (歪み)
  • 重要ポイント:
    • 入力ゲイン (プリアンプ): 最重要。適正レベルへ増幅
    • チャンネルフェーダー: 音量バランス調整
    • マスターフェーダー: 全体レベル調整
    • アンプ入力感度: ミキサー出力との整合
  • 影響: 不適切なゲイン構造はノイズ、歪み、ハウリングの原因に

C. フィードバック(ハウリング)の抑制

  • ハウリング: スピーカー音→マイク→増幅→スピーカー…のループで発生する発振音
  • 発生条件: ループゲインが1 (0dB) 以上になること
  • 影響要因: マイク/スピーカー位置関係、音量、部屋の音響、マイク指向性等
  • 基本対策:
    • ゲインを下げる
    • マイク/スピーカーの位置・向き調整
    • 指向性の強いマイク使用
    • イコライザー(EQ)でハウリング周波数をカット (一般的)
  • 本質: システムと空間の相互作用による物理現象。多角的アプローチが必要。

D. 基本的な音響の概念:増幅と音の放射

  • 音 (音波): 空気の振動
  • 振幅 → 音量 / 周波数 → 音程
  • 増幅: 電気信号のパワーや振幅を増加させること
  • 音の放射 (スピーカー): 電気信号を音波に変換し空間へ放射
    • ホーン/ウェーブガイド: 指向性を制御し、音を特定範囲に集中
    • ラインアレイ: 複数ユニット垂直配置。干渉利用で指向性制御。遠達性向上
  • スピーカー技術: 音響物理学応用で、距離減衰等を克服し効率的に音を届ける。

音: 音波と波形

III. PAシステムの主要コンポーネント

A. マイクロホン:音源の捉え方

  • 役割: 音波を電気信号に変換。システムの「入り口」。
  • 主なタイプ:
    • ダイナミック: 頑丈、大音量向き、電源不要多。ライブボーカル等。
    • コンデンサー: 高感度、高音質、電源必要。ボーカル、楽器録音等。
  • 選択: 音源、環境、音質で決定。形状も多様。

ダイナミックマイク(左)とコンデンサーマイク(右)

B. ミキサー:コントロールの中心

  • 役割: 複数入力信号を混合・調整 (音量、音質、定位等) し出力。システムの「司令塔」。
  • 主な機能: プリアンプ、EQ、フェーダー、AUXセンド等。
  • 種類:
    • アナログ: 直感的。
    • デジタル: 多機能、小型、設定保存可能。
    • パワードミキサー: アンプ内蔵、構成シンプル化。

パワードミキサー

height:480

アナログミキサー

デジタルミキサー

デジタルミキシングコンソール

height:540

C. アンプ:信号の増幅

  • 役割: ラインレベル信号を増幅し、スピーカー駆動電力を供給。
  • 形態:
    • パワーアンプ (単体): 増幅特化。パッシブスピーカーに必要。
    • パワードミキサー内蔵アンプ。
    • パワードスピーカー内蔵アンプ。
  • 選定: 出力(W)とスピーカー仕様(Ω)の適合確認。

パワーアンプ

D. スピーカー:音の出口

  • 役割: 増幅された電気信号を音波に再変換。システムの「出口」。
  • 主なタイプ:
    • パッシブ: アンプ非内蔵。外部アンプ必要。組み合わせ自由度高。
    • アクティブ (パワード): アンプ内蔵。セットアップ簡単。近年主流化。
  • 役割に応じた種類:
    • メイン (FOH): 客席向け。
    • モニター: ステージ上、演者向け。
  • 設計: ユニット構成 (2ウェイ等)、エンクロージャー形式、音響設計 (ホーン、ラインアレイ等)。

アクティブスピーカーとパッシブスピーカー

height:500

ラインアレイスピーカー

E. ケーブルと接続:重要な生命線

  • 役割: コンポーネント間を接続し信号・電力を伝送。信頼性・音質維持に重要。
  • 主な種類:
    • マイクケーブル (XLRバランス)
    • ラインケーブル (XLR/TRSバランス、TS/RCAアンバランス)
    • スピーカーケーブル (スピコン、フォーン)
    • 電源ケーブル
  • 重要性: 低品質・損傷はトラブル原因。適切な選択と扱いが不可欠。

フォンケーブル

上: TSRケーブル(バランス)、下: TSケーブル(アンバランス)

height:480

XLRケーブル (バランス)

height:600

マルチコアケーブル

MADI (多チャンネルデジタル伝送)

height:500

アンバランス接続 (TS、RCAなど)

ノイズに弱い

バランス接続 (XLR、TSRなど)

ノイズに強い

IV. 会場規模別PAシステム構成

  • 前提: 会場規模、用途等で構成は大きく異なる。「万能」はない。

A. 小規模会場(カフェ、会議室など)

  • ニーズ: 小空間/少人数向け、ポータビリティ、簡単操作。
  • 構成例:
    • オールインワンPA (例: STAGEPAS)
    • パワードスピーカー + 小型ミキサー
    • マイク: ダイナミック中心

小規模会場PA

height:480

B. 中規模会場(ホール、クラブなど)

  • ニーズ: 広空間/多人数向け出力、多入力、専用モニター、詳細な音質調整。
  • 構成例:
    • ミキサー: 16-24ch程度のアナログ/デジタル
    • メインスピーカー: 高出力パッシブ+アンプ or パワード。ポイントソース型等。
    • ステージモニター: ウェッジ型。AUXミックス。
    • プロセッサー: GEQ、コンプ等 (内蔵/外部)。
    • マイク: ダイナミック/コンデンサー使い分け、DI。
    • ケーブル: マルチケーブル (スネーク) 使用。

中規模会場PA

height:520

C. 大規模会場(アリーナ、ドーム、野外フェスなど)

  • ニーズ: 超広大空間/数万人向け超高出力、ロングスロー、カバレージ制御、膨大入力、高度な処理、FOH/モニター独立、高信頼性。プロ必須。
  • 構成例:
    • ミキサー: 64ch超大規模デジタル、FOH/モニター独立。
    • メインスピーカー: ラインアレイシステム標準。サブウーファー多数。
    • アンプ: 多数の高出力パワーアンプ (DSP内蔵、ネットワーク対応)。
    • システムプロセッサー(DSP): 全体最適化 (クロスオーバー、EQ、ディレイ等)。
    • モニター: 多数ウェッジ + IEM、独立モニターミックス/エンジニア。
    • ネットワークオーディオ: Dante等で多チャンネル伝送。
    • インフラ: 大量ケーブル、大容量電源、リギング、インカム等。

大規模会場PA

height:580

会場規模別PAシステム構成要素比較表

コンポーネント小規模 (カフェ/会議室)中規模 (ホール/クラブ)大規模 (アリーナ/フェス)
ミキサー小型/内蔵 (4-8ch)中型 (16-24ch+)大型デジタル (64ch++) FOH/Mon独立
メインSPポータブル/小型パワード中出力 ポイントソース/コラム高出力 ラインアレイ
アンプ内蔵内蔵 or 外部多数外部 高出力DSP内蔵
モニター無 or メイン兼用専用ウェッジ (AUX)多数ウェッジ/IEM 独立Mix
プロセッシング限定的GEQ/コンプ等システムDSP/ネットワーク
特徴簡便性柔軟性/拡張性高出力/制御/専門性

V. まとめ

A. 多様なニーズに応えるスケーラビリティ

  • PAシステムは、シンプルなポータブル型から複雑な大規模設備まで幅広い。
  • 中核機能「音を増幅し伝達」は共通。
  • 実装は会場、聴衆数、内容、予算等の要求に応じて変化。

B. 重要なポイント

  • シグナルチェーン理解: 基本。
  • ゲイン構造: クリアな音の鍵。
  • コンポーネント役割理解: 適切な選択・組み合わせ。
  • ハウリング対策: ゲイン管理と物理配置。
  • 規模に応じた設計: 要求適合、大規模ほど高度な技術要。

C. 最後に

  • 効果的な音響補強は、基本原理の理解と適用能力から。
  • 基礎知識は規模に関わらず普遍的。
  • 最終目標: 聴衆へ、明瞭で聞き取りやすく、場にふさわしい質の高いサウンドを提供すること。

参考資料

  1. 【PA基礎知識】音響システムの基本構成と役割について
  2. PAにおけるスピーカーの種類と役割を解説!おすすめPAスピーカーもご紹介。
  3. アナログミキサーとデジタルミキサーの違い – サウンドエンジニアが知っておくべきこと Part 3|ヤマハ株式会社
  4. PAにおけるミキサーの役割と使い方を徹底解説!
  5. ハウリング対策のポイント – サウンドエンジニアが知っておくべきこと Part 3|ヤマハ株式会社
  6. マイクロホンガイドブック (PDF)
  7. WHO 安全なリスニングのための会場およびイベントに関する世界標準 (PDF)
  8. ヤマハ プロオーディオ ビジネスソリューション カタログ (PDF)
  9. PA初心者向けガイド – ミュージシャンズPA|ヤマハ株式会社
  10. PA機材とは?PAシステムの仕組み・具体的な機材例までを徹底解説!|株式会社ドコデモ

オリエンテーション、TouchDesigner 初めの一歩

スライド資料 (PDF)

今回は、最初の講義ですので、最初にこの講義の概要とスケジュールについて説明します。

後半は、この講義の演習パートで主に使用するTouchDesigerの紹介と、インストール方法、操作の基本について解説していきます。

「メディアアート・プログラミング I」について

講義概要

現代のメディアアート制作に不可欠なプログラミング技術を習得し、企画から実践的な作品制作までを通してその応用力を高めることを目指します。ビジュアルプログラミング環境「TouchDesigner」を活用し、インタラクティブな表現やジェネラティブなビジュアル生成など、高度なメディアアート作品の制作に必要なプログラミングスキルを体系的に身につけます。また実際のメディアアートの展覧会の企画から展示までの実務についても学びます。

自身の関心に基づいたテーマ・コンセプトを設定し、個人制作に取り組みます。演習内では、展覧会の企画・運営に関する実践的な知識も提供し、作品の立案から設営、最終発表、講評会までの一連のプロセスを体験します。これにより、プログラミング技術だけでなく、企画力、展示実装技術、批評的思考力を養います。

本演習は、プログラミングを単なる技術としてではなく、創造的な表現のための「道具」として捉え、その可能性を最大限に引き出すことを目指します。TouchDesignerなどのツールを使いこなし、自身のアイデアを具現化する力を身につけることで、将来メディアアーティストとして、あるいはメディア表現を活用する多様な分野で活躍するための基盤を築きます。

シラバス (藝大学事システムにログインが必要)

  • 開講責任部署: 美術学部 対象学生:美術(学部・修士・博士)、音楽(学部・修士)、国際(修士)
  • 講義開講時期: 前期
  • 講義区分: 芸術情報センター(AMC)
  • 基準単位数: 3
  • 開講日: 金曜日 3限、4限
  • 校地: 上野(AMC)
  • 授業を行う教員: 田所淳、森山朋絵

※ 履修制限 (定員の設定) は行いません
※ AMCのPCの台数には制限がありますので、ノートPCを持参しての受講 (BYOD) をお薦めします

この講義のざっくりとした内容

  • 演習 (田所担当) : TouchDesignerを用いたリアルタイム3DCGによる表現を中心にしたメディアート制作のための技術を学ぶ
  • 講義 (森山先生担当): 美術館での経験をもとに、現場での実践的なメディアアートの展示や企画について学ぶ
  • 学期末にはAMCのギャラリーでの作品展示を目指します

TouchDesignerについて

  • TouchDesigner
  • https://derivative.ca/
  • カナダのDerivative社が開発したビジュアルプログラミング環境
  • インスタレーションアートやプロジェクションマッピング、メディアアートなど、さまざまな映像や音楽、デジタルアートに関するシステムを簡単に構築可能
  • 詳細: https://derivative.ca/feature/application-building

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のサイトからユーザー登録

  • Derivative Webサイトのページの「SIGN UP FOR AN ACCOUNT」より
  • 必要事項を記入して送信
  • 登録したemailアドレスにメールが返信されるのでリンクをクリックして登録完了

TouchDesignerをダウンロード

  • 使用しているOSにあわせてダウンロードページからインストーラーをダウンロード
  • インストーラーを起動してインストール (特に設定の変更の必要は無し)

TouchDesignerを起動してキー登録

  • インストールしたTouchDesignerを起動
  • 上部メニューから「Dialogs > Key Mangager」を選択
  • 以下の画面が出力されるので登録した情報でログイン
  • キーを選択して有効化する

アプリケーションの再起動

  • アプリケーションを起動し直すとNON-COMMERCIAL版が起動するはず

AMCのMacにインストールされているTouchDesigner使用の注意

AMCの実習室の全てのiMacにもTouchDesignerがインストールされています。しかしながら、AMCのMacのファイルは起動する度に保存したファイルは消去されて元の状態にリセットされるため、使用する際には以下の手順で毎回キーの登録と削除を行う必要があります。

ユーザーアカウントの作成

  • キーは各自のDerivativeアカウントに付与された個人のものを使用します
  • あらかじめ「SIGN UP FOR AN ACCOUNT」よりユーザー登録しましょう

起動とキーの有効化

  • コンピューターを起動し、TouchDesignerのアプリケーションを起動
  • 上部メニューから「Dialogs > Key Mangager」を選択
  • 以下の画面が出力されるので登録した情報でログイン
  • キーを選択して有効化する

TouchDesignerのアプリケーションを使用

  • 個人のノートPCで使用している人と同じようにTouchDesignerが使用可能となります

キーの削除と終了

  • アプリケーションを終了する前に必ずキーをアプリから削除します
  • 上部メニューから「Dialogs > Key Mangager」を選択
  • Disableのタブを選択し、Disable Keyボタンを押す

システム終了

  • アプリケーションを終了し、システム終了

※この操作を行わないと毎回使用できるキーが減っていってしまうので注意してください!

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 (noise1)
    • ノイズの細かさ
    • ノイズの複雑さ
    • ノイズの種類
    • …など
  • LFO CHOP (lfo1)
    • 変化速度
    • 変化する波形の種類
    • …など
  • HSV Adjust TOP (hsvadj1)
    • 色相を変えてみる (hue)
    • 再度を変えてみる (saturation)
    • 明るさを変えてみる (brightness)
    • …など

応用: オペレーターを追加してみる

  • Noise TOPにNoise TOPを接続するとどうなるか?
  • HSV Adjust TOPの前後に別のTOPを追加してみる
  • LFO CHOPを追加して他のパラメータに参照させてみる
  • …など

参考資料

アンケート

本日の講義に参加した方は、以下のアンケートに回答してください。


オリエンテーション

「情報メディアデザイン」初回は、まずこの講義の概要と進め方について説明していきます。

その後は「なぜプログラミングが必要なのか?」という問いに対する回答として「ハイブリッドになろう」というテーマでプログラマーの歴史について解説します。さらにクリエイティブコーディングの開発環境について解説します。

最後に次回までの課題について説明して本日は終了です。

スライド資料

関連リンク

次回までの課題

1 まず今後の講義で使用する開発環境を準備していきます。

2. 作品を共有するためのプラットフォームに加入します

3 最後に以下のアンケートに回答してください

以上3点です! 締切は次回の授業までとします!