spLibs: マルチプラットフォーム対応ライブラリ群

[English]

はじめに

spLibsは,Cで書かれたマルチプラットフォーム対応ライブラリ群です. 元々は音声信号処理を目的として開発されましたが,音声信号処理以外の用途に使用することも可能です. このライブラリ群には,次のような特徴があります.

このライブラリ群は,基本となる関数を集めたspBase, 信号処理用の関数が用意されたspLib, オーディオ入出力に関する関数を集めたspAudio, GUI作成用の関数を集めたspComponentなどの部分に分かれています. spBase以外のライブラリは,完全に独立したライブラリとなっているため, 自分の必要とするライブラリ以外をダウンロードする必要はありません.

ライセンスは,ほとんどが制限の緩い,いわゆるX11ライセンスになっています. ただし,ライブラリによって違いがありますので,それぞれのライブラリのドキュメントを参照下さい.

spBase
spLibsの基本となるライブラリです. spLibsのライブラリを使用する場合に必ず必要となります.
spLib
音声信号処理用のライブラリです.多数の信号処理用の関数が用意されています.
spAudio
オーディオ入出力に関するライブラリです. フルデュプレックスやリアルタイム入出力にも対応しているため, 入力音声をリアルタイムに信号処理して出力するといったアプリケーションを, 簡単に作成することができます. Windows,Macintosh,Android,Linux(OSS), iOSでの動作が確認されています.
spAudio for Python
spAudioのPythonパッケージです. このパッケージにより,Python上において,フルデュプレックスのオーディオデバイス入出力やWAV,AIFF,MP3,Ogg Vorbis,FLAC,ALAC,rawなど,ハイレゾ形式を含む様々なファイル形式の読み書きが可能となります.
spComponent
GUI作成のためのライブラリです.これを用いれば,様々な環境で, 比較的簡単にGUIアプリケーションを作成することができます. 内部で環境に応じたネイティブのライブラリを使用していますので, その環境におけるインターフェイスガイドラインにほぼ準拠したアプリケーションを作成できます.
Windows, macOS (10.7〜), Linux/UNIX (gtk+, Motif), Android, iOS環境で動作します. ただし,現在の所,macOS Cocoa版,iOS版,Android版は,オープンソースにはしておらず,ライセンスも未定です.
spComponentEx
spComponentの拡張セットです. コンパイルに必要な外部ライブラリが多いものなどをspComponentから分離しています. 現在は,OpenGLをサポートするための関数群のみが用意されています. これにより,マルチプラットフォームでGUI(ボタン,メニュー,テキストフィールド等々)とOpenGLを併用することができるようになります. また,ほとんどの環境で,GLSLを用いた描画や,日本語文字を含む文字列の描画などをサポートしています.
spPlugin
spAudioの入出力用のプラグインを集めたものです. spwaveの最新バージョンを動作させるには, これが必要になります. また,このパッケージには, プラグインを使用した強力なコマンドラインの音声再生ソフト`spplay'が含まれています.
spMpeg
MPEGオーディオ入出力ライブラリです. FreeAmpのデコードエンジンと,BladeEncもしくはLAMEのエンコードエンジンを使用しています. ただし,配布パッケージにエンコードエンジンのソースコードや, エンコーダーは含まれていません.

アプリケーション

spLibsを使用したアプリケーションを紹介します. と言っても,ここで紹介しているのは一つしかありませんが,研究用のデモアプリケーションはこれ以外に数多く作成しています.

spwave
音声波形の表示,編集,再生を行う音声ファイルエディタ. 様々な形式の音声ファイルを扱うことができる.

ダウンロード

[2020/11/15]
Linux版でCentOS 8とUbuntu 20に対応しました.
[2019/4/23]
spBase, spAudio, spPlugin, spAudio for Pythonの更新.
[2019/3/28]
spAudio for Pythonをリリースしました. 下記のコマンドでインストールできます.
> pip install spaudio
[2019/1/15]
spLibsの全ファイル更新
[2016/11/21]
spBase,spAudio,spLib,spComponent,spComponentEx,spMpegの更新.spLibの関数の追加,最新の開発環境でのビルド確認など.
[2016/6/6]
spLibsの全ファイル更新
[2012/9/24]
spPluginのLinux RPM版に`pulsesimple'プラグインが含まれていないというバグがあったため,spPluginのLinux RPM版の修正版をリリースしました.
[2012/9/22]
Linux版の更新
[2012/9/18]
spLibsの全ファイル更新

Thanks To

ファイルの読み書きには以下のライブラリが使用されています.それぞれのライブラリを 開発し,公開されている方に感謝致します.

また,パッチを作成して下さった方,バグ報告や要望などを送って下さった方, ありがとうございました.今後ともよろしくお願いします.


Last modified: "2020-11-16 10:14:42 hideki"