このプロジェクトについて

Vultは、小型のマイクロプロセッサやマイクロコントローラ上で動作する高性能アルゴリズムをプログラミングするための、シンプルで強力な言語です。特にオーディオエフェクトやシンセサイザーといったデジタル信号処理(DSP)の作業を対象としています。 Vultコンパイラはトランスコンパイラです。Vultのソースを受け取り、C/C++コンパイラを備えたあらゆるプラットフォームでビルド可能なプレーンなC/C++を出力します。例えば、固定小数点演算を使用するArduinoやTeensyボードなどです。また、ブラウザで直接実行するためのJavaScriptや、Pure Dataの外部オブジェクトとしてコンパイルするのに適したC/C++も生成できます。 READMEに記載されている主な機能: - コマンドラインコンパイラ`vultc`は`.h`/`.cpp`出力を生成し、リンクにはランタイムファイル`runtime/vultin.h`と`runtime/vultin.cpp`が必要です。 - 浮動小数点または固定小数点演算(`-real fixed`、q16形式: 整数部16ビット、小数部16ビット)。FPUを搭載していないプロセッサ、例えばAVR Arduino、Teensy 3.2、Raspberry Pi Picoで有用です。 - Teensy Audio LibraryやPure Data外部オブジェクトなどのターゲット向けテンプレート。サンプルリポジトリはPicoADK、WebAudio、Pure Data、Teensy Audioをカバーしています。 - 完全な処理単位として機能する関数、インスタンスごとの`mem`状態変数、コンパイル時ルックアップテーブル(`@[table(...)]`)、補間ありまたはなしでのwavファイルの埋め込みといった言語機能。 - 配布オプション: ネイティブ実行ファイル、npmでインストールされる`vultc`(ネイティブより約4倍遅いと記載)、node.jsライブラリ(`vultlib`)、ブラウザに埋め込まれたコンパイラスクリプト。 - Sublime Text構文ファイルとVisual Studio Code拡張機能によるエディタサポート。 - OCaml/Opam、`make`、`make jscompiler`、`make test`を使用したソースからのビルド。 READMEには、Vult VCV RackおよびVult Eurorackモジュール向けのDSPコードがVult言語で書かれていると記載されています。ドキュメント、チュートリアル、言語リファレンス、コマンドラインオプションはプロジェクトサイトとwikiで入手できます。