Sema は、信号合成、機械学習、機械リスニング用のライブ コーディング ミニ言語のプロトタイプを迅速に作成できるプレイグラウンドです。
Sema は、抽象的な高水準言語とより強力な低水準言語の両方を設計するためのオンライン統合環境を提供することを目指しています。
Sema は、一連の中核となる設計原則を実装しています。
統合された信号エンジン – 言語と信号エンジンの統合という点では、概念的な分割はありません。すべては信号です。ただし、モジュール性、再利用性、サウンド アーキテクチャの目的で、sema の信号エンジンは sema-engine ライブラリによって実装されています。
シングルサンプル信号処理 - 物理モデリング、残響、IIR フィルタリングなどのフィードバック ループを使用する技術をサポートするためのサンプルごとのサウンド処理。
サンプル レート変換 – 1 つの主要なサンプル レートであるオーディオ レートを使用して信号処理を行う方が簡単です。依存オブジェクトのさまざまなサンプル レート要件は、トランスデューサを使用したアップサンプリングとダウンサンプリングによって解決できます。トランスデューサーのコンセプトにより、単一エンジン内でさまざまなサンプル レート (ビデオ、スペクトル レート、センサー、ML モデル推論) を使用したさまざまなプロセスに対応できます。
最小限の抽象化 – 信号エンジンには、バス、シンセ、ノード、サーバー、言語足場などの高レベルの抽象化はありません。このような抽象化は、エンドユーザー言語の設計空間内に存在します。
Sema では、次の依存関係をインストールする必要があります。
Sema を実行するには、プロジェクト URL と API キーを使用してSupabase バックエンドに接続する必要があります。
npm
使用して sema を構築する場合は、次のコマンドのリストに従うことができます。
$ cd sema
$ npm install
$ npm run build
$ npm run dev
代わりに Yarn パッケージ マネージャーを使用する場合は、次のコマンド リストを使用できます。
糸を使用するには:
$ cd sema
$ yarn
$ yarn build
$ yarn dev
sema をノード アプリケーションとして実行したら、ブラウザの次のポートにロードできます。
ハードウェア アクセラレーションは、Tensorflow.js モデルのトレーニング速度に劇的な影響を与えます。
Chrome で有効にするには:
Firefox で有効にするには:
about:preferences
に移動しますSema は Web Audio API オーディオ ワークレットを使用します。それらのパフォーマンスは、CPU パワーのスケーリングに非常に敏感であるようです。音質の問題が発生している場合は、CPU ガバナーをパフォーマンスモードに設定してみてください。たとえばUbuntuでは、
$ cpupower frequency-set --governor performance
Sema の内部ドキュメントは、ユーザーの学習体験をサポートすることを目的としています。これはアプリケーション内に統合されており、次のセクションで構成されます。
はじめる
遊び場
ライブコーディング
機械学習
言語の創造
Sema の Wiki ドキュメントは、貢献をサポートすることを目的としています。 Sema がどのように設計および構築されるかに焦点を当てています。
セマの建築とは何ですか?
Sema は Web サービスをどのように実装して使用するか
自分の Web サーバーに Sema をセットアップするにはどうすればよいですか?
新しい ML ライブラリを Sema に追加するにはどうすればよいですか?
新しいウィジェットを作成して Sema に追加するにはどうすればよいですか?
自分のドキュメントを Sema に追加するにはどうすればよいですか?
Sema の Svelte 店舗はどのように機能しますか?
Sema はオープンソース プロジェクトであり、その根底にあるビジョン、目的、構造が、皆さんがそれに貢献する動機となることを願っています。次のことを確認してください。
Sema に貢献するにはどうすればよいですか?
貢献.md
開発の準備をする
セマのデバッグ
デザインガイド
ベルナルド、F.、キーファー、C.、マグナッソン、T. (2021)。ライブコーディング機械学習のためのプレイグラウンドの創造性のサポートの評価、著:Baalsrud Hauge J.、CS Cardoso J.、Roque L.、Gonzalez-Calero PA (編) Entertainment Computing – ICEC 2021。ICEC 2021. コンピュータにおける講義ノートScience、vol 13056。Springer、Cham。 https://doi.org/10.1007/978-3-030-89394-1_38
ベルナルド、F.、キーファー、C.、マグナッソン、T. (2020)。ライブ コーディング言語エコシステムのための信号エンジン、 J. Audio Eng.学会、vol. 68、いいえ。 10、756-766ページ。土井: https://doi.org/10.17743/jaes.2020.0016
ベルナルド、F.、キーファー、C.、マグナッソン、T. (2020)。 Sema を使用した多元主義的でユーザーフレンドリーなライブ コード言語エコシステムの設計。第 5 回ライブ コーディングに関する国際会議、リムリック大学、アイルランド、リムリック
ベルナルド、F.、キーファー、C.、マグナッソン、T. (2019)。ライブ コーディング言語エコシステム用の AudioWorklet ベースの信号エンジン。 Web Audio Conference 2019 の議事録、ノルウェー科学技術大学 (NTNU)、トロンハイム、ノルウェー (Web Audio Conference 2019 で最優秀論文賞)