このプログラムは20世紀で最も重要な作曲技法の一つである、12音技法による無調音楽を生成するmax/mspパッチです。音列の変形をシステマティックに応用するアルゴリズムであるため、無調音楽のみならず音列を利用した調性音楽、ダイアトニック音楽にも応用可能です。
シェーンベルクと無調音楽
19世紀後半から20世紀前半にかけて飽和状態にあった調性音楽に変わる、新たなトーンシステム、秩序による無調音楽の生成技法として12音技法が生まれました。
創始者はウェーベルンともハウワーとも言われていますが、最重要人物がアルノルト・シェーンベルク (Arnold Schoenberg: 1874- 1951)であることは疑いの余地がありません。
シェーンベルクとその弟子のウェーベルン (Anton Webern: 1883- 1945)、ベルク (Alban Berg: 1885- 1935)はまとめて新ウィーン楽派(Second Viennese School)と呼ばれています。
この12音技法はあくまで無調音楽を作り出すことを目的とした技法であり、非常にシステマティックで厳格な規則に基づいています。
この特徴は現在でも多くの調性音楽支持者、作曲家から批判を受ける部分でもあります。特に戦前まではナチスドイツやソ連では退廃的、反体制的という理由で排除されていました。戦後は、芸術音楽はもはや無調であることが当然になり、特別のことではなくなったこともあり、ストラヴィンスキー、ベリオ、ペンデレツキなど主要な作曲家は皆無調音楽を作曲するようになりました。
12音技法の極端なまでにシステマティックに音楽を作曲する方法は、言い換えればアルゴリズムとして記述し易いということでもあります。12音技法では調性的な音程や進行、特定のピッチへ重心を置くことは偶発的であったとしても、特定の調を連想させてしまい、無調という特殊な音空間を実現するためには避けなければいけません。
ベルクのようにあえて調性的な音列を選び12音技法を実行した作曲家もいますが、"調を感じさせない"という意味の無調音楽とは呼べないでしょう。無調音楽にはいくつかの解釈があり、全音音階やオクタトニック音階など調性ではない音楽をすべて無調とする視点と、厳格に調性感を全て排除し、ホワイトノイズのように全てのピッチに同等の価値を与えた12音技法のみを指す視点があります。
十二音技法によって体系付けられた作品としては以下の楽曲があげられます。
Alban Berg
Wozzeck
Violin Concerto
Lulu
Arnold Schoenberg
Waltz from 5 Klavierstücke, Op. 23
Serenade, Op. 24
Suite for Piano, Op. 25
Wind Quintet, Op. 26
Suite for piano, piccolo clarinet, clarinet, bass clarinet, violin, viola, and cello, Op. 29
String Quartet No. 3, Op. 30
Variations for Orchestra, Op. 31
Von heute auf morgen, Op. 32
Klavierstück, Op. 33a
Klavierstück, Op. 33b
Moses und Aron (incomplete)
Begleitungsmusik zu einer Lichtspielscene (Drohende Gefahr, Angst, Katastrophe), Op. 34
Concerto for Violin and Orchestra, Op. 36
String Quartet No. 4, Op. 37
Concerto for Piano & Orchestra, Op. 42
String Trio, Op. 45
A Survivor from Warsaw, Op. 46
Fantasy for Violin & Piano, Op. 47
"Sehr langsam" and "Rasch, aber leicht", from Op. 19
Anton Webern
Three Lieder, for voice, E flat clarinet and guitar, opus 18 (1925)
Two Lieder, for mixed choir, celesta, guitar, violin, clarinet and bass clarinet, opus 19 (1926)
String Trio, opus 20 (1927)
Symphony, opus 21 (1928)
Quartet for violin, clarinet, tenor saxophone and piano, opus 22 (1930)
Three Songs on Hildegard Jone’s Viae inviae, for voice and piano, opus 23 (1934)
Concerto for flute, oboe, clarinet, horn, trumpet, violin, viola and piano, opus 24 (1934)
Three Lieder on texts by Hildegard Jone, for voice and piano, opus 25 (1934-35)
Das Augenlicht, for mixed choir and orchestra, on a text by Hildegard Jone, opus 26 (1935)
Variations, for solo piano, opus 27 (1936)
String Quartet, opus 28 (1937-38) – the tone row of this piece is based around the BACH motif
Cantata No. 1, for soprano, mixed choir and orchestra, opus 29 (1938-39)
Variations, for orchestra, opus 30 (1940)
Cantata No. 2, for soprano, bass, choir and orchestra, opus 31 (1941-43)
Igor Stravinsky
Cantata (1952)
Three Songs From Shakespeare (1953)
In Memoriam Dylan Thomas (1954)
Agon (1957)
Threni (1958)
Movements for Piano and Orchestra (1958-59)
A Sermon, A Narrative, and a Prayer (1961)
The Flood (1962)
The Dove Descending Breaks the Air (1962)
Variations (Aldous Huxley in Memoriam) (1963/1964)
Requiem Canticles (1966)
Milton Babbitt
Virtually all published works after 1947
Luigi Dallapiccola
Virtually all published works after 1942
12音列技法
調性音楽には和声法のような、音楽に調性感を出すための規範がありますが、無調音楽はいかにして無調という状態を作り出すことができるでしょうか。乱数などを用いてただ無作為にに音を並べただけでは厳密な無調を作り出すことはできません。
まず、最初に1オクターブの12半音を重複なく1回ずつ使用した音列を作ります。12個のピッチクラスからなる音列は12!(=479,001,600)通り存在しますが、この選択の時点で音楽自体のキャラクターがかなり決定的になります。調性音楽で考えるならばここが調のような機能を果たします。12個全てのピッチクラスがこの順番に全て出現するまでは、反復して特定の音を用いることはできません。ただし、和音として、連続するいくつかのピッチクラスを同時に鳴らすことは可能です。和音として同時に鳴らす音の組み合わせを一周するごとに様々に変えることで、一つの音列からでも様々な楽想を生み出すことが可能です。
音列の変形
1つの音列そのまま延々と繰り返すことは、音楽的な退屈をもたらすと考えられ、12音技法ではTranspositionと呼ばれる技法で音列のピッチを移高し転調のように音の組み合わせを変化させることを許しました。これは12種類の音列のバリエーションをもたらします。それ以外に以下の3種類の音列の変形が許可されています。この変形は12音技法だけに見られる特殊な変形ではなく、古くは中世やルネサンス期のカノンにも見られた技法です。
Inversion (反行)
Inversionは音列の最初の音を軸に上下を鏡に映したように反転してさせる方法です。この反転軸をシフトさせることも可能で、12通りの反行の音列を作り出すことができます。
Retrograde (逆行)
Retrogradeは音列を左右逆から順番に読み替えるものです。これも全体のピッチを移高することでInversion同様12種類の音列を作り出すことが可能です。
Retrograde Inversion(反逆行)
Retrograde Inversionは反行と逆行を組み合せたもので、Invertした音列を左右逆から読み替えるものです。これも移高を組み合わせ12通りの音列を生み出すことが可能です。
このようにTransposition、Inversion、Retrograde、Retrograde Inversionを組み合わせると、1つの音列から48通りの音列を副次的に生成することが可能になりますが、12音列技法ではこの変形以外の方法は行わず、あくまで一つの音列をベースにそれを変形させ音楽を作曲する必要があります。
Javaによる変形アルゴリズム
以下に示すソースはTranspositionを実行するTn.java、Inversionを実行するTnI.java、Retrogradeを実行するRn.java、Retrograde Inversionを実行するRnI.javaのソースです。
これらはコンパイル後max/mspのmxjオブジェクトで読み込み、メッセージオブジェクトに記述した数列を変形させ、リストとして出力するオブジェクトになります。mxj用のjavaのコンパイルの方法はこちらでご紹介しています。
Tn.java
package m; import com.cycling74.max.*; public class Tn extends MaxObject { int N=0; public Tn(Atom[] args) { declareAttribute("N"); } public void list(int[] a) { int len = a.length; int[] b = new int[len]; for (int i=0;i= 12){ b[i]= b[i] -12; } } outlet(0, b); } }
TnI.java
package m; import com.cycling74.max.*; public class TnI extends MaxObject { int N=0; public TnI(Atom[] args) { declareAttribute("N"); } public void list(int[] a) { int len = a.length; int[] b = new int[len]; int[] c = new int[len]; int[] x = new int[len]; for (int i=0;i= 12){ c[i]= c[i] -12; } } outlet(0, c); } }
Rn.java
package m; import com.cycling74.max.*; public class Rn extends MaxObject { int N=0; public Rn(Atom[] args) { declareAttribute("N"); } public void list(int[] a) { int len = a.length; int[] b = new int[len]; for (int i=0;i= 12){ b[i]= b[i] -12; } } outlet(0, b); } }
RnI.java
package m; import com.cycling74.max.*; public class RnI extends MaxObject { int N=0; public RnI(Atom[] args) { declareAttribute("N"); } public void list(int[] a) { int len = a.length; int[] b = new int[len]; int[] c = new int[len]; int[] x = new int[len]; int[] d = new int[len]; for (int i=0;i= 12){ c[i]= c[i] -12; } } outlet(0, c); } }
Max/MSPパッチの概要
このパッチでは大きな流れとして、まず音列は自分で決定する必要があります。それに対して2種類のシンメトリックなパターンのリズムをつけ、変形を自動的に行うアルゴリズムになっています。
ここでは歴史的に使用されている音列から、クロマティックスケール、5度圏によるダイアトニックを連想させるスケール、ホールトーンスケールを連想させる12音列を用意しています。
同じリズムや変形の規則を用いていても音列を変えることで音楽の性質が大きく異なるということが耳でも知覚できるでしょう。
変形
変形は一つの音列の全てのピッチクラスが使用された段階で、bangを受けとり、Tn (移高)もしくはTnI (反行と移高の組み合わせ)の変形を行います。移高指数(0から12まで)とどのタイプの変形を(Tn、TnI)行うかはランダムに決定されます。
デモ映像
Max/MSPパッチのダウンロード
serial_music.mxf (for Max5.x)
max5Runtime(上記のMaxパッチの実行用フリーソフトウェア for Mac)
max5Runtime(上記のMaxパッチの実行用フリーソフトウェア for win)
参考文献/音源