このプロジェクトについて
DSParkは、リアルタイムおよびオフラインのオーディオソフトウェアを開発する開発者を対象とした、ヘッダオンリーのC++20オーディオDSPライブラリです。エフェクト、フィルタ、合成、スペクトル処理の基本ブロック、分析および音楽ツール、ネイティブファイルI/O、オプションのプラグインレイヤーをバンドルしています。フレームワークモジュールにはサードパーティの依存関係がなく、個別にコンパイルされたDSParkライブラリも不要です。最適化されたパスでは、プラットフォームガードの背後でコンパイラ提供のSIMD組み込み関数を使用する場合があります。プラグインアダプタとWindows専用のDSParkLabアプリケーションは、傘ヘッダーの外側にあり、独自のプラットフォーム統合要件があります。
統合は簡単です。リポジトリをベンダー化し、インクルードパスに追加して、傘ヘッダーをインクルードします。CMakeインターフェースターゲットがインクルードパスとC++20要件を提供し、プロジェクトはfind_packageまたはFetchContentを介して利用することもできます。プロセッサは、オーディオストリームの所有者がprocessBlock()を呼び出す前に、prepare(AudioSpec)で構築および設定されます。ホストでは、コールバック内の割り当てを回避するために、ホスト所有のチャンネルポインタ上にAudioBufferViewを作成できます。
機能領域には、フィルタとイコライゼーション(Biquad、StateVariableFilter、LadderFilter、FilterEngine、Equalizer、CrossoverFilter); ダイナミクスとレベル制御(Compressor、Limiter、NoiseGate、Expander、DynamicEQ、MultibandCompressor、DeEsser); 非線形およびアナログモデリング(Saturation、Clipper、TapeMachine、TubePreamp、TransformerModel、wdf::*); 時間、ピッチ、空間処理(Delay、AlgorithmicReverb、Reverb、PitchShifter、TimeStretch、PitchCorrector、GranularProcessor); スペクトル処理(FFTReal、Convolver、ZeroLatencyConvolver、SpectralProcessor、SpectralFreeze、SpectralDenoiser); 分析とメータリング(SpectrumAnalyzer、LoudnessMeter、LoudnessNormalizer、PitchDetector、OnsetDetector、BeatTracker、LoopFinder); 合成と音楽(Oscillator、WavetableOscillator、ADSREnvelope、ChordDetector、KeyDetector、harmony::*); およびインフラストラクチャ(AudioBuffer、ProcessorChain、Resampler、Oversampling、Dither、SpscQueue、バージョン管理された状態ブロブ)が含まれます。
ファイルI/Oは、WAVおよびMP3の読み書き、Standard MIDI Fileの読み書き(フォーマット0、1、2の読み取り、0と1の書き込み)、およびネイティブFLACデコードのみをカバーし、書き込み操作はfalseを返します。DSPARK_NO_FILE_IOを定義すると、ファイルシステムをサポートしないターゲット用にすべてのファイルI/Oヘッダーが省略されます。プラグイン開発は、ネイティブVST3およびCLAPアダプタに加えてmacOS Audio Unit v2を介してサポートされ、パラメータ、オートメーション、状態、レイテンシー、テールレポート、バイパス、モノ/ステレオレイアウト、サイドチェーン、トランスポート、MIDIインストゥルメント、オフラインレンダリング、ファクトリープリセットをカバーします。カスタムエディタはHTML/CSS/JavaScriptで記述でき、プラットフォームのWebViewレイヤーを介して埋め込むことができ、Linuxでは実行時にWebKitGTKが必要です。
リアルタイムの安全性は、包括的なプロパティではなく、メソッドごとの契約として文書化されています。構築、prepare()、状態の復元、およびセットアップのみの構成は割り当てる可能性があり、処理と同時に実行してはなりません。準備されたプロセッサには1つのオーディオストリーム所有者がいます。パラメータの公開は通常、1つのコントロールライターと1つのオーディオ所有者を想定しています。v1.7.0のCIマトリックスは、Windows(MSVC x64/ARM64)、Linux(GCC x64/ARM64、Clang x64)、macOS(Clang ARM64)、WebAssembly(EmscriptenスカラーおよびSIMD128)、およびファイルI/O、例外、RTTIを無効にした組み込みコンパイルゲートをカバーしています。iOSとAndroidはヘッダーによってターゲットにされていますが、専用のCIジョブはありません。CIはまた、インストールされたヘッダーの自己完結性、警告のないビルド、サニタイザー、並行公開パス、例、プラグインのスモークホストとバリデータ、生成されたドキュメントもチェックします。公式のEBUラウドネスベクトルジョブは、ライセンスされたテストマテリアルが別途ダウンロードされるため、ベストエフォートです。
DSParkLabは、インタラクティブなプロセッサテスト用のWindows専用Win32/Direct3D 11アプリケーションです。バンドルされているDear ImGuiおよびminiaudioソースはアプリケーションに限定されており、フレームワークの依存関係ではありません。ドキュメントには、生成されたAPIリファレンス、タスク指向のクックブック、スタンドアロンの例、プラグインガイド、スレッドモデル、測定された設定と注意事項を含む品質メトリクステーブル、v1.7.0移行ガイド、および変更ログが含まれています。v1.7.0は、音楽タイミングと編集ツール、ピッチおよびスペクトル処理、依存関係のないFLACデコードとMIDIファイルサポート、およびレート対応の分析ウィンドウや倍精度バイクワッド係数などのパブリックコントラクトの更新を追加します。このプロジェクトはMITライセンスであり、Cristian Moresiによって保守されています。
Comments
0 people shared their preference · Deer Point appears after 10 participants
Sign in to join the discussion.