Max/Msp/Jitter

Basic

Max
Object Oriented Programming
Shortcut
ToolBox
Mathematics
Physics
Probability
External Object
MIDI
DMX

Advanced

Psychoacoustics
mxj (Java Class Object)
Arduino
OSC

DSP/Synthesis

Recording & Playback
Time Stretching & Pitchshifting (ableton Live)
Wavetable Synthesis
White Noise (Joji Yuasa)
Sampleing & Processing (Autechre)
Scratching (Grandmaster Flash)
Glitch (Oval)
Theremin (Léon Theremin)
Comb Filter (Paul Lansky)
Auto Tune (Perfume)
Harsh Noise (Merzbow)
Vocal Chop (Prefuse73)
Blur (Akihiko Matsumoto)
Freeze (Jean-François Charles)
FM Synthesis (John Chowning)
Granular Synthesis (Iannis Xenakis)
Phase Vocoder (Charles Dodge)
Convolution (R.Luke Dubois)

Composition

Algorithmic Composition (David Cope)
Chaos Theory (Edward Lorenz)
Genarative music (Brian Eno)
Phasing (Steve Reich)
Markov Chain (Gregorian Chant)
Parallel Organum (Musica enchiriadis)
Shepard Tone (Jean-Claude Risset)
Spectral Technic (Tristan Murail)
12Tone Serial technic (Webern)
Data Mapping (Guido Da Arezzo)
Schenker Theory (Heinrich Schenker)
Tonal Harmony (Jean-Philippe Rameau)
Tintinnabuli (Arvo Pärt)
monome (Brian Crabtree and Kelli Cain)
Golden Mean (John Chowning)
Analog Sequencer (Robert Moog)
Pitch-class Set Theory (Allen Forte)
Irregular Rhythm(Igor Stravinsky)
Iso Rhythm (Philippe de Vitry)
Rhythmic Mode (Notre Dame School)
Graphic Score (Morton Feldman)
Tone Cluster (Ligeti)
Brown Noise (Leonin)
Fibonacci Series (Bartok)
Fractal (Charles Dodge)
Stochastic technic (Xenakis)

Video

Chromakey (Peter Campus)
Transition

Openmusic

Operation

Spectral Harmony (Tristan Murail)
New Complexity (Brian Ferneyhough)
12 Tone operation (Arnold Schoenberg)
Contour Inversion
Morphing

RTcmix

Basic

RTcmix
Unix Command
Unix Directory
Emacs Command

Synthesis/DSP

Additive Synthesis
Subtractive Synthesis
FM Synthesis
Delay
Flange
Comb Filter
AM Synthesis
Granular Synthesis
Phisical Modeling Synthesis
Waveshape Synthesis
Wavetable Synthesis
Stochastic Synthesis
PVOC

Glitch / グリッチ

jitter glitch

音響を微細な時間軸に分解し、スライス、スキップさせながら再生し、新たな音響を再合成するグリッチ。

応用例としてJitterを映像用途ではなくグリッチ音響処理のプログラムとして利用する方法を解説します。

グリッチとは

言葉の語源はドイツ語のglitschig(滑りやすい)から来ているように、ドイツ語圏から始まった音楽のスタイルです。

音楽におけるグリッチとは回路の接触不良や、コンピュータの誤動作などで出てくるノイズのような音を素材とした音楽のジャンルの総称です。通常は望まず発生してしまったノイズを音響的に活用した音楽がグリッチです。

古くは80年代のファミコンのエラーによる持続音のノイズを何度も聞いた人は少なくないと思います。

音楽におけるグリッチは90年代のOval (オヴァル)のCDの盤面をマジックペンで汚し、わざと音飛びを起すことで得られる音をを音楽的に使う手法が音楽の表現では特に有名です。

日本では1985年に刀根康尚が壊れたCDをTechno Eden というパフォーマンスで使用したのが最初と言われています。アナログの時代では1970年代にターンテーブリストであったChristian Marclayが壊れたレコードをあえて自身のセットの中に加えていました。この壊れた音源を逆手にとって音楽に昇華するというアプローチがグリッチの原点です。

Oval

Ovalは1991年にドイツで結成された電子音楽のグループです。オリジナルメンバーはMarkus Popp, Sebastian Oschatz, and Frank Metzgerの3人でしたが、次第にメンバーは離脱し、最終的にはMarkus Popp(マーカスポップ)のソロユニットとなっています。

Ovalはシンセサイザーの組み合わせによって音を構成していく音楽制作の手法を否定し、変わりにCDに故意にフェルトペンで落書きをし、再生時にCDプレイヤーが音跳びを起こす音を採取し音楽的に並べていくという作曲手法をとりました。

Ovalprocess Ovalprocess
Oval

Thrill Jockey 2000-06-20
売り上げランキング : 74899

Amazonで詳しく見る

Max/MSPの音響処理を用いたアプローチ

コンピュータの音響処理ソフトを用いてグリッチの音を生成する場合、最もよく利用される方法があらかじめ録音された音のサンプルを細かくカットし、ランダムに再生させる方法です。ある意味、音跳びという現象そのものをアルゴリズム化したアプローチです。

以下は私が作成した、Max for Live上で動くグリッチエフェクトプラグインのデモ映像です。
このような音作りもMax/MSPでは簡単にできてしまいます。詳しいパッチの中身はM4L上で編集画面から確認できるので、ぜひ分析や改造にもご活用ください。

ableton M4L(Max for Live) Digital Glitch plugin

M4L Digital Glitcher (.amxd file)

 

Jitterの映像処理を応用したアプローチ

グリッチを発生させる方法として、Jitterを使うことも考えられます。これには少々回りくどいプロセスを踏みますが、音楽を映像化し、映像をJitterの映像処理オブジェクトで処理した後、再度映像を音楽化する流れになります。

Jitterを経由することによって、音響処理レベルでは不可能であった音響処理が可能になるため、映像作家でない音楽家にもJitterの積極利用をおすすめいたします。

音源を映像化する

jitter

音源の再生にはsfplay~オブジェクトを使用します。ここで再生されたオーディオシグナルはjit.catch~オブジェクトによって映像に変換されます。

jit.catch~オブジェクトは、オーディオシグナルデータをJitter マトリックス領域に移すこと音源を映像化します。

このオブジェクトは複数のシグナルの同期キャプチャをサポートしており、オブジェクトの第1のアーギュメントはシグナルインプットの数を設定し、それぞれ別のチャンネル用のインレットが作られます。

jit.catch~ オブジェクトは、@modeアトリビュートによって異なるモードで操作することが可能です。

このパッチの場合mode アトリビュートが 0 にセットされているため、jit.catch~ は前の bang を受け取ってから集められた全てのシグナルデータを出力します。オブジェクトが 最後に bang を受信してから512サンプルが受け取られた場合、1次元の、512のセルを持つ float32型のマトリックスが出力されます。

jit.catch~ の mode 0 と mode 1では、一度受信した全てのシグナル値を正確に出力しようとするのに対し、mode 2 と mode 3はそうではないという点に注意して下さい。

映像を音源化する

jit.release~オブジェクトはjit.catch~オブジェクトの反対の機能を持つオブジェクトです。

マトリックスデータがjit.release~オブジェクトに入力されると、マトリックスのプレーンごとに別々のシグナルを出力します。

jit.release~ オブジェクトは@latency アトリビュートを用いて、オーディオシグナルとして出力する前にどれくらいのマトリックスデータをバッファに蓄えておくかを設定することも可能です。これはバッファがアンダーフローすることを防ぐために必要なアトリビュートとなります。アンダーフローとは jit.release~ オブジェクトに対し、マトリクスを供給する側のオブジェクトが必要なデータを十分に供給できない状態を言います。

jit.catch~で取得したデータをマトリクスに並べる

jitter

jit.catch~オブジェクトは5msごとに1プレーンの新しいマトリクスデータを出力します。

これを縦に順番に配置しているのが左の写真のセクションです。5ms毎に出力されるマトリクスデータを縦に上から順番にならべています。

ここではdstdimstartとdstdimendメッセージとcounterオブジェクトを使い1500ms(300*5)毎にマトリクスデータの書き換えが発生するようなアルゴリズムを組んでいます。

その様子はjit.pwindowオブジェクトでも視覚的に確認することが可能です。

counterオブジェクトの第五インレットの最大値を変更することでjit.catch~から送られてくるマトリクスの集合を格納する最大数を変更することも可能になります。

Jitterでグリッチ

最後のセクションがグリッチの生成を行います。 ここで使用しているオブジェクトはdrunkオブジェクトです。

drunkオブジェクトはランダムウォーク、ブラウン運動をする乱数生成のためのオブジェクトです。第二インレットは乱数がとる最大値、第三インレットは運動する幅を設定することが可能です。

これを用いて、上のセクションで書き込んだマトリクスのどの一列を再度別のマトリクスに格納するかを決定します。drunkオブジェクトのランダムウォークによって再生される一列が決定されるため、入力されるオーディオシグナルの周辺のサンプルをランダムに再生することが可能になります。

しかし、これはオーディオ領域でのカットとは異なり、一度映像化しているため各ショットの繋がりはオーディオとは違った結果を返します。

グリッチのデモ映像

Max/MSPパッチのダウンロード

JitterGlitch.mxf.zip (for Max5.x)

max5Runtime(上記のMaxパッチの実行用フリーソフトウェア for Mac)

max5Runtime(上記のMaxパッチの実行用フリーソフトウェア for win)

Max/Msp Algorithmic Computer Music Online Tutorial