spLibs: A set of multi-platform libraries

[Japanese]

Introduction

spLibs is a set of multi-platform libraries written in C. Although this set of libraries was originally developed for speech signal processing, you can use spLibs for other purpose. spLibs has the following features.

spLibs consists of spBase which includes basic functions, spLib which includes functions for speech signal processing, spAudio which includes funtions for audio I/O functions, and spComponent which includes functions for creating GUI. These parts except spBase are designed to work independently, so you may download only the library you need.

Although licenses of spLibs depend on the library, many libraries have the so-called X11 license which is pretty lax license. Please see documents included in each library archive.

spBase
A basic library of spLibs. All libraries of spLibs need this library. spBase includes fundamental functions such as memory management, file I/O, dynamic library loading, multithreading, etc.
spLib
A library for speech signal processing. This library includes many functions for signal processing.
spAudio
An audio I/O library. This library supports full duplex and real time I/O, so you can easily develop a application which inputs sound from a sound card and outputs sound applied processing to the input sound in real time.
spAudio for Python
A python package of spAudio. This python package enables fullduplex audio device I/O and plugin-based file I/O supporting many sound formats including WAV, AIFF, MP3, Ogg Vorbis, FLAC, ALAC, raw, and more.
spComponent
A library for creating GUI. By using this library, you can create excellent GUI application easily. Since this library uses the native GUI engine internally, the application generated by using this library can be readily in conformity with the interface guideline of the native environment.
This library is known to work on Windows, macOS (10.6+, Carbon/Cocoa), Linux/UNIX (gtk+, Motif), Android, and iOS. macOS Cocoa, iOS and Android versions are currently closed-source.
spComponentEx
spComponentEx is an extension set of spComponent which is a GUI toolkit working on multiple platforms. The part that many people have difficulty in compilation is isolated from spComponent.
Currently, a set of functions to support for OpenGL is prepared. This OpenGL support enables multi-platform programming using GUI (buttons, menus, text fields, etc.) and OpenGL. spComponentEx also supports GLSL-based drawing and multi-byte text drawing on almost all environments supported by spComponentEx.
spPlugin
This is a collection of plug-ins for spAudio. The latest version of spwave requires this packages. This distribution also includes a powerful command-line sound player `spplay' which uses spPlugin.
spMpeg
MPEG audio I/O library based on freeamp's decoding engine and bladeenc's encoding engine. However, the archive doesn't include the source code of encoding engine and MPEG audio encoder.

Applications

The following are applications which use spLibs.

spwave
a speech file editor supporting WAV file, raw file, MP3 file, and so on.

Download

[2020/11/15]
Added support for CentOS 8 and Ubuntu 20 in Linux version.
[2019/4/23]
Updated spBase, spAudio, spPlugin, and spAudio for Python.
[2019/3/28]
Released spAudio for Python. You can install it by
> pip install spaudio
[2019/1/15]
Updated all files of spLibs.
[2016/11/21]
Updated spBase, spAudio, spLib, spComponent, spComponentEx and spMpeg.
[2016/6/6]
Updated all files of spLibs.
[2012/9/24]
Updated spPlugin of the Linux RPM version, because the previous version does not include `pulsesimple' plugin.
[2012/9/22]
Updated Linux versions.
[2012/9/18]
Updated all files of spLibs.

Thanks To

spPlugin uses the following libraries. I'd like to thank developers of the libraries.

I also would like to thank people who send me patches, bug reports, and requests.


Last modified: "2020-11-16 10:19:28 hideki"