SOMAX2ユーザーズガイド

1. Somax2 for Max

1.1 Somax2の紹介

Somax2は、機械学習、認知メモリー活性化モデル、マルチエージェントアーキテクチャ、エージェントのパッチングと制御のためのフルアプリケーションインターフェース、およびMaxライブラリAPIを使用して、音楽即興演奏および作曲のためのアプリケーションです。これは、内部で選択されたコーパススタイルと展開する外部音楽コンテキストの両方に一貫したリアルタイムの機械即興を提供する生成AIモデルに基づいています。Somax2は、MIDIおよびオーディオ入力、コーパスメモリー、および出力を処理します。このモデルは、少ない設定でエージェントが自律的に音楽家と(お互いに)相互作用することを可能にしますが、その生成プロセスと相互作用戦略の多様な手動制御も許可し、完全に柔軟なスマート楽器として使用することができます。

Somax2は、長年にわたってMusic Representationチームで開発された著名なOmaxの多くの子孫の1つであるSomaxから完全に書き直されており、共演即興、作曲、インスタレーションなどのための強力で信頼性のある環境を提供します。MaxとPythonで記述されており、モジュラー型のマルチスレッド実装、複数のワイヤレス相互作用プレイヤー(AIエージェント)、チュートリアルとドキュメントを備えた新しいUIデザイン、および多数の新しい相互作用フレーバーとパラメーターを特徴としています。

自己完結型のアプリパッチに加えて、Somax2はMaxライブラリとしても設計されており、多くのソース、プレイヤー、インフルエンサー、レンダラーを必要に応じて含む独自の環境と処理を設計するためのカスタムSomax2パッチをプログラムすることができます。これらの抽象化により、完全なMaxスタイルのプログラミングとワークフローを提供するために実装されており、ユーザーはSomax2アプリケーションと同じ結果を達成できますが、そのモジュラーアーキテクチャのおかげで、カスタムパッチを作成して未見の相互作用と制御の振る舞いを解放することも可能です。

このガイドは、Somax2の一般的な哲学とプロセスについて説明し、その後、Somax2のコアオブジェクトを紹介します。Somax2の基本的な使い方をすばやく学ぶために、Somax2フォルダにある「somax2.overview.maxpat」を通して進んでください。

詳細な情報、ヘルプ、リソース(デモ、メディア、ディスカッションなど)については、Somax2の研究プロジェクトページhttp://repmus.ircam.fr/somax2をご覧ください。

1.2 準備

1.2.1 要件

  • macOS 10.13以降 / Windows 10以降

  • Max 8.5以降

  • (Python 3.9以降 – 手動インストールの場合のみ必要)

macOS: Somaxを初めて起動するとき、セキュリティ設定に応じて、いくつかの外部プログラム(shell、bonk、ircamdescriptor、bc.virfun、およびbc.yinstats)に対する許可を求めるダイアログが表示される場合があります。Somaxが正常に動作するために必要です。また、初めてサーバーを起動するときにも許可を求められる場合があります(このステップはチュートリアルで説明されています)。各ダイアログで許可を与えて進めてください。

注:Somax2.6はARMプロセッサ(Apple M1、M2、M3)上でネイティブに動作し、Rosettaの下でMaxを実行する必要はありません(詳細はhttps://docs.cycling74.com/max8/vignettes/apple_arm64を参照)。

1.2.2 インストール

簡単インストール

ほとんどのユーザーにはこの手順が推奨されます。Pythonコードを変更する必要がない限り、この手順を使用してください。

  • https://github.com/DYCI2/Somax2/releasesにアクセスし、最新バージョンのSomax2(Somax-2.x.x.dmg)をダウンロードします。

  • 抽出された/Somax-2.x.xフォルダをMaxフォルダの/Packagesフォルダにコピーします(デフォルトでは、/Documents/Max 8/Packagesにあります)。

手動インストール

Pythonコードを変更する場合、手動インストールが必要です。Python 3.9以上がインストールされていることを前提とします。

手順1: Somaxのインストール

  • https://github.com/DYCI2/Somax2のマスターブランチをクローンするか、https://github.com/DYCI2/Somax2/releasesにアクセスして最新バージョンのSomaxソースコードをダウンロードします。

  • /Somax-2.x.xのmax/somaxサブフォルダをMaxパスに追加します。Maxの「オプション」→「ファイル環境設定」で設定できます。「サブフォルダ」オプションがチェックされていることを確認します。

手順2: Pythonの要件をインストール

1.2.3 パッケージの内容

Somax2のディストリビューションには、多くのファイルとフォルダが含まれていますが、その中でも重要なものは以下の通りです:

  • /corpus: 配布されているSomax2のコーパスセットが含まれています。

  • /docs: チュートリアルパッチやプレイ可能なパフォーマンス戦略が含まれています。

  • /externals: Somax2内部で使用される外部プログラムが含まれています。

  • /extras: 「somax2.overview.maxpat」が含まれています。これを使ってすべてを探索することができます。

  • /help: 各Somax2抽象化に関連するmaxhelpファイルが含まれています。

  • /patchers: Somax2を構成する実際のMaxパッチが含まれています。

  • somax2.maxpat: 1プレイヤー用のSomax2アプリケーションパッチです。

  • somax2.overview.maxpat: どこに行くにも案内してくれる概要パッチです。

  • /templates: 1プレイヤーから4プレイヤー用のテンプレートパッチが含まれています。

Somax2の世界に飛び込むには、以下のセクションを参照し、「somax2.overview.maxpat」をメインガイドとして使用することをお勧めします。

Somax2の概要

Somax2のルートフォルダまたは/extrasフォルダにある「somax2.overview.maxpat」は、Somax2の世界を探索するための出発点です。ここから、さまざまなチュートリアルにアクセスしたり、特定のパフォーマンス戦略を定義する準備ができたパッチにアクセスしたりすることができます。また、1プレイヤーから4プレイヤー用のテンプレートや、すべてのSomax2オブジェクトのmaxhelpも利用できます。

The ‘somax2.overview.maxpat’ is the starting point for the Somax2.5 package.

アプリチュートリアル

「somax2.overview.maxpat」からアクセスできるだけでなく、/docs/tutorial-patchersフォ

ルダにもあります。以下の3つのチュートリアルパッチ:

  • app1 - First Steps with Somax2.maxpat1

  • app2 - Audio Corpus Builder.maxpat2

  • app3 - Script your Environment.maxpat

これらはSomax2アプリケーションの基本を案内し、パッチをカスタマイズし、Maxメッセージを通じてさまざまなSomax2オブジェクトをスクリプトする方法を教えてくれます。

Maxチュートリアル

さまざまなパッチがSomax2 Maxライブラリの使用方法を案内します。これらのチュートリアルは、Somaxモデルの非常に基本的なMaxワークフローのレビューから始まり、Somax2のモジュラーアーキテクチャのおかげで、複雑な相互作用の方法に徐々に進化します。「somax2.overview.maxpat」パッチまたは/docs/tutorial-patchersフォルダからこれらを見つけることができます。

パフォーマンス戦略

3つのプレイ可能なパッチは、Somax2の特定の相互作用の振る舞いを紹介します。模倣やハーモナイゼーション戦略からインスタレーションモードまで。これらのパッチは「somax2.overview.maxpat」または/docs/tutorial-patchersフォルダから利用できます。

テンプレート

/templatesフォルダには、1プレイヤーから4プレイヤーまでの設定があらかじめ設定された4つのパッチが含まれています。これらのパッチは、さまざまなプレイヤー構成でSomax2のすべての機能を試すためのテストベンチとして使用できるほか、自分のパッチを作成するための出発点としても使用できます。

ヘルプセンター

「somax2.overview.maxpat」のヘルプセンタータブまたは/helpフォルダから、Somax2抽象化に関する具体的で詳細なmaxhelpファイルにアクセスできます。疑問があるときには、これらを使用してください。


2. Somax2のコンセプト

Somaxは、与えられた音楽素材を基に即興演奏を行うインタラクティブなシステムであり、ライブの音楽入力を共同でリスニングし適応しながら、スタイル的に一貫した即興演奏を生成することを目指しています。このシステムは、ユーザーが選択した音楽素材を基にトレーニングされ、その素材から「コーパス」を構築します。Somaxは、音楽素材としてオーディオファイルまたはMIDIファイル(またはその組み合わせ)を使用でき、外部からのオーディオおよびMIDI入力の両方に対応してリスニングし適応することができます。

Somaxは、即興演奏プロセスにおいて共創的なエージェントとして機能し、初期設定後は音楽家に自己完結的に適応することができます。もちろん、入力はライブの音楽家からのものである必要はありません。オーディオファイル、スコアエディタ、シンセサイザー、DAW、または別のSomaxプレイヤーからのオーディオおよびMIDI入力も使用できます。Somaxは出力の詳細なパラメトリックコントロールを許可し、独自の楽器としても制御することができます。また、このシステムは必ずしも単一のエージェントや単一の入力ソースに限定されるものではなく、エージェントのアンサンブル全体を作成し、ユーザーがエージェントがさまざまな入力ソースやお互いをどのようにリスニングするかを制御することも可能です。

このセクションの目標は、Somaxの簡単な紹介を提供し、そのインタラクションモデルがどのように機能するかについての基本的な知識を読者に提供することです。これにより、システムの調整やインタラクション時に情報に基づいた選択を行うための基礎を築くことができます。Somaxとそのユーザーインターフェースに関する実践的な紹介については、Somaxの配布に含まれるインタラクティブチュートリアルも参照してください。

2.1 コーパスとナビゲーションモデル

前述のように、Somaxシステムは外部の音楽素材セットに基づいて即興素材を生成します。この「コーパス」は、ユーザーが自由に選択した1つまたは複数のMIDIファイル、または単一のオーディオファイルから構築できます。多くの他の生成アプローチとは対照的に、システムはトレーニングに使用された素材とは独立したモデルを構築するのではなく、元のデータの上に直接モデルを構築し、それを非線形的にナビゲートする方法を提供します。これは、音楽ストリームの一部の微細な側面がモデリングするには複雑すぎるが、この音楽素材に織り込む際にある程度保存されると考えることで理解できます。

Constructing a corpus by segmenting MIDI data into «slices».

Somaxが指定された音楽素材からコーパスを構築するための最初のステップは、音楽ストリームを個々の単位または「スライス」に分割することです。これらは元のファイルの垂直(多声)セグメントであり、スライスの持続時間は2つの音の開始の間の距離です。各スライスは、そのハーモニー/テクスチャ、個々の音高、ダイナミクスなどに関連するいくつかの音楽的特徴に基づいて分析および分類されます。これらの特徴と、それらが音楽シーケンス上で推測するパターン構造が、ナビゲーションモデルを制御するための主な基礎となります。したがって、ナビゲーションモデルは音楽メモリで構成されます。

2.2 Somax2とのインタラクション

Somax2とインタラクションする際には、「スライス」、「インフルエンス」、「ピーク」の3つの主要な概念を理解することが重要です。

2.2.1 スライス

スライスとは、前述のようにコーパスの短いセグメントであり、システムの出力の最小構成単位です。スライスはある程度操作(トランスポーズ、声部/チャンネルに関するフィルタリング、ストレッチなど)が可能ですが、元のコーパスの基本的な特性は常に維持されます。

2.2.2 インフルエンス

Somaxがミュージシャンの演奏をリスニングするとき、この音楽ストリームはコーパスの構築と同様に音楽的パラメータに基づいてセグメント化および分析されますが、リアルタイムで動作するために若干異なる方法が使用されます。このプロセスの結果は、システムがメモリと入力を比較するために使用する「インフルエンス」と呼ばれる離散的な多層データのチャンクです。インフルエンスの主な目的は、システムの出力を決定するためのガイドとして機能することです。インフルエンスの概念は初めは実装の詳細のように思えるかもしれませんが、複数のエージェントや複数の入力ソースを使用する複雑な構成ではますます重要になります。システムは音楽入力ストリームを直接リスニングすることはできず、インフルエンスに変換する必要があるため、リスニングの調整プロセスは共創的な即興の質にとって非常に重要な要素となります。インフルエンスはSomaxエージェント間で循環する主なデータであり、入力モジュールの「audioinfluencer」や「midiinfluencer」の名前もここから来ています。通常、Somaxプレイヤーは一定量の累積インフルエンス(オーディオ入力、MIDI入力、他のエージェントの生成物)をリスニングし、これらのインフルエンスに基づいて意思決定を行います。

2.2.3 ピーク

ピークとは、入力とメモリモデルが一致する特定の時点で発生する活性化のことです。各ピークはメモリ内の特定のポイントに対応しており、ピークの全セットはコーパスの時間軸上に一元的な曲線として見ることができます。各層のピークはシステムの調整方法に応じてマージおよびスケーリングされ、最終的なピークの分布に基づいて出力スライスが選択されます。このプロセスは、コーパスの内部論理とミュージシャンの外部論理のバランスを取る試みであり、即興演奏のプロセスにおいて能動的なエージェントとしての印象を与えることがよくあります。

2.3 Somax2のユーザーインターフェース

前述の生成およびインタラクションの概念を理論的に理解するだけでは難しいかもしれませんが、Somax2アプリケーションオブジェクトによって提供されるユーザーインターフェースを使用すると、すぐに実践的な体験を始めることができます。図2.5では、Somax2アプリケーションの基本オブジェクトを示しています。これらは以下の通りです:

  • サーバー

  • プレイヤー

  • オーディオインフルエンサー

  • MIDIインフルエンサー

図2.5: 配布に含まれる「somax2.maxpat」を使用すると、Somax2アプリケーションのすべてのオブジェクトにすぐにアクセスできます:サーバー、プレイヤー、オーディオインフルエンサー、MIDIインフルエンサー。

これはもちろん、Somax2オブジェクトの1つの可能な構成に過ぎません。このアプリケーションの大きな利点は、各オブジェ

クトがワイヤレスで相互に通信し、パッチコードを必要としないことです。このようにして、パッチをニーズに合わせて簡単に適応させ、乱雑なパッチケーブルを心配することなく独自の構成を作成できます。

次のセクションでは、これらのアプリケーションオブジェクトを分解し、それぞれの概要と主要なインタラクションパラメータについて説明します。


3. Somax2オブジェクト

3.1 Somax2のアーキテクチャ

新しいSomax2.6は、MaxアプリケーションおよびMaxライブラリとして設計されています。パッケージ内のほぼすべてのオブジェクトには「コア」バージョンと「.app」バージョン(例:`somax.player`と`somax.player.app`)があります。

名前が示すように、コアオブジェクトは純粋なMax抽象化であり、Somax2を完全にMaxスタイルのプログラミングで使用したいユーザー向けです。

一方、.appオブジェクトはパラメータを制御するユーザーインターフェースを提供する抽象化であり、抽象化を即座に使用するための他のユーティリティツールも提供します。これらはコアオブジェクトの周りにラッピングされたものであり、ユーザーに素晴らしいインタラクションへの即時アクセスを提供しつつ、コアオブジェクトのモジュール性を維持します。ほとんどのユーザーが使用する`somax2.maxpat`アプリケーションには、.appオブジェクトのみが表示されますが、スキルのあるMaxプログラマーが独自のカスタムアプリケーションパッチを作成する場合を除きます。

一部のオブジェクトには「.ui」バージョンもあります(例:`somax.player.ui`)。これはコアオブジェクトのコンパクトなユーザーインターフェースバージョンであり、代替として使用できます。.uiオブジェクトは.appオブジェクトと同じユーティリティを持たないため、即時にプレイ可能なオブジェクトとして使用することはできませんが、コアオブジェクトの視覚フィードバックの代替として意図されています。.uiオブジェクトは.appオブジェクトに含まれているため、以下で.appユーザーインターフェースの詳細を示すためにも使用されます。

この章では、コアバージョンと.appバージョンの両方で主要なSomax2オブジェクトの概要を説明します。詳細な探索については、`somax2.overview.maxpat`パッチを参照してください。

3.2 サーバー

Somaxサーバーは、すべての`somax.player`オブジェクトが通信する外部のPythonアプリケーションです。`somax.server` Maxオブジェクトは、OSCプロトコルを使用してリモートサーバーとのすべての通信を管理します。そのため、`somax.player`を使用するには、まず`somax.server`オブジェクトを初期化する必要があります。サーバーはまた、プレイヤー間の時間管理と同期も担当します。

したがって、Maxパッチに`somax.server`オブジェクトを作成するときの通常のワークフローは次のステップで構成されます:

  • サーバーの初期化:デフォルトでは、`somax.server`は作成時に自動的に初期化されます。ただし、属性`@autoinitialize 0`で作成された場合は、メッセージ`initialize`を送信して初期化する必要があります。

  • プレイヤーの初期化:すべてのローカル`somax.player`オブジェクトを初期化するには、サーバーにメッセージ`initializeplayers`を送信します。

  • サーバーのトランスポートをアクティブ化する:すべてのプレイヤーの生成を開始するには、`toggle`を使用してプレイヤーのトランスポートを開始または停止します。

図3.1に示す`somax.server.maxhelp`を参照して詳細を確認してください。

3.2.1 サーバーアプリ

`somax.server.app`オブジェクトは、すべてのプレイヤーが格納されているリモートPythonサーバーとの通信を処理するラッパーです。サーバーはまた、イベントのスケジューリングやタイミングとテンポのすべての側面の管理、新しいコーパスの構築も担当します。詳細については、`somax.server.app.maxhelp`を参照してください。

図3.2:`somax.server.app`のユーザーインターフェースには、すべてのパラメータのコントロール、およびコーパスビルダーモジュールが含まれています。

3.3 プレイヤー

`somax.player`は、Somaxパッケージの主要な生成オブジェクトです。プレイヤーはコーパス(コーパスビルダーを通じて構築されたもの)を読み込み、非線形な方法でコーパスからセグメント(イベント)を再生することでMIDIまたはオーディオコンテンツを生成します。プレイヤーとインタラクションする主な方法は、`somax.midiinfluencer`および/または`somax.audioinfluencer`からインフルエンスメッセージを送信することです。これらはプレイヤーが一致させようとする和音やメロディのコンテキストとして機能します。

プレイヤーは、特定の使用ケースを対象とした3種類のオブジェクトで構成されています:

  • `somax.player`:これはコアMaxオブジェクトです。使用するには、インフルエンサーをそのインレットに接続し、アウトレットをオーディオまたはMIDIレンダラーに接続する必要があります。プレイヤー自体はオーディオやMIDIを出力せず、データのみを出力します。

  • `somax.player.ui`:これは`somax.player`と同じように機能しますが、そのパラメータを制御するためのユーザーインターフェースを提供します。

3.4 インフルエンサー

インフルエンサーは、プレイヤーにリアルタイムで音楽的なコンテキストを提供する役割を果たします。`somax.audioinfluencer`と`somax.midiinfluencer`の2種類があります。これらのインフルエンサーは、外部のオーディオまたはMIDI入力をリアルタイムでリスニングし、それを基にプレイヤーに影響を与えます。

3.4.1 オーディオインフルエンサーアプリ

`somax.audioinfluencer.app`は、オーディオ入力を解析し、その特徴を抽出してプレイヤーに送信するオブジェクトです。これにより、プレイヤーは入力されたオーディオデータに基づいて生成を行います。詳細については、`somax.audioinfluencer.app.maxhelp`を参照してください。

3.4.2 MIDIインフルエンサーアプリ

`somax.midiinfluencer.app`は、MIDI入力を解析し、その特徴を抽出してプレイヤーに送信するオブジェクトです。これにより、プレイヤーは入力されたMIDIデータに基づいて生成を行います。詳細については、`somax.midiinfluencer.app.maxhelp`を参照してください。

3.4.3 オーディオコーパスビルダー

`somax.audiocorpusbuilder`は、オーディオファイルからコーパスを構築するために使用されます。`somax.player`はオーディオファイルを直接読み取ることができないため、オーディオを解析およびセグメント化してから読み取る必要があります。`somax.audiocorpusbuilder`は、オーディオファイルをセグメント化し、いくつかのディスクリプターに基づいて解析し、その結果を別のファイルとしてエクスポートします。その後、このファイルを`somax.player`に読み込むことができます。詳細については、`somax.audiocorpusbuilder.maxhelp`を参照してください。

3.4.4 MIDIコーパスビルダー

オーディオコーパスビルダーと同様に、`somax.midicorpusbuilder`は、1つまたは複数のMIDIファイルからコーパスを構築するために使用されます。`somax.player`はMIDIファイルを直接読み取ることができないため、MIDIを解析してから読み取る必要があります。

`somax.midicorpusbuilder`は、MIDIファイルをセグメント化し、いくつかのディスクリプターに基づいて解析し、その結果を別のファイルとしてエクスポートします。その後、このファイルを`somax.player`に読み込むことができます。

3.5 オーディオレコーダー

`somax.audiorecord`および`somax.audiorecord.ui`オブジェクトは、ライブ入力オーディオストリームからオーディオコーパスを作成するために使用されます。

3.6 リージョン

任意のオーディオまたはMIDIコーパスは、6つの異なるリージョンに編集して、異なる領域を制御できます。これらのリージョンは動的に編集、有効化、リセットできる特定のモジュールのおかげで、細かい制御が可能です。

`somax.regions`モジュールは`somax.player`とループで接続する必要があり、再生を監視し、コーパスと動的に相互作用して次のイベントの生成をガイドします。このモジュールは`somax.player.app`にも埋め込まれているため、アプリケーションモジュールと即座に使用できます。

3.7 まとめ

これで、Somax2アプリケーションオブジェクトのそれぞれが紹介されましたので、図3.22に示すデフォルトの`somax2.maxpat`内でそれらを見つけるのが容易になるはずです。これにより、これらのパッチに含まれるオブジェクトをより正確に分類できるようになります。これらすべてが互いにワイヤレスで通信する.appオブジェクトであることが明確になったからです。

  • `somax.server.app`

  • `somax.player.app`

  • `somax.audioinfluencer.app`

  • `somax.midiinfluencer.app`

これは、即座にインタラクションを提供する1つの可能な構成に過ぎません。`somax2.overview.maxpat`を使用して、提案されたすべての構成とリソース、特に/templatesフォルダにあるさまざまなテンプレートパッチを探索することをお勧めします。これらをテストベンチとして使用し、さまざまなインタラクション手段を試し、パラメータを探索してください。オブジェクトに自信がついたら、自分のパッチを作成し、新しい構成とインタラクションの方法を実現できます。`somax2.overview.maxpat`に頼って必要な場所にリダイレクトし、すべてのアプリとMaxチュートリアルを探索し、ヘルプセンターから利用できるヘルプファイルとパフォーマンス戦略を勉強することを忘れないでください。

図3.22:配布に含まれる`somax2.maxpat`は、Somax2アプリケーションのすべてのオブジェクト(サーバー、プレイヤー、オーディオインフルエンサー、MIDIインフルエンサー)への迅速なアクセスを提供します。


4. Somax2のインタラクションをマスターする

4.1 基本的なワークフロー

第2章で説明した理論モデルに基づき、Somax2システムとのインタラクションの基本的なワークフローは以下のように展開されます(図4.1参照):

  • コーパス生成: Somax2は外部の音楽素材セット(「コーパス」)に基づいて即興素材を生成します。このコーパスは、専用のコーパスビルダーオブジェクトを使用して、ユーザーが自由に選択した1つのオーディオまたはMIDIファイルから構築できます。構築されたコーパスは、プレイヤーが`corpuspath`フォルダからアクセスできる大きなデータベース「コーパス」に保存されます。したがって、コーパスはプレイヤーにロードされる実際の音楽素材です。

  • オーディオおよびMIDIインフルエンサー: オーディオおよびMIDIインフルエンサーは、あらゆるタイプのソース(ライブミュージシャンを含む)からの連続したオーディオまたはMIDI入力データをリスニングし、時間的にセグメント化します。各スライスはオンセット、ピッチ、クロマに基づいて分析され、その後プレイヤーに送信されます。したがって、インフルエンスはプレイヤーの共創的な行動のトリガーです。

  • プレイヤー: プレイヤーはSomax2の主要なエージェントです。インフルエンサーをリスニングし、それに基づいてコーパスの内容を再結合し、出力を生成します。

  • サーバー: サーバーはSomax2の中心であり、すべてのスケジューリングおよびバックグラウンドPythonアプリとの通信、およびOSCを介したすべての`somax.player`インスタンスを管理します。起動時には外部ウィンドウに表示されます。

  • `somax.player`: `somax.player`は再生を行わず、一連のイベントのリストのみを提供します。再生は`somax.audio/midi`レンダラーオブジェクトを介して独立して処理されるか、独自のシーケンサー/再生パッチを実装することによって行われます。ただし、`somax.player.app`オブジェクトを使用する場合、出力のレンダリングおよび再生はここで処理され、すぐにプレイ可能なアプリケーションオブジェクトとなります。

図4.1: Somax2システムの基本的なワークフロー

4.1.1 インタラクションパラメーター

`somax.player`には多数のパラメーターがあり、そのすべてが`somax.player.app.maxhelp`の「パラメーター」タブに完全に記載されていますが、`somax.player.ui`では主要なパラメーターにアクセスできます(図4.2参照)。以下に説明するセクションで詳細を説明します。

プレイモード

プレイヤーのモードを制御します:

  • リアクティブ: インフルエンサーから入力を受け取るたびに出力がトリガーされます(ノートごと)。

  • 連続: 入力に関係なく連続して出力がトリガーされます。

図4.2: `somax.player.ui`のユーザーインターフェースは、インタラクションを制御するための主要なパラメーターセットを表示します。

タイムアウト

リアクティブモードでは、このオプションはプレイヤーが現在のイベントの再生を終了した時点で新しいトリガーが到着していない場合にプレイヤーが再生を続行するかどうかを制御します。これをゼロ以外の値に設定すると、プレイヤーはその秒数だけ再生を続行します。これを無効にすることも可能で、その場合プレイヤーは無限に再生を続行します。

継続性

継続性はプレイヤーの出力の現在の状態インデックスの順序を制御します:

  • 継続性 > 1: 継続を優先し(ジャンプを減らす結果となります)。

  • 継続性 = 1.00: 変更はありません(このパラメーターによってバイアスは導入されません)。

  • 継続性 < 1: ジャンプを優先します。

品質/スパース

「品質」スレッショルドは、マッチとして出力するために必要な最小スコアを設定します。これを「スパース」と組み合わせると、良好なマッチと見なされるイベントのみが再生されることを保証します。

スパースがオンの場合:

  • 品質 0.0: 見つかった任意のマッチを再生します。

  • 品質 1.0: ほとんど再生されません。

  • 中間値: このしきい値を超えるマッチのみが再生されます。

スパースがオフの場合:

  • プレイヤーは空白(再生しない)部分をデフォルトのイベント、一般的には次のイベント、または自己影響によるジャンプで置き換えます。

カット

リアクティブモードでは、新しいトリガー(オンセット)が到着するたびに出力が生成されます。トリガーが到着したときにプレイヤーがイベントの再生中である場合、カットは現在再生中のイベントを中断するかどうかを制御します:

  • 許可: 現在のイベントを中断し、新しいトリガーが到着するとすぐに新しいイベントをトリガーします。

  • 不許可: 現在のイベントが完了するまでトリガーを遅らせ、その後新しいイベントの再生を開始します。

確率

生成された各出力に確率を条件付けし、イベントが再生されるかどうかを制御します。このパラメーターは1.0(オフ)に設定されているときは無効ですが、それより低い値に設定すると、生成されたイベントの100%未満が再生されます。たとえば、0.2に設定すると、生成されたイベントのうち20%のみが再生されます。

内部および外部インフルエンス

異なる内部および外部の影響(レイヤー)間のバランスを制御します。図4.3に示すように、4つの色(緑、紫、赤、青)は、第2.2.4節で紹介された4つの異なるレイヤーに対応します:

  • 緑(内部メロディ): プレイヤー自身の以前の出力のメロディ(ピッチ)をリスニングするフィードバックレイヤー。

  • 紫(内部ハーモニー): プレイヤー自身の以前の出力のハーモニー(クロマ)をリスニングするフィードバックレイヤー。

  • 赤(外部メロディ): 外部ソース(オーディオ/MIDIインフルエンサー)からのメロディック(ピッチ)インフルエンスをリスニングするメロディレイヤー。

  • 青(外部ハーモニー): 外部ソース(オーディオ/MIDIインフルエンサー)からのハーモニック(クロマ)インフルエンスをリスニングするハーモニーレイヤー。

図4.3: 各次元間のバランス、各次元のマッチングシーケンスの長さ、およびピークの減衰時間(メモリの長さ)を制御するためのユーザーインターフェース。

4.2 高度なパラメーター

Somax2の出力を微調整するために使用できる高度なパラメーターがいくつかあります。以下のセクションでそれらの詳細を説明します。

ビートアライメント

有効にすると、プレイヤーはビートアライメントアルゴリズムを使用して特

定のビートフェーズに一致するコーパスのイベントを出力します。このビートフェーズは0から1の間の循環値で、ビートグリッド内の特定のイベントの位置を表します。このフィルタは`somax.player.app`のメインUIで有効にできますが、そのコントロールは設定ウィンドウを開くことで利用できます:

  • タイプ: ビートアライメントアルゴリズムの強度を設定するために、ハードフィルタとソフトフィルタのどちらかを選択します。

  • ハードフィルタ: ビートフェーズに一致しないすべてのピークを完全に削除し、ビートフェーズに一致しないコーパスイベントをタブーにします。つまり、ピークがない場合、Somaxのフォールバックメカニズムはフェーズ外のイベントを再生するのではなく、何も再生しません。

  • ソフトフィルタ: どのピークも削除せず、ビートフェーズに一致しないものをこの量でスケールします。これにより、フェーズ外のイベントは再生される可能性が低くなりますが、完全には削除されません。

  • グリッドサイズ: 各ビートを細分化するステップ数。

ステートおよびリージョンフィルタ

最後に出力されたステートはインターフェースの下部に表示され、リージョンフィルタを使用してプレイヤーがジャンプするステートの範囲を選択できます。

図4.4: プレイヤーのインターフェースのこの部分は、最後に出力されたステートと、リージョンフィルタ(有効にされている場合)を表示します。

4.3 インフルエンスとコンテキスト

Somax2の生成プロセスは、インフルエンスによって強く影響を受けます。インフルエンスは、プレイヤーが生成する出力を制御するためのコンテキストを提供します。インフルエンスは、プレイヤーに送信されるデータの主要な形式であり、プレイヤーが一致を試みる音楽的なコンテキストを提供します。

Somax2システムのインフルエンスにはいくつかのタイプがあります:

  • オーディオインフルエンス: オーディオ入力を解析し、その特徴を抽出してプレイヤーに送信するインフルエンス。

  • MIDIインフルエンス: MIDI入力を解析し、その特徴を抽出してプレイヤーに送信するインフルエンス。

  • 自己インフルエンス: プレイヤー自身の以前の出力に基づくインフルエンス。

インフルエンスは、プレイヤーが現在のコーパスから一致するセグメントを見つけるための基礎として機能します。これにより、出力がリアルタイムで入力に適応し、スタイル的に一貫した即興演奏が生成されます。

図4.5: インフルエンスの流れとSomax2システムの相互作用。


5. チュートリアルとさらなる探求

Somax2は、驚くべき進化的なインタラクションの新しい世界を開きます。ここでは、さらにいくつかの提案をしますが、ライブラリ全体を探索し、エキサイティングな結果を達成することをお勧めします。

5.1 Somax2概要パッチ

Somax2のルートフォルダ、または/extrasフォルダにある'somax2.overview.maxpat'から始めて、Somax2ディストリビューションに含まれる豊富なリソースをブラウズできます。

図5.1に示すように、ここからSomax2アプリケーションのチュートリアル、Somax2 Maxオブジェクトのチュートリアル、パフォーマンス戦略およびテンプレート、さらにはSomax2オブジェクトに関する詳細情報を提供するヘルプセンターに迅速にアクセスできます。

図5.1: Somax2パッケージの出発点である'somax2.overview.maxpat'。ここから、アプリチュートリアル(最初のタブ)、Maxチュートリアル(2番目のタブ)、パフォーマンス戦略およびテンプレート(3番目のタブ)、ヘルプセンター(4番目のタブ)、およびプロジェクトページへの直接リンクにアクセスできます。

5.2 アプリチュートリアル

'somax2.overview'の最初のタブから、Somax2アプリケーションの基本をガイドする2つのインタラクティブチュートリアルにアクセスできます。

最初のチュートリアル('app1 - First Steps with Somax2.maxpat'、図5.2および5.3参照)は、第3章で説明したSomax2アプリオブジェクトの紹介を行います。このチュートリアルは、Somax2アプリケーションの使用の最初のステップを案内し、オーディオとMIDIのクイックインタラクションへの即時アクセスを提供します。

2番目のチュートリアル、'app2 - Audio Corpus Builder.maxpat'(図5.4参照)は、オーディオコーパスビルダーの使用を案内し、独自のオーディオ素材からコーパスを構築し、すぐにSomax2で使用する方法を説明します。

これらの詳細なチュートリアルを使用して、Somax2アプリケーションバージョンのクイックダイブを行ってください。

図5.2: チュートリアル'app1 - First Steps with Somax2.maxpat'は、すべてのSomax2アプリオブジェクトの最初の概要を提供し、最初のステップを案内します。

図5.3: チュートリアル'app1 - First Steps with Somax2.maxpat'は、オーディオおよびMIDIの基本的なインタラクションを案内します。

図5.4: チュートリアル'app2 - Audio Corpus Builder.maxpat'は、独自の音楽素材からオーディオコーパスを構築し、すぐにSomax2で使用する方法を説明します。

5.3 Maxチュートリアル

'somax2.overview'の2番目のタブから、Somax2 Maxオブジェクトの使用を案内する詳細なチュートリアルにアクセスできます。

これらのチュートリアルは、基本的なMaxワークフローのレビューから始まり、Somax2 Maxライブラリの深い可能性を理解し探索するために順次進行することをお勧めします。各チュートリアルにはいくつかのタブがあり、カバーされているトピックに応じてオーディオおよびMIDIの全体像を提供します。

以下の図は、これらのMaxチュートリアルパッチの一部を簡単に示しています。

(a) 基本的なオーディオデモ (b) 基本的なMIDIデモ

図5.6: チュートリアル'max1 - Basic Workflow.maxpat'は、オーディオおよびMIDI Maxインタラクションの基礎を提供します。

図5.7: チュートリアル'max2 - Introducing Parameters.maxpat'は、セクション4.1.1で説明したインタラクションパラメーターの使用方法の最初の概要を提供します。これらのパラメーターは、その後のチュートリアル'max4 - Mastering Somax Interaction Parameters.maxpat'で詳しく探求されます。

図5.8: チュートリアル'max5 - Advanced Players Interaction.maxpat'は、Somax2 Maxライブラリのモジュール性のおかげで、複雑なインタラクション手段を達成する方法を示しています。この特定の例では、'somax.player'が別のプレイヤーに影響を与えるために使用されています。

図5.9: チュートリアル'max7 - UI versus App.maxpat'は、Somax2オブジェクトの.uiバージョンを.appバージョンと同じように機能させる方法を示しています。

図5.10: チュートリアル'max8 - Real Time Corpus Recording.maxpat'は、ライブ入力オーディオストリームからオーディオコーパスを作成するためのsomax.audiorecordおよびsomax.audiorecord.uiの使用方法を案内します。

5.4 パフォーマンス戦略

このドキュメントで説明された概念に慣れ、さまざまなチュートリアルを探索したら、パフォーマンス戦略パッチを試してみることをお勧めします。

これらは、Somax2の特定の行動(模倣、ハーモナイゼーション、または終わりのないインスタレーションモードなど)を実現するための準備が整ったパッチです。これらの行動は、Maxでの初期化メッセージを使用してさまざまなSomax2オブジェクトをスクリプトすることによって達成されており、チームメンバーの好まれる構成から特別に選ばれています。これらのパッチは、/docs/tutorial-patchesフォルダまたは'somax2.overview.maxpat'の3番目のタブから見つけることができます。

次の図は、これらのパッチの概要を示しています。

図5.11: パッチ'performance - Mimetism.maxpat'は、オーディオインフルエンサーとプレイヤーの間で即座に模倣結果を提供します。

図5.12: パッチ'performance - Harmonization.maxpat'は、プレイヤーのハーモニック素材を使用して、メロディックオーディオインフルエンサーを即座にハーモナイズすることを可能にします。

図5.13: パッチ'performance - Installation.maxpat'のおかげで、2つのプレイヤー間のインタラクションが無限に続く可能性のあるインスタレーション環境を作成できます。

5.5 テンプレート

/templatesフォルダには、1プレイヤーから4プレイヤーまでの設定があらかじめ設定された4つのパッチが含まれています。これらのパッチは、Somax2のすべての機能をさまざまなプレイヤー構成で試すためのテストベンチとして使用できるほか、独自のパッチを作成するための出発点としても使用できます。好きな構成を選択し、新しいパッチにすべてのオブジェクトをコピーして、独自の新しいパッチを試す楽しみを味わってください。

図5.14: 1プレイヤーから4プレイヤーまでの構成に簡単にアクセスできる4つの異なるアプリケーションテンプレートパッチの概要。

5.6 ヘルプセンター

図5.15: 'somax2.overview'の4番目のタブから、包括的なヘルプセンターにアクセスできます。ここから、すべてのSomax2オブジェクトのmaxhelp(.appおよびMaxバージョン)を開くことができます。また、さまざまなインタラクション

パラメーターを制御するために使用できるMaxメッセージのすべてを一覧にしたドキュメントへのアクセスボタンもあります。

5.7 クレジット

Somax2は、Ircam - STMSのMusic Representations Teamで誕生したSomaxリアクティブ即興パラダイムの完全に刷新されたバージョンであり、よく知られたOMax即興ソフトウェアの子孫の1つです。

ANR MERCI(Mixed Musical Reality with Creative Instruments)およびERC REACH(Raising Co-creativity in Cyber-Human Musicianship)プロジェクトの一環として、Gérard Assayagによって監督されています。

Somax 2の開発はJoakim Borg、ドキュメンテーションとチュートリアルはJoakim BorgとMarco Fioriniによって行われました。

SomaxはGérard AssayagとLaurent Bonnasse-Gahotによって作成され、Axel Chemla Romeu Santosによってバージョン2の適応および事前バージョンが行われ、Olivier Delerueによる初期プロトタイプが作成されました。

継続的な専門知識を提供してくれたGeorges Bloch、Mikhaïl Malt、Marco Fioriniに感謝します。Somax2ディストリビューションコーパスに使用された音楽素材を提供してくれたBernard Borron、Bernard Magnien、Carine Bonnefoy、Joëlle Léandre、Fabrizio Cassol、Marco Fioriniにも感謝します。

5.8 さらなる情報とチームへの連絡

詳細情報、ヘルプ、デモビデオ、メディア、さまざまなリソースについては、プロジェクトページをご覧ください:http://repmus.ircam.fr/somax2

Facebook: Somax2
Instagram: erc_reach
Facebook: erc.reach

http://repmus.ircam.fr/somax2
https://www.facebook.com/profile.php?id=61552158505819
https://www.instagram.com/erc_reach/
https://www.facebook.com/erc.reach


この記事が気に入ったらサポートをしてみませんか?