「サウンドデザイン」の関連領域
サウンドデザイン(長嶋)
- シラバス
- 話題メモ
- 初日(2023.04.14)
- 履修登録者の確認 「サウンドデザイン」履修について
- 出席確認 ※講義冒頭の「5-10分遅れ」は「遅刻」扱い(2回で欠席とカウント)なので注意しましょう
- 「人間には何故、聴覚があるのか」・「人間はサウンドをどこで聞くのか」
- 音には「楽音」と「雑音」がある
- 聴覚のちょっとした実験をやってみよう
- 耳の入り口を塞ぐと「体内のサウンド」が聞こえる(→無響室の恐怖)
- 耳の周囲をお椀状の掌で緩く覆うと・・・(→方向感覚) ※ダミーヘッドマイク
- 視覚は「隠れている物は見えない」が、聴覚は「聞こえない音が聞こえてくる」という違い→やってみよう
- "hear"と"listen to"との違い (→"see"と"look at"と"watch"の違いは?)
- 人間は音楽だけでなくサウンドを「耳で聞く」のでなく、「脳で聞いている」(^_^)
- 「聴覚とセンスを成長させるトレーニング法」伝授します
- Maxで出来ることのアウトラインのデモ(来週から少しずつ出来るように進めていきます)
- 「Maxとは」解説デモ
- 超簡単「プログラミング」環境
- 「音楽演奏情報」をプログラミング(→作曲)
- 「サウンド」をプログラミング(→音響生成)
- 音の3要素
- 「音響処理」をプログラミング(→エフェクト)
- 「グラフィック」をプログラミング(→アニメーション)
- 「画像処理」をプログラミング(→ライヴVJ)
- OpenCampusのために2日で作った体験Maxソフト (リアルタイム・カメラ動画を画像エフェクト)
- 「なぜMaxなのか」→これらの作品の大部分はMaxで出来ている !!
- デザイン学科のターゲットと長嶋担当科目「サウンドデザイン」「メディア数理造形演習」「音楽情報科学」の関係 ※本年度はSUAC長嶋最終年度なので来年「音楽情報科学」は開講されない可能性も高い(^_^;)
- 「インタラクション」「インタラクティブ」 → 「アルゴリズム」「プログラミング」の必要性と面白さ
- 去年の「サウンドデザイン」受講者の最終課題作品のいくつかを紹介
- 宿題 なし(^_^)
- 講義冒頭の「5-10分遅れ」は「遅刻」扱い(2回で欠席とカウント)なので注意しましょう
- 来週以降の準備について(Flashメモリ/携帯型HDD/イアホン)
- 2日目(2023.04.21)
- マルチメディア室の使い方について
- Macを立ち上げる
- マルチメディア室のMacは環境設定その他は記憶しない
→デスクトップの壁紙変更などは無駄(^_^;)- RドライブはマウントされないのでローカルHDDに保存したデータは消される (MM室からRドライブへのアクセスは推奨しない)
→USBメモリ/携帯型HDDなどにバックアップ必須- Macを立ち下げる
- サウンドデザイン講義ページへの行き方
- ブラウザChromeを立ち上げる
- 1106長嶋研究室ページに行く
※ このページの「絵」(クリックすると最新のところにジャンプするボタン)を常時募集中です。絵心のある人は提供して下さい。何か「御礼」します(_o_)- 「http://nagasm.org」の個人ページから研究室ページに行ってもOK
- 「サウンドデザイン」で学ぶことの全体像について※ 今年は密度を上げて過去22年間よりもだいぶ先に進めます
- Maxでアルゴリズム(プログラミング)の発想を学ぶ
- Maxで音楽やサウンドの生成・編集ができる (→映像作品のサウンドトラック、ゲーム等の効果音)
- Maxで音楽と同期したPICT画像のアニメーションができる
- Maxでインタラクティブなゲームができる (キーボード、マウスを介して)
- MaxでArduinoを介して外界(物理世界)とインターフェースできる → より本格的なインスタレーション、ゲーム
- 「サウンドデザイン」で扱わないこと
- スピーチ(音声合成) → 英語であれば画面上の任意の英語を発音させる事はカンタン(詳しくはWebで調べて)
- Garageband(Macに最初から入っている「お手軽音楽制作」ソフト) → Webで自習できる
- その他のシーケンスソフト(本格的「音楽打ち込み」ソフト) → Webで自習できる
- 「初音ミク」その他(ボーカロイド) → Webで自習できる、究めたい人は個人的にどうぞ
- 用語の確認(現在ではMax8に全て統合されている) : 「Max」(元々のMIDI[ソフト音源])・「Max/MSP」(リアルタイム・サウンド処理)・「Max/jitter」(リアルタイム・グラフィクス)
- Maxの起源(1) (先週紹介したので省略)
- Maxの起源(2) (25年前に書いた解説記事) ※Maxパッチは最新バージョンMaxでも動く ★
- サンプルデータのダウンロードと解凍と保存について : 本日のサンプルパッチ
- Max8と遊ぼう part1 - Maxを立ち上げて編集して終了する
- システム環境設定でサウンドを「内蔵スピーカ」にすると音が出る(ヘッドホン必要)、またはBluetoothで接続(→藤石さんに聞く)
- Maxを立ち上げる
- 最初にMaxを起動しておけば、あとはMaxパッチ(拡張子maxpat)を叩けば開く
- Maxでは文字は「直接入力」にしておくこと(日本語NG) : デスクトップ上のメニューバー右端付近の「あ」というのは日本語なので、英数キーで「A」にする !
- Maxの重要な2つのモード : 「編集モード」と「実行モード」 ※ショートカット「Command+E」 Maxパッチウインドウの左下端にある「鍵」アイコンが開いているのが「編集モード」、クリック(toggle)して閉じたのが「実行モード」
- 「File」 → 「New Patcher」で新しいパッチ(Maxのプログラム)を作る ※キャンバスは真っ白(^_^)
※ショートカット「Command+C」「Commande+V」「Command+D」「Command+A」「Command+X」「Command+Z」「Command+W」はWindows等と同じ- 「Window」タブから「Max Console」ウインドウを開いて常に置いておこう - 何かエラーがあれば赤く知らせてくれる
- オブジェクトを呼び出す (※まだ取り上げないものは呼び出さないこと) sample1
- オブジェクト同士を結ぶ 基本的にはオブジェクトの下から出ている出力を、別のオブジェクトの上にある入力に繋ぐ
- Maxのグレーのコードを情報が流れるのは「イベント」(何かあった)の時だけ
- Maxで絶対に禁止なのは「無限ループ」 - あらゆるプログラミング環境において禁止 !!
- 「全てのオブジェクトを丸暗記」なんてナンセンス
- 最小限のオブジェクトだけで相当のことが出来る
- 「Save As...」でパッチを保存 : 「拡張子はmaxpat」→デスクトップに保存して、毎日最後にUSBメモリ等へ ※ショートカット「Command+S」
- Maxの終了「Quit Max」 ※ショートカット「Command+Q」
- Max8と遊ぼう part2 - Maxの基本操作
- (整数)変数 - 入力にも出力にもなる
- たった3つのオブジェクトで音が鳴る sample2
- makenote - MIDI発音情報(on/off)の生成 → 「音の長さ」(Duration)と「打鍵の強さ」(Velocity)
- noteout - MIDIノートの出力(発音) → MIDIチャンネル(音色ごとの系列)
- 鍵盤 - MIDIノートナンバ(音の高さ) sample3
- pgmout - 音色の変更 → MIDIチャンネルを合わせる sample4
- インクリメンタ/デクリメンタ(incdec) - 例外的に変数と「たすきがけ」可能、1つずつ上下できる
- 楽器パートの「音色」は「pgmout」で設定する(しないとdefaultはピアノ、あるいは直前の設定の音色で演奏される)
- General MIDI 「音色」の数字と楽器名の対応
- 鍵盤 - 入力にも出力にもなる、高さだけでなく「打鍵の強さ」(Velocity)も出力 sample5
- makenote - MIDI発音情報(on/off)の生成 → 「音の長さ」(Duration)と「打鍵の強さ」(Velocity)
- 縦スライダー、横スライダー - 入力にも出力にもなる sample6左
- ツマミ(回転ボリューム) - 入力にも出力にもなる sample6左
- オブジェクトの細かい設定はインスペクタ(プロパティ) ※ショートカット「Command+I」 → (例)フォントサイズ、色、・・・
- トグル(0/1) - 入力にも出力にもなる sample6右
- Maxの上に複数の入力接続端子(インレット)がある場合、重要なのはいちばん左端の第1インレット
- オブジェクトの第2インレット以降は保持されるだけ( → 表示されている初期値は入力されると表示はそのままで内部的には変更される)
- 全てのオブジェクトは、左端の第1インレットが入った時だけ出力が出る sample7
↑加減乗除オブジェクト「+」「-」「*」「/」でこれを試してみよう- 剰余オブジェクト「%」とは?
- Maxの情報は「bang」と「データ」(数)と「メッセージ」(文字列)
- bang - データでなくイベント(きっかけ) sample8左
- int - 整数を保持するメモリ - 左端band入力で保持された値が出力される
- metro - 「時間」の基準(メトロノーム) sample8右
- 定数オブジェクト
- 定数「1」と加算「+」で「インクリメンタ」を作る
- ここまでの道具だてで「時計(タイマー)」が出来る(^_^)- 「%」と「/」の活用 sample9
- 【考えてみよう】1秒カウンタで時計(タイマ)を作れる?? sample10
- Maxでドラムマシンを作るための準備
- MIDIの10チャンネルは打楽器トラック専用(1〜9チャンネル、11〜16チャンネルは楽器トラック) sample11
- (下のほう)MIDI 10チャンネルの音高と打楽器名の対応
- 次回の予告
- Maxでドラムマシン+α[自動演奏]を作っていこう
- 宿題 今日、やってみたMaxの使い方について理解・整理しておくこと(予習は不要)
- 3日目(2023.04.28)
- 本日のサンプルパッチ
- 先週の復習
- 「時計(タイマー)」 sample10 - これが「シーケンサ」(順序情報生成器)の元になる
- MIDIの10チャンネル=打楽器トラック sample11
- (下のほう)MIDI 10チャンネルの音高と打楽器名の対応
- Max8と遊ぼう part3 - ドラムマシンを作ってみよう
- 「metro」と「1」と「+」と「% 8」で「簡易シーケンサの元」が出来る sample12
- 「loadbang」はパッチが開いた時にbangが出る → 初期値の定数をセットできる
- metroで絶対に禁止なのは「時間ゼロ」
→ 変数の「インスペクタ」(Command+I)で変数の最小値を設定する- select - 特定の値でヒットしてbangを出す sample13
→ これで「簡易シーケンサ」(特定のタイミングで特定の楽器をトリガする)が出来る- 個々のタイミングのbangからある数値(ノートナンバ:10chでは打楽器指定)を叩く sample14
- リズムの基本は4ビート(BD, SD, BD, SD) sample15
- SDの場所はどんなリズムでも同じ(合いの手で裏拍に入り、ライヴなら手を叩くところ)
- 8ビート = 4ビート(BD, SD, BD, SD)のそれぞれとその合間にHHを計8個入れるのがまず基本 sample16
- 「ggate」 - グラフィックgate - 右上からの入力を左右に切り替え出力できる
- 8ビートらしく感じるには8つのHHと合わせてBDを隣接したところで連続で蹴る sample16
- より8ビートらしく感じるには8つ目のHHはclosedでなくいopen HHにする sample17
- 16ビート = 8ビートのそれぞれとその合間にHHを計16個入れるのが基本
- 16ビートを16ビートらしく感じるには16個のHHと合わせて隣接したところでBDを連続で蹴る sample18
- 「gswitch」 - グラフィックswitch - 左右からの入力を選んで出力できる
- BD以外の打楽器をラテン系にした例 sample19
→ ラテンを感じるBDのパターンに注目してみよう- 「key」オブジェクトでキーボード(半角にしておく)の番号を検出できる
→ カーソルキー(上下左右)の「合いの手」を入れた「ラテン系」のサンプル sample20- Max8と遊ぼう part4 - 「ドラムマシン」をスッキリさせて行こう - ここが「プログラミング」の肝!!!
- counter - 3つのモード (インクリメンタの進化形) sample21
- gate - 制御入力により情報を振り分ける(2入力なら単純なスイッチ)
- send と receive - sample22
- patcher (サブパッチ) による階層化・構造化
- サブパッチを作ってsend/receiveで連携する sample23
- サブパッチに入力(インレット)と出力(アウトレット)を作って連携する sample24
- gate - 2つのサブパッチをgateで切り替えてドラムパターンを変更する sample25
→ 「gate」は左入力が0で右入力はOFF、左入力が1で右入力が出力される (右入力がHot Inletの特例)- Max8と遊ぼう part5 - 「ドラムマシン」に楽器音を加えてみよう
- まず基本のドラムパート sample26
→ このタイミングを同時に利用するピアノパートを新たにサブパッチとして追加する作戦- 8ビートのタイミングで最後に叩かれた鍵盤(マウスで音階を変化)を叩く sample27
→ 楽器パートの「音色」は「loadbang」によって初期化して「pgmout」で設定すること。でないと直前の設定の音色で演奏されてしまう
→ General MIDI 「音色」の数字と楽器名の対応- ただのランダムピアノだと音楽っぽくない(^_^;) sample28
これは「12音音楽」という現代音楽そのもの。「休符」(息継ぎ)の無い息苦しさ(全ての音符が鳴る不自然さ)も感じてみよう
→ いったんピアノを棚上げする- 8ビートでどのようにも使えるベースを入れてみる sample29
- ベースに合った固定メロディーでブルーノートっぽいピアノを入れてみる sample30
- 8ビートのベースに琉球音階で三味線を鳴らしてみる sample31 ★ ★ ★ ★ ★ ★ ★
- 次回(以降)の予告
- リズムパターンを試行錯誤/記録できるドラムマシン
- ランダムでそれっぽくなるアドリブピアノを作ってみよう
- (自動演奏と同期した簡易グラフィック(draw系)でモーショングラフィック生成に挑戦)
- 宿題 今日、やってみたMaxの使い方について理解・整理しておくこと(予習は不要)
- 4日目(2023.05.12)
- 本日のサンプルパッチ(1)
- Max8と遊ぼう part6 - いくつかのテクニックで拡張していこう
- 「シーケンサのタイミングに固定的に打楽器を繋ぐ」のでは自由度が無い → 試行錯誤で簡単にパターンを変更したい → カッコイイのを記憶したい
- これは「システムの同期動作」という重要な概念の理解によって出来る(^_^)
- まず基本のBDパート sample32
- 全てのタイミングに「gate」を入れてそれぞれのON/OFFのためにトグルを入れる sample33
- 全てのタイミングの「gate」のトグルの入力にインレットを付ける sample34
→ 親パッチを見るとサブパッチの上に8個のインレットが並んでいる(^_^)- 親パッチ内の「BDパート」サブパッチのインレットにトグルを並べて付ける sample35
→ これでサブパッチは開けずに親パッチ内で自在のBDパターンが作れる- 「BDパート」サブパッチを複製して中身をSDにして2パートに増設 sample36
- 「HH」と「OH」と「Crash」サブパッチを複製して5パートに増設 sample37
→ 「HH」と「OH」とは同時に指定できないことに注意 !!!- preset - パッチ内の全ての変数を記憶するプリセットボタン sample38
- ここまでのテクニックを集大成した「万能ドラムマシン」 sample39 ( LSI1 LSI2 LSI3 )
- これをピアノのフレーズに応用した「万能ピアノマシン」 sample40
- Max8と遊ぼう part7 - さらにテクニックを駆使して拡張していこう
- Maxオブジェクトの「インスペクタ」について
- インスペクタ : オブジェクトを指定して ショートカット「Command+I」
- 「見てくれ」を自在に変更できる(あまり長嶋は推奨していない)
- 最大値、最小値、数値範囲、動作指定など重要なものを指定しよう
- インスペクタを活用した作品「10秒カウント」 - "10sec.zip"
- Maxオブジェクトの可視/不可視の設定
- ショートカット「Command+K」 - 実行時不可視(hide on Lock)
- ショートカット「Command+L」 - 実行時可視(show on Lock)
- ある先輩の作品例 - "OB1.zip"
- ランダムでそれっぽくなるアドリブピアノを付けよう - sample41 ※このパッチは敢えて未完成品にしてあります
- table - フレーズを描けるテーブル
- 「table」はインスペクタでサイズとレンジを設定する
- 「table」はインスペクタで「patchと共に保存」に設定変更すること !!
- 「if $i1>10 then $i1」オブジェクトは「10より大きい入力の時だけそれを出力する」→休符が作れる(^_^)
- 本日のサンプルパッチ(2)
- Maxでアニメーション part1 - draw系
- まずは「lcd」パッチ
- まずは「lcd」にお絵描き lcd_test01
- 「lcd」の大きさはVGA(640*480)程度にしておくこと(合評のため) - 画面の左上隅に置こう
- 全てのマニュアルはhelpにある
- ペンの太さ
- ペンの色
- お絵描きしたら静止画ファイル(PNG)にしよう
- 別に「お絵描き」ウインドウを作ってsendで送る lcd_test02
- 「lcd」パッチでdraw系のグラフィクスをやってみよう(1)
- 5種類のdraw系基本図形 lcd_test03
- 基本図形 - paintrect
- 基本図形 - framerect
- 基本図形 - paintoval
- 基本図形 - frameoval
- 基本図形 - linesegment
- trigger(短縮系は「t」) - 入力に対して必ず右出力から順に出す - 「t l b」は「まずbangを出し」→「次に入力のリストを出す」
- 先頭にコマンドを付加する「prepend」 (末尾にコマンド等を付加するのは「append」)
- 4つの数値をリストにまとめる「pack」 lcd_test04
→ 「message」は右入力に入った情報を表示し、そこで左入力にbangがあるとその情報をまとめて出す
→ ここでは「lcd」に送り出す情報を確認するために右入力にだけ入れている (デバッグ)- どれが変化しても4つの数値をリストにまとめる「pak」 lcd_test05
- 次回(以降)の予告
- Max8で「数理造形」してみよう
- Max8で「静止画アニメーション」してみよう
- Max8で「インタラクティブ」してみよう
- 宿題 今日、やってみたMaxの使い方について理解・整理しておくこと(予習は不要)
- 5日目(2023.05.19)
- 本日のサンプルパッチ(1)
- 「lcd」パッチでdraw系のグラフィクスをやってみよう(2)
- 「Maxでアニメーション」の意味 - "数理造形"
- ランダム自動描画パッチ(1) - ランダムな場所にランダム色/ランダム半径の円を描画 lcd_test06
- ランダム自動描画パッチ(2) - ランダムな場所にランダム色/ランダム太さの線分を描画 lcd_test07
- ランダム自動描画パッチ(3) - ランダムな場所にランダム色/ランダム長径/ランダム短径の楕円を描画してランダム打楽器を鳴らす lcd_test08
- ランダム自動描画パッチ(4) - ランダムな場所にランダム色/ランダム太さの線分を描画してランダム打楽器を鳴らす lcd_test09
- 酔歩(千鳥足)[randomでなくdrunk](→生物のシミュレーション) - lcd_test10
→ metroからbangを受けたtriggerが必ず最初に「clear」していることに注意 !!
→ この「clear」が無いと残像が残ってしまう !!- ここから自然界の基本的な「運動」3種に挑戦
- 等速直線運動 - lcd_test11 - 無重力の宇宙空間はコレ
- 等速円運動(単振動) - lcd_test12 - 宇宙空間はコレで溢れている
- 放物運動 - lcd_test13 - 地球上はコレで溢れている
- いろいろな運動のまとめ - lcd_test14
- 本日のサンプルパッチ(2)
- 「lcd」パッチで「静止画アニメーション」してみよう
- まず「readpict」で内部呼び出し名を付けてPNG画像を読み込む - anime001
- 「drawpict」で内部呼び出し名を指定するとその画像がそのまま表示される(PNG画像の背景は「透明」にすること)
- 「drawpict」に左上の座標を指定すると表示位置が変わる
- 「drawpict」に左上と右下の座標を指定すると拡大縮小変形して表示される
→ 「key」はキーボード入力コード、スペースキーは「32」なので「select 32」でスペースキーでbangが出るのでこれで「clear」する- シーケンサの自動演奏と組み合わせると anime002
- 画像に座標を指定して「動かす」 - anime003
- PNG画像をrandomで「動かす」 (1)普通の「random」は神出鬼没 - anime004
- PNG画像をdrunkで「動かす」 (2)酔っぱらいの千鳥足「drunk」の面白さ - anime005
- 座標の計算により物理的挙動を表現できる - 「数理造形」
- 等速直線運動 - anime006
- 等速円運動(単振動) - anime007
- 放物運動 - anime008
- 複数のPNG画像を表示→「t(trigger)」オブジェクトで処理の順序(レイヤー)を明示的に規定する - anime009
「t b b b」なら右端のb(bang)がまず出るのでこれで「lcd」をクリアする
次のb(bang)で最初のPNG(透過OK)を描画する→後に描画されたPNGに上書きされるが透過部分はこれが見える- 「ぱらぱらアニメ」を動かす - anime_10
→ 「t i i b b」はまずbang、次もbang、そして入力の整数、さらに入力の整数を右出力から順に左に移動した出力から出す- 「ゲーム」材料の事例紹介(生サウンド[次回以降にやります]が有効) ★
- ある先輩の事例[これは特例の自主特訓] ★
- 次回(以降)の予告
- Max8で「簡易ゲーム」・「占いパッチ」を作ってみよう
- 宿題 今日、やってみたMaxの使い方について理解・整理しておくこと(予習は不要)
- 6日目(2023.05.26)
- 本日のサンプルパッチ
- Maxでインタラクティブ → ゲームが作れる(^_^)
- キーボード入力の取得 - interactive_01
- カーソルキー(↑←↓→)入力の取得 - interactive_02
- ストップウォッチだけでゲームになる - timer_10sec
- マウスボタン状態/マウスカーソル座標の取得 - interactive_03
- カーソルキー(↑←↓→)で画像を動かす - interactive_04
- カーソルキー(↑←↓→)の連続状態の検出 - interactive_05
- 状態(タイミング)判定 - interactive_06
- ランダム生成 → 「占い」系コンテンツ
- 初期設定について - 「loadbang」の活用、「table」の保存設定に注意 - init01/init02
- Max8でUSBゲームコントローラを使える!!!
- そのMaxパッチ
- その実験の様子(YouTubeデモ)
- 新しくサブパッチを作って、コントローラに対応したパッチの中身を全てその中にコピペして活用する
- 「基礎演習E」からの話題提供(来週からのMax8「生サウンド」に関係) - 今年の「基礎演習E」では、課題を二択として「生成AI」ねたを取り上げました
- 「ChatGPT」について
- 長嶋はGPT4が登場した今年3月中旬になって初めて触りました
- たった2週間だけの体験から↓
- 今月末、東大での学会で発表予定 - 「インタラクティブデザインにおけるChatGPTとの遊び方について」
- 東京大学 副学長(教育・情報担当)の声明 (4月3日)
- 武蔵野美術大学 学長の表明 (5月11日)
- 簡単なデモ ★ ★
- 「画像生成AI」について
- 「画像生成AIで静止画作品を作って提出」課題のための出題
- 自由テーマではありません。テーマについてここで詳しく紹介します
- 長嶋は作曲家/指揮者です ★★ 。過去に作曲した作品の記録としては、 ライヴComputer Music作品 や 電子音響音楽作品 などがありますが、学生時代に作曲していた100曲ほどの 「合唱曲」作品 もあります
- 大学2回生の時に作曲した合唱曲があるコンテストに入選して、生まれて初めての 海外旅行(グアム・サイパン) を獲得しました
- 合唱曲は主として古本屋で仕入れた詩人の詩集からテキストを使ったのですが、その中に「草野心平」(草野民平・草野天平と3兄弟の詩人)の印象的な詩がありました。これらの詩集(計30冊以上)は全てSUAC図書館に寄贈しました
- ただしどうやってもその世界を合唱に出来なかったのが「草野心平」でした
- これをComputer Musicの作曲家となって1990年代に作曲した電子音響音楽作品が「Ogress2」(鬼女)です。詳細は ここ にあります
- その他に草野心平の詩を用いたComputer Music作品としては、2001年にドイツで公演した作品 Visional Legend ★ があります
- この作品(10分52秒)をサウンドトラックとして提供するので、ぜひ映像作品を制作して欲しい・・・というのを23年間、SUAC学生に願い続けてきましたが果たされていません
- 唯一、1期生の大山さんがこの作品のイメージの 静止画 を描いてくれたので、その静止画をプロジェクションして再生演奏した事がありました
- そこで今回、「生成AI」テーマでの課題として、この長嶋作品を鑑賞して、その印象/世界感を表現する静止画作品をAIに生成させる・・・というoptionalコースを設定しましたので、やってみたい人はどうぞ
- その結果が これ です
- 次回の予告
- Max8でMIDI楽器音でなく「生のサウンド」を扱おう(シンセシス、エフェクト)
- 宿題 今日、やってみたMaxの使い方について理解・整理しておくこと(予習は不要)
- 7日目(2023.06.02)
- ここまでは「MIDI楽器音データ」でしたが、ここからMaxで「サウンド」そのものを扱います(MSP)
- 本日のサンプルパッチ
- MSPに進んでみよう part1 - シンセサイザを作ろう
- Maxの機能(MIDI情報処理)をサウンドに拡張させたMSP(Max Signal Processing)
- サウンドの情報は「黒い線」でなく「黄色と黒の縞模様の線」である
- MSPのオブジェクトは名前の最後に「~」(チルダ)が付く
- オーディオのON/OFF - マイクとスピーカは同時に動作する
- マイク入力とオーディオメーター/レベルメーター - audio001
- マイク入力で(叫ぶ/手を叩く)ドラムマシンのスタート/ストップ制御なんてカンタン(^_^)
- マイクかスピーカに「1」を入れるとON、「0」を入れるとOFF
- スピーカ出力とオーディオボリューム
- サウンド・シンセシスのもっとも基本はサイン波形の「cycle~」 - audio002
- サウンドの波形を見るオブジェクト「scope~」 - audio003
- サイン波以外の原波形 : 「rect~」(方形波)・「tri~」(三角波)・「saw~」(鋸歯状波) - audio004
- 波形の違い → 音色の違い
- ピッチ(周波数)と人間の可聴領域 ※サイン波(高次倍音ナシ)で考える
- 音楽的ピッチ(音階)とピッチとの変換「mtof」「ftom」 - audio005
- 「12等分平均律」と「純正律」 (★)
(→興味のある人は長嶋が書いた 音律について を調べてみよう)- ホワイトノイズ(あらゆる周波数成分を含んでいる)は「noise~」 - audio006
- 音量を変えたかったら「*~」を乗算する。値の範囲は「0.0〜1.0」 - audio007
- ノイズを早くON/OFFしたらどうなるか? - audio008
- 一定時間で変化する「line」の出力をノイズに乗算してみる - audio009
- ここまでの要素を合体させる(004と005と009)と → 「超簡単シンセサイザ」になる - audio010
- 「時報」を自動生成するパッチは?
- エンベロープ(音量の時間変化)特性を加える - audio011
- デチューンで音色変化 - audio012
- フィルタもエンベロープで動かす : 古典的「アナログシンセサイザ」 - audio013
- プリセットと組み合わせる - audio014
- 全く異なる音源方式:「FM音源」 - audio015
- 次回は「何か(お気に入りの音/曲の断片など)のサウンドデータ」を持参して下さい
- 古い「いろはす」の空きペットボトル(薄いもの。新しい厚いものは不適)も可能なら持参してください
- 次回の予告
- 引き続きMax8で「生のサウンド」を扱おう
- 宿題 今日、やってみたMaxの使い方について理解・整理しておくこと(予習は不要)
- 8日目(2023.06.09)
- 先週の「FM音源」のちょっとしたデモ(Performance) - 筋電センサ(Myo)とリアルタイム3Dグラフィック(jitter)と共に
↑初演した欧露ツアー2016- この前期に「サウンドデザイン」と並行して「基礎演習E」を履修している人に連絡
- 2021年にはそのパターンで3回生レベル以上まで頑張った学生が二人いました
→ SUACインスタレーション(5)の2作品- いずれも3Dプリンター/レーザーカッターを活用し、Max8も頑張りました
- 「うちでのShakin'」 ★
- 「Frog Live ~ in REAL-TIME」 ★
- ただしこれを支援するために、ほぼ毎週、講義とは別にアポを入れて取り組んできました
→ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ 最終合評- 覚悟がある人は挑戦してみましょう。上限2人までです
- 1回生後期に「基礎演習E」を履修した人でこういう作品に挑戦したい人 → 「夏休み自主制作」(要アポ)、または後期の「インタラクティブプロダクト演習」・「メディア数理造形演習」をどうぞ
- 本日のサンプルパッチ
- MSPに進んでみよう part2 - シンセサイザに変調(Modulation)を加える
- 「アナログシンセサイザ」モジュール - audio016
- 振幅変調(AM)をかける - audio017
- リング変調(RM)をかける - audio018
- 周波数変調(FM)をかける - audio019
- データの「サンプル/ホールド」(S/H)について
- S/Hと直線補間 - control_1
- S/Hと指数関数的補間 - control_1
- MSPに進んでみよう part3 - サンプリング
- 「サンプリング」してみよう - audio020
- 「サンプリング」とはバッファメモリにサウンドファイルをレコーディングすること
- メモリの確保「buffer~」 : 叩くと波形が表示されるウインドウが出てくる
- メモリへの記録「record~」
- ステレオ(2ch)での「サンプリング」 - audio021
- 「waveform~」でパッチ内に波形を表示できる - audio022
- メモリからの再生は「play~」
- スピードや時間的方向を変えて再生してみよう - audio023
- 「buffer~」からファイルへの書き出し - audio024
- ファイルから「buffer~」への読み込み - audio024
- 「ゴジラが吠える」サウンドを作って記録しよう - audio025
- 「いろはす」ボトルから出るノイズを音源に使う
- 自分の声でハモッてみよう(^_^) - audio026
- 長嶋がMaxサウンド作曲で依頼された仕事2件(2002年・夏) → 宇宙人音楽と人体音楽の作曲事例報告
- オペラ「宇宙人の声」生成
→ これがその パッチ- SONY ネットMDウォークマンラジオCM 「人体の音楽」編 ※ACC(日本シーエム放送連盟)フェスティバル入賞
- 次回の予告
- 引き続きMax8で「生のサウンド」を扱おう
- 宿題 今日、やってみたMaxの使い方について理解・整理しておくこと(予習は不要)
- 9日目(2023.06.16)
- 本日のサンプルパッチ
- 先週の「自分の声でハモる」の上級編について
- 「buffer~」を「play~」で呼び出すために「line~」の時間を指定する方法だと、高いピッチの再生時間が短くなる
- これを避ける魔法のオブジェクトが「pitchshift~」というもので、内部的には結構処理をしている
- ピッチの指定は「cent」数。100セント=半音、200セント=全音、1200セント=オクターブ
- 実際の使い方は簡単 - audio027
- MSPに進んでみよう part4 - サウンドファイルの再生
- サウンドファイルの種類と特徴
- 「音楽ファイル」には大きく2種類ある
- 「MIDIファイル」 --- 音楽演奏情報を記録したデータファイル。再生系でサウンド合成(シンセサイズ)する必要がある。サイズが非常に小さい
- 「サウンドファイル」 --- サウンドを曲ごとサンブリングしたデータファイル。非圧縮だとかなり大きくなるが、mp3は1/11ぐらいに圧縮している
- サウンドファイルを再生するのは「sfplay~」 - audio028
- 「open」によってファイルを指定する。mp3もOK
- 「0」でストップ、「1」でスタート
- defaultはLoop再生OFF、右端出力「再生終了」のbangで再び「1」を叩くとループする
- 初期化の際に「loop 1」を入れておけばずっとLoopする - audio029
- 音量フェーダーは「*~」で0から1までの値を乗算する - audio030
サウンドに乗算される値は「0.0」から「1.0」までがフルスケール ※持ち上げる場合には「割れ」に注意
「プチ」を無くすのはサウンドデザインの最初のマナー- ステレオの音像移動も簡単 - audio031
- サウンドファイルへの録音は「sfrecord~」 ※ヘルプで調べてみよう
- より高度な(DJ的)再生「groove~」 - audio032
ループのON/OFFとともに再生スピードのスライダーのvalueインスペクタを「float」に設定するサンプル
再生速度を変えてミックスして「ハモり」を作るには??- MSPに進んでみよう part5 - サウンドのエフェクト
- 振幅変調(AM) 低速版 - audio033
- 振幅変調(AM) 高速版 - audio034
- リング変調(RM) - audio035
- ディレイ - audio036
- ディレイをオリジナルと重ねると面白くなる - audio037
- 周波数変調(FM) - audio038
- 「FIFOメモリ」(リングバッファ)とは → 「tapin」「tapout」
単純に遅らせるのは「delay~」だが、FIFOメモリでは「マイナスのdeley(→未来(^_^;))」も出来る- ディジタルフィルタとイコライジング - audio039
- リバーブ - 本格的にはフィルタとタップを多段に駆使する! - audio040
- 電子音響音楽(Electroacoustic Music / Acousmatic)について
- 長嶋が2004年にParisのワークショップで作曲した電子音響音楽作品"Coin's Journey"の 解説
- これに関してCOVID-19下の完全オンラインで学生が書いたレポートの一部
電子音響音楽作品サンプルとして紹介されていた中では、私は"Coin's Journey"が一番気に入りました。最初にシンプルなコインの落ちる音から入って、だんだん加工が入り盛り上がったり。突然休符が入ったかと思うと最初の音からは想像もつかない音が流れ出したり、少ない音からなっていてもなお展開にドラマ性を感じるのがおもしろかったです。余韻の残る終わり方も素敵だなと思いました。- これに関して長嶋がコメントした内容
"Coin's Journey"について、頑張って資料を発掘して、 こんなページ を作りましたので、ぜひご覧ください。僕が2004年の7-9月に58日間、欧州に行ったのですが、そのうちパリで開催されたMOTUSワークショップで作曲しました。このmp3サウンドはステレオですが、実は「アクースモニューム」という、フランス独自のシステムで「再生」というよりも「演奏」するために作曲しています。客席を多数のスピーカ(別々に駆動される)が取り囲んでいるのですが、一例として、客席からみて前方の左右にスピーカがあり、また客席の後方にも左右にスピーカがあると想像してみて下さい。僕は自分の作曲の中で、ある特徴的な音が「左から右に吹っ飛ぶ」ように仕組んでいたとします。この音が鳴るタイミングで、あらかじめ大きくしてある「前方ペア」の音量スライダーを下げつつ、同時にあらかじめ小さかった「後方ペア」の音量スライダーを上げたとするとどうなるでしょうか。その特徴的な音は、客席の聴衆の頭の上を「左前方から右後方に吹っ飛ぶ」ことになるのです。音源はステレオのCDですが、あのコンソールは音をミックス「入力」するのでなく、客席を取り囲む多数の(音響特性の違う)スピーカ群にサウンドを送り出す「出力」コントローラなのです。写真と解説を参照して、ぜひその雰囲気を想像してみて下さい(^_^)- その「アクースモニューム」での演奏の様子(movie)
- 次回の予告
- Max8を外部のセンサとつないでみよう(→実戦的Arduino活用入門)
- 宿題 今日、やってみたMaxの使い方について理解・整理しておくこと(予習は不要)
- 10日目(2023.06.23)
- 先輩作品「世界キーボード」の紹介・体験・解説
- Max8を活用したインタラクティブ作品の好例
- 清水秋月さん(→今年 YAMAHA 入社(^o^))が2回生後期「インタラクティブプロダクト演習」にて制作
- 実際に体験してみよう
- 世界各地の音楽BGMと、適当に弾いてもその音楽に合ったアドリブ演奏できる鍵盤
- カシオのミニキーボードを分解してArduinoから「MIDIキーボード化」
Arduino microでだけ特別に実現できる技術 (↓以下で解説します★)- レーザーカッターでの世界地図と「駒」の制作
- 「駒」の底部にはネオジム磁石
- 各地の「穴」に磁気スイッチ
- Arduinoで磁気スイッチをセンシング
- BGMパートは事前にGarageBandで制作
- 鍵盤の演奏はそのままでなく、BGMに該当するスケールでMIDI音源から鳴らす
- "TouchMIDI32"について★
- システムの「オーディオMIDI設定」
- "touchMIDI32"を繋いでみると・・・
- 「notein」オブジェクトを叩いてMIDIポートとして"touchMIDI32"を指定する
- 人体が触れると32種類のノート情報が発生するセンサ
- 内蔵音源を鳴らすシステムと結び付ける
- パーカッション(MIDI 10ch)は簡易な効果音として活用できる
- 「楽器音」もその楽器の推奨音域から大きく外すと特殊な効果音のように使える
- 「delay」の連鎖で簡単なチャイムを作ってみよう
- 「正解」に使われる「ピンポン」を作ろう
- 「不正解」に使われる「ブッブーー」を作ろう
- 過去の「サウンドデザイン」課題作品より (参考用。一部バグあり注意(^_^;))
- 最終課題
(1)オリジナルのサウンド(BGM/SE)と(2)Maxアニメーションに(3)インタラクティブな要素を加えた、一種のゲーム/インスタレーション(体験型マルチメディア作品)とも言えるMaxパッチ
- 提出締切 7月27日(木) ※最終合評当日(7/28)の朝の提出はNG
- ここまで学んだ全てのまとめ
- 表示用lcdスクリーンのサイズは「640*480」として、画面左上端に置いて保存すること
- メインのMaxパッチもそのすぐ横に置いて保存すること
- 自分の学籍番号のフォルダを作って、その中に必要なデータ等だけを全ていれて、zipに圧縮して提出
※ 制作途上版など不要なMaxパッチ等は消しておくこと- メインのMaxパッチは「学籍番号.maxpat」として、参照されるデータ(サウンド、画像など)も横並びに置く。ファイル名は「半角英数字」にしないと悲しい事が起きるかも・・・
- 課題作品は後日、Web(長嶋ページ)に置く可能性があるので、著作権に配慮してオリジナルであること
- 課題制作のための別の日の作業、「課題回収用HDD」などは実習指導の藤石さんに問い合わせること
- 今後の講義時間はほぼ、それぞれ個別の制作を支援しますので、「ここまで出来ていて」「ここが出来ない」というポイントまで整理しておくこと
- データは講師席の「課題回収用HDD」の提出用フォルダ「サウンドデザイン」と、藤石さんが用意する講義用USBメモリの両方に入れること。自分のバックアップも別に必ずとっておくこと
- 来週以降も時間の大部分を「課題制作支援」に割り当てます
- 11日目(2023.06.30)
- 本日のサンプルプログラム (Arduinoスケッチ、Max8パッチ)
- 「ArduinoをMax8の出張所(多数センサ)にする」方法について
- マルチメディア室は環境の関係で各自がログインした状態ではArduino書き込みが出来ないので、書き込み完了した教材を配布貸与します
- 自分のパソコンで自分のArduinoに書き込むのは、興味があれば別途に自分で試してみて下さい
- Arduinoプログラムは以下のようにとっても簡単です(^_^)
void setup(){ Serial.begin(115200); } void loop(){ int x = 0; for (int pin=0; pin<6; pin++){ x = analogRead(pin); sendValue (x); } Serial.println(); delay (20); } void sendValue (int x){ Serial.print(x); Serial.write(32); }- このArduinoプログラムは、以下のように動作します
- シリアル通信のスピードを115200bps(Bluetoothと同じ)に初期設定
- ★ アナログ[A0]の電圧を取得(0〜1023)
- その数値をシリアル出力し、さらに半角スペースをシリアル出力
- 次はアナログ[A1]、アナログ[A2]・・・・とアナログ[A5]まで6系統を同様に処理
- 最後に「改行」コードをシリアル出力
- 20msecの足踏み (→これにより毎秒およそ50回の6チャンネルデータを送る)
- ★に戻る (無限ループ)
- つまりこのArduinoのセンシングは、USBが接続され電源が来ると、相手の有無に関係なくシリアルデータを送り続ける
- これを確認するには、Arduino IDEを立ち上げてボードとシリアルポートを設定して、「シリアルモニタ」を起動する
- 「シリアルモニタ」はスピードを115200bpsに設定すること
- Max8側のパッチ「receive_6channels.maxpat」は以下のように使います
- (1)の「print」を叩いて、Maxコンソールに表示された「serial = 」というのをチェックする
- (2)のメニューから、そのシリアルポート(usbserialなんとか)を選ぶ
- (3)のトグルをONにする
- これで6チャンネルのアナログ入力の数値(0〜1023)が来る
- さらにグラフでも表示される
- 「入力データに変化が無い」場合にはデータが止まってグラフが進まないことに注意 (常に入力したい場合には?)
- Arduinoのアナログ入力端子がオープン状態だとノイズが乗る/前チャンネルの値に引っ張られることに注意 !!
- Arduinoのアナログ入力へのセンサ類の繋ぎ方(1) スイッチ
- 物理的なスイッチ、あるいは磁力によってON/OFFする磁気リードスイッチ
- スイッチの他に「プルアップ抵抗」(4.7kΩ〜10kΩ)が必要
- Arduinoの「+5V」からプルアップ抵抗を経由してスイッチの片方とアナログ入力に接続
- スイッチのもう片方はArduinoのGNDへ
- スイッチOFF(開放)だとアナログ入力は「HIGH」(+5V)
- スイッチONだとアナログ入力は「LOW」(GND=0V)
- Arduinoのアナログ入力へのセンサ類の繋ぎ方(2) 「抵抗値変化」タイプの受動センサ
- 「物理量に対応して抵抗値が変化する」というタイプのセンサ(素子)の場合
- 受動素子なので電源は不要で基本的に2端子
- 光センサの「CdS」(硫化カドミウムセル) - 受光量によって抵抗値が変化する
- 曲げセンサの「歪みゲージ」 - 変形(ベロ状のものを曲げる)によって抵抗値が変化する
- 「感圧センサ」 - 押されることによって抵抗値が変化する(誤差は大きい)
- 「導電ゴム」シートも感圧センサとして利用できる - 電極(ホッチキスの針など)を差し込む
- 「磁力センサ」 - 磁気によって直流抵抗が変化する半導体素子(CdSを置換)
- センサの他に「分圧抵抗」が必要
- 「分圧抵抗」の値はセンサの検出範囲(抵抗の最大値と最小値)から検討する必要あり
→この設定を誤るとセンサとして役立たないので注意- Arduinoの「+5V」からセンサを経由して分圧抵抗の片方とアナログ入力に接続
- 分圧抵抗のもう片方はArduinoのGNDへ
- 出力電圧はフルスケール(0V〜5V)よりもだいぶ狭くなるのでプログラムで調整する
- Arduinoのアナログ入力へのセンサ類の繋ぎ方(3) 可変抵抗(ボリューム)
- 回転タイプでもスライドボリュームでも全て同じ
- ジョイスティックでは2個のボリュームが直交している
- ボリュームの抵抗値は5kΩから100kΩの範囲、あまり数値が小さいと壊れるので注意
- ボリュームの片端はArduinoの「+5V」へ
- ボリュームのもう片端はArduinoのGNDへ
- ボリュームの中央(移動接点)はArduinoのアナログ入力に接続
- これで0V〜5Vが得られる
- Arduinoのアナログ入力へのセンサ類の繋ぎ方(4) 機能性センサ(電源必要)
- 電子回路の載ったセンサモジュール(電源/信号は+3.3Vでなく+5V)
- Arduinoの「+5V」からセンサの「+5V」へ
- ArduinoのGNDからセンサの「GND」へ
- センサの「OUT」からArduinoのアナログ入力に接続
- これで電圧が得られるが、その範囲は0V〜5Vよりも狭くなるので注意(データシート参照)
- (再)Arduinoのアナログ入力端子がオープン状態だとノイズが乗る/前チャンネルの値に引っ張られることに注意 !!
- Arduinoからのアナログ入力(0〜1023)をMax8で使うのに便利な「scale」オブジェクトについて
- 各自の「最終課題」制作支援
- 表現に必要な素材(透過png画像、サウンドなど[ファイル名は半角英数字のみ!!])は全て用意してください
- 「ここまで出来ていて」「ここが出来ない」というポイントまで整理してください
- 今更ゼロから「こういう事をしたいのですが・・・」はナシ。自分で出来ることから積み上げよう
- これまでの講義の復習が不足していると思われる人への対応は後回し
- Max8に関してなんでも質問に答えます (後期に扱うMax8の上級機能については今回はパス)
- 長嶋はいつも18時過ぎには帰宅するのでそれ以降のメイルは読めません(翌朝7時頃に研究室に出てきて読みます)
- 最終課題の提出締切は 7月27日(木) ※最終合評当日(7/28)の朝の提出はNG
- 来週以降も時間の大部分を「課題制作支援」に割り当てます
- 12日目(2023.07.07)
- ゲーム(連打)や自然界のセンサデータ(ノイズが乗っている)の処理に有効なのが「不応期」アルゴリズム
これは生命体(人間の神経細胞)などの振る舞いと同じ- 各自の「最終課題」制作支援
- 表現に必要な素材(透過png画像、サウンドなど[ファイル名は半角英数字のみ!!])は全て用意してください
- 「ここまで出来ていて」「ここが出来ない」というポイントまで整理してください
- 今更ゼロから「こういう事をしたいのですが・・・」はナシ。自分で出来ることから積み上げよう
- これまでの講義の復習が不足していると思われる人への対応は後回し
- Max8に関してなんでも質問に答えます (後期に扱うMax8の上級機能については今回はパス)
- 長嶋はいつも18時過ぎには帰宅するのでそれ以降のメイルは読めません(翌朝7時頃に研究室に出てきて読みます)
- 最終課題の提出締切は 7月27日(木) ※最終合評当日(7/28)の朝の提出はNG
- 来週以降も時間の大部分を「課題制作支援」に割り当てます
- 来週冒頭に「最終課題の構想/企画案」(PDFで1枚)をお互いに情報共有しますので用意してください
- 13日目(2023.07.14)
- 「最終課題の構想/企画案」(PDFで1枚)をお互いに情報共有しよう
- 各自の「最終課題」制作支援
- 表現に必要な素材(透過png画像、サウンドなど[ファイル名は半角英数字のみ!!])は全て用意してください
- 「ここまで出来ていて」「ここが出来ない」というポイントまで整理してください
- 今更ゼロから「こういう事をしたいのですが・・・」はナシ。自分で出来ることから積み上げよう
- これまでの講義の復習が不足していると思われる人への対応は後回し
- Max8に関してなんでも質問に答えます (後期に扱うMax8の上級機能については今回はパス)
- 長嶋はいつも18時過ぎには帰宅するのでそれ以降のメイルは読めません(翌朝7時頃に研究室に出てきて読みます)
- 最終課題の提出締切は 7月27日(木) ※最終合評当日(7/28)の朝の提出はNG
- 授業アンケート(manabaでやっておいて下さい)
- 来週も時間の大部分を「課題制作支援」に割り当てます
- 14日目(2023.07.21)
- Firmataとmaxuinoについて
- ArduinoにFirmataを書き込む(プログラミング不要、OpenSourceで提供されているものをそのまま書き込むだけ)
- これで、Arduinoは各種環境(processing, python, perl, ruby, clojure, javascript, java, .NET, Flash/AS3, Pharo, PHP, Haskell, iOS, Dart, Max/MSP, Elixir, Modelica, Go, vvvv, openFrameworks, Rust, PureData, CommonLisp, Unity, ...)の出張所として活用できる ★
- Firmataを書き込んだArduinoをMax8の出張所に使うのがmaxuino
- ここからダウンロードする
- 関連したファイルもパッチと同じ場所に置く必要があるので注意 (長嶋が整備したサンプルはこれ)
- 数値は「0.0〜1.0」として表現される
- 各自の「最終課題」制作支援
- 表現に必要な素材(透過png画像、サウンドなど[ファイル名は半角英数字のみ!!])は全て用意してください
- 「ここまで出来ていて」「ここが出来ない」というポイントまで整理してください
- 今更ゼロから「こういう事をしたいのですが・・・」はナシ。自分で出来ることから積み上げよう
- これまでの講義の復習が不足していると思われる人への対応は後回し
- Max8に関してなんでも質問に答えます (後期に扱うMax8の上級機能については今回はパス)
- 長嶋はいつも18時過ぎには帰宅するのでそれ以降のメイルは読めません(翌朝7時頃に研究室に出てきて読みます)
- 最終課題の提出締切は 7月27日(木) ※最終合評当日(7/28)の朝の提出はNG
- 授業アンケート(manabaでやっておいて下さい)
- 15日目(2023.07.28)
- 「最終課題」合評
- 授業アンケート(まだの人はmanabaでやって下さい)
- 関連資料・リンク