Quantum CreationQuantum Computing × Music
Research · Software · 2018–2020

量子ゲート音楽生成プログラム

旧Quantum Creationサイトに掲載されていたGUIと、5つの音楽生成モードの概要

ソースコードと操作画面

旧研究サイトでは、PythonとQiskitを利用し、量子ゲートの設定、測定、測定結果に基づく音列生成を行うGUIを紹介しています。5つのモードを備え、以下に掲載する図は旧サイトから回収したものです。

旧サイトで紹介されているGitHubコード ↗ 旧Codeページ ↗

このプログラムは、後に開発されたWebベースのQuantum-Game Dual Synthとは別のものです。

GUIの概要

主要な操作項目:Mode 1〜5の選択により、1音あたりの量子ビット数(Nbit_note)が変わります。Nnotesは時間方向の音符数で、Mode 1〜4では中央の操作列数に対応します。Mode 5は2人が各時刻に1音ずつ担当するため、4時刻なら8列を使用します。Nshotsは測定回数です。Measurementで測定、Playbackで結果を再生し、Stop Playbackで現在の測定系列の再生が終わった時点で停止します。Save GUI State/Load GUI Stateで設定を保存・復元できます。

ラジオボタンとスライダーは左から右へ時間順に並び、各モードで量子ゲートの意味が異なります。画面下部のビット列は右端が最初の音に対応し、通常の長さは Nbit_note × Nnotes です。各行には複数回の測定で得られた異なる結果が表示されます。

画面下部には測定ビット列が表示されます。右端のビットが時間的に最初の音に対応し、各行には測定結果が表示されます。

Mode 1 · 確率的音列生成

1音を1量子ビットで表現し、各時刻の測定方向をブロッホ球のx–z平面内で指定します(Y軸周りの回転角に対応)。測定結果0・1を五度圏上で増四度(トライトーン)離れた2つの音高に対応させます。時間方向に並ぶ量子ビットをCNOTゲートで結ぶことで、重ね合わせや量子もつれを含む音列の状態を構成し、測定によって実際に鳴る音を決めます。

旧サイトの設定例:Nnotes = 4でゲート1、2、3、4を選び、音高の組は G/F♯、G/D♭、D/A♭、E/B♭ です。Nshots = 10の例では異なる結果が6種類得られ、ビット列の右端から音として再生されます。「Use circuit drawer」を有効にすると、回路図が circuit_diagram.png として生成・保存されます。

Mode 2 · 音高と音価

1音を2量子ビットで表し、一方で音価(0=四分音符、1=二分音符)、もう一方でMode 1と同様の音高を決定します。CNOTの接続順序は「1音目の音価 → 1音目の音高 → 2音目の音価 → 2音目の音高 → …」です。音高どうしに加え、音高と音価の間にも量子的な相関を導入します。

旧サイトの設定例:Nnotes = 4、Nshots = 10でゲート1、3、4、6を選択し、音高の組は C/F♯、D/A♭、E/B♭、G/D♭ です。1音につき2ビットなので、測定結果は8ビットとなります。掲載例では10回の測定結果がすべて異なっていますが、常にそうなるわけではありません。

Mode 3 · コード生成

1音を3量子ビットで表し、|000⟩を休符、|001⟩から|111⟩を順に F、C、G、D、A、E、B に割り当てます。五度圏に沿った音高の符号化で、最下位ビットは5度、次のビットは2度、最上位ビットは3度の音程変化に対応します。選択したダイアトニックコードの構成音だけが含まれる重ね合わせ状態を量子ゲートで準備し、測定によって構成音の1つを確率的に選びます。音の間の量子相関を利用することでコード進行にも拡張できます。

旧サイトの例:IM7 → iim7 → V7 → IM7 の進行について、GUI設定と生成楽譜が紹介されています。

Mode 4 · 量子フレーズ変調

Mode 3と同じ3量子ビットによる五度圏の符号化を利用しますが、コード名ではなく、ユーザーが音高を直接指定します。最初は各音が指定どおりに確定的に測定される状態を準備し、その後、隣接する音の間に量子ゲートによる位相変調を加えます。これにより、後続の音高が当初の指定から変化し、複数のフレーズが確率的に生まれます。生成済みの音列に古典的な乱数を加えるのではなく、測定前の量子状態そのものに変調を加える点が特徴です。

Mode 5 · 量子ゲーム理論に基づく2人演奏モデル

2人が各時刻に1音ずつ担当し、各音を1量子ビットで表します。Mode 1と同様に測定軸を選んで音高の可能性を定めますが、測定前に2人の量子ビットをもつれさせる点が異なります。その後、各演奏者が独立に測定戦略を選択します。もつれた状態を通じて2人の測定結果は相関し、両者の選択が音楽生成に関わります。旧サイトでは、このような相互作用をジャズの即興セッションになぞらえています。

Nnotes = 4なら、2人×4時刻で操作列は8列になります。ここに掲載するのは初期のGUIの図であり、2025年のWebデモの画面ではありません。

別途、2025年の2人用インタラクティブ音楽システムも紹介しています。

参考文献

Souma, S. (2022). Exploring the Application of Gate-Type Quantum Computational Algorithm for Music Creation and Performance. Quantum Computer Music 所収。書籍掲載章 ↗ · 論文・資料 →