Table of Contents
Programming libraries for audio, graphics and media development
.
Here are listed some libraries and APIs, that may be helpful when developing audio, video and media applications.
Note: This Page should include only libraries (APIs) that are cross-platform and have an OSI or FSF (FSFE) accepted open-source license.
Page | Description | Tags |
---|---|---|
Advanced Gtk+ Sequencer Advanced Gtk+ Sequencer is an audio sequencer written in C using GObject and Gtk+. It features a piano roll, as well a synth, matrix ed… | Synthesis/Composition Tools, LADSPA Host, Sequencers, Soft Synths/Samplers, DSSI, LV2 Host, JACK, Development, MIDI Software, JACK MIDI, ALSA sequencer, PulseAudio | |
AIFF DSP A framework in which your C functions which process the data in Audio IFF (AIFF) files are called. The framework contains main() and deals with all a… | Development | |
Allegro C game programming library (also usable from C++) with sound support. game_things jack development | Game Things, JACK, Development | |
ALPY ALPY is a 3D sound kit, based op OpenAL, with a Python binding. It is (c) by Bram Stolk, and available under GPL license. Initially, this started out as … | Development, Unmaintained projects, Game Things | |
ALSA The Advanced Linux Sound Architecture (ALSA) provides audio and MIDI functionality to the Linux operating system. ALSA provides fully open-sourced driver… | Primary Resources, Sound Cards & Drivers, Development | |
ALSA MIDI Kommander DCOP interface exposing many ALSA sequencer features for shell scripts, Kommander scripts, or KDE programs requiring MIDI sequencer service… | ALSA sequencer, MIDI Software, Development, Unmaintained projects | |
ALSA Programming HOWTO A guide for the perplexed howtos_and_faqs development and_now_for_something_rather_different midi_software | HOWTOs and FAQs, Development, Not software, MIDI Software | |
aubio Library designed for the extraction of annotations from audio signals. Its features include segmenting a sound file before each of its attacks, performin… | Development | |
Audio::LADSPA Perl extensions for hosting LADSPA plugins ladspa development | LADSPA Host, Development | |
BruteFIR Command-line app to apply long FIR filters to multi-channel digital audio, offline or in realtime. filters convolution development dsp | Filters, Convolution, Development, dsp | |
ccAudio a portable general purpose C++ class library for manipulating audio files and audio data development | Development | |
ccAudio2 an improved version of the former ccAudio, from the Bayonne GNU/Linux telephony project development | Development | |
ClanLib a platform-independent game SDK with sound support game_things development | Game Things, Development | |
Demolition ladspa development | LADSPA Host, Development | |
dirac C/C++ object library that redefines the limits of what todays’ technology can do for your app if you want to change the speed and pitch of music independ… | Development, dsp | |
DRC Generates digital room correction FIR filters to be used within HiFi systems in conjunction with real-time convolution engines like BruteFIR. filters deve… | Filters, Development, dsp | |
Driving One's Own Audio Device Write a custom (not ALSA) kernel driver. and_now_for_something_rather_different development howtos_and_faqs | Not software, Development, HOWTOs and FAQs | |
drumstick Drumstick is a set of MIDI libraries using C++/Qt idioms and style. Includes a wrapper around the ALSA library sequencer interface: ALSA sequencer pr… | ALSA sequencer, Development, MIDI Software | |
DSSI * <http://dssi.sourceforge.net> The Disposable SoftSynth Interface, a “LADSPA for instruments” API from Chris Cannam, Sean Bolton, and Steve Harris. … | Development, Audio Plugin Systems | |
faust * (faust.grame.fr) - homepage * online internet version * more screenshots * faust2pd - connect to puredata (pd) Faust is a functional… | LADSPA Host, JACK, Synthesis/Composition Tools, Development, dsp | |
Faust Online This interactive Web site offers the possibility to write your own audio applications or plugins using the Faust compiler online. The website con… | JACK, Synthesis/Composition Tools, Development, dsp | |
Festival speech synthesis system Related: development speech_software | Development, Speech software | |
FFTW C subroutine library for the “Fastest Fourier Transform in the West” development dsp | Development, dsp | |
Fiview Graphically design/view a filter. Generates public domain source code that can be used directly in an app filters development dsp | Filters, Development, dsp | |
FLAC the Free Lossless Audio Codec, an audio format similar to MP3, but lossless, meaning that audio is compressed in FLAC without any loss in quality. deve… | Development, Audio File Compression | |
FlowDesigner * <http://flowdesigner.sourceforge.net/> interesting visual environment for building audio and signal processing applications development ds… | Development, dsp | |
FMOD * <http://www.fmod.org/> music and effects system, supports large variety of playback types development | Development | |
GNU 3DKit unmaintained development | Unmaintained projects, Development | |
GSI the General Sound Interface, an API with stereo sample play, 3D, Doppler fx, etc. development unmaintained | Development, Unmaintained projects | |
GStreamer network_audio development | Network Audio, Development | |
GStreamer Pipeline Editor requires GStreamer network_audio development | Network Audio, Development | |
Guide to linux sound APIs it is very difficult for programmers to figure out which audio API to use for which purpose and which API not to use when doing audio… | Development, HOWTOs and FAQs | |
GWC-lib the GNOME Wave Cleaner is now a library ! development dsp | Development, dsp | |
HawkVoice game-oriented, multiplayer voice-over-network API... designed to be a portable, free, open source code alternative to Microsoft's DirectPlay Voice in… | Game Things, Development, Unmaintained projects | |
Helix DNA Producer network_audio development | Network Audio, Development | |
Improv C++ environment for writing programs that enable musician/computer interaction using MIDI instruments midi_software unmaintained development | MIDI Software, Unmaintained projects, Development | |
Introduction to OSS MIDI programming Only for the old OSS API (not ALSA). development and_now_for_something_rather_different howtos_and_faqs midi_software u… | Development, Not software, HOWTOs and FAQs, MIDI Software, Unmaintained projects | |
JACK For the cd-ripper named jack go here: jack The Jack Audio Connection Kit (JACK) is Paul Davis's professional-quality low-latency audio server and transpo… | JACK, Development | |
jack4j development java | Development, JAVA software | |
jein a Java version of Ein, DSP learning software from Paul Lansky and Ken Steiglitz dsp java development | dsp, JAVA software, Development | |
Jezabel development ladspa | Development, LADSPA Host | |
JJack jack development | JACK, Development | |
jMusic is a Java class of functions for generating and manipulating MIDI musical data midi_software dead_link development | MIDI Software, Dead external links, Development | |
Juce Cross-platform GUI + everything else library development | Development | |
JVOIPLIB telephony_and_a_v_conferencing unmaintained development | Telephony & A/V Conferencing, Unmaintained projects, Development | |
Khagan interface builder for OSC-based applications development osc unmaintained | Development, Open Sound Control (OSC), Unmaintained projects | |
Kiss FFT Very small FFT library, can use either fixed or floating point data types development dsp | Development, dsp | |
LADSPA The central site for information regarding the Linux Audio Developers Simple Plugin API, maintained by Richard W. E. Furse. Applications using LAD… | Audio Plugin Systems, Development | |
ladspapluginmaker GUI for creating LADSPA-compatible audio plug-ins, from the makers of GDAM development ladspa | Development, LADSPA Host | |
ladspar Ruby module for using LADSPA plugins development ladspa | Development, LADSPA Host | |
LAME source code for an encoder licensed under the GPL mpeg_players_and_encoders development | MPEG Player/Encoder, Development | |
libaio a platform abstraction layer for digital audio I/O development | Development | |
libakai development | Development | |
LibDSP library of common DSP functions development dsp | Development, dsp | |
libfilth digital-analog filter design library. development filters dsp | Development, Filters, dsp | |
libfishsound development | Development | |
libgaudio game_things development unmaintained | Game Things, Development, Unmaintained projects | |
libgdither Library for performing audio dithering on PCM samples development | Development | |
libgig development | Development | |
liblo An easy to use OSC (Open Sound Control) implementation written in C. osc development | Open Sound Control (OSC), Development | |
liblrdf Library for handling RDF descriptions of LADSPA (and potentially other format) plugins development ladspa | Development, LADSPA Host | |
LibModSynth: Audio plugin design tools for Linux LibModSynth is a library of high quality audio DSP modules built with sound quality, CPU efficiency and intero… | DSSI, Effects Processors, Development | |
liboggz development | Development | |
libsamplerate Library for sample-rate conversion development dsp | Development, dsp | |
libsmf Easy to use C library to read and write SMF (“*.mid”) files. Automatically handles timing, pulses<->seconds computation, tempo management, tempo map ha… | MIDI Software, Development | |
libsndfile library for reading and writing many different soundfile formats. development | Development | |
libtimidity MIDI to WAVE converter library that uses Gravis Ultrasound-compatible patch files to generate digital audio data from General MIDI files. This lib… | Development, MIDI Software, Soft Synths/Samplers | |
Linux Sound Hacker's Guide for programming the OSS/Free driver from Hannu Savolainen development | Development | |
LV2 LV2 is a standard for plugins and matching host applications, mainly targeted at audio processing and generation. LV2 is a simple but extensible successor… | Development, Audio Plugin Systems | |
Maaate mpeg_players_and_encoders dsp development | MPEG Player/Encoder, dsp, Development | |
MFFM 3D Audio Library a library for driving 3D speaker arrays speaker_design development | Speaker Design, Development | |
MFFM Bit Stream development | Development | |
MFFM Multimedia Time Code C++ headers for managing time code development | Development | |
MIDI Modules * <ftp://ftp.cwi.nl/pub/jack/python/> for the Python programming language midi_software dead_link development | MIDI Software, Dead external links, Development | |
MIDI-Perl “...a suite of Perl modules that allows you to read, compose, modify, and write MIDI files” midi_software development dead_link | MIDI Software, Development, Dead external links | |
MidiIO Cross-platform MIDI software interface for C++ programming. midi_software development | MIDI Software, Development | |
MidiShare * <http://midishare.sourceforge.net/> * <http://www.grame.fr/Research/> is a “... real-time operating system for musical applications” from the … | MIDI Software, Development | |
Midithing MIDI library in Python for an eventual sequencer from Tim Goetze midi_software unmaintained development | MIDI Software, Unmaintained projects, Development | |
MMidi describes tools for MIDI over the MBONE multicast network midi_software on-line_articles development | MIDI Software, On-line articles, Development | |
MPEG-4 Structured Audio: Developer Tools a page from John Lazzaro and John Wawrzynek, includes the indispensable sfront general_synthesis_packages synthesis… | General Synthesis Packages, Synthesis/Composition Tools, Development | |
Music-DSP Source Code Archive code for synthesis, filters, analysis, effects, and other DSP functions development dsp | Development, dsp | |
MusicXML “... a universal translator for common Western musical notation... designed as an interchange format for notation, analysis, retrieval, and performanc… | Music Notation Editors, Development | |
Nord Modular G2 Patch Format informative page from Michael Dewberry development midi_software | Development, MIDI Software | |
nwfiir audio tools filters development dsp | Filters, Development, dsp | |
ObjectProDSP an X11 GUI for DSP design and implementation unmaintained dsp development | Unmaintained projects, dsp, Development | |
Oggz API for reading and writing OGG files and streams tools_to_make_tools development dead_link | tools to make tools, Development, Dead external links | |
OpenAL * <http://www.openal.org/> open-source audio library for games and multimedia applications, sponsored by Creative Labs and Loki Entertainment game… | Game Things, Development, Unmaintained projects | |
OSS/Free * Information about the new and improved OSSv4 and its benefits over alsa for unix audio * Information about the pre-2.5 Linux kernel sound driv… | Primary Resources, Sound Cards & Drivers, Development | |
PHAT “a collection of GTK+ widgets geared toward pro-audio apps”, from Pete Bessman and friends development | Development | |
PLib a suite of game libraries with OpenGL and C++ interfaces, from Steve Baker development game_things | Development, Game Things | |
Poles and Zeros filters development dsp | Filters, Development, dsp | |
Polyphone Polyphone is an excellent tool for creating, editing, and combining SoundFonts in the SF2 format. Linux, Mac, and Windows. development linux_based_… | Development, Linux Based Products, Patch Editor, Samples, Loops, and MIDI Files, Soft Synths/Samplers, Synthesis/Composition Tools, Soundfonts and Related | |
portaudio development | Development | |
portmidi development midi_software | Development, MIDI Software | |
Programmer's Guide To OSS sound & MIDI device programming, from 4Front howtos_and_faqs development | HOWTOs and FAQs, Development | |
Ptolemy homepage for the Ptolemy Project of the DSP Design Group at UCB and_now_for_something_rather_different development dsp | Not software, Development, dsp | |
PulseAudio sound_server development pulseaudio | sound server, Development, PulseAudio | |
PVC an extensive set of phase vocoder tools and utilities from Paul Koonce, with a Linux version from John Gibson development dsp | Development, dsp | |
pyalsa MIDI wrappers for Python, from Phil Frost midi_software unmaintained development | MIDI Software, Unmaintained projects, Development | |
pyliblo pyliblo is a Python wrapper for the liblo OSC library. It supports almost the complete functionality of liblo, allowing you to send and receive OSC mes… | Open Sound Control (OSC), Development | |
pyo midi_software osc development dsp | MIDI Software, Open Sound Control (OSC), Development, dsp | |
Q-Audio/Q-MIDI useful extensions to the Q programming language unmaintained development | Unmaintained projects, Development | |
Q-Midi a MidiShare interface for the Q programming language midi_software unmaintained development | MIDI Software, Unmaintained projects, Development | |
rtmidi development | Development | |
RTP MIDI A protocol for transmitting MIDI via an Ethernet connection. midi_software on-line_articles development | MIDI Software, On-line articles, Development | |
rubberband Library for high-quality time-stretching and pitch-shifting. pitch_effect development effects_processors | Pitch effect, Development, Effects Processors | |
Ruby/Audio Hans Fugal's “library that makes dealing with audio data a little easier...in Ruby” development | Development | |
Scilab development dsp | Development, dsp | |
SDL Simple Directmedia Layer library development project game_things development | Game Things, Development | |
SDL Mixer development | Development | |
SDL_sound a library to handle decoding of soundfile formats such as WAV and MP3 development | Development | |
sfront a translator that converts MP4-SA files into efficient C programs that generate audio for rendering, interactive and network applications general_syn… | General Synthesis Packages, Synthesis/Composition Tools, Development | |
Sig++ music signal processing in C++ development dsp | Development, dsp | |
Signalgo DSP library for Java development java dsp | Development, JAVA software, dsp | |
SL Sound Library library for playing, mixing, and modifying sound samples in realtime, designed especially for games and simulations game_things development… | Game Things, Development, Unmaintained projects | |
sndlib library for the Snd soundfile editor snd development | Snd, Development | |
SndObj/pySndObj “a set of object-oriented cross-platform audio development tools and sample programs...for the quick design of sound processing applications” … | Development | |
Sonic Flow designs/simulates audio signal processing networks development dsp | Development, dsp | |
sonivox This project is a fork of the Android Open Source Project 'platform_external_sonivox', including a CMake based build system to be used not on Android, … | new, Development, Synthesis/Composition Tools, General Synthesis Packages | |
Sound Processing Kit C++ class library for audio signal processing development dsp | Development, dsp | |
SoundTouch Library for high-quality time-stretching and pitch-shifting. pitch_effect development effects_processors | Pitch effect, Development, Effects Processors | |
The MusicKit object-oriented software system for building music, sound, signal processing, and MIDI apps general_synthesis_packages synthesis_and_compositi… | General Synthesis Packages, Synthesis/Composition Tools, Development, MIDI Software | |
The PLUM Page synthesis_and_composition_packages and_now_for_something_rather_different development | Synthesis/Composition Tools, Not software, Development | |
tranzport Docs/code for programming Frontier Design's Tranzport wireless USB device hardware_linux development and_now_for_something_rather_different | Hardware + Linux, Development, Not software | |
Tritonus an implementation of the JavaSound API, from Matthias Pfisterer, Florian Bomers, and others development java | Development, JAVA software | |
TSE3 Library open-source MIDI sequencer engine in C++ midi_software development | MIDI Software, Development | |
UNIX MIDI libraries general purpose MIDI system for Unix, useful code from John Stone and Friends. midi_software development | MIDI Software, Development | |
Virtual Sound audio synthesis tools general_synthesis_packages synthesis_and_composition_packages development | General Synthesis Packages, Synthesis/Composition Tools, Development | |
Vorbis Development the place for Vorbis developers dead_link development | Dead external links, Development | |
Writing Audio Applications With JACK - A Tutorial/Journal excellent instruction from James Shuttleworth howtos_and_faqs jack development | HOWTOs and FAQs, JACK, Development | |
Zerius Vocoder C and Java source code for software channel vocoder. dsp development | dsp, Development |
.
.
libraries for audio and midi output
Jack audio API - http://jackaudio.org/ - cross platform audio/midi IO
Portmedia - http://portmedia.sourceforge.net/ with its sub-projects - port audio and port midi
Pulseaudio - http://pulseaudio.org/ .
OpenML - http://www.khronos.org/openml/
RtMidi - http://www.music.mcgill.ca/~gary/rtmidi/ - Cpp library for midi IO
WebAudio - http://www.w3.org/TR/webaudio/ - W3C WebAudio API 2012
libraries for audio processing and signal processing (DSP)
- UGen++ audio processing API synthesis framework in C. It provides oscillators, filters, envelopes and event management etc. * [[http://code.google.com/p/pyo/ , with an emphasis on real-time signal processing
* gtkIOStream jackd client - trivialises using jackd for audio input and output DSP processing.
Articles
Libraries for Atomic Operations
'Atomic Operations' are not allowed to be interrupted (e.g. by other threads).
- Userspace RCU library - User-level Read-Copy Update, Lock-free data structures (RCU lock-free hash table with auto-resize, queues, stacks), atomic operations, efficient user-level wait/wake-up
- PJLIB - A small footprint framework library written in C for making scalable applications. Includes Atomic Ops.
- gtkIOStream thread and gtkIOStream mutex - Set of mutex and thread Cheaders to trivialise threading. Can use either pthreads or GLib threads. \\ \\ ===== Lockfree (non-blocking) Data Structures - Libraries ===== \\ * [[http://lttng.org/urcu iostream style GTK GUI building .
with 3-dimensional capabilities
LibNui - http://www.libnui.net/pages/about.php .
Coin3d - http://www.coin3d.org/lib/about_coin3d/coin3d-overview .
Clutter - http://www.clutter-project.org/about .
COGL - http://www.clutter-project.org/documentation (is a part of Clutter).
Visualization Library - http://www.visualizationlibrary.com/jetcms/
VTK - http://www.vtk.org/
OpenInventor - http://oss.sgi.com/projects/inventor/ .
Agar - http://wiki.libagar.org/wiki/Main_Page - http://libagar.org/index.html.en .
SDL - http://www.libsdl.org/ .
glfw - http://www.glfw.org/
guichan - http://guichan.sourceforge.net/wiki/index.php/About
glam - http://glam.sourceforge.net/ (rel.2004-02)
gigi - http://gigi.sourceforge.net/ (rel.2008-03)
GLV gui - http://mat.ucsb.edu/glv/
MyGUI - http://www.ogre3d.org/addonforums/viewtopic.php?f=17&t=7488 (rel.2010-02) uses OGRE game-lib
MiniGUI - http://www.minigui.org/res.shtml for embedded devices
ClanLib - http://clanlib.org/wiki/Main_Page game-lib with gui-toolkit
CEGUI - http://www.cegui.org.uk/wiki/index.php/Main_Page
Allegro - http://alleg.sourceforge.net/readme.html
.
Targeted at embedded devices
Disko - http://www.diskohq.com/ (embedded library with OpenGL support)
MeeGo - http://meego.com/about (for embedded)
Moblin - http://moblin.org/about-moblin Moblin joined MeeGo
MoSync - http://www.mosync.com/ - Cpp, for Smartphones etc.
Kivy - http://kivy.org/ - Python library for rapid development, innovative ui, multi-touch apps
Tizen - https://www.tizen.org/ - “Environment for application developers, based on HTML5. ”
.
SVG (vector graphics)
AGG Anti Grain Geometry - http://www.antigrain.com/
GGI - http://www.ggi-project.org/ - graphic-system abstraction layer
Cairo Graphics - http://cairographics.org/
Batik - http://xmlgraphics.apache.org/batik/
LibSugar - http://libsugar.sourceforge.net/
librsvg - http://librsvg.sourceforge.net/
.
misc libraries
OpenGL Mathematics library (GLM) - http://glm.g-truc.net/about.html
CML (Configurable Math Library) - http://cmldev.net/?page_id=7
TLSF - http://rtportal.upv.es/rtmalloc/ - for real-time memory allocation
.
.