Michael J Petrie

2022–現在 · プレアルファ版として動作中

ジェネレーティブ・ミュージックの作曲と演奏のためのスタンドアロン・アプリケーションです。Namagen はシーケンス、シンセシス、サンプリング、そして独自のプログラミング言語を組み合わせて、再生中に曲が変化していけるようにしています。

コンパイラと仮想マシン、マルチスレッドのオーディオエンジン、Metal ベースのインターフェース、アセット配信システムを開発しました。macOS 版は、外部の人に試してもらう初期テストの段階まで来ています。

始まりは 2022 年で、それ以前に作っていたジェネレーティブ・ミュージックのプロトタイプの後継として、今度はエディタを中心に据えて作り始めました。今回は、それで作った音楽だけでなく、エディタそのものが製品です。

ゼロから作る

Namagen は最初から「Handmade」のプロジェクトです。ライブラリは最小限にして、すべて C でゼロから書いています。サンプル単位の DSP から全体のアーキテクチャまで、アプリケーションのどの部分も自分で理解しています。自分で実装したものは次のとおりです。

  • 独自のプログラミング言語
  • それを動かす仮想マシン
  • シリアライズ
  • マルチスレッドのオーディオ処理
  • 2D グラフィックス・レンダラー
  • UI ライブラリ

外部ライブラリは、stb ライブラリの一部と、単純に自分で書く時間がなかった部分のための小さなシングルヘッダー・ライブラリがいくつかあるだけです。

ものすごく勉強になりましたし、5、6 年前の自分には技術的に作れると思っていなかったものも入っています。

  • ユニゾン対応、マルチボイスの 8 オペレーター FM シンセサイザー
  • とても美しい音の FDN リバーブ

生まれた経緯

Namagen は、何年にもわたる実験の積み重ねから生まれました。2016〜2018 年ごろ、テスト用のオーディオアプリをいくつも作り、あわせてフィードバック・ディレイ・ネットワークのリバーブやシンセサイザーの部品も作りました。これらは何度も手を加えながら、最終的に Namagen に組み込まれています。

2019〜2021 年ごろには、のちに Variations、そして Namagen になるものを改めて実装し、そこでもそのシンセサイザーの部品を再利用しました。ユーザーのプログラムでジェネレーティブ・ミュージックのアルゴリズムをリアルタイムに定義できる、より低レベルの仕組みを加え、小さな iOS アプリにもなりました。ただ、それで音楽を作るにはまだ手作業のツールや壊れやすいパイプラインに頼る必要があったので、いったん脇に置きました。

これから

Namagen をお蔵入りにしたわけではありませんが、今は優先度を下げています。少なくとも、最低限でも使える状態にして、みんながダウンロードして試せるところまでは持っていきたいと思っています。その理由については方向転換に書いています。

namagen.music で進捗をチェック

すべてのプロジェクト

このページは英語の原文を AI で翻訳したものです。原文(English)